diff --git a/frontend/dist/assets/Auftraege-AvxzcTvv.js b/frontend/dist/assets/Auftraege-AvxzcTvv.js deleted file mode 100644 index 23ca47f..0000000 --- a/frontend/dist/assets/Auftraege-AvxzcTvv.js +++ /dev/null @@ -1,2 +0,0 @@ -import{a as e,c as t,i as n,r,t as i}from"./dist-aE7UmubC.js";import{A as a,ct as o,j as s,k as c,ot as l,wt as u}from"./abfragen-DKcWnZ8a.js";import{M as d}from"./index-BUHDF9RN.js";import{t as f}from"./button-DwYvdWVr.js";import{t as p}from"./Bestaetigen-BemBWZzN.js";import{t as m}from"./Panel-uT1S5ZGr.js";var h=r();function g(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 _(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 v(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 y=e=>e.group===`download`||/^download\s/i.test(e.label),b=e=>e.group===`pruefen`||e.label===`Nach Updates suchen`,x=e=>u(e)&&y(e),S=[[/^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`]],C=[[`Engine (llama.cpp)`,`Motor`],[`Router (llama-swap)`,`llama-swap`],[`Hermes-Agent`,`Hermes`],[`OS (apt)`,`Betriebssystem`]];function w(e){for(let[t,n]of S)if(t.test(e.label))return e.label.replace(t,n);return e.label.startsWith(`Alle aktualisieren`)?C.reduce((e,[t,n])=>e.split(t).join(n),e.label):e.label}function T(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 E(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 D(e){if(e.progress==null)return null;let t=[`${Math.round(e.progress)} %`];return e.total_bytes&&t.push(`${o(e.done_bytes??0,1)} von ${o(e.total_bytes,1)}`),e.eta_s!=null&&u(e)&&t.push(T(e.eta_s)),t.join(` · `)}function O(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 k(e,t=Date.now()/1e3){let n=e.filter(u).sort((e,t)=>e.started_at-t.started_at),r=e.filter(e=>!u(e)&&!e.quittiert&&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 A(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 j(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 M=t(e(),1),N=n(),P={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`}},F={queued:`bg-cyan`,running:`bg-cyan`,done:`bg-gruen`,failed:`bg-rot`,canceled:`bg-text-3`},I=e=>l(new Date(e*1e3).toISOString());function L(e){let t=(0,h.c)(3),[n,r]=(0,M.useState)(R),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,M.useEffect)(i,a),n}function R(){return Date.now()/1e3}function z(e){let t=(0,h.c)(76),{job:n,onAbbrechen:r,onQuittieren:a,abbrechenGesperrt:o,ebene:s}=e,c=s===void 0?4:s,[l,m]=(0,M.useState)(!1),[g,_]=(0,M.useState)(!1),v;t[0]===n.state?v=t[1]:(v=P[n.state]??{text:n.state,art:`grau`},t[0]=n.state,t[1]=v);let b=v,S;t[2]===n?S=t[3]:(S=w(n),t[2]=n,t[3]=S);let C=S,T;t[4]===n?T=t[5]:(T=D(n),t[4]=n,t[5]=T);let k=T,A;t[6]===n?A=t[7]:(A=O(n),t[6]=n,t[7]=A);let j=A,R;t[8]===n?R=t[9]:(R=u(n),t[8]=n,t[9]=R);let z=R,B=L(z),V;t[10]!==n||t[11]!==r?(V=!!r&&x(n),t[10]=n,t[11]=r,t[12]=V):V=t[12];let H=V,U,W,G,K,q,J,Y,X;if(t[13]!==o||t[14]!==H||t[15]!==c||t[16]!==k||t[17]!==B||t[18]!==n||t[19]!==z||t[20]!==j||t[21]!==a||t[22]!==g||t[23]!==C||t[24]!==b.art||t[25]!==b.text){let e=(n.log??[]).slice(-12),r=c===3?`h3`:`h4`;Y=`Auftrag: ${C}`,X=`flex flex-col gap-2.5 flaeche-innen rounded-2xl p-3.5`;let s;t[34]!==r||t[35]!==C?(s=(0,N.jsx)(r,{className:`m-0 min-w-0 text-[15px] leading-snug font-semibold break-words`,children:C}),t[34]=r,t[35]=C,t[36]=s):s=t[36];let l;t[37]!==b.art||t[38]!==b.text?(l=(0,N.jsx)(d,{art:b.art,children:b.text}),t[37]=b.art,t[38]=b.text,t[39]=l):l=t[39],t[40]!==s||t[41]!==l?(U=(0,N.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[s,l]}),t[40]=s,t[41]=l,t[42]=U):U=t[42],t[43]!==n.progress||t[44]!==n.state||t[45]!==C?(W=n.progress!=null&&(0,N.jsx)(`div`,{role:`progressbar`,"aria-label":`Fortschritt: ${C}`,"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":Math.round(n.progress),className:`h-2 overflow-hidden rounded-full bg-linie`,children:(0,N.jsx)(`div`,{className:i(`h-full`,F[n.state]??`bg-cyan`),style:{width:`${Math.max(2,Math.min(100,n.progress))}%`}})}),t[43]=n.progress,t[44]=n.state,t[45]=C,t[46]=W):W=t[46];let u;t[47]!==k||t[48]!==B||t[49]!==n||t[50]!==z||t[51]!==b.text?(u=z?k??E(n,B):`${b.text} · ${I(n.finished_at??n.started_at)}`,t[47]=k,t[48]=B,t[49]=n,t[50]=z,t[51]=b.text,t[52]=u):u=t[52],t[53]===u?G=t[54]:(G=(0,N.jsx)(`p`,{className:`ziffern m-0 text-sm text-text-2`,children:u}),t[53]=u,t[54]=G),t[55]!==n.progress||t[56]!==n.state||t[57]!==z||t[58]!==j?(K=j&&(n.state===`failed`||z&&n.progress==null)&&(0,N.jsx)(`p`,{className:n.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:n.state===`failed`?`Letzte Meldung: ${j}`:j}),t[55]=n.progress,t[56]=n.state,t[57]=z,t[58]=j,t[59]=K):K=t[59],q=(H||e.length>1||!z&&a)&&(0,N.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[H&&(0,N.jsx)(f,{variant:`outline`,size:`sm`,disabled:o,onClick:()=>m(!0),children:`Abbrechen`}),e.length>1&&(0,N.jsx)(f,{variant:`ghost`,size:`sm`,"aria-expanded":g,onClick:()=>_(!g),children:g?`Protokoll zu`:`Protokoll`}),!z&&a&&(0,N.jsx)(f,{variant:`outline`,size:`sm`,className:`ml-auto`,onClick:()=>a(n),children:`Ausblenden`})]}),J=g&&(0,N.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(` -`)}),t[13]=o,t[14]=H,t[15]=c,t[16]=k,t[17]=B,t[18]=n,t[19]=z,t[20]=j,t[21]=a,t[22]=g,t[23]=C,t[24]=b.art,t[25]=b.text,t[26]=U,t[27]=W,t[28]=G,t[29]=K,t[30]=q,t[31]=J,t[32]=Y,t[33]=X}else U=t[26],W=t[27],G=t[28],K=t[29],q=t[30],J=t[31],Y=t[32],X=t[33];let Z;t[60]!==H||t[61]!==l||t[62]!==n||t[63]!==r||t[64]!==C?(Z=H&&(0,N.jsx)(p,{offen:l,gefahr:!0,titel:`Auftrag abbrechen?`,text:y(n)?`Der ${C} stoppt. Du kannst ihn später über „Modelle selbst suchen“ neu starten.`:`„${C}“ wird abgebrochen.`,knopf:`Ja, abbrechen`,neinKnopf:`Weiterlaufen lassen`,onNein:()=>m(!1),onJa:()=>{l&&(m(!1),r?.(n))}}),t[60]=H,t[61]=l,t[62]=n,t[63]=r,t[64]=C,t[65]=Z):Z=t[65];let Q;return t[66]!==U||t[67]!==W||t[68]!==G||t[69]!==K||t[70]!==q||t[71]!==J||t[72]!==Z||t[73]!==Y||t[74]!==X?(Q=(0,N.jsxs)(`article`,{"aria-label":Y,className:X,children:[U,W,G,K,q,J,Z]}),t[66]=U,t[67]=W,t[68]=G,t[69]=K,t[70]=q,t[71]=J,t[72]=Z,t[73]=Y,t[74]=X,t[75]=Q):Q=t[75],Q}function B(e){let t=(0,h.c)(19),{alsPanel:n}=e,r=n!==void 0&&n,i=s(),o=c(),l=a(),u,d;if(t[0]!==o||t[1]!==r||t[2]!==i.data||t[3]!==i.error||t[4]!==i.isError||t[5]!==l){d=Symbol.for(`react.early_return_sentinel`);bb0:{let e=k(i.data?.jobs??[]);if(e.length>0){let n;t[8]!==o||t[9]!==r||t[10]!==l?(n=e=>(0,N.jsx)(z,{job:e,ebene:r?3:4,abbrechenGesperrt:o.isPending,onAbbrechen:e=>o.mutate({id:e.id,titel:w(e)}),onQuittieren:e=>l.mutate(e.id)},e.id),t[8]=o,t[9]=r,t[10]=l,t[11]=n):n=t[11],u=(0,N.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[12]===i.error.message?e=t[13]:(e=(0,N.jsxs)(`p`,{role:`alert`,className:`text-sm text-rot-text`,children:[`Die Aufträge lassen sich gerade nicht lesen: `,i.error.message]}),t[12]=i.error.message,t[13]=e),u=e}else{d=null;break bb0}}t[0]=o,t[1]=r,t[2]=i.data,t[3]=i.error,t[4]=i.isError,t[5]=l,t[6]=u,t[7]=d}else u=t[6],d=t[7];if(d!==Symbol.for(`react.early_return_sentinel`))return d;if(r){let e;return t[14]===u?e=t[15]:(e=(0,N.jsx)(m,{titel:`Aufträge`,children:u}),t[14]=u,t[15]=e),e}let f;t[16]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,N.jsx)(`h3`,{className:`etikett m-0 text-[11.5px] tracking-[0.16em] text-text-3`,children:`Aufträge`}),t[16]=f):f=t[16];let p;return t[17]===u?p=t[18]:(p=(0,N.jsxs)(`section`,{"aria-label":`Aufträge`,className:`flex flex-col gap-2.5`,children:[f,u]}),t[17]=u,t[18]=p),p}export{O as a,g as c,b as i,_ as n,v as o,j as r,A as s,B as t}; \ No newline at end of file diff --git a/frontend/dist/assets/Auftraege-Ddds-g-W.js b/frontend/dist/assets/Auftraege-Ddds-g-W.js new file mode 100644 index 0000000..a32c07e --- /dev/null +++ b/frontend/dist/assets/Auftraege-Ddds-g-W.js @@ -0,0 +1,2 @@ +import{a as e,c as t,i as n,r,t as i}from"./dist-aE7UmubC.js";import{A as a,Nt as o,_t as s,ht as c,j as l,k as u}from"./abfragen-pD_qBEtc.js";import{t as d}from"./button-BHVKhtQ6.js";import{V as f,m as p,p as m}from"./index-Bumw6krN.js";var h=r();function g(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 _(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 v(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 y=e=>e.group===`download`||/^download\s/i.test(e.label),b=e=>e.group===`pruefen`||e.label===`Nach Updates suchen`,x=e=>o(e)&&y(e),S=[[/^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`]],C=[[`Engine (llama.cpp)`,`Motor`],[`Router (llama-swap)`,`llama-swap`],[`Hermes-Agent`,`Hermes`],[`OS (apt)`,`Betriebssystem`]];function w(e){for(let[t,n]of S)if(t.test(e.label))return e.label.replace(t,n);return e.label.startsWith(`Alle aktualisieren`)?C.reduce((e,[t,n])=>e.split(t).join(n),e.label):e.label}function T(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 E(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 D(e){if(e.progress==null)return null;let t=[`${Math.round(e.progress)} %`];return e.total_bytes&&t.push(`${s(e.done_bytes??0,1)} von ${s(e.total_bytes,1)}`),e.eta_s!=null&&o(e)&&t.push(T(e.eta_s)),t.join(` · `)}function O(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 k(e,t=Date.now()/1e3){let n=e.filter(o).sort((e,t)=>e.started_at-t.started_at),r=e.filter(e=>!o(e)&&!e.quittiert&&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 A(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 j(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 M=t(e(),1),N=n(),P={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`}},F={queued:`bg-cyan`,running:`bg-cyan`,done:`bg-gruen`,failed:`bg-rot`,canceled:`bg-text-3`},I=e=>c(new Date(e*1e3).toISOString());function L(e){let t=(0,h.c)(3),[n,r]=(0,M.useState)(R),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,M.useEffect)(i,a),n}function R(){return Date.now()/1e3}function z(e){let t=(0,h.c)(76),{job:n,onAbbrechen:r,onQuittieren:a,abbrechenGesperrt:s,ebene:c}=e,l=c===void 0?4:c,[u,m]=(0,M.useState)(!1),[g,_]=(0,M.useState)(!1),v;t[0]===n.state?v=t[1]:(v=P[n.state]??{text:n.state,art:`grau`},t[0]=n.state,t[1]=v);let b=v,S;t[2]===n?S=t[3]:(S=w(n),t[2]=n,t[3]=S);let C=S,T;t[4]===n?T=t[5]:(T=D(n),t[4]=n,t[5]=T);let k=T,A;t[6]===n?A=t[7]:(A=O(n),t[6]=n,t[7]=A);let j=A,R;t[8]===n?R=t[9]:(R=o(n),t[8]=n,t[9]=R);let z=R,B=L(z),V;t[10]!==n||t[11]!==r?(V=!!r&&x(n),t[10]=n,t[11]=r,t[12]=V):V=t[12];let H=V,U,W,G,K,q,J,Y,X;if(t[13]!==s||t[14]!==H||t[15]!==l||t[16]!==k||t[17]!==B||t[18]!==n||t[19]!==z||t[20]!==j||t[21]!==a||t[22]!==g||t[23]!==C||t[24]!==b.art||t[25]!==b.text){let e=(n.log??[]).slice(-12),r=l===3?`h3`:`h4`;Y=`Auftrag: ${C}`,X=`flex flex-col gap-2.5 flaeche-innen rounded-2xl p-3.5`;let o;t[34]!==r||t[35]!==C?(o=(0,N.jsx)(r,{className:`m-0 min-w-0 text-[15px] leading-snug font-semibold break-words`,children:C}),t[34]=r,t[35]=C,t[36]=o):o=t[36];let c;t[37]!==b.art||t[38]!==b.text?(c=(0,N.jsx)(f,{art:b.art,children:b.text}),t[37]=b.art,t[38]=b.text,t[39]=c):c=t[39],t[40]!==o||t[41]!==c?(U=(0,N.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[o,c]}),t[40]=o,t[41]=c,t[42]=U):U=t[42],t[43]!==n.progress||t[44]!==n.state||t[45]!==C?(W=n.progress!=null&&(0,N.jsx)(`div`,{role:`progressbar`,"aria-label":`Fortschritt: ${C}`,"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":Math.round(n.progress),className:`h-2 overflow-hidden rounded-full bg-linie`,children:(0,N.jsx)(`div`,{className:i(`h-full`,F[n.state]??`bg-cyan`),style:{width:`${Math.max(2,Math.min(100,n.progress))}%`}})}),t[43]=n.progress,t[44]=n.state,t[45]=C,t[46]=W):W=t[46];let u;t[47]!==k||t[48]!==B||t[49]!==n||t[50]!==z||t[51]!==b.text?(u=z?k??E(n,B):`${b.text} · ${I(n.finished_at??n.started_at)}`,t[47]=k,t[48]=B,t[49]=n,t[50]=z,t[51]=b.text,t[52]=u):u=t[52],t[53]===u?G=t[54]:(G=(0,N.jsx)(`p`,{className:`ziffern m-0 text-sm text-text-2`,children:u}),t[53]=u,t[54]=G),t[55]!==n.progress||t[56]!==n.state||t[57]!==z||t[58]!==j?(K=j&&(n.state===`failed`||z&&n.progress==null)&&(0,N.jsx)(`p`,{className:n.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:n.state===`failed`?`Letzte Meldung: ${j}`:j}),t[55]=n.progress,t[56]=n.state,t[57]=z,t[58]=j,t[59]=K):K=t[59],q=(H||e.length>1||!z&&a)&&(0,N.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[H&&(0,N.jsx)(d,{variant:`outline`,size:`sm`,disabled:s,onClick:()=>m(!0),children:`Abbrechen`}),e.length>1&&(0,N.jsx)(d,{variant:`ghost`,size:`sm`,"aria-expanded":g,onClick:()=>_(!g),children:g?`Protokoll zu`:`Protokoll`}),!z&&a&&(0,N.jsx)(d,{variant:`outline`,size:`sm`,className:`ml-auto`,onClick:()=>a(n),children:`Ausblenden`})]}),J=g&&(0,N.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(` +`)}),t[13]=s,t[14]=H,t[15]=l,t[16]=k,t[17]=B,t[18]=n,t[19]=z,t[20]=j,t[21]=a,t[22]=g,t[23]=C,t[24]=b.art,t[25]=b.text,t[26]=U,t[27]=W,t[28]=G,t[29]=K,t[30]=q,t[31]=J,t[32]=Y,t[33]=X}else U=t[26],W=t[27],G=t[28],K=t[29],q=t[30],J=t[31],Y=t[32],X=t[33];let Z;t[60]!==H||t[61]!==u||t[62]!==n||t[63]!==r||t[64]!==C?(Z=H&&(0,N.jsx)(p,{offen:u,gefahr:!0,titel:`Auftrag abbrechen?`,text:y(n)?`Der ${C} stoppt. Du kannst ihn später über „Modelle selbst suchen“ neu starten.`:`„${C}“ wird abgebrochen.`,knopf:`Ja, abbrechen`,neinKnopf:`Weiterlaufen lassen`,onNein:()=>m(!1),onJa:()=>{u&&(m(!1),r?.(n))}}),t[60]=H,t[61]=u,t[62]=n,t[63]=r,t[64]=C,t[65]=Z):Z=t[65];let Q;return t[66]!==U||t[67]!==W||t[68]!==G||t[69]!==K||t[70]!==q||t[71]!==J||t[72]!==Z||t[73]!==Y||t[74]!==X?(Q=(0,N.jsxs)(`article`,{"aria-label":Y,className:X,children:[U,W,G,K,q,J,Z]}),t[66]=U,t[67]=W,t[68]=G,t[69]=K,t[70]=q,t[71]=J,t[72]=Z,t[73]=Y,t[74]=X,t[75]=Q):Q=t[75],Q}function B(e){let t=(0,h.c)(19),{alsPanel:n}=e,r=n!==void 0&&n,i=l(),o=u(),s=a(),c,d;if(t[0]!==o||t[1]!==r||t[2]!==i.data||t[3]!==i.error||t[4]!==i.isError||t[5]!==s){d=Symbol.for(`react.early_return_sentinel`);bb0:{let e=k(i.data?.jobs??[]);if(e.length>0){let n;t[8]!==o||t[9]!==r||t[10]!==s?(n=e=>(0,N.jsx)(z,{job:e,ebene:r?3:4,abbrechenGesperrt:o.isPending,onAbbrechen:e=>o.mutate({id:e.id,titel:w(e)}),onQuittieren:e=>s.mutate(e.id)},e.id),t[8]=o,t[9]=r,t[10]=s,t[11]=n):n=t[11],c=(0,N.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[12]===i.error.message?e=t[13]:(e=(0,N.jsxs)(`p`,{role:`alert`,className:`text-sm text-rot-text`,children:[`Die Aufträge lassen sich gerade nicht lesen: `,i.error.message]}),t[12]=i.error.message,t[13]=e),c=e}else{d=null;break bb0}}t[0]=o,t[1]=r,t[2]=i.data,t[3]=i.error,t[4]=i.isError,t[5]=s,t[6]=c,t[7]=d}else c=t[6],d=t[7];if(d!==Symbol.for(`react.early_return_sentinel`))return d;if(r){let e;return t[14]===c?e=t[15]:(e=(0,N.jsx)(m,{titel:`Aufträge`,children:c}),t[14]=c,t[15]=e),e}let f;t[16]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,N.jsx)(`h3`,{className:`etikett m-0 text-[11.5px] tracking-[0.16em] text-text-3`,children:`Aufträge`}),t[16]=f):f=t[16];let p;return t[17]===c?p=t[18]:(p=(0,N.jsxs)(`section`,{"aria-label":`Aufträge`,className:`flex flex-col gap-2.5`,children:[f,c]}),t[17]=c,t[18]=p),p}export{O as a,g as c,b as i,_ as n,v as o,j as r,A as s,B as t}; \ No newline at end of file diff --git a/frontend/dist/assets/Befehlssuche-BiblzWWg.js b/frontend/dist/assets/Befehlssuche-BiblzWWg.js deleted file mode 100644 index c687d65..0000000 --- a/frontend/dist/assets/Befehlssuche-BiblzWWg.js +++ /dev/null @@ -1 +0,0 @@ -import{a as e,c as t,i as n,r,t as i}from"./dist-aE7UmubC.js";import{D as a,R as o,g as s}from"./abfragen-DKcWnZ8a.js";import{L as c,R as l,et as u,st as d}from"./index-BUHDF9RN.js";import{n as f,o as p,r as m,t as h}from"./dialog-BEmPjtjX.js";var g=t(e(),1),_=r(),v={"proxmox-host":`host proxmox`,container:`lxc container ct`,vm:`vm qemu`},y={lxc:`container`,ct:`container`,container:`container`,vm:`vm`,qemu:`vm`,host:`proxmox-host`,pve:`proxmox-host`};function b(e){let t=l.map(e=>({id:`seite:${e.to}`,text:e.label,unter:c[e.ort],to:e.to,stichworte:e.to.replace(/\//g,` `)}));for(let n of e){let e={geraet:{art:n.art,offen:n.offen},stichworte:`${v[n.art]??``} ${n.id}`};t.push({...e,id:`${n.id}:cockpit`,text:n.name,unter:`Gerät im Homelab-Cockpit`,to:`/homelab`,hash:`geraet-${n.id}`},{...e,id:`${n.id}:zeitleiste`,text:`${n.name} · Zeitleiste`,unter:`Was an diesem Gerät geschah`,to:`/homelab/protokoll`,hash:n.id},{...e,id:`${n.id}:monitoring`,text:`${n.name} · Monitoring`,unter:`CPU, Speicher, Platte, Netz`,to:`/homelab/monitoring`,hash:n.id}),n.art!==`proxmox-host`&&t.push({...e,id:`${n.id}:snapshot`,text:`${n.name} · Snapshots`,unter:`Snapshot anlegen, Rückweg testen`,to:`/homelab/snapshots`}),n.offen>0&&t.push({...e,id:`${n.id}:update`,text:`${n.name} · Update`,unter:`${n.offen} ${n.offen===1?`Update steht`:`Updates stehen`} an`,to:`/homelab/updates`})}return t}function x(e){let t=null,n=null,r=[];for(let i of e.toLowerCase().split(/\s+/).filter(Boolean)){let[e,a]=i.split(`:`,2);a!==void 0&&e===`typ`?t=y[a]??a:a!==void 0&&e===`update`?n=[`ja`,`j`,`1`,`true`].includes(a):r.push(i)}return{typ:t,update:n,woerter:r}}function S(e,t,n=12){let{typ:r,update:i,woerter:a}=x(t),o=e.filter(e=>{if((r||i!==null)&&!e.geraet||r&&e.geraet?.art!==r||i!==null&&e.geraet.offen>0!==i)return!1;let t=`${e.text} ${e.unter} ${e.stichworte??``}`.toLowerCase();return a.every(e=>t.includes(e))}),s=a[0],c=e=>(s&&e.text.toLowerCase().startsWith(s)?0:1)+(e.geraet?.5:0);return[...o].sort((e,t)=>c(e)-c(t)).slice(0,n)}var C=n();function w(e){let t=(0,_.c)(46),{onSchliessen:n}=e,r=d(),c=a(),l=o(),v=c.data?.rolle===`homelab`||!!(l.data?.eingerichtet&&l.data.erreichbar),y=s(v).data?.ziele,x;t[0]===y?x=t[1]:(x=y??[],t[0]=y,t[1]=x);let w;t[2]===x?w=t[3]:(w=b(x),t[2]=x,t[3]=w);let T=w,[E,D]=(0,g.useState)(``),[O,k]=(0,g.useState)(0),A;t[4]!==T||t[5]!==E?(A=S(T,E),t[4]=T,t[5]=E,t[6]=A):A=t[6];let j=A,M=Math.min(O,Math.max(0,j.length-1)),N;t[7]!==r||t[8]!==n||t[9]!==j?(N=function(e){let t=j[e];t&&(n(),r({to:t.to,hash:t.hash}))},t[7]=r,t[8]=n,t[9]=j,t[10]=N):N=t[10];let P=N,F;t[11]===n?F=t[12]:(F=e=>!e&&n(),t[11]=n,t[12]=F);let I,L;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(I=(0,C.jsx)(p,{className:`sr-only`,children:`Suchen`}),L=(0,C.jsx)(m,{className:`sr-only`,children:`Geräte, Seiten und Aktionen finden. Filter: typ:lxc, typ:vm, typ:host, update:ja.`}),t[13]=I,t[14]=L):(I=t[13],L=t[14]);let R;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(R=(0,C.jsx)(u,{className:`size-4 shrink-0 text-text-3`,"aria-hidden":!0}),t[15]=R):R=t[15];let z=j[M]?`befehl-${M}`:void 0,B;t[16]===Symbol.for(`react.memo_cache_sentinel`)?(B=e=>{D(e.target.value),k(0)},t[16]=B):B=t[16];let V;t[17]!==M||t[18]!==P||t[19]!==j.length?(V=e=>{e.key===`ArrowDown`?(e.preventDefault(),k(Math.min(M+1,j.length-1))):e.key===`ArrowUp`?(e.preventDefault(),k(Math.max(M-1,0))):e.key===`Enter`&&(e.preventDefault(),P(M))},t[17]=M,t[18]=P,t[19]=j.length,t[20]=V):V=t[20];let H;t[21]!==E||t[22]!==V||t[23]!==z?(H=(0,C.jsx)(`input`,{autoFocus:!0,role:`combobox`,"aria-expanded":!0,"aria-controls":`befehle`,"aria-activedescendant":z,"aria-label":`Suchen`,value:E,placeholder:`Gerät, Seite oder Aktion — etwa „AdGuard Snapshot“ oder „typ:lxc update:ja“`,onChange:B,onKeyDown:V,className:`h-14 min-w-0 flex-1 bg-transparent text-[16px] outline-none placeholder:text-text-3`}),t[21]=E,t[22]=V,t[23]=z,t[24]=H):H=t[24];let U;t[25]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,C.jsx)(`kbd`,{className:`hidden rounded-md border border-white/10 px-1.5 py-0.5 text-[11px] text-text-3 sm:block`,children:`Esc`}),t[25]=U):U=t[25];let W;t[26]===H?W=t[27]:(W=(0,C.jsxs)(`div`,{className:`flex items-center gap-3 border-b border-white/[0.08] px-4`,children:[R,H,U]}),t[26]=H,t[27]=W);let G;t[28]===j.length?G=t[29]:(G=j.length===0&&(0,C.jsx)(`li`,{className:`px-3 py-6 text-center text-sm text-text-3`,children:`Nichts gefunden.`}),t[28]=j.length,t[29]=G);let K;if(t[30]!==M||t[31]!==P||t[32]!==j){let e;t[34]!==M||t[35]!==P?(e=(e,t)=>(0,C.jsxs)(`li`,{id:`befehl-${t}`,role:`option`,"aria-selected":t===M,onMouseEnter:()=>k(t),onClick:()=>P(t),className:i(`flex cursor-pointer flex-col rounded-xl px-3 py-2.5`,t===M&&`bg-white/[0.07]`),children:[(0,C.jsx)(`span`,{className:`text-[15px] font-medium`,children:e.text}),(0,C.jsx)(`span`,{className:`text-[13px] text-text-3`,children:e.unter})]},e.id),t[34]=M,t[35]=P,t[36]=e):e=t[36],K=j.map(e),t[30]=M,t[31]=P,t[32]=j,t[33]=K}else K=t[33];let q;t[37]!==G||t[38]!==K?(q=(0,C.jsxs)(`ul`,{id:`befehle`,role:`listbox`,"aria-label":`Treffer`,className:`m-0 max-h-[60vh] list-none overflow-y-auto p-2`,children:[G,K]}),t[37]=G,t[38]=K,t[39]=q):q=t[39];let J;t[40]!==W||t[41]!==q?(J=(0,C.jsxs)(f,{className:`top-[12vh] translate-y-0 gap-0 border-white/10 bg-[#0e121a] p-0 sm:max-w-xl`,showCloseButton:!1,children:[I,L,W,q]}),t[40]=W,t[41]=q,t[42]=J):J=t[42];let Y;return t[43]!==J||t[44]!==F?(Y=(0,C.jsx)(h,{open:!0,onOpenChange:F,children:J}),t[43]=J,t[44]=F,t[45]=Y):Y=t[45],Y}export{w as Befehlssuche}; \ No newline at end of file diff --git a/frontend/dist/assets/Befehlssuche-Dq-EThSx.js b/frontend/dist/assets/Befehlssuche-Dq-EThSx.js new file mode 100644 index 0000000..e4f3501 --- /dev/null +++ b/frontend/dist/assets/Befehlssuche-Dq-EThSx.js @@ -0,0 +1 @@ +import{a as e,c as t,i as n,r,t as i}from"./dist-aE7UmubC.js";import{B as a,D as o,g as s}from"./abfragen-pD_qBEtc.js";import{K as c,_ as l,ct as u,g as d,ht as f,q as p,v as m,y as h}from"./index-Bumw6krN.js";var g=t(e(),1),_=r(),v={"proxmox-host":`host proxmox`,container:`lxc container ct`,vm:`vm qemu`},y={lxc:`container`,ct:`container`,container:`container`,vm:`vm`,qemu:`vm`,host:`proxmox-host`,pve:`proxmox-host`};function b(e){let t=p.map(e=>({id:`seite:${e.to}`,text:e.label,unter:c[e.ort],to:e.to,stichworte:e.to.replace(/\//g,` `)}));t.push({id:`lucy:freiheiten`,text:`Lucys Freiheiten`,unter:`Einstellungen → Lucy`,to:`/einstellungen`,hash:`lucy`,stichworte:`lucy autonomie selbst fragen`},{id:`lucy:rueckfragen`,text:`Rückfragen an dich`,unter:`Einstellungen → Lucy`,to:`/einstellungen`,hash:`lucy`,stichworte:`lucy ja nein telegram rueckfrage`},{id:`lucy:wochenbericht`,text:`Wochenbericht`,unter:`Einstellungen → Lucy`,to:`/einstellungen`,hash:`lucy`,stichworte:`lucy bericht sonntag`});for(let n of e){let e={geraet:{art:n.art,offen:n.offen},stichworte:`${v[n.art]??``} ${n.id}`};t.push({...e,id:`${n.id}:cockpit`,text:n.name,unter:`Gerät im Homelab-Cockpit`,to:`/homelab`,hash:`geraet-${n.id}`},{...e,id:`${n.id}:zeitleiste`,text:`${n.name} · Zeitleiste`,unter:`Was an diesem Gerät geschah`,to:`/homelab/protokoll`,hash:n.id},{...e,id:`${n.id}:monitoring`,text:`${n.name} · Monitoring`,unter:`CPU, Speicher, Platte, Netz`,to:`/homelab/monitoring`,hash:n.id}),n.art!==`proxmox-host`&&t.push({...e,id:`${n.id}:snapshot`,text:`${n.name} · Snapshots`,unter:`Snapshot anlegen, Rückweg testen`,to:`/homelab/snapshots`}),n.offen>0&&t.push({...e,id:`${n.id}:update`,text:`${n.name} · Update`,unter:`${n.offen} ${n.offen===1?`Update steht`:`Updates stehen`} an`,to:`/homelab/updates`})}return t}function x(e){let t=null,n=null,r=[];for(let i of e.toLowerCase().split(/\s+/).filter(Boolean)){let[e,a]=i.split(`:`,2);a!==void 0&&e===`typ`?t=y[a]??a:a!==void 0&&e===`update`?n=[`ja`,`j`,`1`,`true`].includes(a):r.push(i)}return{typ:t,update:n,woerter:r}}function S(e,t,n=12){let{typ:r,update:i,woerter:a}=x(t),o=e.filter(e=>{if((r||i!==null)&&!e.geraet||r&&e.geraet?.art!==r||i!==null&&e.geraet.offen>0!==i)return!1;let t=`${e.text} ${e.unter} ${e.stichworte??``}`.toLowerCase();return a.every(e=>t.includes(e))}),s=a[0],c=e=>(s&&e.text.toLowerCase().startsWith(s)?0:1)+(e.geraet?.5:0);return[...o].sort((e,t)=>c(e)-c(t)).slice(0,n)}var C=n();function w(e){let t=(0,_.c)(46),{onSchliessen:n}=e,r=f(),c=o(),p=a(),v=c.data?.rolle===`homelab`||!!(p.data?.eingerichtet&&p.data.erreichbar),y=s(v).data?.ziele,x;t[0]===y?x=t[1]:(x=y??[],t[0]=y,t[1]=x);let w;t[2]===x?w=t[3]:(w=b(x),t[2]=x,t[3]=w);let T=w,[E,D]=(0,g.useState)(``),[O,k]=(0,g.useState)(0),A;t[4]!==T||t[5]!==E?(A=S(T,E),t[4]=T,t[5]=E,t[6]=A):A=t[6];let j=A,M=Math.min(O,Math.max(0,j.length-1)),N;t[7]!==r||t[8]!==n||t[9]!==j?(N=function(e){let t=j[e];t&&(n(),r({to:t.to,hash:t.hash}))},t[7]=r,t[8]=n,t[9]=j,t[10]=N):N=t[10];let P=N,F;t[11]===n?F=t[12]:(F=e=>!e&&n(),t[11]=n,t[12]=F);let I,L;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(I=(0,C.jsx)(h,{className:`sr-only`,children:`Suchen`}),L=(0,C.jsx)(m,{className:`sr-only`,children:`Geräte, Seiten und Aktionen finden. Filter: typ:lxc, typ:vm, typ:host, update:ja.`}),t[13]=I,t[14]=L):(I=t[13],L=t[14]);let R;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(R=(0,C.jsx)(u,{className:`size-4 shrink-0 text-text-3`,"aria-hidden":!0}),t[15]=R):R=t[15];let z=j[M]?`befehl-${M}`:void 0,B;t[16]===Symbol.for(`react.memo_cache_sentinel`)?(B=e=>{D(e.target.value),k(0)},t[16]=B):B=t[16];let V;t[17]!==M||t[18]!==P||t[19]!==j.length?(V=e=>{e.key===`ArrowDown`?(e.preventDefault(),k(Math.min(M+1,j.length-1))):e.key===`ArrowUp`?(e.preventDefault(),k(Math.max(M-1,0))):e.key===`Enter`&&(e.preventDefault(),P(M))},t[17]=M,t[18]=P,t[19]=j.length,t[20]=V):V=t[20];let H;t[21]!==E||t[22]!==V||t[23]!==z?(H=(0,C.jsx)(`input`,{autoFocus:!0,role:`combobox`,"aria-expanded":!0,"aria-controls":`befehle`,"aria-activedescendant":z,"aria-label":`Suchen`,value:E,placeholder:`Gerät, Seite oder Aktion — etwa „AdGuard Snapshot“ oder „typ:lxc update:ja“`,onChange:B,onKeyDown:V,className:`h-14 min-w-0 flex-1 bg-transparent text-[16px] outline-none placeholder:text-text-3`}),t[21]=E,t[22]=V,t[23]=z,t[24]=H):H=t[24];let U;t[25]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,C.jsx)(`kbd`,{className:`hidden rounded-md border border-white/10 px-1.5 py-0.5 text-[11px] text-text-3 sm:block`,children:`Esc`}),t[25]=U):U=t[25];let W;t[26]===H?W=t[27]:(W=(0,C.jsxs)(`div`,{className:`flex items-center gap-3 border-b border-white/[0.08] px-4`,children:[R,H,U]}),t[26]=H,t[27]=W);let G;t[28]===j.length?G=t[29]:(G=j.length===0&&(0,C.jsx)(`li`,{className:`px-3 py-6 text-center text-sm text-text-3`,children:`Nichts gefunden.`}),t[28]=j.length,t[29]=G);let K;if(t[30]!==M||t[31]!==P||t[32]!==j){let e;t[34]!==M||t[35]!==P?(e=(e,t)=>(0,C.jsxs)(`li`,{id:`befehl-${t}`,role:`option`,"aria-selected":t===M,onMouseEnter:()=>k(t),onClick:()=>P(t),className:i(`flex cursor-pointer flex-col rounded-xl px-3 py-2.5`,t===M&&`bg-white/[0.07]`),children:[(0,C.jsx)(`span`,{className:`text-[15px] font-medium`,children:e.text}),(0,C.jsx)(`span`,{className:`text-[13px] text-text-3`,children:e.unter})]},e.id),t[34]=M,t[35]=P,t[36]=e):e=t[36],K=j.map(e),t[30]=M,t[31]=P,t[32]=j,t[33]=K}else K=t[33];let q;t[37]!==G||t[38]!==K?(q=(0,C.jsxs)(`ul`,{id:`befehle`,role:`listbox`,"aria-label":`Treffer`,className:`m-0 max-h-[60vh] list-none overflow-y-auto p-2`,children:[G,K]}),t[37]=G,t[38]=K,t[39]=q):q=t[39];let J;t[40]!==W||t[41]!==q?(J=(0,C.jsxs)(l,{className:`top-[12vh] translate-y-0 gap-0 border-white/10 bg-[#0e121a] p-0 sm:max-w-xl`,showCloseButton:!1,children:[I,L,W,q]}),t[40]=W,t[41]=q,t[42]=J):J=t[42];let Y;return t[43]!==J||t[44]!==F?(Y=(0,C.jsx)(d,{open:!0,onOpenChange:F,children:J}),t[43]=J,t[44]=F,t[45]=Y):Y=t[45],Y}export{w as Befehlssuche}; \ No newline at end of file diff --git a/frontend/dist/assets/Bestaetigen-BemBWZzN.js b/frontend/dist/assets/Bestaetigen-BemBWZzN.js deleted file mode 100644 index e5a78be..0000000 --- a/frontend/dist/assets/Bestaetigen-BemBWZzN.js +++ /dev/null @@ -1 +0,0 @@ -import{i as e,r as t,s as n}from"./dist-aE7UmubC.js";import{t as r}from"./button-DwYvdWVr.js";import{a as i,i as a,n as o,o as s,r as c,t as l}from"./dialog-BEmPjtjX.js";var u=n({Bestaetigen:()=>p}),d=t(),f=e();function p(e){let t=(0,d.c)(32),{offen:n,titel:u,text:p,knopf:m,neinKnopf:h,gefahr:g,gesperrt:_,onJa:v,onNein:y,children:b}=e,x=h===void 0?`Abbrechen`:h,S;t[0]===y?S=t[1]:(S=e=>!e&&y(),t[0]=y,t[1]=S);let C;t[2]===u?C=t[3]:(C=(0,f.jsx)(s,{className:`pr-10 text-[19px] leading-snug font-semibold break-words`,children:u}),t[2]=u,t[3]=C);let w;t[4]===p?w=t[5]:(w=(0,f.jsx)(c,{className:`text-[15px] leading-relaxed text-text-2`,children:p}),t[4]=p,t[5]=w);let T;t[6]!==C||t[7]!==w?(T=(0,f.jsxs)(i,{children:[C,w]}),t[6]=C,t[7]=w,t[8]=T):T=t[8];let E;t[9]!==x||t[10]!==y?(E=(0,f.jsx)(r,{variant:`outline`,onClick:y,children:x}),t[9]=x,t[10]=y,t[11]=E):E=t[11];let D=g?`gefahr`:`default`,O=_||void 0,k;t[12]!==_||t[13]!==v?(k=()=>{_||v()},t[12]=_,t[13]=v,t[14]=k):k=t[14];let A;t[15]!==_||t[16]!==m||t[17]!==D||t[18]!==O||t[19]!==k?(A=(0,f.jsx)(r,{variant:D,disabled:_,"aria-busy":O,onClick:k,children:m}),t[15]=_,t[16]=m,t[17]=D,t[18]=O,t[19]=k,t[20]=A):A=t[20];let j;t[21]!==A||t[22]!==E?(j=(0,f.jsxs)(a,{className:`sticky bottom-0 mb-0 gap-2 bg-[#121722] sm:gap-2`,children:[E,A]}),t[21]=A,t[22]=E,t[23]=j):j=t[23];let M;t[24]!==b||t[25]!==j||t[26]!==T?(M=(0,f.jsxs)(o,{className:`max-h-[calc(100dvh-2rem)] overflow-y-auto border-white/10 bg-[#0e121a] pb-0 sm:max-w-lg`,children:[T,b,j]}),t[24]=b,t[25]=j,t[26]=T,t[27]=M):M=t[27];let N;return t[28]!==n||t[29]!==M||t[30]!==S?(N=(0,f.jsx)(l,{open:n,onOpenChange:S,children:M}),t[28]=n,t[29]=M,t[30]=S,t[31]=N):N=t[31],N}export{u as n,p as t}; \ No newline at end of file diff --git a/frontend/dist/assets/Dienste-C60GZuQx.js b/frontend/dist/assets/Dienste-C60GZuQx.js new file mode 100644 index 0000000..ffe7c1f --- /dev/null +++ b/frontend/dist/assets/Dienste-C60GZuQx.js @@ -0,0 +1 @@ +import{a as e,c as t,i as n,r,t as i}from"./dist-aE7UmubC.js";import{At as a,Et as o,Lt as s,V as c,_t as l,bt as u,f as d,ht as f,rn as p,t as m,zt as h}from"./abfragen-pD_qBEtc.js";import{t as g}from"./button-BHVKhtQ6.js";import{H as _,L as v,V as y,j as b,m as x,p as S,z as ee}from"./index-Bumw6krN.js";var C=t(e(),1),w=r(),T=n(),E={ok:{wort:`pünktlich`,punkt:`bg-gruen`,text:`text-text-3`},ueberfaellig:{wort:`überfällig`,punkt:`bg-rot shadow-[0_0_8px_var(--rot)]`,text:`text-rot-text`},gestoppt:{wort:`läuft nicht`,punkt:`bg-rot shadow-[0_0_8px_var(--rot)]`,text:`text-rot-text`},aus:{wort:`abgeschaltet`,punkt:`bg-text-3`,text:`text-text-3`}},D=`md:grid-cols-[minmax(0,1.4fr)_minmax(0,1fr)_minmax(0,1fr)_110px]`,O=e=>f(new Date(e*1e3).toISOString());function k(e){let t=(0,w.c)(36),{a:n}=e,r=E[n.status]??E.ok,a;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=i(`grid grid-cols-2 gap-x-4 gap-y-1.5 border-t border-white/[0.06] py-3 md:items-center`,D),t[0]=a):a=t[0];let o;t[1]===r.punkt?o=t[2]:(o=i(`mt-1.5 size-2 shrink-0 rounded-full`,r.punkt),t[1]=r.punkt,t[2]=o);let s;t[3]===o?s=t[4]:(s=(0,T.jsx)(`span`,{"aria-hidden":!0,className:o}),t[3]=o,t[4]=s);let c;t[5]===n.name?c=t[6]:(c=(0,T.jsx)(`span`,{className:`text-[15px] font-semibold break-words`,children:n.name}),t[5]=n.name,t[6]=c);let l;t[7]===n.takt?l=t[8]:(l=(0,T.jsx)(`span`,{className:`text-[13px] text-text-3`,children:n.takt}),t[7]=n.takt,t[8]=l);let d;t[9]!==c||t[10]!==l?(d=(0,T.jsxs)(`span`,{className:`flex min-w-0 flex-col`,children:[c,l]}),t[9]=c,t[10]=l,t[11]=d):d=t[11];let f;t[12]!==s||t[13]!==d?(f=(0,T.jsxs)(`div`,{role:`rowheader`,className:`col-span-2 flex min-w-0 items-start gap-2.5 md:col-span-1`,children:[s,d]}),t[12]=s,t[13]=d,t[14]=f):f=t[14];let p;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,T.jsx)(`span`,{className:`text-xs text-text-3 md:hidden`,children:`Zuletzt `}),t[15]=p):p=t[15];let m;t[16]===n.letzter?m=t[17]:(m=(0,T.jsxs)(`span`,{role:`cell`,className:`text-sm text-text-2`,children:[p,n.letzter?(0,T.jsx)(`span`,{className:`ziffern`,children:u(n.letzter)}):(0,T.jsx)(`span`,{className:`text-text-3`,children:`–`})]}),t[16]=n.letzter,t[17]=m);let h;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,T.jsx)(`span`,{className:`text-xs text-text-3 md:hidden`,children:`Nächster `}),t[18]=h):h=t[18];let g;t[19]===n.naechster?g=t[20]:(g=(0,T.jsxs)(`span`,{role:`cell`,className:`text-sm text-text-2`,children:[h,n.naechster?(0,T.jsx)(`span`,{className:`ziffern`,children:O(n.naechster).toLowerCase()}):(0,T.jsx)(`span`,{className:`text-text-3`,children:`–`})]}),t[19]=n.naechster,t[20]=g);let _;t[21]===r.text?_=t[22]:(_=i(`etikett text-[10.5px] tracking-[0.12em]`,r.text),t[21]=r.text,t[22]=_);let v;t[23]!==r.wort||t[24]!==_?(v=(0,T.jsx)(`span`,{role:`cell`,className:_,children:r.wort}),t[23]=r.wort,t[24]=_,t[25]=v):v=t[25];let y;t[26]!==n.status||t[27]!==n.text||t[28]!==r.text?(y=n.text&&n.status!==`ok`&&(0,T.jsx)(`p`,{className:i(`col-span-2 m-0 text-sm md:col-span-4 md:pl-[18px]`,r.text),children:n.text}),t[26]=n.status,t[27]=n.text,t[28]=r.text,t[29]=y):y=t[29];let b;return t[30]!==g||t[31]!==v||t[32]!==y||t[33]!==f||t[34]!==m?(b=(0,T.jsxs)(`div`,{role:`row`,className:a,children:[f,m,g,v,y]}),t[30]=g,t[31]=v,t[32]=y,t[33]=f,t[34]=m,t[35]=b):b=t[35],b}function A(){let e=(0,w.c)(15),t=m(),n;e[0]===t.data?.ablaeufe?n=e[1]:(n=t.data?.ablaeufe??[],e[0]=t.data?.ablaeufe,e[1]=n);let r=n,a;e[2]===r?a=e[3]:(a=r.filter(M),e[2]=r,e[3]=a);let o=a.length,s;e[4]!==t.data||e[5]!==o?(s=t.data?(0,T.jsx)(y,{art:o?`rot`:`gruen`,children:o?`${o} überfällig`:`alle pünktlich`}):void 0,e[4]=t.data,e[5]=o,e[6]=s):s=e[6];let c;e[7]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,T.jsx)(`p`,{className:`-mt-2 text-[15px] text-text-2`,children:`Was die Box regelmäßig von selbst tut. Bleibt ein Lauf länger aus als erwartet, steht er hier oben und der Wächter meldet es — ein Stillstand wie im September fällt so am ersten Morgen auf.`}),e[7]=c):c=e[7];let l;e[8]!==t.error||e[9]!==t.isPending||e[10]!==r?(l=t.isPending?(0,T.jsx)(`p`,{className:`text-sm text-text-3`,children:`Wird gelesen …`}):t.error?(0,T.jsxs)(`p`,{role:`alert`,className:`text-sm text-rot-text`,children:[`Die Zeitpläne lassen sich gerade nicht lesen: `,t.error.message]}):(0,T.jsxs)(`div`,{role:`table`,"aria-label":`Zeitpläne`,className:`flex flex-col`,children:[(0,T.jsxs)(`div`,{role:`row`,className:i(`etikett hidden gap-x-4 pb-2.5 text-[10.5px] tracking-[0.14em] text-text-3 md:grid`,D),children:[(0,T.jsx)(`span`,{role:`columnheader`,children:`Ablauf`}),(0,T.jsx)(`span`,{role:`columnheader`,children:`Zuletzt`}),(0,T.jsx)(`span`,{role:`columnheader`,children:`Nächster`}),(0,T.jsx)(`span`,{role:`columnheader`,children:`Zustand`})]}),r.map(j)]}),e[8]=t.error,e[9]=t.isPending,e[10]=r,e[11]=l):l=e[11];let u;return e[12]!==s||e[13]!==l?(u=(0,T.jsxs)(S,{titel:`Zeitpläne`,rechts:s,children:[c,l]}),e[12]=s,e[13]=l,e[14]=u):u=e[14],u}function j(e){return(0,T.jsx)(k,{a:e},e.id)}function M(e){return e.status===`ueberfaellig`||e.status===`gestoppt`}var te={laeuft:{wort:`läuft`,punkt:`bg-gruen`,text:`text-text-3`},startet:{wort:`startet`,punkt:`bg-bernstein`,text:`text-bernstein`},stoppt:{wort:`stoppt`,punkt:`bg-bernstein`,text:`text-bernstein`},antwortet_nicht:{wort:`antwortet nicht`,punkt:`bg-rot`,text:`text-rot-text`},gestoppt:{wort:`gestoppt`,punkt:`bg-rot`,text:`text-rot-text`},gescheitert:{wort:`gescheitert`,punkt:`bg-rot`,text:`text-rot-text`},schlaeft:{wort:`schläft`,punkt:`bg-text-3`,text:`text-text-3`}};function N(e){return e.zustand?e.zustand:e.ok?`laeuft`:e.schlaeft?`schlaeft`:`antwortet_nicht`}var P={gescheitert:0,gestoppt:0,antwortet_nicht:0,startet:1,stoppt:1,laeuft:3,schlaeft:4};function F(e){let t=N(e);return t===`laeuft`&&(e.neustarts??0)>0?2:P[t]}var ne=e=>F(e)===0,I=e=>[...e].sort((e,t)=>F(e)-F(t)),L=new Intl.NumberFormat(`de-DE`,{maximumFractionDigits:0}),R=new Intl.NumberFormat(`de-DE`,{minimumFractionDigits:1,maximumFractionDigits:1});function re(e){if(e==null)return`–`;let t=e/1024**2;return t<1e3?`${L.format(t)} MB`:`${R.format(t/1024)} GB`}function ie(e,t){return e.speicher_bytes==null||!t?null:(e.speicher_bytes+(e.grafik_bytes??0))/t*100}function ae(e){return e==null?`–`:e>0&&e<.05?`< 0,1 %`:e<10?`${R.format(e).replace(/,0$/,``)} %`:`${L.format(e)} %`}function oe(e){return e==null||e<0?`–`:e<60?`< 1 min`:b(e)}var z=`Europe/Berlin`,B=new Intl.DateTimeFormat(`de-DE`,{hour:`2-digit`,minute:`2-digit`,timeZone:z}),V=new Intl.DateTimeFormat(`de-DE`,{day:`2-digit`,month:`2-digit`,timeZone:z}),H=new Intl.DateTimeFormat(`en-CA`,{timeZone:z});function se(e,t=Date.now()){let n=new Date(t-e*1e3),r=H.format(n);return r===H.format(new Date(t))?`heute ${B.format(n)}`:r===H.format(new Date(t-864e5))?`gestern ${B.format(n)}`:`${V.format(n)}, ${B.format(n)}`}function ce(e,t=Date.now()){let n=N(e);return n===`schlaeft`?`mit Absicht aus`:(n===`gestoppt`||n===`gescheitert`)&&e.aus_seit_s!=null?`aus seit ${se(e.aus_seit_s,t)}`:null}function U(e){let t=N(e);return t===`schlaeft`?`Wecken`:t===`gestoppt`||t===`gescheitert`?`Starten`:`Neu starten`}var W={"llama-swap":`Laufende Antworten brechen ab; die Modelle werden danach neu geladen.`,"mission-control-2":`Das ist diese Oberfläche selbst: Sie ist ein paar Sekunden nicht erreichbar.`,"hermes-gateway":`Lucy antwortet in der Zeit nicht.`};function G(e){let t=U(e);if(t===`Wecken`)return{titel:`${e.name} wecken?`,text:`Der Dienst startet und läuft bis zum nächsten Neustart der Box. Danach schläft er wieder.`,knopf:t};if(t===`Starten`)return{titel:`${e.name} starten?`,text:`Der Dienst wird gestartet. Scheitert er wieder, steht der Grund im Protokoll.`,knopf:t};let n=W[e.unit]?` ${W[e.unit]}`:``;return{titel:`${e.name} neu starten?`,text:`Der Dienst wird neu gestartet und ist dabei kurz nicht erreichbar.${n}`,knopf:t}}function K(e){let t=U(e);return`${e.name} ${t===`Wecken`?`wird geweckt`:t===`Starten`?`startet`:`startet neu`}.`}var le={laeuft:`ok`,startet:`warn`,stoppt:`warn`,antwortet_nicht:`rot`,gestoppt:`rot`,gescheitert:`rot`,schlaeft:`aus`},ue=`grid-cols-2 gap-x-4 sm:grid-cols-4 xl:gap-x-3 xl:grid-cols-[minmax(0,1.7fr)_7rem_minmax(0,0.7fr)_minmax(0,1.2fr)_7.5rem_5rem_9.5rem] min-[87.5rem]:grid-cols-[minmax(0,1.7fr)_7rem_minmax(0,0.7fr)_minmax(0,1.2fr)_7.5rem_5rem_17.5rem]`,q=new Intl.DateTimeFormat(`de-DE`,{hour:`2-digit`,minute:`2-digit`,second:`2-digit`,timeZone:`Europe/Berlin`});function J(e){let t=(0,w.c)(2),{children:n}=e,r;return t[0]===n?r=t[1]:(r=(0,T.jsx)(`span`,{className:`block text-xs text-text-3 xl:hidden`,children:n}),t[0]=n,t[1]=r),r}function de(e){let t=(0,w.c)(7),{anteil:n,children:r}=e,i;t[0]===r?i=t[1]:(i=(0,T.jsx)(`span`,{className:`ziffern text-sm text-text-2`,children:r}),t[0]=r,t[1]=i);let a;t[2]===n?a=t[3]:(a=n!==null&&(0,T.jsx)(`span`,{className:`h-1.5 w-full max-w-40 overflow-hidden rounded-full bg-white/[0.07]`,"aria-hidden":!0,children:(0,T.jsx)(`span`,{className:`block h-full rounded-full`,style:{width:`${Math.min(100,Math.max(2,n))}%`,background:`var(--reihe-1)`}})}),t[2]=n,t[3]=a);let o;return t[4]!==i||t[5]!==a?(o=(0,T.jsxs)(`span`,{className:`flex min-w-0 flex-col gap-1`,children:[i,a]}),t[4]=i,t[5]=a,t[6]=o):o=t[6],o}function fe(e){let t=(0,w.c)(9),{d:n,id:r}=e,i=c(n.unit),a=(0,C.useRef)(null),o;if(i.isPending)o=`Wird gelesen …`;else if(i.isError)o=`Das Protokoll lässt sich gerade nicht lesen: ${i.error.message}`;else if(i.data.ok===!1)o=i.data.err||i.data.text||`Das Protokoll lässt sich nicht lesen.`;else{let e;t[0]===i.data.text?e=t[1]:(e=i.data.text?.trim()||`Noch keine Einträge.`,t[0]=i.data.text,t[1]=e),o=e}let s;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(s=()=>{a.current&&(a.current.scrollTop=a.current.scrollHeight)},t[2]=s):s=t[2];let l;t[3]===o?l=t[4]:(l=[o],t[3]=o,t[4]=l),(0,C.useEffect)(s,l);let u=`Letzte Protokollzeilen von ${n.name}`,d;return t[5]!==r||t[6]!==u||t[7]!==o?(d=(0,T.jsx)(`pre`,{id:r,ref:a,tabIndex:0,"aria-label":u,className:`ziffern m-0 max-h-[50vh] w-full overflow-auto rounded-lg bg-black/30 ring-1 ring-white/[0.07] ring-inset p-3 text-xs leading-relaxed whitespace-pre-wrap break-words text-text-2`,children:o}),t[5]=r,t[6]=u,t[7]=o,t[8]=d):d=t[8],d}function Y(e){let t=(0,w.c)(113),{d:n,gesamt:r,offen:a,startet:o,onProtokoll:s,onFrage:c}=e,l=te[N(n)],u;t[0]===n?u=t[1]:(u=ce(n),t[0]=n,t[1]=u);let d=u,f,p,m,h,_,y,b,x,S,C,E;if(t[2]!==n||t[3]!==r||t[4]!==l.text||t[5]!==l.wort||t[6]!==d){let e=ie(n,r);f=n.neustarts??0,p=`protokoll-${n.unit}`,x=`row`,t[18]===Symbol.for(`react.memo_cache_sentinel`)?(S=i(`grid gap-y-2.5 border-t border-white/[0.06] py-3 xl:items-center`,ue),t[18]=S):S=t[18];let a;t[19]===n.unit?a=t[20]:(a=ee(n.unit),t[19]=n.unit,t[20]=a);let o=le[N(n)],s;t[21]!==a||t[22]!==o?(s=(0,T.jsx)(v,{bild:a,groesse:`sm`,punkt:o}),t[21]=a,t[22]=o,t[23]=s):s=t[23];let c;t[24]===n.name?c=t[25]:(c=(0,T.jsx)(`span`,{className:`text-[15px] font-semibold break-words`,children:n.name}),t[24]=n.name,t[25]=c);let u=n.scope===`system`?` · Systemdienst`:``,g;t[26]!==n.unit||t[27]!==u?(g=(0,T.jsxs)(`span`,{className:`ziffern text-xs break-words text-text-3`,children:[n.unit,u]}),t[26]=n.unit,t[27]=u,t[28]=g):g=t[28];let w;t[29]!==c||t[30]!==g?(w=(0,T.jsxs)(`span`,{className:`flex min-w-0 flex-col`,children:[c,g]}),t[29]=c,t[30]=g,t[31]=w):w=t[31],t[32]!==s||t[33]!==w?(C=(0,T.jsxs)(`div`,{role:`rowheader`,className:`col-span-2 flex min-w-0 items-center gap-3 xl:col-span-1`,children:[s,w]}),t[32]=s,t[33]=w,t[34]=C):C=t[34];let D;t[35]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,T.jsx)(J,{children:`Zustand`}),t[35]=D):D=t[35];let O;t[36]===l.text?O=t[37]:(O=i(`etikett text-[10.5px] tracking-[0.12em]`,l.text),t[36]=l.text,t[37]=O);let k;t[38]!==O||t[39]!==l.wort?(k=(0,T.jsx)(`span`,{className:O,children:l.wort}),t[38]=O,t[39]=l.wort,t[40]=k):k=t[40];let A;t[41]===d?A=t[42]:(A=d&&(0,T.jsx)(`span`,{className:`text-xs text-text-3`,children:d}),t[41]=d,t[42]=A);let j;t[43]===f?j=t[44]:(j=f>0&&(0,T.jsx)(`span`,{className:`text-xs text-bernstein xl:hidden`,children:f===1?`1 Neustart`:`${f} Neustarts`}),t[43]=f,t[44]=j),t[45]!==k||t[46]!==A||t[47]!==j?(E=(0,T.jsxs)(`span`,{role:`cell`,className:`flex min-w-0 flex-col gap-0.5`,children:[D,k,A,j]}),t[45]=k,t[46]=A,t[47]=j,t[48]=E):E=t[48];let M;t[49]===Symbol.for(`react.memo_cache_sentinel`)?(M=(0,T.jsx)(J,{children:`CPU`}),t[49]=M):M=t[49],t[50]===n.cpu_prozent?m=t[51]:(m=(0,T.jsxs)(`span`,{role:`cell`,className:`min-w-0`,children:[M,n.cpu_prozent==null?(0,T.jsx)(`span`,{className:`text-sm text-text-3`,children:`–`}):(0,T.jsx)(de,{anteil:n.cpu_prozent,children:ae(n.cpu_prozent)})]}),t[50]=n.cpu_prozent,t[51]=m),h=`cell`,_=`min-w-0`,t[52]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,T.jsx)(J,{children:`Speicher`}),t[52]=y):y=t[52],b=n.speicher_bytes==null?(0,T.jsx)(`span`,{className:`text-sm text-text-3`,children:`–`}):(0,T.jsxs)(de,{anteil:e,children:[re(n.speicher_bytes+(n.grafik_bytes??0)),e!==null&&(0,T.jsxs)(`span`,{className:`font-sans text-xs text-text-3`,children:[` · `,ae(e)]})]}),t[2]=n,t[3]=r,t[4]=l.text,t[5]=l.wort,t[6]=d,t[7]=f,t[8]=p,t[9]=m,t[10]=h,t[11]=_,t[12]=y,t[13]=b,t[14]=x,t[15]=S,t[16]=C,t[17]=E}else f=t[7],p=t[8],m=t[9],h=t[10],_=t[11],y=t[12],b=t[13],x=t[14],S=t[15],C=t[16],E=t[17];let D;t[53]!==n.grafik_bytes||t[54]!==n.speicher_bytes?(D=n.speicher_bytes!=null&&!!n.grafik_bytes&&(0,T.jsxs)(`span`,{className:`mt-1 block text-xs text-text-3`,children:[`davon `,re(n.grafik_bytes),` Modelle`]}),t[53]=n.grafik_bytes,t[54]=n.speicher_bytes,t[55]=D):D=t[55];let O;t[56]!==D||t[57]!==h||t[58]!==_||t[59]!==y||t[60]!==b?(O=(0,T.jsxs)(`span`,{role:h,className:_,children:[y,b,D]}),t[56]=D,t[57]=h,t[58]=_,t[59]=y,t[60]=b,t[61]=O):O=t[61];let k;t[62]===Symbol.for(`react.memo_cache_sentinel`)?(k=(0,T.jsx)(J,{children:`Läuft seit`}),t[62]=k):k=t[62];let A;t[63]===n.laeuft_seit_s?A=t[64]:(A=oe(n.laeuft_seit_s),t[63]=n.laeuft_seit_s,t[64]=A);let j;t[65]===A?j=t[66]:(j=(0,T.jsx)(`span`,{className:`ziffern text-sm text-text-2`,children:A}),t[65]=A,t[66]=j);let M;t[67]===n.laeuft_seit_s?M=t[68]:(M=n.laeuft_seit_s!=null&&(0,T.jsxs)(`span`,{className:`text-xs text-text-3`,children:[`gestartet `,se(n.laeuft_seit_s)]}),t[67]=n.laeuft_seit_s,t[68]=M);let P;t[69]!==j||t[70]!==M?(P=(0,T.jsxs)(`span`,{role:`cell`,className:`flex min-w-0 flex-col gap-0.5`,children:[k,j,M]}),t[69]=j,t[70]=M,t[71]=P):P=t[71];let F=f>0?`text-bernstein`:`text-text-3`,I;t[72]===F?I=t[73]:(I=i(`ziffern text-sm`,F),t[72]=F,t[73]=I);let L=n.neustarts??`–`,R;t[74]!==I||t[75]!==L?(R=(0,T.jsx)(`span`,{role:`cell`,className:`hidden min-w-0 xl:block`,children:(0,T.jsx)(`span`,{className:I,children:L})}),t[74]=I,t[75]=L,t[76]=R):R=t[76];let z=a?`info`:`ghost`,B=a?p:void 0,V=`Protokoll von ${n.name}`,H;t[77]!==a||t[78]!==s||t[79]!==z||t[80]!==B||t[81]!==V?(H=(0,T.jsx)(g,{variant:z,size:`sm`,"aria-expanded":a,"aria-controls":B,"aria-label":V,onClick:s,children:`Protokoll`}),t[77]=a,t[78]=s,t[79]=z,t[80]=B,t[81]=V,t[82]=H):H=t[82];let W=ne(n)?`default`:`outline`,G=o!==null,K;t[83]!==n||t[84]!==o?(K=o===n.unit?`startet …`:U(n),t[83]=n,t[84]=o,t[85]=K):K=t[85];let q=`${n.name}: ${K}`,Y;t[86]!==n||t[87]!==o?(Y=o===n.unit?`Startet …`:U(n),t[86]=n,t[87]=o,t[88]=Y):Y=t[88];let X;t[89]!==c||t[90]!==W||t[91]!==G||t[92]!==q||t[93]!==Y?(X=(0,T.jsx)(g,{variant:W,size:`sm`,disabled:G,"aria-label":q,onClick:c,children:Y}),t[89]=c,t[90]=W,t[91]=G,t[92]=q,t[93]=Y,t[94]=X):X=t[94];let Z;t[95]!==H||t[96]!==X?(Z=(0,T.jsxs)(`span`,{role:`cell`,className:`col-span-2 flex flex-wrap gap-2 sm:col-start-3 sm:row-start-1 sm:justify-end sm:self-start xl:col-span-1 xl:col-start-auto xl:row-start-auto xl:flex-col xl:items-stretch xl:self-center min-[87.5rem]:flex-row min-[87.5rem]:justify-end`,children:[H,X]}),t[95]=H,t[96]=X,t[97]=Z):Z=t[97];let Q;t[98]!==n||t[99]!==a||t[100]!==p?(Q=a&&(0,T.jsx)(`div`,{role:`cell`,className:`col-span-full`,children:(0,T.jsx)(fe,{d:n,id:p})}),t[98]=n,t[99]=a,t[100]=p,t[101]=Q):Q=t[101];let $;return t[102]!==m||t[103]!==O||t[104]!==P||t[105]!==R||t[106]!==Z||t[107]!==Q||t[108]!==x||t[109]!==S||t[110]!==C||t[111]!==E?($=(0,T.jsxs)(`div`,{role:x,className:S,children:[C,E,m,O,P,R,Z,Q]}),t[102]=m,t[103]=O,t[104]=P,t[105]=R,t[106]=Z,t[107]=Q,t[108]=x,t[109]=S,t[110]=C,t[111]=E,t[112]=$):$=t[112],$}function X(e){let t=(0,w.c)(16),{stand:n,gewaehlt:r,startet:a,onProtokoll:o,onFrage:s}=e,c;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,T.jsxs)(`div`,{role:`row`,className:i(`etikett hidden pb-2 text-[10.5px] tracking-[0.14em] text-text-3 xl:grid`,ue),children:[(0,T.jsx)(`span`,{role:`columnheader`,children:`Dienst`}),(0,T.jsx)(`span`,{role:`columnheader`,children:`Zustand`}),(0,T.jsx)(`span`,{role:`columnheader`,children:`CPU`}),(0,T.jsx)(`span`,{role:`columnheader`,children:`Speicher`}),(0,T.jsx)(`span`,{role:`columnheader`,children:`Läuft seit`}),(0,T.jsx)(`span`,{role:`columnheader`,children:`Neustarts`}),(0,T.jsx)(`span`,{role:`columnheader`,className:`sr-only`,children:`Aktionen`})]}),t[0]=c):c=t[0];let l;if(t[1]!==r||t[2]!==s||t[3]!==o||t[4]!==n.services||t[5]!==n.speicher_gesamt||t[6]!==a){let e;t[8]!==r||t[9]!==s||t[10]!==o||t[11]!==n.speicher_gesamt||t[12]!==a?(e=e=>(0,T.jsx)(Y,{d:e,gesamt:n.speicher_gesamt,offen:r===e.unit,startet:a,onProtokoll:()=>o(e.unit),onFrage:()=>s(e)},e.unit),t[8]=r,t[9]=s,t[10]=o,t[11]=n.speicher_gesamt,t[12]=a,t[13]=e):e=t[13],l=I(n.services).map(e),t[1]=r,t[2]=s,t[3]=o,t[4]=n.services,t[5]=n.speicher_gesamt,t[6]=a,t[7]=l}else l=t[7];let u;return t[14]===l?u=t[15]:(u=(0,T.jsxs)(`div`,{role:`table`,"aria-label":`Dienste der KI-Box`,className:`flex flex-col`,children:[c,l]}),t[14]=l,t[15]=u),u}function Z(e){let t=(0,w.c)(8),{dienste:n,stand:r}=e,i;t[0]===n?i=t[1]:(i=n.filter(ne),t[0]=n,t[1]=i);let a=i.length,o;if(t[2]!==n||t[3]!==a||t[4]!==r){let e=n.filter($),i;t[6]===r?i=t[7]:(i=r>0&&(0,T.jsxs)(`span`,{className:`ziffern text-sm text-text-3`,children:[`Stand `,q.format(r)]}),t[6]=r,t[7]=i),o=(0,T.jsxs)(`span`,{className:`flex flex-wrap items-center gap-3`,children:[i,a>0?(0,T.jsx)(y,{art:`rot`,children:a===1?`1 Problem`:`${a} Probleme`}):e.length>0?(0,T.jsx)(y,{art:`bernstein`,children:e.some(Q)?`Startet gerade`:`Stoppt gerade`}):(0,T.jsx)(y,{art:`gruen`,children:`Alles in Ordnung`})]}),t[2]=n,t[3]=a,t[4]=r,t[5]=o}else o=t[5];return o}function Q(e){return N(e)===`startet`}function $(e){return F(e)===1}function pe(){let e=p(),t=d(),[n,r]=(0,C.useState)(null),[i,c]=(0,C.useState)(null),[u,f]=(0,C.useState)(!1),[m,g]=(0,C.useState)(null);async function v(t){if(!m){g(t.unit);try{let e=await h(`/api/maintenance/restart`,{service:t.unit});e.ok?o(`erfolg`,K(t)):o(`fehler`,`${t.name} ließ sich nicht starten: ${a(e)}`)}catch(e){t.unit===`mission-control-2`&&e instanceof s?o(`info`,`Der Box-Wart startet neu. Die Seite ist gleich wieder da.`):o(`fehler`,e.message)}finally{g(null),e.invalidateQueries({queryKey:[`dienste`]}),e.invalidateQueries({queryKey:[`protokoll`,t.unit]})}}}if(t.isPending)return(0,T.jsx)(_,{text:`Die Dienste werden gelesen …`});if(!t.data)return(0,T.jsx)(_,{fehler:!0,text:`Die Dienste lassen sich gerade nicht lesen: ${t.error?.message??`keine Daten`}`});let y=t.data,b=i?G(i):null,ee=y.speicher_gesamt?`den ${l(y.speicher_gesamt)}`:`dem Arbeitsspeicher`,w=y.kerne?`allen ${y.kerne} Kernen`:`allen Kernen`;return(0,T.jsxs)(T.Fragment,{children:[(0,T.jsxs)(S,{titel:`Dienste`,rechts:(0,T.jsx)(Z,{dienste:y.services,stand:t.dataUpdatedAt}),children:[(0,T.jsx)(`p`,{className:`-mt-2 text-[15px] text-text-2`,children:`Die Dienste der KI-Box: ob sie laufen, was sie gerade an CPU und Speicher brauchen, seit wann sie laufen und was sie zuletzt ins Protokoll geschrieben haben. Probleme stehen oben.`}),y.services.length===0?(0,T.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Keine Dienste gefunden.`}):(0,T.jsx)(X,{stand:y,gewaehlt:n,startet:m,onProtokoll:e=>r(n===e?null:e),onFrage:e=>{c(e),f(!0)}}),(0,T.jsxs)(`p`,{className:`m-0 text-xs leading-relaxed text-text-3`,children:[`CPU: Anteil an `,w,` der Box, gemessen zwischen zwei Abfragen (alle zehn Sekunden). Speicher: was systemd dem Dienst zurechnet; der Balken zeigt den Anteil an `,ee,` der Box. Bei der Engine zählen die geladenen Modelle mit — sie liegen im Grafikspeicher, den systemd keinem Dienst zurechnet. Neustarts: wie oft systemd den Dienst nach einem Absturz von selbst wieder gestartet hat. „Schläft“ heißt: mit Absicht abgeschaltet, kein Fehler.`]}),(0,T.jsx)(x,{offen:u&&!!b,titel:b?.titel??``,text:b?.text??``,knopf:b?.knopf??``,gefahr:b?.knopf===`Neu starten`,gesperrt:m!==null,onJa:()=>{f(!1),i&&v(i)},onNein:()=>f(!1)})]}),(0,T.jsx)(A,{})]})}export{pe as DiensteSeite}; \ No newline at end of file diff --git a/frontend/dist/assets/Dienste-CswS8GkA.js b/frontend/dist/assets/Dienste-CswS8GkA.js deleted file mode 100644 index 5544027..0000000 --- a/frontend/dist/assets/Dienste-CswS8GkA.js +++ /dev/null @@ -1 +0,0 @@ -import{a as e,c as t,i as n,r,t as i}from"./dist-aE7UmubC.js";import{At as a,Jt as o,Ot as s,_t as c,ct as l,dt as u,f as d,ot as f,t as p,xt as m,z as h}from"./abfragen-DKcWnZ8a.js";import{A as g,M as _,N as v,O as y,S as b}from"./index-BUHDF9RN.js";import{t as x}from"./button-DwYvdWVr.js";import{t as S}from"./Bestaetigen-BemBWZzN.js";import{t as C}from"./Panel-uT1S5ZGr.js";var w=t(e(),1),T=r(),E=n(),D={ok:{wort:`pünktlich`,punkt:`bg-gruen`,text:`text-text-3`},ueberfaellig:{wort:`überfällig`,punkt:`bg-rot shadow-[0_0_8px_var(--rot)]`,text:`text-rot-text`},gestoppt:{wort:`läuft nicht`,punkt:`bg-rot shadow-[0_0_8px_var(--rot)]`,text:`text-rot-text`},aus:{wort:`abgeschaltet`,punkt:`bg-text-3`,text:`text-text-3`}},O=`md:grid-cols-[minmax(0,1.4fr)_minmax(0,1fr)_minmax(0,1fr)_110px]`,k=e=>f(new Date(e*1e3).toISOString());function A(e){let t=(0,T.c)(36),{a:n}=e,r=D[n.status]??D.ok,a;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=i(`grid grid-cols-2 gap-x-4 gap-y-1.5 border-t border-white/[0.06] py-3 md:items-center`,O),t[0]=a):a=t[0];let o;t[1]===r.punkt?o=t[2]:(o=i(`mt-1.5 size-2 shrink-0 rounded-full`,r.punkt),t[1]=r.punkt,t[2]=o);let s;t[3]===o?s=t[4]:(s=(0,E.jsx)(`span`,{"aria-hidden":!0,className:o}),t[3]=o,t[4]=s);let c;t[5]===n.name?c=t[6]:(c=(0,E.jsx)(`span`,{className:`text-[15px] font-semibold break-words`,children:n.name}),t[5]=n.name,t[6]=c);let l;t[7]===n.takt?l=t[8]:(l=(0,E.jsx)(`span`,{className:`text-[13px] text-text-3`,children:n.takt}),t[7]=n.takt,t[8]=l);let d;t[9]!==c||t[10]!==l?(d=(0,E.jsxs)(`span`,{className:`flex min-w-0 flex-col`,children:[c,l]}),t[9]=c,t[10]=l,t[11]=d):d=t[11];let f;t[12]!==s||t[13]!==d?(f=(0,E.jsxs)(`div`,{role:`rowheader`,className:`col-span-2 flex min-w-0 items-start gap-2.5 md:col-span-1`,children:[s,d]}),t[12]=s,t[13]=d,t[14]=f):f=t[14];let p;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,E.jsx)(`span`,{className:`text-xs text-text-3 md:hidden`,children:`Zuletzt `}),t[15]=p):p=t[15];let m;t[16]===n.letzter?m=t[17]:(m=(0,E.jsxs)(`span`,{role:`cell`,className:`text-sm text-text-2`,children:[p,n.letzter?(0,E.jsx)(`span`,{className:`ziffern`,children:u(n.letzter)}):(0,E.jsx)(`span`,{className:`text-text-3`,children:`–`})]}),t[16]=n.letzter,t[17]=m);let h;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,E.jsx)(`span`,{className:`text-xs text-text-3 md:hidden`,children:`Nächster `}),t[18]=h):h=t[18];let g;t[19]===n.naechster?g=t[20]:(g=(0,E.jsxs)(`span`,{role:`cell`,className:`text-sm text-text-2`,children:[h,n.naechster?(0,E.jsx)(`span`,{className:`ziffern`,children:k(n.naechster).toLowerCase()}):(0,E.jsx)(`span`,{className:`text-text-3`,children:`–`})]}),t[19]=n.naechster,t[20]=g);let _;t[21]===r.text?_=t[22]:(_=i(`etikett text-[10.5px] tracking-[0.12em]`,r.text),t[21]=r.text,t[22]=_);let v;t[23]!==r.wort||t[24]!==_?(v=(0,E.jsx)(`span`,{role:`cell`,className:_,children:r.wort}),t[23]=r.wort,t[24]=_,t[25]=v):v=t[25];let y;t[26]!==n.status||t[27]!==n.text||t[28]!==r.text?(y=n.text&&n.status!==`ok`&&(0,E.jsx)(`p`,{className:i(`col-span-2 m-0 text-sm md:col-span-4 md:pl-[18px]`,r.text),children:n.text}),t[26]=n.status,t[27]=n.text,t[28]=r.text,t[29]=y):y=t[29];let b;return t[30]!==g||t[31]!==v||t[32]!==y||t[33]!==f||t[34]!==m?(b=(0,E.jsxs)(`div`,{role:`row`,className:a,children:[f,m,g,v,y]}),t[30]=g,t[31]=v,t[32]=y,t[33]=f,t[34]=m,t[35]=b):b=t[35],b}function j(){let e=(0,T.c)(15),t=p(),n;e[0]===t.data?.ablaeufe?n=e[1]:(n=t.data?.ablaeufe??[],e[0]=t.data?.ablaeufe,e[1]=n);let r=n,a;e[2]===r?a=e[3]:(a=r.filter(N),e[2]=r,e[3]=a);let o=a.length,s;e[4]!==t.data||e[5]!==o?(s=t.data?(0,E.jsx)(_,{art:o?`rot`:`gruen`,children:o?`${o} überfällig`:`alle pünktlich`}):void 0,e[4]=t.data,e[5]=o,e[6]=s):s=e[6];let c;e[7]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,E.jsx)(`p`,{className:`-mt-2 text-[15px] text-text-2`,children:`Was die Box regelmäßig von selbst tut. Bleibt ein Lauf länger aus als erwartet, steht er hier oben und der Wächter meldet es — ein Stillstand wie im September fällt so am ersten Morgen auf.`}),e[7]=c):c=e[7];let l;e[8]!==t.error||e[9]!==t.isPending||e[10]!==r?(l=t.isPending?(0,E.jsx)(`p`,{className:`text-sm text-text-3`,children:`Wird gelesen …`}):t.error?(0,E.jsxs)(`p`,{role:`alert`,className:`text-sm text-rot-text`,children:[`Die Zeitpläne lassen sich gerade nicht lesen: `,t.error.message]}):(0,E.jsxs)(`div`,{role:`table`,"aria-label":`Zeitpläne`,className:`flex flex-col`,children:[(0,E.jsxs)(`div`,{role:`row`,className:i(`etikett hidden gap-x-4 pb-2.5 text-[10.5px] tracking-[0.14em] text-text-3 md:grid`,O),children:[(0,E.jsx)(`span`,{role:`columnheader`,children:`Ablauf`}),(0,E.jsx)(`span`,{role:`columnheader`,children:`Zuletzt`}),(0,E.jsx)(`span`,{role:`columnheader`,children:`Nächster`}),(0,E.jsx)(`span`,{role:`columnheader`,children:`Zustand`})]}),r.map(M)]}),e[8]=t.error,e[9]=t.isPending,e[10]=r,e[11]=l):l=e[11];let u;return e[12]!==s||e[13]!==l?(u=(0,E.jsxs)(C,{titel:`Zeitpläne`,rechts:s,children:[c,l]}),e[12]=s,e[13]=l,e[14]=u):u=e[14],u}function M(e){return(0,E.jsx)(A,{a:e},e.id)}function N(e){return e.status===`ueberfaellig`||e.status===`gestoppt`}var ee={laeuft:{wort:`läuft`,punkt:`bg-gruen`,text:`text-text-3`},startet:{wort:`startet`,punkt:`bg-bernstein`,text:`text-bernstein`},stoppt:{wort:`stoppt`,punkt:`bg-bernstein`,text:`text-bernstein`},antwortet_nicht:{wort:`antwortet nicht`,punkt:`bg-rot`,text:`text-rot-text`},gestoppt:{wort:`gestoppt`,punkt:`bg-rot`,text:`text-rot-text`},gescheitert:{wort:`gescheitert`,punkt:`bg-rot`,text:`text-rot-text`},schlaeft:{wort:`schläft`,punkt:`bg-text-3`,text:`text-text-3`}};function P(e){return e.zustand?e.zustand:e.ok?`laeuft`:e.schlaeft?`schlaeft`:`antwortet_nicht`}var F={gescheitert:0,gestoppt:0,antwortet_nicht:0,startet:1,stoppt:1,laeuft:3,schlaeft:4};function I(e){let t=P(e);return t===`laeuft`&&(e.neustarts??0)>0?2:F[t]}var te=e=>I(e)===0,L=e=>[...e].sort((e,t)=>I(e)-I(t)),R=new Intl.NumberFormat(`de-DE`,{maximumFractionDigits:0}),z=new Intl.NumberFormat(`de-DE`,{minimumFractionDigits:1,maximumFractionDigits:1});function ne(e){if(e==null)return`–`;let t=e/1024**2;return t<1e3?`${R.format(t)} MB`:`${z.format(t/1024)} GB`}function re(e,t){return e.speicher_bytes==null||!t?null:(e.speicher_bytes+(e.grafik_bytes??0))/t*100}function ie(e){return e==null?`–`:e>0&&e<.05?`< 0,1 %`:e<10?`${z.format(e).replace(/,0$/,``)} %`:`${R.format(e)} %`}function ae(e){return e==null||e<0?`–`:e<60?`< 1 min`:b(e)}var B=`Europe/Berlin`,V=new Intl.DateTimeFormat(`de-DE`,{hour:`2-digit`,minute:`2-digit`,timeZone:B}),H=new Intl.DateTimeFormat(`de-DE`,{day:`2-digit`,month:`2-digit`,timeZone:B}),U=new Intl.DateTimeFormat(`en-CA`,{timeZone:B});function oe(e,t=Date.now()){let n=new Date(t-e*1e3),r=U.format(n);return r===U.format(new Date(t))?`heute ${V.format(n)}`:r===U.format(new Date(t-864e5))?`gestern ${V.format(n)}`:`${H.format(n)}, ${V.format(n)}`}function se(e,t=Date.now()){let n=P(e);return n===`schlaeft`?`mit Absicht aus`:(n===`gestoppt`||n===`gescheitert`)&&e.aus_seit_s!=null?`aus seit ${oe(e.aus_seit_s,t)}`:null}function W(e){let t=P(e);return t===`schlaeft`?`Wecken`:t===`gestoppt`||t===`gescheitert`?`Starten`:`Neu starten`}var G={"llama-swap":`Laufende Antworten brechen ab; die Modelle werden danach neu geladen.`,"mission-control-2":`Das ist diese Oberfläche selbst: Sie ist ein paar Sekunden nicht erreichbar.`,"hermes-gateway":`Lucy antwortet in der Zeit nicht.`};function K(e){let t=W(e);if(t===`Wecken`)return{titel:`${e.name} wecken?`,text:`Der Dienst startet und läuft bis zum nächsten Neustart der Box. Danach schläft er wieder.`,knopf:t};if(t===`Starten`)return{titel:`${e.name} starten?`,text:`Der Dienst wird gestartet. Scheitert er wieder, steht der Grund im Protokoll.`,knopf:t};let n=G[e.unit]?` ${G[e.unit]}`:``;return{titel:`${e.name} neu starten?`,text:`Der Dienst wird neu gestartet und ist dabei kurz nicht erreichbar.${n}`,knopf:t}}function q(e){let t=W(e);return`${e.name} ${t===`Wecken`?`wird geweckt`:t===`Starten`?`startet`:`startet neu`}.`}var ce={laeuft:`ok`,startet:`warn`,stoppt:`warn`,antwortet_nicht:`rot`,gestoppt:`rot`,gescheitert:`rot`,schlaeft:`aus`},le=`grid-cols-2 gap-x-4 sm:grid-cols-4 xl:gap-x-3 xl:grid-cols-[minmax(0,1.7fr)_7rem_minmax(0,0.7fr)_minmax(0,1.2fr)_7.5rem_5rem_9.5rem] min-[87.5rem]:grid-cols-[minmax(0,1.7fr)_7rem_minmax(0,0.7fr)_minmax(0,1.2fr)_7.5rem_5rem_17.5rem]`,J=new Intl.DateTimeFormat(`de-DE`,{hour:`2-digit`,minute:`2-digit`,second:`2-digit`,timeZone:`Europe/Berlin`});function ue(e){let t=(0,T.c)(2),{children:n}=e,r;return t[0]===n?r=t[1]:(r=(0,E.jsx)(`span`,{className:`block text-xs text-text-3 xl:hidden`,children:n}),t[0]=n,t[1]=r),r}function de(e){let t=(0,T.c)(7),{anteil:n,children:r}=e,i;t[0]===r?i=t[1]:(i=(0,E.jsx)(`span`,{className:`ziffern text-sm text-text-2`,children:r}),t[0]=r,t[1]=i);let a;t[2]===n?a=t[3]:(a=n!==null&&(0,E.jsx)(`span`,{className:`h-1.5 w-full max-w-40 overflow-hidden rounded-full bg-white/[0.07]`,"aria-hidden":!0,children:(0,E.jsx)(`span`,{className:`block h-full rounded-full`,style:{width:`${Math.min(100,Math.max(2,n))}%`,background:`var(--reihe-1)`}})}),t[2]=n,t[3]=a);let o;return t[4]!==i||t[5]!==a?(o=(0,E.jsxs)(`span`,{className:`flex min-w-0 flex-col gap-1`,children:[i,a]}),t[4]=i,t[5]=a,t[6]=o):o=t[6],o}function fe(e){let t=(0,T.c)(9),{d:n,id:r}=e,i=h(n.unit),a=(0,w.useRef)(null),o;if(i.isPending)o=`Wird gelesen …`;else if(i.isError)o=`Das Protokoll lässt sich gerade nicht lesen: ${i.error.message}`;else if(i.data.ok===!1)o=i.data.err||i.data.text||`Das Protokoll lässt sich nicht lesen.`;else{let e;t[0]===i.data.text?e=t[1]:(e=i.data.text?.trim()||`Noch keine Einträge.`,t[0]=i.data.text,t[1]=e),o=e}let s;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(s=()=>{a.current&&(a.current.scrollTop=a.current.scrollHeight)},t[2]=s):s=t[2];let c;t[3]===o?c=t[4]:(c=[o],t[3]=o,t[4]=c),(0,w.useEffect)(s,c);let l=`Letzte Protokollzeilen von ${n.name}`,u;return t[5]!==r||t[6]!==l||t[7]!==o?(u=(0,E.jsx)(`pre`,{id:r,ref:a,tabIndex:0,"aria-label":l,className:`ziffern m-0 max-h-[50vh] w-full overflow-auto rounded-lg bg-black/30 ring-1 ring-white/[0.07] ring-inset p-3 text-xs leading-relaxed whitespace-pre-wrap break-words text-text-2`,children:o}),t[5]=r,t[6]=l,t[7]=o,t[8]=u):u=t[8],u}function Y(e){let t=(0,T.c)(113),{d:n,gesamt:r,offen:a,startet:o,onProtokoll:s,onFrage:c}=e,l=ee[P(n)],u;t[0]===n?u=t[1]:(u=se(n),t[0]=n,t[1]=u);let d=u,f,p,m,h,_,v,b,S,C,w,D;if(t[2]!==n||t[3]!==r||t[4]!==l.text||t[5]!==l.wort||t[6]!==d){let e=re(n,r);f=n.neustarts??0,p=`protokoll-${n.unit}`,S=`row`,t[18]===Symbol.for(`react.memo_cache_sentinel`)?(C=i(`grid gap-y-2.5 border-t border-white/[0.06] py-3 xl:items-center`,le),t[18]=C):C=t[18];let a;t[19]===n.unit?a=t[20]:(a=g(n.unit),t[19]=n.unit,t[20]=a);let o=ce[P(n)],s;t[21]!==a||t[22]!==o?(s=(0,E.jsx)(y,{bild:a,groesse:`sm`,punkt:o}),t[21]=a,t[22]=o,t[23]=s):s=t[23];let c;t[24]===n.name?c=t[25]:(c=(0,E.jsx)(`span`,{className:`text-[15px] font-semibold break-words`,children:n.name}),t[24]=n.name,t[25]=c);let u=n.scope===`system`?` · Systemdienst`:``,x;t[26]!==n.unit||t[27]!==u?(x=(0,E.jsxs)(`span`,{className:`ziffern text-xs break-words text-text-3`,children:[n.unit,u]}),t[26]=n.unit,t[27]=u,t[28]=x):x=t[28];let T;t[29]!==c||t[30]!==x?(T=(0,E.jsxs)(`span`,{className:`flex min-w-0 flex-col`,children:[c,x]}),t[29]=c,t[30]=x,t[31]=T):T=t[31],t[32]!==s||t[33]!==T?(w=(0,E.jsxs)(`div`,{role:`rowheader`,className:`col-span-2 flex min-w-0 items-center gap-3 xl:col-span-1`,children:[s,T]}),t[32]=s,t[33]=T,t[34]=w):w=t[34];let O;t[35]===Symbol.for(`react.memo_cache_sentinel`)?(O=(0,E.jsx)(ue,{children:`Zustand`}),t[35]=O):O=t[35];let k;t[36]===l.text?k=t[37]:(k=i(`etikett text-[10.5px] tracking-[0.12em]`,l.text),t[36]=l.text,t[37]=k);let A;t[38]!==k||t[39]!==l.wort?(A=(0,E.jsx)(`span`,{className:k,children:l.wort}),t[38]=k,t[39]=l.wort,t[40]=A):A=t[40];let j;t[41]===d?j=t[42]:(j=d&&(0,E.jsx)(`span`,{className:`text-xs text-text-3`,children:d}),t[41]=d,t[42]=j);let M;t[43]===f?M=t[44]:(M=f>0&&(0,E.jsx)(`span`,{className:`text-xs text-bernstein xl:hidden`,children:f===1?`1 Neustart`:`${f} Neustarts`}),t[43]=f,t[44]=M),t[45]!==A||t[46]!==j||t[47]!==M?(D=(0,E.jsxs)(`span`,{role:`cell`,className:`flex min-w-0 flex-col gap-0.5`,children:[O,A,j,M]}),t[45]=A,t[46]=j,t[47]=M,t[48]=D):D=t[48];let N;t[49]===Symbol.for(`react.memo_cache_sentinel`)?(N=(0,E.jsx)(ue,{children:`CPU`}),t[49]=N):N=t[49],t[50]===n.cpu_prozent?m=t[51]:(m=(0,E.jsxs)(`span`,{role:`cell`,className:`min-w-0`,children:[N,n.cpu_prozent==null?(0,E.jsx)(`span`,{className:`text-sm text-text-3`,children:`–`}):(0,E.jsx)(de,{anteil:n.cpu_prozent,children:ie(n.cpu_prozent)})]}),t[50]=n.cpu_prozent,t[51]=m),h=`cell`,_=`min-w-0`,t[52]===Symbol.for(`react.memo_cache_sentinel`)?(v=(0,E.jsx)(ue,{children:`Speicher`}),t[52]=v):v=t[52],b=n.speicher_bytes==null?(0,E.jsx)(`span`,{className:`text-sm text-text-3`,children:`–`}):(0,E.jsxs)(de,{anteil:e,children:[ne(n.speicher_bytes+(n.grafik_bytes??0)),e!==null&&(0,E.jsxs)(`span`,{className:`font-sans text-xs text-text-3`,children:[` · `,ie(e)]})]}),t[2]=n,t[3]=r,t[4]=l.text,t[5]=l.wort,t[6]=d,t[7]=f,t[8]=p,t[9]=m,t[10]=h,t[11]=_,t[12]=v,t[13]=b,t[14]=S,t[15]=C,t[16]=w,t[17]=D}else f=t[7],p=t[8],m=t[9],h=t[10],_=t[11],v=t[12],b=t[13],S=t[14],C=t[15],w=t[16],D=t[17];let O;t[53]!==n.grafik_bytes||t[54]!==n.speicher_bytes?(O=n.speicher_bytes!=null&&!!n.grafik_bytes&&(0,E.jsxs)(`span`,{className:`mt-1 block text-xs text-text-3`,children:[`davon `,ne(n.grafik_bytes),` Modelle`]}),t[53]=n.grafik_bytes,t[54]=n.speicher_bytes,t[55]=O):O=t[55];let k;t[56]!==O||t[57]!==h||t[58]!==_||t[59]!==v||t[60]!==b?(k=(0,E.jsxs)(`span`,{role:h,className:_,children:[v,b,O]}),t[56]=O,t[57]=h,t[58]=_,t[59]=v,t[60]=b,t[61]=k):k=t[61];let A;t[62]===Symbol.for(`react.memo_cache_sentinel`)?(A=(0,E.jsx)(ue,{children:`Läuft seit`}),t[62]=A):A=t[62];let j;t[63]===n.laeuft_seit_s?j=t[64]:(j=ae(n.laeuft_seit_s),t[63]=n.laeuft_seit_s,t[64]=j);let M;t[65]===j?M=t[66]:(M=(0,E.jsx)(`span`,{className:`ziffern text-sm text-text-2`,children:j}),t[65]=j,t[66]=M);let N;t[67]===n.laeuft_seit_s?N=t[68]:(N=n.laeuft_seit_s!=null&&(0,E.jsxs)(`span`,{className:`text-xs text-text-3`,children:[`gestartet `,oe(n.laeuft_seit_s)]}),t[67]=n.laeuft_seit_s,t[68]=N);let F;t[69]!==M||t[70]!==N?(F=(0,E.jsxs)(`span`,{role:`cell`,className:`flex min-w-0 flex-col gap-0.5`,children:[A,M,N]}),t[69]=M,t[70]=N,t[71]=F):F=t[71];let I=f>0?`text-bernstein`:`text-text-3`,L;t[72]===I?L=t[73]:(L=i(`ziffern text-sm`,I),t[72]=I,t[73]=L);let R=n.neustarts??`–`,z;t[74]!==L||t[75]!==R?(z=(0,E.jsx)(`span`,{role:`cell`,className:`hidden min-w-0 xl:block`,children:(0,E.jsx)(`span`,{className:L,children:R})}),t[74]=L,t[75]=R,t[76]=z):z=t[76];let B=a?`info`:`ghost`,V=a?p:void 0,H=`Protokoll von ${n.name}`,U;t[77]!==a||t[78]!==s||t[79]!==B||t[80]!==V||t[81]!==H?(U=(0,E.jsx)(x,{variant:B,size:`sm`,"aria-expanded":a,"aria-controls":V,"aria-label":H,onClick:s,children:`Protokoll`}),t[77]=a,t[78]=s,t[79]=B,t[80]=V,t[81]=H,t[82]=U):U=t[82];let G=te(n)?`default`:`outline`,K=o!==null,q;t[83]!==n||t[84]!==o?(q=o===n.unit?`startet …`:W(n),t[83]=n,t[84]=o,t[85]=q):q=t[85];let J=`${n.name}: ${q}`,Y;t[86]!==n||t[87]!==o?(Y=o===n.unit?`Startet …`:W(n),t[86]=n,t[87]=o,t[88]=Y):Y=t[88];let X;t[89]!==c||t[90]!==G||t[91]!==K||t[92]!==J||t[93]!==Y?(X=(0,E.jsx)(x,{variant:G,size:`sm`,disabled:K,"aria-label":J,onClick:c,children:Y}),t[89]=c,t[90]=G,t[91]=K,t[92]=J,t[93]=Y,t[94]=X):X=t[94];let Z;t[95]!==U||t[96]!==X?(Z=(0,E.jsxs)(`span`,{role:`cell`,className:`col-span-2 flex flex-wrap gap-2 sm:col-start-3 sm:row-start-1 sm:justify-end sm:self-start xl:col-span-1 xl:col-start-auto xl:row-start-auto xl:flex-col xl:items-stretch xl:self-center min-[87.5rem]:flex-row min-[87.5rem]:justify-end`,children:[U,X]}),t[95]=U,t[96]=X,t[97]=Z):Z=t[97];let Q;t[98]!==n||t[99]!==a||t[100]!==p?(Q=a&&(0,E.jsx)(`div`,{role:`cell`,className:`col-span-full`,children:(0,E.jsx)(fe,{d:n,id:p})}),t[98]=n,t[99]=a,t[100]=p,t[101]=Q):Q=t[101];let $;return t[102]!==m||t[103]!==k||t[104]!==F||t[105]!==z||t[106]!==Z||t[107]!==Q||t[108]!==S||t[109]!==C||t[110]!==w||t[111]!==D?($=(0,E.jsxs)(`div`,{role:S,className:C,children:[w,D,m,k,F,z,Z,Q]}),t[102]=m,t[103]=k,t[104]=F,t[105]=z,t[106]=Z,t[107]=Q,t[108]=S,t[109]=C,t[110]=w,t[111]=D,t[112]=$):$=t[112],$}function X(e){let t=(0,T.c)(16),{stand:n,gewaehlt:r,startet:a,onProtokoll:o,onFrage:s}=e,c;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,E.jsxs)(`div`,{role:`row`,className:i(`etikett hidden pb-2 text-[10.5px] tracking-[0.14em] text-text-3 xl:grid`,le),children:[(0,E.jsx)(`span`,{role:`columnheader`,children:`Dienst`}),(0,E.jsx)(`span`,{role:`columnheader`,children:`Zustand`}),(0,E.jsx)(`span`,{role:`columnheader`,children:`CPU`}),(0,E.jsx)(`span`,{role:`columnheader`,children:`Speicher`}),(0,E.jsx)(`span`,{role:`columnheader`,children:`Läuft seit`}),(0,E.jsx)(`span`,{role:`columnheader`,children:`Neustarts`}),(0,E.jsx)(`span`,{role:`columnheader`,className:`sr-only`,children:`Aktionen`})]}),t[0]=c):c=t[0];let l;if(t[1]!==r||t[2]!==s||t[3]!==o||t[4]!==n.services||t[5]!==n.speicher_gesamt||t[6]!==a){let e;t[8]!==r||t[9]!==s||t[10]!==o||t[11]!==n.speicher_gesamt||t[12]!==a?(e=e=>(0,E.jsx)(Y,{d:e,gesamt:n.speicher_gesamt,offen:r===e.unit,startet:a,onProtokoll:()=>o(e.unit),onFrage:()=>s(e)},e.unit),t[8]=r,t[9]=s,t[10]=o,t[11]=n.speicher_gesamt,t[12]=a,t[13]=e):e=t[13],l=L(n.services).map(e),t[1]=r,t[2]=s,t[3]=o,t[4]=n.services,t[5]=n.speicher_gesamt,t[6]=a,t[7]=l}else l=t[7];let u;return t[14]===l?u=t[15]:(u=(0,E.jsxs)(`div`,{role:`table`,"aria-label":`Dienste der KI-Box`,className:`flex flex-col`,children:[c,l]}),t[14]=l,t[15]=u),u}function Z(e){let t=(0,T.c)(8),{dienste:n,stand:r}=e,i;t[0]===n?i=t[1]:(i=n.filter(te),t[0]=n,t[1]=i);let a=i.length,o;if(t[2]!==n||t[3]!==a||t[4]!==r){let e=n.filter($),i;t[6]===r?i=t[7]:(i=r>0&&(0,E.jsxs)(`span`,{className:`ziffern text-sm text-text-3`,children:[`Stand `,J.format(r)]}),t[6]=r,t[7]=i),o=(0,E.jsxs)(`span`,{className:`flex flex-wrap items-center gap-3`,children:[i,a>0?(0,E.jsx)(_,{art:`rot`,children:a===1?`1 Problem`:`${a} Probleme`}):e.length>0?(0,E.jsx)(_,{art:`bernstein`,children:e.some(Q)?`Startet gerade`:`Stoppt gerade`}):(0,E.jsx)(_,{art:`gruen`,children:`Alles in Ordnung`})]}),t[2]=n,t[3]=a,t[4]=r,t[5]=o}else o=t[5];return o}function Q(e){return P(e)===`startet`}function $(e){return I(e)===1}function pe(){let e=o(),t=d(),[n,r]=(0,w.useState)(null),[i,u]=(0,w.useState)(null),[f,p]=(0,w.useState)(!1),[h,g]=(0,w.useState)(null);async function _(t){if(!h){g(t.unit);try{let e=await a(`/api/maintenance/restart`,{service:t.unit});e.ok?c(`erfolg`,q(t)):c(`fehler`,`${t.name} ließ sich nicht starten: ${m(e)}`)}catch(e){t.unit===`mission-control-2`&&e instanceof s?c(`info`,`Der Box-Wart startet neu. Die Seite ist gleich wieder da.`):c(`fehler`,e.message)}finally{g(null),e.invalidateQueries({queryKey:[`dienste`]}),e.invalidateQueries({queryKey:[`protokoll`,t.unit]})}}}if(t.isPending)return(0,E.jsx)(v,{text:`Die Dienste werden gelesen …`});if(!t.data)return(0,E.jsx)(v,{fehler:!0,text:`Die Dienste lassen sich gerade nicht lesen: ${t.error?.message??`keine Daten`}`});let y=t.data,b=i?K(i):null,x=y.speicher_gesamt?`den ${l(y.speicher_gesamt)}`:`dem Arbeitsspeicher`,T=y.kerne?`allen ${y.kerne} Kernen`:`allen Kernen`;return(0,E.jsxs)(E.Fragment,{children:[(0,E.jsxs)(C,{titel:`Dienste`,rechts:(0,E.jsx)(Z,{dienste:y.services,stand:t.dataUpdatedAt}),children:[(0,E.jsx)(`p`,{className:`-mt-2 text-[15px] text-text-2`,children:`Die Dienste der KI-Box: ob sie laufen, was sie gerade an CPU und Speicher brauchen, seit wann sie laufen und was sie zuletzt ins Protokoll geschrieben haben. Probleme stehen oben.`}),y.services.length===0?(0,E.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Keine Dienste gefunden.`}):(0,E.jsx)(X,{stand:y,gewaehlt:n,startet:h,onProtokoll:e=>r(n===e?null:e),onFrage:e=>{u(e),p(!0)}}),(0,E.jsxs)(`p`,{className:`m-0 text-xs leading-relaxed text-text-3`,children:[`CPU: Anteil an `,T,` der Box, gemessen zwischen zwei Abfragen (alle zehn Sekunden). Speicher: was systemd dem Dienst zurechnet; der Balken zeigt den Anteil an `,x,` der Box. Bei der Engine zählen die geladenen Modelle mit — sie liegen im Grafikspeicher, den systemd keinem Dienst zurechnet. Neustarts: wie oft systemd den Dienst nach einem Absturz von selbst wieder gestartet hat. „Schläft“ heißt: mit Absicht abgeschaltet, kein Fehler.`]}),(0,E.jsx)(S,{offen:f&&!!b,titel:b?.titel??``,text:b?.text??``,knopf:b?.knopf??``,gefahr:b?.knopf===`Neu starten`,gesperrt:h!==null,onJa:()=>{p(!1),i&&_(i)},onNein:()=>p(!1)})]}),(0,E.jsx)(j,{})]})}export{pe as DiensteSeite}; \ No newline at end of file diff --git a/frontend/dist/assets/Einstellungen-BYXmW-yb.js b/frontend/dist/assets/Einstellungen-BYXmW-yb.js deleted file mode 100644 index 1b4c716..0000000 --- a/frontend/dist/assets/Einstellungen-BYXmW-yb.js +++ /dev/null @@ -1 +0,0 @@ -import{a as e,c as t,i as n,n as r,r as i,t as a}from"./dist-aE7UmubC.js";import{$ as o,At as s,D as c,H as l,Jt as u,R as d,Z as f,_t as p,jt as m,kt as h,n as g,o as _,ot as v,p as y,s as b,tt as x,v as S}from"./abfragen-DKcWnZ8a.js";import{M as C,rt as w}from"./index-BUHDF9RN.js";import{t as T}from"./button-DwYvdWVr.js";import{t as E}from"./Bestaetigen-BemBWZzN.js";var D={name:`key-round`,size:24,node:[[`path`,{d:`M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z`,key:`1s6t7t`}],[`circle`,{cx:`16.5`,cy:`7.5`,r:`.5`,fill:`currentColor`,key:`w0ekpg`}]]};D.node;var O=r(D),k=i(),A=t(e(),1),j=n(),M=[`Montag`,`Dienstag`,`Mittwoch`,`Donnerstag`,`Freitag`,`Samstag`,`Sonntag`],N=Array.from({length:48},(e,t)=>`${String(Math.floor(t/2)).padStart(2,`0`)}:${t%2?`30`:`00`}`),P=new Intl.DateTimeFormat(`de-DE`,{day:`2-digit`,month:`2-digit`,year:`numeric`,hour:`2-digit`,minute:`2-digit`,timeZone:`Europe/Berlin`});function F(e){let t=e?new Date(e):null;return t&&!Number.isNaN(t.getTime())?P.format(t):`–`}function I(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?`${M[e-1]} ${o}–${s}`:`${M[e-1]} ${o} – ${M[i-1]} ${s}`}function L(e){let t=(0,k.c)(6),{titel:n,children:r}=e,i;t[0]===n?i=t[1]:(i=(0,j.jsx)(`h3`,{className:`etikett text-[11.5px] tracking-[0.16em] text-text-2`,children:n}),t[0]=n,t[1]=i);let a;return t[2]!==r||t[3]!==i||t[4]!==n?(a=(0,j.jsxs)(`section`,{"aria-label":n,className:`flex flex-col gap-3 border-t border-white/[0.06] pt-4 first:border-t-0 first:pt-0`,children:[i,r]}),t[2]=r,t[3]=i,t[4]=n,t[5]=a):a=t[5],a}function R(e){let t=(0,k.c)(22),{titel:n,text:r,farbe:i,children:o}=e,s=i===`box`?`var(--box)`:i===`homelab`?`var(--lab)`:null,c=i===`box`?`text-box-text`:i===`homelab`?`text-lab-text`:`text-foreground`,l=i===`box`?`[--rand:color-mix(in_srgb,var(--box)_28%,transparent)]`:i===`homelab`?`[--rand:color-mix(in_srgb,var(--lab)_28%,transparent)]`:``,u;t[0]===l?u=t[1]:(u=a(`flaeche relative flex min-w-0 flex-col gap-4 overflow-hidden rounded-3xl p-5 sm:p-6`,l),t[0]=l,t[1]=u);let d;t[2]===s?d=t[3]:(d=s&&(0,j.jsx)(`div`,{"aria-hidden":!0,className:`pointer-events-none absolute -top-40 -left-32 size-[400px] rounded-full`,style:{background:`radial-gradient(closest-side, color-mix(in srgb, ${s} 16%, transparent), transparent)`}}),t[2]=s,t[3]=d);let f;t[4]===c?f=t[5]:(f=a(`text-[19px] leading-tight font-semibold`,c),t[4]=c,t[5]=f);let p;t[6]!==f||t[7]!==n?(p=(0,j.jsx)(`h2`,{className:f,children:n}),t[6]=f,t[7]=n,t[8]=p):p=t[8];let m;t[9]===r?m=t[10]:(m=(0,j.jsx)(`p`,{className:`text-sm text-text-3`,children:r}),t[9]=r,t[10]=m);let h;t[11]!==p||t[12]!==m?(h=(0,j.jsxs)(`div`,{className:`relative flex flex-col gap-1`,children:[p,m]}),t[11]=p,t[12]=m,t[13]=h):h=t[13];let g;t[14]===o?g=t[15]:(g=(0,j.jsx)(`div`,{className:`relative flex min-w-0 flex-col gap-4`,children:o}),t[14]=o,t[15]=g);let _;return t[16]!==u||t[17]!==d||t[18]!==h||t[19]!==g||t[20]!==n?(_=(0,j.jsxs)(`section`,{"aria-label":n,className:u,children:[d,h,g]}),t[16]=u,t[17]=d,t[18]=h,t[19]=g,t[20]=n,t[21]=_):_=t[21],_}function z(e){let t=(0,k.c)(2),{children:n}=e,r;return t[0]===n?r=t[1]:(r=(0,j.jsx)(`p`,{className:`text-sm text-bernstein`,children:n}),t[0]=n,t[1]=r),r}function B(e){let t=(0,k.c)(3),{laedt:n,fehler:r}=e;if(n){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,j.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,j.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 V({offen:e}){let t=u(),n=m({queryKey:[`geheimnisse`],queryFn:()=>h(`/api/maintenance/geheimnisse`),enabled:e}),[r,i]=(0,A.useState)(``),[a,o]=(0,A.useState)(!1),[c,l]=(0,A.useState)(!1);async function d(e){if(!a){o(!0),l(!1);try{await s(`/api/maintenance/geheimnisse`,{schluessel:`hf_token`,wert:e}),p(`erfolg`,e?`Hugging-Face-Zugang gespeichert.`:`Hugging-Face-Zugang gelöscht.`),i(``),t.invalidateQueries({queryKey:[`geheimnisse`]})}catch(e){p(`fehler`,e.message)}finally{o(!1)}}}let f=n.data,g;return g=n.isPending?`Wird gelesen …`:f?f.hf_token_gesetzt?`Ist hinterlegt.`:`Fehlt.`:`Lässt sich gerade nicht lesen${n.error?`: ${n.error.message}`:`.`}`,(0,j.jsxs)(L,{titel:`Hugging-Face-Zugang`,children:[(0,j.jsxs)(`p`,{className:`text-sm text-text-2`,"aria-live":`polite`,children:[(0,j.jsx)(`span`,{className:!f&&!n.isPending?`text-rot-text`:void 0,children:g}),` Nötig für gesperrte Modelle und schnellere Downloads.`,f?.hf_token_aus_env?` Er kommt aus der Dienst-Einstellung und lässt sich hier nicht löschen.`:``]}),f?.schreibbar===!1&&(0,j.jsx)(`p`,{className:`text-sm text-bernstein`,children:`Die Box kann den Zugang gerade nicht speichern: Ihre Ablage ist nicht beschreibbar.`}),(0,j.jsxs)(`form`,{className:`flex gap-2`,onSubmit:e=>{e.preventDefault(),r.trim()&&d(r.trim())},children:[(0,j.jsx)(`label`,{htmlFor:`hf-token`,className:`sr-only`,children:`Hugging-Face-Zugang`}),(0,j.jsx)(`input`,{id:`hf-token`,type:`password`,autoComplete:`off`,value:r,onChange:e=>i(e.target.value),placeholder:`hf_…`,className:`h-11 min-w-0 flex-1 rounded-xl border border-white/12 bg-white/[0.04] px-3 text-[15px] outline-none focus:border-cyan/60 focus:bg-white/[0.06]`}),(0,j.jsx)(T,{type:`submit`,disabled:!r.trim()||f?.schreibbar===!1||a,children:a?`Speichert …`:`Speichern`})]}),f?.hf_token_gesetzt&&!f.hf_token_aus_env&&(c?(0,j.jsxs)(`span`,{className:`flex flex-wrap gap-2`,children:[(0,j.jsx)(T,{variant:`gefahr`,size:`sm`,disabled:a,onClick:()=>d(null),children:`Wirklich löschen?`}),(0,j.jsx)(T,{variant:`ghost`,size:`sm`,onClick:()=>l(!1),children:`Nein`})]}):(0,j.jsx)(T,{variant:`ghost`,size:`sm`,className:`self-start`,disabled:a,onClick:()=>l(!0),children:`Zugang löschen`}))]})}function H(e){let t=(0,k.c)(24),{ziel:n,name:r}=e,i=o(),a=i.data,s=null;if(i.isPending){let e;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,j.jsx)(`p`,{role:`status`,className:`text-sm text-text-2`,children:`Sendet …`}),t[0]=e):e=t[0],s=e}else if(a?.gesendet){let e=a.weg===`hermes`?`über Hermes`:`direkt an die Telegram-Bot-API`,n=a.kennung?`, Kennung ${a.kennung}`:``,r;t[1]!==e||t[2]!==n?(r=(0,j.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(a){let e=a.grund??a.detail??`ohne Angabe eines Grundes.`,n;t[4]===e?n=t[5]:(n=(0,j.jsxs)(`p`,{role:`alert`,className:`text-sm text-rot-text`,children:[`Nicht gesendet: `,e]}),t[4]=e,t[5]=n),s=n}else if(i.error){let e;t[6]===i.error.message?e=t[7]:(e=(0,j.jsx)(`p`,{role:`alert`,className:`text-sm text-rot-text`,children:i.error.message}),t[6]=i.error.message,t[7]=e),s=e}let c;t[8]===r?c=t[9]:(c=(0,j.jsx)(`span`,{className:`text-[15px]`,children:r}),t[8]=r,t[9]=c);let l;t[10]!==i||t[11]!==n?(l=()=>i.mutate(n),t[10]=i,t[11]=n,t[12]=l):l=t[12];let u=`Testmeldung von ${r} senden`,d=i.isPending?`Sendet …`:`Test senden`,f;t[13]!==l||t[14]!==u||t[15]!==d||t[16]!==i.isPending?(f=(0,j.jsx)(T,{variant:`outline`,size:`sm`,disabled:i.isPending,onClick:l,"aria-label":u,children:d}),t[13]=l,t[14]=u,t[15]=d,t[16]=i.isPending,t[17]=f):f=t[17];let p;t[18]!==c||t[19]!==f?(p=(0,j.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[c,f]}),t[18]=c,t[19]=f,t[20]=p):p=t[20];let m;return t[21]!==s||t[22]!==p?(m=(0,j.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[p,s]}),t[21]=s,t[22]=p,t[23]=m):m=t[23],m}function U(){let e=(0,k.c)(9),t=c().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(G),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,j.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,j.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 l;return e[7]===a?l=e[8]:(l=(0,j.jsxs)(L,{titel:`Telegram`,children:[o,s,a.map(W)]}),e[7]=a,e[8]=l),l}function W(e){return(0,j.jsx)(H,{ziel:e.ziel,name:e.name},e.ziel)}function G(e,t){return Number(e.ziel!==`box`)-Number(t.ziel!==`box`)}function K(e){let t=(0,k.c)(87),{e:n,laedt:r,fehler:i}=e,a=x(),[o,s]=(0,A.useState)(null),[c,l]=(0,A.useState)(!1);if(!n){let e;return t[0]!==i||t[1]!==r?(e=(0,j.jsx)(L,{titel:`Update-Zeitfenster`,children:(0,j.jsx)(B,{laedt:r,fehler:i})}),t[0]=i,t[1]=r,t[2]=e):e=t[2],e}let u=n.update_fenster,d,f,p,m,h,g,_,v,y,b,S,C,w,D,O,P,R;if(t[3]!==n.schaltbar||t[4]!==o||t[5]!==u.naechster_lauf||t[6]!==u.neustart_fenster||t[7]!==u.tag||t[8]!==u.tag_name||t[9]!==u.timer_aktiv||t[10]!==u.uhrzeit||t[11]!==u.wirksam){R=o??{tag:u.tag,uhrzeit:u.uhrzeit},f=R.tag!==u.tag||R.uhrzeit!==u.uhrzeit;let e=N.includes(R.uhrzeit)?N:[...N,R.uhrzeit].sort();d=L,h=`Update-Zeitfenster`;let r;t[29]===u.naechster_lauf?r=t[30]:(r=u.naechster_lauf?` (nächster Lauf ${F(u.naechster_lauf)})`:``,t[29]=u.naechster_lauf,t[30]=r),t[31]!==u.neustart_fenster||t[32]!==u.tag_name||t[33]!==u.uhrzeit||t[34]!==r?(g=(0,j.jsxs)(`p`,{className:`text-sm text-text-2`,children:[`Die Box aktualisiert sich jeden `,u.tag_name,` um `,u.uhrzeit,` Uhr`,r,`. Neu gestartet wird sie danach nur`,` `,u.neustart_fenster,`.`]}),t[31]=u.neustart_fenster,t[32]=u.tag_name,t[33]=u.uhrzeit,t[34]=r,t[35]=g):g=t[35],t[36]!==n.schaltbar||t[37]!==u.timer_aktiv?(_=n.schaltbar&&!u.timer_aktiv&&(0,j.jsx)(z,{children:`Der Update-Timer läuft gerade nicht; er übernimmt das Fenster beim nächsten Start.`}),t[36]=n.schaltbar,t[37]=u.timer_aktiv,t[38]=_):_=t[38],t[39]!==n.schaltbar||t[40]!==u.wirksam?(v=n.schaltbar&&!u.wirksam&&(0,j.jsx)(z,{children:`Der Timer läuft noch nach einem anderen Plan als eingestellt. Einmal speichern gleicht es an.`}),t[39]=n.schaltbar,t[40]=u.wirksam,t[41]=v):v=t[41],P=`flex flex-wrap items-end gap-2`;let i=R.tag,a;t[42]===Symbol.for(`react.memo_cache_sentinel`)?(a=M.map(J),t[42]=a):a=t[42],m=(0,j.jsxs)(`label`,{className:`flex flex-col gap-1 text-xs text-text-3`,children:[`Tag`,(0,j.jsx)(`select`,{className:`h-11 rounded-xl border border-white/12 bg-white/[0.04] px-3 text-[15px] text-foreground outline-none focus:border-cyan/60 focus:bg-white/[0.06]`,value:i,disabled:!n.schaltbar,"aria-label":`Wochentag`,onChange:e=>s({...R,tag:Number(e.target.value)}),children:a})]}),D=`flex flex-col gap-1 text-xs text-text-3`,O=`Uhrzeit`,p=`h-11 rounded-xl border border-white/12 bg-white/[0.04] px-3 text-[15px] text-foreground outline-none focus:border-cyan/60 focus:bg-white/[0.06]`,y=R.uhrzeit,b=!n.schaltbar,S=`Uhrzeit`,C=e=>s({...R,uhrzeit:e.target.value}),w=e.map(q),t[3]=n.schaltbar,t[4]=o,t[5]=u.naechster_lauf,t[6]=u.neustart_fenster,t[7]=u.tag,t[8]=u.tag_name,t[9]=u.timer_aktiv,t[10]=u.uhrzeit,t[11]=u.wirksam,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]=y,t[21]=b,t[22]=S,t[23]=C,t[24]=w,t[25]=D,t[26]=O,t[27]=P,t[28]=R}else d=t[12],f=t[13],p=t[14],m=t[15],h=t[16],g=t[17],_=t[18],v=t[19],y=t[20],b=t[21],S=t[22],C=t[23],w=t[24],D=t[25],O=t[26],P=t[27],R=t[28];let V;t[43]!==p||t[44]!==y||t[45]!==b||t[46]!==S||t[47]!==C||t[48]!==w?(V=(0,j.jsx)(`select`,{className:p,value:y,disabled:b,"aria-label":S,onChange:C,children:w}),t[43]=p,t[44]=y,t[45]=b,t[46]=S,t[47]=C,t[48]=w,t[49]=V):V=t[49];let H;t[50]!==V||t[51]!==D||t[52]!==O?(H=(0,j.jsxs)(`label`,{className:D,children:[O,V]}),t[50]=V,t[51]=D,t[52]=O,t[53]=H):H=t[53];let U=!n.schaltbar||a.isPending||!f&&u.wirksam,W;t[54]===Symbol.for(`react.memo_cache_sentinel`)?(W=()=>l(!0),t[54]=W):W=t[54];let G=a.isPending?`Speichert …`:`Speichern`,K;t[55]!==U||t[56]!==G?(K=(0,j.jsx)(T,{disabled:U,onClick:W,children:G}),t[55]=U,t[56]=G,t[57]=K):K=t[57];let Y;t[58]!==m||t[59]!==H||t[60]!==K||t[61]!==P?(Y=(0,j.jsxs)(`div`,{className:P,children:[m,H,K]}),t[58]=m,t[59]=H,t[60]=K,t[61]=P,t[62]=Y):Y=t[62];let X=n.schaltbar?``:` Einstellen lässt es sich nur auf der Box.`,Z;t[63]===X?Z=t[64]:(Z=(0,j.jsxs)(`p`,{className:`text-xs text-text-3`,children:[`Am besten nachts nach der Sicherung (03:30) und vor der Morgenmeldung (07:00).`,X]}),t[63]=X,t[64]=Z);let ee;t[65]!==R.tag||t[66]!==R.uhrzeit?(ee=I(R.tag,R.uhrzeit),t[65]=R.tag,t[66]=R.uhrzeit,t[67]=ee):ee=t[67];let te=`Der Update-Lauf startet ab jetzt jeden ${M[R.tag-1]} um ${R.uhrzeit} Uhr. Neu gestartet wird die Box nur ${ee}. Ein Termin, der dadurch schon vorbei ist, wird nicht nachgeholt: Der erste Lauf ist der nächste reguläre.`,ne;t[68]===Symbol.for(`react.memo_cache_sentinel`)?(ne=()=>l(!1),t[68]=ne):ne=t[68];let Q;t[69]!==c||t[70]!==a||t[71]!==R?(Q=()=>{c&&(a.mutate(R,{onSuccess:()=>s(null)}),l(!1))},t[69]=c,t[70]=a,t[71]=R,t[72]=Q):Q=t[72];let $;t[73]!==c||t[74]!==a.isPending||t[75]!==te||t[76]!==Q?($=(0,j.jsx)(E,{offen:c,titel:`Update-Zeitfenster ändern?`,text:te,knopf:`Speichern`,gesperrt:a.isPending,onNein:ne,onJa:Q}),t[73]=c,t[74]=a.isPending,t[75]=te,t[76]=Q,t[77]=$):$=t[77];let re;return t[78]!==d||t[79]!==h||t[80]!==g||t[81]!==_||t[82]!==v||t[83]!==Y||t[84]!==Z||t[85]!==$?(re=(0,j.jsxs)(d,{titel:h,children:[g,_,v,Y,Z,$]}),t[78]=d,t[79]=h,t[80]=g,t[81]=_,t[82]=v,t[83]=Y,t[84]=Z,t[85]=$,t[86]=re):re=t[86],re}function q(e){return(0,j.jsx)(`option`,{value:e,children:e},e)}function J(e,t){return(0,j.jsx)(`option`,{value:t+1,children:e},e)}function Y(e){let t=(0,k.c)(37),{e:n,laedt:r,fehler:i}=e,a=l(),[o,s]=(0,A.useState)(null);if(!n){let e;return t[0]!==i||t[1]!==r?(e=(0,j.jsx)(L,{titel:`Modell-Radar`,children:(0,j.jsx)(B,{laedt:r,fehler:i})}),t[0]=i,t[1]=r,t[2]=e):e=t[2],e}let c=n.radar,u=c.zustand===`an`||c.zustand===`unbekannt`&&c.an,d;t[3]===c.naechster_lauf?d=t[4]:(d=c.naechster_lauf?` (nächster Lauf ${F(c.naechster_lauf)})`:``,t[3]=c.naechster_lauf,t[4]=d);let f=`An. Es sucht jede Nacht ab 00:30 nach besseren Modellen${d}.`,p=c.an?`Eingeschaltet.`:`Ausgeschaltet.`,m;t[5]!==f||t[6]!==p?(m={an:f,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:p},t[5]=f,t[6]=p,t[7]=m):m=t[7];let h=m[c.zustand],g;t[8]===h?g=t[9]:(g=(0,j.jsx)(`p`,{className:`text-sm text-text-2`,children:h}),t[8]=h,t[9]=g);let _;t[10]!==n.schaltbar||t[11]!==c.an||t[12]!==c.wirksam?(_=n.schaltbar&&!c.wirksam&&(0,j.jsxs)(z,{children:[`Eingestellt ist „`,c.an?`an`:`aus`,`“, systemd zeigt etwas anderes. Noch einmal schalten gleicht es an.`]}),t[10]=n.schaltbar,t[11]=c.an,t[12]=c.wirksam,t[13]=_):_=t[13];let v=u?`outline`:`default`,y=!n.schaltbar||a.isPending,b;t[14]===u?b=t[15]:(b=()=>s(!u),t[14]=u,t[15]=b);let x=a.isPending?`Schaltet …`:u?`Ausschalten`:`Einschalten`,S;t[16]!==b||t[17]!==x||t[18]!==v||t[19]!==y?(S=(0,j.jsx)(T,{variant:v,size:`sm`,className:`self-start`,disabled:y,onClick:b,children:x}),t[16]=b,t[17]=x,t[18]=v,t[19]=y,t[20]=S):S=t[20];let C=o!==null,w=o?`Modell-Radar einschalten?`:`Modell-Radar ausschalten?`,D=o?`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.`,O=o?`Einschalten`:`Ausschalten`,M;t[21]===Symbol.for(`react.memo_cache_sentinel`)?(M=()=>s(null),t[21]=M):M=t[21];let N;t[22]!==o||t[23]!==a?(N=()=>{o!==null&&(a.mutate(o),s(null))},t[22]=o,t[23]=a,t[24]=N):N=t[24];let P;t[25]!==a.isPending||t[26]!==C||t[27]!==w||t[28]!==D||t[29]!==O||t[30]!==N?(P=(0,j.jsx)(E,{offen:C,titel:w,text:D,knopf:O,gesperrt:a.isPending,onNein:M,onJa:N}),t[25]=a.isPending,t[26]=C,t[27]=w,t[28]=D,t[29]=O,t[30]=N,t[31]=P):P=t[31];let I;return t[32]!==S||t[33]!==P||t[34]!==g||t[35]!==_?(I=(0,j.jsxs)(L,{titel:`Modell-Radar`,children:[g,_,S,P]}),t[32]=S,t[33]=P,t[34]=g,t[35]=_,t[36]=I):I=t[36],I}function X(e){let t=(0,k.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,j.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,j.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,j.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,j.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 ${F(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 ${F(r.commit_datum)}`:``,t[12]=r.commit_datum,t[13]=s);let c;t[14]!==a||t[15]!==s?(c=(0,j.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,j.jsxs)(j.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,j.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,j.jsx)(`span`,{className:`text-[15px]`,children:n}),t[20]=n,t[21]=s);let c;return t[22]!==o||t[23]!==s?(c=(0,j.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 Z(e,t){return!e||!t?null:e.startsWith(t)||t.startsWith(e)}function ee(e){let t=(0,k.c)(21),{offen:n}=e,r=c().data,i=!!r?.partner.eingerichtet,[a,o]=f(n,i),s=a.data?.stand?.commit,l=o.data?.stand?.commit,u;t[0]!==s||t[1]!==l?(u=Z(s,l),t[0]=s,t[1]=l,t[2]=u):u=t[2];let d=u,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,j.jsx)(X,{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,j.jsx)(X,{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,j.jsx)(z,{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,j.jsxs)(L,{titel:`Instanzen`,children:[g,_,v]}),t[17]=g,t[18]=_,t[19]=v,t[20]=y):y=t[20],y}function te(e){let t=(0,k.c)(52),{h:n}=e,r=b(),i=_(),[a,o]=(0,A.useState)(``),[s,c]=(0,A.useState)(!1),[l,u]=(0,A.useState)(null),d=n.arcane,f;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(f={hinterlegt:(0,j.jsx)(C,{art:`gruen`,children:`hinterlegt`}),umgebung:(0,j.jsx)(C,{art:`gruen`,children:`aus der Dienst-Einstellung`}),fehlt:(0,j.jsx)(C,{art:`bernstein`,children:`fehlt`})},t[0]=f):f=t[0];let p=f[d.schluessel],m;t[1]===d.url?m=t[2]:(m=d.url&&(0,j.jsxs)(`a`,{href:d.url,target:`_blank`,rel:`noopener`,className:`ml-auto inline-flex items-center gap-1 text-cyan hover:underline`,children:[`Arcane öffnen `,(0,j.jsx)(w,{className:`size-3.5`,"aria-hidden":!0})]}),t[1]=d.url,t[2]=m);let h;t[3]!==p||t[4]!==m?(h=(0,j.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 text-sm text-text-2`,children:[`API-Schlüssel `,p,m]}),t[3]=p,t[4]=m,t[5]=h):h=t[5];let g;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,j.jsx)(`p`,{className:`text-sm text-text-2`,children:`Mit Schlüssel sieht der Orchestrator, welche Docker-Images neuer sind. Anlegen in Arcane unter Einstellungen → API-Schlüssel; Lesen reicht, solange Docker-Updates nur als Probelauf laufen.`}),t[6]=g):g=t[6];let v;t[7]!==d.schluessel||t[8]!==r||t[9]!==a?(v=d.schluessel!==`umgebung`&&(0,j.jsxs)(`form`,{className:`flex gap-2`,onSubmit:e=>{e.preventDefault(),a.trim()&&r.mutate(a.trim(),{onSuccess:()=>o(``)})},children:[(0,j.jsx)(`label`,{htmlFor:`arcane-schluessel`,className:`sr-only`,children:`Arcane-API-Schlüssel`}),(0,j.jsxs)(`span`,{className:`relative min-w-0 flex-1`,children:[(0,j.jsx)(O,{className:`pointer-events-none absolute top-1/2 left-3 size-4 -translate-y-1/2 text-text-3`,"aria-hidden":!0}),(0,j.jsx)(`input`,{id:`arcane-schluessel`,type:`password`,autoComplete:`off`,value:a,onChange:e=>o(e.target.value),placeholder:d.schluessel===`hinterlegt`?`Neuen Schlüssel eintragen …`:`Schlüssel aus Arcane einfügen …`,className:`h-11 w-full rounded-xl border border-white/12 bg-white/[0.04] pr-3 pl-9 text-[15px] outline-none focus:border-lab/60 focus:bg-white/[0.06]`})]}),(0,j.jsx)(T,{type:`submit`,disabled:!a.trim()||r.isPending,children:r.isPending?`Prüft …`:`Prüfen und speichern`})]}),t[7]=d.schluessel,t[8]=r,t[9]=a,t[10]=v):v=t[10];let y;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,j.jsx)(`p`,{className:`text-xs text-text-3`,children:`Der Schlüssel wird vor dem Speichern an Arcane geprüft und nie wieder angezeigt. Er liegt nur im Homelab-Teil.`}),t[11]=y):y=t[11];let x;t[12]!==d.schluessel||t[13]!==s||t[14]!==r?(x=d.schluessel===`hinterlegt`&&(s?(0,j.jsxs)(`span`,{className:`flex flex-wrap gap-2`,children:[(0,j.jsx)(T,{variant:`gefahr`,size:`sm`,disabled:r.isPending,onClick:()=>{r.mutate(null),c(!1)},children:`Wirklich entfernen?`}),(0,j.jsx)(T,{variant:`ghost`,size:`sm`,onClick:()=>c(!1),children:`Nein`})]}):(0,j.jsx)(T,{variant:`ghost`,size:`sm`,className:`self-start`,onClick:()=>c(!0),children:`Schlüssel entfernen`})),t[12]=d.schluessel,t[13]=s,t[14]=r,t[15]=x):x=t[15];let S;t[16]!==h||t[17]!==v||t[18]!==x?(S=(0,j.jsxs)(L,{titel:`Arcane (Docker)`,children:[h,g,v,y,x]}),t[16]=h,t[17]=v,t[18]=x,t[19]=S):S=t[19];let D=d.echt?`Echt: „Jetzt updaten“ bei Arcane zieht neue Images und startet die Container neu.`:`Probelauf: Arcane zeigt nur, was es tun würde — kein Container wird angefasst.`,M=d.echt_quelle===`umgebung`?` Festgelegt in der Dienst-Einstellung (MC_ARCANE_ECHT).`:``,N;t[20]!==D||t[21]!==M?(N=(0,j.jsxs)(`p`,{className:`text-sm text-text-2`,children:[D,M]}),t[20]=D,t[21]=M,t[22]=N):N=t[22];let P=d.echt?`outline`:`default`,F=d.echt_quelle===`umgebung`||i.isPending||d.schluessel===`fehlt`,I;t[23]===d.echt?I=t[24]:(I=()=>u(!d.echt),t[23]=d.echt,t[24]=I);let R=i.isPending?`Schaltet …`:d.echt?`Zurück auf Probelauf`:`Echt schalten`,z;t[25]!==P||t[26]!==F||t[27]!==I||t[28]!==R?(z=(0,j.jsx)(T,{variant:P,size:`sm`,className:`self-start`,disabled:F,onClick:I,children:R}),t[25]=P,t[26]=F,t[27]=I,t[28]=R,t[29]=z):z=t[29];let B;t[30]===d.schluessel?B=t[31]:(B=d.schluessel===`fehlt`&&(0,j.jsx)(`p`,{className:`text-xs text-text-3`,children:`Erst den Schlüssel eintragen.`}),t[30]=d.schluessel,t[31]=B);let V=l!==null,H=l?`Docker-Updates echt ausführen?`:`Zurück auf Probelauf?`,U=l?`Ab jetzt zieht „Jetzt updaten“ bei Arcane neue Images und startet die betroffenen Container neu. Vorher wird ein Snapshot der VM angelegt, soweit möglich. Das lässt sich hier jederzeit zurückschalten.`:`Docker-Updates zeigen dann wieder nur, was Arcane tun würde.`,W=l?`Echt schalten`:`Probelauf`,G=!!l,K;t[32]===Symbol.for(`react.memo_cache_sentinel`)?(K=()=>u(null),t[32]=K):K=t[32];let q;t[33]!==i||t[34]!==l?(q=()=>{l!==null&&(i.mutate(l),u(null))},t[33]=i,t[34]=l,t[35]=q):q=t[35];let J;t[36]!==i.isPending||t[37]!==V||t[38]!==H||t[39]!==U||t[40]!==W||t[41]!==G||t[42]!==q?(J=(0,j.jsx)(E,{offen:V,titel:H,text:U,knopf:W,gefahr:G,gesperrt:i.isPending,onNein:K,onJa:q}),t[36]=i.isPending,t[37]=V,t[38]=H,t[39]=U,t[40]=W,t[41]=G,t[42]=q,t[43]=J):J=t[43];let Y;t[44]!==N||t[45]!==z||t[46]!==B||t[47]!==J?(Y=(0,j.jsxs)(L,{titel:`Docker-Updates`,children:[N,z,B,J]}),t[44]=N,t[45]=z,t[46]=B,t[47]=J,t[48]=Y):Y=t[48];let X;return t[49]!==Y||t[50]!==S?(X=(0,j.jsxs)(j.Fragment,{children:[S,Y]}),t[49]=Y,t[50]=S,t[51]=X):X=t[51],X}function ne(e){let t=(0,k.c)(44),{h:n}=e,r=g(),[i,o]=(0,A.useState)(``),[s,c]=(0,A.useState)(``),[l,u]=(0,A.useState)(!1),d=n.adguard;if(!d)return null;let f;t[0]!==d.benutzer||t[1]!==d.zugang?(f=d.zugang===`hinterlegt`?(0,j.jsxs)(C,{art:`gruen`,children:[`hinterlegt`,d.benutzer?` · ${d.benutzer}`:``]}):(0,j.jsx)(C,{art:`grau`,children:`keiner`}),t[0]=d.benutzer,t[1]=d.zugang,t[2]=f):f=t[2];let p;t[3]===d.url?p=t[4]:(p=d.url&&(0,j.jsxs)(`a`,{href:d.url,target:`_blank`,rel:`noopener`,className:`ml-auto inline-flex items-center gap-1 text-cyan hover:underline`,children:[`AdGuard öffnen `,(0,j.jsx)(w,{className:`size-3.5`,"aria-hidden":!0})]}),t[3]=d.url,t[4]=p);let m;t[5]!==f||t[6]!==p?(m=(0,j.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 text-sm text-text-2`,children:[`Zugang `,f,p]}),t[5]=f,t[6]=p,t[7]=m):m=t[7];let h;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,j.jsx)(`p`,{className:`text-sm text-text-2`,children:`Mit einem Zugang zeigt die Kachel von AdGuard, wie viele Anfragen es blockt. Er wird nur zum Lesen der Statistik benutzt — am besten ein eigener Benutzer dafür.`}),t[8]=h):h=t[8];let _;t[9]!==i||t[10]!==s||t[11]!==r?(_=e=>{e.preventDefault(),i.trim()&&s&&r.mutate({benutzer:i.trim(),passwort:s},{onSuccess:()=>{c(``),o(``)}})},t[9]=i,t[10]=s,t[11]=r,t[12]=_):_=t[12];let v;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(v=(0,j.jsx)(`label`,{htmlFor:`adguard-benutzer`,className:`sr-only`,children:`AdGuard-Benutzer`}),t[13]=v):v=t[13];let y;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(y=e=>o(e.target.value),t[14]=y):y=t[14];let b;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(b=a(`h-11 w-full rounded-xl border border-white/12 bg-white/[0.04] px-3 text-[15px] outline-none focus:border-lab/60 focus:bg-white/[0.06]`,`min-w-0 flex-1 basis-40`),t[15]=b):b=t[15];let x;t[16]===i?x=t[17]:(x=(0,j.jsx)(`input`,{id:`adguard-benutzer`,autoComplete:`off`,value:i,onChange:y,placeholder:`Benutzer`,className:b}),t[16]=i,t[17]=x);let S;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,j.jsx)(`label`,{htmlFor:`adguard-passwort`,className:`sr-only`,children:`AdGuard-Passwort`}),t[18]=S):S=t[18];let E;t[19]===Symbol.for(`react.memo_cache_sentinel`)?(E=e=>c(e.target.value),t[19]=E):E=t[19];let D;t[20]===Symbol.for(`react.memo_cache_sentinel`)?(D=a(`h-11 w-full rounded-xl border border-white/12 bg-white/[0.04] px-3 text-[15px] outline-none focus:border-lab/60 focus:bg-white/[0.06]`,`min-w-0 flex-1 basis-40`),t[20]=D):D=t[20];let O;t[21]===s?O=t[22]:(O=(0,j.jsx)(`input`,{id:`adguard-passwort`,type:`password`,autoComplete:`new-password`,value:s,onChange:E,placeholder:`Passwort`,className:D}),t[21]=s,t[22]=O);let M;t[23]!==i||t[24]!==s||t[25]!==r.isPending?(M=!i.trim()||!s||r.isPending,t[23]=i,t[24]=s,t[25]=r.isPending,t[26]=M):M=t[26];let N=r.isPending?`Prüft …`:`Prüfen und speichern`,P;t[27]!==M||t[28]!==N?(P=(0,j.jsx)(T,{type:`submit`,disabled:M,children:N}),t[27]=M,t[28]=N,t[29]=P):P=t[29];let F;t[30]!==O||t[31]!==P||t[32]!==_||t[33]!==x?(F=(0,j.jsxs)(`form`,{className:`flex flex-wrap gap-2`,onSubmit:_,children:[v,x,S,O,P]}),t[30]=O,t[31]=P,t[32]=_,t[33]=x,t[34]=F):F=t[34];let I;t[35]===Symbol.for(`react.memo_cache_sentinel`)?(I=(0,j.jsx)(`p`,{className:`text-xs text-text-3`,children:`Vor dem Speichern fragt der Homelab-Teil AdGuard einmal damit. Das Passwort wird nie wieder angezeigt und liegt nur im Homelab-Teil.`}),t[35]=I):I=t[35];let R;t[36]!==d.zugang||t[37]!==l||t[38]!==r?(R=d.zugang===`hinterlegt`&&(l?(0,j.jsxs)(`span`,{className:`flex flex-wrap gap-2`,children:[(0,j.jsx)(T,{variant:`gefahr`,size:`sm`,disabled:r.isPending,onClick:()=>{r.mutate(null),u(!1)},children:`Wirklich entfernen?`}),(0,j.jsx)(T,{variant:`ghost`,size:`sm`,onClick:()=>u(!1),children:`Nein`})]}):(0,j.jsx)(T,{variant:`ghost`,size:`sm`,className:`self-start`,onClick:()=>u(!0),children:`Zugang entfernen`})),t[36]=d.zugang,t[37]=l,t[38]=r,t[39]=R):R=t[39];let z;return t[40]!==F||t[41]!==R||t[42]!==m?(z=(0,j.jsxs)(L,{titel:`AdGuard Home`,children:[m,h,F,I,R]}),t[40]=F,t[41]=R,t[42]=m,t[43]=z):z=t[43],z}function Q(e){let t=(0,k.c)(21),{h:n}=e,r=n.ausfuehrer,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,j.jsx)(`dt`,{className:`text-text-3`,children:`Ausführer`}),t[0]=i):i=t[0];let a=r.verbunden?`text-gruen-text`:`text-rot-text`,o=r.verbunden?`verbunden`:`meldet sich nicht`,s;t[1]===r.zuletzt?s=t[2]:(s=r.zuletzt?` · zuletzt ${v(new Date(r.zuletzt*1e3).toISOString()).toLowerCase()}`:``,t[1]=r.zuletzt,t[2]=s);let c;t[3]!==a||t[4]!==o||t[5]!==s?(c=(0,j.jsxs)(`dd`,{className:a,children:[o,s]}),t[3]=a,t[4]=o,t[5]=s,t[6]=c):c=t[6];let l;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,j.jsx)(`dt`,{className:`text-text-3`,children:`Modus`}),t[7]=l):l=t[7];let u=r.nur_lesen?`nur lesen — Updates sind gesperrt`:`voll: Snapshots, Sicherungen und Updates`,d;t[8]===u?d=t[9]:(d=(0,j.jsx)(`dd`,{className:`text-text-2`,children:u}),t[8]=u,t[9]=d);let f;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,j.jsx)(`dt`,{className:`text-text-3`,children:`Sicherungen`}),t[10]=f):f=t[10];let p=r.sicherung_speicher?`auf „${r.sicherung_speicher}“ (wo kein Snapshot geht)`:`kein Speicher gefunden`,m;t[11]===p?m=t[12]:(m=(0,j.jsx)(`dd`,{className:`text-text-2`,children:p}),t[11]=p,t[12]=m);let h;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,j.jsx)(`dt`,{className:`text-text-3`,children:`Wartezeit`}),t[13]=h):h=t[13];let g=n.karenz_h>0?`${n.karenz_h} Stunden nach einer Änderung am Update-Skript einer App`:`aus`,_;t[14]===g?_=t[15]:(_=(0,j.jsx)(`dd`,{className:`text-text-2`,children:g}),t[14]=g,t[15]=_);let y;return t[16]!==m||t[17]!==_||t[18]!==c||t[19]!==d?(y=(0,j.jsx)(L,{titel:`Ausführer und Updates`,children:(0,j.jsxs)(`dl`,{className:`grid grid-cols-[auto_minmax(0,1fr)] gap-x-4 gap-y-2 text-sm`,children:[i,c,l,d,f,m,h,_]})}),t[16]=m,t[17]=_,t[18]=c,t[19]=d,t[20]=y):y=t[20],y}function $(){let e=(0,k.c)(8),t=c().data,n=d().data,r=t?.rolle===`homelab`||!!(n?.eingerichtet&&n.erreichbar),i=S(r),a;if(!r){let t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,j.jsx)(`p`,{className:`text-sm text-text-2`,children:`Der Homelab-Teil antwortet gerade nicht.`}),e[0]=t):t=e[0],a=t}else if(i.data){let t;e[4]===i.data?t=e[5]:(t=(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(te,{h:i.data}),(0,j.jsx)(ne,{h:i.data}),(0,j.jsx)(Q,{h:i.data})]}),e[4]=i.data,e[5]=t),a=t}else{let t=i.error?.message,n;e[1]!==i.isPending||e[2]!==t?(n=(0,j.jsx)(B,{laedt:i.isPending,fehler:t}),e[1]=i.isPending,e[2]=t,e[3]=n):n=e[3],a=n}let o;return e[6]===a?o=e[7]:(o=(0,j.jsx)(R,{titel:`Homelab`,farbe:`homelab`,text:`Arcane und Docker, AdGuard, der Ausführer auf dem Proxmox-Host, Rückwege.`,children:a}),e[6]=a,e[7]=o),o}function re(){let e=(0,k.c)(18),t=y(!0),n=t.error?.message,r;e[0]!==t.data||e[1]!==t.isPending||e[2]!==n?(r={e:t.data,laedt:t.isPending,fehler:n},e[0]=t.data,e[1]=t.isPending,e[2]=n,e[3]=r):r=e[3];let i=r,a,o;e[4]===i?(a=e[5],o=e[6]):(a=(0,j.jsx)(K,{...i}),o=(0,j.jsx)(Y,{...i}),e[4]=i,e[5]=a,e[6]=o);let s;e[7]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,j.jsx)(V,{offen:!0}),e[7]=s):s=e[7];let c;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,j.jsxs)(L,{titel:`Hermes`,children:[(0,j.jsxs)(`a`,{href:`/hermes-ui/`,target:`_blank`,rel:`noopener`,className:`flex h-11 items-center gap-2 self-start rounded-xl border border-white/12 bg-white/[0.04] px-4 text-[15px] font-semibold hover:border-white/20 hover:bg-white/[0.08]`,children:[(0,j.jsx)(w,{className:`size-4`,"aria-hidden":!0}),` Hermes-Dashboard öffnen`]}),(0,j.jsx)(`p`,{className:`text-xs text-text-3`,children:`Chat, Sitzungen und Cron-Jobs verwaltet Hermes selbst. Es fragt nach seiner eigenen Anmeldung.`})]}),e[8]=c):c=e[8];let l;e[9]!==a||e[10]!==o?(l=(0,j.jsxs)(R,{titel:`KI-Box`,farbe:`box`,text:`Wann sie sich aktualisiert, das Modell-Radar und Zugänge.`,children:[a,o,s,c]}),e[9]=a,e[10]=o,e[11]=l):l=e[11];let u;e[12]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,j.jsx)($,{}),e[12]=u):u=e[12];let d;e[13]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,j.jsx)(R,{titel:`Meldungen`,text:`Telegram, Morgenmeldung und was sofort kommt.`,children:(0,j.jsx)(U,{})}),e[13]=d):d=e[13];let f;e[14]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,j.jsx)(R,{titel:`Software-Stand`,text:`Welcher Stand auf beiden Instanzen läuft.`,children:(0,j.jsx)(ee,{offen:!0})}),e[14]=f):f=e[14];let p;e[15]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,j.jsxs)(`p`,{className:`text-xs text-text-3 xl:col-span-2`,children:[`Logos der Dienste: `,(0,j.jsx)(`a`,{href:`https://selfh.st/icons`,target:`_blank`,rel:`noopener`,className:`underline-offset-4 hover:underline`,children:`selfh.st/icons`}),`, Lizenz CC BY 4.0. Die Marken gehören ihren Inhabern und dienen hier nur dem Wiedererkennen.`]}),e[15]=p):p=e[15];let m;return e[16]===l?m=e[17]:(m=(0,j.jsxs)(`div`,{className:`grid gap-5 md:gap-6 xl:grid-cols-2`,children:[l,u,d,f,p]}),e[16]=l,e[17]=m),m}export{re as EinstellungenSeite}; \ No newline at end of file diff --git a/frontend/dist/assets/Einstellungen-CVJCMM4J.js b/frontend/dist/assets/Einstellungen-CVJCMM4J.js new file mode 100644 index 0000000..90ea033 --- /dev/null +++ b/frontend/dist/assets/Einstellungen-CVJCMM4J.js @@ -0,0 +1 @@ +import{a as e,c as t,i as n,n as r,r as i,t as a}from"./dist-aE7UmubC.js";import{B as o,Bt as s,D as c,Et as l,M as u,N as d,Rt as f,W as p,dt as m,ft as h,g,ht as _,lt as v,n as y,o as b,ot as x,p as S,rn as C,rt as w,s as T,tt as E,ut as D,v as O,zt as k}from"./abfragen-pD_qBEtc.js";import{t as A}from"./button-BHVKhtQ6.js";import{V as j,d as M,dt as N,f as P,m as F}from"./index-Bumw6krN.js";var I={name:`key-round`,size:24,node:[[`path`,{d:`M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z`,key:`1s6t7t`}],[`circle`,{cx:`16.5`,cy:`7.5`,r:`.5`,fill:`currentColor`,key:`w0ekpg`}]]};I.node;var L=r(I),R=i(),z=t(e(),1),B=n(),V=[`Montag`,`Dienstag`,`Mittwoch`,`Donnerstag`,`Freitag`,`Samstag`,`Sonntag`],H={melden:`Nur melden`,sicherheit:`Sicherheitsupdates automatisch`,alles:`Alles automatisch im Fenster`},U=`h-10 rounded-xl border border-white/12 bg-white/[0.04] px-3 text-[15px] text-foreground outline-none focus:border-lab/60`;function W(e){let t=(0,R.c)(11),{wert:n,onWahl:r,label:i,mitStandard:a}=e,o=n??``,s;t[0]===r?s=t[1]:(s=e=>r(e.target.value||null),t[0]=r,t[1]=s);let c;t[2]===a?c=t[3]:(c=a&&(0,B.jsxs)(`option`,{value:``,children:[`Wie Standard (`,a,`)`]}),t[2]=a,t[3]=c);let l;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(l=Object.keys(H),t[4]=l):l=t[4];let u;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(u=l.map(G),t[5]=u):u=t[5];let d;return t[6]!==i||t[7]!==o||t[8]!==s||t[9]!==c?(d=(0,B.jsxs)(`select`,{"aria-label":i,value:o,onChange:s,className:`${U} min-w-0`,children:[c,u]}),t[6]=i,t[7]=o,t[8]=s,t[9]=c,t[10]=d):d=t[10],d}function G(e){return(0,B.jsx)(`option`,{value:e,children:H[e]},e)}function K(e){let t=(0,R.c)(61),{aktiv:n}=e,r=v(n),i=g(n).data?.ziele??[],a=D(),[o,s]=(0,z.useState)(null);if(!r.data){let e=r.isPending?`Wird gelesen …`:`Das Wartungsfenster lässt sich gerade nicht lesen.`,n;return t[0]===e?n=t[1]:(n=(0,B.jsx)(`p`,{className:`text-sm text-text-3`,children:e}),t[0]=e,t[1]=n),n}let c=o??r.data.fenster,l;t[2]!==o||t[3]!==r.data.fenster?(l=!!o&&JSON.stringify(o)!==JSON.stringify(r.data.fenster),t[2]=o,t[3]=r.data.fenster,t[4]=l):l=t[4];let u=l,d=r.data.stand,f;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,B.jsx)(`p`,{className:`m-0 text-sm text-text-2`,children:`Im Fenster spielt der Orchestrator ein, was die Regel des Geräts erlaubt — mit Snapshot vorher und Rückweg bei Rot. Einzelne Erfolge kommen gesammelt als eine Meldung, Fehler sofort. Den Proxmox-Host startet er nie von selbst neu.`}),t[5]=f):f=t[5];let p=c.tag,m;t[6]===c?m=t[7]:(m=e=>s({...c,tag:Number(e.target.value)}),t[6]=c,t[7]=m);let h;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(h=V.map(q),t[8]=h):h=t[8];let y;t[9]!==c.tag||t[10]!==m?(y=(0,B.jsxs)(`label`,{className:`flex flex-col gap-1 text-sm text-text-2`,children:[`Tag`,(0,B.jsx)(`select`,{className:U,value:p,onChange:m,children:h})]}),t[9]=c.tag,t[10]=m,t[11]=y):y=t[11];let b;t[12]===c?b=t[13]:(b=e=>s({...c,von:e.target.value}),t[12]=c,t[13]=b);let x;t[14]!==c.von||t[15]!==b?(x=(0,B.jsxs)(`label`,{className:`flex flex-col gap-1 text-sm text-text-2`,children:[`von`,(0,B.jsx)(`input`,{type:`time`,className:U,value:c.von,onChange:b})]}),t[14]=c.von,t[15]=b,t[16]=x):x=t[16];let S;t[17]===c?S=t[18]:(S=e=>s({...c,bis:e.target.value}),t[17]=c,t[18]=S);let C;t[19]!==c.bis||t[20]!==S?(C=(0,B.jsxs)(`label`,{className:`flex flex-col gap-1 text-sm text-text-2`,children:[`bis`,(0,B.jsx)(`input`,{type:`time`,className:U,value:c.bis,onChange:S})]}),t[19]=c.bis,t[20]=S,t[21]=C):C=t[21];let w=!u||a.isPending,T;t[22]!==c||t[23]!==a?(T=()=>a.mutate({fenster:c},{onSuccess:()=>s(null)}),t[22]=c,t[23]=a,t[24]=T):T=t[24];let E;t[25]!==w||t[26]!==T?(E=(0,B.jsx)(`button`,{type:`button`,disabled:w,onClick:T,className:`h-10 rounded-xl bg-lab/20 px-4 text-sm font-medium text-lab-text ring-1 ring-lab/40 ring-inset disabled:opacity-40`,children:`Fenster speichern`}),t[25]=w,t[26]=T,t[27]=E):E=t[27];let O;t[28]!==C||t[29]!==E||t[30]!==y||t[31]!==x?(O=(0,B.jsxs)(`div`,{className:`flex flex-wrap items-end gap-2`,children:[y,x,C,E]}),t[28]=C,t[29]=E,t[30]=y,t[31]=x,t[32]=O):O=t[32];let k;t[33]===r.data.naechstes?k=t[34]:(k=_(new Date(r.data.naechstes*1e3).toISOString()).toLowerCase(),t[33]=r.data.naechstes,t[34]=k);let A;t[35]===d?A=t[36]:(A=d?` · zuletzt ${d.datum.split(`-`).reverse().join(`.`)}: ${d.status===`laeuft`?`läuft gerade`:`${d.schritte.length} Schritte`}`:``,t[35]=d,t[36]=A);let j;t[37]!==k||t[38]!==A?(j=(0,B.jsxs)(`p`,{className:`m-0 text-xs text-text-3`,children:[`Nächstes Fenster: `,k,A]}),t[37]=k,t[38]=A,t[39]=j):j=t[39];let M;t[40]===a?M=t[41]:(M=e=>e&&a.mutate({standard:e}),t[40]=a,t[41]=M);let N;t[42]!==M||t[43]!==r.data.standard?(N=(0,B.jsxs)(`label`,{className:`flex flex-col gap-1 text-sm text-text-2`,children:[`Standard für alle Geräte (auch neue)`,(0,B.jsx)(W,{label:`Standard-Regel`,wert:r.data.standard,onWahl:M})]}),t[42]=M,t[43]=r.data.standard,t[44]=N):N=t[44];let P;if(t[45]!==a||t[46]!==r.data.regeln||t[47]!==r.data.standard||t[48]!==i){let e;t[50]!==a||t[51]!==r.data.regeln||t[52]!==r.data.standard?(e=e=>(0,B.jsxs)(`div`,{role:`row`,className:`flex flex-wrap items-center justify-between gap-2 border-t border-white/[0.06] py-2`,children:[(0,B.jsx)(`span`,{role:`rowheader`,className:`text-[15px]`,children:e.name}),(0,B.jsx)(`span`,{role:`cell`,children:(0,B.jsx)(W,{label:`Regel für ${e.name}`,wert:r.data.regeln[e.id]??null,mitStandard:H[r.data.standard],onWahl:t=>a.mutate({regeln:{[e.id]:t}})})})]},e.id),t[50]=a,t[51]=r.data.regeln,t[52]=r.data.standard,t[53]=e):e=t[53],P=i.map(e),t[45]=a,t[46]=r.data.regeln,t[47]=r.data.standard,t[48]=i,t[49]=P}else P=t[49];let F;t[54]===P?F=t[55]:(F=(0,B.jsx)(`div`,{role:`table`,"aria-label":`Regel je Gerät`,className:`flex flex-col`,children:P}),t[54]=P,t[55]=F);let I;return t[56]!==O||t[57]!==j||t[58]!==N||t[59]!==F?(I=(0,B.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[f,O,j,N,F]}),t[56]=O,t[57]=j,t[58]=N,t[59]=F,t[60]=I):I=t[60],I}function q(e,t){return(0,B.jsx)(`option`,{value:t,children:e},e)}var J=[{id:`lesen`,kurz:`Nur lesen`},{id:`fragen`,kurz:`Erst fragen`},{id:`selbst`,kurz:`Selbst handeln`}],Y=`h-10 rounded-xl border border-white/12 bg-white/[0.04] px-3 text-[15px] text-foreground outline-none focus:border-lab/60`;function ee(){let e=(0,R.c)(22),t=u(),n=d(),[r,i]=(0,z.useState)(null);if(!t.data){let n=t.isPending?`Wird gelesen …`:`Lucys Freiheiten lassen sich gerade nicht lesen.`,r;return e[0]===n?r=e[1]:(r=(0,B.jsx)(`p`,{className:`text-sm text-text-3`,children:n}),e[0]=n,e[1]=r),r}let o=te,s;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,B.jsx)(`p`,{className:`m-0 text-sm text-text-2`,children:`Bittest du Lucy ausdrücklich um etwas, tut sie es. Hier stellst du ein, was sie aus eigenem Antrieb darf: nur erklären, dich vorher fragen (in Telegram antwortest du mit „ja“ und der Nummer) oder selbst handeln — dann bekommst du danach eine Meldung.`}),e[2]=s):s=e[2];let c;if(e[3]!==t.data.arten||e[4]!==n){let r;e[6]===n?r=e[7]:(r=e=>(0,B.jsxs)(`div`,{role:`row`,className:`flex flex-col gap-2 border-t border-white/[0.06] py-3 first:border-t-0 sm:flex-row sm:items-center sm:justify-between`,children:[(0,B.jsxs)(`span`,{role:`rowheader`,className:`flex min-w-0 flex-col gap-0.5`,children:[(0,B.jsx)(`span`,{className:`text-[15px]`,children:e.name}),(0,B.jsx)(`span`,{className:`text-xs text-text-3`,children:e.text})]}),(0,B.jsx)(`span`,{role:`cell`,className:`shrink-0`,children:(0,B.jsx)(`select`,{"aria-label":`Freiheit: ${e.name}`,value:e.stufe,disabled:n.isPending,className:a(Y,`min-w-44`,e.stufe!==e.standard&&`border-lab/50`),onChange:t=>{let r=t.target.value;o(r)>o(e.standard)&&r===`selbst`?i({id:e.id,name:e.name,stufe:r}):n.mutate({[e.id]:r})},children:J.map(t=>(0,B.jsxs)(`option`,{value:t.id,children:[t.kurz,t.id===e.standard?` (Start)`:``]},t.id))})})]},e.id),e[6]=n,e[7]=r),c=t.data.arten.map(r),e[3]=t.data.arten,e[4]=n,e[5]=c}else c=e[5];let l;e[8]===c?l=e[9]:(l=(0,B.jsx)(`div`,{role:`table`,"aria-label":`Lucys Freiheiten`,className:`flex flex-col`,children:c}),e[8]=c,e[9]=l);let f=!!r,p=r?`„${r.name}“: Lucy selbst handeln lassen?`:``,m;e[10]===Symbol.for(`react.memo_cache_sentinel`)?(m=()=>i(null),e[10]=m):m=e[10];let h;e[11]!==r||e[12]!==n?(h=()=>{r&&n.mutate({[r.id]:r.stufe}),i(null)},e[11]=r,e[12]=n,e[13]=h):h=e[13];let g;e[14]!==n.isPending||e[15]!==f||e[16]!==p||e[17]!==h?(g=(0,B.jsx)(F,{offen:f,titel:p,text:`Dann tut sie es aus eigenem Antrieb, ohne dich vorher zu fragen, und meldet es erst danach. Zurückstellen kannst du es hier jederzeit.`,knopf:`Selbst handeln lassen`,gesperrt:n.isPending,onNein:m,onJa:h}),e[14]=n.isPending,e[15]=f,e[16]=p,e[17]=h,e[18]=g):g=e[18];let _;return e[19]!==l||e[20]!==g?(_=(0,B.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[s,l,g]}),e[19]=l,e[20]=g,e[21]=_):_=e[21],_}function te(e){return J.findIndex(t=>t.id===e)}function ne(){let e=(0,R.c)(27),t=m(),n=h(),[r,i]=(0,z.useState)(!1),a=t.data?.zuletzt,o;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,B.jsx)(`p`,{className:`m-0 text-sm text-text-2`,children:`Sonntags um 07:30 schickt Lucy eine Nachricht statt vieler: was eingespielt wurde, was offen ist, Platten, Sicherungen, Zertifikate — und offene App-Updates zum Beantworten mit „ja“.`}),e[0]=o):o=e[0];let s;e[1]===n?s=e[2]:(s=()=>n.mutate(),e[1]=n,e[2]=s);let c=n.isPending?`Lucy schreibt …`:`Jetzt schicken`,l;e[3]!==n.isPending||e[4]!==s||e[5]!==c?(l=(0,B.jsx)(A,{size:`sm`,variant:`outline`,disabled:n.isPending,onClick:s,children:c}),e[3]=n.isPending,e[4]=s,e[5]=c,e[6]=l):l=e[6];let u;e[7]===t.data?u=e[8]:(u=t.data?`Nächster: ${_(new Date(t.data.naechster*1e3).toISOString()).toLowerCase()}`:``,e[7]=t.data,e[8]=u);let d;e[9]===a?d=e[10]:(d=a?` · zuletzt ${_(new Date(a.zeit*1e3).toISOString()).toLowerCase()}`:``,e[9]=a,e[10]=d);let f;e[11]!==u||e[12]!==d?(f=(0,B.jsxs)(`span`,{className:`text-xs text-text-3`,children:[u,d]}),e[11]=u,e[12]=d,e[13]=f):f=e[13];let p;e[14]!==r||e[15]!==a?(p=a&&(0,B.jsx)(`button`,{type:`button`,className:`text-xs text-cyan hover:underline`,onClick:()=>i(!r),children:r?`Letzten zuklappen`:`Letzten lesen`}),e[14]=r,e[15]=a,e[16]=p):p=e[16];let g;e[17]!==l||e[18]!==f||e[19]!==p?(g=(0,B.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[l,f,p]}),e[17]=l,e[18]=f,e[19]=p,e[20]=g):g=e[20];let v;e[21]!==r||e[22]!==a?(v=r&&a&&(0,B.jsx)(`pre`,{className:`flaeche-innen m-0 max-h-96 overflow-y-auto rounded-2xl p-4 font-sans text-sm whitespace-pre-wrap text-text-2`,children:a.text}),e[21]=r,e[22]=a,e[23]=v):v=e[23];let y;return e[24]!==g||e[25]!==v?(y=(0,B.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[o,g,v]}),e[24]=g,e[25]=v,e[26]=y):y=e[26],y}var X=[`Montag`,`Dienstag`,`Mittwoch`,`Donnerstag`,`Freitag`,`Samstag`,`Sonntag`],re=Array.from({length:48},(e,t)=>`${String(Math.floor(t/2)).padStart(2,`0`)}:${t%2?`30`:`00`}`),ie=new Intl.DateTimeFormat(`de-DE`,{day:`2-digit`,month:`2-digit`,year:`numeric`,hour:`2-digit`,minute:`2-digit`,timeZone:`Europe/Berlin`});function Z(e){let t=e?new Date(e):null;return t&&!Number.isNaN(t.getTime())?ie.format(t):`–`}function ae(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?`${X[e-1]} ${o}–${s}`:`${X[e-1]} ${o} – ${X[i-1]} ${s}`}function Q(e){let t=(0,R.c)(6),{titel:n,children:r}=e,i;t[0]===n?i=t[1]:(i=(0,B.jsx)(`h3`,{className:`etikett text-[11.5px] tracking-[0.16em] text-text-2`,children:n}),t[0]=n,t[1]=i);let a;return t[2]!==r||t[3]!==i||t[4]!==n?(a=(0,B.jsxs)(`section`,{"aria-label":n,className:`flex flex-col gap-3 border-t border-white/[0.06] pt-4 first:border-t-0 first:pt-0`,children:[i,r]}),t[2]=r,t[3]=i,t[4]=n,t[5]=a):a=t[5],a}function $(e){let t=(0,R.c)(23),{titel:n,text:r,farbe:i,id:o,children:s}=e,c=i===`box`?`var(--box)`:i===`homelab`?`var(--lab)`:null,l=i===`box`?`text-box-text`:i===`homelab`?`text-lab-text`:`text-foreground`,u=i===`box`?`[--rand:color-mix(in_srgb,var(--box)_28%,transparent)]`:i===`homelab`?`[--rand:color-mix(in_srgb,var(--lab)_28%,transparent)]`:``,d;t[0]===u?d=t[1]:(d=a(`flaeche relative flex min-w-0 flex-col gap-4 overflow-hidden rounded-3xl p-5 sm:p-6`,u),t[0]=u,t[1]=d);let f;t[2]===c?f=t[3]:(f=c&&(0,B.jsx)(`div`,{"aria-hidden":!0,className:`pointer-events-none absolute -top-40 -left-32 size-[400px] rounded-full`,style:{background:`radial-gradient(closest-side, color-mix(in srgb, ${c} 16%, transparent), transparent)`}}),t[2]=c,t[3]=f);let p;t[4]===l?p=t[5]:(p=a(`text-[19px] leading-tight font-semibold`,l),t[4]=l,t[5]=p);let m;t[6]!==p||t[7]!==n?(m=(0,B.jsx)(`h2`,{className:p,children:n}),t[6]=p,t[7]=n,t[8]=m):m=t[8];let h;t[9]===r?h=t[10]:(h=(0,B.jsx)(`p`,{className:`text-sm text-text-3`,children:r}),t[9]=r,t[10]=h);let g;t[11]!==m||t[12]!==h?(g=(0,B.jsxs)(`div`,{className:`relative flex flex-col gap-1`,children:[m,h]}),t[11]=m,t[12]=h,t[13]=g):g=t[13];let _;t[14]===s?_=t[15]:(_=(0,B.jsx)(`div`,{className:`relative flex min-w-0 flex-col gap-4`,children:s}),t[14]=s,t[15]=_);let v;return t[16]!==o||t[17]!==d||t[18]!==f||t[19]!==g||t[20]!==_||t[21]!==n?(v=(0,B.jsxs)(`section`,{id:o,"aria-label":n,className:d,children:[f,g,_]}),t[16]=o,t[17]=d,t[18]=f,t[19]=g,t[20]=_,t[21]=n,t[22]=v):v=t[22],v}function oe(e){let t=(0,R.c)(2),{children:n}=e,r;return t[0]===n?r=t[1]:(r=(0,B.jsx)(`p`,{className:`text-sm text-bernstein`,children:n}),t[0]=n,t[1]=r),r}function se(e){let t=(0,R.c)(3),{laedt:n,fehler:r}=e;if(n){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,B.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,B.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 ce({offen:e}){let t=C(),n=s({queryKey:[`geheimnisse`],queryFn:()=>f(`/api/maintenance/geheimnisse`),enabled:e}),[r,i]=(0,z.useState)(``),[a,o]=(0,z.useState)(!1),[c,u]=(0,z.useState)(!1);async function d(e){if(!a){o(!0),u(!1);try{await k(`/api/maintenance/geheimnisse`,{schluessel:`hf_token`,wert:e}),l(`erfolg`,e?`Hugging-Face-Zugang gespeichert.`:`Hugging-Face-Zugang gelöscht.`),i(``),t.invalidateQueries({queryKey:[`geheimnisse`]})}catch(e){l(`fehler`,e.message)}finally{o(!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,B.jsxs)(Q,{titel:`Hugging-Face-Zugang`,children:[(0,B.jsxs)(`p`,{className:`text-sm text-text-2`,"aria-live":`polite`,children:[(0,B.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,B.jsx)(`p`,{className:`text-sm text-bernstein`,children:`Die Box kann den Zugang gerade nicht speichern: Ihre Ablage ist nicht beschreibbar.`}),(0,B.jsxs)(`form`,{className:`flex gap-2`,onSubmit:e=>{e.preventDefault(),r.trim()&&d(r.trim())},children:[(0,B.jsx)(`label`,{htmlFor:`hf-token`,className:`sr-only`,children:`Hugging-Face-Zugang`}),(0,B.jsx)(`input`,{id:`hf-token`,type:`password`,autoComplete:`off`,value:r,onChange:e=>i(e.target.value),placeholder:`hf_…`,className:`h-11 min-w-0 flex-1 rounded-xl border border-white/12 bg-white/[0.04] px-3 text-[15px] outline-none focus:border-cyan/60 focus:bg-white/[0.06]`}),(0,B.jsx)(A,{type:`submit`,disabled:!r.trim()||p?.schreibbar===!1||a,children:a?`Speichert …`:`Speichern`})]}),p?.hf_token_gesetzt&&!p.hf_token_aus_env&&(c?(0,B.jsxs)(`span`,{className:`flex flex-wrap gap-2`,children:[(0,B.jsx)(A,{variant:`gefahr`,size:`sm`,disabled:a,onClick:()=>d(null),children:`Wirklich löschen?`}),(0,B.jsx)(A,{variant:`ghost`,size:`sm`,onClick:()=>u(!1),children:`Nein`})]}):(0,B.jsx)(A,{variant:`ghost`,size:`sm`,className:`self-start`,disabled:a,onClick:()=>u(!0),children:`Zugang löschen`}))]})}function le(e){let t=(0,R.c)(24),{ziel:n,name:r}=e,i=w(),a=i.data,o=null;if(i.isPending){let e;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,B.jsx)(`p`,{role:`status`,className:`text-sm text-text-2`,children:`Sendet …`}),t[0]=e):e=t[0],o=e}else if(a?.gesendet){let e=a.weg===`hermes`?`über Hermes`:`direkt an die Telegram-Bot-API`,n=a.kennung?`, Kennung ${a.kennung}`:``,r;t[1]!==e||t[2]!==n?(r=(0,B.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],o=r}else if(a){let e=a.grund??a.detail??`ohne Angabe eines Grundes.`,n;t[4]===e?n=t[5]:(n=(0,B.jsxs)(`p`,{role:`alert`,className:`text-sm text-rot-text`,children:[`Nicht gesendet: `,e]}),t[4]=e,t[5]=n),o=n}else if(i.error){let e;t[6]===i.error.message?e=t[7]:(e=(0,B.jsx)(`p`,{role:`alert`,className:`text-sm text-rot-text`,children:i.error.message}),t[6]=i.error.message,t[7]=e),o=e}let s;t[8]===r?s=t[9]:(s=(0,B.jsx)(`span`,{className:`text-[15px]`,children:r}),t[8]=r,t[9]=s);let c;t[10]!==i||t[11]!==n?(c=()=>i.mutate(n),t[10]=i,t[11]=n,t[12]=c):c=t[12];let l=`Testmeldung von ${r} senden`,u=i.isPending?`Sendet …`:`Test senden`,d;t[13]!==c||t[14]!==l||t[15]!==u||t[16]!==i.isPending?(d=(0,B.jsx)(A,{variant:`outline`,size:`sm`,disabled:i.isPending,onClick:c,"aria-label":l,children:u}),t[13]=c,t[14]=l,t[15]=u,t[16]=i.isPending,t[17]=d):d=t[17];let f;t[18]!==s||t[19]!==d?(f=(0,B.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[s,d]}),t[18]=s,t[19]=d,t[20]=f):f=t[20];let p;return t[21]!==o||t[22]!==f?(p=(0,B.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[f,o]}),t[21]=o,t[22]=f,t[23]=p):p=t[23],p}function ue(){let e=(0,R.c)(9),t=c().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(fe),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,B.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,B.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 l;return e[7]===a?l=e[8]:(l=(0,B.jsxs)(Q,{titel:`Telegram`,children:[o,s,a.map(de)]}),e[7]=a,e[8]=l),l}function de(e){return(0,B.jsx)(le,{ziel:e.ziel,name:e.name},e.ziel)}function fe(e,t){return Number(e.ziel!==`box`)-Number(t.ziel!==`box`)}function pe(e){let t=(0,R.c)(87),{e:n,laedt:r,fehler:i}=e,a=x(),[o,s]=(0,z.useState)(null),[c,l]=(0,z.useState)(!1);if(!n){let e;return t[0]!==i||t[1]!==r?(e=(0,B.jsx)(Q,{titel:`Update-Zeitfenster`,children:(0,B.jsx)(se,{laedt:r,fehler:i})}),t[0]=i,t[1]=r,t[2]=e):e=t[2],e}let u=n.update_fenster,d,f,p,m,h,g,_,v,y,b,S,C,w,T,E,D,O;if(t[3]!==n.schaltbar||t[4]!==o||t[5]!==u.naechster_lauf||t[6]!==u.neustart_fenster||t[7]!==u.tag||t[8]!==u.tag_name||t[9]!==u.timer_aktiv||t[10]!==u.uhrzeit||t[11]!==u.wirksam){O=o??{tag:u.tag,uhrzeit:u.uhrzeit},f=O.tag!==u.tag||O.uhrzeit!==u.uhrzeit;let e=re.includes(O.uhrzeit)?re:[...re,O.uhrzeit].sort();d=Q,h=`Update-Zeitfenster`;let r;t[29]===u.naechster_lauf?r=t[30]:(r=u.naechster_lauf?` (nächster Lauf ${Z(u.naechster_lauf)})`:``,t[29]=u.naechster_lauf,t[30]=r),t[31]!==u.neustart_fenster||t[32]!==u.tag_name||t[33]!==u.uhrzeit||t[34]!==r?(g=(0,B.jsxs)(`p`,{className:`text-sm text-text-2`,children:[`Die Box aktualisiert sich jeden `,u.tag_name,` um `,u.uhrzeit,` Uhr`,r,`. Neu gestartet wird sie danach nur`,` `,u.neustart_fenster,`.`]}),t[31]=u.neustart_fenster,t[32]=u.tag_name,t[33]=u.uhrzeit,t[34]=r,t[35]=g):g=t[35],t[36]!==n.schaltbar||t[37]!==u.timer_aktiv?(_=n.schaltbar&&!u.timer_aktiv&&(0,B.jsx)(oe,{children:`Der Update-Timer läuft gerade nicht; er übernimmt das Fenster beim nächsten Start.`}),t[36]=n.schaltbar,t[37]=u.timer_aktiv,t[38]=_):_=t[38],t[39]!==n.schaltbar||t[40]!==u.wirksam?(v=n.schaltbar&&!u.wirksam&&(0,B.jsx)(oe,{children:`Der Timer läuft noch nach einem anderen Plan als eingestellt. Einmal speichern gleicht es an.`}),t[39]=n.schaltbar,t[40]=u.wirksam,t[41]=v):v=t[41],D=`flex flex-wrap items-end gap-2`;let i=O.tag,a;t[42]===Symbol.for(`react.memo_cache_sentinel`)?(a=X.map(he),t[42]=a):a=t[42],m=(0,B.jsxs)(`label`,{className:`flex flex-col gap-1 text-xs text-text-3`,children:[`Tag`,(0,B.jsx)(`select`,{className:`h-11 rounded-xl border border-white/12 bg-white/[0.04] px-3 text-[15px] text-foreground outline-none focus:border-cyan/60 focus:bg-white/[0.06]`,value:i,disabled:!n.schaltbar,"aria-label":`Wochentag`,onChange:e=>s({...O,tag:Number(e.target.value)}),children:a})]}),T=`flex flex-col gap-1 text-xs text-text-3`,E=`Uhrzeit`,p=`h-11 rounded-xl border border-white/12 bg-white/[0.04] px-3 text-[15px] text-foreground outline-none focus:border-cyan/60 focus:bg-white/[0.06]`,y=O.uhrzeit,b=!n.schaltbar,S=`Uhrzeit`,C=e=>s({...O,uhrzeit:e.target.value}),w=e.map(me),t[3]=n.schaltbar,t[4]=o,t[5]=u.naechster_lauf,t[6]=u.neustart_fenster,t[7]=u.tag,t[8]=u.tag_name,t[9]=u.timer_aktiv,t[10]=u.uhrzeit,t[11]=u.wirksam,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]=y,t[21]=b,t[22]=S,t[23]=C,t[24]=w,t[25]=T,t[26]=E,t[27]=D,t[28]=O}else d=t[12],f=t[13],p=t[14],m=t[15],h=t[16],g=t[17],_=t[18],v=t[19],y=t[20],b=t[21],S=t[22],C=t[23],w=t[24],T=t[25],E=t[26],D=t[27],O=t[28];let k;t[43]!==p||t[44]!==y||t[45]!==b||t[46]!==S||t[47]!==C||t[48]!==w?(k=(0,B.jsx)(`select`,{className:p,value:y,disabled:b,"aria-label":S,onChange:C,children:w}),t[43]=p,t[44]=y,t[45]=b,t[46]=S,t[47]=C,t[48]=w,t[49]=k):k=t[49];let j;t[50]!==k||t[51]!==T||t[52]!==E?(j=(0,B.jsxs)(`label`,{className:T,children:[E,k]}),t[50]=k,t[51]=T,t[52]=E,t[53]=j):j=t[53];let M=!n.schaltbar||a.isPending||!f&&u.wirksam,N;t[54]===Symbol.for(`react.memo_cache_sentinel`)?(N=()=>l(!0),t[54]=N):N=t[54];let P=a.isPending?`Speichert …`:`Speichern`,I;t[55]!==M||t[56]!==P?(I=(0,B.jsx)(A,{disabled:M,onClick:N,children:P}),t[55]=M,t[56]=P,t[57]=I):I=t[57];let L;t[58]!==m||t[59]!==j||t[60]!==I||t[61]!==D?(L=(0,B.jsxs)(`div`,{className:D,children:[m,j,I]}),t[58]=m,t[59]=j,t[60]=I,t[61]=D,t[62]=L):L=t[62];let V=n.schaltbar?``:` Einstellen lässt es sich nur auf der Box.`,H;t[63]===V?H=t[64]:(H=(0,B.jsxs)(`p`,{className:`text-xs text-text-3`,children:[`Am besten nachts nach der Sicherung (03:30) und vor der Morgenmeldung (07:00).`,V]}),t[63]=V,t[64]=H);let U;t[65]!==O.tag||t[66]!==O.uhrzeit?(U=ae(O.tag,O.uhrzeit),t[65]=O.tag,t[66]=O.uhrzeit,t[67]=U):U=t[67];let W=`Der Update-Lauf startet ab jetzt jeden ${X[O.tag-1]} um ${O.uhrzeit} Uhr. Neu gestartet wird die Box nur ${U}. Ein Termin, der dadurch schon vorbei ist, wird nicht nachgeholt: Der erste Lauf ist der nächste reguläre.`,G;t[68]===Symbol.for(`react.memo_cache_sentinel`)?(G=()=>l(!1),t[68]=G):G=t[68];let K;t[69]!==c||t[70]!==a||t[71]!==O?(K=()=>{c&&(a.mutate(O,{onSuccess:()=>s(null)}),l(!1))},t[69]=c,t[70]=a,t[71]=O,t[72]=K):K=t[72];let q;t[73]!==c||t[74]!==a.isPending||t[75]!==W||t[76]!==K?(q=(0,B.jsx)(F,{offen:c,titel:`Update-Zeitfenster ändern?`,text:W,knopf:`Speichern`,gesperrt:a.isPending,onNein:G,onJa:K}),t[73]=c,t[74]=a.isPending,t[75]=W,t[76]=K,t[77]=q):q=t[77];let J;return t[78]!==d||t[79]!==h||t[80]!==g||t[81]!==_||t[82]!==v||t[83]!==L||t[84]!==H||t[85]!==q?(J=(0,B.jsxs)(d,{titel:h,children:[g,_,v,L,H,q]}),t[78]=d,t[79]=h,t[80]=g,t[81]=_,t[82]=v,t[83]=L,t[84]=H,t[85]=q,t[86]=J):J=t[86],J}function me(e){return(0,B.jsx)(`option`,{value:e,children:e},e)}function he(e,t){return(0,B.jsx)(`option`,{value:t+1,children:e},e)}function ge(e){let t=(0,R.c)(37),{e:n,laedt:r,fehler:i}=e,a=p(),[o,s]=(0,z.useState)(null);if(!n){let e;return t[0]!==i||t[1]!==r?(e=(0,B.jsx)(Q,{titel:`Modell-Radar`,children:(0,B.jsx)(se,{laedt:r,fehler:i})}),t[0]=i,t[1]=r,t[2]=e):e=t[2],e}let c=n.radar,l=c.zustand===`an`||c.zustand===`unbekannt`&&c.an,u;t[3]===c.naechster_lauf?u=t[4]:(u=c.naechster_lauf?` (nächster Lauf ${Z(c.naechster_lauf)})`:``,t[3]=c.naechster_lauf,t[4]=u);let d=`An. Es sucht jede Nacht ab 00:30 nach besseren Modellen${u}.`,f=c.an?`Eingeschaltet.`:`Ausgeschaltet.`,m;t[5]!==d||t[6]!==f?(m={an:d,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:f},t[5]=d,t[6]=f,t[7]=m):m=t[7];let h=m[c.zustand],g;t[8]===h?g=t[9]:(g=(0,B.jsx)(`p`,{className:`text-sm text-text-2`,children:h}),t[8]=h,t[9]=g);let _;t[10]!==n.schaltbar||t[11]!==c.an||t[12]!==c.wirksam?(_=n.schaltbar&&!c.wirksam&&(0,B.jsxs)(oe,{children:[`Eingestellt ist „`,c.an?`an`:`aus`,`“, systemd zeigt etwas anderes. Noch einmal schalten gleicht es an.`]}),t[10]=n.schaltbar,t[11]=c.an,t[12]=c.wirksam,t[13]=_):_=t[13];let v=l?`outline`:`default`,y=!n.schaltbar||a.isPending,b;t[14]===l?b=t[15]:(b=()=>s(!l),t[14]=l,t[15]=b);let x=a.isPending?`Schaltet …`:l?`Ausschalten`:`Einschalten`,S;t[16]!==b||t[17]!==x||t[18]!==v||t[19]!==y?(S=(0,B.jsx)(A,{variant:v,size:`sm`,className:`self-start`,disabled:y,onClick:b,children:x}),t[16]=b,t[17]=x,t[18]=v,t[19]=y,t[20]=S):S=t[20];let C=o!==null,w=o?`Modell-Radar einschalten?`:`Modell-Radar ausschalten?`,T=o?`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.`,E=o?`Einschalten`:`Ausschalten`,D;t[21]===Symbol.for(`react.memo_cache_sentinel`)?(D=()=>s(null),t[21]=D):D=t[21];let O;t[22]!==o||t[23]!==a?(O=()=>{o!==null&&(a.mutate(o),s(null))},t[22]=o,t[23]=a,t[24]=O):O=t[24];let k;t[25]!==a.isPending||t[26]!==C||t[27]!==w||t[28]!==T||t[29]!==E||t[30]!==O?(k=(0,B.jsx)(F,{offen:C,titel:w,text:T,knopf:E,gesperrt:a.isPending,onNein:D,onJa:O}),t[25]=a.isPending,t[26]=C,t[27]=w,t[28]=T,t[29]=E,t[30]=O,t[31]=k):k=t[31];let j;return t[32]!==S||t[33]!==k||t[34]!==g||t[35]!==_?(j=(0,B.jsxs)(Q,{titel:`Modell-Radar`,children:[g,_,S,k]}),t[32]=S,t[33]=k,t[34]=g,t[35]=_,t[36]=j):j=t[36],j}function _e(e){let t=(0,R.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,B.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,B.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,B.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,B.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 ${Z(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 ${Z(r.commit_datum)}`:``,t[12]=r.commit_datum,t[13]=s);let c;t[14]!==a||t[15]!==s?(c=(0,B.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,B.jsxs)(B.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,B.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,B.jsx)(`span`,{className:`text-[15px]`,children:n}),t[20]=n,t[21]=s);let c;return t[22]!==o||t[23]!==s?(c=(0,B.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 ve(e,t){return!e||!t?null:e.startsWith(t)||t.startsWith(e)}function ye(e){let t=(0,R.c)(21),{offen:n}=e,r=c().data,i=!!r?.partner.eingerichtet,[a,o]=E(n,i),s=a.data?.stand?.commit,l=o.data?.stand?.commit,u;t[0]!==s||t[1]!==l?(u=ve(s,l),t[0]=s,t[1]=l,t[2]=u):u=t[2];let d=u,f=a.data?.instanz??r?.instanz??`Diese Instanz`,p=a.data?.stand,m=a.error?.message,h;t[3]!==a.isPending||t[4]!==f||t[5]!==p||t[6]!==m?(h=(0,B.jsx)(_e,{name:f,stand:p,laedt:a.isPending,fehler:m}),t[3]=a.isPending,t[4]=f,t[5]=p,t[6]=m,t[7]=h):h=t[7];let g;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?(g=i&&(0,B.jsx)(_e,{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]=g):g=t[14];let _;t[15]===d?_=t[16]:(_=d===!1&&(0,B.jsx)(oe,{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]=_);let v;return t[17]!==h||t[18]!==g||t[19]!==_?(v=(0,B.jsxs)(Q,{titel:`Instanzen`,children:[h,g,_]}),t[17]=h,t[18]=g,t[19]=_,t[20]=v):v=t[20],v}function be(e){let t=(0,R.c)(52),{h:n}=e,r=T(),i=b(),[a,o]=(0,z.useState)(``),[s,c]=(0,z.useState)(!1),[l,u]=(0,z.useState)(null),d=n.arcane,f;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(f={hinterlegt:(0,B.jsx)(j,{art:`gruen`,children:`hinterlegt`}),umgebung:(0,B.jsx)(j,{art:`gruen`,children:`aus der Dienst-Einstellung`}),fehlt:(0,B.jsx)(j,{art:`bernstein`,children:`fehlt`})},t[0]=f):f=t[0];let p=f[d.schluessel],m;t[1]===d.url?m=t[2]:(m=d.url&&(0,B.jsxs)(`a`,{href:d.url,target:`_blank`,rel:`noopener`,className:`ml-auto inline-flex items-center gap-1 text-cyan hover:underline`,children:[`Arcane öffnen `,(0,B.jsx)(N,{className:`size-3.5`,"aria-hidden":!0})]}),t[1]=d.url,t[2]=m);let h;t[3]!==p||t[4]!==m?(h=(0,B.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 text-sm text-text-2`,children:[`API-Schlüssel `,p,m]}),t[3]=p,t[4]=m,t[5]=h):h=t[5];let g;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,B.jsx)(`p`,{className:`text-sm text-text-2`,children:`Mit Schlüssel sieht der Orchestrator, welche Docker-Images neuer sind. Anlegen in Arcane unter Einstellungen → API-Schlüssel; Lesen reicht, solange Docker-Updates nur als Probelauf laufen.`}),t[6]=g):g=t[6];let _;t[7]!==d.schluessel||t[8]!==r||t[9]!==a?(_=d.schluessel!==`umgebung`&&(0,B.jsxs)(`form`,{className:`flex gap-2`,onSubmit:e=>{e.preventDefault(),a.trim()&&r.mutate(a.trim(),{onSuccess:()=>o(``)})},children:[(0,B.jsx)(`label`,{htmlFor:`arcane-schluessel`,className:`sr-only`,children:`Arcane-API-Schlüssel`}),(0,B.jsxs)(`span`,{className:`relative min-w-0 flex-1`,children:[(0,B.jsx)(L,{className:`pointer-events-none absolute top-1/2 left-3 size-4 -translate-y-1/2 text-text-3`,"aria-hidden":!0}),(0,B.jsx)(`input`,{id:`arcane-schluessel`,type:`password`,autoComplete:`off`,value:a,onChange:e=>o(e.target.value),placeholder:d.schluessel===`hinterlegt`?`Neuen Schlüssel eintragen …`:`Schlüssel aus Arcane einfügen …`,className:`h-11 w-full rounded-xl border border-white/12 bg-white/[0.04] pr-3 pl-9 text-[15px] outline-none focus:border-lab/60 focus:bg-white/[0.06]`})]}),(0,B.jsx)(A,{type:`submit`,disabled:!a.trim()||r.isPending,children:r.isPending?`Prüft …`:`Prüfen und speichern`})]}),t[7]=d.schluessel,t[8]=r,t[9]=a,t[10]=_):_=t[10];let v;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(v=(0,B.jsx)(`p`,{className:`text-xs text-text-3`,children:`Der Schlüssel wird vor dem Speichern an Arcane geprüft und nie wieder angezeigt. Er liegt nur im Homelab-Teil.`}),t[11]=v):v=t[11];let y;t[12]!==d.schluessel||t[13]!==s||t[14]!==r?(y=d.schluessel===`hinterlegt`&&(s?(0,B.jsxs)(`span`,{className:`flex flex-wrap gap-2`,children:[(0,B.jsx)(A,{variant:`gefahr`,size:`sm`,disabled:r.isPending,onClick:()=>{r.mutate(null),c(!1)},children:`Wirklich entfernen?`}),(0,B.jsx)(A,{variant:`ghost`,size:`sm`,onClick:()=>c(!1),children:`Nein`})]}):(0,B.jsx)(A,{variant:`ghost`,size:`sm`,className:`self-start`,onClick:()=>c(!0),children:`Schlüssel entfernen`})),t[12]=d.schluessel,t[13]=s,t[14]=r,t[15]=y):y=t[15];let x;t[16]!==h||t[17]!==_||t[18]!==y?(x=(0,B.jsxs)(Q,{titel:`Arcane (Docker)`,children:[h,g,_,v,y]}),t[16]=h,t[17]=_,t[18]=y,t[19]=x):x=t[19];let S=d.echt?`Echt: „Jetzt updaten“ bei Arcane zieht neue Images und startet die Container neu.`:`Probelauf: Arcane zeigt nur, was es tun würde — kein Container wird angefasst.`,C=d.echt_quelle===`umgebung`?` Festgelegt in der Dienst-Einstellung (MC_ARCANE_ECHT).`:``,w;t[20]!==S||t[21]!==C?(w=(0,B.jsxs)(`p`,{className:`text-sm text-text-2`,children:[S,C]}),t[20]=S,t[21]=C,t[22]=w):w=t[22];let E=d.echt?`outline`:`default`,D=d.echt_quelle===`umgebung`||i.isPending||d.schluessel===`fehlt`,O;t[23]===d.echt?O=t[24]:(O=()=>u(!d.echt),t[23]=d.echt,t[24]=O);let k=i.isPending?`Schaltet …`:d.echt?`Zurück auf Probelauf`:`Echt schalten`,M;t[25]!==E||t[26]!==D||t[27]!==O||t[28]!==k?(M=(0,B.jsx)(A,{variant:E,size:`sm`,className:`self-start`,disabled:D,onClick:O,children:k}),t[25]=E,t[26]=D,t[27]=O,t[28]=k,t[29]=M):M=t[29];let P;t[30]===d.schluessel?P=t[31]:(P=d.schluessel===`fehlt`&&(0,B.jsx)(`p`,{className:`text-xs text-text-3`,children:`Erst den Schlüssel eintragen.`}),t[30]=d.schluessel,t[31]=P);let I=l!==null,V=l?`Docker-Updates echt ausführen?`:`Zurück auf Probelauf?`,H=l?`Ab jetzt zieht „Jetzt updaten“ bei Arcane neue Images und startet die betroffenen Container neu. Vorher wird ein Snapshot der VM angelegt, soweit möglich. Das lässt sich hier jederzeit zurückschalten.`:`Docker-Updates zeigen dann wieder nur, was Arcane tun würde.`,U=l?`Echt schalten`:`Probelauf`,W=!!l,G;t[32]===Symbol.for(`react.memo_cache_sentinel`)?(G=()=>u(null),t[32]=G):G=t[32];let K;t[33]!==i||t[34]!==l?(K=()=>{l!==null&&(i.mutate(l),u(null))},t[33]=i,t[34]=l,t[35]=K):K=t[35];let q;t[36]!==i.isPending||t[37]!==I||t[38]!==V||t[39]!==H||t[40]!==U||t[41]!==W||t[42]!==K?(q=(0,B.jsx)(F,{offen:I,titel:V,text:H,knopf:U,gefahr:W,gesperrt:i.isPending,onNein:G,onJa:K}),t[36]=i.isPending,t[37]=I,t[38]=V,t[39]=H,t[40]=U,t[41]=W,t[42]=K,t[43]=q):q=t[43];let J;t[44]!==w||t[45]!==M||t[46]!==P||t[47]!==q?(J=(0,B.jsxs)(Q,{titel:`Docker-Updates`,children:[w,M,P,q]}),t[44]=w,t[45]=M,t[46]=P,t[47]=q,t[48]=J):J=t[48];let Y;return t[49]!==J||t[50]!==x?(Y=(0,B.jsxs)(B.Fragment,{children:[x,J]}),t[49]=J,t[50]=x,t[51]=Y):Y=t[51],Y}function xe(e){let t=(0,R.c)(44),{h:n}=e,r=y(),[i,o]=(0,z.useState)(``),[s,c]=(0,z.useState)(``),[l,u]=(0,z.useState)(!1),d=n.adguard;if(!d)return null;let f;t[0]!==d.benutzer||t[1]!==d.zugang?(f=d.zugang===`hinterlegt`?(0,B.jsxs)(j,{art:`gruen`,children:[`hinterlegt`,d.benutzer?` · ${d.benutzer}`:``]}):(0,B.jsx)(j,{art:`grau`,children:`keiner`}),t[0]=d.benutzer,t[1]=d.zugang,t[2]=f):f=t[2];let p;t[3]===d.url?p=t[4]:(p=d.url&&(0,B.jsxs)(`a`,{href:d.url,target:`_blank`,rel:`noopener`,className:`ml-auto inline-flex items-center gap-1 text-cyan hover:underline`,children:[`AdGuard öffnen `,(0,B.jsx)(N,{className:`size-3.5`,"aria-hidden":!0})]}),t[3]=d.url,t[4]=p);let m;t[5]!==f||t[6]!==p?(m=(0,B.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 text-sm text-text-2`,children:[`Zugang `,f,p]}),t[5]=f,t[6]=p,t[7]=m):m=t[7];let h;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,B.jsx)(`p`,{className:`text-sm text-text-2`,children:`Mit einem Zugang zeigt die Kachel von AdGuard, wie viele Anfragen es blockt. Er wird nur zum Lesen der Statistik benutzt — am besten ein eigener Benutzer dafür.`}),t[8]=h):h=t[8];let g;t[9]!==i||t[10]!==s||t[11]!==r?(g=e=>{e.preventDefault(),i.trim()&&s&&r.mutate({benutzer:i.trim(),passwort:s},{onSuccess:()=>{c(``),o(``)}})},t[9]=i,t[10]=s,t[11]=r,t[12]=g):g=t[12];let _;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,B.jsx)(`label`,{htmlFor:`adguard-benutzer`,className:`sr-only`,children:`AdGuard-Benutzer`}),t[13]=_):_=t[13];let v;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(v=e=>o(e.target.value),t[14]=v):v=t[14];let b;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(b=a(`h-11 w-full rounded-xl border border-white/12 bg-white/[0.04] px-3 text-[15px] outline-none focus:border-lab/60 focus:bg-white/[0.06]`,`min-w-0 flex-1 basis-40`),t[15]=b):b=t[15];let x;t[16]===i?x=t[17]:(x=(0,B.jsx)(`input`,{id:`adguard-benutzer`,autoComplete:`off`,value:i,onChange:v,placeholder:`Benutzer`,className:b}),t[16]=i,t[17]=x);let S;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,B.jsx)(`label`,{htmlFor:`adguard-passwort`,className:`sr-only`,children:`AdGuard-Passwort`}),t[18]=S):S=t[18];let C;t[19]===Symbol.for(`react.memo_cache_sentinel`)?(C=e=>c(e.target.value),t[19]=C):C=t[19];let w;t[20]===Symbol.for(`react.memo_cache_sentinel`)?(w=a(`h-11 w-full rounded-xl border border-white/12 bg-white/[0.04] px-3 text-[15px] outline-none focus:border-lab/60 focus:bg-white/[0.06]`,`min-w-0 flex-1 basis-40`),t[20]=w):w=t[20];let T;t[21]===s?T=t[22]:(T=(0,B.jsx)(`input`,{id:`adguard-passwort`,type:`password`,autoComplete:`new-password`,value:s,onChange:C,placeholder:`Passwort`,className:w}),t[21]=s,t[22]=T);let E;t[23]!==i||t[24]!==s||t[25]!==r.isPending?(E=!i.trim()||!s||r.isPending,t[23]=i,t[24]=s,t[25]=r.isPending,t[26]=E):E=t[26];let D=r.isPending?`Prüft …`:`Prüfen und speichern`,O;t[27]!==E||t[28]!==D?(O=(0,B.jsx)(A,{type:`submit`,disabled:E,children:D}),t[27]=E,t[28]=D,t[29]=O):O=t[29];let k;t[30]!==T||t[31]!==O||t[32]!==g||t[33]!==x?(k=(0,B.jsxs)(`form`,{className:`flex flex-wrap gap-2`,onSubmit:g,children:[_,x,S,T,O]}),t[30]=T,t[31]=O,t[32]=g,t[33]=x,t[34]=k):k=t[34];let M;t[35]===Symbol.for(`react.memo_cache_sentinel`)?(M=(0,B.jsx)(`p`,{className:`text-xs text-text-3`,children:`Vor dem Speichern fragt der Homelab-Teil AdGuard einmal damit. Das Passwort wird nie wieder angezeigt und liegt nur im Homelab-Teil.`}),t[35]=M):M=t[35];let P;t[36]!==d.zugang||t[37]!==l||t[38]!==r?(P=d.zugang===`hinterlegt`&&(l?(0,B.jsxs)(`span`,{className:`flex flex-wrap gap-2`,children:[(0,B.jsx)(A,{variant:`gefahr`,size:`sm`,disabled:r.isPending,onClick:()=>{r.mutate(null),u(!1)},children:`Wirklich entfernen?`}),(0,B.jsx)(A,{variant:`ghost`,size:`sm`,onClick:()=>u(!1),children:`Nein`})]}):(0,B.jsx)(A,{variant:`ghost`,size:`sm`,className:`self-start`,onClick:()=>u(!0),children:`Zugang entfernen`})),t[36]=d.zugang,t[37]=l,t[38]=r,t[39]=P):P=t[39];let F;return t[40]!==k||t[41]!==P||t[42]!==m?(F=(0,B.jsxs)(Q,{titel:`AdGuard Home`,children:[m,h,k,M,P]}),t[40]=k,t[41]=P,t[42]=m,t[43]=F):F=t[43],F}function Se(e){let t=(0,R.c)(21),{h:n}=e,r=n.ausfuehrer,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,B.jsx)(`dt`,{className:`text-text-3`,children:`Ausführer`}),t[0]=i):i=t[0];let a=r.verbunden?`text-gruen-text`:`text-rot-text`,o=r.verbunden?`verbunden`:`meldet sich nicht`,s;t[1]===r.zuletzt?s=t[2]:(s=r.zuletzt?` · zuletzt ${_(new Date(r.zuletzt*1e3).toISOString()).toLowerCase()}`:``,t[1]=r.zuletzt,t[2]=s);let c;t[3]!==a||t[4]!==o||t[5]!==s?(c=(0,B.jsxs)(`dd`,{className:a,children:[o,s]}),t[3]=a,t[4]=o,t[5]=s,t[6]=c):c=t[6];let l;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,B.jsx)(`dt`,{className:`text-text-3`,children:`Modus`}),t[7]=l):l=t[7];let u=r.nur_lesen?`nur lesen — Updates sind gesperrt`:`voll: Snapshots, Sicherungen und Updates`,d;t[8]===u?d=t[9]:(d=(0,B.jsx)(`dd`,{className:`text-text-2`,children:u}),t[8]=u,t[9]=d);let f;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,B.jsx)(`dt`,{className:`text-text-3`,children:`Sicherungen`}),t[10]=f):f=t[10];let p=r.sicherung_speicher?`auf „${r.sicherung_speicher}“ (wo kein Snapshot geht)`:`kein Speicher gefunden`,m;t[11]===p?m=t[12]:(m=(0,B.jsx)(`dd`,{className:`text-text-2`,children:p}),t[11]=p,t[12]=m);let h;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,B.jsx)(`dt`,{className:`text-text-3`,children:`Wartezeit`}),t[13]=h):h=t[13];let g=n.karenz_h>0?`${n.karenz_h} Stunden nach einer Änderung am Update-Skript einer App`:`aus`,v;t[14]===g?v=t[15]:(v=(0,B.jsx)(`dd`,{className:`text-text-2`,children:g}),t[14]=g,t[15]=v);let y;return t[16]!==m||t[17]!==v||t[18]!==c||t[19]!==d?(y=(0,B.jsx)(Q,{titel:`Ausführer und Updates`,children:(0,B.jsxs)(`dl`,{className:`grid grid-cols-[auto_minmax(0,1fr)] gap-x-4 gap-y-2 text-sm`,children:[i,c,l,d,f,m,h,v]})}),t[16]=m,t[17]=v,t[18]=c,t[19]=d,t[20]=y):y=t[20],y}function Ce(){let e=(0,R.c)(18),t=c().data,n=o().data,r=t?.rolle===`homelab`||!!(n?.eingerichtet&&n.erreichbar),i=O(r),a;if(!r){let t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,B.jsx)(`p`,{className:`text-sm text-text-2`,children:`Der Homelab-Teil antwortet gerade nicht.`}),e[0]=t):t=e[0],a=t}else if(i.data){let t,n;e[4]===i.data?(t=e[5],n=e[6]):(t=(0,B.jsx)(be,{h:i.data}),n=(0,B.jsx)(xe,{h:i.data}),e[4]=i.data,e[5]=t,e[6]=n);let o;e[7]===r?o=e[8]:(o=(0,B.jsx)(Q,{titel:`Wartungsfenster und Regel je Gerät`,children:(0,B.jsx)(K,{aktiv:r})}),e[7]=r,e[8]=o);let s;e[9]===i.data?s=e[10]:(s=(0,B.jsx)(Se,{h:i.data}),e[9]=i.data,e[10]=s);let c;e[11]!==t||e[12]!==n||e[13]!==o||e[14]!==s?(c=(0,B.jsxs)(B.Fragment,{children:[t,n,o,s]}),e[11]=t,e[12]=n,e[13]=o,e[14]=s,e[15]=c):c=e[15],a=c}else{let t=i.error?.message,n;e[1]!==i.isPending||e[2]!==t?(n=(0,B.jsx)(se,{laedt:i.isPending,fehler:t}),e[1]=i.isPending,e[2]=t,e[3]=n):n=e[3],a=n}let s;return e[16]===a?s=e[17]:(s=(0,B.jsx)($,{titel:`Homelab`,farbe:`homelab`,text:`Arcane und Docker, AdGuard, der Ausführer auf dem Proxmox-Host, Rückwege.`,children:a}),e[16]=a,e[17]=s),s}function we(){let e=(0,R.c)(4),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,B.jsx)(Q,{titel:`Wie selbstständig Lucy handelt`,children:(0,B.jsx)(ee,{})}),e[0]=t):t=e[0];let n;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,B.jsx)(Q,{titel:`Offene Rückfragen`,children:(0,B.jsx)(M,{leerText:`Gerade wartet keine Rückfrage auf dich.`})}),e[1]=n):n=e[1];let r;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,B.jsx)(Q,{titel:`Zuletzt beantwortet`,children:(0,B.jsx)(P,{})}),e[2]=r):r=e[2];let i;return e[3]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,B.jsxs)($,{id:`lucy`,titel:`Lucy`,text:`Was sie aus eigenem Antrieb darf, ihre Rückfragen an dich und der Wochenbericht.`,children:[t,n,r,(0,B.jsx)(Q,{titel:`Wochenbericht`,children:(0,B.jsx)(ne,{})})]}),e[3]=i):i=e[3],i}function Te(){let e=(0,R.c)(20),t=S(!0),n=t.error?.message,r;e[0]!==t.data||e[1]!==t.isPending||e[2]!==n?(r={e:t.data,laedt:t.isPending,fehler:n},e[0]=t.data,e[1]=t.isPending,e[2]=n,e[3]=r):r=e[3];let i=r,a;e[4]===Symbol.for(`react.memo_cache_sentinel`)?(a=[],e[4]=a):a=e[4],(0,z.useEffect)(Ee,a);let o,s;e[5]===i?(o=e[6],s=e[7]):(o=(0,B.jsx)(pe,{...i}),s=(0,B.jsx)(ge,{...i}),e[5]=i,e[6]=o,e[7]=s);let c;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,B.jsx)(ce,{offen:!0}),e[8]=c):c=e[8];let l;e[9]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,B.jsxs)(Q,{titel:`Hermes`,children:[(0,B.jsxs)(`a`,{href:`/hermes-ui/`,target:`_blank`,rel:`noopener`,className:`flex h-11 items-center gap-2 self-start rounded-xl border border-white/12 bg-white/[0.04] px-4 text-[15px] font-semibold hover:border-white/20 hover:bg-white/[0.08]`,children:[(0,B.jsx)(N,{className:`size-4`,"aria-hidden":!0}),` Hermes-Dashboard öffnen`]}),(0,B.jsx)(`p`,{className:`text-xs text-text-3`,children:`Chat, Sitzungen und Cron-Jobs verwaltet Hermes selbst. Es fragt nach seiner eigenen Anmeldung.`})]}),e[9]=l):l=e[9];let u;e[10]!==o||e[11]!==s?(u=(0,B.jsxs)($,{titel:`KI-Box`,farbe:`box`,text:`Wann sie sich aktualisiert, das Modell-Radar und Zugänge.`,children:[o,s,c,l]}),e[10]=o,e[11]=s,e[12]=u):u=e[12];let d,f;e[13]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,B.jsx)(Ce,{}),f=(0,B.jsx)(we,{}),e[13]=d,e[14]=f):(d=e[13],f=e[14]);let p;e[15]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,B.jsx)($,{titel:`Meldungen`,text:`Telegram, Morgenmeldung und was sofort kommt.`,children:(0,B.jsx)(ue,{})}),e[15]=p):p=e[15];let m;e[16]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,B.jsx)($,{titel:`Software-Stand`,text:`Welcher Stand auf beiden Instanzen läuft.`,children:(0,B.jsx)(ye,{offen:!0})}),e[16]=m):m=e[16];let h;e[17]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,B.jsxs)(`p`,{className:`text-xs text-text-3 xl:col-span-2`,children:[`Logos der Dienste: `,(0,B.jsx)(`a`,{href:`https://selfh.st/icons`,target:`_blank`,rel:`noopener`,className:`underline-offset-4 hover:underline`,children:`selfh.st/icons`}),`, Lizenz CC BY 4.0. Die Marken gehören ihren Inhabern und dienen hier nur dem Wiedererkennen.`]}),e[17]=h):h=e[17];let g;return e[18]===u?g=e[19]:(g=(0,B.jsxs)(`div`,{className:`grid gap-5 md:gap-6 xl:grid-cols-2`,children:[u,d,f,p,m,h]}),e[18]=u,e[19]=g),g}function Ee(){window.location.hash===`#lucy`&&document.getElementById(`lucy`)?.scrollIntoView({block:`start`})}export{Te as EinstellungenSeite}; \ No newline at end of file diff --git a/frontend/dist/assets/Homelab-Cu4YNYuQ.js b/frontend/dist/assets/Homelab-Cu4YNYuQ.js new file mode 100644 index 0000000..98cc580 --- /dev/null +++ b/frontend/dist/assets/Homelab-Cu4YNYuQ.js @@ -0,0 +1 @@ +import{a as e,c as t,i as n,n as r,r as i,t as a}from"./dist-aE7UmubC.js";import{$ as o,B as s,D as c,I as l,L as u,R as d,T as f,X as p,Y as m,Z as h,_ as g,b as _,bt as v,g as y,ht as b,it as x,pt as S,r as C,w,x as T,y as E}from"./abfragen-pD_qBEtc.js";import{t as D}from"./chevron-right-DF8ikrVh.js";import{n as O,t as k}from"./undo-2-B8COJmAr.js";import{t as A}from"./button-BHVKhtQ6.js";import{$ as j,A as M,B as N,D as P,E as F,H as I,J as L,L as R,O as z,Q as B,V,X as H,Y as U,Z as W,at as G,ct as K,dt as q,et as ee,ft as te,ht as ne,it as re,j as ie,k as ae,m as oe,mt as se,n as ce,nt as le,ot as ue,p as J,pt as de,r as Y,rt as fe,s as pe,t as me,tt as he}from"./index-Bumw6krN.js";import{n as ge,r as _e,t as ve}from"./Lagekopf-DUjslgBy.js";var ye={name:`circle-dashed`,size:24,node:[[`path`,{d:`M10.1 2.182a10 10 0 0 1 3.8 0`,key:`5ilxe3`}],[`path`,{d:`M13.9 21.818a10 10 0 0 1-3.8 0`,key:`11zvb9`}],[`path`,{d:`M17.609 3.721a10 10 0 0 1 2.69 2.7`,key:`1iw5b2`}],[`path`,{d:`M2.182 13.9a10 10 0 0 1 0-3.8`,key:`c0bmvh`}],[`path`,{d:`M20.279 17.609a10 10 0 0 1-2.7 2.69`,key:`1ruxm7`}],[`path`,{d:`M21.818 10.1a10 10 0 0 1 0 3.8`,key:`qkgqxc`}],[`path`,{d:`M3.721 6.391a10 10 0 0 1 2.7-2.69`,key:`1mcia2`}],[`path`,{d:`M6.391 20.279a10 10 0 0 1-2.69-2.7`,key:`1fvljs`}]]};ye.node;var be=r(ye),xe={name:`loader-circle`,size:24,node:[[`path`,{d:`M21 12a9 9 0 1 1-6.219-8.56`,key:`13zald`}]],aliases:[`loader-2`]};xe.node;var Se=r(xe),Ce={name:`skip-forward`,size:24,node:[[`path`,{d:`M21 4v16`,key:`7j8fe9`}],[`path`,{d:`M6.029 4.285A2 2 0 0 0 3 6v12a2 2 0 0 0 3.029 1.715l9.997-5.998a2 2 0 0 0 .003-3.432z`,key:`zs4d6`}]]};Ce.node;var we=r(Ce),X=i(),Z=n(),Te={neu:{text:`Update verfügbar`,klasse:`text-cyan-text`},lokal:{text:`lokal gebaut`,klasse:`text-text-3`},aktuell:{text:`aktuell`,klasse:`text-text-3`},unbekannt:{text:`Update-Stand unklar`,klasse:`text-bernstein`}};function Ee(e){return e.zustand===`restarting`||e.gesund===!1?`rot`:e.zustand===`running`?`ok`:`aus`}function De(e){return e.gesund===!1?`ungesund`:e.zustand===`restarting`?`startet immer wieder neu`:e.zustand===`running`?e.gesund?`läuft, gesund`:`läuft`:e.zustand===`exited`?`beendet`:e.zustand===`paused`?`angehalten`:e.zustand}var Oe=e=>(e??``).split(`/`).at(-1)?.split(`:`)[0]??``;function ke(e){let t=e.luecken;return!t||!t.kritisch&&!t.hoch?null:`${[t.kritisch?`${t.kritisch} kritische`:null,t.hoch?`${t.hoch} hohe`:null].filter(Boolean).join(`, `)} Lücken`}function Ae(e){let t=(0,X.c)(42),{c:n}=e,r=Te[n.update]??Te.unbekannt,i;t[0]===n?i=t[1]:(i=ke(n),t[0]=n,t[1]=i);let o=i,s;t[2]!==n.dienst||t[3]!==n.image?(s=N({art:`container`,name:n.dienst??Oe(n.image)}),t[2]=n.dienst,t[3]=n.image,t[4]=s):s=t[4];let c;t[5]===n?c=t[6]:(c=Ee(n),t[5]=n,t[6]=c);let l;t[7]!==s||t[8]!==c?(l=(0,Z.jsx)(R,{bild:s,groesse:`sm`,punkt:c}),t[7]=s,t[8]=c,t[9]=l):l=t[9];let u;t[10]===n.name?u=t[11]:(u=(0,Z.jsx)(`span`,{className:`truncate text-[14.5px] font-medium`,children:n.name}),t[10]=n.name,t[11]=u);let d;t[12]===n.image?d=t[13]:(d=(0,Z.jsx)(`span`,{className:`truncate text-[12.5px] text-text-3`,children:n.image}),t[12]=n.image,t[13]=d);let f;t[14]!==n.luecken?.kritisch||t[15]!==o?(f=o&&(0,Z.jsx)(`span`,{className:a(`truncate text-[12.5px]`,n.luecken?.kritisch?`text-rot-text`:`text-bernstein`),children:o}),t[14]=n.luecken?.kritisch,t[15]=o,t[16]=f):f=t[16];let p;t[17]!==u||t[18]!==d||t[19]!==f?(p=(0,Z.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col`,children:[u,d,f]}),t[17]=u,t[18]=d,t[19]=f,t[20]=p):p=t[20];let m;t[21]===n?m=t[22]:(m=Ee(n)===`rot`?`text-rot-text`:`text-text-2`,t[21]=n,t[22]=m);let h;t[23]===m?h=t[24]:(h=a(`text-[13px]`,m),t[23]=m,t[24]=h);let g;t[25]===n?g=t[26]:(g=De(n),t[25]=n,t[26]=g);let _;t[27]!==h||t[28]!==g?(_=(0,Z.jsx)(`span`,{className:h,children:g}),t[27]=h,t[28]=g,t[29]=_):_=t[29];let v;t[30]===r.klasse?v=t[31]:(v=a(`text-[12px]`,r.klasse),t[30]=r.klasse,t[31]=v);let y;t[32]!==v||t[33]!==r.text?(y=(0,Z.jsx)(`span`,{className:v,children:r.text}),t[32]=v,t[33]=r.text,t[34]=y):y=t[34];let b;t[35]!==_||t[36]!==y?(b=(0,Z.jsxs)(`span`,{className:`flex shrink-0 flex-col items-end text-right`,children:[_,y]}),t[35]=_,t[36]=y,t[37]=b):b=t[37];let x;return t[38]!==b||t[39]!==l||t[40]!==p?(x=(0,Z.jsxs)(`li`,{className:`flex min-w-0 items-center gap-3 border-t border-white/[0.06] py-2.5 first:border-t-0`,children:[l,p,b]}),t[38]=b,t[39]=l,t[40]=p,t[41]=x):x=t[41],x}function je(e){let t=(0,X.c)(4),{lage:n}=e;if(!n.verfuegbar||n.stacks.length===0)return null;let r;t[0]===n.stacks?r=t[1]:(r=n.stacks.map(Me),t[0]=n.stacks,t[1]=r);let i;return t[2]===r?i=t[3]:(i=(0,Z.jsx)(`div`,{className:`grid gap-3 md:grid-cols-2 2xl:grid-cols-3`,children:r}),t[2]=r,t[3]=i),i}function Me(e){let t=e.container.filter(Fe).length,n=e.container.filter(Pe).length;return(0,Z.jsxs)(`section`,{"aria-label":`Stack ${e.name}`,className:`flaeche-innen flex min-w-0 flex-col rounded-2xl px-4 py-3`,children:[(0,Z.jsxs)(`div`,{className:`flex items-baseline justify-between gap-3 pb-1`,children:[(0,Z.jsx)(`h3`,{className:`m-0 truncate text-[15px] font-semibold`,children:e.name}),(0,Z.jsxs)(`span`,{className:`shrink-0 text-[12.5px] text-text-3`,children:[t,` von `,e.container.length,` laufen`,n?` · ${n} mit Update`:``]})]}),(0,Z.jsx)(`ul`,{className:`m-0 list-none p-0`,children:e.container.map(Ne)})]},e.name)}function Ne(e){return(0,Z.jsx)(Ae,{c:e},e.id)}function Pe(e){return e.update===`neu`}function Fe(e){return e.zustand===`running`}var Ie=`md:grid-cols-[minmax(0,1.35fr)_110px_minmax(0,1fr)_minmax(0,1.2fr)_minmax(0,1fr)_90px]`,Le=e=>(e/1e9).toFixed(1).replace(`.`,`,`);function Re(e){let t=(0,X.c)(20),{wert:n,gelb:r,rot:i,zusatz:o,unter:s}=e;if(n==null){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Z.jsx)(`span`,{className:`text-sm text-text-3`,children:`–`}),t[0]=e):e=t[0],e}let c=n>=i?`var(--rot)`:n>=r?`var(--bernstein)`:`color-mix(in srgb, var(--lab) 80%, transparent)`,l=n>=i?`text-rot-text`:n>=r?`text-bernstein`:`text-text-2`,u;t[1]===l?u=t[2]:(u=a(`ziffern text-sm`,l),t[1]=l,t[2]=u);let d;t[3]===n?d=t[4]:(d=Math.round(n),t[3]=n,t[4]=d);let f;t[5]===o?f=t[6]:(f=o&&(0,Z.jsxs)(`span`,{className:`font-sans text-xs text-text-3`,children:[` · `,o]}),t[5]=o,t[6]=f);let p;t[7]!==u||t[8]!==d||t[9]!==f?(p=(0,Z.jsxs)(`span`,{className:u,children:[d,` %`,f]}),t[7]=u,t[8]=d,t[9]=f,t[10]=p):p=t[10];let m=`${Math.min(100,Math.max(2,n))}%`,h;t[11]!==c||t[12]!==m?(h=(0,Z.jsx)(`span`,{className:`h-1.5 w-full max-w-40 overflow-hidden rounded-full bg-white/[0.07]`,"aria-hidden":!0,children:(0,Z.jsx)(`span`,{className:`block h-full rounded-full`,style:{width:m,background:c}})}),t[11]=c,t[12]=m,t[13]=h):h=t[13];let g;t[14]===s?g=t[15]:(g=s&&(0,Z.jsx)(`span`,{className:a(`text-xs`,F[s.stufe]),children:s.text}),t[14]=s,t[15]=g);let _;return t[16]!==p||t[17]!==h||t[18]!==g?(_=(0,Z.jsxs)(`span`,{className:`flex min-w-0 flex-col gap-1.5`,children:[p,h,g]}),t[16]=p,t[17]=h,t[18]=g,t[19]=_):_=t[19],_}function ze(e){if(e.erreichbar===!1)return 0;let t=le(e);return t!==null&&t>=.8?1:e.art===`proxmox-host`?2:3}function Be(e){let t=(0,X.c)(4),{ziele:n,messwerte:r}=e,i;if(t[0]!==r||t[1]!==n){let e=new Map((r??[]).map(Ue)),o=new Map((r??[]).map(He)),s=[...n].sort(Ve),c;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,Z.jsxs)(`div`,{role:`row`,className:a(`etikett hidden gap-x-4 pb-2.5 text-[10.5px] tracking-[0.14em] text-text-3 md:grid`,Ie),children:[(0,Z.jsx)(`span`,{role:`columnheader`,children:`Gerät`}),(0,Z.jsx)(`span`,{role:`columnheader`,children:`Netz`}),(0,Z.jsx)(`span`,{role:`columnheader`,children:`CPU`}),(0,Z.jsx)(`span`,{role:`columnheader`,children:`Speicher`}),(0,Z.jsx)(`span`,{role:`columnheader`,children:`Platte`}),(0,Z.jsx)(`span`,{role:`columnheader`,children:`Läuft seit`})]}),t[3]=c):c=t[3],i=(0,Z.jsxs)(`div`,{role:`table`,"aria-label":`Zustand der Geräte`,className:`flex flex-col`,children:[c,s.map(t=>{let n=e.get(t.id),r=n?.platte??(le(t)===null?null:le(t)*100),i=n?.ram_used&&n.ram_total?`${Le(n.ram_used)} / ${Le(n.ram_total)} GB`:void 0;return(0,Z.jsxs)(`div`,{id:`geraet-${t.id}`,role:`row`,className:a(`grid scroll-mt-24 grid-cols-2 gap-x-4 gap-y-2 border-t border-white/[0.06] py-3 md:items-center`,Ie),children:[(0,Z.jsxs)(`div`,{role:`rowheader`,className:`col-span-2 flex min-w-0 items-center gap-3 md:col-span-1`,children:[(0,Z.jsx)(R,{bild:N(t),groesse:`sm`,punkt:t.erreichbar===!1?`rot`:t.erreichbar?`ok`:null}),(0,Z.jsxs)(`span`,{className:`flex min-w-0 flex-col`,children:[(0,Z.jsx)(se,{to:`/homelab/monitoring`,hash:t.id,className:`text-[15px] font-semibold break-words hover:text-lab-text`,children:t.name}),(0,Z.jsxs)(`span`,{className:`flex flex-wrap gap-x-2 text-[13px] text-text-3`,children:[U(t)!==t.name&&(0,Z.jsx)(`span`,{children:U(t)}),(0,Z.jsx)(se,{to:`/homelab/protokoll`,hash:t.id,className:`text-lab-text hover:underline`,children:`Zeitleiste`})]})]})]}),(0,Z.jsxs)(`span`,{role:`cell`,className:a(`flex items-center gap-1.5 text-[13px]`,t.erreichbar===!1?`text-rot-text`:`text-text-3`),children:[t.erreichbar!==null&&(0,Z.jsx)(`span`,{"aria-hidden":!0,className:a(`size-1.5 rounded-full`,t.erreichbar?`bg-gruen`:`bg-rot`)}),t.erreichbar===null?`–`:t.erreichbar?`erreichbar`:`antwortet nicht`]}),(0,Z.jsxs)(`span`,{role:`cell`,children:[(0,Z.jsx)(`span`,{className:`text-xs text-text-3 md:hidden`,children:`CPU `}),(0,Z.jsx)(Re,{wert:n?.cpu,gelb:85,rot:95})]}),(0,Z.jsxs)(`span`,{role:`cell`,children:[(0,Z.jsx)(`span`,{className:`text-xs text-text-3 md:hidden`,children:`Speicher `}),(0,Z.jsx)(Re,{wert:n?.ram,gelb:85,rot:95,zusatz:i})]}),(0,Z.jsxs)(`span`,{role:`cell`,children:[(0,Z.jsx)(`span`,{className:`text-xs text-text-3 md:hidden`,children:`Platte `}),(0,Z.jsx)(Re,{wert:r,gelb:80,rot:90,unter:P(o.get(t.id))})]}),(0,Z.jsxs)(`span`,{role:`cell`,className:`ziffern text-sm text-text-2`,children:[(0,Z.jsx)(`span`,{className:`font-sans text-xs text-text-3 md:hidden`,children:`Läuft seit `}),ie(n?.uptime_s)]})]},t.id)})]}),t[0]=r,t[1]=n,t[2]=i}else i=t[2];return i}function Ve(e,t){return ze(e)-ze(t)}function He(e){return[e.id,e.prognose?.platte]}function Ue(e){return[e.id,e.aktuell]}function We(e){let t=(0,X.c)(15),{lage:n,ziele:r,imUpdate:i,onAnsehen:a,onGeraet:o}=e,s=n.art,c=n.oben,l=n.mitte,u=n.unten,d=n.ziel!==null,f;if(t[0]!==i||t[1]!==o||t[2]!==r){let e;t[4]!==i||t[5]!==o?(e=e=>{let t=j(e,i.has(e.id)),n=H(e.kennzahl);return(0,Z.jsx)(ve,{bild:N(e),name:W(e),wert:t.wert,zustand:t.zustand,zahl:n?{text:n,stufe:e.kennzahl?.stufe}:null,onClick:()=>o(e,t.zustand===`info`)},e.id)},t[4]=i,t[5]=o,t[6]=e):e=t[6],f=r.map(e),t[0]=i,t[1]=o,t[2]=r,t[3]=f}else f=t[3];let p;return t[7]!==n.art||t[8]!==n.mitte||t[9]!==n.oben||t[10]!==n.unten||t[11]!==a||t[12]!==d||t[13]!==f?(p=(0,Z.jsx)(ge,{art:s,oben:c,mitte:l,unten:u,aktiv:d,onAnsehen:a,label:`Lage im Homelab`,children:f}),t[7]=n.art,t[8]=n.mitte,t[9]=n.oben,t[10]=n.unten,t[11]=a,t[12]=d,t[13]=f,t[14]=p):p=t[14],p}var Q=t(e(),1),Ge={skript:`Updates über das Community-Script`,"eigene-oberflaeche":`Updates über die eigene Oberfläche der App`,pakete:`Updates über die Pakete im Gast`};function Ke(e){let t=(0,X.c)(60),{g:n,gesperrt:r,onWahl:i}=e,a=n.app?.kennung??n.hostname??n.name,o;t[0]!==n.art||t[1]!==a?(o=N({art:n.art,name:a}),t[0]=n.art,t[1]=a,t[2]=o):o=t[2];let s=o,c=n.app?`${n.app.name}${n.app.quelle?` (GitHub ${n.app.quelle})`:``}`:`App unbekannt`,l=n.app?Ge[n.app.weg]??n.app.weg:null,u=n.app?.adresse?`Weboberfläche ${n.app.adresse} wird geprüft`:n.app?`Weboberfläche nicht gefunden, keine Webprüfung`:null,d;t[3]!==c||t[4]!==l||t[5]!==u?(d=[c,l,u].filter(Boolean),t[3]=c,t[4]=l,t[5]=u,t[6]=d):d=t[6];let f=d,p=n.status===`running`?`ok`:`aus`,m;t[7]!==s||t[8]!==p?(m=(0,Z.jsx)(R,{bild:s,groesse:`md`,punkt:p}),t[7]=s,t[8]=p,t[9]=m):m=t[9];let h;t[10]===n.name?h=t[11]:(h=(0,Z.jsx)(`span`,{className:`text-[15px] font-semibold break-words`,children:n.name}),t[10]=n.name,t[11]=h);let g=n.art===`container`?`Container`:`VM`,_=n.hostname&&n.hostname!==n.name?` · „${n.hostname}“`:``,v;t[12]===n.erstmals?v=t[13]:(v=n.erstmals?` · entdeckt ${b(new Date(n.erstmals*1e3).toISOString()).toLowerCase()}`:``,t[12]=n.erstmals,t[13]=v);let y;t[14]!==n.vmid||t[15]!==g||t[16]!==_||t[17]!==v?(y=(0,Z.jsxs)(`span`,{className:`text-[13px] text-text-3`,children:[g,` `,n.vmid,_,v]}),t[14]=n.vmid,t[15]=g,t[16]=_,t[17]=v,t[18]=y):y=t[18];let x;t[19]!==y||t[20]!==h?(x=(0,Z.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-0.5`,children:[h,y]}),t[19]=y,t[20]=h,t[21]=x):x=t[21];let S;t[22]!==x||t[23]!==m?(S=(0,Z.jsxs)(`div`,{className:`flex items-start gap-3`,children:[m,x]}),t[22]=x,t[23]=m,t[24]=S):S=t[24];let C;t[25]===f?C=t[26]:(C=f.map(qe),t[25]=f,t[26]=C);let w;t[27]!==n.community_script||t[28]!==n.freigegeben?(w=n.freigegeben&&(0,Z.jsxs)(`li`,{children:[`Schon freigegeben (Etikett `,n.community_script?`community-script`:`watcher`,`).`]}),t[27]=n.community_script,t[28]=n.freigegeben,t[29]=w):w=t[29];let T;t[30]===n.ohne_sicherung?T=t[31]:(T=n.ohne_sicherung&&(0,Z.jsx)(`li`,{className:`text-bernstein`,children:`In keinem Sicherungsauftrag — in Proxmox: Rechenzentrum → Backup → den Auftrag bearbeiten.`}),t[30]=n.ohne_sicherung,t[31]=T);let E;t[32]!==C||t[33]!==w||t[34]!==T?(E=(0,Z.jsxs)(`ul`,{className:`m-0 flex list-none flex-col gap-1 p-0 text-sm text-text-2`,children:[C,w,T]}),t[32]=C,t[33]=w,t[34]=T,t[35]=E):E=t[35];let D;t[36]!==n.ausgeschlossen||t[37]!==n.freigegeben||t[38]!==r||t[39]!==i?(D=!n.freigegeben&&!n.ausgeschlossen&&(0,Z.jsx)(A,{size:`sm`,disabled:r,onClick:()=>i(`freigeben`),children:`Für Updates freigeben`}),t[36]=n.ausgeschlossen,t[37]=n.freigegeben,t[38]=r,t[39]=i,t[40]=D):D=t[40];let O=n.freigegeben?`default`:`outline`,k;t[41]===i?k=t[42]:(k=()=>i(`beobachten`),t[41]=i,t[42]=k);let j=n.freigegeben?`Übernehmen`:`Nur beobachten`,M;t[43]!==r||t[44]!==O||t[45]!==k||t[46]!==j?(M=(0,Z.jsx)(A,{variant:O,size:`sm`,disabled:r,onClick:k,children:j}),t[43]=r,t[44]=O,t[45]=k,t[46]=j,t[47]=M):M=t[47];let P;t[48]!==n.ausgeschlossen||t[49]!==r||t[50]!==i?(P=!n.ausgeschlossen&&(0,Z.jsx)(A,{variant:`ghost`,size:`sm`,disabled:r,onClick:()=>i(`ausschliessen`),children:`Nicht anfassen`}),t[48]=n.ausgeschlossen,t[49]=r,t[50]=i,t[51]=P):P=t[51];let F;t[52]!==D||t[53]!==M||t[54]!==P?(F=(0,Z.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[D,M,P]}),t[52]=D,t[53]=M,t[54]=P,t[55]=F):F=t[55];let I;return t[56]!==S||t[57]!==E||t[58]!==F?(I=(0,Z.jsxs)(`li`,{className:`flaeche-innen flex flex-col gap-3 rounded-2xl p-4`,children:[S,E,F]}),t[56]=S,t[57]=E,t[58]=F,t[59]=I):I=t[59],I}function qe(e){return(0,Z.jsx)(`li`,{children:e},e)}var Je={freigeben:{titel:`Für Updates freigeben?`,text:`Der Orchestrator setzt in Proxmox das Etikett „watcher“. Danach darf er dort Snapshots anlegen und Updates einspielen — immer erst nach deinem Klick, mit Snapshot vorher und Rückweg bei Rot.`,knopf:`Freigeben`},beobachten:{titel:`Nur beobachten?`,text:``,knopf:`Übernehmen`},ausschliessen:{titel:`Nicht anfassen?`,text:`Der Orchestrator setzt in Proxmox das Etikett „watcher-aus“ und lässt das Gerät dann auch bei „Alle aktualisieren“ aus.`,knopf:`Nicht anfassen`}};function Ye(e){let t=(0,X.c)(29),{s:n,gesperrt:r,onWahl:i}=e,a;t[0]===n.name?a=t[1]:(a=N({art:`container`,name:n.name}),t[0]=n.name,t[1]=a);let o;t[2]===a?o=t[3]:(o=(0,Z.jsx)(R,{bild:a,groesse:`md`,punkt:`ok`}),t[2]=a,t[3]=o);let s;t[4]===n.name?s=t[5]:(s=(0,Z.jsxs)(`span`,{className:`text-[15px] font-semibold break-words`,children:[`Docker-Stack `,n.name]}),t[4]=n.name,t[5]=s);let c;t[6]===n.erstmals?c=t[7]:(c=n.erstmals?` · entdeckt ${b(new Date(n.erstmals*1e3).toISOString()).toLowerCase()}`:``,t[6]=n.erstmals,t[7]=c);let l;t[8]===c?l=t[9]:(l=(0,Z.jsxs)(`span`,{className:`text-[13px] text-text-3`,children:[`unter Arcane`,c]}),t[8]=c,t[9]=l);let u;t[10]!==s||t[11]!==l?(u=(0,Z.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-0.5`,children:[s,l]}),t[10]=s,t[11]=l,t[12]=u):u=t[12];let d;t[13]!==o||t[14]!==u?(d=(0,Z.jsxs)(`div`,{className:`flex items-start gap-3`,children:[o,u]}),t[13]=o,t[14]=u,t[15]=d):d=t[15];let f;t[16]===n.container?f=t[17]:(f=n.container.join(`, `)||`–`,t[16]=n.container,t[17]=f);let p;t[18]===f?p=t[19]:(p=(0,Z.jsxs)(`p`,{className:`m-0 text-sm break-words text-text-2`,children:[`Container: `,f]}),t[18]=f,t[19]=p);let m;t[20]===i?m=t[21]:(m=()=>i(`beobachten`),t[20]=i,t[21]=m);let h;t[22]!==r||t[23]!==m?(h=(0,Z.jsx)(A,{size:`sm`,className:`self-start`,disabled:r,onClick:m,children:`Übernehmen`}),t[22]=r,t[23]=m,t[24]=h):h=t[24];let g;return t[25]!==h||t[26]!==d||t[27]!==p?(g=(0,Z.jsxs)(`li`,{className:`flaeche-innen flex flex-col gap-3 rounded-2xl p-4`,children:[d,p,h]}),t[25]=h,t[26]=d,t[27]=p,t[28]=g):g=t[28],g}function Xe(e){let t=(0,X.c)(38),{geraete:n,stacks:r,gesperrt:i,onWahl:o}=e,s;t[0]===r?s=t[1]:(s=r===void 0?[]:r,t[0]=r,t[1]=s);let c=s,[l,u]=(0,Q.useState)(null),d=n.length+c.length;if(d===0)return null;let f;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(f=a(`-mt-2 text-[15px] text-text-2`),t[2]=f):f=t[2];let p=d===1?`Eins kennt`:`${d} kennt`,m=d===1?` es`:` sie`,h;t[3]!==p||t[4]!==m?(h=(0,Z.jsxs)(`p`,{className:f,children:[p,` der Orchestrator noch nicht. Entscheide, ob er`,m,` nur beobachtet oder auch aktualisieren darf.`]}),t[3]=p,t[4]=m,t[5]=h):h=t[5];let g;if(t[6]!==n||t[7]!==i||t[8]!==o){let e;t[10]!==i||t[11]!==o?(e=e=>(0,Z.jsx)(Ke,{g:e,gesperrt:i,onWahl:t=>t===`beobachten`?o(e.id,t):u({g:e,wahl:t})},e.id),t[10]=i,t[11]=o,t[12]=e):e=t[12],g=n.map(e),t[6]=n,t[7]=i,t[8]=o,t[9]=g}else g=t[9];let _;if(t[13]!==i||t[14]!==o||t[15]!==c){let e;t[17]!==i||t[18]!==o?(e=e=>(0,Z.jsx)(Ye,{s:e,gesperrt:i,onWahl:t=>o(e.id,t)},e.id),t[17]=i,t[18]=o,t[19]=e):e=t[19],_=c.map(e),t[13]=i,t[14]=o,t[15]=c,t[16]=_}else _=t[16];let v;t[20]!==g||t[21]!==_?(v=(0,Z.jsxs)(`ul`,{className:`m-0 grid list-none gap-3 p-0 md:grid-cols-2`,children:[g,_]}),t[20]=g,t[21]=_,t[22]=v):v=t[22];let y=!!l,b=l?`${l.g.name}: ${Je[l.wahl].titel}`:``,x=l?Je[l.wahl].text:``,S=l?Je[l.wahl].knopf:``,C;t[23]===Symbol.for(`react.memo_cache_sentinel`)?(C=()=>u(null),t[23]=C):C=t[23];let w;t[24]!==l||t[25]!==o?(w=()=>{l&&o(l.g.id,l.wahl),u(null)},t[24]=l,t[25]=o,t[26]=w):w=t[26];let T;t[27]!==i||t[28]!==y||t[29]!==b||t[30]!==x||t[31]!==S||t[32]!==w?(T=(0,Z.jsx)(oe,{offen:y,titel:b,text:x,knopf:S,gesperrt:i,onNein:C,onJa:w}),t[27]=i,t[28]=y,t[29]=b,t[30]=x,t[31]=S,t[32]=w,t[33]=T):T=t[33];let E;return t[34]!==T||t[35]!==h||t[36]!==v?(E=(0,Z.jsxs)(J,{titel:`Neu entdeckt`,id:`neu`,children:[h,v,T]}),t[34]=T,t[35]=h,t[36]=v,t[37]=E):E=t[37],E}var Ze=`md:grid-cols-[minmax(0,1.3fr)_minmax(0,1fr)_minmax(0,1.1fr)_minmax(0,1.1fr)]`,Qe=e=>b(new Date(e*1e3).toISOString()).toLowerCase();function $e(e){let t=(0,X.c)(8),{titel:n,children:r,className:i}=e,o;t[0]===i?o=t[1]:(o=a(`text-sm text-text-2`,i),t[0]=i,t[1]=o);let s;t[2]===n?s=t[3]:(s=(0,Z.jsxs)(`span`,{className:`text-xs text-text-3 md:hidden`,children:[n,` `]}),t[2]=n,t[3]=s);let c;return t[4]!==r||t[5]!==o||t[6]!==s?(c=(0,Z.jsxs)(`span`,{role:`cell`,className:o,children:[s,r]}),t[4]=r,t[5]=o,t[6]=s,t[7]=c):c=t[7],c}function et(e){let t=(0,X.c)(39),{g:n}=e,r=n.geprueft?.zustand===`failed`,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=a(`grid grid-cols-2 gap-x-4 gap-y-1.5 border-t border-white/[0.06] py-3 md:items-start`,Ze),t[0]=i):i=t[0];let o;t[1]===n.name?o=t[2]:(o=(0,Z.jsx)(`span`,{className:`text-[15px] font-semibold break-words`,children:n.name}),t[1]=n.name,t[2]=o);let s;t[3]===n.auftrag?s=t[4]:(s=!n.auftrag&&(0,Z.jsx)(`span`,{className:`text-[13px] text-bernstein`,children:`in keinem Sicherungsauftrag`}),t[3]=n.auftrag,t[4]=s);let c;t[5]!==o||t[6]!==s?(c=(0,Z.jsxs)(`span`,{role:`rowheader`,className:`col-span-2 flex min-w-0 flex-col md:col-span-1`,children:[o,s]}),t[5]=o,t[6]=s,t[7]=c):c=t[7];let l=n.auftrag&&!n.frisch&&`text-bernstein`,u;t[8]===l?u=t[9]:(u=a(l),t[8]=l,t[9]=u);let d;t[10]===n.zuletzt?d=t[11]:(d=n.zuletzt?(0,Z.jsx)(`span`,{className:`ziffern`,children:v(n.zuletzt)}):`noch nie`,t[10]=n.zuletzt,t[11]=d);let f;t[12]!==u||t[13]!==d?(f=(0,Z.jsx)($e,{titel:`Gesichert`,className:u,children:d}),t[12]=u,t[13]=d,t[14]=f):f=t[14];let p=r&&`text-rot-text`,m;t[15]===p?m=t[16]:(m=a(p),t[15]=p,t[16]=m);let h;t[17]!==r||t[18]!==n.geprueft?(h=n.geprueft?(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`span`,{className:`ziffern`,children:Qe(n.geprueft.zeit)}),r?` · beschädigt`:` · in Ordnung`]}):(0,Z.jsx)(`span`,{className:`text-text-3`,children:`noch nicht`}),t[17]=r,t[18]=n.geprueft,t[19]=h):h=t[19];let g;t[20]!==r||t[21]!==n.defekt.length?(g=n.defekt.length>0&&!r&&(0,Z.jsx)(`span`,{className:`block text-xs text-bernstein`,children:n.defekt.length===1?`eine ältere Sicherung beschädigt`:`${n.defekt.length} ältere Sicherungen beschädigt`}),t[20]=r,t[21]=n.defekt.length,t[22]=g):g=t[22];let _;t[23]!==m||t[24]!==h||t[25]!==g?(_=(0,Z.jsxs)($e,{titel:`Vom PBS geprüft`,className:m,children:[h,g]}),t[23]=m,t[24]=h,t[25]=g,t[26]=_):_=t[26];let y=n.probe&&!n.probe.ok&&`text-rot-text`,b;t[27]===y?b=t[28]:(b=a(y),t[27]=y,t[28]=b);let x;t[29]===n.probe?x=t[30]:(x=n.probe?(0,Z.jsxs)(Z.Fragment,{children:[n.probe.ok?`gelungen`:`gescheitert`,` `,(0,Z.jsx)(`span`,{className:`ziffern`,children:v(n.probe.zeit)}),n.probe.fehler&&(0,Z.jsx)(`span`,{className:`block text-xs break-words`,children:n.probe.fehler})]}):(0,Z.jsx)(`span`,{className:`text-text-3`,children:`noch keine`}),t[29]=n.probe,t[30]=x);let S;t[31]!==b||t[32]!==x?(S=(0,Z.jsx)($e,{titel:`Probe`,className:b,children:x}),t[31]=b,t[32]=x,t[33]=S):S=t[33];let C;return t[34]!==_||t[35]!==S||t[36]!==c||t[37]!==f?(C=(0,Z.jsxs)(`div`,{role:`row`,className:i,children:[c,f,_,S]}),t[34]=_,t[35]=S,t[36]=c,t[37]=f,t[38]=C):C=t[38],C}function tt(e,t){let n=t.filter(e=>!e.auftrag).length,r=[n?`${n} ohne Auftrag`:`alle ${t.length} in einem Auftrag`],i=t.filter(e=>e.probe&&!e.probe.ok).length;return i?r.push(`Probe bei ${i} gescheitert`):e.probe?.zeit&&r.push(`Probe ${v(e.probe.zeit)}`),r.join(` · `)}function nt(e){let t=(0,X.c)(27),{s:n,onProbe:r,probeGesperrt:i}=e,o=i!==void 0&&i,s;t[0]===n.geraete?s=t[1]:(s=n.geraete??[],t[0]=n.geraete,t[1]=s);let c=s;if(c.length===0)return null;let l;t[2]===c?l=t[3]:(l=c.some(it),t[2]=c,t[3]=l);let u=l,d;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,Z.jsxs)(`span`,{className:`flex items-center gap-2 text-[15px] font-medium`,children:[(0,Z.jsx)(D,{className:`size-4 text-text-3 transition-transform group-open:rotate-90`,"aria-hidden":!0}),`Sicherungen je Gerät`]}),t[4]=d):d=t[4];let f=u?`text-bernstein`:`text-text-2`,p;t[5]===f?p=t[6]:(p=a(`text-right text-sm`,f),t[5]=f,t[6]=p);let m;t[7]!==c||t[8]!==n?(m=tt(n,c),t[7]=c,t[8]=n,t[9]=m):m=t[9];let h;t[10]!==p||t[11]!==m?(h=(0,Z.jsxs)(`summary`,{className:`flex min-h-12 cursor-pointer list-none items-center justify-between gap-3 [&::-webkit-details-marker]:hidden`,children:[d,(0,Z.jsx)(`span`,{className:p,children:m})]}),t[10]=p,t[11]=m,t[12]=h):h=t[12];let g;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,Z.jsx)(`p`,{className:`m-0 pb-1 text-sm text-text-2`,children:`Der PBS prüft die Sicherungen selbst (Prüfauftrag im PBS). Die Probe öffnet einmal die Woche die jüngste Sicherung jedes Geräts, nur lesend: Die Konfiguration muss sich daraus lesen lassen, bei Containern auch der Dateibaum.`}),t[13]=g):g=t[13];let _;t[14]!==r||t[15]!==o?(_=r&&(0,Z.jsx)(A,{variant:`outline`,size:`sm`,className:`my-2`,disabled:o,onClick:r,children:`Jetzt prüfen`}),t[14]=r,t[15]=o,t[16]=_):_=t[16];let v;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(v=(0,Z.jsxs)(`div`,{role:`row`,className:a(`etikett hidden gap-x-4 pt-1 pb-2.5 text-[10.5px] tracking-[0.14em] text-text-3 md:grid`,Ze),children:[(0,Z.jsx)(`span`,{role:`columnheader`,children:`Gerät`}),(0,Z.jsx)(`span`,{role:`columnheader`,children:`Gesichert`}),(0,Z.jsx)(`span`,{role:`columnheader`,children:`Vom PBS geprüft`}),(0,Z.jsx)(`span`,{role:`columnheader`,children:`Probe`})]}),t[17]=v):v=t[17];let y;t[18]===c?y=t[19]:(y=c.map(rt),t[18]=c,t[19]=y);let b;t[20]===y?b=t[21]:(b=(0,Z.jsxs)(`div`,{role:`table`,"aria-label":`Sicherungen je Gerät`,className:`flex flex-col`,children:[v,y]}),t[20]=y,t[21]=b);let x;return t[22]!==u||t[23]!==_||t[24]!==b||t[25]!==h?(x=(0,Z.jsxs)(`details`,{open:u,className:`flaeche-innen group rounded-2xl px-4 open:pb-3`,children:[h,g,_,b]}),t[22]=u,t[23]=_,t[24]=b,t[25]=h,t[26]=x):x=t[26],x}function rt(e){return(0,Z.jsx)(et,{g:e},e.ziel)}function it(e){return!e.auftrag||e.defekt.length>0||e.probe&&!e.probe.ok}var at={ok:`gruen`,gelb:`bernstein`,rot:`rot`,keine:`grau`},ot={ok:`color-mix(in srgb, var(--lab) 80%, transparent)`,gelb:`var(--bernstein)`,rot:`var(--rot)`},st=e=>b(new Date(e*1e3).toISOString());function ct(e){let t=(0,X.c)(11),{anteil:n,stufe:r,name:i}=e,a;t[0]===n?a=t[1]:(a=Math.round(n*100),t[0]=n,t[1]=a);let o=a,s=`${i}: ${o} % belegt`,c=`${Math.min(100,Math.max(2,o))}%`,l=ot[r],u;t[2]!==c||t[3]!==l?(u=(0,Z.jsx)(`span`,{className:`block h-full rounded-full`,style:{width:c,background:l}}),t[2]=c,t[3]=l,t[4]=u):u=t[4];let d,f;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,Z.jsx)(`span`,{"aria-hidden":!0,className:`absolute inset-y-0 left-[80%] w-px bg-bernstein/70`}),f=(0,Z.jsx)(`span`,{"aria-hidden":!0,className:`absolute inset-y-0 left-[90%] w-px bg-rot/80`}),t[5]=d,t[6]=f):(d=t[5],f=t[6]);let p;return t[7]!==o||t[8]!==s||t[9]!==u?(p=(0,Z.jsxs)(`div`,{role:`meter`,"aria-label":s,"aria-valuenow":o,"aria-valuemin":0,"aria-valuemax":100,className:`relative h-2 w-full overflow-hidden rounded-full bg-white/[0.07]`,children:[u,d,f]}),t[7]=o,t[8]=s,t[9]=u,t[10]=p):p=t[10],p}function lt(e){let t=(0,X.c)(11),{v:n}=e;if(n?.grund===`gleich`){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Z.jsx)(`p`,{className:`text-xs text-text-3`,children:`Belegung gleichbleibend`}),t[0]=e):e=t[0],e}let r;t[1]===n?r=t[2]:(r=ae(n),t[1]=n,t[2]=r);let i=r;if(!i)return null;let o=F[M(n)],s;t[3]===o?s=t[4]:(s=a(`ziffern text-xs`,o),t[3]=o,t[4]=s);let c;t[5]===n?c=t[6]:(c=z(n),t[5]=n,t[6]=c);let l;return t[7]!==s||t[8]!==c||t[9]!==i?(l=(0,Z.jsxs)(`p`,{className:s,children:[c,` · `,i]}),t[7]=s,t[8]=c,t[9]=i,t[10]=l):l=t[10],l}function $(e){let t=(0,X.c)(16),{titel:n,unter:r,chip:i,chipText:a,children:o}=e,s;t[0]===n?s=t[1]:(s=(0,Z.jsx)(`span`,{className:`text-[15px] font-semibold break-words`,children:n}),t[0]=n,t[1]=s);let c;t[2]===r?c=t[3]:(c=r&&(0,Z.jsx)(`span`,{className:`text-sm break-words text-text-3`,children:r}),t[2]=r,t[3]=c);let l;t[4]!==s||t[5]!==c?(l=(0,Z.jsxs)(`div`,{className:`flex min-w-0 flex-col`,children:[s,c]}),t[4]=s,t[5]=c,t[6]=l):l=t[6];let u;t[7]!==i||t[8]!==a?(u=(0,Z.jsx)(V,{art:i,children:a}),t[7]=i,t[8]=a,t[9]=u):u=t[9];let d;t[10]!==l||t[11]!==u?(d=(0,Z.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[l,u]}),t[10]=l,t[11]=u,t[12]=d):d=t[12];let f;return t[13]!==o||t[14]!==d?(f=(0,Z.jsxs)(`div`,{className:`flaeche-innen flex min-w-0 flex-col gap-3 rounded-2xl p-4`,children:[d,o]}),t[13]=o,t[14]=d,t[15]=f):f=t[15],f}function ut(e){let t=(0,X.c)(34),{p:n}=e,r;t[0]===n.anteil?r=t[1]:(r=Math.round(n.anteil*100),t[0]=n.anteil,t[1]=r);let i=r,o=`Speicherpool ${n.speicher}`,s=at[n.stufe],c=me[n.stufe],l=Math.max(n.anteil,n.meta_anteil??0),u=`Speicherpool ${n.speicher}`,d;t[2]!==n.stufe||t[3]!==l||t[4]!==u?(d=(0,Z.jsx)(ct,{anteil:l,stufe:n.stufe,name:u}),t[2]=n.stufe,t[3]=l,t[4]=u,t[5]=d):d=t[5];let f;t[6]===n.belegt?f=t[7]:(f=Y(n.belegt),t[6]=n.belegt,t[7]=f);let p;t[8]===n.gesamt?p=t[9]:(p=Y(n.gesamt),t[8]=n.gesamt,t[9]=p);let m=n.stufe!==`ok`&&`text-foreground`,h;t[10]===m?h=t[11]:(h=a(m),t[10]=m,t[11]=h);let g;t[12]===n.frei?g=t[13]:(g=Y(n.frei),t[12]=n.frei,t[13]=g);let _;t[14]!==h||t[15]!==g?(_=(0,Z.jsxs)(`span`,{className:h,children:[g,` frei`]}),t[14]=h,t[15]=g,t[16]=_):_=t[16];let v;t[17]!==i||t[18]!==_||t[19]!==f||t[20]!==p?(v=(0,Z.jsxs)(`p`,{className:`ziffern text-sm text-text-2`,children:[i,` % · `,f,` von `,p,` · `,_]}),t[17]=i,t[18]=_,t[19]=f,t[20]=p,t[21]=v):v=t[21];let y;t[22]===n.meta_anteil?y=t[23]:(y=n.meta_anteil!==null&&(0,Z.jsxs)(`p`,{className:`text-xs text-text-3`,children:[`Metadaten `,Math.round(n.meta_anteil*100),` % belegt`]}),t[22]=n.meta_anteil,t[23]=y);let b;t[24]===n.vorhersage?b=t[25]:(b=(0,Z.jsx)(lt,{v:n.vorhersage}),t[24]=n.vorhersage,t[25]=b);let x;return t[26]!==v||t[27]!==y||t[28]!==b||t[29]!==o||t[30]!==s||t[31]!==c||t[32]!==d?(x=(0,Z.jsxs)($,{titel:o,unter:`Platten der Container und VMs`,chip:s,chipText:c,children:[d,v,y,b]}),t[26]=v,t[27]=y,t[28]=b,t[29]=o,t[30]=s,t[31]=c,t[32]=d,t[33]=x):x=t[33],x}function dt(e){let t=(0,X.c)(24),{s:n}=e,r=at[n.stufe],i=me[n.stufe],a;t[0]!==n.anteil||t[1]!==n.stufe?(a=(0,Z.jsx)(ct,{anteil:n.anteil,stufe:n.stufe,name:`Systemplatte des Proxmox-Hosts`}),t[0]=n.anteil,t[1]=n.stufe,t[2]=a):a=t[2];let o;t[3]===n.anteil?o=t[4]:(o=Math.round(n.anteil*100),t[3]=n.anteil,t[4]=o);let s;t[5]===n.belegt?s=t[6]:(s=Y(n.belegt),t[5]=n.belegt,t[6]=s);let c;t[7]===n.gesamt?c=t[8]:(c=Y(n.gesamt),t[7]=n.gesamt,t[8]=c);let l;t[9]===n.frei?l=t[10]:(l=Y(n.frei),t[9]=n.frei,t[10]=l);let u;t[11]!==o||t[12]!==s||t[13]!==c||t[14]!==l?(u=(0,Z.jsxs)(`p`,{className:`ziffern text-sm text-text-2`,children:[o,` % · `,s,` von `,c,` · `,l,` frei`]}),t[11]=o,t[12]=s,t[13]=c,t[14]=l,t[15]=u):u=t[15];let d;t[16]===n.vorhersage?d=t[17]:(d=(0,Z.jsx)(lt,{v:n.vorhersage}),t[16]=n.vorhersage,t[17]=d);let f;return t[18]!==r||t[19]!==i||t[20]!==a||t[21]!==u||t[22]!==d?(f=(0,Z.jsxs)($,{titel:`Systemplatte`,unter:`Proxmox-Host: Kernel, Sicherungen vor Updates`,chip:r,chipText:i,children:[a,u,d]}),t[18]=r,t[19]=i,t[20]=a,t[21]=u,t[22]=d,t[23]=f):f=t[23],f}function ft(e){let t=(0,X.c)(22),{n}=e,r=n.problem?n.stufe===`rot`?`gestört`:`unklar`:me[n.stufe],i=`NAS ${n.server??``}`,o;t[0]===i?o=t[1]:(o=i.trim(),t[0]=i,t[1]=o);let s;t[2]===n.art?s=t[3]:(s=n.art.toUpperCase(),t[2]=n.art,t[3]=s);let c=`${s} · ${n.quelle??`?`} → ${n.ziel}`,l=at[n.stufe],u;t[4]!==n.anteil||t[5]!==n.belegt||t[6]!==n.gesamt||t[7]!==n.problem||t[8]!==n.server||t[9]!==n.stufe||t[10]!==n.vorhersage?(u=n.problem?(0,Z.jsx)(`p`,{className:a(`text-sm`,n.stufe===`rot`?`text-rot-text`:`text-bernstein`),children:n.problem}):n.anteil!==null&&(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(ct,{anteil:n.anteil,stufe:n.stufe,name:`NAS ${n.server??``}`}),(0,Z.jsxs)(`p`,{className:`ziffern text-sm text-text-2`,children:[Math.round(n.anteil*100),` % · `,Y(n.belegt),` von `,Y(n.gesamt),` · `,Y((n.gesamt??0)-(n.belegt??0)),` frei`]}),(0,Z.jsx)(lt,{v:n.vorhersage})]}),t[4]=n.anteil,t[5]=n.belegt,t[6]=n.gesamt,t[7]=n.problem,t[8]=n.server,t[9]=n.stufe,t[10]=n.vorhersage,t[11]=u):u=t[11];let d=n.erreichbar===!1?`antwortet nicht`:`antwortet`,f=n.eingebunden?`auf dem Proxmox-Host eingebunden`:`nicht eingebunden`,p;t[12]!==d||t[13]!==f?(p=(0,Z.jsxs)(`p`,{className:`text-xs text-text-3`,children:[d,` · `,f]}),t[12]=d,t[13]=f,t[14]=p):p=t[14];let m;return t[15]!==r||t[16]!==o||t[17]!==c||t[18]!==l||t[19]!==u||t[20]!==p?(m=(0,Z.jsxs)($,{titel:o,unter:c,chip:l,chipText:r,children:[u,p]}),t[15]=r,t[16]=o,t[17]=c,t[18]=l,t[19]=u,t[20]=p,t[21]=m):m=t[21],m}function pt(e){let t=(0,X.c)(25),{s:n}=e,r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r={ok:`aktuell`,gelb:`Lücke`,rot:`gestört`,keine:`kein Auftrag`},t[0]=r):r=t[0];let i=r[n.stufe],a;t[1]===n?a=t[2]:(a=ce(n),t[1]=n,t[2]=a);let o=at[n.stufe],s;t[3]===n.probleme?s=t[4]:(s=n.probleme.map(vt),t[3]=n.probleme,t[4]=s);let c;t[5]!==n.erfasst||t[6]!==n.stufe||t[7]!==n.stufe_frische||t[8]!==n.zuletzt?(c=(n.stufe_frische??n.stufe)===`ok`&&(0,Z.jsxs)(`p`,{className:`text-sm text-text-2`,children:[`Alle `,n.erfasst,` Geräte gesichert`,n.zuletzt?(0,Z.jsxs)(Z.Fragment,{children:[`, zuletzt `,(0,Z.jsx)(`span`,{className:`ziffern`,children:st(n.zuletzt)})]}):null,`.`]}),t[5]=n.erfasst,t[6]=n.stufe,t[7]=n.stufe_frische,t[8]=n.zuletzt,t[9]=c):c=t[9];let l;t[10]===n.ohne_auftrag?l=t[11]:(l=(n.ohne_auftrag?.length??0)>0&&(0,Z.jsxs)(`p`,{className:`text-sm text-bernstein`,children:[`In keinem Sicherungsauftrag: `,n.ohne_auftrag.map(_t).join(`, `)]}),t[10]=n.ohne_auftrag,t[11]=l);let u;t[12]===n.fehlend?u=t[13]:(u=n.fehlend.length>0&&(0,Z.jsx)(`ul`,{className:`flex flex-col gap-1 text-sm`,children:n.fehlend.map(gt)}),t[12]=n.fehlend,t[13]=u);let d;t[14]===n.ziele?d=t[15]:(d=n.ziele.filter(ht).map(mt),t[14]=n.ziele,t[15]=d);let f;return t[16]!==i||t[17]!==a||t[18]!==o||t[19]!==s||t[20]!==c||t[21]!==l||t[22]!==u||t[23]!==d?(f=(0,Z.jsxs)($,{titel:`Sicherungen`,unter:a,chip:o,chipText:i,children:[s,c,l,u,d]}),t[16]=i,t[17]=a,t[18]=o,t[19]=s,t[20]=c,t[21]=l,t[22]=u,t[23]=d,t[24]=f):f=t[24],f}function mt(e){let t=ae(e.vorhersage);return(0,Z.jsxs)(`p`,{className:a(`ziffern text-xs`,t?F[M(e.vorhersage)]:`text-text-3`),children:[`Ziel `,e.speicher,`: `,Math.round((e.belegt??0)/(e.gesamt??1)*100),` % belegt`,t?` · ${t}`:e.vorhersage?.grund===`gleich`?` · gleichbleibend`:``,e.vorhersage?.quelle===`pbs`&&(t||e.vorhersage.grund===`gleich`)?` (Schätzung des PBS)`:``]},e.speicher)}function ht(e){return e.gesamt}function gt(e){return(0,Z.jsxs)(`li`,{className:`text-bernstein`,children:[e.name,`: `,e.zuletzt?(0,Z.jsxs)(Z.Fragment,{children:[`zuletzt `,(0,Z.jsx)(`span`,{className:`ziffern`,children:st(e.zuletzt)})]}):`noch nie gesichert`]},e.ziel)}function _t(e){return e.name}function vt(e){return(0,Z.jsx)(`p`,{className:`text-sm text-rot-text`,children:e},e)}function yt(e){let t=(0,X.c)(53),{daten:n,laeuft:r,gesperrt:i,onAktion:a,snapshotsLink:o,onProbe:s,probeGesperrt:c}=e,l=r===void 0?null:r,u=i!==void 0&&i,[d,f]=(0,Q.useState)(null),p;t[0]!==n.pools||t[1]!==n.systemplatte?.stufe?(p=n.pools.some(Ct)||(n.systemplatte?.stufe??`ok`)!==`ok`,t[0]=n.pools,t[1]=n.systemplatte?.stufe,t[2]=p):p=t[2];let m=p,h,g,_,v;if(t[3]!==n.empfehlungen||t[4]!==n.nas||t[5]!==n.pools||t[6]!==n.sicherungen||t[7]!==n.systemplatte||t[8]!==u||t[9]!==m||t[10]!==l||t[11]!==a||t[12]!==s||t[13]!==c||t[14]!==o){let e=n.empfehlungen.reduce(St,0);h=`flex flex-col gap-4`;let r;t[19]===n.pools?r=t[20]:(r=n.pools.map(xt),t[19]=n.pools,t[20]=r);let i;t[21]===n.systemplatte?i=t[22]:(i=n.systemplatte&&(0,Z.jsx)(dt,{s:n.systemplatte}),t[21]=n.systemplatte,t[22]=i);let d;t[23]===n.nas?d=t[24]:(d=n.nas.length>0?n.nas.map(bt):(0,Z.jsx)($,{titel:`NAS`,chip:`grau`,chipText:`keins`,children:(0,Z.jsx)(`p`,{className:`text-sm text-text-3`,children:`Auf dem Proxmox-Host ist kein Netzlaufwerk eingebunden.`})}),t[23]=n.nas,t[24]=d);let p;t[25]===n.sicherungen?p=t[26]:(p=(0,Z.jsx)(pt,{s:n.sicherungen}),t[25]=n.sicherungen,t[26]=p),t[27]!==d||t[28]!==p||t[29]!==r||t[30]!==i?(g=(0,Z.jsxs)(`div`,{className:`grid gap-3 md:grid-cols-2 2xl:grid-cols-4`,children:[r,i,d,p]}),t[27]=d,t[28]=p,t[29]=r,t[30]=i,t[31]=g):g=t[31],t[32]!==n.sicherungen||t[33]!==s||t[34]!==c?(_=(0,Z.jsx)(nt,{s:n.sicherungen,onProbe:s,probeGesperrt:c}),t[32]=n.sicherungen,t[33]=s,t[34]=c,t[35]=_):_=t[35],v=n.empfehlungen.length>0&&(0,Z.jsxs)(`details`,{open:m,className:`flaeche-innen group rounded-2xl px-4 open:pb-3`,children:[(0,Z.jsxs)(`summary`,{className:`flex min-h-12 cursor-pointer list-none items-center justify-between gap-3 [&::-webkit-details-marker]:hidden`,children:[(0,Z.jsxs)(`span`,{className:`flex items-center gap-2 text-[15px] font-medium`,children:[(0,Z.jsx)(D,{className:`size-4 text-text-3 transition-transform group-open:rotate-90`,"aria-hidden":!0}),`Was Platz bringt`]}),(0,Z.jsxs)(`span`,{className:`ziffern text-sm text-text-2`,children:[n.empfehlungen.length,` `,n.empfehlungen.length===1?`Vorschlag`:`Vorschläge`,e>0&&` · bis zu ${Y(e)}`]})]}),(0,Z.jsx)(`ol`,{className:`flex flex-col`,children:n.empfehlungen.map(e=>(0,Z.jsx)(Et,{e,laeuft:l,gesperrt:u||!a,onFrage:f,verweis:e.art===`snapshot`?o:null},e.titel))})]}),t[3]=n.empfehlungen,t[4]=n.nas,t[5]=n.pools,t[6]=n.sicherungen,t[7]=n.systemplatte,t[8]=u,t[9]=m,t[10]=l,t[11]=a,t[12]=s,t[13]=c,t[14]=o,t[15]=h,t[16]=g,t[17]=_,t[18]=v}else h=t[15],g=t[16],_=t[17],v=t[18];let y=!!d,b=d?`Proxmox-Host: ${d.label}`:``,x=d?.frage??``,S=d?.label??``,C;t[36]!==d||t[37]!==a?(C=()=>{d&&a&&a(d),f(null)},t[36]=d,t[37]=a,t[38]=C):C=t[38];let w;t[39]===Symbol.for(`react.memo_cache_sentinel`)?(w=()=>f(null),t[39]=w):w=t[39];let T;t[40]!==u||t[41]!==x||t[42]!==S||t[43]!==C||t[44]!==y||t[45]!==b?(T=(0,Z.jsx)(oe,{offen:y,titel:b,text:x,knopf:S,gesperrt:u,onJa:C,onNein:w}),t[40]=u,t[41]=x,t[42]=S,t[43]=C,t[44]=y,t[45]=b,t[46]=T):T=t[46];let E;return t[47]!==T||t[48]!==h||t[49]!==g||t[50]!==_||t[51]!==v?(E=(0,Z.jsxs)(`div`,{className:h,children:[g,_,v,T]}),t[47]=T,t[48]=h,t[49]=g,t[50]=_,t[51]=v,t[52]=E):E=t[52],E}function bt(e){return(0,Z.jsx)(ft,{n:e},e.ziel)}function xt(e){return(0,Z.jsx)(ut,{p:e},e.speicher)}function St(e,t){return e+(t.platz??0)}function Ct(e){return e.stufe!==`ok`}var wt={pool:`Speicherpool`,systemplatte:`Systemplatte des Hosts`};function Tt({text:e}){return e.split(/`([^`]+)`/).map((e,t)=>t%2==1?(0,Z.jsx)(`code`,{className:`rounded-md bg-white/[0.07] px-1 font-mono text-[13px] text-foreground [font-variant-ligatures:none]`,children:e},t):e)}function Et(e){let t=(0,X.c)(24),{e:n,laeuft:r,gesperrt:i,onFrage:a,verweis:o}=e,s;t[0]===n.titel?s=t[1]:(s=(0,Z.jsx)(`span`,{className:`text-[15px] font-medium break-words`,children:n.titel}),t[0]=n.titel,t[1]=s);let c;t[2]===n.platz?c=t[3]:(c=n.platz?`≈ ${Y(n.platz)}`:`Größe unbekannt`,t[2]=n.platz,t[3]=c);let l;t[4]===c?l=t[5]:(l=(0,Z.jsx)(`span`,{className:`ziffern text-sm text-text-2`,children:c}),t[4]=c,t[5]=l);let u;t[6]!==s||t[7]!==l?(u=(0,Z.jsxs)(`div`,{className:`flex flex-wrap items-baseline justify-between gap-x-3 gap-y-1`,children:[s,l]}),t[6]=s,t[7]=l,t[8]=u):u=t[8];let d;t[9]===n.ort?d=t[10]:(d=n.ort&&(0,Z.jsx)(`span`,{className:`etikett text-[10.5px] tracking-[0.14em] text-text-3`,children:wt[n.ort]??n.ort}),t[9]=n.ort,t[10]=d);let f;t[11]===n.text?f=t[12]:(f=(0,Z.jsx)(`p`,{className:`text-sm break-words text-text-2`,children:(0,Z.jsx)(Tt,{text:n.text})}),t[11]=n.text,t[12]=f);let p;t[13]!==n.aktion||t[14]!==i||t[15]!==r||t[16]!==a?(p=n.aktion&&(r?(0,Z.jsxs)(`p`,{role:`status`,className:`text-sm text-cyan-text`,children:[`Läuft: `,r]}):(0,Z.jsx)(A,{variant:`outline`,size:`sm`,className:`mt-1 self-start`,disabled:i,onClick:()=>a(n.aktion),children:n.aktion.label})),t[13]=n.aktion,t[14]=i,t[15]=r,t[16]=a,t[17]=p):p=t[17];let m;return t[18]!==u||t[19]!==d||t[20]!==f||t[21]!==p||t[22]!==o?(m=(0,Z.jsxs)(`li`,{className:`flex flex-col gap-1 border-t border-white/[0.06] py-3 first:border-t-0 first:pt-1`,children:[u,d,f,o,p]}),t[18]=u,t[19]=d,t[20]=f,t[21]=p,t[22]=o,t[23]=m):m=t[23],m}var Dt={snapshot:`Snapshot`,sicherung:`Sicherung`,keiner:`kein Rückweg`};function Ot(e){let t=(0,X.c)(24),{anzahl:n,gesperrt:r}=e,[i,a]=(0,Q.useState)(!1),o=m(i),s=C(),c;t[0]===o.data?.schritte?c=t[1]:(c=o.data?.schritte??[],t[0]=o.data?.schritte,t[1]=c);let l=c,u=r||n===0||s.isPending,d;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(d=()=>a(!0),t[2]=d):d=t[2];let f=n>0?` (${n})`:``,p;t[3]!==u||t[4]!==f?(p=(0,Z.jsxs)(A,{disabled:u,onClick:d,children:[`Alle aktualisieren`,f]}),t[3]=u,t[4]=f,t[5]=p):p=t[5];let h=l.length?`${l.length} Updates starten`:`Starten`,g=s.isPending||o.isPending||l.length===0,_;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(_=()=>a(!1),t[6]=_):_=t[6];let v;t[7]!==i||t[8]!==s?(v=()=>{i&&(s.mutate(void 0),a(!1))},t[7]=i,t[8]=s,t[9]=v):v=t[9];let y;t[10]!==o.data||t[11]!==o.error||t[12]!==o.isPending||t[13]!==l?(y=o.isPending?(0,Z.jsx)(`p`,{className:`text-sm text-text-2`,children:`Die Reihenfolge wird gelesen …`}):o.error?(0,Z.jsxs)(`p`,{role:`alert`,className:`text-sm text-rot-text`,children:[`Der Plan lässt sich nicht lesen: `,o.error.message]}):(0,Z.jsxs)(`div`,{className:`flex flex-col gap-2 pb-1`,children:[(0,Z.jsx)(`ol`,{className:`m-0 flex list-none flex-col gap-1 p-0`,children:l.map(kt)}),o.data?.hinweis&&(0,Z.jsx)(`p`,{className:`text-xs text-bernstein`,children:o.data.hinweis})]}),t[10]=o.data,t[11]=o.error,t[12]=o.isPending,t[13]=l,t[14]=y):y=t[14];let b;t[15]!==i||t[16]!==y||t[17]!==h||t[18]!==g||t[19]!==v?(b=(0,Z.jsx)(oe,{offen:i,titel:`Alle Homelab-Updates einspielen?`,text:`Die Updates laufen nacheinander, jedes mit Rückweg und Prüfung. Ist eine Prüfung rot, geht dieser Schritt von selbst zurück und der Rest bleibt stehen. AdGuard und NPMplus kommen zuletzt, der Proxmox-Host ganz am Ende; neu gestartet wird er nicht.`,knopf:h,gesperrt:g,onNein:_,onJa:v,children:y}),t[15]=i,t[16]=y,t[17]=h,t[18]=g,t[19]=v,t[20]=b):b=t[20];let x;return t[21]!==b||t[22]!==p?(x=(0,Z.jsxs)(Z.Fragment,{children:[p,b]}),t[21]=b,t[22]=p,t[23]=x):x=t[23],x}function kt(e,t){return(0,Z.jsxs)(`li`,{className:`grid grid-cols-[1.5rem_minmax(0,1fr)_auto] items-baseline gap-2 text-sm`,children:[(0,Z.jsxs)(`span`,{className:`ziffern text-text-3`,children:[t+1,`.`]}),(0,Z.jsxs)(`span`,{className:`min-w-0`,children:[(0,Z.jsx)(`span`,{className:`font-medium text-foreground`,children:e.name}),` `,(0,Z.jsxs)(`span`,{className:`text-text-2`,children:[`· `,e.was]})]}),(0,Z.jsx)(`span`,{className:a(`text-xs`,e.rueckweg_art===`keiner`?`text-bernstein`:`text-text-3`),children:Dt[e.rueckweg_art]})]},`${e.ziel}-${e.baustein}`)}var At={wartet:{Symbol:be,farbe:`text-text-3`,text:`wartet`},laeuft:{Symbol:Se,farbe:`text-cyan-text`,text:`läuft`},eingespielt:{Symbol:te,farbe:`text-gruen`,text:`eingespielt`},zurueckgerollt:{Symbol:k,farbe:`text-bernstein`,text:`zurückgerollt`},fehler:{Symbol:O,farbe:`text-rot`,text:`Fehler`},uebersprungen:{Symbol:we,farbe:`text-text-3`,text:`übersprungen`}},jt={laeuft:{art:`cyan`,text:`läuft`},fertig:{art:`gruen`,text:`fertig`},abgebrochen:{art:`bernstein`,text:`abgebrochen`}};function Mt(e){let t=(0,X.c)(33),{lauf:n,onQuittieren:r}=e,i;t[0]===n.schritte?i=t[1]:(i=n.schritte.filter(Pt),t[0]=n.schritte,t[1]=i);let a=i.length,o=jt[n.status],s;t[2]!==a||t[3]!==n.schritte.length?(s=(0,Z.jsxs)(`span`,{className:`text-[15px] font-semibold text-cyan-text`,children:[`Alle aktualisieren · `,a,` von `,n.schritte.length]}),t[2]=a,t[3]=n.schritte.length,t[4]=s):s=t[4];let c;t[5]===n.start?c=t[6]:(c=b(new Date(n.start*1e3).toISOString()),t[5]=n.start,t[6]=c);let l;t[7]===c?l=t[8]:(l=(0,Z.jsx)(`span`,{className:`ziffern text-xs text-text-3`,children:c}),t[7]=c,t[8]=l);let u;t[9]!==o.art||t[10]!==o.text?(u=(0,Z.jsx)(V,{art:o.art,children:o.text}),t[9]=o.art,t[10]=o.text,t[11]=u):u=t[11];let d;t[12]!==l||t[13]!==u?(d=(0,Z.jsxs)(`span`,{className:`flex items-center gap-2`,children:[l,u]}),t[12]=l,t[13]=u,t[14]=d):d=t[14];let f;t[15]!==s||t[16]!==d?(f=(0,Z.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[s,d]}),t[15]=s,t[16]=d,t[17]=f):f=t[17];let p=`${a/Math.max(1,n.schritte.length)*100}%`,m;t[18]===p?m=t[19]:(m=(0,Z.jsx)(`div`,{className:`h-1.5 overflow-hidden rounded-full bg-white/[0.07]`,"aria-hidden":!0,children:(0,Z.jsx)(`div`,{className:`h-full rounded-full bg-cyan shadow-[0_0_10px_var(--cyan)] transition-all`,style:{width:p}})}),t[18]=p,t[19]=m);let h;t[20]===n.schritte?h=t[21]:(h=n.schritte.map(Nt),t[20]=n.schritte,t[21]=h);let g;t[22]===h?g=t[23]:(g=(0,Z.jsx)(`ol`,{className:`m-0 grid list-none gap-x-6 gap-y-1.5 p-0 sm:grid-cols-2`,children:h}),t[22]=h,t[23]=g);let _;t[24]!==n.status||t[25]!==n.text||t[26]!==r?(_=(n.text||n.status!==`laeuft`&&r)&&(0,Z.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[n.text&&(0,Z.jsx)(`p`,{className:`text-sm text-text-2`,children:n.text}),n.status!==`laeuft`&&r&&(0,Z.jsx)(A,{variant:`outline`,size:`sm`,className:`ml-auto`,onClick:r,children:`Ausblenden`})]}),t[24]=n.status,t[25]=n.text,t[26]=r,t[27]=_):_=t[27];let v;return t[28]!==g||t[29]!==_||t[30]!==f||t[31]!==m?(v=(0,Z.jsxs)(`section`,{"aria-label":`Alle aktualisieren`,className:`flex flex-col gap-3 rounded-2xl bg-cyan/[0.06] p-4 ring-1 ring-cyan/30 ring-inset`,children:[f,m,g,_]}),t[28]=g,t[29]=_,t[30]=f,t[31]=m,t[32]=v):v=t[32],v}function Nt(e){let t=At[e.status];return(0,Z.jsxs)(`li`,{className:`flex items-start gap-2 text-sm`,children:[(0,Z.jsx)(t.Symbol,{className:a(`mt-0.5 size-4 shrink-0`,t.farbe,e.status===`laeuft`&&`motion-safe:animate-spin`),"aria-hidden":!0}),(0,Z.jsxs)(`span`,{className:`min-w-0`,children:[(0,Z.jsx)(`span`,{className:`text-foreground`,children:e.name}),` `,(0,Z.jsxs)(`span`,{className:`text-text-3`,children:[`· `,e.was,` · `,t.text]}),e.text&&e.status!==`eingespielt`&&(0,Z.jsx)(`span`,{className:`block text-xs text-text-3`,children:e.text})]})]},`${e.ziel}-${e.baustein}`)}function Pt(e){return![`wartet`,`laeuft`].includes(e.status)}function Ft(e){let t=(0,X.c)(9),{d:n}=e,r=n.zusammenfassung;if(!r){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Z.jsx)(`p`,{className:`m-0 text-sm text-text-3`,children:`Lucy konnte gerade keine Kurzfassung schreiben; die Quellen stehen unten.`}),t[0]=e):e=t[0],e}let i;t[1]!==r.aktion||t[2]!==r.aktion_text?(i=r.aktion?(0,Z.jsxs)(`p`,{className:`m-0 rounded-xl bg-bernstein/10 px-3 py-2 text-sm text-bernstein ring-1 ring-bernstein/30 ring-inset`,children:[`⚠ Handarbeit: `,r.aktion_text||`Lies die Hinweise unten, bevor du updatest.`]}):r.aktion===!1&&(0,Z.jsx)(`p`,{className:`m-0 text-sm text-gruen-text`,children:`Du musst dafür nichts selbst tun.`}),t[1]=r.aktion,t[2]=r.aktion_text,t[3]=i):i=t[3];let a;t[4]===r.punkte?a=t[5]:(a=r.punkte.length>0&&(0,Z.jsx)(`ul`,{className:`m-0 flex list-disc flex-col gap-1 pl-5 text-sm text-text-2`,children:r.punkte.map(It)}),t[4]=r.punkte,t[5]=a);let o;return t[6]!==i||t[7]!==a?(o=(0,Z.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[i,a]}),t[6]=i,t[7]=a,t[8]=o):o=t[8],o}function It(e){return(0,Z.jsx)(`li`,{children:e},e)}function Lt(e){let t=(0,X.c)(16),{d:n}=e,r;t[0]===n.versionen?r=t[1]:(r=n.versionen??[],t[0]=n.versionen,t[1]=r);let i=r,a;t[2]===n.pakete?a=t[3]:(a=n.pakete??[],t[2]=n.pakete,t[3]=a);let o=a;if(i.length===0&&o.length===0)return null;let s=i.length?`Release Notes (${i.length} ${i.length===1?`Version`:`Versionen`})`:`Änderungslisten (${o.length} Pakete${n.weitere?`, ${n.weitere} weitere ohne Liste`:``})`,c;t[4]===s?c=t[5]:(c=(0,Z.jsx)(`summary`,{className:`cursor-pointer text-text-3 hover:text-text-2`,children:s}),t[4]=s,t[5]=c);let l;t[6]===i?l=t[7]:(l=i.map(zt),t[6]=i,t[7]=l);let u;t[8]===o?u=t[9]:(u=o.map(Rt),t[8]=o,t[9]=u);let d;t[10]!==l||t[11]!==u?(d=(0,Z.jsxs)(`div`,{className:`mt-2 flex max-h-80 flex-col gap-3 overflow-y-auto pr-1`,children:[l,u]}),t[10]=l,t[11]=u,t[12]=d):d=t[12];let f;return t[13]!==c||t[14]!==d?(f=(0,Z.jsxs)(`details`,{className:`group text-sm`,children:[c,d]}),t[13]=c,t[14]=d,t[15]=f):f=t[15],f}function Rt(e){return(0,Z.jsxs)(`section`,{className:`flex flex-col gap-1`,children:[(0,Z.jsx)(`span`,{className:`font-mono text-[13px] font-medium`,children:e.name}),(0,Z.jsx)(`pre`,{className:`m-0 font-mono text-[12px] break-words whitespace-pre-wrap text-text-3`,children:e.text})]},e.name)}function zt(e){return(0,Z.jsxs)(`section`,{className:`flex flex-col gap-1`,children:[(0,Z.jsxs)(`span`,{className:`flex items-baseline justify-between gap-2`,children:[(0,Z.jsx)(`span`,{className:`font-medium`,children:e.titel}),e.url&&(0,Z.jsxs)(`a`,{href:e.url,target:`_blank`,rel:`noopener`,className:`inline-flex shrink-0 items-center gap-1 text-cyan hover:underline`,children:[`GitHub `,(0,Z.jsx)(q,{className:`size-3`,"aria-hidden":!0})]})]}),(0,Z.jsx)(`pre`,{className:`m-0 font-sans text-[13px] break-words whitespace-pre-wrap text-text-3`,children:e.text||`–`})]},e.version)}function Bt(e){let t=(0,X.c)(21),{zid:n,baustein:r,kompakt:i,className:o}=e,s=i!==void 0&&i,c=d(n,r,!0),l;if(c.isPending){let e;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Z.jsx)(`p`,{className:`m-0 text-sm text-text-3`,role:`status`,children:`Lucy liest, was neu ist …`}),t[0]=e):e=t[0],l=e}else if(c.error){let e;t[1]===c.error.message?e=t[2]:(e=(0,Z.jsxs)(`p`,{className:`m-0 text-sm text-text-3`,children:[`Ließ sich gerade nicht lesen: `,c.error.message]}),t[1]=c.error.message,t[2]=e),l=e}else if(c.data?.verfuegbar){let e;t[8]===c.data?e=t[9]:(e=(0,Z.jsx)(Ft,{d:c.data}),t[8]=c.data,t[9]=e);let n;t[10]!==s||t[11]!==c.data?(n=!s&&(0,Z.jsx)(Lt,{d:c.data}),t[10]=s,t[11]=c.data,t[12]=n):n=t[12];let r;t[13]!==e||t[14]!==n?(r=(0,Z.jsxs)(Z.Fragment,{children:[e,n]}),t[13]=e,t[14]=n,t[15]=r):r=t[15],l=r}else{let e=c.data?.grund??`Keine Angaben.`,n;t[3]===c.data?n=t[4]:(n=c.data?.quelle_url&&(0,Z.jsxs)(Z.Fragment,{children:[` `,(0,Z.jsx)(`a`,{href:c.data.quelle_url,target:`_blank`,rel:`noopener`,className:`text-cyan hover:underline`,children:`Zu den Releases`})]}),t[3]=c.data,t[4]=n);let r;t[5]!==e||t[6]!==n?(r=(0,Z.jsxs)(`p`,{className:`m-0 text-sm text-text-3`,children:[e,n]}),t[5]=e,t[6]=n,t[7]=r):r=t[7],l=r}let u;t[16]===o?u=t[17]:(u=a(`flex flex-col gap-2`,o),t[16]=o,t[17]=u);let f;return t[18]!==l||t[19]!==u?(f=(0,Z.jsx)(`div`,{className:u,children:l}),t[18]=l,t[19]=u,t[20]=f):f=t[20],f}var Vt=`md:grid-cols-[minmax(0,1.1fr)_minmax(0,1.3fr)_minmax(0,1fr)_minmax(0,0.9fr)_11.5rem]`;function Ht(e){let t=(0,X.c)(16),{ziel:n,b:r}=e,i=x();if(r.uebersprungen){let e;t[0]!==i||t[1]!==n.id?(e=()=>i.mutate({zid:n.id,version:null}),t[0]=i,t[1]=n.id,t[2]=e):e=t[2];let a;t[3]!==e||t[4]!==i.isPending?(a=(0,Z.jsx)(`button`,{type:`button`,className:`text-cyan hover:underline`,disabled:i.isPending,onClick:e,children:`wieder anbieten`}),t[3]=e,t[4]=i.isPending,t[5]=a):a=t[5];let o;return t[6]!==r.uebersprungen||t[7]!==a?(o=(0,Z.jsxs)(`span`,{className:`text-xs text-text-3`,children:[r.uebersprungen,` übersprungen ·`,` `,a]}),t[6]=r.uebersprungen,t[7]=a,t[8]=o):o=t[8],o}if(r.zustand!==`neu`||!r.verfuegbar)return null;let a;t[9]!==r.verfuegbar||t[10]!==i||t[11]!==n.id?(a=()=>i.mutate({zid:n.id,version:r.verfuegbar}),t[9]=r.verfuegbar,t[10]=i,t[11]=n.id,t[12]=a):a=t[12];let o;return t[13]!==a||t[14]!==i.isPending?(o=(0,Z.jsx)(`button`,{type:`button`,className:`self-start text-xs text-text-3 hover:text-foreground hover:underline`,disabled:i.isPending,onClick:a,children:`Version überspringen`}),t[13]=a,t[14]=i.isPending,t[15]=o):o=t[15],o}function Ut(e){let t=(0,X.c)(30),{ziel:n,b:r}=e;if(!r){let e=n.art===`proxmox-host`?re(n)?.installiert:null,r;return t[0]===e?r=t[1]:(r=e?(0,Z.jsxs)(`span`,{className:`ziffern text-sm`,children:[`PVE `,e]}):(0,Z.jsx)(`span`,{className:`text-sm text-text-3`,children:`–`}),t[0]=e,t[1]=r),r}let i;t[2]===r.installiert?i=t[3]:(i=r.installiert?ue(r.installiert):`–`,t[2]=r.installiert,t[3]=i);let a=i,o=r.zustand===`aktuell`?`text-foreground`:`text-text-2`,s;t[4]!==a||t[5]!==o?(s=(0,Z.jsx)(`span`,{className:o,children:a}),t[4]=a,t[5]=o,t[6]=s):s=t[6];let c;t[7]!==r.verfuegbar||t[8]!==r.zustand?(c=r.zustand===`neu`&&r.verfuegbar&&(0,Z.jsxs)(`span`,{className:`text-cyan-text`,children:[`→ `,r.verfuegbar]}),t[7]=r.verfuegbar,t[8]=r.zustand,t[9]=c):c=t[9];let l;t[10]===r.zustand?l=t[11]:(l=r.zustand===`aktuell`&&(0,Z.jsx)(`span`,{className:`font-sans text-xs text-gruen-text`,children:`aktuell`}),t[10]=r.zustand,t[11]=l);let u;t[12]===r.zustand?u=t[13]:(u=r.zustand===`unbekannt`&&(0,Z.jsx)(`span`,{className:`font-sans text-xs text-text-3`,children:`unklar`}),t[12]=r.zustand,t[13]=u);let d;t[14]!==s||t[15]!==c||t[16]!==l||t[17]!==u?(d=(0,Z.jsxs)(`span`,{className:`ziffern flex flex-wrap items-baseline gap-x-2 text-sm`,children:[s,c,l,u]}),t[14]=s,t[15]=c,t[16]=l,t[17]=u,t[18]=d):d=t[18];let f;t[19]!==r.aktion||t[20]!==r.grund||t[21]!==r.zustand?(f=r.zustand===`neu`&&!r.aktion&&r.grund&&(0,Z.jsx)(`span`,{className:`text-xs text-text-3`,children:r.grund}),t[19]=r.aktion,t[20]=r.grund,t[21]=r.zustand,t[22]=f):f=t[22];let p;t[23]!==r||t[24]!==n?(p=n.art!==`proxmox-host`&&(0,Z.jsx)(Ht,{ziel:n,b:r}),t[23]=r,t[24]=n,t[25]=p):p=t[25];let m;return t[26]!==d||t[27]!==f||t[28]!==p?(m=(0,Z.jsxs)(`span`,{className:`flex min-w-0 flex-col gap-0.5`,children:[d,f,p]}),t[26]=d,t[27]=f,t[28]=p,t[29]=m):m=t[29],m}function Wt(e){let t=(0,X.c)(25),{b:n,onSuchen:r,gesperrt:i}=e;if(!n){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Z.jsx)(`span`,{className:`text-sm text-text-3`,children:`–`}),t[0]=e):e=t[0],e}let a=n.id===`docker`,o;if(n.zustand===`neu`){let e=n.kurz||`Update bereit`,r;t[1]===n.sicherheit?r=t[2]:(r=!!n.sicherheit&&(0,Z.jsxs)(`span`,{className:`text-rot-text`,children:[` · `,n.sicherheit,` Sicherheit`]}),t[1]=n.sicherheit,t[2]=r);let i;t[3]!==e||t[4]!==r?(i=(0,Z.jsxs)(`span`,{className:`text-cyan-text`,children:[e,r]}),t[3]=e,t[4]=r,t[5]=i):i=t[5],o=i}else if(n.zustand===`aktuell`){let e=a?`Images aktuell`:`aktuell`,n;t[6]===e?n=t[7]:(n=(0,Z.jsx)(`span`,{className:`text-gruen-text`,children:e}),t[6]=e,t[7]=n),o=n}else{let e;t[8]===n.grund?e=t[9]:(e=ee(n.grund),t[8]=n.grund,t[9]=e);let r=e,i=n.grund??void 0,s=a?`Images unklar`:`unklar`,c;t[10]===r?c=t[11]:(c=r&&(0,Z.jsxs)(`span`,{className:`text-text-3`,children:[` · Listen vom `,r]}),t[10]=r,t[11]=c);let l;t[12]!==i||t[13]!==s||t[14]!==c?(l=(0,Z.jsxs)(`span`,{className:`text-text-2`,title:i,children:[s,c]}),t[12]=i,t[13]=s,t[14]=c,t[15]=l):l=t[15],o=l}let s=n.zustand===`unbekannt`?n.aktion:null,c;t[16]===o?c=t[17]:(c=(0,Z.jsx)(`span`,{className:`min-w-0`,children:o}),t[16]=o,t[17]=c);let l;t[18]!==i||t[19]!==r||t[20]!==s?(l=s&&(0,Z.jsx)(A,{variant:`ghost`,size:`icon-sm`,className:`-my-2 shrink-0`,"aria-label":s.label,title:s.label,disabled:i,onClick:()=>r(s),children:(0,Z.jsx)(K,{})}),t[18]=i,t[19]=r,t[20]=s,t[21]=l):l=t[21];let u;return t[22]!==c||t[23]!==l?(u=(0,Z.jsxs)(`span`,{className:`flex items-center gap-1 text-sm`,children:[c,l]}),t[22]=c,t[23]=l,t[24]=u):u=t[24],u}var Gt={app:`App updaten`,os:`Pakete einspielen`,pakete:`Pakete einspielen`};function Kt(e,t){return!t||t.zustand!==`neu`?!1:t.id===`app`&&!!t.verfuegbar||e.art===`proxmox-host`&&t.id===`pakete`}function qt(e){let t=(0,X.c)(52),{ziel:n,laeuft:r,gesperrt:i,onFrage:o}=e,s;t[0]===n?s=t[1]:(s=L(n),t[0]=n,t[1]=s);let c=s,l;t[2]===n?l=t[3]:(l=re(n),t[2]=n,t[3]=l);let u=l,d=n.bausteine.filter(Jt),f=G(n)>=2,p;t[4]===n?p=t[5]:(p=n.bausteine.find(e=>Kt(n,e)),t[4]=n,t[5]=p);let m=p,[h,g]=(0,Q.useState)(!1),_=f&&`opacity-75`,v;t[6]===_?v=t[7]:(v=a(`grid grid-cols-1 gap-x-4 gap-y-2 border-t border-white/[0.06] py-3.5 md:items-center`,Vt,_),t[6]=_,t[7]=v);let y;t[8]===n?y=t[9]:(y=N(n),t[8]=n,t[9]=y);let b=d.length?`info`:null,x;t[10]!==y||t[11]!==b?(x=(0,Z.jsx)(R,{bild:y,groesse:`sm`,punkt:b}),t[10]=y,t[11]=b,t[12]=x):x=t[12];let S;t[13]===n.name?S=t[14]:(S=(0,Z.jsx)(`span`,{className:`text-[15px] font-semibold break-words`,children:n.name}),t[13]=n.name,t[14]=S);let C;t[15]===n?C=t[16]:(C=U(n)!==n.name&&(0,Z.jsx)(`span`,{className:`text-[13px] text-text-3`,children:U(n)}),t[15]=n,t[16]=C);let w;t[17]!==S||t[18]!==C?(w=(0,Z.jsxs)(`span`,{className:`flex min-w-0 flex-col`,children:[S,C]}),t[17]=S,t[18]=C,t[19]=w):w=t[19];let T;t[20]!==w||t[21]!==x?(T=(0,Z.jsxs)(`div`,{role:`rowheader`,className:`flex min-w-0 items-center gap-3`,children:[x,w]}),t[20]=w,t[21]=x,t[22]=T):T=t[22];let E;t[23]===Symbol.for(`react.memo_cache_sentinel`)?(E=(0,Z.jsx)(`span`,{className:`text-xs text-text-3 md:hidden`,children:`App `}),t[23]=E):E=t[23];let O;t[24]!==c||t[25]!==n?(O=(0,Z.jsxs)(`span`,{role:`cell`,className:`min-w-0`,children:[E,(0,Z.jsx)(Ut,{ziel:n,b:c})]}),t[24]=c,t[25]=n,t[26]=O):O=t[26];let k;t[27]===Symbol.for(`react.memo_cache_sentinel`)?(k=(0,Z.jsx)(`span`,{className:`text-xs text-text-3 md:hidden`,children:`Pakete `}),t[27]=k):k=t[27];let j=i||!!r,M;t[28]!==o||t[29]!==n?(M=e=>o({ziel:n,aktion:e}),t[28]=o,t[29]=n,t[30]=M):M=t[30];let P;t[31]!==u||t[32]!==j||t[33]!==M?(P=(0,Z.jsxs)(`span`,{role:`cell`,className:`min-w-0`,children:[k,(0,Z.jsx)(Wt,{b:u,gesperrt:j,onSuchen:M})]}),t[31]=u,t[32]=j,t[33]=M,t[34]=P):P=t[34];let F=d.length?fe(n):``,I;t[35]===F?I=t[36]:(I=(0,Z.jsx)(`span`,{role:`cell`,className:`text-sm text-text-3`,children:F}),t[35]=F,t[36]=I);let z=r?(0,Z.jsxs)(`span`,{role:`status`,className:`text-sm text-cyan-text`,children:[`Läuft: `,r]}):d.map(e=>(0,Z.jsx)(A,{variant:`outline`,size:`sm`,disabled:i,onClick:()=>e.aktion&&o({ziel:n,aktion:e.aktion}),children:Gt[e.id]??e.aktion?.label??`Updaten`},e.id)),B;t[37]===z?B=t[38]:(B=(0,Z.jsx)(`span`,{role:`cell`,className:`flex flex-wrap gap-2 md:flex-col md:items-stretch`,children:z}),t[37]=z,t[38]=B);let V;t[39]!==m||t[40]!==h||t[41]!==g||t[42]!==n.id?(V=m&&(0,Z.jsxs)(`div`,{className:`col-span-full flex flex-col gap-2`,children:[(0,Z.jsxs)(`button`,{type:`button`,"aria-expanded":h,onClick:()=>g(!h),className:`inline-flex min-h-9 items-center gap-1.5 self-start text-sm text-cyan-text hover:underline`,children:[(0,Z.jsx)(D,{className:a(`size-4 transition-transform`,h&&`rotate-90`),"aria-hidden":!0}),`Was ist neu?`]}),h&&(0,Z.jsx)(Bt,{zid:n.id,baustein:m.id,className:`flaeche-innen rounded-xl p-3`})]}),t[39]=m,t[40]=h,t[41]=g,t[42]=n.id,t[43]=V):V=t[43];let H;return t[44]!==T||t[45]!==O||t[46]!==P||t[47]!==I||t[48]!==B||t[49]!==V||t[50]!==v?(H=(0,Z.jsxs)(`div`,{role:`row`,className:v,children:[T,O,P,I,B,V]}),t[44]=T,t[45]=O,t[46]=P,t[47]=I,t[48]=B,t[49]=V,t[50]=v,t[51]=H):H=t[51],H}function Jt(e){return e.zustand===`neu`&&e.aktion}function Yt(e){let t=(0,X.c)(48),{ziele:n,laufend:r,gesperrt:i,onAktion:o}=e,[s,c]=(0,Q.useState)(null),l;t[0]===s?l=t[1]:(l=s?s.ziel.bausteine.find(e=>e.aktion?.pfad===s.aktion.pfad&&Kt(s.ziel,e)):void 0,t[0]=s,t[1]=l);let u=l,d,f,p,m,h,g;if(t[2]!==i||t[3]!==r||t[4]!==n){let e=[...n].sort(Zt),o;t[11]===n?o=t[12]:(o=n.filter(Xt),t[11]=n,t[12]=o),d=o.length,f=`table`,p=`Updates je Gerät`,m=`flex flex-col`,t[13]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,Z.jsxs)(`div`,{role:`row`,className:a(`etikett hidden gap-x-4 pb-2.5 text-[10.5px] tracking-[0.14em] text-text-3 md:grid`,Vt),children:[(0,Z.jsx)(`span`,{role:`columnheader`,children:`Gerät`}),(0,Z.jsx)(`span`,{role:`columnheader`,children:`App`}),(0,Z.jsx)(`span`,{role:`columnheader`,children:`Pakete`}),(0,Z.jsx)(`span`,{role:`columnheader`,children:`Rückweg`}),(0,Z.jsx)(`span`,{role:`columnheader`,className:`sr-only`,children:`Aktion`})]}),t[13]=h):h=t[13];let s;t[14]!==i||t[15]!==r?(s=e=>(0,Z.jsx)(qt,{ziel:e,laeuft:r.get(e.id)??null,gesperrt:i||r.has(e.id),onFrage:c},e.id),t[14]=i,t[15]=r,t[16]=s):s=t[16],g=e.map(s),t[2]=i,t[3]=r,t[4]=n,t[5]=d,t[6]=f,t[7]=p,t[8]=m,t[9]=h,t[10]=g}else d=t[5],f=t[6],p=t[7],m=t[8],h=t[9],g=t[10];let _;t[17]!==f||t[18]!==p||t[19]!==m||t[20]!==h||t[21]!==g?(_=(0,Z.jsxs)(`div`,{role:f,"aria-label":p,className:m,children:[h,g]}),t[17]=f,t[18]=p,t[19]=m,t[20]=h,t[21]=g,t[22]=_):_=t[22];let v;t[23]!==d||t[24]!==n.length?(v=d>0&&d===n.length&&(0,Z.jsx)(V,{art:`gruen`,children:`Alles aktuell`}),t[23]=d,t[24]=n.length,t[25]=v):v=t[25];let y=!!s,b=s?`${s.ziel.name}: ${s.aktion.label}`:``,x=s?.aktion.frage??``,S=s?.aktion.label??``,C;t[26]===s?.aktion.pfad?C=t[27]:(C=s?.aktion.pfad.endsWith(`/neustart`),t[26]=s?.aktion.pfad,t[27]=C);let w=!!C,T;t[28]!==s||t[29]!==o?(T=()=>{s&&o(s.aktion),c(null)},t[28]=s,t[29]=o,t[30]=T):T=t[30];let E;t[31]===Symbol.for(`react.memo_cache_sentinel`)?(E=()=>c(null),t[31]=E):E=t[31];let D;t[32]!==s||t[33]!==u?(D=u&&s&&(0,Z.jsx)(Bt,{zid:s.ziel.id,baustein:u.id,kompakt:!0}),t[32]=s,t[33]=u,t[34]=D):D=t[34];let O;t[35]!==i||t[36]!==b||t[37]!==x||t[38]!==S||t[39]!==w||t[40]!==T||t[41]!==D||t[42]!==y?(O=(0,Z.jsx)(oe,{offen:y,titel:b,text:x,knopf:S,gefahr:w,gesperrt:i,onJa:T,onNein:E,children:D}),t[35]=i,t[36]=b,t[37]=x,t[38]=S,t[39]=w,t[40]=T,t[41]=D,t[42]=y,t[43]=O):O=t[43];let k;return t[44]!==O||t[45]!==_||t[46]!==v?(k=(0,Z.jsxs)(Z.Fragment,{children:[_,v,O]}),t[44]=O,t[45]=_,t[46]=v,t[47]=k):k=t[47],k}function Xt(e){return G(e)===3}function Zt(e,t){return G(e)-G(t)}var Qt=`md:grid-cols-[minmax(0,1.6fr)_minmax(0,1fr)_minmax(0,1.4fr)]`,$t={ok:`bg-gruen`,gelb:`bg-bernstein`,rot:`bg-rot shadow-[0_0_8px_var(--rot)]`},en={ok:`text-text-3`,gelb:`text-bernstein`,rot:`text-rot-text`},tn=e=>b(new Date(e*1e3).toISOString()).toLowerCase();function nn(e){if(e<=0)return`abgelaufen`;if(e<86400)return`noch ${Math.max(1,Math.round(e/3600))} Std.`;let t=Math.round(e/86400);return t<60?`noch ${t} ${t===1?`Tag`:`Tage`}`:t<730?`noch ${Math.round(t/30)} Monate`:`noch ${Math.round(t/365)} Jahre`}function rn(e){let t=(0,X.c)(40),{z:n}=e,r=n.namen.length>1?` und ${n.namen.length-1} weitere`:``,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=a(`grid grid-cols-2 gap-x-4 gap-y-1 border-t border-white/[0.06] py-3 md:items-center`,Qt),t[0]=i):i=t[0];let o=$t[n.stufe],s;t[1]===o?s=t[2]:(s=a(`mt-1.5 size-2 shrink-0 rounded-full`,o),t[1]=o,t[2]=s);let c;t[3]===s?c=t[4]:(c=(0,Z.jsx)(`span`,{"aria-hidden":!0,className:s}),t[3]=s,t[4]=c);let l;t[5]!==r||t[6]!==n.name?(l=(0,Z.jsxs)(`span`,{className:`text-[15px] font-semibold break-all`,children:[n.name,r]}),t[5]=r,t[6]=n.name,t[7]=l):l=t[7];let u;t[8]!==n.aussteller||t[9]!==n.wo?(u=[n.wo,n.aussteller].filter(Boolean),t[8]=n.aussteller,t[9]=n.wo,t[10]=u):u=t[10];let d=u.join(` · `),f;t[11]===d?f=t[12]:(f=(0,Z.jsx)(`span`,{className:`text-[13px] text-text-3`,children:d}),t[11]=d,t[12]=f);let p;t[13]!==l||t[14]!==f?(p=(0,Z.jsxs)(`span`,{className:`flex min-w-0 flex-col`,children:[l,f]}),t[13]=l,t[14]=f,t[15]=p):p=t[15];let m;t[16]!==c||t[17]!==p?(m=(0,Z.jsxs)(`span`,{role:`rowheader`,className:`col-span-2 flex min-w-0 items-start gap-2.5 md:col-span-1`,children:[c,p]}),t[16]=c,t[17]=p,t[18]=m):m=t[18];let h;t[19]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,Z.jsx)(`span`,{className:`text-xs text-text-3 md:hidden`,children:`Gültig bis `}),t[19]=h):h=t[19];let g;t[20]===n.bis?g=t[21]:(g=tn(n.bis),t[20]=n.bis,t[21]=g);let _;t[22]===g?_=t[23]:(_=(0,Z.jsx)(`span`,{className:`ziffern`,children:g}),t[22]=g,t[23]=_);let v;t[24]===n.rest_s?v=t[25]:(v=nn(n.rest_s),t[24]=n.rest_s,t[25]=v);let y;t[26]===v?y=t[27]:(y=(0,Z.jsx)(`span`,{className:`block text-xs text-text-3`,children:v}),t[26]=v,t[27]=y);let b;t[28]!==_||t[29]!==y?(b=(0,Z.jsxs)(`span`,{role:`cell`,className:`text-sm text-text-2`,children:[h,_,y]}),t[28]=_,t[29]=y,t[30]=b):b=t[30];let x=en[n.stufe],S;t[31]===x?S=t[32]:(S=a(`text-sm`,x),t[31]=x,t[32]=S);let C=n.problem??`in Ordnung`,w;t[33]!==S||t[34]!==C?(w=(0,Z.jsx)(`span`,{role:`cell`,className:S,children:C}),t[33]=S,t[34]=C,t[35]=w):w=t[35];let T;return t[36]!==m||t[37]!==b||t[38]!==w?(T=(0,Z.jsxs)(`div`,{role:`row`,className:i,children:[m,b,w]}),t[36]=m,t[37]=b,t[38]=w,t[39]=T):T=t[39],T}function an(e){let t=(0,X.c)(37),{daten:n}=e,r=n.zertifikate;if(!n.gelesen||r.length===0)return null;let i,o,s,c,l,u,d,f,p;if(t[0]!==r){o=r.filter(ln),i=r.some(cn),f=o.length>0,p=`flaeche-innen group rounded-2xl px-4 open:pb-3`,u=`flex min-h-12 cursor-pointer list-none flex-wrap items-center justify-between gap-x-3 gap-y-1 py-2 [&::-webkit-details-marker]:hidden`;let e;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Z.jsx)(D,{className:`size-4 text-text-3 transition-transform group-open:rotate-90`,"aria-hidden":!0}),t[10]=e):e=t[10],t[11]===r.length?d=t[12]:(d=(0,Z.jsxs)(`span`,{className:`flex items-center gap-2 text-[15px] font-medium`,children:[e,r.length,` Zertifikate`]}),t[11]=r.length,t[12]=d),s=a,c=`text-sm`,l=o.length?en[o.some(sn)?`rot`:`gelb`]:`text-text-2`,t[0]=r,t[1]=i,t[2]=o,t[3]=s,t[4]=c,t[5]=l,t[6]=u,t[7]=d,t[8]=f,t[9]=p}else i=t[1],o=t[2],s=t[3],c=t[4],l=t[5],u=t[6],d=t[7],f=t[8],p=t[9];let m;t[13]!==s||t[14]!==c||t[15]!==l?(m=s(c,l),t[13]=s,t[14]=c,t[15]=l,t[16]=m):m=t[16];let h=o.length?`${o.length} mit Problem`:`alle gültig`,g;t[17]!==m||t[18]!==h?(g=(0,Z.jsx)(`span`,{className:m,children:h}),t[17]=m,t[18]=h,t[19]=g):g=t[19];let _;t[20]!==g||t[21]!==u||t[22]!==d?(_=(0,Z.jsxs)(`summary`,{className:u,children:[d,g]}),t[20]=g,t[21]=u,t[22]=d,t[23]=_):_=t[23];let v;t[24]===Symbol.for(`react.memo_cache_sentinel`)?(v=(0,Z.jsxs)(`div`,{role:`row`,className:a(`etikett hidden gap-x-4 pt-1 pb-2.5 text-[10.5px] tracking-[0.14em] text-text-3 md:grid`,Qt),children:[(0,Z.jsx)(`span`,{role:`columnheader`,children:`Für`}),(0,Z.jsx)(`span`,{role:`columnheader`,children:`Gültig bis`}),(0,Z.jsx)(`span`,{role:`columnheader`,children:`Zustand`})]}),t[24]=v):v=t[24];let y;t[25]===r?y=t[26]:(y=r.map(on),t[25]=r,t[26]=y);let b;t[27]===y?b=t[28]:(b=(0,Z.jsxs)(`div`,{role:`table`,"aria-label":`Zertifikate`,className:`flex flex-col`,children:[v,y]}),t[27]=y,t[28]=b);let x;t[29]===i?x=t[30]:(x=i&&(0,Z.jsx)(`p`,{className:`m-0 border-t border-white/[0.06] pt-3 text-sm text-text-3`,children:`Die Zertifikate von NPMplus gelten nur knapp eine Woche und werden laufend erneuert — gemeldet wird erst, wenn eine Erneuerung ausbleibt.`}),t[29]=i,t[30]=x);let S;return t[31]!==_||t[32]!==b||t[33]!==x||t[34]!==f||t[35]!==p?(S=(0,Z.jsxs)(`details`,{open:f,className:p,children:[_,b,x]}),t[31]=_,t[32]=b,t[33]=x,t[34]=f,t[35]=p,t[36]=S):S=t[36],S}function on(e){return(0,Z.jsx)(rn,{z:e},`${e.quelle}-${e.datei}-${e.name}`)}function sn(e){return e.stufe===`rot`}function cn(e){return e.quelle===`npm`&&e.laufzeit_s!==null&&e.laufzeit_s<2592e3}function ln(e){return e.stufe!==`ok`}var un=[`Proxmox-Host`,`AdGuard`,`NPMplus`,`NetBird`,`PVE Scripts Local`,`Gitea`,`PBS`,`Arcane mit Docker`],dn={eingespielt:{art:`gruen`,text:`eingespielt`},zurueckgerollt:{art:`bernstein`,text:`zurückgerollt`},fehler:{art:`rot`,text:`Fehler`},neustart:{art:`cyan`,text:`Neustart`},aufgeraeumt:{art:`gruen`,text:`aufgeräumt`},offen:{art:`cyan`,text:`Probelauf`}},fn=e=>b(new Date(e*1e3).toISOString());function pn(){let e=(0,X.c)(4),t,n;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,Z.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,Z.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,Z.jsx)(`h3`,{className:`etikett text-[11.5px] tracking-[0.16em] 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,Z.jsxs)(Z.Fragment,{children:[t,n,(0,Z.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[r,(0,Z.jsx)(`ul`,{className:`flex flex-wrap gap-2`,children:un.map(mn)})]}),(0,Z.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 mn(e){return(0,Z.jsx)(`li`,{children:(0,Z.jsx)(V,{children:e})},e)}function hn(e){let t=(0,X.c)(9),{partner:n}=e,r;t[0]===n.eingerichtet?r=t[1]:(r=n.eingerichtet?(0,Z.jsx)(V,{art:`rot`,children:`Antwortet nicht`}):(0,Z.jsx)(V,{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,Z.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,Z.jsx)(pn,{}),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,Z.jsx)(J,{titel:`Homelab`,rechts:i,children:a}),t[6]=i,t[7]=a,t[8]=o):o=t[8],o}function gn(e){let t=(0,X.c)(12),{hinweise:n}=e,r,i;t[0]===n?(r=t[1],i=t[2]):(r=n.filter(vn),i=r.some(_n),t[0]=n,t[1]=r,t[2]=i);let a=i?`rot`:r.length?`bernstein`:`grau`,o=r.length?`${r.length} offen`:`alle stumm`,s;t[3]!==a||t[4]!==o?(s=(0,Z.jsx)(V,{art:a,children:o}),t[3]=a,t[4]=o,t[5]=s):s=t[5];let c;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(c=[],t[6]=c):c=t[6];let l;t[7]===n?l=t[8]:(l=(0,Z.jsx)(_e,{hinweise:n,verlauf:c,basis:`/api/homelab/hinweise`}),t[7]=n,t[8]=l);let u;return t[9]!==s||t[10]!==l?(u=(0,Z.jsx)(J,{titel:`Hinweise`,id:`hinweise`,rechts:s,children:l}),t[9]=s,t[10]=l,t[11]=u):u=t[11],u}function _n(e){return e.stufe===`rot`}function vn(e){return e.zustand!==`stumm`}function yn(e){let t=(0,X.c)(8),{laeufe:n}=e,r,i,a;if(t[0]!==n){a=Symbol.for(`react.early_return_sentinel`);bb0:{let e=n.filter(xn).slice(0,12);if(e.length===0){let e;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Z.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(bn)}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,Z.jsx)(`ol`,{className:r,children:i}),t[5]=r,t[6]=i,t[7]=o):o=t[7],o}function bn(e){let t=e.ergebnis?dn[e.ergebnis]??{art:`grau`,text:e.ergebnis}:{art:`grau`,text:`unterbrochen`};return(0,Z.jsxs)(`li`,{className:`flex flex-col gap-1.5 border-t border-white/[0.06] py-3 first:border-t-0 first:pt-0`,children:[(0,Z.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,Z.jsx)(`span`,{className:`ziffern col-start-1 row-start-1 text-sm text-text-3`,children:fn(e.start)}),(0,Z.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,Z.jsx)(`span`,{className:`col-start-2 row-start-1 justify-self-end @sm:col-start-3`,children:(0,Z.jsx)(V,{art:t.art,children:t.text})})]}),e.text&&(0,Z.jsx)(`p`,{className:`m-0 text-sm text-text-2 @sm:pl-[124px]`,children:e.text})]},e.id)}function xn(e){return e.status!==`laeuft`&&!pe(e)}function Sn(e){let t=(0,X.c)(9),{stand:n}=e;if(!n.ausfuehrer.verbunden){let e;t[0]===n.ausfuehrer.zuletzt?e=t[1]:(e=n.ausfuehrer.zuletzt?` (zuletzt ${fn(n.ausfuehrer.zuletzt)})`:``,t[0]=n.ausfuehrer.zuletzt,t[1]=e);let r;return t[2]===e?r=t[3]:(r=(0,Z.jsxs)(`p`,{role:`alert`,className:`rounded-2xl bg-bernstein/[0.08] px-4 py-3 text-[15px] text-bernstein ring-1 ring-bernstein/35 ring-inset`,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,Z.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=fn(n.bericht.empfangen),t[5]=n.bericht.empfangen,t[6]=e);let r;return t[7]===e?r=t[8]:(r=(0,Z.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 Cn(){let e=(0,X.c)(20),t=c(),n=s(),r=t.data?.rolle===`homelab`||!!(n.data?.eingerichtet&&n.data.erreichbar),i=y(r),a=_(r),o=E(r),l=S(),u=null;if(t.isPending||n.isPending){let t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,Z.jsx)(I,{text:`Wird gelesen …`}),e[0]=t):t=e[0],u=t}else if(!r){let t;e[1]!==n.data||e[2]!==n.error?.message?(t=n.data?(0,Z.jsx)(hn,{partner:n.data}):(0,Z.jsx)(I,{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],u=t}else if(i.isPending){let t;e[4]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,Z.jsx)(I,{text:`Der Homelab-Teil meldet sich gleich …`}),e[4]=t):t=e[4],u=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,Z.jsx)(I,{fehler:!0,text:t}),e[5]=t,e[6]=n),u=n}let d;if(e[7]!==a.data?.laeufe){d=new Map;for(let e of a.data?.laeufe??[])e.status===`laeuft`&&d.set(e.ziel,e.schritte.at(-1)??`startet …`);e[7]=a.data?.laeufe,e[8]=d}else d=e[8];let f;e[9]===a.data?.laeufe?f=e[10]:(f=a.data?.laeufe??[],e[9]=a.data?.laeufe,e[10]=f);let p;e[11]===o.data?.hinweise?p=e[12]:(p=o.data?.hinweise??[],e[11]=o.data?.hinweise,e[12]=p);let m;return e[13]!==l||e[14]!==u||e[15]!==i.data||e[16]!==d||e[17]!==f||e[18]!==p?(m={ersatz:u,stand:i.data,laufend:d,laeufe:f,hinweise:p,aktion:l},e[13]=l,e[14]=u,e[15]=i.data,e[16]=d,e[17]=f,e[18]=p,e[19]=m):m=e[19],m}function wn(){let e=(0,X.c)(67),t=ne(),{ersatz:n,stand:r,laufend:i,laeufe:a,hinweise:s,aktion:c}=Cn(),d=T(`1h`,!!r),p=w(!!r),m=f(!!r),h=o(),_=l(!!r),v=g(!!r),y=u();if(n||!r)return n;let b,x,S;if(e[0]!==s||e[1]!==a||e[2]!==r){b=r.bericht?fn(r.bericht.empfangen):null;let t;e[6]===a?t=e[7]:(t=new Set(a.filter(En).map(Tn)),e[6]=a,e[7]=t),x=t,S=B(r,s,x.size,b),e[0]=s,e[1]=a,e[2]=r,e[3]=b,e[4]=x,e[5]=S}else b=e[3],x=e[4],S=e[5];let C=S,E;e[8]!==C.ziel||e[9]!==t?(E=()=>{C.ziel===`updates`?t({to:`/homelab/updates`}):C.ziel&&document.getElementById(C.ziel)?.scrollIntoView({behavior:`smooth`,block:`start`})},e[8]=C.ziel,e[9]=t,e[10]=E):E=e[10];let D;e[11]===t?D=e[12]:(D=(e,n)=>{n?t({to:`/homelab/updates`}):document.getElementById(`geraet-${e.id}`)?.scrollIntoView({behavior:`smooth`,block:`center`})},e[11]=t,e[12]=D);let O;e[13]!==x||e[14]!==C||e[15]!==r.ziele||e[16]!==E||e[17]!==D?(O=(0,Z.jsx)(We,{lage:C,ziele:r.ziele,imUpdate:x,onAnsehen:E,onGeraet:D}),e[13]=x,e[14]=C,e[15]=r.ziele,e[16]=E,e[17]=D,e[18]=O):O=e[18];let k;e[19]===r?k=e[20]:(k=(0,Z.jsx)(Sn,{stand:r}),e[19]=r,e[20]=k);let A;e[21]===s?A=e[22]:(A=s.length>0&&(0,Z.jsx)(gn,{hinweise:s}),e[21]=s,e[22]=A);let j;e[23]===_.data?.geraete?j=e[24]:(j=_.data?.geraete??[],e[23]=_.data?.geraete,e[24]=j);let M;e[25]===_.data?.docker?M=e[26]:(M=_.data?.docker??[],e[25]=_.data?.docker,e[26]=M);let N=y.isPending||!r.ausfuehrer.verbunden,P;e[27]===y?P=e[28]:(P=(e,t)=>y.mutate({id:e,wahl:t}),e[27]=y,e[28]=P);let F;e[29]!==j||e[30]!==M||e[31]!==N||e[32]!==P?(F=(0,Z.jsx)(Xe,{geraete:j,stacks:M,gesperrt:N,onWahl:P}),e[29]=j,e[30]=M,e[31]=N,e[32]=P,e[33]=F):F=e[33];let I;e[34]===b?I=e[35]:(I=b&&(0,Z.jsxs)(`span`,{className:`ziffern text-sm text-text-3`,children:[`Stand `,b]}),e[34]=b,e[35]=I);let L;e[36]===Symbol.for(`react.memo_cache_sentinel`)?(L=(0,Z.jsxs)(se,{to:`/homelab/monitoring`,className:`inline-flex items-center gap-1 text-sm text-lab-text hover:underline`,children:[`Monitoring `,(0,Z.jsx)(de,{className:`size-3.5`,"aria-hidden":!0})]}),e[36]=L):L=e[36];let R;e[37]===I?R=e[38]:(R=(0,Z.jsxs)(`span`,{className:`flex items-center gap-3`,children:[I,L]}),e[37]=I,e[38]=R);let z=d.data?.geraete,V;e[39]!==r.ziele||e[40]!==z?(V=(0,Z.jsx)(Be,{ziele:r.ziele,messwerte:z}),e[39]=r.ziele,e[40]=z,e[41]=V):V=e[41];let H;e[42]===d.isError?H=e[43]:(H=d.isError&&(0,Z.jsx)(`p`,{className:`text-xs text-text-3`,children:`CPU und Speicher erscheinen, sobald der Ausführer Messwerte schickt.`}),e[42]=d.isError,e[43]=H);let U;e[44]!==R||e[45]!==V||e[46]!==H?(U=(0,Z.jsxs)(J,{titel:`Geräte`,id:`geraete`,rechts:R,children:[V,H]}),e[44]=R,e[45]=V,e[46]=H,e[47]=U):U=e[47];let W;e[48]===v.data?W=e[49]:(W=v.data?.verfuegbar&&v.data.stacks.length>0&&(0,Z.jsx)(J,{titel:`Docker-Dienste`,id:`docker`,children:(0,Z.jsx)(je,{lage:v.data})}),e[48]=v.data,e[49]=W);let G;e[50]!==c||e[51]!==i||e[52]!==h||e[53]!==p.data||e[54]!==r.ausfuehrer?(G=p.data?.bericht&&(0,Z.jsx)(J,{titel:`Speicher und Sicherungen`,id:`speicher`,children:(0,Z.jsx)(yt,{daten:p.data,laeuft:i.get(`pve`)??null,gesperrt:c.isPending||i.has(`pve`)||!r.ausfuehrer.verbunden,onAktion:e=>c.mutate(e),onProbe:()=>h.mutate(void 0),probeGesperrt:h.isPending||!r.ausfuehrer.verbunden,snapshotsLink:(0,Z.jsxs)(se,{to:`/homelab/snapshots`,className:`inline-flex min-h-10 items-center gap-1 self-start text-sm text-lab-text hover:underline`,children:[`Zu den Snapshots `,(0,Z.jsx)(de,{className:`size-3.5`,"aria-hidden":!0})]})})}),e[50]=c,e[51]=i,e[52]=h,e[53]=p.data,e[54]=r.ausfuehrer,e[55]=G):G=e[55];let K;e[56]===m.data?K=e[57]:(K=m.data?.gelesen&&m.data.zertifikate.length>0&&(0,Z.jsx)(J,{titel:`Zertifikate`,id:`zertifikate`,children:(0,Z.jsx)(an,{daten:m.data})}),e[56]=m.data,e[57]=K);let q;return e[58]!==F||e[59]!==U||e[60]!==W||e[61]!==G||e[62]!==K||e[63]!==O||e[64]!==k||e[65]!==A?(q=(0,Z.jsxs)(Z.Fragment,{children:[O,k,A,F,U,W,G,K]}),e[58]=F,e[59]=U,e[60]=W,e[61]=G,e[62]=K,e[63]=O,e[64]=k,e[65]=A,e[66]=q):q=e[66],q}function Tn(e){return e.ziel}function En(e){return e.status===`laeuft`&&!pe(e)}function Dn(){let e=(0,X.c)(30),{ersatz:t,stand:n,laufend:r,laeufe:i,aktion:a}=Cn(),o=p(!!n),s=h();if(t||!n)return t;let c=o.data?.sammellauf??null,l=c?.status===`laeuft`,u;e[0]===n.ziele?u=e[1]:(u=he(n.ziele).filter(On),e[0]=n.ziele,e[1]=u);let d=u.length,f=a.isPending||l||!n.ausfuehrer.verbunden,m;e[2]!==d||e[3]!==f?(m=(0,Z.jsx)(Ot,{anzahl:d,gesperrt:f}),e[2]=d,e[3]=f,e[4]=m):m=e[4];let g;e[5]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,Z.jsx)(`p`,{className:`-mt-2 text-[15px] text-text-2`,children:`Je Gerät, was läuft und was neu ist. Du startest jedes Update selbst — einzeln oder alle nacheinander. Vorher wird gesichert, danach geprüft; ist die Prüfung rot, geht es von selbst zurück.`}),e[5]=g):g=e[5];let _;e[6]===n?_=e[7]:(_=(0,Z.jsx)(Sn,{stand:n}),e[6]=n,e[7]=_);let v;e[8]!==c||e[9]!==s||e[10]!==l||e[11]!==n.bericht?.empfangen?(v=c&&(l||c.ende&&(n.bericht?.empfangen??0)-c.ende<21600)&&(0,Z.jsx)(Mt,{lauf:c,onQuittieren:()=>s.mutate(c.id)}),e[8]=c,e[9]=s,e[10]=l,e[11]=n.bericht?.empfangen,e[12]=v):v=e[12];let y=a.isPending||l||!n.ausfuehrer.verbunden,b;e[13]===a?b=e[14]:(b=e=>a.mutate(e),e[13]=a,e[14]=b);let x;e[15]!==r||e[16]!==n.ziele||e[17]!==y||e[18]!==b?(x=(0,Z.jsx)(Yt,{ziele:n.ziele,laufend:r,gesperrt:y,onAktion:b}),e[15]=r,e[16]=n.ziele,e[17]=y,e[18]=b,e[19]=x):x=e[19];let S;e[20]!==m||e[21]!==_||e[22]!==v||e[23]!==x?(S=(0,Z.jsxs)(J,{titel:`Updates`,rechts:m,children:[g,_,v,x]}),e[20]=m,e[21]=_,e[22]=v,e[23]=x,e[24]=S):S=e[24];let C;e[25]===i?C=e[26]:(C=(0,Z.jsx)(J,{titel:`Verlauf`,children:(0,Z.jsx)(yn,{laeufe:i})}),e[25]=i,e[26]=C);let w;return e[27]!==C||e[28]!==S?(w=(0,Z.jsxs)(Z.Fragment,{children:[S,C]}),e[27]=C,e[28]=S,e[29]=w):w=e[29],w}function On(e){return e.baustein.aktion}export{wn as HomelabSeite,Dn as HomelabUpdatesSeite}; \ No newline at end of file diff --git a/frontend/dist/assets/Homelab-akzHSA8K.js b/frontend/dist/assets/Homelab-akzHSA8K.js deleted file mode 100644 index 72da1b9..0000000 --- a/frontend/dist/assets/Homelab-akzHSA8K.js +++ /dev/null @@ -1 +0,0 @@ -import{a as e,c as t,i as n,n as r,r as i,t as a}from"./dist-aE7UmubC.js";import{D as o,F as s,G as c,I as l,K as u,P as d,R as f,T as p,Y as m,_ as h,b as g,dt as _,g as v,it as y,ot as b,q as x,r as S,w as C,x as w,y as T}from"./abfragen-DKcWnZ8a.js";import{t as E}from"./chevron-right-DF8ikrVh.js";import{n as D,t as O}from"./undo-2-B8COJmAr.js";import{B as k,G as A,H as j,J as M,K as N,M as P,N as F,O as I,S as L,U as ee,V as R,W as z,X as B,Y as V,Z as H,_ as U,at as te,b as W,et as G,it as K,j as q,n as ne,ot as re,q as ie,r as J,rt as ae,s as oe,st as se,t as ce,v as le,x as ue,y as de,z as fe}from"./index-BUHDF9RN.js";import{t as Y}from"./button-DwYvdWVr.js";import{t as pe}from"./Bestaetigen-BemBWZzN.js";import{t as X}from"./Panel-uT1S5ZGr.js";import{n as me,r as he,t as ge}from"./Lagekopf-6I8J8n-l.js";var _e={name:`circle-dashed`,size:24,node:[[`path`,{d:`M10.1 2.182a10 10 0 0 1 3.8 0`,key:`5ilxe3`}],[`path`,{d:`M13.9 21.818a10 10 0 0 1-3.8 0`,key:`11zvb9`}],[`path`,{d:`M17.609 3.721a10 10 0 0 1 2.69 2.7`,key:`1iw5b2`}],[`path`,{d:`M2.182 13.9a10 10 0 0 1 0-3.8`,key:`c0bmvh`}],[`path`,{d:`M20.279 17.609a10 10 0 0 1-2.7 2.69`,key:`1ruxm7`}],[`path`,{d:`M21.818 10.1a10 10 0 0 1 0 3.8`,key:`qkgqxc`}],[`path`,{d:`M3.721 6.391a10 10 0 0 1 2.7-2.69`,key:`1mcia2`}],[`path`,{d:`M6.391 20.279a10 10 0 0 1-2.69-2.7`,key:`1fvljs`}]]};_e.node;var ve=r(_e),ye={name:`loader-circle`,size:24,node:[[`path`,{d:`M21 12a9 9 0 1 1-6.219-8.56`,key:`13zald`}]],aliases:[`loader-2`]};ye.node;var be=r(ye),xe={name:`skip-forward`,size:24,node:[[`path`,{d:`M21 4v16`,key:`7j8fe9`}],[`path`,{d:`M6.029 4.285A2 2 0 0 0 3 6v12a2 2 0 0 0 3.029 1.715l9.997-5.998a2 2 0 0 0 .003-3.432z`,key:`zs4d6`}]]};xe.node;var Se=r(xe),Z=i(),Q=n(),Ce={neu:{text:`Update verfügbar`,klasse:`text-cyan-text`},lokal:{text:`lokal gebaut`,klasse:`text-text-3`},aktuell:{text:`aktuell`,klasse:`text-text-3`},unbekannt:{text:`Update-Stand unklar`,klasse:`text-bernstein`}};function we(e){return e.zustand===`restarting`||e.gesund===!1?`rot`:e.zustand===`running`?`ok`:`aus`}function Te(e){return e.gesund===!1?`ungesund`:e.zustand===`restarting`?`startet immer wieder neu`:e.zustand===`running`?e.gesund?`läuft, gesund`:`läuft`:e.zustand===`exited`?`beendet`:e.zustand===`paused`?`angehalten`:e.zustand}var Ee=e=>(e??``).split(`/`).at(-1)?.split(`:`)[0]??``;function De(e){let t=e.luecken;return!t||!t.kritisch&&!t.hoch?null:`${[t.kritisch?`${t.kritisch} kritische`:null,t.hoch?`${t.hoch} hohe`:null].filter(Boolean).join(`, `)} Lücken`}function Oe(e){let t=(0,Z.c)(42),{c:n}=e,r=Ce[n.update]??Ce.unbekannt,i;t[0]===n?i=t[1]:(i=De(n),t[0]=n,t[1]=i);let o=i,s;t[2]!==n.dienst||t[3]!==n.image?(s=q({art:`container`,name:n.dienst??Ee(n.image)}),t[2]=n.dienst,t[3]=n.image,t[4]=s):s=t[4];let c;t[5]===n?c=t[6]:(c=we(n),t[5]=n,t[6]=c);let l;t[7]!==s||t[8]!==c?(l=(0,Q.jsx)(I,{bild:s,groesse:`sm`,punkt:c}),t[7]=s,t[8]=c,t[9]=l):l=t[9];let u;t[10]===n.name?u=t[11]:(u=(0,Q.jsx)(`span`,{className:`truncate text-[14.5px] font-medium`,children:n.name}),t[10]=n.name,t[11]=u);let d;t[12]===n.image?d=t[13]:(d=(0,Q.jsx)(`span`,{className:`truncate text-[12.5px] text-text-3`,children:n.image}),t[12]=n.image,t[13]=d);let f;t[14]!==n.luecken?.kritisch||t[15]!==o?(f=o&&(0,Q.jsx)(`span`,{className:a(`truncate text-[12.5px]`,n.luecken?.kritisch?`text-rot-text`:`text-bernstein`),children:o}),t[14]=n.luecken?.kritisch,t[15]=o,t[16]=f):f=t[16];let p;t[17]!==u||t[18]!==d||t[19]!==f?(p=(0,Q.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col`,children:[u,d,f]}),t[17]=u,t[18]=d,t[19]=f,t[20]=p):p=t[20];let m;t[21]===n?m=t[22]:(m=we(n)===`rot`?`text-rot-text`:`text-text-2`,t[21]=n,t[22]=m);let h;t[23]===m?h=t[24]:(h=a(`text-[13px]`,m),t[23]=m,t[24]=h);let g;t[25]===n?g=t[26]:(g=Te(n),t[25]=n,t[26]=g);let _;t[27]!==h||t[28]!==g?(_=(0,Q.jsx)(`span`,{className:h,children:g}),t[27]=h,t[28]=g,t[29]=_):_=t[29];let v;t[30]===r.klasse?v=t[31]:(v=a(`text-[12px]`,r.klasse),t[30]=r.klasse,t[31]=v);let y;t[32]!==v||t[33]!==r.text?(y=(0,Q.jsx)(`span`,{className:v,children:r.text}),t[32]=v,t[33]=r.text,t[34]=y):y=t[34];let b;t[35]!==_||t[36]!==y?(b=(0,Q.jsxs)(`span`,{className:`flex shrink-0 flex-col items-end text-right`,children:[_,y]}),t[35]=_,t[36]=y,t[37]=b):b=t[37];let x;return t[38]!==b||t[39]!==l||t[40]!==p?(x=(0,Q.jsxs)(`li`,{className:`flex min-w-0 items-center gap-3 border-t border-white/[0.06] py-2.5 first:border-t-0`,children:[l,p,b]}),t[38]=b,t[39]=l,t[40]=p,t[41]=x):x=t[41],x}function ke(e){let t=(0,Z.c)(4),{lage:n}=e;if(!n.verfuegbar||n.stacks.length===0)return null;let r;t[0]===n.stacks?r=t[1]:(r=n.stacks.map(Ae),t[0]=n.stacks,t[1]=r);let i;return t[2]===r?i=t[3]:(i=(0,Q.jsx)(`div`,{className:`grid gap-3 md:grid-cols-2 2xl:grid-cols-3`,children:r}),t[2]=r,t[3]=i),i}function Ae(e){let t=e.container.filter(Ne).length,n=e.container.filter(Me).length;return(0,Q.jsxs)(`section`,{"aria-label":`Stack ${e.name}`,className:`flaeche-innen flex min-w-0 flex-col rounded-2xl px-4 py-3`,children:[(0,Q.jsxs)(`div`,{className:`flex items-baseline justify-between gap-3 pb-1`,children:[(0,Q.jsx)(`h3`,{className:`m-0 truncate text-[15px] font-semibold`,children:e.name}),(0,Q.jsxs)(`span`,{className:`shrink-0 text-[12.5px] text-text-3`,children:[t,` von `,e.container.length,` laufen`,n?` · ${n} mit Update`:``]})]}),(0,Q.jsx)(`ul`,{className:`m-0 list-none p-0`,children:e.container.map(je)})]},e.name)}function je(e){return(0,Q.jsx)(Oe,{c:e},e.id)}function Me(e){return e.update===`neu`}function Ne(e){return e.zustand===`running`}var Pe=`md:grid-cols-[minmax(0,1.35fr)_110px_minmax(0,1fr)_minmax(0,1.2fr)_minmax(0,1fr)_90px]`,Fe=e=>(e/1e9).toFixed(1).replace(`.`,`,`);function Ie(e){let t=(0,Z.c)(20),{wert:n,gelb:r,rot:i,zusatz:o,unter:s}=e;if(n==null){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Q.jsx)(`span`,{className:`text-sm text-text-3`,children:`–`}),t[0]=e):e=t[0],e}let c=n>=i?`var(--rot)`:n>=r?`var(--bernstein)`:`color-mix(in srgb, var(--lab) 80%, transparent)`,l=n>=i?`text-rot-text`:n>=r?`text-bernstein`:`text-text-2`,u;t[1]===l?u=t[2]:(u=a(`ziffern text-sm`,l),t[1]=l,t[2]=u);let d;t[3]===n?d=t[4]:(d=Math.round(n),t[3]=n,t[4]=d);let f;t[5]===o?f=t[6]:(f=o&&(0,Q.jsxs)(`span`,{className:`font-sans text-xs text-text-3`,children:[` · `,o]}),t[5]=o,t[6]=f);let p;t[7]!==u||t[8]!==d||t[9]!==f?(p=(0,Q.jsxs)(`span`,{className:u,children:[d,` %`,f]}),t[7]=u,t[8]=d,t[9]=f,t[10]=p):p=t[10];let m=`${Math.min(100,Math.max(2,n))}%`,h;t[11]!==c||t[12]!==m?(h=(0,Q.jsx)(`span`,{className:`h-1.5 w-full max-w-40 overflow-hidden rounded-full bg-white/[0.07]`,"aria-hidden":!0,children:(0,Q.jsx)(`span`,{className:`block h-full rounded-full`,style:{width:m,background:c}})}),t[11]=c,t[12]=m,t[13]=h):h=t[13];let g;t[14]===s?g=t[15]:(g=s&&(0,Q.jsx)(`span`,{className:a(`text-xs`,U[s.stufe]),children:s.text}),t[14]=s,t[15]=g);let _;return t[16]!==p||t[17]!==h||t[18]!==g?(_=(0,Q.jsxs)(`span`,{className:`flex min-w-0 flex-col gap-1.5`,children:[p,h,g]}),t[16]=p,t[17]=h,t[18]=g,t[19]=_):_=t[19],_}function Le(e){if(e.erreichbar===!1)return 0;let t=ie(e);return t!==null&&t>=.8?1:e.art===`proxmox-host`?2:3}function Re(e){let t=(0,Z.c)(4),{ziele:n,messwerte:r}=e,i;if(t[0]!==r||t[1]!==n){let e=new Map((r??[]).map(Ve)),o=new Map((r??[]).map(Be)),s=[...n].sort(ze),c;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,Q.jsxs)(`div`,{role:`row`,className:a(`etikett hidden gap-x-4 pb-2.5 text-[10.5px] tracking-[0.14em] text-text-3 md:grid`,Pe),children:[(0,Q.jsx)(`span`,{role:`columnheader`,children:`Gerät`}),(0,Q.jsx)(`span`,{role:`columnheader`,children:`Netz`}),(0,Q.jsx)(`span`,{role:`columnheader`,children:`CPU`}),(0,Q.jsx)(`span`,{role:`columnheader`,children:`Speicher`}),(0,Q.jsx)(`span`,{role:`columnheader`,children:`Platte`}),(0,Q.jsx)(`span`,{role:`columnheader`,children:`Läuft seit`})]}),t[3]=c):c=t[3],i=(0,Q.jsxs)(`div`,{role:`table`,"aria-label":`Zustand der Geräte`,className:`flex flex-col`,children:[c,s.map(t=>{let n=e.get(t.id),r=n?.platte??(ie(t)===null?null:ie(t)*100),i=n?.ram_used&&n.ram_total?`${Fe(n.ram_used)} / ${Fe(n.ram_total)} GB`:void 0;return(0,Q.jsxs)(`div`,{id:`geraet-${t.id}`,role:`row`,className:a(`grid scroll-mt-24 grid-cols-2 gap-x-4 gap-y-2 border-t border-white/[0.06] py-3 md:items-center`,Pe),children:[(0,Q.jsxs)(`div`,{role:`rowheader`,className:`col-span-2 flex min-w-0 items-center gap-3 md:col-span-1`,children:[(0,Q.jsx)(I,{bild:q(t),groesse:`sm`,punkt:t.erreichbar===!1?`rot`:t.erreichbar?`ok`:null}),(0,Q.jsxs)(`span`,{className:`flex min-w-0 flex-col`,children:[(0,Q.jsx)(re,{to:`/homelab/monitoring`,hash:t.id,className:`text-[15px] font-semibold break-words hover:text-lab-text`,children:t.name}),(0,Q.jsxs)(`span`,{className:`flex flex-wrap gap-x-2 text-[13px] text-text-3`,children:[k(t)!==t.name&&(0,Q.jsx)(`span`,{children:k(t)}),(0,Q.jsx)(re,{to:`/homelab/protokoll`,hash:t.id,className:`text-lab-text hover:underline`,children:`Zeitleiste`})]})]})]}),(0,Q.jsxs)(`span`,{role:`cell`,className:a(`flex items-center gap-1.5 text-[13px]`,t.erreichbar===!1?`text-rot-text`:`text-text-3`),children:[t.erreichbar!==null&&(0,Q.jsx)(`span`,{"aria-hidden":!0,className:a(`size-1.5 rounded-full`,t.erreichbar?`bg-gruen`:`bg-rot`)}),t.erreichbar===null?`–`:t.erreichbar?`erreichbar`:`antwortet nicht`]}),(0,Q.jsxs)(`span`,{role:`cell`,children:[(0,Q.jsx)(`span`,{className:`text-xs text-text-3 md:hidden`,children:`CPU `}),(0,Q.jsx)(Ie,{wert:n?.cpu,gelb:85,rot:95})]}),(0,Q.jsxs)(`span`,{role:`cell`,children:[(0,Q.jsx)(`span`,{className:`text-xs text-text-3 md:hidden`,children:`Speicher `}),(0,Q.jsx)(Ie,{wert:n?.ram,gelb:85,rot:95,zusatz:i})]}),(0,Q.jsxs)(`span`,{role:`cell`,children:[(0,Q.jsx)(`span`,{className:`text-xs text-text-3 md:hidden`,children:`Platte `}),(0,Q.jsx)(Ie,{wert:r,gelb:80,rot:90,unter:le(o.get(t.id))})]}),(0,Q.jsxs)(`span`,{role:`cell`,className:`ziffern text-sm text-text-2`,children:[(0,Q.jsx)(`span`,{className:`font-sans text-xs text-text-3 md:hidden`,children:`Läuft seit `}),L(n?.uptime_s)]})]},t.id)})]}),t[0]=r,t[1]=n,t[2]=i}else i=t[2];return i}function ze(e,t){return Le(e)-Le(t)}function Be(e){return[e.id,e.prognose?.platte]}function Ve(e){return[e.id,e.aktuell]}function He(e){let t=(0,Z.c)(15),{lage:n,ziele:r,imUpdate:i,onAnsehen:a,onGeraet:o}=e,s=n.art,c=n.oben,l=n.mitte,u=n.unten,d=n.ziel!==null,f;if(t[0]!==i||t[1]!==o||t[2]!==r){let e;t[4]!==i||t[5]!==o?(e=e=>{let t=z(e,i.has(e.id)),n=R(e.kennzahl);return(0,Q.jsx)(ge,{bild:q(e),name:j(e),wert:t.wert,zustand:t.zustand,zahl:n?{text:n,stufe:e.kennzahl?.stufe}:null,onClick:()=>o(e,t.zustand===`info`)},e.id)},t[4]=i,t[5]=o,t[6]=e):e=t[6],f=r.map(e),t[0]=i,t[1]=o,t[2]=r,t[3]=f}else f=t[3];let p;return t[7]!==n.art||t[8]!==n.mitte||t[9]!==n.oben||t[10]!==n.unten||t[11]!==a||t[12]!==d||t[13]!==f?(p=(0,Q.jsx)(me,{art:s,oben:c,mitte:l,unten:u,aktiv:d,onAnsehen:a,label:`Lage im Homelab`,children:f}),t[7]=n.art,t[8]=n.mitte,t[9]=n.oben,t[10]=n.unten,t[11]=a,t[12]=d,t[13]=f,t[14]=p):p=t[14],p}var $=t(e(),1),Ue={skript:`Updates über das Community-Script`,"eigene-oberflaeche":`Updates über die eigene Oberfläche der App`,pakete:`Updates über die Pakete im Gast`};function We(e){let t=(0,Z.c)(60),{g:n,gesperrt:r,onWahl:i}=e,a=n.app?.kennung??n.hostname??n.name,o;t[0]!==n.art||t[1]!==a?(o=q({art:n.art,name:a}),t[0]=n.art,t[1]=a,t[2]=o):o=t[2];let s=o,c=n.app?`${n.app.name}${n.app.quelle?` (GitHub ${n.app.quelle})`:``}`:`App unbekannt`,l=n.app?Ue[n.app.weg]??n.app.weg:null,u=n.app?.adresse?`Weboberfläche ${n.app.adresse} wird geprüft`:n.app?`Weboberfläche nicht gefunden, keine Webprüfung`:null,d;t[3]!==c||t[4]!==l||t[5]!==u?(d=[c,l,u].filter(Boolean),t[3]=c,t[4]=l,t[5]=u,t[6]=d):d=t[6];let f=d,p=n.status===`running`?`ok`:`aus`,m;t[7]!==s||t[8]!==p?(m=(0,Q.jsx)(I,{bild:s,groesse:`md`,punkt:p}),t[7]=s,t[8]=p,t[9]=m):m=t[9];let h;t[10]===n.name?h=t[11]:(h=(0,Q.jsx)(`span`,{className:`text-[15px] font-semibold break-words`,children:n.name}),t[10]=n.name,t[11]=h);let g=n.art===`container`?`Container`:`VM`,_=n.hostname&&n.hostname!==n.name?` · „${n.hostname}“`:``,v;t[12]===n.erstmals?v=t[13]:(v=n.erstmals?` · entdeckt ${b(new Date(n.erstmals*1e3).toISOString()).toLowerCase()}`:``,t[12]=n.erstmals,t[13]=v);let y;t[14]!==n.vmid||t[15]!==g||t[16]!==_||t[17]!==v?(y=(0,Q.jsxs)(`span`,{className:`text-[13px] text-text-3`,children:[g,` `,n.vmid,_,v]}),t[14]=n.vmid,t[15]=g,t[16]=_,t[17]=v,t[18]=y):y=t[18];let x;t[19]!==y||t[20]!==h?(x=(0,Q.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-0.5`,children:[h,y]}),t[19]=y,t[20]=h,t[21]=x):x=t[21];let S;t[22]!==x||t[23]!==m?(S=(0,Q.jsxs)(`div`,{className:`flex items-start gap-3`,children:[m,x]}),t[22]=x,t[23]=m,t[24]=S):S=t[24];let C;t[25]===f?C=t[26]:(C=f.map(Ge),t[25]=f,t[26]=C);let w;t[27]!==n.community_script||t[28]!==n.freigegeben?(w=n.freigegeben&&(0,Q.jsxs)(`li`,{children:[`Schon freigegeben (Etikett `,n.community_script?`community-script`:`watcher`,`).`]}),t[27]=n.community_script,t[28]=n.freigegeben,t[29]=w):w=t[29];let T;t[30]===n.ohne_sicherung?T=t[31]:(T=n.ohne_sicherung&&(0,Q.jsx)(`li`,{className:`text-bernstein`,children:`In keinem Sicherungsauftrag — in Proxmox: Rechenzentrum → Backup → den Auftrag bearbeiten.`}),t[30]=n.ohne_sicherung,t[31]=T);let E;t[32]!==C||t[33]!==w||t[34]!==T?(E=(0,Q.jsxs)(`ul`,{className:`m-0 flex list-none flex-col gap-1 p-0 text-sm text-text-2`,children:[C,w,T]}),t[32]=C,t[33]=w,t[34]=T,t[35]=E):E=t[35];let D;t[36]!==n.ausgeschlossen||t[37]!==n.freigegeben||t[38]!==r||t[39]!==i?(D=!n.freigegeben&&!n.ausgeschlossen&&(0,Q.jsx)(Y,{size:`sm`,disabled:r,onClick:()=>i(`freigeben`),children:`Für Updates freigeben`}),t[36]=n.ausgeschlossen,t[37]=n.freigegeben,t[38]=r,t[39]=i,t[40]=D):D=t[40];let O=n.freigegeben?`default`:`outline`,k;t[41]===i?k=t[42]:(k=()=>i(`beobachten`),t[41]=i,t[42]=k);let A=n.freigegeben?`Übernehmen`:`Nur beobachten`,j;t[43]!==r||t[44]!==O||t[45]!==k||t[46]!==A?(j=(0,Q.jsx)(Y,{variant:O,size:`sm`,disabled:r,onClick:k,children:A}),t[43]=r,t[44]=O,t[45]=k,t[46]=A,t[47]=j):j=t[47];let M;t[48]!==n.ausgeschlossen||t[49]!==r||t[50]!==i?(M=!n.ausgeschlossen&&(0,Q.jsx)(Y,{variant:`ghost`,size:`sm`,disabled:r,onClick:()=>i(`ausschliessen`),children:`Nicht anfassen`}),t[48]=n.ausgeschlossen,t[49]=r,t[50]=i,t[51]=M):M=t[51];let N;t[52]!==D||t[53]!==j||t[54]!==M?(N=(0,Q.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[D,j,M]}),t[52]=D,t[53]=j,t[54]=M,t[55]=N):N=t[55];let P;return t[56]!==S||t[57]!==E||t[58]!==N?(P=(0,Q.jsxs)(`li`,{className:`flaeche-innen flex flex-col gap-3 rounded-2xl p-4`,children:[S,E,N]}),t[56]=S,t[57]=E,t[58]=N,t[59]=P):P=t[59],P}function Ge(e){return(0,Q.jsx)(`li`,{children:e},e)}var Ke={freigeben:{titel:`Für Updates freigeben?`,text:`Der Orchestrator setzt in Proxmox das Etikett „watcher“. Danach darf er dort Snapshots anlegen und Updates einspielen — immer erst nach deinem Klick, mit Snapshot vorher und Rückweg bei Rot.`,knopf:`Freigeben`},beobachten:{titel:`Nur beobachten?`,text:``,knopf:`Übernehmen`},ausschliessen:{titel:`Nicht anfassen?`,text:`Der Orchestrator setzt in Proxmox das Etikett „watcher-aus“ und lässt das Gerät dann auch bei „Alle aktualisieren“ aus.`,knopf:`Nicht anfassen`}};function qe(e){let t=(0,Z.c)(29),{s:n,gesperrt:r,onWahl:i}=e,a;t[0]===n.name?a=t[1]:(a=q({art:`container`,name:n.name}),t[0]=n.name,t[1]=a);let o;t[2]===a?o=t[3]:(o=(0,Q.jsx)(I,{bild:a,groesse:`md`,punkt:`ok`}),t[2]=a,t[3]=o);let s;t[4]===n.name?s=t[5]:(s=(0,Q.jsxs)(`span`,{className:`text-[15px] font-semibold break-words`,children:[`Docker-Stack `,n.name]}),t[4]=n.name,t[5]=s);let c;t[6]===n.erstmals?c=t[7]:(c=n.erstmals?` · entdeckt ${b(new Date(n.erstmals*1e3).toISOString()).toLowerCase()}`:``,t[6]=n.erstmals,t[7]=c);let l;t[8]===c?l=t[9]:(l=(0,Q.jsxs)(`span`,{className:`text-[13px] text-text-3`,children:[`unter Arcane`,c]}),t[8]=c,t[9]=l);let u;t[10]!==s||t[11]!==l?(u=(0,Q.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-0.5`,children:[s,l]}),t[10]=s,t[11]=l,t[12]=u):u=t[12];let d;t[13]!==o||t[14]!==u?(d=(0,Q.jsxs)(`div`,{className:`flex items-start gap-3`,children:[o,u]}),t[13]=o,t[14]=u,t[15]=d):d=t[15];let f;t[16]===n.container?f=t[17]:(f=n.container.join(`, `)||`–`,t[16]=n.container,t[17]=f);let p;t[18]===f?p=t[19]:(p=(0,Q.jsxs)(`p`,{className:`m-0 text-sm break-words text-text-2`,children:[`Container: `,f]}),t[18]=f,t[19]=p);let m;t[20]===i?m=t[21]:(m=()=>i(`beobachten`),t[20]=i,t[21]=m);let h;t[22]!==r||t[23]!==m?(h=(0,Q.jsx)(Y,{size:`sm`,className:`self-start`,disabled:r,onClick:m,children:`Übernehmen`}),t[22]=r,t[23]=m,t[24]=h):h=t[24];let g;return t[25]!==h||t[26]!==d||t[27]!==p?(g=(0,Q.jsxs)(`li`,{className:`flaeche-innen flex flex-col gap-3 rounded-2xl p-4`,children:[d,p,h]}),t[25]=h,t[26]=d,t[27]=p,t[28]=g):g=t[28],g}function Je(e){let t=(0,Z.c)(38),{geraete:n,stacks:r,gesperrt:i,onWahl:o}=e,s;t[0]===r?s=t[1]:(s=r===void 0?[]:r,t[0]=r,t[1]=s);let c=s,[l,u]=(0,$.useState)(null),d=n.length+c.length;if(d===0)return null;let f;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(f=a(`-mt-2 text-[15px] text-text-2`),t[2]=f):f=t[2];let p=d===1?`Eins kennt`:`${d} kennt`,m=d===1?` es`:` sie`,h;t[3]!==p||t[4]!==m?(h=(0,Q.jsxs)(`p`,{className:f,children:[p,` der Orchestrator noch nicht. Entscheide, ob er`,m,` nur beobachtet oder auch aktualisieren darf.`]}),t[3]=p,t[4]=m,t[5]=h):h=t[5];let g;if(t[6]!==n||t[7]!==i||t[8]!==o){let e;t[10]!==i||t[11]!==o?(e=e=>(0,Q.jsx)(We,{g:e,gesperrt:i,onWahl:t=>t===`beobachten`?o(e.id,t):u({g:e,wahl:t})},e.id),t[10]=i,t[11]=o,t[12]=e):e=t[12],g=n.map(e),t[6]=n,t[7]=i,t[8]=o,t[9]=g}else g=t[9];let _;if(t[13]!==i||t[14]!==o||t[15]!==c){let e;t[17]!==i||t[18]!==o?(e=e=>(0,Q.jsx)(qe,{s:e,gesperrt:i,onWahl:t=>o(e.id,t)},e.id),t[17]=i,t[18]=o,t[19]=e):e=t[19],_=c.map(e),t[13]=i,t[14]=o,t[15]=c,t[16]=_}else _=t[16];let v;t[20]!==g||t[21]!==_?(v=(0,Q.jsxs)(`ul`,{className:`m-0 grid list-none gap-3 p-0 md:grid-cols-2`,children:[g,_]}),t[20]=g,t[21]=_,t[22]=v):v=t[22];let y=!!l,b=l?`${l.g.name}: ${Ke[l.wahl].titel}`:``,x=l?Ke[l.wahl].text:``,S=l?Ke[l.wahl].knopf:``,C;t[23]===Symbol.for(`react.memo_cache_sentinel`)?(C=()=>u(null),t[23]=C):C=t[23];let w;t[24]!==l||t[25]!==o?(w=()=>{l&&o(l.g.id,l.wahl),u(null)},t[24]=l,t[25]=o,t[26]=w):w=t[26];let T;t[27]!==i||t[28]!==y||t[29]!==b||t[30]!==x||t[31]!==S||t[32]!==w?(T=(0,Q.jsx)(pe,{offen:y,titel:b,text:x,knopf:S,gesperrt:i,onNein:C,onJa:w}),t[27]=i,t[28]=y,t[29]=b,t[30]=x,t[31]=S,t[32]=w,t[33]=T):T=t[33];let E;return t[34]!==T||t[35]!==h||t[36]!==v?(E=(0,Q.jsxs)(X,{titel:`Neu entdeckt`,id:`neu`,children:[h,v,T]}),t[34]=T,t[35]=h,t[36]=v,t[37]=E):E=t[37],E}var Ye=`md:grid-cols-[minmax(0,1.3fr)_minmax(0,1fr)_minmax(0,1.1fr)_minmax(0,1.1fr)]`,Xe=e=>b(new Date(e*1e3).toISOString()).toLowerCase();function Ze(e){let t=(0,Z.c)(8),{titel:n,children:r,className:i}=e,o;t[0]===i?o=t[1]:(o=a(`text-sm text-text-2`,i),t[0]=i,t[1]=o);let s;t[2]===n?s=t[3]:(s=(0,Q.jsxs)(`span`,{className:`text-xs text-text-3 md:hidden`,children:[n,` `]}),t[2]=n,t[3]=s);let c;return t[4]!==r||t[5]!==o||t[6]!==s?(c=(0,Q.jsxs)(`span`,{role:`cell`,className:o,children:[s,r]}),t[4]=r,t[5]=o,t[6]=s,t[7]=c):c=t[7],c}function Qe(e){let t=(0,Z.c)(39),{g:n}=e,r=n.geprueft?.zustand===`failed`,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=a(`grid grid-cols-2 gap-x-4 gap-y-1.5 border-t border-white/[0.06] py-3 md:items-start`,Ye),t[0]=i):i=t[0];let o;t[1]===n.name?o=t[2]:(o=(0,Q.jsx)(`span`,{className:`text-[15px] font-semibold break-words`,children:n.name}),t[1]=n.name,t[2]=o);let s;t[3]===n.auftrag?s=t[4]:(s=!n.auftrag&&(0,Q.jsx)(`span`,{className:`text-[13px] text-bernstein`,children:`in keinem Sicherungsauftrag`}),t[3]=n.auftrag,t[4]=s);let c;t[5]!==o||t[6]!==s?(c=(0,Q.jsxs)(`span`,{role:`rowheader`,className:`col-span-2 flex min-w-0 flex-col md:col-span-1`,children:[o,s]}),t[5]=o,t[6]=s,t[7]=c):c=t[7];let l=n.auftrag&&!n.frisch&&`text-bernstein`,u;t[8]===l?u=t[9]:(u=a(l),t[8]=l,t[9]=u);let d;t[10]===n.zuletzt?d=t[11]:(d=n.zuletzt?(0,Q.jsx)(`span`,{className:`ziffern`,children:_(n.zuletzt)}):`noch nie`,t[10]=n.zuletzt,t[11]=d);let f;t[12]!==u||t[13]!==d?(f=(0,Q.jsx)(Ze,{titel:`Gesichert`,className:u,children:d}),t[12]=u,t[13]=d,t[14]=f):f=t[14];let p=r&&`text-rot-text`,m;t[15]===p?m=t[16]:(m=a(p),t[15]=p,t[16]=m);let h;t[17]!==r||t[18]!==n.geprueft?(h=n.geprueft?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`span`,{className:`ziffern`,children:Xe(n.geprueft.zeit)}),r?` · beschädigt`:` · in Ordnung`]}):(0,Q.jsx)(`span`,{className:`text-text-3`,children:`noch nicht`}),t[17]=r,t[18]=n.geprueft,t[19]=h):h=t[19];let g;t[20]!==r||t[21]!==n.defekt.length?(g=n.defekt.length>0&&!r&&(0,Q.jsx)(`span`,{className:`block text-xs text-bernstein`,children:n.defekt.length===1?`eine ältere Sicherung beschädigt`:`${n.defekt.length} ältere Sicherungen beschädigt`}),t[20]=r,t[21]=n.defekt.length,t[22]=g):g=t[22];let v;t[23]!==m||t[24]!==h||t[25]!==g?(v=(0,Q.jsxs)(Ze,{titel:`Vom PBS geprüft`,className:m,children:[h,g]}),t[23]=m,t[24]=h,t[25]=g,t[26]=v):v=t[26];let y=n.probe&&!n.probe.ok&&`text-rot-text`,b;t[27]===y?b=t[28]:(b=a(y),t[27]=y,t[28]=b);let x;t[29]===n.probe?x=t[30]:(x=n.probe?(0,Q.jsxs)(Q.Fragment,{children:[n.probe.ok?`gelungen`:`gescheitert`,` `,(0,Q.jsx)(`span`,{className:`ziffern`,children:_(n.probe.zeit)}),n.probe.fehler&&(0,Q.jsx)(`span`,{className:`block text-xs break-words`,children:n.probe.fehler})]}):(0,Q.jsx)(`span`,{className:`text-text-3`,children:`noch keine`}),t[29]=n.probe,t[30]=x);let S;t[31]!==b||t[32]!==x?(S=(0,Q.jsx)(Ze,{titel:`Probe`,className:b,children:x}),t[31]=b,t[32]=x,t[33]=S):S=t[33];let C;return t[34]!==v||t[35]!==S||t[36]!==c||t[37]!==f?(C=(0,Q.jsxs)(`div`,{role:`row`,className:i,children:[c,f,v,S]}),t[34]=v,t[35]=S,t[36]=c,t[37]=f,t[38]=C):C=t[38],C}function $e(e,t){let n=t.filter(e=>!e.auftrag).length,r=[n?`${n} ohne Auftrag`:`alle ${t.length} in einem Auftrag`],i=t.filter(e=>e.probe&&!e.probe.ok).length;return i?r.push(`Probe bei ${i} gescheitert`):e.probe?.zeit&&r.push(`Probe ${_(e.probe.zeit)}`),r.join(` · `)}function et(e){let t=(0,Z.c)(27),{s:n,onProbe:r,probeGesperrt:i}=e,o=i!==void 0&&i,s;t[0]===n.geraete?s=t[1]:(s=n.geraete??[],t[0]=n.geraete,t[1]=s);let c=s;if(c.length===0)return null;let l;t[2]===c?l=t[3]:(l=c.some(nt),t[2]=c,t[3]=l);let u=l,d;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,Q.jsxs)(`span`,{className:`flex items-center gap-2 text-[15px] font-medium`,children:[(0,Q.jsx)(E,{className:`size-4 text-text-3 transition-transform group-open:rotate-90`,"aria-hidden":!0}),`Sicherungen je Gerät`]}),t[4]=d):d=t[4];let f=u?`text-bernstein`:`text-text-2`,p;t[5]===f?p=t[6]:(p=a(`text-right text-sm`,f),t[5]=f,t[6]=p);let m;t[7]!==c||t[8]!==n?(m=$e(n,c),t[7]=c,t[8]=n,t[9]=m):m=t[9];let h;t[10]!==p||t[11]!==m?(h=(0,Q.jsxs)(`summary`,{className:`flex min-h-12 cursor-pointer list-none items-center justify-between gap-3 [&::-webkit-details-marker]:hidden`,children:[d,(0,Q.jsx)(`span`,{className:p,children:m})]}),t[10]=p,t[11]=m,t[12]=h):h=t[12];let g;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,Q.jsx)(`p`,{className:`m-0 pb-1 text-sm text-text-2`,children:`Der PBS prüft die Sicherungen selbst (Prüfauftrag im PBS). Die Probe öffnet einmal die Woche die jüngste Sicherung jedes Geräts, nur lesend: Die Konfiguration muss sich daraus lesen lassen, bei Containern auch der Dateibaum.`}),t[13]=g):g=t[13];let _;t[14]!==r||t[15]!==o?(_=r&&(0,Q.jsx)(Y,{variant:`outline`,size:`sm`,className:`my-2`,disabled:o,onClick:r,children:`Jetzt prüfen`}),t[14]=r,t[15]=o,t[16]=_):_=t[16];let v;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(v=(0,Q.jsxs)(`div`,{role:`row`,className:a(`etikett hidden gap-x-4 pt-1 pb-2.5 text-[10.5px] tracking-[0.14em] text-text-3 md:grid`,Ye),children:[(0,Q.jsx)(`span`,{role:`columnheader`,children:`Gerät`}),(0,Q.jsx)(`span`,{role:`columnheader`,children:`Gesichert`}),(0,Q.jsx)(`span`,{role:`columnheader`,children:`Vom PBS geprüft`}),(0,Q.jsx)(`span`,{role:`columnheader`,children:`Probe`})]}),t[17]=v):v=t[17];let y;t[18]===c?y=t[19]:(y=c.map(tt),t[18]=c,t[19]=y);let b;t[20]===y?b=t[21]:(b=(0,Q.jsxs)(`div`,{role:`table`,"aria-label":`Sicherungen je Gerät`,className:`flex flex-col`,children:[v,y]}),t[20]=y,t[21]=b);let x;return t[22]!==u||t[23]!==_||t[24]!==b||t[25]!==h?(x=(0,Q.jsxs)(`details`,{open:u,className:`flaeche-innen group rounded-2xl px-4 open:pb-3`,children:[h,g,_,b]}),t[22]=u,t[23]=_,t[24]=b,t[25]=h,t[26]=x):x=t[26],x}function tt(e){return(0,Q.jsx)(Qe,{g:e},e.ziel)}function nt(e){return!e.auftrag||e.defekt.length>0||e.probe&&!e.probe.ok}var rt={ok:`gruen`,gelb:`bernstein`,rot:`rot`,keine:`grau`},it={ok:`color-mix(in srgb, var(--lab) 80%, transparent)`,gelb:`var(--bernstein)`,rot:`var(--rot)`},at=e=>b(new Date(e*1e3).toISOString());function ot(e){let t=(0,Z.c)(11),{anteil:n,stufe:r,name:i}=e,a;t[0]===n?a=t[1]:(a=Math.round(n*100),t[0]=n,t[1]=a);let o=a,s=`${i}: ${o} % belegt`,c=`${Math.min(100,Math.max(2,o))}%`,l=it[r],u;t[2]!==c||t[3]!==l?(u=(0,Q.jsx)(`span`,{className:`block h-full rounded-full`,style:{width:c,background:l}}),t[2]=c,t[3]=l,t[4]=u):u=t[4];let d,f;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,Q.jsx)(`span`,{"aria-hidden":!0,className:`absolute inset-y-0 left-[80%] w-px bg-bernstein/70`}),f=(0,Q.jsx)(`span`,{"aria-hidden":!0,className:`absolute inset-y-0 left-[90%] w-px bg-rot/80`}),t[5]=d,t[6]=f):(d=t[5],f=t[6]);let p;return t[7]!==o||t[8]!==s||t[9]!==u?(p=(0,Q.jsxs)(`div`,{role:`meter`,"aria-label":s,"aria-valuenow":o,"aria-valuemin":0,"aria-valuemax":100,className:`relative h-2 w-full overflow-hidden rounded-full bg-white/[0.07]`,children:[u,d,f]}),t[7]=o,t[8]=s,t[9]=u,t[10]=p):p=t[10],p}function st(e){let t=(0,Z.c)(11),{v:n}=e;if(n?.grund===`gleich`){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Q.jsx)(`p`,{className:`text-xs text-text-3`,children:`Belegung gleichbleibend`}),t[0]=e):e=t[0],e}let r;t[1]===n?r=t[2]:(r=W(n),t[1]=n,t[2]=r);let i=r;if(!i)return null;let o=U[ue(n)],s;t[3]===o?s=t[4]:(s=a(`ziffern text-xs`,o),t[3]=o,t[4]=s);let c;t[5]===n?c=t[6]:(c=de(n),t[5]=n,t[6]=c);let l;return t[7]!==s||t[8]!==c||t[9]!==i?(l=(0,Q.jsxs)(`p`,{className:s,children:[c,` · `,i]}),t[7]=s,t[8]=c,t[9]=i,t[10]=l):l=t[10],l}function ct(e){let t=(0,Z.c)(16),{titel:n,unter:r,chip:i,chipText:a,children:o}=e,s;t[0]===n?s=t[1]:(s=(0,Q.jsx)(`span`,{className:`text-[15px] font-semibold break-words`,children:n}),t[0]=n,t[1]=s);let c;t[2]===r?c=t[3]:(c=r&&(0,Q.jsx)(`span`,{className:`text-sm break-words text-text-3`,children:r}),t[2]=r,t[3]=c);let l;t[4]!==s||t[5]!==c?(l=(0,Q.jsxs)(`div`,{className:`flex min-w-0 flex-col`,children:[s,c]}),t[4]=s,t[5]=c,t[6]=l):l=t[6];let u;t[7]!==i||t[8]!==a?(u=(0,Q.jsx)(P,{art:i,children:a}),t[7]=i,t[8]=a,t[9]=u):u=t[9];let d;t[10]!==l||t[11]!==u?(d=(0,Q.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[l,u]}),t[10]=l,t[11]=u,t[12]=d):d=t[12];let f;return t[13]!==o||t[14]!==d?(f=(0,Q.jsxs)(`div`,{className:`flaeche-innen flex min-w-0 flex-col gap-3 rounded-2xl p-4`,children:[d,o]}),t[13]=o,t[14]=d,t[15]=f):f=t[15],f}function lt(e){let t=(0,Z.c)(34),{p:n}=e,r;t[0]===n.anteil?r=t[1]:(r=Math.round(n.anteil*100),t[0]=n.anteil,t[1]=r);let i=r,o=`Speicherpool ${n.speicher}`,s=rt[n.stufe],c=ce[n.stufe],l=Math.max(n.anteil,n.meta_anteil??0),u=`Speicherpool ${n.speicher}`,d;t[2]!==n.stufe||t[3]!==l||t[4]!==u?(d=(0,Q.jsx)(ot,{anteil:l,stufe:n.stufe,name:u}),t[2]=n.stufe,t[3]=l,t[4]=u,t[5]=d):d=t[5];let f;t[6]===n.belegt?f=t[7]:(f=J(n.belegt),t[6]=n.belegt,t[7]=f);let p;t[8]===n.gesamt?p=t[9]:(p=J(n.gesamt),t[8]=n.gesamt,t[9]=p);let m=n.stufe!==`ok`&&`text-foreground`,h;t[10]===m?h=t[11]:(h=a(m),t[10]=m,t[11]=h);let g;t[12]===n.frei?g=t[13]:(g=J(n.frei),t[12]=n.frei,t[13]=g);let _;t[14]!==h||t[15]!==g?(_=(0,Q.jsxs)(`span`,{className:h,children:[g,` frei`]}),t[14]=h,t[15]=g,t[16]=_):_=t[16];let v;t[17]!==i||t[18]!==_||t[19]!==f||t[20]!==p?(v=(0,Q.jsxs)(`p`,{className:`ziffern text-sm text-text-2`,children:[i,` % · `,f,` von `,p,` · `,_]}),t[17]=i,t[18]=_,t[19]=f,t[20]=p,t[21]=v):v=t[21];let y;t[22]===n.meta_anteil?y=t[23]:(y=n.meta_anteil!==null&&(0,Q.jsxs)(`p`,{className:`text-xs text-text-3`,children:[`Metadaten `,Math.round(n.meta_anteil*100),` % belegt`]}),t[22]=n.meta_anteil,t[23]=y);let b;t[24]===n.vorhersage?b=t[25]:(b=(0,Q.jsx)(st,{v:n.vorhersage}),t[24]=n.vorhersage,t[25]=b);let x;return t[26]!==v||t[27]!==y||t[28]!==b||t[29]!==o||t[30]!==s||t[31]!==c||t[32]!==d?(x=(0,Q.jsxs)(ct,{titel:o,unter:`Platten der Container und VMs`,chip:s,chipText:c,children:[d,v,y,b]}),t[26]=v,t[27]=y,t[28]=b,t[29]=o,t[30]=s,t[31]=c,t[32]=d,t[33]=x):x=t[33],x}function ut(e){let t=(0,Z.c)(24),{s:n}=e,r=rt[n.stufe],i=ce[n.stufe],a;t[0]!==n.anteil||t[1]!==n.stufe?(a=(0,Q.jsx)(ot,{anteil:n.anteil,stufe:n.stufe,name:`Systemplatte des Proxmox-Hosts`}),t[0]=n.anteil,t[1]=n.stufe,t[2]=a):a=t[2];let o;t[3]===n.anteil?o=t[4]:(o=Math.round(n.anteil*100),t[3]=n.anteil,t[4]=o);let s;t[5]===n.belegt?s=t[6]:(s=J(n.belegt),t[5]=n.belegt,t[6]=s);let c;t[7]===n.gesamt?c=t[8]:(c=J(n.gesamt),t[7]=n.gesamt,t[8]=c);let l;t[9]===n.frei?l=t[10]:(l=J(n.frei),t[9]=n.frei,t[10]=l);let u;t[11]!==o||t[12]!==s||t[13]!==c||t[14]!==l?(u=(0,Q.jsxs)(`p`,{className:`ziffern text-sm text-text-2`,children:[o,` % · `,s,` von `,c,` · `,l,` frei`]}),t[11]=o,t[12]=s,t[13]=c,t[14]=l,t[15]=u):u=t[15];let d;t[16]===n.vorhersage?d=t[17]:(d=(0,Q.jsx)(st,{v:n.vorhersage}),t[16]=n.vorhersage,t[17]=d);let f;return t[18]!==r||t[19]!==i||t[20]!==a||t[21]!==u||t[22]!==d?(f=(0,Q.jsxs)(ct,{titel:`Systemplatte`,unter:`Proxmox-Host: Kernel, Sicherungen vor Updates`,chip:r,chipText:i,children:[a,u,d]}),t[18]=r,t[19]=i,t[20]=a,t[21]=u,t[22]=d,t[23]=f):f=t[23],f}function dt(e){let t=(0,Z.c)(22),{n}=e,r=n.problem?n.stufe===`rot`?`gestört`:`unklar`:ce[n.stufe],i=`NAS ${n.server??``}`,o;t[0]===i?o=t[1]:(o=i.trim(),t[0]=i,t[1]=o);let s;t[2]===n.art?s=t[3]:(s=n.art.toUpperCase(),t[2]=n.art,t[3]=s);let c=`${s} · ${n.quelle??`?`} → ${n.ziel}`,l=rt[n.stufe],u;t[4]!==n.anteil||t[5]!==n.belegt||t[6]!==n.gesamt||t[7]!==n.problem||t[8]!==n.server||t[9]!==n.stufe||t[10]!==n.vorhersage?(u=n.problem?(0,Q.jsx)(`p`,{className:a(`text-sm`,n.stufe===`rot`?`text-rot-text`:`text-bernstein`),children:n.problem}):n.anteil!==null&&(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(ot,{anteil:n.anteil,stufe:n.stufe,name:`NAS ${n.server??``}`}),(0,Q.jsxs)(`p`,{className:`ziffern text-sm text-text-2`,children:[Math.round(n.anteil*100),` % · `,J(n.belegt),` von `,J(n.gesamt),` · `,J((n.gesamt??0)-(n.belegt??0)),` frei`]}),(0,Q.jsx)(st,{v:n.vorhersage})]}),t[4]=n.anteil,t[5]=n.belegt,t[6]=n.gesamt,t[7]=n.problem,t[8]=n.server,t[9]=n.stufe,t[10]=n.vorhersage,t[11]=u):u=t[11];let d=n.erreichbar===!1?`antwortet nicht`:`antwortet`,f=n.eingebunden?`auf dem Proxmox-Host eingebunden`:`nicht eingebunden`,p;t[12]!==d||t[13]!==f?(p=(0,Q.jsxs)(`p`,{className:`text-xs text-text-3`,children:[d,` · `,f]}),t[12]=d,t[13]=f,t[14]=p):p=t[14];let m;return t[15]!==r||t[16]!==o||t[17]!==c||t[18]!==l||t[19]!==u||t[20]!==p?(m=(0,Q.jsxs)(ct,{titel:o,unter:c,chip:l,chipText:r,children:[u,p]}),t[15]=r,t[16]=o,t[17]=c,t[18]=l,t[19]=u,t[20]=p,t[21]=m):m=t[21],m}function ft(e){let t=(0,Z.c)(25),{s:n}=e,r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r={ok:`aktuell`,gelb:`Lücke`,rot:`gestört`,keine:`kein Auftrag`},t[0]=r):r=t[0];let i=r[n.stufe],a;t[1]===n?a=t[2]:(a=ne(n),t[1]=n,t[2]=a);let o=rt[n.stufe],s;t[3]===n.probleme?s=t[4]:(s=n.probleme.map(_t),t[3]=n.probleme,t[4]=s);let c;t[5]!==n.erfasst||t[6]!==n.stufe||t[7]!==n.stufe_frische||t[8]!==n.zuletzt?(c=(n.stufe_frische??n.stufe)===`ok`&&(0,Q.jsxs)(`p`,{className:`text-sm text-text-2`,children:[`Alle `,n.erfasst,` Geräte gesichert`,n.zuletzt?(0,Q.jsxs)(Q.Fragment,{children:[`, zuletzt `,(0,Q.jsx)(`span`,{className:`ziffern`,children:at(n.zuletzt)})]}):null,`.`]}),t[5]=n.erfasst,t[6]=n.stufe,t[7]=n.stufe_frische,t[8]=n.zuletzt,t[9]=c):c=t[9];let l;t[10]===n.ohne_auftrag?l=t[11]:(l=(n.ohne_auftrag?.length??0)>0&&(0,Q.jsxs)(`p`,{className:`text-sm text-bernstein`,children:[`In keinem Sicherungsauftrag: `,n.ohne_auftrag.map(gt).join(`, `)]}),t[10]=n.ohne_auftrag,t[11]=l);let u;t[12]===n.fehlend?u=t[13]:(u=n.fehlend.length>0&&(0,Q.jsx)(`ul`,{className:`flex flex-col gap-1 text-sm`,children:n.fehlend.map(ht)}),t[12]=n.fehlend,t[13]=u);let d;t[14]===n.ziele?d=t[15]:(d=n.ziele.filter(mt).map(pt),t[14]=n.ziele,t[15]=d);let f;return t[16]!==i||t[17]!==a||t[18]!==o||t[19]!==s||t[20]!==c||t[21]!==l||t[22]!==u||t[23]!==d?(f=(0,Q.jsxs)(ct,{titel:`Sicherungen`,unter:a,chip:o,chipText:i,children:[s,c,l,u,d]}),t[16]=i,t[17]=a,t[18]=o,t[19]=s,t[20]=c,t[21]=l,t[22]=u,t[23]=d,t[24]=f):f=t[24],f}function pt(e){let t=W(e.vorhersage);return(0,Q.jsxs)(`p`,{className:a(`ziffern text-xs`,t?U[ue(e.vorhersage)]:`text-text-3`),children:[`Ziel `,e.speicher,`: `,Math.round((e.belegt??0)/(e.gesamt??1)*100),` % belegt`,t?` · ${t}`:e.vorhersage?.grund===`gleich`?` · gleichbleibend`:``,e.vorhersage?.quelle===`pbs`&&(t||e.vorhersage.grund===`gleich`)?` (Schätzung des PBS)`:``]},e.speicher)}function mt(e){return e.gesamt}function ht(e){return(0,Q.jsxs)(`li`,{className:`text-bernstein`,children:[e.name,`: `,e.zuletzt?(0,Q.jsxs)(Q.Fragment,{children:[`zuletzt `,(0,Q.jsx)(`span`,{className:`ziffern`,children:at(e.zuletzt)})]}):`noch nie gesichert`]},e.ziel)}function gt(e){return e.name}function _t(e){return(0,Q.jsx)(`p`,{className:`text-sm text-rot-text`,children:e},e)}function vt(e){let t=(0,Z.c)(53),{daten:n,laeuft:r,gesperrt:i,onAktion:a,snapshotsLink:o,onProbe:s,probeGesperrt:c}=e,l=r===void 0?null:r,u=i!==void 0&&i,[d,f]=(0,$.useState)(null),p;t[0]!==n.pools||t[1]!==n.systemplatte?.stufe?(p=n.pools.some(St)||(n.systemplatte?.stufe??`ok`)!==`ok`,t[0]=n.pools,t[1]=n.systemplatte?.stufe,t[2]=p):p=t[2];let m=p,h,g,_,v;if(t[3]!==n.empfehlungen||t[4]!==n.nas||t[5]!==n.pools||t[6]!==n.sicherungen||t[7]!==n.systemplatte||t[8]!==u||t[9]!==m||t[10]!==l||t[11]!==a||t[12]!==s||t[13]!==c||t[14]!==o){let e=n.empfehlungen.reduce(xt,0);h=`flex flex-col gap-4`;let r;t[19]===n.pools?r=t[20]:(r=n.pools.map(bt),t[19]=n.pools,t[20]=r);let i;t[21]===n.systemplatte?i=t[22]:(i=n.systemplatte&&(0,Q.jsx)(ut,{s:n.systemplatte}),t[21]=n.systemplatte,t[22]=i);let d;t[23]===n.nas?d=t[24]:(d=n.nas.length>0?n.nas.map(yt):(0,Q.jsx)(ct,{titel:`NAS`,chip:`grau`,chipText:`keins`,children:(0,Q.jsx)(`p`,{className:`text-sm text-text-3`,children:`Auf dem Proxmox-Host ist kein Netzlaufwerk eingebunden.`})}),t[23]=n.nas,t[24]=d);let p;t[25]===n.sicherungen?p=t[26]:(p=(0,Q.jsx)(ft,{s:n.sicherungen}),t[25]=n.sicherungen,t[26]=p),t[27]!==d||t[28]!==p||t[29]!==r||t[30]!==i?(g=(0,Q.jsxs)(`div`,{className:`grid gap-3 md:grid-cols-2 2xl:grid-cols-4`,children:[r,i,d,p]}),t[27]=d,t[28]=p,t[29]=r,t[30]=i,t[31]=g):g=t[31],t[32]!==n.sicherungen||t[33]!==s||t[34]!==c?(_=(0,Q.jsx)(et,{s:n.sicherungen,onProbe:s,probeGesperrt:c}),t[32]=n.sicherungen,t[33]=s,t[34]=c,t[35]=_):_=t[35],v=n.empfehlungen.length>0&&(0,Q.jsxs)(`details`,{open:m,className:`flaeche-innen group rounded-2xl px-4 open:pb-3`,children:[(0,Q.jsxs)(`summary`,{className:`flex min-h-12 cursor-pointer list-none items-center justify-between gap-3 [&::-webkit-details-marker]:hidden`,children:[(0,Q.jsxs)(`span`,{className:`flex items-center gap-2 text-[15px] font-medium`,children:[(0,Q.jsx)(E,{className:`size-4 text-text-3 transition-transform group-open:rotate-90`,"aria-hidden":!0}),`Was Platz bringt`]}),(0,Q.jsxs)(`span`,{className:`ziffern text-sm text-text-2`,children:[n.empfehlungen.length,` `,n.empfehlungen.length===1?`Vorschlag`:`Vorschläge`,e>0&&` · bis zu ${J(e)}`]})]}),(0,Q.jsx)(`ol`,{className:`flex flex-col`,children:n.empfehlungen.map(e=>(0,Q.jsx)(Tt,{e,laeuft:l,gesperrt:u||!a,onFrage:f,verweis:e.art===`snapshot`?o:null},e.titel))})]}),t[3]=n.empfehlungen,t[4]=n.nas,t[5]=n.pools,t[6]=n.sicherungen,t[7]=n.systemplatte,t[8]=u,t[9]=m,t[10]=l,t[11]=a,t[12]=s,t[13]=c,t[14]=o,t[15]=h,t[16]=g,t[17]=_,t[18]=v}else h=t[15],g=t[16],_=t[17],v=t[18];let y=!!d,b=d?`Proxmox-Host: ${d.label}`:``,x=d?.frage??``,S=d?.label??``,C;t[36]!==d||t[37]!==a?(C=()=>{d&&a&&a(d),f(null)},t[36]=d,t[37]=a,t[38]=C):C=t[38];let w;t[39]===Symbol.for(`react.memo_cache_sentinel`)?(w=()=>f(null),t[39]=w):w=t[39];let T;t[40]!==u||t[41]!==x||t[42]!==S||t[43]!==C||t[44]!==y||t[45]!==b?(T=(0,Q.jsx)(pe,{offen:y,titel:b,text:x,knopf:S,gesperrt:u,onJa:C,onNein:w}),t[40]=u,t[41]=x,t[42]=S,t[43]=C,t[44]=y,t[45]=b,t[46]=T):T=t[46];let D;return t[47]!==T||t[48]!==h||t[49]!==g||t[50]!==_||t[51]!==v?(D=(0,Q.jsxs)(`div`,{className:h,children:[g,_,v,T]}),t[47]=T,t[48]=h,t[49]=g,t[50]=_,t[51]=v,t[52]=D):D=t[52],D}function yt(e){return(0,Q.jsx)(dt,{n:e},e.ziel)}function bt(e){return(0,Q.jsx)(lt,{p:e},e.speicher)}function xt(e,t){return e+(t.platz??0)}function St(e){return e.stufe!==`ok`}var Ct={pool:`Speicherpool`,systemplatte:`Systemplatte des Hosts`};function wt({text:e}){return e.split(/`([^`]+)`/).map((e,t)=>t%2==1?(0,Q.jsx)(`code`,{className:`rounded-md bg-white/[0.07] px-1 font-mono text-[13px] text-foreground [font-variant-ligatures:none]`,children:e},t):e)}function Tt(e){let t=(0,Z.c)(24),{e:n,laeuft:r,gesperrt:i,onFrage:a,verweis:o}=e,s;t[0]===n.titel?s=t[1]:(s=(0,Q.jsx)(`span`,{className:`text-[15px] font-medium break-words`,children:n.titel}),t[0]=n.titel,t[1]=s);let c;t[2]===n.platz?c=t[3]:(c=n.platz?`≈ ${J(n.platz)}`:`Größe unbekannt`,t[2]=n.platz,t[3]=c);let l;t[4]===c?l=t[5]:(l=(0,Q.jsx)(`span`,{className:`ziffern text-sm text-text-2`,children:c}),t[4]=c,t[5]=l);let u;t[6]!==s||t[7]!==l?(u=(0,Q.jsxs)(`div`,{className:`flex flex-wrap items-baseline justify-between gap-x-3 gap-y-1`,children:[s,l]}),t[6]=s,t[7]=l,t[8]=u):u=t[8];let d;t[9]===n.ort?d=t[10]:(d=n.ort&&(0,Q.jsx)(`span`,{className:`etikett text-[10.5px] tracking-[0.14em] text-text-3`,children:Ct[n.ort]??n.ort}),t[9]=n.ort,t[10]=d);let f;t[11]===n.text?f=t[12]:(f=(0,Q.jsx)(`p`,{className:`text-sm break-words text-text-2`,children:(0,Q.jsx)(wt,{text:n.text})}),t[11]=n.text,t[12]=f);let p;t[13]!==n.aktion||t[14]!==i||t[15]!==r||t[16]!==a?(p=n.aktion&&(r?(0,Q.jsxs)(`p`,{role:`status`,className:`text-sm text-cyan-text`,children:[`Läuft: `,r]}):(0,Q.jsx)(Y,{variant:`outline`,size:`sm`,className:`mt-1 self-start`,disabled:i,onClick:()=>a(n.aktion),children:n.aktion.label})),t[13]=n.aktion,t[14]=i,t[15]=r,t[16]=a,t[17]=p):p=t[17];let m;return t[18]!==u||t[19]!==d||t[20]!==f||t[21]!==p||t[22]!==o?(m=(0,Q.jsxs)(`li`,{className:`flex flex-col gap-1 border-t border-white/[0.06] py-3 first:border-t-0 first:pt-1`,children:[u,d,f,o,p]}),t[18]=u,t[19]=d,t[20]=f,t[21]=p,t[22]=o,t[23]=m):m=t[23],m}var Et={snapshot:`Snapshot`,sicherung:`Sicherung`,keiner:`kein Rückweg`};function Dt(e){let t=(0,Z.c)(24),{anzahl:n,gesperrt:r}=e,[i,a]=(0,$.useState)(!1),o=c(i),s=S(),l;t[0]===o.data?.schritte?l=t[1]:(l=o.data?.schritte??[],t[0]=o.data?.schritte,t[1]=l);let u=l,d=r||n===0||s.isPending,f;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(f=()=>a(!0),t[2]=f):f=t[2];let p=n>0?` (${n})`:``,m;t[3]!==d||t[4]!==p?(m=(0,Q.jsxs)(Y,{disabled:d,onClick:f,children:[`Alle aktualisieren`,p]}),t[3]=d,t[4]=p,t[5]=m):m=t[5];let h=u.length?`${u.length} Updates starten`:`Starten`,g=s.isPending||o.isPending||u.length===0,_;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(_=()=>a(!1),t[6]=_):_=t[6];let v;t[7]!==i||t[8]!==s?(v=()=>{i&&(s.mutate(void 0),a(!1))},t[7]=i,t[8]=s,t[9]=v):v=t[9];let y;t[10]!==o.data||t[11]!==o.error||t[12]!==o.isPending||t[13]!==u?(y=o.isPending?(0,Q.jsx)(`p`,{className:`text-sm text-text-2`,children:`Die Reihenfolge wird gelesen …`}):o.error?(0,Q.jsxs)(`p`,{role:`alert`,className:`text-sm text-rot-text`,children:[`Der Plan lässt sich nicht lesen: `,o.error.message]}):(0,Q.jsxs)(`div`,{className:`flex flex-col gap-2 pb-1`,children:[(0,Q.jsx)(`ol`,{className:`m-0 flex list-none flex-col gap-1 p-0`,children:u.map(Ot)}),o.data?.hinweis&&(0,Q.jsx)(`p`,{className:`text-xs text-bernstein`,children:o.data.hinweis})]}),t[10]=o.data,t[11]=o.error,t[12]=o.isPending,t[13]=u,t[14]=y):y=t[14];let b;t[15]!==i||t[16]!==y||t[17]!==h||t[18]!==g||t[19]!==v?(b=(0,Q.jsx)(pe,{offen:i,titel:`Alle Homelab-Updates einspielen?`,text:`Die Updates laufen nacheinander, jedes mit Rückweg und Prüfung. Ist eine Prüfung rot, geht dieser Schritt von selbst zurück und der Rest bleibt stehen. AdGuard und NPMplus kommen zuletzt, der Proxmox-Host ganz am Ende; neu gestartet wird er nicht.`,knopf:h,gesperrt:g,onNein:_,onJa:v,children:y}),t[15]=i,t[16]=y,t[17]=h,t[18]=g,t[19]=v,t[20]=b):b=t[20];let x;return t[21]!==b||t[22]!==m?(x=(0,Q.jsxs)(Q.Fragment,{children:[m,b]}),t[21]=b,t[22]=m,t[23]=x):x=t[23],x}function Ot(e,t){return(0,Q.jsxs)(`li`,{className:`grid grid-cols-[1.5rem_minmax(0,1fr)_auto] items-baseline gap-2 text-sm`,children:[(0,Q.jsxs)(`span`,{className:`ziffern text-text-3`,children:[t+1,`.`]}),(0,Q.jsxs)(`span`,{className:`min-w-0`,children:[(0,Q.jsx)(`span`,{className:`font-medium text-foreground`,children:e.name}),` `,(0,Q.jsxs)(`span`,{className:`text-text-2`,children:[`· `,e.was]})]}),(0,Q.jsx)(`span`,{className:a(`text-xs`,e.rueckweg_art===`keiner`?`text-bernstein`:`text-text-3`),children:Et[e.rueckweg_art]})]},`${e.ziel}-${e.baustein}`)}var kt={wartet:{Symbol:ve,farbe:`text-text-3`,text:`wartet`},laeuft:{Symbol:be,farbe:`text-cyan-text`,text:`läuft`},eingespielt:{Symbol:K,farbe:`text-gruen`,text:`eingespielt`},zurueckgerollt:{Symbol:O,farbe:`text-bernstein`,text:`zurückgerollt`},fehler:{Symbol:D,farbe:`text-rot`,text:`Fehler`},uebersprungen:{Symbol:Se,farbe:`text-text-3`,text:`übersprungen`}},At={laeuft:{art:`cyan`,text:`läuft`},fertig:{art:`gruen`,text:`fertig`},abgebrochen:{art:`bernstein`,text:`abgebrochen`}};function jt(e){let t=(0,Z.c)(33),{lauf:n,onQuittieren:r}=e,i;t[0]===n.schritte?i=t[1]:(i=n.schritte.filter(Nt),t[0]=n.schritte,t[1]=i);let a=i.length,o=At[n.status],s;t[2]!==a||t[3]!==n.schritte.length?(s=(0,Q.jsxs)(`span`,{className:`text-[15px] font-semibold text-cyan-text`,children:[`Alle aktualisieren · `,a,` von `,n.schritte.length]}),t[2]=a,t[3]=n.schritte.length,t[4]=s):s=t[4];let c;t[5]===n.start?c=t[6]:(c=b(new Date(n.start*1e3).toISOString()),t[5]=n.start,t[6]=c);let l;t[7]===c?l=t[8]:(l=(0,Q.jsx)(`span`,{className:`ziffern text-xs text-text-3`,children:c}),t[7]=c,t[8]=l);let u;t[9]!==o.art||t[10]!==o.text?(u=(0,Q.jsx)(P,{art:o.art,children:o.text}),t[9]=o.art,t[10]=o.text,t[11]=u):u=t[11];let d;t[12]!==l||t[13]!==u?(d=(0,Q.jsxs)(`span`,{className:`flex items-center gap-2`,children:[l,u]}),t[12]=l,t[13]=u,t[14]=d):d=t[14];let f;t[15]!==s||t[16]!==d?(f=(0,Q.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[s,d]}),t[15]=s,t[16]=d,t[17]=f):f=t[17];let p=`${a/Math.max(1,n.schritte.length)*100}%`,m;t[18]===p?m=t[19]:(m=(0,Q.jsx)(`div`,{className:`h-1.5 overflow-hidden rounded-full bg-white/[0.07]`,"aria-hidden":!0,children:(0,Q.jsx)(`div`,{className:`h-full rounded-full bg-cyan shadow-[0_0_10px_var(--cyan)] transition-all`,style:{width:p}})}),t[18]=p,t[19]=m);let h;t[20]===n.schritte?h=t[21]:(h=n.schritte.map(Mt),t[20]=n.schritte,t[21]=h);let g;t[22]===h?g=t[23]:(g=(0,Q.jsx)(`ol`,{className:`m-0 grid list-none gap-x-6 gap-y-1.5 p-0 sm:grid-cols-2`,children:h}),t[22]=h,t[23]=g);let _;t[24]!==n.status||t[25]!==n.text||t[26]!==r?(_=(n.text||n.status!==`laeuft`&&r)&&(0,Q.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[n.text&&(0,Q.jsx)(`p`,{className:`text-sm text-text-2`,children:n.text}),n.status!==`laeuft`&&r&&(0,Q.jsx)(Y,{variant:`outline`,size:`sm`,className:`ml-auto`,onClick:r,children:`Ausblenden`})]}),t[24]=n.status,t[25]=n.text,t[26]=r,t[27]=_):_=t[27];let v;return t[28]!==g||t[29]!==_||t[30]!==f||t[31]!==m?(v=(0,Q.jsxs)(`section`,{"aria-label":`Alle aktualisieren`,className:`flex flex-col gap-3 rounded-2xl bg-cyan/[0.06] p-4 ring-1 ring-cyan/30 ring-inset`,children:[f,m,g,_]}),t[28]=g,t[29]=_,t[30]=f,t[31]=m,t[32]=v):v=t[32],v}function Mt(e){let t=kt[e.status];return(0,Q.jsxs)(`li`,{className:`flex items-start gap-2 text-sm`,children:[(0,Q.jsx)(t.Symbol,{className:a(`mt-0.5 size-4 shrink-0`,t.farbe,e.status===`laeuft`&&`motion-safe:animate-spin`),"aria-hidden":!0}),(0,Q.jsxs)(`span`,{className:`min-w-0`,children:[(0,Q.jsx)(`span`,{className:`text-foreground`,children:e.name}),` `,(0,Q.jsxs)(`span`,{className:`text-text-3`,children:[`· `,e.was,` · `,t.text]}),e.text&&e.status!==`eingespielt`&&(0,Q.jsx)(`span`,{className:`block text-xs text-text-3`,children:e.text})]})]},`${e.ziel}-${e.baustein}`)}function Nt(e){return![`wartet`,`laeuft`].includes(e.status)}function Pt(e){let t=(0,Z.c)(9),{d:n}=e,r=n.zusammenfassung;if(!r){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Q.jsx)(`p`,{className:`m-0 text-sm text-text-3`,children:`Lucy konnte gerade keine Kurzfassung schreiben; die Quellen stehen unten.`}),t[0]=e):e=t[0],e}let i;t[1]!==r.aktion||t[2]!==r.aktion_text?(i=r.aktion?(0,Q.jsxs)(`p`,{className:`m-0 rounded-xl bg-bernstein/10 px-3 py-2 text-sm text-bernstein ring-1 ring-bernstein/30 ring-inset`,children:[`⚠ Handarbeit: `,r.aktion_text||`Lies die Hinweise unten, bevor du updatest.`]}):r.aktion===!1&&(0,Q.jsx)(`p`,{className:`m-0 text-sm text-gruen-text`,children:`Du musst dafür nichts selbst tun.`}),t[1]=r.aktion,t[2]=r.aktion_text,t[3]=i):i=t[3];let a;t[4]===r.punkte?a=t[5]:(a=r.punkte.length>0&&(0,Q.jsx)(`ul`,{className:`m-0 flex list-disc flex-col gap-1 pl-5 text-sm text-text-2`,children:r.punkte.map(Ft)}),t[4]=r.punkte,t[5]=a);let o;return t[6]!==i||t[7]!==a?(o=(0,Q.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[i,a]}),t[6]=i,t[7]=a,t[8]=o):o=t[8],o}function Ft(e){return(0,Q.jsx)(`li`,{children:e},e)}function It(e){let t=(0,Z.c)(16),{d:n}=e,r;t[0]===n.versionen?r=t[1]:(r=n.versionen??[],t[0]=n.versionen,t[1]=r);let i=r,a;t[2]===n.pakete?a=t[3]:(a=n.pakete??[],t[2]=n.pakete,t[3]=a);let o=a;if(i.length===0&&o.length===0)return null;let s=i.length?`Release Notes (${i.length} ${i.length===1?`Version`:`Versionen`})`:`Änderungslisten (${o.length} Pakete${n.weitere?`, ${n.weitere} weitere ohne Liste`:``})`,c;t[4]===s?c=t[5]:(c=(0,Q.jsx)(`summary`,{className:`cursor-pointer text-text-3 hover:text-text-2`,children:s}),t[4]=s,t[5]=c);let l;t[6]===i?l=t[7]:(l=i.map(Rt),t[6]=i,t[7]=l);let u;t[8]===o?u=t[9]:(u=o.map(Lt),t[8]=o,t[9]=u);let d;t[10]!==l||t[11]!==u?(d=(0,Q.jsxs)(`div`,{className:`mt-2 flex max-h-80 flex-col gap-3 overflow-y-auto pr-1`,children:[l,u]}),t[10]=l,t[11]=u,t[12]=d):d=t[12];let f;return t[13]!==c||t[14]!==d?(f=(0,Q.jsxs)(`details`,{className:`group text-sm`,children:[c,d]}),t[13]=c,t[14]=d,t[15]=f):f=t[15],f}function Lt(e){return(0,Q.jsxs)(`section`,{className:`flex flex-col gap-1`,children:[(0,Q.jsx)(`span`,{className:`font-mono text-[13px] font-medium`,children:e.name}),(0,Q.jsx)(`pre`,{className:`m-0 font-mono text-[12px] break-words whitespace-pre-wrap text-text-3`,children:e.text})]},e.name)}function Rt(e){return(0,Q.jsxs)(`section`,{className:`flex flex-col gap-1`,children:[(0,Q.jsxs)(`span`,{className:`flex items-baseline justify-between gap-2`,children:[(0,Q.jsx)(`span`,{className:`font-medium`,children:e.titel}),e.url&&(0,Q.jsxs)(`a`,{href:e.url,target:`_blank`,rel:`noopener`,className:`inline-flex shrink-0 items-center gap-1 text-cyan hover:underline`,children:[`GitHub `,(0,Q.jsx)(ae,{className:`size-3`,"aria-hidden":!0})]})]}),(0,Q.jsx)(`pre`,{className:`m-0 font-sans text-[13px] break-words whitespace-pre-wrap text-text-3`,children:e.text||`–`})]},e.version)}function zt(e){let t=(0,Z.c)(21),{zid:n,baustein:r,kompakt:i,className:o}=e,s=i!==void 0&&i,c=l(n,r,!0),u;if(c.isPending){let e;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Q.jsx)(`p`,{className:`m-0 text-sm text-text-3`,role:`status`,children:`Lucy liest, was neu ist …`}),t[0]=e):e=t[0],u=e}else if(c.error){let e;t[1]===c.error.message?e=t[2]:(e=(0,Q.jsxs)(`p`,{className:`m-0 text-sm text-text-3`,children:[`Ließ sich gerade nicht lesen: `,c.error.message]}),t[1]=c.error.message,t[2]=e),u=e}else if(c.data?.verfuegbar){let e;t[8]===c.data?e=t[9]:(e=(0,Q.jsx)(Pt,{d:c.data}),t[8]=c.data,t[9]=e);let n;t[10]!==s||t[11]!==c.data?(n=!s&&(0,Q.jsx)(It,{d:c.data}),t[10]=s,t[11]=c.data,t[12]=n):n=t[12];let r;t[13]!==e||t[14]!==n?(r=(0,Q.jsxs)(Q.Fragment,{children:[e,n]}),t[13]=e,t[14]=n,t[15]=r):r=t[15],u=r}else{let e=c.data?.grund??`Keine Angaben.`,n;t[3]===c.data?n=t[4]:(n=c.data?.quelle_url&&(0,Q.jsxs)(Q.Fragment,{children:[` `,(0,Q.jsx)(`a`,{href:c.data.quelle_url,target:`_blank`,rel:`noopener`,className:`text-cyan hover:underline`,children:`Zu den Releases`})]}),t[3]=c.data,t[4]=n);let r;t[5]!==e||t[6]!==n?(r=(0,Q.jsxs)(`p`,{className:`m-0 text-sm text-text-3`,children:[e,n]}),t[5]=e,t[6]=n,t[7]=r):r=t[7],u=r}let d;t[16]===o?d=t[17]:(d=a(`flex flex-col gap-2`,o),t[16]=o,t[17]=d);let f;return t[18]!==u||t[19]!==d?(f=(0,Q.jsx)(`div`,{className:d,children:u}),t[18]=u,t[19]=d,t[20]=f):f=t[20],f}var Bt=`md:grid-cols-[minmax(0,1.1fr)_minmax(0,1.3fr)_minmax(0,1fr)_minmax(0,0.9fr)_11.5rem]`;function Vt(e){let t=(0,Z.c)(26),{ziel:n,b:r}=e;if(!r){let e=n.art===`proxmox-host`?V(n)?.installiert:null,r;return t[0]===e?r=t[1]:(r=e?(0,Q.jsxs)(`span`,{className:`ziffern text-sm`,children:[`PVE `,e]}):(0,Q.jsx)(`span`,{className:`text-sm text-text-3`,children:`–`}),t[0]=e,t[1]=r),r}let i;t[2]===r.installiert?i=t[3]:(i=r.installiert?H(r.installiert):`–`,t[2]=r.installiert,t[3]=i);let a=i,o=r.zustand===`aktuell`?`text-foreground`:`text-text-2`,s;t[4]!==a||t[5]!==o?(s=(0,Q.jsx)(`span`,{className:o,children:a}),t[4]=a,t[5]=o,t[6]=s):s=t[6];let c;t[7]!==r.verfuegbar||t[8]!==r.zustand?(c=r.zustand===`neu`&&r.verfuegbar&&(0,Q.jsxs)(`span`,{className:`text-cyan-text`,children:[`→ `,r.verfuegbar]}),t[7]=r.verfuegbar,t[8]=r.zustand,t[9]=c):c=t[9];let l;t[10]===r.zustand?l=t[11]:(l=r.zustand===`aktuell`&&(0,Q.jsx)(`span`,{className:`font-sans text-xs text-gruen-text`,children:`aktuell`}),t[10]=r.zustand,t[11]=l);let u;t[12]===r.zustand?u=t[13]:(u=r.zustand===`unbekannt`&&(0,Q.jsx)(`span`,{className:`font-sans text-xs text-text-3`,children:`unklar`}),t[12]=r.zustand,t[13]=u);let d;t[14]!==s||t[15]!==c||t[16]!==l||t[17]!==u?(d=(0,Q.jsxs)(`span`,{className:`ziffern flex flex-wrap items-baseline gap-x-2 text-sm`,children:[s,c,l,u]}),t[14]=s,t[15]=c,t[16]=l,t[17]=u,t[18]=d):d=t[18];let f;t[19]!==r.aktion||t[20]!==r.grund||t[21]!==r.zustand?(f=r.zustand===`neu`&&!r.aktion&&r.grund&&(0,Q.jsx)(`span`,{className:`text-xs text-text-3`,children:r.grund}),t[19]=r.aktion,t[20]=r.grund,t[21]=r.zustand,t[22]=f):f=t[22];let p;return t[23]!==d||t[24]!==f?(p=(0,Q.jsxs)(`span`,{className:`flex min-w-0 flex-col gap-0.5`,children:[d,f]}),t[23]=d,t[24]=f,t[25]=p):p=t[25],p}function Ht(e){let t=(0,Z.c)(25),{b:n,onSuchen:r,gesperrt:i}=e;if(!n){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Q.jsx)(`span`,{className:`text-sm text-text-3`,children:`–`}),t[0]=e):e=t[0],e}let a=n.id===`docker`,o;if(n.zustand===`neu`){let e=n.kurz||`Update bereit`,r;t[1]===n.sicherheit?r=t[2]:(r=!!n.sicherheit&&(0,Q.jsxs)(`span`,{className:`text-rot-text`,children:[` · `,n.sicherheit,` Sicherheit`]}),t[1]=n.sicherheit,t[2]=r);let i;t[3]!==e||t[4]!==r?(i=(0,Q.jsxs)(`span`,{className:`text-cyan-text`,children:[e,r]}),t[3]=e,t[4]=r,t[5]=i):i=t[5],o=i}else if(n.zustand===`aktuell`){let e=a?`Images aktuell`:`aktuell`,n;t[6]===e?n=t[7]:(n=(0,Q.jsx)(`span`,{className:`text-gruen-text`,children:e}),t[6]=e,t[7]=n),o=n}else{let e;t[8]===n.grund?e=t[9]:(e=A(n.grund),t[8]=n.grund,t[9]=e);let r=e,i=n.grund??void 0,s=a?`Images unklar`:`unklar`,c;t[10]===r?c=t[11]:(c=r&&(0,Q.jsxs)(`span`,{className:`text-text-3`,children:[` · Listen vom `,r]}),t[10]=r,t[11]=c);let l;t[12]!==i||t[13]!==s||t[14]!==c?(l=(0,Q.jsxs)(`span`,{className:`text-text-2`,title:i,children:[s,c]}),t[12]=i,t[13]=s,t[14]=c,t[15]=l):l=t[15],o=l}let s=n.zustand===`unbekannt`?n.aktion:null,c;t[16]===o?c=t[17]:(c=(0,Q.jsx)(`span`,{className:`min-w-0`,children:o}),t[16]=o,t[17]=c);let l;t[18]!==i||t[19]!==r||t[20]!==s?(l=s&&(0,Q.jsx)(Y,{variant:`ghost`,size:`icon-sm`,className:`-my-2 shrink-0`,"aria-label":s.label,title:s.label,disabled:i,onClick:()=>r(s),children:(0,Q.jsx)(G,{})}),t[18]=i,t[19]=r,t[20]=s,t[21]=l):l=t[21];let u;return t[22]!==c||t[23]!==l?(u=(0,Q.jsxs)(`span`,{className:`flex items-center gap-1 text-sm`,children:[c,l]}),t[22]=c,t[23]=l,t[24]=u):u=t[24],u}var Ut={app:`App updaten`,os:`Pakete einspielen`,pakete:`Pakete einspielen`};function Wt(e,t){return!t||t.zustand!==`neu`?!1:t.id===`app`&&!!t.verfuegbar||e.art===`proxmox-host`&&t.id===`pakete`}function Gt(e){let t=(0,Z.c)(52),{ziel:n,laeuft:r,gesperrt:i,onFrage:o}=e,s;t[0]===n?s=t[1]:(s=fe(n),t[0]=n,t[1]=s);let c=s,l;t[2]===n?l=t[3]:(l=V(n),t[2]=n,t[3]=l);let u=l,d=n.bausteine.filter(Kt),f=B(n)>=2,p;t[4]===n?p=t[5]:(p=n.bausteine.find(e=>Wt(n,e)),t[4]=n,t[5]=p);let m=p,[h,g]=(0,$.useState)(!1),_=f&&`opacity-75`,v;t[6]===_?v=t[7]:(v=a(`grid grid-cols-1 gap-x-4 gap-y-2 border-t border-white/[0.06] py-3.5 md:items-center`,Bt,_),t[6]=_,t[7]=v);let y;t[8]===n?y=t[9]:(y=q(n),t[8]=n,t[9]=y);let b=d.length?`info`:null,x;t[10]!==y||t[11]!==b?(x=(0,Q.jsx)(I,{bild:y,groesse:`sm`,punkt:b}),t[10]=y,t[11]=b,t[12]=x):x=t[12];let S;t[13]===n.name?S=t[14]:(S=(0,Q.jsx)(`span`,{className:`text-[15px] font-semibold break-words`,children:n.name}),t[13]=n.name,t[14]=S);let C;t[15]===n?C=t[16]:(C=k(n)!==n.name&&(0,Q.jsx)(`span`,{className:`text-[13px] text-text-3`,children:k(n)}),t[15]=n,t[16]=C);let w;t[17]!==S||t[18]!==C?(w=(0,Q.jsxs)(`span`,{className:`flex min-w-0 flex-col`,children:[S,C]}),t[17]=S,t[18]=C,t[19]=w):w=t[19];let T;t[20]!==w||t[21]!==x?(T=(0,Q.jsxs)(`div`,{role:`rowheader`,className:`flex min-w-0 items-center gap-3`,children:[x,w]}),t[20]=w,t[21]=x,t[22]=T):T=t[22];let D;t[23]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,Q.jsx)(`span`,{className:`text-xs text-text-3 md:hidden`,children:`App `}),t[23]=D):D=t[23];let O;t[24]!==c||t[25]!==n?(O=(0,Q.jsxs)(`span`,{role:`cell`,className:`min-w-0`,children:[D,(0,Q.jsx)(Vt,{ziel:n,b:c})]}),t[24]=c,t[25]=n,t[26]=O):O=t[26];let A;t[27]===Symbol.for(`react.memo_cache_sentinel`)?(A=(0,Q.jsx)(`span`,{className:`text-xs text-text-3 md:hidden`,children:`Pakete `}),t[27]=A):A=t[27];let j=i||!!r,N;t[28]!==o||t[29]!==n?(N=e=>o({ziel:n,aktion:e}),t[28]=o,t[29]=n,t[30]=N):N=t[30];let P;t[31]!==u||t[32]!==j||t[33]!==N?(P=(0,Q.jsxs)(`span`,{role:`cell`,className:`min-w-0`,children:[A,(0,Q.jsx)(Ht,{b:u,gesperrt:j,onSuchen:N})]}),t[31]=u,t[32]=j,t[33]=N,t[34]=P):P=t[34];let F=d.length?M(n):``,L;t[35]===F?L=t[36]:(L=(0,Q.jsx)(`span`,{role:`cell`,className:`text-sm text-text-3`,children:F}),t[35]=F,t[36]=L);let ee=r?(0,Q.jsxs)(`span`,{role:`status`,className:`text-sm text-cyan-text`,children:[`Läuft: `,r]}):d.map(e=>(0,Q.jsx)(Y,{variant:`outline`,size:`sm`,disabled:i,onClick:()=>e.aktion&&o({ziel:n,aktion:e.aktion}),children:Ut[e.id]??e.aktion?.label??`Updaten`},e.id)),R;t[37]===ee?R=t[38]:(R=(0,Q.jsx)(`span`,{role:`cell`,className:`flex flex-wrap gap-2 md:flex-col md:items-stretch`,children:ee}),t[37]=ee,t[38]=R);let z;t[39]!==m||t[40]!==h||t[41]!==g||t[42]!==n.id?(z=m&&(0,Q.jsxs)(`div`,{className:`col-span-full flex flex-col gap-2`,children:[(0,Q.jsxs)(`button`,{type:`button`,"aria-expanded":h,onClick:()=>g(!h),className:`inline-flex min-h-9 items-center gap-1.5 self-start text-sm text-cyan-text hover:underline`,children:[(0,Q.jsx)(E,{className:a(`size-4 transition-transform`,h&&`rotate-90`),"aria-hidden":!0}),`Was ist neu?`]}),h&&(0,Q.jsx)(zt,{zid:n.id,baustein:m.id,className:`flaeche-innen rounded-xl p-3`})]}),t[39]=m,t[40]=h,t[41]=g,t[42]=n.id,t[43]=z):z=t[43];let H;return t[44]!==T||t[45]!==O||t[46]!==P||t[47]!==L||t[48]!==R||t[49]!==z||t[50]!==v?(H=(0,Q.jsxs)(`div`,{role:`row`,className:v,children:[T,O,P,L,R,z]}),t[44]=T,t[45]=O,t[46]=P,t[47]=L,t[48]=R,t[49]=z,t[50]=v,t[51]=H):H=t[51],H}function Kt(e){return e.zustand===`neu`&&e.aktion}function qt(e){let t=(0,Z.c)(48),{ziele:n,laufend:r,gesperrt:i,onAktion:o}=e,[s,c]=(0,$.useState)(null),l;t[0]===s?l=t[1]:(l=s?s.ziel.bausteine.find(e=>e.aktion?.pfad===s.aktion.pfad&&Wt(s.ziel,e)):void 0,t[0]=s,t[1]=l);let u=l,d,f,p,m,h,g;if(t[2]!==i||t[3]!==r||t[4]!==n){let e=[...n].sort(Yt),o;t[11]===n?o=t[12]:(o=n.filter(Jt),t[11]=n,t[12]=o),d=o.length,f=`table`,p=`Updates je Gerät`,m=`flex flex-col`,t[13]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,Q.jsxs)(`div`,{role:`row`,className:a(`etikett hidden gap-x-4 pb-2.5 text-[10.5px] tracking-[0.14em] text-text-3 md:grid`,Bt),children:[(0,Q.jsx)(`span`,{role:`columnheader`,children:`Gerät`}),(0,Q.jsx)(`span`,{role:`columnheader`,children:`App`}),(0,Q.jsx)(`span`,{role:`columnheader`,children:`Pakete`}),(0,Q.jsx)(`span`,{role:`columnheader`,children:`Rückweg`}),(0,Q.jsx)(`span`,{role:`columnheader`,className:`sr-only`,children:`Aktion`})]}),t[13]=h):h=t[13];let s;t[14]!==i||t[15]!==r?(s=e=>(0,Q.jsx)(Gt,{ziel:e,laeuft:r.get(e.id)??null,gesperrt:i||r.has(e.id),onFrage:c},e.id),t[14]=i,t[15]=r,t[16]=s):s=t[16],g=e.map(s),t[2]=i,t[3]=r,t[4]=n,t[5]=d,t[6]=f,t[7]=p,t[8]=m,t[9]=h,t[10]=g}else d=t[5],f=t[6],p=t[7],m=t[8],h=t[9],g=t[10];let _;t[17]!==f||t[18]!==p||t[19]!==m||t[20]!==h||t[21]!==g?(_=(0,Q.jsxs)(`div`,{role:f,"aria-label":p,className:m,children:[h,g]}),t[17]=f,t[18]=p,t[19]=m,t[20]=h,t[21]=g,t[22]=_):_=t[22];let v;t[23]!==d||t[24]!==n.length?(v=d>0&&d===n.length&&(0,Q.jsx)(P,{art:`gruen`,children:`Alles aktuell`}),t[23]=d,t[24]=n.length,t[25]=v):v=t[25];let y=!!s,b=s?`${s.ziel.name}: ${s.aktion.label}`:``,x=s?.aktion.frage??``,S=s?.aktion.label??``,C;t[26]===s?.aktion.pfad?C=t[27]:(C=s?.aktion.pfad.endsWith(`/neustart`),t[26]=s?.aktion.pfad,t[27]=C);let w=!!C,T;t[28]!==s||t[29]!==o?(T=()=>{s&&o(s.aktion),c(null)},t[28]=s,t[29]=o,t[30]=T):T=t[30];let E;t[31]===Symbol.for(`react.memo_cache_sentinel`)?(E=()=>c(null),t[31]=E):E=t[31];let D;t[32]!==s||t[33]!==u?(D=u&&s&&(0,Q.jsx)(zt,{zid:s.ziel.id,baustein:u.id,kompakt:!0}),t[32]=s,t[33]=u,t[34]=D):D=t[34];let O;t[35]!==i||t[36]!==b||t[37]!==x||t[38]!==S||t[39]!==w||t[40]!==T||t[41]!==D||t[42]!==y?(O=(0,Q.jsx)(pe,{offen:y,titel:b,text:x,knopf:S,gefahr:w,gesperrt:i,onJa:T,onNein:E,children:D}),t[35]=i,t[36]=b,t[37]=x,t[38]=S,t[39]=w,t[40]=T,t[41]=D,t[42]=y,t[43]=O):O=t[43];let k;return t[44]!==O||t[45]!==_||t[46]!==v?(k=(0,Q.jsxs)(Q.Fragment,{children:[_,v,O]}),t[44]=O,t[45]=_,t[46]=v,t[47]=k):k=t[47],k}function Jt(e){return B(e)===3}function Yt(e,t){return B(e)-B(t)}var Xt=`md:grid-cols-[minmax(0,1.6fr)_minmax(0,1fr)_minmax(0,1.4fr)]`,Zt={ok:`bg-gruen`,gelb:`bg-bernstein`,rot:`bg-rot shadow-[0_0_8px_var(--rot)]`},Qt={ok:`text-text-3`,gelb:`text-bernstein`,rot:`text-rot-text`},$t=e=>b(new Date(e*1e3).toISOString()).toLowerCase();function en(e){if(e<=0)return`abgelaufen`;if(e<86400)return`noch ${Math.max(1,Math.round(e/3600))} Std.`;let t=Math.round(e/86400);return t<60?`noch ${t} ${t===1?`Tag`:`Tage`}`:t<730?`noch ${Math.round(t/30)} Monate`:`noch ${Math.round(t/365)} Jahre`}function tn(e){let t=(0,Z.c)(40),{z:n}=e,r=n.namen.length>1?` und ${n.namen.length-1} weitere`:``,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=a(`grid grid-cols-2 gap-x-4 gap-y-1 border-t border-white/[0.06] py-3 md:items-center`,Xt),t[0]=i):i=t[0];let o=Zt[n.stufe],s;t[1]===o?s=t[2]:(s=a(`mt-1.5 size-2 shrink-0 rounded-full`,o),t[1]=o,t[2]=s);let c;t[3]===s?c=t[4]:(c=(0,Q.jsx)(`span`,{"aria-hidden":!0,className:s}),t[3]=s,t[4]=c);let l;t[5]!==r||t[6]!==n.name?(l=(0,Q.jsxs)(`span`,{className:`text-[15px] font-semibold break-all`,children:[n.name,r]}),t[5]=r,t[6]=n.name,t[7]=l):l=t[7];let u;t[8]!==n.aussteller||t[9]!==n.wo?(u=[n.wo,n.aussteller].filter(Boolean),t[8]=n.aussteller,t[9]=n.wo,t[10]=u):u=t[10];let d=u.join(` · `),f;t[11]===d?f=t[12]:(f=(0,Q.jsx)(`span`,{className:`text-[13px] text-text-3`,children:d}),t[11]=d,t[12]=f);let p;t[13]!==l||t[14]!==f?(p=(0,Q.jsxs)(`span`,{className:`flex min-w-0 flex-col`,children:[l,f]}),t[13]=l,t[14]=f,t[15]=p):p=t[15];let m;t[16]!==c||t[17]!==p?(m=(0,Q.jsxs)(`span`,{role:`rowheader`,className:`col-span-2 flex min-w-0 items-start gap-2.5 md:col-span-1`,children:[c,p]}),t[16]=c,t[17]=p,t[18]=m):m=t[18];let h;t[19]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,Q.jsx)(`span`,{className:`text-xs text-text-3 md:hidden`,children:`Gültig bis `}),t[19]=h):h=t[19];let g;t[20]===n.bis?g=t[21]:(g=$t(n.bis),t[20]=n.bis,t[21]=g);let _;t[22]===g?_=t[23]:(_=(0,Q.jsx)(`span`,{className:`ziffern`,children:g}),t[22]=g,t[23]=_);let v;t[24]===n.rest_s?v=t[25]:(v=en(n.rest_s),t[24]=n.rest_s,t[25]=v);let y;t[26]===v?y=t[27]:(y=(0,Q.jsx)(`span`,{className:`block text-xs text-text-3`,children:v}),t[26]=v,t[27]=y);let b;t[28]!==_||t[29]!==y?(b=(0,Q.jsxs)(`span`,{role:`cell`,className:`text-sm text-text-2`,children:[h,_,y]}),t[28]=_,t[29]=y,t[30]=b):b=t[30];let x=Qt[n.stufe],S;t[31]===x?S=t[32]:(S=a(`text-sm`,x),t[31]=x,t[32]=S);let C=n.problem??`in Ordnung`,w;t[33]!==S||t[34]!==C?(w=(0,Q.jsx)(`span`,{role:`cell`,className:S,children:C}),t[33]=S,t[34]=C,t[35]=w):w=t[35];let T;return t[36]!==m||t[37]!==b||t[38]!==w?(T=(0,Q.jsxs)(`div`,{role:`row`,className:i,children:[m,b,w]}),t[36]=m,t[37]=b,t[38]=w,t[39]=T):T=t[39],T}function nn(e){let t=(0,Z.c)(37),{daten:n}=e,r=n.zertifikate;if(!n.gelesen||r.length===0)return null;let i,o,s,c,l,u,d,f,p;if(t[0]!==r){o=r.filter(sn),i=r.some(on),f=o.length>0,p=`flaeche-innen group rounded-2xl px-4 open:pb-3`,u=`flex min-h-12 cursor-pointer list-none flex-wrap items-center justify-between gap-x-3 gap-y-1 py-2 [&::-webkit-details-marker]:hidden`;let e;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Q.jsx)(E,{className:`size-4 text-text-3 transition-transform group-open:rotate-90`,"aria-hidden":!0}),t[10]=e):e=t[10],t[11]===r.length?d=t[12]:(d=(0,Q.jsxs)(`span`,{className:`flex items-center gap-2 text-[15px] font-medium`,children:[e,r.length,` Zertifikate`]}),t[11]=r.length,t[12]=d),s=a,c=`text-sm`,l=o.length?Qt[o.some(an)?`rot`:`gelb`]:`text-text-2`,t[0]=r,t[1]=i,t[2]=o,t[3]=s,t[4]=c,t[5]=l,t[6]=u,t[7]=d,t[8]=f,t[9]=p}else i=t[1],o=t[2],s=t[3],c=t[4],l=t[5],u=t[6],d=t[7],f=t[8],p=t[9];let m;t[13]!==s||t[14]!==c||t[15]!==l?(m=s(c,l),t[13]=s,t[14]=c,t[15]=l,t[16]=m):m=t[16];let h=o.length?`${o.length} mit Problem`:`alle gültig`,g;t[17]!==m||t[18]!==h?(g=(0,Q.jsx)(`span`,{className:m,children:h}),t[17]=m,t[18]=h,t[19]=g):g=t[19];let _;t[20]!==g||t[21]!==u||t[22]!==d?(_=(0,Q.jsxs)(`summary`,{className:u,children:[d,g]}),t[20]=g,t[21]=u,t[22]=d,t[23]=_):_=t[23];let v;t[24]===Symbol.for(`react.memo_cache_sentinel`)?(v=(0,Q.jsxs)(`div`,{role:`row`,className:a(`etikett hidden gap-x-4 pt-1 pb-2.5 text-[10.5px] tracking-[0.14em] text-text-3 md:grid`,Xt),children:[(0,Q.jsx)(`span`,{role:`columnheader`,children:`Für`}),(0,Q.jsx)(`span`,{role:`columnheader`,children:`Gültig bis`}),(0,Q.jsx)(`span`,{role:`columnheader`,children:`Zustand`})]}),t[24]=v):v=t[24];let y;t[25]===r?y=t[26]:(y=r.map(rn),t[25]=r,t[26]=y);let b;t[27]===y?b=t[28]:(b=(0,Q.jsxs)(`div`,{role:`table`,"aria-label":`Zertifikate`,className:`flex flex-col`,children:[v,y]}),t[27]=y,t[28]=b);let x;t[29]===i?x=t[30]:(x=i&&(0,Q.jsx)(`p`,{className:`m-0 border-t border-white/[0.06] pt-3 text-sm text-text-3`,children:`Die Zertifikate von NPMplus gelten nur knapp eine Woche und werden laufend erneuert — gemeldet wird erst, wenn eine Erneuerung ausbleibt.`}),t[29]=i,t[30]=x);let S;return t[31]!==_||t[32]!==b||t[33]!==x||t[34]!==f||t[35]!==p?(S=(0,Q.jsxs)(`details`,{open:f,className:p,children:[_,b,x]}),t[31]=_,t[32]=b,t[33]=x,t[34]=f,t[35]=p,t[36]=S):S=t[36],S}function rn(e){return(0,Q.jsx)(tn,{z:e},`${e.quelle}-${e.datei}-${e.name}`)}function an(e){return e.stufe===`rot`}function on(e){return e.quelle===`npm`&&e.laufzeit_s!==null&&e.laufzeit_s<2592e3}function sn(e){return e.stufe!==`ok`}var cn=[`Proxmox-Host`,`AdGuard`,`NPMplus`,`NetBird`,`PVE Scripts Local`,`Gitea`,`PBS`,`Arcane mit Docker`],ln={eingespielt:{art:`gruen`,text:`eingespielt`},zurueckgerollt:{art:`bernstein`,text:`zurückgerollt`},fehler:{art:`rot`,text:`Fehler`},neustart:{art:`cyan`,text:`Neustart`},aufgeraeumt:{art:`gruen`,text:`aufgeräumt`},offen:{art:`cyan`,text:`Probelauf`}},un=e=>b(new Date(e*1e3).toISOString());function dn(){let e=(0,Z.c)(4),t,n;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,Q.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,Q.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,Q.jsx)(`h3`,{className:`etikett text-[11.5px] tracking-[0.16em] 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,Q.jsxs)(Q.Fragment,{children:[t,n,(0,Q.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[r,(0,Q.jsx)(`ul`,{className:`flex flex-wrap gap-2`,children:cn.map(fn)})]}),(0,Q.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 fn(e){return(0,Q.jsx)(`li`,{children:(0,Q.jsx)(P,{children:e})},e)}function pn(e){let t=(0,Z.c)(9),{partner:n}=e,r;t[0]===n.eingerichtet?r=t[1]:(r=n.eingerichtet?(0,Q.jsx)(P,{art:`rot`,children:`Antwortet nicht`}):(0,Q.jsx)(P,{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,Q.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,Q.jsx)(dn,{}),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,Q.jsx)(X,{titel:`Homelab`,rechts:i,children:a}),t[6]=i,t[7]=a,t[8]=o):o=t[8],o}function mn(e){let t=(0,Z.c)(12),{hinweise:n}=e,r,i;t[0]===n?(r=t[1],i=t[2]):(r=n.filter(gn),i=r.some(hn),t[0]=n,t[1]=r,t[2]=i);let a=i?`rot`:r.length?`bernstein`:`grau`,o=r.length?`${r.length} offen`:`alle stumm`,s;t[3]!==a||t[4]!==o?(s=(0,Q.jsx)(P,{art:a,children:o}),t[3]=a,t[4]=o,t[5]=s):s=t[5];let c;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(c=[],t[6]=c):c=t[6];let l;t[7]===n?l=t[8]:(l=(0,Q.jsx)(he,{hinweise:n,verlauf:c,basis:`/api/homelab/hinweise`}),t[7]=n,t[8]=l);let u;return t[9]!==s||t[10]!==l?(u=(0,Q.jsx)(X,{titel:`Hinweise`,id:`hinweise`,rechts:s,children:l}),t[9]=s,t[10]=l,t[11]=u):u=t[11],u}function hn(e){return e.stufe===`rot`}function gn(e){return e.zustand!==`stumm`}function _n(e){let t=(0,Z.c)(8),{laeufe:n}=e,r,i,a;if(t[0]!==n){a=Symbol.for(`react.early_return_sentinel`);bb0:{let e=n.filter(yn).slice(0,12);if(e.length===0){let e;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Q.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(vn)}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,Q.jsx)(`ol`,{className:r,children:i}),t[5]=r,t[6]=i,t[7]=o):o=t[7],o}function vn(e){let t=e.ergebnis?ln[e.ergebnis]??{art:`grau`,text:e.ergebnis}:{art:`grau`,text:`unterbrochen`};return(0,Q.jsxs)(`li`,{className:`flex flex-col gap-1.5 border-t border-white/[0.06] py-3 first:border-t-0 first:pt-0`,children:[(0,Q.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,Q.jsx)(`span`,{className:`ziffern col-start-1 row-start-1 text-sm text-text-3`,children:un(e.start)}),(0,Q.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,Q.jsx)(`span`,{className:`col-start-2 row-start-1 justify-self-end @sm:col-start-3`,children:(0,Q.jsx)(P,{art:t.art,children:t.text})})]}),e.text&&(0,Q.jsx)(`p`,{className:`m-0 text-sm text-text-2 @sm:pl-[124px]`,children:e.text})]},e.id)}function yn(e){return e.status!==`laeuft`&&!oe(e)}function bn(e){let t=(0,Z.c)(9),{stand:n}=e;if(!n.ausfuehrer.verbunden){let e;t[0]===n.ausfuehrer.zuletzt?e=t[1]:(e=n.ausfuehrer.zuletzt?` (zuletzt ${un(n.ausfuehrer.zuletzt)})`:``,t[0]=n.ausfuehrer.zuletzt,t[1]=e);let r;return t[2]===e?r=t[3]:(r=(0,Q.jsxs)(`p`,{role:`alert`,className:`rounded-2xl bg-bernstein/[0.08] px-4 py-3 text-[15px] text-bernstein ring-1 ring-bernstein/35 ring-inset`,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,Q.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=un(n.bericht.empfangen),t[5]=n.bericht.empfangen,t[6]=e);let r;return t[7]===e?r=t[8]:(r=(0,Q.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 xn(){let e=(0,Z.c)(20),t=o(),n=f(),r=t.data?.rolle===`homelab`||!!(n.data?.eingerichtet&&n.data.erreichbar),i=v(r),a=g(r),s=T(r),c=y(),l=null;if(t.isPending||n.isPending){let t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,Q.jsx)(F,{text:`Wird gelesen …`}),e[0]=t):t=e[0],l=t}else if(!r){let t;e[1]!==n.data||e[2]!==n.error?.message?(t=n.data?(0,Q.jsx)(pn,{partner:n.data}):(0,Q.jsx)(F,{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],l=t}else if(i.isPending){let t;e[4]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,Q.jsx)(F,{text:`Der Homelab-Teil meldet sich gleich …`}),e[4]=t):t=e[4],l=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,Q.jsx)(F,{fehler:!0,text:t}),e[5]=t,e[6]=n),l=n}let u;if(e[7]!==a.data?.laeufe){u=new Map;for(let e of a.data?.laeufe??[])e.status===`laeuft`&&u.set(e.ziel,e.schritte.at(-1)??`startet …`);e[7]=a.data?.laeufe,e[8]=u}else u=e[8];let d;e[9]===a.data?.laeufe?d=e[10]:(d=a.data?.laeufe??[],e[9]=a.data?.laeufe,e[10]=d);let p;e[11]===s.data?.hinweise?p=e[12]:(p=s.data?.hinweise??[],e[11]=s.data?.hinweise,e[12]=p);let m;return e[13]!==c||e[14]!==l||e[15]!==i.data||e[16]!==u||e[17]!==d||e[18]!==p?(m={ersatz:l,stand:i.data,laufend:u,laeufe:d,hinweise:p,aktion:c},e[13]=c,e[14]=l,e[15]=i.data,e[16]=u,e[17]=d,e[18]=p,e[19]=m):m=e[19],m}function Sn(){let e=(0,Z.c)(67),t=se(),{ersatz:n,stand:r,laufend:i,laeufe:a,hinweise:o,aktion:c}=xn(),l=w(`1h`,!!r),u=C(!!r),f=p(!!r),g=m(),_=d(!!r),v=h(!!r),y=s();if(n||!r)return n;let b,x,S;if(e[0]!==o||e[1]!==a||e[2]!==r){b=r.bericht?un(r.bericht.empfangen):null;let t;e[6]===a?t=e[7]:(t=new Set(a.filter(wn).map(Cn)),e[6]=a,e[7]=t),x=t,S=ee(r,o,x.size,b),e[0]=o,e[1]=a,e[2]=r,e[3]=b,e[4]=x,e[5]=S}else b=e[3],x=e[4],S=e[5];let T=S,E;e[8]!==T.ziel||e[9]!==t?(E=()=>{T.ziel===`updates`?t({to:`/homelab/updates`}):T.ziel&&document.getElementById(T.ziel)?.scrollIntoView({behavior:`smooth`,block:`start`})},e[8]=T.ziel,e[9]=t,e[10]=E):E=e[10];let D;e[11]===t?D=e[12]:(D=(e,n)=>{n?t({to:`/homelab/updates`}):document.getElementById(`geraet-${e.id}`)?.scrollIntoView({behavior:`smooth`,block:`center`})},e[11]=t,e[12]=D);let O;e[13]!==x||e[14]!==T||e[15]!==r.ziele||e[16]!==E||e[17]!==D?(O=(0,Q.jsx)(He,{lage:T,ziele:r.ziele,imUpdate:x,onAnsehen:E,onGeraet:D}),e[13]=x,e[14]=T,e[15]=r.ziele,e[16]=E,e[17]=D,e[18]=O):O=e[18];let k;e[19]===r?k=e[20]:(k=(0,Q.jsx)(bn,{stand:r}),e[19]=r,e[20]=k);let A;e[21]===o?A=e[22]:(A=o.length>0&&(0,Q.jsx)(mn,{hinweise:o}),e[21]=o,e[22]=A);let j;e[23]===_.data?.geraete?j=e[24]:(j=_.data?.geraete??[],e[23]=_.data?.geraete,e[24]=j);let M;e[25]===_.data?.docker?M=e[26]:(M=_.data?.docker??[],e[25]=_.data?.docker,e[26]=M);let N=y.isPending||!r.ausfuehrer.verbunden,P;e[27]===y?P=e[28]:(P=(e,t)=>y.mutate({id:e,wahl:t}),e[27]=y,e[28]=P);let F;e[29]!==j||e[30]!==M||e[31]!==N||e[32]!==P?(F=(0,Q.jsx)(Je,{geraete:j,stacks:M,gesperrt:N,onWahl:P}),e[29]=j,e[30]=M,e[31]=N,e[32]=P,e[33]=F):F=e[33];let I;e[34]===b?I=e[35]:(I=b&&(0,Q.jsxs)(`span`,{className:`ziffern text-sm text-text-3`,children:[`Stand `,b]}),e[34]=b,e[35]=I);let L;e[36]===Symbol.for(`react.memo_cache_sentinel`)?(L=(0,Q.jsxs)(re,{to:`/homelab/monitoring`,className:`inline-flex items-center gap-1 text-sm text-lab-text hover:underline`,children:[`Monitoring `,(0,Q.jsx)(te,{className:`size-3.5`,"aria-hidden":!0})]}),e[36]=L):L=e[36];let R;e[37]===I?R=e[38]:(R=(0,Q.jsxs)(`span`,{className:`flex items-center gap-3`,children:[I,L]}),e[37]=I,e[38]=R);let z=l.data?.geraete,B;e[39]!==r.ziele||e[40]!==z?(B=(0,Q.jsx)(Re,{ziele:r.ziele,messwerte:z}),e[39]=r.ziele,e[40]=z,e[41]=B):B=e[41];let V;e[42]===l.isError?V=e[43]:(V=l.isError&&(0,Q.jsx)(`p`,{className:`text-xs text-text-3`,children:`CPU und Speicher erscheinen, sobald der Ausführer Messwerte schickt.`}),e[42]=l.isError,e[43]=V);let H;e[44]!==R||e[45]!==B||e[46]!==V?(H=(0,Q.jsxs)(X,{titel:`Geräte`,id:`geraete`,rechts:R,children:[B,V]}),e[44]=R,e[45]=B,e[46]=V,e[47]=H):H=e[47];let U;e[48]===v.data?U=e[49]:(U=v.data?.verfuegbar&&v.data.stacks.length>0&&(0,Q.jsx)(X,{titel:`Docker-Dienste`,id:`docker`,children:(0,Q.jsx)(ke,{lage:v.data})}),e[48]=v.data,e[49]=U);let W;e[50]!==c||e[51]!==i||e[52]!==g||e[53]!==u.data||e[54]!==r.ausfuehrer?(W=u.data?.bericht&&(0,Q.jsx)(X,{titel:`Speicher und Sicherungen`,id:`speicher`,children:(0,Q.jsx)(vt,{daten:u.data,laeuft:i.get(`pve`)??null,gesperrt:c.isPending||i.has(`pve`)||!r.ausfuehrer.verbunden,onAktion:e=>c.mutate(e),onProbe:()=>g.mutate(void 0),probeGesperrt:g.isPending||!r.ausfuehrer.verbunden,snapshotsLink:(0,Q.jsxs)(re,{to:`/homelab/snapshots`,className:`inline-flex min-h-10 items-center gap-1 self-start text-sm text-lab-text hover:underline`,children:[`Zu den Snapshots `,(0,Q.jsx)(te,{className:`size-3.5`,"aria-hidden":!0})]})})}),e[50]=c,e[51]=i,e[52]=g,e[53]=u.data,e[54]=r.ausfuehrer,e[55]=W):W=e[55];let G;e[56]===f.data?G=e[57]:(G=f.data?.gelesen&&f.data.zertifikate.length>0&&(0,Q.jsx)(X,{titel:`Zertifikate`,id:`zertifikate`,children:(0,Q.jsx)(nn,{daten:f.data})}),e[56]=f.data,e[57]=G);let K;return e[58]!==F||e[59]!==H||e[60]!==U||e[61]!==W||e[62]!==G||e[63]!==O||e[64]!==k||e[65]!==A?(K=(0,Q.jsxs)(Q.Fragment,{children:[O,k,A,F,H,U,W,G]}),e[58]=F,e[59]=H,e[60]=U,e[61]=W,e[62]=G,e[63]=O,e[64]=k,e[65]=A,e[66]=K):K=e[66],K}function Cn(e){return e.ziel}function wn(e){return e.status===`laeuft`&&!oe(e)}function Tn(){let e=(0,Z.c)(30),{ersatz:t,stand:n,laufend:r,laeufe:i,aktion:a}=xn(),o=u(!!n),s=x();if(t||!n)return t;let c=o.data?.sammellauf??null,l=c?.status===`laeuft`,d;e[0]===n.ziele?d=e[1]:(d=N(n.ziele).filter(En),e[0]=n.ziele,e[1]=d);let f=d.length,p=a.isPending||l||!n.ausfuehrer.verbunden,m;e[2]!==f||e[3]!==p?(m=(0,Q.jsx)(Dt,{anzahl:f,gesperrt:p}),e[2]=f,e[3]=p,e[4]=m):m=e[4];let h;e[5]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,Q.jsx)(`p`,{className:`-mt-2 text-[15px] text-text-2`,children:`Je Gerät, was läuft und was neu ist. Du startest jedes Update selbst — einzeln oder alle nacheinander. Vorher wird gesichert, danach geprüft; ist die Prüfung rot, geht es von selbst zurück.`}),e[5]=h):h=e[5];let g;e[6]===n?g=e[7]:(g=(0,Q.jsx)(bn,{stand:n}),e[6]=n,e[7]=g);let _;e[8]!==c||e[9]!==s||e[10]!==l||e[11]!==n.bericht?.empfangen?(_=c&&(l||c.ende&&(n.bericht?.empfangen??0)-c.ende<21600)&&(0,Q.jsx)(jt,{lauf:c,onQuittieren:()=>s.mutate(c.id)}),e[8]=c,e[9]=s,e[10]=l,e[11]=n.bericht?.empfangen,e[12]=_):_=e[12];let v=a.isPending||l||!n.ausfuehrer.verbunden,y;e[13]===a?y=e[14]:(y=e=>a.mutate(e),e[13]=a,e[14]=y);let b;e[15]!==r||e[16]!==n.ziele||e[17]!==v||e[18]!==y?(b=(0,Q.jsx)(qt,{ziele:n.ziele,laufend:r,gesperrt:v,onAktion:y}),e[15]=r,e[16]=n.ziele,e[17]=v,e[18]=y,e[19]=b):b=e[19];let S;e[20]!==m||e[21]!==g||e[22]!==_||e[23]!==b?(S=(0,Q.jsxs)(X,{titel:`Updates`,rechts:m,children:[h,g,_,b]}),e[20]=m,e[21]=g,e[22]=_,e[23]=b,e[24]=S):S=e[24];let C;e[25]===i?C=e[26]:(C=(0,Q.jsx)(X,{titel:`Verlauf`,children:(0,Q.jsx)(_n,{laeufe:i})}),e[25]=i,e[26]=C);let w;return e[27]!==C||e[28]!==S?(w=(0,Q.jsxs)(Q.Fragment,{children:[S,C]}),e[27]=C,e[28]=S,e[29]=w):w=e[29],w}function En(e){return e.baustein.aktion}export{Sn as HomelabSeite,Tn as HomelabUpdatesSeite}; \ No newline at end of file diff --git a/frontend/dist/assets/HomelabProtokoll-BmIaM_Y4.js b/frontend/dist/assets/HomelabProtokoll-BmIaM_Y4.js deleted file mode 100644 index 14d7ac2..0000000 --- a/frontend/dist/assets/HomelabProtokoll-BmIaM_Y4.js +++ /dev/null @@ -1 +0,0 @@ -import{a as e,c as t,i as n,n as r,r as i,t as a}from"./dist-aE7UmubC.js";import{D as o,R as s,S as c,g as l}from"./abfragen-DKcWnZ8a.js";import{t as u}from"./useRouterState-DJr4hrdj.js";import{t as d}from"./chevron-right-DF8ikrVh.js";import{$ as f,N as p,et as m,nt as h,st as g,tt as _}from"./index-BUHDF9RN.js";import{t as v}from"./Panel-uT1S5ZGr.js";var y={name:`bell`,size:24,node:[[`path`,{d:`M10.268 21a2 2 0 0 0 3.464 0`,key:`vwvbt9`}],[`path`,{d:`M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326`,key:`11g9vi`}]]};y.node;var b=r(y),x={name:`cog`,size:24,node:[[`path`,{d:`M11 10.27 7 3.34`,key:`16pf9h`}],[`path`,{d:`m11 13.73-4 6.93`,key:`794ttg`}],[`path`,{d:`M12 22v-2`,key:`1osdcq`}],[`path`,{d:`M12 2v2`,key:`tus03m`}],[`path`,{d:`M14 12h8`,key:`4f43i9`}],[`path`,{d:`m17 20.66-1-1.73`,key:`eq3orb`}],[`path`,{d:`m17 3.34-1 1.73`,key:`2wel8s`}],[`path`,{d:`M2 12h2`,key:`1t8f8n`}],[`path`,{d:`m20.66 17-1.73-1`,key:`sg0v6f`}],[`path`,{d:`m20.66 7-1.73 1`,key:`1ow05n`}],[`path`,{d:`m3.34 17 1.73-1`,key:`nuk764`}],[`path`,{d:`m3.34 7 1.73 1`,key:`1ulond`}],[`circle`,{cx:`12`,cy:`12`,r:`2`,key:`1c9p78`}],[`circle`,{cx:`12`,cy:`12`,r:`8`,key:`46899m`}]]};x.node;var S=r(x),C=i(),w=t(e(),1),T=n(),E=[{id:`alle`,name:`Alles`},{id:`lauf`,name:`Updates`},{id:`snapshot`,name:`Snapshots`},{id:`auftrag`,name:`Ausführer`},{id:`hinweis`,name:`Hinweise`},{id:`meldung`,name:`Meldungen`},{id:`pflege`,name:`Pflege`}],D={auftrag:S,lauf:h,sammellauf:h,hinweis:f,meldung:b,pflege:m,snapshot:_},O={ok:{punkt:`bg-gruen`,text:`text-gruen-text`,wort:`ok`},info:{punkt:`bg-cyan`,text:`text-cyan-text`,wort:`Info`},warn:{punkt:`bg-bernstein`,text:`text-bernstein`,wort:`Warnung`},fehler:{punkt:`bg-rot`,text:`text-rot-text`,wort:`Fehler`}},k=new Intl.DateTimeFormat(`de-DE`,{weekday:`long`,day:`2-digit`,month:`2-digit`,timeZone:`Europe/Berlin`}),A=new Intl.DateTimeFormat(`de-DE`,{hour:`2-digit`,minute:`2-digit`,second:`2-digit`,timeZone:`Europe/Berlin`}),j=new Intl.DateTimeFormat(`sv-SE`,{timeZone:`Europe/Berlin`});function M(e){let t=j.format(new Date),n=j.format(new Date(Date.now()-864e5)),r=j.format(new Date(e*1e3));return r===t?`Heute`:r===n?`Gestern`:k.format(new Date(e*1e3))}function N(e){let t=(0,C.c)(38),{e:n,geraet:r}=e,[i,o]=(0,w.useState)(!1),s=O[n.stufe]??O.info,c=D[n.art]??S,l;t[0]===n.zeit?l=t[1]:(l=A.format(new Date(n.zeit*1e3)),t[0]=n.zeit,t[1]=l);let u;t[2]===l?u=t[3]:(u=(0,T.jsx)(`span`,{className:`ziffern pt-0.5 text-xs text-text-3`,children:l}),t[2]=l,t[3]=u);let f;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,T.jsx)(`span`,{"aria-hidden":!0,className:`absolute -top-2.5 -bottom-2.5 w-px bg-white/10`}),t[4]=f):f=t[4];let p;t[5]===s.punkt?p=t[6]:(p=a(`relative size-2.5 rounded-full ring-4 ring-[var(--panel)]`,s.punkt),t[5]=s.punkt,t[6]=p);let m;t[7]===p?m=t[8]:(m=(0,T.jsxs)(`span`,{className:`relative flex flex-col items-center pt-1`,children:[f,(0,T.jsx)(`span`,{"aria-hidden":!0,className:p})]}),t[7]=p,t[8]=m);let h;t[9]===c?h=t[10]:(h=(0,T.jsx)(c,{className:`size-3.5 shrink-0 text-text-3`,"aria-hidden":!0}),t[9]=c,t[10]=h);let g=n.stufe===`fehler`||n.stufe===`warn`?s.text:`text-foreground`,_;t[11]===g?_=t[12]:(_=a(g),t[11]=g,t[12]=_);let v;t[13]!==n.titel||t[14]!==_?(v=(0,T.jsx)(`span`,{className:_,children:n.titel}),t[13]=n.titel,t[14]=_,t[15]=v):v=t[15];let y;t[16]===r?y=t[17]:(y=r&&(0,T.jsx)(`span`,{className:`rounded-md bg-lab-grund px-1.5 text-xs text-lab-text`,children:r}),t[16]=r,t[17]=y);let b;t[18]===s.wort?b=t[19]:(b=(0,T.jsxs)(`span`,{className:`sr-only`,children:[`(`,s.wort,`)`]}),t[18]=s.wort,t[19]=b);let x;t[20]!==y||t[21]!==b||t[22]!==h||t[23]!==v?(x=(0,T.jsxs)(`span`,{className:`flex flex-wrap items-center gap-x-2 text-[15px]`,children:[h,v,y,b]}),t[20]=y,t[21]=b,t[22]=h,t[23]=v,t[24]=x):x=t[24];let E;t[25]===n.text?E=t[26]:(E=n.text&&(0,T.jsx)(`span`,{className:`text-sm text-text-2`,children:n.text}),t[25]=n.text,t[26]=E);let k;t[27]!==n.details||t[28]!==i?(k=n.details&&(0,T.jsxs)(T.Fragment,{children:[(0,T.jsxs)(`button`,{type:`button`,onClick:()=>o(!i),"aria-expanded":i,className:`inline-flex h-8 items-center gap-1 self-start text-xs text-cyan hover:underline`,children:[(0,T.jsx)(d,{className:a(`size-3.5 transition-transform`,i&&`rotate-90`),"aria-hidden":!0}),i?`Ausgabe verbergen`:`Ausgabe zeigen`]}),i&&(0,T.jsx)(`pre`,{className:`ziffern m-0 max-h-72 overflow-auto rounded-xl bg-black/30 ring-1 ring-white/[0.07] ring-inset p-2.5 text-xs whitespace-pre-wrap text-text-2`,children:n.details})]}),t[27]=n.details,t[28]=i,t[29]=k):k=t[29];let j;t[30]!==x||t[31]!==E||t[32]!==k?(j=(0,T.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-0.5`,children:[x,E,k]}),t[30]=x,t[31]=E,t[32]=k,t[33]=j):j=t[33];let M;return t[34]!==j||t[35]!==u||t[36]!==m?(M=(0,T.jsxs)(`li`,{className:`grid grid-cols-[64px_18px_minmax(0,1fr)] gap-x-3 border-t border-white/[0.06] py-2.5 first:border-t-0`,children:[u,m,j]}),t[34]=j,t[35]=u,t[36]=m,t[37]=M):M=t[37],M}function P(){let e=(0,C.c)(18),t=o(),n=s(),r=t.data?.rolle===`homelab`||!!(n.data?.eingerichtet&&n.data.erreichbar),[i,d]=(0,w.useState)(`alle`),[f,m]=(0,w.useState)(!1),h=g(),_;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(_={select:L},e[0]=_):_=e[0];let y=u(_),b=l(r).data?.ziele??[],x=new Map(b.map(I)),S;e[1]===y?S=e[2]:(S=y&&/^(pve|(ct|vm)-\d+)$/.test(y)?y:null,e[1]=y,e[2]=S);let D=S,O=c(r,f,D);if(t.isPending||n.isPending){let t;return e[3]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,T.jsx)(p,{text:`Wird gelesen …`}),e[3]=t):t=e[3],t}if(!r){let t;return e[4]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,T.jsx)(p,{fehler:!0,text:`Der Homelab-Teil antwortet gerade nicht.`}),e[4]=t):t=e[4],t}let k=(O.data?.eintraege??[]).filter(e=>i===`alle`||e.art===i||i===`lauf`&&e.art===`sammellauf`),A=[];for(let e of k){let t=M(e.zeit);A.at(-1)?.titel!==t&&A.push({titel:t,eintraege:[]}),A.at(-1).eintraege.push(e)}let j=D?`Alles, was an diesem Gerät geschah: Updates von → nach, Snapshots, Rückwege, Neustarts und Hinweise.`:`Was der Homelab-Teil getan hat: Aufträge an den Ausführer auf dem Proxmox-Host, Update-Läufe, Snapshots, Hinweise, gesendete Meldungen und die nächtliche Paketsuche.`,P;e[5]===j?P=e[6]:(P=(0,T.jsx)(`p`,{className:`-mt-2 text-[15px] text-text-2`,children:j}),e[5]=j,e[6]=P);let R;e[7]===h?R=e[8]:(R=e=>void h({to:`/homelab/protokoll`,hash:e.target.value||void 0}),e[7]=h,e[8]=R);let z;e[9]===Symbol.for(`react.memo_cache_sentinel`)?(z=(0,T.jsx)(`option`,{value:``,children:`Alle Geräte`}),e[9]=z):z=e[9];let B;e[10]===i?B=e[11]:(B=E.map(e=>(0,T.jsx)(`button`,{type:`button`,onClick:()=>d(e.id),"aria-pressed":i===e.id,className:a(`h-9 rounded-full border px-3.5 text-sm`,i===e.id?`border-lab-rand bg-lab-grund text-lab-text`:`border-white/10 text-text-2 hover:border-white/20 hover:text-foreground`),children:e.name},e.id)),e[10]=i,e[11]=B);let V;e[12]===Symbol.for(`react.memo_cache_sentinel`)?(V=e=>m(e.target.checked),e[12]=V):V=e[12];let H;e[13]===f?H=e[14]:(H=(0,T.jsxs)(`label`,{className:`ml-auto flex h-9 cursor-pointer items-center gap-2 text-sm text-text-2`,children:[(0,T.jsx)(`input`,{type:`checkbox`,checked:f,onChange:V,className:`size-4 accent-[var(--lab)]`}),`Berichte zeigen (alle 10 min)`]}),e[13]=f,e[14]=H);let U;return e[15]!==B||e[16]!==H?(U=(0,T.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,role:`group`,"aria-label":`Filter`,children:[B,H]}),e[15]=B,e[16]=H,e[17]=U):U=e[17],(0,T.jsxs)(v,{titel:D?`Zeitleiste · ${x.get(D)??D}`:`Protokoll`,children:[P,(0,T.jsxs)(`label`,{className:`flex max-w-sm flex-col gap-1 text-sm text-text-2`,children:[`Gerät`,(0,T.jsxs)(`select`,{value:D??``,onChange:R,className:`h-10 rounded-xl border border-white/12 bg-white/[0.04] px-3 text-[15px] text-foreground outline-none focus:border-lab/60`,children:[z,b.map(F)]})]}),U,O.isPending?(0,T.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Wird gelesen …`}):O.isError?(0,T.jsxs)(`p`,{role:`alert`,className:`text-[15px] text-rot-text`,children:[`Das Protokoll lässt sich nicht lesen: `,O.error.message]}):A.length===0?(0,T.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Dazu gibt es noch keine Einträge.`}):(0,T.jsx)(`div`,{className:a(`flex flex-col gap-5`,O.isFetching&&`opacity-80`),children:A.map(e=>(0,T.jsxs)(`section`,{"aria-label":e.titel,className:`flex flex-col gap-1`,children:[(0,T.jsx)(`h3`,{className:`etikett text-[11.5px] tracking-[0.16em] text-lab-text`,children:e.titel}),(0,T.jsx)(`ol`,{className:`m-0 flex list-none flex-col p-0`,children:e.eintraege.map((e,t)=>{let n=e.ziel&&!D?x.get(e.ziel)??e.ziel:null;return(0,T.jsx)(N,{e,geraet:n&&!e.titel.includes(n)?n:null},`${e.zeit}-${e.titel}-${t}`)})})]},e.titel))})]})}function F(e){return(0,T.jsx)(`option`,{value:e.id,children:e.name},e.id)}function I(e){return[e.id,e.name]}function L(e){return e.location.hash}export{P as HomelabProtokollSeite}; \ No newline at end of file diff --git a/frontend/dist/assets/HomelabProtokoll-D7ZspeaL.js b/frontend/dist/assets/HomelabProtokoll-D7ZspeaL.js new file mode 100644 index 0000000..d031836 --- /dev/null +++ b/frontend/dist/assets/HomelabProtokoll-D7ZspeaL.js @@ -0,0 +1 @@ +import{a as e,c as t,i as n,n as r,r as i,t as a}from"./dist-aE7UmubC.js";import{B as o,D as s,S as c,g as l}from"./abfragen-pD_qBEtc.js";import{t as u}from"./useRouterState-DJr4hrdj.js";import{t as d}from"./chevron-right-DF8ikrVh.js";import{H as f,ct as p,ht as m,lt as h,p as g,st as _,ut as v}from"./index-Bumw6krN.js";var y={name:`bell`,size:24,node:[[`path`,{d:`M10.268 21a2 2 0 0 0 3.464 0`,key:`vwvbt9`}],[`path`,{d:`M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326`,key:`11g9vi`}]]};y.node;var b=r(y),x={name:`cog`,size:24,node:[[`path`,{d:`M11 10.27 7 3.34`,key:`16pf9h`}],[`path`,{d:`m11 13.73-4 6.93`,key:`794ttg`}],[`path`,{d:`M12 22v-2`,key:`1osdcq`}],[`path`,{d:`M12 2v2`,key:`tus03m`}],[`path`,{d:`M14 12h8`,key:`4f43i9`}],[`path`,{d:`m17 20.66-1-1.73`,key:`eq3orb`}],[`path`,{d:`m17 3.34-1 1.73`,key:`2wel8s`}],[`path`,{d:`M2 12h2`,key:`1t8f8n`}],[`path`,{d:`m20.66 17-1.73-1`,key:`sg0v6f`}],[`path`,{d:`m20.66 7-1.73 1`,key:`1ow05n`}],[`path`,{d:`m3.34 17 1.73-1`,key:`nuk764`}],[`path`,{d:`m3.34 7 1.73 1`,key:`1ulond`}],[`circle`,{cx:`12`,cy:`12`,r:`2`,key:`1c9p78`}],[`circle`,{cx:`12`,cy:`12`,r:`8`,key:`46899m`}]]};x.node;var S=r(x),C=i(),w=t(e(),1),T=n(),E=[{id:`alle`,name:`Alles`},{id:`lauf`,name:`Updates`},{id:`snapshot`,name:`Snapshots`},{id:`auftrag`,name:`Ausführer`},{id:`hinweis`,name:`Hinweise`},{id:`meldung`,name:`Meldungen`},{id:`pflege`,name:`Pflege`}],D={auftrag:S,lauf:v,sammellauf:v,hinweis:_,meldung:b,pflege:p,snapshot:h},O={ok:{punkt:`bg-gruen`,text:`text-gruen-text`,wort:`ok`},info:{punkt:`bg-cyan`,text:`text-cyan-text`,wort:`Info`},warn:{punkt:`bg-bernstein`,text:`text-bernstein`,wort:`Warnung`},fehler:{punkt:`bg-rot`,text:`text-rot-text`,wort:`Fehler`}},k=new Intl.DateTimeFormat(`de-DE`,{weekday:`long`,day:`2-digit`,month:`2-digit`,timeZone:`Europe/Berlin`}),A=new Intl.DateTimeFormat(`de-DE`,{hour:`2-digit`,minute:`2-digit`,second:`2-digit`,timeZone:`Europe/Berlin`}),j=new Intl.DateTimeFormat(`sv-SE`,{timeZone:`Europe/Berlin`});function M(e){let t=j.format(new Date),n=j.format(new Date(Date.now()-864e5)),r=j.format(new Date(e*1e3));return r===t?`Heute`:r===n?`Gestern`:k.format(new Date(e*1e3))}function N(e){let t=(0,C.c)(38),{e:n,geraet:r}=e,[i,o]=(0,w.useState)(!1),s=O[n.stufe]??O.info,c=D[n.art]??S,l;t[0]===n.zeit?l=t[1]:(l=A.format(new Date(n.zeit*1e3)),t[0]=n.zeit,t[1]=l);let u;t[2]===l?u=t[3]:(u=(0,T.jsx)(`span`,{className:`ziffern pt-0.5 text-xs text-text-3`,children:l}),t[2]=l,t[3]=u);let f;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,T.jsx)(`span`,{"aria-hidden":!0,className:`absolute -top-2.5 -bottom-2.5 w-px bg-white/10`}),t[4]=f):f=t[4];let p;t[5]===s.punkt?p=t[6]:(p=a(`relative size-2.5 rounded-full ring-4 ring-[var(--panel)]`,s.punkt),t[5]=s.punkt,t[6]=p);let m;t[7]===p?m=t[8]:(m=(0,T.jsxs)(`span`,{className:`relative flex flex-col items-center pt-1`,children:[f,(0,T.jsx)(`span`,{"aria-hidden":!0,className:p})]}),t[7]=p,t[8]=m);let h;t[9]===c?h=t[10]:(h=(0,T.jsx)(c,{className:`size-3.5 shrink-0 text-text-3`,"aria-hidden":!0}),t[9]=c,t[10]=h);let g=n.stufe===`fehler`||n.stufe===`warn`?s.text:`text-foreground`,_;t[11]===g?_=t[12]:(_=a(g),t[11]=g,t[12]=_);let v;t[13]!==n.titel||t[14]!==_?(v=(0,T.jsx)(`span`,{className:_,children:n.titel}),t[13]=n.titel,t[14]=_,t[15]=v):v=t[15];let y;t[16]===r?y=t[17]:(y=r&&(0,T.jsx)(`span`,{className:`rounded-md bg-lab-grund px-1.5 text-xs text-lab-text`,children:r}),t[16]=r,t[17]=y);let b;t[18]===s.wort?b=t[19]:(b=(0,T.jsxs)(`span`,{className:`sr-only`,children:[`(`,s.wort,`)`]}),t[18]=s.wort,t[19]=b);let x;t[20]!==y||t[21]!==b||t[22]!==h||t[23]!==v?(x=(0,T.jsxs)(`span`,{className:`flex flex-wrap items-center gap-x-2 text-[15px]`,children:[h,v,y,b]}),t[20]=y,t[21]=b,t[22]=h,t[23]=v,t[24]=x):x=t[24];let E;t[25]===n.text?E=t[26]:(E=n.text&&(0,T.jsx)(`span`,{className:`text-sm text-text-2`,children:n.text}),t[25]=n.text,t[26]=E);let k;t[27]!==n.details||t[28]!==i?(k=n.details&&(0,T.jsxs)(T.Fragment,{children:[(0,T.jsxs)(`button`,{type:`button`,onClick:()=>o(!i),"aria-expanded":i,className:`inline-flex h-8 items-center gap-1 self-start text-xs text-cyan hover:underline`,children:[(0,T.jsx)(d,{className:a(`size-3.5 transition-transform`,i&&`rotate-90`),"aria-hidden":!0}),i?`Ausgabe verbergen`:`Ausgabe zeigen`]}),i&&(0,T.jsx)(`pre`,{className:`ziffern m-0 max-h-72 overflow-auto rounded-xl bg-black/30 ring-1 ring-white/[0.07] ring-inset p-2.5 text-xs whitespace-pre-wrap text-text-2`,children:n.details})]}),t[27]=n.details,t[28]=i,t[29]=k):k=t[29];let j;t[30]!==x||t[31]!==E||t[32]!==k?(j=(0,T.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-0.5`,children:[x,E,k]}),t[30]=x,t[31]=E,t[32]=k,t[33]=j):j=t[33];let M;return t[34]!==j||t[35]!==u||t[36]!==m?(M=(0,T.jsxs)(`li`,{className:`grid grid-cols-[64px_18px_minmax(0,1fr)] gap-x-3 border-t border-white/[0.06] py-2.5 first:border-t-0`,children:[u,m,j]}),t[34]=j,t[35]=u,t[36]=m,t[37]=M):M=t[37],M}function P(){let e=(0,C.c)(18),t=s(),n=o(),r=t.data?.rolle===`homelab`||!!(n.data?.eingerichtet&&n.data.erreichbar),[i,d]=(0,w.useState)(`alle`),[p,h]=(0,w.useState)(!1),_=m(),v;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(v={select:L},e[0]=v):v=e[0];let y=u(v),b=l(r).data?.ziele??[],x=new Map(b.map(I)),S;e[1]===y?S=e[2]:(S=y&&/^(pve|(ct|vm)-\d+)$/.test(y)?y:null,e[1]=y,e[2]=S);let D=S,O=c(r,p,D);if(t.isPending||n.isPending){let t;return e[3]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,T.jsx)(f,{text:`Wird gelesen …`}),e[3]=t):t=e[3],t}if(!r){let t;return e[4]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,T.jsx)(f,{fehler:!0,text:`Der Homelab-Teil antwortet gerade nicht.`}),e[4]=t):t=e[4],t}let k=(O.data?.eintraege??[]).filter(e=>i===`alle`||e.art===i||i===`lauf`&&e.art===`sammellauf`),A=[];for(let e of k){let t=M(e.zeit);A.at(-1)?.titel!==t&&A.push({titel:t,eintraege:[]}),A.at(-1).eintraege.push(e)}let j=D?`Alles, was an diesem Gerät geschah: Updates von → nach, Snapshots, Rückwege, Neustarts und Hinweise.`:`Was der Homelab-Teil getan hat: Aufträge an den Ausführer auf dem Proxmox-Host, Update-Läufe, Snapshots, Hinweise, gesendete Meldungen und die nächtliche Paketsuche.`,P;e[5]===j?P=e[6]:(P=(0,T.jsx)(`p`,{className:`-mt-2 text-[15px] text-text-2`,children:j}),e[5]=j,e[6]=P);let R;e[7]===_?R=e[8]:(R=e=>void _({to:`/homelab/protokoll`,hash:e.target.value||void 0}),e[7]=_,e[8]=R);let z;e[9]===Symbol.for(`react.memo_cache_sentinel`)?(z=(0,T.jsx)(`option`,{value:``,children:`Alle Geräte`}),e[9]=z):z=e[9];let B;e[10]===i?B=e[11]:(B=E.map(e=>(0,T.jsx)(`button`,{type:`button`,onClick:()=>d(e.id),"aria-pressed":i===e.id,className:a(`h-9 rounded-full border px-3.5 text-sm`,i===e.id?`border-lab-rand bg-lab-grund text-lab-text`:`border-white/10 text-text-2 hover:border-white/20 hover:text-foreground`),children:e.name},e.id)),e[10]=i,e[11]=B);let V;e[12]===Symbol.for(`react.memo_cache_sentinel`)?(V=e=>h(e.target.checked),e[12]=V):V=e[12];let H;e[13]===p?H=e[14]:(H=(0,T.jsxs)(`label`,{className:`ml-auto flex h-9 cursor-pointer items-center gap-2 text-sm text-text-2`,children:[(0,T.jsx)(`input`,{type:`checkbox`,checked:p,onChange:V,className:`size-4 accent-[var(--lab)]`}),`Berichte zeigen (alle 10 min)`]}),e[13]=p,e[14]=H);let U;return e[15]!==B||e[16]!==H?(U=(0,T.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,role:`group`,"aria-label":`Filter`,children:[B,H]}),e[15]=B,e[16]=H,e[17]=U):U=e[17],(0,T.jsxs)(g,{titel:D?`Zeitleiste · ${x.get(D)??D}`:`Protokoll`,children:[P,(0,T.jsxs)(`label`,{className:`flex max-w-sm flex-col gap-1 text-sm text-text-2`,children:[`Gerät`,(0,T.jsxs)(`select`,{value:D??``,onChange:R,className:`h-10 rounded-xl border border-white/12 bg-white/[0.04] px-3 text-[15px] text-foreground outline-none focus:border-lab/60`,children:[z,b.map(F)]})]}),U,O.isPending?(0,T.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Wird gelesen …`}):O.isError?(0,T.jsxs)(`p`,{role:`alert`,className:`text-[15px] text-rot-text`,children:[`Das Protokoll lässt sich nicht lesen: `,O.error.message]}):A.length===0?(0,T.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Dazu gibt es noch keine Einträge.`}):(0,T.jsx)(`div`,{className:a(`flex flex-col gap-5`,O.isFetching&&`opacity-80`),children:A.map(e=>(0,T.jsxs)(`section`,{"aria-label":e.titel,className:`flex flex-col gap-1`,children:[(0,T.jsx)(`h3`,{className:`etikett text-[11.5px] tracking-[0.16em] text-lab-text`,children:e.titel}),(0,T.jsx)(`ol`,{className:`m-0 flex list-none flex-col p-0`,children:e.eintraege.map((e,t)=>{let n=e.ziel&&!D?x.get(e.ziel)??e.ziel:null;return(0,T.jsx)(N,{e,geraet:n&&!e.titel.includes(n)?n:null},`${e.zeit}-${e.titel}-${t}`)})})]},e.titel))})]})}function F(e){return(0,T.jsx)(`option`,{value:e.id,children:e.name},e.id)}function I(e){return[e.id,e.name]}function L(e){return e.location.hash}export{P as HomelabProtokollSeite}; \ No newline at end of file diff --git a/frontend/dist/assets/HomelabSnapshots-D4oCEotX.js b/frontend/dist/assets/HomelabSnapshots-D4oCEotX.js new file mode 100644 index 0000000..c6c17e6 --- /dev/null +++ b/frontend/dist/assets/HomelabSnapshots-D4oCEotX.js @@ -0,0 +1 @@ +import{a as e,c as t,i as n,n as r,r as i,t as a}from"./dist-aE7UmubC.js";import{B as o,C as s,D as c,et as l}from"./abfragen-pD_qBEtc.js";import{n as u,t as d}from"./undo-2-B8COJmAr.js";import{t as f}from"./button-BHVKhtQ6.js";import{B as p,H as m,L as h,V as g,a as _,c as v,ft as y,i as b,l as x,m as S,o as C,p as w,u as T}from"./index-Bumw6krN.js";var E={name:`flask-conical`,size:24,node:[[`path`,{d:`M14 2v6a2 2 0 0 0 .245.96l5.51 10.08A2 2 0 0 1 18 22H6a2 2 0 0 1-1.755-2.96l5.51-10.08A2 2 0 0 0 10 8V2`,key:`18mbvz`}],[`path`,{d:`M6.453 15h11.094`,key:`3shlmq`}],[`path`,{d:`M8.5 2h7`,key:`csnxdl`}]]};E.node;var D=r(E),O={name:`plus`,size:24,node:[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`M12 5v14`,key:`s699le`}]]};O.node;var k=r(O),A={name:`trash`,size:24,node:[[`path`,{d:`M10 11v6`,key:`nco0om`}],[`path`,{d:`M14 11v6`,key:`outv1u`}],[`path`,{d:`M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6`,key:`miytrc`}],[`path`,{d:`M3 6h18`,key:`d0wm0j`}],[`path`,{d:`M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2`,key:`e791ji`}]],aliases:[`trash-2`]};A.node;var j=r(A),M=i(),N=t(e(),1),P=n(),F=`grid grid-cols-[minmax(0,1fr)_auto] items-start gap-x-3 gap-y-1.5 border-t border-white/[0.06] py-3 [grid-template-areas:'name_herkunft'_'zeit_zeit'_'text_text'_'knoepfe_knoepfe'] md:grid-rows-[auto_auto_1fr] md:gap-x-4 md:[grid-template-areas:'name_herkunft'_'zeit_knoepfe'_'text_knoepfe'] xl:grid-cols-[minmax(10.5rem,1.1fr)_7.5rem_minmax(0,1fr)_minmax(0,1.4fr)_11rem] xl:grid-rows-none xl:items-center xl:[grid-template-areas:'name_herkunft_zeit_text_knoepfe']`,I=`ziffern min-w-0 pt-1 text-sm break-words text-foreground [grid-area:name] xl:pt-0`,L=`justify-self-end [grid-area:herkunft] xl:justify-self-start`;function R(e){let t=(0,M.c)(11),{zeit:n,jetzt:r}=e,i;t[0]!==r||t[1]!==n?(i=x(n,r),t[0]=r,t[1]=n,t[2]=i):i=t[2];let a;t[3]===i?a=t[4]:(a=(0,P.jsx)(`span`,{className:`ziffern text-text-2`,children:i}),t[3]=i,t[4]=a);let o;t[5]!==r||t[6]!==n?(o=n!==null&&(0,P.jsx)(`span`,{className:`text-text-3`,children:_(n,r)}),t[5]=r,t[6]=n,t[7]=o):o=t[7];let s;return t[8]!==a||t[9]!==o?(s=(0,P.jsxs)(`span`,{role:`cell`,className:`flex flex-wrap items-baseline gap-x-2 text-sm [grid-area:zeit]`,children:[a,o]}),t[8]=a,t[9]=o,t[10]=s):s=t[10],s}function z(e){let t=(0,M.c)(2),{children:n}=e,r;return t[0]===n?r=t[1]:(r=(0,P.jsx)(`span`,{role:`cell`,className:`min-w-0 text-sm break-words text-text-2 [grid-area:text]`,children:n}),t[0]=n,t[1]=r),r}function B(e){let t=(0,M.c)(5),{children:n,ohne:r}=e,i;t[0]!==n||t[1]!==r?(i=r?(0,P.jsx)(`span`,{className:`text-xs text-text-3`,children:r}):n,t[0]=n,t[1]=r,t[2]=i):i=t[2];let a;return t[3]===i?a=t[4]:(a=(0,P.jsx)(`span`,{role:`cell`,className:`flex flex-wrap gap-2 [grid-area:knoepfe] md:flex-col md:items-stretch md:justify-self-end xl:justify-self-stretch`,children:i}),t[3]=i,t[4]=a),a}function V(e){let t=(0,M.c)(35),{g:n,s:r,jetzt:i,gesperrt:a,onFrage:o}=e,{loeschen:s,zuruecksetzen:c}=r,l=s||c?null:r.eigen?`Nicht freigegeben`:`Nur in Proxmox`,u;t[0]===r.name?u=t[1]:(u=(0,P.jsx)(`span`,{role:`rowheader`,className:I,children:r.name}),t[0]=r.name,t[1]=u);let p=b[r.herkunft],m=b[r.herkunft],h;t[2]===m.chip?h=t[3]:(h=(0,P.jsx)(g,{children:m.chip}),t[2]=m.chip,t[3]=h);let _;t[4]!==p.text||t[5]!==h?(_=(0,P.jsx)(`span`,{role:`cell`,className:L,title:p.text,children:h}),t[4]=p.text,t[5]=h,t[6]=_):_=t[6];let v;t[7]!==i||t[8]!==r.zeit?(v=(0,P.jsx)(R,{zeit:r.zeit,jetzt:i}),t[7]=i,t[8]=r.zeit,t[9]=v):v=t[9];let y;t[10]!==r.beschreibung||t[11]!==r.herkunft?(y=r.beschreibung??(0,P.jsx)(`span`,{className:`text-text-3`,children:b[r.herkunft].text}),t[10]=r.beschreibung,t[11]=r.herkunft,t[12]=y):y=t[12];let x;t[13]===y?x=t[14]:(x=(0,P.jsx)(z,{children:y}),t[13]=y,t[14]=x);let S;t[15]!==n||t[16]!==a||t[17]!==o||t[18]!==c?(S=c&&(0,P.jsxs)(f,{variant:`outline`,size:`sm`,disabled:a,onClick:()=>o({name:n.name,aktion:c,gefahr:!0}),children:[(0,P.jsx)(d,{"aria-hidden":!0}),` Zurücksetzen`]}),t[15]=n,t[16]=a,t[17]=o,t[18]=c,t[19]=S):S=t[19];let C;t[20]!==n||t[21]!==a||t[22]!==s||t[23]!==o?(C=s&&(0,P.jsxs)(f,{variant:`outline`,size:`sm`,disabled:a,onClick:()=>o({name:n.name,aktion:s,gefahr:!0}),children:[(0,P.jsx)(j,{"aria-hidden":!0}),` Löschen`]}),t[20]=n,t[21]=a,t[22]=s,t[23]=o,t[24]=C):C=t[24];let w;t[25]!==l||t[26]!==C||t[27]!==S?(w=(0,P.jsxs)(B,{ohne:l,children:[S,C]}),t[25]=l,t[26]=C,t[27]=S,t[28]=w):w=t[28];let T;return t[29]!==u||t[30]!==w||t[31]!==_||t[32]!==v||t[33]!==x?(T=(0,P.jsxs)(`div`,{role:`row`,className:F,children:[u,_,v,x,w]}),t[29]=u,t[30]=w,t[31]=_,t[32]=v,t[33]=x,t[34]=T):T=t[34],T}function H(e){let t=(0,M.c)(23),{g:n,e:r,jetzt:i,gesperrt:a,onFrage:o}=e,s;t[0]===r.groesse?s=t[1]:(s=C(r.groesse),t[0]=r.groesse,t[1]=s);let c=s,l=r.loeschen,u;t[2]===r.datei?u=t[3]:(u=(0,P.jsx)(`span`,{role:`rowheader`,className:I,children:r.datei}),t[2]=r.datei,t[3]=u);let d;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,P.jsx)(`span`,{role:`cell`,className:L,children:(0,P.jsx)(g,{children:`Sicherung`})}),t[4]=d):d=t[4];let p;t[5]!==r.zeit||t[6]!==i?(p=(0,P.jsx)(R,{zeit:r.zeit,jetzt:i}),t[5]=r.zeit,t[6]=i,t[7]=p):p=t[7];let m=c?`${c} auf „${r.speicher}“`:`Auf „${r.speicher}“`,h;t[8]===m?h=t[9]:(h=(0,P.jsxs)(z,{children:[m,`, vor einem Update angelegt`]}),t[8]=m,t[9]=h);let _=l?null:`Nicht freigegeben`,v;t[10]!==n||t[11]!==a||t[12]!==l||t[13]!==o?(v=l&&(0,P.jsxs)(f,{variant:`outline`,size:`sm`,disabled:a,onClick:()=>o({name:n.name,aktion:l,gefahr:!0}),children:[(0,P.jsx)(j,{"aria-hidden":!0}),` Löschen`]}),t[10]=n,t[11]=a,t[12]=l,t[13]=o,t[14]=v):v=t[14];let y;t[15]!==_||t[16]!==v?(y=(0,P.jsx)(B,{ohne:_,children:v}),t[15]=_,t[16]=v,t[17]=y):y=t[17];let b;return t[18]!==u||t[19]!==p||t[20]!==h||t[21]!==y?(b=(0,P.jsxs)(`div`,{role:`row`,className:F,children:[u,d,p,h,y]}),t[18]=u,t[19]=p,t[20]=h,t[21]=y,t[22]=b):b=t[22],b}function U(e){let t=(0,M.c)(44),{g:n,jetzt:r,gesperrt:i,onFrage:o}=e,s=n.snapshots.length===0&&n.sicherungen.length===0,{anlegen:c,probe:l}=n,d=n.name,m;t[0]!==n.art||t[1]!==n.name?(m=p({art:n.art,name:n.name}),t[0]=n.art,t[1]=n.name,t[2]=m):m=t[2];let g=n.status===`running`?`ok`:n.status?`aus`:null,_;t[3]!==m||t[4]!==g?(_=(0,P.jsx)(h,{bild:m,punkt:g}),t[3]=m,t[4]=g,t[5]=_):_=t[5];let v;t[6]===n.name?v=t[7]:(v=(0,P.jsx)(`h3`,{className:`text-[15px] font-semibold break-words`,children:n.name}),t[6]=n.name,t[7]=v);let b;t[8]===n.wo?b=t[9]:(b=(0,P.jsx)(`span`,{className:`text-[13px] text-text-3`,children:n.wo}),t[8]=n.wo,t[9]=b);let S;t[10]!==v||t[11]!==b?(S=(0,P.jsxs)(`div`,{className:`flex min-w-0 flex-col`,children:[v,b]}),t[10]=v,t[11]=b,t[12]=S):S=t[12];let C;t[13]!==_||t[14]!==S?(C=(0,P.jsxs)(`div`,{className:`flex min-w-0 items-center gap-3`,children:[_,S]}),t[13]=_,t[14]=S,t[15]=C):C=t[15];let w;t[16]!==c||t[17]!==n.laeuft||t[18]!==n.name||t[19]!==i||t[20]!==o||t[21]!==l?(w=n.laeuft?(0,P.jsxs)(`p`,{role:`status`,className:`text-sm text-cyan-text`,children:[`Läuft: `,n.laeuft,` …`]}):(c||l)&&(0,P.jsxs)(`span`,{className:`flex flex-wrap gap-2`,children:[l&&(0,P.jsxs)(f,{variant:`ghost`,size:`sm`,disabled:i,onClick:()=>o({name:n.name,aktion:l,gefahr:!0}),children:[(0,P.jsx)(D,{"aria-hidden":!0}),` Rückweg testen`]}),c&&(0,P.jsxs)(f,{variant:`outline`,size:`sm`,disabled:i,onClick:()=>o({name:n.name,aktion:c,gefahr:!1}),children:[(0,P.jsx)(k,{"aria-hidden":!0}),` Snapshot anlegen`]})]}),t[16]=c,t[17]=n.laeuft,t[18]=n.name,t[19]=i,t[20]=o,t[21]=l,t[22]=w):w=t[22];let E;t[23]!==C||t[24]!==w?(E=(0,P.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-x-4 gap-y-2`,children:[C,w]}),t[23]=C,t[24]=w,t[25]=E):E=t[25];let O;t[26]===n.grund?O=t[27]:(O=n.grund&&(0,P.jsx)(`p`,{className:`text-sm text-text-3`,children:n.grund}),t[26]=n.grund,t[27]=O);let A;t[28]!==n.name||t[29]!==n.zuletzt||t[30]!==r?(A=n.zuletzt&&(0,P.jsxs)(`p`,{className:a(`flex items-start gap-1.5 text-sm`,n.zuletzt.ok?`text-gruen-text`:`text-rot-text`),children:[n.zuletzt.ok?(0,P.jsx)(y,{className:`mt-0.5 size-4 shrink-0`,"aria-hidden":!0}):(0,P.jsx)(u,{className:`mt-0.5 size-4 shrink-0`,"aria-hidden":!0}),(0,P.jsxs)(`span`,{className:`flex min-w-0 flex-wrap items-baseline gap-x-2`,children:[(0,P.jsx)(`span`,{className:`break-words`,children:T(n.zuletzt.text,n.name)}),(0,P.jsx)(`span`,{className:`ziffern text-xs text-text-3`,children:x(n.zuletzt.ende,r)})]})]}),t[28]=n.name,t[29]=n.zuletzt,t[30]=r,t[31]=A):A=t[31];let j;t[32]!==n||t[33]!==i||t[34]!==r||t[35]!==s||t[36]!==o?(j=s?(0,P.jsx)(`p`,{className:`text-sm text-text-3`,children:`Keine Snapshots.`}):(0,P.jsxs)(`div`,{role:`table`,"aria-label":`Snapshots von ${n.name}`,className:`flex flex-col`,children:[(0,P.jsxs)(`div`,{role:`row`,className:`sr-only`,children:[(0,P.jsx)(`span`,{role:`columnheader`,children:`Snapshot`}),(0,P.jsx)(`span`,{role:`columnheader`,children:`Herkunft`}),(0,P.jsx)(`span`,{role:`columnheader`,children:`Zeitpunkt`}),(0,P.jsx)(`span`,{role:`columnheader`,children:`Beschreibung`}),(0,P.jsx)(`span`,{role:`columnheader`,children:`Aktion`})]}),n.snapshots.map(e=>(0,P.jsx)(V,{g:n,s:e,jetzt:r,gesperrt:i,onFrage:o},e.name)),n.sicherungen.map(e=>(0,P.jsx)(H,{g:n,e,jetzt:r,gesperrt:i,onFrage:o},e.datei))]}),t[32]=n,t[33]=i,t[34]=r,t[35]=s,t[36]=o,t[37]=j):j=t[37];let N;return t[38]!==n.name||t[39]!==E||t[40]!==O||t[41]!==A||t[42]!==j?(N=(0,P.jsxs)(`section`,{"aria-label":d,className:`flaeche-innen flex min-w-0 flex-col gap-2 rounded-2xl px-4 py-3.5`,children:[E,O,A,j]}),t[38]=n.name,t[39]=E,t[40]=O,t[41]=A,t[42]=j,t[43]=N):N=t[43],N}function W(e){let t=(0,M.c)(24),{daten:n,gesperrt:r,onAktion:i}=e,[a,o]=(0,N.useState)(null),s;if(t[0]!==n.geraete||t[1]!==n.jetzt||t[2]!==r){let e;t[4]!==n.jetzt||t[5]!==r?(e=e=>(0,P.jsx)(U,{g:e,jetzt:n.jetzt,gesperrt:r||!!e.laeuft,onFrage:o},e.id),t[4]=n.jetzt,t[5]=r,t[6]=e):e=t[6],s=n.geraete.map(e),t[0]=n.geraete,t[1]=n.jetzt,t[2]=r,t[3]=s}else s=t[3];let c;t[7]===s?c=t[8]:(c=(0,P.jsx)(`div`,{className:`flex flex-col gap-3`,children:s}),t[7]=s,t[8]=c);let l=!!a,u=a?`${a.name}: ${a.aktion.label}`:``,d=a?.aktion.frage??``,f=a?.aktion.label??``,p=a?.gefahr,m;t[9]!==a||t[10]!==i?(m=()=>{a&&i(a.aktion),o(null)},t[9]=a,t[10]=i,t[11]=m):m=t[11];let h;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(h=()=>o(null),t[12]=h):h=t[12];let g;t[13]!==r||t[14]!==l||t[15]!==u||t[16]!==d||t[17]!==f||t[18]!==p||t[19]!==m?(g=(0,P.jsx)(S,{offen:l,titel:u,text:d,knopf:f,gefahr:p,gesperrt:r,onJa:m,onNein:h}),t[13]=r,t[14]=l,t[15]=u,t[16]=d,t[17]=f,t[18]=p,t[19]=m,t[20]=g):g=t[20];let _;return t[21]!==g||t[22]!==c?(_=(0,P.jsxs)(P.Fragment,{children:[c,g]}),t[21]=g,t[22]=c,t[23]=_):_=t[23],_}function G(){let e=(0,M.c)(41),t=c(),n=o(),r=t.data?.rolle===`homelab`||!!(n.data?.eingerichtet&&n.data.erreichbar),i=s(r),a=l(),[u,d]=(0,N.useState)(!1);if(t.isPending||n.isPending){let t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,P.jsx)(m,{text:`Wird gelesen …`}),e[0]=t):t=e[0],t}if(!r){let t;return e[1]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,P.jsx)(m,{fehler:!0,text:`Der Homelab-Teil antwortet gerade nicht.`}),e[1]=t):t=e[1],t}if(i.isPending){let t;return e[2]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,P.jsx)(m,{text:`Die Snapshots werden gelesen …`}),e[2]=t):t=e[2],t}if(!i.data){let t=`Die Snapshots lassen sich nicht lesen: ${i.error?.message??`keine Daten`}`,n;return e[3]===t?n=e[4]:(n=(0,P.jsx)(m,{fehler:!0,text:t}),e[3]=t,e[4]=n),n}let p=i.data,h=p.sperre,_;e[5]!==p.bericht||e[6]!==p.summe?(_=p.bericht?(0,P.jsx)(g,{children:v(p.summe)}):void 0,e[5]=p.bericht,e[6]=p.summe,e[7]=_):_=e[7];let y;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,P.jsx)(`p`,{className:`-mt-2 text-[15px] text-text-2`,children:`Ein Snapshot hält den Stand eines Geräts fest. Vor jedem Update legt der Orchestrator einen an (beim Proxmox Backup Server eine Sicherung) und räumt nach einem grünen Update die älteren weg. Hier legst du selbst welche an — die bleiben, bis du sie löschst —, setzt ein Gerät zurück oder löschst, was weg kann. Von Hand in Proxmox angelegte stehen nur zur Ansicht da.`}),e[8]=y):y=e[8];let b;e[9]===h?b=e[10]:(b=h&&(0,P.jsx)(`p`,{role:`alert`,className:`rounded-2xl bg-bernstein/[0.08] px-4 py-3 text-[15px] text-bernstein ring-1 ring-bernstein/35 ring-inset`,children:h}),e[9]=h,e[10]=b);let C;e[11]!==a.isPending||e[12]!==p.aufraeumen||e[13]!==p.aufraeumen_laeuft||e[14]!==h?(C=(p.aufraeumen||p.aufraeumen_laeuft)&&(0,P.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3 rounded-2xl bg-white/[0.03] px-4 py-3 ring-1 ring-white/10 ring-inset`,children:[(0,P.jsx)(`p`,{className:`min-w-0 flex-1 text-[14.5px] text-text-2`,children:p.aufraeumen_laeuft?`Die Rückwege der letzten Updates werden gerade nacheinander gelöscht; am Ende kommt eine Meldung.`:`Nach grünen Updates bleibt je Gerät der Rückweg liegen, bis zum nächsten Update. Wegräumen geht hier auf einmal.`}),p.aufraeumen&&(0,P.jsxs)(f,{variant:`outline`,size:`sm`,disabled:a.isPending||!!h,onClick:()=>d(!0),children:[(0,P.jsx)(j,{"aria-hidden":!0}),` `,p.aufraeumen.label]})]}),e[11]=a.isPending,e[12]=p.aufraeumen,e[13]=p.aufraeumen_laeuft,e[14]=h,e[15]=C):C=e[15];let T;e[16]!==p.bericht||e[17]!==p.jetzt?(T=p.bericht?.veraltet&&(0,P.jsxs)(`p`,{className:`text-[15px] text-bernstein`,children:[`Der letzte Bericht ist von `,x(p.bericht.empfangen,p.jetzt),`; die Liste kann veraltet sein.`]}),e[16]=p.bericht,e[17]=p.jetzt,e[18]=T):T=e[18];let E;e[19]!==a||e[20]!==p||e[21]!==h?(E=p.bericht?(0,P.jsxs)(P.Fragment,{children:[!p.details&&(0,P.jsx)(`p`,{className:`text-sm text-text-3`,children:`Beschreibungen und die Größe der Sicherungen erscheinen, sobald der neue Ausführer auf dem Proxmox-Host läuft; bis dahin kommt der Zeitpunkt aus dem Namen des Snapshots.`}),(0,P.jsx)(W,{daten:p,gesperrt:a.isPending||!!h||!!p.aufraeumen_laeuft,onAktion:e=>a.mutate(e)}),(0,P.jsx)(`p`,{className:`text-sm text-text-3`,children:`Wie viel ein Snapshot im Speicherpool belegt, sagt Proxmox nicht: Er teilt sich die Daten mit dem Gerät und wächst mit jeder Änderung seit seinem Zeitpunkt. Wie voll der Pool ist, steht im Cockpit unter „Speicher und Sicherungen“.`})]}):(0,P.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Der Ausführer hat noch keinen Bericht geschickt.`}),e[19]=a,e[20]=p,e[21]=h,e[22]=E):E=e[22];let D=u&&!!p.aufraeumen,O=p.aufraeumen?.label??``,k=p.aufraeumen?.frage??``,A=p.aufraeumen?.label??``,F;e[23]!==a||e[24]!==p.aufraeumen?(F=()=>{p.aufraeumen&&a.mutate(p.aufraeumen),d(!1)},e[23]=a,e[24]=p.aufraeumen,e[25]=F):F=e[25];let I;e[26]===Symbol.for(`react.memo_cache_sentinel`)?(I=()=>d(!1),e[26]=I):I=e[26];let L;e[27]!==a.isPending||e[28]!==F||e[29]!==D||e[30]!==O||e[31]!==k||e[32]!==A?(L=(0,P.jsx)(S,{offen:D,titel:O,text:k,knopf:A,gefahr:!0,gesperrt:a.isPending,onJa:F,onNein:I}),e[27]=a.isPending,e[28]=F,e[29]=D,e[30]=O,e[31]=k,e[32]=A,e[33]=L):L=e[33];let R;return e[34]!==_||e[35]!==L||e[36]!==b||e[37]!==C||e[38]!==T||e[39]!==E?(R=(0,P.jsxs)(w,{titel:`Snapshots`,rechts:_,children:[y,b,C,T,E,L]}),e[34]=_,e[35]=L,e[36]=b,e[37]=C,e[38]=T,e[39]=E,e[40]=R):R=e[40],R}export{G as HomelabSnapshotsSeite}; \ No newline at end of file diff --git a/frontend/dist/assets/HomelabSnapshots-DbFeZ8Oz.js b/frontend/dist/assets/HomelabSnapshots-DbFeZ8Oz.js deleted file mode 100644 index 1d58dab..0000000 --- a/frontend/dist/assets/HomelabSnapshots-DbFeZ8Oz.js +++ /dev/null @@ -1 +0,0 @@ -import{a as e,c as t,i as n,n as r,r as i,t as a}from"./dist-aE7UmubC.js";import{C as o,D as s,R as c,X as l}from"./abfragen-DKcWnZ8a.js";import{n as u,t as d}from"./undo-2-B8COJmAr.js";import{M as f,N as p,O as m,a as h,c as g,i as _,it as v,j as y,l as b,o as x,u as S}from"./index-BUHDF9RN.js";import{t as C}from"./button-DwYvdWVr.js";import{t as w}from"./Bestaetigen-BemBWZzN.js";import{t as T}from"./Panel-uT1S5ZGr.js";var E={name:`flask-conical`,size:24,node:[[`path`,{d:`M14 2v6a2 2 0 0 0 .245.96l5.51 10.08A2 2 0 0 1 18 22H6a2 2 0 0 1-1.755-2.96l5.51-10.08A2 2 0 0 0 10 8V2`,key:`18mbvz`}],[`path`,{d:`M6.453 15h11.094`,key:`3shlmq`}],[`path`,{d:`M8.5 2h7`,key:`csnxdl`}]]};E.node;var D=r(E),O={name:`plus`,size:24,node:[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`M12 5v14`,key:`s699le`}]]};O.node;var k=r(O),A={name:`trash`,size:24,node:[[`path`,{d:`M10 11v6`,key:`nco0om`}],[`path`,{d:`M14 11v6`,key:`outv1u`}],[`path`,{d:`M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6`,key:`miytrc`}],[`path`,{d:`M3 6h18`,key:`d0wm0j`}],[`path`,{d:`M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2`,key:`e791ji`}]],aliases:[`trash-2`]};A.node;var j=r(A),M=i(),N=t(e(),1),P=n(),F=`grid grid-cols-[minmax(0,1fr)_auto] items-start gap-x-3 gap-y-1.5 border-t border-white/[0.06] py-3 [grid-template-areas:'name_herkunft'_'zeit_zeit'_'text_text'_'knoepfe_knoepfe'] md:grid-rows-[auto_auto_1fr] md:gap-x-4 md:[grid-template-areas:'name_herkunft'_'zeit_knoepfe'_'text_knoepfe'] xl:grid-cols-[minmax(10.5rem,1.1fr)_7.5rem_minmax(0,1fr)_minmax(0,1.4fr)_11rem] xl:grid-rows-none xl:items-center xl:[grid-template-areas:'name_herkunft_zeit_text_knoepfe']`,I=`ziffern min-w-0 pt-1 text-sm break-words text-foreground [grid-area:name] xl:pt-0`,L=`justify-self-end [grid-area:herkunft] xl:justify-self-start`;function R(e){let t=(0,M.c)(11),{zeit:n,jetzt:r}=e,i;t[0]!==r||t[1]!==n?(i=b(n,r),t[0]=r,t[1]=n,t[2]=i):i=t[2];let a;t[3]===i?a=t[4]:(a=(0,P.jsx)(`span`,{className:`ziffern text-text-2`,children:i}),t[3]=i,t[4]=a);let o;t[5]!==r||t[6]!==n?(o=n!==null&&(0,P.jsx)(`span`,{className:`text-text-3`,children:h(n,r)}),t[5]=r,t[6]=n,t[7]=o):o=t[7];let s;return t[8]!==a||t[9]!==o?(s=(0,P.jsxs)(`span`,{role:`cell`,className:`flex flex-wrap items-baseline gap-x-2 text-sm [grid-area:zeit]`,children:[a,o]}),t[8]=a,t[9]=o,t[10]=s):s=t[10],s}function z(e){let t=(0,M.c)(2),{children:n}=e,r;return t[0]===n?r=t[1]:(r=(0,P.jsx)(`span`,{role:`cell`,className:`min-w-0 text-sm break-words text-text-2 [grid-area:text]`,children:n}),t[0]=n,t[1]=r),r}function B(e){let t=(0,M.c)(5),{children:n,ohne:r}=e,i;t[0]!==n||t[1]!==r?(i=r?(0,P.jsx)(`span`,{className:`text-xs text-text-3`,children:r}):n,t[0]=n,t[1]=r,t[2]=i):i=t[2];let a;return t[3]===i?a=t[4]:(a=(0,P.jsx)(`span`,{role:`cell`,className:`flex flex-wrap gap-2 [grid-area:knoepfe] md:flex-col md:items-stretch md:justify-self-end xl:justify-self-stretch`,children:i}),t[3]=i,t[4]=a),a}function V(e){let t=(0,M.c)(35),{g:n,s:r,jetzt:i,gesperrt:a,onFrage:o}=e,{loeschen:s,zuruecksetzen:c}=r,l=s||c?null:r.eigen?`Nicht freigegeben`:`Nur in Proxmox`,u;t[0]===r.name?u=t[1]:(u=(0,P.jsx)(`span`,{role:`rowheader`,className:I,children:r.name}),t[0]=r.name,t[1]=u);let p=_[r.herkunft],m=_[r.herkunft],h;t[2]===m.chip?h=t[3]:(h=(0,P.jsx)(f,{children:m.chip}),t[2]=m.chip,t[3]=h);let g;t[4]!==p.text||t[5]!==h?(g=(0,P.jsx)(`span`,{role:`cell`,className:L,title:p.text,children:h}),t[4]=p.text,t[5]=h,t[6]=g):g=t[6];let v;t[7]!==i||t[8]!==r.zeit?(v=(0,P.jsx)(R,{zeit:r.zeit,jetzt:i}),t[7]=i,t[8]=r.zeit,t[9]=v):v=t[9];let y;t[10]!==r.beschreibung||t[11]!==r.herkunft?(y=r.beschreibung??(0,P.jsx)(`span`,{className:`text-text-3`,children:_[r.herkunft].text}),t[10]=r.beschreibung,t[11]=r.herkunft,t[12]=y):y=t[12];let b;t[13]===y?b=t[14]:(b=(0,P.jsx)(z,{children:y}),t[13]=y,t[14]=b);let x;t[15]!==n||t[16]!==a||t[17]!==o||t[18]!==c?(x=c&&(0,P.jsxs)(C,{variant:`outline`,size:`sm`,disabled:a,onClick:()=>o({name:n.name,aktion:c,gefahr:!0}),children:[(0,P.jsx)(d,{"aria-hidden":!0}),` Zurücksetzen`]}),t[15]=n,t[16]=a,t[17]=o,t[18]=c,t[19]=x):x=t[19];let S;t[20]!==n||t[21]!==a||t[22]!==s||t[23]!==o?(S=s&&(0,P.jsxs)(C,{variant:`outline`,size:`sm`,disabled:a,onClick:()=>o({name:n.name,aktion:s,gefahr:!0}),children:[(0,P.jsx)(j,{"aria-hidden":!0}),` Löschen`]}),t[20]=n,t[21]=a,t[22]=s,t[23]=o,t[24]=S):S=t[24];let w;t[25]!==l||t[26]!==S||t[27]!==x?(w=(0,P.jsxs)(B,{ohne:l,children:[x,S]}),t[25]=l,t[26]=S,t[27]=x,t[28]=w):w=t[28];let T;return t[29]!==u||t[30]!==w||t[31]!==g||t[32]!==v||t[33]!==b?(T=(0,P.jsxs)(`div`,{role:`row`,className:F,children:[u,g,v,b,w]}),t[29]=u,t[30]=w,t[31]=g,t[32]=v,t[33]=b,t[34]=T):T=t[34],T}function H(e){let t=(0,M.c)(23),{g:n,e:r,jetzt:i,gesperrt:a,onFrage:o}=e,s;t[0]===r.groesse?s=t[1]:(s=x(r.groesse),t[0]=r.groesse,t[1]=s);let c=s,l=r.loeschen,u;t[2]===r.datei?u=t[3]:(u=(0,P.jsx)(`span`,{role:`rowheader`,className:I,children:r.datei}),t[2]=r.datei,t[3]=u);let d;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,P.jsx)(`span`,{role:`cell`,className:L,children:(0,P.jsx)(f,{children:`Sicherung`})}),t[4]=d):d=t[4];let p;t[5]!==r.zeit||t[6]!==i?(p=(0,P.jsx)(R,{zeit:r.zeit,jetzt:i}),t[5]=r.zeit,t[6]=i,t[7]=p):p=t[7];let m=c?`${c} auf „${r.speicher}“`:`Auf „${r.speicher}“`,h;t[8]===m?h=t[9]:(h=(0,P.jsxs)(z,{children:[m,`, vor einem Update angelegt`]}),t[8]=m,t[9]=h);let g=l?null:`Nicht freigegeben`,_;t[10]!==n||t[11]!==a||t[12]!==l||t[13]!==o?(_=l&&(0,P.jsxs)(C,{variant:`outline`,size:`sm`,disabled:a,onClick:()=>o({name:n.name,aktion:l,gefahr:!0}),children:[(0,P.jsx)(j,{"aria-hidden":!0}),` Löschen`]}),t[10]=n,t[11]=a,t[12]=l,t[13]=o,t[14]=_):_=t[14];let v;t[15]!==g||t[16]!==_?(v=(0,P.jsx)(B,{ohne:g,children:_}),t[15]=g,t[16]=_,t[17]=v):v=t[17];let y;return t[18]!==u||t[19]!==p||t[20]!==h||t[21]!==v?(y=(0,P.jsxs)(`div`,{role:`row`,className:F,children:[u,d,p,h,v]}),t[18]=u,t[19]=p,t[20]=h,t[21]=v,t[22]=y):y=t[22],y}function U(e){let t=(0,M.c)(44),{g:n,jetzt:r,gesperrt:i,onFrage:o}=e,s=n.snapshots.length===0&&n.sicherungen.length===0,{anlegen:c,probe:l}=n,d=n.name,f;t[0]!==n.art||t[1]!==n.name?(f=y({art:n.art,name:n.name}),t[0]=n.art,t[1]=n.name,t[2]=f):f=t[2];let p=n.status===`running`?`ok`:n.status?`aus`:null,h;t[3]!==f||t[4]!==p?(h=(0,P.jsx)(m,{bild:f,punkt:p}),t[3]=f,t[4]=p,t[5]=h):h=t[5];let g;t[6]===n.name?g=t[7]:(g=(0,P.jsx)(`h3`,{className:`text-[15px] font-semibold break-words`,children:n.name}),t[6]=n.name,t[7]=g);let _;t[8]===n.wo?_=t[9]:(_=(0,P.jsx)(`span`,{className:`text-[13px] text-text-3`,children:n.wo}),t[8]=n.wo,t[9]=_);let x;t[10]!==g||t[11]!==_?(x=(0,P.jsxs)(`div`,{className:`flex min-w-0 flex-col`,children:[g,_]}),t[10]=g,t[11]=_,t[12]=x):x=t[12];let w;t[13]!==h||t[14]!==x?(w=(0,P.jsxs)(`div`,{className:`flex min-w-0 items-center gap-3`,children:[h,x]}),t[13]=h,t[14]=x,t[15]=w):w=t[15];let T;t[16]!==c||t[17]!==n.laeuft||t[18]!==n.name||t[19]!==i||t[20]!==o||t[21]!==l?(T=n.laeuft?(0,P.jsxs)(`p`,{role:`status`,className:`text-sm text-cyan-text`,children:[`Läuft: `,n.laeuft,` …`]}):(c||l)&&(0,P.jsxs)(`span`,{className:`flex flex-wrap gap-2`,children:[l&&(0,P.jsxs)(C,{variant:`ghost`,size:`sm`,disabled:i,onClick:()=>o({name:n.name,aktion:l,gefahr:!0}),children:[(0,P.jsx)(D,{"aria-hidden":!0}),` Rückweg testen`]}),c&&(0,P.jsxs)(C,{variant:`outline`,size:`sm`,disabled:i,onClick:()=>o({name:n.name,aktion:c,gefahr:!1}),children:[(0,P.jsx)(k,{"aria-hidden":!0}),` Snapshot anlegen`]})]}),t[16]=c,t[17]=n.laeuft,t[18]=n.name,t[19]=i,t[20]=o,t[21]=l,t[22]=T):T=t[22];let E;t[23]!==w||t[24]!==T?(E=(0,P.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-x-4 gap-y-2`,children:[w,T]}),t[23]=w,t[24]=T,t[25]=E):E=t[25];let O;t[26]===n.grund?O=t[27]:(O=n.grund&&(0,P.jsx)(`p`,{className:`text-sm text-text-3`,children:n.grund}),t[26]=n.grund,t[27]=O);let A;t[28]!==n.name||t[29]!==n.zuletzt||t[30]!==r?(A=n.zuletzt&&(0,P.jsxs)(`p`,{className:a(`flex items-start gap-1.5 text-sm`,n.zuletzt.ok?`text-gruen-text`:`text-rot-text`),children:[n.zuletzt.ok?(0,P.jsx)(v,{className:`mt-0.5 size-4 shrink-0`,"aria-hidden":!0}):(0,P.jsx)(u,{className:`mt-0.5 size-4 shrink-0`,"aria-hidden":!0}),(0,P.jsxs)(`span`,{className:`flex min-w-0 flex-wrap items-baseline gap-x-2`,children:[(0,P.jsx)(`span`,{className:`break-words`,children:S(n.zuletzt.text,n.name)}),(0,P.jsx)(`span`,{className:`ziffern text-xs text-text-3`,children:b(n.zuletzt.ende,r)})]})]}),t[28]=n.name,t[29]=n.zuletzt,t[30]=r,t[31]=A):A=t[31];let j;t[32]!==n||t[33]!==i||t[34]!==r||t[35]!==s||t[36]!==o?(j=s?(0,P.jsx)(`p`,{className:`text-sm text-text-3`,children:`Keine Snapshots.`}):(0,P.jsxs)(`div`,{role:`table`,"aria-label":`Snapshots von ${n.name}`,className:`flex flex-col`,children:[(0,P.jsxs)(`div`,{role:`row`,className:`sr-only`,children:[(0,P.jsx)(`span`,{role:`columnheader`,children:`Snapshot`}),(0,P.jsx)(`span`,{role:`columnheader`,children:`Herkunft`}),(0,P.jsx)(`span`,{role:`columnheader`,children:`Zeitpunkt`}),(0,P.jsx)(`span`,{role:`columnheader`,children:`Beschreibung`}),(0,P.jsx)(`span`,{role:`columnheader`,children:`Aktion`})]}),n.snapshots.map(e=>(0,P.jsx)(V,{g:n,s:e,jetzt:r,gesperrt:i,onFrage:o},e.name)),n.sicherungen.map(e=>(0,P.jsx)(H,{g:n,e,jetzt:r,gesperrt:i,onFrage:o},e.datei))]}),t[32]=n,t[33]=i,t[34]=r,t[35]=s,t[36]=o,t[37]=j):j=t[37];let N;return t[38]!==n.name||t[39]!==E||t[40]!==O||t[41]!==A||t[42]!==j?(N=(0,P.jsxs)(`section`,{"aria-label":d,className:`flaeche-innen flex min-w-0 flex-col gap-2 rounded-2xl px-4 py-3.5`,children:[E,O,A,j]}),t[38]=n.name,t[39]=E,t[40]=O,t[41]=A,t[42]=j,t[43]=N):N=t[43],N}function W(e){let t=(0,M.c)(24),{daten:n,gesperrt:r,onAktion:i}=e,[a,o]=(0,N.useState)(null),s;if(t[0]!==n.geraete||t[1]!==n.jetzt||t[2]!==r){let e;t[4]!==n.jetzt||t[5]!==r?(e=e=>(0,P.jsx)(U,{g:e,jetzt:n.jetzt,gesperrt:r||!!e.laeuft,onFrage:o},e.id),t[4]=n.jetzt,t[5]=r,t[6]=e):e=t[6],s=n.geraete.map(e),t[0]=n.geraete,t[1]=n.jetzt,t[2]=r,t[3]=s}else s=t[3];let c;t[7]===s?c=t[8]:(c=(0,P.jsx)(`div`,{className:`flex flex-col gap-3`,children:s}),t[7]=s,t[8]=c);let l=!!a,u=a?`${a.name}: ${a.aktion.label}`:``,d=a?.aktion.frage??``,f=a?.aktion.label??``,p=a?.gefahr,m;t[9]!==a||t[10]!==i?(m=()=>{a&&i(a.aktion),o(null)},t[9]=a,t[10]=i,t[11]=m):m=t[11];let h;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(h=()=>o(null),t[12]=h):h=t[12];let g;t[13]!==r||t[14]!==l||t[15]!==u||t[16]!==d||t[17]!==f||t[18]!==p||t[19]!==m?(g=(0,P.jsx)(w,{offen:l,titel:u,text:d,knopf:f,gefahr:p,gesperrt:r,onJa:m,onNein:h}),t[13]=r,t[14]=l,t[15]=u,t[16]=d,t[17]=f,t[18]=p,t[19]=m,t[20]=g):g=t[20];let _;return t[21]!==g||t[22]!==c?(_=(0,P.jsxs)(P.Fragment,{children:[c,g]}),t[21]=g,t[22]=c,t[23]=_):_=t[23],_}function G(){let e=(0,M.c)(41),t=s(),n=c(),r=t.data?.rolle===`homelab`||!!(n.data?.eingerichtet&&n.data.erreichbar),i=o(r),a=l(),[u,d]=(0,N.useState)(!1);if(t.isPending||n.isPending){let t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,P.jsx)(p,{text:`Wird gelesen …`}),e[0]=t):t=e[0],t}if(!r){let t;return e[1]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,P.jsx)(p,{fehler:!0,text:`Der Homelab-Teil antwortet gerade nicht.`}),e[1]=t):t=e[1],t}if(i.isPending){let t;return e[2]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,P.jsx)(p,{text:`Die Snapshots werden gelesen …`}),e[2]=t):t=e[2],t}if(!i.data){let t=`Die Snapshots lassen sich nicht lesen: ${i.error?.message??`keine Daten`}`,n;return e[3]===t?n=e[4]:(n=(0,P.jsx)(p,{fehler:!0,text:t}),e[3]=t,e[4]=n),n}let m=i.data,h=m.sperre,_;e[5]!==m.bericht||e[6]!==m.summe?(_=m.bericht?(0,P.jsx)(f,{children:g(m.summe)}):void 0,e[5]=m.bericht,e[6]=m.summe,e[7]=_):_=e[7];let v;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(v=(0,P.jsx)(`p`,{className:`-mt-2 text-[15px] text-text-2`,children:`Ein Snapshot hält den Stand eines Geräts fest. Vor jedem Update legt der Orchestrator einen an (beim Proxmox Backup Server eine Sicherung) und räumt nach einem grünen Update die älteren weg. Hier legst du selbst welche an — die bleiben, bis du sie löschst —, setzt ein Gerät zurück oder löschst, was weg kann. Von Hand in Proxmox angelegte stehen nur zur Ansicht da.`}),e[8]=v):v=e[8];let y;e[9]===h?y=e[10]:(y=h&&(0,P.jsx)(`p`,{role:`alert`,className:`rounded-2xl bg-bernstein/[0.08] px-4 py-3 text-[15px] text-bernstein ring-1 ring-bernstein/35 ring-inset`,children:h}),e[9]=h,e[10]=y);let x;e[11]!==a.isPending||e[12]!==m.aufraeumen||e[13]!==m.aufraeumen_laeuft||e[14]!==h?(x=(m.aufraeumen||m.aufraeumen_laeuft)&&(0,P.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3 rounded-2xl bg-white/[0.03] px-4 py-3 ring-1 ring-white/10 ring-inset`,children:[(0,P.jsx)(`p`,{className:`min-w-0 flex-1 text-[14.5px] text-text-2`,children:m.aufraeumen_laeuft?`Die Rückwege der letzten Updates werden gerade nacheinander gelöscht; am Ende kommt eine Meldung.`:`Nach grünen Updates bleibt je Gerät der Rückweg liegen, bis zum nächsten Update. Wegräumen geht hier auf einmal.`}),m.aufraeumen&&(0,P.jsxs)(C,{variant:`outline`,size:`sm`,disabled:a.isPending||!!h,onClick:()=>d(!0),children:[(0,P.jsx)(j,{"aria-hidden":!0}),` `,m.aufraeumen.label]})]}),e[11]=a.isPending,e[12]=m.aufraeumen,e[13]=m.aufraeumen_laeuft,e[14]=h,e[15]=x):x=e[15];let S;e[16]!==m.bericht||e[17]!==m.jetzt?(S=m.bericht?.veraltet&&(0,P.jsxs)(`p`,{className:`text-[15px] text-bernstein`,children:[`Der letzte Bericht ist von `,b(m.bericht.empfangen,m.jetzt),`; die Liste kann veraltet sein.`]}),e[16]=m.bericht,e[17]=m.jetzt,e[18]=S):S=e[18];let E;e[19]!==a||e[20]!==m||e[21]!==h?(E=m.bericht?(0,P.jsxs)(P.Fragment,{children:[!m.details&&(0,P.jsx)(`p`,{className:`text-sm text-text-3`,children:`Beschreibungen und die Größe der Sicherungen erscheinen, sobald der neue Ausführer auf dem Proxmox-Host läuft; bis dahin kommt der Zeitpunkt aus dem Namen des Snapshots.`}),(0,P.jsx)(W,{daten:m,gesperrt:a.isPending||!!h||!!m.aufraeumen_laeuft,onAktion:e=>a.mutate(e)}),(0,P.jsx)(`p`,{className:`text-sm text-text-3`,children:`Wie viel ein Snapshot im Speicherpool belegt, sagt Proxmox nicht: Er teilt sich die Daten mit dem Gerät und wächst mit jeder Änderung seit seinem Zeitpunkt. Wie voll der Pool ist, steht im Cockpit unter „Speicher und Sicherungen“.`})]}):(0,P.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Der Ausführer hat noch keinen Bericht geschickt.`}),e[19]=a,e[20]=m,e[21]=h,e[22]=E):E=e[22];let D=u&&!!m.aufraeumen,O=m.aufraeumen?.label??``,k=m.aufraeumen?.frage??``,A=m.aufraeumen?.label??``,F;e[23]!==a||e[24]!==m.aufraeumen?(F=()=>{m.aufraeumen&&a.mutate(m.aufraeumen),d(!1)},e[23]=a,e[24]=m.aufraeumen,e[25]=F):F=e[25];let I;e[26]===Symbol.for(`react.memo_cache_sentinel`)?(I=()=>d(!1),e[26]=I):I=e[26];let L;e[27]!==a.isPending||e[28]!==F||e[29]!==D||e[30]!==O||e[31]!==k||e[32]!==A?(L=(0,P.jsx)(w,{offen:D,titel:O,text:k,knopf:A,gefahr:!0,gesperrt:a.isPending,onJa:F,onNein:I}),e[27]=a.isPending,e[28]=F,e[29]=D,e[30]=O,e[31]=k,e[32]=A,e[33]=L):L=e[33];let R;return e[34]!==_||e[35]!==L||e[36]!==y||e[37]!==x||e[38]!==S||e[39]!==E?(R=(0,P.jsxs)(T,{titel:`Snapshots`,rechts:_,children:[v,y,x,S,E,L]}),e[34]=_,e[35]=L,e[36]=y,e[37]=x,e[38]=S,e[39]=E,e[40]=R):R=e[40],R}export{G as HomelabSnapshotsSeite}; \ No newline at end of file diff --git a/frontend/dist/assets/Lagekopf-6I8J8n-l.js b/frontend/dist/assets/Lagekopf-6I8J8n-l.js deleted file mode 100644 index b64c063..0000000 --- a/frontend/dist/assets/Lagekopf-6I8J8n-l.js +++ /dev/null @@ -1,2 +0,0 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/Protokollfenster-BL5RkT6e.js","assets/dist-aE7UmubC.js","assets/sheet-Dx0TG2uq.js","assets/index-BUHDF9RN.js","assets/abfragen-DKcWnZ8a.js","assets/useSelector-DBNxxw17.js","assets/useMatch-DDVpPKJI.js","assets/useRouterState-DJr4hrdj.js","assets/index-DcqanB_e.css","assets/button-DwYvdWVr.js","assets/dist-oje4j9hw.js","assets/Bestaetigen-BemBWZzN.js","assets/dialog-BEmPjtjX.js"])))=>i.map(i=>d[i]); -import{a as e,c as t,i as n,r,t as i}from"./dist-aE7UmubC.js";import{At as a,Ct as o,_t as s,dt as c,h as l,ot as u,ut as d}from"./abfragen-DKcWnZ8a.js";import{O as f,P as p}from"./index-BUHDF9RN.js";import{t as m}from"./button-DwYvdWVr.js";var h=r(),g=t(e(),1),_=n(),v=(0,g.lazy)(()=>p(()=>import(`./Protokollfenster-BL5RkT6e.js`).then(e=>({default:e.Protokollfenster})),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10]))),y=(0,g.lazy)(()=>p(()=>import(`./Bestaetigen-BemBWZzN.js`).then(e=>e.n).then(e=>({default:e.Bestaetigen})),__vite__mapDeps([11,1,9,12,3,4,5,6,7,8,10])));function b({h:e,basis:t}){let n=l(t),[r,f]=(0,g.useState)(null),[p,h]=(0,g.useState)(null),b=e.stufe===`rot`,x=p?o(e,p):null;async function S(){try{let n=await a(`${t}/${encodeURIComponent(e.id)}/aktion/protokoll`);f({titel:e.titel,text:n.text||n.out||n.err||`Kein Protokoll vorhanden.`})}catch(e){s(`fehler`,e.message)}}function C(t){n.mutate({hinweis:e.id,aktion:t.id,label:t.label})}function w(t){t.id===`protokoll`?S():o(e,t)?h(t):C(t)}let T=e.zustand===`stumm`;return(0,_.jsxs)(`article`,{className:i(`flex flex-col gap-2.5 rounded-2xl px-4 py-3.5 ring-1 ring-inset`,T?`bg-white/[0.03] opacity-70 ring-white/10`:b?`bg-rot/[0.07] ring-rot/35`:`bg-bernstein/[0.06] ring-bernstein/30`),children:[(0,_.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,_.jsx)(`h3`,{className:`min-w-0 flex-1 font-sans text-[16.5px] leading-snug font-semibold`,children:e.titel}),(0,_.jsx)(`span`,{className:i(`etikett shrink-0 rounded-full px-2.5 py-0.5 text-[10.5px] tracking-[0.12em] ring-1 ring-inset`,b?`bg-rot/12 text-rot-text ring-rot/40`:`bg-bernstein/10 text-bernstein ring-bernstein/35`),children:b?`Jetzt`:`Prüfen`})]}),(0,_.jsxs)(`p`,{className:`ziffern text-[13px] text-text-3`,children:[d(e.seit),` · zuletzt `,c(e.zuletzt),e.zustand===`neu`&&(0,_.jsx)(`span`,{className:`font-sans text-cyan-text`,children:` · neu`}),T&&e.stumm_bis&&(0,_.jsxs)(`span`,{className:`font-sans`,children:[` · stumm bis `,u(new Date(e.stumm_bis*1e3).toISOString()).toLowerCase()]})]}),e.text&&(0,_.jsx)(`p`,{className:`text-[15px] leading-relaxed break-words text-text-2`,children:e.text}),(0,_.jsxs)(`div`,{className:`flex flex-wrap gap-2.5 pt-1`,children:[e.aktionen.map((e,t)=>(0,_.jsx)(m,{variant:t===0&&e.id!==`protokoll`?`default`:`outline`,size:`sm`,disabled:n.isPending,onClick:()=>w(e),children:e.label},e.id)),e.zustand===`neu`&&(0,_.jsx)(m,{variant:`ghost`,size:`sm`,disabled:n.isPending,onClick:()=>C({id:`gesehen`,label:`Gesehen`}),children:`Gesehen`}),e.zustand&&!T&&(0,_.jsx)(m,{variant:`ghost`,size:`sm`,disabled:n.isPending,onClick:()=>C({id:`stumm`,label:`24 h stumm`}),children:`24 h stumm`}),T&&(0,_.jsx)(m,{variant:`ghost`,size:`sm`,disabled:n.isPending,onClick:()=>C({id:`laut`,label:`Wieder melden`}),children:`Wieder melden`})]}),r&&(0,_.jsx)(g.Suspense,{fallback:null,children:(0,_.jsx)(v,{offen:!0,titel:r.titel,text:r.text,onSchliessen:()=>f(null)})}),p&&x&&(0,_.jsx)(g.Suspense,{fallback:null,children:(0,_.jsx)(y,{offen:!0,titel:x.titel,text:x.text,knopf:x.knopf,gesperrt:n.isPending,onNein:()=>h(null),onJa:()=>{C(p),h(null)}})})]})}function x(e){let t=(0,h.c)(15),{hinweise:n,verlauf:r,basis:i}=e,a=i===void 0?`/api/hinweise`:i,o;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(o=new Date().toDateString(),t[0]=o):o=t[0];let s=o,c;if(t[1]!==n.length||t[2]!==r){c=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()===s,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,_.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,_.jsx)(`ul`,{className:`flex flex-col gap-1 text-sm text-text-3`,children:i.slice(0,4).map(S)}),r;t[6]===n?r=t[7]:(r=(0,_.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[e,n]}),t[6]=n,t[7]=r),c=r;break bb0}}t[1]=n.length,t[2]=r,t[3]=c}else c=t[3];if(c!==Symbol.for(`react.early_return_sentinel`))return c;let l;if(t[8]!==a||t[9]!==n){let e;t[11]===a?e=t[12]:(e=e=>(0,_.jsx)(b,{h:e,basis:a},e.id),t[11]=a,t[12]=e),l=n.map(e),t[8]=a,t[9]=n,t[10]=l}else l=t[10];let u;return t[13]===l?u=t[14]:(u=(0,_.jsx)(`div`,{className:`flex flex-col gap-3`,children:l}),t[13]=l,t[14]=u),u}function S(e){return(0,_.jsxs)(`li`,{children:[(0,_.jsx)(`span`,{className:`ziffern`,children:c(e.ts)}),` · `,e.text]},`${e.id}-${e.ts}`)}var C={ok:{block:`bg-gruen/[0.07] ring-gruen/30`,glut:`var(--gruen)`,text:`text-gruen`},info:{block:`bg-cyan/[0.07] ring-cyan/30`,glut:`var(--cyan)`,text:`text-cyan-text`},gelb:{block:`bg-bernstein/[0.08] ring-bernstein/35`,glut:`var(--bernstein)`,text:`text-bernstein`},rot:{block:`bg-rot/10 ring-rot/40`,glut:`var(--rot)`,text:`text-rot-text`},stumm:{block:`bg-white/[0.04] ring-white/15`,glut:`var(--text-3)`,text:`text-text-2`}};function w(e){let t=(0,h.c)(32),{art:n,oben:r,mitte:a,unten:o,aktiv:s,onAnsehen:c,label:l,children:u}=e,d=C[n],f=`radial-gradient(closest-side, color-mix(in srgb, ${d.glut} 20%, transparent), transparent)`,p;t[0]===f?p=t[1]:(p=(0,_.jsx)(`div`,{"aria-hidden":!0,className:`glut-atmet pointer-events-none absolute -top-40 -left-32 size-[460px] rounded-full`,style:{background:f}}),t[0]=f,t[1]=p);let m=!s,g=`${r}: ${a}`,v=s?`cursor-pointer hover:brightness-125`:`cursor-default`,y=n===`gelb`&&`lampe-atmet`,b;t[2]!==d.block||t[3]!==v||t[4]!==y?(b=i(`flex min-h-[132px] flex-col items-start justify-center gap-1.5 rounded-2xl px-5 py-4 text-left ring-1 ring-inset transition-[filter]`,d.block,v,y),t[2]=d.block,t[3]=v,t[4]=y,t[5]=b):b=t[5];let x;t[6]===r?x=t[7]:(x=(0,_.jsx)(`span`,{className:`etikett text-[11px] tracking-[0.18em] text-text-3`,children:r}),t[6]=r,t[7]=x);let S;t[8]===d.text?S=t[9]:(S=i(`text-[30px] leading-tight font-semibold tracking-[-0.01em] sm:text-[34px]`,d.text),t[8]=d.text,t[9]=S);let w;t[10]!==a||t[11]!==S?(w=(0,_.jsx)(`span`,{className:S,children:a}),t[10]=a,t[11]=S,t[12]=w):w=t[12];let T;t[13]===o?T=t[14]:(T=(0,_.jsx)(`span`,{className:`text-[13.5px] text-text-2`,children:o}),t[13]=o,t[14]=T);let E;t[15]!==c||t[16]!==w||t[17]!==T||t[18]!==m||t[19]!==g||t[20]!==b||t[21]!==x?(E=(0,_.jsxs)(`button`,{type:`button`,onClick:c,disabled:m,"aria-label":g,className:b,children:[x,w,T]}),t[15]=c,t[16]=w,t[17]=T,t[18]=m,t[19]=g,t[20]=b,t[21]=x,t[22]=E):E=t[22];let D;t[23]===u?D=t[24]:(D=(0,_.jsx)(`ul`,{className:`m-0 grid list-none grid-cols-1 gap-2 p-0 min-[480px]:grid-cols-2 xl:grid-cols-4`,children:u}),t[23]=u,t[24]=D);let O;t[25]!==E||t[26]!==D?(O=(0,_.jsxs)(`div`,{className:`relative grid gap-4 p-4 sm:p-5 lg:grid-cols-[280px_minmax(0,1fr)] lg:gap-5`,children:[E,D]}),t[25]=E,t[26]=D,t[27]=O):O=t[27];let k;return t[28]!==l||t[29]!==O||t[30]!==p?(k=(0,_.jsxs)(`section`,{"aria-label":l,className:`auftauchen flaeche relative overflow-hidden rounded-3xl`,children:[p,O]}),t[28]=l,t[29]=O,t[30]=p,t[31]=k):k=t[31],k}var T={ok:`ok`,aus:`aus`,warn:`warn`,info:`info`,fehler:`rot`},E={ok:`text-text-3`,aus:`text-text-3`,warn:`text-bernstein`,info:`text-cyan-text`,fehler:`text-rot-text`},D={ok:`in Ordnung`,aus:`aus`,warn:`braucht Aufmerksamkeit`,info:`Info`,fehler:`Störung`};function O(e){let t=(0,h.c)(25),{bild:n,name:r,wert:a,zustand:o,zahl:s,onClick:c}=e,l=T[o],u;t[0]!==n||t[1]!==l?(u=(0,_.jsx)(f,{bild:n,punkt:l}),t[0]=n,t[1]=l,t[2]=u):u=t[2];let d;t[3]===r?d=t[4]:(d=(0,_.jsx)(`span`,{className:`truncate text-[14.5px] leading-snug font-medium`,children:r}),t[3]=r,t[4]=d);let p=E[o],m;t[5]===p?m=t[6]:(m=i(`truncate text-[12.5px] leading-snug`,p),t[5]=p,t[6]=m);let g;t[7]!==m||t[8]!==a?(g=(0,_.jsx)(`span`,{className:m,children:a}),t[7]=m,t[8]=a,t[9]=g):g=t[9];let v;t[10]===s?v=t[11]:(v=s&&(0,_.jsx)(`span`,{className:i(`truncate text-[12px] leading-snug`,s.stufe===`rot`?`text-rot-text`:s.stufe===`gelb`?`text-bernstein`:`text-text-3`),children:s.text}),t[10]=s,t[11]=v);let y=D[o],b;t[12]===y?b=t[13]:(b=(0,_.jsx)(`span`,{className:`sr-only`,children:y}),t[12]=y,t[13]=b);let x;t[14]!==d||t[15]!==g||t[16]!==v||t[17]!==b?(x=(0,_.jsxs)(`span`,{className:`flex min-w-0 flex-col gap-0.5`,children:[d,g,v,b]}),t[14]=d,t[15]=g,t[16]=v,t[17]=b,t[18]=x):x=t[18];let S;t[19]!==x||t[20]!==u?(S=(0,_.jsxs)(_.Fragment,{children:[u,x]}),t[19]=x,t[20]=u,t[21]=S):S=t[21];let C=S,w;return t[22]!==C||t[23]!==c?(w=(0,_.jsx)(`li`,{children:c?(0,_.jsx)(`button`,{type:`button`,onClick:c,className:i(`flaeche-innen flex h-full w-full min-w-0 items-center gap-3 rounded-xl px-3 py-2.5 text-left`,`transition-colors hover:border-white/20 hover:bg-white/[0.05]`),children:C}):(0,_.jsx)(`div`,{className:`flaeche-innen flex h-full w-full min-w-0 items-center gap-3 rounded-xl px-3 py-2.5 text-left`,children:C})}),t[22]=C,t[23]=c,t[24]=w):w=t[24],w}export{w as n,x as r,O as t}; \ No newline at end of file diff --git a/frontend/dist/assets/Lagekopf-DUjslgBy.js b/frontend/dist/assets/Lagekopf-DUjslgBy.js new file mode 100644 index 0000000..7aef5de --- /dev/null +++ b/frontend/dist/assets/Lagekopf-DUjslgBy.js @@ -0,0 +1,2 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/Protokollfenster-DeA4EXoc.js","assets/dist-aE7UmubC.js","assets/sheet-DG7u1mB-.js","assets/dist-CakcBaML.js","assets/button-BHVKhtQ6.js","assets/index-Bumw6krN.js","assets/abfragen-pD_qBEtc.js","assets/useSelector-DBNxxw17.js","assets/useMatch-DDVpPKJI.js","assets/useRouterState-DJr4hrdj.js","assets/index-D9NqFm_c.css"])))=>i.map(i=>d[i]); +import{a as e,c as t,i as n,r,t as i}from"./dist-aE7UmubC.js";import{Et as a,Mt as o,bt as s,h as c,ht as l,yt as u,zt as d}from"./abfragen-pD_qBEtc.js";import{t as f}from"./button-BHVKhtQ6.js";import{L as p,U as m}from"./index-Bumw6krN.js";var h=r(),g=t(e(),1),_=n(),v=(0,g.lazy)(()=>m(()=>import(`./Protokollfenster-DeA4EXoc.js`).then(e=>({default:e.Protokollfenster})),__vite__mapDeps([0,1,2,3,4]))),y=(0,g.lazy)(()=>m(()=>import(`./index-Bumw6krN.js`).then(e=>e.h).then(e=>({default:e.Bestaetigen})),__vite__mapDeps([5,1,3,4,6,7,8,9,10])));function b({h:e,basis:t}){let n=c(t),[r,p]=(0,g.useState)(null),[m,h]=(0,g.useState)(null),b=e.stufe===`rot`,x=m?o(e,m):null;async function S(){try{let n=await d(`${t}/${encodeURIComponent(e.id)}/aktion/protokoll`);p({titel:e.titel,text:n.text||n.out||n.err||`Kein Protokoll vorhanden.`})}catch(e){a(`fehler`,e.message)}}function C(t){n.mutate({hinweis:e.id,aktion:t.id,label:t.label})}function w(t){t.id===`protokoll`?S():o(e,t)?h(t):C(t)}let T=e.zustand===`stumm`;return(0,_.jsxs)(`article`,{className:i(`flex flex-col gap-2.5 rounded-2xl px-4 py-3.5 ring-1 ring-inset`,T?`bg-white/[0.03] opacity-70 ring-white/10`:b?`bg-rot/[0.07] ring-rot/35`:`bg-bernstein/[0.06] ring-bernstein/30`),children:[(0,_.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,_.jsx)(`h3`,{className:`min-w-0 flex-1 font-sans text-[16.5px] leading-snug font-semibold`,children:e.titel}),(0,_.jsx)(`span`,{className:i(`etikett shrink-0 rounded-full px-2.5 py-0.5 text-[10.5px] tracking-[0.12em] ring-1 ring-inset`,b?`bg-rot/12 text-rot-text ring-rot/40`:`bg-bernstein/10 text-bernstein ring-bernstein/35`),children:b?`Jetzt`:`Prüfen`})]}),(0,_.jsxs)(`p`,{className:`ziffern text-[13px] text-text-3`,children:[u(e.seit),` · zuletzt `,s(e.zuletzt),e.zustand===`neu`&&(0,_.jsx)(`span`,{className:`font-sans text-cyan-text`,children:` · neu`}),T&&e.stumm_bis&&(0,_.jsxs)(`span`,{className:`font-sans`,children:[` · stumm bis `,l(new Date(e.stumm_bis*1e3).toISOString()).toLowerCase()]})]}),e.text&&(0,_.jsx)(`p`,{className:`text-[15px] leading-relaxed break-words text-text-2`,children:e.text}),(0,_.jsxs)(`div`,{className:`flex flex-wrap gap-2.5 pt-1`,children:[e.aktionen.map((e,t)=>(0,_.jsx)(f,{variant:t===0&&e.id!==`protokoll`?`default`:`outline`,size:`sm`,disabled:n.isPending,onClick:()=>w(e),children:e.label},e.id)),e.zustand===`neu`&&(0,_.jsx)(f,{variant:`ghost`,size:`sm`,disabled:n.isPending,onClick:()=>C({id:`gesehen`,label:`Gesehen`}),children:`Gesehen`}),e.zustand&&!T&&(0,_.jsx)(f,{variant:`ghost`,size:`sm`,disabled:n.isPending,onClick:()=>C({id:`stumm`,label:`24 h stumm`}),children:`24 h stumm`}),T&&(0,_.jsx)(f,{variant:`ghost`,size:`sm`,disabled:n.isPending,onClick:()=>C({id:`laut`,label:`Wieder melden`}),children:`Wieder melden`})]}),r&&(0,_.jsx)(g.Suspense,{fallback:null,children:(0,_.jsx)(v,{offen:!0,titel:r.titel,text:r.text,onSchliessen:()=>p(null)})}),m&&x&&(0,_.jsx)(g.Suspense,{fallback:null,children:(0,_.jsx)(y,{offen:!0,titel:x.titel,text:x.text,knopf:x.knopf,gesperrt:n.isPending,onNein:()=>h(null),onJa:()=>{C(m),h(null)}})})]})}function x(e){let t=(0,h.c)(15),{hinweise:n,verlauf:r,basis:i}=e,a=i===void 0?`/api/hinweise`:i,o;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(o=new Date().toDateString(),t[0]=o):o=t[0];let s=o,c;if(t[1]!==n.length||t[2]!==r){c=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()===s,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,_.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,_.jsx)(`ul`,{className:`flex flex-col gap-1 text-sm text-text-3`,children:i.slice(0,4).map(S)}),r;t[6]===n?r=t[7]:(r=(0,_.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[e,n]}),t[6]=n,t[7]=r),c=r;break bb0}}t[1]=n.length,t[2]=r,t[3]=c}else c=t[3];if(c!==Symbol.for(`react.early_return_sentinel`))return c;let l;if(t[8]!==a||t[9]!==n){let e;t[11]===a?e=t[12]:(e=e=>(0,_.jsx)(b,{h:e,basis:a},e.id),t[11]=a,t[12]=e),l=n.map(e),t[8]=a,t[9]=n,t[10]=l}else l=t[10];let u;return t[13]===l?u=t[14]:(u=(0,_.jsx)(`div`,{className:`flex flex-col gap-3`,children:l}),t[13]=l,t[14]=u),u}function S(e){return(0,_.jsxs)(`li`,{children:[(0,_.jsx)(`span`,{className:`ziffern`,children:s(e.ts)}),` · `,e.text]},`${e.id}-${e.ts}`)}var C={ok:{block:`bg-gruen/[0.07] ring-gruen/30`,glut:`var(--gruen)`,text:`text-gruen`},info:{block:`bg-cyan/[0.07] ring-cyan/30`,glut:`var(--cyan)`,text:`text-cyan-text`},gelb:{block:`bg-bernstein/[0.08] ring-bernstein/35`,glut:`var(--bernstein)`,text:`text-bernstein`},rot:{block:`bg-rot/10 ring-rot/40`,glut:`var(--rot)`,text:`text-rot-text`},stumm:{block:`bg-white/[0.04] ring-white/15`,glut:`var(--text-3)`,text:`text-text-2`}};function w(e){let t=(0,h.c)(32),{art:n,oben:r,mitte:a,unten:o,aktiv:s,onAnsehen:c,label:l,children:u}=e,d=C[n],f=`radial-gradient(closest-side, color-mix(in srgb, ${d.glut} 20%, transparent), transparent)`,p;t[0]===f?p=t[1]:(p=(0,_.jsx)(`div`,{"aria-hidden":!0,className:`glut-atmet pointer-events-none absolute -top-40 -left-32 size-[460px] rounded-full`,style:{background:f}}),t[0]=f,t[1]=p);let m=!s,g=`${r}: ${a}`,v=s?`cursor-pointer hover:brightness-125`:`cursor-default`,y=n===`gelb`&&`lampe-atmet`,b;t[2]!==d.block||t[3]!==v||t[4]!==y?(b=i(`flex min-h-[132px] flex-col items-start justify-center gap-1.5 rounded-2xl px-5 py-4 text-left ring-1 ring-inset transition-[filter]`,d.block,v,y),t[2]=d.block,t[3]=v,t[4]=y,t[5]=b):b=t[5];let x;t[6]===r?x=t[7]:(x=(0,_.jsx)(`span`,{className:`etikett text-[11px] tracking-[0.18em] text-text-3`,children:r}),t[6]=r,t[7]=x);let S;t[8]===d.text?S=t[9]:(S=i(`text-[30px] leading-tight font-semibold tracking-[-0.01em] sm:text-[34px]`,d.text),t[8]=d.text,t[9]=S);let w;t[10]!==a||t[11]!==S?(w=(0,_.jsx)(`span`,{className:S,children:a}),t[10]=a,t[11]=S,t[12]=w):w=t[12];let T;t[13]===o?T=t[14]:(T=(0,_.jsx)(`span`,{className:`text-[13.5px] text-text-2`,children:o}),t[13]=o,t[14]=T);let E;t[15]!==c||t[16]!==w||t[17]!==T||t[18]!==m||t[19]!==g||t[20]!==b||t[21]!==x?(E=(0,_.jsxs)(`button`,{type:`button`,onClick:c,disabled:m,"aria-label":g,className:b,children:[x,w,T]}),t[15]=c,t[16]=w,t[17]=T,t[18]=m,t[19]=g,t[20]=b,t[21]=x,t[22]=E):E=t[22];let D;t[23]===u?D=t[24]:(D=(0,_.jsx)(`ul`,{className:`m-0 grid list-none grid-cols-1 gap-2 p-0 min-[480px]:grid-cols-2 xl:grid-cols-4`,children:u}),t[23]=u,t[24]=D);let O;t[25]!==E||t[26]!==D?(O=(0,_.jsxs)(`div`,{className:`relative grid gap-4 p-4 sm:p-5 lg:grid-cols-[280px_minmax(0,1fr)] lg:gap-5`,children:[E,D]}),t[25]=E,t[26]=D,t[27]=O):O=t[27];let k;return t[28]!==l||t[29]!==O||t[30]!==p?(k=(0,_.jsxs)(`section`,{"aria-label":l,className:`auftauchen flaeche relative overflow-hidden rounded-3xl`,children:[p,O]}),t[28]=l,t[29]=O,t[30]=p,t[31]=k):k=t[31],k}var T={ok:`ok`,aus:`aus`,warn:`warn`,info:`info`,fehler:`rot`},E={ok:`text-text-3`,aus:`text-text-3`,warn:`text-bernstein`,info:`text-cyan-text`,fehler:`text-rot-text`},D={ok:`in Ordnung`,aus:`aus`,warn:`braucht Aufmerksamkeit`,info:`Info`,fehler:`Störung`};function O(e){let t=(0,h.c)(25),{bild:n,name:r,wert:a,zustand:o,zahl:s,onClick:c}=e,l=T[o],u;t[0]!==n||t[1]!==l?(u=(0,_.jsx)(p,{bild:n,punkt:l}),t[0]=n,t[1]=l,t[2]=u):u=t[2];let d;t[3]===r?d=t[4]:(d=(0,_.jsx)(`span`,{className:`truncate text-[14.5px] leading-snug font-medium`,children:r}),t[3]=r,t[4]=d);let f=E[o],m;t[5]===f?m=t[6]:(m=i(`truncate text-[12.5px] leading-snug`,f),t[5]=f,t[6]=m);let g;t[7]!==m||t[8]!==a?(g=(0,_.jsx)(`span`,{className:m,children:a}),t[7]=m,t[8]=a,t[9]=g):g=t[9];let v;t[10]===s?v=t[11]:(v=s&&(0,_.jsx)(`span`,{className:i(`truncate text-[12px] leading-snug`,s.stufe===`rot`?`text-rot-text`:s.stufe===`gelb`?`text-bernstein`:`text-text-3`),children:s.text}),t[10]=s,t[11]=v);let y=D[o],b;t[12]===y?b=t[13]:(b=(0,_.jsx)(`span`,{className:`sr-only`,children:y}),t[12]=y,t[13]=b);let x;t[14]!==d||t[15]!==g||t[16]!==v||t[17]!==b?(x=(0,_.jsxs)(`span`,{className:`flex min-w-0 flex-col gap-0.5`,children:[d,g,v,b]}),t[14]=d,t[15]=g,t[16]=v,t[17]=b,t[18]=x):x=t[18];let S;t[19]!==x||t[20]!==u?(S=(0,_.jsxs)(_.Fragment,{children:[u,x]}),t[19]=x,t[20]=u,t[21]=S):S=t[21];let C=S,w;return t[22]!==C||t[23]!==c?(w=(0,_.jsx)(`li`,{children:c?(0,_.jsx)(`button`,{type:`button`,onClick:c,className:i(`flaeche-innen flex h-full w-full min-w-0 items-center gap-3 rounded-xl px-3 py-2.5 text-left`,`transition-colors hover:border-white/20 hover:bg-white/[0.05]`),children:C}):(0,_.jsx)(`div`,{className:`flaeche-innen flex h-full w-full min-w-0 items-center gap-3 rounded-xl px-3 py-2.5 text-left`,children:C})}),t[22]=C,t[23]=c,t[24]=w):w=t[24],w}export{w as n,x as r,O as t}; \ No newline at end of file diff --git a/frontend/dist/assets/MenueSchublade-BKl-sMAH.js b/frontend/dist/assets/MenueSchublade-CMlUHm_j.js similarity index 65% rename from frontend/dist/assets/MenueSchublade-BKl-sMAH.js rename to frontend/dist/assets/MenueSchublade-CMlUHm_j.js index 1259cff..63b7d26 100644 --- a/frontend/dist/assets/MenueSchublade-BKl-sMAH.js +++ b/frontend/dist/assets/MenueSchublade-CMlUHm_j.js @@ -1 +1 @@ -import{i as e,r as t}from"./dist-aE7UmubC.js";import{F as n,I as r}from"./index-BUHDF9RN.js";import{a as i,i as a,n as o,r as s,t as c}from"./sheet-Dx0TG2uq.js";var l=t(),u=e();function d(e){let t=(0,l.c)(8),{onSchliessen:d}=e,f;t[0]===d?f=t[1]:(f=e=>!e&&d(),t[0]=d,t[1]=f);let p;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(p=(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]=p):p=t[2];let m;t[3]===d?m=t[4]:(m=(0,u.jsxs)(o,{side:`left`,className:`flex flex-col gap-7 border-white/[0.06] bg-[#0a0d14] px-4 pt-5 pb-[calc(1.25rem+env(safe-area-inset-bottom))] data-[side=left]:w-[300px]`,children:[p,(0,u.jsx)(r,{onGewaehlt:d})]}),t[3]=d,t[4]=m);let h;return t[5]!==f||t[6]!==m?(h=(0,u.jsx)(c,{open:!0,onOpenChange:f,children:m}),t[5]=f,t[6]=m,t[7]=h):h=t[7],h}export{d as MenueSchublade}; \ No newline at end of file +import{i as e,r as t}from"./dist-aE7UmubC.js";import{G as n,W as r}from"./index-Bumw6krN.js";import{a as i,i as a,n as o,r as s,t as c}from"./sheet-DG7u1mB-.js";var l=t(),u=e();function d(e){let t=(0,l.c)(8),{onSchliessen:d}=e,f;t[0]===d?f=t[1]:(f=e=>!e&&d(),t[0]=d,t[1]=f);let p;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,u.jsxs)(a,{className:`p-0`,children:[(0,u.jsx)(i,{asChild:!0,children:(0,u.jsx)(`div`,{children:(0,u.jsx)(r,{})})}),(0,u.jsx)(s,{className:`sr-only`,children:`Bereiche und Seiten`})]}),t[2]=p):p=t[2];let m;t[3]===d?m=t[4]:(m=(0,u.jsxs)(o,{side:`left`,className:`flex flex-col gap-7 border-white/[0.06] bg-[#0a0d14] px-4 pt-5 pb-[calc(1.25rem+env(safe-area-inset-bottom))] data-[side=left]:w-[300px]`,children:[p,(0,u.jsx)(n,{onGewaehlt:d})]}),t[3]=d,t[4]=m);let h;return t[5]!==f||t[6]!==m?(h=(0,u.jsx)(c,{open:!0,onOpenChange:f,children:m}),t[5]=f,t[6]=m,t[7]=h):h=t[7],h}export{d as MenueSchublade}; \ No newline at end of file diff --git a/frontend/dist/assets/Modelle-BLLzu0pF.js b/frontend/dist/assets/Modelle-BLLzu0pF.js new file mode 100644 index 0000000..9301cb1 --- /dev/null +++ b/frontend/dist/assets/Modelle-BLLzu0pF.js @@ -0,0 +1 @@ +import{a as e,c as t,i as n,r,t as i}from"./dist-aE7UmubC.js";import{Bt as a,E as o,F as s,Ft as c,G as l,H as u,K as d,Lt as f,Nt as p,Ot as m,P as h,Pt as g,Rt as _,St as v,U as y,_t as b,a as x,c as S,gt as C,ht as w,i as T,j as E,l as D,nt as O,rn as k,xt as A,z as j}from"./abfragen-pD_qBEtc.js";import{n as M,t as N}from"./useSelector-DBNxxw17.js";import{n as P}from"./useMatch-DDVpPKJI.js";import{t as F}from"./chevron-right-DF8ikrVh.js";import{t as I}from"./button-BHVKhtQ6.js";import{C as L,H as R,T as z,V as B,ct as V,m as H,p as U,w as W}from"./index-Bumw6krN.js";import{a as G,i as ee,n as te,r as K,t as ne}from"./sheet-DG7u1mB-.js";import{a as re,r as ie,s as ae,t as q}from"./Auftraege-Ddds-g-W.js";import{t as J}from"./breite-k-QN6GPl.js";function oe(e){let t=M();return N(t.stores.location,P(e,t))}var Y=r(),X=t(e(),1),Z=n(),Q=new Intl.NumberFormat(`de-DE`),se=240,ce=24,le={ArrowLeft:e=>Math.max(0,e-1),ArrowRight:(e,t)=>Math.min(t-1,e+1),Home:()=>0,End:(e,t)=>t-1};function ue(e){let t=(0,Y.c)(20),{saeule:n,reihen:r,summe:a,className:o,links:s}=e,c;t[0]===o?c=t[1]:(c=i(`flex flex-col gap-1 rounded-xl border border-white/12 bg-white/[0.04] px-3 py-2`,o),t[0]=o,t[1]=c);let l;t[2]===s?l=t[3]:(l=s===void 0?void 0:{left:s},t[2]=s,t[3]=l);let u;t[4]===n.lang?u=t[5]:(u=(0,Z.jsx)(`span`,{className:`ziffern text-xs text-text-3`,children:n.lang}),t[4]=n.lang,t[5]=u);let d;if(t[6]!==r||t[7]!==n.werte){let e;t[9]===n.werte?e=t[10]:(e=e=>(0,Z.jsxs)(`span`,{className:`flex items-baseline gap-2 text-sm`,children:[(0,Z.jsx)(`span`,{"aria-hidden":!0,className:`h-0.5 w-3 shrink-0 self-center rounded-full`,style:{background:e.farbe}}),(0,Z.jsx)(`span`,{className:`ziffern font-semibold text-foreground`,children:Q.format(n.werte[e.name]??0)}),(0,Z.jsx)(`span`,{className:`min-w-0 text-text-3`,children:e.name})]},e.name),t[9]=n.werte,t[10]=e),d=r.map(e),t[6]=r,t[7]=n.werte,t[8]=d}else d=t[8];let f;t[11]!==r.length||t[12]!==a?(f=r.length>1&&(0,Z.jsxs)(`span`,{className:`flex items-baseline gap-2 border-t border-white/[0.06] pt-1 text-sm`,children:[(0,Z.jsx)(`span`,{className:`ziffern font-semibold text-foreground`,children:Q.format(a)}),(0,Z.jsx)(`span`,{className:`text-text-3`,children:`zusammen`})]}),t[11]=r.length,t[12]=a,t[13]=f):f=t[13];let p;return t[14]!==c||t[15]!==l||t[16]!==u||t[17]!==d||t[18]!==f?(p=(0,Z.jsxs)(`div`,{role:`status`,className:c,style:l,children:[u,d,f]}),t[14]=c,t[15]=l,t[16]=u,t[17]=d,t[18]=f,t[19]=p):p=t[19],p}function de(e){let t=(0,Y.c)(92),{saeulen:n,reihen:r,titel:a,summen:o,hoehe:s,spalte:c}=e,l=o===void 0?`alle`:o,u=s===void 0?200:s,d=c===void 0?`Zeitraum`:c,[f,p]=J(),[m,h]=(0,X.useState)(null),g=n.length,_,v,y,b,x,S,C,w,T,E;if(t[0]!==p||t[1]!==u||t[2]!==m||t[3]!==g||t[4]!==f||t[5]!==r||t[6]!==n||t[7]!==d||t[8]!==l||t[9]!==a){let e;t[20]===n?e=t[21]:(e=e=>n.some(t=>(t.werte[e.name]??0)>0),t[20]=n,t[21]=e);let o=r.filter(e),s=n.map(e=>o.reduce((t,n)=>t+(e.werte[n.name]??0),0)),c=Math.max(0,...s),D=z(c),O=D[D.length-1],k;t[22]===O?k=t[23]:(k=Q.format(O),t[22]=O,t[23]=k);let A=Math.max(28,k.length*7+12),j=n.some(ge)?34:22,M;t[24]!==A||t[25]!==j?(M={links:A,rechts:4,oben:20,unten:j},t[24]=A,t[25]=j,t[26]=M):M=t[26];let N=M,P=Math.max(1,p-N.links-N.rechts),F=u-N.oben-N.unten,I=P/Math.max(1,g),R=Math.min(ce,Math.max(3,I*.72)),B;t[27]!==F||t[28]!==O||t[29]!==N.oben?(B=e=>N.oben+F-e/O*F,t[27]=F,t[28]=O,t[29]=N.oben,t[30]=B):B=t[30];let V=B,H=N.oben+F,U;t[31]!==I||t[32]!==N.links?(U=e=>N.links+(e+.5)*I,t[31]=I,t[32]=N.links,t[33]=U):U=t[33];let G=U,ee;t[34]===n?ee=t[35]:(ee=Math.max(1,...n.map(he)),t[34]=n,t[35]=ee);let te=ee*6.6+8,K;t[36]!==I||t[37]!==te?(K=[1,3,6,12].find(e=>e*I>=te)??24,t[36]=I,t[37]=te,t[38]=K):K=t[38];let ne=K,re=s.indexOf(c),ie=I<34,ae;t[39]===g?ae=t[40]:(ae=function(e){if(g===0)return;let t=e.currentTarget.getBoundingClientRect();h(Math.min(g-1,Math.max(0,Math.floor((e.clientX-t.left)/t.width*g))))},t[39]=g,t[40]=ae);let q=ae,J;t[41]===g?J=t[42]:(J=function(e){let t=le[e.key];g!==0&&t&&(e.preventDefault(),h(e=>t(e??g-1,g)))},t[41]=g,t[42]=J);let oe=J,Y=m===null?void 0:n[m],X=p>=360,de=m===null?0:Math.max(0,Math.min(p-se,G(m)+12+se>p?G(m)-12-se:G(m)+12));_=`flex flex-col gap-2`,v=o.length>1&&(0,Z.jsx)(`ul`,{className:`m-0 flex list-none flex-wrap gap-x-4 gap-y-1 p-0 text-sm text-text-2`,"aria-label":`Legende`,children:o.map(me)});let _e;t[43]===g?_e=t[44]:(_e=()=>h(e=>e??(g?g-1:null)),t[43]=g,t[44]=_e);let ve;t[45]===Symbol.for(`react.memo_cache_sentinel`)?(ve=()=>h(null),t[45]=ve):ve=t[45];let ye;t[46]!==Y||t[47]!==I||t[48]!==m||t[49]!==F||t[50]!==N.links||t[51]!==N.oben?(ye=Y&&m!==null&&(0,Z.jsx)(`rect`,{x:N.links+m*I,y:N.oben-4,width:I,height:F+4,rx:4,fill:`var(--erhaben)`}),t[46]=Y,t[47]=I,t[48]=m,t[49]=F,t[50]=N.links,t[51]=N.oben,t[52]=ye):ye=t[52];let be;t[53]!==p||t[54]!==N.links||t[55]!==N.rechts||t[56]!==V?(be=e=>(0,Z.jsxs)(`g`,{children:[(0,Z.jsx)(`line`,{x1:N.links,x2:p-N.rechts,y1:V(e),y2:V(e),strokeWidth:1,stroke:e===0?`var(--linie-stark)`:`var(--linie)`}),(0,Z.jsx)(`text`,{x:N.links-8,y:V(e)+4,textAnchor:`end`,className:`fill-text-3 font-mono text-[11px]`,children:Q.format(e)})]},e),t[53]=p,t[54]=N.links,t[55]=N.rechts,t[56]=V,t[57]=be):be=t[57];let xe;t[58]!==P||t[59]!==F||t[60]!==c||t[61]!==N.links||t[62]!==N.oben?(xe=c===0&&(0,Z.jsx)(`text`,{x:N.links+P/2,y:N.oben+F/2,textAnchor:`middle`,className:`fill-text-3 text-sm`,children:`Keine Anfragen in diesem Zeitraum`}),t[58]=P,t[59]=F,t[60]=c,t[61]=N.links,t[62]=N.oben,t[63]=xe):xe=t[63];let Se;t[64]===Symbol.for(`react.memo_cache_sentinel`)?(Se=e=>{e.pointerType!==`touch`&&h(null)},t[64]=Se):Se=t[64];let Ce;t[65]!==u||t[66]!==P||t[67]!==N.links||t[68]!==q?(Ce=(0,Z.jsx)(`rect`,{x:N.links,y:0,width:P,height:u,fill:`transparent`,onPointerMove:q,onPointerDown:q,onPointerLeave:Se}),t[65]=u,t[66]=P,t[67]=N.links,t[68]=q,t[69]=Ce):Ce=t[69],y=(0,Z.jsxs)(`div`,{ref:f,className:`relative w-full`,children:[(0,Z.jsxs)(`svg`,{width:p,height:u,viewBox:`0 0 ${p} ${u}`,role:`img`,"aria-label":a,tabIndex:0,onKeyDown:oe,onFocus:_e,onBlur:ve,className:`block h-auto max-w-full outline-none focus-visible:rounded-md focus-visible:ring-2 focus-visible:ring-cyan/60`,children:[ye,D.map(be),n.map((e,t)=>{let n=G(t)-R/2;return(0,Z.jsxs)(`g`,{children:[W(o.map(t=>e.werte[t.name]??0),V).filter(pe).map(e=>e.oben?(0,Z.jsx)(`path`,{d:L(n,e.y,R,e.hoehe),fill:o[e.index].farbe},e.index):(0,Z.jsx)(`rect`,{x:n,y:e.y,width:R,height:e.hoehe,fill:o[e.index].farbe},e.index)),s[t]>0&&(l===`alle`||t===re)&&(0,Z.jsx)(`text`,{x:G(t),y:V(s[t])-6,textAnchor:`middle`,className:i(`fill-text-2 font-mono`,ie?`text-[10px]`:`text-[11px]`),children:Q.format(s[t])}),(e.raster??t)%ne===0&&(0,Z.jsxs)(`text`,{x:G(t),y:H+15,textAnchor:`middle`,className:`fill-text-3 font-mono text-[11px]`,children:[e.achse,e.achse2&&(0,Z.jsx)(`tspan`,{x:G(t),dy:13,className:`text-[10px]`,children:e.achse2})]})]},e.schluessel)}),xe,Ce]}),Y&&m!==null&&X&&(0,Z.jsx)(ue,{saeule:Y,reihen:o,summe:s[m],links:de,className:`pointer-events-none absolute top-1 z-10 w-60 shadow-lg`})]}),b=Y&&m!==null&&!X&&(0,Z.jsx)(ue,{saeule:Y,reihen:o,summe:s[m]}),T=`text-sm`,t[70]===Symbol.for(`react.memo_cache_sentinel`)?(E=(0,Z.jsx)(`summary`,{className:`inline-flex cursor-pointer items-center text-text-3 hover:text-text-2`,children:`Werte als Tabelle`}),t[70]=E):E=t[70],w=`mt-2 overflow-x-auto`,S=`w-full border-collapse text-xs`;let we;t[71]===d?we=t[72]:(we=(0,Z.jsx)(`th`,{scope:`col`,className:`py-1 pr-3 text-left font-normal`,children:d}),t[71]=d,t[72]=we),C=(0,Z.jsx)(`thead`,{children:(0,Z.jsxs)(`tr`,{className:`text-text-3`,children:[we,o.map(fe),o.length>1&&(0,Z.jsx)(`th`,{scope:`col`,className:`py-1 text-right font-normal`,children:`Zusammen`})]})}),x=n.map((e,t)=>(0,Z.jsxs)(`tr`,{className:`border-t border-white/[0.06]`,children:[(0,Z.jsx)(`th`,{scope:`row`,className:`py-1 pr-3 text-left font-normal text-text-3`,children:e.lang}),o.map(t=>(0,Z.jsx)(`td`,{className:`ziffern py-1 pr-3 text-right text-text-2`,children:Q.format(e.werte[t.name]??0)},t.name)),o.length>1&&(0,Z.jsx)(`td`,{className:`ziffern py-1 text-right text-foreground`,children:Q.format(s[t])})]},e.schluessel)),t[0]=p,t[1]=u,t[2]=m,t[3]=g,t[4]=f,t[5]=r,t[6]=n,t[7]=d,t[8]=l,t[9]=a,t[10]=_,t[11]=v,t[12]=y,t[13]=b,t[14]=x,t[15]=S,t[16]=C,t[17]=w,t[18]=T,t[19]=E}else _=t[10],v=t[11],y=t[12],b=t[13],x=t[14],S=t[15],C=t[16],w=t[17],T=t[18],E=t[19];let D;t[73]===x?D=t[74]:(D=(0,Z.jsx)(`tbody`,{children:x}),t[73]=x,t[74]=D);let O;t[75]!==D||t[76]!==S||t[77]!==C?(O=(0,Z.jsxs)(`table`,{className:S,children:[C,D]}),t[75]=D,t[76]=S,t[77]=C,t[78]=O):O=t[78];let k;t[79]!==O||t[80]!==w?(k=(0,Z.jsx)(`div`,{className:w,children:O}),t[79]=O,t[80]=w,t[81]=k):k=t[81];let A;t[82]!==k||t[83]!==T||t[84]!==E?(A=(0,Z.jsxs)(`details`,{className:T,children:[E,k]}),t[82]=k,t[83]=T,t[84]=E,t[85]=A):A=t[85];let j;return t[86]!==_||t[87]!==v||t[88]!==y||t[89]!==b||t[90]!==A?(j=(0,Z.jsxs)(`div`,{className:_,children:[v,y,b,A]}),t[86]=_,t[87]=v,t[88]=y,t[89]=b,t[90]=A,t[91]=j):j=t[91],j}function fe(e){return(0,Z.jsx)(`th`,{scope:`col`,className:`py-1 pr-3 text-right font-normal [overflow-wrap:anywhere]`,children:e.name},e.name)}function pe(e){return e.hoehe>0}function me(e){return(0,Z.jsxs)(`li`,{className:`flex items-center gap-2`,children:[(0,Z.jsx)(`span`,{"aria-hidden":!0,className:`size-2.5 shrink-0 rounded-[2px]`,style:{background:e.farbe}}),e.name]},e.name)}function he(e){return e.achse.length}function ge(e){return e.achse2}var _e=`Europe/Berlin`,ve=[`var(--reihe-1)`,`var(--reihe-2)`,`var(--reihe-3)`],ye={name:`Weitere`,farbe:`var(--reihe-weitere)`},be=new Intl.NumberFormat(`de-DE`),xe=new Intl.NumberFormat(`de-DE`,{maximumFractionDigits:1}),Se=new Intl.DateTimeFormat(`en-CA`,{timeZone:_e}),Ce=new Intl.DateTimeFormat(`de-DE`,{hour:`2-digit`,minute:`2-digit`,timeZone:_e}),we=new Intl.DateTimeFormat(`de-DE`,{hour:`2-digit`,hourCycle:`h23`,timeZone:_e}),Te=new Intl.DateTimeFormat(`de-DE`,{weekday:`short`,timeZone:`UTC`}),Ee=new Intl.DateTimeFormat(`de-DE`,{weekday:`long`,timeZone:`UTC`}),$=e=>be.format(e);function De(e){if(!(e>0))return`0 %`;let t=e*100;return t<.1?`unter 0,1 %`:`${t<10?xe.format(t):be.format(Math.round(t))} %`}function Oe(e,t=!1){if(e==null||!Number.isFinite(e)||e<0)return`–`;if(Math.round(e*1e3)<1e3)return`${Math.round(e*1e3)} ms`;if(e<9.95)return`${xe.format(e)} s`;let n=Math.round(e);if(n<60)return`${n} s`;if(n<3600&&!t)return n%60?`${Math.floor(n/60)} min ${n%60} s`:`${n/60} min`;let r=Math.round(e/60);return r<60?`${r} min`:r%60?`${Math.floor(r/60)} h ${r%60} min`:`${r/60} h`}var ke={400:`fehlerhafte Anfrage`,404:`nicht gefunden`,408:`Zeitüberschreitung`,413:`Anfrage zu groß`,429:`zu viele Anfragen`,499:`vom Absender abgebrochen`,500:`Fehler beim Modell`,502:`Modell nicht erreichbar`,503:`gerade nicht verfügbar`,504:`Zeitüberschreitung`};function Ae(e){return Object.entries(e??{}).sort(([e,t],[n,r])=>r-t||e.localeCompare(n)).map(([e,t])=>ke[e]?`${$(t)}× ${ke[e]} (${e})`:`${$(t)}× Status ${e}`).join(` · `)}function je(e){return e===null||e<.01?{art:`grau`,wort:null}:e>=.05?{art:`rot`,wort:`hoch`}:{art:`bernstein`,wort:`auffällig`}}var Me=e=>String(e).padStart(2,`0`),Ne=e=>Object.values(e??{}).reduce((e,t)=>e+t,0),Pe=e=>Te.format(e).replace(`.`,``);function Fe(e){return Number(we.formatToParts(e).find(e=>e.type===`hour`)?.value??0)%24}function Ie(e){let[,t,n]=e.split(`-`);return`${Ee.format(new Date(`${e}T12:00:00Z`))}, ${n}.${t}.`}function Le(e,t=new Date){let n=e.stand?new Date(e.stand):t,r=Se.format(n),i=new Date(Date.parse(`${r}T12:00:00Z`)-864e5).toISOString().slice(0,10),a=e.gesamt?.anfragen??e.absender.reduce((e,t)=>e+t.anfragen,0),o=e.gesamt?.dauer_summe_s??null,s=new Map(e.absender.map((e,t)=>[e.name,e.reihe??t])),c=e.absender.map(e=>{let t=s.get(e.name)??ve.length,n=t[e.name,e.reihe])),u=[];for(let e of[...c].sort((e,t)=>(s.get(e.name)??99)-(s.get(t.name)??99)))u.some(t=>t.name===e.reihe)||u.push({name:e.reihe,farbe:e.farbe});let d=e=>{let t={};for(let[n,r]of Object.entries(e??{})){let e=l.get(n)??ye.name;t[e]=(t[e]??0)+r,e===ye.name&&!u.some(t=>t.name===e)&&u.push({...ye})}return t},f=Object.keys(e.je_tag??{}).sort(),p=f.map(t=>{let i=t===r;return{schluessel:t,achse:Pe(new Date(`${t}T12:00:00Z`)),achse2:i?`heute`:`${Number(t.slice(8))}.`,lang:`${Ie(t)}${i?` (heute bis ${Ce.format(n)})`:``}`,werte:d(e.je_tag[t])}}),m;if(e.stunden?.length)m=e.stunden.map((e,t,n)=>{let a=new Date(e.beginn),o=Fe(a),s=Se.format(a),c=s===r?`Heute`:s===i?`Gestern`:Ie(s),l=t===n.length-1?` bis jetzt`:`–${Me((o+1)%24)}:00`;return{schluessel:e.beginn,achse:`${Me(o)}:00`,raster:o,lang:`${c} ${Me(o)}:00${l}`,werte:d(e.je_absender)}});else{let t=Fe(n),r=e.letzte_24h??[];m=[...r.slice(t+1),...r.slice(0,t+1)].map(e=>{let t=Number(e.stunde);return{schluessel:e.stunde,achse:`${Me(t)}:00`,raster:t,lang:`${Me(t)}:00–${Me((t+1)%24)}:00`,werte:d(e.je_absender)}})}let h=f.filter(e=>e!==r),g=e.seit?Se.format(new Date(e.seit)):null,_=e.ladevorgaenge??Object.entries(e.zuletzt_geladen??{}).sort(([,e],[,t])=>Date.parse(t)-Date.parse(e)).map(([e,t])=>({modell:e,anzahl:null,zeiten:[t]}));return{absender:c,reihen:u,tage:p,stunden:m,gesamt:{anfragen:a,fehler:e.gesamt?.fehler??null,fehlerCodes:e.gesamt?.fehler_codes??{},typisch:e.gesamt?.dauer_typisch_s??null,p90:e.gesamt?.dauer_p90_s??null,summe:o},heute:Ne(e.je_tag?.[r]),gestern:Ne(e.je_tag?.[i]),schnitt:h.length?h.reduce((t,n)=>t+Ne(e.je_tag[n]),0)/h.length:null,zeitraum:g?`seit ${Pe(new Date(`${g}T12:00:00Z`))} ${g.slice(8)}.${g.slice(5,7)}.`:`letzte ${e.tage} Tage`,stand:e.stand?Ce.format(n):null,modelle:_}}var Re={grau:`text-foreground`,bernstein:`text-bernstein`,rot:`text-rot-text`};function ze(e){let t=(0,Y.c)(13),{label:n,wert:r,zusatz:a,art:o}=e,s=o===void 0?`grau`:o,c;t[0]===n?c=t[1]:(c=(0,Z.jsx)(`span`,{className:`etikett text-[10.5px] tracking-[0.14em] text-text-3`,children:n}),t[0]=n,t[1]=c);let l=Re[s],u;t[2]===l?u=t[3]:(u=i(`font-anzeige text-[28px] leading-none font-bold`,l),t[2]=l,t[3]=u);let d;t[4]!==u||t[5]!==r?(d=(0,Z.jsx)(`span`,{className:u,children:r}),t[4]=u,t[5]=r,t[6]=d):d=t[6];let f;t[7]===a?f=t[8]:(f=a&&(0,Z.jsx)(`span`,{className:`text-xs text-text-3`,children:a}),t[7]=a,t[8]=f);let p;return t[9]!==c||t[10]!==d||t[11]!==f?(p=(0,Z.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1.5 flaeche-innen rounded-2xl px-3.5 py-3`,children:[c,d,f]}),t[9]=c,t[10]=d,t[11]=f,t[12]=p):p=t[12],p}var Be=`lg:grid-cols-[minmax(0,1.5fr)_minmax(0,1.4fr)_minmax(0,1fr)_minmax(0,1fr)_minmax(0,1.2fr)_minmax(0,0.8fr)]`;function Ve(e){let t=(0,Y.c)(13),{label:n,wert:r,zusatz:a,leise:o}=e,s;t[0]===n?s=t[1]:(s=(0,Z.jsx)(`span`,{className:`text-xs text-text-3 lg:hidden`,children:n}),t[0]=n,t[1]=s);let c=o?`text-text-3`:`text-foreground`,l;t[2]===c?l=t[3]:(l=i(`ziffern text-sm`,c),t[2]=c,t[3]=l);let u;t[4]!==l||t[5]!==r?(u=(0,Z.jsx)(`span`,{className:l,children:r}),t[4]=l,t[5]=r,t[6]=u):u=t[6];let d;t[7]===a?d=t[8]:(d=a&&(0,Z.jsx)(`span`,{className:`text-xs text-text-3`,children:a}),t[7]=a,t[8]=d);let f;return t[9]!==s||t[10]!==u||t[11]!==d?(f=(0,Z.jsxs)(`span`,{role:`cell`,className:`flex min-w-0 flex-col gap-0.5`,children:[s,u,d]}),t[9]=s,t[10]=u,t[11]=d,t[12]=f):f=t[12],f}function He(e){let t=(0,Y.c)(5),{zeilen:n}=e,r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,Z.jsxs)(`div`,{role:`row`,className:i(`etikett hidden gap-x-4 pb-2 text-[10.5px] tracking-[0.14em] text-text-3 lg:grid`,Be),children:[(0,Z.jsx)(`span`,{role:`columnheader`,children:`Absender`}),(0,Z.jsx)(`span`,{role:`columnheader`,children:`Anfragen`}),(0,Z.jsx)(`span`,{role:`columnheader`,children:`Typische Antwort`}),(0,Z.jsx)(`span`,{role:`columnheader`,children:`Rechenzeit`}),(0,Z.jsx)(`span`,{role:`columnheader`,children:`Fehler`}),(0,Z.jsx)(`span`,{role:`columnheader`,children:`Zuletzt`})]}),t[0]=r):r=t[0];let a;t[1]===n?a=t[2]:(a=n.map(Ue),t[1]=n,t[2]=a);let o;return t[3]===a?o=t[4]:(o=(0,Z.jsxs)(`div`,{role:`table`,"aria-label":`Nutzung je Absender`,className:`flex flex-col`,children:[r,a]}),t[3]=a,t[4]=o),o}function Ue(e){return(0,Z.jsxs)(`div`,{role:`row`,className:i(`grid grid-cols-2 gap-x-4 gap-y-2.5 border-t border-white/[0.06] py-3 lg:items-start`,Be),children:[(0,Z.jsxs)(`span`,{role:`rowheader`,className:`col-span-2 flex min-w-0 items-center gap-2 text-[15px] font-medium lg:col-span-1`,children:[(0,Z.jsx)(`span`,{"aria-hidden":!0,className:`size-2.5 shrink-0 rounded-[2px]`,style:{background:e.farbe}}),(0,Z.jsx)(`span`,{className:`min-w-0 break-words`,children:e.name})]}),(0,Z.jsxs)(`span`,{role:`cell`,className:`col-span-2 flex min-w-0 flex-col gap-1.5 lg:col-span-1`,children:[(0,Z.jsxs)(`span`,{className:`text-sm`,children:[(0,Z.jsx)(`span`,{className:`ziffern`,children:$(e.anfragen)}),(0,Z.jsxs)(`span`,{className:`text-text-3`,children:[` · `,De(e.anteil),` aller Anfragen`]})]}),(0,Z.jsx)(`span`,{className:`h-1.5 w-full max-w-56 overflow-hidden rounded-full bg-white/[0.07]`,"aria-hidden":!0,children:(0,Z.jsx)(`span`,{className:`block h-full rounded-full`,style:{width:`${Math.max(1,e.anteil*100)}%`,background:e.farbe}})})]}),(0,Z.jsx)(Ve,{label:`Typische Antwort`,wert:Oe(e.typisch),zusatz:e.p90===null?void 0:`9 von 10 bis ${Oe(e.p90)}`}),(0,Z.jsx)(Ve,{label:`Rechenzeit`,wert:Oe(e.summe,!0),zusatz:e.zeitAnteil===null?void 0:`${De(e.zeitAnteil)} aller Rechenzeit`}),(0,Z.jsx)(Ve,{label:`Fehler`,leise:e.fehler===0,wert:e.fehler===null?`–`:e.fehler===0?`keine`:`${$(e.fehler)} · ${De(e.fehler/e.anfragen)}`,zusatz:e.fehler?Ae(e.fehlerCodes):void 0}),(0,Z.jsx)(Ve,{label:`Zuletzt`,wert:e.zuletzt?w(e.zuletzt):`–`})]},e.name)}function We(e){let t=(0,Y.c)(11),{titel:n,zusatz:r,children:i}=e,a;t[0]===n?a=t[1]:(a=(0,Z.jsx)(`h3`,{className:`etikett text-[11.5px] tracking-[0.16em] text-text-2`,children:n}),t[0]=n,t[1]=a);let o;t[2]===r?o=t[3]:(o=(0,Z.jsx)(`span`,{className:`text-xs text-text-3`,children:r}),t[2]=r,t[3]=o);let s;t[4]!==a||t[5]!==o?(s=(0,Z.jsxs)(`div`,{className:`flex flex-wrap items-baseline justify-between gap-x-3 gap-y-1`,children:[a,o]}),t[4]=a,t[5]=o,t[6]=s):s=t[6];let c;return t[7]!==i||t[8]!==s||t[9]!==n?(c=(0,Z.jsxs)(`section`,{"aria-label":n,className:`flex min-w-0 flex-col gap-3 flaeche-innen rounded-2xl p-4`,children:[s,i]}),t[7]=i,t[8]=s,t[9]=n,t[10]=c):c=t[10],c}function Ge(e){let t=(0,Y.c)(29),{modelle:n,rollen:r}=e;if(n.length===0)return null;let i,a,o,s,c,l;if(t[0]!==n){let e=n.every(Je)?n.reduce(qe,0):null;l=`group flaeche-innen rounded-2xl px-4 open:pb-2`,s=`flex min-h-12 cursor-pointer list-none flex-wrap items-center justify-between gap-x-3 gap-y-1 py-2 [&::-webkit-details-marker]:hidden`,t[7]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,Z.jsxs)(`span`,{className:`flex items-center gap-2 text-[15px] font-medium`,children:[(0,Z.jsx)(F,{className:`size-4 shrink-0 text-text-3 transition-transform group-open:rotate-90`,"aria-hidden":!0}),`Wann welches Modell geladen wurde`]}),t[7]=c):c=t[7],i=`ziffern text-sm text-text-2`,a=n.length===1?`1 Modell`:`${n.length} Modelle`,o=e===null?``:` · ${$(e)}× geladen`,t[0]=n,t[1]=i,t[2]=a,t[3]=o,t[4]=s,t[5]=c,t[6]=l}else i=t[1],a=t[2],o=t[3],s=t[4],c=t[5],l=t[6];let u;t[8]!==i||t[9]!==a||t[10]!==o?(u=(0,Z.jsxs)(`span`,{className:i,children:[a,o]}),t[8]=i,t[9]=a,t[10]=o,t[11]=u):u=t[11];let d;t[12]!==s||t[13]!==c||t[14]!==u?(d=(0,Z.jsxs)(`summary`,{className:s,children:[c,u]}),t[12]=s,t[13]=c,t[14]=u,t[15]=d):d=t[15];let f;t[16]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,Z.jsx)(`p`,{className:`pb-1 text-sm text-text-2`,children:`Gezählt wird, wie oft sich ein Modell nach dem Laden bereit meldete: nach einem Neustart von llama-swap oder wenn es auf Abruf gebraucht wurde.`}),t[16]=f):f=t[16];let p;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,Z.jsxs)(`div`,{role:`row`,className:`etikett hidden gap-x-4 py-2 text-[10.5px] tracking-[0.14em] text-text-3 sm:grid sm:grid-cols-[minmax(0,1.5fr)_70px_130px_minmax(0,1.5fr)]`,children:[(0,Z.jsx)(`span`,{role:`columnheader`,children:`Modell`}),(0,Z.jsx)(`span`,{role:`columnheader`,children:`Geladen`}),(0,Z.jsx)(`span`,{role:`columnheader`,children:`Zuletzt`}),(0,Z.jsx)(`span`,{role:`columnheader`,children:`Davor`})]}),t[17]=p):p=t[17];let m;if(t[18]!==n||t[19]!==r){let e;t[21]===r?e=t[22]:(e=e=>(0,Z.jsxs)(`div`,{role:`row`,className:`grid grid-cols-[minmax(0,1fr)_auto] gap-x-4 gap-y-1 border-t border-white/[0.06] py-2.5 sm:grid-cols-[minmax(0,1.5fr)_70px_130px_minmax(0,1.5fr)] sm:items-baseline`,children:[(0,Z.jsxs)(`span`,{role:`rowheader`,className:`flex min-w-0 flex-col`,children:[(0,Z.jsx)(`span`,{className:`ziffern text-sm break-all`,children:e.modell}),r[e.modell]&&(0,Z.jsx)(`span`,{className:`text-xs text-text-3`,children:r[e.modell]})]}),(0,Z.jsx)(`span`,{role:`cell`,className:`ziffern text-right text-sm text-text-2 sm:text-left`,children:e.anzahl===null?`–`:`${$(e.anzahl)}×`}),(0,Z.jsxs)(`span`,{role:`cell`,className:`ziffern col-span-2 text-xs text-text-2 sm:col-span-1`,children:[(0,Z.jsx)(`span`,{className:`font-sans text-text-3 sm:hidden`,children:`zuletzt `}),w(e.zeiten[0])]}),(0,Z.jsxs)(`span`,{role:`cell`,className:`ziffern col-span-2 text-xs text-text-3 sm:col-span-1`,children:[e.zeiten.length>1&&(0,Z.jsx)(`span`,{className:`font-sans sm:hidden`,children:`davor `}),e.zeiten.length>1?e.zeiten.slice(1,4).map(Ke).join(` · `):(0,Z.jsx)(`span`,{className:`hidden sm:inline`,children:`–`})]})]},e.modell),t[21]=r,t[22]=e),m=n.map(e),t[18]=n,t[19]=r,t[20]=m}else m=t[20];let h;t[23]===m?h=t[24]:(h=(0,Z.jsxs)(`div`,{role:`table`,"aria-label":`Ladevorgänge je Modell`,className:`flex flex-col`,children:[p,m]}),t[23]=m,t[24]=h);let g;return t[25]!==h||t[26]!==l||t[27]!==d?(g=(0,Z.jsxs)(`details`,{className:l,children:[d,f,h]}),t[25]=h,t[26]=l,t[27]=d,t[28]=g):g=t[28],g}function Ke(e){return w(e)}function qe(e,t){return e+(t.anzahl??0)}function Je(e){return e.anzahl!==null}function Ye(e){let t=(0,Y.c)(23),{nutzung:n,laedt:r,fehler:i,rollen:a}=e,o;t[0]===a?o=t[1]:(o=a===void 0?{}:a,t[0]=a,t[1]=o);let s=o;if(!n){let e;return t[2]!==i||t[3]!==r?(e=(0,Z.jsx)(U,{titel:`Wer nutzt die Modelle`,children:r?(0,Z.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Wird gelesen …`}):(0,Z.jsxs)(`p`,{role:`alert`,className:`text-[15px] text-rot-text`,children:[`Die Nutzung lässt sich gerade nicht lesen`,i?`: ${i}`:`.`]})}),t[2]=i,t[3]=r,t[4]=e):e=t[4],e}let c,l,u,d,f;if(t[5]!==n){l=Le(n);let e=l.gesamt,r=e.fehler!==null&&e.anfragen?e.fehler/e.anfragen:null,i;t[11]===r?i=t[12]:(i=je(r),t[11]=r,t[12]=i);let a=i;c=U,u=`Wer nutzt die Modelle`,d=(0,Z.jsxs)(`span`,{className:`ziffern text-sm text-text-3`,children:[l.zeitraum,l.stand?` · Stand ${l.stand}`:``]}),f=e.anfragen===0?(0,Z.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Keine Anfragen aufgezeichnet.`}):(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(`div`,{className:`grid grid-cols-2 gap-2.5 sm:grid-cols-4`,children:[(0,Z.jsx)(ze,{label:`Anfragen`,wert:$(e.anfragen),zusatz:l.schnitt===null?void 0:`im Schnitt ${$(Math.round(l.schnitt))} am Tag`}),(0,Z.jsx)(ze,{label:`Heute`,wert:$(l.heute),zusatz:`${l.stand?`bis ${l.stand} · `:``}gestern ${$(l.gestern)}`}),(0,Z.jsx)(ze,{label:`Typische Antwort`,wert:Oe(e.typisch),zusatz:e.p90===null?void 0:`9 von 10 bis ${Oe(e.p90)}`}),(0,Z.jsx)(ze,{label:`Fehler`,wert:e.fehler===null?`–`:$(e.fehler),art:a.art,zusatz:e.fehler===null?void 0:e.fehler===0?`alle beantwortet`:`${De(r??0)} der Anfragen${a.wort?` · ${a.wort}`:``}`})]}),(0,Z.jsx)(He,{zeilen:l.absender}),(0,Z.jsxs)(`div`,{className:`grid gap-4 xl:grid-cols-2`,children:[(0,Z.jsx)(We,{titel:`Anfragen je Tag`,zusatz:`letzte 7 Tage, heute bis jetzt`,children:(0,Z.jsx)(de,{saeulen:l.tage,reihen:l.reihen,spalte:`Tag`,titel:`Anfragen je Tag der letzten 7 Tage, gestapelt nach Absender`})}),(0,Z.jsx)(We,{titel:`Anfragen je Stunde`,zusatz:`letzte 24 Stunden`,children:(0,Z.jsx)(de,{saeulen:l.stunden,reihen:l.reihen,spalte:`Stunde`,summen:`hoechste`,titel:`Anfragen je Stunde der letzten 24 Stunden, gestapelt nach Absender`})})]})]}),t[5]=n,t[6]=c,t[7]=l,t[8]=u,t[9]=d,t[10]=f}else c=t[6],l=t[7],u=t[8],d=t[9],f=t[10];let p;t[13]!==l.modelle||t[14]!==s?(p=(0,Z.jsx)(Ge,{modelle:l.modelle,rollen:s}),t[13]=l.modelle,t[14]=s,t[15]=p):p=t[15];let m;t[16]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,Z.jsx)(`p`,{className:`text-xs text-text-3`,children:`Chat-Anfragen an llama-swap, gelesen aus seinem Protokoll und alle 10 Minuten neu gerechnet. NerdQuiz fragt direkt dort an, Lucy und OpenChamber über MC2. Antwortzeit: bis die Antwort ganz da war. Rechenzeit: alle Antwortzeiten zusammen, gleichzeitige Anfragen zählen einzeln.`}),t[16]=m):m=t[16];let h;return t[17]!==c||t[18]!==u||t[19]!==d||t[20]!==f||t[21]!==p?(h=(0,Z.jsxs)(c,{titel:u,rechts:d,children:[f,p,m]}),t[17]=c,t[18]=u,t[19]=d,t[20]=f,t[21]=p,t[22]=h):h=t[22],h}var Xe={coder:`Coder`};function Ze(e){let t=(0,Y.c)(102),{offen:n,onSchliessen:r,rollenJetzt:i}=e,s=o(),[c,l]=(0,X.useState)(``),[u,d]=(0,X.useState)(``),[f,p]=(0,X.useState)(null),[m,h]=(0,X.useState)(``),[g,v]=(0,X.useState)(null),y=(0,X.useRef)(!1),x,S;t[0]===u?(x=t[1],S=t[2]):(x=[`hf-suche`,u],S=()=>_(`/api/hf/search?q=${encodeURIComponent(u)}`),t[0]=u,t[1]=x,t[2]=S);let C=u.length>1,w;t[3]!==x||t[4]!==S||t[5]!==C?(w={queryKey:x,queryFn:S,enabled:C},t[3]=x,t[4]=S,t[5]=C,t[6]=w):w=t[6];let T=a(w),E,D;t[7]===f?(E=t[8],D=t[9]):(E=[`hf-quants`,f],D=()=>_(`/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=a(k),M,N,P,F,L,R,z,B,V,U,W,re,q;if(t[14]!==g||t[15]!==c||t[16]!==s||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]!==i||t[26]!==T){let e=(j.data?.quants??[]).map($e),a=m?Xe[m]??m:null,o;t[40]!==f||t[41]!==m||t[42]!==i||t[43]!==a?(o=a&&f?ae(f,a,i[m]):null,t[40]=f,t[41]=m,t[42]=i,t[43]=a,t[44]=o):o=t[44],P=o;let u;t[45]!==g||t[46]!==s||t[47]!==r||t[48]!==f||t[49]!==m?(u=function(){f&&g&&!y.current&&(y.current=!0,s.mutate({repo:f,quant:g.quant,rolle:m||null},{onSuccess:e=>{v(null),e.ok!==!1&&r()},onError:()=>v(null),onSettled:()=>{y.current=!1}}))},t[45]=g,t[46]=s,t[47]=r,t[48]=f,t[49]=m,t[50]=u):u=t[50],F=u,N=ne,W=n,t[51]===r?re=t[52]:(re=e=>!e&&r(),t[51]=r,t[52]=re),M=te,z=`right`,B=`gap-3 overflow-y-auto border-white/10 bg-[#0e121a] data-[side=right]:w-full data-[side=right]:sm:max-w-xl`,t[53]===Symbol.for(`react.memo_cache_sentinel`)?(V=(0,Z.jsxs)(ee,{children:[(0,Z.jsx)(G,{className:`text-[19px] font-semibold`,children:`Modelle selbst suchen`}),(0,Z.jsx)(K,{className:`text-text-2`,children:`Auf Hugging Face suchen, Quantisierung wählen, installieren.`})]}),t[53]=V):V=t[53];let _;t[54]===c?_=t[55]:(_=e=>{e.preventDefault(),p(null),d(c.trim())},t[54]=c,t[55]=_);let x;t[56]===Symbol.for(`react.memo_cache_sentinel`)?(x=(0,Z.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=>l(e.target.value),t[57]=S):S=t[57];let C;t[58]===c?C=t[59]:(C=(0,Z.jsx)(`input`,{id:`hf-suche`,value:c,onChange:S,placeholder:`z. B. Qwen3.8 GGUF`,className:`h-11 min-w-0 flex-1 rounded-xl border border-white/12 bg-white/[0.04] px-3 text-[15px] outline-none focus:border-cyan/60 focus:bg-white/[0.06]`}),t[58]=c,t[59]=C);let w;t[60]===Symbol.for(`react.memo_cache_sentinel`)?(w=(0,Z.jsx)(I,{type:`submit`,children:`Suchen`}),t[60]=w):w=t[60],t[61]!==_||t[62]!==C?(U=(0,Z.jsxs)(`form`,{className:`flex gap-2 px-4`,onSubmit:_,children:[x,C,w]}),t[61]=_,t[62]=C,t[63]=U):U=t[63],q=`flex flex-col px-4 pb-4`,t[64]!==f||t[65]!==T?(L=!f&&(0,Z.jsxs)(Z.Fragment,{children:[T.isFetching&&(0,Z.jsx)(`p`,{role:`status`,className:`py-3 text-sm text-text-2`,children:`Suche läuft …`}),!T.isFetching&&T.isError&&(0,Z.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,Z.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,Z.jsxs)(`button`,{type:`button`,onClick:()=>p(e.repo),className:`flex min-h-11 items-center justify-between gap-3 border-t border-white/[0.06] py-2 text-left hover:text-cyan`,children:[(0,Z.jsx)(`span`,{className:`ziffern min-w-0 text-sm break-all`,children:e.repo}),(0,Z.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],R=f&&(0,Z.jsxs)(`div`,{className:`flex flex-col gap-3 pt-2`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,Z.jsx)(`span`,{className:`ziffern min-w-0 text-sm break-all`,children:f}),(0,Z.jsx)(I,{variant:`ghost`,size:`sm`,onClick:()=>p(null),children:`Zurück`})]}),(0,Z.jsxs)(`label`,{className:`flex flex-wrap items-center gap-3 text-sm text-text-2`,children:[`Rolle`,(0,Z.jsxs)(`select`,{value:m,onChange:e=>h(e.target.value),className:`h-11 min-w-0 rounded-xl border border-white/12 bg-white/[0.04] px-3 text-foreground`,children:[(0,Z.jsx)(`option`,{value:``,children:`ohne Rolle (nur installieren)`}),Object.entries(Xe).map(Qe)]})]}),P&&(0,Z.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,Z.jsx)(`p`,{role:`status`,className:`text-sm text-text-2`,children:`Quantisierungen werden gelesen …`}),!j.isFetching&&j.isError&&(0,Z.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,Z.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,Z.jsxs)(`div`,{className:`flex items-center justify-between gap-3 border-t border-white/[0.06] py-2`,children:[(0,Z.jsx)(`span`,{className:`ziffern text-sm`,children:t}),(0,Z.jsxs)(`span`,{className:`flex items-center gap-3`,children:[n?(0,Z.jsx)(`span`,{className:`ziffern text-xs text-text-3`,children:b(n,1)}):null,(0,Z.jsx)(I,{variant:`outline`,size:`sm`,disabled:s.isPending,onClick:()=>v({quant:t,bytes:n}),children:`Installieren`})]})]},t)})]}),t[14]=g,t[15]=c,t[16]=s,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]=i,t[26]=T,t[27]=M,t[28]=N,t[29]=P,t[30]=F,t[31]=L,t[32]=R,t[33]=z,t[34]=B,t[35]=V,t[36]=U,t[37]=W,t[38]=re,t[39]=q}else M=t[27],N=t[28],P=t[29],F=t[30],L=t[31],R=t[32],z=t[33],B=t[34],V=t[35],U=t[36],W=t[37],re=t[38],q=t[39];let J;t[67]!==L||t[68]!==R||t[69]!==q?(J=(0,Z.jsxs)(`div`,{className:q,children:[L,R]}),t[67]=L,t[68]=R,t[69]=q,t[70]=J):J=t[70];let oe=g!==null,Q;t[71]!==g||t[72]!==f?(Q=g&&f?`${f} (${g.quant}${g.bytes?`, ${b(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]=Q):Q=t[73];let se=s.isPending?`Wird gestartet …`:`Installieren`,ce=s.isPending,le;t[74]===Symbol.for(`react.memo_cache_sentinel`)?(le=()=>v(null),t[74]=le):le=t[74];let ue;t[75]===P?ue=t[76]:(ue=P&&(0,Z.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]=ue);let de=!!m,fe;t[77]===de?fe=t[78]:(fe=ie(de),t[77]=de,t[78]=fe);let pe;t[79]===fe?pe=t[80]:(pe=(0,Z.jsx)(`p`,{className:`m-0 text-[15px] leading-relaxed text-text-2`,children:fe}),t[79]=fe,t[80]=pe);let me;t[81]!==s.isPending||t[82]!==F||t[83]!==oe||t[84]!==Q||t[85]!==se||t[86]!==ue||t[87]!==pe?(me=(0,Z.jsxs)(H,{offen:oe,titel:`Modell installieren?`,text:Q,knopf:se,gesperrt:ce,onNein:le,onJa:F,children:[ue,pe]}),t[81]=s.isPending,t[82]=F,t[83]=oe,t[84]=Q,t[85]=se,t[86]=ue,t[87]=pe,t[88]=me):me=t[88];let he;t[89]!==M||t[90]!==z||t[91]!==B||t[92]!==V||t[93]!==U||t[94]!==J||t[95]!==me?(he=(0,Z.jsxs)(M,{side:z,className:B,children:[V,U,J,me]}),t[89]=M,t[90]=z,t[91]=B,t[92]=V,t[93]=U,t[94]=J,t[95]=me,t[96]=he):he=t[96];let ge;return t[97]!==N||t[98]!==W||t[99]!==re||t[100]!==he?(ge=(0,Z.jsx)(N,{open:W,onOpenChange:re,children:he}),t[97]=N,t[98]=W,t[99]=re,t[100]=he,t[101]=ge):ge=t[101],ge}function Qe(e){let[t,n]=e;return(0,Z.jsx)(`option`,{value:t,children:n},t)}function $e(e){return typeof e==`string`?{quant:e}:e}var et=115;function tt(e){let t=(0,Y.c)(55),{modelle:n,laufend:r}=e,i=v(),a=O(),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=C(i?.ram_total??a.data?.box.ram_total)??122.7,g=C(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(nt,0);s=Math.max(0,g-v);let y=t=>`${Math.min(100,t/e*100)}%`;o=U,p=`Speicher`,m=(0,Z.jsxs)(`span`,{className:`ziffern text-sm text-text-2`,children:[Math.round(g),` von `,Math.round(e),` GB belegt · Grenze ~`,et,` 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 w=`${g?v/g*100:0}%`,T;t[19]===w?T=t[20]:(T=(0,Z.jsx)(`div`,{className:`h-full bg-cyan`,style:{width:w}}),t[19]=w,t[20]=T);let E=`${g?s/g*100:0}%`,D;t[21]===E?D=t[22]:(D=(0,Z.jsx)(`div`,{className:`h-full bg-cyan/35`,style:{width:E}}),t[21]=E,t[22]=D);let O;t[23]!==S||t[24]!==T||t[25]!==D?(O=(0,Z.jsxs)(`div`,{className:`absolute inset-y-0 left-0 flex overflow-hidden rounded-lg`,style:S,children:[T,D]}),t[23]=S,t[24]=T,t[25]=D,t[26]=O):O=t[26];let k=y(et),A;t[27]===k?A=t[28]:(A=(0,Z.jsx)(`div`,{className:`absolute -top-1.5 -bottom-1.5 w-0.5 bg-bernstein`,style:{left:k}}),t[27]=k,t[28]=A),t[29]!==b||t[30]!==O||t[31]!==A?(h=(0,Z.jsxs)(`div`,{className:`relative h-8 overflow-hidden rounded-xl bg-white/[0.06]`,role:`img`,"aria-label":b,children:[O,A]}),t[29]=b,t[30]=O,t[31]=A,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,Z.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,Z.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 _;t[39]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,Z.jsx)(`span`,{className:`size-2.5 rounded-sm bg-cyan/35`}),t[39]=_):_=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,Z.jsxs)(`span`,{className:`flex items-center gap-2`,children:[_,` Cache, Dienste, System: `,y,` GB`]}),t[42]=y,t[43]=b);let x;t[44]===Symbol.for(`react.memo_cache_sentinel`)?(x=(0,Z.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,Z.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,Z.jsxs)(`div`,{className:f,children:[g,b,x]}),t[45]=b,t[46]=f,t[47]=g,t[48]=S):S=t[48];let w;return t[49]!==o||t[50]!==S||t[51]!==p||t[52]!==m||t[53]!==h?(w=(0,Z.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]=w):w=t[54],w}function nt(e,t){return e+(C(t.size_bytes)??0)}function rt(e){let t=(0,Y.c)(7),{name:n,wert:r}=e,i;t[0]===n?i=t[1]:(i=(0,Z.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,Z.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,Z.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 it(e){let t=(0,Y.c)(48),{titel:n,modell:r,zwilling:i,laeuft:a,nutzer:o}=e,s=h();if(!r){let e;t[0]===n?e=t[1]:(e=(0,Z.jsx)(`span`,{className:`etikett text-[11px] tracking-[0.14em] text-text-3`,children:n}),t[0]=n,t[1]=e);let r;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,Z.jsx)(B,{children:`Frei`}),t[2]=r):r=t[2];let i;t[3]===e?i=t[4]:(i=(0,Z.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,Z.jsx)(`h3`,{className:`font-anzeige text-xl font-semibold text-text-2`,children:`Nicht belegt`}),o=(0,Z.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,Z.jsxs)(`article`,{className:`flex flex-col gap-3.5 rounded-2xl border border-dashed border-white/15 p-5`,children:[i,a,o]}),t[7]=i,t[8]=s),s}let c;t[9]!==r.ctx||t[10]!==r.parallel_slots?(c=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]=c):c=t[11];let l=c,u=!!r.capabilities?.vision||!!i,d;t[12]===n?d=t[13]:(d=(0,Z.jsx)(`span`,{className:`etikett text-[11px] tracking-[0.14em] text-text-3`,children:n}),t[12]=n,t[13]=d);let f=a?`gruen`:`grau`,p=a?`Geladen`:`Auf Abruf`,m;t[14]!==f||t[15]!==p?(m=(0,Z.jsx)(B,{art:f,children:p}),t[14]=f,t[15]=p,t[16]=m):m=t[16];let g;t[17]!==d||t[18]!==m?(g=(0,Z.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[d,m]}),t[17]=d,t[18]=m,t[19]=g):g=t[19];let _;t[20]===r.name?_=t[21]:(_=(0,Z.jsx)(`h3`,{className:`ziffern m-0 text-lg font-medium break-all`,children:r.name}),t[20]=r.name,t[21]=_);let v;t[22]===r.size_bytes?v=t[23]:(v=b(r.size_bytes),t[22]=r.size_bytes,t[23]=v);let y;t[24]===v?y=t[25]:(y=(0,Z.jsx)(rt,{name:`Größe`,wert:v}),t[24]=v,t[25]=y);let x=l?`${l}k`:`–`,S;t[26]===x?S=t[27]:(S=(0,Z.jsx)(rt,{name:`Kontext`,wert:x}),t[26]=x,t[27]=S);let C=u?`ja`:`nein`,w;t[28]===C?w=t[29]:(w=(0,Z.jsx)(rt,{name:`Bilder`,wert:C}),t[28]=C,t[29]=w);let T;t[30]!==S||t[31]!==w||t[32]!==y?(T=(0,Z.jsxs)(`dl`,{className:`m-0 grid grid-cols-3 gap-3`,children:[y,S,w]}),t[30]=S,t[31]=w,t[32]=y,t[33]=T):T=t[33];let E=r.spec_active?` Mit Draft-Beschleunigung.`:``,D=i?` Bilder sieht es über seinen Bild-Zwilling, der nur bei Bedarf lädt.`:``,O;t[34]!==o||t[35]!==E||t[36]!==D?(O=(0,Z.jsxs)(`p`,{className:`text-sm text-text-2`,children:[`Genutzt von `,o,`.`,E,D]}),t[34]=o,t[35]=E,t[36]=D,t[37]=O):O=t[37];let k;t[38]!==s||t[39]!==a||t[40]!==r.name?(k=!a&&(0,Z.jsx)(I,{variant:`outline`,size:`sm`,className:`mt-auto self-start`,onClick:()=>s.mutate(r.name),disabled:s.isPending,children:`Jetzt laden`}),t[38]=s,t[39]=a,t[40]=r.name,t[41]=k):k=t[41];let A;return t[42]!==T||t[43]!==O||t[44]!==k||t[45]!==g||t[46]!==_?(A=(0,Z.jsxs)(`article`,{className:`flex flex-col gap-3.5 flaeche rounded-2xl p-5`,children:[g,_,T,O,k]}),t[42]=T,t[43]=O,t[44]=k,t[45]=g,t[46]=_,t[47]=A):A=t[47],A}var at={bestanden:`gruen`,durchgefallen:`rot`,wartet:`cyan`,neu:`cyan`,getestet:`grau`,uebernommen:`gruen`,verworfen:`grau`},ot={besser:`text-gruen`,schlechter:`text-rot-text`,gleich:`text-text-2`};function st(e){let t=(0,Y.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,Z.jsxs)(`div`,{role:`row`,className:`etikett grid grid-cols-[minmax(0,1fr)_auto_auto] gap-x-4 pb-1 text-[10.5px] tracking-[0.14em] text-text-3`,children:[(0,Z.jsx)(`span`,{role:`columnheader`,children:`Messwert`}),(0,Z.jsx)(`span`,{role:`columnheader`,className:`text-right`,children:`Kandidat`}),(0,Z.jsx)(`span`,{role:`columnheader`,className:`text-right`,children:`Heute`})]}),t[3]=a):a=t[3],r=(0,Z.jsxs)(`div`,{role:`table`,"aria-label":`Messwerte gegen das heutige Modell`,className:`flaeche-innen rounded-xl px-3 py-2 text-sm`,children:[a,e.map(ct)]})}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 ct(e){let[t,n]=e;return(0,Z.jsxs)(`div`,{role:`row`,className:`grid grid-cols-[minmax(0,1fr)_auto_auto] gap-x-4 border-t border-white/[0.06] py-1`,children:[(0,Z.jsx)(`span`,{role:`rowheader`,className:`text-text-2`,children:t}),(0,Z.jsx)(`span`,{role:`cell`,className:`ziffern text-right ${ot[n.urteil??``]??`text-text-2`}`,children:g(n.kandidat,n.einheit)}),(0,Z.jsx)(`span`,{role:`cell`,className:`ziffern text-right text-text-3`,children:g(n.baseline,n.einheit)})]},t)}function lt(e){let t=(0,Y.c)(80),{k:n,test:r,heute:i}=e,a=y(),o=d(),[s,c]=(0,X.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),f=n.rolle===`hirn`,p;t[1]===n.name?p=t[2]:(p=(0,Z.jsx)(`span`,{className:`ziffern text-[15px] font-medium`,children:n.name}),t[1]=n.name,t[2]=p);let h=f?`fürs Hirn`:`fürs Coden`,g;t[3]===h?g=t[4]:(g=(0,Z.jsx)(B,{art:`cyan`,children:h}),t[3]=h,t[4]=g);let _;t[5]!==n.eng||t[6]!==n.groesse_gb||t[7]!==n.passt?(_=n.groesse_gb!=null&&(0,Z.jsx)(B,{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]=_):_=t[8];let v=at[n.status]??`grau`,b=m[n.status]??n.status,x;t[9]!==v||t[10]!==b?(x=(0,Z.jsx)(B,{art:v,children:b}),t[9]=v,t[10]=b,t[11]=x):x=t[11];let S;t[12]!==p||t[13]!==g||t[14]!==_||t[15]!==x?(S=(0,Z.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[p,g,_,x]}),t[12]=p,t[13]=g,t[14]=_,t[15]=x,t[16]=S):S=t[16];let C;t[17]===n.groesse_gb?C=t[18]:(C=n.groesse_gb==null?``:`${n.groesse_gb.toLocaleString(`de-DE`)} GB. `,t[17]=n.groesse_gb,t[18]=C);let w;t[19]!==n.begruendung||t[20]!==C?(w=(0,Z.jsxs)(`p`,{className:`text-sm text-text-2`,children:[C,n.begruendung]}),t[19]=n.begruendung,t[20]=C,t[21]=w):w=t[21];let T;t[22]!==n.status||t[23]!==r?(T=r&&[`bestanden`,`durchgefallen`].includes(n.status)&&(0,Z.jsx)(st,{test:r}),t[22]=n.status,t[23]=r,t[24]=T):T=t[24];let E;t[25]!==n.begruendung||t[26]!==n.testbar_grund?(E=n.testbar_grund&&!n.begruendung.startsWith(`Läuft gerade`)&&(0,Z.jsx)(`p`,{className:`text-xs text-text-3`,children:n.testbar_grund}),t[25]=n.begruendung,t[26]=n.testbar_grund,t[27]=E):E=t[27];let D;t[28]!==a.isPending||t[29]!==n.status||t[30]!==n.testbar_jetzt||t[31]!==u||t[32]!==o.isPending?(D=u&&(0,Z.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[n.testbar_jetzt&&(0,Z.jsx)(I,{variant:`info`,size:`sm`,disabled:o.isPending,onClick:()=>c(`testen`),children:`Jetzt testen`}),n.status===`bestanden`&&(0,Z.jsx)(I,{size:`sm`,disabled:a.isPending,onClick:()=>c(`uebernehmen`),children:`Übernehmen`}),(0,Z.jsx)(I,{variant:`outline`,size:`sm`,disabled:a.isPending,onClick:()=>c(`verwerfen`),children:`Verwerfen`})]}),t[28]=a.isPending,t[29]=n.status,t[30]=n.testbar_jetzt,t[31]=u,t[32]=o.isPending,t[33]=D):D=t[33];let O=s===`uebernehmen`,k=`${n.name} übernehmen?`,A=f?`${n.name} wird Lucys Hirn${i?` und löst ${i} 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${i?` und löst ${i} ab`:``}. OpenChamber plant und baut ab dann damit. Das alte Modell bleibt auf der Platte.`,j;t[34]===Symbol.for(`react.memo_cache_sentinel`)?(j=()=>c(null),t[34]=j):j=t[34];let M;t[35]!==a||t[36]!==s||t[37]!==n.id||t[38]!==n.name?(M=()=>{s===`uebernehmen`&&(a.mutate({id:n.id,aktion:`uebernehmen`,name:n.name}),c(null))},t[35]=a,t[36]=s,t[37]=n.id,t[38]=n.name,t[39]=M):M=t[39];let N;t[40]!==a.isPending||t[41]!==O||t[42]!==k||t[43]!==A||t[44]!==M?(N=(0,Z.jsx)(H,{offen:O,titel:k,text:A,knopf:`Übernehmen`,gesperrt:a.isPending,onNein:j,onJa:M}),t[40]=a.isPending,t[41]=O,t[42]=k,t[43]=A,t[44]=M,t[45]=N):N=t[45];let P=s===`testen`,F=`${n.name} jetzt testen?`,L;t[46]===n.groesse_gb?L=t[47]:(L=n.groesse_gb==null?``:` (${n.groesse_gb.toLocaleString(`de-DE`)} GB)`,t[46]=n.groesse_gb,t[47]=L);let R=`Das Radar lädt ${n.name}${L} herunter, falls nötig, misst das heutige Modell der Rolle und dann den Kandidaten. Das dauert je nach Download eine halbe bis zwei Stunden. Solange antworten Lucy und NerdQuiz etwas langsamer; ein geladener Coder wird dafür entladen, und wird er währenddessen gebraucht, bricht der Test ab. Das Ergebnis kommt als Meldung; fällt der Kandidat durch, werden seine Dateien gelöscht.`,z;t[48]===Symbol.for(`react.memo_cache_sentinel`)?(z=()=>c(null),t[48]=z):z=t[48];let V;t[49]!==s||t[50]!==n.id||t[51]!==n.name||t[52]!==o?(V=()=>{s===`testen`&&(o.mutate({id:n.id,name:n.name}),c(null))},t[49]=s,t[50]=n.id,t[51]=n.name,t[52]=o,t[53]=V):V=t[53];let U;t[54]!==P||t[55]!==F||t[56]!==R||t[57]!==V||t[58]!==o.isPending?(U=(0,Z.jsx)(H,{offen:P,titel:F,text:R,knopf:`Jetzt testen`,gesperrt:o.isPending,onNein:z,onJa:V}),t[54]=P,t[55]=F,t[56]=R,t[57]=V,t[58]=o.isPending,t[59]=U):U=t[59];let W=s===`verwerfen`,G=`${n.name} verwerfen?`,ee;t[60]===Symbol.for(`react.memo_cache_sentinel`)?(ee=()=>c(null),t[60]=ee):ee=t[60];let te;t[61]!==a||t[62]!==s||t[63]!==n.id||t[64]!==n.name?(te=()=>{s===`verwerfen`&&(a.mutate({id:n.id,aktion:`verwerfen`,name:n.name}),c(null))},t[61]=a,t[62]=s,t[63]=n.id,t[64]=n.name,t[65]=te):te=t[65];let K;t[66]!==a.isPending||t[67]!==W||t[68]!==G||t[69]!==te?(K=(0,Z.jsx)(H,{offen:W,gefahr:!0,titel:G,text:`Die heruntergeladenen Dateien werden gelöscht, und das Radar testet dieses Modell nicht noch einmal.`,knopf:`Verwerfen`,gesperrt:a.isPending,onNein:ee,onJa:te}),t[66]=a.isPending,t[67]=W,t[68]=G,t[69]=te,t[70]=K):K=t[70];let ne;return t[71]!==w||t[72]!==T||t[73]!==E||t[74]!==D||t[75]!==N||t[76]!==U||t[77]!==K||t[78]!==S?(ne=(0,Z.jsxs)(`li`,{className:`flex flex-col gap-2 border-t border-white/[0.06] py-3.5`,children:[S,w,T,E,D,N,U,K]}),t[71]=w,t[72]=T,t[73]=E,t[74]=D,t[75]=N,t[76]=U,t[77]=K,t[78]=S,t[79]=ne):ne=t[79],ne}function ut(e){let t=(0,Y.c)(30),{hirn:n,coder:r}=e,i=u(),a=l(),o=E(),s=k(),c=o.data?.jobs,d=(c??[]).filter(ft).at(-1),m=a.data?.job_id,h;t[0]!==m||t[1]!==c?(h=!!m&&!!c&&!c.some(e=>e.id===m),t[0]=m,t[1]=c,t[2]=h):h=t[2];let g=h,_=a.isPending||g||d!==void 0&&p(d),v=(0,X.useRef)(_);if((0,X.useEffect)(()=>{v.current&&!_&&s.invalidateQueries({queryKey:[`radar`]}),v.current=_},[_,s]),i.isError&&!i.data){let e=i.error instanceof f&&i.error.status===404,n;return t[3]!==e||t[4]!==i.error?(n=(0,Z.jsx)(U,{titel:`Modell-Radar`,id:`radar`,className:`scroll-mt-4`,children:e?(0,Z.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Das Radar ist auf dieser Box noch nicht eingerichtet.`}):(0,Z.jsxs)(`p`,{role:`alert`,className:`text-[15px] text-rot-text`,children:[`Das Radar antwortet gerade nicht: `,i.error.message]})}),t[3]=e,t[4]=i.error,t[5]=n):n=t[5],n}let y=i.data,b=U,x;t[6]===a?x=t[7]:(x=()=>a.mutate(void 0),t[6]=a,t[7]=x);let S=_?`Sucht …`:`Jetzt suchen`,C;t[8]!==_||t[9]!==x||t[10]!==S?(C=(0,Z.jsx)(I,{variant:`info`,size:`sm`,onClick:x,disabled:_,children:S}),t[8]=_,t[9]=x,t[10]=S,t[11]=C):C=t[11];let T;t[12]===y?T=t[13]:(T=y?.naechster_test?` Nächster Test: ${w(y.naechster_test)}.`:``,t[12]=y,t[13]=T);let D=_?` Sucht gerade bei Hugging Face. Das dauert ein paar Minuten; den Stand zeigt der Auftrag oben unter „Aufträge“.`:``,O;t[14]!==T||t[15]!==D?(O=(0,Z.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. Tagsüber geht es mit „Jetzt testen“, wenn der Kandidat samt Coder in den Speicher passt.`,T,D]}),t[14]=T,t[15]=D,t[16]=O):O=t[16];let A=!_&&d?.state===`failed`&&(0,Z.jsxs)(`p`,{role:`alert`,className:`text-sm text-rot-text`,children:[`Die letzte Suche ist gescheitert: `,re(d)??`ohne Meldung`]}),j;t[17]!==r||t[18]!==y||t[19]!==n?(j=y?y.kandidaten.length===0?(0,Z.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Nichts Besseres in Sicht.`}):(0,Z.jsx)(`ul`,{className:`m-0 flex list-none flex-col p-0`,children:y.kandidaten.map(e=>(0,Z.jsx)(lt,{k:e,test:y.tests.find(t=>t.kandidat===e.id),heute:e.rolle===`hirn`?n:r},e.id))}):(0,Z.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Wird gelesen …`}),t[17]=r,t[18]=y,t[19]=n,t[20]=j):j=t[20];let M;t[21]===y?M=t[22]:(M=y&&y.tests.length>0&&(0,Z.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,Z.jsx)(`h3`,{className:`etikett text-[10.5px] tracking-[0.12em] text-text-3`,children:`Letzte Tests`}),y.tests.slice(0,3).map(dt)]}),t[21]=y,t[22]=M);let N;return t[23]!==b||t[24]!==O||t[25]!==A||t[26]!==j||t[27]!==M||t[28]!==C?(N=(0,Z.jsxs)(b,{titel:`Modell-Radar`,id:`radar`,className:`scroll-mt-4`,rechts:C,children:[O,A,j,M]}),t[23]=b,t[24]=O,t[25]=A,t[26]=j,t[27]=M,t[28]=C,t[29]=N):N=t[29],N}function dt(e){return(0,Z.jsxs)(`p`,{className:`text-sm text-text-2`,children:[(0,Z.jsx)(`span`,{className:`ziffern text-text-3`,children:w(e.datum)}),` · `,e.zusammenfassung]},e.id)}function ft(e){return e.group===`radar`}var pt=`text-rot-text hover:bg-rot-grund hover:text-rot-text`;function mt(e){let t=(0,Y.c)(13),{titel:n,zusatz:r,children:i}=e,a;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,Z.jsx)(F,{className:`size-4 text-text-3 transition-transform group-open:rotate-90`,"aria-hidden":!0}),t[0]=a):a=t[0];let o;t[1]===n?o=t[2]:(o=(0,Z.jsxs)(`span`,{className:`flex items-center gap-2 text-[15px] font-medium`,children:[a,n]}),t[1]=n,t[2]=o);let s;t[3]===r?s=t[4]:(s=(0,Z.jsx)(`span`,{className:`ziffern text-sm text-text-2`,children:r}),t[3]=r,t[4]=s);let c;t[5]!==o||t[6]!==s?(c=(0,Z.jsxs)(`summary`,{className:`flex min-h-12 cursor-pointer list-none items-center justify-between gap-3 [&::-webkit-details-marker]:hidden`,children:[o,s]}),t[5]=o,t[6]=s,t[7]=c):c=t[7];let l;t[8]===i?l=t[9]:(l=(0,Z.jsx)(`div`,{className:`flex flex-col gap-2 pb-1`,children:i}),t[8]=i,t[9]=l);let u;return t[10]!==c||t[11]!==l?(u=(0,Z.jsxs)(`details`,{className:`group flaeche-innen rounded-2xl px-4 open:pb-2`,children:[c,l]}),t[10]=c,t[11]=l,t[12]=u):u=t[12],u}function ht(){let e=(0,Y.c)(37),t=S(),n=D(),[r,i]=(0,X.useState)(null),a,o,s,c,l,u;if(e[0]!==t.data||e[1]!==t.error||e[2]!==t.isError||e[3]!==t.isPending||e[4]!==n){u=Symbol.for(`react.early_return_sentinel`);bb0:{let r=t.data?.kandidaten??[],d=r.reduce(gt,0);if(t.isError&&!t.data){let n;e[11]===t.error.message?n=e[12]:(n=(0,Z.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[11]=t.error.message,e[12]=n);let r;e[13]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,Z.jsx)(vt,{}),e[13]=r):r=e[13];let i;e[14]===n?i=e[15]:(i=(0,Z.jsxs)(U,{titel:`Aufräumen`,children:[n,r]}),e[14]=n,e[15]=i),u=i;break bb0}a=U,o=`Aufräumen`,s=r.length>0?(0,Z.jsxs)(`span`,{className:`ziffern text-sm text-text-2`,children:[`bis zu `,d.toLocaleString(`de-DE`,{maximumFractionDigits:0}),` GB frei`]}):void 0,e[16]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,Z.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[16]=c):c=e[16],l=t.isPending?(0,Z.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Wird gelesen …`}):r.length===0?(0,Z.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Nichts aufzuräumen.`}):(0,Z.jsx)(mt,{titel:`Modelle und Ordner`,zusatz:`${r.length} Einträge · bis zu ${d.toLocaleString(`de-DE`,{maximumFractionDigits:0})} GB`,children:(0,Z.jsx)(`ul`,{className:`m-0 flex list-none flex-col p-0`,children:r.map(e=>(0,Z.jsxs)(`li`,{className:`flex flex-wrap items-center justify-between gap-3 border-t border-white/[0.06] py-3`,children:[(0,Z.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col gap-1`,children:[(0,Z.jsxs)(`span`,{className:`flex flex-wrap items-center gap-2`,children:[(0,Z.jsx)(`span`,{className:`ziffern text-sm break-all`,children:e.name}),(0,Z.jsx)(B,{children:e.art===`eintrag`?`Eintrag`:`Ordner`})]}),(0,Z.jsx)(`span`,{className:`text-sm text-text-2`,children:e.hinweis})]}),(0,Z.jsxs)(`span`,{className:`flex items-center gap-3`,children:[(0,Z.jsxs)(`span`,{className:`ziffern text-sm text-text-2`,children:[e.groesse_gb.toLocaleString(`de-DE`),` GB`]}),(0,Z.jsx)(I,{variant:`ghost`,size:`sm`,className:pt,disabled:n.isPending,onClick:()=>i(e),children:`Löschen`})]})]},`${e.art}-${e.name}`))})})}e[0]=t.data,e[1]=t.error,e[2]=t.isError,e[3]=t.isPending,e[4]=n,e[5]=a,e[6]=o,e[7]=s,e[8]=c,e[9]=l,e[10]=u}else a=e[5],o=e[6],s=e[7],c=e[8],l=e[9],u=e[10];if(u!==Symbol.for(`react.early_return_sentinel`))return u;let d=r!==null,f=`${r?.name??``} löschen?`,p;e[17]===r?.groesse_gb?p=e[18]:(p=r?.groesse_gb.toLocaleString(`de-DE`)??``,e[17]=r?.groesse_gb,e[18]=p);let m=`${r?.hinweis??``} Es werden ${p} GB frei. Das lässt sich nicht rückgängig machen — zurück ginge es nur mit einem neuen Download.`,h;e[19]===Symbol.for(`react.memo_cache_sentinel`)?(h=()=>i(null),e[19]=h):h=e[19];let g;e[20]!==r||e[21]!==n?(g=()=>{r&&n.mutate(r),i(null)},e[20]=r,e[21]=n,e[22]=g):g=e[22];let _;e[23]!==n.isPending||e[24]!==g||e[25]!==d||e[26]!==f||e[27]!==m?(_=(0,Z.jsx)(H,{offen:d,gefahr:!0,titel:f,text:m,knopf:`Endgültig löschen`,gesperrt:n.isPending,onNein:h,onJa:g}),e[23]=n.isPending,e[24]=g,e[25]=d,e[26]=f,e[27]=m,e[28]=_):_=e[28];let v;e[29]===Symbol.for(`react.memo_cache_sentinel`)?(v=(0,Z.jsx)(vt,{}),e[29]=v):v=e[29];let y;return e[30]!==a||e[31]!==o||e[32]!==s||e[33]!==_||e[34]!==c||e[35]!==l?(y=(0,Z.jsxs)(a,{titel:o,rechts:s,children:[c,l,_,v]}),e[30]=a,e[31]=o,e[32]=s,e[33]=_,e[34]=c,e[35]=l,e[36]=y):y=e[36],y}function gt(e,t){return e+t.groesse_gb}function _t(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 vt(){let e=(0,Y.c)(23),t=x(),n=T(),[r,i]=(0,X.useState)(null),a,o;if(e[0]!==t.data||e[1]!==t.error||e[2]!==t.isError||e[3]!==t.isPending||e[4]!==n.isPending){let r=t.data?.altreste??[],s=r.reduce(yt,0);a=`flex flex-col gap-2`,o=t.isPending?(0,Z.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Wird gelesen …`}):t.isError&&!t.data?(0,Z.jsxs)(`p`,{role:`alert`,className:`text-[15px] text-rot-text`,children:[`Die Altreste lassen sich gerade nicht lesen: `,t.error.message]}):r.length===0?(0,Z.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Keine Altreste mehr.`}):(0,Z.jsxs)(mt,{titel:`Altreste neben dem Betrieb`,zusatz:`${r.length} Einträge · ${_t(s)}`,children:[(0,Z.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.`}),(0,Z.jsx)(`ul`,{className:`m-0 flex list-none flex-col p-0`,children:r.map(e=>(0,Z.jsxs)(`li`,{className:`flex flex-wrap items-center justify-between gap-3 border-t border-white/[0.06] py-3`,children:[(0,Z.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col gap-1`,children:[(0,Z.jsxs)(`span`,{className:`flex flex-wrap items-center gap-2`,children:[(0,Z.jsx)(`span`,{className:`text-sm`,children:e.name}),(0,Z.jsx)(B,{children:`Altrest`})]}),(0,Z.jsx)(`span`,{className:`ziffern text-xs break-all text-text-3`,children:e.pfade.join(` · `)}),(0,Z.jsx)(`span`,{className:`text-sm text-text-2`,children:e.hinweis})]}),(0,Z.jsxs)(`span`,{className:`flex items-center gap-3`,children:[(0,Z.jsx)(`span`,{className:`ziffern text-sm text-text-2`,children:e.groesse}),(0,Z.jsx)(I,{variant:`ghost`,size:`sm`,className:pt,disabled:n.isPending,onClick:()=>i(e),children:`Löschen`})]})]},e.id))})]}),e[0]=t.data,e[1]=t.error,e[2]=t.isError,e[3]=t.isPending,e[4]=n.isPending,e[5]=a,e[6]=o}else a=e[5],o=e[6];let s=r!==null,c=`${r?.name??``} löschen?`,l;e[7]===r?.pfade?l=e[8]:(l=r?.pfade.join(`, `)??``,e[7]=r?.pfade,e[8]=l);let u=`${r?.hinweis??``} Gelöscht wird: ${l} (${r?.groesse??``}). Das lässt sich nicht rückgängig machen.`,d;e[9]===Symbol.for(`react.memo_cache_sentinel`)?(d=()=>i(null),e[9]=d):d=e[9];let f;e[10]!==r||e[11]!==n?(f=()=>{r&&n.mutate(r),i(null)},e[10]=r,e[11]=n,e[12]=f):f=e[12];let p;e[13]!==n.isPending||e[14]!==s||e[15]!==c||e[16]!==u||e[17]!==f?(p=(0,Z.jsx)(H,{offen:s,gefahr:!0,titel:c,text:u,knopf:`Endgültig löschen`,gesperrt:n.isPending,onNein:d,onJa:f}),e[13]=n.isPending,e[14]=s,e[15]=c,e[16]=u,e[17]=f,e[18]=p):p=e[18];let m;return e[19]!==a||e[20]!==o||e[21]!==p?(m=(0,Z.jsxs)(`div`,{className:a,children:[o,p]}),e[19]=a,e[20]=o,e[21]=p,e[22]=m):m=e[22],m}function yt(e,t){return e+t.groesse_bytes}function bt(){let e=(0,Y.c)(69),t=s(),n=j(),r=u(),i=E(),[a,o]=(0,X.useState)(!1),c;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(c={select:wt},e[0]=c):c=e[0];let l=oe(c),d=!!t.data&&!n.isPending&&!r.isPending&&!i.isPending,f,p;if(e[1]!==d||e[2]!==l?(f=()=>{d&&l===`radar`&&document.getElementById(`radar`)?.scrollIntoView({block:`start`})},p=[d,l],e[1]=d,e[2]=l,e[3]=f,e[4]=p):(f=e[3],p=e[4]),(0,X.useEffect)(f,p),t.isPending){let t;return e[5]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,Z.jsx)(R,{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,Z.jsx)(R,{fehler:!0,text:n}),e[6]=n,e[7]=r),r}let m=t.data.models,h=t.data.running,g,_,v,y,x,S,C,T,D,O,k,A,M;if(e[8]!==h||e[9]!==m||e[10]!==n.data||e[11]!==n.error?.message||e[12]!==n.isPending){let t=m.find(Ct);_=m.find(St);let r;e[26]===m?r=e[27]:(r=(e,t)=>e?m.find(n=>n!==e&&n.aliases.includes(t)&&n.filename===e.filename):void 0,e[26]=m,e[27]=r);let i=r,a=i(t,`vision`);v=i(_,`coder-bild`);let s=m.filter(e=>![t,_,a,v].includes(e)),c;e[28]===n.data?.zuletzt_geladen?c=e[29]:(c=n.data?.zuletzt_geladen??{},e[28]=n.data?.zuletzt_geladen,e[29]=c);let l=c,u={};for(let[e,n]of[[t,`Hirn`],[_,`Coder`],[a,`Bild-Zwilling des Hirns`],[v,`Bild-Zwilling des Coders`]])e&&(u[e.name]=n);e[30]!==h||e[31]!==m?(A=(0,Z.jsx)(tt,{modelle:m,laufend:h}),e[30]=h,e[31]=m,e[32]=A):A=e[32],e[33]===Symbol.for(`react.memo_cache_sentinel`)?(M=(0,Z.jsx)(q,{alsPanel:!0}),e[33]=M):M=e[33];let d;e[34]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,Z.jsx)(it,{titel:`Dritte Rolle`,laeuft:!1,nutzer:``}),e[34]=d):d=e[34],y=(0,Z.jsxs)(`section`,{"aria-label":`Rollen`,className:`grid gap-5 md:grid-cols-3 md:gap-6`,children:[(0,Z.jsx)(it,{titel:`Hirn`,modell:t,zwilling:a,laeuft:!!t&&h.includes(t.name),nutzer:`Lucy, NerdQuiz und OpenChamber für Kleinkram`}),(0,Z.jsx)(it,{titel:`Coder`,modell:_,zwilling:v,laeuft:!!_&&h.includes(_.name),nutzer:`OpenChamber zum Planen und Bauen und Lucys Delegation`}),d]}),x=(0,Z.jsx)(Ye,{nutzung:n.data,laedt:n.isPending,fehler:n.error?.message??null,rollen:u});let f=t?.name,p=_?.name;e[35]!==f||e[36]!==p?(S=(0,Z.jsx)(ut,{hirn:f,coder:p}),e[35]=f,e[36]=p,e[37]=S):S=e[37],g=U,D=`Weitere Einträge`,e[38]===Symbol.for(`react.memo_cache_sentinel`)?(O=(0,Z.jsxs)(I,{variant:`outline`,size:`sm`,onClick:()=>o(!0),children:[(0,Z.jsx)(V,{"aria-hidden":!0}),` Modelle selbst suchen`]}),e[38]=O):O=e[38],k=s.length===0&&(0,Z.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Keine weiteren Einträge.`}),C=`m-0 flex list-none flex-col p-0`;let E;e[39]!==h||e[40]!==l?(E=e=>(0,Z.jsxs)(`li`,{className:`grid grid-cols-[minmax(0,1fr)_auto] items-center gap-3 border-t border-white/[0.06] py-2.5 sm:grid-cols-[minmax(0,1fr)_120px_160px]`,children:[(0,Z.jsxs)(`span`,{className:`min-w-0`,children:[(0,Z.jsx)(`span`,{className:`ziffern block text-sm break-all`,children:e.name}),(0,Z.jsx)(`span`,{className:`text-xs text-text-3`,children:e.aliases.length?e.aliases.join(`, `):`ohne Rolle`})]}),(0,Z.jsx)(`span`,{className:`ziffern text-sm text-text-2`,children:b(e.size_bytes)}),(0,Z.jsx)(`span`,{className:`ziffern hidden text-xs text-text-3 sm:block`,children:h.includes(e.name)?`geladen`:l[e.name]?`zuletzt ${w(l[e.name])}`:`länger nicht geladen`})]},e.name),e[39]=h,e[40]=l,e[41]=E):E=e[41],T=s.map(E),e[8]=h,e[9]=m,e[10]=n.data,e[11]=n.error?.message,e[12]=n.isPending,e[13]=g,e[14]=_,e[15]=v,e[16]=y,e[17]=x,e[18]=S,e[19]=C,e[20]=T,e[21]=D,e[22]=O,e[23]=k,e[24]=A,e[25]=M}else g=e[13],_=e[14],v=e[15],y=e[16],x=e[17],S=e[18],C=e[19],T=e[20],D=e[21],O=e[22],k=e[23],A=e[24],M=e[25];let N;e[42]!==C||e[43]!==T?(N=(0,Z.jsx)(`ul`,{className:C,children:T}),e[42]=C,e[43]=T,e[44]=N):N=e[44];let P;e[45]!==g||e[46]!==N||e[47]!==D||e[48]!==O||e[49]!==k?(P=(0,Z.jsxs)(g,{titel:D,rechts:O,children:[k,N]}),e[45]=g,e[46]=N,e[47]=D,e[48]=O,e[49]=k,e[50]=P):P=e[50];let F;e[51]===Symbol.for(`react.memo_cache_sentinel`)?(F=(0,Z.jsx)(ht,{}),e[51]=F):F=e[51];let L;e[52]===Symbol.for(`react.memo_cache_sentinel`)?(L=()=>o(!1),e[52]=L):L=e[52];let z;e[53]!==_||e[54]!==v?(z=_?{name:_.name,zwilling:!!v,weitere:_.aliases.filter(xt)}:void 0,e[53]=_,e[54]=v,e[55]=z):z=e[55];let B;e[56]===z?B=e[57]:(B={coder:z},e[56]=z,e[57]=B);let H;e[58]!==a||e[59]!==B?(H=(0,Z.jsx)(Ze,{offen:a,onSchliessen:L,rollenJetzt:B}),e[58]=a,e[59]=B,e[60]=H):H=e[60];let W;return e[61]!==y||e[62]!==x||e[63]!==S||e[64]!==P||e[65]!==H||e[66]!==A||e[67]!==M?(W=(0,Z.jsxs)(Z.Fragment,{children:[A,M,y,x,S,P,F,H]}),e[61]=y,e[62]=x,e[63]=S,e[64]=P,e[65]=H,e[66]=A,e[67]=M,e[68]=W):W=e[68],W}function xt(e){return e.toLowerCase()!==`coder`}function St(e){return c(e)===`coder`}function Ct(e){return c(e)===`hirn`}function wt(e){return e.hash}export{lt as Kandidat,bt as ModelleSeite}; \ No newline at end of file diff --git a/frontend/dist/assets/Modelle-Dr0cwO5E.js b/frontend/dist/assets/Modelle-Dr0cwO5E.js deleted file mode 100644 index 32d7d93..0000000 --- a/frontend/dist/assets/Modelle-Dr0cwO5E.js +++ /dev/null @@ -1 +0,0 @@ -import{a as e,c as t,i as n,r,t as i}from"./dist-aE7UmubC.js";import{B as a,E as o,Et as s,Jt as c,L as l,M as u,N as d,Ot as f,Q as p,Tt as m,U as h,V as g,W as _,a as v,c as y,ct as b,ft as x,i as S,j as C,jt as w,kt as T,l as E,ot as D,pt as O,st as k,wt as A,yt as j}from"./abfragen-DKcWnZ8a.js";import{n as M,t as N}from"./useSelector-DBNxxw17.js";import{n as P}from"./useMatch-DDVpPKJI.js";import{t as F}from"./chevron-right-DF8ikrVh.js";import{M as I,N as L,et as R,g as z,h as B,m as V}from"./index-BUHDF9RN.js";import{t as H}from"./button-DwYvdWVr.js";import{a as ee,i as te,n as U,r as W,t as G}from"./sheet-Dx0TG2uq.js";import{t as ne}from"./Bestaetigen-BemBWZzN.js";import{t as K}from"./Panel-uT1S5ZGr.js";import{a as re,r as ie,s as ae,t as q}from"./Auftraege-AvxzcTvv.js";import{t as J}from"./breite-k-QN6GPl.js";function oe(e){let t=M();return N(t.stores.location,P(e,t))}var Y=r(),X=t(e(),1),Z=n(),Q=new Intl.NumberFormat(`de-DE`),se=240,ce=24,le={ArrowLeft:e=>Math.max(0,e-1),ArrowRight:(e,t)=>Math.min(t-1,e+1),Home:()=>0,End:(e,t)=>t-1};function ue(e){let t=(0,Y.c)(20),{saeule:n,reihen:r,summe:a,className:o,links:s}=e,c;t[0]===o?c=t[1]:(c=i(`flex flex-col gap-1 rounded-xl border border-white/12 bg-white/[0.04] px-3 py-2`,o),t[0]=o,t[1]=c);let l;t[2]===s?l=t[3]:(l=s===void 0?void 0:{left:s},t[2]=s,t[3]=l);let u;t[4]===n.lang?u=t[5]:(u=(0,Z.jsx)(`span`,{className:`ziffern text-xs text-text-3`,children:n.lang}),t[4]=n.lang,t[5]=u);let d;if(t[6]!==r||t[7]!==n.werte){let e;t[9]===n.werte?e=t[10]:(e=e=>(0,Z.jsxs)(`span`,{className:`flex items-baseline gap-2 text-sm`,children:[(0,Z.jsx)(`span`,{"aria-hidden":!0,className:`h-0.5 w-3 shrink-0 self-center rounded-full`,style:{background:e.farbe}}),(0,Z.jsx)(`span`,{className:`ziffern font-semibold text-foreground`,children:Q.format(n.werte[e.name]??0)}),(0,Z.jsx)(`span`,{className:`min-w-0 text-text-3`,children:e.name})]},e.name),t[9]=n.werte,t[10]=e),d=r.map(e),t[6]=r,t[7]=n.werte,t[8]=d}else d=t[8];let f;t[11]!==r.length||t[12]!==a?(f=r.length>1&&(0,Z.jsxs)(`span`,{className:`flex items-baseline gap-2 border-t border-white/[0.06] pt-1 text-sm`,children:[(0,Z.jsx)(`span`,{className:`ziffern font-semibold text-foreground`,children:Q.format(a)}),(0,Z.jsx)(`span`,{className:`text-text-3`,children:`zusammen`})]}),t[11]=r.length,t[12]=a,t[13]=f):f=t[13];let p;return t[14]!==c||t[15]!==l||t[16]!==u||t[17]!==d||t[18]!==f?(p=(0,Z.jsxs)(`div`,{role:`status`,className:c,style:l,children:[u,d,f]}),t[14]=c,t[15]=l,t[16]=u,t[17]=d,t[18]=f,t[19]=p):p=t[19],p}function de(e){let t=(0,Y.c)(92),{saeulen:n,reihen:r,titel:a,summen:o,hoehe:s,spalte:c}=e,l=o===void 0?`alle`:o,u=s===void 0?200:s,d=c===void 0?`Zeitraum`:c,[f,p]=J(),[m,h]=(0,X.useState)(null),g=n.length,_,v,y,b,x,S,C,w,T,E;if(t[0]!==p||t[1]!==u||t[2]!==m||t[3]!==g||t[4]!==f||t[5]!==r||t[6]!==n||t[7]!==d||t[8]!==l||t[9]!==a){let e;t[20]===n?e=t[21]:(e=e=>n.some(t=>(t.werte[e.name]??0)>0),t[20]=n,t[21]=e);let o=r.filter(e),s=n.map(e=>o.reduce((t,n)=>t+(e.werte[n.name]??0),0)),c=Math.max(0,...s),D=z(c),O=D[D.length-1],k;t[22]===O?k=t[23]:(k=Q.format(O),t[22]=O,t[23]=k);let A=Math.max(28,k.length*7+12),j=n.some(ge)?34:22,M;t[24]!==A||t[25]!==j?(M={links:A,rechts:4,oben:20,unten:j},t[24]=A,t[25]=j,t[26]=M):M=t[26];let N=M,P=Math.max(1,p-N.links-N.rechts),F=u-N.oben-N.unten,I=P/Math.max(1,g),L=Math.min(ce,Math.max(3,I*.72)),R;t[27]!==F||t[28]!==O||t[29]!==N.oben?(R=e=>N.oben+F-e/O*F,t[27]=F,t[28]=O,t[29]=N.oben,t[30]=R):R=t[30];let H=R,ee=N.oben+F,te;t[31]!==I||t[32]!==N.links?(te=e=>N.links+(e+.5)*I,t[31]=I,t[32]=N.links,t[33]=te):te=t[33];let U=te,W;t[34]===n?W=t[35]:(W=Math.max(1,...n.map(he)),t[34]=n,t[35]=W);let G=W*6.6+8,ne;t[36]!==I||t[37]!==G?(ne=[1,3,6,12].find(e=>e*I>=G)??24,t[36]=I,t[37]=G,t[38]=ne):ne=t[38];let K=ne,re=s.indexOf(c),ie=I<34,ae;t[39]===g?ae=t[40]:(ae=function(e){if(g===0)return;let t=e.currentTarget.getBoundingClientRect();h(Math.min(g-1,Math.max(0,Math.floor((e.clientX-t.left)/t.width*g))))},t[39]=g,t[40]=ae);let q=ae,J;t[41]===g?J=t[42]:(J=function(e){let t=le[e.key];g!==0&&t&&(e.preventDefault(),h(e=>t(e??g-1,g)))},t[41]=g,t[42]=J);let oe=J,Y=m===null?void 0:n[m],X=p>=360,de=m===null?0:Math.max(0,Math.min(p-se,U(m)+12+se>p?U(m)-12-se:U(m)+12));_=`flex flex-col gap-2`,v=o.length>1&&(0,Z.jsx)(`ul`,{className:`m-0 flex list-none flex-wrap gap-x-4 gap-y-1 p-0 text-sm text-text-2`,"aria-label":`Legende`,children:o.map(me)});let _e;t[43]===g?_e=t[44]:(_e=()=>h(e=>e??(g?g-1:null)),t[43]=g,t[44]=_e);let ve;t[45]===Symbol.for(`react.memo_cache_sentinel`)?(ve=()=>h(null),t[45]=ve):ve=t[45];let ye;t[46]!==Y||t[47]!==I||t[48]!==m||t[49]!==F||t[50]!==N.links||t[51]!==N.oben?(ye=Y&&m!==null&&(0,Z.jsx)(`rect`,{x:N.links+m*I,y:N.oben-4,width:I,height:F+4,rx:4,fill:`var(--erhaben)`}),t[46]=Y,t[47]=I,t[48]=m,t[49]=F,t[50]=N.links,t[51]=N.oben,t[52]=ye):ye=t[52];let be;t[53]!==p||t[54]!==N.links||t[55]!==N.rechts||t[56]!==H?(be=e=>(0,Z.jsxs)(`g`,{children:[(0,Z.jsx)(`line`,{x1:N.links,x2:p-N.rechts,y1:H(e),y2:H(e),strokeWidth:1,stroke:e===0?`var(--linie-stark)`:`var(--linie)`}),(0,Z.jsx)(`text`,{x:N.links-8,y:H(e)+4,textAnchor:`end`,className:`fill-text-3 font-mono text-[11px]`,children:Q.format(e)})]},e),t[53]=p,t[54]=N.links,t[55]=N.rechts,t[56]=H,t[57]=be):be=t[57];let xe;t[58]!==P||t[59]!==F||t[60]!==c||t[61]!==N.links||t[62]!==N.oben?(xe=c===0&&(0,Z.jsx)(`text`,{x:N.links+P/2,y:N.oben+F/2,textAnchor:`middle`,className:`fill-text-3 text-sm`,children:`Keine Anfragen in diesem Zeitraum`}),t[58]=P,t[59]=F,t[60]=c,t[61]=N.links,t[62]=N.oben,t[63]=xe):xe=t[63];let Se;t[64]===Symbol.for(`react.memo_cache_sentinel`)?(Se=e=>{e.pointerType!==`touch`&&h(null)},t[64]=Se):Se=t[64];let Ce;t[65]!==u||t[66]!==P||t[67]!==N.links||t[68]!==q?(Ce=(0,Z.jsx)(`rect`,{x:N.links,y:0,width:P,height:u,fill:`transparent`,onPointerMove:q,onPointerDown:q,onPointerLeave:Se}),t[65]=u,t[66]=P,t[67]=N.links,t[68]=q,t[69]=Ce):Ce=t[69],y=(0,Z.jsxs)(`div`,{ref:f,className:`relative w-full`,children:[(0,Z.jsxs)(`svg`,{width:p,height:u,viewBox:`0 0 ${p} ${u}`,role:`img`,"aria-label":a,tabIndex:0,onKeyDown:oe,onFocus:_e,onBlur:ve,className:`block h-auto max-w-full outline-none focus-visible:rounded-md focus-visible:ring-2 focus-visible:ring-cyan/60`,children:[ye,D.map(be),n.map((e,t)=>{let n=U(t)-L/2;return(0,Z.jsxs)(`g`,{children:[B(o.map(t=>e.werte[t.name]??0),H).filter(pe).map(e=>e.oben?(0,Z.jsx)(`path`,{d:V(n,e.y,L,e.hoehe),fill:o[e.index].farbe},e.index):(0,Z.jsx)(`rect`,{x:n,y:e.y,width:L,height:e.hoehe,fill:o[e.index].farbe},e.index)),s[t]>0&&(l===`alle`||t===re)&&(0,Z.jsx)(`text`,{x:U(t),y:H(s[t])-6,textAnchor:`middle`,className:i(`fill-text-2 font-mono`,ie?`text-[10px]`:`text-[11px]`),children:Q.format(s[t])}),(e.raster??t)%K===0&&(0,Z.jsxs)(`text`,{x:U(t),y:ee+15,textAnchor:`middle`,className:`fill-text-3 font-mono text-[11px]`,children:[e.achse,e.achse2&&(0,Z.jsx)(`tspan`,{x:U(t),dy:13,className:`text-[10px]`,children:e.achse2})]})]},e.schluessel)}),xe,Ce]}),Y&&m!==null&&X&&(0,Z.jsx)(ue,{saeule:Y,reihen:o,summe:s[m],links:de,className:`pointer-events-none absolute top-1 z-10 w-60 shadow-lg`})]}),b=Y&&m!==null&&!X&&(0,Z.jsx)(ue,{saeule:Y,reihen:o,summe:s[m]}),T=`text-sm`,t[70]===Symbol.for(`react.memo_cache_sentinel`)?(E=(0,Z.jsx)(`summary`,{className:`inline-flex cursor-pointer items-center text-text-3 hover:text-text-2`,children:`Werte als Tabelle`}),t[70]=E):E=t[70],w=`mt-2 overflow-x-auto`,S=`w-full border-collapse text-xs`;let we;t[71]===d?we=t[72]:(we=(0,Z.jsx)(`th`,{scope:`col`,className:`py-1 pr-3 text-left font-normal`,children:d}),t[71]=d,t[72]=we),C=(0,Z.jsx)(`thead`,{children:(0,Z.jsxs)(`tr`,{className:`text-text-3`,children:[we,o.map(fe),o.length>1&&(0,Z.jsx)(`th`,{scope:`col`,className:`py-1 text-right font-normal`,children:`Zusammen`})]})}),x=n.map((e,t)=>(0,Z.jsxs)(`tr`,{className:`border-t border-white/[0.06]`,children:[(0,Z.jsx)(`th`,{scope:`row`,className:`py-1 pr-3 text-left font-normal text-text-3`,children:e.lang}),o.map(t=>(0,Z.jsx)(`td`,{className:`ziffern py-1 pr-3 text-right text-text-2`,children:Q.format(e.werte[t.name]??0)},t.name)),o.length>1&&(0,Z.jsx)(`td`,{className:`ziffern py-1 text-right text-foreground`,children:Q.format(s[t])})]},e.schluessel)),t[0]=p,t[1]=u,t[2]=m,t[3]=g,t[4]=f,t[5]=r,t[6]=n,t[7]=d,t[8]=l,t[9]=a,t[10]=_,t[11]=v,t[12]=y,t[13]=b,t[14]=x,t[15]=S,t[16]=C,t[17]=w,t[18]=T,t[19]=E}else _=t[10],v=t[11],y=t[12],b=t[13],x=t[14],S=t[15],C=t[16],w=t[17],T=t[18],E=t[19];let D;t[73]===x?D=t[74]:(D=(0,Z.jsx)(`tbody`,{children:x}),t[73]=x,t[74]=D);let O;t[75]!==D||t[76]!==S||t[77]!==C?(O=(0,Z.jsxs)(`table`,{className:S,children:[C,D]}),t[75]=D,t[76]=S,t[77]=C,t[78]=O):O=t[78];let k;t[79]!==O||t[80]!==w?(k=(0,Z.jsx)(`div`,{className:w,children:O}),t[79]=O,t[80]=w,t[81]=k):k=t[81];let A;t[82]!==k||t[83]!==T||t[84]!==E?(A=(0,Z.jsxs)(`details`,{className:T,children:[E,k]}),t[82]=k,t[83]=T,t[84]=E,t[85]=A):A=t[85];let j;return t[86]!==_||t[87]!==v||t[88]!==y||t[89]!==b||t[90]!==A?(j=(0,Z.jsxs)(`div`,{className:_,children:[v,y,b,A]}),t[86]=_,t[87]=v,t[88]=y,t[89]=b,t[90]=A,t[91]=j):j=t[91],j}function fe(e){return(0,Z.jsx)(`th`,{scope:`col`,className:`py-1 pr-3 text-right font-normal [overflow-wrap:anywhere]`,children:e.name},e.name)}function pe(e){return e.hoehe>0}function me(e){return(0,Z.jsxs)(`li`,{className:`flex items-center gap-2`,children:[(0,Z.jsx)(`span`,{"aria-hidden":!0,className:`size-2.5 shrink-0 rounded-[2px]`,style:{background:e.farbe}}),e.name]},e.name)}function he(e){return e.achse.length}function ge(e){return e.achse2}var _e=`Europe/Berlin`,ve=[`var(--reihe-1)`,`var(--reihe-2)`,`var(--reihe-3)`],ye={name:`Weitere`,farbe:`var(--reihe-weitere)`},be=new Intl.NumberFormat(`de-DE`),xe=new Intl.NumberFormat(`de-DE`,{maximumFractionDigits:1}),Se=new Intl.DateTimeFormat(`en-CA`,{timeZone:_e}),Ce=new Intl.DateTimeFormat(`de-DE`,{hour:`2-digit`,minute:`2-digit`,timeZone:_e}),we=new Intl.DateTimeFormat(`de-DE`,{hour:`2-digit`,hourCycle:`h23`,timeZone:_e}),Te=new Intl.DateTimeFormat(`de-DE`,{weekday:`short`,timeZone:`UTC`}),Ee=new Intl.DateTimeFormat(`de-DE`,{weekday:`long`,timeZone:`UTC`}),$=e=>be.format(e);function De(e){if(!(e>0))return`0 %`;let t=e*100;return t<.1?`unter 0,1 %`:`${t<10?xe.format(t):be.format(Math.round(t))} %`}function Oe(e,t=!1){if(e==null||!Number.isFinite(e)||e<0)return`–`;if(Math.round(e*1e3)<1e3)return`${Math.round(e*1e3)} ms`;if(e<9.95)return`${xe.format(e)} s`;let n=Math.round(e);if(n<60)return`${n} s`;if(n<3600&&!t)return n%60?`${Math.floor(n/60)} min ${n%60} s`:`${n/60} min`;let r=Math.round(e/60);return r<60?`${r} min`:r%60?`${Math.floor(r/60)} h ${r%60} min`:`${r/60} h`}var ke={400:`fehlerhafte Anfrage`,404:`nicht gefunden`,408:`Zeitüberschreitung`,413:`Anfrage zu groß`,429:`zu viele Anfragen`,499:`vom Absender abgebrochen`,500:`Fehler beim Modell`,502:`Modell nicht erreichbar`,503:`gerade nicht verfügbar`,504:`Zeitüberschreitung`};function Ae(e){return Object.entries(e??{}).sort(([e,t],[n,r])=>r-t||e.localeCompare(n)).map(([e,t])=>ke[e]?`${$(t)}× ${ke[e]} (${e})`:`${$(t)}× Status ${e}`).join(` · `)}function je(e){return e===null||e<.01?{art:`grau`,wort:null}:e>=.05?{art:`rot`,wort:`hoch`}:{art:`bernstein`,wort:`auffällig`}}var Me=e=>String(e).padStart(2,`0`),Ne=e=>Object.values(e??{}).reduce((e,t)=>e+t,0),Pe=e=>Te.format(e).replace(`.`,``);function Fe(e){return Number(we.formatToParts(e).find(e=>e.type===`hour`)?.value??0)%24}function Ie(e){let[,t,n]=e.split(`-`);return`${Ee.format(new Date(`${e}T12:00:00Z`))}, ${n}.${t}.`}function Le(e,t=new Date){let n=e.stand?new Date(e.stand):t,r=Se.format(n),i=new Date(Date.parse(`${r}T12:00:00Z`)-864e5).toISOString().slice(0,10),a=e.gesamt?.anfragen??e.absender.reduce((e,t)=>e+t.anfragen,0),o=e.gesamt?.dauer_summe_s??null,s=new Map(e.absender.map((e,t)=>[e.name,e.reihe??t])),c=e.absender.map(e=>{let t=s.get(e.name)??ve.length,n=t[e.name,e.reihe])),u=[];for(let e of[...c].sort((e,t)=>(s.get(e.name)??99)-(s.get(t.name)??99)))u.some(t=>t.name===e.reihe)||u.push({name:e.reihe,farbe:e.farbe});let d=e=>{let t={};for(let[n,r]of Object.entries(e??{})){let e=l.get(n)??ye.name;t[e]=(t[e]??0)+r,e===ye.name&&!u.some(t=>t.name===e)&&u.push({...ye})}return t},f=Object.keys(e.je_tag??{}).sort(),p=f.map(t=>{let i=t===r;return{schluessel:t,achse:Pe(new Date(`${t}T12:00:00Z`)),achse2:i?`heute`:`${Number(t.slice(8))}.`,lang:`${Ie(t)}${i?` (heute bis ${Ce.format(n)})`:``}`,werte:d(e.je_tag[t])}}),m;if(e.stunden?.length)m=e.stunden.map((e,t,n)=>{let a=new Date(e.beginn),o=Fe(a),s=Se.format(a),c=s===r?`Heute`:s===i?`Gestern`:Ie(s),l=t===n.length-1?` bis jetzt`:`–${Me((o+1)%24)}:00`;return{schluessel:e.beginn,achse:`${Me(o)}:00`,raster:o,lang:`${c} ${Me(o)}:00${l}`,werte:d(e.je_absender)}});else{let t=Fe(n),r=e.letzte_24h??[];m=[...r.slice(t+1),...r.slice(0,t+1)].map(e=>{let t=Number(e.stunde);return{schluessel:e.stunde,achse:`${Me(t)}:00`,raster:t,lang:`${Me(t)}:00–${Me((t+1)%24)}:00`,werte:d(e.je_absender)}})}let h=f.filter(e=>e!==r),g=e.seit?Se.format(new Date(e.seit)):null,_=e.ladevorgaenge??Object.entries(e.zuletzt_geladen??{}).sort(([,e],[,t])=>Date.parse(t)-Date.parse(e)).map(([e,t])=>({modell:e,anzahl:null,zeiten:[t]}));return{absender:c,reihen:u,tage:p,stunden:m,gesamt:{anfragen:a,fehler:e.gesamt?.fehler??null,fehlerCodes:e.gesamt?.fehler_codes??{},typisch:e.gesamt?.dauer_typisch_s??null,p90:e.gesamt?.dauer_p90_s??null,summe:o},heute:Ne(e.je_tag?.[r]),gestern:Ne(e.je_tag?.[i]),schnitt:h.length?h.reduce((t,n)=>t+Ne(e.je_tag[n]),0)/h.length:null,zeitraum:g?`seit ${Pe(new Date(`${g}T12:00:00Z`))} ${g.slice(8)}.${g.slice(5,7)}.`:`letzte ${e.tage} Tage`,stand:e.stand?Ce.format(n):null,modelle:_}}var Re={grau:`text-foreground`,bernstein:`text-bernstein`,rot:`text-rot-text`};function ze(e){let t=(0,Y.c)(13),{label:n,wert:r,zusatz:a,art:o}=e,s=o===void 0?`grau`:o,c;t[0]===n?c=t[1]:(c=(0,Z.jsx)(`span`,{className:`etikett text-[10.5px] tracking-[0.14em] text-text-3`,children:n}),t[0]=n,t[1]=c);let l=Re[s],u;t[2]===l?u=t[3]:(u=i(`font-anzeige text-[28px] leading-none font-bold`,l),t[2]=l,t[3]=u);let d;t[4]!==u||t[5]!==r?(d=(0,Z.jsx)(`span`,{className:u,children:r}),t[4]=u,t[5]=r,t[6]=d):d=t[6];let f;t[7]===a?f=t[8]:(f=a&&(0,Z.jsx)(`span`,{className:`text-xs text-text-3`,children:a}),t[7]=a,t[8]=f);let p;return t[9]!==c||t[10]!==d||t[11]!==f?(p=(0,Z.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1.5 flaeche-innen rounded-2xl px-3.5 py-3`,children:[c,d,f]}),t[9]=c,t[10]=d,t[11]=f,t[12]=p):p=t[12],p}var Be=`lg:grid-cols-[minmax(0,1.5fr)_minmax(0,1.4fr)_minmax(0,1fr)_minmax(0,1fr)_minmax(0,1.2fr)_minmax(0,0.8fr)]`;function Ve(e){let t=(0,Y.c)(13),{label:n,wert:r,zusatz:a,leise:o}=e,s;t[0]===n?s=t[1]:(s=(0,Z.jsx)(`span`,{className:`text-xs text-text-3 lg:hidden`,children:n}),t[0]=n,t[1]=s);let c=o?`text-text-3`:`text-foreground`,l;t[2]===c?l=t[3]:(l=i(`ziffern text-sm`,c),t[2]=c,t[3]=l);let u;t[4]!==l||t[5]!==r?(u=(0,Z.jsx)(`span`,{className:l,children:r}),t[4]=l,t[5]=r,t[6]=u):u=t[6];let d;t[7]===a?d=t[8]:(d=a&&(0,Z.jsx)(`span`,{className:`text-xs text-text-3`,children:a}),t[7]=a,t[8]=d);let f;return t[9]!==s||t[10]!==u||t[11]!==d?(f=(0,Z.jsxs)(`span`,{role:`cell`,className:`flex min-w-0 flex-col gap-0.5`,children:[s,u,d]}),t[9]=s,t[10]=u,t[11]=d,t[12]=f):f=t[12],f}function He(e){let t=(0,Y.c)(5),{zeilen:n}=e,r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,Z.jsxs)(`div`,{role:`row`,className:i(`etikett hidden gap-x-4 pb-2 text-[10.5px] tracking-[0.14em] text-text-3 lg:grid`,Be),children:[(0,Z.jsx)(`span`,{role:`columnheader`,children:`Absender`}),(0,Z.jsx)(`span`,{role:`columnheader`,children:`Anfragen`}),(0,Z.jsx)(`span`,{role:`columnheader`,children:`Typische Antwort`}),(0,Z.jsx)(`span`,{role:`columnheader`,children:`Rechenzeit`}),(0,Z.jsx)(`span`,{role:`columnheader`,children:`Fehler`}),(0,Z.jsx)(`span`,{role:`columnheader`,children:`Zuletzt`})]}),t[0]=r):r=t[0];let a;t[1]===n?a=t[2]:(a=n.map(Ue),t[1]=n,t[2]=a);let o;return t[3]===a?o=t[4]:(o=(0,Z.jsxs)(`div`,{role:`table`,"aria-label":`Nutzung je Absender`,className:`flex flex-col`,children:[r,a]}),t[3]=a,t[4]=o),o}function Ue(e){return(0,Z.jsxs)(`div`,{role:`row`,className:i(`grid grid-cols-2 gap-x-4 gap-y-2.5 border-t border-white/[0.06] py-3 lg:items-start`,Be),children:[(0,Z.jsxs)(`span`,{role:`rowheader`,className:`col-span-2 flex min-w-0 items-center gap-2 text-[15px] font-medium lg:col-span-1`,children:[(0,Z.jsx)(`span`,{"aria-hidden":!0,className:`size-2.5 shrink-0 rounded-[2px]`,style:{background:e.farbe}}),(0,Z.jsx)(`span`,{className:`min-w-0 break-words`,children:e.name})]}),(0,Z.jsxs)(`span`,{role:`cell`,className:`col-span-2 flex min-w-0 flex-col gap-1.5 lg:col-span-1`,children:[(0,Z.jsxs)(`span`,{className:`text-sm`,children:[(0,Z.jsx)(`span`,{className:`ziffern`,children:$(e.anfragen)}),(0,Z.jsxs)(`span`,{className:`text-text-3`,children:[` · `,De(e.anteil),` aller Anfragen`]})]}),(0,Z.jsx)(`span`,{className:`h-1.5 w-full max-w-56 overflow-hidden rounded-full bg-white/[0.07]`,"aria-hidden":!0,children:(0,Z.jsx)(`span`,{className:`block h-full rounded-full`,style:{width:`${Math.max(1,e.anteil*100)}%`,background:e.farbe}})})]}),(0,Z.jsx)(Ve,{label:`Typische Antwort`,wert:Oe(e.typisch),zusatz:e.p90===null?void 0:`9 von 10 bis ${Oe(e.p90)}`}),(0,Z.jsx)(Ve,{label:`Rechenzeit`,wert:Oe(e.summe,!0),zusatz:e.zeitAnteil===null?void 0:`${De(e.zeitAnteil)} aller Rechenzeit`}),(0,Z.jsx)(Ve,{label:`Fehler`,leise:e.fehler===0,wert:e.fehler===null?`–`:e.fehler===0?`keine`:`${$(e.fehler)} · ${De(e.fehler/e.anfragen)}`,zusatz:e.fehler?Ae(e.fehlerCodes):void 0}),(0,Z.jsx)(Ve,{label:`Zuletzt`,wert:e.zuletzt?D(e.zuletzt):`–`})]},e.name)}function We(e){let t=(0,Y.c)(11),{titel:n,zusatz:r,children:i}=e,a;t[0]===n?a=t[1]:(a=(0,Z.jsx)(`h3`,{className:`etikett text-[11.5px] tracking-[0.16em] text-text-2`,children:n}),t[0]=n,t[1]=a);let o;t[2]===r?o=t[3]:(o=(0,Z.jsx)(`span`,{className:`text-xs text-text-3`,children:r}),t[2]=r,t[3]=o);let s;t[4]!==a||t[5]!==o?(s=(0,Z.jsxs)(`div`,{className:`flex flex-wrap items-baseline justify-between gap-x-3 gap-y-1`,children:[a,o]}),t[4]=a,t[5]=o,t[6]=s):s=t[6];let c;return t[7]!==i||t[8]!==s||t[9]!==n?(c=(0,Z.jsxs)(`section`,{"aria-label":n,className:`flex min-w-0 flex-col gap-3 flaeche-innen rounded-2xl p-4`,children:[s,i]}),t[7]=i,t[8]=s,t[9]=n,t[10]=c):c=t[10],c}function Ge(e){let t=(0,Y.c)(29),{modelle:n,rollen:r}=e;if(n.length===0)return null;let i,a,o,s,c,l;if(t[0]!==n){let e=n.every(Je)?n.reduce(qe,0):null;l=`group flaeche-innen rounded-2xl px-4 open:pb-2`,s=`flex min-h-12 cursor-pointer list-none flex-wrap items-center justify-between gap-x-3 gap-y-1 py-2 [&::-webkit-details-marker]:hidden`,t[7]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,Z.jsxs)(`span`,{className:`flex items-center gap-2 text-[15px] font-medium`,children:[(0,Z.jsx)(F,{className:`size-4 shrink-0 text-text-3 transition-transform group-open:rotate-90`,"aria-hidden":!0}),`Wann welches Modell geladen wurde`]}),t[7]=c):c=t[7],i=`ziffern text-sm text-text-2`,a=n.length===1?`1 Modell`:`${n.length} Modelle`,o=e===null?``:` · ${$(e)}× geladen`,t[0]=n,t[1]=i,t[2]=a,t[3]=o,t[4]=s,t[5]=c,t[6]=l}else i=t[1],a=t[2],o=t[3],s=t[4],c=t[5],l=t[6];let u;t[8]!==i||t[9]!==a||t[10]!==o?(u=(0,Z.jsxs)(`span`,{className:i,children:[a,o]}),t[8]=i,t[9]=a,t[10]=o,t[11]=u):u=t[11];let d;t[12]!==s||t[13]!==c||t[14]!==u?(d=(0,Z.jsxs)(`summary`,{className:s,children:[c,u]}),t[12]=s,t[13]=c,t[14]=u,t[15]=d):d=t[15];let f;t[16]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,Z.jsx)(`p`,{className:`pb-1 text-sm text-text-2`,children:`Gezählt wird, wie oft sich ein Modell nach dem Laden bereit meldete: nach einem Neustart von llama-swap oder wenn es auf Abruf gebraucht wurde.`}),t[16]=f):f=t[16];let p;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,Z.jsxs)(`div`,{role:`row`,className:`etikett hidden gap-x-4 py-2 text-[10.5px] tracking-[0.14em] text-text-3 sm:grid sm:grid-cols-[minmax(0,1.5fr)_70px_130px_minmax(0,1.5fr)]`,children:[(0,Z.jsx)(`span`,{role:`columnheader`,children:`Modell`}),(0,Z.jsx)(`span`,{role:`columnheader`,children:`Geladen`}),(0,Z.jsx)(`span`,{role:`columnheader`,children:`Zuletzt`}),(0,Z.jsx)(`span`,{role:`columnheader`,children:`Davor`})]}),t[17]=p):p=t[17];let m;if(t[18]!==n||t[19]!==r){let e;t[21]===r?e=t[22]:(e=e=>(0,Z.jsxs)(`div`,{role:`row`,className:`grid grid-cols-[minmax(0,1fr)_auto] gap-x-4 gap-y-1 border-t border-white/[0.06] py-2.5 sm:grid-cols-[minmax(0,1.5fr)_70px_130px_minmax(0,1.5fr)] sm:items-baseline`,children:[(0,Z.jsxs)(`span`,{role:`rowheader`,className:`flex min-w-0 flex-col`,children:[(0,Z.jsx)(`span`,{className:`ziffern text-sm break-all`,children:e.modell}),r[e.modell]&&(0,Z.jsx)(`span`,{className:`text-xs text-text-3`,children:r[e.modell]})]}),(0,Z.jsx)(`span`,{role:`cell`,className:`ziffern text-right text-sm text-text-2 sm:text-left`,children:e.anzahl===null?`–`:`${$(e.anzahl)}×`}),(0,Z.jsxs)(`span`,{role:`cell`,className:`ziffern col-span-2 text-xs text-text-2 sm:col-span-1`,children:[(0,Z.jsx)(`span`,{className:`font-sans text-text-3 sm:hidden`,children:`zuletzt `}),D(e.zeiten[0])]}),(0,Z.jsxs)(`span`,{role:`cell`,className:`ziffern col-span-2 text-xs text-text-3 sm:col-span-1`,children:[e.zeiten.length>1&&(0,Z.jsx)(`span`,{className:`font-sans sm:hidden`,children:`davor `}),e.zeiten.length>1?e.zeiten.slice(1,4).map(Ke).join(` · `):(0,Z.jsx)(`span`,{className:`hidden sm:inline`,children:`–`})]})]},e.modell),t[21]=r,t[22]=e),m=n.map(e),t[18]=n,t[19]=r,t[20]=m}else m=t[20];let h;t[23]===m?h=t[24]:(h=(0,Z.jsxs)(`div`,{role:`table`,"aria-label":`Ladevorgänge je Modell`,className:`flex flex-col`,children:[p,m]}),t[23]=m,t[24]=h);let g;return t[25]!==h||t[26]!==l||t[27]!==d?(g=(0,Z.jsxs)(`details`,{className:l,children:[d,f,h]}),t[25]=h,t[26]=l,t[27]=d,t[28]=g):g=t[28],g}function Ke(e){return D(e)}function qe(e,t){return e+(t.anzahl??0)}function Je(e){return e.anzahl!==null}function Ye(e){let t=(0,Y.c)(23),{nutzung:n,laedt:r,fehler:i,rollen:a}=e,o;t[0]===a?o=t[1]:(o=a===void 0?{}:a,t[0]=a,t[1]=o);let s=o;if(!n){let e;return t[2]!==i||t[3]!==r?(e=(0,Z.jsx)(K,{titel:`Wer nutzt die Modelle`,children:r?(0,Z.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Wird gelesen …`}):(0,Z.jsxs)(`p`,{role:`alert`,className:`text-[15px] text-rot-text`,children:[`Die Nutzung lässt sich gerade nicht lesen`,i?`: ${i}`:`.`]})}),t[2]=i,t[3]=r,t[4]=e):e=t[4],e}let c,l,u,d,f;if(t[5]!==n){l=Le(n);let e=l.gesamt,r=e.fehler!==null&&e.anfragen?e.fehler/e.anfragen:null,i;t[11]===r?i=t[12]:(i=je(r),t[11]=r,t[12]=i);let a=i;c=K,u=`Wer nutzt die Modelle`,d=(0,Z.jsxs)(`span`,{className:`ziffern text-sm text-text-3`,children:[l.zeitraum,l.stand?` · Stand ${l.stand}`:``]}),f=e.anfragen===0?(0,Z.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Keine Anfragen aufgezeichnet.`}):(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(`div`,{className:`grid grid-cols-2 gap-2.5 sm:grid-cols-4`,children:[(0,Z.jsx)(ze,{label:`Anfragen`,wert:$(e.anfragen),zusatz:l.schnitt===null?void 0:`im Schnitt ${$(Math.round(l.schnitt))} am Tag`}),(0,Z.jsx)(ze,{label:`Heute`,wert:$(l.heute),zusatz:`${l.stand?`bis ${l.stand} · `:``}gestern ${$(l.gestern)}`}),(0,Z.jsx)(ze,{label:`Typische Antwort`,wert:Oe(e.typisch),zusatz:e.p90===null?void 0:`9 von 10 bis ${Oe(e.p90)}`}),(0,Z.jsx)(ze,{label:`Fehler`,wert:e.fehler===null?`–`:$(e.fehler),art:a.art,zusatz:e.fehler===null?void 0:e.fehler===0?`alle beantwortet`:`${De(r??0)} der Anfragen${a.wort?` · ${a.wort}`:``}`})]}),(0,Z.jsx)(He,{zeilen:l.absender}),(0,Z.jsxs)(`div`,{className:`grid gap-4 xl:grid-cols-2`,children:[(0,Z.jsx)(We,{titel:`Anfragen je Tag`,zusatz:`letzte 7 Tage, heute bis jetzt`,children:(0,Z.jsx)(de,{saeulen:l.tage,reihen:l.reihen,spalte:`Tag`,titel:`Anfragen je Tag der letzten 7 Tage, gestapelt nach Absender`})}),(0,Z.jsx)(We,{titel:`Anfragen je Stunde`,zusatz:`letzte 24 Stunden`,children:(0,Z.jsx)(de,{saeulen:l.stunden,reihen:l.reihen,spalte:`Stunde`,summen:`hoechste`,titel:`Anfragen je Stunde der letzten 24 Stunden, gestapelt nach Absender`})})]})]}),t[5]=n,t[6]=c,t[7]=l,t[8]=u,t[9]=d,t[10]=f}else c=t[6],l=t[7],u=t[8],d=t[9],f=t[10];let p;t[13]!==l.modelle||t[14]!==s?(p=(0,Z.jsx)(Ge,{modelle:l.modelle,rollen:s}),t[13]=l.modelle,t[14]=s,t[15]=p):p=t[15];let m;t[16]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,Z.jsx)(`p`,{className:`text-xs text-text-3`,children:`Chat-Anfragen an llama-swap, gelesen aus seinem Protokoll und alle 10 Minuten neu gerechnet. NerdQuiz fragt direkt dort an, Lucy und OpenChamber über MC2. Antwortzeit: bis die Antwort ganz da war. Rechenzeit: alle Antwortzeiten zusammen, gleichzeitige Anfragen zählen einzeln.`}),t[16]=m):m=t[16];let h;return t[17]!==c||t[18]!==u||t[19]!==d||t[20]!==f||t[21]!==p?(h=(0,Z.jsxs)(c,{titel:u,rechts:d,children:[f,p,m]}),t[17]=c,t[18]=u,t[19]=d,t[20]=f,t[21]=p,t[22]=h):h=t[22],h}var Xe={coder:`Coder`};function Ze(e){let t=(0,Y.c)(102),{offen:n,onSchliessen:r,rollenJetzt:i}=e,a=o(),[s,c]=(0,X.useState)(``),[l,u]=(0,X.useState)(``),[d,f]=(0,X.useState)(null),[p,m]=(0,X.useState)(``),[h,g]=(0,X.useState)(null),_=(0,X.useRef)(!1),v,y;t[0]===l?(v=t[1],y=t[2]):(v=[`hf-suche`,l],y=()=>T(`/api/hf/search?q=${encodeURIComponent(l)}`),t[0]=l,t[1]=v,t[2]=y);let S=l.length>1,C;t[3]!==v||t[4]!==y||t[5]!==S?(C={queryKey:v,queryFn:y,enabled:S},t[3]=v,t[4]=y,t[5]=S,t[6]=C):C=t[6];let E=w(C),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 j=w(A),M,N,P,F,I,L,R,z,B,V,K,re,q;if(t[14]!==h||t[15]!==s||t[16]!==a||t[17]!==n||t[18]!==r||t[19]!==j.data||t[20]!==j.error||t[21]!==j.isError||t[22]!==j.isFetching||t[23]!==d||t[24]!==p||t[25]!==i||t[26]!==E){let e=(j.data?.quants??[]).map($e),o=p?Xe[p]??p:null,l;t[40]!==d||t[41]!==p||t[42]!==i||t[43]!==o?(l=o&&d?ae(d,o,i[p]):null,t[40]=d,t[41]=p,t[42]=i,t[43]=o,t[44]=l):l=t[44],P=l;let v;t[45]!==h||t[46]!==a||t[47]!==r||t[48]!==d||t[49]!==p?(v=function(){d&&h&&!_.current&&(_.current=!0,a.mutate({repo:d,quant:h.quant,rolle:p||null},{onSuccess:e=>{g(null),e.ok!==!1&&r()},onError:()=>g(null),onSettled:()=>{_.current=!1}}))},t[45]=h,t[46]=a,t[47]=r,t[48]=d,t[49]=p,t[50]=v):v=t[50],F=v,N=G,K=n,t[51]===r?re=t[52]:(re=e=>!e&&r(),t[51]=r,t[52]=re),M=U,R=`right`,z=`gap-3 overflow-y-auto border-white/10 bg-[#0e121a] data-[side=right]:w-full data-[side=right]:sm:max-w-xl`,t[53]===Symbol.for(`react.memo_cache_sentinel`)?(B=(0,Z.jsxs)(te,{children:[(0,Z.jsx)(ee,{className:`text-[19px] font-semibold`,children:`Modelle selbst suchen`}),(0,Z.jsx)(W,{className:`text-text-2`,children:`Auf Hugging Face suchen, Quantisierung wählen, installieren.`})]}),t[53]=B):B=t[53];let y;t[54]===s?y=t[55]:(y=e=>{e.preventDefault(),f(null),u(s.trim())},t[54]=s,t[55]=y);let S;t[56]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,Z.jsx)(`label`,{htmlFor:`hf-suche`,className:`sr-only`,children:`Suchbegriff`}),t[56]=S):S=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,Z.jsx)(`input`,{id:`hf-suche`,value:s,onChange:C,placeholder:`z. B. Qwen3.8 GGUF`,className:`h-11 min-w-0 flex-1 rounded-xl border border-white/12 bg-white/[0.04] px-3 text-[15px] outline-none focus:border-cyan/60 focus:bg-white/[0.06]`}),t[58]=s,t[59]=w);let T;t[60]===Symbol.for(`react.memo_cache_sentinel`)?(T=(0,Z.jsx)(H,{type:`submit`,children:`Suchen`}),t[60]=T):T=t[60],t[61]!==y||t[62]!==w?(V=(0,Z.jsxs)(`form`,{className:`flex gap-2 px-4`,onSubmit:y,children:[S,w,T]}),t[61]=y,t[62]=w,t[63]=V):V=t[63],q=`flex flex-col px-4 pb-4`,t[64]!==d||t[65]!==E?(I=!d&&(0,Z.jsxs)(Z.Fragment,{children:[E.isFetching&&(0,Z.jsx)(`p`,{role:`status`,className:`py-3 text-sm text-text-2`,children:`Suche läuft …`}),!E.isFetching&&E.isError&&(0,Z.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,Z.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,Z.jsxs)(`button`,{type:`button`,onClick:()=>f(e.repo),className:`flex min-h-11 items-center justify-between gap-3 border-t border-white/[0.06] py-2 text-left hover:text-cyan`,children:[(0,Z.jsx)(`span`,{className:`ziffern min-w-0 text-sm break-all`,children:e.repo}),(0,Z.jsxs)(`span`,{className:`ziffern shrink-0 text-xs text-text-3`,children:[x(e.downloads),` ↓`]})]},e.repo))]}),t[64]=d,t[65]=E,t[66]=I):I=t[66],L=d&&(0,Z.jsxs)(`div`,{className:`flex flex-col gap-3 pt-2`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,Z.jsx)(`span`,{className:`ziffern min-w-0 text-sm break-all`,children:d}),(0,Z.jsx)(H,{variant:`ghost`,size:`sm`,onClick:()=>f(null),children:`Zurück`})]}),(0,Z.jsxs)(`label`,{className:`flex flex-wrap items-center gap-3 text-sm text-text-2`,children:[`Rolle`,(0,Z.jsxs)(`select`,{value:p,onChange:e=>m(e.target.value),className:`h-11 min-w-0 rounded-xl border border-white/12 bg-white/[0.04] px-3 text-foreground`,children:[(0,Z.jsx)(`option`,{value:``,children:`ohne Rolle (nur installieren)`}),Object.entries(Xe).map(Qe)]})]}),P&&(0,Z.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,Z.jsx)(`p`,{role:`status`,className:`text-sm text-text-2`,children:`Quantisierungen werden gelesen …`}),!j.isFetching&&j.isError&&(0,Z.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,Z.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,Z.jsxs)(`div`,{className:`flex items-center justify-between gap-3 border-t border-white/[0.06] py-2`,children:[(0,Z.jsx)(`span`,{className:`ziffern text-sm`,children:t}),(0,Z.jsxs)(`span`,{className:`flex items-center gap-3`,children:[n?(0,Z.jsx)(`span`,{className:`ziffern text-xs text-text-3`,children:b(n,1)}):null,(0,Z.jsx)(H,{variant:`outline`,size:`sm`,disabled:a.isPending,onClick:()=>g({quant:t,bytes:n}),children:`Installieren`})]})]},t)})]}),t[14]=h,t[15]=s,t[16]=a,t[17]=n,t[18]=r,t[19]=j.data,t[20]=j.error,t[21]=j.isError,t[22]=j.isFetching,t[23]=d,t[24]=p,t[25]=i,t[26]=E,t[27]=M,t[28]=N,t[29]=P,t[30]=F,t[31]=I,t[32]=L,t[33]=R,t[34]=z,t[35]=B,t[36]=V,t[37]=K,t[38]=re,t[39]=q}else M=t[27],N=t[28],P=t[29],F=t[30],I=t[31],L=t[32],R=t[33],z=t[34],B=t[35],V=t[36],K=t[37],re=t[38],q=t[39];let J;t[67]!==I||t[68]!==L||t[69]!==q?(J=(0,Z.jsxs)(`div`,{className:q,children:[I,L]}),t[67]=I,t[68]=L,t[69]=q,t[70]=J):J=t[70];let oe=h!==null,Q;t[71]!==h||t[72]!==d?(Q=h&&d?`${d} (${h.quant}${h.bytes?`, ${b(h.bytes,1)}`:``}) wird heruntergeladen und in llama-swap eingetragen.`+(h.bytes?``:` Die Größe siehst du beim Auftrag, sobald der Download läuft.`):``,t[71]=h,t[72]=d,t[73]=Q):Q=t[73];let se=a.isPending?`Wird gestartet …`:`Installieren`,ce=a.isPending,le;t[74]===Symbol.for(`react.memo_cache_sentinel`)?(le=()=>g(null),t[74]=le):le=t[74];let ue;t[75]===P?ue=t[76]:(ue=P&&(0,Z.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]=ue);let de=!!p,fe;t[77]===de?fe=t[78]:(fe=ie(de),t[77]=de,t[78]=fe);let pe;t[79]===fe?pe=t[80]:(pe=(0,Z.jsx)(`p`,{className:`m-0 text-[15px] leading-relaxed text-text-2`,children:fe}),t[79]=fe,t[80]=pe);let me;t[81]!==a.isPending||t[82]!==F||t[83]!==oe||t[84]!==Q||t[85]!==se||t[86]!==ue||t[87]!==pe?(me=(0,Z.jsxs)(ne,{offen:oe,titel:`Modell installieren?`,text:Q,knopf:se,gesperrt:ce,onNein:le,onJa:F,children:[ue,pe]}),t[81]=a.isPending,t[82]=F,t[83]=oe,t[84]=Q,t[85]=se,t[86]=ue,t[87]=pe,t[88]=me):me=t[88];let he;t[89]!==M||t[90]!==R||t[91]!==z||t[92]!==B||t[93]!==V||t[94]!==J||t[95]!==me?(he=(0,Z.jsxs)(M,{side:R,className:z,children:[B,V,J,me]}),t[89]=M,t[90]=R,t[91]=z,t[92]=B,t[93]=V,t[94]=J,t[95]=me,t[96]=he):he=t[96];let ge;return t[97]!==N||t[98]!==K||t[99]!==re||t[100]!==he?(ge=(0,Z.jsx)(N,{open:K,onOpenChange:re,children:he}),t[97]=N,t[98]=K,t[99]=re,t[100]=he,t[101]=ge):ge=t[101],ge}function Qe(e){let[t,n]=e;return(0,Z.jsx)(`option`,{value:t,children:n},t)}function $e(e){return typeof e==`string`?{quant:e}:e}var et=115;function tt(e){let t=(0,Y.c)(55),{modelle:n,laufend:r}=e,i=O(),a=p(),o,s,c,l,u,d,f,m,h,g;if(t[0]!==r||t[1]!==i?.ram_total||t[2]!==i?.ram_used||t[3]!==n||t[4]!==a){let e=k(i?.ram_total??a.data?.box.ram_total)??122.7,p=k(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(nt,0);s=Math.max(0,p-v);let y=t=>`${Math.min(100,t/e*100)}%`;o=K,m=`Speicher`,h=(0,Z.jsxs)(`span`,{className:`ziffern text-sm text-text-2`,children:[Math.round(p),` von `,Math.round(e),` GB belegt · Grenze ~`,et,` GB`]});let b=`Speicher: ${Math.round(p)} von ${Math.round(e)} GB belegt`,x=y(p),S;t[17]===x?S=t[18]:(S={width:x},t[17]=x,t[18]=S);let C=`${p?v/p*100:0}%`,w;t[19]===C?w=t[20]:(w=(0,Z.jsx)(`div`,{className:`h-full bg-cyan`,style:{width:C}}),t[19]=C,t[20]=w);let T=`${p?s/p*100:0}%`,E;t[21]===T?E=t[22]:(E=(0,Z.jsx)(`div`,{className:`h-full bg-cyan/35`,style:{width:T}}),t[21]=T,t[22]=E);let D;t[23]!==S||t[24]!==w||t[25]!==E?(D=(0,Z.jsxs)(`div`,{className:`absolute inset-y-0 left-0 flex overflow-hidden rounded-lg`,style:S,children:[w,E]}),t[23]=S,t[24]=w,t[25]=E,t[26]=D):D=t[26];let O=y(et),A;t[27]===O?A=t[28]:(A=(0,Z.jsx)(`div`,{className:`absolute -top-1.5 -bottom-1.5 w-0.5 bg-bernstein`,style:{left:O}}),t[27]=O,t[28]=A),t[29]!==b||t[30]!==D||t[31]!==A?(g=(0,Z.jsxs)(`div`,{className:`relative h-8 overflow-hidden rounded-xl bg-white/[0.06]`,role:`img`,"aria-label":b,children:[D,A]}),t[29]=b,t[30]=D,t[31]=A,t[32]=g):g=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,Z.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]=m,t[13]=h,t[14]=g}else o=t[5],s=t[6],c=t[7],l=t[8],u=t[9],d=t[10],f=t[11],m=t[12],h=t[13],g=t[14];let _;t[34]!==c||t[35]!==l||t[36]!==u||t[37]!==d?(_=(0,Z.jsxs)(`span`,{className:c,children:[l,u,d,` GB Dateien`]}),t[34]=c,t[35]=l,t[36]=u,t[37]=d,t[38]=_):_=t[38];let v;t[39]===Symbol.for(`react.memo_cache_sentinel`)?(v=(0,Z.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,Z.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,Z.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,Z.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]!==_?(S=(0,Z.jsxs)(`div`,{className:f,children:[_,b,x]}),t[45]=b,t[46]=f,t[47]=_,t[48]=S):S=t[48];let C;return t[49]!==o||t[50]!==S||t[51]!==m||t[52]!==h||t[53]!==g?(C=(0,Z.jsxs)(o,{titel:m,rechts:h,children:[g,S]}),t[49]=o,t[50]=S,t[51]=m,t[52]=h,t[53]=g,t[54]=C):C=t[54],C}function nt(e,t){return e+(k(t.size_bytes)??0)}function rt(e){let t=(0,Y.c)(7),{name:n,wert:r}=e,i;t[0]===n?i=t[1]:(i=(0,Z.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,Z.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,Z.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 it(e){let t=(0,Y.c)(48),{titel:n,modell:r,zwilling:i,laeuft:a,nutzer:o}=e,s=u();if(!r){let e;t[0]===n?e=t[1]:(e=(0,Z.jsx)(`span`,{className:`etikett text-[11px] tracking-[0.14em] text-text-3`,children:n}),t[0]=n,t[1]=e);let r;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,Z.jsx)(I,{children:`Frei`}),t[2]=r):r=t[2];let i;t[3]===e?i=t[4]:(i=(0,Z.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,Z.jsx)(`h3`,{className:`font-anzeige text-xl font-semibold text-text-2`,children:`Nicht belegt`}),o=(0,Z.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,Z.jsxs)(`article`,{className:`flex flex-col gap-3.5 rounded-2xl border border-dashed border-white/15 p-5`,children:[i,a,o]}),t[7]=i,t[8]=s),s}let c;t[9]!==r.ctx||t[10]!==r.parallel_slots?(c=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]=c):c=t[11];let l=c,d=!!r.capabilities?.vision||!!i,f;t[12]===n?f=t[13]:(f=(0,Z.jsx)(`span`,{className:`etikett text-[11px] tracking-[0.14em] text-text-3`,children:n}),t[12]=n,t[13]=f);let p=a?`gruen`:`grau`,m=a?`Geladen`:`Auf Abruf`,h;t[14]!==p||t[15]!==m?(h=(0,Z.jsx)(I,{art:p,children:m}),t[14]=p,t[15]=m,t[16]=h):h=t[16];let g;t[17]!==f||t[18]!==h?(g=(0,Z.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[f,h]}),t[17]=f,t[18]=h,t[19]=g):g=t[19];let _;t[20]===r.name?_=t[21]:(_=(0,Z.jsx)(`h3`,{className:`ziffern m-0 text-lg font-medium break-all`,children:r.name}),t[20]=r.name,t[21]=_);let v;t[22]===r.size_bytes?v=t[23]:(v=b(r.size_bytes),t[22]=r.size_bytes,t[23]=v);let y;t[24]===v?y=t[25]:(y=(0,Z.jsx)(rt,{name:`Größe`,wert:v}),t[24]=v,t[25]=y);let x=l?`${l}k`:`–`,S;t[26]===x?S=t[27]:(S=(0,Z.jsx)(rt,{name:`Kontext`,wert:x}),t[26]=x,t[27]=S);let C=d?`ja`:`nein`,w;t[28]===C?w=t[29]:(w=(0,Z.jsx)(rt,{name:`Bilder`,wert:C}),t[28]=C,t[29]=w);let T;t[30]!==S||t[31]!==w||t[32]!==y?(T=(0,Z.jsxs)(`dl`,{className:`m-0 grid grid-cols-3 gap-3`,children:[y,S,w]}),t[30]=S,t[31]=w,t[32]=y,t[33]=T):T=t[33];let E=r.spec_active?` Mit Draft-Beschleunigung.`:``,D=i?` Bilder sieht es über seinen Bild-Zwilling, der nur bei Bedarf lädt.`:``,O;t[34]!==o||t[35]!==E||t[36]!==D?(O=(0,Z.jsxs)(`p`,{className:`text-sm text-text-2`,children:[`Genutzt von `,o,`.`,E,D]}),t[34]=o,t[35]=E,t[36]=D,t[37]=O):O=t[37];let k;t[38]!==s||t[39]!==a||t[40]!==r.name?(k=!a&&(0,Z.jsx)(H,{variant:`outline`,size:`sm`,className:`mt-auto self-start`,onClick:()=>s.mutate(r.name),disabled:s.isPending,children:`Jetzt laden`}),t[38]=s,t[39]=a,t[40]=r.name,t[41]=k):k=t[41];let A;return t[42]!==T||t[43]!==O||t[44]!==k||t[45]!==g||t[46]!==_?(A=(0,Z.jsxs)(`article`,{className:`flex flex-col gap-3.5 flaeche rounded-2xl p-5`,children:[g,_,T,O,k]}),t[42]=T,t[43]=O,t[44]=k,t[45]=g,t[46]=_,t[47]=A):A=t[47],A}var at={bestanden:`gruen`,durchgefallen:`rot`,wartet:`cyan`,neu:`cyan`,getestet:`grau`,uebernommen:`gruen`,verworfen:`grau`},ot={besser:`text-gruen`,schlechter:`text-rot-text`,gleich:`text-text-2`};function st(e){let t=(0,Y.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,Z.jsxs)(`div`,{role:`row`,className:`etikett grid grid-cols-[minmax(0,1fr)_auto_auto] gap-x-4 pb-1 text-[10.5px] tracking-[0.14em] text-text-3`,children:[(0,Z.jsx)(`span`,{role:`columnheader`,children:`Messwert`}),(0,Z.jsx)(`span`,{role:`columnheader`,className:`text-right`,children:`Kandidat`}),(0,Z.jsx)(`span`,{role:`columnheader`,className:`text-right`,children:`Heute`})]}),t[3]=a):a=t[3],r=(0,Z.jsxs)(`div`,{role:`table`,"aria-label":`Messwerte gegen das heutige Modell`,className:`flaeche-innen rounded-xl px-3 py-2 text-sm`,children:[a,e.map(ct)]})}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 ct(e){let[t,n]=e;return(0,Z.jsxs)(`div`,{role:`row`,className:`grid grid-cols-[minmax(0,1fr)_auto_auto] gap-x-4 border-t border-white/[0.06] py-1`,children:[(0,Z.jsx)(`span`,{role:`rowheader`,className:`text-text-2`,children:t}),(0,Z.jsx)(`span`,{role:`cell`,className:`ziffern text-right ${ot[n.urteil??``]??`text-text-2`}`,children:m(n.kandidat,n.einheit)}),(0,Z.jsx)(`span`,{role:`cell`,className:`ziffern text-right text-text-3`,children:m(n.baseline,n.einheit)})]},t)}function lt(e){let t=(0,Y.c)(80),{k:n,test:r,heute:i}=e,a=g(),o=_(),[s,c]=(0,X.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,Z.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,Z.jsx)(I,{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,Z.jsx)(I,{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 v=at[n.status]??`grau`,y=j[n.status]??n.status,b;t[9]!==v||t[10]!==y?(b=(0,Z.jsx)(I,{art:v,children:y}),t[9]=v,t[10]=y,t[11]=b):b=t[11];let x;t[12]!==f||t[13]!==m||t[14]!==h||t[15]!==b?(x=(0,Z.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[f,m,h,b]}),t[12]=f,t[13]=m,t[14]=h,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,Z.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,Z.jsx)(st,{test:r}),t[22]=n.status,t[23]=r,t[24]=w):w=t[24];let T;t[25]!==n.begruendung||t[26]!==n.testbar_grund?(T=n.testbar_grund&&!n.begruendung.startsWith(`Läuft gerade`)&&(0,Z.jsx)(`p`,{className:`text-xs text-text-3`,children:n.testbar_grund}),t[25]=n.begruendung,t[26]=n.testbar_grund,t[27]=T):T=t[27];let E;t[28]!==a.isPending||t[29]!==n.status||t[30]!==n.testbar_jetzt||t[31]!==u||t[32]!==o.isPending?(E=u&&(0,Z.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[n.testbar_jetzt&&(0,Z.jsx)(H,{variant:`info`,size:`sm`,disabled:o.isPending,onClick:()=>c(`testen`),children:`Jetzt testen`}),n.status===`bestanden`&&(0,Z.jsx)(H,{size:`sm`,disabled:a.isPending,onClick:()=>c(`uebernehmen`),children:`Übernehmen`}),(0,Z.jsx)(H,{variant:`outline`,size:`sm`,disabled:a.isPending,onClick:()=>c(`verwerfen`),children:`Verwerfen`})]}),t[28]=a.isPending,t[29]=n.status,t[30]=n.testbar_jetzt,t[31]=u,t[32]=o.isPending,t[33]=E):E=t[33];let D=s===`uebernehmen`,O=`${n.name} übernehmen?`,k=d?`${n.name} wird Lucys Hirn${i?` und löst ${i} 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${i?` und löst ${i} ab`:``}. OpenChamber plant und baut ab dann damit. Das alte Modell bleibt auf der Platte.`,A;t[34]===Symbol.for(`react.memo_cache_sentinel`)?(A=()=>c(null),t[34]=A):A=t[34];let M;t[35]!==a||t[36]!==s||t[37]!==n.id||t[38]!==n.name?(M=()=>{s===`uebernehmen`&&(a.mutate({id:n.id,aktion:`uebernehmen`,name:n.name}),c(null))},t[35]=a,t[36]=s,t[37]=n.id,t[38]=n.name,t[39]=M):M=t[39];let N;t[40]!==a.isPending||t[41]!==D||t[42]!==O||t[43]!==k||t[44]!==M?(N=(0,Z.jsx)(ne,{offen:D,titel:O,text:k,knopf:`Übernehmen`,gesperrt:a.isPending,onNein:A,onJa:M}),t[40]=a.isPending,t[41]=D,t[42]=O,t[43]=k,t[44]=M,t[45]=N):N=t[45];let P=s===`testen`,F=`${n.name} jetzt testen?`,L;t[46]===n.groesse_gb?L=t[47]:(L=n.groesse_gb==null?``:` (${n.groesse_gb.toLocaleString(`de-DE`)} GB)`,t[46]=n.groesse_gb,t[47]=L);let R=`Das Radar lädt ${n.name}${L} herunter, falls nötig, misst das heutige Modell der Rolle und dann den Kandidaten. Das dauert je nach Download eine halbe bis zwei Stunden. Solange antworten Lucy und NerdQuiz etwas langsamer; ein geladener Coder wird dafür entladen, und wird er währenddessen gebraucht, bricht der Test ab. Das Ergebnis kommt als Meldung; fällt der Kandidat durch, werden seine Dateien gelöscht.`,z;t[48]===Symbol.for(`react.memo_cache_sentinel`)?(z=()=>c(null),t[48]=z):z=t[48];let B;t[49]!==s||t[50]!==n.id||t[51]!==n.name||t[52]!==o?(B=()=>{s===`testen`&&(o.mutate({id:n.id,name:n.name}),c(null))},t[49]=s,t[50]=n.id,t[51]=n.name,t[52]=o,t[53]=B):B=t[53];let V;t[54]!==P||t[55]!==F||t[56]!==R||t[57]!==B||t[58]!==o.isPending?(V=(0,Z.jsx)(ne,{offen:P,titel:F,text:R,knopf:`Jetzt testen`,gesperrt:o.isPending,onNein:z,onJa:B}),t[54]=P,t[55]=F,t[56]=R,t[57]=B,t[58]=o.isPending,t[59]=V):V=t[59];let ee=s===`verwerfen`,te=`${n.name} verwerfen?`,U;t[60]===Symbol.for(`react.memo_cache_sentinel`)?(U=()=>c(null),t[60]=U):U=t[60];let W;t[61]!==a||t[62]!==s||t[63]!==n.id||t[64]!==n.name?(W=()=>{s===`verwerfen`&&(a.mutate({id:n.id,aktion:`verwerfen`,name:n.name}),c(null))},t[61]=a,t[62]=s,t[63]=n.id,t[64]=n.name,t[65]=W):W=t[65];let G;t[66]!==a.isPending||t[67]!==ee||t[68]!==te||t[69]!==W?(G=(0,Z.jsx)(ne,{offen:ee,gefahr:!0,titel:te,text:`Die heruntergeladenen Dateien werden gelöscht, und das Radar testet dieses Modell nicht noch einmal.`,knopf:`Verwerfen`,gesperrt:a.isPending,onNein:U,onJa:W}),t[66]=a.isPending,t[67]=ee,t[68]=te,t[69]=W,t[70]=G):G=t[70];let K;return t[71]!==C||t[72]!==w||t[73]!==T||t[74]!==E||t[75]!==N||t[76]!==V||t[77]!==G||t[78]!==x?(K=(0,Z.jsxs)(`li`,{className:`flex flex-col gap-2 border-t border-white/[0.06] py-3.5`,children:[x,C,w,T,E,N,V,G]}),t[71]=C,t[72]=w,t[73]=T,t[74]=E,t[75]=N,t[76]=V,t[77]=G,t[78]=x,t[79]=K):K=t[79],K}function ut(e){let t=(0,Y.c)(30),{hirn:n,coder:r}=e,i=a(),o=h(),s=C(),l=c(),u=s.data?.jobs,d=(u??[]).filter(ft).at(-1),p=o.data?.job_id,m;t[0]!==p||t[1]!==u?(m=!!p&&!!u&&!u.some(e=>e.id===p),t[0]=p,t[1]=u,t[2]=m):m=t[2];let g=m,_=o.isPending||g||d!==void 0&&A(d),v=(0,X.useRef)(_);if((0,X.useEffect)(()=>{v.current&&!_&&l.invalidateQueries({queryKey:[`radar`]}),v.current=_},[_,l]),i.isError&&!i.data){let e=i.error instanceof f&&i.error.status===404,n;return t[3]!==e||t[4]!==i.error?(n=(0,Z.jsx)(K,{titel:`Modell-Radar`,id:`radar`,className:`scroll-mt-4`,children:e?(0,Z.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Das Radar ist auf dieser Box noch nicht eingerichtet.`}):(0,Z.jsxs)(`p`,{role:`alert`,className:`text-[15px] text-rot-text`,children:[`Das Radar antwortet gerade nicht: `,i.error.message]})}),t[3]=e,t[4]=i.error,t[5]=n):n=t[5],n}let y=i.data,b=K,x;t[6]===o?x=t[7]:(x=()=>o.mutate(void 0),t[6]=o,t[7]=x);let S=_?`Sucht …`:`Jetzt suchen`,w;t[8]!==_||t[9]!==x||t[10]!==S?(w=(0,Z.jsx)(H,{variant:`info`,size:`sm`,onClick:x,disabled:_,children:S}),t[8]=_,t[9]=x,t[10]=S,t[11]=w):w=t[11];let T;t[12]===y?T=t[13]:(T=y?.naechster_test?` Nächster Test: ${D(y.naechster_test)}.`:``,t[12]=y,t[13]=T);let E=_?` Sucht gerade bei Hugging Face. Das dauert ein paar Minuten; den Stand zeigt der Auftrag oben unter „Aufträge“.`:``,O;t[14]!==T||t[15]!==E?(O=(0,Z.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. Tagsüber geht es mit „Jetzt testen“, wenn der Kandidat samt Coder in den Speicher passt.`,T,E]}),t[14]=T,t[15]=E,t[16]=O):O=t[16];let k=!_&&d?.state===`failed`&&(0,Z.jsxs)(`p`,{role:`alert`,className:`text-sm text-rot-text`,children:[`Die letzte Suche ist gescheitert: `,re(d)??`ohne Meldung`]}),j;t[17]!==r||t[18]!==y||t[19]!==n?(j=y?y.kandidaten.length===0?(0,Z.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Nichts Besseres in Sicht.`}):(0,Z.jsx)(`ul`,{className:`m-0 flex list-none flex-col p-0`,children:y.kandidaten.map(e=>(0,Z.jsx)(lt,{k:e,test:y.tests.find(t=>t.kandidat===e.id),heute:e.rolle===`hirn`?n:r},e.id))}):(0,Z.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Wird gelesen …`}),t[17]=r,t[18]=y,t[19]=n,t[20]=j):j=t[20];let M;t[21]===y?M=t[22]:(M=y&&y.tests.length>0&&(0,Z.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,Z.jsx)(`h3`,{className:`etikett text-[10.5px] tracking-[0.12em] text-text-3`,children:`Letzte Tests`}),y.tests.slice(0,3).map(dt)]}),t[21]=y,t[22]=M);let N;return t[23]!==b||t[24]!==O||t[25]!==k||t[26]!==j||t[27]!==M||t[28]!==w?(N=(0,Z.jsxs)(b,{titel:`Modell-Radar`,id:`radar`,className:`scroll-mt-4`,rechts:w,children:[O,k,j,M]}),t[23]=b,t[24]=O,t[25]=k,t[26]=j,t[27]=M,t[28]=w,t[29]=N):N=t[29],N}function dt(e){return(0,Z.jsxs)(`p`,{className:`text-sm text-text-2`,children:[(0,Z.jsx)(`span`,{className:`ziffern text-text-3`,children:D(e.datum)}),` · `,e.zusammenfassung]},e.id)}function ft(e){return e.group===`radar`}var pt=`text-rot-text hover:bg-rot-grund hover:text-rot-text`;function mt(e){let t=(0,Y.c)(13),{titel:n,zusatz:r,children:i}=e,a;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,Z.jsx)(F,{className:`size-4 text-text-3 transition-transform group-open:rotate-90`,"aria-hidden":!0}),t[0]=a):a=t[0];let o;t[1]===n?o=t[2]:(o=(0,Z.jsxs)(`span`,{className:`flex items-center gap-2 text-[15px] font-medium`,children:[a,n]}),t[1]=n,t[2]=o);let s;t[3]===r?s=t[4]:(s=(0,Z.jsx)(`span`,{className:`ziffern text-sm text-text-2`,children:r}),t[3]=r,t[4]=s);let c;t[5]!==o||t[6]!==s?(c=(0,Z.jsxs)(`summary`,{className:`flex min-h-12 cursor-pointer list-none items-center justify-between gap-3 [&::-webkit-details-marker]:hidden`,children:[o,s]}),t[5]=o,t[6]=s,t[7]=c):c=t[7];let l;t[8]===i?l=t[9]:(l=(0,Z.jsx)(`div`,{className:`flex flex-col gap-2 pb-1`,children:i}),t[8]=i,t[9]=l);let u;return t[10]!==c||t[11]!==l?(u=(0,Z.jsxs)(`details`,{className:`group flaeche-innen rounded-2xl px-4 open:pb-2`,children:[c,l]}),t[10]=c,t[11]=l,t[12]=u):u=t[12],u}function ht(){let e=(0,Y.c)(37),t=y(),n=E(),[r,i]=(0,X.useState)(null),a,o,s,c,l,u;if(e[0]!==t.data||e[1]!==t.error||e[2]!==t.isError||e[3]!==t.isPending||e[4]!==n){u=Symbol.for(`react.early_return_sentinel`);bb0:{let r=t.data?.kandidaten??[],d=r.reduce(gt,0);if(t.isError&&!t.data){let n;e[11]===t.error.message?n=e[12]:(n=(0,Z.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[11]=t.error.message,e[12]=n);let r;e[13]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,Z.jsx)(vt,{}),e[13]=r):r=e[13];let i;e[14]===n?i=e[15]:(i=(0,Z.jsxs)(K,{titel:`Aufräumen`,children:[n,r]}),e[14]=n,e[15]=i),u=i;break bb0}a=K,o=`Aufräumen`,s=r.length>0?(0,Z.jsxs)(`span`,{className:`ziffern text-sm text-text-2`,children:[`bis zu `,d.toLocaleString(`de-DE`,{maximumFractionDigits:0}),` GB frei`]}):void 0,e[16]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,Z.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[16]=c):c=e[16],l=t.isPending?(0,Z.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Wird gelesen …`}):r.length===0?(0,Z.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Nichts aufzuräumen.`}):(0,Z.jsx)(mt,{titel:`Modelle und Ordner`,zusatz:`${r.length} Einträge · bis zu ${d.toLocaleString(`de-DE`,{maximumFractionDigits:0})} GB`,children:(0,Z.jsx)(`ul`,{className:`m-0 flex list-none flex-col p-0`,children:r.map(e=>(0,Z.jsxs)(`li`,{className:`flex flex-wrap items-center justify-between gap-3 border-t border-white/[0.06] py-3`,children:[(0,Z.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col gap-1`,children:[(0,Z.jsxs)(`span`,{className:`flex flex-wrap items-center gap-2`,children:[(0,Z.jsx)(`span`,{className:`ziffern text-sm break-all`,children:e.name}),(0,Z.jsx)(I,{children:e.art===`eintrag`?`Eintrag`:`Ordner`})]}),(0,Z.jsx)(`span`,{className:`text-sm text-text-2`,children:e.hinweis})]}),(0,Z.jsxs)(`span`,{className:`flex items-center gap-3`,children:[(0,Z.jsxs)(`span`,{className:`ziffern text-sm text-text-2`,children:[e.groesse_gb.toLocaleString(`de-DE`),` GB`]}),(0,Z.jsx)(H,{variant:`ghost`,size:`sm`,className:pt,disabled:n.isPending,onClick:()=>i(e),children:`Löschen`})]})]},`${e.art}-${e.name}`))})})}e[0]=t.data,e[1]=t.error,e[2]=t.isError,e[3]=t.isPending,e[4]=n,e[5]=a,e[6]=o,e[7]=s,e[8]=c,e[9]=l,e[10]=u}else a=e[5],o=e[6],s=e[7],c=e[8],l=e[9],u=e[10];if(u!==Symbol.for(`react.early_return_sentinel`))return u;let d=r!==null,f=`${r?.name??``} löschen?`,p;e[17]===r?.groesse_gb?p=e[18]:(p=r?.groesse_gb.toLocaleString(`de-DE`)??``,e[17]=r?.groesse_gb,e[18]=p);let m=`${r?.hinweis??``} Es werden ${p} GB frei. Das lässt sich nicht rückgängig machen — zurück ginge es nur mit einem neuen Download.`,h;e[19]===Symbol.for(`react.memo_cache_sentinel`)?(h=()=>i(null),e[19]=h):h=e[19];let g;e[20]!==r||e[21]!==n?(g=()=>{r&&n.mutate(r),i(null)},e[20]=r,e[21]=n,e[22]=g):g=e[22];let _;e[23]!==n.isPending||e[24]!==g||e[25]!==d||e[26]!==f||e[27]!==m?(_=(0,Z.jsx)(ne,{offen:d,gefahr:!0,titel:f,text:m,knopf:`Endgültig löschen`,gesperrt:n.isPending,onNein:h,onJa:g}),e[23]=n.isPending,e[24]=g,e[25]=d,e[26]=f,e[27]=m,e[28]=_):_=e[28];let v;e[29]===Symbol.for(`react.memo_cache_sentinel`)?(v=(0,Z.jsx)(vt,{}),e[29]=v):v=e[29];let b;return e[30]!==a||e[31]!==o||e[32]!==s||e[33]!==_||e[34]!==c||e[35]!==l?(b=(0,Z.jsxs)(a,{titel:o,rechts:s,children:[c,l,_,v]}),e[30]=a,e[31]=o,e[32]=s,e[33]=_,e[34]=c,e[35]=l,e[36]=b):b=e[36],b}function gt(e,t){return e+t.groesse_gb}function _t(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 vt(){let e=(0,Y.c)(23),t=v(),n=S(),[r,i]=(0,X.useState)(null),a,o;if(e[0]!==t.data||e[1]!==t.error||e[2]!==t.isError||e[3]!==t.isPending||e[4]!==n.isPending){let r=t.data?.altreste??[],s=r.reduce(yt,0);a=`flex flex-col gap-2`,o=t.isPending?(0,Z.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Wird gelesen …`}):t.isError&&!t.data?(0,Z.jsxs)(`p`,{role:`alert`,className:`text-[15px] text-rot-text`,children:[`Die Altreste lassen sich gerade nicht lesen: `,t.error.message]}):r.length===0?(0,Z.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Keine Altreste mehr.`}):(0,Z.jsxs)(mt,{titel:`Altreste neben dem Betrieb`,zusatz:`${r.length} Einträge · ${_t(s)}`,children:[(0,Z.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.`}),(0,Z.jsx)(`ul`,{className:`m-0 flex list-none flex-col p-0`,children:r.map(e=>(0,Z.jsxs)(`li`,{className:`flex flex-wrap items-center justify-between gap-3 border-t border-white/[0.06] py-3`,children:[(0,Z.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col gap-1`,children:[(0,Z.jsxs)(`span`,{className:`flex flex-wrap items-center gap-2`,children:[(0,Z.jsx)(`span`,{className:`text-sm`,children:e.name}),(0,Z.jsx)(I,{children:`Altrest`})]}),(0,Z.jsx)(`span`,{className:`ziffern text-xs break-all text-text-3`,children:e.pfade.join(` · `)}),(0,Z.jsx)(`span`,{className:`text-sm text-text-2`,children:e.hinweis})]}),(0,Z.jsxs)(`span`,{className:`flex items-center gap-3`,children:[(0,Z.jsx)(`span`,{className:`ziffern text-sm text-text-2`,children:e.groesse}),(0,Z.jsx)(H,{variant:`ghost`,size:`sm`,className:pt,disabled:n.isPending,onClick:()=>i(e),children:`Löschen`})]})]},e.id))})]}),e[0]=t.data,e[1]=t.error,e[2]=t.isError,e[3]=t.isPending,e[4]=n.isPending,e[5]=a,e[6]=o}else a=e[5],o=e[6];let s=r!==null,c=`${r?.name??``} löschen?`,l;e[7]===r?.pfade?l=e[8]:(l=r?.pfade.join(`, `)??``,e[7]=r?.pfade,e[8]=l);let u=`${r?.hinweis??``} Gelöscht wird: ${l} (${r?.groesse??``}). Das lässt sich nicht rückgängig machen.`,d;e[9]===Symbol.for(`react.memo_cache_sentinel`)?(d=()=>i(null),e[9]=d):d=e[9];let f;e[10]!==r||e[11]!==n?(f=()=>{r&&n.mutate(r),i(null)},e[10]=r,e[11]=n,e[12]=f):f=e[12];let p;e[13]!==n.isPending||e[14]!==s||e[15]!==c||e[16]!==u||e[17]!==f?(p=(0,Z.jsx)(ne,{offen:s,gefahr:!0,titel:c,text:u,knopf:`Endgültig löschen`,gesperrt:n.isPending,onNein:d,onJa:f}),e[13]=n.isPending,e[14]=s,e[15]=c,e[16]=u,e[17]=f,e[18]=p):p=e[18];let m;return e[19]!==a||e[20]!==o||e[21]!==p?(m=(0,Z.jsxs)(`div`,{className:a,children:[o,p]}),e[19]=a,e[20]=o,e[21]=p,e[22]=m):m=e[22],m}function yt(e,t){return e+t.groesse_bytes}function bt(){let e=(0,Y.c)(69),t=d(),n=l(),r=a(),i=C(),[o,s]=(0,X.useState)(!1),c;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(c={select:wt},e[0]=c):c=e[0];let u=oe(c),f=!!t.data&&!n.isPending&&!r.isPending&&!i.isPending,p,m;if(e[1]!==f||e[2]!==u?(p=()=>{f&&u===`radar`&&document.getElementById(`radar`)?.scrollIntoView({block:`start`})},m=[f,u],e[1]=f,e[2]=u,e[3]=p,e[4]=m):(p=e[3],m=e[4]),(0,X.useEffect)(p,m),t.isPending){let t;return e[5]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,Z.jsx)(L,{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,Z.jsx)(L,{fehler:!0,text:n}),e[6]=n,e[7]=r),r}let h=t.data.models,g=t.data.running,_,v,y,x,S,w,T,E,O,k,A,j,M;if(e[8]!==g||e[9]!==h||e[10]!==n.data||e[11]!==n.error?.message||e[12]!==n.isPending){let t=h.find(Ct);v=h.find(St);let r;e[26]===h?r=e[27]:(r=(e,t)=>e?h.find(n=>n!==e&&n.aliases.includes(t)&&n.filename===e.filename):void 0,e[26]=h,e[27]=r);let i=r,a=i(t,`vision`);y=i(v,`coder-bild`);let o=h.filter(e=>![t,v,a,y].includes(e)),c;e[28]===n.data?.zuletzt_geladen?c=e[29]:(c=n.data?.zuletzt_geladen??{},e[28]=n.data?.zuletzt_geladen,e[29]=c);let l=c,u={};for(let[e,n]of[[t,`Hirn`],[v,`Coder`],[a,`Bild-Zwilling des Hirns`],[y,`Bild-Zwilling des Coders`]])e&&(u[e.name]=n);e[30]!==g||e[31]!==h?(j=(0,Z.jsx)(tt,{modelle:h,laufend:g}),e[30]=g,e[31]=h,e[32]=j):j=e[32],e[33]===Symbol.for(`react.memo_cache_sentinel`)?(M=(0,Z.jsx)(q,{alsPanel:!0}),e[33]=M):M=e[33];let d;e[34]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,Z.jsx)(it,{titel:`Dritte Rolle`,laeuft:!1,nutzer:``}),e[34]=d):d=e[34],x=(0,Z.jsxs)(`section`,{"aria-label":`Rollen`,className:`grid gap-5 md:grid-cols-3 md:gap-6`,children:[(0,Z.jsx)(it,{titel:`Hirn`,modell:t,zwilling:a,laeuft:!!t&&g.includes(t.name),nutzer:`Lucy, NerdQuiz und OpenChamber für Kleinkram`}),(0,Z.jsx)(it,{titel:`Coder`,modell:v,zwilling:y,laeuft:!!v&&g.includes(v.name),nutzer:`OpenChamber zum Planen und Bauen und Lucys Delegation`}),d]}),S=(0,Z.jsx)(Ye,{nutzung:n.data,laedt:n.isPending,fehler:n.error?.message??null,rollen:u});let f=t?.name,p=v?.name;e[35]!==f||e[36]!==p?(w=(0,Z.jsx)(ut,{hirn:f,coder:p}),e[35]=f,e[36]=p,e[37]=w):w=e[37],_=K,O=`Weitere Einträge`,e[38]===Symbol.for(`react.memo_cache_sentinel`)?(k=(0,Z.jsxs)(H,{variant:`outline`,size:`sm`,onClick:()=>s(!0),children:[(0,Z.jsx)(R,{"aria-hidden":!0}),` Modelle selbst suchen`]}),e[38]=k):k=e[38],A=o.length===0&&(0,Z.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Keine weiteren Einträge.`}),T=`m-0 flex list-none flex-col p-0`;let m;e[39]!==g||e[40]!==l?(m=e=>(0,Z.jsxs)(`li`,{className:`grid grid-cols-[minmax(0,1fr)_auto] items-center gap-3 border-t border-white/[0.06] py-2.5 sm:grid-cols-[minmax(0,1fr)_120px_160px]`,children:[(0,Z.jsxs)(`span`,{className:`min-w-0`,children:[(0,Z.jsx)(`span`,{className:`ziffern block text-sm break-all`,children:e.name}),(0,Z.jsx)(`span`,{className:`text-xs text-text-3`,children:e.aliases.length?e.aliases.join(`, `):`ohne Rolle`})]}),(0,Z.jsx)(`span`,{className:`ziffern text-sm text-text-2`,children:b(e.size_bytes)}),(0,Z.jsx)(`span`,{className:`ziffern hidden text-xs text-text-3 sm:block`,children:g.includes(e.name)?`geladen`:l[e.name]?`zuletzt ${D(l[e.name])}`:`länger nicht geladen`})]},e.name),e[39]=g,e[40]=l,e[41]=m):m=e[41],E=o.map(m),e[8]=g,e[9]=h,e[10]=n.data,e[11]=n.error?.message,e[12]=n.isPending,e[13]=_,e[14]=v,e[15]=y,e[16]=x,e[17]=S,e[18]=w,e[19]=T,e[20]=E,e[21]=O,e[22]=k,e[23]=A,e[24]=j,e[25]=M}else _=e[13],v=e[14],y=e[15],x=e[16],S=e[17],w=e[18],T=e[19],E=e[20],O=e[21],k=e[22],A=e[23],j=e[24],M=e[25];let N;e[42]!==T||e[43]!==E?(N=(0,Z.jsx)(`ul`,{className:T,children:E}),e[42]=T,e[43]=E,e[44]=N):N=e[44];let P;e[45]!==_||e[46]!==N||e[47]!==O||e[48]!==k||e[49]!==A?(P=(0,Z.jsxs)(_,{titel:O,rechts:k,children:[A,N]}),e[45]=_,e[46]=N,e[47]=O,e[48]=k,e[49]=A,e[50]=P):P=e[50];let F;e[51]===Symbol.for(`react.memo_cache_sentinel`)?(F=(0,Z.jsx)(ht,{}),e[51]=F):F=e[51];let I;e[52]===Symbol.for(`react.memo_cache_sentinel`)?(I=()=>s(!1),e[52]=I):I=e[52];let z;e[53]!==v||e[54]!==y?(z=v?{name:v.name,zwilling:!!y,weitere:v.aliases.filter(xt)}:void 0,e[53]=v,e[54]=y,e[55]=z):z=e[55];let B;e[56]===z?B=e[57]:(B={coder:z},e[56]=z,e[57]=B);let V;e[58]!==o||e[59]!==B?(V=(0,Z.jsx)(Ze,{offen:o,onSchliessen:I,rollenJetzt:B}),e[58]=o,e[59]=B,e[60]=V):V=e[60];let ee;return e[61]!==x||e[62]!==S||e[63]!==w||e[64]!==P||e[65]!==V||e[66]!==j||e[67]!==M?(ee=(0,Z.jsxs)(Z.Fragment,{children:[j,M,x,S,w,P,F,V]}),e[61]=x,e[62]=S,e[63]=w,e[64]=P,e[65]=V,e[66]=j,e[67]=M,e[68]=ee):ee=e[68],ee}function xt(e){return e.toLowerCase()!==`coder`}function St(e){return s(e)===`coder`}function Ct(e){return s(e)===`hirn`}function wt(e){return e.hash}export{lt as Kandidat,bt as ModelleSeite}; \ No newline at end of file diff --git a/frontend/dist/assets/Monitoring-BNmttTQJ.js b/frontend/dist/assets/Monitoring-BNmttTQJ.js new file mode 100644 index 0000000..1b476ec --- /dev/null +++ b/frontend/dist/assets/Monitoring-BNmttTQJ.js @@ -0,0 +1 @@ +import{a as e,c as t,i as n,r,t as i}from"./dist-aE7UmubC.js";import{B as a,D as o,St as s,u as c,x as l}from"./abfragen-pD_qBEtc.js";import{t as u}from"./useRouterState-DJr4hrdj.js";import{B as d,F as f,H as p,I as m,L as h,M as g,N as _,P as v,S as y,b,j as x,p as S,x as C}from"./index-Bumw6krN.js";import{t as w}from"./breite-k-QN6GPl.js";var T=t(e(),1),E=r(),D=n(),O={ruhig:{wert:`text-foreground`,marke:null},gelb:{wert:`text-bernstein`,marke:`hoch`},rot:{wert:`text-rot-text`,marke:`kritisch`}};function k(e){let t=(0,E.c)(29),{label:n,wert:r,einheit:a,punkte:o,max:s,zustand:c,farbe:l,zeitraumText:u}=e,d=O[c===void 0?`ruhig`:c],f;t[0]===n?f=t[1]:(f=(0,D.jsx)(`span`,{className:`etikett text-[11px] text-text-3`,children:n}),t[0]=n,t[1]=f);let p;t[2]===d.wert?p=t[3]:(p=i(`font-anzeige text-[28px] leading-none font-semibold tabular-nums`,d.wert),t[2]=d.wert,t[3]=p);let m;t[4]!==a||t[5]!==r?(m=v(r,a),t[4]=a,t[5]=r,t[6]=m):m=t[6];let h;t[7]!==p||t[8]!==m?(h=(0,D.jsx)(`span`,{className:p,children:m}),t[7]=p,t[8]=m,t[9]=h):h=t[9];let g;t[10]!==d.marke||t[11]!==d.wert?(g=d.marke&&(0,D.jsx)(`span`,{className:i(`etikett text-[10.5px]`,d.wert),children:d.marke}),t[10]=d.marke,t[11]=d.wert,t[12]=g):g=t[12];let _;t[13]!==h||t[14]!==g?(_=(0,D.jsxs)(`span`,{className:`flex items-baseline gap-2`,children:[h,g]}),t[13]=h,t[14]=g,t[15]=_):_=t[15];let y;t[16]!==l||t[17]!==n||t[18]!==s||t[19]!==o||t[20]!==u?(y=o&&o.length>1&&(0,D.jsx)(b,{punkte:o,max:s,farbe:l,beschriftung:`${n}, ${u}`}),t[16]=l,t[17]=n,t[18]=s,t[19]=o,t[20]=u,t[21]=y):y=t[21];let x;t[22]===o?x=t[23]:(x=o&&o.length<=1&&(0,D.jsx)(`span`,{className:`h-9`,"aria-hidden":!0}),t[22]=o,t[23]=x);let S;return t[24]!==f||t[25]!==_||t[26]!==y||t[27]!==x?(S=(0,D.jsxs)(`div`,{className:`flaeche-innen flex min-w-0 flex-col gap-1.5 rounded-xl px-3.5 pt-3 pb-2`,children:[f,_,y,x]}),t[24]=f,t[25]=_,t[26]=y,t[27]=x,t[28]=S):S=t[28],S}var A={rechts:12,oben:10,unten:24};function j(e){let t=(0,E.c)(72),{reihen:n,einheit:r,langerZeitraum:i,hoehe:a,titel:o}=e,s=a===void 0?180:a,[c,l]=w(),[u,d]=(0,T.useState)(null),p,m,h,g,b,x,S,O;if(t[0]!==l||t[1]!==r||t[2]!==s||t[3]!==u||t[4]!==i||t[5]!==c||t[6]!==n||t[7]!==o){let e=n[0]?.punkte??[],a=e.length,w=_(n.map(re),r),T=r===`prozent`?[0,25,50,75,100]:[0,w/2,w],E=Math.max(40,Math.max(...T.map(e=>v(e,r).length))*7+12),k;t[16]===E?k=t[17]:(k={...A,links:E},t[16]=E,t[17]=k);let j=k,M=l-j.links-A.rechts,N=s-A.oben-A.unten,ie=e[0]?.[0]??0,P=e[a-1]?.[0]??1,F=e=>j.links+(P>ie?(e-ie)/(P-ie)*M:0),I;t[18]!==N||t[19]!==w?(I=e=>A.oben+N-Math.min(e,w)/(w||1)*N,t[18]=N,t[19]=w,t[20]=I):I=t[20];let L=I,R=A.oben+N,z=a>1?[0,.25,.5,.75,1].map(t=>e[Math.round(t*(a-1))][0]):[],B;t[21]===n?B=t[22]:(B=n.some(ne),t[21]=n,t[22]=B);let V=B,H;t[23]===a?H=t[24]:(H=function(e){if(a===0)return;let t=e.currentTarget.getBoundingClientRect(),n=Math.min(1,Math.max(0,(e.clientX-t.left)/t.width));d(Math.round(n*(a-1)))},t[23]=a,t[24]=H);let U=H,W;t[25]===a?W=t[26]:(W=function(e){if(a!==0){if(e.key===`ArrowLeft`)d(e=>Math.max(0,(e??a-1)-1));else if(e.key===`ArrowRight`)d(e=>Math.min(a-1,(e??a-1)+1));else return;e.preventDefault()}},t[25]=a,t[26]=W);let ae=W,G=u!==null&&e[u]?e[u][0]:null,K=G===null?0:F(G),oe=e.slice(-12);x=`flex flex-col gap-2`,t[27]===n?S=t[28]:(S=n.length>1&&(0,D.jsx)(`ul`,{className:`m-0 flex list-none flex-wrap gap-x-4 gap-y-1 p-0 text-sm text-text-2`,"aria-label":`Legende`,children:n.map(te)}),t[27]=n,t[28]=S);let q;t[29]===a?q=t[30]:(q=()=>d(e=>e??(a?a-1:null)),t[29]=a,t[30]=q);let J;t[31]===Symbol.for(`react.memo_cache_sentinel`)?(J=()=>d(null),t[31]=J):J=t[31];let Y;t[32]!==j.links||t[33]!==R||t[34]!==V||t[35]!==M||t[36]!==N||t[37]!==n||t[38]!==F||t[39]!==L?(Y=V?n.map(e=>(0,D.jsxs)(`g`,{children:[n.length===1&&(0,D.jsx)(`path`,{d:C(e.punkte,F,L,R),fill:e.farbe,opacity:.1}),(0,D.jsx)(`path`,{d:y(e.punkte,F,L),fill:`none`,stroke:e.farbe,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`})]},e.name)):(0,D.jsx)(`text`,{x:j.links+M/2,y:A.oben+N/2,textAnchor:`middle`,className:`fill-text-3 text-sm`,children:`Noch keine Messwerte in diesem Zeitraum`}),t[32]=j.links,t[33]=R,t[34]=V,t[35]=M,t[36]=N,t[37]=n,t[38]=F,t[39]=L,t[40]=Y):Y=t[40];let se;t[41]===Symbol.for(`react.memo_cache_sentinel`)?(se=()=>d(null),t[41]=se):se=t[41];let X;t[42]!==j.links||t[43]!==M||t[44]!==N||t[45]!==U?(X=(0,D.jsx)(`rect`,{x:j.links,y:A.oben,width:M,height:N,fill:`transparent`,onPointerMove:U,onPointerLeave:se}),t[42]=j.links,t[43]=M,t[44]=N,t[45]=U,t[46]=X):X=t[46];let ce=(0,D.jsxs)(`svg`,{width:l,height:s,role:`img`,"aria-label":o,tabIndex:0,onKeyDown:ae,onFocus:q,onBlur:J,className:`block max-w-full outline-none focus-visible:rounded-md focus-visible:ring-2 focus-visible:ring-cyan/60`,children:[T.map(e=>(0,D.jsxs)(`g`,{children:[(0,D.jsx)(`line`,{x1:j.links,x2:l-A.rechts,y1:L(e),y2:L(e),stroke:`var(--linie)`,strokeWidth:1}),(0,D.jsx)(`text`,{x:j.links-8,y:L(e)+4,textAnchor:`end`,className:`fill-text-3 font-mono text-[11px]`,children:v(e,r)})]},e)),z.map((e,t)=>(0,D.jsx)(`text`,{x:F(e),y:s-6,className:`fill-text-3 font-mono text-[11px]`,textAnchor:t===0?`start`:t===z.length-1?`end`:`middle`,children:f(e,i)},e)),Y,G!==null&&(0,D.jsxs)(`g`,{"aria-hidden":!0,children:[(0,D.jsx)(`line`,{x1:F(G),x2:F(G),y1:A.oben,y2:R,stroke:`var(--text-3)`,strokeWidth:1}),n.map(e=>{let t=e.punkte[u]?.[1];return t==null?null:(0,D.jsx)(`circle`,{cx:F(G),cy:L(t),r:4,fill:e.farbe,stroke:`var(--panel)`,strokeWidth:2},e.name)})]}),X]}),Z=G!==null&&(0,D.jsxs)(`div`,{role:`status`,className:`pointer-events-none absolute top-1 z-10 flex min-w-36 flex-col gap-1 rounded-xl border border-white/12 bg-white/[0.04] px-3 py-2 shadow-lg`,style:K>l/2?{right:l-K+10}:{left:K+10},children:[(0,D.jsx)(`span`,{className:`ziffern text-xs text-text-3`,children:f(G,!0)}),n.map(e=>(0,D.jsxs)(`span`,{className:`flex items-center gap-2 text-sm`,children:[(0,D.jsx)(`span`,{"aria-hidden":!0,className:`h-0.5 w-3 rounded-full`,style:{background:e.farbe}}),(0,D.jsx)(`span`,{className:`font-semibold text-foreground`,children:v(e.punkte[u]?.[1],r)}),n.length>1&&(0,D.jsx)(`span`,{className:`text-text-3`,children:e.name})]},e.name))]});t[47]!==c||t[48]!==ce||t[49]!==Z?(O=(0,D.jsxs)(`div`,{ref:c,className:`relative w-full`,children:[ce,Z]}),t[47]=c,t[48]=ce,t[49]=Z,t[50]=O):O=t[50],g=`group text-sm`,t[51]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,D.jsx)(`summary`,{className:`inline-flex cursor-pointer items-center text-text-3 hover:text-text-2`,children:`Werte als Tabelle`}),t[51]=b):b=t[51],m=`ziffern mt-2 w-full max-w-md border-collapse text-xs`;let Q;t[52]===Symbol.for(`react.memo_cache_sentinel`)?(Q=(0,D.jsx)(`th`,{className:`py-1 pr-4 font-normal`,children:`Zeit`}),t[52]=Q):Q=t[52];let $;t[53]===n?$=t[54]:($=n.map(ee),t[53]=n,t[54]=$),t[55]===$?h=t[56]:(h=(0,D.jsx)(`thead`,{children:(0,D.jsxs)(`tr`,{className:`text-left text-text-3`,children:[Q,$]})}),t[55]=$,t[56]=h),p=oe.map((e,t)=>{let[o]=e;return(0,D.jsxs)(`tr`,{className:`border-t border-white/[0.06]`,children:[(0,D.jsx)(`td`,{className:`py-1 pr-4 text-text-3`,children:f(o,i)}),n.map(e=>(0,D.jsx)(`td`,{className:`py-1 pr-4 text-text-2`,children:v(e.punkte[a-oe.length+t]?.[1],r)},e.name))]},o)}),t[0]=l,t[1]=r,t[2]=s,t[3]=u,t[4]=i,t[5]=c,t[6]=n,t[7]=o,t[8]=p,t[9]=m,t[10]=h,t[11]=g,t[12]=b,t[13]=x,t[14]=S,t[15]=O}else p=t[8],m=t[9],h=t[10],g=t[11],b=t[12],x=t[13],S=t[14],O=t[15];let k;t[57]===p?k=t[58]:(k=(0,D.jsx)(`tbody`,{children:p}),t[57]=p,t[58]=k);let j;t[59]!==k||t[60]!==m||t[61]!==h?(j=(0,D.jsxs)(`table`,{className:m,children:[h,k]}),t[59]=k,t[60]=m,t[61]=h,t[62]=j):j=t[62];let M;t[63]!==j||t[64]!==g||t[65]!==b?(M=(0,D.jsxs)(`details`,{className:g,children:[b,j]}),t[63]=j,t[64]=g,t[65]=b,t[66]=M):M=t[66];let N;return t[67]!==M||t[68]!==x||t[69]!==S||t[70]!==O?(N=(0,D.jsxs)(`div`,{className:x,children:[S,O,M]}),t[67]=M,t[68]=x,t[69]=S,t[70]=O,t[71]=N):N=t[71],N}function ee(e){return(0,D.jsx)(`th`,{className:`py-1 pr-4 font-normal`,children:e.name},e.name)}function te(e){return(0,D.jsxs)(`li`,{className:`flex items-center gap-2`,children:[(0,D.jsx)(`span`,{"aria-hidden":!0,className:`h-0.5 w-4 rounded-full`,style:{background:e.farbe}}),e.name]},e.name)}function ne(e){return e.punkte.some(M)}function M(e){let[,t]=e;return t!==null}function re(e){return e.punkte}var N=[{id:`1h`,name:`1 Stunde`,text:`letzte Stunde`},{id:`24h`,name:`24 Stunden`,text:`letzte 24 Stunden`},{id:`7d`,name:`7 Tage`,text:`letzte 7 Tage`}];function ie(e){let t=(0,E.c)(6),{wert:n,onWahl:r,farbe:a}=e,o=a===`box`?`border-box-rand bg-box-grund text-box-text`:`border-lab-rand bg-lab-grund text-lab-text`,s;t[0]!==o||t[1]!==r||t[2]!==n?(s=N.map(e=>(0,D.jsx)(`button`,{type:`button`,onClick:()=>r(e.id),"aria-pressed":n===e.id,className:i(`h-9 rounded-full border px-4 text-sm`,n===e.id?o:`border-white/10 text-text-2 hover:border-white/20 hover:text-foreground`),children:e.name},e.id)),t[0]=o,t[1]=r,t[2]=n,t[3]=s):s=t[3];let c;return t[4]===s?c=t[5]:(c=(0,D.jsx)(`div`,{role:`group`,"aria-label":`Zeitraum`,className:`flex flex-wrap gap-2`,children:s}),t[4]=s,t[5]=c),c}function P(e){let t=(0,E.c)(9),{titel:n,rechts:r,children:i}=e,a;t[0]===n?a=t[1]:(a=(0,D.jsx)(`h3`,{className:`etikett text-[11.5px] tracking-[0.16em] text-text-2`,children:n}),t[0]=n,t[1]=a);let o;t[2]!==r||t[3]!==a?(o=(0,D.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[a,r]}),t[2]=r,t[3]=a,t[4]=o):o=t[4];let s;return t[5]!==i||t[6]!==o||t[7]!==n?(s=(0,D.jsxs)(`section`,{"aria-label":n,className:`flex min-w-0 flex-col gap-3 flaeche rounded-2xl p-4 sm:p-5`,children:[o,i]}),t[5]=i,t[6]=o,t[7]=n,t[8]=s):s=t[8],s}var F=e=>N.find(t=>t.id===e)?.text??``;function I(){let e=(0,E.c)(97),[t,n]=(0,T.useState)(`1h`),r=c(t),a=s(),o;e[0]===r.data?.reihen?o=e[1]:(o=r.data?.reihen??{},e[0]=r.data?.reihen,e[1]=o);let l=o,u;e[2]===r.data?.aktuell?u=e[3]:(u=r.data?.aktuell??{},e[2]=r.data?.aktuell,e[3]=u);let d=u,f=t===`7d`,h;e[4]!==d||e[5]!==l?(h=(e,t)=>e??d[t]??g(l[t]),e[4]=d,e[5]=l,e[6]=h):h=e[6];let _=h,v;e[7]===t?v=e[8]:(v=(0,D.jsx)(ie,{wert:t,onWahl:n,farbe:`box`}),e[7]=t,e[8]=v);let y;e[9]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,D.jsx)(`span`,{className:`text-sm text-text-3`,children:`Zahlen live, Verläufe im Minutentakt`}),e[9]=y):y=e[9];let b;e[10]===v?b=e[11]:(b=(0,D.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[v,y]}),e[10]=v,e[11]=b);let x=a?.cpu,S;e[12]!==x||e[13]!==_?(S=_(x,`cpu`),e[12]=x,e[13]=_,e[14]=S):S=e[14];let C=a?.cpu,w;e[15]!==C||e[16]!==_?(w=m(_(C,`cpu`),85,95),e[15]=C,e[16]=_,e[17]=w):w=e[17];let O;e[18]===t?O=e[19]:(O=F(t),e[18]=t,e[19]=O);let A;e[20]!==O||e[21]!==S||e[22]!==w?(A=(0,D.jsx)(k,{label:`CPU`,wert:S,einheit:`prozent`,max:100,zustand:w,zeitraumText:O}),e[20]=O,e[21]=S,e[22]=w,e[23]=A):A=e[23];let ee=a?.ram,te;e[24]!==ee||e[25]!==_?(te=_(ee,`ram`),e[24]=ee,e[25]=_,e[26]=te):te=e[26];let ne=a?.ram,M;e[27]!==ne||e[28]!==_?(M=m(_(ne,`ram`),85,95),e[27]=ne,e[28]=_,e[29]=M):M=e[29];let re;e[30]===t?re=e[31]:(re=F(t),e[30]=t,e[31]=re);let N;e[32]!==te||e[33]!==M||e[34]!==re?(N=(0,D.jsx)(k,{label:`Speicher`,wert:te,einheit:`prozent`,max:100,zustand:M,zeitraumText:re}),e[32]=te,e[33]=M,e[34]=re,e[35]=N):N=e[35];let I=a?.gpu,L;e[36]!==I||e[37]!==_?(L=_(I,`gpu`),e[36]=I,e[37]=_,e[38]=L):L=e[38];let R;e[39]===t?R=e[40]:(R=F(t),e[39]=t,e[40]=R);let z;e[41]!==L||e[42]!==R?(z=(0,D.jsx)(k,{label:`GPU`,wert:L,einheit:`prozent`,max:100,zeitraumText:R}),e[41]=L,e[42]=R,e[43]=z):z=e[43];let B=a?.temp_cpu,V;e[44]!==B||e[45]!==_?(V=_(B,`temp_cpu`),e[44]=B,e[45]=_,e[46]=V):V=e[46];let H=a?.temp_cpu,U;e[47]!==H||e[48]!==_?(U=m(_(H,`temp_cpu`),80,90),e[47]=H,e[48]=_,e[49]=U):U=e[49];let W;e[50]===t?W=e[51]:(W=F(t),e[50]=t,e[51]=W);let ae;e[52]!==V||e[53]!==U||e[54]!==W?(ae=(0,D.jsx)(k,{label:`CPU-Temp.`,wert:V,einheit:`grad`,max:100,zustand:U,zeitraumText:W}),e[52]=V,e[53]=U,e[54]=W,e[55]=ae):ae=e[55];let G=a?.temp_gpu,K;e[56]!==G||e[57]!==_?(K=_(G,`temp_gpu`),e[56]=G,e[57]=_,e[58]=K):K=e[58];let oe=a?.temp_gpu,q;e[59]!==oe||e[60]!==_?(q=m(_(oe,`temp_gpu`),80,90),e[59]=oe,e[60]=_,e[61]=q):q=e[61];let J;e[62]===t?J=e[63]:(J=F(t),e[62]=t,e[63]=J);let Y;e[64]!==K||e[65]!==q||e[66]!==J?(Y=(0,D.jsx)(k,{label:`GPU-Temp.`,wert:K,einheit:`grad`,max:100,zustand:q,zeitraumText:J}),e[64]=K,e[65]=q,e[66]=J,e[67]=Y):Y=e[67];let se=a?.disk,X;e[68]!==se||e[69]!==_?(X=_(se,`platte`),e[68]=se,e[69]=_,e[70]=X):X=e[70];let ce=a?.disk,Z;e[71]!==ce||e[72]!==_?(Z=m(_(ce,`platte`),80,90),e[71]=ce,e[72]=_,e[73]=Z):Z=e[73];let Q;e[74]===t?Q=e[75]:(Q=F(t),e[74]=t,e[75]=Q);let $;e[76]!==X||e[77]!==Z||e[78]!==Q?($=(0,D.jsx)(k,{label:`Platte`,wert:X,einheit:`prozent`,max:100,zustand:Z,zeitraumText:Q}),e[76]=X,e[77]=Z,e[78]=Q,e[79]=$):$=e[79];let le;e[80]!==A||e[81]!==N||e[82]!==z||e[83]!==ae||e[84]!==Y||e[85]!==$?(le=(0,D.jsxs)(`div`,{className:`grid grid-cols-2 gap-2.5 sm:grid-cols-3 xl:grid-cols-6`,children:[A,N,z,ae,Y,$]}),e[80]=A,e[81]=N,e[82]=z,e[83]=ae,e[84]=Y,e[85]=$,e[86]=le):le=e[86];let ue;e[87]!==f||e[88]!==r.data||e[89]!==r.isError||e[90]!==r.isPlaceholderData||e[91]!==l?(ue=r.isError&&!r.data?(0,D.jsx)(p,{text:`Der Verlauf ist noch nicht da: Die KI-Box sammelt Messwerte, sobald der neue Stand läuft. Die Zahlen oben sind live.`}):(0,D.jsxs)(`div`,{className:i(`grid gap-5 md:gap-6 xl:grid-cols-2`,r.isPlaceholderData&&`opacity-70`),children:[(0,D.jsx)(P,{titel:`CPU`,children:(0,D.jsx)(j,{titel:`CPU-Auslastung in Prozent`,einheit:`prozent`,langerZeitraum:f,reihen:[{name:`CPU`,punkte:l.cpu??[],farbe:`var(--reihe-1)`}]})}),(0,D.jsx)(P,{titel:`Speicher`,children:(0,D.jsx)(j,{titel:`Belegter Speicher in Prozent`,einheit:`prozent`,langerZeitraum:f,reihen:[{name:`Speicher`,punkte:l.ram??[],farbe:`var(--reihe-1)`}]})}),(0,D.jsx)(P,{titel:`GPU`,children:(0,D.jsx)(j,{titel:`GPU-Last in Prozent`,einheit:`prozent`,langerZeitraum:f,reihen:[{name:`GPU`,punkte:l.gpu??[],farbe:`var(--reihe-1)`}]})}),(0,D.jsx)(P,{titel:`Temperatur`,children:(0,D.jsx)(j,{titel:`Temperatur von CPU und GPU in Grad`,einheit:`grad`,langerZeitraum:f,reihen:[{name:`CPU`,punkte:l.temp_cpu??[],farbe:`var(--reihe-1)`},{name:`GPU`,punkte:l.temp_gpu??[],farbe:`var(--reihe-2)`}]})}),(0,D.jsx)(P,{titel:`Netz`,children:(0,D.jsx)(j,{titel:`Netzverkehr in Bytes pro Sekunde`,einheit:`bytes_s`,langerZeitraum:f,reihen:[{name:`empfangen`,punkte:l.netz_rx??[],farbe:`var(--reihe-1)`},{name:`gesendet`,punkte:l.netz_tx??[],farbe:`var(--reihe-2)`}]})}),(0,D.jsx)(P,{titel:`Tokens pro Minute`,children:(0,D.jsx)(j,{titel:`Erzeugte und gelesene Tokens pro Minute`,einheit:`anzahl`,langerZeitraum:f,reihen:[{name:`Tokens`,punkte:l.tokens??[],farbe:`var(--reihe-1)`}]})})]}),e[87]=f,e[88]=r.data,e[89]=r.isError,e[90]=r.isPlaceholderData,e[91]=l,e[92]=ue):ue=e[92];let de;return e[93]!==le||e[94]!==ue||e[95]!==b?(de=(0,D.jsxs)(D.Fragment,{children:[b,le,ue]}),e[93]=le,e[94]=ue,e[95]=b,e[96]=de):de=e[96],de}function L(e){let t=(0,E.c)(43),{g:n,zeitraum:r}=e,i=n.aktuell,a=n.id,o=n.name,s;t[0]!==n.art||t[1]!==n.name?(s=d({art:n.art,name:n.name}),t[0]=n.art,t[1]=n.name,t[2]=s):s=t[2];let c;t[3]===s?c=t[4]:(c=(0,D.jsx)(h,{bild:s,groesse:`sm`}),t[3]=s,t[4]=c);let l;t[5]===n.name?l=t[6]:(l=(0,D.jsx)(`h3`,{className:`text-[15px] font-semibold`,children:n.name}),t[5]=n.name,t[6]=l);let u;t[7]!==c||t[8]!==l?(u=(0,D.jsxs)(`span`,{className:`flex min-w-0 items-center gap-3`,children:[c,l]}),t[7]=c,t[8]=l,t[9]=u):u=t[9];let f;t[10]===i.cpu?f=t[11]:(f=i.cpu==null?`–`:`${Math.round(i.cpu)} %`,t[10]=i.cpu,t[11]=f);let p;t[12]===i.ram?p=t[13]:(p=i.ram==null?`–`:`${Math.round(i.ram)} %`,t[12]=i.ram,t[13]=p);let m;t[14]===i.uptime_s?m=t[15]:(m=x(i.uptime_s),t[14]=i.uptime_s,t[15]=m);let g;t[16]!==f||t[17]!==p||t[18]!==m?(g=(0,D.jsxs)(`span`,{className:`ziffern text-xs text-text-3`,children:[`CPU `,f,` · RAM `,p,` · läuft `,m]}),t[16]=f,t[17]=p,t[18]=m,t[19]=g):g=t[19];let _;t[20]!==g||t[21]!==u?(_=(0,D.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[u,g]}),t[20]=g,t[21]=u,t[22]=_):_=t[22];let v=`${n.name}: CPU und Speicher in Prozent`,y=r===`7d`,b;t[23]===n.reihen.cpu?b=t[24]:(b=n.reihen.cpu??[],t[23]=n.reihen.cpu,t[24]=b);let S;t[25]===b?S=t[26]:(S={name:`CPU`,punkte:b,farbe:`var(--reihe-1)`},t[25]=b,t[26]=S);let C;t[27]===n.reihen.ram?C=t[28]:(C=n.reihen.ram??[],t[27]=n.reihen.ram,t[28]=C);let w;t[29]===C?w=t[30]:(w={name:`Speicher`,punkte:C,farbe:`var(--reihe-2)`},t[29]=C,t[30]=w);let T;t[31]!==S||t[32]!==w?(T=[S,w],t[31]=S,t[32]=w,t[33]=T):T=t[33];let O;t[34]!==v||t[35]!==y||t[36]!==T?(O=(0,D.jsx)(j,{titel:v,einheit:`prozent`,langerZeitraum:y,hoehe:140,reihen:T}),t[34]=v,t[35]=y,t[36]=T,t[37]=O):O=t[37];let k;return t[38]!==n.id||t[39]!==n.name||t[40]!==_||t[41]!==O?(k=(0,D.jsxs)(`section`,{id:a,"aria-label":o,className:`flex min-w-0 scroll-mt-6 flex-col gap-3 flaeche rounded-2xl p-4 sm:p-5`,children:[_,O]}),t[38]=n.id,t[39]=n.name,t[40]=_,t[41]=O,t[42]=k):k=t[42],k}function R(){let e=(0,E.c)(31),[t,n]=(0,T.useState)(`1h`),r=o(),s=a(),c=r.data?.rolle===`homelab`||!!(s.data?.eingerichtet&&s.data.erreichbar),d=l(t,c),f;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(f={select:H},e[0]=f):f=e[0];let h=u(f),g,_;if(e[1]!==h||e[2]!==d.data?(g=()=>{h&&d.data&&document.getElementById(h)?.scrollIntoView({block:`start`})},_=[h,d.data],e[1]=h,e[2]=d.data,e[3]=g,e[4]=_):(g=e[3],_=e[4]),(0,T.useEffect)(g,_),!c){let t;return e[5]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,D.jsx)(p,{fehler:!0,text:`Der Homelab-Teil antwortet gerade nicht.`}),e[5]=t):t=e[5],t}if(d.isPending){let t;return e[6]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,D.jsx)(p,{text:`Die Messwerte kommen gleich …`}),e[6]=t):t=e[6],t}if(!d.data){let t;return e[7]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,D.jsx)(p,{text:`Noch keine Messwerte: Der Ausführer schickt sie jede Minute, sobald sein neuer Stand eingespielt ist.`}),e[7]=t):t=e[7],t}let v,y,b,C;if(e[8]!==d.data.geraete||e[9]!==d.isPlaceholderData||e[10]!==t){let r=d.data.geraete.find(V),a=d.data.geraete.filter(B),o=t===`7d`,s=r?.aktuell??{},c;e[15]===t?c=e[16]:(c=(0,D.jsx)(ie,{wert:t,onWahl:n,farbe:`homelab`}),e[15]=t,e[16]=c);let l;e[17]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,D.jsx)(`span`,{className:`text-sm text-text-3`,children:`Werte im Minutentakt vom Proxmox-Host`}),e[17]=l):l=e[17],e[18]===c?b=e[19]:(b=(0,D.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[c,l]}),e[18]=c,e[19]=b),C=r&&(0,D.jsxs)(S,{titel:`Proxmox-Host`,rechts:(0,D.jsxs)(`span`,{className:`ziffern text-sm text-text-3`,children:[`läuft `,x(s.uptime_s),s.load1==null?``:` · Last ${s.load1.toFixed(2).replace(`.`,`,`)}`]}),children:[(0,D.jsxs)(`div`,{className:`grid grid-cols-2 gap-2.5 sm:grid-cols-4`,children:[(0,D.jsx)(k,{label:`CPU`,wert:s.cpu,einheit:`prozent`,max:100,punkte:r.reihen.cpu,zustand:m(s.cpu??null,85,95),zeitraumText:F(t)}),(0,D.jsx)(k,{label:`Speicher`,wert:s.ram,einheit:`prozent`,max:100,punkte:r.reihen.ram,zustand:m(s.ram??null,90,95),zeitraumText:F(t)}),(0,D.jsx)(k,{label:`Temperatur`,wert:s.temp_cpu,einheit:`grad`,max:100,punkte:r.reihen.temp_cpu,zustand:m(s.temp_cpu??null,80,90),zeitraumText:F(t)}),(0,D.jsx)(k,{label:`Systemplatte`,wert:s.platte,einheit:`prozent`,max:100,punkte:r.reihen.platte,zustand:m(s.platte??null,80,90),zeitraumText:F(t)})]}),(0,D.jsxs)(`div`,{className:i(`grid gap-5 xl:grid-cols-2`,d.isPlaceholderData&&`opacity-70`),children:[(0,D.jsx)(P,{titel:`CPU und Speicher`,children:(0,D.jsx)(j,{titel:`Proxmox-Host: CPU und Speicher in Prozent`,einheit:`prozent`,langerZeitraum:o,reihen:[{name:`CPU`,punkte:r.reihen.cpu??[],farbe:`var(--reihe-1)`},{name:`Speicher`,punkte:r.reihen.ram??[],farbe:`var(--reihe-2)`}]})}),(0,D.jsx)(P,{titel:`Netz`,children:(0,D.jsx)(j,{titel:`Proxmox-Host: Netzverkehr in Bytes pro Sekunde`,einheit:`bytes_s`,langerZeitraum:o,reihen:[{name:`empfangen`,punkte:r.reihen.netz_rx??[],farbe:`var(--reihe-1)`},{name:`gesendet`,punkte:r.reihen.netz_tx??[],farbe:`var(--reihe-2)`}]})}),(r.reihen.temp_cpu?.some(z)??!1)&&(0,D.jsx)(P,{titel:`Temperatur`,children:(0,D.jsx)(j,{titel:`Proxmox-Host: CPU-Temperatur in Grad`,einheit:`grad`,langerZeitraum:o,reihen:[{name:`CPU`,punkte:r.reihen.temp_cpu??[],farbe:`var(--reihe-1)`}]})})]})]});let u=d.isPlaceholderData&&`opacity-70`;e[20]===u?v=e[21]:(v=i(`grid gap-5 md:gap-6 xl:grid-cols-2`,u),e[20]=u,e[21]=v);let f;e[22]===t?f=e[23]:(f=e=>(0,D.jsx)(L,{g:e,zeitraum:t},e.id),e[22]=t,e[23]=f),y=a.map(f),e[8]=d.data.geraete,e[9]=d.isPlaceholderData,e[10]=t,e[11]=v,e[12]=y,e[13]=b,e[14]=C}else v=e[11],y=e[12],b=e[13],C=e[14];let w;e[24]!==v||e[25]!==y?(w=(0,D.jsx)(`div`,{className:v,children:y}),e[24]=v,e[25]=y,e[26]=w):w=e[26];let O;return e[27]!==b||e[28]!==C||e[29]!==w?(O=(0,D.jsxs)(D.Fragment,{children:[b,C,w]}),e[27]=b,e[28]=C,e[29]=w,e[30]=O):O=e[30],O}function z(e){let[,t]=e;return t!==null}function B(e){return e.art!==`proxmox-host`}function V(e){return e.art===`proxmox-host`}function H(e){return e.location.hash}export{I as BoxMonitoringSeite,R as HomelabMonitoringSeite}; \ No newline at end of file diff --git a/frontend/dist/assets/Monitoring-N1nkbn6G.js b/frontend/dist/assets/Monitoring-N1nkbn6G.js deleted file mode 100644 index d7ff003..0000000 --- a/frontend/dist/assets/Monitoring-N1nkbn6G.js +++ /dev/null @@ -1 +0,0 @@ -import{a as e,c as t,i as n,r,t as i}from"./dist-aE7UmubC.js";import{D as a,R as o,pt as s,u as c,x as l}from"./abfragen-DKcWnZ8a.js";import{t as u}from"./useRouterState-DJr4hrdj.js";import{C as d,D as f,E as p,N as m,O as h,S as g,T as _,d as v,f as y,j as b,p as x,w as S}from"./index-BUHDF9RN.js";import{t as C}from"./Panel-uT1S5ZGr.js";import{t as w}from"./breite-k-QN6GPl.js";var T=t(e(),1),E=r(),D=n(),O={ruhig:{wert:`text-foreground`,marke:null},gelb:{wert:`text-bernstein`,marke:`hoch`},rot:{wert:`text-rot-text`,marke:`kritisch`}};function k(e){let t=(0,E.c)(29),{label:n,wert:r,einheit:a,punkte:o,max:s,zustand:c,farbe:l,zeitraumText:u}=e,d=O[c===void 0?`ruhig`:c],f;t[0]===n?f=t[1]:(f=(0,D.jsx)(`span`,{className:`etikett text-[11px] text-text-3`,children:n}),t[0]=n,t[1]=f);let p;t[2]===d.wert?p=t[3]:(p=i(`font-anzeige text-[28px] leading-none font-semibold tabular-nums`,d.wert),t[2]=d.wert,t[3]=p);let m;t[4]!==a||t[5]!==r?(m=_(r,a),t[4]=a,t[5]=r,t[6]=m):m=t[6];let h;t[7]!==p||t[8]!==m?(h=(0,D.jsx)(`span`,{className:p,children:m}),t[7]=p,t[8]=m,t[9]=h):h=t[9];let g;t[10]!==d.marke||t[11]!==d.wert?(g=d.marke&&(0,D.jsx)(`span`,{className:i(`etikett text-[10.5px]`,d.wert),children:d.marke}),t[10]=d.marke,t[11]=d.wert,t[12]=g):g=t[12];let y;t[13]!==h||t[14]!==g?(y=(0,D.jsxs)(`span`,{className:`flex items-baseline gap-2`,children:[h,g]}),t[13]=h,t[14]=g,t[15]=y):y=t[15];let b;t[16]!==l||t[17]!==n||t[18]!==s||t[19]!==o||t[20]!==u?(b=o&&o.length>1&&(0,D.jsx)(v,{punkte:o,max:s,farbe:l,beschriftung:`${n}, ${u}`}),t[16]=l,t[17]=n,t[18]=s,t[19]=o,t[20]=u,t[21]=b):b=t[21];let x;t[22]===o?x=t[23]:(x=o&&o.length<=1&&(0,D.jsx)(`span`,{className:`h-9`,"aria-hidden":!0}),t[22]=o,t[23]=x);let S;return t[24]!==f||t[25]!==y||t[26]!==b||t[27]!==x?(S=(0,D.jsxs)(`div`,{className:`flaeche-innen flex min-w-0 flex-col gap-1.5 rounded-xl px-3.5 pt-3 pb-2`,children:[f,y,b,x]}),t[24]=f,t[25]=y,t[26]=b,t[27]=x,t[28]=S):S=t[28],S}var A={rechts:12,oben:10,unten:24};function j(e){let t=(0,E.c)(72),{reihen:n,einheit:r,langerZeitraum:i,hoehe:a,titel:o}=e,s=a===void 0?180:a,[c,l]=w(),[u,d]=(0,T.useState)(null),f,m,h,g,v,b,C,O;if(t[0]!==l||t[1]!==r||t[2]!==s||t[3]!==u||t[4]!==i||t[5]!==c||t[6]!==n||t[7]!==o){let e=n[0]?.punkte??[],a=e.length,w=S(n.map(re),r),T=r===`prozent`?[0,25,50,75,100]:[0,w/2,w],E=Math.max(40,Math.max(...T.map(e=>_(e,r).length))*7+12),k;t[16]===E?k=t[17]:(k={...A,links:E},t[16]=E,t[17]=k);let j=k,M=l-j.links-A.rechts,N=s-A.oben-A.unten,ie=e[0]?.[0]??0,P=e[a-1]?.[0]??1,F=e=>j.links+(P>ie?(e-ie)/(P-ie)*M:0),I;t[18]!==N||t[19]!==w?(I=e=>A.oben+N-Math.min(e,w)/(w||1)*N,t[18]=N,t[19]=w,t[20]=I):I=t[20];let L=I,R=A.oben+N,z=a>1?[0,.25,.5,.75,1].map(t=>e[Math.round(t*(a-1))][0]):[],B;t[21]===n?B=t[22]:(B=n.some(ne),t[21]=n,t[22]=B);let V=B,H;t[23]===a?H=t[24]:(H=function(e){if(a===0)return;let t=e.currentTarget.getBoundingClientRect(),n=Math.min(1,Math.max(0,(e.clientX-t.left)/t.width));d(Math.round(n*(a-1)))},t[23]=a,t[24]=H);let U=H,W;t[25]===a?W=t[26]:(W=function(e){if(a!==0){if(e.key===`ArrowLeft`)d(e=>Math.max(0,(e??a-1)-1));else if(e.key===`ArrowRight`)d(e=>Math.min(a-1,(e??a-1)+1));else return;e.preventDefault()}},t[25]=a,t[26]=W);let ae=W,G=u!==null&&e[u]?e[u][0]:null,K=G===null?0:F(G),oe=e.slice(-12);b=`flex flex-col gap-2`,t[27]===n?C=t[28]:(C=n.length>1&&(0,D.jsx)(`ul`,{className:`m-0 flex list-none flex-wrap gap-x-4 gap-y-1 p-0 text-sm text-text-2`,"aria-label":`Legende`,children:n.map(te)}),t[27]=n,t[28]=C);let q;t[29]===a?q=t[30]:(q=()=>d(e=>e??(a?a-1:null)),t[29]=a,t[30]=q);let J;t[31]===Symbol.for(`react.memo_cache_sentinel`)?(J=()=>d(null),t[31]=J):J=t[31];let Y;t[32]!==j.links||t[33]!==R||t[34]!==V||t[35]!==M||t[36]!==N||t[37]!==n||t[38]!==F||t[39]!==L?(Y=V?n.map(e=>(0,D.jsxs)(`g`,{children:[n.length===1&&(0,D.jsx)(`path`,{d:y(e.punkte,F,L,R),fill:e.farbe,opacity:.1}),(0,D.jsx)(`path`,{d:x(e.punkte,F,L),fill:`none`,stroke:e.farbe,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`})]},e.name)):(0,D.jsx)(`text`,{x:j.links+M/2,y:A.oben+N/2,textAnchor:`middle`,className:`fill-text-3 text-sm`,children:`Noch keine Messwerte in diesem Zeitraum`}),t[32]=j.links,t[33]=R,t[34]=V,t[35]=M,t[36]=N,t[37]=n,t[38]=F,t[39]=L,t[40]=Y):Y=t[40];let se;t[41]===Symbol.for(`react.memo_cache_sentinel`)?(se=()=>d(null),t[41]=se):se=t[41];let X;t[42]!==j.links||t[43]!==M||t[44]!==N||t[45]!==U?(X=(0,D.jsx)(`rect`,{x:j.links,y:A.oben,width:M,height:N,fill:`transparent`,onPointerMove:U,onPointerLeave:se}),t[42]=j.links,t[43]=M,t[44]=N,t[45]=U,t[46]=X):X=t[46];let ce=(0,D.jsxs)(`svg`,{width:l,height:s,role:`img`,"aria-label":o,tabIndex:0,onKeyDown:ae,onFocus:q,onBlur:J,className:`block max-w-full outline-none focus-visible:rounded-md focus-visible:ring-2 focus-visible:ring-cyan/60`,children:[T.map(e=>(0,D.jsxs)(`g`,{children:[(0,D.jsx)(`line`,{x1:j.links,x2:l-A.rechts,y1:L(e),y2:L(e),stroke:`var(--linie)`,strokeWidth:1}),(0,D.jsx)(`text`,{x:j.links-8,y:L(e)+4,textAnchor:`end`,className:`fill-text-3 font-mono text-[11px]`,children:_(e,r)})]},e)),z.map((e,t)=>(0,D.jsx)(`text`,{x:F(e),y:s-6,className:`fill-text-3 font-mono text-[11px]`,textAnchor:t===0?`start`:t===z.length-1?`end`:`middle`,children:p(e,i)},e)),Y,G!==null&&(0,D.jsxs)(`g`,{"aria-hidden":!0,children:[(0,D.jsx)(`line`,{x1:F(G),x2:F(G),y1:A.oben,y2:R,stroke:`var(--text-3)`,strokeWidth:1}),n.map(e=>{let t=e.punkte[u]?.[1];return t==null?null:(0,D.jsx)(`circle`,{cx:F(G),cy:L(t),r:4,fill:e.farbe,stroke:`var(--panel)`,strokeWidth:2},e.name)})]}),X]}),Z=G!==null&&(0,D.jsxs)(`div`,{role:`status`,className:`pointer-events-none absolute top-1 z-10 flex min-w-36 flex-col gap-1 rounded-xl border border-white/12 bg-white/[0.04] px-3 py-2 shadow-lg`,style:K>l/2?{right:l-K+10}:{left:K+10},children:[(0,D.jsx)(`span`,{className:`ziffern text-xs text-text-3`,children:p(G,!0)}),n.map(e=>(0,D.jsxs)(`span`,{className:`flex items-center gap-2 text-sm`,children:[(0,D.jsx)(`span`,{"aria-hidden":!0,className:`h-0.5 w-3 rounded-full`,style:{background:e.farbe}}),(0,D.jsx)(`span`,{className:`font-semibold text-foreground`,children:_(e.punkte[u]?.[1],r)}),n.length>1&&(0,D.jsx)(`span`,{className:`text-text-3`,children:e.name})]},e.name))]});t[47]!==c||t[48]!==ce||t[49]!==Z?(O=(0,D.jsxs)(`div`,{ref:c,className:`relative w-full`,children:[ce,Z]}),t[47]=c,t[48]=ce,t[49]=Z,t[50]=O):O=t[50],g=`group text-sm`,t[51]===Symbol.for(`react.memo_cache_sentinel`)?(v=(0,D.jsx)(`summary`,{className:`inline-flex cursor-pointer items-center text-text-3 hover:text-text-2`,children:`Werte als Tabelle`}),t[51]=v):v=t[51],m=`ziffern mt-2 w-full max-w-md border-collapse text-xs`;let Q;t[52]===Symbol.for(`react.memo_cache_sentinel`)?(Q=(0,D.jsx)(`th`,{className:`py-1 pr-4 font-normal`,children:`Zeit`}),t[52]=Q):Q=t[52];let $;t[53]===n?$=t[54]:($=n.map(ee),t[53]=n,t[54]=$),t[55]===$?h=t[56]:(h=(0,D.jsx)(`thead`,{children:(0,D.jsxs)(`tr`,{className:`text-left text-text-3`,children:[Q,$]})}),t[55]=$,t[56]=h),f=oe.map((e,t)=>{let[o]=e;return(0,D.jsxs)(`tr`,{className:`border-t border-white/[0.06]`,children:[(0,D.jsx)(`td`,{className:`py-1 pr-4 text-text-3`,children:p(o,i)}),n.map(e=>(0,D.jsx)(`td`,{className:`py-1 pr-4 text-text-2`,children:_(e.punkte[a-oe.length+t]?.[1],r)},e.name))]},o)}),t[0]=l,t[1]=r,t[2]=s,t[3]=u,t[4]=i,t[5]=c,t[6]=n,t[7]=o,t[8]=f,t[9]=m,t[10]=h,t[11]=g,t[12]=v,t[13]=b,t[14]=C,t[15]=O}else f=t[8],m=t[9],h=t[10],g=t[11],v=t[12],b=t[13],C=t[14],O=t[15];let k;t[57]===f?k=t[58]:(k=(0,D.jsx)(`tbody`,{children:f}),t[57]=f,t[58]=k);let j;t[59]!==k||t[60]!==m||t[61]!==h?(j=(0,D.jsxs)(`table`,{className:m,children:[h,k]}),t[59]=k,t[60]=m,t[61]=h,t[62]=j):j=t[62];let M;t[63]!==j||t[64]!==g||t[65]!==v?(M=(0,D.jsxs)(`details`,{className:g,children:[v,j]}),t[63]=j,t[64]=g,t[65]=v,t[66]=M):M=t[66];let N;return t[67]!==M||t[68]!==b||t[69]!==C||t[70]!==O?(N=(0,D.jsxs)(`div`,{className:b,children:[C,O,M]}),t[67]=M,t[68]=b,t[69]=C,t[70]=O,t[71]=N):N=t[71],N}function ee(e){return(0,D.jsx)(`th`,{className:`py-1 pr-4 font-normal`,children:e.name},e.name)}function te(e){return(0,D.jsxs)(`li`,{className:`flex items-center gap-2`,children:[(0,D.jsx)(`span`,{"aria-hidden":!0,className:`h-0.5 w-4 rounded-full`,style:{background:e.farbe}}),e.name]},e.name)}function ne(e){return e.punkte.some(M)}function M(e){let[,t]=e;return t!==null}function re(e){return e.punkte}var N=[{id:`1h`,name:`1 Stunde`,text:`letzte Stunde`},{id:`24h`,name:`24 Stunden`,text:`letzte 24 Stunden`},{id:`7d`,name:`7 Tage`,text:`letzte 7 Tage`}];function ie(e){let t=(0,E.c)(6),{wert:n,onWahl:r,farbe:a}=e,o=a===`box`?`border-box-rand bg-box-grund text-box-text`:`border-lab-rand bg-lab-grund text-lab-text`,s;t[0]!==o||t[1]!==r||t[2]!==n?(s=N.map(e=>(0,D.jsx)(`button`,{type:`button`,onClick:()=>r(e.id),"aria-pressed":n===e.id,className:i(`h-9 rounded-full border px-4 text-sm`,n===e.id?o:`border-white/10 text-text-2 hover:border-white/20 hover:text-foreground`),children:e.name},e.id)),t[0]=o,t[1]=r,t[2]=n,t[3]=s):s=t[3];let c;return t[4]===s?c=t[5]:(c=(0,D.jsx)(`div`,{role:`group`,"aria-label":`Zeitraum`,className:`flex flex-wrap gap-2`,children:s}),t[4]=s,t[5]=c),c}function P(e){let t=(0,E.c)(9),{titel:n,rechts:r,children:i}=e,a;t[0]===n?a=t[1]:(a=(0,D.jsx)(`h3`,{className:`etikett text-[11.5px] tracking-[0.16em] text-text-2`,children:n}),t[0]=n,t[1]=a);let o;t[2]!==r||t[3]!==a?(o=(0,D.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[a,r]}),t[2]=r,t[3]=a,t[4]=o):o=t[4];let s;return t[5]!==i||t[6]!==o||t[7]!==n?(s=(0,D.jsxs)(`section`,{"aria-label":n,className:`flex min-w-0 flex-col gap-3 flaeche rounded-2xl p-4 sm:p-5`,children:[o,i]}),t[5]=i,t[6]=o,t[7]=n,t[8]=s):s=t[8],s}var F=e=>N.find(t=>t.id===e)?.text??``;function I(){let e=(0,E.c)(97),[t,n]=(0,T.useState)(`1h`),r=c(t),a=s(),o;e[0]===r.data?.reihen?o=e[1]:(o=r.data?.reihen??{},e[0]=r.data?.reihen,e[1]=o);let l=o,u;e[2]===r.data?.aktuell?u=e[3]:(u=r.data?.aktuell??{},e[2]=r.data?.aktuell,e[3]=u);let p=u,h=t===`7d`,g;e[4]!==p||e[5]!==l?(g=(e,t)=>e??p[t]??d(l[t]),e[4]=p,e[5]=l,e[6]=g):g=e[6];let _=g,v;e[7]===t?v=e[8]:(v=(0,D.jsx)(ie,{wert:t,onWahl:n,farbe:`box`}),e[7]=t,e[8]=v);let y;e[9]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,D.jsx)(`span`,{className:`text-sm text-text-3`,children:`Zahlen live, Verläufe im Minutentakt`}),e[9]=y):y=e[9];let b;e[10]===v?b=e[11]:(b=(0,D.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[v,y]}),e[10]=v,e[11]=b);let x=a?.cpu,S;e[12]!==x||e[13]!==_?(S=_(x,`cpu`),e[12]=x,e[13]=_,e[14]=S):S=e[14];let C=a?.cpu,w;e[15]!==C||e[16]!==_?(w=f(_(C,`cpu`),85,95),e[15]=C,e[16]=_,e[17]=w):w=e[17];let O;e[18]===t?O=e[19]:(O=F(t),e[18]=t,e[19]=O);let A;e[20]!==O||e[21]!==S||e[22]!==w?(A=(0,D.jsx)(k,{label:`CPU`,wert:S,einheit:`prozent`,max:100,zustand:w,zeitraumText:O}),e[20]=O,e[21]=S,e[22]=w,e[23]=A):A=e[23];let ee=a?.ram,te;e[24]!==ee||e[25]!==_?(te=_(ee,`ram`),e[24]=ee,e[25]=_,e[26]=te):te=e[26];let ne=a?.ram,M;e[27]!==ne||e[28]!==_?(M=f(_(ne,`ram`),85,95),e[27]=ne,e[28]=_,e[29]=M):M=e[29];let re;e[30]===t?re=e[31]:(re=F(t),e[30]=t,e[31]=re);let N;e[32]!==te||e[33]!==M||e[34]!==re?(N=(0,D.jsx)(k,{label:`Speicher`,wert:te,einheit:`prozent`,max:100,zustand:M,zeitraumText:re}),e[32]=te,e[33]=M,e[34]=re,e[35]=N):N=e[35];let I=a?.gpu,L;e[36]!==I||e[37]!==_?(L=_(I,`gpu`),e[36]=I,e[37]=_,e[38]=L):L=e[38];let R;e[39]===t?R=e[40]:(R=F(t),e[39]=t,e[40]=R);let z;e[41]!==L||e[42]!==R?(z=(0,D.jsx)(k,{label:`GPU`,wert:L,einheit:`prozent`,max:100,zeitraumText:R}),e[41]=L,e[42]=R,e[43]=z):z=e[43];let B=a?.temp_cpu,V;e[44]!==B||e[45]!==_?(V=_(B,`temp_cpu`),e[44]=B,e[45]=_,e[46]=V):V=e[46];let H=a?.temp_cpu,U;e[47]!==H||e[48]!==_?(U=f(_(H,`temp_cpu`),80,90),e[47]=H,e[48]=_,e[49]=U):U=e[49];let W;e[50]===t?W=e[51]:(W=F(t),e[50]=t,e[51]=W);let ae;e[52]!==V||e[53]!==U||e[54]!==W?(ae=(0,D.jsx)(k,{label:`CPU-Temp.`,wert:V,einheit:`grad`,max:100,zustand:U,zeitraumText:W}),e[52]=V,e[53]=U,e[54]=W,e[55]=ae):ae=e[55];let G=a?.temp_gpu,K;e[56]!==G||e[57]!==_?(K=_(G,`temp_gpu`),e[56]=G,e[57]=_,e[58]=K):K=e[58];let oe=a?.temp_gpu,q;e[59]!==oe||e[60]!==_?(q=f(_(oe,`temp_gpu`),80,90),e[59]=oe,e[60]=_,e[61]=q):q=e[61];let J;e[62]===t?J=e[63]:(J=F(t),e[62]=t,e[63]=J);let Y;e[64]!==K||e[65]!==q||e[66]!==J?(Y=(0,D.jsx)(k,{label:`GPU-Temp.`,wert:K,einheit:`grad`,max:100,zustand:q,zeitraumText:J}),e[64]=K,e[65]=q,e[66]=J,e[67]=Y):Y=e[67];let se=a?.disk,X;e[68]!==se||e[69]!==_?(X=_(se,`platte`),e[68]=se,e[69]=_,e[70]=X):X=e[70];let ce=a?.disk,Z;e[71]!==ce||e[72]!==_?(Z=f(_(ce,`platte`),80,90),e[71]=ce,e[72]=_,e[73]=Z):Z=e[73];let Q;e[74]===t?Q=e[75]:(Q=F(t),e[74]=t,e[75]=Q);let $;e[76]!==X||e[77]!==Z||e[78]!==Q?($=(0,D.jsx)(k,{label:`Platte`,wert:X,einheit:`prozent`,max:100,zustand:Z,zeitraumText:Q}),e[76]=X,e[77]=Z,e[78]=Q,e[79]=$):$=e[79];let le;e[80]!==A||e[81]!==N||e[82]!==z||e[83]!==ae||e[84]!==Y||e[85]!==$?(le=(0,D.jsxs)(`div`,{className:`grid grid-cols-2 gap-2.5 sm:grid-cols-3 xl:grid-cols-6`,children:[A,N,z,ae,Y,$]}),e[80]=A,e[81]=N,e[82]=z,e[83]=ae,e[84]=Y,e[85]=$,e[86]=le):le=e[86];let ue;e[87]!==h||e[88]!==r.data||e[89]!==r.isError||e[90]!==r.isPlaceholderData||e[91]!==l?(ue=r.isError&&!r.data?(0,D.jsx)(m,{text:`Der Verlauf ist noch nicht da: Die KI-Box sammelt Messwerte, sobald der neue Stand läuft. Die Zahlen oben sind live.`}):(0,D.jsxs)(`div`,{className:i(`grid gap-5 md:gap-6 xl:grid-cols-2`,r.isPlaceholderData&&`opacity-70`),children:[(0,D.jsx)(P,{titel:`CPU`,children:(0,D.jsx)(j,{titel:`CPU-Auslastung in Prozent`,einheit:`prozent`,langerZeitraum:h,reihen:[{name:`CPU`,punkte:l.cpu??[],farbe:`var(--reihe-1)`}]})}),(0,D.jsx)(P,{titel:`Speicher`,children:(0,D.jsx)(j,{titel:`Belegter Speicher in Prozent`,einheit:`prozent`,langerZeitraum:h,reihen:[{name:`Speicher`,punkte:l.ram??[],farbe:`var(--reihe-1)`}]})}),(0,D.jsx)(P,{titel:`GPU`,children:(0,D.jsx)(j,{titel:`GPU-Last in Prozent`,einheit:`prozent`,langerZeitraum:h,reihen:[{name:`GPU`,punkte:l.gpu??[],farbe:`var(--reihe-1)`}]})}),(0,D.jsx)(P,{titel:`Temperatur`,children:(0,D.jsx)(j,{titel:`Temperatur von CPU und GPU in Grad`,einheit:`grad`,langerZeitraum:h,reihen:[{name:`CPU`,punkte:l.temp_cpu??[],farbe:`var(--reihe-1)`},{name:`GPU`,punkte:l.temp_gpu??[],farbe:`var(--reihe-2)`}]})}),(0,D.jsx)(P,{titel:`Netz`,children:(0,D.jsx)(j,{titel:`Netzverkehr in Bytes pro Sekunde`,einheit:`bytes_s`,langerZeitraum:h,reihen:[{name:`empfangen`,punkte:l.netz_rx??[],farbe:`var(--reihe-1)`},{name:`gesendet`,punkte:l.netz_tx??[],farbe:`var(--reihe-2)`}]})}),(0,D.jsx)(P,{titel:`Tokens pro Minute`,children:(0,D.jsx)(j,{titel:`Erzeugte und gelesene Tokens pro Minute`,einheit:`anzahl`,langerZeitraum:h,reihen:[{name:`Tokens`,punkte:l.tokens??[],farbe:`var(--reihe-1)`}]})})]}),e[87]=h,e[88]=r.data,e[89]=r.isError,e[90]=r.isPlaceholderData,e[91]=l,e[92]=ue):ue=e[92];let de;return e[93]!==le||e[94]!==ue||e[95]!==b?(de=(0,D.jsxs)(D.Fragment,{children:[b,le,ue]}),e[93]=le,e[94]=ue,e[95]=b,e[96]=de):de=e[96],de}function L(e){let t=(0,E.c)(43),{g:n,zeitraum:r}=e,i=n.aktuell,a=n.id,o=n.name,s;t[0]!==n.art||t[1]!==n.name?(s=b({art:n.art,name:n.name}),t[0]=n.art,t[1]=n.name,t[2]=s):s=t[2];let c;t[3]===s?c=t[4]:(c=(0,D.jsx)(h,{bild:s,groesse:`sm`}),t[3]=s,t[4]=c);let l;t[5]===n.name?l=t[6]:(l=(0,D.jsx)(`h3`,{className:`text-[15px] font-semibold`,children:n.name}),t[5]=n.name,t[6]=l);let u;t[7]!==c||t[8]!==l?(u=(0,D.jsxs)(`span`,{className:`flex min-w-0 items-center gap-3`,children:[c,l]}),t[7]=c,t[8]=l,t[9]=u):u=t[9];let d;t[10]===i.cpu?d=t[11]:(d=i.cpu==null?`–`:`${Math.round(i.cpu)} %`,t[10]=i.cpu,t[11]=d);let f;t[12]===i.ram?f=t[13]:(f=i.ram==null?`–`:`${Math.round(i.ram)} %`,t[12]=i.ram,t[13]=f);let p;t[14]===i.uptime_s?p=t[15]:(p=g(i.uptime_s),t[14]=i.uptime_s,t[15]=p);let m;t[16]!==d||t[17]!==f||t[18]!==p?(m=(0,D.jsxs)(`span`,{className:`ziffern text-xs text-text-3`,children:[`CPU `,d,` · RAM `,f,` · läuft `,p]}),t[16]=d,t[17]=f,t[18]=p,t[19]=m):m=t[19];let _;t[20]!==m||t[21]!==u?(_=(0,D.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[u,m]}),t[20]=m,t[21]=u,t[22]=_):_=t[22];let v=`${n.name}: CPU und Speicher in Prozent`,y=r===`7d`,x;t[23]===n.reihen.cpu?x=t[24]:(x=n.reihen.cpu??[],t[23]=n.reihen.cpu,t[24]=x);let S;t[25]===x?S=t[26]:(S={name:`CPU`,punkte:x,farbe:`var(--reihe-1)`},t[25]=x,t[26]=S);let C;t[27]===n.reihen.ram?C=t[28]:(C=n.reihen.ram??[],t[27]=n.reihen.ram,t[28]=C);let w;t[29]===C?w=t[30]:(w={name:`Speicher`,punkte:C,farbe:`var(--reihe-2)`},t[29]=C,t[30]=w);let T;t[31]!==S||t[32]!==w?(T=[S,w],t[31]=S,t[32]=w,t[33]=T):T=t[33];let O;t[34]!==v||t[35]!==y||t[36]!==T?(O=(0,D.jsx)(j,{titel:v,einheit:`prozent`,langerZeitraum:y,hoehe:140,reihen:T}),t[34]=v,t[35]=y,t[36]=T,t[37]=O):O=t[37];let k;return t[38]!==n.id||t[39]!==n.name||t[40]!==_||t[41]!==O?(k=(0,D.jsxs)(`section`,{id:a,"aria-label":o,className:`flex min-w-0 scroll-mt-6 flex-col gap-3 flaeche rounded-2xl p-4 sm:p-5`,children:[_,O]}),t[38]=n.id,t[39]=n.name,t[40]=_,t[41]=O,t[42]=k):k=t[42],k}function R(){let e=(0,E.c)(31),[t,n]=(0,T.useState)(`1h`),r=a(),s=o(),c=r.data?.rolle===`homelab`||!!(s.data?.eingerichtet&&s.data.erreichbar),d=l(t,c),p;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(p={select:H},e[0]=p):p=e[0];let h=u(p),_,v;if(e[1]!==h||e[2]!==d.data?(_=()=>{h&&d.data&&document.getElementById(h)?.scrollIntoView({block:`start`})},v=[h,d.data],e[1]=h,e[2]=d.data,e[3]=_,e[4]=v):(_=e[3],v=e[4]),(0,T.useEffect)(_,v),!c){let t;return e[5]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,D.jsx)(m,{fehler:!0,text:`Der Homelab-Teil antwortet gerade nicht.`}),e[5]=t):t=e[5],t}if(d.isPending){let t;return e[6]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,D.jsx)(m,{text:`Die Messwerte kommen gleich …`}),e[6]=t):t=e[6],t}if(!d.data){let t;return e[7]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,D.jsx)(m,{text:`Noch keine Messwerte: Der Ausführer schickt sie jede Minute, sobald sein neuer Stand eingespielt ist.`}),e[7]=t):t=e[7],t}let y,b,x,S;if(e[8]!==d.data.geraete||e[9]!==d.isPlaceholderData||e[10]!==t){let r=d.data.geraete.find(V),a=d.data.geraete.filter(B),o=t===`7d`,s=r?.aktuell??{},c;e[15]===t?c=e[16]:(c=(0,D.jsx)(ie,{wert:t,onWahl:n,farbe:`homelab`}),e[15]=t,e[16]=c);let l;e[17]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,D.jsx)(`span`,{className:`text-sm text-text-3`,children:`Werte im Minutentakt vom Proxmox-Host`}),e[17]=l):l=e[17],e[18]===c?x=e[19]:(x=(0,D.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[c,l]}),e[18]=c,e[19]=x),S=r&&(0,D.jsxs)(C,{titel:`Proxmox-Host`,rechts:(0,D.jsxs)(`span`,{className:`ziffern text-sm text-text-3`,children:[`läuft `,g(s.uptime_s),s.load1==null?``:` · Last ${s.load1.toFixed(2).replace(`.`,`,`)}`]}),children:[(0,D.jsxs)(`div`,{className:`grid grid-cols-2 gap-2.5 sm:grid-cols-4`,children:[(0,D.jsx)(k,{label:`CPU`,wert:s.cpu,einheit:`prozent`,max:100,punkte:r.reihen.cpu,zustand:f(s.cpu??null,85,95),zeitraumText:F(t)}),(0,D.jsx)(k,{label:`Speicher`,wert:s.ram,einheit:`prozent`,max:100,punkte:r.reihen.ram,zustand:f(s.ram??null,90,95),zeitraumText:F(t)}),(0,D.jsx)(k,{label:`Temperatur`,wert:s.temp_cpu,einheit:`grad`,max:100,punkte:r.reihen.temp_cpu,zustand:f(s.temp_cpu??null,80,90),zeitraumText:F(t)}),(0,D.jsx)(k,{label:`Systemplatte`,wert:s.platte,einheit:`prozent`,max:100,punkte:r.reihen.platte,zustand:f(s.platte??null,80,90),zeitraumText:F(t)})]}),(0,D.jsxs)(`div`,{className:i(`grid gap-5 xl:grid-cols-2`,d.isPlaceholderData&&`opacity-70`),children:[(0,D.jsx)(P,{titel:`CPU und Speicher`,children:(0,D.jsx)(j,{titel:`Proxmox-Host: CPU und Speicher in Prozent`,einheit:`prozent`,langerZeitraum:o,reihen:[{name:`CPU`,punkte:r.reihen.cpu??[],farbe:`var(--reihe-1)`},{name:`Speicher`,punkte:r.reihen.ram??[],farbe:`var(--reihe-2)`}]})}),(0,D.jsx)(P,{titel:`Netz`,children:(0,D.jsx)(j,{titel:`Proxmox-Host: Netzverkehr in Bytes pro Sekunde`,einheit:`bytes_s`,langerZeitraum:o,reihen:[{name:`empfangen`,punkte:r.reihen.netz_rx??[],farbe:`var(--reihe-1)`},{name:`gesendet`,punkte:r.reihen.netz_tx??[],farbe:`var(--reihe-2)`}]})}),(r.reihen.temp_cpu?.some(z)??!1)&&(0,D.jsx)(P,{titel:`Temperatur`,children:(0,D.jsx)(j,{titel:`Proxmox-Host: CPU-Temperatur in Grad`,einheit:`grad`,langerZeitraum:o,reihen:[{name:`CPU`,punkte:r.reihen.temp_cpu??[],farbe:`var(--reihe-1)`}]})})]})]});let u=d.isPlaceholderData&&`opacity-70`;e[20]===u?y=e[21]:(y=i(`grid gap-5 md:gap-6 xl:grid-cols-2`,u),e[20]=u,e[21]=y);let p;e[22]===t?p=e[23]:(p=e=>(0,D.jsx)(L,{g:e,zeitraum:t},e.id),e[22]=t,e[23]=p),b=a.map(p),e[8]=d.data.geraete,e[9]=d.isPlaceholderData,e[10]=t,e[11]=y,e[12]=b,e[13]=x,e[14]=S}else y=e[11],b=e[12],x=e[13],S=e[14];let w;e[24]!==y||e[25]!==b?(w=(0,D.jsx)(`div`,{className:y,children:b}),e[24]=y,e[25]=b,e[26]=w):w=e[26];let O;return e[27]!==x||e[28]!==S||e[29]!==w?(O=(0,D.jsxs)(D.Fragment,{children:[x,S,w]}),e[27]=x,e[28]=S,e[29]=w,e[30]=O):O=e[30],O}function z(e){let[,t]=e;return t!==null}function B(e){return e.art!==`proxmox-host`}function V(e){return e.art===`proxmox-host`}function H(e){return e.location.hash}export{I as BoxMonitoringSeite,R as HomelabMonitoringSeite}; \ No newline at end of file diff --git a/frontend/dist/assets/Panel-uT1S5ZGr.js b/frontend/dist/assets/Panel-uT1S5ZGr.js deleted file mode 100644 index 5007231..0000000 --- a/frontend/dist/assets/Panel-uT1S5ZGr.js +++ /dev/null @@ -1 +0,0 @@ -import{i as e,r as t,t as n}from"./dist-aE7UmubC.js";var r=t(),i=e();function a(e){let t=(0,r.c)(12),{titel:a,rechts:o,children:s,className:c,id:l,symbol:u}=e,d;t[0]===c?d=t[1]:(d=n(`flaeche flex min-w-0 flex-col gap-4 rounded-2xl p-5 sm:p-6`,c),t[0]=c,t[1]=d);let f;t[2]!==u||t[3]!==o||t[4]!==a?(f=(a||o)&&(0,i.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[a&&(0,i.jsxs)(`h2`,{className:`flex items-center gap-2.5 text-[17px] leading-tight font-semibold tracking-[0.005em] text-foreground`,children:[u&&(0,i.jsx)(u,{className:`size-[18px] text-text-3`,"aria-hidden":!0}),a]}),o]}),t[2]=u,t[3]=o,t[4]=a,t[5]=f):f=t[5];let p;return t[6]!==s||t[7]!==l||t[8]!==d||t[9]!==f||t[10]!==a?(p=(0,i.jsxs)(`section`,{id:l,"aria-label":a,className:d,children:[f,s]}),t[6]=s,t[7]=l,t[8]=d,t[9]=f,t[10]=a,t[11]=p):p=t[11],p}export{a as t}; \ No newline at end of file diff --git a/frontend/dist/assets/Protokollfenster-BL5RkT6e.js b/frontend/dist/assets/Protokollfenster-DeA4EXoc.js similarity index 94% rename from frontend/dist/assets/Protokollfenster-BL5RkT6e.js rename to frontend/dist/assets/Protokollfenster-DeA4EXoc.js index a4e4aba..b8d837a 100644 --- a/frontend/dist/assets/Protokollfenster-BL5RkT6e.js +++ b/frontend/dist/assets/Protokollfenster-DeA4EXoc.js @@ -1 +1 @@ -import{i as e,r as t}from"./dist-aE7UmubC.js";import{a as n,i as r,n as i,r as a,t as o}from"./sheet-Dx0TG2uq.js";var s=t(),c=e();function l(e){let t=(0,s.c)(14),{offen:l,titel:u,text:d,onSchliessen:f}=e,p;t[0]===f?p=t[1]:(p=e=>!e&&f(),t[0]=f,t[1]=p);let m;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,c.jsx)(n,{className:`text-[19px] font-semibold`,children:`Protokoll`}),t[2]=m):m=t[2];let h;t[3]===u?h=t[4]:(h=(0,c.jsxs)(r,{children:[m,(0,c.jsx)(a,{className:`text-text-2`,children:u})]}),t[3]=u,t[4]=h);let g;t[5]===d?g=t[6]:(g=(0,c.jsx)(`pre`,{className:`ziffern mx-4 mb-4 flex-1 overflow-auto rounded-lg bg-black/30 ring-1 ring-white/[0.07] ring-inset p-3 text-xs leading-relaxed whitespace-pre-wrap text-text-2`,children:d}),t[5]=d,t[6]=g);let _;t[7]!==h||t[8]!==g?(_=(0,c.jsxs)(i,{side:`right`,className:`border-white/10 bg-[#0e121a] data-[side=right]:w-full data-[side=right]:sm:max-w-2xl`,children:[h,g]}),t[7]=h,t[8]=g,t[9]=_):_=t[9];let v;return t[10]!==l||t[11]!==p||t[12]!==_?(v=(0,c.jsx)(o,{open:l,onOpenChange:p,children:_}),t[10]=l,t[11]=p,t[12]=_,t[13]=v):v=t[13],v}export{l as Protokollfenster}; \ No newline at end of file +import{i as e,r as t}from"./dist-aE7UmubC.js";import{a as n,i as r,n as i,r as a,t as o}from"./sheet-DG7u1mB-.js";var s=t(),c=e();function l(e){let t=(0,s.c)(14),{offen:l,titel:u,text:d,onSchliessen:f}=e,p;t[0]===f?p=t[1]:(p=e=>!e&&f(),t[0]=f,t[1]=p);let m;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,c.jsx)(n,{className:`text-[19px] font-semibold`,children:`Protokoll`}),t[2]=m):m=t[2];let h;t[3]===u?h=t[4]:(h=(0,c.jsxs)(r,{children:[m,(0,c.jsx)(a,{className:`text-text-2`,children:u})]}),t[3]=u,t[4]=h);let g;t[5]===d?g=t[6]:(g=(0,c.jsx)(`pre`,{className:`ziffern mx-4 mb-4 flex-1 overflow-auto rounded-lg bg-black/30 ring-1 ring-white/[0.07] ring-inset p-3 text-xs leading-relaxed whitespace-pre-wrap text-text-2`,children:d}),t[5]=d,t[6]=g);let _;t[7]!==h||t[8]!==g?(_=(0,c.jsxs)(i,{side:`right`,className:`border-white/10 bg-[#0e121a] data-[side=right]:w-full data-[side=right]:sm:max-w-2xl`,children:[h,g]}),t[7]=h,t[8]=g,t[9]=_):_=t[9];let v;return t[10]!==l||t[11]!==p||t[12]!==_?(v=(0,c.jsx)(o,{open:l,onOpenChange:p,children:_}),t[10]=l,t[11]=p,t[12]=_,t[13]=v):v=t[13],v}export{l as Protokollfenster}; \ No newline at end of file diff --git a/frontend/dist/assets/Start-BIQA6AF-.js b/frontend/dist/assets/Start-BIQA6AF-.js new file mode 100644 index 0000000..25c89b9 --- /dev/null +++ b/frontend/dist/assets/Start-BIQA6AF-.js @@ -0,0 +1 @@ +import{i as e,r as t,t as n}from"./dist-aE7UmubC.js";import{H as r,It as i,Ot as a,St as o,_t as s,gt as c,ht as l,jt as u,kt as d,nt as f,vt as p}from"./abfragen-pD_qBEtc.js";import{t as m}from"./button-BHVKhtQ6.js";import{D as h,E as g,H as _,R as v,V as y,mt as b,p as x}from"./index-Bumw6krN.js";import{n as S,r as C,t as w}from"./Lagekopf-DUjslgBy.js";var T=t(),E=e(),D={erledigt:{text:`Erledigt`,farbe:`text-gruen-text`,punkt:`bg-gruen`},fehler:{text:`Fehler`,farbe:`text-rot-text`,punkt:`bg-rot`},geplant:{text:`Geplant`,farbe:`text-text-3`,punkt:`bg-white/25`}};function O(e){let t=(0,T.c)(23),{e:r}=e,i=D[r.status]??D.geplant,a=r.status===`geplant`&&/update/i.test(r.titel)?`text-cyan-text`:i.farbe,o;t[0]===r.zeit?o=t[1]:(o=l(r.zeit),t[0]=r.zeit,t[1]=o);let s;t[2]===o?s=t[3]:(s=(0,E.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]===r.text?c=t[5]:(c=r.text&&(0,E.jsxs)(`span`,{className:`text-text-3`,children:[`, `,r.text]}),t[4]=r.text,t[5]=c);let u;t[6]!==r.titel||t[7]!==c?(u=(0,E.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:[r.titel,c]}),t[6]=r.titel,t[7]=c,t[8]=u):u=t[8];let d;t[9]===a?d=t[10]:(d=n(`etikett col-start-2 row-start-1 flex items-center gap-1.5 justify-self-end text-[10.5px] tracking-[0.12em] @sm:col-start-3`,a),t[9]=a,t[10]=d);let f;t[11]===i.punkt?f=t[12]:(f=n(`size-1.5 rounded-full`,i.punkt),t[11]=i.punkt,t[12]=f);let p;t[13]===f?p=t[14]:(p=(0,E.jsx)(`span`,{"aria-hidden":!0,className:f}),t[13]=f,t[14]=p);let m;t[15]!==i.text||t[16]!==d||t[17]!==p?(m=(0,E.jsxs)(`span`,{className:d,children:[p,i.text]}),t[15]=i.text,t[16]=d,t[17]=p,t[18]=m):m=t[18];let h;return t[19]!==s||t[20]!==u||t[21]!==m?(h=(0,E.jsxs)(`li`,{className:`grid grid-cols-[minmax(0,1fr)_auto] items-center gap-x-3 gap-y-1 border-t border-white/[0.06] py-2.5 first:border-t-0 @sm:grid-cols-[112px_minmax(0,1fr)_auto]`,children:[s,u,m]}),t[19]=s,t[20]=u,t[21]=m,t[22]=h):h=t[22],h}function k(e){let t=(0,T.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,E.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,E.jsx)(`ol`,{className:`@container m-0 flex list-none flex-col p-0`,children:a.map(A)}),t[4]=a,t[5]=o),o}function A(e){return(0,E.jsx)(O,{e},`${e.titel}-${e.zeit}`)}function j(e){let t=(0,T.c)(28),{anteil:n,farbe:r,zonen:i,mitte:a,unter:o,beschriftung:s,ariaText:c,hinweis:l}=e,u=r===void 0?`var(--box)`:r,f;t[0]===i?f=t[1]:(f=i===void 0?[]:i,t[0]=i,t[1]=f);let p=f,m=n!=null&&n>.004,h;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,E.jsx)(`path`,{d:d(0,1,75),fill:`none`,stroke:`rgb(255 255 255 / 0.07)`,strokeWidth:12,strokeLinecap:`round`}),t[2]=h):h=t[2];let g;t[3]===p?g=t[4]:(g=p.map(M),t[3]=p,t[4]=g);let _;t[5]!==n||t[6]!==u||t[7]!==m?(_=m&&(0,E.jsx)(`path`,{d:d(0,n,75),fill:`none`,stroke:u,strokeWidth:12,strokeLinecap:`round`,style:{filter:`drop-shadow(0 0 7px color-mix(in srgb, ${u} 60%, transparent))`}}),t[5]=n,t[6]=u,t[7]=m,t[8]=_):_=t[8];let v;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(v={fontFamily:`var(--font-anzeige)`,fontSize:40,fontWeight:600,fill:`var(--foreground)`},t[9]=v):v=t[9];let y;t[10]===a?y=t[11]:(y=(0,E.jsx)(`text`,{x:`100`,y:`102`,textAnchor:`middle`,style:v,children:a}),t[10]=a,t[11]=y);let b;t[12]===o?b=t[13]:(b=o&&(0,E.jsx)(`text`,{x:`100`,y:`124`,textAnchor:`middle`,style:{fontFamily:`var(--font-sans)`,fontSize:13,fontWeight:500,fill:`var(--text-3)`},children:o}),t[12]=o,t[13]=b);let x;t[14]!==c||t[15]!==g||t[16]!==_||t[17]!==y||t[18]!==b?(x=(0,E.jsxs)(`svg`,{viewBox:`0 0 200 150`,className:`h-auto w-full max-w-[200px]`,role:`img`,"aria-label":c,children:[h,g,_,y,b]}),t[14]=c,t[15]=g,t[16]=_,t[17]=y,t[18]=b,t[19]=x):x=t[19];let S;t[20]===s?S=t[21]:(S=(0,E.jsx)(`figcaption`,{className:`etikett text-[11.5px] tracking-[0.14em] text-text-3`,children:s}),t[20]=s,t[21]=S);let C;t[22]===l?C=t[23]:(C=l&&(0,E.jsx)(`span`,{className:`text-center text-xs ${l.className}`,children:l.text}),t[22]=l,t[23]=C);let w;return t[24]!==x||t[25]!==S||t[26]!==C?(w=(0,E.jsxs)(`figure`,{className:`m-0 flex min-w-0 flex-col items-center gap-1`,children:[x,S,C]}),t[24]=x,t[25]=S,t[26]=C,t[27]=w):w=t[27],w}function M(e){return(0,E.jsx)(`path`,{d:d(e.von,e.bis,86),fill:`none`,stroke:e.farbe,strokeWidth:4,strokeLinecap:`round`},`${e.von}-${e.bis}`)}function N(e){let t=(0,T.c)(12),{zustand:n,lampen:r,onAnsehen:i}=e,a;t[0]===n?a=t[1]:(a=u(n),t[0]=n,t[1]=a);let o=a,s=o.art,c=o.oben,l=o.mitte,d=o.unten,f=o.art===`gelb`||o.art===`rot`,p;t[2]===r?p=t[3]:(p=r.map(P),t[2]=r,t[3]=p);let m;return t[4]!==o.art||t[5]!==o.mitte||t[6]!==o.oben||t[7]!==o.unten||t[8]!==i||t[9]!==f||t[10]!==p?(m=(0,E.jsx)(S,{art:s,oben:c,mitte:l,unten:d,aktiv:f,onAnsehen:i,label:`Warnpanel`,children:p}),t[4]=o.art,t[5]=o.mitte,t[6]=o.oben,t[7]=o.unten,t[8]=i,t[9]=f,t[10]=p,t[11]=m):m=t[11],m}function P(e){return(0,E.jsx)(w,{bild:v(e.id),name:e.label,wert:e.wert,zustand:e.zustand},e.id)}function F(e){let t=(0,T.c)(2),{z:n}=e,r;return t[0]===n?r=t[1]:(r=(0,E.jsx)(`span`,{className:`ziffern inline-flex h-[1.75em] w-[1.1875em] shrink-0 items-center justify-center rounded-lg border border-white/10 bg-gradient-to-b from-white/[0.07] to-white/[0.02] font-medium shadow-[inset_0_1px_0_rgb(255_255_255/0.06)]`,children:n}),t[0]=n,t[1]=r),r}function I(e){let t=(0,T.c)(25),{sekunden:n}=e,r;t[0]===n?r=t[1]:(r=p(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]:`–`,m;t[6]===f?m=t[7]:(m=(0,E.jsx)(F,{z:f}),t[6]=f,t[7]=m);let h=i?s[1]:`–`,g;t[8]===h?g=t[9]:(g=(0,E.jsx)(F,{z:h}),t[8]=h,t[9]=g);let _;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,E.jsx)(`span`,{className:`etikett mr-[0.444em] ml-[0.111em] text-[0.5625em] text-text-3`,children:`T`}),t[10]=_):_=t[10];let v=i?u[0]:`–`,y;t[11]===v?y=t[12]:(y=(0,E.jsx)(F,{z:v}),t[11]=v,t[12]=y);let b=i?u[1]:`–`,x;t[13]===b?x=t[14]:(x=(0,E.jsx)(F,{z:b}),t[13]=b,t[14]=x);let S;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,E.jsx)(`span`,{className:`etikett ml-[0.111em] text-[0.5625em] text-text-3`,children:`H`}),t[15]=S):S=t[15];let C;t[16]!==y||t[17]!==x||t[18]!==m||t[19]!==g||t[20]!==d?(C=(0,E.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:[m,g,_,y,x,S]}),t[16]=y,t[17]=x,t[18]=m,t[19]=g,t[20]=d,t[21]=C):C=t[21];let w;t[22]===Symbol.for(`react.memo_cache_sentinel`)?(w=(0,E.jsx)(`figcaption`,{className:`etikett text-[11.5px] tracking-[0.14em] text-text-3`,children:`Ohne Neustart`}),t[22]=w):w=t[22];let D;return t[23]===C?D=t[24]:(D=(0,E.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]=D),D}function L(e){let t=(0,T.c)(53),{box:n}=e,r=o(),a=r?.ram_used??n.ram_used,l=r?.ram_total??n.ram_total,u=r?.temp_cpu??n.temp_cpu,d=r?.temp_gpu??n.temp_gpu,f=n.platte,p=f?.vorhersage,m;t[0]===p?m=t[1]:(m=h(p),t[0]=p,t[1]=m);let _=m,v=r?.uptime_s??n.uptime_s,y=a!=null&&l?a/l:null,b;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(b={"--i":1},t[2]=b):b=t[2];let x;t[3]===a?x=t[4]:(x=a==null?`–`:String(Math.round(c(a)??0)),t[3]=a,t[4]=x);let S;t[5]===l?S=t[6]:(S=l?`von ${Math.round(c(l)??0)} GB`:void 0,t[5]=l,t[6]=S);let C;t[7]!==y||t[8]!==a||t[9]!==l?(C=y==null?`Speicher unbekannt`:`Speicher: ${s(a)} von ${s(l)} belegt`,t[7]=y,t[8]=a,t[9]=l,t[10]=C):C=t[10];let w;t[11]!==y||t[12]!==x||t[13]!==S||t[14]!==C?(w=(0,E.jsx)(j,{beschriftung:`Speicher`,anteil:y,mitte:x,unter:S,ariaText:C}),t[11]=y,t[12]=x,t[13]=S,t[14]=C,t[15]=w):w=t[15];let D=u==null?null:u/100,O;t[16]===u?O=t[17]:(O=i(u),t[16]=u,t[17]=O);let k;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(k=[{von:.7,bis:.85,farbe:`var(--bernstein)`},{von:.85,bis:1,farbe:`var(--rot)`}],t[18]=k):k=t[18];let A;t[19]===u?A=t[20]:(A=u==null?`–`:`${Math.round(u)}°`,t[19]=u,t[20]=A);let M;t[21]===d?M=t[22]:(M=d==null?void 0:`GPU ${Math.round(d)}°`,t[21]=d,t[22]=M);let N;t[23]===u?N=t[24]:(N=u==null?`Temperatur unbekannt`:`Temperatur ${Math.round(u)} Grad`,t[23]=u,t[24]=N);let P;t[25]!==A||t[26]!==M||t[27]!==N||t[28]!==D||t[29]!==O?(P=(0,E.jsx)(j,{beschriftung:`Temperatur`,anteil:D,farbe:O,zonen:k,mitte:A,unter:M,ariaText:N}),t[25]=A,t[26]=M,t[27]=N,t[28]=D,t[29]=O,t[30]=P):P=t[30];let F=f?f.percent/100:null,L=f&&f.percent>=90?`var(--rot)`:f&&f.percent>=80?`var(--bernstein)`:`var(--box)`,R;t[31]===f?R=t[32]:(R=f?`${Math.round(f.percent)}%`:`–`,t[31]=f,t[32]=R);let z;t[33]===f?z=t[34]:(z=f?`${s(f.used)} / ${s(f.total)}`:void 0,t[33]=f,t[34]=z);let B;t[35]===f?B=t[36]:(B=f?`Platte zu ${Math.round(f.percent)} Prozent belegt`:`Platte unbekannt`,t[35]=f,t[36]=B);let V;t[37]===_?V=t[38]:(V=_?{text:_.text,className:g[_.stufe]}:null,t[37]=_,t[38]=V);let H;t[39]!==F||t[40]!==L||t[41]!==R||t[42]!==z||t[43]!==B||t[44]!==V?(H=(0,E.jsx)(j,{beschriftung:`Platte`,anteil:F,farbe:L,mitte:R,unter:z,ariaText:B,hinweis:V}),t[39]=F,t[40]=L,t[41]=R,t[42]=z,t[43]=B,t[44]=V,t[45]=H):H=t[45];let U;t[46]===v?U=t[47]:(U=(0,E.jsx)(I,{sekunden:v}),t[46]=v,t[47]=U);let W;return t[48]!==P||t[49]!==H||t[50]!==U||t[51]!==w?(W=(0,E.jsxs)(`section`,{"aria-label":`Instrumente`,className:`auftauchen flaeche grid grid-cols-2 gap-x-4 gap-y-6 rounded-3xl px-4 py-5 lg:grid-cols-4 lg:px-6`,style:b,children:[w,P,H,U]}),t[48]=P,t[49]=H,t[50]=U,t[51]=w,t[52]=W):W=t[52],W}var R={bestanden:`gruen`,durchgefallen:`rot`,wartet:`cyan`,neu:`cyan`};function z(e){let t=(0,T.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(V),i=r.find(B)??r[0],t[0]=n.kandidaten,t[1]=r,t[2]=i);let o=i,s=r.length===1?``:`en`,c;t[3]!==r.length||t[4]!==s?(c=(0,E.jsxs)(`span`,{className:`etikett text-[11px] tracking-[0.14em] text-cyan-text`,children:[`Radar · `,r.length,` Kandidat`,s]}),t[3]=r.length,t[4]=s,t[5]=c):c=t[5];let l;t[6]===o?l=t[7]:(l=o?(0,E.jsxs)(`span`,{className:`flex flex-wrap items-center gap-2 text-[15px]`,children:[(0,E.jsx)(`span`,{className:`ziffern`,children:o.name}),(0,E.jsxs)(`span`,{className:`text-text-2`,children:[`fürs `,o.rolle===`hirn`?`Hirn`:`Coden`]}),(0,E.jsx)(y,{art:R[o.status]??`grau`,children:a[o.status]??o.status})]}):(0,E.jsx)(`span`,{className:`text-[15px] text-text-2`,children:`Nichts Besseres in Sicht.`}),t[6]=o,t[7]=l);let u;t[8]!==c||t[9]!==l?(u=(0,E.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1`,children:[c,l]}),t[8]=c,t[9]=l,t[10]=u):u=t[10];let d;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,E.jsx)(m,{variant:`info`,size:`sm`,asChild:!0,children:(0,E.jsx)(b,{to:`/box/modelle`,hash:`radar`,children:`Ansehen`})}),t[11]=d):d=t[11];let f;return t[12]===u?f=t[13]:(f=(0,E.jsxs)(`div`,{className:`mt-auto flex flex-wrap items-center justify-between gap-3 rounded-2xl bg-cyan/[0.06] px-4 py-3.5 ring-1 ring-cyan/30 ring-inset`,children:[u,d]}),t[12]=u,t[13]=f),f}function B(e){return e.status===`bestanden`}function V(e){return[`bestanden`,`wartet`,`neu`].includes(e.status)}function H(){let e=(0,T.c)(32),{data:t,error:n,isPending:i}=f(),a=r();if(i){let t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,E.jsx)(_,{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,E.jsx)(_,{fehler:!0,text:t}),e[1]=t,e[2]=r),r}let o=t.hinweise.length,s;e[3]!==t.lampen||e[4]!==t.zustand?(s=(0,E.jsx)(N,{zustand:t.zustand,lampen:t.lampen,onAnsehen:U}),e[3]=t.lampen,e[4]=t.zustand,e[5]=s):s=e[5];let c;e[6]===t.box?c=e[7]:(c=(0,E.jsx)(L,{box:t.box}),e[6]=t.box,e[7]=c);let l=o?`bernstein`:`gruen`,u=o?`${o} offen`:`alles erledigt`,d;e[8]!==l||e[9]!==u?(d=(0,E.jsx)(y,{art:l,children:u}),e[8]=l,e[9]=u,e[10]=d):d=e[10];let p;e[11]!==t.hinweise||e[12]!==t.verlauf?(p=(0,E.jsx)(C,{hinweise:t.hinweise,verlauf:t.verlauf}),e[11]=t.hinweise,e[12]=t.verlauf,e[13]=p):p=e[13];let m;e[14]!==d||e[15]!==p?(m=(0,E.jsx)(x,{titel:`Checkliste`,id:`checkliste`,rechts:d,children:p}),e[14]=d,e[15]=p,e[16]=m):m=e[16];let h;e[17]!==t.flugplan.gelaufen||e[18]!==t.flugplan.geplant?(h=(0,E.jsx)(k,{gelaufen:t.flugplan.gelaufen,geplant:t.flugplan.geplant}),e[17]=t.flugplan.gelaufen,e[18]=t.flugplan.geplant,e[19]=h):h=e[19];let g;e[20]===a.data?g=e[21]:(g=(0,E.jsx)(z,{radar:a.data}),e[20]=a.data,e[21]=g);let v;e[22]!==h||e[23]!==g?(v=(0,E.jsxs)(x,{titel:`Flugplan`,children:[h,g]}),e[22]=h,e[23]=g,e[24]=v):v=e[24];let b;e[25]!==m||e[26]!==v?(b=(0,E.jsxs)(`div`,{className:`grid gap-5 lg:grid-cols-[minmax(0,1.35fr)_minmax(0,1fr)] md:gap-6`,children:[m,v]}),e[25]=m,e[26]=v,e[27]=b):b=e[27];let S;return e[28]!==s||e[29]!==c||e[30]!==b?(S=(0,E.jsxs)(E.Fragment,{children:[s,c,b]}),e[28]=s,e[29]=c,e[30]=b,e[31]=S):S=e[31],S}function U(){return document.getElementById(`checkliste`)?.scrollIntoView({behavior:`smooth`,block:`start`})}export{H as StartSeite}; \ No newline at end of file diff --git a/frontend/dist/assets/Start-C0zUSJby.js b/frontend/dist/assets/Start-C0zUSJby.js deleted file mode 100644 index b9f7e14..0000000 --- a/frontend/dist/assets/Start-C0zUSJby.js +++ /dev/null @@ -1 +0,0 @@ -import{i as e,r as t,t as n}from"./dist-aE7UmubC.js";import{B as r,Dt as i,Q as a,St as o,bt as s,ct as c,lt as l,ot as u,pt as d,st as f,yt as p}from"./abfragen-DKcWnZ8a.js";import{M as m,N as h,_ as g,k as _,ot as v,v as y}from"./index-BUHDF9RN.js";import{t as b}from"./button-DwYvdWVr.js";import{t as x}from"./Panel-uT1S5ZGr.js";import{n as S,r as C,t as w}from"./Lagekopf-6I8J8n-l.js";var T=t(),E=e(),D={erledigt:{text:`Erledigt`,farbe:`text-gruen-text`,punkt:`bg-gruen`},fehler:{text:`Fehler`,farbe:`text-rot-text`,punkt:`bg-rot`},geplant:{text:`Geplant`,farbe:`text-text-3`,punkt:`bg-white/25`}};function O(e){let t=(0,T.c)(23),{e:r}=e,i=D[r.status]??D.geplant,a=r.status===`geplant`&&/update/i.test(r.titel)?`text-cyan-text`:i.farbe,o;t[0]===r.zeit?o=t[1]:(o=u(r.zeit),t[0]=r.zeit,t[1]=o);let s;t[2]===o?s=t[3]:(s=(0,E.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]===r.text?c=t[5]:(c=r.text&&(0,E.jsxs)(`span`,{className:`text-text-3`,children:[`, `,r.text]}),t[4]=r.text,t[5]=c);let l;t[6]!==r.titel||t[7]!==c?(l=(0,E.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:[r.titel,c]}),t[6]=r.titel,t[7]=c,t[8]=l):l=t[8];let d;t[9]===a?d=t[10]:(d=n(`etikett col-start-2 row-start-1 flex items-center gap-1.5 justify-self-end text-[10.5px] tracking-[0.12em] @sm:col-start-3`,a),t[9]=a,t[10]=d);let f;t[11]===i.punkt?f=t[12]:(f=n(`size-1.5 rounded-full`,i.punkt),t[11]=i.punkt,t[12]=f);let p;t[13]===f?p=t[14]:(p=(0,E.jsx)(`span`,{"aria-hidden":!0,className:f}),t[13]=f,t[14]=p);let m;t[15]!==i.text||t[16]!==d||t[17]!==p?(m=(0,E.jsxs)(`span`,{className:d,children:[p,i.text]}),t[15]=i.text,t[16]=d,t[17]=p,t[18]=m):m=t[18];let h;return t[19]!==s||t[20]!==l||t[21]!==m?(h=(0,E.jsxs)(`li`,{className:`grid grid-cols-[minmax(0,1fr)_auto] items-center gap-x-3 gap-y-1 border-t border-white/[0.06] py-2.5 first:border-t-0 @sm:grid-cols-[112px_minmax(0,1fr)_auto]`,children:[s,l,m]}),t[19]=s,t[20]=l,t[21]=m,t[22]=h):h=t[22],h}function k(e){let t=(0,T.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,E.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,E.jsx)(`ol`,{className:`@container m-0 flex list-none flex-col p-0`,children:a.map(A)}),t[4]=a,t[5]=o),o}function A(e){return(0,E.jsx)(O,{e},`${e.titel}-${e.zeit}`)}function j(e){let t=(0,T.c)(28),{anteil:n,farbe:r,zonen:i,mitte:a,unter:o,beschriftung:c,ariaText:l,hinweis:u}=e,d=r===void 0?`var(--box)`:r,f;t[0]===i?f=t[1]:(f=i===void 0?[]:i,t[0]=i,t[1]=f);let p=f,m=n!=null&&n>.004,h;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,E.jsx)(`path`,{d:s(0,1,75),fill:`none`,stroke:`rgb(255 255 255 / 0.07)`,strokeWidth:12,strokeLinecap:`round`}),t[2]=h):h=t[2];let g;t[3]===p?g=t[4]:(g=p.map(M),t[3]=p,t[4]=g);let _;t[5]!==n||t[6]!==d||t[7]!==m?(_=m&&(0,E.jsx)(`path`,{d:s(0,n,75),fill:`none`,stroke:d,strokeWidth:12,strokeLinecap:`round`,style:{filter:`drop-shadow(0 0 7px color-mix(in srgb, ${d} 60%, transparent))`}}),t[5]=n,t[6]=d,t[7]=m,t[8]=_):_=t[8];let v;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(v={fontFamily:`var(--font-anzeige)`,fontSize:40,fontWeight:600,fill:`var(--foreground)`},t[9]=v):v=t[9];let y;t[10]===a?y=t[11]:(y=(0,E.jsx)(`text`,{x:`100`,y:`102`,textAnchor:`middle`,style:v,children:a}),t[10]=a,t[11]=y);let b;t[12]===o?b=t[13]:(b=o&&(0,E.jsx)(`text`,{x:`100`,y:`124`,textAnchor:`middle`,style:{fontFamily:`var(--font-sans)`,fontSize:13,fontWeight:500,fill:`var(--text-3)`},children:o}),t[12]=o,t[13]=b);let x;t[14]!==l||t[15]!==g||t[16]!==_||t[17]!==y||t[18]!==b?(x=(0,E.jsxs)(`svg`,{viewBox:`0 0 200 150`,className:`h-auto w-full max-w-[200px]`,role:`img`,"aria-label":l,children:[h,g,_,y,b]}),t[14]=l,t[15]=g,t[16]=_,t[17]=y,t[18]=b,t[19]=x):x=t[19];let S;t[20]===c?S=t[21]:(S=(0,E.jsx)(`figcaption`,{className:`etikett text-[11.5px] tracking-[0.14em] text-text-3`,children:c}),t[20]=c,t[21]=S);let C;t[22]===u?C=t[23]:(C=u&&(0,E.jsx)(`span`,{className:`text-center text-xs ${u.className}`,children:u.text}),t[22]=u,t[23]=C);let w;return t[24]!==x||t[25]!==S||t[26]!==C?(w=(0,E.jsxs)(`figure`,{className:`m-0 flex min-w-0 flex-col items-center gap-1`,children:[x,S,C]}),t[24]=x,t[25]=S,t[26]=C,t[27]=w):w=t[27],w}function M(e){return(0,E.jsx)(`path`,{d:s(e.von,e.bis,86),fill:`none`,stroke:e.farbe,strokeWidth:4,strokeLinecap:`round`},`${e.von}-${e.bis}`)}function N(e){let t=(0,T.c)(12),{zustand:n,lampen:r,onAnsehen:i}=e,a;t[0]===n?a=t[1]:(a=o(n),t[0]=n,t[1]=a);let s=a,c=s.art,l=s.oben,u=s.mitte,d=s.unten,f=s.art===`gelb`||s.art===`rot`,p;t[2]===r?p=t[3]:(p=r.map(P),t[2]=r,t[3]=p);let m;return t[4]!==s.art||t[5]!==s.mitte||t[6]!==s.oben||t[7]!==s.unten||t[8]!==i||t[9]!==f||t[10]!==p?(m=(0,E.jsx)(S,{art:c,oben:l,mitte:u,unten:d,aktiv:f,onAnsehen:i,label:`Warnpanel`,children:p}),t[4]=s.art,t[5]=s.mitte,t[6]=s.oben,t[7]=s.unten,t[8]=i,t[9]=f,t[10]=p,t[11]=m):m=t[11],m}function P(e){return(0,E.jsx)(w,{bild:_(e.id),name:e.label,wert:e.wert,zustand:e.zustand},e.id)}function F(e){let t=(0,T.c)(2),{z:n}=e,r;return t[0]===n?r=t[1]:(r=(0,E.jsx)(`span`,{className:`ziffern inline-flex h-[1.75em] w-[1.1875em] shrink-0 items-center justify-center rounded-lg border border-white/10 bg-gradient-to-b from-white/[0.07] to-white/[0.02] font-medium shadow-[inset_0_1px_0_rgb(255_255_255/0.06)]`,children:n}),t[0]=n,t[1]=r),r}function I(e){let t=(0,T.c)(25),{sekunden:n}=e,r;t[0]===n?r=t[1]:(r=l(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),u;t[4]===c?u=t[5]:(u=c.padStart(2,`0`),t[4]=c,t[5]=u);let d=u,f=i?`Laufzeit ohne Neustart: ${i[0]} Tage, ${i[1]} Stunden`:`Laufzeit unbekannt`,p=i?s[0]:`–`,m;t[6]===p?m=t[7]:(m=(0,E.jsx)(F,{z:p}),t[6]=p,t[7]=m);let h=i?s[1]:`–`,g;t[8]===h?g=t[9]:(g=(0,E.jsx)(F,{z:h}),t[8]=h,t[9]=g);let _;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,E.jsx)(`span`,{className:`etikett mr-[0.444em] ml-[0.111em] text-[0.5625em] text-text-3`,children:`T`}),t[10]=_):_=t[10];let v=i?d[0]:`–`,y;t[11]===v?y=t[12]:(y=(0,E.jsx)(F,{z:v}),t[11]=v,t[12]=y);let b=i?d[1]:`–`,x;t[13]===b?x=t[14]:(x=(0,E.jsx)(F,{z:b}),t[13]=b,t[14]=x);let S;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,E.jsx)(`span`,{className:`etikett ml-[0.111em] text-[0.5625em] text-text-3`,children:`H`}),t[15]=S):S=t[15];let C;t[16]!==y||t[17]!==x||t[18]!==m||t[19]!==g||t[20]!==f?(C=(0,E.jsxs)(`div`,{"aria-label":f,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:[m,g,_,y,x,S]}),t[16]=y,t[17]=x,t[18]=m,t[19]=g,t[20]=f,t[21]=C):C=t[21];let w;t[22]===Symbol.for(`react.memo_cache_sentinel`)?(w=(0,E.jsx)(`figcaption`,{className:`etikett text-[11.5px] tracking-[0.14em] text-text-3`,children:`Ohne Neustart`}),t[22]=w):w=t[22];let D;return t[23]===C?D=t[24]:(D=(0,E.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]=D),D}function L(e){let t=(0,T.c)(53),{box:n}=e,r=d(),a=r?.ram_used??n.ram_used,o=r?.ram_total??n.ram_total,s=r?.temp_cpu??n.temp_cpu,l=r?.temp_gpu??n.temp_gpu,u=n.platte,p=u?.vorhersage,m;t[0]===p?m=t[1]:(m=y(p),t[0]=p,t[1]=m);let h=m,_=r?.uptime_s??n.uptime_s,v=a!=null&&o?a/o:null,b;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(b={"--i":1},t[2]=b):b=t[2];let x;t[3]===a?x=t[4]:(x=a==null?`–`:String(Math.round(f(a)??0)),t[3]=a,t[4]=x);let S;t[5]===o?S=t[6]:(S=o?`von ${Math.round(f(o)??0)} GB`:void 0,t[5]=o,t[6]=S);let C;t[7]!==v||t[8]!==a||t[9]!==o?(C=v==null?`Speicher unbekannt`:`Speicher: ${c(a)} von ${c(o)} belegt`,t[7]=v,t[8]=a,t[9]=o,t[10]=C):C=t[10];let w;t[11]!==v||t[12]!==x||t[13]!==S||t[14]!==C?(w=(0,E.jsx)(j,{beschriftung:`Speicher`,anteil:v,mitte:x,unter:S,ariaText:C}),t[11]=v,t[12]=x,t[13]=S,t[14]=C,t[15]=w):w=t[15];let D=s==null?null:s/100,O;t[16]===s?O=t[17]:(O=i(s),t[16]=s,t[17]=O);let k;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(k=[{von:.7,bis:.85,farbe:`var(--bernstein)`},{von:.85,bis:1,farbe:`var(--rot)`}],t[18]=k):k=t[18];let A;t[19]===s?A=t[20]:(A=s==null?`–`:`${Math.round(s)}°`,t[19]=s,t[20]=A);let M;t[21]===l?M=t[22]:(M=l==null?void 0:`GPU ${Math.round(l)}°`,t[21]=l,t[22]=M);let N;t[23]===s?N=t[24]:(N=s==null?`Temperatur unbekannt`:`Temperatur ${Math.round(s)} Grad`,t[23]=s,t[24]=N);let P;t[25]!==A||t[26]!==M||t[27]!==N||t[28]!==D||t[29]!==O?(P=(0,E.jsx)(j,{beschriftung:`Temperatur`,anteil:D,farbe:O,zonen:k,mitte:A,unter:M,ariaText:N}),t[25]=A,t[26]=M,t[27]=N,t[28]=D,t[29]=O,t[30]=P):P=t[30];let F=u?u.percent/100:null,L=u&&u.percent>=90?`var(--rot)`:u&&u.percent>=80?`var(--bernstein)`:`var(--box)`,R;t[31]===u?R=t[32]:(R=u?`${Math.round(u.percent)}%`:`–`,t[31]=u,t[32]=R);let z;t[33]===u?z=t[34]:(z=u?`${c(u.used)} / ${c(u.total)}`:void 0,t[33]=u,t[34]=z);let B;t[35]===u?B=t[36]:(B=u?`Platte zu ${Math.round(u.percent)} Prozent belegt`:`Platte unbekannt`,t[35]=u,t[36]=B);let V;t[37]===h?V=t[38]:(V=h?{text:h.text,className:g[h.stufe]}:null,t[37]=h,t[38]=V);let H;t[39]!==F||t[40]!==L||t[41]!==R||t[42]!==z||t[43]!==B||t[44]!==V?(H=(0,E.jsx)(j,{beschriftung:`Platte`,anteil:F,farbe:L,mitte:R,unter:z,ariaText:B,hinweis:V}),t[39]=F,t[40]=L,t[41]=R,t[42]=z,t[43]=B,t[44]=V,t[45]=H):H=t[45];let U;t[46]===_?U=t[47]:(U=(0,E.jsx)(I,{sekunden:_}),t[46]=_,t[47]=U);let W;return t[48]!==P||t[49]!==H||t[50]!==U||t[51]!==w?(W=(0,E.jsxs)(`section`,{"aria-label":`Instrumente`,className:`auftauchen flaeche grid grid-cols-2 gap-x-4 gap-y-6 rounded-3xl px-4 py-5 lg:grid-cols-4 lg:px-6`,style:b,children:[w,P,H,U]}),t[48]=P,t[49]=H,t[50]=U,t[51]=w,t[52]=W):W=t[52],W}var R={bestanden:`gruen`,durchgefallen:`rot`,wartet:`cyan`,neu:`cyan`};function z(e){let t=(0,T.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(V),i=r.find(B)??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,E.jsxs)(`span`,{className:`etikett text-[11px] tracking-[0.14em] text-cyan-text`,children:[`Radar · `,r.length,` Kandidat`,o]}),t[3]=r.length,t[4]=o,t[5]=s):s=t[5];let c;t[6]===a?c=t[7]:(c=a?(0,E.jsxs)(`span`,{className:`flex flex-wrap items-center gap-2 text-[15px]`,children:[(0,E.jsx)(`span`,{className:`ziffern`,children:a.name}),(0,E.jsxs)(`span`,{className:`text-text-2`,children:[`fürs `,a.rolle===`hirn`?`Hirn`:`Coden`]}),(0,E.jsx)(m,{art:R[a.status]??`grau`,children:p[a.status]??a.status})]}):(0,E.jsx)(`span`,{className:`text-[15px] text-text-2`,children:`Nichts Besseres in Sicht.`}),t[6]=a,t[7]=c);let l;t[8]!==s||t[9]!==c?(l=(0,E.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1`,children:[s,c]}),t[8]=s,t[9]=c,t[10]=l):l=t[10];let u;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,E.jsx)(b,{variant:`info`,size:`sm`,asChild:!0,children:(0,E.jsx)(v,{to:`/box/modelle`,hash:`radar`,children:`Ansehen`})}),t[11]=u):u=t[11];let d;return t[12]===l?d=t[13]:(d=(0,E.jsxs)(`div`,{className:`mt-auto flex flex-wrap items-center justify-between gap-3 rounded-2xl bg-cyan/[0.06] px-4 py-3.5 ring-1 ring-cyan/30 ring-inset`,children:[l,u]}),t[12]=l,t[13]=d),d}function B(e){return e.status===`bestanden`}function V(e){return[`bestanden`,`wartet`,`neu`].includes(e.status)}function H(){let e=(0,T.c)(32),{data:t,error:n,isPending:i}=a(),o=r();if(i){let t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,E.jsx)(h,{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,E.jsx)(h,{fehler:!0,text:t}),e[1]=t,e[2]=r),r}let s=t.hinweise.length,c;e[3]!==t.lampen||e[4]!==t.zustand?(c=(0,E.jsx)(N,{zustand:t.zustand,lampen:t.lampen,onAnsehen:U}),e[3]=t.lampen,e[4]=t.zustand,e[5]=c):c=e[5];let l;e[6]===t.box?l=e[7]:(l=(0,E.jsx)(L,{box:t.box}),e[6]=t.box,e[7]=l);let u=s?`bernstein`:`gruen`,d=s?`${s} offen`:`alles erledigt`,f;e[8]!==u||e[9]!==d?(f=(0,E.jsx)(m,{art:u,children:d}),e[8]=u,e[9]=d,e[10]=f):f=e[10];let p;e[11]!==t.hinweise||e[12]!==t.verlauf?(p=(0,E.jsx)(C,{hinweise:t.hinweise,verlauf:t.verlauf}),e[11]=t.hinweise,e[12]=t.verlauf,e[13]=p):p=e[13];let g;e[14]!==f||e[15]!==p?(g=(0,E.jsx)(x,{titel:`Checkliste`,id:`checkliste`,rechts:f,children:p}),e[14]=f,e[15]=p,e[16]=g):g=e[16];let _;e[17]!==t.flugplan.gelaufen||e[18]!==t.flugplan.geplant?(_=(0,E.jsx)(k,{gelaufen:t.flugplan.gelaufen,geplant:t.flugplan.geplant}),e[17]=t.flugplan.gelaufen,e[18]=t.flugplan.geplant,e[19]=_):_=e[19];let v;e[20]===o.data?v=e[21]:(v=(0,E.jsx)(z,{radar:o.data}),e[20]=o.data,e[21]=v);let y;e[22]!==_||e[23]!==v?(y=(0,E.jsxs)(x,{titel:`Flugplan`,children:[_,v]}),e[22]=_,e[23]=v,e[24]=y):y=e[24];let b;e[25]!==g||e[26]!==y?(b=(0,E.jsxs)(`div`,{className:`grid gap-5 lg:grid-cols-[minmax(0,1.35fr)_minmax(0,1fr)] md:gap-6`,children:[g,y]}),e[25]=g,e[26]=y,e[27]=b):b=e[27];let S;return e[28]!==c||e[29]!==l||e[30]!==b?(S=(0,E.jsxs)(E.Fragment,{children:[c,l,b]}),e[28]=c,e[29]=l,e[30]=b,e[31]=S):S=e[31],S}function U(){return document.getElementById(`checkliste`)?.scrollIntoView({behavior:`smooth`,block:`start`})}export{H as StartSeite}; \ No newline at end of file diff --git a/frontend/dist/assets/Updates-BHdVGZTU.js b/frontend/dist/assets/Updates-BnWCu023.js similarity index 60% rename from frontend/dist/assets/Updates-BHdVGZTU.js rename to frontend/dist/assets/Updates-BnWCu023.js index 6ceb206..8e35b8c 100644 --- a/frontend/dist/assets/Updates-BHdVGZTU.js +++ b/frontend/dist/assets/Updates-BnWCu023.js @@ -1,2 +1,2 @@ -import{a as e,c as t,i as n,r,t as i}from"./dist-aE7UmubC.js";import{J as a,O as o,Q as s,at as c,et as l,j as u,m as d,nt as f,ot as p,p as ee,rt as te,wt as m}from"./abfragen-DKcWnZ8a.js";import{t as h}from"./chevron-right-DF8ikrVh.js";import{M as g,N as _,O as v,k as y}from"./index-BUHDF9RN.js";import{t as ne}from"./button-DwYvdWVr.js";import{t as b}from"./Bestaetigen-BemBWZzN.js";import{t as x}from"./Panel-uT1S5ZGr.js";import{c as S,i as C,n as re,o as w,t as T}from"./Auftraege-AvxzcTvv.js";var E=r(),D=t(e(),1),O=n(),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 t=(0,E.c)(7),{breit:n}=e,r=n===void 0?`w-16`:n,a;t[0]===r?a=t[1]:(a=i(`inline-block h-3.5 rounded bg-linie motion-safe:animate-pulse`,r),t[0]=r,t[1]=a);let o;t[2]===a?o=t[3]:(o=(0,O.jsx)(`span`,{"aria-hidden":!0,className:a}),t[2]=a,t[3]=o);let s;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,O.jsx)(`span`,{className:`sr-only`,children:`wird geprüft`}),t[4]=s):s=t[4];let c;return t[5]===o?c=t[6]:(c=(0,O.jsxs)(`span`,{className:`inline-flex items-center`,children:[o,s]}),t[5]=o,t[6]=c),c}function ae(e){let t=(0,E.c)(13),{text:n}=e,[r,a]=(0,D.useState)(!1),o;t[0]===n?o=t[1]:(o=n.split(` -`).length>3||n.length>240,t[0]=n,t[1]=o);let s=o,c=s&&!r&&`line-clamp-3`,l;t[2]===c?l=t[3]:(l=i(`m-0 whitespace-pre-line`,c),t[2]=c,t[3]=l);let u;t[4]!==l||t[5]!==n?(u=(0,O.jsx)(`p`,{className:l,children:n}),t[4]=l,t[5]=n,t[6]=u):u=t[6];let d;t[7]!==s||t[8]!==r?(d=s&&(0,O.jsx)(`button`,{type:`button`,"aria-expanded":r,onClick:()=>a(!r),className:`-mb-2 inline-flex h-11 items-center text-sm text-cyan-text hover:underline`,children:r?`Weniger zeigen`:`Ganze Zusammenfassung zeigen`}),t[7]=s,t[8]=r,t[9]=d):d=t[9];let f;return t[10]!==u||t[11]!==d?(f=(0,O.jsxs)(`div`,{className:`flex flex-col items-start`,children:[u,d]}),t[10]=u,t[11]=d,t[12]=f):f=t[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)(h,{"aria-hidden":!0,className:`size-4 transition-transform group-open:rotate-90`}),t[6]=r):r=t[6];let s=i.length===0?`Was Ubuntu zurückhält (${e.length})`: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-text 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-xl bg-black/30 ring-1 ring-white/[0.07] ring-inset 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)(g,{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)(g,{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)(70),{id:n,name:r,details:i,hatUpdate:a,neuLautStart:o,fest:s,gesperrt:c,onStart:l,onFreigeben:u}=e,d=i.data,f=i.isPending,p=i.isError?i.error.message:d?.error,ee;t[0]!==d||t[1]!==n?(ee=d?S(n,d):null,t[0]=d,t[1]=n,t[2]=ee):ee=t[2];let te=ee,m=a?te?.neu??o??null:null,h=d?.summary,g;t[3]===h?g=t[4]:(g=N(h),t[3]=h,t[4]=g);let _=g,b=te&&te.laeuft!==`–`?te.laeuft:p?`unbekannt`:`–`,x;t[5]!==f||t[6]!==b?(x=f?(0,O.jsx)(ie,{}):(0,O.jsx)(O.Fragment,{children:b}),t[5]=f,t[6]=b,t[7]=x):x=t[7];let C=x,re;t[8]!==p||t[9]!==f||t[10]!==m?(re=f?(0,O.jsx)(ie,{breit:`w-20`}):m?(0,O.jsx)(`span`,{className:`text-cyan-text`,children:m}):p?(0,O.jsx)(`span`,{className:`text-bernstein`,children:`nicht geprüft`}):(0,O.jsx)(`span`,{className:`text-text-3`,children:`–`}),t[8]=p,t[9]=f,t[10]=m,t[11]=re):re=t[11];let T=re,D;if(f){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],D=e}else if(p&&!a){let e;t[13]===p?e=t[14]:(e=w(p),t[13]=p,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),D=n}else if(!a)D=`Aktuell.`;else{let e;t[17]===p?e=t[18]:(e=p&&(0,O.jsx)(`span`,{className:`text-bernstein`,children:w(p)}),t[17]=p,t[18]=e);let r;t[19]===d?r=t[20]:(r=d&&(0,O.jsx)(se,{d}),t[19]=d,t[20]=r);let i;t[21]!==d||t[22]!==n||t[23]!==_?(i=n===`os`?(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(`span`,{children:d?.count?`${d.count} ${d.count===1?`Paket`:`Pakete`} aus Ubuntu.`:`Neue Pakete aus Ubuntu.`}),d&&(0,O.jsx)(oe,{d})]}):_?(0,O.jsx)(ae,{text:_}):null,t[21]=d,t[22]=n,t[23]=_,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],D=a}let k=f||void 0,A;t[29]===n?A=t[30]:(A=y(n),t[29]=n,t[30]=A);let j;t[31]===A?j=t[32]:(j=(0,O.jsx)(v,{bild:A,groesse:`sm`}),t[31]=A,t[32]=j);let M;t[33]===r?M=t[34]:(M=(0,O.jsx)(`span`,{className:`min-w-0`,children:r}),t[33]=r,t[34]=M);let P;t[35]!==j||t[36]!==M?(P=(0,O.jsxs)(`span`,{role:`rowheader`,className:`flex min-w-0 items-center gap-3 text-[15px] font-semibold`,children:[j,M]}),t[35]=j,t[36]=M,t[37]=P):P=t[37];let F;t[38]!==p||t[39]!==f||t[40]!==m||t[41]!==T?(F=!f&&(m||p)&&(0,O.jsxs)(O.Fragment,{children:[` `,m?`→`:`·`,` `,T]}),t[38]=p,t[39]=f,t[40]=m,t[41]=T,t[42]=F):F=t[42];let I;t[43]!==C||t[44]!==F?(I=(0,O.jsxs)(`span`,{role:`cell`,className:`ziffern -mt-1 text-sm text-text-2 md:hidden`,children:[C,F]}),t[43]=C,t[44]=F,t[45]=I):I=t[45];let L;t[46]===C?L=t[47]:(L=(0,O.jsx)(`span`,{role:`cell`,className:`ziffern hidden text-sm text-text-2 md:block`,children:C}),t[46]=C,t[47]=L);let R;t[48]===T?R=t[49]:(R=(0,O.jsx)(`span`,{role:`cell`,className:`ziffern hidden text-sm md:block`,children:T}),t[48]=T,t[49]=R);let z;t[50]!==s||t[51]!==r?(z=s&&(0,O.jsxs)(`span`,{className:`mb-1.5 block text-bernstein`,children:[`Festgehalten seit `,s.seit,` auf `,s.version,`: `,s.grund,`. Der Sonntags-Lauf überspringt `,r,`.`]}),t[50]=s,t[51]=r,t[52]=z):z=t[52];let B;t[53]!==z||t[54]!==D?(B=(0,O.jsxs)(`div`,{role:`cell`,className:`text-sm leading-relaxed text-text-2`,children:[z,D]}),t[53]=z,t[54]=D,t[55]=B):B=t[55];let V;t[56]!==s||t[57]!==c||t[58]!==a||t[59]!==u||t[60]!==l?(V=(s||a)&&(0,O.jsxs)(`span`,{role:`cell`,className:`flex flex-wrap gap-2 md:flex-col md:items-end`,children:[s&&(0,O.jsx)(ne,{variant:`outline`,size:`sm`,onClick:u,children:`Freigeben`}),a&&(0,O.jsx)(ne,{variant:`outline`,size:`sm`,onClick:l,disabled:c,children:`Aktualisieren`})]}),t[56]=s,t[57]=c,t[58]=a,t[59]=u,t[60]=l,t[61]=V):V=t[61];let ce;return t[62]!==P||t[63]!==I||t[64]!==L||t[65]!==R||t[66]!==B||t[67]!==V||t[68]!==k?(ce=(0,O.jsxs)(`div`,{role:`row`,"aria-busy":k,className:`grid grid-cols-1 gap-x-4 gap-y-2 border-t border-white/[0.06] py-3.5 md:grid-cols-[210px_100px_170px_minmax(0,1fr)_auto] md:items-start`,children:[P,I,L,R,B,V]}),t[62]=P,t[63]=I,t[64]=L,t[65]=R,t[66]=B,t[67]=V,t[68]=k,t[69]=ce):ce=t[69],ce}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)(g,{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(R)}),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-white/[0.06] py-3`,children:[c,l]}),t[16]=c,t[17]=l,t[18]=u):u=t[18],u}function R(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:i(`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 z(e){return e.mtime?p(new Date(e.mtime*1e3).toISOString()):e.snapshot}function B(){let e=(0,E.c)(126),t=s(),n=ee(!0).data?.update_fenster,r=u(),i=te(),p=a(),m=f(),h=d(),g=o(),v=c(),[y,S]=(0,D.useState)(null),C;e[0]===t.data?.updates.bausteine?C=e[1]:(C=new Map((t.data?.updates.bausteine??[]).map(fe)),e[0]=t.data?.updates.bausteine,e[1]=C);let w=C,ie=new Map((t.data?.updates.festgehalten??[]).map(de)),ae;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(ae=k.map(ue),e[2]=ae):ae=e[2];let oe=l(ae),j;e[3]!==oe||e[4]!==w?(j=(e,t)=>re(e.id,oe[t].data)??w.has(e.id),e[3]=oe,e[4]=w,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(le)||(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(ce),e[11]=N,e[12]=L);let R=L,B=I||m.isPending,H=p.data?.available??!1,U;if(t.isPending){let t;e[13]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,O.jsx)(_,{text:`Updates werden gelesen …`}),e[13]=t):t=e[13],U=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)(_,{fehler:!0,text:n}),e[14]=n,e[15]=r),U=r}else{let t;e[16]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,O.jsxs)(`div`,{role:`row`,className:`etikett hidden grid-cols-[210px_100px_170px_minmax(0,1fr)_auto] gap-x-4 pb-2 text-[10.5px] tracking-[0.14em] 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],U=(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:w.get(e.id),fest:ie.get(e.id),gesperrt:B,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 W;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],W=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),W=t}else if(i.data?.laeufe.length){let t;e[21]===i.data.laeufe?t=e[22]:(t=i.data.laeufe.map(V),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),W=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],W=t}let G;if(p.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],G=t}else if(p.isError&&!p.data){let t;e[26]===p.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: `,p.error.message]}),e[26]=p.error.message,e[27]=t),G=t}else if(p.data?.backups.length){let t;if(e[29]!==p.data.backups||e[30]!==v.isPending||e[31]!==H){let n;e[33]!==v.isPending||e[34]!==H?(n=e=>(0,O.jsxs)(`li`,{className:`flex items-center justify-between gap-3 border-t border-white/[0.06] py-2.5`,children:[(0,O.jsx)(`span`,{className:`ziffern text-sm`,children:z(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)(ne,{variant:`ghost`,size:`sm`,disabled:!H||v.isPending,onClick:()=>S({art:`zurueck`,datei:e.file,zeit:z(e)}),children:`Zurückspielen`})]})]},e.file),e[33]=v.isPending,e[34]=H,e[35]=n):n=e[35],t=p.data.backups.slice(0,5).map(n),e[29]=p.data.backups,e[30]=v.isPending,e[31]=H,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),G=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],G=t}let pe=x,K;e[38]===m?K=e[39]:(K=()=>m.mutate(`pruefen`),e[38]=m,e[39]=K);let me=m.isPending||R,he=R?`Sucht …`:`Nach Neuem suchen`,q;e[40]!==he||e[41]!==K||e[42]!==me?(q=(0,O.jsx)(ne,{variant:`outline`,onClick:K,disabled:me,children:he}),e[40]=he,e[41]=K,e[42]=me,e[43]=q):q=e[43];let ge=ne,J;e[44]===Symbol.for(`react.memo_cache_sentinel`)?(J=()=>S({art:`alle`}),e[44]=J):J=e[44];let _e=B||!M.some(Boolean),Y;e[45]!==ge||e[46]!==J||e[47]!==_e?(Y=(0,O.jsx)(ge,{onClick:J,disabled:_e,children:`Alles jetzt aktualisieren`}),e[45]=ge,e[46]=J,e[47]=_e,e[48]=Y):Y=e[48];let X;e[49]!==q||e[50]!==Y?(X=(0,O.jsxs)(`div`,{className:`flex flex-wrap gap-2.5`,children:[q,Y]}),e[49]=q,e[50]=Y,e[51]=X):X=e[51];let ve=n?`Jeden ${n.tag_name} um ${n.uhrzeit} automatisch.`:`Einmal pro Woche automatisch.`,Z;e[52]===ve?Z=e[53]:(Z=(0,O.jsxs)(`p`,{className:`-mt-2 text-[15px] text-text-2`,children:[ve,` Vorher wird gesichert, danach geprüft.`]}),e[52]=ve,e[53]=Z);let ye;e[54]===I?ye=e[55]:(ye=I&&(0,O.jsx)(`p`,{role:`status`,className:`text-[15px] text-cyan-text`,children:`Gerade läuft ein Update. Weitere lassen sich erst starten, wenn es fertig ist.`}),e[54]=I,e[55]=ye);let be;e[56]===Symbol.for(`react.memo_cache_sentinel`)?(be=(0,O.jsx)(T,{}),e[56]=be):be=e[56];let xe;e[57]!==pe||e[58]!==X||e[59]!==Z||e[60]!==ye||e[61]!==U?(xe=(0,O.jsxs)(pe,{titel:`Updates`,rechts:X,children:[Z,ye,U,be]}),e[57]=pe,e[58]=X,e[59]=Z,e[60]=ye,e[61]=U,e[62]=xe):xe=e[62];let Se;e[63]===W?Se=e[64]:(Se=(0,O.jsx)(x,{titel:`Verlauf`,children:W}),e[63]=W,e[64]=Se);let Ce;e[65]===g?Ce=e[66]:(Ce=()=>g.mutate(void 0),e[65]=g,e[66]=Ce);let we=g.isPending?`Sichert …`:`Jetzt sichern`,Te;e[67]!==g.isPending||e[68]!==Ce||e[69]!==we?(Te=(0,O.jsx)(ne,{variant:`outline`,size:`sm`,onClick:Ce,disabled:g.isPending,children:we}),e[67]=g.isPending,e[68]=Ce,e[69]=we,e[70]=Te):Te=e[70];let Ee;e[71]===Symbol.for(`react.memo_cache_sentinel`)?(Ee=(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]=Ee):Ee=e[71];let De;e[72]!==p.data||e[73]!==H?(De=p.data&&!H&&(0,O.jsx)(`p`,{className:`text-sm text-text-3`,children:`Zurückspielen geht nur auf der Box selbst.`}),e[72]=p.data,e[73]=H,e[74]=De):De=e[74];let Oe;e[75]!==G||e[76]!==Te||e[77]!==De?(Oe=(0,O.jsxs)(x,{titel:`Sicherungen`,rechts:Te,children:[Ee,De,G]}),e[75]=G,e[76]=Te,e[77]=De,e[78]=Oe):Oe=e[78];let ke;e[79]!==Se||e[80]!==Oe?(ke=(0,O.jsxs)(`div`,{className:`grid gap-5 md:gap-6 lg:grid-cols-[minmax(0,1.4fr)_minmax(0,1fr)]`,children:[Se,Oe]}),e[79]=Se,e[80]=Oe,e[81]=ke):ke=e[81];let Ae=y?.art===`alle`,je;e[82]===Symbol.for(`react.memo_cache_sentinel`)?(je=()=>S(null),e[82]=je):je=e[82];let Me;e[83]!==y?.art||e[84]!==m?(Me=()=>{y?.art===`alle`&&m.mutate(`alle`),S(null)},e[83]=y?.art,e[84]=m,e[85]=Me):Me=e[85];let Q;e[86]!==B||e[87]!==Ae||e[88]!==Me?(Q=(0,O.jsx)(b,{offen:Ae,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:B,onNein:je,onJa:Me}),e[86]=B,e[87]=Ae,e[88]=Me,e[89]=Q):Q=e[89];let Ne=y?.art===`einzeln`,Pe=y?.art===`einzeln`?`${y.name} aktualisieren?`:``,Fe=y?.art===`einzeln`?A[y.id]??``:``,Ie;e[90]===Symbol.for(`react.memo_cache_sentinel`)?(Ie=()=>S(null),e[90]=Ie):Ie=e[90];let Le;e[91]!==y||e[92]!==m?(Le=()=>{y?.art===`einzeln`&&m.mutate(y.id),S(null)},e[91]=y,e[92]=m,e[93]=Le):Le=e[93];let Re;e[94]!==B||e[95]!==Ne||e[96]!==Pe||e[97]!==Fe||e[98]!==Le?(Re=(0,O.jsx)(b,{offen:Ne,titel:Pe,text:Fe,knopf:`Aktualisieren`,gesperrt:B,onNein:Ie,onJa:Le}),e[94]=B,e[95]=Ne,e[96]=Pe,e[97]=Fe,e[98]=Le,e[99]=Re):Re=e[99];let ze=y?.art===`freigeben`,Be=y?.art===`freigeben`?`${y.name} freigeben?`:``,Ve=y?.art===`freigeben`?`Festgehalten wurde ${y.name}, weil: ${y.grund}. Nach dem Freigeben versucht der nächste Sonntags-Lauf das Update wieder.`:``,He;e[100]===Symbol.for(`react.memo_cache_sentinel`)?(He=()=>S(null),e[100]=He):He=e[100];let Ue;e[101]!==y||e[102]!==h?(Ue=()=>{y?.art===`freigeben`&&h.mutate(y.id),S(null)},e[101]=y,e[102]=h,e[103]=Ue):Ue=e[103];let We;e[104]!==h.isPending||e[105]!==ze||e[106]!==Be||e[107]!==Ve||e[108]!==Ue?(We=(0,O.jsx)(b,{offen:ze,titel:Be,text:Ve,knopf:`Freigeben`,gesperrt:h.isPending,onNein:He,onJa:Ue}),e[104]=h.isPending,e[105]=ze,e[106]=Be,e[107]=Ve,e[108]=Ue,e[109]=We):We=e[109];let Ge=y?.art===`zurueck`,Ke=`Die Einstellungen von Hermes und llama-swap werden auf den Stand von ${y?.art===`zurueck`?y.zeit:``} gesetzt. Vorher wird der jetzige Stand gesichert. Die Dienste starten danach neu.`,qe;e[110]===Symbol.for(`react.memo_cache_sentinel`)?(qe=()=>S(null),e[110]=qe):qe=e[110];let Je;e[111]!==y||e[112]!==v?(Je=()=>{y?.art===`zurueck`&&v.mutate(y.datei),S(null)},e[111]=y,e[112]=v,e[113]=Je):Je=e[113];let $;e[114]!==Ge||e[115]!==Ke||e[116]!==Je||e[117]!==v.isPending?($=(0,O.jsx)(b,{offen:Ge,gefahr:!0,titel:`Sicherung zurückspielen?`,text:Ke,knopf:`Zurückspielen`,gesperrt:v.isPending,onNein:qe,onJa:Je}),e[114]=Ge,e[115]=Ke,e[116]=Je,e[117]=v.isPending,e[118]=$):$=e[118];let Ye;return e[119]!==xe||e[120]!==ke||e[121]!==Q||e[122]!==Re||e[123]!==We||e[124]!==$?(Ye=(0,O.jsxs)(O.Fragment,{children:[xe,ke,Q,Re,We,$]}),e[119]=xe,e[120]=ke,e[121]=Q,e[122]=Re,e[123]=We,e[124]=$,e[125]=Ye):Ye=e[125],Ye}function V(e){return(0,O.jsx)(L,{lauf:e},e.start)}function ce(e){return C(e)&&m(e)}function le(e){return e.group===`maintenance`&&m(e)}function ue(e){return e.id}function de(e){return[e.baustein,e]}function fe(e){return[e.id,e.neu]}export{B as UpdatesSeite}; \ No newline at end of file +import{a as e,c as t,i as n,r,t as i}from"./dist-aE7UmubC.js";import{Nt as a,O as o,Q as s,at as c,ct as l,ht as u,j as d,m as f,mt as p,nt as ee,p as te,st as m}from"./abfragen-pD_qBEtc.js";import{t as h}from"./chevron-right-DF8ikrVh.js";import{t as ne}from"./button-BHVKhtQ6.js";import{H as g,L as _,R as v,V as y,m as b,p as x}from"./index-Bumw6krN.js";import{c as S,i as C,n as re,o as w,t as T}from"./Auftraege-Ddds-g-W.js";var E=r(),D=t(e(),1),O=n(),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 t=(0,E.c)(7),{breit:n}=e,r=n===void 0?`w-16`:n,a;t[0]===r?a=t[1]:(a=i(`inline-block h-3.5 rounded bg-linie motion-safe:animate-pulse`,r),t[0]=r,t[1]=a);let o;t[2]===a?o=t[3]:(o=(0,O.jsx)(`span`,{"aria-hidden":!0,className:a}),t[2]=a,t[3]=o);let s;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,O.jsx)(`span`,{className:`sr-only`,children:`wird geprüft`}),t[4]=s):s=t[4];let c;return t[5]===o?c=t[6]:(c=(0,O.jsxs)(`span`,{className:`inline-flex items-center`,children:[o,s]}),t[5]=o,t[6]=c),c}function ae(e){let t=(0,E.c)(13),{text:n}=e,[r,a]=(0,D.useState)(!1),o;t[0]===n?o=t[1]:(o=n.split(` +`).length>3||n.length>240,t[0]=n,t[1]=o);let s=o,c=s&&!r&&`line-clamp-3`,l;t[2]===c?l=t[3]:(l=i(`m-0 whitespace-pre-line`,c),t[2]=c,t[3]=l);let u;t[4]!==l||t[5]!==n?(u=(0,O.jsx)(`p`,{className:l,children:n}),t[4]=l,t[5]=n,t[6]=u):u=t[6];let d;t[7]!==s||t[8]!==r?(d=s&&(0,O.jsx)(`button`,{type:`button`,"aria-expanded":r,onClick:()=>a(!r),className:`-mb-2 inline-flex h-11 items-center text-sm text-cyan-text hover:underline`,children:r?`Weniger zeigen`:`Ganze Zusammenfassung zeigen`}),t[7]=s,t[8]=r,t[9]=d):d=t[9];let f;return t[10]!==u||t[11]!==d?(f=(0,O.jsxs)(`div`,{className:`flex flex-col items-start`,children:[u,d]}),t[10]=u,t[11]=d,t[12]=f):f=t[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)(h,{"aria-hidden":!0,className:`size-4 transition-transform group-open:rotate-90`}),t[6]=r):r=t[6];let s=i.length===0?`Was Ubuntu zurückhält (${e.length})`: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-text 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-xl bg-black/30 ring-1 ring-white/[0.07] ring-inset 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)(y,{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)(y,{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)(70),{id:n,name:r,details:i,hatUpdate:a,neuLautStart:o,fest:s,gesperrt:c,onStart:l,onFreigeben:u}=e,d=i.data,f=i.isPending,p=i.isError?i.error.message:d?.error,ee;t[0]!==d||t[1]!==n?(ee=d?S(n,d):null,t[0]=d,t[1]=n,t[2]=ee):ee=t[2];let te=ee,m=a?te?.neu??o??null:null,h=d?.summary,g;t[3]===h?g=t[4]:(g=N(h),t[3]=h,t[4]=g);let y=g,b=te&&te.laeuft!==`–`?te.laeuft:p?`unbekannt`:`–`,x;t[5]!==f||t[6]!==b?(x=f?(0,O.jsx)(ie,{}):(0,O.jsx)(O.Fragment,{children:b}),t[5]=f,t[6]=b,t[7]=x):x=t[7];let C=x,re;t[8]!==p||t[9]!==f||t[10]!==m?(re=f?(0,O.jsx)(ie,{breit:`w-20`}):m?(0,O.jsx)(`span`,{className:`text-cyan-text`,children:m}):p?(0,O.jsx)(`span`,{className:`text-bernstein`,children:`nicht geprüft`}):(0,O.jsx)(`span`,{className:`text-text-3`,children:`–`}),t[8]=p,t[9]=f,t[10]=m,t[11]=re):re=t[11];let T=re,D;if(f){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],D=e}else if(p&&!a){let e;t[13]===p?e=t[14]:(e=w(p),t[13]=p,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),D=n}else if(!a)D=`Aktuell.`;else{let e;t[17]===p?e=t[18]:(e=p&&(0,O.jsx)(`span`,{className:`text-bernstein`,children:w(p)}),t[17]=p,t[18]=e);let r;t[19]===d?r=t[20]:(r=d&&(0,O.jsx)(se,{d}),t[19]=d,t[20]=r);let i;t[21]!==d||t[22]!==n||t[23]!==y?(i=n===`os`?(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(`span`,{children:d?.count?`${d.count} ${d.count===1?`Paket`:`Pakete`} aus Ubuntu.`:`Neue Pakete aus Ubuntu.`}),d&&(0,O.jsx)(oe,{d})]}):y?(0,O.jsx)(ae,{text:y}):null,t[21]=d,t[22]=n,t[23]=y,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],D=a}let k=f||void 0,A;t[29]===n?A=t[30]:(A=v(n),t[29]=n,t[30]=A);let j;t[31]===A?j=t[32]:(j=(0,O.jsx)(_,{bild:A,groesse:`sm`}),t[31]=A,t[32]=j);let M;t[33]===r?M=t[34]:(M=(0,O.jsx)(`span`,{className:`min-w-0`,children:r}),t[33]=r,t[34]=M);let P;t[35]!==j||t[36]!==M?(P=(0,O.jsxs)(`span`,{role:`rowheader`,className:`flex min-w-0 items-center gap-3 text-[15px] font-semibold`,children:[j,M]}),t[35]=j,t[36]=M,t[37]=P):P=t[37];let F;t[38]!==p||t[39]!==f||t[40]!==m||t[41]!==T?(F=!f&&(m||p)&&(0,O.jsxs)(O.Fragment,{children:[` `,m?`→`:`·`,` `,T]}),t[38]=p,t[39]=f,t[40]=m,t[41]=T,t[42]=F):F=t[42];let I;t[43]!==C||t[44]!==F?(I=(0,O.jsxs)(`span`,{role:`cell`,className:`ziffern -mt-1 text-sm text-text-2 md:hidden`,children:[C,F]}),t[43]=C,t[44]=F,t[45]=I):I=t[45];let L;t[46]===C?L=t[47]:(L=(0,O.jsx)(`span`,{role:`cell`,className:`ziffern hidden text-sm text-text-2 md:block`,children:C}),t[46]=C,t[47]=L);let R;t[48]===T?R=t[49]:(R=(0,O.jsx)(`span`,{role:`cell`,className:`ziffern hidden text-sm md:block`,children:T}),t[48]=T,t[49]=R);let z;t[50]!==s||t[51]!==r?(z=s&&(0,O.jsxs)(`span`,{className:`mb-1.5 block text-bernstein`,children:[`Festgehalten seit `,s.seit,` auf `,s.version,`: `,s.grund,`. Der Sonntags-Lauf überspringt `,r,`.`]}),t[50]=s,t[51]=r,t[52]=z):z=t[52];let B;t[53]!==z||t[54]!==D?(B=(0,O.jsxs)(`div`,{role:`cell`,className:`text-sm leading-relaxed text-text-2`,children:[z,D]}),t[53]=z,t[54]=D,t[55]=B):B=t[55];let V;t[56]!==s||t[57]!==c||t[58]!==a||t[59]!==u||t[60]!==l?(V=(s||a)&&(0,O.jsxs)(`span`,{role:`cell`,className:`flex flex-wrap gap-2 md:flex-col md:items-end`,children:[s&&(0,O.jsx)(ne,{variant:`outline`,size:`sm`,onClick:u,children:`Freigeben`}),a&&(0,O.jsx)(ne,{variant:`outline`,size:`sm`,onClick:l,disabled:c,children:`Aktualisieren`})]}),t[56]=s,t[57]=c,t[58]=a,t[59]=u,t[60]=l,t[61]=V):V=t[61];let ce;return t[62]!==P||t[63]!==I||t[64]!==L||t[65]!==R||t[66]!==B||t[67]!==V||t[68]!==k?(ce=(0,O.jsxs)(`div`,{role:`row`,"aria-busy":k,className:`grid grid-cols-1 gap-x-4 gap-y-2 border-t border-white/[0.06] py-3.5 md:grid-cols-[210px_100px_170px_minmax(0,1fr)_auto] md:items-start`,children:[P,I,L,R,B,V]}),t[62]=P,t[63]=I,t[64]=L,t[65]=R,t[66]=B,t[67]=V,t[68]=k,t[69]=ce):ce=t[69],ce}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=u(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)(y,{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(R)}),t[13]=n.stufe,t[14]=n.zeilen,t[15]=l):l=t[15];let d;return t[16]!==c||t[17]!==l?(d=(0,O.jsxs)(`li`,{className:`flex flex-col gap-2 border-t border-white/[0.06] py-3`,children:[c,l]}),t[16]=c,t[17]=l,t[18]=d):d=t[18],d}function R(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:i(`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 z(e){return e.mtime?u(new Date(e.mtime*1e3).toISOString()):e.snapshot}function B(){let e=(0,E.c)(126),t=ee(),n=te(!0).data?.update_fenster,r=d(),i=l(),a=s(),u=m(),h=f(),_=o(),v=p(),[y,S]=(0,D.useState)(null),C;e[0]===t.data?.updates.bausteine?C=e[1]:(C=new Map((t.data?.updates.bausteine??[]).map(fe)),e[0]=t.data?.updates.bausteine,e[1]=C);let w=C,ie=new Map((t.data?.updates.festgehalten??[]).map(de)),ae;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(ae=k.map(ue),e[2]=ae):ae=e[2];let oe=c(ae),j;e[3]!==oe||e[4]!==w?(j=(e,t)=>re(e.id,oe[t].data)??w.has(e.id),e[3]=oe,e[4]=w,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(le)||(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(ce),e[11]=N,e[12]=L);let R=L,B=I||u.isPending,H=a.data?.available??!1,U;if(t.isPending){let t;e[13]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,O.jsx)(g,{text:`Updates werden gelesen …`}),e[13]=t):t=e[13],U=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)(g,{fehler:!0,text:n}),e[14]=n,e[15]=r),U=r}else{let t;e[16]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,O.jsxs)(`div`,{role:`row`,className:`etikett hidden grid-cols-[210px_100px_170px_minmax(0,1fr)_auto] gap-x-4 pb-2 text-[10.5px] tracking-[0.14em] 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],U=(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:w.get(e.id),fest:ie.get(e.id),gesperrt:B,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 W;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],W=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),W=t}else if(i.data?.laeufe.length){let t;e[21]===i.data.laeufe?t=e[22]:(t=i.data.laeufe.map(V),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),W=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],W=t}let G;if(a.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],G=t}else if(a.isError&&!a.data){let t;e[26]===a.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: `,a.error.message]}),e[26]=a.error.message,e[27]=t),G=t}else if(a.data?.backups.length){let t;if(e[29]!==a.data.backups||e[30]!==v.isPending||e[31]!==H){let n;e[33]!==v.isPending||e[34]!==H?(n=e=>(0,O.jsxs)(`li`,{className:`flex items-center justify-between gap-3 border-t border-white/[0.06] py-2.5`,children:[(0,O.jsx)(`span`,{className:`ziffern text-sm`,children:z(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)(ne,{variant:`ghost`,size:`sm`,disabled:!H||v.isPending,onClick:()=>S({art:`zurueck`,datei:e.file,zeit:z(e)}),children:`Zurückspielen`})]})]},e.file),e[33]=v.isPending,e[34]=H,e[35]=n):n=e[35],t=a.data.backups.slice(0,5).map(n),e[29]=a.data.backups,e[30]=v.isPending,e[31]=H,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),G=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],G=t}let pe=x,K;e[38]===u?K=e[39]:(K=()=>u.mutate(`pruefen`),e[38]=u,e[39]=K);let me=u.isPending||R,he=R?`Sucht …`:`Nach Neuem suchen`,q;e[40]!==he||e[41]!==K||e[42]!==me?(q=(0,O.jsx)(ne,{variant:`outline`,onClick:K,disabled:me,children:he}),e[40]=he,e[41]=K,e[42]=me,e[43]=q):q=e[43];let ge=ne,J;e[44]===Symbol.for(`react.memo_cache_sentinel`)?(J=()=>S({art:`alle`}),e[44]=J):J=e[44];let _e=B||!M.some(Boolean),Y;e[45]!==ge||e[46]!==J||e[47]!==_e?(Y=(0,O.jsx)(ge,{onClick:J,disabled:_e,children:`Alles jetzt aktualisieren`}),e[45]=ge,e[46]=J,e[47]=_e,e[48]=Y):Y=e[48];let X;e[49]!==q||e[50]!==Y?(X=(0,O.jsxs)(`div`,{className:`flex flex-wrap gap-2.5`,children:[q,Y]}),e[49]=q,e[50]=Y,e[51]=X):X=e[51];let ve=n?`Jeden ${n.tag_name} um ${n.uhrzeit} automatisch.`:`Einmal pro Woche automatisch.`,Z;e[52]===ve?Z=e[53]:(Z=(0,O.jsxs)(`p`,{className:`-mt-2 text-[15px] text-text-2`,children:[ve,` Vorher wird gesichert, danach geprüft.`]}),e[52]=ve,e[53]=Z);let Q;e[54]===I?Q=e[55]:(Q=I&&(0,O.jsx)(`p`,{role:`status`,className:`text-[15px] text-cyan-text`,children:`Gerade läuft ein Update. Weitere lassen sich erst starten, wenn es fertig ist.`}),e[54]=I,e[55]=Q);let ye;e[56]===Symbol.for(`react.memo_cache_sentinel`)?(ye=(0,O.jsx)(T,{}),e[56]=ye):ye=e[56];let be;e[57]!==pe||e[58]!==X||e[59]!==Z||e[60]!==Q||e[61]!==U?(be=(0,O.jsxs)(pe,{titel:`Updates`,rechts:X,children:[Z,Q,U,ye]}),e[57]=pe,e[58]=X,e[59]=Z,e[60]=Q,e[61]=U,e[62]=be):be=e[62];let xe;e[63]===W?xe=e[64]:(xe=(0,O.jsx)(x,{titel:`Verlauf`,children:W}),e[63]=W,e[64]=xe);let Se;e[65]===_?Se=e[66]:(Se=()=>_.mutate(void 0),e[65]=_,e[66]=Se);let Ce=_.isPending?`Sichert …`:`Jetzt sichern`,we;e[67]!==_.isPending||e[68]!==Se||e[69]!==Ce?(we=(0,O.jsx)(ne,{variant:`outline`,size:`sm`,onClick:Se,disabled:_.isPending,children:Ce}),e[67]=_.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,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]=Te):Te=e[71];let Ee;e[72]!==a.data||e[73]!==H?(Ee=a.data&&!H&&(0,O.jsx)(`p`,{className:`text-sm text-text-3`,children:`Zurückspielen geht nur auf der Box selbst.`}),e[72]=a.data,e[73]=H,e[74]=Ee):Ee=e[74];let De;e[75]!==G||e[76]!==we||e[77]!==Ee?(De=(0,O.jsxs)(x,{titel:`Sicherungen`,rechts:we,children:[Te,Ee,G]}),e[75]=G,e[76]=we,e[77]=Ee,e[78]=De):De=e[78];let Oe;e[79]!==xe||e[80]!==De?(Oe=(0,O.jsxs)(`div`,{className:`grid gap-5 md:gap-6 lg:grid-cols-[minmax(0,1.4fr)_minmax(0,1fr)]`,children:[xe,De]}),e[79]=xe,e[80]=De,e[81]=Oe):Oe=e[81];let ke=y?.art===`alle`,Ae;e[82]===Symbol.for(`react.memo_cache_sentinel`)?(Ae=()=>S(null),e[82]=Ae):Ae=e[82];let je;e[83]!==y?.art||e[84]!==u?(je=()=>{y?.art===`alle`&&u.mutate(`alle`),S(null)},e[83]=y?.art,e[84]=u,e[85]=je):je=e[85];let Me;e[86]!==B||e[87]!==ke||e[88]!==je?(Me=(0,O.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:B,onNein:Ae,onJa:je}),e[86]=B,e[87]=ke,e[88]=je,e[89]=Me):Me=e[89];let Ne=y?.art===`einzeln`,Pe=y?.art===`einzeln`?`${y.name} aktualisieren?`:``,Fe=y?.art===`einzeln`?A[y.id]??``:``,Ie;e[90]===Symbol.for(`react.memo_cache_sentinel`)?(Ie=()=>S(null),e[90]=Ie):Ie=e[90];let Le;e[91]!==y||e[92]!==u?(Le=()=>{y?.art===`einzeln`&&u.mutate(y.id),S(null)},e[91]=y,e[92]=u,e[93]=Le):Le=e[93];let Re;e[94]!==B||e[95]!==Ne||e[96]!==Pe||e[97]!==Fe||e[98]!==Le?(Re=(0,O.jsx)(b,{offen:Ne,titel:Pe,text:Fe,knopf:`Aktualisieren`,gesperrt:B,onNein:Ie,onJa:Le}),e[94]=B,e[95]=Ne,e[96]=Pe,e[97]=Fe,e[98]=Le,e[99]=Re):Re=e[99];let ze=y?.art===`freigeben`,Be=y?.art===`freigeben`?`${y.name} freigeben?`:``,Ve=y?.art===`freigeben`?`Festgehalten wurde ${y.name}, weil: ${y.grund}. Nach dem Freigeben versucht der nächste Sonntags-Lauf das Update wieder.`:``,He;e[100]===Symbol.for(`react.memo_cache_sentinel`)?(He=()=>S(null),e[100]=He):He=e[100];let Ue;e[101]!==y||e[102]!==h?(Ue=()=>{y?.art===`freigeben`&&h.mutate(y.id),S(null)},e[101]=y,e[102]=h,e[103]=Ue):Ue=e[103];let We;e[104]!==h.isPending||e[105]!==ze||e[106]!==Be||e[107]!==Ve||e[108]!==Ue?(We=(0,O.jsx)(b,{offen:ze,titel:Be,text:Ve,knopf:`Freigeben`,gesperrt:h.isPending,onNein:He,onJa:Ue}),e[104]=h.isPending,e[105]=ze,e[106]=Be,e[107]=Ve,e[108]=Ue,e[109]=We):We=e[109];let Ge=y?.art===`zurueck`,Ke=`Die Einstellungen von Hermes und llama-swap werden auf den Stand von ${y?.art===`zurueck`?y.zeit:``} gesetzt. Vorher wird der jetzige Stand gesichert. Die Dienste starten danach neu.`,qe;e[110]===Symbol.for(`react.memo_cache_sentinel`)?(qe=()=>S(null),e[110]=qe):qe=e[110];let Je;e[111]!==y||e[112]!==v?(Je=()=>{y?.art===`zurueck`&&v.mutate(y.datei),S(null)},e[111]=y,e[112]=v,e[113]=Je):Je=e[113];let $;e[114]!==Ge||e[115]!==Ke||e[116]!==Je||e[117]!==v.isPending?($=(0,O.jsx)(b,{offen:Ge,gefahr:!0,titel:`Sicherung zurückspielen?`,text:Ke,knopf:`Zurückspielen`,gesperrt:v.isPending,onNein:qe,onJa:Je}),e[114]=Ge,e[115]=Ke,e[116]=Je,e[117]=v.isPending,e[118]=$):$=e[118];let Ye;return e[119]!==be||e[120]!==Oe||e[121]!==Me||e[122]!==Re||e[123]!==We||e[124]!==$?(Ye=(0,O.jsxs)(O.Fragment,{children:[be,Oe,Me,Re,We,$]}),e[119]=be,e[120]=Oe,e[121]=Me,e[122]=Re,e[123]=We,e[124]=$,e[125]=Ye):Ye=e[125],Ye}function V(e){return(0,O.jsx)(L,{lauf:e},e.start)}function ce(e){return C(e)&&a(e)}function le(e){return e.group===`maintenance`&&a(e)}function ue(e){return e.id}function de(e){return[e.baustein,e]}function fe(e){return[e.id,e.neu]}export{B as UpdatesSeite}; \ No newline at end of file diff --git a/frontend/dist/assets/abfragen-DKcWnZ8a.js b/frontend/dist/assets/abfragen-pD_qBEtc.js similarity index 74% rename from frontend/dist/assets/abfragen-DKcWnZ8a.js rename to frontend/dist/assets/abfragen-pD_qBEtc.js index 8896bb8..26a8591 100644 --- a/frontend/dist/assets/abfragen-DKcWnZ8a.js +++ b/frontend/dist/assets/abfragen-pD_qBEtc.js @@ -1 +1 @@ -import{a as e,c as t,i as n,r}from"./dist-aE7UmubC.js";var i=t(e(),1),a=n(),o=i.createContext(void 0),s=e=>{let t=i.useContext(o);if(e)return e;if(!t)throw Error(`No QueryClient set, use QueryClientProvider to set one`);return t},c=({client:e,children:t})=>(i.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]),(0,a.jsx)(o.Provider,{value:e,children:t})),l={setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e),setInterval:(e,t)=>setInterval(e,t),clearInterval:e=>clearInterval(e)},u=new class{#e=l;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 d(e){setTimeout(e,0)}var f=typeof window>`u`||`Deno`in globalThis;function p(){}function m(e,t){return typeof e==`function`?e(t):e}function h(e){return typeof e==`number`&&e>=0&&e!==1/0}function g(e,t){return Math.max(e+(t||0)-Date.now(),0)}function _(e,t){return typeof e==`function`?e(t):e}function v(e,t){let{type:n=`all`,exact:r,fetchStatus:i,predicate:a,queryKey:o,stale:s}=e;if(o){if(r){if(t.queryHash!==b(o,t.options))return!1}else if(!S(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 y(e,t){let{exact:n,status:r,predicate:i,mutationKey:a}=e;if(a){if(!t.options.mutationKey)return!1;if(n){if(x(t.options.mutationKey)!==x(a))return!1}else if(!S(t.options.mutationKey,a))return!1}return!(r&&t.state.status!==r||i&&!i(t))}function b(e,t){return(t?.queryKeyHashFn||x)(e)}function x(e){return JSON.stringify(e,(e,t)=>T(t)?Object.keys(t).sort().reduce((e,n)=>(e[n]=t[n],e),{}):t)}function S(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=te(e)&&te(t);if(!r&&!(T(e)&&T(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{u.setTimeout(t,e)})}function ie(e,t,n){return typeof n.structuralSharing==`function`?n.structuralSharing(e,t):n.structuralSharing===!1?t:C(e,t)}function ae(e,t,n=0){let r=[...e,t];return n&&r.length>n?r.slice(1):r}function oe(e,t,n=0){let r=[t,...e];return n&&r.length>n?r.slice(0,-1):r}var se=Symbol();function ce(e,t){return!e.queryFn&&t?.initialPromise?()=>t.initialPromise:!e.queryFn||e.queryFn===se?()=>Promise.reject(Error(`Missing queryFn: '${e.queryHash}'`)):e.queryFn}function le(e,t){return typeof e==`function`?e(...t):!!e}function ue(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 de=()=>f,fe=()=>de(),E=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(){}},D=new class extends E{#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`}},pe=d;function me(){let e=[],t=0,n=e=>{e()},r=e=>{e()},i=pe,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 O=me(),k=new class extends E{#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 he(e){return Math.min(1e3*2**e,3e4)}function ge(e){return(e??`online`)!==`online`||k.isOnline()}var A=class extends Error{constructor(e){super(`CancelledError`),this.revert=e?.revert,this.silent=e?.silent}};function _e(e){let t=!1,n=0,r,i=`pending`,a,o,s=new Promise((e,t)=>{a=e,o=t});s.catch(p);let c=()=>i!==`pending`,l=t=>{if(!c()){let n=new A(t);g(n),e.onCancel?.(n)}},u=()=>{t=!0},d=()=>{t=!1},f=()=>D.isFocused()&&(e.networkMode===`always`||k.isOnline())&&e.canRun(),m=()=>ge(e.networkMode)&&e.canRun(),h=e=>{c()||(r?.(),i=`resolved`,a(e))},g=e=>{c()||(r?.(),i=`rejected`,o(e))},_=()=>new Promise(t=>{r=e=>{(c()||f())&&t(e)},e.onPause?.()}).then(()=>{r=void 0,c()||e.onContinue?.()}),v=()=>{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(h).catch(r=>{if(c())return;let i=e.retry??(fe()?0:3),a=e.retryDelay??he,o=typeof a==`function`?a(n,r):a,s=i===!0||typeof i==`number`&&nf()?void 0:_()).then(()=>{t?g(r):v()})})};return{promise:s,status:()=>i,cancel:l,continue:()=>(r?.(),s),cancelRetry:u,continueRetry:d,canStart:m,start:()=>(m()?v():_().then(v),s)}}var ve=class{#e;destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),h(this.gcTime)&&(this.#e=u.setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(fe()?1/0:3e5))}clearGcTimeout(){this.#e!==void 0&&(u.clearTimeout(this.#e),this.#e=void 0)}};function ye(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=>{ue(e,()=>t.signal,()=>n=!0)},u=ce(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?oe:ae;return{pages:c(e.pages,o,s),pageParams:c(e.pageParams,r,s)}};if(i&&a.length){let e=i===`backward`,t=e?xe:be,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:be(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 be(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 xe(e,{pages:t,pageParams:n}){return t.length>0?e.getPreviousPageParam?.(t[0],t,n[0],n):void 0}var Se=class extends ve{#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=Te(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=Te(this.options);e.data!==void 0&&(this.setState(we(e.data,e.dataUpdatedAt)),this.#t=e)}}optionalRemove(){!this.observers.length&&this.state.fetchStatus===`idle`&&this.#r.remove(this)}setData(e,t){let n=ie(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(p).catch(p):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.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===se||!this.isFetched()}isFetched(){return this.state.dataUpdateCount+this.state.errorUpdateCount>0}isStatic(){return this.getObserversCount()>0&&this.observers.some(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:!g(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=ce(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`?ye(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=_e({initialPromise:t?.initialPromise,fn:a.fetchFn,onCancel:e=>{e instanceof A&&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 A){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,...Ce(t.data,this.options),fetchMeta:e.meta??null};case`success`:let n={...t,...we(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),O.batch(()=>{this.observers.slice().forEach(e=>{e.onQueryUpdate()}),this.#r.notify({query:this,type:`updated`,action:e})})}};function Ce(e,t){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:ge(t.networkMode)?`fetching`:`paused`,...e===void 0&&{error:null,status:`pending`}}}function we(e,t){return{data:e,dataUpdatedAt:t??Date.now(),error:null,isInvalidated:!1,status:`success`}}function Te(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 Ee=class extends E{#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),Oe(this.#t,this.options)?this.#m():this.updateResult(),this.#y())}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return j(this.#t,this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return j(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 _(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&&!w(this.options,t)&&this.#e.getQueryCache().notify({type:`observerOptionsUpdated`,query:this.#t,observer:this});let r=this.hasListeners();r&&ke(this.#t,n,this.options,t)&&this.#m(),this.updateResult(),r&&(this.#t!==n||_(this.options.enabled,this.#t)!==_(t.enabled,this.#t)||_(this.options.staleTime,this.#t)!==_(t.staleTime,this.#t))&&this.#g();let i=this.#_();r&&(this.#t!==n||_(this.options.enabled,this.#t)!==_(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 w(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(p)),t}#h(e){return!fe()&&_(this.options.enabled,this.#t)!==!1&&h(e)}#g(){this.#b();let e=_(this.options.staleTime,this.#t);if(this.#r.isStale||!this.#h(e))return;let t=g(this.#r.dataUpdatedAt,e)+1;this.#u=u.setTimeout(()=>{this.#r.isStale||this.updateResult()},t)}#_(){return _(this.options.refetchInterval,this.#t)??!1}#v(e){this.#x(),this.#f=e,this.#f!==0&&this.#h(this.#f)&&(this.#d=u.setInterval(()=>{(this.options.refetchIntervalInBackground||D.isFocused())&&this.#m()},this.#f))}#y(){this.#g(),this.#v(this.#_())}#b(){this.#u!==void 0&&(u.clearTimeout(this.#u),this.#u=void 0)}#x(){this.#d!==void 0&&(u.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&&Oe(e,t),o=i&&ke(e,n,t,r);(a||o)&&(l={...l,...Ce(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=ie(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=ie(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`,v=m===`pending`,y=m===`error`,b=v&&g,x=d!==void 0;return{status:m,fetchStatus:l.fetchStatus,isPending:v,isSuccess:m===`success`,isError:y,isInitialLoading:b,isLoading:b,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&&!v,isLoadingError:y&&!x,isPaused:l.fetchStatus===`paused`,isPlaceholderData:u,isRefetchError:y&&x,isStale:M(e,t),refetch:this.refetch,isEnabled:_(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),w(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)})})();O.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 De(e,t){return _(t.enabled,e)!==!1&&e.state.data===void 0&&(e.state.status!==`error`||_(t.retryOnMount,e)!==!1)}function Oe(e,t){return De(e,t)||e.state.data!==void 0&&j(e,t,t.refetchOnMount)}function j(e,t,n){if(_(t.enabled,e)!==!1&&_(t.staleTime,e)!==`static`){let r=_(n,e);return r===`always`||r!==!1&&M(e,t)}return!1}function ke(e,t,n,r){return(e!==t||_(r.enabled,e)===!1)&&(!n.suspense||e.state.status!==`error`)&&M(e,n)}function M(e,t){return _(t.enabled,e)!==!1&&e.isStaleByTime(_(t.staleTime,e))}var Ae=class extends ve{#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||je(),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=_e({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),O.batch(()=>{this.#t.forEach(t=>{t.onMutationUpdate(e)}),this.#n.notify({mutation:this,type:`updated`,action:e})})}};function je(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:`idle`,variables:void 0,submittedAt:0}}var Me=class extends E{#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),w(this.options,t)||this.#e.getMutationCache().notify({type:`observerOptionsUpdated`,mutation:this.#n,observer:this}),t?.mutationKey&&this.options.mutationKey&&x(t.mutationKey)!==x(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??je();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){O.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 Ne(e,t){let n=new Set(t);return e.filter(e=>!n.has(e))}var Pe=class extends E{#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,O.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||!w(e,n)});(o||s)&&(o&&(this.#l=t,this.#i=n),this.#t=r,this.hasListeners()&&(o&&(Ne(e,n).forEach(e=>{e.destroy()}),Ne(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=C(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 Ee(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)&&O.batch(()=>{this.listeners.forEach(e=>{e(this.#t)})})}}},Fe=i.createContext(!1),Ie=()=>i.useContext(Fe);Fe.Provider;function Le(){let e=!1;return{clearReset:()=>{e=!1},reset:()=>{e=!0},isReset:()=>e}}var Re=i.createContext(Le()),ze=()=>i.useContext(Re),Be=(e,t,n)=>{let r=n?.state.error&&typeof e.throwOnError==`function`?le(e.throwOnError,[n.state.error,n]):e.throwOnError;(e.suspense||r)&&(t.isReset()||(e.retryOnMount=!1))},Ve=e=>{i.useEffect(()=>{e.clearReset()},[e])},He=({result:e,errorResetBoundary:t,throwOnError:n,query:r,suspense:i})=>e.isError&&!t.isReset()&&!e.isFetching&&r&&(i&&e.data===void 0||le(n,[e.error,r])),Ue=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))}},N=(e,t)=>e?.suspense&&t.isPending,We=(e,t,n)=>t.fetchOptimistic(e).catch(()=>{n.clearReset()});function Ge({queries:e,...t},n){let r=s(n),a=Ie(),o=ze(),c=t.subscribed!==!1,l=i.useMemo(()=>e.map(e=>{let t=r.defaultQueryOptions(e);return t._optimisticResults=a?`isRestoring`:c?`optimistic`:void 0,t}),[e,r,a,c]);l.forEach(e=>{Ue(e);let t=r.getQueryCache().get(e.queryHash);Be(e,o,t)}),Ve(o);let[u]=i.useState(()=>new Pe(r,l,t)),[d,f,m]=u.getOptimisticResult(l,t.combine),h=!a&&c;i.useSyncExternalStore(i.useCallback(e=>h?u.subscribe(O.batchCalls(e)):p,[u,h]),()=>u.getCurrentResult(),()=>u.getCurrentResult()),i.useEffect(()=>{u.setQueries(l,t)},[l,t,u]);let g=d.some((e,t)=>N(l[t],e))?d.flatMap((e,t)=>{let n=l[t];return n&&N(n,e)?We(n,new Ee(r,n),o):[]}):[];if(g.length>0)throw Promise.all(g);let _=d.find((e,t)=>{let n=l[t];return n&&He({result:e,errorResetBoundary:o,throwOnError:n.throwOnError,query:r.getQueryCache().get(n.queryHash),suspense:n.suspense})});if(_)throw _.error;return f(m())}function Ke(e,t,n){let r=Ie(),a=ze(),o=s(n),c=o.defaultQueryOptions(e),l=o.getQueryCache().get(c.queryHash),u=e.subscribed!==!1;c._optimisticResults=r?`isRestoring`:u?`optimistic`:void 0,Ue(c),Be(c,a,l),Ve(a);let[d]=i.useState(()=>new t(o,c)),f=d.getOptimisticResult(c),m=!r&&u;if(i.useSyncExternalStore(i.useCallback(e=>{let t=m?d.subscribe(O.batchCalls(e)):p;return d.updateResult(),t},[d,m]),()=>d.getCurrentResult(),()=>d.getCurrentResult()),i.useEffect(()=>{d.setOptions(c)},[c,d]),N(c,f))throw We(c,d,a);if(He({result:f,errorResetBoundary:a,throwOnError:c.throwOnError,query:l,suspense:c.suspense}))throw f.error;return c.notifyOnChangeProps?f:d.trackResult(f)}function P(e,t){return Ke(e,Ee,t)}function qe(e,t){let n=s(t),[r]=i.useState(()=>new Me(n,e));i.useEffect(()=>{r.setOptions(e)},[r,e]);let a=i.useSyncExternalStore(i.useCallback(e=>r.subscribe(O.batchCalls(e)),[r]),()=>r.getCurrentResult(),()=>r.getCurrentResult()),o=i.useCallback((...e)=>{r.mutate(e[0],e[1]).catch(p)},[r]);if(a.error&&le(r.options.throwOnError,[a.error]))throw a.error;return{...a,mutate:o,mutateAsync:a.mutate}}var F=r(),Je=[`/api/instanz`,`/api/partner`,`/api/health`],Ye=(e,t)=>e===t||e.startsWith(`${t}/`)||e.startsWith(`${t}?`);function Xe(e,t){return!e.startsWith(`/api/`)||Je.some(t=>Ye(e,t))||(Ye(e,`/api/homelab`)?`homelab`:`box`)===t?e:`/api/partner${e.slice(4)}`}var I=null;function Ze(){return I??=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(()=>(I=null,`box`)),I}var L=class extends Error{status;detail;constructor(e,t){super(t),this.status=e,this.detail=t,this.name=`ApiFehler`}};function Qe(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 R(e,t={}){let n=Xe(e,await Ze()),r;try{r=await fetch(n,{...t,headers:{"Content-Type":`application/json`,Accept:`application/json`,...t.headers}})}catch{throw new L(0,`MC2 ist nicht erreichbar. Läuft die Box?`)}let i=await r.text(),a=i?$e(i):null;if(!r.ok)throw new L(r.status,Qe(a,r.status));if(typeof a==`string`)throw new L(r.status,`Die Box antwortet nicht mit Daten.`);return a}function $e(e){try{return JSON.parse(e)}catch{return e}}var z=(e,t)=>R(e,{method:`POST`,body:t===void 0?void 0:JSON.stringify(t)}),et=100,tt=95,nt=210,B=240;function rt(e,t){let n=e*Math.PI/180;return[et+t*Math.cos(n),tt-t*Math.sin(n)]}var V=e=>Math.round(e*100)/100;function it(e,t,n){let r=Math.max(0,Math.min(1,e)),i=Math.max(r,Math.min(1,t)),[a,o]=rt(nt-B*r,n),[s,c]=rt(nt-B*i,n),l=+((i-r)*B>180);return`M ${V(a)} ${V(o)} A ${n} ${n} 0 ${l} 1 ${V(s)} ${V(c)}`}function at(e){return e==null?`var(--text-3)`:e>=85?`var(--rot)`:e>=70?`var(--bernstein)`:`var(--box)`}function ot(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 st(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 H(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 U=e=>e.state===`running`||e.state===`queued`;function ct(e){let t=e.aliases.map(e=>e.toLowerCase());return t.includes(`hermes`)||t.includes(`fast`)?`hirn`:t.includes(`coder`)?`coder`:null}var lt={neu:`Neu`,wartet:`Wartet`,getestet:`Gemessen`,bestanden:`Bestanden`,durchgefallen:`Durchgefallen`,uebernommen:`Übernommen`,verworfen:`Verworfen`};function ut(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 W=[],dt=1,G=new Set,ft=()=>G.forEach(e=>e());function K(e,t){let n=dt++;W=[...W,{id:n,art:e,text:t}].slice(-4),ft(),e!==`fehler`&&window.setTimeout(()=>pt(n),6e3)}function pt(e){W=W.filter(t=>t.id!==e),ft()}var mt=()=>(0,i.useSyncExternalStore)(ht,gt);function ht(e){return G.add(e),()=>{G.delete(e)}}function gt(){return W}var q=2e3,_t=3e4,vt=2e4,J=`verbinde`,yt=null,bt=new Set,xt=()=>bt.forEach(e=>e());function St(e){return bt.add(e),()=>{bt.delete(e)}}var Ct=()=>J===`live`,wt=()=>(0,i.useSyncExternalStore)(St,Dt),Tt=()=>(0,i.useSyncExternalStore)(St,Ot);function Y(e){e!==J&&(J=e,xt())}function Et(){let e=s();(0,i.useEffect)(()=>{let t=null,n,r,i=Date.now(),a=q,o=!1;function s(){o||(window.clearTimeout(n),n=window.setTimeout(l,a),a=Math.min(a*2,_t))}function c(){i=Date.now(),window.clearTimeout(r),r=window.setTimeout(()=>{t?.close(),Y(`getrennt`),s()},vt)}function l(){window.clearTimeout(n),window.clearTimeout(r),t?.close();let i=new EventSource(`/api/stream`);t=i,i.onopen=()=>{a=q,Y(`live`),c(),e.invalidateQueries()},i.onerror=()=>{Y(`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{yt=JSON.parse(e.data),xt()}catch{}})}let u=()=>{o||document.visibilityState!==`visible`||(t?.readyState===EventSource.CLOSED||Date.now()-i>5e3)&&(a=q,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(),Y(`getrennt`)}},[e])}function Dt(){return J}function Ot(){return yt}var X=`Europe/Berlin`,kt=new Intl.DateTimeFormat(`de-DE`,{hour:`2-digit`,minute:`2-digit`,timeZone:X}),At=new Intl.DateTimeFormat(`de-DE`,{weekday:`short`,timeZone:X}),jt=new Intl.DateTimeFormat(`de-DE`,{day:`2-digit`,month:`2-digit`,timeZone:X}),Mt=new Intl.DateTimeFormat(`en-CA`,{timeZone:X});function Z(e){return Mt.format(e)}function Nt(e,t=new Date){let n=new Date(e);if(Number.isNaN(n.getTime()))return`–`;let r=Z(t),i=Z(new Date(t.getTime()-864e5)),a=Z(new Date(t.getTime()+864e5)),o=Z(n),s=kt.format(n);return o===r?`HEUTE ${s}`:o===i?`GESTERN ${s}`:o===a?`MORGEN ${s}`:Math.abs(n.getTime()-t.getTime())<5616e5?`${At.format(n).replace(`.`,``).toUpperCase()} ${s}`:`${jt.format(n)} ${s}`}function Pt(e,t=new Date){let n=new Date(e*1e3);return Z(n)===Z(t)?`seit heute ${kt.format(n)}`:`seit ${jt.format(n)}, ${kt.format(n)}`}function Ft(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 It(e){return e==null||e<0?null:[Math.floor(e/86400),Math.floor(e%86400/3600)]}var Lt=e=>e==null?null:e/1024**3;function Rt(e,t=0){let n=Lt(e);return n==null?`–`:n>=1e3?`${(n/1024).toFixed(1).replace(`.`,`,`)} TB`:`${n.toFixed(t).replace(`.`,`,`)} GB`}var zt=e=>e.toLocaleString(`de-DE`),Q=e=>()=>Ct()?e*5:e;function Bt(e,t){let n=e.getQueryData([`jobs`])?.jobs??[],r=t.filter(e=>!U(e)&&n.some(t=>t.id===e.id&&U(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 Vt=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={queryKey:[`start`],queryFn:Zn,refetchInterval:Qn},e[0]=t):t=e[0],P(t)},Ht=()=>{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:$n,refetchInterval:Q(3e4)},e[1]=n):n=e[1],P(n)},Ut=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={queryKey:[`nutzung`],queryFn:er,refetchInterval:6e5},e[0]=t):t=e[0],P(t)},Wt=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={queryKey:[`radar`],queryFn:tr,retry:!1,refetchInterval:3e5},e[0]=t):t=e[0],P(t)},Gt=()=>{let e=(0,F.c)(3),t=s(),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 R(`/api/jobs`);return Bt(t,e.jobs),e},refetchInterval:nr},e[1]=t,e[2]=r),P(r)},Kt=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={queryKey:[`sicherungen`],queryFn:rr},e[0]=t):t=e[0],P(t)},qt=e=>{let t=(0,F.c)(4),n;t[0]===e?n=t[1]:(n=e.map(ir),t[0]=e,t[1]=n);let r;return t[2]===n?r=t[3]:(r={queries:n},t[2]=n,t[3]=r),Ge(r)},Jt=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={queryKey:[`updates-verlauf`],queryFn:ar},e[0]=t):t=e[0],P(t)},Yt=e=>{let t=(0,F.c)(7),n,r;t[0]===e?(n=t[1],r=t[2]):(n=[`protokoll`,e],r=()=>R(`/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],P(a)},Xt=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={queryKey:[`ablaeufe`],queryFn:or,refetchInterval:6e4},e[0]=t):t=e[0],P(t)},Zt=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={queryKey:[`dienste`],queryFn:sr,refetchInterval:1e4},e[0]=t):t=e[0],P(t)};function $(e,t){let n=(0,F.c)(6),r=s(),i;n[0]!==t||n[1]!==r?(i=(e,n)=>{let i=e;i&&i.ok===!1?K(`fehler`,t.fehler?.(n,i)??H(i)):t.erfolg(n,e)&&K(`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:Qt},n[3]=e,n[4]=i,n[5]=a):a=n[5],qe(a)}function Qt(e){return K(`fehler`,e.message)}var $t=e=>{let t=(0,F.c)(4),n=e===void 0?`/api/hinweise`:e,r;t[0]===n?r=t[1]:(r=e=>{let{hinweis:t,aktion:r}=e;return z(`${n}/${encodeURIComponent(t)}/aktion/${r}`)},t[0]=n,t[1]=r);let i;return t[2]===n?i=t[3]:(i={erfolg:cr,neuLaden:n===`/api/hinweise`?[`start`]:[`homelab-hinweise`]},t[2]=n,t[3]=i),$(r,i)},en=new Set([`gesehen`,`stumm`,`laut`]),tn={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`},nn=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:ur,neuLaden:[`jobs`,`start`]},e[0]=t):t=e[0],$(lr,t)},rn=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:fr,fehler:pr,neuLaden:[`jobs`]},e[0]=t):t=e[0],$(dr,t)},an=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:hr,neuLaden:[`jobs`]},e[0]=t):t=e[0],$(mr,t)},on=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:_r,neuLaden:[`jobs`,`models`]},e[0]=t):t=e[0],$(gr,t)},sn=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={queryKey:[`aufraeumen`],queryFn:vr,staleTime:6e4},e[0]=t):t=e[0],P(t)},cn=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:br,neuLaden:[`aufraeumen`,`models`,`start`]},e[0]=t):t=e[0],$(yr,t)},ln=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:Sr,neuLaden:[`start`]},e[0]=t):t=e[0],$(xr,t)},un=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:wr,fehler:Tr,neuLaden:[`sicherungen`,`start`]},e[0]=t):t=e[0],$(Cr,t)},dn=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:Dr,neuLaden:[`sicherungen`]},e[0]=t):t=e[0],$(Er,t)},fn=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:kr,neuLaden:[`models`,`start`]},e[0]=t):t=e[0],$(Or,t)},pn=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:jr,neuLaden:[`radar`,`models`,`start`]},e[0]=t):t=e[0],$(Ar,t)},mn=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:Nr,neuLaden:[`radar`,`jobs`]},e[0]=t):t=e[0],$(Mr,t)},hn=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:Fr,neuLaden:[`jobs`]},e[0]=t):t=e[0],$(Pr,t)},gn=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={queryKey:[`instanz`],queryFn:Ir,staleTime:1/0},e[0]=t):t=e[0],P(t)},_n=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={queryKey:[`partner`],queryFn:Lr,refetchInterval:3e4},e[0]=t):t=e[0],P(t)},vn=()=>{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:Rr,refetchInterval:Q(3e4)},e[1]=n):n=e[1],P(n)},yn=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:zr,enabled:e,refetchInterval:3e4},t[1]=e,t[2]=r),P(r)},bn=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:Br,enabled:e,refetchInterval:Hr},t[1]=e,t[2]=r),P(r)},xn=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:Wr,neuLaden:[`homelab`,`homelab-laeufe`,`ziele-box`,`jobs`,`start`]},e[0]=t):t=e[0],$(Ur,t)},Sn=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=Q(6e4),t[1]=r):r=t[1];let i;return t[2]===e?i=t[3]:(i={queryKey:n,queryFn:Gr,enabled:e,refetchInterval:r},t[2]=e,t[3]=i),P(i)},Cn=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:Kr,enabled:e,retry:!1},t[1]=e,t[2]=r),P(r)},wn=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:Jr,neuLaden:[`einstellungen`,`start`]},e[0]=t):t=e[0],$(qr,t)},Tn=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:Xr,neuLaden:[`einstellungen`,`start`,`radar`]},e[0]=t):t=e[0],$(Yr,t)},En=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:Qr,neuLaden:[]},e[0]=t):t=e[0],$(Zr,t)},Dn=(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:$r,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:ei,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],Ge(c)},On=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={queryKey:[`altreste`],queryFn:ti,staleTime:6e4},e[0]=t):t=e[0],P(t)},kn=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:ri,neuLaden:[`altreste`,`start`]},e[0]=t):t=e[0],$(ni,t)},An={"1h":6e4,"24h":3e5,"7d":9e5},jn=(e,t)=>{let n=(0,F.c)(8),r=t===void 0||t,i,a;n[0]===e?(i=n[1],a=n[2]):(i=[`messwerte`,`box`,e],a=()=>R(`/api/messwerte?zeitraum=${e}`),n[0]=e,n[1]=i,n[2]=a);let o=An[e],s;return n[3]!==r||n[4]!==i||n[5]!==a||n[6]!==o?(s={queryKey:i,queryFn:a,enabled:r,refetchInterval:o,placeholderData:ii,retry:!1},n[3]=r,n[4]=i,n[5]=a,n[6]=o,n[7]=s):s=n[7],P(s)},Mn=(e,t)=>{let n=(0,F.c)(8),r,i;n[0]===e?(r=n[1],i=n[2]):(r=[`messwerte`,`homelab`,e],i=()=>R(`/api/homelab/messwerte?zeitraum=${e}`),n[0]=e,n[1]=r,n[2]=i);let a=An[e],o;return n[3]!==t||n[4]!==r||n[5]!==i||n[6]!==a?(o={queryKey:r,queryFn:i,enabled:t,refetchInterval:a,placeholderData:ai,retry:!1},n[3]=t,n[4]=r,n[5]=i,n[6]=a,n[7]=o):o=n[7],P(o)},Nn=e=>{let t=(0,F.c)(3),n;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=[`homelab-sammelplan`],t[0]=n):n=t[0];let r;return t[1]===e?r=t[2]:(r={queryKey:n,queryFn:oi,enabled:e,retry:!1},t[1]=e,t[2]=r),P(r)},Pn=e=>{let t=(0,F.c)(3),n;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=[`homelab-sammellauf`],t[0]=n):n=t[0];let r;return t[1]===e?r=t[2]:(r={queryKey:n,queryFn:si,enabled:e,refetchInterval:ci,retry:!1},t[1]=e,t[2]=r),P(r)},Fn=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:ui,neuLaden:[`homelab-sammellauf`,`homelab-laeufe`,`homelab`]},e[0]=t):t=e[0],$(li,t)},In=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:fi,neuLaden:[`homelab-sammellauf`]},e[0]=t):t=e[0],$(di,t)},Ln=(e,t,n)=>{let r=(0,F.c)(9),i=n===void 0?null:n,a,o;r[0]!==t||r[1]!==i?(a=[`homelab-protokoll`,t,i],o=()=>R(`/api/homelab/protokoll?grenze=300&berichte=${+!!t}${i?`&ziel=${encodeURIComponent(i)}`:``}`),r[0]=t,r[1]=i,r[2]=a,r[3]=o):(a=r[2],o=r[3]);let s;r[4]===Symbol.for(`react.memo_cache_sentinel`)?(s=Q(3e4),r[4]=s):s=r[4];let c;return r[5]!==e||r[6]!==a||r[7]!==o?(c={queryKey:a,queryFn:o,enabled:e,refetchInterval:s,retry:!1},r[5]=e,r[6]=a,r[7]=o,r[8]=c):c=r[8],P(c)},Rn=e=>{let t=(0,F.c)(4),n;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=[`homelab-speicher`],t[0]=n):n=t[0];let r;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(r=Q(6e4),t[1]=r):r=t[1];let i;return t[2]===e?i=t[3]:(i={queryKey:n,queryFn:pi,enabled:e,refetchInterval:r,retry:!1},t[2]=e,t[3]=i),P(i)},zn=(e,t,n)=>{let r=(0,F.c)(8),i,a;r[0]!==t||r[1]!==e?(i=[`homelab-neuerungen`,e,t],a=()=>R(`/api/homelab/ziele/${e}/neuerungen?baustein=${encodeURIComponent(t)}`),r[0]=t,r[1]=e,r[2]=i,r[3]=a):(i=r[2],a=r[3]);let o;return r[4]!==n||r[5]!==i||r[6]!==a?(o={queryKey:i,queryFn:a,enabled:n,staleTime:6e5,retry:!1},r[4]=n,r[5]=i,r[6]=a,r[7]=o):o=r[7],P(o)},Bn=e=>{let t=(0,F.c)(4),n;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=[`homelab-neu`],t[0]=n):n=t[0];let r;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(r=Q(6e4),t[1]=r):r=t[1];let i;return t[2]===e?i=t[3]:(i={queryKey:n,queryFn:mi,enabled:e,refetchInterval:r,retry:!1},t[2]=e,t[3]=i),P(i)},Vn=e=>{let t=(0,F.c)(4),n;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=[`homelab-docker`],t[0]=n):n=t[0];let r;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(r=Q(6e4),t[1]=r):r=t[1];let i;return t[2]===e?i=t[3]:(i={queryKey:n,queryFn:hi,enabled:e,refetchInterval:r,retry:!1},t[2]=e,t[3]=i),P(i)},Hn=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:_i,neuLaden:[`homelab-neu`,`homelab`]},e[0]=t):t=e[0],$(gi,t)},Un=e=>{let t=(0,F.c)(4),n;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=[`homelab-zertifikate`],t[0]=n):n=t[0];let r;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(r=Q(3e5),t[1]=r):r=t[1];let i;return t[2]===e?i=t[3]:(i={queryKey:n,queryFn:vi,enabled:e,refetchInterval:r,retry:!1},t[2]=e,t[3]=i),P(i)},Wn=e=>{let t=(0,F.c)(3),n;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=[`homelab`,`snapshots`],t[0]=n):n=t[0];let r;return t[1]===e?r=t[2]:(r={queryKey:n,queryFn:yi,enabled:e,refetchInterval:xi,retry:!1},t[1]=e,t[2]=r),P(r)},Gn=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:Ci,neuLaden:[`homelab-speicher`]},e[0]=t):t=e[0],$(Si,t)},Kn=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:Ti,neuLaden:[`homelab`,`homelab-laeufe`]},e[0]=t):t=e[0],$(wi,t)},qn=e=>{let t=(0,F.c)(3),n;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=[`homelab-einstellungen`],t[0]=n):n=t[0];let r;return t[1]===e?r=t[2]:(r={queryKey:n,queryFn:Ei,enabled:e,retry:!1},t[1]=e,t[2]=r),P(r)},Jn=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:Oi,neuLaden:[`homelab-einstellungen`,`homelab`]},e[0]=t):t=e[0],$(Di,t)},Yn=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:Ai,neuLaden:[`homelab-einstellungen`,`homelab`]},e[0]=t):t=e[0],$(ki,t)},Xn=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:Mi,neuLaden:[`homelab-einstellungen`,`homelab`]},e[0]=t):t=e[0],$(ji,t)};function Zn(){return R(`/api/start`)}function Qn(e){return e.state.data&&!e.state.data.updates.gelesen?4e3:Q(2e4)()}function $n(){return R(`/api/models`)}function er(){return R(`/api/modelle/nutzung`)}function tr(){return R(`/api/radar`)}function nr(e){return e.state.data?.jobs.some(U)?2e3:Q(3e4)()}function rr(){return R(`/api/zeitmaschine`)}function ir(e){return{queryKey:[`update-details`,e],queryFn:()=>R(`/api/maintenance/update-details?kind=${encodeURIComponent(e)}`),staleTime:6e5}}function ar(){return R(`/api/updates/verlauf`)}function or(){return R(`/api/system/ablaeufe`)}function sr(){return R(`/api/system/services`)}function cr(e,t){return(e.aktion===`freigeben`||en.has(e.aktion))&&t.text?t.text:`${e.label}: erledigt. Der Wächter prüft in einer Minute nach.`}function lr(e){return z(tn[e])}function ur(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 dr(e){let{id:t}=e;return z(`/api/jobs/${encodeURIComponent(t)}/cancel`)}function fr(e){return`${e.titel}: wird abgebrochen.`}function pr(e){return`${e.titel} lief schon nicht mehr.`}function mr(e){return z(`/api/jobs/${encodeURIComponent(e)}/quittieren`)}function hr(){return``}function gr(e){let{repo:t,quant:n,rolle:r}=e;return z(`/api/models/install`,{repo:t,quant:n,role:r})}function _r(e,t){return`${e.repo} (${e.quant}) wird heruntergeladen${t.total_bytes?`, ${Rt(t.total_bytes,1)}`:``}. Den Fortschritt siehst du unter Aufträge.`}function vr(){return R(`/api/modelle/aufraeumen`)}function yr(e){return z(`/api/modelle/aufraeumen/loeschen`,{art:e.art,name:e.name})}function br(e,t){return t.text??`Gelöscht.`}function xr(e){return z(`/api/updates/festgehalten/${encodeURIComponent(e)}/freigeben`)}function Sr(e,t){return t.text??`Freigegeben.`}function Cr(){return z(`/api/system/backup`)}function wr(e,t){return t.size_mb==null?`Sicherung erstellt.`:`Sicherung erstellt (${t.size_mb.toLocaleString(`de-DE`)} MB).`}function Tr(e,t){return`Die Sicherung ging nicht: ${H(t)}`}function Er(e){return z(`/api/zeitmaschine/restore`,{file:e})}function Dr(){return`Zurückspielen läuft. Die Dienste starten gleich neu.`}function Or(e){return z(`/api/models/${encodeURIComponent(e)}/load`)}function kr(e){return`${e} wird geladen.`}function Ar(e){let{id:t,aktion:n}=e;return z(`/api/radar/${encodeURIComponent(t)}/${n}`)}function jr(e){return e.aktion===`uebernehmen`?`${e.name} übernommen.`:`${e.name} verworfen.`}function Mr(e){let{id:t}=e;return z(`/api/radar/${encodeURIComponent(t)}/testen`)}function Nr(e,t){return t.text??`Der Test von ${e.name} läuft.`}function Pr(){return z(`/api/radar/suche`)}function Fr(e,t){return t.text??`Das Radar sucht jetzt nach neuen Modellen.`}function Ir(){return R(`/api/instanz`)}function Lr(){return R(`/api/partner`)}function Rr(){return R(`/api/ziele`)}function zr(){return R(`/api/homelab/ziele`)}function Br(){return R(`/api/homelab/laeufe`)}function Vr(e){return e.status===`laeuft`}function Hr(e){return e.state.data?.laeufe.some(Vr)?3e3:3e4}function Ur(e){return R(e.pfad,{method:e.methode})}function Wr(e){return`${e.label}: gestartet. Das Ergebnis kommt als Meldung.`}function Gr(){return R(`/api/homelab/hinweise`)}function Kr(){return R(`/api/einstellungen`)}function qr(e){return z(`/api/einstellungen/update-fenster`,e)}function Jr(e,t){return t.text??`Gespeichert.`}function Yr(e){return z(`/api/einstellungen/radar`,{an:e})}function Xr(e,t){return t.text??`Geschaltet.`}function Zr(e){return z(e===`homelab`?`/api/homelab/einstellungen/telegram-test`:`/api/einstellungen/telegram-test`)}function Qr(e,t){return t.text??`Die Testmeldung ist raus.`}function $r(){return R(`/api/instanz`)}function ei(){return R(`/api/partner/instanz`)}function ti(){return R(`/api/aufraeumen/altreste`)}function ni(e){return z(`/api/aufraeumen/altreste/loeschen`,{id:e.id})}function ri(e,t){return t.text??`Gelöscht.`}function ii(e){return e}function ai(e){return e}function oi(){return R(`/api/homelab/alle/plan`)}function si(){return R(`/api/homelab/sammellauf`)}function ci(e){return e.state.data?.sammellauf?.status===`laeuft`?5e3:6e4}function li(){return z(`/api/homelab/alle`)}function ui(){return`Alle aktualisieren: gestartet. Die Schritte laufen nacheinander; das Ergebnis kommt als Meldung.`}function di(e){return z(`/api/homelab/sammellauf/${encodeURIComponent(e)}/quittieren`)}function fi(){return``}function pi(){return R(`/api/homelab/speicher`)}function mi(){return R(`/api/homelab/neu`)}function hi(){return R(`/api/homelab/docker`)}function gi(e){let{id:t,wahl:n}=e;return z(`/api/homelab/neu/${t}`,{wahl:n})}function _i(e,t){return t.text??`Übernommen.`}function vi(){return R(`/api/homelab/zertifikate`)}function yi(){return R(`/api/homelab/snapshots`)}function bi(e){return e.laeuft}function xi(e){return e.state.data?.geraete.some(bi)?3e3:3e4}function Si(){return z(`/api/homelab/sicherungen/probe`)}function Ci(){return`Probe gestartet. Das Ergebnis steht in etwa einer Minute bei den Geräten.`}function wi(e){return R(e.pfad,{method:e.methode})}function Ti(e){return`${e.label}: gestartet. Das Ergebnis steht gleich beim Gerät.`}function Ei(){return R(`/api/homelab/einstellungen`)}function Di(e){return e===null?R(`/api/homelab/einstellungen/arcane-schluessel`,{method:`DELETE`}):z(`/api/homelab/einstellungen/arcane-schluessel`,{schluessel:e})}function Oi(e,t){return t.text??(e===null?`Arcane-Schlüssel entfernt.`:`Arcane-Schlüssel gespeichert.`)}function ki(e){return e===null?R(`/api/homelab/einstellungen/adguard-zugang`,{method:`DELETE`}):z(`/api/homelab/einstellungen/adguard-zugang`,e)}function Ai(e,t){return t.text??(e===null?`AdGuard-Zugang entfernt.`:`AdGuard-Zugang gespeichert.`)}function ji(e){return z(`/api/homelab/einstellungen/arcane-echt`,{an:e})}function Mi(e){return e?`Docker-Updates über Arcane laufen jetzt echt.`:`Docker-Updates über Arcane sind wieder nur ein Probelauf.`}export{En as $,an as A,z as At,Wt as B,b as Bt,Wn as C,st as Ct,gn as D,at as Dt,on as E,ct as Et,Hn as F,O as Ft,Nn as G,_ as Gt,Tn as H,v as Ht,zn as I,D as It,Kt as J,s as Jt,Pn as K,se as Kt,Ut as L,E as Lt,fn as M,Ae as Mt,Ht as N,Se as Nt,un as O,L as Ot,Bn as P,k as Pt,Vt as Q,_n as R,m as Rt,Ln as S,ot as St,Un as T,ut as Tt,hn as U,p as Ut,pn as V,y as Vt,mn as W,S as Wt,Kn as X,Gn as Y,Dn as Z,Vn as _,K as _t,On as a,dn as at,bn as b,it as bt,sn as c,Rt as ct,vn as d,Ft as dt,qt as et,Zt as f,zt as ft,yn as g,pt as gt,$t as h,wt as ht,kn as i,xn as it,Gt as j,P as jt,rn as k,R as kt,cn as l,It as lt,ln as m,Et as mt,Yn as n,nn as nt,Xn as o,Nt as ot,Cn as p,Tt as pt,In as q,c as qt,Fn as r,Jt as rt,Jn as s,Lt as st,Xt as t,wn as tt,jn as u,Pt as ut,qn as v,mt as vt,Rn as w,U as wt,Mn as x,H as xt,Sn as y,lt as yt,Yt as z,x as zt}; \ No newline at end of file +import{a as e,c as t,i as n,r}from"./dist-aE7UmubC.js";var i=t(e(),1),a=n(),o=i.createContext(void 0),s=e=>{let t=i.useContext(o);if(e)return e;if(!t)throw Error(`No QueryClient set, use QueryClientProvider to set one`);return t},c=({client:e,children:t})=>(i.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]),(0,a.jsx)(o.Provider,{value:e,children:t})),l={setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e),setInterval:(e,t)=>setInterval(e,t),clearInterval:e=>clearInterval(e)},u=new class{#e=l;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 d(e){setTimeout(e,0)}var f=typeof window>`u`||`Deno`in globalThis;function p(){}function m(e,t){return typeof e==`function`?e(t):e}function h(e){return typeof e==`number`&&e>=0&&e!==1/0}function g(e,t){return Math.max(e+(t||0)-Date.now(),0)}function _(e,t){return typeof e==`function`?e(t):e}function v(e,t){let{type:n=`all`,exact:r,fetchStatus:i,predicate:a,queryKey:o,stale:s}=e;if(o){if(r){if(t.queryHash!==b(o,t.options))return!1}else if(!S(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 y(e,t){let{exact:n,status:r,predicate:i,mutationKey:a}=e;if(a){if(!t.options.mutationKey)return!1;if(n){if(x(t.options.mutationKey)!==x(a))return!1}else if(!S(t.options.mutationKey,a))return!1}return!(r&&t.state.status!==r||i&&!i(t))}function b(e,t){return(t?.queryKeyHashFn||x)(e)}function x(e){return JSON.stringify(e,(e,t)=>T(t)?Object.keys(t).sort().reduce((e,n)=>(e[n]=t[n],e),{}):t)}function S(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=te(e)&&te(t);if(!r&&!(T(e)&&T(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{u.setTimeout(t,e)})}function ie(e,t,n){return typeof n.structuralSharing==`function`?n.structuralSharing(e,t):n.structuralSharing===!1?t:C(e,t)}function ae(e,t,n=0){let r=[...e,t];return n&&r.length>n?r.slice(1):r}function oe(e,t,n=0){let r=[t,...e];return n&&r.length>n?r.slice(0,-1):r}var se=Symbol();function ce(e,t){return!e.queryFn&&t?.initialPromise?()=>t.initialPromise:!e.queryFn||e.queryFn===se?()=>Promise.reject(Error(`Missing queryFn: '${e.queryHash}'`)):e.queryFn}function le(e,t){return typeof e==`function`?e(...t):!!e}function ue(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 de=()=>f,fe=()=>de(),E=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(){}},D=new class extends E{#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`}},pe=d;function me(){let e=[],t=0,n=e=>{e()},r=e=>{e()},i=pe,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 O=me(),k=new class extends E{#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 he(e){return Math.min(1e3*2**e,3e4)}function ge(e){return(e??`online`)!==`online`||k.isOnline()}var A=class extends Error{constructor(e){super(`CancelledError`),this.revert=e?.revert,this.silent=e?.silent}};function _e(e){let t=!1,n=0,r,i=`pending`,a,o,s=new Promise((e,t)=>{a=e,o=t});s.catch(p);let c=()=>i!==`pending`,l=t=>{if(!c()){let n=new A(t);g(n),e.onCancel?.(n)}},u=()=>{t=!0},d=()=>{t=!1},f=()=>D.isFocused()&&(e.networkMode===`always`||k.isOnline())&&e.canRun(),m=()=>ge(e.networkMode)&&e.canRun(),h=e=>{c()||(r?.(),i=`resolved`,a(e))},g=e=>{c()||(r?.(),i=`rejected`,o(e))},_=()=>new Promise(t=>{r=e=>{(c()||f())&&t(e)},e.onPause?.()}).then(()=>{r=void 0,c()||e.onContinue?.()}),v=()=>{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(h).catch(r=>{if(c())return;let i=e.retry??(fe()?0:3),a=e.retryDelay??he,o=typeof a==`function`?a(n,r):a,s=i===!0||typeof i==`number`&&nf()?void 0:_()).then(()=>{t?g(r):v()})})};return{promise:s,status:()=>i,cancel:l,continue:()=>(r?.(),s),cancelRetry:u,continueRetry:d,canStart:m,start:()=>(m()?v():_().then(v),s)}}var ve=class{#e;destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),h(this.gcTime)&&(this.#e=u.setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(fe()?1/0:3e5))}clearGcTimeout(){this.#e!==void 0&&(u.clearTimeout(this.#e),this.#e=void 0)}};function ye(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=>{ue(e,()=>t.signal,()=>n=!0)},u=ce(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?oe:ae;return{pages:c(e.pages,o,s),pageParams:c(e.pageParams,r,s)}};if(i&&a.length){let e=i===`backward`,t=e?xe:be,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:be(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 be(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 xe(e,{pages:t,pageParams:n}){return t.length>0?e.getPreviousPageParam?.(t[0],t,n[0],n):void 0}var Se=class extends ve{#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=Te(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=Te(this.options);e.data!==void 0&&(this.setState(we(e.data,e.dataUpdatedAt)),this.#t=e)}}optionalRemove(){!this.observers.length&&this.state.fetchStatus===`idle`&&this.#r.remove(this)}setData(e,t){let n=ie(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(p).catch(p):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.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===se||!this.isFetched()}isFetched(){return this.state.dataUpdateCount+this.state.errorUpdateCount>0}isStatic(){return this.getObserversCount()>0&&this.observers.some(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:!g(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=ce(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`?ye(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=_e({initialPromise:t?.initialPromise,fn:a.fetchFn,onCancel:e=>{e instanceof A&&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 A){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,...Ce(t.data,this.options),fetchMeta:e.meta??null};case`success`:let n={...t,...we(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),O.batch(()=>{this.observers.slice().forEach(e=>{e.onQueryUpdate()}),this.#r.notify({query:this,type:`updated`,action:e})})}};function Ce(e,t){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:ge(t.networkMode)?`fetching`:`paused`,...e===void 0&&{error:null,status:`pending`}}}function we(e,t){return{data:e,dataUpdatedAt:t??Date.now(),error:null,isInvalidated:!1,status:`success`}}function Te(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 Ee=class extends E{#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),Oe(this.#t,this.options)?this.#m():this.updateResult(),this.#y())}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return j(this.#t,this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return j(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 _(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&&!w(this.options,t)&&this.#e.getQueryCache().notify({type:`observerOptionsUpdated`,query:this.#t,observer:this});let r=this.hasListeners();r&&ke(this.#t,n,this.options,t)&&this.#m(),this.updateResult(),r&&(this.#t!==n||_(this.options.enabled,this.#t)!==_(t.enabled,this.#t)||_(this.options.staleTime,this.#t)!==_(t.staleTime,this.#t))&&this.#g();let i=this.#_();r&&(this.#t!==n||_(this.options.enabled,this.#t)!==_(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 w(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(p)),t}#h(e){return!fe()&&_(this.options.enabled,this.#t)!==!1&&h(e)}#g(){this.#b();let e=_(this.options.staleTime,this.#t);if(this.#r.isStale||!this.#h(e))return;let t=g(this.#r.dataUpdatedAt,e)+1;this.#u=u.setTimeout(()=>{this.#r.isStale||this.updateResult()},t)}#_(){return _(this.options.refetchInterval,this.#t)??!1}#v(e){this.#x(),this.#f=e,this.#f!==0&&this.#h(this.#f)&&(this.#d=u.setInterval(()=>{(this.options.refetchIntervalInBackground||D.isFocused())&&this.#m()},this.#f))}#y(){this.#g(),this.#v(this.#_())}#b(){this.#u!==void 0&&(u.clearTimeout(this.#u),this.#u=void 0)}#x(){this.#d!==void 0&&(u.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&&Oe(e,t),o=i&&ke(e,n,t,r);(a||o)&&(l={...l,...Ce(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=ie(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=ie(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`,v=m===`pending`,y=m===`error`,b=v&&g,x=d!==void 0;return{status:m,fetchStatus:l.fetchStatus,isPending:v,isSuccess:m===`success`,isError:y,isInitialLoading:b,isLoading:b,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&&!v,isLoadingError:y&&!x,isPaused:l.fetchStatus===`paused`,isPlaceholderData:u,isRefetchError:y&&x,isStale:M(e,t),refetch:this.refetch,isEnabled:_(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),w(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)})})();O.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 De(e,t){return _(t.enabled,e)!==!1&&e.state.data===void 0&&(e.state.status!==`error`||_(t.retryOnMount,e)!==!1)}function Oe(e,t){return De(e,t)||e.state.data!==void 0&&j(e,t,t.refetchOnMount)}function j(e,t,n){if(_(t.enabled,e)!==!1&&_(t.staleTime,e)!==`static`){let r=_(n,e);return r===`always`||r!==!1&&M(e,t)}return!1}function ke(e,t,n,r){return(e!==t||_(r.enabled,e)===!1)&&(!n.suspense||e.state.status!==`error`)&&M(e,n)}function M(e,t){return _(t.enabled,e)!==!1&&e.isStaleByTime(_(t.staleTime,e))}var Ae=class extends ve{#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||je(),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=_e({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),O.batch(()=>{this.#t.forEach(t=>{t.onMutationUpdate(e)}),this.#n.notify({mutation:this,type:`updated`,action:e})})}};function je(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:`idle`,variables:void 0,submittedAt:0}}var Me=class extends E{#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),w(this.options,t)||this.#e.getMutationCache().notify({type:`observerOptionsUpdated`,mutation:this.#n,observer:this}),t?.mutationKey&&this.options.mutationKey&&x(t.mutationKey)!==x(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??je();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){O.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 Ne(e,t){let n=new Set(t);return e.filter(e=>!n.has(e))}var Pe=class extends E{#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,O.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||!w(e,n)});(o||s)&&(o&&(this.#l=t,this.#i=n),this.#t=r,this.hasListeners()&&(o&&(Ne(e,n).forEach(e=>{e.destroy()}),Ne(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=C(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 Ee(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)&&O.batch(()=>{this.listeners.forEach(e=>{e(this.#t)})})}}},Fe=i.createContext(!1),Ie=()=>i.useContext(Fe);Fe.Provider;function Le(){let e=!1;return{clearReset:()=>{e=!1},reset:()=>{e=!0},isReset:()=>e}}var Re=i.createContext(Le()),ze=()=>i.useContext(Re),Be=(e,t,n)=>{let r=n?.state.error&&typeof e.throwOnError==`function`?le(e.throwOnError,[n.state.error,n]):e.throwOnError;(e.suspense||r)&&(t.isReset()||(e.retryOnMount=!1))},Ve=e=>{i.useEffect(()=>{e.clearReset()},[e])},He=({result:e,errorResetBoundary:t,throwOnError:n,query:r,suspense:i})=>e.isError&&!t.isReset()&&!e.isFetching&&r&&(i&&e.data===void 0||le(n,[e.error,r])),Ue=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))}},N=(e,t)=>e?.suspense&&t.isPending,We=(e,t,n)=>t.fetchOptimistic(e).catch(()=>{n.clearReset()});function Ge({queries:e,...t},n){let r=s(n),a=Ie(),o=ze(),c=t.subscribed!==!1,l=i.useMemo(()=>e.map(e=>{let t=r.defaultQueryOptions(e);return t._optimisticResults=a?`isRestoring`:c?`optimistic`:void 0,t}),[e,r,a,c]);l.forEach(e=>{Ue(e);let t=r.getQueryCache().get(e.queryHash);Be(e,o,t)}),Ve(o);let[u]=i.useState(()=>new Pe(r,l,t)),[d,f,m]=u.getOptimisticResult(l,t.combine),h=!a&&c;i.useSyncExternalStore(i.useCallback(e=>h?u.subscribe(O.batchCalls(e)):p,[u,h]),()=>u.getCurrentResult(),()=>u.getCurrentResult()),i.useEffect(()=>{u.setQueries(l,t)},[l,t,u]);let g=d.some((e,t)=>N(l[t],e))?d.flatMap((e,t)=>{let n=l[t];return n&&N(n,e)?We(n,new Ee(r,n),o):[]}):[];if(g.length>0)throw Promise.all(g);let _=d.find((e,t)=>{let n=l[t];return n&&He({result:e,errorResetBoundary:o,throwOnError:n.throwOnError,query:r.getQueryCache().get(n.queryHash),suspense:n.suspense})});if(_)throw _.error;return f(m())}function Ke(e,t,n){let r=Ie(),a=ze(),o=s(n),c=o.defaultQueryOptions(e),l=o.getQueryCache().get(c.queryHash),u=e.subscribed!==!1;c._optimisticResults=r?`isRestoring`:u?`optimistic`:void 0,Ue(c),Be(c,a,l),Ve(a);let[d]=i.useState(()=>new t(o,c)),f=d.getOptimisticResult(c),m=!r&&u;if(i.useSyncExternalStore(i.useCallback(e=>{let t=m?d.subscribe(O.batchCalls(e)):p;return d.updateResult(),t},[d,m]),()=>d.getCurrentResult(),()=>d.getCurrentResult()),i.useEffect(()=>{d.setOptions(c)},[c,d]),N(c,f))throw We(c,d,a);if(He({result:f,errorResetBoundary:a,throwOnError:c.throwOnError,query:l,suspense:c.suspense}))throw f.error;return c.notifyOnChangeProps?f:d.trackResult(f)}function P(e,t){return Ke(e,Ee,t)}function qe(e,t){let n=s(t),[r]=i.useState(()=>new Me(n,e));i.useEffect(()=>{r.setOptions(e)},[r,e]);let a=i.useSyncExternalStore(i.useCallback(e=>r.subscribe(O.batchCalls(e)),[r]),()=>r.getCurrentResult(),()=>r.getCurrentResult()),o=i.useCallback((...e)=>{r.mutate(e[0],e[1]).catch(p)},[r]);if(a.error&&le(r.options.throwOnError,[a.error]))throw a.error;return{...a,mutate:o,mutateAsync:a.mutate}}var F=r(),Je=[`/api/instanz`,`/api/partner`,`/api/health`],Ye=(e,t)=>e===t||e.startsWith(`${t}/`)||e.startsWith(`${t}?`);function Xe(e,t){return!e.startsWith(`/api/`)||Je.some(t=>Ye(e,t))||(Ye(e,`/api/homelab`)?`homelab`:`box`)===t?e:`/api/partner${e.slice(4)}`}var I=null;function Ze(){return I??=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(()=>(I=null,`box`)),I}var L=class extends Error{status;detail;constructor(e,t){super(t),this.status=e,this.detail=t,this.name=`ApiFehler`}};function Qe(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 R(e,t={}){let n=Xe(e,await Ze()),r;try{r=await fetch(n,{...t,headers:{"Content-Type":`application/json`,Accept:`application/json`,...t.headers}})}catch{throw new L(0,`MC2 ist nicht erreichbar. Läuft die Box?`)}let i=await r.text(),a=i?$e(i):null;if(!r.ok)throw new L(r.status,Qe(a,r.status));if(typeof a==`string`)throw new L(r.status,`Die Box antwortet nicht mit Daten.`);return a}function $e(e){try{return JSON.parse(e)}catch{return e}}var z=(e,t)=>R(e,{method:`POST`,body:t===void 0?void 0:JSON.stringify(t)}),et=100,tt=95,nt=210,B=240;function rt(e,t){let n=e*Math.PI/180;return[et+t*Math.cos(n),tt-t*Math.sin(n)]}var V=e=>Math.round(e*100)/100;function it(e,t,n){let r=Math.max(0,Math.min(1,e)),i=Math.max(r,Math.min(1,t)),[a,o]=rt(nt-B*r,n),[s,c]=rt(nt-B*i,n),l=+((i-r)*B>180);return`M ${V(a)} ${V(o)} A ${n} ${n} 0 ${l} 1 ${V(s)} ${V(c)}`}function at(e){return e==null?`var(--text-3)`:e>=85?`var(--rot)`:e>=70?`var(--bernstein)`:`var(--box)`}function ot(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 st(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 H(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 U=e=>e.state===`running`||e.state===`queued`;function ct(e){let t=e.aliases.map(e=>e.toLowerCase());return t.includes(`hermes`)||t.includes(`fast`)?`hirn`:t.includes(`coder`)?`coder`:null}var lt={neu:`Neu`,wartet:`Wartet`,getestet:`Gemessen`,bestanden:`Bestanden`,durchgefallen:`Durchgefallen`,uebernommen:`Übernommen`,verworfen:`Verworfen`};function ut(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 W=[],dt=1,G=new Set,ft=()=>G.forEach(e=>e());function K(e,t){let n=dt++;W=[...W,{id:n,art:e,text:t}].slice(-4),ft(),e!==`fehler`&&window.setTimeout(()=>pt(n),6e3)}function pt(e){W=W.filter(t=>t.id!==e),ft()}var mt=()=>(0,i.useSyncExternalStore)(ht,gt);function ht(e){return G.add(e),()=>{G.delete(e)}}function gt(){return W}var q=2e3,_t=3e4,vt=2e4,J=`verbinde`,yt=null,bt=new Set,xt=()=>bt.forEach(e=>e());function St(e){return bt.add(e),()=>{bt.delete(e)}}var Ct=()=>J===`live`,wt=()=>(0,i.useSyncExternalStore)(St,Dt),Tt=()=>(0,i.useSyncExternalStore)(St,Ot);function Y(e){e!==J&&(J=e,xt())}function Et(){let e=s();(0,i.useEffect)(()=>{let t=null,n,r,i=Date.now(),a=q,o=!1;function s(){o||(window.clearTimeout(n),n=window.setTimeout(l,a),a=Math.min(a*2,_t))}function c(){i=Date.now(),window.clearTimeout(r),r=window.setTimeout(()=>{t?.close(),Y(`getrennt`),s()},vt)}function l(){window.clearTimeout(n),window.clearTimeout(r),t?.close();let i=new EventSource(`/api/stream`);t=i,i.onopen=()=>{a=q,Y(`live`),c(),e.invalidateQueries()},i.onerror=()=>{Y(`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{yt=JSON.parse(e.data),xt()}catch{}})}let u=()=>{o||document.visibilityState!==`visible`||(t?.readyState===EventSource.CLOSED||Date.now()-i>5e3)&&(a=q,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(),Y(`getrennt`)}},[e])}function Dt(){return J}function Ot(){return yt}var X=`Europe/Berlin`,kt=new Intl.DateTimeFormat(`de-DE`,{hour:`2-digit`,minute:`2-digit`,timeZone:X}),At=new Intl.DateTimeFormat(`de-DE`,{weekday:`short`,timeZone:X}),jt=new Intl.DateTimeFormat(`de-DE`,{day:`2-digit`,month:`2-digit`,timeZone:X}),Mt=new Intl.DateTimeFormat(`en-CA`,{timeZone:X});function Z(e){return Mt.format(e)}function Nt(e,t=new Date){let n=new Date(e);if(Number.isNaN(n.getTime()))return`–`;let r=Z(t),i=Z(new Date(t.getTime()-864e5)),a=Z(new Date(t.getTime()+864e5)),o=Z(n),s=kt.format(n);return o===r?`HEUTE ${s}`:o===i?`GESTERN ${s}`:o===a?`MORGEN ${s}`:Math.abs(n.getTime()-t.getTime())<5616e5?`${At.format(n).replace(`.`,``).toUpperCase()} ${s}`:`${jt.format(n)} ${s}`}function Pt(e,t=new Date){let n=new Date(e*1e3);return Z(n)===Z(t)?`seit heute ${kt.format(n)}`:`seit ${jt.format(n)}, ${kt.format(n)}`}function Ft(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 It(e){return e==null||e<0?null:[Math.floor(e/86400),Math.floor(e%86400/3600)]}var Lt=e=>e==null?null:e/1024**3;function Rt(e,t=0){let n=Lt(e);return n==null?`–`:n>=1e3?`${(n/1024).toFixed(1).replace(`.`,`,`)} TB`:`${n.toFixed(t).replace(`.`,`,`)} GB`}var zt=e=>e.toLocaleString(`de-DE`),Q=e=>()=>Ct()?e*5:e;function Bt(e,t){let n=e.getQueryData([`jobs`])?.jobs??[],r=t.filter(e=>!U(e)&&n.some(t=>t.id===e.id&&U(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 Vt=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={queryKey:[`start`],queryFn:or,refetchInterval:sr},e[0]=t):t=e[0],P(t)},Ht=()=>{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:cr,refetchInterval:Q(3e4)},e[1]=n):n=e[1],P(n)},Ut=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={queryKey:[`nutzung`],queryFn:lr,refetchInterval:6e5},e[0]=t):t=e[0],P(t)},Wt=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={queryKey:[`radar`],queryFn:ur,retry:!1,refetchInterval:3e5},e[0]=t):t=e[0],P(t)},Gt=()=>{let e=(0,F.c)(3),t=s(),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 R(`/api/jobs`);return Bt(t,e.jobs),e},refetchInterval:dr},e[1]=t,e[2]=r),P(r)},Kt=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={queryKey:[`sicherungen`],queryFn:fr},e[0]=t):t=e[0],P(t)},qt=e=>{let t=(0,F.c)(4),n;t[0]===e?n=t[1]:(n=e.map(pr),t[0]=e,t[1]=n);let r;return t[2]===n?r=t[3]:(r={queries:n},t[2]=n,t[3]=r),Ge(r)},Jt=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={queryKey:[`updates-verlauf`],queryFn:mr},e[0]=t):t=e[0],P(t)},Yt=e=>{let t=(0,F.c)(7),n,r;t[0]===e?(n=t[1],r=t[2]):(n=[`protokoll`,e],r=()=>R(`/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],P(a)},Xt=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={queryKey:[`ablaeufe`],queryFn:hr,refetchInterval:6e4},e[0]=t):t=e[0],P(t)},Zt=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={queryKey:[`dienste`],queryFn:gr,refetchInterval:1e4},e[0]=t):t=e[0],P(t)};function $(e,t){let n=(0,F.c)(6),r=s(),i;n[0]!==t||n[1]!==r?(i=(e,n)=>{let i=e;i&&i.ok===!1?K(`fehler`,t.fehler?.(n,i)??H(i)):t.erfolg(n,e)&&K(`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:Qt},n[3]=e,n[4]=i,n[5]=a):a=n[5],qe(a)}function Qt(e){return K(`fehler`,e.message)}var $t=e=>{let t=(0,F.c)(4),n=e===void 0?`/api/hinweise`:e,r;t[0]===n?r=t[1]:(r=e=>{let{hinweis:t,aktion:r}=e;return z(`${n}/${encodeURIComponent(t)}/aktion/${r}`)},t[0]=n,t[1]=r);let i;return t[2]===n?i=t[3]:(i={erfolg:_r,neuLaden:n===`/api/hinweise`?[`start`]:[`homelab-hinweise`]},t[2]=n,t[3]=i),$(r,i)},en=new Set([`gesehen`,`stumm`,`laut`]),tn={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`},nn=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:yr,neuLaden:[`jobs`,`start`]},e[0]=t):t=e[0],$(vr,t)},rn=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:xr,fehler:Sr,neuLaden:[`jobs`]},e[0]=t):t=e[0],$(br,t)},an=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:wr,neuLaden:[`jobs`]},e[0]=t):t=e[0],$(Cr,t)},on=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:Er,neuLaden:[`jobs`,`models`]},e[0]=t):t=e[0],$(Tr,t)},sn=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={queryKey:[`aufraeumen`],queryFn:Dr,staleTime:6e4},e[0]=t):t=e[0],P(t)},cn=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:kr,neuLaden:[`aufraeumen`,`models`,`start`]},e[0]=t):t=e[0],$(Or,t)},ln=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:jr,neuLaden:[`start`]},e[0]=t):t=e[0],$(Ar,t)},un=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:Nr,fehler:Pr,neuLaden:[`sicherungen`,`start`]},e[0]=t):t=e[0],$(Mr,t)},dn=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:Ir,neuLaden:[`sicherungen`]},e[0]=t):t=e[0],$(Fr,t)},fn=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:Rr,neuLaden:[`models`,`start`]},e[0]=t):t=e[0],$(Lr,t)},pn=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:Br,neuLaden:[`radar`,`models`,`start`]},e[0]=t):t=e[0],$(zr,t)},mn=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:Hr,neuLaden:[`radar`,`jobs`]},e[0]=t):t=e[0],$(Vr,t)},hn=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:Wr,neuLaden:[`jobs`]},e[0]=t):t=e[0],$(Ur,t)},gn=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={queryKey:[`instanz`],queryFn:Gr,staleTime:1/0},e[0]=t):t=e[0],P(t)},_n=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={queryKey:[`partner`],queryFn:Kr,refetchInterval:3e4},e[0]=t):t=e[0],P(t)},vn=()=>{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:qr,refetchInterval:Q(3e4)},e[1]=n):n=e[1],P(n)},yn=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:Jr,enabled:e,refetchInterval:3e4},t[1]=e,t[2]=r),P(r)},bn=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:Yr,enabled:e,refetchInterval:Zr},t[1]=e,t[2]=r),P(r)},xn=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:$r,neuLaden:[`homelab`,`homelab-laeufe`,`ziele-box`,`jobs`,`start`]},e[0]=t):t=e[0],$(Qr,t)},Sn=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=Q(6e4),t[1]=r):r=t[1];let i;return t[2]===e?i=t[3]:(i={queryKey:n,queryFn:ei,enabled:e,refetchInterval:r},t[2]=e,t[3]=i),P(i)},Cn=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:ti,enabled:e,retry:!1},t[1]=e,t[2]=r),P(r)},wn=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:ri,neuLaden:[`einstellungen`,`start`]},e[0]=t):t=e[0],$(ni,t)},Tn=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:ai,neuLaden:[`einstellungen`,`start`,`radar`]},e[0]=t):t=e[0],$(ii,t)},En=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:si,neuLaden:[]},e[0]=t):t=e[0],$(oi,t)},Dn=(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:ci,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:li,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],Ge(c)},On=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={queryKey:[`altreste`],queryFn:ui,staleTime:6e4},e[0]=t):t=e[0],P(t)},kn=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:fi,neuLaden:[`altreste`,`start`]},e[0]=t):t=e[0],$(di,t)},An={"1h":6e4,"24h":3e5,"7d":9e5},jn=(e,t)=>{let n=(0,F.c)(8),r=t===void 0||t,i,a;n[0]===e?(i=n[1],a=n[2]):(i=[`messwerte`,`box`,e],a=()=>R(`/api/messwerte?zeitraum=${e}`),n[0]=e,n[1]=i,n[2]=a);let o=An[e],s;return n[3]!==r||n[4]!==i||n[5]!==a||n[6]!==o?(s={queryKey:i,queryFn:a,enabled:r,refetchInterval:o,placeholderData:pi,retry:!1},n[3]=r,n[4]=i,n[5]=a,n[6]=o,n[7]=s):s=n[7],P(s)},Mn=(e,t)=>{let n=(0,F.c)(8),r,i;n[0]===e?(r=n[1],i=n[2]):(r=[`messwerte`,`homelab`,e],i=()=>R(`/api/homelab/messwerte?zeitraum=${e}`),n[0]=e,n[1]=r,n[2]=i);let a=An[e],o;return n[3]!==t||n[4]!==r||n[5]!==i||n[6]!==a?(o={queryKey:r,queryFn:i,enabled:t,refetchInterval:a,placeholderData:mi,retry:!1},n[3]=t,n[4]=r,n[5]=i,n[6]=a,n[7]=o):o=n[7],P(o)},Nn=e=>{let t=(0,F.c)(3),n;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=[`homelab-sammelplan`],t[0]=n):n=t[0];let r;return t[1]===e?r=t[2]:(r={queryKey:n,queryFn:hi,enabled:e,retry:!1},t[1]=e,t[2]=r),P(r)},Pn=e=>{let t=(0,F.c)(3),n;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=[`homelab-sammellauf`],t[0]=n):n=t[0];let r;return t[1]===e?r=t[2]:(r={queryKey:n,queryFn:gi,enabled:e,refetchInterval:_i,retry:!1},t[1]=e,t[2]=r),P(r)},Fn=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:yi,neuLaden:[`homelab-sammellauf`,`homelab-laeufe`,`homelab`]},e[0]=t):t=e[0],$(vi,t)},In=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:xi,neuLaden:[`homelab-sammellauf`]},e[0]=t):t=e[0],$(bi,t)},Ln=(e,t,n)=>{let r=(0,F.c)(9),i=n===void 0?null:n,a,o;r[0]!==t||r[1]!==i?(a=[`homelab-protokoll`,t,i],o=()=>R(`/api/homelab/protokoll?grenze=300&berichte=${+!!t}${i?`&ziel=${encodeURIComponent(i)}`:``}`),r[0]=t,r[1]=i,r[2]=a,r[3]=o):(a=r[2],o=r[3]);let s;r[4]===Symbol.for(`react.memo_cache_sentinel`)?(s=Q(3e4),r[4]=s):s=r[4];let c;return r[5]!==e||r[6]!==a||r[7]!==o?(c={queryKey:a,queryFn:o,enabled:e,refetchInterval:s,retry:!1},r[5]=e,r[6]=a,r[7]=o,r[8]=c):c=r[8],P(c)},Rn=e=>{let t=(0,F.c)(4),n;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=[`homelab-speicher`],t[0]=n):n=t[0];let r;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(r=Q(6e4),t[1]=r):r=t[1];let i;return t[2]===e?i=t[3]:(i={queryKey:n,queryFn:Si,enabled:e,refetchInterval:r,retry:!1},t[2]=e,t[3]=i),P(i)},zn=(e,t,n)=>{let r=(0,F.c)(8),i,a;r[0]!==t||r[1]!==e?(i=[`homelab-neuerungen`,e,t],a=()=>R(`/api/homelab/ziele/${e}/neuerungen?baustein=${encodeURIComponent(t)}`),r[0]=t,r[1]=e,r[2]=i,r[3]=a):(i=r[2],a=r[3]);let o;return r[4]!==n||r[5]!==i||r[6]!==a?(o={queryKey:i,queryFn:a,enabled:n,staleTime:6e5,retry:!1},r[4]=n,r[5]=i,r[6]=a,r[7]=o):o=r[7],P(o)},Bn=e=>{let t=(0,F.c)(3),n=e===void 0||e,r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=[`lucy-autonomie`],t[0]=r):r=t[0];let i;return t[1]===n?i=t[2]:(i={queryKey:r,queryFn:Ci,enabled:n,retry:!1},t[1]=n,t[2]=i),P(i)},Vn=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:Ti,neuLaden:[`lucy-autonomie`]},e[0]=t):t=e[0],$(wi,t)},Hn=e=>{let t=(0,F.c)(4),n=e===void 0||e,r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=[`rueckfragen`],t[0]=r):r=t[0];let i;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(i=Q(3e4),t[1]=i):i=t[1];let a;return t[2]===n?a=t[3]:(a={queryKey:r,queryFn:Ei,enabled:n,refetchInterval:i,retry:!1},t[2]=n,t[3]=a),P(a)},Un=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:Oi,neuLaden:[`rueckfragen`,`start`,`jobs`,`homelab`,`homelab-laeufe`]},e[0]=t):t=e[0],$(Di,t)},Wn=e=>{let t=(0,F.c)(3),n=e===void 0||e,r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=[`wochenbericht`],t[0]=r):r=t[0];let i;return t[1]===n?i=t[2]:(i={queryKey:r,queryFn:ki,enabled:n,retry:!1},t[1]=n,t[2]=i),P(i)},Gn=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:ji,neuLaden:[`wochenbericht`,`rueckfragen`]},e[0]=t):t=e[0],$(Ai,t)},Kn=e=>{let t=(0,F.c)(3),n;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=[`homelab-wartung`],t[0]=n):n=t[0];let r;return t[1]===e?r=t[2]:(r={queryKey:n,queryFn:Mi,enabled:e,retry:!1},t[1]=e,t[2]=r),P(r)},qn=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:Pi,neuLaden:[`homelab-wartung`]},e[0]=t):t=e[0],$(Ni,t)},Jn=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:Ii,neuLaden:[`homelab`,`homelab-wartung`]},e[0]=t):t=e[0],$(Fi,t)},Yn=e=>{let t=(0,F.c)(4),n;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=[`homelab-neu`],t[0]=n):n=t[0];let r;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(r=Q(6e4),t[1]=r):r=t[1];let i;return t[2]===e?i=t[3]:(i={queryKey:n,queryFn:Li,enabled:e,refetchInterval:r,retry:!1},t[2]=e,t[3]=i),P(i)},Xn=e=>{let t=(0,F.c)(4),n;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=[`homelab-docker`],t[0]=n):n=t[0];let r;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(r=Q(6e4),t[1]=r):r=t[1];let i;return t[2]===e?i=t[3]:(i={queryKey:n,queryFn:Ri,enabled:e,refetchInterval:r,retry:!1},t[2]=e,t[3]=i),P(i)},Zn=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:Bi,neuLaden:[`homelab-neu`,`homelab`]},e[0]=t):t=e[0],$(zi,t)},Qn=e=>{let t=(0,F.c)(4),n;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=[`homelab-zertifikate`],t[0]=n):n=t[0];let r;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(r=Q(3e5),t[1]=r):r=t[1];let i;return t[2]===e?i=t[3]:(i={queryKey:n,queryFn:Vi,enabled:e,refetchInterval:r,retry:!1},t[2]=e,t[3]=i),P(i)},$n=e=>{let t=(0,F.c)(3),n;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=[`homelab`,`snapshots`],t[0]=n):n=t[0];let r;return t[1]===e?r=t[2]:(r={queryKey:n,queryFn:Hi,enabled:e,refetchInterval:Wi,retry:!1},t[1]=e,t[2]=r),P(r)},er=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:Ki,neuLaden:[`homelab-speicher`]},e[0]=t):t=e[0],$(Gi,t)},tr=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:Ji,neuLaden:[`homelab`,`homelab-laeufe`]},e[0]=t):t=e[0],$(qi,t)},nr=e=>{let t=(0,F.c)(3),n;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=[`homelab-einstellungen`],t[0]=n):n=t[0];let r;return t[1]===e?r=t[2]:(r={queryKey:n,queryFn:Yi,enabled:e,retry:!1},t[1]=e,t[2]=r),P(r)},rr=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:Zi,neuLaden:[`homelab-einstellungen`,`homelab`]},e[0]=t):t=e[0],$(Xi,t)},ir=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:$i,neuLaden:[`homelab-einstellungen`,`homelab`]},e[0]=t):t=e[0],$(Qi,t)},ar=()=>{let e=(0,F.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:ta,neuLaden:[`homelab-einstellungen`,`homelab`]},e[0]=t):t=e[0],$(ea,t)};function or(){return R(`/api/start`)}function sr(e){return e.state.data&&!e.state.data.updates.gelesen?4e3:Q(2e4)()}function cr(){return R(`/api/models`)}function lr(){return R(`/api/modelle/nutzung`)}function ur(){return R(`/api/radar`)}function dr(e){return e.state.data?.jobs.some(U)?2e3:Q(3e4)()}function fr(){return R(`/api/zeitmaschine`)}function pr(e){return{queryKey:[`update-details`,e],queryFn:()=>R(`/api/maintenance/update-details?kind=${encodeURIComponent(e)}`),staleTime:6e5}}function mr(){return R(`/api/updates/verlauf`)}function hr(){return R(`/api/system/ablaeufe`)}function gr(){return R(`/api/system/services`)}function _r(e,t){return(e.aktion===`freigeben`||en.has(e.aktion))&&t.text?t.text:`${e.label}: erledigt. Der Wächter prüft in einer Minute nach.`}function vr(e){return z(tn[e])}function yr(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 br(e){let{id:t}=e;return z(`/api/jobs/${encodeURIComponent(t)}/cancel`)}function xr(e){return`${e.titel}: wird abgebrochen.`}function Sr(e){return`${e.titel} lief schon nicht mehr.`}function Cr(e){return z(`/api/jobs/${encodeURIComponent(e)}/quittieren`)}function wr(){return``}function Tr(e){let{repo:t,quant:n,rolle:r}=e;return z(`/api/models/install`,{repo:t,quant:n,role:r})}function Er(e,t){return`${e.repo} (${e.quant}) wird heruntergeladen${t.total_bytes?`, ${Rt(t.total_bytes,1)}`:``}. Den Fortschritt siehst du unter Aufträge.`}function Dr(){return R(`/api/modelle/aufraeumen`)}function Or(e){return z(`/api/modelle/aufraeumen/loeschen`,{art:e.art,name:e.name})}function kr(e,t){return t.text??`Gelöscht.`}function Ar(e){return z(`/api/updates/festgehalten/${encodeURIComponent(e)}/freigeben`)}function jr(e,t){return t.text??`Freigegeben.`}function Mr(){return z(`/api/system/backup`)}function Nr(e,t){return t.size_mb==null?`Sicherung erstellt.`:`Sicherung erstellt (${t.size_mb.toLocaleString(`de-DE`)} MB).`}function Pr(e,t){return`Die Sicherung ging nicht: ${H(t)}`}function Fr(e){return z(`/api/zeitmaschine/restore`,{file:e})}function Ir(){return`Zurückspielen läuft. Die Dienste starten gleich neu.`}function Lr(e){return z(`/api/models/${encodeURIComponent(e)}/load`)}function Rr(e){return`${e} wird geladen.`}function zr(e){let{id:t,aktion:n}=e;return z(`/api/radar/${encodeURIComponent(t)}/${n}`)}function Br(e){return e.aktion===`uebernehmen`?`${e.name} übernommen.`:`${e.name} verworfen.`}function Vr(e){let{id:t}=e;return z(`/api/radar/${encodeURIComponent(t)}/testen`)}function Hr(e,t){return t.text??`Der Test von ${e.name} läuft.`}function Ur(){return z(`/api/radar/suche`)}function Wr(e,t){return t.text??`Das Radar sucht jetzt nach neuen Modellen.`}function Gr(){return R(`/api/instanz`)}function Kr(){return R(`/api/partner`)}function qr(){return R(`/api/ziele`)}function Jr(){return R(`/api/homelab/ziele`)}function Yr(){return R(`/api/homelab/laeufe`)}function Xr(e){return e.status===`laeuft`}function Zr(e){return e.state.data?.laeufe.some(Xr)?3e3:3e4}function Qr(e){return R(e.pfad,{method:e.methode})}function $r(e){return`${e.label}: gestartet. Das Ergebnis kommt als Meldung.`}function ei(){return R(`/api/homelab/hinweise`)}function ti(){return R(`/api/einstellungen`)}function ni(e){return z(`/api/einstellungen/update-fenster`,e)}function ri(e,t){return t.text??`Gespeichert.`}function ii(e){return z(`/api/einstellungen/radar`,{an:e})}function ai(e,t){return t.text??`Geschaltet.`}function oi(e){return z(e===`homelab`?`/api/homelab/einstellungen/telegram-test`:`/api/einstellungen/telegram-test`)}function si(e,t){return t.text??`Die Testmeldung ist raus.`}function ci(){return R(`/api/instanz`)}function li(){return R(`/api/partner/instanz`)}function ui(){return R(`/api/aufraeumen/altreste`)}function di(e){return z(`/api/aufraeumen/altreste/loeschen`,{id:e.id})}function fi(e,t){return t.text??`Gelöscht.`}function pi(e){return e}function mi(e){return e}function hi(){return R(`/api/homelab/alle/plan`)}function gi(){return R(`/api/homelab/sammellauf`)}function _i(e){return e.state.data?.sammellauf?.status===`laeuft`?5e3:6e4}function vi(){return z(`/api/homelab/alle`)}function yi(){return`Alle aktualisieren: gestartet. Die Schritte laufen nacheinander; das Ergebnis kommt als Meldung.`}function bi(e){return z(`/api/homelab/sammellauf/${encodeURIComponent(e)}/quittieren`)}function xi(){return``}function Si(){return R(`/api/homelab/speicher`)}function Ci(){return R(`/api/lucy/autonomie`)}function wi(e){return z(`/api/lucy/autonomie`,{stufen:e})}function Ti(e,t){return t.text??`Gespeichert.`}function Ei(){return R(`/api/rueckfragen`)}function Di(e){let{nr:t,ja:n}=e;return z(`/api/rueckfragen/${t}/${n?`ja`:`nein`}`)}function Oi(e,t){return t.text??`Erledigt.`}function ki(){return R(`/api/lucy/wochenbericht`)}function Ai(){return z(`/api/lucy/wochenbericht`)}function ji(e,t){return t.text??`Der Wochenbericht ist unterwegs.`}function Mi(){return R(`/api/homelab/wartung`)}function Ni(e){return z(`/api/homelab/wartung`,e)}function Pi(e,t){return t.text??`Gespeichert.`}function Fi(e){let{zid:t,version:n}=e;return n===null?R(`/api/homelab/ziele/${t}/ueberspringen`,{method:`DELETE`}):z(`/api/homelab/ziele/${t}/ueberspringen`,{baustein:`app`,version:n})}function Ii(e,t){return t.text??`Erledigt.`}function Li(){return R(`/api/homelab/neu`)}function Ri(){return R(`/api/homelab/docker`)}function zi(e){let{id:t,wahl:n}=e;return z(`/api/homelab/neu/${t}`,{wahl:n})}function Bi(e,t){return t.text??`Übernommen.`}function Vi(){return R(`/api/homelab/zertifikate`)}function Hi(){return R(`/api/homelab/snapshots`)}function Ui(e){return e.laeuft}function Wi(e){return e.state.data?.geraete.some(Ui)?3e3:3e4}function Gi(){return z(`/api/homelab/sicherungen/probe`)}function Ki(){return`Probe gestartet. Das Ergebnis steht in etwa einer Minute bei den Geräten.`}function qi(e){return R(e.pfad,{method:e.methode})}function Ji(e){return`${e.label}: gestartet. Das Ergebnis steht gleich beim Gerät.`}function Yi(){return R(`/api/homelab/einstellungen`)}function Xi(e){return e===null?R(`/api/homelab/einstellungen/arcane-schluessel`,{method:`DELETE`}):z(`/api/homelab/einstellungen/arcane-schluessel`,{schluessel:e})}function Zi(e,t){return t.text??(e===null?`Arcane-Schlüssel entfernt.`:`Arcane-Schlüssel gespeichert.`)}function Qi(e){return e===null?R(`/api/homelab/einstellungen/adguard-zugang`,{method:`DELETE`}):z(`/api/homelab/einstellungen/adguard-zugang`,e)}function $i(e,t){return t.text??(e===null?`AdGuard-Zugang entfernt.`:`AdGuard-Zugang gespeichert.`)}function ea(e){return z(`/api/homelab/einstellungen/arcane-echt`,{an:e})}function ta(e){return e?`Docker-Updates über Arcane laufen jetzt echt.`:`Docker-Updates über Arcane sind wieder nur ein Probelauf.`}export{er as $,S as $t,an as A,H as At,_n as B,P as Bt,$n as C,Et as Ct,gn as D,mt as Dt,on as E,K as Et,Ht as F,ct as Ft,hn as G,D as Gt,Wt as H,Se as Ht,Yn as I,at as It,Hn as J,x as Jt,mn as K,E as Kt,Zn as L,L as Lt,Bn as M,st as Mt,Vn as N,U as Nt,un as O,lt as Ot,fn as P,ut as Pt,Kt as Q,p as Qt,zn as R,R as Rt,Ln as S,Tt as St,Qn as T,pt as Tt,pn as U,k as Ut,Yt as V,Ae as Vt,Tn as W,O as Wt,Pn as X,y as Xt,Nn as Y,b as Yt,In as Z,v as Zt,Xn as _,Rt as _t,On as a,qt as at,bn as b,Ft as bt,sn as c,Jt as ct,vn as d,Wn as dt,_ as en,tr as et,Zt as f,Gn as ft,yn as g,Lt as gt,$t as h,Nt as ht,kn as i,Jn as it,Gt as j,ot as jt,rn as k,it as kt,cn as l,Kn as lt,ln as m,dn as mt,ir as n,c as nn,Vt as nt,ar as o,wn as ot,Cn as p,xn as pt,Un as q,m as qt,Fn as r,s as rn,En as rt,rr as s,nn as st,Xt as t,se as tn,Dn as tt,jn as u,qn as ut,nr as v,It as vt,Rn as w,wt,Mn as x,zt as xt,Sn as y,Pt as yt,Ut as z,z as zt}; \ No newline at end of file diff --git a/frontend/dist/assets/button-BHVKhtQ6.js b/frontend/dist/assets/button-BHVKhtQ6.js new file mode 100644 index 0000000..916bf06 --- /dev/null +++ b/frontend/dist/assets/button-BHVKhtQ6.js @@ -0,0 +1 @@ +import{a as e,c as t,i as n,r,t as i}from"./dist-aE7UmubC.js";var a=t(e(),1),o=r();function s(e){var t,n,r=``;if(typeof e==`string`||typeof e==`number`)r+=e;else if(typeof e==`object`){if(Array.isArray(e)){var i=e.length;for(t=0;ttypeof e==`boolean`?`${e}`:e===0?`0`:e,u=c,d=(e,t)=>n=>{if(t?.variants==null)return u(e,n?.class,n?.className);let{variants:r,defaultVariants:i}=t,a=Object.keys(r).map(e=>{let t=n?.[e],a=i?.[e];if(t===null)return null;let o=l(t)||l(a);return r[e][o]}),o=n&&Object.entries(n).reduce((e,t)=>{let[n,r]=t;return r===void 0||(e[n]=r),e},{});return u(e,a,t?.compoundVariants?.reduce((e,t)=>{let{class:n,className:r,...a}=t;return Object.entries(a).every(e=>{let[t,n]=e;return Array.isArray(n)?n.includes({...i,...o}[t]):{...i,...o}[t]===n})?[...e,n,r]:e},[]),n?.class,n?.className)},f=Object.defineProperty,p=(e,t)=>f(e,`name`,{value:t,configurable:!0});function m(e,t){if(typeof e==`function`)return e(t);e!=null&&(e.current=t)}p(m,`setRef`);function h(...e){return t=>{let n=!1,r=e.map(e=>{let r=m(e,t);return!n&&typeof r==`function`&&(n=!0),r});if(n)return()=>{for(let t=0;t_(e,`name`,{value:t,configurable:!0});function y(e){let t=a.forwardRef((t,n)=>{let{children:r,...i}=t,o=null,s=!1,c=[];O(r)&&typeof M==`function`&&(r=M(r._payload)),a.Children.forEach(r,e=>{if(E(e)){s=!0;let t=e,n=`child`in t.props?t.props.child:t.props.children;O(n)&&typeof M==`function`&&(n=M(n._payload)),o=C(t,n),c.push(o?.props?.children)}else c.push(e)}),o?o=a.cloneElement(o,void 0,c):!s&&a.Children.count(r)===1&&a.isValidElement(r)&&(o=r);let l=o?T(o):void 0,u=g(n,l);if(!o){if(r||r===0)throw Error(s?j(e):A(e));return r}let d=w(i,o.props??{});return o.type!==a.Fragment&&(d.ref=n?u:l),a.cloneElement(o,d)});return t.displayName=`${e}.Slot`,t}v(y,`createSlot`);var b=y(`Slot`),x=Symbol.for(`radix.slottable`);function S(e){let t=v(e=>`child`in e?e.children(e.child):e.children,`Slottable`);return t.displayName=`${e}.Slottable`,t.__radixId=x,t}v(S,`createSlottable`);var C=v((e,t)=>{if(`child`in e.props){let t=e.props.child;return a.isValidElement(t)?a.cloneElement(t,void 0,e.props.children(t.props.children)):null}return a.isValidElement(t)?t:null},`getSlottableElementFromSlottable`);function w(e,t){let n={...t};for(let r in t){let i=e[r],a=t[r];/^on[A-Z]/.test(r)?i&&a?n[r]=(...e)=>{let t=a(...e);return i(...e),t}:i&&(n[r]=i):r===`style`?n[r]={...i,...a}:r===`className`&&(n[r]=[i,a].filter(Boolean).join(` `))}return{...e,...n}}v(w,`mergeProps`);function T(e){let t=Object.getOwnPropertyDescriptor(e.props,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}v(T,`getElementRef`);function E(e){return a.isValidElement(e)&&typeof e.type==`function`&&`__radixId`in e.type&&e.type.__radixId===x}v(E,`isSlottable`);var D=Symbol.for(`react.lazy`);function O(e){return typeof e==`object`&&!!e&&`$$typeof`in e&&e.$$typeof===D&&`_payload`in e&&k(e._payload)}v(O,`isLazyComponent`);function k(e){return typeof e==`object`&&!!e&&`then`in e}v(k,`isPromiseLike`);var A=v(e=>`${e} failed to slot onto its children. Expected a single React element child or \`Slottable\`.`,`createSlotError`),j=v(e=>`${e} failed to slot onto its \`Slottable\`. Expected \`Slottable\` to receive a single React element child.`,`createSlottableError`),M=a.use,N=n(),P=d(`group/button inline-flex shrink-0 items-center justify-center gap-2 rounded-xl border border-transparent font-semibold tracking-[0.005em] whitespace-nowrap transition-[background-color,border-color,color,box-shadow,filter] outline-none select-none focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-45 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,{variants:{variant:{default:`bg-gradient-to-b from-bernstein-hell to-bernstein text-primary-foreground shadow-[inset_0_1px_0_rgb(255_255_255/0.35),0_8px_22px_-10px_var(--bernstein)] hover:brightness-110`,outline:`border-white/12 bg-white/[0.04] text-foreground hover:border-white/20 hover:bg-white/[0.08]`,info:`border-cyan/35 bg-cyan/[0.08] text-cyan-text hover:bg-cyan/15`,gefahr:`border-rot/40 bg-rot/10 text-rot-text hover:bg-rot/[0.18]`,ghost:`text-text-2 hover:bg-white/[0.06] hover:text-foreground`,link:`px-0 text-cyan underline-offset-4 hover:underline`},size:{default:`h-11 px-5 text-[15px]`,sm:`h-10 px-4 text-[14px]`,lg:`h-12 px-6 text-[15.5px]`,icon:`size-11`,"icon-sm":`size-11`}},defaultVariants:{variant:`default`,size:`default`}});function F(e){let t=(0,o.c)(16),n,r,a,s,c;t[0]===e?(n=t[1],r=t[2],a=t[3],s=t[4],c=t[5]):({className:n,variant:a,size:s,asChild:c,...r}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=a,t[4]=s,t[5]=c);let l=a===void 0?`default`:a,u=s===void 0?`default`:s,d=c!==void 0&&c?b:`button`,f;t[6]!==n||t[7]!==u||t[8]!==l?(f=i(P({variant:l,size:u,className:n})),t[6]=n,t[7]=u,t[8]=l,t[9]=f):f=t[9];let p;return t[10]!==d||t[11]!==r||t[12]!==u||t[13]!==f||t[14]!==l?(p=(0,N.jsx)(d,{"data-slot":`button`,"data-variant":l,"data-size":u,className:f,...r}),t[10]=d,t[11]=r,t[12]=u,t[13]=f,t[14]=l,t[15]=p):p=t[15],p}export{y as n,g as r,F as t}; \ No newline at end of file diff --git a/frontend/dist/assets/button-DwYvdWVr.js b/frontend/dist/assets/button-DwYvdWVr.js deleted file mode 100644 index 126654e..0000000 --- a/frontend/dist/assets/button-DwYvdWVr.js +++ /dev/null @@ -1 +0,0 @@ -import{a as e,c as t,i as n,r,t as i}from"./dist-aE7UmubC.js";var a=t(e(),1),o=Object.defineProperty,s=(e,t)=>o(e,`name`,{value:t,configurable:!0});function c(e,t){if(typeof e==`function`)return e(t);e!=null&&(e.current=t)}s(c,`setRef`);function l(...e){return t=>{let n=!1,r=e.map(e=>{let r=c(e,t);return!n&&typeof r==`function`&&(n=!0),r});if(n)return()=>{for(let t=0;td(e,`name`,{value:t,configurable:!0});function p(e){let t=a.forwardRef((t,n)=>{let{children:r,...i}=t,o=null,s=!1,c=[];S(r)&&typeof E==`function`&&(r=E(r._payload)),a.Children.forEach(r,e=>{if(b(e)){s=!0;let t=e,n=`child`in t.props?t.props.child:t.props.children;S(n)&&typeof E==`function`&&(n=E(n._payload)),o=_(t,n),c.push(o?.props?.children)}else c.push(e)}),o?o=a.cloneElement(o,void 0,c):!s&&a.Children.count(r)===1&&a.isValidElement(r)&&(o=r);let l=o?y(o):void 0,d=u(n,l);if(!o){if(r||r===0)throw Error(s?T(e):w(e));return r}let f=v(i,o.props??{});return o.type!==a.Fragment&&(f.ref=n?d:l),a.cloneElement(o,f)});return t.displayName=`${e}.Slot`,t}f(p,`createSlot`);var m=p(`Slot`),h=Symbol.for(`radix.slottable`);function g(e){let t=f(e=>`child`in e?e.children(e.child):e.children,`Slottable`);return t.displayName=`${e}.Slottable`,t.__radixId=h,t}f(g,`createSlottable`);var _=f((e,t)=>{if(`child`in e.props){let t=e.props.child;return a.isValidElement(t)?a.cloneElement(t,void 0,e.props.children(t.props.children)):null}return a.isValidElement(t)?t:null},`getSlottableElementFromSlottable`);function v(e,t){let n={...t};for(let r in t){let i=e[r],a=t[r];/^on[A-Z]/.test(r)?i&&a?n[r]=(...e)=>{let t=a(...e);return i(...e),t}:i&&(n[r]=i):r===`style`?n[r]={...i,...a}:r===`className`&&(n[r]=[i,a].filter(Boolean).join(` `))}return{...e,...n}}f(v,`mergeProps`);function y(e){let t=Object.getOwnPropertyDescriptor(e.props,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}f(y,`getElementRef`);function b(e){return a.isValidElement(e)&&typeof e.type==`function`&&`__radixId`in e.type&&e.type.__radixId===h}f(b,`isSlottable`);var x=Symbol.for(`react.lazy`);function S(e){return typeof e==`object`&&!!e&&`$$typeof`in e&&e.$$typeof===x&&`_payload`in e&&C(e._payload)}f(S,`isLazyComponent`);function C(e){return typeof e==`object`&&!!e&&`then`in e}f(C,`isPromiseLike`);var w=f(e=>`${e} failed to slot onto its children. Expected a single React element child or \`Slottable\`.`,`createSlotError`),T=f(e=>`${e} failed to slot onto its \`Slottable\`. Expected \`Slottable\` to receive a single React element child.`,`createSlottableError`),E=a.use,D=r();function O(e){var t,n,r=``;if(typeof e==`string`||typeof e==`number`)r+=e;else if(typeof e==`object`){if(Array.isArray(e)){var i=e.length;for(t=0;ttypeof e==`boolean`?`${e}`:e===0?`0`:e,j=k,M=(e,t)=>n=>{if(t?.variants==null)return j(e,n?.class,n?.className);let{variants:r,defaultVariants:i}=t,a=Object.keys(r).map(e=>{let t=n?.[e],a=i?.[e];if(t===null)return null;let o=A(t)||A(a);return r[e][o]}),o=n&&Object.entries(n).reduce((e,t)=>{let[n,r]=t;return r===void 0||(e[n]=r),e},{});return j(e,a,t?.compoundVariants?.reduce((e,t)=>{let{class:n,className:r,...a}=t;return Object.entries(a).every(e=>{let[t,n]=e;return Array.isArray(n)?n.includes({...i,...o}[t]):{...i,...o}[t]===n})?[...e,n,r]:e},[]),n?.class,n?.className)},N=n(),P=M(`group/button inline-flex shrink-0 items-center justify-center gap-2 rounded-xl border border-transparent font-semibold tracking-[0.005em] whitespace-nowrap transition-[background-color,border-color,color,box-shadow,filter] outline-none select-none focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-45 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,{variants:{variant:{default:`bg-gradient-to-b from-bernstein-hell to-bernstein text-primary-foreground shadow-[inset_0_1px_0_rgb(255_255_255/0.35),0_8px_22px_-10px_var(--bernstein)] hover:brightness-110`,outline:`border-white/12 bg-white/[0.04] text-foreground hover:border-white/20 hover:bg-white/[0.08]`,info:`border-cyan/35 bg-cyan/[0.08] text-cyan-text hover:bg-cyan/15`,gefahr:`border-rot/40 bg-rot/10 text-rot-text hover:bg-rot/[0.18]`,ghost:`text-text-2 hover:bg-white/[0.06] hover:text-foreground`,link:`px-0 text-cyan underline-offset-4 hover:underline`},size:{default:`h-11 px-5 text-[15px]`,sm:`h-10 px-4 text-[14px]`,lg:`h-12 px-6 text-[15.5px]`,icon:`size-11`,"icon-sm":`size-11`}},defaultVariants:{variant:`default`,size:`default`}});function F(e){let t=(0,D.c)(16),n,r,a,o,s;t[0]===e?(n=t[1],r=t[2],a=t[3],o=t[4],s=t[5]):({className:n,variant:a,size:o,asChild:s,...r}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=a,t[4]=o,t[5]=s);let c=a===void 0?`default`:a,l=o===void 0?`default`:o,u=s!==void 0&&s?m:`button`,d;t[6]!==n||t[7]!==l||t[8]!==c?(d=i(P({variant:c,size:l,className:n})),t[6]=n,t[7]=l,t[8]=c,t[9]=d):d=t[9];let f;return t[10]!==u||t[11]!==r||t[12]!==l||t[13]!==d||t[14]!==c?(f=(0,N.jsx)(u,{"data-slot":`button`,"data-variant":c,"data-size":l,className:d,...r}),t[10]=u,t[11]=r,t[12]=l,t[13]=d,t[14]=c,t[15]=f):f=t[15],f}export{p as n,u as r,F as t}; \ No newline at end of file diff --git a/frontend/dist/assets/dialog-BEmPjtjX.js b/frontend/dist/assets/dialog-BEmPjtjX.js deleted file mode 100644 index 80cd645..0000000 --- a/frontend/dist/assets/dialog-BEmPjtjX.js +++ /dev/null @@ -1 +0,0 @@ -import{a as e,i as t,r as n,t as r}from"./dist-aE7UmubC.js";import{Q as i}from"./index-BUHDF9RN.js";import{t as a}from"./button-DwYvdWVr.js";import{a as o,i as s,n as c,o as l,r as u,s as d,t as f}from"./dist-oje4j9hw.js";var p=n();e();var m=t();function h(e){let t=(0,p.c)(4),n;t[0]===e?n=t[1]:({...n}=e,t[0]=e,t[1]=n);let r;return t[2]===n?r=t[3]:(r=(0,m.jsx)(f,{"data-slot":`dialog`,...n}),t[2]=n,t[3]=r),r}function g(e){let t=(0,p.c)(4),n;t[0]===e?n=t[1]:({...n}=e,t[0]=e,t[1]=n);let r;return t[2]===n?r=t[3]:(r=(0,m.jsx)(l,{"data-slot":`dialog-portal`,...n}),t[2]=n,t[3]=r),r}function _(e){let t=(0,p.c)(8),n,i;t[0]===e?(n=t[1],i=t[2]):({className:n,...i}=e,t[0]=e,t[1]=n,t[2]=i);let a;t[3]===n?a=t[4]:(a=r(`fixed inset-0 isolate z-50 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0`,n),t[3]=n,t[4]=a);let s;return t[5]!==i||t[6]!==a?(s=(0,m.jsx)(o,{"data-slot":`dialog-overlay`,className:a,...i}),t[5]=i,t[6]=a,t[7]=s):s=t[7],s}function v(e){let t=(0,p.c)(15),n,o,s,l;t[0]===e?(n=t[1],o=t[2],s=t[3],l=t[4]):({className:o,children:n,showCloseButton:l,...s}=e,t[0]=e,t[1]=n,t[2]=o,t[3]=s,t[4]=l);let d=l===void 0||l,f;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,m.jsx)(_,{}),t[5]=f):f=t[5];let h;t[6]===o?h=t[7]:(h=r(`fixed top-1/2 left-1/2 z-50 grid w-full max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-4 rounded-xl bg-popover p-4 text-sm text-popover-foreground ring-1 ring-foreground/10 duration-100 outline-none sm:max-w-sm data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95`,o),t[6]=o,t[7]=h);let v;t[8]===d?v=t[9]:(v=d&&(0,m.jsx)(c,{"data-slot":`dialog-close`,asChild:!0,children:(0,m.jsxs)(a,{variant:`ghost`,className:`absolute top-2 right-2`,size:`icon-sm`,children:[(0,m.jsx)(i,{}),(0,m.jsx)(`span`,{className:`sr-only`,children:`Schließen`})]})}),t[8]=d,t[9]=v);let y;return t[10]!==n||t[11]!==s||t[12]!==h||t[13]!==v?(y=(0,m.jsxs)(g,{children:[f,(0,m.jsxs)(u,{"data-slot":`dialog-content`,className:h,...s,children:[n,v]})]}),t[10]=n,t[11]=s,t[12]=h,t[13]=v,t[14]=y):y=t[14],y}function y(e){let t=(0,p.c)(8),n,i;t[0]===e?(n=t[1],i=t[2]):({className:n,...i}=e,t[0]=e,t[1]=n,t[2]=i);let a;t[3]===n?a=t[4]:(a=r(`flex flex-col gap-2`,n),t[3]=n,t[4]=a);let o;return t[5]!==i||t[6]!==a?(o=(0,m.jsx)(`div`,{"data-slot":`dialog-header`,className:a,...i}),t[5]=i,t[6]=a,t[7]=o):o=t[7],o}function b(e){let t=(0,p.c)(14),n,i,o,s;t[0]===e?(n=t[1],i=t[2],o=t[3],s=t[4]):({className:i,showCloseButton:s,children:n,...o}=e,t[0]=e,t[1]=n,t[2]=i,t[3]=o,t[4]=s);let l=s!==void 0&&s,u;t[5]===i?u=t[6]:(u=r(`-mx-4 -mb-4 flex flex-col-reverse gap-2 rounded-b-xl border-t bg-muted/50 p-4 sm:flex-row sm:justify-end`,i),t[5]=i,t[6]=u);let d;t[7]===l?d=t[8]:(d=l&&(0,m.jsx)(c,{asChild:!0,children:(0,m.jsx)(a,{variant:`outline`,children:`Schließen`})}),t[7]=l,t[8]=d);let f;return t[9]!==n||t[10]!==o||t[11]!==u||t[12]!==d?(f=(0,m.jsxs)(`div`,{"data-slot":`dialog-footer`,className:u,...o,children:[n,d]}),t[9]=n,t[10]=o,t[11]=u,t[12]=d,t[13]=f):f=t[13],f}function x(e){let t=(0,p.c)(8),n,i;t[0]===e?(n=t[1],i=t[2]):({className:n,...i}=e,t[0]=e,t[1]=n,t[2]=i);let a;t[3]===n?a=t[4]:(a=r(`font-heading text-base leading-none font-medium`,n),t[3]=n,t[4]=a);let o;return t[5]!==i||t[6]!==a?(o=(0,m.jsx)(d,{"data-slot":`dialog-title`,className:a,...i}),t[5]=i,t[6]=a,t[7]=o):o=t[7],o}function S(e){let t=(0,p.c)(8),n,i;t[0]===e?(n=t[1],i=t[2]):({className:n,...i}=e,t[0]=e,t[1]=n,t[2]=i);let a;t[3]===n?a=t[4]:(a=r(`text-sm text-muted-foreground *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground`,n),t[3]=n,t[4]=a);let o;return t[5]!==i||t[6]!==a?(o=(0,m.jsx)(s,{"data-slot":`dialog-description`,className:a,...i}),t[5]=i,t[6]=a,t[7]=o):o=t[7],o}export{y as a,b as i,v as n,x as o,S as r,h as t}; \ No newline at end of file diff --git a/frontend/dist/assets/dist-CakcBaML.js b/frontend/dist/assets/dist-CakcBaML.js new file mode 100644 index 0000000..b686727 --- /dev/null +++ b/frontend/dist/assets/dist-CakcBaML.js @@ -0,0 +1,41 @@ +import{a as e,c as t,i as n,n as r,o as i}from"./dist-aE7UmubC.js";import{n as a,r as o}from"./button-BHVKhtQ6.js";var s=i((t=>{var n=e();function r(e){var t=`https://react.dev/errors/`+e;if(1{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=s()})),l={name:`x`,size:24,node:[[`path`,{d:`M18 6 6 18`,key:`1bl5f8`}],[`path`,{d:`m6 6 12 12`,key:`d8bk6v`}]]};l.node;var u=r(l),d=t(e(),1),f=t(c(),1),p=n(),m=Object.defineProperty,h=(e,t)=>m(e,`name`,{value:t,configurable:!0}),g=[`a`,`button`,`div`,`form`,`h2`,`h3`,`img`,`input`,`label`,`li`,`nav`,`ol`,`p`,`select`,`span`,`svg`,`ul`].reduce((e,t)=>{let n=a(`Primitive.${t}`),r=d.forwardRef((e,r)=>{let{asChild:i,...a}=e,o=i?n:t;return typeof window<`u`&&(window[Symbol.for(`radix-ui`)]=!0),(0,p.jsx)(o,{...a,ref:r})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function _(e,t){e&&f.flushSync(()=>e.dispatchEvent(t))}h(_,`dispatchDiscreteCustomEvent`);var v=Object.defineProperty,y=(e,t)=>v(e,`name`,{value:t,configurable:!0});function b(e,t){let n=d.createContext(t);n.displayName=e+`Context`;let r=y(e=>{let{children:t,...r}=e,i=d.useMemo(()=>r,Object.values(r));return(0,p.jsx)(n.Provider,{value:i,children:t})},`Provider`);r.displayName=e+`Provider`;function i(r,i={}){let{optional:a=!1}=i,o=d.useContext(n);if(o)return o;if(t!==void 0)return t;if(!a)throw Error(`\`${r}\` must be used within \`${e}\``)}return y(i,`useContext`),[r,i]}y(b,`createContext`);function x(e,t=[]){let n=[];function r(t,r){let i=d.createContext(r);i.displayName=t+`Context`;let a=n.length;n=[...n,r];let o=y(t=>{let{scope:n,children:r,...o}=t,s=n?.[e]?.[a]||i,c=d.useMemo(()=>o,Object.values(o));return(0,p.jsx)(s.Provider,{value:c,children:r})},`Provider`);o.displayName=t+`Provider`;function s(n,o,s={}){let{optional:c=!1}=s,l=o?.[e]?.[a]||i,u=d.useContext(l);if(u)return u;if(r!==void 0)return r;if(!c)throw Error(`\`${n}\` must be used within \`${t}\``)}return y(s,`useContext`),[o,s]}y(r,`createContext`);let i=y(()=>{let t=n.map(e=>d.createContext(e));return y(function(n){let r=n?.[e]||t;return d.useMemo(()=>({[`__scope${e}`]:{...n,[e]:r}}),[n,r])},`useScope`)},`createScope`);return i.scopeName=e,[r,S(i,...t)]}y(x,`createContextScope`);function S(...e){let t=e[0];if(e.length===1)return t;let n=y(()=>{let n=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return y(function(e){let r=n.reduce((t,{useScope:n,scopeName:r})=>{let i=n(e)[`__scope${r}`];return{...t,...i}},{});return d.useMemo(()=>({[`__scope${t.scopeName}`]:r}),[r])},`useComposedScopes`)},`createScope`);return n.scopeName=t.scopeName,n}y(S,`composeContextScopes`);var C=Object.defineProperty,w=(e,t)=>C(e,`name`,{value:t,configurable:!0}),T=!!(typeof window<`u`&&window.document&&window.document.createElement);function E(e,t,{checkForDefaultPrevented:n=!0}={}){return w(function(r){if(e?.(r),n===!1||!r||!r.defaultPrevented)return t?.(r)},`handleEvent`)}w(E,`composeEventHandlers`);function ee(e){if(!T)throw Error(`Cannot access window outside of the DOM`);return e?.ownerDocument?.defaultView??window}w(ee,`getOwnerWindow`);function D(e){if(!T)throw Error(`Cannot access document outside of the DOM`);return e?.ownerDocument??document}w(D,`getOwnerDocument`);function O(e,t=!1){let{activeElement:n}=D(e);if(!n?.nodeName)return null;if(te(n)&&n.contentDocument)return O(n.contentDocument.body,t);if(t){let e=n.getAttribute(`aria-activedescendant`);if(e){let t=D(n).getElementById(e);if(t)return t}}return n}w(O,`getActiveElement`);function te(e){return e.tagName===`IFRAME`}w(te,`isFrame`);var k=globalThis?.document?d.useLayoutEffect:()=>{},ne=Object.defineProperty,re=(e,t)=>ne(e,`name`,{value:t,configurable:!0}),ie=d.useEffectEvent,ae=d.useInsertionEffect;function oe(e){if(typeof ie==`function`)return ie(e);let t=d.useRef(()=>{throw Error(`Cannot call an event handler while rendering.`)});return typeof ae==`function`?ae(()=>{t.current=e}):k(()=>{t.current=e}),d.useMemo(()=>((...e)=>t.current?.(...e)),[])}re(oe,`useEffectEvent`);var se=Object.defineProperty,A=(e,t)=>se(e,`name`,{value:t,configurable:!0}),ce=d.useInsertionEffect||k;function le({prop:e,defaultProp:t,onChange:n=A(()=>{},`onChange`),caller:r}){let[i,a,o]=ue({defaultProp:t,onChange:n}),s=e!==void 0;return[s?e:i,d.useCallback(t=>{if(s){let n=de(t)?t(e):t;n!==e&&o.current?.(n)}else a(t)},[s,e,a,o])]}A(le,`useControllableState`);function ue({defaultProp:e,onChange:t}){let[n,r]=d.useState(e),i=d.useRef(n),a=d.useRef(t);return ce(()=>{a.current=t},[t]),d.useEffect(()=>{i.current!==n&&(a.current?.(n),i.current=n)},[n,i]),[n,r,a]}A(ue,`useUncontrolledState`);function de(e){return typeof e==`function`}A(de,`isFunction`);var fe=Symbol(`RADIX:SYNC_STATE`);function pe(e,t,n,r){let{prop:i,defaultProp:a,onChange:o,caller:s}=t,c=i!==void 0,l=oe(o),u=[{...n,state:a}];r&&u.push(r);let[f,p]=d.useReducer((t,n)=>{if(n.type===fe)return{...t,state:n.state};let r=e(t,n);return c&&!Object.is(r.state,t.state)&&l(r.state),r},...u),m=f.state,h=d.useRef(m);d.useEffect(()=>{h.current!==m&&(h.current=m,c||l(m))},[m,h,c]);let g=d.useMemo(()=>i===void 0?f:{...f,state:i},[f,i]);return d.useEffect(()=>{c&&!Object.is(i,f.state)&&p({type:fe,state:i})},[i,f.state,c]),[g,p]}A(pe,`useControllableStateReducer`);var me=Object.defineProperty,j=(e,t)=>me(e,`name`,{value:t,configurable:!0});function he(e,t){return d.useReducer((e,n)=>t[e][n]??e,e)}j(he,`useStateMachine`);var ge=j(e=>{let{present:t,children:n}=e,r=_e(t),i=typeof n==`function`?n({present:r.isPresent}):d.Children.only(n),a=ye(r.ref,be(i));return typeof n==`function`||r.isPresent?d.cloneElement(i,{ref:a}):null},`Presence`);function _e(e){let[t,n]=d.useState(),r=d.useRef(null),i=d.useRef(e),a=d.useRef(`none`),o=d.useRef(void 0),[s,c]=he(e?`mounted`:`unmounted`,{mounted:{UNMOUNT:`unmounted`,ANIMATION_OUT:`unmountSuspended`},unmountSuspended:{MOUNT:`mounted`,ANIMATION_END:`unmounted`},unmounted:{MOUNT:`mounted`}});return d.useEffect(()=>{s===`mounted`?(a.current=o.current??M(r.current),o.current=void 0):a.current=`none`},[s]),k(()=>{let t=r.current,n=i.current;if(n!==e){let r=a.current,s=M(t);e?(o.current=s,c(`MOUNT`)):s===`none`||t?.display===`none`?c(`UNMOUNT`):c(n&&r!==s?`ANIMATION_OUT`:`UNMOUNT`),i.current=e}},[e,c]),k(()=>{if(t){let e,n=t.ownerDocument.defaultView??window,o=j(a=>{let o=M(r.current).includes(CSS.escape(a.animationName));if(a.target===t&&o&&(c(`ANIMATION_END`),!i.current)){let r=t.style.animationFillMode;t.style.animationFillMode=`forwards`,e=n.setTimeout(()=>{t.style.animationFillMode===`forwards`&&(t.style.animationFillMode=r)})}},`handleAnimationEnd`),s=j(e=>{e.target===t&&(a.current=M(r.current))},`handleAnimationStart`);return t.addEventListener(`animationstart`,s),t.addEventListener(`animationcancel`,o),t.addEventListener(`animationend`,o),()=>{n.clearTimeout(e),t.removeEventListener(`animationstart`,s),t.removeEventListener(`animationcancel`,o),t.removeEventListener(`animationend`,o)}}c(`ANIMATION_END`)},[t,c]),{isPresent:[`mounted`,`unmountSuspended`].includes(s),ref:d.useCallback(e=>{if(e){let t=getComputedStyle(e);r.current=t,o.current=M(t)}else r.current=null;n(e)},[])}}j(_e,`usePresence`);function ve(e,t){if(typeof e==`function`)return e(t);e!=null&&(e.current=t)}j(ve,`setRef`);function ye(...e){let t=d.useRef(e);return t.current=e,d.useCallback(e=>{let n=t.current,r=!1,i=n.map(t=>{let n=ve(t,e);return!r&&typeof n==`function`&&(r=!0),n});if(r)return()=>{for(let e=0;exe(e,`name`,{value:t,configurable:!0}),Ce=d.useId||(()=>void 0),we=0;function N(e){let[t,n]=d.useState(Ce());return k(()=>{e||n(e=>e??String(we++))},[e]),e||(t?`radix-${t}`:``)}Se(N,`useId`);var Te=Object.defineProperty,Ee=(e,t)=>Te(e,`name`,{value:t,configurable:!0});function P(e){let t=d.useRef(e);return d.useEffect(()=>{t.current=e}),d.useMemo(()=>((...e)=>t.current?.(...e)),[])}Ee(P,`useCallbackRef`);var De=Object.defineProperty,F=(e,t)=>De(e,`name`,{value:t,configurable:!0}),Oe=`dismissableLayer.update`,ke=`dismissableLayer.pointerDownOutside`,Ae=`dismissableLayer.focusOutside`,je,Me=d.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set,dismissableSurfaces:new Set}),Ne=d.forwardRef(F(function(e,t){let{disableOutsidePointerEvents:n=!1,deferPointerDownOutside:r=!1,onEscapeKeyDown:i,onPointerDownOutside:a,onFocusOutside:s,onInteractOutside:c,onDismiss:l,...u}=e,f=d.useContext(Me),[m,h]=d.useState(null),_=m?.ownerDocument??globalThis?.document,[,v]=d.useState({}),y=o(t,h),b=Array.from(f.layers),[x]=[...f.layersWithOutsidePointerEventsDisabled].slice(-1),S=x?b.indexOf(x):-1,C=m?b.indexOf(m):-1,w=f.layersWithOutsidePointerEventsDisabled.size>0,T=C>=S,ee=d.useRef(!1),D=Ie(e=>{a?.(e),c?.(e),e.defaultPrevented||l?.()},{ownerDocument:_,deferPointerDownOutside:r,isDeferredPointerDownOutsideRef:ee,dismissableSurfaces:f.dismissableSurfaces,shouldHandlePointerDownOutside:d.useCallback(e=>{if(!(e instanceof Node))return!1;let t=[...f.branches].some(t=>t.contains(e));return T&&!t},[f.branches,T])}),O=Le(e=>{if(r&&ee.current)return;let t=e.target;[...f.branches].some(e=>e.contains(t))||(s?.(e),c?.(e),e.defaultPrevented||l?.())},_),te=m?C===b.length-1:!1,k=P(e=>{e.key===`Escape`&&(i?.(e),!e.defaultPrevented&&l&&(e.preventDefault(),l()))});return d.useEffect(()=>{if(te)return _.addEventListener(`keydown`,k,{capture:!0}),()=>_.removeEventListener(`keydown`,k,{capture:!0})},[_,te,k]),d.useEffect(()=>{if(m)return n&&(f.layersWithOutsidePointerEventsDisabled.size===0&&(je=_.body.style.pointerEvents,_.body.style.pointerEvents=`none`),f.layersWithOutsidePointerEventsDisabled.add(m)),f.layers.add(m),Re(),()=>{n&&(f.layersWithOutsidePointerEventsDisabled.delete(m),f.layersWithOutsidePointerEventsDisabled.size===0&&(_.body.style.pointerEvents=je))}},[m,_,n,f]),d.useEffect(()=>()=>{m&&(f.layers.delete(m),f.layersWithOutsidePointerEventsDisabled.delete(m),Re())},[m,f]),d.useEffect(()=>{let e=F(()=>v({}),`handleUpdate`);return document.addEventListener(Oe,e),()=>document.removeEventListener(Oe,e)},[]),(0,p.jsx)(g.div,{...u,ref:y,style:{pointerEvents:w?T?`auto`:`none`:void 0,...e.style},onFocusCapture:E(e.onFocusCapture,O.onFocusCapture),onBlurCapture:E(e.onBlurCapture,O.onBlurCapture),onPointerDownCapture:E(e.onPointerDownCapture,D.onPointerDownCapture)})},`DismissableLayer`));function Pe(){let e=d.useContext(Me),[t,n]=d.useState(null);return d.useEffect(()=>{if(t)return e.dismissableSurfaces.add(t),()=>{e.dismissableSurfaces.delete(t)}},[t,e.dismissableSurfaces]),n}F(Pe,`useDismissableLayerSurface`);var Fe=F(()=>!0,`IS_TRUE`);function Ie(e,t){let{ownerDocument:n=globalThis?.document,deferPointerDownOutside:r=!1,isDeferredPointerDownOutsideRef:i,dismissableSurfaces:a,shouldHandlePointerDownOutside:o=Fe}=t,s=P(e),c=d.useRef(!1),l=d.useRef(!1),u=d.useRef(new Map),f=d.useRef(()=>{});return d.useEffect(()=>{function e(){l.current=!1,i.current=!1,u.current.clear()}F(e,`resetOutsideInteraction`);function t(){return Array.from(u.current.values()).some(Boolean)}F(t,`isOutsideInteractionIntercepted`);function d(e){if(!l.current)return;let t=e.target;t instanceof Node&&[...a].some(e=>e.contains(t))||u.current.set(e.type,!0),e.type===`click`&&window.setTimeout(()=>{l.current&&f.current()},0)}F(d,`handleInteractionCapture`);function p(e){l.current&&u.current.set(e.type,!1)}F(p,`handleInteractionBubble`);let m=F(a=>{if(a.target&&!c.current){let d=function(){n.removeEventListener(`click`,f.current);let r=t();e(),r||ze(ke,s,p,{discrete:!0})};if(F(d,`handleAndDispatchPointerDownOutsideEvent`),!o(a.target)){n.removeEventListener(`click`,f.current),e(),c.current=!1;return}let p={originalEvent:a};l.current=!0,i.current=r&&a.button===0,u.current.clear(),!r||a.button!==0?d():(n.removeEventListener(`click`,f.current),f.current=d,n.addEventListener(`click`,f.current,{once:!0}))}else n.removeEventListener(`click`,f.current),e();c.current=!1},`handlePointerDown`),h=[`pointerup`,`mousedown`,`mouseup`,`touchstart`,`touchend`,`click`];for(let e of h)n.addEventListener(e,d,!0),n.addEventListener(e,p);let g=window.setTimeout(()=>{n.addEventListener(`pointerdown`,m)},0);return()=>{window.clearTimeout(g),n.removeEventListener(`pointerdown`,m),n.removeEventListener(`click`,f.current);for(let e of h)n.removeEventListener(e,d,!0),n.removeEventListener(e,p)}},[n,s,r,i,a,o]),{onPointerDownCapture:F(()=>c.current=!0,`onPointerDownCapture`)}}F(Ie,`usePointerDownOutside`);function Le(e,t=globalThis?.document){let n=P(e),r=d.useRef(!1);return d.useEffect(()=>{let e=F(e=>{e.target&&!r.current&&ze(Ae,n,{originalEvent:e},{discrete:!1})},`handleFocus`);return t.addEventListener(`focusin`,e),()=>t.removeEventListener(`focusin`,e)},[t,n]),{onFocusCapture:F(()=>r.current=!0,`onFocusCapture`),onBlurCapture:F(()=>r.current=!1,`onBlurCapture`)}}F(Le,`useFocusOutside`);function Re(){let e=new CustomEvent(Oe);document.dispatchEvent(e)}F(Re,`dispatchUpdate`);function ze(e,t,n,{discrete:r}){let i=n.originalEvent.target,a=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&i.addEventListener(e,t,{once:!0}),r?_(i,a):i.dispatchEvent(a)}F(ze,`handleAndDispatchCustomEvent`);var Be=Object.defineProperty,I=(e,t)=>Be(e,`name`,{value:t,configurable:!0}),Ve=`focusScope.autoFocusOnMount`,He=`focusScope.autoFocusOnUnmount`,Ue={bubbles:!1,cancelable:!0},We=d.forwardRef(I(function(e,t){let{loop:n=!1,trapped:r=!1,onMountAutoFocus:i,onUnmountAutoFocus:a,...s}=e,[c,l]=d.useState(null),u=P(i),f=P(a),m=d.useRef(null),h=o(t,l),_=d.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;d.useEffect(()=>{if(r){let e=function(e){if(_.paused||!c)return;let t=e.target;c.contains(t)?m.current=t:L(m.current,{select:!0})},t=function(e){if(_.paused||!c)return;let t=e.relatedTarget;t!==null&&(c.contains(t)||L(m.current,{select:!0}))},n=function(e){if(document.activeElement===document.body)for(let t of e)t.removedNodes.length>0&&L(c)};I(e,`handleFocusIn`),I(t,`handleFocusOut`),I(n,`handleMutations`),document.addEventListener(`focusin`,e),document.addEventListener(`focusout`,t);let r=new MutationObserver(n);return c&&r.observe(c,{childList:!0,subtree:!0}),()=>{document.removeEventListener(`focusin`,e),document.removeEventListener(`focusout`,t),r.disconnect()}}},[r,c,_.paused]),d.useEffect(()=>{if(c){Ze.add(_);let e=document.activeElement;if(!c.contains(e)){let t=new CustomEvent(Ve,Ue);c.addEventListener(Ve,u),c.dispatchEvent(t),t.defaultPrevented||(Ge(et(qe(c)),{select:!0}),document.activeElement===e&&L(c))}return()=>{c.removeEventListener(Ve,u),setTimeout(()=>{let t=new CustomEvent(He,Ue);c.addEventListener(He,f),c.dispatchEvent(t),t.defaultPrevented||L(e??document.body,{select:!0}),c.removeEventListener(He,f),Ze.remove(_)},0)}}},[c,u,f,_]);let v=d.useCallback(e=>{if(!n&&!r||_.paused)return;let t=e.key===`Tab`&&!e.altKey&&!e.ctrlKey&&!e.metaKey,i=document.activeElement;if(t&&i){let t=e.currentTarget,[r,a]=Ke(t);r&&a?!e.shiftKey&&i===a?(e.preventDefault(),n&&L(r,{select:!0})):e.shiftKey&&i===r&&(e.preventDefault(),n&&L(a,{select:!0})):i===t&&e.preventDefault()}},[n,r,_.paused]);return(0,p.jsx)(g.div,{tabIndex:-1,...s,ref:h,onKeyDown:v})},`FocusScope`));function Ge(e,{select:t=!1}={}){let n=document.activeElement;for(let r of e)if(L(r,{select:t}),document.activeElement!==n)return}I(Ge,`focusFirst`);function Ke(e){let t=qe(e);return[Je(t,e),Je(t.reverse(),e)]}I(Ke,`getTabbableEdges`);function qe(e){let t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:I(e=>{let t=e.tagName===`INPUT`&&e.type===`hidden`;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP},`acceptNode`)});for(;n.nextNode();)t.push(n.currentNode);return t}I(qe,`getTabbableCandidates`);function Je(e,t){let n=typeof t.checkVisibility==`function`&&t.checkVisibility({checkVisibilityCSS:!0});for(let r of e)if(!(n?!r.checkVisibility({checkVisibilityCSS:!0}):Ye(r,{upTo:t})))return r}I(Je,`findVisible`);function Ye(e,{upTo:t}){if(getComputedStyle(e).visibility===`hidden`)return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display===`none`)return!0;e=e.parentElement}return!1}I(Ye,`isHidden`);function Xe(e){return e instanceof HTMLInputElement&&`select`in e}I(Xe,`isSelectableInput`);function L(e,{select:t=!1}={}){if(e&&e.focus){let n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&Xe(e)&&t&&e.select()}}I(L,`focus`);var Ze=Qe();function Qe(){let e=[];return{add(t){let n=e[0];t!==n&&n?.pause(),e=$e(e,t),e.unshift(t)},remove(t){e=$e(e,t),e[0]?.resume()}}}I(Qe,`createFocusScopesStack`);function $e(e,t){let n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}I($e,`arrayRemove`);function et(e){return e.filter(e=>e.tagName!==`A`)}I(et,`removeLinks`);var tt=Object.defineProperty,nt=d.forwardRef(((e,t)=>tt(e,`name`,{value:t,configurable:!0}))(function(e,t){let{container:n,...r}=e,[i,a]=d.useState(!1);k(()=>a(!0),[]);let o=n||i&&globalThis?.document?.body;return o?f.createPortal((0,p.jsx)(g.div,{...r,ref:t}),o):null},`Portal`)),rt=Object.defineProperty,it=(e,t)=>rt(e,`name`,{value:t,configurable:!0}),R=0,z=null;function at(e){return ot(),e.children}it(at,`FocusGuards`);function ot(){d.useEffect(()=>{z||={start:st(),end:st()};let{start:e,end:t}=z;return document.body.firstElementChild!==e&&document.body.insertAdjacentElement(`afterbegin`,e),document.body.lastElementChild!==t&&document.body.insertAdjacentElement(`beforeend`,t),R++,()=>{R===1&&(z?.start.remove(),z?.end.remove(),z=null),R=Math.max(0,R-1)}},[])}it(ot,`useFocusGuards`);function st(){let e=document.createElement(`span`);return e.setAttribute(`data-radix-focus-guard`,``),e.tabIndex=0,e.style.outline=`none`,e.style.opacity=`0`,e.style.position=`fixed`,e.style.pointerEvents=`none`,e}it(st,`createFocusGuard`);var B=function(){return B=Object.assign||function(e){for(var t,n=1,r=arguments.length;n`u`)return jt;var t=Nt(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},Ft=At(),W=`data-scroll-locked`,It=function(e,t,n,r){var i=e.left,a=e.top,o=e.right,s=e.gap;return n===void 0&&(n=`margin`),` + .${ut} { + overflow: hidden ${r}; + padding-right: ${s}px ${r}; + } + body[${W}] { + overflow: hidden ${r}; + overscroll-behavior: contain; + ${[t&&`position: relative ${r};`,n===`margin`&&` + padding-left: ${i}px; + padding-top: ${a}px; + padding-right: ${o}px; + margin-left:0; + margin-top:0; + margin-right: ${s}px ${r}; + `,n===`padding`&&`padding-right: ${s}px ${r};`].filter(Boolean).join(``)} + } + + .${V} { + right: ${s}px ${r}; + } + + .${H} { + margin-right: ${s}px ${r}; + } + + .${V} .${V} { + right: 0 ${r}; + } + + .${H} .${H} { + margin-right: 0 ${r}; + } + + body[${W}] { + ${dt}: ${s}px; + } +`},Lt=function(){var e=parseInt(document.body.getAttribute(`data-scroll-locked`)||`0`,10);return isFinite(e)?e:0},Rt=function(){d.useEffect(function(){return document.body.setAttribute(W,(Lt()+1).toString()),function(){var e=Lt()-1;e<=0?document.body.removeAttribute(W):document.body.setAttribute(W,e.toString())}},[])},zt=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,i=r===void 0?`margin`:r;Rt();var a=d.useMemo(function(){return Pt(i)},[i]);return d.createElement(Ft,{styles:It(a,!t,i,n?``:`!important`)})},Bt=!1;if(typeof window<`u`)try{var G=Object.defineProperty({},"passive",{get:function(){return Bt=!0,!0}});window.addEventListener(`test`,G,G),window.removeEventListener(`test`,G,G)}catch{Bt=!1}var K=Bt?{passive:!1}:!1,Vt=function(e){return e.tagName===`TEXTAREA`},Ht=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return n[t]!==`hidden`&&!(n.overflowY===n.overflowX&&!Vt(e)&&n[t]===`visible`)},Ut=function(e){return Ht(e,`overflowY`)},Wt=function(e){return Ht(e,`overflowX`)},Gt=function(e,t){var n=t.ownerDocument,r=t;do{if(typeof ShadowRoot<`u`&&r instanceof ShadowRoot&&(r=r.host),Jt(e,r)){var i=Yt(e,r);if(i[1]>i[2])return!0}r=r.parentNode}while(r&&r!==n.body);return!1},Kt=function(e){return[e.scrollTop,e.scrollHeight,e.clientHeight]},qt=function(e){return[e.scrollLeft,e.scrollWidth,e.clientWidth]},Jt=function(e,t){return e===`v`?Ut(t):Wt(t)},Yt=function(e,t){return e===`v`?Kt(t):qt(t)},Xt=function(e,t){return e===`h`&&t===`rtl`?-1:1},Zt=function(e,t,n,r,i){var a=Xt(e,window.getComputedStyle(t).direction),o=a*r,s=n.target,c=t.contains(s),l=!1,u=o>0,d=0,f=0;do{if(!s)break;var p=Yt(e,s),m=p[0],h=p[1]-p[2]-a*m;(m||h)&&Jt(e,s)&&(d+=h,f+=m);var g=s.parentNode;s=g&&g.nodeType===Node.DOCUMENT_FRAGMENT_NODE?g.host:g}while(!c&&s!==document.body||c&&(t.contains(s)||t===s));return(u&&(i&&Math.abs(d)<1||!i&&o>d)||!u&&(i&&Math.abs(f)<1||!i&&-o>f))&&(l=!0),l},q=function(e){return`changedTouches`in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},Qt=function(e){return[e.deltaX,e.deltaY]},$t=function(e){return e&&`current`in e?e.current:e},en=function(e,t){return e[0]===t[0]&&e[1]===t[1]},tn=function(e){return` + .block-interactivity-${e} {pointer-events: none;} + .allow-interactivity-${e} {pointer-events: all;} +`},nn=0,J=[];function rn(e){var t=d.useRef([]),n=d.useRef([0,0]),r=d.useRef(),i=d.useState(nn++)[0],a=d.useState(At)[0],o=d.useRef(e);d.useEffect(function(){o.current=e},[e]),d.useEffect(function(){if(e.inert){document.body.classList.add(`block-interactivity-${i}`);var t=lt([e.lockRef.current],(e.shards||[]).map($t),!0).filter(Boolean);return t.forEach(function(e){return e.classList.add(`allow-interactivity-${i}`)}),function(){document.body.classList.remove(`block-interactivity-${i}`),t.forEach(function(e){return e.classList.remove(`allow-interactivity-${i}`)})}}},[e.inert,e.lockRef.current,e.shards]);var s=d.useCallback(function(e,t){if(`touches`in e&&e.touches.length===2||e.type===`wheel`&&e.ctrlKey)return!o.current.allowPinchZoom;var i=q(e),a=n.current,s=`deltaX`in e?e.deltaX:a[0]-i[0],c=`deltaY`in e?e.deltaY:a[1]-i[1],l,u=e.target,d=Math.abs(s)>Math.abs(c)?`h`:`v`;if(`touches`in e&&d===`h`&&u.type===`range`)return!1;var f=window.getSelection(),p=f&&f.anchorNode;if(p&&(p===u||p.contains(u)))return!1;var m=Gt(d,u);if(!m)return!0;if(m?l=d:(l=d===`v`?`h`:`v`,m=Gt(d,u)),!m)return!1;if(!r.current&&`changedTouches`in e&&(s||c)&&(r.current=l),!l)return!0;var h=r.current||l;return Zt(h,t,e,h===`h`?s:c,!0)},[]),c=d.useCallback(function(e){var n=e;if(J.length&&J[J.length-1]===a){var r=`deltaY`in n?Qt(n):q(n),i=t.current.filter(function(e){return e.name===n.type&&(e.target===n.target||n.target===e.shadowParent)&&en(e.delta,r)})[0];if(i&&i.should){n.cancelable&&n.preventDefault();return}if(!i){var c=(o.current.shards||[]).map($t).filter(Boolean).filter(function(e){return e.contains(n.target)});(c.length>0?s(n,c[0]):!o.current.noIsolation)&&n.cancelable&&n.preventDefault()}}},[]),l=d.useCallback(function(e,n,r,i){var a={name:e,delta:n,target:r,should:i,shadowParent:an(r)};t.current.push(a),setTimeout(function(){t.current=t.current.filter(function(e){return e!==a})},1)},[]),u=d.useCallback(function(e){n.current=q(e),r.current=void 0},[]),f=d.useCallback(function(t){l(t.type,Qt(t),t.target,s(t,e.lockRef.current))},[]),p=d.useCallback(function(t){l(t.type,q(t),t.target,s(t,e.lockRef.current))},[]);d.useEffect(function(){return J.push(a),e.setCallbacks({onScrollCapture:f,onWheelCapture:f,onTouchMoveCapture:p}),document.addEventListener(`wheel`,c,K),document.addEventListener(`touchmove`,c,K),document.addEventListener(`touchstart`,u,K),function(){J=J.filter(function(e){return e!==a}),document.removeEventListener(`wheel`,c,K),document.removeEventListener(`touchmove`,c,K),document.removeEventListener(`touchstart`,u,K)}},[]);var m=e.removeScrollBar,h=e.inert;return d.createElement(d.Fragment,null,h?d.createElement(a,{styles:tn(i)}):null,m?d.createElement(zt,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function an(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}var on=xt(St,rn),sn=d.forwardRef(function(e,t){return d.createElement(U,B({},e,{ref:t,sideCar:on}))});sn.classNames=U.classNames;var cn=function(e){return typeof document>`u`?null:(Array.isArray(e)?e[0]:e).ownerDocument.body},Y=new WeakMap,X=new WeakMap,ln={},un=0,dn=function(e){return e&&(e.host||dn(e.parentNode))},fn=function(e,t){return t.map(function(t){if(e.contains(t))return t;var n=dn(t);return n&&e.contains(n)?n:(console.error(`aria-hidden`,t,`in not contained inside`,e,`. Doing nothing`),null)}).filter(function(e){return!!e})},pn=function(e,t,n,r){var i=fn(t,Array.isArray(e)?e:[e]);ln[n]||(ln[n]=new WeakMap);var a=ln[n],o=[],s=new Set,c=new Set(i),l=function(e){e&&!s.has(e)&&(s.add(e),l(e.parentNode))};i.forEach(l);var u=function(e){e&&!c.has(e)&&Array.prototype.forEach.call(e.children,function(e){if(s.has(e))u(e);else try{var t=e.getAttribute(r),i=t!==null&&t!==`false`,c=(Y.get(e)||0)+1,l=(a.get(e)||0)+1;Y.set(e,c),a.set(e,l),o.push(e),c===1&&i&&X.set(e,!0),l===1&&e.setAttribute(n,`true`),i||e.setAttribute(r,`true`)}catch(t){console.error(`aria-hidden: cannot operate on `,e,t)}})};return u(t),s.clear(),un++,function(){o.forEach(function(e){var t=Y.get(e)-1,i=a.get(e)-1;Y.set(e,t),a.set(e,i),t||(X.has(e)||e.removeAttribute(r),X.delete(e)),i||e.removeAttribute(n)}),un--,un||(Y=new WeakMap,Y=new WeakMap,X=new WeakMap,ln={})}},mn=function(e,t,n){n===void 0&&(n=`data-aria-hidden`);var r=Array.from(Array.isArray(e)?e:[e]),i=t||cn(e);return i?(r.push.apply(r,Array.from(i.querySelectorAll(`[aria-live], script`))),pn(r,i,n,`aria-hidden`)):function(){return null}},hn=Object.defineProperty,Z=(e,t)=>hn(e,`name`,{value:t,configurable:!0}),gn=`Dialog`,[_n,vn]=x(gn),[yn,Q]=_n(gn),bn=Z(e=>{let{__scopeDialog:t,children:n,open:r,defaultOpen:i,onOpenChange:a,modal:o=!0}=e,s=d.useRef(null),c=d.useRef(null),[l,u]=le({prop:r,defaultProp:i??!1,onChange:a,caller:gn}),[f,m]=d.useState(0),[h,g]=d.useState(0);return(0,p.jsx)(yn,{scope:t,triggerRef:s,contentRef:c,contentId:N(),titleId:N(),descriptionId:N(),titlePresent:f>0,descriptionPresent:h>0,setTitleCount:m,setDescriptionCount:g,open:l,onOpenChange:u,onOpenToggle:d.useCallback(()=>u(e=>!e),[u]),modal:o,children:n})},`Dialog`),xn=`DialogPortal`,[Sn,Cn]=_n(xn,{forceMount:void 0}),wn=Z(e=>{let{__scopeDialog:t,forceMount:n,children:r,container:i}=e,a=Q(xn,t);return(0,p.jsx)(Sn,{scope:t,forceMount:n,children:d.Children.map(r,e=>(0,p.jsx)(ge,{present:n||a.open,children:(0,p.jsx)(nt,{asChild:!0,container:i,children:e})}))})},`DialogPortal`),Tn=`DialogOverlay`,En=d.forwardRef(Z(function(e,t){let n=Cn(Tn,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,a=Q(Tn,e.__scopeDialog);return a.modal?(0,p.jsx)(ge,{present:r||a.open,children:(0,p.jsx)(On,{...i,ref:t})}):null},`DialogOverlay`)),Dn=a(`DialogOverlay.RemoveScroll`),On=d.forwardRef(Z(function(e,t){let{__scopeDialog:n,...r}=e,i=Q(Tn,n),a=Pe(),s=o(t,a);return(0,p.jsx)(sn,{as:Dn,allowPinchZoom:!0,shards:[i.contentRef],children:(0,p.jsx)(g.div,{"data-state":zn(i.open),...r,ref:s,style:{pointerEvents:`auto`,...r.style}})})},`DialogOverlayImpl`)),$=`DialogContent`,kn=d.forwardRef(Z(function(e,t){let n=Cn($,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,a=Q($,e.__scopeDialog);return(0,p.jsx)(ge,{present:r||a.open,children:a.modal?(0,p.jsx)(An,{...i,ref:t}):(0,p.jsx)(jn,{...i,ref:t})})},`DialogContent`)),An=d.forwardRef(Z(function(e,t){let n=Q($,e.__scopeDialog),r=d.useRef(null),i=o(t,n.contentRef,r);return d.useEffect(()=>{let e=r.current;if(e)return mn(e)},[]),(0,p.jsx)(Mn,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:n.open,onCloseAutoFocus:E(e.onCloseAutoFocus,e=>{e.preventDefault(),n.triggerRef.current?.focus()}),onPointerDownOutside:E(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,n=t.button===0&&t.ctrlKey===!0;(t.button===2||n)&&e.preventDefault()}),onFocusOutside:E(e.onFocusOutside,e=>e.preventDefault())})},`DialogContentModal`)),jn=d.forwardRef(Z(function(e,t){let n=Q($,e.__scopeDialog),r=d.useRef(!1),i=d.useRef(!1);return(0,p.jsx)(Mn,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(r.current||n.triggerRef.current?.focus(),t.preventDefault()),r.current=!1,i.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(r.current=!0,t.detail.originalEvent.type===`pointerdown`&&(i.current=!0));let a=t.target;n.triggerRef.current?.contains(a)&&t.preventDefault(),t.detail.originalEvent.type===`focusin`&&i.current&&t.preventDefault()}})},`DialogContentNonModal`)),Mn=d.forwardRef(Z(function(e,t){let{__scopeDialog:n,trapFocus:r,onOpenAutoFocus:i,onCloseAutoFocus:a,...o}=e,s=Q($,n);return ot(),(0,p.jsx)(p.Fragment,{children:(0,p.jsx)(We,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:i,onUnmountAutoFocus:a,children:(0,p.jsx)(Ne,{role:`dialog`,id:s.contentId,"aria-describedby":s.descriptionPresent?s.descriptionId:void 0,"aria-labelledby":s.titlePresent?s.titleId:void 0,"data-state":zn(s.open),...o,ref:t,deferPointerDownOutside:!0,onDismiss:()=>s.onOpenChange(!1)})})})},`DialogContentImpl`)),Nn=`DialogTitle`,Pn=d.forwardRef(Z(function(e,t){let{__scopeDialog:n,...r}=e,i=Q(Nn,n),{setTitleCount:a}=i;return k(()=>(a(e=>e+1),()=>a(e=>e-1)),[a]),(0,p.jsx)(g.h2,{id:i.titleId,...r,ref:t})},`DialogTitle`)),Fn=`DialogDescription`,In=d.forwardRef(Z(function(e,t){let{__scopeDialog:n,...r}=e,i=Q(Fn,n),{setDescriptionCount:a}=i;return k(()=>(a(e=>e+1),()=>a(e=>e-1)),[a]),(0,p.jsx)(g.p,{id:i.descriptionId,...r,ref:t})},`DialogDescription`)),Ln=`DialogClose`,Rn=d.forwardRef(Z(function(e,t){let{__scopeDialog:n,...r}=e,i=Q(Ln,n);return(0,p.jsx)(g.button,{type:`button`,...r,ref:t,onClick:E(e.onClick,()=>i.onOpenChange(!1))})},`DialogClose`));function zn(e){return e?`open`:`closed`}Z(zn,`getState`);export{En as a,u as c,In as i,c as l,Rn as n,wn as o,kn as r,Pn as s,bn as t}; \ No newline at end of file diff --git a/frontend/dist/assets/dist-oje4j9hw.js b/frontend/dist/assets/dist-oje4j9hw.js deleted file mode 100644 index af48961..0000000 --- a/frontend/dist/assets/dist-oje4j9hw.js +++ /dev/null @@ -1,41 +0,0 @@ -import{a as e,c as t,i as n}from"./dist-aE7UmubC.js";import{ct as r}from"./index-BUHDF9RN.js";import{n as i,r as a}from"./button-DwYvdWVr.js";var o=t(e(),1),s=t(r(),1),c=n(),l=Object.defineProperty,u=(e,t)=>l(e,`name`,{value:t,configurable:!0}),d=[`a`,`button`,`div`,`form`,`h2`,`h3`,`img`,`input`,`label`,`li`,`nav`,`ol`,`p`,`select`,`span`,`svg`,`ul`].reduce((e,t)=>{let n=i(`Primitive.${t}`),r=o.forwardRef((e,r)=>{let{asChild:i,...a}=e,o=i?n:t;return typeof window<`u`&&(window[Symbol.for(`radix-ui`)]=!0),(0,c.jsx)(o,{...a,ref:r})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function f(e,t){e&&s.flushSync(()=>e.dispatchEvent(t))}u(f,`dispatchDiscreteCustomEvent`);var p=Object.defineProperty,m=(e,t)=>p(e,`name`,{value:t,configurable:!0});function h(e,t){let n=o.createContext(t);n.displayName=e+`Context`;let r=m(e=>{let{children:t,...r}=e,i=o.useMemo(()=>r,Object.values(r));return(0,c.jsx)(n.Provider,{value:i,children:t})},`Provider`);r.displayName=e+`Provider`;function i(r,i={}){let{optional:a=!1}=i,s=o.useContext(n);if(s)return s;if(t!==void 0)return t;if(!a)throw Error(`\`${r}\` must be used within \`${e}\``)}return m(i,`useContext`),[r,i]}m(h,`createContext`);function g(e,t=[]){let n=[];function r(t,r){let i=o.createContext(r);i.displayName=t+`Context`;let a=n.length;n=[...n,r];let s=m(t=>{let{scope:n,children:r,...s}=t,l=n?.[e]?.[a]||i,u=o.useMemo(()=>s,Object.values(s));return(0,c.jsx)(l.Provider,{value:u,children:r})},`Provider`);s.displayName=t+`Provider`;function l(n,s,c={}){let{optional:l=!1}=c,u=s?.[e]?.[a]||i,d=o.useContext(u);if(d)return d;if(r!==void 0)return r;if(!l)throw Error(`\`${n}\` must be used within \`${t}\``)}return m(l,`useContext`),[s,l]}m(r,`createContext`);let i=m(()=>{let t=n.map(e=>o.createContext(e));return m(function(n){let r=n?.[e]||t;return o.useMemo(()=>({[`__scope${e}`]:{...n,[e]:r}}),[n,r])},`useScope`)},`createScope`);return i.scopeName=e,[r,_(i,...t)]}m(g,`createContextScope`);function _(...e){let t=e[0];if(e.length===1)return t;let n=m(()=>{let n=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return m(function(e){let r=n.reduce((t,{useScope:n,scopeName:r})=>{let i=n(e)[`__scope${r}`];return{...t,...i}},{});return o.useMemo(()=>({[`__scope${t.scopeName}`]:r}),[r])},`useComposedScopes`)},`createScope`);return n.scopeName=t.scopeName,n}m(_,`composeContextScopes`);var v=Object.defineProperty,y=(e,t)=>v(e,`name`,{value:t,configurable:!0}),b=!!(typeof window<`u`&&window.document&&window.document.createElement);function x(e,t,{checkForDefaultPrevented:n=!0}={}){return y(function(r){if(e?.(r),n===!1||!r||!r.defaultPrevented)return t?.(r)},`handleEvent`)}y(x,`composeEventHandlers`);function S(e){if(!b)throw Error(`Cannot access window outside of the DOM`);return e?.ownerDocument?.defaultView??window}y(S,`getOwnerWindow`);function C(e){if(!b)throw Error(`Cannot access document outside of the DOM`);return e?.ownerDocument??document}y(C,`getOwnerDocument`);function w(e,t=!1){let{activeElement:n}=C(e);if(!n?.nodeName)return null;if(ee(n)&&n.contentDocument)return w(n.contentDocument.body,t);if(t){let e=n.getAttribute(`aria-activedescendant`);if(e){let t=C(n).getElementById(e);if(t)return t}}return n}y(w,`getActiveElement`);function ee(e){return e.tagName===`IFRAME`}y(ee,`isFrame`);var T=globalThis?.document?o.useLayoutEffect:()=>{},te=Object.defineProperty,ne=(e,t)=>te(e,`name`,{value:t,configurable:!0}),E=o.useEffectEvent,D=o.useInsertionEffect;function O(e){if(typeof E==`function`)return E(e);let t=o.useRef(()=>{throw Error(`Cannot call an event handler while rendering.`)});return typeof D==`function`?D(()=>{t.current=e}):T(()=>{t.current=e}),o.useMemo(()=>((...e)=>t.current?.(...e)),[])}ne(O,`useEffectEvent`);var re=Object.defineProperty,k=(e,t)=>re(e,`name`,{value:t,configurable:!0}),ie=o.useInsertionEffect||T;function ae({prop:e,defaultProp:t,onChange:n=k(()=>{},`onChange`),caller:r}){let[i,a,s]=oe({defaultProp:t,onChange:n}),c=e!==void 0;return[c?e:i,o.useCallback(t=>{if(c){let n=se(t)?t(e):t;n!==e&&s.current?.(n)}else a(t)},[c,e,a,s])]}k(ae,`useControllableState`);function oe({defaultProp:e,onChange:t}){let[n,r]=o.useState(e),i=o.useRef(n),a=o.useRef(t);return ie(()=>{a.current=t},[t]),o.useEffect(()=>{i.current!==n&&(a.current?.(n),i.current=n)},[n,i]),[n,r,a]}k(oe,`useUncontrolledState`);function se(e){return typeof e==`function`}k(se,`isFunction`);var ce=Symbol(`RADIX:SYNC_STATE`);function le(e,t,n,r){let{prop:i,defaultProp:a,onChange:s,caller:c}=t,l=i!==void 0,u=O(s),d=[{...n,state:a}];r&&d.push(r);let[f,p]=o.useReducer((t,n)=>{if(n.type===ce)return{...t,state:n.state};let r=e(t,n);return l&&!Object.is(r.state,t.state)&&u(r.state),r},...d),m=f.state,h=o.useRef(m);o.useEffect(()=>{h.current!==m&&(h.current=m,l||u(m))},[m,h,l]);let g=o.useMemo(()=>i===void 0?f:{...f,state:i},[f,i]);return o.useEffect(()=>{l&&!Object.is(i,f.state)&&p({type:ce,state:i})},[i,f.state,l]),[g,p]}k(le,`useControllableStateReducer`);var ue=Object.defineProperty,A=(e,t)=>ue(e,`name`,{value:t,configurable:!0});function de(e,t){return o.useReducer((e,n)=>t[e][n]??e,e)}A(de,`useStateMachine`);var fe=A(e=>{let{present:t,children:n}=e,r=pe(t),i=typeof n==`function`?n({present:r.isPresent}):o.Children.only(n),a=he(r.ref,ge(i));return typeof n==`function`||r.isPresent?o.cloneElement(i,{ref:a}):null},`Presence`);function pe(e){let[t,n]=o.useState(),r=o.useRef(null),i=o.useRef(e),a=o.useRef(`none`),s=o.useRef(void 0),[c,l]=de(e?`mounted`:`unmounted`,{mounted:{UNMOUNT:`unmounted`,ANIMATION_OUT:`unmountSuspended`},unmountSuspended:{MOUNT:`mounted`,ANIMATION_END:`unmounted`},unmounted:{MOUNT:`mounted`}});return o.useEffect(()=>{c===`mounted`?(a.current=s.current??j(r.current),s.current=void 0):a.current=`none`},[c]),T(()=>{let t=r.current,n=i.current;if(n!==e){let r=a.current,o=j(t);e?(s.current=o,l(`MOUNT`)):o===`none`||t?.display===`none`?l(`UNMOUNT`):l(n&&r!==o?`ANIMATION_OUT`:`UNMOUNT`),i.current=e}},[e,l]),T(()=>{if(t){let e,n=t.ownerDocument.defaultView??window,o=A(a=>{let o=j(r.current).includes(CSS.escape(a.animationName));if(a.target===t&&o&&(l(`ANIMATION_END`),!i.current)){let r=t.style.animationFillMode;t.style.animationFillMode=`forwards`,e=n.setTimeout(()=>{t.style.animationFillMode===`forwards`&&(t.style.animationFillMode=r)})}},`handleAnimationEnd`),s=A(e=>{e.target===t&&(a.current=j(r.current))},`handleAnimationStart`);return t.addEventListener(`animationstart`,s),t.addEventListener(`animationcancel`,o),t.addEventListener(`animationend`,o),()=>{n.clearTimeout(e),t.removeEventListener(`animationstart`,s),t.removeEventListener(`animationcancel`,o),t.removeEventListener(`animationend`,o)}}l(`ANIMATION_END`)},[t,l]),{isPresent:[`mounted`,`unmountSuspended`].includes(c),ref:o.useCallback(e=>{if(e){let t=getComputedStyle(e);r.current=t,s.current=j(t)}else r.current=null;n(e)},[])}}A(pe,`usePresence`);function me(e,t){if(typeof e==`function`)return e(t);e!=null&&(e.current=t)}A(me,`setRef`);function he(...e){let t=o.useRef(e);return t.current=e,o.useCallback(e=>{let n=t.current,r=!1,i=n.map(t=>{let n=me(t,e);return!r&&typeof n==`function`&&(r=!0),n});if(r)return()=>{for(let e=0;e_e(e,`name`,{value:t,configurable:!0}),ye=o.useId||(()=>void 0),be=0;function M(e){let[t,n]=o.useState(ye());return T(()=>{e||n(e=>e??String(be++))},[e]),e||(t?`radix-${t}`:``)}ve(M,`useId`);var xe=Object.defineProperty,Se=(e,t)=>xe(e,`name`,{value:t,configurable:!0});function N(e){let t=o.useRef(e);return o.useEffect(()=>{t.current=e}),o.useMemo(()=>((...e)=>t.current?.(...e)),[])}Se(N,`useCallbackRef`);var Ce=Object.defineProperty,P=(e,t)=>Ce(e,`name`,{value:t,configurable:!0}),we=`dismissableLayer.update`,Te=`dismissableLayer.pointerDownOutside`,Ee=`dismissableLayer.focusOutside`,De,Oe=o.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set,dismissableSurfaces:new Set}),ke=o.forwardRef(P(function(e,t){let{disableOutsidePointerEvents:n=!1,deferPointerDownOutside:r=!1,onEscapeKeyDown:i,onPointerDownOutside:s,onFocusOutside:l,onInteractOutside:u,onDismiss:f,...p}=e,m=o.useContext(Oe),[h,g]=o.useState(null),_=h?.ownerDocument??globalThis?.document,[,v]=o.useState({}),y=a(t,g),b=Array.from(m.layers),[S]=[...m.layersWithOutsidePointerEventsDisabled].slice(-1),C=S?b.indexOf(S):-1,w=h?b.indexOf(h):-1,ee=m.layersWithOutsidePointerEventsDisabled.size>0,T=w>=C,te=o.useRef(!1),ne=Me(e=>{s?.(e),u?.(e),e.defaultPrevented||f?.()},{ownerDocument:_,deferPointerDownOutside:r,isDeferredPointerDownOutsideRef:te,dismissableSurfaces:m.dismissableSurfaces,shouldHandlePointerDownOutside:o.useCallback(e=>{if(!(e instanceof Node))return!1;let t=[...m.branches].some(t=>t.contains(e));return T&&!t},[m.branches,T])}),E=Ne(e=>{if(r&&te.current)return;let t=e.target;[...m.branches].some(e=>e.contains(t))||(l?.(e),u?.(e),e.defaultPrevented||f?.())},_),D=h?w===b.length-1:!1,O=N(e=>{e.key===`Escape`&&(i?.(e),!e.defaultPrevented&&f&&(e.preventDefault(),f()))});return o.useEffect(()=>{if(D)return _.addEventListener(`keydown`,O,{capture:!0}),()=>_.removeEventListener(`keydown`,O,{capture:!0})},[_,D,O]),o.useEffect(()=>{if(h)return n&&(m.layersWithOutsidePointerEventsDisabled.size===0&&(De=_.body.style.pointerEvents,_.body.style.pointerEvents=`none`),m.layersWithOutsidePointerEventsDisabled.add(h)),m.layers.add(h),Pe(),()=>{n&&(m.layersWithOutsidePointerEventsDisabled.delete(h),m.layersWithOutsidePointerEventsDisabled.size===0&&(_.body.style.pointerEvents=De))}},[h,_,n,m]),o.useEffect(()=>()=>{h&&(m.layers.delete(h),m.layersWithOutsidePointerEventsDisabled.delete(h),Pe())},[h,m]),o.useEffect(()=>{let e=P(()=>v({}),`handleUpdate`);return document.addEventListener(we,e),()=>document.removeEventListener(we,e)},[]),(0,c.jsx)(d.div,{...p,ref:y,style:{pointerEvents:ee?T?`auto`:`none`:void 0,...e.style},onFocusCapture:x(e.onFocusCapture,E.onFocusCapture),onBlurCapture:x(e.onBlurCapture,E.onBlurCapture),onPointerDownCapture:x(e.onPointerDownCapture,ne.onPointerDownCapture)})},`DismissableLayer`));function Ae(){let e=o.useContext(Oe),[t,n]=o.useState(null);return o.useEffect(()=>{if(t)return e.dismissableSurfaces.add(t),()=>{e.dismissableSurfaces.delete(t)}},[t,e.dismissableSurfaces]),n}P(Ae,`useDismissableLayerSurface`);var je=P(()=>!0,`IS_TRUE`);function Me(e,t){let{ownerDocument:n=globalThis?.document,deferPointerDownOutside:r=!1,isDeferredPointerDownOutsideRef:i,dismissableSurfaces:a,shouldHandlePointerDownOutside:s=je}=t,c=N(e),l=o.useRef(!1),u=o.useRef(!1),d=o.useRef(new Map),f=o.useRef(()=>{});return o.useEffect(()=>{function e(){u.current=!1,i.current=!1,d.current.clear()}P(e,`resetOutsideInteraction`);function t(){return Array.from(d.current.values()).some(Boolean)}P(t,`isOutsideInteractionIntercepted`);function o(e){if(!u.current)return;let t=e.target;t instanceof Node&&[...a].some(e=>e.contains(t))||d.current.set(e.type,!0),e.type===`click`&&window.setTimeout(()=>{u.current&&f.current()},0)}P(o,`handleInteractionCapture`);function p(e){u.current&&d.current.set(e.type,!1)}P(p,`handleInteractionBubble`);let m=P(a=>{if(a.target&&!l.current){let o=function(){n.removeEventListener(`click`,f.current);let r=t();e(),r||Fe(Te,c,p,{discrete:!0})};if(P(o,`handleAndDispatchPointerDownOutsideEvent`),!s(a.target)){n.removeEventListener(`click`,f.current),e(),l.current=!1;return}let p={originalEvent:a};u.current=!0,i.current=r&&a.button===0,d.current.clear(),!r||a.button!==0?o():(n.removeEventListener(`click`,f.current),f.current=o,n.addEventListener(`click`,f.current,{once:!0}))}else n.removeEventListener(`click`,f.current),e();l.current=!1},`handlePointerDown`),h=[`pointerup`,`mousedown`,`mouseup`,`touchstart`,`touchend`,`click`];for(let e of h)n.addEventListener(e,o,!0),n.addEventListener(e,p);let g=window.setTimeout(()=>{n.addEventListener(`pointerdown`,m)},0);return()=>{window.clearTimeout(g),n.removeEventListener(`pointerdown`,m),n.removeEventListener(`click`,f.current);for(let e of h)n.removeEventListener(e,o,!0),n.removeEventListener(e,p)}},[n,c,r,i,a,s]),{onPointerDownCapture:P(()=>l.current=!0,`onPointerDownCapture`)}}P(Me,`usePointerDownOutside`);function Ne(e,t=globalThis?.document){let n=N(e),r=o.useRef(!1);return o.useEffect(()=>{let e=P(e=>{e.target&&!r.current&&Fe(Ee,n,{originalEvent:e},{discrete:!1})},`handleFocus`);return t.addEventListener(`focusin`,e),()=>t.removeEventListener(`focusin`,e)},[t,n]),{onFocusCapture:P(()=>r.current=!0,`onFocusCapture`),onBlurCapture:P(()=>r.current=!1,`onBlurCapture`)}}P(Ne,`useFocusOutside`);function Pe(){let e=new CustomEvent(we);document.dispatchEvent(e)}P(Pe,`dispatchUpdate`);function Fe(e,t,n,{discrete:r}){let i=n.originalEvent.target,a=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&i.addEventListener(e,t,{once:!0}),r?f(i,a):i.dispatchEvent(a)}P(Fe,`handleAndDispatchCustomEvent`);var Ie=Object.defineProperty,F=(e,t)=>Ie(e,`name`,{value:t,configurable:!0}),Le=`focusScope.autoFocusOnMount`,Re=`focusScope.autoFocusOnUnmount`,ze={bubbles:!1,cancelable:!0},Be=o.forwardRef(F(function(e,t){let{loop:n=!1,trapped:r=!1,onMountAutoFocus:i,onUnmountAutoFocus:s,...l}=e,[u,f]=o.useState(null),p=N(i),m=N(s),h=o.useRef(null),g=a(t,f),_=o.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;o.useEffect(()=>{if(r){let e=function(e){if(_.paused||!u)return;let t=e.target;u.contains(t)?h.current=t:I(h.current,{select:!0})},t=function(e){if(_.paused||!u)return;let t=e.relatedTarget;t!==null&&(u.contains(t)||I(h.current,{select:!0}))},n=function(e){if(document.activeElement===document.body)for(let t of e)t.removedNodes.length>0&&I(u)};F(e,`handleFocusIn`),F(t,`handleFocusOut`),F(n,`handleMutations`),document.addEventListener(`focusin`,e),document.addEventListener(`focusout`,t);let r=new MutationObserver(n);return u&&r.observe(u,{childList:!0,subtree:!0}),()=>{document.removeEventListener(`focusin`,e),document.removeEventListener(`focusout`,t),r.disconnect()}}},[r,u,_.paused]),o.useEffect(()=>{if(u){qe.add(_);let e=document.activeElement;if(!u.contains(e)){let t=new CustomEvent(Le,ze);u.addEventListener(Le,p),u.dispatchEvent(t),t.defaultPrevented||(Ve(Xe(Ue(u)),{select:!0}),document.activeElement===e&&I(u))}return()=>{u.removeEventListener(Le,p),setTimeout(()=>{let t=new CustomEvent(Re,ze);u.addEventListener(Re,m),u.dispatchEvent(t),t.defaultPrevented||I(e??document.body,{select:!0}),u.removeEventListener(Re,m),qe.remove(_)},0)}}},[u,p,m,_]);let v=o.useCallback(e=>{if(!n&&!r||_.paused)return;let t=e.key===`Tab`&&!e.altKey&&!e.ctrlKey&&!e.metaKey,i=document.activeElement;if(t&&i){let t=e.currentTarget,[r,a]=He(t);r&&a?!e.shiftKey&&i===a?(e.preventDefault(),n&&I(r,{select:!0})):e.shiftKey&&i===r&&(e.preventDefault(),n&&I(a,{select:!0})):i===t&&e.preventDefault()}},[n,r,_.paused]);return(0,c.jsx)(d.div,{tabIndex:-1,...l,ref:g,onKeyDown:v})},`FocusScope`));function Ve(e,{select:t=!1}={}){let n=document.activeElement;for(let r of e)if(I(r,{select:t}),document.activeElement!==n)return}F(Ve,`focusFirst`);function He(e){let t=Ue(e);return[We(t,e),We(t.reverse(),e)]}F(He,`getTabbableEdges`);function Ue(e){let t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:F(e=>{let t=e.tagName===`INPUT`&&e.type===`hidden`;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP},`acceptNode`)});for(;n.nextNode();)t.push(n.currentNode);return t}F(Ue,`getTabbableCandidates`);function We(e,t){let n=typeof t.checkVisibility==`function`&&t.checkVisibility({checkVisibilityCSS:!0});for(let r of e)if(!(n?!r.checkVisibility({checkVisibilityCSS:!0}):Ge(r,{upTo:t})))return r}F(We,`findVisible`);function Ge(e,{upTo:t}){if(getComputedStyle(e).visibility===`hidden`)return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display===`none`)return!0;e=e.parentElement}return!1}F(Ge,`isHidden`);function Ke(e){return e instanceof HTMLInputElement&&`select`in e}F(Ke,`isSelectableInput`);function I(e,{select:t=!1}={}){if(e&&e.focus){let n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&Ke(e)&&t&&e.select()}}F(I,`focus`);var qe=Je();function Je(){let e=[];return{add(t){let n=e[0];t!==n&&n?.pause(),e=Ye(e,t),e.unshift(t)},remove(t){e=Ye(e,t),e[0]?.resume()}}}F(Je,`createFocusScopesStack`);function Ye(e,t){let n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}F(Ye,`arrayRemove`);function Xe(e){return e.filter(e=>e.tagName!==`A`)}F(Xe,`removeLinks`);var Ze=Object.defineProperty,Qe=o.forwardRef(((e,t)=>Ze(e,`name`,{value:t,configurable:!0}))(function(e,t){let{container:n,...r}=e,[i,a]=o.useState(!1);T(()=>a(!0),[]);let l=n||i&&globalThis?.document?.body;return l?s.createPortal((0,c.jsx)(d.div,{...r,ref:t}),l):null},`Portal`)),$e=Object.defineProperty,et=(e,t)=>$e(e,`name`,{value:t,configurable:!0}),L=0,R=null;function tt(e){return nt(),e.children}et(tt,`FocusGuards`);function nt(){o.useEffect(()=>{R||={start:rt(),end:rt()};let{start:e,end:t}=R;return document.body.firstElementChild!==e&&document.body.insertAdjacentElement(`afterbegin`,e),document.body.lastElementChild!==t&&document.body.insertAdjacentElement(`beforeend`,t),L++,()=>{L===1&&(R?.start.remove(),R?.end.remove(),R=null),L=Math.max(0,L-1)}},[])}et(nt,`useFocusGuards`);function rt(){let e=document.createElement(`span`);return e.setAttribute(`data-radix-focus-guard`,``),e.tabIndex=0,e.style.outline=`none`,e.style.opacity=`0`,e.style.position=`fixed`,e.style.pointerEvents=`none`,e}et(rt,`createFocusGuard`);var z=function(){return z=Object.assign||function(e){for(var t,n=1,r=arguments.length;n`u`)return Dt;var t=kt(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},jt=Et(),U=`data-scroll-locked`,Mt=function(e,t,n,r){var i=e.left,a=e.top,o=e.right,s=e.gap;return n===void 0&&(n=`margin`),` - .${ot} { - overflow: hidden ${r}; - padding-right: ${s}px ${r}; - } - body[${U}] { - overflow: hidden ${r}; - overscroll-behavior: contain; - ${[t&&`position: relative ${r};`,n===`margin`&&` - padding-left: ${i}px; - padding-top: ${a}px; - padding-right: ${o}px; - margin-left:0; - margin-top:0; - margin-right: ${s}px ${r}; - `,n===`padding`&&`padding-right: ${s}px ${r};`].filter(Boolean).join(``)} - } - - .${B} { - right: ${s}px ${r}; - } - - .${V} { - margin-right: ${s}px ${r}; - } - - .${B} .${B} { - right: 0 ${r}; - } - - .${V} .${V} { - margin-right: 0 ${r}; - } - - body[${U}] { - ${st}: ${s}px; - } -`},Nt=function(){var e=parseInt(document.body.getAttribute(`data-scroll-locked`)||`0`,10);return isFinite(e)?e:0},Pt=function(){o.useEffect(function(){return document.body.setAttribute(U,(Nt()+1).toString()),function(){var e=Nt()-1;e<=0?document.body.removeAttribute(U):document.body.setAttribute(U,e.toString())}},[])},Ft=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,i=r===void 0?`margin`:r;Pt();var a=o.useMemo(function(){return At(i)},[i]);return o.createElement(jt,{styles:Mt(a,!t,i,n?``:`!important`)})},It=!1;if(typeof window<`u`)try{var W=Object.defineProperty({},"passive",{get:function(){return It=!0,!0}});window.addEventListener(`test`,W,W),window.removeEventListener(`test`,W,W)}catch{It=!1}var G=It?{passive:!1}:!1,Lt=function(e){return e.tagName===`TEXTAREA`},Rt=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return n[t]!==`hidden`&&!(n.overflowY===n.overflowX&&!Lt(e)&&n[t]===`visible`)},zt=function(e){return Rt(e,`overflowY`)},Bt=function(e){return Rt(e,`overflowX`)},Vt=function(e,t){var n=t.ownerDocument,r=t;do{if(typeof ShadowRoot<`u`&&r instanceof ShadowRoot&&(r=r.host),Wt(e,r)){var i=Gt(e,r);if(i[1]>i[2])return!0}r=r.parentNode}while(r&&r!==n.body);return!1},Ht=function(e){return[e.scrollTop,e.scrollHeight,e.clientHeight]},Ut=function(e){return[e.scrollLeft,e.scrollWidth,e.clientWidth]},Wt=function(e,t){return e===`v`?zt(t):Bt(t)},Gt=function(e,t){return e===`v`?Ht(t):Ut(t)},Kt=function(e,t){return e===`h`&&t===`rtl`?-1:1},qt=function(e,t,n,r,i){var a=Kt(e,window.getComputedStyle(t).direction),o=a*r,s=n.target,c=t.contains(s),l=!1,u=o>0,d=0,f=0;do{if(!s)break;var p=Gt(e,s),m=p[0],h=p[1]-p[2]-a*m;(m||h)&&Wt(e,s)&&(d+=h,f+=m);var g=s.parentNode;s=g&&g.nodeType===Node.DOCUMENT_FRAGMENT_NODE?g.host:g}while(!c&&s!==document.body||c&&(t.contains(s)||t===s));return(u&&(i&&Math.abs(d)<1||!i&&o>d)||!u&&(i&&Math.abs(f)<1||!i&&-o>f))&&(l=!0),l},K=function(e){return`changedTouches`in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},Jt=function(e){return[e.deltaX,e.deltaY]},Yt=function(e){return e&&`current`in e?e.current:e},Xt=function(e,t){return e[0]===t[0]&&e[1]===t[1]},Zt=function(e){return` - .block-interactivity-${e} {pointer-events: none;} - .allow-interactivity-${e} {pointer-events: all;} -`},Qt=0,q=[];function $t(e){var t=o.useRef([]),n=o.useRef([0,0]),r=o.useRef(),i=o.useState(Qt++)[0],a=o.useState(Et)[0],s=o.useRef(e);o.useEffect(function(){s.current=e},[e]),o.useEffect(function(){if(e.inert){document.body.classList.add(`block-interactivity-${i}`);var t=at([e.lockRef.current],(e.shards||[]).map(Yt),!0).filter(Boolean);return t.forEach(function(e){return e.classList.add(`allow-interactivity-${i}`)}),function(){document.body.classList.remove(`block-interactivity-${i}`),t.forEach(function(e){return e.classList.remove(`allow-interactivity-${i}`)})}}},[e.inert,e.lockRef.current,e.shards]);var c=o.useCallback(function(e,t){if(`touches`in e&&e.touches.length===2||e.type===`wheel`&&e.ctrlKey)return!s.current.allowPinchZoom;var i=K(e),a=n.current,o=`deltaX`in e?e.deltaX:a[0]-i[0],c=`deltaY`in e?e.deltaY:a[1]-i[1],l,u=e.target,d=Math.abs(o)>Math.abs(c)?`h`:`v`;if(`touches`in e&&d===`h`&&u.type===`range`)return!1;var f=window.getSelection(),p=f&&f.anchorNode;if(p&&(p===u||p.contains(u)))return!1;var m=Vt(d,u);if(!m)return!0;if(m?l=d:(l=d===`v`?`h`:`v`,m=Vt(d,u)),!m)return!1;if(!r.current&&`changedTouches`in e&&(o||c)&&(r.current=l),!l)return!0;var h=r.current||l;return qt(h,t,e,h===`h`?o:c,!0)},[]),l=o.useCallback(function(e){var n=e;if(q.length&&q[q.length-1]===a){var r=`deltaY`in n?Jt(n):K(n),i=t.current.filter(function(e){return e.name===n.type&&(e.target===n.target||n.target===e.shadowParent)&&Xt(e.delta,r)})[0];if(i&&i.should){n.cancelable&&n.preventDefault();return}if(!i){var o=(s.current.shards||[]).map(Yt).filter(Boolean).filter(function(e){return e.contains(n.target)});(o.length>0?c(n,o[0]):!s.current.noIsolation)&&n.cancelable&&n.preventDefault()}}},[]),u=o.useCallback(function(e,n,r,i){var a={name:e,delta:n,target:r,should:i,shadowParent:en(r)};t.current.push(a),setTimeout(function(){t.current=t.current.filter(function(e){return e!==a})},1)},[]),d=o.useCallback(function(e){n.current=K(e),r.current=void 0},[]),f=o.useCallback(function(t){u(t.type,Jt(t),t.target,c(t,e.lockRef.current))},[]),p=o.useCallback(function(t){u(t.type,K(t),t.target,c(t,e.lockRef.current))},[]);o.useEffect(function(){return q.push(a),e.setCallbacks({onScrollCapture:f,onWheelCapture:f,onTouchMoveCapture:p}),document.addEventListener(`wheel`,l,G),document.addEventListener(`touchmove`,l,G),document.addEventListener(`touchstart`,d,G),function(){q=q.filter(function(e){return e!==a}),document.removeEventListener(`wheel`,l,G),document.removeEventListener(`touchmove`,l,G),document.removeEventListener(`touchstart`,d,G)}},[]);var m=e.removeScrollBar,h=e.inert;return o.createElement(o.Fragment,null,h?o.createElement(a,{styles:Zt(i)}):null,m?o.createElement(Ft,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function en(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}var tn=_t(vt,$t),nn=o.forwardRef(function(e,t){return o.createElement(H,z({},e,{ref:t,sideCar:tn}))});nn.classNames=H.classNames;var rn=function(e){return typeof document>`u`?null:(Array.isArray(e)?e[0]:e).ownerDocument.body},J=new WeakMap,Y=new WeakMap,X={},an=0,on=function(e){return e&&(e.host||on(e.parentNode))},sn=function(e,t){return t.map(function(t){if(e.contains(t))return t;var n=on(t);return n&&e.contains(n)?n:(console.error(`aria-hidden`,t,`in not contained inside`,e,`. Doing nothing`),null)}).filter(function(e){return!!e})},cn=function(e,t,n,r){var i=sn(t,Array.isArray(e)?e:[e]);X[n]||(X[n]=new WeakMap);var a=X[n],o=[],s=new Set,c=new Set(i),l=function(e){e&&!s.has(e)&&(s.add(e),l(e.parentNode))};i.forEach(l);var u=function(e){e&&!c.has(e)&&Array.prototype.forEach.call(e.children,function(e){if(s.has(e))u(e);else try{var t=e.getAttribute(r),i=t!==null&&t!==`false`,c=(J.get(e)||0)+1,l=(a.get(e)||0)+1;J.set(e,c),a.set(e,l),o.push(e),c===1&&i&&Y.set(e,!0),l===1&&e.setAttribute(n,`true`),i||e.setAttribute(r,`true`)}catch(t){console.error(`aria-hidden: cannot operate on `,e,t)}})};return u(t),s.clear(),an++,function(){o.forEach(function(e){var t=J.get(e)-1,i=a.get(e)-1;J.set(e,t),a.set(e,i),t||(Y.has(e)||e.removeAttribute(r),Y.delete(e)),i||e.removeAttribute(n)}),an--,an||(J=new WeakMap,J=new WeakMap,Y=new WeakMap,X={})}},ln=function(e,t,n){n===void 0&&(n=`data-aria-hidden`);var r=Array.from(Array.isArray(e)?e:[e]),i=t||rn(e);return i?(r.push.apply(r,Array.from(i.querySelectorAll(`[aria-live], script`))),cn(r,i,n,`aria-hidden`)):function(){return null}},un=Object.defineProperty,Z=(e,t)=>un(e,`name`,{value:t,configurable:!0}),dn=`Dialog`,[fn,pn]=g(dn),[mn,Q]=fn(dn),hn=Z(e=>{let{__scopeDialog:t,children:n,open:r,defaultOpen:i,onOpenChange:a,modal:s=!0}=e,l=o.useRef(null),u=o.useRef(null),[d,f]=ae({prop:r,defaultProp:i??!1,onChange:a,caller:dn}),[p,m]=o.useState(0),[h,g]=o.useState(0);return(0,c.jsx)(mn,{scope:t,triggerRef:l,contentRef:u,contentId:M(),titleId:M(),descriptionId:M(),titlePresent:p>0,descriptionPresent:h>0,setTitleCount:m,setDescriptionCount:g,open:d,onOpenChange:f,onOpenToggle:o.useCallback(()=>f(e=>!e),[f]),modal:s,children:n})},`Dialog`),gn=`DialogPortal`,[_n,vn]=fn(gn,{forceMount:void 0}),yn=Z(e=>{let{__scopeDialog:t,forceMount:n,children:r,container:i}=e,a=Q(gn,t);return(0,c.jsx)(_n,{scope:t,forceMount:n,children:o.Children.map(r,e=>(0,c.jsx)(fe,{present:n||a.open,children:(0,c.jsx)(Qe,{asChild:!0,container:i,children:e})}))})},`DialogPortal`),bn=`DialogOverlay`,xn=o.forwardRef(Z(function(e,t){let n=vn(bn,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,a=Q(bn,e.__scopeDialog);return a.modal?(0,c.jsx)(fe,{present:r||a.open,children:(0,c.jsx)(Cn,{...i,ref:t})}):null},`DialogOverlay`)),Sn=i(`DialogOverlay.RemoveScroll`),Cn=o.forwardRef(Z(function(e,t){let{__scopeDialog:n,...r}=e,i=Q(bn,n),o=Ae(),s=a(t,o);return(0,c.jsx)(nn,{as:Sn,allowPinchZoom:!0,shards:[i.contentRef],children:(0,c.jsx)(d.div,{"data-state":Pn(i.open),...r,ref:s,style:{pointerEvents:`auto`,...r.style}})})},`DialogOverlayImpl`)),$=`DialogContent`,wn=o.forwardRef(Z(function(e,t){let n=vn($,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,a=Q($,e.__scopeDialog);return(0,c.jsx)(fe,{present:r||a.open,children:a.modal?(0,c.jsx)(Tn,{...i,ref:t}):(0,c.jsx)(En,{...i,ref:t})})},`DialogContent`)),Tn=o.forwardRef(Z(function(e,t){let n=Q($,e.__scopeDialog),r=o.useRef(null),i=a(t,n.contentRef,r);return o.useEffect(()=>{let e=r.current;if(e)return ln(e)},[]),(0,c.jsx)(Dn,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:n.open,onCloseAutoFocus:x(e.onCloseAutoFocus,e=>{e.preventDefault(),n.triggerRef.current?.focus()}),onPointerDownOutside:x(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,n=t.button===0&&t.ctrlKey===!0;(t.button===2||n)&&e.preventDefault()}),onFocusOutside:x(e.onFocusOutside,e=>e.preventDefault())})},`DialogContentModal`)),En=o.forwardRef(Z(function(e,t){let n=Q($,e.__scopeDialog),r=o.useRef(!1),i=o.useRef(!1);return(0,c.jsx)(Dn,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(r.current||n.triggerRef.current?.focus(),t.preventDefault()),r.current=!1,i.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(r.current=!0,t.detail.originalEvent.type===`pointerdown`&&(i.current=!0));let a=t.target;n.triggerRef.current?.contains(a)&&t.preventDefault(),t.detail.originalEvent.type===`focusin`&&i.current&&t.preventDefault()}})},`DialogContentNonModal`)),Dn=o.forwardRef(Z(function(e,t){let{__scopeDialog:n,trapFocus:r,onOpenAutoFocus:i,onCloseAutoFocus:a,...o}=e,s=Q($,n);return nt(),(0,c.jsx)(c.Fragment,{children:(0,c.jsx)(Be,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:i,onUnmountAutoFocus:a,children:(0,c.jsx)(ke,{role:`dialog`,id:s.contentId,"aria-describedby":s.descriptionPresent?s.descriptionId:void 0,"aria-labelledby":s.titlePresent?s.titleId:void 0,"data-state":Pn(s.open),...o,ref:t,deferPointerDownOutside:!0,onDismiss:()=>s.onOpenChange(!1)})})})},`DialogContentImpl`)),On=`DialogTitle`,kn=o.forwardRef(Z(function(e,t){let{__scopeDialog:n,...r}=e,i=Q(On,n),{setTitleCount:a}=i;return T(()=>(a(e=>e+1),()=>a(e=>e-1)),[a]),(0,c.jsx)(d.h2,{id:i.titleId,...r,ref:t})},`DialogTitle`)),An=`DialogDescription`,jn=o.forwardRef(Z(function(e,t){let{__scopeDialog:n,...r}=e,i=Q(An,n),{setDescriptionCount:a}=i;return T(()=>(a(e=>e+1),()=>a(e=>e-1)),[a]),(0,c.jsx)(d.p,{id:i.descriptionId,...r,ref:t})},`DialogDescription`)),Mn=`DialogClose`,Nn=o.forwardRef(Z(function(e,t){let{__scopeDialog:n,...r}=e,i=Q(Mn,n);return(0,c.jsx)(d.button,{type:`button`,...r,ref:t,onClick:x(e.onClick,()=>i.onOpenChange(!1))})},`DialogClose`));function Pn(e){return e?`open`:`closed`}Z(Pn,`getState`);export{xn as a,jn as i,Nn as n,yn as o,wn as r,kn as s,hn as t}; \ No newline at end of file diff --git a/frontend/dist/assets/index-BUHDF9RN.js b/frontend/dist/assets/index-BUHDF9RN.js deleted file mode 100644 index 0d5dbc8..0000000 --- a/frontend/dist/assets/index-BUHDF9RN.js +++ /dev/null @@ -1,11 +0,0 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/MenueSchublade-BKl-sMAH.js","assets/dist-aE7UmubC.js","assets/sheet-Dx0TG2uq.js","assets/button-DwYvdWVr.js","assets/dist-oje4j9hw.js","assets/Befehlssuche-BiblzWWg.js","assets/abfragen-DKcWnZ8a.js","assets/dialog-BEmPjtjX.js","assets/Start-C0zUSJby.js","assets/Panel-uT1S5ZGr.js","assets/Lagekopf-6I8J8n-l.js","assets/Updates-BHdVGZTU.js","assets/chevron-right-DF8ikrVh.js","assets/Bestaetigen-BemBWZzN.js","assets/Auftraege-AvxzcTvv.js","assets/Modelle-Dr0cwO5E.js","assets/useSelector-DBNxxw17.js","assets/useMatch-DDVpPKJI.js","assets/breite-k-QN6GPl.js","assets/Monitoring-N1nkbn6G.js","assets/useRouterState-DJr4hrdj.js","assets/Dienste-CswS8GkA.js","assets/Homelab-akzHSA8K.js","assets/undo-2-B8COJmAr.js","assets/HomelabSnapshots-DbFeZ8Oz.js","assets/HomelabProtokoll-BmIaM_Y4.js","assets/Einstellungen-BYXmW-yb.js"])))=>i.map(i=>d[i]); -import{a as e,c as t,i as n,n as r,o as i,r as a,t as o}from"./dist-aE7UmubC.js";import{Bt as s,D as c,Et as l,Ft as u,Gt as d,Ht as f,It as p,Kt as m,Lt as h,Mt as g,N as _,Nt as v,Pt as y,Q as b,R as x,Rt as S,Ut as C,Vt as w,Wt as T,b as E,d as D,dt as O,g as k,gt as ee,ht as A,mt as te,ot as ne,pt as re,qt as ie,rt as ae,u as oe,vt as se,w as ce,x as le,y as ue,zt as de}from"./abfragen-DKcWnZ8a.js";import{_ as fe,a as pe,c as me,d as he,f as ge,g as _e,h as j,i as M,l as ve,m as ye,n as be,o as xe,p as Se,r as N,s as Ce,t as we,u as Te,v as Ee,y as De}from"./useSelector-DBNxxw17.js";import{i as Oe,r as ke,t as Ae}from"./useMatch-DDVpPKJI.js";import{t as je}from"./useRouterState-DJr4hrdj.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 Me=i((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,O());else{var t=n(l);t!==null&&A(x,t.startTime-e)}}}var S=!1,C=-1,w=5,T=-1;function E(){return g?!0:!(e.unstable_now()-Tt&&E());){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&&A(x,u.startTime-t),i=!1}}break a}finally{d=null,f=a,p=!1}i=void 0}}finally{i?O():S=!1}}}var O;if(typeof y==`function`)O=function(){y(D)};else if(typeof MessageChannel<`u`){var k=new MessageChannel,ee=k.port2;k.port1.onmessage=D,O=function(){ee.postMessage(null)}}else O=function(){_(D,0)};function A(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,A(x,a-o))):(r.sortIndex=s,t(c,r),m||p||(m=!0,S||(S=!0,O()))),r},e.unstable_shouldYield=E,e.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}})),Ne=i(((e,t)=>{t.exports=Me()})),Pe=i((t=>{var n=e();function r(e){var t=`https://react.dev/errors/`+e;if(1{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=Pe()})),Ie=i((t=>{var n=Ne(),r=e(),i=Fe();function a(e){var t=`https://react.dev/errors/`+e;if(1be||(e.current=ye[be],ye[be]=null,be--)}function N(e,t){be++,ye[be]=e.current,e.current=t}var Ce=xe(null),we=xe(null),Te=xe(null),Ee=xe(null);function De(e,t){switch(N(Te,t),N(we,e),N(Ce,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}}Se(Ce),N(Ce,e)}function Oe(){Se(Ce),Se(we),Se(Te)}function ke(e){var t=e.memoizedState;t!==null&&(sh._currentValue=t.memoizedState,N(Ee,e)),t=Ce.current;var n=dp(t,e.type);t!==n&&(N(we,e),N(Ce,n))}function Ae(e){we.current===e&&(Se(Ce),Se(we)),Ee.current===e&&(Se(Ee),sh._currentValue=ve)}var je,Me;function Pe(e){if(je===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);je=t&&t[1]||``,Me=-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{Ie=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:``)?Pe(n):``}function Re(e,t){switch(e.tag){case 26:case 27:case 5:return Pe(e.type);case 16:return Pe(`Lazy`);case 13:return e.child!==t&&t!==null?Pe(`Suspense Fallback`):Pe(`Suspense`);case 19:return Pe(`SuspenseList`);case 0:case 15:return Le(e.type,!1);case 11:return Le(e.type.render,!1);case 1:return Le(e.type,!0);case 31:return Pe(`Activity`);case 30:return Pe(`ViewTransition`);default:return``}}function ze(e){try{var t=``,n=null;do t+=Re(e,n),n=e,e=e.return;while(e);return t}catch(e){return` -Error generating stack: `+e.message+` -`+e.stack}}var Be=Object.prototype.hasOwnProperty,Ve=n.unstable_scheduleCallback,P=n.unstable_cancelCallback,He=n.unstable_shouldYield,Ue=n.unstable_requestPaint,We=n.unstable_now,Ge=n.unstable_getCurrentPriorityLevel,Ke=n.unstable_ImmediatePriority,qe=n.unstable_UserBlockingPriority,Je=n.unstable_NormalPriority,Ye=n.unstable_LowPriority,Xe=n.unstable_IdlePriority,Ze=n.log,Qe=n.unstable_setDisableYieldValue,$e=null,et=null;function tt(e){if(typeof Ze==`function`&&Qe(e),et&&typeof et.setStrictMode==`function`)try{et.setStrictMode($e,e)}catch{}}var nt=Math.clz32?Math.clz32:at,rt=Math.log,it=Math.LN2;function at(e){return e>>>=0,e===0?32:31-(rt(e)/it|0)|0}var ot=256,st=262144,ct=4194304;function lt(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 ut(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=lt(n))):i=lt(o):i=lt(s)):(r=s&~a,r===0?(o&=s,o===0?n||(n=s&~e,n!==0&&(i=lt(n))):i=lt(o)):i=lt(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 dt(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function ft(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 gt(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function _t(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=gr),yr=` `,br=!1;function xr(e,t){switch(e){case`keyup`:return mr.indexOf(t.keyCode)!==-1;case`keydown`:return t.keyCode!==229;case`keypress`:case`mousedown`:case`focusout`:return!0;default:return!1}}function I(e){return e=e.detail,typeof e==`object`&&`data`in e?e.data:null}var Sr=!1;function Cr(e,t){switch(e){case`compositionend`:return I(t);case`keypress`:return t.which===32?(br=!0,yr):null;case`textInput`:return e=t.data,e===yr&&br?null:e;default:return null}}function wr(e,t){if(Sr)return e===`compositionend`||!hr&&xr(e,t)?(e=Ln(),In=Fn=Pn=null,Sr=!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=qr(n)}}function Yr(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Yr(e,t.parentNode):`contains`in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Xr(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=Kr(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=Kr(e.document)}return t}function Zr(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 Qr=jn&&`documentMode`in document&&11>=document.documentMode,$r=null,ei=null,ti=null,ni=!1;function ri(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;ni||$r==null||$r!==Kr(r)||(r=$r,`selectionStart`in r&&Zr(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}),ti&&Gr(ti,r)||(ti=r,r=Jf(ei,`onSelect`),0>=o,i-=o,Zi=1<<32-nt(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),B&&$i(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),B&&$i(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 B&&$i(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)}),B&&$i(i,g),u}function _(e,r,o,c){if(typeof o==`object`&&o&&o.type===k&&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===k){if(r.tag===7){n(e,r.sibling),c=i(r,o.props.children),co(c,o),c.return=e,e=c;break a}}else if(r.elementType===l||typeof l==`object`&&l&&l.$$typeof===se&&to(l)===r.type){n(e,r.sibling),c=i(r,o.props),co(c,o),c.return=e,e=c;break a}n(e,r);break}t(e,r),r=r.sibling}o.type===k?(c=zi(o.props.children,e.mode,c,o.key),co(c,o),c.return=e,e=c):(c=Ri(o.type,o.key,o.props,null,e.mode,c),co(c,o),c.return=e,e=c)}return s(e);case O: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=R(o,e.mode,c),c.return=e,e=c}return s(e);case se:return o=to(o),_(e,r,o,c)}if(_e(o))return h(e,r,o,c);if(me(o)){if(l=me(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,so(o),c);if(o.$$typeof===ne)return _(e,r,Ea(e,o),c);lo(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=Bi(o,e.mode,c),c.return=e,e=c),s(e)):n(e,r)}return function(e,t,n,r){try{oo=0;var i=_(e,t,n,r);return ao=null,i}catch(t){if(t===Ya||t===Za)throw t;var a=Pi(29,t,null,e.mode);return a.lanes=r,a.return=e,a}}}var fo=uo(!0),po=uo(!1),mo=!1;function ho(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function go(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 _o(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function vo(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=ji(e),Ai(e,null,n),t}return Di(e,r,t,n),ji(e)}function yo(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,yt(e,n)}}function bo(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 xo=!1;function So(){if(xo){var e=Ba;if(e!==null)throw e}}function Co(e,t,n,r){xo=!1;var i=e.updateQueue;mo=!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===za&&(xo=!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=T({},d,f);break a;case 2:mo=!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 wo(e,t){if(typeof e!=`function`)throw Error(a(191,e));e.call(t)}function To(e,t){var n=e.callbacks;if(n!==null)for(e.callbacks=null,e=0;ea?a:8;var o=j.T,s={};s.types=o===null?null:o.types,j.T=s,uc(e,!1,t,n);try{var c=i(),l=j.S;l!==null&&l(s,c),typeof c==`object`&&c&&typeof c.then==`function`?lc(e,t,Ua(c,r),jd(e)):lc(e,t,r,jd(e))}catch(n){lc(e,t,{then:function(){},status:`rejected`,reason:n},jd())}finally{M.p=a,o!==null&&s.types!==null&&(o.types=s.types),j.T=o}}function $s(){}function ec(e,t,n,r){if(e.tag!==5)throw Error(a(476));var i=tc(e).queue;Qs(e,i,t,ve,n===null?$s:function(){return nc(e),n(r)})}function tc(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:ve,baseState:ve,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:ds,lastRenderedState:ve},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:ds,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function nc(e){var t=tc(e);t.next===null&&(t=e.alternate.memoizedState),lc(e,t.next.queue,{},jd())}function rc(){return Ta(sh)}function ic(){return os().memoizedState}function ac(){return os().memoizedState}function oc(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=jd();e=_o(n);var r=vo(t,e,n);r!==null&&(Pd(r,t,n),yo(r,t,n)),t={cache:Ma()},e.payload=t;return}t=t.return}}function sc(e,t,n){var r=jd();n={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},dc(e)?fc(t,n):(n=Oi(e,t,n,r),n!==null&&(Pd(n,e,r),pc(n,t,r)))}function cc(e,t,n){lc(e,t,n,jd())}function lc(e,t,n,r){var i={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(dc(e))fc(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,Wr(s,o))return Di(e,t,i,0),q===null&&Ei(),!1}catch{}if(n=Oi(e,t,i,r),n!==null)return Pd(n,e,r),pc(n,t,r),!0}return!1}function uc(e,t,n,r){if(r={lane:2,revertLane:Pf(),gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},dc(e)){if(t)throw Error(a(479))}else t=Oi(e,n,r,2),t!==null&&Pd(t,e,2)}function dc(e){var t=e.alternate;return e===V||t!==null&&t===V}function fc(e,t){Go=Wo=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function pc(e,t,n){if(n&4194048){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,yt(e,n)}}var mc={readContext:Ta,use:ls,useCallback:U,useContext:U,useEffect:U,useImperativeHandle:U,useLayoutEffect:U,useInsertionEffect:U,useMemo:U,useReducer:U,useRef:U,useState:U,useDebugValue:U,useDeferredValue:U,useTransition:U,useSyncExternalStore:U,useId:U,useHostTransitionStatus:U,useFormState:U,useActionState:U,useOptimistic:U,useMemoCache:U,useCacheRefresh:U,useEffectEvent:U},hc={readContext:Ta,use:ls,useCallback:function(e,t){return as().memoizedState=[e,t===void 0?null:t],e},useContext:Ta,useEffect:zs,useImperativeHandle:function(e,t,n){n=n==null?null:n.concat([e]),Ls(4194308,4,Gs.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Ls(4194308,4,e,t)},useInsertionEffect:function(e,t){Ls(4,2,e,t)},useMemo:function(e,t){var n=as();t=t===void 0?null:t;var r=e();if(Ko){tt(!0);try{e()}finally{tt(!1)}}return n.memoizedState=[r,t],r},useReducer:function(e,t,n){var r=as();if(n!==void 0){var i=n(t);if(Ko){tt(!0);try{n(t)}finally{tt(!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=sc.bind(null,V,e),[r.memoizedState,e]},useRef:function(e){var t=as();return e={current:e},t.memoizedState=e},useState:function(e){e=xs(e);var t=e.queue,n=cc.bind(null,V,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:qs,useDeferredValue:function(e,t){return Xs(as(),e,t)},useTransition:function(){var e=xs(!1);return e=Qs.bind(null,V,e.queue,!0,!1),as().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var r=V,i=as();if(B){if(n===void 0)throw Error(a(407));n=n()}else{if(n=t(),q===null)throw Error(a(349));Y&127||gs(r,t,n)}i.memoizedState=n;var o={value:n,getSnapshot:t};return i.queue=o,zs(vs.bind(null,r,o,e),[e]),r.flags|=2048,Fs(9,{destroy:void 0},_s.bind(null,r,o,n,t),null),n},useId:function(){var e=as(),t=q.identifierPrefix;if(B){var n=Qi,r=Zi;n=(r&~(1<<32-nt(r)-1)).toString(32)+n,t=`_`+t+`R_`+n,n=qo++,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[Et]=t,o[Dt]=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&&pl(t)}}return W(t),t.subtreeFlags&=-33554433,ml(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==r&&pl(t);else{if(typeof r!=`string`&&t.stateNode===null)throw Error(a(166));if(e=Te.current,da(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,i=ia,i!==null)switch(i.tag){case 27:case 5:r=i.memoizedProps}e[Et]=t,e=!!(e.nodeValue===n||r!==null&&!0===r.suppressHydrationWarning||ep(e.nodeValue,n)),e||ca(t,!0)}else e=lp(e).createTextNode(r),e[Et]=t,t.stateNode=e}return W(t),null;case 31:if(n=t.memoizedState,e===null||e.memoizedState!==null){if(r=da(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[Et]=t}else fa(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;W(t),e=!1}else n=pa(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return t.flags&256?(Lo(t),t):(Lo(t),null);if(t.flags&128)throw Error(a(558))}return W(t),null;case 13:if(r=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(i=da(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[Et]=t}else fa(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;W(t),i=!1}else i=pa(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=i),i=!0;if(!i)return t.flags&256?(Lo(t),t):(Lo(t),null)}return Lo(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),gl(t,t.updateQueue),W(t),null);case 4:return Oe(),e===null&&Wf(t.stateNode.containerInfo),t.flags|=67108864,W(t),null;case 10:return ya(t.type),W(t),null;case 19:if(Bo(t),r=t.memoizedState,r===null)return W(t),null;if(i=!!(t.flags&128),o=r.rendering,o===null){if(i)_l(r,!1);else{if(ad!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(o=Vo(e),o!==null){for(t.flags|=128,_l(r,!1),e=o.updateQueue,t.updateQueue=e,gl(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)Li(n,e),n=n.sibling;return zo(t,Ro.current&1|2),B&&$i(t,r.treeForkCount),t.child}e=e.sibling}r.tail!==null&&We()>gd&&(t.flags|=128,i=!0,_l(r,!1),t.lanes=4194304)}}else{if(!i){if(e=Vo(o),e!==null){if(t.flags|=128,i=!0,e=e.updateQueue,t.updateQueue=e,gl(t,e),_l(r,!0),r.tail===null&&r.tailMode!==`collapsed`&&r.tailMode!==`visible`&&!o.alternate&&!B)return W(t),null}else 2*We()-r.renderingStartTime>gd&&n!==536870912&&(t.flags|=128,i=!0,_l(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=We(),e.sibling=null,o=Ro.current,o=i?o&1|2:o&1,r.tailMode===`visible`||r.tailMode===`collapsed`||!n||B?zo(t,o):(n=o,N(jo,t),N(Ro,n),Mo===null&&(Mo=t)),B&&$i(t,r.treeForkCount),e}return W(t),null;case 22:case 23:return Lo(t),Ao(),r=t.memoizedState!==null,e===null?r&&(t.flags|=8192):e.memoizedState!==null!==r&&(t.flags|=8192),r?n&536870912&&!(t.flags&128)&&(W(t),t.subtreeFlags&6&&(t.flags|=8192)):W(t),n=t.updateQueue,n!==null&&gl(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&&Se(Ga),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),ya(ja),W(t),null;case 25:return null;case 30:return t.flags|=33554432,W(t),null}throw Error(a(156,t.tag))}function yl(e,t){switch(na(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return ya(ja),Oe(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return Ae(t),null;case 31:if(t.memoizedState!==null){if(Lo(t),t.alternate===null)throw Error(a(340));fa()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(Lo(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(a(340));fa()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return Bo(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 Oe(),null;case 10:return ya(t.type),null;case 22:case 23:return Lo(t),Ao(),e!==null&&Se(Ga),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return ya(ja),null;case 25:return null;default:return null}}function bl(e,t){switch(na(t),t.tag){case 3:ya(ja),Oe();break;case 26:case 27:case 5:Ae(t);break;case 4:Oe();break;case 31:t.memoizedState!==null&&Lo(t);break;case 13:Lo(t);break;case 19:Bo(t);break;case 10:ya(t.type);break;case 22:case 23:Lo(t),Ao(),e!==null&&Se(Ga);break;case 24:ya(ja)}}function xl(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 Sl(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 Cl(e){var t=e.updateQueue;if(t!==null){var n=e.stateNode;try{To(t,n)}catch(t){Z(e,e.return,t)}}}function wl(e,t,n){n.props=Sc(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(n){Z(e,t,n)}}function Tl(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=yi(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);p(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 El(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 Dl(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[Et]=e,Bt(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 _=Jr(s,h),v=Jr(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,j.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),et&&typeof et.onPostCommitFiberRoot==`function`)try{et.onPostCommitFiberRoot($e,o)}catch{}return!0}finally{M.p=i,j.T=r,uf(e,t)}}function pf(e,t,n){t=Ui(n,t),t=Oc(e.stateNode,t,2),e=vo(e,t,2),e!==null&&(gt(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=Ui(n,e),n=kc(2),r=vo(t,n,2),r!==null&&(Ac(n,r,t,e),gt(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>We()-md?K&2?cd|=n:Vd(e,0):cd|=n,ud===Y&&(ud=0)),Ef(e)}function gf(e,t){t===0&&(t=mt()),e=ki(e,t),e!==null&&(gt(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 Ve(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-nt(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=ut(r,r===q?a:0,r.cancelPendingCommit!==null||r.timeoutHandle!==-1),!(a&3)||dt(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=We(),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=sn(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),Bt(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="`+sn(t)+`"]`;t===`image`&&n&&n.imageSrcSet?(i+=`[imagesrcset="`+sn(n.imageSrcSet)+`"]`,typeof n.imageSizes==`string`&&(i+=`[imagesizes="`+sn(n.imageSizes)+`"]`)):i+=`[href="`+sn(e)+`"]`;var a=i;switch(t){case`style`:a=Pm(e);break;case`script`:a=Rm(e)}if(!(vm.has(a)||(e=T({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[Pt]=!0,o.onload=o.onerror=function(){Vt(o)}),Bt(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="`+sn(r)+`"][href="`+sn(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=T({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),Bt(r),n.head.appendChild(r)}}}function Am(e,t,n){xm.S(e,t,n);var r=wm;if(r&&e){var i=zt(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=T({rel:`stylesheet`,href:e,"data-precedence":t},n),(n=vm.get(a))&&Hm(e,n);var c=o=r.createElement(`link`);Bt(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=zt(n).hoistableScripts,i=Rm(e),a=r.get(i);a||(a=n.querySelector(zm(i)),a||(e=T({src:e,async:!0},t),(t=vm.get(i))&&Um(e,t),a=n.createElement(`script`),Bt(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=zt(n).hoistableScripts,i=Rm(e),a=r.get(i);a||(a=n.querySelector(zm(i)),a||(e=T({src:e,async:!0,type:`module`},t),(t=vm.get(i))&&Um(e,t),a=n.createElement(`script`),Bt(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=Te.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=zt(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=zt(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=zt(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="`+sn(e)+`"`}function Fm(e){return`link[rel="stylesheet"][`+e+`]`}function Im(e){return T({},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[Pt]){r.loading=1;return}}else t=e.createElement(`link`),t[Pt]=!0,t.onload=t.onerror=Vt.bind(null,t),np(t,`link`,n),Bt(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="`+sn(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~="`+sn(n.href)+`"]`);if(r)return t.instance=r,Bt(r),r;var i=T({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return r=(e.ownerDocument||e).createElement(`style`),Bt(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,Bt(o),o;r=Im(n),(i=vm.get(i))&&Hm(r,i),o=(e.ownerDocument||e).createElement(`link`),Bt(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,Bt(i),i):(r=n,(i=vm.get(o))&&(r=T({},n),Um(r,i)),e=e.ownerDocument||e,i=e.createElement(`script`),Bt(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,Bt(a);return}a=t.ownerDocument||t,r=Im(r),(i=vm.get(i))&&Hm(r,i),a=a.createElement(`link`),Bt(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=Ie()})),Re=class extends h{#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 g({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=ze(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=ze(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=ze(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=ze(e);return typeof t==`string`?(this.#t.get(t)?.find(t=>t!==e&&t.state.isPaused))?.continue()??Promise.resolve():Promise.resolve()}clear(){u.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=>w(t,e))}findAll(e={}){return this.getAll().filter(t=>w(e,t))}notify(e){u.batch(()=>{this.listeners.forEach(t=>{t(e)})})}resumePausedMutations(){let e=this.getAll().filter(e=>e.state.isPaused);return u.batch(()=>Promise.all(e.map(e=>e.continue().catch(C))))}};function ze(e){return e.options.scope?.id}var Be=class extends h{#e;constructor(e={}){super(),this.config=e,this.#e=new Map}build(e,t,n){let r=t.queryKey,i=t.queryHash??s(r,t),a=this.get(i);return a||(a=new v({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(){u.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=>f(t,e))}findAll(e={}){let t=this.getAll();return Object.keys(e).length>0?t.filter(t=>f(e,t)):t}notify(e){u.batch(()=>{this.listeners.forEach(t=>{t(e)})})}onFocus(){u.batch(()=>{this.getAll().forEach(e=>{e.onFocus()})})}onOnline(){u.batch(()=>{this.getAll().forEach(e=>{e.onOnline()})})}},Ve=class{#e;#t;#n;#r;#i;#a;#o;#s;constructor(e={}){this.#e=e.queryCache||new Be,this.#t=e.mutationCache||new Re,this.#n=e.defaultOptions||{},this.#r=new Map,this.#i=new Map,this.#a=0}mount(){this.#a++,this.#a===1&&(this.#o=p.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onFocus())}),this.#s=y.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(d(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=S(t,i);if(a!==void 0)return this.#e.build(this,r).setData(a,{...n,manual:!0})}setQueriesData(e,t,n){return u.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;u.batch(()=>{t.findAll(e).forEach(e=>{t.remove(e)})})}resetQueries(e,t){let n=this.#e;return u.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=u.batch(()=>this.#e.findAll(e).map(e=>e.cancel(n)));return Promise.all(r).then(C).catch(C)}invalidateQueries(e,t={}){return u.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=u.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(d(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(d(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 y.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(de(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){let t=[...this.#r.values()],n={};return t.forEach(t=>{T(e,t.queryKey)&&Object.assign(n,t.defaultOptions)}),n}setMutationDefaults(e,t){this.#i.set(de(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){let t=[...this.#i.values()],n={};return t.forEach(t=>{T(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||=s(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===m&&(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()}},P=t(e(),1),He=P.use,Ue=P.useLayoutEffect;function We(e){return e.replace(/\/{2,}/g,`/`)}function Ge(e){return e===`/`?e:e.replace(/^\/+/,``)}function Ke(e){let t=e.length;return t>1&&e[t-1]===`/`?e.replace(/\/+$/,``):e}function qe(e){return Ke(Ge(e))}function Je(e,t){return e?.endsWith(`/`)&&e!==`/`&&e!==`${t}/`?e.slice(0,-1):e}function Ye(e,t,n=`never`,r){if(t.includes(`//`)&&(t=We(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=We(e)),o=e.split(`/`);o.length>1&&_e(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&&(_e(o)===``?n===`never`&&o.pop():n===`always`&&o.push(``));let s=o.join(`/`),c=(i?We(s):s)||`/`;return a&&r&&r.set(a,c),c}function Xe(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 Ze(e){return e==null||e===``}function Qe(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 $e(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&&Ze(f)){if(c===`/`&&!d)continue;f=``}o+=c+Qe(s,f,r)+(d||``)}}return o+a||`/`}function et(e){return e?.isNotFound===!0}function tt(){try{return sessionStorage}catch{return}}var nt=`tsr-scroll-restoration-v1_3`,rt=tt();function it(){try{return JSON.parse(rt?.getItem(`tsr-scroll-restoration-v1_3`)||`{}`)}catch{return{}}}function at(){try{rt?.setItem(nt,JSON.stringify(ot))}catch{}}var ot=it(),st=`data-scroll-restoration-id`,ct=e=>e.state.__TSR_key||e.href;function lt(e){let t=e.getAttribute(st);if(t)return`[${st}="${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 ut=!1,dt=`window`;function ft(e){try{return typeof e==`function`?e():document.querySelector(e)}catch{}}function pt(e){let t=new Set;for(let n of e){if(n===dt)continue;let e=ft(n);e&&t.add(e)}return t}function mt(e,t){let n=t??e.options.scrollRestoration,r=e._scroll;n&&(r.restoring=!0);let i=e.options.getScrollRestorationKey||ct,a=new Set,o=e=>{let t=ot[e]||={};for(let e of a)e===document?t[dt]={scrollX,scrollY}:e.isConnected&&(t[lt(e)]={scrollX:e.scrollLeft,scrollY:e.scrollTop})};n&&!r.restoration&&(r.restoration=!0,ut=!1,history.scrollRestoration=`manual`,document.addEventListener(`scroll`,e=>{ut||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())),at()})),!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=ot[d];if(e){let t=ot[u];for(let n in e){if(n===dt){if(s)continue}else{let e=ft(n);if(!e||s&&o&&(l??=pt(o),l.has(e)))continue}t||=ot[u]={},t[n]??=e[n]}}}ut=!0;try{let e=t.toLocation.hash,i=t.toLocation.state.__hashScrollIntoViewOptions??!0,a=!1;if(s){!e&&o&&(l??=pt(o));let t=e&&i&&c,s=r.restoring?ot[u]:void 0;if(s)for(let e in s){let{scrollX:r,scrollY:i}=s[e];if(e===dt){if(t)continue;scrollTo({top:i,left:r,behavior:n}),a=!0}else{let t=ft(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{ut=!1}}))}function ht(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 gt(e){return e?e===`false`?!1:e===`true`?!0:e*0==0&&+e+``===e?+e:e:``}function _t(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]=gt(r):Array.isArray(t)?t.push(gt(r)):n[e]=[t,gt(r)]}return n}var vt=/^(?:\s|["[{\d-]|fa|nu|tr)/,yt=xt(JSON.parse),bt=St(JSON.stringify,JSON.parse);function xt(e){let t=e===JSON.parse;return n=>{n[0]===`?`&&(n=n.substring(1));let r=_t(n);for(let n in r){let i=r[n];if(typeof i==`string`){if(t&&!vt.test(i))continue;try{r[n]=e(i)}catch{}}}return r}}function St(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&&!vt.test(r))return r;try{return t(r),e(r)}catch{}}return r}return e=>{let t=ht(e,r);return t?`?${t}`:``}}var Ct=`__root__`;function wt(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 Tt(e){return e instanceof Response&&!!e.options}function Et(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 Dt=4,Ot=5;function kt(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 At(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=Nt(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===Dt)>(e.node.kind===Dt)||t.node.kind===Dt==(e.node.kind===Dt)&&t.node.depth>e.node.depth)))}function Jt(e,t,n){let r=qe(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=We(`/${r}${e.pathname}`),e)};return n?{input:({url:e})=>Yt(n,s.input({url:e})),output:({url:e})=>s.output({url:F(n,e)})}:s}function Yt(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 F(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 Xt(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(()=>{pe(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 Zt=`__TSR_index`,Qt=`popstate`,$t=`beforeunload`,en=/^[\x00-\x20]*(?:[\\/][\t\n\r]*){2,}/;function tn(e){let t=en.exec(e);return t?`/`+e.slice(t[0].length):e}function nn(e){return/[\x00-\x1f\x7f]/.test(e)&&(e=e.replace(/[\x00-\x1f\x7f]/g,e=>` -\r`.includes(e)?``:encodeURIComponent(e))),tn(e)}function rn(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=sn(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[Zt];i=an(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[Zt];i=an(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[Zt]!==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 an(e,t){let n=cn();return{...t,key:n,__TSR_key:n,[Zt]:e}}function on(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=>nn(e?.createHref?e.createHref(t):t),c=e?.parseLocation??(()=>sn(`${t.location.pathname}${t.location.search}${t.location.hash}`,t.history.state));if(!t.history.state?.__TSR_key&&!t.history.state?.key){let e=cn();t.history.replaceState({[Zt]: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=sn(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[Zt]-l.state[Zt],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=rn({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($t,x,{capture:!0}),t.removeEventListener(Qt,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($t,x,{capture:!0}),t.addEventListener(Qt,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 sn(e,t){let n=nn(e),r=n.indexOf(`#`),i=n.indexOf(`?`);if(!t){let e=cn();t={[Zt]: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 cn(){return(Math.random()+1).toString(36).substring(7)}function ln(e,t){return e.protocol!==`http:`&&e.protocol!==`https:`||e.origin!==t||!!e.username||!!e.password}function un(e){return e.pathname+e.search+e.hash}function dn(e){return e.options.loader||e.options.beforeLoad||e.lazyFn||e.options.component?.preload||e.options.pendingComponent?.preload}function fn(e,t){return{fromLocation:t,toLocation:e,pathChanged:t?.pathname!==e.pathname,hrefChanged:t?.href!==e.href,hashChanged:t?.hash!==e.hash}}function pn({key:e,__TSR_key:t,__TSR_index:n,__hashScrollIntoViewOptions:r,...i}){return i}function mn(e){return e.findIndex(e=>e.status===`error`||e.status===`notFound`||e._notFound)+1}function hn(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 gn=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:on()),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!==`/`&&qe(n)?Jt(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=Xt(this.latestLocation,e),mt(this)}},this.updateLatestLocation=()=>{this.latestLocation=this.parseLocation(this.history.location,this.latestLocation)},this.buildRouteTree=()=>{let e=Rt(this.routeTree,this.options.caseSensitive);return this.options.routeMasks&&Pt(this.options.routeMasks,e.processedTree),{...e,resolvePathCache:Et(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:Ce(e),external:!1,searchStr:o,search:fe(t?.search,i),hash:Ce(r.slice(1)),state:De(t?.state,a)}}let o=Yt(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:Ce(tn(o.pathname)),external:!!this.rewrite&&ln(o,this.origin),searchStr:c,search:fe(t?.search,s),hash:Ce(o.hash.slice(1)),state:De(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=Lt(Ke(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=sn(n.href,{});n={...n,to:Yt(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=Ye(s[0]===`/`?``:n.unsafeRelative===`path`?a().pathname:n.from??o()[1],s,this.options.trailingSlash,this.resolvePathCache),l=this.routesByPath[Ke(c)],u=c.includes(`$`),d;if(l)d=l._branch??=Vt(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??jt(!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??=xn(n.params,e),!ge(p))break;p===e&&(p=Object.assign(xe(),p));try{Object.assign(p,t(p))}catch{}}}p??=xn(n.params,Sn(n.params,f)?o()[3]:Cn);let m=e.leaveParams?c:tn(Ce(f?$e(c,f,p,this.pathParamsDecoder):c)),h=wn(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,bn(n.options.validateSearch,{...e,...t}))}catch{}}),t=e}return t},_=h.length?Tn(h,g(),n):n.search===!0?g():typeof n.search==`function`?n.search(g()):n.search||Cn,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:Cn,S=`${m}${v}${b}`,C,w,T=!1;if(this.rewrite){let e=new URL(S,this.origin),t=e.origin,n=F(this.rewrite,e);C=un(e),ln(n,t)?(w=n.href,T=!0):w=tn(un(n))}else C=ve(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=Ft(r.pathname,this.processedTree);if(t){let i=Object.assign(xe(),t.rawParams),{from:a,params:o,...s}=t.route,c=xn(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 _n(this,r.publicHref,{replace:n.replace,ignoreBlocker:t});let i,a=Ke(this.latestLocation.href)===Ke(n.href)&&me(pn(n.state),pn(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?he(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 _n(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 _r(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(fn(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`)&&dn(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(Ee.test(n)||(r=he(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:ln(e,this.origin)||(n=un(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=An,this.preloadRoute=e=>vr(this,e),this.matchRoute=(e,t)=>{let n={...e,to:e.to?Ye(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=It(r.pathname,t?.caseSensitive??!1,t?.fuzzy??!1,a.pathname,this.processedTree);return!o||e.params&&!me(o.rawParams,e.params,!0)?!1:t?.includeSearch??!0?me(a.search,r.search,!0)?o.rawParams:!1:o.rawParams},this.getStoreConfig=t,e.pathParamsAllowedCharacters?.length&&(this.pathParamsDecoder=Xe(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??bt,parseSearch:e.parseSearch??yt,protocolAllowlist:e.protocolAllowlist??M}),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=jt(!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[`**`]:Ke(e.pathname))&&(this.options.notFoundRoute?a=[...a,this.options.notFoundRoute]:o=!0);let s=o?En(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`&&!Se.call(e,t[1]))}var Cn=Object.freeze({});function wn(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=bn(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 Tn(e,t,n){let r=(t,i,a)=>{if(t>=e.length){if(!n.search)return{};if(n.search===!0)return i;let e=Te(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 En(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 Ct}function Dn(e,t){let n=e.options.params?.parse??e.options.parseParams;n&&Object.assign(t,n(t))}function On(e,t){return e.options[t]?.preload?.()}function kn(e,t){let n=On(e,`component`),r=On(e,`pendingComponent`);return t&&(r?r=r.then(t):t()),n&&r?Promise.all([n,r]).then(()=>{}):n??r}function An(e,t,n){let r=()=>t===!1?void 0:t?On(e,t):kn(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 jn(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 zn(e,t){return e.routesById[t.routeId]}function Bn(e,t,n){return Tt(e)?[Fn,e]:et(e)?(e.routeId||=n,[Pn,e]):t?(typeof e?.then==`function`&&(e=Error(`A Promise was thrown`,{cause:e})),[Nn,e]):[Mn,e]}function Vn(e,t){let n=Bn(t,!0,e.id);if(n[0]!==Nn)return n;try{e.options.onError?.(n[1])}catch(t){n=Bn(t,!0,e.id)}return n}function Hn(e,t,n,r,i){return i[0].signal.aborted?In:ir(e,t,n,Vn(n,r),i)}async function Un(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 Gn(e,r),[i,Hn(e,t,u,a,n)]}if(c.aborted)return[i,In];let p=r.paramsError??r.searchError;if(p!==void 0)return Gn(e,r),[i,Hn(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{Jn(e,r,`beforeLoad`,n[0]);let a=m({...f,search:r.search,context:r.context,...e.options.additionalContext}),o=await(typeof a?.then==`function`?Rn(a,c):a);if(c.aborted)return[i,In];let s=ir(e,t,u,Bn(o,!1,u.id),n);if(s[0]!==Mn)return Gn(e,r),[i,s];r.context={...r.context,...o}}catch(a){return Gn(e,r),[i,Hn(e,t,u,a,n)]}finally{r.status=h,Jn(e,r,!1,n[0])}}i()}function Wn(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 Gn(e,t){let n=t._flight;t._flight=void 0,Wn(e,t,n)?.abort()}function Kn(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=Wn(e,a,t);n&&i.push(n)}}for(let e of i)e.abort()}function qn(e){for(let t of e){let e=t._flight;e&&e[2]++}}function Jn(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 Yn(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 Xn(e,t,n,r,i,a,o){let s=o[0],c=s.signal;if(c.aborted)return In;if(!i)return[Mn,void 0];let l=n._flight;Jn(e,n,`loader`,s);try{if(!l){let s=new AbortController;l=[Promise.resolve().then(()=>i(Yn(e,t,n,r,s,a,!!o[3]))).then(e=>Bn(e,!1,r.id),e=>Bn(e,!0,r.id)).then(t=>(t[0]!==Mn&&e._flights?.get(n.id)===l&&(e._flights.delete(n.id),l[2]||s.abort()),t[0]===Nn&&l[2]?Vn(r,t[1]):t)),s,1],(e._flights??=new Map).set(n.id,l)}return n._flight=l,n.abortController=l[1],ir(e,t,r,await Rn(l[0],c),o)}catch(t){if(t!==c||!c.aborted)throw t;return Gn(e,n),In}finally{Jn(e,n,!1,s)}}function Zn(e,t,n){t[0]!==Fn&&(e.status=`success`,e.error=void 0,t[0]===Mn?(e.loaderData=t[1],e.invalid=!1,e.updatedAt=Date.now(),e.preload=n):e.invalid=!0)}function Qn(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&&Gn(e,r)}function $n(e,t){return t[0]===Nn||t[0]===Pn?{...e,status:t[0]===Nn?`error`:`notFound`,error:t[1],_flight:void 0}:e}function er(e,t,n,r,i,a,o){let s=t[1][n],c=zn(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(Yn(e,t,s,c,a[0],i,l))),a[0].signal.aborted&&(p=In)),!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,Gn(e,s),p=Hn(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,Wn(e,s,t)?.abort(),n>=o&&(s.status=`pending`),S?.()}b||(s.isFetching=!1);let w=!p&&x?Xn(e,t,s,c,g,i,a).then(t=>(Zn(s,t,l),t[0]===Mn&&(m&&!a[0].signal.aborted&&Qn(e,s,u),n>=o&&(s.status=`pending`)),t)):Promise.resolve(p??[Mn,s.loaderData]),T=(async()=>{try{let e=An(c,void 0,C);e&&await Rn(e,a[0].signal)}catch(r){if(!t[1].some((e,t)=>t<=n&&(e.status===`error`||e.status===`notFound`||e._notFound)))return[n,Hn(e,t,c,r,a)]}let r=await w;x&&r[0]===Mn&&s.status===`pending`&&!a[0].signal.aborted&&(s.status=`success`,S?.())})();if(r.push([n,w,T]),!y)return w.then(e=>$n(s,e));let E={...s,status:`pending`,preload:!1,_flight:v};s.invalid=!1,s.isFetching=`loader`;let D=Xn(e,t,E,c,g,i,a).then(e=>(s.isFetching=!1,Zn(E,e,!1),e));return(t[2]??=[]).push([n,D,T,E]),D.then(e=>$n(E,e))}async function tr(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=zn(e,t[n]);try{let e=An(i,!1);e&&await Rn(e,r)}catch(e){if(e===r&&r.aborted)throw e}if(i.options.notFoundComponent)return n}return a?.routeId?o:i}function nr(e,t){t[2]&&=(Kn(e,t[2].map(e=>e[3])),void 0)}async function rr(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]>=Fn)throw[a,t];!i&&t[0]!==Mn&&(i=[a,t],await Promise.all((n??[]).map(e=>{if(!(e[0]<=a))return e[1].then(t=>{if(t[0]===Fn)throw[e[0],t]})})))}})))}catch(e){return e}return t??i}function ir(e,t,n,r,i,a){for(;r[0]===Fn;){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]?[Fn,t]:[Fn,t,a]}return[Fn,o,n]}catch(e){r=a?[Nn,e]:Vn(n,e),a=!0}}return r}async function ar(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]===Pn?tr(e,o,t,r.signal):t[0],d=l<0?o.length:l;if((s?.[1][0]??0)>=Fn)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]!==Mn&&t[0]=d)break;let t=await e[2];if(t){s=t;break}}if((s?.[1][0]??0)>=Fn){let n=s[1];if(n[0]!==Fn||n[1].options.reloadDocument||n[2])return nr(e,t),n;c=!0,s=[0,[Nn,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===Nn?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=zn(e,u);try{await Rn(i?Promise.resolve().then(()=>An(m,l===Nn?`errorComponent`:`notFoundComponent`)):Promise.all([An(m),An(m,`notFoundComponent`)]),r.signal)}catch(n){if(n===r.signal&&r.signal.aborted)return nr(e,t),In}i?c&&(r.abort(),await Promise.all([...n.map(e=>e[1]),...n.map(e=>e[2]),...(t[2]??[]).map(e=>e[1])]),nr(e,t),Kn(e,o),p()):u.status=`success`}return t}async function or(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 tr(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=Fn&&(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=ar(e,i,u,r[0],rr(u,m,i[2]),r[7]);i[2]?.length&&(i[3]=rr(i[2],void 0,void 0,h.then(e=>Ln(e)?0:jn(n).length,()=>0))),o=await h}catch(t){if(nr(e,i),t===a&&a.aborted)return In;throw t}return Ln(o)?o:or(e,o,a,r[6]===n.length?r[6]:0)}function cr(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(()=>cr(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 lr(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 ur(e,t){let n=e._pending;if(!n)return;clearTimeout(n[3]);let r=n[2]-Date.now();if(!n[4]||r<=0||!jn(t[3]).some(e=>e.id===n[1]))return;let i;try{await Rn(new Promise(e=>{i=setTimeout(e,r)}),t[0].signal)}catch{}clearTimeout(i)}function dr(e,t){e._committed=t,e.stores.setMatches(t)}function fr(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=jn(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=mn(n);dr(e,n),Kn(e,[...o.values(),...i].filter(e=>e._flight&&c.get(e.id)!==e),n),hn(e,i,n,a,l,t)}async function pr(e,t){let n=e._tx;for(;n&&n!==t;)t=n,await n[5],n=e._tx}function mr(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 hr(e,t,n,r,i){let a=n.map(e=>({...e}));qn(a);for(let t of r)Gn(e,a[t[0]]),a[t[0]]=t[3];let o=[t[2],a],s;try{s=await ar(e,o,r,t[0],i)}catch(t){throw Kn(e,a),t}if(Ln(s)){Kn(e,a),s[0]===Fn&&e._tx===t&&e._committed===n&&await mr(e,t,s);return}if(await or(e,s,t[0].signal),e._tx!==t||e._committed!==n){Kn(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),Gn(e,n))}dr(e,a),Kn(e,n,a)}async function gr(e,t,n,r,i,a){let o=await sr(e,t[2],t[3],[t[0],t[1],e._committed,void 0,i,n,a,r]);if(Ln(o)){let n=o[0]===Fn&&e._tx===t;if((!n||o[1].options.reloadDocument)&&lr(e,t),Kn(e,t[3]),t[3]=[],!n)return;if(e._tx!==t){lr(e,t);return}await mr(e,t,o);return}let s=o[1];if(e._tx===t&&await ur(e,t),e._tx!==t){lr(e,t),Kn(e,s),nr(e,o);return}let c=t[2],l=fn(c,e.stores.resolvedLocation.get()),u=o[2];await e.startViewTransition(async()=>{if(e._tx===t&&await ur(e,t),e._tx!==t){lr(e,t),Kn(e,s),nr(e,o);return}let n=await e.startTransition(()=>{lr(e,t),fr(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){nr(e,o);return}u?.length&&hr(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 _r(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=fn(a,r);e.emit({type:`onBeforeNavigate`,...t}),u.signal.aborted||e.emit({type:`onBeforeLoad`,...t})}if(u.signal.aborted){await pr(e,n);return}let f=i.href===a.href,p=u,m=e.matchRoutes(a,{_controller:u});qn(m);let h=l?c[1](m):void 0;if(h?p=l:l?.abort(),u.signal.aborted){Kn(e,m),await pr(e,n);return}e._preflight=void 0;let g,_=()=>gr(e,y,f,()=>cr(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(()=>pr(e,y))];if(e._tx=y,n){for(let t of e.stores.matches.get()){if(e._tx!==y)break;t.isFetching&&Jn(e,t,!1)}n[0].abort(),Kn(e,n[3],y[3],!0)}if(e._tx!==y){Kn(e,y[3]),y[3]=[],g?.(),await pr(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))&&cr(e,y),g?.(_()),await y[5]}async function vr(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}),qn(a),o=(e._preloads??=new Map).set(i,a),s=await sr(e,n,a,[i,t,r,!0])}finally{o&&(o=o.delete(i),Kn(e,a)),i.abort()}if(!Ln(s))return s[1];if(!o||s.length<3)return;n=s[2]}catch(e){et(e)||console.error(e);return}}}var yr=`Error preloading route! ☝️`,br=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=Ct:this.parentRoute||Oe();let r=n?Ct:t?.path;r&&r!==`/`&&(r=Ge(r));let i=t?.id||r,a=n?Ct:We((this.parentRoute.id===`__root__`?``:this.parentRoute.id)+`/`+(i??``));r===`__root__`&&(r=`/`);let o=a===`__root__`?`/`:r===void 0?this.parentRoute.fullPath:We(this.parentRoute.fullPath+`/`+r);this._path=r,this._id=a,this._fullPath=o,this._to=Ke(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=>wt({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.`)}},xr=class extends br{constructor(e){super(e)}},I=n(),Sr=class extends P.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?P.createElement(this.props.errorComponent??Cr,{error:e[0],reset:this.reset}):this.props.children}};function Cr({error:e}){let[t,n]=P.useState(!1);return(0,I.jsxs)(`div`,{style:{padding:`.5rem`,maxWidth:`100%`},children:[(0,I.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`.5rem`},children:[(0,I.jsx)(`strong`,{style:{fontSize:`1rem`},children:`Something went wrong!`}),(0,I.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,I.jsx)(`div`,{style:{height:`.25rem`}}),t?(0,I.jsx)(`div`,{children:(0,I.jsx)(`pre`,{style:{fontSize:`.7em`,border:`1px solid red`,borderRadius:`.25rem`,padding:`.3rem`,color:`red`,overflow:`auto`},children:e?.message?(0,I.jsx)(`code`,{children:e.message}):null})}):null]})}var wr=()=>!0,Tr=()=>!1;function Er({children:e,fallback:t=null}){return(0,I.jsx)(P.Fragment,{children:Dr()?e:t})}function Dr(e=!0){return P.useSyncExternalStore(Or,wr,e?Tr:wr)}function Or(){return()=>{}}function kr({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 Ar(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 jr=[],Mr=0,{link:Nr,unlink:Pr,propagate:Fr,checkDirty:Ir,shallowPropagate:Lr}=kr({update(e){return e._update()},notify(e){jr[zr++]=e,e.flags&=-3},unwatched(e){e.depsTail!==void 0&&(e.depsTail=void 0,e.flags=17,Ur(e))}}),Rr=0,zr=0,Br,Vr=0;function Hr(e){try{++Vr,e()}finally{--Vr||Wr()}}function Ur(e){let t=e.depsTail,n=t===void 0?e.deps:t.nextDep;for(;n!==void 0;)n=Pr(n,e)}function Wr(){if(!(Vr>0)){for(;Rr{i.get(),n.current?t.next?.(i._snapshot):n.current=!0});return{unsubscribe:()=>{r.stop()}}},_update(e){let a=Br,o=t?.compare??Object.is;if(n)Br=i,++Mr,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{Br=a,n&&(i.flags&=-5),Ur(i)}}};return n?(i.flags=17,i.get=function(){let e=i.flags;if(e&16||e&32&&Ir(i.deps,i)){if(i._update()){let e=i.subs;e!==void 0&&Lr(e)}}else e&32&&(i.flags=e&-33);return Br!==void 0&&Nr(i,Br,Mr),i._snapshot}):i.set=function(e){if(i._update(e)){let e=i.subs;e!==void 0&&(Fr(e),Lr(e),Wr())}},i}function Kr(e){let t=()=>{let t=Br;Br=n,++Mr,n.depsTail=void 0,n.flags=6;try{return e()}finally{Br=t,n.flags&=-5,Ur(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&&Ir(this.deps,this)?t():this.flags=2},stop(){this.flags=0,this.depsTail=void 0,Ur(this)}};return t(),n}function qr(e){return Ae({from:e.from,strict:e.strict,structuralSharing:e.structuralSharing,select:t=>e.select?e.select(t.loaderData):t.loaderData})}function Jr(e){let{select:t,...n}=e;return Ae({...n,select:e=>t?t(e.loaderDeps):e.loaderDeps})}function Yr(e){return Ae({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 Xr(e){return Ae({from:e.from,strict:e.strict,shouldThrow:e.shouldThrow,structuralSharing:e.structuralSharing,select:t=>e.select?e.select(t.search):t.search})}function Zr(e){let t=be();return P.useCallback(n=>t.navigate({...n,from:n.from??e?.from}),[e?.from,t])}function Qr(e){let t=be(),n=Zr(),r=P.useRef(null);return Ue(()=>{r.current!==e&&(n(e),r.current=e)},[t,e,n]),null}function $r(e){return Ae({...e,select:t=>e.select?e.select(t.context):t.context})}function ei(...e){let t=P.useRef(e),n=t.current;return e.forEach((e,t)=>{me(n[t],e,!1,!0)||(n[t]=e)}),t.current}function ti(e,t){e.preloadRoute(t).catch(e=>{console.warn(e),console.warn(yr)})}var ni={compare:(e,t)=>e[0]===t[0]&&e[1]===t[1]};function ri(e,t){let n=typeof e==`string`&&he(e);if(n)return t.has(n)?e:null}function ii(e,t,n,r,i){let a=Je(e.pathname,r),o=Je(t.pathname,r);return(n?.exact?a!==o:!a.startsWith(o)||a.length!==o.length&&a[o.length]!==`/`)||(n?.includeSearch??!0)&&!me(e.search,t.search,!n?.exact,n?.explicitUndefined)?!1:!n?.includeHash||i&&e.hash===t.hash}function ai(e,t,n){let r=be(),i=P.useRef(null),a=P.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:m,ignoreBlocker:h,disabled:g,target:_,onClick:v,onBlur:y,onFocus:b,onMouseEnter:x,onMouseLeave:S,onTouchStart:C}=e,w=Dr(!!o?.includeHash),[T,E,D]=ei(e.search,e.params,o),[O,k]=P.useMemo(()=>[e,{...e}],[r,e.from,e._fromLocation,e.hash,e.to,T,E,e.state,e.mask,e.unsafeRelative]),ee=P.useCallback(e=>{let t=ri(s,r.protocolAllowlist);if(t!==void 0)return[t??void 0];O._fromLocation||(k._fromLocation=e);let n=r.buildLocation(k),i=mi(n,r,g);return[i,!g&&(!i||he(i))?void 0:ii(e,n,D,r.basepath,w)]},[D,g,w,O,k,r,s]),[A,te]=we(r.stores.location,ee,ni),ne=te===void 0?A:void 0,re=g||A===void 0,ie=P.useRef(!1),ae=e.reloadDocument||ne||re?!1:c??r.options.defaultPreload,oe=l??r.options.defaultPreloadDelay??0,se=P.useCallback(e=>{let t=e?.isIntersecting;if(!(t??ae===`intent`)){t===!1&&fi(i);return}if(!oe){ti(r,O);return}di.has(i)||di.set(i,setTimeout(()=>{di.delete(i),ti(r,O)},oe))},[r,O,i,ae,oe]);P.useEffect(()=>{ae===`render`&&!ie.current&&(ie.current=!0,ti(r,O));let e;return ae===`viewport`&&i.current&&typeof IntersectionObserver==`function`&&(e=new IntersectionObserver(e=>se(e.pop()),{rootMargin:`100px`}),e.observe(i.current)),()=>{e?.disconnect(),fi(i)}},[r,O,ae,se,i]);let ce=li(e,n);if(ce.ref=t?a:i,ne)return ce.href=ne,ce;let le=e=>{let t=_??e.currentTarget.getAttribute(`target`);!re&&!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&(!t||t===`_self`)&&e.button===0&&(e.preventDefault(),r.navigate({...O,replace:d,resetScroll:p,hashScrollIntoView:u,startTransition:f,viewTransition:m,ignoreBlocker:h}))},ue=()=>{ae===`intent`&&ti(r,O)},de=()=>{ae===`intent`&&fi(i)};return ce.onClick=pi(v,le),ce.onBlur=pi(y,de),ce.onFocus=pi(b,se),ce.onMouseEnter=pi(x,se),ce.onMouseLeave=pi(S,de),ce.onTouchStart=pi(C,ue),ui(ce,e,te,A,re,n)}var oi={},si={className:`active`},ci=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 li(e,t){let n={};for(let r in e)ci.has(r)||r===`type`&&t!==void 0||r===`disabled`&&t===`a`||(n[r]=e[r]);return n}function ui(e,t,n,r,i,a){let{activeProps:o,inactiveProps:s,className:c,style:l,target:u}=t,d=Te(n?o:s,{})??(n?si:oi);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 di=new WeakMap,fi=e=>{clearTimeout(di.get(e)),di.delete(e)},pi=(e,t)=>e?n=>n.defaultPrevented||(e(n),n.defaultPrevented||t(n)):t;function mi(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||!ye(i,t.protocolAllowlist))return i}var hi=P.memo(P.forwardRef((e,t)=>{let n=e._asChild||`a`,r=ai(e,t,n),i=typeof e.children==`function`?e.children({isActive:r[`data-status`]===`active`}):e.children;return P.createElement(n,r,i)}),gi);function gi(e,t){let n=0;for(let r in t)if(n++,e[r]!==t[r]&&(!ci.has(r)||!me(e[r],t[r],!1,!0)))return!1;for(let t in e)n--;return n===0}var _i=class extends br{constructor(e){super(e),this.useMatch=e=>Ae({...e,from:this.id}),this.useRouteContext=e=>$r({...e,from:this.id}),this.useSearch=e=>Xr({...e,from:this.id}),this.useParams=e=>Yr({...e,from:this.id}),this.useLoaderDeps=e=>Jr({...e,from:this.id}),this.useLoaderData=e=>qr({...e,from:this.id}),this.useNavigate=()=>Zr({from:this.fullPath}),this.Link=P.forwardRef((e,t)=>(0,I.jsx)(hi,{ref:t,from:this.fullPath,...e}))}};function L(e){return new _i(e)}var vi=class extends xr{constructor(e){super(e),this.useMatch=e=>Ae({...e,from:this.id}),this.useRouteContext=e=>$r({...e,from:this.id}),this.useSearch=e=>Xr({...e,from:this.id}),this.useParams=e=>Yr({...e,from:this.id}),this.useLoaderDeps=e=>Jr({...e,from:this.id}),this.useLoaderData=e=>qr({...e,from:this.id}),this.useNavigate=()=>Zr({from:this.fullPath}),this.Link=P.forwardRef((e,t)=>(0,I.jsx)(hi,{ref:t,from:this.fullPath,...e}))}};function yi(e){return new vi(e)}function bi(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(j(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(He)He(a());else throw a()}return P.createElement(r,e)};return o.preload=a,o}function xi(e){let t=be(),n=`not-found-${we(t.stores.location,e=>e.pathname)}-${we(t.stores.status)}`;return(0,I.jsx)(Sr,{getResetKey:()=>n,onCatch:(t,n)=>{if(et(t))e.onCatch?.(t,n);else throw t},errorComponent:({error:t})=>{if(et(t))return e.fallback?.(t);throw t},children:e.children})}function Si(){return(0,I.jsx)(`p`,{children:`Not Found`})}function Ci(e){return(0,I.jsx)(I.Fragment,{children:e.children})}function wi(e,t,n){return t.options.notFoundComponent?(0,I.jsx)(t.options.notFoundComponent,{...n}):e.options.defaultNotFoundComponent?(0,I.jsx)(e.options.defaultNotFoundComponent,{...n}):(0,I.jsx)(Si,{})}function Ti(e,t){let n=t?.options.pendingComponent??e.options.defaultPendingComponent;return n?(0,I.jsx)(n,{}):null}var Ei=(e,t)=>e[0]===t[0]&&e[1]===t[1],Di=(e,t,n)=>!t.isRoot||t.options.shellComponent||t.options.wrapInSuspense||n===!1||n===`data-only`||!e.ssr,Oi=P.memo(function({routeId:e}){let t=be();return(0,I.jsx)(ki,{router:t,match:we(t.stores.getMatchStore(e))})});function ki({router:e,match:t}){let n=e.routesById[t.routeId],r=Ti(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=Di(e,n,t.ssr)&&(n.options.wrapInSuspense??r??(n.options.errorComponent?.preload||s))?P.Suspense:Ci,l=i?Sr:Ci,u=o?xi:Ci;return(0,I.jsxs)(n.isRoot?n.options.shellComponent??Ci:Ci,{children:[(0,I.jsx)(ke.Provider,{value:t.routeId,children:(0,I.jsx)(c,{fallback:r,children:(0,I.jsx)(l,{getResetKey:()=>t,errorComponent:i,onCatch:(e,n)=>{if(et(e))throw e.routeId??=t.routeId,e;a?.(e,n)},children:(0,I.jsx)(u,{fallback:e=>{if(e.routeId??=t.routeId,e.routeId!==t.routeId)throw e;return P.createElement(o,e)},children:s?(0,I.jsx)(Er,{fallback:r,children:(0,I.jsx)(Ai,{match:t})}):(0,I.jsx)(Ai,{match:t})})})})}),null]})}var Ai=P.memo(function({match:e}){let t=be(),n=e.routeId,r=t.routesById[n],i=P.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=P.useMemo(()=>{let e=r.options.component??t.options.defaultComponent;return e?(0,I.jsx)(e,{},i):(0,I.jsx)(ji,{})},[i,r.options.component,t.options.defaultComponent]);if(e.status===`pending`){if(t.ssr&&!Di(t,r,e.ssr))return a;if(t._tx)throw t._tx[5];return Ti(t,r)}if(e.status===`notFound`)return wi(t,r,e.error);if(e.status===`error`)throw e.error;return a}),ji=P.memo(function(){let e=be(),t=P.useContext(ke),n,r,i;{let a=e.stores.getMatchStore(t);[n,r]=we(a,e=>[!!e._notFound,e.error],{compare:Ei}),i=we(e.stores.ids,e=>e[e.indexOf(t)+1])}if(n)return wi(e,e.routesById[t],r);if(!i)return null;let a=(0,I.jsx)(Oi,{routeId:i});return t===`__root__`?(0,I.jsx)(P.Suspense,{fallback:Ti(e),children:a}):a});function Mi(e,t){let n=e[1];e.length=0,n?.(t)}function Ni({t:e}){let t=be(),n=t._rendered??=[];return t.startTransition=(r,i)=>new Promise(a=>{Mi(n,!1),n.push(i,a),e(t),P.startTransition(r)}),Ue(()=>{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(Ke(r.publicHref)!==Ke(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`,...fn(a,a)})}):t._tx||t.load({sync:!0}).catch(console.error),e},[t,t.history]),null}function Pi(){let e=be(),t=e.routesById[Ct],n=Ti(e,t),r=e.ssr?Ci:P.Suspense,i=(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(Ni,{t:P.useState()[1]}),(0,I.jsx)(r,{fallback:n,children:(0,I.jsx)(Fi,{})})]});return e.options.InnerWrap?(0,I.jsx)(e.options.InnerWrap,{children:i}):i}function Fi(){let e=be(),t=e._rendered,n=we(e.stores.matches,e=>t[0]??e),r=n[0],i=r?.routeId;Ue(()=>{t[0]===n&&Mi(t,!0)},[t,n]);let a=i?(0,I.jsx)(Oi,{routeId:i}):null;return(0,I.jsx)(ke.Provider,{value:i,children:e.options.disableGlobalCatchBoundary?a:(0,I.jsx)(Sr,{getResetKey:()=>r,onCatch:void 0,children:a})})}var Ii=e=>({createMutableStore:Gr,createReadonlyStore:Gr,batch:Hr}),Li=e=>new Ri(e),Ri=class extends gn{constructor(e){super(e,Ii)}};function zi({router:e,children:t,...n}){ge(n)&&e.update({...e.options,...n,context:{...e.options.context,...n.context}});let r=(0,I.jsx)(N.Provider,{value:e,children:t});return e.options.Wrap?(0,I.jsx)(e.options.Wrap,{children:r}):r}function Bi({router:e,...t}){return(0,I.jsx)(zi,{router:e,...t,children:(0,I.jsx)(Pi,{})})}var Vi=Le(),R=a();function Hi(e){let t=(0,R.c)(6),{error:n}=e,r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,I.jsx)(`p`,{className:`text-lg font-semibold text-rot-text`,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,I.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,I.jsx)(`button`,{type:`button`,onClick:Ui,className:`h-11 rounded-xl border border-rot/40 bg-rot/10 px-5 text-sm font-semibold text-rot-text hover:bg-rot/[0.18]`,children:`Neu laden`}),t[3]=o):o=t[3];let s;return t[4]===a?s=t[5]:(s=(0,I.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 Ui(){return window.location.reload()}var Wi={name:`activity`,size:24,node:[[`path`,{d:`M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2`,key:`169zse`}]]};Wi.node;var Gi=r(Wi),Ki={name:`arrow-right`,size:24,node:[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`m12 5 7 7-7 7`,key:`xquz4c`}]]};Ki.node;var qi=r(Ki),Ji={name:`audio-lines`,size:24,node:[[`path`,{d:`M2 10v3`,key:`1fnikh`}],[`path`,{d:`M6 6v11`,key:`11sgs0`}],[`path`,{d:`M10 3v18`,key:`yhl04a`}],[`path`,{d:`M14 8v7`,key:`3a1oy3`}],[`path`,{d:`M18 5v13`,key:`123xd1`}],[`path`,{d:`M22 10v3`,key:`154ddg`}]]};Ji.node;var Yi=r(Ji),Xi={name:`bird`,size:24,node:[[`path`,{d:`M16 7h.01`,key:`1kdx03`}],[`path`,{d:`M3.4 18H12a8 8 0 0 0 8-8V7a4 4 0 0 0-7.28-2.3L2 20`,key:`oj1oa8`}],[`path`,{d:`m20 7 2 .5-2 .5`,key:`12nv4d`}],[`path`,{d:`M10 18v3`,key:`1yea0a`}],[`path`,{d:`M14 17.75V21`,key:`1pymcb`}],[`path`,{d:`M7 18a6 6 0 0 0 3.84-10.61`,key:`1npnn0`}]]};Xi.node;var Zi=r(Xi),Qi={name:`bot`,size:24,node:[[`path`,{d:`M12 8V4H8`,key:`hb8ula`}],[`rect`,{width:`16`,height:`12`,x:`4`,y:`8`,rx:`2`,key:`enze0r`}],[`path`,{d:`M2 14h2`,key:`vft8re`}],[`path`,{d:`M20 14h2`,key:`4cs60a`}],[`path`,{d:`M15 13v2`,key:`1xurst`}],[`path`,{d:`M9 13v2`,key:`rq6x2g`}]]};Qi.node;var $i=r(Qi),ea={name:`box`,size:24,node:[[`path`,{d:`M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z`,key:`hh9hay`}],[`path`,{d:`m3.3 7 8.7 5 8.7-5`,key:`g66t2b`}],[`path`,{d:`M12 22V12`,key:`d0xqtd`}]]};ea.node;var ta=r(ea),na={name:`brain-circuit`,size:24,node:[[`path`,{d:`M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z`,key:`l5xja`}],[`path`,{d:`M9 13a4.5 4.5 0 0 0 3-4`,key:`10igwf`}],[`path`,{d:`M6.003 5.125A3 3 0 0 0 6.401 6.5`,key:`105sqy`}],[`path`,{d:`M3.477 10.896a4 4 0 0 1 .585-.396`,key:`ql3yin`}],[`path`,{d:`M6 18a4 4 0 0 1-1.967-.516`,key:`2e4loj`}],[`path`,{d:`M12 13h4`,key:`1ku699`}],[`path`,{d:`M12 18h6a2 2 0 0 1 2 2v1`,key:`105ag5`}],[`path`,{d:`M12 8h8`,key:`1lhi5i`}],[`path`,{d:`M16 8V5a2 2 0 0 1 2-2`,key:`u6izg6`}],[`circle`,{cx:`16`,cy:`13`,r:`.5`,key:`ry7gng`}],[`circle`,{cx:`18`,cy:`3`,r:`.5`,key:`1aiba7`}],[`circle`,{cx:`20`,cy:`21`,r:`.5`,key:`yhc1fs`}],[`circle`,{cx:`20`,cy:`8`,r:`.5`,key:`1e43v0`}]]};na.node;var ra=r(na),ia={name:`calendar-clock`,size:24,node:[[`path`,{d:`M16 14v2.2l1.6 1`,key:`fo4ql5`}],[`path`,{d:`M16 2v3`,key:`otl347`}],[`path`,{d:`M21 7.338V5a2 2 0 00-2-2H5a2 2 0 00-2 2v14a2 2 0 002 2h2.338`,key:`7hb8p4`}],[`path`,{d:`M3 9h5.859`,key:`numkqi`}],[`path`,{d:`M8 2v3`,key:`1ioesn`}],[`circle`,{cx:`16`,cy:`16`,r:`6`,key:`qoo3c4`}]]};ia.node;var z=r(ia),B={name:`circle-alert`,size:24,node:[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`line`,{x1:`12`,x2:`12`,y1:`8`,y2:`12`,key:`1pkeuh`}],[`line`,{x1:`12`,x2:`12.01`,y1:`16`,y2:`16`,key:`4dfq90`}]],aliases:[`alert-circle`]};B.node;var aa=r(B),oa={name:`circle-check`,size:24,node:[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`m16 9-5.5 5.5L8 12`,key:`xofnsj`}]],aliases:[`check-circle-2`]};oa.node;var sa=r(oa),ca={name:`clapperboard`,size:24,node:[[`path`,{d:`m12.296 3.464 3.02 3.956`,key:`qash78`}],[`path`,{d:`M20.2 6 3 11l-.9-2.4c-.3-1.1.3-2.2 1.3-2.5l13.5-4c1.1-.3 2.2.3 2.5 1.3z`,key:`1h7j8b`}],[`path`,{d:`M3 11h18v8a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z`,key:`4lm6w1`}],[`path`,{d:`m6.18 5.276 3.1 3.899`,key:`zjj9t3`}]]};ca.node;var la=r(ca),ua={name:`code`,size:24,node:[[`path`,{d:`m16 18 6-6-6-6`,key:`eg8j8`}],[`path`,{d:`m8 6-6 6 6 6`,key:`ppft3o`}]]};ua.node;var da=r(ua),fa={name:`container`,size:24,node:[[`path`,{d:`M22 7.7c0-.6-.4-1.2-.8-1.5l-6.3-3.9a1.72 1.72 0 0 0-1.7 0l-10.3 6c-.5.2-.9.8-.9 1.4v6.6c0 .5.4 1.2.8 1.5l6.3 3.9a1.72 1.72 0 0 0 1.7 0l10.3-6c.5-.3.9-1 .9-1.5Z`,key:`1t2lqe`}],[`path`,{d:`M10 21.9V14L2.1 9.1`,key:`o7czzq`}],[`path`,{d:`m10 14 11.9-6.9`,key:`zm5e20`}],[`path`,{d:`M14 19.8v-8.1`,key:`159ecu`}],[`path`,{d:`M18 17.5V9.4`,key:`11uown`}]]};fa.node;var pa=r(fa),ma={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`}]]};ma.node;var ha=r(ma),ga={name:`database-backup`,size:24,node:[[`ellipse`,{cx:`12`,cy:`5`,rx:`9`,ry:`3`,key:`msslwz`}],[`path`,{d:`M3 12a9 3 0 0 0 5 2.69`,key:`1ui2ym`}],[`path`,{d:`M21 9.3V5`,key:`6k6cib`}],[`path`,{d:`M3 5v14a9 3 0 0 0 6.47 2.88`,key:`i62tjy`}],[`path`,{d:`M12 12v4h4`,key:`1bxaet`}],[`path`,{d:`M13 20a5 5 0 0 0 9-3 4.5 4.5 0 0 0-4.5-4.5c-1.33 0-2.54.54-3.41 1.41L12 16`,key:`1f4ei9`}]]};ga.node;var _a=r(ga),va={name:`database`,size:24,node:[[`ellipse`,{cx:`12`,cy:`5`,rx:`9`,ry:`3`,key:`msslwz`}],[`path`,{d:`M3 5V19A9 3 0 0 0 21 19V5`,key:`1wlel7`}],[`path`,{d:`M3 12A9 3 0 0 0 21 12`,key:`mv7ke4`}]]};va.node;var ya=r(va),ba={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`}]]};ba.node;var xa=r(ba),Sa={name:`file-code-corner`,size:24,node:[[`path`,{d:`M4 12.15V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2h-3.35`,key:`1wthlu`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`m5 16-3 3 3 3`,key:`331omg`}],[`path`,{d:`m9 22 3-3-3-3`,key:`lsp7cz`}]],aliases:[`file-code-2`]};Sa.node;var Ca=r(Sa),wa={name:`gauge`,size:24,node:[[`path`,{d:`m12 14 4-4`,key:`9kzdfg`}],[`path`,{d:`M3.34 19a10 10 0 1 1 17.32 0`,key:`19p75a`}]]};wa.node;var Ta=r(wa),Ea={name:`git-branch`,size:24,node:[[`path`,{d:`M15 6a9 9 0 0 0-9 9V3`,key:`1cii5b`}],[`circle`,{cx:`18`,cy:`6`,r:`3`,key:`1h7g24`}],[`circle`,{cx:`6`,cy:`18`,r:`3`,key:`fqmcym`}]]};Ea.node;var Da=r(Ea),Oa={name:`hard-drive`,size:24,node:[[`path`,{d:`M10 16h.01`,key:`1bzywj`}],[`path`,{d:`M2.212 11.577a2 2 0 0 0-.212.896V18a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-5.527a2 2 0 0 0-.212-.896L18.55 5.11A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z`,key:`18tbho`}],[`path`,{d:`M21.946 12.013H2.054`,key:`zqlbp7`}],[`path`,{d:`M6 16h.01`,key:`1pmjb7`}]]};Oa.node;var ka=r(Oa),Aa={name:`house`,size:24,node:[[`path`,{d:`M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8`,key:`5wwlr5`}],[`path`,{d:`M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z`,key:`r6nss1`}]],aliases:[`home`]};Aa.node;var ja=r(Aa),Ma={name:`layers`,size:24,node:[[`path`,{d:`M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z`,key:`zw3jo`}],[`path`,{d:`M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12`,key:`1wduqc`}],[`path`,{d:`M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17`,key:`kqbvx6`}]],aliases:[`layers-3`]};Ma.node;var Na=r(Ma),Pa={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`}]]};Pa.node;var Fa=r(Pa),Ia={name:`layout-grid`,size:24,node:[[`rect`,{width:`7`,height:`7`,x:`3`,y:`3`,rx:`1`,key:`1g98yp`}],[`rect`,{width:`7`,height:`7`,x:`14`,y:`3`,rx:`1`,key:`6d4xhi`}],[`rect`,{width:`7`,height:`7`,x:`14`,y:`14`,rx:`1`,key:`nxv5o0`}],[`rect`,{width:`7`,height:`7`,x:`3`,y:`14`,rx:`1`,key:`1bb6yr`}]]};Ia.node;var La=r(Ia),Ra={name:`menu`,size:24,node:[[`path`,{d:`M4 5h16`,key:`1tepv9`}],[`path`,{d:`M4 12h16`,key:`1lakjw`}],[`path`,{d:`M4 19h16`,key:`1djgab`}]]};Ra.node;var za=r(Ra),Ba={name:`mic`,size:24,node:[[`path`,{d:`M12 19v3`,key:`npa21l`}],[`path`,{d:`M19 10v2a7 7 0 0 1-14 0v-2`,key:`1vc78b`}],[`rect`,{x:`9`,y:`2`,width:`6`,height:`13`,rx:`3`,key:`s6n7sd`}]]};Ba.node;var Va=r(Ba),Ha={name:`monitor`,size:24,node:[[`rect`,{width:`20`,height:`14`,x:`2`,y:`3`,rx:`2`,key:`48i651`}],[`line`,{x1:`8`,x2:`16`,y1:`21`,y2:`21`,key:`1svkeh`}],[`line`,{x1:`12`,x2:`12`,y1:`17`,y2:`21`,key:`vw1qmm`}]]};Ha.node;var Ua=r(Ha),Wa={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`}]]};Wa.node;var Ga=r(Wa),Ka={name:`rotate-ccw-clock`,size:24,node:[[`path`,{d:`M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`,key:`1357e3`}],[`path`,{d:`M3 3v5h5`,key:`1xhq8a`}],[`path`,{d:`M12 7v5l4 2`,key:`1fdv2h`}]],aliases:[`history`]};Ka.node;var qa=r(Ka),Ja={name:`route`,size:24,node:[[`circle`,{cx:`6`,cy:`19`,r:`3`,key:`1kj8tv`}],[`path`,{d:`M9 19h8.5a3.5 3.5 0 0 0 0-7h-11a3.5 3.5 0 0 1 0-7H15`,key:`1d8sl`}],[`circle`,{cx:`18`,cy:`5`,r:`3`,key:`gq8acd`}]]};Ja.node;var Ya=r(Ja),Xa={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`}]]};Xa.node;var Za=r(Xa),Qa={name:`search`,size:24,node:[[`path`,{d:`m21 21-4.34-4.34`,key:`14j7rj`}],[`circle`,{cx:`11`,cy:`11`,r:`8`,key:`4ej97u`}]]};Qa.node;var $a=r(Qa),eo={name:`server`,size:24,node:[[`rect`,{width:`20`,height:`8`,x:`2`,y:`2`,rx:`2`,ry:`2`,key:`ngkwjq`}],[`rect`,{width:`20`,height:`8`,x:`2`,y:`14`,rx:`2`,ry:`2`,key:`iecqi9`}],[`line`,{x1:`6`,x2:`6.01`,y1:`6`,y2:`6`,key:`16zg32`}],[`line`,{x1:`6`,x2:`6.01`,y1:`18`,y2:`18`,key:`nzw8ys`}]]};eo.node;var to=r(eo),no={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`}]]};no.node;var ro=r(no),io={name:`shield-check`,size:24,node:[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}],[`path`,{d:`m9 12 2 2 4-4`,key:`dzmm74`}]]};io.node;var ao=r(io),oo={name:`shuffle`,size:24,node:[[`path`,{d:`m18 14 4 4-4 4`,key:`10pe0f`}],[`path`,{d:`m18 2 4 4-4 4`,key:`pucp1d`}],[`path`,{d:`M2 18h1.973a4 4 0 0 0 3.3-1.7l5.454-8.6a4 4 0 0 1 3.3-1.7H22`,key:`1ailkh`}],[`path`,{d:`M2 6h1.972a4 4 0 0 1 3.6 2.2`,key:`km57vx`}],[`path`,{d:`M22 18h-6.041a4 4 0 0 1-3.3-1.8l-.359-.45`,key:`os18l9`}]]};oo.node;var so=r(oo),co={name:`triangle-alert`,size:24,node:[[`path`,{d:`m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3`,key:`wmoenq`}],[`path`,{d:`M12 9v4`,key:`juzpu7`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]],aliases:[`alert-triangle`]};co.node;var lo=r(co),uo={name:`workflow`,size:24,node:[[`rect`,{width:`8`,height:`8`,x:`3`,y:`3`,rx:`2`,key:`by2w9f`}],[`path`,{d:`M7 11v4a2 2 0 0 0 2 2h4`,key:`xkn7yn`}],[`rect`,{width:`8`,height:`8`,x:`13`,y:`13`,rx:`2`,key:`1cgmvn`}]]};uo.node;var fo=r(uo),po={name:`x`,size:24,node:[[`path`,{d:`M18 6 6 18`,key:`1bl5f8`}],[`path`,{d:`m6 6 12 12`,key:`d8bk6v`}]]};po.node;var mo=r(po),ho={name:`zap`,size:24,node:[[`path`,{d:`M15.914 4a1.5 1.5 0 00-2.474-1.561l-9 9A1.5 1.5 0 005.5 14h4.002a.5.5 0 01.471.666L8.086 20a1.5 1.5 0 002.475 1.56l9-9A1.5 1.5 0 0018.5 10h-3.997a.5.5 0 01-.472-.667z`,key:`1v7up4`}]]};ho.node;var go=r(ho);function _o(e){return e?.text?e.zeit?`${e.text} ${O(e.zeit)}`:e.text:null}var vo={"ki-box":`KI-Box`,"proxmox-host":`Proxmox-Host`,container:`Container`,vm:`VM`};function yo(e){let t=e.id.match(/-(\d+)$/)?.[1],n=vo[e.art]??e.art;return t?`${n} ${t}`:n}var bo={"Proxmox-Host":`Proxmox`,"AdGuard Home":`AdGuard`,"PVE Scripts Local":`PVE Scripts`,"Proxmox Backup Server":`PBS`,"Arcane (Docker)":`Arcane`},xo=e=>bo[e.name]??e.name,So=new Set([`app`,`arcane`]),Co=e=>e.bausteine.find(e=>So.has(e.id))??null,wo=e=>e.bausteine.find(e=>!So.has(e.id))??null;function To(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 Eo(e){let t=e.bausteine.filter(e=>e.zustand===`neu`);return t.some(e=>e.aktion)?0:t.length>0?1:e.bausteine.some(e=>e.zustand===`unbekannt`)?2:3}function Do(e){let t=e.rueckweg_art??Oo(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 Oo(e){let t=(e??``).toLowerCase();return t.startsWith(`snapshot vor`)?`snapshot`:t.startsWith(`sicherung`)?`sicherung`:`keiner`}var ko=e=>So.has(e.id),Ao=e=>e.replace(/^Image vom /,``);function jo(e){return ko(e)&&e.verfuegbar?e.verfuegbar:`${e.kurz||e.verfuegbar||`neu`}${Mo(e)}`}function Mo(e){return e.sicherheit?` · ${e.sicherheit} Sicherheit`:``}function No(e){let t=e.platte;return t&&t.gesamt>0?t.belegt/t.gesamt:null}function Po(e,t){let n=xo(e),r=No(e);if(e.erreichbar===!1)return{id:e.id,label:n,zustand:`fehler`,wert:`antwortet nicht`};if(r!==null&&r>=.9)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>=.8)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=>So.has(e.id))??i[0];return{id:e.id,label:n,zustand:`info`,wert:So.has(t.id)&&t.verfuegbar?`→ ${t.verfuegbar}`:jo(t)}}let a=Co(e);return{id:e.id,label:n,zustand:`ok`,wert:a?.installiert?Ao(a.installiert):`aktuell`}}var Fo=e=>`${e} Hinweis${e===1?``:`e`}`;function Io(e,t,n,r){let i=t.filter(e=>e.zustand!==`stumm`),a=e.ziele.filter(e=>e.erreichbar===!1);if(a.length>0)return{art:`rot`,oben:`Störung`,mitte:a.length===1?`1 Gerät stumm`:`${a.length} Geräte stumm`,unten:a.map(xo).join(`, `),ziel:`geraete`};if(i.some(e=>e.stufe===`rot`))return{art:`rot`,oben:`Störung`,mitte:Fo(i.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(i.length>0)return{art:`gelb`,oben:`Achtung`,mitte:Fo(i.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 o=To(e.ziele).filter(e=>e.baustein.aktion).length;return o>0?{art:`info`,oben:`Homelab`,mitte:`${o} Update${o===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 Lo(e){return e?.match(/vom (\d{2}\.\d{2}\.\d{4})/)?.[1]??null}var Ro=[{id:`box`,name:`KI-Box`},{id:`homelab`,name:`Homelab`}],zo=[{to:`/`,label:`Übersicht`,Icon:La,ort:`uebersicht`},{to:`/box`,label:`Cockpit`,Icon:Ta,ort:`box`},{to:`/box/updates`,label:`Updates`,Icon:Ga,ort:`box`,zaehlt:!0},{to:`/box/modelle`,label:`Modelle`,Icon:ha,ort:`box`},{to:`/box/monitoring`,label:`Monitoring`,Icon:Gi,ort:`box`},{to:`/box/dienste`,label:`Dienste und Protokolle`,Icon:Za,ort:`box`},{to:`/homelab`,label:`Cockpit`,Icon:Ta,ort:`homelab`},{to:`/homelab/updates`,label:`Updates`,Icon:Ga,ort:`homelab`,zaehlt:!0},{to:`/homelab/snapshots`,label:`Snapshots`,Icon:qa,ort:`homelab`},{to:`/homelab/monitoring`,label:`Monitoring`,Icon:Gi,ort:`homelab`},{to:`/homelab/protokoll`,label:`Protokoll`,Icon:Za,ort:`homelab`},{to:`/einstellungen`,label:`Einstellungen`,Icon:ro,ort:`system`}],Bo={uebersicht:`Auf einen Blick`,box:`KI-Box`,homelab:`Homelab`,system:`Beide Instanzen`};function Vo(){let e=(0,R.c)(2),t=je({select:Ho}).replace(/\/+$/,``)||`/`,n;return e[0]===t?n=e[1]:(n=zo.find(e=>e.to===t)??zo[0],e[0]=t,e[1]=n),n}function Ho(e){return e.location.pathname}function V(){let e=(0,R.c)(19),t=c(),n=x(),r=A(),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`,l;e[0]!==a||e[1]!==s||e[2]!==i?(l=i===`box`?{box:a,homelab:s}:{box:s,homelab:a},e[0]=a,e[1]=s,e[2]=i,e[3]=l):l=e[3];let u=l,d=D(),f=k(u.homelab===`online`),p;e[4]===d.data?.ziele?p=e[5]:(p=d.data?.ziele??[],e[4]=d.data?.ziele,e[5]=p);let m;e[6]===p?m=e[7]:(m=p.reduce(Uo,0),e[6]=p,e[7]=m);let h=m,g;e[8]===f.data?.ziele?g=e[9]:(g=To(f.data?.ziele??[]).filter(H),e[8]=f.data?.ziele,e[9]=g);let _=g.length,v;e[10]!==h||e[11]!==u.box?(v={verbindung:u.box,updates:h},e[10]=h,e[11]=u.box,e[12]=v):v=e[12];let y;e[13]!==_||e[14]!==u.homelab?(y={verbindung:u.homelab,updates:_},e[13]=_,e[14]=u.homelab,e[15]=y):y=e[15];let b;return e[16]!==v||e[17]!==y?(b={box:v,homelab:y},e[16]=v,e[17]=y,e[18]=b):b=e[18],b}function H(e){return e.baustein.aktion}function Uo(e,t){return e+t.bausteine.filter(Wo).length}function Wo(e){return e.zustand===`neu`&&e.aktion}var Go={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 Ko(){let e=(0,R.c)(4),t=se(),n;e[0]===t?n=e[1]:(n=t.map(qo),e[0]=t,e[1]=n);let r;return e[2]===n?r=e[3]:(r=(0,I.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 qo(e){return(0,I.jsxs)(`div`,{role:e.art===`fehler`?`alert`:`status`,className:o(`pointer-events-auto flex w-full items-start gap-3 rounded-xl border px-4 py-3 text-[15px] shadow-lg`,Go[e.art]),children:[(0,I.jsx)(`span`,{className:`min-w-0 flex-1`,children:e.text}),(0,I.jsx)(`button`,{type:`button`,onClick:()=>ee(e.id),"aria-label":`Meldung schließen`,className:`-m-2 p-2 opacity-70 hover:opacity-100`,children:(0,I.jsx)(mo,{className:`size-4`})})]},e.id)}var Jo={online:{punkt:`bg-gruen shadow-[0_0_8px_var(--gruen)]`,text:`online`},verbinde:{punkt:`bg-bernstein`,text:`verbinde`},getrennt:{punkt:`bg-rot shadow-[0_0_8px_var(--rot)]`,text:`getrennt`},fehlt:{punkt:`bg-text-3`,text:`nicht eingerichtet`}},Yo={uebersicht:`data-[status=active]:from-bernstein/[0.16] before:bg-bernstein before:shadow-[0_0_12px_var(--bernstein)] data-[status=active]:[&>svg]:text-bernstein`,box:`data-[status=active]:from-box/[0.2] before:bg-box before:shadow-[0_0_12px_var(--box)] data-[status=active]:[&>svg]:text-box`,homelab:`data-[status=active]:from-lab/[0.2] before:bg-lab before:shadow-[0_0_12px_var(--lab)] data-[status=active]:[&>svg]:text-lab`,system:`data-[status=active]:from-white/[0.08] before:bg-text-2 data-[status=active]:[&>svg]:text-foreground`},Xo={box:{text:`text-box-text`,kachel:`from-box/30 to-box/[0.05] ring-box/35 text-box`,Icon:ra},homelab:{text:`text-lab-text`,kachel:`from-lab/30 to-lab/[0.05] ring-lab/35 text-lab`,Icon:to}},U=`group relative flex h-10 items-center gap-3 rounded-xl pr-3 pl-3.5 text-[14.5px] text-text-2 transition-colors hover:bg-white/[0.045] hover:text-foreground bg-gradient-to-r to-transparent data-[status=active]:text-foreground before:absolute before:top-2.5 before:bottom-2.5 before:left-0 before:w-[3px] before:rounded-full before:opacity-0 before:transition-opacity data-[status=active]:before:opacity-100`;function Zo(){let e=(0,R.c)(2),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,I.jsxs)(`span`,{className:`relative shrink-0`,children:[(0,I.jsx)(`span`,{"aria-hidden":!0,className:`absolute inset-1 rounded-xl bg-bernstein/35 blur-xl`}),(0,I.jsx)(`img`,{src:`/favicon.svg`,alt:``,width:40,height:40,className:`relative size-10`})]}),e[0]=t):t=e[0];let n;return e[1]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,I.jsxs)(`div`,{className:`flex items-center gap-3 px-1.5`,children:[t,(0,I.jsxs)(`span`,{className:`flex flex-col leading-none`,children:[(0,I.jsx)(`span`,{className:`text-[19px] font-semibold tracking-[0.01em]`,children:`Homelab`}),(0,I.jsx)(`span`,{className:`etikett mt-1.5 text-[10.5px] tracking-[0.32em] text-text-3`,children:`Orchestrator`})]})]}),e[1]=n):n=e[1],n}function Qo(e){let t=(0,R.c)(16),{s:n,zahl:r,onGewaehlt:i}=e,a=n.to,s=Yo[n.ort],c;t[0]===s?c=t[1]:(c=o(U,s),t[0]=s,t[1]=c);let l;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(l={exact:!0},t[2]=l):l=t[2];let u;t[3]===n.Icon?u=t[4]:(u=(0,I.jsx)(n.Icon,{className:`size-[18px] shrink-0 text-text-3 transition-colors group-hover:text-text-2`,"aria-hidden":!0}),t[3]=n.Icon,t[4]=u);let d;t[5]===n.label?d=t[6]:(d=(0,I.jsx)(`span`,{className:`flex-1`,children:n.label}),t[5]=n.label,t[6]=d);let f;t[7]===r?f=t[8]:(f=!!r&&(0,I.jsxs)(`span`,{className:`ziffern rounded-full bg-cyan/12 px-2 text-[11.5px] leading-5 font-medium text-cyan-text ring-1 ring-cyan/30 ring-inset`,children:[r,(0,I.jsxs)(`span`,{className:`sr-only`,children:[` `,r===1?`Update`:`Updates`,` bereit`]})]}),t[7]=r,t[8]=f);let p;return t[9]!==i||t[10]!==n.to||t[11]!==c||t[12]!==u||t[13]!==d||t[14]!==f?(p=(0,I.jsxs)(hi,{to:a,onClick:i,className:c,activeOptions:l,children:[u,d,f]}),t[9]=i,t[10]=n.to,t[11]=c,t[12]=u,t[13]=d,t[14]=f,t[15]=p):p=t[15],p}function $o(e){let t=(0,R.c)(14),{onGewaehlt:n}=e,r=V(),i=c().data?.rolle!==`homelab`,a=es,s;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(s=a(`/`),t[0]=s):s=t[0];let l;t[1]===n?l=t[2]:(l=(0,I.jsx)(Qo,{s,onGewaehlt:n}),t[1]=n,t[2]=l);let u;t[3]!==i||t[4]!==n||t[5]!==r?(u=Ro.map(e=>{let t=Jo[r[e.id].verbindung],a=Xo[e.id];return(0,I.jsxs)(`section`,{"aria-label":e.name,className:`flex flex-col gap-0.5`,children:[(0,I.jsxs)(`div`,{className:`flex items-center justify-between gap-2 pr-2 pb-2 pl-1`,children:[(0,I.jsxs)(`h2`,{className:o(`etikett flex items-center gap-2.5 text-[12px] tracking-[0.16em]`,a.text),children:[(0,I.jsx)(`span`,{"aria-hidden":!0,className:o(`flex size-6 items-center justify-center rounded-lg bg-gradient-to-br ring-1 ring-inset`,a.kachel),children:(0,I.jsx)(a.Icon,{className:`size-3.5`,strokeWidth:2})}),e.name]}),(0,I.jsxs)(`span`,{className:`flex items-center gap-1.5 text-[12px] text-text-3`,children:[(0,I.jsx)(`span`,{"aria-hidden":!0,className:o(`size-1.5 rounded-full`,t.punkt)}),t.text]})]}),zo.filter(t=>t.ort===e.id).map(t=>(0,I.jsx)(Qo,{s:t,zahl:t.zaehlt?r[e.id].updates:0,onGewaehlt:n},t.to)),e.id===`box`&&i&&(0,I.jsxs)(`a`,{href:`/hermes-ui/`,target:`_blank`,rel:`noopener`,className:U,children:[(0,I.jsx)(xa,{className:`size-[18px] shrink-0 text-text-3`,"aria-hidden":!0}),`Hermes-Dashboard`]})]},e.id)}),t[3]=i,t[4]=n,t[5]=r,t[6]=u):u=t[6];let d;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(d=a(`/einstellungen`),t[7]=d):d=t[7];let f;t[8]===n?f=t[9]:(f=(0,I.jsx)(`div`,{className:`mt-auto border-t border-white/[0.06] pt-4`,children:(0,I.jsx)(Qo,{s:d,onGewaehlt:n})}),t[8]=n,t[9]=f);let p;return t[10]!==l||t[11]!==u||t[12]!==f?(p=(0,I.jsxs)(`nav`,{"aria-label":`Hauptnavigation`,className:`flex flex-1 flex-col gap-7`,children:[l,u,f]}),t[10]=l,t[11]=u,t[12]=f,t[13]=p):p=t[13],p}function es(e){return zo.find(t=>t.to===e)}var ts=`modulepreload`,ns=function(e){return`/`+e},rs={},is=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=ns(t,n),t=s(t),t in rs)return;rs[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`:ts,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)})},as=(0,P.lazy)(()=>is(()=>import(`./MenueSchublade-BKl-sMAH.js`).then(e=>({default:e.MenueSchublade})),__vite__mapDeps([0,1,2,3,4]))),os=(0,P.lazy)(()=>is(()=>import(`./Befehlssuche-BiblzWWg.js`).then(e=>({default:e.Befehlssuche})),__vite__mapDeps([5,1,6,7,3,4]))),ss=new Intl.DateTimeFormat(`de-DE`,{hour:`2-digit`,minute:`2-digit`,timeZone:`Europe/Berlin`}),cs=new Intl.DateTimeFormat(`de-DE`,{weekday:`short`,timeZone:`Europe/Berlin`}),ls=new Intl.DateTimeFormat(`de-DE`,{day:`2-digit`,month:`2-digit`,timeZone:`Europe/Berlin`});function us(){let e=(0,R.c)(21),[t,n]=(0,P.useState)(ds),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,P.useEffect)(r,i);let a;e[2]===t?a=e[3]:(a=ss.format(t),e[2]=t,e[3]=a);let o;e[4]===a?o=e[5]:(o=(0,I.jsx)(`span`,{className:`ziffern text-[20px] leading-none font-medium sm:text-[22px]`,children:a}),e[4]=a,e[5]=o);let s;e[6]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,I.jsx)(`span`,{"aria-hidden":!0,className:`hidden h-7 w-px bg-white/10 sm:block`}),e[6]=s):s=e[6];let c;e[7]===t?c=e[8]:(c=cs.format(t).replace(`.`,``),e[7]=t,e[8]=c);let l;e[9]===c?l=e[10]:(l=(0,I.jsx)(`span`,{children:c}),e[9]=c,e[10]=l);let u;e[11]===t?u=e[12]:(u=ls.format(t),e[11]=t,e[12]=u);let d;e[13]===u?d=e[14]:(d=(0,I.jsx)(`span`,{className:`ziffern tracking-normal`,children:u}),e[13]=u,e[14]=d);let f;e[15]!==l||e[16]!==d?(f=(0,I.jsxs)(`span`,{className:`etikett hidden flex-col text-[10.5px] leading-[1.35] text-text-3 sm:flex`,children:[l,d]}),e[15]=l,e[16]=d,e[17]=f):f=e[17];let p;return e[18]!==o||e[19]!==f?(p=(0,I.jsxs)(`div`,{className:`flaeche flex items-center gap-3 rounded-2xl px-3 py-2 sm:px-4`,children:[o,s,f]}),e[18]=o,e[19]=f,e[20]=p):p=e[20],p}function ds(){return new Date}function fs(){let e=(0,R.c)(14),t=A(),n=t===`live`,r=n?`Verbunden`:t===`verbinde`?`Verbinde`:`Getrennt`,i=n?`text-text-3`:`text-bernstein`,a;e[0]===i?a=e[1]:(a=o(`etikett flex items-center gap-1.5 text-[11px] tracking-[0.12em]`,i),e[0]=i,e[1]=a);let s=n?`bg-gruen shadow-[0_0_8px_var(--gruen)]`:`bg-bernstein`,c;e[2]===s?c=e[3]:(c=o(`size-2 rounded-full`,s),e[2]=s,e[3]=c);let l;e[4]===c?l=e[5]:(l=(0,I.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,I.jsx)(`span`,{className:u,children:d}),e[6]=u,e[7]=d,e[8]=f):f=e[8];let p;return e[9]!==r||e[10]!==a||e[11]!==l||e[12]!==f?(p=(0,I.jsxs)(`span`,{role:`status`,title:r,className:a,children:[l,f]}),e[9]=r,e[10]=a,e[11]=l,e[12]=f,e[13]=p):p=e[13],p}var ps={uebersicht:`text-bernstein`,box:`text-box-text`,homelab:`text-lab-text`,system:`text-text-3`};function ms(e){let t=(0,R.c)(3),n,r;t[0]===e?(n=t[1],r=t[2]):(n=()=>{let t=t=>{(t.ctrlKey||t.metaKey)&&!t.altKey&&t.key.toLowerCase()===`k`&&(t.preventDefault(),e())};return window.addEventListener(`keydown`,t),()=>window.removeEventListener(`keydown`,t)},r=[e],t[0]=e,t[1]=n,t[2]=r),(0,P.useEffect)(n,r)}function hs(){let e=(0,R.c)(33);te();let[t,n]=(0,P.useState)(!1),[r,i]=(0,P.useState)(!1),a=Vo(),s;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(s=()=>i(!0),e[0]=s):s=e[0],ms(s);let c;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,I.jsxs)(`aside`,{className:`sticky top-0 hidden h-dvh flex-col gap-9 overflow-y-auto border-r border-white/[0.06] bg-[rgb(8_11_17/0.72)] px-4 py-7 backdrop-blur-xl lg:flex`,children:[(0,I.jsx)(Zo,{}),(0,I.jsx)($o,{})]}),e[1]=c):c=e[1];let l;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(l=()=>n(!0),e[2]=l):l=e[2];let u;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,I.jsx)(`button`,{type:`button`,onClick:l,className:`-ml-2 flex size-11 shrink-0 items-center justify-center rounded-lg text-text-2 hover:bg-white/[0.06] hover:text-foreground lg:hidden`,"aria-label":`Menü öffnen`,children:(0,I.jsx)(za,{className:`size-6`})}),e[3]=u):u=e[3];let d=ps[a.ort],f;e[4]===d?f=e[5]:(f=o(`etikett truncate text-[11.5px] tracking-[0.22em] whitespace-nowrap`,d),e[4]=d,e[5]=f);let p=Bo[a.ort],m;e[6]!==f||e[7]!==p?(m=(0,I.jsx)(`span`,{className:f,children:p}),e[6]=f,e[7]=p,e[8]=m):m=e[8];let h;e[9]===a.label?h=e[10]:(h=(0,I.jsx)(`h1`,{className:`truncate text-[26px] leading-none font-semibold tracking-[-0.01em] md:text-[32px]`,children:a.label}),e[9]=a.label,e[10]=h);let g;e[11]!==m||e[12]!==h?(g=(0,I.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[u,(0,I.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1.5`,children:[m,h]})]}),e[11]=m,e[12]=h,e[13]=g):g=e[13];let _;e[14]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,I.jsx)(`span`,{className:`lg:hidden`,children:(0,I.jsx)(fs,{})}),e[14]=_):_=e[14];let v;e[15]===Symbol.for(`react.memo_cache_sentinel`)?(v=()=>i(!0),e[15]=v):v=e[15];let y;e[16]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,I.jsxs)(`div`,{className:`flex items-center gap-3 sm:gap-4`,children:[_,(0,I.jsxs)(`button`,{type:`button`,onClick:v,className:`flex size-11 shrink-0 items-center justify-center gap-2 rounded-xl text-text-2 hover:bg-white/[0.06] hover:text-foreground md:w-auto md:px-3`,"aria-label":`Suchen (Strg+K)`,title:`Suchen (Strg+K)`,children:[(0,I.jsx)($a,{className:`size-5`,"aria-hidden":!0}),(0,I.jsx)(`kbd`,{className:`hidden rounded-md border border-white/10 px-1.5 py-0.5 font-sans text-[11px] text-text-3 md:block`,children:`Strg K`})]}),(0,I.jsx)(us,{})]}),e[16]=y):y=e[16];let b;e[17]===g?b=e[18]:(b=(0,I.jsxs)(`header`,{className:`flex items-center justify-between gap-4 md:pb-1`,children:[g,y]}),e[17]=g,e[18]=b);let x;e[19]===Symbol.for(`react.memo_cache_sentinel`)?(x=(0,I.jsx)(`main`,{className:`flex min-w-0 flex-col gap-5 md:gap-6`,children:(0,I.jsx)(ji,{})}),e[19]=x):x=e[19];let S;e[20]===b?S=e[21]:(S=(0,I.jsxs)(`div`,{className:`mx-auto flex w-full max-w-[1360px] min-w-0 flex-col gap-5 px-4 pt-4 pb-12 sm:px-6 md:gap-6 md:px-10 md:pt-8`,children:[b,x]}),e[20]=b,e[21]=S);let C;e[22]===t?C=e[23]:(C=t&&(0,I.jsx)(as,{onSchliessen:()=>n(!1)}),e[22]=t,e[23]=C);let w;e[24]===r?w=e[25]:(w=r&&(0,I.jsx)(os,{onSchliessen:()=>i(!1)}),e[24]=r,e[25]=w);let T;e[26]!==C||e[27]!==w?(T=(0,I.jsxs)(P.Suspense,{fallback:null,children:[C,w]}),e[26]=C,e[27]=w,e[28]=T):T=e[28];let E;e[29]===Symbol.for(`react.memo_cache_sentinel`)?(E=(0,I.jsx)(Ko,{}),e[29]=E):E=e[29];let D;return e[30]!==S||e[31]!==T?(D=(0,I.jsxs)(`div`,{className:`min-h-dvh lg:grid lg:grid-cols-[272px_minmax(0,1fr)]`,children:[c,S,T,E]}),e[30]=S,e[31]=T,e[32]=D):D=e[32],D}var gs={gruen:`bg-gruen/10 text-gruen ring-gruen/30`,bernstein:`bg-bernstein/10 text-bernstein ring-bernstein/35`,cyan:`bg-cyan/10 text-cyan-text ring-cyan/30`,rot:`bg-rot/12 text-rot-text ring-rot/40`,grau:`bg-white/[0.04] text-text-2 ring-white/12`};function _s(e){let t=(0,R.c)(6),{art:n,children:r}=e,i=gs[n===void 0?`grau`:n],a;t[0]===i?a=t[1]:(a=o(`etikett inline-flex h-6 items-center gap-1.5 rounded-full px-2.5 text-[11px] tracking-[0.08em] whitespace-nowrap ring-1 ring-inset`,i),t[0]=i,t[1]=a);let s;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,I.jsx)(`span`,{"aria-hidden":!0,className:`size-1.5 shrink-0 rounded-full bg-current opacity-90`}),t[2]=s):s=t[2];let c;return t[3]!==r||t[4]!==a?(c=(0,I.jsxs)(`span`,{className:a,children:[s,r]}),t[3]=r,t[4]=a,t[5]=c):c=t[5],c}function vs(e){let t=(0,R.c)(6),{fehler:n,text:r}=e,i=n?`alert`:`status`,a=n?`border border-rot-rand bg-rot-grund text-rot-text`:`flaeche text-text-2`,s;t[0]===a?s=t[1]:(s=o(`rounded-2xl px-5 py-8 text-center text-[15px]`,a),t[0]=a,t[1]=s);let c;return t[2]!==i||t[3]!==s||t[4]!==r?(c=(0,I.jsx)(`div`,{role:i,className:s,children:r}),t[2]=i,t[3]=s,t[4]=r,t[5]=c):c=t[5],c}var ys=new Set(`actual-budget.adguard-home.affine.alpine-linux.ansible.appflowy.apprise.arcane.audiobookshelf.authelia.authentik.baserow.bazarr.beszel.bitwarden.bookstack.borgmatic.caddy.calibre-web.changedetection.checkmk.claude.cloudflare.cockpit.comfyui.crafty-controller.crowdsec.debian.deluge.docker.dockge.docmost.dozzle.draw-io.duplicati.elasticsearch.element.emby.esphome.excalidraw.firefly-iii.flatnotes.forgejo.freshrss.frigate.gatus.gitea.github.gitlab.glance.glances.go2rtc.gotify.grafana.grocy.harbor.headscale.healthchecks.hedgedoc.heimdall.hermes-agent.homarr.home-assistant.homebridge.homepage.immich.immich-kiosk.influxdb.it-tools.jellyfin.jellyseerr.jenkins.jitsi-meet.joplin.kavita.keycloak.komga.komodo.kopia.kubernetes.librenms.librespeed.lidarr.linkding.linux.linux-containers-lxc.linuxserver-io.llama-cpp.logseq.loki.mariadb.matomo.matrix.mattermost.mealie.minecraft.miniflux.minio.mongodb.mosquitto.n8n.navidrome.netbird.netdata.nextcloud.nginx.nginx-proxy-manager.nocodb.node-red.ntfy.nzbget.obsidian.ollama.onlyoffice.open-webui.openai.openmediavault.openwrt.opnsense.outline.overseerr.paperless-ngx.penpot.pfsense.photoprism.pi-hole.pingvin-share.piwigo.planka.plausible.plex.portainer.postgresql.privatebin.prometheus.prowlarr.proxmox.proxmox-helper-scripts.pterodactyl.qbittorrent.qnap.rabbitmq.radarr.rancher.rclone.readarr.redis.rocket-chat.rustdesk.sabnzbd.scrutiny.scrypted.seafile.searxng.semaphore.sonarr.speedtest-tracker.stirling-pdf.syncthing.synology.tailscale.tautulli.telegram.traefik.transmission.ubuntu.umami.unraid.uptime-kuma.vaultwarden.vikunja.wallabag.watchtower.webmin.wekan.wiki-js.wireguard.woodpecker-ci.wordpress.zabbix.zigbee2mqtt`.split(`.`)),bs={ok:`bg-gruen shadow-[0_0_8px_var(--gruen)]`,warn:`bg-bernstein shadow-[0_0_8px_var(--bernstein)]`,rot:`bg-rot shadow-[0_0_8px_var(--rot)]`,info:`bg-cyan shadow-[0_0_8px_var(--cyan)]`,aus:`bg-text-3`},xs=[[/adguard|pi-?hole/i,ao],[/npm|nginx proxy/i,Ya,`nginx-proxy-manager`],[/traefik|caddy/i,Ya],[/netbird|wireguard|tailscale/i,Zi],[/gitea|forgejo|gitlab/i,Da],[/backup server|\bpbs\b/i,_a,`proxmox`],[/arcane|docker|portainer|dockge|komodo/i,pa],[/pve scripts|helper.?scripts|community.?scripts/i,Ca,`proxmox-helper-scripts`],[/scripts/i,Ca],[/home ?assistant/i,ja],[/jellyfin|plex|emby/i,la],[/\bnas\b|qnap|truenas|synology/i,ka],[/postgres/i,ya,`postgresql`],[/mariadb|mysql|mongo|redis|valkey/i,ya]];function Ss(e){return e.toLowerCase().replace(/\(.*?\)/g,``).trim().replace(/[^a-z0-9]+/g,`-`).replace(/^-|-$/g,``)}function Cs(e,t){if(t&&ys.has(t))return t;let n=Ss(e);if(ys.has(n))return n;let r=n.split(`-`)[0];return r.length>2&&ys.has(r)?r:void 0}function ws(e){if(e.art===`ki-box`)return{Icon:ra,bereich:`box`};if(e.art===`proxmox-host`)return{Icon:to,bereich:`homelab`,logo:Cs(`proxmox`)};let t=xs.find(([t])=>t.test(e.name));return{Icon:t?.[1]??(e.art===`vm`?Ua:ta),bereich:`homelab`,logo:Cs(e.name,t?.[2])}}var Ts={os:[Na,`ubuntu`],engine:[go,`llama-cpp`],motor:[go,`llama-cpp`],swap:[so],hermes:[$i,`hermes-agent`],hirn:[ra],coder:[da],jobs:[fo],sicherung:[_a],platte:[ka],updates:[Ga]},Es=[[/^hermes/,$i,`hermes-agent`],[/^llama-swap/,so],[/^mc2-gateway/,Ya],[/^mc2-steward/,ao],[/^mission-control/,Fa],[/^voice/,Va],[/^lucy-stimme/,Yi]];function Ds(e){let t=Es.find(([t])=>t.test(e)),n=t?.[2];return{Icon:t?.[1]??ta,bereich:`box`,logo:n&&ys.has(n)?n:void 0}}function Os(e){let[t,n]=Ts[e]??[ta];return{Icon:t,bereich:`box`,logo:n&&ys.has(n)?n:void 0}}var ks={box:`from-box/30 to-box/[0.05] ring-box/35 text-box-text`,homelab:`from-lab/30 to-lab/[0.05] ring-lab/35 text-lab-text`},As={box:`from-white/[0.1] to-white/[0.03] ring-box/30`,homelab:`from-white/[0.1] to-white/[0.03] ring-lab/30`},js={box:`shadow-[0_0_28px_-6px_var(--box)]`,homelab:`shadow-[0_0_28px_-6px_var(--lab)]`},Ms={sm:{kachel:`size-8 rounded-[10px]`,icon:`size-4`,logo:`size-5`,punkt:`size-2.5`},md:{kachel:`size-10 rounded-xl`,icon:`size-5`,logo:`size-6`,punkt:`size-2.5`},lg:{kachel:`size-12 rounded-2xl`,icon:`size-6`,logo:`size-7`,punkt:`size-3`}};function Ns(e){let t=(0,R.c)(17),{bild:n,groesse:r,punkt:i,leuchtet:a,className:s}=e,c=r===void 0?`md`:r,l=a!==void 0&&a,u=Ms[c],d=n.logo?As[n.bereich]:ks[n.bereich],f=l&&js[n.bereich],p;t[0]!==s||t[1]!==u.kachel||t[2]!==d||t[3]!==f?(p=o(`relative inline-flex shrink-0 items-center justify-center bg-gradient-to-br ring-1 ring-inset`,d,u.kachel,f,s),t[0]=s,t[1]=u.kachel,t[2]=d,t[3]=f,t[4]=p):p=t[4];let m;t[5]!==n.Icon||t[6]!==n.logo||t[7]!==u.icon||t[8]!==u.logo?(m=n.logo?(0,I.jsx)(`img`,{src:`/logos/${n.logo}.svg`,alt:``,className:o(`object-contain`,u.logo),loading:`lazy`,draggable:!1}):(0,I.jsx)(n.Icon,{className:u.icon,strokeWidth:1.75}),t[5]=n.Icon,t[6]=n.logo,t[7]=u.icon,t[8]=u.logo,t[9]=m):m=t[9];let h;t[10]!==u.punkt||t[11]!==i?(h=i&&(0,I.jsx)(`span`,{className:o(`absolute -right-0.5 -bottom-0.5 rounded-full ring-2 ring-[#0b0f16]`,u.punkt,bs[i])}),t[10]=u.punkt,t[11]=i,t[12]=h):h=t[12];let g;return t[13]!==p||t[14]!==m||t[15]!==h?(g=(0,I.jsxs)(`span`,{"aria-hidden":!0,className:p,children:[m,h]}),t[13]=p,t[14]=m,t[15]=h,t[16]=g):g=t[16],g}var Ps=new Intl.NumberFormat(`de-DE`,{maximumFractionDigits:1}),Fs=new Intl.NumberFormat(`de-DE`,{maximumFractionDigits:0});function Is(e){return e<1e3?`${Fs.format(e)} B/s`:e<1e6?`${Ps.format(e/1e3)} KB/s`:e<1e9?`${Ps.format(e/1e6)} MB/s`:`${Ps.format(e/1e9)} GB/s`}function Ls(e,t){return e==null||Number.isNaN(e)?`–`:t===`prozent`?`${Fs.format(e)} %`:t===`grad`?`${Fs.format(e)} °C`:t===`bytes_s`?Is(e):Fs.format(e)}function Rs(e){if(!e)return null;for(let t=e.length-1;t>=0;t--){let n=e[t][1];if(n!==null)return n}return null}function zs(e,t){if(t===`prozent`)return 100;let n=0;for(let t of e)for(let[,e]of t??[])e!==null&&e>n&&(n=e);if(t===`grad`)return Math.max(60,Math.ceil((n+5)/10)*10);if(n<=0)return 1;let r=10**Math.floor(Math.log10(n));for(let e of[1,2,2.5,5,10])if(e*r>=n)return e*r;return 10*r}function Bs(e,t,n){return e===null?`ruhig`:e>=n?`rot`:e>=t?`gelb`:`ruhig`}var Vs=new Intl.DateTimeFormat(`de-DE`,{hour:`2-digit`,minute:`2-digit`,timeZone:`Europe/Berlin`}),Hs=new Intl.DateTimeFormat(`de-DE`,{weekday:`short`,hour:`2-digit`,minute:`2-digit`,timeZone:`Europe/Berlin`});function Us(e,t){let n=new Date(e*1e3);return(t?Hs:Vs).format(n).replace(`,`,``)}function Ws(e){if(!e||e<0)return`–`;let t=Math.floor(e/86400),n=Math.floor(e%86400/3600),r=Math.floor(e%3600/60);return t>0?`${t} T ${n} h`:n>0?`${n} h ${r} min`:`${r} min`}function Gs(e){return e<1?`in weniger als einem Tag`:e<1.5?`in etwa einem Tag`:e<21?`in etwa ${Math.round(e)} Tagen`:e<90?`in etwa ${Math.round(e/7)} Wochen`:e<365?`in etwa ${Math.round(e/30)} Monaten`:`frühestens in einem Jahr`}function Ks(e){return e?.tage==null?`ok`:e.tage<3?`rot`:e.tage<14?`gelb`:`ok`}function qs(e,t=1/0){return e?.tage==null||e.tage>=t?null:`voll ${Gs(e.tage)}`}function Js(e){return e?.rate==null?null:`+${e.rate.toFixed(1).replace(`.`,`,`)} % am Tag`}var Ys={ok:`text-text-3`,gelb:`text-bernstein`,rot:`text-rot-text`};function Xs(e){let t=qs(e,60);return t?{text:t,stufe:Ks(e)}:null}function Zs(e,t,n){let r=``,i=!1;for(let[a,o]of e){if(o===null){i=!1;continue}r+=`${i?`L`:`M`}${t(a).toFixed(1)},${n(o).toFixed(1)}`,i=!0}return r}function Qs(e,t,n,r){let i=``,a=[],o=()=>{a.length>1&&(i+=`M${a[0][0].toFixed(1)},${r}`+a.map(([e,t])=>`L${e.toFixed(1)},${t.toFixed(1)}`).join(``)+`L${a[a.length-1][0].toFixed(1)},${r}Z`),a=[]};for(let[r,i]of e)i===null?o():a.push([t(r),n(i)]);return o(),i}function $s(e){if(!Number.isFinite(e)||e<=0)return[0,1];for(let t=0;;t++)for(let n of[1,2,2.5,5]){let r=n*10**t;if(!Number.isInteger(r))continue;let i=Math.ceil(e/r);if(i<=4)return Array.from({length:i+1},(e,t)=>t*r)}}var ec=e=>Number(e.toFixed(1));function tc(e,t,n,r,i=4){let a=Math.max(0,Math.min(i,n/2,r));return`M${ec(e)},${ec(t+r)}V${ec(t+a)}Q${ec(e)},${ec(t)} ${ec(e+a)},${ec(t)}H${ec(e+n-a)}Q${ec(e+n)},${ec(t)} ${ec(e+n)},${ec(t+a)}V${ec(t+r)}Z`}function nc(e,t,n=2){let r=[],i=0;e.forEach((e,a)=>{if(!(e>0))return;let o=t(i);i+=e;let s=t(i);r.push({index:a,y:s,hoehe:Math.max(0,o-s-(r.length?n:0)),oben:!1})});let a=r.filter(e=>e.hoehe>=1).at(-1);return a&&(a.oben=!0),r}function rc(e){let t=(0,R.c)(26),{punkte:n,max:r,farbe:i,hoehe:a,beschriftung:o}=e,s=i===void 0?`var(--reihe-1)`:i,c=a===void 0?36:a,l=n[0]?.[0]??0,u=n[n.length-1]?.[0]??1,d;t[0]!==l||t[1]!==u?(d=e=>u>l?(e-l)/(u-l)*100:0,t[0]=l,t[1]=u,t[2]=d):d=t[2];let f=d,p;t[3]!==c||t[4]!==r?(p=e=>c-2-Math.min(e,r)/(r||1)*(c-4),t[3]=c,t[4]=r,t[5]=p):p=t[5];let m=p,h;t[6]===n?h=t[7]:(h=n.some(ic),t[6]=n,t[7]=h);let g=h,_=(0,P.useId)(),v;if(t[8]!==_){let e;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(e=/[^a-zA-Z0-9_-]/g,t[10]=e):e=t[10],v=_.replace(e,``),t[8]=_,t[9]=v}else v=t[9];let y=`sl${v}`,b=`0 0 100 ${c}`,x;t[11]===c?x=t[12]:(x={height:c},t[11]=c,t[12]=x);let S;t[13]!==s||t[14]!==g||t[15]!==c||t[16]!==n||t[17]!==y||t[18]!==f||t[19]!==m?(S=g&&(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(`defs`,{children:(0,I.jsxs)(`linearGradient`,{id:y,x1:`0`,y1:`0`,x2:`0`,y2:`1`,children:[(0,I.jsx)(`stop`,{offset:`0`,stopColor:s,stopOpacity:.3}),(0,I.jsx)(`stop`,{offset:`1`,stopColor:s,stopOpacity:0})]})}),(0,I.jsx)(`path`,{d:Qs(n,f,m,c),fill:`url(#${y})`}),(0,I.jsx)(`path`,{d:Zs(n,f,m),fill:`none`,stroke:s,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`,vectorEffect:`non-scaling-stroke`})]}),t[13]=s,t[14]=g,t[15]=c,t[16]=n,t[17]=y,t[18]=f,t[19]=m,t[20]=S):S=t[20];let C;return t[21]!==o||t[22]!==S||t[23]!==b||t[24]!==x?(C=(0,I.jsx)(`svg`,{role:`img`,"aria-label":o,viewBox:b,preserveAspectRatio:`none`,className:`block w-full`,style:x,children:S}),t[21]=o,t[22]=S,t[23]=b,t[24]=x,t[25]=C):C=t[25],C}function ic(e){let[,t]=e;return t!==null}var ac={ruhig:{wert:`text-foreground`,marke:null},gelb:{wert:`text-bernstein`,marke:`hoch`},rot:{wert:`text-rot-text`,marke:`kritisch`}},oc=48,sc=37,cc=2*Math.PI*sc,lc=cc*.75;function uc(e,t){let n=(135+270*e)*Math.PI/180;return{x:oc+t*Math.cos(n),y:oc+t*Math.sin(n)}}function dc(e){let t=(0,R.c)(49),{label:n,wert:r,einheit:i,punkte:a,zustand:s,bereich:c,grenzen:l,max:u,zeitraumText:d,i:f,hinweis:p}=e,m=s===void 0?`ruhig`:s,h=u===void 0?100:u,g=f===void 0?0:f,_=ac[m],v=m===`rot`?`var(--rot)`:m===`gelb`?`var(--bernstein)`:c===`box`?`var(--box)`:`var(--lab)`,y=r==null?0:Math.min(Math.max(r/h,0),1),b;t[0]!==i||t[1]!==r?(b=Ls(r,i).split(` `),t[0]=i,t[1]=r,t[2]=b):b=t[2];let[x,S]=b,C;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(C=(0,I.jsx)(`circle`,{cx:oc,cy:oc,r:sc,fill:`none`,stroke:`rgb(255 255 255 / 0.07)`,strokeWidth:7,strokeLinecap:`round`,strokeDasharray:`${lc} ${cc}`,transform:`rotate(135 ${oc} ${oc})`}),t[3]=C):C=t[3];let w;if(t[4]!==l||t[5]!==h){let e;t[7]===h?e=t[8]:(e=(e,t)=>{let n=uc(Math.min(e/h,1),43),r=uc(Math.min(e/h,1),46.5);return(0,I.jsx)(`line`,{x1:n.x,y1:n.y,x2:r.x,y2:r.y,strokeWidth:1.5,strokeLinecap:`round`,stroke:t===0?`var(--bernstein)`:`var(--rot)`,opacity:.55},e)},t[7]=h,t[8]=e),w=l.map(e),t[4]=l,t[5]=h,t[6]=w}else w=t[6];let T;t[9]!==y||t[10]!==v||t[11]!==g||t[12]!==r?(T=r!=null&&y>0&&(0,I.jsx)(`circle`,{cx:oc,cy:oc,r:sc,fill:`none`,stroke:v,strokeWidth:7,strokeLinecap:`round`,strokeDasharray:`${Math.max(lc*y,.5)} ${cc}`,transform:`rotate(135 ${oc} ${oc})`,className:`ring-fuellt transition-[stroke-dasharray] duration-700`,style:{"--i":g,filter:`drop-shadow(0 0 5px color-mix(in srgb, ${v} 65%, transparent))`}}),t[9]=y,t[10]=v,t[11]=g,t[12]=r,t[13]=T):T=t[13];let E;t[14]!==w||t[15]!==T?(E=(0,I.jsxs)(`svg`,{viewBox:`0 0 96 96`,className:`size-full`,"aria-hidden":!0,children:[C,w,T]}),t[14]=w,t[15]=T,t[16]=E):E=t[16];let D;t[17]===_.wert?D=t[18]:(D=o(`font-anzeige text-[26px] leading-none font-semibold tabular-nums`,_.wert),t[17]=_.wert,t[18]=D);let O;t[19]!==D||t[20]!==x?(O=(0,I.jsx)(`span`,{className:D,children:x}),t[19]=D,t[20]=x,t[21]=O):O=t[21];let k;t[22]===S?k=t[23]:(k=S&&(0,I.jsx)(`span`,{className:`ml-0.5 self-center pt-1.5 text-[12px] font-medium text-text-3`,children:S}),t[22]=S,t[23]=k);let ee;t[24]!==O||t[25]!==k?(ee=(0,I.jsxs)(`span`,{className:`absolute inset-0 flex items-center justify-center pt-1`,children:[O,k]}),t[24]=O,t[25]=k,t[26]=ee):ee=t[26];let A;t[27]!==ee||t[28]!==E?(A=(0,I.jsxs)(`div`,{className:`relative size-[88px]`,children:[E,ee]}),t[27]=ee,t[28]=E,t[29]=A):A=t[29];let te;t[30]!==_.marke||t[31]!==_.wert?(te=_.marke&&(0,I.jsxs)(`span`,{className:_.wert,children:[`· `,_.marke]}),t[30]=_.marke,t[31]=_.wert,t[32]=te):te=t[32];let ne;t[33]!==n||t[34]!==te?(ne=(0,I.jsxs)(`span`,{className:`etikett -mt-1 flex items-center gap-1.5 text-[10.5px] text-text-3`,children:[n,te]}),t[33]=n,t[34]=te,t[35]=ne):ne=t[35];let re;t[36]!==v||t[37]!==n||t[38]!==h||t[39]!==a||t[40]!==d?(re=(0,I.jsx)(`div`,{className:`w-full px-1`,children:a&&a.length>1?(0,I.jsx)(rc,{punkte:a,max:h,farbe:v,hoehe:20,beschriftung:`${n}, ${d}`}):(0,I.jsx)(`span`,{className:`block h-5`,"aria-hidden":!0})}),t[36]=v,t[37]=n,t[38]=h,t[39]=a,t[40]=d,t[41]=re):re=t[41];let ie;t[42]===p?ie=t[43]:(ie=p&&(0,I.jsx)(`span`,{className:o(`text-center text-[11px] leading-tight`,Ys[p.stufe]),children:p.text}),t[42]=p,t[43]=ie);let ae;return t[44]!==A||t[45]!==ne||t[46]!==re||t[47]!==ie?(ae=(0,I.jsxs)(`div`,{className:`flaeche-innen flex min-w-0 flex-col items-center gap-1 rounded-2xl px-2 pt-2.5 pb-2`,children:[A,ne,re,ie]}),t[44]=A,t[45]=ne,t[46]=re,t[47]=ie,t[48]=ae):ae=t[48],ae}var fc={ok:`var(--gruen)`,rot:`var(--rot)`,aus:`rgb(135 146 164 / 0.45)`},pc={ok:`erreichbar`,rot:`antwortet nicht`,aus:`kein Stand`},mc=90,hc=72,gc=9,_c=2*Math.PI*hc;function vc(e){let t=(0,R.c)(32),{segmente:n,glut:r}=e,i=Math.max(n.length,1),a=_c/i,o=i>1?14:0,s=Math.max(a-o,.5),c;t[0]===n?c=t[1]:(c=n.filter(yc),t[0]=n,t[1]=c);let l=c.length,u=`drop-shadow(0 0 14px color-mix(in srgb, ${r} 40%, transparent))`,d;t[2]===u?d=t[3]:(d={filter:u},t[2]=u,t[3]=d);let f,p,m;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,I.jsx)(`g`,{className:`kreist`,children:(0,I.jsx)(`circle`,{cx:mc,cy:mc,r:86,fill:`none`,stroke:`rgb(255 255 255 / 0.13)`,strokeWidth:1,strokeDasharray:`1.2 5.6`})}),p=(0,I.jsx)(`circle`,{cx:mc,cy:mc,r:hc,fill:`none`,stroke:`rgb(255 255 255 / 0.05)`,strokeWidth:gc}),m=(0,I.jsx)(`circle`,{cx:mc,cy:mc,r:58,fill:`none`,stroke:`rgb(255 255 255 / 0.06)`,strokeWidth:1}),t[4]=f,t[5]=p,t[6]=m):(f=t[4],p=t[5],m=t[6]);let h;if(t[7]!==s||t[8]!==o||t[9]!==n||t[10]!==a){let e;t[12]!==s||t[13]!==o||t[14]!==a?(e=(e,t)=>(0,I.jsx)(`circle`,{cx:mc,cy:mc,r:hc,fill:`none`,stroke:fc[e.zustand],strokeWidth:gc,strokeLinecap:`round`,strokeDasharray:`${s} ${_c-s}`,strokeDashoffset:-(t*a+o/2),className:`ring-fuellt`,style:{"--i":t},children:(0,I.jsx)(`title`,{children:`${e.name}: ${pc[e.zustand]}`})},e.id),t[12]=s,t[13]=o,t[14]=a,t[15]=e):e=t[15],h=n.map(e),t[7]=s,t[8]=o,t[9]=n,t[10]=a,t[11]=h}else h=t[11];let g;t[16]===h?g=t[17]:(g=(0,I.jsx)(`g`,{transform:`rotate(-90 ${mc} ${mc})`,children:h}),t[16]=h,t[17]=g);let _;t[18]!==d||t[19]!==g?(_=(0,I.jsxs)(`svg`,{viewBox:`0 0 180 180`,className:`size-full`,"aria-hidden":!0,style:d,children:[f,p,m,g]}),t[18]=d,t[19]=g,t[20]=_):_=t[20];let v;t[21]===n.length?v=t[22]:(v=(0,I.jsxs)(`span`,{className:`text-text-3`,children:[`/`,n.length]}),t[21]=n.length,t[22]=v);let y;t[23]!==l||t[24]!==v?(y=(0,I.jsxs)(`span`,{className:`font-anzeige text-[38px] leading-none font-semibold tabular-nums sm:text-[46px]`,children:[l,v]}),t[23]=l,t[24]=v,t[25]=y):y=t[25];let b;t[26]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,I.jsxs)(`span`,{className:`etikett mt-1.5 flex flex-col items-center text-[9.5px] leading-[1.35] text-text-3 sm:text-[10px]`,children:[(0,I.jsx)(`span`,{children:`Geräte`}),(0,I.jsx)(`span`,{children:`erreichbar`})]}),t[26]=b):b=t[26];let x;t[27]===y?x=t[28]:(x=(0,I.jsxs)(`div`,{className:`absolute inset-0 flex flex-col items-center justify-center`,children:[y,b]}),t[27]=y,t[28]=x);let S;return t[29]!==x||t[30]!==_?(S=(0,I.jsxs)(`div`,{className:`relative size-[132px] shrink-0 sm:size-[168px]`,children:[_,x]}),t[29]=x,t[30]=_,t[31]=S):S=t[31],S}function yc(e){return e.zustand===`ok`}var bc=new Set([`snapshot-anlegen`,`snapshot-loeschen`,`snapshot-zurueck`,`sicherung-loeschen`]),xc=e=>bc.has(e.baustein),Sc={update:{chip:`vor Update`,text:`Rückweg vor einem Update`},knopf:{chip:`per Knopf`,text:`Hier per Knopf angelegt`},proxmox:{chip:`von Hand`,text:`Von Hand in Proxmox angelegt`}};function Cc(e,t){return e===null?`Zeitpunkt unbekannt`:ne(new Date(e*1e3).toISOString(),new Date(t*1e3))}function wc(e,t){return e===null?``:O(e,t*1e3)}function Tc(e){return e===null||e<=0?null:e<1e9?`${Math.round(e/1e6)} MB`:`${(e/1e9).toFixed(1).replace(`.`,`,`)} GB`}function Ec(e,t){let n=e.startsWith(`${t}: `)?e.slice(t.length+2):e;return n.charAt(0).toUpperCase()+n.slice(1)}function Dc(e){let t=[`${e.snapshots} ${e.snapshots===1?`Snapshot`:`Snapshots`}`];return e.sicherungen>0&&t.push(`${e.sicherungen} ${e.sicherungen===1?`Sicherung`:`Sicherungen`}`),t.join(` · `)}var Oc=(e,t=1)=>e.toFixed(t).replace(`.`,`,`);function kc(e){return e==null?`–`:e>=0xe8d4a51000?`${Oc(e/0xe8d4a51000)} TB`:e>=1e10?`${Math.round(e/1e9)} GB`:`${Oc(e/1e9)} GB`}function Ac(e){return e?/^\s*\d{1,2}:\d{2}\s*$/.test(e)?`täglich ${e.trim()}`:`Zeitplan „${e}“`:`ohne Zeitplan`}function jc(e){return e.jobs.length===0?`Kein Sicherungsauftrag in Proxmox`:e.jobs.map(e=>`${Ac(e.zeitplan)} auf ${e.speicher??`?`}`).join(`, `)}var Mc={ok:`in Ordnung`,gelb:`wird knapp`,rot:`fast voll`};function Nc(e){if(e.aktion)return null;let t=e.grund??``,n=t.match(/erst ab (\d{2}\.\d{2}\.(?:\d{4})? ?\d{2}:\d{2})/)?.[1];return n?`ab ${n}`:/eigene Oberfläche|eigenen Oberfläche|eigenes Update/i.test(t)?`über die App`:null}function Pc(e){let t=e.bausteine.filter(e=>e.zustand===`neu`);if(t.length===0)return null;let n=[],r=Co(e);if(r?.zustand===`neu`){let e=Nc(r);n.push(`App → ${r.verfuegbar??`neu`}${e?` (${e})`:``}`)}let i=wo(e);i?.zustand===`neu`&&n.push(`${i.kurz||(i.id===`docker`?`Images`:`Pakete`)}${Mo(i)}`);for(let e of t)e!==r&&e!==i&&n.push(`${e.name}${e.kurz?` · ${e.kurz}`:``}`);return{id:e.id,name:e.name,teile:n,knopf:t.some(e=>!!e.aktion)}}function Fc(e){return e.getrennt.length>0?{stufe:`rot`,titel:`Verbindung weg`,text:`${e.getrennt.join(` und `)} antwortet nicht.`}:e.stumm.length>0||e.hinweiseRot>0?{stufe:`rot`,titel:`Störung`,text:`${e.stumm.length>0?`${e.stumm.join(`, `)} antwortet nicht`:`Ein roter Hinweis wartet`}.`}:e.hinweise>0?{stufe:`gelb`,titel:e.hinweise===1?`1 Hinweis`:`${e.hinweise} Hinweise`,text:`Bei Gelegenheit ansehen.`}:e.updates>0?{stufe:`info`,titel:`Alles läuft`,text:`${e.updates} ${e.updates===1?`Update steht`:`Updates stehen`} bereit.`}:{stufe:`ok`,titel:`Alles läuft`,text:`Keine Hinweise, keine offenen Updates.`}}var Ic={ok:{glut:`var(--gruen)`,titel:`text-foreground`,symbol:`text-gruen`,Symbol:sa},info:{glut:`var(--gruen)`,titel:`text-foreground`,symbol:`text-gruen`,Symbol:sa},gelb:{glut:`var(--bernstein)`,titel:`text-bernstein`,symbol:`text-bernstein`,Symbol:aa},rot:{glut:`var(--rot)`,titel:`text-rot-text`,symbol:`text-rot`,Symbol:lo}},Lc={online:{punkt:`ok`,text:`online`},verbinde:{punkt:`warn`,text:`verbinde`},getrennt:{punkt:`rot`,text:`getrennt`},fehlt:{punkt:`aus`,text:`nicht eingerichtet`}},Rc={box:{name:`KI-Box`,rand:`[--rand:color-mix(in_srgb,var(--box)_32%,transparent)]`,text:`text-box-text`,pille:`bg-box/10 text-box-text ring-box/30 hover:bg-box/20`,glut:`var(--box)`,cockpit:`/box`},homelab:{name:`Homelab`,rand:`[--rand:color-mix(in_srgb,var(--lab)_32%,transparent)]`,text:`text-lab-text`,pille:`bg-lab/10 text-lab-text ring-lab/30 hover:bg-lab/20`,glut:`var(--lab)`,cockpit:`/homelab`}},zc=new Intl.DateTimeFormat(`de-DE`,{hour:`2-digit`,minute:`2-digit`,timeZone:`Europe/Berlin`}),Bc=e=>({"--i":e}),Vc={cyan:{kachel:`bg-cyan/10 text-cyan ring-cyan/25`,wert:`text-cyan`},gruen:{kachel:`bg-gruen/10 text-gruen ring-gruen/25`,wert:`text-gruen`},bernstein:{kachel:`bg-bernstein/10 text-bernstein ring-bernstein/30`,wert:`text-bernstein`},rot:{kachel:`bg-rot/12 text-rot ring-rot/35`,wert:`text-rot-text`},grau:{kachel:`bg-white/[0.05] text-text-2 ring-white/12`,wert:`text-foreground`}};function Hc(e){let t=(0,R.c)(23),{Icon:n,label:r,wert:i,art:a,children:s}=e,c=Vc[a],l;t[0]===c.kachel?l=t[1]:(l=o(`flex size-10 shrink-0 items-center justify-center rounded-xl ring-1 ring-inset`,c.kachel),t[0]=c.kachel,t[1]=l);let u;t[2]===n?u=t[3]:(u=(0,I.jsx)(n,{className:`size-[18px]`}),t[2]=n,t[3]=u);let d;t[4]!==l||t[5]!==u?(d=(0,I.jsx)(`span`,{"aria-hidden":!0,className:l,children:u}),t[4]=l,t[5]=u,t[6]=d):d=t[6];let f;t[7]===r?f=t[8]:(f=(0,I.jsx)(`span`,{className:`etikett text-[10.5px] text-text-3`,children:r}),t[7]=r,t[8]=f);let p;t[9]===s?p=t[10]:(p=(0,I.jsx)(`span`,{className:`truncate text-[13px] text-text-2`,children:s}),t[9]=s,t[10]=p);let m;t[11]!==f||t[12]!==p?(m=(0,I.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col gap-0.5`,children:[f,p]}),t[11]=f,t[12]=p,t[13]=m):m=t[13];let h;t[14]===c.wert?h=t[15]:(h=o(`font-anzeige text-[30px] leading-none font-semibold tabular-nums`,c.wert),t[14]=c.wert,t[15]=h);let g;t[16]!==h||t[17]!==i?(g=(0,I.jsx)(`span`,{className:h,children:i}),t[16]=h,t[17]=i,t[18]=g):g=t[18];let _;return t[19]!==d||t[20]!==m||t[21]!==g?(_=(0,I.jsxs)(`div`,{className:`flaeche-innen flex min-w-0 items-center gap-3.5 rounded-2xl px-4 py-3`,children:[d,m,g]}),t[19]=d,t[20]=m,t[21]=g,t[22]=_):_=t[22],_}function Uc(e){let t=(0,R.c)(12),{bereich:n,verbindung:r}=e,i=Rc[n],a=Lc[r],s=i.cockpit,c;t[0]===i.pille?c=t[1]:(c=o(`inline-flex h-8 items-center gap-2 rounded-full px-3 text-[13px] ring-1 ring-inset transition-colors`,i.pille),t[0]=i.pille,t[1]=c);let l=bs[a.punkt],u;t[2]===l?u=t[3]:(u=o(`size-2 rounded-full`,l),t[2]=l,t[3]=u);let d;t[4]===u?d=t[5]:(d=(0,I.jsx)(`span`,{"aria-hidden":!0,className:u}),t[4]=u,t[5]=d);let f;return t[6]!==i.cockpit||t[7]!==i.name||t[8]!==c||t[9]!==d||t[10]!==a.text?(f=(0,I.jsxs)(hi,{to:s,className:c,children:[d,i.name,` `,a.text]}),t[6]=i.cockpit,t[7]=i.name,t[8]=c,t[9]=d,t[10]=a.text,t[11]=f):f=t[11],f}function Wc(e){let t=(0,R.c)(22),{bereich:n,titel:r,unterzeile:i,werte:a,basis:s}=e,c=Rc[n],l;t[0]===c.text?l=t[1]:(l=o(`etikett text-[11.5px] tracking-[0.16em]`,c.text),t[0]=c.text,t[1]=l);let u;t[2]!==l||t[3]!==r?(u=(0,I.jsx)(`h3`,{className:l,children:r}),t[2]=l,t[3]=r,t[4]=u):u=t[4];let d;t[5]===i?d=t[6]:(d=i&&(0,I.jsx)(`span`,{className:`truncate text-[12.5px] text-text-3`,children:i}),t[5]=i,t[6]=d);let f;t[7]!==u||t[8]!==d?(f=(0,I.jsxs)(`div`,{className:`flex items-baseline justify-between gap-3 px-0.5`,children:[u,d]}),t[7]=u,t[8]=d,t[9]=f):f=t[9];let p;if(t[10]!==s||t[11]!==n||t[12]!==a){let e;t[14]!==s||t[15]!==n?(e=(e,t)=>(0,I.jsx)(dc,{label:e.label,wert:e.wert,einheit:e.einheit,punkte:e.punkte,bereich:n,grenzen:[e.gelb,e.rot],zustand:Bs(e.wert??null,e.gelb,e.rot),zeitraumText:`letzte Stunde`,i:s+t,hinweis:e.hinweis},e.label),t[14]=s,t[15]=n,t[16]=e):e=t[16],p=a.map(e),t[10]=s,t[11]=n,t[12]=a,t[13]=p}else p=t[13];let m;t[17]===p?m=t[18]:(m=(0,I.jsx)(`div`,{className:`grid grid-cols-2 gap-2 sm:grid-cols-4`,children:p}),t[17]=p,t[18]=m);let h;return t[19]!==f||t[20]!==m?(h=(0,I.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-3`,children:[f,m]}),t[19]=f,t[20]=m,t[21]=h):h=t[21],h}function Gc(e){let t=(0,R.c)(40),{homelabAktiv:n}=e,r=b(),i=oe(`1h`),a=re(),o=le(`1h`,n),s=i.data?.reihen,c=r.data?.box,l=a?.ram??(c?.ram_used&&c.ram_total?c.ram_used/c.ram_total*100:null),u;if(t[0]!==c||t[1]!==n||t[2]!==o.data?.geraete||t[3]!==a?.cpu||t[4]!==a?.disk||t[5]!==a?.temp_cpu||t[6]!==i.data?.aktuell||t[7]!==i.data?.prognose?.platte||t[8]!==s?.cpu||t[9]!==s?.platte||t[10]!==s?.ram||t[11]!==s?.temp_cpu||t[12]!==l){let e=o.data?.geraete.find(Kc),r;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(r=Bc(1),t[14]=r):r=t[14];let d;t[15]===c?d=t[16]:(d=c?.uptime_s?`läuft seit ${Ws(c.uptime_s)}`:null,t[15]=c,t[16]=d);let f=a?.cpu??i.data?.aktuell.cpu,p=s?.cpu,m;t[17]!==f||t[18]!==p?(m={label:`CPU`,wert:f,einheit:`prozent`,punkte:p,gelb:85,rot:95},t[17]=f,t[18]=p,t[19]=m):m=t[19];let h=s?.ram,g;t[20]!==l||t[21]!==h?(g={label:`Speicher`,wert:l,einheit:`prozent`,punkte:h,gelb:85,rot:95},t[20]=l,t[21]=h,t[22]=g):g=t[22];let _=a?.temp_cpu??c?.temp_cpu,v=s?.temp_cpu,y;t[23]!==v||t[24]!==_?(y={label:`Temp.`,wert:_,einheit:`grad`,punkte:v,gelb:80,rot:90},t[23]=v,t[24]=_,t[25]=y):y=t[25];let b=a?.disk??c?.platte?.percent,x=s?.platte,S=i.data?.prognose?.platte??c?.platte?.vorhersage,C;t[26]===S?C=t[27]:(C=Xs(S),t[26]=S,t[27]=C);let w;t[28]!==b||t[29]!==x||t[30]!==C?(w={label:`Platte`,wert:b,einheit:`prozent`,punkte:x,gelb:80,rot:90,hinweis:C},t[28]=b,t[29]=x,t[30]=C,t[31]=w):w=t[31];let T;t[32]!==y||t[33]!==w||t[34]!==m||t[35]!==g?(T=[m,g,y,w],t[32]=y,t[33]=w,t[34]=m,t[35]=g,t[36]=T):T=t[36];let E;t[37]!==T||t[38]!==d?(E=(0,I.jsx)(Wc,{bereich:`box`,titel:`KI-Box`,basis:0,unterzeile:d,werte:T}),t[37]=T,t[38]=d,t[39]=E):E=t[39],u=(0,I.jsxs)(`section`,{"aria-label":`Instrumente`,className:`auftauchen flaeche grid gap-6 rounded-3xl p-5 sm:p-6 xl:grid-cols-2 xl:gap-8`,style:r,children:[E,n?(0,I.jsx)(Wc,{bereich:`homelab`,titel:`Proxmox-Host`,basis:4,unterzeile:e?.aktuell.uptime_s?`läuft seit ${Ws(e.aktuell.uptime_s)}`:null,werte:[{label:`CPU`,wert:e?.aktuell.cpu,einheit:`prozent`,punkte:e?.reihen.cpu,gelb:85,rot:95},{label:`Speicher`,wert:e?.aktuell.ram,einheit:`prozent`,punkte:e?.reihen.ram,gelb:90,rot:95},{label:`Temp.`,wert:e?.aktuell.temp_cpu,einheit:`grad`,punkte:e?.reihen.temp_cpu,gelb:80,rot:90},{label:`Platte`,wert:e?.aktuell.platte,einheit:`prozent`,punkte:e?.reihen.platte,gelb:80,rot:90,hinweis:Xs(e?.prognose?.platte)}]}):(0,I.jsx)(`p`,{className:`self-center text-sm text-text-2`,children:`Der Homelab-Teil antwortet gerade nicht; hier steht nichts Veraltetes.`})]}),t[0]=c,t[1]=n,t[2]=o.data?.geraete,t[3]=a?.cpu,t[4]=a?.disk,t[5]=a?.temp_cpu,t[6]=i.data?.aktuell,t[7]=i.data?.prognose?.platte,t[8]=s?.cpu,t[9]=s?.platte,t[10]=s?.ram,t[11]=s?.temp_cpu,t[12]=l,t[13]=u}else u=t[13];return u}function Kc(e){return e.art===`proxmox-host`}function qc(e){let t=(0,R.c)(5),{titel:n,rechts:r}=e,i;t[0]===n?i=t[1]:(i=(0,I.jsx)(`h3`,{className:`etikett text-[11.5px] tracking-[0.16em] text-text-3`,children:n}),t[0]=n,t[1]=i);let a;return t[2]!==r||t[3]!==i?(a=(0,I.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[i,r]}),t[2]=r,t[3]=i,t[4]=a):a=t[4],a}function Jc(e){let t=(0,R.c)(42),{bereich:n,verbindung:r,unterzeile:i,i:a,children:s}=e,c=Rc[n],l=Lc[r],u=n===`box`?`ki-box`:`proxmox-host`,d;t[0]!==c.name||t[1]!==u?(d=ws({art:u,name:c.name}),t[0]=c.name,t[1]=u,t[2]=d):d=t[2];let f;t[3]===d?f=t[4]:(f={...d,logo:void 0},t[3]=d,t[4]=f);let p=f,m=c.name,h;t[5]===c.rand?h=t[6]:(h=o(`auftauchen flaeche relative flex min-w-0 flex-col overflow-hidden rounded-3xl`,c.rand),t[5]=c.rand,t[6]=h);let g;t[7]===a?g=t[8]:(g=Bc(a),t[7]=a,t[8]=g);let _=`radial-gradient(closest-side, color-mix(in srgb, ${c.glut} 20%, transparent), transparent)`,v;t[9]===_?v=t[10]:(v=(0,I.jsx)(`div`,{"aria-hidden":!0,className:`pointer-events-none absolute -top-44 -left-36 size-[460px] rounded-full`,style:{background:_}}),t[9]=_,t[10]=v);let y=c.cockpit,b;t[11]===p?b=t[12]:(b=(0,I.jsx)(Ns,{bild:p,groesse:`lg`,leuchtet:!0}),t[11]=p,t[12]=b);let x;t[13]===c.name?x=t[14]:(x=(0,I.jsx)(`span`,{className:`text-[21px] leading-none font-semibold`,children:c.name}),t[13]=c.name,t[14]=x);let S=bs[l.punkt],C;t[15]===S?C=t[16]:(C=o(`size-2 shrink-0 rounded-full`,S),t[15]=S,t[16]=C);let w;t[17]===C?w=t[18]:(w=(0,I.jsx)(`span`,{"aria-hidden":!0,className:C}),t[17]=C,t[18]=w);let T;t[19]!==w||t[20]!==i||t[21]!==l.text?(T=(0,I.jsxs)(`span`,{className:`flex items-center gap-2 truncate text-[13px] text-text-3`,children:[w,l.text,` · `,i]}),t[19]=w,t[20]=i,t[21]=l.text,t[22]=T):T=t[22];let E;t[23]!==x||t[24]!==T?(E=(0,I.jsxs)(`span`,{className:`flex min-w-0 flex-col gap-1`,children:[x,T]}),t[23]=x,t[24]=T,t[25]=E):E=t[25];let D;t[26]!==b||t[27]!==E?(D=(0,I.jsxs)(`span`,{className:`flex min-w-0 items-center gap-3.5`,children:[b,E]}),t[26]=b,t[27]=E,t[28]=D):D=t[28];let O;t[29]===Symbol.for(`react.memo_cache_sentinel`)?(O=(0,I.jsxs)(`span`,{className:`flex shrink-0 items-center gap-1.5 rounded-full px-3 py-1.5 text-[13px] text-text-2 ring-1 ring-white/10 transition-colors ring-inset group-hover:bg-white/[0.06] group-hover:text-foreground`,children:[`Cockpit `,(0,I.jsx)(qi,{className:`size-3.5 transition-transform group-hover:translate-x-0.5`,"aria-hidden":!0})]}),t[29]=O):O=t[29];let k;t[30]!==c.cockpit||t[31]!==D?(k=(0,I.jsxs)(hi,{to:y,className:`group relative flex items-center justify-between gap-3 px-5 pt-5 pb-4 sm:px-6 sm:pt-6`,children:[D,O]}),t[30]=c.cockpit,t[31]=D,t[32]=k):k=t[32];let ee;t[33]===s?ee=t[34]:(ee=(0,I.jsx)(`div`,{className:`relative flex flex-1 flex-col gap-6 px-5 pb-6 sm:px-6`,children:s}),t[33]=s,t[34]=ee);let A;return t[35]!==c.name||t[36]!==k||t[37]!==ee||t[38]!==h||t[39]!==g||t[40]!==v?(A=(0,I.jsxs)(`section`,{"aria-label":m,className:h,style:g,children:[v,k,ee]}),t[35]=c.name,t[36]=k,t[37]=ee,t[38]=h,t[39]=g,t[40]=v,t[41]=A):A=t[41],A}function Yc(e){let t=(0,R.c)(12),{hinweise:n,ziel:r}=e,i,a,s,c;if(t[0]!==n||t[1]!==r){c=Symbol.for(`react.early_return_sentinel`);bb0:{let e=n.filter(Zc);if(e.length===0){c=null;break bb0}let l=[...e].sort(Xc);i=`Hinweise`,a=`m-0 flex list-none flex-col gap-1.5 p-0`;let u;t[6]===r?u=t[7]:(u=e=>{let t=e.stufe===`rot`,n=t?lo:aa;return(0,I.jsx)(`li`,{children:(0,I.jsxs)(hi,{to:r,className:o(`flex items-start gap-2.5 rounded-xl px-3 py-2.5 text-[14px] ring-1 ring-inset transition-colors`,t?`bg-rot/10 text-rot-text ring-rot/35 hover:bg-rot/15`:`bg-bernstein/[0.08] text-bernstein ring-bernstein/30 hover:bg-bernstein/[0.13]`),children:[(0,I.jsx)(n,{className:`mt-0.5 size-4 shrink-0`,"aria-hidden":!0}),(0,I.jsx)(`span`,{className:`min-w-0 flex-1`,children:e.titel}),(0,I.jsx)(`span`,{className:`etikett shrink-0 pt-0.5 text-[10px] opacity-80`,children:t?`Störung`:`Hinweis`})]})},e.id)},t[6]=r,t[7]=u),s=l.slice(0,3).map(u)}t[0]=n,t[1]=r,t[2]=i,t[3]=a,t[4]=s,t[5]=c}else i=t[2],a=t[3],s=t[4],c=t[5];if(c!==Symbol.for(`react.early_return_sentinel`))return c;let l;return t[8]!==i||t[9]!==a||t[10]!==s?(l=(0,I.jsx)(`ul`,{"aria-label":i,className:a,children:s}),t[8]=i,t[9]=a,t[10]=s,t[11]=l):l=t[11],l}function Xc(e,t){return Number(t.stufe===`rot`)-Number(e.stufe===`rot`)}function Zc(e){return e.zustand!==`stumm`}var Qc=e=>/\((ab |über die App)/.test(e);function $c(e){let t=(0,R.c)(27),{to:n,bild:r,name:i,unter:a,punkt:s,zustandText:c,rechts:l,updates:u,knopf:d}=e,f;t[0]===u?f=t[1]:(f=u===void 0?[]:u,t[0]=u,t[1]=f);let p=f,m=d!==void 0&&d,h;t[2]!==r||t[3]!==s?(h=(0,I.jsx)(Ns,{bild:r,punkt:s}),t[2]=r,t[3]=s,t[4]=h):h=t[4];let g;t[5]!==l||t[6]!==c?(g=c&&!l&&(0,I.jsxs)(`span`,{className:`sr-only`,children:[`, `,c]}),t[5]=l,t[6]=c,t[7]=g):g=t[7];let _;t[8]!==i||t[9]!==g?(_=(0,I.jsxs)(`span`,{className:`truncate text-[14.5px] leading-snug font-medium`,children:[i,g]}),t[8]=i,t[9]=g,t[10]=_):_=t[10];let v;t[11]===l?v=t[12]:(v=l&&(0,I.jsx)(`span`,{className:`shrink-0 text-[12px]`,children:l}),t[11]=l,t[12]=v);let y;t[13]!==_||t[14]!==v?(y=(0,I.jsxs)(`span`,{className:`flex min-w-0 items-baseline justify-between gap-2`,children:[_,v]}),t[13]=_,t[14]=v,t[15]=y):y=t[15];let b;t[16]!==m||t[17]!==a||t[18]!==p?(b=p.length>0?(0,I.jsx)(`span`,{className:`flex min-w-0 flex-wrap gap-x-2 text-[12.5px] leading-snug`,children:p.map(e=>(0,I.jsxs)(`span`,{className:o(`truncate`,m&&!Qc(e)?`text-cyan-text`:`text-text-3`),children:[m&&!Qc(e)&&(0,I.jsx)(Ga,{className:`mr-1 inline size-3 -translate-y-px`,"aria-hidden":!0}),e]},e))}):(0,I.jsx)(`span`,{className:`truncate text-[12.5px] leading-snug text-text-3`,children:a}),t[16]=m,t[17]=a,t[18]=p,t[19]=b):b=t[19];let x;t[20]!==y||t[21]!==b?(x=(0,I.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col gap-0.5`,children:[y,b]}),t[20]=y,t[21]=b,t[22]=x):x=t[22];let S;return t[23]!==x||t[24]!==h||t[25]!==n?(S=(0,I.jsxs)(hi,{to:n,className:`flaeche-innen group flex h-full min-w-0 items-center gap-3 rounded-xl px-3 py-2.5 transition-colors hover:border-white/20 hover:bg-white/[0.05]`,children:[h,x]}),t[23]=x,t[24]=h,t[25]=n,t[26]=S):S=t[26],S}var el={ok:`ok`,aus:`aus`,warn:`warn`,info:`info`,fehler:`rot`};function tl(e){return e.zustand===`neu`?{updates:[e.kurz||(e.verfuegbar?`→ ${e.verfuegbar}`:`neu`)],unter:``}:e.zustand===`festgehalten`?{updates:[],unter:`${e.installiert??`–`} · festgehalten`}:{updates:[],unter:e.installiert??`–`}}function nl(e){let t=(0,R.c)(6),{eintraege:n}=e;if(n.length===0){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,I.jsx)(`p`,{className:`text-sm text-text-3`,children:`Nichts geplant.`}),t[0]=e):e=t[0],e}let r;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,I.jsx)(`span`,{"aria-hidden":!0,className:`absolute top-3 bottom-3 left-[5px] w-px bg-gradient-to-b from-white/20 to-white/0`}),t[1]=r):r=t[1];let i;t[2]===n?i=t[3]:(i=n.map(rl),t[2]=n,t[3]=i);let a;return t[4]===i?a=t[5]:(a=(0,I.jsxs)(`ol`,{className:`relative m-0 flex list-none flex-col p-0`,children:[r,i]}),t[4]=i,t[5]=a),a}function rl(e){let[t,n]=il(ne(e.zeit)),r=/update/i.test(e.titel);return(0,I.jsxs)(`li`,{className:`relative grid grid-cols-[11px_minmax(0,1fr)_auto] items-center gap-x-3 py-1.5`,children:[(0,I.jsx)(`span`,{"aria-hidden":!0,className:o(`size-[11px] rounded-full ring-[3px] ring-[#0d1119]`,r?`bg-cyan`:`bg-white/25`)}),(0,I.jsx)(`span`,{className:`truncate text-[14.5px]`,children:e.titel}),(0,I.jsxs)(`span`,{className:`ziffern text-[12.5px] whitespace-nowrap text-text-3`,children:[t&&(0,I.jsx)(`span`,{className:`etikett mr-1.5 text-[10px] tracking-[0.1em]`,children:t}),n]})]},`${e.titel}-${e.zeit}`)}function il(e){let t=e.match(/^(.*) (\d{2}:\d{2})$/);return t?[t[1].toLowerCase(),t[2]]:[``,e]}function al(e){let t=(0,R.c)(85),{verbindung:n}=e,r=b(),i=D(),a=_(),o,s,c,u,d,f,p,m,h,g,v,y;if(t[0]!==a.data?.models||t[1]!==a.data?.running||t[2]!==r.data||t[3]!==n||t[4]!==i.data?.ziele){let e=i.data?.ziele.find(ll)?.bausteine??[],_=e.filter(cl),b,x,S,C;if(t[17]!==a.data?.models||t[18]!==a.data?.running||t[19]!==r.data||t[20]!==n){let e=a.data?.models??[],i;t[32]===a.data?.running?i=t[33]:(i=a.data?.running??[],t[32]=a.data?.running,t[33]=i);let c=i,u=[`hirn`,`coder`].map(t=>({rolle:t,m:e.find(e=>l(e)===t)})),d;t[34]===r.data?.lampen?d=t[35]:(d=r.data?.lampen??[],t[34]=r.data?.lampen,t[35]=d);let f=d,p;t[36]===f?p=t[37]:(p=e=>f.find(t=>t.id===e),t[36]=f,t[37]=p),s=p,o=Jc,m=`box`,h=n,g=2,t[38]===r.data?v=t[39]:(v=r.data?.box.ram_total?`${Math.round(r.data.box.ram_total/1073741824)} GB gemeinsamer Speicher`:`Strix Halo`,t[38]=r.data,t[39]=v);let _;t[40]===r.data?.hinweise?_=t[41]:(_=r.data?.hinweise??[],t[40]=r.data?.hinweise,t[41]=_),t[42]===_?y=t[43]:(y=(0,I.jsx)(Yc,{hinweise:_,ziel:`/box`}),t[42]=_,t[43]=y),S=`flex flex-col gap-2.5`,t[44]===c.length?C=t[45]:(C=(0,I.jsx)(qc,{titel:`Modelle`,rechts:(0,I.jsxs)(`span`,{className:`text-[13px] text-text-3`,children:[c.length,` geladen`]})}),t[44]=c.length,t[45]=C),b=`m-0 grid list-none grid-cols-1 gap-2 p-0 sm:grid-cols-2`,x=u.map(e=>{let{rolle:t,m:n}=e,r=!!n&&c.includes(n.name);return(0,I.jsx)(`li`,{children:(0,I.jsx)($c,{to:`/box/modelle`,bild:Os(t),name:t===`hirn`?`Hirn`:`Coder`,unter:n?.name??`nicht belegt`,punkt:r?`ok`:`aus`,rechts:(0,I.jsx)(`span`,{className:r?`text-gruen-text`:`text-text-3`,children:r?`geladen`:`auf Abruf`})})},t)}),t[17]=a.data?.models,t[18]=a.data?.running,t[19]=r.data,t[20]=n,t[21]=o,t[22]=s,t[23]=b,t[24]=x,t[25]=S,t[26]=C,t[27]=m,t[28]=h,t[29]=g,t[30]=v,t[31]=y}else o=t[21],s=t[22],b=t[23],x=t[24],S=t[25],C=t[26],m=t[27],h=t[28],g=t[29],v=t[30],y=t[31];let w;t[46]!==b||t[47]!==x?(w=(0,I.jsx)(`ul`,{className:b,children:x}),t[46]=b,t[47]=x,t[48]=w):w=t[48],t[49]!==S||t[50]!==C||t[51]!==w?(u=(0,I.jsxs)(`div`,{className:S,children:[C,w]}),t[49]=S,t[50]=C,t[51]=w,t[52]=u):u=t[52],f=`flex flex-col gap-2.5`;let T=_.length?(0,I.jsxs)(_s,{art:`cyan`,children:[_.length,` bereit`]}):(0,I.jsx)(_s,{children:`aktuell`});t[53]===T?p=t[54]:(p=(0,I.jsx)(qc,{titel:`Bausteine`,rechts:T}),t[53]=T,t[54]=p),c=`m-0 grid list-none grid-cols-1 gap-2 p-0 sm:grid-cols-2`;let E;t[55]===s?E=t[56]:(E=e=>{let t=tl(e),n=s(e.id===`engine`?`motor`:e.id);return(0,I.jsx)(`li`,{children:(0,I.jsx)($c,{to:`/box/updates`,bild:Os(e.id),name:e.name.replace(/ \(llama\.cpp\)$/,``),unter:t.unter,updates:t.updates,knopf:!!e.aktion,punkt:n?el[n.zustand]:null,zustandText:n?.wert})},e.id)},t[55]=s,t[56]=E),d=e.map(E),t[0]=a.data?.models,t[1]=a.data?.running,t[2]=r.data,t[3]=n,t[4]=i.data?.ziele,t[5]=o,t[6]=s,t[7]=c,t[8]=u,t[9]=d,t[10]=f,t[11]=p,t[12]=m,t[13]=h,t[14]=g,t[15]=v,t[16]=y}else o=t[5],s=t[6],c=t[7],u=t[8],d=t[9],f=t[10],p=t[11],m=t[12],h=t[13],g=t[14],v=t[15],y=t[16];let x;t[57]!==c||t[58]!==d?(x=(0,I.jsx)(`ul`,{className:c,children:d}),t[57]=c,t[58]=d,t[59]=x):x=t[59];let S;t[60]!==x||t[61]!==f||t[62]!==p?(S=(0,I.jsxs)(`div`,{className:f,children:[p,x]}),t[60]=x,t[61]=f,t[62]=p,t[63]=S):S=t[63];let C;t[64]===s?C=t[65]:(C=(0,I.jsx)(qc,{titel:`Als Nächstes`,rechts:[`jobs`,`sicherung`].map(e=>s(e)).filter(sl).map(ol)}),t[64]=s,t[65]=C);let w;t[66]===r.data?.flugplan.geplant?w=t[67]:(w=r.data?.flugplan.geplant??[],t[66]=r.data?.flugplan.geplant,t[67]=w);let T;t[68]===w?T=t[69]:(T=w.slice(0,4),t[68]=w,t[69]=T);let E;t[70]===T?E=t[71]:(E=(0,I.jsx)(nl,{eintraege:T}),t[70]=T,t[71]=E);let O;t[72]!==C||t[73]!==E?(O=(0,I.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[C,E]}),t[72]=C,t[73]=E,t[74]=O):O=t[74];let k;return t[75]!==o||t[76]!==u||t[77]!==S||t[78]!==O||t[79]!==m||t[80]!==h||t[81]!==g||t[82]!==v||t[83]!==y?(k=(0,I.jsxs)(o,{bereich:m,verbindung:h,i:g,unterzeile:v,children:[y,u,S,O]}),t[75]=o,t[76]=u,t[77]=S,t[78]=O,t[79]=m,t[80]=h,t[81]=g,t[82]=v,t[83]=y,t[84]=k):k=t[84],k}function ol(e){return(0,I.jsxs)(`span`,{className:`hidden items-center gap-1.5 text-[12.5px] text-text-3 sm:flex`,children:[(0,I.jsx)(`span`,{"aria-hidden":!0,className:o(`size-1.5 rounded-full`,bs[el[e.zustand]])}),e.label,` `,e.wert]},e.id)}function sl(e){return!!e}function cl(e){return e.zustand===`neu`}function ll(e){return e.art===`ki-box`}var ul={ok:`bg-lab`,gelb:`bg-bernstein`,rot:`bg-rot`,keine:`bg-text-3`};function dl(e){let t=(0,R.c)(31),{speicher:n}=e;if(!n)return null;let r;t[0]===n.pools?r=t[1]:(r=n.pools.find(pl)??n.pools[0],t[0]=n.pools,t[1]=r);let i=r,a=n.nas[0],o=n.sicherungen,s;if(t[2]!==a||t[3]!==i||t[4]!==o.stufe||t[5]!==o.zuletzt){if(s=[],i){let e=i.anteil,n;t[7]===i.anteil?n=t[8]:(n=Math.round(i.anteil*100),t[7]=i.anteil,t[8]=n);let r;t[9]===i.frei?r=t[10]:(r=kc(i.frei),t[9]=i.frei,t[10]=r);let a=`${n} % · ${r} frei`,o;t[11]!==i.anteil||t[12]!==i.stufe||t[13]!==a?(o={label:`Speicherpool`,anteil:e,text:a,stufe:i.stufe},t[11]=i.anteil,t[12]=i.stufe,t[13]=a,t[14]=o):o=t[14],s.push(o)}if(a){let e=a.gesamt!=null&&a.belegt!=null?a.gesamt-a.belegt:null,n;t[15]!==e||t[16]!==a.anteil||t[17]!==a.problem?(n=a.anteil==null?a.problem??`kein Stand`:`${Math.round(a.anteil*100)} % · ${kc(e)} frei`,t[15]=e,t[16]=a.anteil,t[17]=a.problem,t[18]=n):n=t[18];let r;t[19]!==a.anteil||t[20]!==a.stufe||t[21]!==n?(r={label:`NAS`,anteil:a.anteil,stufe:a.stufe,text:n},t[19]=a.anteil,t[20]=a.stufe,t[21]=n,t[22]=r):r=t[22],s.push(r)}let e;t[23]===o.zuletzt?e=t[24]:(e=o.zuletzt?ne(new Date(o.zuletzt*1e3).toISOString()).toLowerCase():`noch keine`,t[23]=o.zuletzt,t[24]=e);let n;t[25]!==o.stufe||t[26]!==e?(n={label:`Sicherungen`,anteil:null,stufe:o.stufe,text:e},t[25]=o.stufe,t[26]=e,t[27]=n):n=t[27],s.push(n),t[2]=a,t[3]=i,t[4]=o.stufe,t[5]=o.zuletzt,t[6]=s}else s=t[6];let c;t[28]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,I.jsx)(qc,{titel:`Speicher und Sicherungen`}),t[28]=c):c=t[28];let l;return t[29]===s?l=t[30]:(l=(0,I.jsxs)(`div`,{className:`flex flex-col gap-2.5`,children:[c,(0,I.jsx)(`ul`,{className:`m-0 grid list-none grid-cols-1 gap-2 p-0 sm:grid-cols-3`,children:s.map(fl)})]}),t[29]=s,t[30]=l),l}function fl(e){return(0,I.jsx)(`li`,{children:(0,I.jsxs)(hi,{to:`/homelab`,className:`flaeche-innen flex h-full flex-col gap-2 rounded-xl px-3 py-2.5 transition-colors hover:border-white/20 hover:bg-white/[0.05]`,children:[(0,I.jsxs)(`span`,{className:`flex items-center justify-between gap-2`,children:[(0,I.jsx)(`span`,{className:`text-[13.5px] font-medium`,children:e.label}),(0,I.jsx)(`span`,{"aria-hidden":!0,className:o(`size-1.5 rounded-full`,ul[e.stufe])})]}),(0,I.jsx)(`span`,{className:`truncate text-[12.5px] text-text-3`,children:e.text}),e.anteil!=null&&(0,I.jsx)(`span`,{"aria-hidden":!0,className:`h-1 overflow-hidden rounded-full bg-white/[0.08]`,children:(0,I.jsx)(`span`,{className:o(`block h-full rounded-full`,e.stufe===`ok`?`bg-lab/80`:ul[e.stufe]),style:{width:`${Math.max(2,Math.round(e.anteil*100))}%`}})})]})},e.label)}function pl(e){return e.aktiv}function ml(e){let t=(0,R.c)(17),{verbindung:n}=e,r=n===`online`,i=k(r),a=ue(r),o=ce(r),s;t[0]===i.data?.ziele?s=t[1]:(s=i.data?.ziele??[],t[0]=i.data?.ziele,t[1]=s);let c=s,l;t[2]===c?l=t[3]:(l=c.filter(_l),t[2]=c,t[3]=l);let u=l.length,d;t[4]===c?d=t[5]:(d=c.filter(gl),t[4]=c,t[5]=d);let f=d.length,p=c.length?`Proxmox VE · ${f} Gäste`:`Proxmox VE`,m;t[6]!==r||t[7]!==u||t[8]!==a||t[9]!==i.isPending||t[10]!==o||t[11]!==c?(m=r?(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(Yc,{hinweise:a.data?.hinweise??[],ziel:`/homelab`}),(0,I.jsxs)(`div`,{className:`flex flex-col gap-2.5`,children:[(0,I.jsx)(qc,{titel:`Geräte`,rechts:(0,I.jsxs)(`span`,{className:`text-[13px] text-text-3`,children:[u,` von `,c.length,` erreichbar`]})}),i.isPending&&c.length===0&&(0,I.jsx)(`p`,{className:`text-sm text-text-3`,children:`Wird gelesen …`}),(0,I.jsx)(`ul`,{className:`m-0 grid list-none grid-cols-1 gap-2 p-0 sm:grid-cols-2`,children:c.map(hl)})]}),(0,I.jsx)(dl,{speicher:o.data})]}):(0,I.jsx)(`p`,{className:`text-sm text-text-2`,children:`Der Homelab-Teil antwortet gerade nicht; die Karte zeigt nichts Veraltetes.`}),t[6]=r,t[7]=u,t[8]=a,t[9]=i.isPending,t[10]=o,t[11]=c,t[12]=m):m=t[12];let h;return t[13]!==p||t[14]!==m||t[15]!==n?(h=(0,I.jsx)(Jc,{bereich:`homelab`,verbindung:n,i:3,unterzeile:p,children:m}),t[13]=p,t[14]=m,t[15]=n,t[16]=h):h=t[16],h}function hl(e){let t=Pc(e),n=e.erreichbar===!1?`rot`:e.erreichbar?`ok`:`aus`;return(0,I.jsx)(`li`,{children:(0,I.jsx)($c,{to:t?`/homelab/updates`:`/homelab`,bild:ws(e),name:xo(e),unter:_o(e.kennzahl)??yo(e),punkt:n,zustandText:e.erreichbar===!1?`antwortet nicht`:e.erreichbar?`erreichbar`:`kein Stand`,updates:t?.teile??[],knopf:t?.knopf??!1})},e.id)}function gl(e){return e.art!==`proxmox-host`}function _l(e){return e.erreichbar}var W={eingespielt:`gruen`,gruen:`gruen`,zurueckgerollt:`bernstein`,gelb:`bernstein`,fehler:`rot`,rot:`rot`,neustart:`cyan`,info:`cyan`,aufgeraeumt:`gruen`},vl={zurueckgerollt:`zurückgerollt`,aufgeraeumt:`aufgeräumt`,neustart:`Neustart`,fehler:`Fehler`,zurueckgesetzt:`zurückgesetzt`,geloescht:`gelöscht`},yl={gruen:`bg-gruen`,bernstein:`bg-bernstein`,rot:`bg-rot`,cyan:`bg-cyan`,grau:`bg-white/30`};function bl(e){let t=(0,R.c)(5),{homelabAktiv:n}=e,r=ae(),i=E(n),a;if(t[0]!==r.data?.laeufe||t[1]!==i.data?.laeufe){let e=[...(r.data?.laeufe??[]).slice(0,8).map(wl),...(i.data?.laeufe??[]).filter(Cl).slice(0,8).map(Sl)].sort(xl).slice(0,8),n;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(n=Bc(4),t[3]=n):n=t[3];let s;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,I.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,I.jsx)(`h2`,{className:`text-[17px] leading-tight font-semibold`,children:`Zuletzt eingespielt`}),(0,I.jsx)(`span`,{className:`hidden text-[13px] text-text-3 sm:inline`,children:`beide Bereiche, neueste zuerst`})]}),t[4]=s):s=t[4],a=(0,I.jsxs)(`section`,{"aria-label":`Zuletzt eingespielt`,className:`auftauchen flaeche flex flex-col gap-4 rounded-3xl p-5 sm:p-6`,style:n,children:[s,e.length===0?(0,I.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Noch keine Updates aufgezeichnet.`}):(0,I.jsx)(`ol`,{className:`m-0 grid list-none gap-x-8 p-0 lg:grid-flow-col lg:grid-cols-2 lg:grid-rows-[repeat(var(--zeilen),auto)]`,style:{"--zeilen":Math.ceil(e.length/2)},children:e.map((t,n)=>(0,I.jsxs)(`li`,{className:o(`grid grid-cols-[10px_minmax(0,1fr)_auto] items-center gap-x-3 border-t border-white/[0.06] py-2.5`,n===0&&`border-t-0`,n===Math.ceil(e.length/2)&&`lg:border-t-0`),children:[(0,I.jsx)(`span`,{"aria-hidden":!0,className:o(`size-2.5 rounded-full`,yl[t.art])}),(0,I.jsxs)(`span`,{className:`flex min-w-0 flex-col gap-0.5`,children:[(0,I.jsxs)(`span`,{className:`truncate text-[14.5px]`,children:[(0,I.jsx)(`span`,{className:o(`etikett mr-2 text-[10px] tracking-[0.12em]`,Rc[t.bereich].text),children:Rc[t.bereich].name}),t.titel]}),(0,I.jsx)(`span`,{className:`ziffern text-[12px] text-text-3`,children:ne(new Date(t.zeit).toISOString()).toLowerCase()})]}),(0,I.jsx)(_s,{art:t.art,children:t.chip})]},`${t.bereich}-${t.zeit}-${t.titel}`))})]}),t[0]=r.data?.laeufe,t[1]=i.data?.laeufe,t[2]=a}else a=t[2];return a}function xl(e,t){return t.zeit-e.zeit}function Sl(e){return{zeit:e.start*1e3,bereich:`homelab`,titel:e.name,chip:e.ergebnis?vl[e.ergebnis]??e.ergebnis:`unterbrochen`,art:(e.ergebnis?W[e.ergebnis]:`grau`)??`grau`}}function Cl(e){return e.status!==`laeuft`&&!xc(e)&&e.baustein!==`probe`}function wl(e){return{zeit:new Date(e.start).getTime(),bereich:`box`,titel:e.anlass,chip:e.titel,art:W[e.stufe]??`grau`}}function Tl(){let e=(0,R.c)(120),t=V(),n=b(),r=D(),i=t.homelab.verbindung===`online`,a=k(i),s=ue(i);if(n.isPending&&!n.data){let t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,I.jsx)(vs,{text:`Die Übersicht sammelt sich gleich …`}),e[0]=t):t=e[0],t}let c,l,u,d,f,p,m,h,g,_;if(e[1]!==r.data?.ziele||e[2]!==a.data?.ziele||e[3]!==i||e[4]!==s.data?.hinweise||e[5]!==t.box.updates||e[6]!==t.box.verbindung||e[7]!==t.homelab.updates||e[8]!==t.homelab.verbindung||e[9]!==n.data||e[10]!==n.isError){let o=[...t.box.verbindung===`getrennt`&&n.isError?[`Die KI-Box`]:[],...t.homelab.verbindung===`getrennt`?[`Der Homelab-Teil`]:[]],v=a.data?.ziele??[],y=v.filter(jl).map(Al),b;e[21]===n.data?.hinweise?b=e[22]:(b=n.data?.hinweise??[],e[21]=n.data?.hinweise,e[22]=b);let x;e[23]===s.data?.hinweise?x=e[24]:(x=s.data?.hinweise??[],e[23]=s.data?.hinweise,e[24]=x);let S;e[25]!==b||e[26]!==x?(S=[...b,...x].filter(kl),e[25]=b,e[26]=x,e[27]=S):S=e[27],c=S,h=c.some(Ol),_=t.box.updates+t.homelab.updates;let C;e[28]===c?C=e[29]:(C=c.filter(Dl),e[28]=c,e[29]=C),d=Fc({getrennt:o,stumm:y,hinweiseRot:C.length,hinweise:c.length,updates:_}),u=Ic[d.stufe],p=n.data?.flugplan.geplant[0];let w;e[30]===p?w=e[31]:(w=p?il(ne(p.zeit)):[``,`–`],e[30]=p,e[31]=w),[m,f]=w,l=n.data?.zustand.stand;let T;e[32]===r.data?.ziele?T=e[33]:(T=r.data?.ziele.find(El),e[32]=r.data?.ziele,e[33]=T);let E=T?.name??`KI-Box`,D=n.isError?`rot`:n.data?`ok`:`aus`,O;e[34]!==E||e[35]!==D?(O={id:`ki-box`,name:E,zustand:D},e[34]=E,e[35]=D,e[36]=O):O=e[36];let k;e[37]===i?k=e[38]:(k=e=>({id:e.id,name:e.name,zustand:i?e.erreichbar===!1?`rot`:e.erreichbar?`ok`:`aus`:`aus`}),e[37]=i,e[38]=k),g=[O,...v.map(k)],e[1]=r.data?.ziele,e[2]=a.data?.ziele,e[3]=i,e[4]=s.data?.hinweise,e[5]=t.box.updates,e[6]=t.box.verbindung,e[7]=t.homelab.updates,e[8]=t.homelab.verbindung,e[9]=n.data,e[10]=n.isError,e[11]=c,e[12]=l,e[13]=u,e[14]=d,e[15]=f,e[16]=p,e[17]=m,e[18]=h,e[19]=g,e[20]=_}else c=e[11],l=e[12],u=e[13],d=e[14],f=e[15],p=e[16],m=e[17],h=e[18],g=e[19],_=e[20];let v=g,y;e[39]===Symbol.for(`react.memo_cache_sentinel`)?(y=Bc(0),e[39]=y):y=e[39];let x=`radial-gradient(closest-side, color-mix(in srgb, ${u.glut} 20%, transparent), transparent)`,S;e[40]===x?S=e[41]:(S=(0,I.jsx)(`div`,{"aria-hidden":!0,className:`glut-atmet pointer-events-none absolute -top-48 -left-40 size-[560px] rounded-full`,style:{background:x}}),e[40]=x,e[41]=S);let C;e[42]!==u.glut||e[43]!==v?(C=(0,I.jsx)(vc,{segmente:v,glut:u.glut}),e[42]=u.glut,e[43]=v,e[44]=C):C=e[44];let w=u.Symbol,T;e[45]===u.symbol?T=e[46]:(T=o(`size-4`,u.symbol),e[45]=u.symbol,e[46]=T);let E;e[47]!==u.Symbol||e[48]!==T?(E=(0,I.jsx)(w,{className:T,"aria-hidden":!0}),e[47]=u.Symbol,e[48]=T,e[49]=E):E=e[49];let O;e[50]===l?O=e[51]:(O=l?` · geprüft ${zc.format(new Date(l*1e3))}`:``,e[50]=l,e[51]=O);let ee;e[52]!==E||e[53]!==O?(ee=(0,I.jsxs)(`span`,{className:`etikett flex items-center gap-2 text-[11px] text-text-3`,children:[E,`Gesamtlage`,O]}),e[52]=E,e[53]=O,e[54]=ee):ee=e[54];let A;e[55]===u.titel?A=e[56]:(A=o(`text-[32px] leading-[1.05] font-semibold tracking-[-0.015em] sm:text-[44px]`,u.titel),e[55]=u.titel,e[56]=A);let te;e[57]!==d.titel||e[58]!==A?(te=(0,I.jsx)(`h2`,{className:A,children:d.titel}),e[57]=d.titel,e[58]=A,e[59]=te):te=e[59];let re;e[60]===d.text?re=e[61]:(re=(0,I.jsx)(`p`,{className:`text-[15px] text-text-2 sm:text-base`,children:d.text}),e[60]=d.text,e[61]=re);let ie;e[62]===t.box.verbindung?ie=e[63]:(ie=(0,I.jsx)(Uc,{bereich:`box`,verbindung:t.box.verbindung}),e[62]=t.box.verbindung,e[63]=ie);let ae;e[64]===t.homelab.verbindung?ae=e[65]:(ae=(0,I.jsx)(Uc,{bereich:`homelab`,verbindung:t.homelab.verbindung}),e[64]=t.homelab.verbindung,e[65]=ae);let oe;e[66]!==ie||e[67]!==ae?(oe=(0,I.jsxs)(`div`,{className:`mt-1 flex flex-wrap gap-2`,children:[ie,ae]}),e[66]=ie,e[67]=ae,e[68]=oe):oe=e[68];let se;e[69]!==te||e[70]!==re||e[71]!==oe||e[72]!==ee?(se=(0,I.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-2.5`,children:[ee,te,re,oe]}),e[69]=te,e[70]=re,e[71]=oe,e[72]=ee,e[73]=se):se=e[73];let ce;e[74]!==se||e[75]!==C?(ce=(0,I.jsxs)(`div`,{className:`flex min-w-0 items-center gap-5 sm:gap-8`,children:[C,se]}),e[74]=se,e[75]=C,e[76]=ce):ce=e[76];let le=String(_),de=_?`cyan`:`grau`,fe;e[77]===t.box.updates?fe=e[78]:(fe=(0,I.jsxs)(hi,{to:`/box/updates`,className:`hover:text-foreground`,children:[`KI-Box `,t.box.updates]}),e[77]=t.box.updates,e[78]=fe);let pe;e[79]===t.homelab.updates?pe=e[80]:(pe=(0,I.jsxs)(hi,{to:`/homelab/updates`,className:`hover:text-foreground`,children:[`Homelab `,t.homelab.updates]}),e[79]=t.homelab.updates,e[80]=pe);let me;e[81]!==le||e[82]!==de||e[83]!==fe||e[84]!==pe?(me=(0,I.jsxs)(Hc,{Icon:Ga,label:`Updates bereit`,wert:le,art:de,children:[fe,` · `,pe]}),e[81]=le,e[82]=de,e[83]=fe,e[84]=pe,e[85]=me):me=e[85];let he=h?lo:aa,ge=String(c.length),_e=h?`rot`:c.length?`bernstein`:`grau`,j=c.length?`stehen oben in den Karten`:`nichts offen`,M;e[86]!==he||e[87]!==ge||e[88]!==_e||e[89]!==j?(M=(0,I.jsx)(Hc,{Icon:he,label:`Hinweise`,wert:ge,art:_e,children:j}),e[86]=he,e[87]=ge,e[88]=_e,e[89]=j,e[90]=M):M=e[90];let ve=p?`${p.titel}${m&&m!==`heute`?` · ${m}`:``}`:`nichts geplant`,ye;e[91]!==f||e[92]!==ve?(ye=(0,I.jsx)(Hc,{Icon:z,label:`Als Nächstes`,wert:f,art:`grau`,children:ve}),e[91]=f,e[92]=ve,e[93]=ye):ye=e[93];let be;e[94]!==me||e[95]!==M||e[96]!==ye?(be=(0,I.jsxs)(`div`,{className:`grid gap-2.5 sm:grid-cols-3 xl:grid-cols-1`,children:[me,M,ye]}),e[94]=me,e[95]=M,e[96]=ye,e[97]=be):be=e[97];let xe;e[98]!==ce||e[99]!==be?(xe=(0,I.jsxs)(`div`,{className:`relative grid gap-6 p-5 sm:p-7 xl:grid-cols-[minmax(0,1fr)_minmax(0,340px)] xl:items-center xl:gap-10`,children:[ce,be]}),e[98]=ce,e[99]=be,e[100]=xe):xe=e[100];let Se;e[101]!==S||e[102]!==xe?(Se=(0,I.jsxs)(`section`,{"aria-label":`Gesamtlage`,className:`auftauchen flaeche relative overflow-hidden rounded-3xl`,style:y,children:[S,xe]}),e[101]=S,e[102]=xe,e[103]=Se):Se=e[103];let N;e[104]===i?N=e[105]:(N=(0,I.jsx)(Gc,{homelabAktiv:i}),e[104]=i,e[105]=N);let Ce;e[106]===t.box.verbindung?Ce=e[107]:(Ce=(0,I.jsx)(al,{verbindung:t.box.verbindung}),e[106]=t.box.verbindung,e[107]=Ce);let we;e[108]===t.homelab.verbindung?we=e[109]:(we=(0,I.jsx)(ml,{verbindung:t.homelab.verbindung}),e[108]=t.homelab.verbindung,e[109]=we);let Te;e[110]!==Ce||e[111]!==we?(Te=(0,I.jsxs)(`div`,{className:`grid gap-5 md:gap-6 xl:grid-cols-2`,children:[Ce,we]}),e[110]=Ce,e[111]=we,e[112]=Te):Te=e[112];let Ee;e[113]===i?Ee=e[114]:(Ee=(0,I.jsx)(bl,{homelabAktiv:i}),e[113]=i,e[114]=Ee);let De;return e[115]!==Se||e[116]!==N||e[117]!==Te||e[118]!==Ee?(De=(0,I.jsxs)(I.Fragment,{children:[Se,N,Te,Ee]}),e[115]=Se,e[116]=N,e[117]=Te,e[118]=Ee,e[119]=De):De=e[119],De}function El(e){return e.art===`ki-box`}function Dl(e){return e.stufe===`rot`}function Ol(e){return e.stufe===`rot`}function kl(e){return e.zustand!==`stumm`}function Al(e){return e.name}function jl(e){return e.erreichbar===!1}var Ml=yi({component:hs,notFoundComponent:()=>(0,I.jsx)(Qr,{to:`/`})}),Nl=L({getParentRoute:()=>Ml,path:`/`,component:Tl}),Pl=L({getParentRoute:()=>Ml,path:`/box`,component:bi(()=>is(()=>import(`./Start-C0zUSJby.js`),__vite__mapDeps([8,1,6,3,9,10])),`StartSeite`)}),Fl=L({getParentRoute:()=>Ml,path:`/box/updates`,component:bi(()=>is(()=>import(`./Updates-BHdVGZTU.js`),__vite__mapDeps([11,1,6,12,3,13,7,4,9,14])),`UpdatesSeite`)}),Il=L({getParentRoute:()=>Ml,path:`/box/modelle`,component:bi(()=>is(()=>import(`./Modelle-Dr0cwO5E.js`),__vite__mapDeps([15,1,6,16,17,12,3,2,4,13,7,9,14,18])),`ModelleSeite`)}),Ll=L({getParentRoute:()=>Ml,path:`/box/monitoring`,component:bi(()=>is(()=>import(`./Monitoring-N1nkbn6G.js`),__vite__mapDeps([19,1,6,20,16,17,9,18])),`BoxMonitoringSeite`)}),Rl=L({getParentRoute:()=>Ml,path:`/box/dienste`,component:bi(()=>is(()=>import(`./Dienste-CswS8GkA.js`),__vite__mapDeps([21,1,6,3,13,7,4,9])),`DiensteSeite`)}),zl=L({getParentRoute:()=>Ml,path:`/homelab`,component:bi(()=>is(()=>import(`./Homelab-akzHSA8K.js`),__vite__mapDeps([22,1,6,12,23,3,13,7,4,9,10])),`HomelabSeite`)}),Bl=L({getParentRoute:()=>Ml,path:`/homelab/updates`,component:bi(()=>is(()=>import(`./Homelab-akzHSA8K.js`),__vite__mapDeps([22,1,6,12,23,3,13,7,4,9,10])),`HomelabUpdatesSeite`)}),Vl=L({getParentRoute:()=>Ml,path:`/homelab/snapshots`,component:bi(()=>is(()=>import(`./HomelabSnapshots-DbFeZ8Oz.js`),__vite__mapDeps([24,1,6,23,3,13,7,4,9])),`HomelabSnapshotsSeite`)}),Hl=L({getParentRoute:()=>Ml,path:`/homelab/monitoring`,component:bi(()=>is(()=>import(`./Monitoring-N1nkbn6G.js`),__vite__mapDeps([19,1,6,20,16,17,9,18])),`HomelabMonitoringSeite`)}),Ul=L({getParentRoute:()=>Ml,path:`/homelab/protokoll`,component:bi(()=>is(()=>import(`./HomelabProtokoll-BmIaM_Y4.js`),__vite__mapDeps([25,1,6,20,16,17,12,9])),`HomelabProtokollSeite`)}),Wl=L({getParentRoute:()=>Ml,path:`/einstellungen`,component:bi(()=>is(()=>import(`./Einstellungen-BYXmW-yb.js`),__vite__mapDeps([26,1,6,3,13,7,4])),`EinstellungenSeite`)}),Gl=L({getParentRoute:()=>Ml,path:`/updates`,beforeLoad:()=>{throw wt({to:`/box/updates`})}}),Kl=L({getParentRoute:()=>Ml,path:`/modelle`,beforeLoad:({location:e})=>{throw wt({to:`/box/modelle`,hash:e.hash||void 0})}}),ql=Li({routeTree:Ml.addChildren([Nl,Pl,Fl,Il,Ll,Rl,zl,Bl,Hl,Ul,Wl,Gl,Kl,Vl]),defaultPreload:`intent`,defaultErrorComponent:Hi}),Jl=`mc_neuladen_wegen_version`;function Yl(){window.addEventListener(`vite:preloadError`,e=>{sessionStorage.getItem(Jl)||(e.preventDefault(),sessionStorage.setItem(Jl,`1`),window.location.reload())}),window.addEventListener(`load`,()=>{window.setTimeout(()=>sessionStorage.removeItem(Jl),5e3)})}Yl();var Xl=new Ve({defaultOptions:{queries:{retry:1,refetchOnWindowFocus:!1,staleTime:5e3}}});(0,Vi.createRoot)(document.getElementById(`root`)).render((0,I.jsx)(P.StrictMode,{children:(0,I.jsx)(ie,{client:Xl,children:(0,I.jsx)(Bi,{router:ql})})}));export{lo as $,Ds as A,yo as B,Rs as C,Bs as D,Us as E,Zo as F,Lo as G,xo as H,$o as I,Do as J,To as K,Bo as L,_s as M,vs as N,Ns as O,is as P,mo as Q,zo as R,Ws as S,Ls as T,Io as U,_o as V,Po as W,Eo as X,wo as Y,Ao as Z,Ys as _,wc as a,qi as at,qs as b,Dc as c,Fe as ct,rc as d,$a as et,Qs as f,$s as g,nc as h,Sc as i,sa as it,ws as j,Os as k,Cc as l,tc as m,jc as n,Ga as nt,Tc as o,hi as ot,Zs as p,No as q,kc as r,xa as rt,xc as s,Zr as st,Mc as t,qa as tt,Ec as u,Xs as v,zs as w,Ks as x,Js as y,Co as z}; \ No newline at end of file diff --git a/frontend/dist/assets/index-Bumw6krN.js b/frontend/dist/assets/index-Bumw6krN.js new file mode 100644 index 0000000..8e060a8 --- /dev/null +++ b/frontend/dist/assets/index-Bumw6krN.js @@ -0,0 +1,11 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/MenueSchublade-CMlUHm_j.js","assets/dist-aE7UmubC.js","assets/sheet-DG7u1mB-.js","assets/dist-CakcBaML.js","assets/button-BHVKhtQ6.js","assets/Befehlssuche-Dq-EThSx.js","assets/abfragen-pD_qBEtc.js","assets/Start-BIQA6AF-.js","assets/Lagekopf-DUjslgBy.js","assets/Updates-BnWCu023.js","assets/chevron-right-DF8ikrVh.js","assets/Auftraege-Ddds-g-W.js","assets/Modelle-BLLzu0pF.js","assets/useSelector-DBNxxw17.js","assets/useMatch-DDVpPKJI.js","assets/breite-k-QN6GPl.js","assets/Monitoring-BNmttTQJ.js","assets/useRouterState-DJr4hrdj.js","assets/Dienste-C60GZuQx.js","assets/Homelab-Cu4YNYuQ.js","assets/undo-2-B8COJmAr.js","assets/HomelabSnapshots-D4oCEotX.js","assets/HomelabProtokoll-D7ZspeaL.js","assets/Einstellungen-CVJCMM4J.js"])))=>i.map(i=>d[i]); +import{a as e,c as t,i as n,n as r,o as i,r as a,s as o,t as s}from"./dist-aE7UmubC.js";import{a as c,c as l,i as u,l as d,n as f,o as p,r as m,s as h,t as g}from"./dist-CakcBaML.js";import{$t as _,B as v,Ct as y,D as b,Dt as x,F as S,Ft as C,Gt as w,Ht as T,J as E,Jt as D,Kt as O,Qt as k,St as A,Tt as ee,Ut as te,Vt as ne,Wt as j,Xt as re,Yt as ie,Zt as ae,b as oe,bt as M,ct as se,d as ce,en as le,g as ue,ht as de,nn as fe,nt as pe,q as me,qt as he,tn as ge,u as N,w as P,wt as _e,x as ve,y as ye}from"./abfragen-pD_qBEtc.js";import{_ as be,a as xe,c as F,d as Se,f as Ce,g as we,h as Te,i as Ee,l as De,m as Oe,n as ke,o as Ae,p as je,r as Me,s as Ne,t as Pe,u as Fe,v as Ie,y as Le}from"./useSelector-DBNxxw17.js";import{i as Re,r as ze,t as Be}from"./useMatch-DDVpPKJI.js";import{t as Ve}from"./useRouterState-DJr4hrdj.js";import{t as He}from"./button-BHVKhtQ6.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 Ue=i((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,O());else{var t=n(l);t!==null&&ee(x,t.startTime-e)}}}var S=!1,C=-1,w=5,T=-1;function E(){return g?!0:!(e.unstable_now()-Tt&&E());){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&&ee(x,u.startTime-t),i=!1}}break a}finally{d=null,f=a,p=!1}i=void 0}}finally{i?O():S=!1}}}var O;if(typeof y==`function`)O=function(){y(D)};else if(typeof MessageChannel<`u`){var k=new MessageChannel,A=k.port2;k.port1.onmessage=D,O=function(){A.postMessage(null)}}else O=function(){_(D,0)};function ee(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,ee(x,a-o))):(r.sortIndex=s,t(c,r),m||p||(m=!0,S||(S=!0,O()))),r},e.unstable_shouldYield=E,e.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}})),We=i(((e,t)=>{t.exports=Ue()})),Ge=i((t=>{var n=We(),r=e(),i=d();function a(e){var t=`https://react.dev/errors/`+e;if(1ye||(e.current=ve[ye],ve[ye]=null,ye--)}function F(e,t){ye++,ve[ye]=e.current,e.current=t}var Se=be(null),Ce=be(null),we=be(null),Te=be(null);function Ee(e,t){switch(F(we,t),F(Ce,e),F(Se,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}}xe(Se),F(Se,e)}function De(){xe(Se),xe(Ce),xe(we)}function Oe(e){var t=e.memoizedState;t!==null&&(sh._currentValue=t.memoizedState,F(Te,e)),t=Se.current;var n=dp(t,e.type);t!==n&&(F(Ce,e),F(Se,n))}function ke(e){Ce.current===e&&(xe(Se),xe(Ce)),Te.current===e&&(xe(Te),sh._currentValue=_e)}var Ae,je;function Me(e){if(Ae===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);Ae=t&&t[1]||``,je=-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{Ne=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:``)?Me(n):``}function Fe(e,t){switch(e.tag){case 26:case 27:case 5:return Me(e.type);case 16:return Me(`Lazy`);case 13:return e.child!==t&&t!==null?Me(`Suspense Fallback`):Me(`Suspense`);case 19:return Me(`SuspenseList`);case 0:case 15:return Pe(e.type,!1);case 11:return Pe(e.type.render,!1);case 1:return Pe(e.type,!0);case 31:return Me(`Activity`);case 30:return Me(`ViewTransition`);default:return``}}function Ie(e){try{var t=``,n=null;do t+=Fe(e,n),n=e,e=e.return;while(e);return t}catch(e){return` +Error generating stack: `+e.message+` +`+e.stack}}var Le=Object.prototype.hasOwnProperty,Re=n.unstable_scheduleCallback,ze=n.unstable_cancelCallback,Be=n.unstable_shouldYield,Ve=n.unstable_requestPaint,He=n.unstable_now,Ue=n.unstable_getCurrentPriorityLevel,Ge=n.unstable_ImmediatePriority,Ke=n.unstable_UserBlockingPriority,qe=n.unstable_NormalPriority,Je=n.unstable_LowPriority,Ye=n.unstable_IdlePriority,Xe=n.log,I=n.unstable_setDisableYieldValue,Ze=null,Qe=null;function $e(e){if(typeof Xe==`function`&&I(e),Qe&&typeof Qe.setStrictMode==`function`)try{Qe.setStrictMode(Ze,e)}catch{}}var et=Math.clz32?Math.clz32:rt,tt=Math.log,nt=Math.LN2;function rt(e){return e>>>=0,e===0?32:31-(tt(e)/nt|0)|0}var it=256,at=262144,ot=4194304;function st(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 ct(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=st(n))):i=st(o):i=st(s)):(r=s&~a,r===0?(o&=s,o===0?n||(n=s&~e,n!==0&&(i=st(n))):i=st(o)):i=st(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 lt(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function ut(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 mt(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function ht(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=mr),_r=` `,vr=!1;function yr(e,t){switch(e){case`keyup`:return fr.indexOf(t.keyCode)!==-1;case`keydown`:return t.keyCode!==229;case`keypress`:case`mousedown`:case`focusout`:return!0;default:return!1}}function br(e){return e=e.detail,typeof e==`object`&&`data`in e?e.data:null}var xr=!1;function Sr(e,t){switch(e){case`compositionend`:return br(t);case`keypress`:return t.which===32?(vr=!0,_r):null;case`textInput`:return e=t.data,e===_r&&vr?null:e;default:return null}}function Cr(e,t){if(xr)return e===`compositionend`||!pr&&yr(e,t)?(e=Fn(),Pn=Nn=Mn=null,xr=!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=Gr(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 Jr(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=Wr(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=Wr(e.document)}return t}function Yr(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 Xr=kn&&`documentMode`in document&&11>=document.documentMode,Zr=null,Qr=null,$r=null,ei=!1;function ti(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;ei||Zr==null||Zr!==Wr(r)||(r=Zr,`selectionStart`in r&&Yr(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}),$r&&Ur($r,r)||($r=r,r=Jf(Qr,`onSelect`),0>=o,i-=o,Zi=1<<32-et(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),V&&Qi(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),V&&Qi(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 V&&Qi(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)}),V&&Qi(i,g),u}function _(e,r,o,c){if(typeof o==`object`&&o&&o.type===A&&o.key===null&&o.props.ref===void 0&&(o=o.props.children),typeof o==`object`&&o){switch(o.$$typeof){case O:a:{for(var l=o.key;r!==null;){if(r.key===l){if(l=o.type,l===A){if(r.tag===7){n(e,r.sibling),c=i(r,o.props.children),so(c,o),c.return=e,e=c;break a}}else if(r.elementType===l||typeof l==`object`&&l&&l.$$typeof===M&&eo(l)===r.type){n(e,r.sibling),c=i(r,o.props),so(c,o),c.return=e,e=c;break a}n(e,r);break}t(e,r),r=r.sibling}o.type===A?(c=Ri(o.props.children,e.mode,c,o.key),so(c,o),c.return=e,e=c):(c=Li(o.type,o.key,o.props,null,e.mode,c),so(c,o),c.return=e,e=c)}return s(e);case k: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=Vi(o,e.mode,c),c.return=e,e=c}return s(e);case M:return o=eo(o),_(e,r,o,c)}if(ge(o))return h(e,r,o,c);if(pe(o)){if(l=pe(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,oo(o),c);if(o.$$typeof===j)return _(e,r,Ta(e,o),c);co(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=zi(o,e.mode,c),c.return=e,e=c),s(e)):n(e,r)}return function(e,t,n,r){try{ao=0;var i=_(e,t,n,r);return io=null,i}catch(t){if(t===Ja||t===Xa)throw t;var a=Ni(29,t,null,e.mode);return a.lanes=r,a.return=e,a}}}var uo=lo(!0),fo=lo(!1),po=!1;function mo(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function ho(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 go(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function _o(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=Ai(e),ki(e,null,n),t}return Ei(e,r,t,n),Ai(e)}function vo(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,_t(e,n)}}function yo(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 bo=!1;function xo(){if(bo){var e=za;if(e!==null)throw e}}function So(e,t,n,r){bo=!1;var i=e.updateQueue;po=!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===Ra&&(bo=!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:po=!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 Co(e,t){if(typeof e!=`function`)throw Error(a(191,e));e.call(t)}function wo(e,t){var n=e.callbacks;if(n!==null)for(e.callbacks=null,e=0;ea?a:8;var o=N.T,s={};s.types=o===null?null:o.types,N.T=s,uc(e,!1,t,n);try{var c=i(),l=N.S;l!==null&&l(s,c),typeof c==`object`&&c&&typeof c.then==`function`?lc(e,t,Ha(c,r),jd(e)):lc(e,t,r,jd(e))}catch(n){lc(e,t,{then:function(){},status:`rejected`,reason:n},jd())}finally{P.p=a,o!==null&&s.types!==null&&(o.types=s.types),N.T=o}}function $s(){}function ec(e,t,n,r){if(e.tag!==5)throw Error(a(476));var i=tc(e).queue;Qs(e,i,t,_e,n===null?$s:function(){return nc(e),n(r)})}function tc(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:_e,baseState:_e,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:ds,lastRenderedState:_e},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:ds,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function nc(e){var t=tc(e);t.next===null&&(t=e.alternate.memoizedState),lc(e,t.next.queue,{},jd())}function rc(){return wa(sh)}function ic(){return os().memoizedState}function ac(){return os().memoizedState}function oc(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=jd();e=go(n);var r=_o(t,e,n);r!==null&&(Pd(r,t,n),vo(r,t,n)),t={cache:ja()},e.payload=t;return}t=t.return}}function sc(e,t,n){var r=jd();n={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},dc(e)?fc(t,n):(n=Di(e,t,n,r),n!==null&&(Pd(n,e,r),pc(n,t,r)))}function cc(e,t,n){lc(e,t,n,jd())}function lc(e,t,n,r){var i={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(dc(e))fc(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,Hr(s,o))return Ei(e,t,i,0),q===null&&Ti(),!1}catch{}if(n=Di(e,t,i,r),n!==null)return Pd(n,e,r),pc(n,t,r),!0}return!1}function uc(e,t,n,r){if(r={lane:2,revertLane:Pf(),gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},dc(e)){if(t)throw Error(a(479))}else t=Di(e,n,r,2),t!==null&&Pd(t,e,2)}function dc(e){var t=e.alternate;return e===H||t!==null&&t===H}function fc(e,t){Wo=Uo=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function pc(e,t,n){if(n&4194048){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,_t(e,n)}}var mc={readContext:wa,use:ls,useCallback:Xo,useContext:Xo,useEffect:Xo,useImperativeHandle:Xo,useLayoutEffect:Xo,useInsertionEffect:Xo,useMemo:Xo,useReducer:Xo,useRef:Xo,useState:Xo,useDebugValue:Xo,useDeferredValue:Xo,useTransition:Xo,useSyncExternalStore:Xo,useId:Xo,useHostTransitionStatus:Xo,useFormState:Xo,useActionState:Xo,useOptimistic:Xo,useMemoCache:Xo,useCacheRefresh:Xo,useEffectEvent:Xo},hc={readContext:wa,use:ls,useCallback:function(e,t){return as().memoizedState=[e,t===void 0?null:t],e},useContext:wa,useEffect:zs,useImperativeHandle:function(e,t,n){n=n==null?null:n.concat([e]),Ls(4194308,4,Gs.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Ls(4194308,4,e,t)},useInsertionEffect:function(e,t){Ls(4,2,e,t)},useMemo:function(e,t){var n=as();t=t===void 0?null:t;var r=e();if(Go){$e(!0);try{e()}finally{$e(!1)}}return n.memoizedState=[r,t],r},useReducer:function(e,t,n){var r=as();if(n!==void 0){var i=n(t);if(Go){$e(!0);try{n(t)}finally{$e(!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=sc.bind(null,H,e),[r.memoizedState,e]},useRef:function(e){var t=as();return e={current:e},t.memoizedState=e},useState:function(e){e=xs(e);var t=e.queue,n=cc.bind(null,H,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:qs,useDeferredValue:function(e,t){return Xs(as(),e,t)},useTransition:function(){var e=xs(!1);return e=Qs.bind(null,H,e.queue,!0,!1),as().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var r=H,i=as();if(V){if(n===void 0)throw Error(a(407));n=n()}else{if(n=t(),q===null)throw Error(a(349));Y&127||gs(r,t,n)}i.memoizedState=n;var o={value:n,getSnapshot:t};return i.queue=o,zs(vs.bind(null,r,o,e),[e]),r.flags|=2048,Fs(9,{destroy:void 0},_s.bind(null,r,o,n,t),null),n},useId:function(){var e=as(),t=q.identifierPrefix;if(V){var n=z,r=Zi;n=(r&~(1<<32-et(r)-1)).toString(32)+n,t=`_`+t+`R_`+n,n=Ko++,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[wt]=t,o[Tt]=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&&pl(t)}}return W(t),t.subtreeFlags&=-33554433,ml(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==r&&pl(t);else{if(typeof r!=`string`&&t.stateNode===null)throw Error(a(166));if(e=we.current,ua(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,i=ra,i!==null)switch(i.tag){case 27:case 5:r=i.memoizedProps}e[wt]=t,e=!!(e.nodeValue===n||r!==null&&!0===r.suppressHydrationWarning||ep(e.nodeValue,n)),e||sa(t,!0)}else e=lp(e).createTextNode(r),e[wt]=t,t.stateNode=e}return W(t),null;case 31:if(n=t.memoizedState,e===null||e.memoizedState!==null){if(r=ua(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[wt]=t}else da(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;W(t),e=!1}else n=fa(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return t.flags&256?(Io(t),t):(Io(t),null);if(t.flags&128)throw Error(a(558))}return W(t),null;case 13:if(r=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(i=ua(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[wt]=t}else da(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;W(t),i=!1}else i=fa(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=i),i=!0;if(!i)return t.flags&256?(Io(t),t):(Io(t),null)}return Io(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),gl(t,t.updateQueue),W(t),null);case 4:return De(),e===null&&Wf(t.stateNode.containerInfo),t.flags|=67108864,W(t),null;case 10:return va(t.type),W(t),null;case 19:if(zo(t),r=t.memoizedState,r===null)return W(t),null;if(i=!!(t.flags&128),o=r.rendering,o===null){if(i)_l(r,!1);else{if(ad!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(o=Bo(e),o!==null){for(t.flags|=128,_l(r,!1),e=o.updateQueue,t.updateQueue=e,gl(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)Ii(n,e),n=n.sibling;return Ro(t,Lo.current&1|2),V&&Qi(t,r.treeForkCount),t.child}e=e.sibling}r.tail!==null&&He()>gd&&(t.flags|=128,i=!0,_l(r,!1),t.lanes=4194304)}}else{if(!i){if(e=Bo(o),e!==null){if(t.flags|=128,i=!0,e=e.updateQueue,t.updateQueue=e,gl(t,e),_l(r,!0),r.tail===null&&r.tailMode!==`collapsed`&&r.tailMode!==`visible`&&!o.alternate&&!V)return W(t),null}else 2*He()-r.renderingStartTime>gd&&n!==536870912&&(t.flags|=128,i=!0,_l(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=He(),e.sibling=null,o=Lo.current,o=i?o&1|2:o&1,r.tailMode===`visible`||r.tailMode===`collapsed`||!n||V?Ro(t,o):(n=o,F(Ao,t),F(Lo,n),jo===null&&(jo=t)),V&&Qi(t,r.treeForkCount),e}return W(t),null;case 22:case 23:return Io(t),ko(),r=t.memoizedState!==null,e===null?r&&(t.flags|=8192):e.memoizedState!==null!==r&&(t.flags|=8192),r?n&536870912&&!(t.flags&128)&&(W(t),t.subtreeFlags&6&&(t.flags|=8192)):W(t),n=t.updateQueue,n!==null&&gl(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&&xe(Wa),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),va(Aa),W(t),null;case 25:return null;case 30:return t.flags|=33554432,W(t),null}throw Error(a(156,t.tag))}function yl(e,t){switch(ta(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return va(Aa),De(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return ke(t),null;case 31:if(t.memoizedState!==null){if(Io(t),t.alternate===null)throw Error(a(340));da()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(Io(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(a(340));da()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return zo(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 De(),null;case 10:return va(t.type),null;case 22:case 23:return Io(t),ko(),e!==null&&xe(Wa),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return va(Aa),null;case 25:return null;default:return null}}function bl(e,t){switch(ta(t),t.tag){case 3:va(Aa),De();break;case 26:case 27:case 5:ke(t);break;case 4:De();break;case 31:t.memoizedState!==null&&Io(t);break;case 13:Io(t);break;case 19:zo(t);break;case 10:va(t.type);break;case 22:case 23:Io(t),ko(),e!==null&&xe(Wa);break;case 24:va(Aa)}}function xl(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 Sl(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 Cl(e){var t=e.updateQueue;if(t!==null){var n=e.stateNode;try{wo(t,n)}catch(t){Z(e,e.return,t)}}}function wl(e,t,n){n.props=Sc(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(n){Z(e,t,n)}}function Tl(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=vi(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);m(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 El(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 Dl(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[wt]=e,Rt(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 _=Kr(s,h),v=Kr(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,N.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),Qe&&typeof Qe.onPostCommitFiberRoot==`function`)try{Qe.onPostCommitFiberRoot(Ze,o)}catch{}return!0}finally{P.p=i,N.T=r,uf(e,t)}}function pf(e,t,n){t=Ui(n,t),t=Oc(e.stateNode,t,2),e=_o(e,t,2),e!==null&&(mt(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=Ui(n,e),n=kc(2),r=_o(t,n,2),r!==null&&(Ac(n,r,t,e),mt(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>He()-md?K&2?cd|=n:Vd(e,0):cd|=n,ud===Y&&(ud=0)),Ef(e)}function gf(e,t){t===0&&(t=ft()),e=Oi(e,t),e!==null&&(mt(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 Re(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-et(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=ct(r,r===q?a:0,r.cancelPendingCommit!==null||r.timeoutHandle!==-1),!(a&3)||lt(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=He(),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=an(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),Rt(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="`+an(t)+`"]`;t===`image`&&n&&n.imageSrcSet?(i+=`[imagesrcset="`+an(n.imageSrcSet)+`"]`,typeof n.imageSizes==`string`&&(i+=`[imagesizes="`+an(n.imageSizes)+`"]`)):i+=`[href="`+an(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[Mt]=!0,o.onload=o.onerror=function(){zt(o)}),Rt(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="`+an(r)+`"][href="`+an(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),Rt(r),n.head.appendChild(r)}}}function Am(e,t,n){xm.S(e,t,n);var r=wm;if(r&&e){var i=Lt(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`);Rt(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=Lt(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`),Rt(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=Lt(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`),Rt(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=we.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=Lt(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=Lt(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=Lt(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="`+an(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[Mt]){r.loading=1;return}}else t=e.createElement(`link`),t[Mt]=!0,t.onload=t.onerror=zt.bind(null,t),np(t,`link`,n),Rt(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="`+an(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~="`+an(n.href)+`"]`);if(r)return t.instance=r,Rt(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`),Rt(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,Rt(o),o;r=Im(n),(i=vm.get(i))&&Hm(r,i),o=(e.ownerDocument||e).createElement(`link`),Rt(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,Rt(i),i):(r=n,(i=vm.get(o))&&(r=E({},n),Um(r,i)),e=e.ownerDocument||e,i=e.createElement(`script`),Rt(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,Rt(a);return}a=t.ownerDocument||t,r=Im(r),(i=vm.get(i))&&Hm(r,i),a=a.createElement(`link`),Rt(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=Ge()})),qe=class extends O{#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 ne({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=Je(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=Je(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=Je(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=Je(e);return typeof t==`string`?(this.#t.get(t)?.find(t=>t!==e&&t.state.isPaused))?.continue()??Promise.resolve():Promise.resolve()}clear(){j.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=>re(t,e))}findAll(e={}){return this.getAll().filter(t=>re(e,t))}notify(e){j.batch(()=>{this.listeners.forEach(t=>{t(e)})})}resumePausedMutations(){let e=this.getAll().filter(e=>e.state.isPaused);return j.batch(()=>Promise.all(e.map(e=>e.continue().catch(k))))}};function Je(e){return e.options.scope?.id}var Ye=class extends O{#e;constructor(e={}){super(),this.config=e,this.#e=new Map}build(e,t,n){let r=t.queryKey,i=t.queryHash??ie(r,t),a=this.get(i);return a||(a=new T({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(){j.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=>ae(t,e))}findAll(e={}){let t=this.getAll();return Object.keys(e).length>0?t.filter(t=>ae(e,t)):t}notify(e){j.batch(()=>{this.listeners.forEach(t=>{t(e)})})}onFocus(){j.batch(()=>{this.getAll().forEach(e=>{e.onFocus()})})}onOnline(){j.batch(()=>{this.getAll().forEach(e=>{e.onOnline()})})}},Xe=class{#e;#t;#n;#r;#i;#a;#o;#s;constructor(e={}){this.#e=e.queryCache||new Ye,this.#t=e.mutationCache||new qe,this.#n=e.defaultOptions||{},this.#r=new Map,this.#i=new Map,this.#a=0}mount(){this.#a++,this.#a===1&&(this.#o=w.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onFocus())}),this.#s=te.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(le(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=he(t,i);if(a!==void 0)return this.#e.build(this,r).setData(a,{...n,manual:!0})}setQueriesData(e,t,n){return j.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;j.batch(()=>{t.findAll(e).forEach(e=>{t.remove(e)})})}resetQueries(e,t){let n=this.#e;return j.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=j.batch(()=>this.#e.findAll(e).map(e=>e.cancel(n)));return Promise.all(r).then(k).catch(k)}invalidateQueries(e,t={}){return j.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=j.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(k)),e.state.fetchStatus===`paused`?Promise.resolve():t}));return Promise.all(r).then(k)}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(le(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(le(t.staleTime,n))?n.fetch(t):Promise.resolve(n.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(k).catch(k)}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(k).catch(k)}ensureInfiniteQueryData(e){return e._type=`infinite`,this.ensureQueryData(e)}resumePausedMutations(){return te.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(D(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){let t=[...this.#r.values()],n={};return t.forEach(t=>{_(e,t.queryKey)&&Object.assign(n,t.defaultOptions)}),n}setMutationDefaults(e,t){this.#i.set(D(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){let t=[...this.#i.values()],n={};return t.forEach(t=>{_(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||=ie(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===ge&&(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()}},I=t(e(),1),Ze=I.use,Qe=I.useLayoutEffect;function $e(e){return e.replace(/\/{2,}/g,`/`)}function et(e){return e===`/`?e:e.replace(/^\/+/,``)}function tt(e){let t=e.length;return t>1&&e[t-1]===`/`?e.replace(/\/+$/,``):e}function nt(e){return tt(et(e))}function rt(e,t){return e?.endsWith(`/`)&&e!==`/`&&e!==`${t}/`?e.slice(0,-1):e}function it(e,t,n=`never`,r){if(t.includes(`//`)&&(t=$e(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=$e(e)),o=e.split(`/`);o.length>1&&we(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&&(we(o)===``?n===`never`&&o.pop():n===`always`&&o.push(``));let s=o.join(`/`),c=(i?$e(s):s)||`/`;return a&&r&&r.set(a,c),c}function at(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 ot(e){return e==null||e===``}function st(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 ct(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&&ot(f)){if(c===`/`&&!d)continue;f=``}o+=c+st(s,f,r)+(d||``)}}return o+a||`/`}function lt(e){return e?.isNotFound===!0}function ut(){try{return sessionStorage}catch{return}}var dt=`tsr-scroll-restoration-v1_3`,ft=ut();function pt(){try{return JSON.parse(ft?.getItem(`tsr-scroll-restoration-v1_3`)||`{}`)}catch{return{}}}function mt(){try{ft?.setItem(dt,JSON.stringify(ht))}catch{}}var ht=pt(),gt=`data-scroll-restoration-id`,_t=e=>e.state.__TSR_key||e.href;function vt(e){let t=e.getAttribute(gt);if(t)return`[${gt}="${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 yt=!1,bt=`window`;function xt(e){try{return typeof e==`function`?e():document.querySelector(e)}catch{}}function St(e){let t=new Set;for(let n of e){if(n===bt)continue;let e=xt(n);e&&t.add(e)}return t}function Ct(e,t){let n=t??e.options.scrollRestoration,r=e._scroll;n&&(r.restoring=!0);let i=e.options.getScrollRestorationKey||_t,a=new Set,o=e=>{let t=ht[e]||={};for(let e of a)e===document?t[bt]={scrollX,scrollY}:e.isConnected&&(t[vt(e)]={scrollX:e.scrollLeft,scrollY:e.scrollTop})};n&&!r.restoration&&(r.restoration=!0,yt=!1,history.scrollRestoration=`manual`,document.addEventListener(`scroll`,e=>{yt||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())),mt()})),!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=ht[d];if(e){let t=ht[u];for(let n in e){if(n===bt){if(s)continue}else{let e=xt(n);if(!e||s&&o&&(l??=St(o),l.has(e)))continue}t||=ht[u]={},t[n]??=e[n]}}}yt=!0;try{let e=t.toLocation.hash,i=t.toLocation.state.__hashScrollIntoViewOptions??!0,a=!1;if(s){!e&&o&&(l??=St(o));let t=e&&i&&c,s=r.restoring?ht[u]:void 0;if(s)for(let e in s){let{scrollX:r,scrollY:i}=s[e];if(e===bt){if(t)continue;scrollTo({top:i,left:r,behavior:n}),a=!0}else{let t=xt(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{yt=!1}}))}function wt(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 Tt(e){return e?e===`false`?!1:e===`true`?!0:e*0==0&&+e+``===e?+e:e:``}function Et(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]=Tt(r):Array.isArray(t)?t.push(Tt(r)):n[e]=[t,Tt(r)]}return n}var Dt=/^(?:\s|["[{\d-]|fa|nu|tr)/,Ot=At(JSON.parse),kt=jt(JSON.stringify,JSON.parse);function At(e){let t=e===JSON.parse;return n=>{n[0]===`?`&&(n=n.substring(1));let r=Et(n);for(let n in r){let i=r[n];if(typeof i==`string`){if(t&&!Dt.test(i))continue;try{r[n]=e(i)}catch{}}}return r}}function jt(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&&!Dt.test(r))return r;try{return t(r),e(r)}catch{}}return r}return e=>{let t=wt(e,r);return t?`?${t}`:``}}var Mt=`__root__`;function Nt(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 Pt(e){return e instanceof Response&&!!e.options}function Ft(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 It=4,Lt=5;function Rt(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 zt(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=Ht(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===It)>(e.node.kind===It)||t.node.kind===It==(e.node.kind===It)&&t.node.depth>e.node.depth)))}function nn(e,t,n){let r=nt(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=$e(`/${r}${e.pathname}`),e)};return n?{input:({url:e})=>rn(n,s.input({url:e})),output:({url:e})=>s.output({url:an(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 an(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 on(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(()=>{xe(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 sn=`__TSR_index`,cn=`popstate`,ln=`beforeunload`,un=/^[\x00-\x20]*(?:[\\/][\t\n\r]*){2,}/;function dn(e){let t=un.exec(e);return t?`/`+e.slice(t[0].length):e}function fn(e){return/[\x00-\x1f\x7f]/.test(e)&&(e=e.replace(/[\x00-\x1f\x7f]/g,e=>` +\r`.includes(e)?``:encodeURIComponent(e))),dn(e)}function pn(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=gn(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[sn];i=mn(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[sn];i=mn(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[sn]!==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 mn(e,t){let n=_n();return{...t,key:n,__TSR_key:n,[sn]:e}}function hn(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=>fn(e?.createHref?e.createHref(t):t),c=e?.parseLocation??(()=>gn(`${t.location.pathname}${t.location.search}${t.location.hash}`,t.history.state));if(!t.history.state?.__TSR_key&&!t.history.state?.key){let e=_n();t.history.replaceState({[sn]: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=gn(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[sn]-l.state[sn],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=pn({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(ln,x,{capture:!0}),t.removeEventListener(cn,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(ln,x,{capture:!0}),t.addEventListener(cn,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 gn(e,t){let n=fn(e),r=n.indexOf(`#`),i=n.indexOf(`?`);if(!t){let e=_n();t={[sn]: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 _n(){return(Math.random()+1).toString(36).substring(7)}function vn(e,t){return e.protocol!==`http:`&&e.protocol!==`https:`||e.origin!==t||!!e.username||!!e.password}function yn(e){return e.pathname+e.search+e.hash}function bn(e){return e.options.loader||e.options.beforeLoad||e.lazyFn||e.options.component?.preload||e.options.pendingComponent?.preload}function xn(e,t){return{fromLocation:t,toLocation:e,pathChanged:t?.pathname!==e.pathname,hrefChanged:t?.href!==e.href,hashChanged:t?.hash!==e.hash}}function Sn({key:e,__TSR_key:t,__TSR_index:n,__hashScrollIntoViewOptions:r,...i}){return i}function Cn(e){return e.findIndex(e=>e.status===`error`||e.status===`notFound`||e._notFound)+1}function wn(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 Tn=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:hn()),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!==`/`&&nt(n)?nn(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=on(this.latestLocation,e),Ct(this)}},this.updateLatestLocation=()=>{this.latestLocation=this.parseLocation(this.history.location,this.latestLocation)},this.buildRouteTree=()=>{let e=qt(this.routeTree,this.options.caseSensitive);return this.options.routeMasks&&Ut(this.options.routeMasks,e.processedTree),{...e,resolvePathCache:Ft(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:Ne(e),external:!1,searchStr:o,search:be(t?.search,i),hash:Ne(r.slice(1)),state:Le(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:Ne(dn(o.pathname)),external:!!this.rewrite&&vn(o,this.origin),searchStr:c,search:be(t?.search,s),hash:Ne(o.hash.slice(1)),state:Le(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=Kt(tt(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=gn(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=it(s[0]===`/`?``:n.unsafeRelative===`path`?a().pathname:n.from??o()[1],s,this.options.trailingSlash,this.resolvePathCache),l=this.routesByPath[tt(c)],u=c.includes(`$`),d;if(l)d=l._branch??=Yt(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??Bt(!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??=An(n.params,e),!Ce(p))break;p===e&&(p=Object.assign(Ae(),p));try{Object.assign(p,t(p))}catch{}}}p??=An(n.params,jn(n.params,f)?o()[3]:Mn);let m=e.leaveParams?c:dn(Ne(f?ct(c,f,p,this.pathParamsDecoder):c)),h=Nn(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,kn(n.options.validateSearch,{...e,...t}))}catch{}}),t=e}return t},_=h.length?Pn(h,g(),n):n.search===!0?g():typeof n.search==`function`?n.search(g()):n.search||Mn,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:Mn,S=`${m}${v}${b}`,C,w,T=!1;if(this.rewrite){let e=new URL(S,this.origin),t=e.origin,n=an(this.rewrite,e);C=yn(e),vn(n,t)?(w=n.href,T=!0):w=dn(yn(n))}else C=De(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=Wt(r.pathname,this.processedTree);if(t){let i=Object.assign(Ae(),t.rawParams),{from:a,params:o,...s}=t.route,c=An(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 En(this,r.publicHref,{replace:n.replace,ignoreBlocker:t});let i,a=tt(this.latestLocation.href)===tt(n.href)&&F(Sn(n.state),Sn(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?Se(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 En(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 Er(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(xn(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`)&&bn(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(Ie.test(n)||(r=Se(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:vn(e,this.origin)||(n=yn(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=zn,this.preloadRoute=e=>Dr(this,e),this.matchRoute=(e,t)=>{let n={...e,to:e.to?it(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=Gt(r.pathname,t?.caseSensitive??!1,t?.fuzzy??!1,a.pathname,this.processedTree);return!o||e.params&&!F(o.rawParams,e.params,!0)?!1:t?.includeSearch??!0?F(a.search,r.search,!0)?o.rawParams:!1:o.rawParams},this.getStoreConfig=t,e.pathParamsAllowedCharacters?.length&&(this.pathParamsDecoder=at(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??kt,parseSearch:e.parseSearch??Ot,protocolAllowlist:e.protocolAllowlist??Ee}),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=Bt(!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[`**`]:tt(e.pathname))&&(this.options.notFoundRoute?a=[...a,this.options.notFoundRoute]:o=!0);let s=o?Fn(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`&&!je.call(e,t[1]))}var Mn=Object.freeze({});function Nn(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=kn(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 Pn(e,t,n){let r=(t,i,a)=>{if(t>=e.length){if(!n.search)return{};if(n.search===!0)return i;let e=Fe(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 Fn(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 Mt}function In(e,t){let n=e.options.params?.parse??e.options.parseParams;n&&Object.assign(t,n(t))}function Ln(e,t){return e.options[t]?.preload?.()}function Rn(e,t){let n=Ln(e,`component`),r=Ln(e,`pendingComponent`);return t&&(r?r=r.then(t):t()),n&&r?Promise.all([n,r]).then(()=>{}):n??r}function zn(e,t,n){let r=()=>t===!1?void 0:t?Ln(e,t):Rn(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 Bn(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 Jn(e,t){return e.routesById[t.routeId]}function Yn(e,t,n){return Pt(e)?[Wn,e]:lt(e)?(e.routeId||=n,[Un,e]):t?(typeof e?.then==`function`&&(e=Error(`A Promise was thrown`,{cause:e})),[Hn,e]):[Vn,e]}function Xn(e,t){let n=Yn(t,!0,e.id);if(n[0]!==Hn)return n;try{e.options.onError?.(n[1])}catch(t){n=Yn(t,!0,e.id)}return n}function Zn(e,t,n,r,i){return i[0].signal.aborted?Gn:pr(e,t,n,Xn(n,r),i)}async function Qn(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 er(e,r),[i,Zn(e,t,u,a,n)]}if(c.aborted)return[i,Gn];let p=r.paramsError??r.searchError;if(p!==void 0)return er(e,r),[i,Zn(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`?qn(a,c):a);if(c.aborted)return[i,Gn];let s=pr(e,t,u,Yn(o,!1,u.id),n);if(s[0]!==Vn)return er(e,r),[i,s];r.context={...r.context,...o}}catch(a){return er(e,r),[i,Zn(e,t,u,a,n)]}finally{r.status=h,rr(e,r,!1,n[0])}}i()}function $n(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 er(e,t){let n=t._flight;t._flight=void 0,$n(e,t,n)?.abort()}function tr(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=$n(e,a,t);n&&i.push(n)}}for(let e of i)e.abort()}function nr(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 ir(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 ar(e,t,n,r,i,a,o){let s=o[0],c=s.signal;if(c.aborted)return Gn;if(!i)return[Vn,void 0];let l=n._flight;rr(e,n,`loader`,s);try{if(!l){let s=new AbortController;l=[Promise.resolve().then(()=>i(ir(e,t,n,r,s,a,!!o[3]))).then(e=>Yn(e,!1,r.id),e=>Yn(e,!0,r.id)).then(t=>(t[0]!==Vn&&e._flights?.get(n.id)===l&&(e._flights.delete(n.id),l[2]||s.abort()),t[0]===Hn&&l[2]?Xn(r,t[1]):t)),s,1],(e._flights??=new Map).set(n.id,l)}return n._flight=l,n.abortController=l[1],pr(e,t,r,await qn(l[0],c),o)}catch(t){if(t!==c||!c.aborted)throw t;return er(e,n),Gn}finally{rr(e,n,!1,s)}}function or(e,t,n){t[0]!==Wn&&(e.status=`success`,e.error=void 0,t[0]===Vn?(e.loaderData=t[1],e.invalid=!1,e.updatedAt=Date.now(),e.preload=n):e.invalid=!0)}function sr(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&&er(e,r)}function cr(e,t){return t[0]===Hn||t[0]===Un?{...e,status:t[0]===Hn?`error`:`notFound`,error:t[1],_flight:void 0}:e}function lr(e,t,n,r,i,a,o){let s=t[1][n],c=Jn(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(ir(e,t,s,c,a[0],i,l))),a[0].signal.aborted&&(p=Gn)),!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,er(e,s),p=Zn(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,$n(e,s,t)?.abort(),n>=o&&(s.status=`pending`),S?.()}b||(s.isFetching=!1);let w=!p&&x?ar(e,t,s,c,g,i,a).then(t=>(or(s,t,l),t[0]===Vn&&(m&&!a[0].signal.aborted&&sr(e,s,u),n>=o&&(s.status=`pending`)),t)):Promise.resolve(p??[Vn,s.loaderData]),T=(async()=>{try{let e=zn(c,void 0,C);e&&await qn(e,a[0].signal)}catch(r){if(!t[1].some((e,t)=>t<=n&&(e.status===`error`||e.status===`notFound`||e._notFound)))return[n,Zn(e,t,c,r,a)]}let r=await w;x&&r[0]===Vn&&s.status===`pending`&&!a[0].signal.aborted&&(s.status=`success`,S?.())})();if(r.push([n,w,T]),!y)return w.then(e=>cr(s,e));let E={...s,status:`pending`,preload:!1,_flight:v};s.invalid=!1,s.isFetching=`loader`;let D=ar(e,t,E,c,g,i,a).then(e=>(s.isFetching=!1,or(E,e,!1),e));return(t[2]??=[]).push([n,D,T,E]),D.then(e=>cr(E,e))}async function ur(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=Jn(e,t[n]);try{let e=zn(i,!1);e&&await qn(e,r)}catch(e){if(e===r&&r.aborted)throw e}if(i.options.notFoundComponent)return n}return a?.routeId?o:i}function dr(e,t){t[2]&&=(tr(e,t[2].map(e=>e[3])),void 0)}async function fr(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]>=Wn)throw[a,t];!i&&t[0]!==Vn&&(i=[a,t],await Promise.all((n??[]).map(e=>{if(!(e[0]<=a))return e[1].then(t=>{if(t[0]===Wn)throw[e[0],t]})})))}})))}catch(e){return e}return t??i}function pr(e,t,n,r,i,a){for(;r[0]===Wn;){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]?[Wn,t]:[Wn,t,a]}return[Wn,o,n]}catch(e){r=a?[Hn,e]:Xn(n,e),a=!0}}return r}async function mr(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]===Un?ur(e,o,t,r.signal):t[0],d=l<0?o.length:l;if((s?.[1][0]??0)>=Wn)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]!==Vn&&t[0]=d)break;let t=await e[2];if(t){s=t;break}}if((s?.[1][0]??0)>=Wn){let n=s[1];if(n[0]!==Wn||n[1].options.reloadDocument||n[2])return dr(e,t),n;c=!0,s=[0,[Hn,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===Hn?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=Jn(e,u);try{await qn(i?Promise.resolve().then(()=>zn(m,l===Hn?`errorComponent`:`notFoundComponent`)):Promise.all([zn(m),zn(m,`notFoundComponent`)]),r.signal)}catch(n){if(n===r.signal&&r.signal.aborted)return dr(e,t),Gn}i?c&&(r.abort(),await Promise.all([...n.map(e=>e[1]),...n.map(e=>e[2]),...(t[2]??[]).map(e=>e[1])]),dr(e,t),tr(e,o),p()):u.status=`success`}return t}async function hr(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 ur(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=Wn&&(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=mr(e,i,u,r[0],fr(u,m,i[2]),r[7]);i[2]?.length&&(i[3]=fr(i[2],void 0,void 0,h.then(e=>Kn(e)?0:Bn(n).length,()=>0))),o=await h}catch(t){if(dr(e,i),t===a&&a.aborted)return Gn;throw t}return Kn(o)?o:hr(e,o,a,r[6]===n.length?r[6]:0)}function _r(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(()=>_r(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 vr(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 yr(e,t){let n=e._pending;if(!n)return;clearTimeout(n[3]);let r=n[2]-Date.now();if(!n[4]||r<=0||!Bn(t[3]).some(e=>e.id===n[1]))return;let i;try{await qn(new Promise(e=>{i=setTimeout(e,r)}),t[0].signal)}catch{}clearTimeout(i)}function br(e,t){e._committed=t,e.stores.setMatches(t)}function xr(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=Bn(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=Cn(n);br(e,n),tr(e,[...o.values(),...i].filter(e=>e._flight&&c.get(e.id)!==e),n),wn(e,i,n,a,l,t)}async function Sr(e,t){let n=e._tx;for(;n&&n!==t;)t=n,await n[5],n=e._tx}function Cr(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 wr(e,t,n,r,i){let a=n.map(e=>({...e}));nr(a);for(let t of r)er(e,a[t[0]]),a[t[0]]=t[3];let o=[t[2],a],s;try{s=await mr(e,o,r,t[0],i)}catch(t){throw tr(e,a),t}if(Kn(s)){tr(e,a),s[0]===Wn&&e._tx===t&&e._committed===n&&await Cr(e,t,s);return}if(await hr(e,s,t[0].signal),e._tx!==t||e._committed!==n){tr(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),er(e,n))}br(e,a),tr(e,n,a)}async function Tr(e,t,n,r,i,a){let o=await gr(e,t[2],t[3],[t[0],t[1],e._committed,void 0,i,n,a,r]);if(Kn(o)){let n=o[0]===Wn&&e._tx===t;if((!n||o[1].options.reloadDocument)&&vr(e,t),tr(e,t[3]),t[3]=[],!n)return;if(e._tx!==t){vr(e,t);return}await Cr(e,t,o);return}let s=o[1];if(e._tx===t&&await yr(e,t),e._tx!==t){vr(e,t),tr(e,s),dr(e,o);return}let c=t[2],l=xn(c,e.stores.resolvedLocation.get()),u=o[2];await e.startViewTransition(async()=>{if(e._tx===t&&await yr(e,t),e._tx!==t){vr(e,t),tr(e,s),dr(e,o);return}let n=await e.startTransition(()=>{vr(e,t),xr(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){dr(e,o);return}u?.length&&wr(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 Er(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=xn(a,r);e.emit({type:`onBeforeNavigate`,...t}),u.signal.aborted||e.emit({type:`onBeforeLoad`,...t})}if(u.signal.aborted){await Sr(e,n);return}let f=i.href===a.href,p=u,m=e.matchRoutes(a,{_controller:u});nr(m);let h=l?c[1](m):void 0;if(h?p=l:l?.abort(),u.signal.aborted){tr(e,m),await Sr(e,n);return}e._preflight=void 0;let g,_=()=>Tr(e,y,f,()=>_r(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(()=>Sr(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(),tr(e,n[3],y[3],!0)}if(e._tx!==y){tr(e,y[3]),y[3]=[],g?.(),await Sr(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))&&_r(e,y),g?.(_()),await y[5]}async function Dr(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}),nr(a),o=(e._preloads??=new Map).set(i,a),s=await gr(e,n,a,[i,t,r,!0])}finally{o&&(o=o.delete(i),tr(e,a)),i.abort()}if(!Kn(s))return s[1];if(!o||s.length<3)return;n=s[2]}catch(e){lt(e)||console.error(e);return}}}var Or=`Error preloading route! ☝️`,kr=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=Mt:this.parentRoute||Re();let r=n?Mt:t?.path;r&&r!==`/`&&(r=et(r));let i=t?.id||r,a=n?Mt:$e((this.parentRoute.id===`__root__`?``:this.parentRoute.id)+`/`+(i??``));r===`__root__`&&(r=`/`);let o=a===`__root__`?`/`:r===void 0?this.parentRoute.fullPath:$e(this.parentRoute.fullPath+`/`+r);this._path=r,this._id=a,this._fullPath=o,this._to=tt(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=>Nt({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.`)}},Ar=class extends kr{constructor(e){super(e)}},R=n(),jr=class extends I.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?I.createElement(this.props.errorComponent??Mr,{error:e[0],reset:this.reset}):this.props.children}};function Mr({error:e}){let[t,n]=I.useState(!1);return(0,R.jsxs)(`div`,{style:{padding:`.5rem`,maxWidth:`100%`},children:[(0,R.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`.5rem`},children:[(0,R.jsx)(`strong`,{style:{fontSize:`1rem`},children:`Something went wrong!`}),(0,R.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,R.jsx)(`div`,{style:{height:`.25rem`}}),t?(0,R.jsx)(`div`,{children:(0,R.jsx)(`pre`,{style:{fontSize:`.7em`,border:`1px solid red`,borderRadius:`.25rem`,padding:`.3rem`,color:`red`,overflow:`auto`},children:e?.message?(0,R.jsx)(`code`,{children:e.message}):null})}):null]})}var Nr=()=>!0,Pr=()=>!1;function Fr({children:e,fallback:t=null}){return(0,R.jsx)(I.Fragment,{children:Ir()?e:t})}function Ir(e=!0){return I.useSyncExternalStore(Lr,Nr,e?Pr:Nr)}function Lr(){return()=>{}}function Rr({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 zr(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 Br=[],Vr=0,{link:Hr,unlink:Ur,propagate:Wr,checkDirty:Gr,shallowPropagate:Kr}=Rr({update(e){return e._update()},notify(e){Br[Jr++]=e,e.flags&=-3},unwatched(e){e.depsTail!==void 0&&(e.depsTail=void 0,e.flags=17,Qr(e))}}),qr=0,Jr=0,Yr,Xr=0;function Zr(e){try{++Xr,e()}finally{--Xr||$r()}}function Qr(e){let t=e.depsTail,n=t===void 0?e.deps:t.nextDep;for(;n!==void 0;)n=Ur(n,e)}function $r(){if(!(Xr>0)){for(;qr{i.get(),n.current?t.next?.(i._snapshot):n.current=!0});return{unsubscribe:()=>{r.stop()}}},_update(e){let a=Yr,o=t?.compare??Object.is;if(n)Yr=i,++Vr,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{Yr=a,n&&(i.flags&=-5),Qr(i)}}};return n?(i.flags=17,i.get=function(){let e=i.flags;if(e&16||e&32&&Gr(i.deps,i)){if(i._update()){let e=i.subs;e!==void 0&&Kr(e)}}else e&32&&(i.flags=e&-33);return Yr!==void 0&&Hr(i,Yr,Vr),i._snapshot}):i.set=function(e){if(i._update(e)){let e=i.subs;e!==void 0&&(Wr(e),Kr(e),$r())}},i}function ti(e){let t=()=>{let t=Yr;Yr=n,++Vr,n.depsTail=void 0,n.flags=6;try{return e()}finally{Yr=t,n.flags&=-5,Qr(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&&Gr(this.deps,this)?t():this.flags=2},stop(){this.flags=0,this.depsTail=void 0,Qr(this)}};return t(),n}function ni(e){return Be({from:e.from,strict:e.strict,structuralSharing:e.structuralSharing,select:t=>e.select?e.select(t.loaderData):t.loaderData})}function ri(e){let{select:t,...n}=e;return Be({...n,select:e=>t?t(e.loaderDeps):e.loaderDeps})}function ii(e){return Be({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 ai(e){return Be({from:e.from,strict:e.strict,shouldThrow:e.shouldThrow,structuralSharing:e.structuralSharing,select:t=>e.select?e.select(t.search):t.search})}function oi(e){let t=ke();return I.useCallback(n=>t.navigate({...n,from:n.from??e?.from}),[e?.from,t])}function si(e){let t=ke(),n=oi(),r=I.useRef(null);return Qe(()=>{r.current!==e&&(n(e),r.current=e)},[t,e,n]),null}function ci(e){return Be({...e,select:t=>e.select?e.select(t.context):t.context})}function li(...e){let t=I.useRef(e),n=t.current;return e.forEach((e,t)=>{F(n[t],e,!1,!0)||(n[t]=e)}),t.current}function ui(e,t){e.preloadRoute(t).catch(e=>{console.warn(e),console.warn(Or)})}var di={compare:(e,t)=>e[0]===t[0]&&e[1]===t[1]};function fi(e,t){let n=typeof e==`string`&&Se(e);if(n)return t.has(n)?e:null}function pi(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)&&!F(e.search,t.search,!n?.exact,n?.explicitUndefined)?!1:!n?.includeHash||i&&e.hash===t.hash}function mi(e,t,n){let r=ke(),i=I.useRef(null),a=I.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:m,ignoreBlocker:h,disabled:g,target:_,onClick:v,onBlur:y,onFocus:b,onMouseEnter:x,onMouseLeave:S,onTouchStart:C}=e,w=Ir(!!o?.includeHash),[T,E,D]=li(e.search,e.params,o),[O,k]=I.useMemo(()=>[e,{...e}],[r,e.from,e._fromLocation,e.hash,e.to,T,E,e.state,e.mask,e.unsafeRelative]),A=I.useCallback(e=>{let t=fi(s,r.protocolAllowlist);if(t!==void 0)return[t??void 0];O._fromLocation||(k._fromLocation=e);let n=r.buildLocation(k),i=Ci(n,r,g);return[i,!g&&(!i||Se(i))?void 0:pi(e,n,D,r.basepath,w)]},[D,g,w,O,k,r,s]),[ee,te]=Pe(r.stores.location,A,di),ne=te===void 0?ee:void 0,j=g||ee===void 0,re=I.useRef(!1),ie=e.reloadDocument||ne||j?!1:c??r.options.defaultPreload,ae=l??r.options.defaultPreloadDelay??0,oe=I.useCallback(e=>{let t=e?.isIntersecting;if(!(t??ie===`intent`)){t===!1&&xi(i);return}if(!ae){ui(r,O);return}bi.has(i)||bi.set(i,setTimeout(()=>{bi.delete(i),ui(r,O)},ae))},[r,O,i,ie,ae]);I.useEffect(()=>{ie===`render`&&!re.current&&(re.current=!0,ui(r,O));let e;return ie===`viewport`&&i.current&&typeof IntersectionObserver==`function`&&(e=new IntersectionObserver(e=>oe(e.pop()),{rootMargin:`100px`}),e.observe(i.current)),()=>{e?.disconnect(),xi(i)}},[r,O,ie,oe,i]);let M=vi(e,n);if(M.ref=t?a:i,ne)return M.href=ne,M;let se=e=>{let t=_??e.currentTarget.getAttribute(`target`);!j&&!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&(!t||t===`_self`)&&e.button===0&&(e.preventDefault(),r.navigate({...O,replace:d,resetScroll:p,hashScrollIntoView:u,startTransition:f,viewTransition:m,ignoreBlocker:h}))},ce=()=>{ie===`intent`&&ui(r,O)},le=()=>{ie===`intent`&&xi(i)};return M.onClick=Si(v,se),M.onBlur=Si(y,le),M.onFocus=Si(b,oe),M.onMouseEnter=Si(x,oe),M.onMouseLeave=Si(S,le),M.onTouchStart=Si(C,ce),yi(M,e,te,ee,j,n)}var hi={},gi={className:`active`},_i=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 vi(e,t){let n={};for(let r in e)_i.has(r)||r===`type`&&t!==void 0||r===`disabled`&&t===`a`||(n[r]=e[r]);return n}function yi(e,t,n,r,i,a){let{activeProps:o,inactiveProps:s,className:c,style:l,target:u}=t,d=Fe(n?o:s,{})??(n?gi:hi);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 bi=new WeakMap,xi=e=>{clearTimeout(bi.get(e)),bi.delete(e)},Si=(e,t)=>e?n=>n.defaultPrevented||(e(n),n.defaultPrevented||t(n)):t;function Ci(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||!Oe(i,t.protocolAllowlist))return i}var wi=I.memo(I.forwardRef((e,t)=>{let n=e._asChild||`a`,r=mi(e,t,n),i=typeof e.children==`function`?e.children({isActive:r[`data-status`]===`active`}):e.children;return I.createElement(n,r,i)}),Ti);function Ti(e,t){let n=0;for(let r in t)if(n++,e[r]!==t[r]&&(!_i.has(r)||!F(e[r],t[r],!1,!0)))return!1;for(let t in e)n--;return n===0}var Ei=class extends kr{constructor(e){super(e),this.useMatch=e=>Be({...e,from:this.id}),this.useRouteContext=e=>ci({...e,from:this.id}),this.useSearch=e=>ai({...e,from:this.id}),this.useParams=e=>ii({...e,from:this.id}),this.useLoaderDeps=e=>ri({...e,from:this.id}),this.useLoaderData=e=>ni({...e,from:this.id}),this.useNavigate=()=>oi({from:this.fullPath}),this.Link=I.forwardRef((e,t)=>(0,R.jsx)(wi,{ref:t,from:this.fullPath,...e}))}};function Di(e){return new Ei(e)}var Oi=class extends Ar{constructor(e){super(e),this.useMatch=e=>Be({...e,from:this.id}),this.useRouteContext=e=>ci({...e,from:this.id}),this.useSearch=e=>ai({...e,from:this.id}),this.useParams=e=>ii({...e,from:this.id}),this.useLoaderDeps=e=>ri({...e,from:this.id}),this.useLoaderData=e=>ni({...e,from:this.id}),this.useNavigate=()=>oi({from:this.fullPath}),this.Link=I.forwardRef((e,t)=>(0,R.jsx)(wi,{ref:t,from:this.fullPath,...e}))}};function ki(e){return new Oi(e)}function Ai(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(Te(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(Ze)Ze(a());else throw a()}return I.createElement(r,e)};return o.preload=a,o}function ji(e){let t=ke(),n=`not-found-${Pe(t.stores.location,e=>e.pathname)}-${Pe(t.stores.status)}`;return(0,R.jsx)(jr,{getResetKey:()=>n,onCatch:(t,n)=>{if(lt(t))e.onCatch?.(t,n);else throw t},errorComponent:({error:t})=>{if(lt(t))return e.fallback?.(t);throw t},children:e.children})}function Mi(){return(0,R.jsx)(`p`,{children:`Not Found`})}function Ni(e){return(0,R.jsx)(R.Fragment,{children:e.children})}function Pi(e,t,n){return t.options.notFoundComponent?(0,R.jsx)(t.options.notFoundComponent,{...n}):e.options.defaultNotFoundComponent?(0,R.jsx)(e.options.defaultNotFoundComponent,{...n}):(0,R.jsx)(Mi,{})}function Fi(e,t){let n=t?.options.pendingComponent??e.options.defaultPendingComponent;return n?(0,R.jsx)(n,{}):null}var Ii=(e,t)=>e[0]===t[0]&&e[1]===t[1],Li=(e,t,n)=>!t.isRoot||t.options.shellComponent||t.options.wrapInSuspense||n===!1||n===`data-only`||!e.ssr,Ri=I.memo(function({routeId:e}){let t=ke();return(0,R.jsx)(zi,{router:t,match:Pe(t.stores.getMatchStore(e))})});function zi({router:e,match:t}){let n=e.routesById[t.routeId],r=Fi(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=Li(e,n,t.ssr)&&(n.options.wrapInSuspense??r??(n.options.errorComponent?.preload||s))?I.Suspense:Ni,l=i?jr:Ni,u=o?ji:Ni;return(0,R.jsxs)(n.isRoot?n.options.shellComponent??Ni:Ni,{children:[(0,R.jsx)(ze.Provider,{value:t.routeId,children:(0,R.jsx)(c,{fallback:r,children:(0,R.jsx)(l,{getResetKey:()=>t,errorComponent:i,onCatch:(e,n)=>{if(lt(e))throw e.routeId??=t.routeId,e;a?.(e,n)},children:(0,R.jsx)(u,{fallback:e=>{if(e.routeId??=t.routeId,e.routeId!==t.routeId)throw e;return I.createElement(o,e)},children:s?(0,R.jsx)(Fr,{fallback:r,children:(0,R.jsx)(Bi,{match:t})}):(0,R.jsx)(Bi,{match:t})})})})}),null]})}var Bi=I.memo(function({match:e}){let t=ke(),n=e.routeId,r=t.routesById[n],i=I.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=I.useMemo(()=>{let e=r.options.component??t.options.defaultComponent;return e?(0,R.jsx)(e,{},i):(0,R.jsx)(Vi,{})},[i,r.options.component,t.options.defaultComponent]);if(e.status===`pending`){if(t.ssr&&!Li(t,r,e.ssr))return a;if(t._tx)throw t._tx[5];return Fi(t,r)}if(e.status===`notFound`)return Pi(t,r,e.error);if(e.status===`error`)throw e.error;return a}),Vi=I.memo(function(){let e=ke(),t=I.useContext(ze),n,r,i;{let a=e.stores.getMatchStore(t);[n,r]=Pe(a,e=>[!!e._notFound,e.error],{compare:Ii}),i=Pe(e.stores.ids,e=>e[e.indexOf(t)+1])}if(n)return Pi(e,e.routesById[t],r);if(!i)return null;let a=(0,R.jsx)(Ri,{routeId:i});return t===`__root__`?(0,R.jsx)(I.Suspense,{fallback:Fi(e),children:a}):a});function Hi(e,t){let n=e[1];e.length=0,n?.(t)}function Ui({t:e}){let t=ke(),n=t._rendered??=[];return t.startTransition=(r,i)=>new Promise(a=>{Hi(n,!1),n.push(i,a),e(t),I.startTransition(r)}),Qe(()=>{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(tt(r.publicHref)!==tt(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`,...xn(a,a)})}):t._tx||t.load({sync:!0}).catch(console.error),e},[t,t.history]),null}function Wi(){let e=ke(),t=e.routesById[Mt],n=Fi(e,t),r=e.ssr?Ni:I.Suspense,i=(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(Ui,{t:I.useState()[1]}),(0,R.jsx)(r,{fallback:n,children:(0,R.jsx)(Gi,{})})]});return e.options.InnerWrap?(0,R.jsx)(e.options.InnerWrap,{children:i}):i}function Gi(){let e=ke(),t=e._rendered,n=Pe(e.stores.matches,e=>t[0]??e),r=n[0],i=r?.routeId;Qe(()=>{t[0]===n&&Hi(t,!0)},[t,n]);let a=i?(0,R.jsx)(Ri,{routeId:i}):null;return(0,R.jsx)(ze.Provider,{value:i,children:e.options.disableGlobalCatchBoundary?a:(0,R.jsx)(jr,{getResetKey:()=>r,onCatch:void 0,children:a})})}var Ki=e=>({createMutableStore:ei,createReadonlyStore:ei,batch:Zr}),qi=e=>new Ji(e),Ji=class extends Tn{constructor(e){super(e,Ki)}};function Yi({router:e,children:t,...n}){Ce(n)&&e.update({...e.options,...n,context:{...e.options.context,...n.context}});let r=(0,R.jsx)(Me.Provider,{value:e,children:t});return e.options.Wrap?(0,R.jsx)(e.options.Wrap,{children:r}):r}function Xi({router:e,...t}){return(0,R.jsx)(Yi,{router:e,...t,children:(0,R.jsx)(Wi,{})})}var Zi=Ke(),z=a();function Qi(e){let t=(0,z.c)(6),{error:n}=e,r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,R.jsx)(`p`,{className:`text-lg font-semibold text-rot-text`,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,R.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,R.jsx)(`button`,{type:`button`,onClick:$i,className:`h-11 rounded-xl border border-rot/40 bg-rot/10 px-5 text-sm font-semibold text-rot-text hover:bg-rot/[0.18]`,children:`Neu laden`}),t[3]=o):o=t[3];let s;return t[4]===a?s=t[5]:(s=(0,R.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 $i(){return window.location.reload()}var ea={name:`activity`,size:24,node:[[`path`,{d:`M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2`,key:`169zse`}]]};ea.node;var ta=r(ea),na={name:`arrow-right`,size:24,node:[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`m12 5 7 7-7 7`,key:`xquz4c`}]]};na.node;var ra=r(na),B={name:`audio-lines`,size:24,node:[[`path`,{d:`M2 10v3`,key:`1fnikh`}],[`path`,{d:`M6 6v11`,key:`11sgs0`}],[`path`,{d:`M10 3v18`,key:`yhl04a`}],[`path`,{d:`M14 8v7`,key:`3a1oy3`}],[`path`,{d:`M18 5v13`,key:`123xd1`}],[`path`,{d:`M22 10v3`,key:`154ddg`}]]};B.node;var V=r(B),ia={name:`bird`,size:24,node:[[`path`,{d:`M16 7h.01`,key:`1kdx03`}],[`path`,{d:`M3.4 18H12a8 8 0 0 0 8-8V7a4 4 0 0 0-7.28-2.3L2 20`,key:`oj1oa8`}],[`path`,{d:`m20 7 2 .5-2 .5`,key:`12nv4d`}],[`path`,{d:`M10 18v3`,key:`1yea0a`}],[`path`,{d:`M14 17.75V21`,key:`1pymcb`}],[`path`,{d:`M7 18a6 6 0 0 0 3.84-10.61`,key:`1npnn0`}]]};ia.node;var aa=r(ia),oa={name:`bot`,size:24,node:[[`path`,{d:`M12 8V4H8`,key:`hb8ula`}],[`rect`,{width:`16`,height:`12`,x:`4`,y:`8`,rx:`2`,key:`enze0r`}],[`path`,{d:`M2 14h2`,key:`vft8re`}],[`path`,{d:`M20 14h2`,key:`4cs60a`}],[`path`,{d:`M15 13v2`,key:`1xurst`}],[`path`,{d:`M9 13v2`,key:`rq6x2g`}]]};oa.node;var sa=r(oa),ca={name:`box`,size:24,node:[[`path`,{d:`M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z`,key:`hh9hay`}],[`path`,{d:`m3.3 7 8.7 5 8.7-5`,key:`g66t2b`}],[`path`,{d:`M12 22V12`,key:`d0xqtd`}]]};ca.node;var la=r(ca),ua={name:`brain-circuit`,size:24,node:[[`path`,{d:`M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z`,key:`l5xja`}],[`path`,{d:`M9 13a4.5 4.5 0 0 0 3-4`,key:`10igwf`}],[`path`,{d:`M6.003 5.125A3 3 0 0 0 6.401 6.5`,key:`105sqy`}],[`path`,{d:`M3.477 10.896a4 4 0 0 1 .585-.396`,key:`ql3yin`}],[`path`,{d:`M6 18a4 4 0 0 1-1.967-.516`,key:`2e4loj`}],[`path`,{d:`M12 13h4`,key:`1ku699`}],[`path`,{d:`M12 18h6a2 2 0 0 1 2 2v1`,key:`105ag5`}],[`path`,{d:`M12 8h8`,key:`1lhi5i`}],[`path`,{d:`M16 8V5a2 2 0 0 1 2-2`,key:`u6izg6`}],[`circle`,{cx:`16`,cy:`13`,r:`.5`,key:`ry7gng`}],[`circle`,{cx:`18`,cy:`3`,r:`.5`,key:`1aiba7`}],[`circle`,{cx:`20`,cy:`21`,r:`.5`,key:`yhc1fs`}],[`circle`,{cx:`20`,cy:`8`,r:`.5`,key:`1e43v0`}]]};ua.node;var da=r(ua),fa={name:`calendar-clock`,size:24,node:[[`path`,{d:`M16 14v2.2l1.6 1`,key:`fo4ql5`}],[`path`,{d:`M16 2v3`,key:`otl347`}],[`path`,{d:`M21 7.338V5a2 2 0 00-2-2H5a2 2 0 00-2 2v14a2 2 0 002 2h2.338`,key:`7hb8p4`}],[`path`,{d:`M3 9h5.859`,key:`numkqi`}],[`path`,{d:`M8 2v3`,key:`1ioesn`}],[`circle`,{cx:`16`,cy:`16`,r:`6`,key:`qoo3c4`}]]};fa.node;var pa=r(fa),ma={name:`circle-alert`,size:24,node:[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`line`,{x1:`12`,x2:`12`,y1:`8`,y2:`12`,key:`1pkeuh`}],[`line`,{x1:`12`,x2:`12.01`,y1:`16`,y2:`16`,key:`4dfq90`}]],aliases:[`alert-circle`]};ma.node;var ha=r(ma),ga={name:`circle-check`,size:24,node:[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`m16 9-5.5 5.5L8 12`,key:`xofnsj`}]],aliases:[`check-circle-2`]};ga.node;var _a=r(ga),va={name:`clapperboard`,size:24,node:[[`path`,{d:`m12.296 3.464 3.02 3.956`,key:`qash78`}],[`path`,{d:`M20.2 6 3 11l-.9-2.4c-.3-1.1.3-2.2 1.3-2.5l13.5-4c1.1-.3 2.2.3 2.5 1.3z`,key:`1h7j8b`}],[`path`,{d:`M3 11h18v8a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z`,key:`4lm6w1`}],[`path`,{d:`m6.18 5.276 3.1 3.899`,key:`zjj9t3`}]]};va.node;var ya=r(va),ba={name:`code`,size:24,node:[[`path`,{d:`m16 18 6-6-6-6`,key:`eg8j8`}],[`path`,{d:`m8 6-6 6 6 6`,key:`ppft3o`}]]};ba.node;var xa=r(ba),Sa={name:`container`,size:24,node:[[`path`,{d:`M22 7.7c0-.6-.4-1.2-.8-1.5l-6.3-3.9a1.72 1.72 0 0 0-1.7 0l-10.3 6c-.5.2-.9.8-.9 1.4v6.6c0 .5.4 1.2.8 1.5l6.3 3.9a1.72 1.72 0 0 0 1.7 0l10.3-6c.5-.3.9-1 .9-1.5Z`,key:`1t2lqe`}],[`path`,{d:`M10 21.9V14L2.1 9.1`,key:`o7czzq`}],[`path`,{d:`m10 14 11.9-6.9`,key:`zm5e20`}],[`path`,{d:`M14 19.8v-8.1`,key:`159ecu`}],[`path`,{d:`M18 17.5V9.4`,key:`11uown`}]]};Sa.node;var Ca=r(Sa),wa={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`}]]};wa.node;var Ta=r(wa),Ea={name:`database-backup`,size:24,node:[[`ellipse`,{cx:`12`,cy:`5`,rx:`9`,ry:`3`,key:`msslwz`}],[`path`,{d:`M3 12a9 3 0 0 0 5 2.69`,key:`1ui2ym`}],[`path`,{d:`M21 9.3V5`,key:`6k6cib`}],[`path`,{d:`M3 5v14a9 3 0 0 0 6.47 2.88`,key:`i62tjy`}],[`path`,{d:`M12 12v4h4`,key:`1bxaet`}],[`path`,{d:`M13 20a5 5 0 0 0 9-3 4.5 4.5 0 0 0-4.5-4.5c-1.33 0-2.54.54-3.41 1.41L12 16`,key:`1f4ei9`}]]};Ea.node;var Da=r(Ea),Oa={name:`database`,size:24,node:[[`ellipse`,{cx:`12`,cy:`5`,rx:`9`,ry:`3`,key:`msslwz`}],[`path`,{d:`M3 5V19A9 3 0 0 0 21 19V5`,key:`1wlel7`}],[`path`,{d:`M3 12A9 3 0 0 0 21 12`,key:`mv7ke4`}]]};Oa.node;var ka=r(Oa),Aa={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`}]]};Aa.node;var ja=r(Aa),Ma={name:`file-code-corner`,size:24,node:[[`path`,{d:`M4 12.15V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2h-3.35`,key:`1wthlu`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`m5 16-3 3 3 3`,key:`331omg`}],[`path`,{d:`m9 22 3-3-3-3`,key:`lsp7cz`}]],aliases:[`file-code-2`]};Ma.node;var Na=r(Ma),Pa={name:`gauge`,size:24,node:[[`path`,{d:`m12 14 4-4`,key:`9kzdfg`}],[`path`,{d:`M3.34 19a10 10 0 1 1 17.32 0`,key:`19p75a`}]]};Pa.node;var Fa=r(Pa),Ia={name:`git-branch`,size:24,node:[[`path`,{d:`M15 6a9 9 0 0 0-9 9V3`,key:`1cii5b`}],[`circle`,{cx:`18`,cy:`6`,r:`3`,key:`1h7g24`}],[`circle`,{cx:`6`,cy:`18`,r:`3`,key:`fqmcym`}]]};Ia.node;var La=r(Ia),Ra={name:`hard-drive`,size:24,node:[[`path`,{d:`M10 16h.01`,key:`1bzywj`}],[`path`,{d:`M2.212 11.577a2 2 0 0 0-.212.896V18a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-5.527a2 2 0 0 0-.212-.896L18.55 5.11A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z`,key:`18tbho`}],[`path`,{d:`M21.946 12.013H2.054`,key:`zqlbp7`}],[`path`,{d:`M6 16h.01`,key:`1pmjb7`}]]};Ra.node;var za=r(Ra),Ba={name:`house`,size:24,node:[[`path`,{d:`M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8`,key:`5wwlr5`}],[`path`,{d:`M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z`,key:`r6nss1`}]],aliases:[`home`]};Ba.node;var Va=r(Ba),Ha={name:`layers`,size:24,node:[[`path`,{d:`M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z`,key:`zw3jo`}],[`path`,{d:`M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12`,key:`1wduqc`}],[`path`,{d:`M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17`,key:`kqbvx6`}]],aliases:[`layers-3`]};Ha.node;var Ua=r(Ha),Wa={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`}]]};Wa.node;var Ga=r(Wa),Ka={name:`layout-grid`,size:24,node:[[`rect`,{width:`7`,height:`7`,x:`3`,y:`3`,rx:`1`,key:`1g98yp`}],[`rect`,{width:`7`,height:`7`,x:`14`,y:`3`,rx:`1`,key:`6d4xhi`}],[`rect`,{width:`7`,height:`7`,x:`14`,y:`14`,rx:`1`,key:`nxv5o0`}],[`rect`,{width:`7`,height:`7`,x:`3`,y:`14`,rx:`1`,key:`1bb6yr`}]]};Ka.node;var qa=r(Ka),Ja={name:`menu`,size:24,node:[[`path`,{d:`M4 5h16`,key:`1tepv9`}],[`path`,{d:`M4 12h16`,key:`1lakjw`}],[`path`,{d:`M4 19h16`,key:`1djgab`}]]};Ja.node;var Ya=r(Ja),Xa={name:`message-circle-question-mark`,size:24,node:[[`path`,{d:`M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719`,key:`1sd12s`}],[`path`,{d:`M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3`,key:`1u773s`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]],aliases:[`message-circle-question`]};Xa.node;var Za=r(Xa),Qa={name:`mic`,size:24,node:[[`path`,{d:`M12 19v3`,key:`npa21l`}],[`path`,{d:`M19 10v2a7 7 0 0 1-14 0v-2`,key:`1vc78b`}],[`rect`,{x:`9`,y:`2`,width:`6`,height:`13`,rx:`3`,key:`s6n7sd`}]]};Qa.node;var $a=r(Qa),eo={name:`monitor`,size:24,node:[[`rect`,{width:`20`,height:`14`,x:`2`,y:`3`,rx:`2`,key:`48i651`}],[`line`,{x1:`8`,x2:`16`,y1:`21`,y2:`21`,key:`1svkeh`}],[`line`,{x1:`12`,x2:`12`,y1:`17`,y2:`21`,key:`vw1qmm`}]]};eo.node;var to=r(eo),no={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`}]]};no.node;var ro=r(no),io={name:`rotate-ccw-clock`,size:24,node:[[`path`,{d:`M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`,key:`1357e3`}],[`path`,{d:`M3 3v5h5`,key:`1xhq8a`}],[`path`,{d:`M12 7v5l4 2`,key:`1fdv2h`}]],aliases:[`history`]};io.node;var ao=r(io),oo={name:`route`,size:24,node:[[`circle`,{cx:`6`,cy:`19`,r:`3`,key:`1kj8tv`}],[`path`,{d:`M9 19h8.5a3.5 3.5 0 0 0 0-7h-11a3.5 3.5 0 0 1 0-7H15`,key:`1d8sl`}],[`circle`,{cx:`18`,cy:`5`,r:`3`,key:`gq8acd`}]]};oo.node;var so=r(oo),co={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`}]]};co.node;var lo=r(co),uo={name:`search`,size:24,node:[[`path`,{d:`m21 21-4.34-4.34`,key:`14j7rj`}],[`circle`,{cx:`11`,cy:`11`,r:`8`,key:`4ej97u`}]]};uo.node;var fo=r(uo),po={name:`server`,size:24,node:[[`rect`,{width:`20`,height:`8`,x:`2`,y:`2`,rx:`2`,ry:`2`,key:`ngkwjq`}],[`rect`,{width:`20`,height:`8`,x:`2`,y:`14`,rx:`2`,ry:`2`,key:`iecqi9`}],[`line`,{x1:`6`,x2:`6.01`,y1:`6`,y2:`6`,key:`16zg32`}],[`line`,{x1:`6`,x2:`6.01`,y1:`18`,y2:`18`,key:`nzw8ys`}]]};po.node;var mo=r(po),ho={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`}]]};ho.node;var go=r(ho),_o={name:`shield-check`,size:24,node:[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}],[`path`,{d:`m9 12 2 2 4-4`,key:`dzmm74`}]]};_o.node;var vo=r(_o),yo={name:`shuffle`,size:24,node:[[`path`,{d:`m18 14 4 4-4 4`,key:`10pe0f`}],[`path`,{d:`m18 2 4 4-4 4`,key:`pucp1d`}],[`path`,{d:`M2 18h1.973a4 4 0 0 0 3.3-1.7l5.454-8.6a4 4 0 0 1 3.3-1.7H22`,key:`1ailkh`}],[`path`,{d:`M2 6h1.972a4 4 0 0 1 3.6 2.2`,key:`km57vx`}],[`path`,{d:`M22 18h-6.041a4 4 0 0 1-3.3-1.8l-.359-.45`,key:`os18l9`}]]};yo.node;var bo=r(yo),xo={name:`triangle-alert`,size:24,node:[[`path`,{d:`m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3`,key:`wmoenq`}],[`path`,{d:`M12 9v4`,key:`juzpu7`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]],aliases:[`alert-triangle`]};xo.node;var So=r(xo),Co={name:`workflow`,size:24,node:[[`rect`,{width:`8`,height:`8`,x:`3`,y:`3`,rx:`2`,key:`by2w9f`}],[`path`,{d:`M7 11v4a2 2 0 0 0 2 2h4`,key:`xkn7yn`}],[`rect`,{width:`8`,height:`8`,x:`13`,y:`13`,rx:`2`,key:`1cgmvn`}]]};Co.node;var wo=r(Co),To={name:`zap`,size:24,node:[[`path`,{d:`M15.914 4a1.5 1.5 0 00-2.474-1.561l-9 9A1.5 1.5 0 005.5 14h4.002a.5.5 0 01.471.666L8.086 20a1.5 1.5 0 002.475 1.56l9-9A1.5 1.5 0 0018.5 10h-3.997a.5.5 0 01-.472-.667z`,key:`1v7up4`}]]};To.node;var Eo=r(To);function Do(e){return e?.text?e.zeit?`${e.text} ${M(e.zeit)}`:e.text:null}var Oo={"ki-box":`KI-Box`,"proxmox-host":`Proxmox-Host`,container:`Container`,vm:`VM`};function ko(e){let t=e.id.match(/-(\d+)$/)?.[1],n=Oo[e.art]??e.art;return t?`${n} ${t}`:n}var Ao={"Proxmox-Host":`Proxmox`,"AdGuard Home":`AdGuard`,"PVE Scripts Local":`PVE Scripts`,"Proxmox Backup Server":`PBS`,"Arcane (Docker)":`Arcane`},jo=e=>Ao[e.name]??e.name,Mo=new Set([`app`,`arcane`]),No=e=>e.bausteine.find(e=>Mo.has(e.id))??null,Po=e=>e.bausteine.find(e=>!Mo.has(e.id))??null;function Fo(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 Io(e){let t=e.bausteine.filter(e=>e.zustand===`neu`);return t.some(e=>e.aktion)?0:t.length>0?1:e.bausteine.some(e=>e.zustand===`unbekannt`)?2:3}function Lo(e){let t=e.rueckweg_art??Ro(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 Ro(e){let t=(e??``).toLowerCase();return t.startsWith(`snapshot vor`)?`snapshot`:t.startsWith(`sicherung`)?`sicherung`:`keiner`}var zo=e=>Mo.has(e.id),Bo=e=>e.replace(/^Image vom /,``);function Vo(e){return zo(e)&&e.verfuegbar?e.verfuegbar:`${e.kurz||e.verfuegbar||`neu`}${H(e)}`}function H(e){return e.sicherheit?` · ${e.sicherheit} Sicherheit`:``}function U(e){let t=e.platte;return t&&t.gesamt>0?t.belegt/t.gesamt:null}function Ho(e,t){let n=jo(e),r=U(e);if(e.erreichbar===!1)return{id:e.id,label:n,zustand:`fehler`,wert:`antwortet nicht`};if(r!==null&&r>=.9)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>=.8)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=>Mo.has(e.id))??i[0];return{id:e.id,label:n,zustand:`info`,wert:Mo.has(t.id)&&t.verfuegbar?`→ ${t.verfuegbar}`:Vo(t)}}let a=No(e);return{id:e.id,label:n,zustand:`ok`,wert:a?.installiert?Bo(a.installiert):`aktuell`}}var Uo=e=>`${e} Hinweis${e===1?``:`e`}`;function Wo(e,t,n,r){let i=t.filter(e=>e.zustand!==`stumm`);if(e.wartung?.laeuft)return{art:`info`,oben:`Wartung`,mitte:`Fenster läuft`,unten:`${e.wartung.fenster} · Meldung am Ende`,ziel:`updates`};let a=e.ziele.filter(e=>e.erreichbar===!1);if(a.length>0)return{art:`rot`,oben:`Störung`,mitte:a.length===1?`1 Gerät stumm`:`${a.length} Geräte stumm`,unten:a.map(jo).join(`, `),ziel:`geraete`};if(i.some(e=>e.stufe===`rot`))return{art:`rot`,oben:`Störung`,mitte:Uo(i.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(i.length>0)return{art:`gelb`,oben:`Achtung`,mitte:Uo(i.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 o=Fo(e.ziele).filter(e=>e.baustein.aktion).length;return o>0?{art:`info`,oben:`Homelab`,mitte:`${o} Update${o===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 Go(e){return e?.match(/vom (\d{2}\.\d{2}\.\d{4})/)?.[1]??null}var Ko=[{id:`box`,name:`KI-Box`},{id:`homelab`,name:`Homelab`}],qo=[{to:`/`,label:`Übersicht`,Icon:qa,ort:`uebersicht`},{to:`/box`,label:`Cockpit`,Icon:Fa,ort:`box`},{to:`/box/updates`,label:`Updates`,Icon:ro,ort:`box`,zaehlt:!0},{to:`/box/modelle`,label:`Modelle`,Icon:Ta,ort:`box`},{to:`/box/monitoring`,label:`Monitoring`,Icon:ta,ort:`box`},{to:`/box/dienste`,label:`Dienste und Protokolle`,Icon:lo,ort:`box`},{to:`/homelab`,label:`Cockpit`,Icon:Fa,ort:`homelab`},{to:`/homelab/updates`,label:`Updates`,Icon:ro,ort:`homelab`,zaehlt:!0},{to:`/homelab/snapshots`,label:`Snapshots`,Icon:ao,ort:`homelab`},{to:`/homelab/monitoring`,label:`Monitoring`,Icon:ta,ort:`homelab`},{to:`/homelab/protokoll`,label:`Protokoll`,Icon:lo,ort:`homelab`},{to:`/einstellungen`,label:`Einstellungen`,Icon:go,ort:`system`}],Jo={uebersicht:`Auf einen Blick`,box:`KI-Box`,homelab:`Homelab`,system:`Beide Instanzen`};function Yo(){let e=(0,z.c)(2),t=Ve({select:Xo}).replace(/\/+$/,``)||`/`,n;return e[0]===t?n=e[1]:(n=qo.find(e=>e.to===t)??qo[0],e[0]=t,e[1]=n),n}function Xo(e){return e.location.pathname}function Zo(){let e=(0,z.c)(19),t=b(),n=v(),r=_e(),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=ce(),d=ue(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($o,0),e[6]=f,e[7]=p);let m=p,h;e[8]===d.data?.ziele?h=e[9]:(h=Fo(d.data?.ziele??[]).filter(Qo),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 y;e[13]!==g||e[14]!==l.homelab?(y={verbindung:l.homelab,updates:g},e[13]=g,e[14]=l.homelab,e[15]=y):y=e[15];let x;return e[16]!==_||e[17]!==y?(x={box:_,homelab:y},e[16]=_,e[17]=y,e[18]=x):x=e[18],x}function Qo(e){return e.baustein.aktion}function $o(e,t){return e+t.bausteine.filter(es).length}function es(e){return e.zustand===`neu`&&e.aktion}var ts={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 ns(){let e=(0,z.c)(4),t=x(),n;e[0]===t?n=e[1]:(n=t.map(rs),e[0]=t,e[1]=n);let r;return e[2]===n?r=e[3]:(r=(0,R.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 rs(e){return(0,R.jsxs)(`div`,{role:e.art===`fehler`?`alert`:`status`,className:s(`pointer-events-auto flex w-full items-start gap-3 rounded-xl border px-4 py-3 text-[15px] shadow-lg`,ts[e.art]),children:[(0,R.jsx)(`span`,{className:`min-w-0 flex-1`,children:e.text}),(0,R.jsx)(`button`,{type:`button`,onClick:()=>ee(e.id),"aria-label":`Meldung schließen`,className:`-m-2 p-2 opacity-70 hover:opacity-100`,children:(0,R.jsx)(l,{className:`size-4`})})]},e.id)}var is={online:{punkt:`bg-gruen shadow-[0_0_8px_var(--gruen)]`,text:`online`},verbinde:{punkt:`bg-bernstein`,text:`verbinde`},getrennt:{punkt:`bg-rot shadow-[0_0_8px_var(--rot)]`,text:`getrennt`},fehlt:{punkt:`bg-text-3`,text:`nicht eingerichtet`}},as={uebersicht:`data-[status=active]:from-bernstein/[0.16] before:bg-bernstein before:shadow-[0_0_12px_var(--bernstein)] data-[status=active]:[&>svg]:text-bernstein`,box:`data-[status=active]:from-box/[0.2] before:bg-box before:shadow-[0_0_12px_var(--box)] data-[status=active]:[&>svg]:text-box`,homelab:`data-[status=active]:from-lab/[0.2] before:bg-lab before:shadow-[0_0_12px_var(--lab)] data-[status=active]:[&>svg]:text-lab`,system:`data-[status=active]:from-white/[0.08] before:bg-text-2 data-[status=active]:[&>svg]:text-foreground`},os={box:{text:`text-box-text`,kachel:`from-box/30 to-box/[0.05] ring-box/35 text-box`,Icon:da},homelab:{text:`text-lab-text`,kachel:`from-lab/30 to-lab/[0.05] ring-lab/35 text-lab`,Icon:mo}},ss=`group relative flex h-10 items-center gap-3 rounded-xl pr-3 pl-3.5 text-[14.5px] text-text-2 transition-colors hover:bg-white/[0.045] hover:text-foreground bg-gradient-to-r to-transparent data-[status=active]:text-foreground before:absolute before:top-2.5 before:bottom-2.5 before:left-0 before:w-[3px] before:rounded-full before:opacity-0 before:transition-opacity data-[status=active]:before:opacity-100`;function cs(){let e=(0,z.c)(2),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,R.jsxs)(`span`,{className:`relative shrink-0`,children:[(0,R.jsx)(`span`,{"aria-hidden":!0,className:`absolute inset-1 rounded-xl bg-bernstein/35 blur-xl`}),(0,R.jsx)(`img`,{src:`/favicon.svg`,alt:``,width:40,height:40,className:`relative size-10`})]}),e[0]=t):t=e[0];let n;return e[1]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,R.jsxs)(`div`,{className:`flex items-center gap-3 px-1.5`,children:[t,(0,R.jsxs)(`span`,{className:`flex flex-col leading-none`,children:[(0,R.jsx)(`span`,{className:`text-[19px] font-semibold tracking-[0.01em]`,children:`Homelab`}),(0,R.jsx)(`span`,{className:`etikett mt-1.5 text-[10.5px] tracking-[0.32em] text-text-3`,children:`Orchestrator`})]})]}),e[1]=n):n=e[1],n}function ls(e){let t=(0,z.c)(16),{s:n,zahl:r,onGewaehlt:i}=e,a=n.to,o=as[n.ort],c;t[0]===o?c=t[1]:(c=s(ss,o),t[0]=o,t[1]=c);let l;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(l={exact:!0},t[2]=l):l=t[2];let u;t[3]===n.Icon?u=t[4]:(u=(0,R.jsx)(n.Icon,{className:`size-[18px] shrink-0 text-text-3 transition-colors group-hover:text-text-2`,"aria-hidden":!0}),t[3]=n.Icon,t[4]=u);let d;t[5]===n.label?d=t[6]:(d=(0,R.jsx)(`span`,{className:`flex-1`,children:n.label}),t[5]=n.label,t[6]=d);let f;t[7]===r?f=t[8]:(f=!!r&&(0,R.jsxs)(`span`,{className:`ziffern rounded-full bg-cyan/12 px-2 text-[11.5px] leading-5 font-medium text-cyan-text ring-1 ring-cyan/30 ring-inset`,children:[r,(0,R.jsxs)(`span`,{className:`sr-only`,children:[` `,r===1?`Update`:`Updates`,` bereit`]})]}),t[7]=r,t[8]=f);let p;return t[9]!==i||t[10]!==n.to||t[11]!==c||t[12]!==u||t[13]!==d||t[14]!==f?(p=(0,R.jsxs)(wi,{to:a,onClick:i,className:c,activeOptions:l,children:[u,d,f]}),t[9]=i,t[10]=n.to,t[11]=c,t[12]=u,t[13]=d,t[14]=f,t[15]=p):p=t[15],p}function us(e){let t=(0,z.c)(14),{onGewaehlt:n}=e,r=Zo(),i=b().data?.rolle!==`homelab`,a=ds,o;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(o=a(`/`),t[0]=o):o=t[0];let c;t[1]===n?c=t[2]:(c=(0,R.jsx)(ls,{s:o,onGewaehlt:n}),t[1]=n,t[2]=c);let l;t[3]!==i||t[4]!==n||t[5]!==r?(l=Ko.map(e=>{let t=is[r[e.id].verbindung],a=os[e.id];return(0,R.jsxs)(`section`,{"aria-label":e.name,className:`flex flex-col gap-0.5`,children:[(0,R.jsxs)(`div`,{className:`flex items-center justify-between gap-2 pr-2 pb-2 pl-1`,children:[(0,R.jsxs)(`h2`,{className:s(`etikett flex items-center gap-2.5 text-[12px] tracking-[0.16em]`,a.text),children:[(0,R.jsx)(`span`,{"aria-hidden":!0,className:s(`flex size-6 items-center justify-center rounded-lg bg-gradient-to-br ring-1 ring-inset`,a.kachel),children:(0,R.jsx)(a.Icon,{className:`size-3.5`,strokeWidth:2})}),e.name]}),(0,R.jsxs)(`span`,{className:`flex items-center gap-1.5 text-[12px] text-text-3`,children:[(0,R.jsx)(`span`,{"aria-hidden":!0,className:s(`size-1.5 rounded-full`,t.punkt)}),t.text]})]}),qo.filter(t=>t.ort===e.id).map(t=>(0,R.jsx)(ls,{s:t,zahl:t.zaehlt?r[e.id].updates:0,onGewaehlt:n},t.to)),e.id===`box`&&i&&(0,R.jsxs)(`a`,{href:`/hermes-ui/`,target:`_blank`,rel:`noopener`,className:ss,children:[(0,R.jsx)(ja,{className:`size-[18px] shrink-0 text-text-3`,"aria-hidden":!0}),`Hermes-Dashboard`]})]},e.id)}),t[3]=i,t[4]=n,t[5]=r,t[6]=l):l=t[6];let u;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(u=a(`/einstellungen`),t[7]=u):u=t[7];let d;t[8]===n?d=t[9]:(d=(0,R.jsx)(`div`,{className:`mt-auto border-t border-white/[0.06] pt-4`,children:(0,R.jsx)(ls,{s:u,onGewaehlt:n})}),t[8]=n,t[9]=d);let f;return t[10]!==c||t[11]!==l||t[12]!==d?(f=(0,R.jsxs)(`nav`,{"aria-label":`Hauptnavigation`,className:`flex flex-1 flex-col gap-7`,children:[c,l,d]}),t[10]=c,t[11]=l,t[12]=d,t[13]=f):f=t[13],f}function ds(e){return qo.find(t=>t.to===e)}var fs=`modulepreload`,ps=function(e){return`/`+e},ms={},hs=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=ps(t,n),t=s(t),t in ms)return;ms[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`:fs,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)})},gs=(0,I.lazy)(()=>hs(()=>import(`./MenueSchublade-CMlUHm_j.js`).then(e=>({default:e.MenueSchublade})),__vite__mapDeps([0,1,2,3,4]))),_s=(0,I.lazy)(()=>hs(()=>import(`./Befehlssuche-Dq-EThSx.js`).then(e=>({default:e.Befehlssuche})),__vite__mapDeps([5,1,6]))),vs=new Intl.DateTimeFormat(`de-DE`,{hour:`2-digit`,minute:`2-digit`,timeZone:`Europe/Berlin`}),ys=new Intl.DateTimeFormat(`de-DE`,{weekday:`short`,timeZone:`Europe/Berlin`}),bs=new Intl.DateTimeFormat(`de-DE`,{day:`2-digit`,month:`2-digit`,timeZone:`Europe/Berlin`});function xs(){let e=(0,z.c)(21),[t,n]=(0,I.useState)(Ss),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,I.useEffect)(r,i);let a;e[2]===t?a=e[3]:(a=vs.format(t),e[2]=t,e[3]=a);let o;e[4]===a?o=e[5]:(o=(0,R.jsx)(`span`,{className:`ziffern text-[20px] leading-none font-medium sm:text-[22px]`,children:a}),e[4]=a,e[5]=o);let s;e[6]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,R.jsx)(`span`,{"aria-hidden":!0,className:`hidden h-7 w-px bg-white/10 sm:block`}),e[6]=s):s=e[6];let c;e[7]===t?c=e[8]:(c=ys.format(t).replace(`.`,``),e[7]=t,e[8]=c);let l;e[9]===c?l=e[10]:(l=(0,R.jsx)(`span`,{children:c}),e[9]=c,e[10]=l);let u;e[11]===t?u=e[12]:(u=bs.format(t),e[11]=t,e[12]=u);let d;e[13]===u?d=e[14]:(d=(0,R.jsx)(`span`,{className:`ziffern tracking-normal`,children:u}),e[13]=u,e[14]=d);let f;e[15]!==l||e[16]!==d?(f=(0,R.jsxs)(`span`,{className:`etikett hidden flex-col text-[10.5px] leading-[1.35] text-text-3 sm:flex`,children:[l,d]}),e[15]=l,e[16]=d,e[17]=f):f=e[17];let p;return e[18]!==o||e[19]!==f?(p=(0,R.jsxs)(`div`,{className:`flaeche flex items-center gap-3 rounded-2xl px-3 py-2 sm:px-4`,children:[o,s,f]}),e[18]=o,e[19]=f,e[20]=p):p=e[20],p}function Ss(){return new Date}function Cs(){let e=(0,z.c)(14),t=_e(),n=t===`live`,r=n?`Verbunden`:t===`verbinde`?`Verbinde`:`Getrennt`,i=n?`text-text-3`:`text-bernstein`,a;e[0]===i?a=e[1]:(a=s(`etikett flex items-center gap-1.5 text-[11px] tracking-[0.12em]`,i),e[0]=i,e[1]=a);let o=n?`bg-gruen shadow-[0_0_8px_var(--gruen)]`:`bg-bernstein`,c;e[2]===o?c=e[3]:(c=s(`size-2 rounded-full`,o),e[2]=o,e[3]=c);let l;e[4]===c?l=e[5]:(l=(0,R.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,R.jsx)(`span`,{className:u,children:d}),e[6]=u,e[7]=d,e[8]=f):f=e[8];let p;return e[9]!==r||e[10]!==a||e[11]!==l||e[12]!==f?(p=(0,R.jsxs)(`span`,{role:`status`,title:r,className:a,children:[l,f]}),e[9]=r,e[10]=a,e[11]=l,e[12]=f,e[13]=p):p=e[13],p}var ws={uebersicht:`text-bernstein`,box:`text-box-text`,homelab:`text-lab-text`,system:`text-text-3`};function Ts(e){let t=(0,z.c)(3),n,r;t[0]===e?(n=t[1],r=t[2]):(n=()=>{let t=t=>{(t.ctrlKey||t.metaKey)&&!t.altKey&&t.key.toLowerCase()===`k`&&(t.preventDefault(),e())};return window.addEventListener(`keydown`,t),()=>window.removeEventListener(`keydown`,t)},r=[e],t[0]=e,t[1]=n,t[2]=r),(0,I.useEffect)(n,r)}function Es(){let e=(0,z.c)(33);y();let[t,n]=(0,I.useState)(!1),[r,i]=(0,I.useState)(!1),a=Yo(),o;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(o=()=>i(!0),e[0]=o):o=e[0],Ts(o);let c;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,R.jsxs)(`aside`,{className:`sticky top-0 hidden h-dvh flex-col gap-9 overflow-y-auto border-r border-white/[0.06] bg-[rgb(8_11_17/0.72)] px-4 py-7 backdrop-blur-xl lg:flex`,children:[(0,R.jsx)(cs,{}),(0,R.jsx)(us,{})]}),e[1]=c):c=e[1];let l;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(l=()=>n(!0),e[2]=l):l=e[2];let u;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,R.jsx)(`button`,{type:`button`,onClick:l,className:`-ml-2 flex size-11 shrink-0 items-center justify-center rounded-lg text-text-2 hover:bg-white/[0.06] hover:text-foreground lg:hidden`,"aria-label":`Menü öffnen`,children:(0,R.jsx)(Ya,{className:`size-6`})}),e[3]=u):u=e[3];let d=ws[a.ort],f;e[4]===d?f=e[5]:(f=s(`etikett truncate text-[11.5px] tracking-[0.22em] whitespace-nowrap`,d),e[4]=d,e[5]=f);let p=Jo[a.ort],m;e[6]!==f||e[7]!==p?(m=(0,R.jsx)(`span`,{className:f,children:p}),e[6]=f,e[7]=p,e[8]=m):m=e[8];let h;e[9]===a.label?h=e[10]:(h=(0,R.jsx)(`h1`,{className:`truncate text-[26px] leading-none font-semibold tracking-[-0.01em] md:text-[32px]`,children:a.label}),e[9]=a.label,e[10]=h);let g;e[11]!==m||e[12]!==h?(g=(0,R.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[u,(0,R.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1.5`,children:[m,h]})]}),e[11]=m,e[12]=h,e[13]=g):g=e[13];let _;e[14]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,R.jsx)(`span`,{className:`lg:hidden`,children:(0,R.jsx)(Cs,{})}),e[14]=_):_=e[14];let v;e[15]===Symbol.for(`react.memo_cache_sentinel`)?(v=()=>i(!0),e[15]=v):v=e[15];let b;e[16]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,R.jsxs)(`div`,{className:`flex items-center gap-3 sm:gap-4`,children:[_,(0,R.jsxs)(`button`,{type:`button`,onClick:v,className:`flex size-11 shrink-0 items-center justify-center gap-2 rounded-xl text-text-2 hover:bg-white/[0.06] hover:text-foreground md:w-auto md:px-3`,"aria-label":`Suchen (Strg+K)`,title:`Suchen (Strg+K)`,children:[(0,R.jsx)(fo,{className:`size-5`,"aria-hidden":!0}),(0,R.jsx)(`kbd`,{className:`hidden rounded-md border border-white/10 px-1.5 py-0.5 font-sans text-[11px] text-text-3 md:block`,children:`Strg K`})]}),(0,R.jsx)(xs,{})]}),e[16]=b):b=e[16];let x;e[17]===g?x=e[18]:(x=(0,R.jsxs)(`header`,{className:`flex items-center justify-between gap-4 md:pb-1`,children:[g,b]}),e[17]=g,e[18]=x);let S;e[19]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,R.jsx)(`main`,{className:`flex min-w-0 flex-col gap-5 md:gap-6`,children:(0,R.jsx)(Vi,{})}),e[19]=S):S=e[19];let C;e[20]===x?C=e[21]:(C=(0,R.jsxs)(`div`,{className:`mx-auto flex w-full max-w-[1360px] min-w-0 flex-col gap-5 px-4 pt-4 pb-12 sm:px-6 md:gap-6 md:px-10 md:pt-8`,children:[x,S]}),e[20]=x,e[21]=C);let w;e[22]===t?w=e[23]:(w=t&&(0,R.jsx)(gs,{onSchliessen:()=>n(!1)}),e[22]=t,e[23]=w);let T;e[24]===r?T=e[25]:(T=r&&(0,R.jsx)(_s,{onSchliessen:()=>i(!1)}),e[24]=r,e[25]=T);let E;e[26]!==w||e[27]!==T?(E=(0,R.jsxs)(I.Suspense,{fallback:null,children:[w,T]}),e[26]=w,e[27]=T,e[28]=E):E=e[28];let D;e[29]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,R.jsx)(ns,{}),e[29]=D):D=e[29];let O;return e[30]!==C||e[31]!==E?(O=(0,R.jsxs)(`div`,{className:`min-h-dvh lg:grid lg:grid-cols-[272px_minmax(0,1fr)]`,children:[c,C,E,D]}),e[30]=C,e[31]=E,e[32]=O):O=e[32],O}var Ds={gruen:`bg-gruen/10 text-gruen ring-gruen/30`,bernstein:`bg-bernstein/10 text-bernstein ring-bernstein/35`,cyan:`bg-cyan/10 text-cyan-text ring-cyan/30`,rot:`bg-rot/12 text-rot-text ring-rot/40`,grau:`bg-white/[0.04] text-text-2 ring-white/12`};function Os(e){let t=(0,z.c)(6),{art:n,children:r}=e,i=Ds[n===void 0?`grau`:n],a;t[0]===i?a=t[1]:(a=s(`etikett inline-flex h-6 items-center gap-1.5 rounded-full px-2.5 text-[11px] tracking-[0.08em] whitespace-nowrap ring-1 ring-inset`,i),t[0]=i,t[1]=a);let o;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,R.jsx)(`span`,{"aria-hidden":!0,className:`size-1.5 shrink-0 rounded-full bg-current opacity-90`}),t[2]=o):o=t[2];let c;return t[3]!==r||t[4]!==a?(c=(0,R.jsxs)(`span`,{className:a,children:[o,r]}),t[3]=r,t[4]=a,t[5]=c):c=t[5],c}function ks(e){let t=(0,z.c)(6),{fehler:n,text:r}=e,i=n?`alert`:`status`,a=n?`border border-rot-rand bg-rot-grund text-rot-text`:`flaeche text-text-2`,o;t[0]===a?o=t[1]:(o=s(`rounded-2xl px-5 py-8 text-center text-[15px]`,a),t[0]=a,t[1]=o);let c;return t[2]!==i||t[3]!==o||t[4]!==r?(c=(0,R.jsx)(`div`,{role:i,className:o,children:r}),t[2]=i,t[3]=o,t[4]=r,t[5]=c):c=t[5],c}var As=new Set(`actual-budget.adguard-home.affine.alpine-linux.ansible.appflowy.apprise.arcane.audiobookshelf.authelia.authentik.baserow.bazarr.beszel.bitwarden.bookstack.borgmatic.caddy.calibre-web.changedetection.checkmk.claude.cloudflare.cockpit.comfyui.crafty-controller.crowdsec.debian.deluge.docker.dockge.docmost.dozzle.draw-io.duplicati.elasticsearch.element.emby.esphome.excalidraw.firefly-iii.flatnotes.forgejo.freshrss.frigate.gatus.gitea.github.gitlab.glance.glances.go2rtc.gotify.grafana.grocy.harbor.headscale.healthchecks.hedgedoc.heimdall.hermes-agent.homarr.home-assistant.homebridge.homepage.immich.immich-kiosk.influxdb.it-tools.jellyfin.jellyseerr.jenkins.jitsi-meet.joplin.kavita.keycloak.komga.komodo.kopia.kubernetes.librenms.librespeed.lidarr.linkding.linux.linux-containers-lxc.linuxserver-io.llama-cpp.logseq.loki.mariadb.matomo.matrix.mattermost.mealie.minecraft.miniflux.minio.mongodb.mosquitto.n8n.navidrome.netbird.netdata.nextcloud.nginx.nginx-proxy-manager.nocodb.node-red.ntfy.nzbget.obsidian.ollama.onlyoffice.open-webui.openai.openmediavault.openwrt.opnsense.outline.overseerr.paperless-ngx.penpot.pfsense.photoprism.pi-hole.pingvin-share.piwigo.planka.plausible.plex.portainer.postgresql.privatebin.prometheus.prowlarr.proxmox.proxmox-helper-scripts.pterodactyl.qbittorrent.qnap.rabbitmq.radarr.rancher.rclone.readarr.redis.rocket-chat.rustdesk.sabnzbd.scrutiny.scrypted.seafile.searxng.semaphore.sonarr.speedtest-tracker.stirling-pdf.syncthing.synology.tailscale.tautulli.telegram.traefik.transmission.ubuntu.umami.unraid.uptime-kuma.vaultwarden.vikunja.wallabag.watchtower.webmin.wekan.wiki-js.wireguard.woodpecker-ci.wordpress.zabbix.zigbee2mqtt`.split(`.`)),js={ok:`bg-gruen shadow-[0_0_8px_var(--gruen)]`,warn:`bg-bernstein shadow-[0_0_8px_var(--bernstein)]`,rot:`bg-rot shadow-[0_0_8px_var(--rot)]`,info:`bg-cyan shadow-[0_0_8px_var(--cyan)]`,aus:`bg-text-3`},Ms=[[/adguard|pi-?hole/i,vo],[/npm|nginx proxy/i,so,`nginx-proxy-manager`],[/traefik|caddy/i,so],[/netbird|wireguard|tailscale/i,aa],[/gitea|forgejo|gitlab/i,La],[/backup server|\bpbs\b/i,Da,`proxmox`],[/arcane|docker|portainer|dockge|komodo/i,Ca],[/pve scripts|helper.?scripts|community.?scripts/i,Na,`proxmox-helper-scripts`],[/scripts/i,Na],[/home ?assistant/i,Va],[/jellyfin|plex|emby/i,ya],[/\bnas\b|qnap|truenas|synology/i,za],[/postgres/i,ka,`postgresql`],[/mariadb|mysql|mongo|redis|valkey/i,ka]];function Ns(e){return e.toLowerCase().replace(/\(.*?\)/g,``).trim().replace(/[^a-z0-9]+/g,`-`).replace(/^-|-$/g,``)}function Ps(e,t){if(t&&As.has(t))return t;let n=Ns(e);if(As.has(n))return n;let r=n.split(`-`)[0];return r.length>2&&As.has(r)?r:void 0}function Fs(e){if(e.art===`ki-box`)return{Icon:da,bereich:`box`};if(e.art===`proxmox-host`)return{Icon:mo,bereich:`homelab`,logo:Ps(`proxmox`)};let t=Ms.find(([t])=>t.test(e.name));return{Icon:t?.[1]??(e.art===`vm`?to:la),bereich:`homelab`,logo:Ps(e.name,t?.[2])}}var Is={os:[Ua,`ubuntu`],engine:[Eo,`llama-cpp`],motor:[Eo,`llama-cpp`],swap:[bo],hermes:[sa,`hermes-agent`],hirn:[da],coder:[xa],jobs:[wo],sicherung:[Da],platte:[za],updates:[ro]},Ls=[[/^hermes/,sa,`hermes-agent`],[/^llama-swap/,bo],[/^mc2-gateway/,so],[/^mc2-steward/,vo],[/^mission-control/,Ga],[/^voice/,$a],[/^lucy-stimme/,V]];function Rs(e){let t=Ls.find(([t])=>t.test(e)),n=t?.[2];return{Icon:t?.[1]??la,bereich:`box`,logo:n&&As.has(n)?n:void 0}}function zs(e){let[t,n]=Is[e]??[la];return{Icon:t,bereich:`box`,logo:n&&As.has(n)?n:void 0}}var Bs={box:`from-box/30 to-box/[0.05] ring-box/35 text-box-text`,homelab:`from-lab/30 to-lab/[0.05] ring-lab/35 text-lab-text`},Vs={box:`from-white/[0.1] to-white/[0.03] ring-box/30`,homelab:`from-white/[0.1] to-white/[0.03] ring-lab/30`},Hs={box:`shadow-[0_0_28px_-6px_var(--box)]`,homelab:`shadow-[0_0_28px_-6px_var(--lab)]`},Us={sm:{kachel:`size-8 rounded-[10px]`,icon:`size-4`,logo:`size-5`,punkt:`size-2.5`},md:{kachel:`size-10 rounded-xl`,icon:`size-5`,logo:`size-6`,punkt:`size-2.5`},lg:{kachel:`size-12 rounded-2xl`,icon:`size-6`,logo:`size-7`,punkt:`size-3`}};function Ws(e){let t=(0,z.c)(17),{bild:n,groesse:r,punkt:i,leuchtet:a,className:o}=e,c=r===void 0?`md`:r,l=a!==void 0&&a,u=Us[c],d=n.logo?Vs[n.bereich]:Bs[n.bereich],f=l&&Hs[n.bereich],p;t[0]!==o||t[1]!==u.kachel||t[2]!==d||t[3]!==f?(p=s(`relative inline-flex shrink-0 items-center justify-center bg-gradient-to-br ring-1 ring-inset`,d,u.kachel,f,o),t[0]=o,t[1]=u.kachel,t[2]=d,t[3]=f,t[4]=p):p=t[4];let m;t[5]!==n.Icon||t[6]!==n.logo||t[7]!==u.icon||t[8]!==u.logo?(m=n.logo?(0,R.jsx)(`img`,{src:`/logos/${n.logo}.svg`,alt:``,className:s(`object-contain`,u.logo),loading:`lazy`,draggable:!1}):(0,R.jsx)(n.Icon,{className:u.icon,strokeWidth:1.75}),t[5]=n.Icon,t[6]=n.logo,t[7]=u.icon,t[8]=u.logo,t[9]=m):m=t[9];let h;t[10]!==u.punkt||t[11]!==i?(h=i&&(0,R.jsx)(`span`,{className:s(`absolute -right-0.5 -bottom-0.5 rounded-full ring-2 ring-[#0b0f16]`,u.punkt,js[i])}),t[10]=u.punkt,t[11]=i,t[12]=h):h=t[12];let g;return t[13]!==p||t[14]!==m||t[15]!==h?(g=(0,R.jsxs)(`span`,{"aria-hidden":!0,className:p,children:[m,h]}),t[13]=p,t[14]=m,t[15]=h,t[16]=g):g=t[16],g}var Gs=new Intl.NumberFormat(`de-DE`,{maximumFractionDigits:1}),Ks=new Intl.NumberFormat(`de-DE`,{maximumFractionDigits:0});function qs(e){return e<1e3?`${Ks.format(e)} B/s`:e<1e6?`${Gs.format(e/1e3)} KB/s`:e<1e9?`${Gs.format(e/1e6)} MB/s`:`${Gs.format(e/1e9)} GB/s`}function Js(e,t){return e==null||Number.isNaN(e)?`–`:t===`prozent`?`${Ks.format(e)} %`:t===`grad`?`${Ks.format(e)} °C`:t===`bytes_s`?qs(e):Ks.format(e)}function Ys(e){if(!e)return null;for(let t=e.length-1;t>=0;t--){let n=e[t][1];if(n!==null)return n}return null}function Xs(e,t){if(t===`prozent`)return 100;let n=0;for(let t of e)for(let[,e]of t??[])e!==null&&e>n&&(n=e);if(t===`grad`)return Math.max(60,Math.ceil((n+5)/10)*10);if(n<=0)return 1;let r=10**Math.floor(Math.log10(n));for(let e of[1,2,2.5,5,10])if(e*r>=n)return e*r;return 10*r}function Zs(e,t,n){return e===null?`ruhig`:e>=n?`rot`:e>=t?`gelb`:`ruhig`}var Qs=new Intl.DateTimeFormat(`de-DE`,{hour:`2-digit`,minute:`2-digit`,timeZone:`Europe/Berlin`}),$s=new Intl.DateTimeFormat(`de-DE`,{weekday:`short`,hour:`2-digit`,minute:`2-digit`,timeZone:`Europe/Berlin`});function ec(e,t){let n=new Date(e*1e3);return(t?$s:Qs).format(n).replace(`,`,``)}function tc(e){if(!e||e<0)return`–`;let t=Math.floor(e/86400),n=Math.floor(e%86400/3600),r=Math.floor(e%3600/60);return t>0?`${t} T ${n} h`:n>0?`${n} h ${r} min`:`${r} min`}function nc(e){return e<1?`in weniger als einem Tag`:e<1.5?`in etwa einem Tag`:e<21?`in etwa ${Math.round(e)} Tagen`:e<90?`in etwa ${Math.round(e/7)} Wochen`:e<365?`in etwa ${Math.round(e/30)} Monaten`:`frühestens in einem Jahr`}function rc(e){return e?.tage==null?`ok`:e.tage<3?`rot`:e.tage<14?`gelb`:`ok`}function ic(e,t=1/0){return e?.tage==null||e.tage>=t?null:`voll ${nc(e.tage)}`}function ac(e){return e?.rate==null?null:`+${e.rate.toFixed(1).replace(`.`,`,`)} % am Tag`}var oc={ok:`text-text-3`,gelb:`text-bernstein`,rot:`text-rot-text`};function sc(e){let t=ic(e,60);return t?{text:t,stufe:rc(e)}:null}function cc(e,t,n){let r=``,i=!1;for(let[a,o]of e){if(o===null){i=!1;continue}r+=`${i?`L`:`M`}${t(a).toFixed(1)},${n(o).toFixed(1)}`,i=!0}return r}function lc(e,t,n,r){let i=``,a=[],o=()=>{a.length>1&&(i+=`M${a[0][0].toFixed(1)},${r}`+a.map(([e,t])=>`L${e.toFixed(1)},${t.toFixed(1)}`).join(``)+`L${a[a.length-1][0].toFixed(1)},${r}Z`),a=[]};for(let[r,i]of e)i===null?o():a.push([t(r),n(i)]);return o(),i}function uc(e){if(!Number.isFinite(e)||e<=0)return[0,1];for(let t=0;;t++)for(let n of[1,2,2.5,5]){let r=n*10**t;if(!Number.isInteger(r))continue;let i=Math.ceil(e/r);if(i<=4)return Array.from({length:i+1},(e,t)=>t*r)}}var dc=e=>Number(e.toFixed(1));function fc(e,t,n,r,i=4){let a=Math.max(0,Math.min(i,n/2,r));return`M${dc(e)},${dc(t+r)}V${dc(t+a)}Q${dc(e)},${dc(t)} ${dc(e+a)},${dc(t)}H${dc(e+n-a)}Q${dc(e+n)},${dc(t)} ${dc(e+n)},${dc(t+a)}V${dc(t+r)}Z`}function pc(e,t,n=2){let r=[],i=0;e.forEach((e,a)=>{if(!(e>0))return;let o=t(i);i+=e;let s=t(i);r.push({index:a,y:s,hoehe:Math.max(0,o-s-(r.length?n:0)),oben:!1})});let a=r.filter(e=>e.hoehe>=1).at(-1);return a&&(a.oben=!0),r}function mc(e){let t=(0,z.c)(26),{punkte:n,max:r,farbe:i,hoehe:a,beschriftung:o}=e,s=i===void 0?`var(--reihe-1)`:i,c=a===void 0?36:a,l=n[0]?.[0]??0,u=n[n.length-1]?.[0]??1,d;t[0]!==l||t[1]!==u?(d=e=>u>l?(e-l)/(u-l)*100:0,t[0]=l,t[1]=u,t[2]=d):d=t[2];let f=d,p;t[3]!==c||t[4]!==r?(p=e=>c-2-Math.min(e,r)/(r||1)*(c-4),t[3]=c,t[4]=r,t[5]=p):p=t[5];let m=p,h;t[6]===n?h=t[7]:(h=n.some(hc),t[6]=n,t[7]=h);let g=h,_=(0,I.useId)(),v;if(t[8]!==_){let e;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(e=/[^a-zA-Z0-9_-]/g,t[10]=e):e=t[10],v=_.replace(e,``),t[8]=_,t[9]=v}else v=t[9];let y=`sl${v}`,b=`0 0 100 ${c}`,x;t[11]===c?x=t[12]:(x={height:c},t[11]=c,t[12]=x);let S;t[13]!==s||t[14]!==g||t[15]!==c||t[16]!==n||t[17]!==y||t[18]!==f||t[19]!==m?(S=g&&(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(`defs`,{children:(0,R.jsxs)(`linearGradient`,{id:y,x1:`0`,y1:`0`,x2:`0`,y2:`1`,children:[(0,R.jsx)(`stop`,{offset:`0`,stopColor:s,stopOpacity:.3}),(0,R.jsx)(`stop`,{offset:`1`,stopColor:s,stopOpacity:0})]})}),(0,R.jsx)(`path`,{d:lc(n,f,m,c),fill:`url(#${y})`}),(0,R.jsx)(`path`,{d:cc(n,f,m),fill:`none`,stroke:s,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`,vectorEffect:`non-scaling-stroke`})]}),t[13]=s,t[14]=g,t[15]=c,t[16]=n,t[17]=y,t[18]=f,t[19]=m,t[20]=S):S=t[20];let C;return t[21]!==o||t[22]!==S||t[23]!==b||t[24]!==x?(C=(0,R.jsx)(`svg`,{role:`img`,"aria-label":o,viewBox:b,preserveAspectRatio:`none`,className:`block w-full`,style:x,children:S}),t[21]=o,t[22]=S,t[23]=b,t[24]=x,t[25]=C):C=t[25],C}function hc(e){let[,t]=e;return t!==null}var gc={ruhig:{wert:`text-foreground`,marke:null},gelb:{wert:`text-bernstein`,marke:`hoch`},rot:{wert:`text-rot-text`,marke:`kritisch`}},_c=48,vc=37,yc=2*Math.PI*vc,bc=yc*.75;function xc(e,t){let n=(135+270*e)*Math.PI/180;return{x:_c+t*Math.cos(n),y:_c+t*Math.sin(n)}}function Sc(e){let t=(0,z.c)(49),{label:n,wert:r,einheit:i,punkte:a,zustand:o,bereich:c,grenzen:l,max:u,zeitraumText:d,i:f,hinweis:p}=e,m=o===void 0?`ruhig`:o,h=u===void 0?100:u,g=f===void 0?0:f,_=gc[m],v=m===`rot`?`var(--rot)`:m===`gelb`?`var(--bernstein)`:c===`box`?`var(--box)`:`var(--lab)`,y=r==null?0:Math.min(Math.max(r/h,0),1),b;t[0]!==i||t[1]!==r?(b=Js(r,i).split(` `),t[0]=i,t[1]=r,t[2]=b):b=t[2];let[x,S]=b,C;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(C=(0,R.jsx)(`circle`,{cx:_c,cy:_c,r:vc,fill:`none`,stroke:`rgb(255 255 255 / 0.07)`,strokeWidth:7,strokeLinecap:`round`,strokeDasharray:`${bc} ${yc}`,transform:`rotate(135 ${_c} ${_c})`}),t[3]=C):C=t[3];let w;if(t[4]!==l||t[5]!==h){let e;t[7]===h?e=t[8]:(e=(e,t)=>{let n=xc(Math.min(e/h,1),43),r=xc(Math.min(e/h,1),46.5);return(0,R.jsx)(`line`,{x1:n.x,y1:n.y,x2:r.x,y2:r.y,strokeWidth:1.5,strokeLinecap:`round`,stroke:t===0?`var(--bernstein)`:`var(--rot)`,opacity:.55},e)},t[7]=h,t[8]=e),w=l.map(e),t[4]=l,t[5]=h,t[6]=w}else w=t[6];let T;t[9]!==y||t[10]!==v||t[11]!==g||t[12]!==r?(T=r!=null&&y>0&&(0,R.jsx)(`circle`,{cx:_c,cy:_c,r:vc,fill:`none`,stroke:v,strokeWidth:7,strokeLinecap:`round`,strokeDasharray:`${Math.max(bc*y,.5)} ${yc}`,transform:`rotate(135 ${_c} ${_c})`,className:`ring-fuellt transition-[stroke-dasharray] duration-700`,style:{"--i":g,filter:`drop-shadow(0 0 5px color-mix(in srgb, ${v} 65%, transparent))`}}),t[9]=y,t[10]=v,t[11]=g,t[12]=r,t[13]=T):T=t[13];let E;t[14]!==w||t[15]!==T?(E=(0,R.jsxs)(`svg`,{viewBox:`0 0 96 96`,className:`size-full`,"aria-hidden":!0,children:[C,w,T]}),t[14]=w,t[15]=T,t[16]=E):E=t[16];let D;t[17]===_.wert?D=t[18]:(D=s(`font-anzeige text-[26px] leading-none font-semibold tabular-nums`,_.wert),t[17]=_.wert,t[18]=D);let O;t[19]!==D||t[20]!==x?(O=(0,R.jsx)(`span`,{className:D,children:x}),t[19]=D,t[20]=x,t[21]=O):O=t[21];let k;t[22]===S?k=t[23]:(k=S&&(0,R.jsx)(`span`,{className:`ml-0.5 self-center pt-1.5 text-[12px] font-medium text-text-3`,children:S}),t[22]=S,t[23]=k);let A;t[24]!==O||t[25]!==k?(A=(0,R.jsxs)(`span`,{className:`absolute inset-0 flex items-center justify-center pt-1`,children:[O,k]}),t[24]=O,t[25]=k,t[26]=A):A=t[26];let ee;t[27]!==A||t[28]!==E?(ee=(0,R.jsxs)(`div`,{className:`relative size-[88px]`,children:[E,A]}),t[27]=A,t[28]=E,t[29]=ee):ee=t[29];let te;t[30]!==_.marke||t[31]!==_.wert?(te=_.marke&&(0,R.jsxs)(`span`,{className:_.wert,children:[`· `,_.marke]}),t[30]=_.marke,t[31]=_.wert,t[32]=te):te=t[32];let ne;t[33]!==n||t[34]!==te?(ne=(0,R.jsxs)(`span`,{className:`etikett -mt-1 flex items-center gap-1.5 text-[10.5px] text-text-3`,children:[n,te]}),t[33]=n,t[34]=te,t[35]=ne):ne=t[35];let j;t[36]!==v||t[37]!==n||t[38]!==h||t[39]!==a||t[40]!==d?(j=(0,R.jsx)(`div`,{className:`w-full px-1`,children:a&&a.length>1?(0,R.jsx)(mc,{punkte:a,max:h,farbe:v,hoehe:20,beschriftung:`${n}, ${d}`}):(0,R.jsx)(`span`,{className:`block h-5`,"aria-hidden":!0})}),t[36]=v,t[37]=n,t[38]=h,t[39]=a,t[40]=d,t[41]=j):j=t[41];let re;t[42]===p?re=t[43]:(re=p&&(0,R.jsx)(`span`,{className:s(`text-center text-[11px] leading-tight`,oc[p.stufe]),children:p.text}),t[42]=p,t[43]=re);let ie;return t[44]!==ee||t[45]!==ne||t[46]!==j||t[47]!==re?(ie=(0,R.jsxs)(`div`,{className:`flaeche-innen flex min-w-0 flex-col items-center gap-1 rounded-2xl px-2 pt-2.5 pb-2`,children:[ee,ne,j,re]}),t[44]=ee,t[45]=ne,t[46]=j,t[47]=re,t[48]=ie):ie=t[48],ie}function Cc(e){let t=(0,z.c)(4),n;t[0]===e?n=t[1]:({...n}=e,t[0]=e,t[1]=n);let r;return t[2]===n?r=t[3]:(r=(0,R.jsx)(g,{"data-slot":`dialog`,...n}),t[2]=n,t[3]=r),r}function wc(e){let t=(0,z.c)(4),n;t[0]===e?n=t[1]:({...n}=e,t[0]=e,t[1]=n);let r;return t[2]===n?r=t[3]:(r=(0,R.jsx)(p,{"data-slot":`dialog-portal`,...n}),t[2]=n,t[3]=r),r}function Tc(e){let t=(0,z.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=s(`fixed inset-0 isolate z-50 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,R.jsx)(c,{"data-slot":`dialog-overlay`,className:i,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}function Ec(e){let t=(0,z.c)(15),n,r,i,a;t[0]===e?(n=t[1],r=t[2],i=t[3],a=t[4]):({className:r,children:n,showCloseButton:a,...i}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=i,t[4]=a);let o=a===void 0||a,c;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,R.jsx)(Tc,{}),t[5]=c):c=t[5];let u;t[6]===r?u=t[7]:(u=s(`fixed top-1/2 left-1/2 z-50 grid w-full max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-4 rounded-xl bg-popover p-4 text-sm text-popover-foreground ring-1 ring-foreground/10 duration-100 outline-none sm:max-w-sm data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95`,r),t[6]=r,t[7]=u);let d;t[8]===o?d=t[9]:(d=o&&(0,R.jsx)(f,{"data-slot":`dialog-close`,asChild:!0,children:(0,R.jsxs)(He,{variant:`ghost`,className:`absolute top-2 right-2`,size:`icon-sm`,children:[(0,R.jsx)(l,{}),(0,R.jsx)(`span`,{className:`sr-only`,children:`Schließen`})]})}),t[8]=o,t[9]=d);let p;return t[10]!==n||t[11]!==i||t[12]!==u||t[13]!==d?(p=(0,R.jsxs)(wc,{children:[c,(0,R.jsxs)(m,{"data-slot":`dialog-content`,className:u,...i,children:[n,d]})]}),t[10]=n,t[11]=i,t[12]=u,t[13]=d,t[14]=p):p=t[14],p}function Dc(e){let t=(0,z.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=s(`flex flex-col gap-2`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,R.jsx)(`div`,{"data-slot":`dialog-header`,className:i,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}function Oc(e){let t=(0,z.c)(14),n,r,i,a;t[0]===e?(n=t[1],r=t[2],i=t[3],a=t[4]):({className:r,showCloseButton:a,children:n,...i}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=i,t[4]=a);let o=a!==void 0&&a,c;t[5]===r?c=t[6]:(c=s(`-mx-4 -mb-4 flex flex-col-reverse gap-2 rounded-b-xl border-t bg-muted/50 p-4 sm:flex-row sm:justify-end`,r),t[5]=r,t[6]=c);let l;t[7]===o?l=t[8]:(l=o&&(0,R.jsx)(f,{asChild:!0,children:(0,R.jsx)(He,{variant:`outline`,children:`Schließen`})}),t[7]=o,t[8]=l);let u;return t[9]!==n||t[10]!==i||t[11]!==c||t[12]!==l?(u=(0,R.jsxs)(`div`,{"data-slot":`dialog-footer`,className:c,...i,children:[n,l]}),t[9]=n,t[10]=i,t[11]=c,t[12]=l,t[13]=u):u=t[13],u}function kc(e){let t=(0,z.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=s(`font-heading text-base leading-none font-medium`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,R.jsx)(h,{"data-slot":`dialog-title`,className:i,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}function Ac(e){let t=(0,z.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=s(`text-sm text-muted-foreground *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,R.jsx)(u,{"data-slot":`dialog-description`,className:i,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}var jc=o({Bestaetigen:()=>Mc});function Mc(e){let t=(0,z.c)(32),{offen:n,titel:r,text:i,knopf:a,neinKnopf:o,gefahr:s,gesperrt:c,onJa:l,onNein:u,children:d}=e,f=o===void 0?`Abbrechen`:o,p;t[0]===u?p=t[1]:(p=e=>!e&&u(),t[0]=u,t[1]=p);let m;t[2]===r?m=t[3]:(m=(0,R.jsx)(kc,{className:`pr-10 text-[19px] leading-snug font-semibold break-words`,children:r}),t[2]=r,t[3]=m);let h;t[4]===i?h=t[5]:(h=(0,R.jsx)(Ac,{className:`text-[15px] leading-relaxed text-text-2`,children:i}),t[4]=i,t[5]=h);let g;t[6]!==m||t[7]!==h?(g=(0,R.jsxs)(Dc,{children:[m,h]}),t[6]=m,t[7]=h,t[8]=g):g=t[8];let _;t[9]!==f||t[10]!==u?(_=(0,R.jsx)(He,{variant:`outline`,onClick:u,children:f}),t[9]=f,t[10]=u,t[11]=_):_=t[11];let v=s?`gefahr`:`default`,y=c||void 0,b;t[12]!==c||t[13]!==l?(b=()=>{c||l()},t[12]=c,t[13]=l,t[14]=b):b=t[14];let x;t[15]!==c||t[16]!==a||t[17]!==v||t[18]!==y||t[19]!==b?(x=(0,R.jsx)(He,{variant:v,disabled:c,"aria-busy":y,onClick:b,children:a}),t[15]=c,t[16]=a,t[17]=v,t[18]=y,t[19]=b,t[20]=x):x=t[20];let S;t[21]!==x||t[22]!==_?(S=(0,R.jsxs)(Oc,{className:`sticky bottom-0 mb-0 gap-2 bg-[#121722] sm:gap-2`,children:[_,x]}),t[21]=x,t[22]=_,t[23]=S):S=t[23];let C;t[24]!==d||t[25]!==S||t[26]!==g?(C=(0,R.jsxs)(Ec,{className:`max-h-[calc(100dvh-2rem)] overflow-y-auto border-white/10 bg-[#0e121a] pb-0 sm:max-w-lg`,children:[g,d,S]}),t[24]=d,t[25]=S,t[26]=g,t[27]=C):C=t[27];let w;return t[28]!==n||t[29]!==C||t[30]!==p?(w=(0,R.jsx)(Cc,{open:n,onOpenChange:p,children:C}),t[28]=n,t[29]=C,t[30]=p,t[31]=w):w=t[31],w}function Nc(e){let t=(0,z.c)(12),{titel:n,rechts:r,children:i,className:a,id:o,symbol:c}=e,l;t[0]===a?l=t[1]:(l=s(`flaeche flex min-w-0 flex-col gap-4 rounded-2xl p-5 sm:p-6`,a),t[0]=a,t[1]=l);let u;t[2]!==c||t[3]!==r||t[4]!==n?(u=(n||r)&&(0,R.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[n&&(0,R.jsxs)(`h2`,{className:`flex items-center gap-2.5 text-[17px] leading-tight font-semibold tracking-[0.005em] text-foreground`,children:[c&&(0,R.jsx)(c,{className:`size-[18px] text-text-3`,"aria-hidden":!0}),n]}),r]}),t[2]=c,t[3]=r,t[4]=n,t[5]=u):u=t[5];let d;return t[6]!==i||t[7]!==o||t[8]!==l||t[9]!==u||t[10]!==n?(d=(0,R.jsxs)(`section`,{id:o,"aria-label":n,className:l,children:[u,i]}),t[6]=i,t[7]=o,t[8]=l,t[9]=u,t[10]=n,t[11]=d):d=t[11],d}var Pc={lucy:`Lucy`,waechter:`Wächter`,wochenbericht:`Wochenbericht`,wartung:`Wartungsfenster`},Fc={offen:`offen`,laeuft:`läuft`,erledigt:`ausgeführt`,fehler:`gescheitert`,abgelehnt:`abgelehnt`,abgelaufen:`abgelaufen`,hinfaellig:`hatte sich erledigt`},Ic=e=>Pc[e]??e;function Lc(e,t=Date.now()){let n=Math.max(0,Math.round(e-t/1e3));return n>=3600?`gilt noch ${Math.floor(n/3600)} h`:`gilt noch ${Math.max(1,Math.round(n/60))} min`}function Rc(e){let t=e.antwort?e.antwort.wer===`oberflaeche`?`hier`:e.antwort.wer===`lucy`?`per Telegram`:e.antwort.wer:null,n=[Fc[e.status]??e.status];return t&&e.status!==`abgelaufen`&&n.push(t),e.nachgeprueft===`besteht`&&n.push(`der Hinweis blieb`),n.join(` · `)}function zc(e){let t=(0,z.c)(34),{r:n,gesperrt:r,onJa:i,onNein:a}=e,o=n.stufe===`dringend`&&`ring-1 ring-rot/40 ring-inset`,c;t[0]===o?c=t[1]:(c=s(`flaeche-innen flex flex-col gap-3 rounded-2xl p-4`,o),t[0]=o,t[1]=c);let l=n.nr,u;t[2]===n.von?u=t[3]:(u=Ic(n.von),t[2]=n.von,t[3]=u);let d;t[4]===n.zeit?d=t[5]:(d=M(n.zeit),t[4]=n.zeit,t[5]=d);let f;t[6]===n.ablauf?f=t[7]:(f=Lc(n.ablauf),t[6]=n.ablauf,t[7]=f);let p;t[8]!==n.nr||t[9]!==u||t[10]!==d||t[11]!==f?(p=(0,R.jsxs)(`span`,{className:`etikett text-[10.5px] text-text-3`,children:[`Rückfrage `,l,` · `,u,` · `,d,` · `,f]}),t[8]=n.nr,t[9]=u,t[10]=d,t[11]=f,t[12]=p):p=t[12];let m;t[13]===n.frage?m=t[14]:(m=(0,R.jsx)(`span`,{className:`text-[15px] font-semibold break-words`,children:n.frage}),t[13]=n.frage,t[14]=m);let h;t[15]===n.text?h=t[16]:(h=n.text&&(0,R.jsx)(`span`,{className:`text-sm break-words text-text-2`,children:n.text}),t[15]=n.text,t[16]=h);let g;t[17]!==p||t[18]!==m||t[19]!==h?(g=(0,R.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[p,m,h]}),t[17]=p,t[18]=m,t[19]=h,t[20]=g):g=t[20];let _;t[21]!==r||t[22]!==i?(_=(0,R.jsx)(He,{size:`sm`,disabled:r,onClick:i,children:`Ja, ausführen`}),t[21]=r,t[22]=i,t[23]=_):_=t[23];let v;t[24]!==r||t[25]!==a?(v=(0,R.jsx)(He,{variant:`outline`,size:`sm`,disabled:r,onClick:a,children:`Nein`}),t[24]=r,t[25]=a,t[26]=v):v=t[26];let y;t[27]!==_||t[28]!==v?(y=(0,R.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[_,v]}),t[27]=_,t[28]=v,t[29]=y):y=t[29];let b;return t[30]!==g||t[31]!==y||t[32]!==c?(b=(0,R.jsxs)(`li`,{className:c,children:[g,y]}),t[30]=g,t[31]=y,t[32]=c,t[33]=b):b=t[33],b}function Bc(e){let t=(0,z.c)(24),{leerText:n}=e,r=E(),i=me(),[a,o]=(0,I.useState)(null),s;t[0]===r.data?.offen?s=t[1]:(s=r.data?.offen??[],t[0]=r.data?.offen,t[1]=s);let c=s;if(c.length===0){let e;return t[2]===n?e=t[3]:(e=n?(0,R.jsx)(`p`,{className:`text-sm text-text-2`,children:n}):null,t[2]=n,t[3]=e),e}let l;if(t[4]!==i||t[5]!==c){let e;t[7]===i?e=t[8]:(e=e=>(0,R.jsx)(zc,{r:e,gesperrt:i.isPending,onJa:()=>o(e),onNein:()=>i.mutate({nr:e.nr,ja:!1})},e.nr),t[7]=i,t[8]=e),l=c.map(e),t[4]=i,t[5]=c,t[6]=l}else l=t[6];let u;t[9]===l?u=t[10]:(u=(0,R.jsx)(`ul`,{className:`m-0 grid list-none gap-3 p-0 md:grid-cols-2`,children:l}),t[9]=l,t[10]=u);let d=!!a,f=a?a.frage:``,p=a?`${a.text?`${a.text} `:``}Das führt genau diese Aktion aus — wie „ja ${a.nr}“ in Telegram.`:``,m;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(m=()=>o(null),t[11]=m):m=t[11];let h;t[12]!==i||t[13]!==a?(h=()=>{a&&i.mutate({nr:a.nr,ja:!0}),o(null)},t[12]=i,t[13]=a,t[14]=h):h=t[14];let g;t[15]!==i.isPending||t[16]!==d||t[17]!==f||t[18]!==p||t[19]!==h?(g=(0,R.jsx)(Mc,{offen:d,titel:f,text:p,knopf:`Ja, ausführen`,gesperrt:i.isPending,onNein:m,onJa:h}),t[15]=i.isPending,t[16]=d,t[17]=f,t[18]=p,t[19]=h,t[20]=g):g=t[20];let _;return t[21]!==u||t[22]!==g?(_=(0,R.jsxs)(R.Fragment,{children:[u,g]}),t[21]=u,t[22]=g,t[23]=_):_=t[23],_}function Vc(){let e=(0,z.c)(4),t=E().data?.offen.length??0;if(t===0)return null;let n=t===1?`Eine Rückfrage an dich`:`${t} Rückfragen an dich`,r,i;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,R.jsx)(`p`,{className:`-mt-2 text-[15px] text-text-2`,children:`Lucy wartet auf dein Ja. In Telegram reicht „ja“ mit der Nummer — oder hier ein Klick.`}),i=(0,R.jsx)(Bc,{}),e[0]=r,e[1]=i):(r=e[0],i=e[1]);let a;return e[2]===n?a=e[3]:(a=(0,R.jsxs)(Nc,{titel:n,symbol:Za,id:`rueckfragen`,children:[r,i]}),e[2]=n,e[3]=a),a}function Hc(){let e=(0,z.c)(8),t=E(),n,r,i;if(e[0]!==t.data?.zuletzt){i=Symbol.for(`react.early_return_sentinel`);bb0:{let a=(t.data?.zuletzt??[]).slice(0,8);if(a.length===0){let t;e[4]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,R.jsx)(`p`,{className:`text-sm text-text-3`,children:`Noch keine beantwortete Rückfrage.`}),e[4]=t):t=e[4],i=t;break bb0}n=`m-0 flex list-none flex-col p-0`,r=a.map(Uc)}e[0]=t.data?.zuletzt,e[1]=n,e[2]=r,e[3]=i}else n=e[1],r=e[2],i=e[3];if(i!==Symbol.for(`react.early_return_sentinel`))return i;let a;return e[5]!==n||e[6]!==r?(a=(0,R.jsx)(`ul`,{className:n,children:r}),e[5]=n,e[6]=r,e[7]=a):a=e[7],a}function Uc(e){return(0,R.jsxs)(`li`,{className:`flex flex-col gap-0.5 border-t border-white/[0.06] py-2 first:border-t-0`,children:[(0,R.jsx)(`span`,{className:`text-sm break-words`,children:e.frage}),(0,R.jsxs)(`span`,{className:`text-xs text-text-3`,children:[`Rückfrage `,e.nr,` · `,Ic(e.von),` · `,M(e.zeit),` · `,Rc(e),e.status===`fehler`&&e.ergebnis?` — ${e.ergebnis}`:``]})]},e.nr)}var Wc={ok:`var(--gruen)`,rot:`var(--rot)`,aus:`rgb(135 146 164 / 0.45)`},Gc={ok:`erreichbar`,rot:`antwortet nicht`,aus:`kein Stand`},Kc=90,qc=72,Jc=9,Yc=2*Math.PI*qc;function Xc(e){let t=(0,z.c)(32),{segmente:n,glut:r}=e,i=Math.max(n.length,1),a=Yc/i,o=i>1?14:0,s=Math.max(a-o,.5),c;t[0]===n?c=t[1]:(c=n.filter(Zc),t[0]=n,t[1]=c);let l=c.length,u=`drop-shadow(0 0 14px color-mix(in srgb, ${r} 40%, transparent))`,d;t[2]===u?d=t[3]:(d={filter:u},t[2]=u,t[3]=d);let f,p,m;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,R.jsx)(`g`,{className:`kreist`,children:(0,R.jsx)(`circle`,{cx:Kc,cy:Kc,r:86,fill:`none`,stroke:`rgb(255 255 255 / 0.13)`,strokeWidth:1,strokeDasharray:`1.2 5.6`})}),p=(0,R.jsx)(`circle`,{cx:Kc,cy:Kc,r:qc,fill:`none`,stroke:`rgb(255 255 255 / 0.05)`,strokeWidth:Jc}),m=(0,R.jsx)(`circle`,{cx:Kc,cy:Kc,r:58,fill:`none`,stroke:`rgb(255 255 255 / 0.06)`,strokeWidth:1}),t[4]=f,t[5]=p,t[6]=m):(f=t[4],p=t[5],m=t[6]);let h;if(t[7]!==s||t[8]!==o||t[9]!==n||t[10]!==a){let e;t[12]!==s||t[13]!==o||t[14]!==a?(e=(e,t)=>(0,R.jsx)(`circle`,{cx:Kc,cy:Kc,r:qc,fill:`none`,stroke:Wc[e.zustand],strokeWidth:Jc,strokeLinecap:`round`,strokeDasharray:`${s} ${Yc-s}`,strokeDashoffset:-(t*a+o/2),className:`ring-fuellt`,style:{"--i":t},children:(0,R.jsx)(`title`,{children:`${e.name}: ${Gc[e.zustand]}`})},e.id),t[12]=s,t[13]=o,t[14]=a,t[15]=e):e=t[15],h=n.map(e),t[7]=s,t[8]=o,t[9]=n,t[10]=a,t[11]=h}else h=t[11];let g;t[16]===h?g=t[17]:(g=(0,R.jsx)(`g`,{transform:`rotate(-90 ${Kc} ${Kc})`,children:h}),t[16]=h,t[17]=g);let _;t[18]!==d||t[19]!==g?(_=(0,R.jsxs)(`svg`,{viewBox:`0 0 180 180`,className:`size-full`,"aria-hidden":!0,style:d,children:[f,p,m,g]}),t[18]=d,t[19]=g,t[20]=_):_=t[20];let v;t[21]===n.length?v=t[22]:(v=(0,R.jsxs)(`span`,{className:`text-text-3`,children:[`/`,n.length]}),t[21]=n.length,t[22]=v);let y;t[23]!==l||t[24]!==v?(y=(0,R.jsxs)(`span`,{className:`font-anzeige text-[38px] leading-none font-semibold tabular-nums sm:text-[46px]`,children:[l,v]}),t[23]=l,t[24]=v,t[25]=y):y=t[25];let b;t[26]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,R.jsxs)(`span`,{className:`etikett mt-1.5 flex flex-col items-center text-[9.5px] leading-[1.35] text-text-3 sm:text-[10px]`,children:[(0,R.jsx)(`span`,{children:`Geräte`}),(0,R.jsx)(`span`,{children:`erreichbar`})]}),t[26]=b):b=t[26];let x;t[27]===y?x=t[28]:(x=(0,R.jsxs)(`div`,{className:`absolute inset-0 flex flex-col items-center justify-center`,children:[y,b]}),t[27]=y,t[28]=x);let S;return t[29]!==x||t[30]!==_?(S=(0,R.jsxs)(`div`,{className:`relative size-[132px] shrink-0 sm:size-[168px]`,children:[_,x]}),t[29]=x,t[30]=_,t[31]=S):S=t[31],S}function Zc(e){return e.zustand===`ok`}var Qc=new Set([`snapshot-anlegen`,`snapshot-loeschen`,`snapshot-zurueck`,`sicherung-loeschen`]),$c=e=>Qc.has(e.baustein),el={update:{chip:`vor Update`,text:`Rückweg vor einem Update`},knopf:{chip:`per Knopf`,text:`Hier per Knopf angelegt`},proxmox:{chip:`von Hand`,text:`Von Hand in Proxmox angelegt`}};function tl(e,t){return e===null?`Zeitpunkt unbekannt`:de(new Date(e*1e3).toISOString(),new Date(t*1e3))}function nl(e,t){return e===null?``:M(e,t*1e3)}function rl(e){return e===null||e<=0?null:e<1e9?`${Math.round(e/1e6)} MB`:`${(e/1e9).toFixed(1).replace(`.`,`,`)} GB`}function il(e,t){let n=e.startsWith(`${t}: `)?e.slice(t.length+2):e;return n.charAt(0).toUpperCase()+n.slice(1)}function al(e){let t=[`${e.snapshots} ${e.snapshots===1?`Snapshot`:`Snapshots`}`];return e.sicherungen>0&&t.push(`${e.sicherungen} ${e.sicherungen===1?`Sicherung`:`Sicherungen`}`),t.join(` · `)}var ol=(e,t=1)=>e.toFixed(t).replace(`.`,`,`);function sl(e){return e==null?`–`:e>=0xe8d4a51000?`${ol(e/0xe8d4a51000)} TB`:e>=1e10?`${Math.round(e/1e9)} GB`:`${ol(e/1e9)} GB`}function cl(e){return e?/^\s*\d{1,2}:\d{2}\s*$/.test(e)?`täglich ${e.trim()}`:`Zeitplan „${e}“`:`ohne Zeitplan`}function ll(e){return e.jobs.length===0?`Kein Sicherungsauftrag in Proxmox`:e.jobs.map(e=>`${cl(e.zeitplan)} auf ${e.speicher??`?`}`).join(`, `)}var ul={ok:`in Ordnung`,gelb:`wird knapp`,rot:`fast voll`};function dl(e){if(e.aktion)return null;let t=e.grund??``,n=t.match(/erst ab (\d{2}\.\d{2}\.(?:\d{4})? ?\d{2}:\d{2})/)?.[1];return n?`ab ${n}`:/eigene Oberfläche|eigenen Oberfläche|eigenes Update/i.test(t)?`über die App`:null}function fl(e){let t=e.bausteine.filter(e=>e.zustand===`neu`);if(t.length===0)return null;let n=[],r=No(e);if(r?.zustand===`neu`){let e=dl(r);n.push(`App → ${r.verfuegbar??`neu`}${e?` (${e})`:``}`)}let i=Po(e);i?.zustand===`neu`&&n.push(`${i.kurz||(i.id===`docker`?`Images`:`Pakete`)}${H(i)}`);for(let e of t)e!==r&&e!==i&&n.push(`${e.name}${e.kurz?` · ${e.kurz}`:``}`);return{id:e.id,name:e.name,teile:n,knopf:t.some(e=>!!e.aktion)}}function pl(e){return e.getrennt.length>0?{stufe:`rot`,titel:`Verbindung weg`,text:`${e.getrennt.join(` und `)} antwortet nicht.`}:e.stumm.length>0||e.hinweiseRot>0?{stufe:`rot`,titel:`Störung`,text:`${e.stumm.length>0?`${e.stumm.join(`, `)} antwortet nicht`:`Ein roter Hinweis wartet`}.`}:e.hinweise>0?{stufe:`gelb`,titel:e.hinweise===1?`1 Hinweis`:`${e.hinweise} Hinweise`,text:`Bei Gelegenheit ansehen.`}:e.updates>0?{stufe:`info`,titel:`Alles läuft`,text:`${e.updates} ${e.updates===1?`Update steht`:`Updates stehen`} bereit.`}:{stufe:`ok`,titel:`Alles läuft`,text:`Keine Hinweise, keine offenen Updates.`}}var ml={ok:{glut:`var(--gruen)`,titel:`text-foreground`,symbol:`text-gruen`,Symbol:_a},info:{glut:`var(--gruen)`,titel:`text-foreground`,symbol:`text-gruen`,Symbol:_a},gelb:{glut:`var(--bernstein)`,titel:`text-bernstein`,symbol:`text-bernstein`,Symbol:ha},rot:{glut:`var(--rot)`,titel:`text-rot-text`,symbol:`text-rot`,Symbol:So}},hl={online:{punkt:`ok`,text:`online`},verbinde:{punkt:`warn`,text:`verbinde`},getrennt:{punkt:`rot`,text:`getrennt`},fehlt:{punkt:`aus`,text:`nicht eingerichtet`}},gl={box:{name:`KI-Box`,rand:`[--rand:color-mix(in_srgb,var(--box)_32%,transparent)]`,text:`text-box-text`,pille:`bg-box/10 text-box-text ring-box/30 hover:bg-box/20`,glut:`var(--box)`,cockpit:`/box`},homelab:{name:`Homelab`,rand:`[--rand:color-mix(in_srgb,var(--lab)_32%,transparent)]`,text:`text-lab-text`,pille:`bg-lab/10 text-lab-text ring-lab/30 hover:bg-lab/20`,glut:`var(--lab)`,cockpit:`/homelab`}},_l=new Intl.DateTimeFormat(`de-DE`,{hour:`2-digit`,minute:`2-digit`,timeZone:`Europe/Berlin`}),W=e=>({"--i":e}),vl={cyan:{kachel:`bg-cyan/10 text-cyan ring-cyan/25`,wert:`text-cyan`},gruen:{kachel:`bg-gruen/10 text-gruen ring-gruen/25`,wert:`text-gruen`},bernstein:{kachel:`bg-bernstein/10 text-bernstein ring-bernstein/30`,wert:`text-bernstein`},rot:{kachel:`bg-rot/12 text-rot ring-rot/35`,wert:`text-rot-text`},grau:{kachel:`bg-white/[0.05] text-text-2 ring-white/12`,wert:`text-foreground`}};function yl(e){let t=(0,z.c)(23),{Icon:n,label:r,wert:i,art:a,children:o}=e,c=vl[a],l;t[0]===c.kachel?l=t[1]:(l=s(`flex size-10 shrink-0 items-center justify-center rounded-xl ring-1 ring-inset`,c.kachel),t[0]=c.kachel,t[1]=l);let u;t[2]===n?u=t[3]:(u=(0,R.jsx)(n,{className:`size-[18px]`}),t[2]=n,t[3]=u);let d;t[4]!==l||t[5]!==u?(d=(0,R.jsx)(`span`,{"aria-hidden":!0,className:l,children:u}),t[4]=l,t[5]=u,t[6]=d):d=t[6];let f;t[7]===r?f=t[8]:(f=(0,R.jsx)(`span`,{className:`etikett text-[10.5px] text-text-3`,children:r}),t[7]=r,t[8]=f);let p;t[9]===o?p=t[10]:(p=(0,R.jsx)(`span`,{className:`truncate text-[13px] text-text-2`,children:o}),t[9]=o,t[10]=p);let m;t[11]!==f||t[12]!==p?(m=(0,R.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col gap-0.5`,children:[f,p]}),t[11]=f,t[12]=p,t[13]=m):m=t[13];let h;t[14]===c.wert?h=t[15]:(h=s(`font-anzeige text-[30px] leading-none font-semibold tabular-nums`,c.wert),t[14]=c.wert,t[15]=h);let g;t[16]!==h||t[17]!==i?(g=(0,R.jsx)(`span`,{className:h,children:i}),t[16]=h,t[17]=i,t[18]=g):g=t[18];let _;return t[19]!==d||t[20]!==m||t[21]!==g?(_=(0,R.jsxs)(`div`,{className:`flaeche-innen flex min-w-0 items-center gap-3.5 rounded-2xl px-4 py-3`,children:[d,m,g]}),t[19]=d,t[20]=m,t[21]=g,t[22]=_):_=t[22],_}function bl(e){let t=(0,z.c)(12),{bereich:n,verbindung:r}=e,i=gl[n],a=hl[r],o=i.cockpit,c;t[0]===i.pille?c=t[1]:(c=s(`inline-flex h-8 items-center gap-2 rounded-full px-3 text-[13px] ring-1 ring-inset transition-colors`,i.pille),t[0]=i.pille,t[1]=c);let l=js[a.punkt],u;t[2]===l?u=t[3]:(u=s(`size-2 rounded-full`,l),t[2]=l,t[3]=u);let d;t[4]===u?d=t[5]:(d=(0,R.jsx)(`span`,{"aria-hidden":!0,className:u}),t[4]=u,t[5]=d);let f;return t[6]!==i.cockpit||t[7]!==i.name||t[8]!==c||t[9]!==d||t[10]!==a.text?(f=(0,R.jsxs)(wi,{to:o,className:c,children:[d,i.name,` `,a.text]}),t[6]=i.cockpit,t[7]=i.name,t[8]=c,t[9]=d,t[10]=a.text,t[11]=f):f=t[11],f}function xl(e){let t=(0,z.c)(22),{bereich:n,titel:r,unterzeile:i,werte:a,basis:o}=e,c=gl[n],l;t[0]===c.text?l=t[1]:(l=s(`etikett text-[11.5px] tracking-[0.16em]`,c.text),t[0]=c.text,t[1]=l);let u;t[2]!==l||t[3]!==r?(u=(0,R.jsx)(`h3`,{className:l,children:r}),t[2]=l,t[3]=r,t[4]=u):u=t[4];let d;t[5]===i?d=t[6]:(d=i&&(0,R.jsx)(`span`,{className:`truncate text-[12.5px] text-text-3`,children:i}),t[5]=i,t[6]=d);let f;t[7]!==u||t[8]!==d?(f=(0,R.jsxs)(`div`,{className:`flex items-baseline justify-between gap-3 px-0.5`,children:[u,d]}),t[7]=u,t[8]=d,t[9]=f):f=t[9];let p;if(t[10]!==o||t[11]!==n||t[12]!==a){let e;t[14]!==o||t[15]!==n?(e=(e,t)=>(0,R.jsx)(Sc,{label:e.label,wert:e.wert,einheit:e.einheit,punkte:e.punkte,bereich:n,grenzen:[e.gelb,e.rot],zustand:Zs(e.wert??null,e.gelb,e.rot),zeitraumText:`letzte Stunde`,i:o+t,hinweis:e.hinweis},e.label),t[14]=o,t[15]=n,t[16]=e):e=t[16],p=a.map(e),t[10]=o,t[11]=n,t[12]=a,t[13]=p}else p=t[13];let m;t[17]===p?m=t[18]:(m=(0,R.jsx)(`div`,{className:`grid grid-cols-2 gap-2 sm:grid-cols-4`,children:p}),t[17]=p,t[18]=m);let h;return t[19]!==f||t[20]!==m?(h=(0,R.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-3`,children:[f,m]}),t[19]=f,t[20]=m,t[21]=h):h=t[21],h}function Sl(e){let t=(0,z.c)(40),{homelabAktiv:n}=e,r=pe(),i=N(`1h`),a=A(),o=ve(`1h`,n),s=i.data?.reihen,c=r.data?.box,l=a?.ram??(c?.ram_used&&c.ram_total?c.ram_used/c.ram_total*100:null),u;if(t[0]!==c||t[1]!==n||t[2]!==o.data?.geraete||t[3]!==a?.cpu||t[4]!==a?.disk||t[5]!==a?.temp_cpu||t[6]!==i.data?.aktuell||t[7]!==i.data?.prognose?.platte||t[8]!==s?.cpu||t[9]!==s?.platte||t[10]!==s?.ram||t[11]!==s?.temp_cpu||t[12]!==l){let e=o.data?.geraete.find(Cl),r;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(r=W(1),t[14]=r):r=t[14];let d;t[15]===c?d=t[16]:(d=c?.uptime_s?`läuft seit ${tc(c.uptime_s)}`:null,t[15]=c,t[16]=d);let f=a?.cpu??i.data?.aktuell.cpu,p=s?.cpu,m;t[17]!==f||t[18]!==p?(m={label:`CPU`,wert:f,einheit:`prozent`,punkte:p,gelb:85,rot:95},t[17]=f,t[18]=p,t[19]=m):m=t[19];let h=s?.ram,g;t[20]!==l||t[21]!==h?(g={label:`Speicher`,wert:l,einheit:`prozent`,punkte:h,gelb:85,rot:95},t[20]=l,t[21]=h,t[22]=g):g=t[22];let _=a?.temp_cpu??c?.temp_cpu,v=s?.temp_cpu,y;t[23]!==v||t[24]!==_?(y={label:`Temp.`,wert:_,einheit:`grad`,punkte:v,gelb:80,rot:90},t[23]=v,t[24]=_,t[25]=y):y=t[25];let b=a?.disk??c?.platte?.percent,x=s?.platte,S=i.data?.prognose?.platte??c?.platte?.vorhersage,C;t[26]===S?C=t[27]:(C=sc(S),t[26]=S,t[27]=C);let w;t[28]!==b||t[29]!==x||t[30]!==C?(w={label:`Platte`,wert:b,einheit:`prozent`,punkte:x,gelb:80,rot:90,hinweis:C},t[28]=b,t[29]=x,t[30]=C,t[31]=w):w=t[31];let T;t[32]!==y||t[33]!==w||t[34]!==m||t[35]!==g?(T=[m,g,y,w],t[32]=y,t[33]=w,t[34]=m,t[35]=g,t[36]=T):T=t[36];let E;t[37]!==T||t[38]!==d?(E=(0,R.jsx)(xl,{bereich:`box`,titel:`KI-Box`,basis:0,unterzeile:d,werte:T}),t[37]=T,t[38]=d,t[39]=E):E=t[39],u=(0,R.jsxs)(`section`,{"aria-label":`Instrumente`,className:`auftauchen flaeche grid gap-6 rounded-3xl p-5 sm:p-6 xl:grid-cols-2 xl:gap-8`,style:r,children:[E,n?(0,R.jsx)(xl,{bereich:`homelab`,titel:`Proxmox-Host`,basis:4,unterzeile:e?.aktuell.uptime_s?`läuft seit ${tc(e.aktuell.uptime_s)}`:null,werte:[{label:`CPU`,wert:e?.aktuell.cpu,einheit:`prozent`,punkte:e?.reihen.cpu,gelb:85,rot:95},{label:`Speicher`,wert:e?.aktuell.ram,einheit:`prozent`,punkte:e?.reihen.ram,gelb:90,rot:95},{label:`Temp.`,wert:e?.aktuell.temp_cpu,einheit:`grad`,punkte:e?.reihen.temp_cpu,gelb:80,rot:90},{label:`Platte`,wert:e?.aktuell.platte,einheit:`prozent`,punkte:e?.reihen.platte,gelb:80,rot:90,hinweis:sc(e?.prognose?.platte)}]}):(0,R.jsx)(`p`,{className:`self-center text-sm text-text-2`,children:`Der Homelab-Teil antwortet gerade nicht; hier steht nichts Veraltetes.`})]}),t[0]=c,t[1]=n,t[2]=o.data?.geraete,t[3]=a?.cpu,t[4]=a?.disk,t[5]=a?.temp_cpu,t[6]=i.data?.aktuell,t[7]=i.data?.prognose?.platte,t[8]=s?.cpu,t[9]=s?.platte,t[10]=s?.ram,t[11]=s?.temp_cpu,t[12]=l,t[13]=u}else u=t[13];return u}function Cl(e){return e.art===`proxmox-host`}function wl(e){let t=(0,z.c)(5),{titel:n,rechts:r}=e,i;t[0]===n?i=t[1]:(i=(0,R.jsx)(`h3`,{className:`etikett text-[11.5px] tracking-[0.16em] text-text-3`,children:n}),t[0]=n,t[1]=i);let a;return t[2]!==r||t[3]!==i?(a=(0,R.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[i,r]}),t[2]=r,t[3]=i,t[4]=a):a=t[4],a}function Tl(e){let t=(0,z.c)(42),{bereich:n,verbindung:r,unterzeile:i,i:a,children:o}=e,c=gl[n],l=hl[r],u=n===`box`?`ki-box`:`proxmox-host`,d;t[0]!==c.name||t[1]!==u?(d=Fs({art:u,name:c.name}),t[0]=c.name,t[1]=u,t[2]=d):d=t[2];let f;t[3]===d?f=t[4]:(f={...d,logo:void 0},t[3]=d,t[4]=f);let p=f,m=c.name,h;t[5]===c.rand?h=t[6]:(h=s(`auftauchen flaeche relative flex min-w-0 flex-col overflow-hidden rounded-3xl`,c.rand),t[5]=c.rand,t[6]=h);let g;t[7]===a?g=t[8]:(g=W(a),t[7]=a,t[8]=g);let _=`radial-gradient(closest-side, color-mix(in srgb, ${c.glut} 20%, transparent), transparent)`,v;t[9]===_?v=t[10]:(v=(0,R.jsx)(`div`,{"aria-hidden":!0,className:`pointer-events-none absolute -top-44 -left-36 size-[460px] rounded-full`,style:{background:_}}),t[9]=_,t[10]=v);let y=c.cockpit,b;t[11]===p?b=t[12]:(b=(0,R.jsx)(Ws,{bild:p,groesse:`lg`,leuchtet:!0}),t[11]=p,t[12]=b);let x;t[13]===c.name?x=t[14]:(x=(0,R.jsx)(`span`,{className:`text-[21px] leading-none font-semibold`,children:c.name}),t[13]=c.name,t[14]=x);let S=js[l.punkt],C;t[15]===S?C=t[16]:(C=s(`size-2 shrink-0 rounded-full`,S),t[15]=S,t[16]=C);let w;t[17]===C?w=t[18]:(w=(0,R.jsx)(`span`,{"aria-hidden":!0,className:C}),t[17]=C,t[18]=w);let T;t[19]!==w||t[20]!==i||t[21]!==l.text?(T=(0,R.jsxs)(`span`,{className:`flex items-center gap-2 truncate text-[13px] text-text-3`,children:[w,l.text,` · `,i]}),t[19]=w,t[20]=i,t[21]=l.text,t[22]=T):T=t[22];let E;t[23]!==x||t[24]!==T?(E=(0,R.jsxs)(`span`,{className:`flex min-w-0 flex-col gap-1`,children:[x,T]}),t[23]=x,t[24]=T,t[25]=E):E=t[25];let D;t[26]!==b||t[27]!==E?(D=(0,R.jsxs)(`span`,{className:`flex min-w-0 items-center gap-3.5`,children:[b,E]}),t[26]=b,t[27]=E,t[28]=D):D=t[28];let O;t[29]===Symbol.for(`react.memo_cache_sentinel`)?(O=(0,R.jsxs)(`span`,{className:`flex shrink-0 items-center gap-1.5 rounded-full px-3 py-1.5 text-[13px] text-text-2 ring-1 ring-white/10 transition-colors ring-inset group-hover:bg-white/[0.06] group-hover:text-foreground`,children:[`Cockpit `,(0,R.jsx)(ra,{className:`size-3.5 transition-transform group-hover:translate-x-0.5`,"aria-hidden":!0})]}),t[29]=O):O=t[29];let k;t[30]!==c.cockpit||t[31]!==D?(k=(0,R.jsxs)(wi,{to:y,className:`group relative flex items-center justify-between gap-3 px-5 pt-5 pb-4 sm:px-6 sm:pt-6`,children:[D,O]}),t[30]=c.cockpit,t[31]=D,t[32]=k):k=t[32];let A;t[33]===o?A=t[34]:(A=(0,R.jsx)(`div`,{className:`relative flex flex-1 flex-col gap-6 px-5 pb-6 sm:px-6`,children:o}),t[33]=o,t[34]=A);let ee;return t[35]!==c.name||t[36]!==k||t[37]!==A||t[38]!==h||t[39]!==g||t[40]!==v?(ee=(0,R.jsxs)(`section`,{"aria-label":m,className:h,style:g,children:[v,k,A]}),t[35]=c.name,t[36]=k,t[37]=A,t[38]=h,t[39]=g,t[40]=v,t[41]=ee):ee=t[41],ee}function El(e){let t=(0,z.c)(12),{hinweise:n,ziel:r}=e,i,a,o,c;if(t[0]!==n||t[1]!==r){c=Symbol.for(`react.early_return_sentinel`);bb0:{let e=n.filter(Ol);if(e.length===0){c=null;break bb0}let l=[...e].sort(Dl);i=`Hinweise`,a=`m-0 flex list-none flex-col gap-1.5 p-0`;let u;t[6]===r?u=t[7]:(u=e=>{let t=e.stufe===`rot`,n=t?So:ha;return(0,R.jsx)(`li`,{children:(0,R.jsxs)(wi,{to:r,className:s(`flex items-start gap-2.5 rounded-xl px-3 py-2.5 text-[14px] ring-1 ring-inset transition-colors`,t?`bg-rot/10 text-rot-text ring-rot/35 hover:bg-rot/15`:`bg-bernstein/[0.08] text-bernstein ring-bernstein/30 hover:bg-bernstein/[0.13]`),children:[(0,R.jsx)(n,{className:`mt-0.5 size-4 shrink-0`,"aria-hidden":!0}),(0,R.jsx)(`span`,{className:`min-w-0 flex-1`,children:e.titel}),(0,R.jsx)(`span`,{className:`etikett shrink-0 pt-0.5 text-[10px] opacity-80`,children:t?`Störung`:`Hinweis`})]})},e.id)},t[6]=r,t[7]=u),o=l.slice(0,3).map(u)}t[0]=n,t[1]=r,t[2]=i,t[3]=a,t[4]=o,t[5]=c}else i=t[2],a=t[3],o=t[4],c=t[5];if(c!==Symbol.for(`react.early_return_sentinel`))return c;let l;return t[8]!==i||t[9]!==a||t[10]!==o?(l=(0,R.jsx)(`ul`,{"aria-label":i,className:a,children:o}),t[8]=i,t[9]=a,t[10]=o,t[11]=l):l=t[11],l}function Dl(e,t){return Number(t.stufe===`rot`)-Number(e.stufe===`rot`)}function Ol(e){return e.zustand!==`stumm`}var kl=e=>/\((ab |über die App)/.test(e);function Al(e){let t=(0,z.c)(27),{to:n,bild:r,name:i,unter:a,punkt:o,zustandText:c,rechts:l,updates:u,knopf:d}=e,f;t[0]===u?f=t[1]:(f=u===void 0?[]:u,t[0]=u,t[1]=f);let p=f,m=d!==void 0&&d,h;t[2]!==r||t[3]!==o?(h=(0,R.jsx)(Ws,{bild:r,punkt:o}),t[2]=r,t[3]=o,t[4]=h):h=t[4];let g;t[5]!==l||t[6]!==c?(g=c&&!l&&(0,R.jsxs)(`span`,{className:`sr-only`,children:[`, `,c]}),t[5]=l,t[6]=c,t[7]=g):g=t[7];let _;t[8]!==i||t[9]!==g?(_=(0,R.jsxs)(`span`,{className:`truncate text-[14.5px] leading-snug font-medium`,children:[i,g]}),t[8]=i,t[9]=g,t[10]=_):_=t[10];let v;t[11]===l?v=t[12]:(v=l&&(0,R.jsx)(`span`,{className:`shrink-0 text-[12px]`,children:l}),t[11]=l,t[12]=v);let y;t[13]!==_||t[14]!==v?(y=(0,R.jsxs)(`span`,{className:`flex min-w-0 items-baseline justify-between gap-2`,children:[_,v]}),t[13]=_,t[14]=v,t[15]=y):y=t[15];let b;t[16]!==m||t[17]!==a||t[18]!==p?(b=p.length>0?(0,R.jsx)(`span`,{className:`flex min-w-0 flex-wrap gap-x-2 text-[12.5px] leading-snug`,children:p.map(e=>(0,R.jsxs)(`span`,{className:s(`truncate`,m&&!kl(e)?`text-cyan-text`:`text-text-3`),children:[m&&!kl(e)&&(0,R.jsx)(ro,{className:`mr-1 inline size-3 -translate-y-px`,"aria-hidden":!0}),e]},e))}):(0,R.jsx)(`span`,{className:`truncate text-[12.5px] leading-snug text-text-3`,children:a}),t[16]=m,t[17]=a,t[18]=p,t[19]=b):b=t[19];let x;t[20]!==y||t[21]!==b?(x=(0,R.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col gap-0.5`,children:[y,b]}),t[20]=y,t[21]=b,t[22]=x):x=t[22];let S;return t[23]!==x||t[24]!==h||t[25]!==n?(S=(0,R.jsxs)(wi,{to:n,className:`flaeche-innen group flex h-full min-w-0 items-center gap-3 rounded-xl px-3 py-2.5 transition-colors hover:border-white/20 hover:bg-white/[0.05]`,children:[h,x]}),t[23]=x,t[24]=h,t[25]=n,t[26]=S):S=t[26],S}var jl={ok:`ok`,aus:`aus`,warn:`warn`,info:`info`,fehler:`rot`};function Ml(e){return e.zustand===`neu`?{updates:[e.kurz||(e.verfuegbar?`→ ${e.verfuegbar}`:`neu`)],unter:``}:e.zustand===`festgehalten`?{updates:[],unter:`${e.installiert??`–`} · festgehalten`}:{updates:[],unter:e.installiert??`–`}}function Nl(e){let t=(0,z.c)(6),{eintraege:n}=e;if(n.length===0){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,R.jsx)(`p`,{className:`text-sm text-text-3`,children:`Nichts geplant.`}),t[0]=e):e=t[0],e}let r;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,R.jsx)(`span`,{"aria-hidden":!0,className:`absolute top-3 bottom-3 left-[5px] w-px bg-gradient-to-b from-white/20 to-white/0`}),t[1]=r):r=t[1];let i;t[2]===n?i=t[3]:(i=n.map(Pl),t[2]=n,t[3]=i);let a;return t[4]===i?a=t[5]:(a=(0,R.jsxs)(`ol`,{className:`relative m-0 flex list-none flex-col p-0`,children:[r,i]}),t[4]=i,t[5]=a),a}function Pl(e){let[t,n]=Fl(de(e.zeit)),r=/update/i.test(e.titel);return(0,R.jsxs)(`li`,{className:`relative grid grid-cols-[11px_minmax(0,1fr)_auto] items-center gap-x-3 py-1.5`,children:[(0,R.jsx)(`span`,{"aria-hidden":!0,className:s(`size-[11px] rounded-full ring-[3px] ring-[#0d1119]`,r?`bg-cyan`:`bg-white/25`)}),(0,R.jsx)(`span`,{className:`truncate text-[14.5px]`,children:e.titel}),(0,R.jsxs)(`span`,{className:`ziffern text-[12.5px] whitespace-nowrap text-text-3`,children:[t&&(0,R.jsx)(`span`,{className:`etikett mr-1.5 text-[10px] tracking-[0.1em]`,children:t}),n]})]},`${e.titel}-${e.zeit}`)}function Fl(e){let t=e.match(/^(.*) (\d{2}:\d{2})$/);return t?[t[1].toLowerCase(),t[2]]:[``,e]}function Il(e){let t=(0,z.c)(85),{verbindung:n}=e,r=pe(),i=ce(),a=S(),o,s,c,l,u,d,f,p,m,h,g,_;if(t[0]!==a.data?.models||t[1]!==a.data?.running||t[2]!==r.data||t[3]!==n||t[4]!==i.data?.ziele){let e=i.data?.ziele.find(Bl)?.bausteine??[],v=e.filter(zl),y,b,x,S;if(t[17]!==a.data?.models||t[18]!==a.data?.running||t[19]!==r.data||t[20]!==n){let e=a.data?.models??[],i;t[32]===a.data?.running?i=t[33]:(i=a.data?.running??[],t[32]=a.data?.running,t[33]=i);let c=i,l=[`hirn`,`coder`].map(t=>({rolle:t,m:e.find(e=>C(e)===t)})),u;t[34]===r.data?.lampen?u=t[35]:(u=r.data?.lampen??[],t[34]=r.data?.lampen,t[35]=u);let d=u,f;t[36]===d?f=t[37]:(f=e=>d.find(t=>t.id===e),t[36]=d,t[37]=f),s=f,o=Tl,p=`box`,m=n,h=2,t[38]===r.data?g=t[39]:(g=r.data?.box.ram_total?`${Math.round(r.data.box.ram_total/1073741824)} GB gemeinsamer Speicher`:`Strix Halo`,t[38]=r.data,t[39]=g);let v;t[40]===r.data?.hinweise?v=t[41]:(v=r.data?.hinweise??[],t[40]=r.data?.hinweise,t[41]=v),t[42]===v?_=t[43]:(_=(0,R.jsx)(El,{hinweise:v,ziel:`/box`}),t[42]=v,t[43]=_),x=`flex flex-col gap-2.5`,t[44]===c.length?S=t[45]:(S=(0,R.jsx)(wl,{titel:`Modelle`,rechts:(0,R.jsxs)(`span`,{className:`text-[13px] text-text-3`,children:[c.length,` geladen`]})}),t[44]=c.length,t[45]=S),y=`m-0 grid list-none grid-cols-1 gap-2 p-0 sm:grid-cols-2`,b=l.map(e=>{let{rolle:t,m:n}=e,r=!!n&&c.includes(n.name);return(0,R.jsx)(`li`,{children:(0,R.jsx)(Al,{to:`/box/modelle`,bild:zs(t),name:t===`hirn`?`Hirn`:`Coder`,unter:n?.name??`nicht belegt`,punkt:r?`ok`:`aus`,rechts:(0,R.jsx)(`span`,{className:r?`text-gruen-text`:`text-text-3`,children:r?`geladen`:`auf Abruf`})})},t)}),t[17]=a.data?.models,t[18]=a.data?.running,t[19]=r.data,t[20]=n,t[21]=o,t[22]=s,t[23]=y,t[24]=b,t[25]=x,t[26]=S,t[27]=p,t[28]=m,t[29]=h,t[30]=g,t[31]=_}else o=t[21],s=t[22],y=t[23],b=t[24],x=t[25],S=t[26],p=t[27],m=t[28],h=t[29],g=t[30],_=t[31];let w;t[46]!==y||t[47]!==b?(w=(0,R.jsx)(`ul`,{className:y,children:b}),t[46]=y,t[47]=b,t[48]=w):w=t[48],t[49]!==x||t[50]!==S||t[51]!==w?(l=(0,R.jsxs)(`div`,{className:x,children:[S,w]}),t[49]=x,t[50]=S,t[51]=w,t[52]=l):l=t[52],d=`flex flex-col gap-2.5`;let T=v.length?(0,R.jsxs)(Os,{art:`cyan`,children:[v.length,` bereit`]}):(0,R.jsx)(Os,{children:`aktuell`});t[53]===T?f=t[54]:(f=(0,R.jsx)(wl,{titel:`Bausteine`,rechts:T}),t[53]=T,t[54]=f),c=`m-0 grid list-none grid-cols-1 gap-2 p-0 sm:grid-cols-2`;let E;t[55]===s?E=t[56]:(E=e=>{let t=Ml(e),n=s(e.id===`engine`?`motor`:e.id);return(0,R.jsx)(`li`,{children:(0,R.jsx)(Al,{to:`/box/updates`,bild:zs(e.id),name:e.name.replace(/ \(llama\.cpp\)$/,``),unter:t.unter,updates:t.updates,knopf:!!e.aktion,punkt:n?jl[n.zustand]:null,zustandText:n?.wert})},e.id)},t[55]=s,t[56]=E),u=e.map(E),t[0]=a.data?.models,t[1]=a.data?.running,t[2]=r.data,t[3]=n,t[4]=i.data?.ziele,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,t[15]=g,t[16]=_}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],g=t[15],_=t[16];let v;t[57]!==c||t[58]!==u?(v=(0,R.jsx)(`ul`,{className:c,children:u}),t[57]=c,t[58]=u,t[59]=v):v=t[59];let y;t[60]!==v||t[61]!==d||t[62]!==f?(y=(0,R.jsxs)(`div`,{className:d,children:[f,v]}),t[60]=v,t[61]=d,t[62]=f,t[63]=y):y=t[63];let b;t[64]===s?b=t[65]:(b=(0,R.jsx)(wl,{titel:`Als Nächstes`,rechts:[`jobs`,`sicherung`].map(e=>s(e)).filter(Rl).map(Ll)}),t[64]=s,t[65]=b);let x;t[66]===r.data?.flugplan.geplant?x=t[67]:(x=r.data?.flugplan.geplant??[],t[66]=r.data?.flugplan.geplant,t[67]=x);let w;t[68]===x?w=t[69]:(w=x.slice(0,4),t[68]=x,t[69]=w);let T;t[70]===w?T=t[71]:(T=(0,R.jsx)(Nl,{eintraege:w}),t[70]=w,t[71]=T);let E;t[72]!==b||t[73]!==T?(E=(0,R.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[b,T]}),t[72]=b,t[73]=T,t[74]=E):E=t[74];let D;return t[75]!==o||t[76]!==l||t[77]!==y||t[78]!==E||t[79]!==p||t[80]!==m||t[81]!==h||t[82]!==g||t[83]!==_?(D=(0,R.jsxs)(o,{bereich:p,verbindung:m,i:h,unterzeile:g,children:[_,l,y,E]}),t[75]=o,t[76]=l,t[77]=y,t[78]=E,t[79]=p,t[80]=m,t[81]=h,t[82]=g,t[83]=_,t[84]=D):D=t[84],D}function Ll(e){return(0,R.jsxs)(`span`,{className:`hidden items-center gap-1.5 text-[12.5px] text-text-3 sm:flex`,children:[(0,R.jsx)(`span`,{"aria-hidden":!0,className:s(`size-1.5 rounded-full`,js[jl[e.zustand]])}),e.label,` `,e.wert]},e.id)}function Rl(e){return!!e}function zl(e){return e.zustand===`neu`}function Bl(e){return e.art===`ki-box`}var Vl={ok:`bg-lab`,gelb:`bg-bernstein`,rot:`bg-rot`,keine:`bg-text-3`};function Hl(e){let t=(0,z.c)(31),{speicher:n}=e;if(!n)return null;let r;t[0]===n.pools?r=t[1]:(r=n.pools.find(Wl)??n.pools[0],t[0]=n.pools,t[1]=r);let i=r,a=n.nas[0],o=n.sicherungen,s;if(t[2]!==a||t[3]!==i||t[4]!==o.stufe||t[5]!==o.zuletzt){if(s=[],i){let e=i.anteil,n;t[7]===i.anteil?n=t[8]:(n=Math.round(i.anteil*100),t[7]=i.anteil,t[8]=n);let r;t[9]===i.frei?r=t[10]:(r=sl(i.frei),t[9]=i.frei,t[10]=r);let a=`${n} % · ${r} frei`,o;t[11]!==i.anteil||t[12]!==i.stufe||t[13]!==a?(o={label:`Speicherpool`,anteil:e,text:a,stufe:i.stufe},t[11]=i.anteil,t[12]=i.stufe,t[13]=a,t[14]=o):o=t[14],s.push(o)}if(a){let e=a.gesamt!=null&&a.belegt!=null?a.gesamt-a.belegt:null,n;t[15]!==e||t[16]!==a.anteil||t[17]!==a.problem?(n=a.anteil==null?a.problem??`kein Stand`:`${Math.round(a.anteil*100)} % · ${sl(e)} frei`,t[15]=e,t[16]=a.anteil,t[17]=a.problem,t[18]=n):n=t[18];let r;t[19]!==a.anteil||t[20]!==a.stufe||t[21]!==n?(r={label:`NAS`,anteil:a.anteil,stufe:a.stufe,text:n},t[19]=a.anteil,t[20]=a.stufe,t[21]=n,t[22]=r):r=t[22],s.push(r)}let e;t[23]===o.zuletzt?e=t[24]:(e=o.zuletzt?de(new Date(o.zuletzt*1e3).toISOString()).toLowerCase():`noch keine`,t[23]=o.zuletzt,t[24]=e);let n;t[25]!==o.stufe||t[26]!==e?(n={label:`Sicherungen`,anteil:null,stufe:o.stufe,text:e},t[25]=o.stufe,t[26]=e,t[27]=n):n=t[27],s.push(n),t[2]=a,t[3]=i,t[4]=o.stufe,t[5]=o.zuletzt,t[6]=s}else s=t[6];let c;t[28]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,R.jsx)(wl,{titel:`Speicher und Sicherungen`}),t[28]=c):c=t[28];let l;return t[29]===s?l=t[30]:(l=(0,R.jsxs)(`div`,{className:`flex flex-col gap-2.5`,children:[c,(0,R.jsx)(`ul`,{className:`m-0 grid list-none grid-cols-1 gap-2 p-0 sm:grid-cols-3`,children:s.map(Ul)})]}),t[29]=s,t[30]=l),l}function Ul(e){return(0,R.jsx)(`li`,{children:(0,R.jsxs)(wi,{to:`/homelab`,className:`flaeche-innen flex h-full flex-col gap-2 rounded-xl px-3 py-2.5 transition-colors hover:border-white/20 hover:bg-white/[0.05]`,children:[(0,R.jsxs)(`span`,{className:`flex items-center justify-between gap-2`,children:[(0,R.jsx)(`span`,{className:`text-[13.5px] font-medium`,children:e.label}),(0,R.jsx)(`span`,{"aria-hidden":!0,className:s(`size-1.5 rounded-full`,Vl[e.stufe])})]}),(0,R.jsx)(`span`,{className:`truncate text-[12.5px] text-text-3`,children:e.text}),e.anteil!=null&&(0,R.jsx)(`span`,{"aria-hidden":!0,className:`h-1 overflow-hidden rounded-full bg-white/[0.08]`,children:(0,R.jsx)(`span`,{className:s(`block h-full rounded-full`,e.stufe===`ok`?`bg-lab/80`:Vl[e.stufe]),style:{width:`${Math.max(2,Math.round(e.anteil*100))}%`}})})]})},e.label)}function Wl(e){return e.aktiv}function Gl(e){let t=(0,z.c)(17),{verbindung:n}=e,r=n===`online`,i=ue(r),a=ye(r),o=P(r),s;t[0]===i.data?.ziele?s=t[1]:(s=i.data?.ziele??[],t[0]=i.data?.ziele,t[1]=s);let c=s,l;t[2]===c?l=t[3]:(l=c.filter(Jl),t[2]=c,t[3]=l);let u=l.length,d;t[4]===c?d=t[5]:(d=c.filter(ql),t[4]=c,t[5]=d);let f=d.length,p=c.length?`Proxmox VE · ${f} Gäste`:`Proxmox VE`,m;t[6]!==r||t[7]!==u||t[8]!==a||t[9]!==i.isPending||t[10]!==o||t[11]!==c?(m=r?(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(El,{hinweise:a.data?.hinweise??[],ziel:`/homelab`}),(0,R.jsxs)(`div`,{className:`flex flex-col gap-2.5`,children:[(0,R.jsx)(wl,{titel:`Geräte`,rechts:(0,R.jsxs)(`span`,{className:`text-[13px] text-text-3`,children:[u,` von `,c.length,` erreichbar`]})}),i.isPending&&c.length===0&&(0,R.jsx)(`p`,{className:`text-sm text-text-3`,children:`Wird gelesen …`}),(0,R.jsx)(`ul`,{className:`m-0 grid list-none grid-cols-1 gap-2 p-0 sm:grid-cols-2`,children:c.map(Kl)})]}),(0,R.jsx)(Hl,{speicher:o.data})]}):(0,R.jsx)(`p`,{className:`text-sm text-text-2`,children:`Der Homelab-Teil antwortet gerade nicht; die Karte zeigt nichts Veraltetes.`}),t[6]=r,t[7]=u,t[8]=a,t[9]=i.isPending,t[10]=o,t[11]=c,t[12]=m):m=t[12];let h;return t[13]!==p||t[14]!==m||t[15]!==n?(h=(0,R.jsx)(Tl,{bereich:`homelab`,verbindung:n,i:3,unterzeile:p,children:m}),t[13]=p,t[14]=m,t[15]=n,t[16]=h):h=t[16],h}function Kl(e){let t=fl(e),n=e.erreichbar===!1?`rot`:e.erreichbar?`ok`:`aus`;return(0,R.jsx)(`li`,{children:(0,R.jsx)(Al,{to:t?`/homelab/updates`:`/homelab`,bild:Fs(e),name:jo(e),unter:Do(e.kennzahl)??ko(e),punkt:n,zustandText:e.erreichbar===!1?`antwortet nicht`:e.erreichbar?`erreichbar`:`kein Stand`,updates:t?.teile??[],knopf:t?.knopf??!1})},e.id)}function ql(e){return e.art!==`proxmox-host`}function Jl(e){return e.erreichbar}var Yl={eingespielt:`gruen`,gruen:`gruen`,zurueckgerollt:`bernstein`,gelb:`bernstein`,fehler:`rot`,rot:`rot`,neustart:`cyan`,info:`cyan`,aufgeraeumt:`gruen`},Xl={zurueckgerollt:`zurückgerollt`,aufgeraeumt:`aufgeräumt`,neustart:`Neustart`,fehler:`Fehler`,zurueckgesetzt:`zurückgesetzt`,geloescht:`gelöscht`},Zl={gruen:`bg-gruen`,bernstein:`bg-bernstein`,rot:`bg-rot`,cyan:`bg-cyan`,grau:`bg-white/30`};function Ql(e){let t=(0,z.c)(5),{homelabAktiv:n}=e,r=se(),i=oe(n),a;if(t[0]!==r.data?.laeufe||t[1]!==i.data?.laeufe){let e=[...(r.data?.laeufe??[]).slice(0,8).map(nu),...(i.data?.laeufe??[]).filter(tu).slice(0,8).map(eu)].sort($l).slice(0,8),n;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(n=W(4),t[3]=n):n=t[3];let o;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,R.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,R.jsx)(`h2`,{className:`text-[17px] leading-tight font-semibold`,children:`Zuletzt eingespielt`}),(0,R.jsx)(`span`,{className:`hidden text-[13px] text-text-3 sm:inline`,children:`beide Bereiche, neueste zuerst`})]}),t[4]=o):o=t[4],a=(0,R.jsxs)(`section`,{"aria-label":`Zuletzt eingespielt`,className:`auftauchen flaeche flex flex-col gap-4 rounded-3xl p-5 sm:p-6`,style:n,children:[o,e.length===0?(0,R.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Noch keine Updates aufgezeichnet.`}):(0,R.jsx)(`ol`,{className:`m-0 grid list-none gap-x-8 p-0 lg:grid-flow-col lg:grid-cols-2 lg:grid-rows-[repeat(var(--zeilen),auto)]`,style:{"--zeilen":Math.ceil(e.length/2)},children:e.map((t,n)=>(0,R.jsxs)(`li`,{className:s(`grid grid-cols-[10px_minmax(0,1fr)_auto] items-center gap-x-3 border-t border-white/[0.06] py-2.5`,n===0&&`border-t-0`,n===Math.ceil(e.length/2)&&`lg:border-t-0`),children:[(0,R.jsx)(`span`,{"aria-hidden":!0,className:s(`size-2.5 rounded-full`,Zl[t.art])}),(0,R.jsxs)(`span`,{className:`flex min-w-0 flex-col gap-0.5`,children:[(0,R.jsxs)(`span`,{className:`truncate text-[14.5px]`,children:[(0,R.jsx)(`span`,{className:s(`etikett mr-2 text-[10px] tracking-[0.12em]`,gl[t.bereich].text),children:gl[t.bereich].name}),t.titel]}),(0,R.jsx)(`span`,{className:`ziffern text-[12px] text-text-3`,children:de(new Date(t.zeit).toISOString()).toLowerCase()})]}),(0,R.jsx)(Os,{art:t.art,children:t.chip})]},`${t.bereich}-${t.zeit}-${t.titel}`))})]}),t[0]=r.data?.laeufe,t[1]=i.data?.laeufe,t[2]=a}else a=t[2];return a}function $l(e,t){return t.zeit-e.zeit}function eu(e){return{zeit:e.start*1e3,bereich:`homelab`,titel:e.name,chip:e.ergebnis?Xl[e.ergebnis]??e.ergebnis:`unterbrochen`,art:(e.ergebnis?Yl[e.ergebnis]:`grau`)??`grau`}}function tu(e){return e.status!==`laeuft`&&!$c(e)&&e.baustein!==`probe`}function nu(e){return{zeit:new Date(e.start).getTime(),bereich:`box`,titel:e.anlass,chip:e.titel,art:Yl[e.stufe]??`grau`}}function ru(){let e=(0,z.c)(121),t=Zo(),n=pe(),r=ce(),i=t.homelab.verbindung===`online`,a=ue(i),o=ye(i);if(n.isPending&&!n.data){let t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,R.jsx)(ks,{text:`Die Übersicht sammelt sich gleich …`}),e[0]=t):t=e[0],t}let c,l,u,d,f,p,m,h,g,_;if(e[1]!==r.data?.ziele||e[2]!==a.data?.ziele||e[3]!==i||e[4]!==o.data?.hinweise||e[5]!==t.box.updates||e[6]!==t.box.verbindung||e[7]!==t.homelab.updates||e[8]!==t.homelab.verbindung||e[9]!==n.data||e[10]!==n.isError){let s=[...t.box.verbindung===`getrennt`&&n.isError?[`Die KI-Box`]:[],...t.homelab.verbindung===`getrennt`?[`Der Homelab-Teil`]:[]],v=a.data?.ziele??[],y=v.filter(cu).map(su),b;e[21]===n.data?.hinweise?b=e[22]:(b=n.data?.hinweise??[],e[21]=n.data?.hinweise,e[22]=b);let x;e[23]===o.data?.hinweise?x=e[24]:(x=o.data?.hinweise??[],e[23]=o.data?.hinweise,e[24]=x);let S;e[25]!==b||e[26]!==x?(S=[...b,...x].filter(ou),e[25]=b,e[26]=x,e[27]=S):S=e[27],c=S,h=c.some(au),_=t.box.updates+t.homelab.updates;let C;e[28]===c?C=e[29]:(C=c.filter(G),e[28]=c,e[29]=C),d=pl({getrennt:s,stumm:y,hinweiseRot:C.length,hinweise:c.length,updates:_}),u=ml[d.stufe],p=n.data?.flugplan.geplant[0];let w;e[30]===p?w=e[31]:(w=p?Fl(de(p.zeit)):[``,`–`],e[30]=p,e[31]=w),[m,f]=w,l=n.data?.zustand.stand;let T;e[32]===r.data?.ziele?T=e[33]:(T=r.data?.ziele.find(iu),e[32]=r.data?.ziele,e[33]=T);let E=T?.name??`KI-Box`,D=n.isError?`rot`:n.data?`ok`:`aus`,O;e[34]!==E||e[35]!==D?(O={id:`ki-box`,name:E,zustand:D},e[34]=E,e[35]=D,e[36]=O):O=e[36];let k;e[37]===i?k=e[38]:(k=e=>({id:e.id,name:e.name,zustand:i?e.erreichbar===!1?`rot`:e.erreichbar?`ok`:`aus`:`aus`}),e[37]=i,e[38]=k),g=[O,...v.map(k)],e[1]=r.data?.ziele,e[2]=a.data?.ziele,e[3]=i,e[4]=o.data?.hinweise,e[5]=t.box.updates,e[6]=t.box.verbindung,e[7]=t.homelab.updates,e[8]=t.homelab.verbindung,e[9]=n.data,e[10]=n.isError,e[11]=c,e[12]=l,e[13]=u,e[14]=d,e[15]=f,e[16]=p,e[17]=m,e[18]=h,e[19]=g,e[20]=_}else c=e[11],l=e[12],u=e[13],d=e[14],f=e[15],p=e[16],m=e[17],h=e[18],g=e[19],_=e[20];let v=g,y;e[39]===Symbol.for(`react.memo_cache_sentinel`)?(y=W(0),e[39]=y):y=e[39];let b=`radial-gradient(closest-side, color-mix(in srgb, ${u.glut} 20%, transparent), transparent)`,x;e[40]===b?x=e[41]:(x=(0,R.jsx)(`div`,{"aria-hidden":!0,className:`glut-atmet pointer-events-none absolute -top-48 -left-40 size-[560px] rounded-full`,style:{background:b}}),e[40]=b,e[41]=x);let S;e[42]!==u.glut||e[43]!==v?(S=(0,R.jsx)(Xc,{segmente:v,glut:u.glut}),e[42]=u.glut,e[43]=v,e[44]=S):S=e[44];let C=u.Symbol,w;e[45]===u.symbol?w=e[46]:(w=s(`size-4`,u.symbol),e[45]=u.symbol,e[46]=w);let T;e[47]!==u.Symbol||e[48]!==w?(T=(0,R.jsx)(C,{className:w,"aria-hidden":!0}),e[47]=u.Symbol,e[48]=w,e[49]=T):T=e[49];let E;e[50]===l?E=e[51]:(E=l?` · geprüft ${_l.format(new Date(l*1e3))}`:``,e[50]=l,e[51]=E);let D;e[52]!==T||e[53]!==E?(D=(0,R.jsxs)(`span`,{className:`etikett flex items-center gap-2 text-[11px] text-text-3`,children:[T,`Gesamtlage`,E]}),e[52]=T,e[53]=E,e[54]=D):D=e[54];let O;e[55]===u.titel?O=e[56]:(O=s(`text-[32px] leading-[1.05] font-semibold tracking-[-0.015em] sm:text-[44px]`,u.titel),e[55]=u.titel,e[56]=O);let k;e[57]!==d.titel||e[58]!==O?(k=(0,R.jsx)(`h2`,{className:O,children:d.titel}),e[57]=d.titel,e[58]=O,e[59]=k):k=e[59];let A;e[60]===d.text?A=e[61]:(A=(0,R.jsx)(`p`,{className:`text-[15px] text-text-2 sm:text-base`,children:d.text}),e[60]=d.text,e[61]=A);let ee;e[62]===t.box.verbindung?ee=e[63]:(ee=(0,R.jsx)(bl,{bereich:`box`,verbindung:t.box.verbindung}),e[62]=t.box.verbindung,e[63]=ee);let te;e[64]===t.homelab.verbindung?te=e[65]:(te=(0,R.jsx)(bl,{bereich:`homelab`,verbindung:t.homelab.verbindung}),e[64]=t.homelab.verbindung,e[65]=te);let ne;e[66]!==ee||e[67]!==te?(ne=(0,R.jsxs)(`div`,{className:`mt-1 flex flex-wrap gap-2`,children:[ee,te]}),e[66]=ee,e[67]=te,e[68]=ne):ne=e[68];let j;e[69]!==k||e[70]!==A||e[71]!==ne||e[72]!==D?(j=(0,R.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-2.5`,children:[D,k,A,ne]}),e[69]=k,e[70]=A,e[71]=ne,e[72]=D,e[73]=j):j=e[73];let re;e[74]!==j||e[75]!==S?(re=(0,R.jsxs)(`div`,{className:`flex min-w-0 items-center gap-5 sm:gap-8`,children:[S,j]}),e[74]=j,e[75]=S,e[76]=re):re=e[76];let ie=String(_),ae=_?`cyan`:`grau`,oe;e[77]===t.box.updates?oe=e[78]:(oe=(0,R.jsxs)(wi,{to:`/box/updates`,className:`hover:text-foreground`,children:[`KI-Box `,t.box.updates]}),e[77]=t.box.updates,e[78]=oe);let M;e[79]===t.homelab.updates?M=e[80]:(M=(0,R.jsxs)(wi,{to:`/homelab/updates`,className:`hover:text-foreground`,children:[`Homelab `,t.homelab.updates]}),e[79]=t.homelab.updates,e[80]=M);let se;e[81]!==ie||e[82]!==ae||e[83]!==oe||e[84]!==M?(se=(0,R.jsxs)(yl,{Icon:ro,label:`Updates bereit`,wert:ie,art:ae,children:[oe,` · `,M]}),e[81]=ie,e[82]=ae,e[83]=oe,e[84]=M,e[85]=se):se=e[85];let le=h?So:ha,fe=String(c.length),me=h?`rot`:c.length?`bernstein`:`grau`,he=c.length?`stehen oben in den Karten`:`nichts offen`,ge;e[86]!==le||e[87]!==fe||e[88]!==me||e[89]!==he?(ge=(0,R.jsx)(yl,{Icon:le,label:`Hinweise`,wert:fe,art:me,children:he}),e[86]=le,e[87]=fe,e[88]=me,e[89]=he,e[90]=ge):ge=e[90];let N=p?`${p.titel}${m&&m!==`heute`?` · ${m}`:``}`:`nichts geplant`,P;e[91]!==f||e[92]!==N?(P=(0,R.jsx)(yl,{Icon:pa,label:`Als Nächstes`,wert:f,art:`grau`,children:N}),e[91]=f,e[92]=N,e[93]=P):P=e[93];let _e;e[94]!==se||e[95]!==ge||e[96]!==P?(_e=(0,R.jsxs)(`div`,{className:`grid gap-2.5 sm:grid-cols-3 xl:grid-cols-1`,children:[se,ge,P]}),e[94]=se,e[95]=ge,e[96]=P,e[97]=_e):_e=e[97];let ve;e[98]!==re||e[99]!==_e?(ve=(0,R.jsxs)(`div`,{className:`relative grid gap-6 p-5 sm:p-7 xl:grid-cols-[minmax(0,1fr)_minmax(0,340px)] xl:items-center xl:gap-10`,children:[re,_e]}),e[98]=re,e[99]=_e,e[100]=ve):ve=e[100];let be;e[101]!==x||e[102]!==ve?(be=(0,R.jsxs)(`section`,{"aria-label":`Gesamtlage`,className:`auftauchen flaeche relative overflow-hidden rounded-3xl`,style:y,children:[x,ve]}),e[101]=x,e[102]=ve,e[103]=be):be=e[103];let xe;e[104]===Symbol.for(`react.memo_cache_sentinel`)?(xe=(0,R.jsx)(Vc,{}),e[104]=xe):xe=e[104];let F;e[105]===i?F=e[106]:(F=(0,R.jsx)(Sl,{homelabAktiv:i}),e[105]=i,e[106]=F);let Se;e[107]===t.box.verbindung?Se=e[108]:(Se=(0,R.jsx)(Il,{verbindung:t.box.verbindung}),e[107]=t.box.verbindung,e[108]=Se);let Ce;e[109]===t.homelab.verbindung?Ce=e[110]:(Ce=(0,R.jsx)(Gl,{verbindung:t.homelab.verbindung}),e[109]=t.homelab.verbindung,e[110]=Ce);let we;e[111]!==Se||e[112]!==Ce?(we=(0,R.jsxs)(`div`,{className:`grid gap-5 md:gap-6 xl:grid-cols-2`,children:[Se,Ce]}),e[111]=Se,e[112]=Ce,e[113]=we):we=e[113];let Te;e[114]===i?Te=e[115]:(Te=(0,R.jsx)(Ql,{homelabAktiv:i}),e[114]=i,e[115]=Te);let Ee;return e[116]!==be||e[117]!==F||e[118]!==we||e[119]!==Te?(Ee=(0,R.jsxs)(R.Fragment,{children:[be,xe,F,we,Te]}),e[116]=be,e[117]=F,e[118]=we,e[119]=Te,e[120]=Ee):Ee=e[120],Ee}function iu(e){return e.art===`ki-box`}function G(e){return e.stufe===`rot`}function au(e){return e.stufe===`rot`}function ou(e){return e.zustand!==`stumm`}function su(e){return e.name}function cu(e){return e.erreichbar===!1}var lu=ki({component:Es,notFoundComponent:()=>(0,R.jsx)(si,{to:`/`})}),uu=Di({getParentRoute:()=>lu,path:`/`,component:ru}),du=Di({getParentRoute:()=>lu,path:`/box`,component:Ai(()=>hs(()=>import(`./Start-BIQA6AF-.js`),__vite__mapDeps([7,1,6,4,8])),`StartSeite`)}),fu=Di({getParentRoute:()=>lu,path:`/box/updates`,component:Ai(()=>hs(()=>import(`./Updates-BnWCu023.js`),__vite__mapDeps([9,1,6,10,4,11])),`UpdatesSeite`)}),pu=Di({getParentRoute:()=>lu,path:`/box/modelle`,component:Ai(()=>hs(()=>import(`./Modelle-BLLzu0pF.js`),__vite__mapDeps([12,1,6,13,14,10,4,2,3,11,15])),`ModelleSeite`)}),mu=Di({getParentRoute:()=>lu,path:`/box/monitoring`,component:Ai(()=>hs(()=>import(`./Monitoring-BNmttTQJ.js`),__vite__mapDeps([16,1,6,17,13,14,15])),`BoxMonitoringSeite`)}),hu=Di({getParentRoute:()=>lu,path:`/box/dienste`,component:Ai(()=>hs(()=>import(`./Dienste-C60GZuQx.js`),__vite__mapDeps([18,1,6,4])),`DiensteSeite`)}),gu=Di({getParentRoute:()=>lu,path:`/homelab`,component:Ai(()=>hs(()=>import(`./Homelab-Cu4YNYuQ.js`),__vite__mapDeps([19,1,6,10,20,4,8])),`HomelabSeite`)}),_u=Di({getParentRoute:()=>lu,path:`/homelab/updates`,component:Ai(()=>hs(()=>import(`./Homelab-Cu4YNYuQ.js`),__vite__mapDeps([19,1,6,10,20,4,8])),`HomelabUpdatesSeite`)}),vu=Di({getParentRoute:()=>lu,path:`/homelab/snapshots`,component:Ai(()=>hs(()=>import(`./HomelabSnapshots-D4oCEotX.js`),__vite__mapDeps([21,1,6,20,4])),`HomelabSnapshotsSeite`)}),yu=Di({getParentRoute:()=>lu,path:`/homelab/monitoring`,component:Ai(()=>hs(()=>import(`./Monitoring-BNmttTQJ.js`),__vite__mapDeps([16,1,6,17,13,14,15])),`HomelabMonitoringSeite`)}),bu=Di({getParentRoute:()=>lu,path:`/homelab/protokoll`,component:Ai(()=>hs(()=>import(`./HomelabProtokoll-D7ZspeaL.js`),__vite__mapDeps([22,1,6,17,13,14,10])),`HomelabProtokollSeite`)}),xu=Di({getParentRoute:()=>lu,path:`/einstellungen`,component:Ai(()=>hs(()=>import(`./Einstellungen-CVJCMM4J.js`),__vite__mapDeps([23,1,6,4])),`EinstellungenSeite`)}),Su=Di({getParentRoute:()=>lu,path:`/updates`,beforeLoad:()=>{throw Nt({to:`/box/updates`})}}),Cu=Di({getParentRoute:()=>lu,path:`/modelle`,beforeLoad:({location:e})=>{throw Nt({to:`/box/modelle`,hash:e.hash||void 0})}}),wu=qi({routeTree:lu.addChildren([uu,du,fu,pu,mu,hu,gu,_u,yu,bu,xu,Su,Cu,vu]),defaultPreload:`intent`,defaultErrorComponent:Qi}),Tu=`mc_neuladen_wegen_version`;function Eu(){window.addEventListener(`vite:preloadError`,e=>{sessionStorage.getItem(Tu)||(e.preventDefault(),sessionStorage.setItem(Tu,`1`),window.location.reload())}),window.addEventListener(`load`,()=>{window.setTimeout(()=>sessionStorage.removeItem(Tu),5e3)})}Eu();var Du=new Xe({defaultOptions:{queries:{retry:1,refetchOnWindowFocus:!1,staleTime:5e3}}});(0,Zi.createRoot)(document.getElementById(`root`)).render((0,R.jsx)(I.StrictMode,{children:(0,R.jsx)(fe,{client:Du,children:(0,R.jsx)(Xi,{router:wu})})}));export{Ho as $,rc as A,Fs as B,fc as C,sc as D,oc as E,ec as F,us as G,ks as H,Zs as I,No as J,Jo as K,Ws as L,Ys as M,Xs as N,ac as O,Js as P,Wo as Q,zs as R,cc as S,uc as T,hs as U,Os as V,cs as W,Do as X,ko as Y,jo as Z,Ec as _,nl as a,Io as at,mc as b,al as c,fo as ct,Bc as d,ja as dt,Go as et,Hc as f,_a as ft,Cc as g,jc as h,oi as ht,el as i,Po as it,tc as j,ic as k,tl as l,ao as lt,Mc as m,wi as mt,ll as n,U as nt,rl as o,Bo as ot,Nc as p,ra as pt,qo as q,sl as r,Lo as rt,$c as s,So as st,ul as t,Fo as tt,il as u,ro as ut,Ac as v,pc as w,lc as x,kc as y,Rs as z}; \ No newline at end of file diff --git a/frontend/dist/assets/index-D9NqFm_c.css b/frontend/dist/assets/index-D9NqFm_c.css new file mode 100644 index 0000000..3e01a3b --- /dev/null +++ b/frontend/dist/assets/index-D9NqFm_c.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-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-content:"";--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-sans:"Barlow", "Segoe UI", system-ui, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "Cascadia Mono", Consolas, monospace;--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-sm:24rem;--container-md:28rem;--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);--font-weight-normal:400;--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;--radius-3xl:1.5rem;--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-xs:4px;--blur-xl:24px;--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);min-height:100dvh;margin:0}body:before,body:after{content:"";z-index:-1;pointer-events:none;position:fixed;inset:0}body:before{background:radial-gradient(60rem 34rem at 4% -14%, var(--box), transparent 68%), radial-gradient(54rem 32rem at 104% -10%, var(--lab), transparent 64%), radial-gradient(50rem 30rem at 55% 120%, var(--cyan), transparent 70%)}@supports (color:color-mix(in lab, red, red)){body:before{background:radial-gradient(60rem 34rem at 4% -14%, color-mix(in srgb, var(--box) 17%, transparent), transparent 68%), radial-gradient(54rem 32rem at 104% -10%, color-mix(in srgb, var(--lab) 14%, transparent), transparent 64%), radial-gradient(50rem 30rem at 55% 120%, color-mix(in srgb, var(--cyan) 6%, transparent), transparent 70%)}}body:after{background-image:radial-gradient(#ffffff0e 1px,#0000 1.4px);background-size:26px 26px;-webkit-mask-image:linear-gradient(#000 0%,#0000 70%);mask-image:linear-gradient(#000 0%,#0000 70%)}: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-1{inset:var(--spacing)}.inset-y-0{inset-block:0}.-top-1\.5{top:calc(var(--spacing) * -1.5)}.-top-2\.5{top:calc(var(--spacing) * -2.5)}.-top-40{top:calc(var(--spacing) * -40)}.-top-44{top:calc(var(--spacing) * -44)}.-top-48{top:calc(var(--spacing) * -48)}.top-0{top:0}.top-1{top:var(--spacing)}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing) * 2)}.top-3{top:calc(var(--spacing) * 3)}.top-\[12vh\]{top:12vh}.-right-0\.5{right:calc(var(--spacing) * -.5)}.right-2{right:calc(var(--spacing) * 2)}.right-3{right:calc(var(--spacing) * 3)}.right-4{right:calc(var(--spacing) * 4)}.-bottom-0\.5{bottom:calc(var(--spacing) * -.5)}.-bottom-1\.5{bottom:calc(var(--spacing) * -1.5)}.-bottom-2\.5{bottom:calc(var(--spacing) * -2.5)}.bottom-0{bottom:0}.bottom-3{bottom:calc(var(--spacing) * 3)}.bottom-24{bottom:calc(var(--spacing) * 24)}.-left-32{left:calc(var(--spacing) * -32)}.-left-36{left:calc(var(--spacing) * -36)}.-left-40{left:calc(var(--spacing) * -40)}.left-0{left:0}.left-1\/2{left:50%}.left-3{left:calc(var(--spacing) * 3)}.left-4{left:calc(var(--spacing) * 4)}.left-\[5px\]{left:5px}.left-\[80\%\]{left:80%}.left-\[90\%\]{left:90%}.isolate{isolation:isolate}.z-10{z-index:10}.z-50{z-index:50}.col-span-2{grid-column:span 2/span 2}.col-span-full{grid-column:1/-1}.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)}.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-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-auto{margin-top:auto}.mr-1{margin-right:var(--spacing)}.mr-1\.5{margin-right:calc(var(--spacing) * 1.5)}.mr-2{margin-right:calc(var(--spacing) * 2)}.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\.5{margin-left:calc(var(--spacing) * .5)}.ml-\[0\.111em\]{margin-left:.111em}.ml-auto{margin-left:auto}.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-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.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-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.size-11{width:calc(var(--spacing) * 11);height:calc(var(--spacing) * 11)}.size-12{width:calc(var(--spacing) * 12);height:calc(var(--spacing) * 12)}.size-\[11px\]{width:11px;height:11px}.size-\[18px\]{width:18px;height:18px}.size-\[88px\]{width:88px;height:88px}.size-\[132px\]{width:132px;height:132px}.size-\[400px\]{width:400px;height:400px}.size-\[460px\]{width:460px;height:460px}.size-\[560px\]{width:560px;height:560px}.size-full{width:100%;height:100%}.h-0\.5{height:calc(var(--spacing) * .5)}.h-1{height:var(--spacing)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-11{height:calc(var(--spacing) * 11)}.h-12{height:calc(var(--spacing) * 12)}.h-14{height:calc(var(--spacing) * 14)}.h-\[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-72{max-height:calc(var(--spacing) * 72)}.max-h-80{max-height:calc(var(--spacing) * 80)}.max-h-96{max-height:calc(var(--spacing) * 96)}.max-h-\[50vh\]{max-height:50vh}.max-h-\[60vh\]{max-height:60vh}.max-h-\[calc\(100dvh-2rem\)\]{max-height:calc(100dvh - 2rem)}.min-h-9{min-height:calc(var(--spacing) * 9)}.min-h-10{min-height:calc(var(--spacing) * 10)}.min-h-11{min-height:calc(var(--spacing) * 11)}.min-h-12{min-height:calc(var(--spacing) * 12)}.min-h-\[132px\]{min-height:132px}.min-h-dvh{min-height:100dvh}.w-0\.5{width:calc(var(--spacing) * .5)}.w-3{width:calc(var(--spacing) * 3)}.w-4{width:calc(var(--spacing) * 4)}.w-16{width:calc(var(--spacing) * 16)}.w-20{width:calc(var(--spacing) * 20)}.w-60{width:calc(var(--spacing) * 60)}.w-\[1\.1875em\]{width:1.1875em}.w-full{width:100%}.w-px{width:1px}.max-w-40{max-width:calc(var(--spacing) * 40)}.max-w-56{max-width:calc(var(--spacing) * 56)}.max-w-\[200px\]{max-width:200px}.max-w-\[1360px\]{max-width:1360px}.max-w-\[calc\(100\%-2rem\)\]{max-width:calc(100% - 2rem)}.max-w-full{max-width:100%}.max-w-md{max-width:var(--container-md)}.max-w-sm{max-width:var(--container-sm)}.min-w-0{min-width:0}.min-w-36{min-width:calc(var(--spacing) * 36)}.min-w-44{min-width:calc(var(--spacing) * 44)}.flex-1{flex:1}.shrink-0{flex-shrink:0}.basis-40{flex-basis:calc(var(--spacing) * 40)}.border-collapse{border-collapse:collapse}.-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)}.translate-y-0{--tw-translate-y:0px;translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-90{rotate:90deg}.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)}.scroll-mt-6{scroll-margin-top:calc(var(--spacing) * 6)}.scroll-mt-24{scroll-margin-top:calc(var(--spacing) * 24)}.list-disc{list-style-type:disc}.list-none{list-style-type:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-\[1\.5rem_minmax\(0\,1fr\)_auto\]{grid-template-columns:1.5rem minmax(0,1fr) auto}.grid-cols-\[10px_minmax\(0\,1fr\)_auto\]{grid-template-columns:10px minmax(0,1fr) auto}.grid-cols-\[11px_minmax\(0\,1fr\)_auto\]{grid-template-columns:11px minmax(0,1fr) auto}.grid-cols-\[64px_18px_minmax\(0\,1fr\)\]{grid-template-columns:64px 18px minmax(0,1fr)}.grid-cols-\[210px_100px_170px_minmax\(0\,1fr\)_auto\]{grid-template-columns:210px 100px 170px minmax(0,1fr) auto}.grid-cols-\[auto_minmax\(0\,1fr\)\]{grid-template-columns:auto minmax(0,1fr)}.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{gap:0}.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-9{gap:calc(var(--spacing) * 9)}.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-x-8{column-gap:calc(var(--spacing) * 8)}.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-2\.5{row-gap:calc(var(--spacing) * 2.5)}.gap-y-6{row-gap:calc(var(--spacing) * 6)}.self-center{align-self:center}.self-start{align-self:flex-start}.justify-self-end{justify-self:flex-end}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:calc(var(--radius) * 1.8)}.rounded-3xl{border-radius:var(--radius-3xl)}.rounded-\[2px\]{border-radius:2px}.rounded-\[10px\]{border-radius:10px}.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-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-t-0{border-top-style:var(--tw-border-style);border-top-width:0}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.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-box-rand{border-color:var(--box-rand)}.border-cyan-rand{border-color:var(--cyan-rand)}.border-cyan\/35{border-color:var(--cyan)}@supports (color:color-mix(in lab, red, red)){.border-cyan\/35{border-color:color-mix(in oklab, var(--cyan) 35%, transparent)}}.border-gruen-rand{border-color:var(--gruen-rand)}.border-lab-rand{border-color:var(--lab-rand)}.border-lab\/50{border-color:var(--lab)}@supports (color:color-mix(in lab, red, red)){.border-lab\/50{border-color:color-mix(in oklab, var(--lab) 50%, transparent)}}.border-rot-rand{border-color:var(--rot-rand)}.border-rot\/40{border-color:var(--rot)}@supports (color:color-mix(in lab, red, red)){.border-rot\/40{border-color:color-mix(in oklab, var(--rot) 40%, transparent)}}.border-transparent{border-color:#0000}.border-white\/10{border-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.border-white\/10{border-color:color-mix(in oklab, var(--color-white) 10%, transparent)}}.border-white\/12{border-color:#ffffff1f}@supports (color:color-mix(in lab, red, red)){.border-white\/12{border-color:color-mix(in oklab, var(--color-white) 12%, transparent)}}.border-white\/15{border-color:#ffffff26}@supports (color:color-mix(in lab, red, red)){.border-white\/15{border-color:color-mix(in oklab, var(--color-white) 15%, transparent)}}.border-white\/\[0\.06\]{border-color:#ffffff0f}@supports (color:color-mix(in lab, red, red)){.border-white\/\[0\.06\]{border-color:color-mix(in oklab, var(--color-white) 6%, transparent)}}.border-white\/\[0\.08\]{border-color:#ffffff14}@supports (color:color-mix(in lab, red, red)){.border-white\/\[0\.08\]{border-color:color-mix(in oklab, var(--color-white) 8%, transparent)}}.flaeche{border:1px solid var(--rand,var(--flaeche-rand));-webkit-backdrop-filter:blur(18px)saturate(1.4);backdrop-filter:blur(18px)saturate(1.4);background-color:#0c10189e;background-image:linear-gradient(#ffffff0d,#ffffff03 45%,#0000);box-shadow:inset 0 1px #ffffff0e,0 1px 2px #00000059,0 24px 48px -28px #000000e6}.flaeche-innen{background-color:#ffffff07;border:1px solid #94a3c21a}.bg-\[\#0a0d14\]{background-color:#0a0d14}.bg-\[\#0b0d0f\]{background-color:#0b0d0f}.bg-\[\#0e121a\]{background-color:#0e121a}.bg-\[\#121722\]{background-color:#121722}.bg-\[rgb\(8_11_17\/0\.72\)\]{background-color:#080b11b8}.bg-bernstein{background-color:var(--bernstein)}.bg-bernstein-grund{background-color:var(--bernstein-grund)}.bg-bernstein\/10{background-color:var(--bernstein)}@supports (color:color-mix(in lab, red, red)){.bg-bernstein\/10{background-color:color-mix(in oklab, var(--bernstein) 10%, transparent)}}.bg-bernstein\/35{background-color:var(--bernstein)}@supports (color:color-mix(in lab, red, red)){.bg-bernstein\/35{background-color:color-mix(in oklab, var(--bernstein) 35%, transparent)}}.bg-bernstein\/70{background-color:var(--bernstein)}@supports (color:color-mix(in lab, red, red)){.bg-bernstein\/70{background-color:color-mix(in oklab, var(--bernstein) 70%, transparent)}}.bg-bernstein\/\[0\.06\]{background-color:var(--bernstein)}@supports (color:color-mix(in lab, red, red)){.bg-bernstein\/\[0\.06\]{background-color:color-mix(in oklab, var(--bernstein) 6%, transparent)}}.bg-bernstein\/\[0\.08\]{background-color:var(--bernstein)}@supports (color:color-mix(in lab, red, red)){.bg-bernstein\/\[0\.08\]{background-color:color-mix(in oklab, var(--bernstein) 8%, transparent)}}.bg-black\/10{background-color:#0000001a}@supports (color:color-mix(in lab, red, red)){.bg-black\/10{background-color:color-mix(in oklab, var(--color-black) 10%, transparent)}}.bg-black\/30{background-color:#0000004d}@supports (color:color-mix(in lab, red, red)){.bg-black\/30{background-color:color-mix(in oklab, var(--color-black) 30%, transparent)}}.bg-box-grund{background-color:var(--box-grund)}.bg-box\/10{background-color:var(--box)}@supports (color:color-mix(in lab, red, red)){.bg-box\/10{background-color:color-mix(in oklab, var(--box) 10%, transparent)}}.bg-current{background-color:currentColor}.bg-cyan{background-color:var(--cyan)}.bg-cyan-grund{background-color:var(--cyan-grund)}.bg-cyan\/10{background-color:var(--cyan)}@supports (color:color-mix(in lab, red, red)){.bg-cyan\/10{background-color:color-mix(in oklab, var(--cyan) 10%, transparent)}}.bg-cyan\/12{background-color:var(--cyan)}@supports (color:color-mix(in lab, red, red)){.bg-cyan\/12{background-color:color-mix(in oklab, var(--cyan) 12%, transparent)}}.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-cyan\/\[0\.06\]{background-color:var(--cyan)}@supports (color:color-mix(in lab, red, red)){.bg-cyan\/\[0\.06\]{background-color:color-mix(in oklab, var(--cyan) 6%, transparent)}}.bg-cyan\/\[0\.07\]{background-color:var(--cyan)}@supports (color:color-mix(in lab, red, red)){.bg-cyan\/\[0\.07\]{background-color:color-mix(in oklab, var(--cyan) 7.0%, transparent)}}.bg-cyan\/\[0\.08\]{background-color:var(--cyan)}@supports (color:color-mix(in lab, red, red)){.bg-cyan\/\[0\.08\]{background-color:color-mix(in oklab, var(--cyan) 8%, transparent)}}.bg-gruen{background-color:var(--gruen)}.bg-gruen-grund{background-color:var(--gruen-grund)}.bg-gruen\/10{background-color:var(--gruen)}@supports (color:color-mix(in lab, red, red)){.bg-gruen\/10{background-color:color-mix(in oklab, var(--gruen) 10%, transparent)}}.bg-gruen\/\[0\.07\]{background-color:var(--gruen)}@supports (color:color-mix(in lab, red, red)){.bg-gruen\/\[0\.07\]{background-color:color-mix(in oklab, var(--gruen) 7.0%, transparent)}}.bg-lab{background-color:var(--lab)}.bg-lab-grund{background-color:var(--lab-grund)}.bg-lab\/10{background-color:var(--lab)}@supports (color:color-mix(in lab, red, red)){.bg-lab\/10{background-color:color-mix(in oklab, var(--lab) 10%, transparent)}}.bg-lab\/20{background-color:var(--lab)}@supports (color:color-mix(in lab, red, red)){.bg-lab\/20{background-color:color-mix(in oklab, var(--lab) 20%, transparent)}}.bg-lab\/80{background-color:var(--lab)}@supports (color:color-mix(in lab, red, red)){.bg-lab\/80{background-color:color-mix(in oklab, var(--lab) 80%, transparent)}}.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-popover{background-color:var(--popover)}.bg-rot{background-color:var(--rot)}.bg-rot-grund{background-color:var(--rot-grund)}.bg-rot\/10{background-color:var(--rot)}@supports (color:color-mix(in lab, red, red)){.bg-rot\/10{background-color:color-mix(in oklab, var(--rot) 10%, transparent)}}.bg-rot\/12{background-color:var(--rot)}@supports (color:color-mix(in lab, red, red)){.bg-rot\/12{background-color:color-mix(in oklab, var(--rot) 12%, transparent)}}.bg-rot\/80{background-color:var(--rot)}@supports (color:color-mix(in lab, red, red)){.bg-rot\/80{background-color:color-mix(in oklab, var(--rot) 80%, transparent)}}.bg-rot\/\[0\.07\]{background-color:var(--rot)}@supports (color:color-mix(in lab, red, red)){.bg-rot\/\[0\.07\]{background-color:color-mix(in oklab, var(--rot) 7.0%, transparent)}}.bg-text-3{background-color:var(--text-3)}.bg-transparent{background-color:#0000}.bg-white\/10{background-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.bg-white\/10{background-color:color-mix(in oklab, var(--color-white) 10%, transparent)}}.bg-white\/25{background-color:#ffffff40}@supports (color:color-mix(in lab, red, red)){.bg-white\/25{background-color:color-mix(in oklab, var(--color-white) 25%, transparent)}}.bg-white\/30{background-color:#ffffff4d}@supports (color:color-mix(in lab, red, red)){.bg-white\/30{background-color:color-mix(in oklab, var(--color-white) 30%, transparent)}}.bg-white\/\[0\.03\]{background-color:#ffffff08}@supports (color:color-mix(in lab, red, red)){.bg-white\/\[0\.03\]{background-color:color-mix(in oklab, var(--color-white) 3%, transparent)}}.bg-white\/\[0\.04\]{background-color:#ffffff0a}@supports (color:color-mix(in lab, red, red)){.bg-white\/\[0\.04\]{background-color:color-mix(in oklab, var(--color-white) 4%, transparent)}}.bg-white\/\[0\.05\]{background-color:#ffffff0d}@supports (color:color-mix(in lab, red, red)){.bg-white\/\[0\.05\]{background-color:color-mix(in oklab, var(--color-white) 5%, transparent)}}.bg-white\/\[0\.06\]{background-color:#ffffff0f}@supports (color:color-mix(in lab, red, red)){.bg-white\/\[0\.06\]{background-color:color-mix(in oklab, var(--color-white) 6%, transparent)}}.bg-white\/\[0\.07\]{background-color:#ffffff12}@supports (color:color-mix(in lab, red, red)){.bg-white\/\[0\.07\]{background-color:color-mix(in oklab, var(--color-white) 7.0%, transparent)}}.bg-white\/\[0\.08\]{background-color:#ffffff14}@supports (color:color-mix(in lab, red, red)){.bg-white\/\[0\.08\]{background-color:color-mix(in oklab, var(--color-white) 8%, transparent)}}.bg-gradient-to-b{--tw-gradient-position:to bottom in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-br{--tw-gradient-position:to bottom right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-r{--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-bernstein-hell{--tw-gradient-from:var(--bernstein-hell);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-box\/30{--tw-gradient-from:var(--box)}@supports (color:color-mix(in lab, red, red)){.from-box\/30{--tw-gradient-from:color-mix(in oklab, var(--box) 30%, transparent)}}.from-box\/30{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-lab\/30{--tw-gradient-from:var(--lab)}@supports (color:color-mix(in lab, red, red)){.from-lab\/30{--tw-gradient-from:color-mix(in oklab, var(--lab) 30%, transparent)}}.from-lab\/30{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-white\/20{--tw-gradient-from:#fff3}@supports (color:color-mix(in lab, red, red)){.from-white\/20{--tw-gradient-from:color-mix(in oklab, var(--color-white) 20%, transparent)}}.from-white\/20{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-white\/\[0\.1\]{--tw-gradient-from:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.from-white\/\[0\.1\]{--tw-gradient-from:color-mix(in oklab, var(--color-white) 10%, transparent)}}.from-white\/\[0\.1\]{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-white\/\[0\.07\]{--tw-gradient-from:#ffffff12}@supports (color:color-mix(in lab, red, red)){.from-white\/\[0\.07\]{--tw-gradient-from:color-mix(in oklab, var(--color-white) 7.0%, transparent)}}.from-white\/\[0\.07\]{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-bernstein{--tw-gradient-to:var(--bernstein);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-box\/\[0\.05\]{--tw-gradient-to:var(--box)}@supports (color:color-mix(in lab, red, red)){.to-box\/\[0\.05\]{--tw-gradient-to:color-mix(in oklab, var(--box) 5%, transparent)}}.to-box\/\[0\.05\]{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-lab\/\[0\.05\]{--tw-gradient-to:var(--lab)}@supports (color:color-mix(in lab, red, red)){.to-lab\/\[0\.05\]{--tw-gradient-to:color-mix(in oklab, var(--lab) 5%, transparent)}}.to-lab\/\[0\.05\]{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-transparent{--tw-gradient-to:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-white\/0{--tw-gradient-to:#0000}@supports (color:color-mix(in lab, red, red)){.to-white\/0{--tw-gradient-to:color-mix(in oklab, var(--color-white) 0%, transparent)}}.to-white\/0{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-white\/\[0\.02\]{--tw-gradient-to:#ffffff05}@supports (color:color-mix(in lab, red, red)){.to-white\/\[0\.02\]{--tw-gradient-to:color-mix(in oklab, var(--color-white) 2%, transparent)}}.to-white\/\[0\.02\]{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-white\/\[0\.03\]{--tw-gradient-to:#ffffff08}@supports (color:color-mix(in lab, red, red)){.to-white\/\[0\.03\]{--tw-gradient-to:color-mix(in oklab, var(--color-white) 3%, transparent)}}.to-white\/\[0\.03\]{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.bg-clip-padding{background-clip:padding-box}.fill-text-2{fill:var(--text-2)}.fill-text-3{fill:var(--text-3)}.object-contain{object-fit:contain}.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-0\.5{padding-inline:calc(var(--spacing) * .5)}.px-1{padding-inline:var(--spacing)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-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-6{padding-block:calc(var(--spacing) * 6)}.py-7{padding-block:calc(var(--spacing) * 7)}.py-8{padding-block:calc(var(--spacing) * 8)}.pt-0\.5{padding-top:calc(var(--spacing) * .5)}.pt-1{padding-top:var(--spacing)}.pt-1\.5{padding-top:calc(var(--spacing) * 1.5)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-2\.5{padding-top:calc(var(--spacing) * 2.5)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-5{padding-top:calc(var(--spacing) * 5)}.pr-1{padding-right:var(--spacing)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pr-10{padding-right:calc(var(--spacing) * 10)}.pb-0{padding-bottom:0}.pb-1{padding-bottom:var(--spacing)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-2\.5{padding-bottom:calc(var(--spacing) * 2.5)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pb-12{padding-bottom:calc(var(--spacing) * 12)}.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-1{padding-left:var(--spacing)}.pl-3\.5{padding-left:calc(var(--spacing) * 3.5)}.pl-5{padding-left:calc(var(--spacing) * 5)}.pl-9{padding-left:calc(var(--spacing) * 9)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.etikett{font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.12em;font-weight:600}.font-anzeige,.font-heading{font-family:Barlow Condensed,Barlow,Segoe UI,sans-serif}.font-mono{font-family:JetBrains Mono,ui-monospace,Cascadia Mono,Consolas,monospace}.font-sans{font-family:Barlow,Segoe UI,system-ui,sans-serif}.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-\[9\.5px\]{font-size:9.5px}.text-\[10\.5px\]{font-size:10.5px}.text-\[10px\]{font-size:10px}.text-\[11\.5px\]{font-size:11.5px}.text-\[11px\]{font-size:11px}.text-\[12\.5px\]{font-size:12.5px}.text-\[12px\]{font-size:12px}.text-\[13\.5px\]{font-size:13.5px}.text-\[13px\]{font-size:13px}.text-\[14\.5px\]{font-size:14.5px}.text-\[14px\]{font-size:14px}.text-\[15\.5px\]{font-size:15.5px}.text-\[15px\]{font-size:15px}.text-\[16\.5px\]{font-size:16.5px}.text-\[16px\]{font-size:16px}.text-\[17px\]{font-size:17px}.text-\[19px\]{font-size:19px}.text-\[20px\]{font-size:20px}.text-\[21px\]{font-size:21px}.text-\[26px\]{font-size:26px}.text-\[28px\]{font-size:28px}.text-\[30px\]{font-size:30px}.text-\[32px\]{font-size:32px}.text-\[38px\]{font-size:38px}.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-\[1\.05\]{--tw-leading:1.05;line-height:1.05}.leading-\[1\.35\]{--tw-leading:1.35;line-height:1.35}.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-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[-0\.01em\]{--tw-tracking:-.01em;letter-spacing:-.01em}.tracking-\[-0\.015em\]{--tw-tracking:-.015em;letter-spacing:-.015em}.tracking-\[0\.01em\]{--tw-tracking:.01em;letter-spacing:.01em}.tracking-\[0\.1em\]{--tw-tracking:.1em;letter-spacing:.1em}.tracking-\[0\.005em\]{--tw-tracking:.005em;letter-spacing:.005em}.tracking-\[0\.08em\]{--tw-tracking:.08em;letter-spacing:.08em}.tracking-\[0\.12em\]{--tw-tracking:.12em;letter-spacing:.12em}.tracking-\[0\.14em\]{--tw-tracking:.14em;letter-spacing:.14em}.tracking-\[0\.16em\]{--tw-tracking:.16em;letter-spacing:.16em}.tracking-\[0\.18em\]{--tw-tracking:.18em;letter-spacing:.18em}.tracking-\[0\.22em\]{--tw-tracking:.22em;letter-spacing:.22em}.tracking-\[0\.32em\]{--tw-tracking:.32em;letter-spacing:.32em}.tracking-normal{--tw-tracking:var(--tracking-normal);letter-spacing:var(--tracking-normal)}.\[overflow-wrap\:anywhere\]{overflow-wrap:anywhere}.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-bernstein{color:var(--bernstein)}.text-box{color:var(--box)}.text-box-text{color:var(--box-text)}.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-lab{color:var(--lab)}.text-lab-text{color:var(--lab-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}.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,)}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.no-underline{text-decoration-line:none}.underline-offset-4{text-underline-offset:4px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.accent-\[var\(--lab\)\]{accent-color:var(--lab)}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.opacity-90{opacity:.9}.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_var\(--bernstein\)\]{--tw-shadow:0 0 8px var(--tw-shadow-color,var(--bernstein));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_var\(--cyan\)\]{--tw-shadow:0 0 8px var(--tw-shadow-color,var(--cyan));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_var\(--gruen\)\]{--tw-shadow:0 0 8px var(--tw-shadow-color,var(--gruen));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_var\(--rot\)\]{--tw-shadow:0 0 8px var(--tw-shadow-color,var(--rot));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_10px_var\(--cyan\)\]{--tw-shadow:0 0 10px var(--tw-shadow-color,var(--cyan));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_28px_-6px_var\(--box\)\]{--tw-shadow:0 0 28px -6px var(--tw-shadow-color,var(--box));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_28px_-6px_var\(--lab\)\]{--tw-shadow:0 0 28px -6px var(--tw-shadow-color,var(--lab));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[inset_0_1px_0_rgb\(255_255_255\/0\.06\)\]{--tw-shadow:inset 0 1px 0 var(--tw-shadow-color,#ffffff0f);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[inset_0_1px_0_rgb\(255_255_255\/0\.35\)\,0_8px_22px_-10px_var\(--bernstein\)\]{--tw-shadow:inset 0 1px 0 var(--tw-shadow-color,#ffffff59), 0 8px 22px -10px var(--tw-shadow-color,var(--bernstein));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-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-4{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-\[3px\]{--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)}.ring-\[\#0b0f16\]{--tw-ring-color:#0b0f16}.ring-\[\#0d1119\]{--tw-ring-color:#0d1119}.ring-\[var\(--panel\)\]{--tw-ring-color:var(--panel)}.ring-bernstein\/30{--tw-ring-color:var(--bernstein)}@supports (color:color-mix(in lab, red, red)){.ring-bernstein\/30{--tw-ring-color:color-mix(in oklab, var(--bernstein) 30%, transparent)}}.ring-bernstein\/35{--tw-ring-color:var(--bernstein)}@supports (color:color-mix(in lab, red, red)){.ring-bernstein\/35{--tw-ring-color:color-mix(in oklab, var(--bernstein) 35%, transparent)}}.ring-box\/30{--tw-ring-color:var(--box)}@supports (color:color-mix(in lab, red, red)){.ring-box\/30{--tw-ring-color:color-mix(in oklab, var(--box) 30%, transparent)}}.ring-box\/35{--tw-ring-color:var(--box)}@supports (color:color-mix(in lab, red, red)){.ring-box\/35{--tw-ring-color:color-mix(in oklab, var(--box) 35%, transparent)}}.ring-cyan\/25{--tw-ring-color:var(--cyan)}@supports (color:color-mix(in lab, red, red)){.ring-cyan\/25{--tw-ring-color:color-mix(in oklab, var(--cyan) 25%, transparent)}}.ring-cyan\/30{--tw-ring-color:var(--cyan)}@supports (color:color-mix(in lab, red, red)){.ring-cyan\/30{--tw-ring-color:color-mix(in oklab, var(--cyan) 30%, transparent)}}.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)}}.ring-gruen\/25{--tw-ring-color:var(--gruen)}@supports (color:color-mix(in lab, red, red)){.ring-gruen\/25{--tw-ring-color:color-mix(in oklab, var(--gruen) 25%, transparent)}}.ring-gruen\/30{--tw-ring-color:var(--gruen)}@supports (color:color-mix(in lab, red, red)){.ring-gruen\/30{--tw-ring-color:color-mix(in oklab, var(--gruen) 30%, transparent)}}.ring-lab\/30{--tw-ring-color:var(--lab)}@supports (color:color-mix(in lab, red, red)){.ring-lab\/30{--tw-ring-color:color-mix(in oklab, var(--lab) 30%, transparent)}}.ring-lab\/35{--tw-ring-color:var(--lab)}@supports (color:color-mix(in lab, red, red)){.ring-lab\/35{--tw-ring-color:color-mix(in oklab, var(--lab) 35%, transparent)}}.ring-lab\/40{--tw-ring-color:var(--lab)}@supports (color:color-mix(in lab, red, red)){.ring-lab\/40{--tw-ring-color:color-mix(in oklab, var(--lab) 40%, transparent)}}.ring-rot\/35{--tw-ring-color:var(--rot)}@supports (color:color-mix(in lab, red, red)){.ring-rot\/35{--tw-ring-color:color-mix(in oklab, var(--rot) 35%, transparent)}}.ring-rot\/40{--tw-ring-color:var(--rot)}@supports (color:color-mix(in lab, red, red)){.ring-rot\/40{--tw-ring-color:color-mix(in oklab, var(--rot) 40%, transparent)}}.ring-white\/10{--tw-ring-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.ring-white\/10{--tw-ring-color:color-mix(in oklab, var(--color-white) 10%, transparent)}}.ring-white\/12{--tw-ring-color:#ffffff1f}@supports (color:color-mix(in lab, red, red)){.ring-white\/12{--tw-ring-color:color-mix(in oklab, var(--color-white) 12%, transparent)}}.ring-white\/15{--tw-ring-color:#ffffff26}@supports (color:color-mix(in lab, red, red)){.ring-white\/15{--tw-ring-color:color-mix(in oklab, var(--color-white) 15%, transparent)}}.ring-white\/\[0\.07\]{--tw-ring-color:#ffffff12}@supports (color:color-mix(in lab, red, red)){.ring-white\/\[0\.07\]{--tw-ring-color:color-mix(in oklab, var(--color-white) 7.0%, 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,)}.blur-xl{--tw-blur:blur(var(--blur-xl));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,)}.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-xl{--tw-backdrop-blur:blur(var(--blur-xl));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.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-\[background-color\,border-color\,color\,box-shadow\,filter\]{transition-property:background-color,border-color,color,box-shadow,filter;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[filter\]{transition-property:filter;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[stroke-dasharray\]{transition-property:stroke-dasharray;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-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}.duration-700{--tw-duration:.7s;transition-duration:.7s}.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}.\[--rand\:color-mix\(in_srgb\,var\(--box\)_28\%\,transparent\)\]{--rand:var(--box)}@supports (color:color-mix(in lab, red, red)){.\[--rand\:color-mix\(in_srgb\,var\(--box\)_28\%\,transparent\)\]{--rand:color-mix(in srgb,var(--box) 28%,transparent)}}.\[--rand\:color-mix\(in_srgb\,var\(--box\)_32\%\,transparent\)\]{--rand:var(--box)}@supports (color:color-mix(in lab, red, red)){.\[--rand\:color-mix\(in_srgb\,var\(--box\)_32\%\,transparent\)\]{--rand:color-mix(in srgb,var(--box) 32%,transparent)}}.\[--rand\:color-mix\(in_srgb\,var\(--lab\)_28\%\,transparent\)\]{--rand:var(--lab)}@supports (color:color-mix(in lab, red, red)){.\[--rand\:color-mix\(in_srgb\,var\(--lab\)_28\%\,transparent\)\]{--rand:color-mix(in srgb,var(--lab) 28%,transparent)}}.\[--rand\:color-mix\(in_srgb\,var\(--lab\)_32\%\,transparent\)\]{--rand:var(--lab)}@supports (color:color-mix(in lab, red, red)){.\[--rand\:color-mix\(in_srgb\,var\(--lab\)_32\%\,transparent\)\]{--rand:color-mix(in srgb,var(--lab) 32%,transparent)}}.\[font-variant-ligatures\:none\]{font-variant-ligatures:none}.\[grid-area\:herkunft\]{grid-area:herkunft}.\[grid-area\:knoepfe\]{grid-area:knoepfe}.\[grid-area\:name\]{grid-area:name}.\[grid-area\:text\]{grid-area:text}.\[grid-area\:zeit\]{grid-area:zeit}.\[grid-template-areas\:\'name_herkunft\'_\'zeit_zeit\'_\'text_text\'_\'knoepfe_knoepfe\'\]{grid-template-areas:"name herkunft""zeit zeit""text text""knoepfe knoepfe"}.paused{animation-play-state:paused}.ring-inset{--tw-ring-inset:inset}.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}@media (hover:hover){.group-hover\:translate-x-0\.5:is(:where(.group):hover *){--tw-translate-x:calc(var(--spacing) * .5);translate:var(--tw-translate-x) var(--tw-translate-y)}.group-hover\:bg-white\/\[0\.06\]:is(:where(.group):hover *){background-color:#ffffff0f}@supports (color:color-mix(in lab, red, red)){.group-hover\:bg-white\/\[0\.06\]:is(:where(.group):hover *){background-color:color-mix(in oklab, var(--color-white) 6%, transparent)}}.group-hover\:text-foreground:is(:where(.group):hover *){color:var(--foreground)}.group-hover\:text-text-2:is(:where(.group):hover *){color:var(--text-2)}}.placeholder\:text-text-3::placeholder{color:var(--text-3)}.before\:absolute:before{content:var(--tw-content);position:absolute}.before\:top-2\.5:before{content:var(--tw-content);top:calc(var(--spacing) * 2.5)}.before\:bottom-2\.5:before{content:var(--tw-content);bottom:calc(var(--spacing) * 2.5)}.before\:left-0:before{content:var(--tw-content);left:0}.before\:w-\[3px\]:before{content:var(--tw-content);width:3px}.before\:rounded-full:before{content:var(--tw-content);border-radius:2147483647px}.before\:bg-bernstein:before{content:var(--tw-content);background-color:var(--bernstein)}.before\:bg-box:before{content:var(--tw-content);background-color:var(--box)}.before\:bg-lab:before{content:var(--tw-content);background-color:var(--lab)}.before\:bg-text-2:before{content:var(--tw-content);background-color:var(--text-2)}.before\:opacity-0:before{content:var(--tw-content);opacity:0}.before\:shadow-\[0_0_12px_var\(--bernstein\)\]:before{content:var(--tw-content);--tw-shadow:0 0 12px var(--tw-shadow-color,var(--bernstein));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.before\:shadow-\[0_0_12px_var\(--box\)\]:before{content:var(--tw-content);--tw-shadow:0 0 12px var(--tw-shadow-color,var(--box));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.before\:shadow-\[0_0_12px_var\(--lab\)\]:before{content:var(--tw-content);--tw-shadow:0 0 12px var(--tw-shadow-color,var(--lab));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.before\:transition-opacity:before{content:var(--tw-content);transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.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}.first\:pt-1:first-child{padding-top:var(--spacing)}.open\:pb-2:is([open],:popover-open,:open){padding-bottom:calc(var(--spacing) * 2)}.open\:pb-3:is([open],:popover-open,:open){padding-bottom:calc(var(--spacing) * 3)}@media (hover:hover){.hover\:border-white\/20:hover{border-color:#fff3}@supports (color:color-mix(in lab, red, red)){.hover\:border-white\/20:hover{border-color:color-mix(in oklab, var(--color-white) 20%, transparent)}}.hover\:bg-bernstein\/\[0\.13\]:hover{background-color:var(--bernstein)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-bernstein\/\[0\.13\]:hover{background-color:color-mix(in oklab, var(--bernstein) 13%, transparent)}}.hover\:bg-box\/20:hover{background-color:var(--box)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-box\/20:hover{background-color:color-mix(in oklab, var(--box) 20%, transparent)}}.hover\:bg-cyan\/15:hover{background-color:var(--cyan)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-cyan\/15:hover{background-color:color-mix(in oklab, var(--cyan) 15%, transparent)}}.hover\:bg-lab\/20:hover{background-color:var(--lab)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-lab\/20:hover{background-color:color-mix(in oklab, var(--lab) 20%, transparent)}}.hover\:bg-rot-grund:hover{background-color:var(--rot-grund)}.hover\:bg-rot\/15:hover{background-color:var(--rot)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-rot\/15:hover{background-color:color-mix(in oklab, var(--rot) 15%, transparent)}}.hover\:bg-rot\/\[0\.18\]:hover{background-color:var(--rot)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-rot\/\[0\.18\]:hover{background-color:color-mix(in oklab, var(--rot) 18%, transparent)}}.hover\:bg-white\/\[0\.05\]:hover{background-color:#ffffff0d}@supports (color:color-mix(in lab, red, red)){.hover\:bg-white\/\[0\.05\]:hover{background-color:color-mix(in oklab, var(--color-white) 5%, transparent)}}.hover\:bg-white\/\[0\.06\]:hover{background-color:#ffffff0f}@supports (color:color-mix(in lab, red, red)){.hover\:bg-white\/\[0\.06\]:hover{background-color:color-mix(in oklab, var(--color-white) 6%, transparent)}}.hover\:bg-white\/\[0\.08\]:hover{background-color:#ffffff14}@supports (color:color-mix(in lab, red, red)){.hover\:bg-white\/\[0\.08\]:hover{background-color:color-mix(in oklab, var(--color-white) 8%, transparent)}}.hover\:bg-white\/\[0\.045\]:hover{background-color:#ffffff0b}@supports (color:color-mix(in lab, red, red)){.hover\:bg-white\/\[0\.045\]:hover{background-color:color-mix(in oklab, var(--color-white) 4.5%, transparent)}}.hover\:text-cyan:hover{color:var(--cyan)}.hover\:text-foreground:hover{color:var(--foreground)}.hover\:text-lab-text:hover{color:var(--lab-text)}.hover\:text-rot-text:hover{color:var(--rot-text)}.hover\:text-text-2:hover{color:var(--text-2)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:brightness-110:hover{--tw-brightness:brightness(110%);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,)}.hover\:brightness-125:hover{--tw-brightness:brightness(125%);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,)}}.focus\:border-cyan\/60:focus{border-color:var(--cyan)}@supports (color:color-mix(in lab, red, red)){.focus\:border-cyan\/60:focus{border-color:color-mix(in oklab, var(--cyan) 60%, transparent)}}.focus\:border-lab\/60:focus{border-color:var(--lab)}@supports (color:color-mix(in lab, red, red)){.focus\:border-lab\/60:focus{border-color:color-mix(in oklab, var(--lab) 60%, transparent)}}.focus\:bg-white\/\[0\.06\]:focus{background-color:#ffffff0f}@supports (color:color-mix(in lab, red, red)){.focus\:bg-white\/\[0\.06\]:focus{background-color:color-mix(in oklab, var(--color-white) 6%, transparent)}}.focus-visible\:rounded-md:focus-visible{border-radius:calc(var(--radius) * .8)}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-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-cyan\/60:focus-visible{--tw-ring-color:var(--cyan)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-cyan\/60:focus-visible{--tw-ring-color:color-mix(in oklab, var(--cyan) 60%, transparent)}}.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-40:disabled{opacity:.4}.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}.data-\[status\=active\]\:from-bernstein\/\[0\.16\][data-status=active]{--tw-gradient-from:var(--bernstein)}@supports (color:color-mix(in lab, red, red)){.data-\[status\=active\]\:from-bernstein\/\[0\.16\][data-status=active]{--tw-gradient-from:color-mix(in oklab, var(--bernstein) 16%, transparent)}}.data-\[status\=active\]\:from-bernstein\/\[0\.16\][data-status=active]{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.data-\[status\=active\]\:from-box\/\[0\.2\][data-status=active]{--tw-gradient-from:var(--box)}@supports (color:color-mix(in lab, red, red)){.data-\[status\=active\]\:from-box\/\[0\.2\][data-status=active]{--tw-gradient-from:color-mix(in oklab, var(--box) 20%, transparent)}}.data-\[status\=active\]\:from-box\/\[0\.2\][data-status=active]{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.data-\[status\=active\]\:from-lab\/\[0\.2\][data-status=active]{--tw-gradient-from:var(--lab)}@supports (color:color-mix(in lab, red, red)){.data-\[status\=active\]\:from-lab\/\[0\.2\][data-status=active]{--tw-gradient-from:color-mix(in oklab, var(--lab) 20%, transparent)}}.data-\[status\=active\]\:from-lab\/\[0\.2\][data-status=active]{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.data-\[status\=active\]\:from-white\/\[0\.08\][data-status=active]{--tw-gradient-from:#ffffff14}@supports (color:color-mix(in lab, red, red)){.data-\[status\=active\]\:from-white\/\[0\.08\][data-status=active]{--tw-gradient-from:color-mix(in oklab, var(--color-white) 8%, transparent)}}.data-\[status\=active\]\:from-white\/\[0\.08\][data-status=active]{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.data-\[status\=active\]\:text-foreground[data-status=active]{color:var(--foreground)}.data-\[status\=active\]\:before\:opacity-100[data-status=active]:before{content:var(--tw-content);opacity:1}@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)}.motion-safe\:animate-spin{animation:var(--animate-spin)}}@media (width>=480px){.min-\[480px\]\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=40rem){.sm\:col-span-1{grid-column:span 1/span 1}.sm\:col-start-3{grid-column-start:3}.sm\:row-start-1{grid-row-start:1}.sm\:block{display:block}.sm\:flex{display:flex}.sm\:grid{display:grid}.sm\:hidden{display:none}.sm\:inline{display:inline}.sm\:size-\[168px\]{width:168px;height:168px}.sm\:max-w-lg{max-width:var(--container-lg)}.sm\:max-w-sm{max-width:var(--container-sm)}.sm\:max-w-xl{max-width:var(--container-xl)}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:grid-cols-\[minmax\(0\,1\.5fr\)_70px_130px_minmax\(0\,1\.5fr\)\]{grid-template-columns:minmax(0,1.5fr) 70px 130px minmax(0,1.5fr)}.sm\:grid-cols-\[minmax\(0\,1fr\)_120px_160px\]{grid-template-columns:minmax(0,1fr) 120px 160px}.sm\:flex-row{flex-direction:row}.sm\:items-baseline{align-items:baseline}.sm\:items-center{align-items:center}.sm\:justify-between{justify-content:space-between}.sm\:justify-end{justify-content:flex-end}.sm\:gap-2{gap:calc(var(--spacing) * 2)}.sm\:gap-4{gap:calc(var(--spacing) * 4)}.sm\:gap-8{gap:calc(var(--spacing) * 8)}.sm\:self-start{align-self:flex-start}.sm\:p-5{padding:calc(var(--spacing) * 5)}.sm\:p-6{padding:calc(var(--spacing) * 6)}.sm\:p-7{padding:calc(var(--spacing) * 7)}.sm\:px-4{padding-inline:calc(var(--spacing) * 4)}.sm\:px-6{padding-inline:calc(var(--spacing) * 6)}.sm\:pt-6{padding-top:calc(var(--spacing) * 6)}.sm\:text-left{text-align:left}.sm\:text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.sm\:text-\[10px\]{font-size:10px}.sm\:text-\[22px\]{font-size:22px}.sm\:text-\[34px\]{font-size:34px}.sm\:text-\[44px\]{font-size:44px}.sm\:text-\[46px\]{font-size:46px}.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-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-span-4{grid-column:span 4/span 4}.md\:block{display:block}.md\:grid{display:grid}.md\:hidden{display:none}.md\:w-\[420px\]{width:420px}.md\:w-auto{width:auto}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-\[210px_100px_170px_minmax\(0\,1fr\)_auto\]{grid-template-columns:210px 100px 170px minmax(0,1fr) auto}.md\:grid-cols-\[minmax\(0\,1\.1fr\)_minmax\(0\,1\.3fr\)_minmax\(0\,1fr\)_minmax\(0\,0\.9fr\)_11\.5rem\]{grid-template-columns:minmax(0,1.1fr) minmax(0,1.3fr) minmax(0,1fr) minmax(0,.9fr) 11.5rem}.md\:grid-cols-\[minmax\(0\,1\.3fr\)_minmax\(0\,1fr\)_minmax\(0\,1\.1fr\)_minmax\(0\,1\.1fr\)\]{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1.1fr) minmax(0,1.1fr)}.md\:grid-cols-\[minmax\(0\,1\.4fr\)_minmax\(0\,1fr\)_minmax\(0\,1fr\)_110px\]{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr) 110px}.md\:grid-cols-\[minmax\(0\,1\.6fr\)_minmax\(0\,1fr\)_minmax\(0\,1\.4fr\)\]{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr) minmax(0,1.4fr)}.md\:grid-cols-\[minmax\(0\,1\.35fr\)_110px_minmax\(0\,1fr\)_minmax\(0\,1\.2fr\)_minmax\(0\,1fr\)_90px\]{grid-template-columns:minmax(0,1.35fr) 110px minmax(0,1fr) minmax(0,1.2fr) minmax(0,1fr) 90px}.md\:grid-rows-\[auto_auto_1fr\]{grid-template-rows:auto auto 1fr}.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\:items-stretch{align-items:stretch}.md\:gap-6{gap:calc(var(--spacing) * 6)}.md\:gap-x-4{column-gap:calc(var(--spacing) * 4)}.md\:justify-self-end{justify-self:flex-end}.md\:px-3{padding-inline:calc(var(--spacing) * 3)}.md\:px-10{padding-inline:calc(var(--spacing) * 10)}.md\:pt-8{padding-top:calc(var(--spacing) * 8)}.md\:pb-1{padding-bottom:var(--spacing)}.md\:pl-\[18px\]{padding-left:18px}.md\:text-\[32px\]{font-size:32px}.md\:\[grid-template-areas\:\'name_herkunft\'_\'zeit_knoepfe\'_\'text_knoepfe\'\]{grid-template-areas:"name herkunft""zeit knoepfe""text knoepfe"}}@media (width>=64rem){.lg\:bottom-6{bottom:calc(var(--spacing) * 6)}.lg\:col-span-1{grid-column:span 1/span 1}.lg\:flex{display:flex}.lg\:grid{display:grid}.lg\:hidden{display:none}.lg\:grid-flow-col{grid-auto-flow:column}.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-\[280px_minmax\(0\,1fr\)\]{grid-template-columns:280px 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\.5fr\)_minmax\(0\,1\.4fr\)_minmax\(0\,1fr\)_minmax\(0\,1fr\)_minmax\(0\,1\.2fr\)_minmax\(0\,0\.8fr\)\]{grid-template-columns:minmax(0,1.5fr) minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr) minmax(0,1.2fr) minmax(0,.8fr)}.lg\:grid-cols-\[minmax\(0\,1\.35fr\)_minmax\(0\,1fr\)\]{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr)}.lg\:grid-rows-\[repeat\(var\(--zeilen\)\,auto\)\]{grid-template-rows:repeat(var(--zeilen),auto)}.lg\:items-start{align-items:flex-start}.lg\:gap-5{gap:calc(var(--spacing) * 5)}.lg\:border-t-0{border-top-style:var(--tw-border-style);border-top-width:0}.lg\:px-6{padding-inline:calc(var(--spacing) * 6)}}@media (width>=80rem){.xl\:col-span-1{grid-column:span 1/span 1}.xl\:col-span-2{grid-column:span 2/span 2}.xl\:col-start-auto{grid-column-start:auto}.xl\:row-start-auto{grid-row-start:auto}.xl\:block{display:block}.xl\:grid{display:grid}.xl\:hidden{display:none}.xl\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.xl\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.xl\:grid-cols-\[minmax\(0\,1\.7fr\)_7rem_minmax\(0\,0\.7fr\)_minmax\(0\,1\.2fr\)_7\.5rem_5rem_9\.5rem\]{grid-template-columns:minmax(0,1.7fr) 7rem minmax(0,.7fr) minmax(0,1.2fr) 7.5rem 5rem 9.5rem}.xl\:grid-cols-\[minmax\(0\,1fr\)_minmax\(0\,340px\)\]{grid-template-columns:minmax(0,1fr) minmax(0,340px)}.xl\:grid-cols-\[minmax\(10\.5rem\,1\.1fr\)_7\.5rem_minmax\(0\,1fr\)_minmax\(0\,1\.4fr\)_11rem\]{grid-template-columns:minmax(10.5rem,1.1fr) 7.5rem minmax(0,1fr) minmax(0,1.4fr) 11rem}.xl\:grid-rows-none{grid-template-rows:none}.xl\:flex-col{flex-direction:column}.xl\:items-center{align-items:center}.xl\:items-stretch{align-items:stretch}.xl\:gap-8{gap:calc(var(--spacing) * 8)}.xl\:gap-10{gap:calc(var(--spacing) * 10)}.xl\:gap-x-3{column-gap:calc(var(--spacing) * 3)}.xl\:self-center{align-self:center}.xl\:justify-self-start{justify-self:flex-start}.xl\:justify-self-stretch{justify-self:stretch}.xl\:pt-0{padding-top:0}.xl\:\[grid-template-areas\:\'name_herkunft_zeit_text_knoepfe\'\]{grid-template-areas:"name herkunft zeit text knoepfe"}}@media (width>=87.5rem){.min-\[87\.5rem\]\:grid-cols-\[minmax\(0\,1\.7fr\)_7rem_minmax\(0\,0\.7fr\)_minmax\(0\,1\.2fr\)_7\.5rem_5rem_17\.5rem\]{grid-template-columns:minmax(0,1.7fr) 7rem minmax(0,.7fr) minmax(0,1.2fr) 7.5rem 5rem 17.5rem}.min-\[87\.5rem\]\:flex-row{flex-direction:row}.min-\[87\.5rem\]\:justify-end{justify-content:flex-end}}@media (width>=96rem){.\32 xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.\32 xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@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)}.\[\&\:\:-webkit-details-marker\]\:hidden::-webkit-details-marker{display:none}: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)}}.data-\[status\=active\]\:\[\&\>svg\]\:text-bernstein[data-status=active]>svg{color:var(--bernstein)}.data-\[status\=active\]\:\[\&\>svg\]\:text-box[data-status=active]>svg{color:var(--box)}.data-\[status\=active\]\:\[\&\>svg\]\:text-foreground[data-status=active]>svg{color:var(--foreground)}.data-\[status\=active\]\:\[\&\>svg\]\:text-lab[data-status=active]>svg{color:var(--lab)}.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:#07090e;--foreground:#e8ecf3;--card:#0f131a;--card-foreground:#e8ecf3;--popover:#111620;--popover-foreground:#e8ecf3;--primary:#ffb020;--primary-foreground:#1a1300;--secondary:#161b24;--secondary-foreground:#e8ecf3;--muted:#161b24;--muted-foreground:#8792a4;--accent:#161b24;--accent-foreground:#e8ecf3;--destructive:#ff5a4f;--border:#1e2430;--input:#333c4c;--ring:#5cc8ff;--panel:#0f131a;--erhaben:#161b24;--linie:#1e2430;--linie-stark:#333c4c;--text-2:#aab4c4;--text-3:#8792a4;--flaeche-rand:#94a3c224;--flaeche-rand-hell:#a8b6d642;--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;--box:#8b95ff;--box-text:#b4bbff;--box-grund:#151a36;--box-rand:#3f4aa8;--lab:#c98bff;--lab-text:#deb8ff;--lab-grund:#22163a;--lab-rand:#6d44a6;--reihe-1:#3987e5;--reihe-2:#d55181;--reihe-3:#c98500;--reihe-weitere:#9aa3ad;--aus-grund:#131821;--aus-rand:#2a3140;--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}}@keyframes auftauchen{0%{opacity:0;transform:translateY(8px)}}@keyframes ring-fuellen{0%{stroke-dasharray:0 1000}}@keyframes glut-atmen{0%,to{opacity:.6}50%{opacity:1}}@keyframes kreisen{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:no-preference){.auftauchen{animation:.56s cubic-bezier(.2,.7,.2,1) both auftauchen;animation-delay:calc(var(--i,0) * 70ms)}.ring-fuellt{animation:1.1s cubic-bezier(.25,.8,.25,1) both ring-fuellen;animation-delay:calc(var(--i,0) * 45ms + .12s)}.glut-atmet{animation:6s ease-in-out infinite glut-atmen}.kreist{transform-box:fill-box;transform-origin:50%;animation:90s linear infinite kreisen}}@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-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@keyframes spin{to{transform:rotate(360deg)}}@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-DcqanB_e.css b/frontend/dist/assets/index-DcqanB_e.css deleted file mode 100644 index d01480e..0000000 --- a/frontend/dist/assets/index-DcqanB_e.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-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-content:"";--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-sans:"Barlow", "Segoe UI", system-ui, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "Cascadia Mono", Consolas, monospace;--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-sm:24rem;--container-md:28rem;--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);--font-weight-normal:400;--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;--radius-3xl:1.5rem;--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-xs:4px;--blur-xl:24px;--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);min-height:100dvh;margin:0}body:before,body:after{content:"";z-index:-1;pointer-events:none;position:fixed;inset:0}body:before{background:radial-gradient(60rem 34rem at 4% -14%, var(--box), transparent 68%), radial-gradient(54rem 32rem at 104% -10%, var(--lab), transparent 64%), radial-gradient(50rem 30rem at 55% 120%, var(--cyan), transparent 70%)}@supports (color:color-mix(in lab, red, red)){body:before{background:radial-gradient(60rem 34rem at 4% -14%, color-mix(in srgb, var(--box) 17%, transparent), transparent 68%), radial-gradient(54rem 32rem at 104% -10%, color-mix(in srgb, var(--lab) 14%, transparent), transparent 64%), radial-gradient(50rem 30rem at 55% 120%, color-mix(in srgb, var(--cyan) 6%, transparent), transparent 70%)}}body:after{background-image:radial-gradient(#ffffff0e 1px,#0000 1.4px);background-size:26px 26px;-webkit-mask-image:linear-gradient(#000 0%,#0000 70%);mask-image:linear-gradient(#000 0%,#0000 70%)}: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-1{inset:var(--spacing)}.inset-y-0{inset-block:0}.-top-1\.5{top:calc(var(--spacing) * -1.5)}.-top-2\.5{top:calc(var(--spacing) * -2.5)}.-top-40{top:calc(var(--spacing) * -40)}.-top-44{top:calc(var(--spacing) * -44)}.-top-48{top:calc(var(--spacing) * -48)}.top-0{top:0}.top-1{top:var(--spacing)}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing) * 2)}.top-3{top:calc(var(--spacing) * 3)}.top-\[12vh\]{top:12vh}.-right-0\.5{right:calc(var(--spacing) * -.5)}.right-2{right:calc(var(--spacing) * 2)}.right-3{right:calc(var(--spacing) * 3)}.right-4{right:calc(var(--spacing) * 4)}.-bottom-0\.5{bottom:calc(var(--spacing) * -.5)}.-bottom-1\.5{bottom:calc(var(--spacing) * -1.5)}.-bottom-2\.5{bottom:calc(var(--spacing) * -2.5)}.bottom-0{bottom:0}.bottom-3{bottom:calc(var(--spacing) * 3)}.bottom-24{bottom:calc(var(--spacing) * 24)}.-left-32{left:calc(var(--spacing) * -32)}.-left-36{left:calc(var(--spacing) * -36)}.-left-40{left:calc(var(--spacing) * -40)}.left-0{left:0}.left-1\/2{left:50%}.left-3{left:calc(var(--spacing) * 3)}.left-4{left:calc(var(--spacing) * 4)}.left-\[5px\]{left:5px}.left-\[80\%\]{left:80%}.left-\[90\%\]{left:90%}.isolate{isolation:isolate}.z-10{z-index:10}.z-50{z-index:50}.col-span-2{grid-column:span 2/span 2}.col-span-full{grid-column:1/-1}.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)}.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-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-auto{margin-top:auto}.mr-1{margin-right:var(--spacing)}.mr-1\.5{margin-right:calc(var(--spacing) * 1.5)}.mr-2{margin-right:calc(var(--spacing) * 2)}.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\.5{margin-left:calc(var(--spacing) * .5)}.ml-\[0\.111em\]{margin-left:.111em}.ml-auto{margin-left:auto}.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-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.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-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.size-11{width:calc(var(--spacing) * 11);height:calc(var(--spacing) * 11)}.size-12{width:calc(var(--spacing) * 12);height:calc(var(--spacing) * 12)}.size-\[11px\]{width:11px;height:11px}.size-\[18px\]{width:18px;height:18px}.size-\[88px\]{width:88px;height:88px}.size-\[132px\]{width:132px;height:132px}.size-\[400px\]{width:400px;height:400px}.size-\[460px\]{width:460px;height:460px}.size-\[560px\]{width:560px;height:560px}.size-full{width:100%;height:100%}.h-0\.5{height:calc(var(--spacing) * .5)}.h-1{height:var(--spacing)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-11{height:calc(var(--spacing) * 11)}.h-12{height:calc(var(--spacing) * 12)}.h-14{height:calc(var(--spacing) * 14)}.h-\[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-72{max-height:calc(var(--spacing) * 72)}.max-h-80{max-height:calc(var(--spacing) * 80)}.max-h-\[50vh\]{max-height:50vh}.max-h-\[60vh\]{max-height:60vh}.max-h-\[calc\(100dvh-2rem\)\]{max-height:calc(100dvh - 2rem)}.min-h-9{min-height:calc(var(--spacing) * 9)}.min-h-10{min-height:calc(var(--spacing) * 10)}.min-h-11{min-height:calc(var(--spacing) * 11)}.min-h-12{min-height:calc(var(--spacing) * 12)}.min-h-\[132px\]{min-height:132px}.min-h-dvh{min-height:100dvh}.w-0\.5{width:calc(var(--spacing) * .5)}.w-3{width:calc(var(--spacing) * 3)}.w-4{width:calc(var(--spacing) * 4)}.w-16{width:calc(var(--spacing) * 16)}.w-20{width:calc(var(--spacing) * 20)}.w-60{width:calc(var(--spacing) * 60)}.w-\[1\.1875em\]{width:1.1875em}.w-full{width:100%}.w-px{width:1px}.max-w-40{max-width:calc(var(--spacing) * 40)}.max-w-56{max-width:calc(var(--spacing) * 56)}.max-w-\[200px\]{max-width:200px}.max-w-\[1360px\]{max-width:1360px}.max-w-\[calc\(100\%-2rem\)\]{max-width:calc(100% - 2rem)}.max-w-full{max-width:100%}.max-w-md{max-width:var(--container-md)}.max-w-sm{max-width:var(--container-sm)}.min-w-0{min-width:0}.min-w-36{min-width:calc(var(--spacing) * 36)}.flex-1{flex:1}.shrink-0{flex-shrink:0}.basis-40{flex-basis:calc(var(--spacing) * 40)}.border-collapse{border-collapse:collapse}.-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)}.translate-y-0{--tw-translate-y:0px;translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-90{rotate:90deg}.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)}.scroll-mt-6{scroll-margin-top:calc(var(--spacing) * 6)}.scroll-mt-24{scroll-margin-top:calc(var(--spacing) * 24)}.list-disc{list-style-type:disc}.list-none{list-style-type:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-\[1\.5rem_minmax\(0\,1fr\)_auto\]{grid-template-columns:1.5rem minmax(0,1fr) auto}.grid-cols-\[10px_minmax\(0\,1fr\)_auto\]{grid-template-columns:10px minmax(0,1fr) auto}.grid-cols-\[11px_minmax\(0\,1fr\)_auto\]{grid-template-columns:11px minmax(0,1fr) auto}.grid-cols-\[64px_18px_minmax\(0\,1fr\)\]{grid-template-columns:64px 18px minmax(0,1fr)}.grid-cols-\[210px_100px_170px_minmax\(0\,1fr\)_auto\]{grid-template-columns:210px 100px 170px minmax(0,1fr) auto}.grid-cols-\[auto_minmax\(0\,1fr\)\]{grid-template-columns:auto minmax(0,1fr)}.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{gap:0}.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-9{gap:calc(var(--spacing) * 9)}.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-x-8{column-gap:calc(var(--spacing) * 8)}.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-2\.5{row-gap:calc(var(--spacing) * 2.5)}.gap-y-6{row-gap:calc(var(--spacing) * 6)}.self-center{align-self:center}.self-start{align-self:flex-start}.justify-self-end{justify-self:flex-end}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:calc(var(--radius) * 1.8)}.rounded-3xl{border-radius:var(--radius-3xl)}.rounded-\[2px\]{border-radius:2px}.rounded-\[10px\]{border-radius:10px}.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-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-t-0{border-top-style:var(--tw-border-style);border-top-width:0}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.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-box-rand{border-color:var(--box-rand)}.border-cyan-rand{border-color:var(--cyan-rand)}.border-cyan\/35{border-color:var(--cyan)}@supports (color:color-mix(in lab, red, red)){.border-cyan\/35{border-color:color-mix(in oklab, var(--cyan) 35%, transparent)}}.border-gruen-rand{border-color:var(--gruen-rand)}.border-lab-rand{border-color:var(--lab-rand)}.border-rot-rand{border-color:var(--rot-rand)}.border-rot\/40{border-color:var(--rot)}@supports (color:color-mix(in lab, red, red)){.border-rot\/40{border-color:color-mix(in oklab, var(--rot) 40%, transparent)}}.border-transparent{border-color:#0000}.border-white\/10{border-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.border-white\/10{border-color:color-mix(in oklab, var(--color-white) 10%, transparent)}}.border-white\/12{border-color:#ffffff1f}@supports (color:color-mix(in lab, red, red)){.border-white\/12{border-color:color-mix(in oklab, var(--color-white) 12%, transparent)}}.border-white\/15{border-color:#ffffff26}@supports (color:color-mix(in lab, red, red)){.border-white\/15{border-color:color-mix(in oklab, var(--color-white) 15%, transparent)}}.border-white\/\[0\.06\]{border-color:#ffffff0f}@supports (color:color-mix(in lab, red, red)){.border-white\/\[0\.06\]{border-color:color-mix(in oklab, var(--color-white) 6%, transparent)}}.border-white\/\[0\.08\]{border-color:#ffffff14}@supports (color:color-mix(in lab, red, red)){.border-white\/\[0\.08\]{border-color:color-mix(in oklab, var(--color-white) 8%, transparent)}}.flaeche{border:1px solid var(--rand,var(--flaeche-rand));-webkit-backdrop-filter:blur(18px)saturate(1.4);backdrop-filter:blur(18px)saturate(1.4);background-color:#0c10189e;background-image:linear-gradient(#ffffff0d,#ffffff03 45%,#0000);box-shadow:inset 0 1px #ffffff0e,0 1px 2px #00000059,0 24px 48px -28px #000000e6}.flaeche-innen{background-color:#ffffff07;border:1px solid #94a3c21a}.bg-\[\#0a0d14\]{background-color:#0a0d14}.bg-\[\#0b0d0f\]{background-color:#0b0d0f}.bg-\[\#0e121a\]{background-color:#0e121a}.bg-\[\#121722\]{background-color:#121722}.bg-\[rgb\(8_11_17\/0\.72\)\]{background-color:#080b11b8}.bg-bernstein{background-color:var(--bernstein)}.bg-bernstein-grund{background-color:var(--bernstein-grund)}.bg-bernstein\/10{background-color:var(--bernstein)}@supports (color:color-mix(in lab, red, red)){.bg-bernstein\/10{background-color:color-mix(in oklab, var(--bernstein) 10%, transparent)}}.bg-bernstein\/35{background-color:var(--bernstein)}@supports (color:color-mix(in lab, red, red)){.bg-bernstein\/35{background-color:color-mix(in oklab, var(--bernstein) 35%, transparent)}}.bg-bernstein\/70{background-color:var(--bernstein)}@supports (color:color-mix(in lab, red, red)){.bg-bernstein\/70{background-color:color-mix(in oklab, var(--bernstein) 70%, transparent)}}.bg-bernstein\/\[0\.06\]{background-color:var(--bernstein)}@supports (color:color-mix(in lab, red, red)){.bg-bernstein\/\[0\.06\]{background-color:color-mix(in oklab, var(--bernstein) 6%, transparent)}}.bg-bernstein\/\[0\.08\]{background-color:var(--bernstein)}@supports (color:color-mix(in lab, red, red)){.bg-bernstein\/\[0\.08\]{background-color:color-mix(in oklab, var(--bernstein) 8%, transparent)}}.bg-black\/10{background-color:#0000001a}@supports (color:color-mix(in lab, red, red)){.bg-black\/10{background-color:color-mix(in oklab, var(--color-black) 10%, transparent)}}.bg-black\/30{background-color:#0000004d}@supports (color:color-mix(in lab, red, red)){.bg-black\/30{background-color:color-mix(in oklab, var(--color-black) 30%, transparent)}}.bg-box-grund{background-color:var(--box-grund)}.bg-box\/10{background-color:var(--box)}@supports (color:color-mix(in lab, red, red)){.bg-box\/10{background-color:color-mix(in oklab, var(--box) 10%, transparent)}}.bg-current{background-color:currentColor}.bg-cyan{background-color:var(--cyan)}.bg-cyan-grund{background-color:var(--cyan-grund)}.bg-cyan\/10{background-color:var(--cyan)}@supports (color:color-mix(in lab, red, red)){.bg-cyan\/10{background-color:color-mix(in oklab, var(--cyan) 10%, transparent)}}.bg-cyan\/12{background-color:var(--cyan)}@supports (color:color-mix(in lab, red, red)){.bg-cyan\/12{background-color:color-mix(in oklab, var(--cyan) 12%, transparent)}}.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-cyan\/\[0\.06\]{background-color:var(--cyan)}@supports (color:color-mix(in lab, red, red)){.bg-cyan\/\[0\.06\]{background-color:color-mix(in oklab, var(--cyan) 6%, transparent)}}.bg-cyan\/\[0\.07\]{background-color:var(--cyan)}@supports (color:color-mix(in lab, red, red)){.bg-cyan\/\[0\.07\]{background-color:color-mix(in oklab, var(--cyan) 7.0%, transparent)}}.bg-cyan\/\[0\.08\]{background-color:var(--cyan)}@supports (color:color-mix(in lab, red, red)){.bg-cyan\/\[0\.08\]{background-color:color-mix(in oklab, var(--cyan) 8%, transparent)}}.bg-gruen{background-color:var(--gruen)}.bg-gruen-grund{background-color:var(--gruen-grund)}.bg-gruen\/10{background-color:var(--gruen)}@supports (color:color-mix(in lab, red, red)){.bg-gruen\/10{background-color:color-mix(in oklab, var(--gruen) 10%, transparent)}}.bg-gruen\/\[0\.07\]{background-color:var(--gruen)}@supports (color:color-mix(in lab, red, red)){.bg-gruen\/\[0\.07\]{background-color:color-mix(in oklab, var(--gruen) 7.0%, transparent)}}.bg-lab{background-color:var(--lab)}.bg-lab-grund{background-color:var(--lab-grund)}.bg-lab\/10{background-color:var(--lab)}@supports (color:color-mix(in lab, red, red)){.bg-lab\/10{background-color:color-mix(in oklab, var(--lab) 10%, transparent)}}.bg-lab\/80{background-color:var(--lab)}@supports (color:color-mix(in lab, red, red)){.bg-lab\/80{background-color:color-mix(in oklab, var(--lab) 80%, transparent)}}.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-popover{background-color:var(--popover)}.bg-rot{background-color:var(--rot)}.bg-rot-grund{background-color:var(--rot-grund)}.bg-rot\/10{background-color:var(--rot)}@supports (color:color-mix(in lab, red, red)){.bg-rot\/10{background-color:color-mix(in oklab, var(--rot) 10%, transparent)}}.bg-rot\/12{background-color:var(--rot)}@supports (color:color-mix(in lab, red, red)){.bg-rot\/12{background-color:color-mix(in oklab, var(--rot) 12%, transparent)}}.bg-rot\/80{background-color:var(--rot)}@supports (color:color-mix(in lab, red, red)){.bg-rot\/80{background-color:color-mix(in oklab, var(--rot) 80%, transparent)}}.bg-rot\/\[0\.07\]{background-color:var(--rot)}@supports (color:color-mix(in lab, red, red)){.bg-rot\/\[0\.07\]{background-color:color-mix(in oklab, var(--rot) 7.0%, transparent)}}.bg-text-3{background-color:var(--text-3)}.bg-transparent{background-color:#0000}.bg-white\/10{background-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.bg-white\/10{background-color:color-mix(in oklab, var(--color-white) 10%, transparent)}}.bg-white\/25{background-color:#ffffff40}@supports (color:color-mix(in lab, red, red)){.bg-white\/25{background-color:color-mix(in oklab, var(--color-white) 25%, transparent)}}.bg-white\/30{background-color:#ffffff4d}@supports (color:color-mix(in lab, red, red)){.bg-white\/30{background-color:color-mix(in oklab, var(--color-white) 30%, transparent)}}.bg-white\/\[0\.03\]{background-color:#ffffff08}@supports (color:color-mix(in lab, red, red)){.bg-white\/\[0\.03\]{background-color:color-mix(in oklab, var(--color-white) 3%, transparent)}}.bg-white\/\[0\.04\]{background-color:#ffffff0a}@supports (color:color-mix(in lab, red, red)){.bg-white\/\[0\.04\]{background-color:color-mix(in oklab, var(--color-white) 4%, transparent)}}.bg-white\/\[0\.05\]{background-color:#ffffff0d}@supports (color:color-mix(in lab, red, red)){.bg-white\/\[0\.05\]{background-color:color-mix(in oklab, var(--color-white) 5%, transparent)}}.bg-white\/\[0\.06\]{background-color:#ffffff0f}@supports (color:color-mix(in lab, red, red)){.bg-white\/\[0\.06\]{background-color:color-mix(in oklab, var(--color-white) 6%, transparent)}}.bg-white\/\[0\.07\]{background-color:#ffffff12}@supports (color:color-mix(in lab, red, red)){.bg-white\/\[0\.07\]{background-color:color-mix(in oklab, var(--color-white) 7.0%, transparent)}}.bg-white\/\[0\.08\]{background-color:#ffffff14}@supports (color:color-mix(in lab, red, red)){.bg-white\/\[0\.08\]{background-color:color-mix(in oklab, var(--color-white) 8%, transparent)}}.bg-gradient-to-b{--tw-gradient-position:to bottom in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-br{--tw-gradient-position:to bottom right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-r{--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-bernstein-hell{--tw-gradient-from:var(--bernstein-hell);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-box\/30{--tw-gradient-from:var(--box)}@supports (color:color-mix(in lab, red, red)){.from-box\/30{--tw-gradient-from:color-mix(in oklab, var(--box) 30%, transparent)}}.from-box\/30{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-lab\/30{--tw-gradient-from:var(--lab)}@supports (color:color-mix(in lab, red, red)){.from-lab\/30{--tw-gradient-from:color-mix(in oklab, var(--lab) 30%, transparent)}}.from-lab\/30{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-white\/20{--tw-gradient-from:#fff3}@supports (color:color-mix(in lab, red, red)){.from-white\/20{--tw-gradient-from:color-mix(in oklab, var(--color-white) 20%, transparent)}}.from-white\/20{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-white\/\[0\.1\]{--tw-gradient-from:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.from-white\/\[0\.1\]{--tw-gradient-from:color-mix(in oklab, var(--color-white) 10%, transparent)}}.from-white\/\[0\.1\]{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-white\/\[0\.07\]{--tw-gradient-from:#ffffff12}@supports (color:color-mix(in lab, red, red)){.from-white\/\[0\.07\]{--tw-gradient-from:color-mix(in oklab, var(--color-white) 7.0%, transparent)}}.from-white\/\[0\.07\]{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-bernstein{--tw-gradient-to:var(--bernstein);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-box\/\[0\.05\]{--tw-gradient-to:var(--box)}@supports (color:color-mix(in lab, red, red)){.to-box\/\[0\.05\]{--tw-gradient-to:color-mix(in oklab, var(--box) 5%, transparent)}}.to-box\/\[0\.05\]{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-lab\/\[0\.05\]{--tw-gradient-to:var(--lab)}@supports (color:color-mix(in lab, red, red)){.to-lab\/\[0\.05\]{--tw-gradient-to:color-mix(in oklab, var(--lab) 5%, transparent)}}.to-lab\/\[0\.05\]{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-transparent{--tw-gradient-to:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-white\/0{--tw-gradient-to:#0000}@supports (color:color-mix(in lab, red, red)){.to-white\/0{--tw-gradient-to:color-mix(in oklab, var(--color-white) 0%, transparent)}}.to-white\/0{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-white\/\[0\.02\]{--tw-gradient-to:#ffffff05}@supports (color:color-mix(in lab, red, red)){.to-white\/\[0\.02\]{--tw-gradient-to:color-mix(in oklab, var(--color-white) 2%, transparent)}}.to-white\/\[0\.02\]{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-white\/\[0\.03\]{--tw-gradient-to:#ffffff08}@supports (color:color-mix(in lab, red, red)){.to-white\/\[0\.03\]{--tw-gradient-to:color-mix(in oklab, var(--color-white) 3%, transparent)}}.to-white\/\[0\.03\]{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.bg-clip-padding{background-clip:padding-box}.fill-text-2{fill:var(--text-2)}.fill-text-3{fill:var(--text-3)}.object-contain{object-fit:contain}.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-0\.5{padding-inline:calc(var(--spacing) * .5)}.px-1{padding-inline:var(--spacing)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-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-6{padding-block:calc(var(--spacing) * 6)}.py-7{padding-block:calc(var(--spacing) * 7)}.py-8{padding-block:calc(var(--spacing) * 8)}.pt-0\.5{padding-top:calc(var(--spacing) * .5)}.pt-1{padding-top:var(--spacing)}.pt-1\.5{padding-top:calc(var(--spacing) * 1.5)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-2\.5{padding-top:calc(var(--spacing) * 2.5)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-5{padding-top:calc(var(--spacing) * 5)}.pr-1{padding-right:var(--spacing)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pr-10{padding-right:calc(var(--spacing) * 10)}.pb-0{padding-bottom:0}.pb-1{padding-bottom:var(--spacing)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-2\.5{padding-bottom:calc(var(--spacing) * 2.5)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pb-12{padding-bottom:calc(var(--spacing) * 12)}.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-1{padding-left:var(--spacing)}.pl-3\.5{padding-left:calc(var(--spacing) * 3.5)}.pl-5{padding-left:calc(var(--spacing) * 5)}.pl-9{padding-left:calc(var(--spacing) * 9)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.etikett{font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.12em;font-weight:600}.font-anzeige,.font-heading{font-family:Barlow Condensed,Barlow,Segoe UI,sans-serif}.font-mono{font-family:JetBrains Mono,ui-monospace,Cascadia Mono,Consolas,monospace}.font-sans{font-family:Barlow,Segoe UI,system-ui,sans-serif}.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-\[9\.5px\]{font-size:9.5px}.text-\[10\.5px\]{font-size:10.5px}.text-\[10px\]{font-size:10px}.text-\[11\.5px\]{font-size:11.5px}.text-\[11px\]{font-size:11px}.text-\[12\.5px\]{font-size:12.5px}.text-\[12px\]{font-size:12px}.text-\[13\.5px\]{font-size:13.5px}.text-\[13px\]{font-size:13px}.text-\[14\.5px\]{font-size:14.5px}.text-\[14px\]{font-size:14px}.text-\[15\.5px\]{font-size:15.5px}.text-\[15px\]{font-size:15px}.text-\[16\.5px\]{font-size:16.5px}.text-\[16px\]{font-size:16px}.text-\[17px\]{font-size:17px}.text-\[19px\]{font-size:19px}.text-\[20px\]{font-size:20px}.text-\[21px\]{font-size:21px}.text-\[26px\]{font-size:26px}.text-\[28px\]{font-size:28px}.text-\[30px\]{font-size:30px}.text-\[32px\]{font-size:32px}.text-\[38px\]{font-size:38px}.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-\[1\.05\]{--tw-leading:1.05;line-height:1.05}.leading-\[1\.35\]{--tw-leading:1.35;line-height:1.35}.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-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[-0\.01em\]{--tw-tracking:-.01em;letter-spacing:-.01em}.tracking-\[-0\.015em\]{--tw-tracking:-.015em;letter-spacing:-.015em}.tracking-\[0\.01em\]{--tw-tracking:.01em;letter-spacing:.01em}.tracking-\[0\.1em\]{--tw-tracking:.1em;letter-spacing:.1em}.tracking-\[0\.005em\]{--tw-tracking:.005em;letter-spacing:.005em}.tracking-\[0\.08em\]{--tw-tracking:.08em;letter-spacing:.08em}.tracking-\[0\.12em\]{--tw-tracking:.12em;letter-spacing:.12em}.tracking-\[0\.14em\]{--tw-tracking:.14em;letter-spacing:.14em}.tracking-\[0\.16em\]{--tw-tracking:.16em;letter-spacing:.16em}.tracking-\[0\.18em\]{--tw-tracking:.18em;letter-spacing:.18em}.tracking-\[0\.22em\]{--tw-tracking:.22em;letter-spacing:.22em}.tracking-\[0\.32em\]{--tw-tracking:.32em;letter-spacing:.32em}.tracking-normal{--tw-tracking:var(--tracking-normal);letter-spacing:var(--tracking-normal)}.\[overflow-wrap\:anywhere\]{overflow-wrap:anywhere}.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-bernstein{color:var(--bernstein)}.text-box{color:var(--box)}.text-box-text{color:var(--box-text)}.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-lab{color:var(--lab)}.text-lab-text{color:var(--lab-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}.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,)}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.no-underline{text-decoration-line:none}.underline-offset-4{text-underline-offset:4px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.accent-\[var\(--lab\)\]{accent-color:var(--lab)}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.opacity-90{opacity:.9}.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_var\(--bernstein\)\]{--tw-shadow:0 0 8px var(--tw-shadow-color,var(--bernstein));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_var\(--cyan\)\]{--tw-shadow:0 0 8px var(--tw-shadow-color,var(--cyan));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_var\(--gruen\)\]{--tw-shadow:0 0 8px var(--tw-shadow-color,var(--gruen));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_var\(--rot\)\]{--tw-shadow:0 0 8px var(--tw-shadow-color,var(--rot));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_10px_var\(--cyan\)\]{--tw-shadow:0 0 10px var(--tw-shadow-color,var(--cyan));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_28px_-6px_var\(--box\)\]{--tw-shadow:0 0 28px -6px var(--tw-shadow-color,var(--box));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_28px_-6px_var\(--lab\)\]{--tw-shadow:0 0 28px -6px var(--tw-shadow-color,var(--lab));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[inset_0_1px_0_rgb\(255_255_255\/0\.06\)\]{--tw-shadow:inset 0 1px 0 var(--tw-shadow-color,#ffffff0f);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[inset_0_1px_0_rgb\(255_255_255\/0\.35\)\,0_8px_22px_-10px_var\(--bernstein\)\]{--tw-shadow:inset 0 1px 0 var(--tw-shadow-color,#ffffff59), 0 8px 22px -10px var(--tw-shadow-color,var(--bernstein));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-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-4{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-\[3px\]{--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)}.ring-\[\#0b0f16\]{--tw-ring-color:#0b0f16}.ring-\[\#0d1119\]{--tw-ring-color:#0d1119}.ring-\[var\(--panel\)\]{--tw-ring-color:var(--panel)}.ring-bernstein\/30{--tw-ring-color:var(--bernstein)}@supports (color:color-mix(in lab, red, red)){.ring-bernstein\/30{--tw-ring-color:color-mix(in oklab, var(--bernstein) 30%, transparent)}}.ring-bernstein\/35{--tw-ring-color:var(--bernstein)}@supports (color:color-mix(in lab, red, red)){.ring-bernstein\/35{--tw-ring-color:color-mix(in oklab, var(--bernstein) 35%, transparent)}}.ring-box\/30{--tw-ring-color:var(--box)}@supports (color:color-mix(in lab, red, red)){.ring-box\/30{--tw-ring-color:color-mix(in oklab, var(--box) 30%, transparent)}}.ring-box\/35{--tw-ring-color:var(--box)}@supports (color:color-mix(in lab, red, red)){.ring-box\/35{--tw-ring-color:color-mix(in oklab, var(--box) 35%, transparent)}}.ring-cyan\/25{--tw-ring-color:var(--cyan)}@supports (color:color-mix(in lab, red, red)){.ring-cyan\/25{--tw-ring-color:color-mix(in oklab, var(--cyan) 25%, transparent)}}.ring-cyan\/30{--tw-ring-color:var(--cyan)}@supports (color:color-mix(in lab, red, red)){.ring-cyan\/30{--tw-ring-color:color-mix(in oklab, var(--cyan) 30%, transparent)}}.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)}}.ring-gruen\/25{--tw-ring-color:var(--gruen)}@supports (color:color-mix(in lab, red, red)){.ring-gruen\/25{--tw-ring-color:color-mix(in oklab, var(--gruen) 25%, transparent)}}.ring-gruen\/30{--tw-ring-color:var(--gruen)}@supports (color:color-mix(in lab, red, red)){.ring-gruen\/30{--tw-ring-color:color-mix(in oklab, var(--gruen) 30%, transparent)}}.ring-lab\/30{--tw-ring-color:var(--lab)}@supports (color:color-mix(in lab, red, red)){.ring-lab\/30{--tw-ring-color:color-mix(in oklab, var(--lab) 30%, transparent)}}.ring-lab\/35{--tw-ring-color:var(--lab)}@supports (color:color-mix(in lab, red, red)){.ring-lab\/35{--tw-ring-color:color-mix(in oklab, var(--lab) 35%, transparent)}}.ring-rot\/35{--tw-ring-color:var(--rot)}@supports (color:color-mix(in lab, red, red)){.ring-rot\/35{--tw-ring-color:color-mix(in oklab, var(--rot) 35%, transparent)}}.ring-rot\/40{--tw-ring-color:var(--rot)}@supports (color:color-mix(in lab, red, red)){.ring-rot\/40{--tw-ring-color:color-mix(in oklab, var(--rot) 40%, transparent)}}.ring-white\/10{--tw-ring-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.ring-white\/10{--tw-ring-color:color-mix(in oklab, var(--color-white) 10%, transparent)}}.ring-white\/12{--tw-ring-color:#ffffff1f}@supports (color:color-mix(in lab, red, red)){.ring-white\/12{--tw-ring-color:color-mix(in oklab, var(--color-white) 12%, transparent)}}.ring-white\/15{--tw-ring-color:#ffffff26}@supports (color:color-mix(in lab, red, red)){.ring-white\/15{--tw-ring-color:color-mix(in oklab, var(--color-white) 15%, transparent)}}.ring-white\/\[0\.07\]{--tw-ring-color:#ffffff12}@supports (color:color-mix(in lab, red, red)){.ring-white\/\[0\.07\]{--tw-ring-color:color-mix(in oklab, var(--color-white) 7.0%, 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,)}.blur-xl{--tw-blur:blur(var(--blur-xl));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,)}.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-xl{--tw-backdrop-blur:blur(var(--blur-xl));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.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-\[background-color\,border-color\,color\,box-shadow\,filter\]{transition-property:background-color,border-color,color,box-shadow,filter;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[filter\]{transition-property:filter;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[stroke-dasharray\]{transition-property:stroke-dasharray;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-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}.duration-700{--tw-duration:.7s;transition-duration:.7s}.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}.\[--rand\:color-mix\(in_srgb\,var\(--box\)_28\%\,transparent\)\]{--rand:var(--box)}@supports (color:color-mix(in lab, red, red)){.\[--rand\:color-mix\(in_srgb\,var\(--box\)_28\%\,transparent\)\]{--rand:color-mix(in srgb,var(--box) 28%,transparent)}}.\[--rand\:color-mix\(in_srgb\,var\(--box\)_32\%\,transparent\)\]{--rand:var(--box)}@supports (color:color-mix(in lab, red, red)){.\[--rand\:color-mix\(in_srgb\,var\(--box\)_32\%\,transparent\)\]{--rand:color-mix(in srgb,var(--box) 32%,transparent)}}.\[--rand\:color-mix\(in_srgb\,var\(--lab\)_28\%\,transparent\)\]{--rand:var(--lab)}@supports (color:color-mix(in lab, red, red)){.\[--rand\:color-mix\(in_srgb\,var\(--lab\)_28\%\,transparent\)\]{--rand:color-mix(in srgb,var(--lab) 28%,transparent)}}.\[--rand\:color-mix\(in_srgb\,var\(--lab\)_32\%\,transparent\)\]{--rand:var(--lab)}@supports (color:color-mix(in lab, red, red)){.\[--rand\:color-mix\(in_srgb\,var\(--lab\)_32\%\,transparent\)\]{--rand:color-mix(in srgb,var(--lab) 32%,transparent)}}.\[font-variant-ligatures\:none\]{font-variant-ligatures:none}.\[grid-area\:herkunft\]{grid-area:herkunft}.\[grid-area\:knoepfe\]{grid-area:knoepfe}.\[grid-area\:name\]{grid-area:name}.\[grid-area\:text\]{grid-area:text}.\[grid-area\:zeit\]{grid-area:zeit}.\[grid-template-areas\:\'name_herkunft\'_\'zeit_zeit\'_\'text_text\'_\'knoepfe_knoepfe\'\]{grid-template-areas:"name herkunft""zeit zeit""text text""knoepfe knoepfe"}.paused{animation-play-state:paused}.ring-inset{--tw-ring-inset:inset}.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}@media (hover:hover){.group-hover\:translate-x-0\.5:is(:where(.group):hover *){--tw-translate-x:calc(var(--spacing) * .5);translate:var(--tw-translate-x) var(--tw-translate-y)}.group-hover\:bg-white\/\[0\.06\]:is(:where(.group):hover *){background-color:#ffffff0f}@supports (color:color-mix(in lab, red, red)){.group-hover\:bg-white\/\[0\.06\]:is(:where(.group):hover *){background-color:color-mix(in oklab, var(--color-white) 6%, transparent)}}.group-hover\:text-foreground:is(:where(.group):hover *){color:var(--foreground)}.group-hover\:text-text-2:is(:where(.group):hover *){color:var(--text-2)}}.placeholder\:text-text-3::placeholder{color:var(--text-3)}.before\:absolute:before{content:var(--tw-content);position:absolute}.before\:top-2\.5:before{content:var(--tw-content);top:calc(var(--spacing) * 2.5)}.before\:bottom-2\.5:before{content:var(--tw-content);bottom:calc(var(--spacing) * 2.5)}.before\:left-0:before{content:var(--tw-content);left:0}.before\:w-\[3px\]:before{content:var(--tw-content);width:3px}.before\:rounded-full:before{content:var(--tw-content);border-radius:2147483647px}.before\:bg-bernstein:before{content:var(--tw-content);background-color:var(--bernstein)}.before\:bg-box:before{content:var(--tw-content);background-color:var(--box)}.before\:bg-lab:before{content:var(--tw-content);background-color:var(--lab)}.before\:bg-text-2:before{content:var(--tw-content);background-color:var(--text-2)}.before\:opacity-0:before{content:var(--tw-content);opacity:0}.before\:shadow-\[0_0_12px_var\(--bernstein\)\]:before{content:var(--tw-content);--tw-shadow:0 0 12px var(--tw-shadow-color,var(--bernstein));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.before\:shadow-\[0_0_12px_var\(--box\)\]:before{content:var(--tw-content);--tw-shadow:0 0 12px var(--tw-shadow-color,var(--box));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.before\:shadow-\[0_0_12px_var\(--lab\)\]:before{content:var(--tw-content);--tw-shadow:0 0 12px var(--tw-shadow-color,var(--lab));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.before\:transition-opacity:before{content:var(--tw-content);transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.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}.first\:pt-1:first-child{padding-top:var(--spacing)}.open\:pb-2:is([open],:popover-open,:open){padding-bottom:calc(var(--spacing) * 2)}.open\:pb-3:is([open],:popover-open,:open){padding-bottom:calc(var(--spacing) * 3)}@media (hover:hover){.hover\:border-white\/20:hover{border-color:#fff3}@supports (color:color-mix(in lab, red, red)){.hover\:border-white\/20:hover{border-color:color-mix(in oklab, var(--color-white) 20%, transparent)}}.hover\:bg-bernstein\/\[0\.13\]:hover{background-color:var(--bernstein)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-bernstein\/\[0\.13\]:hover{background-color:color-mix(in oklab, var(--bernstein) 13%, transparent)}}.hover\:bg-box\/20:hover{background-color:var(--box)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-box\/20:hover{background-color:color-mix(in oklab, var(--box) 20%, transparent)}}.hover\:bg-cyan\/15:hover{background-color:var(--cyan)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-cyan\/15:hover{background-color:color-mix(in oklab, var(--cyan) 15%, transparent)}}.hover\:bg-lab\/20:hover{background-color:var(--lab)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-lab\/20:hover{background-color:color-mix(in oklab, var(--lab) 20%, transparent)}}.hover\:bg-rot-grund:hover{background-color:var(--rot-grund)}.hover\:bg-rot\/15:hover{background-color:var(--rot)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-rot\/15:hover{background-color:color-mix(in oklab, var(--rot) 15%, transparent)}}.hover\:bg-rot\/\[0\.18\]:hover{background-color:var(--rot)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-rot\/\[0\.18\]:hover{background-color:color-mix(in oklab, var(--rot) 18%, transparent)}}.hover\:bg-white\/\[0\.05\]:hover{background-color:#ffffff0d}@supports (color:color-mix(in lab, red, red)){.hover\:bg-white\/\[0\.05\]:hover{background-color:color-mix(in oklab, var(--color-white) 5%, transparent)}}.hover\:bg-white\/\[0\.06\]:hover{background-color:#ffffff0f}@supports (color:color-mix(in lab, red, red)){.hover\:bg-white\/\[0\.06\]:hover{background-color:color-mix(in oklab, var(--color-white) 6%, transparent)}}.hover\:bg-white\/\[0\.08\]:hover{background-color:#ffffff14}@supports (color:color-mix(in lab, red, red)){.hover\:bg-white\/\[0\.08\]:hover{background-color:color-mix(in oklab, var(--color-white) 8%, transparent)}}.hover\:bg-white\/\[0\.045\]:hover{background-color:#ffffff0b}@supports (color:color-mix(in lab, red, red)){.hover\:bg-white\/\[0\.045\]:hover{background-color:color-mix(in oklab, var(--color-white) 4.5%, transparent)}}.hover\:text-cyan:hover{color:var(--cyan)}.hover\:text-foreground:hover{color:var(--foreground)}.hover\:text-lab-text:hover{color:var(--lab-text)}.hover\:text-rot-text:hover{color:var(--rot-text)}.hover\:text-text-2:hover{color:var(--text-2)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:brightness-110:hover{--tw-brightness:brightness(110%);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,)}.hover\:brightness-125:hover{--tw-brightness:brightness(125%);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,)}}.focus\:border-cyan\/60:focus{border-color:var(--cyan)}@supports (color:color-mix(in lab, red, red)){.focus\:border-cyan\/60:focus{border-color:color-mix(in oklab, var(--cyan) 60%, transparent)}}.focus\:border-lab\/60:focus{border-color:var(--lab)}@supports (color:color-mix(in lab, red, red)){.focus\:border-lab\/60:focus{border-color:color-mix(in oklab, var(--lab) 60%, transparent)}}.focus\:bg-white\/\[0\.06\]:focus{background-color:#ffffff0f}@supports (color:color-mix(in lab, red, red)){.focus\:bg-white\/\[0\.06\]:focus{background-color:color-mix(in oklab, var(--color-white) 6%, transparent)}}.focus-visible\:rounded-md:focus-visible{border-radius:calc(var(--radius) * .8)}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-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-cyan\/60:focus-visible{--tw-ring-color:var(--cyan)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-cyan\/60:focus-visible{--tw-ring-color:color-mix(in oklab, var(--cyan) 60%, transparent)}}.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}.data-\[status\=active\]\:from-bernstein\/\[0\.16\][data-status=active]{--tw-gradient-from:var(--bernstein)}@supports (color:color-mix(in lab, red, red)){.data-\[status\=active\]\:from-bernstein\/\[0\.16\][data-status=active]{--tw-gradient-from:color-mix(in oklab, var(--bernstein) 16%, transparent)}}.data-\[status\=active\]\:from-bernstein\/\[0\.16\][data-status=active]{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.data-\[status\=active\]\:from-box\/\[0\.2\][data-status=active]{--tw-gradient-from:var(--box)}@supports (color:color-mix(in lab, red, red)){.data-\[status\=active\]\:from-box\/\[0\.2\][data-status=active]{--tw-gradient-from:color-mix(in oklab, var(--box) 20%, transparent)}}.data-\[status\=active\]\:from-box\/\[0\.2\][data-status=active]{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.data-\[status\=active\]\:from-lab\/\[0\.2\][data-status=active]{--tw-gradient-from:var(--lab)}@supports (color:color-mix(in lab, red, red)){.data-\[status\=active\]\:from-lab\/\[0\.2\][data-status=active]{--tw-gradient-from:color-mix(in oklab, var(--lab) 20%, transparent)}}.data-\[status\=active\]\:from-lab\/\[0\.2\][data-status=active]{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.data-\[status\=active\]\:from-white\/\[0\.08\][data-status=active]{--tw-gradient-from:#ffffff14}@supports (color:color-mix(in lab, red, red)){.data-\[status\=active\]\:from-white\/\[0\.08\][data-status=active]{--tw-gradient-from:color-mix(in oklab, var(--color-white) 8%, transparent)}}.data-\[status\=active\]\:from-white\/\[0\.08\][data-status=active]{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.data-\[status\=active\]\:text-foreground[data-status=active]{color:var(--foreground)}.data-\[status\=active\]\:before\:opacity-100[data-status=active]:before{content:var(--tw-content);opacity:1}@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)}.motion-safe\:animate-spin{animation:var(--animate-spin)}}@media (width>=480px){.min-\[480px\]\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=40rem){.sm\:col-span-1{grid-column:span 1/span 1}.sm\:col-start-3{grid-column-start:3}.sm\:row-start-1{grid-row-start:1}.sm\:block{display:block}.sm\:flex{display:flex}.sm\:grid{display:grid}.sm\:hidden{display:none}.sm\:inline{display:inline}.sm\:size-\[168px\]{width:168px;height:168px}.sm\:max-w-lg{max-width:var(--container-lg)}.sm\:max-w-sm{max-width:var(--container-sm)}.sm\:max-w-xl{max-width:var(--container-xl)}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:grid-cols-\[minmax\(0\,1\.5fr\)_70px_130px_minmax\(0\,1\.5fr\)\]{grid-template-columns:minmax(0,1.5fr) 70px 130px minmax(0,1.5fr)}.sm\:grid-cols-\[minmax\(0\,1fr\)_120px_160px\]{grid-template-columns:minmax(0,1fr) 120px 160px}.sm\:flex-row{flex-direction:row}.sm\:items-baseline{align-items:baseline}.sm\:justify-end{justify-content:flex-end}.sm\:gap-2{gap:calc(var(--spacing) * 2)}.sm\:gap-4{gap:calc(var(--spacing) * 4)}.sm\:gap-8{gap:calc(var(--spacing) * 8)}.sm\:self-start{align-self:flex-start}.sm\:p-5{padding:calc(var(--spacing) * 5)}.sm\:p-6{padding:calc(var(--spacing) * 6)}.sm\:p-7{padding:calc(var(--spacing) * 7)}.sm\:px-4{padding-inline:calc(var(--spacing) * 4)}.sm\:px-6{padding-inline:calc(var(--spacing) * 6)}.sm\:pt-6{padding-top:calc(var(--spacing) * 6)}.sm\:text-left{text-align:left}.sm\:text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.sm\:text-\[10px\]{font-size:10px}.sm\:text-\[22px\]{font-size:22px}.sm\:text-\[34px\]{font-size:34px}.sm\:text-\[44px\]{font-size:44px}.sm\:text-\[46px\]{font-size:46px}.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-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-span-4{grid-column:span 4/span 4}.md\:block{display:block}.md\:grid{display:grid}.md\:hidden{display:none}.md\:w-\[420px\]{width:420px}.md\:w-auto{width:auto}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-\[210px_100px_170px_minmax\(0\,1fr\)_auto\]{grid-template-columns:210px 100px 170px minmax(0,1fr) auto}.md\:grid-cols-\[minmax\(0\,1\.1fr\)_minmax\(0\,1\.3fr\)_minmax\(0\,1fr\)_minmax\(0\,0\.9fr\)_11\.5rem\]{grid-template-columns:minmax(0,1.1fr) minmax(0,1.3fr) minmax(0,1fr) minmax(0,.9fr) 11.5rem}.md\:grid-cols-\[minmax\(0\,1\.3fr\)_minmax\(0\,1fr\)_minmax\(0\,1\.1fr\)_minmax\(0\,1\.1fr\)\]{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1.1fr) minmax(0,1.1fr)}.md\:grid-cols-\[minmax\(0\,1\.4fr\)_minmax\(0\,1fr\)_minmax\(0\,1fr\)_110px\]{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr) 110px}.md\:grid-cols-\[minmax\(0\,1\.6fr\)_minmax\(0\,1fr\)_minmax\(0\,1\.4fr\)\]{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr) minmax(0,1.4fr)}.md\:grid-cols-\[minmax\(0\,1\.35fr\)_110px_minmax\(0\,1fr\)_minmax\(0\,1\.2fr\)_minmax\(0\,1fr\)_90px\]{grid-template-columns:minmax(0,1.35fr) 110px minmax(0,1fr) minmax(0,1.2fr) minmax(0,1fr) 90px}.md\:grid-rows-\[auto_auto_1fr\]{grid-template-rows:auto auto 1fr}.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\:items-stretch{align-items:stretch}.md\:gap-6{gap:calc(var(--spacing) * 6)}.md\:gap-x-4{column-gap:calc(var(--spacing) * 4)}.md\:justify-self-end{justify-self:flex-end}.md\:px-3{padding-inline:calc(var(--spacing) * 3)}.md\:px-10{padding-inline:calc(var(--spacing) * 10)}.md\:pt-8{padding-top:calc(var(--spacing) * 8)}.md\:pb-1{padding-bottom:var(--spacing)}.md\:pl-\[18px\]{padding-left:18px}.md\:text-\[32px\]{font-size:32px}.md\:\[grid-template-areas\:\'name_herkunft\'_\'zeit_knoepfe\'_\'text_knoepfe\'\]{grid-template-areas:"name herkunft""zeit knoepfe""text knoepfe"}}@media (width>=64rem){.lg\:bottom-6{bottom:calc(var(--spacing) * 6)}.lg\:col-span-1{grid-column:span 1/span 1}.lg\:flex{display:flex}.lg\:grid{display:grid}.lg\:hidden{display:none}.lg\:grid-flow-col{grid-auto-flow:column}.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-\[280px_minmax\(0\,1fr\)\]{grid-template-columns:280px 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\.5fr\)_minmax\(0\,1\.4fr\)_minmax\(0\,1fr\)_minmax\(0\,1fr\)_minmax\(0\,1\.2fr\)_minmax\(0\,0\.8fr\)\]{grid-template-columns:minmax(0,1.5fr) minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr) minmax(0,1.2fr) minmax(0,.8fr)}.lg\:grid-cols-\[minmax\(0\,1\.35fr\)_minmax\(0\,1fr\)\]{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr)}.lg\:grid-rows-\[repeat\(var\(--zeilen\)\,auto\)\]{grid-template-rows:repeat(var(--zeilen),auto)}.lg\:items-start{align-items:flex-start}.lg\:gap-5{gap:calc(var(--spacing) * 5)}.lg\:border-t-0{border-top-style:var(--tw-border-style);border-top-width:0}.lg\:px-6{padding-inline:calc(var(--spacing) * 6)}}@media (width>=80rem){.xl\:col-span-1{grid-column:span 1/span 1}.xl\:col-span-2{grid-column:span 2/span 2}.xl\:col-start-auto{grid-column-start:auto}.xl\:row-start-auto{grid-row-start:auto}.xl\:block{display:block}.xl\:grid{display:grid}.xl\:hidden{display:none}.xl\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.xl\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.xl\:grid-cols-\[minmax\(0\,1\.7fr\)_7rem_minmax\(0\,0\.7fr\)_minmax\(0\,1\.2fr\)_7\.5rem_5rem_9\.5rem\]{grid-template-columns:minmax(0,1.7fr) 7rem minmax(0,.7fr) minmax(0,1.2fr) 7.5rem 5rem 9.5rem}.xl\:grid-cols-\[minmax\(0\,1fr\)_minmax\(0\,340px\)\]{grid-template-columns:minmax(0,1fr) minmax(0,340px)}.xl\:grid-cols-\[minmax\(10\.5rem\,1\.1fr\)_7\.5rem_minmax\(0\,1fr\)_minmax\(0\,1\.4fr\)_11rem\]{grid-template-columns:minmax(10.5rem,1.1fr) 7.5rem minmax(0,1fr) minmax(0,1.4fr) 11rem}.xl\:grid-rows-none{grid-template-rows:none}.xl\:flex-col{flex-direction:column}.xl\:items-center{align-items:center}.xl\:items-stretch{align-items:stretch}.xl\:gap-8{gap:calc(var(--spacing) * 8)}.xl\:gap-10{gap:calc(var(--spacing) * 10)}.xl\:gap-x-3{column-gap:calc(var(--spacing) * 3)}.xl\:self-center{align-self:center}.xl\:justify-self-start{justify-self:flex-start}.xl\:justify-self-stretch{justify-self:stretch}.xl\:pt-0{padding-top:0}.xl\:\[grid-template-areas\:\'name_herkunft_zeit_text_knoepfe\'\]{grid-template-areas:"name herkunft zeit text knoepfe"}}@media (width>=87.5rem){.min-\[87\.5rem\]\:grid-cols-\[minmax\(0\,1\.7fr\)_7rem_minmax\(0\,0\.7fr\)_minmax\(0\,1\.2fr\)_7\.5rem_5rem_17\.5rem\]{grid-template-columns:minmax(0,1.7fr) 7rem minmax(0,.7fr) minmax(0,1.2fr) 7.5rem 5rem 17.5rem}.min-\[87\.5rem\]\:flex-row{flex-direction:row}.min-\[87\.5rem\]\:justify-end{justify-content:flex-end}}@media (width>=96rem){.\32 xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.\32 xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@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)}.\[\&\:\:-webkit-details-marker\]\:hidden::-webkit-details-marker{display:none}: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)}}.data-\[status\=active\]\:\[\&\>svg\]\:text-bernstein[data-status=active]>svg{color:var(--bernstein)}.data-\[status\=active\]\:\[\&\>svg\]\:text-box[data-status=active]>svg{color:var(--box)}.data-\[status\=active\]\:\[\&\>svg\]\:text-foreground[data-status=active]>svg{color:var(--foreground)}.data-\[status\=active\]\:\[\&\>svg\]\:text-lab[data-status=active]>svg{color:var(--lab)}.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:#07090e;--foreground:#e8ecf3;--card:#0f131a;--card-foreground:#e8ecf3;--popover:#111620;--popover-foreground:#e8ecf3;--primary:#ffb020;--primary-foreground:#1a1300;--secondary:#161b24;--secondary-foreground:#e8ecf3;--muted:#161b24;--muted-foreground:#8792a4;--accent:#161b24;--accent-foreground:#e8ecf3;--destructive:#ff5a4f;--border:#1e2430;--input:#333c4c;--ring:#5cc8ff;--panel:#0f131a;--erhaben:#161b24;--linie:#1e2430;--linie-stark:#333c4c;--text-2:#aab4c4;--text-3:#8792a4;--flaeche-rand:#94a3c224;--flaeche-rand-hell:#a8b6d642;--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;--box:#8b95ff;--box-text:#b4bbff;--box-grund:#151a36;--box-rand:#3f4aa8;--lab:#c98bff;--lab-text:#deb8ff;--lab-grund:#22163a;--lab-rand:#6d44a6;--reihe-1:#3987e5;--reihe-2:#d55181;--reihe-3:#c98500;--reihe-weitere:#9aa3ad;--aus-grund:#131821;--aus-rand:#2a3140;--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}}@keyframes auftauchen{0%{opacity:0;transform:translateY(8px)}}@keyframes ring-fuellen{0%{stroke-dasharray:0 1000}}@keyframes glut-atmen{0%,to{opacity:.6}50%{opacity:1}}@keyframes kreisen{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:no-preference){.auftauchen{animation:.56s cubic-bezier(.2,.7,.2,1) both auftauchen;animation-delay:calc(var(--i,0) * 70ms)}.ring-fuellt{animation:1.1s cubic-bezier(.25,.8,.25,1) both ring-fuellen;animation-delay:calc(var(--i,0) * 45ms + .12s)}.glut-atmet{animation:6s ease-in-out infinite glut-atmen}.kreist{transform-box:fill-box;transform-origin:50%;animation:90s linear infinite kreisen}}@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-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@keyframes spin{to{transform:rotate(360deg)}}@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/sheet-DG7u1mB-.js b/frontend/dist/assets/sheet-DG7u1mB-.js new file mode 100644 index 0000000..6b964af --- /dev/null +++ b/frontend/dist/assets/sheet-DG7u1mB-.js @@ -0,0 +1 @@ +import{a as e,i as t,r as n,t as r}from"./dist-aE7UmubC.js";import{a as i,c as a,i as o,n as s,o as c,r as l,s as u,t as d}from"./dist-CakcBaML.js";import{t as f}from"./button-BHVKhtQ6.js";var p=n();e();var m=t();function h(e){let t=(0,p.c)(4),n;t[0]===e?n=t[1]:({...n}=e,t[0]=e,t[1]=n);let r;return t[2]===n?r=t[3]:(r=(0,m.jsx)(d,{"data-slot":`sheet`,...n}),t[2]=n,t[3]=r),r}function g(e){let t=(0,p.c)(4),n;t[0]===e?n=t[1]:({...n}=e,t[0]=e,t[1]=n);let r;return t[2]===n?r=t[3]:(r=(0,m.jsx)(c,{"data-slot":`sheet-portal`,...n}),t[2]=n,t[3]=r),r}function _(e){let t=(0,p.c)(8),n,a;t[0]===e?(n=t[1],a=t[2]):({className:n,...a}=e,t[0]=e,t[1]=n,t[2]=a);let o;t[3]===n?o=t[4]:(o=r(`fixed inset-0 z-50 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0`,n),t[3]=n,t[4]=o);let s;return t[5]!==a||t[6]!==o?(s=(0,m.jsx)(i,{"data-slot":`sheet-overlay`,className:o,...a}),t[5]=a,t[6]=o,t[7]=s):s=t[7],s}function v(e){let t=(0,p.c)(17),n,i,o,c,u;t[0]===e?(n=t[1],i=t[2],o=t[3],c=t[4],u=t[5]):({className:i,children:n,side:c,showCloseButton:u,...o}=e,t[0]=e,t[1]=n,t[2]=i,t[3]=o,t[4]=c,t[5]=u);let d=c===void 0?`right`:c,h=u===void 0||u,v;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(v=(0,m.jsx)(_,{}),t[6]=v):v=t[6];let y;t[7]===i?y=t[8]:(y=r(`fixed z-50 flex flex-col gap-4 bg-popover bg-clip-padding text-sm text-popover-foreground shadow-lg transition duration-200 ease-in-out data-[side=bottom]:inset-x-0 data-[side=bottom]:bottom-0 data-[side=bottom]:h-auto data-[side=bottom]:border-t data-[side=left]:inset-y-0 data-[side=left]:left-0 data-[side=left]:h-full data-[side=left]:w-3/4 data-[side=left]:border-r data-[side=right]:inset-y-0 data-[side=right]:right-0 data-[side=right]:h-full data-[side=right]:w-3/4 data-[side=right]:border-l data-[side=top]:inset-x-0 data-[side=top]:top-0 data-[side=top]:h-auto data-[side=top]:border-b data-[side=left]:sm:max-w-sm data-[side=right]:sm:max-w-sm data-open:animate-in data-open:fade-in-0 data-[side=bottom]:data-open:slide-in-from-bottom-10 data-[side=left]:data-open:slide-in-from-left-10 data-[side=right]:data-open:slide-in-from-right-10 data-[side=top]:data-open:slide-in-from-top-10 data-closed:animate-out data-closed:fade-out-0 data-[side=bottom]:data-closed:slide-out-to-bottom-10 data-[side=left]:data-closed:slide-out-to-left-10 data-[side=right]:data-closed:slide-out-to-right-10 data-[side=top]:data-closed:slide-out-to-top-10`,i),t[7]=i,t[8]=y);let b;t[9]===h?b=t[10]:(b=h&&(0,m.jsx)(s,{"data-slot":`sheet-close`,asChild:!0,children:(0,m.jsxs)(f,{variant:`ghost`,className:`absolute top-3 right-3`,size:`icon-sm`,children:[(0,m.jsx)(a,{}),(0,m.jsx)(`span`,{className:`sr-only`,children:`Schließen`})]})}),t[9]=h,t[10]=b);let x;return t[11]!==n||t[12]!==o||t[13]!==d||t[14]!==y||t[15]!==b?(x=(0,m.jsxs)(g,{children:[v,(0,m.jsxs)(l,{"data-slot":`sheet-content`,"data-side":d,className:y,...o,children:[n,b]})]}),t[11]=n,t[12]=o,t[13]=d,t[14]=y,t[15]=b,t[16]=x):x=t[16],x}function y(e){let t=(0,p.c)(8),n,i;t[0]===e?(n=t[1],i=t[2]):({className:n,...i}=e,t[0]=e,t[1]=n,t[2]=i);let a;t[3]===n?a=t[4]:(a=r(`flex flex-col gap-0.5 p-4`,n),t[3]=n,t[4]=a);let o;return t[5]!==i||t[6]!==a?(o=(0,m.jsx)(`div`,{"data-slot":`sheet-header`,className:a,...i}),t[5]=i,t[6]=a,t[7]=o):o=t[7],o}function b(e){let t=(0,p.c)(8),n,i;t[0]===e?(n=t[1],i=t[2]):({className:n,...i}=e,t[0]=e,t[1]=n,t[2]=i);let a;t[3]===n?a=t[4]:(a=r(`font-heading text-base font-medium text-foreground`,n),t[3]=n,t[4]=a);let o;return t[5]!==i||t[6]!==a?(o=(0,m.jsx)(u,{"data-slot":`sheet-title`,className:a,...i}),t[5]=i,t[6]=a,t[7]=o):o=t[7],o}function x(e){let t=(0,p.c)(8),n,i;t[0]===e?(n=t[1],i=t[2]):({className:n,...i}=e,t[0]=e,t[1]=n,t[2]=i);let a;t[3]===n?a=t[4]:(a=r(`text-sm text-muted-foreground`,n),t[3]=n,t[4]=a);let s;return t[5]!==i||t[6]!==a?(s=(0,m.jsx)(o,{"data-slot":`sheet-description`,className:a,...i}),t[5]=i,t[6]=a,t[7]=s):s=t[7],s}export{b as a,y as i,v as n,x as r,h as t}; \ No newline at end of file diff --git a/frontend/dist/assets/sheet-Dx0TG2uq.js b/frontend/dist/assets/sheet-Dx0TG2uq.js deleted file mode 100644 index bdcfef7..0000000 --- a/frontend/dist/assets/sheet-Dx0TG2uq.js +++ /dev/null @@ -1 +0,0 @@ -import{a as e,i as t,r as n,t as r}from"./dist-aE7UmubC.js";import{Q as i}from"./index-BUHDF9RN.js";import{t as a}from"./button-DwYvdWVr.js";import{a as o,i as s,n as c,o as l,r as u,s as d,t as f}from"./dist-oje4j9hw.js";var p=n();e();var m=t();function h(e){let t=(0,p.c)(4),n;t[0]===e?n=t[1]:({...n}=e,t[0]=e,t[1]=n);let r;return t[2]===n?r=t[3]:(r=(0,m.jsx)(f,{"data-slot":`sheet`,...n}),t[2]=n,t[3]=r),r}function g(e){let t=(0,p.c)(4),n;t[0]===e?n=t[1]:({...n}=e,t[0]=e,t[1]=n);let r;return t[2]===n?r=t[3]:(r=(0,m.jsx)(l,{"data-slot":`sheet-portal`,...n}),t[2]=n,t[3]=r),r}function _(e){let t=(0,p.c)(8),n,i;t[0]===e?(n=t[1],i=t[2]):({className:n,...i}=e,t[0]=e,t[1]=n,t[2]=i);let a;t[3]===n?a=t[4]:(a=r(`fixed inset-0 z-50 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0`,n),t[3]=n,t[4]=a);let s;return t[5]!==i||t[6]!==a?(s=(0,m.jsx)(o,{"data-slot":`sheet-overlay`,className:a,...i}),t[5]=i,t[6]=a,t[7]=s):s=t[7],s}function v(e){let t=(0,p.c)(17),n,o,s,l,d;t[0]===e?(n=t[1],o=t[2],s=t[3],l=t[4],d=t[5]):({className:o,children:n,side:l,showCloseButton:d,...s}=e,t[0]=e,t[1]=n,t[2]=o,t[3]=s,t[4]=l,t[5]=d);let f=l===void 0?`right`:l,h=d===void 0||d,v;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(v=(0,m.jsx)(_,{}),t[6]=v):v=t[6];let y;t[7]===o?y=t[8]:(y=r(`fixed z-50 flex flex-col gap-4 bg-popover bg-clip-padding text-sm text-popover-foreground shadow-lg transition duration-200 ease-in-out data-[side=bottom]:inset-x-0 data-[side=bottom]:bottom-0 data-[side=bottom]:h-auto data-[side=bottom]:border-t data-[side=left]:inset-y-0 data-[side=left]:left-0 data-[side=left]:h-full data-[side=left]:w-3/4 data-[side=left]:border-r data-[side=right]:inset-y-0 data-[side=right]:right-0 data-[side=right]:h-full data-[side=right]:w-3/4 data-[side=right]:border-l data-[side=top]:inset-x-0 data-[side=top]:top-0 data-[side=top]:h-auto data-[side=top]:border-b data-[side=left]:sm:max-w-sm data-[side=right]:sm:max-w-sm data-open:animate-in data-open:fade-in-0 data-[side=bottom]:data-open:slide-in-from-bottom-10 data-[side=left]:data-open:slide-in-from-left-10 data-[side=right]:data-open:slide-in-from-right-10 data-[side=top]:data-open:slide-in-from-top-10 data-closed:animate-out data-closed:fade-out-0 data-[side=bottom]:data-closed:slide-out-to-bottom-10 data-[side=left]:data-closed:slide-out-to-left-10 data-[side=right]:data-closed:slide-out-to-right-10 data-[side=top]:data-closed:slide-out-to-top-10`,o),t[7]=o,t[8]=y);let b;t[9]===h?b=t[10]:(b=h&&(0,m.jsx)(c,{"data-slot":`sheet-close`,asChild:!0,children:(0,m.jsxs)(a,{variant:`ghost`,className:`absolute top-3 right-3`,size:`icon-sm`,children:[(0,m.jsx)(i,{}),(0,m.jsx)(`span`,{className:`sr-only`,children:`Schließen`})]})}),t[9]=h,t[10]=b);let x;return t[11]!==n||t[12]!==s||t[13]!==f||t[14]!==y||t[15]!==b?(x=(0,m.jsxs)(g,{children:[v,(0,m.jsxs)(u,{"data-slot":`sheet-content`,"data-side":f,className:y,...s,children:[n,b]})]}),t[11]=n,t[12]=s,t[13]=f,t[14]=y,t[15]=b,t[16]=x):x=t[16],x}function y(e){let t=(0,p.c)(8),n,i;t[0]===e?(n=t[1],i=t[2]):({className:n,...i}=e,t[0]=e,t[1]=n,t[2]=i);let a;t[3]===n?a=t[4]:(a=r(`flex flex-col gap-0.5 p-4`,n),t[3]=n,t[4]=a);let o;return t[5]!==i||t[6]!==a?(o=(0,m.jsx)(`div`,{"data-slot":`sheet-header`,className:a,...i}),t[5]=i,t[6]=a,t[7]=o):o=t[7],o}function b(e){let t=(0,p.c)(8),n,i;t[0]===e?(n=t[1],i=t[2]):({className:n,...i}=e,t[0]=e,t[1]=n,t[2]=i);let a;t[3]===n?a=t[4]:(a=r(`font-heading text-base font-medium text-foreground`,n),t[3]=n,t[4]=a);let o;return t[5]!==i||t[6]!==a?(o=(0,m.jsx)(d,{"data-slot":`sheet-title`,className:a,...i}),t[5]=i,t[6]=a,t[7]=o):o=t[7],o}function x(e){let t=(0,p.c)(8),n,i;t[0]===e?(n=t[1],i=t[2]):({className:n,...i}=e,t[0]=e,t[1]=n,t[2]=i);let a;t[3]===n?a=t[4]:(a=r(`text-sm text-muted-foreground`,n),t[3]=n,t[4]=a);let o;return t[5]!==i||t[6]!==a?(o=(0,m.jsx)(s,{"data-slot":`sheet-description`,className:a,...i}),t[5]=i,t[6]=a,t[7]=o):o=t[7],o}export{b as a,y as i,v as n,x as r,h as t}; \ No newline at end of file diff --git a/frontend/dist/index.html b/frontend/dist/index.html index 0b72702..10f3e38 100644 --- a/frontend/dist/index.html +++ b/frontend/dist/index.html @@ -9,13 +9,15 @@ Homelab Orchestrator - + - + + + - +
diff --git a/frontend/src/components/lucy/LucyEinstellungen.test.tsx b/frontend/src/components/lucy/LucyEinstellungen.test.tsx new file mode 100644 index 0000000..752456b --- /dev/null +++ b/frontend/src/components/lucy/LucyEinstellungen.test.tsx @@ -0,0 +1,60 @@ +import { QueryClient, QueryClientProvider } from "@tanstack/react-query" +import { fireEvent, render, screen, waitFor, within } from "@testing-library/react" +import { api, post } from "@/lib/api" +import type { LucyAutonomie, Wochenbericht } from "@/lib/typen" +import { Freiheiten, WochenberichtAbschnitt } from "./LucyEinstellungen" + +vi.mock("@/lib/api", async (original) => ({ + ...(await original()), api: vi.fn(), post: vi.fn(), +})) + +// Einstellungen → Lucy (Ausbauplan Welle 3, Punkte 14 und 16, 25.09.2026). +const AUTONOMIE: LucyAutonomie = { + arten: [ + { id: "neustart", name: "Dienste neu starten", text: "…", stufe: "selbst", standard: "selbst" }, + { id: "host_neustart", name: "Proxmox-Host neu starten", text: "Alle Container sind weg.", stufe: "fragen", standard: "fragen" }, + ], + stufen: { lesen: "Nur lesen und erklären", fragen: "Erst fragen", selbst: "Selbst handeln, Meldung danach" }, +} + +function zeigen(ui: React.ReactElement, daten: LucyAutonomie | Wochenbericht) { + vi.mocked(api).mockResolvedValue(daten) + vi.mocked(post).mockResolvedValue({ ok: true, text: "Gespeichert." }) + render({ui}) +} + +describe("Lucys Freiheiten", () => { + beforeEach(() => vi.clearAllMocks()) + + it("strenger stellen geht sofort", async () => { + zeigen(, AUTONOMIE) + const wahl = await screen.findByRole("combobox", { name: "Freiheit: Dienste neu starten" }) + expect(within(wahl).getByRole("option", { name: "Selbst handeln (Start)" })).toBeInTheDocument() + fireEvent.change(wahl, { target: { value: "fragen" } }) + await waitFor(() => expect(post).toHaveBeenCalledWith("/api/lucy/autonomie", { stufen: { neustart: "fragen" } })) + }) + + it("freier als der Start erst nach Nachfrage", async () => { + zeigen(, AUTONOMIE) + fireEvent.change(await screen.findByRole("combobox", { name: "Freiheit: Proxmox-Host neu starten" }), + { target: { value: "selbst" } }) + expect(post).not.toHaveBeenCalled() + const dialog = await screen.findByRole("dialog") + fireEvent.click(within(dialog).getByRole("button", { name: "Selbst handeln lassen" })) + await waitFor(() => expect(post).toHaveBeenCalledWith("/api/lucy/autonomie", { stufen: { host_neustart: "selbst" } })) + }) +}) + +describe("Wochenbericht", () => { + beforeEach(() => vi.clearAllMocks()) + + it("nächster Termin, der letzte zum Nachlesen, jetzt schicken", async () => { + const jetzt = Math.floor(Date.now() / 1000) + zeigen(, { naechster: jetzt + 3 * 86400, zuletzt: { zeit: jetzt - 86400, text: "Commander, ruhige Woche." } }) + expect(await screen.findByText(/Nächster: .* · zuletzt gestern/)).toBeInTheDocument() + fireEvent.click(screen.getByRole("button", { name: "Letzten lesen" })) + expect(screen.getByText("Commander, ruhige Woche.")).toBeInTheDocument() + fireEvent.click(screen.getByRole("button", { name: "Jetzt schicken" })) + await waitFor(() => expect(post).toHaveBeenCalledWith("/api/lucy/wochenbericht")) + }) +}) diff --git a/frontend/src/components/lucy/LucyEinstellungen.tsx b/frontend/src/components/lucy/LucyEinstellungen.tsx new file mode 100644 index 0000000..698c96a --- /dev/null +++ b/frontend/src/components/lucy/LucyEinstellungen.tsx @@ -0,0 +1,107 @@ +import { useState } from "react" +import { cn } from "cn" +import { Bestaetigen } from "@/components/cockpit/Bestaetigen" +import { Button } from "@/components/ui/button" +import { useLucyAutonomie, useLucyAutonomieSetzen, useWochenbericht, useWochenberichtSenden } from "@/lib/abfragen" +import type { LucyStufe } from "@/lib/typen" +import { flugplanZeit } from "@/lib/zeit" + +// Einstellungen → Lucy (Ausbauplan Welle 3, Punkte 14 und 16, seit 25.09.2026): wie selbstständig Lucy je Aktionsart +// handelt und der Wochenbericht. Start ist „mehr Freiheit“ (User-Entscheid 25.09.): selbst neu starten, +// Sicherheitsupdates, Rückweg bei Rot; andere Updates, Aufräumen, Modell-Tests und der Host-Neustart nur nach Ja. + +const STUFEN: { id: LucyStufe; kurz: string }[] = [ + { id: "lesen", kurz: "Nur lesen" }, + { id: "fragen", kurz: "Erst fragen" }, + { id: "selbst", kurz: "Selbst handeln" }, +] +const feld = "h-10 rounded-xl border border-white/12 bg-white/[0.04] px-3 text-[15px] text-foreground outline-none focus:border-lab/60" + +/** Die Freiheiten je Aktionsart. Wird eine Art freier als ihr Start (etwa der Host-Neustart auf „selbst“), fragt die + * Seite vorher nach — das ist die eine Stelle, an der Lucy mehr darf, als der Commander am 25.09. entschieden hat. */ +export function Freiheiten() { + const q = useLucyAutonomie() + const setzen = useLucyAutonomieSetzen() + const [frage, setFrage] = useState<{ id: string; name: string; stufe: LucyStufe } | null>(null) + if (!q.data) return

{q.isPending ? "Wird gelesen …" : "Lucys Freiheiten lassen sich gerade nicht lesen."}

+ const rang = (s: LucyStufe) => STUFEN.findIndex((x) => x.id === s) + return ( +
+

+ Bittest du Lucy ausdrücklich um etwas, tut sie es. Hier stellst du ein, was sie aus eigenem Antrieb darf: nur + erklären, dich vorher fragen (in Telegram antwortest du mit „ja“ und der Nummer) oder selbst handeln — dann + bekommst du danach eine Meldung. +

+
+ {q.data.arten.map((a) => ( +
+ + {a.name} + {a.text} + + + + +
+ ))} +
+ setFrage(null)} + onJa={() => { + if (frage) setzen.mutate({ [frage.id]: frage.stufe }) + setFrage(null) + }} + /> +
+ ) +} + +/** Der Wochenbericht: wann der nächste kommt, der letzte zum Nachlesen, „Jetzt schicken“. */ +export function WochenberichtAbschnitt() { + const q = useWochenbericht() + const senden = useWochenberichtSenden() + const [offen, setOffen] = useState(false) + const zuletzt = q.data?.zuletzt + return ( +
+

+ Sonntags um 07:30 schickt Lucy eine Nachricht statt vieler: was eingespielt wurde, was offen ist, Platten, + Sicherungen, Zertifikate — und offene App-Updates zum Beantworten mit „ja“. +

+
+ + + {q.data ? `Nächster: ${flugplanZeit(new Date(q.data.naechster * 1000).toISOString()).toLowerCase()}` : ""} + {zuletzt ? ` · zuletzt ${flugplanZeit(new Date(zuletzt.zeit * 1000).toISOString()).toLowerCase()}` : ""} + + {zuletzt && ( + + )} +
+ {offen && zuletzt && ( +
+          {zuletzt.text}
+        
+ )} +
+ ) +} diff --git a/frontend/src/components/lucy/Rueckfragen.test.tsx b/frontend/src/components/lucy/Rueckfragen.test.tsx new file mode 100644 index 0000000..67ddd76 --- /dev/null +++ b/frontend/src/components/lucy/Rueckfragen.test.tsx @@ -0,0 +1,72 @@ +import type { ReactElement } from "react" +import { QueryClient, QueryClientProvider } from "@tanstack/react-query" +import { fireEvent, render, screen, waitFor, within } from "@testing-library/react" +import { api, post } from "@/lib/api" +import type { Rueckfrage, Rueckfragen } from "@/lib/typen" +import { ausgangText, nochText, OffeneRueckfragen, RueckfragenPanel, RueckfragenVerlauf } from "./Rueckfragen" + +vi.mock("@/lib/api", async (original) => ({ + ...(await original()), api: vi.fn(), post: vi.fn(), +})) + +// Rückfragen an den Commander (Ausbauplan Welle 3, Punkt 15, 25.09.2026): Ja führt genau die gefragte Aktion aus — +// in der Oberfläche erst nach der Bestätigung, Nein sofort. +const jetzt = Math.floor(Date.now() / 1000) +const frage = (nr: number, mehr: Partial = {}): Rueckfrage => ({ + nr, zeit: jetzt - 600, frage: `Soll ich Gitea 1.27.${nr} einspielen?`, text: "Snapshot vorher, Prüfung danach.", + pfad: "/api/partner/homelab/ziele/ct-104/update", von: "wochenbericht", stufe: "normal", ablauf: jetzt + 20 * 3600 - 60, + status: "offen", befund: null, ...mehr, +}) + +function zeigen(ui: ReactElement, daten: Rueckfragen) { + vi.mocked(api).mockResolvedValue(daten) + vi.mocked(post).mockResolvedValue({ ok: true, text: "Rückfrage 7 ausgeführt: Gestartet." }) + render({ui}) +} + +describe("Rückfragen", () => { + beforeEach(() => vi.clearAllMocks()) + + it("Ja erst nach der Bestätigung, dann genau diese Rückfrage", async () => { + zeigen(, { offen: [frage(7)], zuletzt: [] }) + expect(await screen.findByText("Eine Rückfrage an dich")).toBeInTheDocument() + expect(screen.getByText(/Rückfrage 7 · Wochenbericht · vor 10 min · gilt noch 19 h/)).toBeInTheDocument() + fireEvent.click(screen.getByRole("button", { name: "Ja, ausführen" })) + expect(post).not.toHaveBeenCalled() + const dialog = await screen.findByRole("dialog") + expect(within(dialog).getByText(/wie „ja 7“ in Telegram/)).toBeInTheDocument() + fireEvent.click(within(dialog).getByRole("button", { name: "Ja, ausführen" })) + await waitFor(() => expect(post).toHaveBeenCalledWith("/api/rueckfragen/7/ja")) + }) + + it("Nein ohne Umweg", async () => { + zeigen(, { offen: [frage(7), frage(8, { von: "lucy", stufe: "dringend" })], zuletzt: [] }) + const nein = await screen.findAllByRole("button", { name: "Nein" }) + fireEvent.click(nein[1]) + await waitFor(() => expect(post).toHaveBeenCalledWith("/api/rueckfragen/8/nein")) + }) + + it("ohne offene Rückfrage zeigt die Übersicht nichts, die Einstellungen einen Satz", async () => { + zeigen(<>, + { offen: [], zuletzt: [] }) + expect(await screen.findByText("Gerade wartet keine Rückfrage auf dich.")).toBeInTheDocument() + expect(screen.queryByText(/Rückfrage an dich/)).not.toBeInTheDocument() + }) + + it("Verlauf: was daraus wurde und wer geantwortet hat", async () => { + zeigen(, { offen: [], zuletzt: [ + frage(5, { status: "erledigt", antwort: { zeit: jetzt, wer: "lucy", ja: true } }), + frage(4, { status: "fehler", ergebnis: "Es läuft gerade ‚Alle aktualisieren‘.", antwort: { zeit: jetzt, wer: "oberflaeche", ja: true } }), + ] }) + expect(await screen.findByText(/ausgeführt · per Telegram/)).toBeInTheDocument() + expect(screen.getByText(/gescheitert · hier — Es läuft gerade/)).toBeInTheDocument() + }) + + it("Texte", () => { + expect(nochText(jetzt + 90 * 60, jetzt * 1000)).toBe("gilt noch 1 h") + expect(nochText(jetzt + 20, jetzt * 1000)).toBe("gilt noch 1 min") + expect(ausgangText(frage(1, { status: "abgelaufen" }))).toBe("abgelaufen") + expect(ausgangText(frage(1, { status: "erledigt", nachgeprueft: "besteht", antwort: { zeit: 0, wer: "oberflaeche", ja: true } }))) + .toBe("ausgeführt · hier · der Hinweis blieb") + }) +}) diff --git a/frontend/src/components/lucy/Rueckfragen.tsx b/frontend/src/components/lucy/Rueckfragen.tsx new file mode 100644 index 0000000..15b7187 --- /dev/null +++ b/frontend/src/components/lucy/Rueckfragen.tsx @@ -0,0 +1,128 @@ +import { useState } from "react" +import { MessageCircleQuestionMark } from "lucide-react" +import { cn } from "cn" +import { Bestaetigen } from "@/components/cockpit/Bestaetigen" +import { Panel } from "@/components/cockpit/Panel" +import { Button } from "@/components/ui/button" +import { useRueckfrageAntwort, useRueckfragen } from "@/lib/abfragen" +import type { Rueckfrage, RueckfrageStatus } from "@/lib/typen" +import { vor } from "@/lib/zeit" + +// Rückfragen an den Commander (Ausbauplan Welle 3, Punkt 15, seit 25.09.2026): Lucy, der Wächter und der Wochenbericht +// fragen, bevor etwas passiert, das er bestätigen soll. Dieselben Fragen kommen in Telegram mit „Antworte „ja 7““ und +// zwei Antworttasten; hier geht es per Knopf. Ja führt genau die gefragte Aktion aus — sonst nichts. + +const VON: Record = { + lucy: "Lucy", waechter: "Wächter", wochenbericht: "Wochenbericht", wartung: "Wartungsfenster", +} + +const STATUS: Record = { + offen: "offen", laeuft: "läuft", erledigt: "ausgeführt", fehler: "gescheitert", abgelehnt: "abgelehnt", + abgelaufen: "abgelaufen", hinfaellig: "hatte sich erledigt", +} + +export const vonText = (von: string) => VON[von] ?? von + +/** Wie lange eine Rückfrage noch gilt: „gilt noch 22 h“, „gilt noch 40 min“. */ +export function nochText(ablauf: number, jetzt = Date.now()): string { + const s = Math.max(0, Math.round(ablauf - jetzt / 1000)) + return s >= 3600 ? `gilt noch ${Math.floor(s / 3600)} h` : `gilt noch ${Math.max(1, Math.round(s / 60))} min` +} + +/** Eine Zeile des Verlaufs: was daraus wurde, wer geantwortet hat. */ +export function ausgangText(r: Rueckfrage): string { + const wer = r.antwort ? (r.antwort.wer === "oberflaeche" ? "hier" : r.antwort.wer === "lucy" ? "per Telegram" : r.antwort.wer) : null + const teile = [STATUS[r.status] ?? r.status] + if (wer && r.status !== "abgelaufen") teile.push(wer) + if (r.nachgeprueft === "besteht") teile.push("der Hinweis blieb") + return teile.join(" · ") +} + +function Eintrag({ r, gesperrt, onJa, onNein }: { + r: Rueckfrage + gesperrt: boolean + onJa: () => void + onNein: () => void +}) { + return ( +
  • +
    + + Rückfrage {r.nr} · {vonText(r.von)} · {vor(r.zeit)} · {nochText(r.ablauf)} + + {r.frage} + {r.text && {r.text}} +
    +
    + + +
    +
  • + ) +} + +/** Die offenen Rückfragen mit Ja und Nein. Ohne offene Rückfrage zeigt das Feld nichts (Übersicht) bzw. einen Satz. */ +export function OffeneRueckfragen({ leerText }: { leerText?: string }) { + const q = useRueckfragen() + const antwort = useRueckfrageAntwort() + const [frage, setFrage] = useState(null) + const offen = q.data?.offen ?? [] + if (offen.length === 0) return leerText ?

    {leerText}

    : null + return ( + <> +
      + {offen.map((r) => ( + setFrage(r)} onNein={() => antwort.mutate({ nr: r.nr, ja: false })} /> + ))} +
    + setFrage(null)} + onJa={() => { + if (frage) antwort.mutate({ nr: frage.nr, ja: true }) + setFrage(null) + }} + /> + + ) +} + +/** Für die Übersicht: ein Feld, das nur erscheint, wenn eine Rückfrage offen ist. */ +export function RueckfragenPanel() { + const q = useRueckfragen() + const anzahl = q.data?.offen.length ?? 0 + if (anzahl === 0) return null + return ( + +

    + Lucy wartet auf dein Ja. In Telegram reicht „ja“ mit der Nummer — oder hier ein Klick. +

    + +
    + ) +} + +/** Die zuletzt beantworteten oder abgelaufenen Rückfragen (Einstellungen → Lucy). */ +export function RueckfragenVerlauf() { + const q = useRueckfragen() + const zuletzt = (q.data?.zuletzt ?? []).slice(0, 8) + if (zuletzt.length === 0) return

    Noch keine beantwortete Rückfrage.

    + return ( +
      + {zuletzt.map((r) => ( +
    • + {r.frage} + + Rückfrage {r.nr} · {vonText(r.von)} · {vor(r.zeit)} · {ausgangText(r)} + {r.status === "fehler" && r.ergebnis ? ` — ${r.ergebnis}` : ""} + +
    • + ))} +
    + ) +} diff --git a/frontend/src/lib/abfragen.ts b/frontend/src/lib/abfragen.ts index 450aed9..b2f9409 100644 --- a/frontend/src/lib/abfragen.ts +++ b/frontend/src/lib/abfragen.ts @@ -10,7 +10,8 @@ import { melden } from "./meldungen" import { stromVerbunden } from "./strom" import type { Ablauf, AktionsErgebnis, Altrest, AufraeumKandidat, BoxMesswerte, EinstellungenStand, Hinweis, HomelabEinstellungen, - HomelabLauf, HomelabMesswerte, HomelabSpeicher, HomelabStand, HomelabZertifikate, NeuesGeraet, NeuerStack, NeuWahl, DockerLage, Neuerungen, HomelabWartung, WartungsRegel, Instanz, InstanzMitStand, Job, Modell, Nutzung, PartnerStatus, + HomelabLauf, HomelabMesswerte, HomelabSpeicher, HomelabStand, HomelabZertifikate, NeuesGeraet, NeuerStack, NeuWahl, DockerLage, Neuerungen, HomelabWartung, WartungsRegel, + LucyAutonomie, LucyStufe, Rueckfragen, Wochenbericht, Instanz, InstanzMitStand, Job, Modell, Nutzung, PartnerStatus, ProtokollEintrag, Radar, SammelPlanSchritt, Sammellauf, Sicherung, Start, TelegramTest, UpdateDetails, ZielAktion, ZielStand, Zeitraum, } from "./typen" @@ -511,6 +512,53 @@ export const useNeuerungen = (zid: string, baustein: string, aktiv: boolean) => retry: false, }) +/** Lucys Freiheiten je Aktionsart (seit 25.09.2026, Einstellungen → Lucy). */ +export const useLucyAutonomie = (aktiv = true) => + useQuery({ + queryKey: ["lucy-autonomie"], + queryFn: () => api("/api/lucy/autonomie"), + enabled: aktiv, + retry: false, + }) + +export const useLucyAutonomieSetzen = () => + useAktion((stufen: Record) => post("/api/lucy/autonomie", { stufen }), { + erfolg: (_, e) => (e as AktionsErgebnis).text ?? "Gespeichert.", + neuLaden: ["lucy-autonomie"], + }) + +/** Rückfragen an den Commander (seit 25.09.2026): offene und die zuletzt beantworteten. */ +export const useRueckfragen = (aktiv = true) => + useQuery({ + queryKey: ["rueckfragen"], + queryFn: () => api("/api/rueckfragen"), + enabled: aktiv, + refetchInterval: takt(30_000), + retry: false, + }) + +/** Ja oder Nein auf eine Rückfrage — wie „ja 7“ in Telegram: Ja führt genau die gefragte Aktion aus. */ +export const useRueckfrageAntwort = () => + useAktion(({ nr, ja }: { nr: number; ja: boolean }) => post(`/api/rueckfragen/${nr}/${ja ? "ja" : "nein"}`), { + erfolg: (_, e) => (e as AktionsErgebnis).text ?? "Erledigt.", + neuLaden: ["rueckfragen", "start", "jobs", "homelab", "homelab-laeufe"], + }) + +/** Der Wochenbericht (seit 25.09.2026): der letzte und wann der nächste kommt. */ +export const useWochenbericht = (aktiv = true) => + useQuery({ + queryKey: ["wochenbericht"], + queryFn: () => api("/api/lucy/wochenbericht"), + enabled: aktiv, + retry: false, + }) + +export const useWochenberichtSenden = () => + useAktion(() => post("/api/lucy/wochenbericht"), { + erfolg: (_, e) => (e as AktionsErgebnis).text ?? "Der Wochenbericht ist unterwegs.", + neuLaden: ["wochenbericht", "rueckfragen"], + }) + /** Wartungsfenster und Regel je Gerät (seit 25.09.2026). */ export const useWartung = (aktiv: boolean) => useQuery({ diff --git a/frontend/src/lib/befehle.test.ts b/frontend/src/lib/befehle.test.ts index 38d9996..7bd1c10 100644 --- a/frontend/src/lib/befehle.test.ts +++ b/frontend/src/lib/befehle.test.ts @@ -34,4 +34,10 @@ describe("Befehlssuche", () => { expect(treffer.filter((b) => b.text === "Updates").map((b) => b.unter)).toEqual(["KI-Box", "Homelab"]) expect(suchen(alle, "gibtesnicht")).toEqual([]) }) + + it("findet Lucys Freiheiten, Rückfragen und den Wochenbericht (seit 25.09.2026)", () => { + expect(suchen(alle, "lucy freiheit")[0]).toMatchObject({ to: "/einstellungen", hash: "lucy" }) + expect(suchen(alle, "rückfragen")[0]).toMatchObject({ text: "Rückfragen an dich" }) + expect(suchen(alle, "wochenbericht")[0]).toMatchObject({ text: "Wochenbericht", hash: "lucy" }) + }) }) diff --git a/frontend/src/lib/befehle.ts b/frontend/src/lib/befehle.ts index 42c72de..f4081b3 100644 --- a/frontend/src/lib/befehle.ts +++ b/frontend/src/lib/befehle.ts @@ -26,6 +26,15 @@ export function befehle(ziele: ZielStand[]): Befehl[] { id: `seite:${s.to}`, text: s.label, unter: ORT_NAME[s.ort], to: s.to, stichworte: s.to.replace(/\//g, " "), })) + // Seit 25.09.2026 (Ausbauplan Welle 3): Lucys Freiheiten, ihre Rückfragen und der Wochenbericht. + liste.push( + { id: "lucy:freiheiten", text: "Lucys Freiheiten", unter: "Einstellungen → Lucy", to: "/einstellungen", hash: "lucy", + stichworte: "lucy autonomie selbst fragen" }, + { id: "lucy:rueckfragen", text: "Rückfragen an dich", unter: "Einstellungen → Lucy", to: "/einstellungen", hash: "lucy", + stichworte: "lucy ja nein telegram rueckfrage" }, + { id: "lucy:wochenbericht", text: "Wochenbericht", unter: "Einstellungen → Lucy", to: "/einstellungen", hash: "lucy", + stichworte: "lucy bericht sonntag" }, + ) for (const z of ziele) { const geraet = { art: z.art, offen: z.offen } const stichworte = `${ART_WORT[z.art] ?? ""} ${z.id}` diff --git a/frontend/src/lib/typen.ts b/frontend/src/lib/typen.ts index 82e00d3..27a5da9 100644 --- a/frontend/src/lib/typen.ts +++ b/frontend/src/lib/typen.ts @@ -841,3 +841,53 @@ export interface Ablauf { status: "ok" | "ueberfaellig" | "gestoppt" | "aus" text: string | null } + +// --- Lucy: Freiheiten, Rückfragen, Wochenbericht (seit 25.09.2026, Ausbauplan Welle 3) ------------------------------ + +export type LucyStufe = "lesen" | "fragen" | "selbst" + +/** Eine Aktionsart mit Lucys Freiheit (GET /api/lucy/autonomie). */ +export interface LucyArt { + id: string + name: string + text: string + stufe: LucyStufe + standard: LucyStufe +} + +export interface LucyAutonomie { + arten: LucyArt[] + stufen: Record +} + +export type RueckfrageStatus = "offen" | "laeuft" | "erledigt" | "fehler" | "abgelehnt" | "abgelaufen" | "hinfaellig" + +/** Eine Rückfrage an den Commander (GET /api/rueckfragen) — auch in Telegram mit „ja 7“ zu beantworten. */ +export interface Rueckfrage { + nr: number + /** Unix-Sekunden */ + zeit: number + frage: string + text: string + pfad: string + von: string + stufe: "dringend" | "normal" | "leise" + /** Unix-Sekunden: danach gilt die Rückfrage nicht mehr */ + ablauf: number + status: RueckfrageStatus + befund: { bereich: "box" | "homelab"; id: string; titel: string } | null + antwort?: { zeit: number; wer: string; ja: boolean } + ergebnis?: string + nachgeprueft?: "behoben" | "besteht" +} + +export interface Rueckfragen { + offen: Rueckfrage[] + zuletzt: Rueckfrage[] +} + +/** GET /api/lucy/wochenbericht: der letzte Bericht und wann der nächste kommt (Unix-Sekunden). */ +export interface Wochenbericht { + zuletzt: { zeit: number; text: string } | null + naechster: number +} diff --git a/frontend/src/views/Einstellungen.tsx b/frontend/src/views/Einstellungen.tsx index 8cbb8e4..f67624c 100644 --- a/frontend/src/views/Einstellungen.tsx +++ b/frontend/src/views/Einstellungen.tsx @@ -1,10 +1,12 @@ -import { type ReactNode, useState } from "react" +import { type ReactNode, useEffect, useState } from "react" import { useQuery, useQueryClient } from "@tanstack/react-query" import { cn } from "cn" import { ExternalLink, KeyRound } from "lucide-react" import { Bestaetigen } from "@/components/cockpit/Bestaetigen" import { Chip } from "@/components/cockpit/Chip" import { Wartungsfenster } from "@/components/homelab/Wartungsfenster" +import { Freiheiten, WochenberichtAbschnitt } from "@/components/lucy/LucyEinstellungen" +import { OffeneRueckfragen, RueckfragenVerlauf } from "@/components/lucy/Rueckfragen" import { Button } from "@/components/ui/button" import { useAdguardZugang, useArcaneEcht, useArcaneSchluessel, useEinstellungenStand, useHomelabEinstellungen, useInstanz, usePartner, @@ -62,10 +64,11 @@ function Abschnitt({ titel, children }: { titel: string; children: ReactNode }) } /** Eine Karte der Einstellungsseite; KI-Box und Homelab tragen ihre Bereichsfarbe als Schein und Rand (Design v5). */ -function Karte({ titel, text, farbe, children }: { +function Karte({ titel, text, farbe, id, children }: { titel: string text: string farbe?: "box" | "homelab" + id?: string children: ReactNode }) { const glut = farbe === "box" ? "var(--box)" : farbe === "homelab" ? "var(--lab)" : null @@ -73,7 +76,7 @@ function Karte({ titel, text, farbe, children }: { const rand = farbe === "box" ? "[--rand:color-mix(in_srgb,var(--box)_28%,transparent)]" : farbe === "homelab" ? "[--rand:color-mix(in_srgb,var(--lab)_28%,transparent)]" : "" return ( -
    +
    {glut && (
    @@ -625,11 +628,29 @@ function HomelabKarte() { ) } +// --- Lucy: Freiheiten, Rückfragen, Wochenbericht (seit 25.09.2026, Ausbauplan Welle 3) -------------------------------- + +function LucyKarte() { + return ( + + + + + + + ) +} + // --- Seite ---------------------------------------------------------------------------------------------- export function EinstellungenSeite() { const box = useEinstellungenStand(true) const boxProps = { e: box.data, laedt: box.isPending, fehler: box.error?.message } + // Strg+K „Lucys Freiheiten“ führt mit #lucy hierher (beim Öffnen der Seite; ohne Router-Hook, damit die Seite auch + // allein testbar bleibt). + useEffect(() => { + if (window.location.hash === "#lucy") document.getElementById("lucy")?.scrollIntoView({ block: "start" }) + }, []) return (
    @@ -644,6 +665,7 @@ export function EinstellungenSeite() { + diff --git a/frontend/src/views/Uebersicht.tsx b/frontend/src/views/Uebersicht.tsx index 0c6ad87..d8dc704 100644 --- a/frontend/src/views/Uebersicht.tsx +++ b/frontend/src/views/Uebersicht.tsx @@ -7,6 +7,7 @@ import { cn } from "cn" import { Chip, type ChipArt, Zustandsfeld } from "@/components/cockpit/Chip" import { Geraetesymbol } from "@/components/cockpit/Geraetesymbol" import { Messring } from "@/components/diagramme/Messring" +import { RueckfragenPanel } from "@/components/lucy/Rueckfragen" import { Lagering, type Segment } from "@/components/uebersicht/Lagering" import { useBoxMesswerte, useBoxZiele, useHomelab, useHomelabHinweise, useHomelabLaeufe, useHomelabMesswerte, useHomelabSpeicher, @@ -650,6 +651,9 @@ export function UebersichtSeite() {
    + {/* Rückfragen an den Commander (seit 25.09.2026): nur, wenn eine offen ist — ganz oben, weil sie auf ihn warten. */} + +