diff --git a/frontend/dist/assets/index-CmIKN_Pq.js b/frontend/dist/assets/index-CmIKN_Pq.js new file mode 100644 index 0000000..2c63026 --- /dev/null +++ b/frontend/dist/assets/index-CmIKN_Pq.js @@ -0,0 +1,335 @@ +function Lm(o,u){for(var a=0;ac[f]})}}}return Object.freeze(Object.defineProperty(o,Symbol.toStringTag,{value:"Module"}))}(function(){const u=document.createElement("link").relList;if(u&&u.supports&&u.supports("modulepreload"))return;for(const f of document.querySelectorAll('link[rel="modulepreload"]'))c(f);new MutationObserver(f=>{for(const p of f)if(p.type==="childList")for(const m of p.addedNodes)m.tagName==="LINK"&&m.rel==="modulepreload"&&c(m)}).observe(document,{childList:!0,subtree:!0});function a(f){const p={};return f.integrity&&(p.integrity=f.integrity),f.referrerPolicy&&(p.referrerPolicy=f.referrerPolicy),f.crossOrigin==="use-credentials"?p.credentials="include":f.crossOrigin==="anonymous"?p.credentials="omit":p.credentials="same-origin",p}function c(f){if(f.ep)return;f.ep=!0;const p=a(f);fetch(f.href,p)}})();function zd(o){return o&&o.__esModule&&Object.prototype.hasOwnProperty.call(o,"default")?o.default:o}var _a={exports:{}},Xn={},Pa={exports:{}},ge={};/** + * @license React + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var od;function Tm(){if(od)return ge;od=1;var o=Symbol.for("react.element"),u=Symbol.for("react.portal"),a=Symbol.for("react.fragment"),c=Symbol.for("react.strict_mode"),f=Symbol.for("react.profiler"),p=Symbol.for("react.provider"),m=Symbol.for("react.context"),g=Symbol.for("react.forward_ref"),N=Symbol.for("react.suspense"),S=Symbol.for("react.memo"),w=Symbol.for("react.lazy"),E=Symbol.iterator;function P(k){return k===null||typeof k!="object"?null:(k=E&&k[E]||k["@@iterator"],typeof k=="function"?k:null)}var M={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},T=Object.assign,j={};function L(k,b,V){this.props=k,this.context=b,this.refs=j,this.updater=V||M}L.prototype.isReactComponent={},L.prototype.setState=function(k,b){if(typeof k!="object"&&typeof k!="function"&&k!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,k,b,"setState")},L.prototype.forceUpdate=function(k){this.updater.enqueueForceUpdate(this,k,"forceUpdate")};function $(){}$.prototype=L.prototype;function O(k,b,V){this.props=k,this.context=b,this.refs=j,this.updater=V||M}var G=O.prototype=new $;G.constructor=O,T(G,L.prototype),G.isPureReactComponent=!0;var X=Array.isArray,F=Object.prototype.hasOwnProperty,re={current:null},de={key:!0,ref:!0,__self:!0,__source:!0};function we(k,b,V){var K,B={},J=null,le=null;if(b!=null)for(K in b.ref!==void 0&&(le=b.ref),b.key!==void 0&&(J=""+b.key),b)F.call(b,K)&&!de.hasOwnProperty(K)&&(B[K]=b[K]);var fe=arguments.length-2;if(fe===1)B.children=V;else if(1>>1,b=H[k];if(0>>1;kf(B,W))Jf(le,B)?(H[k]=le,H[J]=W,k=J):(H[k]=B,H[K]=W,k=K);else if(Jf(le,W))H[k]=le,H[J]=W,k=J;else break e}}return te}function f(H,te){var W=H.sortIndex-te.sortIndex;return W!==0?W:H.id-te.id}if(typeof performance=="object"&&typeof performance.now=="function"){var p=performance;o.unstable_now=function(){return p.now()}}else{var m=Date,g=m.now();o.unstable_now=function(){return m.now()-g}}var N=[],S=[],w=1,E=null,P=3,M=!1,T=!1,j=!1,L=typeof setTimeout=="function"?setTimeout:null,$=typeof clearTimeout=="function"?clearTimeout:null,O=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(H){for(var te=a(S);te!==null;){if(te.callback===null)c(S);else if(te.startTime<=H)c(S),te.sortIndex=te.expirationTime,u(N,te);else break;te=a(S)}}function X(H){if(j=!1,G(H),!T)if(a(N)!==null)T=!0,Pe(F);else{var te=a(S);te!==null&&ye(X,te.startTime-H)}}function F(H,te){T=!1,j&&(j=!1,$(we),we=-1),M=!0;var W=P;try{for(G(te),E=a(N);E!==null&&(!(E.expirationTime>te)||H&&!Ce());){var k=E.callback;if(typeof k=="function"){E.callback=null,P=E.priorityLevel;var b=k(E.expirationTime<=te);te=o.unstable_now(),typeof b=="function"?E.callback=b:E===a(N)&&c(N),G(te)}else c(N);E=a(N)}if(E!==null)var V=!0;else{var K=a(S);K!==null&&ye(X,K.startTime-te),V=!1}return V}finally{E=null,P=W,M=!1}}var re=!1,de=null,we=-1,I=5,ue=-1;function Ce(){return!(o.unstable_now()-ueH||125k?(H.sortIndex=W,u(S,H),a(N)===null&&H===a(S)&&(j?($(we),we=-1):j=!0,ye(X,W-k))):(H.sortIndex=b,u(N,H),T||M||(T=!0,Pe(F))),H},o.unstable_shouldYield=Ce,o.unstable_wrapCallback=function(H){var te=P;return function(){var W=P;P=te;try{return H.apply(this,arguments)}finally{P=W}}}})(La)),La}var ud;function Im(){return ud||(ud=1,Ma.exports=zm()),Ma.exports}/** + * @license React + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var cd;function Am(){if(cd)return ot;cd=1;var o=ei(),u=Im();function a(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,r=1;r"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),N=Object.prototype.hasOwnProperty,S=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,w={},E={};function P(e){return N.call(E,e)?!0:N.call(w,e)?!1:S.test(e)?E[e]=!0:(w[e]=!0,!1)}function M(e,t,r,n){if(r!==null&&r.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return n?!1:r!==null?!r.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function T(e,t,r,n){if(t===null||typeof t>"u"||M(e,t,r,n))return!0;if(n)return!1;if(r!==null)switch(r.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function j(e,t,r,n,l,i,d){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=n,this.attributeNamespace=l,this.mustUseProperty=r,this.propertyName=e,this.type=t,this.sanitizeURL=i,this.removeEmptyString=d}var L={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){L[e]=new j(e,0,!1,e,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];L[t]=new j(t,1,!1,e[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(e){L[e]=new j(e,2,!1,e.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){L[e]=new j(e,2,!1,e,null,!1,!1)}),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){L[e]=new j(e,3,!1,e.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(e){L[e]=new j(e,3,!0,e,null,!1,!1)}),["capture","download"].forEach(function(e){L[e]=new j(e,4,!1,e,null,!1,!1)}),["cols","rows","size","span"].forEach(function(e){L[e]=new j(e,6,!1,e,null,!1,!1)}),["rowSpan","start"].forEach(function(e){L[e]=new j(e,5,!1,e.toLowerCase(),null,!1,!1)});var $=/[\-:]([a-z])/g;function O(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace($,O);L[t]=new j(t,1,!1,e,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace($,O);L[t]=new j(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace($,O);L[t]=new j(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(e){L[e]=new j(e,1,!1,e.toLowerCase(),null,!1,!1)}),L.xlinkHref=new j("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(e){L[e]=new j(e,1,!1,e.toLowerCase(),null,!0,!0)});function G(e,t,r,n){var l=L.hasOwnProperty(t)?L[t]:null;(l!==null?l.type!==0:n||!(2x||l[d]!==i[x]){var v=` +`+l[d].replace(" at new "," at ");return e.displayName&&v.includes("")&&(v=v.replace("",e.displayName)),v}while(1<=d&&0<=x);break}}}finally{V=!1,Error.prepareStackTrace=r}return(e=e?e.displayName||e.name:"")?b(e):""}function B(e){switch(e.tag){case 5:return b(e.type);case 16:return b("Lazy");case 13:return b("Suspense");case 19:return b("SuspenseList");case 0:case 2:case 15:return e=K(e.type,!1),e;case 11:return e=K(e.type.render,!1),e;case 1:return e=K(e.type,!0),e;default:return""}}function J(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case de:return"Fragment";case re:return"Portal";case I:return"Profiler";case we:return"StrictMode";case ze:return"Suspense";case _e:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case Ce:return(e.displayName||"Context")+".Consumer";case ue:return(e._context.displayName||"Context")+".Provider";case ce:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Ie:return t=e.displayName||null,t!==null?t:J(e.type)||"Memo";case Pe:t=e._payload,e=e._init;try{return J(e(t))}catch{}}return null}function le(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return J(t);case 8:return t===we?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function fe(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function he(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function Ue(e){var t=he(e)?"checked":"value",r=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),n=""+e[t];if(!e.hasOwnProperty(t)&&typeof r<"u"&&typeof r.get=="function"&&typeof r.set=="function"){var l=r.get,i=r.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return l.call(this)},set:function(d){n=""+d,i.call(this,d)}}),Object.defineProperty(e,t,{enumerable:r.enumerable}),{getValue:function(){return n},setValue:function(d){n=""+d},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function oo(e){e._valueTracker||(e._valueTracker=Ue(e))}function ci(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var r=t.getValue(),n="";return e&&(n=he(e)?e.checked?"true":"false":e.value),e=n,e!==r?(t.setValue(e),!0):!1}function lo(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function Dl(e,t){var r=t.checked;return W({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:r??e._wrapperState.initialChecked})}function di(e,t){var r=t.defaultValue==null?"":t.defaultValue,n=t.checked!=null?t.checked:t.defaultChecked;r=fe(t.value!=null?t.value:r),e._wrapperState={initialChecked:n,initialValue:r,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function fi(e,t){t=t.checked,t!=null&&G(e,"checked",t,!1)}function zl(e,t){fi(e,t);var r=fe(t.value),n=t.type;if(r!=null)n==="number"?(r===0&&e.value===""||e.value!=r)&&(e.value=""+r):e.value!==""+r&&(e.value=""+r);else if(n==="submit"||n==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?Il(e,t.type,r):t.hasOwnProperty("defaultValue")&&Il(e,t.type,fe(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function pi(e,t,r){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var n=t.type;if(!(n!=="submit"&&n!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,r||t===e.value||(e.value=t),e.defaultValue=t}r=e.name,r!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,r!==""&&(e.name=r)}function Il(e,t,r){(t!=="number"||lo(e.ownerDocument)!==e)&&(r==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+r&&(e.defaultValue=""+r))}var fn=Array.isArray;function _r(e,t,r,n){if(e=e.options,t){t={};for(var l=0;l"+t.valueOf().toString()+"",t=so.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function pn(e,t){if(t){var r=e.firstChild;if(r&&r===e.lastChild&&r.nodeType===3){r.nodeValue=t;return}}e.textContent=t}var mn={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},zf=["Webkit","ms","Moz","O"];Object.keys(mn).forEach(function(e){zf.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),mn[t]=mn[e]})});function yi(e,t,r){return t==null||typeof t=="boolean"||t===""?"":r||typeof t!="number"||t===0||mn.hasOwnProperty(e)&&mn[e]?(""+t).trim():t+"px"}function bi(e,t){e=e.style;for(var r in t)if(t.hasOwnProperty(r)){var n=r.indexOf("--")===0,l=yi(r,t[r],n);r==="float"&&(r="cssFloat"),n?e.setProperty(r,l):e[r]=l}}var If=W({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Ul(e,t){if(t){if(If[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(a(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(a(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(a(61))}if(t.style!=null&&typeof t.style!="object")throw Error(a(62))}}function $l(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Bl=null;function Vl(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Hl=null,Pr=null,Rr=null;function wi(e){if(e=zn(e)){if(typeof Hl!="function")throw Error(a(280));var t=e.stateNode;t&&(t=Ro(t),Hl(e.stateNode,e.type,t))}}function ki(e){Pr?Rr?Rr.push(e):Rr=[e]:Pr=e}function Si(){if(Pr){var e=Pr,t=Rr;if(Rr=Pr=null,wi(e),t)for(e=0;e>>=0,e===0?32:31-(Qf(e)/qf|0)|0}var fo=64,po=4194304;function vn(e){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:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function mo(e,t){var r=e.pendingLanes;if(r===0)return 0;var n=0,l=e.suspendedLanes,i=e.pingedLanes,d=r&268435455;if(d!==0){var x=d&~l;x!==0?n=vn(x):(i&=d,i!==0&&(n=vn(i)))}else d=r&~l,d!==0?n=vn(d):i!==0&&(n=vn(i));if(n===0)return 0;if(t!==0&&t!==n&&(t&l)===0&&(l=n&-n,i=t&-t,l>=i||l===16&&(i&4194240)!==0))return t;if((n&4)!==0&&(n|=r&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=n;0r;r++)t.push(e);return t}function yn(e,t,r){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-ht(t),e[t]=r}function Jf(e,t){var r=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var n=e.eventTimes;for(e=e.expirationTimes;0=Cn),Xi=" ",Zi=!1;function Ji(e,t){switch(e){case"keyup":return Cp.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function eu(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Tr=!1;function Pp(e,t){switch(e){case"compositionend":return eu(t);case"keypress":return t.which!==32?null:(Zi=!0,Xi);case"textInput":return e=t.data,e===Xi&&Zi?null:e;default:return null}}function Rp(e,t){if(Tr)return e==="compositionend"||!is&&Ji(e,t)?(e=Wi(),yo=rs=Ht=null,Tr=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=au(r)}}function uu(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?uu(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function cu(){for(var e=window,t=lo();t instanceof e.HTMLIFrameElement;){try{var r=typeof t.contentWindow.location.href=="string"}catch{r=!1}if(r)e=t.contentWindow;else break;t=lo(e.document)}return t}function ds(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")}function Fp(e){var t=cu(),r=e.focusedElem,n=e.selectionRange;if(t!==r&&r&&r.ownerDocument&&uu(r.ownerDocument.documentElement,r)){if(n!==null&&ds(r)){if(t=n.start,e=n.end,e===void 0&&(e=t),"selectionStart"in r)r.selectionStart=t,r.selectionEnd=Math.min(e,r.value.length);else if(e=(t=r.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var l=r.textContent.length,i=Math.min(n.start,l);n=n.end===void 0?i:Math.min(n.end,l),!e.extend&&i>n&&(l=n,n=i,i=l),l=iu(r,i);var d=iu(r,n);l&&d&&(e.rangeCount!==1||e.anchorNode!==l.node||e.anchorOffset!==l.offset||e.focusNode!==d.node||e.focusOffset!==d.offset)&&(t=t.createRange(),t.setStart(l.node,l.offset),e.removeAllRanges(),i>n?(e.addRange(t),e.extend(d.node,d.offset)):(t.setEnd(d.node,d.offset),e.addRange(t)))}}for(t=[],e=r;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof r.focus=="function"&&r.focus(),r=0;r=document.documentMode,Or=null,fs=null,Mn=null,ps=!1;function du(e,t,r){var n=r.window===r?r.document:r.nodeType===9?r:r.ownerDocument;ps||Or==null||Or!==lo(n)||(n=Or,"selectionStart"in n&&ds(n)?n={start:n.selectionStart,end:n.selectionEnd}:(n=(n.ownerDocument&&n.ownerDocument.defaultView||window).getSelection(),n={anchorNode:n.anchorNode,anchorOffset:n.anchorOffset,focusNode:n.focusNode,focusOffset:n.focusOffset}),Mn&&Rn(Mn,n)||(Mn=n,n=Co(fs,"onSelect"),0Fr||(e.current=js[Fr],js[Fr]=null,Fr--)}function ke(e,t){Fr++,js[Fr]=e.current,e.current=t}var Qt={},Ke=Kt(Qt),Je=Kt(!1),pr=Qt;function Ur(e,t){var r=e.type.contextTypes;if(!r)return Qt;var n=e.stateNode;if(n&&n.__reactInternalMemoizedUnmaskedChildContext===t)return n.__reactInternalMemoizedMaskedChildContext;var l={},i;for(i in r)l[i]=t[i];return n&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=l),l}function et(e){return e=e.childContextTypes,e!=null}function Mo(){Ne(Je),Ne(Ke)}function Eu(e,t,r){if(Ke.current!==Qt)throw Error(a(168));ke(Ke,t),ke(Je,r)}function Cu(e,t,r){var n=e.stateNode;if(t=t.childContextTypes,typeof n.getChildContext!="function")return r;n=n.getChildContext();for(var l in n)if(!(l in t))throw Error(a(108,le(e)||"Unknown",l));return W({},r,n)}function Lo(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Qt,pr=Ke.current,ke(Ke,e),ke(Je,Je.current),!0}function _u(e,t,r){var n=e.stateNode;if(!n)throw Error(a(169));r?(e=Cu(e,t,pr),n.__reactInternalMemoizedMergedChildContext=e,Ne(Je),Ne(Ke),ke(Ke,e)):Ne(Je),ke(Je,r)}var Mt=null,To=!1,Es=!1;function Pu(e){Mt===null?Mt=[e]:Mt.push(e)}function Xp(e){To=!0,Pu(e)}function qt(){if(!Es&&Mt!==null){Es=!0;var e=0,t=be;try{var r=Mt;for(be=1;e>=d,l-=d,Lt=1<<32-ht(t)+l|r<se?(Ve=oe,oe=null):Ve=oe.sibling;var ve=D(C,oe,_[se],U);if(ve===null){oe===null&&(oe=Ve);break}e&&oe&&ve.alternate===null&&t(C,oe),y=i(ve,y,se),ne===null?ee=ve:ne.sibling=ve,ne=ve,oe=Ve}if(se===_.length)return r(C,oe),Ee&&hr(C,se),ee;if(oe===null){for(;se<_.length;se++)oe=A(C,_[se],U),oe!==null&&(y=i(oe,y,se),ne===null?ee=oe:ne.sibling=oe,ne=oe);return Ee&&hr(C,se),ee}for(oe=n(C,oe);se<_.length;se++)Ve=Q(oe,C,se,_[se],U),Ve!==null&&(e&&Ve.alternate!==null&&oe.delete(Ve.key===null?se:Ve.key),y=i(Ve,y,se),ne===null?ee=Ve:ne.sibling=Ve,ne=Ve);return e&&oe.forEach(function(or){return t(C,or)}),Ee&&hr(C,se),ee}function Z(C,y,_,U){var ee=te(_);if(typeof ee!="function")throw Error(a(150));if(_=ee.call(_),_==null)throw Error(a(151));for(var ne=ee=null,oe=y,se=y=0,Ve=null,ve=_.next();oe!==null&&!ve.done;se++,ve=_.next()){oe.index>se?(Ve=oe,oe=null):Ve=oe.sibling;var or=D(C,oe,ve.value,U);if(or===null){oe===null&&(oe=Ve);break}e&&oe&&or.alternate===null&&t(C,oe),y=i(or,y,se),ne===null?ee=or:ne.sibling=or,ne=or,oe=Ve}if(ve.done)return r(C,oe),Ee&&hr(C,se),ee;if(oe===null){for(;!ve.done;se++,ve=_.next())ve=A(C,ve.value,U),ve!==null&&(y=i(ve,y,se),ne===null?ee=ve:ne.sibling=ve,ne=ve);return Ee&&hr(C,se),ee}for(oe=n(C,oe);!ve.done;se++,ve=_.next())ve=Q(oe,C,se,ve.value,U),ve!==null&&(e&&ve.alternate!==null&&oe.delete(ve.key===null?se:ve.key),y=i(ve,y,se),ne===null?ee=ve:ne.sibling=ve,ne=ve);return e&&oe.forEach(function(Mm){return t(C,Mm)}),Ee&&hr(C,se),ee}function Oe(C,y,_,U){if(typeof _=="object"&&_!==null&&_.type===de&&_.key===null&&(_=_.props.children),typeof _=="object"&&_!==null){switch(_.$$typeof){case F:e:{for(var ee=_.key,ne=y;ne!==null;){if(ne.key===ee){if(ee=_.type,ee===de){if(ne.tag===7){r(C,ne.sibling),y=l(ne,_.props.children),y.return=C,C=y;break e}}else if(ne.elementType===ee||typeof ee=="object"&&ee!==null&&ee.$$typeof===Pe&&Du(ee)===ne.type){r(C,ne.sibling),y=l(ne,_.props),y.ref=In(C,ne,_),y.return=C,C=y;break e}r(C,ne);break}else t(C,ne);ne=ne.sibling}_.type===de?(y=Sr(_.props.children,C.mode,U,_.key),y.return=C,C=y):(U=al(_.type,_.key,_.props,null,C.mode,U),U.ref=In(C,y,_),U.return=C,C=U)}return d(C);case re:e:{for(ne=_.key;y!==null;){if(y.key===ne)if(y.tag===4&&y.stateNode.containerInfo===_.containerInfo&&y.stateNode.implementation===_.implementation){r(C,y.sibling),y=l(y,_.children||[]),y.return=C,C=y;break e}else{r(C,y);break}else t(C,y);y=y.sibling}y=Sa(_,C.mode,U),y.return=C,C=y}return d(C);case Pe:return ne=_._init,Oe(C,y,ne(_._payload),U)}if(fn(_))return Y(C,y,_,U);if(te(_))return Z(C,y,_,U);Io(C,_)}return typeof _=="string"&&_!==""||typeof _=="number"?(_=""+_,y!==null&&y.tag===6?(r(C,y.sibling),y=l(y,_),y.return=C,C=y):(r(C,y),y=ka(_,C.mode,U),y.return=C,C=y),d(C)):r(C,y)}return Oe}var Hr=zu(!0),Iu=zu(!1),Ao=Kt(null),Fo=null,Wr=null,Ls=null;function Ts(){Ls=Wr=Fo=null}function Os(e){var t=Ao.current;Ne(Ao),e._currentValue=t}function Ds(e,t,r){for(;e!==null;){var n=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,n!==null&&(n.childLanes|=t)):n!==null&&(n.childLanes&t)!==t&&(n.childLanes|=t),e===r)break;e=e.return}}function Gr(e,t){Fo=e,Ls=Wr=null,e=e.dependencies,e!==null&&e.firstContext!==null&&((e.lanes&t)!==0&&(tt=!0),e.firstContext=null)}function dt(e){var t=e._currentValue;if(Ls!==e)if(e={context:e,memoizedValue:t,next:null},Wr===null){if(Fo===null)throw Error(a(308));Wr=e,Fo.dependencies={lanes:0,firstContext:e}}else Wr=Wr.next=e;return t}var gr=null;function zs(e){gr===null?gr=[e]:gr.push(e)}function Au(e,t,r,n){var l=t.interleaved;return l===null?(r.next=r,zs(t)):(r.next=l.next,l.next=r),t.interleaved=r,Ot(e,n)}function Ot(e,t){e.lanes|=t;var r=e.alternate;for(r!==null&&(r.lanes|=t),r=e,e=e.return;e!==null;)e.childLanes|=t,r=e.alternate,r!==null&&(r.childLanes|=t),r=e,e=e.return;return r.tag===3?r.stateNode:null}var Yt=!1;function Is(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Fu(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function Dt(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Xt(e,t,r){var n=e.updateQueue;if(n===null)return null;if(n=n.shared,(xe&2)!==0){var l=n.pending;return l===null?t.next=t:(t.next=l.next,l.next=t),n.pending=t,Ot(e,r)}return l=n.interleaved,l===null?(t.next=t,zs(n)):(t.next=l.next,l.next=t),n.interleaved=t,Ot(e,r)}function Uo(e,t,r){if(t=t.updateQueue,t!==null&&(t=t.shared,(r&4194240)!==0)){var n=t.lanes;n&=e.pendingLanes,r|=n,t.lanes=r,Xl(e,r)}}function Uu(e,t){var r=e.updateQueue,n=e.alternate;if(n!==null&&(n=n.updateQueue,r===n)){var l=null,i=null;if(r=r.firstBaseUpdate,r!==null){do{var d={eventTime:r.eventTime,lane:r.lane,tag:r.tag,payload:r.payload,callback:r.callback,next:null};i===null?l=i=d:i=i.next=d,r=r.next}while(r!==null);i===null?l=i=t:i=i.next=t}else l=i=t;r={baseState:n.baseState,firstBaseUpdate:l,lastBaseUpdate:i,shared:n.shared,effects:n.effects},e.updateQueue=r;return}e=r.lastBaseUpdate,e===null?r.firstBaseUpdate=t:e.next=t,r.lastBaseUpdate=t}function $o(e,t,r,n){var l=e.updateQueue;Yt=!1;var i=l.firstBaseUpdate,d=l.lastBaseUpdate,x=l.shared.pending;if(x!==null){l.shared.pending=null;var v=x,R=v.next;v.next=null,d===null?i=R:d.next=R,d=v;var z=e.alternate;z!==null&&(z=z.updateQueue,x=z.lastBaseUpdate,x!==d&&(x===null?z.firstBaseUpdate=R:x.next=R,z.lastBaseUpdate=v))}if(i!==null){var A=l.baseState;d=0,z=R=v=null,x=i;do{var D=x.lane,Q=x.eventTime;if((n&D)===D){z!==null&&(z=z.next={eventTime:Q,lane:0,tag:x.tag,payload:x.payload,callback:x.callback,next:null});e:{var Y=e,Z=x;switch(D=t,Q=r,Z.tag){case 1:if(Y=Z.payload,typeof Y=="function"){A=Y.call(Q,A,D);break e}A=Y;break e;case 3:Y.flags=Y.flags&-65537|128;case 0:if(Y=Z.payload,D=typeof Y=="function"?Y.call(Q,A,D):Y,D==null)break e;A=W({},A,D);break e;case 2:Yt=!0}}x.callback!==null&&x.lane!==0&&(e.flags|=64,D=l.effects,D===null?l.effects=[x]:D.push(x))}else Q={eventTime:Q,lane:D,tag:x.tag,payload:x.payload,callback:x.callback,next:null},z===null?(R=z=Q,v=A):z=z.next=Q,d|=D;if(x=x.next,x===null){if(x=l.shared.pending,x===null)break;D=x,x=D.next,D.next=null,l.lastBaseUpdate=D,l.shared.pending=null}}while(!0);if(z===null&&(v=A),l.baseState=v,l.firstBaseUpdate=R,l.lastBaseUpdate=z,t=l.shared.interleaved,t!==null){l=t;do d|=l.lane,l=l.next;while(l!==t)}else i===null&&(l.shared.lanes=0);yr|=d,e.lanes=d,e.memoizedState=A}}function $u(e,t,r){if(e=t.effects,t.effects=null,e!==null)for(t=0;tr?r:4,e(!0);var n=Bs.transition;Bs.transition={};try{e(!1),t()}finally{be=r,Bs.transition=n}}function sc(){return ft().memoizedState}function tm(e,t,r){var n=tr(e);if(r={lane:n,action:r,hasEagerState:!1,eagerState:null,next:null},ac(e))ic(t,r);else if(r=Au(e,t,r,n),r!==null){var l=Ze();wt(r,e,n,l),uc(r,t,n)}}function rm(e,t,r){var n=tr(e),l={lane:n,action:r,hasEagerState:!1,eagerState:null,next:null};if(ac(e))ic(t,l);else{var i=e.alternate;if(e.lanes===0&&(i===null||i.lanes===0)&&(i=t.lastRenderedReducer,i!==null))try{var d=t.lastRenderedState,x=i(d,r);if(l.hasEagerState=!0,l.eagerState=x,gt(x,d)){var v=t.interleaved;v===null?(l.next=l,zs(t)):(l.next=v.next,v.next=l),t.interleaved=l;return}}catch{}finally{}r=Au(e,t,l,n),r!==null&&(l=Ze(),wt(r,e,n,l),uc(r,t,n))}}function ac(e){var t=e.alternate;return e===Me||t!==null&&t===Me}function ic(e,t){$n=Ho=!0;var r=e.pending;r===null?t.next=t:(t.next=r.next,r.next=t),e.pending=t}function uc(e,t,r){if((r&4194240)!==0){var n=t.lanes;n&=e.pendingLanes,r|=n,t.lanes=r,Xl(e,r)}}var Ko={readContext:dt,useCallback:Qe,useContext:Qe,useEffect:Qe,useImperativeHandle:Qe,useInsertionEffect:Qe,useLayoutEffect:Qe,useMemo:Qe,useReducer:Qe,useRef:Qe,useState:Qe,useDebugValue:Qe,useDeferredValue:Qe,useTransition:Qe,useMutableSource:Qe,useSyncExternalStore:Qe,useId:Qe,unstable_isNewReconciler:!1},nm={readContext:dt,useCallback:function(e,t){return Et().memoizedState=[e,t===void 0?null:t],e},useContext:dt,useEffect:Zu,useImperativeHandle:function(e,t,r){return r=r!=null?r.concat([e]):null,Wo(4194308,4,tc.bind(null,t,e),r)},useLayoutEffect:function(e,t){return Wo(4194308,4,e,t)},useInsertionEffect:function(e,t){return Wo(4,2,e,t)},useMemo:function(e,t){var r=Et();return t=t===void 0?null:t,e=e(),r.memoizedState=[e,t],e},useReducer:function(e,t,r){var n=Et();return t=r!==void 0?r(t):t,n.memoizedState=n.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},n.queue=e,e=e.dispatch=tm.bind(null,Me,e),[n.memoizedState,e]},useRef:function(e){var t=Et();return e={current:e},t.memoizedState=e},useState:Yu,useDebugValue:qs,useDeferredValue:function(e){return Et().memoizedState=e},useTransition:function(){var e=Yu(!1),t=e[0];return e=em.bind(null,e[1]),Et().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,r){var n=Me,l=Et();if(Ee){if(r===void 0)throw Error(a(407));r=r()}else{if(r=t(),Be===null)throw Error(a(349));(vr&30)!==0||Wu(n,t,r)}l.memoizedState=r;var i={value:r,getSnapshot:t};return l.queue=i,Zu(Ku.bind(null,n,i,e),[e]),n.flags|=2048,Hn(9,Gu.bind(null,n,i,r,t),void 0,null),r},useId:function(){var e=Et(),t=Be.identifierPrefix;if(Ee){var r=Tt,n=Lt;r=(n&~(1<<32-ht(n)-1)).toString(32)+r,t=":"+t+"R"+r,r=Bn++,0<\/script>",e=e.removeChild(e.firstChild)):typeof n.is=="string"?e=d.createElement(r,{is:n.is}):(e=d.createElement(r),r==="select"&&(d=e,n.multiple?d.multiple=!0:n.size&&(d.size=n.size))):e=d.createElementNS(e,r),e[Nt]=t,e[Dn]=n,Pc(e,t,!1,!1),t.stateNode=e;e:{switch(d=$l(r,n),r){case"dialog":Se("cancel",e),Se("close",e),l=n;break;case"iframe":case"object":case"embed":Se("load",e),l=n;break;case"video":case"audio":for(l=0;lXr&&(t.flags|=128,n=!0,Wn(i,!1),t.lanes=4194304)}else{if(!n)if(e=Bo(d),e!==null){if(t.flags|=128,n=!0,r=e.updateQueue,r!==null&&(t.updateQueue=r,t.flags|=4),Wn(i,!0),i.tail===null&&i.tailMode==="hidden"&&!d.alternate&&!Ee)return qe(t),null}else 2*Te()-i.renderingStartTime>Xr&&r!==1073741824&&(t.flags|=128,n=!0,Wn(i,!1),t.lanes=4194304);i.isBackwards?(d.sibling=t.child,t.child=d):(r=i.last,r!==null?r.sibling=d:t.child=d,i.last=d)}return i.tail!==null?(t=i.tail,i.rendering=t,i.tail=t.sibling,i.renderingStartTime=Te(),t.sibling=null,r=Re.current,ke(Re,n?r&1|2:r&1),t):(qe(t),null);case 22:case 23:return ya(),n=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==n&&(t.flags|=8192),n&&(t.mode&1)!==0?(it&1073741824)!==0&&(qe(t),t.subtreeFlags&6&&(t.flags|=8192)):qe(t),null;case 24:return null;case 25:return null}throw Error(a(156,t.tag))}function dm(e,t){switch(_s(t),t.tag){case 1:return et(t.type)&&Mo(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Kr(),Ne(Je),Ne(Ke),$s(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 5:return Fs(t),null;case 13:if(Ne(Re),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(a(340));Vr()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return Ne(Re),null;case 4:return Kr(),null;case 10:return Os(t.type._context),null;case 22:case 23:return ya(),null;case 24:return null;default:return null}}var Xo=!1,Ye=!1,fm=typeof WeakSet=="function"?WeakSet:Set,q=null;function qr(e,t){var r=e.ref;if(r!==null)if(typeof r=="function")try{r(null)}catch(n){Le(e,t,n)}else r.current=null}function aa(e,t,r){try{r()}catch(n){Le(e,t,n)}}var Lc=!1;function pm(e,t){if(ys=xo,e=cu(),ds(e)){if("selectionStart"in e)var r={start:e.selectionStart,end:e.selectionEnd};else e:{r=(r=e.ownerDocument)&&r.defaultView||window;var n=r.getSelection&&r.getSelection();if(n&&n.rangeCount!==0){r=n.anchorNode;var l=n.anchorOffset,i=n.focusNode;n=n.focusOffset;try{r.nodeType,i.nodeType}catch{r=null;break e}var d=0,x=-1,v=-1,R=0,z=0,A=e,D=null;t:for(;;){for(var Q;A!==r||l!==0&&A.nodeType!==3||(x=d+l),A!==i||n!==0&&A.nodeType!==3||(v=d+n),A.nodeType===3&&(d+=A.nodeValue.length),(Q=A.firstChild)!==null;)D=A,A=Q;for(;;){if(A===e)break t;if(D===r&&++R===l&&(x=d),D===i&&++z===n&&(v=d),(Q=A.nextSibling)!==null)break;A=D,D=A.parentNode}A=Q}r=x===-1||v===-1?null:{start:x,end:v}}else r=null}r=r||{start:0,end:0}}else r=null;for(bs={focusedElem:e,selectionRange:r},xo=!1,q=t;q!==null;)if(t=q,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,q=e;else for(;q!==null;){t=q;try{var Y=t.alternate;if((t.flags&1024)!==0)switch(t.tag){case 0:case 11:case 15:break;case 1:if(Y!==null){var Z=Y.memoizedProps,Oe=Y.memoizedState,C=t.stateNode,y=C.getSnapshotBeforeUpdate(t.elementType===t.type?Z:vt(t.type,Z),Oe);C.__reactInternalSnapshotBeforeUpdate=y}break;case 3:var _=t.stateNode.containerInfo;_.nodeType===1?_.textContent="":_.nodeType===9&&_.documentElement&&_.removeChild(_.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(a(163))}}catch(U){Le(t,t.return,U)}if(e=t.sibling,e!==null){e.return=t.return,q=e;break}q=t.return}return Y=Lc,Lc=!1,Y}function Gn(e,t,r){var n=t.updateQueue;if(n=n!==null?n.lastEffect:null,n!==null){var l=n=n.next;do{if((l.tag&e)===e){var i=l.destroy;l.destroy=void 0,i!==void 0&&aa(t,r,i)}l=l.next}while(l!==n)}}function Zo(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var r=t=t.next;do{if((r.tag&e)===e){var n=r.create;r.destroy=n()}r=r.next}while(r!==t)}}function ia(e){var t=e.ref;if(t!==null){var r=e.stateNode;switch(e.tag){case 5:e=r;break;default:e=r}typeof t=="function"?t(e):t.current=e}}function Tc(e){var t=e.alternate;t!==null&&(e.alternate=null,Tc(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Nt],delete t[Dn],delete t[Ns],delete t[qp],delete t[Yp])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function Oc(e){return e.tag===5||e.tag===3||e.tag===4}function Dc(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Oc(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function ua(e,t,r){var n=e.tag;if(n===5||n===6)e=e.stateNode,t?r.nodeType===8?r.parentNode.insertBefore(e,t):r.insertBefore(e,t):(r.nodeType===8?(t=r.parentNode,t.insertBefore(e,r)):(t=r,t.appendChild(e)),r=r._reactRootContainer,r!=null||t.onclick!==null||(t.onclick=Po));else if(n!==4&&(e=e.child,e!==null))for(ua(e,t,r),e=e.sibling;e!==null;)ua(e,t,r),e=e.sibling}function ca(e,t,r){var n=e.tag;if(n===5||n===6)e=e.stateNode,t?r.insertBefore(e,t):r.appendChild(e);else if(n!==4&&(e=e.child,e!==null))for(ca(e,t,r),e=e.sibling;e!==null;)ca(e,t,r),e=e.sibling}var He=null,yt=!1;function Zt(e,t,r){for(r=r.child;r!==null;)zc(e,t,r),r=r.sibling}function zc(e,t,r){if(St&&typeof St.onCommitFiberUnmount=="function")try{St.onCommitFiberUnmount(co,r)}catch{}switch(r.tag){case 5:Ye||qr(r,t);case 6:var n=He,l=yt;He=null,Zt(e,t,r),He=n,yt=l,He!==null&&(yt?(e=He,r=r.stateNode,e.nodeType===8?e.parentNode.removeChild(r):e.removeChild(r)):He.removeChild(r.stateNode));break;case 18:He!==null&&(yt?(e=He,r=r.stateNode,e.nodeType===8?Ss(e.parentNode,r):e.nodeType===1&&Ss(e,r),Nn(e)):Ss(He,r.stateNode));break;case 4:n=He,l=yt,He=r.stateNode.containerInfo,yt=!0,Zt(e,t,r),He=n,yt=l;break;case 0:case 11:case 14:case 15:if(!Ye&&(n=r.updateQueue,n!==null&&(n=n.lastEffect,n!==null))){l=n=n.next;do{var i=l,d=i.destroy;i=i.tag,d!==void 0&&((i&2)!==0||(i&4)!==0)&&aa(r,t,d),l=l.next}while(l!==n)}Zt(e,t,r);break;case 1:if(!Ye&&(qr(r,t),n=r.stateNode,typeof n.componentWillUnmount=="function"))try{n.props=r.memoizedProps,n.state=r.memoizedState,n.componentWillUnmount()}catch(x){Le(r,t,x)}Zt(e,t,r);break;case 21:Zt(e,t,r);break;case 22:r.mode&1?(Ye=(n=Ye)||r.memoizedState!==null,Zt(e,t,r),Ye=n):Zt(e,t,r);break;default:Zt(e,t,r)}}function Ic(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var r=e.stateNode;r===null&&(r=e.stateNode=new fm),t.forEach(function(n){var l=km.bind(null,e,n);r.has(n)||(r.add(n),n.then(l,l))})}}function bt(e,t){var r=t.deletions;if(r!==null)for(var n=0;nl&&(l=d),n&=~i}if(n=l,n=Te()-n,n=(120>n?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*hm(n/1960))-n,10e?16:e,er===null)var n=!1;else{if(e=er,er=null,nl=0,(xe&6)!==0)throw Error(a(331));var l=xe;for(xe|=4,q=e.current;q!==null;){var i=q,d=i.child;if((q.flags&16)!==0){var x=i.deletions;if(x!==null){for(var v=0;vTe()-pa?wr(e,0):fa|=r),nt(e,t)}function Yc(e,t){t===0&&((e.mode&1)===0?t=1:(t=po,po<<=1,(po&130023424)===0&&(po=4194304)));var r=Ze();e=Ot(e,t),e!==null&&(yn(e,t,r),nt(e,r))}function wm(e){var t=e.memoizedState,r=0;t!==null&&(r=t.retryLane),Yc(e,r)}function km(e,t){var r=0;switch(e.tag){case 13:var n=e.stateNode,l=e.memoizedState;l!==null&&(r=l.retryLane);break;case 19:n=e.stateNode;break;default:throw Error(a(314))}n!==null&&n.delete(t),Yc(e,r)}var Xc;Xc=function(e,t,r){if(e!==null)if(e.memoizedProps!==t.pendingProps||Je.current)tt=!0;else{if((e.lanes&r)===0&&(t.flags&128)===0)return tt=!1,um(e,t,r);tt=(e.flags&131072)!==0}else tt=!1,Ee&&(t.flags&1048576)!==0&&Ru(t,Do,t.index);switch(t.lanes=0,t.tag){case 2:var n=t.type;Yo(e,t),e=t.pendingProps;var l=Ur(t,Ke.current);Gr(t,r),l=Hs(null,t,n,e,l,r);var i=Ws();return t.flags|=1,typeof l=="object"&&l!==null&&typeof l.render=="function"&&l.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,et(n)?(i=!0,Lo(t)):i=!1,t.memoizedState=l.state!==null&&l.state!==void 0?l.state:null,Is(t),l.updater=Qo,t.stateNode=l,l._reactInternals=t,Xs(t,n,e,r),t=ta(null,t,n,!0,i,r)):(t.tag=0,Ee&&i&&Cs(t),Xe(null,t,l,r),t=t.child),t;case 16:n=t.elementType;e:{switch(Yo(e,t),e=t.pendingProps,l=n._init,n=l(n._payload),t.type=n,l=t.tag=Nm(n),e=vt(n,e),l){case 0:t=ea(null,t,n,e,r);break e;case 1:t=Sc(null,t,n,e,r);break e;case 11:t=vc(null,t,n,e,r);break e;case 14:t=yc(null,t,n,vt(n.type,e),r);break e}throw Error(a(306,n,""))}return t;case 0:return n=t.type,l=t.pendingProps,l=t.elementType===n?l:vt(n,l),ea(e,t,n,l,r);case 1:return n=t.type,l=t.pendingProps,l=t.elementType===n?l:vt(n,l),Sc(e,t,n,l,r);case 3:e:{if(Nc(t),e===null)throw Error(a(387));n=t.pendingProps,i=t.memoizedState,l=i.element,Fu(e,t),$o(t,n,null,r);var d=t.memoizedState;if(n=d.element,i.isDehydrated)if(i={element:n,isDehydrated:!1,cache:d.cache,pendingSuspenseBoundaries:d.pendingSuspenseBoundaries,transitions:d.transitions},t.updateQueue.baseState=i,t.memoizedState=i,t.flags&256){l=Qr(Error(a(423)),t),t=jc(e,t,n,r,l);break e}else if(n!==l){l=Qr(Error(a(424)),t),t=jc(e,t,n,r,l);break e}else for(at=Gt(t.stateNode.containerInfo.firstChild),st=t,Ee=!0,xt=null,r=Iu(t,null,n,r),t.child=r;r;)r.flags=r.flags&-3|4096,r=r.sibling;else{if(Vr(),n===l){t=zt(e,t,r);break e}Xe(e,t,n,r)}t=t.child}return t;case 5:return Bu(t),e===null&&Rs(t),n=t.type,l=t.pendingProps,i=e!==null?e.memoizedProps:null,d=l.children,ws(n,l)?d=null:i!==null&&ws(n,i)&&(t.flags|=32),kc(e,t),Xe(e,t,d,r),t.child;case 6:return e===null&&Rs(t),null;case 13:return Ec(e,t,r);case 4:return As(t,t.stateNode.containerInfo),n=t.pendingProps,e===null?t.child=Hr(t,null,n,r):Xe(e,t,n,r),t.child;case 11:return n=t.type,l=t.pendingProps,l=t.elementType===n?l:vt(n,l),vc(e,t,n,l,r);case 7:return Xe(e,t,t.pendingProps,r),t.child;case 8:return Xe(e,t,t.pendingProps.children,r),t.child;case 12:return Xe(e,t,t.pendingProps.children,r),t.child;case 10:e:{if(n=t.type._context,l=t.pendingProps,i=t.memoizedProps,d=l.value,ke(Ao,n._currentValue),n._currentValue=d,i!==null)if(gt(i.value,d)){if(i.children===l.children&&!Je.current){t=zt(e,t,r);break e}}else for(i=t.child,i!==null&&(i.return=t);i!==null;){var x=i.dependencies;if(x!==null){d=i.child;for(var v=x.firstContext;v!==null;){if(v.context===n){if(i.tag===1){v=Dt(-1,r&-r),v.tag=2;var R=i.updateQueue;if(R!==null){R=R.shared;var z=R.pending;z===null?v.next=v:(v.next=z.next,z.next=v),R.pending=v}}i.lanes|=r,v=i.alternate,v!==null&&(v.lanes|=r),Ds(i.return,r,t),x.lanes|=r;break}v=v.next}}else if(i.tag===10)d=i.type===t.type?null:i.child;else if(i.tag===18){if(d=i.return,d===null)throw Error(a(341));d.lanes|=r,x=d.alternate,x!==null&&(x.lanes|=r),Ds(d,r,t),d=i.sibling}else d=i.child;if(d!==null)d.return=i;else for(d=i;d!==null;){if(d===t){d=null;break}if(i=d.sibling,i!==null){i.return=d.return,d=i;break}d=d.return}i=d}Xe(e,t,l.children,r),t=t.child}return t;case 9:return l=t.type,n=t.pendingProps.children,Gr(t,r),l=dt(l),n=n(l),t.flags|=1,Xe(e,t,n,r),t.child;case 14:return n=t.type,l=vt(n,t.pendingProps),l=vt(n.type,l),yc(e,t,n,l,r);case 15:return bc(e,t,t.type,t.pendingProps,r);case 17:return n=t.type,l=t.pendingProps,l=t.elementType===n?l:vt(n,l),Yo(e,t),t.tag=1,et(n)?(e=!0,Lo(t)):e=!1,Gr(t,r),dc(t,n,l),Xs(t,n,l,r),ta(null,t,n,!0,e,r);case 19:return _c(e,t,r);case 22:return wc(e,t,r)}throw Error(a(156,t.tag))};function Zc(e,t){return Mi(e,t)}function Sm(e,t,r,n){this.tag=e,this.key=r,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=n,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function mt(e,t,r,n){return new Sm(e,t,r,n)}function wa(e){return e=e.prototype,!(!e||!e.isReactComponent)}function Nm(e){if(typeof e=="function")return wa(e)?1:0;if(e!=null){if(e=e.$$typeof,e===ce)return 11;if(e===Ie)return 14}return 2}function nr(e,t){var r=e.alternate;return r===null?(r=mt(e.tag,t,e.key,e.mode),r.elementType=e.elementType,r.type=e.type,r.stateNode=e.stateNode,r.alternate=e,e.alternate=r):(r.pendingProps=t,r.type=e.type,r.flags=0,r.subtreeFlags=0,r.deletions=null),r.flags=e.flags&14680064,r.childLanes=e.childLanes,r.lanes=e.lanes,r.child=e.child,r.memoizedProps=e.memoizedProps,r.memoizedState=e.memoizedState,r.updateQueue=e.updateQueue,t=e.dependencies,r.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},r.sibling=e.sibling,r.index=e.index,r.ref=e.ref,r}function al(e,t,r,n,l,i){var d=2;if(n=e,typeof e=="function")wa(e)&&(d=1);else if(typeof e=="string")d=5;else e:switch(e){case de:return Sr(r.children,l,i,t);case we:d=8,l|=8;break;case I:return e=mt(12,r,t,l|2),e.elementType=I,e.lanes=i,e;case ze:return e=mt(13,r,t,l),e.elementType=ze,e.lanes=i,e;case _e:return e=mt(19,r,t,l),e.elementType=_e,e.lanes=i,e;case ye:return il(r,l,i,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case ue:d=10;break e;case Ce:d=9;break e;case ce:d=11;break e;case Ie:d=14;break e;case Pe:d=16,n=null;break e}throw Error(a(130,e==null?e:typeof e,""))}return t=mt(d,r,t,l),t.elementType=e,t.type=n,t.lanes=i,t}function Sr(e,t,r,n){return e=mt(7,e,n,t),e.lanes=r,e}function il(e,t,r,n){return e=mt(22,e,n,t),e.elementType=ye,e.lanes=r,e.stateNode={isHidden:!1},e}function ka(e,t,r){return e=mt(6,e,null,t),e.lanes=r,e}function Sa(e,t,r){return t=mt(4,e.children!==null?e.children:[],e.key,t),t.lanes=r,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function jm(e,t,r,n,l){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Yl(0),this.expirationTimes=Yl(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Yl(0),this.identifierPrefix=n,this.onRecoverableError=l,this.mutableSourceEagerHydrationData=null}function Na(e,t,r,n,l,i,d,x,v){return e=new jm(e,t,r,x,v),t===1?(t=1,i===!0&&(t|=8)):t=0,i=mt(3,null,null,t),e.current=i,i.stateNode=e,i.memoizedState={element:n,isDehydrated:r,cache:null,transitions:null,pendingSuspenseBoundaries:null},Is(i),e}function Em(e,t,r){var n=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(o)}catch(u){console.error(u)}}return o(),Ra.exports=Am(),Ra.exports}var fd;function Fm(){if(fd)return hl;fd=1;var o=Ad();return hl.createRoot=o.createRoot,hl.hydrateRoot=o.hydrateRoot,hl}var Um=Fm();const $m=zd(Um);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Bm=o=>o.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),Fd=(...o)=>o.filter((u,a,c)=>!!u&&u.trim()!==""&&c.indexOf(u)===a).join(" ").trim();/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */var Vm={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Hm=h.forwardRef(({color:o="currentColor",size:u=24,strokeWidth:a=2,absoluteStrokeWidth:c,className:f="",children:p,iconNode:m,...g},N)=>h.createElement("svg",{ref:N,...Vm,width:u,height:u,stroke:o,strokeWidth:c?Number(a)*24/Number(u):a,className:Fd("lucide",f),...g},[...m.map(([S,w])=>h.createElement(S,w)),...Array.isArray(p)?p:[p]]));/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const ie=(o,u)=>{const a=h.forwardRef(({className:c,...f},p)=>h.createElement(Hm,{ref:p,iconNode:u,className:Fd(`lucide-${Bm(o)}`,c),...f}));return a.displayName=`${o}`,a};/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const ri=ie("Activity",[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const gl=ie("ArrowRight",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Wm=ie("BookOpen",[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const ni=ie("Bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Gm=ie("Boxes",[["path",{d:"M2.97 12.92A2 2 0 0 0 2 14.63v3.24a2 2 0 0 0 .97 1.71l3 1.8a2 2 0 0 0 2.06 0L12 19v-5.5l-5-3-4.03 2.42Z",key:"lc1i9w"}],["path",{d:"m7 16.5-4.74-2.85",key:"1o9zyk"}],["path",{d:"m7 16.5 5-3",key:"va8pkn"}],["path",{d:"M7 16.5v5.17",key:"jnp8gn"}],["path",{d:"M12 13.5V19l3.97 2.38a2 2 0 0 0 2.06 0l3-1.8a2 2 0 0 0 .97-1.71v-3.24a2 2 0 0 0-.97-1.71L17 10.5l-5 3Z",key:"8zsnat"}],["path",{d:"m17 16.5-5-3",key:"8arw3v"}],["path",{d:"m17 16.5 4.74-2.85",key:"8rfmw"}],["path",{d:"M17 16.5v5.17",key:"k6z78m"}],["path",{d:"M7.97 4.42A2 2 0 0 0 7 6.13v4.37l5 3 5-3V6.13a2 2 0 0 0-.97-1.71l-3-1.8a2 2 0 0 0-2.06 0l-3 1.8Z",key:"1xygjf"}],["path",{d:"M12 8 7.26 5.15",key:"1vbdud"}],["path",{d:"m12 8 4.74-2.85",key:"3rx089"}],["path",{d:"M12 13.5V8",key:"1io7kd"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Ud=ie("Brain",[["path",{d:"M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z",key:"l5xja"}],["path",{d:"M12 5a3 3 0 1 1 5.997.125 4 4 0 0 1 2.526 5.77 4 4 0 0 1-.556 6.588A4 4 0 1 1 12 18Z",key:"ep3f8r"}],["path",{d:"M15 13a4.5 4.5 0 0 1-3-4 4.5 4.5 0 0 1-3 4",key:"1p4c4q"}],["path",{d:"M17.599 6.5a3 3 0 0 0 .399-1.375",key:"tmeiqw"}],["path",{d:"M6.003 5.125A3 3 0 0 0 6.401 6.5",key:"105sqy"}],["path",{d:"M3.477 10.896a4 4 0 0 1 .585-.396",key:"ql3yin"}],["path",{d:"M19.938 10.5a4 4 0 0 1 .585.396",key:"1qfode"}],["path",{d:"M6 18a4 4 0 0 1-1.967-.516",key:"2e4loj"}],["path",{d:"M19.967 17.484A4 4 0 0 1 18 18",key:"159ez6"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Km=ie("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Qm=ie("ChevronLeft",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const qm=ie("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Ym=ie("CircleAlert",[["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"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Xm=ie("Clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Zm=ie("Command",[["path",{d:"M15 6v12a3 3 0 1 0 3-3H6a3 3 0 1 0 3 3V6a3 3 0 1 0-3 3h12a3 3 0 1 0-3-3",key:"11bfej"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Jm=ie("Construction",[["rect",{x:"2",y:"6",width:"20",height:"8",rx:"1",key:"1estib"}],["path",{d:"M17 14v7",key:"7m2elx"}],["path",{d:"M7 14v7",key:"1cm7wv"}],["path",{d:"M17 3v3",key:"1v4jwn"}],["path",{d:"M7 3v3",key:"7o6guu"}],["path",{d:"M10 14 2.3 6.3",key:"1023jk"}],["path",{d:"m14 6 7.7 7.7",key:"1s8pl2"}],["path",{d:"m8 6 8 8",key:"hl96qh"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const eh=ie("Copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const jr=ie("Cpu",[["rect",{width:"16",height:"16",x:"4",y:"4",rx:"2",key:"14l7u7"}],["rect",{width:"6",height:"6",x:"9",y:"9",rx:"1",key:"5aljv4"}],["path",{d:"M15 2v2",key:"13l42r"}],["path",{d:"M15 20v2",key:"15mkzm"}],["path",{d:"M2 15h2",key:"1gxd5l"}],["path",{d:"M2 9h2",key:"1bbxkp"}],["path",{d:"M20 15h2",key:"19e6y8"}],["path",{d:"M20 9h2",key:"19tzq7"}],["path",{d:"M9 2v2",key:"165o2o"}],["path",{d:"M9 20v2",key:"i2bqo8"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Wa=ie("Download",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"7 10 12 15 17 10",key:"2ggqvy"}],["line",{x1:"12",x2:"12",y1:"15",y2:"3",key:"1vk2je"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Pl=ie("ExternalLink",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const th=ie("FolderOpen",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const rh=ie("GitBranch",[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const nh=ie("Globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const $d=ie("HardDrive",[["line",{x1:"22",x2:"2",y1:"12",y2:"12",key:"1y58io"}],["path",{d:"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z",key:"oot6mr"}],["line",{x1:"6",x2:"6.01",y1:"16",y2:"16",key:"sgf278"}],["line",{x1:"10",x2:"10.01",y1:"16",y2:"16",key:"1l4acy"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const oh=ie("Info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Ga=ie("Layers",[["path",{d:"m12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z",key:"8b97xw"}],["path",{d:"m22 17.65-9.17 4.16a2 2 0 0 1-1.66 0L2 17.65",key:"dd6zsq"}],["path",{d:"m22 12.65-9.17 4.16a2 2 0 0 1-1.66 0L2 12.65",key:"ep9fru"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const lh=ie("LayoutDashboard",[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const sh=ie("Moon",[["path",{d:"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z",key:"a7tn18"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const ah=ie("PenLine",[["path",{d:"M12 20h9",key:"t2du7b"}],["path",{d:"M16.376 3.622a1 1 0 0 1 3.002 3.002L7.368 18.635a2 2 0 0 1-.855.506l-2.872.838a.5.5 0 0 1-.62-.62l.838-2.872a2 2 0 0 1 .506-.854z",key:"1ykcvy"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const ih=ie("Plug",[["path",{d:"M12 22v-5",key:"1ega77"}],["path",{d:"M9 8V2",key:"14iosj"}],["path",{d:"M15 8V2",key:"18g5xt"}],["path",{d:"M18 8v5a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V8Z",key:"osxo6l"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Bd=ie("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const uh=ie("Power",[["path",{d:"M12 2v10",key:"mnfbl"}],["path",{d:"M18.4 6.6a9 9 0 1 1-12.77.04",key:"obofu9"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Ka=ie("RefreshCw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const ch=ie("Route",[["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"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const dh=ie("Save",[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const fh=ie("Scroll",[["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"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Vd=ie("Search",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const ph=ie("Server",[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const mh=ie("Settings",[["path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z",key:"1qme2f"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Hd=ie("ShieldAlert",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"M12 8v4",key:"1got3b"}],["path",{d:"M12 16h.01",key:"1drbdi"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const oi=ie("Shield",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const hh=ie("Sparkles",[["path",{d:"M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z",key:"4pj2yx"}],["path",{d:"M20 3v4",key:"1olli1"}],["path",{d:"M22 5h-4",key:"1gvqau"}],["path",{d:"M4 17v2",key:"vumght"}],["path",{d:"M5 18H3",key:"zchphs"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const gh=ie("Star",[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const xh=ie("Sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const vh=ie("Tag",[["path",{d:"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",key:"vktsd0"}],["circle",{cx:"7.5",cy:"7.5",r:".5",fill:"currentColor",key:"kqv944"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Wd=ie("Terminal",[["polyline",{points:"4 17 10 11 4 5",key:"akl6gq"}],["line",{x1:"12",x2:"20",y1:"19",y2:"19",key:"q2wloq"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Gd=ie("Trash2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const yh=ie("User",[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const bh=ie("Wrench",[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z",key:"cbrjhi"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const wh=ie("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]),Qa=[{id:"dashboard",label:"Zentrale",hint:"System- & Stack-Status",icon:lh},{id:"models",label:"Modell-Zentrale",hint:"Verwalten, laden & Gateway-Routing",icon:Gm},{id:"system",label:"Diagnose",hint:"Metriken, Dienste, Logs",icon:jr},{id:"memory",label:"Gedächtnis",hint:"Geteiltes Memory verwalten",icon:Ud},{id:"connect",label:"Verbinden",hint:"IDE-/Agent-Configs erzeugen",icon:ih},{id:"agent",label:"Hermes",hint:"Agent-Status & WebUI öffnen",icon:ni}];var pd=1,kh=.9,Sh=.8,Nh=.17,Ta=.1,Oa=.999,jh=.9999,Eh=.99,Ch=/[\\\/_+.#"@\[\(\{&]/,_h=/[\\\/_+.#"@\[\(\{&]/g,Ph=/[\s-]/,Kd=/[\s-]/g;function qa(o,u,a,c,f,p,m){if(p===u.length)return f===o.length?pd:Eh;var g=`${f},${p}`;if(m[g]!==void 0)return m[g];for(var N=c.charAt(p),S=a.indexOf(N,f),w=0,E,P,M,T;S>=0;)E=qa(o,u,a,c,S+1,p+1,m),E>w&&(S===f?E*=pd:Ch.test(o.charAt(S-1))?(E*=Sh,M=o.slice(f,S-1).match(_h),M&&f>0&&(E*=Math.pow(Oa,M.length))):Ph.test(o.charAt(S-1))?(E*=kh,T=o.slice(f,S-1).match(Kd),T&&f>0&&(E*=Math.pow(Oa,T.length))):(E*=Nh,f>0&&(E*=Math.pow(Oa,S-f))),o.charAt(S)!==u.charAt(p)&&(E*=jh)),(EE&&(E=P*Ta)),E>w&&(w=E),S=a.indexOf(N,S+1);return m[g]=w,w}function md(o){return o.toLowerCase().replace(Kd," ")}function Rh(o,u,a){return o=a&&a.length>0?`${o+" "+a.join(" ")}`:o,qa(o,u,md(o),md(u),0,0,{})}function ur(o,u,{checkForDefaultPrevented:a=!0}={}){return function(f){if(o==null||o(f),a===!1||!f.defaultPrevented)return u==null?void 0:u(f)}}function hd(o,u){if(typeof o=="function")return o(u);o!=null&&(o.current=u)}function un(...o){return u=>{let a=!1;const c=o.map(f=>{const p=hd(f,u);return!a&&typeof p=="function"&&(a=!0),p});if(a)return()=>{for(let f=0;f{var $;const{scope:P,children:M,...T}=E,j=(($=P==null?void 0:P[o])==null?void 0:$[N])||g,L=h.useMemo(()=>T,Object.values(T));return s.jsx(j.Provider,{value:L,children:M})};S.displayName=p+"Provider";function w(E,P){var j;const M=((j=P==null?void 0:P[o])==null?void 0:j[N])||g,T=h.useContext(M);if(T)return T;if(m!==void 0)return m;throw new Error(`\`${E}\` must be used within \`${p}\``)}return[S,w]}const f=()=>{const p=a.map(m=>h.createContext(m));return function(g){const N=(g==null?void 0:g[o])||p;return h.useMemo(()=>({[`__scope${o}`]:{...g,[o]:N}}),[g,N])}};return f.scopeName=o,[c,Lh(f,...u)]}function Lh(...o){const u=o[0];if(o.length===1)return u;const a=()=>{const c=o.map(f=>({useScope:f(),scopeName:f.scopeName}));return function(p){const m=c.reduce((g,{useScope:N,scopeName:S})=>{const E=N(p)[`__scope${S}`];return{...g,...E}},{});return h.useMemo(()=>({[`__scope${u.scopeName}`]:m}),[m])}};return a.scopeName=u.scopeName,a}var to=globalThis!=null&&globalThis.document?h.useLayoutEffect:()=>{},Th=ti[" useId ".trim().toString()]||(()=>{}),Oh=0;function Ft(o){const[u,a]=h.useState(Th());return to(()=>{a(c=>c??String(Oh++))},[o]),u?`radix-${u}`:""}var Dh=ti[" useInsertionEffect ".trim().toString()]||to;function zh({prop:o,defaultProp:u,onChange:a=()=>{},caller:c}){const[f,p,m]=Ih({defaultProp:u,onChange:a}),g=o!==void 0,N=g?o:f;{const w=h.useRef(o!==void 0);h.useEffect(()=>{const E=w.current;E!==g&&console.warn(`${c} is changing from ${E?"controlled":"uncontrolled"} to ${g?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),w.current=g},[g,c])}const S=h.useCallback(w=>{var E;if(g){const P=Ah(w)?w(o):w;P!==o&&((E=m.current)==null||E.call(m,P))}else p(w)},[g,o,p,m]);return[N,S]}function Ih({defaultProp:o,onChange:u}){const[a,c]=h.useState(o),f=h.useRef(a),p=h.useRef(u);return Dh(()=>{p.current=u},[u]),h.useEffect(()=>{var m;f.current!==a&&((m=p.current)==null||m.call(p,a),f.current=a)},[a,f]),[a,c,p]}function Ah(o){return typeof o=="function"}var Qd=Ad();function qd(o){const u=h.forwardRef((a,c)=>{let{children:f,...p}=a,m=null,g=!1;const N=[];gd(f)&&typeof xl=="function"&&(f=xl(f._payload)),h.Children.forEach(f,P=>{var M;if(Vh(P)){g=!0;const T=P;let j="child"in T.props?T.props.child:T.props.children;gd(j)&&typeof xl=="function"&&(j=xl(j._payload)),m=Uh(T,j),N.push((M=m==null?void 0:m.props)==null?void 0:M.children)}else N.push(P)}),m?m=h.cloneElement(m,void 0,N):!g&&h.Children.count(f)===1&&h.isValidElement(f)&&(m=f);const S=m?Bh(m):void 0,w=Cr(c,S);if(!m){if(f||f===0)throw new Error(g?Kh(o):Gh(o));return f}const E=$h(p,m.props??{});return m.type!==h.Fragment&&(E.ref=c?w:S),h.cloneElement(m,E)});return u.displayName=`${o}.Slot`,u}var Fh=Symbol.for("radix.slottable"),Uh=(o,u)=>{if("child"in o.props){const a=o.props.child;return h.isValidElement(a)?h.cloneElement(a,void 0,o.props.children(a.props.children)):null}return h.isValidElement(u)?u:null};function $h(o,u){const a={...u};for(const c in u){const f=o[c],p=u[c];/^on[A-Z]/.test(c)?f&&p?a[c]=(...g)=>{const N=p(...g);return f(...g),N}:f&&(a[c]=f):c==="style"?a[c]={...f,...p}:c==="className"&&(a[c]=[f,p].filter(Boolean).join(" "))}return{...o,...a}}function Bh(o){var c,f;let u=(c=Object.getOwnPropertyDescriptor(o.props,"ref"))==null?void 0:c.get,a=u&&"isReactWarning"in u&&u.isReactWarning;return a?o.ref:(u=(f=Object.getOwnPropertyDescriptor(o,"ref"))==null?void 0:f.get,a=u&&"isReactWarning"in u&&u.isReactWarning,a?o.props.ref:o.props.ref||o.ref)}function Vh(o){return h.isValidElement(o)&&typeof o.type=="function"&&"__radixId"in o.type&&o.type.__radixId===Fh}var Hh=Symbol.for("react.lazy");function gd(o){return o!=null&&typeof o=="object"&&"$$typeof"in o&&o.$$typeof===Hh&&"_payload"in o&&Wh(o._payload)}function Wh(o){return typeof o=="object"&&o!==null&&"then"in o}var Gh=o=>`${o} failed to slot onto its children. Expected a single React element child or \`Slottable\`.`,Kh=o=>`${o} failed to slot onto its \`Slottable\`. Expected \`Slottable\` to receive a single React element child.`,xl=ti[" use ".trim().toString()],Qh=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Ge=Qh.reduce((o,u)=>{const a=qd(`Primitive.${u}`),c=h.forwardRef((f,p)=>{const{asChild:m,...g}=f,N=m?a:u;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),s.jsx(N,{...g,ref:p})});return c.displayName=`Primitive.${u}`,{...o,[u]:c}},{});function qh(o,u){o&&Qd.flushSync(()=>o.dispatchEvent(u))}function ro(o){const u=h.useRef(o);return h.useEffect(()=>{u.current=o}),h.useMemo(()=>((...a)=>{var c;return(c=u.current)==null?void 0:c.call(u,...a)}),[])}function Yh(o,u=globalThis==null?void 0:globalThis.document){const a=ro(o);h.useEffect(()=>{const c=f=>{f.key==="Escape"&&a(f)};return u.addEventListener("keydown",c,{capture:!0}),()=>u.removeEventListener("keydown",c,{capture:!0})},[a,u])}var Xh="DismissableLayer",Ya="dismissableLayer.update",Zh="dismissableLayer.pointerDownOutside",Jh="dismissableLayer.focusOutside",xd,li=h.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set,dismissableSurfaces:new Set}),Yd=h.forwardRef((o,u)=>{const{disableOutsidePointerEvents:a=!1,deferPointerDownOutside:c=!1,onEscapeKeyDown:f,onPointerDownOutside:p,onFocusOutside:m,onInteractOutside:g,onDismiss:N,...S}=o,w=h.useContext(li),[E,P]=h.useState(null),M=(E==null?void 0:E.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,T]=h.useState({}),j=Cr(u,I=>P(I)),L=Array.from(w.layers),[$]=[...w.layersWithOutsidePointerEventsDisabled].slice(-1),O=L.indexOf($),G=E?L.indexOf(E):-1,X=w.layersWithOutsidePointerEventsDisabled.size>0,F=G>=O,re=h.useRef(!1),de=ng(I=>{const ue=I.target;if(!(ue instanceof Node))return;const Ce=[...w.branches].some(ce=>ce.contains(ue));!F||Ce||(p==null||p(I),g==null||g(I),I.defaultPrevented||N==null||N())},{ownerDocument:M,deferPointerDownOutside:c,isDeferredPointerDownOutsideRef:re,dismissableSurfaces:w.dismissableSurfaces}),we=og(I=>{if(c&&re.current)return;const ue=I.target;[...w.branches].some(ce=>ce.contains(ue))||(m==null||m(I),g==null||g(I),I.defaultPrevented||N==null||N())},M);return Yh(I=>{G===w.layers.size-1&&(f==null||f(I),!I.defaultPrevented&&N&&(I.preventDefault(),N()))},M),h.useEffect(()=>{if(E)return a&&(w.layersWithOutsidePointerEventsDisabled.size===0&&(xd=M.body.style.pointerEvents,M.body.style.pointerEvents="none"),w.layersWithOutsidePointerEventsDisabled.add(E)),w.layers.add(E),vd(),()=>{a&&(w.layersWithOutsidePointerEventsDisabled.delete(E),w.layersWithOutsidePointerEventsDisabled.size===0&&(M.body.style.pointerEvents=xd))}},[E,M,a,w]),h.useEffect(()=>()=>{E&&(w.layers.delete(E),w.layersWithOutsidePointerEventsDisabled.delete(E),vd())},[E,w]),h.useEffect(()=>{const I=()=>T({});return document.addEventListener(Ya,I),()=>document.removeEventListener(Ya,I)},[]),s.jsx(Ge.div,{...S,ref:j,style:{pointerEvents:X?F?"auto":"none":void 0,...o.style},onFocusCapture:ur(o.onFocusCapture,we.onFocusCapture),onBlurCapture:ur(o.onBlurCapture,we.onBlurCapture),onPointerDownCapture:ur(o.onPointerDownCapture,de.onPointerDownCapture)})});Yd.displayName=Xh;var eg="DismissableLayerBranch",tg=h.forwardRef((o,u)=>{const a=h.useContext(li),c=h.useRef(null),f=Cr(u,c);return h.useEffect(()=>{const p=c.current;if(p)return a.branches.add(p),()=>{a.branches.delete(p)}},[a.branches]),s.jsx(Ge.div,{...o,ref:f})});tg.displayName=eg;function rg(){const o=h.useContext(li),[u,a]=h.useState(null);return h.useEffect(()=>{if(u)return o.dismissableSurfaces.add(u),()=>{o.dismissableSurfaces.delete(u)}},[u,o.dismissableSurfaces]),a}function ng(o,u){const{ownerDocument:a=globalThis==null?void 0:globalThis.document,deferPointerDownOutside:c=!1,isDeferredPointerDownOutsideRef:f,dismissableSurfaces:p}=u,m=ro(o),g=h.useRef(!1),N=h.useRef(!1),S=h.useRef(new Map),w=h.useRef(()=>{});return h.useEffect(()=>{function E(){N.current=!1,f.current=!1,S.current.clear()}function P(){return Array.from(S.current.values()).some(Boolean)}function M(O){if(!N.current)return;const G=O.target;G instanceof Node&&[...p].some(F=>F.contains(G))||S.current.set(O.type,!0),O.type==="click"&&window.setTimeout(()=>{N.current&&w.current()},0)}function T(O){N.current&&S.current.set(O.type,!1)}const j=O=>{if(O.target&&!g.current){let G=function(){a.removeEventListener("click",w.current);const F=P();E(),F||Xd(Zh,m,X,{discrete:!0})};const X={originalEvent:O};N.current=!0,f.current=c&&O.button===0,S.current.clear(),!c||O.button!==0?G():(a.removeEventListener("click",w.current),w.current=G,a.addEventListener("click",w.current,{once:!0}))}else a.removeEventListener("click",w.current),E();g.current=!1},L=["pointerup","mousedown","mouseup","touchstart","touchend","click"];for(const O of L)a.addEventListener(O,M,!0),a.addEventListener(O,T);const $=window.setTimeout(()=>{a.addEventListener("pointerdown",j)},0);return()=>{window.clearTimeout($),a.removeEventListener("pointerdown",j),a.removeEventListener("click",w.current);for(const O of L)a.removeEventListener(O,M,!0),a.removeEventListener(O,T)}},[a,m,c,f,p]),{onPointerDownCapture:()=>g.current=!0}}function og(o,u=globalThis==null?void 0:globalThis.document){const a=ro(o),c=h.useRef(!1);return h.useEffect(()=>{const f=p=>{p.target&&!c.current&&Xd(Jh,a,{originalEvent:p},{discrete:!1})};return u.addEventListener("focusin",f),()=>u.removeEventListener("focusin",f)},[u,a]),{onFocusCapture:()=>c.current=!0,onBlurCapture:()=>c.current=!1}}function vd(){const o=new CustomEvent(Ya);document.dispatchEvent(o)}function Xd(o,u,a,{discrete:c}){const f=a.originalEvent.target,p=new CustomEvent(o,{bubbles:!1,cancelable:!0,detail:a});u&&f.addEventListener(o,u,{once:!0}),c?qh(f,p):f.dispatchEvent(p)}var Da="focusScope.autoFocusOnMount",za="focusScope.autoFocusOnUnmount",yd={bubbles:!1,cancelable:!0},lg="FocusScope",Zd=h.forwardRef((o,u)=>{const{loop:a=!1,trapped:c=!1,onMountAutoFocus:f,onUnmountAutoFocus:p,...m}=o,[g,N]=h.useState(null),S=ro(f),w=ro(p),E=h.useRef(null),P=Cr(u,j=>N(j)),M=h.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;h.useEffect(()=>{if(c){let j=function(G){if(M.paused||!g)return;const X=G.target;g.contains(X)?E.current=X:ir(E.current,{select:!0})},L=function(G){if(M.paused||!g)return;const X=G.relatedTarget;X!==null&&(g.contains(X)||ir(E.current,{select:!0}))},$=function(G){if(document.activeElement===document.body)for(const F of G)F.removedNodes.length>0&&ir(g)};document.addEventListener("focusin",j),document.addEventListener("focusout",L);const O=new MutationObserver($);return g&&O.observe(g,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",j),document.removeEventListener("focusout",L),O.disconnect()}}},[c,g,M.paused]),h.useEffect(()=>{if(g){wd.add(M);const j=document.activeElement;if(!g.contains(j)){const $=new CustomEvent(Da,yd);g.addEventListener(Da,S),g.dispatchEvent($),$.defaultPrevented||(sg(dg(Jd(g)),{select:!0}),document.activeElement===j&&ir(g))}return()=>{g.removeEventListener(Da,S),setTimeout(()=>{const $=new CustomEvent(za,yd);g.addEventListener(za,w),g.dispatchEvent($),$.defaultPrevented||ir(j??document.body,{select:!0}),g.removeEventListener(za,w),wd.remove(M)},0)}}},[g,S,w,M]);const T=h.useCallback(j=>{if(!a&&!c||M.paused)return;const L=j.key==="Tab"&&!j.altKey&&!j.ctrlKey&&!j.metaKey,$=document.activeElement;if(L&&$){const O=j.currentTarget,[G,X]=ag(O);G&&X?!j.shiftKey&&$===X?(j.preventDefault(),a&&ir(G,{select:!0})):j.shiftKey&&$===G&&(j.preventDefault(),a&&ir(X,{select:!0})):$===O&&j.preventDefault()}},[a,c,M.paused]);return s.jsx(Ge.div,{tabIndex:-1,...m,ref:P,onKeyDown:T})});Zd.displayName=lg;function sg(o,{select:u=!1}={}){const a=document.activeElement;for(const c of o)if(ir(c,{select:u}),document.activeElement!==a)return}function ag(o){const u=Jd(o),a=bd(u,o),c=bd(u.reverse(),o);return[a,c]}function Jd(o){const u=[],a=document.createTreeWalker(o,NodeFilter.SHOW_ELEMENT,{acceptNode:c=>{const f=c.tagName==="INPUT"&&c.type==="hidden";return c.disabled||c.hidden||f?NodeFilter.FILTER_SKIP:c.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;a.nextNode();)u.push(a.currentNode);return u}function bd(o,u){for(const a of o)if(!ig(a,{upTo:u}))return a}function ig(o,{upTo:u}){if(getComputedStyle(o).visibility==="hidden")return!0;for(;o;){if(u!==void 0&&o===u)return!1;if(getComputedStyle(o).display==="none")return!0;o=o.parentElement}return!1}function ug(o){return o instanceof HTMLInputElement&&"select"in o}function ir(o,{select:u=!1}={}){if(o&&o.focus){const a=document.activeElement;o.focus({preventScroll:!0}),o!==a&&ug(o)&&u&&o.select()}}var wd=cg();function cg(){let o=[];return{add(u){const a=o[0];u!==a&&(a==null||a.pause()),o=kd(o,u),o.unshift(u)},remove(u){var a;o=kd(o,u),(a=o[0])==null||a.resume()}}}function kd(o,u){const a=[...o],c=a.indexOf(u);return c!==-1&&a.splice(c,1),a}function dg(o){return o.filter(u=>u.tagName!=="A")}var fg="Portal",ef=h.forwardRef((o,u)=>{var g;const{container:a,...c}=o,[f,p]=h.useState(!1);to(()=>p(!0),[]);const m=a||f&&((g=globalThis==null?void 0:globalThis.document)==null?void 0:g.body);return m?Qd.createPortal(s.jsx(Ge.div,{...c,ref:u}),m):null});ef.displayName=fg;function pg(o,u){return h.useReducer((a,c)=>u[a][c]??a,o)}var Ml=o=>{const{present:u,children:a}=o,c=mg(u),f=typeof a=="function"?a({present:c.isPresent}):h.Children.only(a),p=hg(c.ref,gg(f));return typeof a=="function"||c.isPresent?h.cloneElement(f,{ref:p}):null};Ml.displayName="Presence";function mg(o){const[u,a]=h.useState(),c=h.useRef(null),f=h.useRef(o),p=h.useRef("none"),m=o?"mounted":"unmounted",[g,N]=pg(m,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return h.useEffect(()=>{const S=vl(c.current);p.current=g==="mounted"?S:"none"},[g]),to(()=>{const S=c.current,w=f.current;if(w!==o){const P=p.current,M=vl(S);o?N("MOUNT"):M==="none"||(S==null?void 0:S.display)==="none"?N("UNMOUNT"):N(w&&P!==M?"ANIMATION_OUT":"UNMOUNT"),f.current=o}},[o,N]),to(()=>{if(u){let S;const w=u.ownerDocument.defaultView??window,E=M=>{const j=vl(c.current).includes(CSS.escape(M.animationName));if(M.target===u&&j&&(N("ANIMATION_END"),!f.current)){const L=u.style.animationFillMode;u.style.animationFillMode="forwards",S=w.setTimeout(()=>{u.style.animationFillMode==="forwards"&&(u.style.animationFillMode=L)})}},P=M=>{M.target===u&&(p.current=vl(c.current))};return u.addEventListener("animationstart",P),u.addEventListener("animationcancel",E),u.addEventListener("animationend",E),()=>{w.clearTimeout(S),u.removeEventListener("animationstart",P),u.removeEventListener("animationcancel",E),u.removeEventListener("animationend",E)}}else N("ANIMATION_END")},[u,N]),{isPresent:["mounted","unmountSuspended"].includes(g),ref:h.useCallback(S=>{c.current=S?getComputedStyle(S):null,a(S)},[])}}function Sd(o,u){if(typeof o=="function")return o(u);o!=null&&(o.current=u)}function hg(...o){const u=h.useRef(o);return u.current=o,h.useCallback(a=>{const c=u.current;let f=!1;const p=c.map(m=>{const g=Sd(m,a);return!f&&typeof g=="function"&&(f=!0),g});if(f)return()=>{for(let m=0;m{_t||(_t={start:Nd(),end:Nd()});const{start:o,end:u}=_t;return document.body.firstElementChild!==o&&document.body.insertAdjacentElement("afterbegin",o),document.body.lastElementChild!==u&&document.body.insertAdjacentElement("beforeend",u),yl++,()=>{yl===1&&(_t==null||_t.start.remove(),_t==null||_t.end.remove(),_t=null),yl=Math.max(0,yl-1)}},[])}function Nd(){const o=document.createElement("span");return o.setAttribute("data-radix-focus-guard",""),o.tabIndex=0,o.style.outline="none",o.style.opacity="0",o.style.position="fixed",o.style.pointerEvents="none",o}var Pt=function(){return Pt=Object.assign||function(u){for(var a,c=1,f=arguments.length;c"u")return Og;var u=Dg(o),a=document.documentElement.clientWidth,c=window.innerWidth;return{left:u[0],top:u[1],right:u[2],gap:Math.max(0,c-a+u[2]-u[0])}},Ig=of(),sn="data-scroll-locked",Ag=function(o,u,a,c){var f=o.left,p=o.top,m=o.right,g=o.gap;return a===void 0&&(a="margin"),` + .`.concat(yg,` { + overflow: hidden `).concat(c,`; + padding-right: `).concat(g,"px ").concat(c,`; + } + body[`).concat(sn,`] { + overflow: hidden `).concat(c,`; + overscroll-behavior: contain; + `).concat([u&&"position: relative ".concat(c,";"),a==="margin"&&` + padding-left: `.concat(f,`px; + padding-top: `).concat(p,`px; + padding-right: `).concat(m,`px; + margin-left:0; + margin-top:0; + margin-right: `).concat(g,"px ").concat(c,`; + `),a==="padding"&&"padding-right: ".concat(g,"px ").concat(c,";")].filter(Boolean).join(""),` + } + + .`).concat(Cl,` { + right: `).concat(g,"px ").concat(c,`; + } + + .`).concat(_l,` { + margin-right: `).concat(g,"px ").concat(c,`; + } + + .`).concat(Cl," .").concat(Cl,` { + right: 0 `).concat(c,`; + } + + .`).concat(_l," .").concat(_l,` { + margin-right: 0 `).concat(c,`; + } + + body[`).concat(sn,`] { + `).concat(bg,": ").concat(g,`px; + } +`)},Ed=function(){var o=parseInt(document.body.getAttribute(sn)||"0",10);return isFinite(o)?o:0},Fg=function(){h.useEffect(function(){return document.body.setAttribute(sn,(Ed()+1).toString()),function(){var o=Ed()-1;o<=0?document.body.removeAttribute(sn):document.body.setAttribute(sn,o.toString())}},[])},Ug=function(o){var u=o.noRelative,a=o.noImportant,c=o.gapMode,f=c===void 0?"margin":c;Fg();var p=h.useMemo(function(){return zg(f)},[f]);return h.createElement(Ig,{styles:Ag(p,!u,f,a?"":"!important")})},Xa=!1;if(typeof window<"u")try{var bl=Object.defineProperty({},"passive",{get:function(){return Xa=!0,!0}});window.addEventListener("test",bl,bl),window.removeEventListener("test",bl,bl)}catch{Xa=!1}var Jr=Xa?{passive:!1}:!1,$g=function(o){return o.tagName==="TEXTAREA"},lf=function(o,u){if(!(o instanceof Element))return!1;var a=window.getComputedStyle(o);return a[u]!=="hidden"&&!(a.overflowY===a.overflowX&&!$g(o)&&a[u]==="visible")},Bg=function(o){return lf(o,"overflowY")},Vg=function(o){return lf(o,"overflowX")},Cd=function(o,u){var a=u.ownerDocument,c=u;do{typeof ShadowRoot<"u"&&c instanceof ShadowRoot&&(c=c.host);var f=sf(o,c);if(f){var p=af(o,c),m=p[1],g=p[2];if(m>g)return!0}c=c.parentNode}while(c&&c!==a.body);return!1},Hg=function(o){var u=o.scrollTop,a=o.scrollHeight,c=o.clientHeight;return[u,a,c]},Wg=function(o){var u=o.scrollLeft,a=o.scrollWidth,c=o.clientWidth;return[u,a,c]},sf=function(o,u){return o==="v"?Bg(u):Vg(u)},af=function(o,u){return o==="v"?Hg(u):Wg(u)},Gg=function(o,u){return o==="h"&&u==="rtl"?-1:1},Kg=function(o,u,a,c,f){var p=Gg(o,window.getComputedStyle(u).direction),m=p*c,g=a.target,N=u.contains(g),S=!1,w=m>0,E=0,P=0;do{if(!g)break;var M=af(o,g),T=M[0],j=M[1],L=M[2],$=j-L-p*T;(T||$)&&sf(o,g)&&(E+=$,P+=T);var O=g.parentNode;g=O&&O.nodeType===Node.DOCUMENT_FRAGMENT_NODE?O.host:O}while(!N&&g!==document.body||N&&(u.contains(g)||u===g));return(w&&Math.abs(E)<1||!w&&Math.abs(P)<1)&&(S=!0),S},wl=function(o){return"changedTouches"in o?[o.changedTouches[0].clientX,o.changedTouches[0].clientY]:[0,0]},_d=function(o){return[o.deltaX,o.deltaY]},Pd=function(o){return o&&"current"in o?o.current:o},Qg=function(o,u){return o[0]===u[0]&&o[1]===u[1]},qg=function(o){return` + .block-interactivity-`.concat(o,` {pointer-events: none;} + .allow-interactivity-`).concat(o,` {pointer-events: all;} +`)},Yg=0,en=[];function Xg(o){var u=h.useRef([]),a=h.useRef([0,0]),c=h.useRef(),f=h.useState(Yg++)[0],p=h.useState(of)[0],m=h.useRef(o);h.useEffect(function(){m.current=o},[o]),h.useEffect(function(){if(o.inert){document.body.classList.add("block-interactivity-".concat(f));var j=vg([o.lockRef.current],(o.shards||[]).map(Pd),!0).filter(Boolean);return j.forEach(function(L){return L.classList.add("allow-interactivity-".concat(f))}),function(){document.body.classList.remove("block-interactivity-".concat(f)),j.forEach(function(L){return L.classList.remove("allow-interactivity-".concat(f))})}}},[o.inert,o.lockRef.current,o.shards]);var g=h.useCallback(function(j,L){if("touches"in j&&j.touches.length===2||j.type==="wheel"&&j.ctrlKey)return!m.current.allowPinchZoom;var $=wl(j),O=a.current,G="deltaX"in j?j.deltaX:O[0]-$[0],X="deltaY"in j?j.deltaY:O[1]-$[1],F,re=j.target,de=Math.abs(G)>Math.abs(X)?"h":"v";if("touches"in j&&de==="h"&&re.type==="range")return!1;var we=window.getSelection(),I=we&&we.anchorNode,ue=I?I===re||I.contains(re):!1;if(ue)return!1;var Ce=Cd(de,re);if(!Ce)return!0;if(Ce?F=de:(F=de==="v"?"h":"v",Ce=Cd(de,re)),!Ce)return!1;if(!c.current&&"changedTouches"in j&&(G||X)&&(c.current=F),!F)return!0;var ce=c.current||F;return Kg(ce,L,j,ce==="h"?G:X)},[]),N=h.useCallback(function(j){var L=j;if(!(!en.length||en[en.length-1]!==p)){var $="deltaY"in L?_d(L):wl(L),O=u.current.filter(function(F){return F.name===L.type&&(F.target===L.target||L.target===F.shadowParent)&&Qg(F.delta,$)})[0];if(O&&O.should){L.cancelable&&L.preventDefault();return}if(!O){var G=(m.current.shards||[]).map(Pd).filter(Boolean).filter(function(F){return F.contains(L.target)}),X=G.length>0?g(L,G[0]):!m.current.noIsolation;X&&L.cancelable&&L.preventDefault()}}},[]),S=h.useCallback(function(j,L,$,O){var G={name:j,delta:L,target:$,should:O,shadowParent:Zg($)};u.current.push(G),setTimeout(function(){u.current=u.current.filter(function(X){return X!==G})},1)},[]),w=h.useCallback(function(j){a.current=wl(j),c.current=void 0},[]),E=h.useCallback(function(j){S(j.type,_d(j),j.target,g(j,o.lockRef.current))},[]),P=h.useCallback(function(j){S(j.type,wl(j),j.target,g(j,o.lockRef.current))},[]);h.useEffect(function(){return en.push(p),o.setCallbacks({onScrollCapture:E,onWheelCapture:E,onTouchMoveCapture:P}),document.addEventListener("wheel",N,Jr),document.addEventListener("touchmove",N,Jr),document.addEventListener("touchstart",w,Jr),function(){en=en.filter(function(j){return j!==p}),document.removeEventListener("wheel",N,Jr),document.removeEventListener("touchmove",N,Jr),document.removeEventListener("touchstart",w,Jr)}},[]);var M=o.removeScrollBar,T=o.inert;return h.createElement(h.Fragment,null,T?h.createElement(p,{styles:qg(f)}):null,M?h.createElement(Ug,{noRelative:o.noRelative,gapMode:o.gapMode}):null)}function Zg(o){for(var u=null;o!==null;)o instanceof ShadowRoot&&(u=o.host,o=o.host),o=o.parentNode;return u}const Jg=Cg(nf,Xg);var uf=h.forwardRef(function(o,u){return h.createElement(Ll,Pt({},o,{ref:u,sideCar:Jg}))});uf.classNames=Ll.classNames;var ex=function(o){if(typeof document>"u")return null;var u=Array.isArray(o)?o[0]:o;return u.ownerDocument.body},tn=new WeakMap,kl=new WeakMap,Sl={},Ua=0,cf=function(o){return o&&(o.host||cf(o.parentNode))},tx=function(o,u){return u.map(function(a){if(o.contains(a))return a;var c=cf(a);return c&&o.contains(c)?c:(console.error("aria-hidden",a,"in not contained inside",o,". Doing nothing"),null)}).filter(function(a){return!!a})},rx=function(o,u,a,c){var f=tx(u,Array.isArray(o)?o:[o]);Sl[a]||(Sl[a]=new WeakMap);var p=Sl[a],m=[],g=new Set,N=new Set(f),S=function(E){!E||g.has(E)||(g.add(E),S(E.parentNode))};f.forEach(S);var w=function(E){!E||N.has(E)||Array.prototype.forEach.call(E.children,function(P){if(g.has(P))w(P);else try{var M=P.getAttribute(c),T=M!==null&&M!=="false",j=(tn.get(P)||0)+1,L=(p.get(P)||0)+1;tn.set(P,j),p.set(P,L),m.push(P),j===1&&T&&kl.set(P,!0),L===1&&P.setAttribute(a,"true"),T||P.setAttribute(c,"true")}catch($){console.error("aria-hidden: cannot operate on ",P,$)}})};return w(u),g.clear(),Ua++,function(){m.forEach(function(E){var P=tn.get(E)-1,M=p.get(E)-1;tn.set(E,P),p.set(E,M),P||(kl.has(E)||E.removeAttribute(c),kl.delete(E)),M||E.removeAttribute(a)}),Ua--,Ua||(tn=new WeakMap,tn=new WeakMap,kl=new WeakMap,Sl={})}},nx=function(o,u,a){a===void 0&&(a="data-aria-hidden");var c=Array.from(Array.isArray(o)?o:[o]),f=ex(o);return f?(c.push.apply(c,Array.from(f.querySelectorAll("[aria-live], script"))),rx(c,f,a,"aria-hidden")):function(){return null}},Tl="Dialog",[df]=Mh(Tl),[ox,kt]=df(Tl),ff=o=>{const{__scopeDialog:u,children:a,open:c,defaultOpen:f,onOpenChange:p,modal:m=!0}=o,g=h.useRef(null),N=h.useRef(null),[S,w]=zh({prop:c,defaultProp:f??!1,onChange:p,caller:Tl});return s.jsx(ox,{scope:u,triggerRef:g,contentRef:N,contentId:Ft(),titleId:Ft(),descriptionId:Ft(),open:S,onOpenChange:w,onOpenToggle:h.useCallback(()=>w(E=>!E),[w]),modal:m,children:a})};ff.displayName=Tl;var pf="DialogTrigger",lx=h.forwardRef((o,u)=>{const{__scopeDialog:a,...c}=o,f=kt(pf,a),p=Cr(u,f.triggerRef);return s.jsx(Ge.button,{type:"button","aria-haspopup":"dialog","aria-expanded":f.open,"aria-controls":f.open?f.contentId:void 0,"data-state":ai(f.open),...c,ref:p,onClick:ur(o.onClick,f.onOpenToggle)})});lx.displayName=pf;var si="DialogPortal",[sx,mf]=df(si,{forceMount:void 0}),hf=o=>{const{__scopeDialog:u,forceMount:a,children:c,container:f}=o,p=kt(si,u);return s.jsx(sx,{scope:u,forceMount:a,children:h.Children.map(c,m=>s.jsx(Ml,{present:a||p.open,children:s.jsx(ef,{asChild:!0,container:f,children:m})}))})};hf.displayName=si;var Rl="DialogOverlay",gf=h.forwardRef((o,u)=>{const a=mf(Rl,o.__scopeDialog),{forceMount:c=a.forceMount,...f}=o,p=kt(Rl,o.__scopeDialog);return p.modal?s.jsx(Ml,{present:c||p.open,children:s.jsx(ix,{...f,ref:u})}):null});gf.displayName=Rl;var ax=qd("DialogOverlay.RemoveScroll"),ix=h.forwardRef((o,u)=>{const{__scopeDialog:a,...c}=o,f=kt(Rl,a),p=rg(),m=Cr(u,p);return s.jsx(uf,{as:ax,allowPinchZoom:!0,shards:[f.contentRef],children:s.jsx(Ge.div,{"data-state":ai(f.open),...c,ref:m,style:{pointerEvents:"auto",...c.style}})})}),cn="DialogContent",xf=h.forwardRef((o,u)=>{const a=mf(cn,o.__scopeDialog),{forceMount:c=a.forceMount,...f}=o,p=kt(cn,o.__scopeDialog);return s.jsx(Ml,{present:c||p.open,children:p.modal?s.jsx(ux,{...f,ref:u}):s.jsx(cx,{...f,ref:u})})});xf.displayName=cn;var ux=h.forwardRef((o,u)=>{const a=kt(cn,o.__scopeDialog),c=h.useRef(null),f=Cr(u,a.contentRef,c);return h.useEffect(()=>{const p=c.current;if(p)return nx(p)},[]),s.jsx(vf,{...o,ref:f,trapFocus:a.open,disableOutsidePointerEvents:a.open,onCloseAutoFocus:ur(o.onCloseAutoFocus,p=>{var m;p.preventDefault(),(m=a.triggerRef.current)==null||m.focus()}),onPointerDownOutside:ur(o.onPointerDownOutside,p=>{const m=p.detail.originalEvent,g=m.button===0&&m.ctrlKey===!0;(m.button===2||g)&&p.preventDefault()}),onFocusOutside:ur(o.onFocusOutside,p=>p.preventDefault())})}),cx=h.forwardRef((o,u)=>{const a=kt(cn,o.__scopeDialog),c=h.useRef(!1),f=h.useRef(!1);return s.jsx(vf,{...o,ref:u,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:p=>{var m,g;(m=o.onCloseAutoFocus)==null||m.call(o,p),p.defaultPrevented||(c.current||(g=a.triggerRef.current)==null||g.focus(),p.preventDefault()),c.current=!1,f.current=!1},onInteractOutside:p=>{var N,S;(N=o.onInteractOutside)==null||N.call(o,p),p.defaultPrevented||(c.current=!0,p.detail.originalEvent.type==="pointerdown"&&(f.current=!0));const m=p.target;((S=a.triggerRef.current)==null?void 0:S.contains(m))&&p.preventDefault(),p.detail.originalEvent.type==="focusin"&&f.current&&p.preventDefault()}})}),vf=h.forwardRef((o,u)=>{const{__scopeDialog:a,trapFocus:c,onOpenAutoFocus:f,onCloseAutoFocus:p,...m}=o,g=kt(cn,a);return xg(),s.jsx(s.Fragment,{children:s.jsx(Zd,{asChild:!0,loop:!0,trapped:c,onMountAutoFocus:f,onUnmountAutoFocus:p,children:s.jsx(Yd,{role:"dialog",id:g.contentId,"aria-describedby":g.descriptionId,"aria-labelledby":g.titleId,"data-state":ai(g.open),...m,ref:u,deferPointerDownOutside:!0,onDismiss:()=>g.onOpenChange(!1)})})})}),yf="DialogTitle",dx=h.forwardRef((o,u)=>{const{__scopeDialog:a,...c}=o,f=kt(yf,a);return s.jsx(Ge.h2,{id:f.titleId,...c,ref:u})});dx.displayName=yf;var bf="DialogDescription",fx=h.forwardRef((o,u)=>{const{__scopeDialog:a,...c}=o,f=kt(bf,a);return s.jsx(Ge.p,{id:f.descriptionId,...c,ref:u})});fx.displayName=bf;var wf="DialogClose",px=h.forwardRef((o,u)=>{const{__scopeDialog:a,...c}=o,f=kt(wf,a);return s.jsx(Ge.button,{type:"button",...c,ref:u,onClick:ur(o.onClick,()=>f.onOpenChange(!1))})});px.displayName=wf;function ai(o){return o?"open":"closed"}var Zn='[cmdk-group=""]',$a='[cmdk-group-items=""]',mx='[cmdk-group-heading=""]',kf='[cmdk-item=""]',Rd=`${kf}:not([aria-disabled="true"])`,Za="cmdk-item-select",on="data-value",hx=(o,u,a)=>Rh(o,u,a),Sf=h.createContext(void 0),no=()=>h.useContext(Sf),Nf=h.createContext(void 0),ii=()=>h.useContext(Nf),jf=h.createContext(void 0),Ef=h.forwardRef((o,u)=>{let a=ln(()=>{var b,V;return{search:"",value:(V=(b=o.value)!=null?b:o.defaultValue)!=null?V:"",selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}}}),c=ln(()=>new Set),f=ln(()=>new Map),p=ln(()=>new Map),m=ln(()=>new Set),g=Cf(o),{label:N,children:S,value:w,onValueChange:E,filter:P,shouldFilter:M,loop:T,disablePointerSelection:j=!1,vimBindings:L=!0,...$}=o,O=Ft(),G=Ft(),X=Ft(),F=h.useRef(null),re=Ex();Er(()=>{if(w!==void 0){let b=w.trim();a.current.value=b,de.emit()}},[w]),Er(()=>{re(6,ze)},[]);let de=h.useMemo(()=>({subscribe:b=>(m.current.add(b),()=>m.current.delete(b)),snapshot:()=>a.current,setState:(b,V,K)=>{var B,J,le,fe;if(!Object.is(a.current[b],V)){if(a.current[b]=V,b==="search")ce(),ue(),re(1,Ce);else if(b==="value"){if(document.activeElement.hasAttribute("cmdk-input")||document.activeElement.hasAttribute("cmdk-root")){let he=document.getElementById(X);he?he.focus():(B=document.getElementById(O))==null||B.focus()}if(re(7,()=>{var he;a.current.selectedItemId=(he=_e())==null?void 0:he.id,de.emit()}),K||re(5,ze),((J=g.current)==null?void 0:J.value)!==void 0){let he=V??"";(fe=(le=g.current).onValueChange)==null||fe.call(le,he);return}}de.emit()}},emit:()=>{m.current.forEach(b=>b())}}),[]),we=h.useMemo(()=>({value:(b,V,K)=>{var B;V!==((B=p.current.get(b))==null?void 0:B.value)&&(p.current.set(b,{value:V,keywords:K}),a.current.filtered.items.set(b,I(V,K)),re(2,()=>{ue(),de.emit()}))},item:(b,V)=>(c.current.add(b),V&&(f.current.has(V)?f.current.get(V).add(b):f.current.set(V,new Set([b]))),re(3,()=>{ce(),ue(),a.current.value||Ce(),de.emit()}),()=>{p.current.delete(b),c.current.delete(b),a.current.filtered.items.delete(b);let K=_e();re(4,()=>{ce(),(K==null?void 0:K.getAttribute("id"))===b&&Ce(),de.emit()})}),group:b=>(f.current.has(b)||f.current.set(b,new Set),()=>{p.current.delete(b),f.current.delete(b)}),filter:()=>g.current.shouldFilter,label:N||o["aria-label"],getDisablePointerSelection:()=>g.current.disablePointerSelection,listId:O,inputId:X,labelId:G,listInnerRef:F}),[]);function I(b,V){var K,B;let J=(B=(K=g.current)==null?void 0:K.filter)!=null?B:hx;return b?J(b,a.current.search,V):0}function ue(){if(!a.current.search||g.current.shouldFilter===!1)return;let b=a.current.filtered.items,V=[];a.current.filtered.groups.forEach(B=>{let J=f.current.get(B),le=0;J.forEach(fe=>{let he=b.get(fe);le=Math.max(he,le)}),V.push([B,le])});let K=F.current;Ie().sort((B,J)=>{var le,fe;let he=B.getAttribute("id"),Ue=J.getAttribute("id");return((le=b.get(Ue))!=null?le:0)-((fe=b.get(he))!=null?fe:0)}).forEach(B=>{let J=B.closest($a);J?J.appendChild(B.parentElement===J?B:B.closest(`${$a} > *`)):K.appendChild(B.parentElement===K?B:B.closest(`${$a} > *`))}),V.sort((B,J)=>J[1]-B[1]).forEach(B=>{var J;let le=(J=F.current)==null?void 0:J.querySelector(`${Zn}[${on}="${encodeURIComponent(B[0])}"]`);le==null||le.parentElement.appendChild(le)})}function Ce(){let b=Ie().find(K=>K.getAttribute("aria-disabled")!=="true"),V=b==null?void 0:b.getAttribute(on);de.setState("value",V||void 0)}function ce(){var b,V,K,B;if(!a.current.search||g.current.shouldFilter===!1){a.current.filtered.count=c.current.size;return}a.current.filtered.groups=new Set;let J=0;for(let le of c.current){let fe=(V=(b=p.current.get(le))==null?void 0:b.value)!=null?V:"",he=(B=(K=p.current.get(le))==null?void 0:K.keywords)!=null?B:[],Ue=I(fe,he);a.current.filtered.items.set(le,Ue),Ue>0&&J++}for(let[le,fe]of f.current)for(let he of fe)if(a.current.filtered.items.get(he)>0){a.current.filtered.groups.add(le);break}a.current.filtered.count=J}function ze(){var b,V,K;let B=_e();B&&(((b=B.parentElement)==null?void 0:b.firstChild)===B&&((K=(V=B.closest(Zn))==null?void 0:V.querySelector(mx))==null||K.scrollIntoView({block:"nearest"})),B.scrollIntoView({block:"nearest"}))}function _e(){var b;return(b=F.current)==null?void 0:b.querySelector(`${kf}[aria-selected="true"]`)}function Ie(){var b;return Array.from(((b=F.current)==null?void 0:b.querySelectorAll(Rd))||[])}function Pe(b){let V=Ie()[b];V&&de.setState("value",V.getAttribute(on))}function ye(b){var V;let K=_e(),B=Ie(),J=B.findIndex(fe=>fe===K),le=B[J+b];(V=g.current)!=null&&V.loop&&(le=J+b<0?B[B.length-1]:J+b===B.length?B[0]:B[J+b]),le&&de.setState("value",le.getAttribute(on))}function H(b){let V=_e(),K=V==null?void 0:V.closest(Zn),B;for(;K&&!B;)K=b>0?Nx(K,Zn):jx(K,Zn),B=K==null?void 0:K.querySelector(Rd);B?de.setState("value",B.getAttribute(on)):ye(b)}let te=()=>Pe(Ie().length-1),W=b=>{b.preventDefault(),b.metaKey?te():b.altKey?H(1):ye(1)},k=b=>{b.preventDefault(),b.metaKey?Pe(0):b.altKey?H(-1):ye(-1)};return h.createElement(Ge.div,{ref:u,tabIndex:-1,...$,"cmdk-root":"",onKeyDown:b=>{var V;(V=$.onKeyDown)==null||V.call($,b);let K=b.nativeEvent.isComposing||b.keyCode===229;if(!(b.defaultPrevented||K))switch(b.key){case"n":case"j":{L&&b.ctrlKey&&W(b);break}case"ArrowDown":{W(b);break}case"p":case"k":{L&&b.ctrlKey&&k(b);break}case"ArrowUp":{k(b);break}case"Home":{b.preventDefault(),Pe(0);break}case"End":{b.preventDefault(),te();break}case"Enter":{b.preventDefault();let B=_e();if(B){let J=new Event(Za);B.dispatchEvent(J)}}}}},h.createElement("label",{"cmdk-label":"",htmlFor:we.inputId,id:we.labelId,style:_x},N),Ol(o,b=>h.createElement(Nf.Provider,{value:de},h.createElement(Sf.Provider,{value:we},b))))}),gx=h.forwardRef((o,u)=>{var a,c;let f=Ft(),p=h.useRef(null),m=h.useContext(jf),g=no(),N=Cf(o),S=(c=(a=N.current)==null?void 0:a.forceMount)!=null?c:m==null?void 0:m.forceMount;Er(()=>{if(!S)return g.item(f,m==null?void 0:m.id)},[S]);let w=_f(f,p,[o.value,o.children,p],o.keywords),E=ii(),P=cr(re=>re.value&&re.value===w.current),M=cr(re=>S||g.filter()===!1?!0:re.search?re.filtered.items.get(f)>0:!0);h.useEffect(()=>{let re=p.current;if(!(!re||o.disabled))return re.addEventListener(Za,T),()=>re.removeEventListener(Za,T)},[M,o.onSelect,o.disabled]);function T(){var re,de;j(),(de=(re=N.current).onSelect)==null||de.call(re,w.current)}function j(){E.setState("value",w.current,!0)}if(!M)return null;let{disabled:L,value:$,onSelect:O,forceMount:G,keywords:X,...F}=o;return h.createElement(Ge.div,{ref:un(p,u),...F,id:f,"cmdk-item":"",role:"option","aria-disabled":!!L,"aria-selected":!!P,"data-disabled":!!L,"data-selected":!!P,onPointerMove:L||g.getDisablePointerSelection()?void 0:j,onClick:L?void 0:T},o.children)}),xx=h.forwardRef((o,u)=>{let{heading:a,children:c,forceMount:f,...p}=o,m=Ft(),g=h.useRef(null),N=h.useRef(null),S=Ft(),w=no(),E=cr(M=>f||w.filter()===!1?!0:M.search?M.filtered.groups.has(m):!0);Er(()=>w.group(m),[]),_f(m,g,[o.value,o.heading,N]);let P=h.useMemo(()=>({id:m,forceMount:f}),[f]);return h.createElement(Ge.div,{ref:un(g,u),...p,"cmdk-group":"",role:"presentation",hidden:E?void 0:!0},a&&h.createElement("div",{ref:N,"cmdk-group-heading":"","aria-hidden":!0,id:S},a),Ol(o,M=>h.createElement("div",{"cmdk-group-items":"",role:"group","aria-labelledby":a?S:void 0},h.createElement(jf.Provider,{value:P},M))))}),vx=h.forwardRef((o,u)=>{let{alwaysRender:a,...c}=o,f=h.useRef(null),p=cr(m=>!m.search);return!a&&!p?null:h.createElement(Ge.div,{ref:un(f,u),...c,"cmdk-separator":"",role:"separator"})}),yx=h.forwardRef((o,u)=>{let{onValueChange:a,...c}=o,f=o.value!=null,p=ii(),m=cr(S=>S.search),g=cr(S=>S.selectedItemId),N=no();return h.useEffect(()=>{o.value!=null&&p.setState("search",o.value)},[o.value]),h.createElement(Ge.input,{ref:u,...c,"cmdk-input":"",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"aria-autocomplete":"list",role:"combobox","aria-expanded":!0,"aria-controls":N.listId,"aria-labelledby":N.labelId,"aria-activedescendant":g,id:N.inputId,type:"text",value:f?o.value:m,onChange:S=>{f||p.setState("search",S.target.value),a==null||a(S.target.value)}})}),bx=h.forwardRef((o,u)=>{let{children:a,label:c="Suggestions",...f}=o,p=h.useRef(null),m=h.useRef(null),g=cr(S=>S.selectedItemId),N=no();return h.useEffect(()=>{if(m.current&&p.current){let S=m.current,w=p.current,E,P=new ResizeObserver(()=>{E=requestAnimationFrame(()=>{let M=S.offsetHeight;w.style.setProperty("--cmdk-list-height",M.toFixed(1)+"px")})});return P.observe(S),()=>{cancelAnimationFrame(E),P.unobserve(S)}}},[]),h.createElement(Ge.div,{ref:un(p,u),...f,"cmdk-list":"",role:"listbox",tabIndex:-1,"aria-activedescendant":g,"aria-label":c,id:N.listId},Ol(o,S=>h.createElement("div",{ref:un(m,N.listInnerRef),"cmdk-list-sizer":""},S)))}),wx=h.forwardRef((o,u)=>{let{open:a,onOpenChange:c,overlayClassName:f,contentClassName:p,container:m,...g}=o;return h.createElement(ff,{open:a,onOpenChange:c},h.createElement(hf,{container:m},h.createElement(gf,{"cmdk-overlay":"",className:f}),h.createElement(xf,{"aria-label":o.label,"cmdk-dialog":"",className:p},h.createElement(Ef,{ref:u,...g}))))}),kx=h.forwardRef((o,u)=>cr(a=>a.filtered.count===0)?h.createElement(Ge.div,{ref:u,...o,"cmdk-empty":"",role:"presentation"}):null),Sx=h.forwardRef((o,u)=>{let{progress:a,children:c,label:f="Loading...",...p}=o;return h.createElement(Ge.div,{ref:u,...p,"cmdk-loading":"",role:"progressbar","aria-valuenow":a,"aria-valuemin":0,"aria-valuemax":100,"aria-label":f},Ol(o,m=>h.createElement("div",{"aria-hidden":!0},m)))}),rn=Object.assign(Ef,{List:bx,Item:gx,Input:yx,Group:xx,Separator:vx,Dialog:wx,Empty:kx,Loading:Sx});function Nx(o,u){let a=o.nextElementSibling;for(;a;){if(a.matches(u))return a;a=a.nextElementSibling}}function jx(o,u){let a=o.previousElementSibling;for(;a;){if(a.matches(u))return a;a=a.previousElementSibling}}function Cf(o){let u=h.useRef(o);return Er(()=>{u.current=o}),u}var Er=typeof window>"u"?h.useEffect:h.useLayoutEffect;function ln(o){let u=h.useRef();return u.current===void 0&&(u.current=o()),u}function cr(o){let u=ii(),a=()=>o(u.snapshot());return h.useSyncExternalStore(u.subscribe,a,a)}function _f(o,u,a,c=[]){let f=h.useRef(),p=no();return Er(()=>{var m;let g=(()=>{var S;for(let w of a){if(typeof w=="string")return w.trim();if(typeof w=="object"&&"current"in w)return w.current?(S=w.current.textContent)==null?void 0:S.trim():f.current}})(),N=c.map(S=>S.trim());p.value(o,g,N),(m=u.current)==null||m.setAttribute(on,g),f.current=g}),f}var Ex=()=>{let[o,u]=h.useState(),a=ln(()=>new Map);return Er(()=>{a.current.forEach(c=>c()),a.current=new Map},[o]),(c,f)=>{a.current.set(c,f),u({})}};function Cx(o){let u=o.type;return typeof u=="function"?u(o.props):"render"in u?u.render(o.props):o}function Ol({asChild:o,children:u},a){return o&&h.isValidElement(u)?h.cloneElement(Cx(u),{ref:u.ref},a(u.props.children)):a(u)}var _x={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"};function Px({onNavigate:o}){const[u,a]=h.useState(!1);return h.useEffect(()=>{const c=f=>{(f.metaKey||f.ctrlKey)&&f.key.toLowerCase()==="k"&&(f.preventDefault(),a(p=>!p))};return document.addEventListener("keydown",c),()=>document.removeEventListener("keydown",c)},[]),s.jsx(rn.Dialog,{open:u,onOpenChange:a,label:"Befehlspalette",className:"fixed inset-0 z-50 flex items-start justify-center bg-black/50 p-4 pt-[12vh]",onClick:()=>a(!1),children:s.jsxs("div",{className:"w-full max-w-lg overflow-hidden rounded-xl border border-border bg-popover text-popover-foreground shadow-2xl",onClick:c=>c.stopPropagation(),children:[s.jsx(rn.Input,{autoFocus:!0,placeholder:"Springe zu… (Modelle, Routing, System …)",className:"w-full border-b border-border bg-transparent px-4 py-3 text-sm outline-none placeholder:text-muted-foreground"}),s.jsxs(rn.List,{className:"max-h-80 overflow-y-auto p-2",children:[s.jsx(rn.Empty,{className:"px-3 py-6 text-center text-sm text-muted-foreground",children:"Nichts gefunden."}),s.jsx(rn.Group,{heading:"Bereiche",className:"px-1 py-1 text-xs text-muted-foreground",children:Qa.map(c=>s.jsxs(rn.Item,{value:`${c.label} ${c.hint}`,onSelect:()=>{o(c.id),a(!1)},className:"flex cursor-pointer items-center gap-3 rounded-md px-3 py-2 text-sm text-foreground aria-selected:bg-accent aria-selected:text-accent-foreground",children:[s.jsx(c.icon,{className:"h-4 w-4 text-primary"}),s.jsx("span",{children:c.label}),s.jsx("span",{className:"ml-auto truncate text-xs text-muted-foreground",children:c.hint})]},c.id))})]})]})})}async function pe(o,u){const a=await fetch(o,{headers:{"Content-Type":"application/json"},...u});if(!a.ok)throw new Error(`${a.status} ${a.statusText}`);return a.json()}function Pf(o){var u,a,c="";if(typeof o=="string"||typeof o=="number")c+=o;else if(typeof o=="object")if(Array.isArray(o)){var f=o.length;for(u=0;u{const u=Tx(o),{conflictingClassGroups:a,conflictingClassGroupModifiers:c}=o;return{getClassGroupId:m=>{const g=m.split(ui);return g[0]===""&&g.length!==1&&g.shift(),Rf(g,u)||Lx(m)},getConflictingClassGroupIds:(m,g)=>{const N=a[m]||[];return g&&c[m]?[...N,...c[m]]:N}}},Rf=(o,u)=>{var m;if(o.length===0)return u.classGroupId;const a=o[0],c=u.nextPart.get(a),f=c?Rf(o.slice(1),c):void 0;if(f)return f;if(u.validators.length===0)return;const p=o.join(ui);return(m=u.validators.find(({validator:g})=>g(p)))==null?void 0:m.classGroupId},Md=/^\[(.+)\]$/,Lx=o=>{if(Md.test(o)){const u=Md.exec(o)[1],a=u==null?void 0:u.substring(0,u.indexOf(":"));if(a)return"arbitrary.."+a}},Tx=o=>{const{theme:u,prefix:a}=o,c={nextPart:new Map,validators:[]};return Dx(Object.entries(o.classGroups),a).forEach(([p,m])=>{Ja(m,c,p,u)}),c},Ja=(o,u,a,c)=>{o.forEach(f=>{if(typeof f=="string"){const p=f===""?u:Ld(u,f);p.classGroupId=a;return}if(typeof f=="function"){if(Ox(f)){Ja(f(c),u,a,c);return}u.validators.push({validator:f,classGroupId:a});return}Object.entries(f).forEach(([p,m])=>{Ja(m,Ld(u,p),a,c)})})},Ld=(o,u)=>{let a=o;return u.split(ui).forEach(c=>{a.nextPart.has(c)||a.nextPart.set(c,{nextPart:new Map,validators:[]}),a=a.nextPart.get(c)}),a},Ox=o=>o.isThemeGetter,Dx=(o,u)=>u?o.map(([a,c])=>{const f=c.map(p=>typeof p=="string"?u+p:typeof p=="object"?Object.fromEntries(Object.entries(p).map(([m,g])=>[u+m,g])):p);return[a,f]}):o,zx=o=>{if(o<1)return{get:()=>{},set:()=>{}};let u=0,a=new Map,c=new Map;const f=(p,m)=>{a.set(p,m),u++,u>o&&(u=0,c=a,a=new Map)};return{get(p){let m=a.get(p);if(m!==void 0)return m;if((m=c.get(p))!==void 0)return f(p,m),m},set(p,m){a.has(p)?a.set(p,m):f(p,m)}}},Mf="!",Ix=o=>{const{separator:u,experimentalParseClassName:a}=o,c=u.length===1,f=u[0],p=u.length,m=g=>{const N=[];let S=0,w=0,E;for(let L=0;Lw?E-w:void 0;return{modifiers:N,hasImportantModifier:M,baseClassName:T,maybePostfixModifierPosition:j}};return a?g=>a({className:g,parseClassName:m}):m},Ax=o=>{if(o.length<=1)return o;const u=[];let a=[];return o.forEach(c=>{c[0]==="["?(u.push(...a.sort(),c),a=[]):a.push(c)}),u.push(...a.sort()),u},Fx=o=>({cache:zx(o.cacheSize),parseClassName:Ix(o),...Mx(o)}),Ux=/\s+/,$x=(o,u)=>{const{parseClassName:a,getClassGroupId:c,getConflictingClassGroupIds:f}=u,p=[],m=o.trim().split(Ux);let g="";for(let N=m.length-1;N>=0;N-=1){const S=m[N],{modifiers:w,hasImportantModifier:E,baseClassName:P,maybePostfixModifierPosition:M}=a(S);let T=!!M,j=c(T?P.substring(0,M):P);if(!j){if(!T){g=S+(g.length>0?" "+g:g);continue}if(j=c(P),!j){g=S+(g.length>0?" "+g:g);continue}T=!1}const L=Ax(w).join(":"),$=E?L+Mf:L,O=$+j;if(p.includes(O))continue;p.push(O);const G=f(j,T);for(let X=0;X0?" "+g:g)}return g};function Bx(){let o=0,u,a,c="";for(;o{if(typeof o=="string")return o;let u,a="";for(let c=0;cE(w),o());return a=Fx(S),c=a.cache.get,f=a.cache.set,p=g,g(N)}function g(N){const S=c(N);if(S)return S;const w=$x(N,a);return f(N,w),w}return function(){return p(Bx.apply(null,arguments))}}const je=o=>{const u=a=>a[o]||[];return u.isThemeGetter=!0,u},Tf=/^\[(?:([a-z-]+):)?(.+)\]$/i,Hx=/^\d+\/\d+$/,Wx=new Set(["px","full","screen"]),Gx=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,Kx=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,Qx=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,qx=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,Yx=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,At=o=>an(o)||Wx.has(o)||Hx.test(o),lr=o=>dn(o,"length",o0),an=o=>!!o&&!Number.isNaN(Number(o)),Ba=o=>dn(o,"number",an),Jn=o=>!!o&&Number.isInteger(Number(o)),Xx=o=>o.endsWith("%")&&an(o.slice(0,-1)),me=o=>Tf.test(o),sr=o=>Gx.test(o),Zx=new Set(["length","size","percentage"]),Jx=o=>dn(o,Zx,Of),e0=o=>dn(o,"position",Of),t0=new Set(["image","url"]),r0=o=>dn(o,t0,s0),n0=o=>dn(o,"",l0),eo=()=>!0,dn=(o,u,a)=>{const c=Tf.exec(o);return c?c[1]?typeof u=="string"?c[1]===u:u.has(c[1]):a(c[2]):!1},o0=o=>Kx.test(o)&&!Qx.test(o),Of=()=>!1,l0=o=>qx.test(o),s0=o=>Yx.test(o),a0=()=>{const o=je("colors"),u=je("spacing"),a=je("blur"),c=je("brightness"),f=je("borderColor"),p=je("borderRadius"),m=je("borderSpacing"),g=je("borderWidth"),N=je("contrast"),S=je("grayscale"),w=je("hueRotate"),E=je("invert"),P=je("gap"),M=je("gradientColorStops"),T=je("gradientColorStopPositions"),j=je("inset"),L=je("margin"),$=je("opacity"),O=je("padding"),G=je("saturate"),X=je("scale"),F=je("sepia"),re=je("skew"),de=je("space"),we=je("translate"),I=()=>["auto","contain","none"],ue=()=>["auto","hidden","clip","visible","scroll"],Ce=()=>["auto",me,u],ce=()=>[me,u],ze=()=>["",At,lr],_e=()=>["auto",an,me],Ie=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],Pe=()=>["solid","dashed","dotted","double","none"],ye=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],H=()=>["start","end","center","between","around","evenly","stretch"],te=()=>["","0",me],W=()=>["auto","avoid","all","avoid-page","page","left","right","column"],k=()=>[an,me];return{cacheSize:500,separator:":",theme:{colors:[eo],spacing:[At,lr],blur:["none","",sr,me],brightness:k(),borderColor:[o],borderRadius:["none","","full",sr,me],borderSpacing:ce(),borderWidth:ze(),contrast:k(),grayscale:te(),hueRotate:k(),invert:te(),gap:ce(),gradientColorStops:[o],gradientColorStopPositions:[Xx,lr],inset:Ce(),margin:Ce(),opacity:k(),padding:ce(),saturate:k(),scale:k(),sepia:te(),skew:k(),space:ce(),translate:ce()},classGroups:{aspect:[{aspect:["auto","square","video",me]}],container:["container"],columns:[{columns:[sr]}],"break-after":[{"break-after":W()}],"break-before":[{"break-before":W()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:[...Ie(),me]}],overflow:[{overflow:ue()}],"overflow-x":[{"overflow-x":ue()}],"overflow-y":[{"overflow-y":ue()}],overscroll:[{overscroll:I()}],"overscroll-x":[{"overscroll-x":I()}],"overscroll-y":[{"overscroll-y":I()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[j]}],"inset-x":[{"inset-x":[j]}],"inset-y":[{"inset-y":[j]}],start:[{start:[j]}],end:[{end:[j]}],top:[{top:[j]}],right:[{right:[j]}],bottom:[{bottom:[j]}],left:[{left:[j]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",Jn,me]}],basis:[{basis:Ce()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",me]}],grow:[{grow:te()}],shrink:[{shrink:te()}],order:[{order:["first","last","none",Jn,me]}],"grid-cols":[{"grid-cols":[eo]}],"col-start-end":[{col:["auto",{span:["full",Jn,me]},me]}],"col-start":[{"col-start":_e()}],"col-end":[{"col-end":_e()}],"grid-rows":[{"grid-rows":[eo]}],"row-start-end":[{row:["auto",{span:[Jn,me]},me]}],"row-start":[{"row-start":_e()}],"row-end":[{"row-end":_e()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",me]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",me]}],gap:[{gap:[P]}],"gap-x":[{"gap-x":[P]}],"gap-y":[{"gap-y":[P]}],"justify-content":[{justify:["normal",...H()]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal",...H(),"baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":[...H(),"baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[O]}],px:[{px:[O]}],py:[{py:[O]}],ps:[{ps:[O]}],pe:[{pe:[O]}],pt:[{pt:[O]}],pr:[{pr:[O]}],pb:[{pb:[O]}],pl:[{pl:[O]}],m:[{m:[L]}],mx:[{mx:[L]}],my:[{my:[L]}],ms:[{ms:[L]}],me:[{me:[L]}],mt:[{mt:[L]}],mr:[{mr:[L]}],mb:[{mb:[L]}],ml:[{ml:[L]}],"space-x":[{"space-x":[de]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[de]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",me,u]}],"min-w":[{"min-w":[me,u,"min","max","fit"]}],"max-w":[{"max-w":[me,u,"none","full","min","max","fit","prose",{screen:[sr]},sr]}],h:[{h:[me,u,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[me,u,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[me,u,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[me,u,"auto","min","max","fit"]}],"font-size":[{text:["base",sr,lr]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",Ba]}],"font-family":[{font:[eo]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:["tighter","tight","normal","wide","wider","widest",me]}],"line-clamp":[{"line-clamp":["none",an,Ba]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",At,me]}],"list-image":[{"list-image":["none",me]}],"list-style-type":[{list:["none","disc","decimal",me]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[o]}],"placeholder-opacity":[{"placeholder-opacity":[$]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[o]}],"text-opacity":[{"text-opacity":[$]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...Pe(),"wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",At,lr]}],"underline-offset":[{"underline-offset":["auto",At,me]}],"text-decoration-color":[{decoration:[o]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:ce()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",me]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",me]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[$]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:[...Ie(),e0]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",Jx]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},r0]}],"bg-color":[{bg:[o]}],"gradient-from-pos":[{from:[T]}],"gradient-via-pos":[{via:[T]}],"gradient-to-pos":[{to:[T]}],"gradient-from":[{from:[M]}],"gradient-via":[{via:[M]}],"gradient-to":[{to:[M]}],rounded:[{rounded:[p]}],"rounded-s":[{"rounded-s":[p]}],"rounded-e":[{"rounded-e":[p]}],"rounded-t":[{"rounded-t":[p]}],"rounded-r":[{"rounded-r":[p]}],"rounded-b":[{"rounded-b":[p]}],"rounded-l":[{"rounded-l":[p]}],"rounded-ss":[{"rounded-ss":[p]}],"rounded-se":[{"rounded-se":[p]}],"rounded-ee":[{"rounded-ee":[p]}],"rounded-es":[{"rounded-es":[p]}],"rounded-tl":[{"rounded-tl":[p]}],"rounded-tr":[{"rounded-tr":[p]}],"rounded-br":[{"rounded-br":[p]}],"rounded-bl":[{"rounded-bl":[p]}],"border-w":[{border:[g]}],"border-w-x":[{"border-x":[g]}],"border-w-y":[{"border-y":[g]}],"border-w-s":[{"border-s":[g]}],"border-w-e":[{"border-e":[g]}],"border-w-t":[{"border-t":[g]}],"border-w-r":[{"border-r":[g]}],"border-w-b":[{"border-b":[g]}],"border-w-l":[{"border-l":[g]}],"border-opacity":[{"border-opacity":[$]}],"border-style":[{border:[...Pe(),"hidden"]}],"divide-x":[{"divide-x":[g]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[g]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[$]}],"divide-style":[{divide:Pe()}],"border-color":[{border:[f]}],"border-color-x":[{"border-x":[f]}],"border-color-y":[{"border-y":[f]}],"border-color-s":[{"border-s":[f]}],"border-color-e":[{"border-e":[f]}],"border-color-t":[{"border-t":[f]}],"border-color-r":[{"border-r":[f]}],"border-color-b":[{"border-b":[f]}],"border-color-l":[{"border-l":[f]}],"divide-color":[{divide:[f]}],"outline-style":[{outline:["",...Pe()]}],"outline-offset":[{"outline-offset":[At,me]}],"outline-w":[{outline:[At,lr]}],"outline-color":[{outline:[o]}],"ring-w":[{ring:ze()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[o]}],"ring-opacity":[{"ring-opacity":[$]}],"ring-offset-w":[{"ring-offset":[At,lr]}],"ring-offset-color":[{"ring-offset":[o]}],shadow:[{shadow:["","inner","none",sr,n0]}],"shadow-color":[{shadow:[eo]}],opacity:[{opacity:[$]}],"mix-blend":[{"mix-blend":[...ye(),"plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":ye()}],filter:[{filter:["","none"]}],blur:[{blur:[a]}],brightness:[{brightness:[c]}],contrast:[{contrast:[N]}],"drop-shadow":[{"drop-shadow":["","none",sr,me]}],grayscale:[{grayscale:[S]}],"hue-rotate":[{"hue-rotate":[w]}],invert:[{invert:[E]}],saturate:[{saturate:[G]}],sepia:[{sepia:[F]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[a]}],"backdrop-brightness":[{"backdrop-brightness":[c]}],"backdrop-contrast":[{"backdrop-contrast":[N]}],"backdrop-grayscale":[{"backdrop-grayscale":[S]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[w]}],"backdrop-invert":[{"backdrop-invert":[E]}],"backdrop-opacity":[{"backdrop-opacity":[$]}],"backdrop-saturate":[{"backdrop-saturate":[G]}],"backdrop-sepia":[{"backdrop-sepia":[F]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[m]}],"border-spacing-x":[{"border-spacing-x":[m]}],"border-spacing-y":[{"border-spacing-y":[m]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",me]}],duration:[{duration:k()}],ease:[{ease:["linear","in","out","in-out",me]}],delay:[{delay:k()}],animate:[{animate:["none","spin","ping","pulse","bounce",me]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[X]}],"scale-x":[{"scale-x":[X]}],"scale-y":[{"scale-y":[X]}],rotate:[{rotate:[Jn,me]}],"translate-x":[{"translate-x":[we]}],"translate-y":[{"translate-y":[we]}],"skew-x":[{"skew-x":[re]}],"skew-y":[{"skew-y":[re]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",me]}],accent:[{accent:["auto",o]}],appearance:[{appearance:["none","auto"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",me]}],"caret-color":[{caret:[o]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":ce()}],"scroll-mx":[{"scroll-mx":ce()}],"scroll-my":[{"scroll-my":ce()}],"scroll-ms":[{"scroll-ms":ce()}],"scroll-me":[{"scroll-me":ce()}],"scroll-mt":[{"scroll-mt":ce()}],"scroll-mr":[{"scroll-mr":ce()}],"scroll-mb":[{"scroll-mb":ce()}],"scroll-ml":[{"scroll-ml":ce()}],"scroll-p":[{"scroll-p":ce()}],"scroll-px":[{"scroll-px":ce()}],"scroll-py":[{"scroll-py":ce()}],"scroll-ps":[{"scroll-ps":ce()}],"scroll-pe":[{"scroll-pe":ce()}],"scroll-pt":[{"scroll-pt":ce()}],"scroll-pr":[{"scroll-pr":ce()}],"scroll-pb":[{"scroll-pb":ce()}],"scroll-pl":[{"scroll-pl":ce()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",me]}],fill:[{fill:[o,"none"]}],"stroke-w":[{stroke:[At,lr,Ba]}],stroke:[{stroke:[o,"none"]}],sr:["sr-only","not-sr-only"],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]}}},i0=Vx(a0);function ae(...o){return i0(Rx(o))}function nn(o){return(o/1024**3).toFixed(1)}function Nl({value:o,label:u,detail:a}){const f=2*Math.PI*24,p=f-Math.min(o,100)/100*f,m=o>90?"stroke-red-500":o>75?"stroke-amber-500":"stroke-primary";return s.jsxs("div",{className:"flex flex-col items-center gap-1.5 p-2 bg-background/20 rounded-xl border border-border/40",children:[s.jsxs("div",{className:"relative flex h-16 w-16 items-center justify-center",children:[s.jsxs("svg",{className:"absolute inset-0 h-full w-full -rotate-90",children:[s.jsx("circle",{cx:"32",cy:"32",r:24,className:"stroke-muted fill-none",strokeWidth:"4.5"}),s.jsx("circle",{cx:"32",cy:"32",r:24,className:ae("fill-none transition-all duration-700 ease-out",m),strokeWidth:"4.5",strokeDasharray:f,strokeDashoffset:p,strokeLinecap:"round"})]}),s.jsxs("span",{className:"text-xs font-mono font-bold tracking-tight text-foreground",children:[Math.round(o),"%"]})]}),s.jsx("span",{className:"text-[11px] font-semibold text-muted-foreground uppercase tracking-wider",children:u}),a&&s.jsx("span",{className:"text-[10px] font-mono text-muted-foreground/80",children:a})]})}function u0(){const[o,u]=h.useState(null),[a,c]=h.useState(null),[f,p]=h.useState([]),[m,g]=h.useState([]),[N,S]=h.useState([]),[w,E]=h.useState(null),[P,M]=h.useState(""),[T,j]=h.useState("stable"),[L,$]=h.useState(!1);function O(){pe("/api/system/status").then(u).catch(()=>{}),pe("/api/agent/status").then(c).catch(()=>{}),pe("/api/models").then(F=>{p(F.models||[]),g(F.running||[])}).catch(()=>{}),pe("/api/memory?category=").then(F=>S(F.slice(0,3))).catch(()=>{}),pe("/api/maintenance/updates").then(E).catch(()=>{})}h.useEffect(()=>{O();const F=setInterval(O,3e3);return()=>clearInterval(F)},[]);async function G(){if(!(!P.trim()||L)){$(!0);try{await pe("/api/memory",{method:"POST",body:JSON.stringify({content:P,category:T,source:"dashboard"})}),M(""),pe("/api/memory?category=").then(F=>S(F.slice(0,3))).catch(()=>{})}catch(F){console.error(F)}finally{$(!1)}}}const X=f.filter(F=>F.role);return s.jsxs("div",{className:"space-y-6",children:[s.jsxs("div",{children:[s.jsx("h1",{className:"text-2xl font-space font-bold tracking-tight bg-gradient-to-r from-foreground via-foreground to-primary bg-clip-text text-transparent",children:"Zentrale"}),s.jsx("p",{className:"text-sm text-muted-foreground",children:"Aktueller Status von System, Modellen und Agent."})]}),s.jsxs("div",{className:"grid gap-6 md:grid-cols-3",children:[s.jsxs("div",{className:"md:col-span-2 flex flex-col justify-between rounded-2xl border border-border/60 bg-card/45 backdrop-blur-md p-5 shadow-lg shadow-black/15",children:[s.jsxs("div",{children:[s.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[s.jsx(jr,{className:"h-4.5 w-4.5 text-primary"}),s.jsx("h2",{className:"text-sm font-semibold tracking-wide uppercase text-foreground",children:"System-Status"})]}),o?s.jsxs("div",{className:"grid grid-cols-2 gap-3 sm:grid-cols-4",children:[s.jsx(Nl,{value:o.cpu.percent,label:"CPU",detail:`${o.cpu.cores} Cores`}),s.jsx(Nl,{value:o.ram.percent,label:"RAM",detail:`${nn(o.ram.used)} / ${nn(o.ram.total)} GB`}),o.gpu&&o.gpu.busy_percent!=null&&o.gpu.gtt_used!=null&&o.gpu.gtt_total!=null&&s.jsx(Nl,{value:o.gpu.busy_percent,label:"GPU",detail:`${nn(o.gpu.gtt_used)} / ${nn(o.gpu.gtt_total)} GB`}),o.disk&&s.jsx(Nl,{value:o.disk.percent,label:"Disk",detail:`${nn(o.disk.used)} / ${nn(o.disk.total)} GB`})]}):s.jsx("div",{className:"h-28 flex items-center justify-center text-xs text-muted-foreground",children:"Lade Systemdaten…"})]}),(o==null?void 0:o.temp)&&(o.temp.cpu||o.temp.gpu)&&s.jsxs("div",{className:"mt-4 flex gap-4 text-xs font-mono text-muted-foreground/80 border-t border-border/30 pt-3",children:[o.temp.cpu!=null&&s.jsxs("span",{children:["CPU Temp: ",o.temp.cpu," °C"]}),o.temp.gpu!=null&&s.jsxs("span",{children:["GPU Temp: ",o.temp.gpu," °C"]})]})]}),s.jsxs("div",{className:"rounded-2xl border border-border/60 bg-card/45 backdrop-blur-md p-5 shadow-lg shadow-black/15 flex flex-col justify-between",children:[s.jsxs("div",{children:[s.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[s.jsx(Hd,{className:"h-4.5 w-4.5 text-primary"}),s.jsx("h2",{className:"text-sm font-semibold tracking-wide uppercase text-foreground",children:"Updates & Pflege"})]}),w?s.jsxs("div",{className:"space-y-2.5",children:[s.jsxs("div",{className:"space-y-1.5",children:[s.jsxs("div",{className:ae("flex items-center justify-between px-3 py-1.5 rounded-lg border text-xs",w.os>0?"border-amber-500/30 bg-amber-500/5 text-amber-400 font-semibold":"border-border/30 bg-background/25 text-muted-foreground"),children:[s.jsx("span",{children:"OS-Pakete"}),s.jsx("span",{className:"font-mono",children:w.os>0?`${w.os} verfügbar`:"aktuell"})]}),s.jsxs("div",{className:ae("flex items-center justify-between px-3 py-1.5 rounded-lg border text-xs",w.engine>0?"border-amber-500/30 bg-amber-500/5 text-amber-400 font-semibold":"border-border/30 bg-background/25 text-muted-foreground"),children:[s.jsx("span",{children:"Engine (llama.cpp)"}),s.jsx("span",{className:"font-mono",children:w.engine>0?"Update verfügbar":"aktuell"})]}),s.jsxs("div",{className:ae("flex items-center justify-between px-3 py-1.5 rounded-lg border text-xs",w.models>0?"border-primary/30 bg-primary/5 text-primary font-semibold animate-pulse":"border-border/30 bg-background/25 text-muted-foreground"),children:[s.jsx("span",{children:"Modell-Upgrades"}),s.jsx("span",{className:"font-mono",children:w.models>0?`${w.models} verfügbar`:"aktuell"})]})]}),w.model_list.length>0&&s.jsxs("div",{className:"mt-2 space-y-1",children:[s.jsx("div",{className:"text-[9px] uppercase font-bold text-muted-foreground/60 tracking-wider",children:"Upgrades:"}),s.jsx("div",{className:"max-h-20 overflow-y-auto space-y-1 pr-1 scrollbar-thin",children:w.model_list.map(F=>s.jsxs("div",{className:"text-[9px] bg-background/20 border border-border/20 rounded p-1.5 font-mono text-muted-foreground truncate",title:`${F.role}: ${F.repo}`,children:[s.jsx("span",{className:"text-primary font-semibold uppercase",children:F.role}),": ",F.repo.split("/").pop()]},F.repo))})]})]}):s.jsx("div",{className:"h-24 flex items-center justify-center text-xs text-muted-foreground",children:"Lade Updates..."})]}),s.jsx("div",{className:"mt-4 border-t border-border/30 pt-3 shrink-0",children:s.jsx("button",{onClick:()=>window.dispatchEvent(new CustomEvent("open-system-drawer")),className:"w-full h-8 flex items-center justify-center gap-1.5 rounded-lg bg-primary text-primary-foreground text-xs font-semibold hover:opacity-90 transition-all cursor-pointer shadow-md shadow-primary/10",children:"System-Zentrale öffnen"})})]})]}),s.jsxs("div",{className:"grid gap-6 md:grid-cols-3",children:[s.jsxs("div",{className:"rounded-2xl border border-border/60 bg-card/45 backdrop-blur-md p-5 shadow-lg shadow-black/15 flex flex-col justify-between",children:[s.jsxs("div",{children:[s.jsxs("div",{className:"flex items-center justify-between mb-4",children:[s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx(ni,{className:"h-4.5 w-4.5 text-primary"}),s.jsx("h2",{className:"text-sm font-semibold tracking-wide uppercase text-foreground",children:"Hermes Agent"})]}),(a==null?void 0:a.webui_url)&&s.jsxs("a",{href:a.webui_url,target:"_blank",rel:"noopener",className:ae("flex items-center gap-1 px-3 py-1 rounded-lg text-xs font-medium transition-all",a.webui_reachable?"bg-primary text-primary-foreground hover:opacity-90 shadow-md shadow-primary/20":"border border-border text-muted-foreground"),children:[s.jsx(Pl,{className:"h-3 w-3"})," Hermes öffnen"]})]}),a?s.jsxs("div",{className:"space-y-3",children:[s.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[s.jsxs("div",{className:"p-3 bg-background/20 rounded-xl border border-border/40",children:[s.jsx("div",{className:"text-[10px] text-muted-foreground uppercase font-semibold",children:"Gateway"}),s.jsxs("div",{className:"flex items-center gap-2 mt-1",children:[s.jsx("span",{className:ae("h-2 w-2 rounded-full",a.gateway_reachable?"bg-emerald-500 animate-pulse":"bg-amber-500")}),s.jsx("span",{className:"text-xs font-medium",children:a.gateway_reachable?"Online":"Offline"})]})]}),s.jsxs("div",{className:"p-3 bg-background/20 rounded-xl border border-border/40",children:[s.jsx("div",{className:"text-[10px] text-muted-foreground uppercase font-semibold",children:"WebUI"}),s.jsxs("div",{className:"flex items-center gap-2 mt-1",children:[s.jsx("span",{className:ae("h-2 w-2 rounded-full",a.webui_reachable?"bg-emerald-500 animate-pulse":"bg-amber-500")}),s.jsx("span",{className:"text-xs font-medium",children:a.webui_reachable?"Online":"Offline"})]})]})]}),s.jsxs("div",{className:"p-3 bg-background/20 rounded-xl border border-border/40",children:[s.jsx("div",{className:"text-[10px] text-muted-foreground uppercase font-semibold",children:"Aktives Gehirn"}),s.jsxs("div",{className:"text-xs font-medium mt-1 font-mono text-primary flex items-center gap-1.5",children:[s.jsx(Ga,{className:"h-3.5 w-3.5"}),a.brain_model?`model: ${a.brain_model}`:"model: auto"]})]})]}):s.jsx("div",{className:"h-28 flex items-center justify-center text-xs text-muted-foreground",children:"Lade Agenten-Status…"})]}),s.jsx("div",{className:"mt-3 text-[10px] text-muted-foreground/80 border-t border-border/30 pt-3",children:"Gedächtnis & Stack-Tools via MCP gekoppelt."})]}),s.jsxs("div",{className:"rounded-2xl border border-border/60 bg-card/45 backdrop-blur-md p-5 shadow-lg shadow-black/15 flex flex-col justify-between",children:[s.jsxs("div",{children:[s.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[s.jsx(Ga,{className:"h-4.5 w-4.5 text-primary"}),s.jsx("h2",{className:"text-sm font-semibold tracking-wide uppercase text-foreground",children:"Aktive Rollen"})]}),s.jsx("div",{className:"space-y-2 max-h-48 overflow-y-auto pr-1 scrollbar-thin",children:X.length===0?s.jsx("div",{className:"text-xs text-muted-foreground py-6 text-center",children:"Keine Modelle als Rollen zugewiesen."}):X.map(F=>{const re=m.includes(F.name);return s.jsxs("div",{className:ae("flex items-center justify-between p-2.5 rounded-xl border transition-all duration-300",re?"border-primary/50 bg-primary/5 shadow-md shadow-primary/5":"border-border/40 bg-background/20"),children:[s.jsxs("div",{className:"min-w-0 flex-1 mr-2",children:[s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx("span",{className:ae("text-[9px] font-semibold uppercase px-1.5 py-0.5 rounded font-mono",F.role==="fast"?"bg-cyan-500/15 text-cyan-400":F.role==="heavy"?"bg-amber-500/15 text-amber-400":F.role==="coder"?"bg-violet-500/15 text-violet-400":F.role==="vision"?"bg-pink-500/15 text-pink-400":"bg-muted text-muted-foreground"),children:F.role}),re&&s.jsxs("span",{className:"flex h-2 w-2 relative",children:[s.jsx("span",{className:"animate-ping absolute inline-flex h-full w-full rounded-full bg-emerald-400 opacity-75"}),s.jsx("span",{className:"relative inline-flex rounded-full h-2 w-2 bg-emerald-500"})]})]}),s.jsx("div",{className:"text-[10px] font-medium mt-1 truncate",title:F.name,children:F.name})]}),s.jsx("div",{className:"text-[9px] font-mono text-muted-foreground shrink-0",children:re?"Warm":"Bereit"})]},F.name)})})]}),s.jsx("div",{className:"mt-4 text-[10px] text-muted-foreground/80 border-t border-border/30 pt-3",children:"Laden erfolgt automatisch per Auto-Swap."})]}),s.jsxs("div",{className:"rounded-2xl border border-border/60 bg-card/45 backdrop-blur-md p-5 shadow-lg shadow-black/15 flex flex-col justify-between",children:[s.jsxs("div",{children:[s.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[s.jsx(Ud,{className:"h-4.5 w-4.5 text-primary"}),s.jsx("h2",{className:"text-sm font-semibold tracking-wide uppercase text-foreground",children:"Gedächtnis"})]}),s.jsxs("div",{className:"space-y-3",children:[s.jsx("textarea",{value:P,onChange:F=>M(F.target.value),placeholder:"Fakt / Regel im Pool speichern...",rows:2,className:"w-full resize-none rounded-xl border border-border/50 bg-background/30 p-2 text-[10px] outline-none focus:ring-1 focus:ring-primary transition-all leading-normal"}),s.jsxs("div",{className:"flex items-center gap-2 justify-between",children:[s.jsxs("select",{value:T,onChange:F=>j(F.target.value),className:"h-7 rounded-lg border border-border/50 bg-background/50 px-2 text-[10px] outline-none cursor-pointer",children:[s.jsx("option",{value:"stable",children:"🔵 Fakt"}),s.jsx("option",{value:"instruction",children:"📋 Regel"}),s.jsx("option",{value:"user",children:"👤 User"}),s.jsx("option",{value:"versioned",children:"🟡 Version"})]}),s.jsxs("button",{onClick:G,disabled:!P.trim()||L,className:"flex h-7 items-center gap-1 rounded-lg bg-primary px-3 text-[10px] font-semibold text-primary-foreground hover:opacity-90 disabled:opacity-50 transition-all cursor-pointer",children:[s.jsx(Bd,{className:"h-3.5 w-3.5"})," Speichern"]})]})]}),s.jsxs("div",{className:"mt-3.5 space-y-1.5",children:[s.jsx("div",{className:"text-[9px] text-muted-foreground uppercase font-bold tracking-wider",children:"Zuletzt gespeichert:"}),s.jsx("div",{className:"max-h-20 overflow-y-auto space-y-1 pr-1 scrollbar-thin",children:N.length===0?s.jsx("div",{className:"text-[10px] text-muted-foreground/75 py-1",children:"Keine Einträge vorhanden."}):N.map(F=>s.jsxs("div",{className:"text-[10px] bg-background/10 border border-border/30 rounded p-1.5 flex items-start gap-1.5",children:[s.jsx("span",{className:"shrink-0 text-[8px] font-mono text-muted-foreground/80 px-1 py-0.5 rounded bg-muted/20",children:F.category}),s.jsx("span",{className:"truncate flex-1 text-muted-foreground hover:text-foreground transition-colors",title:F.content,children:F.content})]},F.id))})]})]}),s.jsx("div",{className:"mt-4 text-[10px] text-muted-foreground/80 border-t border-border/30 pt-3",children:"Steht allen Clients per MCP zur Verfügung."})]})]})]})}function Nr({children:o,tone:u="muted"}){const a={muted:"bg-muted text-muted-foreground",primary:"bg-primary/15 text-primary",warn:"bg-amber-500/15 text-amber-500"};return s.jsx("span",{className:`rounded px-1.5 py-0.5 text-[11px] font-medium ${a[u]}`,children:o})}function Df({caps:o}){return o?s.jsxs("span",{className:"inline-flex flex-wrap gap-1",children:[o.coder&&s.jsx(Nr,{children:"💻 Code"}),o.vision&&s.jsx(Nr,{children:"👁 Bild"}),o.reasoning&&s.jsx(Nr,{children:"🧠 Reason"}),o.moe&&s.jsxs(Nr,{tone:"primary",children:["🧩 MoE",o.active_b?`·${o.active_b}b`:""]}),o.tools==="yes"&&s.jsx(Nr,{tone:"primary",children:"🛠 Tools"}),o.tools==="likely"&&s.jsx(Nr,{tone:"warn",children:"🛠 Tools?"}),o.embedding&&s.jsx(Nr,{children:"🔢 Embed"})]}):null}function c0(){const[o,u]=h.useState(null),[a,c]=h.useState("");return h.useEffect(()=>{pe("/api/routing").then(u).catch(f=>c(String(f)))},[]),s.jsxs("div",{className:"space-y-6",children:[s.jsxs("div",{children:[s.jsx("h1",{className:"text-2xl font-space font-bold tracking-tight bg-gradient-to-r from-foreground via-foreground to-primary bg-clip-text text-transparent",children:"Gateway & Routing"}),s.jsxs("p",{className:"text-sm text-muted-foreground",children:["Eingebauter OpenAI-Gateway für Vibe Coding & Hermes. Verwende den Endpunkt ",s.jsx("code",{children:"model: auto"}),", um je nach Komplexität automatisch zwischen ",s.jsx("code",{children:"fast"})," und ",s.jsx("code",{children:"heavy"})," zu routen."]})]}),a&&s.jsxs("div",{className:"rounded-xl border border-red-500/20 bg-red-500/5 p-4 text-xs text-red-400",children:["Gateway-Konfiguration nicht lesbar (",a,")."]}),o&&s.jsxs("div",{className:"space-y-6",children:[s.jsxs("div",{className:"rounded-2xl border border-border/60 bg-card/45 backdrop-blur-md p-5 shadow-lg shadow-black/10 flex flex-col sm:flex-row justify-between sm:items-center gap-4",children:[s.jsxs("div",{className:"flex items-center gap-3",children:[s.jsx("span",{className:ae("h-2.5 w-2.5 rounded-full ring-2 ring-black/40",o.gateway_reachable?"bg-emerald-500 animate-pulse":"bg-amber-500")}),s.jsxs("div",{children:[s.jsx("div",{className:"text-xs font-semibold uppercase tracking-wider text-foreground",children:"Gateway-Status"}),s.jsx("div",{className:"text-[10px] text-muted-foreground mt-0.5 font-mono",children:o.endpoint||"Lokaler Proxy"})]})]}),o.heavy_threshold_chars&&s.jsxs("div",{className:"p-3 bg-background/25 rounded-xl border border-border/30 text-right",children:[s.jsx("div",{className:"text-[9px] text-muted-foreground uppercase font-bold tracking-wider",children:"Auto-Routing-Schwelle"}),s.jsxs("div",{className:"text-xs font-semibold text-primary mt-0.5 font-mono",children:["> ",o.heavy_threshold_chars.toLocaleString()," Zeichen ➔ heavy"]})]})]}),s.jsxs("div",{className:"grid gap-6 md:grid-cols-3",children:[s.jsxs("div",{className:"rounded-2xl border border-border/60 bg-card/45 backdrop-blur-md p-5 flex flex-col justify-between gap-4",children:[s.jsxs("div",{children:[s.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[s.jsx(mh,{className:"h-4.5 w-4.5 text-primary"}),s.jsx("h3",{className:"text-xs font-bold uppercase tracking-wider text-foreground",children:"1. API Ingress"})]}),s.jsxs("p",{className:"text-xs text-muted-foreground leading-relaxed",children:["Deine IDE oder dein Agent sendet Anfragen mit ",s.jsx("code",{children:"model: auto"})," an den lokalen Gateway-Port."]})]}),s.jsxs("div",{className:"p-3 bg-background/20 rounded-xl border border-border/20 font-mono text-[10px]",children:[s.jsx("div",{className:"text-muted-foreground/60",children:"HEADER"}),s.jsx("div",{className:"text-primary truncate",children:"Authorization: Bearer key"}),s.jsx("div",{className:"text-muted-foreground/60 mt-1",children:"MODEL"}),s.jsx("div",{className:"text-foreground",children:'"auto"'})]})]}),s.jsxs("div",{className:"rounded-2xl border border-border/60 bg-card/45 backdrop-blur-md p-5 flex flex-col justify-between gap-4",children:[s.jsxs("div",{children:[s.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[s.jsx(ch,{className:"h-4.5 w-4.5 text-primary"}),s.jsx("h3",{className:"text-xs font-bold uppercase tracking-wider text-foreground",children:"2. Analysator"})]}),s.jsxs("p",{className:"text-xs text-muted-foreground leading-relaxed",children:["Der Gateway misst die Länge des Prompts. Kurze Tasks landen bei ",s.jsx("code",{children:"fast"}),", anspruchsvolle Tasks werden an ",s.jsx("code",{children:"heavy"})," weitergeleitet."]})]}),s.jsxs("div",{className:"space-y-1.5 font-mono text-[9px] p-2 bg-background/10 rounded-xl border border-border/10",children:[s.jsxs("div",{className:"flex items-center justify-between text-cyan-400",children:[s.jsxs("span",{children:["Prompt < ",o.heavy_threshold_chars]}),s.jsxs("span",{className:"flex items-center gap-1",children:["Fast-Hirn ",s.jsx(gl,{className:"h-3 w-3"})]})]}),s.jsxs("div",{className:"flex items-center justify-between text-violet-400",children:[s.jsxs("span",{children:["Prompt >= ",o.heavy_threshold_chars]}),s.jsxs("span",{className:"flex items-center gap-1",children:["Heavy-Hirn ",s.jsx(gl,{className:"h-3 w-3"})]})]})]})]}),s.jsxs("div",{className:"rounded-2xl border border-border/60 bg-card/45 backdrop-blur-md p-5 flex flex-col justify-between gap-4",children:[s.jsxs("div",{children:[s.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[s.jsx(rh,{className:"h-4.5 w-4.5 text-primary"}),s.jsx("h3",{className:"text-xs font-bold uppercase tracking-wider text-foreground",children:"3. Llama Swap"})]}),s.jsx("p",{className:"text-xs text-muted-foreground leading-relaxed",children:"Llama Swap tauscht das Modell bei Bedarf vollautomatisch im VRAM aus (Auto-Swap). Keine manuelle Zuweisung nötig."})]}),s.jsx("div",{className:"p-3 bg-primary/5 rounded-xl border border-primary/20 text-center",children:s.jsx("span",{className:"text-[10px] font-bold text-primary animate-pulse",children:"Auto-Swap aktiv"})})]})]}),s.jsxs("div",{className:"space-y-3",children:[s.jsx("h3",{className:"text-xs font-bold uppercase tracking-wider text-muted-foreground px-1",children:"Gateway-Routen"}),s.jsx("div",{className:"grid gap-3 sm:grid-cols-2",children:o.routes.map(f=>s.jsxs("div",{className:"flex items-center justify-between p-4 rounded-xl border border-border/60 bg-card/45 backdrop-blur-md hover:border-primary/30 transition-colors",children:[s.jsxs("div",{className:"space-y-1",children:[s.jsx("div",{className:"text-xs font-bold text-foreground font-mono",children:f.name}),s.jsx("div",{className:"text-[9px] text-muted-foreground uppercase",children:"Gateway-Alias"})]}),s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx(gl,{className:"h-3.5 w-3.5 text-muted-foreground/60"}),s.jsx("div",{className:"px-2.5 py-1 rounded-lg bg-background/40 border border-border/40 text-[10px] font-mono text-primary font-semibold truncate max-w-[160px] sm:max-w-[200px]",title:f.target,children:f.target})]})]},f.name))})]}),o.fallbacks.length>0&&s.jsxs("div",{className:"space-y-3",children:[s.jsxs("div",{className:"flex items-center gap-1.5 px-1",children:[s.jsx(Ym,{className:"h-4 w-4 text-amber-500"}),s.jsx("h3",{className:"text-xs font-bold uppercase tracking-wider text-muted-foreground",children:"Eskalationspfad (Fallbacks)"})]}),s.jsxs("div",{className:"rounded-2xl border border-border/60 bg-card/45 backdrop-blur-md p-4 space-y-3",children:[s.jsx("div",{className:"text-[10px] text-muted-foreground",children:"Sollte ein angefordertes Modell offline oder überlastet sein, eskaliert das Routing sequenziell entlang dieser vordefinierten Kette:"}),s.jsx("div",{className:"space-y-2",children:o.fallbacks.map((f,p)=>{const[m,g]=Object.entries(f)[0];return s.jsxs("div",{className:"flex flex-wrap items-center gap-2 p-2.5 bg-background/25 rounded-xl border border-border/20 font-mono text-xs",children:[s.jsx("span",{className:"font-semibold text-amber-400",children:m}),s.jsx(gl,{className:"h-3 w-3 text-muted-foreground/60"}),s.jsx("div",{className:"flex flex-wrap gap-1.5",children:g.map((N,S)=>s.jsx("span",{className:ae("px-1.5 py-0.5 rounded text-[10px]",S===0?"bg-primary/10 text-primary border border-primary/20":"bg-muted text-muted-foreground"),children:N},S))})]},p)})})]})]})]})]})}function Td(o){return o?o>1024**3?`${(o/1024**3).toFixed(1)} GB`:`${(o/1024**2).toFixed(0)} MB`:""}function d0(o){if(!o)return"";const u=Math.floor(o/60);return u>0?`${u} min`:`${o} s`}function f0(){const[o,u]=h.useState([]);function a(){pe("/api/jobs").then(m=>u(m.jobs||[])).catch(()=>{})}h.useEffect(()=>{a();const m=setInterval(a,2e3);return()=>clearInterval(m)},[]);async function c(m){try{await pe(`/api/jobs/${m}/cancel`,{method:"POST"}),a()}catch(g){alert(`Fehler: ${g.message}`)}}const f=o.filter(m=>m.state==="running"||m.state==="queued"),p=o.filter(m=>m.state!=="running"&&m.state!=="queued").slice(-3);return f.length===0&&p.length===0?null:s.jsxs("div",{className:"space-y-3 rounded-2xl border border-border/60 bg-card/45 backdrop-blur-md p-4 shadow-lg shadow-black/10",children:[s.jsx("div",{className:"text-[11px] font-semibold text-muted-foreground uppercase tracking-wider",children:"Aktive Downloads"}),f.map(m=>s.jsxs("div",{className:"space-y-1.5 p-3 rounded-xl bg-background/20 border border-border/40",children:[s.jsxs("div",{className:"flex justify-between items-center text-xs",children:[s.jsx("span",{className:"font-semibold truncate max-w-[250px]",children:m.label}),s.jsxs("div",{className:"flex items-center gap-3",children:[s.jsxs("span",{className:"text-muted-foreground font-mono",children:[m.progress??0,"% • ",Td(m.done_bytes),"/",Td(m.total_bytes),m.eta_s?` • ETA ${d0(m.eta_s)}`:""]}),s.jsx("button",{onClick:()=>c(m.id),className:"text-[10px] text-red-400 hover:text-red-300 font-semibold border border-red-500/25 bg-red-500/5 px-2 py-0.5 rounded transition-all",children:"Abbrechen"})]})]}),s.jsx("div",{className:"h-1.5 overflow-hidden rounded-full bg-muted",children:s.jsx("div",{className:"h-full rounded-full bg-primary transition-all duration-500",style:{width:`${m.progress??0}%`}})})]},m.id)),p.map(m=>s.jsxs("div",{className:"flex justify-between items-center text-xs text-muted-foreground px-1",children:[s.jsx("span",{className:"truncate",children:m.label}),s.jsx("span",{className:ae("font-semibold text-[10px] px-1.5 py-0.5 rounded uppercase font-mono",m.state==="done"?"bg-emerald-500/10 text-emerald-400":"bg-amber-500/10 text-amber-400"),children:m.state})]},m.id))]})}function p0(o){if(!o)return"—";const u=o/1024**3;return u>=1?`${u.toFixed(1)} GB`:`${(o/1024**2).toFixed(0)} MB`}function m0(o){return o?`${Math.round(o/1024)}k`:"—"}function h0({fit:o}){const u={perfect:"bg-emerald-500/15 text-emerald-400 border border-emerald-500/20",marginal:"bg-amber-500/15 text-amber-400 border border-amber-500/20",too_tight:"bg-red-500/15 text-red-400 border border-red-500/20"}[o.level];return s.jsxs("span",{className:ae("rounded px-2 py-0.5 text-[10px] font-semibold uppercase tracking-wider font-mono",u),children:[o.text," • ",o.req_gb," GB RAM"]})}const g0=["","fast","heavy","coder","reasoning","agent","vision","scout"];function x0(){const[o,u]=h.useState([]),[a,c]=h.useState([]),[f,p]=h.useState(""),[m,g]=h.useState(!0);function N(){pe("/api/models").then(P=>{u(P.models||[]),c(P.running||[])}).catch(P=>p(String(P))).finally(()=>g(!1))}h.useEffect(()=>{N();const P=setInterval(N,3e3);return()=>clearInterval(P)},[]);async function S(P,M){await pe(`/api/models/${encodeURIComponent(P)}/role`,{method:"POST",body:JSON.stringify({role:M||null})}),N()}async function w(P,M){const T=prompt("Kontextlänge (Tokens):",String(M||32768));T&&(await pe(`/api/models/${encodeURIComponent(P)}/ctx`,{method:"POST",body:JSON.stringify({ctx:parseInt(T,10)})}),N())}async function E(P){confirm(`Modell '${P}' aus der Config entfernen? (GGUF-Datei bleibt)`)&&(await pe(`/api/models/${encodeURIComponent(P)}`,{method:"DELETE"}),N())}return m?s.jsx("div",{className:"text-xs text-muted-foreground py-6 text-center",children:"Lade installierte Modelle…"}):f?s.jsxs("div",{className:"rounded-xl border border-red-500/20 bg-red-500/5 p-4 text-xs text-red-400",children:["Engine nicht erreichbar oder keine Config gefunden (",f,")."]}):s.jsx("div",{className:"grid gap-4 sm:grid-cols-2 lg:grid-cols-3",children:o.length===0?s.jsx("div",{className:"col-span-full text-xs text-muted-foreground border border-dashed border-border/60 rounded-2xl p-12 text-center",children:'Keine Modelle konfiguriert. Verwende den Tab "Modelle finden" zum Herunterladen.'}):o.map(P=>{const M=a.includes(P.name);return s.jsxs("div",{className:ae("rounded-2xl border bg-card/45 backdrop-blur-md p-5 shadow-lg shadow-black/10 flex flex-col justify-between gap-4 transition-all duration-300 hover:border-primary/40 group",M?"border-primary/45 shadow-primary/5":"border-border/60"),children:[s.jsxs("div",{className:"space-y-3.5",children:[s.jsxs("div",{className:"flex items-start justify-between gap-3",children:[s.jsxs("div",{className:"space-y-1",children:[s.jsx("h3",{className:"text-xs font-bold tracking-tight text-foreground line-clamp-2 break-all",title:P.name,children:P.name}),s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx("span",{className:"text-[10px] font-mono text-muted-foreground bg-background/40 px-1.5 py-0.5 rounded border border-border/30",children:P.quant||"GGUF"}),M&&s.jsxs("span",{className:"flex items-center gap-1 text-[9px] font-semibold text-emerald-400 uppercase tracking-wider",children:[s.jsx(ri,{className:"h-3 w-3 animate-pulse"})," Warm"]})]})]}),s.jsx("button",{onClick:()=>E(P.name),className:"h-7 w-7 rounded-lg flex items-center justify-center border border-border/40 text-muted-foreground hover:text-red-400 hover:bg-red-500/5 transition-all opacity-0 group-hover:opacity-100 shrink-0",title:"Modell aus Config entfernen",children:s.jsx(Gd,{className:"h-3.5 w-3.5"})})]}),s.jsx("div",{className:"border-t border-border/30 pt-3 flex flex-wrap gap-1",children:s.jsx(Df,{caps:P.capabilities})})]}),s.jsxs("div",{className:"space-y-3 pt-2",children:[s.jsxs("div",{className:"grid grid-cols-2 gap-2 text-[10px] font-mono text-muted-foreground",children:[s.jsxs("div",{className:"flex items-center gap-1.5 p-2 bg-background/20 rounded-lg border border-border/20",children:[s.jsx($d,{className:"h-3.5 w-3.5 text-primary/80"}),s.jsxs("div",{children:[s.jsx("div",{className:"text-[8px] uppercase tracking-wider font-semibold text-muted-foreground/60",children:"Größe"}),s.jsx("div",{className:"text-foreground font-semibold",children:p0(P.size_bytes)})]})]}),s.jsxs("button",{onClick:()=>w(P.name,P.ctx),className:"flex items-center gap-1.5 p-2 bg-background/20 rounded-lg border border-border/20 hover:border-primary/40 text-left transition-colors",children:[s.jsx(ah,{className:"h-3.5 w-3.5 text-primary/80"}),s.jsxs("div",{children:[s.jsx("div",{className:"text-[8px] uppercase tracking-wider font-semibold text-muted-foreground/60",children:"Kontext"}),s.jsx("div",{className:"text-foreground font-semibold",children:m0(P.ctx)})]})]})]}),s.jsxs("div",{className:"flex items-center justify-between gap-2 border-t border-border/30 pt-3",children:[s.jsx("span",{className:"text-[10px] font-semibold text-muted-foreground uppercase tracking-wider",children:"Rolle"}),s.jsx("select",{value:P.role||"",onChange:T=>S(P.name,T.target.value),className:"h-8 rounded-lg border border-border/60 bg-background/60 px-2 py-1 text-xs outline-none focus:ring-1 focus:ring-primary/50 text-foreground cursor-pointer font-semibold min-w-[120px]",title:"Weise diesem Modell eine Systemrolle zu",children:g0.map(T=>s.jsx("option",{value:T,className:"bg-popover text-foreground",children:T||"Keine Rolle"},T))})]})]})]},P.name)})})}function v0(){const[o,u]=h.useState(""),[a,c]=h.useState([]),[f,p]=h.useState("Q4_K_M"),[m,g]=h.useState(""),[N,S]=h.useState(""),[w,E]=h.useState([]);async function P(j){const L=j??o;if(L.trim()){g("Analysiere HuggingFace Repository...");try{const $=await pe(`/api/hf/quants?repo=${encodeURIComponent(L)}`);u($.repo),c($.quants),$.quants.length&&p($.quants.includes("Q4_K_M")?"Q4_K_M":$.quants[0]),g($.quants.length?"":"Keine GGUF-Dateien in diesem Repository gefunden.")}catch($){g(`Fehler: ${$}`)}}}async function M(){if(N.trim()){g("Durchsuche HuggingFace...");try{const j=await pe(`/api/hf/search?q=${encodeURIComponent(N)}`);E(j.results),g(j.results.length?"":"Keine Ergebnisse gefunden.")}catch(j){g(`Suche fehlgeschlagen: ${j}`)}}}async function T(){if(o.trim()){g("Download-Job wird initiiert...");try{await pe("/api/models/install",{method:"POST",body:JSON.stringify({repo:o,quant:f,jinja:!0})}),g(`Download gestartet: ${o} (${f}). Fortschritt wird oben angezeigt.`)}catch(j){g(`Download-Fehler: ${j}`)}}}return s.jsxs("div",{className:"space-y-4 rounded-2xl border border-border/60 bg-card/45 backdrop-blur-md p-5 shadow-lg shadow-black/10",children:[s.jsx("div",{className:"text-xs font-bold uppercase tracking-wider text-muted-foreground",children:"HF Download & Suche"}),s.jsxs("div",{className:"flex flex-col sm:flex-row gap-2",children:[s.jsx("input",{value:o,onChange:j=>u(j.target.value),placeholder:"HF-URL oder org/repo (z.B. unsloth/Qwen2.5-Coder-7B-Instruct-GGUF)",className:"flex-1 h-9 rounded-lg border border-border/60 bg-background/40 px-3 text-xs outline-none focus:ring-1 focus:ring-primary/50 text-foreground"}),s.jsxs("div",{className:"flex gap-2",children:[s.jsx("button",{onClick:()=>P(),className:"h-9 px-4 rounded-lg border border-border/60 bg-background/20 text-xs font-semibold hover:border-primary/50 hover:bg-background/40 transition-all cursor-pointer whitespace-nowrap",children:"Quants laden"}),a.length>0&&s.jsxs(s.Fragment,{children:[s.jsx("select",{value:f,onChange:j=>p(j.target.value),className:"h-9 rounded-lg border border-border/60 bg-background/40 px-3 text-xs outline-none text-foreground font-semibold",children:a.map(j=>s.jsx("option",{value:j,className:"bg-popover text-foreground",children:j},j))}),s.jsxs("button",{onClick:T,className:"h-9 px-4 rounded-lg bg-primary text-primary-foreground text-xs font-semibold hover:opacity-90 transition-all cursor-pointer flex items-center gap-1.5",children:[s.jsx(Wa,{className:"h-3.5 w-3.5"})," Herunterladen"]})]})]})]}),s.jsxs("div",{className:"flex gap-2 border-t border-border/20 pt-4",children:[s.jsxs("div",{className:"relative flex-1",children:[s.jsx("input",{value:N,onChange:j=>S(j.target.value),onKeyDown:j=>j.key==="Enter"&&M(),placeholder:"HuggingFace durchsuchen (z.B. Llama-3.1)...",className:"w-full h-9 pl-9 pr-3 rounded-lg border border-border/60 bg-background/40 text-xs outline-none focus:ring-1 focus:ring-primary/50 text-foreground"}),s.jsx(Vd,{className:"absolute left-3 top-2.5 h-3.5 w-3.5 text-muted-foreground"})]}),s.jsx("button",{onClick:M,className:"h-9 px-4 rounded-lg border border-border/60 bg-background/20 text-xs font-semibold hover:border-primary/50 hover:bg-background/40 transition-all cursor-pointer",children:"Suchen"})]}),w.length>0&&s.jsx("div",{className:"max-h-48 space-y-1.5 overflow-y-auto border border-border/40 bg-background/20 p-2 rounded-xl scrollbar-thin",children:w.map(j=>s.jsxs("button",{onClick:()=>{u(j.repo),E([]),S(""),P(j.repo)},className:"flex w-full items-center justify-between rounded-lg px-3 py-2 text-left text-xs bg-background/10 border border-border/10 hover:border-primary/30 hover:bg-background/30 transition-all",children:[s.jsx("span",{className:"font-semibold truncate",children:j.repo}),s.jsxs("span",{className:"text-[10px] font-mono text-muted-foreground flex items-center gap-1 shrink-0",children:[s.jsx(Wa,{className:"h-3 w-3"})," ",j.downloads.toLocaleString()]})]},j.repo))}),m&&s.jsx("div",{className:"text-[10px] font-medium text-primary font-mono",children:m})]})}function y0(){const[o,u]=h.useState(null),[a,c]=h.useState(""),[f,p]=h.useState(!0),[m,g]=h.useState({});h.useEffect(()=>{pe("/api/discover").then(u).catch(S=>c(String(S))).finally(()=>p(!1))},[]);async function N(S,w,E,P){g(M=>({...M,[S]:"Starte..."}));try{await pe("/api/models/install",{method:"POST",body:JSON.stringify({repo:S,role:w,quant:E,jinja:P})}),g(M=>({...M,[S]:"Download läuft"}))}catch{g(T=>({...T,[S]:"Fehler"}))}}return f?s.jsx("div",{className:"text-xs text-muted-foreground py-12 text-center",children:"Analysiere Hardware und suche passende GGUF-Empfehlungen…"}):a||!o?s.jsxs("div",{className:"rounded-xl border border-red-500/20 bg-red-500/5 p-4 text-xs text-red-400",children:["Empfehlungsdienst temporär nicht erreichbar (",a,")."]}):s.jsxs("div",{className:"space-y-6",children:[s.jsx(v0,{}),s.jsxs("div",{className:"text-[10px] font-mono text-muted-foreground bg-background/25 border border-border/40 p-3 rounded-xl",children:["Modell-Registry geladen für ",o.sys_ram_gb," GB System-RAM • ⭐ markiert die empfohlene Standard-Rolle."]}),o.categories.map(S=>s.jsxs("div",{className:"space-y-3",children:[s.jsxs("div",{className:"flex items-center gap-2 px-1",children:[s.jsx(Ga,{className:"h-4 w-4 text-primary"}),s.jsx("h3",{className:"text-xs font-bold uppercase tracking-wider text-foreground",children:S.title})]}),s.jsx("div",{className:"grid gap-4 sm:grid-cols-2",children:S.models.map(w=>{const E=S.recommended===w.repo;return s.jsxs("div",{className:ae("rounded-2xl border bg-card/45 backdrop-blur-md p-5 shadow-lg shadow-black/10 flex flex-col justify-between gap-4 transition-all duration-300 hover:border-primary/40",E?"border-primary/30":"border-border/60"),children:[s.jsxs("div",{className:"space-y-3.5",children:[s.jsxs("div",{className:"flex items-start justify-between gap-3",children:[s.jsxs("div",{className:"space-y-1",children:[s.jsxs("div",{className:"flex items-center gap-1.5",children:[E&&s.jsx("span",{title:"Empfohlen für diese Rolle",children:s.jsx(gh,{className:"h-3.5 w-3.5 text-amber-400 fill-amber-400"})}),s.jsx("h4",{className:"text-xs font-bold text-foreground truncate max-w-[200px]",title:w.name,children:w.name})]}),s.jsx("span",{className:"text-[10px] font-mono text-muted-foreground",children:w.author})]}),s.jsx("div",{className:"text-[10px] font-mono bg-background/40 px-1.5 py-0.5 rounded border border-border/30 text-muted-foreground",children:w.quant})]}),s.jsxs("div",{className:"flex flex-wrap items-center gap-1.5 border-t border-border/30 pt-3",children:[s.jsx(Df,{caps:w.caps}),s.jsx(h0,{fit:w.fit})]})]}),w.fit.level!=="too_tight"&&s.jsxs("button",{onClick:()=>N(w.repo,w.role,w.quant,w.caps.tools!=="no"),disabled:!!m[w.repo],className:ae("mt-2 h-8 w-full flex items-center justify-center gap-1.5 rounded-lg text-xs font-semibold transition-all cursor-pointer border border-border/60 bg-background/20 hover:border-primary/50 disabled:opacity-50",m[w.repo]&&"border-primary/40 bg-primary/5 text-primary"),children:[s.jsx(Wa,{className:ae("h-3.5 w-3.5",!m[w.repo]&&"text-primary")}),m[w.repo]||"Modell laden"]})]},w.repo)})})]},S.role))]})}function b0(){const[o,u]=h.useState("installed");return s.jsxs("div",{className:"space-y-6",children:[s.jsxs("div",{className:"flex flex-col sm:flex-row justify-between sm:items-center gap-4",children:[s.jsxs("div",{children:[s.jsx("h1",{className:"text-2xl font-space font-bold tracking-tight bg-gradient-to-r from-foreground via-foreground to-primary bg-clip-text text-transparent",children:"Modell-Zentrale"}),s.jsx("p",{className:"text-sm text-muted-foreground",children:"Verwalte installierte GGUFs, weise Systemrollen zu, lade neue Modelle oder konfiguriere das Gateway-Routing."})]}),s.jsx("div",{className:"flex rounded-xl border border-border/60 bg-card/45 backdrop-blur-md p-1 self-start",children:["installed","discover","routing"].map(a=>s.jsx("button",{onClick:()=>u(a),className:ae("rounded-lg px-4 py-1.5 text-xs font-semibold tracking-wide uppercase transition-all cursor-pointer",o===a?"bg-primary text-primary-foreground shadow-md shadow-primary/10":"text-muted-foreground hover:text-foreground"),children:a==="installed"?"Bibliothek":a==="discover"?"Modelle finden":"Gateway-Routing"},a))})]}),s.jsx(f0,{}),s.jsx("div",{className:"transition-all duration-300",children:o==="installed"?s.jsx(x0,{}):o==="discover"?s.jsx(y0,{}):s.jsx(c0,{})})]})}function ar(o){return(o/1024**3).toFixed(1)}function jl({label:o,percent:u,detail:a,icon:c}){const f=u>90?"bg-red-500 shadow-md shadow-red-500/20":u>75?"bg-amber-500 shadow-md shadow-amber-500/20":"bg-primary shadow-md shadow-primary/20";return s.jsxs("div",{className:"rounded-2xl border border-border/60 bg-card/45 backdrop-blur-md p-5 shadow-lg shadow-black/10 flex flex-col justify-between gap-3 hover:border-primary/30 transition-all duration-300",children:[s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx(c,{className:"h-4.5 w-4.5 text-primary"}),s.jsx("span",{className:"text-xs font-semibold uppercase tracking-wider text-foreground",children:o})]}),s.jsxs("span",{className:"text-xs font-mono font-bold text-foreground",children:[Math.round(u),"%"]})]}),s.jsx("div",{className:"w-full h-2 bg-background/40 rounded-full overflow-hidden border border-border/20",children:s.jsx("div",{className:ae("h-full transition-all duration-700 ease-out",f),style:{width:`${Math.min(u,100)}%`}})}),a&&s.jsx("div",{className:"text-[10px] font-mono text-muted-foreground/80",children:a})]})}function w0(){const[o,u]=h.useState(null),[a,c]=h.useState(""),[f,p]=h.useState(!1);function m(){pe("/api/maintenance/updates").then(u).catch(()=>{})}h.useEffect(m,[]);async function g(S,w){c(`${w} wird ausgeführt...`),p(!0);try{const E=await pe(S,{method:"POST"});c(E.job_id?`${w} gestartet (Job-ID: ${E.job_id})`:E.ok?`${w} erfolgreich ausgeführt.`:`Fehler: ${E.err||"Unbekannt"}`)}catch(E){c(`Fehler bei ${w}: ${E.message}`)}finally{p(!1)}}async function N(S,w){c(`Upgrade für ${S} wird gestartet...`);try{await pe("/api/models/install",{method:"POST",body:JSON.stringify({repo:S,role:w,quant:"Q4_K_M",jinja:!0})}),c("Upgrade-Download gestartet.")}catch(E){c(`Upgrade fehlgeschlagen: ${E.message}`)}}return s.jsxs("div",{className:"rounded-2xl border border-border/60 bg-card/45 backdrop-blur-md p-5 shadow-lg shadow-black/10 space-y-4",children:[s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsx("div",{className:"text-xs font-bold uppercase tracking-wider text-muted-foreground",children:"Wartung & Updates"}),o&&s.jsxs("div",{className:"flex gap-1.5 text-[9px] font-mono font-bold uppercase tracking-wider",children:[s.jsxs("span",{className:ae("px-1.5 py-0.5 rounded",o.os?"bg-amber-500/10 text-amber-400 border border-amber-500/20":"bg-background/40 text-muted-foreground border border-border/20"),children:["OS: ",o.os]}),s.jsxs("span",{className:ae("px-1.5 py-0.5 rounded",o.engine?"bg-amber-500/10 text-amber-400 border border-amber-500/20":"bg-background/40 text-muted-foreground border border-border/20"),children:["Engine: ",o.engine?"neu":"aktuell"]}),s.jsxs("span",{className:ae("px-1.5 py-0.5 rounded",o.models?"bg-primary/10 text-primary border border-primary/20":"bg-background/40 text-muted-foreground border border-border/20"),children:["Modelle: ",o.models]})]})]}),s.jsxs("div",{className:"flex flex-wrap gap-2",children:[s.jsx("button",{onClick:()=>g("/api/maintenance/os-update","OS-Update"),disabled:f,className:"h-8 px-3 rounded-lg border border-border/60 bg-background/20 text-xs font-semibold hover:border-primary/50 hover:bg-background/40 transition-all cursor-pointer disabled:opacity-50",children:"OS (Apt) aktualisieren"}),s.jsx("button",{onClick:()=>g("/api/maintenance/engine-update","Engine-Update"),disabled:f,className:"h-8 px-3 rounded-lg border border-border/60 bg-background/20 text-xs font-semibold hover:border-primary/50 hover:bg-background/40 transition-all cursor-pointer disabled:opacity-50",children:"Engine aktualisieren"}),s.jsx("button",{onClick:()=>{confirm("Bist du sicher, dass du den Host neu starten willst?")&&g("/api/maintenance/reboot","Reboot")},disabled:f,className:"h-8 px-3 rounded-lg border border-red-500/30 bg-red-500/5 text-red-400 text-xs font-semibold hover:bg-red-500/10 transition-all cursor-pointer disabled:opacity-50",children:"Host Reboot"})]}),o&&o.model_list.length>0&&s.jsxs("div",{className:"mt-3 space-y-2 border-t border-border/20 pt-3",children:[s.jsx("div",{className:"text-[10px] font-bold uppercase tracking-wider text-muted-foreground",children:"Verfügbare Modell-Updates:"}),s.jsx("div",{className:"space-y-1.5",children:o.model_list.map(S=>s.jsxs("div",{className:"flex items-center justify-between p-2.5 rounded-xl bg-background/20 border border-border/30 text-xs font-semibold",children:[s.jsxs("span",{className:"truncate",children:[s.jsx("span",{className:"text-primary uppercase font-mono text-[10px] mr-1.5",children:S.role})," ",S.repo]}),s.jsx("button",{onClick:()=>N(S.repo,S.role),className:"px-2.5 py-1 text-[10px] font-bold rounded-md bg-primary text-primary-foreground hover:opacity-90 transition-all cursor-pointer",children:"Laden"})]},S.repo))})]}),a&&s.jsx("div",{className:"text-[10px] font-mono text-primary font-medium",children:a}),s.jsxs("div",{className:"text-[9px] text-muted-foreground/60 leading-normal border-t border-border/10 pt-2 flex items-center gap-1",children:[s.jsx(Hd,{className:"h-3.5 w-3.5 shrink-0"}),s.jsx("span",{children:"OS-Update & Reboot benötigen NOPASSWD Berechtigungen in der sudoers Datei des Hosts."})]})]})}function k0(){const[o,u]=h.useState(null),[a,c]=h.useState(null),[f,p]=h.useState(""),[m,g]=h.useState(""),[N,S]=h.useState({});function w(){pe("/api/system/status").then(u).catch(M=>p(String(M))),pe("/api/system/services").then(c).catch(()=>{})}h.useEffect(()=>{w();const M=setInterval(w,3e3);return()=>clearInterval(M)},[]);async function E(){g("Backup snapshotted...");try{const M=await pe("/api/system/backup",{method:"POST"});g(M.ok?`Snapshot erzeugt: ${M.snapshot} (${M.files.length} Dateien)`:"Keine Änderungen zu sichern.")}catch(M){g(`Fehler: ${M.message}`)}}async function P(M){S(T=>({...T,[M]:!0}));try{const T=await pe("/api/maintenance/restart",{method:"POST",body:JSON.stringify({service:M})});T.ok?alert(`Dienst ${M} wurde erfolgreich neu gestartet.`):alert(`Fehler beim Neustart: ${T.err||"Unbekannter Fehler"}`)}catch(T){alert(`Fehler: ${T.message}`)}finally{S(T=>({...T,[M]:!1}))}}return s.jsxs("div",{className:"space-y-6",children:[s.jsxs("div",{children:[s.jsx("h1",{className:"text-2xl font-space font-bold tracking-tight bg-gradient-to-r from-foreground via-foreground to-primary bg-clip-text text-transparent",children:"System-Diagnose & Status"}),s.jsx("p",{className:"text-sm text-muted-foreground flex items-center gap-1",children:"Echtzeit-Ressourcen der Box, Dienst-Überwachung und Systempflege."})]}),f&&s.jsxs("div",{className:"rounded-xl border border-red-500/20 bg-red-500/5 p-4 text-xs text-red-400 font-mono",children:["System-Status nicht lesbar (",f,")."]}),o&&s.jsxs("div",{className:"space-y-4",children:[s.jsxs("div",{className:"grid gap-4 sm:grid-cols-2 lg:grid-cols-4",children:[s.jsx(jl,{label:"CPU",percent:o.cpu.percent,detail:o.cpu.cores?`${o.cpu.cores} Cores`:void 0,icon:jr}),s.jsx(jl,{label:"RAM",percent:o.ram.percent,detail:`${ar(o.ram.used)} / ${ar(o.ram.total)} GB`,icon:ri}),o.gpu&&o.gpu.busy_percent!=null&&s.jsx(jl,{label:"GPU",percent:o.gpu.busy_percent,detail:o.gpu.gtt_used!=null&&o.gpu.gtt_total?`${ar(o.gpu.gtt_used)} / ${ar(o.gpu.gtt_total)} GB (GTT/unified)`:o.gpu.vram_used!=null&&o.gpu.vram_total?`${ar(o.gpu.vram_used)} / ${ar(o.gpu.vram_total)} GB VRAM`:void 0,icon:jr}),o.disk&&s.jsx(jl,{label:"Disk",percent:o.disk.percent,detail:`${ar(o.disk.used)} / ${ar(o.disk.total)} GB`,icon:$d})]}),o.temp&&(o.temp.cpu||o.temp.gpu)&&s.jsxs("div",{className:"flex gap-3 text-[10px] font-mono text-muted-foreground bg-background/25 border border-border/40 p-2.5 rounded-xl self-start w-fit",children:[o.temp.cpu!=null&&s.jsxs("span",{className:"flex items-center gap-1",children:["CPU-Temperatur: ",s.jsxs("span",{className:"text-foreground font-bold",children:[o.temp.cpu," °C"]})]}),o.temp.cpu!=null&&o.temp.gpu!=null&&s.jsx("span",{children:"|"}),o.temp.gpu!=null&&s.jsxs("span",{className:"flex items-center gap-1",children:["GPU-Temperatur: ",s.jsxs("span",{className:"text-foreground font-bold",children:[o.temp.gpu," °C"]})]})]})]}),a&&s.jsxs("div",{className:"rounded-2xl border border-border/60 bg-card/45 backdrop-blur-md p-5 shadow-lg shadow-black/10 space-y-4",children:[s.jsx("div",{className:"text-xs font-bold uppercase tracking-wider text-muted-foreground",children:"Homelab-Dienste"}),s.jsx("div",{className:"grid gap-3 sm:grid-cols-2",children:a.services.map(M=>s.jsxs("div",{className:"flex items-center justify-between p-3.5 rounded-xl bg-background/20 border border-border/30 hover:border-primary/20 transition-all group",children:[s.jsxs("div",{className:"flex items-center gap-2.5 min-w-0",children:[s.jsx("span",{className:ae("h-2.5 w-2.5 rounded-full ring-2 ring-black/40",M.ok?"bg-emerald-500":"bg-amber-500")}),s.jsxs("div",{className:"truncate",children:[s.jsx("div",{className:"text-xs font-bold text-foreground truncate",children:M.name}),s.jsx("div",{className:"text-[9px] text-muted-foreground/60 font-mono mt-0.5 truncate",children:M.url})]})]}),s.jsx("button",{onClick:()=>P(M.name),disabled:N[M.name],className:"h-7 w-7 rounded-lg border border-border/40 text-muted-foreground hover:text-primary hover:bg-primary/5 flex items-center justify-center transition-all opacity-0 group-hover:opacity-100",title:"Dienst neu starten",children:s.jsx(Ka,{className:ae("h-3.5 w-3.5",N[M.name]&&"animate-spin")})})]},M.name))}),s.jsxs("div",{className:"flex flex-wrap gap-4 border-t border-border/20 pt-4 text-[10px] font-semibold text-muted-foreground",children:[s.jsxs("a",{href:a.links.engine_ui,target:"_blank",rel:"noopener",className:"flex items-center gap-1 text-primary hover:text-primary-foreground hover:bg-primary/10 px-2 py-1 rounded transition-colors",children:[s.jsx(Pl,{className:"h-3 w-3"})," Engine Dashboard (llama-swap)"]}),s.jsxs("a",{href:a.links.gateway,target:"_blank",rel:"noopener",className:"flex items-center gap-1 text-primary hover:text-primary-foreground hover:bg-primary/10 px-2 py-1 rounded transition-colors",children:[s.jsx(Pl,{className:"h-3 w-3"})," OpenAI Gateway"]})]})]}),s.jsxs("div",{className:"rounded-2xl border border-border/60 bg-card/45 backdrop-blur-md p-5 shadow-lg shadow-black/10 flex flex-col sm:flex-row justify-between sm:items-center gap-4",children:[s.jsxs("div",{className:"space-y-1",children:[s.jsx("h3",{className:"text-xs font-bold uppercase tracking-wider text-foreground",children:"System-Backup & Snapshot"}),s.jsx("p",{className:"text-[10px] text-muted-foreground",children:"Erzeuge einen Git-Snapshot der aktuellen Konfigurationen und des System-Zustands."})]}),s.jsx("div",{className:"flex items-center gap-3 self-start sm:self-auto shrink-0",children:s.jsxs("button",{onClick:E,className:"h-9 px-4 rounded-lg bg-primary text-primary-foreground text-xs font-semibold hover:opacity-90 transition-all flex items-center gap-1.5 cursor-pointer shadow-md shadow-primary/10",children:[s.jsx(dh,{className:"h-4 w-4"})," Snapshot erstellen"]})})]}),m&&s.jsx("div",{className:"text-[10px] font-mono text-primary font-medium bg-primary/5 p-3 rounded-xl border border-primary/20",children:m}),s.jsx(w0,{})]})}function S0(){const[o,u]=h.useState(localStorage.getItem("mc_host")||"192.168.178.151"),[a,c]=h.useState(localStorage.getItem("mc_mcp_path")||""),[f,p]=h.useState(null),[m,g]=h.useState("cline"),[N,S]=h.useState(!1),[w,E]=h.useState("");h.useEffect(()=>{const L=new URLSearchParams;L.set("host",o),a&&L.set("mcp_path",a),pe(`/api/connect?${L}`).then(p).catch($=>E(String($)))},[o,a]);function P(L){u(L),L&&localStorage.setItem("mc_host",L)}function M(L){c(L),localStorage.setItem("mc_mcp_path",L)}const T=f==null?void 0:f.tools[m];async function j(){T&&(await navigator.clipboard.writeText(T.snippet),S(!0),setTimeout(()=>S(!1),1500))}return s.jsxs("div",{className:"space-y-6",children:[s.jsxs("div",{children:[s.jsx("h1",{className:"text-2xl font-space font-bold tracking-tight bg-gradient-to-r from-foreground via-foreground to-primary bg-clip-text text-transparent",children:"Verbindung & Integration"}),s.jsx("p",{className:"text-sm text-muted-foreground",children:"Kopiere vorgefertigte Konfigurationsdateien für deinen lokalen PC (IDEs, Cline, Roo Code, Cursor), um direkt auf das geteilte Gedächtnis und den Auto-Swap-Gateway der Box zuzugreifen."})]}),s.jsxs("div",{className:"grid gap-4 md:grid-cols-2 p-5 rounded-2xl border border-border/60 bg-card/45 backdrop-blur-md shadow-lg shadow-black/10",children:[s.jsxs("div",{className:"space-y-1.5",children:[s.jsxs("label",{className:"text-[10px] font-bold uppercase tracking-wider text-muted-foreground flex items-center gap-1.5",children:[s.jsx(nh,{className:"h-3.5 w-3.5 text-primary"})," Box LAN IP-Adresse"]}),s.jsx("input",{value:o,onChange:L=>P(L.target.value),placeholder:"z.B. 192.168.178.151",className:"w-full h-9 rounded-lg border border-border/60 bg-background/40 px-3 font-mono text-xs outline-none focus:ring-1 focus:ring-primary/50 text-foreground"})]}),s.jsxs("div",{className:"space-y-1.5",children:[s.jsxs("label",{className:"text-[10px] font-bold uppercase tracking-wider text-muted-foreground flex items-center gap-1.5",children:[s.jsx(th,{className:"h-3.5 w-3.5 text-primary"})," Lokaler MCP-Scriptpfad"]}),s.jsx("input",{value:a,onChange:L=>M(L.target.value),placeholder:"z.B. F:\\Coding Stuff\\mission-control-2\\mcp\\mcp_memory.py",className:"w-full h-9 rounded-lg border border-border/60 bg-background/40 px-3 font-mono text-xs outline-none focus:ring-1 focus:ring-primary/50 text-foreground"})]})]}),w&&s.jsxs("div",{className:"rounded-xl border border-red-500/20 bg-red-500/5 p-4 text-xs text-red-400",children:["Fehler beim Generieren der Snippets: ",w]}),f&&s.jsxs("div",{className:"space-y-4",children:[s.jsx("div",{className:"flex flex-wrap gap-1 bg-card/20 p-1 border border-border/40 rounded-xl max-w-fit",children:Object.entries(f.tools).map(([L,$])=>s.jsx("button",{onClick:()=>g(L),className:ae("rounded-lg px-4 py-1.5 text-xs font-semibold tracking-wide uppercase transition-all cursor-pointer",m===L?"bg-primary text-primary-foreground shadow-md shadow-primary/10":"text-muted-foreground hover:text-foreground"),children:$.label},L))}),T&&s.jsxs("div",{className:"space-y-3",children:[T.note&&s.jsxs("div",{className:"flex items-start gap-2.5 p-3 rounded-xl bg-primary/5 border border-primary/20 text-xs text-muted-foreground leading-relaxed",children:[s.jsx(oh,{className:"h-4.5 w-4.5 text-primary shrink-0 mt-0.5"}),s.jsx("span",{children:T.note})]}),s.jsxs("div",{className:"flex flex-col border border-border/60 bg-black/60 rounded-2xl overflow-hidden shadow-2xl",children:[s.jsxs("div",{className:"flex h-11 items-center justify-between px-4 border-b border-border/40 bg-black/40 shrink-0",children:[s.jsxs("div",{className:"flex items-center gap-1.5",children:[s.jsx("span",{className:"h-3 w-3 rounded-full bg-red-500/80 shadow-md shadow-red-500/10"}),s.jsx("span",{className:"h-3 w-3 rounded-full bg-amber-500/80 shadow-md shadow-amber-500/10"}),s.jsx("span",{className:"h-3 w-3 rounded-full bg-emerald-500/80 shadow-md shadow-emerald-500/10"})]}),s.jsxs("div",{className:"flex items-center gap-1.5 text-[10px] font-mono text-muted-foreground/75 bg-background/30 px-3 py-1 rounded-md border border-border/20",children:[s.jsx(Wd,{className:"h-3.5 w-3.5 text-primary"}),s.jsx("span",{children:m==="cline"||m==="cursor"?"config.json":"settings.json"})]}),s.jsxs("button",{onClick:j,className:"flex h-7 px-2.5 items-center gap-1.5 rounded-lg border border-border/40 bg-background/30 text-[10px] font-semibold text-muted-foreground hover:text-foreground hover:bg-background/60 transition-all cursor-pointer",children:[N?s.jsx(Km,{className:"h-3.5 w-3.5 text-emerald-400"}):s.jsx(eh,{className:"h-3.5 w-3.5"}),s.jsx("span",{children:N?"Kopiert":"Kopieren"})]})]}),s.jsx("pre",{className:"p-5 overflow-x-auto text-xs font-mono text-cyan-200/90 whitespace-pre leading-relaxed scrollbar-thin select-text bg-black/10",children:s.jsx("code",{children:T.snippet})})]})]})]})]})}const Od=["user","instruction","stable","versioned","ephemeral"],Va={user:{label:"User",icon:yh,color:"text-cyan-400",border:"border-cyan-500/30",bg:"bg-cyan-500/10",text:"text-cyan-400"},instruction:{label:"Regel",icon:fh,color:"text-violet-400",border:"border-violet-500/30",bg:"bg-violet-500/10",text:"text-violet-400"},stable:{label:"Fakt",icon:oi,color:"text-indigo-400",border:"border-indigo-500/30",bg:"bg-indigo-500/10",text:"text-indigo-400"},versioned:{label:"Version",icon:vh,color:"text-amber-400",border:"border-amber-500/30",bg:"bg-amber-500/10",text:"text-amber-400"},ephemeral:{label:"Temporär",icon:Xm,color:"text-pink-400",border:"border-pink-500/30",bg:"bg-pink-500/10",text:"text-pink-400"}},Dd={label:"Gedächtnis",icon:Wm,bg:"bg-muted/10",text:"text-muted-foreground"},N0={user:"border-l-cyan-500/80",instruction:"border-l-violet-500/80",stable:"border-l-indigo-500/80",versioned:"border-l-amber-500/80",ephemeral:"border-l-pink-500/80"};function j0(){const[o,u]=h.useState([]),[a,c]=h.useState(""),[f,p]=h.useState(""),[m,g]=h.useState(""),[N,S]=h.useState("stable"),[w,E]=h.useState(""),[P,M]=h.useState(!1);function T(){const O=new URLSearchParams;f&&O.set("q",f),a&&O.set("category",a),pe(`/api/memory?${O}`).then(u).catch(G=>E(String(G)))}h.useEffect(T,[f,a]);async function j(){m.trim()&&(await pe("/api/memory",{method:"POST",body:JSON.stringify({content:m,category:N,source:"ui"})}),g(""),T())}async function L(O){await pe(`/api/memory/${O}`,{method:"DELETE"}),T()}async function $(){M(!0);try{const O=await pe("/api/memory/dedupe",{method:"POST",body:JSON.stringify({apply:!1})});if(O.duplicate_count===0){alert("Keine Dubletten gefunden — alles sauber.");return}confirm(`${O.duplicate_count} Dublette(n) in ${O.groups.length} Gruppe(n) gefunden. Entfernen?`)&&(await pe("/api/memory/dedupe",{method:"POST",body:JSON.stringify({apply:!0})}),T())}catch(O){alert(`Fehler: ${O.message}`)}finally{M(!1)}}return s.jsxs("div",{className:"space-y-6",children:[s.jsxs("div",{className:"flex flex-col sm:flex-row justify-between sm:items-center gap-4",children:[s.jsxs("div",{children:[s.jsx("h1",{className:"text-2xl font-space font-bold tracking-tight bg-gradient-to-r from-foreground via-foreground to-primary bg-clip-text text-transparent",children:"Gedächtnis-Pool (Memory)"}),s.jsx("p",{className:"text-sm text-muted-foreground",children:"Die geteilte Konstitution des Systems. Alle Instanzen (Hermes, IDEs, Gateway) lesen und schreiben hierauf per MCP-Protokoll."})]}),s.jsxs("button",{onClick:$,disabled:P,className:"flex h-9 px-4 items-center gap-1.5 text-xs font-semibold rounded-lg border border-border/60 bg-card hover:border-primary/50 transition-all cursor-pointer shadow-md disabled:opacity-50 shrink-0 self-start",children:[s.jsx(hh,{className:"h-4 w-4 text-primary animate-pulse"}),s.jsx("span",{children:"Deduplizieren"})]})]}),s.jsxs("div",{className:"rounded-2xl border border-border/60 bg-card/45 backdrop-blur-md p-5 shadow-lg shadow-black/10 space-y-4",children:[s.jsx("div",{className:"text-xs font-bold uppercase tracking-wider text-muted-foreground",children:"Neuen Eintrag anlegen"}),s.jsx("textarea",{value:m,onChange:O=>g(O.target.value),placeholder:"Füge eine neue Regel, eine Vorliebe oder einen stabilen Fakt über das Projekt oder dich hinzu...",rows:3,className:"w-full resize-none rounded-xl border border-border/60 bg-background/30 p-3.5 text-xs outline-none focus:ring-1 focus:ring-primary/50 text-foreground transition-all leading-relaxed"}),s.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx("span",{className:"text-[10px] font-semibold text-muted-foreground uppercase tracking-wider",children:"Kategorie"}),s.jsx("select",{value:N,onChange:O=>S(O.target.value),className:"h-8 rounded-lg border border-border/60 bg-background/50 px-2 py-1 text-xs outline-none font-semibold text-foreground cursor-pointer",children:Od.map(O=>{var G;return s.jsx("option",{value:O,className:"bg-popover text-foreground",children:((G=Va[O])==null?void 0:G.label)||O},O)})})]}),s.jsxs("button",{onClick:j,className:"h-9 px-4 rounded-lg bg-primary text-primary-foreground text-xs font-semibold hover:opacity-90 transition-all flex items-center gap-1.5 cursor-pointer shadow-md shadow-primary/10",children:[s.jsx(Bd,{className:"h-4 w-4"})," Speichern"]})]})]}),s.jsxs("div",{className:"flex flex-col md:flex-row items-stretch md:items-center gap-3",children:[s.jsxs("div",{className:"relative flex-1",children:[s.jsx("input",{value:f,onChange:O=>p(O.target.value),placeholder:"Gedächtnis durchsuchen...",className:"w-full h-9 pl-9 pr-3 rounded-lg border border-border/60 bg-card/45 text-xs outline-none focus:ring-1 focus:ring-primary/50 text-foreground"}),s.jsx(Vd,{className:"absolute left-3 top-2.5 h-3.5 w-3.5 text-muted-foreground"})]}),s.jsxs("div",{className:"flex flex-wrap items-center gap-1.5 p-1 bg-card/30 border border-border/40 rounded-xl overflow-x-auto max-w-full",children:[s.jsx("button",{onClick:()=>c(""),className:ae("h-7 px-3 rounded-lg text-[10px] font-semibold uppercase tracking-wider transition-all cursor-pointer whitespace-nowrap",a?"text-muted-foreground hover:text-foreground":"bg-primary text-primary-foreground"),children:"Alle"}),Od.map(O=>{const G=Va[O]||Dd,X=G.icon;return s.jsxs("button",{onClick:()=>c(O),className:ae("h-7 px-2.5 rounded-lg text-[10px] font-semibold uppercase tracking-wider transition-all cursor-pointer flex items-center gap-1 whitespace-nowrap",a===O?"bg-primary text-primary-foreground":"text-muted-foreground hover:text-foreground"),children:[s.jsx(X,{className:"h-3 w-3"}),s.jsx("span",{children:G.label})]},O)})]})]}),w&&s.jsxs("div",{className:"rounded-xl border border-red-500/20 bg-red-500/5 p-4 text-xs text-red-400",children:["Fehler beim Laden des Gedächtnisses: ",w]}),s.jsx("div",{className:"space-y-3",children:o.length===0?s.jsx("div",{className:"text-xs text-muted-foreground border border-dashed border-border/60 rounded-2xl p-12 text-center",children:"Keine Einträge für die aktuellen Filterkriterien gefunden."}):o.map(O=>{const G=Va[O.category]||Dd,X=G.icon;return s.jsxs("div",{className:ae("flex items-start justify-between gap-4 p-4 rounded-xl border border-l-4 bg-card/45 backdrop-blur-md border-border/60 shadow-md shadow-black/5 hover:border-primary/20 transition-all group",N0[O.category]||"border-l-muted"),children:[s.jsxs("div",{className:"flex items-start gap-3 flex-1 min-w-0",children:[s.jsxs("span",{className:ae("flex items-center gap-1 px-2 py-0.5 rounded text-[9px] font-bold uppercase tracking-wider font-mono shrink-0",G.bg,G.text),children:[s.jsx(X,{className:"h-3 w-3"}),s.jsx("span",{className:"hidden sm:inline",children:G.label})]}),s.jsx("span",{className:"text-xs text-foreground leading-relaxed break-words whitespace-pre-wrap flex-1",children:O.content})]}),s.jsxs("div",{className:"flex items-center gap-3 shrink-0",children:[s.jsx("span",{className:"text-[9px] font-mono text-muted-foreground/60 bg-background/20 px-1.5 py-0.5 rounded uppercase tracking-wider",children:O.source}),s.jsx("button",{onClick:()=>L(O.id),className:"h-7 w-7 rounded-lg flex items-center justify-center border border-border/40 text-muted-foreground hover:text-red-400 hover:bg-red-500/5 transition-all opacity-0 group-hover:opacity-100",title:"Eintrag löschen",children:s.jsx(Gd,{className:"h-3.5 w-3.5"})})]})]},O.id)})})]})}function El({label:o,ok:u,detail:a,icon:c}){return s.jsxs("div",{className:ae("rounded-2xl border bg-card/45 backdrop-blur-md p-5 shadow-lg shadow-black/10 flex flex-col justify-between gap-3 hover:border-primary/40 transition-all duration-300",u?"border-border/60":"border-amber-500/30"),children:[s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsx("span",{className:"text-[10px] font-bold uppercase tracking-wider text-muted-foreground",children:o}),s.jsx(c,{className:ae("h-4.5 w-4.5",u?"text-primary":"text-amber-500")})]}),s.jsxs("div",{className:"space-y-1.5",children:[s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx("span",{className:ae("h-2 w-2 rounded-full ring-2 ring-black/40",u?"bg-emerald-500 animate-pulse":"bg-amber-500")}),s.jsx("span",{className:"text-xs font-semibold text-foreground",children:u?"Bereit / Online":"Offline / Inaktiv"})]}),a&&s.jsx("div",{className:"text-[10px] font-mono text-muted-foreground truncate max-w-[200px]",title:a,children:a})]})]})}function E0(){const[o,u]=h.useState(null),[a,c]=h.useState("");return h.useEffect(()=>{const f=()=>pe("/api/agent/status").then(u).catch(m=>c(String(m)));f();const p=setInterval(f,5e3);return()=>clearInterval(p)},[]),s.jsxs("div",{className:"space-y-6",children:[s.jsxs("div",{className:"flex flex-col sm:flex-row justify-between sm:items-center gap-4",children:[s.jsxs("div",{children:[s.jsx("h1",{className:"text-2xl font-space font-bold tracking-tight bg-gradient-to-r from-foreground via-foreground to-primary bg-clip-text text-transparent",children:"Hermes Agenten-Cockpit"}),s.jsxs("p",{className:"text-sm text-muted-foreground",children:["Hermes ist ein autonomer Agent, der im Hintergrund der Box läuft (Port ",s.jsx("code",{children:":8642"}),") und seine eigene UI besitzt."]})]}),(o==null?void 0:o.webui_url)&&s.jsxs("a",{href:o.webui_url,target:"_blank",rel:"noopener",className:ae("flex h-9 px-4 items-center gap-1.5 text-xs font-semibold rounded-lg transition-all cursor-pointer shadow-md shrink-0 self-start",o.webui_reachable?"bg-primary text-primary-foreground hover:opacity-90 shadow-primary/10":"border border-border/60 text-muted-foreground bg-background/20"),children:[s.jsx(Pl,{className:"h-4 w-4"}),s.jsx("span",{children:"Hermes WebUI öffnen"})]})]}),a&&s.jsxs("div",{className:"rounded-xl border border-red-500/20 bg-red-500/5 p-4 text-xs text-red-400 font-mono",children:["Status nicht lesbar (",a,")."]}),o&&s.jsxs("div",{className:"space-y-6",children:[s.jsxs("div",{className:"grid gap-4 sm:grid-cols-2 lg:grid-cols-4",children:[s.jsx(El,{label:"Agent Gateway",ok:o.gateway_reachable,detail:"Port :8642 (REST API)",icon:ni}),s.jsx(El,{label:"Agent WebUI",ok:o.webui_reachable,detail:"Port :8787 (Chat UI)",icon:ri}),s.jsx(El,{label:"Aktives Gehirn",ok:o.gateway_reachable,detail:o.brain_model?`Model: ${o.brain_model}`:"Model: auto",icon:jr}),s.jsx(El,{label:"Verdrahtung",ok:o.has_config,detail:`Config: ${o.has_config?"✓":"—"} · Skills: ${o.has_skills?"✓":"—"} · Memory: ${o.has_memories?"✓":"—"}`,icon:bh})]}),!o.gateway_reachable&&s.jsxs("div",{className:"rounded-2xl border border-border/60 bg-card/45 backdrop-blur-md p-6 space-y-4 shadow-lg shadow-black/10",children:[s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx(oi,{className:"h-5 w-5 text-amber-500"}),s.jsx("h3",{className:"text-sm font-bold uppercase tracking-wider text-foreground",children:"Hermes-Agent Diagnostics"})]}),s.jsxs("div",{className:"text-xs text-muted-foreground space-y-3 leading-relaxed",children:[s.jsx("p",{children:"Der Hermes-Dienst ist auf der Box derzeit offline oder kann sich nicht mit dem lokalen llama-swap verbinden."}),s.jsxs("p",{children:["Stelle sicher, dass die systemd-Dienste auf der Box laufen. Du kannst den Status im ",s.jsx("strong",{children:"OS & Updates Drawer"})," prüfen und die Dienste bei Bedarf neu starten."]}),s.jsxs("div",{className:"p-3.5 bg-background/25 rounded-xl border border-border/30 font-mono text-[10px] space-y-1",children:[s.jsx("div",{className:"text-muted-foreground/60",children:"# Dienste manuell auf der Box prüfen:"}),s.jsx("div",{className:"text-primary",children:"systemctl --user status hermes-gateway"}),s.jsx("div",{className:"text-primary",children:"systemctl --user status hermes-webui"})]}),s.jsxs("p",{children:["Weitere Einrichtungsdetails (Brain-Konfiguration, MCP-Kopplungen, SSH-Tunneling und Such-Engines) findest du in der Dokumentationsdatei:",s.jsx("code",{className:"ml-1 px-1.5 py-0.5 rounded bg-muted/40 text-foreground border border-border/30",children:"docs/HERMES_SETUP.md"}),"."]})]})]})]})]})}function C0({title:o,hint:u}){return s.jsxs("div",{className:"space-y-4",children:[s.jsxs("div",{children:[s.jsx("h1",{className:"text-xl font-semibold",children:o}),s.jsx("p",{className:"text-sm text-muted-foreground",children:u})]}),s.jsxs("div",{className:"flex flex-col items-center justify-center gap-3 rounded-xl border border-dashed border-border bg-card/50 py-20 text-center",children:[s.jsx(Jm,{className:"h-8 w-8 text-muted-foreground"}),s.jsx("div",{className:"text-sm text-muted-foreground",children:"Kommt in einer späteren Phase."})]})]})}const _0=[{id:"llama-swap",label:"Llama Swap",type:"system"},{id:"mission-control-2",label:"Mission Control 2",type:"user"},{id:"hermes-gateway",label:"Hermes Gateway",type:"user"},{id:"hermes-dashboard",label:"Hermes Dashboard",type:"user"},{id:"hermes-webui",label:"Hermes WebUI",type:"user"}];function Ha(o){return o==null?"":o>1024**3?`${(o/1024**3).toFixed(2)} GB`:`${(o/1024**2).toFixed(1)} MB`}function P0({open:o,onClose:u}){const[a,c]=h.useState(null),[f,p]=h.useState([]),[m,g]=h.useState("llama-swap"),[N,S]=h.useState(""),[w,E]=h.useState(!1),[P,M]=h.useState({}),[T,j]=h.useState("maintenance"),L=h.useRef(null);function $(){pe("/api/maintenance/updates").then(c).catch(I=>console.error("Error loading updates",I))}function O(){pe("/api/jobs").then(I=>p(I.jobs||[])).catch(I=>console.error("Error loading jobs",I))}function G(I){E(!0),pe(`/api/maintenance/logs?service=${I}&lines=150`).then(ue=>{ue.ok?S(ue.text):S(`Fehler beim Laden der Logs: ${ue.err||"Unbekannter Fehler"}`)}).catch(ue=>S(`Fehler: ${ue.message}`)).finally(()=>{E(!1),setTimeout(()=>{L.current&&(L.current.scrollTop=L.current.scrollHeight)},50)})}h.useEffect(()=>{if(!o)return;$(),O();const I=setInterval(()=>{O(),$()},3e3);return()=>clearInterval(I)},[o]),h.useEffect(()=>{!o||T!=="logs"||G(m)},[o,T,m]);async function X(){try{await pe("/api/maintenance/os-update",{method:"POST"}),O(),j("maintenance")}catch(I){alert(`Fehler beim Starten des OS-Updates: ${I.message}`)}}async function F(){try{await pe("/api/maintenance/engine-update",{method:"POST"}),O(),j("maintenance")}catch(I){alert(`Fehler: ${I.message}`)}}async function re(){if(confirm("Bist du sicher, dass du das gesamte Host-System neu starten willst?"))try{await pe("/api/maintenance/reboot",{method:"POST"}),alert("Reboot ausgelöst. System startet neu..."),u()}catch(I){alert(`Fehler: ${I.message}`)}}async function de(I){M(ue=>({...ue,[I]:!0}));try{const ue=await pe("/api/maintenance/restart",{method:"POST",body:JSON.stringify({service:I})});ue.ok?(alert(`Dienst ${I} wurde erfolgreich neu gestartet.`),T==="logs"&&m===I&&G(I)):alert(`Fehler beim Neustart: ${ue.err||"Unbekannter Fehler"}`)}catch(ue){alert(`Fehler: ${ue.message}`)}finally{M(ue=>({...ue,[I]:!1}))}}async function we(I){try{await pe(`/api/jobs/${I}/cancel`,{method:"POST"}),O()}catch(ue){alert(`Fehler beim Abbrechen: ${ue.message}`)}}return s.jsxs(s.Fragment,{children:[s.jsx("div",{className:ae("fixed inset-0 bg-black/60 backdrop-blur-sm z-50 transition-opacity duration-300",o?"opacity-100 pointer-events-auto":"opacity-0 pointer-events-none"),onClick:u}),s.jsxs("div",{className:ae("fixed inset-y-0 right-0 w-full sm:w-[500px] bg-card/85 backdrop-blur-xl border-l border-border/60 shadow-2xl z-50 flex flex-col transform transition-transform duration-300 ease-in-out font-sans text-foreground",o?"translate-x-0":"translate-x-full"),children:[s.jsxs("div",{className:"flex h-16 shrink-0 items-center justify-between border-b border-border/40 px-6",children:[s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx(jr,{className:"h-4.5 w-4.5 text-primary"}),s.jsx("h2",{className:"text-sm font-semibold tracking-wide uppercase font-space",children:"OS-Zentrale & Pflege"})]}),s.jsx("button",{onClick:u,className:"flex h-8 w-8 items-center justify-center rounded-lg border border-border/40 text-muted-foreground hover:bg-accent transition-colors",children:s.jsx(wh,{className:"h-4 w-4"})})]}),s.jsxs("div",{className:"flex border-b border-border/40 px-6",children:[s.jsx("button",{onClick:()=>j("maintenance"),className:ae("flex-1 py-3 text-xs font-semibold uppercase tracking-wider border-b-2 text-center transition-all",T==="maintenance"?"border-primary text-primary":"border-transparent text-muted-foreground hover:text-foreground"),children:"System-Wartung"}),s.jsx("button",{onClick:()=>j("logs"),className:ae("flex-1 py-3 text-xs font-semibold uppercase tracking-wider border-b-2 text-center transition-all",T==="logs"?"border-primary text-primary":"border-transparent text-muted-foreground hover:text-foreground"),children:"System-Logs"})]}),s.jsx("div",{className:"flex-1 overflow-y-auto p-6 space-y-6",children:T==="maintenance"?s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:"space-y-3",children:[s.jsx("h3",{className:"text-xs font-bold uppercase tracking-wider text-muted-foreground",children:"Wartungsaktionen"}),s.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[s.jsxs("button",{onClick:X,className:"flex flex-col items-start gap-1 p-4 rounded-xl border border-border/60 bg-background/20 hover:border-primary/50 transition-all text-left group",children:[s.jsx(oi,{className:"h-5 w-5 text-cyan-400 mb-1 group-hover:scale-105 transition-transform"}),s.jsx("span",{className:"text-xs font-semibold",children:"OS Update (apt)"}),s.jsx("span",{className:"text-[10px] text-muted-foreground",children:a!=null&&a.os?`${a.os} Updates verfügbar`:"Auf neuestem Stand"})]}),s.jsxs("button",{onClick:F,className:"flex flex-col items-start gap-1 p-4 rounded-xl border border-border/60 bg-background/20 hover:border-primary/50 transition-all text-left group",children:[s.jsx(ph,{className:"h-5 w-5 text-violet-400 mb-1 group-hover:scale-105 transition-transform"}),s.jsx("span",{className:"text-xs font-semibold",children:"Engine Update"}),s.jsx("span",{className:"text-[10px] text-muted-foreground",children:a!=null&&a.engine?"Update verfügbar":"Auf neuestem Stand"})]})]}),s.jsxs("button",{onClick:re,className:"flex w-full items-center gap-3 p-3 rounded-xl border border-red-500/20 bg-red-500/5 hover:bg-red-500/10 text-red-400 transition-all text-left text-xs font-semibold",children:[s.jsx(uh,{className:"h-4.5 w-4.5"}),s.jsxs("div",{children:[s.jsx("div",{children:"Host-System neu starten (Reboot)"}),s.jsx("div",{className:"text-[10px] text-red-400/80 font-normal",children:"Startet das gesamte Betriebssystem des Homelabs neu"})]})]})]}),s.jsxs("div",{className:"space-y-3",children:[s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsx("h3",{className:"text-xs font-bold uppercase tracking-wider text-muted-foreground",children:"Hintergrund-Aufgaben"}),s.jsxs("span",{className:"text-[10px] font-mono bg-primary/10 text-primary px-1.5 py-0.5 rounded-full",children:[f.filter(I=>I.state==="running"||I.state==="queued").length," Aktiv"]})]}),s.jsx("div",{className:"space-y-3",children:f.length===0?s.jsx("div",{className:"text-xs text-muted-foreground border border-dashed border-border/60 rounded-xl p-6 text-center",children:"Aktuell keine aktiven Hintergrund-Jobs."}):f.map(I=>{const ue=I.state==="running"||I.state==="queued";return s.jsxs("div",{className:ae("p-3 rounded-xl border transition-all duration-300",ue?"border-primary/40 bg-primary/5 shadow-md shadow-primary/5":"border-border/40 bg-background/20 opacity-80"),children:[s.jsxs("div",{className:"flex items-start justify-between gap-3",children:[s.jsxs("div",{className:"space-y-1",children:[s.jsxs("div",{className:"text-xs font-semibold flex items-center gap-1.5",children:[ue&&s.jsxs("span",{className:"flex h-2 w-2 relative",children:[s.jsx("span",{className:"animate-ping absolute inline-flex h-full w-full rounded-full bg-primary opacity-75"}),s.jsx("span",{className:"relative inline-flex rounded-full h-2 w-2 bg-primary"})]}),I.label]}),s.jsxs("div",{className:"text-[10px] font-mono text-muted-foreground uppercase flex items-center gap-2",children:[s.jsxs("span",{children:["ID: ",I.id]}),s.jsx("span",{children:"•"}),s.jsx("span",{className:ae(I.state==="done"&&"text-emerald-400",I.state==="failed"&&"text-red-400",I.state==="running"&&"text-primary",I.state==="queued"&&"text-amber-400",I.state==="canceled"&&"text-muted-foreground"),children:I.state})]})]}),ue&&s.jsx("button",{onClick:()=>we(I.id),className:"text-[10px] font-semibold text-red-400 hover:text-red-300 border border-red-500/20 bg-red-500/5 hover:bg-red-500/10 px-2 py-0.5 rounded transition-colors",children:"Abbrechen"})]}),I.state==="running"&&s.jsxs("div",{className:"mt-3 space-y-1",children:[s.jsx("div",{className:"w-full h-1.5 bg-muted rounded-full overflow-hidden",children:s.jsx("div",{className:"h-full bg-primary transition-all duration-500",style:{width:`${I.progress??0}%`}})}),s.jsxs("div",{className:"flex justify-between items-center text-[9px] font-mono text-muted-foreground",children:[s.jsxs("span",{children:[I.progress??0,"%"]}),I.done_bytes!=null&&I.total_bytes!=null&&s.jsxs("span",{children:[Ha(I.done_bytes)," / ",Ha(I.total_bytes),I.rate_bps!=null&&` (${Ha(I.rate_bps)}/s)`]}),I.eta_s!=null&&s.jsxs("span",{children:["ETA: ",I.eta_s,"s"]})]})]})]},I.id)})})]})]}):s.jsxs("div",{className:"flex flex-col h-full space-y-4",children:[s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx("select",{value:m,onChange:I=>g(I.target.value),className:"flex-1 h-9 px-3 text-xs bg-background/40 border border-border/60 rounded-lg outline-none text-foreground font-semibold",children:_0.map(I=>s.jsxs("option",{value:I.id,children:[I.label," (",I.type==="system"?"systemd-root":"user",")"]},I.id))}),s.jsxs("button",{onClick:()=>de(m),disabled:P[m],className:"flex h-9 px-3 items-center gap-1.5 text-xs font-semibold rounded-lg border border-border/60 bg-background/20 hover:border-primary/50 transition-colors disabled:opacity-50",title:"Dienst neu starten",children:[s.jsx(Ka,{className:ae("h-3.5 w-3.5",P[m]&&"animate-spin")}),"Restart"]})]}),s.jsxs("div",{className:"flex-1 flex flex-col min-h-[300px] border border-border/60 bg-black/50 rounded-xl overflow-hidden shadow-inner",children:[s.jsxs("div",{className:"flex h-9 items-center justify-between px-4 border-b border-border/40 bg-black/30 shrink-0",children:[s.jsxs("div",{className:"flex items-center gap-1.5 text-[10px] font-mono text-muted-foreground",children:[s.jsx(Wd,{className:"h-3 w-3 text-primary"}),s.jsxs("span",{children:["stdout/stderr - ",m]})]}),s.jsx("button",{onClick:()=>G(m),disabled:w,className:"text-muted-foreground hover:text-foreground transition-colors",children:s.jsx(Ka,{className:ae("h-3 w-3",w&&"animate-spin")})})]}),s.jsx("pre",{ref:L,className:"flex-1 p-4 overflow-y-auto text-[10px] font-mono text-cyan-300/90 whitespace-pre-wrap select-text leading-relaxed scrollbar-thin",children:w&&!N?s.jsx("span",{className:"text-muted-foreground",children:"Lade Logs..."}):N||s.jsx("span",{className:"text-muted-foreground",children:"Keine Logeinträge vorhanden."})})]})]})})]})]})}function R0(){const[o,u]=h.useState("dashboard"),[a,c]=h.useState(null),[f,p]=h.useState(()=>localStorage.getItem("mc_theme")!=="light"),[m,g]=h.useState(()=>localStorage.getItem("mc_sidebar_collapsed")==="true"),[N,S]=h.useState(null),[w,E]=h.useState(!1);h.useEffect(()=>{const T=()=>pe("/api/health").then(c).catch(()=>c(null));T();const j=setInterval(T,1e4);return()=>clearInterval(j)},[]),h.useEffect(()=>{const T=()=>pe("/api/maintenance/updates").then(S).catch(()=>{});T();const j=setInterval(T,2e4);return()=>clearInterval(j)},[]),h.useEffect(()=>{document.documentElement.classList.toggle("dark",f),localStorage.setItem("mc_theme",f?"dark":"light")},[f]),h.useEffect(()=>{const T=()=>E(!0);return window.addEventListener("open-system-drawer",T),()=>window.removeEventListener("open-system-drawer",T)},[]);const P=Qa.find(T=>T.id===o),M=N?N.os+N.engine+N.models:0;return s.jsxs("div",{className:"flex h-full relative",children:[s.jsx("div",{className:"fixed inset-0 -z-50 pointer-events-none overflow-hidden bg-[hsl(222,24%,7%)]",children:s.jsx("div",{className:"absolute inset-0 opacity-25 animate-aurora bg-gradient-to-tr from-teal-500/15 via-indigo-500/10 to-purple-500/15 blur-[120px]"})}),s.jsx(Px,{onNavigate:u}),s.jsx(P0,{open:w,onClose:()=>E(!1)}),s.jsxs("aside",{className:ae("flex shrink-0 flex-col border-r border-border/40 bg-card/45 backdrop-blur-md transition-all duration-300 ease-in-out",m?"w-16":"w-60"),children:[s.jsxs("div",{className:ae("flex items-center py-4 border-b border-border/40 shrink-0",m?"flex-col gap-3 px-2":"justify-between px-5"),children:[s.jsxs("div",{className:"flex items-center gap-2 overflow-hidden",children:[s.jsx("div",{className:"h-7 w-7 rounded-lg bg-primary shadow-md shadow-primary/20 shrink-0"}),!m&&s.jsxs("div",{className:"leading-tight",children:[s.jsx("div",{className:"text-sm font-semibold tracking-wide font-space",children:"Mission Control"}),s.jsx("div",{className:"text-xs text-muted-foreground",children:"2.0"})]})]}),s.jsx("button",{onClick:()=>{g(T=>{const j=!T;return localStorage.setItem("mc_sidebar_collapsed",j.toString()),j})},className:"p-1 rounded-md hover:bg-accent text-muted-foreground transition-colors cursor-pointer",title:m?"Maximieren":"Minimieren",children:m?s.jsx(qm,{className:"h-4 w-4"}):s.jsx(Qm,{className:"h-4 w-4"})})]}),s.jsx("nav",{className:"flex-1 space-y-1 px-3 py-4 overflow-y-auto",children:Qa.map(T=>s.jsxs("button",{onClick:()=>u(T.id),className:ae("flex w-full items-center rounded-md text-sm transition-all cursor-pointer",m?"justify-center p-2.5":"gap-3 px-3 py-2",o===T.id?"bg-primary/15 text-primary shadow-sm shadow-primary/5":"text-muted-foreground hover:bg-accent hover:text-accent-foreground"),title:m?T.label:void 0,children:[s.jsx(T.icon,{className:"h-4.5 w-4.5 shrink-0"}),!m&&s.jsx("span",{className:"truncate",children:T.label})]},T.id))}),s.jsx("div",{className:ae("py-3 text-xs text-muted-foreground border-t border-border/40 shrink-0",m?"px-2 text-center":"px-5"),children:m?s.jsx("div",{className:"flex justify-center",children:s.jsx("span",{className:ae("h-2.5 w-2.5 rounded-full ring-2 ring-black/40",a?a.engine_reachable?"bg-emerald-500 animate-pulse":"bg-amber-500":"bg-red-500"),title:a?`Engine ${a.engine_reachable?"online":"offline"}`:"Backend offline"})}):a?s.jsxs("span",{className:"flex items-center gap-2",children:[s.jsx("span",{className:ae("h-2 w-2 rounded-full",a.engine_reachable?"bg-emerald-500":"bg-amber-500")}),s.jsxs("span",{className:"truncate",children:["Engine ",a.engine_reachable?"online":"offline"," · v",a.version]})]}):s.jsxs("span",{className:"flex items-center gap-2",children:[s.jsx("span",{className:"h-2 w-2 rounded-full bg-red-500"})," ",s.jsx("span",{className:"truncate",children:"Backend offline"})]})})]}),s.jsxs("div",{className:"flex min-w-0 flex-1 flex-col",children:[s.jsxs("header",{className:"flex h-14 shrink-0 items-center justify-between border-b border-border/40 px-6 bg-card/20 backdrop-blur-sm",children:[s.jsx("div",{className:"text-xs font-medium text-muted-foreground tracking-wide uppercase font-sans",children:P.hint}),s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsxs("button",{onClick:()=>E(!0),className:"relative flex h-8 items-center rounded-md border border-border/40 bg-background/40 px-3 text-xs text-muted-foreground hover:bg-accent hover:text-accent-foreground gap-1.5 transition-all cursor-pointer font-semibold",title:"System-Pflege öffnen",children:[s.jsx(jr,{className:"h-3.5 w-3.5"}),s.jsx("span",{children:"OS & Updates"}),M>0&&s.jsxs("span",{className:"flex h-1.5 w-1.5 relative",children:[s.jsx("span",{className:"animate-ping absolute inline-flex h-full w-full rounded-full bg-amber-400 opacity-75"}),s.jsx("span",{className:"relative inline-flex rounded-full h-1.5 w-1.5 bg-amber-500"})]})]}),s.jsx("a",{href:"https://git.tobisniceshomelab.ddnsfree.com/Hitonabi/mission-control-v2/src/branch/main/docs/BEDIENUNG.md",target:"_blank",rel:"noopener",className:"flex h-8 items-center rounded-md border border-border/40 bg-background/40 px-2.5 text-xs text-muted-foreground hover:bg-accent hover:text-accent-foreground transition-all cursor-pointer font-semibold",title:"Bedien-Anleitung",children:"Hilfe"}),s.jsx("button",{onClick:()=>p(T=>!T),className:"flex h-8 w-8 items-center justify-center rounded-md border border-border/40 bg-background/40 text-muted-foreground hover:bg-accent hover:text-accent-foreground transition-all cursor-pointer",title:"Hell/Dunkel",children:f?s.jsx(xh,{className:"h-3.5 w-3.5"}):s.jsx(sh,{className:"h-3.5 w-3.5"})}),s.jsxs("button",{onClick:()=>{const T=new KeyboardEvent("keydown",{key:"k",metaKey:!0});document.dispatchEvent(T)},className:"flex items-center gap-2 rounded-md border border-border/40 bg-background/40 px-2.5 py-1.5 text-xs text-muted-foreground hover:bg-accent hover:text-accent-foreground transition-all cursor-pointer",children:[s.jsx(Zm,{className:"h-3.5 w-3.5"}),s.jsx("span",{children:"Suchen"}),s.jsx("kbd",{className:"rounded bg-muted px-1.5 py-0.5 font-mono text-[9px]",children:"⌘K"})]})]})]}),s.jsxs("main",{className:"flex-1 overflow-y-auto p-6 scrollbar-thin",children:[o==="dashboard"&&s.jsx(u0,{}),o==="models"&&s.jsx(b0,{}),o==="system"&&s.jsx(k0,{}),o==="connect"&&s.jsx(S0,{}),o==="memory"&&s.jsx(j0,{}),o==="agent"&&s.jsx(E0,{}),!["dashboard","models","system","connect","memory","agent"].includes(o)&&s.jsx(C0,{title:P.label,hint:P.hint})]})]})]})}$m.createRoot(document.getElementById("root")).render(s.jsx(Id.StrictMode,{children:s.jsx(R0,{})})); diff --git a/frontend/dist/assets/index-D5kA4UxS.css b/frontend/dist/assets/index-D5kA4UxS.css new file mode 100644 index 0000000..f0bfda8 --- /dev/null +++ b/frontend/dist/assets/index-D5kA4UxS.css @@ -0,0 +1 @@ +@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Space+Grotesk:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-pan-x:initial;--tw-pan-y:initial;--tw-pinch-zoom:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-divide-x-reverse:0;--tw-border-style:solid;--tw-divide-y-reverse:0;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:root,:host{--font-sans:"Inter", ui-sans-serif, system-ui, -apple-system, sans-serif;--color-red-300:oklch(80.8% .114 19.571);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-500:oklch(69.6% .17 162.48);--color-teal-500:oklch(70.4% .14 182.503);--color-cyan-200:oklch(91.7% .08 205.041);--color-cyan-300:oklch(86.5% .127 207.078);--color-cyan-400:oklch(78.9% .154 211.53);--color-cyan-500:oklch(71.5% .143 215.221);--color-indigo-400:oklch(67.3% .182 276.935);--color-indigo-500:oklch(58.5% .233 277.117);--color-violet-400:oklch(70.2% .183 293.541);--color-violet-500:oklch(60.6% .25 292.717);--color-purple-500:oklch(62.7% .265 303.9);--color-pink-400:oklch(71.8% .202 349.761);--color-pink-500:oklch(65.6% .241 354.308);--color-black:#000;--spacing:.25rem;--container-lg:32rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wide:.025em;--tracking-wider:.05em;--leading-tight:1.25;--leading-normal:1.5;--leading-relaxed:1.625;--radius-xl:.75rem;--radius-2xl:1rem;--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-ping:ping 1s cubic-bezier(0, 0, .2, 1) infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-sm:8px;--blur-md:12px;--blur-xl:24px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:"Inter", ui-sans-serif, system-ui, -apple-system, sans-serif;--default-mono-font-family:"JetBrains Mono", ui-monospace, SFMono-Regular, monospace}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.not-sr-only{clip-path:none;white-space:normal;width:auto;height:auto;margin:0;padding:0;position:static;overflow:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.inset-y-0{inset-block:0}.top-2\.5{top:calc(var(--spacing) * 2.5)}.right-0{right:0}.left-3{left:calc(var(--spacing) * 3)}.isolate{isolation:isolate}.isolation-auto{isolation:auto}.-z-50{z-index:-50}.z-50{z-index:50}.col-span-full{grid-column:1/-1}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.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-3{margin-top:calc(var(--spacing) * 3)}.mt-3\.5{margin-top:calc(var(--spacing) * 3.5)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mr-1\.5{margin-right:calc(var(--spacing) * 1.5)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mb-1{margin-bottom:var(--spacing)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.ml-1{margin-left:var(--spacing)}.ml-auto{margin-left:auto}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.flow-root{display:flow-root}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.inline-grid{display:inline-grid}.inline-table{display:inline-table}.list-item{display:list-item}.table{display:table}.table-caption{display:table-caption}.table-cell{display:table-cell}.table-column{display:table-column}.table-column-group{display:table-column-group}.table-footer-group{display:table-footer-group}.table-header-group{display:table-header-group}.table-row{display:table-row}.table-row-group{display:table-row-group}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-4\.5{height:calc(var(--spacing) * 4.5)}.h-5{height:calc(var(--spacing) * 5)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-11{height:calc(var(--spacing) * 11)}.h-14{height:calc(var(--spacing) * 14)}.h-16{height:calc(var(--spacing) * 16)}.h-24{height:calc(var(--spacing) * 24)}.h-28{height:calc(var(--spacing) * 28)}.h-full{height:100%}.max-h-20{max-height:calc(var(--spacing) * 20)}.max-h-48{max-height:calc(var(--spacing) * 48)}.max-h-80{max-height:calc(var(--spacing) * 80)}.min-h-\[300px\]{min-height:300px}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-3{width:calc(var(--spacing) * 3)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-4{width:calc(var(--spacing) * 4)}.w-4\.5{width:calc(var(--spacing) * 4.5)}.w-5{width:calc(var(--spacing) * 5)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-16{width:calc(var(--spacing) * 16)}.w-60{width:calc(var(--spacing) * 60)}.w-fit{width:fit-content}.w-full{width:100%}.max-w-\[160px\]{max-width:160px}.max-w-\[200px\]{max-width:200px}.max-w-\[250px\]{max-width:250px}.max-w-fit{max-width:fit-content}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.min-w-0{min-width:0}.min-w-\[120px\]{min-width:120px}.flex-1{flex:1}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.translate-x-0{--tw-translate-x:0;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-full{--tw-translate-x:100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.-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,)}.animate-ping{animation:var(--animate-ping)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-pointer{cursor:pointer}.touch-pinch-zoom{--tw-pinch-zoom:pinch-zoom;touch-action:var(--tw-pan-x,) var(--tw-pan-y,) var(--tw-pinch-zoom,)}.resize{resize:both}.resize-none{resize:none}.scrollbar-thin{scrollbar-width:thin}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-reverse>:not(:last-child)){--tw-space-y-reverse:1}:where(.space-x-reverse>:not(:last-child)){--tw-space-x-reverse:1}:where(.divide-x>:not(:last-child)){--tw-divide-x-reverse:0;border-inline-style:var(--tw-border-style);border-inline-start-width:calc(1px * var(--tw-divide-x-reverse));border-inline-end-width:calc(1px * calc(1 - var(--tw-divide-x-reverse)))}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-y-reverse>:not(:last-child)){--tw-divide-y-reverse:1}.self-start{align-self:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-s{border-start-start-radius:.25rem;border-end-start-radius:.25rem}.rounded-ss{border-start-start-radius:.25rem}.rounded-e{border-start-end-radius:.25rem;border-end-end-radius:.25rem}.rounded-se{border-start-end-radius:.25rem}.rounded-ee{border-end-end-radius:.25rem}.rounded-es{border-end-start-radius:.25rem}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.rounded-l{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-tl{border-top-left-radius:.25rem}.rounded-r{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.rounded-tr{border-top-right-radius:.25rem}.rounded-b{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-br{border-bottom-right-radius:.25rem}.rounded-bl{border-bottom-left-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.border-x{border-inline-style:var(--tw-border-style);border-inline-width:1px}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-s{border-inline-start-style:var(--tw-border-style);border-inline-start-width:1px}.border-e{border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-4{border-left-style:var(--tw-border-style);border-left-width:4px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-amber-500\/20{border-color:#f99c0033}@supports (color:color-mix(in lab,red,red)){.border-amber-500\/20{border-color:color-mix(in oklab,var(--color-amber-500) 20%,transparent)}}.border-amber-500\/30{border-color:#f99c004d}@supports (color:color-mix(in lab,red,red)){.border-amber-500\/30{border-color:color-mix(in oklab,var(--color-amber-500) 30%,transparent)}}.border-border,.border-border\/10{border-color:hsl(var(--border))}@supports (color:color-mix(in lab,red,red)){.border-border\/10{border-color:color-mix(in oklab,hsl(var(--border)) 10%,transparent)}}.border-border\/20{border-color:hsl(var(--border))}@supports (color:color-mix(in lab,red,red)){.border-border\/20{border-color:color-mix(in oklab,hsl(var(--border)) 20%,transparent)}}.border-border\/30{border-color:hsl(var(--border))}@supports (color:color-mix(in lab,red,red)){.border-border\/30{border-color:color-mix(in oklab,hsl(var(--border)) 30%,transparent)}}.border-border\/40{border-color:hsl(var(--border))}@supports (color:color-mix(in lab,red,red)){.border-border\/40{border-color:color-mix(in oklab,hsl(var(--border)) 40%,transparent)}}.border-border\/50{border-color:hsl(var(--border))}@supports (color:color-mix(in lab,red,red)){.border-border\/50{border-color:color-mix(in oklab,hsl(var(--border)) 50%,transparent)}}.border-border\/60{border-color:hsl(var(--border))}@supports (color:color-mix(in lab,red,red)){.border-border\/60{border-color:color-mix(in oklab,hsl(var(--border)) 60%,transparent)}}.border-cyan-500\/30{border-color:#00b7d74d}@supports (color:color-mix(in lab,red,red)){.border-cyan-500\/30{border-color:color-mix(in oklab,var(--color-cyan-500) 30%,transparent)}}.border-emerald-500\/20{border-color:#00bb7f33}@supports (color:color-mix(in lab,red,red)){.border-emerald-500\/20{border-color:color-mix(in oklab,var(--color-emerald-500) 20%,transparent)}}.border-indigo-500\/30{border-color:#625fff4d}@supports (color:color-mix(in lab,red,red)){.border-indigo-500\/30{border-color:color-mix(in oklab,var(--color-indigo-500) 30%,transparent)}}.border-pink-500\/30{border-color:#f6339a4d}@supports (color:color-mix(in lab,red,red)){.border-pink-500\/30{border-color:color-mix(in oklab,var(--color-pink-500) 30%,transparent)}}.border-primary,.border-primary\/20{border-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.border-primary\/20{border-color:color-mix(in oklab,hsl(var(--primary)) 20%,transparent)}}.border-primary\/30{border-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.border-primary\/30{border-color:color-mix(in oklab,hsl(var(--primary)) 30%,transparent)}}.border-primary\/40{border-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.border-primary\/40{border-color:color-mix(in oklab,hsl(var(--primary)) 40%,transparent)}}.border-primary\/45{border-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.border-primary\/45{border-color:color-mix(in oklab,hsl(var(--primary)) 45%,transparent)}}.border-primary\/50{border-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.border-primary\/50{border-color:color-mix(in oklab,hsl(var(--primary)) 50%,transparent)}}.border-red-500\/20{border-color:#fb2c3633}@supports (color:color-mix(in lab,red,red)){.border-red-500\/20{border-color:color-mix(in oklab,var(--color-red-500) 20%,transparent)}}.border-red-500\/25{border-color:#fb2c3640}@supports (color:color-mix(in lab,red,red)){.border-red-500\/25{border-color:color-mix(in oklab,var(--color-red-500) 25%,transparent)}}.border-red-500\/30{border-color:#fb2c364d}@supports (color:color-mix(in lab,red,red)){.border-red-500\/30{border-color:color-mix(in oklab,var(--color-red-500) 30%,transparent)}}.border-transparent{border-color:#0000}.border-violet-500\/30{border-color:#8d54ff4d}@supports (color:color-mix(in lab,red,red)){.border-violet-500\/30{border-color:color-mix(in oklab,var(--color-violet-500) 30%,transparent)}}.border-l-amber-500\/80{border-left-color:#f99c00cc}@supports (color:color-mix(in lab,red,red)){.border-l-amber-500\/80{border-left-color:color-mix(in oklab,var(--color-amber-500) 80%,transparent)}}.border-l-cyan-500\/80{border-left-color:#00b7d7cc}@supports (color:color-mix(in lab,red,red)){.border-l-cyan-500\/80{border-left-color:color-mix(in oklab,var(--color-cyan-500) 80%,transparent)}}.border-l-indigo-500\/80{border-left-color:#625fffcc}@supports (color:color-mix(in lab,red,red)){.border-l-indigo-500\/80{border-left-color:color-mix(in oklab,var(--color-indigo-500) 80%,transparent)}}.border-l-muted{border-left-color:hsl(var(--muted))}.border-l-pink-500\/80{border-left-color:#f6339acc}@supports (color:color-mix(in lab,red,red)){.border-l-pink-500\/80{border-left-color:color-mix(in oklab,var(--color-pink-500) 80%,transparent)}}.border-l-violet-500\/80{border-left-color:#8d54ffcc}@supports (color:color-mix(in lab,red,red)){.border-l-violet-500\/80{border-left-color:color-mix(in oklab,var(--color-violet-500) 80%,transparent)}}.bg-\[hsl\(222\,24\%\,7\%\)\]{background-color:#0e1016}.bg-amber-400{background-color:var(--color-amber-400)}.bg-amber-500{background-color:var(--color-amber-500)}.bg-amber-500\/5{background-color:#f99c000d}@supports (color:color-mix(in lab,red,red)){.bg-amber-500\/5{background-color:color-mix(in oklab,var(--color-amber-500) 5%,transparent)}}.bg-amber-500\/10{background-color:#f99c001a}@supports (color:color-mix(in lab,red,red)){.bg-amber-500\/10{background-color:color-mix(in oklab,var(--color-amber-500) 10%,transparent)}}.bg-amber-500\/15{background-color:#f99c0026}@supports (color:color-mix(in lab,red,red)){.bg-amber-500\/15{background-color:color-mix(in oklab,var(--color-amber-500) 15%,transparent)}}.bg-amber-500\/80{background-color:#f99c00cc}@supports (color:color-mix(in lab,red,red)){.bg-amber-500\/80{background-color:color-mix(in oklab,var(--color-amber-500) 80%,transparent)}}.bg-background\/10{background-color:hsl(var(--background))}@supports (color:color-mix(in lab,red,red)){.bg-background\/10{background-color:color-mix(in oklab,hsl(var(--background)) 10%,transparent)}}.bg-background\/20{background-color:hsl(var(--background))}@supports (color:color-mix(in lab,red,red)){.bg-background\/20{background-color:color-mix(in oklab,hsl(var(--background)) 20%,transparent)}}.bg-background\/25{background-color:hsl(var(--background))}@supports (color:color-mix(in lab,red,red)){.bg-background\/25{background-color:color-mix(in oklab,hsl(var(--background)) 25%,transparent)}}.bg-background\/30{background-color:hsl(var(--background))}@supports (color:color-mix(in lab,red,red)){.bg-background\/30{background-color:color-mix(in oklab,hsl(var(--background)) 30%,transparent)}}.bg-background\/40{background-color:hsl(var(--background))}@supports (color:color-mix(in lab,red,red)){.bg-background\/40{background-color:color-mix(in oklab,hsl(var(--background)) 40%,transparent)}}.bg-background\/50{background-color:hsl(var(--background))}@supports (color:color-mix(in lab,red,red)){.bg-background\/50{background-color:color-mix(in oklab,hsl(var(--background)) 50%,transparent)}}.bg-background\/60{background-color:hsl(var(--background))}@supports (color:color-mix(in lab,red,red)){.bg-background\/60{background-color:color-mix(in oklab,hsl(var(--background)) 60%,transparent)}}.bg-black\/10{background-color:#0000001a}@supports (color:color-mix(in lab,red,red)){.bg-black\/10{background-color:color-mix(in oklab,var(--color-black) 10%,transparent)}}.bg-black\/30{background-color:#0000004d}@supports (color:color-mix(in lab,red,red)){.bg-black\/30{background-color:color-mix(in oklab,var(--color-black) 30%,transparent)}}.bg-black\/40{background-color:#0006}@supports (color:color-mix(in lab,red,red)){.bg-black\/40{background-color:color-mix(in oklab,var(--color-black) 40%,transparent)}}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.bg-black\/50{background-color:color-mix(in oklab,var(--color-black) 50%,transparent)}}.bg-black\/60{background-color:#0009}@supports (color:color-mix(in lab,red,red)){.bg-black\/60{background-color:color-mix(in oklab,var(--color-black) 60%,transparent)}}.bg-card,.bg-card\/20{background-color:hsl(var(--card))}@supports (color:color-mix(in lab,red,red)){.bg-card\/20{background-color:color-mix(in oklab,hsl(var(--card)) 20%,transparent)}}.bg-card\/30{background-color:hsl(var(--card))}@supports (color:color-mix(in lab,red,red)){.bg-card\/30{background-color:color-mix(in oklab,hsl(var(--card)) 30%,transparent)}}.bg-card\/45{background-color:hsl(var(--card))}@supports (color:color-mix(in lab,red,red)){.bg-card\/45{background-color:color-mix(in oklab,hsl(var(--card)) 45%,transparent)}}.bg-card\/50{background-color:hsl(var(--card))}@supports (color:color-mix(in lab,red,red)){.bg-card\/50{background-color:color-mix(in oklab,hsl(var(--card)) 50%,transparent)}}.bg-card\/85{background-color:hsl(var(--card))}@supports (color:color-mix(in lab,red,red)){.bg-card\/85{background-color:color-mix(in oklab,hsl(var(--card)) 85%,transparent)}}.bg-cyan-500\/10{background-color:#00b7d71a}@supports (color:color-mix(in lab,red,red)){.bg-cyan-500\/10{background-color:color-mix(in oklab,var(--color-cyan-500) 10%,transparent)}}.bg-cyan-500\/15{background-color:#00b7d726}@supports (color:color-mix(in lab,red,red)){.bg-cyan-500\/15{background-color:color-mix(in oklab,var(--color-cyan-500) 15%,transparent)}}.bg-emerald-400{background-color:var(--color-emerald-400)}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-emerald-500\/10{background-color:#00bb7f1a}@supports (color:color-mix(in lab,red,red)){.bg-emerald-500\/10{background-color:color-mix(in oklab,var(--color-emerald-500) 10%,transparent)}}.bg-emerald-500\/15{background-color:#00bb7f26}@supports (color:color-mix(in lab,red,red)){.bg-emerald-500\/15{background-color:color-mix(in oklab,var(--color-emerald-500) 15%,transparent)}}.bg-emerald-500\/80{background-color:#00bb7fcc}@supports (color:color-mix(in lab,red,red)){.bg-emerald-500\/80{background-color:color-mix(in oklab,var(--color-emerald-500) 80%,transparent)}}.bg-indigo-500\/10{background-color:#625fff1a}@supports (color:color-mix(in lab,red,red)){.bg-indigo-500\/10{background-color:color-mix(in oklab,var(--color-indigo-500) 10%,transparent)}}.bg-muted,.bg-muted\/10{background-color:hsl(var(--muted))}@supports (color:color-mix(in lab,red,red)){.bg-muted\/10{background-color:color-mix(in oklab,hsl(var(--muted)) 10%,transparent)}}.bg-muted\/20{background-color:hsl(var(--muted))}@supports (color:color-mix(in lab,red,red)){.bg-muted\/20{background-color:color-mix(in oklab,hsl(var(--muted)) 20%,transparent)}}.bg-muted\/40{background-color:hsl(var(--muted))}@supports (color:color-mix(in lab,red,red)){.bg-muted\/40{background-color:color-mix(in oklab,hsl(var(--muted)) 40%,transparent)}}.bg-pink-500\/10{background-color:#f6339a1a}@supports (color:color-mix(in lab,red,red)){.bg-pink-500\/10{background-color:color-mix(in oklab,var(--color-pink-500) 10%,transparent)}}.bg-pink-500\/15{background-color:#f6339a26}@supports (color:color-mix(in lab,red,red)){.bg-pink-500\/15{background-color:color-mix(in oklab,var(--color-pink-500) 15%,transparent)}}.bg-popover{background-color:hsl(var(--popover))}.bg-primary,.bg-primary\/5{background-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.bg-primary\/5{background-color:color-mix(in oklab,hsl(var(--primary)) 5%,transparent)}}.bg-primary\/10{background-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.bg-primary\/10{background-color:color-mix(in oklab,hsl(var(--primary)) 10%,transparent)}}.bg-primary\/15{background-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.bg-primary\/15{background-color:color-mix(in oklab,hsl(var(--primary)) 15%,transparent)}}.bg-red-500{background-color:var(--color-red-500)}.bg-red-500\/5{background-color:#fb2c360d}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/5{background-color:color-mix(in oklab,var(--color-red-500) 5%,transparent)}}.bg-red-500\/15{background-color:#fb2c3626}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/15{background-color:color-mix(in oklab,var(--color-red-500) 15%,transparent)}}.bg-red-500\/80{background-color:#fb2c36cc}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/80{background-color:color-mix(in oklab,var(--color-red-500) 80%,transparent)}}.bg-transparent{background-color:#0000}.bg-violet-500\/10{background-color:#8d54ff1a}@supports (color:color-mix(in lab,red,red)){.bg-violet-500\/10{background-color:color-mix(in oklab,var(--color-violet-500) 10%,transparent)}}.bg-violet-500\/15{background-color:#8d54ff26}@supports (color:color-mix(in lab,red,red)){.bg-violet-500\/15{background-color:color-mix(in oklab,var(--color-violet-500) 15%,transparent)}}.bg-gradient-to-r{--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-tr{--tw-gradient-position:to top right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-foreground{--tw-gradient-from:hsl(var(--foreground));--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-teal-500\/15{--tw-gradient-from:#00baa726}@supports (color:color-mix(in lab,red,red)){.from-teal-500\/15{--tw-gradient-from:color-mix(in oklab, var(--color-teal-500) 15%, transparent)}}.from-teal-500\/15{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.via-foreground{--tw-gradient-via:hsl(var(--foreground));--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-indigo-500\/10{--tw-gradient-via:#625fff1a}@supports (color:color-mix(in lab,red,red)){.via-indigo-500\/10{--tw-gradient-via:color-mix(in oklab, var(--color-indigo-500) 10%, transparent)}}.via-indigo-500\/10{--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.to-primary{--tw-gradient-to:hsl(var(--primary));--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-purple-500\/15{--tw-gradient-to:#ac4bff26}@supports (color:color-mix(in lab,red,red)){.to-purple-500\/15{--tw-gradient-to:color-mix(in oklab, var(--color-purple-500) 15%, transparent)}}.to-purple-500\/15{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.bg-repeat{background-repeat:repeat}.fill-amber-400{fill:var(--color-amber-400)}.fill-none{fill:none}.stroke-amber-500{stroke:var(--color-amber-500)}.stroke-muted{stroke:hsl(var(--muted))}.stroke-primary{stroke:hsl(var(--primary))}.stroke-red-500{stroke:var(--color-red-500)}.p-1{padding:var(--spacing)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-3\.5{padding:calc(var(--spacing) * 3.5)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-12{padding:calc(var(--spacing) * 12)}.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-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-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-12{padding-block:calc(var(--spacing) * 12)}.py-20{padding-block:calc(var(--spacing) * 20)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-\[12vh\]{padding-top:12vh}.pr-1{padding-right:var(--spacing)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pl-9{padding-left:calc(var(--spacing) * 9)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:JetBrains Mono,ui-monospace,SFMono-Regular,monospace}.font-sans{font-family:Inter,ui-sans-serif,system-ui,-apple-system,sans-serif}.font-space{font-family:Space Grotesk,sans-serif}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[8px\]{font-size:8px}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.leading-normal{--tw-leading:var(--leading-normal);line-height:var(--leading-normal)}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.text-wrap{text-wrap:wrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.text-clip{text-overflow:clip}.text-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.text-amber-400{color:var(--color-amber-400)}.text-amber-500{color:var(--color-amber-500)}.text-cyan-200\/90{color:#a2f4fde6}@supports (color:color-mix(in lab,red,red)){.text-cyan-200\/90{color:color-mix(in oklab,var(--color-cyan-200) 90%,transparent)}}.text-cyan-300\/90{color:#53eafde6}@supports (color:color-mix(in lab,red,red)){.text-cyan-300\/90{color:color-mix(in oklab,var(--color-cyan-300) 90%,transparent)}}.text-cyan-400{color:var(--color-cyan-400)}.text-emerald-400{color:var(--color-emerald-400)}.text-foreground{color:hsl(var(--foreground))}.text-indigo-400{color:var(--color-indigo-400)}.text-muted-foreground,.text-muted-foreground\/60{color:hsl(var(--muted-foreground))}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/60{color:color-mix(in oklab,hsl(var(--muted-foreground)) 60%,transparent)}}.text-muted-foreground\/75{color:hsl(var(--muted-foreground))}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/75{color:color-mix(in oklab,hsl(var(--muted-foreground)) 75%,transparent)}}.text-muted-foreground\/80{color:hsl(var(--muted-foreground))}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/80{color:color-mix(in oklab,hsl(var(--muted-foreground)) 80%,transparent)}}.text-pink-400{color:var(--color-pink-400)}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-primary\/80{color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.text-primary\/80{color:color-mix(in oklab,hsl(var(--primary)) 80%,transparent)}}.text-red-400{color:var(--color-red-400)}.text-red-400\/80{color:#ff6568cc}@supports (color:color-mix(in lab,red,red)){.text-red-400\/80{color:color-mix(in oklab,var(--color-red-400) 80%,transparent)}}.text-transparent{color:#0000}.text-violet-400{color:var(--color-violet-400)}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.italic{font-style:italic}.not-italic{font-style:normal}.diagonal-fractions{--tw-numeric-fraction:diagonal-fractions;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.lining-nums{--tw-numeric-figure:lining-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.oldstyle-nums{--tw-numeric-figure:oldstyle-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.proportional-nums{--tw-numeric-spacing:proportional-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.slashed-zero{--tw-slashed-zero:slashed-zero;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.stacked-fractions{--tw-numeric-fraction:stacked-fractions;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.normal-nums{font-variant-numeric:normal}.line-through{text-decoration-line:line-through}.no-underline{text-decoration-line:none}.overline{text-decoration-line:overline}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.subpixel-antialiased{-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}.opacity-0{opacity:0}.opacity-25{opacity:.25}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-inner{--tw-shadow:inset 0 2px 4px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.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)}.shadow-amber-500\/10{--tw-shadow-color:#f99c001a}@supports (color:color-mix(in lab,red,red)){.shadow-amber-500\/10{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-amber-500) 10%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-amber-500\/20{--tw-shadow-color:#f99c0033}@supports (color:color-mix(in lab,red,red)){.shadow-amber-500\/20{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-amber-500) 20%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-black\/5{--tw-shadow-color:#0000000d}@supports (color:color-mix(in lab,red,red)){.shadow-black\/5{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-black) 5%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-black\/10{--tw-shadow-color:#0000001a}@supports (color:color-mix(in lab,red,red)){.shadow-black\/10{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-black) 10%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-black\/15{--tw-shadow-color:#00000026}@supports (color:color-mix(in lab,red,red)){.shadow-black\/15{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-black) 15%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-emerald-500\/10{--tw-shadow-color:#00bb7f1a}@supports (color:color-mix(in lab,red,red)){.shadow-emerald-500\/10{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-emerald-500) 10%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-primary\/5{--tw-shadow-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.shadow-primary\/5{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, hsl(var(--primary)) 5%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-primary\/10{--tw-shadow-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.shadow-primary\/10{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, hsl(var(--primary)) 10%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-primary\/20{--tw-shadow-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.shadow-primary\/20{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, hsl(var(--primary)) 20%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-red-500\/10{--tw-shadow-color:#fb2c361a}@supports (color:color-mix(in lab,red,red)){.shadow-red-500\/10{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-red-500) 10%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-red-500\/20{--tw-shadow-color:#fb2c3633}@supports (color:color-mix(in lab,red,red)){.shadow-red-500\/20{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-red-500) 20%, transparent) var(--tw-shadow-alpha), transparent)}}.ring-black\/40{--tw-ring-color:#0006}@supports (color:color-mix(in lab,red,red)){.ring-black\/40{--tw-ring-color:color-mix(in oklab, var(--color-black) 40%, transparent)}}.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-\[120px\]{--tw-blur:blur(120px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.drop-shadow{--tw-drop-shadow-size:drop-shadow(0 1px 2px var(--tw-drop-shadow-color,#0000001a)) drop-shadow(0 1px 1px var(--tw-drop-shadow-color,#0000000f));--tw-drop-shadow:drop-shadow(0 1px 2px #0000001a) drop-shadow(0 1px 1px #0000000f);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.grayscale{--tw-grayscale:grayscale(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.invert{--tw-invert:invert(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.sepia{--tw-sepia:sepia(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.\!filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)!important}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-xl{--tw-backdrop-blur:blur(var(--blur-xl));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-grayscale{--tw-backdrop-grayscale:grayscale(100%);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-invert{--tw-backdrop-invert:invert(100%);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-sepia{--tw-backdrop-sepia:sepia(100%);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition\!{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events!important;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))!important;transition-duration:var(--tw-duration,var(--default-transition-duration))!important}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.duration-700{--tw-duration:.7s;transition-duration:.7s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-text{-webkit-user-select:text;user-select:text}:where(.divide-x-reverse>:not(:last-child)){--tw-divide-x-reverse:1}.ring-inset{--tw-ring-inset:inset}@media(hover:hover){.group-hover\:scale-105:is(:where(.group):hover *){--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x) var(--tw-scale-y)}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}@media(hover:hover){.hover\:border-primary\/20:hover{border-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.hover\:border-primary\/20:hover{border-color:color-mix(in oklab,hsl(var(--primary)) 20%,transparent)}}.hover\:border-primary\/30:hover{border-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.hover\:border-primary\/30:hover{border-color:color-mix(in oklab,hsl(var(--primary)) 30%,transparent)}}.hover\:border-primary\/40:hover{border-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.hover\:border-primary\/40:hover{border-color:color-mix(in oklab,hsl(var(--primary)) 40%,transparent)}}.hover\:border-primary\/50:hover{border-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.hover\:border-primary\/50:hover{border-color:color-mix(in oklab,hsl(var(--primary)) 50%,transparent)}}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-background\/30:hover{background-color:hsl(var(--background))}@supports (color:color-mix(in lab,red,red)){.hover\:bg-background\/30:hover{background-color:color-mix(in oklab,hsl(var(--background)) 30%,transparent)}}.hover\:bg-background\/40:hover{background-color:hsl(var(--background))}@supports (color:color-mix(in lab,red,red)){.hover\:bg-background\/40:hover{background-color:color-mix(in oklab,hsl(var(--background)) 40%,transparent)}}.hover\:bg-background\/60:hover{background-color:hsl(var(--background))}@supports (color:color-mix(in lab,red,red)){.hover\:bg-background\/60:hover{background-color:color-mix(in oklab,hsl(var(--background)) 60%,transparent)}}.hover\:bg-primary\/5:hover{background-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/5:hover{background-color:color-mix(in oklab,hsl(var(--primary)) 5%,transparent)}}.hover\:bg-primary\/10:hover{background-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/10:hover{background-color:color-mix(in oklab,hsl(var(--primary)) 10%,transparent)}}.hover\:bg-red-500\/5:hover{background-color:#fb2c360d}@supports (color:color-mix(in lab,red,red)){.hover\:bg-red-500\/5:hover{background-color:color-mix(in oklab,var(--color-red-500) 5%,transparent)}}.hover\:bg-red-500\/10:hover{background-color:#fb2c361a}@supports (color:color-mix(in lab,red,red)){.hover\:bg-red-500\/10:hover{background-color:color-mix(in oklab,var(--color-red-500) 10%,transparent)}}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:text-primary:hover{color:hsl(var(--primary))}.hover\:text-primary-foreground:hover{color:hsl(var(--primary-foreground))}.hover\:text-red-300:hover{color:var(--color-red-300)}.hover\:text-red-400:hover{color:var(--color-red-400)}.hover\:opacity-90:hover{opacity:.9}}.focus\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-primary:focus,.focus\:ring-primary\/50:focus{--tw-ring-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.focus\:ring-primary\/50:focus{--tw-ring-color:color-mix(in oklab, hsl(var(--primary)) 50%, transparent)}}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color:hsl(var(--ring))}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.disabled\:opacity-50:disabled{opacity:.5}.aria-selected\:bg-accent[aria-selected=true]{background-color:hsl(var(--accent))}.aria-selected\:text-accent-foreground[aria-selected=true]{color:hsl(var(--accent-foreground))}@media(min-width:40rem){.sm\:inline{display:inline}.sm\:w-\[500px\]{width:500px}.sm\:max-w-\[200px\]{max-width:200px}.sm\:max-w-\[280px\]{max-width:280px}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:self-auto{align-self:auto}}@media(min-width:48rem){.md\:col-span-2{grid-column:span 2/span 2}.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\:flex-row{flex-direction:row}.md\:items-center{align-items:center}}@media(min-width:64rem){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}}:root{--background:222 24% 7%;--foreground:210 20% 92%;--card:222 22% 10%;--card-foreground:210 20% 92%;--popover:222 24% 9%;--popover-foreground:210 20% 92%;--primary:172 66% 50%;--primary-foreground:222 47% 8%;--muted:220 14% 15%;--muted-foreground:215 14% 62%;--accent:220 14% 17%;--accent-foreground:210 20% 92%;--border:220 14% 19%;--input:220 14% 19%;--ring:172 66% 50%;--radius:.75rem}.light{--background:0 0% 100%;--foreground:222 22% 12%;--card:0 0% 100%;--card-foreground:222 22% 12%;--popover:0 0% 100%;--popover-foreground:222 22% 12%;--primary:172 70% 38%;--primary-foreground:0 0% 100%;--muted:220 14% 95%;--muted-foreground:220 9% 42%;--accent:220 14% 94%;--accent-foreground:222 22% 12%;--border:220 13% 88%;--input:220 13% 88%;--ring:172 66% 50%}@keyframes aurora{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}.animate-aurora{background-size:200% 200%;animation:25s infinite aurora}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:hsl(var(--border));border-radius:9999px}::-webkit-scrollbar-thumb:hover{background:hsl(var(--primary) / .4)}*{border-color:hsl(var(--border));outline-color:hsl(var(--primary) / .5)}html,body,#root{height:100%;overflow:hidden}body{background-color:hsl(var(--background));color:hsl(var(--foreground));font-family:var(--font-sans);-webkit-font-smoothing:antialiased;margin:0}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-pan-x{syntax:"*";inherits:false}@property --tw-pan-y{syntax:"*";inherits:false}@property --tw-pinch-zoom{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}@keyframes pulse{50%{opacity:.5}} diff --git a/frontend/dist/assets/index-DpycPcE0.js b/frontend/dist/assets/index-DpycPcE0.js deleted file mode 100644 index 62366fb..0000000 --- a/frontend/dist/assets/index-DpycPcE0.js +++ /dev/null @@ -1,335 +0,0 @@ -function Lm(o,u){for(var i=0;ic[f]})}}}return Object.freeze(Object.defineProperty(o,Symbol.toStringTag,{value:"Module"}))}(function(){const u=document.createElement("link").relList;if(u&&u.supports&&u.supports("modulepreload"))return;for(const f of document.querySelectorAll('link[rel="modulepreload"]'))c(f);new MutationObserver(f=>{for(const p of f)if(p.type==="childList")for(const m of p.addedNodes)m.tagName==="LINK"&&m.rel==="modulepreload"&&c(m)}).observe(document,{childList:!0,subtree:!0});function i(f){const p={};return f.integrity&&(p.integrity=f.integrity),f.referrerPolicy&&(p.referrerPolicy=f.referrerPolicy),f.crossOrigin==="use-credentials"?p.credentials="include":f.crossOrigin==="anonymous"?p.credentials="omit":p.credentials="same-origin",p}function c(f){if(f.ep)return;f.ep=!0;const p=i(f);fetch(f.href,p)}})();function zd(o){return o&&o.__esModule&&Object.prototype.hasOwnProperty.call(o,"default")?o.default:o}var _i={exports:{}},Xn={},Pi={exports:{}},ge={};/** - * @license React - * react.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var od;function Tm(){if(od)return ge;od=1;var o=Symbol.for("react.element"),u=Symbol.for("react.portal"),i=Symbol.for("react.fragment"),c=Symbol.for("react.strict_mode"),f=Symbol.for("react.profiler"),p=Symbol.for("react.provider"),m=Symbol.for("react.context"),g=Symbol.for("react.forward_ref"),N=Symbol.for("react.suspense"),k=Symbol.for("react.memo"),S=Symbol.for("react.lazy"),E=Symbol.iterator;function P(w){return w===null||typeof w!="object"?null:(w=E&&w[E]||w["@@iterator"],typeof w=="function"?w:null)}var M={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},T=Object.assign,j={};function L(w,b,V){this.props=w,this.context=b,this.refs=j,this.updater=V||M}L.prototype.isReactComponent={},L.prototype.setState=function(w,b){if(typeof w!="object"&&typeof w!="function"&&w!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,w,b,"setState")},L.prototype.forceUpdate=function(w){this.updater.enqueueForceUpdate(this,w,"forceUpdate")};function $(){}$.prototype=L.prototype;function O(w,b,V){this.props=w,this.context=b,this.refs=j,this.updater=V||M}var I=O.prototype=new $;I.constructor=O,T(I,L.prototype),I.isPureReactComponent=!0;var q=Array.isArray,oe=Object.prototype.hasOwnProperty,te={current:null},ce={key:!0,ref:!0,__self:!0,__source:!0};function we(w,b,V){var G,B={},Z=null,le=null;if(b!=null)for(G in b.ref!==void 0&&(le=b.ref),b.key!==void 0&&(Z=""+b.key),b)oe.call(b,G)&&!ce.hasOwnProperty(G)&&(B[G]=b[G]);var fe=arguments.length-2;if(fe===1)B.children=V;else if(1>>1,b=H[w];if(0>>1;wf(B,W))Zf(le,B)?(H[w]=le,H[Z]=W,w=Z):(H[w]=B,H[G]=W,w=G);else if(Zf(le,W))H[w]=le,H[Z]=W,w=Z;else break e}}return ee}function f(H,ee){var W=H.sortIndex-ee.sortIndex;return W!==0?W:H.id-ee.id}if(typeof performance=="object"&&typeof performance.now=="function"){var p=performance;o.unstable_now=function(){return p.now()}}else{var m=Date,g=m.now();o.unstable_now=function(){return m.now()-g}}var N=[],k=[],S=1,E=null,P=3,M=!1,T=!1,j=!1,L=typeof setTimeout=="function"?setTimeout:null,$=typeof clearTimeout=="function"?clearTimeout:null,O=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function I(H){for(var ee=i(k);ee!==null;){if(ee.callback===null)c(k);else if(ee.startTime<=H)c(k),ee.sortIndex=ee.expirationTime,u(N,ee);else break;ee=i(k)}}function q(H){if(j=!1,I(H),!T)if(i(N)!==null)T=!0,Pe(oe);else{var ee=i(k);ee!==null&&ye(q,ee.startTime-H)}}function oe(H,ee){T=!1,j&&(j=!1,$(we),we=-1),M=!0;var W=P;try{for(I(ee),E=i(N);E!==null&&(!(E.expirationTime>ee)||H&&!Ce());){var w=E.callback;if(typeof w=="function"){E.callback=null,P=E.priorityLevel;var b=w(E.expirationTime<=ee);ee=o.unstable_now(),typeof b=="function"?E.callback=b:E===i(N)&&c(N),I(ee)}else c(N);E=i(N)}if(E!==null)var V=!0;else{var G=i(k);G!==null&&ye(q,G.startTime-ee),V=!1}return V}finally{E=null,P=W,M=!1}}var te=!1,ce=null,we=-1,A=5,ae=-1;function Ce(){return!(o.unstable_now()-aeH||125w?(H.sortIndex=W,u(k,H),i(N)===null&&H===i(k)&&(j?($(we),we=-1):j=!0,ye(q,W-w))):(H.sortIndex=b,u(N,H),T||M||(T=!0,Pe(oe))),H},o.unstable_shouldYield=Ce,o.unstable_wrapCallback=function(H){var ee=P;return function(){var W=P;P=ee;try{return H.apply(this,arguments)}finally{P=W}}}})(Li)),Li}var ud;function Im(){return ud||(ud=1,Mi.exports=zm()),Mi.exports}/** - * @license React - * react-dom.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var cd;function Am(){if(cd)return ot;cd=1;var o=ea(),u=Im();function i(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,r=1;r"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),N=Object.prototype.hasOwnProperty,k=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,S={},E={};function P(e){return N.call(E,e)?!0:N.call(S,e)?!1:k.test(e)?E[e]=!0:(S[e]=!0,!1)}function M(e,t,r,n){if(r!==null&&r.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return n?!1:r!==null?!r.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function T(e,t,r,n){if(t===null||typeof t>"u"||M(e,t,r,n))return!0;if(n)return!1;if(r!==null)switch(r.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function j(e,t,r,n,l,a,d){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=n,this.attributeNamespace=l,this.mustUseProperty=r,this.propertyName=e,this.type=t,this.sanitizeURL=a,this.removeEmptyString=d}var L={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){L[e]=new j(e,0,!1,e,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];L[t]=new j(t,1,!1,e[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(e){L[e]=new j(e,2,!1,e.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){L[e]=new j(e,2,!1,e,null,!1,!1)}),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){L[e]=new j(e,3,!1,e.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(e){L[e]=new j(e,3,!0,e,null,!1,!1)}),["capture","download"].forEach(function(e){L[e]=new j(e,4,!1,e,null,!1,!1)}),["cols","rows","size","span"].forEach(function(e){L[e]=new j(e,6,!1,e,null,!1,!1)}),["rowSpan","start"].forEach(function(e){L[e]=new j(e,5,!1,e.toLowerCase(),null,!1,!1)});var $=/[\-:]([a-z])/g;function O(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace($,O);L[t]=new j(t,1,!1,e,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace($,O);L[t]=new j(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace($,O);L[t]=new j(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(e){L[e]=new j(e,1,!1,e.toLowerCase(),null,!1,!1)}),L.xlinkHref=new j("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(e){L[e]=new j(e,1,!1,e.toLowerCase(),null,!0,!0)});function I(e,t,r,n){var l=L.hasOwnProperty(t)?L[t]:null;(l!==null?l.type!==0:n||!(2v||l[d]!==a[v]){var x=` -`+l[d].replace(" at new "," at ");return e.displayName&&x.includes("")&&(x=x.replace("",e.displayName)),x}while(1<=d&&0<=v);break}}}finally{V=!1,Error.prepareStackTrace=r}return(e=e?e.displayName||e.name:"")?b(e):""}function B(e){switch(e.tag){case 5:return b(e.type);case 16:return b("Lazy");case 13:return b("Suspense");case 19:return b("SuspenseList");case 0:case 2:case 15:return e=G(e.type,!1),e;case 11:return e=G(e.type.render,!1),e;case 1:return e=G(e.type,!0),e;default:return""}}function Z(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case ce:return"Fragment";case te:return"Portal";case A:return"Profiler";case we:return"StrictMode";case ze:return"Suspense";case _e:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case Ce:return(e.displayName||"Context")+".Consumer";case ae:return(e._context.displayName||"Context")+".Provider";case ue:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Ie:return t=e.displayName||null,t!==null?t:Z(e.type)||"Memo";case Pe:t=e._payload,e=e._init;try{return Z(e(t))}catch{}}return null}function le(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Z(t);case 8:return t===we?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function fe(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function he(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function Ue(e){var t=he(e)?"checked":"value",r=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),n=""+e[t];if(!e.hasOwnProperty(t)&&typeof r<"u"&&typeof r.get=="function"&&typeof r.set=="function"){var l=r.get,a=r.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return l.call(this)},set:function(d){n=""+d,a.call(this,d)}}),Object.defineProperty(e,t,{enumerable:r.enumerable}),{getValue:function(){return n},setValue:function(d){n=""+d},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function oo(e){e._valueTracker||(e._valueTracker=Ue(e))}function ca(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var r=t.getValue(),n="";return e&&(n=he(e)?e.checked?"true":"false":e.value),e=n,e!==r?(t.setValue(e),!0):!1}function lo(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function Dl(e,t){var r=t.checked;return W({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:r??e._wrapperState.initialChecked})}function da(e,t){var r=t.defaultValue==null?"":t.defaultValue,n=t.checked!=null?t.checked:t.defaultChecked;r=fe(t.value!=null?t.value:r),e._wrapperState={initialChecked:n,initialValue:r,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function fa(e,t){t=t.checked,t!=null&&I(e,"checked",t,!1)}function zl(e,t){fa(e,t);var r=fe(t.value),n=t.type;if(r!=null)n==="number"?(r===0&&e.value===""||e.value!=r)&&(e.value=""+r):e.value!==""+r&&(e.value=""+r);else if(n==="submit"||n==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?Il(e,t.type,r):t.hasOwnProperty("defaultValue")&&Il(e,t.type,fe(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function pa(e,t,r){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var n=t.type;if(!(n!=="submit"&&n!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,r||t===e.value||(e.value=t),e.defaultValue=t}r=e.name,r!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,r!==""&&(e.name=r)}function Il(e,t,r){(t!=="number"||lo(e.ownerDocument)!==e)&&(r==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+r&&(e.defaultValue=""+r))}var fn=Array.isArray;function _r(e,t,r,n){if(e=e.options,t){t={};for(var l=0;l"+t.valueOf().toString()+"",t=so.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function pn(e,t){if(t){var r=e.firstChild;if(r&&r===e.lastChild&&r.nodeType===3){r.nodeValue=t;return}}e.textContent=t}var mn={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},zf=["Webkit","ms","Moz","O"];Object.keys(mn).forEach(function(e){zf.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),mn[t]=mn[e]})});function ya(e,t,r){return t==null||typeof t=="boolean"||t===""?"":r||typeof t!="number"||t===0||mn.hasOwnProperty(e)&&mn[e]?(""+t).trim():t+"px"}function ba(e,t){e=e.style;for(var r in t)if(t.hasOwnProperty(r)){var n=r.indexOf("--")===0,l=ya(r,t[r],n);r==="float"&&(r="cssFloat"),n?e.setProperty(r,l):e[r]=l}}var If=W({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Ul(e,t){if(t){if(If[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(i(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(i(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(i(61))}if(t.style!=null&&typeof t.style!="object")throw Error(i(62))}}function $l(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Bl=null;function Vl(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Hl=null,Pr=null,Rr=null;function wa(e){if(e=zn(e)){if(typeof Hl!="function")throw Error(i(280));var t=e.stateNode;t&&(t=Ro(t),Hl(e.stateNode,e.type,t))}}function ka(e){Pr?Rr?Rr.push(e):Rr=[e]:Pr=e}function Sa(){if(Pr){var e=Pr,t=Rr;if(Rr=Pr=null,wa(e),t)for(e=0;e>>=0,e===0?32:31-(Qf(e)/qf|0)|0}var fo=64,po=4194304;function xn(e){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:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function mo(e,t){var r=e.pendingLanes;if(r===0)return 0;var n=0,l=e.suspendedLanes,a=e.pingedLanes,d=r&268435455;if(d!==0){var v=d&~l;v!==0?n=xn(v):(a&=d,a!==0&&(n=xn(a)))}else d=r&~l,d!==0?n=xn(d):a!==0&&(n=xn(a));if(n===0)return 0;if(t!==0&&t!==n&&(t&l)===0&&(l=n&-n,a=t&-t,l>=a||l===16&&(a&4194240)!==0))return t;if((n&4)!==0&&(n|=r&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=n;0r;r++)t.push(e);return t}function yn(e,t,r){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-ht(t),e[t]=r}function Jf(e,t){var r=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var n=e.eventTimes;for(e=e.expirationTimes;0=Cn),Xa=" ",Za=!1;function Ja(e,t){switch(e){case"keyup":return Cp.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function eu(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Tr=!1;function Pp(e,t){switch(e){case"compositionend":return eu(t);case"keypress":return t.which!==32?null:(Za=!0,Xa);case"textInput":return e=t.data,e===Xa&&Za?null:e;default:return null}}function Rp(e,t){if(Tr)return e==="compositionend"||!as&&Ja(e,t)?(e=Wa(),yo=rs=Ht=null,Tr=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=iu(r)}}function uu(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?uu(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function cu(){for(var e=window,t=lo();t instanceof e.HTMLIFrameElement;){try{var r=typeof t.contentWindow.location.href=="string"}catch{r=!1}if(r)e=t.contentWindow;else break;t=lo(e.document)}return t}function ds(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")}function Fp(e){var t=cu(),r=e.focusedElem,n=e.selectionRange;if(t!==r&&r&&r.ownerDocument&&uu(r.ownerDocument.documentElement,r)){if(n!==null&&ds(r)){if(t=n.start,e=n.end,e===void 0&&(e=t),"selectionStart"in r)r.selectionStart=t,r.selectionEnd=Math.min(e,r.value.length);else if(e=(t=r.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var l=r.textContent.length,a=Math.min(n.start,l);n=n.end===void 0?a:Math.min(n.end,l),!e.extend&&a>n&&(l=n,n=a,a=l),l=au(r,a);var d=au(r,n);l&&d&&(e.rangeCount!==1||e.anchorNode!==l.node||e.anchorOffset!==l.offset||e.focusNode!==d.node||e.focusOffset!==d.offset)&&(t=t.createRange(),t.setStart(l.node,l.offset),e.removeAllRanges(),a>n?(e.addRange(t),e.extend(d.node,d.offset)):(t.setEnd(d.node,d.offset),e.addRange(t)))}}for(t=[],e=r;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof r.focus=="function"&&r.focus(),r=0;r=document.documentMode,Or=null,fs=null,Mn=null,ps=!1;function du(e,t,r){var n=r.window===r?r.document:r.nodeType===9?r:r.ownerDocument;ps||Or==null||Or!==lo(n)||(n=Or,"selectionStart"in n&&ds(n)?n={start:n.selectionStart,end:n.selectionEnd}:(n=(n.ownerDocument&&n.ownerDocument.defaultView||window).getSelection(),n={anchorNode:n.anchorNode,anchorOffset:n.anchorOffset,focusNode:n.focusNode,focusOffset:n.focusOffset}),Mn&&Rn(Mn,n)||(Mn=n,n=Co(fs,"onSelect"),0Fr||(e.current=js[Fr],js[Fr]=null,Fr--)}function ke(e,t){Fr++,js[Fr]=e.current,e.current=t}var Qt={},Ke=Kt(Qt),Je=Kt(!1),pr=Qt;function Ur(e,t){var r=e.type.contextTypes;if(!r)return Qt;var n=e.stateNode;if(n&&n.__reactInternalMemoizedUnmaskedChildContext===t)return n.__reactInternalMemoizedMaskedChildContext;var l={},a;for(a in r)l[a]=t[a];return n&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=l),l}function et(e){return e=e.childContextTypes,e!=null}function Mo(){Ne(Je),Ne(Ke)}function Eu(e,t,r){if(Ke.current!==Qt)throw Error(i(168));ke(Ke,t),ke(Je,r)}function Cu(e,t,r){var n=e.stateNode;if(t=t.childContextTypes,typeof n.getChildContext!="function")return r;n=n.getChildContext();for(var l in n)if(!(l in t))throw Error(i(108,le(e)||"Unknown",l));return W({},r,n)}function Lo(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Qt,pr=Ke.current,ke(Ke,e),ke(Je,Je.current),!0}function _u(e,t,r){var n=e.stateNode;if(!n)throw Error(i(169));r?(e=Cu(e,t,pr),n.__reactInternalMemoizedMergedChildContext=e,Ne(Je),Ne(Ke),ke(Ke,e)):Ne(Je),ke(Je,r)}var Mt=null,To=!1,Es=!1;function Pu(e){Mt===null?Mt=[e]:Mt.push(e)}function Xp(e){To=!0,Pu(e)}function qt(){if(!Es&&Mt!==null){Es=!0;var e=0,t=be;try{var r=Mt;for(be=1;e>=d,l-=d,Lt=1<<32-ht(t)+l|r<se?(Ve=ne,ne=null):Ve=ne.sibling;var xe=D(C,ne,_[se],U);if(xe===null){ne===null&&(ne=Ve);break}e&&ne&&xe.alternate===null&&t(C,ne),y=a(xe,y,se),re===null?J=xe:re.sibling=xe,re=xe,ne=Ve}if(se===_.length)return r(C,ne),Ee&&hr(C,se),J;if(ne===null){for(;se<_.length;se++)ne=F(C,_[se],U),ne!==null&&(y=a(ne,y,se),re===null?J=ne:re.sibling=ne,re=ne);return Ee&&hr(C,se),J}for(ne=n(C,ne);se<_.length;se++)Ve=K(ne,C,se,_[se],U),Ve!==null&&(e&&Ve.alternate!==null&&ne.delete(Ve.key===null?se:Ve.key),y=a(Ve,y,se),re===null?J=Ve:re.sibling=Ve,re=Ve);return e&&ne.forEach(function(or){return t(C,or)}),Ee&&hr(C,se),J}function X(C,y,_,U){var J=ee(_);if(typeof J!="function")throw Error(i(150));if(_=J.call(_),_==null)throw Error(i(151));for(var re=J=null,ne=y,se=y=0,Ve=null,xe=_.next();ne!==null&&!xe.done;se++,xe=_.next()){ne.index>se?(Ve=ne,ne=null):Ve=ne.sibling;var or=D(C,ne,xe.value,U);if(or===null){ne===null&&(ne=Ve);break}e&&ne&&or.alternate===null&&t(C,ne),y=a(or,y,se),re===null?J=or:re.sibling=or,re=or,ne=Ve}if(xe.done)return r(C,ne),Ee&&hr(C,se),J;if(ne===null){for(;!xe.done;se++,xe=_.next())xe=F(C,xe.value,U),xe!==null&&(y=a(xe,y,se),re===null?J=xe:re.sibling=xe,re=xe);return Ee&&hr(C,se),J}for(ne=n(C,ne);!xe.done;se++,xe=_.next())xe=K(ne,C,se,xe.value,U),xe!==null&&(e&&xe.alternate!==null&&ne.delete(xe.key===null?se:xe.key),y=a(xe,y,se),re===null?J=xe:re.sibling=xe,re=xe);return e&&ne.forEach(function(Mm){return t(C,Mm)}),Ee&&hr(C,se),J}function Oe(C,y,_,U){if(typeof _=="object"&&_!==null&&_.type===ce&&_.key===null&&(_=_.props.children),typeof _=="object"&&_!==null){switch(_.$$typeof){case oe:e:{for(var J=_.key,re=y;re!==null;){if(re.key===J){if(J=_.type,J===ce){if(re.tag===7){r(C,re.sibling),y=l(re,_.props.children),y.return=C,C=y;break e}}else if(re.elementType===J||typeof J=="object"&&J!==null&&J.$$typeof===Pe&&Du(J)===re.type){r(C,re.sibling),y=l(re,_.props),y.ref=In(C,re,_),y.return=C,C=y;break e}r(C,re);break}else t(C,re);re=re.sibling}_.type===ce?(y=Sr(_.props.children,C.mode,U,_.key),y.return=C,C=y):(U=il(_.type,_.key,_.props,null,C.mode,U),U.ref=In(C,y,_),U.return=C,C=U)}return d(C);case te:e:{for(re=_.key;y!==null;){if(y.key===re)if(y.tag===4&&y.stateNode.containerInfo===_.containerInfo&&y.stateNode.implementation===_.implementation){r(C,y.sibling),y=l(y,_.children||[]),y.return=C,C=y;break e}else{r(C,y);break}else t(C,y);y=y.sibling}y=Si(_,C.mode,U),y.return=C,C=y}return d(C);case Pe:return re=_._init,Oe(C,y,re(_._payload),U)}if(fn(_))return Y(C,y,_,U);if(ee(_))return X(C,y,_,U);Io(C,_)}return typeof _=="string"&&_!==""||typeof _=="number"?(_=""+_,y!==null&&y.tag===6?(r(C,y.sibling),y=l(y,_),y.return=C,C=y):(r(C,y),y=ki(_,C.mode,U),y.return=C,C=y),d(C)):r(C,y)}return Oe}var Hr=zu(!0),Iu=zu(!1),Ao=Kt(null),Fo=null,Wr=null,Ls=null;function Ts(){Ls=Wr=Fo=null}function Os(e){var t=Ao.current;Ne(Ao),e._currentValue=t}function Ds(e,t,r){for(;e!==null;){var n=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,n!==null&&(n.childLanes|=t)):n!==null&&(n.childLanes&t)!==t&&(n.childLanes|=t),e===r)break;e=e.return}}function Gr(e,t){Fo=e,Ls=Wr=null,e=e.dependencies,e!==null&&e.firstContext!==null&&((e.lanes&t)!==0&&(tt=!0),e.firstContext=null)}function dt(e){var t=e._currentValue;if(Ls!==e)if(e={context:e,memoizedValue:t,next:null},Wr===null){if(Fo===null)throw Error(i(308));Wr=e,Fo.dependencies={lanes:0,firstContext:e}}else Wr=Wr.next=e;return t}var gr=null;function zs(e){gr===null?gr=[e]:gr.push(e)}function Au(e,t,r,n){var l=t.interleaved;return l===null?(r.next=r,zs(t)):(r.next=l.next,l.next=r),t.interleaved=r,Ot(e,n)}function Ot(e,t){e.lanes|=t;var r=e.alternate;for(r!==null&&(r.lanes|=t),r=e,e=e.return;e!==null;)e.childLanes|=t,r=e.alternate,r!==null&&(r.childLanes|=t),r=e,e=e.return;return r.tag===3?r.stateNode:null}var Yt=!1;function Is(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Fu(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function Dt(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Xt(e,t,r){var n=e.updateQueue;if(n===null)return null;if(n=n.shared,(ve&2)!==0){var l=n.pending;return l===null?t.next=t:(t.next=l.next,l.next=t),n.pending=t,Ot(e,r)}return l=n.interleaved,l===null?(t.next=t,zs(n)):(t.next=l.next,l.next=t),n.interleaved=t,Ot(e,r)}function Uo(e,t,r){if(t=t.updateQueue,t!==null&&(t=t.shared,(r&4194240)!==0)){var n=t.lanes;n&=e.pendingLanes,r|=n,t.lanes=r,Xl(e,r)}}function Uu(e,t){var r=e.updateQueue,n=e.alternate;if(n!==null&&(n=n.updateQueue,r===n)){var l=null,a=null;if(r=r.firstBaseUpdate,r!==null){do{var d={eventTime:r.eventTime,lane:r.lane,tag:r.tag,payload:r.payload,callback:r.callback,next:null};a===null?l=a=d:a=a.next=d,r=r.next}while(r!==null);a===null?l=a=t:a=a.next=t}else l=a=t;r={baseState:n.baseState,firstBaseUpdate:l,lastBaseUpdate:a,shared:n.shared,effects:n.effects},e.updateQueue=r;return}e=r.lastBaseUpdate,e===null?r.firstBaseUpdate=t:e.next=t,r.lastBaseUpdate=t}function $o(e,t,r,n){var l=e.updateQueue;Yt=!1;var a=l.firstBaseUpdate,d=l.lastBaseUpdate,v=l.shared.pending;if(v!==null){l.shared.pending=null;var x=v,R=x.next;x.next=null,d===null?a=R:d.next=R,d=x;var z=e.alternate;z!==null&&(z=z.updateQueue,v=z.lastBaseUpdate,v!==d&&(v===null?z.firstBaseUpdate=R:v.next=R,z.lastBaseUpdate=x))}if(a!==null){var F=l.baseState;d=0,z=R=x=null,v=a;do{var D=v.lane,K=v.eventTime;if((n&D)===D){z!==null&&(z=z.next={eventTime:K,lane:0,tag:v.tag,payload:v.payload,callback:v.callback,next:null});e:{var Y=e,X=v;switch(D=t,K=r,X.tag){case 1:if(Y=X.payload,typeof Y=="function"){F=Y.call(K,F,D);break e}F=Y;break e;case 3:Y.flags=Y.flags&-65537|128;case 0:if(Y=X.payload,D=typeof Y=="function"?Y.call(K,F,D):Y,D==null)break e;F=W({},F,D);break e;case 2:Yt=!0}}v.callback!==null&&v.lane!==0&&(e.flags|=64,D=l.effects,D===null?l.effects=[v]:D.push(v))}else K={eventTime:K,lane:D,tag:v.tag,payload:v.payload,callback:v.callback,next:null},z===null?(R=z=K,x=F):z=z.next=K,d|=D;if(v=v.next,v===null){if(v=l.shared.pending,v===null)break;D=v,v=D.next,D.next=null,l.lastBaseUpdate=D,l.shared.pending=null}}while(!0);if(z===null&&(x=F),l.baseState=x,l.firstBaseUpdate=R,l.lastBaseUpdate=z,t=l.shared.interleaved,t!==null){l=t;do d|=l.lane,l=l.next;while(l!==t)}else a===null&&(l.shared.lanes=0);yr|=d,e.lanes=d,e.memoizedState=F}}function $u(e,t,r){if(e=t.effects,t.effects=null,e!==null)for(t=0;tr?r:4,e(!0);var n=Bs.transition;Bs.transition={};try{e(!1),t()}finally{be=r,Bs.transition=n}}function sc(){return ft().memoizedState}function tm(e,t,r){var n=tr(e);if(r={lane:n,action:r,hasEagerState:!1,eagerState:null,next:null},ic(e))ac(t,r);else if(r=Au(e,t,r,n),r!==null){var l=Ze();wt(r,e,n,l),uc(r,t,n)}}function rm(e,t,r){var n=tr(e),l={lane:n,action:r,hasEagerState:!1,eagerState:null,next:null};if(ic(e))ac(t,l);else{var a=e.alternate;if(e.lanes===0&&(a===null||a.lanes===0)&&(a=t.lastRenderedReducer,a!==null))try{var d=t.lastRenderedState,v=a(d,r);if(l.hasEagerState=!0,l.eagerState=v,gt(v,d)){var x=t.interleaved;x===null?(l.next=l,zs(t)):(l.next=x.next,x.next=l),t.interleaved=l;return}}catch{}finally{}r=Au(e,t,l,n),r!==null&&(l=Ze(),wt(r,e,n,l),uc(r,t,n))}}function ic(e){var t=e.alternate;return e===Me||t!==null&&t===Me}function ac(e,t){$n=Ho=!0;var r=e.pending;r===null?t.next=t:(t.next=r.next,r.next=t),e.pending=t}function uc(e,t,r){if((r&4194240)!==0){var n=t.lanes;n&=e.pendingLanes,r|=n,t.lanes=r,Xl(e,r)}}var Ko={readContext:dt,useCallback:Qe,useContext:Qe,useEffect:Qe,useImperativeHandle:Qe,useInsertionEffect:Qe,useLayoutEffect:Qe,useMemo:Qe,useReducer:Qe,useRef:Qe,useState:Qe,useDebugValue:Qe,useDeferredValue:Qe,useTransition:Qe,useMutableSource:Qe,useSyncExternalStore:Qe,useId:Qe,unstable_isNewReconciler:!1},nm={readContext:dt,useCallback:function(e,t){return Et().memoizedState=[e,t===void 0?null:t],e},useContext:dt,useEffect:Zu,useImperativeHandle:function(e,t,r){return r=r!=null?r.concat([e]):null,Wo(4194308,4,tc.bind(null,t,e),r)},useLayoutEffect:function(e,t){return Wo(4194308,4,e,t)},useInsertionEffect:function(e,t){return Wo(4,2,e,t)},useMemo:function(e,t){var r=Et();return t=t===void 0?null:t,e=e(),r.memoizedState=[e,t],e},useReducer:function(e,t,r){var n=Et();return t=r!==void 0?r(t):t,n.memoizedState=n.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},n.queue=e,e=e.dispatch=tm.bind(null,Me,e),[n.memoizedState,e]},useRef:function(e){var t=Et();return e={current:e},t.memoizedState=e},useState:Yu,useDebugValue:qs,useDeferredValue:function(e){return Et().memoizedState=e},useTransition:function(){var e=Yu(!1),t=e[0];return e=em.bind(null,e[1]),Et().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,r){var n=Me,l=Et();if(Ee){if(r===void 0)throw Error(i(407));r=r()}else{if(r=t(),Be===null)throw Error(i(349));(xr&30)!==0||Wu(n,t,r)}l.memoizedState=r;var a={value:r,getSnapshot:t};return l.queue=a,Zu(Ku.bind(null,n,a,e),[e]),n.flags|=2048,Hn(9,Gu.bind(null,n,a,r,t),void 0,null),r},useId:function(){var e=Et(),t=Be.identifierPrefix;if(Ee){var r=Tt,n=Lt;r=(n&~(1<<32-ht(n)-1)).toString(32)+r,t=":"+t+"R"+r,r=Bn++,0<\/script>",e=e.removeChild(e.firstChild)):typeof n.is=="string"?e=d.createElement(r,{is:n.is}):(e=d.createElement(r),r==="select"&&(d=e,n.multiple?d.multiple=!0:n.size&&(d.size=n.size))):e=d.createElementNS(e,r),e[Nt]=t,e[Dn]=n,Pc(e,t,!1,!1),t.stateNode=e;e:{switch(d=$l(r,n),r){case"dialog":Se("cancel",e),Se("close",e),l=n;break;case"iframe":case"object":case"embed":Se("load",e),l=n;break;case"video":case"audio":for(l=0;lXr&&(t.flags|=128,n=!0,Wn(a,!1),t.lanes=4194304)}else{if(!n)if(e=Bo(d),e!==null){if(t.flags|=128,n=!0,r=e.updateQueue,r!==null&&(t.updateQueue=r,t.flags|=4),Wn(a,!0),a.tail===null&&a.tailMode==="hidden"&&!d.alternate&&!Ee)return qe(t),null}else 2*Te()-a.renderingStartTime>Xr&&r!==1073741824&&(t.flags|=128,n=!0,Wn(a,!1),t.lanes=4194304);a.isBackwards?(d.sibling=t.child,t.child=d):(r=a.last,r!==null?r.sibling=d:t.child=d,a.last=d)}return a.tail!==null?(t=a.tail,a.rendering=t,a.tail=t.sibling,a.renderingStartTime=Te(),t.sibling=null,r=Re.current,ke(Re,n?r&1|2:r&1),t):(qe(t),null);case 22:case 23:return yi(),n=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==n&&(t.flags|=8192),n&&(t.mode&1)!==0?(at&1073741824)!==0&&(qe(t),t.subtreeFlags&6&&(t.flags|=8192)):qe(t),null;case 24:return null;case 25:return null}throw Error(i(156,t.tag))}function dm(e,t){switch(_s(t),t.tag){case 1:return et(t.type)&&Mo(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Kr(),Ne(Je),Ne(Ke),$s(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 5:return Fs(t),null;case 13:if(Ne(Re),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(i(340));Vr()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return Ne(Re),null;case 4:return Kr(),null;case 10:return Os(t.type._context),null;case 22:case 23:return yi(),null;case 24:return null;default:return null}}var Xo=!1,Ye=!1,fm=typeof WeakSet=="function"?WeakSet:Set,Q=null;function qr(e,t){var r=e.ref;if(r!==null)if(typeof r=="function")try{r(null)}catch(n){Le(e,t,n)}else r.current=null}function ii(e,t,r){try{r()}catch(n){Le(e,t,n)}}var Lc=!1;function pm(e,t){if(ys=vo,e=cu(),ds(e)){if("selectionStart"in e)var r={start:e.selectionStart,end:e.selectionEnd};else e:{r=(r=e.ownerDocument)&&r.defaultView||window;var n=r.getSelection&&r.getSelection();if(n&&n.rangeCount!==0){r=n.anchorNode;var l=n.anchorOffset,a=n.focusNode;n=n.focusOffset;try{r.nodeType,a.nodeType}catch{r=null;break e}var d=0,v=-1,x=-1,R=0,z=0,F=e,D=null;t:for(;;){for(var K;F!==r||l!==0&&F.nodeType!==3||(v=d+l),F!==a||n!==0&&F.nodeType!==3||(x=d+n),F.nodeType===3&&(d+=F.nodeValue.length),(K=F.firstChild)!==null;)D=F,F=K;for(;;){if(F===e)break t;if(D===r&&++R===l&&(v=d),D===a&&++z===n&&(x=d),(K=F.nextSibling)!==null)break;F=D,D=F.parentNode}F=K}r=v===-1||x===-1?null:{start:v,end:x}}else r=null}r=r||{start:0,end:0}}else r=null;for(bs={focusedElem:e,selectionRange:r},vo=!1,Q=t;Q!==null;)if(t=Q,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,Q=e;else for(;Q!==null;){t=Q;try{var Y=t.alternate;if((t.flags&1024)!==0)switch(t.tag){case 0:case 11:case 15:break;case 1:if(Y!==null){var X=Y.memoizedProps,Oe=Y.memoizedState,C=t.stateNode,y=C.getSnapshotBeforeUpdate(t.elementType===t.type?X:xt(t.type,X),Oe);C.__reactInternalSnapshotBeforeUpdate=y}break;case 3:var _=t.stateNode.containerInfo;_.nodeType===1?_.textContent="":_.nodeType===9&&_.documentElement&&_.removeChild(_.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(i(163))}}catch(U){Le(t,t.return,U)}if(e=t.sibling,e!==null){e.return=t.return,Q=e;break}Q=t.return}return Y=Lc,Lc=!1,Y}function Gn(e,t,r){var n=t.updateQueue;if(n=n!==null?n.lastEffect:null,n!==null){var l=n=n.next;do{if((l.tag&e)===e){var a=l.destroy;l.destroy=void 0,a!==void 0&&ii(t,r,a)}l=l.next}while(l!==n)}}function Zo(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var r=t=t.next;do{if((r.tag&e)===e){var n=r.create;r.destroy=n()}r=r.next}while(r!==t)}}function ai(e){var t=e.ref;if(t!==null){var r=e.stateNode;switch(e.tag){case 5:e=r;break;default:e=r}typeof t=="function"?t(e):t.current=e}}function Tc(e){var t=e.alternate;t!==null&&(e.alternate=null,Tc(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Nt],delete t[Dn],delete t[Ns],delete t[qp],delete t[Yp])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function Oc(e){return e.tag===5||e.tag===3||e.tag===4}function Dc(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Oc(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function ui(e,t,r){var n=e.tag;if(n===5||n===6)e=e.stateNode,t?r.nodeType===8?r.parentNode.insertBefore(e,t):r.insertBefore(e,t):(r.nodeType===8?(t=r.parentNode,t.insertBefore(e,r)):(t=r,t.appendChild(e)),r=r._reactRootContainer,r!=null||t.onclick!==null||(t.onclick=Po));else if(n!==4&&(e=e.child,e!==null))for(ui(e,t,r),e=e.sibling;e!==null;)ui(e,t,r),e=e.sibling}function ci(e,t,r){var n=e.tag;if(n===5||n===6)e=e.stateNode,t?r.insertBefore(e,t):r.appendChild(e);else if(n!==4&&(e=e.child,e!==null))for(ci(e,t,r),e=e.sibling;e!==null;)ci(e,t,r),e=e.sibling}var He=null,yt=!1;function Zt(e,t,r){for(r=r.child;r!==null;)zc(e,t,r),r=r.sibling}function zc(e,t,r){if(St&&typeof St.onCommitFiberUnmount=="function")try{St.onCommitFiberUnmount(co,r)}catch{}switch(r.tag){case 5:Ye||qr(r,t);case 6:var n=He,l=yt;He=null,Zt(e,t,r),He=n,yt=l,He!==null&&(yt?(e=He,r=r.stateNode,e.nodeType===8?e.parentNode.removeChild(r):e.removeChild(r)):He.removeChild(r.stateNode));break;case 18:He!==null&&(yt?(e=He,r=r.stateNode,e.nodeType===8?Ss(e.parentNode,r):e.nodeType===1&&Ss(e,r),Nn(e)):Ss(He,r.stateNode));break;case 4:n=He,l=yt,He=r.stateNode.containerInfo,yt=!0,Zt(e,t,r),He=n,yt=l;break;case 0:case 11:case 14:case 15:if(!Ye&&(n=r.updateQueue,n!==null&&(n=n.lastEffect,n!==null))){l=n=n.next;do{var a=l,d=a.destroy;a=a.tag,d!==void 0&&((a&2)!==0||(a&4)!==0)&&ii(r,t,d),l=l.next}while(l!==n)}Zt(e,t,r);break;case 1:if(!Ye&&(qr(r,t),n=r.stateNode,typeof n.componentWillUnmount=="function"))try{n.props=r.memoizedProps,n.state=r.memoizedState,n.componentWillUnmount()}catch(v){Le(r,t,v)}Zt(e,t,r);break;case 21:Zt(e,t,r);break;case 22:r.mode&1?(Ye=(n=Ye)||r.memoizedState!==null,Zt(e,t,r),Ye=n):Zt(e,t,r);break;default:Zt(e,t,r)}}function Ic(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var r=e.stateNode;r===null&&(r=e.stateNode=new fm),t.forEach(function(n){var l=km.bind(null,e,n);r.has(n)||(r.add(n),n.then(l,l))})}}function bt(e,t){var r=t.deletions;if(r!==null)for(var n=0;nl&&(l=d),n&=~a}if(n=l,n=Te()-n,n=(120>n?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*hm(n/1960))-n,10e?16:e,er===null)var n=!1;else{if(e=er,er=null,nl=0,(ve&6)!==0)throw Error(i(331));var l=ve;for(ve|=4,Q=e.current;Q!==null;){var a=Q,d=a.child;if((Q.flags&16)!==0){var v=a.deletions;if(v!==null){for(var x=0;xTe()-pi?wr(e,0):fi|=r),nt(e,t)}function Yc(e,t){t===0&&((e.mode&1)===0?t=1:(t=po,po<<=1,(po&130023424)===0&&(po=4194304)));var r=Ze();e=Ot(e,t),e!==null&&(yn(e,t,r),nt(e,r))}function wm(e){var t=e.memoizedState,r=0;t!==null&&(r=t.retryLane),Yc(e,r)}function km(e,t){var r=0;switch(e.tag){case 13:var n=e.stateNode,l=e.memoizedState;l!==null&&(r=l.retryLane);break;case 19:n=e.stateNode;break;default:throw Error(i(314))}n!==null&&n.delete(t),Yc(e,r)}var Xc;Xc=function(e,t,r){if(e!==null)if(e.memoizedProps!==t.pendingProps||Je.current)tt=!0;else{if((e.lanes&r)===0&&(t.flags&128)===0)return tt=!1,um(e,t,r);tt=(e.flags&131072)!==0}else tt=!1,Ee&&(t.flags&1048576)!==0&&Ru(t,Do,t.index);switch(t.lanes=0,t.tag){case 2:var n=t.type;Yo(e,t),e=t.pendingProps;var l=Ur(t,Ke.current);Gr(t,r),l=Hs(null,t,n,e,l,r);var a=Ws();return t.flags|=1,typeof l=="object"&&l!==null&&typeof l.render=="function"&&l.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,et(n)?(a=!0,Lo(t)):a=!1,t.memoizedState=l.state!==null&&l.state!==void 0?l.state:null,Is(t),l.updater=Qo,t.stateNode=l,l._reactInternals=t,Xs(t,n,e,r),t=ti(null,t,n,!0,a,r)):(t.tag=0,Ee&&a&&Cs(t),Xe(null,t,l,r),t=t.child),t;case 16:n=t.elementType;e:{switch(Yo(e,t),e=t.pendingProps,l=n._init,n=l(n._payload),t.type=n,l=t.tag=Nm(n),e=xt(n,e),l){case 0:t=ei(null,t,n,e,r);break e;case 1:t=Sc(null,t,n,e,r);break e;case 11:t=xc(null,t,n,e,r);break e;case 14:t=yc(null,t,n,xt(n.type,e),r);break e}throw Error(i(306,n,""))}return t;case 0:return n=t.type,l=t.pendingProps,l=t.elementType===n?l:xt(n,l),ei(e,t,n,l,r);case 1:return n=t.type,l=t.pendingProps,l=t.elementType===n?l:xt(n,l),Sc(e,t,n,l,r);case 3:e:{if(Nc(t),e===null)throw Error(i(387));n=t.pendingProps,a=t.memoizedState,l=a.element,Fu(e,t),$o(t,n,null,r);var d=t.memoizedState;if(n=d.element,a.isDehydrated)if(a={element:n,isDehydrated:!1,cache:d.cache,pendingSuspenseBoundaries:d.pendingSuspenseBoundaries,transitions:d.transitions},t.updateQueue.baseState=a,t.memoizedState=a,t.flags&256){l=Qr(Error(i(423)),t),t=jc(e,t,n,r,l);break e}else if(n!==l){l=Qr(Error(i(424)),t),t=jc(e,t,n,r,l);break e}else for(it=Gt(t.stateNode.containerInfo.firstChild),st=t,Ee=!0,vt=null,r=Iu(t,null,n,r),t.child=r;r;)r.flags=r.flags&-3|4096,r=r.sibling;else{if(Vr(),n===l){t=zt(e,t,r);break e}Xe(e,t,n,r)}t=t.child}return t;case 5:return Bu(t),e===null&&Rs(t),n=t.type,l=t.pendingProps,a=e!==null?e.memoizedProps:null,d=l.children,ws(n,l)?d=null:a!==null&&ws(n,a)&&(t.flags|=32),kc(e,t),Xe(e,t,d,r),t.child;case 6:return e===null&&Rs(t),null;case 13:return Ec(e,t,r);case 4:return As(t,t.stateNode.containerInfo),n=t.pendingProps,e===null?t.child=Hr(t,null,n,r):Xe(e,t,n,r),t.child;case 11:return n=t.type,l=t.pendingProps,l=t.elementType===n?l:xt(n,l),xc(e,t,n,l,r);case 7:return Xe(e,t,t.pendingProps,r),t.child;case 8:return Xe(e,t,t.pendingProps.children,r),t.child;case 12:return Xe(e,t,t.pendingProps.children,r),t.child;case 10:e:{if(n=t.type._context,l=t.pendingProps,a=t.memoizedProps,d=l.value,ke(Ao,n._currentValue),n._currentValue=d,a!==null)if(gt(a.value,d)){if(a.children===l.children&&!Je.current){t=zt(e,t,r);break e}}else for(a=t.child,a!==null&&(a.return=t);a!==null;){var v=a.dependencies;if(v!==null){d=a.child;for(var x=v.firstContext;x!==null;){if(x.context===n){if(a.tag===1){x=Dt(-1,r&-r),x.tag=2;var R=a.updateQueue;if(R!==null){R=R.shared;var z=R.pending;z===null?x.next=x:(x.next=z.next,z.next=x),R.pending=x}}a.lanes|=r,x=a.alternate,x!==null&&(x.lanes|=r),Ds(a.return,r,t),v.lanes|=r;break}x=x.next}}else if(a.tag===10)d=a.type===t.type?null:a.child;else if(a.tag===18){if(d=a.return,d===null)throw Error(i(341));d.lanes|=r,v=d.alternate,v!==null&&(v.lanes|=r),Ds(d,r,t),d=a.sibling}else d=a.child;if(d!==null)d.return=a;else for(d=a;d!==null;){if(d===t){d=null;break}if(a=d.sibling,a!==null){a.return=d.return,d=a;break}d=d.return}a=d}Xe(e,t,l.children,r),t=t.child}return t;case 9:return l=t.type,n=t.pendingProps.children,Gr(t,r),l=dt(l),n=n(l),t.flags|=1,Xe(e,t,n,r),t.child;case 14:return n=t.type,l=xt(n,t.pendingProps),l=xt(n.type,l),yc(e,t,n,l,r);case 15:return bc(e,t,t.type,t.pendingProps,r);case 17:return n=t.type,l=t.pendingProps,l=t.elementType===n?l:xt(n,l),Yo(e,t),t.tag=1,et(n)?(e=!0,Lo(t)):e=!1,Gr(t,r),dc(t,n,l),Xs(t,n,l,r),ti(null,t,n,!0,e,r);case 19:return _c(e,t,r);case 22:return wc(e,t,r)}throw Error(i(156,t.tag))};function Zc(e,t){return Ma(e,t)}function Sm(e,t,r,n){this.tag=e,this.key=r,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=n,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function mt(e,t,r,n){return new Sm(e,t,r,n)}function wi(e){return e=e.prototype,!(!e||!e.isReactComponent)}function Nm(e){if(typeof e=="function")return wi(e)?1:0;if(e!=null){if(e=e.$$typeof,e===ue)return 11;if(e===Ie)return 14}return 2}function nr(e,t){var r=e.alternate;return r===null?(r=mt(e.tag,t,e.key,e.mode),r.elementType=e.elementType,r.type=e.type,r.stateNode=e.stateNode,r.alternate=e,e.alternate=r):(r.pendingProps=t,r.type=e.type,r.flags=0,r.subtreeFlags=0,r.deletions=null),r.flags=e.flags&14680064,r.childLanes=e.childLanes,r.lanes=e.lanes,r.child=e.child,r.memoizedProps=e.memoizedProps,r.memoizedState=e.memoizedState,r.updateQueue=e.updateQueue,t=e.dependencies,r.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},r.sibling=e.sibling,r.index=e.index,r.ref=e.ref,r}function il(e,t,r,n,l,a){var d=2;if(n=e,typeof e=="function")wi(e)&&(d=1);else if(typeof e=="string")d=5;else e:switch(e){case ce:return Sr(r.children,l,a,t);case we:d=8,l|=8;break;case A:return e=mt(12,r,t,l|2),e.elementType=A,e.lanes=a,e;case ze:return e=mt(13,r,t,l),e.elementType=ze,e.lanes=a,e;case _e:return e=mt(19,r,t,l),e.elementType=_e,e.lanes=a,e;case ye:return al(r,l,a,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case ae:d=10;break e;case Ce:d=9;break e;case ue:d=11;break e;case Ie:d=14;break e;case Pe:d=16,n=null;break e}throw Error(i(130,e==null?e:typeof e,""))}return t=mt(d,r,t,l),t.elementType=e,t.type=n,t.lanes=a,t}function Sr(e,t,r,n){return e=mt(7,e,n,t),e.lanes=r,e}function al(e,t,r,n){return e=mt(22,e,n,t),e.elementType=ye,e.lanes=r,e.stateNode={isHidden:!1},e}function ki(e,t,r){return e=mt(6,e,null,t),e.lanes=r,e}function Si(e,t,r){return t=mt(4,e.children!==null?e.children:[],e.key,t),t.lanes=r,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function jm(e,t,r,n,l){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Yl(0),this.expirationTimes=Yl(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Yl(0),this.identifierPrefix=n,this.onRecoverableError=l,this.mutableSourceEagerHydrationData=null}function Ni(e,t,r,n,l,a,d,v,x){return e=new jm(e,t,r,v,x),t===1?(t=1,a===!0&&(t|=8)):t=0,a=mt(3,null,null,t),e.current=a,a.stateNode=e,a.memoizedState={element:n,isDehydrated:r,cache:null,transitions:null,pendingSuspenseBoundaries:null},Is(a),e}function Em(e,t,r){var n=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(o)}catch(u){console.error(u)}}return o(),Ri.exports=Am(),Ri.exports}var fd;function Fm(){if(fd)return hl;fd=1;var o=Ad();return hl.createRoot=o.createRoot,hl.hydrateRoot=o.hydrateRoot,hl}var Um=Fm();const $m=zd(Um);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Bm=o=>o.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),Fd=(...o)=>o.filter((u,i,c)=>!!u&&u.trim()!==""&&c.indexOf(u)===i).join(" ").trim();/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */var Vm={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Hm=h.forwardRef(({color:o="currentColor",size:u=24,strokeWidth:i=2,absoluteStrokeWidth:c,className:f="",children:p,iconNode:m,...g},N)=>h.createElement("svg",{ref:N,...Vm,width:u,height:u,stroke:o,strokeWidth:c?Number(i)*24/Number(u):i,className:Fd("lucide",f),...g},[...m.map(([k,S])=>h.createElement(k,S)),...Array.isArray(p)?p:[p]]));/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const ie=(o,u)=>{const i=h.forwardRef(({className:c,...f},p)=>h.createElement(Hm,{ref:p,iconNode:u,className:Fd(`lucide-${Bm(o)}`,c),...f}));return i.displayName=`${o}`,i};/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const ra=ie("Activity",[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const gl=ie("ArrowRight",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Wm=ie("BookOpen",[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const na=ie("Bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Gm=ie("Boxes",[["path",{d:"M2.97 12.92A2 2 0 0 0 2 14.63v3.24a2 2 0 0 0 .97 1.71l3 1.8a2 2 0 0 0 2.06 0L12 19v-5.5l-5-3-4.03 2.42Z",key:"lc1i9w"}],["path",{d:"m7 16.5-4.74-2.85",key:"1o9zyk"}],["path",{d:"m7 16.5 5-3",key:"va8pkn"}],["path",{d:"M7 16.5v5.17",key:"jnp8gn"}],["path",{d:"M12 13.5V19l3.97 2.38a2 2 0 0 0 2.06 0l3-1.8a2 2 0 0 0 .97-1.71v-3.24a2 2 0 0 0-.97-1.71L17 10.5l-5 3Z",key:"8zsnat"}],["path",{d:"m17 16.5-5-3",key:"8arw3v"}],["path",{d:"m17 16.5 4.74-2.85",key:"8rfmw"}],["path",{d:"M17 16.5v5.17",key:"k6z78m"}],["path",{d:"M7.97 4.42A2 2 0 0 0 7 6.13v4.37l5 3 5-3V6.13a2 2 0 0 0-.97-1.71l-3-1.8a2 2 0 0 0-2.06 0l-3 1.8Z",key:"1xygjf"}],["path",{d:"M12 8 7.26 5.15",key:"1vbdud"}],["path",{d:"m12 8 4.74-2.85",key:"3rx089"}],["path",{d:"M12 13.5V8",key:"1io7kd"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Ud=ie("Brain",[["path",{d:"M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z",key:"l5xja"}],["path",{d:"M12 5a3 3 0 1 1 5.997.125 4 4 0 0 1 2.526 5.77 4 4 0 0 1-.556 6.588A4 4 0 1 1 12 18Z",key:"ep3f8r"}],["path",{d:"M15 13a4.5 4.5 0 0 1-3-4 4.5 4.5 0 0 1-3 4",key:"1p4c4q"}],["path",{d:"M17.599 6.5a3 3 0 0 0 .399-1.375",key:"tmeiqw"}],["path",{d:"M6.003 5.125A3 3 0 0 0 6.401 6.5",key:"105sqy"}],["path",{d:"M3.477 10.896a4 4 0 0 1 .585-.396",key:"ql3yin"}],["path",{d:"M19.938 10.5a4 4 0 0 1 .585.396",key:"1qfode"}],["path",{d:"M6 18a4 4 0 0 1-1.967-.516",key:"2e4loj"}],["path",{d:"M19.967 17.484A4 4 0 0 1 18 18",key:"159ez6"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Km=ie("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Qm=ie("ChevronLeft",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const qm=ie("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Ym=ie("CircleAlert",[["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"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Xm=ie("Clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Zm=ie("Command",[["path",{d:"M15 6v12a3 3 0 1 0 3-3H6a3 3 0 1 0 3 3V6a3 3 0 1 0-3 3h12a3 3 0 1 0-3-3",key:"11bfej"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Jm=ie("Construction",[["rect",{x:"2",y:"6",width:"20",height:"8",rx:"1",key:"1estib"}],["path",{d:"M17 14v7",key:"7m2elx"}],["path",{d:"M7 14v7",key:"1cm7wv"}],["path",{d:"M17 3v3",key:"1v4jwn"}],["path",{d:"M7 3v3",key:"7o6guu"}],["path",{d:"M10 14 2.3 6.3",key:"1023jk"}],["path",{d:"m14 6 7.7 7.7",key:"1s8pl2"}],["path",{d:"m8 6 8 8",key:"hl96qh"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const eh=ie("Copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const jr=ie("Cpu",[["rect",{width:"16",height:"16",x:"4",y:"4",rx:"2",key:"14l7u7"}],["rect",{width:"6",height:"6",x:"9",y:"9",rx:"1",key:"5aljv4"}],["path",{d:"M15 2v2",key:"13l42r"}],["path",{d:"M15 20v2",key:"15mkzm"}],["path",{d:"M2 15h2",key:"1gxd5l"}],["path",{d:"M2 9h2",key:"1bbxkp"}],["path",{d:"M20 15h2",key:"19e6y8"}],["path",{d:"M20 9h2",key:"19tzq7"}],["path",{d:"M9 2v2",key:"165o2o"}],["path",{d:"M9 20v2",key:"i2bqo8"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Wi=ie("Download",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"7 10 12 15 17 10",key:"2ggqvy"}],["line",{x1:"12",x2:"12",y1:"15",y2:"3",key:"1vk2je"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Pl=ie("ExternalLink",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const th=ie("FolderOpen",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const rh=ie("GitBranch",[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const nh=ie("Globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const $d=ie("HardDrive",[["line",{x1:"22",x2:"2",y1:"12",y2:"12",key:"1y58io"}],["path",{d:"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z",key:"oot6mr"}],["line",{x1:"6",x2:"6.01",y1:"16",y2:"16",key:"sgf278"}],["line",{x1:"10",x2:"10.01",y1:"16",y2:"16",key:"1l4acy"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const oh=ie("Info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Gi=ie("Layers",[["path",{d:"m12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z",key:"8b97xw"}],["path",{d:"m22 17.65-9.17 4.16a2 2 0 0 1-1.66 0L2 17.65",key:"dd6zsq"}],["path",{d:"m22 12.65-9.17 4.16a2 2 0 0 1-1.66 0L2 12.65",key:"ep9fru"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const lh=ie("LayoutDashboard",[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const sh=ie("Moon",[["path",{d:"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z",key:"a7tn18"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const ih=ie("PenLine",[["path",{d:"M12 20h9",key:"t2du7b"}],["path",{d:"M16.376 3.622a1 1 0 0 1 3.002 3.002L7.368 18.635a2 2 0 0 1-.855.506l-2.872.838a.5.5 0 0 1-.62-.62l.838-2.872a2 2 0 0 1 .506-.854z",key:"1ykcvy"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const ah=ie("Plug",[["path",{d:"M12 22v-5",key:"1ega77"}],["path",{d:"M9 8V2",key:"14iosj"}],["path",{d:"M15 8V2",key:"18g5xt"}],["path",{d:"M18 8v5a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V8Z",key:"osxo6l"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Bd=ie("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const uh=ie("Power",[["path",{d:"M12 2v10",key:"mnfbl"}],["path",{d:"M18.4 6.6a9 9 0 1 1-12.77.04",key:"obofu9"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Ki=ie("RefreshCw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Vd=ie("Route",[["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"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const ch=ie("Save",[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const dh=ie("Scroll",[["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"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Hd=ie("Search",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const fh=ie("Server",[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const ph=ie("Settings",[["path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z",key:"1qme2f"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const mh=ie("ShieldAlert",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"M12 8v4",key:"1got3b"}],["path",{d:"M12 16h.01",key:"1drbdi"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const oa=ie("Shield",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const hh=ie("Sparkles",[["path",{d:"M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z",key:"4pj2yx"}],["path",{d:"M20 3v4",key:"1olli1"}],["path",{d:"M22 5h-4",key:"1gvqau"}],["path",{d:"M4 17v2",key:"vumght"}],["path",{d:"M5 18H3",key:"zchphs"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const gh=ie("Star",[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const vh=ie("Sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const xh=ie("Tag",[["path",{d:"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",key:"vktsd0"}],["circle",{cx:"7.5",cy:"7.5",r:".5",fill:"currentColor",key:"kqv944"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Wd=ie("Terminal",[["polyline",{points:"4 17 10 11 4 5",key:"akl6gq"}],["line",{x1:"12",x2:"20",y1:"19",y2:"19",key:"q2wloq"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Gd=ie("Trash2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const yh=ie("User",[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const bh=ie("Wrench",[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z",key:"cbrjhi"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const wh=ie("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]),Qi=[{id:"dashboard",label:"Zentrale",hint:"System- & Stack-Status",icon:lh},{id:"models",label:"Modelle & Routing",hint:"Modelle kuratieren, Gruppen & Auto-Routing",icon:Gm},{id:"routing",label:"Routing",hint:"Gateway-Regeln: schnell ↔ schwer",icon:Vd},{id:"system",label:"Diagnose",hint:"Metriken, Dienste, Logs",icon:jr},{id:"memory",label:"Gedächtnis",hint:"Geteiltes Memory verwalten",icon:Ud},{id:"connect",label:"Verbinden",hint:"IDE-/Agent-Configs erzeugen",icon:ah},{id:"agent",label:"Hermes",hint:"Agent-Status & WebUI öffnen",icon:na}];var pd=1,kh=.9,Sh=.8,Nh=.17,Ti=.1,Oi=.999,jh=.9999,Eh=.99,Ch=/[\\\/_+.#"@\[\(\{&]/,_h=/[\\\/_+.#"@\[\(\{&]/g,Ph=/[\s-]/,Kd=/[\s-]/g;function qi(o,u,i,c,f,p,m){if(p===u.length)return f===o.length?pd:Eh;var g=`${f},${p}`;if(m[g]!==void 0)return m[g];for(var N=c.charAt(p),k=i.indexOf(N,f),S=0,E,P,M,T;k>=0;)E=qi(o,u,i,c,k+1,p+1,m),E>S&&(k===f?E*=pd:Ch.test(o.charAt(k-1))?(E*=Sh,M=o.slice(f,k-1).match(_h),M&&f>0&&(E*=Math.pow(Oi,M.length))):Ph.test(o.charAt(k-1))?(E*=kh,T=o.slice(f,k-1).match(Kd),T&&f>0&&(E*=Math.pow(Oi,T.length))):(E*=Nh,f>0&&(E*=Math.pow(Oi,k-f))),o.charAt(k)!==u.charAt(p)&&(E*=jh)),(EE&&(E=P*Ti)),E>S&&(S=E),k=i.indexOf(N,k+1);return m[g]=S,S}function md(o){return o.toLowerCase().replace(Kd," ")}function Rh(o,u,i){return o=i&&i.length>0?`${o+" "+i.join(" ")}`:o,qi(o,u,md(o),md(u),0,0,{})}function ur(o,u,{checkForDefaultPrevented:i=!0}={}){return function(f){if(o==null||o(f),i===!1||!f.defaultPrevented)return u==null?void 0:u(f)}}function hd(o,u){if(typeof o=="function")return o(u);o!=null&&(o.current=u)}function un(...o){return u=>{let i=!1;const c=o.map(f=>{const p=hd(f,u);return!i&&typeof p=="function"&&(i=!0),p});if(i)return()=>{for(let f=0;f{var $;const{scope:P,children:M,...T}=E,j=(($=P==null?void 0:P[o])==null?void 0:$[N])||g,L=h.useMemo(()=>T,Object.values(T));return s.jsx(j.Provider,{value:L,children:M})};k.displayName=p+"Provider";function S(E,P){var j;const M=((j=P==null?void 0:P[o])==null?void 0:j[N])||g,T=h.useContext(M);if(T)return T;if(m!==void 0)return m;throw new Error(`\`${E}\` must be used within \`${p}\``)}return[k,S]}const f=()=>{const p=i.map(m=>h.createContext(m));return function(g){const N=(g==null?void 0:g[o])||p;return h.useMemo(()=>({[`__scope${o}`]:{...g,[o]:N}}),[g,N])}};return f.scopeName=o,[c,Lh(f,...u)]}function Lh(...o){const u=o[0];if(o.length===1)return u;const i=()=>{const c=o.map(f=>({useScope:f(),scopeName:f.scopeName}));return function(p){const m=c.reduce((g,{useScope:N,scopeName:k})=>{const E=N(p)[`__scope${k}`];return{...g,...E}},{});return h.useMemo(()=>({[`__scope${u.scopeName}`]:m}),[m])}};return i.scopeName=u.scopeName,i}var to=globalThis!=null&&globalThis.document?h.useLayoutEffect:()=>{},Th=ta[" useId ".trim().toString()]||(()=>{}),Oh=0;function Ft(o){const[u,i]=h.useState(Th());return to(()=>{i(c=>c??String(Oh++))},[o]),u?`radix-${u}`:""}var Dh=ta[" useInsertionEffect ".trim().toString()]||to;function zh({prop:o,defaultProp:u,onChange:i=()=>{},caller:c}){const[f,p,m]=Ih({defaultProp:u,onChange:i}),g=o!==void 0,N=g?o:f;{const S=h.useRef(o!==void 0);h.useEffect(()=>{const E=S.current;E!==g&&console.warn(`${c} is changing from ${E?"controlled":"uncontrolled"} to ${g?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),S.current=g},[g,c])}const k=h.useCallback(S=>{var E;if(g){const P=Ah(S)?S(o):S;P!==o&&((E=m.current)==null||E.call(m,P))}else p(S)},[g,o,p,m]);return[N,k]}function Ih({defaultProp:o,onChange:u}){const[i,c]=h.useState(o),f=h.useRef(i),p=h.useRef(u);return Dh(()=>{p.current=u},[u]),h.useEffect(()=>{var m;f.current!==i&&((m=p.current)==null||m.call(p,i),f.current=i)},[i,f]),[i,c,p]}function Ah(o){return typeof o=="function"}var Qd=Ad();function qd(o){const u=h.forwardRef((i,c)=>{let{children:f,...p}=i,m=null,g=!1;const N=[];gd(f)&&typeof vl=="function"&&(f=vl(f._payload)),h.Children.forEach(f,P=>{var M;if(Vh(P)){g=!0;const T=P;let j="child"in T.props?T.props.child:T.props.children;gd(j)&&typeof vl=="function"&&(j=vl(j._payload)),m=Uh(T,j),N.push((M=m==null?void 0:m.props)==null?void 0:M.children)}else N.push(P)}),m?m=h.cloneElement(m,void 0,N):!g&&h.Children.count(f)===1&&h.isValidElement(f)&&(m=f);const k=m?Bh(m):void 0,S=Cr(c,k);if(!m){if(f||f===0)throw new Error(g?Kh(o):Gh(o));return f}const E=$h(p,m.props??{});return m.type!==h.Fragment&&(E.ref=c?S:k),h.cloneElement(m,E)});return u.displayName=`${o}.Slot`,u}var Fh=Symbol.for("radix.slottable"),Uh=(o,u)=>{if("child"in o.props){const i=o.props.child;return h.isValidElement(i)?h.cloneElement(i,void 0,o.props.children(i.props.children)):null}return h.isValidElement(u)?u:null};function $h(o,u){const i={...u};for(const c in u){const f=o[c],p=u[c];/^on[A-Z]/.test(c)?f&&p?i[c]=(...g)=>{const N=p(...g);return f(...g),N}:f&&(i[c]=f):c==="style"?i[c]={...f,...p}:c==="className"&&(i[c]=[f,p].filter(Boolean).join(" "))}return{...o,...i}}function Bh(o){var c,f;let u=(c=Object.getOwnPropertyDescriptor(o.props,"ref"))==null?void 0:c.get,i=u&&"isReactWarning"in u&&u.isReactWarning;return i?o.ref:(u=(f=Object.getOwnPropertyDescriptor(o,"ref"))==null?void 0:f.get,i=u&&"isReactWarning"in u&&u.isReactWarning,i?o.props.ref:o.props.ref||o.ref)}function Vh(o){return h.isValidElement(o)&&typeof o.type=="function"&&"__radixId"in o.type&&o.type.__radixId===Fh}var Hh=Symbol.for("react.lazy");function gd(o){return o!=null&&typeof o=="object"&&"$$typeof"in o&&o.$$typeof===Hh&&"_payload"in o&&Wh(o._payload)}function Wh(o){return typeof o=="object"&&o!==null&&"then"in o}var Gh=o=>`${o} failed to slot onto its children. Expected a single React element child or \`Slottable\`.`,Kh=o=>`${o} failed to slot onto its \`Slottable\`. Expected \`Slottable\` to receive a single React element child.`,vl=ta[" use ".trim().toString()],Qh=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Ge=Qh.reduce((o,u)=>{const i=qd(`Primitive.${u}`),c=h.forwardRef((f,p)=>{const{asChild:m,...g}=f,N=m?i:u;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),s.jsx(N,{...g,ref:p})});return c.displayName=`Primitive.${u}`,{...o,[u]:c}},{});function qh(o,u){o&&Qd.flushSync(()=>o.dispatchEvent(u))}function ro(o){const u=h.useRef(o);return h.useEffect(()=>{u.current=o}),h.useMemo(()=>((...i)=>{var c;return(c=u.current)==null?void 0:c.call(u,...i)}),[])}function Yh(o,u=globalThis==null?void 0:globalThis.document){const i=ro(o);h.useEffect(()=>{const c=f=>{f.key==="Escape"&&i(f)};return u.addEventListener("keydown",c,{capture:!0}),()=>u.removeEventListener("keydown",c,{capture:!0})},[i,u])}var Xh="DismissableLayer",Yi="dismissableLayer.update",Zh="dismissableLayer.pointerDownOutside",Jh="dismissableLayer.focusOutside",vd,la=h.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set,dismissableSurfaces:new Set}),Yd=h.forwardRef((o,u)=>{const{disableOutsidePointerEvents:i=!1,deferPointerDownOutside:c=!1,onEscapeKeyDown:f,onPointerDownOutside:p,onFocusOutside:m,onInteractOutside:g,onDismiss:N,...k}=o,S=h.useContext(la),[E,P]=h.useState(null),M=(E==null?void 0:E.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,T]=h.useState({}),j=Cr(u,A=>P(A)),L=Array.from(S.layers),[$]=[...S.layersWithOutsidePointerEventsDisabled].slice(-1),O=L.indexOf($),I=E?L.indexOf(E):-1,q=S.layersWithOutsidePointerEventsDisabled.size>0,oe=I>=O,te=h.useRef(!1),ce=ng(A=>{const ae=A.target;if(!(ae instanceof Node))return;const Ce=[...S.branches].some(ue=>ue.contains(ae));!oe||Ce||(p==null||p(A),g==null||g(A),A.defaultPrevented||N==null||N())},{ownerDocument:M,deferPointerDownOutside:c,isDeferredPointerDownOutsideRef:te,dismissableSurfaces:S.dismissableSurfaces}),we=og(A=>{if(c&&te.current)return;const ae=A.target;[...S.branches].some(ue=>ue.contains(ae))||(m==null||m(A),g==null||g(A),A.defaultPrevented||N==null||N())},M);return Yh(A=>{I===S.layers.size-1&&(f==null||f(A),!A.defaultPrevented&&N&&(A.preventDefault(),N()))},M),h.useEffect(()=>{if(E)return i&&(S.layersWithOutsidePointerEventsDisabled.size===0&&(vd=M.body.style.pointerEvents,M.body.style.pointerEvents="none"),S.layersWithOutsidePointerEventsDisabled.add(E)),S.layers.add(E),xd(),()=>{i&&(S.layersWithOutsidePointerEventsDisabled.delete(E),S.layersWithOutsidePointerEventsDisabled.size===0&&(M.body.style.pointerEvents=vd))}},[E,M,i,S]),h.useEffect(()=>()=>{E&&(S.layers.delete(E),S.layersWithOutsidePointerEventsDisabled.delete(E),xd())},[E,S]),h.useEffect(()=>{const A=()=>T({});return document.addEventListener(Yi,A),()=>document.removeEventListener(Yi,A)},[]),s.jsx(Ge.div,{...k,ref:j,style:{pointerEvents:q?oe?"auto":"none":void 0,...o.style},onFocusCapture:ur(o.onFocusCapture,we.onFocusCapture),onBlurCapture:ur(o.onBlurCapture,we.onBlurCapture),onPointerDownCapture:ur(o.onPointerDownCapture,ce.onPointerDownCapture)})});Yd.displayName=Xh;var eg="DismissableLayerBranch",tg=h.forwardRef((o,u)=>{const i=h.useContext(la),c=h.useRef(null),f=Cr(u,c);return h.useEffect(()=>{const p=c.current;if(p)return i.branches.add(p),()=>{i.branches.delete(p)}},[i.branches]),s.jsx(Ge.div,{...o,ref:f})});tg.displayName=eg;function rg(){const o=h.useContext(la),[u,i]=h.useState(null);return h.useEffect(()=>{if(u)return o.dismissableSurfaces.add(u),()=>{o.dismissableSurfaces.delete(u)}},[u,o.dismissableSurfaces]),i}function ng(o,u){const{ownerDocument:i=globalThis==null?void 0:globalThis.document,deferPointerDownOutside:c=!1,isDeferredPointerDownOutsideRef:f,dismissableSurfaces:p}=u,m=ro(o),g=h.useRef(!1),N=h.useRef(!1),k=h.useRef(new Map),S=h.useRef(()=>{});return h.useEffect(()=>{function E(){N.current=!1,f.current=!1,k.current.clear()}function P(){return Array.from(k.current.values()).some(Boolean)}function M(O){if(!N.current)return;const I=O.target;I instanceof Node&&[...p].some(oe=>oe.contains(I))||k.current.set(O.type,!0),O.type==="click"&&window.setTimeout(()=>{N.current&&S.current()},0)}function T(O){N.current&&k.current.set(O.type,!1)}const j=O=>{if(O.target&&!g.current){let I=function(){i.removeEventListener("click",S.current);const oe=P();E(),oe||Xd(Zh,m,q,{discrete:!0})};const q={originalEvent:O};N.current=!0,f.current=c&&O.button===0,k.current.clear(),!c||O.button!==0?I():(i.removeEventListener("click",S.current),S.current=I,i.addEventListener("click",S.current,{once:!0}))}else i.removeEventListener("click",S.current),E();g.current=!1},L=["pointerup","mousedown","mouseup","touchstart","touchend","click"];for(const O of L)i.addEventListener(O,M,!0),i.addEventListener(O,T);const $=window.setTimeout(()=>{i.addEventListener("pointerdown",j)},0);return()=>{window.clearTimeout($),i.removeEventListener("pointerdown",j),i.removeEventListener("click",S.current);for(const O of L)i.removeEventListener(O,M,!0),i.removeEventListener(O,T)}},[i,m,c,f,p]),{onPointerDownCapture:()=>g.current=!0}}function og(o,u=globalThis==null?void 0:globalThis.document){const i=ro(o),c=h.useRef(!1);return h.useEffect(()=>{const f=p=>{p.target&&!c.current&&Xd(Jh,i,{originalEvent:p},{discrete:!1})};return u.addEventListener("focusin",f),()=>u.removeEventListener("focusin",f)},[u,i]),{onFocusCapture:()=>c.current=!0,onBlurCapture:()=>c.current=!1}}function xd(){const o=new CustomEvent(Yi);document.dispatchEvent(o)}function Xd(o,u,i,{discrete:c}){const f=i.originalEvent.target,p=new CustomEvent(o,{bubbles:!1,cancelable:!0,detail:i});u&&f.addEventListener(o,u,{once:!0}),c?qh(f,p):f.dispatchEvent(p)}var Di="focusScope.autoFocusOnMount",zi="focusScope.autoFocusOnUnmount",yd={bubbles:!1,cancelable:!0},lg="FocusScope",Zd=h.forwardRef((o,u)=>{const{loop:i=!1,trapped:c=!1,onMountAutoFocus:f,onUnmountAutoFocus:p,...m}=o,[g,N]=h.useState(null),k=ro(f),S=ro(p),E=h.useRef(null),P=Cr(u,j=>N(j)),M=h.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;h.useEffect(()=>{if(c){let j=function(I){if(M.paused||!g)return;const q=I.target;g.contains(q)?E.current=q:ar(E.current,{select:!0})},L=function(I){if(M.paused||!g)return;const q=I.relatedTarget;q!==null&&(g.contains(q)||ar(E.current,{select:!0}))},$=function(I){if(document.activeElement===document.body)for(const oe of I)oe.removedNodes.length>0&&ar(g)};document.addEventListener("focusin",j),document.addEventListener("focusout",L);const O=new MutationObserver($);return g&&O.observe(g,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",j),document.removeEventListener("focusout",L),O.disconnect()}}},[c,g,M.paused]),h.useEffect(()=>{if(g){wd.add(M);const j=document.activeElement;if(!g.contains(j)){const $=new CustomEvent(Di,yd);g.addEventListener(Di,k),g.dispatchEvent($),$.defaultPrevented||(sg(dg(Jd(g)),{select:!0}),document.activeElement===j&&ar(g))}return()=>{g.removeEventListener(Di,k),setTimeout(()=>{const $=new CustomEvent(zi,yd);g.addEventListener(zi,S),g.dispatchEvent($),$.defaultPrevented||ar(j??document.body,{select:!0}),g.removeEventListener(zi,S),wd.remove(M)},0)}}},[g,k,S,M]);const T=h.useCallback(j=>{if(!i&&!c||M.paused)return;const L=j.key==="Tab"&&!j.altKey&&!j.ctrlKey&&!j.metaKey,$=document.activeElement;if(L&&$){const O=j.currentTarget,[I,q]=ig(O);I&&q?!j.shiftKey&&$===q?(j.preventDefault(),i&&ar(I,{select:!0})):j.shiftKey&&$===I&&(j.preventDefault(),i&&ar(q,{select:!0})):$===O&&j.preventDefault()}},[i,c,M.paused]);return s.jsx(Ge.div,{tabIndex:-1,...m,ref:P,onKeyDown:T})});Zd.displayName=lg;function sg(o,{select:u=!1}={}){const i=document.activeElement;for(const c of o)if(ar(c,{select:u}),document.activeElement!==i)return}function ig(o){const u=Jd(o),i=bd(u,o),c=bd(u.reverse(),o);return[i,c]}function Jd(o){const u=[],i=document.createTreeWalker(o,NodeFilter.SHOW_ELEMENT,{acceptNode:c=>{const f=c.tagName==="INPUT"&&c.type==="hidden";return c.disabled||c.hidden||f?NodeFilter.FILTER_SKIP:c.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;i.nextNode();)u.push(i.currentNode);return u}function bd(o,u){for(const i of o)if(!ag(i,{upTo:u}))return i}function ag(o,{upTo:u}){if(getComputedStyle(o).visibility==="hidden")return!0;for(;o;){if(u!==void 0&&o===u)return!1;if(getComputedStyle(o).display==="none")return!0;o=o.parentElement}return!1}function ug(o){return o instanceof HTMLInputElement&&"select"in o}function ar(o,{select:u=!1}={}){if(o&&o.focus){const i=document.activeElement;o.focus({preventScroll:!0}),o!==i&&ug(o)&&u&&o.select()}}var wd=cg();function cg(){let o=[];return{add(u){const i=o[0];u!==i&&(i==null||i.pause()),o=kd(o,u),o.unshift(u)},remove(u){var i;o=kd(o,u),(i=o[0])==null||i.resume()}}}function kd(o,u){const i=[...o],c=i.indexOf(u);return c!==-1&&i.splice(c,1),i}function dg(o){return o.filter(u=>u.tagName!=="A")}var fg="Portal",ef=h.forwardRef((o,u)=>{var g;const{container:i,...c}=o,[f,p]=h.useState(!1);to(()=>p(!0),[]);const m=i||f&&((g=globalThis==null?void 0:globalThis.document)==null?void 0:g.body);return m?Qd.createPortal(s.jsx(Ge.div,{...c,ref:u}),m):null});ef.displayName=fg;function pg(o,u){return h.useReducer((i,c)=>u[i][c]??i,o)}var Ml=o=>{const{present:u,children:i}=o,c=mg(u),f=typeof i=="function"?i({present:c.isPresent}):h.Children.only(i),p=hg(c.ref,gg(f));return typeof i=="function"||c.isPresent?h.cloneElement(f,{ref:p}):null};Ml.displayName="Presence";function mg(o){const[u,i]=h.useState(),c=h.useRef(null),f=h.useRef(o),p=h.useRef("none"),m=o?"mounted":"unmounted",[g,N]=pg(m,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return h.useEffect(()=>{const k=xl(c.current);p.current=g==="mounted"?k:"none"},[g]),to(()=>{const k=c.current,S=f.current;if(S!==o){const P=p.current,M=xl(k);o?N("MOUNT"):M==="none"||(k==null?void 0:k.display)==="none"?N("UNMOUNT"):N(S&&P!==M?"ANIMATION_OUT":"UNMOUNT"),f.current=o}},[o,N]),to(()=>{if(u){let k;const S=u.ownerDocument.defaultView??window,E=M=>{const j=xl(c.current).includes(CSS.escape(M.animationName));if(M.target===u&&j&&(N("ANIMATION_END"),!f.current)){const L=u.style.animationFillMode;u.style.animationFillMode="forwards",k=S.setTimeout(()=>{u.style.animationFillMode==="forwards"&&(u.style.animationFillMode=L)})}},P=M=>{M.target===u&&(p.current=xl(c.current))};return u.addEventListener("animationstart",P),u.addEventListener("animationcancel",E),u.addEventListener("animationend",E),()=>{S.clearTimeout(k),u.removeEventListener("animationstart",P),u.removeEventListener("animationcancel",E),u.removeEventListener("animationend",E)}}else N("ANIMATION_END")},[u,N]),{isPresent:["mounted","unmountSuspended"].includes(g),ref:h.useCallback(k=>{c.current=k?getComputedStyle(k):null,i(k)},[])}}function Sd(o,u){if(typeof o=="function")return o(u);o!=null&&(o.current=u)}function hg(...o){const u=h.useRef(o);return u.current=o,h.useCallback(i=>{const c=u.current;let f=!1;const p=c.map(m=>{const g=Sd(m,i);return!f&&typeof g=="function"&&(f=!0),g});if(f)return()=>{for(let m=0;m{_t||(_t={start:Nd(),end:Nd()});const{start:o,end:u}=_t;return document.body.firstElementChild!==o&&document.body.insertAdjacentElement("afterbegin",o),document.body.lastElementChild!==u&&document.body.insertAdjacentElement("beforeend",u),yl++,()=>{yl===1&&(_t==null||_t.start.remove(),_t==null||_t.end.remove(),_t=null),yl=Math.max(0,yl-1)}},[])}function Nd(){const o=document.createElement("span");return o.setAttribute("data-radix-focus-guard",""),o.tabIndex=0,o.style.outline="none",o.style.opacity="0",o.style.position="fixed",o.style.pointerEvents="none",o}var Pt=function(){return Pt=Object.assign||function(u){for(var i,c=1,f=arguments.length;c"u")return Og;var u=Dg(o),i=document.documentElement.clientWidth,c=window.innerWidth;return{left:u[0],top:u[1],right:u[2],gap:Math.max(0,c-i+u[2]-u[0])}},Ig=of(),sn="data-scroll-locked",Ag=function(o,u,i,c){var f=o.left,p=o.top,m=o.right,g=o.gap;return i===void 0&&(i="margin"),` - .`.concat(yg,` { - overflow: hidden `).concat(c,`; - padding-right: `).concat(g,"px ").concat(c,`; - } - body[`).concat(sn,`] { - overflow: hidden `).concat(c,`; - overscroll-behavior: contain; - `).concat([u&&"position: relative ".concat(c,";"),i==="margin"&&` - padding-left: `.concat(f,`px; - padding-top: `).concat(p,`px; - padding-right: `).concat(m,`px; - margin-left:0; - margin-top:0; - margin-right: `).concat(g,"px ").concat(c,`; - `),i==="padding"&&"padding-right: ".concat(g,"px ").concat(c,";")].filter(Boolean).join(""),` - } - - .`).concat(Cl,` { - right: `).concat(g,"px ").concat(c,`; - } - - .`).concat(_l,` { - margin-right: `).concat(g,"px ").concat(c,`; - } - - .`).concat(Cl," .").concat(Cl,` { - right: 0 `).concat(c,`; - } - - .`).concat(_l," .").concat(_l,` { - margin-right: 0 `).concat(c,`; - } - - body[`).concat(sn,`] { - `).concat(bg,": ").concat(g,`px; - } -`)},Ed=function(){var o=parseInt(document.body.getAttribute(sn)||"0",10);return isFinite(o)?o:0},Fg=function(){h.useEffect(function(){return document.body.setAttribute(sn,(Ed()+1).toString()),function(){var o=Ed()-1;o<=0?document.body.removeAttribute(sn):document.body.setAttribute(sn,o.toString())}},[])},Ug=function(o){var u=o.noRelative,i=o.noImportant,c=o.gapMode,f=c===void 0?"margin":c;Fg();var p=h.useMemo(function(){return zg(f)},[f]);return h.createElement(Ig,{styles:Ag(p,!u,f,i?"":"!important")})},Xi=!1;if(typeof window<"u")try{var bl=Object.defineProperty({},"passive",{get:function(){return Xi=!0,!0}});window.addEventListener("test",bl,bl),window.removeEventListener("test",bl,bl)}catch{Xi=!1}var Jr=Xi?{passive:!1}:!1,$g=function(o){return o.tagName==="TEXTAREA"},lf=function(o,u){if(!(o instanceof Element))return!1;var i=window.getComputedStyle(o);return i[u]!=="hidden"&&!(i.overflowY===i.overflowX&&!$g(o)&&i[u]==="visible")},Bg=function(o){return lf(o,"overflowY")},Vg=function(o){return lf(o,"overflowX")},Cd=function(o,u){var i=u.ownerDocument,c=u;do{typeof ShadowRoot<"u"&&c instanceof ShadowRoot&&(c=c.host);var f=sf(o,c);if(f){var p=af(o,c),m=p[1],g=p[2];if(m>g)return!0}c=c.parentNode}while(c&&c!==i.body);return!1},Hg=function(o){var u=o.scrollTop,i=o.scrollHeight,c=o.clientHeight;return[u,i,c]},Wg=function(o){var u=o.scrollLeft,i=o.scrollWidth,c=o.clientWidth;return[u,i,c]},sf=function(o,u){return o==="v"?Bg(u):Vg(u)},af=function(o,u){return o==="v"?Hg(u):Wg(u)},Gg=function(o,u){return o==="h"&&u==="rtl"?-1:1},Kg=function(o,u,i,c,f){var p=Gg(o,window.getComputedStyle(u).direction),m=p*c,g=i.target,N=u.contains(g),k=!1,S=m>0,E=0,P=0;do{if(!g)break;var M=af(o,g),T=M[0],j=M[1],L=M[2],$=j-L-p*T;(T||$)&&sf(o,g)&&(E+=$,P+=T);var O=g.parentNode;g=O&&O.nodeType===Node.DOCUMENT_FRAGMENT_NODE?O.host:O}while(!N&&g!==document.body||N&&(u.contains(g)||u===g));return(S&&Math.abs(E)<1||!S&&Math.abs(P)<1)&&(k=!0),k},wl=function(o){return"changedTouches"in o?[o.changedTouches[0].clientX,o.changedTouches[0].clientY]:[0,0]},_d=function(o){return[o.deltaX,o.deltaY]},Pd=function(o){return o&&"current"in o?o.current:o},Qg=function(o,u){return o[0]===u[0]&&o[1]===u[1]},qg=function(o){return` - .block-interactivity-`.concat(o,` {pointer-events: none;} - .allow-interactivity-`).concat(o,` {pointer-events: all;} -`)},Yg=0,en=[];function Xg(o){var u=h.useRef([]),i=h.useRef([0,0]),c=h.useRef(),f=h.useState(Yg++)[0],p=h.useState(of)[0],m=h.useRef(o);h.useEffect(function(){m.current=o},[o]),h.useEffect(function(){if(o.inert){document.body.classList.add("block-interactivity-".concat(f));var j=xg([o.lockRef.current],(o.shards||[]).map(Pd),!0).filter(Boolean);return j.forEach(function(L){return L.classList.add("allow-interactivity-".concat(f))}),function(){document.body.classList.remove("block-interactivity-".concat(f)),j.forEach(function(L){return L.classList.remove("allow-interactivity-".concat(f))})}}},[o.inert,o.lockRef.current,o.shards]);var g=h.useCallback(function(j,L){if("touches"in j&&j.touches.length===2||j.type==="wheel"&&j.ctrlKey)return!m.current.allowPinchZoom;var $=wl(j),O=i.current,I="deltaX"in j?j.deltaX:O[0]-$[0],q="deltaY"in j?j.deltaY:O[1]-$[1],oe,te=j.target,ce=Math.abs(I)>Math.abs(q)?"h":"v";if("touches"in j&&ce==="h"&&te.type==="range")return!1;var we=window.getSelection(),A=we&&we.anchorNode,ae=A?A===te||A.contains(te):!1;if(ae)return!1;var Ce=Cd(ce,te);if(!Ce)return!0;if(Ce?oe=ce:(oe=ce==="v"?"h":"v",Ce=Cd(ce,te)),!Ce)return!1;if(!c.current&&"changedTouches"in j&&(I||q)&&(c.current=oe),!oe)return!0;var ue=c.current||oe;return Kg(ue,L,j,ue==="h"?I:q)},[]),N=h.useCallback(function(j){var L=j;if(!(!en.length||en[en.length-1]!==p)){var $="deltaY"in L?_d(L):wl(L),O=u.current.filter(function(oe){return oe.name===L.type&&(oe.target===L.target||L.target===oe.shadowParent)&&Qg(oe.delta,$)})[0];if(O&&O.should){L.cancelable&&L.preventDefault();return}if(!O){var I=(m.current.shards||[]).map(Pd).filter(Boolean).filter(function(oe){return oe.contains(L.target)}),q=I.length>0?g(L,I[0]):!m.current.noIsolation;q&&L.cancelable&&L.preventDefault()}}},[]),k=h.useCallback(function(j,L,$,O){var I={name:j,delta:L,target:$,should:O,shadowParent:Zg($)};u.current.push(I),setTimeout(function(){u.current=u.current.filter(function(q){return q!==I})},1)},[]),S=h.useCallback(function(j){i.current=wl(j),c.current=void 0},[]),E=h.useCallback(function(j){k(j.type,_d(j),j.target,g(j,o.lockRef.current))},[]),P=h.useCallback(function(j){k(j.type,wl(j),j.target,g(j,o.lockRef.current))},[]);h.useEffect(function(){return en.push(p),o.setCallbacks({onScrollCapture:E,onWheelCapture:E,onTouchMoveCapture:P}),document.addEventListener("wheel",N,Jr),document.addEventListener("touchmove",N,Jr),document.addEventListener("touchstart",S,Jr),function(){en=en.filter(function(j){return j!==p}),document.removeEventListener("wheel",N,Jr),document.removeEventListener("touchmove",N,Jr),document.removeEventListener("touchstart",S,Jr)}},[]);var M=o.removeScrollBar,T=o.inert;return h.createElement(h.Fragment,null,T?h.createElement(p,{styles:qg(f)}):null,M?h.createElement(Ug,{noRelative:o.noRelative,gapMode:o.gapMode}):null)}function Zg(o){for(var u=null;o!==null;)o instanceof ShadowRoot&&(u=o.host,o=o.host),o=o.parentNode;return u}const Jg=Cg(nf,Xg);var uf=h.forwardRef(function(o,u){return h.createElement(Ll,Pt({},o,{ref:u,sideCar:Jg}))});uf.classNames=Ll.classNames;var e0=function(o){if(typeof document>"u")return null;var u=Array.isArray(o)?o[0]:o;return u.ownerDocument.body},tn=new WeakMap,kl=new WeakMap,Sl={},Ui=0,cf=function(o){return o&&(o.host||cf(o.parentNode))},t0=function(o,u){return u.map(function(i){if(o.contains(i))return i;var c=cf(i);return c&&o.contains(c)?c:(console.error("aria-hidden",i,"in not contained inside",o,". Doing nothing"),null)}).filter(function(i){return!!i})},r0=function(o,u,i,c){var f=t0(u,Array.isArray(o)?o:[o]);Sl[i]||(Sl[i]=new WeakMap);var p=Sl[i],m=[],g=new Set,N=new Set(f),k=function(E){!E||g.has(E)||(g.add(E),k(E.parentNode))};f.forEach(k);var S=function(E){!E||N.has(E)||Array.prototype.forEach.call(E.children,function(P){if(g.has(P))S(P);else try{var M=P.getAttribute(c),T=M!==null&&M!=="false",j=(tn.get(P)||0)+1,L=(p.get(P)||0)+1;tn.set(P,j),p.set(P,L),m.push(P),j===1&&T&&kl.set(P,!0),L===1&&P.setAttribute(i,"true"),T||P.setAttribute(c,"true")}catch($){console.error("aria-hidden: cannot operate on ",P,$)}})};return S(u),g.clear(),Ui++,function(){m.forEach(function(E){var P=tn.get(E)-1,M=p.get(E)-1;tn.set(E,P),p.set(E,M),P||(kl.has(E)||E.removeAttribute(c),kl.delete(E)),M||E.removeAttribute(i)}),Ui--,Ui||(tn=new WeakMap,tn=new WeakMap,kl=new WeakMap,Sl={})}},n0=function(o,u,i){i===void 0&&(i="data-aria-hidden");var c=Array.from(Array.isArray(o)?o:[o]),f=e0(o);return f?(c.push.apply(c,Array.from(f.querySelectorAll("[aria-live], script"))),r0(c,f,i,"aria-hidden")):function(){return null}},Tl="Dialog",[df]=Mh(Tl),[o0,kt]=df(Tl),ff=o=>{const{__scopeDialog:u,children:i,open:c,defaultOpen:f,onOpenChange:p,modal:m=!0}=o,g=h.useRef(null),N=h.useRef(null),[k,S]=zh({prop:c,defaultProp:f??!1,onChange:p,caller:Tl});return s.jsx(o0,{scope:u,triggerRef:g,contentRef:N,contentId:Ft(),titleId:Ft(),descriptionId:Ft(),open:k,onOpenChange:S,onOpenToggle:h.useCallback(()=>S(E=>!E),[S]),modal:m,children:i})};ff.displayName=Tl;var pf="DialogTrigger",l0=h.forwardRef((o,u)=>{const{__scopeDialog:i,...c}=o,f=kt(pf,i),p=Cr(u,f.triggerRef);return s.jsx(Ge.button,{type:"button","aria-haspopup":"dialog","aria-expanded":f.open,"aria-controls":f.open?f.contentId:void 0,"data-state":ia(f.open),...c,ref:p,onClick:ur(o.onClick,f.onOpenToggle)})});l0.displayName=pf;var sa="DialogPortal",[s0,mf]=df(sa,{forceMount:void 0}),hf=o=>{const{__scopeDialog:u,forceMount:i,children:c,container:f}=o,p=kt(sa,u);return s.jsx(s0,{scope:u,forceMount:i,children:h.Children.map(c,m=>s.jsx(Ml,{present:i||p.open,children:s.jsx(ef,{asChild:!0,container:f,children:m})}))})};hf.displayName=sa;var Rl="DialogOverlay",gf=h.forwardRef((o,u)=>{const i=mf(Rl,o.__scopeDialog),{forceMount:c=i.forceMount,...f}=o,p=kt(Rl,o.__scopeDialog);return p.modal?s.jsx(Ml,{present:c||p.open,children:s.jsx(a0,{...f,ref:u})}):null});gf.displayName=Rl;var i0=qd("DialogOverlay.RemoveScroll"),a0=h.forwardRef((o,u)=>{const{__scopeDialog:i,...c}=o,f=kt(Rl,i),p=rg(),m=Cr(u,p);return s.jsx(uf,{as:i0,allowPinchZoom:!0,shards:[f.contentRef],children:s.jsx(Ge.div,{"data-state":ia(f.open),...c,ref:m,style:{pointerEvents:"auto",...c.style}})})}),cn="DialogContent",vf=h.forwardRef((o,u)=>{const i=mf(cn,o.__scopeDialog),{forceMount:c=i.forceMount,...f}=o,p=kt(cn,o.__scopeDialog);return s.jsx(Ml,{present:c||p.open,children:p.modal?s.jsx(u0,{...f,ref:u}):s.jsx(c0,{...f,ref:u})})});vf.displayName=cn;var u0=h.forwardRef((o,u)=>{const i=kt(cn,o.__scopeDialog),c=h.useRef(null),f=Cr(u,i.contentRef,c);return h.useEffect(()=>{const p=c.current;if(p)return n0(p)},[]),s.jsx(xf,{...o,ref:f,trapFocus:i.open,disableOutsidePointerEvents:i.open,onCloseAutoFocus:ur(o.onCloseAutoFocus,p=>{var m;p.preventDefault(),(m=i.triggerRef.current)==null||m.focus()}),onPointerDownOutside:ur(o.onPointerDownOutside,p=>{const m=p.detail.originalEvent,g=m.button===0&&m.ctrlKey===!0;(m.button===2||g)&&p.preventDefault()}),onFocusOutside:ur(o.onFocusOutside,p=>p.preventDefault())})}),c0=h.forwardRef((o,u)=>{const i=kt(cn,o.__scopeDialog),c=h.useRef(!1),f=h.useRef(!1);return s.jsx(xf,{...o,ref:u,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:p=>{var m,g;(m=o.onCloseAutoFocus)==null||m.call(o,p),p.defaultPrevented||(c.current||(g=i.triggerRef.current)==null||g.focus(),p.preventDefault()),c.current=!1,f.current=!1},onInteractOutside:p=>{var N,k;(N=o.onInteractOutside)==null||N.call(o,p),p.defaultPrevented||(c.current=!0,p.detail.originalEvent.type==="pointerdown"&&(f.current=!0));const m=p.target;((k=i.triggerRef.current)==null?void 0:k.contains(m))&&p.preventDefault(),p.detail.originalEvent.type==="focusin"&&f.current&&p.preventDefault()}})}),xf=h.forwardRef((o,u)=>{const{__scopeDialog:i,trapFocus:c,onOpenAutoFocus:f,onCloseAutoFocus:p,...m}=o,g=kt(cn,i);return vg(),s.jsx(s.Fragment,{children:s.jsx(Zd,{asChild:!0,loop:!0,trapped:c,onMountAutoFocus:f,onUnmountAutoFocus:p,children:s.jsx(Yd,{role:"dialog",id:g.contentId,"aria-describedby":g.descriptionId,"aria-labelledby":g.titleId,"data-state":ia(g.open),...m,ref:u,deferPointerDownOutside:!0,onDismiss:()=>g.onOpenChange(!1)})})})}),yf="DialogTitle",d0=h.forwardRef((o,u)=>{const{__scopeDialog:i,...c}=o,f=kt(yf,i);return s.jsx(Ge.h2,{id:f.titleId,...c,ref:u})});d0.displayName=yf;var bf="DialogDescription",f0=h.forwardRef((o,u)=>{const{__scopeDialog:i,...c}=o,f=kt(bf,i);return s.jsx(Ge.p,{id:f.descriptionId,...c,ref:u})});f0.displayName=bf;var wf="DialogClose",p0=h.forwardRef((o,u)=>{const{__scopeDialog:i,...c}=o,f=kt(wf,i);return s.jsx(Ge.button,{type:"button",...c,ref:u,onClick:ur(o.onClick,()=>f.onOpenChange(!1))})});p0.displayName=wf;function ia(o){return o?"open":"closed"}var Zn='[cmdk-group=""]',$i='[cmdk-group-items=""]',m0='[cmdk-group-heading=""]',kf='[cmdk-item=""]',Rd=`${kf}:not([aria-disabled="true"])`,Zi="cmdk-item-select",on="data-value",h0=(o,u,i)=>Rh(o,u,i),Sf=h.createContext(void 0),no=()=>h.useContext(Sf),Nf=h.createContext(void 0),aa=()=>h.useContext(Nf),jf=h.createContext(void 0),Ef=h.forwardRef((o,u)=>{let i=ln(()=>{var b,V;return{search:"",value:(V=(b=o.value)!=null?b:o.defaultValue)!=null?V:"",selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}}}),c=ln(()=>new Set),f=ln(()=>new Map),p=ln(()=>new Map),m=ln(()=>new Set),g=Cf(o),{label:N,children:k,value:S,onValueChange:E,filter:P,shouldFilter:M,loop:T,disablePointerSelection:j=!1,vimBindings:L=!0,...$}=o,O=Ft(),I=Ft(),q=Ft(),oe=h.useRef(null),te=E0();Er(()=>{if(S!==void 0){let b=S.trim();i.current.value=b,ce.emit()}},[S]),Er(()=>{te(6,ze)},[]);let ce=h.useMemo(()=>({subscribe:b=>(m.current.add(b),()=>m.current.delete(b)),snapshot:()=>i.current,setState:(b,V,G)=>{var B,Z,le,fe;if(!Object.is(i.current[b],V)){if(i.current[b]=V,b==="search")ue(),ae(),te(1,Ce);else if(b==="value"){if(document.activeElement.hasAttribute("cmdk-input")||document.activeElement.hasAttribute("cmdk-root")){let he=document.getElementById(q);he?he.focus():(B=document.getElementById(O))==null||B.focus()}if(te(7,()=>{var he;i.current.selectedItemId=(he=_e())==null?void 0:he.id,ce.emit()}),G||te(5,ze),((Z=g.current)==null?void 0:Z.value)!==void 0){let he=V??"";(fe=(le=g.current).onValueChange)==null||fe.call(le,he);return}}ce.emit()}},emit:()=>{m.current.forEach(b=>b())}}),[]),we=h.useMemo(()=>({value:(b,V,G)=>{var B;V!==((B=p.current.get(b))==null?void 0:B.value)&&(p.current.set(b,{value:V,keywords:G}),i.current.filtered.items.set(b,A(V,G)),te(2,()=>{ae(),ce.emit()}))},item:(b,V)=>(c.current.add(b),V&&(f.current.has(V)?f.current.get(V).add(b):f.current.set(V,new Set([b]))),te(3,()=>{ue(),ae(),i.current.value||Ce(),ce.emit()}),()=>{p.current.delete(b),c.current.delete(b),i.current.filtered.items.delete(b);let G=_e();te(4,()=>{ue(),(G==null?void 0:G.getAttribute("id"))===b&&Ce(),ce.emit()})}),group:b=>(f.current.has(b)||f.current.set(b,new Set),()=>{p.current.delete(b),f.current.delete(b)}),filter:()=>g.current.shouldFilter,label:N||o["aria-label"],getDisablePointerSelection:()=>g.current.disablePointerSelection,listId:O,inputId:q,labelId:I,listInnerRef:oe}),[]);function A(b,V){var G,B;let Z=(B=(G=g.current)==null?void 0:G.filter)!=null?B:h0;return b?Z(b,i.current.search,V):0}function ae(){if(!i.current.search||g.current.shouldFilter===!1)return;let b=i.current.filtered.items,V=[];i.current.filtered.groups.forEach(B=>{let Z=f.current.get(B),le=0;Z.forEach(fe=>{let he=b.get(fe);le=Math.max(he,le)}),V.push([B,le])});let G=oe.current;Ie().sort((B,Z)=>{var le,fe;let he=B.getAttribute("id"),Ue=Z.getAttribute("id");return((le=b.get(Ue))!=null?le:0)-((fe=b.get(he))!=null?fe:0)}).forEach(B=>{let Z=B.closest($i);Z?Z.appendChild(B.parentElement===Z?B:B.closest(`${$i} > *`)):G.appendChild(B.parentElement===G?B:B.closest(`${$i} > *`))}),V.sort((B,Z)=>Z[1]-B[1]).forEach(B=>{var Z;let le=(Z=oe.current)==null?void 0:Z.querySelector(`${Zn}[${on}="${encodeURIComponent(B[0])}"]`);le==null||le.parentElement.appendChild(le)})}function Ce(){let b=Ie().find(G=>G.getAttribute("aria-disabled")!=="true"),V=b==null?void 0:b.getAttribute(on);ce.setState("value",V||void 0)}function ue(){var b,V,G,B;if(!i.current.search||g.current.shouldFilter===!1){i.current.filtered.count=c.current.size;return}i.current.filtered.groups=new Set;let Z=0;for(let le of c.current){let fe=(V=(b=p.current.get(le))==null?void 0:b.value)!=null?V:"",he=(B=(G=p.current.get(le))==null?void 0:G.keywords)!=null?B:[],Ue=A(fe,he);i.current.filtered.items.set(le,Ue),Ue>0&&Z++}for(let[le,fe]of f.current)for(let he of fe)if(i.current.filtered.items.get(he)>0){i.current.filtered.groups.add(le);break}i.current.filtered.count=Z}function ze(){var b,V,G;let B=_e();B&&(((b=B.parentElement)==null?void 0:b.firstChild)===B&&((G=(V=B.closest(Zn))==null?void 0:V.querySelector(m0))==null||G.scrollIntoView({block:"nearest"})),B.scrollIntoView({block:"nearest"}))}function _e(){var b;return(b=oe.current)==null?void 0:b.querySelector(`${kf}[aria-selected="true"]`)}function Ie(){var b;return Array.from(((b=oe.current)==null?void 0:b.querySelectorAll(Rd))||[])}function Pe(b){let V=Ie()[b];V&&ce.setState("value",V.getAttribute(on))}function ye(b){var V;let G=_e(),B=Ie(),Z=B.findIndex(fe=>fe===G),le=B[Z+b];(V=g.current)!=null&&V.loop&&(le=Z+b<0?B[B.length-1]:Z+b===B.length?B[0]:B[Z+b]),le&&ce.setState("value",le.getAttribute(on))}function H(b){let V=_e(),G=V==null?void 0:V.closest(Zn),B;for(;G&&!B;)G=b>0?N0(G,Zn):j0(G,Zn),B=G==null?void 0:G.querySelector(Rd);B?ce.setState("value",B.getAttribute(on)):ye(b)}let ee=()=>Pe(Ie().length-1),W=b=>{b.preventDefault(),b.metaKey?ee():b.altKey?H(1):ye(1)},w=b=>{b.preventDefault(),b.metaKey?Pe(0):b.altKey?H(-1):ye(-1)};return h.createElement(Ge.div,{ref:u,tabIndex:-1,...$,"cmdk-root":"",onKeyDown:b=>{var V;(V=$.onKeyDown)==null||V.call($,b);let G=b.nativeEvent.isComposing||b.keyCode===229;if(!(b.defaultPrevented||G))switch(b.key){case"n":case"j":{L&&b.ctrlKey&&W(b);break}case"ArrowDown":{W(b);break}case"p":case"k":{L&&b.ctrlKey&&w(b);break}case"ArrowUp":{w(b);break}case"Home":{b.preventDefault(),Pe(0);break}case"End":{b.preventDefault(),ee();break}case"Enter":{b.preventDefault();let B=_e();if(B){let Z=new Event(Zi);B.dispatchEvent(Z)}}}}},h.createElement("label",{"cmdk-label":"",htmlFor:we.inputId,id:we.labelId,style:_0},N),Ol(o,b=>h.createElement(Nf.Provider,{value:ce},h.createElement(Sf.Provider,{value:we},b))))}),g0=h.forwardRef((o,u)=>{var i,c;let f=Ft(),p=h.useRef(null),m=h.useContext(jf),g=no(),N=Cf(o),k=(c=(i=N.current)==null?void 0:i.forceMount)!=null?c:m==null?void 0:m.forceMount;Er(()=>{if(!k)return g.item(f,m==null?void 0:m.id)},[k]);let S=_f(f,p,[o.value,o.children,p],o.keywords),E=aa(),P=cr(te=>te.value&&te.value===S.current),M=cr(te=>k||g.filter()===!1?!0:te.search?te.filtered.items.get(f)>0:!0);h.useEffect(()=>{let te=p.current;if(!(!te||o.disabled))return te.addEventListener(Zi,T),()=>te.removeEventListener(Zi,T)},[M,o.onSelect,o.disabled]);function T(){var te,ce;j(),(ce=(te=N.current).onSelect)==null||ce.call(te,S.current)}function j(){E.setState("value",S.current,!0)}if(!M)return null;let{disabled:L,value:$,onSelect:O,forceMount:I,keywords:q,...oe}=o;return h.createElement(Ge.div,{ref:un(p,u),...oe,id:f,"cmdk-item":"",role:"option","aria-disabled":!!L,"aria-selected":!!P,"data-disabled":!!L,"data-selected":!!P,onPointerMove:L||g.getDisablePointerSelection()?void 0:j,onClick:L?void 0:T},o.children)}),v0=h.forwardRef((o,u)=>{let{heading:i,children:c,forceMount:f,...p}=o,m=Ft(),g=h.useRef(null),N=h.useRef(null),k=Ft(),S=no(),E=cr(M=>f||S.filter()===!1?!0:M.search?M.filtered.groups.has(m):!0);Er(()=>S.group(m),[]),_f(m,g,[o.value,o.heading,N]);let P=h.useMemo(()=>({id:m,forceMount:f}),[f]);return h.createElement(Ge.div,{ref:un(g,u),...p,"cmdk-group":"",role:"presentation",hidden:E?void 0:!0},i&&h.createElement("div",{ref:N,"cmdk-group-heading":"","aria-hidden":!0,id:k},i),Ol(o,M=>h.createElement("div",{"cmdk-group-items":"",role:"group","aria-labelledby":i?k:void 0},h.createElement(jf.Provider,{value:P},M))))}),x0=h.forwardRef((o,u)=>{let{alwaysRender:i,...c}=o,f=h.useRef(null),p=cr(m=>!m.search);return!i&&!p?null:h.createElement(Ge.div,{ref:un(f,u),...c,"cmdk-separator":"",role:"separator"})}),y0=h.forwardRef((o,u)=>{let{onValueChange:i,...c}=o,f=o.value!=null,p=aa(),m=cr(k=>k.search),g=cr(k=>k.selectedItemId),N=no();return h.useEffect(()=>{o.value!=null&&p.setState("search",o.value)},[o.value]),h.createElement(Ge.input,{ref:u,...c,"cmdk-input":"",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"aria-autocomplete":"list",role:"combobox","aria-expanded":!0,"aria-controls":N.listId,"aria-labelledby":N.labelId,"aria-activedescendant":g,id:N.inputId,type:"text",value:f?o.value:m,onChange:k=>{f||p.setState("search",k.target.value),i==null||i(k.target.value)}})}),b0=h.forwardRef((o,u)=>{let{children:i,label:c="Suggestions",...f}=o,p=h.useRef(null),m=h.useRef(null),g=cr(k=>k.selectedItemId),N=no();return h.useEffect(()=>{if(m.current&&p.current){let k=m.current,S=p.current,E,P=new ResizeObserver(()=>{E=requestAnimationFrame(()=>{let M=k.offsetHeight;S.style.setProperty("--cmdk-list-height",M.toFixed(1)+"px")})});return P.observe(k),()=>{cancelAnimationFrame(E),P.unobserve(k)}}},[]),h.createElement(Ge.div,{ref:un(p,u),...f,"cmdk-list":"",role:"listbox",tabIndex:-1,"aria-activedescendant":g,"aria-label":c,id:N.listId},Ol(o,k=>h.createElement("div",{ref:un(m,N.listInnerRef),"cmdk-list-sizer":""},k)))}),w0=h.forwardRef((o,u)=>{let{open:i,onOpenChange:c,overlayClassName:f,contentClassName:p,container:m,...g}=o;return h.createElement(ff,{open:i,onOpenChange:c},h.createElement(hf,{container:m},h.createElement(gf,{"cmdk-overlay":"",className:f}),h.createElement(vf,{"aria-label":o.label,"cmdk-dialog":"",className:p},h.createElement(Ef,{ref:u,...g}))))}),k0=h.forwardRef((o,u)=>cr(i=>i.filtered.count===0)?h.createElement(Ge.div,{ref:u,...o,"cmdk-empty":"",role:"presentation"}):null),S0=h.forwardRef((o,u)=>{let{progress:i,children:c,label:f="Loading...",...p}=o;return h.createElement(Ge.div,{ref:u,...p,"cmdk-loading":"",role:"progressbar","aria-valuenow":i,"aria-valuemin":0,"aria-valuemax":100,"aria-label":f},Ol(o,m=>h.createElement("div",{"aria-hidden":!0},m)))}),rn=Object.assign(Ef,{List:b0,Item:g0,Input:y0,Group:v0,Separator:x0,Dialog:w0,Empty:k0,Loading:S0});function N0(o,u){let i=o.nextElementSibling;for(;i;){if(i.matches(u))return i;i=i.nextElementSibling}}function j0(o,u){let i=o.previousElementSibling;for(;i;){if(i.matches(u))return i;i=i.previousElementSibling}}function Cf(o){let u=h.useRef(o);return Er(()=>{u.current=o}),u}var Er=typeof window>"u"?h.useEffect:h.useLayoutEffect;function ln(o){let u=h.useRef();return u.current===void 0&&(u.current=o()),u}function cr(o){let u=aa(),i=()=>o(u.snapshot());return h.useSyncExternalStore(u.subscribe,i,i)}function _f(o,u,i,c=[]){let f=h.useRef(),p=no();return Er(()=>{var m;let g=(()=>{var k;for(let S of i){if(typeof S=="string")return S.trim();if(typeof S=="object"&&"current"in S)return S.current?(k=S.current.textContent)==null?void 0:k.trim():f.current}})(),N=c.map(k=>k.trim());p.value(o,g,N),(m=u.current)==null||m.setAttribute(on,g),f.current=g}),f}var E0=()=>{let[o,u]=h.useState(),i=ln(()=>new Map);return Er(()=>{i.current.forEach(c=>c()),i.current=new Map},[o]),(c,f)=>{i.current.set(c,f),u({})}};function C0(o){let u=o.type;return typeof u=="function"?u(o.props):"render"in u?u.render(o.props):o}function Ol({asChild:o,children:u},i){return o&&h.isValidElement(u)?h.cloneElement(C0(u),{ref:u.ref},i(u.props.children)):i(u)}var _0={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"};function P0({onNavigate:o}){const[u,i]=h.useState(!1);return h.useEffect(()=>{const c=f=>{(f.metaKey||f.ctrlKey)&&f.key.toLowerCase()==="k"&&(f.preventDefault(),i(p=>!p))};return document.addEventListener("keydown",c),()=>document.removeEventListener("keydown",c)},[]),s.jsx(rn.Dialog,{open:u,onOpenChange:i,label:"Befehlspalette",className:"fixed inset-0 z-50 flex items-start justify-center bg-black/50 p-4 pt-[12vh]",onClick:()=>i(!1),children:s.jsxs("div",{className:"w-full max-w-lg overflow-hidden rounded-xl border border-border bg-popover text-popover-foreground shadow-2xl",onClick:c=>c.stopPropagation(),children:[s.jsx(rn.Input,{autoFocus:!0,placeholder:"Springe zu… (Modelle, Routing, System …)",className:"w-full border-b border-border bg-transparent px-4 py-3 text-sm outline-none placeholder:text-muted-foreground"}),s.jsxs(rn.List,{className:"max-h-80 overflow-y-auto p-2",children:[s.jsx(rn.Empty,{className:"px-3 py-6 text-center text-sm text-muted-foreground",children:"Nichts gefunden."}),s.jsx(rn.Group,{heading:"Bereiche",className:"px-1 py-1 text-xs text-muted-foreground",children:Qi.map(c=>s.jsxs(rn.Item,{value:`${c.label} ${c.hint}`,onSelect:()=>{o(c.id),i(!1)},className:"flex cursor-pointer items-center gap-3 rounded-md px-3 py-2 text-sm text-foreground aria-selected:bg-accent aria-selected:text-accent-foreground",children:[s.jsx(c.icon,{className:"h-4 w-4 text-primary"}),s.jsx("span",{children:c.label}),s.jsx("span",{className:"ml-auto truncate text-xs text-muted-foreground",children:c.hint})]},c.id))})]})]})})}async function pe(o,u){const i=await fetch(o,{headers:{"Content-Type":"application/json"},...u});if(!i.ok)throw new Error(`${i.status} ${i.statusText}`);return i.json()}function Pf(o){var u,i,c="";if(typeof o=="string"||typeof o=="number")c+=o;else if(typeof o=="object")if(Array.isArray(o)){var f=o.length;for(u=0;u{const u=T0(o),{conflictingClassGroups:i,conflictingClassGroupModifiers:c}=o;return{getClassGroupId:m=>{const g=m.split(ua);return g[0]===""&&g.length!==1&&g.shift(),Rf(g,u)||L0(m)},getConflictingClassGroupIds:(m,g)=>{const N=i[m]||[];return g&&c[m]?[...N,...c[m]]:N}}},Rf=(o,u)=>{var m;if(o.length===0)return u.classGroupId;const i=o[0],c=u.nextPart.get(i),f=c?Rf(o.slice(1),c):void 0;if(f)return f;if(u.validators.length===0)return;const p=o.join(ua);return(m=u.validators.find(({validator:g})=>g(p)))==null?void 0:m.classGroupId},Md=/^\[(.+)\]$/,L0=o=>{if(Md.test(o)){const u=Md.exec(o)[1],i=u==null?void 0:u.substring(0,u.indexOf(":"));if(i)return"arbitrary.."+i}},T0=o=>{const{theme:u,prefix:i}=o,c={nextPart:new Map,validators:[]};return D0(Object.entries(o.classGroups),i).forEach(([p,m])=>{Ji(m,c,p,u)}),c},Ji=(o,u,i,c)=>{o.forEach(f=>{if(typeof f=="string"){const p=f===""?u:Ld(u,f);p.classGroupId=i;return}if(typeof f=="function"){if(O0(f)){Ji(f(c),u,i,c);return}u.validators.push({validator:f,classGroupId:i});return}Object.entries(f).forEach(([p,m])=>{Ji(m,Ld(u,p),i,c)})})},Ld=(o,u)=>{let i=o;return u.split(ua).forEach(c=>{i.nextPart.has(c)||i.nextPart.set(c,{nextPart:new Map,validators:[]}),i=i.nextPart.get(c)}),i},O0=o=>o.isThemeGetter,D0=(o,u)=>u?o.map(([i,c])=>{const f=c.map(p=>typeof p=="string"?u+p:typeof p=="object"?Object.fromEntries(Object.entries(p).map(([m,g])=>[u+m,g])):p);return[i,f]}):o,z0=o=>{if(o<1)return{get:()=>{},set:()=>{}};let u=0,i=new Map,c=new Map;const f=(p,m)=>{i.set(p,m),u++,u>o&&(u=0,c=i,i=new Map)};return{get(p){let m=i.get(p);if(m!==void 0)return m;if((m=c.get(p))!==void 0)return f(p,m),m},set(p,m){i.has(p)?i.set(p,m):f(p,m)}}},Mf="!",I0=o=>{const{separator:u,experimentalParseClassName:i}=o,c=u.length===1,f=u[0],p=u.length,m=g=>{const N=[];let k=0,S=0,E;for(let L=0;LS?E-S:void 0;return{modifiers:N,hasImportantModifier:M,baseClassName:T,maybePostfixModifierPosition:j}};return i?g=>i({className:g,parseClassName:m}):m},A0=o=>{if(o.length<=1)return o;const u=[];let i=[];return o.forEach(c=>{c[0]==="["?(u.push(...i.sort(),c),i=[]):i.push(c)}),u.push(...i.sort()),u},F0=o=>({cache:z0(o.cacheSize),parseClassName:I0(o),...M0(o)}),U0=/\s+/,$0=(o,u)=>{const{parseClassName:i,getClassGroupId:c,getConflictingClassGroupIds:f}=u,p=[],m=o.trim().split(U0);let g="";for(let N=m.length-1;N>=0;N-=1){const k=m[N],{modifiers:S,hasImportantModifier:E,baseClassName:P,maybePostfixModifierPosition:M}=i(k);let T=!!M,j=c(T?P.substring(0,M):P);if(!j){if(!T){g=k+(g.length>0?" "+g:g);continue}if(j=c(P),!j){g=k+(g.length>0?" "+g:g);continue}T=!1}const L=A0(S).join(":"),$=E?L+Mf:L,O=$+j;if(p.includes(O))continue;p.push(O);const I=f(j,T);for(let q=0;q0?" "+g:g)}return g};function B0(){let o=0,u,i,c="";for(;o{if(typeof o=="string")return o;let u,i="";for(let c=0;cE(S),o());return i=F0(k),c=i.cache.get,f=i.cache.set,p=g,g(N)}function g(N){const k=c(N);if(k)return k;const S=$0(N,i);return f(N,S),S}return function(){return p(B0.apply(null,arguments))}}const je=o=>{const u=i=>i[o]||[];return u.isThemeGetter=!0,u},Tf=/^\[(?:([a-z-]+):)?(.+)\]$/i,H0=/^\d+\/\d+$/,W0=new Set(["px","full","screen"]),G0=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,K0=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,Q0=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,q0=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,Y0=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,At=o=>an(o)||W0.has(o)||H0.test(o),lr=o=>dn(o,"length",ov),an=o=>!!o&&!Number.isNaN(Number(o)),Bi=o=>dn(o,"number",an),Jn=o=>!!o&&Number.isInteger(Number(o)),X0=o=>o.endsWith("%")&&an(o.slice(0,-1)),me=o=>Tf.test(o),sr=o=>G0.test(o),Z0=new Set(["length","size","percentage"]),J0=o=>dn(o,Z0,Of),ev=o=>dn(o,"position",Of),tv=new Set(["image","url"]),rv=o=>dn(o,tv,sv),nv=o=>dn(o,"",lv),eo=()=>!0,dn=(o,u,i)=>{const c=Tf.exec(o);return c?c[1]?typeof u=="string"?c[1]===u:u.has(c[1]):i(c[2]):!1},ov=o=>K0.test(o)&&!Q0.test(o),Of=()=>!1,lv=o=>q0.test(o),sv=o=>Y0.test(o),iv=()=>{const o=je("colors"),u=je("spacing"),i=je("blur"),c=je("brightness"),f=je("borderColor"),p=je("borderRadius"),m=je("borderSpacing"),g=je("borderWidth"),N=je("contrast"),k=je("grayscale"),S=je("hueRotate"),E=je("invert"),P=je("gap"),M=je("gradientColorStops"),T=je("gradientColorStopPositions"),j=je("inset"),L=je("margin"),$=je("opacity"),O=je("padding"),I=je("saturate"),q=je("scale"),oe=je("sepia"),te=je("skew"),ce=je("space"),we=je("translate"),A=()=>["auto","contain","none"],ae=()=>["auto","hidden","clip","visible","scroll"],Ce=()=>["auto",me,u],ue=()=>[me,u],ze=()=>["",At,lr],_e=()=>["auto",an,me],Ie=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],Pe=()=>["solid","dashed","dotted","double","none"],ye=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],H=()=>["start","end","center","between","around","evenly","stretch"],ee=()=>["","0",me],W=()=>["auto","avoid","all","avoid-page","page","left","right","column"],w=()=>[an,me];return{cacheSize:500,separator:":",theme:{colors:[eo],spacing:[At,lr],blur:["none","",sr,me],brightness:w(),borderColor:[o],borderRadius:["none","","full",sr,me],borderSpacing:ue(),borderWidth:ze(),contrast:w(),grayscale:ee(),hueRotate:w(),invert:ee(),gap:ue(),gradientColorStops:[o],gradientColorStopPositions:[X0,lr],inset:Ce(),margin:Ce(),opacity:w(),padding:ue(),saturate:w(),scale:w(),sepia:ee(),skew:w(),space:ue(),translate:ue()},classGroups:{aspect:[{aspect:["auto","square","video",me]}],container:["container"],columns:[{columns:[sr]}],"break-after":[{"break-after":W()}],"break-before":[{"break-before":W()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:[...Ie(),me]}],overflow:[{overflow:ae()}],"overflow-x":[{"overflow-x":ae()}],"overflow-y":[{"overflow-y":ae()}],overscroll:[{overscroll:A()}],"overscroll-x":[{"overscroll-x":A()}],"overscroll-y":[{"overscroll-y":A()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[j]}],"inset-x":[{"inset-x":[j]}],"inset-y":[{"inset-y":[j]}],start:[{start:[j]}],end:[{end:[j]}],top:[{top:[j]}],right:[{right:[j]}],bottom:[{bottom:[j]}],left:[{left:[j]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",Jn,me]}],basis:[{basis:Ce()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",me]}],grow:[{grow:ee()}],shrink:[{shrink:ee()}],order:[{order:["first","last","none",Jn,me]}],"grid-cols":[{"grid-cols":[eo]}],"col-start-end":[{col:["auto",{span:["full",Jn,me]},me]}],"col-start":[{"col-start":_e()}],"col-end":[{"col-end":_e()}],"grid-rows":[{"grid-rows":[eo]}],"row-start-end":[{row:["auto",{span:[Jn,me]},me]}],"row-start":[{"row-start":_e()}],"row-end":[{"row-end":_e()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",me]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",me]}],gap:[{gap:[P]}],"gap-x":[{"gap-x":[P]}],"gap-y":[{"gap-y":[P]}],"justify-content":[{justify:["normal",...H()]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal",...H(),"baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":[...H(),"baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[O]}],px:[{px:[O]}],py:[{py:[O]}],ps:[{ps:[O]}],pe:[{pe:[O]}],pt:[{pt:[O]}],pr:[{pr:[O]}],pb:[{pb:[O]}],pl:[{pl:[O]}],m:[{m:[L]}],mx:[{mx:[L]}],my:[{my:[L]}],ms:[{ms:[L]}],me:[{me:[L]}],mt:[{mt:[L]}],mr:[{mr:[L]}],mb:[{mb:[L]}],ml:[{ml:[L]}],"space-x":[{"space-x":[ce]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[ce]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",me,u]}],"min-w":[{"min-w":[me,u,"min","max","fit"]}],"max-w":[{"max-w":[me,u,"none","full","min","max","fit","prose",{screen:[sr]},sr]}],h:[{h:[me,u,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[me,u,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[me,u,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[me,u,"auto","min","max","fit"]}],"font-size":[{text:["base",sr,lr]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",Bi]}],"font-family":[{font:[eo]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:["tighter","tight","normal","wide","wider","widest",me]}],"line-clamp":[{"line-clamp":["none",an,Bi]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",At,me]}],"list-image":[{"list-image":["none",me]}],"list-style-type":[{list:["none","disc","decimal",me]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[o]}],"placeholder-opacity":[{"placeholder-opacity":[$]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[o]}],"text-opacity":[{"text-opacity":[$]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...Pe(),"wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",At,lr]}],"underline-offset":[{"underline-offset":["auto",At,me]}],"text-decoration-color":[{decoration:[o]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:ue()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",me]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",me]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[$]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:[...Ie(),ev]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",J0]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},rv]}],"bg-color":[{bg:[o]}],"gradient-from-pos":[{from:[T]}],"gradient-via-pos":[{via:[T]}],"gradient-to-pos":[{to:[T]}],"gradient-from":[{from:[M]}],"gradient-via":[{via:[M]}],"gradient-to":[{to:[M]}],rounded:[{rounded:[p]}],"rounded-s":[{"rounded-s":[p]}],"rounded-e":[{"rounded-e":[p]}],"rounded-t":[{"rounded-t":[p]}],"rounded-r":[{"rounded-r":[p]}],"rounded-b":[{"rounded-b":[p]}],"rounded-l":[{"rounded-l":[p]}],"rounded-ss":[{"rounded-ss":[p]}],"rounded-se":[{"rounded-se":[p]}],"rounded-ee":[{"rounded-ee":[p]}],"rounded-es":[{"rounded-es":[p]}],"rounded-tl":[{"rounded-tl":[p]}],"rounded-tr":[{"rounded-tr":[p]}],"rounded-br":[{"rounded-br":[p]}],"rounded-bl":[{"rounded-bl":[p]}],"border-w":[{border:[g]}],"border-w-x":[{"border-x":[g]}],"border-w-y":[{"border-y":[g]}],"border-w-s":[{"border-s":[g]}],"border-w-e":[{"border-e":[g]}],"border-w-t":[{"border-t":[g]}],"border-w-r":[{"border-r":[g]}],"border-w-b":[{"border-b":[g]}],"border-w-l":[{"border-l":[g]}],"border-opacity":[{"border-opacity":[$]}],"border-style":[{border:[...Pe(),"hidden"]}],"divide-x":[{"divide-x":[g]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[g]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[$]}],"divide-style":[{divide:Pe()}],"border-color":[{border:[f]}],"border-color-x":[{"border-x":[f]}],"border-color-y":[{"border-y":[f]}],"border-color-s":[{"border-s":[f]}],"border-color-e":[{"border-e":[f]}],"border-color-t":[{"border-t":[f]}],"border-color-r":[{"border-r":[f]}],"border-color-b":[{"border-b":[f]}],"border-color-l":[{"border-l":[f]}],"divide-color":[{divide:[f]}],"outline-style":[{outline:["",...Pe()]}],"outline-offset":[{"outline-offset":[At,me]}],"outline-w":[{outline:[At,lr]}],"outline-color":[{outline:[o]}],"ring-w":[{ring:ze()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[o]}],"ring-opacity":[{"ring-opacity":[$]}],"ring-offset-w":[{"ring-offset":[At,lr]}],"ring-offset-color":[{"ring-offset":[o]}],shadow:[{shadow:["","inner","none",sr,nv]}],"shadow-color":[{shadow:[eo]}],opacity:[{opacity:[$]}],"mix-blend":[{"mix-blend":[...ye(),"plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":ye()}],filter:[{filter:["","none"]}],blur:[{blur:[i]}],brightness:[{brightness:[c]}],contrast:[{contrast:[N]}],"drop-shadow":[{"drop-shadow":["","none",sr,me]}],grayscale:[{grayscale:[k]}],"hue-rotate":[{"hue-rotate":[S]}],invert:[{invert:[E]}],saturate:[{saturate:[I]}],sepia:[{sepia:[oe]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[i]}],"backdrop-brightness":[{"backdrop-brightness":[c]}],"backdrop-contrast":[{"backdrop-contrast":[N]}],"backdrop-grayscale":[{"backdrop-grayscale":[k]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[S]}],"backdrop-invert":[{"backdrop-invert":[E]}],"backdrop-opacity":[{"backdrop-opacity":[$]}],"backdrop-saturate":[{"backdrop-saturate":[I]}],"backdrop-sepia":[{"backdrop-sepia":[oe]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[m]}],"border-spacing-x":[{"border-spacing-x":[m]}],"border-spacing-y":[{"border-spacing-y":[m]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",me]}],duration:[{duration:w()}],ease:[{ease:["linear","in","out","in-out",me]}],delay:[{delay:w()}],animate:[{animate:["none","spin","ping","pulse","bounce",me]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[q]}],"scale-x":[{"scale-x":[q]}],"scale-y":[{"scale-y":[q]}],rotate:[{rotate:[Jn,me]}],"translate-x":[{"translate-x":[we]}],"translate-y":[{"translate-y":[we]}],"skew-x":[{"skew-x":[te]}],"skew-y":[{"skew-y":[te]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",me]}],accent:[{accent:["auto",o]}],appearance:[{appearance:["none","auto"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",me]}],"caret-color":[{caret:[o]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":ue()}],"scroll-mx":[{"scroll-mx":ue()}],"scroll-my":[{"scroll-my":ue()}],"scroll-ms":[{"scroll-ms":ue()}],"scroll-me":[{"scroll-me":ue()}],"scroll-mt":[{"scroll-mt":ue()}],"scroll-mr":[{"scroll-mr":ue()}],"scroll-mb":[{"scroll-mb":ue()}],"scroll-ml":[{"scroll-ml":ue()}],"scroll-p":[{"scroll-p":ue()}],"scroll-px":[{"scroll-px":ue()}],"scroll-py":[{"scroll-py":ue()}],"scroll-ps":[{"scroll-ps":ue()}],"scroll-pe":[{"scroll-pe":ue()}],"scroll-pt":[{"scroll-pt":ue()}],"scroll-pr":[{"scroll-pr":ue()}],"scroll-pb":[{"scroll-pb":ue()}],"scroll-pl":[{"scroll-pl":ue()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",me]}],fill:[{fill:[o,"none"]}],"stroke-w":[{stroke:[At,lr,Bi]}],stroke:[{stroke:[o,"none"]}],sr:["sr-only","not-sr-only"],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]}}},av=V0(iv);function de(...o){return av(R0(o))}function nn(o){return(o/1024**3).toFixed(1)}function Nl({value:o,label:u,detail:i}){const f=2*Math.PI*24,p=f-Math.min(o,100)/100*f,m=o>90?"stroke-red-500":o>75?"stroke-amber-500":"stroke-primary";return s.jsxs("div",{className:"flex flex-col items-center gap-1.5 p-2 bg-background/20 rounded-xl border border-border/40",children:[s.jsxs("div",{className:"relative flex h-16 w-16 items-center justify-center",children:[s.jsxs("svg",{className:"absolute inset-0 h-full w-full -rotate-90",children:[s.jsx("circle",{cx:"32",cy:"32",r:24,className:"stroke-muted fill-none",strokeWidth:"4.5"}),s.jsx("circle",{cx:"32",cy:"32",r:24,className:de("fill-none transition-all duration-700 ease-out",m),strokeWidth:"4.5",strokeDasharray:f,strokeDashoffset:p,strokeLinecap:"round"})]}),s.jsxs("span",{className:"text-xs font-mono font-bold tracking-tight text-foreground",children:[Math.round(o),"%"]})]}),s.jsx("span",{className:"text-[11px] font-semibold text-muted-foreground uppercase tracking-wider",children:u}),i&&s.jsx("span",{className:"text-[10px] font-mono text-muted-foreground/80",children:i})]})}function uv(){const[o,u]=h.useState(null),[i,c]=h.useState(null),[f,p]=h.useState([]),[m,g]=h.useState([]),[N,k]=h.useState([]),[S,E]=h.useState(""),[P,M]=h.useState("stable"),[T,j]=h.useState(!1);function L(){pe("/api/system/status").then(u).catch(()=>{}),pe("/api/agent/status").then(c).catch(()=>{}),pe("/api/models").then(I=>{p(I.models),g(I.running||[])}).catch(()=>{}),pe("/api/memory?category=").then(I=>k(I.slice(0,3))).catch(()=>{})}h.useEffect(()=>{L();const I=setInterval(L,3e3);return()=>clearInterval(I)},[]);async function $(){if(!(!S.trim()||T)){j(!0);try{await pe("/api/memory",{method:"POST",body:JSON.stringify({content:S,category:P,source:"dashboard"})}),E(""),pe("/api/memory?category=").then(I=>k(I.slice(0,3))).catch(()=>{})}catch(I){console.error(I)}finally{j(!1)}}}const O=f.filter(I=>I.role);return s.jsxs("div",{className:"space-y-6",children:[s.jsxs("div",{children:[s.jsx("h1",{className:"text-2xl font-space font-bold tracking-tight bg-gradient-to-r from-foreground via-foreground to-primary bg-clip-text text-transparent",children:"Zentrale"}),s.jsx("p",{className:"text-sm text-muted-foreground",children:"Aktueller Status von System, Modellen und Agent."})]}),s.jsxs("div",{className:"grid gap-6 sm:grid-cols-2",children:[s.jsxs("div",{className:"flex flex-col justify-between rounded-2xl border border-border/60 bg-card/45 backdrop-blur-md p-5 shadow-lg shadow-black/15",children:[s.jsxs("div",{children:[s.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[s.jsx(jr,{className:"h-4.5 w-4.5 text-primary"}),s.jsx("h2",{className:"text-sm font-semibold tracking-wide uppercase text-foreground",children:"System-Status"})]}),o?s.jsxs("div",{className:"grid grid-cols-2 gap-3 sm:grid-cols-4",children:[s.jsx(Nl,{value:o.cpu.percent,label:"CPU",detail:`${o.cpu.cores} Cores`}),s.jsx(Nl,{value:o.ram.percent,label:"RAM",detail:`${nn(o.ram.used)} / ${nn(o.ram.total)} GB`}),o.gpu&&o.gpu.busy_percent!=null&&s.jsx(Nl,{value:o.gpu.busy_percent,label:"GPU",detail:o.gpu.gtt_used!=null&&o.gpu.gtt_total!=null?`${nn(o.gpu.gtt_used)} / ${nn(o.gpu.gtt_total)} GB`:void 0}),o.disk&&s.jsx(Nl,{value:o.disk.percent,label:"Disk",detail:`${nn(o.disk.used)} / ${nn(o.disk.total)} GB`})]}):s.jsx("div",{className:"h-28 flex items-center justify-center text-xs text-muted-foreground",children:"Lade Systemdaten…"})]}),(o==null?void 0:o.temp)&&(o.temp.cpu||o.temp.gpu)&&s.jsxs("div",{className:"mt-4 flex gap-4 text-xs font-mono text-muted-foreground/80 border-t border-border/30 pt-3",children:[o.temp.cpu!=null&&s.jsxs("span",{children:["CPU Temp: ",o.temp.cpu," °C"]}),o.temp.gpu!=null&&s.jsxs("span",{children:["GPU Temp: ",o.temp.gpu," °C"]})]})]}),s.jsxs("div",{className:"rounded-2xl border border-border/60 bg-card/45 backdrop-blur-md p-5 shadow-lg shadow-black/15 flex flex-col justify-between",children:[s.jsxs("div",{children:[s.jsxs("div",{className:"flex items-center justify-between mb-4",children:[s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx(na,{className:"h-4.5 w-4.5 text-primary"}),s.jsx("h2",{className:"text-sm font-semibold tracking-wide uppercase text-foreground",children:"Hermes Agent"})]}),(i==null?void 0:i.webui_url)&&s.jsxs("a",{href:i.webui_url,target:"_blank",rel:"noopener",className:de("flex items-center gap-1 px-3 py-1 rounded-lg text-xs font-medium transition-all",i.webui_reachable?"bg-primary text-primary-foreground hover:opacity-90 shadow-md shadow-primary/20":"border border-border text-muted-foreground"),children:[s.jsx(Pl,{className:"h-3 w-3"})," Hermes öffnen"]})]}),i?s.jsxs("div",{className:"space-y-3",children:[s.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[s.jsxs("div",{className:"p-3 bg-background/20 rounded-xl border border-border/40",children:[s.jsx("div",{className:"text-[10px] text-muted-foreground uppercase font-semibold",children:"Gateway"}),s.jsxs("div",{className:"flex items-center gap-2 mt-1",children:[s.jsx("span",{className:de("h-2 w-2 rounded-full",i.gateway_reachable?"bg-emerald-500 animate-pulse":"bg-amber-500")}),s.jsx("span",{className:"text-xs font-medium",children:i.gateway_reachable?"Online":"Offline"})]})]}),s.jsxs("div",{className:"p-3 bg-background/20 rounded-xl border border-border/40",children:[s.jsx("div",{className:"text-[10px] text-muted-foreground uppercase font-semibold",children:"WebUI"}),s.jsxs("div",{className:"flex items-center gap-2 mt-1",children:[s.jsx("span",{className:de("h-2 w-2 rounded-full",i.webui_reachable?"bg-emerald-500 animate-pulse":"bg-amber-500")}),s.jsx("span",{className:"text-xs font-medium",children:i.webui_reachable?"Online":"Offline"})]})]})]}),s.jsxs("div",{className:"p-3 bg-background/20 rounded-xl border border-border/40",children:[s.jsx("div",{className:"text-[10px] text-muted-foreground uppercase font-semibold",children:"Aktives Gehirn"}),s.jsxs("div",{className:"text-xs font-medium mt-1 font-mono text-primary flex items-center gap-1.5",children:[s.jsx(Gi,{className:"h-3.5 w-3.5"}),i.brain_model?`model: ${i.brain_model}`:"model: auto"]})]})]}):s.jsx("div",{className:"h-28 flex items-center justify-center text-xs text-muted-foreground",children:"Lade Agenten-Status…"})]}),s.jsx("div",{className:"mt-3 text-[10px] text-muted-foreground/80 border-t border-border/30 pt-3",children:"Gedächtnis & Stack-Tools via MCP gekoppelt."})]})]}),s.jsxs("div",{className:"grid gap-6 sm:grid-cols-2",children:[s.jsxs("div",{className:"rounded-2xl border border-border/60 bg-card/45 backdrop-blur-md p-5 shadow-lg shadow-black/15 flex flex-col justify-between",children:[s.jsxs("div",{children:[s.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[s.jsx(Gi,{className:"h-4.5 w-4.5 text-primary"}),s.jsx("h2",{className:"text-sm font-semibold tracking-wide uppercase text-foreground",children:"Aktive Rollen"})]}),s.jsx("div",{className:"space-y-2",children:O.length===0?s.jsx("div",{className:"text-xs text-muted-foreground py-6 text-center",children:"Keine Modelle als Rollen zugewiesen."}):O.map(I=>{const q=m.includes(I.name);return s.jsxs("div",{className:de("flex items-center justify-between p-3 rounded-xl border transition-all duration-300",q?"border-primary/50 bg-primary/5 shadow-md shadow-primary/5":"border-border/40 bg-background/20"),children:[s.jsxs("div",{children:[s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx("span",{className:de("text-xs font-semibold uppercase px-1.5 py-0.5 rounded",I.role==="fast"?"bg-cyan-500/15 text-cyan-400":I.role==="heavy"?"bg-amber-500/15 text-amber-400":I.role==="coder"?"bg-violet-500/15 text-violet-400":I.role==="vision"?"bg-pink-500/15 text-pink-400":"bg-muted text-muted-foreground"),children:I.role}),q&&s.jsxs("span",{className:"flex h-2 w-2 relative",children:[s.jsx("span",{className:"animate-ping absolute inline-flex h-full w-full rounded-full bg-emerald-400 opacity-75"}),s.jsx("span",{className:"relative inline-flex rounded-full h-2 w-2 bg-emerald-500"})]})]}),s.jsx("div",{className:"text-xs font-medium mt-1.5 truncate max-w-[200px] sm:max-w-[280px]",title:I.name,children:I.name})]}),s.jsx("div",{className:"text-[10px] font-mono text-muted-foreground",children:q?"Warm / Aktiv":"Bereit"})]},I.name)})})]}),s.jsx("div",{className:"mt-4 text-[10px] text-muted-foreground/80 border-t border-border/30 pt-3",children:"Laden erfolgt automatisch per Auto-Swap."})]}),s.jsxs("div",{className:"rounded-2xl border border-border/60 bg-card/45 backdrop-blur-md p-5 shadow-lg shadow-black/15 flex flex-col justify-between",children:[s.jsxs("div",{children:[s.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[s.jsx(Ud,{className:"h-4.5 w-4.5 text-primary"}),s.jsx("h2",{className:"text-sm font-semibold tracking-wide uppercase text-foreground",children:"Gedächtnis-Schnellform"})]}),s.jsxs("div",{className:"space-y-3",children:[s.jsx("div",{className:"flex items-start gap-2",children:s.jsx("textarea",{value:S,onChange:I=>E(I.target.value),placeholder:"Fakt / Regel auf der Box speichern...",rows:2,className:"flex-1 resize-none rounded-xl border border-border/50 bg-background/30 px-3 py-2 text-xs outline-none focus:ring-1.5 focus:ring-primary transition-all"})}),s.jsxs("div",{className:"flex items-center gap-2 justify-end",children:[s.jsxs("select",{value:P,onChange:I=>M(I.target.value),className:"rounded-lg border border-border/50 bg-background/50 px-2 py-1 text-xs outline-none",children:[s.jsx("option",{value:"stable",children:"🔵 Fakt"}),s.jsx("option",{value:"instruction",children:"📋 Regel"}),s.jsx("option",{value:"user",children:"👤 User"}),s.jsx("option",{value:"versioned",children:"🟡 Version"})]}),s.jsxs("button",{onClick:$,disabled:!S.trim()||T,className:"flex items-center gap-1 rounded-lg bg-primary px-3 py-1 text-xs font-semibold text-primary-foreground hover:opacity-90 disabled:opacity-50 transition-all cursor-pointer",children:[s.jsx(Bd,{className:"h-3.5 w-3.5"})," Speichern"]})]})]}),s.jsxs("div",{className:"mt-4 space-y-2",children:[s.jsx("div",{className:"text-[10px] text-muted-foreground uppercase font-semibold tracking-wider",children:"Zuletzt gespeichert:"}),N.length===0?s.jsx("div",{className:"text-xs text-muted-foreground/75 py-2",children:"Keine Einträge vorhanden."}):N.map(I=>s.jsxs("div",{className:"text-xs bg-background/10 border border-border/30 rounded-lg p-2 flex items-start gap-2",children:[s.jsx("span",{className:"shrink-0 text-[10px] font-mono text-muted-foreground/80 px-1 py-0.5 rounded bg-muted/20",children:I.category}),s.jsx("span",{className:"truncate flex-1 text-muted-foreground hover:text-foreground transition-colors",title:I.content,children:I.content})]},I.id))]})]}),s.jsx("div",{className:"mt-4 text-[10px] text-muted-foreground/80 border-t border-border/30 pt-3",children:"Steht allen Clients (IDEs, Hermes) per MCP zur Verfügung."})]})]})]})}function Nr({children:o,tone:u="muted"}){const i={muted:"bg-muted text-muted-foreground",primary:"bg-primary/15 text-primary",warn:"bg-amber-500/15 text-amber-500"};return s.jsx("span",{className:`rounded px-1.5 py-0.5 text-[11px] font-medium ${i[u]}`,children:o})}function Df({caps:o}){return o?s.jsxs("span",{className:"inline-flex flex-wrap gap-1",children:[o.coder&&s.jsx(Nr,{children:"💻 Code"}),o.vision&&s.jsx(Nr,{children:"👁 Bild"}),o.reasoning&&s.jsx(Nr,{children:"🧠 Reason"}),o.moe&&s.jsxs(Nr,{tone:"primary",children:["🧩 MoE",o.active_b?`·${o.active_b}b`:""]}),o.tools==="yes"&&s.jsx(Nr,{tone:"primary",children:"🛠 Tools"}),o.tools==="likely"&&s.jsx(Nr,{tone:"warn",children:"🛠 Tools?"}),o.embedding&&s.jsx(Nr,{children:"🔢 Embed"})]}):null}function Td(o){return o?o>1024**3?`${(o/1024**3).toFixed(1)} GB`:`${(o/1024**2).toFixed(0)} MB`:""}function cv(o){if(!o)return"";const u=Math.floor(o/60);return u>0?`${u} min`:`${o} s`}function dv(){const[o,u]=h.useState([]);function i(){pe("/api/jobs").then(m=>u(m.jobs||[])).catch(()=>{})}h.useEffect(()=>{i();const m=setInterval(i,2e3);return()=>clearInterval(m)},[]);async function c(m){try{await pe(`/api/jobs/${m}/cancel`,{method:"POST"}),i()}catch(g){alert(`Fehler: ${g.message}`)}}const f=o.filter(m=>m.state==="running"||m.state==="queued"),p=o.filter(m=>m.state!=="running"&&m.state!=="queued").slice(-3);return f.length===0&&p.length===0?null:s.jsxs("div",{className:"space-y-3 rounded-2xl border border-border/60 bg-card/45 backdrop-blur-md p-4 shadow-lg shadow-black/10",children:[s.jsx("div",{className:"text-[11px] font-semibold text-muted-foreground uppercase tracking-wider",children:"Aktive Downloads"}),f.map(m=>s.jsxs("div",{className:"space-y-1.5 p-3 rounded-xl bg-background/20 border border-border/40",children:[s.jsxs("div",{className:"flex justify-between items-center text-xs",children:[s.jsx("span",{className:"font-semibold truncate max-w-[250px]",children:m.label}),s.jsxs("div",{className:"flex items-center gap-3",children:[s.jsxs("span",{className:"text-muted-foreground font-mono",children:[m.progress??0,"% • ",Td(m.done_bytes),"/",Td(m.total_bytes),m.eta_s?` • ETA ${cv(m.eta_s)}`:""]}),s.jsx("button",{onClick:()=>c(m.id),className:"text-[10px] text-red-400 hover:text-red-300 font-semibold border border-red-500/25 bg-red-500/5 px-2 py-0.5 rounded transition-all",children:"Abbrechen"})]})]}),s.jsx("div",{className:"h-1.5 overflow-hidden rounded-full bg-muted",children:s.jsx("div",{className:"h-full rounded-full bg-primary transition-all duration-500",style:{width:`${m.progress??0}%`}})})]},m.id)),p.map(m=>s.jsxs("div",{className:"flex justify-between items-center text-xs text-muted-foreground px-1",children:[s.jsx("span",{className:"truncate",children:m.label}),s.jsx("span",{className:de("font-semibold text-[10px] px-1.5 py-0.5 rounded uppercase font-mono",m.state==="done"?"bg-emerald-500/10 text-emerald-400":"bg-amber-500/10 text-amber-400"),children:m.state})]},m.id))]})}function fv(o){if(!o)return"—";const u=o/1024**3;return u>=1?`${u.toFixed(1)} GB`:`${(o/1024**2).toFixed(0)} MB`}function pv(o){return o?`${Math.round(o/1024)}k`:"—"}function mv({fit:o}){const u={perfect:"bg-emerald-500/15 text-emerald-400 border border-emerald-500/20",marginal:"bg-amber-500/15 text-amber-400 border border-amber-500/20",too_tight:"bg-red-500/15 text-red-400 border border-red-500/20"}[o.level];return s.jsxs("span",{className:de("rounded px-2 py-0.5 text-[10px] font-semibold uppercase tracking-wider font-mono",u),children:[o.text," • ",o.req_gb," GB RAM"]})}const hv=["","fast","heavy","coder","reasoning","agent","vision","scout"];function gv(){const[o,u]=h.useState([]),[i,c]=h.useState([]),[f,p]=h.useState(""),[m,g]=h.useState(!0);function N(){pe("/api/models").then(P=>{u(P.models||[]),c(P.running||[])}).catch(P=>p(String(P))).finally(()=>g(!1))}h.useEffect(()=>{N();const P=setInterval(N,3e3);return()=>clearInterval(P)},[]);async function k(P,M){await pe(`/api/models/${encodeURIComponent(P)}/role`,{method:"POST",body:JSON.stringify({role:M||null})}),N()}async function S(P,M){const T=prompt("Kontextlänge (Tokens):",String(M||32768));T&&(await pe(`/api/models/${encodeURIComponent(P)}/ctx`,{method:"POST",body:JSON.stringify({ctx:parseInt(T,10)})}),N())}async function E(P){confirm(`Modell '${P}' aus der Config entfernen? (GGUF-Datei bleibt)`)&&(await pe(`/api/models/${encodeURIComponent(P)}`,{method:"DELETE"}),N())}return m?s.jsx("div",{className:"text-xs text-muted-foreground py-6 text-center",children:"Lade installierte Modelle…"}):f?s.jsxs("div",{className:"rounded-xl border border-red-500/20 bg-red-500/5 p-4 text-xs text-red-400",children:["Engine nicht erreichbar oder keine Config gefunden (",f,")."]}):s.jsx("div",{className:"grid gap-4 sm:grid-cols-2 lg:grid-cols-3",children:o.length===0?s.jsx("div",{className:"col-span-full text-xs text-muted-foreground border border-dashed border-border/60 rounded-2xl p-12 text-center",children:'Keine Modelle konfiguriert. Verwende den Tab "Modelle finden" zum Herunterladen.'}):o.map(P=>{const M=i.includes(P.name);return s.jsxs("div",{className:de("rounded-2xl border bg-card/45 backdrop-blur-md p-5 shadow-lg shadow-black/10 flex flex-col justify-between gap-4 transition-all duration-300 hover:border-primary/40 group",M?"border-primary/45 shadow-primary/5":"border-border/60"),children:[s.jsxs("div",{className:"space-y-3.5",children:[s.jsxs("div",{className:"flex items-start justify-between gap-3",children:[s.jsxs("div",{className:"space-y-1",children:[s.jsx("h3",{className:"text-xs font-bold tracking-tight text-foreground line-clamp-2 break-all",title:P.name,children:P.name}),s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx("span",{className:"text-[10px] font-mono text-muted-foreground bg-background/40 px-1.5 py-0.5 rounded border border-border/30",children:P.quant||"GGUF"}),M&&s.jsxs("span",{className:"flex items-center gap-1 text-[9px] font-semibold text-emerald-400 uppercase tracking-wider",children:[s.jsx(ra,{className:"h-3 w-3 animate-pulse"})," Warm"]})]})]}),s.jsx("button",{onClick:()=>E(P.name),className:"h-7 w-7 rounded-lg flex items-center justify-center border border-border/40 text-muted-foreground hover:text-red-400 hover:bg-red-500/5 transition-all opacity-0 group-hover:opacity-100 shrink-0",title:"Modell aus Config entfernen",children:s.jsx(Gd,{className:"h-3.5 w-3.5"})})]}),s.jsx("div",{className:"border-t border-border/30 pt-3 flex flex-wrap gap-1",children:s.jsx(Df,{caps:P.capabilities})})]}),s.jsxs("div",{className:"space-y-3 pt-2",children:[s.jsxs("div",{className:"grid grid-cols-2 gap-2 text-[10px] font-mono text-muted-foreground",children:[s.jsxs("div",{className:"flex items-center gap-1.5 p-2 bg-background/20 rounded-lg border border-border/20",children:[s.jsx($d,{className:"h-3.5 w-3.5 text-primary/80"}),s.jsxs("div",{children:[s.jsx("div",{className:"text-[8px] uppercase tracking-wider font-semibold text-muted-foreground/60",children:"Größe"}),s.jsx("div",{className:"text-foreground font-semibold",children:fv(P.size_bytes)})]})]}),s.jsxs("button",{onClick:()=>S(P.name,P.ctx),className:"flex items-center gap-1.5 p-2 bg-background/20 rounded-lg border border-border/20 hover:border-primary/40 text-left transition-colors",children:[s.jsx(ih,{className:"h-3.5 w-3.5 text-primary/80"}),s.jsxs("div",{children:[s.jsx("div",{className:"text-[8px] uppercase tracking-wider font-semibold text-muted-foreground/60",children:"Kontext"}),s.jsx("div",{className:"text-foreground font-semibold",children:pv(P.ctx)})]})]})]}),s.jsxs("div",{className:"flex items-center justify-between gap-2 border-t border-border/30 pt-3",children:[s.jsx("span",{className:"text-[10px] font-semibold text-muted-foreground uppercase tracking-wider",children:"Rolle"}),s.jsx("select",{value:P.role||"",onChange:T=>k(P.name,T.target.value),className:"h-8 rounded-lg border border-border/60 bg-background/60 px-2 py-1 text-xs outline-none focus:ring-1 focus:ring-primary/50 text-foreground cursor-pointer font-semibold min-w-[120px]",title:"Weise diesem Modell eine Systemrolle zu",children:hv.map(T=>s.jsx("option",{value:T,className:"bg-popover text-foreground",children:T||"Keine Rolle"},T))})]})]})]},P.name)})})}function vv(){const[o,u]=h.useState(""),[i,c]=h.useState([]),[f,p]=h.useState("Q4_K_M"),[m,g]=h.useState(""),[N,k]=h.useState(""),[S,E]=h.useState([]);async function P(j){const L=j??o;if(L.trim()){g("Analysiere HuggingFace Repository...");try{const $=await pe(`/api/hf/quants?repo=${encodeURIComponent(L)}`);u($.repo),c($.quants),$.quants.length&&p($.quants.includes("Q4_K_M")?"Q4_K_M":$.quants[0]),g($.quants.length?"":"Keine GGUF-Dateien in diesem Repository gefunden.")}catch($){g(`Fehler: ${$}`)}}}async function M(){if(N.trim()){g("Durchsuche HuggingFace...");try{const j=await pe(`/api/hf/search?q=${encodeURIComponent(N)}`);E(j.results),g(j.results.length?"":"Keine Ergebnisse gefunden.")}catch(j){g(`Suche fehlgeschlagen: ${j}`)}}}async function T(){if(o.trim()){g("Download-Job wird initiiert...");try{await pe("/api/models/install",{method:"POST",body:JSON.stringify({repo:o,quant:f,jinja:!0})}),g(`Download gestartet: ${o} (${f}). Fortschritt wird oben angezeigt.`)}catch(j){g(`Download-Fehler: ${j}`)}}}return s.jsxs("div",{className:"space-y-4 rounded-2xl border border-border/60 bg-card/45 backdrop-blur-md p-5 shadow-lg shadow-black/10",children:[s.jsx("div",{className:"text-xs font-bold uppercase tracking-wider text-muted-foreground",children:"HF Download & Suche"}),s.jsxs("div",{className:"flex flex-col sm:flex-row gap-2",children:[s.jsx("input",{value:o,onChange:j=>u(j.target.value),placeholder:"HF-URL oder org/repo (z.B. unsloth/Qwen2.5-Coder-7B-Instruct-GGUF)",className:"flex-1 h-9 rounded-lg border border-border/60 bg-background/40 px-3 text-xs outline-none focus:ring-1 focus:ring-primary/50 text-foreground"}),s.jsxs("div",{className:"flex gap-2",children:[s.jsx("button",{onClick:()=>P(),className:"h-9 px-4 rounded-lg border border-border/60 bg-background/20 text-xs font-semibold hover:border-primary/50 hover:bg-background/40 transition-all cursor-pointer whitespace-nowrap",children:"Quants laden"}),i.length>0&&s.jsxs(s.Fragment,{children:[s.jsx("select",{value:f,onChange:j=>p(j.target.value),className:"h-9 rounded-lg border border-border/60 bg-background/40 px-3 text-xs outline-none text-foreground font-semibold",children:i.map(j=>s.jsx("option",{value:j,className:"bg-popover text-foreground",children:j},j))}),s.jsxs("button",{onClick:T,className:"h-9 px-4 rounded-lg bg-primary text-primary-foreground text-xs font-semibold hover:opacity-90 transition-all cursor-pointer flex items-center gap-1.5",children:[s.jsx(Wi,{className:"h-3.5 w-3.5"})," Herunterladen"]})]})]})]}),s.jsxs("div",{className:"flex gap-2 border-t border-border/20 pt-4",children:[s.jsxs("div",{className:"relative flex-1",children:[s.jsx("input",{value:N,onChange:j=>k(j.target.value),onKeyDown:j=>j.key==="Enter"&&M(),placeholder:"HuggingFace durchsuchen (z.B. Llama-3.1)...",className:"w-full h-9 pl-9 pr-3 rounded-lg border border-border/60 bg-background/40 text-xs outline-none focus:ring-1 focus:ring-primary/50 text-foreground"}),s.jsx(Hd,{className:"absolute left-3 top-2.5 h-3.5 w-3.5 text-muted-foreground"})]}),s.jsx("button",{onClick:M,className:"h-9 px-4 rounded-lg border border-border/60 bg-background/20 text-xs font-semibold hover:border-primary/50 hover:bg-background/40 transition-all cursor-pointer",children:"Suchen"})]}),S.length>0&&s.jsx("div",{className:"max-h-48 space-y-1.5 overflow-y-auto border border-border/40 bg-background/20 p-2 rounded-xl scrollbar-thin",children:S.map(j=>s.jsxs("button",{onClick:()=>{u(j.repo),E([]),k(""),P(j.repo)},className:"flex w-full items-center justify-between rounded-lg px-3 py-2 text-left text-xs bg-background/10 border border-border/10 hover:border-primary/30 hover:bg-background/30 transition-all",children:[s.jsx("span",{className:"font-semibold truncate",children:j.repo}),s.jsxs("span",{className:"text-[10px] font-mono text-muted-foreground flex items-center gap-1 shrink-0",children:[s.jsx(Wi,{className:"h-3 w-3"})," ",j.downloads.toLocaleString()]})]},j.repo))}),m&&s.jsx("div",{className:"text-[10px] font-medium text-primary font-mono",children:m})]})}function xv(){const[o,u]=h.useState(null),[i,c]=h.useState(""),[f,p]=h.useState(!0),[m,g]=h.useState({});h.useEffect(()=>{pe("/api/discover").then(u).catch(k=>c(String(k))).finally(()=>p(!1))},[]);async function N(k,S,E,P){g(M=>({...M,[k]:"Starte..."}));try{await pe("/api/models/install",{method:"POST",body:JSON.stringify({repo:k,role:S,quant:E,jinja:P})}),g(M=>({...M,[k]:"Download läuft"}))}catch{g(T=>({...T,[k]:"Fehler"}))}}return f?s.jsx("div",{className:"text-xs text-muted-foreground py-12 text-center",children:"Analysiere Hardware und suche passende GGUF-Empfehlungen…"}):i||!o?s.jsxs("div",{className:"rounded-xl border border-red-500/20 bg-red-500/5 p-4 text-xs text-red-400",children:["Empfehlungsdienst temporär nicht erreichbar (",i,")."]}):s.jsxs("div",{className:"space-y-6",children:[s.jsx(vv,{}),s.jsxs("div",{className:"text-[10px] font-mono text-muted-foreground bg-background/25 border border-border/40 p-3 rounded-xl",children:["Modell-Registry geladen für ",o.sys_ram_gb," GB System-RAM • ⭐ markiert die empfohlene Standard-Rolle."]}),o.categories.map(k=>s.jsxs("div",{className:"space-y-3",children:[s.jsxs("div",{className:"flex items-center gap-2 px-1",children:[s.jsx(Gi,{className:"h-4 w-4 text-primary"}),s.jsx("h3",{className:"text-xs font-bold uppercase tracking-wider text-foreground",children:k.title})]}),s.jsx("div",{className:"grid gap-4 sm:grid-cols-2",children:k.models.map(S=>{const E=k.recommended===S.repo;return s.jsxs("div",{className:de("rounded-2xl border bg-card/45 backdrop-blur-md p-5 shadow-lg shadow-black/10 flex flex-col justify-between gap-4 transition-all duration-300 hover:border-primary/40",E?"border-primary/30":"border-border/60"),children:[s.jsxs("div",{className:"space-y-3.5",children:[s.jsxs("div",{className:"flex items-start justify-between gap-3",children:[s.jsxs("div",{className:"space-y-1",children:[s.jsxs("div",{className:"flex items-center gap-1.5",children:[E&&s.jsx("span",{title:"Empfohlen für diese Rolle",children:s.jsx(gh,{className:"h-3.5 w-3.5 text-amber-400 fill-amber-400"})}),s.jsx("h4",{className:"text-xs font-bold text-foreground truncate max-w-[200px]",title:S.name,children:S.name})]}),s.jsx("span",{className:"text-[10px] font-mono text-muted-foreground",children:S.author})]}),s.jsx("div",{className:"text-[10px] font-mono bg-background/40 px-1.5 py-0.5 rounded border border-border/30 text-muted-foreground",children:S.quant})]}),s.jsxs("div",{className:"flex flex-wrap items-center gap-1.5 border-t border-border/30 pt-3",children:[s.jsx(Df,{caps:S.caps}),s.jsx(mv,{fit:S.fit})]})]}),S.fit.level!=="too_tight"&&s.jsxs("button",{onClick:()=>N(S.repo,S.role,S.quant,S.caps.tools!=="no"),disabled:!!m[S.repo],className:de("mt-2 h-8 w-full flex items-center justify-center gap-1.5 rounded-lg text-xs font-semibold transition-all cursor-pointer border border-border/60 bg-background/20 hover:border-primary/50 disabled:opacity-50",m[S.repo]&&"border-primary/40 bg-primary/5 text-primary"),children:[s.jsx(Wi,{className:de("h-3.5 w-3.5",!m[S.repo]&&"text-primary")}),m[S.repo]||"Modell laden"]})]},S.repo)})})]},k.role))]})}function yv(){const[o,u]=h.useState("installed");return s.jsxs("div",{className:"space-y-6",children:[s.jsxs("div",{className:"flex flex-col sm:flex-row justify-between sm:items-center gap-4",children:[s.jsxs("div",{children:[s.jsx("h1",{className:"text-2xl font-space font-bold tracking-tight bg-gradient-to-r from-foreground via-foreground to-primary bg-clip-text text-transparent",children:"Modell-Zentrale"}),s.jsx("p",{className:"text-sm text-muted-foreground",children:"Verwalte installierte GGUFs, weise Systemrollen zu und lade neue Modelle von HuggingFace."})]}),s.jsx("div",{className:"flex rounded-xl border border-border/60 bg-card/45 backdrop-blur-md p-1 self-start",children:["installed","discover"].map(i=>s.jsx("button",{onClick:()=>u(i),className:de("rounded-lg px-4 py-1.5 text-xs font-semibold tracking-wide uppercase transition-all cursor-pointer",o===i?"bg-primary text-primary-foreground shadow-md shadow-primary/10":"text-muted-foreground hover:text-foreground"),children:i==="installed"?"Installiert":"Suchen & Entdecken"},i))})]}),s.jsx(dv,{}),s.jsx("div",{className:"transition-all duration-300",children:o==="installed"?s.jsx(gv,{}):s.jsx(xv,{})})]})}function bv(){const[o,u]=h.useState(null),[i,c]=h.useState("");return h.useEffect(()=>{pe("/api/routing").then(u).catch(f=>c(String(f)))},[]),s.jsxs("div",{className:"space-y-6",children:[s.jsxs("div",{children:[s.jsx("h1",{className:"text-2xl font-space font-bold tracking-tight bg-gradient-to-r from-foreground via-foreground to-primary bg-clip-text text-transparent",children:"Gateway & Routing"}),s.jsxs("p",{className:"text-sm text-muted-foreground",children:["Eingebauter OpenAI-Gateway für Vibe Coding & Hermes. Verwende den Endpunkt ",s.jsx("code",{children:"model: auto"}),", um je nach Komplexität automatisch zwischen ",s.jsx("code",{children:"fast"})," und ",s.jsx("code",{children:"heavy"})," zu routen."]})]}),i&&s.jsxs("div",{className:"rounded-xl border border-red-500/20 bg-red-500/5 p-4 text-xs text-red-400",children:["Gateway-Konfiguration nicht lesbar (",i,")."]}),o&&s.jsxs("div",{className:"space-y-6",children:[s.jsxs("div",{className:"rounded-2xl border border-border/60 bg-card/45 backdrop-blur-md p-5 shadow-lg shadow-black/10 flex flex-col sm:flex-row justify-between sm:items-center gap-4",children:[s.jsxs("div",{className:"flex items-center gap-3",children:[s.jsx("span",{className:de("h-2.5 w-2.5 rounded-full ring-2 ring-black/40",o.gateway_reachable?"bg-emerald-500 animate-pulse":"bg-amber-500")}),s.jsxs("div",{children:[s.jsx("div",{className:"text-xs font-semibold uppercase tracking-wider text-foreground",children:"Gateway-Status"}),s.jsx("div",{className:"text-[10px] text-muted-foreground mt-0.5 font-mono",children:o.endpoint||"Lokaler Proxy"})]})]}),o.heavy_threshold_chars&&s.jsxs("div",{className:"p-3 bg-background/25 rounded-xl border border-border/30 text-right",children:[s.jsx("div",{className:"text-[9px] text-muted-foreground uppercase font-bold tracking-wider",children:"Auto-Routing-Schwelle"}),s.jsxs("div",{className:"text-xs font-semibold text-primary mt-0.5 font-mono",children:["> ",o.heavy_threshold_chars.toLocaleString()," Zeichen ➔ heavy"]})]})]}),s.jsxs("div",{className:"grid gap-6 md:grid-cols-3",children:[s.jsxs("div",{className:"rounded-2xl border border-border/60 bg-card/45 backdrop-blur-md p-5 flex flex-col justify-between gap-4",children:[s.jsxs("div",{children:[s.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[s.jsx(ph,{className:"h-4.5 w-4.5 text-primary"}),s.jsx("h3",{className:"text-xs font-bold uppercase tracking-wider text-foreground",children:"1. API Ingress"})]}),s.jsxs("p",{className:"text-xs text-muted-foreground leading-relaxed",children:["Deine IDE oder dein Agent sendet Anfragen mit ",s.jsx("code",{children:"model: auto"})," an den lokalen Gateway-Port."]})]}),s.jsxs("div",{className:"p-3 bg-background/20 rounded-xl border border-border/20 font-mono text-[10px]",children:[s.jsx("div",{className:"text-muted-foreground/60",children:"HEADER"}),s.jsx("div",{className:"text-primary truncate",children:"Authorization: Bearer key"}),s.jsx("div",{className:"text-muted-foreground/60 mt-1",children:"MODEL"}),s.jsx("div",{className:"text-foreground",children:'"auto"'})]})]}),s.jsxs("div",{className:"rounded-2xl border border-border/60 bg-card/45 backdrop-blur-md p-5 flex flex-col justify-between gap-4",children:[s.jsxs("div",{children:[s.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[s.jsx(Vd,{className:"h-4.5 w-4.5 text-primary"}),s.jsx("h3",{className:"text-xs font-bold uppercase tracking-wider text-foreground",children:"2. Analysator"})]}),s.jsxs("p",{className:"text-xs text-muted-foreground leading-relaxed",children:["Der Gateway misst die Länge des Prompts. Kurze Tasks landen bei ",s.jsx("code",{children:"fast"}),", anspruchsvolle Tasks werden an ",s.jsx("code",{children:"heavy"})," weitergeleitet."]})]}),s.jsxs("div",{className:"space-y-1.5 font-mono text-[9px] p-2 bg-background/10 rounded-xl border border-border/10",children:[s.jsxs("div",{className:"flex items-center justify-between text-cyan-400",children:[s.jsxs("span",{children:["Prompt < ",o.heavy_threshold_chars]}),s.jsxs("span",{className:"flex items-center gap-1",children:["Fast-Hirn ",s.jsx(gl,{className:"h-3 w-3"})]})]}),s.jsxs("div",{className:"flex items-center justify-between text-violet-400",children:[s.jsxs("span",{children:["Prompt >= ",o.heavy_threshold_chars]}),s.jsxs("span",{className:"flex items-center gap-1",children:["Heavy-Hirn ",s.jsx(gl,{className:"h-3 w-3"})]})]})]})]}),s.jsxs("div",{className:"rounded-2xl border border-border/60 bg-card/45 backdrop-blur-md p-5 flex flex-col justify-between gap-4",children:[s.jsxs("div",{children:[s.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[s.jsx(rh,{className:"h-4.5 w-4.5 text-primary"}),s.jsx("h3",{className:"text-xs font-bold uppercase tracking-wider text-foreground",children:"3. Llama Swap"})]}),s.jsx("p",{className:"text-xs text-muted-foreground leading-relaxed",children:"Llama Swap tauscht das Modell bei Bedarf vollautomatisch im VRAM aus (Auto-Swap). Keine manuelle Zuweisung nötig."})]}),s.jsx("div",{className:"p-3 bg-primary/5 rounded-xl border border-primary/20 text-center",children:s.jsx("span",{className:"text-[10px] font-bold text-primary animate-pulse",children:"Auto-Swap aktiv"})})]})]}),s.jsxs("div",{className:"space-y-3",children:[s.jsx("h3",{className:"text-xs font-bold uppercase tracking-wider text-muted-foreground px-1",children:"Gateway-Routen"}),s.jsx("div",{className:"grid gap-3 sm:grid-cols-2",children:o.routes.map(f=>s.jsxs("div",{className:"flex items-center justify-between p-4 rounded-xl border border-border/60 bg-card/45 backdrop-blur-md hover:border-primary/30 transition-colors",children:[s.jsxs("div",{className:"space-y-1",children:[s.jsx("div",{className:"text-xs font-bold text-foreground font-mono",children:f.name}),s.jsx("div",{className:"text-[9px] text-muted-foreground uppercase",children:"Gateway-Alias"})]}),s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx(gl,{className:"h-3.5 w-3.5 text-muted-foreground/60"}),s.jsx("div",{className:"px-2.5 py-1 rounded-lg bg-background/40 border border-border/40 text-[10px] font-mono text-primary font-semibold truncate max-w-[160px] sm:max-w-[200px]",title:f.target,children:f.target})]})]},f.name))})]}),o.fallbacks.length>0&&s.jsxs("div",{className:"space-y-3",children:[s.jsxs("div",{className:"flex items-center gap-1.5 px-1",children:[s.jsx(Ym,{className:"h-4 w-4 text-amber-500"}),s.jsx("h3",{className:"text-xs font-bold uppercase tracking-wider text-muted-foreground",children:"Eskalationspfad (Fallbacks)"})]}),s.jsxs("div",{className:"rounded-2xl border border-border/60 bg-card/45 backdrop-blur-md p-4 space-y-3",children:[s.jsx("div",{className:"text-[10px] text-muted-foreground",children:"Sollte ein angefordertes Modell offline oder überlastet sein, eskaliert das Routing sequenziell entlang dieser vordefinierten Kette:"}),s.jsx("div",{className:"space-y-2",children:o.fallbacks.map((f,p)=>{const[m,g]=Object.entries(f)[0];return s.jsxs("div",{className:"flex flex-wrap items-center gap-2 p-2.5 bg-background/25 rounded-xl border border-border/20 font-mono text-xs",children:[s.jsx("span",{className:"font-semibold text-amber-400",children:m}),s.jsx(gl,{className:"h-3 w-3 text-muted-foreground/60"}),s.jsx("div",{className:"flex flex-wrap gap-1.5",children:g.map((N,k)=>s.jsx("span",{className:de("px-1.5 py-0.5 rounded text-[10px]",k===0?"bg-primary/10 text-primary border border-primary/20":"bg-muted text-muted-foreground"),children:N},k))})]},p)})})]})]})]})]})}function ir(o){return(o/1024**3).toFixed(1)}function jl({label:o,percent:u,detail:i,icon:c}){const f=u>90?"bg-red-500 shadow-md shadow-red-500/20":u>75?"bg-amber-500 shadow-md shadow-amber-500/20":"bg-primary shadow-md shadow-primary/20";return s.jsxs("div",{className:"rounded-2xl border border-border/60 bg-card/45 backdrop-blur-md p-5 shadow-lg shadow-black/10 flex flex-col justify-between gap-3 hover:border-primary/30 transition-all duration-300",children:[s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx(c,{className:"h-4.5 w-4.5 text-primary"}),s.jsx("span",{className:"text-xs font-semibold uppercase tracking-wider text-foreground",children:o})]}),s.jsxs("span",{className:"text-xs font-mono font-bold text-foreground",children:[Math.round(u),"%"]})]}),s.jsx("div",{className:"w-full h-2 bg-background/40 rounded-full overflow-hidden border border-border/20",children:s.jsx("div",{className:de("h-full transition-all duration-700 ease-out",f),style:{width:`${Math.min(u,100)}%`}})}),i&&s.jsx("div",{className:"text-[10px] font-mono text-muted-foreground/80",children:i})]})}function wv(){const[o,u]=h.useState(null),[i,c]=h.useState(""),[f,p]=h.useState(!1);function m(){pe("/api/maintenance/updates").then(u).catch(()=>{})}h.useEffect(m,[]);async function g(k,S){c(`${S} wird ausgeführt...`),p(!0);try{const E=await pe(k,{method:"POST"});c(E.job_id?`${S} gestartet (Job-ID: ${E.job_id})`:E.ok?`${S} erfolgreich ausgeführt.`:`Fehler: ${E.err||"Unbekannt"}`)}catch(E){c(`Fehler bei ${S}: ${E.message}`)}finally{p(!1)}}async function N(k,S){c(`Upgrade für ${k} wird gestartet...`);try{await pe("/api/models/install",{method:"POST",body:JSON.stringify({repo:k,role:S,quant:"Q4_K_M",jinja:!0})}),c("Upgrade-Download gestartet.")}catch(E){c(`Upgrade fehlgeschlagen: ${E.message}`)}}return s.jsxs("div",{className:"rounded-2xl border border-border/60 bg-card/45 backdrop-blur-md p-5 shadow-lg shadow-black/10 space-y-4",children:[s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsx("div",{className:"text-xs font-bold uppercase tracking-wider text-muted-foreground",children:"Wartung & Updates"}),o&&s.jsxs("div",{className:"flex gap-1.5 text-[9px] font-mono font-bold uppercase tracking-wider",children:[s.jsxs("span",{className:de("px-1.5 py-0.5 rounded",o.os?"bg-amber-500/10 text-amber-400 border border-amber-500/20":"bg-background/40 text-muted-foreground border border-border/20"),children:["OS: ",o.os]}),s.jsxs("span",{className:de("px-1.5 py-0.5 rounded",o.engine?"bg-amber-500/10 text-amber-400 border border-amber-500/20":"bg-background/40 text-muted-foreground border border-border/20"),children:["Engine: ",o.engine?"neu":"aktuell"]}),s.jsxs("span",{className:de("px-1.5 py-0.5 rounded",o.models?"bg-primary/10 text-primary border border-primary/20":"bg-background/40 text-muted-foreground border border-border/20"),children:["Modelle: ",o.models]})]})]}),s.jsxs("div",{className:"flex flex-wrap gap-2",children:[s.jsx("button",{onClick:()=>g("/api/maintenance/os-update","OS-Update"),disabled:f,className:"h-8 px-3 rounded-lg border border-border/60 bg-background/20 text-xs font-semibold hover:border-primary/50 hover:bg-background/40 transition-all cursor-pointer disabled:opacity-50",children:"OS (Apt) aktualisieren"}),s.jsx("button",{onClick:()=>g("/api/maintenance/engine-update","Engine-Update"),disabled:f,className:"h-8 px-3 rounded-lg border border-border/60 bg-background/20 text-xs font-semibold hover:border-primary/50 hover:bg-background/40 transition-all cursor-pointer disabled:opacity-50",children:"Engine aktualisieren"}),s.jsx("button",{onClick:()=>{confirm("Bist du sicher, dass du den Host neu starten willst?")&&g("/api/maintenance/reboot","Reboot")},disabled:f,className:"h-8 px-3 rounded-lg border border-red-500/30 bg-red-500/5 text-red-400 text-xs font-semibold hover:bg-red-500/10 transition-all cursor-pointer disabled:opacity-50",children:"Host Reboot"})]}),o&&o.model_list.length>0&&s.jsxs("div",{className:"mt-3 space-y-2 border-t border-border/20 pt-3",children:[s.jsx("div",{className:"text-[10px] font-bold uppercase tracking-wider text-muted-foreground",children:"Verfügbare Modell-Updates:"}),s.jsx("div",{className:"space-y-1.5",children:o.model_list.map(k=>s.jsxs("div",{className:"flex items-center justify-between p-2.5 rounded-xl bg-background/20 border border-border/30 text-xs font-semibold",children:[s.jsxs("span",{className:"truncate",children:[s.jsx("span",{className:"text-primary uppercase font-mono text-[10px] mr-1.5",children:k.role})," ",k.repo]}),s.jsx("button",{onClick:()=>N(k.repo,k.role),className:"px-2.5 py-1 text-[10px] font-bold rounded-md bg-primary text-primary-foreground hover:opacity-90 transition-all cursor-pointer",children:"Laden"})]},k.repo))})]}),i&&s.jsx("div",{className:"text-[10px] font-mono text-primary font-medium",children:i}),s.jsxs("div",{className:"text-[9px] text-muted-foreground/60 leading-normal border-t border-border/10 pt-2 flex items-center gap-1",children:[s.jsx(mh,{className:"h-3.5 w-3.5 shrink-0"}),s.jsx("span",{children:"OS-Update & Reboot benötigen NOPASSWD Berechtigungen in der sudoers Datei des Hosts."})]})]})}function kv(){const[o,u]=h.useState(null),[i,c]=h.useState(null),[f,p]=h.useState(""),[m,g]=h.useState(""),[N,k]=h.useState({});function S(){pe("/api/system/status").then(u).catch(M=>p(String(M))),pe("/api/system/services").then(c).catch(()=>{})}h.useEffect(()=>{S();const M=setInterval(S,3e3);return()=>clearInterval(M)},[]);async function E(){g("Backup snapshotted...");try{const M=await pe("/api/system/backup",{method:"POST"});g(M.ok?`Snapshot erzeugt: ${M.snapshot} (${M.files.length} Dateien)`:"Keine Änderungen zu sichern.")}catch(M){g(`Fehler: ${M.message}`)}}async function P(M){k(T=>({...T,[M]:!0}));try{const T=await pe("/api/maintenance/restart",{method:"POST",body:JSON.stringify({service:M})});T.ok?alert(`Dienst ${M} wurde erfolgreich neu gestartet.`):alert(`Fehler beim Neustart: ${T.err||"Unbekannter Fehler"}`)}catch(T){alert(`Fehler: ${T.message}`)}finally{k(T=>({...T,[M]:!1}))}}return s.jsxs("div",{className:"space-y-6",children:[s.jsxs("div",{children:[s.jsx("h1",{className:"text-2xl font-space font-bold tracking-tight bg-gradient-to-r from-foreground via-foreground to-primary bg-clip-text text-transparent",children:"System-Diagnose & Status"}),s.jsx("p",{className:"text-sm text-muted-foreground flex items-center gap-1",children:"Echtzeit-Ressourcen der Box, Dienst-Überwachung und Systempflege."})]}),f&&s.jsxs("div",{className:"rounded-xl border border-red-500/20 bg-red-500/5 p-4 text-xs text-red-400 font-mono",children:["System-Status nicht lesbar (",f,")."]}),o&&s.jsxs("div",{className:"space-y-4",children:[s.jsxs("div",{className:"grid gap-4 sm:grid-cols-2 lg:grid-cols-4",children:[s.jsx(jl,{label:"CPU",percent:o.cpu.percent,detail:o.cpu.cores?`${o.cpu.cores} Cores`:void 0,icon:jr}),s.jsx(jl,{label:"RAM",percent:o.ram.percent,detail:`${ir(o.ram.used)} / ${ir(o.ram.total)} GB`,icon:ra}),o.gpu&&o.gpu.busy_percent!=null&&s.jsx(jl,{label:"GPU",percent:o.gpu.busy_percent,detail:o.gpu.gtt_used!=null&&o.gpu.gtt_total?`${ir(o.gpu.gtt_used)} / ${ir(o.gpu.gtt_total)} GB (GTT/unified)`:o.gpu.vram_used!=null&&o.gpu.vram_total?`${ir(o.gpu.vram_used)} / ${ir(o.gpu.vram_total)} GB VRAM`:void 0,icon:jr}),o.disk&&s.jsx(jl,{label:"Disk",percent:o.disk.percent,detail:`${ir(o.disk.used)} / ${ir(o.disk.total)} GB`,icon:$d})]}),o.temp&&(o.temp.cpu||o.temp.gpu)&&s.jsxs("div",{className:"flex gap-3 text-[10px] font-mono text-muted-foreground bg-background/25 border border-border/40 p-2.5 rounded-xl self-start w-fit",children:[o.temp.cpu!=null&&s.jsxs("span",{className:"flex items-center gap-1",children:["CPU-Temperatur: ",s.jsxs("span",{className:"text-foreground font-bold",children:[o.temp.cpu," °C"]})]}),o.temp.cpu!=null&&o.temp.gpu!=null&&s.jsx("span",{children:"|"}),o.temp.gpu!=null&&s.jsxs("span",{className:"flex items-center gap-1",children:["GPU-Temperatur: ",s.jsxs("span",{className:"text-foreground font-bold",children:[o.temp.gpu," °C"]})]})]})]}),i&&s.jsxs("div",{className:"rounded-2xl border border-border/60 bg-card/45 backdrop-blur-md p-5 shadow-lg shadow-black/10 space-y-4",children:[s.jsx("div",{className:"text-xs font-bold uppercase tracking-wider text-muted-foreground",children:"Homelab-Dienste"}),s.jsx("div",{className:"grid gap-3 sm:grid-cols-2",children:i.services.map(M=>s.jsxs("div",{className:"flex items-center justify-between p-3.5 rounded-xl bg-background/20 border border-border/30 hover:border-primary/20 transition-all group",children:[s.jsxs("div",{className:"flex items-center gap-2.5 min-w-0",children:[s.jsx("span",{className:de("h-2.5 w-2.5 rounded-full ring-2 ring-black/40",M.ok?"bg-emerald-500":"bg-amber-500")}),s.jsxs("div",{className:"truncate",children:[s.jsx("div",{className:"text-xs font-bold text-foreground truncate",children:M.name}),s.jsx("div",{className:"text-[9px] text-muted-foreground/60 font-mono mt-0.5 truncate",children:M.url})]})]}),s.jsx("button",{onClick:()=>P(M.name),disabled:N[M.name],className:"h-7 w-7 rounded-lg border border-border/40 text-muted-foreground hover:text-primary hover:bg-primary/5 flex items-center justify-center transition-all opacity-0 group-hover:opacity-100",title:"Dienst neu starten",children:s.jsx(Ki,{className:de("h-3.5 w-3.5",N[M.name]&&"animate-spin")})})]},M.name))}),s.jsxs("div",{className:"flex flex-wrap gap-4 border-t border-border/20 pt-4 text-[10px] font-semibold text-muted-foreground",children:[s.jsxs("a",{href:i.links.engine_ui,target:"_blank",rel:"noopener",className:"flex items-center gap-1 text-primary hover:text-primary-foreground hover:bg-primary/10 px-2 py-1 rounded transition-colors",children:[s.jsx(Pl,{className:"h-3 w-3"})," Engine Dashboard (llama-swap)"]}),s.jsxs("a",{href:i.links.gateway,target:"_blank",rel:"noopener",className:"flex items-center gap-1 text-primary hover:text-primary-foreground hover:bg-primary/10 px-2 py-1 rounded transition-colors",children:[s.jsx(Pl,{className:"h-3 w-3"})," OpenAI Gateway"]})]})]}),s.jsxs("div",{className:"rounded-2xl border border-border/60 bg-card/45 backdrop-blur-md p-5 shadow-lg shadow-black/10 flex flex-col sm:flex-row justify-between sm:items-center gap-4",children:[s.jsxs("div",{className:"space-y-1",children:[s.jsx("h3",{className:"text-xs font-bold uppercase tracking-wider text-foreground",children:"System-Backup & Snapshot"}),s.jsx("p",{className:"text-[10px] text-muted-foreground",children:"Erzeuge einen Git-Snapshot der aktuellen Konfigurationen und des System-Zustands."})]}),s.jsx("div",{className:"flex items-center gap-3 self-start sm:self-auto shrink-0",children:s.jsxs("button",{onClick:E,className:"h-9 px-4 rounded-lg bg-primary text-primary-foreground text-xs font-semibold hover:opacity-90 transition-all flex items-center gap-1.5 cursor-pointer shadow-md shadow-primary/10",children:[s.jsx(ch,{className:"h-4 w-4"})," Snapshot erstellen"]})})]}),m&&s.jsx("div",{className:"text-[10px] font-mono text-primary font-medium bg-primary/5 p-3 rounded-xl border border-primary/20",children:m}),s.jsx(wv,{})]})}function Sv(){const[o,u]=h.useState(localStorage.getItem("mc_host")||"192.168.178.151"),[i,c]=h.useState(localStorage.getItem("mc_mcp_path")||""),[f,p]=h.useState(null),[m,g]=h.useState("cline"),[N,k]=h.useState(!1),[S,E]=h.useState("");h.useEffect(()=>{const L=new URLSearchParams;L.set("host",o),i&&L.set("mcp_path",i),pe(`/api/connect?${L}`).then(p).catch($=>E(String($)))},[o,i]);function P(L){u(L),L&&localStorage.setItem("mc_host",L)}function M(L){c(L),localStorage.setItem("mc_mcp_path",L)}const T=f==null?void 0:f.tools[m];async function j(){T&&(await navigator.clipboard.writeText(T.snippet),k(!0),setTimeout(()=>k(!1),1500))}return s.jsxs("div",{className:"space-y-6",children:[s.jsxs("div",{children:[s.jsx("h1",{className:"text-2xl font-space font-bold tracking-tight bg-gradient-to-r from-foreground via-foreground to-primary bg-clip-text text-transparent",children:"Verbindung & Integration"}),s.jsx("p",{className:"text-sm text-muted-foreground",children:"Kopiere vorgefertigte Konfigurationsdateien für deinen lokalen PC (IDEs, Cline, Roo Code, Cursor), um direkt auf das geteilte Gedächtnis und den Auto-Swap-Gateway der Box zuzugreifen."})]}),s.jsxs("div",{className:"grid gap-4 md:grid-cols-2 p-5 rounded-2xl border border-border/60 bg-card/45 backdrop-blur-md shadow-lg shadow-black/10",children:[s.jsxs("div",{className:"space-y-1.5",children:[s.jsxs("label",{className:"text-[10px] font-bold uppercase tracking-wider text-muted-foreground flex items-center gap-1.5",children:[s.jsx(nh,{className:"h-3.5 w-3.5 text-primary"})," Box LAN IP-Adresse"]}),s.jsx("input",{value:o,onChange:L=>P(L.target.value),placeholder:"z.B. 192.168.178.151",className:"w-full h-9 rounded-lg border border-border/60 bg-background/40 px-3 font-mono text-xs outline-none focus:ring-1 focus:ring-primary/50 text-foreground"})]}),s.jsxs("div",{className:"space-y-1.5",children:[s.jsxs("label",{className:"text-[10px] font-bold uppercase tracking-wider text-muted-foreground flex items-center gap-1.5",children:[s.jsx(th,{className:"h-3.5 w-3.5 text-primary"})," Lokaler MCP-Scriptpfad"]}),s.jsx("input",{value:i,onChange:L=>M(L.target.value),placeholder:"z.B. F:\\Coding Stuff\\mission-control-2\\mcp\\mcp_memory.py",className:"w-full h-9 rounded-lg border border-border/60 bg-background/40 px-3 font-mono text-xs outline-none focus:ring-1 focus:ring-primary/50 text-foreground"})]})]}),S&&s.jsxs("div",{className:"rounded-xl border border-red-500/20 bg-red-500/5 p-4 text-xs text-red-400",children:["Fehler beim Generieren der Snippets: ",S]}),f&&s.jsxs("div",{className:"space-y-4",children:[s.jsx("div",{className:"flex flex-wrap gap-1 bg-card/20 p-1 border border-border/40 rounded-xl max-w-fit",children:Object.entries(f.tools).map(([L,$])=>s.jsx("button",{onClick:()=>g(L),className:de("rounded-lg px-4 py-1.5 text-xs font-semibold tracking-wide uppercase transition-all cursor-pointer",m===L?"bg-primary text-primary-foreground shadow-md shadow-primary/10":"text-muted-foreground hover:text-foreground"),children:$.label},L))}),T&&s.jsxs("div",{className:"space-y-3",children:[T.note&&s.jsxs("div",{className:"flex items-start gap-2.5 p-3 rounded-xl bg-primary/5 border border-primary/20 text-xs text-muted-foreground leading-relaxed",children:[s.jsx(oh,{className:"h-4.5 w-4.5 text-primary shrink-0 mt-0.5"}),s.jsx("span",{children:T.note})]}),s.jsxs("div",{className:"flex flex-col border border-border/60 bg-black/60 rounded-2xl overflow-hidden shadow-2xl",children:[s.jsxs("div",{className:"flex h-11 items-center justify-between px-4 border-b border-border/40 bg-black/40 shrink-0",children:[s.jsxs("div",{className:"flex items-center gap-1.5",children:[s.jsx("span",{className:"h-3 w-3 rounded-full bg-red-500/80 shadow-md shadow-red-500/10"}),s.jsx("span",{className:"h-3 w-3 rounded-full bg-amber-500/80 shadow-md shadow-amber-500/10"}),s.jsx("span",{className:"h-3 w-3 rounded-full bg-emerald-500/80 shadow-md shadow-emerald-500/10"})]}),s.jsxs("div",{className:"flex items-center gap-1.5 text-[10px] font-mono text-muted-foreground/75 bg-background/30 px-3 py-1 rounded-md border border-border/20",children:[s.jsx(Wd,{className:"h-3.5 w-3.5 text-primary"}),s.jsx("span",{children:m==="cline"||m==="cursor"?"config.json":"settings.json"})]}),s.jsxs("button",{onClick:j,className:"flex h-7 px-2.5 items-center gap-1.5 rounded-lg border border-border/40 bg-background/30 text-[10px] font-semibold text-muted-foreground hover:text-foreground hover:bg-background/60 transition-all cursor-pointer",children:[N?s.jsx(Km,{className:"h-3.5 w-3.5 text-emerald-400"}):s.jsx(eh,{className:"h-3.5 w-3.5"}),s.jsx("span",{children:N?"Kopiert":"Kopieren"})]})]}),s.jsx("pre",{className:"p-5 overflow-x-auto text-xs font-mono text-cyan-200/90 whitespace-pre leading-relaxed scrollbar-thin select-text bg-black/10",children:s.jsx("code",{children:T.snippet})})]})]})]})]})}const Od=["user","instruction","stable","versioned","ephemeral"],Vi={user:{label:"User",icon:yh,color:"text-cyan-400",border:"border-cyan-500/30",bg:"bg-cyan-500/10",text:"text-cyan-400"},instruction:{label:"Regel",icon:dh,color:"text-violet-400",border:"border-violet-500/30",bg:"bg-violet-500/10",text:"text-violet-400"},stable:{label:"Fakt",icon:oa,color:"text-indigo-400",border:"border-indigo-500/30",bg:"bg-indigo-500/10",text:"text-indigo-400"},versioned:{label:"Version",icon:xh,color:"text-amber-400",border:"border-amber-500/30",bg:"bg-amber-500/10",text:"text-amber-400"},ephemeral:{label:"Temporär",icon:Xm,color:"text-pink-400",border:"border-pink-500/30",bg:"bg-pink-500/10",text:"text-pink-400"}},Dd={label:"Gedächtnis",icon:Wm,bg:"bg-muted/10",text:"text-muted-foreground"},Nv={user:"border-l-cyan-500/80",instruction:"border-l-violet-500/80",stable:"border-l-indigo-500/80",versioned:"border-l-amber-500/80",ephemeral:"border-l-pink-500/80"};function jv(){const[o,u]=h.useState([]),[i,c]=h.useState(""),[f,p]=h.useState(""),[m,g]=h.useState(""),[N,k]=h.useState("stable"),[S,E]=h.useState(""),[P,M]=h.useState(!1);function T(){const O=new URLSearchParams;f&&O.set("q",f),i&&O.set("category",i),pe(`/api/memory?${O}`).then(u).catch(I=>E(String(I)))}h.useEffect(T,[f,i]);async function j(){m.trim()&&(await pe("/api/memory",{method:"POST",body:JSON.stringify({content:m,category:N,source:"ui"})}),g(""),T())}async function L(O){await pe(`/api/memory/${O}`,{method:"DELETE"}),T()}async function $(){M(!0);try{const O=await pe("/api/memory/dedupe",{method:"POST",body:JSON.stringify({apply:!1})});if(O.duplicate_count===0){alert("Keine Dubletten gefunden — alles sauber.");return}confirm(`${O.duplicate_count} Dublette(n) in ${O.groups.length} Gruppe(n) gefunden. Entfernen?`)&&(await pe("/api/memory/dedupe",{method:"POST",body:JSON.stringify({apply:!0})}),T())}catch(O){alert(`Fehler: ${O.message}`)}finally{M(!1)}}return s.jsxs("div",{className:"space-y-6",children:[s.jsxs("div",{className:"flex flex-col sm:flex-row justify-between sm:items-center gap-4",children:[s.jsxs("div",{children:[s.jsx("h1",{className:"text-2xl font-space font-bold tracking-tight bg-gradient-to-r from-foreground via-foreground to-primary bg-clip-text text-transparent",children:"Gedächtnis-Pool (Memory)"}),s.jsx("p",{className:"text-sm text-muted-foreground",children:"Die geteilte Konstitution des Systems. Alle Instanzen (Hermes, IDEs, Gateway) lesen und schreiben hierauf per MCP-Protokoll."})]}),s.jsxs("button",{onClick:$,disabled:P,className:"flex h-9 px-4 items-center gap-1.5 text-xs font-semibold rounded-lg border border-border/60 bg-card hover:border-primary/50 transition-all cursor-pointer shadow-md disabled:opacity-50 shrink-0 self-start",children:[s.jsx(hh,{className:"h-4 w-4 text-primary animate-pulse"}),s.jsx("span",{children:"Deduplizieren"})]})]}),s.jsxs("div",{className:"rounded-2xl border border-border/60 bg-card/45 backdrop-blur-md p-5 shadow-lg shadow-black/10 space-y-4",children:[s.jsx("div",{className:"text-xs font-bold uppercase tracking-wider text-muted-foreground",children:"Neuen Eintrag anlegen"}),s.jsx("textarea",{value:m,onChange:O=>g(O.target.value),placeholder:"Füge eine neue Regel, eine Vorliebe oder einen stabilen Fakt über das Projekt oder dich hinzu...",rows:3,className:"w-full resize-none rounded-xl border border-border/60 bg-background/30 p-3.5 text-xs outline-none focus:ring-1 focus:ring-primary/50 text-foreground transition-all leading-relaxed"}),s.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx("span",{className:"text-[10px] font-semibold text-muted-foreground uppercase tracking-wider",children:"Kategorie"}),s.jsx("select",{value:N,onChange:O=>k(O.target.value),className:"h-8 rounded-lg border border-border/60 bg-background/50 px-2 py-1 text-xs outline-none font-semibold text-foreground cursor-pointer",children:Od.map(O=>{var I;return s.jsx("option",{value:O,className:"bg-popover text-foreground",children:((I=Vi[O])==null?void 0:I.label)||O},O)})})]}),s.jsxs("button",{onClick:j,className:"h-9 px-4 rounded-lg bg-primary text-primary-foreground text-xs font-semibold hover:opacity-90 transition-all flex items-center gap-1.5 cursor-pointer shadow-md shadow-primary/10",children:[s.jsx(Bd,{className:"h-4 w-4"})," Speichern"]})]})]}),s.jsxs("div",{className:"flex flex-col md:flex-row items-stretch md:items-center gap-3",children:[s.jsxs("div",{className:"relative flex-1",children:[s.jsx("input",{value:f,onChange:O=>p(O.target.value),placeholder:"Gedächtnis durchsuchen...",className:"w-full h-9 pl-9 pr-3 rounded-lg border border-border/60 bg-card/45 text-xs outline-none focus:ring-1 focus:ring-primary/50 text-foreground"}),s.jsx(Hd,{className:"absolute left-3 top-2.5 h-3.5 w-3.5 text-muted-foreground"})]}),s.jsxs("div",{className:"flex flex-wrap items-center gap-1.5 p-1 bg-card/30 border border-border/40 rounded-xl overflow-x-auto max-w-full",children:[s.jsx("button",{onClick:()=>c(""),className:de("h-7 px-3 rounded-lg text-[10px] font-semibold uppercase tracking-wider transition-all cursor-pointer whitespace-nowrap",i?"text-muted-foreground hover:text-foreground":"bg-primary text-primary-foreground"),children:"Alle"}),Od.map(O=>{const I=Vi[O]||Dd,q=I.icon;return s.jsxs("button",{onClick:()=>c(O),className:de("h-7 px-2.5 rounded-lg text-[10px] font-semibold uppercase tracking-wider transition-all cursor-pointer flex items-center gap-1 whitespace-nowrap",i===O?"bg-primary text-primary-foreground":"text-muted-foreground hover:text-foreground"),children:[s.jsx(q,{className:"h-3 w-3"}),s.jsx("span",{children:I.label})]},O)})]})]}),S&&s.jsxs("div",{className:"rounded-xl border border-red-500/20 bg-red-500/5 p-4 text-xs text-red-400",children:["Fehler beim Laden des Gedächtnisses: ",S]}),s.jsx("div",{className:"space-y-3",children:o.length===0?s.jsx("div",{className:"text-xs text-muted-foreground border border-dashed border-border/60 rounded-2xl p-12 text-center",children:"Keine Einträge für die aktuellen Filterkriterien gefunden."}):o.map(O=>{const I=Vi[O.category]||Dd,q=I.icon;return s.jsxs("div",{className:de("flex items-start justify-between gap-4 p-4 rounded-xl border border-l-4 bg-card/45 backdrop-blur-md border-border/60 shadow-md shadow-black/5 hover:border-primary/20 transition-all group",Nv[O.category]||"border-l-muted"),children:[s.jsxs("div",{className:"flex items-start gap-3 flex-1 min-w-0",children:[s.jsxs("span",{className:de("flex items-center gap-1 px-2 py-0.5 rounded text-[9px] font-bold uppercase tracking-wider font-mono shrink-0",I.bg,I.text),children:[s.jsx(q,{className:"h-3 w-3"}),s.jsx("span",{className:"hidden sm:inline",children:I.label})]}),s.jsx("span",{className:"text-xs text-foreground leading-relaxed break-words whitespace-pre-wrap flex-1",children:O.content})]}),s.jsxs("div",{className:"flex items-center gap-3 shrink-0",children:[s.jsx("span",{className:"text-[9px] font-mono text-muted-foreground/60 bg-background/20 px-1.5 py-0.5 rounded uppercase tracking-wider",children:O.source}),s.jsx("button",{onClick:()=>L(O.id),className:"h-7 w-7 rounded-lg flex items-center justify-center border border-border/40 text-muted-foreground hover:text-red-400 hover:bg-red-500/5 transition-all opacity-0 group-hover:opacity-100",title:"Eintrag löschen",children:s.jsx(Gd,{className:"h-3.5 w-3.5"})})]})]},O.id)})})]})}function El({label:o,ok:u,detail:i,icon:c}){return s.jsxs("div",{className:de("rounded-2xl border bg-card/45 backdrop-blur-md p-5 shadow-lg shadow-black/10 flex flex-col justify-between gap-3 hover:border-primary/40 transition-all duration-300",u?"border-border/60":"border-amber-500/30"),children:[s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsx("span",{className:"text-[10px] font-bold uppercase tracking-wider text-muted-foreground",children:o}),s.jsx(c,{className:de("h-4.5 w-4.5",u?"text-primary":"text-amber-500")})]}),s.jsxs("div",{className:"space-y-1.5",children:[s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx("span",{className:de("h-2 w-2 rounded-full ring-2 ring-black/40",u?"bg-emerald-500 animate-pulse":"bg-amber-500")}),s.jsx("span",{className:"text-xs font-semibold text-foreground",children:u?"Bereit / Online":"Offline / Inaktiv"})]}),i&&s.jsx("div",{className:"text-[10px] font-mono text-muted-foreground truncate max-w-[200px]",title:i,children:i})]})]})}function Ev(){const[o,u]=h.useState(null),[i,c]=h.useState("");return h.useEffect(()=>{const f=()=>pe("/api/agent/status").then(u).catch(m=>c(String(m)));f();const p=setInterval(f,5e3);return()=>clearInterval(p)},[]),s.jsxs("div",{className:"space-y-6",children:[s.jsxs("div",{className:"flex flex-col sm:flex-row justify-between sm:items-center gap-4",children:[s.jsxs("div",{children:[s.jsx("h1",{className:"text-2xl font-space font-bold tracking-tight bg-gradient-to-r from-foreground via-foreground to-primary bg-clip-text text-transparent",children:"Hermes Agenten-Cockpit"}),s.jsxs("p",{className:"text-sm text-muted-foreground",children:["Hermes ist ein autonomer Agent, der im Hintergrund der Box läuft (Port ",s.jsx("code",{children:":8642"}),") und seine eigene UI besitzt."]})]}),(o==null?void 0:o.webui_url)&&s.jsxs("a",{href:o.webui_url,target:"_blank",rel:"noopener",className:de("flex h-9 px-4 items-center gap-1.5 text-xs font-semibold rounded-lg transition-all cursor-pointer shadow-md shrink-0 self-start",o.webui_reachable?"bg-primary text-primary-foreground hover:opacity-90 shadow-primary/10":"border border-border/60 text-muted-foreground bg-background/20"),children:[s.jsx(Pl,{className:"h-4 w-4"}),s.jsx("span",{children:"Hermes WebUI öffnen"})]})]}),i&&s.jsxs("div",{className:"rounded-xl border border-red-500/20 bg-red-500/5 p-4 text-xs text-red-400 font-mono",children:["Status nicht lesbar (",i,")."]}),o&&s.jsxs("div",{className:"space-y-6",children:[s.jsxs("div",{className:"grid gap-4 sm:grid-cols-2 lg:grid-cols-4",children:[s.jsx(El,{label:"Agent Gateway",ok:o.gateway_reachable,detail:"Port :8642 (REST API)",icon:na}),s.jsx(El,{label:"Agent WebUI",ok:o.webui_reachable,detail:"Port :8787 (Chat UI)",icon:ra}),s.jsx(El,{label:"Aktives Gehirn",ok:o.gateway_reachable,detail:o.brain_model?`Model: ${o.brain_model}`:"Model: auto",icon:jr}),s.jsx(El,{label:"Verdrahtung",ok:o.has_config,detail:`Config: ${o.has_config?"✓":"—"} · Skills: ${o.has_skills?"✓":"—"} · Memory: ${o.has_memories?"✓":"—"}`,icon:bh})]}),!o.gateway_reachable&&s.jsxs("div",{className:"rounded-2xl border border-border/60 bg-card/45 backdrop-blur-md p-6 space-y-4 shadow-lg shadow-black/10",children:[s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx(oa,{className:"h-5 w-5 text-amber-500"}),s.jsx("h3",{className:"text-sm font-bold uppercase tracking-wider text-foreground",children:"Hermes-Agent Diagnostics"})]}),s.jsxs("div",{className:"text-xs text-muted-foreground space-y-3 leading-relaxed",children:[s.jsx("p",{children:"Der Hermes-Dienst ist auf der Box derzeit offline oder kann sich nicht mit dem lokalen llama-swap verbinden."}),s.jsxs("p",{children:["Stelle sicher, dass die systemd-Dienste auf der Box laufen. Du kannst den Status im ",s.jsx("strong",{children:"OS & Updates Drawer"})," prüfen und die Dienste bei Bedarf neu starten."]}),s.jsxs("div",{className:"p-3.5 bg-background/25 rounded-xl border border-border/30 font-mono text-[10px] space-y-1",children:[s.jsx("div",{className:"text-muted-foreground/60",children:"# Dienste manuell auf der Box prüfen:"}),s.jsx("div",{className:"text-primary",children:"systemctl --user status hermes-gateway"}),s.jsx("div",{className:"text-primary",children:"systemctl --user status hermes-webui"})]}),s.jsxs("p",{children:["Weitere Einrichtungsdetails (Brain-Konfiguration, MCP-Kopplungen, SSH-Tunneling und Such-Engines) findest du in der Dokumentationsdatei:",s.jsx("code",{className:"ml-1 px-1.5 py-0.5 rounded bg-muted/40 text-foreground border border-border/30",children:"docs/HERMES_SETUP.md"}),"."]})]})]})]})]})}function Cv({title:o,hint:u}){return s.jsxs("div",{className:"space-y-4",children:[s.jsxs("div",{children:[s.jsx("h1",{className:"text-xl font-semibold",children:o}),s.jsx("p",{className:"text-sm text-muted-foreground",children:u})]}),s.jsxs("div",{className:"flex flex-col items-center justify-center gap-3 rounded-xl border border-dashed border-border bg-card/50 py-20 text-center",children:[s.jsx(Jm,{className:"h-8 w-8 text-muted-foreground"}),s.jsx("div",{className:"text-sm text-muted-foreground",children:"Kommt in einer späteren Phase."})]})]})}const _v=[{id:"llama-swap",label:"Llama Swap",type:"system"},{id:"mission-control-2",label:"Mission Control 2",type:"user"},{id:"hermes-gateway",label:"Hermes Gateway",type:"user"},{id:"hermes-dashboard",label:"Hermes Dashboard",type:"user"},{id:"hermes-webui",label:"Hermes WebUI",type:"user"}];function Hi(o){return o==null?"":o>1024**3?`${(o/1024**3).toFixed(2)} GB`:`${(o/1024**2).toFixed(1)} MB`}function Pv({open:o,onClose:u}){const[i,c]=h.useState(null),[f,p]=h.useState([]),[m,g]=h.useState("llama-swap"),[N,k]=h.useState(""),[S,E]=h.useState(!1),[P,M]=h.useState({}),[T,j]=h.useState("maintenance"),L=h.useRef(null);function $(){pe("/api/maintenance/updates").then(c).catch(A=>console.error("Error loading updates",A))}function O(){pe("/api/jobs").then(A=>p(A.jobs||[])).catch(A=>console.error("Error loading jobs",A))}function I(A){E(!0),pe(`/api/maintenance/logs?service=${A}&lines=150`).then(ae=>{ae.ok?k(ae.text):k(`Fehler beim Laden der Logs: ${ae.err||"Unbekannter Fehler"}`)}).catch(ae=>k(`Fehler: ${ae.message}`)).finally(()=>{E(!1),setTimeout(()=>{L.current&&(L.current.scrollTop=L.current.scrollHeight)},50)})}h.useEffect(()=>{if(!o)return;$(),O();const A=setInterval(()=>{O(),$()},3e3);return()=>clearInterval(A)},[o]),h.useEffect(()=>{!o||T!=="logs"||I(m)},[o,T,m]);async function q(){try{await pe("/api/maintenance/os-update",{method:"POST"}),O(),j("maintenance")}catch(A){alert(`Fehler beim Starten des OS-Updates: ${A.message}`)}}async function oe(){try{await pe("/api/maintenance/engine-update",{method:"POST"}),O(),j("maintenance")}catch(A){alert(`Fehler: ${A.message}`)}}async function te(){if(confirm("Bist du sicher, dass du das gesamte Host-System neu starten willst?"))try{await pe("/api/maintenance/reboot",{method:"POST"}),alert("Reboot ausgelöst. System startet neu..."),u()}catch(A){alert(`Fehler: ${A.message}`)}}async function ce(A){M(ae=>({...ae,[A]:!0}));try{const ae=await pe("/api/maintenance/restart",{method:"POST",body:JSON.stringify({service:A})});ae.ok?(alert(`Dienst ${A} wurde erfolgreich neu gestartet.`),T==="logs"&&m===A&&I(A)):alert(`Fehler beim Neustart: ${ae.err||"Unbekannter Fehler"}`)}catch(ae){alert(`Fehler: ${ae.message}`)}finally{M(ae=>({...ae,[A]:!1}))}}async function we(A){try{await pe(`/api/jobs/${A}/cancel`,{method:"POST"}),O()}catch(ae){alert(`Fehler beim Abbrechen: ${ae.message}`)}}return s.jsxs(s.Fragment,{children:[s.jsx("div",{className:de("fixed inset-0 bg-black/60 backdrop-blur-sm z-50 transition-opacity duration-300",o?"opacity-100 pointer-events-auto":"opacity-0 pointer-events-none"),onClick:u}),s.jsxs("div",{className:de("fixed inset-y-0 right-0 w-full sm:w-[500px] bg-card/85 backdrop-blur-xl border-l border-border/60 shadow-2xl z-50 flex flex-col transform transition-transform duration-300 ease-in-out font-sans text-foreground",o?"translate-x-0":"translate-x-full"),children:[s.jsxs("div",{className:"flex h-16 shrink-0 items-center justify-between border-b border-border/40 px-6",children:[s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx(jr,{className:"h-4.5 w-4.5 text-primary"}),s.jsx("h2",{className:"text-sm font-semibold tracking-wide uppercase font-space",children:"OS-Zentrale & Pflege"})]}),s.jsx("button",{onClick:u,className:"flex h-8 w-8 items-center justify-center rounded-lg border border-border/40 text-muted-foreground hover:bg-accent transition-colors",children:s.jsx(wh,{className:"h-4 w-4"})})]}),s.jsxs("div",{className:"flex border-b border-border/40 px-6",children:[s.jsx("button",{onClick:()=>j("maintenance"),className:de("flex-1 py-3 text-xs font-semibold uppercase tracking-wider border-b-2 text-center transition-all",T==="maintenance"?"border-primary text-primary":"border-transparent text-muted-foreground hover:text-foreground"),children:"System-Wartung"}),s.jsx("button",{onClick:()=>j("logs"),className:de("flex-1 py-3 text-xs font-semibold uppercase tracking-wider border-b-2 text-center transition-all",T==="logs"?"border-primary text-primary":"border-transparent text-muted-foreground hover:text-foreground"),children:"System-Logs"})]}),s.jsx("div",{className:"flex-1 overflow-y-auto p-6 space-y-6",children:T==="maintenance"?s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:"space-y-3",children:[s.jsx("h3",{className:"text-xs font-bold uppercase tracking-wider text-muted-foreground",children:"Wartungsaktionen"}),s.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[s.jsxs("button",{onClick:q,className:"flex flex-col items-start gap-1 p-4 rounded-xl border border-border/60 bg-background/20 hover:border-primary/50 transition-all text-left group",children:[s.jsx(oa,{className:"h-5 w-5 text-cyan-400 mb-1 group-hover:scale-105 transition-transform"}),s.jsx("span",{className:"text-xs font-semibold",children:"OS Update (apt)"}),s.jsx("span",{className:"text-[10px] text-muted-foreground",children:i!=null&&i.os?`${i.os} Updates verfügbar`:"Auf neuestem Stand"})]}),s.jsxs("button",{onClick:oe,className:"flex flex-col items-start gap-1 p-4 rounded-xl border border-border/60 bg-background/20 hover:border-primary/50 transition-all text-left group",children:[s.jsx(fh,{className:"h-5 w-5 text-violet-400 mb-1 group-hover:scale-105 transition-transform"}),s.jsx("span",{className:"text-xs font-semibold",children:"Engine Update"}),s.jsx("span",{className:"text-[10px] text-muted-foreground",children:i!=null&&i.engine?"Update verfügbar":"Auf neuestem Stand"})]})]}),s.jsxs("button",{onClick:te,className:"flex w-full items-center gap-3 p-3 rounded-xl border border-red-500/20 bg-red-500/5 hover:bg-red-500/10 text-red-400 transition-all text-left text-xs font-semibold",children:[s.jsx(uh,{className:"h-4.5 w-4.5"}),s.jsxs("div",{children:[s.jsx("div",{children:"Host-System neu starten (Reboot)"}),s.jsx("div",{className:"text-[10px] text-red-400/80 font-normal",children:"Startet das gesamte Betriebssystem des Homelabs neu"})]})]})]}),s.jsxs("div",{className:"space-y-3",children:[s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsx("h3",{className:"text-xs font-bold uppercase tracking-wider text-muted-foreground",children:"Hintergrund-Aufgaben"}),s.jsxs("span",{className:"text-[10px] font-mono bg-primary/10 text-primary px-1.5 py-0.5 rounded-full",children:[f.filter(A=>A.state==="running"||A.state==="queued").length," Aktiv"]})]}),s.jsx("div",{className:"space-y-3",children:f.length===0?s.jsx("div",{className:"text-xs text-muted-foreground border border-dashed border-border/60 rounded-xl p-6 text-center",children:"Aktuell keine aktiven Hintergrund-Jobs."}):f.map(A=>{const ae=A.state==="running"||A.state==="queued";return s.jsxs("div",{className:de("p-3 rounded-xl border transition-all duration-300",ae?"border-primary/40 bg-primary/5 shadow-md shadow-primary/5":"border-border/40 bg-background/20 opacity-80"),children:[s.jsxs("div",{className:"flex items-start justify-between gap-3",children:[s.jsxs("div",{className:"space-y-1",children:[s.jsxs("div",{className:"text-xs font-semibold flex items-center gap-1.5",children:[ae&&s.jsxs("span",{className:"flex h-2 w-2 relative",children:[s.jsx("span",{className:"animate-ping absolute inline-flex h-full w-full rounded-full bg-primary opacity-75"}),s.jsx("span",{className:"relative inline-flex rounded-full h-2 w-2 bg-primary"})]}),A.label]}),s.jsxs("div",{className:"text-[10px] font-mono text-muted-foreground uppercase flex items-center gap-2",children:[s.jsxs("span",{children:["ID: ",A.id]}),s.jsx("span",{children:"•"}),s.jsx("span",{className:de(A.state==="done"&&"text-emerald-400",A.state==="failed"&&"text-red-400",A.state==="running"&&"text-primary",A.state==="queued"&&"text-amber-400",A.state==="canceled"&&"text-muted-foreground"),children:A.state})]})]}),ae&&s.jsx("button",{onClick:()=>we(A.id),className:"text-[10px] font-semibold text-red-400 hover:text-red-300 border border-red-500/20 bg-red-500/5 hover:bg-red-500/10 px-2 py-0.5 rounded transition-colors",children:"Abbrechen"})]}),A.state==="running"&&s.jsxs("div",{className:"mt-3 space-y-1",children:[s.jsx("div",{className:"w-full h-1.5 bg-muted rounded-full overflow-hidden",children:s.jsx("div",{className:"h-full bg-primary transition-all duration-500",style:{width:`${A.progress??0}%`}})}),s.jsxs("div",{className:"flex justify-between items-center text-[9px] font-mono text-muted-foreground",children:[s.jsxs("span",{children:[A.progress??0,"%"]}),A.done_bytes!=null&&A.total_bytes!=null&&s.jsxs("span",{children:[Hi(A.done_bytes)," / ",Hi(A.total_bytes),A.rate_bps!=null&&` (${Hi(A.rate_bps)}/s)`]}),A.eta_s!=null&&s.jsxs("span",{children:["ETA: ",A.eta_s,"s"]})]})]})]},A.id)})})]})]}):s.jsxs("div",{className:"flex flex-col h-full space-y-4",children:[s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx("select",{value:m,onChange:A=>g(A.target.value),className:"flex-1 h-9 px-3 text-xs bg-background/40 border border-border/60 rounded-lg outline-none text-foreground font-semibold",children:_v.map(A=>s.jsxs("option",{value:A.id,children:[A.label," (",A.type==="system"?"systemd-root":"user",")"]},A.id))}),s.jsxs("button",{onClick:()=>ce(m),disabled:P[m],className:"flex h-9 px-3 items-center gap-1.5 text-xs font-semibold rounded-lg border border-border/60 bg-background/20 hover:border-primary/50 transition-colors disabled:opacity-50",title:"Dienst neu starten",children:[s.jsx(Ki,{className:de("h-3.5 w-3.5",P[m]&&"animate-spin")}),"Restart"]})]}),s.jsxs("div",{className:"flex-1 flex flex-col min-h-[300px] border border-border/60 bg-black/50 rounded-xl overflow-hidden shadow-inner",children:[s.jsxs("div",{className:"flex h-9 items-center justify-between px-4 border-b border-border/40 bg-black/30 shrink-0",children:[s.jsxs("div",{className:"flex items-center gap-1.5 text-[10px] font-mono text-muted-foreground",children:[s.jsx(Wd,{className:"h-3 w-3 text-primary"}),s.jsxs("span",{children:["stdout/stderr - ",m]})]}),s.jsx("button",{onClick:()=>I(m),disabled:S,className:"text-muted-foreground hover:text-foreground transition-colors",children:s.jsx(Ki,{className:de("h-3 w-3",S&&"animate-spin")})})]}),s.jsx("pre",{ref:L,className:"flex-1 p-4 overflow-y-auto text-[10px] font-mono text-cyan-300/90 whitespace-pre-wrap select-text leading-relaxed scrollbar-thin",children:S&&!N?s.jsx("span",{className:"text-muted-foreground",children:"Lade Logs..."}):N||s.jsx("span",{className:"text-muted-foreground",children:"Keine Logeinträge vorhanden."})})]})]})})]})]})}function Rv(){const[o,u]=h.useState("dashboard"),[i,c]=h.useState(null),[f,p]=h.useState(()=>localStorage.getItem("mc_theme")!=="light"),[m,g]=h.useState(()=>localStorage.getItem("mc_sidebar_collapsed")==="true"),[N,k]=h.useState(null),[S,E]=h.useState(!1);h.useEffect(()=>{const T=()=>pe("/api/health").then(c).catch(()=>c(null));T();const j=setInterval(T,1e4);return()=>clearInterval(j)},[]),h.useEffect(()=>{const T=()=>pe("/api/maintenance/updates").then(k).catch(()=>{});T();const j=setInterval(T,2e4);return()=>clearInterval(j)},[]),h.useEffect(()=>{document.documentElement.classList.toggle("dark",f),localStorage.setItem("mc_theme",f?"dark":"light")},[f]);const P=Qi.find(T=>T.id===o),M=N?N.os+N.engine+N.models:0;return s.jsxs("div",{className:"flex h-full relative",children:[s.jsx("div",{className:"fixed inset-0 -z-50 pointer-events-none overflow-hidden bg-[hsl(222,24%,7%)]",children:s.jsx("div",{className:"absolute inset-0 opacity-25 animate-aurora bg-gradient-to-tr from-teal-500/15 via-indigo-500/10 to-purple-500/15 blur-[120px]"})}),s.jsx(P0,{onNavigate:u}),s.jsx(Pv,{open:S,onClose:()=>E(!1)}),s.jsxs("aside",{className:de("flex shrink-0 flex-col border-r border-border/40 bg-card/45 backdrop-blur-md transition-all duration-300 ease-in-out",m?"w-16":"w-60"),children:[s.jsxs("div",{className:de("flex items-center py-4 border-b border-border/40 shrink-0",m?"flex-col gap-3 px-2":"justify-between px-5"),children:[s.jsxs("div",{className:"flex items-center gap-2 overflow-hidden",children:[s.jsx("div",{className:"h-7 w-7 rounded-lg bg-primary shadow-md shadow-primary/20 shrink-0"}),!m&&s.jsxs("div",{className:"leading-tight",children:[s.jsx("div",{className:"text-sm font-semibold tracking-wide font-space",children:"Mission Control"}),s.jsx("div",{className:"text-xs text-muted-foreground",children:"2.0"})]})]}),s.jsx("button",{onClick:()=>{g(T=>{const j=!T;return localStorage.setItem("mc_sidebar_collapsed",j.toString()),j})},className:"p-1 rounded-md hover:bg-accent text-muted-foreground transition-colors cursor-pointer",title:m?"Maximieren":"Minimieren",children:m?s.jsx(qm,{className:"h-4 w-4"}):s.jsx(Qm,{className:"h-4 w-4"})})]}),s.jsx("nav",{className:"flex-1 space-y-1 px-3 py-4 overflow-y-auto",children:Qi.map(T=>s.jsxs("button",{onClick:()=>u(T.id),className:de("flex w-full items-center rounded-md text-sm transition-all cursor-pointer",m?"justify-center p-2.5":"gap-3 px-3 py-2",o===T.id?"bg-primary/15 text-primary shadow-sm shadow-primary/5":"text-muted-foreground hover:bg-accent hover:text-accent-foreground"),title:m?T.label:void 0,children:[s.jsx(T.icon,{className:"h-4.5 w-4.5 shrink-0"}),!m&&s.jsx("span",{className:"truncate",children:T.label})]},T.id))}),s.jsx("div",{className:de("py-3 text-xs text-muted-foreground border-t border-border/40 shrink-0",m?"px-2 text-center":"px-5"),children:m?s.jsx("div",{className:"flex justify-center",children:s.jsx("span",{className:de("h-2.5 w-2.5 rounded-full ring-2 ring-black/40",i?i.engine_reachable?"bg-emerald-500 animate-pulse":"bg-amber-500":"bg-red-500"),title:i?`Engine ${i.engine_reachable?"online":"offline"}`:"Backend offline"})}):i?s.jsxs("span",{className:"flex items-center gap-2",children:[s.jsx("span",{className:de("h-2 w-2 rounded-full",i.engine_reachable?"bg-emerald-500":"bg-amber-500")}),s.jsxs("span",{className:"truncate",children:["Engine ",i.engine_reachable?"online":"offline"," · v",i.version]})]}):s.jsxs("span",{className:"flex items-center gap-2",children:[s.jsx("span",{className:"h-2 w-2 rounded-full bg-red-500"})," ",s.jsx("span",{className:"truncate",children:"Backend offline"})]})})]}),s.jsxs("div",{className:"flex min-w-0 flex-1 flex-col",children:[s.jsxs("header",{className:"flex h-14 shrink-0 items-center justify-between border-b border-border/40 px-6 bg-card/20 backdrop-blur-sm",children:[s.jsx("div",{className:"text-xs font-medium text-muted-foreground tracking-wide uppercase font-sans",children:P.hint}),s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsxs("button",{onClick:()=>E(!0),className:"relative flex h-8 items-center rounded-md border border-border/40 bg-background/40 px-3 text-xs text-muted-foreground hover:bg-accent hover:text-accent-foreground gap-1.5 transition-all cursor-pointer font-semibold",title:"System-Pflege öffnen",children:[s.jsx(jr,{className:"h-3.5 w-3.5"}),s.jsx("span",{children:"OS & Updates"}),M>0&&s.jsxs("span",{className:"flex h-1.5 w-1.5 relative",children:[s.jsx("span",{className:"animate-ping absolute inline-flex h-full w-full rounded-full bg-amber-400 opacity-75"}),s.jsx("span",{className:"relative inline-flex rounded-full h-1.5 w-1.5 bg-amber-500"})]})]}),s.jsx("a",{href:"https://git.tobisniceshomelab.ddnsfree.com/Hitonabi/mission-control-v2/src/branch/main/docs/BEDIENUNG.md",target:"_blank",rel:"noopener",className:"flex h-8 items-center rounded-md border border-border/40 bg-background/40 px-2.5 text-xs text-muted-foreground hover:bg-accent hover:text-accent-foreground transition-all cursor-pointer font-semibold",title:"Bedien-Anleitung",children:"Hilfe"}),s.jsx("button",{onClick:()=>p(T=>!T),className:"flex h-8 w-8 items-center justify-center rounded-md border border-border/40 bg-background/40 text-muted-foreground hover:bg-accent hover:text-accent-foreground transition-all cursor-pointer",title:"Hell/Dunkel",children:f?s.jsx(vh,{className:"h-3.5 w-3.5"}):s.jsx(sh,{className:"h-3.5 w-3.5"})}),s.jsxs("button",{onClick:()=>{const T=new KeyboardEvent("keydown",{key:"k",metaKey:!0});document.dispatchEvent(T)},className:"flex items-center gap-2 rounded-md border border-border/40 bg-background/40 px-2.5 py-1.5 text-xs text-muted-foreground hover:bg-accent hover:text-accent-foreground transition-all cursor-pointer",children:[s.jsx(Zm,{className:"h-3.5 w-3.5"}),s.jsx("span",{children:"Suchen"}),s.jsx("kbd",{className:"rounded bg-muted px-1.5 py-0.5 font-mono text-[9px]",children:"⌘K"})]})]})]}),s.jsxs("main",{className:"flex-1 overflow-y-auto p-6 scrollbar-thin",children:[o==="dashboard"&&s.jsx(uv,{}),o==="models"&&s.jsx(yv,{}),o==="routing"&&s.jsx(bv,{}),o==="system"&&s.jsx(kv,{}),o==="connect"&&s.jsx(Sv,{}),o==="memory"&&s.jsx(jv,{}),o==="agent"&&s.jsx(Ev,{}),!["dashboard","models","routing","system","connect","memory","agent"].includes(o)&&s.jsx(Cv,{title:P.label,hint:P.hint})]})]})]})}$m.createRoot(document.getElementById("root")).render(s.jsx(Id.StrictMode,{children:s.jsx(Rv,{})})); diff --git a/frontend/dist/assets/index-GX6Y3U0B.css b/frontend/dist/assets/index-GX6Y3U0B.css deleted file mode 100644 index bb402f0..0000000 --- a/frontend/dist/assets/index-GX6Y3U0B.css +++ /dev/null @@ -1 +0,0 @@ -@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Space+Grotesk:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-pan-x:initial;--tw-pan-y:initial;--tw-pinch-zoom:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-divide-x-reverse:0;--tw-border-style:solid;--tw-divide-y-reverse:0;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:root,:host{--font-sans:"Inter", ui-sans-serif, system-ui, -apple-system, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, monospace;--color-red-300:oklch(80.8% .114 19.571);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-500:oklch(69.6% .17 162.48);--color-teal-500:oklch(70.4% .14 182.503);--color-cyan-200:oklch(91.7% .08 205.041);--color-cyan-300:oklch(86.5% .127 207.078);--color-cyan-400:oklch(78.9% .154 211.53);--color-cyan-500:oklch(71.5% .143 215.221);--color-indigo-400:oklch(67.3% .182 276.935);--color-indigo-500:oklch(58.5% .233 277.117);--color-violet-400:oklch(70.2% .183 293.541);--color-violet-500:oklch(60.6% .25 292.717);--color-purple-500:oklch(62.7% .265 303.9);--color-pink-400:oklch(71.8% .202 349.761);--color-pink-500:oklch(65.6% .241 354.308);--color-black:#000;--spacing:.25rem;--container-lg:32rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wide:.025em;--tracking-wider:.05em;--leading-tight:1.25;--leading-normal:1.5;--leading-relaxed:1.625;--radius-xl:.75rem;--radius-2xl:1rem;--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-ping:ping 1s cubic-bezier(0, 0, .2, 1) infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-sm:8px;--blur-md:12px;--blur-xl:24px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:"Inter", ui-sans-serif, system-ui, -apple-system, sans-serif;--default-mono-font-family:"JetBrains Mono", ui-monospace, SFMono-Regular, monospace}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.not-sr-only{clip-path:none;white-space:normal;width:auto;height:auto;margin:0;padding:0;position:static;overflow:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.inset-y-0{inset-block:0}.top-2\.5{top:calc(var(--spacing) * 2.5)}.right-0{right:0}.left-3{left:calc(var(--spacing) * 3)}.isolate{isolation:isolate}.isolation-auto{isolation:auto}.-z-50{z-index:-50}.z-50{z-index:50}.col-span-full{grid-column:1/-1}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.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-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mr-1\.5{margin-right:calc(var(--spacing) * 1.5)}.mb-1{margin-bottom:var(--spacing)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.ml-1{margin-left:var(--spacing)}.ml-auto{margin-left:auto}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.flow-root{display:flow-root}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.inline-grid{display:inline-grid}.inline-table{display:inline-table}.list-item{display:list-item}.table{display:table}.table-caption{display:table-caption}.table-cell{display:table-cell}.table-column{display:table-column}.table-column-group{display:table-column-group}.table-footer-group{display:table-footer-group}.table-header-group{display:table-header-group}.table-row{display:table-row}.table-row-group{display:table-row-group}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-4\.5{height:calc(var(--spacing) * 4.5)}.h-5{height:calc(var(--spacing) * 5)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-11{height:calc(var(--spacing) * 11)}.h-14{height:calc(var(--spacing) * 14)}.h-16{height:calc(var(--spacing) * 16)}.h-28{height:calc(var(--spacing) * 28)}.h-full{height:100%}.max-h-48{max-height:calc(var(--spacing) * 48)}.max-h-80{max-height:calc(var(--spacing) * 80)}.min-h-\[300px\]{min-height:300px}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-3{width:calc(var(--spacing) * 3)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-4{width:calc(var(--spacing) * 4)}.w-4\.5{width:calc(var(--spacing) * 4.5)}.w-5{width:calc(var(--spacing) * 5)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-16{width:calc(var(--spacing) * 16)}.w-36{width:calc(var(--spacing) * 36)}.w-60{width:calc(var(--spacing) * 60)}.w-fit{width:fit-content}.w-full{width:100%}.max-w-\[160px\]{max-width:160px}.max-w-\[200px\]{max-width:200px}.max-w-\[250px\]{max-width:250px}.max-w-fit{max-width:fit-content}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.min-w-0{min-width:0}.min-w-\[120px\]{min-width:120px}.min-w-\[240px\]{min-width:240px}.min-w-\[280px\]{min-width:280px}.flex-1{flex:1}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.translate-x-0{--tw-translate-x:0;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-full{--tw-translate-x:100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.-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,)}.animate-ping{animation:var(--animate-ping)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-pointer{cursor:pointer}.touch-pinch-zoom{--tw-pinch-zoom:pinch-zoom;touch-action:var(--tw-pan-x,) var(--tw-pan-y,) var(--tw-pinch-zoom,)}.resize{resize:both}.resize-none{resize:none}.scrollbar-thin{scrollbar-width:thin}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-reverse>:not(:last-child)){--tw-space-y-reverse:1}:where(.space-x-reverse>:not(:last-child)){--tw-space-x-reverse:1}:where(.divide-x>:not(:last-child)){--tw-divide-x-reverse:0;border-inline-style:var(--tw-border-style);border-inline-start-width:calc(1px * var(--tw-divide-x-reverse));border-inline-end-width:calc(1px * calc(1 - var(--tw-divide-x-reverse)))}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-y-reverse>:not(:last-child)){--tw-divide-y-reverse:1}.self-start{align-self:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-s{border-start-start-radius:.25rem;border-end-start-radius:.25rem}.rounded-ss{border-start-start-radius:.25rem}.rounded-e{border-start-end-radius:.25rem;border-end-end-radius:.25rem}.rounded-se{border-start-end-radius:.25rem}.rounded-ee{border-end-end-radius:.25rem}.rounded-es{border-end-start-radius:.25rem}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.rounded-l{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-tl{border-top-left-radius:.25rem}.rounded-r{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.rounded-tr{border-top-right-radius:.25rem}.rounded-b{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-br{border-bottom-right-radius:.25rem}.rounded-bl{border-bottom-left-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.border-x{border-inline-style:var(--tw-border-style);border-inline-width:1px}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-s{border-inline-start-style:var(--tw-border-style);border-inline-start-width:1px}.border-e{border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-4{border-left-style:var(--tw-border-style);border-left-width:4px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-amber-500\/20{border-color:#f99c0033}@supports (color:color-mix(in lab,red,red)){.border-amber-500\/20{border-color:color-mix(in oklab,var(--color-amber-500) 20%,transparent)}}.border-amber-500\/30{border-color:#f99c004d}@supports (color:color-mix(in lab,red,red)){.border-amber-500\/30{border-color:color-mix(in oklab,var(--color-amber-500) 30%,transparent)}}.border-border,.border-border\/10{border-color:hsl(var(--border))}@supports (color:color-mix(in lab,red,red)){.border-border\/10{border-color:color-mix(in oklab,hsl(var(--border)) 10%,transparent)}}.border-border\/20{border-color:hsl(var(--border))}@supports (color:color-mix(in lab,red,red)){.border-border\/20{border-color:color-mix(in oklab,hsl(var(--border)) 20%,transparent)}}.border-border\/30{border-color:hsl(var(--border))}@supports (color:color-mix(in lab,red,red)){.border-border\/30{border-color:color-mix(in oklab,hsl(var(--border)) 30%,transparent)}}.border-border\/40{border-color:hsl(var(--border))}@supports (color:color-mix(in lab,red,red)){.border-border\/40{border-color:color-mix(in oklab,hsl(var(--border)) 40%,transparent)}}.border-border\/50{border-color:hsl(var(--border))}@supports (color:color-mix(in lab,red,red)){.border-border\/50{border-color:color-mix(in oklab,hsl(var(--border)) 50%,transparent)}}.border-border\/60{border-color:hsl(var(--border))}@supports (color:color-mix(in lab,red,red)){.border-border\/60{border-color:color-mix(in oklab,hsl(var(--border)) 60%,transparent)}}.border-cyan-500\/30{border-color:#00b7d74d}@supports (color:color-mix(in lab,red,red)){.border-cyan-500\/30{border-color:color-mix(in oklab,var(--color-cyan-500) 30%,transparent)}}.border-emerald-500\/20{border-color:#00bb7f33}@supports (color:color-mix(in lab,red,red)){.border-emerald-500\/20{border-color:color-mix(in oklab,var(--color-emerald-500) 20%,transparent)}}.border-indigo-500\/30{border-color:#625fff4d}@supports (color:color-mix(in lab,red,red)){.border-indigo-500\/30{border-color:color-mix(in oklab,var(--color-indigo-500) 30%,transparent)}}.border-pink-500\/30{border-color:#f6339a4d}@supports (color:color-mix(in lab,red,red)){.border-pink-500\/30{border-color:color-mix(in oklab,var(--color-pink-500) 30%,transparent)}}.border-primary,.border-primary\/20{border-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.border-primary\/20{border-color:color-mix(in oklab,hsl(var(--primary)) 20%,transparent)}}.border-primary\/30{border-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.border-primary\/30{border-color:color-mix(in oklab,hsl(var(--primary)) 30%,transparent)}}.border-primary\/40{border-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.border-primary\/40{border-color:color-mix(in oklab,hsl(var(--primary)) 40%,transparent)}}.border-primary\/45{border-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.border-primary\/45{border-color:color-mix(in oklab,hsl(var(--primary)) 45%,transparent)}}.border-primary\/50{border-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.border-primary\/50{border-color:color-mix(in oklab,hsl(var(--primary)) 50%,transparent)}}.border-red-500\/20{border-color:#fb2c3633}@supports (color:color-mix(in lab,red,red)){.border-red-500\/20{border-color:color-mix(in oklab,var(--color-red-500) 20%,transparent)}}.border-red-500\/25{border-color:#fb2c3640}@supports (color:color-mix(in lab,red,red)){.border-red-500\/25{border-color:color-mix(in oklab,var(--color-red-500) 25%,transparent)}}.border-red-500\/30{border-color:#fb2c364d}@supports (color:color-mix(in lab,red,red)){.border-red-500\/30{border-color:color-mix(in oklab,var(--color-red-500) 30%,transparent)}}.border-transparent{border-color:#0000}.border-violet-500\/30{border-color:#8d54ff4d}@supports (color:color-mix(in lab,red,red)){.border-violet-500\/30{border-color:color-mix(in oklab,var(--color-violet-500) 30%,transparent)}}.border-l-amber-500\/80{border-left-color:#f99c00cc}@supports (color:color-mix(in lab,red,red)){.border-l-amber-500\/80{border-left-color:color-mix(in oklab,var(--color-amber-500) 80%,transparent)}}.border-l-cyan-500\/80{border-left-color:#00b7d7cc}@supports (color:color-mix(in lab,red,red)){.border-l-cyan-500\/80{border-left-color:color-mix(in oklab,var(--color-cyan-500) 80%,transparent)}}.border-l-indigo-500\/80{border-left-color:#625fffcc}@supports (color:color-mix(in lab,red,red)){.border-l-indigo-500\/80{border-left-color:color-mix(in oklab,var(--color-indigo-500) 80%,transparent)}}.border-l-muted{border-left-color:hsl(var(--muted))}.border-l-pink-500\/80{border-left-color:#f6339acc}@supports (color:color-mix(in lab,red,red)){.border-l-pink-500\/80{border-left-color:color-mix(in oklab,var(--color-pink-500) 80%,transparent)}}.border-l-violet-500\/80{border-left-color:#8d54ffcc}@supports (color:color-mix(in lab,red,red)){.border-l-violet-500\/80{border-left-color:color-mix(in oklab,var(--color-violet-500) 80%,transparent)}}.bg-\[hsl\(222\,24\%\,7\%\)\]{background-color:#0e1016}.bg-amber-400{background-color:var(--color-amber-400)}.bg-amber-500{background-color:var(--color-amber-500)}.bg-amber-500\/10{background-color:#f99c001a}@supports (color:color-mix(in lab,red,red)){.bg-amber-500\/10{background-color:color-mix(in oklab,var(--color-amber-500) 10%,transparent)}}.bg-amber-500\/15{background-color:#f99c0026}@supports (color:color-mix(in lab,red,red)){.bg-amber-500\/15{background-color:color-mix(in oklab,var(--color-amber-500) 15%,transparent)}}.bg-amber-500\/80{background-color:#f99c00cc}@supports (color:color-mix(in lab,red,red)){.bg-amber-500\/80{background-color:color-mix(in oklab,var(--color-amber-500) 80%,transparent)}}.bg-background,.bg-background\/10{background-color:hsl(var(--background))}@supports (color:color-mix(in lab,red,red)){.bg-background\/10{background-color:color-mix(in oklab,hsl(var(--background)) 10%,transparent)}}.bg-background\/20{background-color:hsl(var(--background))}@supports (color:color-mix(in lab,red,red)){.bg-background\/20{background-color:color-mix(in oklab,hsl(var(--background)) 20%,transparent)}}.bg-background\/25{background-color:hsl(var(--background))}@supports (color:color-mix(in lab,red,red)){.bg-background\/25{background-color:color-mix(in oklab,hsl(var(--background)) 25%,transparent)}}.bg-background\/30{background-color:hsl(var(--background))}@supports (color:color-mix(in lab,red,red)){.bg-background\/30{background-color:color-mix(in oklab,hsl(var(--background)) 30%,transparent)}}.bg-background\/40{background-color:hsl(var(--background))}@supports (color:color-mix(in lab,red,red)){.bg-background\/40{background-color:color-mix(in oklab,hsl(var(--background)) 40%,transparent)}}.bg-background\/50{background-color:hsl(var(--background))}@supports (color:color-mix(in lab,red,red)){.bg-background\/50{background-color:color-mix(in oklab,hsl(var(--background)) 50%,transparent)}}.bg-background\/60{background-color:hsl(var(--background))}@supports (color:color-mix(in lab,red,red)){.bg-background\/60{background-color:color-mix(in oklab,hsl(var(--background)) 60%,transparent)}}.bg-black\/10{background-color:#0000001a}@supports (color:color-mix(in lab,red,red)){.bg-black\/10{background-color:color-mix(in oklab,var(--color-black) 10%,transparent)}}.bg-black\/30{background-color:#0000004d}@supports (color:color-mix(in lab,red,red)){.bg-black\/30{background-color:color-mix(in oklab,var(--color-black) 30%,transparent)}}.bg-black\/40{background-color:#0006}@supports (color:color-mix(in lab,red,red)){.bg-black\/40{background-color:color-mix(in oklab,var(--color-black) 40%,transparent)}}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.bg-black\/50{background-color:color-mix(in oklab,var(--color-black) 50%,transparent)}}.bg-black\/60{background-color:#0009}@supports (color:color-mix(in lab,red,red)){.bg-black\/60{background-color:color-mix(in oklab,var(--color-black) 60%,transparent)}}.bg-card,.bg-card\/20{background-color:hsl(var(--card))}@supports (color:color-mix(in lab,red,red)){.bg-card\/20{background-color:color-mix(in oklab,hsl(var(--card)) 20%,transparent)}}.bg-card\/30{background-color:hsl(var(--card))}@supports (color:color-mix(in lab,red,red)){.bg-card\/30{background-color:color-mix(in oklab,hsl(var(--card)) 30%,transparent)}}.bg-card\/40{background-color:hsl(var(--card))}@supports (color:color-mix(in lab,red,red)){.bg-card\/40{background-color:color-mix(in oklab,hsl(var(--card)) 40%,transparent)}}.bg-card\/45{background-color:hsl(var(--card))}@supports (color:color-mix(in lab,red,red)){.bg-card\/45{background-color:color-mix(in oklab,hsl(var(--card)) 45%,transparent)}}.bg-card\/50{background-color:hsl(var(--card))}@supports (color:color-mix(in lab,red,red)){.bg-card\/50{background-color:color-mix(in oklab,hsl(var(--card)) 50%,transparent)}}.bg-card\/85{background-color:hsl(var(--card))}@supports (color:color-mix(in lab,red,red)){.bg-card\/85{background-color:color-mix(in oklab,hsl(var(--card)) 85%,transparent)}}.bg-cyan-500\/10{background-color:#00b7d71a}@supports (color:color-mix(in lab,red,red)){.bg-cyan-500\/10{background-color:color-mix(in oklab,var(--color-cyan-500) 10%,transparent)}}.bg-cyan-500\/15{background-color:#00b7d726}@supports (color:color-mix(in lab,red,red)){.bg-cyan-500\/15{background-color:color-mix(in oklab,var(--color-cyan-500) 15%,transparent)}}.bg-emerald-400{background-color:var(--color-emerald-400)}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-emerald-500\/10{background-color:#00bb7f1a}@supports (color:color-mix(in lab,red,red)){.bg-emerald-500\/10{background-color:color-mix(in oklab,var(--color-emerald-500) 10%,transparent)}}.bg-emerald-500\/15{background-color:#00bb7f26}@supports (color:color-mix(in lab,red,red)){.bg-emerald-500\/15{background-color:color-mix(in oklab,var(--color-emerald-500) 15%,transparent)}}.bg-emerald-500\/80{background-color:#00bb7fcc}@supports (color:color-mix(in lab,red,red)){.bg-emerald-500\/80{background-color:color-mix(in oklab,var(--color-emerald-500) 80%,transparent)}}.bg-indigo-500\/10{background-color:#625fff1a}@supports (color:color-mix(in lab,red,red)){.bg-indigo-500\/10{background-color:color-mix(in oklab,var(--color-indigo-500) 10%,transparent)}}.bg-muted,.bg-muted\/10{background-color:hsl(var(--muted))}@supports (color:color-mix(in lab,red,red)){.bg-muted\/10{background-color:color-mix(in oklab,hsl(var(--muted)) 10%,transparent)}}.bg-muted\/20{background-color:hsl(var(--muted))}@supports (color:color-mix(in lab,red,red)){.bg-muted\/20{background-color:color-mix(in oklab,hsl(var(--muted)) 20%,transparent)}}.bg-muted\/40{background-color:hsl(var(--muted))}@supports (color:color-mix(in lab,red,red)){.bg-muted\/40{background-color:color-mix(in oklab,hsl(var(--muted)) 40%,transparent)}}.bg-pink-500\/10{background-color:#f6339a1a}@supports (color:color-mix(in lab,red,red)){.bg-pink-500\/10{background-color:color-mix(in oklab,var(--color-pink-500) 10%,transparent)}}.bg-pink-500\/15{background-color:#f6339a26}@supports (color:color-mix(in lab,red,red)){.bg-pink-500\/15{background-color:color-mix(in oklab,var(--color-pink-500) 15%,transparent)}}.bg-popover{background-color:hsl(var(--popover))}.bg-primary,.bg-primary\/5{background-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.bg-primary\/5{background-color:color-mix(in oklab,hsl(var(--primary)) 5%,transparent)}}.bg-primary\/10{background-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.bg-primary\/10{background-color:color-mix(in oklab,hsl(var(--primary)) 10%,transparent)}}.bg-primary\/15{background-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.bg-primary\/15{background-color:color-mix(in oklab,hsl(var(--primary)) 15%,transparent)}}.bg-red-500{background-color:var(--color-red-500)}.bg-red-500\/5{background-color:#fb2c360d}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/5{background-color:color-mix(in oklab,var(--color-red-500) 5%,transparent)}}.bg-red-500\/15{background-color:#fb2c3626}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/15{background-color:color-mix(in oklab,var(--color-red-500) 15%,transparent)}}.bg-red-500\/80{background-color:#fb2c36cc}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/80{background-color:color-mix(in oklab,var(--color-red-500) 80%,transparent)}}.bg-transparent{background-color:#0000}.bg-violet-500\/10{background-color:#8d54ff1a}@supports (color:color-mix(in lab,red,red)){.bg-violet-500\/10{background-color:color-mix(in oklab,var(--color-violet-500) 10%,transparent)}}.bg-violet-500\/15{background-color:#8d54ff26}@supports (color:color-mix(in lab,red,red)){.bg-violet-500\/15{background-color:color-mix(in oklab,var(--color-violet-500) 15%,transparent)}}.bg-gradient-to-r{--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-tr{--tw-gradient-position:to top right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-foreground{--tw-gradient-from:hsl(var(--foreground));--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-teal-500\/15{--tw-gradient-from:#00baa726}@supports (color:color-mix(in lab,red,red)){.from-teal-500\/15{--tw-gradient-from:color-mix(in oklab, var(--color-teal-500) 15%, transparent)}}.from-teal-500\/15{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.via-foreground{--tw-gradient-via:hsl(var(--foreground));--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-indigo-500\/10{--tw-gradient-via:#625fff1a}@supports (color:color-mix(in lab,red,red)){.via-indigo-500\/10{--tw-gradient-via:color-mix(in oklab, var(--color-indigo-500) 10%, transparent)}}.via-indigo-500\/10{--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.to-primary{--tw-gradient-to:hsl(var(--primary));--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-purple-500\/15{--tw-gradient-to:#ac4bff26}@supports (color:color-mix(in lab,red,red)){.to-purple-500\/15{--tw-gradient-to:color-mix(in oklab, var(--color-purple-500) 15%, transparent)}}.to-purple-500\/15{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.bg-repeat{background-repeat:repeat}.fill-amber-400{fill:var(--color-amber-400)}.fill-none{fill:none}.stroke-amber-500{stroke:var(--color-amber-500)}.stroke-muted{stroke:hsl(var(--muted))}.stroke-primary{stroke:hsl(var(--primary))}.stroke-red-500{stroke:var(--color-red-500)}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:var(--spacing)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-3\.5{padding:calc(var(--spacing) * 3.5)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-12{padding:calc(var(--spacing) * 12)}.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-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-12{padding-block:calc(var(--spacing) * 12)}.py-20{padding-block:calc(var(--spacing) * 20)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-\[12vh\]{padding-top:12vh}.pr-3{padding-right:calc(var(--spacing) * 3)}.pl-9{padding-left:calc(var(--spacing) * 9)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:JetBrains Mono,ui-monospace,SFMono-Regular,monospace}.font-sans{font-family:Inter,ui-sans-serif,system-ui,-apple-system,sans-serif}.font-space{font-family:Space Grotesk,sans-serif}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[8px\]{font-size:8px}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.leading-normal{--tw-leading:var(--leading-normal);line-height:var(--leading-normal)}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.text-wrap{text-wrap:wrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.text-clip{text-overflow:clip}.text-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.text-amber-400{color:var(--color-amber-400)}.text-amber-500{color:var(--color-amber-500)}.text-cyan-200\/90{color:#a2f4fde6}@supports (color:color-mix(in lab,red,red)){.text-cyan-200\/90{color:color-mix(in oklab,var(--color-cyan-200) 90%,transparent)}}.text-cyan-300\/90{color:#53eafde6}@supports (color:color-mix(in lab,red,red)){.text-cyan-300\/90{color:color-mix(in oklab,var(--color-cyan-300) 90%,transparent)}}.text-cyan-400{color:var(--color-cyan-400)}.text-emerald-400{color:var(--color-emerald-400)}.text-emerald-500{color:var(--color-emerald-500)}.text-foreground{color:hsl(var(--foreground))}.text-indigo-400{color:var(--color-indigo-400)}.text-muted-foreground,.text-muted-foreground\/60{color:hsl(var(--muted-foreground))}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/60{color:color-mix(in oklab,hsl(var(--muted-foreground)) 60%,transparent)}}.text-muted-foreground\/75{color:hsl(var(--muted-foreground))}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/75{color:color-mix(in oklab,hsl(var(--muted-foreground)) 75%,transparent)}}.text-muted-foreground\/80{color:hsl(var(--muted-foreground))}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/80{color:color-mix(in oklab,hsl(var(--muted-foreground)) 80%,transparent)}}.text-pink-400{color:var(--color-pink-400)}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-primary\/80{color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.text-primary\/80{color:color-mix(in oklab,hsl(var(--primary)) 80%,transparent)}}.text-red-400{color:var(--color-red-400)}.text-red-400\/80{color:#ff6568cc}@supports (color:color-mix(in lab,red,red)){.text-red-400\/80{color:color-mix(in oklab,var(--color-red-400) 80%,transparent)}}.text-red-500{color:var(--color-red-500)}.text-transparent{color:#0000}.text-violet-400{color:var(--color-violet-400)}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.italic{font-style:italic}.not-italic{font-style:normal}.diagonal-fractions{--tw-numeric-fraction:diagonal-fractions;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.lining-nums{--tw-numeric-figure:lining-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.oldstyle-nums{--tw-numeric-figure:oldstyle-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.proportional-nums{--tw-numeric-spacing:proportional-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.slashed-zero{--tw-slashed-zero:slashed-zero;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.stacked-fractions{--tw-numeric-fraction:stacked-fractions;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.normal-nums{font-variant-numeric:normal}.line-through{text-decoration-line:line-through}.no-underline{text-decoration-line:none}.overline{text-decoration-line:overline}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.subpixel-antialiased{-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}.opacity-0{opacity:0}.opacity-25{opacity:.25}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-inner{--tw-shadow:inset 0 2px 4px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.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)}.shadow-amber-500\/10{--tw-shadow-color:#f99c001a}@supports (color:color-mix(in lab,red,red)){.shadow-amber-500\/10{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-amber-500) 10%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-amber-500\/20{--tw-shadow-color:#f99c0033}@supports (color:color-mix(in lab,red,red)){.shadow-amber-500\/20{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-amber-500) 20%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-black\/5{--tw-shadow-color:#0000000d}@supports (color:color-mix(in lab,red,red)){.shadow-black\/5{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-black) 5%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-black\/10{--tw-shadow-color:#0000001a}@supports (color:color-mix(in lab,red,red)){.shadow-black\/10{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-black) 10%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-black\/15{--tw-shadow-color:#00000026}@supports (color:color-mix(in lab,red,red)){.shadow-black\/15{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-black) 15%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-emerald-500\/10{--tw-shadow-color:#00bb7f1a}@supports (color:color-mix(in lab,red,red)){.shadow-emerald-500\/10{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-emerald-500) 10%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-primary\/5{--tw-shadow-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.shadow-primary\/5{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, hsl(var(--primary)) 5%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-primary\/10{--tw-shadow-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.shadow-primary\/10{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, hsl(var(--primary)) 10%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-primary\/20{--tw-shadow-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.shadow-primary\/20{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, hsl(var(--primary)) 20%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-red-500\/10{--tw-shadow-color:#fb2c361a}@supports (color:color-mix(in lab,red,red)){.shadow-red-500\/10{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-red-500) 10%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-red-500\/20{--tw-shadow-color:#fb2c3633}@supports (color:color-mix(in lab,red,red)){.shadow-red-500\/20{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-red-500) 20%, transparent) var(--tw-shadow-alpha), transparent)}}.ring-black\/40{--tw-ring-color:#0006}@supports (color:color-mix(in lab,red,red)){.ring-black\/40{--tw-ring-color:color-mix(in oklab, var(--color-black) 40%, transparent)}}.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-\[120px\]{--tw-blur:blur(120px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.drop-shadow{--tw-drop-shadow-size:drop-shadow(0 1px 2px var(--tw-drop-shadow-color,#0000001a)) drop-shadow(0 1px 1px var(--tw-drop-shadow-color,#0000000f));--tw-drop-shadow:drop-shadow(0 1px 2px #0000001a) drop-shadow(0 1px 1px #0000000f);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.grayscale{--tw-grayscale:grayscale(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.invert{--tw-invert:invert(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.sepia{--tw-sepia:sepia(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.\!filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)!important}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-xl{--tw-backdrop-blur:blur(var(--blur-xl));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-grayscale{--tw-backdrop-grayscale:grayscale(100%);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-invert{--tw-backdrop-invert:invert(100%);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-sepia{--tw-backdrop-sepia:sepia(100%);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition\!{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events!important;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))!important;transition-duration:var(--tw-duration,var(--default-transition-duration))!important}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.duration-700{--tw-duration:.7s;transition-duration:.7s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-text{-webkit-user-select:text;user-select:text}:where(.divide-x-reverse>:not(:last-child)){--tw-divide-x-reverse:1}.ring-inset{--tw-ring-inset:inset}@media(hover:hover){.group-hover\:scale-105:is(:where(.group):hover *){--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x) var(--tw-scale-y)}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.last\:border-0:last-child{border-style:var(--tw-border-style);border-width:0}@media(hover:hover){.hover\:border-primary\/20:hover{border-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.hover\:border-primary\/20:hover{border-color:color-mix(in oklab,hsl(var(--primary)) 20%,transparent)}}.hover\:border-primary\/30:hover{border-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.hover\:border-primary\/30:hover{border-color:color-mix(in oklab,hsl(var(--primary)) 30%,transparent)}}.hover\:border-primary\/40:hover{border-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.hover\:border-primary\/40:hover{border-color:color-mix(in oklab,hsl(var(--primary)) 40%,transparent)}}.hover\:border-primary\/50:hover{border-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.hover\:border-primary\/50:hover{border-color:color-mix(in oklab,hsl(var(--primary)) 50%,transparent)}}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-background\/30:hover{background-color:hsl(var(--background))}@supports (color:color-mix(in lab,red,red)){.hover\:bg-background\/30:hover{background-color:color-mix(in oklab,hsl(var(--background)) 30%,transparent)}}.hover\:bg-background\/40:hover{background-color:hsl(var(--background))}@supports (color:color-mix(in lab,red,red)){.hover\:bg-background\/40:hover{background-color:color-mix(in oklab,hsl(var(--background)) 40%,transparent)}}.hover\:bg-background\/60:hover{background-color:hsl(var(--background))}@supports (color:color-mix(in lab,red,red)){.hover\:bg-background\/60:hover{background-color:color-mix(in oklab,hsl(var(--background)) 60%,transparent)}}.hover\:bg-primary\/5:hover{background-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/5:hover{background-color:color-mix(in oklab,hsl(var(--primary)) 5%,transparent)}}.hover\:bg-primary\/10:hover{background-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/10:hover{background-color:color-mix(in oklab,hsl(var(--primary)) 10%,transparent)}}.hover\:bg-red-500\/5:hover{background-color:#fb2c360d}@supports (color:color-mix(in lab,red,red)){.hover\:bg-red-500\/5:hover{background-color:color-mix(in oklab,var(--color-red-500) 5%,transparent)}}.hover\:bg-red-500\/10:hover{background-color:#fb2c361a}@supports (color:color-mix(in lab,red,red)){.hover\:bg-red-500\/10:hover{background-color:color-mix(in oklab,var(--color-red-500) 10%,transparent)}}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:text-primary:hover{color:hsl(var(--primary))}.hover\:text-primary-foreground:hover{color:hsl(var(--primary-foreground))}.hover\:text-red-300:hover{color:var(--color-red-300)}.hover\:text-red-400:hover{color:var(--color-red-400)}.hover\:text-red-500:hover{color:var(--color-red-500)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-90:hover{opacity:.9}}.focus\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-2:focus{--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\:ring-primary:focus,.focus\:ring-primary\/50:focus{--tw-ring-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.focus\:ring-primary\/50:focus{--tw-ring-color:color-mix(in oklab, hsl(var(--primary)) 50%, transparent)}}.focus\:ring-ring:focus{--tw-ring-color:hsl(var(--ring))}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color:hsl(var(--ring))}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}.aria-selected\:bg-accent[aria-selected=true]{background-color:hsl(var(--accent))}.aria-selected\:text-accent-foreground[aria-selected=true]{color:hsl(var(--accent-foreground))}@media(min-width:40rem){.sm\:inline{display:inline}.sm\:w-\[500px\]{width:500px}.sm\:max-w-\[200px\]{max-width:200px}.sm\:max-w-\[280px\]{max-width:280px}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:self-auto{align-self:auto}}@media(min-width:48rem){.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\:flex-row{flex-direction:row}.md\:items-center{align-items:center}}@media(min-width:64rem){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}}:root{--background:222 24% 7%;--foreground:210 20% 92%;--card:222 22% 10%;--card-foreground:210 20% 92%;--popover:222 24% 9%;--popover-foreground:210 20% 92%;--primary:172 66% 50%;--primary-foreground:222 47% 8%;--muted:220 14% 15%;--muted-foreground:215 14% 62%;--accent:220 14% 17%;--accent-foreground:210 20% 92%;--border:220 14% 19%;--input:220 14% 19%;--ring:172 66% 50%;--radius:.75rem}.light{--background:0 0% 100%;--foreground:222 22% 12%;--card:0 0% 100%;--card-foreground:222 22% 12%;--popover:0 0% 100%;--popover-foreground:222 22% 12%;--primary:172 70% 38%;--primary-foreground:0 0% 100%;--muted:220 14% 95%;--muted-foreground:220 9% 42%;--accent:220 14% 94%;--accent-foreground:222 22% 12%;--border:220 13% 88%;--input:220 13% 88%;--ring:172 66% 50%}@keyframes aurora{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}.animate-aurora{background-size:200% 200%;animation:25s infinite aurora}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:hsl(var(--border));border-radius:9999px}::-webkit-scrollbar-thumb:hover{background:hsl(var(--primary) / .4)}*{border-color:hsl(var(--border));outline-color:hsl(var(--primary) / .5)}html,body,#root{height:100%;overflow:hidden}body{background-color:hsl(var(--background));color:hsl(var(--foreground));font-family:var(--font-sans);-webkit-font-smoothing:antialiased;margin:0}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-pan-x{syntax:"*";inherits:false}@property --tw-pan-y{syntax:"*";inherits:false}@property --tw-pinch-zoom{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}@keyframes pulse{50%{opacity:.5}} diff --git a/frontend/dist/index.html b/frontend/dist/index.html index 313f512..0984350 100644 --- a/frontend/dist/index.html +++ b/frontend/dist/index.html @@ -6,8 +6,8 @@ Mission Control 2.0 - - + +
diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index a714c20..4d00645 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -4,7 +4,6 @@ import { NAV, type ViewId } from "@/nav" import { CommandPalette } from "@/components/CommandPalette" import { DashboardView } from "@/views/DashboardView" import { ModelsView } from "@/views/ModelsView" -import { RoutingView } from "@/views/RoutingView" import { SystemView } from "@/views/SystemView" import { ConnectView } from "@/views/ConnectView" import { MemoryView } from "@/views/MemoryView" @@ -41,6 +40,12 @@ export default function App() { localStorage.setItem("mc_theme", dark ? "dark" : "light") }, [dark]) + useEffect(() => { + const handleOpen = () => setDrawerOpen(true) + window.addEventListener("open-system-drawer", handleOpen) + return () => window.removeEventListener("open-system-drawer", handleOpen) + }, []) + const active = NAV.find((n) => n.id === view)! const totalUpdates = updates ? (updates.os + updates.engine + updates.models) : 0 @@ -182,17 +187,17 @@ export default function App() {
{view === "dashboard" && } {view === "models" && } - {view === "routing" && } {view === "system" && } {view === "connect" && } {view === "memory" && } {view === "agent" && } - {!["dashboard", "models", "routing", "system", "connect", "memory", "agent"].includes(view) && ( + {!["dashboard", "models", "system", "connect", "memory", "agent"].includes(view) && ( )}
+ ) } diff --git a/frontend/src/nav.ts b/frontend/src/nav.ts index dc01a63..b37b50f 100644 --- a/frontend/src/nav.ts +++ b/frontend/src/nav.ts @@ -1,7 +1,6 @@ import { LayoutDashboard, Boxes, - Route, Cpu, Brain, Plug, @@ -9,7 +8,7 @@ import { type LucideIcon, } from "lucide-react" -export type ViewId = "dashboard" | "models" | "routing" | "system" | "memory" | "connect" | "agent" +export type ViewId = "dashboard" | "models" | "system" | "memory" | "connect" | "agent" export interface NavItem { id: ViewId @@ -21,10 +20,10 @@ export interface NavItem { // Eine Quelle der Wahrheit für Sidebar UND Command-Palette. export const NAV: NavItem[] = [ { id: "dashboard", label: "Zentrale", hint: "System- & Stack-Status", icon: LayoutDashboard }, - { id: "models", label: "Modelle & Routing", hint: "Modelle kuratieren, Gruppen & Auto-Routing", icon: Boxes }, - { id: "routing", label: "Routing", hint: "Gateway-Regeln: schnell ↔ schwer", icon: Route }, + { id: "models", label: "Modell-Zentrale", hint: "Verwalten, laden & Gateway-Routing", icon: Boxes }, { id: "system", label: "Diagnose", hint: "Metriken, Dienste, Logs", icon: Cpu }, { id: "memory", label: "Gedächtnis", hint: "Geteiltes Memory verwalten", icon: Brain }, { id: "connect", label: "Verbinden", hint: "IDE-/Agent-Configs erzeugen", icon: Plug }, { id: "agent", label: "Hermes", hint: "Agent-Status & WebUI öffnen", icon: Bot }, ] + diff --git a/frontend/src/views/DashboardView.tsx b/frontend/src/views/DashboardView.tsx index 7fc1c46..4668389 100644 --- a/frontend/src/views/DashboardView.tsx +++ b/frontend/src/views/DashboardView.tsx @@ -1,6 +1,6 @@ import { useEffect, useState } from "react" -import { Bot, Cpu, ExternalLink, Brain, Layers, Plus } from "lucide-react" -import { api, type SystemStatus, type AgentStatus, type ModelInfo, type Memory } from "@/lib/api" +import { Bot, Cpu, ExternalLink, Brain, Layers, Plus, ShieldAlert } from "lucide-react" +import { api, type SystemStatus, type AgentStatus, type ModelInfo, type Memory, type UpdatesResp } from "@/lib/api" import { cn } from "@/lib/utils" function gb(b: number) { @@ -12,7 +12,6 @@ function RadialGauge({ value, label, detail }: { value: number; label: string; d const circ = 2 * Math.PI * radius const offset = circ - (Math.min(value, 100) / 100) * circ - // Verfärbung bei hoher Last const strokeColor = value > 90 ? "stroke-red-500" : value > 75 @@ -40,6 +39,7 @@ export function DashboardView() { const [models, setModels] = useState([]) const [running, setRunning] = useState([]) const [memories, setMemories] = useState([]) + const [updates, setUpdates] = useState(null) // Quick Memory Form State const [memContent, setMemContent] = useState("") @@ -51,11 +51,12 @@ export function DashboardView() { api("/api/agent/status").then(setAgent).catch(() => {}) api<{ models: ModelInfo[]; running?: string[] }>("/api/models") .then((d) => { - setModels(d.models) + setModels(d.models || []) setRunning(d.running || []) }) .catch(() => {}) api("/api/memory?category=").then((d) => setMemories(d.slice(0, 3))).catch(() => {}) + api("/api/maintenance/updates").then(setUpdates).catch(() => {}) } useEffect(() => { @@ -73,7 +74,6 @@ export function DashboardView() { body: JSON.stringify({ content: memContent, category: memCat, source: "dashboard" }), }) setMemContent("") - // Liste sofort aktualisieren api("/api/memory?category=").then((d) => setMemories(d.slice(0, 3))).catch(() => {}) } catch (e) { console.error(e) @@ -86,6 +86,7 @@ export function DashboardView() { return (
+ {/* Title */}

Zentrale @@ -93,9 +94,10 @@ export function DashboardView() {

Aktueller Status von System, Modellen und Agent.

-
- {/* Card 1: System Status */} -
+ {/* Top Grid: System stats & Updates (3 Columns) */} +
+ {/* Card 1: System Status (2 columns wide) */} +
@@ -105,11 +107,11 @@ export function DashboardView() {
- {sys.gpu && sys.gpu.busy_percent != null && ( + {sys.gpu && sys.gpu.busy_percent != null && sys.gpu.gtt_used != null && sys.gpu.gtt_total != null && ( )} {sys.disk && ( @@ -128,7 +130,80 @@ export function DashboardView() { )}
- {/* Card 2: Hermes Agent Status */} + {/* Card 2: Updates & Wartung (1 column wide) */} +
+
+
+ +

Updates & Pflege

+
+ + {updates ? ( +
+
+
0 + ? "border-amber-500/30 bg-amber-500/5 text-amber-400 font-semibold" + : "border-border/30 bg-background/25 text-muted-foreground" + )}> + OS-Pakete + {updates.os > 0 ? `${updates.os} verfügbar` : "aktuell"} +
+ +
0 + ? "border-amber-500/30 bg-amber-500/5 text-amber-400 font-semibold" + : "border-border/30 bg-background/25 text-muted-foreground" + )}> + Engine (llama.cpp) + {updates.engine > 0 ? "Update verfügbar" : "aktuell"} +
+ +
0 + ? "border-primary/30 bg-primary/5 text-primary font-semibold animate-pulse" + : "border-border/30 bg-background/25 text-muted-foreground" + )}> + Modell-Upgrades + {updates.models > 0 ? `${updates.models} verfügbar` : "aktuell"} +
+
+ + {updates.model_list.length > 0 && ( +
+
Upgrades:
+
+ {updates.model_list.map((m) => ( +
+ {m.role}: {m.repo.split("/").pop()} +
+ ))} +
+
+ )} +
+ ) : ( +
Lade Updates...
+ )} +
+ +
+ +
+
+
+ + {/* Bottom Grid: Agent, Roles & Memory (3 Columns) */} +
+ {/* Card 3: Hermes Agent Status */}
@@ -188,10 +263,8 @@ export function DashboardView() { Gedächtnis & Stack-Tools via MCP gekoppelt.
-
-
- {/* Card 3: Active Model Roles */} + {/* Card 4: Active Model Roles */}
@@ -199,7 +272,7 @@ export function DashboardView() {

Aktive Rollen

-
+
{activeModels.length === 0 ? (
Keine Modelle als Rollen zugewiesen.
) : ( @@ -209,15 +282,15 @@ export function DashboardView() {
-
+
- )}
-
+
{m.name}
-
- {isRunning ? "Warm / Aktiv" : "Bereit"} +
+ {isRunning ? "Warm" : "Bereit"}
) @@ -250,29 +323,27 @@ export function DashboardView() {
- {/* Card 4: Quick Memory Input */} + {/* Card 5: Quick Memory Input */}
-

Gedächtnis-Schnellform

+

Gedächtnis

-
-