From c08a1440069f642d304fa4e0069551ae6cfba856 Mon Sep 17 00:00:00 2001 From: Hitonabi Date: Thu, 24 Sep 2026 21:00:44 +0200 Subject: [PATCH] =?UTF-8?q?homelab:=20W=C3=A4chter=20und=20Ger=C3=A4telist?= =?UTF-8?q?e=20sehen=20volle=20Gastplatten=20(AdGuard=20stand=20bei=20100?= =?UTF-8?q?=20%)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Der Ausfuehrer schickt die Belegung der rootfs laufender Container mit; ab 85 % gelb, ab 95 % rot, in der Geraeteliste als eigene Spalte und auf der Lampe des Geraets. Anlass: AdGuard (2 GB) war voll, das Abfrageprotokoll schrieb nicht mehr und die Paketsuche scheiterte, ohne dass es eine Anzeige sagte. Co-Authored-By: Claude Opus 5.5 --- backend/kern/ziele.py | 1 + backend/services/homelab/inventar.py | 2 +- backend/services/waechter.py | 33 ++++++++++++++++++- backend/tests/test_homelab.py | 22 +++++++++++++ backend/tests/test_partner.py | 2 +- deploy/homelab/ausfuehrer.py | 4 +++ docs/ARCHITEKTUR.md | 3 +- docs/BEDIENUNG.md | 3 +- docs/wissen/OFFENE-FAEDEN.md | 6 ++++ frontend/dist/assets/Auftraege-CEbGzmGA.js | 2 ++ frontend/dist/assets/Auftraege-DzO2OZDP.js | 2 -- ...ienste-DZuQMkdN.js => Dienste-U6DJEyTa.js} | 2 +- ...-r4tFurrz.js => Einstellungen-CC0WNn2p.js} | 2 +- frontend/dist/assets/Homelab-BhIvbmk3.js | 1 - frontend/dist/assets/Homelab-vuFxJN2L.js | 1 + ...DuDMBJg1.js => MenueSchublade-BT67m9bh.js} | 2 +- frontend/dist/assets/Modelle-D5h4V30V.js | 1 - frontend/dist/assets/Modelle-D7lkCzi4.js | 1 + frontend/dist/assets/Updates-Bz_hFzqr.js | 2 ++ frontend/dist/assets/Updates-pvSCGi9I.js | 2 -- frontend/dist/assets/index-BAH01Yfc.js | 11 +++++++ frontend/dist/assets/index-Cb8UJMqV.css | 2 ++ frontend/dist/assets/index-XtuDiTus.css | 2 -- frontend/dist/assets/index-_ndC28sQ.js | 11 ------- frontend/dist/index.html | 4 +-- .../src/components/homelab/GeraeteListe.tsx | 26 +++++++++++++-- .../components/homelab/UpdateListe.test.tsx | 6 ++++ frontend/src/lib/homelab.test.ts | 6 ++++ frontend/src/lib/homelab.ts | 14 ++++++++ frontend/src/lib/typen.ts | 2 ++ 30 files changed, 146 insertions(+), 32 deletions(-) create mode 100644 frontend/dist/assets/Auftraege-CEbGzmGA.js delete mode 100644 frontend/dist/assets/Auftraege-DzO2OZDP.js rename frontend/dist/assets/{Dienste-DZuQMkdN.js => Dienste-U6DJEyTa.js} (94%) rename frontend/dist/assets/{Einstellungen-r4tFurrz.js => Einstellungen-CC0WNn2p.js} (79%) delete mode 100644 frontend/dist/assets/Homelab-BhIvbmk3.js create mode 100644 frontend/dist/assets/Homelab-vuFxJN2L.js rename frontend/dist/assets/{MenueSchublade-DuDMBJg1.js => MenueSchublade-BT67m9bh.js} (93%) delete mode 100644 frontend/dist/assets/Modelle-D5h4V30V.js create mode 100644 frontend/dist/assets/Modelle-D7lkCzi4.js create mode 100644 frontend/dist/assets/Updates-Bz_hFzqr.js delete mode 100644 frontend/dist/assets/Updates-pvSCGi9I.js create mode 100644 frontend/dist/assets/index-BAH01Yfc.js create mode 100644 frontend/dist/assets/index-Cb8UJMqV.css delete mode 100644 frontend/dist/assets/index-XtuDiTus.css delete mode 100644 frontend/dist/assets/index-_ndC28sQ.js diff --git a/backend/kern/ziele.py b/backend/kern/ziele.py index c3ef38a..8b6d5ed 100644 --- a/backend/kern/ziele.py +++ b/backend/kern/ziele.py @@ -49,6 +49,7 @@ class ZielStand: geprueft: float | None = None # Unix-Sekunden der letzten Prüfung rueckweg: str | None = None # „Sicherung vor jedem Lauf", „Snapshot", „nur Backup" rueckweg_art: str | None = None # Kurzform für die Oberfläche: „snapshot“, „sicherung“ oder „keiner“ + platte: dict | None = None # {"belegt", "gesamt"} in Bytes, wo bekannt (laufende Container) def als_dict(self) -> dict: daten = asdict(self) diff --git a/backend/services/homelab/inventar.py b/backend/services/homelab/inventar.py index 59cce17..a3a5b1b 100644 --- a/backend/services/homelab/inventar.py +++ b/backend/services/homelab/inventar.py @@ -210,7 +210,7 @@ def _gast_ziel(gast: dict, jetzt: float) -> ZielStand: laeuft = gast.get("status") == "running" ziel = ZielStand(id=zid, name=app.name if app else str(gast.get("name") or zid), art=art, instanz="homelab", erreichbar=(erreichbar(url) if laeuft else False) if url else (laeuft or None), - rueckweg=_rueckweg(gast), rueckweg_art=_rueckweg_art(gast)) + rueckweg=_rueckweg(gast), rueckweg_art=_rueckweg_art(gast), platte=gast.get("platte")) if not laeuft: ziel.bausteine.append(BausteinStand(id="status", name="Status", zustand="unbekannt", grund=f"Der Gast ist {gast.get('status') or 'unbekannt'}.")) diff --git a/backend/services/waechter.py b/backend/services/waechter.py index 50d533d..4a4046d 100644 --- a/backend/services/waechter.py +++ b/backend/services/waechter.py @@ -558,12 +558,43 @@ def pruefe_gaeste() -> list[Befund]: for e in inventar.erreichbarkeit() if not e["ok"]] +GAST_PLATTE_GELB = 0.85 +GAST_PLATTE_ROT = 0.95 + + +def _gb_komma(n: float) -> str: + return f"{n / 1e9:.1f}".replace(".", ",") + + +def pruefe_gast_platten() -> list[Befund]: + """Homelab: Läuft die Platte eines Containers voll? Am 24.09.2026 stand AdGuard bei 100 %: Das Abfrageprotokoll + schrieb nicht mehr, die Paketsuche scheiterte — und keine Anzeige sagte es.""" + from services.homelab import apps, kanal + daten = kanal.bericht() + befunde = [] + for g in (daten or {}).get("bericht", {}).get("gaeste") or []: + platte = g.get("platte") or {} + gesamt, belegt = platte.get("gesamt"), platte.get("belegt") or 0 + if not gesamt or belegt / gesamt < GAST_PLATTE_GELB: + continue + app = apps.app_fuer((g.get("app") or {}).get("kennung"), g.get("name")) + name = app.name if app else str(g.get("name") or g["vmid"]) + anteil = belegt / gesamt + befunde.append(Befund( + id=f"gast-platte:{g['vmid']}", stufe="rot" if anteil >= GAST_PLATTE_ROT else "gelb", + titel=f"Platte von {name} zu {min(100, round(anteil * 100))} % voll", + text=(f"{_gb_komma(belegt)} von {_gb_komma(gesamt)} GB belegt (Container {g['vmid']}). Platz schaffen " + "oder in Proxmox die Platte vergrößern: Container → Ressourcen → Laufwerk → Größe ändern."), + quelle=f"ct-{g['vmid']}")) + return befunde + + # Was jede Rolle prüft. Die KI-Box kennt Dienste, Timer, Hermes und ihren Kern; der Homelab-Teil # den Ausführer auf dem Proxmox-Host und seine Gäste. PRUEFUNGEN = { "box": (pruefe_dienste, pruefe_timer_dienste, pruefe_hermes_jobs, pruefe_kern, pruefe_platte, pruefe_festgehalten, pruefe_partner, pruefe_probe_wiederherstellung), - "homelab": (pruefe_platte, pruefe_partner, pruefe_ausfuehrer, pruefe_gaeste), + "homelab": (pruefe_platte, pruefe_partner, pruefe_ausfuehrer, pruefe_gaeste, pruefe_gast_platten), }[ROLLE] PRUEFUNGEN += (__import__("services.homelab.pflege").homelab.pflege.pruefe_paketlisten,) if ROLLE == "homelab" else () BETREFF_PROBLEM, BETREFF_OK = {"box": ("[Box-Problem]", "[Box wieder ok]"), diff --git a/backend/tests/test_homelab.py b/backend/tests/test_homelab.py index 0259a64..4b05ec6 100644 --- a/backend/tests/test_homelab.py +++ b/backend/tests/test_homelab.py @@ -361,3 +361,25 @@ def test_ausfuehrer_erkennt_beide_formate_von_update(): assert a.app_kennung_aus(alt) == "adguard" assert a.app_kennung_aus(neu) == "gitea" assert a.app_kennung_aus("") is None + + +def test_waechter_und_uebersicht_sehen_volle_gastplatten(daten): + """24.09.2026: AdGuard stand bei 100 % seiner 2 GB — jetzt sagen es Wächter und Geräteliste.""" + from services import waechter + bericht = json.loads(json.dumps(BERICHT)) + for g in bericht["gaeste"]: + if g["vmid"] == 100: + g["platte"] = {"belegt": 2_000_000_000, "gesamt": 2_040_000_000} + if g["vmid"] == 104: + g["platte"] = {"belegt": 1_800_000_000, "gesamt": 2_000_000_000} + if g["vmid"] == 101: + g["platte"] = {"belegt": 500_000_000, "gesamt": 2_000_000_000} + kanal.bericht_speichern(bericht) + befunde = {b.id: b for b in waechter.pruefe_gast_platten()} + assert set(befunde) == {"gast-platte:100", "gast-platte:104"} + assert (befunde["gast-platte:100"].stufe, befunde["gast-platte:104"].stufe) == ("rot", "gelb") + assert befunde["gast-platte:100"].titel == "Platte von AdGuard Home zu 98 % voll" + assert "2,0 von 2,0 GB" in befunde["gast-platte:100"].text + z = {z["id"]: z for z in inventar.ziele()["ziele"]} + assert z["ct-100"]["platte"] == {"belegt": 2_000_000_000, "gesamt": 2_040_000_000} and z["pve"]["platte"] is None + diff --git a/backend/tests/test_partner.py b/backend/tests/test_partner.py index 67ac170..aea126c 100644 --- a/backend/tests/test_partner.py +++ b/backend/tests/test_partner.py @@ -220,7 +220,7 @@ from services import waechter print(json.dumps({"pruefungen": [p.__name__ for p in waechter.PRUEFUNGEN], "daten": str(waechter.DATEN_DIR)})) """) assert ergebnis["pruefungen"] == ["pruefe_platte", "pruefe_partner", "pruefe_ausfuehrer", "pruefe_gaeste", - "pruefe_paketlisten"] + "pruefe_gast_platten", "pruefe_paketlisten"] def test_homelab_rolle_hat_die_homelab_schnittstellen(tmp_path): diff --git a/deploy/homelab/ausfuehrer.py b/deploy/homelab/ausfuehrer.py index 1e0508f..4b9f8a4 100644 --- a/deploy/homelab/ausfuehrer.py +++ b/deploy/homelab/ausfuehrer.py @@ -349,6 +349,10 @@ def _gast(eintrag: dict, arten: dict[str, str], sicherung: dict, sicherungen: di gast = {"vmid": vmid, "art": art, "name": eintrag.get("name"), "status": eintrag.get("status"), "etiketten": etiketten, "erlaubt": erlaubt(etiketten), "uptime": eintrag.get("uptime"), "snapshots": _snapshots(art, vmid), "sicherungen": sicherungen.get(vmid, [])} + if art == "lxc" and gast["status"] == "running" and eintrag.get("maxdisk"): + # Belegung der rootfs (Proxmox liest sie bei laufenden Containern mit). Am 24.09.2026 stand AdGuard bei + # 100 % — das Abfrageprotokoll schrieb nicht mehr, die Paketsuche scheiterte, und niemand sah es. + gast["platte"] = {"belegt": int(eintrag.get("disk") or 0), "gesamt": int(eintrag["maxdisk"])} try: konfig = _pvesh(f"/nodes/{NODE}/{art}/{vmid}/config") except Exception as exc: diff --git a/docs/ARCHITEKTUR.md b/docs/ARCHITEKTUR.md index 7d76edf..98365ac 100644 --- a/docs/ARCHITEKTUR.md +++ b/docs/ARCHITEKTUR.md @@ -283,7 +283,8 @@ flowchart LR (`MC_ARCANE_KEY`, Kopfzeile `X-API-Key`). Docker-Updates laufen zuerst nur als Probelauf (`dryRun`); echt erst mit `MC_ARCANE_ECHT=1`. Die Arcane-VM braucht dafür kein Etikett, weil der Ausführer nicht beteiligt ist. - **Wächter** in der Rolle `homelab`: Platte, Partner (die KI-Box), Ausführer (kein Bericht seit 30 min = rot), - jede Weboberfläche der freigegebenen Gäste (außer mitten in ihrem Update-Lauf; das Ergebnis meldet der Lauf) und das + jede Weboberfläche der freigegebenen Gäste (außer mitten in ihrem Update-Lauf; das Ergebnis meldet der Lauf), die + Platten der laufenden Container (ab 85 % gelb, ab 95 % rot; der Ausführer schickt `platte` mit) und das wöchentliche Suchen (gelb, wenn es wiederholt scheitert). - **Oberfläche** (Bereich „Homelab“, nur Daten aus `/api/homelab/…`): - **Cockpit** (`/homelab`): oben die Lage wie das Warnpanel der KI-Box — die große Leuchte (Störung vor Hinweis vor diff --git a/docs/BEDIENUNG.md b/docs/BEDIENUNG.md index 54f7c60..e0b27a0 100644 --- a/docs/BEDIENUNG.md +++ b/docs/BEDIENUNG.md @@ -89,7 +89,8 @@ Wichtige Knöpfe fragen vorher nach. Was du auslöst, bestätigt eine kurze Meld - **Eine Lampe je Gerät** (Proxmox-Host, die Container, Arcane): grün mit der laufenden Version, cyan mit der neuen Version oder der Zahl der Pakete, rot bei „antwortet nicht“. - **Hinweise** des Homelab-Wächters, falls es welche gibt. -- **Geräte:** je Gerät App-Version, Stand der Pakete und ob es im Netz antwortet. „unklar“ heißt: Die Paketlisten im +- **Geräte:** je Gerät App-Version, Stand der Pakete, wie voll die Platte ist (ab 85 % bernstein, ab 95 % rot) und + ob es im Netz antwortet. „unklar“ heißt: Die Paketlisten im Gast sind alt. Der Homelab-Teil erneuert sie jede Nacht selbst, sobald sie älter als eine Woche sind; mit dem kleinen Pfeil daneben geht es sofort. diff --git a/docs/wissen/OFFENE-FAEDEN.md b/docs/wissen/OFFENE-FAEDEN.md index 029f3c8..eda16d0 100644 --- a/docs/wissen/OFFENE-FAEDEN.md +++ b/docs/wissen/OFFENE-FAEDEN.md @@ -26,6 +26,12 @@ Technik: [ARCHITEKTUR.md](../ARCHITEKTUR.md), Abschnitt „Der Homelab-Teil“; ## Offene Einzelpunkte (Homelab) +0. **‼ AdGuard (Container 100): Platte voll (24.09. abends, User-Entscheidung).** 2 GB rootfs, 100 % belegt: + Das Abfrageprotokoll (`/opt/AdGuardHome/data/querylog.json` 462 MB, dazu `querylog.json.1` 539 MB vom 09.08.) + hat sie gefüllt; seit etwa 17:33 schreibt es nicht mehr, und die Paketsuche scheitert („No space left on + device“). Wege: in AdGuard die Aufbewahrung des Abfrageprotokolls kürzen bzw. es leeren, die alte Datei vom + August löschen oder die Platte vergrößern (Proxmox: Container → Ressourcen → Laufwerk → Größe ändern). Gelöscht + oder vergrößert wird nur mit User-Ja. Seit 24.09. meldet der Wächter volle Gastplatten selbst. 1. **Arcane-API-Schlüssel fehlt.** Ohne ihn zeigt die Arcane-Karte die Docker-Images als „unklar“. Anlegen in Arcane (Einstellungen → API-Schlüssel), dann `MC_ARCANE_KEY=…` in `/etc/mc2/homelab.env` im Container 107 und `systemctl restart mc2-homelab mc2-homelab-steward`. Docker-Updates bleiben Probelauf bis `MC_ARCANE_ECHT=1`. diff --git a/frontend/dist/assets/Auftraege-CEbGzmGA.js b/frontend/dist/assets/Auftraege-CEbGzmGA.js new file mode 100644 index 0000000..93bb0a8 --- /dev/null +++ b/frontend/dist/assets/Auftraege-CEbGzmGA.js @@ -0,0 +1,2 @@ +import{c as e,i as t,p as n,s as r,t as i,u as a}from"./button-BheHBEml.js";import{F as o,P as s,n as c,r as l,rt as u,tt as d,ut as f}from"./index-BAH01Yfc.js";import{t as p}from"./Bestaetigen-CE_3b0PK.js";var m=r();function h(e,t){if(e===`os`)return{laeuft:`Ubuntu`,neu:t.count?`${t.count} ${t.count===1?`Paket`:`Pakete`}`:null};if(e===`hermes`)return{laeuft:t.installed_version?`v${t.installed_version}`:`–`,neu:t.behind?`+${t.behind.toLocaleString(`de-DE`)} Änderungen`:null};let n=e===`engine`?`b`:`v`;return{laeuft:t.installed_build==null?`–`:`${n}${t.installed_build}`,neu:t.latest_build!=null&&t.installed_build!=null&&t.latest_build>t.installed_build?`${n}${t.latest_build}`:null}}function g(e,t){return!t||t.error?null:e===`os`?typeof t.count==`number`?t.count>0:null:e===`hermes`?typeof t.behind==`number`?t.behind>0:null:t.latest_build==null||t.installed_build==null?null:t.latest_build>t.installed_build}function _(e){let t=e.trim();return/timed out|timeout|zeitüberschreitung/i.test(t)?`Konnte nicht prüfen: Die Gegenstelle hat nicht rechtzeitig geantwortet. Später klappt es meist wieder.`:/name resolution|name or service not known|network is unreachable|connection (refused|reset)|nicht erreichbar/i.test(t)?`Konnte nicht prüfen: Die Box kommt gerade nicht ins Internet.`:`Konnte nicht prüfen: ${t.length>160?`${t.slice(0,157)}…`:t}`}var v=e=>e.group===`download`||/^download\s/i.test(e.label),y=e=>e.group===`pruefen`||e.label===`Nach Updates suchen`,b=e=>f(e)&&v(e),x=[[/^download\s+(.+)$/i,`Download $1`],[/^OS-Update \(apt\)$/,`Update Betriebssystem`],[/^Engine-Update \(llama\.cpp Vulkan\)$/,`Update Motor (llama.cpp)`],[/^Router-Update \(llama-swap\)$/,`Update llama-swap`],[/^Hermes-Agent-Update$/,`Update Hermes`]],S=[[`Engine (llama.cpp)`,`Motor`],[`Router (llama-swap)`,`llama-swap`],[`Hermes-Agent`,`Hermes`],[`OS (apt)`,`Betriebssystem`]];function C(e){for(let[t,n]of x)if(t.test(e.label))return e.label.replace(t,n);return e.label.startsWith(`Alle aktualisieren`)?S.reduce((e,[t,n])=>e.split(t).join(n),e.label):e.label}function w(e){if(e<60)return`noch unter einer Minute`;let t=Math.round(e/60);if(t<60)return`noch etwa ${t} min`;let n=Math.floor(t/60),r=t%60;return r?`noch etwa ${n} h ${r} min`:`noch etwa ${n} h`}function T(e,t=Date.now()/1e3){let n=Math.max(0,t-e.started_at),r=Math.floor(n/60),i=n<60?`ein paar Sekunden`:r<60?`${r} min`:`${Math.floor(r/60)} h ${r%60} min`;return`${e.state===`queued`?`Wartet`:`Läuft`} seit ${i}`}function E(e){if(e.progress==null)return null;let t=[`${Math.round(e.progress)} %`];return e.total_bytes&&t.push(`${u(e.done_bytes??0,1)} von ${u(e.total_bytes,1)}`),e.eta_s!=null&&f(e)&&t.push(w(e.eta_s)),t.join(` · `)}function D(e){for(let t=(e.log?.length??0)-1;t>=0;t--){let n=e.log[t].trim();if(n&&!n.startsWith(`$ `))return n}return null}function O(e,t=Date.now()/1e3){let n=e.filter(f).sort((e,t)=>e.started_at-t.started_at),r=e.filter(e=>!f(e)&&t-(e.finished_at??e.started_at)<86400).sort((e,t)=>(t.finished_at??t.started_at)-(e.finished_at??e.started_at)).slice(0,3);return[...n,...r]}function k(e,t,n){if(!n)return`Nach dem Download übernimmt ${e} die Rolle „${t}“.`;let r=n.weitere.length?` Die Rolle${n.weitere.length===1?``:`n`} „${n.weitere.join(`“, „`)}“ behält es.`:``;return`Achtung: Nach dem Download übernimmt ${e} die Rolle „${t}“ und ersetzt damit ${n.name}. Das bisherige Modell bleibt auf der Platte.${r}`+(n.zwilling?` Bilder liest vorerst weiter sein Bild-Zwilling, also noch das bisherige Modell.`:``)}function A(e){return`Kurze Unterbrechung: Beim Eintragen lädt llama-swap sofort neu. Was Lucy oder OpenChamber gerade schreiben, bricht ab, und die Modelle werden neu geladen.`+(e?` Mit Rolle passiert das nach dem Download noch einmal.`:``)}var j=n(a(),1),M=e(),N={queued:{text:`Wartet`,art:`cyan`},running:{text:`Läuft`,art:`cyan`},done:{text:`Fertig`,art:`gruen`},failed:{text:`Fehler`,art:`rot`},canceled:{text:`Abgebrochen`,art:`grau`}},P={queued:`bg-cyan`,running:`bg-cyan`,done:`bg-gruen`,failed:`bg-rot`,canceled:`bg-text-3`},F=e=>d(new Date(e*1e3).toISOString());function I(e){let t=(0,m.c)(3),[n,r]=(0,j.useState)(L),i,a;return t[0]===e?(i=t[1],a=t[2]):(i=()=>{if(!e)return;let t=window.setInterval(()=>r(Date.now()/1e3),3e4);return()=>window.clearInterval(t)},a=[e],t[0]=e,t[1]=i,t[2]=a),(0,j.useEffect)(i,a),n}function L(){return Date.now()/1e3}function R(e){let n=(0,m.c)(75),{job:r,onAbbrechen:a,abbrechenGesperrt:o,ebene:s}=e,c=s===void 0?4:s,[u,d]=(0,j.useState)(!1),[h,g]=(0,j.useState)(!1),_;n[0]===r.state?_=n[1]:(_=N[r.state]??{text:r.state,art:`grau`},n[0]=r.state,n[1]=_);let y=_,x;n[2]===r?x=n[3]:(x=C(r),n[2]=r,n[3]=x);let S=x,w;n[4]===r?w=n[5]:(w=E(r),n[4]=r,n[5]=w);let O=w,k;n[6]===r?k=n[7]:(k=D(r),n[6]=r,n[7]=k);let A=k,L;n[8]===r?L=n[9]:(L=f(r),n[8]=r,n[9]=L);let R=L,z=I(R),B;n[10]!==r||n[11]!==a?(B=!!a&&b(r),n[10]=r,n[11]=a,n[12]=B):B=n[12];let V=B,H,U,W,G,K,q,J,Y;if(n[13]!==o||n[14]!==V||n[15]!==c||n[16]!==O||n[17]!==z||n[18]!==r||n[19]!==R||n[20]!==A||n[21]!==h||n[22]!==S||n[23]!==y.art||n[24]!==y.text){let e=(r.log??[]).slice(-12),a=c===3?`h3`:`h4`;J=`Auftrag: ${S}`,Y=`flex flex-col gap-2.5 rounded-xl border border-linie bg-erhaben/50 p-3.5`;let s;n[33]!==a||n[34]!==S?(s=(0,M.jsx)(a,{className:`m-0 min-w-0 text-[15px] leading-snug font-semibold break-words`,children:S}),n[33]=a,n[34]=S,n[35]=s):s=n[35];let u;n[36]!==y.art||n[37]!==y.text?(u=(0,M.jsx)(l,{art:y.art,children:y.text}),n[36]=y.art,n[37]=y.text,n[38]=u):u=n[38],n[39]!==s||n[40]!==u?(H=(0,M.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[s,u]}),n[39]=s,n[40]=u,n[41]=H):H=n[41],n[42]!==r.progress||n[43]!==r.state||n[44]!==S?(U=r.progress!=null&&(0,M.jsx)(`div`,{role:`progressbar`,"aria-label":`Fortschritt: ${S}`,"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":Math.round(r.progress),className:`h-2 overflow-hidden rounded-full bg-linie`,children:(0,M.jsx)(`div`,{className:t(`h-full`,P[r.state]??`bg-cyan`),style:{width:`${Math.max(2,Math.min(100,r.progress))}%`}})}),n[42]=r.progress,n[43]=r.state,n[44]=S,n[45]=U):U=n[45];let f;n[46]!==O||n[47]!==z||n[48]!==r||n[49]!==R||n[50]!==y.text?(f=R?O??T(r,z):`${y.text} · ${F(r.finished_at??r.started_at)}`,n[46]=O,n[47]=z,n[48]=r,n[49]=R,n[50]=y.text,n[51]=f):f=n[51],n[52]===f?W=n[53]:(W=(0,M.jsx)(`p`,{className:`ziffern m-0 text-sm text-text-2`,children:f}),n[52]=f,n[53]=W),n[54]!==r.progress||n[55]!==r.state||n[56]!==R||n[57]!==A?(G=A&&(r.state===`failed`||R&&r.progress==null)&&(0,M.jsx)(`p`,{className:r.state===`failed`?`m-0 text-sm break-words text-rot-text`:`ziffern m-0 line-clamp-2 text-xs break-all text-text-3`,children:r.state===`failed`?`Letzte Meldung: ${A}`:A}),n[54]=r.progress,n[55]=r.state,n[56]=R,n[57]=A,n[58]=G):G=n[58],K=(V||e.length>1)&&(0,M.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[V&&(0,M.jsx)(i,{variant:`outline`,size:`sm`,disabled:o,onClick:()=>d(!0),children:`Abbrechen`}),e.length>1&&(0,M.jsx)(i,{variant:`ghost`,size:`sm`,"aria-expanded":h,onClick:()=>g(!h),children:h?`Protokoll zu`:`Protokoll`})]}),q=h&&(0,M.jsx)(`pre`,{className:`ziffern m-0 max-h-56 overflow-auto rounded-md bg-[#0b0d0f] p-2 text-xs whitespace-pre-wrap break-all text-text-2`,children:e.join(` +`)}),n[13]=o,n[14]=V,n[15]=c,n[16]=O,n[17]=z,n[18]=r,n[19]=R,n[20]=A,n[21]=h,n[22]=S,n[23]=y.art,n[24]=y.text,n[25]=H,n[26]=U,n[27]=W,n[28]=G,n[29]=K,n[30]=q,n[31]=J,n[32]=Y}else H=n[25],U=n[26],W=n[27],G=n[28],K=n[29],q=n[30],J=n[31],Y=n[32];let X;n[59]!==V||n[60]!==u||n[61]!==r||n[62]!==a||n[63]!==S?(X=V&&(0,M.jsx)(p,{offen:u,gefahr:!0,titel:`Auftrag abbrechen?`,text:v(r)?`Der ${S} stoppt. Du kannst ihn später über „Modelle selbst suchen“ neu starten.`:`„${S}“ wird abgebrochen.`,knopf:`Ja, abbrechen`,neinKnopf:`Weiterlaufen lassen`,onNein:()=>d(!1),onJa:()=>{u&&(d(!1),a?.(r))}}),n[59]=V,n[60]=u,n[61]=r,n[62]=a,n[63]=S,n[64]=X):X=n[64];let Z;return n[65]!==H||n[66]!==U||n[67]!==W||n[68]!==G||n[69]!==K||n[70]!==q||n[71]!==X||n[72]!==J||n[73]!==Y?(Z=(0,M.jsxs)(`article`,{"aria-label":J,className:Y,children:[H,U,W,G,K,q,X]}),n[65]=H,n[66]=U,n[67]=W,n[68]=G,n[69]=K,n[70]=q,n[71]=X,n[72]=J,n[73]=Y,n[74]=Z):Z=n[74],Z}function z(e){let t=(0,m.c)(17),{alsPanel:n}=e,r=n!==void 0&&n,i=o(),a=s(),l,u;if(t[0]!==a||t[1]!==r||t[2]!==i.data||t[3]!==i.error||t[4]!==i.isError){u=Symbol.for(`react.early_return_sentinel`);bb0:{let e=O(i.data?.jobs??[]);if(e.length>0){let n;t[7]!==a||t[8]!==r?(n=e=>(0,M.jsx)(R,{job:e,ebene:r?3:4,abbrechenGesperrt:a.isPending,onAbbrechen:e=>a.mutate({id:e.id,titel:C(e)})},e.id),t[7]=a,t[8]=r,t[9]=n):n=t[9],l=(0,M.jsx)(`div`,{className:`grid items-start gap-2.5 lg:grid-cols-2`,children:e.map(n)})}else if(i.isError&&!i.data){let e;t[10]===i.error.message?e=t[11]:(e=(0,M.jsxs)(`p`,{role:`alert`,className:`text-sm text-rot-text`,children:[`Die Aufträge lassen sich gerade nicht lesen: `,i.error.message]}),t[10]=i.error.message,t[11]=e),l=e}else{u=null;break bb0}}t[0]=a,t[1]=r,t[2]=i.data,t[3]=i.error,t[4]=i.isError,t[5]=l,t[6]=u}else l=t[5],u=t[6];if(u!==Symbol.for(`react.early_return_sentinel`))return u;if(r){let e;return t[12]===l?e=t[13]:(e=(0,M.jsx)(c,{titel:`Aufträge`,children:l}),t[12]=l,t[13]=e),e}let d;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,M.jsx)(`h3`,{className:`schild m-0 text-sm text-text-3`,children:`Aufträge`}),t[14]=d):d=t[14];let f;return t[15]===l?f=t[16]:(f=(0,M.jsxs)(`section`,{"aria-label":`Aufträge`,className:`flex flex-col gap-2.5`,children:[d,l]}),t[15]=l,t[16]=f),f}export{D as a,h as c,y as i,g as n,_ as o,A as r,k as s,z as t}; \ No newline at end of file diff --git a/frontend/dist/assets/Auftraege-DzO2OZDP.js b/frontend/dist/assets/Auftraege-DzO2OZDP.js deleted file mode 100644 index 4ae2fd1..0000000 --- a/frontend/dist/assets/Auftraege-DzO2OZDP.js +++ /dev/null @@ -1,2 +0,0 @@ -import{c as e,i as t,p as n,s as r,t as i,u as a}from"./button-BheHBEml.js";import{M as o,Q as s,et as c,j as l,n as u,r as d,st as f}from"./index-_ndC28sQ.js";import{t as p}from"./Bestaetigen-CE_3b0PK.js";var m=r();function h(e,t){if(e===`os`)return{laeuft:`Ubuntu`,neu:t.count?`${t.count} ${t.count===1?`Paket`:`Pakete`}`:null};if(e===`hermes`)return{laeuft:t.installed_version?`v${t.installed_version}`:`–`,neu:t.behind?`+${t.behind.toLocaleString(`de-DE`)} Änderungen`:null};let n=e===`engine`?`b`:`v`;return{laeuft:t.installed_build==null?`–`:`${n}${t.installed_build}`,neu:t.latest_build!=null&&t.installed_build!=null&&t.latest_build>t.installed_build?`${n}${t.latest_build}`:null}}function g(e,t){return!t||t.error?null:e===`os`?typeof t.count==`number`?t.count>0:null:e===`hermes`?typeof t.behind==`number`?t.behind>0:null:t.latest_build==null||t.installed_build==null?null:t.latest_build>t.installed_build}function _(e){let t=e.trim();return/timed out|timeout|zeitüberschreitung/i.test(t)?`Konnte nicht prüfen: Die Gegenstelle hat nicht rechtzeitig geantwortet. Später klappt es meist wieder.`:/name resolution|name or service not known|network is unreachable|connection (refused|reset)|nicht erreichbar/i.test(t)?`Konnte nicht prüfen: Die Box kommt gerade nicht ins Internet.`:`Konnte nicht prüfen: ${t.length>160?`${t.slice(0,157)}…`:t}`}var v=e=>e.group===`download`||/^download\s/i.test(e.label),y=e=>e.group===`pruefen`||e.label===`Nach Updates suchen`,b=e=>f(e)&&v(e),x=[[/^download\s+(.+)$/i,`Download $1`],[/^OS-Update \(apt\)$/,`Update Betriebssystem`],[/^Engine-Update \(llama\.cpp Vulkan\)$/,`Update Motor (llama.cpp)`],[/^Router-Update \(llama-swap\)$/,`Update llama-swap`],[/^Hermes-Agent-Update$/,`Update Hermes`]],S=[[`Engine (llama.cpp)`,`Motor`],[`Router (llama-swap)`,`llama-swap`],[`Hermes-Agent`,`Hermes`],[`OS (apt)`,`Betriebssystem`]];function C(e){for(let[t,n]of x)if(t.test(e.label))return e.label.replace(t,n);return e.label.startsWith(`Alle aktualisieren`)?S.reduce((e,[t,n])=>e.split(t).join(n),e.label):e.label}function w(e){if(e<60)return`noch unter einer Minute`;let t=Math.round(e/60);if(t<60)return`noch etwa ${t} min`;let n=Math.floor(t/60),r=t%60;return r?`noch etwa ${n} h ${r} min`:`noch etwa ${n} h`}function T(e,t=Date.now()/1e3){let n=Math.max(0,t-e.started_at),r=Math.floor(n/60),i=n<60?`ein paar Sekunden`:r<60?`${r} min`:`${Math.floor(r/60)} h ${r%60} min`;return`${e.state===`queued`?`Wartet`:`Läuft`} seit ${i}`}function E(e){if(e.progress==null)return null;let t=[`${Math.round(e.progress)} %`];return e.total_bytes&&t.push(`${c(e.done_bytes??0,1)} von ${c(e.total_bytes,1)}`),e.eta_s!=null&&f(e)&&t.push(w(e.eta_s)),t.join(` · `)}function D(e){for(let t=(e.log?.length??0)-1;t>=0;t--){let n=e.log[t].trim();if(n&&!n.startsWith(`$ `))return n}return null}function O(e,t=Date.now()/1e3){let n=e.filter(f).sort((e,t)=>e.started_at-t.started_at),r=e.filter(e=>!f(e)&&t-(e.finished_at??e.started_at)<86400).sort((e,t)=>(t.finished_at??t.started_at)-(e.finished_at??e.started_at)).slice(0,3);return[...n,...r]}function k(e,t,n){if(!n)return`Nach dem Download übernimmt ${e} die Rolle „${t}“.`;let r=n.weitere.length?` Die Rolle${n.weitere.length===1?``:`n`} „${n.weitere.join(`“, „`)}“ behält es.`:``;return`Achtung: Nach dem Download übernimmt ${e} die Rolle „${t}“ und ersetzt damit ${n.name}. Das bisherige Modell bleibt auf der Platte.${r}`+(n.zwilling?` Bilder liest vorerst weiter sein Bild-Zwilling, also noch das bisherige Modell.`:``)}function A(e){return`Kurze Unterbrechung: Beim Eintragen lädt llama-swap sofort neu. Was Lucy oder OpenChamber gerade schreiben, bricht ab, und die Modelle werden neu geladen.`+(e?` Mit Rolle passiert das nach dem Download noch einmal.`:``)}var j=n(a(),1),M=e(),N={queued:{text:`Wartet`,art:`cyan`},running:{text:`Läuft`,art:`cyan`},done:{text:`Fertig`,art:`gruen`},failed:{text:`Fehler`,art:`rot`},canceled:{text:`Abgebrochen`,art:`grau`}},P={queued:`bg-cyan`,running:`bg-cyan`,done:`bg-gruen`,failed:`bg-rot`,canceled:`bg-text-3`},F=e=>s(new Date(e*1e3).toISOString());function I(e){let t=(0,m.c)(3),[n,r]=(0,j.useState)(L),i,a;return t[0]===e?(i=t[1],a=t[2]):(i=()=>{if(!e)return;let t=window.setInterval(()=>r(Date.now()/1e3),3e4);return()=>window.clearInterval(t)},a=[e],t[0]=e,t[1]=i,t[2]=a),(0,j.useEffect)(i,a),n}function L(){return Date.now()/1e3}function R(e){let n=(0,m.c)(75),{job:r,onAbbrechen:a,abbrechenGesperrt:o,ebene:s}=e,c=s===void 0?4:s,[l,u]=(0,j.useState)(!1),[h,g]=(0,j.useState)(!1),_;n[0]===r.state?_=n[1]:(_=N[r.state]??{text:r.state,art:`grau`},n[0]=r.state,n[1]=_);let y=_,x;n[2]===r?x=n[3]:(x=C(r),n[2]=r,n[3]=x);let S=x,w;n[4]===r?w=n[5]:(w=E(r),n[4]=r,n[5]=w);let O=w,k;n[6]===r?k=n[7]:(k=D(r),n[6]=r,n[7]=k);let A=k,L;n[8]===r?L=n[9]:(L=f(r),n[8]=r,n[9]=L);let R=L,z=I(R),B;n[10]!==r||n[11]!==a?(B=!!a&&b(r),n[10]=r,n[11]=a,n[12]=B):B=n[12];let V=B,H,U,W,G,K,q,J,Y;if(n[13]!==o||n[14]!==V||n[15]!==c||n[16]!==O||n[17]!==z||n[18]!==r||n[19]!==R||n[20]!==A||n[21]!==h||n[22]!==S||n[23]!==y.art||n[24]!==y.text){let e=(r.log??[]).slice(-12),a=c===3?`h3`:`h4`;J=`Auftrag: ${S}`,Y=`flex flex-col gap-2.5 rounded-xl border border-linie bg-erhaben/50 p-3.5`;let s;n[33]!==a||n[34]!==S?(s=(0,M.jsx)(a,{className:`m-0 min-w-0 text-[15px] leading-snug font-semibold break-words`,children:S}),n[33]=a,n[34]=S,n[35]=s):s=n[35];let l;n[36]!==y.art||n[37]!==y.text?(l=(0,M.jsx)(d,{art:y.art,children:y.text}),n[36]=y.art,n[37]=y.text,n[38]=l):l=n[38],n[39]!==s||n[40]!==l?(H=(0,M.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[s,l]}),n[39]=s,n[40]=l,n[41]=H):H=n[41],n[42]!==r.progress||n[43]!==r.state||n[44]!==S?(U=r.progress!=null&&(0,M.jsx)(`div`,{role:`progressbar`,"aria-label":`Fortschritt: ${S}`,"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":Math.round(r.progress),className:`h-2 overflow-hidden rounded-full bg-linie`,children:(0,M.jsx)(`div`,{className:t(`h-full`,P[r.state]??`bg-cyan`),style:{width:`${Math.max(2,Math.min(100,r.progress))}%`}})}),n[42]=r.progress,n[43]=r.state,n[44]=S,n[45]=U):U=n[45];let f;n[46]!==O||n[47]!==z||n[48]!==r||n[49]!==R||n[50]!==y.text?(f=R?O??T(r,z):`${y.text} · ${F(r.finished_at??r.started_at)}`,n[46]=O,n[47]=z,n[48]=r,n[49]=R,n[50]=y.text,n[51]=f):f=n[51],n[52]===f?W=n[53]:(W=(0,M.jsx)(`p`,{className:`ziffern m-0 text-sm text-text-2`,children:f}),n[52]=f,n[53]=W),n[54]!==r.progress||n[55]!==r.state||n[56]!==R||n[57]!==A?(G=A&&(r.state===`failed`||R&&r.progress==null)&&(0,M.jsx)(`p`,{className:r.state===`failed`?`m-0 text-sm break-words text-rot-text`:`ziffern m-0 line-clamp-2 text-xs break-all text-text-3`,children:r.state===`failed`?`Letzte Meldung: ${A}`:A}),n[54]=r.progress,n[55]=r.state,n[56]=R,n[57]=A,n[58]=G):G=n[58],K=(V||e.length>1)&&(0,M.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[V&&(0,M.jsx)(i,{variant:`outline`,size:`sm`,disabled:o,onClick:()=>u(!0),children:`Abbrechen`}),e.length>1&&(0,M.jsx)(i,{variant:`ghost`,size:`sm`,"aria-expanded":h,onClick:()=>g(!h),children:h?`Protokoll zu`:`Protokoll`})]}),q=h&&(0,M.jsx)(`pre`,{className:`ziffern m-0 max-h-56 overflow-auto rounded-md bg-[#0b0d0f] p-2 text-xs whitespace-pre-wrap break-all text-text-2`,children:e.join(` -`)}),n[13]=o,n[14]=V,n[15]=c,n[16]=O,n[17]=z,n[18]=r,n[19]=R,n[20]=A,n[21]=h,n[22]=S,n[23]=y.art,n[24]=y.text,n[25]=H,n[26]=U,n[27]=W,n[28]=G,n[29]=K,n[30]=q,n[31]=J,n[32]=Y}else H=n[25],U=n[26],W=n[27],G=n[28],K=n[29],q=n[30],J=n[31],Y=n[32];let X;n[59]!==V||n[60]!==l||n[61]!==r||n[62]!==a||n[63]!==S?(X=V&&(0,M.jsx)(p,{offen:l,gefahr:!0,titel:`Auftrag abbrechen?`,text:v(r)?`Der ${S} stoppt. Du kannst ihn später über „Modelle selbst suchen“ neu starten.`:`„${S}“ wird abgebrochen.`,knopf:`Ja, abbrechen`,neinKnopf:`Weiterlaufen lassen`,onNein:()=>u(!1),onJa:()=>{l&&(u(!1),a?.(r))}}),n[59]=V,n[60]=l,n[61]=r,n[62]=a,n[63]=S,n[64]=X):X=n[64];let Z;return n[65]!==H||n[66]!==U||n[67]!==W||n[68]!==G||n[69]!==K||n[70]!==q||n[71]!==X||n[72]!==J||n[73]!==Y?(Z=(0,M.jsxs)(`article`,{"aria-label":J,className:Y,children:[H,U,W,G,K,q,X]}),n[65]=H,n[66]=U,n[67]=W,n[68]=G,n[69]=K,n[70]=q,n[71]=X,n[72]=J,n[73]=Y,n[74]=Z):Z=n[74],Z}function z(e){let t=(0,m.c)(17),{alsPanel:n}=e,r=n!==void 0&&n,i=o(),a=l(),s,c;if(t[0]!==a||t[1]!==r||t[2]!==i.data||t[3]!==i.error||t[4]!==i.isError){c=Symbol.for(`react.early_return_sentinel`);bb0:{let e=O(i.data?.jobs??[]);if(e.length>0){let n;t[7]!==a||t[8]!==r?(n=e=>(0,M.jsx)(R,{job:e,ebene:r?3:4,abbrechenGesperrt:a.isPending,onAbbrechen:e=>a.mutate({id:e.id,titel:C(e)})},e.id),t[7]=a,t[8]=r,t[9]=n):n=t[9],s=(0,M.jsx)(`div`,{className:`grid items-start gap-2.5 lg:grid-cols-2`,children:e.map(n)})}else if(i.isError&&!i.data){let e;t[10]===i.error.message?e=t[11]:(e=(0,M.jsxs)(`p`,{role:`alert`,className:`text-sm text-rot-text`,children:[`Die Aufträge lassen sich gerade nicht lesen: `,i.error.message]}),t[10]=i.error.message,t[11]=e),s=e}else{c=null;break bb0}}t[0]=a,t[1]=r,t[2]=i.data,t[3]=i.error,t[4]=i.isError,t[5]=s,t[6]=c}else s=t[5],c=t[6];if(c!==Symbol.for(`react.early_return_sentinel`))return c;if(r){let e;return t[12]===s?e=t[13]:(e=(0,M.jsx)(u,{titel:`Aufträge`,children:s}),t[12]=s,t[13]=e),e}let d;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,M.jsx)(`h3`,{className:`schild m-0 text-sm text-text-3`,children:`Aufträge`}),t[14]=d):d=t[14];let f;return t[15]===s?f=t[16]:(f=(0,M.jsxs)(`section`,{"aria-label":`Aufträge`,className:`flex flex-col gap-2.5`,children:[d,s]}),t[15]=s,t[16]=f),f}export{D as a,h as c,y as i,g as n,_ as o,A as r,k as s,z as t}; \ No newline at end of file diff --git a/frontend/dist/assets/Dienste-DZuQMkdN.js b/frontend/dist/assets/Dienste-U6DJEyTa.js similarity index 94% rename from frontend/dist/assets/Dienste-DZuQMkdN.js rename to frontend/dist/assets/Dienste-U6DJEyTa.js index 401fc3a..e747dc7 100644 --- a/frontend/dist/assets/Dienste-DZuQMkdN.js +++ b/frontend/dist/assets/Dienste-U6DJEyTa.js @@ -1 +1 @@ -import{c as e,i as t,p as n,s as r,t as i,u as a}from"./button-BheHBEml.js";import{L as o,S as s,bt as c,ft as l,ot as u,rt as d}from"./index-_ndC28sQ.js";import{a as f,i as p,n as m,r as h,t as g}from"./sheet-CKp82pOA.js";var _=r(),v=n(a(),1),y=e();function b(e){let t=(0,_.c)(4),{unit:n}=e,r=o(n),i;if(r.isPending)i=`Wird gelesen …`;else if(r.isError)i=`Das Protokoll lässt sich gerade nicht lesen: ${r.error.message}`;else if(r.data.ok===!1)i=r.data.err||r.data.text||`Das Protokoll lässt sich nicht lesen.`;else{let e;t[0]===r.data.text?e=t[1]:(e=r.data.text?.trim()||`Noch keine Einträge.`,t[0]=r.data.text,t[1]=e),i=e}let a;return t[2]===i?a=t[3]:(a=(0,y.jsx)(`pre`,{className:`ziffern m-0 max-h-[50vh] w-full basis-full overflow-auto rounded-lg border border-linie bg-[#0b0d0f] p-3 text-xs leading-relaxed whitespace-pre-wrap break-all text-text-2`,children:i}),t[2]=i,t[3]=a),a}function x({offen:e,onSchliessen:n}){let r=c(),a=s(),[o,_]=(0,v.useState)(null),[x,S]=(0,v.useState)(null),[C,w]=(0,v.useState)(null);async function T(e){if(!C){S(null),w(e.unit);try{let t=await l(`/api/maintenance/restart`,{service:e.unit});t.ok?d(`erfolg`,`${e.name} ${e.schlaeft?`wird geweckt`:`startet neu`}.`):d(`fehler`,`${e.name} ließ sich nicht starten: ${u(t)}`),r.invalidateQueries({queryKey:[`dienste`]})}catch(e){d(`fehler`,e.message)}finally{w(null)}}}let E;return E=a.isPending?(0,y.jsx)(`p`,{role:`status`,className:`px-4 text-[15px] text-text-2`,children:`Dienste werden gelesen …`}):a.isError&&!a.data?(0,y.jsxs)(`p`,{role:`alert`,className:`px-4 text-[15px] text-rot-text`,children:[`Die Dienste lassen sich gerade nicht lesen: `,a.error.message]}):a.data?.services.length?(0,y.jsx)(`ul`,{className:`m-0 flex list-none flex-col px-4 pb-4`,children:a.data.services.map(e=>(0,y.jsxs)(`li`,{className:`flex flex-wrap items-center justify-between gap-2 border-t border-linie py-2.5`,children:[(0,y.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2.5`,children:[(0,y.jsx)(`span`,{className:t(`size-2.5 shrink-0 rounded-full`,e.ok?`bg-gruen`:e.schlaeft?`bg-text-3`:`bg-rot`),"aria-hidden":!0}),(0,y.jsxs)(`span`,{className:`min-w-0`,children:[(0,y.jsx)(`span`,{className:`block text-[15px]`,children:e.name}),(0,y.jsxs)(`span`,{className:`ziffern text-xs text-text-3`,children:[e.unit,` · `,e.ok?`läuft`:e.schlaeft?`schläft (abgeschaltet)`:`antwortet nicht`]})]})]}),(0,y.jsxs)(`span`,{className:`flex flex-wrap gap-2`,children:[(0,y.jsx)(i,{variant:o===e.unit?`info`:`ghost`,size:`sm`,"aria-expanded":o===e.unit,onClick:()=>_(o===e.unit?null:e.unit),children:`Protokoll`}),x===e.unit?(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(i,{variant:`gefahr`,size:`sm`,onClick:()=>T(e),children:e.schlaeft?`Wirklich wecken?`:`Wirklich neu starten?`}),(0,y.jsx)(i,{variant:`ghost`,size:`sm`,onClick:()=>S(null),children:`Nein`})]}):(0,y.jsx)(i,{variant:`outline`,size:`sm`,disabled:C!==null,onClick:()=>S(e.unit),children:C===e.unit?`Startet …`:e.schlaeft?`Wecken`:`Neu starten`})]}),o===e.unit&&(0,y.jsx)(b,{unit:e.unit})]},e.unit))}):(0,y.jsx)(`p`,{className:`px-4 text-[15px] text-text-2`,children:`Keine Dienste gefunden.`}),(0,y.jsx)(g,{open:e,onOpenChange:e=>!e&&n(),children:(0,y.jsxs)(m,{side:`right`,className:`gap-3 overflow-y-auto border-linie bg-panel data-[side=right]:w-full data-[side=right]:sm:max-w-2xl`,children:[(0,y.jsxs)(p,{children:[(0,y.jsx)(f,{className:`schild text-lg`,children:`Dienste und Protokolle`}),(0,y.jsx)(h,{className:`text-text-2`,children:`Welcher Dienst läuft, was er zuletzt geschrieben hat.`})]}),E]})})}export{x as Dienste}; \ No newline at end of file +import{c as e,i as t,p as n,s as r,t as i,u as a}from"./button-BheHBEml.js";import{B as o,Ct as s,T as c,ht as l,lt as u,ot as d}from"./index-BAH01Yfc.js";import{a as f,i as p,n as m,r as h,t as g}from"./sheet-CKp82pOA.js";var _=r(),v=n(a(),1),y=e();function b(e){let t=(0,_.c)(4),{unit:n}=e,r=o(n),i;if(r.isPending)i=`Wird gelesen …`;else if(r.isError)i=`Das Protokoll lässt sich gerade nicht lesen: ${r.error.message}`;else if(r.data.ok===!1)i=r.data.err||r.data.text||`Das Protokoll lässt sich nicht lesen.`;else{let e;t[0]===r.data.text?e=t[1]:(e=r.data.text?.trim()||`Noch keine Einträge.`,t[0]=r.data.text,t[1]=e),i=e}let a;return t[2]===i?a=t[3]:(a=(0,y.jsx)(`pre`,{className:`ziffern m-0 max-h-[50vh] w-full basis-full overflow-auto rounded-lg border border-linie bg-[#0b0d0f] p-3 text-xs leading-relaxed whitespace-pre-wrap break-all text-text-2`,children:i}),t[2]=i,t[3]=a),a}function x({offen:e,onSchliessen:n}){let r=s(),a=c(),[o,_]=(0,v.useState)(null),[x,S]=(0,v.useState)(null),[C,w]=(0,v.useState)(null);async function T(e){if(!C){S(null),w(e.unit);try{let t=await l(`/api/maintenance/restart`,{service:e.unit});t.ok?d(`erfolg`,`${e.name} ${e.schlaeft?`wird geweckt`:`startet neu`}.`):d(`fehler`,`${e.name} ließ sich nicht starten: ${u(t)}`),r.invalidateQueries({queryKey:[`dienste`]})}catch(e){d(`fehler`,e.message)}finally{w(null)}}}let E;return E=a.isPending?(0,y.jsx)(`p`,{role:`status`,className:`px-4 text-[15px] text-text-2`,children:`Dienste werden gelesen …`}):a.isError&&!a.data?(0,y.jsxs)(`p`,{role:`alert`,className:`px-4 text-[15px] text-rot-text`,children:[`Die Dienste lassen sich gerade nicht lesen: `,a.error.message]}):a.data?.services.length?(0,y.jsx)(`ul`,{className:`m-0 flex list-none flex-col px-4 pb-4`,children:a.data.services.map(e=>(0,y.jsxs)(`li`,{className:`flex flex-wrap items-center justify-between gap-2 border-t border-linie py-2.5`,children:[(0,y.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2.5`,children:[(0,y.jsx)(`span`,{className:t(`size-2.5 shrink-0 rounded-full`,e.ok?`bg-gruen`:e.schlaeft?`bg-text-3`:`bg-rot`),"aria-hidden":!0}),(0,y.jsxs)(`span`,{className:`min-w-0`,children:[(0,y.jsx)(`span`,{className:`block text-[15px]`,children:e.name}),(0,y.jsxs)(`span`,{className:`ziffern text-xs text-text-3`,children:[e.unit,` · `,e.ok?`läuft`:e.schlaeft?`schläft (abgeschaltet)`:`antwortet nicht`]})]})]}),(0,y.jsxs)(`span`,{className:`flex flex-wrap gap-2`,children:[(0,y.jsx)(i,{variant:o===e.unit?`info`:`ghost`,size:`sm`,"aria-expanded":o===e.unit,onClick:()=>_(o===e.unit?null:e.unit),children:`Protokoll`}),x===e.unit?(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(i,{variant:`gefahr`,size:`sm`,onClick:()=>T(e),children:e.schlaeft?`Wirklich wecken?`:`Wirklich neu starten?`}),(0,y.jsx)(i,{variant:`ghost`,size:`sm`,onClick:()=>S(null),children:`Nein`})]}):(0,y.jsx)(i,{variant:`outline`,size:`sm`,disabled:C!==null,onClick:()=>S(e.unit),children:C===e.unit?`Startet …`:e.schlaeft?`Wecken`:`Neu starten`})]}),o===e.unit&&(0,y.jsx)(b,{unit:e.unit})]},e.unit))}):(0,y.jsx)(`p`,{className:`px-4 text-[15px] text-text-2`,children:`Keine Dienste gefunden.`}),(0,y.jsx)(g,{open:e,onOpenChange:e=>!e&&n(),children:(0,y.jsxs)(m,{side:`right`,className:`gap-3 overflow-y-auto border-linie bg-panel data-[side=right]:w-full data-[side=right]:sm:max-w-2xl`,children:[(0,y.jsxs)(p,{children:[(0,y.jsx)(f,{className:`schild text-lg`,children:`Dienste und Protokolle`}),(0,y.jsx)(h,{className:`text-text-2`,children:`Welcher Dienst läuft, was er zuletzt geschrieben hat.`})]}),E]})})}export{x as Dienste}; \ No newline at end of file diff --git a/frontend/dist/assets/Einstellungen-r4tFurrz.js b/frontend/dist/assets/Einstellungen-CC0WNn2p.js similarity index 79% rename from frontend/dist/assets/Einstellungen-r4tFurrz.js rename to frontend/dist/assets/Einstellungen-CC0WNn2p.js index 87d060a..ee29cde 100644 --- a/frontend/dist/assets/Einstellungen-r4tFurrz.js +++ b/frontend/dist/assets/Einstellungen-CC0WNn2p.js @@ -1 +1 @@ -import{c as e,i as t,p as n,s as r,t as i,u as a}from"./button-BheHBEml.js";import{B as o,C as s,G as c,U as l,bt as u,dt as d,ft as f,k as p,mt as m,q as h,rt as g,yt as _}from"./index-_ndC28sQ.js";import{a as v,i as y,n as b,r as x,t as S}from"./sheet-CKp82pOA.js";import{t as C}from"./Bestaetigen-CE_3b0PK.js";var w=r(),T=n(a(),1),E=e(),D=[`Montag`,`Dienstag`,`Mittwoch`,`Donnerstag`,`Freitag`,`Samstag`,`Sonntag`],O=Array.from({length:48},(e,t)=>`${String(Math.floor(t/2)).padStart(2,`0`)}:${t%2?`30`:`00`}`),k=new Intl.DateTimeFormat(`de-DE`,{day:`2-digit`,month:`2-digit`,year:`numeric`,hour:`2-digit`,minute:`2-digit`,timeZone:`Europe/Berlin`});function A(e){let t=e?new Date(e):null;return t&&!Number.isNaN(t.getTime())?k.format(t):`–`}function j(e,t){let n=Number(t.slice(0,2)),r=n*60+179,i=e;r>=1440&&(r-=1440,i=e%7+1);let a=e=>String(e).padStart(2,`0`),o=`${a(n)}:00`,s=`${a(Math.floor(r/60))}:${a(r%60)}`;return i===e?`${D[e-1]} ${o}–${s}`:`${D[e-1]} ${o} – ${D[i-1]} ${s}`}function M(e){let n=(0,w.c)(9),{titel:r,children:i,zuletzt:a}=e,o=a&&`pb-4`,s;n[0]===o?s=n[1]:(s=t(`flex flex-col gap-3 border-t border-linie px-4 pt-4`,o),n[0]=o,n[1]=s);let c;n[2]===r?c=n[3]:(c=(0,E.jsx)(`h3`,{className:`schild text-sm text-text-3`,children:r}),n[2]=r,n[3]=c);let l;return n[4]!==i||n[5]!==s||n[6]!==c||n[7]!==r?(l=(0,E.jsxs)(`section`,{"aria-label":r,className:s,children:[c,i]}),n[4]=i,n[5]=s,n[6]=c,n[7]=r,n[8]=l):l=n[8],l}function N(e){let t=(0,w.c)(2),{children:n}=e,r;return t[0]===n?r=t[1]:(r=(0,E.jsx)(`p`,{className:`text-sm text-bernstein`,children:n}),t[0]=n,t[1]=r),r}function ee(e){let t=(0,w.c)(3),{laedt:n,fehler:r}=e;if(n){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,E.jsx)(`p`,{className:`text-sm text-text-2`,children:`Wird gelesen …`}),t[0]=e):e=t[0],e}let i=r?`: ${r}`:`.`,a;return t[1]===i?a=t[2]:(a=(0,E.jsxs)(`p`,{role:`alert`,className:`text-sm text-rot-text`,children:[`Lässt sich gerade nicht lesen`,i]}),t[1]=i,t[2]=a),a}function P({offen:e}){let t=u(),n=_({queryKey:[`geheimnisse`],queryFn:()=>d(`/api/maintenance/geheimnisse`),enabled:e}),[r,a]=(0,T.useState)(``),[o,s]=(0,T.useState)(!1),[c,l]=(0,T.useState)(!1);async function p(e){if(!o){s(!0),l(!1);try{await f(`/api/maintenance/geheimnisse`,{schluessel:`hf_token`,wert:e}),g(`erfolg`,e?`Hugging-Face-Zugang gespeichert.`:`Hugging-Face-Zugang gelöscht.`),a(``),t.invalidateQueries({queryKey:[`geheimnisse`]})}catch(e){g(`fehler`,e.message)}finally{s(!1)}}}let m=n.data,h;return h=n.isPending?`Wird gelesen …`:m?m.hf_token_gesetzt?`Ist hinterlegt.`:`Fehlt.`:`Lässt sich gerade nicht lesen${n.error?`: ${n.error.message}`:`.`}`,(0,E.jsxs)(M,{titel:`Hugging-Face-Zugang`,children:[(0,E.jsxs)(`p`,{className:`text-sm text-text-2`,"aria-live":`polite`,children:[(0,E.jsx)(`span`,{className:!m&&!n.isPending?`text-rot-text`:void 0,children:h}),` Nötig für gesperrte Modelle und schnellere Downloads.`,m?.hf_token_aus_env?` Er kommt aus der Dienst-Einstellung und lässt sich hier nicht löschen.`:``]}),m?.schreibbar===!1&&(0,E.jsx)(`p`,{className:`text-sm text-bernstein`,children:`Die Box kann den Zugang gerade nicht speichern: Ihre Ablage ist nicht beschreibbar.`}),(0,E.jsxs)(`form`,{className:`flex gap-2`,onSubmit:e=>{e.preventDefault(),r.trim()&&p(r.trim())},children:[(0,E.jsx)(`label`,{htmlFor:`hf-token`,className:`sr-only`,children:`Hugging-Face-Zugang`}),(0,E.jsx)(`input`,{id:`hf-token`,type:`password`,autoComplete:`off`,value:r,onChange:e=>a(e.target.value),placeholder:`hf_…`,className:`h-11 min-w-0 flex-1 rounded-lg border border-linie-stark bg-erhaben px-3 text-[15px] outline-none focus:border-cyan`}),(0,E.jsx)(i,{type:`submit`,disabled:!r.trim()||m?.schreibbar===!1||o,children:o?`Speichert …`:`Speichern`})]}),m?.hf_token_gesetzt&&!m.hf_token_aus_env&&(c?(0,E.jsxs)(`span`,{className:`flex flex-wrap gap-2`,children:[(0,E.jsx)(i,{variant:`gefahr`,size:`sm`,disabled:o,onClick:()=>p(null),children:`Wirklich löschen?`}),(0,E.jsx)(i,{variant:`ghost`,size:`sm`,onClick:()=>l(!1),children:`Nein`})]}):(0,E.jsx)(i,{variant:`ghost`,size:`sm`,className:`self-start`,disabled:o,onClick:()=>l(!0),children:`Zugang löschen`}))]})}function F(e){let t=(0,w.c)(24),{ziel:n,name:r}=e,a=c(),o=a.data,s=null;if(a.isPending){let e;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,E.jsx)(`p`,{role:`status`,className:`text-sm text-text-2`,children:`Sendet …`}),t[0]=e):e=t[0],s=e}else if(o?.gesendet){let e=o.weg===`hermes`?`über Hermes`:`direkt an die Telegram-Bot-API`,n=o.kennung?`, Kennung ${o.kennung}`:``,r;t[1]!==e||t[2]!==n?(r=(0,E.jsxs)(`p`,{role:`status`,className:`text-sm text-gruen`,children:[`Gesendet `,e,n,`. Schau in Telegram nach.`]}),t[1]=e,t[2]=n,t[3]=r):r=t[3],s=r}else if(o){let e=o.grund??o.detail??`ohne Angabe eines Grundes.`,n;t[4]===e?n=t[5]:(n=(0,E.jsxs)(`p`,{role:`alert`,className:`text-sm text-rot-text`,children:[`Nicht gesendet: `,e]}),t[4]=e,t[5]=n),s=n}else if(a.error){let e;t[6]===a.error.message?e=t[7]:(e=(0,E.jsx)(`p`,{role:`alert`,className:`text-sm text-rot-text`,children:a.error.message}),t[6]=a.error.message,t[7]=e),s=e}let l;t[8]===r?l=t[9]:(l=(0,E.jsx)(`span`,{className:`text-[15px]`,children:r}),t[8]=r,t[9]=l);let u;t[10]!==a||t[11]!==n?(u=()=>a.mutate(n),t[10]=a,t[11]=n,t[12]=u):u=t[12];let d=`Testmeldung von ${r} senden`,f=a.isPending?`Sendet …`:`Test senden`,p;t[13]!==u||t[14]!==d||t[15]!==f||t[16]!==a.isPending?(p=(0,E.jsx)(i,{variant:`outline`,size:`sm`,disabled:a.isPending,onClick:u,"aria-label":d,children:f}),t[13]=u,t[14]=d,t[15]=f,t[16]=a.isPending,t[17]=p):p=t[17];let m;t[18]!==l||t[19]!==p?(m=(0,E.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[l,p]}),t[18]=l,t[19]=p,t[20]=m):m=t[20];let h;return t[21]!==s||t[22]!==m?(h=(0,E.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[m,s]}),t[21]=s,t[22]=m,t[23]=h):h=t[23],h}function I(){let e=(0,w.c)(9),t=p().data,n=t?.rolle??`box`,r=n===`box`?`homelab`:`box`,i=t?.instanz??(n===`box`?`Box-Wart`:`Homelab`),a;e[0]!==r||e[1]!==n||e[2]!==t||e[3]!==i?(a=[{ziel:n,name:i}],t?.partner.eingerichtet&&a.push({ziel:r,name:t.partner.name}),a.sort(R),e[0]=r,e[1]=n,e[2]=t,e[3]=i,e[4]=a):a=e[4];let o,s;e[5]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,E.jsx)(`p`,{className:`text-sm text-text-2`,children:`Dringende Hinweise gehen zusätzlich per Telegram raus, alles andere bleibt hier; was nachts anfällt, kommt um 07:00 als eine Morgenmeldung. Einfache Probleme wie einen abgestürzten Dienst behebt der Wächter selbst und schreibt es in den Verlauf.`}),s=(0,E.jsx)(`p`,{className:`text-sm text-text-2`,children:`Der Test schickt eine kurze Meldung über den echten Meldeweg, als dringend, damit sie auch nachts sofort kommt.`}),e[5]=o,e[6]=s):(o=e[5],s=e[6]);let c;return e[7]===a?c=e[8]:(c=(0,E.jsxs)(M,{titel:`Meldungen`,children:[o,s,a.map(L)]}),e[7]=a,e[8]=c),c}function L(e){return(0,E.jsx)(F,{ziel:e.ziel,name:e.name},e.ziel)}function R(e,t){return Number(e.ziel!==`box`)-Number(t.ziel!==`box`)}function z(e){let t=(0,w.c)(87),{e:n,laedt:r,fehler:a}=e,o=h(),[s,c]=(0,T.useState)(null),[l,u]=(0,T.useState)(!1);if(!n){let e;return t[0]!==a||t[1]!==r?(e=(0,E.jsx)(M,{titel:`Update-Zeitfenster`,children:(0,E.jsx)(ee,{laedt:r,fehler:a})}),t[0]=a,t[1]=r,t[2]=e):e=t[2],e}let d=n.update_fenster,f,p,m,g,_,v,y,b,x,S,k,P,F,I,L,R,z;if(t[3]!==n.schaltbar||t[4]!==s||t[5]!==d.naechster_lauf||t[6]!==d.neustart_fenster||t[7]!==d.tag||t[8]!==d.tag_name||t[9]!==d.timer_aktiv||t[10]!==d.uhrzeit||t[11]!==d.wirksam){z=s??{tag:d.tag,uhrzeit:d.uhrzeit},p=z.tag!==d.tag||z.uhrzeit!==d.uhrzeit;let e=O.includes(z.uhrzeit)?O:[...O,z.uhrzeit].sort();f=M,_=`Update-Zeitfenster`;let r;t[29]===d.naechster_lauf?r=t[30]:(r=d.naechster_lauf?` (nächster Lauf ${A(d.naechster_lauf)})`:``,t[29]=d.naechster_lauf,t[30]=r),t[31]!==d.neustart_fenster||t[32]!==d.tag_name||t[33]!==d.uhrzeit||t[34]!==r?(v=(0,E.jsxs)(`p`,{className:`text-sm text-text-2`,children:[`Die Box aktualisiert sich jeden `,d.tag_name,` um `,d.uhrzeit,` Uhr`,r,`. Neu gestartet wird sie danach nur`,` `,d.neustart_fenster,`.`]}),t[31]=d.neustart_fenster,t[32]=d.tag_name,t[33]=d.uhrzeit,t[34]=r,t[35]=v):v=t[35],t[36]!==n.schaltbar||t[37]!==d.timer_aktiv?(y=n.schaltbar&&!d.timer_aktiv&&(0,E.jsx)(N,{children:`Der Update-Timer läuft gerade nicht; er übernimmt das Fenster beim nächsten Start.`}),t[36]=n.schaltbar,t[37]=d.timer_aktiv,t[38]=y):y=t[38],t[39]!==n.schaltbar||t[40]!==d.wirksam?(b=n.schaltbar&&!d.wirksam&&(0,E.jsx)(N,{children:`Der Timer läuft noch nach einem anderen Plan als eingestellt. Einmal speichern gleicht es an.`}),t[39]=n.schaltbar,t[40]=d.wirksam,t[41]=b):b=t[41],R=`flex flex-wrap items-end gap-2`;let i=z.tag,a;t[42]===Symbol.for(`react.memo_cache_sentinel`)?(a=D.map(ne),t[42]=a):a=t[42],g=(0,E.jsxs)(`label`,{className:`flex flex-col gap-1 text-xs text-text-3`,children:[`Tag`,(0,E.jsx)(`select`,{className:`h-11 rounded-lg border border-linie-stark bg-erhaben px-3 text-[15px] text-foreground outline-none focus:border-cyan`,value:i,disabled:!n.schaltbar,"aria-label":`Wochentag`,onChange:e=>c({...z,tag:Number(e.target.value)}),children:a})]}),I=`flex flex-col gap-1 text-xs text-text-3`,L=`Uhrzeit`,m=`h-11 rounded-lg border border-linie-stark bg-erhaben px-3 text-[15px] text-foreground outline-none focus:border-cyan`,x=z.uhrzeit,S=!n.schaltbar,k=`Uhrzeit`,P=e=>c({...z,uhrzeit:e.target.value}),F=e.map(te),t[3]=n.schaltbar,t[4]=s,t[5]=d.naechster_lauf,t[6]=d.neustart_fenster,t[7]=d.tag,t[8]=d.tag_name,t[9]=d.timer_aktiv,t[10]=d.uhrzeit,t[11]=d.wirksam,t[12]=f,t[13]=p,t[14]=m,t[15]=g,t[16]=_,t[17]=v,t[18]=y,t[19]=b,t[20]=x,t[21]=S,t[22]=k,t[23]=P,t[24]=F,t[25]=I,t[26]=L,t[27]=R,t[28]=z}else f=t[12],p=t[13],m=t[14],g=t[15],_=t[16],v=t[17],y=t[18],b=t[19],x=t[20],S=t[21],k=t[22],P=t[23],F=t[24],I=t[25],L=t[26],R=t[27],z=t[28];let B;t[43]!==m||t[44]!==x||t[45]!==S||t[46]!==k||t[47]!==P||t[48]!==F?(B=(0,E.jsx)(`select`,{className:m,value:x,disabled:S,"aria-label":k,onChange:P,children:F}),t[43]=m,t[44]=x,t[45]=S,t[46]=k,t[47]=P,t[48]=F,t[49]=B):B=t[49];let V;t[50]!==B||t[51]!==I||t[52]!==L?(V=(0,E.jsxs)(`label`,{className:I,children:[L,B]}),t[50]=B,t[51]=I,t[52]=L,t[53]=V):V=t[53];let H=!n.schaltbar||o.isPending||!p&&d.wirksam,U;t[54]===Symbol.for(`react.memo_cache_sentinel`)?(U=()=>u(!0),t[54]=U):U=t[54];let W=o.isPending?`Speichert …`:`Speichern`,G;t[55]!==H||t[56]!==W?(G=(0,E.jsx)(i,{disabled:H,onClick:U,children:W}),t[55]=H,t[56]=W,t[57]=G):G=t[57];let K;t[58]!==g||t[59]!==V||t[60]!==G||t[61]!==R?(K=(0,E.jsxs)(`div`,{className:R,children:[g,V,G]}),t[58]=g,t[59]=V,t[60]=G,t[61]=R,t[62]=K):K=t[62];let q=n.schaltbar?``:` Einstellen lässt es sich nur auf der Box.`,J;t[63]===q?J=t[64]:(J=(0,E.jsxs)(`p`,{className:`text-xs text-text-3`,children:[`Am besten nachts nach der Sicherung (03:30) und vor der Morgenmeldung (07:00).`,q]}),t[63]=q,t[64]=J);let Y;t[65]!==z.tag||t[66]!==z.uhrzeit?(Y=j(z.tag,z.uhrzeit),t[65]=z.tag,t[66]=z.uhrzeit,t[67]=Y):Y=t[67];let re=`Der Update-Lauf startet ab jetzt jeden ${D[z.tag-1]} um ${z.uhrzeit} Uhr. Neu gestartet wird die Box nur ${Y}. Ein Termin, der dadurch schon vorbei ist, wird nicht nachgeholt: Der erste Lauf ist der nächste reguläre.`,X;t[68]===Symbol.for(`react.memo_cache_sentinel`)?(X=()=>u(!1),t[68]=X):X=t[68];let Z;t[69]!==l||t[70]!==o||t[71]!==z?(Z=()=>{l&&(o.mutate(z,{onSuccess:()=>c(null)}),u(!1))},t[69]=l,t[70]=o,t[71]=z,t[72]=Z):Z=t[72];let Q;t[73]!==l||t[74]!==o.isPending||t[75]!==re||t[76]!==Z?(Q=(0,E.jsx)(C,{offen:l,titel:`Update-Zeitfenster ändern?`,text:re,knopf:`Speichern`,gesperrt:o.isPending,onNein:X,onJa:Z}),t[73]=l,t[74]=o.isPending,t[75]=re,t[76]=Z,t[77]=Q):Q=t[77];let $;return t[78]!==f||t[79]!==_||t[80]!==v||t[81]!==y||t[82]!==b||t[83]!==K||t[84]!==J||t[85]!==Q?($=(0,E.jsxs)(f,{titel:_,children:[v,y,b,K,J,Q]}),t[78]=f,t[79]=_,t[80]=v,t[81]=y,t[82]=b,t[83]=K,t[84]=J,t[85]=Q,t[86]=$):$=t[86],$}function te(e){return(0,E.jsx)(`option`,{value:e,children:e},e)}function ne(e,t){return(0,E.jsx)(`option`,{value:t+1,children:e},e)}function B(e){let t=(0,w.c)(37),{e:n,laedt:r,fehler:a}=e,s=o(),[c,l]=(0,T.useState)(null);if(!n){let e;return t[0]!==a||t[1]!==r?(e=(0,E.jsx)(M,{titel:`Modell-Radar`,children:(0,E.jsx)(ee,{laedt:r,fehler:a})}),t[0]=a,t[1]=r,t[2]=e):e=t[2],e}let u=n.radar,d=u.zustand===`an`||u.zustand===`unbekannt`&&u.an,f;t[3]===u.naechster_lauf?f=t[4]:(f=u.naechster_lauf?` (nächster Lauf ${A(u.naechster_lauf)})`:``,t[3]=u.naechster_lauf,t[4]=f);let p=`An. Es sucht jede Nacht ab 00:30 nach besseren Modellen${f}.`,m=u.an?`Eingeschaltet.`:`Ausgeschaltet.`,h;t[5]!==p||t[6]!==m?(h={an:p,schlaeft:`Schläft. Es sucht und testet keine Modelle, bis du es wieder einschaltest.`,aus:`Gestoppt, steht aber noch im Autostart: Nach einem Neustart der Box liefe es wieder.`,unbekannt:m},t[5]=p,t[6]=m,t[7]=h):h=t[7];let g=h[u.zustand],_;t[8]===g?_=t[9]:(_=(0,E.jsx)(`p`,{className:`text-sm text-text-2`,children:g}),t[8]=g,t[9]=_);let v;t[10]!==n.schaltbar||t[11]!==u.an||t[12]!==u.wirksam?(v=n.schaltbar&&!u.wirksam&&(0,E.jsxs)(N,{children:[`Eingestellt ist „`,u.an?`an`:`aus`,`“, systemd zeigt etwas anderes. Noch einmal schalten gleicht es an.`]}),t[10]=n.schaltbar,t[11]=u.an,t[12]=u.wirksam,t[13]=v):v=t[13];let y=d?`outline`:`default`,b=!n.schaltbar||s.isPending,x;t[14]===d?x=t[15]:(x=()=>l(!d),t[14]=d,t[15]=x);let S=s.isPending?`Schaltet …`:d?`Ausschalten`:`Einschalten`,D;t[16]!==x||t[17]!==S||t[18]!==y||t[19]!==b?(D=(0,E.jsx)(i,{variant:y,size:`sm`,className:`self-start`,disabled:b,onClick:x,children:S}),t[16]=x,t[17]=S,t[18]=y,t[19]=b,t[20]=D):D=t[20];let O=c!==null,k=c?`Modell-Radar einschalten?`:`Modell-Radar ausschalten?`,j=c?`Das Radar sucht ab heute Nacht um 00:30 wieder nach besseren Modellen und testet höchstens eines pro Woche. Ein verpasster Lauf wird nicht nachgeholt, tagsüber lädt es also nichts.`:`Das Radar sucht und testet dann keine neuen Modelle mehr, bis du es wieder einschaltest. Ein Nachttest, der gerade läuft, endet noch. Auch ein Deploy schaltet es nicht wieder ein.`,P=c?`Einschalten`:`Ausschalten`,F;t[21]===Symbol.for(`react.memo_cache_sentinel`)?(F=()=>l(null),t[21]=F):F=t[21];let I;t[22]!==c||t[23]!==s?(I=()=>{c!==null&&(s.mutate(c),l(null))},t[22]=c,t[23]=s,t[24]=I):I=t[24];let L;t[25]!==s.isPending||t[26]!==O||t[27]!==k||t[28]!==j||t[29]!==P||t[30]!==I?(L=(0,E.jsx)(C,{offen:O,titel:k,text:j,knopf:P,gesperrt:s.isPending,onNein:F,onJa:I}),t[25]=s.isPending,t[26]=O,t[27]=k,t[28]=j,t[29]=P,t[30]=I,t[31]=L):L=t[31];let R;return t[32]!==D||t[33]!==L||t[34]!==_||t[35]!==v?(R=(0,E.jsxs)(M,{titel:`Modell-Radar`,children:[_,v,D,L]}),t[32]=D,t[33]=L,t[34]=_,t[35]=v,t[36]=R):R=t[36],R}function V(e){let t=(0,w.c)(25),{name:n,stand:r,laedt:i,fehler:a}=e,o;if(i){let e;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,E.jsx)(`span`,{className:`text-sm text-text-2`,children:`Wird gelesen …`}),t[0]=e):e=t[0],o=e}else if(a){let e;t[1]===a?e=t[2]:(e=(0,E.jsxs)(`span`,{className:`text-sm text-rot-text`,children:[`Nicht lesbar: `,a]}),t[1]=a,t[2]=e),o=e}else if(r?.commit){let e;t[4]===r.commit?e=t[5]:(e=(0,E.jsx)(`span`,{className:`ziffern text-foreground`,children:r.commit}),t[4]=r.commit,t[5]=e);let n=r.betreff?` · ${r.betreff}`:``,i;t[6]!==e||t[7]!==n?(i=(0,E.jsxs)(`span`,{className:`text-sm text-text-2`,children:[e,n]}),t[6]=e,t[7]=n,t[8]=i):i=t[8];let a;t[9]!==r.deploy_zeit||t[10]!==r.quelle?(a=r.quelle===`deploy`?`Live seit ${A(r.deploy_zeit)}`:`Aus git gelesen, ohne Deploy`,t[9]=r.deploy_zeit,t[10]=r.quelle,t[11]=a):a=t[11];let s;t[12]===r.commit_datum?s=t[13]:(s=r.commit_datum?` · Commit vom ${A(r.commit_datum)}`:``,t[12]=r.commit_datum,t[13]=s);let c;t[14]!==a||t[15]!==s?(c=(0,E.jsxs)(`span`,{className:`text-xs text-text-3`,children:[a,s]}),t[14]=a,t[15]=s,t[16]=c):c=t[16];let l;t[17]!==i||t[18]!==c?(l=(0,E.jsxs)(E.Fragment,{children:[i,c]}),t[17]=i,t[18]=c,t[19]=l):l=t[19],o=l}else{let e;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,E.jsx)(`span`,{className:`text-sm text-text-2`,children:`Unbekannt: keine Stand-Datei und kein git.`}),t[3]=e):e=t[3],o=e}let s;t[20]===n?s=t[21]:(s=(0,E.jsx)(`span`,{className:`text-[15px]`,children:n}),t[20]=n,t[21]=s);let c;return t[22]!==o||t[23]!==s?(c=(0,E.jsxs)(`div`,{className:`flex flex-col gap-0.5`,children:[s,o]}),t[22]=o,t[23]=s,t[24]=c):c=t[24],c}function H(e,t){return!e||!t?null:e.startsWith(t)||t.startsWith(e)}function U(e){let t=(0,w.c)(21),{offen:n}=e,r=p().data,i=!!r?.partner.eingerichtet,[a,o]=l(n,i),s=a.data?.stand?.commit,c=o.data?.stand?.commit,u;t[0]!==s||t[1]!==c?(u=H(s,c),t[0]=s,t[1]=c,t[2]=u):u=t[2];let d=u,f=a.data?.instanz??r?.instanz??`Diese Instanz`,m=a.data?.stand,h=a.error?.message,g;t[3]!==a.isPending||t[4]!==f||t[5]!==m||t[6]!==h?(g=(0,E.jsx)(V,{name:f,stand:m,laedt:a.isPending,fehler:h}),t[3]=a.isPending,t[4]=f,t[5]=m,t[6]=h,t[7]=g):g=t[7];let _;t[8]!==r?.partner||t[9]!==o.data?.instanz||t[10]!==o.data?.stand||t[11]!==o.error?.message||t[12]!==o.isPending||t[13]!==i?(_=i&&(0,E.jsx)(V,{name:o.data?.instanz??r?.partner.name??`Partner`,stand:o.data?.stand,laedt:o.isPending,fehler:o.error?.message}),t[8]=r?.partner,t[9]=o.data?.instanz,t[10]=o.data?.stand,t[11]=o.error?.message,t[12]=o.isPending,t[13]=i,t[14]=_):_=t[14];let v;t[15]===d?v=t[16]:(v=d===!1&&(0,E.jsx)(N,{children:`Die beiden Instanzen laufen mit verschiedenen Ständen. Der nächste Deploy der Box zieht den Homelab-Teil mit.`}),t[15]=d,t[16]=v);let y;return t[17]!==g||t[18]!==_||t[19]!==v?(y=(0,E.jsxs)(M,{titel:`Software-Stand`,children:[g,_,v]}),t[17]=g,t[18]=_,t[19]=v,t[20]=y):y=t[20],y}function W(e){let t=(0,w.c)(25),{offen:n,onSchliessen:r}=e,i=s(n),a=i.error?.message,o;t[0]!==i.data||t[1]!==i.isPending||t[2]!==a?(o={e:i.data,laedt:i.isPending,fehler:a},t[0]=i.data,t[1]=i.isPending,t[2]=a,t[3]=o):o=t[3];let c=o,l;t[4]===r?l=t[5]:(l=e=>!e&&r(),t[4]=r,t[5]=l);let u;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,E.jsxs)(y,{children:[(0,E.jsx)(v,{className:`schild text-lg`,children:`Einstellungen`}),(0,E.jsx)(x,{className:`text-text-2`,children:`Was die Box sich merkt und wann sie was tut.`})]}),t[6]=u):u=t[6];let d;t[7]===n?d=t[8]:(d=(0,E.jsx)(P,{offen:n}),t[7]=n,t[8]=d);let f;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,E.jsx)(I,{}),t[9]=f):f=t[9];let p,h;t[10]===c?(p=t[11],h=t[12]):(p=(0,E.jsx)(z,{...c}),h=(0,E.jsx)(B,{...c}),t[10]=c,t[11]=p,t[12]=h);let g;t[13]===n?g=t[14]:(g=(0,E.jsx)(U,{offen:n}),t[13]=n,t[14]=g);let _;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,E.jsxs)(M,{titel:`Hermes`,zuletzt:!0,children:[(0,E.jsxs)(`a`,{href:`/hermes-ui/`,target:`_blank`,rel:`noopener`,className:`flex h-11 items-center gap-2 self-start rounded-lg border border-linie-stark bg-erhaben px-4 text-[15px] hover:border-text-3`,children:[(0,E.jsx)(m,{className:`size-4`,"aria-hidden":!0}),` Hermes-Dashboard öffnen`]}),(0,E.jsx)(`p`,{className:`text-xs text-text-3`,children:`Chat, Sitzungen und Cron-Jobs verwaltet Hermes selbst. Es fragt nach seiner eigenen Anmeldung.`})]}),t[15]=_):_=t[15];let C;t[16]!==d||t[17]!==p||t[18]!==h||t[19]!==g?(C=(0,E.jsxs)(b,{side:`right`,className:`gap-3 overflow-y-auto border-linie bg-panel data-[side=right]:w-full data-[side=right]:sm:max-w-lg`,children:[u,d,f,p,h,g,_]}),t[16]=d,t[17]=p,t[18]=h,t[19]=g,t[20]=C):C=t[20];let T;return t[21]!==n||t[22]!==C||t[23]!==l?(T=(0,E.jsx)(S,{open:n,onOpenChange:l,children:C}),t[21]=n,t[22]=C,t[23]=l,t[24]=T):T=t[24],T}export{W as Einstellungen}; \ No newline at end of file +import{c as e,i as t,p as n,s as r,t as i,u as a}from"./button-BheHBEml.js";import{Ct as o,E as s,J as c,K as l,M as u,St as d,U as f,X as p,_t as m,ht as h,mt as g,ot as _}from"./index-BAH01Yfc.js";import{a as v,i as y,n as b,r as x,t as S}from"./sheet-CKp82pOA.js";import{t as C}from"./Bestaetigen-CE_3b0PK.js";var w=r(),T=n(a(),1),E=e(),D=[`Montag`,`Dienstag`,`Mittwoch`,`Donnerstag`,`Freitag`,`Samstag`,`Sonntag`],O=Array.from({length:48},(e,t)=>`${String(Math.floor(t/2)).padStart(2,`0`)}:${t%2?`30`:`00`}`),k=new Intl.DateTimeFormat(`de-DE`,{day:`2-digit`,month:`2-digit`,year:`numeric`,hour:`2-digit`,minute:`2-digit`,timeZone:`Europe/Berlin`});function A(e){let t=e?new Date(e):null;return t&&!Number.isNaN(t.getTime())?k.format(t):`–`}function j(e,t){let n=Number(t.slice(0,2)),r=n*60+179,i=e;r>=1440&&(r-=1440,i=e%7+1);let a=e=>String(e).padStart(2,`0`),o=`${a(n)}:00`,s=`${a(Math.floor(r/60))}:${a(r%60)}`;return i===e?`${D[e-1]} ${o}–${s}`:`${D[e-1]} ${o} – ${D[i-1]} ${s}`}function M(e){let n=(0,w.c)(9),{titel:r,children:i,zuletzt:a}=e,o=a&&`pb-4`,s;n[0]===o?s=n[1]:(s=t(`flex flex-col gap-3 border-t border-linie px-4 pt-4`,o),n[0]=o,n[1]=s);let c;n[2]===r?c=n[3]:(c=(0,E.jsx)(`h3`,{className:`schild text-sm text-text-3`,children:r}),n[2]=r,n[3]=c);let l;return n[4]!==i||n[5]!==s||n[6]!==c||n[7]!==r?(l=(0,E.jsxs)(`section`,{"aria-label":r,className:s,children:[c,i]}),n[4]=i,n[5]=s,n[6]=c,n[7]=r,n[8]=l):l=n[8],l}function N(e){let t=(0,w.c)(2),{children:n}=e,r;return t[0]===n?r=t[1]:(r=(0,E.jsx)(`p`,{className:`text-sm text-bernstein`,children:n}),t[0]=n,t[1]=r),r}function ee(e){let t=(0,w.c)(3),{laedt:n,fehler:r}=e;if(n){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,E.jsx)(`p`,{className:`text-sm text-text-2`,children:`Wird gelesen …`}),t[0]=e):e=t[0],e}let i=r?`: ${r}`:`.`,a;return t[1]===i?a=t[2]:(a=(0,E.jsxs)(`p`,{role:`alert`,className:`text-sm text-rot-text`,children:[`Lässt sich gerade nicht lesen`,i]}),t[1]=i,t[2]=a),a}function P({offen:e}){let t=o(),n=d({queryKey:[`geheimnisse`],queryFn:()=>g(`/api/maintenance/geheimnisse`),enabled:e}),[r,a]=(0,T.useState)(``),[s,c]=(0,T.useState)(!1),[l,u]=(0,T.useState)(!1);async function f(e){if(!s){c(!0),u(!1);try{await h(`/api/maintenance/geheimnisse`,{schluessel:`hf_token`,wert:e}),_(`erfolg`,e?`Hugging-Face-Zugang gespeichert.`:`Hugging-Face-Zugang gelöscht.`),a(``),t.invalidateQueries({queryKey:[`geheimnisse`]})}catch(e){_(`fehler`,e.message)}finally{c(!1)}}}let p=n.data,m;return m=n.isPending?`Wird gelesen …`:p?p.hf_token_gesetzt?`Ist hinterlegt.`:`Fehlt.`:`Lässt sich gerade nicht lesen${n.error?`: ${n.error.message}`:`.`}`,(0,E.jsxs)(M,{titel:`Hugging-Face-Zugang`,children:[(0,E.jsxs)(`p`,{className:`text-sm text-text-2`,"aria-live":`polite`,children:[(0,E.jsx)(`span`,{className:!p&&!n.isPending?`text-rot-text`:void 0,children:m}),` Nötig für gesperrte Modelle und schnellere Downloads.`,p?.hf_token_aus_env?` Er kommt aus der Dienst-Einstellung und lässt sich hier nicht löschen.`:``]}),p?.schreibbar===!1&&(0,E.jsx)(`p`,{className:`text-sm text-bernstein`,children:`Die Box kann den Zugang gerade nicht speichern: Ihre Ablage ist nicht beschreibbar.`}),(0,E.jsxs)(`form`,{className:`flex gap-2`,onSubmit:e=>{e.preventDefault(),r.trim()&&f(r.trim())},children:[(0,E.jsx)(`label`,{htmlFor:`hf-token`,className:`sr-only`,children:`Hugging-Face-Zugang`}),(0,E.jsx)(`input`,{id:`hf-token`,type:`password`,autoComplete:`off`,value:r,onChange:e=>a(e.target.value),placeholder:`hf_…`,className:`h-11 min-w-0 flex-1 rounded-lg border border-linie-stark bg-erhaben px-3 text-[15px] outline-none focus:border-cyan`}),(0,E.jsx)(i,{type:`submit`,disabled:!r.trim()||p?.schreibbar===!1||s,children:s?`Speichert …`:`Speichern`})]}),p?.hf_token_gesetzt&&!p.hf_token_aus_env&&(l?(0,E.jsxs)(`span`,{className:`flex flex-wrap gap-2`,children:[(0,E.jsx)(i,{variant:`gefahr`,size:`sm`,disabled:s,onClick:()=>f(null),children:`Wirklich löschen?`}),(0,E.jsx)(i,{variant:`ghost`,size:`sm`,onClick:()=>u(!1),children:`Nein`})]}):(0,E.jsx)(i,{variant:`ghost`,size:`sm`,className:`self-start`,disabled:s,onClick:()=>u(!0),children:`Zugang löschen`}))]})}function F(e){let t=(0,w.c)(24),{ziel:n,name:r}=e,a=c(),o=a.data,s=null;if(a.isPending){let e;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,E.jsx)(`p`,{role:`status`,className:`text-sm text-text-2`,children:`Sendet …`}),t[0]=e):e=t[0],s=e}else if(o?.gesendet){let e=o.weg===`hermes`?`über Hermes`:`direkt an die Telegram-Bot-API`,n=o.kennung?`, Kennung ${o.kennung}`:``,r;t[1]!==e||t[2]!==n?(r=(0,E.jsxs)(`p`,{role:`status`,className:`text-sm text-gruen`,children:[`Gesendet `,e,n,`. Schau in Telegram nach.`]}),t[1]=e,t[2]=n,t[3]=r):r=t[3],s=r}else if(o){let e=o.grund??o.detail??`ohne Angabe eines Grundes.`,n;t[4]===e?n=t[5]:(n=(0,E.jsxs)(`p`,{role:`alert`,className:`text-sm text-rot-text`,children:[`Nicht gesendet: `,e]}),t[4]=e,t[5]=n),s=n}else if(a.error){let e;t[6]===a.error.message?e=t[7]:(e=(0,E.jsx)(`p`,{role:`alert`,className:`text-sm text-rot-text`,children:a.error.message}),t[6]=a.error.message,t[7]=e),s=e}let l;t[8]===r?l=t[9]:(l=(0,E.jsx)(`span`,{className:`text-[15px]`,children:r}),t[8]=r,t[9]=l);let u;t[10]!==a||t[11]!==n?(u=()=>a.mutate(n),t[10]=a,t[11]=n,t[12]=u):u=t[12];let d=`Testmeldung von ${r} senden`,f=a.isPending?`Sendet …`:`Test senden`,p;t[13]!==u||t[14]!==d||t[15]!==f||t[16]!==a.isPending?(p=(0,E.jsx)(i,{variant:`outline`,size:`sm`,disabled:a.isPending,onClick:u,"aria-label":d,children:f}),t[13]=u,t[14]=d,t[15]=f,t[16]=a.isPending,t[17]=p):p=t[17];let m;t[18]!==l||t[19]!==p?(m=(0,E.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[l,p]}),t[18]=l,t[19]=p,t[20]=m):m=t[20];let h;return t[21]!==s||t[22]!==m?(h=(0,E.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[m,s]}),t[21]=s,t[22]=m,t[23]=h):h=t[23],h}function I(){let e=(0,w.c)(9),t=u().data,n=t?.rolle??`box`,r=n===`box`?`homelab`:`box`,i=t?.instanz??(n===`box`?`Box-Wart`:`Homelab`),a;e[0]!==r||e[1]!==n||e[2]!==t||e[3]!==i?(a=[{ziel:n,name:i}],t?.partner.eingerichtet&&a.push({ziel:r,name:t.partner.name}),a.sort(R),e[0]=r,e[1]=n,e[2]=t,e[3]=i,e[4]=a):a=e[4];let o,s;e[5]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,E.jsx)(`p`,{className:`text-sm text-text-2`,children:`Dringende Hinweise gehen zusätzlich per Telegram raus, alles andere bleibt hier; was nachts anfällt, kommt um 07:00 als eine Morgenmeldung. Einfache Probleme wie einen abgestürzten Dienst behebt der Wächter selbst und schreibt es in den Verlauf.`}),s=(0,E.jsx)(`p`,{className:`text-sm text-text-2`,children:`Der Test schickt eine kurze Meldung über den echten Meldeweg, als dringend, damit sie auch nachts sofort kommt.`}),e[5]=o,e[6]=s):(o=e[5],s=e[6]);let c;return e[7]===a?c=e[8]:(c=(0,E.jsxs)(M,{titel:`Meldungen`,children:[o,s,a.map(L)]}),e[7]=a,e[8]=c),c}function L(e){return(0,E.jsx)(F,{ziel:e.ziel,name:e.name},e.ziel)}function R(e,t){return Number(e.ziel!==`box`)-Number(t.ziel!==`box`)}function z(e){let t=(0,w.c)(87),{e:n,laedt:r,fehler:a}=e,o=p(),[s,c]=(0,T.useState)(null),[l,u]=(0,T.useState)(!1);if(!n){let e;return t[0]!==a||t[1]!==r?(e=(0,E.jsx)(M,{titel:`Update-Zeitfenster`,children:(0,E.jsx)(ee,{laedt:r,fehler:a})}),t[0]=a,t[1]=r,t[2]=e):e=t[2],e}let d=n.update_fenster,f,m,h,g,_,v,y,b,x,S,k,P,F,I,L,R,z;if(t[3]!==n.schaltbar||t[4]!==s||t[5]!==d.naechster_lauf||t[6]!==d.neustart_fenster||t[7]!==d.tag||t[8]!==d.tag_name||t[9]!==d.timer_aktiv||t[10]!==d.uhrzeit||t[11]!==d.wirksam){z=s??{tag:d.tag,uhrzeit:d.uhrzeit},m=z.tag!==d.tag||z.uhrzeit!==d.uhrzeit;let e=O.includes(z.uhrzeit)?O:[...O,z.uhrzeit].sort();f=M,_=`Update-Zeitfenster`;let r;t[29]===d.naechster_lauf?r=t[30]:(r=d.naechster_lauf?` (nächster Lauf ${A(d.naechster_lauf)})`:``,t[29]=d.naechster_lauf,t[30]=r),t[31]!==d.neustart_fenster||t[32]!==d.tag_name||t[33]!==d.uhrzeit||t[34]!==r?(v=(0,E.jsxs)(`p`,{className:`text-sm text-text-2`,children:[`Die Box aktualisiert sich jeden `,d.tag_name,` um `,d.uhrzeit,` Uhr`,r,`. Neu gestartet wird sie danach nur`,` `,d.neustart_fenster,`.`]}),t[31]=d.neustart_fenster,t[32]=d.tag_name,t[33]=d.uhrzeit,t[34]=r,t[35]=v):v=t[35],t[36]!==n.schaltbar||t[37]!==d.timer_aktiv?(y=n.schaltbar&&!d.timer_aktiv&&(0,E.jsx)(N,{children:`Der Update-Timer läuft gerade nicht; er übernimmt das Fenster beim nächsten Start.`}),t[36]=n.schaltbar,t[37]=d.timer_aktiv,t[38]=y):y=t[38],t[39]!==n.schaltbar||t[40]!==d.wirksam?(b=n.schaltbar&&!d.wirksam&&(0,E.jsx)(N,{children:`Der Timer läuft noch nach einem anderen Plan als eingestellt. Einmal speichern gleicht es an.`}),t[39]=n.schaltbar,t[40]=d.wirksam,t[41]=b):b=t[41],R=`flex flex-wrap items-end gap-2`;let i=z.tag,a;t[42]===Symbol.for(`react.memo_cache_sentinel`)?(a=D.map(ne),t[42]=a):a=t[42],g=(0,E.jsxs)(`label`,{className:`flex flex-col gap-1 text-xs text-text-3`,children:[`Tag`,(0,E.jsx)(`select`,{className:`h-11 rounded-lg border border-linie-stark bg-erhaben px-3 text-[15px] text-foreground outline-none focus:border-cyan`,value:i,disabled:!n.schaltbar,"aria-label":`Wochentag`,onChange:e=>c({...z,tag:Number(e.target.value)}),children:a})]}),I=`flex flex-col gap-1 text-xs text-text-3`,L=`Uhrzeit`,h=`h-11 rounded-lg border border-linie-stark bg-erhaben px-3 text-[15px] text-foreground outline-none focus:border-cyan`,x=z.uhrzeit,S=!n.schaltbar,k=`Uhrzeit`,P=e=>c({...z,uhrzeit:e.target.value}),F=e.map(te),t[3]=n.schaltbar,t[4]=s,t[5]=d.naechster_lauf,t[6]=d.neustart_fenster,t[7]=d.tag,t[8]=d.tag_name,t[9]=d.timer_aktiv,t[10]=d.uhrzeit,t[11]=d.wirksam,t[12]=f,t[13]=m,t[14]=h,t[15]=g,t[16]=_,t[17]=v,t[18]=y,t[19]=b,t[20]=x,t[21]=S,t[22]=k,t[23]=P,t[24]=F,t[25]=I,t[26]=L,t[27]=R,t[28]=z}else f=t[12],m=t[13],h=t[14],g=t[15],_=t[16],v=t[17],y=t[18],b=t[19],x=t[20],S=t[21],k=t[22],P=t[23],F=t[24],I=t[25],L=t[26],R=t[27],z=t[28];let B;t[43]!==h||t[44]!==x||t[45]!==S||t[46]!==k||t[47]!==P||t[48]!==F?(B=(0,E.jsx)(`select`,{className:h,value:x,disabled:S,"aria-label":k,onChange:P,children:F}),t[43]=h,t[44]=x,t[45]=S,t[46]=k,t[47]=P,t[48]=F,t[49]=B):B=t[49];let V;t[50]!==B||t[51]!==I||t[52]!==L?(V=(0,E.jsxs)(`label`,{className:I,children:[L,B]}),t[50]=B,t[51]=I,t[52]=L,t[53]=V):V=t[53];let H=!n.schaltbar||o.isPending||!m&&d.wirksam,U;t[54]===Symbol.for(`react.memo_cache_sentinel`)?(U=()=>u(!0),t[54]=U):U=t[54];let W=o.isPending?`Speichert …`:`Speichern`,G;t[55]!==H||t[56]!==W?(G=(0,E.jsx)(i,{disabled:H,onClick:U,children:W}),t[55]=H,t[56]=W,t[57]=G):G=t[57];let K;t[58]!==g||t[59]!==V||t[60]!==G||t[61]!==R?(K=(0,E.jsxs)(`div`,{className:R,children:[g,V,G]}),t[58]=g,t[59]=V,t[60]=G,t[61]=R,t[62]=K):K=t[62];let q=n.schaltbar?``:` Einstellen lässt es sich nur auf der Box.`,J;t[63]===q?J=t[64]:(J=(0,E.jsxs)(`p`,{className:`text-xs text-text-3`,children:[`Am besten nachts nach der Sicherung (03:30) und vor der Morgenmeldung (07:00).`,q]}),t[63]=q,t[64]=J);let Y;t[65]!==z.tag||t[66]!==z.uhrzeit?(Y=j(z.tag,z.uhrzeit),t[65]=z.tag,t[66]=z.uhrzeit,t[67]=Y):Y=t[67];let re=`Der Update-Lauf startet ab jetzt jeden ${D[z.tag-1]} um ${z.uhrzeit} Uhr. Neu gestartet wird die Box nur ${Y}. Ein Termin, der dadurch schon vorbei ist, wird nicht nachgeholt: Der erste Lauf ist der nächste reguläre.`,X;t[68]===Symbol.for(`react.memo_cache_sentinel`)?(X=()=>u(!1),t[68]=X):X=t[68];let Z;t[69]!==l||t[70]!==o||t[71]!==z?(Z=()=>{l&&(o.mutate(z,{onSuccess:()=>c(null)}),u(!1))},t[69]=l,t[70]=o,t[71]=z,t[72]=Z):Z=t[72];let Q;t[73]!==l||t[74]!==o.isPending||t[75]!==re||t[76]!==Z?(Q=(0,E.jsx)(C,{offen:l,titel:`Update-Zeitfenster ändern?`,text:re,knopf:`Speichern`,gesperrt:o.isPending,onNein:X,onJa:Z}),t[73]=l,t[74]=o.isPending,t[75]=re,t[76]=Z,t[77]=Q):Q=t[77];let $;return t[78]!==f||t[79]!==_||t[80]!==v||t[81]!==y||t[82]!==b||t[83]!==K||t[84]!==J||t[85]!==Q?($=(0,E.jsxs)(f,{titel:_,children:[v,y,b,K,J,Q]}),t[78]=f,t[79]=_,t[80]=v,t[81]=y,t[82]=b,t[83]=K,t[84]=J,t[85]=Q,t[86]=$):$=t[86],$}function te(e){return(0,E.jsx)(`option`,{value:e,children:e},e)}function ne(e,t){return(0,E.jsx)(`option`,{value:t+1,children:e},e)}function B(e){let t=(0,w.c)(37),{e:n,laedt:r,fehler:a}=e,o=f(),[s,c]=(0,T.useState)(null);if(!n){let e;return t[0]!==a||t[1]!==r?(e=(0,E.jsx)(M,{titel:`Modell-Radar`,children:(0,E.jsx)(ee,{laedt:r,fehler:a})}),t[0]=a,t[1]=r,t[2]=e):e=t[2],e}let l=n.radar,u=l.zustand===`an`||l.zustand===`unbekannt`&&l.an,d;t[3]===l.naechster_lauf?d=t[4]:(d=l.naechster_lauf?` (nächster Lauf ${A(l.naechster_lauf)})`:``,t[3]=l.naechster_lauf,t[4]=d);let p=`An. Es sucht jede Nacht ab 00:30 nach besseren Modellen${d}.`,m=l.an?`Eingeschaltet.`:`Ausgeschaltet.`,h;t[5]!==p||t[6]!==m?(h={an:p,schlaeft:`Schläft. Es sucht und testet keine Modelle, bis du es wieder einschaltest.`,aus:`Gestoppt, steht aber noch im Autostart: Nach einem Neustart der Box liefe es wieder.`,unbekannt:m},t[5]=p,t[6]=m,t[7]=h):h=t[7];let g=h[l.zustand],_;t[8]===g?_=t[9]:(_=(0,E.jsx)(`p`,{className:`text-sm text-text-2`,children:g}),t[8]=g,t[9]=_);let v;t[10]!==n.schaltbar||t[11]!==l.an||t[12]!==l.wirksam?(v=n.schaltbar&&!l.wirksam&&(0,E.jsxs)(N,{children:[`Eingestellt ist „`,l.an?`an`:`aus`,`“, systemd zeigt etwas anderes. Noch einmal schalten gleicht es an.`]}),t[10]=n.schaltbar,t[11]=l.an,t[12]=l.wirksam,t[13]=v):v=t[13];let y=u?`outline`:`default`,b=!n.schaltbar||o.isPending,x;t[14]===u?x=t[15]:(x=()=>c(!u),t[14]=u,t[15]=x);let S=o.isPending?`Schaltet …`:u?`Ausschalten`:`Einschalten`,D;t[16]!==x||t[17]!==S||t[18]!==y||t[19]!==b?(D=(0,E.jsx)(i,{variant:y,size:`sm`,className:`self-start`,disabled:b,onClick:x,children:S}),t[16]=x,t[17]=S,t[18]=y,t[19]=b,t[20]=D):D=t[20];let O=s!==null,k=s?`Modell-Radar einschalten?`:`Modell-Radar ausschalten?`,j=s?`Das Radar sucht ab heute Nacht um 00:30 wieder nach besseren Modellen und testet höchstens eines pro Woche. Ein verpasster Lauf wird nicht nachgeholt, tagsüber lädt es also nichts.`:`Das Radar sucht und testet dann keine neuen Modelle mehr, bis du es wieder einschaltest. Ein Nachttest, der gerade läuft, endet noch. Auch ein Deploy schaltet es nicht wieder ein.`,P=s?`Einschalten`:`Ausschalten`,F;t[21]===Symbol.for(`react.memo_cache_sentinel`)?(F=()=>c(null),t[21]=F):F=t[21];let I;t[22]!==s||t[23]!==o?(I=()=>{s!==null&&(o.mutate(s),c(null))},t[22]=s,t[23]=o,t[24]=I):I=t[24];let L;t[25]!==o.isPending||t[26]!==O||t[27]!==k||t[28]!==j||t[29]!==P||t[30]!==I?(L=(0,E.jsx)(C,{offen:O,titel:k,text:j,knopf:P,gesperrt:o.isPending,onNein:F,onJa:I}),t[25]=o.isPending,t[26]=O,t[27]=k,t[28]=j,t[29]=P,t[30]=I,t[31]=L):L=t[31];let R;return t[32]!==D||t[33]!==L||t[34]!==_||t[35]!==v?(R=(0,E.jsxs)(M,{titel:`Modell-Radar`,children:[_,v,D,L]}),t[32]=D,t[33]=L,t[34]=_,t[35]=v,t[36]=R):R=t[36],R}function V(e){let t=(0,w.c)(25),{name:n,stand:r,laedt:i,fehler:a}=e,o;if(i){let e;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,E.jsx)(`span`,{className:`text-sm text-text-2`,children:`Wird gelesen …`}),t[0]=e):e=t[0],o=e}else if(a){let e;t[1]===a?e=t[2]:(e=(0,E.jsxs)(`span`,{className:`text-sm text-rot-text`,children:[`Nicht lesbar: `,a]}),t[1]=a,t[2]=e),o=e}else if(r?.commit){let e;t[4]===r.commit?e=t[5]:(e=(0,E.jsx)(`span`,{className:`ziffern text-foreground`,children:r.commit}),t[4]=r.commit,t[5]=e);let n=r.betreff?` · ${r.betreff}`:``,i;t[6]!==e||t[7]!==n?(i=(0,E.jsxs)(`span`,{className:`text-sm text-text-2`,children:[e,n]}),t[6]=e,t[7]=n,t[8]=i):i=t[8];let a;t[9]!==r.deploy_zeit||t[10]!==r.quelle?(a=r.quelle===`deploy`?`Live seit ${A(r.deploy_zeit)}`:`Aus git gelesen, ohne Deploy`,t[9]=r.deploy_zeit,t[10]=r.quelle,t[11]=a):a=t[11];let s;t[12]===r.commit_datum?s=t[13]:(s=r.commit_datum?` · Commit vom ${A(r.commit_datum)}`:``,t[12]=r.commit_datum,t[13]=s);let c;t[14]!==a||t[15]!==s?(c=(0,E.jsxs)(`span`,{className:`text-xs text-text-3`,children:[a,s]}),t[14]=a,t[15]=s,t[16]=c):c=t[16];let l;t[17]!==i||t[18]!==c?(l=(0,E.jsxs)(E.Fragment,{children:[i,c]}),t[17]=i,t[18]=c,t[19]=l):l=t[19],o=l}else{let e;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,E.jsx)(`span`,{className:`text-sm text-text-2`,children:`Unbekannt: keine Stand-Datei und kein git.`}),t[3]=e):e=t[3],o=e}let s;t[20]===n?s=t[21]:(s=(0,E.jsx)(`span`,{className:`text-[15px]`,children:n}),t[20]=n,t[21]=s);let c;return t[22]!==o||t[23]!==s?(c=(0,E.jsxs)(`div`,{className:`flex flex-col gap-0.5`,children:[s,o]}),t[22]=o,t[23]=s,t[24]=c):c=t[24],c}function H(e,t){return!e||!t?null:e.startsWith(t)||t.startsWith(e)}function U(e){let t=(0,w.c)(21),{offen:n}=e,r=u().data,i=!!r?.partner.eingerichtet,[a,o]=l(n,i),s=a.data?.stand?.commit,c=o.data?.stand?.commit,d;t[0]!==s||t[1]!==c?(d=H(s,c),t[0]=s,t[1]=c,t[2]=d):d=t[2];let f=d,p=a.data?.instanz??r?.instanz??`Diese Instanz`,m=a.data?.stand,h=a.error?.message,g;t[3]!==a.isPending||t[4]!==p||t[5]!==m||t[6]!==h?(g=(0,E.jsx)(V,{name:p,stand:m,laedt:a.isPending,fehler:h}),t[3]=a.isPending,t[4]=p,t[5]=m,t[6]=h,t[7]=g):g=t[7];let _;t[8]!==r?.partner||t[9]!==o.data?.instanz||t[10]!==o.data?.stand||t[11]!==o.error?.message||t[12]!==o.isPending||t[13]!==i?(_=i&&(0,E.jsx)(V,{name:o.data?.instanz??r?.partner.name??`Partner`,stand:o.data?.stand,laedt:o.isPending,fehler:o.error?.message}),t[8]=r?.partner,t[9]=o.data?.instanz,t[10]=o.data?.stand,t[11]=o.error?.message,t[12]=o.isPending,t[13]=i,t[14]=_):_=t[14];let v;t[15]===f?v=t[16]:(v=f===!1&&(0,E.jsx)(N,{children:`Die beiden Instanzen laufen mit verschiedenen Ständen. Der nächste Deploy der Box zieht den Homelab-Teil mit.`}),t[15]=f,t[16]=v);let y;return t[17]!==g||t[18]!==_||t[19]!==v?(y=(0,E.jsxs)(M,{titel:`Software-Stand`,children:[g,_,v]}),t[17]=g,t[18]=_,t[19]=v,t[20]=y):y=t[20],y}function W(e){let t=(0,w.c)(25),{offen:n,onSchliessen:r}=e,i=s(n),a=i.error?.message,o;t[0]!==i.data||t[1]!==i.isPending||t[2]!==a?(o={e:i.data,laedt:i.isPending,fehler:a},t[0]=i.data,t[1]=i.isPending,t[2]=a,t[3]=o):o=t[3];let c=o,l;t[4]===r?l=t[5]:(l=e=>!e&&r(),t[4]=r,t[5]=l);let u;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,E.jsxs)(y,{children:[(0,E.jsx)(v,{className:`schild text-lg`,children:`Einstellungen`}),(0,E.jsx)(x,{className:`text-text-2`,children:`Was die Box sich merkt und wann sie was tut.`})]}),t[6]=u):u=t[6];let d;t[7]===n?d=t[8]:(d=(0,E.jsx)(P,{offen:n}),t[7]=n,t[8]=d);let f;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,E.jsx)(I,{}),t[9]=f):f=t[9];let p,h;t[10]===c?(p=t[11],h=t[12]):(p=(0,E.jsx)(z,{...c}),h=(0,E.jsx)(B,{...c}),t[10]=c,t[11]=p,t[12]=h);let g;t[13]===n?g=t[14]:(g=(0,E.jsx)(U,{offen:n}),t[13]=n,t[14]=g);let _;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,E.jsxs)(M,{titel:`Hermes`,zuletzt:!0,children:[(0,E.jsxs)(`a`,{href:`/hermes-ui/`,target:`_blank`,rel:`noopener`,className:`flex h-11 items-center gap-2 self-start rounded-lg border border-linie-stark bg-erhaben px-4 text-[15px] hover:border-text-3`,children:[(0,E.jsx)(m,{className:`size-4`,"aria-hidden":!0}),` Hermes-Dashboard öffnen`]}),(0,E.jsx)(`p`,{className:`text-xs text-text-3`,children:`Chat, Sitzungen und Cron-Jobs verwaltet Hermes selbst. Es fragt nach seiner eigenen Anmeldung.`})]}),t[15]=_):_=t[15];let C;t[16]!==d||t[17]!==p||t[18]!==h||t[19]!==g?(C=(0,E.jsxs)(b,{side:`right`,className:`gap-3 overflow-y-auto border-linie bg-panel data-[side=right]:w-full data-[side=right]:sm:max-w-lg`,children:[u,d,f,p,h,g,_]}),t[16]=d,t[17]=p,t[18]=h,t[19]=g,t[20]=C):C=t[20];let T;return t[21]!==n||t[22]!==C||t[23]!==l?(T=(0,E.jsx)(S,{open:n,onOpenChange:l,children:C}),t[21]=n,t[22]=C,t[23]=l,t[24]=T):T=t[24],T}export{W as Einstellungen}; \ No newline at end of file diff --git a/frontend/dist/assets/Homelab-BhIvbmk3.js b/frontend/dist/assets/Homelab-BhIvbmk3.js deleted file mode 100644 index 80a265a..0000000 --- a/frontend/dist/assets/Homelab-BhIvbmk3.js +++ /dev/null @@ -1 +0,0 @@ -import{c as e,i as t,p as n,s as r,t as i,u as a}from"./button-BheHBEml.js";import{D as o,E as s,I as c,Q as l,T as u,X as d,_ as f,c as p,d as m,f as h,g,h as _,ht as v,i as y,it as b,k as x,l as S,m as C,n as w,p as T,pt as E,r as D,s as O,t as k,u as A}from"./index-_ndC28sQ.js";import{t as j}from"./Bestaetigen-CE_3b0PK.js";var M=r(),N=n(a(),1),P=e();function F(e){let t=(0,M.c)(14),{ziel:n,b:r}=e;if(!r){let e=n.art===`proxmox-host`?_(n)?.installiert:null,r;return t[0]===e?r=t[1]:(r=e?(0,P.jsxs)(`span`,{className:`ziffern text-sm`,children:[`PVE `,e]}):(0,P.jsx)(`span`,{className:`text-text-3`,children:`–`}),t[0]=e,t[1]=r),r}let i=r.installiert??void 0,a;t[2]===r.installiert?a=t[3]:(a=r.installiert&&(0,P.jsx)(`span`,{className:`text-foreground`,children:g(r.installiert)}),t[2]=r.installiert,t[3]=a);let o;t[4]!==r.verfuegbar||t[5]!==r.zustand?(o=r.zustand===`neu`&&r.verfuegbar&&(0,P.jsxs)(`span`,{className:`text-cyan`,children:[`→ `,r.verfuegbar]}),t[4]=r.verfuegbar,t[5]=r.zustand,t[6]=o):o=t[6];let s;t[7]===r.zustand?s=t[8]:(s=r.zustand===`unbekannt`&&(0,P.jsx)(`span`,{className:`text-bernstein`,children:`unklar`}),t[7]=r.zustand,t[8]=s);let c;return t[9]!==i||t[10]!==a||t[11]!==o||t[12]!==s?(c=(0,P.jsxs)(`span`,{className:`ziffern flex flex-wrap gap-x-2 text-sm`,title:i,children:[a,o,s]}),t[9]=i,t[10]=a,t[11]=o,t[12]=s,t[13]=c):c=t[13],c}function I(e){let t=(0,M.c)(12),{b:n}=e,r=n.id===`docker`;if(n.zustand===`neu`){let e=n.kurz?`${n.kurz} offen`:`Update bereit`,r;return t[0]===e?r=t[1]:(r=(0,P.jsx)(`span`,{className:`text-cyan`,children:e}),t[0]=e,t[1]=r),r}if(n.zustand===`aktuell`){let e=r?`Images aktuell`:`aktuell`,n;return t[2]===e?n=t[3]:(n=(0,P.jsx)(`span`,{className:`text-text-2`,children:e}),t[2]=e,t[3]=n),n}let i;t[4]===n.grund?i=t[5]:(i=m(n.grund),t[4]=n.grund,t[5]=i);let a=i,o=n.grund??void 0,s=r?`Images unklar`:`unklar`,c;t[6]===a?c=t[7]:(c=a&&(0,P.jsxs)(`span`,{className:`text-text-3`,children:[` · Listen vom `,a]}),t[6]=a,t[7]=c);let l;return t[8]!==o||t[9]!==s||t[10]!==c?(l=(0,P.jsxs)(`span`,{className:`text-text-2`,title:o,children:[s,c]}),t[8]=o,t[9]=s,t[10]=c,t[11]=l):l=t[11],l}function L(e){let n=(0,M.c)(41),{ziel:r,laeuft:a,gesperrt:o,onFrage:s}=e,c;n[0]===r?c=n[1]:(c=O(r),n[0]=r,n[1]=c);let l=c,u;n[2]===r?u=n[3]:(u=_(r),n[2]=r,n[3]=u);let d=u,f=d?.zustand===`unbekannt`?d.aktion:null,m;n[4]===r.name?m=n[5]:(m=(0,P.jsx)(`span`,{className:`text-[15px] font-semibold break-words`,children:r.name}),n[4]=r.name,n[5]=m);let h;n[6]===r?h=n[7]:(h=p(r)!==r.name&&(0,P.jsx)(`span`,{className:`text-sm text-text-3`,children:p(r)}),n[6]=r,n[7]=h);let g;n[8]===a?g=n[9]:(g=a&&(0,P.jsxs)(`span`,{role:`status`,className:`text-sm text-cyan`,children:[`Update läuft: `,a]}),n[8]=a,n[9]=g);let v;n[10]!==m||n[11]!==h||n[12]!==g?(v=(0,P.jsxs)(`div`,{role:`rowheader`,className:`flex min-w-0 flex-col`,children:[m,h,g]}),n[10]=m,n[11]=h,n[12]=g,n[13]=v):v=n[13];let y;n[14]!==l||n[15]!==r?(y=(0,P.jsx)(`span`,{role:`cell`,className:`col-span-2 md:col-span-1`,children:(0,P.jsx)(F,{ziel:r,b:l})}),n[14]=l,n[15]=r,n[16]=y):y=n[16];let b;n[17]===d?b=n[18]:(b=(0,P.jsx)(`span`,{className:`min-w-0`,children:d?(0,P.jsx)(I,{b:d}):(0,P.jsx)(`span`,{className:`text-text-3`,children:`–`})}),n[17]=d,n[18]=b);let x;n[19]!==o||n[20]!==a||n[21]!==s||n[22]!==f||n[23]!==r?(x=f&&(0,P.jsx)(i,{variant:`ghost`,size:`icon-sm`,className:`-my-2 shrink-0`,"aria-label":f.label,title:f.label,disabled:o||!!a,onClick:()=>s({ziel:r,aktion:f}),children:(0,P.jsx)(E,{})}),n[19]=o,n[20]=a,n[21]=s,n[22]=f,n[23]=r,n[24]=x):x=n[24];let S;n[25]!==b||n[26]!==x?(S=(0,P.jsxs)(`span`,{role:`cell`,className:`col-span-2 flex items-center gap-x-2 text-sm md:col-span-1`,children:[b,x]}),n[25]=b,n[26]=x,n[27]=S):S=n[27];let C=r.erreichbar===!1?`text-rot-text`:`text-text-3`,w;n[28]===C?w=n[29]:(w=t(`schild col-start-2 row-start-1 flex items-center gap-1.5 self-start text-xs md:col-start-auto md:row-start-auto md:self-center`,C),n[28]=C,n[29]=w);let T;n[30]===r.erreichbar?T=n[31]:(T=r.erreichbar!==null&&(0,P.jsx)(`span`,{"aria-hidden":!0,className:t(`size-2 rounded-full`,r.erreichbar?`bg-gruen`:`bg-rot`)}),n[30]=r.erreichbar,n[31]=T);let D=r.erreichbar===null?`–`:r.erreichbar?`erreichbar`:`antwortet nicht`,k;n[32]!==w||n[33]!==T||n[34]!==D?(k=(0,P.jsxs)(`span`,{role:`cell`,className:w,children:[T,D]}),n[32]=w,n[33]=T,n[34]=D,n[35]=k):k=n[35];let A;return n[36]!==S||n[37]!==k||n[38]!==v||n[39]!==y?(A=(0,P.jsxs)(`div`,{role:`row`,className:`grid grid-cols-[minmax(0,1fr)_auto] gap-x-4 gap-y-1 border-t border-linie py-3 md:grid-cols-[minmax(0,1.2fr)_minmax(0,1fr)_minmax(0,1.5fr)_130px] md:items-center`,children:[v,y,S,k]}),n[36]=S,n[37]=k,n[38]=v,n[39]=y,n[40]=A):A=n[40],A}function R(e){let t=(0,M.c)(24),{ziele:n,laufend:r,gesperrt:i,onAktion:a}=e,[o,s]=(0,N.useState)(null),c;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,P.jsxs)(`div`,{role:`row`,className:`schild hidden grid-cols-[minmax(0,1.2fr)_minmax(0,1fr)_minmax(0,1.5fr)_130px] gap-x-4 pb-2 text-xs font-semibold text-text-3 md:grid`,children:[(0,P.jsx)(`span`,{role:`columnheader`,children:`Gerät`}),(0,P.jsx)(`span`,{role:`columnheader`,children:`App`}),(0,P.jsx)(`span`,{role:`columnheader`,children:`Pakete`}),(0,P.jsx)(`span`,{role:`columnheader`,children:`Netz`})]}),t[0]=c):c=t[0];let l;if(t[1]!==i||t[2]!==r||t[3]!==n){let e;t[5]!==i||t[6]!==r?(e=e=>(0,P.jsx)(L,{ziel:e,laeuft:r.get(e.id)??null,gesperrt:i,onFrage:s},e.id),t[5]=i,t[6]=r,t[7]=e):e=t[7],l=n.map(e),t[1]=i,t[2]=r,t[3]=n,t[4]=l}else l=t[4];let u;t[8]===l?u=t[9]:(u=(0,P.jsxs)(`div`,{role:`table`,"aria-label":`Geräte im Homelab`,className:`flex flex-col`,children:[c,l]}),t[8]=l,t[9]=u);let d=!!o,f=o?`${o.ziel.name}: ${o.aktion.label}`:``,p=o?.aktion.frage??``,m=o?.aktion.label??``,h;t[10]!==o||t[11]!==a?(h=()=>{o&&a(o.aktion),s(null)},t[10]=o,t[11]=a,t[12]=h):h=t[12];let g;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(g=()=>s(null),t[13]=g):g=t[13];let _;t[14]!==i||t[15]!==d||t[16]!==f||t[17]!==p||t[18]!==m||t[19]!==h?(_=(0,P.jsx)(j,{offen:d,titel:f,text:p,knopf:m,gesperrt:i,onJa:h,onNein:g}),t[14]=i,t[15]=d,t[16]=f,t[17]=p,t[18]=m,t[19]=h,t[20]=_):_=t[20];let v;return t[21]!==_||t[22]!==u?(v=(0,P.jsxs)(P.Fragment,{children:[u,_]}),t[21]=_,t[22]=u,t[23]=v):v=t[23],v}function z(e){let n=(0,M.c)(24),{lage:r,lampen:i,onAnsehen:a}=e,o=r.ziel!==null,s=!o,c=`${r.oben} ${r.mitte}`,l=b[r.art],u=o?`cursor-pointer`:`cursor-default`,d;n[0]!==l||n[1]!==u?(d=t(`flex min-h-[130px] flex-col items-center justify-center gap-1 rounded-2xl border px-4 py-4 font-anzeige transition-colors`,l,u),n[0]=l,n[1]=u,n[2]=d):d=n[2];let f;n[3]===r.oben?f=n[4]:(f=(0,P.jsx)(`span`,{className:`schild text-sm tracking-[0.26em]`,children:r.oben}),n[3]=r.oben,n[4]=f);let p;n[5]===r.mitte?p=n[6]:(p=(0,P.jsx)(`span`,{className:`text-center text-[34px] leading-none font-bold tracking-[0.04em] sm:text-[38px]`,children:r.mitte}),n[5]=r.mitte,n[6]=p);let m;n[7]===r.unten?m=n[8]:(m=(0,P.jsx)(`span`,{className:`font-sans text-sm opacity-80`,children:r.unten}),n[7]=r.unten,n[8]=m);let h;n[9]!==a||n[10]!==s||n[11]!==c||n[12]!==d||n[13]!==f||n[14]!==p||n[15]!==m?(h=(0,P.jsxs)(`button`,{type:`button`,onClick:a,disabled:s,"aria-label":c,className:d,children:[f,p,m]}),n[9]=a,n[10]=s,n[11]=c,n[12]=d,n[13]=f,n[14]=p,n[15]=m,n[16]=h):h=n[16];let g;n[17]===i?g=n[18]:(g=i.map(B),n[17]=i,n[18]=g);let _;n[19]===g?_=n[20]:(_=(0,P.jsx)(`ul`,{"aria-label":`Geräte`,className:`grid grid-cols-2 gap-2.5 rounded-2xl border border-linie bg-panel p-3 sm:grid-cols-4`,children:g}),n[19]=g,n[20]=_);let v;return n[21]!==_||n[22]!==h?(v=(0,P.jsxs)(`section`,{"aria-label":`Lage im Homelab`,className:`grid gap-4 md:grid-cols-[260px_minmax(0,1fr)] md:gap-5`,children:[h,_]}),n[21]=_,n[22]=h,n[23]=v):v=n[23],v}function B(e){return(0,P.jsx)(k,{lampe:e},e.id)}function V(e){let t=(0,M.c)(47),{u:n,laeuft:r,gesperrt:a,onFrage:o}=e,{ziel:s,baustein:c}=n,l=c.id===`app`||c.id===`arcane`,u=c.installiert??`–`,d;t[0]===c?d=t[1]:(d=h(c),t[0]=c,t[1]=d);let p=d,m;t[2]!==c.aktion||t[3]!==c.grund||t[4]!==s?(m=c.aktion?C(s):c.grund??`Wird nicht über den Orchestrator eingespielt.`,t[2]=c.aktion,t[3]=c.grund,t[4]=s,t[5]=m):m=t[5];let g=m,_;if(r){let e;t[6]===r?e=t[7]:(e=(0,P.jsxs)(`span`,{role:`status`,className:`text-sm text-cyan`,children:[`Läuft: `,r]}),t[6]=r,t[7]=e),_=e}else if(c.aktion){let e=c.aktion,n;t[8]!==e||t[9]!==o||t[10]!==s?(n=()=>o({ziel:s,aktion:e}),t[8]=e,t[9]=o,t[10]=s,t[11]=n):n=t[11];let r;t[12]!==e.label||t[13]!==a||t[14]!==n?(r=(0,P.jsx)(i,{variant:`outline`,size:`sm`,disabled:a,onClick:n,children:e.label}),t[12]=e.label,t[13]=a,t[14]=n,t[15]=r):r=t[15],_=r}let v;t[16]===s.name?v=t[17]:(v=(0,P.jsx)(`span`,{className:`text-[15px] font-semibold break-words`,children:s.name}),t[16]=s.name,t[17]=v);let y;t[18]!==c||t[19]!==s?(y=f(s,c),t[18]=c,t[19]=s,t[20]=y):y=t[20];let b;t[21]===y?b=t[22]:(b=(0,P.jsx)(`span`,{className:`text-sm text-text-3`,children:y}),t[21]=y,t[22]=b);let x;t[23]!==v||t[24]!==b?(x=(0,P.jsxs)(`div`,{role:`rowheader`,className:`flex min-w-0 flex-col`,children:[v,b]}),t[23]=v,t[24]=b,t[25]=x):x=t[25];let S;t[26]!==u||t[27]!==l||t[28]!==c.installiert||t[29]!==p?(S=(0,P.jsx)(`span`,{role:`cell`,className:`ziffern text-sm text-text-2 md:hidden`,children:l&&c.installiert?(0,P.jsxs)(P.Fragment,{children:[u,` → `,(0,P.jsx)(`span`,{className:`text-cyan`,children:p})]}):(0,P.jsx)(`span`,{className:`text-cyan`,children:p})}),t[26]=u,t[27]=l,t[28]=c.installiert,t[29]=p,t[30]=S):S=t[30];let w;t[31]===u?w=t[32]:(w=(0,P.jsx)(`span`,{role:`cell`,className:`ziffern hidden text-sm text-text-2 md:block`,children:u}),t[31]=u,t[32]=w);let T;t[33]===p?T=t[34]:(T=(0,P.jsx)(`span`,{role:`cell`,className:`ziffern hidden text-sm text-cyan md:block`,children:p}),t[33]=p,t[34]=T);let E=c.aktion?`text-sm text-text-2`:`text-sm text-text-3`,D;t[35]!==g||t[36]!==E?(D=(0,P.jsx)(`span`,{role:`cell`,className:E,children:g}),t[35]=g,t[36]=E,t[37]=D):D=t[37];let O;t[38]===_?O=t[39]:(O=(0,P.jsx)(`span`,{role:`cell`,className:`flex md:justify-end`,children:_}),t[38]=_,t[39]=O);let k;return t[40]!==D||t[41]!==O||t[42]!==x||t[43]!==S||t[44]!==w||t[45]!==T?(k=(0,P.jsxs)(`div`,{role:`row`,className:`grid grid-cols-1 gap-x-4 gap-y-1.5 border-t border-linie py-3.5 md:grid-cols-[210px_120px_140px_minmax(0,1fr)_auto] md:items-center`,children:[x,S,w,T,D,O]}),t[40]=D,t[41]=O,t[42]=x,t[43]=S,t[44]=w,t[45]=T,t[46]=k):k=t[46],k}function H(e){let t=(0,M.c)(21),{updates:n,laufend:r,gesperrt:i,onAktion:a}=e,[o,s]=(0,N.useState)(null),c;t[0]!==i||t[1]!==r||t[2]!==n?(c=n.length===0?(0,P.jsx)(`p`,{className:`text-[15px] text-gruen`,children:`Im Homelab ist alles aktuell.`}):(0,P.jsxs)(`div`,{role:`table`,"aria-label":`Offene Updates im Homelab`,className:`flex flex-col`,children:[(0,P.jsxs)(`div`,{role:`row`,className:`schild hidden grid-cols-[210px_120px_140px_minmax(0,1fr)_auto] gap-x-4 pb-2 text-xs font-semibold text-text-3 md:grid`,children:[(0,P.jsx)(`span`,{role:`columnheader`,children:`Gerät`}),(0,P.jsx)(`span`,{role:`columnheader`,children:`Läuft`}),(0,P.jsx)(`span`,{role:`columnheader`,children:`Neu`}),(0,P.jsx)(`span`,{role:`columnheader`,children:`Rückweg`}),(0,P.jsx)(`span`,{role:`columnheader`,className:`sr-only`,children:`Aktion`})]}),n.map(e=>(0,P.jsx)(V,{u:e,laeuft:r.get(e.ziel.id)??null,gesperrt:i||r.has(e.ziel.id),onFrage:s},`${e.ziel.id}-${e.baustein.id}`))]}),t[0]=i,t[1]=r,t[2]=n,t[3]=c):c=t[3];let l=!!o,u=o?`${o.ziel.name}: ${o.aktion.label}`:``,d=o?.aktion.frage??``,f=o?.aktion.label??``,p;t[4]===o?.aktion.pfad?p=t[5]:(p=o?.aktion.pfad.endsWith(`/neustart`),t[4]=o?.aktion.pfad,t[5]=p);let m=!!p,h;t[6]!==o||t[7]!==a?(h=()=>{o&&a(o.aktion),s(null)},t[6]=o,t[7]=a,t[8]=h):h=t[8];let g;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(g=()=>s(null),t[9]=g):g=t[9];let _;t[10]!==i||t[11]!==l||t[12]!==u||t[13]!==d||t[14]!==f||t[15]!==m||t[16]!==h?(_=(0,P.jsx)(j,{offen:l,titel:u,text:d,knopf:f,gefahr:m,gesperrt:i,onJa:h,onNein:g}),t[10]=i,t[11]=l,t[12]=u,t[13]=d,t[14]=f,t[15]=m,t[16]=h,t[17]=_):_=t[17];let v;return t[18]!==c||t[19]!==_?(v=(0,P.jsxs)(P.Fragment,{children:[c,_]}),t[18]=c,t[19]=_,t[20]=v):v=t[20],v}var U=[`Proxmox-Host`,`AdGuard`,`NPMplus`,`NetBird`,`PVE Scripts Local`,`Gitea`,`PBS`,`Arcane mit Docker`],W={eingespielt:{art:`gruen`,text:`eingespielt`},zurueckgerollt:{art:`bernstein`,text:`zurückgerollt`},fehler:{art:`rot`,text:`Fehler`},neustart:{art:`cyan`,text:`Neustart`}},G=e=>l(new Date(e*1e3).toISOString());function K(){let e=(0,M.c)(4),t,n;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,P.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Der Homelab-Teil läuft als eigene Instanz in einem kleinen Container auf dem Proxmox-PC. Von dort prüft er auch die KI-Box von außen.`}),n=(0,P.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Steht er, erscheinen hier alle Geräte mit ihren offenen Updates. Ein Update startest du mit „Jetzt updaten“: Vorher wird gesichert, danach die Erreichbarkeit geprüft, und ist sie rot, geht es von selbst zurück.`}),e[0]=t,e[1]=n):(t=e[0],n=e[1]);let r;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,P.jsx)(`h3`,{className:`schild text-sm tracking-[0.18em] text-text-3`,children:`Dazu kommen`}),e[2]=r):r=e[2];let i;return e[3]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,P.jsxs)(P.Fragment,{children:[t,n,(0,P.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[r,(0,P.jsx)(`ul`,{className:`flex flex-wrap gap-2`,children:U.map(q)})]}),(0,P.jsx)(`p`,{className:`text-sm text-text-3`,children:`Der Container wird erst nach deiner Freigabe angelegt.`})]}),e[3]=i):i=e[3],i}function q(e){return(0,P.jsx)(`li`,{children:(0,P.jsx)(D,{children:e})},e)}function J(e){let t=(0,M.c)(9),{partner:n}=e,r;t[0]===n.eingerichtet?r=t[1]:(r=n.eingerichtet?(0,P.jsx)(D,{art:`rot`,children:`Antwortet nicht`}):(0,P.jsx)(D,{children:`Noch nicht eingerichtet`}),t[0]=n.eingerichtet,t[1]=r);let i=r,a;t[2]!==n.eingerichtet||t[3]!==n.fehler||t[4]!==n.url?(a=n.eingerichtet?(0,P.jsxs)(`p`,{role:`alert`,className:`text-[15px] text-rot-text`,children:[`Der Homelab-Teil (`,n.url,`) ist `,n.fehler??`nicht erreichbar`,`. Hält das an, meldet der Wächter es nach fünf Minuten auf Telegram.`]}):(0,P.jsx)(K,{}),t[2]=n.eingerichtet,t[3]=n.fehler,t[4]=n.url,t[5]=a):a=t[5];let o;return t[6]!==i||t[7]!==a?(o=(0,P.jsx)(w,{titel:`Homelab`,rechts:i,children:a}),t[6]=i,t[7]=a,t[8]=o):o=t[8],o}function Y(e){let t=(0,M.c)(10),{hinweise:n}=e,r=n.some(Z)?`rot`:`bernstein`,i;t[0]!==n.length||t[1]!==r?(i=(0,P.jsxs)(D,{art:r,children:[n.length,` offen`]}),t[0]=n.length,t[1]=r,t[2]=i):i=t[2];let a;t[3]===n?a=t[4]:(a=n.map(X),t[3]=n,t[4]=a);let o;t[5]===a?o=t[6]:(o=(0,P.jsx)(`ul`,{className:`m-0 flex list-none flex-col p-0`,children:a}),t[5]=a,t[6]=o);let s;return t[7]!==i||t[8]!==o?(s=(0,P.jsx)(w,{titel:`Hinweise`,id:`hinweise`,rechts:i,children:o}),t[7]=i,t[8]=o,t[9]=s):s=t[9],s}function X(e){return(0,P.jsxs)(`li`,{className:`flex flex-col gap-1 border-t border-linie py-3 first:border-t-0 first:pt-0`,children:[(0,P.jsx)(`span`,{className:e.stufe===`rot`?`text-[15px] font-medium text-rot-text`:`text-[15px] font-medium text-bernstein`,children:e.titel}),(0,P.jsx)(`span`,{className:`text-sm text-text-2`,children:e.text})]},e.id)}function Z(e){return e.stufe===`rot`}function ee(e){let t=(0,M.c)(8),{laeufe:n}=e,r,i,a;if(t[0]!==n){a=Symbol.for(`react.early_return_sentinel`);bb0:{let e=n.filter(ne).slice(0,12);if(e.length===0){let e;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,P.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Noch kein Update im Homelab eingespielt.`}),t[4]=e):e=t[4],a=e;break bb0}r=`@container m-0 flex list-none flex-col p-0`,i=e.map(te)}t[0]=n,t[1]=r,t[2]=i,t[3]=a}else r=t[1],i=t[2],a=t[3];if(a!==Symbol.for(`react.early_return_sentinel`))return a;let o;return t[5]!==r||t[6]!==i?(o=(0,P.jsx)(`ol`,{className:r,children:i}),t[5]=r,t[6]=i,t[7]=o):o=t[7],o}function te(e){let t=e.ergebnis?W[e.ergebnis]:{art:`grau`,text:`unterbrochen`};return(0,P.jsxs)(`li`,{className:`flex flex-col gap-1.5 border-t border-linie py-3 first:border-t-0 first:pt-0`,children:[(0,P.jsxs)(`div`,{className:`grid grid-cols-[minmax(0,1fr)_auto] items-center gap-x-3 gap-y-1 @sm:grid-cols-[112px_minmax(0,1fr)_auto]`,children:[(0,P.jsx)(`span`,{className:`ziffern col-start-1 row-start-1 text-sm text-text-3`,children:G(e.start)}),(0,P.jsx)(`span`,{className:`col-span-2 row-start-2 min-w-0 text-[15px] break-words @sm:col-span-1 @sm:col-start-2 @sm:row-start-1`,children:e.name}),(0,P.jsx)(`span`,{className:`col-start-2 row-start-1 justify-self-end @sm:col-start-3`,children:(0,P.jsx)(D,{art:t.art,children:t.text})})]}),e.text&&(0,P.jsx)(`p`,{className:`m-0 text-sm text-text-2 @sm:pl-[124px]`,children:e.text})]},e.id)}function ne(e){return e.status!==`laeuft`}function Q(e){let t=(0,M.c)(9),{stand:n}=e;if(!n.ausfuehrer.verbunden){let e;t[0]===n.ausfuehrer.zuletzt?e=t[1]:(e=n.ausfuehrer.zuletzt?` (zuletzt ${G(n.ausfuehrer.zuletzt)})`:``,t[0]=n.ausfuehrer.zuletzt,t[1]=e);let r;return t[2]===e?r=t[3]:(r=(0,P.jsxs)(`p`,{role:`alert`,className:`rounded-xl border border-bernstein/60 bg-bernstein-grund px-4 py-3 text-[15px] text-bernstein`,children:[`Der Ausführer auf dem Proxmox-Host meldet sich nicht`,e,`. Die Geräte zeigen den letzten bekannten Stand; Updates starten erst, wenn er wieder da ist.`]}),t[2]=e,t[3]=r),r}if(!n.bericht){let e;return t[4]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,P.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Der Ausführer hat noch keinen Bericht geschickt.`}),t[4]=e):e=t[4],e}if(n.bericht.veraltet){let e;t[5]===n.bericht.empfangen?e=t[6]:(e=G(n.bericht.empfangen),t[5]=n.bericht.empfangen,t[6]=e);let r;return t[7]===e?r=t[8]:(r=(0,P.jsxs)(`p`,{className:`text-[15px] text-bernstein`,children:[`Der letzte Bericht ist von `,e,`; die Angaben können veraltet sein.`]}),t[7]=e,t[8]=r),r}return null}function $(){let e=(0,M.c)(20),t=x(),n=c(),r=t.data?.rolle===`homelab`||!!(n.data?.eingerichtet&&n.data.erreichbar),i=u(r),a=o(r),l=s(r),f=d(),p=null;if(t.isPending||n.isPending){let t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,P.jsx)(y,{text:`Wird gelesen …`}),e[0]=t):t=e[0],p=t}else if(!r){let t;e[1]!==n.data||e[2]!==n.error?.message?(t=n.data?(0,P.jsx)(J,{partner:n.data}):(0,P.jsx)(y,{fehler:!0,text:`Der Partner lässt sich nicht abfragen: ${n.error?.message??`keine Daten`}`}),e[1]=n.data,e[2]=n.error?.message,e[3]=t):t=e[3],p=t}else if(i.isPending){let t;e[4]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,P.jsx)(y,{text:`Der Homelab-Teil meldet sich gleich …`}),e[4]=t):t=e[4],p=t}else if(!i.data){let t=`Der Homelab-Teil antwortet nicht: ${i.error?.message??`keine Daten`}`,n;e[5]===t?n=e[6]:(n=(0,P.jsx)(y,{fehler:!0,text:t}),e[5]=t,e[6]=n),p=n}let m;if(e[7]!==a.data?.laeufe){m=new Map;for(let e of a.data?.laeufe??[])e.status===`laeuft`&&m.set(e.ziel,e.schritte.at(-1)??`startet …`);e[7]=a.data?.laeufe,e[8]=m}else m=e[8];let h;e[9]===a.data?.laeufe?h=e[10]:(h=a.data?.laeufe??[],e[9]=a.data?.laeufe,e[10]=h);let g;e[11]===l.data?.hinweise?g=e[12]:(g=l.data?.hinweise??[],e[11]=l.data?.hinweise,e[12]=g);let _;return e[13]!==f||e[14]!==p||e[15]!==i.data||e[16]!==m||e[17]!==h||e[18]!==g?(_={ersatz:p,stand:i.data,laufend:m,laeufe:h,hinweise:g,aktion:f},e[13]=f,e[14]=p,e[15]=i.data,e[16]=m,e[17]=h,e[18]=g,e[19]=_):_=e[19],_}function re(){let e=(0,M.c)(38),t=v(),{ersatz:n,stand:r,laufend:i,hinweise:a,aktion:o}=$();if(n||!r)return n;let s,c;e[0]!==a||e[1]!==i.size||e[2]!==r?(s=r.bericht?G(r.bericht.empfangen):null,c=S(r,a,i.size,s),e[0]=a,e[1]=i.size,e[2]=r,e[3]=s,e[4]=c):(s=e[3],c=e[4]);let l=c,u;if(e[5]!==i||e[6]!==r.ziele){let t;e[8]===i?t=e[9]:(t=e=>A(e,i.has(e.id)),e[8]=i,e[9]=t),u=r.ziele.map(t),e[5]=i,e[6]=r.ziele,e[7]=u}else u=e[7];let d;e[10]!==l.ziel||e[11]!==t?(d=()=>{l.ziel===`updates`?t({to:`/homelab/updates`}):l.ziel&&document.getElementById(l.ziel)?.scrollIntoView({behavior:`smooth`,block:`start`})},e[10]=l.ziel,e[11]=t,e[12]=d):d=e[12];let f;e[13]!==l||e[14]!==u||e[15]!==d?(f=(0,P.jsx)(z,{lage:l,lampen:u,onAnsehen:d}),e[13]=l,e[14]=u,e[15]=d,e[16]=f):f=e[16];let p;e[17]===r?p=e[18]:(p=(0,P.jsx)(Q,{stand:r}),e[17]=r,e[18]=p);let m;e[19]===a?m=e[20]:(m=a.length>0&&(0,P.jsx)(Y,{hinweise:a}),e[19]=a,e[20]=m);let h;e[21]===s?h=e[22]:(h=s?(0,P.jsxs)(`span`,{className:`ziffern text-sm text-text-3`,children:[`Stand `,s]}):void 0,e[21]=s,e[22]=h);let g;e[23]===o?g=e[24]:(g=e=>o.mutate(e),e[23]=o,e[24]=g);let _;e[25]!==o.isPending||e[26]!==i||e[27]!==r.ziele||e[28]!==g?(_=(0,P.jsx)(R,{ziele:r.ziele,laufend:i,gesperrt:o.isPending,onAktion:g}),e[25]=o.isPending,e[26]=i,e[27]=r.ziele,e[28]=g,e[29]=_):_=e[29];let y;e[30]!==h||e[31]!==_?(y=(0,P.jsx)(w,{titel:`Geräte`,id:`geraete`,rechts:h,children:_}),e[30]=h,e[31]=_,e[32]=y):y=e[32];let b;return e[33]!==f||e[34]!==p||e[35]!==m||e[36]!==y?(b=(0,P.jsxs)(P.Fragment,{children:[f,p,m,y]}),e[33]=f,e[34]=p,e[35]=m,e[36]=y,e[37]=b):b=e[37],b}function ie(){let e=(0,M.c)(20),{ersatz:t,stand:n,laufend:r,laeufe:i,aktion:a}=$();if(t||!n)return t;let o;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,P.jsx)(`p`,{className:`-mt-2 text-[15px] text-text-2`,children:`Du startest jedes Update selbst. Vorher wird gesichert, danach geprüft; ist die Prüfung rot, geht es von selbst zurück.`}),e[0]=o):o=e[0];let s;e[1]===n?s=e[2]:(s=(0,P.jsx)(Q,{stand:n}),e[1]=n,e[2]=s);let c;e[3]===n.ziele?c=e[4]:(c=T(n.ziele),e[3]=n.ziele,e[4]=c);let l=a.isPending||!n.ausfuehrer.verbunden,u;e[5]===a?u=e[6]:(u=e=>a.mutate(e),e[5]=a,e[6]=u);let d;e[7]!==r||e[8]!==c||e[9]!==l||e[10]!==u?(d=(0,P.jsx)(H,{updates:c,laufend:r,gesperrt:l,onAktion:u}),e[7]=r,e[8]=c,e[9]=l,e[10]=u,e[11]=d):d=e[11];let f;e[12]!==s||e[13]!==d?(f=(0,P.jsxs)(w,{titel:`Updates`,children:[o,s,d]}),e[12]=s,e[13]=d,e[14]=f):f=e[14];let p;e[15]===i?p=e[16]:(p=(0,P.jsx)(w,{titel:`Verlauf`,children:(0,P.jsx)(ee,{laeufe:i})}),e[15]=i,e[16]=p);let m;return e[17]!==f||e[18]!==p?(m=(0,P.jsxs)(P.Fragment,{children:[f,p]}),e[17]=f,e[18]=p,e[19]=m):m=e[19],m}export{re as HomelabSeite,ie as HomelabUpdatesSeite}; \ No newline at end of file diff --git a/frontend/dist/assets/Homelab-vuFxJN2L.js b/frontend/dist/assets/Homelab-vuFxJN2L.js new file mode 100644 index 0000000..ad10f87 --- /dev/null +++ b/frontend/dist/assets/Homelab-vuFxJN2L.js @@ -0,0 +1 @@ +import{c as e,i as t,p as n,s as r,t as i,u as a}from"./button-BheHBEml.js";import{$ as o,A as s,M as c,O as l,_ as u,b as d,d as f,f as p,g as m,gt as h,h as g,i as _,k as v,l as y,m as b,n as x,p as S,r as C,st as w,t as T,tt as E,u as D,v as O,vt as k,y as A,z as j}from"./index-BAH01Yfc.js";import{t as M}from"./Bestaetigen-CE_3b0PK.js";var N=r(),P=n(a(),1),F=e();function I(e){let t=(0,N.c)(14),{ziel:n,b:r}=e;if(!r){let e=n.art===`proxmox-host`?O(n)?.installiert:null,r;return t[0]===e?r=t[1]:(r=e?(0,F.jsxs)(`span`,{className:`ziffern text-sm`,children:[`PVE `,e]}):(0,F.jsx)(`span`,{className:`text-text-3`,children:`–`}),t[0]=e,t[1]=r),r}let i=r.installiert??void 0,a;t[2]===r.installiert?a=t[3]:(a=r.installiert&&(0,F.jsx)(`span`,{className:`text-foreground`,children:A(r.installiert)}),t[2]=r.installiert,t[3]=a);let o;t[4]!==r.verfuegbar||t[5]!==r.zustand?(o=r.zustand===`neu`&&r.verfuegbar&&(0,F.jsxs)(`span`,{className:`text-cyan`,children:[`→ `,r.verfuegbar]}),t[4]=r.verfuegbar,t[5]=r.zustand,t[6]=o):o=t[6];let s;t[7]===r.zustand?s=t[8]:(s=r.zustand===`unbekannt`&&(0,F.jsx)(`span`,{className:`text-bernstein`,children:`unklar`}),t[7]=r.zustand,t[8]=s);let c;return t[9]!==i||t[10]!==a||t[11]!==o||t[12]!==s?(c=(0,F.jsxs)(`span`,{className:`ziffern flex flex-wrap gap-x-2 text-sm`,title:i,children:[a,o,s]}),t[9]=i,t[10]=a,t[11]=o,t[12]=s,t[13]=c):c=t[13],c}function L(e){let t=(0,N.c)(12),{b:n}=e,r=n.id===`docker`;if(n.zustand===`neu`){let e=n.kurz?`${n.kurz} offen`:`Update bereit`,r;return t[0]===e?r=t[1]:(r=(0,F.jsx)(`span`,{className:`text-cyan`,children:e}),t[0]=e,t[1]=r),r}if(n.zustand===`aktuell`){let e=r?`Images aktuell`:`aktuell`,n;return t[2]===e?n=t[3]:(n=(0,F.jsx)(`span`,{className:`text-text-2`,children:e}),t[2]=e,t[3]=n),n}let i;t[4]===n.grund?i=t[5]:(i=S(n.grund),t[4]=n.grund,t[5]=i);let a=i,o=n.grund??void 0,s=r?`Images unklar`:`unklar`,c;t[6]===a?c=t[7]:(c=a&&(0,F.jsxs)(`span`,{className:`text-text-3`,children:[` · Listen vom `,a]}),t[6]=a,t[7]=c);let l;return t[8]!==o||t[9]!==s||t[10]!==c?(l=(0,F.jsxs)(`span`,{className:`text-text-2`,title:o,children:[s,c]}),t[8]=o,t[9]=s,t[10]=c,t[11]=l):l=t[11],l}function R(e){let n=(0,N.c)(14),{ziel:r}=e,i=m(r);if(i===null){let e;return n[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,F.jsx)(`span`,{className:`text-text-3`,children:`–`}),n[0]=e):e=n[0],e}let a=i>=.95?`text-rot-text`:i>=.85?`text-bernstein`:`text-text-2`,o=z,s;n[1]===a?s=n[2]:(s=t(`ziffern text-sm`,a),n[1]=a,n[2]=s);let c;n[3]===r.platte.belegt?c=n[4]:(c=o(r.platte.belegt),n[3]=r.platte.belegt,n[4]=c);let l;n[5]===r.platte.gesamt?l=n[6]:(l=o(r.platte.gesamt),n[5]=r.platte.gesamt,n[6]=l);let u=`${c} von ${l} GB belegt`,d;n[7]===i?d=n[8]:(d=Math.round(i*100),n[7]=i,n[8]=d);let f=Math.min(100,d),p=i>=.95?` voll`:``,h;return n[9]!==s||n[10]!==u||n[11]!==f||n[12]!==p?(h=(0,F.jsxs)(`span`,{className:s,title:u,children:[f,` %`,p]}),n[9]=s,n[10]=u,n[11]=f,n[12]=p,n[13]=h):h=n[13],h}function z(e){return(e/1e9).toFixed(1).replace(`.`,`,`)}function B(e){let n=(0,N.c)(45),{ziel:r,laeuft:a,gesperrt:o,onFrage:s}=e,c;n[0]===r?c=n[1]:(c=y(r),n[0]=r,n[1]=c);let l=c,u;n[2]===r?u=n[3]:(u=O(r),n[2]=r,n[3]=u);let d=u,f=d?.zustand===`unbekannt`?d.aktion:null,p;n[4]===r.name?p=n[5]:(p=(0,F.jsx)(`span`,{className:`text-[15px] font-semibold break-words`,children:r.name}),n[4]=r.name,n[5]=p);let m;n[6]===r?m=n[7]:(m=D(r)!==r.name&&(0,F.jsx)(`span`,{className:`text-sm text-text-3`,children:D(r)}),n[6]=r,n[7]=m);let g;n[8]===a?g=n[9]:(g=a&&(0,F.jsxs)(`span`,{role:`status`,className:`text-sm text-cyan`,children:[`Update läuft: `,a]}),n[8]=a,n[9]=g);let _;n[10]!==p||n[11]!==m||n[12]!==g?(_=(0,F.jsxs)(`div`,{role:`rowheader`,className:`flex min-w-0 flex-col`,children:[p,m,g]}),n[10]=p,n[11]=m,n[12]=g,n[13]=_):_=n[13];let v;n[14]!==l||n[15]!==r?(v=(0,F.jsx)(`span`,{role:`cell`,className:`col-span-2 md:col-span-1`,children:(0,F.jsx)(I,{ziel:r,b:l})}),n[14]=l,n[15]=r,n[16]=v):v=n[16];let b;n[17]===d?b=n[18]:(b=(0,F.jsx)(`span`,{className:`min-w-0`,children:d?(0,F.jsx)(L,{b:d}):(0,F.jsx)(`span`,{className:`text-text-3`,children:`–`})}),n[17]=d,n[18]=b);let x;n[19]!==o||n[20]!==a||n[21]!==s||n[22]!==f||n[23]!==r?(x=f&&(0,F.jsx)(i,{variant:`ghost`,size:`icon-sm`,className:`-my-2 shrink-0`,"aria-label":f.label,title:f.label,disabled:o||!!a,onClick:()=>s({ziel:r,aktion:f}),children:(0,F.jsx)(h,{})}),n[19]=o,n[20]=a,n[21]=s,n[22]=f,n[23]=r,n[24]=x):x=n[24];let S;n[25]!==b||n[26]!==x?(S=(0,F.jsxs)(`span`,{role:`cell`,className:`col-span-2 flex items-center gap-x-2 text-sm md:col-span-1`,children:[b,x]}),n[25]=b,n[26]=x,n[27]=S):S=n[27];let C;n[28]===Symbol.for(`react.memo_cache_sentinel`)?(C=(0,F.jsx)(`span`,{className:`text-sm text-text-3 md:hidden`,children:`Platte `}),n[28]=C):C=n[28];let w;n[29]===r?w=n[30]:(w=(0,F.jsxs)(`span`,{role:`cell`,className:`col-span-2 md:col-span-1`,children:[C,(0,F.jsx)(R,{ziel:r})]}),n[29]=r,n[30]=w);let T=r.erreichbar===!1?`text-rot-text`:`text-text-3`,E;n[31]===T?E=n[32]:(E=t(`schild col-start-2 row-start-1 flex items-center gap-1.5 self-start text-xs md:col-start-auto md:row-start-auto md:self-center`,T),n[31]=T,n[32]=E);let k;n[33]===r.erreichbar?k=n[34]:(k=r.erreichbar!==null&&(0,F.jsx)(`span`,{"aria-hidden":!0,className:t(`size-2 rounded-full`,r.erreichbar?`bg-gruen`:`bg-rot`)}),n[33]=r.erreichbar,n[34]=k);let A=r.erreichbar===null?`–`:r.erreichbar?`erreichbar`:`antwortet nicht`,j;n[35]!==E||n[36]!==k||n[37]!==A?(j=(0,F.jsxs)(`span`,{role:`cell`,className:E,children:[k,A]}),n[35]=E,n[36]=k,n[37]=A,n[38]=j):j=n[38];let M;return n[39]!==S||n[40]!==w||n[41]!==j||n[42]!==_||n[43]!==v?(M=(0,F.jsxs)(`div`,{role:`row`,className:`grid grid-cols-[minmax(0,1fr)_auto] gap-x-4 gap-y-1 border-t border-linie py-3 md:grid-cols-[minmax(0,1.2fr)_minmax(0,1fr)_minmax(0,1.5fr)_90px_130px] md:items-center`,children:[_,v,S,w,j]}),n[39]=S,n[40]=w,n[41]=j,n[42]=_,n[43]=v,n[44]=M):M=n[44],M}function V(e){let t=(0,N.c)(24),{ziele:n,laufend:r,gesperrt:i,onAktion:a}=e,[o,s]=(0,P.useState)(null),c;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,F.jsxs)(`div`,{role:`row`,className:`schild hidden grid-cols-[minmax(0,1.2fr)_minmax(0,1fr)_minmax(0,1.5fr)_90px_130px] gap-x-4 pb-2 text-xs font-semibold text-text-3 md:grid`,children:[(0,F.jsx)(`span`,{role:`columnheader`,children:`Gerät`}),(0,F.jsx)(`span`,{role:`columnheader`,children:`App`}),(0,F.jsx)(`span`,{role:`columnheader`,children:`Pakete`}),(0,F.jsx)(`span`,{role:`columnheader`,children:`Platte`}),(0,F.jsx)(`span`,{role:`columnheader`,children:`Netz`})]}),t[0]=c):c=t[0];let l;if(t[1]!==i||t[2]!==r||t[3]!==n){let e;t[5]!==i||t[6]!==r?(e=e=>(0,F.jsx)(B,{ziel:e,laeuft:r.get(e.id)??null,gesperrt:i,onFrage:s},e.id),t[5]=i,t[6]=r,t[7]=e):e=t[7],l=n.map(e),t[1]=i,t[2]=r,t[3]=n,t[4]=l}else l=t[4];let u;t[8]===l?u=t[9]:(u=(0,F.jsxs)(`div`,{role:`table`,"aria-label":`Geräte im Homelab`,className:`flex flex-col`,children:[c,l]}),t[8]=l,t[9]=u);let d=!!o,f=o?`${o.ziel.name}: ${o.aktion.label}`:``,p=o?.aktion.frage??``,m=o?.aktion.label??``,h;t[10]!==o||t[11]!==a?(h=()=>{o&&a(o.aktion),s(null)},t[10]=o,t[11]=a,t[12]=h):h=t[12];let g;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(g=()=>s(null),t[13]=g):g=t[13];let _;t[14]!==i||t[15]!==d||t[16]!==f||t[17]!==p||t[18]!==m||t[19]!==h?(_=(0,F.jsx)(M,{offen:d,titel:f,text:p,knopf:m,gesperrt:i,onJa:h,onNein:g}),t[14]=i,t[15]=d,t[16]=f,t[17]=p,t[18]=m,t[19]=h,t[20]=_):_=t[20];let v;return t[21]!==_||t[22]!==u?(v=(0,F.jsxs)(F.Fragment,{children:[u,_]}),t[21]=_,t[22]=u,t[23]=v):v=t[23],v}function H(e){let n=(0,N.c)(24),{lage:r,lampen:i,onAnsehen:a}=e,o=r.ziel!==null,s=!o,c=`${r.oben} ${r.mitte}`,l=w[r.art],u=o?`cursor-pointer`:`cursor-default`,d;n[0]!==l||n[1]!==u?(d=t(`flex min-h-[130px] flex-col items-center justify-center gap-1 rounded-2xl border px-4 py-4 font-anzeige transition-colors`,l,u),n[0]=l,n[1]=u,n[2]=d):d=n[2];let f;n[3]===r.oben?f=n[4]:(f=(0,F.jsx)(`span`,{className:`schild text-sm tracking-[0.26em]`,children:r.oben}),n[3]=r.oben,n[4]=f);let p;n[5]===r.mitte?p=n[6]:(p=(0,F.jsx)(`span`,{className:`text-center text-[34px] leading-none font-bold tracking-[0.04em] sm:text-[38px]`,children:r.mitte}),n[5]=r.mitte,n[6]=p);let m;n[7]===r.unten?m=n[8]:(m=(0,F.jsx)(`span`,{className:`font-sans text-sm opacity-80`,children:r.unten}),n[7]=r.unten,n[8]=m);let h;n[9]!==a||n[10]!==s||n[11]!==c||n[12]!==d||n[13]!==f||n[14]!==p||n[15]!==m?(h=(0,F.jsxs)(`button`,{type:`button`,onClick:a,disabled:s,"aria-label":c,className:d,children:[f,p,m]}),n[9]=a,n[10]=s,n[11]=c,n[12]=d,n[13]=f,n[14]=p,n[15]=m,n[16]=h):h=n[16];let g;n[17]===i?g=n[18]:(g=i.map(U),n[17]=i,n[18]=g);let _;n[19]===g?_=n[20]:(_=(0,F.jsx)(`ul`,{"aria-label":`Geräte`,className:`grid grid-cols-2 gap-2.5 rounded-2xl border border-linie bg-panel p-3 sm:grid-cols-4`,children:g}),n[19]=g,n[20]=_);let v;return n[21]!==_||n[22]!==h?(v=(0,F.jsxs)(`section`,{"aria-label":`Lage im Homelab`,className:`grid gap-4 md:grid-cols-[260px_minmax(0,1fr)] md:gap-5`,children:[h,_]}),n[21]=_,n[22]=h,n[23]=v):v=n[23],v}function U(e){return(0,F.jsx)(T,{lampe:e},e.id)}function W(e){let t=(0,N.c)(47),{u:n,laeuft:r,gesperrt:a,onFrage:o}=e,{ziel:s,baustein:c}=n,l=c.id===`app`||c.id===`arcane`,f=c.installiert??`–`,p;t[0]===c?p=t[1]:(p=b(c),t[0]=c,t[1]=p);let m=p,h;t[2]!==c.aktion||t[3]!==c.grund||t[4]!==s?(h=c.aktion?u(s):c.grund??`Wird nicht über den Orchestrator eingespielt.`,t[2]=c.aktion,t[3]=c.grund,t[4]=s,t[5]=h):h=t[5];let g=h,_;if(r){let e;t[6]===r?e=t[7]:(e=(0,F.jsxs)(`span`,{role:`status`,className:`text-sm text-cyan`,children:[`Läuft: `,r]}),t[6]=r,t[7]=e),_=e}else if(c.aktion){let e=c.aktion,n;t[8]!==e||t[9]!==o||t[10]!==s?(n=()=>o({ziel:s,aktion:e}),t[8]=e,t[9]=o,t[10]=s,t[11]=n):n=t[11];let r;t[12]!==e.label||t[13]!==a||t[14]!==n?(r=(0,F.jsx)(i,{variant:`outline`,size:`sm`,disabled:a,onClick:n,children:e.label}),t[12]=e.label,t[13]=a,t[14]=n,t[15]=r):r=t[15],_=r}let v;t[16]===s.name?v=t[17]:(v=(0,F.jsx)(`span`,{className:`text-[15px] font-semibold break-words`,children:s.name}),t[16]=s.name,t[17]=v);let y;t[18]!==c||t[19]!==s?(y=d(s,c),t[18]=c,t[19]=s,t[20]=y):y=t[20];let x;t[21]===y?x=t[22]:(x=(0,F.jsx)(`span`,{className:`text-sm text-text-3`,children:y}),t[21]=y,t[22]=x);let S;t[23]!==v||t[24]!==x?(S=(0,F.jsxs)(`div`,{role:`rowheader`,className:`flex min-w-0 flex-col`,children:[v,x]}),t[23]=v,t[24]=x,t[25]=S):S=t[25];let C;t[26]!==f||t[27]!==l||t[28]!==c.installiert||t[29]!==m?(C=(0,F.jsx)(`span`,{role:`cell`,className:`ziffern text-sm text-text-2 md:hidden`,children:l&&c.installiert?(0,F.jsxs)(F.Fragment,{children:[f,` → `,(0,F.jsx)(`span`,{className:`text-cyan`,children:m})]}):(0,F.jsx)(`span`,{className:`text-cyan`,children:m})}),t[26]=f,t[27]=l,t[28]=c.installiert,t[29]=m,t[30]=C):C=t[30];let w;t[31]===f?w=t[32]:(w=(0,F.jsx)(`span`,{role:`cell`,className:`ziffern hidden text-sm text-text-2 md:block`,children:f}),t[31]=f,t[32]=w);let T;t[33]===m?T=t[34]:(T=(0,F.jsx)(`span`,{role:`cell`,className:`ziffern hidden text-sm text-cyan md:block`,children:m}),t[33]=m,t[34]=T);let E=c.aktion?`text-sm text-text-2`:`text-sm text-text-3`,D;t[35]!==g||t[36]!==E?(D=(0,F.jsx)(`span`,{role:`cell`,className:E,children:g}),t[35]=g,t[36]=E,t[37]=D):D=t[37];let O;t[38]===_?O=t[39]:(O=(0,F.jsx)(`span`,{role:`cell`,className:`flex md:justify-end`,children:_}),t[38]=_,t[39]=O);let k;return t[40]!==D||t[41]!==O||t[42]!==S||t[43]!==C||t[44]!==w||t[45]!==T?(k=(0,F.jsxs)(`div`,{role:`row`,className:`grid grid-cols-1 gap-x-4 gap-y-1.5 border-t border-linie py-3.5 md:grid-cols-[210px_120px_140px_minmax(0,1fr)_auto] md:items-center`,children:[S,C,w,T,D,O]}),t[40]=D,t[41]=O,t[42]=S,t[43]=C,t[44]=w,t[45]=T,t[46]=k):k=t[46],k}function G(e){let t=(0,N.c)(21),{updates:n,laufend:r,gesperrt:i,onAktion:a}=e,[o,s]=(0,P.useState)(null),c;t[0]!==i||t[1]!==r||t[2]!==n?(c=n.length===0?(0,F.jsx)(`p`,{className:`text-[15px] text-gruen`,children:`Im Homelab ist alles aktuell.`}):(0,F.jsxs)(`div`,{role:`table`,"aria-label":`Offene Updates im Homelab`,className:`flex flex-col`,children:[(0,F.jsxs)(`div`,{role:`row`,className:`schild hidden grid-cols-[210px_120px_140px_minmax(0,1fr)_auto] gap-x-4 pb-2 text-xs font-semibold text-text-3 md:grid`,children:[(0,F.jsx)(`span`,{role:`columnheader`,children:`Gerät`}),(0,F.jsx)(`span`,{role:`columnheader`,children:`Läuft`}),(0,F.jsx)(`span`,{role:`columnheader`,children:`Neu`}),(0,F.jsx)(`span`,{role:`columnheader`,children:`Rückweg`}),(0,F.jsx)(`span`,{role:`columnheader`,className:`sr-only`,children:`Aktion`})]}),n.map(e=>(0,F.jsx)(W,{u:e,laeuft:r.get(e.ziel.id)??null,gesperrt:i||r.has(e.ziel.id),onFrage:s},`${e.ziel.id}-${e.baustein.id}`))]}),t[0]=i,t[1]=r,t[2]=n,t[3]=c):c=t[3];let l=!!o,u=o?`${o.ziel.name}: ${o.aktion.label}`:``,d=o?.aktion.frage??``,f=o?.aktion.label??``,p;t[4]===o?.aktion.pfad?p=t[5]:(p=o?.aktion.pfad.endsWith(`/neustart`),t[4]=o?.aktion.pfad,t[5]=p);let m=!!p,h;t[6]!==o||t[7]!==a?(h=()=>{o&&a(o.aktion),s(null)},t[6]=o,t[7]=a,t[8]=h):h=t[8];let g;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(g=()=>s(null),t[9]=g):g=t[9];let _;t[10]!==i||t[11]!==l||t[12]!==u||t[13]!==d||t[14]!==f||t[15]!==m||t[16]!==h?(_=(0,F.jsx)(M,{offen:l,titel:u,text:d,knopf:f,gefahr:m,gesperrt:i,onJa:h,onNein:g}),t[10]=i,t[11]=l,t[12]=u,t[13]=d,t[14]=f,t[15]=m,t[16]=h,t[17]=_):_=t[17];let v;return t[18]!==c||t[19]!==_?(v=(0,F.jsxs)(F.Fragment,{children:[c,_]}),t[18]=c,t[19]=_,t[20]=v):v=t[20],v}var K=[`Proxmox-Host`,`AdGuard`,`NPMplus`,`NetBird`,`PVE Scripts Local`,`Gitea`,`PBS`,`Arcane mit Docker`],q={eingespielt:{art:`gruen`,text:`eingespielt`},zurueckgerollt:{art:`bernstein`,text:`zurückgerollt`},fehler:{art:`rot`,text:`Fehler`},neustart:{art:`cyan`,text:`Neustart`}},J=e=>E(new Date(e*1e3).toISOString());function Y(){let e=(0,N.c)(4),t,n;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,F.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Der Homelab-Teil läuft als eigene Instanz in einem kleinen Container auf dem Proxmox-PC. Von dort prüft er auch die KI-Box von außen.`}),n=(0,F.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Steht er, erscheinen hier alle Geräte mit ihren offenen Updates. Ein Update startest du mit „Jetzt updaten“: Vorher wird gesichert, danach die Erreichbarkeit geprüft, und ist sie rot, geht es von selbst zurück.`}),e[0]=t,e[1]=n):(t=e[0],n=e[1]);let r;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,F.jsx)(`h3`,{className:`schild text-sm tracking-[0.18em] text-text-3`,children:`Dazu kommen`}),e[2]=r):r=e[2];let i;return e[3]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,F.jsxs)(F.Fragment,{children:[t,n,(0,F.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[r,(0,F.jsx)(`ul`,{className:`flex flex-wrap gap-2`,children:K.map(X)})]}),(0,F.jsx)(`p`,{className:`text-sm text-text-3`,children:`Der Container wird erst nach deiner Freigabe angelegt.`})]}),e[3]=i):i=e[3],i}function X(e){return(0,F.jsx)(`li`,{children:(0,F.jsx)(C,{children:e})},e)}function Z(e){let t=(0,N.c)(9),{partner:n}=e,r;t[0]===n.eingerichtet?r=t[1]:(r=n.eingerichtet?(0,F.jsx)(C,{art:`rot`,children:`Antwortet nicht`}):(0,F.jsx)(C,{children:`Noch nicht eingerichtet`}),t[0]=n.eingerichtet,t[1]=r);let i=r,a;t[2]!==n.eingerichtet||t[3]!==n.fehler||t[4]!==n.url?(a=n.eingerichtet?(0,F.jsxs)(`p`,{role:`alert`,className:`text-[15px] text-rot-text`,children:[`Der Homelab-Teil (`,n.url,`) ist `,n.fehler??`nicht erreichbar`,`. Hält das an, meldet der Wächter es nach fünf Minuten auf Telegram.`]}):(0,F.jsx)(Y,{}),t[2]=n.eingerichtet,t[3]=n.fehler,t[4]=n.url,t[5]=a):a=t[5];let o;return t[6]!==i||t[7]!==a?(o=(0,F.jsx)(x,{titel:`Homelab`,rechts:i,children:a}),t[6]=i,t[7]=a,t[8]=o):o=t[8],o}function ee(e){let t=(0,N.c)(10),{hinweise:n}=e,r=n.some(ne)?`rot`:`bernstein`,i;t[0]!==n.length||t[1]!==r?(i=(0,F.jsxs)(C,{art:r,children:[n.length,` offen`]}),t[0]=n.length,t[1]=r,t[2]=i):i=t[2];let a;t[3]===n?a=t[4]:(a=n.map(te),t[3]=n,t[4]=a);let o;t[5]===a?o=t[6]:(o=(0,F.jsx)(`ul`,{className:`m-0 flex list-none flex-col p-0`,children:a}),t[5]=a,t[6]=o);let s;return t[7]!==i||t[8]!==o?(s=(0,F.jsx)(x,{titel:`Hinweise`,id:`hinweise`,rechts:i,children:o}),t[7]=i,t[8]=o,t[9]=s):s=t[9],s}function te(e){return(0,F.jsxs)(`li`,{className:`flex flex-col gap-1 border-t border-linie py-3 first:border-t-0 first:pt-0`,children:[(0,F.jsx)(`span`,{className:e.stufe===`rot`?`text-[15px] font-medium text-rot-text`:`text-[15px] font-medium text-bernstein`,children:e.titel}),(0,F.jsx)(`span`,{className:`text-sm text-text-2`,children:e.text})]},e.id)}function ne(e){return e.stufe===`rot`}function re(e){let t=(0,N.c)(8),{laeufe:n}=e,r,i,a;if(t[0]!==n){a=Symbol.for(`react.early_return_sentinel`);bb0:{let e=n.filter(ae).slice(0,12);if(e.length===0){let e;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,F.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Noch kein Update im Homelab eingespielt.`}),t[4]=e):e=t[4],a=e;break bb0}r=`@container m-0 flex list-none flex-col p-0`,i=e.map(ie)}t[0]=n,t[1]=r,t[2]=i,t[3]=a}else r=t[1],i=t[2],a=t[3];if(a!==Symbol.for(`react.early_return_sentinel`))return a;let o;return t[5]!==r||t[6]!==i?(o=(0,F.jsx)(`ol`,{className:r,children:i}),t[5]=r,t[6]=i,t[7]=o):o=t[7],o}function ie(e){let t=e.ergebnis?q[e.ergebnis]:{art:`grau`,text:`unterbrochen`};return(0,F.jsxs)(`li`,{className:`flex flex-col gap-1.5 border-t border-linie py-3 first:border-t-0 first:pt-0`,children:[(0,F.jsxs)(`div`,{className:`grid grid-cols-[minmax(0,1fr)_auto] items-center gap-x-3 gap-y-1 @sm:grid-cols-[112px_minmax(0,1fr)_auto]`,children:[(0,F.jsx)(`span`,{className:`ziffern col-start-1 row-start-1 text-sm text-text-3`,children:J(e.start)}),(0,F.jsx)(`span`,{className:`col-span-2 row-start-2 min-w-0 text-[15px] break-words @sm:col-span-1 @sm:col-start-2 @sm:row-start-1`,children:e.name}),(0,F.jsx)(`span`,{className:`col-start-2 row-start-1 justify-self-end @sm:col-start-3`,children:(0,F.jsx)(C,{art:t.art,children:t.text})})]}),e.text&&(0,F.jsx)(`p`,{className:`m-0 text-sm text-text-2 @sm:pl-[124px]`,children:e.text})]},e.id)}function ae(e){return e.status!==`laeuft`}function Q(e){let t=(0,N.c)(9),{stand:n}=e;if(!n.ausfuehrer.verbunden){let e;t[0]===n.ausfuehrer.zuletzt?e=t[1]:(e=n.ausfuehrer.zuletzt?` (zuletzt ${J(n.ausfuehrer.zuletzt)})`:``,t[0]=n.ausfuehrer.zuletzt,t[1]=e);let r;return t[2]===e?r=t[3]:(r=(0,F.jsxs)(`p`,{role:`alert`,className:`rounded-xl border border-bernstein/60 bg-bernstein-grund px-4 py-3 text-[15px] text-bernstein`,children:[`Der Ausführer auf dem Proxmox-Host meldet sich nicht`,e,`. Die Geräte zeigen den letzten bekannten Stand; Updates starten erst, wenn er wieder da ist.`]}),t[2]=e,t[3]=r),r}if(!n.bericht){let e;return t[4]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,F.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Der Ausführer hat noch keinen Bericht geschickt.`}),t[4]=e):e=t[4],e}if(n.bericht.veraltet){let e;t[5]===n.bericht.empfangen?e=t[6]:(e=J(n.bericht.empfangen),t[5]=n.bericht.empfangen,t[6]=e);let r;return t[7]===e?r=t[8]:(r=(0,F.jsxs)(`p`,{className:`text-[15px] text-bernstein`,children:[`Der letzte Bericht ist von `,e,`; die Angaben können veraltet sein.`]}),t[7]=e,t[8]=r),r}return null}function $(){let e=(0,N.c)(20),t=c(),n=j(),r=t.data?.rolle===`homelab`||!!(n.data?.eingerichtet&&n.data.erreichbar),i=l(r),a=s(r),u=v(r),d=o(),f=null;if(t.isPending||n.isPending){let t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,F.jsx)(_,{text:`Wird gelesen …`}),e[0]=t):t=e[0],f=t}else if(!r){let t;e[1]!==n.data||e[2]!==n.error?.message?(t=n.data?(0,F.jsx)(Z,{partner:n.data}):(0,F.jsx)(_,{fehler:!0,text:`Der Partner lässt sich nicht abfragen: ${n.error?.message??`keine Daten`}`}),e[1]=n.data,e[2]=n.error?.message,e[3]=t):t=e[3],f=t}else if(i.isPending){let t;e[4]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,F.jsx)(_,{text:`Der Homelab-Teil meldet sich gleich …`}),e[4]=t):t=e[4],f=t}else if(!i.data){let t=`Der Homelab-Teil antwortet nicht: ${i.error?.message??`keine Daten`}`,n;e[5]===t?n=e[6]:(n=(0,F.jsx)(_,{fehler:!0,text:t}),e[5]=t,e[6]=n),f=n}let p;if(e[7]!==a.data?.laeufe){p=new Map;for(let e of a.data?.laeufe??[])e.status===`laeuft`&&p.set(e.ziel,e.schritte.at(-1)??`startet …`);e[7]=a.data?.laeufe,e[8]=p}else p=e[8];let m;e[9]===a.data?.laeufe?m=e[10]:(m=a.data?.laeufe??[],e[9]=a.data?.laeufe,e[10]=m);let h;e[11]===u.data?.hinweise?h=e[12]:(h=u.data?.hinweise??[],e[11]=u.data?.hinweise,e[12]=h);let g;return e[13]!==d||e[14]!==f||e[15]!==i.data||e[16]!==p||e[17]!==m||e[18]!==h?(g={ersatz:f,stand:i.data,laufend:p,laeufe:m,hinweise:h,aktion:d},e[13]=d,e[14]=f,e[15]=i.data,e[16]=p,e[17]=m,e[18]=h,e[19]=g):g=e[19],g}function oe(){let e=(0,N.c)(38),t=k(),{ersatz:n,stand:r,laufend:i,hinweise:a,aktion:o}=$();if(n||!r)return n;let s,c;e[0]!==a||e[1]!==i.size||e[2]!==r?(s=r.bericht?J(r.bericht.empfangen):null,c=f(r,a,i.size,s),e[0]=a,e[1]=i.size,e[2]=r,e[3]=s,e[4]=c):(s=e[3],c=e[4]);let l=c,u;if(e[5]!==i||e[6]!==r.ziele){let t;e[8]===i?t=e[9]:(t=e=>p(e,i.has(e.id)),e[8]=i,e[9]=t),u=r.ziele.map(t),e[5]=i,e[6]=r.ziele,e[7]=u}else u=e[7];let d;e[10]!==l.ziel||e[11]!==t?(d=()=>{l.ziel===`updates`?t({to:`/homelab/updates`}):l.ziel&&document.getElementById(l.ziel)?.scrollIntoView({behavior:`smooth`,block:`start`})},e[10]=l.ziel,e[11]=t,e[12]=d):d=e[12];let m;e[13]!==l||e[14]!==u||e[15]!==d?(m=(0,F.jsx)(H,{lage:l,lampen:u,onAnsehen:d}),e[13]=l,e[14]=u,e[15]=d,e[16]=m):m=e[16];let h;e[17]===r?h=e[18]:(h=(0,F.jsx)(Q,{stand:r}),e[17]=r,e[18]=h);let g;e[19]===a?g=e[20]:(g=a.length>0&&(0,F.jsx)(ee,{hinweise:a}),e[19]=a,e[20]=g);let _;e[21]===s?_=e[22]:(_=s?(0,F.jsxs)(`span`,{className:`ziffern text-sm text-text-3`,children:[`Stand `,s]}):void 0,e[21]=s,e[22]=_);let v;e[23]===o?v=e[24]:(v=e=>o.mutate(e),e[23]=o,e[24]=v);let y;e[25]!==o.isPending||e[26]!==i||e[27]!==r.ziele||e[28]!==v?(y=(0,F.jsx)(V,{ziele:r.ziele,laufend:i,gesperrt:o.isPending,onAktion:v}),e[25]=o.isPending,e[26]=i,e[27]=r.ziele,e[28]=v,e[29]=y):y=e[29];let b;e[30]!==_||e[31]!==y?(b=(0,F.jsx)(x,{titel:`Geräte`,id:`geraete`,rechts:_,children:y}),e[30]=_,e[31]=y,e[32]=b):b=e[32];let S;return e[33]!==m||e[34]!==h||e[35]!==g||e[36]!==b?(S=(0,F.jsxs)(F.Fragment,{children:[m,h,g,b]}),e[33]=m,e[34]=h,e[35]=g,e[36]=b,e[37]=S):S=e[37],S}function se(){let e=(0,N.c)(20),{ersatz:t,stand:n,laufend:r,laeufe:i,aktion:a}=$();if(t||!n)return t;let o;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,F.jsx)(`p`,{className:`-mt-2 text-[15px] text-text-2`,children:`Du startest jedes Update selbst. Vorher wird gesichert, danach geprüft; ist die Prüfung rot, geht es von selbst zurück.`}),e[0]=o):o=e[0];let s;e[1]===n?s=e[2]:(s=(0,F.jsx)(Q,{stand:n}),e[1]=n,e[2]=s);let c;e[3]===n.ziele?c=e[4]:(c=g(n.ziele),e[3]=n.ziele,e[4]=c);let l=a.isPending||!n.ausfuehrer.verbunden,u;e[5]===a?u=e[6]:(u=e=>a.mutate(e),e[5]=a,e[6]=u);let d;e[7]!==r||e[8]!==c||e[9]!==l||e[10]!==u?(d=(0,F.jsx)(G,{updates:c,laufend:r,gesperrt:l,onAktion:u}),e[7]=r,e[8]=c,e[9]=l,e[10]=u,e[11]=d):d=e[11];let f;e[12]!==s||e[13]!==d?(f=(0,F.jsxs)(x,{titel:`Updates`,children:[o,s,d]}),e[12]=s,e[13]=d,e[14]=f):f=e[14];let p;e[15]===i?p=e[16]:(p=(0,F.jsx)(x,{titel:`Verlauf`,children:(0,F.jsx)(re,{laeufe:i})}),e[15]=i,e[16]=p);let m;return e[17]!==f||e[18]!==p?(m=(0,F.jsxs)(F.Fragment,{children:[f,p]}),e[17]=f,e[18]=p,e[19]=m):m=e[19],m}export{oe as HomelabSeite,se as HomelabUpdatesSeite}; \ No newline at end of file diff --git a/frontend/dist/assets/MenueSchublade-DuDMBJg1.js b/frontend/dist/assets/MenueSchublade-BT67m9bh.js similarity index 93% rename from frontend/dist/assets/MenueSchublade-DuDMBJg1.js rename to frontend/dist/assets/MenueSchublade-BT67m9bh.js index e7f4d56..1021d11 100644 --- a/frontend/dist/assets/MenueSchublade-DuDMBJg1.js +++ b/frontend/dist/assets/MenueSchublade-BT67m9bh.js @@ -1 +1 @@ -import{c as e,s as t}from"./button-BheHBEml.js";import{a as n,o as r}from"./index-_ndC28sQ.js";import{a as i,i as a,n as o,r as s,t as c}from"./sheet-CKp82pOA.js";var l=t(),u=e();function d(e){let t=(0,l.c)(10),{onDienste:d,onEinstellungen:f,onSchliessen:p}=e,m;t[0]===p?m=t[1]:(m=e=>!e&&p(),t[0]=p,t[1]=m);let h;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,u.jsxs)(a,{className:`p-0`,children:[(0,u.jsx)(i,{asChild:!0,children:(0,u.jsx)(`div`,{children:(0,u.jsx)(n,{})})}),(0,u.jsx)(s,{className:`sr-only`,children:`Bereiche und Seiten`})]}),t[2]=h):h=t[2];let g;t[3]!==d||t[4]!==f||t[5]!==p?(g=(0,u.jsxs)(o,{side:`left`,className:`flex flex-col gap-6 border-linie bg-[#0c0f12] px-4 pt-5 pb-[calc(1.25rem+env(safe-area-inset-bottom))] data-[side=left]:w-[300px]`,children:[h,(0,u.jsx)(r,{onDienste:d,onEinstellungen:f,onGewaehlt:p})]}),t[3]=d,t[4]=f,t[5]=p,t[6]=g):g=t[6];let _;return t[7]!==m||t[8]!==g?(_=(0,u.jsx)(c,{open:!0,onOpenChange:m,children:g}),t[7]=m,t[8]=g,t[9]=_):_=t[9],_}export{d as MenueSchublade}; \ No newline at end of file +import{c as e,s as t}from"./button-BheHBEml.js";import{a as n,o as r}from"./index-BAH01Yfc.js";import{a as i,i as a,n as o,r as s,t as c}from"./sheet-CKp82pOA.js";var l=t(),u=e();function d(e){let t=(0,l.c)(10),{onDienste:d,onEinstellungen:f,onSchliessen:p}=e,m;t[0]===p?m=t[1]:(m=e=>!e&&p(),t[0]=p,t[1]=m);let h;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,u.jsxs)(a,{className:`p-0`,children:[(0,u.jsx)(i,{asChild:!0,children:(0,u.jsx)(`div`,{children:(0,u.jsx)(n,{})})}),(0,u.jsx)(s,{className:`sr-only`,children:`Bereiche und Seiten`})]}),t[2]=h):h=t[2];let g;t[3]!==d||t[4]!==f||t[5]!==p?(g=(0,u.jsxs)(o,{side:`left`,className:`flex flex-col gap-6 border-linie bg-[#0c0f12] px-4 pt-5 pb-[calc(1.25rem+env(safe-area-inset-bottom))] data-[side=left]:w-[300px]`,children:[h,(0,u.jsx)(r,{onDienste:d,onEinstellungen:f,onGewaehlt:p})]}),t[3]=d,t[4]=f,t[5]=p,t[6]=g):g=t[6];let _;return t[7]!==m||t[8]!==g?(_=(0,u.jsx)(c,{open:!0,onOpenChange:m,children:g}),t[7]=m,t[8]=g,t[9]=_):_=t[9],_}export{d as MenueSchublade}; \ No newline at end of file diff --git a/frontend/dist/assets/Modelle-D5h4V30V.js b/frontend/dist/assets/Modelle-D5h4V30V.js deleted file mode 100644 index 5a0f63d..0000000 --- a/frontend/dist/assets/Modelle-D5h4V30V.js +++ /dev/null @@ -1 +0,0 @@ -import{c as e,o as t,p as n,s as r,t as i,u as a}from"./button-BheHBEml.js";import{$ as o,F as s,M as c,N as l,O as u,P as d,Q as f,R as p,V as m,W as h,_t as g,at as _,b as v,bt as y,ct as b,dt as x,et as S,gt as C,i as w,lt as T,n as E,nt as D,r as O,st as k,tt as A,ut as j,v as M,vt as N,x as P,y as F,yt as I,z as L}from"./index-_ndC28sQ.js";import{a as R,i as z,n as B,r as V,t as ee}from"./sheet-CKp82pOA.js";import{t as te}from"./Bestaetigen-CE_3b0PK.js";import{a as H,r as ne,s as re,t as ie}from"./Auftraege-DzO2OZDP.js";function U(e){let t=N();return g(t.stores.location,C(e,t))}var W={name:`search`,size:24,node:[[`path`,{d:`m21 21-4.34-4.34`,key:`14j7rj`}],[`circle`,{cx:`11`,cy:`11`,r:`8`,key:`4ej97u`}]]};W.node;var G=t(W),K=r(),q=n(a(),1),J=e(),ae={coder:`Coder`};function Y(e){let t=(0,K.c)(102),{offen:n,onSchliessen:r,rollenJetzt:a}=e,o=u(),[s,c]=(0,q.useState)(``),[l,d]=(0,q.useState)(``),[f,p]=(0,q.useState)(null),[m,h]=(0,q.useState)(``),[g,_]=(0,q.useState)(null),v=(0,q.useRef)(!1),y,b;t[0]===l?(y=t[1],b=t[2]):(y=[`hf-suche`,l],b=()=>x(`/api/hf/search?q=${encodeURIComponent(l)}`),t[0]=l,t[1]=y,t[2]=b);let C=l.length>1,w;t[3]!==y||t[4]!==b||t[5]!==C?(w={queryKey:y,queryFn:b,enabled:C},t[3]=y,t[4]=b,t[5]=C,t[6]=w):w=t[6];let T=I(w),E,D;t[7]===f?(E=t[8],D=t[9]):(E=[`hf-quants`,f],D=()=>x(`/api/hf/quants?repo=${encodeURIComponent(f??``)}`),t[7]=f,t[8]=E,t[9]=D);let O=!!f,k;t[10]!==E||t[11]!==D||t[12]!==O?(k={queryKey:E,queryFn:D,enabled:O},t[10]=E,t[11]=D,t[12]=O,t[13]=k):k=t[13];let j=I(k),M,N,P,F,L,H,ie,U,W,G,Y,X,Z;if(t[14]!==g||t[15]!==s||t[16]!==o||t[17]!==n||t[18]!==r||t[19]!==j.data||t[20]!==j.error||t[21]!==j.isError||t[22]!==j.isFetching||t[23]!==f||t[24]!==m||t[25]!==a||t[26]!==T){let e=(j.data?.quants??[]).map(se),l=m?ae[m]??m:null,u;t[40]!==f||t[41]!==m||t[42]!==a||t[43]!==l?(u=l&&f?re(f,l,a[m]):null,t[40]=f,t[41]=m,t[42]=a,t[43]=l,t[44]=u):u=t[44],P=u;let y;t[45]!==g||t[46]!==o||t[47]!==r||t[48]!==f||t[49]!==m?(y=function(){f&&g&&!v.current&&(v.current=!0,o.mutate({repo:f,quant:g.quant,rolle:m||null},{onSuccess:e=>{_(null),e.ok!==!1&&r()},onError:()=>_(null),onSettled:()=>{v.current=!1}}))},t[45]=g,t[46]=o,t[47]=r,t[48]=f,t[49]=m,t[50]=y):y=t[50],F=y,N=ee,Y=n,t[51]===r?X=t[52]:(X=e=>!e&&r(),t[51]=r,t[52]=X),M=B,ie=`right`,U=`gap-3 overflow-y-auto border-linie bg-panel data-[side=right]:w-full data-[side=right]:sm:max-w-xl`,t[53]===Symbol.for(`react.memo_cache_sentinel`)?(W=(0,J.jsxs)(z,{children:[(0,J.jsx)(R,{className:`schild text-lg`,children:`Modelle selbst suchen`}),(0,J.jsx)(V,{className:`text-text-2`,children:`Auf Hugging Face suchen, Quantisierung wählen, installieren.`})]}),t[53]=W):W=t[53];let b;t[54]===s?b=t[55]:(b=e=>{e.preventDefault(),p(null),d(s.trim())},t[54]=s,t[55]=b);let x;t[56]===Symbol.for(`react.memo_cache_sentinel`)?(x=(0,J.jsx)(`label`,{htmlFor:`hf-suche`,className:`sr-only`,children:`Suchbegriff`}),t[56]=x):x=t[56];let C;t[57]===Symbol.for(`react.memo_cache_sentinel`)?(C=e=>c(e.target.value),t[57]=C):C=t[57];let w;t[58]===s?w=t[59]:(w=(0,J.jsx)(`input`,{id:`hf-suche`,value:s,onChange:C,placeholder:`z. B. Qwen3.8 GGUF`,className:`h-11 min-w-0 flex-1 rounded-lg border border-linie-stark bg-erhaben px-3 text-[15px] outline-none focus:border-cyan`}),t[58]=s,t[59]=w);let E;t[60]===Symbol.for(`react.memo_cache_sentinel`)?(E=(0,J.jsx)(i,{type:`submit`,children:`Suchen`}),t[60]=E):E=t[60],t[61]!==b||t[62]!==w?(G=(0,J.jsxs)(`form`,{className:`flex gap-2 px-4`,onSubmit:b,children:[x,w,E]}),t[61]=b,t[62]=w,t[63]=G):G=t[63],Z=`flex flex-col px-4 pb-4`,t[64]!==f||t[65]!==T?(L=!f&&(0,J.jsxs)(J.Fragment,{children:[T.isFetching&&(0,J.jsx)(`p`,{role:`status`,className:`py-3 text-sm text-text-2`,children:`Suche läuft …`}),!T.isFetching&&T.isError&&(0,J.jsxs)(`p`,{role:`alert`,className:`py-3 text-sm text-rot-text`,children:[`Die Suche ging nicht: `,T.error.message]}),!T.isFetching&&T.data?.results.length===0&&(0,J.jsx)(`p`,{className:`py-3 text-sm text-text-2`,children:`Keine Treffer. Versuch einen anderen Suchbegriff — oder Hugging Face ist gerade nicht erreichbar.`}),T.data?.results.map(e=>(0,J.jsxs)(`button`,{type:`button`,onClick:()=>p(e.repo),className:`flex min-h-11 items-center justify-between gap-3 border-t border-linie py-2 text-left hover:text-cyan`,children:[(0,J.jsx)(`span`,{className:`ziffern min-w-0 text-sm break-all`,children:e.repo}),(0,J.jsxs)(`span`,{className:`ziffern shrink-0 text-xs text-text-3`,children:[A(e.downloads),` ↓`]})]},e.repo))]}),t[64]=f,t[65]=T,t[66]=L):L=t[66],H=f&&(0,J.jsxs)(`div`,{className:`flex flex-col gap-3 pt-2`,children:[(0,J.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,J.jsx)(`span`,{className:`ziffern min-w-0 text-sm break-all`,children:f}),(0,J.jsx)(i,{variant:`ghost`,size:`sm`,onClick:()=>p(null),children:`Zurück`})]}),(0,J.jsxs)(`label`,{className:`flex flex-wrap items-center gap-3 text-sm text-text-2`,children:[`Rolle`,(0,J.jsxs)(`select`,{value:m,onChange:e=>h(e.target.value),className:`h-11 min-w-0 rounded-lg border border-linie-stark bg-erhaben px-3 text-foreground`,children:[(0,J.jsx)(`option`,{value:``,children:`ohne Rolle (nur installieren)`}),Object.entries(ae).map(oe)]})]}),P&&(0,J.jsx)(`p`,{className:`m-0 rounded-lg border border-bernstein/60 bg-bernstein-grund px-3 py-2.5 text-sm leading-relaxed text-bernstein`,children:P}),j.isFetching&&(0,J.jsx)(`p`,{role:`status`,className:`text-sm text-text-2`,children:`Quantisierungen werden gelesen …`}),!j.isFetching&&j.isError&&(0,J.jsxs)(`p`,{role:`alert`,className:`text-sm text-rot-text`,children:[`Die Dateien dieses Modells ließen sich nicht lesen: `,j.error.message]}),!j.isFetching&&j.data&&e.length===0&&(0,J.jsx)(`p`,{className:`text-sm text-text-2`,children:`Hier gibt es keine GGUF-Dateien, die sich installieren lassen.`}),e.map(e=>{let t=e.quant??e.name??`?`,n=e.total_bytes??e.size_bytes;return(0,J.jsxs)(`div`,{className:`flex items-center justify-between gap-3 border-t border-linie py-2`,children:[(0,J.jsx)(`span`,{className:`ziffern text-sm`,children:t}),(0,J.jsxs)(`span`,{className:`flex items-center gap-3`,children:[n?(0,J.jsx)(`span`,{className:`ziffern text-xs text-text-3`,children:S(n,1)}):null,(0,J.jsx)(i,{variant:`outline`,size:`sm`,disabled:o.isPending,onClick:()=>_({quant:t,bytes:n}),children:`Installieren`})]})]},t)})]}),t[14]=g,t[15]=s,t[16]=o,t[17]=n,t[18]=r,t[19]=j.data,t[20]=j.error,t[21]=j.isError,t[22]=j.isFetching,t[23]=f,t[24]=m,t[25]=a,t[26]=T,t[27]=M,t[28]=N,t[29]=P,t[30]=F,t[31]=L,t[32]=H,t[33]=ie,t[34]=U,t[35]=W,t[36]=G,t[37]=Y,t[38]=X,t[39]=Z}else M=t[27],N=t[28],P=t[29],F=t[30],L=t[31],H=t[32],ie=t[33],U=t[34],W=t[35],G=t[36],Y=t[37],X=t[38],Z=t[39];let Q;t[67]!==L||t[68]!==H||t[69]!==Z?(Q=(0,J.jsxs)(`div`,{className:Z,children:[L,H]}),t[67]=L,t[68]=H,t[69]=Z,t[70]=Q):Q=t[70];let ce=g!==null,$;t[71]!==g||t[72]!==f?($=g&&f?`${f} (${g.quant}${g.bytes?`, ${S(g.bytes,1)}`:``}) wird heruntergeladen und in llama-swap eingetragen.`+(g.bytes?``:` Die Größe siehst du beim Auftrag, sobald der Download läuft.`):``,t[71]=g,t[72]=f,t[73]=$):$=t[73];let le=o.isPending?`Wird gestartet …`:`Installieren`,ue=o.isPending,de;t[74]===Symbol.for(`react.memo_cache_sentinel`)?(de=()=>_(null),t[74]=de):de=t[74];let fe;t[75]===P?fe=t[76]:(fe=P&&(0,J.jsx)(`p`,{className:`m-0 rounded-lg border border-bernstein/60 bg-bernstein-grund px-3 py-2.5 text-[15px] leading-relaxed text-bernstein`,children:P}),t[75]=P,t[76]=fe);let pe=!!m,me;t[77]===pe?me=t[78]:(me=ne(pe),t[77]=pe,t[78]=me);let he;t[79]===me?he=t[80]:(he=(0,J.jsx)(`p`,{className:`m-0 text-[15px] leading-relaxed text-text-2`,children:me}),t[79]=me,t[80]=he);let ge;t[81]!==o.isPending||t[82]!==F||t[83]!==ce||t[84]!==$||t[85]!==le||t[86]!==fe||t[87]!==he?(ge=(0,J.jsxs)(te,{offen:ce,titel:`Modell installieren?`,text:$,knopf:le,gesperrt:ue,onNein:de,onJa:F,children:[fe,he]}),t[81]=o.isPending,t[82]=F,t[83]=ce,t[84]=$,t[85]=le,t[86]=fe,t[87]=he,t[88]=ge):ge=t[88];let _e;t[89]!==M||t[90]!==ie||t[91]!==U||t[92]!==W||t[93]!==G||t[94]!==Q||t[95]!==ge?(_e=(0,J.jsxs)(M,{side:ie,className:U,children:[W,G,Q,ge]}),t[89]=M,t[90]=ie,t[91]=U,t[92]=W,t[93]=G,t[94]=Q,t[95]=ge,t[96]=_e):_e=t[96];let ve;return t[97]!==N||t[98]!==Y||t[99]!==X||t[100]!==_e?(ve=(0,J.jsx)(N,{open:Y,onOpenChange:X,children:_e}),t[97]=N,t[98]=Y,t[99]=X,t[100]=_e,t[101]=ve):ve=t[101],ve}function oe(e){let[t,n]=e;return(0,J.jsx)(`option`,{value:t,children:n},t)}function se(e){return typeof e==`string`?{quant:e}:e}var X=115;function Z(e){let t=(0,K.c)(55),{modelle:n,laufend:r}=e,i=D(),a=h(),s,c,l,u,d,f,p,m,g,_;if(t[0]!==r||t[1]!==i?.ram_total||t[2]!==i?.ram_used||t[3]!==n||t[4]!==a){let e=o(i?.ram_total??a.data?.box.ram_total)??122.7,h=o(i?.ram_used??a.data?.box.ram_used)??0,v;t[15]===r?v=t[16]:(v=e=>r.includes(e.name),t[15]=r,t[16]=v);let y=n.filter(v).reduce(Q,0);c=Math.max(0,h-y);let b=t=>`${Math.min(100,t/e*100)}%`;s=E,m=`Speicher`,g=(0,J.jsxs)(`span`,{className:`ziffern text-sm text-text-2`,children:[Math.round(h),` von `,Math.round(e),` GB belegt · Grenze ~`,X,` GB`]});let x=`Speicher: ${Math.round(h)} von ${Math.round(e)} GB belegt`,S=b(h),C;t[17]===S?C=t[18]:(C={width:S},t[17]=S,t[18]=C);let w=`${h?y/h*100:0}%`,T;t[19]===w?T=t[20]:(T=(0,J.jsx)(`div`,{className:`h-full bg-cyan`,style:{width:w}}),t[19]=w,t[20]=T);let D=`${h?c/h*100:0}%`,O;t[21]===D?O=t[22]:(O=(0,J.jsx)(`div`,{className:`h-full bg-cyan/35`,style:{width:D}}),t[21]=D,t[22]=O);let k;t[23]!==C||t[24]!==T||t[25]!==O?(k=(0,J.jsxs)(`div`,{className:`absolute inset-y-0 left-0 flex overflow-hidden rounded-lg`,style:C,children:[T,O]}),t[23]=C,t[24]=T,t[25]=O,t[26]=k):k=t[26];let A=b(X),j;t[27]===A?j=t[28]:(j=(0,J.jsx)(`div`,{className:`absolute -top-1.5 -bottom-1.5 w-0.5 bg-bernstein`,style:{left:A}}),t[27]=A,t[28]=j),t[29]!==x||t[30]!==k||t[31]!==j?(_=(0,J.jsxs)(`div`,{className:`relative h-8 rounded-lg bg-erhaben`,role:`img`,"aria-label":x,children:[k,j]}),t[29]=x,t[30]=k,t[31]=j,t[32]=_):_=t[32],p=`flex flex-wrap gap-x-6 gap-y-2 text-sm text-text-2`,l=`flex items-center gap-2`,t[33]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,J.jsx)(`span`,{className:`size-2.5 rounded-sm bg-cyan`}),t[33]=u):u=t[33],d=` Geladene Modelle: `,f=Math.round(y),t[0]=r,t[1]=i?.ram_total,t[2]=i?.ram_used,t[3]=n,t[4]=a,t[5]=s,t[6]=c,t[7]=l,t[8]=u,t[9]=d,t[10]=f,t[11]=p,t[12]=m,t[13]=g,t[14]=_}else s=t[5],c=t[6],l=t[7],u=t[8],d=t[9],f=t[10],p=t[11],m=t[12],g=t[13],_=t[14];let v;t[34]!==l||t[35]!==u||t[36]!==d||t[37]!==f?(v=(0,J.jsxs)(`span`,{className:l,children:[u,d,f,` GB Dateien`]}),t[34]=l,t[35]=u,t[36]=d,t[37]=f,t[38]=v):v=t[38];let y;t[39]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,J.jsx)(`span`,{className:`size-2.5 rounded-sm bg-cyan/35`}),t[39]=y):y=t[39];let b;t[40]===c?b=t[41]:(b=Math.round(c),t[40]=c,t[41]=b);let x;t[42]===b?x=t[43]:(x=(0,J.jsxs)(`span`,{className:`flex items-center gap-2`,children:[y,` Cache, Dienste, System: `,b,` GB`]}),t[42]=b,t[43]=x);let S;t[44]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,J.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,J.jsx)(`span`,{className:`h-3 w-0.5 bg-bernstein`}),` Ab hier wird es eng`]}),t[44]=S):S=t[44];let C;t[45]!==x||t[46]!==p||t[47]!==v?(C=(0,J.jsxs)(`div`,{className:p,children:[v,x,S]}),t[45]=x,t[46]=p,t[47]=v,t[48]=C):C=t[48];let w;return t[49]!==s||t[50]!==C||t[51]!==m||t[52]!==g||t[53]!==_?(w=(0,J.jsxs)(s,{titel:m,rechts:g,children:[_,C]}),t[49]=s,t[50]=C,t[51]=m,t[52]=g,t[53]=_,t[54]=w):w=t[54],w}function Q(e,t){return e+(o(t.size_bytes)??0)}function ce(e){let t=(0,K.c)(7),{name:n,wert:r}=e,i;t[0]===n?i=t[1]:(i=(0,J.jsx)(`dt`,{className:`text-xs text-text-3`,children:n}),t[0]=n,t[1]=i);let a;t[2]===r?a=t[3]:(a=(0,J.jsx)(`dd`,{className:`ziffern m-0 text-lg`,children:r}),t[2]=r,t[3]=a);let o;return t[4]!==i||t[5]!==a?(o=(0,J.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[i,a]}),t[4]=i,t[5]=a,t[6]=o):o=t[6],o}function $(e){let t=(0,K.c)(48),{titel:n,modell:r,zwilling:a,laeuft:o,nutzer:s}=e,c=l();if(!r){let e;t[0]===n?e=t[1]:(e=(0,J.jsx)(`span`,{className:`schild text-sm text-text-3`,children:n}),t[0]=n,t[1]=e);let r;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,J.jsx)(O,{children:`Frei`}),t[2]=r):r=t[2];let i;t[3]===e?i=t[4]:(i=(0,J.jsxs)(`div`,{className:`flex items-center justify-between`,children:[e,r]}),t[3]=e,t[4]=i);let a,o;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,J.jsx)(`h3`,{className:`font-anzeige text-xl font-semibold text-text-2`,children:`Nicht belegt`}),o=(0,J.jsx)(`p`,{className:`text-sm text-text-2`,children:`Nur belegen, wenn ein Modell hier echten Mehrwert bringt. Das Radar meldet Kandidaten.`}),t[5]=a,t[6]=o):(a=t[5],o=t[6]);let s;return t[7]===i?s=t[8]:(s=(0,J.jsxs)(`article`,{className:`flex flex-col gap-3.5 rounded-2xl border border-dashed border-linie-stark p-5`,children:[i,a,o]}),t[7]=i,t[8]=s),s}let u;t[9]!==r.ctx||t[10]!==r.parallel_slots?(u=r.ctx?Math.round(r.ctx/Math.max(1,r.parallel_slots)/1024):null,t[9]=r.ctx,t[10]=r.parallel_slots,t[11]=u):u=t[11];let d=u,f=!!r.capabilities?.vision||!!a,p;t[12]===n?p=t[13]:(p=(0,J.jsx)(`span`,{className:`schild text-sm text-text-3`,children:n}),t[12]=n,t[13]=p);let m=o?`gruen`:`grau`,h=o?`Geladen`:`Auf Abruf`,g;t[14]!==m||t[15]!==h?(g=(0,J.jsx)(O,{art:m,children:h}),t[14]=m,t[15]=h,t[16]=g):g=t[16];let _;t[17]!==p||t[18]!==g?(_=(0,J.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[p,g]}),t[17]=p,t[18]=g,t[19]=_):_=t[19];let v;t[20]===r.name?v=t[21]:(v=(0,J.jsx)(`h3`,{className:`ziffern m-0 text-lg font-medium break-all`,children:r.name}),t[20]=r.name,t[21]=v);let y;t[22]===r.size_bytes?y=t[23]:(y=S(r.size_bytes),t[22]=r.size_bytes,t[23]=y);let b;t[24]===y?b=t[25]:(b=(0,J.jsx)(ce,{name:`Größe`,wert:y}),t[24]=y,t[25]=b);let x=d?`${d}k`:`–`,C;t[26]===x?C=t[27]:(C=(0,J.jsx)(ce,{name:`Kontext`,wert:x}),t[26]=x,t[27]=C);let w=f?`ja`:`nein`,T;t[28]===w?T=t[29]:(T=(0,J.jsx)(ce,{name:`Bilder`,wert:w}),t[28]=w,t[29]=T);let E;t[30]!==C||t[31]!==T||t[32]!==b?(E=(0,J.jsxs)(`dl`,{className:`m-0 grid grid-cols-3 gap-3`,children:[b,C,T]}),t[30]=C,t[31]=T,t[32]=b,t[33]=E):E=t[33];let D=r.spec_active?` Mit Draft-Beschleunigung.`:``,k=a?` Bilder sieht es über seinen Bild-Zwilling, der nur bei Bedarf lädt.`:``,A;t[34]!==s||t[35]!==D||t[36]!==k?(A=(0,J.jsxs)(`p`,{className:`text-sm text-text-2`,children:[`Genutzt von `,s,`.`,D,k]}),t[34]=s,t[35]=D,t[36]=k,t[37]=A):A=t[37];let j;t[38]!==c||t[39]!==o||t[40]!==r.name?(j=!o&&(0,J.jsx)(i,{variant:`outline`,size:`sm`,className:`mt-auto self-start`,onClick:()=>c.mutate(r.name),disabled:c.isPending,children:`Jetzt laden`}),t[38]=c,t[39]=o,t[40]=r.name,t[41]=j):j=t[41];let M;return t[42]!==E||t[43]!==A||t[44]!==j||t[45]!==_||t[46]!==v?(M=(0,J.jsxs)(`article`,{className:`flex flex-col gap-3.5 rounded-2xl border border-linie bg-panel p-5`,children:[_,v,E,A,j]}),t[42]=E,t[43]=A,t[44]=j,t[45]=_,t[46]=v,t[47]=M):M=t[47],M}function le(e){let t=(0,K.c)(54),{nutzung:n,laedt:r,fehler:i}=e;if(!n){let e;return t[0]!==i||t[1]!==r?(e=(0,J.jsx)(E,{titel:`Wer nutzt die Modelle`,children:r?(0,J.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Wird gelesen …`}):(0,J.jsxs)(`p`,{role:`alert`,className:`text-[15px] text-rot-text`,children:[`Die Nutzung lässt sich gerade nicht lesen`,i?`: ${i}`:`.`]})}),t[0]=i,t[1]=r,t[2]=e):e=t[2],e}let a;t[3]===n.absender?a=t[4]:(a=Math.max(1,...n.absender.map(pe)),t[3]=n.absender,t[4]=a);let o=a,s,c,l,u,d,f,p,m,h,g,_,v;if(t[5]!==o||t[6]!==n.absender||t[7]!==n.letzte_24h||t[8]!==n.tage){let e=n.letzte_24h.map(de),r=Math.max(1,...e);s=E,v=`Wer nutzt die Modelle`,t[21]===n.tage?c=t[22]:(c=(0,J.jsxs)(`span`,{className:`ziffern text-xs text-text-3`,children:[`letzte `,n.tage,` Tage`]}),t[21]=n.tage,t[22]=c),t[23]===n.absender.length?l=t[24]:(l=n.absender.length===0&&(0,J.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Keine Anfragen aufgezeichnet.`}),t[23]=n.absender.length,t[24]=l);let i;if(t[25]!==o||t[26]!==n.absender){let e;t[28]===o?e=t[29]:(e=e=>(0,J.jsxs)(`li`,{className:`flex flex-col gap-1.5`,children:[(0,J.jsxs)(`div`,{className:`flex justify-between gap-3 text-sm`,children:[(0,J.jsx)(`span`,{children:e.name}),(0,J.jsx)(`span`,{className:`ziffern`,children:A(e.anfragen)})]}),(0,J.jsx)(`div`,{className:`h-2 rounded-full bg-erhaben`,children:(0,J.jsx)(`div`,{className:`h-2 rounded-full bg-cyan`,style:{width:`${e.anfragen/o*100}%`}})})]},e.name),t[28]=o,t[29]=e),i=n.absender.map(e),t[25]=o,t[26]=n.absender,t[27]=i}else i=t[27];t[30]===i?u=t[31]:(u=(0,J.jsx)(`ul`,{className:`m-0 flex list-none flex-col gap-3.5 p-0`,children:i}),t[30]=i,t[31]=u),g=`flex flex-col gap-1.5`,t[32]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,J.jsx)(`span`,{className:`schild text-xs text-text-3`,children:`Anfragen je Stunde, letzte 24 h`}),t[32]=_):_=t[32],d=`0 0 240 64`,f=`h-16 w-full`,p=`img`,m=`Anfragen je Stunde in den letzten 24 Stunden`;let a;t[33]===r?a=t[34]:(a=(e,t)=>{let n=e?Math.max(3,e/r*50):2;return(0,J.jsx)(`rect`,{x:t*10+1.5,y:52-n,width:7,height:n,rx:1.5,fill:e?`var(--cyan)`:`var(--linie)`},t)},t[33]=r,t[34]=a),h=e.map(a),t[5]=o,t[6]=n.absender,t[7]=n.letzte_24h,t[8]=n.tage,t[9]=s,t[10]=c,t[11]=l,t[12]=u,t[13]=d,t[14]=f,t[15]=p,t[16]=m,t[17]=h,t[18]=g,t[19]=_,t[20]=v}else s=t[9],c=t[10],l=t[11],u=t[12],d=t[13],f=t[14],p=t[15],m=t[16],h=t[17],g=t[18],_=t[19],v=t[20];let y;t[35]===Symbol.for(`react.memo_cache_sentinel`)?(y=[0,6,12,18].map(ue),t[35]=y):y=t[35];let b;t[36]!==d||t[37]!==f||t[38]!==p||t[39]!==m||t[40]!==h?(b=(0,J.jsxs)(`svg`,{viewBox:d,className:f,role:p,"aria-label":m,children:[h,y]}),t[36]=d,t[37]=f,t[38]=p,t[39]=m,t[40]=h,t[41]=b):b=t[41];let x;t[42]!==b||t[43]!==g||t[44]!==_?(x=(0,J.jsxs)(`div`,{className:g,children:[_,b]}),t[42]=b,t[43]=g,t[44]=_,t[45]=x):x=t[45];let S;t[46]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,J.jsx)(`p`,{className:`text-xs text-text-3`,children:`Anfragen an llama-swap. NerdQuiz geht direkt dorthin, alles andere über MC2.`}),t[46]=S):S=t[46];let C;return t[47]!==s||t[48]!==c||t[49]!==l||t[50]!==u||t[51]!==x||t[52]!==v?(C=(0,J.jsxs)(s,{titel:v,rechts:c,children:[l,u,x,S]}),t[47]=s,t[48]=c,t[49]=l,t[50]=u,t[51]=x,t[52]=v,t[53]=C):C=t[53],C}function ue(e){return(0,J.jsx)(`text`,{x:e*10+5,y:63,textAnchor:`middle`,style:{fontSize:9,fill:`var(--text-3)`,fontFamily:`var(--font-mono)`},children:e},e)}function de(e){return Object.values(e.je_absender).reduce(fe,0)}function fe(e,t){return e+t}function pe(e){return e.anfragen}var me={bestanden:`gruen`,durchgefallen:`rot`,wartet:`cyan`,neu:`cyan`,getestet:`grau`,uebernommen:`gruen`,verworfen:`grau`},he={besser:`text-gruen`,schlechter:`text-rot-text`,gleich:`text-text-2`};function ge(e){let t=(0,K.c)(4),{test:n}=e,r,i;if(t[0]!==n.vergleich){i=Symbol.for(`react.early_return_sentinel`);bb0:{let e=Object.entries(n.vergleich??{});if(e.length===0){i=null;break bb0}let a;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,J.jsxs)(`div`,{role:`row`,className:`schild grid grid-cols-[minmax(0,1fr)_auto_auto] gap-x-4 pb-1 text-xs text-text-3`,children:[(0,J.jsx)(`span`,{role:`columnheader`,children:`Messwert`}),(0,J.jsx)(`span`,{role:`columnheader`,className:`text-right`,children:`Kandidat`}),(0,J.jsx)(`span`,{role:`columnheader`,className:`text-right`,children:`Heute`})]}),t[3]=a):a=t[3],r=(0,J.jsxs)(`div`,{role:`table`,"aria-label":`Messwerte gegen das heutige Modell`,className:`rounded-lg border border-linie bg-erhaben/50 px-3 py-2 text-sm`,children:[a,e.map(_e)]})}t[0]=n.vergleich,t[1]=r,t[2]=i}else r=t[1],i=t[2];return i===Symbol.for(`react.early_return_sentinel`)?r:i}function _e(e){let[t,n]=e;return(0,J.jsxs)(`div`,{role:`row`,className:`grid grid-cols-[minmax(0,1fr)_auto_auto] gap-x-4 border-t border-linie py-1`,children:[(0,J.jsx)(`span`,{role:`rowheader`,className:`text-text-2`,children:t}),(0,J.jsx)(`span`,{role:`cell`,className:`ziffern text-right ${he[n.urteil??``]??`text-text-2`}`,children:b(n.kandidat,n.einheit)}),(0,J.jsx)(`span`,{role:`cell`,className:`ziffern text-right text-text-3`,children:b(n.baseline,n.einheit)})]},t)}function ve(e){let t=(0,K.c)(59),{k:n,test:r,heute:a}=e,o=L(),[s,c]=(0,q.useState)(null),l;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(l=[`bestanden`,`wartet`,`neu`,`getestet`],t[0]=l):l=t[0];let u=l.includes(n.status),d=n.rolle===`hirn`,f;t[1]===n.name?f=t[2]:(f=(0,J.jsx)(`span`,{className:`ziffern text-[15px] font-medium`,children:n.name}),t[1]=n.name,t[2]=f);let p=d?`fürs Hirn`:`fürs Coden`,m;t[3]===p?m=t[4]:(m=(0,J.jsx)(O,{art:`cyan`,children:p}),t[3]=p,t[4]=m);let h;t[5]!==n.eng||t[6]!==n.groesse_gb||t[7]!==n.passt?(h=n.groesse_gb!=null&&(0,J.jsx)(O,{art:n.eng?`bernstein`:n.passt?`gruen`:`rot`,children:n.eng?`passt knapp`:n.passt?`passt`:`passt nicht`}),t[5]=n.eng,t[6]=n.groesse_gb,t[7]=n.passt,t[8]=h):h=t[8];let g=me[n.status]??`grau`,v=_[n.status]??n.status,y;t[9]!==g||t[10]!==v?(y=(0,J.jsx)(O,{art:g,children:v}),t[9]=g,t[10]=v,t[11]=y):y=t[11];let b;t[12]!==f||t[13]!==m||t[14]!==h||t[15]!==y?(b=(0,J.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[f,m,h,y]}),t[12]=f,t[13]=m,t[14]=h,t[15]=y,t[16]=b):b=t[16];let x;t[17]===n.groesse_gb?x=t[18]:(x=n.groesse_gb==null?``:`${n.groesse_gb.toLocaleString(`de-DE`)} GB. `,t[17]=n.groesse_gb,t[18]=x);let S;t[19]!==n.begruendung||t[20]!==x?(S=(0,J.jsxs)(`p`,{className:`text-sm text-text-2`,children:[x,n.begruendung]}),t[19]=n.begruendung,t[20]=x,t[21]=S):S=t[21];let C;t[22]!==n.status||t[23]!==r?(C=r&&[`bestanden`,`durchgefallen`].includes(n.status)&&(0,J.jsx)(ge,{test:r}),t[22]=n.status,t[23]=r,t[24]=C):C=t[24];let w;t[25]!==o.isPending||t[26]!==n.status||t[27]!==u?(w=u&&(0,J.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[n.status===`bestanden`&&(0,J.jsx)(i,{size:`sm`,disabled:o.isPending,onClick:()=>c(`uebernehmen`),children:`Übernehmen`}),(0,J.jsx)(i,{variant:`outline`,size:`sm`,disabled:o.isPending,onClick:()=>c(`verwerfen`),children:`Verwerfen`})]}),t[25]=o.isPending,t[26]=n.status,t[27]=u,t[28]=w):w=t[28];let T=s===`uebernehmen`,E=`${n.name} übernehmen?`,D=d?`${n.name} wird Lucys Hirn${a?` und löst ${a} ab`:``}. NerdQuiz und OpenChamber nutzen ab dann ebenfalls das neue Modell. Hermes startet dafür kurz neu, Lucy ist etwa eine Minute nicht erreichbar. Das alte Modell bleibt auf der Platte.`:`${n.name} wird der Coder${a?` und löst ${a} ab`:``}. OpenChamber plant und baut ab dann damit. Das alte Modell bleibt auf der Platte.`,k;t[29]===Symbol.for(`react.memo_cache_sentinel`)?(k=()=>c(null),t[29]=k):k=t[29];let A;t[30]!==o||t[31]!==s||t[32]!==n.id||t[33]!==n.name?(A=()=>{s===`uebernehmen`&&(o.mutate({id:n.id,aktion:`uebernehmen`,name:n.name}),c(null))},t[30]=o,t[31]=s,t[32]=n.id,t[33]=n.name,t[34]=A):A=t[34];let j;t[35]!==o.isPending||t[36]!==T||t[37]!==E||t[38]!==D||t[39]!==A?(j=(0,J.jsx)(te,{offen:T,titel:E,text:D,knopf:`Übernehmen`,gesperrt:o.isPending,onNein:k,onJa:A}),t[35]=o.isPending,t[36]=T,t[37]=E,t[38]=D,t[39]=A,t[40]=j):j=t[40];let M=s===`verwerfen`,N=`${n.name} verwerfen?`,P;t[41]===Symbol.for(`react.memo_cache_sentinel`)?(P=()=>c(null),t[41]=P):P=t[41];let F;t[42]!==o||t[43]!==s||t[44]!==n.id||t[45]!==n.name?(F=()=>{s===`verwerfen`&&(o.mutate({id:n.id,aktion:`verwerfen`,name:n.name}),c(null))},t[42]=o,t[43]=s,t[44]=n.id,t[45]=n.name,t[46]=F):F=t[46];let I;t[47]!==o.isPending||t[48]!==M||t[49]!==N||t[50]!==F?(I=(0,J.jsx)(te,{offen:M,gefahr:!0,titel:N,text:`Die heruntergeladenen Dateien werden gelöscht, und das Radar testet dieses Modell nicht noch einmal.`,knopf:`Verwerfen`,gesperrt:o.isPending,onNein:P,onJa:F}),t[47]=o.isPending,t[48]=M,t[49]=N,t[50]=F,t[51]=I):I=t[51];let R;return t[52]!==S||t[53]!==C||t[54]!==w||t[55]!==j||t[56]!==I||t[57]!==b?(R=(0,J.jsxs)(`li`,{className:`flex flex-col gap-2 border-t border-linie py-3.5`,children:[b,S,C,w,j,I]}),t[52]=S,t[53]=C,t[54]=w,t[55]=j,t[56]=I,t[57]=b,t[58]=R):R=t[58],R}function ye(e){let t=(0,K.c)(30),{hirn:n,coder:r}=e,a=p(),o=m(),s=c(),l=y(),u=s.data?.jobs,d=(u??[]).filter(xe).at(-1),h=o.data?.job_id,g;t[0]!==h||t[1]!==u?(g=!!h&&!!u&&!u.some(e=>e.id===h),t[0]=h,t[1]=u,t[2]=g):g=t[2];let _=g,v=o.isPending||_||d!==void 0&&k(d),b=(0,q.useRef)(v);if((0,q.useEffect)(()=>{b.current&&!v&&l.invalidateQueries({queryKey:[`radar`]}),b.current=v},[v,l]),a.isError&&!a.data){let e=a.error instanceof j&&a.error.status===404,n;return t[3]!==e||t[4]!==a.error?(n=(0,J.jsx)(E,{titel:`Modell-Radar`,id:`radar`,className:`scroll-mt-4`,children:e?(0,J.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Das Radar ist auf dieser Box noch nicht eingerichtet.`}):(0,J.jsxs)(`p`,{role:`alert`,className:`text-[15px] text-rot-text`,children:[`Das Radar antwortet gerade nicht: `,a.error.message]})}),t[3]=e,t[4]=a.error,t[5]=n):n=t[5],n}let x=a.data,S=E,C;t[6]===o?C=t[7]:(C=()=>o.mutate(void 0),t[6]=o,t[7]=C);let w=v?`Sucht …`:`Jetzt suchen`,T;t[8]!==v||t[9]!==C||t[10]!==w?(T=(0,J.jsx)(i,{variant:`info`,size:`sm`,onClick:C,disabled:v,children:w}),t[8]=v,t[9]=C,t[10]=w,t[11]=T):T=t[11];let D;t[12]===x?D=t[13]:(D=x?.naechster_test?` Nächster Test: ${f(x.naechster_test)}.`:``,t[12]=x,t[13]=D);let O=v?` Sucht gerade bei Hugging Face. Das dauert ein paar Minuten; den Stand zeigt der Auftrag oben unter „Aufträge“.`:``,A;t[14]!==D||t[15]!==O?(A=(0,J.jsxs)(`p`,{className:`-mt-2 text-sm text-text-2`,children:[`Testet nachts zwischen 00:30 und 02:30 selbst, höchstens einen Kandidaten pro Woche.`,D,O]}),t[14]=D,t[15]=O,t[16]=A):A=t[16];let M=!v&&d?.state===`failed`&&(0,J.jsxs)(`p`,{role:`alert`,className:`text-sm text-rot-text`,children:[`Die letzte Suche ist gescheitert: `,H(d)??`ohne Meldung`]}),N;t[17]!==r||t[18]!==x||t[19]!==n?(N=x?x.kandidaten.length===0?(0,J.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Nichts Besseres in Sicht.`}):(0,J.jsx)(`ul`,{className:`m-0 flex list-none flex-col p-0`,children:x.kandidaten.map(e=>(0,J.jsx)(ve,{k:e,test:x.tests.find(t=>t.kandidat===e.id),heute:e.rolle===`hirn`?n:r},e.id))}):(0,J.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Wird gelesen …`}),t[17]=r,t[18]=x,t[19]=n,t[20]=N):N=t[20];let P;t[21]===x?P=t[22]:(P=x&&x.tests.length>0&&(0,J.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,J.jsx)(`h3`,{className:`schild text-xs text-text-3`,children:`Letzte Tests`}),x.tests.slice(0,3).map(be)]}),t[21]=x,t[22]=P);let F;return t[23]!==S||t[24]!==A||t[25]!==M||t[26]!==N||t[27]!==P||t[28]!==T?(F=(0,J.jsxs)(S,{titel:`Modell-Radar`,id:`radar`,className:`scroll-mt-4`,rechts:T,children:[A,M,N,P]}),t[23]=S,t[24]=A,t[25]=M,t[26]=N,t[27]=P,t[28]=T,t[29]=F):F=t[29],F}function be(e){return(0,J.jsxs)(`p`,{className:`text-sm text-text-2`,children:[(0,J.jsx)(`span`,{className:`ziffern text-text-3`,children:f(e.datum)}),` · `,e.zusammenfassung]},e.id)}function xe(e){return e.group===`radar`}function Se(){let e=(0,K.c)(37),t=v(),n=P(),[r,a]=(0,q.useState)(null),o,s,c,l,u;if(e[0]!==t.data||e[1]!==t.error||e[2]!==t.isError){u=Symbol.for(`react.early_return_sentinel`);bb0:{s=t.data?.kandidaten??[];let n=s.reduce(Ce,0);if(t.isError&&!t.data){let n;e[8]===t.error.message?n=e[9]:(n=(0,J.jsxs)(`p`,{role:`alert`,className:`text-[15px] text-rot-text`,children:[`Was sich aufräumen ließe, lässt sich gerade nicht lesen: `,t.error.message]}),e[8]=t.error.message,e[9]=n);let r;e[10]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,J.jsx)(Te,{}),e[10]=r):r=e[10];let i;e[11]===n?i=e[12]:(i=(0,J.jsxs)(E,{titel:`Aufräumen`,children:[n,r]}),e[11]=n,e[12]=i),u=i;break bb0}o=E,c=`Aufräumen`,l=s.length>0?(0,J.jsxs)(`span`,{className:`ziffern text-sm text-text-2`,children:[`bis zu `,n.toLocaleString(`de-DE`,{maximumFractionDigits:0}),` GB frei`]}):void 0}e[0]=t.data,e[1]=t.error,e[2]=t.isError,e[3]=o,e[4]=s,e[5]=c,e[6]=l,e[7]=u}else o=e[3],s=e[4],c=e[5],l=e[6],u=e[7];if(u!==Symbol.for(`react.early_return_sentinel`))return u;let d;e[13]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,J.jsx)(`p`,{className:`-mt-2 text-sm text-text-2`,children:`Modelle und Ordner, die gerade niemand nutzt. Nichts davon wird von selbst gelöscht, das entscheidest du je Eintrag.`}),e[13]=d):d=e[13];let f;e[14]!==s||e[15]!==t.isPending||e[16]!==n.isPending?(f=t.isPending?(0,J.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Wird gelesen …`}):s.length===0?(0,J.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Nichts aufzuräumen.`}):(0,J.jsx)(`ul`,{className:`m-0 flex list-none flex-col p-0`,children:s.map(e=>(0,J.jsxs)(`li`,{className:`flex flex-wrap items-center justify-between gap-3 border-t border-linie py-3`,children:[(0,J.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col gap-1`,children:[(0,J.jsxs)(`span`,{className:`flex flex-wrap items-center gap-2`,children:[(0,J.jsx)(`span`,{className:`ziffern text-sm break-all`,children:e.name}),(0,J.jsx)(O,{children:e.art===`eintrag`?`Eintrag`:`Ordner`})]}),(0,J.jsx)(`span`,{className:`text-sm text-text-2`,children:e.hinweis})]}),(0,J.jsxs)(`span`,{className:`flex items-center gap-3`,children:[(0,J.jsxs)(`span`,{className:`ziffern text-sm text-text-2`,children:[e.groesse_gb.toLocaleString(`de-DE`),` GB`]}),(0,J.jsx)(i,{variant:`gefahr`,size:`sm`,disabled:n.isPending,onClick:()=>a(e),children:`Löschen`})]})]},`${e.art}-${e.name}`))}),e[14]=s,e[15]=t.isPending,e[16]=n.isPending,e[17]=f):f=e[17];let p=r!==null,m=`${r?.name??``} löschen?`,h;e[18]===r?.groesse_gb?h=e[19]:(h=r?.groesse_gb.toLocaleString(`de-DE`)??``,e[18]=r?.groesse_gb,e[19]=h);let g=`${r?.hinweis??``} Es werden ${h} GB frei. Das lässt sich nicht rückgängig machen — zurück ginge es nur mit einem neuen Download.`,_;e[20]===Symbol.for(`react.memo_cache_sentinel`)?(_=()=>a(null),e[20]=_):_=e[20];let y;e[21]!==r||e[22]!==n?(y=()=>{r&&n.mutate(r),a(null)},e[21]=r,e[22]=n,e[23]=y):y=e[23];let b;e[24]!==n.isPending||e[25]!==y||e[26]!==p||e[27]!==m||e[28]!==g?(b=(0,J.jsx)(te,{offen:p,gefahr:!0,titel:m,text:g,knopf:`Endgültig löschen`,gesperrt:n.isPending,onNein:_,onJa:y}),e[24]=n.isPending,e[25]=y,e[26]=p,e[27]=m,e[28]=g,e[29]=b):b=e[29];let x;e[30]===Symbol.for(`react.memo_cache_sentinel`)?(x=(0,J.jsx)(Te,{}),e[30]=x):x=e[30];let S;return e[31]!==o||e[32]!==c||e[33]!==l||e[34]!==b||e[35]!==f?(S=(0,J.jsxs)(o,{titel:c,rechts:l,children:[d,f,b,x]}),e[31]=o,e[32]=c,e[33]=l,e[34]=b,e[35]=f,e[36]=S):S=e[36],S}function Ce(e,t){return e+t.groesse_gb}function we(e){return e>=1e9?`${(e/1e9).toLocaleString(`de-DE`,{maximumFractionDigits:1})} GB`:e>=1e6?`${Math.round(e/1e6)} MB`:e>=1e3?`${Math.round(e/1e3)} KB`:`unter 1 KB`}function Te(){let e=(0,K.c)(36),t=F(),n=M(),[r,a]=(0,q.useState)(null),o,s,c,l,u;if(e[0]!==t.data?.altreste){o=t.data?.altreste??[];let n=o.reduce(Ee,0);u=`flex flex-col gap-2`,s=`flex flex-wrap items-center justify-between gap-3 border-t border-linie pt-4`,e[6]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,J.jsx)(`h3`,{className:`schild text-sm text-text-3`,children:`Altreste neben dem Betrieb`}),e[6]=c):c=e[6],l=o.length>0&&(0,J.jsxs)(`span`,{className:`ziffern text-sm text-text-2`,children:[`zusammen `,we(n)]}),e[0]=t.data?.altreste,e[1]=o,e[2]=s,e[3]=c,e[4]=l,e[5]=u}else o=e[1],s=e[2],c=e[3],l=e[4],u=e[5];let d;e[7]!==s||e[8]!==c||e[9]!==l?(d=(0,J.jsxs)(`div`,{className:s,children:[c,l]}),e[7]=s,e[8]=c,e[9]=l,e[10]=d):d=e[10];let f;e[11]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,J.jsx)(`p`,{className:`text-sm text-text-2`,children:`Test-Ordner, alte Umgebungen und Arbeitskopien, die nichts mehr nutzt. Die Box prüft sie gegen eine feste Liste und löscht auch hier nie von selbst.`}),e[11]=f):f=e[11];let p;e[12]!==t.data||e[13]!==t.error||e[14]!==t.isError||e[15]!==t.isPending||e[16]!==n.isPending||e[17]!==o?(p=t.isPending?(0,J.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Wird gelesen …`}):t.isError&&!t.data?(0,J.jsxs)(`p`,{role:`alert`,className:`text-[15px] text-rot-text`,children:[`Die Altreste lassen sich gerade nicht lesen: `,t.error.message]}):o.length===0?(0,J.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Keine Altreste mehr.`}):(0,J.jsx)(`ul`,{className:`m-0 flex list-none flex-col p-0`,children:o.map(e=>(0,J.jsxs)(`li`,{className:`flex flex-wrap items-center justify-between gap-3 border-t border-linie py-3`,children:[(0,J.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col gap-1`,children:[(0,J.jsxs)(`span`,{className:`flex flex-wrap items-center gap-2`,children:[(0,J.jsx)(`span`,{className:`text-sm`,children:e.name}),(0,J.jsx)(O,{children:`Altrest`})]}),(0,J.jsx)(`span`,{className:`ziffern text-xs break-all text-text-3`,children:e.pfade.join(` · `)}),(0,J.jsx)(`span`,{className:`text-sm text-text-2`,children:e.hinweis})]}),(0,J.jsxs)(`span`,{className:`flex items-center gap-3`,children:[(0,J.jsx)(`span`,{className:`ziffern text-sm text-text-2`,children:e.groesse}),(0,J.jsx)(i,{variant:`gefahr`,size:`sm`,disabled:n.isPending,onClick:()=>a(e),children:`Löschen`})]})]},e.id))}),e[12]=t.data,e[13]=t.error,e[14]=t.isError,e[15]=t.isPending,e[16]=n.isPending,e[17]=o,e[18]=p):p=e[18];let m=r!==null,h=`${r?.name??``} löschen?`,g;e[19]===r?.pfade?g=e[20]:(g=r?.pfade.join(`, `)??``,e[19]=r?.pfade,e[20]=g);let _=`${r?.hinweis??``} Gelöscht wird: ${g} (${r?.groesse??``}). Das lässt sich nicht rückgängig machen.`,v;e[21]===Symbol.for(`react.memo_cache_sentinel`)?(v=()=>a(null),e[21]=v):v=e[21];let y;e[22]!==r||e[23]!==n?(y=()=>{r&&n.mutate(r),a(null)},e[22]=r,e[23]=n,e[24]=y):y=e[24];let b;e[25]!==n.isPending||e[26]!==_||e[27]!==y||e[28]!==m||e[29]!==h?(b=(0,J.jsx)(te,{offen:m,gefahr:!0,titel:h,text:_,knopf:`Endgültig löschen`,gesperrt:n.isPending,onNein:v,onJa:y}),e[25]=n.isPending,e[26]=_,e[27]=y,e[28]=m,e[29]=h,e[30]=b):b=e[30];let x;return e[31]!==b||e[32]!==u||e[33]!==d||e[34]!==p?(x=(0,J.jsxs)(`div`,{className:u,children:[d,f,p,b]}),e[31]=b,e[32]=u,e[33]=d,e[34]=p,e[35]=x):x=e[35],x}function Ee(e,t){return e+t.groesse_bytes}function De(){let e=(0,K.c)(74),t=d(),n=s(),r=p(),a=c(),[o,l]=(0,q.useState)(!1),u;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(u={select:je},e[0]=u):u=e[0];let m=U(u),h=!!t.data&&!n.isPending&&!r.isPending&&!a.isPending,g,_;if(e[1]!==h||e[2]!==m?(g=()=>{h&&m===`radar`&&document.getElementById(`radar`)?.scrollIntoView({block:`start`})},_=[h,m],e[1]=h,e[2]=m,e[3]=g,e[4]=_):(g=e[3],_=e[4]),(0,q.useEffect)(g,_),t.isPending){let t;return e[5]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,J.jsx)(w,{text:`Modelle werden gelesen …`}),e[5]=t):t=e[5],t}if(!t.data){let n=`Die Modell-Liste fehlt: ${t.error?.message??`keine Daten`}`,r;return e[6]===n?r=e[7]:(r=(0,J.jsx)(w,{fehler:!0,text:n}),e[6]=n,e[7]=r),r}let v=t.data.models,y=t.data.running,b,x,C,T,D,O,k,A,j,M,N,P;if(e[8]!==y||e[9]!==v||e[10]!==n.data||e[11]!==n.error?.message||e[12]!==n.isPending){let t=v.find(Ae);x=v.find(ke);let r;e[25]===v?r=e[26]:(r=(e,t)=>e?v.find(n=>n!==e&&n.aliases.includes(t)&&n.filename===e.filename):void 0,e[25]=v,e[26]=r);let a=r,o=a(t,`vision`);C=a(x,`coder-bild`);let s=v.filter(e=>![t,x,o,C].includes(e)),c;e[27]===n.data?.zuletzt_geladen?c=e[28]:(c=n.data?.zuletzt_geladen??{},e[27]=n.data?.zuletzt_geladen,e[28]=c);let u=c;e[29]!==y||e[30]!==v?(N=(0,J.jsx)(Z,{modelle:v,laufend:y}),e[29]=y,e[30]=v,e[31]=N):N=e[31],e[32]===Symbol.for(`react.memo_cache_sentinel`)?(P=(0,J.jsx)(ie,{alsPanel:!0}),e[32]=P):P=e[32];let d;e[33]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,J.jsx)($,{titel:`Dritte Rolle`,laeuft:!1,nutzer:``}),e[33]=d):d=e[33],T=(0,J.jsxs)(`section`,{"aria-label":`Rollen`,className:`grid gap-5 md:grid-cols-3 md:gap-6`,children:[(0,J.jsx)($,{titel:`Hirn`,modell:t,zwilling:o,laeuft:!!t&&y.includes(t.name),nutzer:`Lucy, NerdQuiz und OpenChamber für Kleinkram`}),(0,J.jsx)($,{titel:`Coder`,modell:x,zwilling:C,laeuft:!!x&&y.includes(x.name),nutzer:`OpenChamber zum Planen und Bauen und Lucys Delegation`}),d]});let p=n.error?.message??null,m;e[34]!==n.data||e[35]!==n.isPending||e[36]!==p?(m=(0,J.jsx)(le,{nutzung:n.data,laedt:n.isPending,fehler:p}),e[34]=n.data,e[35]=n.isPending,e[36]=p,e[37]=m):m=e[37];let h=t?.name,g=x?.name,_;e[38]!==h||e[39]!==g?(_=(0,J.jsx)(ye,{hirn:h,coder:g}),e[38]=h,e[39]=g,e[40]=_):_=e[40],e[41]!==m||e[42]!==_?(D=(0,J.jsxs)(`div`,{className:`grid gap-5 md:gap-6 lg:grid-cols-[minmax(0,1fr)_minmax(0,1.3fr)]`,children:[m,_]}),e[41]=m,e[42]=_,e[43]=D):D=e[43],b=E,A=`Weitere Einträge`,e[44]===Symbol.for(`react.memo_cache_sentinel`)?(j=(0,J.jsxs)(i,{variant:`outline`,size:`sm`,onClick:()=>l(!0),children:[(0,J.jsx)(G,{"aria-hidden":!0}),` Modelle selbst suchen`]}),e[44]=j):j=e[44],M=s.length===0&&(0,J.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Keine weiteren Einträge.`}),O=`m-0 flex list-none flex-col p-0`;let w;e[45]!==y||e[46]!==u?(w=e=>(0,J.jsxs)(`li`,{className:`grid grid-cols-[minmax(0,1fr)_auto] items-center gap-3 border-t border-linie py-2.5 sm:grid-cols-[minmax(0,1fr)_120px_160px]`,children:[(0,J.jsxs)(`span`,{className:`min-w-0`,children:[(0,J.jsx)(`span`,{className:`ziffern block text-sm break-all`,children:e.name}),(0,J.jsx)(`span`,{className:`text-xs text-text-3`,children:e.aliases.length?e.aliases.join(`, `):`ohne Rolle`})]}),(0,J.jsx)(`span`,{className:`ziffern text-sm text-text-2`,children:S(e.size_bytes)}),(0,J.jsx)(`span`,{className:`ziffern hidden text-xs text-text-3 sm:block`,children:y.includes(e.name)?`geladen`:u[e.name]?`zuletzt ${f(u[e.name])}`:`länger nicht geladen`})]},e.name),e[45]=y,e[46]=u,e[47]=w):w=e[47],k=s.map(w),e[8]=y,e[9]=v,e[10]=n.data,e[11]=n.error?.message,e[12]=n.isPending,e[13]=b,e[14]=x,e[15]=C,e[16]=T,e[17]=D,e[18]=O,e[19]=k,e[20]=A,e[21]=j,e[22]=M,e[23]=N,e[24]=P}else b=e[13],x=e[14],C=e[15],T=e[16],D=e[17],O=e[18],k=e[19],A=e[20],j=e[21],M=e[22],N=e[23],P=e[24];let F;e[48]!==O||e[49]!==k?(F=(0,J.jsx)(`ul`,{className:O,children:k}),e[48]=O,e[49]=k,e[50]=F):F=e[50];let I;e[51]!==b||e[52]!==F||e[53]!==A||e[54]!==j||e[55]!==M?(I=(0,J.jsxs)(b,{titel:A,rechts:j,children:[M,F]}),e[51]=b,e[52]=F,e[53]=A,e[54]=j,e[55]=M,e[56]=I):I=e[56];let L;e[57]===Symbol.for(`react.memo_cache_sentinel`)?(L=(0,J.jsx)(Se,{}),e[57]=L):L=e[57];let R;e[58]===Symbol.for(`react.memo_cache_sentinel`)?(R=()=>l(!1),e[58]=R):R=e[58];let z;e[59]!==x||e[60]!==C?(z=x?{name:x.name,zwilling:!!C,weitere:x.aliases.filter(Oe)}:void 0,e[59]=x,e[60]=C,e[61]=z):z=e[61];let B;e[62]===z?B=e[63]:(B={coder:z},e[62]=z,e[63]=B);let V;e[64]!==o||e[65]!==B?(V=(0,J.jsx)(Y,{offen:o,onSchliessen:R,rollenJetzt:B}),e[64]=o,e[65]=B,e[66]=V):V=e[66];let ee;return e[67]!==T||e[68]!==D||e[69]!==I||e[70]!==V||e[71]!==N||e[72]!==P?(ee=(0,J.jsxs)(J.Fragment,{children:[N,P,T,D,I,L,V]}),e[67]=T,e[68]=D,e[69]=I,e[70]=V,e[71]=N,e[72]=P,e[73]=ee):ee=e[73],ee}function Oe(e){return e.toLowerCase()!==`coder`}function ke(e){return T(e)===`coder`}function Ae(e){return T(e)===`hirn`}function je(e){return e.hash}export{De as ModelleSeite}; \ No newline at end of file diff --git a/frontend/dist/assets/Modelle-D7lkCzi4.js b/frontend/dist/assets/Modelle-D7lkCzi4.js new file mode 100644 index 0000000..21ef716 --- /dev/null +++ b/frontend/dist/assets/Modelle-D7lkCzi4.js @@ -0,0 +1 @@ +import{c as e,o as t,p as n,s as r,t as i,u as a}from"./button-BheHBEml.js";import{C as o,Ct as s,F as c,H as l,I as u,L as d,R as f,S as p,St as m,V as h,W as g,at as _,bt as v,ct as y,dt as b,ft as x,i as S,it as C,j as w,mt as T,n as E,nt as D,pt as O,q as k,r as A,rt as j,tt as M,ut as N,w as P,x as F,xt as I,yt as L}from"./index-BAH01Yfc.js";import{a as R,i as z,n as B,r as V,t as ee}from"./sheet-CKp82pOA.js";import{t as te}from"./Bestaetigen-CE_3b0PK.js";import{a as H,r as ne,s as re,t as ie}from"./Auftraege-CEbGzmGA.js";function U(e){let t=I();return v(t.stores.location,L(e,t))}var W={name:`search`,size:24,node:[[`path`,{d:`m21 21-4.34-4.34`,key:`14j7rj`}],[`circle`,{cx:`11`,cy:`11`,r:`8`,key:`4ej97u`}]]};W.node;var G=t(W),K=r(),q=n(a(),1),J=e(),ae={coder:`Coder`};function Y(e){let t=(0,K.c)(102),{offen:n,onSchliessen:r,rollenJetzt:a}=e,o=w(),[s,c]=(0,q.useState)(``),[l,u]=(0,q.useState)(``),[d,f]=(0,q.useState)(null),[p,h]=(0,q.useState)(``),[g,_]=(0,q.useState)(null),v=(0,q.useRef)(!1),y,b;t[0]===l?(y=t[1],b=t[2]):(y=[`hf-suche`,l],b=()=>T(`/api/hf/search?q=${encodeURIComponent(l)}`),t[0]=l,t[1]=y,t[2]=b);let x=l.length>1,S;t[3]!==y||t[4]!==b||t[5]!==x?(S={queryKey:y,queryFn:b,enabled:x},t[3]=y,t[4]=b,t[5]=x,t[6]=S):S=t[6];let E=m(S),D,O;t[7]===d?(D=t[8],O=t[9]):(D=[`hf-quants`,d],O=()=>T(`/api/hf/quants?repo=${encodeURIComponent(d??``)}`),t[7]=d,t[8]=D,t[9]=O);let k=!!d,A;t[10]!==D||t[11]!==O||t[12]!==k?(A={queryKey:D,queryFn:O,enabled:k},t[10]=D,t[11]=O,t[12]=k,t[13]=A):A=t[13];let M=m(A),N,P,F,I,L,H,ie,U,W,G,Y,X,Z;if(t[14]!==g||t[15]!==s||t[16]!==o||t[17]!==n||t[18]!==r||t[19]!==M.data||t[20]!==M.error||t[21]!==M.isError||t[22]!==M.isFetching||t[23]!==d||t[24]!==p||t[25]!==a||t[26]!==E){let e=(M.data?.quants??[]).map(se),l=p?ae[p]??p:null,m;t[40]!==d||t[41]!==p||t[42]!==a||t[43]!==l?(m=l&&d?re(d,l,a[p]):null,t[40]=d,t[41]=p,t[42]=a,t[43]=l,t[44]=m):m=t[44],F=m;let y;t[45]!==g||t[46]!==o||t[47]!==r||t[48]!==d||t[49]!==p?(y=function(){d&&g&&!v.current&&(v.current=!0,o.mutate({repo:d,quant:g.quant,rolle:p||null},{onSuccess:e=>{_(null),e.ok!==!1&&r()},onError:()=>_(null),onSettled:()=>{v.current=!1}}))},t[45]=g,t[46]=o,t[47]=r,t[48]=d,t[49]=p,t[50]=y):y=t[50],I=y,P=ee,Y=n,t[51]===r?X=t[52]:(X=e=>!e&&r(),t[51]=r,t[52]=X),N=B,ie=`right`,U=`gap-3 overflow-y-auto border-linie bg-panel data-[side=right]:w-full data-[side=right]:sm:max-w-xl`,t[53]===Symbol.for(`react.memo_cache_sentinel`)?(W=(0,J.jsxs)(z,{children:[(0,J.jsx)(R,{className:`schild text-lg`,children:`Modelle selbst suchen`}),(0,J.jsx)(V,{className:`text-text-2`,children:`Auf Hugging Face suchen, Quantisierung wählen, installieren.`})]}),t[53]=W):W=t[53];let b;t[54]===s?b=t[55]:(b=e=>{e.preventDefault(),f(null),u(s.trim())},t[54]=s,t[55]=b);let x;t[56]===Symbol.for(`react.memo_cache_sentinel`)?(x=(0,J.jsx)(`label`,{htmlFor:`hf-suche`,className:`sr-only`,children:`Suchbegriff`}),t[56]=x):x=t[56];let S;t[57]===Symbol.for(`react.memo_cache_sentinel`)?(S=e=>c(e.target.value),t[57]=S):S=t[57];let w;t[58]===s?w=t[59]:(w=(0,J.jsx)(`input`,{id:`hf-suche`,value:s,onChange:S,placeholder:`z. B. Qwen3.8 GGUF`,className:`h-11 min-w-0 flex-1 rounded-lg border border-linie-stark bg-erhaben px-3 text-[15px] outline-none focus:border-cyan`}),t[58]=s,t[59]=w);let T;t[60]===Symbol.for(`react.memo_cache_sentinel`)?(T=(0,J.jsx)(i,{type:`submit`,children:`Suchen`}),t[60]=T):T=t[60],t[61]!==b||t[62]!==w?(G=(0,J.jsxs)(`form`,{className:`flex gap-2 px-4`,onSubmit:b,children:[x,w,T]}),t[61]=b,t[62]=w,t[63]=G):G=t[63],Z=`flex flex-col px-4 pb-4`,t[64]!==d||t[65]!==E?(L=!d&&(0,J.jsxs)(J.Fragment,{children:[E.isFetching&&(0,J.jsx)(`p`,{role:`status`,className:`py-3 text-sm text-text-2`,children:`Suche läuft …`}),!E.isFetching&&E.isError&&(0,J.jsxs)(`p`,{role:`alert`,className:`py-3 text-sm text-rot-text`,children:[`Die Suche ging nicht: `,E.error.message]}),!E.isFetching&&E.data?.results.length===0&&(0,J.jsx)(`p`,{className:`py-3 text-sm text-text-2`,children:`Keine Treffer. Versuch einen anderen Suchbegriff — oder Hugging Face ist gerade nicht erreichbar.`}),E.data?.results.map(e=>(0,J.jsxs)(`button`,{type:`button`,onClick:()=>f(e.repo),className:`flex min-h-11 items-center justify-between gap-3 border-t border-linie py-2 text-left hover:text-cyan`,children:[(0,J.jsx)(`span`,{className:`ziffern min-w-0 text-sm break-all`,children:e.repo}),(0,J.jsxs)(`span`,{className:`ziffern shrink-0 text-xs text-text-3`,children:[C(e.downloads),` ↓`]})]},e.repo))]}),t[64]=d,t[65]=E,t[66]=L):L=t[66],H=d&&(0,J.jsxs)(`div`,{className:`flex flex-col gap-3 pt-2`,children:[(0,J.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,J.jsx)(`span`,{className:`ziffern min-w-0 text-sm break-all`,children:d}),(0,J.jsx)(i,{variant:`ghost`,size:`sm`,onClick:()=>f(null),children:`Zurück`})]}),(0,J.jsxs)(`label`,{className:`flex flex-wrap items-center gap-3 text-sm text-text-2`,children:[`Rolle`,(0,J.jsxs)(`select`,{value:p,onChange:e=>h(e.target.value),className:`h-11 min-w-0 rounded-lg border border-linie-stark bg-erhaben px-3 text-foreground`,children:[(0,J.jsx)(`option`,{value:``,children:`ohne Rolle (nur installieren)`}),Object.entries(ae).map(oe)]})]}),F&&(0,J.jsx)(`p`,{className:`m-0 rounded-lg border border-bernstein/60 bg-bernstein-grund px-3 py-2.5 text-sm leading-relaxed text-bernstein`,children:F}),M.isFetching&&(0,J.jsx)(`p`,{role:`status`,className:`text-sm text-text-2`,children:`Quantisierungen werden gelesen …`}),!M.isFetching&&M.isError&&(0,J.jsxs)(`p`,{role:`alert`,className:`text-sm text-rot-text`,children:[`Die Dateien dieses Modells ließen sich nicht lesen: `,M.error.message]}),!M.isFetching&&M.data&&e.length===0&&(0,J.jsx)(`p`,{className:`text-sm text-text-2`,children:`Hier gibt es keine GGUF-Dateien, die sich installieren lassen.`}),e.map(e=>{let t=e.quant??e.name??`?`,n=e.total_bytes??e.size_bytes;return(0,J.jsxs)(`div`,{className:`flex items-center justify-between gap-3 border-t border-linie py-2`,children:[(0,J.jsx)(`span`,{className:`ziffern text-sm`,children:t}),(0,J.jsxs)(`span`,{className:`flex items-center gap-3`,children:[n?(0,J.jsx)(`span`,{className:`ziffern text-xs text-text-3`,children:j(n,1)}):null,(0,J.jsx)(i,{variant:`outline`,size:`sm`,disabled:o.isPending,onClick:()=>_({quant:t,bytes:n}),children:`Installieren`})]})]},t)})]}),t[14]=g,t[15]=s,t[16]=o,t[17]=n,t[18]=r,t[19]=M.data,t[20]=M.error,t[21]=M.isError,t[22]=M.isFetching,t[23]=d,t[24]=p,t[25]=a,t[26]=E,t[27]=N,t[28]=P,t[29]=F,t[30]=I,t[31]=L,t[32]=H,t[33]=ie,t[34]=U,t[35]=W,t[36]=G,t[37]=Y,t[38]=X,t[39]=Z}else N=t[27],P=t[28],F=t[29],I=t[30],L=t[31],H=t[32],ie=t[33],U=t[34],W=t[35],G=t[36],Y=t[37],X=t[38],Z=t[39];let Q;t[67]!==L||t[68]!==H||t[69]!==Z?(Q=(0,J.jsxs)(`div`,{className:Z,children:[L,H]}),t[67]=L,t[68]=H,t[69]=Z,t[70]=Q):Q=t[70];let ce=g!==null,$;t[71]!==g||t[72]!==d?($=g&&d?`${d} (${g.quant}${g.bytes?`, ${j(g.bytes,1)}`:``}) wird heruntergeladen und in llama-swap eingetragen.`+(g.bytes?``:` Die Größe siehst du beim Auftrag, sobald der Download läuft.`):``,t[71]=g,t[72]=d,t[73]=$):$=t[73];let le=o.isPending?`Wird gestartet …`:`Installieren`,ue=o.isPending,de;t[74]===Symbol.for(`react.memo_cache_sentinel`)?(de=()=>_(null),t[74]=de):de=t[74];let fe;t[75]===F?fe=t[76]:(fe=F&&(0,J.jsx)(`p`,{className:`m-0 rounded-lg border border-bernstein/60 bg-bernstein-grund px-3 py-2.5 text-[15px] leading-relaxed text-bernstein`,children:F}),t[75]=F,t[76]=fe);let pe=!!p,me;t[77]===pe?me=t[78]:(me=ne(pe),t[77]=pe,t[78]=me);let he;t[79]===me?he=t[80]:(he=(0,J.jsx)(`p`,{className:`m-0 text-[15px] leading-relaxed text-text-2`,children:me}),t[79]=me,t[80]=he);let ge;t[81]!==o.isPending||t[82]!==I||t[83]!==ce||t[84]!==$||t[85]!==le||t[86]!==fe||t[87]!==he?(ge=(0,J.jsxs)(te,{offen:ce,titel:`Modell installieren?`,text:$,knopf:le,gesperrt:ue,onNein:de,onJa:I,children:[fe,he]}),t[81]=o.isPending,t[82]=I,t[83]=ce,t[84]=$,t[85]=le,t[86]=fe,t[87]=he,t[88]=ge):ge=t[88];let _e;t[89]!==N||t[90]!==ie||t[91]!==U||t[92]!==W||t[93]!==G||t[94]!==Q||t[95]!==ge?(_e=(0,J.jsxs)(N,{side:ie,className:U,children:[W,G,Q,ge]}),t[89]=N,t[90]=ie,t[91]=U,t[92]=W,t[93]=G,t[94]=Q,t[95]=ge,t[96]=_e):_e=t[96];let ve;return t[97]!==P||t[98]!==Y||t[99]!==X||t[100]!==_e?(ve=(0,J.jsx)(P,{open:Y,onOpenChange:X,children:_e}),t[97]=P,t[98]=Y,t[99]=X,t[100]=_e,t[101]=ve):ve=t[101],ve}function oe(e){let[t,n]=e;return(0,J.jsx)(`option`,{value:t,children:n},t)}function se(e){return typeof e==`string`?{quant:e}:e}var X=115;function Z(e){let t=(0,K.c)(55),{modelle:n,laufend:r}=e,i=_(),a=k(),o,s,c,l,u,d,f,p,m,h;if(t[0]!==r||t[1]!==i?.ram_total||t[2]!==i?.ram_used||t[3]!==n||t[4]!==a){let e=D(i?.ram_total??a.data?.box.ram_total)??122.7,g=D(i?.ram_used??a.data?.box.ram_used)??0,_;t[15]===r?_=t[16]:(_=e=>r.includes(e.name),t[15]=r,t[16]=_);let v=n.filter(_).reduce(Q,0);s=Math.max(0,g-v);let y=t=>`${Math.min(100,t/e*100)}%`;o=E,p=`Speicher`,m=(0,J.jsxs)(`span`,{className:`ziffern text-sm text-text-2`,children:[Math.round(g),` von `,Math.round(e),` GB belegt · Grenze ~`,X,` GB`]});let b=`Speicher: ${Math.round(g)} von ${Math.round(e)} GB belegt`,x=y(g),S;t[17]===x?S=t[18]:(S={width:x},t[17]=x,t[18]=S);let C=`${g?v/g*100:0}%`,w;t[19]===C?w=t[20]:(w=(0,J.jsx)(`div`,{className:`h-full bg-cyan`,style:{width:C}}),t[19]=C,t[20]=w);let T=`${g?s/g*100:0}%`,O;t[21]===T?O=t[22]:(O=(0,J.jsx)(`div`,{className:`h-full bg-cyan/35`,style:{width:T}}),t[21]=T,t[22]=O);let k;t[23]!==S||t[24]!==w||t[25]!==O?(k=(0,J.jsxs)(`div`,{className:`absolute inset-y-0 left-0 flex overflow-hidden rounded-lg`,style:S,children:[w,O]}),t[23]=S,t[24]=w,t[25]=O,t[26]=k):k=t[26];let A=y(X),j;t[27]===A?j=t[28]:(j=(0,J.jsx)(`div`,{className:`absolute -top-1.5 -bottom-1.5 w-0.5 bg-bernstein`,style:{left:A}}),t[27]=A,t[28]=j),t[29]!==b||t[30]!==k||t[31]!==j?(h=(0,J.jsxs)(`div`,{className:`relative h-8 rounded-lg bg-erhaben`,role:`img`,"aria-label":b,children:[k,j]}),t[29]=b,t[30]=k,t[31]=j,t[32]=h):h=t[32],f=`flex flex-wrap gap-x-6 gap-y-2 text-sm text-text-2`,c=`flex items-center gap-2`,t[33]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,J.jsx)(`span`,{className:`size-2.5 rounded-sm bg-cyan`}),t[33]=l):l=t[33],u=` Geladene Modelle: `,d=Math.round(v),t[0]=r,t[1]=i?.ram_total,t[2]=i?.ram_used,t[3]=n,t[4]=a,t[5]=o,t[6]=s,t[7]=c,t[8]=l,t[9]=u,t[10]=d,t[11]=f,t[12]=p,t[13]=m,t[14]=h}else o=t[5],s=t[6],c=t[7],l=t[8],u=t[9],d=t[10],f=t[11],p=t[12],m=t[13],h=t[14];let g;t[34]!==c||t[35]!==l||t[36]!==u||t[37]!==d?(g=(0,J.jsxs)(`span`,{className:c,children:[l,u,d,` GB Dateien`]}),t[34]=c,t[35]=l,t[36]=u,t[37]=d,t[38]=g):g=t[38];let v;t[39]===Symbol.for(`react.memo_cache_sentinel`)?(v=(0,J.jsx)(`span`,{className:`size-2.5 rounded-sm bg-cyan/35`}),t[39]=v):v=t[39];let y;t[40]===s?y=t[41]:(y=Math.round(s),t[40]=s,t[41]=y);let b;t[42]===y?b=t[43]:(b=(0,J.jsxs)(`span`,{className:`flex items-center gap-2`,children:[v,` Cache, Dienste, System: `,y,` GB`]}),t[42]=y,t[43]=b);let x;t[44]===Symbol.for(`react.memo_cache_sentinel`)?(x=(0,J.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,J.jsx)(`span`,{className:`h-3 w-0.5 bg-bernstein`}),` Ab hier wird es eng`]}),t[44]=x):x=t[44];let S;t[45]!==b||t[46]!==f||t[47]!==g?(S=(0,J.jsxs)(`div`,{className:f,children:[g,b,x]}),t[45]=b,t[46]=f,t[47]=g,t[48]=S):S=t[48];let C;return t[49]!==o||t[50]!==S||t[51]!==p||t[52]!==m||t[53]!==h?(C=(0,J.jsxs)(o,{titel:p,rechts:m,children:[h,S]}),t[49]=o,t[50]=S,t[51]=p,t[52]=m,t[53]=h,t[54]=C):C=t[54],C}function Q(e,t){return e+(D(t.size_bytes)??0)}function ce(e){let t=(0,K.c)(7),{name:n,wert:r}=e,i;t[0]===n?i=t[1]:(i=(0,J.jsx)(`dt`,{className:`text-xs text-text-3`,children:n}),t[0]=n,t[1]=i);let a;t[2]===r?a=t[3]:(a=(0,J.jsx)(`dd`,{className:`ziffern m-0 text-lg`,children:r}),t[2]=r,t[3]=a);let o;return t[4]!==i||t[5]!==a?(o=(0,J.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[i,a]}),t[4]=i,t[5]=a,t[6]=o):o=t[6],o}function $(e){let t=(0,K.c)(48),{titel:n,modell:r,zwilling:a,laeuft:o,nutzer:s}=e,c=u();if(!r){let e;t[0]===n?e=t[1]:(e=(0,J.jsx)(`span`,{className:`schild text-sm text-text-3`,children:n}),t[0]=n,t[1]=e);let r;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,J.jsx)(A,{children:`Frei`}),t[2]=r):r=t[2];let i;t[3]===e?i=t[4]:(i=(0,J.jsxs)(`div`,{className:`flex items-center justify-between`,children:[e,r]}),t[3]=e,t[4]=i);let a,o;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,J.jsx)(`h3`,{className:`font-anzeige text-xl font-semibold text-text-2`,children:`Nicht belegt`}),o=(0,J.jsx)(`p`,{className:`text-sm text-text-2`,children:`Nur belegen, wenn ein Modell hier echten Mehrwert bringt. Das Radar meldet Kandidaten.`}),t[5]=a,t[6]=o):(a=t[5],o=t[6]);let s;return t[7]===i?s=t[8]:(s=(0,J.jsxs)(`article`,{className:`flex flex-col gap-3.5 rounded-2xl border border-dashed border-linie-stark p-5`,children:[i,a,o]}),t[7]=i,t[8]=s),s}let l;t[9]!==r.ctx||t[10]!==r.parallel_slots?(l=r.ctx?Math.round(r.ctx/Math.max(1,r.parallel_slots)/1024):null,t[9]=r.ctx,t[10]=r.parallel_slots,t[11]=l):l=t[11];let d=l,f=!!r.capabilities?.vision||!!a,p;t[12]===n?p=t[13]:(p=(0,J.jsx)(`span`,{className:`schild text-sm text-text-3`,children:n}),t[12]=n,t[13]=p);let m=o?`gruen`:`grau`,h=o?`Geladen`:`Auf Abruf`,g;t[14]!==m||t[15]!==h?(g=(0,J.jsx)(A,{art:m,children:h}),t[14]=m,t[15]=h,t[16]=g):g=t[16];let _;t[17]!==p||t[18]!==g?(_=(0,J.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[p,g]}),t[17]=p,t[18]=g,t[19]=_):_=t[19];let v;t[20]===r.name?v=t[21]:(v=(0,J.jsx)(`h3`,{className:`ziffern m-0 text-lg font-medium break-all`,children:r.name}),t[20]=r.name,t[21]=v);let y;t[22]===r.size_bytes?y=t[23]:(y=j(r.size_bytes),t[22]=r.size_bytes,t[23]=y);let b;t[24]===y?b=t[25]:(b=(0,J.jsx)(ce,{name:`Größe`,wert:y}),t[24]=y,t[25]=b);let x=d?`${d}k`:`–`,S;t[26]===x?S=t[27]:(S=(0,J.jsx)(ce,{name:`Kontext`,wert:x}),t[26]=x,t[27]=S);let C=f?`ja`:`nein`,w;t[28]===C?w=t[29]:(w=(0,J.jsx)(ce,{name:`Bilder`,wert:C}),t[28]=C,t[29]=w);let T;t[30]!==S||t[31]!==w||t[32]!==b?(T=(0,J.jsxs)(`dl`,{className:`m-0 grid grid-cols-3 gap-3`,children:[b,S,w]}),t[30]=S,t[31]=w,t[32]=b,t[33]=T):T=t[33];let E=r.spec_active?` Mit Draft-Beschleunigung.`:``,D=a?` Bilder sieht es über seinen Bild-Zwilling, der nur bei Bedarf lädt.`:``,O;t[34]!==s||t[35]!==E||t[36]!==D?(O=(0,J.jsxs)(`p`,{className:`text-sm text-text-2`,children:[`Genutzt von `,s,`.`,E,D]}),t[34]=s,t[35]=E,t[36]=D,t[37]=O):O=t[37];let k;t[38]!==c||t[39]!==o||t[40]!==r.name?(k=!o&&(0,J.jsx)(i,{variant:`outline`,size:`sm`,className:`mt-auto self-start`,onClick:()=>c.mutate(r.name),disabled:c.isPending,children:`Jetzt laden`}),t[38]=c,t[39]=o,t[40]=r.name,t[41]=k):k=t[41];let M;return t[42]!==T||t[43]!==O||t[44]!==k||t[45]!==_||t[46]!==v?(M=(0,J.jsxs)(`article`,{className:`flex flex-col gap-3.5 rounded-2xl border border-linie bg-panel p-5`,children:[_,v,T,O,k]}),t[42]=T,t[43]=O,t[44]=k,t[45]=_,t[46]=v,t[47]=M):M=t[47],M}function le(e){let t=(0,K.c)(54),{nutzung:n,laedt:r,fehler:i}=e;if(!n){let e;return t[0]!==i||t[1]!==r?(e=(0,J.jsx)(E,{titel:`Wer nutzt die Modelle`,children:r?(0,J.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Wird gelesen …`}):(0,J.jsxs)(`p`,{role:`alert`,className:`text-[15px] text-rot-text`,children:[`Die Nutzung lässt sich gerade nicht lesen`,i?`: ${i}`:`.`]})}),t[0]=i,t[1]=r,t[2]=e):e=t[2],e}let a;t[3]===n.absender?a=t[4]:(a=Math.max(1,...n.absender.map(pe)),t[3]=n.absender,t[4]=a);let o=a,s,c,l,u,d,f,p,m,h,g,_,v;if(t[5]!==o||t[6]!==n.absender||t[7]!==n.letzte_24h||t[8]!==n.tage){let e=n.letzte_24h.map(de),r=Math.max(1,...e);s=E,v=`Wer nutzt die Modelle`,t[21]===n.tage?c=t[22]:(c=(0,J.jsxs)(`span`,{className:`ziffern text-xs text-text-3`,children:[`letzte `,n.tage,` Tage`]}),t[21]=n.tage,t[22]=c),t[23]===n.absender.length?l=t[24]:(l=n.absender.length===0&&(0,J.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Keine Anfragen aufgezeichnet.`}),t[23]=n.absender.length,t[24]=l);let i;if(t[25]!==o||t[26]!==n.absender){let e;t[28]===o?e=t[29]:(e=e=>(0,J.jsxs)(`li`,{className:`flex flex-col gap-1.5`,children:[(0,J.jsxs)(`div`,{className:`flex justify-between gap-3 text-sm`,children:[(0,J.jsx)(`span`,{children:e.name}),(0,J.jsx)(`span`,{className:`ziffern`,children:C(e.anfragen)})]}),(0,J.jsx)(`div`,{className:`h-2 rounded-full bg-erhaben`,children:(0,J.jsx)(`div`,{className:`h-2 rounded-full bg-cyan`,style:{width:`${e.anfragen/o*100}%`}})})]},e.name),t[28]=o,t[29]=e),i=n.absender.map(e),t[25]=o,t[26]=n.absender,t[27]=i}else i=t[27];t[30]===i?u=t[31]:(u=(0,J.jsx)(`ul`,{className:`m-0 flex list-none flex-col gap-3.5 p-0`,children:i}),t[30]=i,t[31]=u),g=`flex flex-col gap-1.5`,t[32]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,J.jsx)(`span`,{className:`schild text-xs text-text-3`,children:`Anfragen je Stunde, letzte 24 h`}),t[32]=_):_=t[32],d=`0 0 240 64`,f=`h-16 w-full`,p=`img`,m=`Anfragen je Stunde in den letzten 24 Stunden`;let a;t[33]===r?a=t[34]:(a=(e,t)=>{let n=e?Math.max(3,e/r*50):2;return(0,J.jsx)(`rect`,{x:t*10+1.5,y:52-n,width:7,height:n,rx:1.5,fill:e?`var(--cyan)`:`var(--linie)`},t)},t[33]=r,t[34]=a),h=e.map(a),t[5]=o,t[6]=n.absender,t[7]=n.letzte_24h,t[8]=n.tage,t[9]=s,t[10]=c,t[11]=l,t[12]=u,t[13]=d,t[14]=f,t[15]=p,t[16]=m,t[17]=h,t[18]=g,t[19]=_,t[20]=v}else s=t[9],c=t[10],l=t[11],u=t[12],d=t[13],f=t[14],p=t[15],m=t[16],h=t[17],g=t[18],_=t[19],v=t[20];let y;t[35]===Symbol.for(`react.memo_cache_sentinel`)?(y=[0,6,12,18].map(ue),t[35]=y):y=t[35];let b;t[36]!==d||t[37]!==f||t[38]!==p||t[39]!==m||t[40]!==h?(b=(0,J.jsxs)(`svg`,{viewBox:d,className:f,role:p,"aria-label":m,children:[h,y]}),t[36]=d,t[37]=f,t[38]=p,t[39]=m,t[40]=h,t[41]=b):b=t[41];let x;t[42]!==b||t[43]!==g||t[44]!==_?(x=(0,J.jsxs)(`div`,{className:g,children:[_,b]}),t[42]=b,t[43]=g,t[44]=_,t[45]=x):x=t[45];let S;t[46]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,J.jsx)(`p`,{className:`text-xs text-text-3`,children:`Anfragen an llama-swap. NerdQuiz geht direkt dorthin, alles andere über MC2.`}),t[46]=S):S=t[46];let w;return t[47]!==s||t[48]!==c||t[49]!==l||t[50]!==u||t[51]!==x||t[52]!==v?(w=(0,J.jsxs)(s,{titel:v,rechts:c,children:[l,u,x,S]}),t[47]=s,t[48]=c,t[49]=l,t[50]=u,t[51]=x,t[52]=v,t[53]=w):w=t[53],w}function ue(e){return(0,J.jsx)(`text`,{x:e*10+5,y:63,textAnchor:`middle`,style:{fontSize:9,fill:`var(--text-3)`,fontFamily:`var(--font-mono)`},children:e},e)}function de(e){return Object.values(e.je_absender).reduce(fe,0)}function fe(e,t){return e+t}function pe(e){return e.anfragen}var me={bestanden:`gruen`,durchgefallen:`rot`,wartet:`cyan`,neu:`cyan`,getestet:`grau`,uebernommen:`gruen`,verworfen:`grau`},he={besser:`text-gruen`,schlechter:`text-rot-text`,gleich:`text-text-2`};function ge(e){let t=(0,K.c)(4),{test:n}=e,r,i;if(t[0]!==n.vergleich){i=Symbol.for(`react.early_return_sentinel`);bb0:{let e=Object.entries(n.vergleich??{});if(e.length===0){i=null;break bb0}let a;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,J.jsxs)(`div`,{role:`row`,className:`schild grid grid-cols-[minmax(0,1fr)_auto_auto] gap-x-4 pb-1 text-xs text-text-3`,children:[(0,J.jsx)(`span`,{role:`columnheader`,children:`Messwert`}),(0,J.jsx)(`span`,{role:`columnheader`,className:`text-right`,children:`Kandidat`}),(0,J.jsx)(`span`,{role:`columnheader`,className:`text-right`,children:`Heute`})]}),t[3]=a):a=t[3],r=(0,J.jsxs)(`div`,{role:`table`,"aria-label":`Messwerte gegen das heutige Modell`,className:`rounded-lg border border-linie bg-erhaben/50 px-3 py-2 text-sm`,children:[a,e.map(_e)]})}t[0]=n.vergleich,t[1]=r,t[2]=i}else r=t[1],i=t[2];return i===Symbol.for(`react.early_return_sentinel`)?r:i}function _e(e){let[t,n]=e;return(0,J.jsxs)(`div`,{role:`row`,className:`grid grid-cols-[minmax(0,1fr)_auto_auto] gap-x-4 border-t border-linie py-1`,children:[(0,J.jsx)(`span`,{role:`rowheader`,className:`text-text-2`,children:t}),(0,J.jsx)(`span`,{role:`cell`,className:`ziffern text-right ${he[n.urteil??``]??`text-text-2`}`,children:b(n.kandidat,n.einheit)}),(0,J.jsx)(`span`,{role:`cell`,className:`ziffern text-right text-text-3`,children:b(n.baseline,n.einheit)})]},t)}function ve(e){let t=(0,K.c)(59),{k:n,test:r,heute:a}=e,o=l(),[s,c]=(0,q.useState)(null),u;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(u=[`bestanden`,`wartet`,`neu`,`getestet`],t[0]=u):u=t[0];let d=u.includes(n.status),f=n.rolle===`hirn`,p;t[1]===n.name?p=t[2]:(p=(0,J.jsx)(`span`,{className:`ziffern text-[15px] font-medium`,children:n.name}),t[1]=n.name,t[2]=p);let m=f?`fürs Hirn`:`fürs Coden`,h;t[3]===m?h=t[4]:(h=(0,J.jsx)(A,{art:`cyan`,children:m}),t[3]=m,t[4]=h);let g;t[5]!==n.eng||t[6]!==n.groesse_gb||t[7]!==n.passt?(g=n.groesse_gb!=null&&(0,J.jsx)(A,{art:n.eng?`bernstein`:n.passt?`gruen`:`rot`,children:n.eng?`passt knapp`:n.passt?`passt`:`passt nicht`}),t[5]=n.eng,t[6]=n.groesse_gb,t[7]=n.passt,t[8]=g):g=t[8];let _=me[n.status]??`grau`,v=y[n.status]??n.status,b;t[9]!==_||t[10]!==v?(b=(0,J.jsx)(A,{art:_,children:v}),t[9]=_,t[10]=v,t[11]=b):b=t[11];let x;t[12]!==p||t[13]!==h||t[14]!==g||t[15]!==b?(x=(0,J.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[p,h,g,b]}),t[12]=p,t[13]=h,t[14]=g,t[15]=b,t[16]=x):x=t[16];let S;t[17]===n.groesse_gb?S=t[18]:(S=n.groesse_gb==null?``:`${n.groesse_gb.toLocaleString(`de-DE`)} GB. `,t[17]=n.groesse_gb,t[18]=S);let C;t[19]!==n.begruendung||t[20]!==S?(C=(0,J.jsxs)(`p`,{className:`text-sm text-text-2`,children:[S,n.begruendung]}),t[19]=n.begruendung,t[20]=S,t[21]=C):C=t[21];let w;t[22]!==n.status||t[23]!==r?(w=r&&[`bestanden`,`durchgefallen`].includes(n.status)&&(0,J.jsx)(ge,{test:r}),t[22]=n.status,t[23]=r,t[24]=w):w=t[24];let T;t[25]!==o.isPending||t[26]!==n.status||t[27]!==d?(T=d&&(0,J.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[n.status===`bestanden`&&(0,J.jsx)(i,{size:`sm`,disabled:o.isPending,onClick:()=>c(`uebernehmen`),children:`Übernehmen`}),(0,J.jsx)(i,{variant:`outline`,size:`sm`,disabled:o.isPending,onClick:()=>c(`verwerfen`),children:`Verwerfen`})]}),t[25]=o.isPending,t[26]=n.status,t[27]=d,t[28]=T):T=t[28];let E=s===`uebernehmen`,D=`${n.name} übernehmen?`,O=f?`${n.name} wird Lucys Hirn${a?` und löst ${a} ab`:``}. NerdQuiz und OpenChamber nutzen ab dann ebenfalls das neue Modell. Hermes startet dafür kurz neu, Lucy ist etwa eine Minute nicht erreichbar. Das alte Modell bleibt auf der Platte.`:`${n.name} wird der Coder${a?` und löst ${a} ab`:``}. OpenChamber plant und baut ab dann damit. Das alte Modell bleibt auf der Platte.`,k;t[29]===Symbol.for(`react.memo_cache_sentinel`)?(k=()=>c(null),t[29]=k):k=t[29];let j;t[30]!==o||t[31]!==s||t[32]!==n.id||t[33]!==n.name?(j=()=>{s===`uebernehmen`&&(o.mutate({id:n.id,aktion:`uebernehmen`,name:n.name}),c(null))},t[30]=o,t[31]=s,t[32]=n.id,t[33]=n.name,t[34]=j):j=t[34];let M;t[35]!==o.isPending||t[36]!==E||t[37]!==D||t[38]!==O||t[39]!==j?(M=(0,J.jsx)(te,{offen:E,titel:D,text:O,knopf:`Übernehmen`,gesperrt:o.isPending,onNein:k,onJa:j}),t[35]=o.isPending,t[36]=E,t[37]=D,t[38]=O,t[39]=j,t[40]=M):M=t[40];let N=s===`verwerfen`,P=`${n.name} verwerfen?`,F;t[41]===Symbol.for(`react.memo_cache_sentinel`)?(F=()=>c(null),t[41]=F):F=t[41];let I;t[42]!==o||t[43]!==s||t[44]!==n.id||t[45]!==n.name?(I=()=>{s===`verwerfen`&&(o.mutate({id:n.id,aktion:`verwerfen`,name:n.name}),c(null))},t[42]=o,t[43]=s,t[44]=n.id,t[45]=n.name,t[46]=I):I=t[46];let L;t[47]!==o.isPending||t[48]!==N||t[49]!==P||t[50]!==I?(L=(0,J.jsx)(te,{offen:N,gefahr:!0,titel:P,text:`Die heruntergeladenen Dateien werden gelöscht, und das Radar testet dieses Modell nicht noch einmal.`,knopf:`Verwerfen`,gesperrt:o.isPending,onNein:F,onJa:I}),t[47]=o.isPending,t[48]=N,t[49]=P,t[50]=I,t[51]=L):L=t[51];let R;return t[52]!==C||t[53]!==w||t[54]!==T||t[55]!==M||t[56]!==L||t[57]!==x?(R=(0,J.jsxs)(`li`,{className:`flex flex-col gap-2 border-t border-linie py-3.5`,children:[x,C,w,T,M,L]}),t[52]=C,t[53]=w,t[54]=T,t[55]=M,t[56]=L,t[57]=x,t[58]=R):R=t[58],R}function ye(e){let t=(0,K.c)(30),{hirn:n,coder:r}=e,a=h(),o=g(),l=c(),u=s(),d=l.data?.jobs,f=(d??[]).filter(xe).at(-1),p=o.data?.job_id,m;t[0]!==p||t[1]!==d?(m=!!p&&!!d&&!d.some(e=>e.id===p),t[0]=p,t[1]=d,t[2]=m):m=t[2];let _=m,v=o.isPending||_||f!==void 0&&N(f),y=(0,q.useRef)(v);if((0,q.useEffect)(()=>{y.current&&!v&&u.invalidateQueries({queryKey:[`radar`]}),y.current=v},[v,u]),a.isError&&!a.data){let e=a.error instanceof O&&a.error.status===404,n;return t[3]!==e||t[4]!==a.error?(n=(0,J.jsx)(E,{titel:`Modell-Radar`,id:`radar`,className:`scroll-mt-4`,children:e?(0,J.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Das Radar ist auf dieser Box noch nicht eingerichtet.`}):(0,J.jsxs)(`p`,{role:`alert`,className:`text-[15px] text-rot-text`,children:[`Das Radar antwortet gerade nicht: `,a.error.message]})}),t[3]=e,t[4]=a.error,t[5]=n):n=t[5],n}let b=a.data,x=E,S;t[6]===o?S=t[7]:(S=()=>o.mutate(void 0),t[6]=o,t[7]=S);let C=v?`Sucht …`:`Jetzt suchen`,w;t[8]!==v||t[9]!==S||t[10]!==C?(w=(0,J.jsx)(i,{variant:`info`,size:`sm`,onClick:S,disabled:v,children:C}),t[8]=v,t[9]=S,t[10]=C,t[11]=w):w=t[11];let T;t[12]===b?T=t[13]:(T=b?.naechster_test?` Nächster Test: ${M(b.naechster_test)}.`:``,t[12]=b,t[13]=T);let D=v?` Sucht gerade bei Hugging Face. Das dauert ein paar Minuten; den Stand zeigt der Auftrag oben unter „Aufträge“.`:``,k;t[14]!==T||t[15]!==D?(k=(0,J.jsxs)(`p`,{className:`-mt-2 text-sm text-text-2`,children:[`Testet nachts zwischen 00:30 und 02:30 selbst, höchstens einen Kandidaten pro Woche.`,T,D]}),t[14]=T,t[15]=D,t[16]=k):k=t[16];let A=!v&&f?.state===`failed`&&(0,J.jsxs)(`p`,{role:`alert`,className:`text-sm text-rot-text`,children:[`Die letzte Suche ist gescheitert: `,H(f)??`ohne Meldung`]}),j;t[17]!==r||t[18]!==b||t[19]!==n?(j=b?b.kandidaten.length===0?(0,J.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Nichts Besseres in Sicht.`}):(0,J.jsx)(`ul`,{className:`m-0 flex list-none flex-col p-0`,children:b.kandidaten.map(e=>(0,J.jsx)(ve,{k:e,test:b.tests.find(t=>t.kandidat===e.id),heute:e.rolle===`hirn`?n:r},e.id))}):(0,J.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Wird gelesen …`}),t[17]=r,t[18]=b,t[19]=n,t[20]=j):j=t[20];let P;t[21]===b?P=t[22]:(P=b&&b.tests.length>0&&(0,J.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,J.jsx)(`h3`,{className:`schild text-xs text-text-3`,children:`Letzte Tests`}),b.tests.slice(0,3).map(be)]}),t[21]=b,t[22]=P);let F;return t[23]!==x||t[24]!==k||t[25]!==A||t[26]!==j||t[27]!==P||t[28]!==w?(F=(0,J.jsxs)(x,{titel:`Modell-Radar`,id:`radar`,className:`scroll-mt-4`,rechts:w,children:[k,A,j,P]}),t[23]=x,t[24]=k,t[25]=A,t[26]=j,t[27]=P,t[28]=w,t[29]=F):F=t[29],F}function be(e){return(0,J.jsxs)(`p`,{className:`text-sm text-text-2`,children:[(0,J.jsx)(`span`,{className:`ziffern text-text-3`,children:M(e.datum)}),` · `,e.zusammenfassung]},e.id)}function xe(e){return e.group===`radar`}function Se(){let e=(0,K.c)(37),t=o(),n=P(),[r,a]=(0,q.useState)(null),s,c,l,u,d;if(e[0]!==t.data||e[1]!==t.error||e[2]!==t.isError){d=Symbol.for(`react.early_return_sentinel`);bb0:{c=t.data?.kandidaten??[];let n=c.reduce(Ce,0);if(t.isError&&!t.data){let n;e[8]===t.error.message?n=e[9]:(n=(0,J.jsxs)(`p`,{role:`alert`,className:`text-[15px] text-rot-text`,children:[`Was sich aufräumen ließe, lässt sich gerade nicht lesen: `,t.error.message]}),e[8]=t.error.message,e[9]=n);let r;e[10]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,J.jsx)(Te,{}),e[10]=r):r=e[10];let i;e[11]===n?i=e[12]:(i=(0,J.jsxs)(E,{titel:`Aufräumen`,children:[n,r]}),e[11]=n,e[12]=i),d=i;break bb0}s=E,l=`Aufräumen`,u=c.length>0?(0,J.jsxs)(`span`,{className:`ziffern text-sm text-text-2`,children:[`bis zu `,n.toLocaleString(`de-DE`,{maximumFractionDigits:0}),` GB frei`]}):void 0}e[0]=t.data,e[1]=t.error,e[2]=t.isError,e[3]=s,e[4]=c,e[5]=l,e[6]=u,e[7]=d}else s=e[3],c=e[4],l=e[5],u=e[6],d=e[7];if(d!==Symbol.for(`react.early_return_sentinel`))return d;let f;e[13]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,J.jsx)(`p`,{className:`-mt-2 text-sm text-text-2`,children:`Modelle und Ordner, die gerade niemand nutzt. Nichts davon wird von selbst gelöscht, das entscheidest du je Eintrag.`}),e[13]=f):f=e[13];let p;e[14]!==c||e[15]!==t.isPending||e[16]!==n.isPending?(p=t.isPending?(0,J.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Wird gelesen …`}):c.length===0?(0,J.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Nichts aufzuräumen.`}):(0,J.jsx)(`ul`,{className:`m-0 flex list-none flex-col p-0`,children:c.map(e=>(0,J.jsxs)(`li`,{className:`flex flex-wrap items-center justify-between gap-3 border-t border-linie py-3`,children:[(0,J.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col gap-1`,children:[(0,J.jsxs)(`span`,{className:`flex flex-wrap items-center gap-2`,children:[(0,J.jsx)(`span`,{className:`ziffern text-sm break-all`,children:e.name}),(0,J.jsx)(A,{children:e.art===`eintrag`?`Eintrag`:`Ordner`})]}),(0,J.jsx)(`span`,{className:`text-sm text-text-2`,children:e.hinweis})]}),(0,J.jsxs)(`span`,{className:`flex items-center gap-3`,children:[(0,J.jsxs)(`span`,{className:`ziffern text-sm text-text-2`,children:[e.groesse_gb.toLocaleString(`de-DE`),` GB`]}),(0,J.jsx)(i,{variant:`gefahr`,size:`sm`,disabled:n.isPending,onClick:()=>a(e),children:`Löschen`})]})]},`${e.art}-${e.name}`))}),e[14]=c,e[15]=t.isPending,e[16]=n.isPending,e[17]=p):p=e[17];let m=r!==null,h=`${r?.name??``} löschen?`,g;e[18]===r?.groesse_gb?g=e[19]:(g=r?.groesse_gb.toLocaleString(`de-DE`)??``,e[18]=r?.groesse_gb,e[19]=g);let _=`${r?.hinweis??``} Es werden ${g} GB frei. Das lässt sich nicht rückgängig machen — zurück ginge es nur mit einem neuen Download.`,v;e[20]===Symbol.for(`react.memo_cache_sentinel`)?(v=()=>a(null),e[20]=v):v=e[20];let y;e[21]!==r||e[22]!==n?(y=()=>{r&&n.mutate(r),a(null)},e[21]=r,e[22]=n,e[23]=y):y=e[23];let b;e[24]!==n.isPending||e[25]!==y||e[26]!==m||e[27]!==h||e[28]!==_?(b=(0,J.jsx)(te,{offen:m,gefahr:!0,titel:h,text:_,knopf:`Endgültig löschen`,gesperrt:n.isPending,onNein:v,onJa:y}),e[24]=n.isPending,e[25]=y,e[26]=m,e[27]=h,e[28]=_,e[29]=b):b=e[29];let x;e[30]===Symbol.for(`react.memo_cache_sentinel`)?(x=(0,J.jsx)(Te,{}),e[30]=x):x=e[30];let S;return e[31]!==s||e[32]!==l||e[33]!==u||e[34]!==b||e[35]!==p?(S=(0,J.jsxs)(s,{titel:l,rechts:u,children:[f,p,b,x]}),e[31]=s,e[32]=l,e[33]=u,e[34]=b,e[35]=p,e[36]=S):S=e[36],S}function Ce(e,t){return e+t.groesse_gb}function we(e){return e>=1e9?`${(e/1e9).toLocaleString(`de-DE`,{maximumFractionDigits:1})} GB`:e>=1e6?`${Math.round(e/1e6)} MB`:e>=1e3?`${Math.round(e/1e3)} KB`:`unter 1 KB`}function Te(){let e=(0,K.c)(36),t=p(),n=F(),[r,a]=(0,q.useState)(null),o,s,c,l,u;if(e[0]!==t.data?.altreste){o=t.data?.altreste??[];let n=o.reduce(Ee,0);u=`flex flex-col gap-2`,s=`flex flex-wrap items-center justify-between gap-3 border-t border-linie pt-4`,e[6]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,J.jsx)(`h3`,{className:`schild text-sm text-text-3`,children:`Altreste neben dem Betrieb`}),e[6]=c):c=e[6],l=o.length>0&&(0,J.jsxs)(`span`,{className:`ziffern text-sm text-text-2`,children:[`zusammen `,we(n)]}),e[0]=t.data?.altreste,e[1]=o,e[2]=s,e[3]=c,e[4]=l,e[5]=u}else o=e[1],s=e[2],c=e[3],l=e[4],u=e[5];let d;e[7]!==s||e[8]!==c||e[9]!==l?(d=(0,J.jsxs)(`div`,{className:s,children:[c,l]}),e[7]=s,e[8]=c,e[9]=l,e[10]=d):d=e[10];let f;e[11]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,J.jsx)(`p`,{className:`text-sm text-text-2`,children:`Test-Ordner, alte Umgebungen und Arbeitskopien, die nichts mehr nutzt. Die Box prüft sie gegen eine feste Liste und löscht auch hier nie von selbst.`}),e[11]=f):f=e[11];let m;e[12]!==t.data||e[13]!==t.error||e[14]!==t.isError||e[15]!==t.isPending||e[16]!==n.isPending||e[17]!==o?(m=t.isPending?(0,J.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Wird gelesen …`}):t.isError&&!t.data?(0,J.jsxs)(`p`,{role:`alert`,className:`text-[15px] text-rot-text`,children:[`Die Altreste lassen sich gerade nicht lesen: `,t.error.message]}):o.length===0?(0,J.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Keine Altreste mehr.`}):(0,J.jsx)(`ul`,{className:`m-0 flex list-none flex-col p-0`,children:o.map(e=>(0,J.jsxs)(`li`,{className:`flex flex-wrap items-center justify-between gap-3 border-t border-linie py-3`,children:[(0,J.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col gap-1`,children:[(0,J.jsxs)(`span`,{className:`flex flex-wrap items-center gap-2`,children:[(0,J.jsx)(`span`,{className:`text-sm`,children:e.name}),(0,J.jsx)(A,{children:`Altrest`})]}),(0,J.jsx)(`span`,{className:`ziffern text-xs break-all text-text-3`,children:e.pfade.join(` · `)}),(0,J.jsx)(`span`,{className:`text-sm text-text-2`,children:e.hinweis})]}),(0,J.jsxs)(`span`,{className:`flex items-center gap-3`,children:[(0,J.jsx)(`span`,{className:`ziffern text-sm text-text-2`,children:e.groesse}),(0,J.jsx)(i,{variant:`gefahr`,size:`sm`,disabled:n.isPending,onClick:()=>a(e),children:`Löschen`})]})]},e.id))}),e[12]=t.data,e[13]=t.error,e[14]=t.isError,e[15]=t.isPending,e[16]=n.isPending,e[17]=o,e[18]=m):m=e[18];let h=r!==null,g=`${r?.name??``} löschen?`,_;e[19]===r?.pfade?_=e[20]:(_=r?.pfade.join(`, `)??``,e[19]=r?.pfade,e[20]=_);let v=`${r?.hinweis??``} Gelöscht wird: ${_} (${r?.groesse??``}). Das lässt sich nicht rückgängig machen.`,y;e[21]===Symbol.for(`react.memo_cache_sentinel`)?(y=()=>a(null),e[21]=y):y=e[21];let b;e[22]!==r||e[23]!==n?(b=()=>{r&&n.mutate(r),a(null)},e[22]=r,e[23]=n,e[24]=b):b=e[24];let x;e[25]!==n.isPending||e[26]!==v||e[27]!==b||e[28]!==h||e[29]!==g?(x=(0,J.jsx)(te,{offen:h,gefahr:!0,titel:g,text:v,knopf:`Endgültig löschen`,gesperrt:n.isPending,onNein:y,onJa:b}),e[25]=n.isPending,e[26]=v,e[27]=b,e[28]=h,e[29]=g,e[30]=x):x=e[30];let S;return e[31]!==x||e[32]!==u||e[33]!==d||e[34]!==m?(S=(0,J.jsxs)(`div`,{className:u,children:[d,f,m,x]}),e[31]=x,e[32]=u,e[33]=d,e[34]=m,e[35]=S):S=e[35],S}function Ee(e,t){return e+t.groesse_bytes}function De(){let e=(0,K.c)(74),t=d(),n=f(),r=h(),a=c(),[o,s]=(0,q.useState)(!1),l;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(l={select:je},e[0]=l):l=e[0];let u=U(l),p=!!t.data&&!n.isPending&&!r.isPending&&!a.isPending,m,g;if(e[1]!==p||e[2]!==u?(m=()=>{p&&u===`radar`&&document.getElementById(`radar`)?.scrollIntoView({block:`start`})},g=[p,u],e[1]=p,e[2]=u,e[3]=m,e[4]=g):(m=e[3],g=e[4]),(0,q.useEffect)(m,g),t.isPending){let t;return e[5]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,J.jsx)(S,{text:`Modelle werden gelesen …`}),e[5]=t):t=e[5],t}if(!t.data){let n=`Die Modell-Liste fehlt: ${t.error?.message??`keine Daten`}`,r;return e[6]===n?r=e[7]:(r=(0,J.jsx)(S,{fehler:!0,text:n}),e[6]=n,e[7]=r),r}let _=t.data.models,v=t.data.running,y,b,x,C,w,T,D,O,k,A,N,P;if(e[8]!==v||e[9]!==_||e[10]!==n.data||e[11]!==n.error?.message||e[12]!==n.isPending){let t=_.find(Ae);b=_.find(ke);let r;e[25]===_?r=e[26]:(r=(e,t)=>e?_.find(n=>n!==e&&n.aliases.includes(t)&&n.filename===e.filename):void 0,e[25]=_,e[26]=r);let a=r,o=a(t,`vision`);x=a(b,`coder-bild`);let c=_.filter(e=>![t,b,o,x].includes(e)),l;e[27]===n.data?.zuletzt_geladen?l=e[28]:(l=n.data?.zuletzt_geladen??{},e[27]=n.data?.zuletzt_geladen,e[28]=l);let u=l;e[29]!==v||e[30]!==_?(N=(0,J.jsx)(Z,{modelle:_,laufend:v}),e[29]=v,e[30]=_,e[31]=N):N=e[31],e[32]===Symbol.for(`react.memo_cache_sentinel`)?(P=(0,J.jsx)(ie,{alsPanel:!0}),e[32]=P):P=e[32];let d;e[33]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,J.jsx)($,{titel:`Dritte Rolle`,laeuft:!1,nutzer:``}),e[33]=d):d=e[33],C=(0,J.jsxs)(`section`,{"aria-label":`Rollen`,className:`grid gap-5 md:grid-cols-3 md:gap-6`,children:[(0,J.jsx)($,{titel:`Hirn`,modell:t,zwilling:o,laeuft:!!t&&v.includes(t.name),nutzer:`Lucy, NerdQuiz und OpenChamber für Kleinkram`}),(0,J.jsx)($,{titel:`Coder`,modell:b,zwilling:x,laeuft:!!b&&v.includes(b.name),nutzer:`OpenChamber zum Planen und Bauen und Lucys Delegation`}),d]});let f=n.error?.message??null,p;e[34]!==n.data||e[35]!==n.isPending||e[36]!==f?(p=(0,J.jsx)(le,{nutzung:n.data,laedt:n.isPending,fehler:f}),e[34]=n.data,e[35]=n.isPending,e[36]=f,e[37]=p):p=e[37];let m=t?.name,h=b?.name,g;e[38]!==m||e[39]!==h?(g=(0,J.jsx)(ye,{hirn:m,coder:h}),e[38]=m,e[39]=h,e[40]=g):g=e[40],e[41]!==p||e[42]!==g?(w=(0,J.jsxs)(`div`,{className:`grid gap-5 md:gap-6 lg:grid-cols-[minmax(0,1fr)_minmax(0,1.3fr)]`,children:[p,g]}),e[41]=p,e[42]=g,e[43]=w):w=e[43],y=E,O=`Weitere Einträge`,e[44]===Symbol.for(`react.memo_cache_sentinel`)?(k=(0,J.jsxs)(i,{variant:`outline`,size:`sm`,onClick:()=>s(!0),children:[(0,J.jsx)(G,{"aria-hidden":!0}),` Modelle selbst suchen`]}),e[44]=k):k=e[44],A=c.length===0&&(0,J.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Keine weiteren Einträge.`}),T=`m-0 flex list-none flex-col p-0`;let S;e[45]!==v||e[46]!==u?(S=e=>(0,J.jsxs)(`li`,{className:`grid grid-cols-[minmax(0,1fr)_auto] items-center gap-3 border-t border-linie py-2.5 sm:grid-cols-[minmax(0,1fr)_120px_160px]`,children:[(0,J.jsxs)(`span`,{className:`min-w-0`,children:[(0,J.jsx)(`span`,{className:`ziffern block text-sm break-all`,children:e.name}),(0,J.jsx)(`span`,{className:`text-xs text-text-3`,children:e.aliases.length?e.aliases.join(`, `):`ohne Rolle`})]}),(0,J.jsx)(`span`,{className:`ziffern text-sm text-text-2`,children:j(e.size_bytes)}),(0,J.jsx)(`span`,{className:`ziffern hidden text-xs text-text-3 sm:block`,children:v.includes(e.name)?`geladen`:u[e.name]?`zuletzt ${M(u[e.name])}`:`länger nicht geladen`})]},e.name),e[45]=v,e[46]=u,e[47]=S):S=e[47],D=c.map(S),e[8]=v,e[9]=_,e[10]=n.data,e[11]=n.error?.message,e[12]=n.isPending,e[13]=y,e[14]=b,e[15]=x,e[16]=C,e[17]=w,e[18]=T,e[19]=D,e[20]=O,e[21]=k,e[22]=A,e[23]=N,e[24]=P}else y=e[13],b=e[14],x=e[15],C=e[16],w=e[17],T=e[18],D=e[19],O=e[20],k=e[21],A=e[22],N=e[23],P=e[24];let F;e[48]!==T||e[49]!==D?(F=(0,J.jsx)(`ul`,{className:T,children:D}),e[48]=T,e[49]=D,e[50]=F):F=e[50];let I;e[51]!==y||e[52]!==F||e[53]!==O||e[54]!==k||e[55]!==A?(I=(0,J.jsxs)(y,{titel:O,rechts:k,children:[A,F]}),e[51]=y,e[52]=F,e[53]=O,e[54]=k,e[55]=A,e[56]=I):I=e[56];let L;e[57]===Symbol.for(`react.memo_cache_sentinel`)?(L=(0,J.jsx)(Se,{}),e[57]=L):L=e[57];let R;e[58]===Symbol.for(`react.memo_cache_sentinel`)?(R=()=>s(!1),e[58]=R):R=e[58];let z;e[59]!==b||e[60]!==x?(z=b?{name:b.name,zwilling:!!x,weitere:b.aliases.filter(Oe)}:void 0,e[59]=b,e[60]=x,e[61]=z):z=e[61];let B;e[62]===z?B=e[63]:(B={coder:z},e[62]=z,e[63]=B);let V;e[64]!==o||e[65]!==B?(V=(0,J.jsx)(Y,{offen:o,onSchliessen:R,rollenJetzt:B}),e[64]=o,e[65]=B,e[66]=V):V=e[66];let ee;return e[67]!==C||e[68]!==w||e[69]!==I||e[70]!==V||e[71]!==N||e[72]!==P?(ee=(0,J.jsxs)(J.Fragment,{children:[N,P,C,w,I,L,V]}),e[67]=C,e[68]=w,e[69]=I,e[70]=V,e[71]=N,e[72]=P,e[73]=ee):ee=e[73],ee}function Oe(e){return e.toLowerCase()!==`coder`}function ke(e){return x(e)===`coder`}function Ae(e){return x(e)===`hirn`}function je(e){return e.hash}export{De as ModelleSeite}; \ No newline at end of file diff --git a/frontend/dist/assets/Updates-Bz_hFzqr.js b/frontend/dist/assets/Updates-Bz_hFzqr.js new file mode 100644 index 0000000..5b92460 --- /dev/null +++ b/frontend/dist/assets/Updates-Bz_hFzqr.js @@ -0,0 +1,2 @@ +import{c as e,i as t,o as n,p as r,s as i,t as a,u as o}from"./button-BheHBEml.js";import{D as s,E as c,F as l,G as u,N as d,Q as f,Y as p,Z as m,et as ee,i as h,n as g,q as te,r as _,tt as v,ut as y}from"./index-BAH01Yfc.js";import{t as b}from"./Bestaetigen-CE_3b0PK.js";import{c as x,i as S,n as ne,o as C,t as w}from"./Auftraege-CEbGzmGA.js";var T={name:`chevron-right`,size:24,node:[[`path`,{d:`m9 18 6-6-6-6`,key:`mthhwq`}]]};T.node;var E=n(T),D=i(),O=r(o(),1),k=e(),A=[{id:`os`,name:`Betriebssystem`},{id:`engine`,name:`Motor (llama.cpp)`},{id:`swap`,name:`llama-swap`},{id:`hermes`,name:`Hermes`}],j={os:`Die Ubuntu-Pakete werden eingespielt, danach prüft die Box, ob die Modelle noch antworten. Das kann einige Minuten dauern.`,engine:`Der Motor wird ersetzt, llama-swap startet dafür neu und die Modelle sind kurz nicht erreichbar. Klappt die Prüfung danach nicht, holt die Box den alten Stand von selbst zurück.`,swap:`llama-swap wird ersetzt und startet neu, die Modelle sind kurz nicht erreichbar. Klappt die Prüfung danach nicht, holt die Box den alten Stand von selbst zurück.`,hermes:`Vorher wird gesichert. Dann wird Hermes aktualisiert und startet neu — Lucy ist dabei ein paar Minuten nicht erreichbar.`};function re(e){let n=(0,D.c)(7),{breit:r}=e,i=r===void 0?`w-16`:r,a;n[0]===i?a=n[1]:(a=t(`inline-block h-3.5 rounded bg-linie motion-safe:animate-pulse`,i),n[0]=i,n[1]=a);let o;n[2]===a?o=n[3]:(o=(0,k.jsx)(`span`,{"aria-hidden":!0,className:a}),n[2]=a,n[3]=o);let s;n[4]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,k.jsx)(`span`,{className:`sr-only`,children:`wird geprüft`}),n[4]=s):s=n[4];let c;return n[5]===o?c=n[6]:(c=(0,k.jsxs)(`span`,{className:`inline-flex items-center`,children:[o,s]}),n[5]=o,n[6]=c),c}function ie(e){let n=(0,D.c)(13),{text:r}=e,[i,a]=(0,O.useState)(!1),o;n[0]===r?o=n[1]:(o=r.split(` +`).length>3||r.length>240,n[0]=r,n[1]=o);let s=o,c=s&&!i&&`line-clamp-3`,l;n[2]===c?l=n[3]:(l=t(`m-0 whitespace-pre-line`,c),n[2]=c,n[3]=l);let u;n[4]!==l||n[5]!==r?(u=(0,k.jsx)(`p`,{className:l,children:r}),n[4]=l,n[5]=r,n[6]=u):u=n[6];let d;n[7]!==s||n[8]!==i?(d=s&&(0,k.jsx)(`button`,{type:`button`,"aria-expanded":i,onClick:()=>a(!i),className:`-mb-2 inline-flex h-11 items-center text-sm text-cyan hover:underline`,children:i?`Weniger zeigen`:`Ganze Zusammenfassung zeigen`}),n[7]=s,n[8]=i,n[9]=d):d=n[9];let f;return n[10]!==u||n[11]!==d?(f=(0,k.jsxs)(`div`,{className:`flex flex-col items-start`,children:[u,d]}),n[10]=u,n[11]=d,n[12]=f):f=n[12],f}function ae(e){let t=(0,D.c)(13),{d:n}=e,r;t[0]===n.packages?r=t[1]:(r=n.packages??[],t[0]=n.packages,t[1]=r);let i=r,a,o;if(t[2]!==n.held_back||t[3]!==i){o=Symbol.for(`react.early_return_sentinel`);bb0:{let e=n.held_back??[];if(i.length===0&&e.length===0){o=null;break bb0}let r;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,k.jsx)(E,{"aria-hidden":!0,className:`size-4 transition-transform group-open:rotate-90`}),t[6]=r):r=t[6];let s=i.length===1?`Das Paket ansehen`:`Alle ${i.length} Pakete ansehen`,c;t[7]===s?c=t[8]:(c=(0,k.jsxs)(`summary`,{className:`inline-flex h-11 cursor-pointer items-center gap-1 text-sm text-cyan hover:underline`,children:[r,s]}),t[7]=s,t[8]=c);let l;t[9]===i?l=t[10]:(l=i.map(N),t[9]=i,t[10]=l);let u;t[11]===l?u=t[12]:(u=(0,k.jsx)(`ul`,{className:`ziffern m-0 flex max-h-64 list-none flex-col gap-1 overflow-auto rounded-md border border-linie bg-[#0b0d0f] p-2.5 text-xs`,children:l}),t[11]=l,t[12]=u),a=(0,k.jsxs)(`details`,{className:`group`,children:[c,u,e.length>0&&(0,k.jsxs)(`p`,{className:`mt-2 text-xs text-text-3`,children:[`Dazu `,e.length===1?`kommt ein Paket`:`kommen ${e.length} Pakete`,`, die Ubuntu noch zurückhält (`,e.map(M).join(`, `),`). Die kommen von selbst, wenn Ubuntu sie freigibt.`]})]})}t[2]=n.held_back,t[3]=i,t[4]=a,t[5]=o}else a=t[4],o=t[5];return o===Symbol.for(`react.early_return_sentinel`)?a:o}function M(e){return e.name}function N(e){return(0,k.jsxs)(`li`,{className:`break-all`,children:[(0,k.jsx)(`span`,{className:`text-foreground`,children:e.name}),` `,(0,k.jsxs)(`span`,{className:`text-text-3`,children:[e.current,` → `,e.candidate]})]},e.name)}function oe(e){let t=(0,D.c)(6),{d:n}=e;if(n.action_needed===!1){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,k.jsx)(_,{art:`gruen`,children:`Nichts zu tun`}),t[0]=e):e=t[0],e}if(n.action_needed!==!0)return null;let r;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,k.jsx)(_,{art:`bernstein`,children:`Du musst etwas tun`}),t[1]=r):r=t[1];let i;t[2]===n.action_text?i=t[3]:(i=n.action_text&&(0,k.jsx)(`span`,{className:`text-bernstein`,children:n.action_text}),t[2]=n.action_text,t[3]=i);let a;return t[4]===i?a=t[5]:(a=(0,k.jsxs)(`span`,{className:`flex flex-col items-start gap-1.5`,children:[r,i]}),t[4]=i,t[5]=a),a}function P(e){let t=e?.trim();return t?t.startsWith(`(Zusammenfassung nicht verfügbar`)?`Die Zusammenfassung ist gerade nicht verfügbar.`:t:null}function F(e){let t=(0,D.c)(63),{id:n,name:r,details:i,hatUpdate:o,neuLautStart:s,fest:c,gesperrt:l,onStart:u,onFreigeben:d}=e,f=i.data,p=i.isPending,m=i.isError?i.error.message:f?.error,ee;t[0]!==f||t[1]!==n?(ee=f?x(n,f):null,t[0]=f,t[1]=n,t[2]=ee):ee=t[2];let h=ee,g=o?h?.neu??s??null:null,te=f?.summary,_;t[3]===te?_=t[4]:(_=P(te),t[3]=te,t[4]=_);let v=_,y=h&&h.laeuft!==`–`?h.laeuft:m?`unbekannt`:`–`,b;t[5]!==p||t[6]!==y?(b=p?(0,k.jsx)(re,{}):(0,k.jsx)(k.Fragment,{children:y}),t[5]=p,t[6]=y,t[7]=b):b=t[7];let S=b,ne;t[8]!==m||t[9]!==p||t[10]!==g?(ne=p?(0,k.jsx)(re,{breit:`w-20`}):g?(0,k.jsx)(`span`,{className:`text-cyan`,children:g}):m?(0,k.jsx)(`span`,{className:`text-bernstein`,children:`nicht geprüft`}):(0,k.jsx)(`span`,{className:`text-text-3`,children:`–`}),t[8]=m,t[9]=p,t[10]=g,t[11]=ne):ne=t[11];let w=ne,T;if(p){let e;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,k.jsx)(`span`,{className:`text-text-3`,children:`Wird geprüft …`}),t[12]=e):e=t[12],T=e}else if(m&&!o){let e;t[13]===m?e=t[14]:(e=C(m),t[13]=m,t[14]=e);let n;t[15]===e?n=t[16]:(n=(0,k.jsx)(`span`,{className:`text-bernstein`,children:e}),t[15]=e,t[16]=n),T=n}else if(!o)T=`Aktuell.`;else{let e;t[17]===m?e=t[18]:(e=m&&(0,k.jsx)(`span`,{className:`text-bernstein`,children:C(m)}),t[17]=m,t[18]=e);let r;t[19]===f?r=t[20]:(r=f&&(0,k.jsx)(oe,{d:f}),t[19]=f,t[20]=r);let i;t[21]!==f||t[22]!==n||t[23]!==v?(i=n===`os`?(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(`span`,{children:f?.count?`${f.count} ${f.count===1?`Paket`:`Pakete`} aus Ubuntu.`:`Neue Pakete aus Ubuntu.`}),f&&(0,k.jsx)(ae,{d:f})]}):v?(0,k.jsx)(ie,{text:v}):null,t[21]=f,t[22]=n,t[23]=v,t[24]=i):i=t[24];let a;t[25]!==e||t[26]!==r||t[27]!==i?(a=(0,k.jsxs)(`div`,{className:`flex flex-col items-start gap-2`,children:[e,r,i]}),t[25]=e,t[26]=r,t[27]=i,t[28]=a):a=t[28],T=a}let E=p||void 0,O;t[29]===r?O=t[30]:(O=(0,k.jsx)(`span`,{role:`rowheader`,className:`text-[15px] font-semibold`,children:r}),t[29]=r,t[30]=O);let A;t[31]!==m||t[32]!==p||t[33]!==g||t[34]!==w?(A=!p&&(g||m)&&(0,k.jsxs)(k.Fragment,{children:[` `,g?`→`:`·`,` `,w]}),t[31]=m,t[32]=p,t[33]=g,t[34]=w,t[35]=A):A=t[35];let j;t[36]!==S||t[37]!==A?(j=(0,k.jsxs)(`span`,{role:`cell`,className:`ziffern -mt-1 text-sm text-text-2 md:hidden`,children:[S,A]}),t[36]=S,t[37]=A,t[38]=j):j=t[38];let M;t[39]===S?M=t[40]:(M=(0,k.jsx)(`span`,{role:`cell`,className:`ziffern hidden text-sm text-text-2 md:block`,children:S}),t[39]=S,t[40]=M);let N;t[41]===w?N=t[42]:(N=(0,k.jsx)(`span`,{role:`cell`,className:`ziffern hidden text-sm md:block`,children:w}),t[41]=w,t[42]=N);let F;t[43]!==c||t[44]!==r?(F=c&&(0,k.jsxs)(`span`,{className:`mb-1.5 block text-bernstein`,children:[`Festgehalten seit `,c.seit,` auf `,c.version,`: `,c.grund,`. Der Sonntags-Lauf überspringt `,r,`.`]}),t[43]=c,t[44]=r,t[45]=F):F=t[45];let I;t[46]!==F||t[47]!==T?(I=(0,k.jsxs)(`div`,{role:`cell`,className:`text-sm leading-relaxed text-text-2`,children:[F,T]}),t[46]=F,t[47]=T,t[48]=I):I=t[48];let L;t[49]!==c||t[50]!==l||t[51]!==o||t[52]!==d||t[53]!==u?(L=(c||o)&&(0,k.jsxs)(`span`,{role:`cell`,className:`flex flex-wrap gap-2 md:flex-col md:items-end`,children:[c&&(0,k.jsx)(a,{variant:`outline`,size:`sm`,onClick:d,children:`Freigeben`}),o&&(0,k.jsx)(a,{variant:`outline`,size:`sm`,onClick:u,disabled:l,children:`Aktualisieren`})]}),t[49]=c,t[50]=l,t[51]=o,t[52]=d,t[53]=u,t[54]=L):L=t[54];let R;return t[55]!==M||t[56]!==N||t[57]!==I||t[58]!==L||t[59]!==E||t[60]!==O||t[61]!==j?(R=(0,k.jsxs)(`div`,{role:`row`,"aria-busy":E,className:`grid grid-cols-1 gap-x-4 gap-y-2 border-t border-linie py-3.5 md:grid-cols-[170px_100px_170px_minmax(0,1fr)_auto] md:items-start`,children:[O,j,M,N,I,L]}),t[55]=M,t[56]=N,t[57]=I,t[58]=L,t[59]=E,t[60]=O,t[61]=j,t[62]=R):R=t[62],R}var I={rot:`rot`,gelb:`bernstein`,gruen:`gruen`,info:`cyan`,grau:`grau`},L={rot:`bg-rot`,gelb:`bg-bernstein`,gruen:`bg-gruen`,info:`bg-cyan`,grau:`bg-text-3`};function R(e){let t=(0,D.c)(19),{lauf:n}=e,r;t[0]===n.start?r=t[1]:(r=v(n.start),t[0]=n.start,t[1]=r);let i;t[2]===r?i=t[3]:(i=(0,k.jsx)(`span`,{className:`ziffern col-start-1 row-start-1 text-sm text-text-3`,children:r}),t[2]=r,t[3]=i);let a;t[4]===n.anlass?a=t[5]:(a=(0,k.jsx)(`span`,{className:`col-span-2 row-start-2 min-w-0 text-[15px] break-words @sm:col-span-1 @sm:col-start-2 @sm:row-start-1`,children:n.anlass}),t[4]=n.anlass,t[5]=a);let o=I[n.stufe],s;t[6]!==n.titel||t[7]!==o?(s=(0,k.jsx)(`span`,{className:`col-start-2 row-start-1 justify-self-end @sm:col-start-3`,children:(0,k.jsx)(_,{art:o,children:n.titel})}),t[6]=n.titel,t[7]=o,t[8]=s):s=t[8];let c;t[9]!==i||t[10]!==a||t[11]!==s?(c=(0,k.jsxs)(`div`,{className:`grid grid-cols-[minmax(0,1fr)_auto] items-center gap-x-3 gap-y-1 @sm:grid-cols-[112px_minmax(0,1fr)_auto]`,children:[i,a,s]}),t[9]=i,t[10]=a,t[11]=s,t[12]=c):c=t[12];let l;t[13]!==n.stufe||t[14]!==n.zeilen?(l=n.stufe!==`grau`&&n.zeilen.length>0&&(0,k.jsx)(`ul`,{className:`m-0 flex list-none flex-col gap-1 p-0 @sm:pl-[124px]`,children:n.zeilen.map(se)}),t[13]=n.stufe,t[14]=n.zeilen,t[15]=l):l=t[15];let u;return t[16]!==c||t[17]!==l?(u=(0,k.jsxs)(`li`,{className:`flex flex-col gap-2 border-t border-linie py-3`,children:[c,l]}),t[16]=c,t[17]=l,t[18]=u):u=t[18],u}function se(e){return(0,k.jsxs)(`li`,{className:`flex items-baseline gap-2 text-sm leading-snug text-text-2`,children:[(0,k.jsx)(`span`,{"aria-hidden":!0,className:t(`size-1.5 shrink-0 -translate-y-px rounded-full`,L[e.stufe])}),(0,k.jsxs)(`span`,{className:`min-w-0 break-words`,children:[(0,k.jsx)(`span`,{className:`text-foreground`,children:e.baustein}),` · `,e.text]})]},`${e.baustein}-${e.text}`)}function ce(e){return e.mtime?v(new Date(e.mtime*1e3).toISOString()):e.snapshot}function z(){let e=(0,D.c)(126),t=te(),n=c(!0).data?.update_fenster,r=l(),i=f(),o=u(),_=m(),v=s(),y=d(),x=ee(),[S,C]=(0,O.useState)(null),T;e[0]===t.data?.updates.bausteine?T=e[1]:(T=new Map((t.data?.updates.bausteine??[]).map(me)),e[0]=t.data?.updates.bausteine,e[1]=T);let E=T,re=new Map((t.data?.updates.festgehalten??[]).map(pe)),ie;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(ie=A.map(fe),e[2]=ie):ie=e[2];let ae=p(ie),M;e[3]!==ae||e[4]!==E?(M=(e,t)=>ne(e.id,ae[t].data)??E.has(e.id),e[3]=ae,e[4]=E,e[5]=M):M=e[5];let N=A.map(M),oe;e[6]===r.data?.jobs?oe=e[7]:(oe=r.data?.jobs??[],e[6]=r.data?.jobs,e[7]=oe);let P=oe,I;e[8]!==P||e[9]!==t.data?.zustand?(I=P.some(de)||(t.data?.zustand.update_laeuft??!1),e[8]=P,e[9]=t.data?.zustand,e[10]=I):I=e[10];let L=I,R;e[11]===P?R=e[12]:(R=P.some(ue),e[11]=P,e[12]=R);let se=R,z=L||_.isPending,B=o.data?.available??!1,V;if(t.isPending){let t;e[13]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,k.jsx)(h,{text:`Updates werden gelesen …`}),e[13]=t):t=e[13],V=t}else if(t.isError&&!t.data){let n=`Die Box antwortet nicht: ${t.error.message}`,r;e[14]===n?r=e[15]:(r=(0,k.jsx)(h,{fehler:!0,text:n}),e[14]=n,e[15]=r),V=r}else{let t;e[16]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,k.jsxs)(`div`,{role:`row`,className:`schild hidden grid-cols-[170px_100px_170px_minmax(0,1fr)_auto] gap-x-4 pb-2 text-xs font-semibold text-text-3 md:grid`,children:[(0,k.jsx)(`span`,{role:`columnheader`,children:`Baustein`}),(0,k.jsx)(`span`,{role:`columnheader`,children:`Läuft`}),(0,k.jsx)(`span`,{role:`columnheader`,children:`Neu`}),(0,k.jsx)(`span`,{role:`columnheader`,children:`Was sich ändert`}),(0,k.jsx)(`span`,{role:`columnheader`,className:`sr-only`,children:`Aktion`})]}),e[16]=t):t=e[16],V=(0,k.jsxs)(`div`,{role:`table`,"aria-label":`Bausteine und ihre Updates`,className:`flex flex-col`,children:[t,A.map((e,t)=>(0,k.jsx)(F,{id:e.id,name:e.name,details:ae[t],hatUpdate:N[t],neuLautStart:E.get(e.id),fest:re.get(e.id),gesperrt:z,onStart:()=>C({art:`einzeln`,id:e.id,name:e.name}),onFreigeben:()=>{let t=re.get(e.id);t&&C({art:`freigeben`,id:e.id,name:e.name,grund:t.grund})}},e.id))]})}let H;if(i.isPending){let t;e[17]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,k.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Wird gelesen …`}),e[17]=t):t=e[17],H=t}else if(i.isError&&!i.data){let t;e[18]===i.error.message?t=e[19]:(t=(0,k.jsxs)(`p`,{role:`alert`,className:`text-[15px] text-rot-text`,children:[`Der Verlauf lässt sich gerade nicht lesen: `,i.error.message]}),e[18]=i.error.message,e[19]=t),H=t}else if(i.data?.laeufe.length){let t;e[21]===i.data.laeufe?t=e[22]:(t=i.data.laeufe.map(le),e[21]=i.data.laeufe,e[22]=t);let n;e[23]===t?n=e[24]:(n=(0,k.jsx)(`ol`,{className:`@container m-0 flex list-none flex-col p-0`,children:t}),e[23]=t,e[24]=n),H=n}else{let t;e[20]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,k.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Noch keine Update-Läufe aufgezeichnet.`}),e[20]=t):t=e[20],H=t}let U;if(o.isPending){let t;e[25]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,k.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Wird gelesen …`}),e[25]=t):t=e[25],U=t}else if(o.isError&&!o.data){let t;e[26]===o.error.message?t=e[27]:(t=(0,k.jsxs)(`p`,{role:`alert`,className:`text-[15px] text-rot-text`,children:[`Die Sicherungen lassen sich gerade nicht lesen: `,o.error.message]}),e[26]=o.error.message,e[27]=t),U=t}else if(o.data?.backups.length){let t;if(e[29]!==o.data.backups||e[30]!==x.isPending||e[31]!==B){let n;e[33]!==x.isPending||e[34]!==B?(n=e=>(0,k.jsxs)(`li`,{className:`flex items-center justify-between gap-3 border-t border-linie py-2.5`,children:[(0,k.jsx)(`span`,{className:`ziffern text-sm`,children:ce(e)}),(0,k.jsxs)(`span`,{className:`flex items-center gap-3`,children:[(0,k.jsxs)(`span`,{className:`ziffern text-xs text-text-3`,children:[e.size_mb.toLocaleString(`de-DE`),` MB`]}),(0,k.jsx)(a,{variant:`ghost`,size:`sm`,disabled:!B||x.isPending,onClick:()=>C({art:`zurueck`,datei:e.file,zeit:ce(e)}),children:`Zurückspielen`})]})]},e.file),e[33]=x.isPending,e[34]=B,e[35]=n):n=e[35],t=o.data.backups.slice(0,5).map(n),e[29]=o.data.backups,e[30]=x.isPending,e[31]=B,e[32]=t}else t=e[32];let n;e[36]===t?n=e[37]:(n=(0,k.jsx)(`ul`,{className:`m-0 flex list-none flex-col p-0`,children:t}),e[36]=t,e[37]=n),U=n}else{let t;e[28]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,k.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Noch keine Sicherung vorhanden.`}),e[28]=t):t=e[28],U=t}let he=g,W;e[38]===_?W=e[39]:(W=()=>_.mutate(`pruefen`),e[38]=_,e[39]=W);let ge=_.isPending||se,_e=se?`Sucht …`:`Nach Neuem suchen`,G;e[40]!==_e||e[41]!==W||e[42]!==ge?(G=(0,k.jsx)(a,{variant:`outline`,onClick:W,disabled:ge,children:_e}),e[40]=_e,e[41]=W,e[42]=ge,e[43]=G):G=e[43];let ve=a,K;e[44]===Symbol.for(`react.memo_cache_sentinel`)?(K=()=>C({art:`alle`}),e[44]=K):K=e[44];let ye=z||!N.some(Boolean),q;e[45]!==ve||e[46]!==K||e[47]!==ye?(q=(0,k.jsx)(ve,{onClick:K,disabled:ye,children:`Alles jetzt aktualisieren`}),e[45]=ve,e[46]=K,e[47]=ye,e[48]=q):q=e[48];let J;e[49]!==G||e[50]!==q?(J=(0,k.jsxs)(`div`,{className:`flex flex-wrap gap-2.5`,children:[G,q]}),e[49]=G,e[50]=q,e[51]=J):J=e[51];let be=n?`Jeden ${n.tag_name} um ${n.uhrzeit} automatisch.`:`Einmal pro Woche automatisch.`,Y;e[52]===be?Y=e[53]:(Y=(0,k.jsxs)(`p`,{className:`-mt-2 text-[15px] text-text-2`,children:[be,` Vorher wird gesichert, danach geprüft.`]}),e[52]=be,e[53]=Y);let X;e[54]===L?X=e[55]:(X=L&&(0,k.jsx)(`p`,{role:`status`,className:`text-[15px] text-cyan`,children:`Gerade läuft ein Update. Weitere lassen sich erst starten, wenn es fertig ist.`}),e[54]=L,e[55]=X);let xe;e[56]===Symbol.for(`react.memo_cache_sentinel`)?(xe=(0,k.jsx)(w,{}),e[56]=xe):xe=e[56];let Z;e[57]!==he||e[58]!==J||e[59]!==Y||e[60]!==X||e[61]!==V?(Z=(0,k.jsxs)(he,{titel:`Updates`,rechts:J,children:[Y,X,V,xe]}),e[57]=he,e[58]=J,e[59]=Y,e[60]=X,e[61]=V,e[62]=Z):Z=e[62];let Q;e[63]===H?Q=e[64]:(Q=(0,k.jsx)(g,{titel:`Verlauf`,children:H}),e[63]=H,e[64]=Q);let Se;e[65]===y?Se=e[66]:(Se=()=>y.mutate(void 0),e[65]=y,e[66]=Se);let Ce=y.isPending?`Sichert …`:`Jetzt sichern`,we;e[67]!==y.isPending||e[68]!==Se||e[69]!==Ce?(we=(0,k.jsx)(a,{variant:`outline`,size:`sm`,onClick:Se,disabled:y.isPending,children:Ce}),e[67]=y.isPending,e[68]=Se,e[69]=Ce,e[70]=we):we=e[70];let Te;e[71]===Symbol.for(`react.memo_cache_sentinel`)?(Te=(0,k.jsx)(`p`,{className:`-mt-2 text-[15px] text-text-2`,children:`Täglich um 03:35, mit Kopie auf einem zweiten Gerät.`}),e[71]=Te):Te=e[71];let Ee;e[72]!==o.data||e[73]!==B?(Ee=o.data&&!B&&(0,k.jsx)(`p`,{className:`text-sm text-text-3`,children:`Zurückspielen geht nur auf der Box selbst.`}),e[72]=o.data,e[73]=B,e[74]=Ee):Ee=e[74];let De;e[75]!==U||e[76]!==we||e[77]!==Ee?(De=(0,k.jsxs)(g,{titel:`Sicherungen`,rechts:we,children:[Te,Ee,U]}),e[75]=U,e[76]=we,e[77]=Ee,e[78]=De):De=e[78];let Oe;e[79]!==Q||e[80]!==De?(Oe=(0,k.jsxs)(`div`,{className:`grid gap-5 md:gap-6 lg:grid-cols-[minmax(0,1.4fr)_minmax(0,1fr)]`,children:[Q,De]}),e[79]=Q,e[80]=De,e[81]=Oe):Oe=e[81];let ke=S?.art===`alle`,Ae;e[82]===Symbol.for(`react.memo_cache_sentinel`)?(Ae=()=>C(null),e[82]=Ae):Ae=e[82];let je;e[83]!==S?.art||e[84]!==_?(je=()=>{S?.art===`alle`&&_.mutate(`alle`),C(null)},e[83]=S?.art,e[84]=_,e[85]=je):je=e[85];let Me;e[86]!==z||e[87]!==ke||e[88]!==je?(Me=(0,k.jsx)(b,{offen:ke,titel:`Alles jetzt aktualisieren?`,text:`Motor, llama-swap, Hermes und Betriebssystem werden nacheinander aktualisiert, soweit es Neues gibt, und danach geprüft. Motor und llama-swap holen bei Problemen ihren alten Stand von selbst zurück, vor Hermes wird gesichert. Lucy ist dabei ein paar Minuten nicht erreichbar.`,knopf:`Aktualisieren`,gesperrt:z,onNein:Ae,onJa:je}),e[86]=z,e[87]=ke,e[88]=je,e[89]=Me):Me=e[89];let Ne=S?.art===`einzeln`,Pe=S?.art===`einzeln`?`${S.name} aktualisieren?`:``,Fe=S?.art===`einzeln`?j[S.id]??``:``,Ie;e[90]===Symbol.for(`react.memo_cache_sentinel`)?(Ie=()=>C(null),e[90]=Ie):Ie=e[90];let $;e[91]!==S||e[92]!==_?($=()=>{S?.art===`einzeln`&&_.mutate(S.id),C(null)},e[91]=S,e[92]=_,e[93]=$):$=e[93];let Le;e[94]!==z||e[95]!==Ne||e[96]!==Pe||e[97]!==Fe||e[98]!==$?(Le=(0,k.jsx)(b,{offen:Ne,titel:Pe,text:Fe,knopf:`Aktualisieren`,gesperrt:z,onNein:Ie,onJa:$}),e[94]=z,e[95]=Ne,e[96]=Pe,e[97]=Fe,e[98]=$,e[99]=Le):Le=e[99];let Re=S?.art===`freigeben`,ze=S?.art===`freigeben`?`${S.name} freigeben?`:``,Be=S?.art===`freigeben`?`Festgehalten wurde ${S.name}, weil: ${S.grund}. Nach dem Freigeben versucht der nächste Sonntags-Lauf das Update wieder.`:``,Ve;e[100]===Symbol.for(`react.memo_cache_sentinel`)?(Ve=()=>C(null),e[100]=Ve):Ve=e[100];let He;e[101]!==S||e[102]!==v?(He=()=>{S?.art===`freigeben`&&v.mutate(S.id),C(null)},e[101]=S,e[102]=v,e[103]=He):He=e[103];let Ue;e[104]!==v.isPending||e[105]!==Re||e[106]!==ze||e[107]!==Be||e[108]!==He?(Ue=(0,k.jsx)(b,{offen:Re,titel:ze,text:Be,knopf:`Freigeben`,gesperrt:v.isPending,onNein:Ve,onJa:He}),e[104]=v.isPending,e[105]=Re,e[106]=ze,e[107]=Be,e[108]=He,e[109]=Ue):Ue=e[109];let We=S?.art===`zurueck`,Ge=`Die Einstellungen von Hermes und llama-swap werden auf den Stand von ${S?.art===`zurueck`?S.zeit:``} gesetzt. Vorher wird der jetzige Stand gesichert. Die Dienste starten danach neu.`,Ke;e[110]===Symbol.for(`react.memo_cache_sentinel`)?(Ke=()=>C(null),e[110]=Ke):Ke=e[110];let qe;e[111]!==S||e[112]!==x?(qe=()=>{S?.art===`zurueck`&&x.mutate(S.datei),C(null)},e[111]=S,e[112]=x,e[113]=qe):qe=e[113];let Je;e[114]!==We||e[115]!==Ge||e[116]!==qe||e[117]!==x.isPending?(Je=(0,k.jsx)(b,{offen:We,gefahr:!0,titel:`Sicherung zurückspielen?`,text:Ge,knopf:`Zurückspielen`,gesperrt:x.isPending,onNein:Ke,onJa:qe}),e[114]=We,e[115]=Ge,e[116]=qe,e[117]=x.isPending,e[118]=Je):Je=e[118];let Ye;return e[119]!==Z||e[120]!==Oe||e[121]!==Me||e[122]!==Le||e[123]!==Ue||e[124]!==Je?(Ye=(0,k.jsxs)(k.Fragment,{children:[Z,Oe,Me,Le,Ue,Je]}),e[119]=Z,e[120]=Oe,e[121]=Me,e[122]=Le,e[123]=Ue,e[124]=Je,e[125]=Ye):Ye=e[125],Ye}function le(e){return(0,k.jsx)(R,{lauf:e},e.start)}function ue(e){return S(e)&&y(e)}function de(e){return e.group===`maintenance`&&y(e)}function fe(e){return e.id}function pe(e){return[e.baustein,e]}function me(e){return[e.id,e.neu]}export{z as UpdatesSeite}; \ No newline at end of file diff --git a/frontend/dist/assets/Updates-pvSCGi9I.js b/frontend/dist/assets/Updates-pvSCGi9I.js deleted file mode 100644 index f9f0148..0000000 --- a/frontend/dist/assets/Updates-pvSCGi9I.js +++ /dev/null @@ -1,2 +0,0 @@ -import{c as e,i as t,o as n,p as r,s as i,t as a,u as o}from"./button-BheHBEml.js";import{A as s,C as c,H as l,J as u,K as d,M as f,Q as p,W as m,Y as ee,Z as te,i as h,n as g,r as _,st as v,w as ne}from"./index-_ndC28sQ.js";import{t as y}from"./Bestaetigen-CE_3b0PK.js";import{c as b,i as x,n as re,o as S,t as C}from"./Auftraege-DzO2OZDP.js";var w={name:`chevron-right`,size:24,node:[[`path`,{d:`m9 18 6-6-6-6`,key:`mthhwq`}]]};w.node;var T=n(w),E=i(),D=r(o(),1),O=e(),k=[{id:`os`,name:`Betriebssystem`},{id:`engine`,name:`Motor (llama.cpp)`},{id:`swap`,name:`llama-swap`},{id:`hermes`,name:`Hermes`}],A={os:`Die Ubuntu-Pakete werden eingespielt, danach prüft die Box, ob die Modelle noch antworten. Das kann einige Minuten dauern.`,engine:`Der Motor wird ersetzt, llama-swap startet dafür neu und die Modelle sind kurz nicht erreichbar. Klappt die Prüfung danach nicht, holt die Box den alten Stand von selbst zurück.`,swap:`llama-swap wird ersetzt und startet neu, die Modelle sind kurz nicht erreichbar. Klappt die Prüfung danach nicht, holt die Box den alten Stand von selbst zurück.`,hermes:`Vorher wird gesichert. Dann wird Hermes aktualisiert und startet neu — Lucy ist dabei ein paar Minuten nicht erreichbar.`};function ie(e){let n=(0,E.c)(7),{breit:r}=e,i=r===void 0?`w-16`:r,a;n[0]===i?a=n[1]:(a=t(`inline-block h-3.5 rounded bg-linie motion-safe:animate-pulse`,i),n[0]=i,n[1]=a);let o;n[2]===a?o=n[3]:(o=(0,O.jsx)(`span`,{"aria-hidden":!0,className:a}),n[2]=a,n[3]=o);let s;n[4]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,O.jsx)(`span`,{className:`sr-only`,children:`wird geprüft`}),n[4]=s):s=n[4];let c;return n[5]===o?c=n[6]:(c=(0,O.jsxs)(`span`,{className:`inline-flex items-center`,children:[o,s]}),n[5]=o,n[6]=c),c}function ae(e){let n=(0,E.c)(13),{text:r}=e,[i,a]=(0,D.useState)(!1),o;n[0]===r?o=n[1]:(o=r.split(` -`).length>3||r.length>240,n[0]=r,n[1]=o);let s=o,c=s&&!i&&`line-clamp-3`,l;n[2]===c?l=n[3]:(l=t(`m-0 whitespace-pre-line`,c),n[2]=c,n[3]=l);let u;n[4]!==l||n[5]!==r?(u=(0,O.jsx)(`p`,{className:l,children:r}),n[4]=l,n[5]=r,n[6]=u):u=n[6];let d;n[7]!==s||n[8]!==i?(d=s&&(0,O.jsx)(`button`,{type:`button`,"aria-expanded":i,onClick:()=>a(!i),className:`-mb-2 inline-flex h-11 items-center text-sm text-cyan hover:underline`,children:i?`Weniger zeigen`:`Ganze Zusammenfassung zeigen`}),n[7]=s,n[8]=i,n[9]=d):d=n[9];let f;return n[10]!==u||n[11]!==d?(f=(0,O.jsxs)(`div`,{className:`flex flex-col items-start`,children:[u,d]}),n[10]=u,n[11]=d,n[12]=f):f=n[12],f}function oe(e){let t=(0,E.c)(13),{d:n}=e,r;t[0]===n.packages?r=t[1]:(r=n.packages??[],t[0]=n.packages,t[1]=r);let i=r,a,o;if(t[2]!==n.held_back||t[3]!==i){o=Symbol.for(`react.early_return_sentinel`);bb0:{let e=n.held_back??[];if(i.length===0&&e.length===0){o=null;break bb0}let r;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,O.jsx)(T,{"aria-hidden":!0,className:`size-4 transition-transform group-open:rotate-90`}),t[6]=r):r=t[6];let s=i.length===1?`Das Paket ansehen`:`Alle ${i.length} Pakete ansehen`,c;t[7]===s?c=t[8]:(c=(0,O.jsxs)(`summary`,{className:`inline-flex h-11 cursor-pointer items-center gap-1 text-sm text-cyan hover:underline`,children:[r,s]}),t[7]=s,t[8]=c);let l;t[9]===i?l=t[10]:(l=i.map(M),t[9]=i,t[10]=l);let u;t[11]===l?u=t[12]:(u=(0,O.jsx)(`ul`,{className:`ziffern m-0 flex max-h-64 list-none flex-col gap-1 overflow-auto rounded-md border border-linie bg-[#0b0d0f] p-2.5 text-xs`,children:l}),t[11]=l,t[12]=u),a=(0,O.jsxs)(`details`,{className:`group`,children:[c,u,e.length>0&&(0,O.jsxs)(`p`,{className:`mt-2 text-xs text-text-3`,children:[`Dazu `,e.length===1?`kommt ein Paket`:`kommen ${e.length} Pakete`,`, die Ubuntu noch zurückhält (`,e.map(j).join(`, `),`). Die kommen von selbst, wenn Ubuntu sie freigibt.`]})]})}t[2]=n.held_back,t[3]=i,t[4]=a,t[5]=o}else a=t[4],o=t[5];return o===Symbol.for(`react.early_return_sentinel`)?a:o}function j(e){return e.name}function M(e){return(0,O.jsxs)(`li`,{className:`break-all`,children:[(0,O.jsx)(`span`,{className:`text-foreground`,children:e.name}),` `,(0,O.jsxs)(`span`,{className:`text-text-3`,children:[e.current,` → `,e.candidate]})]},e.name)}function se(e){let t=(0,E.c)(6),{d:n}=e;if(n.action_needed===!1){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,O.jsx)(_,{art:`gruen`,children:`Nichts zu tun`}),t[0]=e):e=t[0],e}if(n.action_needed!==!0)return null;let r;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,O.jsx)(_,{art:`bernstein`,children:`Du musst etwas tun`}),t[1]=r):r=t[1];let i;t[2]===n.action_text?i=t[3]:(i=n.action_text&&(0,O.jsx)(`span`,{className:`text-bernstein`,children:n.action_text}),t[2]=n.action_text,t[3]=i);let a;return t[4]===i?a=t[5]:(a=(0,O.jsxs)(`span`,{className:`flex flex-col items-start gap-1.5`,children:[r,i]}),t[4]=i,t[5]=a),a}function N(e){let t=e?.trim();return t?t.startsWith(`(Zusammenfassung nicht verfügbar`)?`Die Zusammenfassung ist gerade nicht verfügbar.`:t:null}function P(e){let t=(0,E.c)(63),{id:n,name:r,details:i,hatUpdate:o,neuLautStart:s,fest:c,gesperrt:l,onStart:u,onFreigeben:d}=e,f=i.data,p=i.isPending,m=i.isError?i.error.message:f?.error,ee;t[0]!==f||t[1]!==n?(ee=f?b(n,f):null,t[0]=f,t[1]=n,t[2]=ee):ee=t[2];let te=ee,h=o?te?.neu??s??null:null,g=f?.summary,_;t[3]===g?_=t[4]:(_=N(g),t[3]=g,t[4]=_);let v=_,ne=te&&te.laeuft!==`–`?te.laeuft:m?`unbekannt`:`–`,y;t[5]!==p||t[6]!==ne?(y=p?(0,O.jsx)(ie,{}):(0,O.jsx)(O.Fragment,{children:ne}),t[5]=p,t[6]=ne,t[7]=y):y=t[7];let x=y,re;t[8]!==m||t[9]!==p||t[10]!==h?(re=p?(0,O.jsx)(ie,{breit:`w-20`}):h?(0,O.jsx)(`span`,{className:`text-cyan`,children:h}):m?(0,O.jsx)(`span`,{className:`text-bernstein`,children:`nicht geprüft`}):(0,O.jsx)(`span`,{className:`text-text-3`,children:`–`}),t[8]=m,t[9]=p,t[10]=h,t[11]=re):re=t[11];let C=re,w;if(p){let e;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,O.jsx)(`span`,{className:`text-text-3`,children:`Wird geprüft …`}),t[12]=e):e=t[12],w=e}else if(m&&!o){let e;t[13]===m?e=t[14]:(e=S(m),t[13]=m,t[14]=e);let n;t[15]===e?n=t[16]:(n=(0,O.jsx)(`span`,{className:`text-bernstein`,children:e}),t[15]=e,t[16]=n),w=n}else if(!o)w=`Aktuell.`;else{let e;t[17]===m?e=t[18]:(e=m&&(0,O.jsx)(`span`,{className:`text-bernstein`,children:S(m)}),t[17]=m,t[18]=e);let r;t[19]===f?r=t[20]:(r=f&&(0,O.jsx)(se,{d:f}),t[19]=f,t[20]=r);let i;t[21]!==f||t[22]!==n||t[23]!==v?(i=n===`os`?(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(`span`,{children:f?.count?`${f.count} ${f.count===1?`Paket`:`Pakete`} aus Ubuntu.`:`Neue Pakete aus Ubuntu.`}),f&&(0,O.jsx)(oe,{d:f})]}):v?(0,O.jsx)(ae,{text:v}):null,t[21]=f,t[22]=n,t[23]=v,t[24]=i):i=t[24];let a;t[25]!==e||t[26]!==r||t[27]!==i?(a=(0,O.jsxs)(`div`,{className:`flex flex-col items-start gap-2`,children:[e,r,i]}),t[25]=e,t[26]=r,t[27]=i,t[28]=a):a=t[28],w=a}let T=p||void 0,D;t[29]===r?D=t[30]:(D=(0,O.jsx)(`span`,{role:`rowheader`,className:`text-[15px] font-semibold`,children:r}),t[29]=r,t[30]=D);let k;t[31]!==m||t[32]!==p||t[33]!==h||t[34]!==C?(k=!p&&(h||m)&&(0,O.jsxs)(O.Fragment,{children:[` `,h?`→`:`·`,` `,C]}),t[31]=m,t[32]=p,t[33]=h,t[34]=C,t[35]=k):k=t[35];let A;t[36]!==x||t[37]!==k?(A=(0,O.jsxs)(`span`,{role:`cell`,className:`ziffern -mt-1 text-sm text-text-2 md:hidden`,children:[x,k]}),t[36]=x,t[37]=k,t[38]=A):A=t[38];let j;t[39]===x?j=t[40]:(j=(0,O.jsx)(`span`,{role:`cell`,className:`ziffern hidden text-sm text-text-2 md:block`,children:x}),t[39]=x,t[40]=j);let M;t[41]===C?M=t[42]:(M=(0,O.jsx)(`span`,{role:`cell`,className:`ziffern hidden text-sm md:block`,children:C}),t[41]=C,t[42]=M);let P;t[43]!==c||t[44]!==r?(P=c&&(0,O.jsxs)(`span`,{className:`mb-1.5 block text-bernstein`,children:[`Festgehalten seit `,c.seit,` auf `,c.version,`: `,c.grund,`. Der Sonntags-Lauf überspringt `,r,`.`]}),t[43]=c,t[44]=r,t[45]=P):P=t[45];let F;t[46]!==P||t[47]!==w?(F=(0,O.jsxs)(`div`,{role:`cell`,className:`text-sm leading-relaxed text-text-2`,children:[P,w]}),t[46]=P,t[47]=w,t[48]=F):F=t[48];let I;t[49]!==c||t[50]!==l||t[51]!==o||t[52]!==d||t[53]!==u?(I=(c||o)&&(0,O.jsxs)(`span`,{role:`cell`,className:`flex flex-wrap gap-2 md:flex-col md:items-end`,children:[c&&(0,O.jsx)(a,{variant:`outline`,size:`sm`,onClick:d,children:`Freigeben`}),o&&(0,O.jsx)(a,{variant:`outline`,size:`sm`,onClick:u,disabled:l,children:`Aktualisieren`})]}),t[49]=c,t[50]=l,t[51]=o,t[52]=d,t[53]=u,t[54]=I):I=t[54];let L;return t[55]!==j||t[56]!==M||t[57]!==F||t[58]!==I||t[59]!==T||t[60]!==D||t[61]!==A?(L=(0,O.jsxs)(`div`,{role:`row`,"aria-busy":T,className:`grid grid-cols-1 gap-x-4 gap-y-2 border-t border-linie py-3.5 md:grid-cols-[170px_100px_170px_minmax(0,1fr)_auto] md:items-start`,children:[D,A,j,M,F,I]}),t[55]=j,t[56]=M,t[57]=F,t[58]=I,t[59]=T,t[60]=D,t[61]=A,t[62]=L):L=t[62],L}var F={rot:`rot`,gelb:`bernstein`,gruen:`gruen`,info:`cyan`,grau:`grau`},I={rot:`bg-rot`,gelb:`bg-bernstein`,gruen:`bg-gruen`,info:`bg-cyan`,grau:`bg-text-3`};function L(e){let t=(0,E.c)(19),{lauf:n}=e,r;t[0]===n.start?r=t[1]:(r=p(n.start),t[0]=n.start,t[1]=r);let i;t[2]===r?i=t[3]:(i=(0,O.jsx)(`span`,{className:`ziffern col-start-1 row-start-1 text-sm text-text-3`,children:r}),t[2]=r,t[3]=i);let a;t[4]===n.anlass?a=t[5]:(a=(0,O.jsx)(`span`,{className:`col-span-2 row-start-2 min-w-0 text-[15px] break-words @sm:col-span-1 @sm:col-start-2 @sm:row-start-1`,children:n.anlass}),t[4]=n.anlass,t[5]=a);let o=F[n.stufe],s;t[6]!==n.titel||t[7]!==o?(s=(0,O.jsx)(`span`,{className:`col-start-2 row-start-1 justify-self-end @sm:col-start-3`,children:(0,O.jsx)(_,{art:o,children:n.titel})}),t[6]=n.titel,t[7]=o,t[8]=s):s=t[8];let c;t[9]!==i||t[10]!==a||t[11]!==s?(c=(0,O.jsxs)(`div`,{className:`grid grid-cols-[minmax(0,1fr)_auto] items-center gap-x-3 gap-y-1 @sm:grid-cols-[112px_minmax(0,1fr)_auto]`,children:[i,a,s]}),t[9]=i,t[10]=a,t[11]=s,t[12]=c):c=t[12];let l;t[13]!==n.stufe||t[14]!==n.zeilen?(l=n.stufe!==`grau`&&n.zeilen.length>0&&(0,O.jsx)(`ul`,{className:`m-0 flex list-none flex-col gap-1 p-0 @sm:pl-[124px]`,children:n.zeilen.map(ce)}),t[13]=n.stufe,t[14]=n.zeilen,t[15]=l):l=t[15];let u;return t[16]!==c||t[17]!==l?(u=(0,O.jsxs)(`li`,{className:`flex flex-col gap-2 border-t border-linie py-3`,children:[c,l]}),t[16]=c,t[17]=l,t[18]=u):u=t[18],u}function ce(e){return(0,O.jsxs)(`li`,{className:`flex items-baseline gap-2 text-sm leading-snug text-text-2`,children:[(0,O.jsx)(`span`,{"aria-hidden":!0,className:t(`size-1.5 shrink-0 -translate-y-px rounded-full`,I[e.stufe])}),(0,O.jsxs)(`span`,{className:`min-w-0 break-words`,children:[(0,O.jsx)(`span`,{className:`text-foreground`,children:e.baustein}),` · `,e.text]})]},`${e.baustein}-${e.text}`)}function le(e){return e.mtime?p(new Date(e.mtime*1e3).toISOString()):e.snapshot}function R(){let e=(0,E.c)(126),t=m(),n=c(!0).data?.update_fenster,r=f(),i=ee(),o=l(),p=u(),_=ne(),v=s(),b=te(),[x,S]=(0,D.useState)(null),w;e[0]===t.data?.updates.bausteine?w=e[1]:(w=new Map((t.data?.updates.bausteine??[]).map(he)),e[0]=t.data?.updates.bausteine,e[1]=w);let T=w,ie=new Map((t.data?.updates.festgehalten??[]).map(me)),ae;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(ae=k.map(pe),e[2]=ae):ae=e[2];let oe=d(ae),j;e[3]!==oe||e[4]!==T?(j=(e,t)=>re(e.id,oe[t].data)??T.has(e.id),e[3]=oe,e[4]=T,e[5]=j):j=e[5];let M=k.map(j),se;e[6]===r.data?.jobs?se=e[7]:(se=r.data?.jobs??[],e[6]=r.data?.jobs,e[7]=se);let N=se,F;e[8]!==N||e[9]!==t.data?.zustand?(F=N.some(fe)||(t.data?.zustand.update_laeuft??!1),e[8]=N,e[9]=t.data?.zustand,e[10]=F):F=e[10];let I=F,L;e[11]===N?L=e[12]:(L=N.some(de),e[11]=N,e[12]=L);let ce=L,R=I||p.isPending,z=o.data?.available??!1,B;if(t.isPending){let t;e[13]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,O.jsx)(h,{text:`Updates werden gelesen …`}),e[13]=t):t=e[13],B=t}else if(t.isError&&!t.data){let n=`Die Box antwortet nicht: ${t.error.message}`,r;e[14]===n?r=e[15]:(r=(0,O.jsx)(h,{fehler:!0,text:n}),e[14]=n,e[15]=r),B=r}else{let t;e[16]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,O.jsxs)(`div`,{role:`row`,className:`schild hidden grid-cols-[170px_100px_170px_minmax(0,1fr)_auto] gap-x-4 pb-2 text-xs font-semibold text-text-3 md:grid`,children:[(0,O.jsx)(`span`,{role:`columnheader`,children:`Baustein`}),(0,O.jsx)(`span`,{role:`columnheader`,children:`Läuft`}),(0,O.jsx)(`span`,{role:`columnheader`,children:`Neu`}),(0,O.jsx)(`span`,{role:`columnheader`,children:`Was sich ändert`}),(0,O.jsx)(`span`,{role:`columnheader`,className:`sr-only`,children:`Aktion`})]}),e[16]=t):t=e[16],B=(0,O.jsxs)(`div`,{role:`table`,"aria-label":`Bausteine und ihre Updates`,className:`flex flex-col`,children:[t,k.map((e,t)=>(0,O.jsx)(P,{id:e.id,name:e.name,details:oe[t],hatUpdate:M[t],neuLautStart:T.get(e.id),fest:ie.get(e.id),gesperrt:R,onStart:()=>S({art:`einzeln`,id:e.id,name:e.name}),onFreigeben:()=>{let t=ie.get(e.id);t&&S({art:`freigeben`,id:e.id,name:e.name,grund:t.grund})}},e.id))]})}let V;if(i.isPending){let t;e[17]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,O.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Wird gelesen …`}),e[17]=t):t=e[17],V=t}else if(i.isError&&!i.data){let t;e[18]===i.error.message?t=e[19]:(t=(0,O.jsxs)(`p`,{role:`alert`,className:`text-[15px] text-rot-text`,children:[`Der Verlauf lässt sich gerade nicht lesen: `,i.error.message]}),e[18]=i.error.message,e[19]=t),V=t}else if(i.data?.laeufe.length){let t;e[21]===i.data.laeufe?t=e[22]:(t=i.data.laeufe.map(ue),e[21]=i.data.laeufe,e[22]=t);let n;e[23]===t?n=e[24]:(n=(0,O.jsx)(`ol`,{className:`@container m-0 flex list-none flex-col p-0`,children:t}),e[23]=t,e[24]=n),V=n}else{let t;e[20]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,O.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Noch keine Update-Läufe aufgezeichnet.`}),e[20]=t):t=e[20],V=t}let H;if(o.isPending){let t;e[25]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,O.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Wird gelesen …`}),e[25]=t):t=e[25],H=t}else if(o.isError&&!o.data){let t;e[26]===o.error.message?t=e[27]:(t=(0,O.jsxs)(`p`,{role:`alert`,className:`text-[15px] text-rot-text`,children:[`Die Sicherungen lassen sich gerade nicht lesen: `,o.error.message]}),e[26]=o.error.message,e[27]=t),H=t}else if(o.data?.backups.length){let t;if(e[29]!==o.data.backups||e[30]!==b.isPending||e[31]!==z){let n;e[33]!==b.isPending||e[34]!==z?(n=e=>(0,O.jsxs)(`li`,{className:`flex items-center justify-between gap-3 border-t border-linie py-2.5`,children:[(0,O.jsx)(`span`,{className:`ziffern text-sm`,children:le(e)}),(0,O.jsxs)(`span`,{className:`flex items-center gap-3`,children:[(0,O.jsxs)(`span`,{className:`ziffern text-xs text-text-3`,children:[e.size_mb.toLocaleString(`de-DE`),` MB`]}),(0,O.jsx)(a,{variant:`ghost`,size:`sm`,disabled:!z||b.isPending,onClick:()=>S({art:`zurueck`,datei:e.file,zeit:le(e)}),children:`Zurückspielen`})]})]},e.file),e[33]=b.isPending,e[34]=z,e[35]=n):n=e[35],t=o.data.backups.slice(0,5).map(n),e[29]=o.data.backups,e[30]=b.isPending,e[31]=z,e[32]=t}else t=e[32];let n;e[36]===t?n=e[37]:(n=(0,O.jsx)(`ul`,{className:`m-0 flex list-none flex-col p-0`,children:t}),e[36]=t,e[37]=n),H=n}else{let t;e[28]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,O.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Noch keine Sicherung vorhanden.`}),e[28]=t):t=e[28],H=t}let ge=g,U;e[38]===p?U=e[39]:(U=()=>p.mutate(`pruefen`),e[38]=p,e[39]=U);let _e=p.isPending||ce,ve=ce?`Sucht …`:`Nach Neuem suchen`,W;e[40]!==ve||e[41]!==U||e[42]!==_e?(W=(0,O.jsx)(a,{variant:`outline`,onClick:U,disabled:_e,children:ve}),e[40]=ve,e[41]=U,e[42]=_e,e[43]=W):W=e[43];let ye=a,G;e[44]===Symbol.for(`react.memo_cache_sentinel`)?(G=()=>S({art:`alle`}),e[44]=G):G=e[44];let be=R||!M.some(Boolean),K;e[45]!==ye||e[46]!==G||e[47]!==be?(K=(0,O.jsx)(ye,{onClick:G,disabled:be,children:`Alles jetzt aktualisieren`}),e[45]=ye,e[46]=G,e[47]=be,e[48]=K):K=e[48];let q;e[49]!==W||e[50]!==K?(q=(0,O.jsxs)(`div`,{className:`flex flex-wrap gap-2.5`,children:[W,K]}),e[49]=W,e[50]=K,e[51]=q):q=e[51];let xe=n?`Jeden ${n.tag_name} um ${n.uhrzeit} automatisch.`:`Einmal pro Woche automatisch.`,J;e[52]===xe?J=e[53]:(J=(0,O.jsxs)(`p`,{className:`-mt-2 text-[15px] text-text-2`,children:[xe,` Vorher wird gesichert, danach geprüft.`]}),e[52]=xe,e[53]=J);let Y;e[54]===I?Y=e[55]:(Y=I&&(0,O.jsx)(`p`,{role:`status`,className:`text-[15px] text-cyan`,children:`Gerade läuft ein Update. Weitere lassen sich erst starten, wenn es fertig ist.`}),e[54]=I,e[55]=Y);let Se;e[56]===Symbol.for(`react.memo_cache_sentinel`)?(Se=(0,O.jsx)(C,{}),e[56]=Se):Se=e[56];let X;e[57]!==ge||e[58]!==q||e[59]!==J||e[60]!==Y||e[61]!==B?(X=(0,O.jsxs)(ge,{titel:`Updates`,rechts:q,children:[J,Y,B,Se]}),e[57]=ge,e[58]=q,e[59]=J,e[60]=Y,e[61]=B,e[62]=X):X=e[62];let Z;e[63]===V?Z=e[64]:(Z=(0,O.jsx)(g,{titel:`Verlauf`,children:V}),e[63]=V,e[64]=Z);let Q;e[65]===v?Q=e[66]:(Q=()=>v.mutate(void 0),e[65]=v,e[66]=Q);let Ce=v.isPending?`Sichert …`:`Jetzt sichern`,$;e[67]!==v.isPending||e[68]!==Q||e[69]!==Ce?($=(0,O.jsx)(a,{variant:`outline`,size:`sm`,onClick:Q,disabled:v.isPending,children:Ce}),e[67]=v.isPending,e[68]=Q,e[69]=Ce,e[70]=$):$=e[70];let we;e[71]===Symbol.for(`react.memo_cache_sentinel`)?(we=(0,O.jsx)(`p`,{className:`-mt-2 text-[15px] text-text-2`,children:`Täglich um 03:35, mit Kopie auf einem zweiten Gerät.`}),e[71]=we):we=e[71];let Te;e[72]!==o.data||e[73]!==z?(Te=o.data&&!z&&(0,O.jsx)(`p`,{className:`text-sm text-text-3`,children:`Zurückspielen geht nur auf der Box selbst.`}),e[72]=o.data,e[73]=z,e[74]=Te):Te=e[74];let Ee;e[75]!==H||e[76]!==$||e[77]!==Te?(Ee=(0,O.jsxs)(g,{titel:`Sicherungen`,rechts:$,children:[we,Te,H]}),e[75]=H,e[76]=$,e[77]=Te,e[78]=Ee):Ee=e[78];let De;e[79]!==Z||e[80]!==Ee?(De=(0,O.jsxs)(`div`,{className:`grid gap-5 md:gap-6 lg:grid-cols-[minmax(0,1.4fr)_minmax(0,1fr)]`,children:[Z,Ee]}),e[79]=Z,e[80]=Ee,e[81]=De):De=e[81];let Oe=x?.art===`alle`,ke;e[82]===Symbol.for(`react.memo_cache_sentinel`)?(ke=()=>S(null),e[82]=ke):ke=e[82];let Ae;e[83]!==x?.art||e[84]!==p?(Ae=()=>{x?.art===`alle`&&p.mutate(`alle`),S(null)},e[83]=x?.art,e[84]=p,e[85]=Ae):Ae=e[85];let je;e[86]!==R||e[87]!==Oe||e[88]!==Ae?(je=(0,O.jsx)(y,{offen:Oe,titel:`Alles jetzt aktualisieren?`,text:`Motor, llama-swap, Hermes und Betriebssystem werden nacheinander aktualisiert, soweit es Neues gibt, und danach geprüft. Motor und llama-swap holen bei Problemen ihren alten Stand von selbst zurück, vor Hermes wird gesichert. Lucy ist dabei ein paar Minuten nicht erreichbar.`,knopf:`Aktualisieren`,gesperrt:R,onNein:ke,onJa:Ae}),e[86]=R,e[87]=Oe,e[88]=Ae,e[89]=je):je=e[89];let Me=x?.art===`einzeln`,Ne=x?.art===`einzeln`?`${x.name} aktualisieren?`:``,Pe=x?.art===`einzeln`?A[x.id]??``:``,Fe;e[90]===Symbol.for(`react.memo_cache_sentinel`)?(Fe=()=>S(null),e[90]=Fe):Fe=e[90];let Ie;e[91]!==x||e[92]!==p?(Ie=()=>{x?.art===`einzeln`&&p.mutate(x.id),S(null)},e[91]=x,e[92]=p,e[93]=Ie):Ie=e[93];let Le;e[94]!==R||e[95]!==Me||e[96]!==Ne||e[97]!==Pe||e[98]!==Ie?(Le=(0,O.jsx)(y,{offen:Me,titel:Ne,text:Pe,knopf:`Aktualisieren`,gesperrt:R,onNein:Fe,onJa:Ie}),e[94]=R,e[95]=Me,e[96]=Ne,e[97]=Pe,e[98]=Ie,e[99]=Le):Le=e[99];let Re=x?.art===`freigeben`,ze=x?.art===`freigeben`?`${x.name} freigeben?`:``,Be=x?.art===`freigeben`?`Festgehalten wurde ${x.name}, weil: ${x.grund}. Nach dem Freigeben versucht der nächste Sonntags-Lauf das Update wieder.`:``,Ve;e[100]===Symbol.for(`react.memo_cache_sentinel`)?(Ve=()=>S(null),e[100]=Ve):Ve=e[100];let He;e[101]!==x||e[102]!==_?(He=()=>{x?.art===`freigeben`&&_.mutate(x.id),S(null)},e[101]=x,e[102]=_,e[103]=He):He=e[103];let Ue;e[104]!==_.isPending||e[105]!==Re||e[106]!==ze||e[107]!==Be||e[108]!==He?(Ue=(0,O.jsx)(y,{offen:Re,titel:ze,text:Be,knopf:`Freigeben`,gesperrt:_.isPending,onNein:Ve,onJa:He}),e[104]=_.isPending,e[105]=Re,e[106]=ze,e[107]=Be,e[108]=He,e[109]=Ue):Ue=e[109];let We=x?.art===`zurueck`,Ge=`Die Einstellungen von Hermes und llama-swap werden auf den Stand von ${x?.art===`zurueck`?x.zeit:``} gesetzt. Vorher wird der jetzige Stand gesichert. Die Dienste starten danach neu.`,Ke;e[110]===Symbol.for(`react.memo_cache_sentinel`)?(Ke=()=>S(null),e[110]=Ke):Ke=e[110];let qe;e[111]!==x||e[112]!==b?(qe=()=>{x?.art===`zurueck`&&b.mutate(x.datei),S(null)},e[111]=x,e[112]=b,e[113]=qe):qe=e[113];let Je;e[114]!==We||e[115]!==Ge||e[116]!==qe||e[117]!==b.isPending?(Je=(0,O.jsx)(y,{offen:We,gefahr:!0,titel:`Sicherung zurückspielen?`,text:Ge,knopf:`Zurückspielen`,gesperrt:b.isPending,onNein:Ke,onJa:qe}),e[114]=We,e[115]=Ge,e[116]=qe,e[117]=b.isPending,e[118]=Je):Je=e[118];let Ye;return e[119]!==X||e[120]!==De||e[121]!==je||e[122]!==Le||e[123]!==Ue||e[124]!==Je?(Ye=(0,O.jsxs)(O.Fragment,{children:[X,De,je,Le,Ue,Je]}),e[119]=X,e[120]=De,e[121]=je,e[122]=Le,e[123]=Ue,e[124]=Je,e[125]=Ye):Ye=e[125],Ye}function ue(e){return(0,O.jsx)(L,{lauf:e},e.start)}function de(e){return x(e)&&v(e)}function fe(e){return e.group===`maintenance`&&v(e)}function pe(e){return e.id}function me(e){return[e.baustein,e]}function he(e){return[e.id,e.neu]}export{R as UpdatesSeite}; \ No newline at end of file diff --git a/frontend/dist/assets/index-BAH01Yfc.js b/frontend/dist/assets/index-BAH01Yfc.js new file mode 100644 index 0000000..f5f3e1b --- /dev/null +++ b/frontend/dist/assets/index-BAH01Yfc.js @@ -0,0 +1,11 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/Dienste-U6DJEyTa.js","assets/button-BheHBEml.js","assets/sheet-CKp82pOA.js","assets/dist-CtXmxyGa.js","assets/Einstellungen-CC0WNn2p.js","assets/Bestaetigen-CE_3b0PK.js","assets/MenueSchublade-BT67m9bh.js","assets/Protokollfenster-C5MkHrP6.js","assets/Updates-Bz_hFzqr.js","assets/Auftraege-CEbGzmGA.js","assets/Modelle-D7lkCzi4.js","assets/Homelab-vuFxJN2L.js"])))=>i.map(i=>d[i]); +import{a as e,c as t,d as n,i as r,l as i,o as a,p as o,s,t as c,u as l}from"./button-BheHBEml.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var u=n((e=>{function t(e,t){var n=e.length;e.push(t);a:for(;0>>1,a=e[r];if(0>>1;ri(c,n))li(u,c)?(e[r]=u,e[l]=n,r=l):(e[r]=c,e[s]=n,r=s);else if(li(u,n))e[r]=u,e[l]=n,r=l;else break a}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return n===0?e.id-t.id:n}if(e.unstable_now=void 0,typeof performance==`object`&&typeof performance.now==`function`){var a=performance;e.unstable_now=function(){return a.now()}}else{var o=Date,s=o.now();e.unstable_now=function(){return o.now()-s}}var c=[],l=[],u=1,d=null,f=3,p=!1,m=!1,h=!1,g=!1,_=typeof setTimeout==`function`?setTimeout:null,v=typeof clearTimeout==`function`?clearTimeout:null,y=typeof setImmediate<`u`?setImmediate:null;function b(e){for(var i=n(l);i!==null;){if(i.callback===null)r(l);else if(i.startTime<=e)r(l),i.sortIndex=i.expirationTime,t(c,i);else break;i=n(l)}}function x(e){if(h=!1,b(e),!m){if(n(c)!==null)m=!0,S||(S=!0,te());else{var t=n(l);t!==null&&re(x,t.startTime-e)}}}var S=!1,C=-1,w=5,T=-1;function ee(){return g?!0:!(e.unstable_now()-Tt&&ee());){var o=d.callback;if(typeof o==`function`){d.callback=null,f=d.priorityLevel;var s=o(d.expirationTime<=t);if(t=e.unstable_now(),typeof s==`function`){d.callback=s,b(t),i=!0;break b}d===n(c)&&r(c),b(t)}else r(c);d=n(c)}if(d!==null)i=!0;else{var u=n(l);u!==null&&re(x,u.startTime-t),i=!1}}break a}finally{d=null,f=a,p=!1}i=void 0}}finally{i?te():S=!1}}}var te;if(typeof y==`function`)te=function(){y(E)};else if(typeof MessageChannel<`u`){var D=new MessageChannel,ne=D.port2;D.port1.onmessage=E,te=function(){ne.postMessage(null)}}else te=function(){_(E,0)};function re(t,n){C=_(function(){t(e.unstable_now())},n)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(e){e.callback=null},e.unstable_forceFrameRate=function(e){0>e||125o?(r.sortIndex=a,t(l,r),n(c)===null&&r===n(l)&&(h?(v(C),C=-1):h=!0,re(x,a-o))):(r.sortIndex=s,t(c,r),m||p||(m=!0,S||(S=!0,te()))),r},e.unstable_shouldYield=ee,e.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}})),d=n(((e,t)=>{t.exports=u()})),f=n((e=>{var t=d(),n=l(),r=i();function a(e){var t=`https://react.dev/errors/`+e;if(1we||(e.current=Ce[we],Ce[we]=null,we--)}function j(e,t){we++,Ce[we]=e.current,e.current=t}var De=Te(null),Oe=Te(null),ke=Te(null),Ae=Te(null);function je(e,t){switch(j(ke,t),j(Oe,e),j(De,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?up(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=up(t),e=dp(t,e);else switch(e){case`svg`:e=1;break;case`math`:e=2;break;default:e=0}}Ee(De),j(De,e)}function Me(){Ee(De),Ee(Oe),Ee(ke)}function Ne(e){var t=e.memoizedState;t!==null&&(sh._currentValue=t.memoizedState,j(Ae,e)),t=De.current;var n=dp(t,e.type);t!==n&&(j(Oe,e),j(De,n))}function Pe(e){Oe.current===e&&(Ee(De),Ee(Oe)),Ae.current===e&&(Ee(Ae),sh._currentValue=A)}var Fe,Ie;function Le(e){if(Fe===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);Fe=t&&t[1]||``,Ie=-1)`:-1i||c[r]!==l[i]){var u=` +`+c[r].replace(` at new `,` at `);return e.displayName&&u.includes(``)&&(u=u.replace(``,e.displayName)),u}while(1<=r&&0<=i);break}}}finally{Re=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:``)?Le(n):``}function Be(e,t){switch(e.tag){case 26:case 27:case 5:return Le(e.type);case 16:return Le(`Lazy`);case 13:return e.child!==t&&t!==null?Le(`Suspense Fallback`):Le(`Suspense`);case 19:return Le(`SuspenseList`);case 0:case 15:return ze(e.type,!1);case 11:return ze(e.type.render,!1);case 1:return ze(e.type,!0);case 31:return Le(`Activity`);case 30:return Le(`ViewTransition`);default:return``}}function Ve(e){try{var t=``,n=null;do t+=Be(e,n),n=e,e=e.return;while(e);return t}catch(e){return` +Error generating stack: `+e.message+` +`+e.stack}}var He=Object.prototype.hasOwnProperty,Ue=t.unstable_scheduleCallback,We=t.unstable_cancelCallback,Ge=t.unstable_shouldYield,Ke=t.unstable_requestPaint,qe=t.unstable_now,Je=t.unstable_getCurrentPriorityLevel,Ye=t.unstable_ImmediatePriority,Xe=t.unstable_UserBlockingPriority,Ze=t.unstable_NormalPriority,Qe=t.unstable_LowPriority,$e=t.unstable_IdlePriority,et=t.log,tt=t.unstable_setDisableYieldValue,nt=null,rt=null;function it(e){if(typeof et==`function`&&tt(e),rt&&typeof rt.setStrictMode==`function`)try{rt.setStrictMode(nt,e)}catch{}}var at=Math.clz32?Math.clz32:ct,ot=Math.log,st=Math.LN2;function ct(e){return e>>>=0,e===0?32:31-(ot(e)/st|0)|0}var M=256,lt=262144,ut=4194304;function dt(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&-e;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function ft(e,t,n){var r=e.pendingLanes;if(r===0)return 0;var i=0,a=e.suspendedLanes,o=e.pingedLanes;e=e.warmLanes;var s=r&134217727;return s===0?(s=r&~a,s===0?o===0?n||(n=r&~e,n!==0&&(i=dt(n))):i=dt(o):i=dt(s)):(r=s&~a,r===0?(o&=s,o===0?n||(n=s&~e,n!==0&&(i=dt(n))):i=dt(o)):i=dt(r)),i===0?0:t!==0&&t!==i&&(t&a)===0&&(a=i&-i,n=t&-t,a>=n||a===32&&n&4194048)?t:i}function pt(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function mt(e,t){t&8&&(t|=t&32);var n=e.entangledLanes;if(n!==0)for(e=e.entanglements,n&=t;0n;n++)t.push(e);return t}function vt(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function yt(e,t,n,r,i,a){var o=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var s=e.entanglements,c=e.expirationTimes,l=e.hiddenUpdates;for(n=o&~n;0=vr),xr=` `,Sr=!1;function Cr(e,t){switch(e){case`keyup`:return gr.indexOf(t.keyCode)!==-1;case`keydown`:return t.keyCode!==229;case`keypress`:case`mousedown`:case`focusout`:return!0;default:return!1}}function wr(e){return e=e.detail,typeof e==`object`&&`data`in e?e.data:null}var Tr=!1;function Er(e,t){switch(e){case`compositionend`:return wr(t);case`keypress`:return t.which===32?(Sr=!0,xr):null;case`textInput`:return e=t.data,e===xr&&Sr?null:e;default:return null}}function Dr(e,t){if(Tr)return e===`compositionend`||!_r&&Cr(e,t)?(e=zn(),Rn=Ln=In=null,Tr=!1,e):null;switch(e){case`paste`:return null;case`keypress`:if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}a:{for(;n;){if(n.nextSibling){n=n.nextSibling;break a}n=n.parentNode}n=void 0}n=Xr(n)}}function Qr(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Qr(e,t.parentNode):`contains`in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function $r(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=Yr(e.document);t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href==`string`}catch{n=!1}if(n)e=t.contentWindow;else break;t=Yr(e.document)}return t}function ei(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t===`input`&&(e.type===`text`||e.type===`search`||e.type===`tel`||e.type===`url`||e.type===`password`)||t===`textarea`||e.contentEditable===`true`)}var ti=Nn&&`documentMode`in document&&11>=document.documentMode,ni=null,ri=null,ii=null,ai=!1;function oi(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;ai||ni==null||ni!==Yr(r)||(r=ni,`selectionStart`in r&&ei(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),ii&&Jr(ii,r)||(ii=r,r=Jf(ri,`onSelect`),0>=o,i-=o,na=1<<32-at(t)+i|n<h?(g=d,d=null):g=d.sibling;var _=p(i,d,s[h],c);if(_===null){d===null&&(d=g);break}e&&d&&_.alternate===null&&t(i,d),a=o(_,a,h),u===null?l=_:u.sibling=_,u=_,d=g}if(h===s.length)return n(i,d),F&&ia(i,h),l;if(d===null){for(;hg?(_=h,h=null):_=h.sibling;var y=p(i,h,v.value,l);if(y===null){h===null&&(h=_);break}e&&h&&y.alternate===null&&t(i,h),s=o(y,s,g),d===null?u=y:d.sibling=y,d=y,h=_}if(v.done)return n(i,h),F&&ia(i,g),u;if(h===null){for(;!v.done;g++,v=c.next())v=f(i,v.value,l),v!==null&&(s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return F&&ia(i,g),u}for(h=r(h);!v.done;g++,v=c.next())v=m(h,i,g,v.value,l),v!==null&&(e&&(_=v.alternate,_!==null&&h.delete(_.key===null?g:_.key)),s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return e&&h.forEach(function(e){return t(i,e)}),F&&ia(i,g),u}function _(e,r,o,c){if(typeof o==`object`&&o&&o.type===re&&o.key===null&&o.props.ref===void 0&&(o=o.props.children),typeof o==`object`&&o){switch(o.$$typeof){case D:a:{for(var l=o.key;r!==null;){if(r.key===l){if(l=o.type,l===re){if(r.tag===7){n(e,r.sibling),c=i(r,o.props.children),po(c,o),c.return=e,e=c;break a}}else if(r.elementType===l||typeof l==`object`&&l&&l.$$typeof===fe&&ao(l)===r.type){n(e,r.sibling),c=i(r,o.props),po(c,o),c.return=e,e=c;break a}n(e,r);break}t(e,r),r=r.sibling}o.type===re?(c=Ui(o.props.children,e.mode,c,o.key),po(c,o),c.return=e,e=c):(c=Hi(o.type,o.key,o.props,null,e.mode,c),po(c,o),c.return=e,e=c)}return s(e);case ne:a:{for(l=o.key;r!==null;){if(r.key===l){if(r.tag===4&&r.stateNode.containerInfo===o.containerInfo&&r.stateNode.implementation===o.implementation){n(e,r.sibling),c=i(r,o.children||[]),c.return=e,e=c;break a}n(e,r);break}t(e,r),r=r.sibling}c=Ki(o,e.mode,c),c.return=e,e=c}return s(e);case fe:return o=ao(o),_(e,r,o,c)}if(Se(o))return h(e,r,o,c);if(ye(o)){if(l=ye(o),typeof l!=`function`)throw Error(a(150));return o=l.call(o),g(e,r,o,c)}if(typeof o.then==`function`)return _(e,r,fo(o),c);if(o.$$typeof===se)return _(e,r,ja(e,o),c);L(e,o)}return typeof o==`string`&&o!==``||typeof o==`number`||typeof o==`bigint`?(o=``+o,r!==null&&r.tag===6?(n(e,r.sibling),c=i(r,o),c.return=e,e=c):(n(e,r),c=Wi(o,e.mode,c),c.return=e,e=c),s(e)):n(e,r)}return function(e,t,n,r){try{uo=0;var i=_(e,t,n,r);return lo=null,i}catch(t){if(t===$a||t===to)throw t;var a=Ri(29,t,null,e.mode);return a.lanes=r,a.return=e,a}}}var R=mo(!0),ho=mo(!1),go=!1;function _o(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function vo(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function yo(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function bo(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,K&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,t=Fi(e),Pi(e,null,n),t}return ji(e,r,t,n),Fi(e)}function xo(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,n&4194048)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,xt(e,n)}}function So(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,a=null;if(n=n.firstBaseUpdate,n!==null){do{var o={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};a===null?i=a=o:a=a.next=o,n=n.next}while(n!==null);a===null?i=a=t:a=a.next=t}else i=a=t;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:a,shared:r.shared,callbacks:r.callbacks},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var Co=!1;function wo(){if(Co){var e=Wa;if(e!==null)throw e}}function To(e,t,n,r){Co=!1;var i=e.updateQueue;go=!1;var a=i.firstBaseUpdate,o=i.lastBaseUpdate,s=i.shared.pending;if(s!==null){i.shared.pending=null;var c=s,l=c.next;c.next=null,o===null?a=l:o.next=l,o=c;var u=e.alternate;u!==null&&(u=u.updateQueue,s=u.lastBaseUpdate,s!==o&&(s===null?u.firstBaseUpdate=l:s.next=l,u.lastBaseUpdate=c))}if(a!==null){var d=i.baseState;o=0,u=l=c=null,s=a;do{var f=s.lane&-536870913,p=f!==s.lane;if(p?(Y&f)===f:(r&f)===f){f!==0&&f===I&&(Co=!0),u!==null&&(u=u.next={lane:0,tag:s.tag,payload:s.payload,callback:null,next:null});a:{var m=e,h=s;f=t;var g=n;switch(h.tag){case 1:if(m=h.payload,typeof m==`function`){d=m.call(g,d,f);break a}d=m;break a;case 3:m.flags=m.flags&-65537|128;case 0:if(m=h.payload,f=typeof m==`function`?m.call(g,d,f):m,f==null)break a;d=E({},d,f);break a;case 2:go=!0}}f=s.callback,f!==null&&(e.flags|=64,p&&(e.flags|=8192),p=i.callbacks,p===null?i.callbacks=[f]:p.push(f))}else p={lane:f,tag:s.tag,payload:s.payload,callback:s.callback,next:null},u===null?(l=u=p,c=d):u=u.next=p,o|=f;if(s=s.next,s===null){if(s=i.shared.pending,s===null)break;p=s,s=p.next,p.next=null,i.lastBaseUpdate=p,i.shared.pending=null}}while(1);u===null&&(c=d),i.baseState=c,i.firstBaseUpdate=l,i.lastBaseUpdate=u,a===null&&(i.shared.lanes=0),od|=o,e.lanes=o,e.memoizedState=d}}function Eo(e,t){if(typeof e!=`function`)throw Error(a(191,e));e.call(t)}function Do(e,t){var n=e.callbacks;if(n!==null)for(e.callbacks=null,e=0;ea?a:8;var o=O.T,s={};s.types=o===null?null:o.types,O.T=s,dc(e,!1,t,n);try{var c=i(),l=O.S;l!==null&&l(s,c),typeof c==`object`&&c&&typeof c.then==`function`?uc(e,t,qa(c,r),jd(e)):uc(e,t,r,jd(e))}catch(n){uc(e,t,{then:function(){},status:`rejected`,reason:n},jd())}finally{k.p=a,o!==null&&s.types!==null&&(o.types=s.types),O.T=o}}function ec(){}function tc(e,t,n,r){if(e.tag!==5)throw Error(a(476));var i=nc(e).queue;$s(e,i,t,A,n===null?ec:function(){return rc(e),n(r)})}function nc(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:A,baseState:A,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:fs,lastRenderedState:A},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:fs,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function rc(e){var t=nc(e);t.next===null&&(t=e.alternate.memoizedState),uc(e,t.next.queue,{},jd())}function ic(){return Aa(sh)}function ac(){return H().memoizedState}function oc(){return H().memoizedState}function sc(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=jd();e=yo(n);var r=bo(t,e,n);r!==null&&(Pd(r,t,n),xo(r,t,n)),t={cache:La()},e.payload=t;return}t=t.return}}function cc(e,t,n){var r=jd();n={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},fc(e)?pc(t,n):(n=Mi(e,t,n,r),n!==null&&(Pd(n,e,r),mc(n,t,r)))}function lc(e,t,n){uc(e,t,n,jd())}function uc(e,t,n,r){var i={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(fc(e))pc(t,i);else{var a=e.alternate;if(e.lanes===0&&(a===null||a.lanes===0)&&(a=t.lastRenderedReducer,a!==null))try{var o=t.lastRenderedState,s=a(o,n);if(i.hasEagerState=!0,i.eagerState=s,qr(s,o))return ji(e,t,i,0),q===null&&Ai(),!1}catch{}if(n=Mi(e,t,i,r),n!==null)return Pd(n,e,r),mc(n,t,r),!0}return!1}function dc(e,t,n,r){if(r={lane:2,revertLane:Pf(),gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},fc(e)){if(t)throw Error(a(479))}else t=Mi(e,n,r,2),t!==null&&Pd(t,e,2)}function fc(e){var t=e.alternate;return e===z||t!==null&&t===z}function pc(e,t){qo=Ko=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function mc(e,t,n){if(n&4194048){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,xt(e,n)}}var hc={readContext:Aa,use:us,useCallback:V,useContext:V,useEffect:V,useImperativeHandle:V,useLayoutEffect:V,useInsertionEffect:V,useMemo:V,useReducer:V,useRef:V,useState:V,useDebugValue:V,useDeferredValue:V,useTransition:V,useSyncExternalStore:V,useId:V,useHostTransitionStatus:V,useFormState:V,useActionState:V,useOptimistic:V,useMemoCache:V,useCacheRefresh:V,useEffectEvent:V},gc={readContext:Aa,use:us,useCallback:function(e,t){return ss().memoizedState=[e,t===void 0?null:t],e},useContext:Aa,useEffect:Bs,useImperativeHandle:function(e,t,n){n=n==null?null:n.concat([e]),Rs(4194308,4,Ks.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Rs(4194308,4,e,t)},useInsertionEffect:function(e,t){Rs(4,2,e,t)},useMemo:function(e,t){var n=ss();t=t===void 0?null:t;var r=e();if(Jo){it(!0);try{e()}finally{it(!1)}}return n.memoizedState=[r,t],r},useReducer:function(e,t,n){var r=ss();if(n!==void 0){var i=n(t);if(Jo){it(!0);try{n(t)}finally{it(!1)}}}else i=t;return r.memoizedState=r.baseState=i,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:i},r.queue=e,e=e.dispatch=cc.bind(null,z,e),[r.memoizedState,e]},useRef:function(e){var t=ss();return e={current:e},t.memoizedState=e},useState:function(e){e=Ss(e);var t=e.queue,n=lc.bind(null,z,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:Js,useDeferredValue:function(e,t){return Zs(ss(),e,t)},useTransition:function(){var e=Ss(!1);return e=$s.bind(null,z,e.queue,!0,!1),ss().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var r=z,i=ss();if(F){if(n===void 0)throw Error(a(407));n=n()}else{if(n=t(),q===null)throw Error(a(349));Y&127||_s(r,t,n)}i.memoizedState=n;var o={value:n,getSnapshot:t};return i.queue=o,Bs(ys.bind(null,r,o,e),[e]),r.flags|=2048,Is(9,{destroy:void 0},vs.bind(null,r,o,n,t),null),n},useId:function(){var e=ss(),t=q.identifierPrefix;if(F){var n=ra,r=na;n=(r&~(1<<32-at(r)-1)).toString(32)+n,t=`_`+t+`R_`+n,n=Yo++,0<\/script>`,o=o.removeChild(o.firstChild);break;case`select`:o=typeof r.is==`string`?s.createElement(`select`,{is:r.is}):s.createElement(`select`),r.multiple?o.multiple=!0:r.size&&(o.size=r.size);break;default:o=typeof r.is==`string`?s.createElement(i,{is:r.is}):s.createElement(i)}}o[Ot]=t,o[kt]=r;a:for(s=t.child;s!==null;){if(s.tag===5||s.tag===6)o.appendChild(s.stateNode);else if(s.tag!==4&&s.tag!==27&&s.child!==null){s.child.return=s,s=s.child;continue}if(s===t)break a;for(;s.sibling===null;){if(s.return===null||s.return===t)break a;s=s.return}s.sibling.return=s.return,s=s.sibling}t.stateNode=o;a:switch(np(o,i,r),i){case`button`:case`input`:case`select`:case`textarea`:r=!!r.autoFocus;break a;case`img`:r=!0;break a;default:r=!1}r&&ml(t)}}return U(t),t.subtreeFlags&=-33554433,hl(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==r&&ml(t);else{if(typeof r!=`string`&&t.stateNode===null)throw Error(a(166));if(e=ke.current,ga(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,i=la,i!==null)switch(i.tag){case 27:case 5:r=i.memoizedProps}e[Ot]=t,e=!!(e.nodeValue===n||r!==null&&!0===r.suppressHydrationWarning||ep(e.nodeValue,n)),e||pa(t,!0)}else e=lp(e).createTextNode(r),e[Ot]=t,t.stateNode=e}return U(t),null;case 31:if(n=t.memoizedState,e===null||e.memoizedState!==null){if(r=ga(t),n!==null){if(e===null){if(!r)throw Error(a(318));if(e=t.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(a(557));e[Ot]=t}else _a(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;U(t),e=!1}else n=va(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return t.flags&256?(zo(t),t):(zo(t),null);if(t.flags&128)throw Error(a(558))}return U(t),null;case 13:if(r=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(i=ga(t),r!==null&&r.dehydrated!==null){if(e===null){if(!i)throw Error(a(318));if(i=t.memoizedState,i=i===null?null:i.dehydrated,!i)throw Error(a(317));i[Ot]=t}else _a(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;U(t),i=!1}else i=va(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=i),i=!0;if(!i)return t.flags&256?(zo(t),t):(zo(t),null)}return zo(t),t.flags&128?(t.lanes=n,t):(n=r!==null,e=e!==null&&e.memoizedState!==null,n&&(r=t.child,i=null,r.alternate!==null&&r.alternate.memoizedState!==null&&r.alternate.memoizedState.cachePool!==null&&(i=r.alternate.memoizedState.cachePool.pool),o=null,r.memoizedState!==null&&r.memoizedState.cachePool!==null&&(o=r.memoizedState.cachePool.pool),o!==i&&(r.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),_l(t,t.updateQueue),U(t),null);case 4:return Me(),e===null&&Wf(t.stateNode.containerInfo),t.flags|=67108864,U(t),null;case 10:return wa(t.type),U(t),null;case 19:if(Ho(t),r=t.memoizedState,r===null)return U(t),null;if(i=!!(t.flags&128),o=r.rendering,o===null){if(i)vl(r,!1);else{if(ad!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(o=Uo(e),o!==null){for(t.flags|=128,vl(r,!1),e=o.updateQueue,t.updateQueue=e,_l(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)Vi(n,e),n=n.sibling;return Vo(t,Bo.current&1|2),F&&ia(t,r.treeForkCount),t.child}e=e.sibling}r.tail!==null&&qe()>gd&&(t.flags|=128,i=!0,vl(r,!1),t.lanes=4194304)}}else{if(!i){if(e=Uo(o),e!==null){if(t.flags|=128,i=!0,e=e.updateQueue,t.updateQueue=e,_l(t,e),vl(r,!0),r.tail===null&&r.tailMode!==`collapsed`&&r.tailMode!==`visible`&&!o.alternate&&!F)return U(t),null}else 2*qe()-r.renderingStartTime>gd&&n!==536870912&&(t.flags|=128,i=!0,vl(r,!1),t.lanes=4194304)}r.isBackwards?(o.sibling=t.child,t.child=o):(e=r.last,e===null?t.child=o:e.sibling=o,r.last=o)}if(r.tail!==null){e=r.tail;a:{for(n=e;n!==null;){if(n.alternate!==null){n=!1;break a}n=n.sibling}n=!0}return r.rendering=e,r.tail=e.sibling,r.renderingStartTime=qe(),e.sibling=null,o=Bo.current,o=i?o&1|2:o&1,r.tailMode===`visible`||r.tailMode===`collapsed`||!n||F?Vo(t,o):(n=o,j(No,t),j(Bo,n),Po===null&&(Po=t)),F&&ia(t,r.treeForkCount),e}return U(t),null;case 22:case 23:return zo(t),Mo(),r=t.memoizedState!==null,e===null?r&&(t.flags|=8192):e.memoizedState!==null!==r&&(t.flags|=8192),r?n&536870912&&!(t.flags&128)&&(U(t),t.subtreeFlags&6&&(t.flags|=8192)):U(t),n=t.updateQueue,n!==null&&_l(t,n.retryQueue),n=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),r=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),e!==null&&Ee(Ya),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),wa(Ia),U(t),null;case 25:return null;case 30:return t.flags|=33554432,U(t),null}throw Error(a(156,t.tag))}function bl(e,t){switch(sa(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return wa(Ia),Me(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return Pe(t),null;case 31:if(t.memoizedState!==null){if(zo(t),t.alternate===null)throw Error(a(340));_a()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(zo(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(a(340));_a()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return Ho(t),e=t.flags,e&65536?(t.flags=e&-65537|128,e=t.memoizedState,e!==null&&(e.rendering=null,e.tail=null),t.flags|=4,t):null;case 4:return Me(),null;case 10:return wa(t.type),null;case 22:case 23:return zo(t),Mo(),e!==null&&Ee(Ya),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return wa(Ia),null;case 25:return null;default:return null}}function xl(e,t){switch(sa(t),t.tag){case 3:wa(Ia),Me();break;case 26:case 27:case 5:Pe(t);break;case 4:Me();break;case 31:t.memoizedState!==null&&zo(t);break;case 13:zo(t);break;case 19:Ho(t);break;case 10:wa(t.type);break;case 22:case 23:zo(t),Mo(),e!==null&&Ee(Ya);break;case 24:wa(Ia)}}function Sl(e,t){try{var n=t.updateQueue,r=n===null?null:n.lastEffect;if(r!==null){var i=r.next;n=i;do{if((n.tag&e)===e){r=void 0;var a=n.create,o=n.inst;r=a(),o.destroy=r}n=n.next}while(n!==i)}}catch(e){Z(t,t.return,e)}}function Cl(e,t,n){try{var r=t.updateQueue,i=r===null?null:r.lastEffect;if(i!==null){var a=i.next;r=a;do{if((r.tag&e)===e){var o=r.inst,s=o.destroy;if(s!==void 0){o.destroy=void 0,i=t;var c=n,l=s;try{l()}catch(e){Z(i,c,e)}}}r=r.next}while(r!==a)}}catch(e){Z(t,t.return,e)}}function wl(e){var t=e.updateQueue;if(t!==null){var n=e.stateNode;try{Do(t,n)}catch(t){Z(e,e.return,t)}}}function Tl(e,t,n){n.props=Cc(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(n){Z(e,t,n)}}function El(e,t){try{var n=e.ref;if(n!==null){switch(e.tag){case 26:case 27:case 5:var r=e.stateNode;break;case 30:var i=e.stateNode,a=Ci(e.memoizedProps,i);(i.ref===null||i.ref.name!==a)&&(i.ref=Pp(a)),r=i.ref;break;case 7:if(e.stateNode===null){var o=new Fp(e);h(e.child,!1,Qp,o,void 0,void 0),e.stateNode=o}r=e.stateNode;break;default:r=e.stateNode}typeof n==`function`?e.refCleanup=n(r):n.current=r}}catch(n){Z(e,t,n)}}function Dl(e,t){var n=e.ref,r=e.refCleanup;if(n!==null){if(typeof r==`function`)try{r()}catch(n){Z(e,t,n)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof n==`function`)try{n(null)}catch(n){Z(e,t,n)}else n.current=null}}function Ol(e,t){if((e.tag===5||e.tag===27||e.tag===6)&&e.alternate===null&&t!==null)for(var n=0;n title`))),np(r,t,n),r[Ot]=e,Ht(r),t=r;break a;case`link`:if(o=Gm(`link`,`href`,i).get(t+(n.href||``))){for(s=0;sg&&(o=g,g=h,h=o);var _=Zr(s,h),v=Zr(s,g);if(_&&v&&(p.rangeCount!==1||p.anchorNode!==_.node||p.anchorOffset!==_.offset||p.focusNode!==v.node||p.focusOffset!==v.offset)){var y=d.createRange();y.setStart(_.node,_.offset),p.removeAllRanges(),h>g?(p.addRange(y),p.extend(v.node,v.offset)):(y.setEnd(v.node,v.offset),p.addRange(y))}}}}for(d=[],p=s;p=p.parentNode;)p.nodeType===1&&d.push({element:p,left:p.scrollLeft,top:p.scrollTop});for(typeof s.focus==`function`&&s.focus(),s=0;sn?32:n,O.T=null,n=wd,wd=null;var o=bd,s=Sd;if(yd=0,xd=bd=null,Sd=0,K&6)throw Error(a(331));var c=K;if(K|=4,Yu(o.current),Vu(o,o.current,s,n),K=c,Df(0,!1),rt&&typeof rt.onPostCommitFiberRoot==`function`)try{rt.onPostCommitFiberRoot(nt,o)}catch{}return!0}finally{k.p=i,O.T=r,uf(e,t)}}function pf(e,t,n){t=Ji(n,t),t=kc(e.stateNode,t,2),e=bo(e,t,2),e!==null&&(vt(e,2),Ef(e))}function Z(e,t,n){if(e.tag===3)pf(e,e,n);else for(;t!==null;){if(t.tag===3){pf(t,e,n);break}if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError==`function`||typeof r.componentDidCatch==`function`&&(vd===null||!vd.has(r))){e=Ji(n,e),n=Ac(2),r=bo(t,n,2),r!==null&&(jc(n,r,t,e),vt(r,2),Ef(r));break}}t=t.return}}function mf(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new $u;var i=new Set;r.set(t,i)}else i=r.get(t),i===void 0&&(i=new Set,r.set(t,i));i.has(n)||(rd=!0,i.add(n),e=hf.bind(null,e,t,n),t.then(e,e))}function hf(e,t,n){var r=e.pingCache;r!==null&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,q===e&&(Y&n)===n&&(ad===4||ad===3&&(Y&62914560)===Y&&300>qe()-md?K&2?cd|=n:Vd(e,0):cd|=n,ud===Y&&(ud=0)),Ef(e)}function gf(e,t){t===0&&(t=gt()),e=Ni(e,t),e!==null&&(vt(e,t),Ef(e))}function _f(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),gf(e,n)}function vf(e,t){var n=0;switch(e.tag){case 31:case 13:var r=e.stateNode,i=e.memoizedState;i!==null&&(n=i.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(a(314))}r!==null&&r.delete(t),gf(e,n)}function yf(e,t){return Ue(e,t)}var bf=null,xf=null,Sf=!1,Cf=!1,wf=!1,Tf=0;function Ef(e){e!==xf&&e.next===null&&(xf===null?bf=xf=e:xf=xf.next=e),Cf=!0,Sf||(Sf=!0,Nf())}function Df(e,t){if(!wf&&Cf){wf=!0;do for(var n=!1,r=bf;r!==null;){if(!t){if(e!==0){var i=r.pendingLanes;if(i===0)var a=0;else{var o=r.suspendedLanes,s=r.pingedLanes;a=(1<<31-at(42|e)+1)-1,a&=i&~(o&~s),a=a&201326741?a&201326741|1:a?a|2:0}a!==0&&(n=!0,Mf(r,a))}else a=Y,a=ft(r,r===q?a:0,r.cancelPendingCommit!==null||r.timeoutHandle!==-1),!(a&3)||pt(r,a)||(n=!0,Mf(r,a))}r=r.next}while(n);wf=!1}}function Of(){kf()}function kf(){Cf=Sf=!1;var e=0;Tf!==0&&hp()&&(e=Tf);for(var t=qe(),n=null,r=bf;r!==null;){var i=r.next,a=Af(r,t);a===0?(r.next=null,n===null?bf=i:n.next=i,i===null&&(xf=n)):(n=r,(e!==0||a&3)&&(Cf=!0)),r=i}yd!==0&&yd!==5||Df(e,!1),Tf!==0&&(Tf=0)}function Af(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,i=e.expirationTimes,a=e.pendingLanes&-62914561;0s)break;var u=c.transferSize,d=c.initiatorType;u&&ap(d)&&(c=c.responseEnd,o+=u*(c$m){s.length=o;break}f=new Promise(jp.bind(f)),s.push(f)}}}if(0`u`?null:document;function Tm(e,t,n){var r=wm;if(r&&typeof t==`string`&&t){var i=ln(t);i=`link[rel="`+e+`"][href="`+i+`"]`,typeof n==`string`&&(i+=`[crossorigin="`+n+`"]`),ym.has(i)||(ym.add(i),e={rel:e,crossOrigin:n,href:t},r.querySelector(i)===null&&(t=r.createElement(`link`),np(t,`link`,e),Ht(t),r.head.appendChild(t)))}}function Em(e){xm.D(e),Tm(`dns-prefetch`,e,null)}function Dm(e,t){xm.C(e,t),Tm(`preconnect`,e,t)}function Om(e,t,n){xm.L(e,t,n);var r=wm;if(r&&e&&t){var i=`link[rel="preload"][as="`+ln(t)+`"]`;t===`image`&&n&&n.imageSrcSet?(i+=`[imagesrcset="`+ln(n.imageSrcSet)+`"]`,typeof n.imageSizes==`string`&&(i+=`[imagesizes="`+ln(n.imageSizes)+`"]`)):i+=`[href="`+ln(e)+`"]`;var a=i;switch(t){case`style`:a=Pm(e);break;case`script`:a=Rm(e)}if(!(vm.has(a)||(e=E({rel:`preload`,href:t===`image`&&n&&n.imageSrcSet?void 0:e,as:t},n),vm.set(a,e),r.querySelector(i)!==null||t===`style`&&r.querySelector(Fm(a))||t===`script`&&r.querySelector(zm(a))))){var o=r.createElement(`link`);np(o,`link`,e),t===`style`&&(o[It]=!0,o.onload=o.onerror=function(){Ut(o)}),Ht(o),r.head.appendChild(o)}}}function km(e,t){xm.m(e,t);var n=wm;if(n&&e){var r=t&&typeof t.as==`string`?t.as:`script`,i=`link[rel="modulepreload"][as="`+ln(r)+`"][href="`+ln(e)+`"]`,a=i;switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:a=Rm(e)}if(!vm.has(a)&&(e=E({rel:`modulepreload`,href:e},t),vm.set(a,e),n.querySelector(i)===null)){switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:if(n.querySelector(zm(a)))return}r=n.createElement(`link`),np(r,`link`,e),Ht(r),n.head.appendChild(r)}}}function Am(e,t,n){xm.S(e,t,n);var r=wm;if(r&&e){var i=Vt(r).hoistableStyles,a=Pm(e);t||=`default`;var o=i.get(a);if(!o){var s={loading:0,preload:null};if(o=r.querySelector(Fm(a)))s.loading=5;else{e=E({rel:`stylesheet`,href:e,"data-precedence":t},n),(n=vm.get(a))&&Hm(e,n);var c=o=r.createElement(`link`);Ht(c),np(c,`link`,e),c._p=new Promise(function(e,t){c.onload=e,c.onerror=t}),c.addEventListener(`load`,function(){s.loading|=1}),c.addEventListener(`error`,function(){s.loading|=2}),s.loading|=4,Vm(o,t,r)}o={type:`stylesheet`,instance:o,count:1,state:s},i.set(a,o)}}}function jm(e,t){xm.X(e,t);var n=wm;if(n&&e){var r=Vt(n).hoistableScripts,i=Rm(e),a=r.get(i);a||(a=n.querySelector(zm(i)),a||(e=E({src:e,async:!0},t),(t=vm.get(i))&&Um(e,t),a=n.createElement(`script`),Ht(a),np(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function Mm(e,t){xm.M(e,t);var n=wm;if(n&&e){var r=Vt(n).hoistableScripts,i=Rm(e),a=r.get(i);a||(a=n.querySelector(zm(i)),a||(e=E({src:e,async:!0,type:`module`},t),(t=vm.get(i))&&Um(e,t),a=n.createElement(`script`),Ht(a),np(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function Nm(e,t,n,r){var i=(i=ke.current)?bm(i):null;if(!i)throw Error(a(446));switch(e){case`meta`:case`title`:return null;case`style`:return typeof n.precedence==`string`&&typeof n.href==`string`?(n=Pm(n.href),t=Vt(i).hoistableStyles,r=t.get(n),r||(r={type:`style`,instance:null,count:0,state:null},t.set(n,r)),r):{type:`void`,instance:null,count:0,state:null};case`link`:if(n.rel===`stylesheet`&&typeof n.href==`string`&&typeof n.precedence==`string`){e=Pm(n.href);var o=Vt(i).hoistableStyles,s=o.get(e);if(s||(i=i.ownerDocument||i,s={type:`stylesheet`,instance:null,count:0,state:{loading:0,preload:null}},o.set(e,s),(o=i.querySelector(Fm(e)))?o._p||(s.instance=o,s.state.loading=5):(o=vm.get(e),o||(o={rel:`preload`,as:`style`,href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},vm.set(e,o)),Lm(i,e,o,s.state))),t&&r===null)throw Error(a(528,``));return s}if(t&&r!==null)throw Error(a(529,``));return null;case`script`:return t=n.async,n=n.src,typeof n==`string`&&t&&typeof t!=`function`&&typeof t!=`symbol`?(n=Rm(n),t=Vt(i).hoistableScripts,r=t.get(n),r||(r={type:`script`,instance:null,count:0,state:null},t.set(n,r)),r):{type:`void`,instance:null,count:0,state:null};default:throw Error(a(444,e))}}function Pm(e){return`href="`+ln(e)+`"`}function Fm(e){return`link[rel="stylesheet"][`+e+`]`}function Im(e){return E({},e,{"data-precedence":e.precedence,precedence:null})}function Lm(e,t,n,r){if(t=e.querySelector(`link[rel="preload"][as="style"][`+t+`]`)){if(!0!==t[It]){r.loading=1;return}}else t=e.createElement(`link`),t[It]=!0,t.onload=t.onerror=Ut.bind(null,t),np(t,`link`,n),Ht(t),e.head.appendChild(t);r.preload=t,t.addEventListener(`load`,function(){return r.loading|=1}),t.addEventListener(`error`,function(){return r.loading|=2})}function Rm(e){return`[src="`+ln(e)+`"]`}function zm(e){return`script[async]`+e}function Bm(e,t,n){if(t.count++,t.instance===null)switch(t.type){case`style`:var r=e.querySelector(`style[data-href~="`+ln(n.href)+`"]`);if(r)return t.instance=r,Ht(r),r;var i=E({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return r=(e.ownerDocument||e).createElement(`style`),Ht(r),np(r,`style`,i),Vm(r,n.precedence,e),t.instance=r;case`stylesheet`:i=Pm(n.href);var o=e.querySelector(Fm(i));if(o)return t.state.loading|=4,t.instance=o,Ht(o),o;r=Im(n),(i=vm.get(i))&&Hm(r,i),o=(e.ownerDocument||e).createElement(`link`),Ht(o);var s=o;return s._p=new Promise(function(e,t){s.onload=e,s.onerror=t}),np(o,`link`,r),t.state.loading|=4,Vm(o,n.precedence,e),t.instance=o;case`script`:return o=Rm(n.src),(i=e.querySelector(zm(o)))?(t.instance=i,Ht(i),i):(r=n,(i=vm.get(o))&&(r=E({},n),Um(r,i)),e=e.ownerDocument||e,i=e.createElement(`script`),Ht(i),np(i,`link`,r),e.head.appendChild(i),t.instance=i);case`void`:return null;default:throw Error(a(443,t.type))}else t.type===`stylesheet`&&!(t.state.loading&4)&&(r=t.instance,t.state.loading|=4,Vm(r,n.precedence,e));return t.instance}function Vm(e,t,n){for(var r=n.querySelectorAll(`link[rel="stylesheet"][data-precedence],style[data-precedence]`),i=r.length?r[r.length-1]:null,a=i,o=0;o title`):null)}function qm(e,t,n){if(n===1||t.itemProp!=null)return!1;switch(e){case`meta`:case`title`:return!0;case`style`:if(typeof t.precedence!=`string`||typeof t.href!=`string`||t.href===``)break;return!0;case`link`:if(typeof t.rel!=`string`||typeof t.href!=`string`||t.href===``||t.onLoad||t.onError)break;switch(t.rel){case`stylesheet`:return e=t.disabled,typeof t.precedence==`string`&&e==null;default:return!0}case`script`:if(t.async&&typeof t.async!=`function`&&typeof t.async!=`symbol`&&!t.onLoad&&!t.onError&&t.src&&typeof t.src==`string`)return!0}return!1}function Jm(e,t){return e===`img`&&t.src!=null&&t.src!==``&&t.onLoad==null&&t.loading!==`lazy`}function Ym(e){return!(e.type===`stylesheet`&&!(e.state.loading&3))}function Xm(e){return(e.width||100)*(e.height||100)*(typeof devicePixelRatio==`number`?devicePixelRatio:1)*.25}function Zm(e,t){typeof t.decode==`function`&&(e.imgCount++,t.complete||(e.imgBytes+=Xm(t),e.suspenseyImages.push(t)),e=rh.bind(e),t.decode().then(e,e))}function Qm(e,t,n,r){if(n.type===`stylesheet`&&(typeof r.media!=`string`||!1!==matchMedia(r.media).matches)&&!(n.state.loading&4)){if(n.instance===null){var i=Pm(r.href),a=t.querySelector(Fm(i));if(a){t=a._p,typeof t==`object`&&t&&typeof t.then==`function`&&(e.count++,e=nh.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=a,Ht(a);return}a=t.ownerDocument||t,r=Im(r),(i=vm.get(i))&&Hm(r,i),a=a.createElement(`link`),Ht(a);var o=a;o._p=new Promise(function(e,t){o.onload=e,o.onerror=t}),np(a,`link`,r),n.instance=a}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(n,t),(t=n.state.preload)&&!(n.state.loading&3)&&(e.count++,n=nh.bind(e),t.addEventListener(`load`,n),t.addEventListener(`error`,n))}}var $m=0;function eh(e,t){return e.stylesheets&&e.count===0&&ah(e,e.stylesheets),0$m?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(r),clearTimeout(i)}}:null}function th(e){if(e.count===0&&(e.imgCount===0||!e.waitingForImages)){if(e.stylesheets)ah(e,e.stylesheets);else if(e.unsuspend){var t=e.unsuspend;e.unsuspend=null,t()}}}function nh(){this.count--,th(this)}function rh(){this.imgCount--,th(this)}var ih=null;function ah(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,ih=new Map,t.forEach(oh,e),ih=null,nh.call(e))}function oh(e,t){if(!(t.state.loading&4)){var n=ih.get(e);if(n)var r=n.get(null);else{n=new Map,ih.set(e,n);for(var i=e.querySelectorAll(`link[data-precedence],style[data-precedence]`),a=0;a{function n(){if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<`u`&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE==`function`)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=f()})),m=o(l(),1),h=t(),g=m.createContext(void 0),_=e=>{let t=m.useContext(g);if(e)return e;if(!t)throw Error(`No QueryClient set, use QueryClientProvider to set one`);return t},v=({client:e,children:t})=>(m.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]),(0,h.jsx)(g.Provider,{value:e,children:t})),y={setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e),setInterval:(e,t)=>setInterval(e,t),clearInterval:e=>clearInterval(e)},b=new class{#e=y;setTimeoutProvider(e){this.#e=e}setTimeout(e,t){return this.#e.setTimeout(e,t)}clearTimeout(e){this.#e.clearTimeout(e)}setInterval(e,t){return this.#e.setInterval(e,t)}clearInterval(e){this.#e.clearInterval(e)}};function x(e){setTimeout(e,0)}var S=typeof window>`u`||`Deno`in globalThis;function C(){}function w(e,t){return typeof e==`function`?e(t):e}function T(e){return typeof e==`number`&&e>=0&&e!==1/0}function ee(e,t){return Math.max(e+(t||0)-Date.now(),0)}function E(e,t){return typeof e==`function`?e(t):e}function te(e,t){let{type:n=`all`,exact:r,fetchStatus:i,predicate:a,queryKey:o,stale:s}=e;if(o){if(r){if(t.queryHash!==ne(o,t.options))return!1}else if(!ie(t.queryKey,o))return!1}if(n!==`all`){let e=t.isActive();if(n===`active`&&!e||n===`inactive`&&e)return!1}return!(typeof s==`boolean`&&t.isStale()!==s||i&&i!==t.state.fetchStatus||a&&!a(t))}function D(e,t){let{exact:n,status:r,predicate:i,mutationKey:a}=e;if(a){if(!t.options.mutationKey)return!1;if(n){if(re(t.options.mutationKey)!==re(a))return!1}else if(!ie(t.options.mutationKey,a))return!1}return!(r&&t.state.status!==r||i&&!i(t))}function ne(e,t){return(t?.queryKeyHashFn||re)(e)}function re(e){return JSON.stringify(e,(e,t)=>le(t)?Object.keys(t).sort().reduce((e,n)=>(e[n]=t[n],e),{}):t)}function ie(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(e&&t&&typeof e==`object`&&typeof t==`object`){if(Array.isArray(e)&&Array.isArray(t)){if(t.length>e.length)return!1;for(let n=0;n500)return t;let r=ce(e)&&ce(t);if(!r&&!(le(e)&&le(t)))return t;let i=(r?e:Object.keys(e)).length,a=r?t:Object.keys(t),o=a.length,s=r?Array(o):{},c=0;for(let l=0;l{b.setTimeout(t,e)})}function fe(e,t,n){return typeof n.structuralSharing==`function`?n.structuralSharing(e,t):n.structuralSharing===!1?t:oe(e,t)}function pe(e,t,n=0){let r=[...e,t];return n&&r.length>n?r.slice(1):r}function me(e,t,n=0){let r=[t,...e];return n&&r.length>n?r.slice(0,-1):r}var he=Symbol();function ge(e,t){return!e.queryFn&&t?.initialPromise?()=>t.initialPromise:!e.queryFn||e.queryFn===he?()=>Promise.reject(Error(`Missing queryFn: '${e.queryHash}'`)):e.queryFn}function _e(e,t){return typeof e==`function`?e(...t):!!e}function ve(e,t,n){let r=!1,i;return Object.defineProperty(e,"signal",{enumerable:!0,get:()=>(i??=t(),r?i:(r=!0,i.aborted?n():i.addEventListener(`abort`,n,{once:!0}),i))}),e}var ye=()=>S,be=()=>ye(),xe=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(){}},Se=new class extends xe{#e;#t;#n;constructor(){super(),this.#n=e=>{if(typeof window<`u`&&window.addEventListener){let t=()=>e();return window.addEventListener(`visibilitychange`,t,!1),()=>{window.removeEventListener(`visibilitychange`,t)}}}}onSubscribe(){this.#t||this.setEventListener(this.#n)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#n=e,this.#t?.(),this.#t=e(e=>{typeof e==`boolean`?this.setFocused(e):this.onFocus()})}setFocused(e){this.#e!==e&&(this.#e=e,this.onFocus())}onFocus(){let e=this.isFocused();this.listeners.forEach(t=>{t(e)})}isFocused(){return typeof this.#e==`boolean`?this.#e:globalThis.document?.visibilityState!==`hidden`}},O=x;function k(){let e=[],t=0,n=e=>{e()},r=e=>{e()},i=O,a=r=>{t?e.push(r):i(()=>{n(r)})},o=()=>{let t=e;e=[],t.length&&i(()=>{r(()=>{t.forEach(e=>{n(e)})})})};return{batch:e=>{let n;t++;try{n=e()}finally{t--,t||o()}return n},batchCalls:e=>(...t)=>{a(()=>{e(...t)})},schedule:a,setNotifyFunction:e=>{n=e},setBatchNotifyFunction:e=>{r=e},setScheduler:e=>{i=e}}}var A=k(),Ce=new class extends xe{#e=!0;#t;#n;constructor(){super(),this.#n=e=>{if(typeof window<`u`&&window.addEventListener){let t=()=>e(!0),n=()=>e(!1);return window.addEventListener(`online`,t,!1),window.addEventListener(`offline`,n,!1),()=>{window.removeEventListener(`online`,t),window.removeEventListener(`offline`,n)}}}}onSubscribe(){this.#t||this.setEventListener(this.#n)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#n=e,this.#t?.(),this.#t=e(this.setOnline.bind(this))}setOnline(e){this.#e!==e&&(this.#e=e,this.listeners.forEach(t=>{t(e)}))}isOnline(){return this.#e}};function we(e){return Math.min(1e3*2**e,3e4)}function Te(e){return(e??`online`)!==`online`||Ce.isOnline()}var Ee=class extends Error{constructor(e){super(`CancelledError`),this.revert=e?.revert,this.silent=e?.silent}};function j(e){let t=!1,n=0,r,i=`pending`,a,o,s=new Promise((e,t)=>{a=e,o=t});s.catch(C);let c=()=>i!==`pending`,l=t=>{if(!c()){let n=new Ee(t);h(n),e.onCancel?.(n)}},u=()=>{t=!0},d=()=>{t=!1},f=()=>Se.isFocused()&&(e.networkMode===`always`||Ce.isOnline())&&e.canRun(),p=()=>Te(e.networkMode)&&e.canRun(),m=e=>{c()||(r?.(),i=`resolved`,a(e))},h=e=>{c()||(r?.(),i=`rejected`,o(e))},g=()=>new Promise(t=>{r=e=>{(c()||f())&&t(e)},e.onPause?.()}).then(()=>{r=void 0,c()||e.onContinue?.()}),_=()=>{if(c())return;let r,i=n===0?e.initialPromise:void 0;try{r=i??e.fn()}catch(e){r=Promise.reject(e)}Promise.resolve(r).then(m).catch(r=>{if(c())return;let i=e.retry??(be()?0:3),a=e.retryDelay??we,o=typeof a==`function`?a(n,r):a,s=i===!0||typeof i==`number`&&nf()?void 0:g()).then(()=>{t?h(r):_()})})};return{promise:s,status:()=>i,cancel:l,continue:()=>(r?.(),s),cancelRetry:u,continueRetry:d,canStart:p,start:()=>(p()?_():g().then(_),s)}}var De=class{#e;destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),T(this.gcTime)&&(this.#e=b.setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(be()?1/0:3e5))}clearGcTimeout(){this.#e!==void 0&&(b.clearTimeout(this.#e),this.#e=void 0)}};function Oe(e){return{onFetch:(t,n)=>{let r=t.options,i=t.fetchOptions?.meta?.fetchMore?.direction,a=t.state.data?.pages||[],o=t.state.data?.pageParams||[],s={pages:[],pageParams:[]},c=0,l=async()=>{let n=!1,l=e=>{ve(e,()=>t.signal,()=>n=!0)},u=ge(t.options,t.fetchOptions),d=async(e,r,i)=>{if(n)return Promise.reject(t.signal.reason);if(r==null&&e.pages.length)return Promise.resolve(e);let a=(()=>{let e={client:t.client,queryKey:t.queryKey,pageParam:r,direction:i?`backward`:`forward`,meta:t.options.meta};return l(e),e})(),o=await u(a),{maxPages:s}=t.options,c=i?me:pe;return{pages:c(e.pages,o,s),pageParams:c(e.pageParams,r,s)}};if(i&&a.length){let e=i===`backward`,t=e?Ae:ke,n={pages:a,pageParams:o};s=await d(n,t(r,n),e)}else{let t=e??a.length;do{let e=c===0?o[0]??r.initialPageParam:ke(r,s);if(c>0&&e==null)break;s=await d(s,e),c++}while(ct.options.persister?.(l,{client:t.client,queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},n):l}}}function ke(e,{pages:t,pageParams:n}){let r=t.length-1;return t.length>0?e.getNextPageParam(t[r],t,n[r],n):void 0}function Ae(e,{pages:t,pageParams:n}){return t.length>0?e.getPreviousPageParam?.(t[0],t,n[0],n):void 0}var je=class extends De{#e;#t;#n;#r;#i;#a;#o;#s;constructor(e){super(),this.#s=!1,this.#o=e.defaultOptions,this.setOptions(e.options),this.observers=[],this.#i=e.client,this.#r=this.#i.getQueryCache(),this.queryKey=e.queryKey,this.queryHash=e.queryHash,this.#t=Pe(this.options),this.state=e.state??this.#t,this.scheduleGc()}get meta(){return this.options.meta}get queryType(){return this.#e}get promise(){return this.#a?.promise}setOptions(e){if(this.options={...this.#o,...e},e?._type&&(this.#e=e._type),this.updateGcTime(this.options.gcTime),this.state&&this.state.data===void 0){let e=Pe(this.options);e.data!==void 0&&(this.setState(Ne(e.data,e.dataUpdatedAt)),this.#t=e)}}optionalRemove(){!this.observers.length&&this.state.fetchStatus===`idle`&&this.#r.remove(this)}setData(e,t){let n=fe(this.state.data,e,this.options);return this.#c({data:n,type:`success`,dataUpdatedAt:t?.updatedAt,manual:t?.manual}),n}setState(e){this.#c({type:`setState`,state:e})}cancel(e){let t=this.#a?.promise;return this.#a?.cancel(e),t?t.then(C).catch(C):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}get resetState(){return this.#t}reset(){this.destroy(),this.setState(this.resetState)}isActive(){return this.observers.some(e=>E(e.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===he||!this.isFetched()}isFetched(){return this.state.dataUpdateCount+this.state.errorUpdateCount>0}isStatic(){return this.getObserversCount()>0&&this.observers.some(e=>E(e.options.staleTime,this)===`static`)}isStale(){return this.getObserversCount()>0?this.observers.some(e=>e.getCurrentResult().isStale):this.state.data===void 0||this.state.isInvalidated}isStaleByTime(e=0){return this.state.data===void 0?!0:e===`static`?!1:this.state.isInvalidated?!0:!ee(this.state.dataUpdatedAt,e)}onFocus(){this.observers.find(e=>e.shouldFetchOnWindowFocus())?.refetch({cancelRefetch:!1}),this.#a?.continue()}onOnline(){this.observers.find(e=>e.shouldFetchOnReconnect())?.refetch({cancelRefetch:!1}),this.#a?.continue()}addObserver(e){this.observers.includes(e)||(this.observers.push(e),this.clearGcTimeout(),this.#r.notify({type:`observerAdded`,query:this,observer:e}))}removeObserver(e){let t=this.observers.indexOf(e);t!==-1&&(this.observers.splice(t,1),this.observers.length||(this.#a&&(this.#s||this.state.fetchStatus===`paused`&&this.state.status===`pending`?this.#a.cancel({revert:!0}):this.#a.cancelRetry()),this.scheduleGc()),this.#r.notify({type:`observerRemoved`,query:this,observer:e}))}getObserversCount(){return this.observers.length}invalidate(){this.state.isInvalidated||this.#c({type:`invalidate`})}async fetch(e,t){if(this.state.fetchStatus!==`idle`&&this.#a?.status()!==`rejected`){if(this.state.data!==void 0&&t?.cancelRefetch)this.cancel({silent:!0});else if(this.#a)return this.#a.continueRetry(),this.#a.promise}if(e&&this.setOptions(e),!this.options.queryFn){let e=this.observers.find(e=>e.options.queryFn);e&&this.setOptions(e.options)}let n=new AbortController,r=e=>{Object.defineProperty(e,"signal",{enumerable:!0,get:()=>(this.#s=!0,n.signal)})},i=()=>{let e=ge(this.options,t),n=(()=>{let e={client:this.#i,queryKey:this.queryKey,meta:this.meta};return r(e),e})();return this.#s=!1,this.options.persister?this.options.persister(e,n,this):e(n)},a=(()=>{let e={fetchOptions:t,options:this.options,queryKey:this.queryKey,client:this.#i,state:this.state,fetchFn:i};return r(e),e})();(this.#e===`infinite`?Oe(this.options.pages):this.options.behavior)?.onFetch(a,this),this.#n=this.state,(this.state.fetchStatus===`idle`||this.state.fetchMeta!==a.fetchOptions?.meta)&&this.#c({type:`fetch`,meta:a.fetchOptions?.meta});let o=this.#a=j({initialPromise:t?.initialPromise,fn:a.fetchFn,onCancel:e=>{e instanceof Ee&&e.revert&&this.setState({...this.#n,fetchStatus:`idle`}),n.abort()},onFail:(e,t)=>{this.#c({type:`failed`,failureCount:e,error:t})},onPause:()=>{this.#c({type:`pause`})},onContinue:()=>{this.#c({type:`continue`})},retry:a.options.retry,retryDelay:a.options.retryDelay,networkMode:a.options.networkMode,canRun:()=>!0});try{let e=await o.start();if(e===void 0)throw Error(`${this.queryHash} data is undefined`);return this.setData(e),this.#r.config.onSuccess?.(e,this),this.#r.config.onSettled?.(e,this.state.error,this),e}catch(e){if(e instanceof Ee){if(e.silent)return this.#a.promise;if(e.revert){if(this.state.data===void 0)throw e;return this.state.data}}throw this.#c({type:`error`,error:e}),this.#r.config.onError?.(e,this),this.#r.config.onSettled?.(this.state.data,e,this),e}finally{this.#a===o&&(this.#a=void 0),this.scheduleGc()}}#c(e){let t=t=>{switch(e.type){case`failed`:return{...t,fetchFailureCount:e.failureCount,fetchFailureReason:e.error};case`pause`:return{...t,fetchStatus:`paused`};case`continue`:return{...t,fetchStatus:`fetching`};case`fetch`:return{...t,...Me(t.data,this.options),fetchMeta:e.meta??null};case`success`:let n={...t,...Ne(e.data,e.dataUpdatedAt),dataUpdateCount:t.dataUpdateCount+1,...!e.manual&&{fetchStatus:`idle`,fetchFailureCount:0,fetchFailureReason:null}};return this.#n=e.manual?n:void 0,n;case`error`:let r=e.error;return{...t,error:r,errorUpdateCount:t.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:t.fetchFailureCount+1,fetchFailureReason:r,fetchStatus:`idle`,status:`error`,isInvalidated:!0};case`invalidate`:return{...t,isInvalidated:!0};case`setState`:return{...t,...e.state}}};this.state=t(this.state),A.batch(()=>{this.observers.slice().forEach(e=>{e.onQueryUpdate()}),this.#r.notify({query:this,type:`updated`,action:e})})}};function Me(e,t){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:Te(t.networkMode)?`fetching`:`paused`,...e===void 0&&{error:null,status:`pending`}}}function Ne(e,t){return{data:e,dataUpdatedAt:t??Date.now(),error:null,isInvalidated:!1,status:`success`}}function Pe(e){let t=typeof e.initialData==`function`?e.initialData():e.initialData,n=t!==void 0,r=n?typeof e.initialDataUpdatedAt==`function`?e.initialDataUpdatedAt():e.initialDataUpdatedAt:0;return{data:t,dataUpdateCount:0,dataUpdatedAt:n?r??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:n?`success`:`pending`,fetchStatus:`idle`}}var Fe=class extends xe{#e;#t=void 0;#n=void 0;#r=void 0;#i;#a;#o;#s;#c;#l;#u;#d;#f;#p=new Set;constructor(e,t){super(),this.options=t,this.#e=e,this.#o=null,this.bindMethods(),this.setOptions(t)}bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&(this.#t.addObserver(this),Le(this.#t,this.options)?this.#m():this.updateResult(),this.#y())}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return Re(this.#t,this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return Re(this.#t,this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,this.#b(),this.#x(),this.#t.removeObserver(this)}setOptions(e){let t=this.options,n=this.#t;if(this.options=this.#e.defaultQueryOptions(e),this.options.enabled!==void 0&&typeof this.options.enabled!=`boolean`&&typeof this.options.enabled!=`function`&&typeof E(this.options.enabled,this.#t)!=`boolean`)throw Error(`Expected enabled to be a boolean or a callback that returns a boolean`);this.#S(),this.#t.setOptions(this.options),t._defaulted&&!se(this.options,t)&&this.#e.getQueryCache().notify({type:`observerOptionsUpdated`,query:this.#t,observer:this});let r=this.hasListeners();r&&ze(this.#t,n,this.options,t)&&this.#m(),this.updateResult(),r&&(this.#t!==n||E(this.options.enabled,this.#t)!==E(t.enabled,this.#t)||E(this.options.staleTime,this.#t)!==E(t.staleTime,this.#t))&&this.#g();let i=this.#_();r&&(this.#t!==n||E(this.options.enabled,this.#t)!==E(t.enabled,this.#t)||i!==this.#f)&&this.#v(i)}getOptimisticResult(e){let t=this.#e.getQueryCache().build(this.#e,e),n=this.createResult(t,e);return se(this.getCurrentResult(),n)||(this.#r=n,this.#a=this.options,this.#i=this.#t.state),n}getCurrentResult(){return this.#r}trackResult(e,t){return new Proxy(e,{get:(e,n)=>(this.trackProp(n),t?.(n),Reflect.get(e,n))})}trackProp(e){this.#p.add(e)}getCurrentQuery(){return this.#t}refetch({...e}={}){return this.fetch({...e})}fetchOptimistic(e){let t=this.#e.defaultQueryOptions(e),n=this.#e.getQueryCache().build(this.#e,t),r=()=>{},i,a=new Promise(e=>{i=e,r=this.#e.getQueryCache().subscribe(i=>{i.type===`updated`&&i.query.queryHash===n.queryHash&&n.state.data!==void 0&&(r(),e(this.createResult(n,t)))})});return Promise.race([n.fetch().then(()=>{let e=this.createResult(n,t);return i?.(e),e}).finally(()=>{r()}),a])}fetch(e){return this.#m({...e,cancelRefetch:e.cancelRefetch??!0}).then(()=>(this.updateResult(),this.#r))}#m(e){this.#S();let t=this.#t.fetch(this.options,e);return e?.throwOnError||(t=t.catch(C)),t}#h(e){return!be()&&E(this.options.enabled,this.#t)!==!1&&T(e)}#g(){this.#b();let e=E(this.options.staleTime,this.#t);if(this.#r.isStale||!this.#h(e))return;let t=ee(this.#r.dataUpdatedAt,e)+1;this.#u=b.setTimeout(()=>{this.#r.isStale||this.updateResult()},t)}#_(){return E(this.options.refetchInterval,this.#t)??!1}#v(e){this.#x(),this.#f=e,this.#f!==0&&this.#h(this.#f)&&(this.#d=b.setInterval(()=>{(this.options.refetchIntervalInBackground||Se.isFocused())&&this.#m()},this.#f))}#y(){this.#g(),this.#v(this.#_())}#b(){this.#u!==void 0&&(b.clearTimeout(this.#u),this.#u=void 0)}#x(){this.#d!==void 0&&(b.clearInterval(this.#d),this.#d=void 0)}createResult(e,t){let n=this.#t,r=this.options,i=this.#r,a=this.#i,o=this.#a,s=e===n?this.#n:e.state,{state:c}=e,l={...c},u=!1,d;if(t._optimisticResults){let i=this.hasListeners(),a=!i&&Le(e,t),o=i&&ze(e,n,t,r);(a||o)&&(l={...l,...Me(c.data,e.options)}),t._optimisticResults===`isRestoring`&&(l.fetchStatus=`idle`)}let{error:f,errorUpdatedAt:p,status:m}=l;d=l.data;let h=!1;if(t.placeholderData!==void 0&&d===void 0&&m===`pending`){let e;i?.isPlaceholderData&&t.placeholderData===o?.placeholderData?(e=i.data,h=!0):e=typeof t.placeholderData==`function`?t.placeholderData(this.#l?.state.data,this.#l):t.placeholderData,e!==void 0&&(m=`success`,d=fe(i?.data,e,t),u=!0)}if(t.select&&d!==void 0&&!h){if(i&&d===a?.data&&t.select===this.#s)d=this.#c;else try{this.#s=t.select,d=t.select(d),d=fe(i?.data,d,t),this.#c=d,this.#o=null}catch(e){this.#o=e}}else d===void 0&&(this.#o=null);this.#o&&(f=this.#o,d=this.#c,p=Date.now(),m=`error`,u=!1);let g=l.fetchStatus===`fetching`,_=m===`pending`,v=m===`error`,y=_&&g,b=d!==void 0;return{status:m,fetchStatus:l.fetchStatus,isPending:_,isSuccess:m===`success`,isError:v,isInitialLoading:y,isLoading:y,data:d,dataUpdatedAt:l.dataUpdatedAt,error:f,errorUpdatedAt:p,failureCount:l.fetchFailureCount,failureReason:l.fetchFailureReason,errorUpdateCount:l.errorUpdateCount,isFetched:e.isFetched(),isFetchedAfterMount:l.dataUpdateCount>s.dataUpdateCount||l.errorUpdateCount>s.errorUpdateCount,isFetching:g,isRefetching:g&&!_,isLoadingError:v&&!b,isPaused:l.fetchStatus===`paused`,isPlaceholderData:u,isRefetchError:v&&b,isStale:Be(e,t),refetch:this.refetch,isEnabled:E(t.enabled,e)!==!1}}updateResult(){let e=this.#r,t=this.createResult(this.#t,this.options);if(this.#i=this.#t.state,this.#a=this.options,this.#i.data!==void 0&&(this.#l=this.#t),se(t,e))return;this.#r=t;let n=(()=>{if(!e)return!0;let{notifyOnChangeProps:t}=this.options,n=typeof t==`function`?t():t;if(n===`all`||!n&&!this.#p.size)return!0;let r=new Set(n??this.#p);return this.options.throwOnError&&r.add(`error`),Object.keys(this.#r).some(t=>{let n=t;return this.#r[n]!==e[n]&&r.has(n)})})();A.batch(()=>{n&&this.listeners.forEach(e=>{e(this.#r)}),this.#e.getQueryCache().notify({query:this.#t,type:`observerResultsUpdated`})})}#S(){let e=this.#e.getQueryCache().build(this.#e,this.options);if(e===this.#t)return;let t=this.#t;this.#t=e,this.#n=e.state,this.hasListeners()&&(t?.removeObserver(this),e.addObserver(this))}onQueryUpdate(){this.updateResult(),this.hasListeners()&&this.#y()}};function Ie(e,t){return E(t.enabled,e)!==!1&&e.state.data===void 0&&(e.state.status!==`error`||E(t.retryOnMount,e)!==!1)}function Le(e,t){return Ie(e,t)||e.state.data!==void 0&&Re(e,t,t.refetchOnMount)}function Re(e,t,n){if(E(t.enabled,e)!==!1&&E(t.staleTime,e)!==`static`){let r=E(n,e);return r===`always`||r!==!1&&Be(e,t)}return!1}function ze(e,t,n,r){return(e!==t||E(r.enabled,e)===!1)&&(!n.suspense||e.state.status!==`error`)&&Be(e,n)}function Be(e,t){return E(t.enabled,e)!==!1&&e.isStaleByTime(E(t.staleTime,e))}var Ve=class extends De{#e;#t;#n;#r;constructor(e){super(),this.#e=e.client,this.mutationId=e.mutationId,this.#n=e.mutationCache,this.#t=[],this.state=e.state||He(),this.setOptions(e.options),this.scheduleGc()}setOptions(e){this.options=e,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(e){this.#t.includes(e)||(this.#t.push(e),this.clearGcTimeout(),this.#n.notify({type:`observerAdded`,mutation:this,observer:e}))}removeObserver(e){this.#t=this.#t.filter(t=>t!==e),this.scheduleGc(),this.#n.notify({type:`observerRemoved`,mutation:this,observer:e})}optionalRemove(){this.#t.length||(this.state.status===`pending`?this.scheduleGc():this.#n.remove(this))}continue(){return this.#r?.continue()??(this.state.status===`pending`?this.execute(this.state.variables):Promise.resolve())}async execute(e){let t=()=>{this.#i({type:`continue`})},n={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey},r=this.#r=j({fn:()=>this.options.mutationFn?this.options.mutationFn(e,n):Promise.reject(Error(`No mutationFn found`)),onFail:(e,t)=>{this.#i({type:`failed`,failureCount:e,error:t})},onPause:()=>{this.#i({type:`pause`})},onContinue:t,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>this.#n.canRun(this)}),i=this.state.status===`pending`,a=!r.canStart();try{if(i)t();else{this.#i({type:`pending`,variables:e,isPaused:a}),this.#n.config.onMutate&&await this.#n.config.onMutate(e,this,n);let t=await this.options.onMutate?.(e,n);t!==this.state.context&&this.#i({type:`pending`,context:t,variables:e,isPaused:a})}let o=await r.start();return await this.#n.config.onSuccess?.(o,e,this.state.context,this,n),await this.options.onSuccess?.(o,e,this.state.context,n),await this.#n.config.onSettled?.(o,null,this.state.variables,this.state.context,this,n),await this.options.onSettled?.(o,null,e,this.state.context,n),this.#i({type:`success`,data:o}),o}catch(t){try{await this.#n.config.onError?.(t,e,this.state.context,this,n)}catch(e){Promise.reject(e)}try{await this.options.onError?.(t,e,this.state.context,n)}catch(e){Promise.reject(e)}try{await this.#n.config.onSettled?.(void 0,t,this.state.variables,this.state.context,this,n)}catch(e){Promise.reject(e)}try{await this.options.onSettled?.(void 0,t,e,this.state.context,n)}catch(e){Promise.reject(e)}throw this.#i({type:`error`,error:t}),t}finally{this.#r===r&&(this.#r=void 0),this.#n.runNext(this)}}#i(e){let t=t=>{switch(e.type){case`failed`:return{...t,failureCount:e.failureCount,failureReason:e.error};case`pause`:return{...t,isPaused:!0};case`continue`:return{...t,isPaused:!1};case`pending`:return{...t,context:e.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:e.isPaused,status:`pending`,variables:e.variables,submittedAt:Date.now()};case`success`:return{...t,data:e.data,failureCount:0,failureReason:null,error:null,status:`success`,isPaused:!1};case`error`:return{...t,data:void 0,error:e.error,failureCount:t.failureCount+1,failureReason:e.error,isPaused:!1,status:`error`}}};this.state=t(this.state),A.batch(()=>{this.#t.forEach(t=>{t.onMutationUpdate(e)}),this.#n.notify({mutation:this,type:`updated`,action:e})})}};function He(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:`idle`,variables:void 0,submittedAt:0}}var Ue=class extends xe{#e;#t;#n;constructor(e={}){super(),this.config=e,this.#e=new Set,this.#t=new Map,this.#n=0}build(e,t,n){let r=new Ve({client:e,mutationCache:this,mutationId:++this.#n,options:e.defaultMutationOptions(t),state:n});return this.add(r),r}add(e){this.#e.add(e);let t=We(e);if(typeof t==`string`){let n=this.#t.get(t);n?n.push(e):this.#t.set(t,[e])}this.notify({type:`added`,mutation:e})}remove(e){if(this.#e.delete(e)){let t=We(e);if(typeof t==`string`){let n=this.#t.get(t);if(n){if(n.length>1){let t=n.indexOf(e);t!==-1&&n.splice(t,1)}else n[0]===e&&this.#t.delete(t)}}}this.notify({type:`removed`,mutation:e})}canRun(e){let t=We(e);if(typeof t==`string`){let n=this.#t.get(t)?.find(e=>e.state.status===`pending`);return!n||n===e}return!0}runNext(e){let t=We(e);return typeof t==`string`?(this.#t.get(t)?.find(t=>t!==e&&t.state.isPaused))?.continue()??Promise.resolve():Promise.resolve()}clear(){A.batch(()=>{this.#e.forEach(e=>{this.notify({type:`removed`,mutation:e})}),this.#e.clear(),this.#t.clear()})}getAll(){return Array.from(this.#e)}find(e){let t={exact:!0,...e};return this.getAll().find(e=>D(t,e))}findAll(e={}){return this.getAll().filter(t=>D(e,t))}notify(e){A.batch(()=>{this.listeners.forEach(t=>{t(e)})})}resumePausedMutations(){let e=this.getAll().filter(e=>e.state.isPaused);return A.batch(()=>Promise.all(e.map(e=>e.continue().catch(C))))}};function We(e){return e.options.scope?.id}var Ge=class extends xe{#e;#t=void 0;#n;#r;constructor(e,t){super(),this.#e=e,this.setOptions(t),this.bindMethods(),this.#i()}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(e){let t=this.options;this.options=this.#e.defaultMutationOptions(e),se(this.options,t)||this.#e.getMutationCache().notify({type:`observerOptionsUpdated`,mutation:this.#n,observer:this}),t?.mutationKey&&this.options.mutationKey&&re(t.mutationKey)!==re(this.options.mutationKey)?this.reset():this.#n?.state.status===`pending`&&this.#n.setOptions(this.options)}onSubscribe(){this.listeners.size===1&&this.#n&&(this.#n.addObserver(this),this.#i())}onUnsubscribe(){this.hasListeners()||this.#n?.removeObserver(this)}onMutationUpdate(e){this.#i(),this.#a(e)}getCurrentResult(){return this.#t}reset(){this.#n?.removeObserver(this),this.#n=void 0,this.#i(),this.#a()}mutate(e,t){return this.#r=t,this.#n?.removeObserver(this),this.#n=this.#e.getMutationCache().build(this.#e,this.options),this.#n.addObserver(this),this.#n.execute(e)}#i(){let e=this.#n?.state??He();this.#t={...e,isPending:e.status===`pending`,isSuccess:e.status===`success`,isError:e.status===`error`,isIdle:e.status===`idle`,mutate:this.mutate,reset:this.reset}}#a(e){A.batch(()=>{if(this.#r&&this.hasListeners()){let t=this.#t.variables,n=this.#t.context,r={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};if(e?.type===`success`){try{this.#r.onSuccess?.(e.data,t,n,r)}catch(e){Promise.reject(e)}try{this.#r.onSettled?.(e.data,null,t,n,r)}catch(e){Promise.reject(e)}}else if(e?.type===`error`){try{this.#r.onError?.(e.error,t,n,r)}catch(e){Promise.reject(e)}try{this.#r.onSettled?.(void 0,e.error,t,n,r)}catch(e){Promise.reject(e)}}}this.listeners.forEach(e=>{e(this.#t)})})}};function Ke(e,t){let n=new Set(t);return e.filter(e=>!n.has(e))}var qe=class extends xe{#e;#t;#n;#r;#i;#a;#o;#s;#c;#l=[];constructor(e,t,n){super(),this.#e=e,this.#r=n,this.#n=[],this.#i=[],this.#t=[],this.setQueries(t)}onSubscribe(){this.listeners.size===1&&this.#i.forEach(e=>{e.subscribe(t=>{this.#m(e,t)})})}onUnsubscribe(){this.listeners.size||this.destroy()}destroy(){this.listeners=new Set,this.#i.forEach(e=>{e.destroy()})}setQueries(e,t){this.#n=e,this.#r=t,A.batch(()=>{let e=this.#i,t=this.#p(this.#n);t.forEach(e=>e.observer.setOptions(e.defaultedQueryOptions));let n=t.map(e=>e.observer),r=n.map(e=>e.getCurrentResult()),i=e.length!==n.length,a=n.some((t,n)=>t!==e[n]),o=i||a,s=o?!0:r.some((e,t)=>{let n=this.#t[t];return!n||!se(e,n)});(o||s)&&(o&&(this.#l=t,this.#i=n),this.#t=r,this.hasListeners()&&(o&&(Ke(e,n).forEach(e=>{e.destroy()}),Ke(n,e).forEach(e=>{e.subscribe(t=>{this.#m(e,t)})})),this.#h()))})}getCurrentResult(){return this.#t}getQueries(){return this.#i.map(e=>e.getCurrentQuery())}getObservers(){return this.#i}getOptimisticResult(e,t){let n=this.#p(e),r=n.map(e=>e.observer.getOptimisticResult(e.defaultedQueryOptions)),i=n.map(e=>e.defaultedQueryOptions.queryHash);return[r,e=>this.#d(e??r,t,i),()=>this.#u(r,n)]}#u(e,t){let n=new Set;return t.map((r,i)=>{let a=e[i];return r.defaultedQueryOptions.notifyOnChangeProps?a:r.observer.trackResult(a,e=>{n.has(e)||(n.add(e),t.forEach(t=>{t.observer.trackProp(e)}))})})}#d(e,t,n){if(t){let r=this.#c,i=n!==void 0&&r!==void 0&&(r.length!==n.length||n.some((e,t)=>e!==r[t]));return(this.#t!==this.#s||i||t!==this.#o)&&(this.#o=t,this.#s=this.#t,n!==void 0&&(this.#c=n),this.#a=oe(this.#a,t(e))),this.#a}return e}#f(){return!this.#r?.combine||this.#i.some((e,t)=>e.options.suspense&&this.#t[t]?.data===void 0)}#p(e){let t=new Map;this.#i.forEach(e=>{let n=e.options.queryHash;if(!n)return;let r=t.get(n);r?r.push(e):t.set(n,[e])});let n=[];return e.forEach(e=>{let r=this.#e.defaultQueryOptions(e),i=t.get(r.queryHash)?.shift()??new Fe(this.#e,r);n.push({defaultedQueryOptions:r,observer:i})}),n}#m(e,t){let n=this.#i.indexOf(e);n!==-1&&(this.#t=this.#t.slice(),this.#t[n]=t,this.#h())}#h(){if(this.hasListeners()){let e=this.#f(),t=this.#a,n=e?t:this.#d(this.#u(this.#t,this.#l),this.#r?.combine);(e||t!==n)&&A.batch(()=>{this.listeners.forEach(e=>{e(this.#t)})})}}},Je=class extends xe{#e;constructor(e={}){super(),this.config=e,this.#e=new Map}build(e,t,n){let r=t.queryKey,i=t.queryHash??ne(r,t),a=this.get(i);return a||(a=new je({client:e,queryKey:r,queryHash:i,options:e.defaultQueryOptions(t),state:n,defaultOptions:e.getQueryDefaults(r)}),this.add(a)),a}add(e){this.#e.has(e.queryHash)||(this.#e.set(e.queryHash,e),this.notify({type:`added`,query:e}))}remove(e){this.#e.get(e.queryHash)===e&&(e.destroy(),this.#e.delete(e.queryHash),this.notify({type:`removed`,query:e}))}clear(){A.batch(()=>{this.getAll().forEach(e=>{this.remove(e)})})}get(e){return this.#e.get(e)}getAll(){return[...this.#e.values()]}find(e){let t={exact:!0,...e};return this.getAll().find(e=>te(t,e))}findAll(e={}){let t=this.getAll();return Object.keys(e).length>0?t.filter(t=>te(e,t)):t}notify(e){A.batch(()=>{this.listeners.forEach(t=>{t(e)})})}onFocus(){A.batch(()=>{this.getAll().forEach(e=>{e.onFocus()})})}onOnline(){A.batch(()=>{this.getAll().forEach(e=>{e.onOnline()})})}},Ye=class{#e;#t;#n;#r;#i;#a;#o;#s;constructor(e={}){this.#e=e.queryCache||new Je,this.#t=e.mutationCache||new Ue,this.#n=e.defaultOptions||{},this.#r=new Map,this.#i=new Map,this.#a=0}mount(){this.#a++,this.#a===1&&(this.#o=Se.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onFocus())}),this.#s=Ce.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onOnline())}))}unmount(){this.#a--,this.#a===0&&(this.#o?.(),this.#o=void 0,this.#s?.(),this.#s=void 0)}isFetching(e){return this.#e.findAll({...e,fetchStatus:`fetching`}).length}isMutating(e){return this.#t.findAll({...e,status:`pending`}).length}getQueryData(e){let t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state.data}ensureQueryData(e){let t=this.defaultQueryOptions(e),n=this.#e.build(this,t),r=n.state.data;return r===void 0?this.fetchQuery(e):(e.revalidateIfStale&&n.isStaleByTime(E(t.staleTime,n))&&this.prefetchQuery(t),Promise.resolve(r))}getQueriesData(e){return this.#e.findAll(e).map(({queryKey:e,state:t})=>[e,t.data])}setQueryData(e,t,n){let r=this.defaultQueryOptions({queryKey:e}),i=this.#e.get(r.queryHash)?.state.data,a=w(t,i);if(a!==void 0)return this.#e.build(this,r).setData(a,{...n,manual:!0})}setQueriesData(e,t,n){return A.batch(()=>this.#e.findAll(e).map(({queryKey:e})=>[e,this.setQueryData(e,t,n)]))}getQueryState(e){let t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state}removeQueries(e){let t=this.#e;A.batch(()=>{t.findAll(e).forEach(e=>{t.remove(e)})})}resetQueries(e,t){let n=this.#e;return A.batch(()=>{let r=n.findAll(e),i=new Set(r);return r.forEach(e=>{e.reset()}),this.refetchQueries({type:`active`,predicate:e=>i.has(e)},t)})}cancelQueries(e,t={}){let n={revert:!0,...t},r=A.batch(()=>this.#e.findAll(e).map(e=>e.cancel(n)));return Promise.all(r).then(C).catch(C)}invalidateQueries(e,t={}){return A.batch(()=>(this.#e.findAll(e).forEach(e=>{e.invalidate()}),e?.refetchType===`none`?Promise.resolve():this.refetchQueries({...e,type:e?.refetchType??e?.type??`active`},t)))}refetchQueries(e,t={}){let n={...t,cancelRefetch:t.cancelRefetch??!0},r=A.batch(()=>this.#e.findAll(e).filter(e=>!e.isDisabled()&&!e.isStatic()).map(e=>{let t=e.fetch(void 0,n);return n.throwOnError||(t=t.catch(C)),e.state.fetchStatus===`paused`?Promise.resolve():t}));return Promise.all(r).then(C)}async query(e){let t=this.defaultQueryOptions(e);t.retry===void 0&&(t.retry=!1);let n=this.#e.build(this,t),r=n.isStaleByTime(E(t.staleTime,n))?await n.fetch(t):n.state.data,i=t.select;return i?i(r):r}fetchQuery(e){let t=this.defaultQueryOptions(e);t.retry===void 0&&(t.retry=!1);let n=this.#e.build(this,t);return n.isStaleByTime(E(t.staleTime,n))?n.fetch(t):Promise.resolve(n.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(C).catch(C)}infiniteQuery(e){return e._type=`infinite`,this.query(e)}fetchInfiniteQuery(e){return e._type=`infinite`,this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(C).catch(C)}ensureInfiniteQueryData(e){return e._type=`infinite`,this.ensureQueryData(e)}resumePausedMutations(){return Ce.isOnline()?this.#t.resumePausedMutations():Promise.resolve()}getQueryCache(){return this.#e}getMutationCache(){return this.#t}getDefaultOptions(){return this.#n}setDefaultOptions(e){this.#n=e}setQueryDefaults(e,t){this.#r.set(re(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){let t=[...this.#r.values()],n={};return t.forEach(t=>{ie(e,t.queryKey)&&Object.assign(n,t.defaultOptions)}),n}setMutationDefaults(e,t){this.#i.set(re(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){let t=[...this.#i.values()],n={};return t.forEach(t=>{ie(e,t.mutationKey)&&Object.assign(n,t.defaultOptions)}),n}defaultQueryOptions(e){if(e._defaulted)return e;let t={...this.#n.queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return t.queryHash||=ne(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===he&&(t.enabled=!1),t}defaultMutationOptions(e){return e?._defaulted?e:{...this.#n.mutations,...e?.mutationKey&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){this.#e.clear(),this.#t.clear()}},Xe=m.createContext(!1),Ze=()=>m.useContext(Xe);Xe.Provider;function Qe(){let e=!1;return{clearReset:()=>{e=!1},reset:()=>{e=!0},isReset:()=>e}}var $e=m.createContext(Qe()),et=()=>m.useContext($e),tt=(e,t,n)=>{let r=n?.state.error&&typeof e.throwOnError==`function`?_e(e.throwOnError,[n.state.error,n]):e.throwOnError;(e.suspense||r)&&(t.isReset()||(e.retryOnMount=!1))},nt=e=>{m.useEffect(()=>{e.clearReset()},[e])},rt=({result:e,errorResetBoundary:t,throwOnError:n,query:r,suspense:i})=>e.isError&&!t.isReset()&&!e.isFetching&&r&&(i&&e.data===void 0||_e(n,[e.error,r])),it=e=>{if(e.suspense){let t=1e3,n=e=>e===`static`?e:Math.max(e??t,t),r=e.staleTime;e.staleTime=typeof r==`function`?(...e)=>n(r(...e)):n(r),typeof e.gcTime==`number`&&(e.gcTime=Math.max(e.gcTime,t))}},at=(e,t)=>e?.suspense&&t.isPending,ot=(e,t,n)=>t.fetchOptimistic(e).catch(()=>{n.clearReset()});function st({queries:e,...t},n){let r=_(n),i=Ze(),a=et(),o=t.subscribed!==!1,s=m.useMemo(()=>e.map(e=>{let t=r.defaultQueryOptions(e);return t._optimisticResults=i?`isRestoring`:o?`optimistic`:void 0,t}),[e,r,i,o]);s.forEach(e=>{it(e);let t=r.getQueryCache().get(e.queryHash);tt(e,a,t)}),nt(a);let[c]=m.useState(()=>new qe(r,s,t)),[l,u,d]=c.getOptimisticResult(s,t.combine),f=!i&&o;m.useSyncExternalStore(m.useCallback(e=>f?c.subscribe(A.batchCalls(e)):C,[c,f]),()=>c.getCurrentResult(),()=>c.getCurrentResult()),m.useEffect(()=>{c.setQueries(s,t)},[s,t,c]);let p=l.some((e,t)=>at(s[t],e))?l.flatMap((e,t)=>{let n=s[t];return n&&at(n,e)?ot(n,new Fe(r,n),a):[]}):[];if(p.length>0)throw Promise.all(p);let h=l.find((e,t)=>{let n=s[t];return n&&rt({result:e,errorResetBoundary:a,throwOnError:n.throwOnError,query:r.getQueryCache().get(n.queryHash),suspense:n.suspense})});if(h)throw h.error;return u(d())}function ct(e,t,n){let r=Ze(),i=et(),a=_(n),o=a.defaultQueryOptions(e),s=a.getQueryCache().get(o.queryHash),c=e.subscribed!==!1;o._optimisticResults=r?`isRestoring`:c?`optimistic`:void 0,it(o),tt(o,i,s),nt(i);let[l]=m.useState(()=>new t(a,o)),u=l.getOptimisticResult(o),d=!r&&c;if(m.useSyncExternalStore(m.useCallback(e=>{let t=d?l.subscribe(A.batchCalls(e)):C;return l.updateResult(),t},[l,d]),()=>l.getCurrentResult(),()=>l.getCurrentResult()),m.useEffect(()=>{l.setOptions(o)},[o,l]),at(o,u))throw ot(o,l,i);if(rt({result:u,errorResetBoundary:i,throwOnError:o.throwOnError,query:s,suspense:o.suspense}))throw u.error;return o.notifyOnChangeProps?u:l.trackResult(u)}function M(e,t){return ct(e,Fe,t)}function lt(e,t){let n=_(t),[r]=m.useState(()=>new Ge(n,e));m.useEffect(()=>{r.setOptions(e)},[r,e]);let i=m.useSyncExternalStore(m.useCallback(e=>r.subscribe(A.batchCalls(e)),[r]),()=>r.getCurrentResult(),()=>r.getCurrentResult()),a=m.useCallback((...e)=>{r.mutate(e[0],e[1]).catch(C)},[r]);if(i.error&&_e(r.options.throwOnError,[i.error]))throw i.error;return{...i,mutate:a,mutateAsync:i.mutate}}var ut=m.use,dt=m.useLayoutEffect;function ft(e){return e[e.length-1]}function pt(e,t){return typeof e==`function`?e(t):e}var mt=Object.prototype.hasOwnProperty;function ht(e){for(let t in e)if(mt.call(e,t))return!0;return!1}var gt=()=>Object.create(null),_t=(e,t)=>vt(e,t,!0);function vt(e,t,n,r=0){if(e===t)return e;if(r++>500)return t;let i=Array.isArray(e)&&Array.isArray(t);if(!i&&!(yt(e)&&yt(t)))return t;let a=Object.keys(e),o=a.length,s=Object.keys(t),c=s.length;if(i?o!==e.length||c!==t.length||o&&ft(a)!==`${o-1}`||c&&ft(s)!==`${c-1}`:o!==Object.getOwnPropertyNames(e).length||c!==Object.getOwnPropertyNames(t).length||Object.getOwnPropertySymbols(t).length)return t;let l=0,u,d,f;if(i){for(;ll&&(u=t[f],u=d===u?d:typeof d==`object`?vt(d,u,n,r):u),p[f]=o`{}]/g;function Ct(e){return e.replace(St,e=>`%`+e.charCodeAt(0).toString(16).toUpperCase().padStart(2,`0`))}function wt(e){let t;try{t=decodeURI(e)}catch{t=e.replaceAll(/%[0-9A-F]{2}/gi,e=>{try{return decodeURI(e)}catch{return e}})}return Ct(t)}var Tt=[`http:`,`https:`,`mailto:`,`tel:`];function Et(e){if(e[0]!==`/`&&e.includes(`:`))return/^[\x00-\x20]*([a-z][a-z\d+.\t\n\r-]*:)/i.exec(e)?.[1]?.replace(/[\t\n\r]/g,``).toLowerCase()}var Dt=/^[\x00-\x20]*[\\/][\t\n\r]*[\\/]/;function Ot(e,t){if(!e)return!1;if(Dt.test(e))return!0;let n=Et(e);return n?!t.has(n):!1}function kt(e){if(!e)return e;let t=e;if(/[%\\\x00-\x1f\x7f]/.test(e)){let n=/%25|%5C/gi,r=0,i;for(t=``;(i=n.exec(e))!==null;)t+=wt(e.slice(r,i.index))+i[0],r=n.lastIndex;t+=wt(r?e.slice(r):e)}return t}function At(e){return/[\s\u0080-\uFFFF]/.test(e)?e.replace(/\s|[^\u0000-\u007F]/gu,encodeURIComponent):e}function jt(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n1&&e[t-1]===`/`?e.replace(/\/+$/,``):e}function It(e){return Ft(Pt(e))}function Lt(e,t){return e?.endsWith(`/`)&&e!==`/`&&e!==`${t}/`?e.slice(0,-1):e}function Rt(e,t,n=`never`,r){if(t.includes(`//`)&&(t=Nt(t)),t.startsWith(`/`))return t.length===1||n===`preserve`?t:n===`always`?t.endsWith(`/`)?t:`${t}/`:t.endsWith(`/`)?t.slice(0,-1):t;let i=t===`.`,a;if(r){a=i?e:e+`\0`+t;let n=r.get(a);if(n)return n}let o;if(i)o=e.split(`/`);else{for(e.includes(`//`)&&(e=Nt(e)),o=e.split(`/`);o.length>1&&ft(o)===``;)o.pop();let n=t.split(`/`);for(let e=0,t=n.length;e1?o.pop():o=[``]:r===`.`||o.push(r)}}o.length>1&&(ft(o)===``?n===`never`&&o.pop():n===`always`&&o.push(``));let s=o.join(`/`),c=(i?Nt(s):s)||`/`;return a&&r&&r.set(a,c),c}function zt(e){let t=new Map(e.map(e=>[encodeURIComponent(e),e])),n=new RegExp([...t.keys()].join(`|`).replace(/[.*()]/g,`\\$&`),`g`);return e=>e.replace(n,e=>t.get(e)??e)}function Bt(e){return e==null||e===``}function Vt(e,t,n){if(typeof t!=`string`)return``+(t??void 0);let r=e===`_splat`;if(r&&(!t||/^[a-zA-Z0-9\-._~!/]*$/.test(t)))return t;let i=encodeURIComponent(t);return r&&(i=i.replaceAll(`%2F`,`/`)),n?n(i):i}function Ht(e,t,n,r,i){let a=e.endsWith(`/`)?`/`:``,o=``;for(let e of t){if(typeof e==`string`){o+=e;continue}let[t,s,c,l]=e,u=t===2,d=u&&l!==void 0?l+a:l,f=n[s];if(t!==3||f!=null){if(i&&(i[s]=f,u&&(i[`*`]=f)),u&&Bt(f)){if(c===`/`&&!d)continue;f=``}o+=c+Vt(s,f,r)+(d||``)}}return o+a||`/`}function Ut(e){return e?.isNotFound===!0}function Wt(){try{return sessionStorage}catch{return}}var Gt=`tsr-scroll-restoration-v1_3`,Kt=Wt();function qt(){try{return JSON.parse(Kt?.getItem(`tsr-scroll-restoration-v1_3`)||`{}`)}catch{return{}}}function Jt(){try{Kt?.setItem(Gt,JSON.stringify(Yt))}catch{}}var Yt=qt(),Xt=`data-scroll-restoration-id`,Zt=e=>e.state.__TSR_key||e.href;function N(e){let t=e.getAttribute(Xt);if(t)return`[${Xt}="${t}"]`;let n=``,r=e,i;for(;i=r.parentNode;){let e=1,t=r;for(;t=t.previousElementSibling;)e++;let a=`${r.localName}:nth-child(${e})`;n=n?`${a} > ${n}`:a,r=i}return n}var Qt=!1,$t=`window`;function en(e){try{return typeof e==`function`?e():document.querySelector(e)}catch{}}function tn(e){let t=new Set;for(let n of e){if(n===$t)continue;let e=en(n);e&&t.add(e)}return t}function nn(e,t){let n=t??e.options.scrollRestoration,r=e._scroll;n&&(r.restoring=!0);let i=e.options.getScrollRestorationKey||Zt,a=new Set,o=e=>{let t=Yt[e]||={};for(let e of a)e===document?t[$t]={scrollX,scrollY}:e.isConnected&&(t[N(e)]={scrollX:e.scrollLeft,scrollY:e.scrollTop})};n&&!r.restoration&&(r.restoration=!0,Qt=!1,history.scrollRestoration=`manual`,document.addEventListener(`scroll`,e=>{Qt||a.add(e.target)},!0),e.subscribe(`onBeforeLoad`,e=>{e.fromLocation&&o(i(e.fromLocation)),a.clear()}),addEventListener(`pagehide`,()=>{o(i(e.stores.resolvedLocation.get()??e.stores.location.get())),Jt()})),!r.reset&&(r.reset=!0,e.subscribe(`onRendered`,t=>{let n=e.options.scrollRestorationBehavior,o=e.options.scrollToTopSelectors,s=r.next,c=r.hash,l;if(a.clear(),r.next=!0,r.hash=!1,typeof e.options.scrollRestoration==`function`&&!e.options.scrollRestoration({location:e.latestLocation}))return;let u=i(t.toLocation),d=t.fromLocation&&i(t.fromLocation);if(r.restoring&&d&&d!==u){let e=Yt[d];if(e){let t=Yt[u];for(let n in e){if(n===$t){if(s)continue}else{let e=en(n);if(!e||s&&o&&(l??=tn(o),l.has(e)))continue}t||=Yt[u]={},t[n]??=e[n]}}}Qt=!0;try{let e=t.toLocation.hash,i=t.toLocation.state.__hashScrollIntoViewOptions??!0,a=!1;if(s){!e&&o&&(l??=tn(o));let t=e&&i&&c,s=r.restoring?Yt[u]:void 0;if(s)for(let e in s){let{scrollX:r,scrollY:i}=s[e];if(e===$t){if(t)continue;scrollTo({top:i,left:r,behavior:n}),a=!0}else{let t=en(e);t&&(t.scrollLeft=r,t.scrollTop=i,l?.delete(t))}}if(!e){let e={top:0,left:0,behavior:n};if(a||scrollTo(e),l)for(let t of l)t.scrollTo(e)}}!a&&e&&i&&document.getElementById(e)?.scrollIntoView(i)}finally{Qt=!1}}))}function rn(e,t=String){let n;for(let r in e){let i=e[r];i!==void 0&&(n||=new URLSearchParams).set(r,t(i))}return n?n.toString():``}function an(e){return e?e===`false`?!1:e===`true`?!0:e*0==0&&+e+``===e?+e:e:``}function on(e){let t=new URLSearchParams(e),n=Object.create(null);for(let[e,r]of t.entries()){let t=n[e];t==null?n[e]=an(r):Array.isArray(t)?t.push(an(r)):n[e]=[t,an(r)]}return n}var sn=/^(?:\s|["[{\d-]|fa|nu|tr)/,cn=un(JSON.parse),ln=dn(JSON.stringify,JSON.parse);function un(e){let t=e===JSON.parse;return n=>{n[0]===`?`&&(n=n.substring(1));let r=on(n);for(let n in r){let i=r[n];if(typeof i==`string`){if(t&&!sn.test(i))continue;try{r[n]=e(i)}catch{}}}return r}}function dn(e,t){let n=t===JSON.parse;function r(r){if(r&&typeof r==`object`)try{return e(r)}catch{}else if(t&&typeof r==`string`){if(n&&!sn.test(r))return r;try{return t(r),e(r)}catch{}}return r}return e=>{let t=rn(e,r);return t?`?${t}`:``}}var fn=`__root__`;function pn(e){e.statusCode=e.statusCode||e.code||307;let t=new Headers(e.headers);e.href&&t.get(`Location`)===null&&t.set(`Location`,e.href);let n=new Response(null,{status:e.statusCode,headers:t});if(n.options=e,e.throw)throw n;return n}function mn(e){return e instanceof Response&&!!e.options}function hn(e){let t=new Map,n,r;return{get(e){let n=t.get(e);if(n)return n.visited=!0,n.value},set(i,a){let o=t.get(i);if(o){o.value=a;return}if(t.size>=e){let e=n?.next().value;for(;!e||e.visited;)e?e.visited=!1:n=t.values(),e=n.next().value;e===r&&(n=void 0),t.delete(e.key)}let s={key:i,value:a,visited:!1};r=s,t.set(i,s)},clear(){t.clear(),n=void 0,r=void 0}}}var gn=4,_n=5;function vn(e){let t=e.names;if(t)return t;let n=[];for(let t of e)typeof t!=`string`&&n.push(t[1]);return e.names=n}function yn(e,t,n){let r=e.substring(t,n);if(r.charCodeAt(0)===36)return r.length===1?[2,`_splat`,``,void 0]:[1,r.substring(1),``,``];let i=r.indexOf(`{`);if(i>=0){let a=r.indexOf(`}`,i),o=r.charCodeAt(i+1)===45,s=i+(o?3:2);if(a>=0&&r.charCodeAt(s-1)===36&&(!o||s!e.parse&&e.caseSensitive===_&&e.prefix===h&&e.suffix===g);if(y)c=y;else{let e=Sn(r,t,_,h,g);c=e,v.push(e),v.length===2&&i?.push(v)}}r=c}p&&m=0;e--){let n=i.wildcard[e],{prefix:r,suffix:a}=n;if(!r||!_&&(n.caseSensitive?v:y??=v.toLowerCase()).startsWith(r)){if(a){if(_)continue;let e=t.slice(u).join(`/`),i=e.slice(-a.length);if((n.caseSensitive?i:i.toLowerCase())!==a||e.length-a.length=0;t--){let n=i.optional[t];s.push({node:n,index:u,skipped:e,statics:f,dynamics:p,optionals:m,extract:h,rawParams:g})}if(!_)for(let e=i.optional.length-1;e>=0;e--){let t=i.optional[e],{prefix:n,suffix:r}=t;if(n||r){let e=t.caseSensitive?v:y??=v.toLowerCase();if(n&&!e.startsWith(n)||r&&e.indexOf(r,e.length-r.length)=0;e--){let t=i.dynamic[e],{prefix:n,suffix:r}=t;if(n||r){let e=t.caseSensitive?v:y??=v.toLowerCase();if(n&&!e.startsWith(n)||r&&e.indexOf(r,e.length-r.length)=0;e--){let t=i.pathless[e];s.push({node:t,index:u,skipped:d,statics:f,dynamics:p,optionals:m,extract:h,rawParams:g})}}if(l)return l;if(r&&c){let n=c.index;for(let e=0;ee.statics||t.statics===e.statics&&(t.dynamics>e.dynamics||t.dynamics===e.dynamics&&(t.optionals>e.optionals||t.optionals===e.optionals&&((t.node.kind===gn)>(e.node.kind===gn)||t.node.kind===gn==(e.node.kind===gn)&&t.node.depth>e.node.depth)))}function Ln(e,t,n){let r=It(e),i=`/${r}`,a=t?i:i.toLowerCase(),o=`${a}/`,s={input:({url:e})=>{let n=t?e.pathname:e.pathname.toLowerCase();return n===a?e.pathname=`/`:n.startsWith(o)&&(e.pathname=e.pathname.slice(i.length)),e},output:({url:e})=>(e.pathname=Nt(`/${r}${e.pathname}`),e)};return n?{input:({url:e})=>Rn(n,s.input({url:e})),output:({url:e})=>s.output({url:zn(n,e)})}:s}function Rn(e,t){let n=e?.input?.({url:t});if(n){if(typeof n==`string`)return new URL(n);if(n instanceof URL)return n}return t}function zn(e,t){let n=e?.output?.({url:t});if(n){if(typeof n==`string`)return new URL(n);if(n instanceof URL)return n}return t}function Bn(e,t){let{createMutableStore:n,createReadonlyStore:r,batch:i}=t,a=new Map,o=n(`idle`),s=n(e),c=n(void 0),l=n([]),u=r(()=>l.get().map(e=>a.get(e).get())),d=r(()=>({status:o.get(),isLoading:o.get()===`pending`,matches:u.get(),location:s.get(),resolvedLocation:c.get()}));function f(e){let t=a.get(e);return t||(t=n(void 0),a.set(e,t)),t}let p={status:o,location:s,resolvedLocation:c,ids:l,matches:u,byRoute:a,__store:d,getMatchStore:f,setMatches:m};function m(e){let t=l.get(),n=e.map(e=>e.routeId);i(()=>{jt(t,n)||l.set(n);for(let e of t)n.includes(e)||a.get(e).set(()=>void 0);for(let t of e){let e=f(t.routeId);e.get()!==t&&e.set(t)}})}return p}var Vn=`__TSR_index`,Hn=`popstate`,Un=`beforeunload`,Wn=/^[\x00-\x20]*(?:[\\/][\t\n\r]*){2,}/;function Gn(e){let t=Wn.exec(e);return t?`/`+e.slice(t[0].length):e}function Kn(e){return/[\x00-\x1f\x7f]/.test(e)&&(e=e.replace(/[\x00-\x1f\x7f]/g,e=>` +\r`.includes(e)?``:encodeURIComponent(e))),Gn(e)}function qn(e){let t=e.getLocation(),n=new Set,r=r=>{t=e.getLocation(),n.forEach(e=>e({location:t,action:r}))},i=n=>{e.notifyOnIndexChange??!0?r(n):t=e.getLocation()},a=async({task:n,navigateOpts:r,...i})=>{if(r?.ignoreBlocker??!1){n();return}let a=e.getBlockers?.()??[],o=i.type===`PUSH`||i.type===`REPLACE`;if(typeof document<`u`&&a.length&&o)for(let n of a){let r=Xn(i.path,i.state);if(await n.blockerFn({currentLocation:t,nextLocation:r,action:i.type})){e.onBlocked?.();return}}n()};return{get location(){return t},get length(){return e.getLength()},subscribers:n,subscribe:e=>(n.add(e),()=>{n.delete(e)}),push:(n,i,o)=>{let s=t.state[Vn];i=Jn(s+1,i),a({task:()=>{e.pushState(n,i),r({type:`PUSH`})},navigateOpts:o,type:`PUSH`,path:n,state:i})},replace:(n,i,o)=>{let s=t.state[Vn];i=Jn(s,i),a({task:()=>{e.replaceState(n,i),r({type:`REPLACE`})},navigateOpts:o,type:`REPLACE`,path:n,state:i})},go:(t,n)=>{a({task:()=>{e.go(t,n?.ignoreBlocker??!1),i({type:`GO`,index:t})},navigateOpts:n,type:`GO`})},back:t=>{a({task:()=>{e.back(t?.ignoreBlocker??!1),i({type:`BACK`})},navigateOpts:t,type:`BACK`})},forward:t=>{a({task:()=>{e.forward(t?.ignoreBlocker??!1),i({type:`FORWARD`})},navigateOpts:t,type:`FORWARD`})},canGoBack:()=>t.state[Vn]!==0,createHref:t=>e.createHref(t),block:t=>{if(!e.setBlockers)return()=>{};let n=e.getBlockers?.()??[];return e.setBlockers([...n,t]),()=>{let n=e.getBlockers?.()??[];e.setBlockers?.(n.filter(e=>e!==t))}},flush:()=>e.flush?.(),destroy:()=>e.destroy?.(),notify:r,_getBlockers:()=>e.getBlockers?.()??[]}}function Jn(e,t){let n=Zn();return{...t,key:n,__TSR_key:n,[Vn]:e}}function Yn(e){let t=e?.window??(typeof document<`u`?window:void 0),n=t.history.pushState,r=t.history.replaceState,i=[],a=()=>i,o=e=>i=e,s=t=>Kn(e?.createHref?e.createHref(t):t),c=e?.parseLocation??(()=>Xn(`${t.location.pathname}${t.location.search}${t.location.hash}`,t.history.state));if(!t.history.state?.__TSR_key&&!t.history.state?.key){let e=Zn();t.history.replaceState({[Vn]:0,key:e,__TSR_key:e},``)}let l=c(),u,d=!1,f=!1,p=!1,m=!1,h=()=>l,g,_=()=>{g&&(S._ignoreSubscribers=!0,(g[2]?t.history.pushState:t.history.replaceState)(g[1],``,g[0]),S._ignoreSubscribers=!1,g=void 0,u=void 0)},v=(t,n,r)=>{let i=e?.createHref?s(n):void 0,a=!!g;a||(u=l),l=Xn(n,r),g=[i??l.href,r,g?.[2]||t],a||queueMicrotask(()=>_())},y=e=>{l=c(),S.notify({type:e})},b=async()=>{if(m=!1,f){f=!1;return}let e=c(),n=e.state[Vn]-l.state[Vn],r=n===1,i=n===-1,o=!r&&!i||d;d=!1;let s=o?`GO`:i?`BACK`:`FORWARD`,u=o?{type:`GO`,index:n}:{type:i?`BACK`:`FORWARD`};if(p)p=!1;else{let r=a();if(typeof document<`u`&&r.length){for(let i of r)if(await i.blockerFn({currentLocation:l,nextLocation:e,action:s})){f=!0,t.history.go(-n),S.notify(u);return}}}l=c(),S.notify(u)},x=e=>{if(m){m=!1;return}let t=!1,n=a();if(typeof document<`u`&&n.length)for(let e of n){let n=e.enableBeforeUnload??!0;if(n===!0){t=!0;break}if(typeof n==`function`&&n()===!0){t=!0;break}}if(t)return e.preventDefault(),e.returnValue=``},S=qn({getLocation:h,getLength:()=>t.history.length,pushState:(e,t)=>v(!0,e,t),replaceState:(e,t)=>v(!1,e,t),back:e=>(e&&(p=!0,m=!0),t.history.back()),forward:e=>{e&&(p=!0,m=!0),t.history.forward()},go:(e,n)=>{d=!0,n&&(p=!0,m=!0),t.history.go(e)},createHref:e=>s(e),flush:_,destroy:()=>{t.history.pushState=n,t.history.replaceState=r,t.removeEventListener(Un,x,{capture:!0}),t.removeEventListener(Hn,b)},onBlocked:()=>{u&&l!==u&&(l=u)},getBlockers:a,setBlockers:o,notifyOnIndexChange:!1});return S._ignoreNextBeforeUnload=e=>{m=!1;try{e=new URL(e,t.document.baseURI).href,m=/^https?:/.test(e)&&(!e.includes(`#`)||e.split(`#`)[0]!==t.location.href.split(`#`)[0])}catch{}},t.addEventListener(Un,x,{capture:!0}),t.addEventListener(Hn,b),t.history.pushState=function(...e){let r=n.apply(t.history,e);return S._ignoreSubscribers||y(`PUSH`),r},t.history.replaceState=function(...e){let n=r.apply(t.history,e);return S._ignoreSubscribers||y(`REPLACE`),n},S}function Xn(e,t){let n=Kn(e),r=n.indexOf(`#`),i=n.indexOf(`?`);if(!t){let e=Zn();t={[Vn]:0,key:e,__TSR_key:e}}return{href:n,pathname:n.substring(0,r>0?i>0?Math.min(r,i):r:i>0?i:n.length),hash:r>-1?n.substring(r):``,search:i>-1?n.slice(i,r===-1?void 0:r):``,state:t}}function Zn(){return(Math.random()+1).toString(36).substring(7)}function Qn(e,t){return e.protocol!==`http:`&&e.protocol!==`https:`||e.origin!==t||!!e.username||!!e.password}function $n(e){return e.pathname+e.search+e.hash}function er(e){return e.options.loader||e.options.beforeLoad||e.lazyFn||e.options.component?.preload||e.options.pendingComponent?.preload}function tr(e,t){return{fromLocation:t,toLocation:e,pathChanged:t?.pathname!==e.pathname,hrefChanged:t?.href!==e.href,hashChanged:t?.hash!==e.hash}}function nr({key:e,__TSR_key:t,__TSR_index:n,__hashScrollIntoViewOptions:r,...i}){return i}function rr(e){return e.findIndex(e=>e.status===`error`||e.status===`notFound`||e._notFound)+1}function ir(e,t,n,r,i,a){r&&(t=t.slice(0,r)),i&&(n=n.slice(0,i));for(let r of t){if(a&&e._tx!==a)return;n.some(e=>e.routeId===r.routeId)||e.routesById[r.routeId].options.onLeave?.(r)}for(let r of n){if(a&&e._tx!==a)return;e.routesById[r.routeId].options[t.some(e=>e.routeId===r.routeId)?`onStay`:`onEnter`]?.(r)}}var ar=class{constructor(e,t){this.tempLocationKey=`${Math.round(Math.random()*1e7)}`,this._scroll={next:!0},this.subscribers=new Set,this._cache=new Map,this._committed=[],this.startTransition=async e=>(e(),!1),this.update=e=>{let t=this.options;this.options={...t,...e},this.isServer=this.options.isServer??!1??typeof document>`u`,this.staticLocations=new WeakMap,this.protocolAllowlist=new Set(this.options.protocolAllowlist),(!this.history||this.options.history&&this.options.history!==this.history)&&(this.history=this.options.history?this.options.history:Yn()),this.origin=this.options.origin,this.origin||=window?.origin&&window.origin!==`null`?window.origin:`http://localhost`;let n=this.options.basepath??`/`,r=this.options.rewrite,i=this.basepath!==n||t?.rewrite!==r||t?.caseSensitive!==this.options.caseSensitive;if(i&&(this.basepath=n,this.rewrite=n!==`/`&&It(n)?Ln(n,this.options.caseSensitive,r):r),this.history&&this.updateLatestLocation(),this.options.routeTree!==this.routeTree){this.routeTree=this.options.routeTree;let e;e=this.buildRouteTree(),this.setRoutes(e)}if(this.stores)i&&this.stores.location.set(this.latestLocation);else if(this.latestLocation){let e=this.getStoreConfig(this);this.batch=e.batch,this.stores=Bn(this.latestLocation,e),nn(this)}},this.updateLatestLocation=()=>{this.latestLocation=this.parseLocation(this.history.location,this.latestLocation)},this.buildRouteTree=()=>{let e=Dn(this.routeTree,this.options.caseSensitive);return this.options.routeMasks&&Cn(this.options.routeMasks,e.processedTree),{...e,resolvePathCache:hn(1e3)}},this.subscribe=(e,t)=>{let n={eventType:e,fn:t};return this.subscribers.add(n),()=>{this.subscribers.delete(n)}},this.emit=e=>{for(let t of this.subscribers)if(t.eventType===e.type)try{t.fn(e)}catch(e){console.error(e)}},this.parseLocation=(e,t)=>{let n=({pathname:e,search:n,hash:r,href:i},a)=>{if(!this.rewrite&&!/[ \x00-\x1f\x7f\u0080-\uffff]/.test(e)){let i=this.options.parseSearch(n),o=this.options.stringifySearch(i);return{href:e+o+r,publicHref:e+o+r,pathname:kt(e),external:!1,searchStr:o,search:_t(t?.search,i),hash:kt(r.slice(1)),state:vt(t?.state,a)}}let o=Rn(this.rewrite,new URL(i,this.origin)),s=this.options.parseSearch(o.search),c=this.options.stringifySearch(s);return o.search=c,{href:o.href.replace(o.origin,``),publicHref:i,pathname:kt(Gn(o.pathname)),external:!!this.rewrite&&Qn(o,this.origin),searchStr:c,search:_t(t?.search,s),hash:kt(o.hash.slice(1)),state:vt(t?.state,a)}},r=n(e,e.state),{__tempLocation:i,__tempKey:a}=r.state;if(i&&(!a||a===this.tempLocationKey)){let e=n(i,{...i.state,__tempLocation:void 0,key:r.state.key,__TSR_key:r.state.__TSR_key});return e.maskedLocation=r,e}return r},this.matchRoutes=(e,t,n)=>typeof e==`string`?this.matchRoutesInternal({pathname:e,search:t},n):this.matchRoutesInternal(e,t),this.getMatchedRoutes=e=>{let t=Object.create(null),n=En(Ft(e),this.processedTree,!0);return n&&Object.assign(t,n.rawParams),[n?.branch||[this.routesById.__root__],t,n?.route]},this.buildLocation=e=>{{let t=this.staticLocations.get(e);if(t)return t}let t=!1,n=(n={})=>{if(n.href){let e=Xn(n.href,{});n={...n,to:Rn(this.rewrite,new URL(e.pathname,this.origin)).pathname,search:this.options.parseSearch(e.search),hash:e.hash.slice(1)}}let r=n._fromLocation||this._pendingLocation||this.latestLocation,i,a=()=>(t=!0,r),o=()=>(t=!0,i??=this.matchRoutesLightweight(r)),s=n.to?`${n.to}`:`.`,c=Rt(s[0]===`/`?``:n.unsafeRelative===`path`?a().pathname:n.from??o()[1],s,this.options.trailingSlash,this.resolvePathCache),l=this.routesByPath[Ft(c)],u=c.includes(`$`),d;if(l)d=l._branch??=An(l);else if(u)d=[];else{let[e,t,n]=this.getMatchedRoutes(c);d=e,this.options.notFoundRoute&&(!n||n.path!==`/`&&t[`**`])&&(d=[...d,this.options.notFoundRoute])}let f=u?l?._interpolation??bn(!1,{fullPath:c},0):void 0,p;for(let e of d){let t=e.options.params?.stringify??e.options.stringifyParams;if(t){let e=o()[3];if(p??=ur(n.params,e),!ht(p))break;p===e&&(p=Object.assign(gt(),p));try{Object.assign(p,t(p))}catch{}}}p??=ur(n.params,dr(n.params,f)?o()[3]:fr);let m=e.leaveParams?c:Gn(kt(f?Ht(c,f,p,this.pathParamsDecoder):c)),h=pr(d,e._includeValidateSearch),g=()=>{let t=o()[2];if(e._includeValidateSearch&&this.options.search?.strict){let e={};d.forEach(n=>{if(n.options.validateSearch)try{Object.assign(e,lr(n.options.validateSearch,{...e,...t}))}catch{}}),t=e}return t},_=h.length?mr(h,g(),n):n.search===!0?g():typeof n.search==`function`?n.search(g()):n.search||fr,v=this.options.stringifySearch(_),y=n.hash===!0?a().hash:typeof n.hash==`function`?n.hash(a().hash):n.hash||void 0,b=y?`#${y}`:``,x=n.state?n.state===!0?a().state:typeof n.state==`function`?n.state(a().state):n.state:fr,S=`${m}${v}${b}`,C,w,T=!1;if(this.rewrite){let e=new URL(S,this.origin),t=e.origin,n=zn(this.rewrite,e);C=$n(e),Qn(n,t)?(w=n.href,T=!0):w=Gn($n(n))}else C=At(S),w=C;return{publicHref:w,href:C,pathname:m,search:_,searchStr:v,state:x,hash:y??``,external:T,unmaskOnReload:n.unmaskOnReload}},r=n(e);if(e.mask)r.maskedLocation=n({from:e.from,...e.mask});else if(this.options.routeMasks){let t=wn(r.pathname,this.processedTree);if(t){let i=Object.assign(gt(),t.rawParams),{from:a,params:o,...s}=t.route,c=ur(o,i);r.maskedLocation=n({from:e.from,...s,params:c})}}return!t&&e._fromLocation&&!r.maskedLocation&&this.staticLocations.set(e,r),r},this.commitLocation=async({viewTransition:e,ignoreBlocker:t,...n})=>{let r=n.maskedLocation??n;if(r.external)return or(this,r.publicHref,{replace:n.replace,ignoreBlocker:t});let i,a=Ft(this.latestLocation.href)===Ft(n.href)&&bt(nr(n.state),nr(this.latestLocation.state)),o=this._commitPromise,s,c=new Promise(e=>{s=e});if(c.resolve=()=>{s(),o?.resolve()},this._commitPromise=c,a)this.load();else{let{maskedLocation:r,hashScrollIntoView:a,...o}=n;r&&(o={...r,state:{...r.state,__tempKey:void 0,__tempLocation:{...o,search:o.searchStr,state:{...o.state,__tempKey:void 0,__tempLocation:void 0,__TSR_key:void 0,key:void 0}}}},(o.unmaskOnReload??this.options.unmaskOnReload??!1)&&(o.state.__tempKey=this.tempLocationKey)),o.state={...o.state,__hashScrollIntoViewOptions:a??this.options.defaultHashScrollIntoView??!0},this.shouldViewTransition=e,i=n.replace?`REPLACE`:`PUSH`,this.history[i===`REPLACE`?`replace`:`push`](o.publicHref,o.state,{ignoreBlocker:t}),this.history.subscribers.size||this.load({action:{type:i}})}return this._scroll.next=n.resetScroll??!0,this._commitPromise},this.buildAndCommitLocation=({replace:e,resetScroll:t,hashScrollIntoView:n,viewTransition:r,ignoreBlocker:i,...a}={})=>{let o=this.buildLocation({...a,_includeValidateSearch:!0});this._pendingLocation=o;let s=this.commitLocation({...o,viewTransition:r,replace:e,resetScroll:t,hashScrollIntoView:n,ignoreBlocker:i});return queueMicrotask(()=>{this._pendingLocation===o&&(this._pendingLocation=void 0)}),s},this.navigate=async({to:e,reloadDocument:t,href:n,publicHref:r,...i})=>{let a=n?Et(n):void 0;if(a||t){if(e!==void 0||!n){let t=this.buildLocation({to:e,...i}),a=t.maskedLocation??t;n??=a.publicHref,r??=a.publicHref}let t=!a&&r?r:n;return or(this,t,i)}return this.buildAndCommitLocation({...i,href:n,to:e,_isNavigate:!0})},this.load=async e=>{this.updateLatestLocation(),e?.action&&(this._scroll.hash=e.action.type===`PUSH`||e.action.type===`REPLACE`),await oi(this,e)},this.startViewTransition=e=>{let t=this.shouldViewTransition??this.options.defaultViewTransition;if(this.shouldViewTransition=void 0,t&&typeof document.startViewTransition==`function`){let n;if(typeof t==`object`&&window.CSS?.supports?.(`selector(:active-view-transition-type(a))`)){let r=this.latestLocation,i=this.stores.resolvedLocation.get(),a=typeof t.types==`function`?t.types(tr(r,i)):t.types;if(a===!1)return e();n={update:e,types:a}}else n=e;return document.startViewTransition(n).updateCallbackDone}return e()},this.invalidate=e=>{let t=this._committed,n=e?.filter,r=this._preloads,i=new Set,a=e=>{(!n||n(e))&&i.add(e.id)};t.forEach(a),this._cache.forEach(a),r?.forEach(e=>e.forEach(a)),this._tx?.[3].forEach(a);let o=[];for(let[e,t]of r??[])t.some(e=>i.has(e.id))&&(r.delete(e),o.push(e));let s=t=>{if(i.has(t.id)){let n=this.routesById[t.routeId],r={...t,invalid:!0,...(e?.forcePending||t.status===`error`||t.status===`notFound`)&&er(n)?{status:`pending`,error:void 0}:void 0};return t._flight=void 0,r}return t};this._committed=t.map(s);for(let[t,n]of this._cache)i.has(t)&&(n.invalid=!0,e?.forcePending&&(n.status=`pending`));for(let e of i)this._flights?.delete(e);for(let e of o)e.abort();return this.shouldViewTransition=!1,this.load({sync:e?.sync})},this.resolveRedirect=e=>{let t=e.options,n=e.headers.get(`Location`)||t.href;if(!n){let e=this.buildLocation(t);n=(e.maskedLocation??e).publicHref||`/`}let r;if(Dt.test(n)||(r=Et(n))&&!this.protocolAllowlist.has(r))throw Error(`Redirect blocked: unsafe protocol`);if(r===`http:`||r===`https:`){let e=new URL(n);e.pathname.startsWith(`//`)?n=e.href:Qn(e,this.origin)||(n=$n(e),r=void 0)}return r&&(t.reloadDocument=!0),t.href=n,e.headers.set(`Location`,n),e},this.clearCache=e=>{let t=this._cache,n=this._preloads,r=e?.filter,i=[],a=[];for(let[e,n]of t)(!r||r(n))&&(a.push(e),i.push(n));let o=[];for(let[e,t]of n??[])(!r||t.some(r))&&(o.push(e),i.push(...t));for(let e of a)t.delete(e);for(let e of o)n.delete(e);for(let e of i){let t=e._flight;e._flight=void 0,t&&!--t[2]&&(this._flights?.get(e.id)===t&&this._flights.delete(e.id),o.push(t[1]))}for(let e of o)e.abort()},this.loadRouteChunk=yr,this.preloadRoute=e=>si(this,e),this.matchRoute=(e,t)=>{let n={...e,to:e.to?Rt(e.from||``,e.to,this.options.trailingSlash,this.resolvePathCache):void 0,params:e.params||{},leaveParams:!0},r=this.buildLocation(n),i=this.stores.status.get()===`pending`;if(t?.pending&&!i)return!1;let a=t?.pending??!i?this.latestLocation:this.stores.resolvedLocation.get()||this.stores.location.get(),o=Tn(r.pathname,t?.caseSensitive??!1,t?.fuzzy??!1,a.pathname,this.processedTree);return!o||e.params&&!bt(o.rawParams,e.params,!0)?!1:t?.includeSearch??!0?bt(a.search,r.search,!0)?o.rawParams:!1:o.rawParams},this.getStoreConfig=t,e.pathParamsAllowedCharacters?.length&&(this.pathParamsDecoder=zt(e.pathParamsAllowedCharacters)),this.update({defaultPreloadDelay:50,defaultPendingMs:1e3,defaultPendingMinMs:500,context:void 0,...e,caseSensitive:e.caseSensitive??!1,notFoundMode:e.notFoundMode??`fuzzy`,stringifySearch:e.stringifySearch??ln,parseSearch:e.parseSearch??cn,protocolAllowlist:e.protocolAllowlist??Tt}),self.__TSR_ROUTER__=this}isShell(){return!!this.options.isShell}get state(){return this.stores.__store.get()}setRoutes(e){Object.assign(this,e),this.lightweightCache=new WeakMap,this.staticLocations=new WeakMap;let t=this.options.notFoundRoute;t&&(t.init(99999999999),this.routesById[t.id]!==t&&(t._interpolation=bn(!1,t,0)),this.routesById[t.id]=t)}matchRoutesInternal(e,t){let[n,r,i]=this.getMatchedRoutes(e.pathname),a=n,o=!1;(i?i.path!==`/`&&r[`**`]:Ft(e.pathname))&&(this.options.notFoundRoute?a=[...a,this.options.notFoundRoute]:o=!0);let s=o?hr(this.options.notFoundMode,a):void 0,c=Array(a.length),l=this._committed,u=(e,t)=>{let n=l[t];return n?.routeId===e.id?n:e===this.options.notFoundRoute?l.find(t=>t.routeId===e.id):void 0},d;for(let n=0;ntypeof t!=`string`&&!mt.call(e,t[1]))}var fr=Object.freeze({});function pr(e,t){let n=[];for(let r=0;r{let n=t(i.preSearchFilters?i.preSearchFilters.reduce((e,t)=>t(e),e):e);return i.postSearchFilters?i.postSearchFilters.reduce((e,t)=>t(e),n):n});let a=i.validateSearch;t&&a&&n.push(({search:e,next:t,meta:n})=>{let r=t(e);try{let e=lr(a,r);if(n&&e)for(let t in e)t in r||(n.defaulted||=new Map).set(t,e[t]);return{...r,...e}}catch{}return r})}return n}function mr(e,t,n){let r=(t,i,a)=>{if(t>=e.length){if(!n.search)return{};if(n.search===!0)return i;let e=pt(n.search,i);return a&&(a.explicit=e),e}return e[t]({search:i,next:(e,n)=>{if(n){let n=a||{};return{search:r(t+1,e,n),meta:n}}return r(t+1,e,a)},meta:a})};return r(0,t)}function hr(e,t){if(e!==`root`){let e;for(let n=t.length-1;n>=0;n--){let r=t[n];if(r.options.notFoundComponent)return r.id;e||=r.children&&r.id}if(e)return e}return fn}function gr(e,t){let n=e.options.params?.parse??e.options.parseParams;n&&Object.assign(t,n(t))}function _r(e,t){return e.options[t]?.preload?.()}function vr(e,t){let n=_r(e,`component`),r=_r(e,`pendingComponent`);return t&&(r?r=r.then(t):t()),n&&r?Promise.all([n,r]).then(()=>{}):n??r}function yr(e,t,n){let r=()=>t===!1?void 0:t?_r(e,t):vr(e,n),i=e._lazy;if(i)return i===!0?r():i.then(r);if(!e.lazyFn)return r();let a=e.lazyFn().then(t=>{{let{id:n,...r}=t.options;Object.assign(e.options,r),e._lazy=!0}},t=>{throw e._lazy=void 0,t});return e._lazy=a,a.then(r)}function br(e){let t=e.findIndex(e=>e.status!==`success`||e._notFound)+1;return t&&t{let i=()=>r(t);t.addEventListener(`abort`,i,{once:!0}),Promise.resolve(e).then(n,r).then(()=>t.removeEventListener(`abort`,i))})}function Or(e,t){return e.routesById[t.routeId]}function kr(e,t,n){return mn(e)?[wr,e]:Ut(e)?(e.routeId||=n,[Cr,e]):t?(typeof e?.then==`function`&&(e=Error(`A Promise was thrown`,{cause:e})),[Sr,e]):[xr,e]}function Ar(e,t){let n=kr(t,!0,e.id);if(n[0]!==Sr)return n;try{e.options.onError?.(n[1])}catch(t){n=kr(t,!0,e.id)}return n}function jr(e,t,n,r,i){return i[0].signal.aborted?Tr:qr(e,t,n,Ar(n,r),i)}async function Mr(e,t,n,r,i,a){let[o,s]=t,c=n[0].signal,l=!!n[3];for(let i=n[6]??0;ie.navigate({...t,_fromLocation:o}),buildLocation:e.buildLocation,cause:l?`preload`:r.cause,abortController:n[0],preload:l,matches:s,routeId:u.id};try{let e=r._ctx||=u.options.context?u.options.context({...f,deps:r.loaderDeps,context:d})||{}:void 0;r.context={...d,...e}}catch(a){return Pr(e,r),[i,jr(e,t,u,a,n)]}if(c.aborted)return[i,Tr];let p=r.paramsError??r.searchError;if(p!==void 0)return Pr(e,r),[i,jr(e,t,u,p,n)];let m=u.options.beforeLoad;if(!m)continue;let h=r.status;i>=a&&(r.status=`pending`,n[7]?.());try{Lr(e,r,`beforeLoad`,n[0]);let a=m({...f,search:r.search,context:r.context,...e.options.additionalContext}),o=await(typeof a?.then==`function`?Dr(a,c):a);if(c.aborted)return[i,Tr];let s=qr(e,t,u,kr(o,!1,u.id),n);if(s[0]!==xr)return Pr(e,r),[i,s];r.context={...r.context,...o}}catch(a){return Pr(e,r),[i,jr(e,t,u,a,n)]}finally{r.status=h,Lr(e,r,!1,n[0])}}i()}function Nr(e,t,n){if(!(!n||--n[2])){if(e._flights?.get(t.id)===n){let n=e._tx;if(n&&!n[0].signal.aborted&&!n[3].includes(t)&&n[3].some(e=>e.id===t.id)&&n[3].some(e=>e.isFetching===`beforeLoad`))return;e._flights.delete(t.id)}return n[1]}}function Pr(e,t){let n=t._flight;t._flight=void 0,Nr(e,t,n)?.abort()}function Fr(e,t,n,r){let i=[];for(let a of t)if(!n?.includes(a)){let t=a._flight;if(a._flight=void 0,r&&t?.[2]===1&&e._flights?.get(a.id)===t&&n?.some(e=>e.id===a.id))t[2]=0;else{let n=Nr(e,a,t);n&&i.push(n)}}for(let e of i)e.abort()}function Ir(e){for(let t of e){let e=t._flight;e&&e[2]++}}function Lr(e,t,n,r){if(t.isFetching=n,r&&e._tx?.[0]!==r)return;let i=e.stores.byRoute.get(t.routeId),a=i?.get();a?.id===t.id&&i.set({...a,isFetching:n})}function Rr(e,t,n,r,i,a,o){let s=t[0];return{params:n.params,location:s,navigate:t=>e.navigate({...t,_fromLocation:s}),cause:o?`preload`:n.cause,abortController:i,preload:o,deps:n.loaderDeps,parentMatchPromise:a,context:n.context,route:r,...e.options.additionalContext}}async function zr(e,t,n,r,i,a,o){let s=o[0],c=s.signal;if(c.aborted)return Tr;if(!i)return[xr,void 0];let l=n._flight;Lr(e,n,`loader`,s);try{if(!l){let s=new AbortController;l=[Promise.resolve().then(()=>i(Rr(e,t,n,r,s,a,!!o[3]))).then(e=>kr(e,!1,r.id),e=>kr(e,!0,r.id)).then(t=>(t[0]!==xr&&e._flights?.get(n.id)===l&&(e._flights.delete(n.id),l[2]||s.abort()),t[0]===Sr&&l[2]?Ar(r,t[1]):t)),s,1],(e._flights??=new Map).set(n.id,l)}return n._flight=l,n.abortController=l[1],qr(e,t,r,await Dr(l[0],c),o)}catch(t){if(t!==c||!c.aborted)throw t;return Pr(e,n),Tr}finally{Lr(e,n,!1,s)}}function Br(e,t,n){t[0]!==wr&&(e.status=`success`,e.error=void 0,t[0]===xr?(e.loaderData=t[1],e.invalid=!1,e.updatedAt=Date.now(),e.preload=n):e.invalid=!0)}function Vr(e,t,n){let r=e._cache.get(t.id);if(r!==n||e._committed.some(e=>e.id===t.id&&e._flight===t._flight))return;let i={...t,_notFound:void 0,context:{}};i._flight&&i._flight[2]++,e._cache.set(t.id,i),r&&Pr(e,r)}function Hr(e,t){return t[0]===Sr||t[0]===Cr?{...e,status:t[0]===Sr?`error`:`notFound`,error:t[1],_flight:void 0}:e}function Ur(e,t,n,r,i,a,o){let s=t[1][n],c=Or(e,s),l=!!a[3],u=e._cache.get(s.id),d,f=!1,p;try{if(s.status===`success`&&(d=c.options.shouldReload,typeof d==`function`&&(d=d(Rr(e,t,s,c,a[0],i,l))),a[0].signal.aborted&&(p=Tr)),!p){if(s.status!==`success`)f=!0;else{let t=l||s.preload?c.options.preloadStaleTime??e.options.defaultPreloadStaleTime??3e4:c.options.staleTime??e.options.defaultStaleTime??0;f=!!(s.invalid||d||d===void 0&&Date.now()-s.updatedAt>=t&&(a[5]||s.cause===`enter`||a[2].some(e=>e.routeId===s.routeId&&e.id!==s.id)))}}}catch(n){s.invalid=!0,Pr(e,s),p=jr(e,t,c,n,a)}let m=c.options.loader,h=typeof m==`function`,g=h?m:m?.handler,_=!l||c.options.preload!==!1,v=_&&m?e._flights?.get(s.id):void 0;v===s._flight||p?v=void 0:v&&!f&&!l&&d===void 0?f=!0:f||(v=void 0);let y=!(!m||!f||s.status!==`success`||l||a[4]||((h?void 0:m.staleReloadMode)??e.options.defaultStaleReloadMode)===`blocking`),b=f&&_,x=b&&!y&&(s.status!==`success`||!!m),S=n>=o?a[7]:void 0,C=c.lazyFn&&c._lazy!==!0?S:void 0;if(b&&!m&&(s.invalid=!1,s.updatedAt=Date.now()),v&&v[2]++,x){let t=s._flight;s._flight=v,Nr(e,s,t)?.abort(),n>=o&&(s.status=`pending`),S?.()}b||(s.isFetching=!1);let w=!p&&x?zr(e,t,s,c,g,i,a).then(t=>(Br(s,t,l),t[0]===xr&&(m&&!a[0].signal.aborted&&Vr(e,s,u),n>=o&&(s.status=`pending`)),t)):Promise.resolve(p??[xr,s.loaderData]),T=(async()=>{try{let e=yr(c,void 0,C);e&&await Dr(e,a[0].signal)}catch(r){if(!t[1].some((e,t)=>t<=n&&(e.status===`error`||e.status===`notFound`||e._notFound)))return[n,jr(e,t,c,r,a)]}let r=await w;x&&r[0]===xr&&s.status===`pending`&&!a[0].signal.aborted&&(s.status=`success`,S?.())})();if(r.push([n,w,T]),!y)return w.then(e=>Hr(s,e));let ee={...s,status:`pending`,preload:!1,_flight:v};s.invalid=!1,s.isFetching=`loader`;let E=zr(e,t,ee,c,g,i,a).then(e=>(s.isFetching=!1,Br(ee,e,!1),e));return(t[2]??=[]).push([n,E,T,ee]),E.then(e=>Hr(ee,e))}async function Wr(e,t,n,r,i=0){let a=n?.[1][1],o=a?.routeId?t.findIndex(e=>e.routeId===a.routeId):n?.[0]??t.length-1;o<0&&(o=0);for(let n=o;n>=0;n--){let i=Or(e,t[n]);try{let e=yr(i,!1);e&&await Dr(e,r)}catch(e){if(e===r&&r.aborted)throw e}if(i.options.notFoundComponent)return n}return a?.routeId?o:i}function Gr(e,t){t[2]&&=(Fr(e,t[2].map(e=>e[3])),void 0)}async function Kr(e,t,n,r){let i;try{await Promise.all(e.map(e=>e[1].then(async t=>{let a=e[0];if(!(r&&a>=await r)){if(t[0]>=wr)throw[a,t];!i&&t[0]!==xr&&(i=[a,t],await Promise.all((n??[]).map(e=>{if(!(e[0]<=a))return e[1].then(t=>{if(t[0]===wr)throw[e[0],t]})})))}})))}catch(e){return e}return t??i}function qr(e,t,n,r,i,a){for(;r[0]===wr;){let o=r[1],s=o.options;try{if((s.href||o.headers.has(`Location`))&&(e.resolveRedirect(o),s.reloadDocument)||(s.reloadDocument?i[3]:i[1]>=20))return r;let n=e.buildLocation({...s,_fromLocation:t[0],_includeValidateSearch:!0}),a=n.maskedLocation??n;if(a.external){let t=o.clone();return t.options={...s},t.headers.set(`Location`,a.publicHref),e.resolveRedirect(t),i[3]?[wr,t]:[wr,t,a]}return[wr,o,n]}catch(e){r=a?[Sr,e]:Ar(n,e),a=!0}}return r}async function Jr(e,t,n,r,i,a){let o=t[1],s=await i,c=!1,l=o.findIndex(e=>e._notFound),u=t=>t[1][0]===Cr?Wr(e,o,t,r.signal):t[0],d=l<0?o.length:l;if((s?.[1][0]??0)>=wr)d=0;else if(s){d=s[2]??=await u(s);for(let e of n){if(e[0]>=d)break;let t=await e[1];if(t[0]!==xr&&t[0]=d)break;let t=await e[2];if(t){s=t;break}}if((s?.[1][0]??0)>=wr){let n=s[1];if(n[0]!==wr||n[1].options.reloadDocument||n[2])return Gr(e,t),n;c=!0,s=[0,[Sr,Error(`Too many redirects`)]]}let f=s?s[2]??await u(s):l;if(f>=0){let i=s?.[1],l=i?.[0],u=o[f],d=i?.[1],p=()=>{i&&(u._notFound=void 0,l===Sr?u.status=`error`:(d.routeId=u.routeId,u.routeId===e.routeTree.id?(u.status=`success`,u._notFound=!0):u.status=`notFound`),u.error=d,u.isFetching=!1)};p(),i||a?.();let m=Or(e,u);try{await Dr(i?Promise.resolve().then(()=>yr(m,l===Sr?`errorComponent`:`notFoundComponent`)):Promise.all([yr(m),yr(m,`notFoundComponent`)]),r.signal)}catch(n){if(n===r.signal&&r.signal.aborted)return Gr(e,t),Tr}i?c&&(r.abort(),await Promise.all([...n.map(e=>e[1]),...n.map(e=>e[2]),...(t[2]??[]).map(e=>e[1])]),Gr(e,t),Fr(e,o),p()):u.status=`success`}return t}async function Yr(e,t,n,r=0,i=t[1].length){let a=t[1];for(let t=r;te._notFound);if(e.options.notFoundMode!==`root`&&s>=0){let t=await Wr(e,n,void 0,a,s);n[s]._notFound=void 0,n[t]._notFound=!0,s=t}let c=s<0?n.length:s+1,l=0;for(;l{for(let t=d;t=wr&&(c=0);p()}if(!a.aborted&&!r[3]){let t=[];for(let[n,r]of e._flights??[])r[2]||(e._flights.delete(n),t.push(r[1]));for(let e of t)e.abort()}let h=Jr(e,i,u,r[0],Kr(u,m,i[2]),r[7]);i[2]?.length&&(i[3]=Kr(i[2],void 0,void 0,h.then(e=>Er(e)?0:br(n).length,()=>0))),o=await h}catch(t){if(Gr(e,i),t===a&&a.aborted)return Tr;throw t}return Er(o)?o:Yr(e,o,a,r[6]===n.length?r[6]:0)}function Zr(e,t){if(e._tx!==t)return;let n=t[3],r=e.stores.matches.get(),i=e._pending;for(let a=0;a0){i[3]=setTimeout(()=>Zr(e,t),n);return}i[2]=0}let m=n.map(e=>({...e,_flight:void 0}));m[a].status=`pending`;let h=i[4]=e.startTransition(()=>e.stores.setMatches(m),m).then(t=>(t&&e._pending===i&&i[4]===h&&!i[2]&&(i[2]=Date.now()+f),t));return}}function Qr(e,t){let n=e._pending;(e._tx===t||!e._tx?.[3].some(e=>e.id===n?.[1]))&&(clearTimeout(n?.[3]),e._pending=void 0)}async function $r(e,t){let n=e._pending;if(!n)return;clearTimeout(n[3]);let r=n[2]-Date.now();if(!n[4]||r<=0||!br(t[3]).some(e=>e.id===n[1]))return;let i;try{await Dr(new Promise(e=>{i=setTimeout(e,r)}),t[0].signal)}catch{}clearTimeout(i)}function ei(e,t){e._committed=t,e.stores.setMatches(t)}function ti(e,t,n,r){let i=e._committed,a=e._lifecycleEnd,o=e._cache;for(let e of n)e.preload=!1,r&&(e._assetEnd=void 0);let s=br(n).length,c=new Map;{let t=Date.now(),r=new Set;for(let e=0;e=(n.preload?i.options.preloadGcTime??e.options.defaultPreloadGcTime??3e5:i.options.gcTime??e.options.defaultGcTime??3e5)||c.set(n.id,o.get(n.id)===n?n:{...n,_flight:void 0,isFetching:!1,context:{}})}}t[3]=[],e._cache=c;let l=e._lifecycleEnd=rr(n);ei(e,n),Fr(e,[...o.values(),...i].filter(e=>e._flight&&c.get(e.id)!==e),n),ir(e,i,n,a,l,t)}async function ni(e,t){let n=e._tx;for(;n&&n!==t;)t=n,await n[5],n=e._tx}function ri(e,t,n){let r=n[1].options,i=n[2];if(!i)return e.navigate({...r,replace:!0,ignoreBlocker:!0});if(r.reloadDocument)return e.navigate({href:(i.maskedLocation??i).publicHref,reloadDocument:!0,replace:!0,ignoreBlocker:!0});i._redirects=t[1]+1,e._pendingLocation=i;let a=e.commitLocation({...i,viewTransition:r.viewTransition,replace:!0,resetScroll:r.resetScroll,hashScrollIntoView:r.hashScrollIntoView,ignoreBlocker:!0});return queueMicrotask(()=>{e._pendingLocation===i&&(e._pendingLocation=void 0)}),a}async function ii(e,t,n,r,i){let a=n.map(e=>({...e}));Ir(a);for(let t of r)Pr(e,a[t[0]]),a[t[0]]=t[3];let o=[t[2],a],s;try{s=await Jr(e,o,r,t[0],i)}catch(t){throw Fr(e,a),t}if(Er(s)){Fr(e,a),s[0]===wr&&e._tx===t&&e._committed===n&&await ri(e,t,s);return}if(await Yr(e,s,t[0].signal),e._tx!==t||e._committed!==n){Fr(e,a);return}for(let t of a){let n=e._cache.get(t.id);n?._flight&&n._flight===t._flight&&(e._cache.delete(t.id),Pr(e,n))}ei(e,a),Fr(e,n,a)}async function ai(e,t,n,r,i,a){let o=await Xr(e,t[2],t[3],[t[0],t[1],e._committed,void 0,i,n,a,r]);if(Er(o)){let n=o[0]===wr&&e._tx===t;if((!n||o[1].options.reloadDocument)&&Qr(e,t),Fr(e,t[3]),t[3]=[],!n)return;if(e._tx!==t){Qr(e,t);return}await ri(e,t,o);return}let s=o[1];if(e._tx===t&&await $r(e,t),e._tx!==t){Qr(e,t),Fr(e,s),Gr(e,o);return}let c=t[2],l=tr(c,e.stores.resolvedLocation.get()),u=o[2];await e.startViewTransition(async()=>{if(e._tx===t&&await $r(e,t),e._tx!==t){Qr(e,t),Fr(e,s),Gr(e,o);return}let n=await e.startTransition(()=>{Qr(e,t),ti(e,t,s,a),e._tx===t&&(e.emit({type:`onLoad`,...l}),e._tx===t&&e.emit({type:`onBeforeRouteMount`,...l}))},s);if(e._tx!==t){Gr(e,o);return}u?.length&&ii(e,t,s,u,o[3]).catch(console.error),e.batch(()=>{e.stores.resolvedLocation.set(c),e.stores.status.set(`idle`),e._tx===t&&e.emit({type:`onResolved`,...l}),n&&e._tx===t&&e.emit({type:`onRendered`,...l})}),e._tx===t&&(e._commitPromise?.resolve(),e._commitPromise=void 0)})}async function oi(e,t){let n=e._tx,r=e.stores.resolvedLocation.get(),i=r??e.stores.location.get(),a=e.latestLocation,o=e._pendingLocation,s=o?.href===a.href?o._redirects??0:0,c=e._handoff,l=c?.[0](),u=new AbortController,d=e._preflight;if(e._preflight=u,l||c?.[1](),d?.abort(),!u.signal.aborted){let t=tr(a,r);e.emit({type:`onBeforeNavigate`,...t}),u.signal.aborted||e.emit({type:`onBeforeLoad`,...t})}if(u.signal.aborted){await ni(e,n);return}let f=i.href===a.href,p=u,m=e.matchRoutes(a,{_controller:u});Ir(m);let h=l?c[1](m):void 0;if(h?p=l:l?.abort(),u.signal.aborted){Fr(e,m),await ni(e,n);return}e._preflight=void 0;let g,_=()=>ai(e,y,f,()=>Zr(e,y),t?.sync,h),v=t?.sync?new Promise(e=>g=e):Promise.resolve().then(_),y=[p,s,a,m,Date.now(),v.then(()=>ni(e,y))];if(e._tx=y,n){for(let t of e.stores.matches.get()){if(e._tx!==y)break;t.isFetching&&Lr(e,t,!1)}n[0].abort(),Fr(e,n[3],y[3],!0)}if(e._tx!==y){Fr(e,y[3]),y[3]=[],g?.(),await ni(e,y);return}e.batch(()=>{e.stores.status.set(`pending`),e.stores.location.set(a)}),(h||!e._committed.length&&m[0]?.status!==`success`&&!m.some(e=>e._notFound))&&Zr(e,y),g?.(_()),await y[5]}async function si(e,t){let n=e.buildLocation(t);for(let t=0;;t++){let r=e._committed,i=new AbortController,a,o,s;try{try{a=e.matchRoutes(n,{_controller:i}),Ir(a),o=(e._preloads??=new Map).set(i,a),s=await Xr(e,n,a,[i,t,r,!0])}finally{o&&(o=o.delete(i),Fr(e,a)),i.abort()}if(!Er(s))return s[1];if(!o||s.length<3)return;n=s[2]}catch(e){Ut(e)||console.error(e);return}}}var ci=`Error preloading route! ☝️`,li=class{get to(){return this._to}get id(){return this._id}get path(){return this._path}get fullPath(){return this._fullPath}constructor(e){if(this.init=e=>{this.originalIndex=e,this._branch=void 0;let t=this.options,n=!t?.path&&!t?.id;this.parentRoute=this.options.getParentRoute?.(),n?this._path=fn:this.parentRoute||Mt();let r=n?fn:t?.path;r&&r!==`/`&&(r=Pt(r));let i=t?.id||r,a=n?fn:Nt((this.parentRoute.id===`__root__`?``:this.parentRoute.id)+`/`+(i??``));r===`__root__`&&(r=`/`);let o=a===`__root__`?`/`:r===void 0?this.parentRoute.fullPath:Nt(this.parentRoute.fullPath+`/`+r);this._path=r,this._id=a,this._fullPath=o,this._to=Ft(o)},this.addChildren=e=>this._addFileChildren(e),this._addFileChildren=e=>(Array.isArray(e)&&(this.children=e),typeof e==`object`&&e&&(this.children=Object.values(e)),this),this._addFileTypes=()=>this,this.updateLoader=e=>(Object.assign(this.options,e),this),this.update=e=>(Object.assign(this.options,e),this),this.lazy=e=>(this.lazyFn=e,this),this.redirect=e=>pn({from:this.fullPath,...e}),this.options=e||{},this.isRoot=!e?.getParentRoute,e?.id&&e?.path)throw Error(`Route cannot have both an 'id' and a 'path' option.`)}},ui=class extends li{constructor(e){super(e)}},di=class extends m.Component{constructor(...e){super(...e),this.state={error:0},this.reset=()=>{this.setState({error:0})}}static getDerivedStateFromProps(e,t){let n=e.getResetKey();return t.error&&t.resetKey!==n?{resetKey:n,error:0}:{resetKey:n}}static getDerivedStateFromError(e){return{error:[e]}}componentDidCatch(e,t){this.props.onCatch?.(e,t)}render(){let e=this.state.error;return e?m.createElement(this.props.errorComponent??fi,{error:e[0],reset:this.reset}):this.props.children}};function fi({error:e}){let[t,n]=m.useState(!1);return(0,h.jsxs)(`div`,{style:{padding:`.5rem`,maxWidth:`100%`},children:[(0,h.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`.5rem`},children:[(0,h.jsx)(`strong`,{style:{fontSize:`1rem`},children:`Something went wrong!`}),(0,h.jsx)(`button`,{style:{appearance:`none`,fontSize:`.6em`,border:`1px solid currentColor`,padding:`.1rem .2rem`,fontWeight:`bold`,borderRadius:`.25rem`},onClick:()=>n(e=>!e),children:t?`Hide Error`:`Show Error`})]}),(0,h.jsx)(`div`,{style:{height:`.25rem`}}),t?(0,h.jsx)(`div`,{children:(0,h.jsx)(`pre`,{style:{fontSize:`.7em`,border:`1px solid red`,borderRadius:`.25rem`,padding:`.3rem`,color:`red`,overflow:`auto`},children:e?.message?(0,h.jsx)(`code`,{children:e.message}):null})}):null]})}var pi=()=>!0,mi=()=>!1;function hi({children:e,fallback:t=null}){return(0,h.jsx)(m.Fragment,{children:gi()?e:t})}function gi(e=!0){return m.useSyncExternalStore(_i,pi,e?mi:pi)}function _i(){return()=>{}}var vi=m.createContext(null);function yi(e){return m.useContext(vi)}var bi=m.createContext(void 0),xi=m.createContext(void 0);function Si({update:e,notify:t,unwatched:n}){return{link:r,unlink:i,propagate:a,checkDirty:o,shallowPropagate:s};function r(e,t,n){let r=t.depsTail;if(r!==void 0&&r.dep===e)return;let i=r===void 0?t.deps:r.nextDep;if(i!==void 0&&i.dep===e){i.version=n,t.depsTail=i;return}let a=e.subsTail;if(a!==void 0&&a.version===n&&a.sub===t)return;let o=t.depsTail=e.subsTail={version:n,dep:e,sub:t,prevDep:r,nextDep:i,prevSub:a,nextSub:void 0};i!==void 0&&(i.prevDep=o),r===void 0?t.deps=o:r.nextDep=o,a===void 0?e.subs=o:a.nextSub=o}function i(e,t=e.sub){let r=e.dep,i=e.prevDep,a=e.nextDep,o=e.nextSub,s=e.prevSub;return a===void 0?t.depsTail=i:a.prevDep=i,i===void 0?t.deps=a:i.nextDep=a,o===void 0?r.subsTail=s:o.prevSub=s,s===void 0?(r.subs=o)===void 0&&n(r):s.nextSub=o,a}function a(e){let n=e.nextSub,r;top:do{let i=e.sub,a=i.flags;if(a&60?a&12?a&4?!(a&48)&&c(e,i)?(i.flags=a|40,a&=1):a=0:i.flags=a&-9|32:a=0:i.flags=a|32,a&2&&t(i),a&1){let t=i.subs;if(t!==void 0){let i=(e=t).nextSub;i!==void 0&&(r={value:n,prev:r},n=i);continue}}if((e=n)!==void 0){n=e.nextSub;continue}for(;r!==void 0;)if(e=r.value,r=r.prev,e!==void 0){n=e.nextSub;continue top}break}while(1)}function o(t,n){let r,i=0,a=!1;top:do{let o=t.dep,c=o.flags;if(n.flags&16)a=!0;else if((c&17)==17){if(e(o)){let e=o.subs;e.nextSub!==void 0&&s(e),a=!0}}else if((c&33)==33){(t.nextSub!==void 0||t.prevSub!==void 0)&&(r={value:t,prev:r}),t=o.deps,n=o,++i;continue}if(!a){let e=t.nextDep;if(e!==void 0){t=e;continue}}for(;i--;){let i=n.subs,o=i.nextSub!==void 0;if(o?(t=r.value,r=r.prev):t=i,a){if(e(n)){o&&s(i),n=t.sub;continue}a=!1}else n.flags&=-33;n=t.sub;let c=t.nextDep;if(c!==void 0){t=c;continue top}}return a}while(1)}function s(e){do{let n=e.sub,r=n.flags;(r&48)==32&&(n.flags=r|16,(r&6)==2&&t(n))}while((e=e.nextSub)!==void 0)}function c(e,t){let n=t.depsTail;for(;n!==void 0;){if(n===e)return!0;n=n.prevDep}return!1}}function Ci(e,t,n){let r=typeof e==`object`,i=r?e:void 0;return{next:(r?e.next:e)?.bind(i),error:(r?e.error:t)?.bind(i),complete:(r?e.complete:n)?.bind(i)}}var wi=[],Ti=0,{link:Ei,unlink:Di,propagate:Oi,checkDirty:ki,shallowPropagate:Ai}=Si({update(e){return e._update()},notify(e){wi[Mi++]=e,e.flags&=-3},unwatched(e){e.depsTail!==void 0&&(e.depsTail=void 0,e.flags=17,Ii(e))}}),ji=0,Mi=0,Ni,Pi=0;function Fi(e){try{++Pi,e()}finally{--Pi||Li()}}function Ii(e){let t=e.depsTail,n=t===void 0?e.deps:t.nextDep;for(;n!==void 0;)n=Di(n,e)}function Li(){if(!(Pi>0)){for(;ji{i.get(),n.current?t.next?.(i._snapshot):n.current=!0});return{unsubscribe:()=>{r.stop()}}},_update(e){let a=Ni,o=t?.compare??Object.is;if(n)Ni=i,++Ti,i.depsTail=void 0;else if(e===void 0)return!1;n&&(i.flags=5);try{let t=i._snapshot,a=typeof e==`function`?e(t):e===void 0&&n?r(t):e;return t===void 0||!o(t,a)?(i._snapshot=a,!0):!1}finally{Ni=a,n&&(i.flags&=-5),Ii(i)}}};return n?(i.flags=17,i.get=function(){let e=i.flags;if(e&16||e&32&&ki(i.deps,i)){if(i._update()){let e=i.subs;e!==void 0&&Ai(e)}}else e&32&&(i.flags=e&-33);return Ni!==void 0&&Ei(i,Ni,Ti),i._snapshot}):i.set=function(e){if(i._update(e)){let e=i.subs;e!==void 0&&(Oi(e),Ai(e),Li())}},i}function zi(e){let t=()=>{let t=Ni;Ni=n,++Ti,n.depsTail=void 0,n.flags=6;try{return e()}finally{Ni=t,n.flags&=-5,Ii(n)}},n={deps:void 0,depsTail:void 0,subs:void 0,subsTail:void 0,flags:6,notify(){let e=this.flags;e&16||e&32&&ki(this.deps,this)?t():this.flags=2},stop(){this.flags=0,this.depsTail=void 0,Ii(this)}};return t(),n}var Bi=n((e=>{var t=l();function n(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var r=typeof Object.is==`function`?Object.is:n,i=t.useState,a=t.useEffect,o=t.useLayoutEffect,s=t.useDebugValue;function c(e,t){var n=t(),r=i({inst:{value:n,getSnapshot:t}}),c=r[0].inst,l=r[1];return o(function(){c.value=n,c.getSnapshot=t,u(c)&&l({inst:c})},[e,n,t]),a(function(){return u(c)&&l({inst:c}),e(function(){u(c)&&l({inst:c})})},[e]),s(n),n}function u(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!r(e,n)}catch{return!0}}function d(e,t){return t()}var f=typeof window>`u`||window.document===void 0||window.document.createElement===void 0?d:c;e.useSyncExternalStore=t.useSyncExternalStore===void 0?f:t.useSyncExternalStore})),Vi=n(((e,t)=>{t.exports=Bi()})),Hi=n((e=>{var t=l(),n=Vi();function r(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var i=typeof Object.is==`function`?Object.is:r,a=n.useSyncExternalStore,o=t.useRef,s=t.useEffect,c=t.useMemo,u=t.useDebugValue;e.useSyncExternalStoreWithSelector=function(e,t,n,r,l){var d=o(null);if(d.current===null){var f={hasValue:!1,value:null};d.current=f}else f=d.current;d=c(function(){function e(e){if(!a){if(a=!0,o=e,e=r(e),l!==void 0&&f.hasValue){var t=f.value;if(l(t,e))return s=t}return s=e}if(t=s,i(o,e))return t;var n=r(e);return l!==void 0&&l(t,n)?(o=e,t):(o=e,s=n)}var a=!1,o,s,c=n===void 0?null:n;return[function(){return e(t())},c===null?void 0:function(){return e(c())}]},[t,n,r,l]);var p=a(e,d[0],d[1]);return s(function(){f.hasValue=!0,f.value=p},[p]),u(p),p}})),Ui=n(((e,t)=>{t.exports=Hi()}))();function Wi(e,t){return e===t}function Gi(e,t=e=>e,n){let r=n?.compare??Wi,i=(0,m.useCallback)(t=>{let{unsubscribe:n}=e.subscribe(t);return n},[e]),a=(0,m.useCallback)(()=>e.get(),[e]);return(0,Ui.useSyncExternalStoreWithSelector)(i,a,a,t,r)}var Ki={};function qi(e,t){let n=m.useRef();return r=>{let i=e?.select?e.select(r):r;return e?.structuralSharing??t.options.defaultStructuralSharing?n.current=vt(n.current,i):i}}function Ji(e){let t=yi(),n=m.useContext(e.from?xi:bi),r=e.from??n,i=t.stores.getMatchStore(r),a=qi(e,t),o=Gi(i,e=>e?a(e):Ki);if(o!==Ki)return o;(e.shouldThrow??!0)&&Mt()}function Yi(e){return Ji({from:e.from,strict:e.strict,structuralSharing:e.structuralSharing,select:t=>e.select?e.select(t.loaderData):t.loaderData})}function Xi(e){let{select:t,...n}=e;return Ji({...n,select:e=>t?t(e.loaderDeps):e.loaderDeps})}function Zi(e){return Ji({from:e.from,shouldThrow:e.shouldThrow,structuralSharing:e.structuralSharing,strict:e.strict,select:t=>{let n=e.strict===!1?t.params:t._strictParams;return e.select?e.select(n):n}})}function Qi(e){return Ji({from:e.from,strict:e.strict,shouldThrow:e.shouldThrow,structuralSharing:e.structuralSharing,select:t=>e.select?e.select(t.search):t.search})}function $i(e){let t=yi();return m.useCallback(n=>t.navigate({...n,from:n.from??e?.from}),[e?.from,t])}function ea(e){let t=yi(),n=$i(),r=m.useRef(null);return dt(()=>{r.current!==e&&(n(e),r.current=e)},[t,e,n]),null}function ta(e){return Ji({...e,select:t=>e.select?e.select(t.context):t.context})}function na(...e){let t=m.useRef(e),n=t.current;return e.forEach((e,t)=>{bt(n[t],e,!1,!0)||(n[t]=e)}),t.current}function ra(e,t){e.preloadRoute(t).catch(e=>{console.warn(e),console.warn(ci)})}var ia={compare:(e,t)=>e[0]===t[0]&&e[1]===t[1]};function aa(e,t){let n=typeof e==`string`&&Et(e);if(n)return t.has(n)?e:null}function oa(e,t,n,r,i){let a=Lt(e.pathname,r),o=Lt(t.pathname,r);return(n?.exact?a!==o:!a.startsWith(o)||a.length!==o.length&&a[o.length]!==`/`)||(n?.includeSearch??!0)&&!bt(e.search,t.search,!n?.exact,n?.explicitUndefined)?!1:!n?.includeHash||i&&e.hash===t.hash}function sa(e,t,n){let r=yi(),i=m.useRef(null),a=m.useCallback(e=>{if(i.current=e,typeof t==`function`)return t(e);t&&(t.current=e)},[t]),{activeOptions:o,to:s,preload:c,preloadDelay:l,hashScrollIntoView:u,replace:d,startTransition:f,resetScroll:p,viewTransition:h,ignoreBlocker:g,disabled:_,target:v,onClick:y,onBlur:b,onFocus:x,onMouseEnter:S,onMouseLeave:C,onTouchStart:w}=e,T=gi(!!o?.includeHash),[ee,E,te]=na(e.search,e.params,o),[D,ne]=m.useMemo(()=>[e,{...e}],[r,e.from,e._fromLocation,e.hash,e.to,ee,E,e.state,e.mask,e.unsafeRelative]),re=m.useCallback(e=>{let t=aa(s,r.protocolAllowlist);if(t!==void 0)return[t??void 0];D._fromLocation||(ne._fromLocation=e);let n=r.buildLocation(ne),i=ma(n,r,_);return[i,!_&&(!i||Et(i))?void 0:oa(e,n,te,r.basepath,T)]},[te,_,T,D,ne,r,s]),[ie,ae]=Gi(r.stores.location,re,ia),oe=ae===void 0?ie:void 0,se=_||ie===void 0,ce=m.useRef(!1),le=e.reloadDocument||oe||se?!1:c??r.options.defaultPreload,ue=l??r.options.defaultPreloadDelay??0,de=m.useCallback(e=>{let t=e?.isIntersecting;if(!(t??le===`intent`)){t===!1&&fa(i);return}if(!ue){ra(r,D);return}da.has(i)||da.set(i,setTimeout(()=>{da.delete(i),ra(r,D)},ue))},[r,D,i,le,ue]);m.useEffect(()=>{le===`render`&&!ce.current&&(ce.current=!0,ra(r,D));let e;return le===`viewport`&&i.current&&typeof IntersectionObserver==`function`&&(e=new IntersectionObserver(e=>de(e.pop()),{rootMargin:`100px`}),e.observe(i.current)),()=>{e?.disconnect(),fa(i)}},[r,D,le,de,i]);let fe=F(e,n);if(fe.ref=t?a:i,oe)return fe.href=oe,fe;let pe=e=>{let t=v??e.currentTarget.getAttribute(`target`);!se&&!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&(!t||t===`_self`)&&e.button===0&&(e.preventDefault(),r.navigate({...D,replace:d,resetScroll:p,hashScrollIntoView:u,startTransition:f,viewTransition:h,ignoreBlocker:g}))},me=()=>{le===`intent`&&ra(r,D)},he=()=>{le===`intent`&&fa(i)};return fe.onClick=pa(y,pe),fe.onBlur=pa(b,he),fe.onFocus=pa(x,de),fe.onMouseEnter=pa(S,de),fe.onMouseLeave=pa(C,he),fe.onTouchStart=pa(w,me),ua(fe,e,ae,ie,se,n)}var ca={},la={className:`active`},P=new Set([`to`,`params`,`search`,`hash`,`state`,`mask`,`from`,`unsafeRelative`,`_fromLocation`,`reloadDocument`,`preload`,`preloadDelay`,`preloadIntentProximity`,`hashScrollIntoView`,`replace`,`startTransition`,`resetScroll`,`viewTransition`,`ignoreBlocker`,`activeProps`,`inactiveProps`,`activeOptions`,`_asChild`]);function F(e,t){let n={};for(let r in e)P.has(r)||r===`type`&&t!==void 0||r===`disabled`&&t===`a`||(n[r]=e[r]);return n}function ua(e,t,n,r,i,a){let{activeProps:o,inactiveProps:s,className:c,style:l,target:u}=t,d=pt(n?o:s,{})??(n?la:ca);Object.assign(e,d),e.href=r,a!==`a`&&(e.disabled=i),e.target=u;let f=d.style;(l||f)&&(e.style=l&&f?{...l,...f}:l||f);let p=d.className;return(c||p)&&(e.className=c?p?`${c} ${p}`:c:p),i&&(e.role=`link`,e[`aria-disabled`]=!0),n&&(e[`data-status`]=`active`,e[`aria-current`]=`page`),e}var da=new WeakMap,fa=e=>{clearTimeout(da.get(e)),da.delete(e)},pa=(e,t)=>e?n=>n.defaultPrevented||(e(n),n.defaultPrevented||t(n)):t;function ma(e,t,n){if(n)return;let r=e.maskedLocation??e,i=r.external?r.publicHref:t.history.createHref(r.publicHref)||`/`;if(!r.external&&i===r.publicHref||!Ot(i,t.protocolAllowlist))return i}var ha=m.memo(m.forwardRef((e,t)=>{let n=e._asChild||`a`,r=sa(e,t,n),i=typeof e.children==`function`?e.children({isActive:r[`data-status`]===`active`}):e.children;return m.createElement(n,r,i)}),ga);function ga(e,t){let n=0;for(let r in t)if(n++,e[r]!==t[r]&&(!P.has(r)||!bt(e[r],t[r],!1,!0)))return!1;for(let t in e)n--;return n===0}var _a=class extends li{constructor(e){super(e),this.useMatch=e=>Ji({...e,from:this.id}),this.useRouteContext=e=>ta({...e,from:this.id}),this.useSearch=e=>Qi({...e,from:this.id}),this.useParams=e=>Zi({...e,from:this.id}),this.useLoaderDeps=e=>Xi({...e,from:this.id}),this.useLoaderData=e=>Yi({...e,from:this.id}),this.useNavigate=()=>$i({from:this.fullPath}),this.Link=m.forwardRef((e,t)=>(0,h.jsx)(ha,{ref:t,from:this.fullPath,...e}))}};function va(e){return new _a(e)}var ya=class extends ui{constructor(e){super(e),this.useMatch=e=>Ji({...e,from:this.id}),this.useRouteContext=e=>ta({...e,from:this.id}),this.useSearch=e=>Qi({...e,from:this.id}),this.useParams=e=>Zi({...e,from:this.id}),this.useLoaderDeps=e=>Xi({...e,from:this.id}),this.useLoaderData=e=>Yi({...e,from:this.id}),this.useNavigate=()=>$i({from:this.fullPath}),this.Link=m.forwardRef((e,t)=>(0,h.jsx)(ha,{ref:t,from:this.fullPath,...e}))}};function ba(e){return new ya(e)}function xa(e,t){let n,r,i,a=()=>(n||=(i=void 0,e().then(e=>{n=void 0,o.preload=void 0,r=e[t??`default`]}).catch(e=>{n=void 0,i=e})),n),o=function(e){if(i){if(xt(i)&&typeof sessionStorage<`u`){let e=`tanstack_router_reload:${i.message}`;if(!sessionStorage.getItem(e))throw sessionStorage.setItem(e,`1`),window.location.reload(),new Promise(()=>{})}throw i}if(!r){if(ut)ut(a());else throw a()}return m.createElement(r,e)};return o.preload=a,o}function Sa(e){let t=yi(),n=`not-found-${Gi(t.stores.location,e=>e.pathname)}-${Gi(t.stores.status)}`;return(0,h.jsx)(di,{getResetKey:()=>n,onCatch:(t,n)=>{if(Ut(t))e.onCatch?.(t,n);else throw t},errorComponent:({error:t})=>{if(Ut(t))return e.fallback?.(t);throw t},children:e.children})}function Ca(){return(0,h.jsx)(`p`,{children:`Not Found`})}function wa(e){return(0,h.jsx)(h.Fragment,{children:e.children})}function Ta(e,t,n){return t.options.notFoundComponent?(0,h.jsx)(t.options.notFoundComponent,{...n}):e.options.defaultNotFoundComponent?(0,h.jsx)(e.options.defaultNotFoundComponent,{...n}):(0,h.jsx)(Ca,{})}function Ea(e,t){let n=t?.options.pendingComponent??e.options.defaultPendingComponent;return n?(0,h.jsx)(n,{}):null}var Da=(e,t)=>e[0]===t[0]&&e[1]===t[1],Oa=(e,t,n)=>!t.isRoot||t.options.shellComponent||t.options.wrapInSuspense||n===!1||n===`data-only`||!e.ssr,ka=m.memo(function({routeId:e}){let t=yi();return(0,h.jsx)(Aa,{router:t,match:Gi(t.stores.getMatchStore(e))})});function Aa({router:e,match:t}){let n=e.routesById[t.routeId],r=Ea(e,n),i=n.options.errorComponent??e.options.defaultErrorComponent,a=n.options.onCatch??e.options.defaultOnCatch,o=n.isRoot?n.options.notFoundComponent??e.options.notFoundRoute?.options.component:n.options.notFoundComponent,s=t.ssr===!1||t.ssr===`data-only`,c=Oa(e,n,t.ssr)&&(n.options.wrapInSuspense??r??(n.options.errorComponent?.preload||s))?m.Suspense:wa,l=i?di:wa,u=o?Sa:wa;return(0,h.jsxs)(n.isRoot?n.options.shellComponent??wa:wa,{children:[(0,h.jsx)(bi.Provider,{value:t.routeId,children:(0,h.jsx)(c,{fallback:r,children:(0,h.jsx)(l,{getResetKey:()=>t,errorComponent:i,onCatch:(e,n)=>{if(Ut(e))throw e.routeId??=t.routeId,e;a?.(e,n)},children:(0,h.jsx)(u,{fallback:e=>{if(e.routeId??=t.routeId,e.routeId!==t.routeId)throw e;return m.createElement(o,e)},children:s?(0,h.jsx)(hi,{fallback:r,children:(0,h.jsx)(ja,{match:t})}):(0,h.jsx)(ja,{match:t})})})})}),null]})}var ja=m.memo(function({match:e}){let t=yi(),n=e.routeId,r=t.routesById[n],i=m.useMemo(()=>{let i=(r.options.remountDeps??t.options.defaultRemountDeps)?.({routeId:n,loaderDeps:e.loaderDeps,params:e._strictParams,search:e._strictSearch});return i?JSON.stringify(i):void 0},[n,e.loaderDeps,e._strictParams,e._strictSearch,r.options.remountDeps,t.options.defaultRemountDeps]),a=m.useMemo(()=>{let e=r.options.component??t.options.defaultComponent;return e?(0,h.jsx)(e,{},i):(0,h.jsx)(Ma,{})},[i,r.options.component,t.options.defaultComponent]);if(e.status===`pending`){if(t.ssr&&!Oa(t,r,e.ssr))return a;if(t._tx)throw t._tx[5];return Ea(t,r)}if(e.status===`notFound`)return Ta(t,r,e.error);if(e.status===`error`)throw e.error;return a}),Ma=m.memo(function(){let e=yi(),t=m.useContext(bi),n,r,i;{let a=e.stores.getMatchStore(t);[n,r]=Gi(a,e=>[!!e._notFound,e.error],{compare:Da}),i=Gi(e.stores.ids,e=>e[e.indexOf(t)+1])}if(n)return Ta(e,e.routesById[t],r);if(!i)return null;let a=(0,h.jsx)(ka,{routeId:i});return t===`__root__`?(0,h.jsx)(m.Suspense,{fallback:Ea(e),children:a}):a});function Na(e,t){let n=e[1];e.length=0,n?.(t)}function Pa({t:e}){let t=yi(),n=t._rendered??=[];return t.startTransition=(r,i)=>new Promise(a=>{Na(n,!1),n.push(i,a),e(t),m.startTransition(r)}),dt(()=>{let e=t.history.subscribe(t.load);t.updateLatestLocation();let r=t.latestLocation,i=t.buildLocation({to:r.pathname,search:!0,params:!0,hash:!0,state:!0,_includeValidateSearch:!0});if(Ft(r.publicHref)!==Ft(i.publicHref))return t.commitLocation({...i,replace:!0,ignoreBlocker:!0}),e;let a=t.stores.resolvedLocation.get();return a?.href===r.href&&a.state.__TSR_key===r.state.__TSR_key?n.push(t.stores.matches.get(),e=>{e&&t.emit({type:`onRendered`,...tr(a,a)})}):t._tx||t.load({sync:!0}).catch(console.error),e},[t,t.history]),null}function Fa(){let e=yi(),t=e.routesById[fn],n=Ea(e,t),r=e.ssr?wa:m.Suspense,i=(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(Pa,{t:m.useState()[1]}),(0,h.jsx)(r,{fallback:n,children:(0,h.jsx)(Ia,{})})]});return e.options.InnerWrap?(0,h.jsx)(e.options.InnerWrap,{children:i}):i}function Ia(){let e=yi(),t=e._rendered,n=Gi(e.stores.matches,e=>t[0]??e),r=n[0],i=r?.routeId;dt(()=>{t[0]===n&&Na(t,!0)},[t,n]);let a=i?(0,h.jsx)(ka,{routeId:i}):null;return(0,h.jsx)(bi.Provider,{value:i,children:e.options.disableGlobalCatchBoundary?a:(0,h.jsx)(di,{getResetKey:()=>r,onCatch:void 0,children:a})})}var La=e=>({createMutableStore:Ri,createReadonlyStore:Ri,batch:Fi}),Ra=e=>new za(e),za=class extends ar{constructor(e){super(e,La)}};function Ba({router:e,children:t,...n}){ht(n)&&e.update({...e.options,...n,context:{...e.options.context,...n.context}});let r=(0,h.jsx)(vi.Provider,{value:e,children:t});return e.options.Wrap?(0,h.jsx)(e.options.Wrap,{children:r}):r}function Va({router:e,...t}){return(0,h.jsx)(Ba,{router:e,...t,children:(0,h.jsx)(Fa,{})})}function Ha(e){let t=yi({warn:e?.router===void 0}),n=e?.router||t;return Gi(n.stores.__store,qi(e,n))}var Ua=p(),I=s();function Wa(e){let t=(0,I.c)(6),{error:n}=e,r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,h.jsx)(`p`,{className:`schild text-lg text-rot`,children:`Diese Ansicht ist abgestürzt`}),t[0]=r):r=t[0];let i=n instanceof Error?n.message:String(n),a;t[1]===i?a=t[2]:(a=(0,h.jsx)(`p`,{className:`text-[15px]`,children:i}),t[1]=i,t[2]=a);let o;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,h.jsx)(`button`,{type:`button`,onClick:Ga,className:`schild h-11 rounded-lg border border-rot-rand px-5 text-sm text-foreground hover:bg-[#3a1512]`,children:`Neu laden`}),t[3]=o):o=t[3];let s;return t[4]===a?s=t[5]:(s=(0,h.jsxs)(`div`,{role:`alert`,className:`flex flex-col items-start gap-3 rounded-2xl border border-rot-rand bg-rot-grund p-6 text-rot-text`,children:[r,a,o]}),t[4]=a,t[5]=s),s}function Ga(){return window.location.reload()}var Ka={name:`cpu`,size:24,node:[[`path`,{d:`M12 20v2`,key:`1lh1kg`}],[`path`,{d:`M12 2v2`,key:`tus03m`}],[`path`,{d:`M17 20v2`,key:`1rnc9c`}],[`path`,{d:`M17 2v2`,key:`11trls`}],[`path`,{d:`M2 12h2`,key:`1t8f8n`}],[`path`,{d:`M2 17h2`,key:`7oei6x`}],[`path`,{d:`M2 7h2`,key:`asdhe0`}],[`path`,{d:`M20 12h2`,key:`1q8mjw`}],[`path`,{d:`M20 17h2`,key:`1fpfkl`}],[`path`,{d:`M20 7h2`,key:`1o8tra`}],[`path`,{d:`M7 20v2`,key:`4gnj0m`}],[`path`,{d:`M7 2v2`,key:`1i4yhu`}],[`rect`,{x:`4`,y:`4`,width:`16`,height:`16`,rx:`2`,key:`1vbyd7`}],[`rect`,{x:`8`,y:`8`,width:`8`,height:`8`,rx:`1`,key:`z9xiuo`}]]};Ka.node;var qa=a(Ka),Ja={name:`external-link`,size:24,node:[[`path`,{d:`M15 3h6v6`,key:`1q9fwt`}],[`path`,{d:`M10 14 21 3`,key:`gplh6r`}],[`path`,{d:`M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6`,key:`a6xqqp`}]]};Ja.node;var Ya=a(Ja),Xa={name:`layout-dashboard`,size:24,node:[[`rect`,{width:`7`,height:`9`,x:`3`,y:`3`,rx:`1`,key:`10lvy0`}],[`rect`,{width:`7`,height:`5`,x:`14`,y:`3`,rx:`1`,key:`16une8`}],[`rect`,{width:`7`,height:`9`,x:`14`,y:`12`,rx:`1`,key:`1hutg5`}],[`rect`,{width:`7`,height:`5`,x:`3`,y:`16`,rx:`1`,key:`ldoo1y`}]]};Xa.node;var Za=a(Xa),Qa={name:`menu`,size:24,node:[[`path`,{d:`M4 5h16`,key:`1tepv9`}],[`path`,{d:`M4 12h16`,key:`1lakjw`}],[`path`,{d:`M4 19h16`,key:`1djgab`}]]};Qa.node;var $a=a(Qa),eo={name:`refresh-cw`,size:24,node:[[`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`}]]};eo.node;var to=a(eo),no={name:`scroll-text`,size:24,node:[[`path`,{d:`M15 12h-5`,key:`r7krc0`}],[`path`,{d:`M15 8h-5`,key:`1khuty`}],[`path`,{d:`M19 17V5a2 2 0 0 0-2-2H4`,key:`zz82l3`}],[`path`,{d:`M8 21h12a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1v1a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v2a1 1 0 0 0 1 1h3`,key:`1ph1d7`}]]};no.node;var ro=a(no),io={name:`settings`,size:24,node:[[`path`,{d:`M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915`,key:`1i5ecw`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}]]};io.node;var ao=a(io),oo=[`/api/instanz`,`/api/partner`,`/api/health`],so=(e,t)=>e===t||e.startsWith(`${t}/`)||e.startsWith(`${t}?`);function co(e,t){return!e.startsWith(`/api/`)||oo.some(t=>so(e,t))||(so(e,`/api/homelab`)?`homelab`:`box`)===t?e:`/api/partner${e.slice(4)}`}var lo=null;function uo(){return lo??=fetch(`/api/instanz`,{headers:{Accept:`application/json`}}).then(e=>e.ok?e.json():Promise.reject(Error(String(e.status)))).then(e=>e.rolle===`homelab`?`homelab`:`box`).catch(()=>(lo=null,`box`)),lo}var fo=class extends Error{status;detail;constructor(e,t){super(t),this.status=e,this.detail=t,this.name=`ApiFehler`}};function po(e,t){if(e&&typeof e==`object`&&`detail`in e){let t=e.detail;if(typeof t==`string`)return t;if(Array.isArray(t))return t.map(e=>e.msg??String(e)).join(`; `)}return`Die Box antwortet mit Fehler ${t}.`}async function L(e,t={}){let n=co(e,await uo()),r;try{r=await fetch(n,{...t,headers:{"Content-Type":`application/json`,Accept:`application/json`,...t.headers}})}catch{throw new fo(0,`MC2 ist nicht erreichbar. Läuft die Box?`)}let i=await r.text(),a=i?mo(i):null;if(!r.ok)throw new fo(r.status,po(a,r.status));if(typeof a==`string`)throw new fo(r.status,`Die Box antwortet nicht mit Daten.`);return a}function mo(e){try{return JSON.parse(e)}catch{return e}}var R=(e,t)=>L(e,{method:`POST`,body:t===void 0?void 0:JSON.stringify(t)}),ho=100,go=95,_o=210,vo=240;function yo(e,t){let n=e*Math.PI/180;return[ho+t*Math.cos(n),go-t*Math.sin(n)]}var bo=e=>Math.round(e*100)/100;function xo(e,t,n){let r=Math.max(0,Math.min(1,e)),i=Math.max(r,Math.min(1,t)),[a,o]=yo(_o-vo*r,n),[s,c]=yo(_o-vo*i,n),l=+((i-r)*vo>180);return`M ${bo(a)} ${bo(o)} A ${n} ${n} 0 ${l} 1 ${bo(s)} ${bo(c)}`}function So(e){return e==null?`var(--text-3)`:e>=85?`var(--rot)`:e>=70?`var(--bernstein)`:`var(--gruen)`}var Co={ok:`border-gruen-rand bg-gruen-grund text-gruen`,info:`border-cyan-rand bg-cyan-grund text-cyan`,stumm:`border-aus-rand bg-aus-grund text-aus-text`,gelb:`border-2 border-bernstein bg-bernstein-grund text-bernstein-hell lampe-atmet`,rot:`border-2 border-rot bg-rot-grund text-rot shadow-[0_0_32px_rgba(255,90,79,0.3)]`};function wo(e){if(!e.waechter_wach)return{art:`stumm`,oben:`Wächter`,mitte:`SCHWEIGT`,unten:`Seit über 5 Minuten kein Prüflauf`};if(e.update_laeuft)return{art:`info`,oben:`Wartung`,mitte:`UPDATE LÄUFT`,unten:`Hinweise ruhen bis zum Ende`};if(e.anzahl===0)return{art:`ok`,oben:`Alles`,mitte:`IN ORDNUNG`,unten:`Keine offenen Hinweise`};let t=`${e.anzahl} HINWEIS${e.anzahl===1?``:`E`}`;return e.stufe===`rot`?{art:`rot`,oben:`Störung`,mitte:t,unten:`Drücken zum Ansehen`}:{art:`gelb`,oben:`Achtung`,mitte:t,unten:`Drücken zum Ansehen`}}function To(e,t){let n=`„${e.titel}“:`;switch(t.id){case`protokoll`:return null;case`neustart`:return e.id.startsWith(`timer:`)?{titel:`${t.label}?`,text:`${n} Der Dienst läuft sofort noch einmal.`,knopf:t.label}:{titel:`${t.label}?`,text:`${n} Der Dienst wird ${/^starten/i.test(t.label)?`gestartet`:`neu gestartet`} und ist dabei kurz nicht erreichbar.`,knopf:t.label};case`job-wiederholen`:return{titel:`Job erneut ausführen?`,text:`${n} Hermes führt den Job sofort noch einmal aus, mit allem, was er sonst auch tut — etwa Nachrichten verschicken.`,knopf:t.label};case`freigeben`:return{titel:`Update freigeben?`,text:`${n} Nach dem Freigeben versucht der nächste Sonntags-Lauf das Update wieder.`,knopf:t.label};default:return{titel:`${t.label}?`,text:`${n} ${t.label}.`,knopf:t.label}}}function Eo(e){return e?.status===`busy`?e.running?`Es läuft schon ein Update („${e.running}“). Warte, bis es fertig ist.`:`Es läuft schon ein Update. Warte, bis es fertig ist.`:e?.detail||e?.err||e?.error||e?.text||`Das hat nicht geklappt.`}var Do=e=>e.state===`running`||e.state===`queued`;function Oo(e){let t=e.aliases.map(e=>e.toLowerCase());return t.includes(`hermes`)||t.includes(`fast`)?`hirn`:t.includes(`coder`)?`coder`:null}var ko={neu:`Neu`,wartet:`Wartet`,getestet:`Gemessen`,bestanden:`Bestanden`,durchgefallen:`Durchgefallen`,uebernommen:`Übernommen`,verworfen:`Verworfen`};function Ao(e,t=``){if(e==null||e===``)return`–`;let n=typeof e==`number`?e.toLocaleString(`de-DE`,{maximumFractionDigits:+(e<10)}):String(e);return t?`${n} ${t}`:n}var jo=[],Mo=1,No=new Set,Po=()=>No.forEach(e=>e());function Fo(e,t){let n=Mo++;jo=[...jo,{id:n,art:e,text:t}].slice(-4),Po(),e!==`fehler`&&window.setTimeout(()=>Io(n),6e3)}function Io(e){jo=jo.filter(t=>t.id!==e),Po()}var Lo=()=>(0,m.useSyncExternalStore)(Ro,zo);function Ro(e){return No.add(e),()=>{No.delete(e)}}function zo(){return jo}var Bo=2e3,Vo=3e4,Ho=2e4,Uo=`verbinde`,Wo=null,z=new Set,B=()=>z.forEach(e=>e());function Go(e){return z.add(e),()=>{z.delete(e)}}var Ko=()=>Uo===`live`,qo=()=>(0,m.useSyncExternalStore)(Go,Zo),Jo=()=>(0,m.useSyncExternalStore)(Go,Qo);function Yo(e){e!==Uo&&(Uo=e,B())}function Xo(){let e=_();(0,m.useEffect)(()=>{let t=null,n,r,i=Date.now(),a=Bo,o=!1;function s(){o||(window.clearTimeout(n),n=window.setTimeout(l,a),a=Math.min(a*2,Vo))}function c(){i=Date.now(),window.clearTimeout(r),r=window.setTimeout(()=>{t?.close(),Yo(`getrennt`),s()},Ho)}function l(){window.clearTimeout(n),window.clearTimeout(r),t?.close();let i=new EventSource(`/api/stream`);t=i,i.onopen=()=>{a=Bo,Yo(`live`),c(),e.invalidateQueries()},i.onerror=()=>{Yo(`getrennt`),i.readyState===EventSource.CLOSED&&(window.clearTimeout(r),s())},i.addEventListener(`invalidate`,t=>{c();try{let n=JSON.parse(t.data)?.keys??[];for(let t of n)e.invalidateQueries({queryKey:[t]})}catch{}}),i.addEventListener(`metrik`,e=>{c();try{Wo=JSON.parse(e.data),B()}catch{}})}let u=()=>{o||document.visibilityState!==`visible`||(t?.readyState===EventSource.CLOSED||Date.now()-i>5e3)&&(a=Bo,l())};return l(),window.addEventListener(`online`,u),document.addEventListener(`visibilitychange`,u),()=>{o=!0,window.clearTimeout(n),window.clearTimeout(r),window.removeEventListener(`online`,u),document.removeEventListener(`visibilitychange`,u),t?.close(),Yo(`getrennt`)}},[e])}function Zo(){return Uo}function Qo(){return Wo}var V=`Europe/Berlin`,$o=new Intl.DateTimeFormat(`de-DE`,{hour:`2-digit`,minute:`2-digit`,timeZone:V}),es=new Intl.DateTimeFormat(`de-DE`,{weekday:`short`,timeZone:V}),ts=new Intl.DateTimeFormat(`de-DE`,{day:`2-digit`,month:`2-digit`,timeZone:V}),ns=new Intl.DateTimeFormat(`en-CA`,{timeZone:V});function rs(e){return ns.format(e)}function is(e,t=new Date){let n=new Date(e);if(Number.isNaN(n.getTime()))return`–`;let r=rs(t),i=rs(new Date(t.getTime()-864e5)),a=rs(new Date(t.getTime()+864e5)),o=rs(n),s=$o.format(n);return o===r?`HEUTE ${s}`:o===i?`GESTERN ${s}`:o===a?`MORGEN ${s}`:Math.abs(n.getTime()-t.getTime())<5616e5?`${es.format(n).replace(`.`,``).toUpperCase()} ${s}`:`${ts.format(n)} ${s}`}function as(e,t=new Date){let n=new Date(e*1e3);return rs(n)===rs(t)?`seit heute ${$o.format(n)}`:`seit ${ts.format(n)}, ${$o.format(n)}`}function os(e,t=Date.now()){let n=Math.max(0,Math.round(t/1e3-e));if(n<60)return`vor ${n} s`;if(n<3600)return`vor ${Math.round(n/60)} min`;if(n<86400)return`vor ${Math.round(n/3600)} h`;let r=Math.round(n/86400);return`vor ${r} ${r===1?`Tag`:`Tagen`}`}function ss(e){return e==null||e<0?null:[Math.floor(e/86400),Math.floor(e%86400/3600)]}var H=e=>e==null?null:e/1024**3;function cs(e,t=0){let n=H(e);return n==null?`–`:n>=1e3?`${(n/1024).toFixed(1).replace(`.`,`,`)} TB`:`${n.toFixed(t).replace(`.`,`,`)} GB`}var ls=e=>e.toLocaleString(`de-DE`),us=e=>()=>Ko()?e*5:e;function ds(e,t){let n=e.getQueryData([`jobs`])?.jobs??[],r=t.filter(e=>!Do(e)&&n.some(t=>t.id===e.id&&Do(t)));if(r.length===0)return;let i=new Set([`start`]);for(let e of r){let t=e.group===`download`||/^download\s/i.test(e.label);for(let e of t?[`models`,`aufraeumen`]:[`update-details`,`updates-verlauf`,`sicherungen`])i.add(e)}for(let t of i)e.invalidateQueries({queryKey:[t]})}var fs=()=>{let e=(0,I.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={queryKey:[`start`],queryFn:Zs,refetchInterval:Qs},e[0]=t):t=e[0],M(t)},ps=()=>{let e=(0,I.c)(2),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=[`models`],e[0]=t):t=e[0];let n;return e[1]===Symbol.for(`react.memo_cache_sentinel`)?(n={queryKey:t,queryFn:$s,refetchInterval:us(3e4)},e[1]=n):n=e[1],M(n)},ms=()=>{let e=(0,I.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={queryKey:[`nutzung`],queryFn:ec,refetchInterval:6e5},e[0]=t):t=e[0],M(t)},hs=()=>{let e=(0,I.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={queryKey:[`radar`],queryFn:tc,retry:!1,refetchInterval:3e5},e[0]=t):t=e[0],M(t)},gs=()=>{let e=(0,I.c)(3),t=_(),n;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=[`jobs`],e[0]=n):n=e[0];let r;return e[1]===t?r=e[2]:(r={queryKey:n,queryFn:async()=>{let e=await L(`/api/jobs`);return ds(t,e.jobs),e},refetchInterval:nc},e[1]=t,e[2]=r),M(r)},_s=()=>{let e=(0,I.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={queryKey:[`sicherungen`],queryFn:rc},e[0]=t):t=e[0],M(t)},vs=e=>{let t=(0,I.c)(4),n;t[0]===e?n=t[1]:(n=e.map(ic),t[0]=e,t[1]=n);let r;return t[2]===n?r=t[3]:(r={queries:n},t[2]=n,t[3]=r),st(r)},ys=()=>{let e=(0,I.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={queryKey:[`updates-verlauf`],queryFn:ac},e[0]=t):t=e[0],M(t)},bs=e=>{let t=(0,I.c)(7),n,r;t[0]===e?(n=t[1],r=t[2]):(n=[`protokoll`,e],r=()=>L(`/api/maintenance/logs?service=${encodeURIComponent(e??``)}&lines=200`),t[0]=e,t[1]=n,t[2]=r);let i=!!e,a;return t[3]!==n||t[4]!==r||t[5]!==i?(a={queryKey:n,queryFn:r,enabled:i},t[3]=n,t[4]=r,t[5]=i,t[6]=a):a=t[6],M(a)},xs=()=>{let e=(0,I.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={queryKey:[`dienste`],queryFn:oc},e[0]=t):t=e[0],M(t)};function Ss(e,t){let n=(0,I.c)(6),r=_(),i;n[0]!==t||n[1]!==r?(i=(e,n)=>{let i=e;i&&i.ok===!1?Fo(`fehler`,t.fehler?.(n,i)??Eo(i)):Fo(`erfolg`,t.erfolg(n,e));for(let e of t.neuLaden)r.invalidateQueries({queryKey:[e]})},n[0]=t,n[1]=r,n[2]=i):i=n[2];let a;return n[3]!==e||n[4]!==i?(a={mutationFn:e,onSuccess:i,onError:Cs},n[3]=e,n[4]=i,n[5]=a):a=n[5],lt(a)}function Cs(e){return Fo(`fehler`,e.message)}var ws=()=>{let e=(0,I.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:cc,neuLaden:[`start`]},e[0]=t):t=e[0],Ss(sc,t)},Ts={alle:`/api/maintenance/update-all`,pruefen:`/api/maintenance/check-updates`,os:`/api/maintenance/os-update`,engine:`/api/maintenance/engine-update`,swap:`/api/maintenance/swap-update`,hermes:`/api/maintenance/hermes-update`},Es=()=>{let e=(0,I.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:uc,neuLaden:[`jobs`,`start`]},e[0]=t):t=e[0],Ss(lc,t)},Ds=()=>{let e=(0,I.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:fc,fehler:pc,neuLaden:[`jobs`]},e[0]=t):t=e[0],Ss(dc,t)},Os=()=>{let e=(0,I.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:hc,neuLaden:[`jobs`,`models`]},e[0]=t):t=e[0],Ss(mc,t)},ks=()=>{let e=(0,I.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={queryKey:[`aufraeumen`],queryFn:gc,staleTime:6e4},e[0]=t):t=e[0],M(t)},As=()=>{let e=(0,I.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:vc,neuLaden:[`aufraeumen`,`models`,`start`]},e[0]=t):t=e[0],Ss(_c,t)},js=()=>{let e=(0,I.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:bc,neuLaden:[`start`]},e[0]=t):t=e[0],Ss(yc,t)},Ms=()=>{let e=(0,I.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:Sc,fehler:Cc,neuLaden:[`sicherungen`,`start`]},e[0]=t):t=e[0],Ss(xc,t)},Ns=()=>{let e=(0,I.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:Tc,neuLaden:[`sicherungen`]},e[0]=t):t=e[0],Ss(wc,t)},Ps=()=>{let e=(0,I.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:Dc,neuLaden:[`models`,`start`]},e[0]=t):t=e[0],Ss(Ec,t)},Fs=()=>{let e=(0,I.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:kc,neuLaden:[`radar`,`models`,`start`]},e[0]=t):t=e[0],Ss(Oc,t)},Is=()=>{let e=(0,I.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:jc,neuLaden:[`jobs`]},e[0]=t):t=e[0],Ss(Ac,t)},Ls=()=>{let e=(0,I.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={queryKey:[`instanz`],queryFn:Mc,staleTime:1/0},e[0]=t):t=e[0],M(t)},Rs=()=>{let e=(0,I.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={queryKey:[`partner`],queryFn:Nc,refetchInterval:3e4},e[0]=t):t=e[0],M(t)},zs=()=>{let e=(0,I.c)(2),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=[`ziele-box`],e[0]=t):t=e[0];let n;return e[1]===Symbol.for(`react.memo_cache_sentinel`)?(n={queryKey:t,queryFn:Pc,refetchInterval:us(3e4)},e[1]=n):n=e[1],M(n)},Bs=e=>{let t=(0,I.c)(3),n;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=[`homelab`],t[0]=n):n=t[0];let r;return t[1]===e?r=t[2]:(r={queryKey:n,queryFn:Fc,enabled:e,refetchInterval:3e4},t[1]=e,t[2]=r),M(r)},Vs=e=>{let t=(0,I.c)(3),n;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=[`homelab-laeufe`],t[0]=n):n=t[0];let r;return t[1]===e?r=t[2]:(r={queryKey:n,queryFn:Ic,enabled:e,refetchInterval:Rc},t[1]=e,t[2]=r),M(r)},Hs=()=>{let e=(0,I.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:Bc,neuLaden:[`homelab`,`homelab-laeufe`,`ziele-box`,`jobs`,`start`]},e[0]=t):t=e[0],Ss(zc,t)},Us=e=>{let t=(0,I.c)(4),n;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=[`homelab-hinweise`],t[0]=n):n=t[0];let r;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(r=us(6e4),t[1]=r):r=t[1];let i;return t[2]===e?i=t[3]:(i={queryKey:n,queryFn:Vc,enabled:e,refetchInterval:r},t[2]=e,t[3]=i),M(i)},Ws=e=>{let t=(0,I.c)(3),n;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=[`einstellungen`],t[0]=n):n=t[0];let r;return t[1]===e?r=t[2]:(r={queryKey:n,queryFn:Hc,enabled:e,retry:!1},t[1]=e,t[2]=r),M(r)},Gs=()=>{let e=(0,I.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:Wc,neuLaden:[`einstellungen`,`start`]},e[0]=t):t=e[0],Ss(Uc,t)},Ks=()=>{let e=(0,I.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:Kc,neuLaden:[`einstellungen`,`start`,`radar`]},e[0]=t):t=e[0],Ss(Gc,t)},qs=()=>{let e=(0,I.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:Jc,neuLaden:[]},e[0]=t):t=e[0],Ss(qc,t)},Js=(e,t)=>{let n=(0,I.c)(9),r;n[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=[`stand`,`hier`],n[0]=r):r=n[0];let i;n[1]===e?i=n[2]:(i={queryKey:r,queryFn:Yc,enabled:e},n[1]=e,n[2]=i);let a;n[3]===Symbol.for(`react.memo_cache_sentinel`)?(a=[`stand`,`partner`],n[3]=a):a=n[3];let o=e&&t,s;n[4]===o?s=n[5]:(s={queryKey:a,queryFn:Xc,enabled:o,retry:!1},n[4]=o,n[5]=s);let c;return n[6]!==i||n[7]!==s?(c={queries:[i,s]},n[6]=i,n[7]=s,n[8]=c):c=n[8],st(c)},Ys=()=>{let e=(0,I.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={queryKey:[`altreste`],queryFn:Zc,staleTime:6e4},e[0]=t):t=e[0],M(t)},Xs=()=>{let e=(0,I.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:$c,neuLaden:[`altreste`,`start`]},e[0]=t):t=e[0],Ss(Qc,t)};function Zs(){return L(`/api/start`)}function Qs(e){return e.state.data&&!e.state.data.updates.gelesen?4e3:us(2e4)()}function $s(){return L(`/api/models`)}function ec(){return L(`/api/modelle/nutzung`)}function tc(){return L(`/api/radar`)}function nc(e){return e.state.data?.jobs.some(Do)?2e3:us(3e4)()}function rc(){return L(`/api/zeitmaschine`)}function ic(e){return{queryKey:[`update-details`,e],queryFn:()=>L(`/api/maintenance/update-details?kind=${encodeURIComponent(e)}`),staleTime:6e5}}function ac(){return L(`/api/updates/verlauf`)}function oc(){return L(`/api/system/services`)}function sc(e){let{hinweis:t,aktion:n}=e;return R(`/api/hinweise/${encodeURIComponent(t)}/aktion/${n}`)}function cc(e,t){return e.aktion===`freigeben`&&t.text?t.text:`${e.label}: erledigt. Der Wächter prüft in einer Minute nach.`}function lc(e){return R(Ts[e])}function uc(e){return e===`pruefen`?`Die Suche nach Neuem läuft. Den Fortschritt siehst du unten bei den Aufträgen.`:`Das Update läuft. Den Fortschritt siehst du unten bei den Aufträgen.`}function dc(e){let{id:t}=e;return R(`/api/jobs/${encodeURIComponent(t)}/cancel`)}function fc(e){return`${e.titel}: wird abgebrochen.`}function pc(e){return`${e.titel} lief schon nicht mehr.`}function mc(e){let{repo:t,quant:n,rolle:r}=e;return R(`/api/models/install`,{repo:t,quant:n,role:r})}function hc(e,t){return`${e.repo} (${e.quant}) wird heruntergeladen${t.total_bytes?`, ${cs(t.total_bytes,1)}`:``}. Den Fortschritt siehst du unter Aufträge.`}function gc(){return L(`/api/modelle/aufraeumen`)}function _c(e){return R(`/api/modelle/aufraeumen/loeschen`,{art:e.art,name:e.name})}function vc(e,t){return t.text??`Gelöscht.`}function yc(e){return R(`/api/updates/festgehalten/${encodeURIComponent(e)}/freigeben`)}function bc(e,t){return t.text??`Freigegeben.`}function xc(){return R(`/api/system/backup`)}function Sc(e,t){return t.size_mb==null?`Sicherung erstellt.`:`Sicherung erstellt (${t.size_mb.toLocaleString(`de-DE`)} MB).`}function Cc(e,t){return`Die Sicherung ging nicht: ${Eo(t)}`}function wc(e){return R(`/api/zeitmaschine/restore`,{file:e})}function Tc(){return`Zurückspielen läuft. Die Dienste starten gleich neu.`}function Ec(e){return R(`/api/models/${encodeURIComponent(e)}/load`)}function Dc(e){return`${e} wird geladen.`}function Oc(e){let{id:t,aktion:n}=e;return R(`/api/radar/${encodeURIComponent(t)}/${n}`)}function kc(e){return e.aktion===`uebernehmen`?`${e.name} übernommen.`:`${e.name} verworfen.`}function Ac(){return R(`/api/radar/suche`)}function jc(e,t){return t.text??`Das Radar sucht jetzt nach neuen Modellen.`}function Mc(){return L(`/api/instanz`)}function Nc(){return L(`/api/partner`)}function Pc(){return L(`/api/ziele`)}function Fc(){return L(`/api/homelab/ziele`)}function Ic(){return L(`/api/homelab/laeufe`)}function Lc(e){return e.status===`laeuft`}function Rc(e){return e.state.data?.laeufe.some(Lc)?3e3:3e4}function zc(e){return L(e.pfad,{method:e.methode})}function Bc(e){return`${e.label}: gestartet. Das Ergebnis kommt als Meldung.`}function Vc(){return L(`/api/homelab/hinweise`)}function Hc(){return L(`/api/einstellungen`)}function Uc(e){return R(`/api/einstellungen/update-fenster`,e)}function Wc(e,t){return t.text??`Gespeichert.`}function Gc(e){return R(`/api/einstellungen/radar`,{an:e})}function Kc(e,t){return t.text??`Geschaltet.`}function qc(e){return R(e===`homelab`?`/api/homelab/einstellungen/telegram-test`:`/api/einstellungen/telegram-test`)}function Jc(e,t){return t.text??`Die Testmeldung ist raus.`}function Yc(){return L(`/api/instanz`)}function Xc(){return L(`/api/partner/instanz`)}function Zc(){return L(`/api/aufraeumen/altreste`)}function Qc(e){return R(`/api/aufraeumen/altreste/loeschen`,{id:e.id})}function $c(e,t){return t.text??`Gelöscht.`}var el={"ki-box":`KI-Box`,"proxmox-host":`Proxmox-Host`,container:`Container`,vm:`VM`};function tl(e){let t=e.id.match(/-(\d+)$/)?.[1],n=el[e.art]??e.art;return t?`${n} ${t}`:n}var nl={"Proxmox-Host":`Proxmox`,"AdGuard Home":`AdGuard`,"PVE Scripts Local":`PVE Scripts`,"Proxmox Backup Server":`PBS`,"Arcane (Docker)":`Arcane`},rl=e=>nl[e.name]??e.name,il=new Set([`app`,`arcane`]),al=e=>e.bausteine.find(e=>il.has(e.id))??null,ol=e=>e.bausteine.find(e=>!il.has(e.id))??null;function sl(e){let t=e.flatMap(e=>e.bausteine.filter(e=>e.zustand===`neu`).map(t=>({ziel:e,baustein:t})));return[...t.filter(e=>e.baustein.aktion),...t.filter(e=>!e.baustein.aktion)]}function cl(e){let t=e.rueckweg_art??ll(e.rueckweg);return t===`snapshot`?`Snapshot vorher, bei Rot zurück`:t===`sicherung`?`Sicherung vorher, bei Rot zurück`:e.art===`proxmox-host`?`Kein Rückweg, Neustart getrennt`:`Kein automatischer Rückweg`}function ll(e){let t=(e??``).toLowerCase();return t.startsWith(`snapshot vor`)?`snapshot`:t.startsWith(`sicherung`)?`sicherung`:`keiner`}var ul=e=>il.has(e.id);function dl(e,t){let n=ul(t)?`App`:t.id===`docker`?`Docker-Images`:`Pakete`;return e.art===`proxmox-host`?n:`${tl(e)} · ${n}`}var fl=e=>e.replace(/^Image vom /,``);function pl(e){return ul(e)&&e.verfuegbar?e.verfuegbar:e.kurz||e.verfuegbar||`neu`}function ml(e){let t=e.platte;return t&&t.gesamt>0?t.belegt/t.gesamt:null}var hl=.85,gl=.95;function _l(e,t){let n=rl(e),r=ml(e);if(e.erreichbar===!1)return{id:e.id,label:n,zustand:`fehler`,wert:`antwortet nicht`};if(r!==null&&r>=.95)return{id:e.id,label:n,zustand:`fehler`,wert:`Platte voll`};if(t)return{id:e.id,label:n,zustand:`info`,wert:`Update läuft`};if(r!==null&&r>=.85)return{id:e.id,label:n,zustand:`warn`,wert:`Platte ${Math.round(r*100)} %`};let i=e.bausteine.filter(e=>e.zustand===`neu`);if(i.length>0){let t=i.find(e=>il.has(e.id))??i[0];return{id:e.id,label:n,zustand:`info`,wert:il.has(t.id)&&t.verfuegbar?`→ ${t.verfuegbar}`:pl(t)}}let a=al(e);return{id:e.id,label:n,zustand:`ok`,wert:a?.installiert?fl(a.installiert):`aktuell`}}var vl=e=>`${e} HINWEIS${e===1?``:`E`}`;function U(e,t,n,r){let i=e.ziele.filter(e=>e.erreichbar===!1);if(i.length>0)return{art:`rot`,oben:`Störung`,mitte:i.length===1?`1 GERÄT STUMM`:`${i.length} GERÄTE STUMM`,unten:i.map(rl).join(`, `),ziel:`geraete`};if(t.some(e=>e.stufe===`rot`))return{art:`rot`,oben:`Störung`,mitte:vl(t.length),unten:`Drücken zum Ansehen`,ziel:`hinweise`};if(!e.ausfuehrer.verbunden)return{art:`gelb`,oben:`Achtung`,mitte:`AUSFÜHRER STUMM`,unten:`Die Geräte zeigen den letzten Stand`,ziel:null};if(t.length>0)return{art:`gelb`,oben:`Achtung`,mitte:vl(t.length),unten:`Drücken zum Ansehen`,ziel:`hinweise`};if(n>0)return{art:`info`,oben:`Wartung`,mitte:`UPDATE LÄUFT`,unten:`Das Ergebnis kommt als Meldung`,ziel:`updates`};let a=sl(e.ziele).filter(e=>e.baustein.aktion).length;return a>0?{art:`info`,oben:`Homelab`,mitte:`${a} UPDATE${a===1?``:`S`}`,unten:`Drücken zum Ansehen`,ziel:`updates`}:{art:`ok`,oben:`Homelab`,mitte:`ALLES AKTUELL`,unten:r?`Stand ${r}`:`Keine offenen Updates`,ziel:null}}function yl(e){return e?.match(/vom (\d{2}\.\d{2}\.\d{4})/)?.[1]??null}var bl=[{id:`box`,name:`KI-Box`},{id:`homelab`,name:`Homelab`}],xl=[{to:`/`,label:`Cockpit`,Icon:Za,bereich:`box`},{to:`/updates`,label:`Updates`,Icon:to,bereich:`box`,zaehlt:!0},{to:`/modelle`,label:`Modelle`,Icon:qa,bereich:`box`},{to:`/homelab`,label:`Cockpit`,Icon:Za,bereich:`homelab`},{to:`/homelab/updates`,label:`Updates`,Icon:to,bereich:`homelab`,zaehlt:!0}],Sl=e=>bl.find(t=>t.id===e)?.name??e;function Cl(){let e=(0,I.c)(3),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={select:wl},e[0]=t):t=e[0];let n=Ha(t),r;return e[1]===n?r=e[2]:(r=xl.find(e=>e.to===n)??xl[0],e[1]=n,e[2]=r),r}function wl(e){return e.location.pathname}function Tl(){let e=(0,I.c)(19),t=Ls(),n=Rs(),r=qo(),i=t.data?.rolle===`homelab`?`homelab`:`box`,a=r===`live`?`online`:r,o=n.data,s=o?o.eingerichtet?o.erreichbar?`online`:`getrennt`:`fehlt`:`verbinde`,c;e[0]!==a||e[1]!==s||e[2]!==i?(c=i===`box`?{box:a,homelab:s}:{box:s,homelab:a},e[0]=a,e[1]=s,e[2]=i,e[3]=c):c=e[3];let l=c,u=zs(),d=Bs(l.homelab===`online`),f;e[4]===u.data?.ziele?f=e[5]:(f=u.data?.ziele??[],e[4]=u.data?.ziele,e[5]=f);let p;e[6]===f?p=e[7]:(p=f.reduce(Dl,0),e[6]=f,e[7]=p);let m=p,h;e[8]===d.data?.ziele?h=e[9]:(h=sl(d.data?.ziele??[]).filter(El),e[8]=d.data?.ziele,e[9]=h);let g=h.length,_;e[10]!==m||e[11]!==l.box?(_={verbindung:l.box,updates:m},e[10]=m,e[11]=l.box,e[12]=_):_=e[12];let v;e[13]!==g||e[14]!==l.homelab?(v={verbindung:l.homelab,updates:g},e[13]=g,e[14]=l.homelab,e[15]=v):v=e[15];let y;return e[16]!==_||e[17]!==v?(y={box:_,homelab:v},e[16]=_,e[17]=v,e[18]=y):y=e[18],y}function El(e){return e.baustein.aktion}function Dl(e,t){return e+t.bausteine.filter(Ol).length}function Ol(e){return e.zustand===`neu`&&e.aktion}var kl={erfolg:`border-gruen-rand bg-gruen-grund text-gruen-text`,fehler:`border-rot-rand bg-rot-grund text-rot-text`,info:`border-cyan-rand bg-cyan-grund text-cyan-text`};function Al(){let e=(0,I.c)(4),t=Lo(),n;e[0]===t?n=e[1]:(n=t.map(jl),e[0]=t,e[1]=n);let r;return e[2]===n?r=e[3]:(r=(0,h.jsx)(`div`,{"aria-live":`polite`,className:`pointer-events-none fixed right-4 bottom-24 left-4 z-50 flex flex-col items-end gap-2 md:left-auto md:w-[420px] lg:bottom-6`,children:n}),e[2]=n,e[3]=r),r}function jl(t){return(0,h.jsxs)(`div`,{role:t.art===`fehler`?`alert`:`status`,className:r(`pointer-events-auto flex w-full items-start gap-3 rounded-xl border px-4 py-3 text-[15px] shadow-lg`,kl[t.art]),children:[(0,h.jsx)(`span`,{className:`min-w-0 flex-1`,children:t.text}),(0,h.jsx)(`button`,{type:`button`,onClick:()=>Io(t.id),"aria-label":`Meldung schließen`,className:`-m-2 p-2 opacity-70 hover:opacity-100`,children:(0,h.jsx)(e,{className:`size-4`})})]},t.id)}var Ml={online:{punkt:`bg-gruen shadow-[0_0_8px_rgba(61,220,138,0.7)]`,text:`online`},verbinde:{punkt:`bg-bernstein`,text:`verbinde`},getrennt:{punkt:`bg-rot`,text:`getrennt`},fehlt:{punkt:`bg-text-3`,text:`nicht eingerichtet`}},Nl=`flex h-11 items-center gap-3 rounded-lg border-l-2 border-transparent pr-3 pl-3 text-[15px] text-text-2 hover:bg-erhaben hover:text-foreground`;function Pl(){let e=(0,I.c)(2),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,h.jsxs)(`svg`,{width:`34`,height:`34`,viewBox:`0 0 34 34`,fill:`none`,"aria-hidden":!0,className:`shrink-0`,children:[(0,h.jsx)(`rect`,{x:`1.5`,y:`1.5`,width:`31`,height:`31`,rx:`8`,stroke:`var(--linie-stark)`,strokeWidth:`2`}),(0,h.jsx)(`path`,{d:`M7 18h5l3-7 4 13 3-6h5`,stroke:`var(--bernstein)`,strokeWidth:`2.2`,strokeLinecap:`round`,strokeLinejoin:`round`})]}),e[0]=t):t=e[0];let n;return e[1]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,h.jsxs)(`div`,{className:`flex items-center gap-3 px-1`,children:[t,(0,h.jsxs)(`span`,{className:`flex flex-col leading-none`,children:[(0,h.jsx)(`span`,{className:`font-anzeige text-[22px] font-bold tracking-[0.06em]`,children:`Homelab`}),(0,h.jsx)(`span`,{className:`schild text-[13px] tracking-[0.22em] text-text-3`,children:`Orchestrator`})]})]}),e[1]=n):n=e[1],n}function Fl(e){let t=(0,I.c)(15),{onDienste:n,onEinstellungen:i,onGewaehlt:a}=e,o=Tl(),s=Ls().data?.rolle!==`homelab`,c;t[0]!==s||t[1]!==n||t[2]!==a||t[3]!==o?(c=bl.map(e=>{let t=Ml[o[e.id].verbindung];return(0,h.jsxs)(`section`,{"aria-label":e.name,className:`flex flex-col gap-1`,children:[(0,h.jsxs)(`div`,{className:`flex items-center justify-between gap-2 px-3 pb-1.5`,children:[(0,h.jsx)(`h2`,{className:`schild text-sm font-bold tracking-[0.24em] text-foreground`,children:e.name}),(0,h.jsxs)(`span`,{className:`flex items-center gap-1.5 text-xs text-text-3`,children:[(0,h.jsx)(`span`,{"aria-hidden":!0,className:r(`size-2 rounded-full`,t.punkt)}),t.text]})]}),xl.filter(t=>t.bereich===e.id).map(t=>{let n=t.zaehlt?o[e.id].updates:0;return(0,h.jsxs)(ha,{to:t.to,onClick:a,className:Nl,activeProps:{className:`!border-bernstein bg-erhaben !text-foreground`},activeOptions:{exact:!0},children:[(0,h.jsx)(t.Icon,{className:`size-[18px] shrink-0`,"aria-hidden":!0}),(0,h.jsx)(`span`,{className:`flex-1`,children:t.label}),n>0&&(0,h.jsxs)(`span`,{className:`ziffern rounded-full border border-cyan-rand bg-cyan-grund px-2 text-xs leading-5 text-cyan`,children:[n,(0,h.jsxs)(`span`,{className:`sr-only`,children:[` `,n===1?`Update`:`Updates`,` bereit`]})]})]},t.to)}),e.id===`box`&&(0,h.jsxs)(h.Fragment,{children:[(0,h.jsxs)(`button`,{type:`button`,onClick:()=>{a?.(),n()},className:r(Nl,`text-left`),children:[(0,h.jsx)(ro,{className:`size-[18px] shrink-0`,"aria-hidden":!0}),`Dienste und Protokolle`]}),s&&(0,h.jsxs)(`a`,{href:`/hermes-ui/`,target:`_blank`,rel:`noopener`,className:Nl,children:[(0,h.jsx)(Ya,{className:`size-[18px] shrink-0`,"aria-hidden":!0}),`Hermes-Dashboard`]})]})]},e.id)}),t[0]=s,t[1]=n,t[2]=a,t[3]=o,t[4]=c):c=t[4];let l;t[5]!==i||t[6]!==a?(l=()=>{a?.(),i()},t[5]=i,t[6]=a,t[7]=l):l=t[7];let u,d;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(u=r(Nl,`w-full text-left`),d=(0,h.jsx)(ao,{className:`size-[18px] shrink-0`,"aria-hidden":!0}),t[8]=u,t[9]=d):(u=t[8],d=t[9]);let f;t[10]===l?f=t[11]:(f=(0,h.jsx)(`div`,{className:`mt-auto border-t border-linie pt-4`,children:(0,h.jsxs)(`button`,{type:`button`,onClick:l,className:u,children:[d,`Einstellungen`]})}),t[10]=l,t[11]=f);let p;return t[12]!==c||t[13]!==f?(p=(0,h.jsxs)(`nav`,{"aria-label":`Hauptnavigation`,className:`flex flex-1 flex-col gap-7`,children:[c,f]}),t[12]=c,t[13]=f,t[14]=p):p=t[14],p}var Il=`modulepreload`,Ll=function(e){return`/`+e},Rl={},zl=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,import.meta.url).href}r=o(t.map(t=>{if(t=Ll(t,n),t=s(t),t in Rl)return;Rl[t]=!0;let r=t.endsWith(`.css`);for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}let i=document.createElement(`link`);if(i.rel=r?`stylesheet`:Il,r||(i.as=`script`),i.crossOrigin=``,i.href=t,a&&i.setAttribute(`nonce`,a),document.head.appendChild(i),r)return new Promise((e,n)=>{i.addEventListener(`load`,e),i.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}).filter(e=>e!==void 0))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},Bl=(0,m.lazy)(()=>zl(()=>import(`./Dienste-U6DJEyTa.js`).then(e=>({default:e.Dienste})),__vite__mapDeps([0,1,2,3]))),Vl=(0,m.lazy)(()=>zl(()=>import(`./Einstellungen-CC0WNn2p.js`).then(e=>({default:e.Einstellungen})),__vite__mapDeps([4,1,2,3,5]))),Hl=(0,m.lazy)(()=>zl(()=>import(`./MenueSchublade-BT67m9bh.js`).then(e=>({default:e.MenueSchublade})),__vite__mapDeps([6,1,2,3]))),Ul=new Intl.DateTimeFormat(`de-DE`,{hour:`2-digit`,minute:`2-digit`,timeZone:`Europe/Berlin`}),Wl=new Intl.DateTimeFormat(`de-DE`,{weekday:`short`,day:`2-digit`,month:`2-digit`,timeZone:`Europe/Berlin`});function Gl(){let e=(0,I.c)(13),[t,n]=(0,m.useState)(Kl),r,i;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=()=>{let e=window.setInterval(()=>n(new Date),2e4);return()=>window.clearInterval(e)},i=[],e[0]=r,e[1]=i):(r=e[0],i=e[1]),(0,m.useEffect)(r,i);let a;e[2]===t?a=e[3]:(a=Ul.format(t),e[2]=t,e[3]=a);let o;e[4]===a?o=e[5]:(o=(0,h.jsx)(`span`,{className:`ziffern text-2xl font-medium`,children:a}),e[4]=a,e[5]=o);let s;e[6]===t?s=e[7]:(s=Wl.format(t).replace(`,`,``),e[6]=t,e[7]=s);let c;e[8]===s?c=e[9]:(c=(0,h.jsx)(`span`,{className:`schild text-[13px] text-text-3`,children:s}),e[8]=s,e[9]=c);let l;return e[10]!==o||e[11]!==c?(l=(0,h.jsxs)(`div`,{className:`flex flex-col items-end leading-tight`,children:[o,c]}),e[10]=o,e[11]=c,e[12]=l):l=e[12],l}function Kl(){return new Date}function ql(){let e=(0,I.c)(14),t=qo(),n=t===`live`,i=n?`Verbunden`:t===`verbinde`?`Verbinde`:`Getrennt`,a=n?`text-text-3`:`text-bernstein`,o;e[0]===a?o=e[1]:(o=r(`schild flex items-center gap-1.5 text-[13px]`,a),e[0]=a,e[1]=o);let s=n?`bg-gruen shadow-[0_0_8px_rgba(61,220,138,0.7)]`:`bg-bernstein`,c;e[2]===s?c=e[3]:(c=r(`size-2 rounded-full`,s),e[2]=s,e[3]=c);let l;e[4]===c?l=e[5]:(l=(0,h.jsx)(`span`,{"aria-hidden":!0,className:c}),e[4]=c,e[5]=l);let u=n?`sr-only`:void 0,d=n?`Verbunden`:t===`verbinde`?`Verbinde`:`Getrennt`,f;e[6]!==u||e[7]!==d?(f=(0,h.jsx)(`span`,{className:u,children:d}),e[6]=u,e[7]=d,e[8]=f):f=e[8];let p;return e[9]!==i||e[10]!==o||e[11]!==l||e[12]!==f?(p=(0,h.jsxs)(`span`,{role:`status`,title:i,className:o,children:[l,f]}),e[9]=i,e[10]=o,e[11]=l,e[12]=f,e[13]=p):p=e[13],p}function Jl(){let e=(0,I.c)(34);Xo();let[t,n]=(0,m.useState)(null),r;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=()=>n(null),e[0]=r):r=e[0];let i=r,a=Cl(),o;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,h.jsx)(Pl,{}),e[1]=o):o=e[1];let s;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,h.jsxs)(`aside`,{className:`sticky top-0 hidden h-dvh flex-col gap-8 overflow-y-auto border-r border-linie bg-[#0c0f12] px-4 py-7 lg:flex`,children:[o,(0,h.jsx)(Fl,{onDienste:()=>n(`dienste`),onEinstellungen:()=>n(`einstellungen`)})]}),e[2]=s):s=e[2];let c;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(c=()=>n(`menue`),e[3]=c):c=e[3];let l;e[4]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,h.jsx)(`button`,{type:`button`,onClick:c,className:`-ml-2 flex size-11 shrink-0 items-center justify-center rounded-lg text-text-2 hover:bg-erhaben hover:text-foreground lg:hidden`,"aria-label":`Menü öffnen`,children:(0,h.jsx)($a,{className:`size-6`})}),e[4]=l):l=e[4];let u;e[5]===a.bereich?u=e[6]:(u=Sl(a.bereich),e[5]=a.bereich,e[6]=u);let d;e[7]===u?d=e[8]:(d=(0,h.jsx)(`span`,{className:`schild text-[13px] tracking-[0.24em] text-text-3`,children:u}),e[7]=u,e[8]=d);let f;e[9]===a.label?f=e[10]:(f=(0,h.jsx)(`h1`,{className:`font-anzeige text-[26px] leading-none font-bold tracking-[0.04em]`,children:a.label}),e[9]=a.label,e[10]=f);let p;e[11]!==d||e[12]!==f?(p=(0,h.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[l,(0,h.jsxs)(`div`,{className:`flex min-w-0 flex-col leading-tight`,children:[d,f]})]}),e[11]=d,e[12]=f,e[13]=p):p=e[13];let g;e[14]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,h.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,h.jsx)(`span`,{className:`lg:hidden`,children:(0,h.jsx)(ql,{})}),(0,h.jsx)(Gl,{})]}),e[14]=g):g=e[14];let _;e[15]===p?_=e[16]:(_=(0,h.jsxs)(`header`,{className:`flex items-center justify-between gap-4`,children:[p,g]}),e[15]=p,e[16]=_);let v;e[17]===Symbol.for(`react.memo_cache_sentinel`)?(v=(0,h.jsx)(`main`,{className:`flex min-w-0 flex-col gap-5 md:gap-6`,children:(0,h.jsx)(Ma,{})}),e[17]=v):v=e[17];let y;e[18]===_?y=e[19]:(y=(0,h.jsxs)(`div`,{className:`mx-auto flex w-full max-w-[1320px] min-w-0 flex-col gap-5 px-4 pt-4 pb-10 sm:px-6 md:gap-6 md:px-10 md:pt-8`,children:[_,v]}),e[18]=_,e[19]=y);let b;e[20]===t?b=e[21]:(b=t===`menue`&&(0,h.jsx)(Hl,{onDienste:()=>n(`dienste`),onEinstellungen:()=>n(`einstellungen`),onSchliessen:i}),e[20]=t,e[21]=b);let x;e[22]===t?x=e[23]:(x=t===`dienste`&&(0,h.jsx)(Bl,{offen:!0,onSchliessen:i}),e[22]=t,e[23]=x);let S;e[24]===t?S=e[25]:(S=t===`einstellungen`&&(0,h.jsx)(Vl,{offen:!0,onSchliessen:i}),e[24]=t,e[25]=S);let C;e[26]!==b||e[27]!==x||e[28]!==S?(C=(0,h.jsxs)(m.Suspense,{fallback:null,children:[b,x,S]}),e[26]=b,e[27]=x,e[28]=S,e[29]=C):C=e[29];let w;e[30]===Symbol.for(`react.memo_cache_sentinel`)?(w=(0,h.jsx)(Al,{}),e[30]=w):w=e[30];let T;return e[31]!==y||e[32]!==C?(T=(0,h.jsxs)(`div`,{className:`min-h-dvh lg:grid lg:grid-cols-[272px_minmax(0,1fr)]`,children:[s,y,C,w]}),e[31]=y,e[32]=C,e[33]=T):T=e[33],T}var Yl=(0,m.lazy)(()=>zl(()=>import(`./Protokollfenster-C5MkHrP6.js`).then(e=>({default:e.Protokollfenster})),__vite__mapDeps([7,1,2,3]))),Xl=(0,m.lazy)(()=>zl(()=>import(`./Bestaetigen-CE_3b0PK.js`).then(e=>e.n).then(e=>({default:e.Bestaetigen})),__vite__mapDeps([5,1,3])));function Zl({h:e}){let t=ws(),[n,i]=(0,m.useState)(null),[a,o]=(0,m.useState)(null),s=e.stufe===`rot`,l=a?To(e,a):null;async function u(){try{let t=await R(`/api/hinweise/${encodeURIComponent(e.id)}/aktion/protokoll`);i({titel:e.titel,text:t.text||t.out||t.err||`Kein Protokoll vorhanden.`})}catch(e){Fo(`fehler`,e.message)}}function d(n){t.mutate({hinweis:e.id,aktion:n.id,label:n.label})}function f(t){t.id===`protokoll`?u():To(e,t)?o(t):d(t)}return(0,h.jsxs)(`article`,{className:`flex flex-col gap-2.5 border-t border-linie pt-4`,children:[(0,h.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,h.jsx)(`h3`,{className:`min-w-0 font-sans text-[17px] leading-snug font-semibold`,children:e.titel}),(0,h.jsx)(`span`,{"aria-hidden":!0,className:`hidden h-0 flex-grow border-b-2 border-dotted border-linie-stark sm:block`}),(0,h.jsx)(`span`,{className:r(`schild shrink-0 text-base`,s?`text-rot`:`text-bernstein`),children:s?`Jetzt`:`Prüfen`})]}),(0,h.jsxs)(`p`,{className:`ziffern text-[13px] text-text-3`,children:[as(e.seit),` · zuletzt `,os(e.zuletzt)]}),e.text&&(0,h.jsx)(`p`,{className:`text-[15px] leading-relaxed break-words text-text-2`,children:e.text}),e.aktionen.length>0&&(0,h.jsx)(`div`,{className:`flex flex-wrap gap-2.5 pt-1`,children:e.aktionen.map((e,n)=>(0,h.jsx)(c,{variant:n===0&&e.id!==`protokoll`?`default`:`outline`,size:`sm`,disabled:t.isPending,onClick:()=>f(e),children:e.label},e.id))}),n&&(0,h.jsx)(m.Suspense,{fallback:null,children:(0,h.jsx)(Yl,{offen:!0,titel:n.titel,text:n.text,onSchliessen:()=>i(null)})}),a&&l&&(0,h.jsx)(m.Suspense,{fallback:null,children:(0,h.jsx)(Xl,{offen:!0,titel:l.titel,text:l.text,knopf:l.knopf,gesperrt:t.isPending,onNein:()=>o(null),onJa:()=>{d(a),o(null)}})})]})}function Ql(e){let t=(0,I.c)(12),{hinweise:n,verlauf:r}=e,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=new Date().toDateString(),t[0]=i):i=t[0];let a=i,o;if(t[1]!==n.length||t[2]!==r){o=Symbol.for(`react.early_return_sentinel`);bb0:{let e;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(e=e=>(e.art===`erledigt`||e.art===`auto`)&&new Date(e.ts*1e3).toDateString()===a,t[4]=e):e=t[4];let i=r.filter(e);if(n.length===0){let e;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,h.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Keine offenen Punkte. Der Wächter prüft jede Minute.`}),t[5]=e):e=t[5];let n=i.length>0&&(0,h.jsx)(`ul`,{className:`flex flex-col gap-1 text-sm text-text-3`,children:i.slice(0,4).map(eu)}),r;t[6]===n?r=t[7]:(r=(0,h.jsxs)(`div`,{className:`flex flex-col gap-2 border-t border-linie pt-4`,children:[e,n]}),t[6]=n,t[7]=r),o=r;break bb0}}t[1]=n.length,t[2]=r,t[3]=o}else o=t[3];if(o!==Symbol.for(`react.early_return_sentinel`))return o;let s;t[8]===n?s=t[9]:(s=n.map($l),t[8]=n,t[9]=s);let c;return t[10]===s?c=t[11]:(c=(0,h.jsx)(`div`,{className:`flex flex-col gap-4`,children:s}),t[10]=s,t[11]=c),c}function $l(e){return(0,h.jsx)(Zl,{h:e},e.id)}function eu(e){return(0,h.jsxs)(`li`,{children:[(0,h.jsx)(`span`,{className:`ziffern`,children:os(e.ts)}),` · `,e.text]},`${e.id}-${e.ts}`)}var tu={gruen:`border-gruen-rand bg-gruen-grund text-gruen`,bernstein:`border-bernstein/60 bg-bernstein-grund text-bernstein`,cyan:`border-cyan-rand bg-cyan-grund text-cyan`,rot:`border-rot-rand bg-rot-grund text-rot-text`,grau:`border-linie bg-erhaben text-text-2`};function nu(e){let t=(0,I.c)(5),{art:n,children:i}=e,a=tu[n===void 0?`grau`:n],o;t[0]===a?o=t[1]:(o=r(`schild inline-flex h-7 items-center rounded-full border px-2.5 text-xs whitespace-nowrap`,a),t[0]=a,t[1]=o);let s;return t[2]!==i||t[3]!==o?(s=(0,h.jsx)(`span`,{className:o,children:i}),t[2]=i,t[3]=o,t[4]=s):s=t[4],s}function ru(e){let t=(0,I.c)(6),{fehler:n,text:i}=e,a=n?`alert`:`status`,o=n?`border-rot-rand bg-rot-grund text-rot-text`:`border-linie bg-panel text-text-2`,s;t[0]===o?s=t[1]:(s=r(`rounded-2xl border px-5 py-8 text-center text-[15px]`,o),t[0]=o,t[1]=s);let c;return t[2]!==a||t[3]!==s||t[4]!==i?(c=(0,h.jsx)(`div`,{role:a,className:s,children:i}),t[2]=a,t[3]=s,t[4]=i,t[5]=c):c=t[5],c}var iu={erledigt:{text:`Erledigt`,farbe:`text-gruen`},fehler:{text:`Fehler`,farbe:`text-rot`},geplant:{text:`Geplant`,farbe:`text-text-3`}};function au(e){let t=(0,I.c)(18),{e:n}=e,i=iu[n.status]??iu.geplant,a=n.status===`geplant`&&/update/i.test(n.titel)?`text-cyan`:i.farbe,o;t[0]===n.zeit?o=t[1]:(o=is(n.zeit),t[0]=n.zeit,t[1]=o);let s;t[2]===o?s=t[3]:(s=(0,h.jsx)(`span`,{className:`ziffern col-start-1 row-start-1 text-sm text-text-3`,children:o}),t[2]=o,t[3]=s);let c;t[4]===n.text?c=t[5]:(c=n.text&&(0,h.jsxs)(`span`,{className:`text-text-3`,children:[`, `,n.text]}),t[4]=n.text,t[5]=c);let l;t[6]!==n.titel||t[7]!==c?(l=(0,h.jsxs)(`span`,{className:`col-span-2 row-start-2 min-w-0 text-base break-words @sm:col-span-1 @sm:col-start-2 @sm:row-start-1`,children:[n.titel,c]}),t[6]=n.titel,t[7]=c,t[8]=l):l=t[8];let u;t[9]===a?u=t[10]:(u=r(`schild col-start-2 row-start-1 justify-self-end text-[13px] @sm:col-start-3`,a),t[9]=a,t[10]=u);let d;t[11]!==i.text||t[12]!==u?(d=(0,h.jsx)(`span`,{className:u,children:i.text}),t[11]=i.text,t[12]=u,t[13]=d):d=t[13];let f;return t[14]!==s||t[15]!==l||t[16]!==d?(f=(0,h.jsxs)(`li`,{className:`grid grid-cols-[minmax(0,1fr)_auto] items-center gap-x-3 gap-y-1 border-t border-linie py-2.5 @sm:grid-cols-[112px_minmax(0,1fr)_auto]`,children:[s,l,d]}),t[14]=s,t[15]=l,t[16]=d,t[17]=f):f=t[17],f}function W(e){let t=(0,I.c)(6),{gelaufen:n,geplant:r}=e,i;t[0]!==n||t[1]!==r?(i=[...n,...r.slice(0,5)],t[0]=n,t[1]=r,t[2]=i):i=t[2];let a=i;if(a.length===0){let e;return t[3]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,h.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Heute ist noch nichts gelaufen, und nichts ist geplant.`}),t[3]=e):e=t[3],e}let o;return t[4]===a?o=t[5]:(o=(0,h.jsx)(`ol`,{className:`@container m-0 flex list-none flex-col p-0`,children:a.map(ou)}),t[4]=a,t[5]=o),o}function ou(e){return(0,h.jsx)(au,{e},`${e.titel}-${e.zeit}`)}function su(e){let t=(0,I.c)(25),{anteil:n,farbe:r,zonen:i,mitte:a,unter:o,beschriftung:s,ariaText:c}=e,l=r===void 0?`var(--cyan)`:r,u;t[0]===i?u=t[1]:(u=i===void 0?[]:i,t[0]=i,t[1]=u);let d=u,f=n!=null&&n>.004,p;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,h.jsx)(`path`,{d:xo(0,1,75),fill:`none`,stroke:`var(--linie)`,strokeWidth:12,strokeLinecap:`round`}),t[2]=p):p=t[2];let m;t[3]===d?m=t[4]:(m=d.map(cu),t[3]=d,t[4]=m);let g;t[5]!==n||t[6]!==l||t[7]!==f?(g=f&&(0,h.jsx)(`path`,{d:xo(0,n,75),fill:`none`,stroke:l,strokeWidth:12,strokeLinecap:`round`}),t[5]=n,t[6]=l,t[7]=f,t[8]=g):g=t[8];let _;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(_={fontSize:34,fontWeight:500,fill:`var(--foreground)`},t[9]=_):_=t[9];let v;t[10]===a?v=t[11]:(v=(0,h.jsx)(`text`,{x:`100`,y:`100`,textAnchor:`middle`,className:`ziffern`,style:_,children:a}),t[10]=a,t[11]=v);let y;t[12]===o?y=t[13]:(y=o&&(0,h.jsx)(`text`,{x:`100`,y:`122`,textAnchor:`middle`,style:{fontFamily:`var(--font-anzeige)`,fontSize:14,fontWeight:600,letterSpacing:`0.12em`,fill:`var(--text-3)`},children:o.toUpperCase()}),t[12]=o,t[13]=y);let b;t[14]!==c||t[15]!==m||t[16]!==g||t[17]!==v||t[18]!==y?(b=(0,h.jsxs)(`svg`,{viewBox:`0 0 200 150`,className:`h-auto w-full max-w-[200px]`,role:`img`,"aria-label":c,children:[p,m,g,v,y]}),t[14]=c,t[15]=m,t[16]=g,t[17]=v,t[18]=y,t[19]=b):b=t[19];let x;t[20]===s?x=t[21]:(x=(0,h.jsx)(`figcaption`,{className:`schild text-[15px] text-text-3`,children:s}),t[20]=s,t[21]=x);let S;return t[22]!==b||t[23]!==x?(S=(0,h.jsxs)(`figure`,{className:`m-0 flex min-w-0 flex-col items-center gap-1`,children:[b,x]}),t[22]=b,t[23]=x,t[24]=S):S=t[24],S}function cu(e){return(0,h.jsx)(`path`,{d:xo(e.von,e.bis,86),fill:`none`,stroke:e.farbe,strokeWidth:4,strokeLinecap:`round`},`${e.von}-${e.bis}`)}function lu(e){let t=(0,I.c)(11),{titel:n,rechts:i,children:a,className:o,id:s}=e,c;t[0]===o?c=t[1]:(c=r(`flex min-w-0 flex-col gap-4 rounded-2xl border border-linie bg-panel p-5 sm:p-6`,o),t[0]=o,t[1]=c);let l;t[2]!==i||t[3]!==n?(l=(n||i)&&(0,h.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[n&&(0,h.jsx)(`h2`,{className:`schild text-lg font-bold tracking-[0.22em] text-foreground`,children:n}),i]}),t[2]=i,t[3]=n,t[4]=l):l=t[4];let u;return t[5]!==a||t[6]!==s||t[7]!==c||t[8]!==l||t[9]!==n?(u=(0,h.jsxs)(`section`,{id:s,"aria-label":n,className:c,children:[l,a]}),t[5]=a,t[6]=s,t[7]=c,t[8]=l,t[9]=n,t[10]=u):u=t[10],u}var uu={ok:{feld:`border-gruen-rand bg-gruen-grund`,name:`text-gruen`,wert:`text-gruen-text`},aus:{feld:`border-aus-rand bg-aus-grund`,name:`text-aus-text`,wert:`text-text-3`},warn:{feld:`border-bernstein bg-bernstein-lampe lampe-atmet`,name:`text-bernstein`,wert:`text-[#f2c46b]`},info:{feld:`border-cyan-rand bg-cyan-grund`,name:`text-cyan`,wert:`text-cyan-text`},fehler:{feld:`border-rot bg-rot-grund shadow-[0_0_18px_rgba(255,90,79,0.35)]`,name:`text-rot`,wert:`text-rot-text`}},du={ok:`in Ordnung`,aus:`aus`,warn:`braucht Aufmerksamkeit`,info:`Info`,fehler:`Störung`};function fu(e){let t=(0,I.c)(19),{lampe:n}=e,i=uu[n.zustand]??uu.aus,a;t[0]===i.feld?a=t[1]:(a=r(`flex min-h-[58px] flex-col items-center justify-center gap-0.5 rounded-lg border px-2 py-2 text-center`,i.feld),t[0]=i.feld,t[1]=a);let o;t[2]===i.name?o=t[3]:(o=r(`schild text-[17px] leading-none font-bold tracking-[0.18em]`,i.name),t[2]=i.name,t[3]=o);let s;t[4]!==n.label||t[5]!==o?(s=(0,h.jsx)(`span`,{className:o,children:n.label}),t[4]=n.label,t[5]=o,t[6]=s):s=t[6];let c;t[7]===i.wert?c=t[8]:(c=r(`ziffern text-xs uppercase`,i.wert),t[7]=i.wert,t[8]=c);let l;t[9]!==n.wert||t[10]!==c?(l=(0,h.jsx)(`span`,{className:c,children:n.wert}),t[9]=n.wert,t[10]=c,t[11]=l):l=t[11];let u=du[n.zustand],d;t[12]===u?d=t[13]:(d=(0,h.jsx)(`span`,{className:`sr-only`,children:u}),t[12]=u,t[13]=d);let f;return t[14]!==a||t[15]!==s||t[16]!==l||t[17]!==d?(f=(0,h.jsxs)(`li`,{className:a,children:[s,l,d]}),t[14]=a,t[15]=s,t[16]=l,t[17]=d,t[18]=f):f=t[18],f}function pu(e){let t=(0,I.c)(26),{zustand:n,lampen:i,onAnsehen:a}=e,o;t[0]===n?o=t[1]:(o=wo(n),t[0]=n,t[1]=o);let s=o,c=s.art===`gelb`||s.art===`rot`,l=!c,u=`${s.oben} ${s.mitte}`,d=Co[s.art],f=c?`cursor-pointer`:`cursor-default`,p;t[2]!==d||t[3]!==f?(p=r(`flex min-h-[130px] flex-col items-center justify-center gap-1 rounded-2xl border px-4 py-4 font-anzeige transition-colors`,d,f),t[2]=d,t[3]=f,t[4]=p):p=t[4];let m;t[5]===s.oben?m=t[6]:(m=(0,h.jsx)(`span`,{className:`schild text-sm tracking-[0.26em]`,children:s.oben}),t[5]=s.oben,t[6]=m);let g;t[7]===s.mitte?g=t[8]:(g=(0,h.jsx)(`span`,{className:`text-[40px] leading-none font-bold tracking-[0.04em] sm:text-[44px]`,children:s.mitte}),t[7]=s.mitte,t[8]=g);let _;t[9]===s.unten?_=t[10]:(_=(0,h.jsx)(`span`,{className:`font-sans text-sm opacity-80`,children:s.unten}),t[9]=s.unten,t[10]=_);let v;t[11]!==a||t[12]!==l||t[13]!==u||t[14]!==p||t[15]!==m||t[16]!==g||t[17]!==_?(v=(0,h.jsxs)(`button`,{type:`button`,onClick:a,disabled:l,"aria-label":u,className:p,children:[m,g,_]}),t[11]=a,t[12]=l,t[13]=u,t[14]=p,t[15]=m,t[16]=g,t[17]=_,t[18]=v):v=t[18];let y;t[19]===i?y=t[20]:(y=i.map(mu),t[19]=i,t[20]=y);let b;t[21]===y?b=t[22]:(b=(0,h.jsx)(`ul`,{className:`grid grid-cols-2 gap-2.5 rounded-2xl border border-linie bg-panel p-3 sm:grid-cols-4`,children:y}),t[21]=y,t[22]=b);let x;return t[23]!==v||t[24]!==b?(x=(0,h.jsxs)(`section`,{"aria-label":`Warnpanel`,className:`grid gap-4 md:grid-cols-[260px_minmax(0,1fr)] md:gap-5`,children:[v,b]}),t[23]=v,t[24]=b,t[25]=x):x=t[25],x}function mu(e){return(0,h.jsx)(fu,{lampe:e},e.id)}function hu(e){let t=(0,I.c)(2),{z:n}=e,r;return t[0]===n?r=t[1]:(r=(0,h.jsx)(`span`,{className:`ziffern inline-flex h-[1.75em] w-[1.1875em] shrink-0 items-center justify-center rounded-md border border-[#2a3036] bg-[#0b0d0f] font-medium`,children:n}),t[0]=n,t[1]=r),r}function gu(e){let t=(0,I.c)(25),{sekunden:n}=e,r;t[0]===n?r=t[1]:(r=ss(n),t[0]=n,t[1]=r);let i=r,a=String(Math.min(i?.[0]??0,99)),o;t[2]===a?o=t[3]:(o=a.padStart(2,`0`),t[2]=a,t[3]=o);let s=o,c=String(i?.[1]??0),l;t[4]===c?l=t[5]:(l=c.padStart(2,`0`),t[4]=c,t[5]=l);let u=l,d=i?`Laufzeit ohne Neustart: ${i[0]} Tage, ${i[1]} Stunden`:`Laufzeit unbekannt`,f=i?s[0]:`–`,p;t[6]===f?p=t[7]:(p=(0,h.jsx)(hu,{z:f}),t[6]=f,t[7]=p);let m=i?s[1]:`–`,g;t[8]===m?g=t[9]:(g=(0,h.jsx)(hu,{z:m}),t[8]=m,t[9]=g);let _;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,h.jsx)(`span`,{className:`schild mr-[0.444em] ml-[0.111em] text-[0.5625em] font-bold text-text-3`,children:`T`}),t[10]=_):_=t[10];let v=i?u[0]:`–`,y;t[11]===v?y=t[12]:(y=(0,h.jsx)(hu,{z:v}),t[11]=v,t[12]=y);let b=i?u[1]:`–`,x;t[13]===b?x=t[14]:(x=(0,h.jsx)(hu,{z:b}),t[13]=b,t[14]=x);let S;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,h.jsx)(`span`,{className:`schild ml-[0.111em] text-[0.5625em] font-bold text-text-3`,children:`H`}),t[15]=S):S=t[15];let C;t[16]!==y||t[17]!==x||t[18]!==p||t[19]!==g||t[20]!==d?(C=(0,h.jsxs)(`div`,{"aria-label":d,role:`img`,className:`flex h-[min(75cqw,150px)] items-center gap-[0.1875em] pb-[min(10cqw,20px)] text-[length:clamp(14px,14.5cqw,32px)]`,children:[p,g,_,y,x,S]}),t[16]=y,t[17]=x,t[18]=p,t[19]=g,t[20]=d,t[21]=C):C=t[21];let w;t[22]===Symbol.for(`react.memo_cache_sentinel`)?(w=(0,h.jsx)(`figcaption`,{className:`schild text-[15px] text-text-3`,children:`Ohne Neustart`}),t[22]=w):w=t[22];let T;return t[23]===C?T=t[24]:(T=(0,h.jsxs)(`figure`,{className:`@container m-0 flex min-w-0 flex-col items-center justify-end gap-1`,children:[C,w]}),t[23]=C,t[24]=T),T}function _u(e){let t=(0,I.c)(47),{box:n}=e,r=Jo(),i=r?.ram_used??n.ram_used,a=r?.ram_total??n.ram_total,o=r?.temp_cpu??n.temp_cpu,s=r?.temp_gpu??n.temp_gpu,c=n.platte,l=r?.uptime_s??n.uptime_s,u=i!=null&&a?i/a:null,d;t[0]===i?d=t[1]:(d=i==null?`–`:String(Math.round(H(i)??0)),t[0]=i,t[1]=d);let f;t[2]===a?f=t[3]:(f=a?`von ${Math.round(H(a)??0)} GB`:void 0,t[2]=a,t[3]=f);let p;t[4]!==u||t[5]!==i||t[6]!==a?(p=u==null?`Speicher unbekannt`:`Speicher: ${cs(i)} von ${cs(a)} belegt`,t[4]=u,t[5]=i,t[6]=a,t[7]=p):p=t[7];let m;t[8]!==u||t[9]!==d||t[10]!==f||t[11]!==p?(m=(0,h.jsx)(su,{beschriftung:`Speicher`,anteil:u,mitte:d,unter:f,ariaText:p}),t[8]=u,t[9]=d,t[10]=f,t[11]=p,t[12]=m):m=t[12];let g=o==null?null:o/100,_;t[13]===o?_=t[14]:(_=So(o),t[13]=o,t[14]=_);let v;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(v=[{von:.7,bis:.85,farbe:`var(--bernstein)`},{von:.85,bis:1,farbe:`var(--rot)`}],t[15]=v):v=t[15];let y;t[16]===o?y=t[17]:(y=o==null?`–`:`${Math.round(o)}°`,t[16]=o,t[17]=y);let b;t[18]===s?b=t[19]:(b=s==null?void 0:`GPU ${Math.round(s)}°`,t[18]=s,t[19]=b);let x;t[20]===o?x=t[21]:(x=o==null?`Temperatur unbekannt`:`Temperatur ${Math.round(o)} Grad`,t[20]=o,t[21]=x);let S;t[22]!==x||t[23]!==g||t[24]!==_||t[25]!==y||t[26]!==b?(S=(0,h.jsx)(su,{beschriftung:`Temperatur`,anteil:g,farbe:_,zonen:v,mitte:y,unter:b,ariaText:x}),t[22]=x,t[23]=g,t[24]=_,t[25]=y,t[26]=b,t[27]=S):S=t[27];let C=c?c.percent/100:null,w=c&&c.percent>=90?`var(--rot)`:c&&c.percent>=80?`var(--bernstein)`:`var(--cyan)`,T;t[28]===c?T=t[29]:(T=c?`${Math.round(c.percent)}%`:`–`,t[28]=c,t[29]=T);let ee;t[30]===c?ee=t[31]:(ee=c?`${cs(c.used)} / ${cs(c.total)}`:void 0,t[30]=c,t[31]=ee);let E;t[32]===c?E=t[33]:(E=c?`Platte zu ${Math.round(c.percent)} Prozent belegt`:`Platte unbekannt`,t[32]=c,t[33]=E);let te;t[34]!==C||t[35]!==w||t[36]!==T||t[37]!==ee||t[38]!==E?(te=(0,h.jsx)(su,{beschriftung:`Platte`,anteil:C,farbe:w,mitte:T,unter:ee,ariaText:E}),t[34]=C,t[35]=w,t[36]=T,t[37]=ee,t[38]=E,t[39]=te):te=t[39];let D;t[40]===l?D=t[41]:(D=(0,h.jsx)(gu,{sekunden:l}),t[40]=l,t[41]=D);let ne;return t[42]!==S||t[43]!==te||t[44]!==D||t[45]!==m?(ne=(0,h.jsxs)(`section`,{"aria-label":`Instrumente`,className:`grid grid-cols-2 gap-x-4 gap-y-6 rounded-2xl border border-linie bg-panel px-4 py-5 lg:grid-cols-4 lg:px-6`,children:[m,S,te,D]}),t[42]=S,t[43]=te,t[44]=D,t[45]=m,t[46]=ne):ne=t[46],ne}var vu={bestanden:`gruen`,durchgefallen:`rot`,wartet:`cyan`,neu:`cyan`};function yu(e){let t=(0,I.c)(14),{radar:n}=e;if(!n?.kandidaten)return null;let r,i;t[0]===n.kandidaten?(r=t[1],i=t[2]):(r=n.kandidaten.filter(G),i=r.find(bu)??r[0],t[0]=n.kandidaten,t[1]=r,t[2]=i);let a=i,o=r.length===1?``:`en`,s;t[3]!==r.length||t[4]!==o?(s=(0,h.jsxs)(`span`,{className:`schild text-sm text-cyan`,children:[`Radar · `,r.length,` Kandidat`,o]}),t[3]=r.length,t[4]=o,t[5]=s):s=t[5];let l;t[6]===a?l=t[7]:(l=a?(0,h.jsxs)(`span`,{className:`flex flex-wrap items-center gap-2 text-[15px]`,children:[(0,h.jsx)(`span`,{className:`ziffern`,children:a.name}),(0,h.jsxs)(`span`,{className:`text-text-2`,children:[`fürs `,a.rolle===`hirn`?`Hirn`:`Coden`]}),(0,h.jsx)(nu,{art:vu[a.status]??`grau`,children:ko[a.status]??a.status})]}):(0,h.jsx)(`span`,{className:`text-[15px] text-text-2`,children:`Nichts Besseres in Sicht.`}),t[6]=a,t[7]=l);let u;t[8]!==s||t[9]!==l?(u=(0,h.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1`,children:[s,l]}),t[8]=s,t[9]=l,t[10]=u):u=t[10];let d;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,h.jsx)(c,{variant:`info`,size:`sm`,asChild:!0,children:(0,h.jsx)(ha,{to:`/modelle`,hash:`radar`,children:`Ansehen`})}),t[11]=d):d=t[11];let f;return t[12]===u?f=t[13]:(f=(0,h.jsxs)(`div`,{className:`mt-auto flex flex-wrap items-center justify-between gap-3 rounded-xl border border-cyan-rand bg-cyan-grund px-4 py-3.5`,children:[u,d]}),t[12]=u,t[13]=f),f}function bu(e){return e.status===`bestanden`}function G(e){return[`bestanden`,`wartet`,`neu`].includes(e.status)}function xu(){let e=(0,I.c)(32),{data:t,error:n,isPending:r}=fs(),i=hs();if(r){let t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,h.jsx)(ru,{text:`Die Box meldet sich gleich …`}),e[0]=t):t=e[0],t}if(!t){let t=`MC2 antwortet nicht: ${n?.message??`keine Daten`}`,r;return e[1]===t?r=e[2]:(r=(0,h.jsx)(ru,{fehler:!0,text:t}),e[1]=t,e[2]=r),r}let a=t.hinweise.length,o;e[3]!==t.lampen||e[4]!==t.zustand?(o=(0,h.jsx)(pu,{zustand:t.zustand,lampen:t.lampen,onAnsehen:Su}),e[3]=t.lampen,e[4]=t.zustand,e[5]=o):o=e[5];let s;e[6]===t.box?s=e[7]:(s=(0,h.jsx)(_u,{box:t.box}),e[6]=t.box,e[7]=s);let c=a?`ziffern text-sm text-bernstein`:`ziffern text-sm text-gruen`,l=a?`${a} offen`:`alles erledigt`,u;e[8]!==c||e[9]!==l?(u=(0,h.jsx)(`span`,{className:c,children:l}),e[8]=c,e[9]=l,e[10]=u):u=e[10];let d;e[11]!==t.hinweise||e[12]!==t.verlauf?(d=(0,h.jsx)(Ql,{hinweise:t.hinweise,verlauf:t.verlauf}),e[11]=t.hinweise,e[12]=t.verlauf,e[13]=d):d=e[13];let f;e[14]!==u||e[15]!==d?(f=(0,h.jsx)(lu,{titel:`Checkliste`,id:`checkliste`,rechts:u,children:d}),e[14]=u,e[15]=d,e[16]=f):f=e[16];let p;e[17]!==t.flugplan.gelaufen||e[18]!==t.flugplan.geplant?(p=(0,h.jsx)(W,{gelaufen:t.flugplan.gelaufen,geplant:t.flugplan.geplant}),e[17]=t.flugplan.gelaufen,e[18]=t.flugplan.geplant,e[19]=p):p=e[19];let m;e[20]===i.data?m=e[21]:(m=(0,h.jsx)(yu,{radar:i.data}),e[20]=i.data,e[21]=m);let g;e[22]!==p||e[23]!==m?(g=(0,h.jsxs)(lu,{titel:`Flugplan`,children:[p,m]}),e[22]=p,e[23]=m,e[24]=g):g=e[24];let _;e[25]!==f||e[26]!==g?(_=(0,h.jsxs)(`div`,{className:`grid gap-5 lg:grid-cols-[minmax(0,1.35fr)_minmax(0,1fr)] md:gap-6`,children:[f,g]}),e[25]=f,e[26]=g,e[27]=_):_=e[27];let v;return e[28]!==o||e[29]!==s||e[30]!==_?(v=(0,h.jsxs)(h.Fragment,{children:[o,s,_]}),e[28]=o,e[29]=s,e[30]=_,e[31]=v):v=e[31],v}function Su(){return document.getElementById(`checkliste`)?.scrollIntoView({behavior:`smooth`,block:`start`})}var Cu=ba({component:Jl,notFoundComponent:()=>(0,h.jsx)(ea,{to:`/`})}),wu=va({getParentRoute:()=>Cu,path:`/`,component:xu}),Tu=va({getParentRoute:()=>Cu,path:`/updates`,component:xa(()=>zl(()=>import(`./Updates-Bz_hFzqr.js`),__vite__mapDeps([8,1,5,3,9])),`UpdatesSeite`)}),Eu=va({getParentRoute:()=>Cu,path:`/modelle`,component:xa(()=>zl(()=>import(`./Modelle-D7lkCzi4.js`),__vite__mapDeps([10,1,2,3,5,9])),`ModelleSeite`)}),Du=va({getParentRoute:()=>Cu,path:`/homelab`,component:xa(()=>zl(()=>import(`./Homelab-vuFxJN2L.js`),__vite__mapDeps([11,1,5,3])),`HomelabSeite`)}),Ou=va({getParentRoute:()=>Cu,path:`/homelab/updates`,component:xa(()=>zl(()=>import(`./Homelab-vuFxJN2L.js`),__vite__mapDeps([11,1,5,3])),`HomelabUpdatesSeite`)}),ku=Ra({routeTree:Cu.addChildren([wu,Tu,Eu,Du,Ou]),defaultPreload:`intent`,defaultErrorComponent:Wa}),Au=`mc_neuladen_wegen_version`;function ju(){window.addEventListener(`vite:preloadError`,e=>{sessionStorage.getItem(Au)||(e.preventDefault(),sessionStorage.setItem(Au,`1`),window.location.reload())}),window.addEventListener(`load`,()=>{window.setTimeout(()=>sessionStorage.removeItem(Au),5e3)})}ju();var Mu=new Ye({defaultOptions:{queries:{retry:1,refetchOnWindowFocus:!1,staleTime:5e3}}});(0,Ua.createRoot)(document.getElementById(`root`)).render((0,h.jsx)(m.StrictMode,{children:(0,h.jsx)(v,{client:Mu,children:(0,h.jsx)(Va,{router:ku})})}));export{Hs as $,Vs as A,bs as B,ks as C,_ as Ct,js as D,Ws as E,gs as F,_s as G,Fs as H,Ps as I,qs as J,Js as K,ps as L,Ls as M,Ms as N,Bs as O,Ds as P,ys as Q,ms as R,Ys as S,M as St,xs as T,Ks as U,hs as V,Is as W,Gs as X,vs as Y,Es as Z,cl as _,Ya as _t,Pl as a,Jo as at,dl as b,Gi as bt,gl as c,ko as ct,U as d,Ao as dt,Ns as et,_l as f,Oo as ft,ml as g,to as gt,sl as h,R as ht,ru as i,ls as it,Os as j,Us as k,al as l,Eo as lt,pl as m,L as mt,lu as n,H as nt,Fl as o,Fo as ot,yl as p,fo as pt,fs as q,nu as r,cs as rt,hl as s,Co as st,fu as t,is as tt,tl as u,Do as ut,ol as v,$i as vt,As as w,Xs as x,yi as xt,fl as y,qi as yt,Rs as z}; \ No newline at end of file diff --git a/frontend/dist/assets/index-Cb8UJMqV.css b/frontend/dist/assets/index-Cb8UJMqV.css new file mode 100644 index 0000000..73f764a --- /dev/null +++ b/frontend/dist/assets/index-Cb8UJMqV.css @@ -0,0 +1,2 @@ +/*! tailwindcss v4.3.3 | 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)))){:root,:host{--shimmer-angle:20deg}*,: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-border-style:solid;--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-duration:initial;--tw-ease: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-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0;--scroll-fade-t:0px;--scroll-fade-b:0px;--scroll-fade-s:0px;--scroll-fade-e:0px;--scroll-fade-mask:initial;--shimmer-image:initial;--shimmer-text-fill:initial}}}@layer theme{:root,:host{--font-mono:"JetBrains Mono", ui-monospace, "Cascadia Mono", Consolas, monospace;--color-black:#000;--spacing:.25rem;--container-sm:24rem;--container-lg:32rem;--container-xl:36rem;--container-2xl:42rem;--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:calc(1.5 / 1);--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);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-normal:0em;--leading-tight:1.25;--leading-snug:1.375;--leading-relaxed:1.625;--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-xs:4px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:"Barlow", "Segoe UI", system-ui, sans-serif;--default-mono-font-family:"JetBrains Mono", ui-monospace, "Cascadia Mono", Consolas, monospace;--font-anzeige:"Barlow Condensed", "Barlow", "Segoe UI", sans-serif}}@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%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, 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;-webkit-text-decoration:inherit;-webkit-text-decoration: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:where(:not(iframe)){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]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{border-color:var(--border);outline-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){*{outline-color:color-mix(in oklab, var(--ring) 50%, transparent)}}html{-webkit-font-smoothing:antialiased;font-family:Barlow,Segoe UI,system-ui,sans-serif}body{background-color:var(--background);color:var(--foreground);margin:0}:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}}@layer components;@layer utilities{.\@container{container-type:inline-size}.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{inset:0}.inset-y-0{inset-block:0}.-top-1\.5{top:calc(var(--spacing) * -1.5)}.top-0{top:0}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing) * 2)}.top-3{top:calc(var(--spacing) * 3)}.right-2{right:calc(var(--spacing) * 2)}.right-3{right:calc(var(--spacing) * 3)}.right-4{right:calc(var(--spacing) * 4)}.-bottom-1\.5{bottom:calc(var(--spacing) * -1.5)}.bottom-0{bottom:0}.bottom-24{bottom:calc(var(--spacing) * 24)}.left-0{left:0}.left-1\/2{left:50%}.left-4{left:calc(var(--spacing) * 4)}.isolate{isolation:isolate}.z-50{z-index:50}.col-span-2{grid-column:span 2/span 2}.col-start-1{grid-column-start:1}.col-start-2{grid-column-start:2}.row-start-1{grid-row-start:1}.row-start-2{grid-row-start:2}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.-m-2{margin:calc(var(--spacing) * -2)}.m-0{margin:0}.-mx-4{margin-inline:calc(var(--spacing) * -4)}.mx-4{margin-inline:calc(var(--spacing) * 4)}.mx-auto{margin-inline:auto}.-my-2{margin-block:calc(var(--spacing) * -2)}.-mt-1{margin-top:calc(var(--spacing) * -1)}.-mt-2{margin-top:calc(var(--spacing) * -2)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-auto{margin-top:auto}.mr-\[0\.444em\]{margin-right:.444em}.-mb-2{margin-bottom:calc(var(--spacing) * -2)}.-mb-4{margin-bottom:calc(var(--spacing) * -4)}.mb-0{margin-bottom:0}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.-ml-2{margin-left:calc(var(--spacing) * -2)}.ml-\[0\.111em\]{margin-left:.111em}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-3{-webkit-line-clamp:3;-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}.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}.size-1\.5{width:calc(var(--spacing) * 1.5);height:calc(var(--spacing) * 1.5)}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-2\.5{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-11{width:calc(var(--spacing) * 11);height:calc(var(--spacing) * 11)}.size-\[18px\]{width:18px;height:18px}.h-0{height:0}.h-2{height:calc(var(--spacing) * 2)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-10{height:calc(var(--spacing) * 10)}.h-11{height:calc(var(--spacing) * 11)}.h-12{height:calc(var(--spacing) * 12)}.h-16{height:calc(var(--spacing) * 16)}.h-\[1\.75em\]{height:1.75em}.h-\[min\(75cqw\,150px\)\]{height:min(75cqw,150px)}.h-auto{height:auto}.h-dvh{height:100dvh}.h-full{height:100%}.max-h-56{max-height:calc(var(--spacing) * 56)}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-\[50vh\]{max-height:50vh}.max-h-\[calc\(100dvh-2rem\)\]{max-height:calc(100dvh - 2rem)}.min-h-11{min-height:calc(var(--spacing) * 11)}.min-h-\[58px\]{min-height:58px}.min-h-\[130px\]{min-height:130px}.min-h-dvh{min-height:100dvh}.w-0\.5{width:calc(var(--spacing) * .5)}.w-16{width:calc(var(--spacing) * 16)}.w-20{width:calc(var(--spacing) * 20)}.w-\[1\.1875em\]{width:1.1875em}.w-full{width:100%}.max-w-\[200px\]{max-width:200px}.max-w-\[1320px\]{max-width:1320px}.max-w-\[calc\(100\%-2rem\)\]{max-width:calc(100% - 2rem)}.min-w-0{min-width:0}.flex-1{flex:1}.shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.basis-full{flex-basis:100%}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-px{--tw-translate-y:-1px;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,)}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.resize{resize:both}.scroll-mt-4{scroll-margin-top:calc(var(--spacing) * 4)}.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))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-\[170px_100px_170px_minmax\(0\,1fr\)_auto\]{grid-template-columns:170px 100px 170px minmax(0,1fr) auto}.grid-cols-\[210px_120px_140px_minmax\(0\,1fr\)_auto\]{grid-template-columns:210px 120px 140px minmax(0,1fr) auto}.grid-cols-\[minmax\(0\,1\.2fr\)_minmax\(0\,1fr\)_minmax\(0\,1\.5fr\)_90px_130px\]{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,1.5fr) 90px 130px}.grid-cols-\[minmax\(0\,1\.2fr\)_minmax\(0\,1fr\)_minmax\(0\,1\.5fr\)_130px\]{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,1.5fr) 130px}.grid-cols-\[minmax\(0\,1fr\)_auto\]{grid-template-columns:minmax(0,1fr) auto}.grid-cols-\[minmax\(0\,1fr\)_auto_auto\]{grid-template-columns:minmax(0,1fr) auto auto}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.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}.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-3\.5{gap:calc(var(--spacing) * 3.5)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-7{gap:calc(var(--spacing) * 7)}.gap-8{gap:calc(var(--spacing) * 8)}.gap-\[0\.1875em\]{gap:.1875em}.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)}.gap-x-6{column-gap:calc(var(--spacing) * 6)}.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)}.gap-y-6{row-gap:calc(var(--spacing) * 6)}.self-start{align-self:flex-start}.justify-self-end{justify-self:flex-end}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:calc(var(--radius) * 1.8)}.rounded-full{border-radius:2147483647px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) * .8)}.rounded-sm{border-radius:calc(var(--radius) * .6)}.rounded-xl{border-radius:calc(var(--radius) * 1.4)}.rounded-b-xl{border-bottom-right-radius:calc(var(--radius) * 1.4);border-bottom-left-radius:calc(var(--radius) * 1.4)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-dotted{--tw-border-style:dotted;border-style:dotted}.\!border-bernstein{border-color:var(--bernstein)!important}.border-\[\#2a3036\]{border-color:#2a3036}.border-aus-rand{border-color:var(--aus-rand)}.border-bernstein,.border-bernstein\/60{border-color:var(--bernstein)}@supports (color:color-mix(in lab, red, red)){.border-bernstein\/60{border-color:color-mix(in oklab, var(--bernstein) 60%, transparent)}}.border-cyan-rand{border-color:var(--cyan-rand)}.border-gruen-rand{border-color:var(--gruen-rand)}.border-linie{border-color:var(--linie)}.border-linie-stark{border-color:var(--linie-stark)}.border-rot{border-color:var(--rot)}.border-rot-rand{border-color:var(--rot-rand)}.border-transparent{border-color:#0000}.bg-\[\#0b0d0f\]{background-color:#0b0d0f}.bg-\[\#0c0f12\]{background-color:#0c0f12}.bg-aus-grund{background-color:var(--aus-grund)}.bg-bernstein{background-color:var(--bernstein)}.bg-bernstein-grund{background-color:var(--bernstein-grund)}.bg-bernstein-lampe{background-color:var(--bernstein-lampe)}.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-cyan{background-color:var(--cyan)}.bg-cyan-grund{background-color:var(--cyan-grund)}.bg-cyan\/35{background-color:var(--cyan)}@supports (color:color-mix(in lab, red, red)){.bg-cyan\/35{background-color:color-mix(in oklab, var(--cyan) 35%, transparent)}}.bg-erhaben,.bg-erhaben\/50{background-color:var(--erhaben)}@supports (color:color-mix(in lab, red, red)){.bg-erhaben\/50{background-color:color-mix(in oklab, var(--erhaben) 50%, transparent)}}.bg-gruen{background-color:var(--gruen)}.bg-gruen-grund{background-color:var(--gruen-grund)}.bg-linie{background-color:var(--linie)}.bg-muted\/50{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.bg-muted\/50{background-color:color-mix(in oklab, var(--muted) 50%, transparent)}}.bg-panel{background-color:var(--panel)}.bg-popover{background-color:var(--popover)}.bg-rot{background-color:var(--rot)}.bg-rot-grund{background-color:var(--rot-grund)}.bg-text-3{background-color:var(--text-3)}.bg-transparent{background-color:#0000}.bg-clip-padding{background-clip:padding-box}.p-0{padding:0}.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)}.px-0{padding-inline:0}.px-1{padding-inline:var(--spacing)}.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-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-1{padding-block:var(--spacing)}.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-3\.5{padding-block:calc(var(--spacing) * 3.5)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-7{padding-block:calc(var(--spacing) * 7)}.py-8{padding-block:calc(var(--spacing) * 8)}.pt-1{padding-top:var(--spacing)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-5{padding-top:calc(var(--spacing) * 5)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-10{padding-right:calc(var(--spacing) * 10)}.pb-0{padding-bottom:0}.pb-1{padding-bottom:var(--spacing)}.pb-1\.5{padding-bottom:calc(var(--spacing) * 1.5)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-10{padding-bottom:calc(var(--spacing) * 10)}.pb-\[calc\(1\.25rem\+env\(safe-area-inset-bottom\)\)\]{padding-bottom:calc(1.25rem + env(safe-area-inset-bottom))}.pb-\[min\(10cqw\,20px\)\]{padding-bottom:min(10cqw,20px)}.pl-3{padding-left:calc(var(--spacing) * 3)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-anzeige,.font-heading{font-family:Barlow Condensed,Barlow,Segoe UI,sans-serif}.font-sans{font-family:Barlow,Segoe UI,system-ui,sans-serif}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--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-\[0\.5625em\]{font-size:.5625em}.text-\[13px\]{font-size:13px}.text-\[15px\]{font-size:15px}.text-\[17px\]{font-size:17px}.text-\[22px\]{font-size:22px}.text-\[26px\]{font-size:26px}.text-\[34px\]{font-size:34px}.text-\[40px\]{font-size:40px}.text-\[length\:clamp\(14px\,14\.5cqw\,32px\)\]{font-size:clamp(14px,14.5cqw,32px)}.leading-5{--tw-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5)}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.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-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[0\.04em\]{--tw-tracking:.04em;letter-spacing:.04em}.tracking-\[0\.06em\]{--tw-tracking:.06em;letter-spacing:.06em}.tracking-\[0\.12em\]{--tw-tracking:.12em;letter-spacing:.12em}.tracking-\[0\.18em\]{--tw-tracking:.18em;letter-spacing:.18em}.tracking-\[0\.22em\]{--tw-tracking:.22em;letter-spacing:.22em}.tracking-\[0\.24em\]{--tw-tracking:.24em;letter-spacing:.24em}.tracking-\[0\.26em\]{--tw-tracking:.26em;letter-spacing:.26em}.tracking-normal{--tw-tracking:var(--tracking-normal);letter-spacing:var(--tracking-normal)}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.\!text-foreground{color:var(--foreground)!important}.text-\[\#f2c46b\]{color:#f2c46b}.text-aus-text{color:var(--aus-text)}.text-bernstein{color:var(--bernstein)}.text-bernstein-hell{color:var(--bernstein-hell)}.text-cyan{color:var(--cyan)}.text-cyan-text{color:var(--cyan-text)}.text-foreground{color:var(--foreground)}.text-gruen{color:var(--gruen)}.text-gruen-text{color:var(--gruen-text)}.text-muted-foreground{color:var(--muted-foreground)}.text-popover-foreground{color:var(--popover-foreground)}.text-primary-foreground{color:var(--primary-foreground)}.text-rot{color:var(--rot)}.text-rot-text{color:var(--rot-text)}.text-text-2{color:var(--text-2)}.text-text-3{color:var(--text-3)}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.italic{font-style:italic}.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,)}.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,)}.no-underline{text-decoration-line:none}.underline-offset-4{text-underline-offset:4px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-70{opacity:.7}.opacity-80{opacity:.8}.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-\[0_0_8px_rgba\(61\,220\,138\,0\.7\)\]{--tw-shadow:0 0 8px var(--tw-shadow-color,#3ddc8ab3);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_18px_rgba\(255\,90\,79\,0\.35\)\]{--tw-shadow:0 0 18px var(--tw-shadow-color,#ff5a4f59);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_32px_rgba\(255\,90\,79\,0\.3\)\]{--tw-shadow:0 0 32px var(--tw-shadow-color,#ff5a4f4d);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)}.ring-1{--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-foreground\/10{--tw-ring-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.ring-foreground\/10{--tw-ring-color:color-mix(in oklab, var(--foreground) 10%, 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,)}.filter\!{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)!important}.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-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-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-100{--tw-duration:.1s;transition-duration:.1s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.paused{animation-play-state:paused}.running{animation-play-state:running}.zoom-in{--tw-enter-scale:0}.group-open\:rotate-90:is(:where(.group):is([open],:popover-open,:open) *){rotate:90deg}.first\:border-t-0:first-child{border-top-style:var(--tw-border-style);border-top-width:0}.first\:pt-0:first-child{padding-top:0}@media (hover:hover){.hover\:border-text-3:hover{border-color:var(--text-3)}.hover\:bg-\[\#3a1512\]:hover{background-color:#3a1512}.hover\:bg-\[\#232931\]:hover{background-color:#232931}.hover\:bg-bernstein-hell:hover{background-color:var(--bernstein-hell)}.hover\:bg-cyan-grund:hover{background-color:var(--cyan-grund)}.hover\:bg-erhaben:hover{background-color:var(--erhaben)}.hover\:text-cyan:hover{color:var(--cyan)}.hover\:text-foreground:hover{color:var(--foreground)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}}.focus\:border-cyan:focus{border-color:var(--cyan)}.focus-visible\:ring-3:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + 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\/50:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:color-mix(in oklab, var(--ring) 50%, transparent)}}.active\:not-aria-\[haspopup\]\:translate-y-px:active:not([aria-haspopup]){--tw-translate-y:1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:opacity-45:disabled{opacity:.45}.data-\[side\=bottom\]\:inset-x-0[data-side=bottom]{inset-inline:0}.data-\[side\=bottom\]\:bottom-0[data-side=bottom]{bottom:0}.data-\[side\=bottom\]\:h-auto[data-side=bottom]{height:auto}.data-\[side\=bottom\]\:border-t[data-side=bottom]{border-top-style:var(--tw-border-style);border-top-width:1px}.data-\[side\=left\]\:inset-y-0[data-side=left]{inset-block:0}.data-\[side\=left\]\:left-0[data-side=left]{left:0}.data-\[side\=left\]\:h-full[data-side=left]{height:100%}.data-\[side\=left\]\:w-3\/4[data-side=left]{width:75%}.data-\[side\=left\]\:w-\[300px\][data-side=left]{width:300px}.data-\[side\=left\]\:border-r[data-side=left]{border-right-style:var(--tw-border-style);border-right-width:1px}.data-\[side\=right\]\:inset-y-0[data-side=right]{inset-block:0}.data-\[side\=right\]\:right-0[data-side=right]{right:0}.data-\[side\=right\]\:h-full[data-side=right]{height:100%}.data-\[side\=right\]\:w-3\/4[data-side=right]{width:75%}.data-\[side\=right\]\:w-full[data-side=right]{width:100%}.data-\[side\=right\]\:border-l[data-side=right]{border-left-style:var(--tw-border-style);border-left-width:1px}.data-\[side\=top\]\:inset-x-0[data-side=top]{inset-inline:0}.data-\[side\=top\]\:top-0[data-side=top]{top:0}.data-\[side\=top\]\:h-auto[data-side=top]{height:auto}.data-\[side\=top\]\:border-b[data-side=top]{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}@supports ((-webkit-backdrop-filter:var(--tw)) or (backdrop-filter:var(--tw))){.supports-backdrop-filter\:backdrop-blur-xs{--tw-backdrop-blur:blur(var(--blur-xs));-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,)}}@media (prefers-reduced-motion:no-preference){.motion-safe\:animate-pulse{animation:var(--animate-pulse)}}@media (width>=40rem){.sm\:block{display:block}.sm\:max-w-lg{max-width:var(--container-lg)}.sm\:max-w-sm{max-width:var(--container-sm)}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:grid-cols-\[minmax\(0\,1fr\)_120px_160px\]{grid-template-columns:minmax(0,1fr) 120px 160px}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}.sm\:gap-2{gap:calc(var(--spacing) * 2)}.sm\:p-6{padding:calc(var(--spacing) * 6)}.sm\:px-6{padding-inline:calc(var(--spacing) * 6)}.sm\:text-\[38px\]{font-size:38px}.sm\:text-\[44px\]{font-size:44px}.data-\[side\=left\]\:sm\:max-w-sm[data-side=left]{max-width:var(--container-sm)}.data-\[side\=right\]\:sm\:max-w-2xl[data-side=right]{max-width:var(--container-2xl)}.data-\[side\=right\]\:sm\:max-w-lg[data-side=right]{max-width:var(--container-lg)}.data-\[side\=right\]\:sm\:max-w-sm[data-side=right]{max-width:var(--container-sm)}.data-\[side\=right\]\:sm\:max-w-xl[data-side=right]{max-width:var(--container-xl)}}@media (width>=48rem){.md\:left-auto{left:auto}.md\:col-span-1{grid-column:span 1/span 1}.md\:col-start-auto{grid-column-start:auto}.md\:row-start-auto{grid-row-start:auto}.md\:block{display:block}.md\:grid{display:grid}.md\:hidden{display:none}.md\:w-\[420px\]{width:420px}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-\[170px_100px_170px_minmax\(0\,1fr\)_auto\]{grid-template-columns:170px 100px 170px minmax(0,1fr) auto}.md\:grid-cols-\[210px_120px_140px_minmax\(0\,1fr\)_auto\]{grid-template-columns:210px 120px 140px minmax(0,1fr) auto}.md\:grid-cols-\[260px_minmax\(0\,1fr\)\]{grid-template-columns:260px minmax(0,1fr)}.md\:grid-cols-\[minmax\(0\,1\.2fr\)_minmax\(0\,1fr\)_minmax\(0\,1\.5fr\)_90px_130px\]{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,1.5fr) 90px 130px}.md\:grid-cols-\[minmax\(0\,1\.2fr\)_minmax\(0\,1fr\)_minmax\(0\,1\.5fr\)_130px\]{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,1.5fr) 130px}.md\:flex-col{flex-direction:column}.md\:items-center{align-items:center}.md\:items-end{align-items:flex-end}.md\:items-start{align-items:flex-start}.md\:justify-end{justify-content:flex-end}.md\:gap-5{gap:calc(var(--spacing) * 5)}.md\:gap-6{gap:calc(var(--spacing) * 6)}.md\:self-center{align-self:center}.md\:px-10{padding-inline:calc(var(--spacing) * 10)}.md\:pt-8{padding-top:calc(var(--spacing) * 8)}}@media (width>=64rem){.lg\:bottom-6{bottom:calc(var(--spacing) * 6)}.lg\:flex{display:flex}.lg\:grid{display:grid}.lg\:hidden{display:none}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-\[272px_minmax\(0\,1fr\)\]{grid-template-columns:272px minmax(0,1fr)}.lg\:grid-cols-\[minmax\(0\,1\.4fr\)_minmax\(0\,1fr\)\]{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}.lg\:grid-cols-\[minmax\(0\,1\.35fr\)_minmax\(0\,1fr\)\]{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr)}.lg\:grid-cols-\[minmax\(0\,1fr\)_minmax\(0\,1\.3fr\)\]{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr)}.lg\:px-6{padding-inline:calc(var(--spacing) * 6)}}@container (width>=24rem){.\@sm\:col-span-1{grid-column:span 1/span 1}.\@sm\:col-start-2{grid-column-start:2}.\@sm\:col-start-3{grid-column-start:3}.\@sm\:row-start-1{grid-row-start:1}.\@sm\:grid-cols-\[112px_minmax\(0\,1fr\)_auto\]{grid-template-columns:112px minmax(0,1fr) auto}.\@sm\:pl-\[124px\]{padding-left:124px}}.data-open\:animate-in:where([data-state=open]),.data-open\:animate-in:where([data-open]:not([data-open=false])){animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-open\:fade-in-0:where([data-state=open]),.data-open\:fade-in-0:where([data-open]:not([data-open=false])){--tw-enter-opacity:0}.data-open\:zoom-in-95:where([data-state=open]),.data-open\:zoom-in-95:where([data-open]:not([data-open=false])){--tw-enter-scale:.95}.data-\[side\=bottom\]\:data-open\:slide-in-from-bottom-10[data-side=bottom]:where([data-state=open]),.data-\[side\=bottom\]\:data-open\:slide-in-from-bottom-10[data-side=bottom]:where([data-open]:not([data-open=false])){--tw-enter-translate-y:calc(.1*100%)}.data-\[side\=left\]\:data-open\:slide-in-from-left-10[data-side=left]:where([data-state=open]),.data-\[side\=left\]\:data-open\:slide-in-from-left-10[data-side=left]:where([data-open]:not([data-open=false])){--tw-enter-translate-x:calc(.1*-100%)}.data-\[side\=right\]\:data-open\:slide-in-from-right-10[data-side=right]:where([data-state=open]),.data-\[side\=right\]\:data-open\:slide-in-from-right-10[data-side=right]:where([data-open]:not([data-open=false])){--tw-enter-translate-x:calc(.1*100%)}.data-\[side\=top\]\:data-open\:slide-in-from-top-10[data-side=top]:where([data-state=open]),.data-\[side\=top\]\:data-open\:slide-in-from-top-10[data-side=top]:where([data-open]:not([data-open=false])){--tw-enter-translate-y:calc(.1*-100%)}.data-closed\:animate-out:where([data-state=closed]),.data-closed\:animate-out:where([data-closed]:not([data-closed=false])){animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-closed\:fade-out-0:where([data-state=closed]),.data-closed\:fade-out-0:where([data-closed]:not([data-closed=false])){--tw-exit-opacity:0}.data-closed\:zoom-out-95:where([data-state=closed]),.data-closed\:zoom-out-95:where([data-closed]:not([data-closed=false])){--tw-exit-scale:.95}.data-\[side\=bottom\]\:data-closed\:slide-out-to-bottom-10[data-side=bottom]:where([data-state=closed]),.data-\[side\=bottom\]\:data-closed\:slide-out-to-bottom-10[data-side=bottom]:where([data-closed]:not([data-closed=false])){--tw-exit-translate-y:calc(.1*100%)}.data-\[side\=left\]\:data-closed\:slide-out-to-left-10[data-side=left]:where([data-state=closed]),.data-\[side\=left\]\:data-closed\:slide-out-to-left-10[data-side=left]:where([data-closed]:not([data-closed=false])){--tw-exit-translate-x:calc(.1*-100%)}.data-\[side\=right\]\:data-closed\:slide-out-to-right-10[data-side=right]:where([data-state=closed]),.data-\[side\=right\]\:data-closed\:slide-out-to-right-10[data-side=right]:where([data-closed]:not([data-closed=false])){--tw-exit-translate-x:calc(.1*100%)}.data-\[side\=top\]\:data-closed\:slide-out-to-top-10[data-side=top]:where([data-state=closed]),.data-\[side\=top\]\:data-closed\:slide-out-to-top-10[data-side=top]:where([data-closed]:not([data-closed=false])){--tw-exit-translate-y:calc(.1*-100%)}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}:is(.\*\:\[a\]\:underline>*):is(a){text-decoration-line:underline}:is(.\*\:\[a\]\:underline-offset-3>*):is(a){text-underline-offset:3px}@media (hover:hover){:is(.\*\:\[a\]\:hover\:text-foreground>*):is(a):hover{color:var(--foreground)}}.schild{font-family:var(--font-anzeige);text-transform:uppercase;letter-spacing:.16em;font-weight:600}.ziffern{font-family:var(--font-mono);font-variant-numeric:tabular-nums}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}@property --scroll-fade-t{syntax:"";inherits:false;initial-value:0}@property --scroll-fade-b{syntax:"";inherits:false;initial-value:0}@property --scroll-fade-s{syntax:"";inherits:false;initial-value:0}@property --scroll-fade-e{syntax:"";inherits:false;initial-value:0}@property --scroll-fade-mask{syntax:"*";inherits:false}@property --shimmer-angle{syntax:"";inherits:true;initial-value:20deg}@property --shimmer-image{syntax:"*";inherits:false}@property --shimmer-text-fill{syntax:"*";inherits:false}@media (prefers-reduced-motion:reduce){.shimmer{-webkit-text-fill-color:currentColor;background-image:none;animation:none}}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/barlow-vietnamese-400-normal-Dpl4UHAZ.woff2)format("woff2"),url(/assets/barlow-vietnamese-400-normal-BFeobeCK.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:Barlow;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/barlow-latin-ext-400-normal-HxX4XjxC.woff2)format("woff2"),url(/assets/barlow-latin-ext-400-normal-CvBsJvxq.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:Barlow;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/barlow-latin-400-normal-qiz4-Cze.woff2)format("woff2"),url(/assets/barlow-latin-400-normal-fsAxiSwU.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:Barlow;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-vietnamese-500-normal-zTViEIzf.woff2)format("woff2"),url(/assets/barlow-vietnamese-500-normal-GNfB7rCE.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:Barlow;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-latin-ext-500-normal-DOaysfXq.woff2)format("woff2"),url(/assets/barlow-latin-ext-500-normal-CJPcKP2Q.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:Barlow;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-latin-500-normal-BPAOfeC8.woff2)format("woff2"),url(/assets/barlow-latin-500-normal-C1h8hMer.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:Barlow;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-vietnamese-600-normal-DcjprdFV.woff2)format("woff2"),url(/assets/barlow-vietnamese-600-normal-CA_GiK2e.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:Barlow;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-latin-ext-600-normal-B8NK_A3D.woff2)format("woff2"),url(/assets/barlow-latin-ext-600-normal-DMVRjfRT.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:Barlow;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-latin-600-normal-DILqtrty.woff2)format("woff2"),url(/assets/barlow-latin-600-normal-CNwfPWQD.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:Barlow Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-condensed-vietnamese-500-normal-DjeaNLFD.woff2)format("woff2"),url(/assets/barlow-condensed-vietnamese-500-normal-CsrJDWc5.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:Barlow Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-condensed-latin-ext-500-normal-yA5ONLQ9.woff2)format("woff2"),url(/assets/barlow-condensed-latin-ext-500-normal-B1RE8WP7.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:Barlow Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-condensed-latin-500-normal-BgYH2mbd.woff2)format("woff2"),url(/assets/barlow-condensed-latin-500-normal-HIEiP5Ov.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:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-condensed-vietnamese-600-normal-A5AYRdjN.woff2)format("woff2"),url(/assets/barlow-condensed-vietnamese-600-normal-CNlPk46_.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:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-condensed-latin-ext-600-normal-18ESti3H.woff2)format("woff2"),url(/assets/barlow-condensed-latin-ext-600-normal-Clv9cIcR.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:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-condensed-latin-600-normal-DepVgxBB.woff2)format("woff2"),url(/assets/barlow-condensed-latin-600-normal-BFJEwTuo.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:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/barlow-condensed-vietnamese-700-normal-DYeBwlKR.woff2)format("woff2"),url(/assets/barlow-condensed-vietnamese-700-normal-DhIzd8Tb.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:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/barlow-condensed-latin-ext-700-normal-CwuXbfVR.woff2)format("woff2"),url(/assets/barlow-condensed-latin-ext-700-normal-BIHFfxf0.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:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/barlow-condensed-latin-700-normal-v1xN8_Wq.woff2)format("woff2"),url(/assets/barlow-condensed-latin-700-normal-Dmwat-ge.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}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--radius:.625rem;--background:#0e1012;--foreground:#e6eaee;--card:#15181b;--card-foreground:#e6eaee;--popover:#15181b;--popover-foreground:#e6eaee;--primary:#ffb020;--primary-foreground:#1a1300;--secondary:#1c2126;--secondary-foreground:#e6eaee;--muted:#1c2126;--muted-foreground:#8b949e;--accent:#1c2126;--accent-foreground:#e6eaee;--destructive:#ff5a4f;--border:#262b30;--input:#3a4148;--ring:#5cc8ff;--panel:#15181b;--erhaben:#1c2126;--linie:#262b30;--linie-stark:#3a4148;--text-2:#aeb6bf;--text-3:#8b949e;--bernstein:#ffb020;--bernstein-hell:#ffc24d;--bernstein-grund:#2a1e05;--bernstein-lampe:#3a2a08;--gruen:#3ddc8a;--gruen-text:#7cc9a0;--gruen-grund:#0f2319;--gruen-rand:#1f5a3b;--cyan:#5cc8ff;--cyan-text:#93d5f8;--cyan-grund:#0c2230;--cyan-rand:#2f7fb0;--rot:#ff5a4f;--rot-text:#ff9a92;--rot-grund:#2e0f0d;--rot-rand:#a33a33;--aus-grund:#171b1f;--aus-rand:#2e343a;--aus-text:#9aa3ad}@keyframes lampe-atmen{0%,to{box-shadow:0 0 10px color-mix(in srgb, var(--bernstein) 25%, transparent)}50%{box-shadow:0 0 22px color-mix(in srgb, var(--bernstein) 45%, transparent)}}@media (prefers-reduced-motion:no-preference){.lampe-atmet{animation:3.2s ease-in-out infinite lampe-atmen}}@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-border-style{syntax:"*";inherits:false;initial-value:solid}@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-duration{syntax:"*";inherits:false}@property --tw-ease{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}@keyframes pulse{50%{opacity:.5}}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0));filter:blur(var(--tw-enter-blur,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0));filter:blur(var(--tw-exit-blur,0))}} diff --git a/frontend/dist/assets/index-XtuDiTus.css b/frontend/dist/assets/index-XtuDiTus.css deleted file mode 100644 index 005ab26..0000000 --- a/frontend/dist/assets/index-XtuDiTus.css +++ /dev/null @@ -1,2 +0,0 @@ -/*! tailwindcss v4.3.3 | 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)))){:root,:host{--shimmer-angle:20deg}*,: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-border-style:solid;--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;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0;--scroll-fade-t:0px;--scroll-fade-b:0px;--scroll-fade-s:0px;--scroll-fade-e:0px;--scroll-fade-mask:initial;--shimmer-image:initial;--shimmer-text-fill:initial}}}@layer theme{:root,:host{--font-mono:"JetBrains Mono", ui-monospace, "Cascadia Mono", Consolas, monospace;--color-black:#000;--spacing:.25rem;--container-sm:24rem;--container-lg:32rem;--container-xl:36rem;--container-2xl:42rem;--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:calc(1.5 / 1);--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);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-normal:0em;--leading-tight:1.25;--leading-snug:1.375;--leading-relaxed:1.625;--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-xs:4px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:"Barlow", "Segoe UI", system-ui, sans-serif;--default-mono-font-family:"JetBrains Mono", ui-monospace, "Cascadia Mono", Consolas, monospace;--font-anzeige:"Barlow Condensed", "Barlow", "Segoe UI", sans-serif}}@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%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, 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;-webkit-text-decoration:inherit;-webkit-text-decoration: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:where(:not(iframe)){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]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{border-color:var(--border);outline-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){*{outline-color:color-mix(in oklab, var(--ring) 50%, transparent)}}html{-webkit-font-smoothing:antialiased;font-family:Barlow,Segoe UI,system-ui,sans-serif}body{background-color:var(--background);color:var(--foreground);margin:0}:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}}@layer components;@layer utilities{.\@container{container-type:inline-size}.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{inset:0}.inset-x-0{inset-inline:0}.inset-y-0{inset-block:0}.-top-1\.5{top:calc(var(--spacing) * -1.5)}.top-0{top:0}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing) * 2)}.top-3{top:calc(var(--spacing) * 3)}.right-2{right:calc(var(--spacing) * 2)}.right-3{right:calc(var(--spacing) * 3)}.right-4{right:calc(var(--spacing) * 4)}.-bottom-1\.5{bottom:calc(var(--spacing) * -1.5)}.bottom-0{bottom:0}.bottom-24{bottom:calc(var(--spacing) * 24)}.left-0{left:0}.left-1\/2{left:50%}.left-4{left:calc(var(--spacing) * 4)}.isolate{isolation:isolate}.z-40{z-index:40}.z-50{z-index:50}.col-span-2{grid-column:span 2/span 2}.col-start-1{grid-column-start:1}.col-start-2{grid-column-start:2}.row-start-1{grid-row-start:1}.row-start-2{grid-row-start:2}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.-m-2{margin:calc(var(--spacing) * -2)}.m-0{margin:0}.-mx-4{margin-inline:calc(var(--spacing) * -4)}.mx-4{margin-inline:calc(var(--spacing) * 4)}.mx-auto{margin-inline:auto}.-my-2{margin-block:calc(var(--spacing) * -2)}.-mt-1{margin-top:calc(var(--spacing) * -1)}.-mt-2{margin-top:calc(var(--spacing) * -2)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-auto{margin-top:auto}.mr-\[0\.444em\]{margin-right:.444em}.-mb-2{margin-bottom:calc(var(--spacing) * -2)}.-mb-4{margin-bottom:calc(var(--spacing) * -4)}.mb-0{margin-bottom:0}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.-ml-2{margin-left:calc(var(--spacing) * -2)}.ml-\[0\.111em\]{margin-left:.111em}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-3{-webkit-line-clamp:3;-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}.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}.size-1\.5{width:calc(var(--spacing) * 1.5);height:calc(var(--spacing) * 1.5)}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-2\.5{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-11{width:calc(var(--spacing) * 11);height:calc(var(--spacing) * 11)}.size-\[18px\]{width:18px;height:18px}.h-0{height:0}.h-2{height:calc(var(--spacing) * 2)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.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-\[1\.75em\]{height:1.75em}.h-\[min\(75cqw\,150px\)\]{height:min(75cqw,150px)}.h-auto{height:auto}.h-dvh{height:100dvh}.h-full{height:100%}.max-h-56{max-height:calc(var(--spacing) * 56)}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-\[50vh\]{max-height:50vh}.max-h-\[calc\(100dvh-2rem\)\]{max-height:calc(100dvh - 2rem)}.min-h-11{min-height:calc(var(--spacing) * 11)}.min-h-\[58px\]{min-height:58px}.min-h-\[130px\]{min-height:130px}.min-h-dvh{min-height:100dvh}.w-0\.5{width:calc(var(--spacing) * .5)}.w-16{width:calc(var(--spacing) * 16)}.w-20{width:calc(var(--spacing) * 20)}.w-\[1\.1875em\]{width:1.1875em}.w-full{width:100%}.max-w-\[200px\]{max-width:200px}.max-w-\[1320px\]{max-width:1320px}.max-w-\[1440px\]{max-width:1440px}.max-w-\[calc\(100\%-2rem\)\]{max-width:calc(100% - 2rem)}.min-w-0{min-width:0}.flex-1{flex:1}.shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.basis-full{flex-basis:100%}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-px{--tw-translate-y:-1px;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,)}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.resize{resize:both}.scroll-mt-4{scroll-margin-top:calc(var(--spacing) * 4)}.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))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid-cols-\[170px_100px_170px_minmax\(0\,1fr\)_auto\]{grid-template-columns:170px 100px 170px minmax(0,1fr) auto}.grid-cols-\[210px_120px_140px_minmax\(0\,1fr\)_auto\]{grid-template-columns:210px 120px 140px minmax(0,1fr) auto}.grid-cols-\[minmax\(0\,1\.2fr\)_minmax\(0\,1fr\)_minmax\(0\,1\.5fr\)_130px\]{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,1.5fr) 130px}.grid-cols-\[minmax\(0\,1fr\)_auto\]{grid-template-columns:minmax(0,1fr) auto}.grid-cols-\[minmax\(0\,1fr\)_auto_auto\]{grid-template-columns:minmax(0,1fr) auto auto}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.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}.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-3\.5{gap:calc(var(--spacing) * 3.5)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-7{gap:calc(var(--spacing) * 7)}.gap-8{gap:calc(var(--spacing) * 8)}.gap-\[0\.1875em\]{gap:.1875em}.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)}.gap-x-6{column-gap:calc(var(--spacing) * 6)}.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)}.gap-y-6{row-gap:calc(var(--spacing) * 6)}.self-start{align-self:flex-start}.justify-self-end{justify-self:flex-end}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:calc(var(--radius) * 1.8)}.rounded-\[9px\]{border-radius:9px}.rounded-full{border-radius:2147483647px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) * .8)}.rounded-sm{border-radius:calc(var(--radius) * .6)}.rounded-xl{border-radius:calc(var(--radius) * 1.4)}.rounded-b-xl{border-bottom-right-radius:calc(var(--radius) * 1.4);border-bottom-left-radius:calc(var(--radius) * 1.4)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-dotted{--tw-border-style:dotted;border-style:dotted}.\!border-bernstein{border-color:var(--bernstein)!important}.\!border-linie-stark{border-color:var(--linie-stark)!important}.border-\[\#2a3036\]{border-color:#2a3036}.border-aus-rand{border-color:var(--aus-rand)}.border-bernstein,.border-bernstein\/60{border-color:var(--bernstein)}@supports (color:color-mix(in lab, red, red)){.border-bernstein\/60{border-color:color-mix(in oklab, var(--bernstein) 60%, transparent)}}.border-cyan-rand{border-color:var(--cyan-rand)}.border-gruen-rand{border-color:var(--gruen-rand)}.border-linie{border-color:var(--linie)}.border-linie-stark{border-color:var(--linie-stark)}.border-rot{border-color:var(--rot)}.border-rot-rand{border-color:var(--rot-rand)}.border-transparent{border-color:#0000}.bg-\[\#0b0d0f\]{background-color:#0b0d0f}.bg-\[\#0c0f12\]{background-color:#0c0f12}.bg-\[\#0e1119\]\/95{background-color:oklab(17.8423% -.00041081 -.0172642/.95)}.bg-\[\#121518\]{background-color:#121518}.bg-aus-grund{background-color:var(--aus-grund)}.bg-bernstein{background-color:var(--bernstein)}.bg-bernstein-grund{background-color:var(--bernstein-grund)}.bg-bernstein-lampe{background-color:var(--bernstein-lampe)}.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-cyan{background-color:var(--cyan)}.bg-cyan-grund{background-color:var(--cyan-grund)}.bg-cyan\/35{background-color:var(--cyan)}@supports (color:color-mix(in lab, red, red)){.bg-cyan\/35{background-color:color-mix(in oklab, var(--cyan) 35%, transparent)}}.bg-erhaben,.bg-erhaben\/50{background-color:var(--erhaben)}@supports (color:color-mix(in lab, red, red)){.bg-erhaben\/50{background-color:color-mix(in oklab, var(--erhaben) 50%, transparent)}}.bg-gruen{background-color:var(--gruen)}.bg-gruen-grund{background-color:var(--gruen-grund)}.bg-linie{background-color:var(--linie)}.bg-muted\/50{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.bg-muted\/50{background-color:color-mix(in oklab, var(--muted) 50%, transparent)}}.bg-panel{background-color:var(--panel)}.bg-popover{background-color:var(--popover)}.bg-rot{background-color:var(--rot)}.bg-rot-grund{background-color:var(--rot-grund)}.bg-text-3{background-color:var(--text-3)}.bg-transparent{background-color:#0000}.bg-clip-padding{background-clip:padding-box}.p-0{padding:0}.p-1{padding:var(--spacing)}.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)}.px-0{padding-inline:0}.px-1{padding-inline:var(--spacing)}.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-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-1{padding-block:var(--spacing)}.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-3\.5{padding-block:calc(var(--spacing) * 3.5)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-7{padding-block:calc(var(--spacing) * 7)}.py-8{padding-block:calc(var(--spacing) * 8)}.pt-1{padding-top:var(--spacing)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-5{padding-top:calc(var(--spacing) * 5)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-10{padding-right:calc(var(--spacing) * 10)}.pb-0{padding-bottom:0}.pb-1{padding-bottom:var(--spacing)}.pb-1\.5{padding-bottom:calc(var(--spacing) * 1.5)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-10{padding-bottom:calc(var(--spacing) * 10)}.pb-28{padding-bottom:calc(var(--spacing) * 28)}.pb-\[calc\(0\.75rem\+env\(safe-area-inset-bottom\)\)\]{padding-bottom:calc(.75rem + env(safe-area-inset-bottom))}.pb-\[calc\(1\.25rem\+env\(safe-area-inset-bottom\)\)\]{padding-bottom:calc(1.25rem + env(safe-area-inset-bottom))}.pb-\[calc\(1rem\+env\(safe-area-inset-bottom\)\)\]{padding-bottom:calc(1rem + env(safe-area-inset-bottom))}.pb-\[min\(10cqw\,20px\)\]{padding-bottom:min(10cqw,20px)}.pl-3{padding-left:calc(var(--spacing) * 3)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-anzeige,.font-heading{font-family:Barlow Condensed,Barlow,Segoe UI,sans-serif}.font-sans{font-family:Barlow,Segoe UI,system-ui,sans-serif}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--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-\[0\.5625em\]{font-size:.5625em}.text-\[13px\]{font-size:13px}.text-\[15px\]{font-size:15px}.text-\[17px\]{font-size:17px}.text-\[22px\]{font-size:22px}.text-\[26px\]{font-size:26px}.text-\[34px\]{font-size:34px}.text-\[40px\]{font-size:40px}.text-\[length\:clamp\(14px\,14\.5cqw\,32px\)\]{font-size:clamp(14px,14.5cqw,32px)}.leading-5{--tw-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5)}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.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-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[0\.1em\]{--tw-tracking:.1em;letter-spacing:.1em}.tracking-\[0\.04em\]{--tw-tracking:.04em;letter-spacing:.04em}.tracking-\[0\.06em\]{--tw-tracking:.06em;letter-spacing:.06em}.tracking-\[0\.12em\]{--tw-tracking:.12em;letter-spacing:.12em}.tracking-\[0\.18em\]{--tw-tracking:.18em;letter-spacing:.18em}.tracking-\[0\.22em\]{--tw-tracking:.22em;letter-spacing:.22em}.tracking-\[0\.24em\]{--tw-tracking:.24em;letter-spacing:.24em}.tracking-\[0\.26em\]{--tw-tracking:.26em;letter-spacing:.26em}.tracking-normal{--tw-tracking:var(--tracking-normal);letter-spacing:var(--tracking-normal)}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.\!text-foreground{color:var(--foreground)!important}.text-\[\#f2c46b\]{color:#f2c46b}.text-aus-text{color:var(--aus-text)}.text-bernstein{color:var(--bernstein)}.text-bernstein-hell{color:var(--bernstein-hell)}.text-cyan{color:var(--cyan)}.text-cyan-text{color:var(--cyan-text)}.text-foreground{color:var(--foreground)}.text-gruen{color:var(--gruen)}.text-gruen-text{color:var(--gruen-text)}.text-muted-foreground{color:var(--muted-foreground)}.text-popover-foreground{color:var(--popover-foreground)}.text-primary-foreground{color:var(--primary-foreground)}.text-rot{color:var(--rot)}.text-rot-text{color:var(--rot-text)}.text-text-2{color:var(--text-2)}.text-text-3{color:var(--text-3)}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.italic{font-style:italic}.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,)}.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,)}.no-underline{text-decoration-line:none}.underline-offset-4{text-underline-offset:4px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-70{opacity:.7}.opacity-80{opacity:.8}.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-\[0_0_8px_rgba\(61\,220\,138\,0\.7\)\]{--tw-shadow:0 0 8px var(--tw-shadow-color,#3ddc8ab3);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_18px_rgba\(255\,90\,79\,0\.35\)\]{--tw-shadow:0 0 18px var(--tw-shadow-color,#ff5a4f59);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_32px_rgba\(255\,90\,79\,0\.3\)\]{--tw-shadow:0 0 32px var(--tw-shadow-color,#ff5a4f4d);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)}.ring-1{--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-foreground\/10{--tw-ring-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.ring-foreground\/10{--tw-ring-color:color-mix(in oklab, var(--foreground) 10%, 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,)}.filter\!{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)!important}.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,)}.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-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-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-100{--tw-duration:.1s;transition-duration:.1s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.paused{animation-play-state:paused}.running{animation-play-state:running}.zoom-in{--tw-enter-scale:0}.group-open\:rotate-90:is(:where(.group):is([open],:popover-open,:open) *){rotate:90deg}.first\:border-t-0:first-child{border-top-style:var(--tw-border-style);border-top-width:0}.first\:pt-0:first-child{padding-top:0}.last\:pb-0:last-child{padding-bottom:0}@media (hover:hover){.hover\:border-text-3:hover{border-color:var(--text-3)}.hover\:bg-\[\#3a1512\]:hover{background-color:#3a1512}.hover\:bg-\[\#232931\]:hover{background-color:#232931}.hover\:bg-bernstein-hell:hover{background-color:var(--bernstein-hell)}.hover\:bg-cyan-grund:hover{background-color:var(--cyan-grund)}.hover\:bg-erhaben:hover{background-color:var(--erhaben)}.hover\:text-cyan:hover{color:var(--cyan)}.hover\:text-foreground:hover{color:var(--foreground)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}}.focus\:border-cyan:focus{border-color:var(--cyan)}.focus-visible\:ring-3:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + 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\/50:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:color-mix(in oklab, var(--ring) 50%, transparent)}}.active\:not-aria-\[haspopup\]\:translate-y-px:active:not([aria-haspopup]){--tw-translate-y:1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:opacity-45:disabled{opacity:.45}.data-\[side\=bottom\]\:inset-x-0[data-side=bottom]{inset-inline:0}.data-\[side\=bottom\]\:bottom-0[data-side=bottom]{bottom:0}.data-\[side\=bottom\]\:h-auto[data-side=bottom]{height:auto}.data-\[side\=bottom\]\:border-t[data-side=bottom]{border-top-style:var(--tw-border-style);border-top-width:1px}.data-\[side\=left\]\:inset-y-0[data-side=left]{inset-block:0}.data-\[side\=left\]\:left-0[data-side=left]{left:0}.data-\[side\=left\]\:h-full[data-side=left]{height:100%}.data-\[side\=left\]\:w-3\/4[data-side=left]{width:75%}.data-\[side\=left\]\:w-\[300px\][data-side=left]{width:300px}.data-\[side\=left\]\:border-r[data-side=left]{border-right-style:var(--tw-border-style);border-right-width:1px}.data-\[side\=right\]\:inset-y-0[data-side=right]{inset-block:0}.data-\[side\=right\]\:right-0[data-side=right]{right:0}.data-\[side\=right\]\:h-full[data-side=right]{height:100%}.data-\[side\=right\]\:w-3\/4[data-side=right]{width:75%}.data-\[side\=right\]\:w-full[data-side=right]{width:100%}.data-\[side\=right\]\:border-l[data-side=right]{border-left-style:var(--tw-border-style);border-left-width:1px}.data-\[side\=top\]\:inset-x-0[data-side=top]{inset-inline:0}.data-\[side\=top\]\:top-0[data-side=top]{top:0}.data-\[side\=top\]\:h-auto[data-side=top]{height:auto}.data-\[side\=top\]\:border-b[data-side=top]{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}@supports ((-webkit-backdrop-filter:var(--tw)) or (backdrop-filter:var(--tw))){.supports-backdrop-filter\:backdrop-blur-xs{--tw-backdrop-blur:blur(var(--blur-xs));-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,)}}@media (prefers-reduced-motion:no-preference){.motion-safe\:animate-pulse{animation:var(--animate-pulse)}}@media (width>=40rem){.sm\:not-sr-only{clip-path:none;white-space:normal;width:auto;height:auto;margin:0;padding:0;position:static;overflow:visible}.sm\:block{display:block}.sm\:flex{display:flex}.sm\:max-w-lg{max-width:var(--container-lg)}.sm\:max-w-sm{max-width:var(--container-sm)}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:grid-cols-\[minmax\(0\,1fr\)_120px_160px\]{grid-template-columns:minmax(0,1fr) 120px 160px}.sm\:flex-col{flex-direction:column}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}.sm\:gap-2{gap:calc(var(--spacing) * 2)}.sm\:p-6{padding:calc(var(--spacing) * 6)}.sm\:px-6{padding-inline:calc(var(--spacing) * 6)}.sm\:text-\[15px\]{font-size:15px}.sm\:text-\[38px\]{font-size:38px}.sm\:text-\[44px\]{font-size:44px}.sm\:leading-none{--tw-leading:1;line-height:1}.sm\:tracking-\[0\.16em\]{--tw-tracking:.16em;letter-spacing:.16em}.data-\[side\=left\]\:sm\:max-w-sm[data-side=left]{max-width:var(--container-sm)}.data-\[side\=right\]\:sm\:max-w-2xl[data-side=right]{max-width:var(--container-2xl)}.data-\[side\=right\]\:sm\:max-w-lg[data-side=right]{max-width:var(--container-lg)}.data-\[side\=right\]\:sm\:max-w-sm[data-side=right]{max-width:var(--container-sm)}.data-\[side\=right\]\:sm\:max-w-xl[data-side=right]{max-width:var(--container-xl)}}@media (width>=48rem){.md\:left-auto{left:auto}.md\:col-span-1{grid-column:span 1/span 1}.md\:col-start-auto{grid-column-start:auto}.md\:row-start-auto{grid-row-start:auto}.md\:block{display:block}.md\:grid{display:grid}.md\:hidden{display:none}.md\:w-\[420px\]{width:420px}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-\[170px_100px_170px_minmax\(0\,1fr\)_auto\]{grid-template-columns:170px 100px 170px minmax(0,1fr) auto}.md\:grid-cols-\[210px_120px_140px_minmax\(0\,1fr\)_auto\]{grid-template-columns:210px 120px 140px minmax(0,1fr) auto}.md\:grid-cols-\[260px_minmax\(0\,1fr\)\]{grid-template-columns:260px minmax(0,1fr)}.md\:grid-cols-\[minmax\(0\,1\.2fr\)_minmax\(0\,1fr\)_minmax\(0\,1\.5fr\)_130px\]{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,1.5fr) 130px}.md\:flex-col{flex-direction:column}.md\:items-center{align-items:center}.md\:items-end{align-items:flex-end}.md\:items-start{align-items:flex-start}.md\:justify-end{justify-content:flex-end}.md\:gap-5{gap:calc(var(--spacing) * 5)}.md\:gap-6{gap:calc(var(--spacing) * 6)}.md\:self-center{align-self:center}.md\:px-10{padding-inline:calc(var(--spacing) * 10)}.md\:pt-8{padding-top:calc(var(--spacing) * 8)}}@media (width>=64rem){.lg\:bottom-6{bottom:calc(var(--spacing) * 6)}.lg\:flex{display:flex}.lg\:grid{display:grid}.lg\:hidden{display:none}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-\[272px_minmax\(0\,1fr\)\]{grid-template-columns:272px minmax(0,1fr)}.lg\:grid-cols-\[minmax\(0\,1\.4fr\)_minmax\(0\,1fr\)\]{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}.lg\:grid-cols-\[minmax\(0\,1\.35fr\)_minmax\(0\,1fr\)\]{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr)}.lg\:grid-cols-\[minmax\(0\,1fr\)_minmax\(0\,1\.3fr\)\]{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr)}.lg\:gap-5{gap:calc(var(--spacing) * 5)}.lg\:gap-6{gap:calc(var(--spacing) * 6)}.lg\:px-6{padding-inline:calc(var(--spacing) * 6)}.lg\:pb-10{padding-bottom:calc(var(--spacing) * 10)}}@media (width>=80rem){.xl\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.xl\:px-5{padding-inline:calc(var(--spacing) * 5)}}@container (width>=24rem){.\@sm\:col-span-1{grid-column:span 1/span 1}.\@sm\:col-start-2{grid-column-start:2}.\@sm\:col-start-3{grid-column-start:3}.\@sm\:row-start-1{grid-row-start:1}.\@sm\:grid-cols-\[112px_minmax\(0\,1fr\)_auto\]{grid-template-columns:112px minmax(0,1fr) auto}.\@sm\:pl-\[124px\]{padding-left:124px}}.data-open\:animate-in:where([data-state=open]),.data-open\:animate-in:where([data-open]:not([data-open=false])){animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-open\:fade-in-0:where([data-state=open]),.data-open\:fade-in-0:where([data-open]:not([data-open=false])){--tw-enter-opacity:0}.data-open\:zoom-in-95:where([data-state=open]),.data-open\:zoom-in-95:where([data-open]:not([data-open=false])){--tw-enter-scale:.95}.data-\[side\=bottom\]\:data-open\:slide-in-from-bottom-10[data-side=bottom]:where([data-state=open]),.data-\[side\=bottom\]\:data-open\:slide-in-from-bottom-10[data-side=bottom]:where([data-open]:not([data-open=false])){--tw-enter-translate-y:calc(.1*100%)}.data-\[side\=left\]\:data-open\:slide-in-from-left-10[data-side=left]:where([data-state=open]),.data-\[side\=left\]\:data-open\:slide-in-from-left-10[data-side=left]:where([data-open]:not([data-open=false])){--tw-enter-translate-x:calc(.1*-100%)}.data-\[side\=right\]\:data-open\:slide-in-from-right-10[data-side=right]:where([data-state=open]),.data-\[side\=right\]\:data-open\:slide-in-from-right-10[data-side=right]:where([data-open]:not([data-open=false])){--tw-enter-translate-x:calc(.1*100%)}.data-\[side\=top\]\:data-open\:slide-in-from-top-10[data-side=top]:where([data-state=open]),.data-\[side\=top\]\:data-open\:slide-in-from-top-10[data-side=top]:where([data-open]:not([data-open=false])){--tw-enter-translate-y:calc(.1*-100%)}.data-closed\:animate-out:where([data-state=closed]),.data-closed\:animate-out:where([data-closed]:not([data-closed=false])){animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-closed\:fade-out-0:where([data-state=closed]),.data-closed\:fade-out-0:where([data-closed]:not([data-closed=false])){--tw-exit-opacity:0}.data-closed\:zoom-out-95:where([data-state=closed]),.data-closed\:zoom-out-95:where([data-closed]:not([data-closed=false])){--tw-exit-scale:.95}.data-\[side\=bottom\]\:data-closed\:slide-out-to-bottom-10[data-side=bottom]:where([data-state=closed]),.data-\[side\=bottom\]\:data-closed\:slide-out-to-bottom-10[data-side=bottom]:where([data-closed]:not([data-closed=false])){--tw-exit-translate-y:calc(.1*100%)}.data-\[side\=left\]\:data-closed\:slide-out-to-left-10[data-side=left]:where([data-state=closed]),.data-\[side\=left\]\:data-closed\:slide-out-to-left-10[data-side=left]:where([data-closed]:not([data-closed=false])){--tw-exit-translate-x:calc(.1*-100%)}.data-\[side\=right\]\:data-closed\:slide-out-to-right-10[data-side=right]:where([data-state=closed]),.data-\[side\=right\]\:data-closed\:slide-out-to-right-10[data-side=right]:where([data-closed]:not([data-closed=false])){--tw-exit-translate-x:calc(.1*100%)}.data-\[side\=top\]\:data-closed\:slide-out-to-top-10[data-side=top]:where([data-state=closed]),.data-\[side\=top\]\:data-closed\:slide-out-to-top-10[data-side=top]:where([data-closed]:not([data-closed=false])){--tw-exit-translate-y:calc(.1*-100%)}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}:is(.\*\:\[a\]\:underline>*):is(a){text-decoration-line:underline}:is(.\*\:\[a\]\:underline-offset-3>*):is(a){text-underline-offset:3px}@media (hover:hover){:is(.\*\:\[a\]\:hover\:text-foreground>*):is(a):hover{color:var(--foreground)}}.schild{font-family:var(--font-anzeige);text-transform:uppercase;letter-spacing:.16em;font-weight:600}.ziffern{font-family:var(--font-mono);font-variant-numeric:tabular-nums}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}@property --scroll-fade-t{syntax:"";inherits:false;initial-value:0}@property --scroll-fade-b{syntax:"";inherits:false;initial-value:0}@property --scroll-fade-s{syntax:"";inherits:false;initial-value:0}@property --scroll-fade-e{syntax:"";inherits:false;initial-value:0}@property --scroll-fade-mask{syntax:"*";inherits:false}@property --shimmer-angle{syntax:"";inherits:true;initial-value:20deg}@property --shimmer-image{syntax:"*";inherits:false}@property --shimmer-text-fill{syntax:"*";inherits:false}@media (prefers-reduced-motion:reduce){.shimmer{-webkit-text-fill-color:currentColor;background-image:none;animation:none}}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/barlow-vietnamese-400-normal-Dpl4UHAZ.woff2)format("woff2"),url(/assets/barlow-vietnamese-400-normal-BFeobeCK.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:Barlow;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/barlow-latin-ext-400-normal-HxX4XjxC.woff2)format("woff2"),url(/assets/barlow-latin-ext-400-normal-CvBsJvxq.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:Barlow;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/barlow-latin-400-normal-qiz4-Cze.woff2)format("woff2"),url(/assets/barlow-latin-400-normal-fsAxiSwU.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:Barlow;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-vietnamese-500-normal-zTViEIzf.woff2)format("woff2"),url(/assets/barlow-vietnamese-500-normal-GNfB7rCE.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:Barlow;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-latin-ext-500-normal-DOaysfXq.woff2)format("woff2"),url(/assets/barlow-latin-ext-500-normal-CJPcKP2Q.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:Barlow;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-latin-500-normal-BPAOfeC8.woff2)format("woff2"),url(/assets/barlow-latin-500-normal-C1h8hMer.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:Barlow;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-vietnamese-600-normal-DcjprdFV.woff2)format("woff2"),url(/assets/barlow-vietnamese-600-normal-CA_GiK2e.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:Barlow;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-latin-ext-600-normal-B8NK_A3D.woff2)format("woff2"),url(/assets/barlow-latin-ext-600-normal-DMVRjfRT.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:Barlow;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-latin-600-normal-DILqtrty.woff2)format("woff2"),url(/assets/barlow-latin-600-normal-CNwfPWQD.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:Barlow Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-condensed-vietnamese-500-normal-DjeaNLFD.woff2)format("woff2"),url(/assets/barlow-condensed-vietnamese-500-normal-CsrJDWc5.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:Barlow Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-condensed-latin-ext-500-normal-yA5ONLQ9.woff2)format("woff2"),url(/assets/barlow-condensed-latin-ext-500-normal-B1RE8WP7.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:Barlow Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-condensed-latin-500-normal-BgYH2mbd.woff2)format("woff2"),url(/assets/barlow-condensed-latin-500-normal-HIEiP5Ov.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:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-condensed-vietnamese-600-normal-A5AYRdjN.woff2)format("woff2"),url(/assets/barlow-condensed-vietnamese-600-normal-CNlPk46_.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:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-condensed-latin-ext-600-normal-18ESti3H.woff2)format("woff2"),url(/assets/barlow-condensed-latin-ext-600-normal-Clv9cIcR.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:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-condensed-latin-600-normal-DepVgxBB.woff2)format("woff2"),url(/assets/barlow-condensed-latin-600-normal-BFJEwTuo.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:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/barlow-condensed-vietnamese-700-normal-DYeBwlKR.woff2)format("woff2"),url(/assets/barlow-condensed-vietnamese-700-normal-DhIzd8Tb.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:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/barlow-condensed-latin-ext-700-normal-CwuXbfVR.woff2)format("woff2"),url(/assets/barlow-condensed-latin-ext-700-normal-BIHFfxf0.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:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/barlow-condensed-latin-700-normal-v1xN8_Wq.woff2)format("woff2"),url(/assets/barlow-condensed-latin-700-normal-Dmwat-ge.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}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--radius:.625rem;--background:#0e1012;--foreground:#e6eaee;--card:#15181b;--card-foreground:#e6eaee;--popover:#15181b;--popover-foreground:#e6eaee;--primary:#ffb020;--primary-foreground:#1a1300;--secondary:#1c2126;--secondary-foreground:#e6eaee;--muted:#1c2126;--muted-foreground:#8b949e;--accent:#1c2126;--accent-foreground:#e6eaee;--destructive:#ff5a4f;--border:#262b30;--input:#3a4148;--ring:#5cc8ff;--panel:#15181b;--erhaben:#1c2126;--linie:#262b30;--linie-stark:#3a4148;--text-2:#aeb6bf;--text-3:#8b949e;--bernstein:#ffb020;--bernstein-hell:#ffc24d;--bernstein-grund:#2a1e05;--bernstein-lampe:#3a2a08;--gruen:#3ddc8a;--gruen-text:#7cc9a0;--gruen-grund:#0f2319;--gruen-rand:#1f5a3b;--cyan:#5cc8ff;--cyan-text:#93d5f8;--cyan-grund:#0c2230;--cyan-rand:#2f7fb0;--rot:#ff5a4f;--rot-text:#ff9a92;--rot-grund:#2e0f0d;--rot-rand:#a33a33;--aus-grund:#171b1f;--aus-rand:#2e343a;--aus-text:#9aa3ad}@keyframes lampe-atmen{0%,to{box-shadow:0 0 10px color-mix(in srgb, var(--bernstein) 25%, transparent)}50%{box-shadow:0 0 22px color-mix(in srgb, var(--bernstein) 45%, transparent)}}@media (prefers-reduced-motion:no-preference){.lampe-atmet{animation:3.2s ease-in-out infinite lampe-atmen}}@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-border-style{syntax:"*";inherits:false;initial-value:solid}@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 pulse{50%{opacity:.5}}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0));filter:blur(var(--tw-enter-blur,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0));filter:blur(var(--tw-exit-blur,0))}} diff --git a/frontend/dist/assets/index-_ndC28sQ.js b/frontend/dist/assets/index-_ndC28sQ.js deleted file mode 100644 index 7a7cc42..0000000 --- a/frontend/dist/assets/index-_ndC28sQ.js +++ /dev/null @@ -1,11 +0,0 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/Dienste-DZuQMkdN.js","assets/button-BheHBEml.js","assets/sheet-CKp82pOA.js","assets/dist-CtXmxyGa.js","assets/Einstellungen-r4tFurrz.js","assets/Bestaetigen-CE_3b0PK.js","assets/MenueSchublade-DuDMBJg1.js","assets/Protokollfenster-C5MkHrP6.js","assets/Updates-pvSCGi9I.js","assets/Auftraege-DzO2OZDP.js","assets/Modelle-D5h4V30V.js","assets/Homelab-BhIvbmk3.js"])))=>i.map(i=>d[i]); -import{a as e,c as t,d as n,i as r,l as i,o as a,p as o,s,t as c,u as l}from"./button-BheHBEml.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var u=n((e=>{function t(e,t){var n=e.length;e.push(t);a:for(;0>>1,a=e[r];if(0>>1;ri(c,n))li(u,c)?(e[r]=u,e[l]=n,r=l):(e[r]=c,e[s]=n,r=s);else if(li(u,n))e[r]=u,e[l]=n,r=l;else break a}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return n===0?e.id-t.id:n}if(e.unstable_now=void 0,typeof performance==`object`&&typeof performance.now==`function`){var a=performance;e.unstable_now=function(){return a.now()}}else{var o=Date,s=o.now();e.unstable_now=function(){return o.now()-s}}var c=[],l=[],u=1,d=null,f=3,p=!1,m=!1,h=!1,g=!1,_=typeof setTimeout==`function`?setTimeout:null,v=typeof clearTimeout==`function`?clearTimeout:null,y=typeof setImmediate<`u`?setImmediate:null;function b(e){for(var i=n(l);i!==null;){if(i.callback===null)r(l);else if(i.startTime<=e)r(l),i.sortIndex=i.expirationTime,t(c,i);else break;i=n(l)}}function x(e){if(h=!1,b(e),!m){if(n(c)!==null)m=!0,S||(S=!0,te());else{var t=n(l);t!==null&&re(x,t.startTime-e)}}}var S=!1,C=-1,w=5,T=-1;function ee(){return g?!0:!(e.unstable_now()-Tt&&ee());){var o=d.callback;if(typeof o==`function`){d.callback=null,f=d.priorityLevel;var s=o(d.expirationTime<=t);if(t=e.unstable_now(),typeof s==`function`){d.callback=s,b(t),i=!0;break b}d===n(c)&&r(c),b(t)}else r(c);d=n(c)}if(d!==null)i=!0;else{var u=n(l);u!==null&&re(x,u.startTime-t),i=!1}}break a}finally{d=null,f=a,p=!1}i=void 0}}finally{i?te():S=!1}}}var te;if(typeof y==`function`)te=function(){y(E)};else if(typeof MessageChannel<`u`){var D=new MessageChannel,ne=D.port2;D.port1.onmessage=E,te=function(){ne.postMessage(null)}}else te=function(){_(E,0)};function re(t,n){C=_(function(){t(e.unstable_now())},n)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(e){e.callback=null},e.unstable_forceFrameRate=function(e){0>e||125o?(r.sortIndex=a,t(l,r),n(c)===null&&r===n(l)&&(h?(v(C),C=-1):h=!0,re(x,a-o))):(r.sortIndex=s,t(c,r),m||p||(m=!0,S||(S=!0,te()))),r},e.unstable_shouldYield=ee,e.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}})),d=n(((e,t)=>{t.exports=u()})),f=n((e=>{var t=d(),n=l(),r=i();function a(e){var t=`https://react.dev/errors/`+e;if(1we||(e.current=Ce[we],Ce[we]=null,we--)}function j(e,t){we++,Ce[we]=e.current,e.current=t}var De=Te(null),Oe=Te(null),ke=Te(null),Ae=Te(null);function je(e,t){switch(j(ke,t),j(Oe,e),j(De,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?up(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=up(t),e=dp(t,e);else switch(e){case`svg`:e=1;break;case`math`:e=2;break;default:e=0}}Ee(De),j(De,e)}function Me(){Ee(De),Ee(Oe),Ee(ke)}function Ne(e){var t=e.memoizedState;t!==null&&(sh._currentValue=t.memoizedState,j(Ae,e)),t=De.current;var n=dp(t,e.type);t!==n&&(j(Oe,e),j(De,n))}function Pe(e){Oe.current===e&&(Ee(De),Ee(Oe)),Ae.current===e&&(Ee(Ae),sh._currentValue=A)}var Fe,Ie;function Le(e){if(Fe===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);Fe=t&&t[1]||``,Ie=-1)`:-1i||c[r]!==l[i]){var u=` -`+c[r].replace(` at new `,` at `);return e.displayName&&u.includes(``)&&(u=u.replace(``,e.displayName)),u}while(1<=r&&0<=i);break}}}finally{Re=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:``)?Le(n):``}function Be(e,t){switch(e.tag){case 26:case 27:case 5:return Le(e.type);case 16:return Le(`Lazy`);case 13:return e.child!==t&&t!==null?Le(`Suspense Fallback`):Le(`Suspense`);case 19:return Le(`SuspenseList`);case 0:case 15:return ze(e.type,!1);case 11:return ze(e.type.render,!1);case 1:return ze(e.type,!0);case 31:return Le(`Activity`);case 30:return Le(`ViewTransition`);default:return``}}function Ve(e){try{var t=``,n=null;do t+=Be(e,n),n=e,e=e.return;while(e);return t}catch(e){return` -Error generating stack: `+e.message+` -`+e.stack}}var He=Object.prototype.hasOwnProperty,Ue=t.unstable_scheduleCallback,We=t.unstable_cancelCallback,Ge=t.unstable_shouldYield,Ke=t.unstable_requestPaint,qe=t.unstable_now,Je=t.unstable_getCurrentPriorityLevel,Ye=t.unstable_ImmediatePriority,Xe=t.unstable_UserBlockingPriority,Ze=t.unstable_NormalPriority,Qe=t.unstable_LowPriority,$e=t.unstable_IdlePriority,et=t.log,tt=t.unstable_setDisableYieldValue,nt=null,rt=null;function it(e){if(typeof et==`function`&&tt(e),rt&&typeof rt.setStrictMode==`function`)try{rt.setStrictMode(nt,e)}catch{}}var at=Math.clz32?Math.clz32:ct,ot=Math.log,st=Math.LN2;function ct(e){return e>>>=0,e===0?32:31-(ot(e)/st|0)|0}var lt=256,ut=262144,dt=4194304;function ft(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&-e;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function pt(e,t,n){var r=e.pendingLanes;if(r===0)return 0;var i=0,a=e.suspendedLanes,o=e.pingedLanes;e=e.warmLanes;var s=r&134217727;return s===0?(s=r&~a,s===0?o===0?n||(n=r&~e,n!==0&&(i=ft(n))):i=ft(o):i=ft(s)):(r=s&~a,r===0?(o&=s,o===0?n||(n=s&~e,n!==0&&(i=ft(n))):i=ft(o)):i=ft(r)),i===0?0:t!==0&&t!==i&&(t&a)===0&&(a=i&-i,n=t&-t,a>=n||a===32&&n&4194048)?t:i}function mt(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function ht(e,t){t&8&&(t|=t&32);var n=e.entangledLanes;if(n!==0)for(e=e.entanglements,n&=t;0n;n++)t.push(e);return t}function yt(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function bt(e,t,n,r,i,a){var o=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var s=e.entanglements,c=e.expirationTimes,l=e.hiddenUpdates;for(n=o&~n;0=yr),Sr=` `,Cr=!1;function wr(e,t){switch(e){case`keyup`:return _r.indexOf(t.keyCode)!==-1;case`keydown`:return t.keyCode!==229;case`keypress`:case`mousedown`:case`focusout`:return!0;default:return!1}}function Tr(e){return e=e.detail,typeof e==`object`&&`data`in e?e.data:null}var Er=!1;function Dr(e,t){switch(e){case`compositionend`:return Tr(t);case`keypress`:return t.which===32?(Cr=!0,Sr):null;case`textInput`:return e=t.data,e===Sr&&Cr?null:e;default:return null}}function Or(e,t){if(Er)return e===`compositionend`||!vr&&wr(e,t)?(e=Bn(),zn=Rn=Ln=null,Er=!1,e):null;switch(e){case`paste`:return null;case`keypress`:if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}a:{for(;n;){if(n.nextSibling){n=n.nextSibling;break a}n=n.parentNode}n=void 0}n=Zr(n)}}function $r(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?$r(e,t.parentNode):`contains`in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function ei(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=Xr(e.document);t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href==`string`}catch{n=!1}if(n)e=t.contentWindow;else break;t=Xr(e.document)}return t}function ti(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t===`input`&&(e.type===`text`||e.type===`search`||e.type===`tel`||e.type===`url`||e.type===`password`)||t===`textarea`||e.contentEditable===`true`)}var ni=Pn&&`documentMode`in document&&11>=document.documentMode,ri=null,ii=null,ai=null,oi=!1;function si(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;oi||ri==null||ri!==Xr(r)||(r=ri,`selectionStart`in r&&ti(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),ai&&Yr(ai,r)||(ai=r,r=Jf(ii,`onSelect`),0>=o,i-=o,ra=1<<32-at(t)+i|n<h?(g=d,d=null):g=d.sibling;var _=p(i,d,s[h],c);if(_===null){d===null&&(d=g);break}e&&d&&_.alternate===null&&t(i,d),a=o(_,a,h),u===null?l=_:u.sibling=_,u=_,d=g}if(h===s.length)return n(i,d),P&&aa(i,h),l;if(d===null){for(;hg?(_=h,h=null):_=h.sibling;var y=p(i,h,v.value,l);if(y===null){h===null&&(h=_);break}e&&h&&y.alternate===null&&t(i,h),s=o(y,s,g),d===null?u=y:d.sibling=y,d=y,h=_}if(v.done)return n(i,h),P&&aa(i,g),u;if(h===null){for(;!v.done;g++,v=c.next())v=f(i,v.value,l),v!==null&&(s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return P&&aa(i,g),u}for(h=r(h);!v.done;g++,v=c.next())v=m(h,i,g,v.value,l),v!==null&&(e&&(_=v.alternate,_!==null&&h.delete(_.key===null?g:_.key)),s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return e&&h.forEach(function(e){return t(i,e)}),P&&aa(i,g),u}function _(e,r,o,c){if(typeof o==`object`&&o&&o.type===re&&o.key===null&&o.props.ref===void 0&&(o=o.props.children),typeof o==`object`&&o){switch(o.$$typeof){case D:a:{for(var l=o.key;r!==null;){if(r.key===l){if(l=o.type,l===re){if(r.tag===7){n(e,r.sibling),c=i(r,o.props.children),mo(c,o),c.return=e,e=c;break a}}else if(r.elementType===l||typeof l==`object`&&l&&l.$$typeof===fe&&oo(l)===r.type){n(e,r.sibling),c=i(r,o.props),mo(c,o),c.return=e,e=c;break a}n(e,r);break}t(e,r),r=r.sibling}o.type===re?(c=Wi(o.props.children,e.mode,c,o.key),mo(c,o),c.return=e,e=c):(c=Ui(o.type,o.key,o.props,null,e.mode,c),mo(c,o),c.return=e,e=c)}return s(e);case ne:a:{for(l=o.key;r!==null;){if(r.key===l){if(r.tag===4&&r.stateNode.containerInfo===o.containerInfo&&r.stateNode.implementation===o.implementation){n(e,r.sibling),c=i(r,o.children||[]),c.return=e,e=c;break a}n(e,r);break}t(e,r),r=r.sibling}c=qi(o,e.mode,c),c.return=e,e=c}return s(e);case fe:return o=oo(o),_(e,r,o,c)}if(Se(o))return h(e,r,o,c);if(ye(o)){if(l=ye(o),typeof l!=`function`)throw Error(a(150));return o=l.call(o),g(e,r,o,c)}if(typeof o.then==`function`)return _(e,r,po(o),c);if(o.$$typeof===se)return _(e,r,Ma(e,o),c);I(e,o)}return typeof o==`string`&&o!==``||typeof o==`number`||typeof o==`bigint`?(o=``+o,r!==null&&r.tag===6?(n(e,r.sibling),c=i(r,o),c.return=e,e=c):(n(e,r),c=Gi(o,e.mode,c),c.return=e,e=c),s(e)):n(e,r)}return function(e,t,n,r){try{fo=0;var i=_(e,t,n,r);return uo=null,i}catch(t){if(t===eo||t===no)throw t;var a=zi(29,t,null,e.mode);return a.lanes=r,a.return=e,a}}}var L=ho(!0),go=ho(!1),_o=!1;function vo(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function yo(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function bo(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function xo(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,G&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,t=Ii(e),Fi(e,null,n),t}return Mi(e,r,t,n),Ii(e)}function So(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,n&4194048)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,St(e,n)}}function Co(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,a=null;if(n=n.firstBaseUpdate,n!==null){do{var o={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};a===null?i=a=o:a=a.next=o,n=n.next}while(n!==null);a===null?i=a=t:a=a.next=t}else i=a=t;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:a,shared:r.shared,callbacks:r.callbacks},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var wo=!1;function To(){if(wo){var e=Ga;if(e!==null)throw e}}function Eo(e,t,n,r){wo=!1;var i=e.updateQueue;_o=!1;var a=i.firstBaseUpdate,o=i.lastBaseUpdate,s=i.shared.pending;if(s!==null){i.shared.pending=null;var c=s,l=c.next;c.next=null,o===null?a=l:o.next=l,o=c;var u=e.alternate;u!==null&&(u=u.updateQueue,s=u.lastBaseUpdate,s!==o&&(s===null?u.firstBaseUpdate=l:s.next=l,u.lastBaseUpdate=c))}if(a!==null){var d=i.baseState;o=0,u=l=c=null,s=a;do{var f=s.lane&-536870913,p=f!==s.lane;if(p?(J&f)===f:(r&f)===f){f!==0&&f===F&&(wo=!0),u!==null&&(u=u.next={lane:0,tag:s.tag,payload:s.payload,callback:null,next:null});a:{var m=e,h=s;f=t;var g=n;switch(h.tag){case 1:if(m=h.payload,typeof m==`function`){d=m.call(g,d,f);break a}d=m;break a;case 3:m.flags=m.flags&-65537|128;case 0:if(m=h.payload,f=typeof m==`function`?m.call(g,d,f):m,f==null)break a;d=E({},d,f);break a;case 2:_o=!0}}f=s.callback,f!==null&&(e.flags|=64,p&&(e.flags|=8192),p=i.callbacks,p===null?i.callbacks=[f]:p.push(f))}else p={lane:f,tag:s.tag,payload:s.payload,callback:s.callback,next:null},u===null?(l=u=p,c=d):u=u.next=p,o|=f;if(s=s.next,s===null){if(s=i.shared.pending,s===null)break;p=s,s=p.next,p.next=null,i.lastBaseUpdate=p,i.shared.pending=null}}while(1);u===null&&(c=d),i.baseState=c,i.firstBaseUpdate=l,i.lastBaseUpdate=u,a===null&&(i.shared.lanes=0),sd|=o,e.lanes=o,e.memoizedState=d}}function Do(e,t){if(typeof e!=`function`)throw Error(a(191,e));e.call(t)}function Oo(e,t){var n=e.callbacks;if(n!==null)for(e.callbacks=null,e=0;ea?a:8;var o=O.T,s={};s.types=o===null?null:o.types,O.T=s,fc(e,!1,t,n);try{var c=i(),l=O.S;l!==null&&l(s,c),typeof c==`object`&&c&&typeof c.then==`function`?dc(e,t,Ja(c,r),jd(e)):dc(e,t,r,jd(e))}catch(n){dc(e,t,{then:function(){},status:`rejected`,reason:n},jd())}finally{k.p=a,o!==null&&s.types!==null&&(o.types=s.types),O.T=o}}function tc(){}function nc(e,t,n,r){if(e.tag!==5)throw Error(a(476));var i=rc(e).queue;ec(e,i,t,A,n===null?tc:function(){return ic(e),n(r)})}function rc(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:A,baseState:A,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:ps,lastRenderedState:A},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:ps,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function ic(e){var t=rc(e);t.next===null&&(t=e.alternate.memoizedState),dc(e,t.next.queue,{},jd())}function ac(){return ja(sh)}function oc(){return V().memoizedState}function sc(){return V().memoizedState}function cc(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=jd();e=bo(n);var r=xo(t,e,n);r!==null&&(Pd(r,t,n),So(r,t,n)),t={cache:Ra()},e.payload=t;return}t=t.return}}function lc(e,t,n){var r=jd();n={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},pc(e)?mc(t,n):(n=Ni(e,t,n,r),n!==null&&(Pd(n,e,r),hc(n,t,r)))}function uc(e,t,n){dc(e,t,n,jd())}function dc(e,t,n,r){var i={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(pc(e))mc(t,i);else{var a=e.alternate;if(e.lanes===0&&(a===null||a.lanes===0)&&(a=t.lastRenderedReducer,a!==null))try{var o=t.lastRenderedState,s=a(o,n);if(i.hasEagerState=!0,i.eagerState=s,Jr(s,o))return Mi(e,t,i,0),K===null&&ji(),!1}catch{}if(n=Ni(e,t,i,r),n!==null)return Pd(n,e,r),hc(n,t,r),!0}return!1}function fc(e,t,n,r){if(r={lane:2,revertLane:Pf(),gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},pc(e)){if(t)throw Error(a(479))}else t=Ni(e,n,r,2),t!==null&&Pd(t,e,2)}function pc(e){var t=e.alternate;return e===R||t!==null&&t===R}function mc(e,t){Jo=qo=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function hc(e,t,n){if(n&4194048){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,St(e,n)}}var gc={readContext:ja,use:ds,useCallback:B,useContext:B,useEffect:B,useImperativeHandle:B,useLayoutEffect:B,useInsertionEffect:B,useMemo:B,useReducer:B,useRef:B,useState:B,useDebugValue:B,useDeferredValue:B,useTransition:B,useSyncExternalStore:B,useId:B,useHostTransitionStatus:B,useFormState:B,useActionState:B,useOptimistic:B,useMemoCache:B,useCacheRefresh:B,useEffectEvent:B},_c={readContext:ja,use:ds,useCallback:function(e,t){return cs().memoizedState=[e,t===void 0?null:t],e},useContext:ja,useEffect:Vs,useImperativeHandle:function(e,t,n){n=n==null?null:n.concat([e]),zs(4194308,4,qs.bind(null,t,e),n)},useLayoutEffect:function(e,t){return zs(4194308,4,e,t)},useInsertionEffect:function(e,t){zs(4,2,e,t)},useMemo:function(e,t){var n=cs();t=t===void 0?null:t;var r=e();if(Yo){it(!0);try{e()}finally{it(!1)}}return n.memoizedState=[r,t],r},useReducer:function(e,t,n){var r=cs();if(n!==void 0){var i=n(t);if(Yo){it(!0);try{n(t)}finally{it(!1)}}}else i=t;return r.memoizedState=r.baseState=i,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:i},r.queue=e,e=e.dispatch=lc.bind(null,R,e),[r.memoizedState,e]},useRef:function(e){var t=cs();return e={current:e},t.memoizedState=e},useState:function(e){e=Cs(e);var t=e.queue,n=uc.bind(null,R,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:Ys,useDeferredValue:function(e,t){return Qs(cs(),e,t)},useTransition:function(){var e=Cs(!1);return e=ec.bind(null,R,e.queue,!0,!1),cs().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var r=R,i=cs();if(P){if(n===void 0)throw Error(a(407));n=n()}else{if(n=t(),K===null)throw Error(a(349));J&127||vs(r,t,n)}i.memoizedState=n;var o={value:n,getSnapshot:t};return i.queue=o,Vs(bs.bind(null,r,o,e),[e]),r.flags|=2048,Ls(9,{destroy:void 0},ys.bind(null,r,o,n,t),null),n},useId:function(){var e=cs(),t=K.identifierPrefix;if(P){var n=ia,r=ra;n=(r&~(1<<32-at(r)-1)).toString(32)+n,t=`_`+t+`R_`+n,n=Xo++,0<\/script>`,o=o.removeChild(o.firstChild);break;case`select`:o=typeof r.is==`string`?s.createElement(`select`,{is:r.is}):s.createElement(`select`),r.multiple?o.multiple=!0:r.size&&(o.size=r.size);break;default:o=typeof r.is==`string`?s.createElement(i,{is:r.is}):s.createElement(i)}}o[kt]=t,o[At]=r;a:for(s=t.child;s!==null;){if(s.tag===5||s.tag===6)o.appendChild(s.stateNode);else if(s.tag!==4&&s.tag!==27&&s.child!==null){s.child.return=s,s=s.child;continue}if(s===t)break a;for(;s.sibling===null;){if(s.return===null||s.return===t)break a;s=s.return}s.sibling.return=s.return,s=s.sibling}t.stateNode=o;a:switch(np(o,i,r),i){case`button`:case`input`:case`select`:case`textarea`:r=!!r.autoFocus;break a;case`img`:r=!0;break a;default:r=!1}r&&hl(t)}}return H(t),t.subtreeFlags&=-33554433,gl(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==r&&hl(t);else{if(typeof r!=`string`&&t.stateNode===null)throw Error(a(166));if(e=ke.current,_a(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,i=ua,i!==null)switch(i.tag){case 27:case 5:r=i.memoizedProps}e[kt]=t,e=!!(e.nodeValue===n||r!==null&&!0===r.suppressHydrationWarning||ep(e.nodeValue,n)),e||ma(t,!0)}else e=lp(e).createTextNode(r),e[kt]=t,t.stateNode=e}return H(t),null;case 31:if(n=t.memoizedState,e===null||e.memoizedState!==null){if(r=_a(t),n!==null){if(e===null){if(!r)throw Error(a(318));if(e=t.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(a(557));e[kt]=t}else va(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;H(t),e=!1}else n=ya(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return t.flags&256?(Bo(t),t):(Bo(t),null);if(t.flags&128)throw Error(a(558))}return H(t),null;case 13:if(r=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(i=_a(t),r!==null&&r.dehydrated!==null){if(e===null){if(!i)throw Error(a(318));if(i=t.memoizedState,i=i===null?null:i.dehydrated,!i)throw Error(a(317));i[kt]=t}else va(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;H(t),i=!1}else i=ya(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=i),i=!0;if(!i)return t.flags&256?(Bo(t),t):(Bo(t),null)}return Bo(t),t.flags&128?(t.lanes=n,t):(n=r!==null,e=e!==null&&e.memoizedState!==null,n&&(r=t.child,i=null,r.alternate!==null&&r.alternate.memoizedState!==null&&r.alternate.memoizedState.cachePool!==null&&(i=r.alternate.memoizedState.cachePool.pool),o=null,r.memoizedState!==null&&r.memoizedState.cachePool!==null&&(o=r.memoizedState.cachePool.pool),o!==i&&(r.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),vl(t,t.updateQueue),H(t),null);case 4:return Me(),e===null&&Wf(t.stateNode.containerInfo),t.flags|=67108864,H(t),null;case 10:return Ta(t.type),H(t),null;case 19:if(Uo(t),r=t.memoizedState,r===null)return H(t),null;if(i=!!(t.flags&128),o=r.rendering,o===null){if(i)yl(r,!1);else{if(od!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(o=Wo(e),o!==null){for(t.flags|=128,yl(r,!1),e=o.updateQueue,t.updateQueue=e,vl(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)Hi(n,e),n=n.sibling;return Ho(t,Vo.current&1|2),P&&aa(t,r.treeForkCount),t.child}e=e.sibling}r.tail!==null&&qe()>_d&&(t.flags|=128,i=!0,yl(r,!1),t.lanes=4194304)}}else{if(!i){if(e=Wo(o),e!==null){if(t.flags|=128,i=!0,e=e.updateQueue,t.updateQueue=e,vl(t,e),yl(r,!0),r.tail===null&&r.tailMode!==`collapsed`&&r.tailMode!==`visible`&&!o.alternate&&!P)return H(t),null}else 2*qe()-r.renderingStartTime>_d&&n!==536870912&&(t.flags|=128,i=!0,yl(r,!1),t.lanes=4194304)}r.isBackwards?(o.sibling=t.child,t.child=o):(e=r.last,e===null?t.child=o:e.sibling=o,r.last=o)}if(r.tail!==null){e=r.tail;a:{for(n=e;n!==null;){if(n.alternate!==null){n=!1;break a}n=n.sibling}n=!0}return r.rendering=e,r.tail=e.sibling,r.renderingStartTime=qe(),e.sibling=null,o=Vo.current,o=i?o&1|2:o&1,r.tailMode===`visible`||r.tailMode===`collapsed`||!n||P?Ho(t,o):(n=o,j(Po,t),j(Vo,n),Fo===null&&(Fo=t)),P&&aa(t,r.treeForkCount),e}return H(t),null;case 22:case 23:return Bo(t),No(),r=t.memoizedState!==null,e===null?r&&(t.flags|=8192):e.memoizedState!==null!==r&&(t.flags|=8192),r?n&536870912&&!(t.flags&128)&&(H(t),t.subtreeFlags&6&&(t.flags|=8192)):H(t),n=t.updateQueue,n!==null&&vl(t,n.retryQueue),n=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),r=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),e!==null&&Ee(Xa),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),Ta(La),H(t),null;case 25:return null;case 30:return t.flags|=33554432,H(t),null}throw Error(a(156,t.tag))}function xl(e,t){switch(ca(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Ta(La),Me(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return Pe(t),null;case 31:if(t.memoizedState!==null){if(Bo(t),t.alternate===null)throw Error(a(340));va()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(Bo(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(a(340));va()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return Uo(t),e=t.flags,e&65536?(t.flags=e&-65537|128,e=t.memoizedState,e!==null&&(e.rendering=null,e.tail=null),t.flags|=4,t):null;case 4:return Me(),null;case 10:return Ta(t.type),null;case 22:case 23:return Bo(t),No(),e!==null&&Ee(Xa),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return Ta(La),null;case 25:return null;default:return null}}function Sl(e,t){switch(ca(t),t.tag){case 3:Ta(La),Me();break;case 26:case 27:case 5:Pe(t);break;case 4:Me();break;case 31:t.memoizedState!==null&&Bo(t);break;case 13:Bo(t);break;case 19:Uo(t);break;case 10:Ta(t.type);break;case 22:case 23:Bo(t),No(),e!==null&&Ee(Xa);break;case 24:Ta(La)}}function Cl(e,t){try{var n=t.updateQueue,r=n===null?null:n.lastEffect;if(r!==null){var i=r.next;n=i;do{if((n.tag&e)===e){r=void 0;var a=n.create,o=n.inst;r=a(),o.destroy=r}n=n.next}while(n!==i)}}catch(e){Z(t,t.return,e)}}function wl(e,t,n){try{var r=t.updateQueue,i=r===null?null:r.lastEffect;if(i!==null){var a=i.next;r=a;do{if((r.tag&e)===e){var o=r.inst,s=o.destroy;if(s!==void 0){o.destroy=void 0,i=t;var c=n,l=s;try{l()}catch(e){Z(i,c,e)}}}r=r.next}while(r!==a)}}catch(e){Z(t,t.return,e)}}function Tl(e){var t=e.updateQueue;if(t!==null){var n=e.stateNode;try{Oo(t,n)}catch(t){Z(e,e.return,t)}}}function El(e,t,n){n.props=wc(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(n){Z(e,t,n)}}function Dl(e,t){try{var n=e.ref;if(n!==null){switch(e.tag){case 26:case 27:case 5:var r=e.stateNode;break;case 30:var i=e.stateNode,a=wi(e.memoizedProps,i);(i.ref===null||i.ref.name!==a)&&(i.ref=Pp(a)),r=i.ref;break;case 7:if(e.stateNode===null){var o=new Fp(e);h(e.child,!1,Qp,o,void 0,void 0),e.stateNode=o}r=e.stateNode;break;default:r=e.stateNode}typeof n==`function`?e.refCleanup=n(r):n.current=r}}catch(n){Z(e,t,n)}}function Ol(e,t){var n=e.ref,r=e.refCleanup;if(n!==null){if(typeof r==`function`)try{r()}catch(n){Z(e,t,n)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof n==`function`)try{n(null)}catch(n){Z(e,t,n)}else n.current=null}}function kl(e,t){if((e.tag===5||e.tag===27||e.tag===6)&&e.alternate===null&&t!==null)for(var n=0;n title`))),np(r,t,n),r[kt]=e,Ut(r),t=r;break a;case`link`:if(o=Gm(`link`,`href`,i).get(t+(n.href||``))){for(s=0;sg&&(o=g,g=h,h=o);var _=Qr(s,h),v=Qr(s,g);if(_&&v&&(p.rangeCount!==1||p.anchorNode!==_.node||p.anchorOffset!==_.offset||p.focusNode!==v.node||p.focusOffset!==v.offset)){var y=d.createRange();y.setStart(_.node,_.offset),p.removeAllRanges(),h>g?(p.addRange(y),p.extend(v.node,v.offset)):(y.setEnd(v.node,v.offset),p.addRange(y))}}}}for(d=[],p=s;p=p.parentNode;)p.nodeType===1&&d.push({element:p,left:p.scrollLeft,top:p.scrollTop});for(typeof s.focus==`function`&&s.focus(),s=0;sn?32:n,O.T=null,n=wd,wd=null;var o=bd,s=Sd;if(X=0,xd=bd=null,Sd=0,G&6)throw Error(a(331));var c=G;if(G|=4,Xu(o.current),Hu(o,o.current,s,n),G=c,Df(0,!1),rt&&typeof rt.onPostCommitFiberRoot==`function`)try{rt.onPostCommitFiberRoot(nt,o)}catch{}return!0}finally{k.p=i,O.T=r,uf(e,t)}}function pf(e,t,n){t=Yi(n,t),t=Ac(e.stateNode,t,2),e=xo(e,t,2),e!==null&&(yt(e,2),Ef(e))}function Z(e,t,n){if(e.tag===3)pf(e,e,n);else for(;t!==null;){if(t.tag===3){pf(t,e,n);break}if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError==`function`||typeof r.componentDidCatch==`function`&&(yd===null||!yd.has(r))){e=Yi(n,e),n=jc(2),r=xo(t,n,2),r!==null&&(Mc(n,r,t,e),yt(r,2),Ef(r));break}}t=t.return}}function mf(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new ed;var i=new Set;r.set(t,i)}else i=r.get(t),i===void 0&&(i=new Set,r.set(t,i));i.has(n)||(id=!0,i.add(n),e=hf.bind(null,e,t,n),t.then(e,e))}function hf(e,t,n){var r=e.pingCache;r!==null&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,K===e&&(J&n)===n&&(od===4||od===3&&(J&62914560)===J&&300>qe()-hd?G&2?ld|=n:Vd(e,0):ld|=n,dd===J&&(dd=0)),Ef(e)}function gf(e,t){t===0&&(t=_t()),e=Pi(e,t),e!==null&&(yt(e,t),Ef(e))}function _f(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),gf(e,n)}function vf(e,t){var n=0;switch(e.tag){case 31:case 13:var r=e.stateNode,i=e.memoizedState;i!==null&&(n=i.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(a(314))}r!==null&&r.delete(t),gf(e,n)}function yf(e,t){return Ue(e,t)}var bf=null,xf=null,Sf=!1,Cf=!1,wf=!1,Tf=0;function Ef(e){e!==xf&&e.next===null&&(xf===null?bf=xf=e:xf=xf.next=e),Cf=!0,Sf||(Sf=!0,Nf())}function Df(e,t){if(!wf&&Cf){wf=!0;do for(var n=!1,r=bf;r!==null;){if(!t){if(e!==0){var i=r.pendingLanes;if(i===0)var a=0;else{var o=r.suspendedLanes,s=r.pingedLanes;a=(1<<31-at(42|e)+1)-1,a&=i&~(o&~s),a=a&201326741?a&201326741|1:a?a|2:0}a!==0&&(n=!0,Mf(r,a))}else a=J,a=pt(r,r===K?a:0,r.cancelPendingCommit!==null||r.timeoutHandle!==-1),!(a&3)||mt(r,a)||(n=!0,Mf(r,a))}r=r.next}while(n);wf=!1}}function Of(){kf()}function kf(){Cf=Sf=!1;var e=0;Tf!==0&&hp()&&(e=Tf);for(var t=qe(),n=null,r=bf;r!==null;){var i=r.next,a=Af(r,t);a===0?(r.next=null,n===null?bf=i:n.next=i,i===null&&(xf=n)):(n=r,(e!==0||a&3)&&(Cf=!0)),r=i}X!==0&&X!==5||Df(e,!1),Tf!==0&&(Tf=0)}function Af(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,i=e.expirationTimes,a=e.pendingLanes&-62914561;0s)break;var u=c.transferSize,d=c.initiatorType;u&&ap(d)&&(c=c.responseEnd,o+=u*(c$m){s.length=o;break}f=new Promise(jp.bind(f)),s.push(f)}}}if(0`u`?null:document;function Tm(e,t,n){var r=wm;if(r&&typeof t==`string`&&t){var i=un(t);i=`link[rel="`+e+`"][href="`+i+`"]`,typeof n==`string`&&(i+=`[crossorigin="`+n+`"]`),ym.has(i)||(ym.add(i),e={rel:e,crossOrigin:n,href:t},r.querySelector(i)===null&&(t=r.createElement(`link`),np(t,`link`,e),Ut(t),r.head.appendChild(t)))}}function Em(e){xm.D(e),Tm(`dns-prefetch`,e,null)}function Dm(e,t){xm.C(e,t),Tm(`preconnect`,e,t)}function Om(e,t,n){xm.L(e,t,n);var r=wm;if(r&&e&&t){var i=`link[rel="preload"][as="`+un(t)+`"]`;t===`image`&&n&&n.imageSrcSet?(i+=`[imagesrcset="`+un(n.imageSrcSet)+`"]`,typeof n.imageSizes==`string`&&(i+=`[imagesizes="`+un(n.imageSizes)+`"]`)):i+=`[href="`+un(e)+`"]`;var a=i;switch(t){case`style`:a=Pm(e);break;case`script`:a=Rm(e)}if(!(vm.has(a)||(e=E({rel:`preload`,href:t===`image`&&n&&n.imageSrcSet?void 0:e,as:t},n),vm.set(a,e),r.querySelector(i)!==null||t===`style`&&r.querySelector(Fm(a))||t===`script`&&r.querySelector(zm(a))))){var o=r.createElement(`link`);np(o,`link`,e),t===`style`&&(o[Lt]=!0,o.onload=o.onerror=function(){Wt(o)}),Ut(o),r.head.appendChild(o)}}}function km(e,t){xm.m(e,t);var n=wm;if(n&&e){var r=t&&typeof t.as==`string`?t.as:`script`,i=`link[rel="modulepreload"][as="`+un(r)+`"][href="`+un(e)+`"]`,a=i;switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:a=Rm(e)}if(!vm.has(a)&&(e=E({rel:`modulepreload`,href:e},t),vm.set(a,e),n.querySelector(i)===null)){switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:if(n.querySelector(zm(a)))return}r=n.createElement(`link`),np(r,`link`,e),Ut(r),n.head.appendChild(r)}}}function Am(e,t,n){xm.S(e,t,n);var r=wm;if(r&&e){var i=Ht(r).hoistableStyles,a=Pm(e);t||=`default`;var o=i.get(a);if(!o){var s={loading:0,preload:null};if(o=r.querySelector(Fm(a)))s.loading=5;else{e=E({rel:`stylesheet`,href:e,"data-precedence":t},n),(n=vm.get(a))&&Hm(e,n);var c=o=r.createElement(`link`);Ut(c),np(c,`link`,e),c._p=new Promise(function(e,t){c.onload=e,c.onerror=t}),c.addEventListener(`load`,function(){s.loading|=1}),c.addEventListener(`error`,function(){s.loading|=2}),s.loading|=4,Vm(o,t,r)}o={type:`stylesheet`,instance:o,count:1,state:s},i.set(a,o)}}}function jm(e,t){xm.X(e,t);var n=wm;if(n&&e){var r=Ht(n).hoistableScripts,i=Rm(e),a=r.get(i);a||(a=n.querySelector(zm(i)),a||(e=E({src:e,async:!0},t),(t=vm.get(i))&&Um(e,t),a=n.createElement(`script`),Ut(a),np(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function Mm(e,t){xm.M(e,t);var n=wm;if(n&&e){var r=Ht(n).hoistableScripts,i=Rm(e),a=r.get(i);a||(a=n.querySelector(zm(i)),a||(e=E({src:e,async:!0,type:`module`},t),(t=vm.get(i))&&Um(e,t),a=n.createElement(`script`),Ut(a),np(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function Nm(e,t,n,r){var i=(i=ke.current)?bm(i):null;if(!i)throw Error(a(446));switch(e){case`meta`:case`title`:return null;case`style`:return typeof n.precedence==`string`&&typeof n.href==`string`?(n=Pm(n.href),t=Ht(i).hoistableStyles,r=t.get(n),r||(r={type:`style`,instance:null,count:0,state:null},t.set(n,r)),r):{type:`void`,instance:null,count:0,state:null};case`link`:if(n.rel===`stylesheet`&&typeof n.href==`string`&&typeof n.precedence==`string`){e=Pm(n.href);var o=Ht(i).hoistableStyles,s=o.get(e);if(s||(i=i.ownerDocument||i,s={type:`stylesheet`,instance:null,count:0,state:{loading:0,preload:null}},o.set(e,s),(o=i.querySelector(Fm(e)))?o._p||(s.instance=o,s.state.loading=5):(o=vm.get(e),o||(o={rel:`preload`,as:`style`,href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},vm.set(e,o)),Lm(i,e,o,s.state))),t&&r===null)throw Error(a(528,``));return s}if(t&&r!==null)throw Error(a(529,``));return null;case`script`:return t=n.async,n=n.src,typeof n==`string`&&t&&typeof t!=`function`&&typeof t!=`symbol`?(n=Rm(n),t=Ht(i).hoistableScripts,r=t.get(n),r||(r={type:`script`,instance:null,count:0,state:null},t.set(n,r)),r):{type:`void`,instance:null,count:0,state:null};default:throw Error(a(444,e))}}function Pm(e){return`href="`+un(e)+`"`}function Fm(e){return`link[rel="stylesheet"][`+e+`]`}function Im(e){return E({},e,{"data-precedence":e.precedence,precedence:null})}function Lm(e,t,n,r){if(t=e.querySelector(`link[rel="preload"][as="style"][`+t+`]`)){if(!0!==t[Lt]){r.loading=1;return}}else t=e.createElement(`link`),t[Lt]=!0,t.onload=t.onerror=Wt.bind(null,t),np(t,`link`,n),Ut(t),e.head.appendChild(t);r.preload=t,t.addEventListener(`load`,function(){return r.loading|=1}),t.addEventListener(`error`,function(){return r.loading|=2})}function Rm(e){return`[src="`+un(e)+`"]`}function zm(e){return`script[async]`+e}function Bm(e,t,n){if(t.count++,t.instance===null)switch(t.type){case`style`:var r=e.querySelector(`style[data-href~="`+un(n.href)+`"]`);if(r)return t.instance=r,Ut(r),r;var i=E({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return r=(e.ownerDocument||e).createElement(`style`),Ut(r),np(r,`style`,i),Vm(r,n.precedence,e),t.instance=r;case`stylesheet`:i=Pm(n.href);var o=e.querySelector(Fm(i));if(o)return t.state.loading|=4,t.instance=o,Ut(o),o;r=Im(n),(i=vm.get(i))&&Hm(r,i),o=(e.ownerDocument||e).createElement(`link`),Ut(o);var s=o;return s._p=new Promise(function(e,t){s.onload=e,s.onerror=t}),np(o,`link`,r),t.state.loading|=4,Vm(o,n.precedence,e),t.instance=o;case`script`:return o=Rm(n.src),(i=e.querySelector(zm(o)))?(t.instance=i,Ut(i),i):(r=n,(i=vm.get(o))&&(r=E({},n),Um(r,i)),e=e.ownerDocument||e,i=e.createElement(`script`),Ut(i),np(i,`link`,r),e.head.appendChild(i),t.instance=i);case`void`:return null;default:throw Error(a(443,t.type))}else t.type===`stylesheet`&&!(t.state.loading&4)&&(r=t.instance,t.state.loading|=4,Vm(r,n.precedence,e));return t.instance}function Vm(e,t,n){for(var r=n.querySelectorAll(`link[rel="stylesheet"][data-precedence],style[data-precedence]`),i=r.length?r[r.length-1]:null,a=i,o=0;o title`):null)}function qm(e,t,n){if(n===1||t.itemProp!=null)return!1;switch(e){case`meta`:case`title`:return!0;case`style`:if(typeof t.precedence!=`string`||typeof t.href!=`string`||t.href===``)break;return!0;case`link`:if(typeof t.rel!=`string`||typeof t.href!=`string`||t.href===``||t.onLoad||t.onError)break;switch(t.rel){case`stylesheet`:return e=t.disabled,typeof t.precedence==`string`&&e==null;default:return!0}case`script`:if(t.async&&typeof t.async!=`function`&&typeof t.async!=`symbol`&&!t.onLoad&&!t.onError&&t.src&&typeof t.src==`string`)return!0}return!1}function Jm(e,t){return e===`img`&&t.src!=null&&t.src!==``&&t.onLoad==null&&t.loading!==`lazy`}function Ym(e){return!(e.type===`stylesheet`&&!(e.state.loading&3))}function Xm(e){return(e.width||100)*(e.height||100)*(typeof devicePixelRatio==`number`?devicePixelRatio:1)*.25}function Zm(e,t){typeof t.decode==`function`&&(e.imgCount++,t.complete||(e.imgBytes+=Xm(t),e.suspenseyImages.push(t)),e=rh.bind(e),t.decode().then(e,e))}function Qm(e,t,n,r){if(n.type===`stylesheet`&&(typeof r.media!=`string`||!1!==matchMedia(r.media).matches)&&!(n.state.loading&4)){if(n.instance===null){var i=Pm(r.href),a=t.querySelector(Fm(i));if(a){t=a._p,typeof t==`object`&&t&&typeof t.then==`function`&&(e.count++,e=nh.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=a,Ut(a);return}a=t.ownerDocument||t,r=Im(r),(i=vm.get(i))&&Hm(r,i),a=a.createElement(`link`),Ut(a);var o=a;o._p=new Promise(function(e,t){o.onload=e,o.onerror=t}),np(a,`link`,r),n.instance=a}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(n,t),(t=n.state.preload)&&!(n.state.loading&3)&&(e.count++,n=nh.bind(e),t.addEventListener(`load`,n),t.addEventListener(`error`,n))}}var $m=0;function eh(e,t){return e.stylesheets&&e.count===0&&ah(e,e.stylesheets),0$m?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(r),clearTimeout(i)}}:null}function th(e){if(e.count===0&&(e.imgCount===0||!e.waitingForImages)){if(e.stylesheets)ah(e,e.stylesheets);else if(e.unsuspend){var t=e.unsuspend;e.unsuspend=null,t()}}}function nh(){this.count--,th(this)}function rh(){this.imgCount--,th(this)}var ih=null;function ah(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,ih=new Map,t.forEach(oh,e),ih=null,nh.call(e))}function oh(e,t){if(!(t.state.loading&4)){var n=ih.get(e);if(n)var r=n.get(null);else{n=new Map,ih.set(e,n);for(var i=e.querySelectorAll(`link[data-precedence],style[data-precedence]`),a=0;a{function n(){if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<`u`&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE==`function`)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=f()})),m=o(l(),1),h=t(),g=m.createContext(void 0),_=e=>{let t=m.useContext(g);if(e)return e;if(!t)throw Error(`No QueryClient set, use QueryClientProvider to set one`);return t},v=({client:e,children:t})=>(m.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]),(0,h.jsx)(g.Provider,{value:e,children:t})),y={setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e),setInterval:(e,t)=>setInterval(e,t),clearInterval:e=>clearInterval(e)},b=new class{#e=y;setTimeoutProvider(e){this.#e=e}setTimeout(e,t){return this.#e.setTimeout(e,t)}clearTimeout(e){this.#e.clearTimeout(e)}setInterval(e,t){return this.#e.setInterval(e,t)}clearInterval(e){this.#e.clearInterval(e)}};function x(e){setTimeout(e,0)}var S=typeof window>`u`||`Deno`in globalThis;function C(){}function w(e,t){return typeof e==`function`?e(t):e}function T(e){return typeof e==`number`&&e>=0&&e!==1/0}function ee(e,t){return Math.max(e+(t||0)-Date.now(),0)}function E(e,t){return typeof e==`function`?e(t):e}function te(e,t){let{type:n=`all`,exact:r,fetchStatus:i,predicate:a,queryKey:o,stale:s}=e;if(o){if(r){if(t.queryHash!==ne(o,t.options))return!1}else if(!ie(t.queryKey,o))return!1}if(n!==`all`){let e=t.isActive();if(n===`active`&&!e||n===`inactive`&&e)return!1}return!(typeof s==`boolean`&&t.isStale()!==s||i&&i!==t.state.fetchStatus||a&&!a(t))}function D(e,t){let{exact:n,status:r,predicate:i,mutationKey:a}=e;if(a){if(!t.options.mutationKey)return!1;if(n){if(re(t.options.mutationKey)!==re(a))return!1}else if(!ie(t.options.mutationKey,a))return!1}return!(r&&t.state.status!==r||i&&!i(t))}function ne(e,t){return(t?.queryKeyHashFn||re)(e)}function re(e){return JSON.stringify(e,(e,t)=>le(t)?Object.keys(t).sort().reduce((e,n)=>(e[n]=t[n],e),{}):t)}function ie(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(e&&t&&typeof e==`object`&&typeof t==`object`){if(Array.isArray(e)&&Array.isArray(t)){if(t.length>e.length)return!1;for(let n=0;n500)return t;let r=ce(e)&&ce(t);if(!r&&!(le(e)&&le(t)))return t;let i=(r?e:Object.keys(e)).length,a=r?t:Object.keys(t),o=a.length,s=r?Array(o):{},c=0;for(let l=0;l{b.setTimeout(t,e)})}function fe(e,t,n){return typeof n.structuralSharing==`function`?n.structuralSharing(e,t):n.structuralSharing===!1?t:oe(e,t)}function pe(e,t,n=0){let r=[...e,t];return n&&r.length>n?r.slice(1):r}function me(e,t,n=0){let r=[t,...e];return n&&r.length>n?r.slice(0,-1):r}var he=Symbol();function ge(e,t){return!e.queryFn&&t?.initialPromise?()=>t.initialPromise:!e.queryFn||e.queryFn===he?()=>Promise.reject(Error(`Missing queryFn: '${e.queryHash}'`)):e.queryFn}function _e(e,t){return typeof e==`function`?e(...t):!!e}function ve(e,t,n){let r=!1,i;return Object.defineProperty(e,"signal",{enumerable:!0,get:()=>(i??=t(),r?i:(r=!0,i.aborted?n():i.addEventListener(`abort`,n,{once:!0}),i))}),e}var ye=()=>S,be=()=>ye(),xe=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(){}},Se=new class extends xe{#e;#t;#n;constructor(){super(),this.#n=e=>{if(typeof window<`u`&&window.addEventListener){let t=()=>e();return window.addEventListener(`visibilitychange`,t,!1),()=>{window.removeEventListener(`visibilitychange`,t)}}}}onSubscribe(){this.#t||this.setEventListener(this.#n)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#n=e,this.#t?.(),this.#t=e(e=>{typeof e==`boolean`?this.setFocused(e):this.onFocus()})}setFocused(e){this.#e!==e&&(this.#e=e,this.onFocus())}onFocus(){let e=this.isFocused();this.listeners.forEach(t=>{t(e)})}isFocused(){return typeof this.#e==`boolean`?this.#e:globalThis.document?.visibilityState!==`hidden`}},O=x;function k(){let e=[],t=0,n=e=>{e()},r=e=>{e()},i=O,a=r=>{t?e.push(r):i(()=>{n(r)})},o=()=>{let t=e;e=[],t.length&&i(()=>{r(()=>{t.forEach(e=>{n(e)})})})};return{batch:e=>{let n;t++;try{n=e()}finally{t--,t||o()}return n},batchCalls:e=>(...t)=>{a(()=>{e(...t)})},schedule:a,setNotifyFunction:e=>{n=e},setBatchNotifyFunction:e=>{r=e},setScheduler:e=>{i=e}}}var A=k(),Ce=new class extends xe{#e=!0;#t;#n;constructor(){super(),this.#n=e=>{if(typeof window<`u`&&window.addEventListener){let t=()=>e(!0),n=()=>e(!1);return window.addEventListener(`online`,t,!1),window.addEventListener(`offline`,n,!1),()=>{window.removeEventListener(`online`,t),window.removeEventListener(`offline`,n)}}}}onSubscribe(){this.#t||this.setEventListener(this.#n)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#n=e,this.#t?.(),this.#t=e(this.setOnline.bind(this))}setOnline(e){this.#e!==e&&(this.#e=e,this.listeners.forEach(t=>{t(e)}))}isOnline(){return this.#e}};function we(e){return Math.min(1e3*2**e,3e4)}function Te(e){return(e??`online`)!==`online`||Ce.isOnline()}var Ee=class extends Error{constructor(e){super(`CancelledError`),this.revert=e?.revert,this.silent=e?.silent}};function j(e){let t=!1,n=0,r,i=`pending`,a,o,s=new Promise((e,t)=>{a=e,o=t});s.catch(C);let c=()=>i!==`pending`,l=t=>{if(!c()){let n=new Ee(t);h(n),e.onCancel?.(n)}},u=()=>{t=!0},d=()=>{t=!1},f=()=>Se.isFocused()&&(e.networkMode===`always`||Ce.isOnline())&&e.canRun(),p=()=>Te(e.networkMode)&&e.canRun(),m=e=>{c()||(r?.(),i=`resolved`,a(e))},h=e=>{c()||(r?.(),i=`rejected`,o(e))},g=()=>new Promise(t=>{r=e=>{(c()||f())&&t(e)},e.onPause?.()}).then(()=>{r=void 0,c()||e.onContinue?.()}),_=()=>{if(c())return;let r,i=n===0?e.initialPromise:void 0;try{r=i??e.fn()}catch(e){r=Promise.reject(e)}Promise.resolve(r).then(m).catch(r=>{if(c())return;let i=e.retry??(be()?0:3),a=e.retryDelay??we,o=typeof a==`function`?a(n,r):a,s=i===!0||typeof i==`number`&&nf()?void 0:g()).then(()=>{t?h(r):_()})})};return{promise:s,status:()=>i,cancel:l,continue:()=>(r?.(),s),cancelRetry:u,continueRetry:d,canStart:p,start:()=>(p()?_():g().then(_),s)}}var De=class{#e;destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),T(this.gcTime)&&(this.#e=b.setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(be()?1/0:3e5))}clearGcTimeout(){this.#e!==void 0&&(b.clearTimeout(this.#e),this.#e=void 0)}};function Oe(e){return{onFetch:(t,n)=>{let r=t.options,i=t.fetchOptions?.meta?.fetchMore?.direction,a=t.state.data?.pages||[],o=t.state.data?.pageParams||[],s={pages:[],pageParams:[]},c=0,l=async()=>{let n=!1,l=e=>{ve(e,()=>t.signal,()=>n=!0)},u=ge(t.options,t.fetchOptions),d=async(e,r,i)=>{if(n)return Promise.reject(t.signal.reason);if(r==null&&e.pages.length)return Promise.resolve(e);let a=(()=>{let e={client:t.client,queryKey:t.queryKey,pageParam:r,direction:i?`backward`:`forward`,meta:t.options.meta};return l(e),e})(),o=await u(a),{maxPages:s}=t.options,c=i?me:pe;return{pages:c(e.pages,o,s),pageParams:c(e.pageParams,r,s)}};if(i&&a.length){let e=i===`backward`,t=e?Ae:ke,n={pages:a,pageParams:o};s=await d(n,t(r,n),e)}else{let t=e??a.length;do{let e=c===0?o[0]??r.initialPageParam:ke(r,s);if(c>0&&e==null)break;s=await d(s,e),c++}while(ct.options.persister?.(l,{client:t.client,queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},n):l}}}function ke(e,{pages:t,pageParams:n}){let r=t.length-1;return t.length>0?e.getNextPageParam(t[r],t,n[r],n):void 0}function Ae(e,{pages:t,pageParams:n}){return t.length>0?e.getPreviousPageParam?.(t[0],t,n[0],n):void 0}var je=class extends De{#e;#t;#n;#r;#i;#a;#o;#s;constructor(e){super(),this.#s=!1,this.#o=e.defaultOptions,this.setOptions(e.options),this.observers=[],this.#i=e.client,this.#r=this.#i.getQueryCache(),this.queryKey=e.queryKey,this.queryHash=e.queryHash,this.#t=Pe(this.options),this.state=e.state??this.#t,this.scheduleGc()}get meta(){return this.options.meta}get queryType(){return this.#e}get promise(){return this.#a?.promise}setOptions(e){if(this.options={...this.#o,...e},e?._type&&(this.#e=e._type),this.updateGcTime(this.options.gcTime),this.state&&this.state.data===void 0){let e=Pe(this.options);e.data!==void 0&&(this.setState(Ne(e.data,e.dataUpdatedAt)),this.#t=e)}}optionalRemove(){!this.observers.length&&this.state.fetchStatus===`idle`&&this.#r.remove(this)}setData(e,t){let n=fe(this.state.data,e,this.options);return this.#c({data:n,type:`success`,dataUpdatedAt:t?.updatedAt,manual:t?.manual}),n}setState(e){this.#c({type:`setState`,state:e})}cancel(e){let t=this.#a?.promise;return this.#a?.cancel(e),t?t.then(C).catch(C):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}get resetState(){return this.#t}reset(){this.destroy(),this.setState(this.resetState)}isActive(){return this.observers.some(e=>E(e.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===he||!this.isFetched()}isFetched(){return this.state.dataUpdateCount+this.state.errorUpdateCount>0}isStatic(){return this.getObserversCount()>0&&this.observers.some(e=>E(e.options.staleTime,this)===`static`)}isStale(){return this.getObserversCount()>0?this.observers.some(e=>e.getCurrentResult().isStale):this.state.data===void 0||this.state.isInvalidated}isStaleByTime(e=0){return this.state.data===void 0?!0:e===`static`?!1:this.state.isInvalidated?!0:!ee(this.state.dataUpdatedAt,e)}onFocus(){this.observers.find(e=>e.shouldFetchOnWindowFocus())?.refetch({cancelRefetch:!1}),this.#a?.continue()}onOnline(){this.observers.find(e=>e.shouldFetchOnReconnect())?.refetch({cancelRefetch:!1}),this.#a?.continue()}addObserver(e){this.observers.includes(e)||(this.observers.push(e),this.clearGcTimeout(),this.#r.notify({type:`observerAdded`,query:this,observer:e}))}removeObserver(e){let t=this.observers.indexOf(e);t!==-1&&(this.observers.splice(t,1),this.observers.length||(this.#a&&(this.#s||this.state.fetchStatus===`paused`&&this.state.status===`pending`?this.#a.cancel({revert:!0}):this.#a.cancelRetry()),this.scheduleGc()),this.#r.notify({type:`observerRemoved`,query:this,observer:e}))}getObserversCount(){return this.observers.length}invalidate(){this.state.isInvalidated||this.#c({type:`invalidate`})}async fetch(e,t){if(this.state.fetchStatus!==`idle`&&this.#a?.status()!==`rejected`){if(this.state.data!==void 0&&t?.cancelRefetch)this.cancel({silent:!0});else if(this.#a)return this.#a.continueRetry(),this.#a.promise}if(e&&this.setOptions(e),!this.options.queryFn){let e=this.observers.find(e=>e.options.queryFn);e&&this.setOptions(e.options)}let n=new AbortController,r=e=>{Object.defineProperty(e,"signal",{enumerable:!0,get:()=>(this.#s=!0,n.signal)})},i=()=>{let e=ge(this.options,t),n=(()=>{let e={client:this.#i,queryKey:this.queryKey,meta:this.meta};return r(e),e})();return this.#s=!1,this.options.persister?this.options.persister(e,n,this):e(n)},a=(()=>{let e={fetchOptions:t,options:this.options,queryKey:this.queryKey,client:this.#i,state:this.state,fetchFn:i};return r(e),e})();(this.#e===`infinite`?Oe(this.options.pages):this.options.behavior)?.onFetch(a,this),this.#n=this.state,(this.state.fetchStatus===`idle`||this.state.fetchMeta!==a.fetchOptions?.meta)&&this.#c({type:`fetch`,meta:a.fetchOptions?.meta});let o=this.#a=j({initialPromise:t?.initialPromise,fn:a.fetchFn,onCancel:e=>{e instanceof Ee&&e.revert&&this.setState({...this.#n,fetchStatus:`idle`}),n.abort()},onFail:(e,t)=>{this.#c({type:`failed`,failureCount:e,error:t})},onPause:()=>{this.#c({type:`pause`})},onContinue:()=>{this.#c({type:`continue`})},retry:a.options.retry,retryDelay:a.options.retryDelay,networkMode:a.options.networkMode,canRun:()=>!0});try{let e=await o.start();if(e===void 0)throw Error(`${this.queryHash} data is undefined`);return this.setData(e),this.#r.config.onSuccess?.(e,this),this.#r.config.onSettled?.(e,this.state.error,this),e}catch(e){if(e instanceof Ee){if(e.silent)return this.#a.promise;if(e.revert){if(this.state.data===void 0)throw e;return this.state.data}}throw this.#c({type:`error`,error:e}),this.#r.config.onError?.(e,this),this.#r.config.onSettled?.(this.state.data,e,this),e}finally{this.#a===o&&(this.#a=void 0),this.scheduleGc()}}#c(e){let t=t=>{switch(e.type){case`failed`:return{...t,fetchFailureCount:e.failureCount,fetchFailureReason:e.error};case`pause`:return{...t,fetchStatus:`paused`};case`continue`:return{...t,fetchStatus:`fetching`};case`fetch`:return{...t,...Me(t.data,this.options),fetchMeta:e.meta??null};case`success`:let n={...t,...Ne(e.data,e.dataUpdatedAt),dataUpdateCount:t.dataUpdateCount+1,...!e.manual&&{fetchStatus:`idle`,fetchFailureCount:0,fetchFailureReason:null}};return this.#n=e.manual?n:void 0,n;case`error`:let r=e.error;return{...t,error:r,errorUpdateCount:t.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:t.fetchFailureCount+1,fetchFailureReason:r,fetchStatus:`idle`,status:`error`,isInvalidated:!0};case`invalidate`:return{...t,isInvalidated:!0};case`setState`:return{...t,...e.state}}};this.state=t(this.state),A.batch(()=>{this.observers.slice().forEach(e=>{e.onQueryUpdate()}),this.#r.notify({query:this,type:`updated`,action:e})})}};function Me(e,t){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:Te(t.networkMode)?`fetching`:`paused`,...e===void 0&&{error:null,status:`pending`}}}function Ne(e,t){return{data:e,dataUpdatedAt:t??Date.now(),error:null,isInvalidated:!1,status:`success`}}function Pe(e){let t=typeof e.initialData==`function`?e.initialData():e.initialData,n=t!==void 0,r=n?typeof e.initialDataUpdatedAt==`function`?e.initialDataUpdatedAt():e.initialDataUpdatedAt:0;return{data:t,dataUpdateCount:0,dataUpdatedAt:n?r??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:n?`success`:`pending`,fetchStatus:`idle`}}var Fe=class extends xe{#e;#t=void 0;#n=void 0;#r=void 0;#i;#a;#o;#s;#c;#l;#u;#d;#f;#p=new Set;constructor(e,t){super(),this.options=t,this.#e=e,this.#o=null,this.bindMethods(),this.setOptions(t)}bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&(this.#t.addObserver(this),Le(this.#t,this.options)?this.#m():this.updateResult(),this.#y())}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return Re(this.#t,this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return Re(this.#t,this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,this.#b(),this.#x(),this.#t.removeObserver(this)}setOptions(e){let t=this.options,n=this.#t;if(this.options=this.#e.defaultQueryOptions(e),this.options.enabled!==void 0&&typeof this.options.enabled!=`boolean`&&typeof this.options.enabled!=`function`&&typeof E(this.options.enabled,this.#t)!=`boolean`)throw Error(`Expected enabled to be a boolean or a callback that returns a boolean`);this.#S(),this.#t.setOptions(this.options),t._defaulted&&!se(this.options,t)&&this.#e.getQueryCache().notify({type:`observerOptionsUpdated`,query:this.#t,observer:this});let r=this.hasListeners();r&&ze(this.#t,n,this.options,t)&&this.#m(),this.updateResult(),r&&(this.#t!==n||E(this.options.enabled,this.#t)!==E(t.enabled,this.#t)||E(this.options.staleTime,this.#t)!==E(t.staleTime,this.#t))&&this.#g();let i=this.#_();r&&(this.#t!==n||E(this.options.enabled,this.#t)!==E(t.enabled,this.#t)||i!==this.#f)&&this.#v(i)}getOptimisticResult(e){let t=this.#e.getQueryCache().build(this.#e,e),n=this.createResult(t,e);return se(this.getCurrentResult(),n)||(this.#r=n,this.#a=this.options,this.#i=this.#t.state),n}getCurrentResult(){return this.#r}trackResult(e,t){return new Proxy(e,{get:(e,n)=>(this.trackProp(n),t?.(n),Reflect.get(e,n))})}trackProp(e){this.#p.add(e)}getCurrentQuery(){return this.#t}refetch({...e}={}){return this.fetch({...e})}fetchOptimistic(e){let t=this.#e.defaultQueryOptions(e),n=this.#e.getQueryCache().build(this.#e,t),r=()=>{},i,a=new Promise(e=>{i=e,r=this.#e.getQueryCache().subscribe(i=>{i.type===`updated`&&i.query.queryHash===n.queryHash&&n.state.data!==void 0&&(r(),e(this.createResult(n,t)))})});return Promise.race([n.fetch().then(()=>{let e=this.createResult(n,t);return i?.(e),e}).finally(()=>{r()}),a])}fetch(e){return this.#m({...e,cancelRefetch:e.cancelRefetch??!0}).then(()=>(this.updateResult(),this.#r))}#m(e){this.#S();let t=this.#t.fetch(this.options,e);return e?.throwOnError||(t=t.catch(C)),t}#h(e){return!be()&&E(this.options.enabled,this.#t)!==!1&&T(e)}#g(){this.#b();let e=E(this.options.staleTime,this.#t);if(this.#r.isStale||!this.#h(e))return;let t=ee(this.#r.dataUpdatedAt,e)+1;this.#u=b.setTimeout(()=>{this.#r.isStale||this.updateResult()},t)}#_(){return E(this.options.refetchInterval,this.#t)??!1}#v(e){this.#x(),this.#f=e,this.#f!==0&&this.#h(this.#f)&&(this.#d=b.setInterval(()=>{(this.options.refetchIntervalInBackground||Se.isFocused())&&this.#m()},this.#f))}#y(){this.#g(),this.#v(this.#_())}#b(){this.#u!==void 0&&(b.clearTimeout(this.#u),this.#u=void 0)}#x(){this.#d!==void 0&&(b.clearInterval(this.#d),this.#d=void 0)}createResult(e,t){let n=this.#t,r=this.options,i=this.#r,a=this.#i,o=this.#a,s=e===n?this.#n:e.state,{state:c}=e,l={...c},u=!1,d;if(t._optimisticResults){let i=this.hasListeners(),a=!i&&Le(e,t),o=i&&ze(e,n,t,r);(a||o)&&(l={...l,...Me(c.data,e.options)}),t._optimisticResults===`isRestoring`&&(l.fetchStatus=`idle`)}let{error:f,errorUpdatedAt:p,status:m}=l;d=l.data;let h=!1;if(t.placeholderData!==void 0&&d===void 0&&m===`pending`){let e;i?.isPlaceholderData&&t.placeholderData===o?.placeholderData?(e=i.data,h=!0):e=typeof t.placeholderData==`function`?t.placeholderData(this.#l?.state.data,this.#l):t.placeholderData,e!==void 0&&(m=`success`,d=fe(i?.data,e,t),u=!0)}if(t.select&&d!==void 0&&!h){if(i&&d===a?.data&&t.select===this.#s)d=this.#c;else try{this.#s=t.select,d=t.select(d),d=fe(i?.data,d,t),this.#c=d,this.#o=null}catch(e){this.#o=e}}else d===void 0&&(this.#o=null);this.#o&&(f=this.#o,d=this.#c,p=Date.now(),m=`error`,u=!1);let g=l.fetchStatus===`fetching`,_=m===`pending`,v=m===`error`,y=_&&g,b=d!==void 0;return{status:m,fetchStatus:l.fetchStatus,isPending:_,isSuccess:m===`success`,isError:v,isInitialLoading:y,isLoading:y,data:d,dataUpdatedAt:l.dataUpdatedAt,error:f,errorUpdatedAt:p,failureCount:l.fetchFailureCount,failureReason:l.fetchFailureReason,errorUpdateCount:l.errorUpdateCount,isFetched:e.isFetched(),isFetchedAfterMount:l.dataUpdateCount>s.dataUpdateCount||l.errorUpdateCount>s.errorUpdateCount,isFetching:g,isRefetching:g&&!_,isLoadingError:v&&!b,isPaused:l.fetchStatus===`paused`,isPlaceholderData:u,isRefetchError:v&&b,isStale:Be(e,t),refetch:this.refetch,isEnabled:E(t.enabled,e)!==!1}}updateResult(){let e=this.#r,t=this.createResult(this.#t,this.options);if(this.#i=this.#t.state,this.#a=this.options,this.#i.data!==void 0&&(this.#l=this.#t),se(t,e))return;this.#r=t;let n=(()=>{if(!e)return!0;let{notifyOnChangeProps:t}=this.options,n=typeof t==`function`?t():t;if(n===`all`||!n&&!this.#p.size)return!0;let r=new Set(n??this.#p);return this.options.throwOnError&&r.add(`error`),Object.keys(this.#r).some(t=>{let n=t;return this.#r[n]!==e[n]&&r.has(n)})})();A.batch(()=>{n&&this.listeners.forEach(e=>{e(this.#r)}),this.#e.getQueryCache().notify({query:this.#t,type:`observerResultsUpdated`})})}#S(){let e=this.#e.getQueryCache().build(this.#e,this.options);if(e===this.#t)return;let t=this.#t;this.#t=e,this.#n=e.state,this.hasListeners()&&(t?.removeObserver(this),e.addObserver(this))}onQueryUpdate(){this.updateResult(),this.hasListeners()&&this.#y()}};function Ie(e,t){return E(t.enabled,e)!==!1&&e.state.data===void 0&&(e.state.status!==`error`||E(t.retryOnMount,e)!==!1)}function Le(e,t){return Ie(e,t)||e.state.data!==void 0&&Re(e,t,t.refetchOnMount)}function Re(e,t,n){if(E(t.enabled,e)!==!1&&E(t.staleTime,e)!==`static`){let r=E(n,e);return r===`always`||r!==!1&&Be(e,t)}return!1}function ze(e,t,n,r){return(e!==t||E(r.enabled,e)===!1)&&(!n.suspense||e.state.status!==`error`)&&Be(e,n)}function Be(e,t){return E(t.enabled,e)!==!1&&e.isStaleByTime(E(t.staleTime,e))}var Ve=class extends De{#e;#t;#n;#r;constructor(e){super(),this.#e=e.client,this.mutationId=e.mutationId,this.#n=e.mutationCache,this.#t=[],this.state=e.state||He(),this.setOptions(e.options),this.scheduleGc()}setOptions(e){this.options=e,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(e){this.#t.includes(e)||(this.#t.push(e),this.clearGcTimeout(),this.#n.notify({type:`observerAdded`,mutation:this,observer:e}))}removeObserver(e){this.#t=this.#t.filter(t=>t!==e),this.scheduleGc(),this.#n.notify({type:`observerRemoved`,mutation:this,observer:e})}optionalRemove(){this.#t.length||(this.state.status===`pending`?this.scheduleGc():this.#n.remove(this))}continue(){return this.#r?.continue()??(this.state.status===`pending`?this.execute(this.state.variables):Promise.resolve())}async execute(e){let t=()=>{this.#i({type:`continue`})},n={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey},r=this.#r=j({fn:()=>this.options.mutationFn?this.options.mutationFn(e,n):Promise.reject(Error(`No mutationFn found`)),onFail:(e,t)=>{this.#i({type:`failed`,failureCount:e,error:t})},onPause:()=>{this.#i({type:`pause`})},onContinue:t,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>this.#n.canRun(this)}),i=this.state.status===`pending`,a=!r.canStart();try{if(i)t();else{this.#i({type:`pending`,variables:e,isPaused:a}),this.#n.config.onMutate&&await this.#n.config.onMutate(e,this,n);let t=await this.options.onMutate?.(e,n);t!==this.state.context&&this.#i({type:`pending`,context:t,variables:e,isPaused:a})}let o=await r.start();return await this.#n.config.onSuccess?.(o,e,this.state.context,this,n),await this.options.onSuccess?.(o,e,this.state.context,n),await this.#n.config.onSettled?.(o,null,this.state.variables,this.state.context,this,n),await this.options.onSettled?.(o,null,e,this.state.context,n),this.#i({type:`success`,data:o}),o}catch(t){try{await this.#n.config.onError?.(t,e,this.state.context,this,n)}catch(e){Promise.reject(e)}try{await this.options.onError?.(t,e,this.state.context,n)}catch(e){Promise.reject(e)}try{await this.#n.config.onSettled?.(void 0,t,this.state.variables,this.state.context,this,n)}catch(e){Promise.reject(e)}try{await this.options.onSettled?.(void 0,t,e,this.state.context,n)}catch(e){Promise.reject(e)}throw this.#i({type:`error`,error:t}),t}finally{this.#r===r&&(this.#r=void 0),this.#n.runNext(this)}}#i(e){let t=t=>{switch(e.type){case`failed`:return{...t,failureCount:e.failureCount,failureReason:e.error};case`pause`:return{...t,isPaused:!0};case`continue`:return{...t,isPaused:!1};case`pending`:return{...t,context:e.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:e.isPaused,status:`pending`,variables:e.variables,submittedAt:Date.now()};case`success`:return{...t,data:e.data,failureCount:0,failureReason:null,error:null,status:`success`,isPaused:!1};case`error`:return{...t,data:void 0,error:e.error,failureCount:t.failureCount+1,failureReason:e.error,isPaused:!1,status:`error`}}};this.state=t(this.state),A.batch(()=>{this.#t.forEach(t=>{t.onMutationUpdate(e)}),this.#n.notify({mutation:this,type:`updated`,action:e})})}};function He(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:`idle`,variables:void 0,submittedAt:0}}var Ue=class extends xe{#e;#t;#n;constructor(e={}){super(),this.config=e,this.#e=new Set,this.#t=new Map,this.#n=0}build(e,t,n){let r=new Ve({client:e,mutationCache:this,mutationId:++this.#n,options:e.defaultMutationOptions(t),state:n});return this.add(r),r}add(e){this.#e.add(e);let t=We(e);if(typeof t==`string`){let n=this.#t.get(t);n?n.push(e):this.#t.set(t,[e])}this.notify({type:`added`,mutation:e})}remove(e){if(this.#e.delete(e)){let t=We(e);if(typeof t==`string`){let n=this.#t.get(t);if(n){if(n.length>1){let t=n.indexOf(e);t!==-1&&n.splice(t,1)}else n[0]===e&&this.#t.delete(t)}}}this.notify({type:`removed`,mutation:e})}canRun(e){let t=We(e);if(typeof t==`string`){let n=this.#t.get(t)?.find(e=>e.state.status===`pending`);return!n||n===e}return!0}runNext(e){let t=We(e);return typeof t==`string`?(this.#t.get(t)?.find(t=>t!==e&&t.state.isPaused))?.continue()??Promise.resolve():Promise.resolve()}clear(){A.batch(()=>{this.#e.forEach(e=>{this.notify({type:`removed`,mutation:e})}),this.#e.clear(),this.#t.clear()})}getAll(){return Array.from(this.#e)}find(e){let t={exact:!0,...e};return this.getAll().find(e=>D(t,e))}findAll(e={}){return this.getAll().filter(t=>D(e,t))}notify(e){A.batch(()=>{this.listeners.forEach(t=>{t(e)})})}resumePausedMutations(){let e=this.getAll().filter(e=>e.state.isPaused);return A.batch(()=>Promise.all(e.map(e=>e.continue().catch(C))))}};function We(e){return e.options.scope?.id}var Ge=class extends xe{#e;#t=void 0;#n;#r;constructor(e,t){super(),this.#e=e,this.setOptions(t),this.bindMethods(),this.#i()}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(e){let t=this.options;this.options=this.#e.defaultMutationOptions(e),se(this.options,t)||this.#e.getMutationCache().notify({type:`observerOptionsUpdated`,mutation:this.#n,observer:this}),t?.mutationKey&&this.options.mutationKey&&re(t.mutationKey)!==re(this.options.mutationKey)?this.reset():this.#n?.state.status===`pending`&&this.#n.setOptions(this.options)}onSubscribe(){this.listeners.size===1&&this.#n&&(this.#n.addObserver(this),this.#i())}onUnsubscribe(){this.hasListeners()||this.#n?.removeObserver(this)}onMutationUpdate(e){this.#i(),this.#a(e)}getCurrentResult(){return this.#t}reset(){this.#n?.removeObserver(this),this.#n=void 0,this.#i(),this.#a()}mutate(e,t){return this.#r=t,this.#n?.removeObserver(this),this.#n=this.#e.getMutationCache().build(this.#e,this.options),this.#n.addObserver(this),this.#n.execute(e)}#i(){let e=this.#n?.state??He();this.#t={...e,isPending:e.status===`pending`,isSuccess:e.status===`success`,isError:e.status===`error`,isIdle:e.status===`idle`,mutate:this.mutate,reset:this.reset}}#a(e){A.batch(()=>{if(this.#r&&this.hasListeners()){let t=this.#t.variables,n=this.#t.context,r={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};if(e?.type===`success`){try{this.#r.onSuccess?.(e.data,t,n,r)}catch(e){Promise.reject(e)}try{this.#r.onSettled?.(e.data,null,t,n,r)}catch(e){Promise.reject(e)}}else if(e?.type===`error`){try{this.#r.onError?.(e.error,t,n,r)}catch(e){Promise.reject(e)}try{this.#r.onSettled?.(void 0,e.error,t,n,r)}catch(e){Promise.reject(e)}}}this.listeners.forEach(e=>{e(this.#t)})})}};function Ke(e,t){let n=new Set(t);return e.filter(e=>!n.has(e))}var qe=class extends xe{#e;#t;#n;#r;#i;#a;#o;#s;#c;#l=[];constructor(e,t,n){super(),this.#e=e,this.#r=n,this.#n=[],this.#i=[],this.#t=[],this.setQueries(t)}onSubscribe(){this.listeners.size===1&&this.#i.forEach(e=>{e.subscribe(t=>{this.#m(e,t)})})}onUnsubscribe(){this.listeners.size||this.destroy()}destroy(){this.listeners=new Set,this.#i.forEach(e=>{e.destroy()})}setQueries(e,t){this.#n=e,this.#r=t,A.batch(()=>{let e=this.#i,t=this.#p(this.#n);t.forEach(e=>e.observer.setOptions(e.defaultedQueryOptions));let n=t.map(e=>e.observer),r=n.map(e=>e.getCurrentResult()),i=e.length!==n.length,a=n.some((t,n)=>t!==e[n]),o=i||a,s=o?!0:r.some((e,t)=>{let n=this.#t[t];return!n||!se(e,n)});(o||s)&&(o&&(this.#l=t,this.#i=n),this.#t=r,this.hasListeners()&&(o&&(Ke(e,n).forEach(e=>{e.destroy()}),Ke(n,e).forEach(e=>{e.subscribe(t=>{this.#m(e,t)})})),this.#h()))})}getCurrentResult(){return this.#t}getQueries(){return this.#i.map(e=>e.getCurrentQuery())}getObservers(){return this.#i}getOptimisticResult(e,t){let n=this.#p(e),r=n.map(e=>e.observer.getOptimisticResult(e.defaultedQueryOptions)),i=n.map(e=>e.defaultedQueryOptions.queryHash);return[r,e=>this.#d(e??r,t,i),()=>this.#u(r,n)]}#u(e,t){let n=new Set;return t.map((r,i)=>{let a=e[i];return r.defaultedQueryOptions.notifyOnChangeProps?a:r.observer.trackResult(a,e=>{n.has(e)||(n.add(e),t.forEach(t=>{t.observer.trackProp(e)}))})})}#d(e,t,n){if(t){let r=this.#c,i=n!==void 0&&r!==void 0&&(r.length!==n.length||n.some((e,t)=>e!==r[t]));return(this.#t!==this.#s||i||t!==this.#o)&&(this.#o=t,this.#s=this.#t,n!==void 0&&(this.#c=n),this.#a=oe(this.#a,t(e))),this.#a}return e}#f(){return!this.#r?.combine||this.#i.some((e,t)=>e.options.suspense&&this.#t[t]?.data===void 0)}#p(e){let t=new Map;this.#i.forEach(e=>{let n=e.options.queryHash;if(!n)return;let r=t.get(n);r?r.push(e):t.set(n,[e])});let n=[];return e.forEach(e=>{let r=this.#e.defaultQueryOptions(e),i=t.get(r.queryHash)?.shift()??new Fe(this.#e,r);n.push({defaultedQueryOptions:r,observer:i})}),n}#m(e,t){let n=this.#i.indexOf(e);n!==-1&&(this.#t=this.#t.slice(),this.#t[n]=t,this.#h())}#h(){if(this.hasListeners()){let e=this.#f(),t=this.#a,n=e?t:this.#d(this.#u(this.#t,this.#l),this.#r?.combine);(e||t!==n)&&A.batch(()=>{this.listeners.forEach(e=>{e(this.#t)})})}}},Je=class extends xe{#e;constructor(e={}){super(),this.config=e,this.#e=new Map}build(e,t,n){let r=t.queryKey,i=t.queryHash??ne(r,t),a=this.get(i);return a||(a=new je({client:e,queryKey:r,queryHash:i,options:e.defaultQueryOptions(t),state:n,defaultOptions:e.getQueryDefaults(r)}),this.add(a)),a}add(e){this.#e.has(e.queryHash)||(this.#e.set(e.queryHash,e),this.notify({type:`added`,query:e}))}remove(e){this.#e.get(e.queryHash)===e&&(e.destroy(),this.#e.delete(e.queryHash),this.notify({type:`removed`,query:e}))}clear(){A.batch(()=>{this.getAll().forEach(e=>{this.remove(e)})})}get(e){return this.#e.get(e)}getAll(){return[...this.#e.values()]}find(e){let t={exact:!0,...e};return this.getAll().find(e=>te(t,e))}findAll(e={}){let t=this.getAll();return Object.keys(e).length>0?t.filter(t=>te(e,t)):t}notify(e){A.batch(()=>{this.listeners.forEach(t=>{t(e)})})}onFocus(){A.batch(()=>{this.getAll().forEach(e=>{e.onFocus()})})}onOnline(){A.batch(()=>{this.getAll().forEach(e=>{e.onOnline()})})}},Ye=class{#e;#t;#n;#r;#i;#a;#o;#s;constructor(e={}){this.#e=e.queryCache||new Je,this.#t=e.mutationCache||new Ue,this.#n=e.defaultOptions||{},this.#r=new Map,this.#i=new Map,this.#a=0}mount(){this.#a++,this.#a===1&&(this.#o=Se.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onFocus())}),this.#s=Ce.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onOnline())}))}unmount(){this.#a--,this.#a===0&&(this.#o?.(),this.#o=void 0,this.#s?.(),this.#s=void 0)}isFetching(e){return this.#e.findAll({...e,fetchStatus:`fetching`}).length}isMutating(e){return this.#t.findAll({...e,status:`pending`}).length}getQueryData(e){let t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state.data}ensureQueryData(e){let t=this.defaultQueryOptions(e),n=this.#e.build(this,t),r=n.state.data;return r===void 0?this.fetchQuery(e):(e.revalidateIfStale&&n.isStaleByTime(E(t.staleTime,n))&&this.prefetchQuery(t),Promise.resolve(r))}getQueriesData(e){return this.#e.findAll(e).map(({queryKey:e,state:t})=>[e,t.data])}setQueryData(e,t,n){let r=this.defaultQueryOptions({queryKey:e}),i=this.#e.get(r.queryHash)?.state.data,a=w(t,i);if(a!==void 0)return this.#e.build(this,r).setData(a,{...n,manual:!0})}setQueriesData(e,t,n){return A.batch(()=>this.#e.findAll(e).map(({queryKey:e})=>[e,this.setQueryData(e,t,n)]))}getQueryState(e){let t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state}removeQueries(e){let t=this.#e;A.batch(()=>{t.findAll(e).forEach(e=>{t.remove(e)})})}resetQueries(e,t){let n=this.#e;return A.batch(()=>{let r=n.findAll(e),i=new Set(r);return r.forEach(e=>{e.reset()}),this.refetchQueries({type:`active`,predicate:e=>i.has(e)},t)})}cancelQueries(e,t={}){let n={revert:!0,...t},r=A.batch(()=>this.#e.findAll(e).map(e=>e.cancel(n)));return Promise.all(r).then(C).catch(C)}invalidateQueries(e,t={}){return A.batch(()=>(this.#e.findAll(e).forEach(e=>{e.invalidate()}),e?.refetchType===`none`?Promise.resolve():this.refetchQueries({...e,type:e?.refetchType??e?.type??`active`},t)))}refetchQueries(e,t={}){let n={...t,cancelRefetch:t.cancelRefetch??!0},r=A.batch(()=>this.#e.findAll(e).filter(e=>!e.isDisabled()&&!e.isStatic()).map(e=>{let t=e.fetch(void 0,n);return n.throwOnError||(t=t.catch(C)),e.state.fetchStatus===`paused`?Promise.resolve():t}));return Promise.all(r).then(C)}async query(e){let t=this.defaultQueryOptions(e);t.retry===void 0&&(t.retry=!1);let n=this.#e.build(this,t),r=n.isStaleByTime(E(t.staleTime,n))?await n.fetch(t):n.state.data,i=t.select;return i?i(r):r}fetchQuery(e){let t=this.defaultQueryOptions(e);t.retry===void 0&&(t.retry=!1);let n=this.#e.build(this,t);return n.isStaleByTime(E(t.staleTime,n))?n.fetch(t):Promise.resolve(n.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(C).catch(C)}infiniteQuery(e){return e._type=`infinite`,this.query(e)}fetchInfiniteQuery(e){return e._type=`infinite`,this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(C).catch(C)}ensureInfiniteQueryData(e){return e._type=`infinite`,this.ensureQueryData(e)}resumePausedMutations(){return Ce.isOnline()?this.#t.resumePausedMutations():Promise.resolve()}getQueryCache(){return this.#e}getMutationCache(){return this.#t}getDefaultOptions(){return this.#n}setDefaultOptions(e){this.#n=e}setQueryDefaults(e,t){this.#r.set(re(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){let t=[...this.#r.values()],n={};return t.forEach(t=>{ie(e,t.queryKey)&&Object.assign(n,t.defaultOptions)}),n}setMutationDefaults(e,t){this.#i.set(re(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){let t=[...this.#i.values()],n={};return t.forEach(t=>{ie(e,t.mutationKey)&&Object.assign(n,t.defaultOptions)}),n}defaultQueryOptions(e){if(e._defaulted)return e;let t={...this.#n.queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return t.queryHash||=ne(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===he&&(t.enabled=!1),t}defaultMutationOptions(e){return e?._defaulted?e:{...this.#n.mutations,...e?.mutationKey&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){this.#e.clear(),this.#t.clear()}},Xe=m.createContext(!1),Ze=()=>m.useContext(Xe);Xe.Provider;function Qe(){let e=!1;return{clearReset:()=>{e=!1},reset:()=>{e=!0},isReset:()=>e}}var $e=m.createContext(Qe()),et=()=>m.useContext($e),tt=(e,t,n)=>{let r=n?.state.error&&typeof e.throwOnError==`function`?_e(e.throwOnError,[n.state.error,n]):e.throwOnError;(e.suspense||r)&&(t.isReset()||(e.retryOnMount=!1))},nt=e=>{m.useEffect(()=>{e.clearReset()},[e])},rt=({result:e,errorResetBoundary:t,throwOnError:n,query:r,suspense:i})=>e.isError&&!t.isReset()&&!e.isFetching&&r&&(i&&e.data===void 0||_e(n,[e.error,r])),it=e=>{if(e.suspense){let t=1e3,n=e=>e===`static`?e:Math.max(e??t,t),r=e.staleTime;e.staleTime=typeof r==`function`?(...e)=>n(r(...e)):n(r),typeof e.gcTime==`number`&&(e.gcTime=Math.max(e.gcTime,t))}},at=(e,t)=>e?.suspense&&t.isPending,ot=(e,t,n)=>t.fetchOptimistic(e).catch(()=>{n.clearReset()});function st({queries:e,...t},n){let r=_(n),i=Ze(),a=et(),o=t.subscribed!==!1,s=m.useMemo(()=>e.map(e=>{let t=r.defaultQueryOptions(e);return t._optimisticResults=i?`isRestoring`:o?`optimistic`:void 0,t}),[e,r,i,o]);s.forEach(e=>{it(e);let t=r.getQueryCache().get(e.queryHash);tt(e,a,t)}),nt(a);let[c]=m.useState(()=>new qe(r,s,t)),[l,u,d]=c.getOptimisticResult(s,t.combine),f=!i&&o;m.useSyncExternalStore(m.useCallback(e=>f?c.subscribe(A.batchCalls(e)):C,[c,f]),()=>c.getCurrentResult(),()=>c.getCurrentResult()),m.useEffect(()=>{c.setQueries(s,t)},[s,t,c]);let p=l.some((e,t)=>at(s[t],e))?l.flatMap((e,t)=>{let n=s[t];return n&&at(n,e)?ot(n,new Fe(r,n),a):[]}):[];if(p.length>0)throw Promise.all(p);let h=l.find((e,t)=>{let n=s[t];return n&&rt({result:e,errorResetBoundary:a,throwOnError:n.throwOnError,query:r.getQueryCache().get(n.queryHash),suspense:n.suspense})});if(h)throw h.error;return u(d())}function ct(e,t,n){let r=Ze(),i=et(),a=_(n),o=a.defaultQueryOptions(e),s=a.getQueryCache().get(o.queryHash),c=e.subscribed!==!1;o._optimisticResults=r?`isRestoring`:c?`optimistic`:void 0,it(o),tt(o,i,s),nt(i);let[l]=m.useState(()=>new t(a,o)),u=l.getOptimisticResult(o),d=!r&&c;if(m.useSyncExternalStore(m.useCallback(e=>{let t=d?l.subscribe(A.batchCalls(e)):C;return l.updateResult(),t},[l,d]),()=>l.getCurrentResult(),()=>l.getCurrentResult()),m.useEffect(()=>{l.setOptions(o)},[o,l]),at(o,u))throw ot(o,l,i);if(rt({result:u,errorResetBoundary:i,throwOnError:o.throwOnError,query:s,suspense:o.suspense}))throw u.error;return o.notifyOnChangeProps?u:l.trackResult(u)}function lt(e,t){return ct(e,Fe,t)}function ut(e,t){let n=_(t),[r]=m.useState(()=>new Ge(n,e));m.useEffect(()=>{r.setOptions(e)},[r,e]);let i=m.useSyncExternalStore(m.useCallback(e=>r.subscribe(A.batchCalls(e)),[r]),()=>r.getCurrentResult(),()=>r.getCurrentResult()),a=m.useCallback((...e)=>{r.mutate(e[0],e[1]).catch(C)},[r]);if(i.error&&_e(r.options.throwOnError,[i.error]))throw i.error;return{...i,mutate:a,mutateAsync:i.mutate}}var dt=m.use,ft=m.useLayoutEffect;function pt(e){return e[e.length-1]}function mt(e,t){return typeof e==`function`?e(t):e}var ht=Object.prototype.hasOwnProperty;function gt(e){for(let t in e)if(ht.call(e,t))return!0;return!1}var _t=()=>Object.create(null),vt=(e,t)=>yt(e,t,!0);function yt(e,t,n,r=0){if(e===t)return e;if(r++>500)return t;let i=Array.isArray(e)&&Array.isArray(t);if(!i&&!(bt(e)&&bt(t)))return t;let a=Object.keys(e),o=a.length,s=Object.keys(t),c=s.length;if(i?o!==e.length||c!==t.length||o&&pt(a)!==`${o-1}`||c&&pt(s)!==`${c-1}`:o!==Object.getOwnPropertyNames(e).length||c!==Object.getOwnPropertyNames(t).length||Object.getOwnPropertySymbols(t).length)return t;let l=0,u,d,f;if(i){for(;ll&&(u=t[f],u=d===u?d:typeof d==`object`?yt(d,u,n,r):u),p[f]=o`{}]/g;function wt(e){return e.replace(Ct,e=>`%`+e.charCodeAt(0).toString(16).toUpperCase().padStart(2,`0`))}function Tt(e){let t;try{t=decodeURI(e)}catch{t=e.replaceAll(/%[0-9A-F]{2}/gi,e=>{try{return decodeURI(e)}catch{return e}})}return wt(t)}var Et=[`http:`,`https:`,`mailto:`,`tel:`];function Dt(e){if(e[0]!==`/`&&e.includes(`:`))return/^[\x00-\x20]*([a-z][a-z\d+.\t\n\r-]*:)/i.exec(e)?.[1]?.replace(/[\t\n\r]/g,``).toLowerCase()}var Ot=/^[\x00-\x20]*[\\/][\t\n\r]*[\\/]/;function kt(e,t){if(!e)return!1;if(Ot.test(e))return!0;let n=Dt(e);return n?!t.has(n):!1}function At(e){if(!e)return e;let t=e;if(/[%\\\x00-\x1f\x7f]/.test(e)){let n=/%25|%5C/gi,r=0,i;for(t=``;(i=n.exec(e))!==null;)t+=Tt(e.slice(r,i.index))+i[0],r=n.lastIndex;t+=Tt(r?e.slice(r):e)}return t}function jt(e){return/[\s\u0080-\uFFFF]/.test(e)?e.replace(/\s|[^\u0000-\u007F]/gu,encodeURIComponent):e}function Mt(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n1&&e[t-1]===`/`?e.replace(/\/+$/,``):e}function Lt(e){return It(Ft(e))}function Rt(e,t){return e?.endsWith(`/`)&&e!==`/`&&e!==`${t}/`?e.slice(0,-1):e}function zt(e,t,n=`never`,r){if(t.includes(`//`)&&(t=Pt(t)),t.startsWith(`/`))return t.length===1||n===`preserve`?t:n===`always`?t.endsWith(`/`)?t:`${t}/`:t.endsWith(`/`)?t.slice(0,-1):t;let i=t===`.`,a;if(r){a=i?e:e+`\0`+t;let n=r.get(a);if(n)return n}let o;if(i)o=e.split(`/`);else{for(e.includes(`//`)&&(e=Pt(e)),o=e.split(`/`);o.length>1&&pt(o)===``;)o.pop();let n=t.split(`/`);for(let e=0,t=n.length;e1?o.pop():o=[``]:r===`.`||o.push(r)}}o.length>1&&(pt(o)===``?n===`never`&&o.pop():n===`always`&&o.push(``));let s=o.join(`/`),c=(i?Pt(s):s)||`/`;return a&&r&&r.set(a,c),c}function Bt(e){let t=new Map(e.map(e=>[encodeURIComponent(e),e])),n=new RegExp([...t.keys()].join(`|`).replace(/[.*()]/g,`\\$&`),`g`);return e=>e.replace(n,e=>t.get(e)??e)}function Vt(e){return e==null||e===``}function Ht(e,t,n){if(typeof t!=`string`)return``+(t??void 0);let r=e===`_splat`;if(r&&(!t||/^[a-zA-Z0-9\-._~!/]*$/.test(t)))return t;let i=encodeURIComponent(t);return r&&(i=i.replaceAll(`%2F`,`/`)),n?n(i):i}function Ut(e,t,n,r,i){let a=e.endsWith(`/`)?`/`:``,o=``;for(let e of t){if(typeof e==`string`){o+=e;continue}let[t,s,c,l]=e,u=t===2,d=u&&l!==void 0?l+a:l,f=n[s];if(t!==3||f!=null){if(i&&(i[s]=f,u&&(i[`*`]=f)),u&&Vt(f)){if(c===`/`&&!d)continue;f=``}o+=c+Ht(s,f,r)+(d||``)}}return o+a||`/`}function Wt(e){return e?.isNotFound===!0}function Gt(){try{return sessionStorage}catch{return}}var Kt=`tsr-scroll-restoration-v1_3`,qt=Gt();function Jt(){try{return JSON.parse(qt?.getItem(`tsr-scroll-restoration-v1_3`)||`{}`)}catch{return{}}}function Yt(){try{qt?.setItem(Kt,JSON.stringify(Xt))}catch{}}var Xt=Jt(),Zt=`data-scroll-restoration-id`,Qt=e=>e.state.__TSR_key||e.href;function M(e){let t=e.getAttribute(Zt);if(t)return`[${Zt}="${t}"]`;let n=``,r=e,i;for(;i=r.parentNode;){let e=1,t=r;for(;t=t.previousElementSibling;)e++;let a=`${r.localName}:nth-child(${e})`;n=n?`${a} > ${n}`:a,r=i}return n}var $t=!1,en=`window`;function tn(e){try{return typeof e==`function`?e():document.querySelector(e)}catch{}}function nn(e){let t=new Set;for(let n of e){if(n===en)continue;let e=tn(n);e&&t.add(e)}return t}function rn(e,t){let n=t??e.options.scrollRestoration,r=e._scroll;n&&(r.restoring=!0);let i=e.options.getScrollRestorationKey||Qt,a=new Set,o=e=>{let t=Xt[e]||={};for(let e of a)e===document?t[en]={scrollX,scrollY}:e.isConnected&&(t[M(e)]={scrollX:e.scrollLeft,scrollY:e.scrollTop})};n&&!r.restoration&&(r.restoration=!0,$t=!1,history.scrollRestoration=`manual`,document.addEventListener(`scroll`,e=>{$t||a.add(e.target)},!0),e.subscribe(`onBeforeLoad`,e=>{e.fromLocation&&o(i(e.fromLocation)),a.clear()}),addEventListener(`pagehide`,()=>{o(i(e.stores.resolvedLocation.get()??e.stores.location.get())),Yt()})),!r.reset&&(r.reset=!0,e.subscribe(`onRendered`,t=>{let n=e.options.scrollRestorationBehavior,o=e.options.scrollToTopSelectors,s=r.next,c=r.hash,l;if(a.clear(),r.next=!0,r.hash=!1,typeof e.options.scrollRestoration==`function`&&!e.options.scrollRestoration({location:e.latestLocation}))return;let u=i(t.toLocation),d=t.fromLocation&&i(t.fromLocation);if(r.restoring&&d&&d!==u){let e=Xt[d];if(e){let t=Xt[u];for(let n in e){if(n===en){if(s)continue}else{let e=tn(n);if(!e||s&&o&&(l??=nn(o),l.has(e)))continue}t||=Xt[u]={},t[n]??=e[n]}}}$t=!0;try{let e=t.toLocation.hash,i=t.toLocation.state.__hashScrollIntoViewOptions??!0,a=!1;if(s){!e&&o&&(l??=nn(o));let t=e&&i&&c,s=r.restoring?Xt[u]:void 0;if(s)for(let e in s){let{scrollX:r,scrollY:i}=s[e];if(e===en){if(t)continue;scrollTo({top:i,left:r,behavior:n}),a=!0}else{let t=tn(e);t&&(t.scrollLeft=r,t.scrollTop=i,l?.delete(t))}}if(!e){let e={top:0,left:0,behavior:n};if(a||scrollTo(e),l)for(let t of l)t.scrollTo(e)}}!a&&e&&i&&document.getElementById(e)?.scrollIntoView(i)}finally{$t=!1}}))}function an(e,t=String){let n;for(let r in e){let i=e[r];i!==void 0&&(n||=new URLSearchParams).set(r,t(i))}return n?n.toString():``}function on(e){return e?e===`false`?!1:e===`true`?!0:e*0==0&&+e+``===e?+e:e:``}function sn(e){let t=new URLSearchParams(e),n=Object.create(null);for(let[e,r]of t.entries()){let t=n[e];t==null?n[e]=on(r):Array.isArray(t)?t.push(on(r)):n[e]=[t,on(r)]}return n}var cn=/^(?:\s|["[{\d-]|fa|nu|tr)/,ln=dn(JSON.parse),un=fn(JSON.stringify,JSON.parse);function dn(e){let t=e===JSON.parse;return n=>{n[0]===`?`&&(n=n.substring(1));let r=sn(n);for(let n in r){let i=r[n];if(typeof i==`string`){if(t&&!cn.test(i))continue;try{r[n]=e(i)}catch{}}}return r}}function fn(e,t){let n=t===JSON.parse;function r(r){if(r&&typeof r==`object`)try{return e(r)}catch{}else if(t&&typeof r==`string`){if(n&&!cn.test(r))return r;try{return t(r),e(r)}catch{}}return r}return e=>{let t=an(e,r);return t?`?${t}`:``}}var pn=`__root__`;function mn(e){e.statusCode=e.statusCode||e.code||307;let t=new Headers(e.headers);e.href&&t.get(`Location`)===null&&t.set(`Location`,e.href);let n=new Response(null,{status:e.statusCode,headers:t});if(n.options=e,e.throw)throw n;return n}function hn(e){return e instanceof Response&&!!e.options}function gn(e){let t=new Map,n,r;return{get(e){let n=t.get(e);if(n)return n.visited=!0,n.value},set(i,a){let o=t.get(i);if(o){o.value=a;return}if(t.size>=e){let e=n?.next().value;for(;!e||e.visited;)e?e.visited=!1:n=t.values(),e=n.next().value;e===r&&(n=void 0),t.delete(e.key)}let s={key:i,value:a,visited:!1};r=s,t.set(i,s)},clear(){t.clear(),n=void 0,r=void 0}}}var _n=4,vn=5;function yn(e){let t=e.names;if(t)return t;let n=[];for(let t of e)typeof t!=`string`&&n.push(t[1]);return e.names=n}function bn(e,t,n){let r=e.substring(t,n);if(r.charCodeAt(0)===36)return r.length===1?[2,`_splat`,``,void 0]:[1,r.substring(1),``,``];let i=r.indexOf(`{`);if(i>=0){let a=r.indexOf(`}`,i),o=r.charCodeAt(i+1)===45,s=i+(o?3:2);if(a>=0&&r.charCodeAt(s-1)===36&&(!o||s!e.parse&&e.caseSensitive===_&&e.prefix===h&&e.suffix===g);if(y)c=y;else{let e=Cn(r,t,_,h,g);c=e,v.push(e),v.length===2&&i?.push(v)}}r=c}p&&m=0;e--){let n=i.wildcard[e],{prefix:r,suffix:a}=n;if(!r||!_&&(n.caseSensitive?v:y??=v.toLowerCase()).startsWith(r)){if(a){if(_)continue;let e=t.slice(u).join(`/`),i=e.slice(-a.length);if((n.caseSensitive?i:i.toLowerCase())!==a||e.length-a.length=0;t--){let n=i.optional[t];s.push({node:n,index:u,skipped:e,statics:f,dynamics:p,optionals:m,extract:h,rawParams:g})}if(!_)for(let e=i.optional.length-1;e>=0;e--){let t=i.optional[e],{prefix:n,suffix:r}=t;if(n||r){let e=t.caseSensitive?v:y??=v.toLowerCase();if(n&&!e.startsWith(n)||r&&e.indexOf(r,e.length-r.length)=0;e--){let t=i.dynamic[e],{prefix:n,suffix:r}=t;if(n||r){let e=t.caseSensitive?v:y??=v.toLowerCase();if(n&&!e.startsWith(n)||r&&e.indexOf(r,e.length-r.length)=0;e--){let t=i.pathless[e];s.push({node:t,index:u,skipped:d,statics:f,dynamics:p,optionals:m,extract:h,rawParams:g})}}if(l)return l;if(r&&c){let n=c.index;for(let e=0;ee.statics||t.statics===e.statics&&(t.dynamics>e.dynamics||t.dynamics===e.dynamics&&(t.optionals>e.optionals||t.optionals===e.optionals&&((t.node.kind===_n)>(e.node.kind===_n)||t.node.kind===_n==(e.node.kind===_n)&&t.node.depth>e.node.depth)))}function Rn(e,t,n){let r=Lt(e),i=`/${r}`,a=t?i:i.toLowerCase(),o=`${a}/`,s={input:({url:e})=>{let n=t?e.pathname:e.pathname.toLowerCase();return n===a?e.pathname=`/`:n.startsWith(o)&&(e.pathname=e.pathname.slice(i.length)),e},output:({url:e})=>(e.pathname=Pt(`/${r}${e.pathname}`),e)};return n?{input:({url:e})=>zn(n,s.input({url:e})),output:({url:e})=>s.output({url:Bn(n,e)})}:s}function zn(e,t){let n=e?.input?.({url:t});if(n){if(typeof n==`string`)return new URL(n);if(n instanceof URL)return n}return t}function Bn(e,t){let n=e?.output?.({url:t});if(n){if(typeof n==`string`)return new URL(n);if(n instanceof URL)return n}return t}function Vn(e,t){let{createMutableStore:n,createReadonlyStore:r,batch:i}=t,a=new Map,o=n(`idle`),s=n(e),c=n(void 0),l=n([]),u=r(()=>l.get().map(e=>a.get(e).get())),d=r(()=>({status:o.get(),isLoading:o.get()===`pending`,matches:u.get(),location:s.get(),resolvedLocation:c.get()}));function f(e){let t=a.get(e);return t||(t=n(void 0),a.set(e,t)),t}let p={status:o,location:s,resolvedLocation:c,ids:l,matches:u,byRoute:a,__store:d,getMatchStore:f,setMatches:m};function m(e){let t=l.get(),n=e.map(e=>e.routeId);i(()=>{Mt(t,n)||l.set(n);for(let e of t)n.includes(e)||a.get(e).set(()=>void 0);for(let t of e){let e=f(t.routeId);e.get()!==t&&e.set(t)}})}return p}var Hn=`__TSR_index`,Un=`popstate`,Wn=`beforeunload`,Gn=/^[\x00-\x20]*(?:[\\/][\t\n\r]*){2,}/;function Kn(e){let t=Gn.exec(e);return t?`/`+e.slice(t[0].length):e}function qn(e){return/[\x00-\x1f\x7f]/.test(e)&&(e=e.replace(/[\x00-\x1f\x7f]/g,e=>` -\r`.includes(e)?``:encodeURIComponent(e))),Kn(e)}function Jn(e){let t=e.getLocation(),n=new Set,r=r=>{t=e.getLocation(),n.forEach(e=>e({location:t,action:r}))},i=n=>{e.notifyOnIndexChange??!0?r(n):t=e.getLocation()},a=async({task:n,navigateOpts:r,...i})=>{if(r?.ignoreBlocker??!1){n();return}let a=e.getBlockers?.()??[],o=i.type===`PUSH`||i.type===`REPLACE`;if(typeof document<`u`&&a.length&&o)for(let n of a){let r=Zn(i.path,i.state);if(await n.blockerFn({currentLocation:t,nextLocation:r,action:i.type})){e.onBlocked?.();return}}n()};return{get location(){return t},get length(){return e.getLength()},subscribers:n,subscribe:e=>(n.add(e),()=>{n.delete(e)}),push:(n,i,o)=>{let s=t.state[Hn];i=Yn(s+1,i),a({task:()=>{e.pushState(n,i),r({type:`PUSH`})},navigateOpts:o,type:`PUSH`,path:n,state:i})},replace:(n,i,o)=>{let s=t.state[Hn];i=Yn(s,i),a({task:()=>{e.replaceState(n,i),r({type:`REPLACE`})},navigateOpts:o,type:`REPLACE`,path:n,state:i})},go:(t,n)=>{a({task:()=>{e.go(t,n?.ignoreBlocker??!1),i({type:`GO`,index:t})},navigateOpts:n,type:`GO`})},back:t=>{a({task:()=>{e.back(t?.ignoreBlocker??!1),i({type:`BACK`})},navigateOpts:t,type:`BACK`})},forward:t=>{a({task:()=>{e.forward(t?.ignoreBlocker??!1),i({type:`FORWARD`})},navigateOpts:t,type:`FORWARD`})},canGoBack:()=>t.state[Hn]!==0,createHref:t=>e.createHref(t),block:t=>{if(!e.setBlockers)return()=>{};let n=e.getBlockers?.()??[];return e.setBlockers([...n,t]),()=>{let n=e.getBlockers?.()??[];e.setBlockers?.(n.filter(e=>e!==t))}},flush:()=>e.flush?.(),destroy:()=>e.destroy?.(),notify:r,_getBlockers:()=>e.getBlockers?.()??[]}}function Yn(e,t){let n=Qn();return{...t,key:n,__TSR_key:n,[Hn]:e}}function Xn(e){let t=e?.window??(typeof document<`u`?window:void 0),n=t.history.pushState,r=t.history.replaceState,i=[],a=()=>i,o=e=>i=e,s=t=>qn(e?.createHref?e.createHref(t):t),c=e?.parseLocation??(()=>Zn(`${t.location.pathname}${t.location.search}${t.location.hash}`,t.history.state));if(!t.history.state?.__TSR_key&&!t.history.state?.key){let e=Qn();t.history.replaceState({[Hn]:0,key:e,__TSR_key:e},``)}let l=c(),u,d=!1,f=!1,p=!1,m=!1,h=()=>l,g,_=()=>{g&&(S._ignoreSubscribers=!0,(g[2]?t.history.pushState:t.history.replaceState)(g[1],``,g[0]),S._ignoreSubscribers=!1,g=void 0,u=void 0)},v=(t,n,r)=>{let i=e?.createHref?s(n):void 0,a=!!g;a||(u=l),l=Zn(n,r),g=[i??l.href,r,g?.[2]||t],a||queueMicrotask(()=>_())},y=e=>{l=c(),S.notify({type:e})},b=async()=>{if(m=!1,f){f=!1;return}let e=c(),n=e.state[Hn]-l.state[Hn],r=n===1,i=n===-1,o=!r&&!i||d;d=!1;let s=o?`GO`:i?`BACK`:`FORWARD`,u=o?{type:`GO`,index:n}:{type:i?`BACK`:`FORWARD`};if(p)p=!1;else{let r=a();if(typeof document<`u`&&r.length){for(let i of r)if(await i.blockerFn({currentLocation:l,nextLocation:e,action:s})){f=!0,t.history.go(-n),S.notify(u);return}}}l=c(),S.notify(u)},x=e=>{if(m){m=!1;return}let t=!1,n=a();if(typeof document<`u`&&n.length)for(let e of n){let n=e.enableBeforeUnload??!0;if(n===!0){t=!0;break}if(typeof n==`function`&&n()===!0){t=!0;break}}if(t)return e.preventDefault(),e.returnValue=``},S=Jn({getLocation:h,getLength:()=>t.history.length,pushState:(e,t)=>v(!0,e,t),replaceState:(e,t)=>v(!1,e,t),back:e=>(e&&(p=!0,m=!0),t.history.back()),forward:e=>{e&&(p=!0,m=!0),t.history.forward()},go:(e,n)=>{d=!0,n&&(p=!0,m=!0),t.history.go(e)},createHref:e=>s(e),flush:_,destroy:()=>{t.history.pushState=n,t.history.replaceState=r,t.removeEventListener(Wn,x,{capture:!0}),t.removeEventListener(Un,b)},onBlocked:()=>{u&&l!==u&&(l=u)},getBlockers:a,setBlockers:o,notifyOnIndexChange:!1});return S._ignoreNextBeforeUnload=e=>{m=!1;try{e=new URL(e,t.document.baseURI).href,m=/^https?:/.test(e)&&(!e.includes(`#`)||e.split(`#`)[0]!==t.location.href.split(`#`)[0])}catch{}},t.addEventListener(Wn,x,{capture:!0}),t.addEventListener(Un,b),t.history.pushState=function(...e){let r=n.apply(t.history,e);return S._ignoreSubscribers||y(`PUSH`),r},t.history.replaceState=function(...e){let n=r.apply(t.history,e);return S._ignoreSubscribers||y(`REPLACE`),n},S}function Zn(e,t){let n=qn(e),r=n.indexOf(`#`),i=n.indexOf(`?`);if(!t){let e=Qn();t={[Hn]:0,key:e,__TSR_key:e}}return{href:n,pathname:n.substring(0,r>0?i>0?Math.min(r,i):r:i>0?i:n.length),hash:r>-1?n.substring(r):``,search:i>-1?n.slice(i,r===-1?void 0:r):``,state:t}}function Qn(){return(Math.random()+1).toString(36).substring(7)}function $n(e,t){return e.protocol!==`http:`&&e.protocol!==`https:`||e.origin!==t||!!e.username||!!e.password}function er(e){return e.pathname+e.search+e.hash}function tr(e){return e.options.loader||e.options.beforeLoad||e.lazyFn||e.options.component?.preload||e.options.pendingComponent?.preload}function nr(e,t){return{fromLocation:t,toLocation:e,pathChanged:t?.pathname!==e.pathname,hrefChanged:t?.href!==e.href,hashChanged:t?.hash!==e.hash}}function rr({key:e,__TSR_key:t,__TSR_index:n,__hashScrollIntoViewOptions:r,...i}){return i}function ir(e){return e.findIndex(e=>e.status===`error`||e.status===`notFound`||e._notFound)+1}function ar(e,t,n,r,i,a){r&&(t=t.slice(0,r)),i&&(n=n.slice(0,i));for(let r of t){if(a&&e._tx!==a)return;n.some(e=>e.routeId===r.routeId)||e.routesById[r.routeId].options.onLeave?.(r)}for(let r of n){if(a&&e._tx!==a)return;e.routesById[r.routeId].options[t.some(e=>e.routeId===r.routeId)?`onStay`:`onEnter`]?.(r)}}var or=class{constructor(e,t){this.tempLocationKey=`${Math.round(Math.random()*1e7)}`,this._scroll={next:!0},this.subscribers=new Set,this._cache=new Map,this._committed=[],this.startTransition=async e=>(e(),!1),this.update=e=>{let t=this.options;this.options={...t,...e},this.isServer=this.options.isServer??!1??typeof document>`u`,this.staticLocations=new WeakMap,this.protocolAllowlist=new Set(this.options.protocolAllowlist),(!this.history||this.options.history&&this.options.history!==this.history)&&(this.history=this.options.history?this.options.history:Xn()),this.origin=this.options.origin,this.origin||=window?.origin&&window.origin!==`null`?window.origin:`http://localhost`;let n=this.options.basepath??`/`,r=this.options.rewrite,i=this.basepath!==n||t?.rewrite!==r||t?.caseSensitive!==this.options.caseSensitive;if(i&&(this.basepath=n,this.rewrite=n!==`/`&&Lt(n)?Rn(n,this.options.caseSensitive,r):r),this.history&&this.updateLatestLocation(),this.options.routeTree!==this.routeTree){this.routeTree=this.options.routeTree;let e;e=this.buildRouteTree(),this.setRoutes(e)}if(this.stores)i&&this.stores.location.set(this.latestLocation);else if(this.latestLocation){let e=this.getStoreConfig(this);this.batch=e.batch,this.stores=Vn(this.latestLocation,e),rn(this)}},this.updateLatestLocation=()=>{this.latestLocation=this.parseLocation(this.history.location,this.latestLocation)},this.buildRouteTree=()=>{let e=On(this.routeTree,this.options.caseSensitive);return this.options.routeMasks&&wn(this.options.routeMasks,e.processedTree),{...e,resolvePathCache:gn(1e3)}},this.subscribe=(e,t)=>{let n={eventType:e,fn:t};return this.subscribers.add(n),()=>{this.subscribers.delete(n)}},this.emit=e=>{for(let t of this.subscribers)if(t.eventType===e.type)try{t.fn(e)}catch(e){console.error(e)}},this.parseLocation=(e,t)=>{let n=({pathname:e,search:n,hash:r,href:i},a)=>{if(!this.rewrite&&!/[ \x00-\x1f\x7f\u0080-\uffff]/.test(e)){let i=this.options.parseSearch(n),o=this.options.stringifySearch(i);return{href:e+o+r,publicHref:e+o+r,pathname:At(e),external:!1,searchStr:o,search:vt(t?.search,i),hash:At(r.slice(1)),state:yt(t?.state,a)}}let o=zn(this.rewrite,new URL(i,this.origin)),s=this.options.parseSearch(o.search),c=this.options.stringifySearch(s);return o.search=c,{href:o.href.replace(o.origin,``),publicHref:i,pathname:At(Kn(o.pathname)),external:!!this.rewrite&&$n(o,this.origin),searchStr:c,search:vt(t?.search,s),hash:At(o.hash.slice(1)),state:yt(t?.state,a)}},r=n(e,e.state),{__tempLocation:i,__tempKey:a}=r.state;if(i&&(!a||a===this.tempLocationKey)){let e=n(i,{...i.state,__tempLocation:void 0,key:r.state.key,__TSR_key:r.state.__TSR_key});return e.maskedLocation=r,e}return r},this.matchRoutes=(e,t,n)=>typeof e==`string`?this.matchRoutesInternal({pathname:e,search:t},n):this.matchRoutesInternal(e,t),this.getMatchedRoutes=e=>{let t=Object.create(null),n=Dn(It(e),this.processedTree,!0);return n&&Object.assign(t,n.rawParams),[n?.branch||[this.routesById.__root__],t,n?.route]},this.buildLocation=e=>{{let t=this.staticLocations.get(e);if(t)return t}let t=!1,n=(n={})=>{if(n.href){let e=Zn(n.href,{});n={...n,to:zn(this.rewrite,new URL(e.pathname,this.origin)).pathname,search:this.options.parseSearch(e.search),hash:e.hash.slice(1)}}let r=n._fromLocation||this._pendingLocation||this.latestLocation,i,a=()=>(t=!0,r),o=()=>(t=!0,i??=this.matchRoutesLightweight(r)),s=n.to?`${n.to}`:`.`,c=zt(s[0]===`/`?``:n.unsafeRelative===`path`?a().pathname:n.from??o()[1],s,this.options.trailingSlash,this.resolvePathCache),l=this.routesByPath[It(c)],u=c.includes(`$`),d;if(l)d=l._branch??=jn(l);else if(u)d=[];else{let[e,t,n]=this.getMatchedRoutes(c);d=e,this.options.notFoundRoute&&(!n||n.path!==`/`&&t[`**`])&&(d=[...d,this.options.notFoundRoute])}let f=u?l?._interpolation??xn(!1,{fullPath:c},0):void 0,p;for(let e of d){let t=e.options.params?.stringify??e.options.stringifyParams;if(t){let e=o()[3];if(p??=dr(n.params,e),!gt(p))break;p===e&&(p=Object.assign(_t(),p));try{Object.assign(p,t(p))}catch{}}}p??=dr(n.params,fr(n.params,f)?o()[3]:pr);let m=e.leaveParams?c:Kn(At(f?Ut(c,f,p,this.pathParamsDecoder):c)),h=mr(d,e._includeValidateSearch),g=()=>{let t=o()[2];if(e._includeValidateSearch&&this.options.search?.strict){let e={};d.forEach(n=>{if(n.options.validateSearch)try{Object.assign(e,ur(n.options.validateSearch,{...e,...t}))}catch{}}),t=e}return t},_=h.length?hr(h,g(),n):n.search===!0?g():typeof n.search==`function`?n.search(g()):n.search||pr,v=this.options.stringifySearch(_),y=n.hash===!0?a().hash:typeof n.hash==`function`?n.hash(a().hash):n.hash||void 0,b=y?`#${y}`:``,x=n.state?n.state===!0?a().state:typeof n.state==`function`?n.state(a().state):n.state:pr,S=`${m}${v}${b}`,C,w,T=!1;if(this.rewrite){let e=new URL(S,this.origin),t=e.origin,n=Bn(this.rewrite,e);C=er(e),$n(n,t)?(w=n.href,T=!0):w=Kn(er(n))}else C=jt(S),w=C;return{publicHref:w,href:C,pathname:m,search:_,searchStr:v,state:x,hash:y??``,external:T,unmaskOnReload:n.unmaskOnReload}},r=n(e);if(e.mask)r.maskedLocation=n({from:e.from,...e.mask});else if(this.options.routeMasks){let t=Tn(r.pathname,this.processedTree);if(t){let i=Object.assign(_t(),t.rawParams),{from:a,params:o,...s}=t.route,c=dr(o,i);r.maskedLocation=n({from:e.from,...s,params:c})}}return!t&&e._fromLocation&&!r.maskedLocation&&this.staticLocations.set(e,r),r},this.commitLocation=async({viewTransition:e,ignoreBlocker:t,...n})=>{let r=n.maskedLocation??n;if(r.external)return sr(this,r.publicHref,{replace:n.replace,ignoreBlocker:t});let i,a=It(this.latestLocation.href)===It(n.href)&&xt(rr(n.state),rr(this.latestLocation.state)),o=this._commitPromise,s,c=new Promise(e=>{s=e});if(c.resolve=()=>{s(),o?.resolve()},this._commitPromise=c,a)this.load();else{let{maskedLocation:r,hashScrollIntoView:a,...o}=n;r&&(o={...r,state:{...r.state,__tempKey:void 0,__tempLocation:{...o,search:o.searchStr,state:{...o.state,__tempKey:void 0,__tempLocation:void 0,__TSR_key:void 0,key:void 0}}}},(o.unmaskOnReload??this.options.unmaskOnReload??!1)&&(o.state.__tempKey=this.tempLocationKey)),o.state={...o.state,__hashScrollIntoViewOptions:a??this.options.defaultHashScrollIntoView??!0},this.shouldViewTransition=e,i=n.replace?`REPLACE`:`PUSH`,this.history[i===`REPLACE`?`replace`:`push`](o.publicHref,o.state,{ignoreBlocker:t}),this.history.subscribers.size||this.load({action:{type:i}})}return this._scroll.next=n.resetScroll??!0,this._commitPromise},this.buildAndCommitLocation=({replace:e,resetScroll:t,hashScrollIntoView:n,viewTransition:r,ignoreBlocker:i,...a}={})=>{let o=this.buildLocation({...a,_includeValidateSearch:!0});this._pendingLocation=o;let s=this.commitLocation({...o,viewTransition:r,replace:e,resetScroll:t,hashScrollIntoView:n,ignoreBlocker:i});return queueMicrotask(()=>{this._pendingLocation===o&&(this._pendingLocation=void 0)}),s},this.navigate=async({to:e,reloadDocument:t,href:n,publicHref:r,...i})=>{let a=n?Dt(n):void 0;if(a||t){if(e!==void 0||!n){let t=this.buildLocation({to:e,...i}),a=t.maskedLocation??t;n??=a.publicHref,r??=a.publicHref}let t=!a&&r?r:n;return sr(this,t,i)}return this.buildAndCommitLocation({...i,href:n,to:e,_isNavigate:!0})},this.load=async e=>{this.updateLatestLocation(),e?.action&&(this._scroll.hash=e.action.type===`PUSH`||e.action.type===`REPLACE`),await si(this,e)},this.startViewTransition=e=>{let t=this.shouldViewTransition??this.options.defaultViewTransition;if(this.shouldViewTransition=void 0,t&&typeof document.startViewTransition==`function`){let n;if(typeof t==`object`&&window.CSS?.supports?.(`selector(:active-view-transition-type(a))`)){let r=this.latestLocation,i=this.stores.resolvedLocation.get(),a=typeof t.types==`function`?t.types(nr(r,i)):t.types;if(a===!1)return e();n={update:e,types:a}}else n=e;return document.startViewTransition(n).updateCallbackDone}return e()},this.invalidate=e=>{let t=this._committed,n=e?.filter,r=this._preloads,i=new Set,a=e=>{(!n||n(e))&&i.add(e.id)};t.forEach(a),this._cache.forEach(a),r?.forEach(e=>e.forEach(a)),this._tx?.[3].forEach(a);let o=[];for(let[e,t]of r??[])t.some(e=>i.has(e.id))&&(r.delete(e),o.push(e));let s=t=>{if(i.has(t.id)){let n=this.routesById[t.routeId],r={...t,invalid:!0,...(e?.forcePending||t.status===`error`||t.status===`notFound`)&&tr(n)?{status:`pending`,error:void 0}:void 0};return t._flight=void 0,r}return t};this._committed=t.map(s);for(let[t,n]of this._cache)i.has(t)&&(n.invalid=!0,e?.forcePending&&(n.status=`pending`));for(let e of i)this._flights?.delete(e);for(let e of o)e.abort();return this.shouldViewTransition=!1,this.load({sync:e?.sync})},this.resolveRedirect=e=>{let t=e.options,n=e.headers.get(`Location`)||t.href;if(!n){let e=this.buildLocation(t);n=(e.maskedLocation??e).publicHref||`/`}let r;if(Ot.test(n)||(r=Dt(n))&&!this.protocolAllowlist.has(r))throw Error(`Redirect blocked: unsafe protocol`);if(r===`http:`||r===`https:`){let e=new URL(n);e.pathname.startsWith(`//`)?n=e.href:$n(e,this.origin)||(n=er(e),r=void 0)}return r&&(t.reloadDocument=!0),t.href=n,e.headers.set(`Location`,n),e},this.clearCache=e=>{let t=this._cache,n=this._preloads,r=e?.filter,i=[],a=[];for(let[e,n]of t)(!r||r(n))&&(a.push(e),i.push(n));let o=[];for(let[e,t]of n??[])(!r||t.some(r))&&(o.push(e),i.push(...t));for(let e of a)t.delete(e);for(let e of o)n.delete(e);for(let e of i){let t=e._flight;e._flight=void 0,t&&!--t[2]&&(this._flights?.get(e.id)===t&&this._flights.delete(e.id),o.push(t[1]))}for(let e of o)e.abort()},this.loadRouteChunk=br,this.preloadRoute=e=>ci(this,e),this.matchRoute=(e,t)=>{let n={...e,to:e.to?zt(e.from||``,e.to,this.options.trailingSlash,this.resolvePathCache):void 0,params:e.params||{},leaveParams:!0},r=this.buildLocation(n),i=this.stores.status.get()===`pending`;if(t?.pending&&!i)return!1;let a=t?.pending??!i?this.latestLocation:this.stores.resolvedLocation.get()||this.stores.location.get(),o=En(r.pathname,t?.caseSensitive??!1,t?.fuzzy??!1,a.pathname,this.processedTree);return!o||e.params&&!xt(o.rawParams,e.params,!0)?!1:t?.includeSearch??!0?xt(a.search,r.search,!0)?o.rawParams:!1:o.rawParams},this.getStoreConfig=t,e.pathParamsAllowedCharacters?.length&&(this.pathParamsDecoder=Bt(e.pathParamsAllowedCharacters)),this.update({defaultPreloadDelay:50,defaultPendingMs:1e3,defaultPendingMinMs:500,context:void 0,...e,caseSensitive:e.caseSensitive??!1,notFoundMode:e.notFoundMode??`fuzzy`,stringifySearch:e.stringifySearch??un,parseSearch:e.parseSearch??ln,protocolAllowlist:e.protocolAllowlist??Et}),self.__TSR_ROUTER__=this}isShell(){return!!this.options.isShell}get state(){return this.stores.__store.get()}setRoutes(e){Object.assign(this,e),this.lightweightCache=new WeakMap,this.staticLocations=new WeakMap;let t=this.options.notFoundRoute;t&&(t.init(99999999999),this.routesById[t.id]!==t&&(t._interpolation=xn(!1,t,0)),this.routesById[t.id]=t)}matchRoutesInternal(e,t){let[n,r,i]=this.getMatchedRoutes(e.pathname),a=n,o=!1;(i?i.path!==`/`&&r[`**`]:It(e.pathname))&&(this.options.notFoundRoute?a=[...a,this.options.notFoundRoute]:o=!0);let s=o?gr(this.options.notFoundMode,a):void 0,c=Array(a.length),l=this._committed,u=(e,t)=>{let n=l[t];return n?.routeId===e.id?n:e===this.options.notFoundRoute?l.find(t=>t.routeId===e.id):void 0},d;for(let n=0;ntypeof t!=`string`&&!ht.call(e,t[1]))}var pr=Object.freeze({});function mr(e,t){let n=[];for(let r=0;r{let n=t(i.preSearchFilters?i.preSearchFilters.reduce((e,t)=>t(e),e):e);return i.postSearchFilters?i.postSearchFilters.reduce((e,t)=>t(e),n):n});let a=i.validateSearch;t&&a&&n.push(({search:e,next:t,meta:n})=>{let r=t(e);try{let e=ur(a,r);if(n&&e)for(let t in e)t in r||(n.defaulted||=new Map).set(t,e[t]);return{...r,...e}}catch{}return r})}return n}function hr(e,t,n){let r=(t,i,a)=>{if(t>=e.length){if(!n.search)return{};if(n.search===!0)return i;let e=mt(n.search,i);return a&&(a.explicit=e),e}return e[t]({search:i,next:(e,n)=>{if(n){let n=a||{};return{search:r(t+1,e,n),meta:n}}return r(t+1,e,a)},meta:a})};return r(0,t)}function gr(e,t){if(e!==`root`){let e;for(let n=t.length-1;n>=0;n--){let r=t[n];if(r.options.notFoundComponent)return r.id;e||=r.children&&r.id}if(e)return e}return pn}function _r(e,t){let n=e.options.params?.parse??e.options.parseParams;n&&Object.assign(t,n(t))}function vr(e,t){return e.options[t]?.preload?.()}function yr(e,t){let n=vr(e,`component`),r=vr(e,`pendingComponent`);return t&&(r?r=r.then(t):t()),n&&r?Promise.all([n,r]).then(()=>{}):n??r}function br(e,t,n){let r=()=>t===!1?void 0:t?vr(e,t):yr(e,n),i=e._lazy;if(i)return i===!0?r():i.then(r);if(!e.lazyFn)return r();let a=e.lazyFn().then(t=>{{let{id:n,...r}=t.options;Object.assign(e.options,r),e._lazy=!0}},t=>{throw e._lazy=void 0,t});return e._lazy=a,a.then(r)}function xr(e){let t=e.findIndex(e=>e.status!==`success`||e._notFound)+1;return t&&t{let i=()=>r(t);t.addEventListener(`abort`,i,{once:!0}),Promise.resolve(e).then(n,r).then(()=>t.removeEventListener(`abort`,i))})}function kr(e,t){return e.routesById[t.routeId]}function Ar(e,t,n){return hn(e)?[Tr,e]:Wt(e)?(e.routeId||=n,[wr,e]):t?(typeof e?.then==`function`&&(e=Error(`A Promise was thrown`,{cause:e})),[Cr,e]):[Sr,e]}function jr(e,t){let n=Ar(t,!0,e.id);if(n[0]!==Cr)return n;try{e.options.onError?.(n[1])}catch(t){n=Ar(t,!0,e.id)}return n}function Mr(e,t,n,r,i){return i[0].signal.aborted?Er:Jr(e,t,n,jr(n,r),i)}async function Nr(e,t,n,r,i,a){let[o,s]=t,c=n[0].signal,l=!!n[3];for(let i=n[6]??0;ie.navigate({...t,_fromLocation:o}),buildLocation:e.buildLocation,cause:l?`preload`:r.cause,abortController:n[0],preload:l,matches:s,routeId:u.id};try{let e=r._ctx||=u.options.context?u.options.context({...f,deps:r.loaderDeps,context:d})||{}:void 0;r.context={...d,...e}}catch(a){return Fr(e,r),[i,Mr(e,t,u,a,n)]}if(c.aborted)return[i,Er];let p=r.paramsError??r.searchError;if(p!==void 0)return Fr(e,r),[i,Mr(e,t,u,p,n)];let m=u.options.beforeLoad;if(!m)continue;let h=r.status;i>=a&&(r.status=`pending`,n[7]?.());try{Rr(e,r,`beforeLoad`,n[0]);let a=m({...f,search:r.search,context:r.context,...e.options.additionalContext}),o=await(typeof a?.then==`function`?Or(a,c):a);if(c.aborted)return[i,Er];let s=Jr(e,t,u,Ar(o,!1,u.id),n);if(s[0]!==Sr)return Fr(e,r),[i,s];r.context={...r.context,...o}}catch(a){return Fr(e,r),[i,Mr(e,t,u,a,n)]}finally{r.status=h,Rr(e,r,!1,n[0])}}i()}function Pr(e,t,n){if(!(!n||--n[2])){if(e._flights?.get(t.id)===n){let n=e._tx;if(n&&!n[0].signal.aborted&&!n[3].includes(t)&&n[3].some(e=>e.id===t.id)&&n[3].some(e=>e.isFetching===`beforeLoad`))return;e._flights.delete(t.id)}return n[1]}}function Fr(e,t){let n=t._flight;t._flight=void 0,Pr(e,t,n)?.abort()}function Ir(e,t,n,r){let i=[];for(let a of t)if(!n?.includes(a)){let t=a._flight;if(a._flight=void 0,r&&t?.[2]===1&&e._flights?.get(a.id)===t&&n?.some(e=>e.id===a.id))t[2]=0;else{let n=Pr(e,a,t);n&&i.push(n)}}for(let e of i)e.abort()}function Lr(e){for(let t of e){let e=t._flight;e&&e[2]++}}function Rr(e,t,n,r){if(t.isFetching=n,r&&e._tx?.[0]!==r)return;let i=e.stores.byRoute.get(t.routeId),a=i?.get();a?.id===t.id&&i.set({...a,isFetching:n})}function zr(e,t,n,r,i,a,o){let s=t[0];return{params:n.params,location:s,navigate:t=>e.navigate({...t,_fromLocation:s}),cause:o?`preload`:n.cause,abortController:i,preload:o,deps:n.loaderDeps,parentMatchPromise:a,context:n.context,route:r,...e.options.additionalContext}}async function Br(e,t,n,r,i,a,o){let s=o[0],c=s.signal;if(c.aborted)return Er;if(!i)return[Sr,void 0];let l=n._flight;Rr(e,n,`loader`,s);try{if(!l){let s=new AbortController;l=[Promise.resolve().then(()=>i(zr(e,t,n,r,s,a,!!o[3]))).then(e=>Ar(e,!1,r.id),e=>Ar(e,!0,r.id)).then(t=>(t[0]!==Sr&&e._flights?.get(n.id)===l&&(e._flights.delete(n.id),l[2]||s.abort()),t[0]===Cr&&l[2]?jr(r,t[1]):t)),s,1],(e._flights??=new Map).set(n.id,l)}return n._flight=l,n.abortController=l[1],Jr(e,t,r,await Or(l[0],c),o)}catch(t){if(t!==c||!c.aborted)throw t;return Fr(e,n),Er}finally{Rr(e,n,!1,s)}}function Vr(e,t,n){t[0]!==Tr&&(e.status=`success`,e.error=void 0,t[0]===Sr?(e.loaderData=t[1],e.invalid=!1,e.updatedAt=Date.now(),e.preload=n):e.invalid=!0)}function Hr(e,t,n){let r=e._cache.get(t.id);if(r!==n||e._committed.some(e=>e.id===t.id&&e._flight===t._flight))return;let i={...t,_notFound:void 0,context:{}};i._flight&&i._flight[2]++,e._cache.set(t.id,i),r&&Fr(e,r)}function Ur(e,t){return t[0]===Cr||t[0]===wr?{...e,status:t[0]===Cr?`error`:`notFound`,error:t[1],_flight:void 0}:e}function Wr(e,t,n,r,i,a,o){let s=t[1][n],c=kr(e,s),l=!!a[3],u=e._cache.get(s.id),d,f=!1,p;try{if(s.status===`success`&&(d=c.options.shouldReload,typeof d==`function`&&(d=d(zr(e,t,s,c,a[0],i,l))),a[0].signal.aborted&&(p=Er)),!p){if(s.status!==`success`)f=!0;else{let t=l||s.preload?c.options.preloadStaleTime??e.options.defaultPreloadStaleTime??3e4:c.options.staleTime??e.options.defaultStaleTime??0;f=!!(s.invalid||d||d===void 0&&Date.now()-s.updatedAt>=t&&(a[5]||s.cause===`enter`||a[2].some(e=>e.routeId===s.routeId&&e.id!==s.id)))}}}catch(n){s.invalid=!0,Fr(e,s),p=Mr(e,t,c,n,a)}let m=c.options.loader,h=typeof m==`function`,g=h?m:m?.handler,_=!l||c.options.preload!==!1,v=_&&m?e._flights?.get(s.id):void 0;v===s._flight||p?v=void 0:v&&!f&&!l&&d===void 0?f=!0:f||(v=void 0);let y=!(!m||!f||s.status!==`success`||l||a[4]||((h?void 0:m.staleReloadMode)??e.options.defaultStaleReloadMode)===`blocking`),b=f&&_,x=b&&!y&&(s.status!==`success`||!!m),S=n>=o?a[7]:void 0,C=c.lazyFn&&c._lazy!==!0?S:void 0;if(b&&!m&&(s.invalid=!1,s.updatedAt=Date.now()),v&&v[2]++,x){let t=s._flight;s._flight=v,Pr(e,s,t)?.abort(),n>=o&&(s.status=`pending`),S?.()}b||(s.isFetching=!1);let w=!p&&x?Br(e,t,s,c,g,i,a).then(t=>(Vr(s,t,l),t[0]===Sr&&(m&&!a[0].signal.aborted&&Hr(e,s,u),n>=o&&(s.status=`pending`)),t)):Promise.resolve(p??[Sr,s.loaderData]),T=(async()=>{try{let e=br(c,void 0,C);e&&await Or(e,a[0].signal)}catch(r){if(!t[1].some((e,t)=>t<=n&&(e.status===`error`||e.status===`notFound`||e._notFound)))return[n,Mr(e,t,c,r,a)]}let r=await w;x&&r[0]===Sr&&s.status===`pending`&&!a[0].signal.aborted&&(s.status=`success`,S?.())})();if(r.push([n,w,T]),!y)return w.then(e=>Ur(s,e));let ee={...s,status:`pending`,preload:!1,_flight:v};s.invalid=!1,s.isFetching=`loader`;let E=Br(e,t,ee,c,g,i,a).then(e=>(s.isFetching=!1,Vr(ee,e,!1),e));return(t[2]??=[]).push([n,E,T,ee]),E.then(e=>Ur(ee,e))}async function Gr(e,t,n,r,i=0){let a=n?.[1][1],o=a?.routeId?t.findIndex(e=>e.routeId===a.routeId):n?.[0]??t.length-1;o<0&&(o=0);for(let n=o;n>=0;n--){let i=kr(e,t[n]);try{let e=br(i,!1);e&&await Or(e,r)}catch(e){if(e===r&&r.aborted)throw e}if(i.options.notFoundComponent)return n}return a?.routeId?o:i}function Kr(e,t){t[2]&&=(Ir(e,t[2].map(e=>e[3])),void 0)}async function qr(e,t,n,r){let i;try{await Promise.all(e.map(e=>e[1].then(async t=>{let a=e[0];if(!(r&&a>=await r)){if(t[0]>=Tr)throw[a,t];!i&&t[0]!==Sr&&(i=[a,t],await Promise.all((n??[]).map(e=>{if(!(e[0]<=a))return e[1].then(t=>{if(t[0]===Tr)throw[e[0],t]})})))}})))}catch(e){return e}return t??i}function Jr(e,t,n,r,i,a){for(;r[0]===Tr;){let o=r[1],s=o.options;try{if((s.href||o.headers.has(`Location`))&&(e.resolveRedirect(o),s.reloadDocument)||(s.reloadDocument?i[3]:i[1]>=20))return r;let n=e.buildLocation({...s,_fromLocation:t[0],_includeValidateSearch:!0}),a=n.maskedLocation??n;if(a.external){let t=o.clone();return t.options={...s},t.headers.set(`Location`,a.publicHref),e.resolveRedirect(t),i[3]?[Tr,t]:[Tr,t,a]}return[Tr,o,n]}catch(e){r=a?[Cr,e]:jr(n,e),a=!0}}return r}async function Yr(e,t,n,r,i,a){let o=t[1],s=await i,c=!1,l=o.findIndex(e=>e._notFound),u=t=>t[1][0]===wr?Gr(e,o,t,r.signal):t[0],d=l<0?o.length:l;if((s?.[1][0]??0)>=Tr)d=0;else if(s){d=s[2]??=await u(s);for(let e of n){if(e[0]>=d)break;let t=await e[1];if(t[0]!==Sr&&t[0]=d)break;let t=await e[2];if(t){s=t;break}}if((s?.[1][0]??0)>=Tr){let n=s[1];if(n[0]!==Tr||n[1].options.reloadDocument||n[2])return Kr(e,t),n;c=!0,s=[0,[Cr,Error(`Too many redirects`)]]}let f=s?s[2]??await u(s):l;if(f>=0){let i=s?.[1],l=i?.[0],u=o[f],d=i?.[1],p=()=>{i&&(u._notFound=void 0,l===Cr?u.status=`error`:(d.routeId=u.routeId,u.routeId===e.routeTree.id?(u.status=`success`,u._notFound=!0):u.status=`notFound`),u.error=d,u.isFetching=!1)};p(),i||a?.();let m=kr(e,u);try{await Or(i?Promise.resolve().then(()=>br(m,l===Cr?`errorComponent`:`notFoundComponent`)):Promise.all([br(m),br(m,`notFoundComponent`)]),r.signal)}catch(n){if(n===r.signal&&r.signal.aborted)return Kr(e,t),Er}i?c&&(r.abort(),await Promise.all([...n.map(e=>e[1]),...n.map(e=>e[2]),...(t[2]??[]).map(e=>e[1])]),Kr(e,t),Ir(e,o),p()):u.status=`success`}return t}async function Xr(e,t,n,r=0,i=t[1].length){let a=t[1];for(let t=r;te._notFound);if(e.options.notFoundMode!==`root`&&s>=0){let t=await Gr(e,n,void 0,a,s);n[s]._notFound=void 0,n[t]._notFound=!0,s=t}let c=s<0?n.length:s+1,l=0;for(;l{for(let t=d;t=Tr&&(c=0);p()}if(!a.aborted&&!r[3]){let t=[];for(let[n,r]of e._flights??[])r[2]||(e._flights.delete(n),t.push(r[1]));for(let e of t)e.abort()}let h=Yr(e,i,u,r[0],qr(u,m,i[2]),r[7]);i[2]?.length&&(i[3]=qr(i[2],void 0,void 0,h.then(e=>Dr(e)?0:xr(n).length,()=>0))),o=await h}catch(t){if(Kr(e,i),t===a&&a.aborted)return Er;throw t}return Dr(o)?o:Xr(e,o,a,r[6]===n.length?r[6]:0)}function Qr(e,t){if(e._tx!==t)return;let n=t[3],r=e.stores.matches.get(),i=e._pending;for(let a=0;a0){i[3]=setTimeout(()=>Qr(e,t),n);return}i[2]=0}let m=n.map(e=>({...e,_flight:void 0}));m[a].status=`pending`;let h=i[4]=e.startTransition(()=>e.stores.setMatches(m),m).then(t=>(t&&e._pending===i&&i[4]===h&&!i[2]&&(i[2]=Date.now()+f),t));return}}function $r(e,t){let n=e._pending;(e._tx===t||!e._tx?.[3].some(e=>e.id===n?.[1]))&&(clearTimeout(n?.[3]),e._pending=void 0)}async function ei(e,t){let n=e._pending;if(!n)return;clearTimeout(n[3]);let r=n[2]-Date.now();if(!n[4]||r<=0||!xr(t[3]).some(e=>e.id===n[1]))return;let i;try{await Or(new Promise(e=>{i=setTimeout(e,r)}),t[0].signal)}catch{}clearTimeout(i)}function ti(e,t){e._committed=t,e.stores.setMatches(t)}function ni(e,t,n,r){let i=e._committed,a=e._lifecycleEnd,o=e._cache;for(let e of n)e.preload=!1,r&&(e._assetEnd=void 0);let s=xr(n).length,c=new Map;{let t=Date.now(),r=new Set;for(let e=0;e=(n.preload?i.options.preloadGcTime??e.options.defaultPreloadGcTime??3e5:i.options.gcTime??e.options.defaultGcTime??3e5)||c.set(n.id,o.get(n.id)===n?n:{...n,_flight:void 0,isFetching:!1,context:{}})}}t[3]=[],e._cache=c;let l=e._lifecycleEnd=ir(n);ti(e,n),Ir(e,[...o.values(),...i].filter(e=>e._flight&&c.get(e.id)!==e),n),ar(e,i,n,a,l,t)}async function ri(e,t){let n=e._tx;for(;n&&n!==t;)t=n,await n[5],n=e._tx}function ii(e,t,n){let r=n[1].options,i=n[2];if(!i)return e.navigate({...r,replace:!0,ignoreBlocker:!0});if(r.reloadDocument)return e.navigate({href:(i.maskedLocation??i).publicHref,reloadDocument:!0,replace:!0,ignoreBlocker:!0});i._redirects=t[1]+1,e._pendingLocation=i;let a=e.commitLocation({...i,viewTransition:r.viewTransition,replace:!0,resetScroll:r.resetScroll,hashScrollIntoView:r.hashScrollIntoView,ignoreBlocker:!0});return queueMicrotask(()=>{e._pendingLocation===i&&(e._pendingLocation=void 0)}),a}async function ai(e,t,n,r,i){let a=n.map(e=>({...e}));Lr(a);for(let t of r)Fr(e,a[t[0]]),a[t[0]]=t[3];let o=[t[2],a],s;try{s=await Yr(e,o,r,t[0],i)}catch(t){throw Ir(e,a),t}if(Dr(s)){Ir(e,a),s[0]===Tr&&e._tx===t&&e._committed===n&&await ii(e,t,s);return}if(await Xr(e,s,t[0].signal),e._tx!==t||e._committed!==n){Ir(e,a);return}for(let t of a){let n=e._cache.get(t.id);n?._flight&&n._flight===t._flight&&(e._cache.delete(t.id),Fr(e,n))}ti(e,a),Ir(e,n,a)}async function oi(e,t,n,r,i,a){let o=await Zr(e,t[2],t[3],[t[0],t[1],e._committed,void 0,i,n,a,r]);if(Dr(o)){let n=o[0]===Tr&&e._tx===t;if((!n||o[1].options.reloadDocument)&&$r(e,t),Ir(e,t[3]),t[3]=[],!n)return;if(e._tx!==t){$r(e,t);return}await ii(e,t,o);return}let s=o[1];if(e._tx===t&&await ei(e,t),e._tx!==t){$r(e,t),Ir(e,s),Kr(e,o);return}let c=t[2],l=nr(c,e.stores.resolvedLocation.get()),u=o[2];await e.startViewTransition(async()=>{if(e._tx===t&&await ei(e,t),e._tx!==t){$r(e,t),Ir(e,s),Kr(e,o);return}let n=await e.startTransition(()=>{$r(e,t),ni(e,t,s,a),e._tx===t&&(e.emit({type:`onLoad`,...l}),e._tx===t&&e.emit({type:`onBeforeRouteMount`,...l}))},s);if(e._tx!==t){Kr(e,o);return}u?.length&&ai(e,t,s,u,o[3]).catch(console.error),e.batch(()=>{e.stores.resolvedLocation.set(c),e.stores.status.set(`idle`),e._tx===t&&e.emit({type:`onResolved`,...l}),n&&e._tx===t&&e.emit({type:`onRendered`,...l})}),e._tx===t&&(e._commitPromise?.resolve(),e._commitPromise=void 0)})}async function si(e,t){let n=e._tx,r=e.stores.resolvedLocation.get(),i=r??e.stores.location.get(),a=e.latestLocation,o=e._pendingLocation,s=o?.href===a.href?o._redirects??0:0,c=e._handoff,l=c?.[0](),u=new AbortController,d=e._preflight;if(e._preflight=u,l||c?.[1](),d?.abort(),!u.signal.aborted){let t=nr(a,r);e.emit({type:`onBeforeNavigate`,...t}),u.signal.aborted||e.emit({type:`onBeforeLoad`,...t})}if(u.signal.aborted){await ri(e,n);return}let f=i.href===a.href,p=u,m=e.matchRoutes(a,{_controller:u});Lr(m);let h=l?c[1](m):void 0;if(h?p=l:l?.abort(),u.signal.aborted){Ir(e,m),await ri(e,n);return}e._preflight=void 0;let g,_=()=>oi(e,y,f,()=>Qr(e,y),t?.sync,h),v=t?.sync?new Promise(e=>g=e):Promise.resolve().then(_),y=[p,s,a,m,Date.now(),v.then(()=>ri(e,y))];if(e._tx=y,n){for(let t of e.stores.matches.get()){if(e._tx!==y)break;t.isFetching&&Rr(e,t,!1)}n[0].abort(),Ir(e,n[3],y[3],!0)}if(e._tx!==y){Ir(e,y[3]),y[3]=[],g?.(),await ri(e,y);return}e.batch(()=>{e.stores.status.set(`pending`),e.stores.location.set(a)}),(h||!e._committed.length&&m[0]?.status!==`success`&&!m.some(e=>e._notFound))&&Qr(e,y),g?.(_()),await y[5]}async function ci(e,t){let n=e.buildLocation(t);for(let t=0;;t++){let r=e._committed,i=new AbortController,a,o,s;try{try{a=e.matchRoutes(n,{_controller:i}),Lr(a),o=(e._preloads??=new Map).set(i,a),s=await Zr(e,n,a,[i,t,r,!0])}finally{o&&(o=o.delete(i),Ir(e,a)),i.abort()}if(!Dr(s))return s[1];if(!o||s.length<3)return;n=s[2]}catch(e){Wt(e)||console.error(e);return}}}var li=`Error preloading route! ☝️`,ui=class{get to(){return this._to}get id(){return this._id}get path(){return this._path}get fullPath(){return this._fullPath}constructor(e){if(this.init=e=>{this.originalIndex=e,this._branch=void 0;let t=this.options,n=!t?.path&&!t?.id;this.parentRoute=this.options.getParentRoute?.(),n?this._path=pn:this.parentRoute||Nt();let r=n?pn:t?.path;r&&r!==`/`&&(r=Ft(r));let i=t?.id||r,a=n?pn:Pt((this.parentRoute.id===`__root__`?``:this.parentRoute.id)+`/`+(i??``));r===`__root__`&&(r=`/`);let o=a===`__root__`?`/`:r===void 0?this.parentRoute.fullPath:Pt(this.parentRoute.fullPath+`/`+r);this._path=r,this._id=a,this._fullPath=o,this._to=It(o)},this.addChildren=e=>this._addFileChildren(e),this._addFileChildren=e=>(Array.isArray(e)&&(this.children=e),typeof e==`object`&&e&&(this.children=Object.values(e)),this),this._addFileTypes=()=>this,this.updateLoader=e=>(Object.assign(this.options,e),this),this.update=e=>(Object.assign(this.options,e),this),this.lazy=e=>(this.lazyFn=e,this),this.redirect=e=>mn({from:this.fullPath,...e}),this.options=e||{},this.isRoot=!e?.getParentRoute,e?.id&&e?.path)throw Error(`Route cannot have both an 'id' and a 'path' option.`)}},di=class extends ui{constructor(e){super(e)}},fi=class extends m.Component{constructor(...e){super(...e),this.state={error:0},this.reset=()=>{this.setState({error:0})}}static getDerivedStateFromProps(e,t){let n=e.getResetKey();return t.error&&t.resetKey!==n?{resetKey:n,error:0}:{resetKey:n}}static getDerivedStateFromError(e){return{error:[e]}}componentDidCatch(e,t){this.props.onCatch?.(e,t)}render(){let e=this.state.error;return e?m.createElement(this.props.errorComponent??pi,{error:e[0],reset:this.reset}):this.props.children}};function pi({error:e}){let[t,n]=m.useState(!1);return(0,h.jsxs)(`div`,{style:{padding:`.5rem`,maxWidth:`100%`},children:[(0,h.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`.5rem`},children:[(0,h.jsx)(`strong`,{style:{fontSize:`1rem`},children:`Something went wrong!`}),(0,h.jsx)(`button`,{style:{appearance:`none`,fontSize:`.6em`,border:`1px solid currentColor`,padding:`.1rem .2rem`,fontWeight:`bold`,borderRadius:`.25rem`},onClick:()=>n(e=>!e),children:t?`Hide Error`:`Show Error`})]}),(0,h.jsx)(`div`,{style:{height:`.25rem`}}),t?(0,h.jsx)(`div`,{children:(0,h.jsx)(`pre`,{style:{fontSize:`.7em`,border:`1px solid red`,borderRadius:`.25rem`,padding:`.3rem`,color:`red`,overflow:`auto`},children:e?.message?(0,h.jsx)(`code`,{children:e.message}):null})}):null]})}var mi=()=>!0,hi=()=>!1;function gi({children:e,fallback:t=null}){return(0,h.jsx)(m.Fragment,{children:_i()?e:t})}function _i(e=!0){return m.useSyncExternalStore(vi,mi,e?hi:mi)}function vi(){return()=>{}}var yi=m.createContext(null);function bi(e){return m.useContext(yi)}var xi=m.createContext(void 0),Si=m.createContext(void 0);function Ci({update:e,notify:t,unwatched:n}){return{link:r,unlink:i,propagate:a,checkDirty:o,shallowPropagate:s};function r(e,t,n){let r=t.depsTail;if(r!==void 0&&r.dep===e)return;let i=r===void 0?t.deps:r.nextDep;if(i!==void 0&&i.dep===e){i.version=n,t.depsTail=i;return}let a=e.subsTail;if(a!==void 0&&a.version===n&&a.sub===t)return;let o=t.depsTail=e.subsTail={version:n,dep:e,sub:t,prevDep:r,nextDep:i,prevSub:a,nextSub:void 0};i!==void 0&&(i.prevDep=o),r===void 0?t.deps=o:r.nextDep=o,a===void 0?e.subs=o:a.nextSub=o}function i(e,t=e.sub){let r=e.dep,i=e.prevDep,a=e.nextDep,o=e.nextSub,s=e.prevSub;return a===void 0?t.depsTail=i:a.prevDep=i,i===void 0?t.deps=a:i.nextDep=a,o===void 0?r.subsTail=s:o.prevSub=s,s===void 0?(r.subs=o)===void 0&&n(r):s.nextSub=o,a}function a(e){let n=e.nextSub,r;top:do{let i=e.sub,a=i.flags;if(a&60?a&12?a&4?!(a&48)&&c(e,i)?(i.flags=a|40,a&=1):a=0:i.flags=a&-9|32:a=0:i.flags=a|32,a&2&&t(i),a&1){let t=i.subs;if(t!==void 0){let i=(e=t).nextSub;i!==void 0&&(r={value:n,prev:r},n=i);continue}}if((e=n)!==void 0){n=e.nextSub;continue}for(;r!==void 0;)if(e=r.value,r=r.prev,e!==void 0){n=e.nextSub;continue top}break}while(1)}function o(t,n){let r,i=0,a=!1;top:do{let o=t.dep,c=o.flags;if(n.flags&16)a=!0;else if((c&17)==17){if(e(o)){let e=o.subs;e.nextSub!==void 0&&s(e),a=!0}}else if((c&33)==33){(t.nextSub!==void 0||t.prevSub!==void 0)&&(r={value:t,prev:r}),t=o.deps,n=o,++i;continue}if(!a){let e=t.nextDep;if(e!==void 0){t=e;continue}}for(;i--;){let i=n.subs,o=i.nextSub!==void 0;if(o?(t=r.value,r=r.prev):t=i,a){if(e(n)){o&&s(i),n=t.sub;continue}a=!1}else n.flags&=-33;n=t.sub;let c=t.nextDep;if(c!==void 0){t=c;continue top}}return a}while(1)}function s(e){do{let n=e.sub,r=n.flags;(r&48)==32&&(n.flags=r|16,(r&6)==2&&t(n))}while((e=e.nextSub)!==void 0)}function c(e,t){let n=t.depsTail;for(;n!==void 0;){if(n===e)return!0;n=n.prevDep}return!1}}function wi(e,t,n){let r=typeof e==`object`,i=r?e:void 0;return{next:(r?e.next:e)?.bind(i),error:(r?e.error:t)?.bind(i),complete:(r?e.complete:n)?.bind(i)}}var Ti=[],Ei=0,{link:Di,unlink:Oi,propagate:ki,checkDirty:Ai,shallowPropagate:ji}=Ci({update(e){return e._update()},notify(e){Ti[Ni++]=e,e.flags&=-3},unwatched(e){e.depsTail!==void 0&&(e.depsTail=void 0,e.flags=17,Li(e))}}),Mi=0,Ni=0,Pi,Fi=0;function Ii(e){try{++Fi,e()}finally{--Fi||Ri()}}function Li(e){let t=e.depsTail,n=t===void 0?e.deps:t.nextDep;for(;n!==void 0;)n=Oi(n,e)}function Ri(){if(!(Fi>0)){for(;Mi{i.get(),n.current?t.next?.(i._snapshot):n.current=!0});return{unsubscribe:()=>{r.stop()}}},_update(e){let a=Pi,o=t?.compare??Object.is;if(n)Pi=i,++Ei,i.depsTail=void 0;else if(e===void 0)return!1;n&&(i.flags=5);try{let t=i._snapshot,a=typeof e==`function`?e(t):e===void 0&&n?r(t):e;return t===void 0||!o(t,a)?(i._snapshot=a,!0):!1}finally{Pi=a,n&&(i.flags&=-5),Li(i)}}};return n?(i.flags=17,i.get=function(){let e=i.flags;if(e&16||e&32&&Ai(i.deps,i)){if(i._update()){let e=i.subs;e!==void 0&&ji(e)}}else e&32&&(i.flags=e&-33);return Pi!==void 0&&Di(i,Pi,Ei),i._snapshot}):i.set=function(e){if(i._update(e)){let e=i.subs;e!==void 0&&(ki(e),ji(e),Ri())}},i}function Bi(e){let t=()=>{let t=Pi;Pi=n,++Ei,n.depsTail=void 0,n.flags=6;try{return e()}finally{Pi=t,n.flags&=-5,Li(n)}},n={deps:void 0,depsTail:void 0,subs:void 0,subsTail:void 0,flags:6,notify(){let e=this.flags;e&16||e&32&&Ai(this.deps,this)?t():this.flags=2},stop(){this.flags=0,this.depsTail=void 0,Li(this)}};return t(),n}var Vi=n((e=>{var t=l();function n(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var r=typeof Object.is==`function`?Object.is:n,i=t.useState,a=t.useEffect,o=t.useLayoutEffect,s=t.useDebugValue;function c(e,t){var n=t(),r=i({inst:{value:n,getSnapshot:t}}),c=r[0].inst,l=r[1];return o(function(){c.value=n,c.getSnapshot=t,u(c)&&l({inst:c})},[e,n,t]),a(function(){return u(c)&&l({inst:c}),e(function(){u(c)&&l({inst:c})})},[e]),s(n),n}function u(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!r(e,n)}catch{return!0}}function d(e,t){return t()}var f=typeof window>`u`||window.document===void 0||window.document.createElement===void 0?d:c;e.useSyncExternalStore=t.useSyncExternalStore===void 0?f:t.useSyncExternalStore})),Hi=n(((e,t)=>{t.exports=Vi()})),Ui=n((e=>{var t=l(),n=Hi();function r(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var i=typeof Object.is==`function`?Object.is:r,a=n.useSyncExternalStore,o=t.useRef,s=t.useEffect,c=t.useMemo,u=t.useDebugValue;e.useSyncExternalStoreWithSelector=function(e,t,n,r,l){var d=o(null);if(d.current===null){var f={hasValue:!1,value:null};d.current=f}else f=d.current;d=c(function(){function e(e){if(!a){if(a=!0,o=e,e=r(e),l!==void 0&&f.hasValue){var t=f.value;if(l(t,e))return s=t}return s=e}if(t=s,i(o,e))return t;var n=r(e);return l!==void 0&&l(t,n)?(o=e,t):(o=e,s=n)}var a=!1,o,s,c=n===void 0?null:n;return[function(){return e(t())},c===null?void 0:function(){return e(c())}]},[t,n,r,l]);var p=a(e,d[0],d[1]);return s(function(){f.hasValue=!0,f.value=p},[p]),u(p),p}})),Wi=n(((e,t)=>{t.exports=Ui()}))();function Gi(e,t){return e===t}function Ki(e,t=e=>e,n){let r=n?.compare??Gi,i=(0,m.useCallback)(t=>{let{unsubscribe:n}=e.subscribe(t);return n},[e]),a=(0,m.useCallback)(()=>e.get(),[e]);return(0,Wi.useSyncExternalStoreWithSelector)(i,a,a,t,r)}var qi={};function Ji(e,t){let n=m.useRef();return r=>{let i=e?.select?e.select(r):r;return e?.structuralSharing??t.options.defaultStructuralSharing?n.current=yt(n.current,i):i}}function Yi(e){let t=bi(),n=m.useContext(e.from?Si:xi),r=e.from??n,i=t.stores.getMatchStore(r),a=Ji(e,t),o=Ki(i,e=>e?a(e):qi);if(o!==qi)return o;(e.shouldThrow??!0)&&Nt()}function Xi(e){return Yi({from:e.from,strict:e.strict,structuralSharing:e.structuralSharing,select:t=>e.select?e.select(t.loaderData):t.loaderData})}function Zi(e){let{select:t,...n}=e;return Yi({...n,select:e=>t?t(e.loaderDeps):e.loaderDeps})}function Qi(e){return Yi({from:e.from,shouldThrow:e.shouldThrow,structuralSharing:e.structuralSharing,strict:e.strict,select:t=>{let n=e.strict===!1?t.params:t._strictParams;return e.select?e.select(n):n}})}function $i(e){return Yi({from:e.from,strict:e.strict,shouldThrow:e.shouldThrow,structuralSharing:e.structuralSharing,select:t=>e.select?e.select(t.search):t.search})}function ea(e){let t=bi();return m.useCallback(n=>t.navigate({...n,from:n.from??e?.from}),[e?.from,t])}function ta(e){let t=bi(),n=ea(),r=m.useRef(null);return ft(()=>{r.current!==e&&(n(e),r.current=e)},[t,e,n]),null}function na(e){return Yi({...e,select:t=>e.select?e.select(t.context):t.context})}function ra(...e){let t=m.useRef(e),n=t.current;return e.forEach((e,t)=>{xt(n[t],e,!1,!0)||(n[t]=e)}),t.current}function ia(e,t){e.preloadRoute(t).catch(e=>{console.warn(e),console.warn(li)})}var aa={compare:(e,t)=>e[0]===t[0]&&e[1]===t[1]};function oa(e,t){let n=typeof e==`string`&&Dt(e);if(n)return t.has(n)?e:null}function sa(e,t,n,r,i){let a=Rt(e.pathname,r),o=Rt(t.pathname,r);return(n?.exact?a!==o:!a.startsWith(o)||a.length!==o.length&&a[o.length]!==`/`)||(n?.includeSearch??!0)&&!xt(e.search,t.search,!n?.exact,n?.explicitUndefined)?!1:!n?.includeHash||i&&e.hash===t.hash}function ca(e,t,n){let r=bi(),i=m.useRef(null),a=m.useCallback(e=>{if(i.current=e,typeof t==`function`)return t(e);t&&(t.current=e)},[t]),{activeOptions:o,to:s,preload:c,preloadDelay:l,hashScrollIntoView:u,replace:d,startTransition:f,resetScroll:p,viewTransition:h,ignoreBlocker:g,disabled:_,target:v,onClick:y,onBlur:b,onFocus:x,onMouseEnter:S,onMouseLeave:C,onTouchStart:w}=e,T=_i(!!o?.includeHash),[ee,E,te]=ra(e.search,e.params,o),[D,ne]=m.useMemo(()=>[e,{...e}],[r,e.from,e._fromLocation,e.hash,e.to,ee,E,e.state,e.mask,e.unsafeRelative]),re=m.useCallback(e=>{let t=oa(s,r.protocolAllowlist);if(t!==void 0)return[t??void 0];D._fromLocation||(ne._fromLocation=e);let n=r.buildLocation(ne),i=ha(n,r,_);return[i,!_&&(!i||Dt(i))?void 0:sa(e,n,te,r.basepath,T)]},[te,_,T,D,ne,r,s]),[ie,ae]=Ki(r.stores.location,re,aa),oe=ae===void 0?ie:void 0,se=_||ie===void 0,ce=m.useRef(!1),le=e.reloadDocument||oe||se?!1:c??r.options.defaultPreload,ue=l??r.options.defaultPreloadDelay??0,de=m.useCallback(e=>{let t=e?.isIntersecting;if(!(t??le===`intent`)){t===!1&&pa(i);return}if(!ue){ia(r,D);return}fa.has(i)||fa.set(i,setTimeout(()=>{fa.delete(i),ia(r,D)},ue))},[r,D,i,le,ue]);m.useEffect(()=>{le===`render`&&!ce.current&&(ce.current=!0,ia(r,D));let e;return le===`viewport`&&i.current&&typeof IntersectionObserver==`function`&&(e=new IntersectionObserver(e=>de(e.pop()),{rootMargin:`100px`}),e.observe(i.current)),()=>{e?.disconnect(),pa(i)}},[r,D,le,de,i]);let fe=P(e,n);if(fe.ref=t?a:i,oe)return fe.href=oe,fe;let pe=e=>{let t=v??e.currentTarget.getAttribute(`target`);!se&&!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&(!t||t===`_self`)&&e.button===0&&(e.preventDefault(),r.navigate({...D,replace:d,resetScroll:p,hashScrollIntoView:u,startTransition:f,viewTransition:h,ignoreBlocker:g}))},me=()=>{le===`intent`&&ia(r,D)},he=()=>{le===`intent`&&pa(i)};return fe.onClick=ma(y,pe),fe.onBlur=ma(b,he),fe.onFocus=ma(x,de),fe.onMouseEnter=ma(S,de),fe.onMouseLeave=ma(C,he),fe.onTouchStart=ma(w,me),da(fe,e,ae,ie,se,n)}var la={},ua={className:`active`},N=new Set([`to`,`params`,`search`,`hash`,`state`,`mask`,`from`,`unsafeRelative`,`_fromLocation`,`reloadDocument`,`preload`,`preloadDelay`,`preloadIntentProximity`,`hashScrollIntoView`,`replace`,`startTransition`,`resetScroll`,`viewTransition`,`ignoreBlocker`,`activeProps`,`inactiveProps`,`activeOptions`,`_asChild`]);function P(e,t){let n={};for(let r in e)N.has(r)||r===`type`&&t!==void 0||r===`disabled`&&t===`a`||(n[r]=e[r]);return n}function da(e,t,n,r,i,a){let{activeProps:o,inactiveProps:s,className:c,style:l,target:u}=t,d=mt(n?o:s,{})??(n?ua:la);Object.assign(e,d),e.href=r,a!==`a`&&(e.disabled=i),e.target=u;let f=d.style;(l||f)&&(e.style=l&&f?{...l,...f}:l||f);let p=d.className;return(c||p)&&(e.className=c?p?`${c} ${p}`:c:p),i&&(e.role=`link`,e[`aria-disabled`]=!0),n&&(e[`data-status`]=`active`,e[`aria-current`]=`page`),e}var fa=new WeakMap,pa=e=>{clearTimeout(fa.get(e)),fa.delete(e)},ma=(e,t)=>e?n=>n.defaultPrevented||(e(n),n.defaultPrevented||t(n)):t;function ha(e,t,n){if(n)return;let r=e.maskedLocation??e,i=r.external?r.publicHref:t.history.createHref(r.publicHref)||`/`;if(!r.external&&i===r.publicHref||!kt(i,t.protocolAllowlist))return i}var ga=m.memo(m.forwardRef((e,t)=>{let n=e._asChild||`a`,r=ca(e,t,n),i=typeof e.children==`function`?e.children({isActive:r[`data-status`]===`active`}):e.children;return m.createElement(n,r,i)}),_a);function _a(e,t){let n=0;for(let r in t)if(n++,e[r]!==t[r]&&(!N.has(r)||!xt(e[r],t[r],!1,!0)))return!1;for(let t in e)n--;return n===0}var va=class extends ui{constructor(e){super(e),this.useMatch=e=>Yi({...e,from:this.id}),this.useRouteContext=e=>na({...e,from:this.id}),this.useSearch=e=>$i({...e,from:this.id}),this.useParams=e=>Qi({...e,from:this.id}),this.useLoaderDeps=e=>Zi({...e,from:this.id}),this.useLoaderData=e=>Xi({...e,from:this.id}),this.useNavigate=()=>ea({from:this.fullPath}),this.Link=m.forwardRef((e,t)=>(0,h.jsx)(ga,{ref:t,from:this.fullPath,...e}))}};function ya(e){return new va(e)}var ba=class extends di{constructor(e){super(e),this.useMatch=e=>Yi({...e,from:this.id}),this.useRouteContext=e=>na({...e,from:this.id}),this.useSearch=e=>$i({...e,from:this.id}),this.useParams=e=>Qi({...e,from:this.id}),this.useLoaderDeps=e=>Zi({...e,from:this.id}),this.useLoaderData=e=>Xi({...e,from:this.id}),this.useNavigate=()=>ea({from:this.fullPath}),this.Link=m.forwardRef((e,t)=>(0,h.jsx)(ga,{ref:t,from:this.fullPath,...e}))}};function xa(e){return new ba(e)}function Sa(e,t){let n,r,i,a=()=>(n||=(i=void 0,e().then(e=>{n=void 0,o.preload=void 0,r=e[t??`default`]}).catch(e=>{n=void 0,i=e})),n),o=function(e){if(i){if(St(i)&&typeof sessionStorage<`u`){let e=`tanstack_router_reload:${i.message}`;if(!sessionStorage.getItem(e))throw sessionStorage.setItem(e,`1`),window.location.reload(),new Promise(()=>{})}throw i}if(!r){if(dt)dt(a());else throw a()}return m.createElement(r,e)};return o.preload=a,o}function Ca(e){let t=bi(),n=`not-found-${Ki(t.stores.location,e=>e.pathname)}-${Ki(t.stores.status)}`;return(0,h.jsx)(fi,{getResetKey:()=>n,onCatch:(t,n)=>{if(Wt(t))e.onCatch?.(t,n);else throw t},errorComponent:({error:t})=>{if(Wt(t))return e.fallback?.(t);throw t},children:e.children})}function wa(){return(0,h.jsx)(`p`,{children:`Not Found`})}function Ta(e){return(0,h.jsx)(h.Fragment,{children:e.children})}function Ea(e,t,n){return t.options.notFoundComponent?(0,h.jsx)(t.options.notFoundComponent,{...n}):e.options.defaultNotFoundComponent?(0,h.jsx)(e.options.defaultNotFoundComponent,{...n}):(0,h.jsx)(wa,{})}function Da(e,t){let n=t?.options.pendingComponent??e.options.defaultPendingComponent;return n?(0,h.jsx)(n,{}):null}var Oa=(e,t)=>e[0]===t[0]&&e[1]===t[1],ka=(e,t,n)=>!t.isRoot||t.options.shellComponent||t.options.wrapInSuspense||n===!1||n===`data-only`||!e.ssr,Aa=m.memo(function({routeId:e}){let t=bi();return(0,h.jsx)(ja,{router:t,match:Ki(t.stores.getMatchStore(e))})});function ja({router:e,match:t}){let n=e.routesById[t.routeId],r=Da(e,n),i=n.options.errorComponent??e.options.defaultErrorComponent,a=n.options.onCatch??e.options.defaultOnCatch,o=n.isRoot?n.options.notFoundComponent??e.options.notFoundRoute?.options.component:n.options.notFoundComponent,s=t.ssr===!1||t.ssr===`data-only`,c=ka(e,n,t.ssr)&&(n.options.wrapInSuspense??r??(n.options.errorComponent?.preload||s))?m.Suspense:Ta,l=i?fi:Ta,u=o?Ca:Ta;return(0,h.jsxs)(n.isRoot?n.options.shellComponent??Ta:Ta,{children:[(0,h.jsx)(xi.Provider,{value:t.routeId,children:(0,h.jsx)(c,{fallback:r,children:(0,h.jsx)(l,{getResetKey:()=>t,errorComponent:i,onCatch:(e,n)=>{if(Wt(e))throw e.routeId??=t.routeId,e;a?.(e,n)},children:(0,h.jsx)(u,{fallback:e=>{if(e.routeId??=t.routeId,e.routeId!==t.routeId)throw e;return m.createElement(o,e)},children:s?(0,h.jsx)(gi,{fallback:r,children:(0,h.jsx)(Ma,{match:t})}):(0,h.jsx)(Ma,{match:t})})})})}),null]})}var Ma=m.memo(function({match:e}){let t=bi(),n=e.routeId,r=t.routesById[n],i=m.useMemo(()=>{let i=(r.options.remountDeps??t.options.defaultRemountDeps)?.({routeId:n,loaderDeps:e.loaderDeps,params:e._strictParams,search:e._strictSearch});return i?JSON.stringify(i):void 0},[n,e.loaderDeps,e._strictParams,e._strictSearch,r.options.remountDeps,t.options.defaultRemountDeps]),a=m.useMemo(()=>{let e=r.options.component??t.options.defaultComponent;return e?(0,h.jsx)(e,{},i):(0,h.jsx)(Na,{})},[i,r.options.component,t.options.defaultComponent]);if(e.status===`pending`){if(t.ssr&&!ka(t,r,e.ssr))return a;if(t._tx)throw t._tx[5];return Da(t,r)}if(e.status===`notFound`)return Ea(t,r,e.error);if(e.status===`error`)throw e.error;return a}),Na=m.memo(function(){let e=bi(),t=m.useContext(xi),n,r,i;{let a=e.stores.getMatchStore(t);[n,r]=Ki(a,e=>[!!e._notFound,e.error],{compare:Oa}),i=Ki(e.stores.ids,e=>e[e.indexOf(t)+1])}if(n)return Ea(e,e.routesById[t],r);if(!i)return null;let a=(0,h.jsx)(Aa,{routeId:i});return t===`__root__`?(0,h.jsx)(m.Suspense,{fallback:Da(e),children:a}):a});function Pa(e,t){let n=e[1];e.length=0,n?.(t)}function Fa({t:e}){let t=bi(),n=t._rendered??=[];return t.startTransition=(r,i)=>new Promise(a=>{Pa(n,!1),n.push(i,a),e(t),m.startTransition(r)}),ft(()=>{let e=t.history.subscribe(t.load);t.updateLatestLocation();let r=t.latestLocation,i=t.buildLocation({to:r.pathname,search:!0,params:!0,hash:!0,state:!0,_includeValidateSearch:!0});if(It(r.publicHref)!==It(i.publicHref))return t.commitLocation({...i,replace:!0,ignoreBlocker:!0}),e;let a=t.stores.resolvedLocation.get();return a?.href===r.href&&a.state.__TSR_key===r.state.__TSR_key?n.push(t.stores.matches.get(),e=>{e&&t.emit({type:`onRendered`,...nr(a,a)})}):t._tx||t.load({sync:!0}).catch(console.error),e},[t,t.history]),null}function Ia(){let e=bi(),t=e.routesById[pn],n=Da(e,t),r=e.ssr?Ta:m.Suspense,i=(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(Fa,{t:m.useState()[1]}),(0,h.jsx)(r,{fallback:n,children:(0,h.jsx)(La,{})})]});return e.options.InnerWrap?(0,h.jsx)(e.options.InnerWrap,{children:i}):i}function La(){let e=bi(),t=e._rendered,n=Ki(e.stores.matches,e=>t[0]??e),r=n[0],i=r?.routeId;ft(()=>{t[0]===n&&Pa(t,!0)},[t,n]);let a=i?(0,h.jsx)(Aa,{routeId:i}):null;return(0,h.jsx)(xi.Provider,{value:i,children:e.options.disableGlobalCatchBoundary?a:(0,h.jsx)(fi,{getResetKey:()=>r,onCatch:void 0,children:a})})}var Ra=e=>({createMutableStore:zi,createReadonlyStore:zi,batch:Ii}),za=e=>new Ba(e),Ba=class extends or{constructor(e){super(e,Ra)}};function Va({router:e,children:t,...n}){gt(n)&&e.update({...e.options,...n,context:{...e.options.context,...n.context}});let r=(0,h.jsx)(yi.Provider,{value:e,children:t});return e.options.Wrap?(0,h.jsx)(e.options.Wrap,{children:r}):r}function Ha({router:e,...t}){return(0,h.jsx)(Va,{router:e,...t,children:(0,h.jsx)(Ia,{})})}function Ua(e){let t=bi({warn:e?.router===void 0}),n=e?.router||t;return Ki(n.stores.__store,Ji(e,n))}var Wa=p(),F=s();function Ga(e){let t=(0,F.c)(6),{error:n}=e,r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,h.jsx)(`p`,{className:`schild text-lg text-rot`,children:`Diese Ansicht ist abgestürzt`}),t[0]=r):r=t[0];let i=n instanceof Error?n.message:String(n),a;t[1]===i?a=t[2]:(a=(0,h.jsx)(`p`,{className:`text-[15px]`,children:i}),t[1]=i,t[2]=a);let o;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,h.jsx)(`button`,{type:`button`,onClick:Ka,className:`schild h-11 rounded-lg border border-rot-rand px-5 text-sm text-foreground hover:bg-[#3a1512]`,children:`Neu laden`}),t[3]=o):o=t[3];let s;return t[4]===a?s=t[5]:(s=(0,h.jsxs)(`div`,{role:`alert`,className:`flex flex-col items-start gap-3 rounded-2xl border border-rot-rand bg-rot-grund p-6 text-rot-text`,children:[r,a,o]}),t[4]=a,t[5]=s),s}function Ka(){return window.location.reload()}var qa={name:`cpu`,size:24,node:[[`path`,{d:`M12 20v2`,key:`1lh1kg`}],[`path`,{d:`M12 2v2`,key:`tus03m`}],[`path`,{d:`M17 20v2`,key:`1rnc9c`}],[`path`,{d:`M17 2v2`,key:`11trls`}],[`path`,{d:`M2 12h2`,key:`1t8f8n`}],[`path`,{d:`M2 17h2`,key:`7oei6x`}],[`path`,{d:`M2 7h2`,key:`asdhe0`}],[`path`,{d:`M20 12h2`,key:`1q8mjw`}],[`path`,{d:`M20 17h2`,key:`1fpfkl`}],[`path`,{d:`M20 7h2`,key:`1o8tra`}],[`path`,{d:`M7 20v2`,key:`4gnj0m`}],[`path`,{d:`M7 2v2`,key:`1i4yhu`}],[`rect`,{x:`4`,y:`4`,width:`16`,height:`16`,rx:`2`,key:`1vbyd7`}],[`rect`,{x:`8`,y:`8`,width:`8`,height:`8`,rx:`1`,key:`z9xiuo`}]]};qa.node;var Ja=a(qa),Ya={name:`external-link`,size:24,node:[[`path`,{d:`M15 3h6v6`,key:`1q9fwt`}],[`path`,{d:`M10 14 21 3`,key:`gplh6r`}],[`path`,{d:`M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6`,key:`a6xqqp`}]]};Ya.node;var Xa=a(Ya),Za={name:`layout-dashboard`,size:24,node:[[`rect`,{width:`7`,height:`9`,x:`3`,y:`3`,rx:`1`,key:`10lvy0`}],[`rect`,{width:`7`,height:`5`,x:`14`,y:`3`,rx:`1`,key:`16une8`}],[`rect`,{width:`7`,height:`9`,x:`14`,y:`12`,rx:`1`,key:`1hutg5`}],[`rect`,{width:`7`,height:`5`,x:`3`,y:`16`,rx:`1`,key:`ldoo1y`}]]};Za.node;var Qa=a(Za),$a={name:`menu`,size:24,node:[[`path`,{d:`M4 5h16`,key:`1tepv9`}],[`path`,{d:`M4 12h16`,key:`1lakjw`}],[`path`,{d:`M4 19h16`,key:`1djgab`}]]};$a.node;var eo=a($a),to={name:`refresh-cw`,size:24,node:[[`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`}]]};to.node;var no=a(to),ro={name:`scroll-text`,size:24,node:[[`path`,{d:`M15 12h-5`,key:`r7krc0`}],[`path`,{d:`M15 8h-5`,key:`1khuty`}],[`path`,{d:`M19 17V5a2 2 0 0 0-2-2H4`,key:`zz82l3`}],[`path`,{d:`M8 21h12a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1v1a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v2a1 1 0 0 0 1 1h3`,key:`1ph1d7`}]]};ro.node;var io=a(ro),ao={name:`settings`,size:24,node:[[`path`,{d:`M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915`,key:`1i5ecw`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}]]};ao.node;var oo=a(ao),so=[`/api/instanz`,`/api/partner`,`/api/health`],co=(e,t)=>e===t||e.startsWith(`${t}/`)||e.startsWith(`${t}?`);function lo(e,t){return!e.startsWith(`/api/`)||so.some(t=>co(e,t))||(co(e,`/api/homelab`)?`homelab`:`box`)===t?e:`/api/partner${e.slice(4)}`}var uo=null;function fo(){return uo??=fetch(`/api/instanz`,{headers:{Accept:`application/json`}}).then(e=>e.ok?e.json():Promise.reject(Error(String(e.status)))).then(e=>e.rolle===`homelab`?`homelab`:`box`).catch(()=>(uo=null,`box`)),uo}var po=class extends Error{status;detail;constructor(e,t){super(t),this.status=e,this.detail=t,this.name=`ApiFehler`}};function mo(e,t){if(e&&typeof e==`object`&&`detail`in e){let t=e.detail;if(typeof t==`string`)return t;if(Array.isArray(t))return t.map(e=>e.msg??String(e)).join(`; `)}return`Die Box antwortet mit Fehler ${t}.`}async function I(e,t={}){let n=lo(e,await fo()),r;try{r=await fetch(n,{...t,headers:{"Content-Type":`application/json`,Accept:`application/json`,...t.headers}})}catch{throw new po(0,`MC2 ist nicht erreichbar. Läuft die Box?`)}let i=await r.text(),a=i?ho(i):null;if(!r.ok)throw new po(r.status,mo(a,r.status));if(typeof a==`string`)throw new po(r.status,`Die Box antwortet nicht mit Daten.`);return a}function ho(e){try{return JSON.parse(e)}catch{return e}}var L=(e,t)=>I(e,{method:`POST`,body:t===void 0?void 0:JSON.stringify(t)}),go=100,_o=95,vo=210,yo=240;function bo(e,t){let n=e*Math.PI/180;return[go+t*Math.cos(n),_o-t*Math.sin(n)]}var xo=e=>Math.round(e*100)/100;function So(e,t,n){let r=Math.max(0,Math.min(1,e)),i=Math.max(r,Math.min(1,t)),[a,o]=bo(vo-yo*r,n),[s,c]=bo(vo-yo*i,n),l=+((i-r)*yo>180);return`M ${xo(a)} ${xo(o)} A ${n} ${n} 0 ${l} 1 ${xo(s)} ${xo(c)}`}function Co(e){return e==null?`var(--text-3)`:e>=85?`var(--rot)`:e>=70?`var(--bernstein)`:`var(--gruen)`}var wo={ok:`border-gruen-rand bg-gruen-grund text-gruen`,info:`border-cyan-rand bg-cyan-grund text-cyan`,stumm:`border-aus-rand bg-aus-grund text-aus-text`,gelb:`border-2 border-bernstein bg-bernstein-grund text-bernstein-hell lampe-atmet`,rot:`border-2 border-rot bg-rot-grund text-rot shadow-[0_0_32px_rgba(255,90,79,0.3)]`};function To(e){if(!e.waechter_wach)return{art:`stumm`,oben:`Wächter`,mitte:`SCHWEIGT`,unten:`Seit über 5 Minuten kein Prüflauf`};if(e.update_laeuft)return{art:`info`,oben:`Wartung`,mitte:`UPDATE LÄUFT`,unten:`Hinweise ruhen bis zum Ende`};if(e.anzahl===0)return{art:`ok`,oben:`Alles`,mitte:`IN ORDNUNG`,unten:`Keine offenen Hinweise`};let t=`${e.anzahl} HINWEIS${e.anzahl===1?``:`E`}`;return e.stufe===`rot`?{art:`rot`,oben:`Störung`,mitte:t,unten:`Drücken zum Ansehen`}:{art:`gelb`,oben:`Achtung`,mitte:t,unten:`Drücken zum Ansehen`}}function Eo(e,t){let n=`„${e.titel}“:`;switch(t.id){case`protokoll`:return null;case`neustart`:return e.id.startsWith(`timer:`)?{titel:`${t.label}?`,text:`${n} Der Dienst läuft sofort noch einmal.`,knopf:t.label}:{titel:`${t.label}?`,text:`${n} Der Dienst wird ${/^starten/i.test(t.label)?`gestartet`:`neu gestartet`} und ist dabei kurz nicht erreichbar.`,knopf:t.label};case`job-wiederholen`:return{titel:`Job erneut ausführen?`,text:`${n} Hermes führt den Job sofort noch einmal aus, mit allem, was er sonst auch tut — etwa Nachrichten verschicken.`,knopf:t.label};case`freigeben`:return{titel:`Update freigeben?`,text:`${n} Nach dem Freigeben versucht der nächste Sonntags-Lauf das Update wieder.`,knopf:t.label};default:return{titel:`${t.label}?`,text:`${n} ${t.label}.`,knopf:t.label}}}function Do(e){return e?.status===`busy`?e.running?`Es läuft schon ein Update („${e.running}“). Warte, bis es fertig ist.`:`Es läuft schon ein Update. Warte, bis es fertig ist.`:e?.detail||e?.err||e?.error||e?.text||`Das hat nicht geklappt.`}var Oo=e=>e.state===`running`||e.state===`queued`;function ko(e){let t=e.aliases.map(e=>e.toLowerCase());return t.includes(`hermes`)||t.includes(`fast`)?`hirn`:t.includes(`coder`)?`coder`:null}var Ao={neu:`Neu`,wartet:`Wartet`,getestet:`Gemessen`,bestanden:`Bestanden`,durchgefallen:`Durchgefallen`,uebernommen:`Übernommen`,verworfen:`Verworfen`};function jo(e,t=``){if(e==null||e===``)return`–`;let n=typeof e==`number`?e.toLocaleString(`de-DE`,{maximumFractionDigits:+(e<10)}):String(e);return t?`${n} ${t}`:n}var Mo=[],No=1,Po=new Set,Fo=()=>Po.forEach(e=>e());function Io(e,t){let n=No++;Mo=[...Mo,{id:n,art:e,text:t}].slice(-4),Fo(),e!==`fehler`&&window.setTimeout(()=>Lo(n),6e3)}function Lo(e){Mo=Mo.filter(t=>t.id!==e),Fo()}var Ro=()=>(0,m.useSyncExternalStore)(zo,Bo);function zo(e){return Po.add(e),()=>{Po.delete(e)}}function Bo(){return Mo}var Vo=2e3,Ho=3e4,Uo=2e4,Wo=`verbinde`,Go=null,R=new Set,z=()=>R.forEach(e=>e());function Ko(e){return R.add(e),()=>{R.delete(e)}}var qo=()=>Wo===`live`,Jo=()=>(0,m.useSyncExternalStore)(Ko,Qo),Yo=()=>(0,m.useSyncExternalStore)(Ko,$o);function Xo(e){e!==Wo&&(Wo=e,z())}function Zo(){let e=_();(0,m.useEffect)(()=>{let t=null,n,r,i=Date.now(),a=Vo,o=!1;function s(){o||(window.clearTimeout(n),n=window.setTimeout(l,a),a=Math.min(a*2,Ho))}function c(){i=Date.now(),window.clearTimeout(r),r=window.setTimeout(()=>{t?.close(),Xo(`getrennt`),s()},Uo)}function l(){window.clearTimeout(n),window.clearTimeout(r),t?.close();let i=new EventSource(`/api/stream`);t=i,i.onopen=()=>{a=Vo,Xo(`live`),c(),e.invalidateQueries()},i.onerror=()=>{Xo(`getrennt`),i.readyState===EventSource.CLOSED&&(window.clearTimeout(r),s())},i.addEventListener(`invalidate`,t=>{c();try{let n=JSON.parse(t.data)?.keys??[];for(let t of n)e.invalidateQueries({queryKey:[t]})}catch{}}),i.addEventListener(`metrik`,e=>{c();try{Go=JSON.parse(e.data),z()}catch{}})}let u=()=>{o||document.visibilityState!==`visible`||(t?.readyState===EventSource.CLOSED||Date.now()-i>5e3)&&(a=Vo,l())};return l(),window.addEventListener(`online`,u),document.addEventListener(`visibilitychange`,u),()=>{o=!0,window.clearTimeout(n),window.clearTimeout(r),window.removeEventListener(`online`,u),document.removeEventListener(`visibilitychange`,u),t?.close(),Xo(`getrennt`)}},[e])}function Qo(){return Wo}function $o(){return Go}var B=`Europe/Berlin`,es=new Intl.DateTimeFormat(`de-DE`,{hour:`2-digit`,minute:`2-digit`,timeZone:B}),ts=new Intl.DateTimeFormat(`de-DE`,{weekday:`short`,timeZone:B}),ns=new Intl.DateTimeFormat(`de-DE`,{day:`2-digit`,month:`2-digit`,timeZone:B}),rs=new Intl.DateTimeFormat(`en-CA`,{timeZone:B});function is(e){return rs.format(e)}function as(e,t=new Date){let n=new Date(e);if(Number.isNaN(n.getTime()))return`–`;let r=is(t),i=is(new Date(t.getTime()-864e5)),a=is(new Date(t.getTime()+864e5)),o=is(n),s=es.format(n);return o===r?`HEUTE ${s}`:o===i?`GESTERN ${s}`:o===a?`MORGEN ${s}`:Math.abs(n.getTime()-t.getTime())<5616e5?`${ts.format(n).replace(`.`,``).toUpperCase()} ${s}`:`${ns.format(n)} ${s}`}function os(e,t=new Date){let n=new Date(e*1e3);return is(n)===is(t)?`seit heute ${es.format(n)}`:`seit ${ns.format(n)}, ${es.format(n)}`}function ss(e,t=Date.now()){let n=Math.max(0,Math.round(t/1e3-e));if(n<60)return`vor ${n} s`;if(n<3600)return`vor ${Math.round(n/60)} min`;if(n<86400)return`vor ${Math.round(n/3600)} h`;let r=Math.round(n/86400);return`vor ${r} ${r===1?`Tag`:`Tagen`}`}function cs(e){return e==null||e<0?null:[Math.floor(e/86400),Math.floor(e%86400/3600)]}var V=e=>e==null?null:e/1024**3;function ls(e,t=0){let n=V(e);return n==null?`–`:n>=1e3?`${(n/1024).toFixed(1).replace(`.`,`,`)} TB`:`${n.toFixed(t).replace(`.`,`,`)} GB`}var us=e=>e.toLocaleString(`de-DE`),ds=e=>()=>qo()?e*5:e;function fs(e,t){let n=e.getQueryData([`jobs`])?.jobs??[],r=t.filter(e=>!Oo(e)&&n.some(t=>t.id===e.id&&Oo(t)));if(r.length===0)return;let i=new Set([`start`]);for(let e of r){let t=e.group===`download`||/^download\s/i.test(e.label);for(let e of t?[`models`,`aufraeumen`]:[`update-details`,`updates-verlauf`,`sicherungen`])i.add(e)}for(let t of i)e.invalidateQueries({queryKey:[t]})}var ps=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={queryKey:[`start`],queryFn:Qs,refetchInterval:$s},e[0]=t):t=e[0],lt(t)},ms=()=>{let e=(0,F.c)(2),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=[`models`],e[0]=t):t=e[0];let n;return e[1]===Symbol.for(`react.memo_cache_sentinel`)?(n={queryKey:t,queryFn:ec,refetchInterval:ds(3e4)},e[1]=n):n=e[1],lt(n)},hs=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={queryKey:[`nutzung`],queryFn:tc,refetchInterval:6e5},e[0]=t):t=e[0],lt(t)},gs=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={queryKey:[`radar`],queryFn:nc,retry:!1,refetchInterval:3e5},e[0]=t):t=e[0],lt(t)},_s=()=>{let e=(0,F.c)(3),t=_(),n;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=[`jobs`],e[0]=n):n=e[0];let r;return e[1]===t?r=e[2]:(r={queryKey:n,queryFn:async()=>{let e=await I(`/api/jobs`);return fs(t,e.jobs),e},refetchInterval:rc},e[1]=t,e[2]=r),lt(r)},vs=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={queryKey:[`sicherungen`],queryFn:ic},e[0]=t):t=e[0],lt(t)},ys=e=>{let t=(0,F.c)(4),n;t[0]===e?n=t[1]:(n=e.map(ac),t[0]=e,t[1]=n);let r;return t[2]===n?r=t[3]:(r={queries:n},t[2]=n,t[3]=r),st(r)},bs=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={queryKey:[`updates-verlauf`],queryFn:oc},e[0]=t):t=e[0],lt(t)},xs=e=>{let t=(0,F.c)(7),n,r;t[0]===e?(n=t[1],r=t[2]):(n=[`protokoll`,e],r=()=>I(`/api/maintenance/logs?service=${encodeURIComponent(e??``)}&lines=200`),t[0]=e,t[1]=n,t[2]=r);let i=!!e,a;return t[3]!==n||t[4]!==r||t[5]!==i?(a={queryKey:n,queryFn:r,enabled:i},t[3]=n,t[4]=r,t[5]=i,t[6]=a):a=t[6],lt(a)},Ss=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={queryKey:[`dienste`],queryFn:sc},e[0]=t):t=e[0],lt(t)};function Cs(e,t){let n=(0,F.c)(6),r=_(),i;n[0]!==t||n[1]!==r?(i=(e,n)=>{let i=e;i&&i.ok===!1?Io(`fehler`,t.fehler?.(n,i)??Do(i)):Io(`erfolg`,t.erfolg(n,e));for(let e of t.neuLaden)r.invalidateQueries({queryKey:[e]})},n[0]=t,n[1]=r,n[2]=i):i=n[2];let a;return n[3]!==e||n[4]!==i?(a={mutationFn:e,onSuccess:i,onError:ws},n[3]=e,n[4]=i,n[5]=a):a=n[5],ut(a)}function ws(e){return Io(`fehler`,e.message)}var Ts=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:lc,neuLaden:[`start`]},e[0]=t):t=e[0],Cs(cc,t)},Es={alle:`/api/maintenance/update-all`,pruefen:`/api/maintenance/check-updates`,os:`/api/maintenance/os-update`,engine:`/api/maintenance/engine-update`,swap:`/api/maintenance/swap-update`,hermes:`/api/maintenance/hermes-update`},Ds=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:dc,neuLaden:[`jobs`,`start`]},e[0]=t):t=e[0],Cs(uc,t)},Os=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:pc,fehler:mc,neuLaden:[`jobs`]},e[0]=t):t=e[0],Cs(fc,t)},ks=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:gc,neuLaden:[`jobs`,`models`]},e[0]=t):t=e[0],Cs(hc,t)},As=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={queryKey:[`aufraeumen`],queryFn:_c,staleTime:6e4},e[0]=t):t=e[0],lt(t)},js=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:yc,neuLaden:[`aufraeumen`,`models`,`start`]},e[0]=t):t=e[0],Cs(vc,t)},Ms=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:xc,neuLaden:[`start`]},e[0]=t):t=e[0],Cs(bc,t)},Ns=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:Cc,fehler:wc,neuLaden:[`sicherungen`,`start`]},e[0]=t):t=e[0],Cs(Sc,t)},Ps=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:Ec,neuLaden:[`sicherungen`]},e[0]=t):t=e[0],Cs(Tc,t)},Fs=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:Oc,neuLaden:[`models`,`start`]},e[0]=t):t=e[0],Cs(Dc,t)},Is=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:Ac,neuLaden:[`radar`,`models`,`start`]},e[0]=t):t=e[0],Cs(kc,t)},Ls=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:Mc,neuLaden:[`jobs`]},e[0]=t):t=e[0],Cs(jc,t)},Rs=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={queryKey:[`instanz`],queryFn:Nc,staleTime:1/0},e[0]=t):t=e[0],lt(t)},zs=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={queryKey:[`partner`],queryFn:Pc,refetchInterval:3e4},e[0]=t):t=e[0],lt(t)},Bs=()=>{let e=(0,F.c)(2),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=[`ziele-box`],e[0]=t):t=e[0];let n;return e[1]===Symbol.for(`react.memo_cache_sentinel`)?(n={queryKey:t,queryFn:Fc,refetchInterval:ds(3e4)},e[1]=n):n=e[1],lt(n)},Vs=e=>{let t=(0,F.c)(3),n;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=[`homelab`],t[0]=n):n=t[0];let r;return t[1]===e?r=t[2]:(r={queryKey:n,queryFn:Ic,enabled:e,refetchInterval:3e4},t[1]=e,t[2]=r),lt(r)},Hs=e=>{let t=(0,F.c)(3),n;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=[`homelab-laeufe`],t[0]=n):n=t[0];let r;return t[1]===e?r=t[2]:(r={queryKey:n,queryFn:Lc,enabled:e,refetchInterval:zc},t[1]=e,t[2]=r),lt(r)},Us=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:Vc,neuLaden:[`homelab`,`homelab-laeufe`,`ziele-box`,`jobs`,`start`]},e[0]=t):t=e[0],Cs(Bc,t)},Ws=e=>{let t=(0,F.c)(4),n;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=[`homelab-hinweise`],t[0]=n):n=t[0];let r;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(r=ds(6e4),t[1]=r):r=t[1];let i;return t[2]===e?i=t[3]:(i={queryKey:n,queryFn:Hc,enabled:e,refetchInterval:r},t[2]=e,t[3]=i),lt(i)},Gs=e=>{let t=(0,F.c)(3),n;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=[`einstellungen`],t[0]=n):n=t[0];let r;return t[1]===e?r=t[2]:(r={queryKey:n,queryFn:Uc,enabled:e,retry:!1},t[1]=e,t[2]=r),lt(r)},Ks=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:Gc,neuLaden:[`einstellungen`,`start`]},e[0]=t):t=e[0],Cs(Wc,t)},qs=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:qc,neuLaden:[`einstellungen`,`start`,`radar`]},e[0]=t):t=e[0],Cs(Kc,t)},Js=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:Yc,neuLaden:[]},e[0]=t):t=e[0],Cs(Jc,t)},Ys=(e,t)=>{let n=(0,F.c)(9),r;n[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=[`stand`,`hier`],n[0]=r):r=n[0];let i;n[1]===e?i=n[2]:(i={queryKey:r,queryFn:Xc,enabled:e},n[1]=e,n[2]=i);let a;n[3]===Symbol.for(`react.memo_cache_sentinel`)?(a=[`stand`,`partner`],n[3]=a):a=n[3];let o=e&&t,s;n[4]===o?s=n[5]:(s={queryKey:a,queryFn:Zc,enabled:o,retry:!1},n[4]=o,n[5]=s);let c;return n[6]!==i||n[7]!==s?(c={queries:[i,s]},n[6]=i,n[7]=s,n[8]=c):c=n[8],st(c)},Xs=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={queryKey:[`altreste`],queryFn:Qc,staleTime:6e4},e[0]=t):t=e[0],lt(t)},Zs=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:el,neuLaden:[`altreste`,`start`]},e[0]=t):t=e[0],Cs($c,t)};function Qs(){return I(`/api/start`)}function $s(e){return e.state.data&&!e.state.data.updates.gelesen?4e3:ds(2e4)()}function ec(){return I(`/api/models`)}function tc(){return I(`/api/modelle/nutzung`)}function nc(){return I(`/api/radar`)}function rc(e){return e.state.data?.jobs.some(Oo)?2e3:ds(3e4)()}function ic(){return I(`/api/zeitmaschine`)}function ac(e){return{queryKey:[`update-details`,e],queryFn:()=>I(`/api/maintenance/update-details?kind=${encodeURIComponent(e)}`),staleTime:6e5}}function oc(){return I(`/api/updates/verlauf`)}function sc(){return I(`/api/system/services`)}function cc(e){let{hinweis:t,aktion:n}=e;return L(`/api/hinweise/${encodeURIComponent(t)}/aktion/${n}`)}function lc(e,t){return e.aktion===`freigeben`&&t.text?t.text:`${e.label}: erledigt. Der Wächter prüft in einer Minute nach.`}function uc(e){return L(Es[e])}function dc(e){return e===`pruefen`?`Die Suche nach Neuem läuft. Den Fortschritt siehst du unten bei den Aufträgen.`:`Das Update läuft. Den Fortschritt siehst du unten bei den Aufträgen.`}function fc(e){let{id:t}=e;return L(`/api/jobs/${encodeURIComponent(t)}/cancel`)}function pc(e){return`${e.titel}: wird abgebrochen.`}function mc(e){return`${e.titel} lief schon nicht mehr.`}function hc(e){let{repo:t,quant:n,rolle:r}=e;return L(`/api/models/install`,{repo:t,quant:n,role:r})}function gc(e,t){return`${e.repo} (${e.quant}) wird heruntergeladen${t.total_bytes?`, ${ls(t.total_bytes,1)}`:``}. Den Fortschritt siehst du unter Aufträge.`}function _c(){return I(`/api/modelle/aufraeumen`)}function vc(e){return L(`/api/modelle/aufraeumen/loeschen`,{art:e.art,name:e.name})}function yc(e,t){return t.text??`Gelöscht.`}function bc(e){return L(`/api/updates/festgehalten/${encodeURIComponent(e)}/freigeben`)}function xc(e,t){return t.text??`Freigegeben.`}function Sc(){return L(`/api/system/backup`)}function Cc(e,t){return t.size_mb==null?`Sicherung erstellt.`:`Sicherung erstellt (${t.size_mb.toLocaleString(`de-DE`)} MB).`}function wc(e,t){return`Die Sicherung ging nicht: ${Do(t)}`}function Tc(e){return L(`/api/zeitmaschine/restore`,{file:e})}function Ec(){return`Zurückspielen läuft. Die Dienste starten gleich neu.`}function Dc(e){return L(`/api/models/${encodeURIComponent(e)}/load`)}function Oc(e){return`${e} wird geladen.`}function kc(e){let{id:t,aktion:n}=e;return L(`/api/radar/${encodeURIComponent(t)}/${n}`)}function Ac(e){return e.aktion===`uebernehmen`?`${e.name} übernommen.`:`${e.name} verworfen.`}function jc(){return L(`/api/radar/suche`)}function Mc(e,t){return t.text??`Das Radar sucht jetzt nach neuen Modellen.`}function Nc(){return I(`/api/instanz`)}function Pc(){return I(`/api/partner`)}function Fc(){return I(`/api/ziele`)}function Ic(){return I(`/api/homelab/ziele`)}function Lc(){return I(`/api/homelab/laeufe`)}function Rc(e){return e.status===`laeuft`}function zc(e){return e.state.data?.laeufe.some(Rc)?3e3:3e4}function Bc(e){return I(e.pfad,{method:e.methode})}function Vc(e){return`${e.label}: gestartet. Das Ergebnis kommt als Meldung.`}function Hc(){return I(`/api/homelab/hinweise`)}function Uc(){return I(`/api/einstellungen`)}function Wc(e){return L(`/api/einstellungen/update-fenster`,e)}function Gc(e,t){return t.text??`Gespeichert.`}function Kc(e){return L(`/api/einstellungen/radar`,{an:e})}function qc(e,t){return t.text??`Geschaltet.`}function Jc(e){return L(e===`homelab`?`/api/homelab/einstellungen/telegram-test`:`/api/einstellungen/telegram-test`)}function Yc(e,t){return t.text??`Die Testmeldung ist raus.`}function Xc(){return I(`/api/instanz`)}function Zc(){return I(`/api/partner/instanz`)}function Qc(){return I(`/api/aufraeumen/altreste`)}function $c(e){return L(`/api/aufraeumen/altreste/loeschen`,{id:e.id})}function el(e,t){return t.text??`Gelöscht.`}var tl={"ki-box":`KI-Box`,"proxmox-host":`Proxmox-Host`,container:`Container`,vm:`VM`};function nl(e){let t=e.id.match(/-(\d+)$/)?.[1],n=tl[e.art]??e.art;return t?`${n} ${t}`:n}var rl={"Proxmox-Host":`Proxmox`,"AdGuard Home":`AdGuard`,"PVE Scripts Local":`PVE Scripts`,"Proxmox Backup Server":`PBS`,"Arcane (Docker)":`Arcane`},il=e=>rl[e.name]??e.name,al=new Set([`app`,`arcane`]),ol=e=>e.bausteine.find(e=>al.has(e.id))??null,sl=e=>e.bausteine.find(e=>!al.has(e.id))??null;function cl(e){let t=e.flatMap(e=>e.bausteine.filter(e=>e.zustand===`neu`).map(t=>({ziel:e,baustein:t})));return[...t.filter(e=>e.baustein.aktion),...t.filter(e=>!e.baustein.aktion)]}function ll(e){let t=e.rueckweg_art??ul(e.rueckweg);return t===`snapshot`?`Snapshot vorher, bei Rot zurück`:t===`sicherung`?`Sicherung vorher, bei Rot zurück`:e.art===`proxmox-host`?`Kein Rückweg, Neustart getrennt`:`Kein automatischer Rückweg`}function ul(e){let t=(e??``).toLowerCase();return t.startsWith(`snapshot vor`)?`snapshot`:t.startsWith(`sicherung`)?`sicherung`:`keiner`}var dl=e=>al.has(e.id);function fl(e,t){let n=dl(t)?`App`:t.id===`docker`?`Docker-Images`:`Pakete`;return e.art===`proxmox-host`?n:`${nl(e)} · ${n}`}var pl=e=>e.replace(/^Image vom /,``);function ml(e){return dl(e)&&e.verfuegbar?e.verfuegbar:e.kurz||e.verfuegbar||`neu`}function hl(e,t){let n=il(e);if(e.erreichbar===!1)return{id:e.id,label:n,zustand:`fehler`,wert:`antwortet nicht`};if(t)return{id:e.id,label:n,zustand:`info`,wert:`Update läuft`};let r=e.bausteine.filter(e=>e.zustand===`neu`);if(r.length>0){let t=r.find(e=>al.has(e.id))??r[0];return{id:e.id,label:n,zustand:`info`,wert:al.has(t.id)&&t.verfuegbar?`→ ${t.verfuegbar}`:ml(t)}}let i=ol(e);return{id:e.id,label:n,zustand:`ok`,wert:i?.installiert?pl(i.installiert):`aktuell`}}var gl=e=>`${e} HINWEIS${e===1?``:`E`}`;function _l(e,t,n,r){let i=e.ziele.filter(e=>e.erreichbar===!1);if(i.length>0)return{art:`rot`,oben:`Störung`,mitte:i.length===1?`1 GERÄT STUMM`:`${i.length} GERÄTE STUMM`,unten:i.map(il).join(`, `),ziel:`geraete`};if(t.some(e=>e.stufe===`rot`))return{art:`rot`,oben:`Störung`,mitte:gl(t.length),unten:`Drücken zum Ansehen`,ziel:`hinweise`};if(!e.ausfuehrer.verbunden)return{art:`gelb`,oben:`Achtung`,mitte:`AUSFÜHRER STUMM`,unten:`Die Geräte zeigen den letzten Stand`,ziel:null};if(t.length>0)return{art:`gelb`,oben:`Achtung`,mitte:gl(t.length),unten:`Drücken zum Ansehen`,ziel:`hinweise`};if(n>0)return{art:`info`,oben:`Wartung`,mitte:`UPDATE LÄUFT`,unten:`Das Ergebnis kommt als Meldung`,ziel:`updates`};let a=cl(e.ziele).filter(e=>e.baustein.aktion).length;return a>0?{art:`info`,oben:`Homelab`,mitte:`${a} UPDATE${a===1?``:`S`}`,unten:`Drücken zum Ansehen`,ziel:`updates`}:{art:`ok`,oben:`Homelab`,mitte:`ALLES AKTUELL`,unten:r?`Stand ${r}`:`Keine offenen Updates`,ziel:null}}function vl(e){return e?.match(/vom (\d{2}\.\d{2}\.\d{4})/)?.[1]??null}var yl=[{id:`box`,name:`KI-Box`},{id:`homelab`,name:`Homelab`}],H=[{to:`/`,label:`Cockpit`,Icon:Qa,bereich:`box`},{to:`/updates`,label:`Updates`,Icon:no,bereich:`box`,zaehlt:!0},{to:`/modelle`,label:`Modelle`,Icon:Ja,bereich:`box`},{to:`/homelab`,label:`Cockpit`,Icon:Qa,bereich:`homelab`},{to:`/homelab/updates`,label:`Updates`,Icon:no,bereich:`homelab`,zaehlt:!0}],bl=e=>yl.find(t=>t.id===e)?.name??e;function xl(){let e=(0,F.c)(3),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={select:Sl},e[0]=t):t=e[0];let n=Ua(t),r;return e[1]===n?r=e[2]:(r=H.find(e=>e.to===n)??H[0],e[1]=n,e[2]=r),r}function Sl(e){return e.location.pathname}function Cl(){let e=(0,F.c)(19),t=Rs(),n=zs(),r=Jo(),i=t.data?.rolle===`homelab`?`homelab`:`box`,a=r===`live`?`online`:r,o=n.data,s=o?o.eingerichtet?o.erreichbar?`online`:`getrennt`:`fehlt`:`verbinde`,c;e[0]!==a||e[1]!==s||e[2]!==i?(c=i===`box`?{box:a,homelab:s}:{box:s,homelab:a},e[0]=a,e[1]=s,e[2]=i,e[3]=c):c=e[3];let l=c,u=Bs(),d=Vs(l.homelab===`online`),f;e[4]===u.data?.ziele?f=e[5]:(f=u.data?.ziele??[],e[4]=u.data?.ziele,e[5]=f);let p;e[6]===f?p=e[7]:(p=f.reduce(Tl,0),e[6]=f,e[7]=p);let m=p,h;e[8]===d.data?.ziele?h=e[9]:(h=cl(d.data?.ziele??[]).filter(wl),e[8]=d.data?.ziele,e[9]=h);let g=h.length,_;e[10]!==m||e[11]!==l.box?(_={verbindung:l.box,updates:m},e[10]=m,e[11]=l.box,e[12]=_):_=e[12];let v;e[13]!==g||e[14]!==l.homelab?(v={verbindung:l.homelab,updates:g},e[13]=g,e[14]=l.homelab,e[15]=v):v=e[15];let y;return e[16]!==_||e[17]!==v?(y={box:_,homelab:v},e[16]=_,e[17]=v,e[18]=y):y=e[18],y}function wl(e){return e.baustein.aktion}function Tl(e,t){return e+t.bausteine.filter(El).length}function El(e){return e.zustand===`neu`&&e.aktion}var Dl={erfolg:`border-gruen-rand bg-gruen-grund text-gruen-text`,fehler:`border-rot-rand bg-rot-grund text-rot-text`,info:`border-cyan-rand bg-cyan-grund text-cyan-text`};function Ol(){let e=(0,F.c)(4),t=Ro(),n;e[0]===t?n=e[1]:(n=t.map(kl),e[0]=t,e[1]=n);let r;return e[2]===n?r=e[3]:(r=(0,h.jsx)(`div`,{"aria-live":`polite`,className:`pointer-events-none fixed right-4 bottom-24 left-4 z-50 flex flex-col items-end gap-2 md:left-auto md:w-[420px] lg:bottom-6`,children:n}),e[2]=n,e[3]=r),r}function kl(t){return(0,h.jsxs)(`div`,{role:t.art===`fehler`?`alert`:`status`,className:r(`pointer-events-auto flex w-full items-start gap-3 rounded-xl border px-4 py-3 text-[15px] shadow-lg`,Dl[t.art]),children:[(0,h.jsx)(`span`,{className:`min-w-0 flex-1`,children:t.text}),(0,h.jsx)(`button`,{type:`button`,onClick:()=>Lo(t.id),"aria-label":`Meldung schließen`,className:`-m-2 p-2 opacity-70 hover:opacity-100`,children:(0,h.jsx)(e,{className:`size-4`})})]},t.id)}var Al={online:{punkt:`bg-gruen shadow-[0_0_8px_rgba(61,220,138,0.7)]`,text:`online`},verbinde:{punkt:`bg-bernstein`,text:`verbinde`},getrennt:{punkt:`bg-rot`,text:`getrennt`},fehlt:{punkt:`bg-text-3`,text:`nicht eingerichtet`}},jl=`flex h-11 items-center gap-3 rounded-lg border-l-2 border-transparent pr-3 pl-3 text-[15px] text-text-2 hover:bg-erhaben hover:text-foreground`;function Ml(){let e=(0,F.c)(2),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,h.jsxs)(`svg`,{width:`34`,height:`34`,viewBox:`0 0 34 34`,fill:`none`,"aria-hidden":!0,className:`shrink-0`,children:[(0,h.jsx)(`rect`,{x:`1.5`,y:`1.5`,width:`31`,height:`31`,rx:`8`,stroke:`var(--linie-stark)`,strokeWidth:`2`}),(0,h.jsx)(`path`,{d:`M7 18h5l3-7 4 13 3-6h5`,stroke:`var(--bernstein)`,strokeWidth:`2.2`,strokeLinecap:`round`,strokeLinejoin:`round`})]}),e[0]=t):t=e[0];let n;return e[1]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,h.jsxs)(`div`,{className:`flex items-center gap-3 px-1`,children:[t,(0,h.jsxs)(`span`,{className:`flex flex-col leading-none`,children:[(0,h.jsx)(`span`,{className:`font-anzeige text-[22px] font-bold tracking-[0.06em]`,children:`Homelab`}),(0,h.jsx)(`span`,{className:`schild text-[13px] tracking-[0.22em] text-text-3`,children:`Orchestrator`})]})]}),e[1]=n):n=e[1],n}function Nl(e){let t=(0,F.c)(15),{onDienste:n,onEinstellungen:i,onGewaehlt:a}=e,o=Cl(),s=Rs().data?.rolle!==`homelab`,c;t[0]!==s||t[1]!==n||t[2]!==a||t[3]!==o?(c=yl.map(e=>{let t=Al[o[e.id].verbindung];return(0,h.jsxs)(`section`,{"aria-label":e.name,className:`flex flex-col gap-1`,children:[(0,h.jsxs)(`div`,{className:`flex items-center justify-between gap-2 px-3 pb-1.5`,children:[(0,h.jsx)(`h2`,{className:`schild text-sm font-bold tracking-[0.24em] text-foreground`,children:e.name}),(0,h.jsxs)(`span`,{className:`flex items-center gap-1.5 text-xs text-text-3`,children:[(0,h.jsx)(`span`,{"aria-hidden":!0,className:r(`size-2 rounded-full`,t.punkt)}),t.text]})]}),H.filter(t=>t.bereich===e.id).map(t=>{let n=t.zaehlt?o[e.id].updates:0;return(0,h.jsxs)(ga,{to:t.to,onClick:a,className:jl,activeProps:{className:`!border-bernstein bg-erhaben !text-foreground`},activeOptions:{exact:!0},children:[(0,h.jsx)(t.Icon,{className:`size-[18px] shrink-0`,"aria-hidden":!0}),(0,h.jsx)(`span`,{className:`flex-1`,children:t.label}),n>0&&(0,h.jsxs)(`span`,{className:`ziffern rounded-full border border-cyan-rand bg-cyan-grund px-2 text-xs leading-5 text-cyan`,children:[n,(0,h.jsxs)(`span`,{className:`sr-only`,children:[` `,n===1?`Update`:`Updates`,` bereit`]})]})]},t.to)}),e.id===`box`&&(0,h.jsxs)(h.Fragment,{children:[(0,h.jsxs)(`button`,{type:`button`,onClick:()=>{a?.(),n()},className:r(jl,`text-left`),children:[(0,h.jsx)(io,{className:`size-[18px] shrink-0`,"aria-hidden":!0}),`Dienste und Protokolle`]}),s&&(0,h.jsxs)(`a`,{href:`/hermes-ui/`,target:`_blank`,rel:`noopener`,className:jl,children:[(0,h.jsx)(Xa,{className:`size-[18px] shrink-0`,"aria-hidden":!0}),`Hermes-Dashboard`]})]})]},e.id)}),t[0]=s,t[1]=n,t[2]=a,t[3]=o,t[4]=c):c=t[4];let l;t[5]!==i||t[6]!==a?(l=()=>{a?.(),i()},t[5]=i,t[6]=a,t[7]=l):l=t[7];let u,d;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(u=r(jl,`w-full text-left`),d=(0,h.jsx)(oo,{className:`size-[18px] shrink-0`,"aria-hidden":!0}),t[8]=u,t[9]=d):(u=t[8],d=t[9]);let f;t[10]===l?f=t[11]:(f=(0,h.jsx)(`div`,{className:`mt-auto border-t border-linie pt-4`,children:(0,h.jsxs)(`button`,{type:`button`,onClick:l,className:u,children:[d,`Einstellungen`]})}),t[10]=l,t[11]=f);let p;return t[12]!==c||t[13]!==f?(p=(0,h.jsxs)(`nav`,{"aria-label":`Hauptnavigation`,className:`flex flex-1 flex-col gap-7`,children:[c,f]}),t[12]=c,t[13]=f,t[14]=p):p=t[14],p}var Pl=`modulepreload`,Fl=function(e){return`/`+e},Il={},Ll=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,import.meta.url).href}r=o(t.map(t=>{if(t=Fl(t,n),t=s(t),t in Il)return;Il[t]=!0;let r=t.endsWith(`.css`);for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}let i=document.createElement(`link`);if(i.rel=r?`stylesheet`:Pl,r||(i.as=`script`),i.crossOrigin=``,i.href=t,a&&i.setAttribute(`nonce`,a),document.head.appendChild(i),r)return new Promise((e,n)=>{i.addEventListener(`load`,e),i.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}).filter(e=>e!==void 0))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},Rl=(0,m.lazy)(()=>Ll(()=>import(`./Dienste-DZuQMkdN.js`).then(e=>({default:e.Dienste})),__vite__mapDeps([0,1,2,3]))),zl=(0,m.lazy)(()=>Ll(()=>import(`./Einstellungen-r4tFurrz.js`).then(e=>({default:e.Einstellungen})),__vite__mapDeps([4,1,2,3,5]))),Bl=(0,m.lazy)(()=>Ll(()=>import(`./MenueSchublade-DuDMBJg1.js`).then(e=>({default:e.MenueSchublade})),__vite__mapDeps([6,1,2,3]))),Vl=new Intl.DateTimeFormat(`de-DE`,{hour:`2-digit`,minute:`2-digit`,timeZone:`Europe/Berlin`}),Hl=new Intl.DateTimeFormat(`de-DE`,{weekday:`short`,day:`2-digit`,month:`2-digit`,timeZone:`Europe/Berlin`});function Ul(){let e=(0,F.c)(13),[t,n]=(0,m.useState)(Wl),r,i;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=()=>{let e=window.setInterval(()=>n(new Date),2e4);return()=>window.clearInterval(e)},i=[],e[0]=r,e[1]=i):(r=e[0],i=e[1]),(0,m.useEffect)(r,i);let a;e[2]===t?a=e[3]:(a=Vl.format(t),e[2]=t,e[3]=a);let o;e[4]===a?o=e[5]:(o=(0,h.jsx)(`span`,{className:`ziffern text-2xl font-medium`,children:a}),e[4]=a,e[5]=o);let s;e[6]===t?s=e[7]:(s=Hl.format(t).replace(`,`,``),e[6]=t,e[7]=s);let c;e[8]===s?c=e[9]:(c=(0,h.jsx)(`span`,{className:`schild text-[13px] text-text-3`,children:s}),e[8]=s,e[9]=c);let l;return e[10]!==o||e[11]!==c?(l=(0,h.jsxs)(`div`,{className:`flex flex-col items-end leading-tight`,children:[o,c]}),e[10]=o,e[11]=c,e[12]=l):l=e[12],l}function Wl(){return new Date}function Gl(){let e=(0,F.c)(14),t=Jo(),n=t===`live`,i=n?`Verbunden`:t===`verbinde`?`Verbinde`:`Getrennt`,a=n?`text-text-3`:`text-bernstein`,o;e[0]===a?o=e[1]:(o=r(`schild flex items-center gap-1.5 text-[13px]`,a),e[0]=a,e[1]=o);let s=n?`bg-gruen shadow-[0_0_8px_rgba(61,220,138,0.7)]`:`bg-bernstein`,c;e[2]===s?c=e[3]:(c=r(`size-2 rounded-full`,s),e[2]=s,e[3]=c);let l;e[4]===c?l=e[5]:(l=(0,h.jsx)(`span`,{"aria-hidden":!0,className:c}),e[4]=c,e[5]=l);let u=n?`sr-only`:void 0,d=n?`Verbunden`:t===`verbinde`?`Verbinde`:`Getrennt`,f;e[6]!==u||e[7]!==d?(f=(0,h.jsx)(`span`,{className:u,children:d}),e[6]=u,e[7]=d,e[8]=f):f=e[8];let p;return e[9]!==i||e[10]!==o||e[11]!==l||e[12]!==f?(p=(0,h.jsxs)(`span`,{role:`status`,title:i,className:o,children:[l,f]}),e[9]=i,e[10]=o,e[11]=l,e[12]=f,e[13]=p):p=e[13],p}function Kl(){let e=(0,F.c)(34);Zo();let[t,n]=(0,m.useState)(null),r;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=()=>n(null),e[0]=r):r=e[0];let i=r,a=xl(),o;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,h.jsx)(Ml,{}),e[1]=o):o=e[1];let s;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,h.jsxs)(`aside`,{className:`sticky top-0 hidden h-dvh flex-col gap-8 overflow-y-auto border-r border-linie bg-[#0c0f12] px-4 py-7 lg:flex`,children:[o,(0,h.jsx)(Nl,{onDienste:()=>n(`dienste`),onEinstellungen:()=>n(`einstellungen`)})]}),e[2]=s):s=e[2];let c;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(c=()=>n(`menue`),e[3]=c):c=e[3];let l;e[4]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,h.jsx)(`button`,{type:`button`,onClick:c,className:`-ml-2 flex size-11 shrink-0 items-center justify-center rounded-lg text-text-2 hover:bg-erhaben hover:text-foreground lg:hidden`,"aria-label":`Menü öffnen`,children:(0,h.jsx)(eo,{className:`size-6`})}),e[4]=l):l=e[4];let u;e[5]===a.bereich?u=e[6]:(u=bl(a.bereich),e[5]=a.bereich,e[6]=u);let d;e[7]===u?d=e[8]:(d=(0,h.jsx)(`span`,{className:`schild text-[13px] tracking-[0.24em] text-text-3`,children:u}),e[7]=u,e[8]=d);let f;e[9]===a.label?f=e[10]:(f=(0,h.jsx)(`h1`,{className:`font-anzeige text-[26px] leading-none font-bold tracking-[0.04em]`,children:a.label}),e[9]=a.label,e[10]=f);let p;e[11]!==d||e[12]!==f?(p=(0,h.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[l,(0,h.jsxs)(`div`,{className:`flex min-w-0 flex-col leading-tight`,children:[d,f]})]}),e[11]=d,e[12]=f,e[13]=p):p=e[13];let g;e[14]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,h.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,h.jsx)(`span`,{className:`lg:hidden`,children:(0,h.jsx)(Gl,{})}),(0,h.jsx)(Ul,{})]}),e[14]=g):g=e[14];let _;e[15]===p?_=e[16]:(_=(0,h.jsxs)(`header`,{className:`flex items-center justify-between gap-4`,children:[p,g]}),e[15]=p,e[16]=_);let v;e[17]===Symbol.for(`react.memo_cache_sentinel`)?(v=(0,h.jsx)(`main`,{className:`flex min-w-0 flex-col gap-5 md:gap-6`,children:(0,h.jsx)(Na,{})}),e[17]=v):v=e[17];let y;e[18]===_?y=e[19]:(y=(0,h.jsxs)(`div`,{className:`mx-auto flex w-full max-w-[1320px] min-w-0 flex-col gap-5 px-4 pt-4 pb-10 sm:px-6 md:gap-6 md:px-10 md:pt-8`,children:[_,v]}),e[18]=_,e[19]=y);let b;e[20]===t?b=e[21]:(b=t===`menue`&&(0,h.jsx)(Bl,{onDienste:()=>n(`dienste`),onEinstellungen:()=>n(`einstellungen`),onSchliessen:i}),e[20]=t,e[21]=b);let x;e[22]===t?x=e[23]:(x=t===`dienste`&&(0,h.jsx)(Rl,{offen:!0,onSchliessen:i}),e[22]=t,e[23]=x);let S;e[24]===t?S=e[25]:(S=t===`einstellungen`&&(0,h.jsx)(zl,{offen:!0,onSchliessen:i}),e[24]=t,e[25]=S);let C;e[26]!==b||e[27]!==x||e[28]!==S?(C=(0,h.jsxs)(m.Suspense,{fallback:null,children:[b,x,S]}),e[26]=b,e[27]=x,e[28]=S,e[29]=C):C=e[29];let w;e[30]===Symbol.for(`react.memo_cache_sentinel`)?(w=(0,h.jsx)(Ol,{}),e[30]=w):w=e[30];let T;return e[31]!==y||e[32]!==C?(T=(0,h.jsxs)(`div`,{className:`min-h-dvh lg:grid lg:grid-cols-[272px_minmax(0,1fr)]`,children:[s,y,C,w]}),e[31]=y,e[32]=C,e[33]=T):T=e[33],T}var ql=(0,m.lazy)(()=>Ll(()=>import(`./Protokollfenster-C5MkHrP6.js`).then(e=>({default:e.Protokollfenster})),__vite__mapDeps([7,1,2,3]))),Jl=(0,m.lazy)(()=>Ll(()=>import(`./Bestaetigen-CE_3b0PK.js`).then(e=>e.n).then(e=>({default:e.Bestaetigen})),__vite__mapDeps([5,1,3])));function Yl({h:e}){let t=Ts(),[n,i]=(0,m.useState)(null),[a,o]=(0,m.useState)(null),s=e.stufe===`rot`,l=a?Eo(e,a):null;async function u(){try{let t=await L(`/api/hinweise/${encodeURIComponent(e.id)}/aktion/protokoll`);i({titel:e.titel,text:t.text||t.out||t.err||`Kein Protokoll vorhanden.`})}catch(e){Io(`fehler`,e.message)}}function d(n){t.mutate({hinweis:e.id,aktion:n.id,label:n.label})}function f(t){t.id===`protokoll`?u():Eo(e,t)?o(t):d(t)}return(0,h.jsxs)(`article`,{className:`flex flex-col gap-2.5 border-t border-linie pt-4`,children:[(0,h.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,h.jsx)(`h3`,{className:`min-w-0 font-sans text-[17px] leading-snug font-semibold`,children:e.titel}),(0,h.jsx)(`span`,{"aria-hidden":!0,className:`hidden h-0 flex-grow border-b-2 border-dotted border-linie-stark sm:block`}),(0,h.jsx)(`span`,{className:r(`schild shrink-0 text-base`,s?`text-rot`:`text-bernstein`),children:s?`Jetzt`:`Prüfen`})]}),(0,h.jsxs)(`p`,{className:`ziffern text-[13px] text-text-3`,children:[os(e.seit),` · zuletzt `,ss(e.zuletzt)]}),e.text&&(0,h.jsx)(`p`,{className:`text-[15px] leading-relaxed break-words text-text-2`,children:e.text}),e.aktionen.length>0&&(0,h.jsx)(`div`,{className:`flex flex-wrap gap-2.5 pt-1`,children:e.aktionen.map((e,n)=>(0,h.jsx)(c,{variant:n===0&&e.id!==`protokoll`?`default`:`outline`,size:`sm`,disabled:t.isPending,onClick:()=>f(e),children:e.label},e.id))}),n&&(0,h.jsx)(m.Suspense,{fallback:null,children:(0,h.jsx)(ql,{offen:!0,titel:n.titel,text:n.text,onSchliessen:()=>i(null)})}),a&&l&&(0,h.jsx)(m.Suspense,{fallback:null,children:(0,h.jsx)(Jl,{offen:!0,titel:l.titel,text:l.text,knopf:l.knopf,gesperrt:t.isPending,onNein:()=>o(null),onJa:()=>{d(a),o(null)}})})]})}function Xl(e){let t=(0,F.c)(12),{hinweise:n,verlauf:r}=e,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=new Date().toDateString(),t[0]=i):i=t[0];let a=i,o;if(t[1]!==n.length||t[2]!==r){o=Symbol.for(`react.early_return_sentinel`);bb0:{let e;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(e=e=>(e.art===`erledigt`||e.art===`auto`)&&new Date(e.ts*1e3).toDateString()===a,t[4]=e):e=t[4];let i=r.filter(e);if(n.length===0){let e;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,h.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Keine offenen Punkte. Der Wächter prüft jede Minute.`}),t[5]=e):e=t[5];let n=i.length>0&&(0,h.jsx)(`ul`,{className:`flex flex-col gap-1 text-sm text-text-3`,children:i.slice(0,4).map(Ql)}),r;t[6]===n?r=t[7]:(r=(0,h.jsxs)(`div`,{className:`flex flex-col gap-2 border-t border-linie pt-4`,children:[e,n]}),t[6]=n,t[7]=r),o=r;break bb0}}t[1]=n.length,t[2]=r,t[3]=o}else o=t[3];if(o!==Symbol.for(`react.early_return_sentinel`))return o;let s;t[8]===n?s=t[9]:(s=n.map(Zl),t[8]=n,t[9]=s);let c;return t[10]===s?c=t[11]:(c=(0,h.jsx)(`div`,{className:`flex flex-col gap-4`,children:s}),t[10]=s,t[11]=c),c}function Zl(e){return(0,h.jsx)(Yl,{h:e},e.id)}function Ql(e){return(0,h.jsxs)(`li`,{children:[(0,h.jsx)(`span`,{className:`ziffern`,children:ss(e.ts)}),` · `,e.text]},`${e.id}-${e.ts}`)}var $l={gruen:`border-gruen-rand bg-gruen-grund text-gruen`,bernstein:`border-bernstein/60 bg-bernstein-grund text-bernstein`,cyan:`border-cyan-rand bg-cyan-grund text-cyan`,rot:`border-rot-rand bg-rot-grund text-rot-text`,grau:`border-linie bg-erhaben text-text-2`};function eu(e){let t=(0,F.c)(5),{art:n,children:i}=e,a=$l[n===void 0?`grau`:n],o;t[0]===a?o=t[1]:(o=r(`schild inline-flex h-7 items-center rounded-full border px-2.5 text-xs whitespace-nowrap`,a),t[0]=a,t[1]=o);let s;return t[2]!==i||t[3]!==o?(s=(0,h.jsx)(`span`,{className:o,children:i}),t[2]=i,t[3]=o,t[4]=s):s=t[4],s}function tu(e){let t=(0,F.c)(6),{fehler:n,text:i}=e,a=n?`alert`:`status`,o=n?`border-rot-rand bg-rot-grund text-rot-text`:`border-linie bg-panel text-text-2`,s;t[0]===o?s=t[1]:(s=r(`rounded-2xl border px-5 py-8 text-center text-[15px]`,o),t[0]=o,t[1]=s);let c;return t[2]!==a||t[3]!==s||t[4]!==i?(c=(0,h.jsx)(`div`,{role:a,className:s,children:i}),t[2]=a,t[3]=s,t[4]=i,t[5]=c):c=t[5],c}var nu={erledigt:{text:`Erledigt`,farbe:`text-gruen`},fehler:{text:`Fehler`,farbe:`text-rot`},geplant:{text:`Geplant`,farbe:`text-text-3`}};function ru(e){let t=(0,F.c)(18),{e:n}=e,i=nu[n.status]??nu.geplant,a=n.status===`geplant`&&/update/i.test(n.titel)?`text-cyan`:i.farbe,o;t[0]===n.zeit?o=t[1]:(o=as(n.zeit),t[0]=n.zeit,t[1]=o);let s;t[2]===o?s=t[3]:(s=(0,h.jsx)(`span`,{className:`ziffern col-start-1 row-start-1 text-sm text-text-3`,children:o}),t[2]=o,t[3]=s);let c;t[4]===n.text?c=t[5]:(c=n.text&&(0,h.jsxs)(`span`,{className:`text-text-3`,children:[`, `,n.text]}),t[4]=n.text,t[5]=c);let l;t[6]!==n.titel||t[7]!==c?(l=(0,h.jsxs)(`span`,{className:`col-span-2 row-start-2 min-w-0 text-base break-words @sm:col-span-1 @sm:col-start-2 @sm:row-start-1`,children:[n.titel,c]}),t[6]=n.titel,t[7]=c,t[8]=l):l=t[8];let u;t[9]===a?u=t[10]:(u=r(`schild col-start-2 row-start-1 justify-self-end text-[13px] @sm:col-start-3`,a),t[9]=a,t[10]=u);let d;t[11]!==i.text||t[12]!==u?(d=(0,h.jsx)(`span`,{className:u,children:i.text}),t[11]=i.text,t[12]=u,t[13]=d):d=t[13];let f;return t[14]!==s||t[15]!==l||t[16]!==d?(f=(0,h.jsxs)(`li`,{className:`grid grid-cols-[minmax(0,1fr)_auto] items-center gap-x-3 gap-y-1 border-t border-linie py-2.5 @sm:grid-cols-[112px_minmax(0,1fr)_auto]`,children:[s,l,d]}),t[14]=s,t[15]=l,t[16]=d,t[17]=f):f=t[17],f}function iu(e){let t=(0,F.c)(6),{gelaufen:n,geplant:r}=e,i;t[0]!==n||t[1]!==r?(i=[...n,...r.slice(0,5)],t[0]=n,t[1]=r,t[2]=i):i=t[2];let a=i;if(a.length===0){let e;return t[3]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,h.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Heute ist noch nichts gelaufen, und nichts ist geplant.`}),t[3]=e):e=t[3],e}let o;return t[4]===a?o=t[5]:(o=(0,h.jsx)(`ol`,{className:`@container m-0 flex list-none flex-col p-0`,children:a.map(au)}),t[4]=a,t[5]=o),o}function au(e){return(0,h.jsx)(ru,{e},`${e.titel}-${e.zeit}`)}function ou(e){let t=(0,F.c)(25),{anteil:n,farbe:r,zonen:i,mitte:a,unter:o,beschriftung:s,ariaText:c}=e,l=r===void 0?`var(--cyan)`:r,u;t[0]===i?u=t[1]:(u=i===void 0?[]:i,t[0]=i,t[1]=u);let d=u,f=n!=null&&n>.004,p;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,h.jsx)(`path`,{d:So(0,1,75),fill:`none`,stroke:`var(--linie)`,strokeWidth:12,strokeLinecap:`round`}),t[2]=p):p=t[2];let m;t[3]===d?m=t[4]:(m=d.map(U),t[3]=d,t[4]=m);let g;t[5]!==n||t[6]!==l||t[7]!==f?(g=f&&(0,h.jsx)(`path`,{d:So(0,n,75),fill:`none`,stroke:l,strokeWidth:12,strokeLinecap:`round`}),t[5]=n,t[6]=l,t[7]=f,t[8]=g):g=t[8];let _;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(_={fontSize:34,fontWeight:500,fill:`var(--foreground)`},t[9]=_):_=t[9];let v;t[10]===a?v=t[11]:(v=(0,h.jsx)(`text`,{x:`100`,y:`100`,textAnchor:`middle`,className:`ziffern`,style:_,children:a}),t[10]=a,t[11]=v);let y;t[12]===o?y=t[13]:(y=o&&(0,h.jsx)(`text`,{x:`100`,y:`122`,textAnchor:`middle`,style:{fontFamily:`var(--font-anzeige)`,fontSize:14,fontWeight:600,letterSpacing:`0.12em`,fill:`var(--text-3)`},children:o.toUpperCase()}),t[12]=o,t[13]=y);let b;t[14]!==c||t[15]!==m||t[16]!==g||t[17]!==v||t[18]!==y?(b=(0,h.jsxs)(`svg`,{viewBox:`0 0 200 150`,className:`h-auto w-full max-w-[200px]`,role:`img`,"aria-label":c,children:[p,m,g,v,y]}),t[14]=c,t[15]=m,t[16]=g,t[17]=v,t[18]=y,t[19]=b):b=t[19];let x;t[20]===s?x=t[21]:(x=(0,h.jsx)(`figcaption`,{className:`schild text-[15px] text-text-3`,children:s}),t[20]=s,t[21]=x);let S;return t[22]!==b||t[23]!==x?(S=(0,h.jsxs)(`figure`,{className:`m-0 flex min-w-0 flex-col items-center gap-1`,children:[b,x]}),t[22]=b,t[23]=x,t[24]=S):S=t[24],S}function U(e){return(0,h.jsx)(`path`,{d:So(e.von,e.bis,86),fill:`none`,stroke:e.farbe,strokeWidth:4,strokeLinecap:`round`},`${e.von}-${e.bis}`)}function su(e){let t=(0,F.c)(11),{titel:n,rechts:i,children:a,className:o,id:s}=e,c;t[0]===o?c=t[1]:(c=r(`flex min-w-0 flex-col gap-4 rounded-2xl border border-linie bg-panel p-5 sm:p-6`,o),t[0]=o,t[1]=c);let l;t[2]!==i||t[3]!==n?(l=(n||i)&&(0,h.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[n&&(0,h.jsx)(`h2`,{className:`schild text-lg font-bold tracking-[0.22em] text-foreground`,children:n}),i]}),t[2]=i,t[3]=n,t[4]=l):l=t[4];let u;return t[5]!==a||t[6]!==s||t[7]!==c||t[8]!==l||t[9]!==n?(u=(0,h.jsxs)(`section`,{id:s,"aria-label":n,className:c,children:[l,a]}),t[5]=a,t[6]=s,t[7]=c,t[8]=l,t[9]=n,t[10]=u):u=t[10],u}var cu={ok:{feld:`border-gruen-rand bg-gruen-grund`,name:`text-gruen`,wert:`text-gruen-text`},aus:{feld:`border-aus-rand bg-aus-grund`,name:`text-aus-text`,wert:`text-text-3`},warn:{feld:`border-bernstein bg-bernstein-lampe lampe-atmet`,name:`text-bernstein`,wert:`text-[#f2c46b]`},info:{feld:`border-cyan-rand bg-cyan-grund`,name:`text-cyan`,wert:`text-cyan-text`},fehler:{feld:`border-rot bg-rot-grund shadow-[0_0_18px_rgba(255,90,79,0.35)]`,name:`text-rot`,wert:`text-rot-text`}},lu={ok:`in Ordnung`,aus:`aus`,warn:`braucht Aufmerksamkeit`,info:`Info`,fehler:`Störung`};function uu(e){let t=(0,F.c)(19),{lampe:n}=e,i=cu[n.zustand]??cu.aus,a;t[0]===i.feld?a=t[1]:(a=r(`flex min-h-[58px] flex-col items-center justify-center gap-0.5 rounded-lg border px-2 py-2 text-center`,i.feld),t[0]=i.feld,t[1]=a);let o;t[2]===i.name?o=t[3]:(o=r(`schild text-[17px] leading-none font-bold tracking-[0.18em]`,i.name),t[2]=i.name,t[3]=o);let s;t[4]!==n.label||t[5]!==o?(s=(0,h.jsx)(`span`,{className:o,children:n.label}),t[4]=n.label,t[5]=o,t[6]=s):s=t[6];let c;t[7]===i.wert?c=t[8]:(c=r(`ziffern text-xs uppercase`,i.wert),t[7]=i.wert,t[8]=c);let l;t[9]!==n.wert||t[10]!==c?(l=(0,h.jsx)(`span`,{className:c,children:n.wert}),t[9]=n.wert,t[10]=c,t[11]=l):l=t[11];let u=lu[n.zustand],d;t[12]===u?d=t[13]:(d=(0,h.jsx)(`span`,{className:`sr-only`,children:u}),t[12]=u,t[13]=d);let f;return t[14]!==a||t[15]!==s||t[16]!==l||t[17]!==d?(f=(0,h.jsxs)(`li`,{className:a,children:[s,l,d]}),t[14]=a,t[15]=s,t[16]=l,t[17]=d,t[18]=f):f=t[18],f}function du(e){let t=(0,F.c)(26),{zustand:n,lampen:i,onAnsehen:a}=e,o;t[0]===n?o=t[1]:(o=To(n),t[0]=n,t[1]=o);let s=o,c=s.art===`gelb`||s.art===`rot`,l=!c,u=`${s.oben} ${s.mitte}`,d=wo[s.art],f=c?`cursor-pointer`:`cursor-default`,p;t[2]!==d||t[3]!==f?(p=r(`flex min-h-[130px] flex-col items-center justify-center gap-1 rounded-2xl border px-4 py-4 font-anzeige transition-colors`,d,f),t[2]=d,t[3]=f,t[4]=p):p=t[4];let m;t[5]===s.oben?m=t[6]:(m=(0,h.jsx)(`span`,{className:`schild text-sm tracking-[0.26em]`,children:s.oben}),t[5]=s.oben,t[6]=m);let g;t[7]===s.mitte?g=t[8]:(g=(0,h.jsx)(`span`,{className:`text-[40px] leading-none font-bold tracking-[0.04em] sm:text-[44px]`,children:s.mitte}),t[7]=s.mitte,t[8]=g);let _;t[9]===s.unten?_=t[10]:(_=(0,h.jsx)(`span`,{className:`font-sans text-sm opacity-80`,children:s.unten}),t[9]=s.unten,t[10]=_);let v;t[11]!==a||t[12]!==l||t[13]!==u||t[14]!==p||t[15]!==m||t[16]!==g||t[17]!==_?(v=(0,h.jsxs)(`button`,{type:`button`,onClick:a,disabled:l,"aria-label":u,className:p,children:[m,g,_]}),t[11]=a,t[12]=l,t[13]=u,t[14]=p,t[15]=m,t[16]=g,t[17]=_,t[18]=v):v=t[18];let y;t[19]===i?y=t[20]:(y=i.map(fu),t[19]=i,t[20]=y);let b;t[21]===y?b=t[22]:(b=(0,h.jsx)(`ul`,{className:`grid grid-cols-2 gap-2.5 rounded-2xl border border-linie bg-panel p-3 sm:grid-cols-4`,children:y}),t[21]=y,t[22]=b);let x;return t[23]!==v||t[24]!==b?(x=(0,h.jsxs)(`section`,{"aria-label":`Warnpanel`,className:`grid gap-4 md:grid-cols-[260px_minmax(0,1fr)] md:gap-5`,children:[v,b]}),t[23]=v,t[24]=b,t[25]=x):x=t[25],x}function fu(e){return(0,h.jsx)(uu,{lampe:e},e.id)}function pu(e){let t=(0,F.c)(2),{z:n}=e,r;return t[0]===n?r=t[1]:(r=(0,h.jsx)(`span`,{className:`ziffern inline-flex h-[1.75em] w-[1.1875em] shrink-0 items-center justify-center rounded-md border border-[#2a3036] bg-[#0b0d0f] font-medium`,children:n}),t[0]=n,t[1]=r),r}function mu(e){let t=(0,F.c)(25),{sekunden:n}=e,r;t[0]===n?r=t[1]:(r=cs(n),t[0]=n,t[1]=r);let i=r,a=String(Math.min(i?.[0]??0,99)),o;t[2]===a?o=t[3]:(o=a.padStart(2,`0`),t[2]=a,t[3]=o);let s=o,c=String(i?.[1]??0),l;t[4]===c?l=t[5]:(l=c.padStart(2,`0`),t[4]=c,t[5]=l);let u=l,d=i?`Laufzeit ohne Neustart: ${i[0]} Tage, ${i[1]} Stunden`:`Laufzeit unbekannt`,f=i?s[0]:`–`,p;t[6]===f?p=t[7]:(p=(0,h.jsx)(pu,{z:f}),t[6]=f,t[7]=p);let m=i?s[1]:`–`,g;t[8]===m?g=t[9]:(g=(0,h.jsx)(pu,{z:m}),t[8]=m,t[9]=g);let _;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,h.jsx)(`span`,{className:`schild mr-[0.444em] ml-[0.111em] text-[0.5625em] font-bold text-text-3`,children:`T`}),t[10]=_):_=t[10];let v=i?u[0]:`–`,y;t[11]===v?y=t[12]:(y=(0,h.jsx)(pu,{z:v}),t[11]=v,t[12]=y);let b=i?u[1]:`–`,x;t[13]===b?x=t[14]:(x=(0,h.jsx)(pu,{z:b}),t[13]=b,t[14]=x);let S;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,h.jsx)(`span`,{className:`schild ml-[0.111em] text-[0.5625em] font-bold text-text-3`,children:`H`}),t[15]=S):S=t[15];let C;t[16]!==y||t[17]!==x||t[18]!==p||t[19]!==g||t[20]!==d?(C=(0,h.jsxs)(`div`,{"aria-label":d,role:`img`,className:`flex h-[min(75cqw,150px)] items-center gap-[0.1875em] pb-[min(10cqw,20px)] text-[length:clamp(14px,14.5cqw,32px)]`,children:[p,g,_,y,x,S]}),t[16]=y,t[17]=x,t[18]=p,t[19]=g,t[20]=d,t[21]=C):C=t[21];let w;t[22]===Symbol.for(`react.memo_cache_sentinel`)?(w=(0,h.jsx)(`figcaption`,{className:`schild text-[15px] text-text-3`,children:`Ohne Neustart`}),t[22]=w):w=t[22];let T;return t[23]===C?T=t[24]:(T=(0,h.jsxs)(`figure`,{className:`@container m-0 flex min-w-0 flex-col items-center justify-end gap-1`,children:[C,w]}),t[23]=C,t[24]=T),T}function hu(e){let t=(0,F.c)(47),{box:n}=e,r=Yo(),i=r?.ram_used??n.ram_used,a=r?.ram_total??n.ram_total,o=r?.temp_cpu??n.temp_cpu,s=r?.temp_gpu??n.temp_gpu,c=n.platte,l=r?.uptime_s??n.uptime_s,u=i!=null&&a?i/a:null,d;t[0]===i?d=t[1]:(d=i==null?`–`:String(Math.round(V(i)??0)),t[0]=i,t[1]=d);let f;t[2]===a?f=t[3]:(f=a?`von ${Math.round(V(a)??0)} GB`:void 0,t[2]=a,t[3]=f);let p;t[4]!==u||t[5]!==i||t[6]!==a?(p=u==null?`Speicher unbekannt`:`Speicher: ${ls(i)} von ${ls(a)} belegt`,t[4]=u,t[5]=i,t[6]=a,t[7]=p):p=t[7];let m;t[8]!==u||t[9]!==d||t[10]!==f||t[11]!==p?(m=(0,h.jsx)(ou,{beschriftung:`Speicher`,anteil:u,mitte:d,unter:f,ariaText:p}),t[8]=u,t[9]=d,t[10]=f,t[11]=p,t[12]=m):m=t[12];let g=o==null?null:o/100,_;t[13]===o?_=t[14]:(_=Co(o),t[13]=o,t[14]=_);let v;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(v=[{von:.7,bis:.85,farbe:`var(--bernstein)`},{von:.85,bis:1,farbe:`var(--rot)`}],t[15]=v):v=t[15];let y;t[16]===o?y=t[17]:(y=o==null?`–`:`${Math.round(o)}°`,t[16]=o,t[17]=y);let b;t[18]===s?b=t[19]:(b=s==null?void 0:`GPU ${Math.round(s)}°`,t[18]=s,t[19]=b);let x;t[20]===o?x=t[21]:(x=o==null?`Temperatur unbekannt`:`Temperatur ${Math.round(o)} Grad`,t[20]=o,t[21]=x);let S;t[22]!==x||t[23]!==g||t[24]!==_||t[25]!==y||t[26]!==b?(S=(0,h.jsx)(ou,{beschriftung:`Temperatur`,anteil:g,farbe:_,zonen:v,mitte:y,unter:b,ariaText:x}),t[22]=x,t[23]=g,t[24]=_,t[25]=y,t[26]=b,t[27]=S):S=t[27];let C=c?c.percent/100:null,w=c&&c.percent>=90?`var(--rot)`:c&&c.percent>=80?`var(--bernstein)`:`var(--cyan)`,T;t[28]===c?T=t[29]:(T=c?`${Math.round(c.percent)}%`:`–`,t[28]=c,t[29]=T);let ee;t[30]===c?ee=t[31]:(ee=c?`${ls(c.used)} / ${ls(c.total)}`:void 0,t[30]=c,t[31]=ee);let E;t[32]===c?E=t[33]:(E=c?`Platte zu ${Math.round(c.percent)} Prozent belegt`:`Platte unbekannt`,t[32]=c,t[33]=E);let te;t[34]!==C||t[35]!==w||t[36]!==T||t[37]!==ee||t[38]!==E?(te=(0,h.jsx)(ou,{beschriftung:`Platte`,anteil:C,farbe:w,mitte:T,unter:ee,ariaText:E}),t[34]=C,t[35]=w,t[36]=T,t[37]=ee,t[38]=E,t[39]=te):te=t[39];let D;t[40]===l?D=t[41]:(D=(0,h.jsx)(mu,{sekunden:l}),t[40]=l,t[41]=D);let ne;return t[42]!==S||t[43]!==te||t[44]!==D||t[45]!==m?(ne=(0,h.jsxs)(`section`,{"aria-label":`Instrumente`,className:`grid grid-cols-2 gap-x-4 gap-y-6 rounded-2xl border border-linie bg-panel px-4 py-5 lg:grid-cols-4 lg:px-6`,children:[m,S,te,D]}),t[42]=S,t[43]=te,t[44]=D,t[45]=m,t[46]=ne):ne=t[46],ne}var gu={bestanden:`gruen`,durchgefallen:`rot`,wartet:`cyan`,neu:`cyan`};function _u(e){let t=(0,F.c)(14),{radar:n}=e;if(!n?.kandidaten)return null;let r,i;t[0]===n.kandidaten?(r=t[1],i=t[2]):(r=n.kandidaten.filter(yu),i=r.find(vu)??r[0],t[0]=n.kandidaten,t[1]=r,t[2]=i);let a=i,o=r.length===1?``:`en`,s;t[3]!==r.length||t[4]!==o?(s=(0,h.jsxs)(`span`,{className:`schild text-sm text-cyan`,children:[`Radar · `,r.length,` Kandidat`,o]}),t[3]=r.length,t[4]=o,t[5]=s):s=t[5];let l;t[6]===a?l=t[7]:(l=a?(0,h.jsxs)(`span`,{className:`flex flex-wrap items-center gap-2 text-[15px]`,children:[(0,h.jsx)(`span`,{className:`ziffern`,children:a.name}),(0,h.jsxs)(`span`,{className:`text-text-2`,children:[`fürs `,a.rolle===`hirn`?`Hirn`:`Coden`]}),(0,h.jsx)(eu,{art:gu[a.status]??`grau`,children:Ao[a.status]??a.status})]}):(0,h.jsx)(`span`,{className:`text-[15px] text-text-2`,children:`Nichts Besseres in Sicht.`}),t[6]=a,t[7]=l);let u;t[8]!==s||t[9]!==l?(u=(0,h.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1`,children:[s,l]}),t[8]=s,t[9]=l,t[10]=u):u=t[10];let d;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,h.jsx)(c,{variant:`info`,size:`sm`,asChild:!0,children:(0,h.jsx)(ga,{to:`/modelle`,hash:`radar`,children:`Ansehen`})}),t[11]=d):d=t[11];let f;return t[12]===u?f=t[13]:(f=(0,h.jsxs)(`div`,{className:`mt-auto flex flex-wrap items-center justify-between gap-3 rounded-xl border border-cyan-rand bg-cyan-grund px-4 py-3.5`,children:[u,d]}),t[12]=u,t[13]=f),f}function vu(e){return e.status===`bestanden`}function yu(e){return[`bestanden`,`wartet`,`neu`].includes(e.status)}function bu(){let e=(0,F.c)(32),{data:t,error:n,isPending:r}=ps(),i=gs();if(r){let t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,h.jsx)(tu,{text:`Die Box meldet sich gleich …`}),e[0]=t):t=e[0],t}if(!t){let t=`MC2 antwortet nicht: ${n?.message??`keine Daten`}`,r;return e[1]===t?r=e[2]:(r=(0,h.jsx)(tu,{fehler:!0,text:t}),e[1]=t,e[2]=r),r}let a=t.hinweise.length,o;e[3]!==t.lampen||e[4]!==t.zustand?(o=(0,h.jsx)(du,{zustand:t.zustand,lampen:t.lampen,onAnsehen:xu}),e[3]=t.lampen,e[4]=t.zustand,e[5]=o):o=e[5];let s;e[6]===t.box?s=e[7]:(s=(0,h.jsx)(hu,{box:t.box}),e[6]=t.box,e[7]=s);let c=a?`ziffern text-sm text-bernstein`:`ziffern text-sm text-gruen`,l=a?`${a} offen`:`alles erledigt`,u;e[8]!==c||e[9]!==l?(u=(0,h.jsx)(`span`,{className:c,children:l}),e[8]=c,e[9]=l,e[10]=u):u=e[10];let d;e[11]!==t.hinweise||e[12]!==t.verlauf?(d=(0,h.jsx)(Xl,{hinweise:t.hinweise,verlauf:t.verlauf}),e[11]=t.hinweise,e[12]=t.verlauf,e[13]=d):d=e[13];let f;e[14]!==u||e[15]!==d?(f=(0,h.jsx)(su,{titel:`Checkliste`,id:`checkliste`,rechts:u,children:d}),e[14]=u,e[15]=d,e[16]=f):f=e[16];let p;e[17]!==t.flugplan.gelaufen||e[18]!==t.flugplan.geplant?(p=(0,h.jsx)(iu,{gelaufen:t.flugplan.gelaufen,geplant:t.flugplan.geplant}),e[17]=t.flugplan.gelaufen,e[18]=t.flugplan.geplant,e[19]=p):p=e[19];let m;e[20]===i.data?m=e[21]:(m=(0,h.jsx)(_u,{radar:i.data}),e[20]=i.data,e[21]=m);let g;e[22]!==p||e[23]!==m?(g=(0,h.jsxs)(su,{titel:`Flugplan`,children:[p,m]}),e[22]=p,e[23]=m,e[24]=g):g=e[24];let _;e[25]!==f||e[26]!==g?(_=(0,h.jsxs)(`div`,{className:`grid gap-5 lg:grid-cols-[minmax(0,1.35fr)_minmax(0,1fr)] md:gap-6`,children:[f,g]}),e[25]=f,e[26]=g,e[27]=_):_=e[27];let v;return e[28]!==o||e[29]!==s||e[30]!==_?(v=(0,h.jsxs)(h.Fragment,{children:[o,s,_]}),e[28]=o,e[29]=s,e[30]=_,e[31]=v):v=e[31],v}function xu(){return document.getElementById(`checkliste`)?.scrollIntoView({behavior:`smooth`,block:`start`})}var W=xa({component:Kl,notFoundComponent:()=>(0,h.jsx)(ta,{to:`/`})}),Su=ya({getParentRoute:()=>W,path:`/`,component:bu}),Cu=ya({getParentRoute:()=>W,path:`/updates`,component:Sa(()=>Ll(()=>import(`./Updates-pvSCGi9I.js`),__vite__mapDeps([8,1,5,3,9])),`UpdatesSeite`)}),wu=ya({getParentRoute:()=>W,path:`/modelle`,component:Sa(()=>Ll(()=>import(`./Modelle-D5h4V30V.js`),__vite__mapDeps([10,1,2,3,5,9])),`ModelleSeite`)}),Tu=ya({getParentRoute:()=>W,path:`/homelab`,component:Sa(()=>Ll(()=>import(`./Homelab-BhIvbmk3.js`),__vite__mapDeps([11,1,5,3])),`HomelabSeite`)}),Eu=ya({getParentRoute:()=>W,path:`/homelab/updates`,component:Sa(()=>Ll(()=>import(`./Homelab-BhIvbmk3.js`),__vite__mapDeps([11,1,5,3])),`HomelabUpdatesSeite`)}),Du=za({routeTree:W.addChildren([Su,Cu,wu,Tu,Eu]),defaultPreload:`intent`,defaultErrorComponent:Ga}),Ou=`mc_neuladen_wegen_version`;function ku(){window.addEventListener(`vite:preloadError`,e=>{sessionStorage.getItem(Ou)||(e.preventDefault(),sessionStorage.setItem(Ou,`1`),window.location.reload())}),window.addEventListener(`load`,()=>{window.setTimeout(()=>sessionStorage.removeItem(Ou),5e3)})}ku();var Au=new Ye({defaultOptions:{queries:{retry:1,refetchOnWindowFocus:!1,staleTime:5e3}}});(0,Wa.createRoot)(document.getElementById(`root`)).render((0,h.jsx)(m.StrictMode,{children:(0,h.jsx)(v,{client:Au,children:(0,h.jsx)(Ha,{router:Du})})}));export{V as $,Ns as A,qs as B,Gs as C,Hs as D,Ws as E,hs as F,Js as G,vs as H,zs as I,Ds as J,ys as K,xs as L,_s as M,Fs as N,ks as O,ms as P,as as Q,gs as R,Ss as S,Vs as T,Ys as U,Ls as V,ps as W,Us as X,bs as Y,Ps as Z,fl as _,Ki as _t,Ml as a,Ao as at,As as b,_ as bt,nl as c,jo as ct,vl as d,I as dt,ls as et,ml as f,L as ft,pl as g,Ji as gt,sl as h,ea as ht,tu as i,wo as it,Os as j,Rs as k,_l as l,ko as lt,ll as m,Xa as mt,su as n,Yo as nt,Nl as o,Do as ot,cl as p,no as pt,Ks as q,eu as r,Io as rt,ol as s,Oo as st,uu as t,us as tt,hl as u,po as ut,Zs as v,bi as vt,Ms as w,js as x,Xs as y,lt as yt,Is as z}; \ No newline at end of file diff --git a/frontend/dist/index.html b/frontend/dist/index.html index 5213a6c..e2eb67d 100644 --- a/frontend/dist/index.html +++ b/frontend/dist/index.html @@ -7,9 +7,9 @@ Homelab Orchestrator - + - +
diff --git a/frontend/src/components/homelab/GeraeteListe.tsx b/frontend/src/components/homelab/GeraeteListe.tsx index 5c2572a..c03fd48 100644 --- a/frontend/src/components/homelab/GeraeteListe.tsx +++ b/frontend/src/components/homelab/GeraeteListe.tsx @@ -3,7 +3,9 @@ import { RefreshCw } from "lucide-react" import { cn } from "cn" import { Bestaetigen } from "@/components/cockpit/Bestaetigen" import { Button } from "@/components/ui/button" -import { appBaustein, artText, listenAlter, systemBaustein, versionText } from "@/lib/homelab" +import { + appBaustein, artText, listenAlter, PLATTE_GELB, PLATTE_ROT, plattenAnteil, systemBaustein, versionText, +} from "@/lib/homelab" import type { BausteinStand, ZielAktion, ZielStand } from "@/lib/typen" type Frage = { ziel: ZielStand; aktion: ZielAktion } | null @@ -40,6 +42,19 @@ function SystemText({ b }: { b: BausteinStand }) { ) } +/** Belegung der Platte: ruhig bis 85 %, dann bernstein, ab 95 % rot. */ +function PlatteZelle({ ziel }: { ziel: ZielStand }) { + const anteil = plattenAnteil(ziel) + if (anteil === null) return – + const farbe = anteil >= PLATTE_ROT ? "text-rot-text" : anteil >= PLATTE_GELB ? "text-bernstein" : "text-text-2" + const gb = (n: number) => (n / 1e9).toFixed(1).replace(".", ",") + return ( + + {Math.min(100, Math.round(anteil * 100))} %{anteil >= PLATTE_ROT ? " voll" : ""} + + ) +} + function Zeile({ ziel, laeuft, gesperrt, onFrage }: { ziel: ZielStand laeuft: string | null @@ -53,7 +68,7 @@ function Zeile({ ziel, laeuft, gesperrt, onFrage }: { return (
{ziel.name} @@ -72,6 +87,10 @@ function Zeile({ ziel, laeuft, gesperrt, onFrage }: { )} + + Platte + +
Gerät App Pakete + Platte Netz
{ziele.map((z) => ( diff --git a/frontend/src/components/homelab/UpdateListe.test.tsx b/frontend/src/components/homelab/UpdateListe.test.tsx index 82b9d40..86bca74 100644 --- a/frontend/src/components/homelab/UpdateListe.test.tsx +++ b/frontend/src/components/homelab/UpdateListe.test.tsx @@ -80,4 +80,10 @@ describe("GeraeteListe", () => { fireEvent.click(within(screen.getByRole("dialog")).getByRole("button", { name: "Nach Updates suchen" })) expect(start).toHaveBeenCalledWith(suchen) }) + + it("zeigt die Belegung der Platte und sagt „voll“ ab 95 %", () => { + render( {}} />) + expect(screen.getByText("98 % voll")).toHaveAttribute("title", "2,0 von 2,0 GB belegt") + }) }) diff --git a/frontend/src/lib/homelab.test.ts b/frontend/src/lib/homelab.test.ts index 5794a2a..6d3859c 100644 --- a/frontend/src/lib/homelab.test.ts +++ b/frontend/src/lib/homelab.test.ts @@ -53,6 +53,12 @@ describe("lampeFuer", () => { expect(lampeFuer(arcane, false).label).toBe("Arcane") }) + it("warnt bei voller Platte vor allem anderen außer Stille", () => { + expect(lampeFuer({ ...netbird, platte: { belegt: 98, gesamt: 100 } }, true)).toMatchObject({ zustand: "fehler", wert: "Platte voll" }) + expect(lampeFuer({ ...npm, platte: { belegt: 90, gesamt: 100 } }, false)).toMatchObject({ zustand: "warn", wert: "Platte 90 %" }) + expect(lampeFuer({ ...npm, platte: { belegt: 50, gesamt: 100 } }, false).zustand).toBe("ok") + }) + it("meldet ein stummes Gerät rot und ein laufendes Update als Info", () => { expect(lampeFuer({ ...npm, erreichbar: false }, false).zustand).toBe("fehler") expect(lampeFuer(npm, true)).toMatchObject({ zustand: "info", wert: "Update läuft" }) diff --git a/frontend/src/lib/homelab.ts b/frontend/src/lib/homelab.ts index 677067e..38dfbec 100644 --- a/frontend/src/lib/homelab.ts +++ b/frontend/src/lib/homelab.ts @@ -81,10 +81,24 @@ export function neuText(b: BausteinStand): string { return b.kurz || b.verfuegbar || "neu" } +/** Anteil der belegten Platte (0…1) oder null, wo unbekannt. Ab 85 % gelb, ab 95 % rot — wie der Wächter. */ +export function plattenAnteil(ziel: ZielStand): number | null { + const p = ziel.platte + return p && p.gesamt > 0 ? p.belegt / p.gesamt : null +} + +export const PLATTE_GELB = 0.85 +export const PLATTE_ROT = 0.95 + export function lampeFuer(ziel: ZielStand, laeuft: boolean): Lampe { const label = kurzname(ziel) + const platte = plattenAnteil(ziel) if (ziel.erreichbar === false) return { id: ziel.id, label, zustand: "fehler", wert: "antwortet nicht" } + if (platte !== null && platte >= PLATTE_ROT) return { id: ziel.id, label, zustand: "fehler", wert: "Platte voll" } if (laeuft) return { id: ziel.id, label, zustand: "info", wert: "Update läuft" } + if (platte !== null && platte >= PLATTE_GELB) { + return { id: ziel.id, label, zustand: "warn", wert: `Platte ${Math.round(platte * 100)} %` } + } const neu = ziel.bausteine.filter((b) => b.zustand === "neu") if (neu.length > 0) { const b = neu.find((x) => APP.has(x.id)) ?? neu[0] diff --git a/frontend/src/lib/typen.ts b/frontend/src/lib/typen.ts index 42b8952..880d7fe 100644 --- a/frontend/src/lib/typen.ts +++ b/frontend/src/lib/typen.ts @@ -280,6 +280,8 @@ export interface ZielStand { rueckweg: string | null /** Kurzform des Rückwegs; ältere Stände liefern nur den Text. */ rueckweg_art?: "snapshot" | "sicherung" | "keiner" | null + /** Belegung der Platte in Bytes, wo bekannt (laufende Container). */ + platte?: { belegt: number; gesamt: number } | null zaehlung: Partial> offen: number }