@agentprojectcontext/apx 1.40.0 → 1.40.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/interfaces/cli/commands/desktop.js +26 -0
- package/src/interfaces/cli/index.js +16 -3
- package/src/interfaces/desktop/main.js +7 -1
- package/src/interfaces/web/dist/assets/index-DW7j3cXB.js +646 -0
- package/src/interfaces/web/dist/assets/index-DW7j3cXB.js.map +1 -0
- package/src/interfaces/web/dist/index.html +1 -1
- package/src/interfaces/web/package-lock.json +188 -188
- package/src/interfaces/web/dist/assets/index-Cg-uHCex.js +0 -646
- package/src/interfaces/web/dist/assets/index-Cg-uHCex.js.map +0 -1
|
@@ -0,0 +1,646 @@
|
|
|
1
|
+
function ZR(e,t){for(var s=0;s<t.length;s++){const o=t[s];if(typeof o!="string"&&!Array.isArray(o)){for(const l in o)if(l!=="default"&&!(l in e)){const c=Object.getOwnPropertyDescriptor(o,l);c&&Object.defineProperty(e,l,c.get?c:{enumerable:!0,get:()=>o[l]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const l of document.querySelectorAll('link[rel="modulepreload"]'))o(l);new MutationObserver(l=>{for(const c of l)if(c.type==="childList")for(const u of c.addedNodes)u.tagName==="LINK"&&u.rel==="modulepreload"&&o(u)}).observe(document,{childList:!0,subtree:!0});function s(l){const c={};return l.integrity&&(c.integrity=l.integrity),l.referrerPolicy&&(c.referrerPolicy=l.referrerPolicy),l.crossOrigin==="use-credentials"?c.credentials="include":l.crossOrigin==="anonymous"?c.credentials="omit":c.credentials="same-origin",c}function o(l){if(l.ep)return;l.ep=!0;const c=s(l);fetch(l.href,c)}})();function jx(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var gg={exports:{}},qi={};/**
|
|
2
|
+
* @license React
|
|
3
|
+
* react-jsx-runtime.production.js
|
|
4
|
+
*
|
|
5
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
6
|
+
*
|
|
7
|
+
* This source code is licensed under the MIT license found in the
|
|
8
|
+
* LICENSE file in the root directory of this source tree.
|
|
9
|
+
*/var u1;function WR(){if(u1)return qi;u1=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.fragment");function s(o,l,c){var u=null;if(c!==void 0&&(u=""+c),l.key!==void 0&&(u=""+l.key),"key"in l){c={};for(var p in l)p!=="key"&&(c[p]=l[p])}else c=l;return l=c.ref,{$$typeof:e,type:o,key:u,ref:l!==void 0?l:null,props:c}}return qi.Fragment=t,qi.jsx=s,qi.jsxs=s,qi}var d1;function JR(){return d1||(d1=1,gg.exports=WR()),gg.exports}var r=JR(),hg={exports:{}},it={};/**
|
|
10
|
+
* @license React
|
|
11
|
+
* react.production.js
|
|
12
|
+
*
|
|
13
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
14
|
+
*
|
|
15
|
+
* This source code is licensed under the MIT license found in the
|
|
16
|
+
* LICENSE file in the root directory of this source tree.
|
|
17
|
+
*/var f1;function eT(){if(f1)return it;f1=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.portal"),s=Symbol.for("react.fragment"),o=Symbol.for("react.strict_mode"),l=Symbol.for("react.profiler"),c=Symbol.for("react.consumer"),u=Symbol.for("react.context"),p=Symbol.for("react.forward_ref"),m=Symbol.for("react.suspense"),g=Symbol.for("react.memo"),h=Symbol.for("react.lazy"),b=Symbol.for("react.activity"),_=Symbol.iterator;function k(L){return L===null||typeof L!="object"?null:(L=_&&L[_]||L["@@iterator"],typeof L=="function"?L:null)}var E={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},j=Object.assign,w={};function S(L,F,W){this.props=L,this.context=F,this.refs=w,this.updater=W||E}S.prototype.isReactComponent={},S.prototype.setState=function(L,F){if(typeof L!="object"&&typeof L!="function"&&L!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,L,F,"setState")},S.prototype.forceUpdate=function(L){this.updater.enqueueForceUpdate(this,L,"forceUpdate")};function C(){}C.prototype=S.prototype;function N(L,F,W){this.props=L,this.context=F,this.refs=w,this.updater=W||E}var R=N.prototype=new C;R.constructor=N,j(R,S.prototype),R.isPureReactComponent=!0;var A=Array.isArray;function T(){}var M={H:null,A:null,T:null,S:null},z=Object.prototype.hasOwnProperty;function P(L,F,W){var ee=W.ref;return{$$typeof:e,type:L,key:F,ref:ee!==void 0?ee:null,props:W}}function D(L,F){return P(L.type,F,L.props)}function I(L){return typeof L=="object"&&L!==null&&L.$$typeof===e}function B(L){var F={"=":"=0",":":"=2"};return"$"+L.replace(/[=:]/g,function(W){return F[W]})}var V=/\/+/g;function H(L,F){return typeof L=="object"&&L!==null&&L.key!=null?B(""+L.key):F.toString(36)}function G(L){switch(L.status){case"fulfilled":return L.value;case"rejected":throw L.reason;default:switch(typeof L.status=="string"?L.then(T,T):(L.status="pending",L.then(function(F){L.status==="pending"&&(L.status="fulfilled",L.value=F)},function(F){L.status==="pending"&&(L.status="rejected",L.reason=F)})),L.status){case"fulfilled":return L.value;case"rejected":throw L.reason}}throw L}function q(L,F,W,ee,ce){var ue=typeof L;(ue==="undefined"||ue==="boolean")&&(L=null);var se=!1;if(L===null)se=!0;else switch(ue){case"bigint":case"string":case"number":se=!0;break;case"object":switch(L.$$typeof){case e:case t:se=!0;break;case h:return se=L._init,q(se(L._payload),F,W,ee,ce)}}if(se)return ce=ce(L),se=ee===""?"."+H(L,0):ee,A(ce)?(W="",se!=null&&(W=se.replace(V,"$&/")+"/"),q(ce,F,W,"",function(Re){return Re})):ce!=null&&(I(ce)&&(ce=D(ce,W+(ce.key==null||L&&L.key===ce.key?"":(""+ce.key).replace(V,"$&/")+"/")+se)),F.push(ce)),1;se=0;var oe=ee===""?".":ee+":";if(A(L))for(var fe=0;fe<L.length;fe++)ee=L[fe],ue=oe+H(ee,fe),se+=q(ee,F,W,ue,ce);else if(fe=k(L),typeof fe=="function")for(L=fe.call(L),fe=0;!(ee=L.next()).done;)ee=ee.value,ue=oe+H(ee,fe++),se+=q(ee,F,W,ue,ce);else if(ue==="object"){if(typeof L.then=="function")return q(G(L),F,W,ee,ce);throw F=String(L),Error("Objects are not valid as a React child (found: "+(F==="[object Object]"?"object with keys {"+Object.keys(L).join(", ")+"}":F)+"). If you meant to render a collection of children, use an array instead.")}return se}function Y(L,F,W){if(L==null)return L;var ee=[],ce=0;return q(L,ee,"","",function(ue){return F.call(W,ue,ce++)}),ee}function X(L){if(L._status===-1){var F=L._result;F=F(),F.then(function(W){(L._status===0||L._status===-1)&&(L._status=1,L._result=W)},function(W){(L._status===0||L._status===-1)&&(L._status=2,L._result=W)}),L._status===-1&&(L._status=0,L._result=F)}if(L._status===1)return L._result.default;throw L._result}var $=typeof reportError=="function"?reportError:function(L){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var F=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof L=="object"&&L!==null&&typeof L.message=="string"?String(L.message):String(L),error:L});if(!window.dispatchEvent(F))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",L);return}console.error(L)},K={map:Y,forEach:function(L,F,W){Y(L,function(){F.apply(this,arguments)},W)},count:function(L){var F=0;return Y(L,function(){F++}),F},toArray:function(L){return Y(L,function(F){return F})||[]},only:function(L){if(!I(L))throw Error("React.Children.only expected to receive a single React element child.");return L}};return it.Activity=b,it.Children=K,it.Component=S,it.Fragment=s,it.Profiler=l,it.PureComponent=N,it.StrictMode=o,it.Suspense=m,it.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=M,it.__COMPILER_RUNTIME={__proto__:null,c:function(L){return M.H.useMemoCache(L)}},it.cache=function(L){return function(){return L.apply(null,arguments)}},it.cacheSignal=function(){return null},it.cloneElement=function(L,F,W){if(L==null)throw Error("The argument must be a React element, but you passed "+L+".");var ee=j({},L.props),ce=L.key;if(F!=null)for(ue in F.key!==void 0&&(ce=""+F.key),F)!z.call(F,ue)||ue==="key"||ue==="__self"||ue==="__source"||ue==="ref"&&F.ref===void 0||(ee[ue]=F[ue]);var ue=arguments.length-2;if(ue===1)ee.children=W;else if(1<ue){for(var se=Array(ue),oe=0;oe<ue;oe++)se[oe]=arguments[oe+2];ee.children=se}return P(L.type,ce,ee)},it.createContext=function(L){return L={$$typeof:u,_currentValue:L,_currentValue2:L,_threadCount:0,Provider:null,Consumer:null},L.Provider=L,L.Consumer={$$typeof:c,_context:L},L},it.createElement=function(L,F,W){var ee,ce={},ue=null;if(F!=null)for(ee in F.key!==void 0&&(ue=""+F.key),F)z.call(F,ee)&&ee!=="key"&&ee!=="__self"&&ee!=="__source"&&(ce[ee]=F[ee]);var se=arguments.length-2;if(se===1)ce.children=W;else if(1<se){for(var oe=Array(se),fe=0;fe<se;fe++)oe[fe]=arguments[fe+2];ce.children=oe}if(L&&L.defaultProps)for(ee in se=L.defaultProps,se)ce[ee]===void 0&&(ce[ee]=se[ee]);return P(L,ue,ce)},it.createRef=function(){return{current:null}},it.forwardRef=function(L){return{$$typeof:p,render:L}},it.isValidElement=I,it.lazy=function(L){return{$$typeof:h,_payload:{_status:-1,_result:L},_init:X}},it.memo=function(L,F){return{$$typeof:g,type:L,compare:F===void 0?null:F}},it.startTransition=function(L){var F=M.T,W={};M.T=W;try{var ee=L(),ce=M.S;ce!==null&&ce(W,ee),typeof ee=="object"&&ee!==null&&typeof ee.then=="function"&&ee.then(T,$)}catch(ue){$(ue)}finally{F!==null&&W.types!==null&&(F.types=W.types),M.T=F}},it.unstable_useCacheRefresh=function(){return M.H.useCacheRefresh()},it.use=function(L){return M.H.use(L)},it.useActionState=function(L,F,W){return M.H.useActionState(L,F,W)},it.useCallback=function(L,F){return M.H.useCallback(L,F)},it.useContext=function(L){return M.H.useContext(L)},it.useDebugValue=function(){},it.useDeferredValue=function(L,F){return M.H.useDeferredValue(L,F)},it.useEffect=function(L,F){return M.H.useEffect(L,F)},it.useEffectEvent=function(L){return M.H.useEffectEvent(L)},it.useId=function(){return M.H.useId()},it.useImperativeHandle=function(L,F,W){return M.H.useImperativeHandle(L,F,W)},it.useInsertionEffect=function(L,F){return M.H.useInsertionEffect(L,F)},it.useLayoutEffect=function(L,F){return M.H.useLayoutEffect(L,F)},it.useMemo=function(L,F){return M.H.useMemo(L,F)},it.useOptimistic=function(L,F){return M.H.useOptimistic(L,F)},it.useReducer=function(L,F,W){return M.H.useReducer(L,F,W)},it.useRef=function(L){return M.H.useRef(L)},it.useState=function(L){return M.H.useState(L)},it.useSyncExternalStore=function(L,F,W){return M.H.useSyncExternalStore(L,F,W)},it.useTransition=function(){return M.H.useTransition()},it.version="19.2.7",it}var p1;function Oc(){return p1||(p1=1,hg.exports=eT()),hg.exports}var x=Oc();const zc=jx(x),tT=ZR({__proto__:null,default:zc},[x]);var xg={exports:{}},$i={},bg={exports:{}},vg={};/**
|
|
18
|
+
* @license React
|
|
19
|
+
* scheduler.production.js
|
|
20
|
+
*
|
|
21
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
22
|
+
*
|
|
23
|
+
* This source code is licensed under the MIT license found in the
|
|
24
|
+
* LICENSE file in the root directory of this source tree.
|
|
25
|
+
*/var m1;function nT(){return m1||(m1=1,(function(e){function t(q,Y){var X=q.length;q.push(Y);e:for(;0<X;){var $=X-1>>>1,K=q[$];if(0<l(K,Y))q[$]=Y,q[X]=K,X=$;else break e}}function s(q){return q.length===0?null:q[0]}function o(q){if(q.length===0)return null;var Y=q[0],X=q.pop();if(X!==Y){q[0]=X;e:for(var $=0,K=q.length,L=K>>>1;$<L;){var F=2*($+1)-1,W=q[F],ee=F+1,ce=q[ee];if(0>l(W,X))ee<K&&0>l(ce,W)?(q[$]=ce,q[ee]=X,$=ee):(q[$]=W,q[F]=X,$=F);else if(ee<K&&0>l(ce,X))q[$]=ce,q[ee]=X,$=ee;else break e}}return Y}function l(q,Y){var X=q.sortIndex-Y.sortIndex;return X!==0?X:q.id-Y.id}if(e.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var c=performance;e.unstable_now=function(){return c.now()}}else{var u=Date,p=u.now();e.unstable_now=function(){return u.now()-p}}var m=[],g=[],h=1,b=null,_=3,k=!1,E=!1,j=!1,w=!1,S=typeof setTimeout=="function"?setTimeout:null,C=typeof clearTimeout=="function"?clearTimeout:null,N=typeof setImmediate<"u"?setImmediate:null;function R(q){for(var Y=s(g);Y!==null;){if(Y.callback===null)o(g);else if(Y.startTime<=q)o(g),Y.sortIndex=Y.expirationTime,t(m,Y);else break;Y=s(g)}}function A(q){if(j=!1,R(q),!E)if(s(m)!==null)E=!0,T||(T=!0,B());else{var Y=s(g);Y!==null&&G(A,Y.startTime-q)}}var T=!1,M=-1,z=5,P=-1;function D(){return w?!0:!(e.unstable_now()-P<z)}function I(){if(w=!1,T){var q=e.unstable_now();P=q;var Y=!0;try{e:{E=!1,j&&(j=!1,C(M),M=-1),k=!0;var X=_;try{t:{for(R(q),b=s(m);b!==null&&!(b.expirationTime>q&&D());){var $=b.callback;if(typeof $=="function"){b.callback=null,_=b.priorityLevel;var K=$(b.expirationTime<=q);if(q=e.unstable_now(),typeof K=="function"){b.callback=K,R(q),Y=!0;break t}b===s(m)&&o(m),R(q)}else o(m);b=s(m)}if(b!==null)Y=!0;else{var L=s(g);L!==null&&G(A,L.startTime-q),Y=!1}}break e}finally{b=null,_=X,k=!1}Y=void 0}}finally{Y?B():T=!1}}}var B;if(typeof N=="function")B=function(){N(I)};else if(typeof MessageChannel<"u"){var V=new MessageChannel,H=V.port2;V.port1.onmessage=I,B=function(){H.postMessage(null)}}else B=function(){S(I,0)};function G(q,Y){M=S(function(){q(e.unstable_now())},Y)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(q){q.callback=null},e.unstable_forceFrameRate=function(q){0>q||125<q?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):z=0<q?Math.floor(1e3/q):5},e.unstable_getCurrentPriorityLevel=function(){return _},e.unstable_next=function(q){switch(_){case 1:case 2:case 3:var Y=3;break;default:Y=_}var X=_;_=Y;try{return q()}finally{_=X}},e.unstable_requestPaint=function(){w=!0},e.unstable_runWithPriority=function(q,Y){switch(q){case 1:case 2:case 3:case 4:case 5:break;default:q=3}var X=_;_=q;try{return Y()}finally{_=X}},e.unstable_scheduleCallback=function(q,Y,X){var $=e.unstable_now();switch(typeof X=="object"&&X!==null?(X=X.delay,X=typeof X=="number"&&0<X?$+X:$):X=$,q){case 1:var K=-1;break;case 2:K=250;break;case 5:K=1073741823;break;case 4:K=1e4;break;default:K=5e3}return K=X+K,q={id:h++,callback:Y,priorityLevel:q,startTime:X,expirationTime:K,sortIndex:-1},X>$?(q.sortIndex=X,t(g,q),s(m)===null&&q===s(g)&&(j?(C(M),M=-1):j=!0,G(A,X-$))):(q.sortIndex=K,t(m,q),E||k||(E=!0,T||(T=!0,B()))),q},e.unstable_shouldYield=D,e.unstable_wrapCallback=function(q){var Y=_;return function(){var X=_;_=Y;try{return q.apply(this,arguments)}finally{_=X}}}})(vg)),vg}var g1;function aT(){return g1||(g1=1,bg.exports=nT()),bg.exports}var _g={exports:{}},Hn={};/**
|
|
26
|
+
* @license React
|
|
27
|
+
* react-dom.production.js
|
|
28
|
+
*
|
|
29
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
30
|
+
*
|
|
31
|
+
* This source code is licensed under the MIT license found in the
|
|
32
|
+
* LICENSE file in the root directory of this source tree.
|
|
33
|
+
*/var h1;function sT(){if(h1)return Hn;h1=1;var e=Oc();function t(m){var g="https://react.dev/errors/"+m;if(1<arguments.length){g+="?args[]="+encodeURIComponent(arguments[1]);for(var h=2;h<arguments.length;h++)g+="&args[]="+encodeURIComponent(arguments[h])}return"Minified React error #"+m+"; visit "+g+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function s(){}var o={d:{f:s,r:function(){throw Error(t(522))},D:s,C:s,L:s,m:s,X:s,S:s,M:s},p:0,findDOMNode:null},l=Symbol.for("react.portal");function c(m,g,h){var b=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:l,key:b==null?null:""+b,children:m,containerInfo:g,implementation:h}}var u=e.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function p(m,g){if(m==="font")return"";if(typeof g=="string")return g==="use-credentials"?g:""}return Hn.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=o,Hn.createPortal=function(m,g){var h=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!g||g.nodeType!==1&&g.nodeType!==9&&g.nodeType!==11)throw Error(t(299));return c(m,g,null,h)},Hn.flushSync=function(m){var g=u.T,h=o.p;try{if(u.T=null,o.p=2,m)return m()}finally{u.T=g,o.p=h,o.d.f()}},Hn.preconnect=function(m,g){typeof m=="string"&&(g?(g=g.crossOrigin,g=typeof g=="string"?g==="use-credentials"?g:"":void 0):g=null,o.d.C(m,g))},Hn.prefetchDNS=function(m){typeof m=="string"&&o.d.D(m)},Hn.preinit=function(m,g){if(typeof m=="string"&&g&&typeof g.as=="string"){var h=g.as,b=p(h,g.crossOrigin),_=typeof g.integrity=="string"?g.integrity:void 0,k=typeof g.fetchPriority=="string"?g.fetchPriority:void 0;h==="style"?o.d.S(m,typeof g.precedence=="string"?g.precedence:void 0,{crossOrigin:b,integrity:_,fetchPriority:k}):h==="script"&&o.d.X(m,{crossOrigin:b,integrity:_,fetchPriority:k,nonce:typeof g.nonce=="string"?g.nonce:void 0})}},Hn.preinitModule=function(m,g){if(typeof m=="string")if(typeof g=="object"&&g!==null){if(g.as==null||g.as==="script"){var h=p(g.as,g.crossOrigin);o.d.M(m,{crossOrigin:h,integrity:typeof g.integrity=="string"?g.integrity:void 0,nonce:typeof g.nonce=="string"?g.nonce:void 0})}}else g==null&&o.d.M(m)},Hn.preload=function(m,g){if(typeof m=="string"&&typeof g=="object"&&g!==null&&typeof g.as=="string"){var h=g.as,b=p(h,g.crossOrigin);o.d.L(m,h,{crossOrigin:b,integrity:typeof g.integrity=="string"?g.integrity:void 0,nonce:typeof g.nonce=="string"?g.nonce:void 0,type:typeof g.type=="string"?g.type:void 0,fetchPriority:typeof g.fetchPriority=="string"?g.fetchPriority:void 0,referrerPolicy:typeof g.referrerPolicy=="string"?g.referrerPolicy:void 0,imageSrcSet:typeof g.imageSrcSet=="string"?g.imageSrcSet:void 0,imageSizes:typeof g.imageSizes=="string"?g.imageSizes:void 0,media:typeof g.media=="string"?g.media:void 0})}},Hn.preloadModule=function(m,g){if(typeof m=="string")if(g){var h=p(g.as,g.crossOrigin);o.d.m(m,{as:typeof g.as=="string"&&g.as!=="script"?g.as:void 0,crossOrigin:h,integrity:typeof g.integrity=="string"?g.integrity:void 0})}else o.d.m(m)},Hn.requestFormReset=function(m){o.d.r(m)},Hn.unstable_batchedUpdates=function(m,g){return m(g)},Hn.useFormState=function(m,g,h){return u.H.useFormState(m,g,h)},Hn.useFormStatus=function(){return u.H.useHostTransitionStatus()},Hn.version="19.2.7",Hn}var x1;function ak(){if(x1)return _g.exports;x1=1;function e(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}return e(),_g.exports=sT(),_g.exports}/**
|
|
34
|
+
* @license React
|
|
35
|
+
* react-dom-client.production.js
|
|
36
|
+
*
|
|
37
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
38
|
+
*
|
|
39
|
+
* This source code is licensed under the MIT license found in the
|
|
40
|
+
* LICENSE file in the root directory of this source tree.
|
|
41
|
+
*/var b1;function rT(){if(b1)return $i;b1=1;var e=aT(),t=Oc(),s=ak();function o(n){var a="https://react.dev/errors/"+n;if(1<arguments.length){a+="?args[]="+encodeURIComponent(arguments[1]);for(var i=2;i<arguments.length;i++)a+="&args[]="+encodeURIComponent(arguments[i])}return"Minified React error #"+n+"; visit "+a+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function l(n){return!(!n||n.nodeType!==1&&n.nodeType!==9&&n.nodeType!==11)}function c(n){var a=n,i=n;if(n.alternate)for(;a.return;)a=a.return;else{n=a;do a=n,(a.flags&4098)!==0&&(i=a.return),n=a.return;while(n)}return a.tag===3?i:null}function u(n){if(n.tag===13){var a=n.memoizedState;if(a===null&&(n=n.alternate,n!==null&&(a=n.memoizedState)),a!==null)return a.dehydrated}return null}function p(n){if(n.tag===31){var a=n.memoizedState;if(a===null&&(n=n.alternate,n!==null&&(a=n.memoizedState)),a!==null)return a.dehydrated}return null}function m(n){if(c(n)!==n)throw Error(o(188))}function g(n){var a=n.alternate;if(!a){if(a=c(n),a===null)throw Error(o(188));return a!==n?null:n}for(var i=n,d=a;;){var v=i.return;if(v===null)break;var y=v.alternate;if(y===null){if(d=v.return,d!==null){i=d;continue}break}if(v.child===y.child){for(y=v.child;y;){if(y===i)return m(v),n;if(y===d)return m(v),a;y=y.sibling}throw Error(o(188))}if(i.return!==d.return)i=v,d=y;else{for(var O=!1,U=v.child;U;){if(U===i){O=!0,i=v,d=y;break}if(U===d){O=!0,d=v,i=y;break}U=U.sibling}if(!O){for(U=y.child;U;){if(U===i){O=!0,i=y,d=v;break}if(U===d){O=!0,d=y,i=v;break}U=U.sibling}if(!O)throw Error(o(189))}}if(i.alternate!==d)throw Error(o(190))}if(i.tag!==3)throw Error(o(188));return i.stateNode.current===i?n:a}function h(n){var a=n.tag;if(a===5||a===26||a===27||a===6)return n;for(n=n.child;n!==null;){if(a=h(n),a!==null)return a;n=n.sibling}return null}var b=Object.assign,_=Symbol.for("react.element"),k=Symbol.for("react.transitional.element"),E=Symbol.for("react.portal"),j=Symbol.for("react.fragment"),w=Symbol.for("react.strict_mode"),S=Symbol.for("react.profiler"),C=Symbol.for("react.consumer"),N=Symbol.for("react.context"),R=Symbol.for("react.forward_ref"),A=Symbol.for("react.suspense"),T=Symbol.for("react.suspense_list"),M=Symbol.for("react.memo"),z=Symbol.for("react.lazy"),P=Symbol.for("react.activity"),D=Symbol.for("react.memo_cache_sentinel"),I=Symbol.iterator;function B(n){return n===null||typeof n!="object"?null:(n=I&&n[I]||n["@@iterator"],typeof n=="function"?n:null)}var V=Symbol.for("react.client.reference");function H(n){if(n==null)return null;if(typeof n=="function")return n.$$typeof===V?null:n.displayName||n.name||null;if(typeof n=="string")return n;switch(n){case j:return"Fragment";case S:return"Profiler";case w:return"StrictMode";case A:return"Suspense";case T:return"SuspenseList";case P:return"Activity"}if(typeof n=="object")switch(n.$$typeof){case E:return"Portal";case N:return n.displayName||"Context";case C:return(n._context.displayName||"Context")+".Consumer";case R:var a=n.render;return n=n.displayName,n||(n=a.displayName||a.name||"",n=n!==""?"ForwardRef("+n+")":"ForwardRef"),n;case M:return a=n.displayName||null,a!==null?a:H(n.type)||"Memo";case z:a=n._payload,n=n._init;try{return H(n(a))}catch{}}return null}var G=Array.isArray,q=t.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,Y=s.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,X={pending:!1,data:null,method:null,action:null},$=[],K=-1;function L(n){return{current:n}}function F(n){0>K||(n.current=$[K],$[K]=null,K--)}function W(n,a){K++,$[K]=n.current,n.current=a}var ee=L(null),ce=L(null),ue=L(null),se=L(null);function oe(n,a){switch(W(ue,a),W(ce,n),W(ee,null),a.nodeType){case 9:case 11:n=(n=a.documentElement)&&(n=n.namespaceURI)?O0(n):0;break;default:if(n=a.tagName,a=a.namespaceURI)a=O0(a),n=z0(a,n);else switch(n){case"svg":n=1;break;case"math":n=2;break;default:n=0}}F(ee),W(ee,n)}function fe(){F(ee),F(ce),F(ue)}function Re(n){n.memoizedState!==null&&W(se,n);var a=ee.current,i=z0(a,n.type);a!==i&&(W(ce,n),W(ee,i))}function le(n){ce.current===n&&(F(ee),F(ce)),se.current===n&&(F(se),Bi._currentValue=X)}var de,ke;function je(n){if(de===void 0)try{throw Error()}catch(i){var a=i.stack.trim().match(/\n( *(at )?)/);de=a&&a[1]||"",ke=-1<i.stack.indexOf(`
|
|
42
|
+
at`)?" (<anonymous>)":-1<i.stack.indexOf("@")?"@unknown:0:0":""}return`
|
|
43
|
+
`+de+n+ke}var Be=!1;function Ve(n,a){if(!n||Be)return"";Be=!0;var i=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var d={DetermineComponentFrameRoot:function(){try{if(a){var ye=function(){throw Error()};if(Object.defineProperty(ye.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(ye,[])}catch(ie){var re=ie}Reflect.construct(n,[],ye)}else{try{ye.call()}catch(ie){re=ie}n.call(ye.prototype)}}else{try{throw Error()}catch(ie){re=ie}(ye=n())&&typeof ye.catch=="function"&&ye.catch(function(){})}}catch(ie){if(ie&&re&&typeof ie.stack=="string")return[ie.stack,re.stack]}return[null,null]}};d.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var v=Object.getOwnPropertyDescriptor(d.DetermineComponentFrameRoot,"name");v&&v.configurable&&Object.defineProperty(d.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var y=d.DetermineComponentFrameRoot(),O=y[0],U=y[1];if(O&&U){var Q=O.split(`
|
|
44
|
+
`),ne=U.split(`
|
|
45
|
+
`);for(v=d=0;d<Q.length&&!Q[d].includes("DetermineComponentFrameRoot");)d++;for(;v<ne.length&&!ne[v].includes("DetermineComponentFrameRoot");)v++;if(d===Q.length||v===ne.length)for(d=Q.length-1,v=ne.length-1;1<=d&&0<=v&&Q[d]!==ne[v];)v--;for(;1<=d&&0<=v;d--,v--)if(Q[d]!==ne[v]){if(d!==1||v!==1)do if(d--,v--,0>v||Q[d]!==ne[v]){var ge=`
|
|
46
|
+
`+Q[d].replace(" at new "," at ");return n.displayName&&ge.includes("<anonymous>")&&(ge=ge.replace("<anonymous>",n.displayName)),ge}while(1<=d&&0<=v);break}}}finally{Be=!1,Error.prepareStackTrace=i}return(i=n?n.displayName||n.name:"")?je(i):""}function we(n,a){switch(n.tag){case 26:case 27:case 5:return je(n.type);case 16:return je("Lazy");case 13:return n.child!==a&&a!==null?je("Suspense Fallback"):je("Suspense");case 19:return je("SuspenseList");case 0:case 15:return Ve(n.type,!1);case 11:return Ve(n.type.render,!1);case 1:return Ve(n.type,!0);case 31:return je("Activity");default:return""}}function Ee(n){try{var a="",i=null;do a+=we(n,i),i=n,n=n.return;while(n);return a}catch(d){return`
|
|
47
|
+
Error generating stack: `+d.message+`
|
|
48
|
+
`+d.stack}}var _e=Object.prototype.hasOwnProperty,Ce=e.unstable_scheduleCallback,Le=e.unstable_cancelCallback,Pe=e.unstable_shouldYield,Ie=e.unstable_requestPaint,ae=e.unstable_now,be=e.unstable_getCurrentPriorityLevel,$e=e.unstable_ImmediatePriority,Ne=e.unstable_UserBlockingPriority,Me=e.unstable_NormalPriority,Ze=e.unstable_LowPriority,st=e.unstable_IdlePriority,_t=e.log,ve=e.unstable_setDisableYieldValue,Ae=null,He=null;function Xe(n){if(typeof _t=="function"&&ve(n),He&&typeof He.setStrictMode=="function")try{He.setStrictMode(Ae,n)}catch{}}var rt=Math.clz32?Math.clz32:pt,nn=Math.log,un=Math.LN2;function pt(n){return n>>>=0,n===0?32:31-(nn(n)/un|0)|0}var Nt=256,an=262144,Zt=4194304;function Wt(n){var a=n&42;if(a!==0)return a;switch(n&-n){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return n&261888;case 262144:case 524288:case 1048576:case 2097152:return n&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return n&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return n}}function Gt(n,a,i){var d=n.pendingLanes;if(d===0)return 0;var v=0,y=n.suspendedLanes,O=n.pingedLanes;n=n.warmLanes;var U=d&134217727;return U!==0?(d=U&~y,d!==0?v=Wt(d):(O&=U,O!==0?v=Wt(O):i||(i=U&~n,i!==0&&(v=Wt(i))))):(U=d&~y,U!==0?v=Wt(U):O!==0?v=Wt(O):i||(i=d&~n,i!==0&&(v=Wt(i)))),v===0?0:a!==0&&a!==v&&(a&y)===0&&(y=v&-v,i=a&-a,y>=i||y===32&&(i&4194048)!==0)?a:v}function dn(n,a){return(n.pendingLanes&~(n.suspendedLanes&~n.pingedLanes)&a)===0}function Wn(n,a){switch(n){case 1:case 2:case 4:case 8:case 64:return a+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function ca(){var n=Zt;return Zt<<=1,(Zt&62914560)===0&&(Zt=4194304),n}function _a(n){for(var a=[],i=0;31>i;i++)a.push(n);return a}function fn(n,a){n.pendingLanes|=a,a!==268435456&&(n.suspendedLanes=0,n.pingedLanes=0,n.warmLanes=0)}function ya(n,a,i,d,v,y){var O=n.pendingLanes;n.pendingLanes=i,n.suspendedLanes=0,n.pingedLanes=0,n.warmLanes=0,n.expiredLanes&=i,n.entangledLanes&=i,n.errorRecoveryDisabledLanes&=i,n.shellSuspendCounter=0;var U=n.entanglements,Q=n.expirationTimes,ne=n.hiddenUpdates;for(i=O&~i;0<i;){var ge=31-rt(i),ye=1<<ge;U[ge]=0,Q[ge]=-1;var re=ne[ge];if(re!==null)for(ne[ge]=null,ge=0;ge<re.length;ge++){var ie=re[ge];ie!==null&&(ie.lane&=-536870913)}i&=~ye}d!==0&&xs(n,d,0),y!==0&&v===0&&n.tag!==0&&(n.suspendedLanes|=y&~(O&~a))}function xs(n,a,i){n.pendingLanes|=a,n.suspendedLanes&=~a;var d=31-rt(a);n.entangledLanes|=a,n.entanglements[d]=n.entanglements[d]|1073741824|i&261930}function La(n,a){var i=n.entangledLanes|=a;for(n=n.entanglements;i;){var d=31-rt(i),v=1<<d;v&a|n[d]&a&&(n[d]|=a),i&=~v}}function bs(n,a){var i=a&-a;return i=(i&42)!==0?1:ct(i),(i&(n.suspendedLanes|a))!==0?0:i}function ct(n){switch(n){case 2:n=1;break;case 8:n=4;break;case 32:n=16;break;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:n=128;break;case 268435456:n=134217728;break;default:n=0}return n}function zt(n){return n&=-n,2<n?8<n?(n&134217727)!==0?32:268435456:8:2}function pn(){var n=Y.p;return n!==0?n:(n=window.event,n===void 0?32:a1(n.type))}function kn(n,a){var i=Y.p;try{return Y.p=n,a()}finally{Y.p=i}}var yn=Math.random().toString(36).slice(2),Ht="__reactFiber$"+yn,Mn="__reactProps$"+yn,Ya="__reactContainer$"+yn,Jl="__reactEvents$"+yn,Yc="__reactListeners$"+yn,HE="__reactHandles$"+yn,_v="__reactResources$"+yn,ei="__reactMarker$"+yn;function lp(n){delete n[Ht],delete n[Mn],delete n[Jl],delete n[Yc],delete n[HE]}function zo(n){var a=n[Ht];if(a)return a;for(var i=n.parentNode;i;){if(a=i[Ya]||i[Ht]){if(i=a.alternate,a.child!==null||i!==null&&i.child!==null)for(n=H0(n);n!==null;){if(i=n[Ht])return i;n=H0(n)}return a}n=i,i=n.parentNode}return null}function Do(n){if(n=n[Ht]||n[Ya]){var a=n.tag;if(a===5||a===6||a===13||a===31||a===26||a===27||a===3)return n}return null}function ti(n){var a=n.tag;if(a===5||a===26||a===27||a===6)return n.stateNode;throw Error(o(33))}function Lo(n){var a=n[_v];return a||(a=n[_v]={hoistableStyles:new Map,hoistableScripts:new Map}),a}function Sn(n){n[ei]=!0}var yv=new Set,jv={};function qr(n,a){Po(n,a),Po(n+"Capture",a)}function Po(n,a){for(jv[n]=a,n=0;n<a.length;n++)yv.add(a[n])}var VE=RegExp("^[: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]*$"),wv={},kv={};function qE(n){return _e.call(kv,n)?!0:_e.call(wv,n)?!1:VE.test(n)?kv[n]=!0:(wv[n]=!0,!1)}function Xc(n,a,i){if(qE(a))if(i===null)n.removeAttribute(a);else{switch(typeof i){case"undefined":case"function":case"symbol":n.removeAttribute(a);return;case"boolean":var d=a.toLowerCase().slice(0,5);if(d!=="data-"&&d!=="aria-"){n.removeAttribute(a);return}}n.setAttribute(a,""+i)}}function Kc(n,a,i){if(i===null)n.removeAttribute(a);else{switch(typeof i){case"undefined":case"function":case"symbol":case"boolean":n.removeAttribute(a);return}n.setAttribute(a,""+i)}}function vs(n,a,i,d){if(d===null)n.removeAttribute(i);else{switch(typeof d){case"undefined":case"function":case"symbol":case"boolean":n.removeAttribute(i);return}n.setAttributeNS(a,i,""+d)}}function ja(n){switch(typeof n){case"bigint":case"boolean":case"number":case"string":case"undefined":return n;case"object":return n;default:return""}}function Sv(n){var a=n.type;return(n=n.nodeName)&&n.toLowerCase()==="input"&&(a==="checkbox"||a==="radio")}function $E(n,a,i){var d=Object.getOwnPropertyDescriptor(n.constructor.prototype,a);if(!n.hasOwnProperty(a)&&typeof d<"u"&&typeof d.get=="function"&&typeof d.set=="function"){var v=d.get,y=d.set;return Object.defineProperty(n,a,{configurable:!0,get:function(){return v.call(this)},set:function(O){i=""+O,y.call(this,O)}}),Object.defineProperty(n,a,{enumerable:d.enumerable}),{getValue:function(){return i},setValue:function(O){i=""+O},stopTracking:function(){n._valueTracker=null,delete n[a]}}}}function ip(n){if(!n._valueTracker){var a=Sv(n)?"checked":"value";n._valueTracker=$E(n,a,""+n[a])}}function Cv(n){if(!n)return!1;var a=n._valueTracker;if(!a)return!0;var i=a.getValue(),d="";return n&&(d=Sv(n)?n.checked?"true":"false":n.value),n=d,n!==i?(a.setValue(n),!0):!1}function Qc(n){if(n=n||(typeof document<"u"?document:void 0),typeof n>"u")return null;try{return n.activeElement||n.body}catch{return n.body}}var FE=/[\n"\\]/g;function wa(n){return n.replace(FE,function(a){return"\\"+a.charCodeAt(0).toString(16)+" "})}function cp(n,a,i,d,v,y,O,U){n.name="",O!=null&&typeof O!="function"&&typeof O!="symbol"&&typeof O!="boolean"?n.type=O:n.removeAttribute("type"),a!=null?O==="number"?(a===0&&n.value===""||n.value!=a)&&(n.value=""+ja(a)):n.value!==""+ja(a)&&(n.value=""+ja(a)):O!=="submit"&&O!=="reset"||n.removeAttribute("value"),a!=null?up(n,O,ja(a)):i!=null?up(n,O,ja(i)):d!=null&&n.removeAttribute("value"),v==null&&y!=null&&(n.defaultChecked=!!y),v!=null&&(n.checked=v&&typeof v!="function"&&typeof v!="symbol"),U!=null&&typeof U!="function"&&typeof U!="symbol"&&typeof U!="boolean"?n.name=""+ja(U):n.removeAttribute("name")}function Ev(n,a,i,d,v,y,O,U){if(y!=null&&typeof y!="function"&&typeof y!="symbol"&&typeof y!="boolean"&&(n.type=y),a!=null||i!=null){if(!(y!=="submit"&&y!=="reset"||a!=null)){ip(n);return}i=i!=null?""+ja(i):"",a=a!=null?""+ja(a):i,U||a===n.value||(n.value=a),n.defaultValue=a}d=d??v,d=typeof d!="function"&&typeof d!="symbol"&&!!d,n.checked=U?n.checked:!!d,n.defaultChecked=!!d,O!=null&&typeof O!="function"&&typeof O!="symbol"&&typeof O!="boolean"&&(n.name=O),ip(n)}function up(n,a,i){a==="number"&&Qc(n.ownerDocument)===n||n.defaultValue===""+i||(n.defaultValue=""+i)}function Io(n,a,i,d){if(n=n.options,a){a={};for(var v=0;v<i.length;v++)a["$"+i[v]]=!0;for(i=0;i<n.length;i++)v=a.hasOwnProperty("$"+n[i].value),n[i].selected!==v&&(n[i].selected=v),v&&d&&(n[i].defaultSelected=!0)}else{for(i=""+ja(i),a=null,v=0;v<n.length;v++){if(n[v].value===i){n[v].selected=!0,d&&(n[v].defaultSelected=!0);return}a!==null||n[v].disabled||(a=n[v])}a!==null&&(a.selected=!0)}}function Nv(n,a,i){if(a!=null&&(a=""+ja(a),a!==n.value&&(n.value=a),i==null)){n.defaultValue!==a&&(n.defaultValue=a);return}n.defaultValue=i!=null?""+ja(i):""}function Rv(n,a,i,d){if(a==null){if(d!=null){if(i!=null)throw Error(o(92));if(G(d)){if(1<d.length)throw Error(o(93));d=d[0]}i=d}i==null&&(i=""),a=i}i=ja(a),n.defaultValue=i,d=n.textContent,d===i&&d!==""&&d!==null&&(n.value=d),ip(n)}function Bo(n,a){if(a){var i=n.firstChild;if(i&&i===n.lastChild&&i.nodeType===3){i.nodeValue=a;return}}n.textContent=a}var GE=new Set("animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp".split(" "));function Tv(n,a,i){var d=a.indexOf("--")===0;i==null||typeof i=="boolean"||i===""?d?n.setProperty(a,""):a==="float"?n.cssFloat="":n[a]="":d?n.setProperty(a,i):typeof i!="number"||i===0||GE.has(a)?a==="float"?n.cssFloat=i:n[a]=(""+i).trim():n[a]=i+"px"}function Av(n,a,i){if(a!=null&&typeof a!="object")throw Error(o(62));if(n=n.style,i!=null){for(var d in i)!i.hasOwnProperty(d)||a!=null&&a.hasOwnProperty(d)||(d.indexOf("--")===0?n.setProperty(d,""):d==="float"?n.cssFloat="":n[d]="");for(var v in a)d=a[v],a.hasOwnProperty(v)&&i[v]!==d&&Tv(n,v,d)}else for(var y in a)a.hasOwnProperty(y)&&Tv(n,y,a[y])}function dp(n){if(n.indexOf("-")===-1)return!1;switch(n){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 YE=new Map([["acceptCharset","accept-charset"],["htmlFor","for"],["httpEquiv","http-equiv"],["crossOrigin","crossorigin"],["accentHeight","accent-height"],["alignmentBaseline","alignment-baseline"],["arabicForm","arabic-form"],["baselineShift","baseline-shift"],["capHeight","cap-height"],["clipPath","clip-path"],["clipRule","clip-rule"],["colorInterpolation","color-interpolation"],["colorInterpolationFilters","color-interpolation-filters"],["colorProfile","color-profile"],["colorRendering","color-rendering"],["dominantBaseline","dominant-baseline"],["enableBackground","enable-background"],["fillOpacity","fill-opacity"],["fillRule","fill-rule"],["floodColor","flood-color"],["floodOpacity","flood-opacity"],["fontFamily","font-family"],["fontSize","font-size"],["fontSizeAdjust","font-size-adjust"],["fontStretch","font-stretch"],["fontStyle","font-style"],["fontVariant","font-variant"],["fontWeight","font-weight"],["glyphName","glyph-name"],["glyphOrientationHorizontal","glyph-orientation-horizontal"],["glyphOrientationVertical","glyph-orientation-vertical"],["horizAdvX","horiz-adv-x"],["horizOriginX","horiz-origin-x"],["imageRendering","image-rendering"],["letterSpacing","letter-spacing"],["lightingColor","lighting-color"],["markerEnd","marker-end"],["markerMid","marker-mid"],["markerStart","marker-start"],["overlinePosition","overline-position"],["overlineThickness","overline-thickness"],["paintOrder","paint-order"],["panose-1","panose-1"],["pointerEvents","pointer-events"],["renderingIntent","rendering-intent"],["shapeRendering","shape-rendering"],["stopColor","stop-color"],["stopOpacity","stop-opacity"],["strikethroughPosition","strikethrough-position"],["strikethroughThickness","strikethrough-thickness"],["strokeDasharray","stroke-dasharray"],["strokeDashoffset","stroke-dashoffset"],["strokeLinecap","stroke-linecap"],["strokeLinejoin","stroke-linejoin"],["strokeMiterlimit","stroke-miterlimit"],["strokeOpacity","stroke-opacity"],["strokeWidth","stroke-width"],["textAnchor","text-anchor"],["textDecoration","text-decoration"],["textRendering","text-rendering"],["transformOrigin","transform-origin"],["underlinePosition","underline-position"],["underlineThickness","underline-thickness"],["unicodeBidi","unicode-bidi"],["unicodeRange","unicode-range"],["unitsPerEm","units-per-em"],["vAlphabetic","v-alphabetic"],["vHanging","v-hanging"],["vIdeographic","v-ideographic"],["vMathematical","v-mathematical"],["vectorEffect","vector-effect"],["vertAdvY","vert-adv-y"],["vertOriginX","vert-origin-x"],["vertOriginY","vert-origin-y"],["wordSpacing","word-spacing"],["writingMode","writing-mode"],["xmlnsXlink","xmlns:xlink"],["xHeight","x-height"]]),XE=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;function Zc(n){return XE.test(""+n)?"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')":n}function _s(){}var fp=null;function pp(n){return n=n.target||n.srcElement||window,n.correspondingUseElement&&(n=n.correspondingUseElement),n.nodeType===3?n.parentNode:n}var Uo=null,Ho=null;function Mv(n){var a=Do(n);if(a&&(n=a.stateNode)){var i=n[Mn]||null;e:switch(n=a.stateNode,a.type){case"input":if(cp(n,i.value,i.defaultValue,i.defaultValue,i.checked,i.defaultChecked,i.type,i.name),a=i.name,i.type==="radio"&&a!=null){for(i=n;i.parentNode;)i=i.parentNode;for(i=i.querySelectorAll('input[name="'+wa(""+a)+'"][type="radio"]'),a=0;a<i.length;a++){var d=i[a];if(d!==n&&d.form===n.form){var v=d[Mn]||null;if(!v)throw Error(o(90));cp(d,v.value,v.defaultValue,v.defaultValue,v.checked,v.defaultChecked,v.type,v.name)}}for(a=0;a<i.length;a++)d=i[a],d.form===n.form&&Cv(d)}break e;case"textarea":Nv(n,i.value,i.defaultValue);break e;case"select":a=i.value,a!=null&&Io(n,!!i.multiple,a,!1)}}}var mp=!1;function Ov(n,a,i){if(mp)return n(a,i);mp=!0;try{var d=n(a);return d}finally{if(mp=!1,(Uo!==null||Ho!==null)&&(Iu(),Uo&&(a=Uo,n=Ho,Ho=Uo=null,Mv(a),n)))for(a=0;a<n.length;a++)Mv(n[a])}}function ni(n,a){var i=n.stateNode;if(i===null)return null;var d=i[Mn]||null;if(d===null)return null;i=d[a];e:switch(a){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(d=!d.disabled)||(n=n.type,d=!(n==="button"||n==="input"||n==="select"||n==="textarea")),n=!d;break e;default:n=!1}if(n)return null;if(i&&typeof i!="function")throw Error(o(231,a,typeof i));return i}var ys=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),gp=!1;if(ys)try{var ai={};Object.defineProperty(ai,"passive",{get:function(){gp=!0}}),window.addEventListener("test",ai,ai),window.removeEventListener("test",ai,ai)}catch{gp=!1}var Js=null,hp=null,Wc=null;function zv(){if(Wc)return Wc;var n,a=hp,i=a.length,d,v="value"in Js?Js.value:Js.textContent,y=v.length;for(n=0;n<i&&a[n]===v[n];n++);var O=i-n;for(d=1;d<=O&&a[i-d]===v[y-d];d++);return Wc=v.slice(n,1<d?1-d:void 0)}function Jc(n){var a=n.keyCode;return"charCode"in n?(n=n.charCode,n===0&&a===13&&(n=13)):n=a,n===10&&(n=13),32<=n||n===13?n:0}function eu(){return!0}function Dv(){return!1}function Jn(n){function a(i,d,v,y,O){this._reactName=i,this._targetInst=v,this.type=d,this.nativeEvent=y,this.target=O,this.currentTarget=null;for(var U in n)n.hasOwnProperty(U)&&(i=n[U],this[U]=i?i(y):y[U]);return this.isDefaultPrevented=(y.defaultPrevented!=null?y.defaultPrevented:y.returnValue===!1)?eu:Dv,this.isPropagationStopped=Dv,this}return b(a.prototype,{preventDefault:function(){this.defaultPrevented=!0;var i=this.nativeEvent;i&&(i.preventDefault?i.preventDefault():typeof i.returnValue!="unknown"&&(i.returnValue=!1),this.isDefaultPrevented=eu)},stopPropagation:function(){var i=this.nativeEvent;i&&(i.stopPropagation?i.stopPropagation():typeof i.cancelBubble!="unknown"&&(i.cancelBubble=!0),this.isPropagationStopped=eu)},persist:function(){},isPersistent:eu}),a}var $r={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(n){return n.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},tu=Jn($r),si=b({},$r,{view:0,detail:0}),KE=Jn(si),xp,bp,ri,nu=b({},si,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:_p,button:0,buttons:0,relatedTarget:function(n){return n.relatedTarget===void 0?n.fromElement===n.srcElement?n.toElement:n.fromElement:n.relatedTarget},movementX:function(n){return"movementX"in n?n.movementX:(n!==ri&&(ri&&n.type==="mousemove"?(xp=n.screenX-ri.screenX,bp=n.screenY-ri.screenY):bp=xp=0,ri=n),xp)},movementY:function(n){return"movementY"in n?n.movementY:bp}}),Lv=Jn(nu),QE=b({},nu,{dataTransfer:0}),ZE=Jn(QE),WE=b({},si,{relatedTarget:0}),vp=Jn(WE),JE=b({},$r,{animationName:0,elapsedTime:0,pseudoElement:0}),eN=Jn(JE),tN=b({},$r,{clipboardData:function(n){return"clipboardData"in n?n.clipboardData:window.clipboardData}}),nN=Jn(tN),aN=b({},$r,{data:0}),Pv=Jn(aN),sN={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},rN={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},oN={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function lN(n){var a=this.nativeEvent;return a.getModifierState?a.getModifierState(n):(n=oN[n])?!!a[n]:!1}function _p(){return lN}var iN=b({},si,{key:function(n){if(n.key){var a=sN[n.key]||n.key;if(a!=="Unidentified")return a}return n.type==="keypress"?(n=Jc(n),n===13?"Enter":String.fromCharCode(n)):n.type==="keydown"||n.type==="keyup"?rN[n.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:_p,charCode:function(n){return n.type==="keypress"?Jc(n):0},keyCode:function(n){return n.type==="keydown"||n.type==="keyup"?n.keyCode:0},which:function(n){return n.type==="keypress"?Jc(n):n.type==="keydown"||n.type==="keyup"?n.keyCode:0}}),cN=Jn(iN),uN=b({},nu,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Iv=Jn(uN),dN=b({},si,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:_p}),fN=Jn(dN),pN=b({},$r,{propertyName:0,elapsedTime:0,pseudoElement:0}),mN=Jn(pN),gN=b({},nu,{deltaX:function(n){return"deltaX"in n?n.deltaX:"wheelDeltaX"in n?-n.wheelDeltaX:0},deltaY:function(n){return"deltaY"in n?n.deltaY:"wheelDeltaY"in n?-n.wheelDeltaY:"wheelDelta"in n?-n.wheelDelta:0},deltaZ:0,deltaMode:0}),hN=Jn(gN),xN=b({},$r,{newState:0,oldState:0}),bN=Jn(xN),vN=[9,13,27,32],yp=ys&&"CompositionEvent"in window,oi=null;ys&&"documentMode"in document&&(oi=document.documentMode);var _N=ys&&"TextEvent"in window&&!oi,Bv=ys&&(!yp||oi&&8<oi&&11>=oi),Uv=" ",Hv=!1;function Vv(n,a){switch(n){case"keyup":return vN.indexOf(a.keyCode)!==-1;case"keydown":return a.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function qv(n){return n=n.detail,typeof n=="object"&&"data"in n?n.data:null}var Vo=!1;function yN(n,a){switch(n){case"compositionend":return qv(a);case"keypress":return a.which!==32?null:(Hv=!0,Uv);case"textInput":return n=a.data,n===Uv&&Hv?null:n;default:return null}}function jN(n,a){if(Vo)return n==="compositionend"||!yp&&Vv(n,a)?(n=zv(),Wc=hp=Js=null,Vo=!1,n):null;switch(n){case"paste":return null;case"keypress":if(!(a.ctrlKey||a.altKey||a.metaKey)||a.ctrlKey&&a.altKey){if(a.char&&1<a.char.length)return a.char;if(a.which)return String.fromCharCode(a.which)}return null;case"compositionend":return Bv&&a.locale!=="ko"?null:a.data;default:return null}}var wN={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function $v(n){var a=n&&n.nodeName&&n.nodeName.toLowerCase();return a==="input"?!!wN[n.type]:a==="textarea"}function Fv(n,a,i,d){Uo?Ho?Ho.push(d):Ho=[d]:Uo=d,a=Fu(a,"onChange"),0<a.length&&(i=new tu("onChange","change",null,i,d),n.push({event:i,listeners:a}))}var li=null,ii=null;function kN(n){E0(n,0)}function au(n){var a=ti(n);if(Cv(a))return n}function Gv(n,a){if(n==="change")return a}var Yv=!1;if(ys){var jp;if(ys){var wp="oninput"in document;if(!wp){var Xv=document.createElement("div");Xv.setAttribute("oninput","return;"),wp=typeof Xv.oninput=="function"}jp=wp}else jp=!1;Yv=jp&&(!document.documentMode||9<document.documentMode)}function Kv(){li&&(li.detachEvent("onpropertychange",Qv),ii=li=null)}function Qv(n){if(n.propertyName==="value"&&au(ii)){var a=[];Fv(a,ii,n,pp(n)),Ov(kN,a)}}function SN(n,a,i){n==="focusin"?(Kv(),li=a,ii=i,li.attachEvent("onpropertychange",Qv)):n==="focusout"&&Kv()}function CN(n){if(n==="selectionchange"||n==="keyup"||n==="keydown")return au(ii)}function EN(n,a){if(n==="click")return au(a)}function NN(n,a){if(n==="input"||n==="change")return au(a)}function RN(n,a){return n===a&&(n!==0||1/n===1/a)||n!==n&&a!==a}var ua=typeof Object.is=="function"?Object.is:RN;function ci(n,a){if(ua(n,a))return!0;if(typeof n!="object"||n===null||typeof a!="object"||a===null)return!1;var i=Object.keys(n),d=Object.keys(a);if(i.length!==d.length)return!1;for(d=0;d<i.length;d++){var v=i[d];if(!_e.call(a,v)||!ua(n[v],a[v]))return!1}return!0}function Zv(n){for(;n&&n.firstChild;)n=n.firstChild;return n}function Wv(n,a){var i=Zv(n);n=0;for(var d;i;){if(i.nodeType===3){if(d=n+i.textContent.length,n<=a&&d>=a)return{node:i,offset:a-n};n=d}e:{for(;i;){if(i.nextSibling){i=i.nextSibling;break e}i=i.parentNode}i=void 0}i=Zv(i)}}function Jv(n,a){return n&&a?n===a?!0:n&&n.nodeType===3?!1:a&&a.nodeType===3?Jv(n,a.parentNode):"contains"in n?n.contains(a):n.compareDocumentPosition?!!(n.compareDocumentPosition(a)&16):!1:!1}function e_(n){n=n!=null&&n.ownerDocument!=null&&n.ownerDocument.defaultView!=null?n.ownerDocument.defaultView:window;for(var a=Qc(n.document);a instanceof n.HTMLIFrameElement;){try{var i=typeof a.contentWindow.location.href=="string"}catch{i=!1}if(i)n=a.contentWindow;else break;a=Qc(n.document)}return a}function kp(n){var a=n&&n.nodeName&&n.nodeName.toLowerCase();return a&&(a==="input"&&(n.type==="text"||n.type==="search"||n.type==="tel"||n.type==="url"||n.type==="password")||a==="textarea"||n.contentEditable==="true")}var TN=ys&&"documentMode"in document&&11>=document.documentMode,qo=null,Sp=null,ui=null,Cp=!1;function t_(n,a,i){var d=i.window===i?i.document:i.nodeType===9?i:i.ownerDocument;Cp||qo==null||qo!==Qc(d)||(d=qo,"selectionStart"in d&&kp(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),ui&&ci(ui,d)||(ui=d,d=Fu(Sp,"onSelect"),0<d.length&&(a=new tu("onSelect","select",null,a,i),n.push({event:a,listeners:d}),a.target=qo)))}function Fr(n,a){var i={};return i[n.toLowerCase()]=a.toLowerCase(),i["Webkit"+n]="webkit"+a,i["Moz"+n]="moz"+a,i}var $o={animationend:Fr("Animation","AnimationEnd"),animationiteration:Fr("Animation","AnimationIteration"),animationstart:Fr("Animation","AnimationStart"),transitionrun:Fr("Transition","TransitionRun"),transitionstart:Fr("Transition","TransitionStart"),transitioncancel:Fr("Transition","TransitionCancel"),transitionend:Fr("Transition","TransitionEnd")},Ep={},n_={};ys&&(n_=document.createElement("div").style,"AnimationEvent"in window||(delete $o.animationend.animation,delete $o.animationiteration.animation,delete $o.animationstart.animation),"TransitionEvent"in window||delete $o.transitionend.transition);function Gr(n){if(Ep[n])return Ep[n];if(!$o[n])return n;var a=$o[n],i;for(i in a)if(a.hasOwnProperty(i)&&i in n_)return Ep[n]=a[i];return n}var a_=Gr("animationend"),s_=Gr("animationiteration"),r_=Gr("animationstart"),AN=Gr("transitionrun"),MN=Gr("transitionstart"),ON=Gr("transitioncancel"),o_=Gr("transitionend"),l_=new Map,Np="abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");Np.push("scrollEnd");function Pa(n,a){l_.set(n,a),qr(a,[n])}var su=typeof reportError=="function"?reportError:function(n){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var a=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof n=="object"&&n!==null&&typeof n.message=="string"?String(n.message):String(n),error:n});if(!window.dispatchEvent(a))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",n);return}console.error(n)},ka=[],Fo=0,Rp=0;function ru(){for(var n=Fo,a=Rp=Fo=0;a<n;){var i=ka[a];ka[a++]=null;var d=ka[a];ka[a++]=null;var v=ka[a];ka[a++]=null;var y=ka[a];if(ka[a++]=null,d!==null&&v!==null){var O=d.pending;O===null?v.next=v:(v.next=O.next,O.next=v),d.pending=v}y!==0&&i_(i,v,y)}}function ou(n,a,i,d){ka[Fo++]=n,ka[Fo++]=a,ka[Fo++]=i,ka[Fo++]=d,Rp|=d,n.lanes|=d,n=n.alternate,n!==null&&(n.lanes|=d)}function Tp(n,a,i,d){return ou(n,a,i,d),lu(n)}function Yr(n,a){return ou(n,null,null,a),lu(n)}function i_(n,a,i){n.lanes|=i;var d=n.alternate;d!==null&&(d.lanes|=i);for(var v=!1,y=n.return;y!==null;)y.childLanes|=i,d=y.alternate,d!==null&&(d.childLanes|=i),y.tag===22&&(n=y.stateNode,n===null||n._visibility&1||(v=!0)),n=y,y=y.return;return n.tag===3?(y=n.stateNode,v&&a!==null&&(v=31-rt(i),n=y.hiddenUpdates,d=n[v],d===null?n[v]=[a]:d.push(a),a.lane=i|536870912),y):null}function lu(n){if(50<Mi)throw Mi=0,Bm=null,Error(o(185));for(var a=n.return;a!==null;)n=a,a=n.return;return n.tag===3?n.stateNode:null}var Go={};function zN(n,a,i,d){this.tag=n,this.key=i,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=a,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=d,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function da(n,a,i,d){return new zN(n,a,i,d)}function Ap(n){return n=n.prototype,!(!n||!n.isReactComponent)}function js(n,a){var i=n.alternate;return i===null?(i=da(n.tag,a,n.key,n.mode),i.elementType=n.elementType,i.type=n.type,i.stateNode=n.stateNode,i.alternate=n,n.alternate=i):(i.pendingProps=a,i.type=n.type,i.flags=0,i.subtreeFlags=0,i.deletions=null),i.flags=n.flags&65011712,i.childLanes=n.childLanes,i.lanes=n.lanes,i.child=n.child,i.memoizedProps=n.memoizedProps,i.memoizedState=n.memoizedState,i.updateQueue=n.updateQueue,a=n.dependencies,i.dependencies=a===null?null:{lanes:a.lanes,firstContext:a.firstContext},i.sibling=n.sibling,i.index=n.index,i.ref=n.ref,i.refCleanup=n.refCleanup,i}function c_(n,a){n.flags&=65011714;var i=n.alternate;return i===null?(n.childLanes=0,n.lanes=a,n.child=null,n.subtreeFlags=0,n.memoizedProps=null,n.memoizedState=null,n.updateQueue=null,n.dependencies=null,n.stateNode=null):(n.childLanes=i.childLanes,n.lanes=i.lanes,n.child=i.child,n.subtreeFlags=0,n.deletions=null,n.memoizedProps=i.memoizedProps,n.memoizedState=i.memoizedState,n.updateQueue=i.updateQueue,n.type=i.type,a=i.dependencies,n.dependencies=a===null?null:{lanes:a.lanes,firstContext:a.firstContext}),n}function iu(n,a,i,d,v,y){var O=0;if(d=n,typeof n=="function")Ap(n)&&(O=1);else if(typeof n=="string")O=BR(n,i,ee.current)?26:n==="html"||n==="head"||n==="body"?27:5;else e:switch(n){case P:return n=da(31,i,a,v),n.elementType=P,n.lanes=y,n;case j:return Xr(i.children,v,y,a);case w:O=8,v|=24;break;case S:return n=da(12,i,a,v|2),n.elementType=S,n.lanes=y,n;case A:return n=da(13,i,a,v),n.elementType=A,n.lanes=y,n;case T:return n=da(19,i,a,v),n.elementType=T,n.lanes=y,n;default:if(typeof n=="object"&&n!==null)switch(n.$$typeof){case N:O=10;break e;case C:O=9;break e;case R:O=11;break e;case M:O=14;break e;case z:O=16,d=null;break e}O=29,i=Error(o(130,n===null?"null":typeof n,"")),d=null}return a=da(O,i,a,v),a.elementType=n,a.type=d,a.lanes=y,a}function Xr(n,a,i,d){return n=da(7,n,d,a),n.lanes=i,n}function Mp(n,a,i){return n=da(6,n,null,a),n.lanes=i,n}function u_(n){var a=da(18,null,null,0);return a.stateNode=n,a}function Op(n,a,i){return a=da(4,n.children!==null?n.children:[],n.key,a),a.lanes=i,a.stateNode={containerInfo:n.containerInfo,pendingChildren:null,implementation:n.implementation},a}var d_=new WeakMap;function Sa(n,a){if(typeof n=="object"&&n!==null){var i=d_.get(n);return i!==void 0?i:(a={value:n,source:a,stack:Ee(a)},d_.set(n,a),a)}return{value:n,source:a,stack:Ee(a)}}var Yo=[],Xo=0,cu=null,di=0,Ca=[],Ea=0,er=null,Xa=1,Ka="";function ws(n,a){Yo[Xo++]=di,Yo[Xo++]=cu,cu=n,di=a}function f_(n,a,i){Ca[Ea++]=Xa,Ca[Ea++]=Ka,Ca[Ea++]=er,er=n;var d=Xa;n=Ka;var v=32-rt(d)-1;d&=~(1<<v),i+=1;var y=32-rt(a)+v;if(30<y){var O=v-v%5;y=(d&(1<<O)-1).toString(32),d>>=O,v-=O,Xa=1<<32-rt(a)+v|i<<v|d,Ka=y+n}else Xa=1<<y|i<<v|d,Ka=n}function zp(n){n.return!==null&&(ws(n,1),f_(n,1,0))}function Dp(n){for(;n===cu;)cu=Yo[--Xo],Yo[Xo]=null,di=Yo[--Xo],Yo[Xo]=null;for(;n===er;)er=Ca[--Ea],Ca[Ea]=null,Ka=Ca[--Ea],Ca[Ea]=null,Xa=Ca[--Ea],Ca[Ea]=null}function p_(n,a){Ca[Ea++]=Xa,Ca[Ea++]=Ka,Ca[Ea++]=er,Xa=a.id,Ka=a.overflow,er=n}var On=null,Yt=null,kt=!1,tr=null,Na=!1,Lp=Error(o(519));function nr(n){var a=Error(o(418,1<arguments.length&&arguments[1]!==void 0&&arguments[1]?"text":"HTML",""));throw fi(Sa(a,n)),Lp}function m_(n){var a=n.stateNode,i=n.type,d=n.memoizedProps;switch(a[Ht]=n,a[Mn]=d,i){case"dialog":vt("cancel",a),vt("close",a);break;case"iframe":case"object":case"embed":vt("load",a);break;case"video":case"audio":for(i=0;i<zi.length;i++)vt(zi[i],a);break;case"source":vt("error",a);break;case"img":case"image":case"link":vt("error",a),vt("load",a);break;case"details":vt("toggle",a);break;case"input":vt("invalid",a),Ev(a,d.value,d.defaultValue,d.checked,d.defaultChecked,d.type,d.name,!0);break;case"select":vt("invalid",a);break;case"textarea":vt("invalid",a),Rv(a,d.value,d.defaultValue,d.children)}i=d.children,typeof i!="string"&&typeof i!="number"&&typeof i!="bigint"||a.textContent===""+i||d.suppressHydrationWarning===!0||A0(a.textContent,i)?(d.popover!=null&&(vt("beforetoggle",a),vt("toggle",a)),d.onScroll!=null&&vt("scroll",a),d.onScrollEnd!=null&&vt("scrollend",a),d.onClick!=null&&(a.onclick=_s),a=!0):a=!1,a||nr(n,!0)}function g_(n){for(On=n.return;On;)switch(On.tag){case 5:case 31:case 13:Na=!1;return;case 27:case 3:Na=!0;return;default:On=On.return}}function Ko(n){if(n!==On)return!1;if(!kt)return g_(n),kt=!0,!1;var a=n.tag,i;if((i=a!==3&&a!==27)&&((i=a===5)&&(i=n.type,i=!(i!=="form"&&i!=="button")||eg(n.type,n.memoizedProps)),i=!i),i&&Yt&&nr(n),g_(n),a===13){if(n=n.memoizedState,n=n!==null?n.dehydrated:null,!n)throw Error(o(317));Yt=U0(n)}else if(a===31){if(n=n.memoizedState,n=n!==null?n.dehydrated:null,!n)throw Error(o(317));Yt=U0(n)}else a===27?(a=Yt,hr(n.type)?(n=rg,rg=null,Yt=n):Yt=a):Yt=On?Ta(n.stateNode.nextSibling):null;return!0}function Kr(){Yt=On=null,kt=!1}function Pp(){var n=tr;return n!==null&&(aa===null?aa=n:aa.push.apply(aa,n),tr=null),n}function fi(n){tr===null?tr=[n]:tr.push(n)}var Ip=L(null),Qr=null,ks=null;function ar(n,a,i){W(Ip,a._currentValue),a._currentValue=i}function Ss(n){n._currentValue=Ip.current,F(Ip)}function Bp(n,a,i){for(;n!==null;){var d=n.alternate;if((n.childLanes&a)!==a?(n.childLanes|=a,d!==null&&(d.childLanes|=a)):d!==null&&(d.childLanes&a)!==a&&(d.childLanes|=a),n===i)break;n=n.return}}function Up(n,a,i,d){var v=n.child;for(v!==null&&(v.return=n);v!==null;){var y=v.dependencies;if(y!==null){var O=v.child;y=y.firstContext;e:for(;y!==null;){var U=y;y=v;for(var Q=0;Q<a.length;Q++)if(U.context===a[Q]){y.lanes|=i,U=y.alternate,U!==null&&(U.lanes|=i),Bp(y.return,i,n),d||(O=null);break e}y=U.next}}else if(v.tag===18){if(O=v.return,O===null)throw Error(o(341));O.lanes|=i,y=O.alternate,y!==null&&(y.lanes|=i),Bp(O,i,n),O=null}else O=v.child;if(O!==null)O.return=v;else for(O=v;O!==null;){if(O===n){O=null;break}if(v=O.sibling,v!==null){v.return=O.return,O=v;break}O=O.return}v=O}}function Qo(n,a,i,d){n=null;for(var v=a,y=!1;v!==null;){if(!y){if((v.flags&524288)!==0)y=!0;else if((v.flags&262144)!==0)break}if(v.tag===10){var O=v.alternate;if(O===null)throw Error(o(387));if(O=O.memoizedProps,O!==null){var U=v.type;ua(v.pendingProps.value,O.value)||(n!==null?n.push(U):n=[U])}}else if(v===se.current){if(O=v.alternate,O===null)throw Error(o(387));O.memoizedState.memoizedState!==v.memoizedState.memoizedState&&(n!==null?n.push(Bi):n=[Bi])}v=v.return}n!==null&&Up(a,n,i,d),a.flags|=262144}function uu(n){for(n=n.firstContext;n!==null;){if(!ua(n.context._currentValue,n.memoizedValue))return!0;n=n.next}return!1}function Zr(n){Qr=n,ks=null,n=n.dependencies,n!==null&&(n.firstContext=null)}function zn(n){return h_(Qr,n)}function du(n,a){return Qr===null&&Zr(n),h_(n,a)}function h_(n,a){var i=a._currentValue;if(a={context:a,memoizedValue:i,next:null},ks===null){if(n===null)throw Error(o(308));ks=a,n.dependencies={lanes:0,firstContext:a},n.flags|=524288}else ks=ks.next=a;return i}var DN=typeof AbortController<"u"?AbortController:function(){var n=[],a=this.signal={aborted:!1,addEventListener:function(i,d){n.push(d)}};this.abort=function(){a.aborted=!0,n.forEach(function(i){return i()})}},LN=e.unstable_scheduleCallback,PN=e.unstable_NormalPriority,xn={$$typeof:N,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function Hp(){return{controller:new DN,data:new Map,refCount:0}}function pi(n){n.refCount--,n.refCount===0&&LN(PN,function(){n.controller.abort()})}var mi=null,Vp=0,Zo=0,Wo=null;function IN(n,a){if(mi===null){var i=mi=[];Vp=0,Zo=Fm(),Wo={status:"pending",value:void 0,then:function(d){i.push(d)}}}return Vp++,a.then(x_,x_),a}function x_(){if(--Vp===0&&mi!==null){Wo!==null&&(Wo.status="fulfilled");var n=mi;mi=null,Zo=0,Wo=null;for(var a=0;a<n.length;a++)(0,n[a])()}}function BN(n,a){var i=[],d={status:"pending",value:null,reason:null,then:function(v){i.push(v)}};return n.then(function(){d.status="fulfilled",d.value=a;for(var v=0;v<i.length;v++)(0,i[v])(a)},function(v){for(d.status="rejected",d.reason=v,v=0;v<i.length;v++)(0,i[v])(void 0)}),d}var b_=q.S;q.S=function(n,a){t0=ae(),typeof a=="object"&&a!==null&&typeof a.then=="function"&&IN(n,a),b_!==null&&b_(n,a)};var Wr=L(null);function qp(){var n=Wr.current;return n!==null?n:Vt.pooledCache}function fu(n,a){a===null?W(Wr,Wr.current):W(Wr,a.pool)}function v_(){var n=qp();return n===null?null:{parent:xn._currentValue,pool:n}}var Jo=Error(o(460)),$p=Error(o(474)),pu=Error(o(542)),mu={then:function(){}};function __(n){return n=n.status,n==="fulfilled"||n==="rejected"}function y_(n,a,i){switch(i=n[i],i===void 0?n.push(a):i!==a&&(a.then(_s,_s),a=i),a.status){case"fulfilled":return a.value;case"rejected":throw n=a.reason,w_(n),n;default:if(typeof a.status=="string")a.then(_s,_s);else{if(n=Vt,n!==null&&100<n.shellSuspendCounter)throw Error(o(482));n=a,n.status="pending",n.then(function(d){if(a.status==="pending"){var v=a;v.status="fulfilled",v.value=d}},function(d){if(a.status==="pending"){var v=a;v.status="rejected",v.reason=d}})}switch(a.status){case"fulfilled":return a.value;case"rejected":throw n=a.reason,w_(n),n}throw eo=a,Jo}}function Jr(n){try{var a=n._init;return a(n._payload)}catch(i){throw i!==null&&typeof i=="object"&&typeof i.then=="function"?(eo=i,Jo):i}}var eo=null;function j_(){if(eo===null)throw Error(o(459));var n=eo;return eo=null,n}function w_(n){if(n===Jo||n===pu)throw Error(o(483))}var el=null,gi=0;function gu(n){var a=gi;return gi+=1,el===null&&(el=[]),y_(el,n,a)}function hi(n,a){a=a.props.ref,n.ref=a!==void 0?a:null}function hu(n,a){throw a.$$typeof===_?Error(o(525)):(n=Object.prototype.toString.call(a),Error(o(31,n==="[object Object]"?"object with keys {"+Object.keys(a).join(", ")+"}":n)))}function k_(n){function a(J,Z){if(n){var te=J.deletions;te===null?(J.deletions=[Z],J.flags|=16):te.push(Z)}}function i(J,Z){if(!n)return null;for(;Z!==null;)a(J,Z),Z=Z.sibling;return null}function d(J){for(var Z=new Map;J!==null;)J.key!==null?Z.set(J.key,J):Z.set(J.index,J),J=J.sibling;return Z}function v(J,Z){return J=js(J,Z),J.index=0,J.sibling=null,J}function y(J,Z,te){return J.index=te,n?(te=J.alternate,te!==null?(te=te.index,te<Z?(J.flags|=67108866,Z):te):(J.flags|=67108866,Z)):(J.flags|=1048576,Z)}function O(J){return n&&J.alternate===null&&(J.flags|=67108866),J}function U(J,Z,te,xe){return Z===null||Z.tag!==6?(Z=Mp(te,J.mode,xe),Z.return=J,Z):(Z=v(Z,te),Z.return=J,Z)}function Q(J,Z,te,xe){var We=te.type;return We===j?ge(J,Z,te.props.children,xe,te.key):Z!==null&&(Z.elementType===We||typeof We=="object"&&We!==null&&We.$$typeof===z&&Jr(We)===Z.type)?(Z=v(Z,te.props),hi(Z,te),Z.return=J,Z):(Z=iu(te.type,te.key,te.props,null,J.mode,xe),hi(Z,te),Z.return=J,Z)}function ne(J,Z,te,xe){return Z===null||Z.tag!==4||Z.stateNode.containerInfo!==te.containerInfo||Z.stateNode.implementation!==te.implementation?(Z=Op(te,J.mode,xe),Z.return=J,Z):(Z=v(Z,te.children||[]),Z.return=J,Z)}function ge(J,Z,te,xe,We){return Z===null||Z.tag!==7?(Z=Xr(te,J.mode,xe,We),Z.return=J,Z):(Z=v(Z,te),Z.return=J,Z)}function ye(J,Z,te){if(typeof Z=="string"&&Z!==""||typeof Z=="number"||typeof Z=="bigint")return Z=Mp(""+Z,J.mode,te),Z.return=J,Z;if(typeof Z=="object"&&Z!==null){switch(Z.$$typeof){case k:return te=iu(Z.type,Z.key,Z.props,null,J.mode,te),hi(te,Z),te.return=J,te;case E:return Z=Op(Z,J.mode,te),Z.return=J,Z;case z:return Z=Jr(Z),ye(J,Z,te)}if(G(Z)||B(Z))return Z=Xr(Z,J.mode,te,null),Z.return=J,Z;if(typeof Z.then=="function")return ye(J,gu(Z),te);if(Z.$$typeof===N)return ye(J,du(J,Z),te);hu(J,Z)}return null}function re(J,Z,te,xe){var We=Z!==null?Z.key:null;if(typeof te=="string"&&te!==""||typeof te=="number"||typeof te=="bigint")return We!==null?null:U(J,Z,""+te,xe);if(typeof te=="object"&&te!==null){switch(te.$$typeof){case k:return te.key===We?Q(J,Z,te,xe):null;case E:return te.key===We?ne(J,Z,te,xe):null;case z:return te=Jr(te),re(J,Z,te,xe)}if(G(te)||B(te))return We!==null?null:ge(J,Z,te,xe,null);if(typeof te.then=="function")return re(J,Z,gu(te),xe);if(te.$$typeof===N)return re(J,Z,du(J,te),xe);hu(J,te)}return null}function ie(J,Z,te,xe,We){if(typeof xe=="string"&&xe!==""||typeof xe=="number"||typeof xe=="bigint")return J=J.get(te)||null,U(Z,J,""+xe,We);if(typeof xe=="object"&&xe!==null){switch(xe.$$typeof){case k:return J=J.get(xe.key===null?te:xe.key)||null,Q(Z,J,xe,We);case E:return J=J.get(xe.key===null?te:xe.key)||null,ne(Z,J,xe,We);case z:return xe=Jr(xe),ie(J,Z,te,xe,We)}if(G(xe)||B(xe))return J=J.get(te)||null,ge(Z,J,xe,We,null);if(typeof xe.then=="function")return ie(J,Z,te,gu(xe),We);if(xe.$$typeof===N)return ie(J,Z,te,du(Z,xe),We);hu(Z,xe)}return null}function qe(J,Z,te,xe){for(var We=null,Rt=null,Ge=Z,dt=Z=0,jt=null;Ge!==null&&dt<te.length;dt++){Ge.index>dt?(jt=Ge,Ge=null):jt=Ge.sibling;var Tt=re(J,Ge,te[dt],xe);if(Tt===null){Ge===null&&(Ge=jt);break}n&&Ge&&Tt.alternate===null&&a(J,Ge),Z=y(Tt,Z,dt),Rt===null?We=Tt:Rt.sibling=Tt,Rt=Tt,Ge=jt}if(dt===te.length)return i(J,Ge),kt&&ws(J,dt),We;if(Ge===null){for(;dt<te.length;dt++)Ge=ye(J,te[dt],xe),Ge!==null&&(Z=y(Ge,Z,dt),Rt===null?We=Ge:Rt.sibling=Ge,Rt=Ge);return kt&&ws(J,dt),We}for(Ge=d(Ge);dt<te.length;dt++)jt=ie(Ge,J,dt,te[dt],xe),jt!==null&&(n&&jt.alternate!==null&&Ge.delete(jt.key===null?dt:jt.key),Z=y(jt,Z,dt),Rt===null?We=jt:Rt.sibling=jt,Rt=jt);return n&&Ge.forEach(function(yr){return a(J,yr)}),kt&&ws(J,dt),We}function at(J,Z,te,xe){if(te==null)throw Error(o(151));for(var We=null,Rt=null,Ge=Z,dt=Z=0,jt=null,Tt=te.next();Ge!==null&&!Tt.done;dt++,Tt=te.next()){Ge.index>dt?(jt=Ge,Ge=null):jt=Ge.sibling;var yr=re(J,Ge,Tt.value,xe);if(yr===null){Ge===null&&(Ge=jt);break}n&&Ge&&yr.alternate===null&&a(J,Ge),Z=y(yr,Z,dt),Rt===null?We=yr:Rt.sibling=yr,Rt=yr,Ge=jt}if(Tt.done)return i(J,Ge),kt&&ws(J,dt),We;if(Ge===null){for(;!Tt.done;dt++,Tt=te.next())Tt=ye(J,Tt.value,xe),Tt!==null&&(Z=y(Tt,Z,dt),Rt===null?We=Tt:Rt.sibling=Tt,Rt=Tt);return kt&&ws(J,dt),We}for(Ge=d(Ge);!Tt.done;dt++,Tt=te.next())Tt=ie(Ge,J,dt,Tt.value,xe),Tt!==null&&(n&&Tt.alternate!==null&&Ge.delete(Tt.key===null?dt:Tt.key),Z=y(Tt,Z,dt),Rt===null?We=Tt:Rt.sibling=Tt,Rt=Tt);return n&&Ge.forEach(function(QR){return a(J,QR)}),kt&&ws(J,dt),We}function Pt(J,Z,te,xe){if(typeof te=="object"&&te!==null&&te.type===j&&te.key===null&&(te=te.props.children),typeof te=="object"&&te!==null){switch(te.$$typeof){case k:e:{for(var We=te.key;Z!==null;){if(Z.key===We){if(We=te.type,We===j){if(Z.tag===7){i(J,Z.sibling),xe=v(Z,te.props.children),xe.return=J,J=xe;break e}}else if(Z.elementType===We||typeof We=="object"&&We!==null&&We.$$typeof===z&&Jr(We)===Z.type){i(J,Z.sibling),xe=v(Z,te.props),hi(xe,te),xe.return=J,J=xe;break e}i(J,Z);break}else a(J,Z);Z=Z.sibling}te.type===j?(xe=Xr(te.props.children,J.mode,xe,te.key),xe.return=J,J=xe):(xe=iu(te.type,te.key,te.props,null,J.mode,xe),hi(xe,te),xe.return=J,J=xe)}return O(J);case E:e:{for(We=te.key;Z!==null;){if(Z.key===We)if(Z.tag===4&&Z.stateNode.containerInfo===te.containerInfo&&Z.stateNode.implementation===te.implementation){i(J,Z.sibling),xe=v(Z,te.children||[]),xe.return=J,J=xe;break e}else{i(J,Z);break}else a(J,Z);Z=Z.sibling}xe=Op(te,J.mode,xe),xe.return=J,J=xe}return O(J);case z:return te=Jr(te),Pt(J,Z,te,xe)}if(G(te))return qe(J,Z,te,xe);if(B(te)){if(We=B(te),typeof We!="function")throw Error(o(150));return te=We.call(te),at(J,Z,te,xe)}if(typeof te.then=="function")return Pt(J,Z,gu(te),xe);if(te.$$typeof===N)return Pt(J,Z,du(J,te),xe);hu(J,te)}return typeof te=="string"&&te!==""||typeof te=="number"||typeof te=="bigint"?(te=""+te,Z!==null&&Z.tag===6?(i(J,Z.sibling),xe=v(Z,te),xe.return=J,J=xe):(i(J,Z),xe=Mp(te,J.mode,xe),xe.return=J,J=xe),O(J)):i(J,Z)}return function(J,Z,te,xe){try{gi=0;var We=Pt(J,Z,te,xe);return el=null,We}catch(Ge){if(Ge===Jo||Ge===pu)throw Ge;var Rt=da(29,Ge,null,J.mode);return Rt.lanes=xe,Rt.return=J,Rt}finally{}}}var to=k_(!0),S_=k_(!1),sr=!1;function Fp(n){n.updateQueue={baseState:n.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Gp(n,a){n=n.updateQueue,a.updateQueue===n&&(a.updateQueue={baseState:n.baseState,firstBaseUpdate:n.firstBaseUpdate,lastBaseUpdate:n.lastBaseUpdate,shared:n.shared,callbacks:null})}function rr(n){return{lane:n,tag:0,payload:null,callback:null,next:null}}function or(n,a,i){var d=n.updateQueue;if(d===null)return null;if(d=d.shared,(At&2)!==0){var v=d.pending;return v===null?a.next=a:(a.next=v.next,v.next=a),d.pending=a,a=lu(n),i_(n,null,i),a}return ou(n,d,a,i),lu(n)}function xi(n,a,i){if(a=a.updateQueue,a!==null&&(a=a.shared,(i&4194048)!==0)){var d=a.lanes;d&=n.pendingLanes,i|=d,a.lanes=i,La(n,i)}}function Yp(n,a){var i=n.updateQueue,d=n.alternate;if(d!==null&&(d=d.updateQueue,i===d)){var v=null,y=null;if(i=i.firstBaseUpdate,i!==null){do{var O={lane:i.lane,tag:i.tag,payload:i.payload,callback:null,next:null};y===null?v=y=O:y=y.next=O,i=i.next}while(i!==null);y===null?v=y=a:y=y.next=a}else v=y=a;i={baseState:d.baseState,firstBaseUpdate:v,lastBaseUpdate:y,shared:d.shared,callbacks:d.callbacks},n.updateQueue=i;return}n=i.lastBaseUpdate,n===null?i.firstBaseUpdate=a:n.next=a,i.lastBaseUpdate=a}var Xp=!1;function bi(){if(Xp){var n=Wo;if(n!==null)throw n}}function vi(n,a,i,d){Xp=!1;var v=n.updateQueue;sr=!1;var y=v.firstBaseUpdate,O=v.lastBaseUpdate,U=v.shared.pending;if(U!==null){v.shared.pending=null;var Q=U,ne=Q.next;Q.next=null,O===null?y=ne:O.next=ne,O=Q;var ge=n.alternate;ge!==null&&(ge=ge.updateQueue,U=ge.lastBaseUpdate,U!==O&&(U===null?ge.firstBaseUpdate=ne:U.next=ne,ge.lastBaseUpdate=Q))}if(y!==null){var ye=v.baseState;O=0,ge=ne=Q=null,U=y;do{var re=U.lane&-536870913,ie=re!==U.lane;if(ie?(yt&re)===re:(d&re)===re){re!==0&&re===Zo&&(Xp=!0),ge!==null&&(ge=ge.next={lane:0,tag:U.tag,payload:U.payload,callback:null,next:null});e:{var qe=n,at=U;re=a;var Pt=i;switch(at.tag){case 1:if(qe=at.payload,typeof qe=="function"){ye=qe.call(Pt,ye,re);break e}ye=qe;break e;case 3:qe.flags=qe.flags&-65537|128;case 0:if(qe=at.payload,re=typeof qe=="function"?qe.call(Pt,ye,re):qe,re==null)break e;ye=b({},ye,re);break e;case 2:sr=!0}}re=U.callback,re!==null&&(n.flags|=64,ie&&(n.flags|=8192),ie=v.callbacks,ie===null?v.callbacks=[re]:ie.push(re))}else ie={lane:re,tag:U.tag,payload:U.payload,callback:U.callback,next:null},ge===null?(ne=ge=ie,Q=ye):ge=ge.next=ie,O|=re;if(U=U.next,U===null){if(U=v.shared.pending,U===null)break;ie=U,U=ie.next,ie.next=null,v.lastBaseUpdate=ie,v.shared.pending=null}}while(!0);ge===null&&(Q=ye),v.baseState=Q,v.firstBaseUpdate=ne,v.lastBaseUpdate=ge,y===null&&(v.shared.lanes=0),dr|=O,n.lanes=O,n.memoizedState=ye}}function C_(n,a){if(typeof n!="function")throw Error(o(191,n));n.call(a)}function E_(n,a){var i=n.callbacks;if(i!==null)for(n.callbacks=null,n=0;n<i.length;n++)C_(i[n],a)}var tl=L(null),xu=L(0);function N_(n,a){n=zs,W(xu,n),W(tl,a),zs=n|a.baseLanes}function Kp(){W(xu,zs),W(tl,tl.current)}function Qp(){zs=xu.current,F(tl),F(xu)}var fa=L(null),Ra=null;function lr(n){var a=n.alternate;W(mn,mn.current&1),W(fa,n),Ra===null&&(a===null||tl.current!==null||a.memoizedState!==null)&&(Ra=n)}function Zp(n){W(mn,mn.current),W(fa,n),Ra===null&&(Ra=n)}function R_(n){n.tag===22?(W(mn,mn.current),W(fa,n),Ra===null&&(Ra=n)):ir()}function ir(){W(mn,mn.current),W(fa,fa.current)}function pa(n){F(fa),Ra===n&&(Ra=null),F(mn)}var mn=L(0);function bu(n){for(var a=n;a!==null;){if(a.tag===13){var i=a.memoizedState;if(i!==null&&(i=i.dehydrated,i===null||ag(i)||sg(i)))return a}else if(a.tag===19&&(a.memoizedProps.revealOrder==="forwards"||a.memoizedProps.revealOrder==="backwards"||a.memoizedProps.revealOrder==="unstable_legacy-backwards"||a.memoizedProps.revealOrder==="together")){if((a.flags&128)!==0)return a}else if(a.child!==null){a.child.return=a,a=a.child;continue}if(a===n)break;for(;a.sibling===null;){if(a.return===null||a.return===n)return null;a=a.return}a.sibling.return=a.return,a=a.sibling}return null}var Cs=0,ut=null,Dt=null,bn=null,vu=!1,nl=!1,no=!1,_u=0,_i=0,al=null,UN=0;function on(){throw Error(o(321))}function Wp(n,a){if(a===null)return!1;for(var i=0;i<a.length&&i<n.length;i++)if(!ua(n[i],a[i]))return!1;return!0}function Jp(n,a,i,d,v,y){return Cs=y,ut=a,a.memoizedState=null,a.updateQueue=null,a.lanes=0,q.H=n===null||n.memoizedState===null?fy:mm,no=!1,y=i(d,v),no=!1,nl&&(y=A_(a,i,d,v)),T_(n),y}function T_(n){q.H=wi;var a=Dt!==null&&Dt.next!==null;if(Cs=0,bn=Dt=ut=null,vu=!1,_i=0,al=null,a)throw Error(o(300));n===null||vn||(n=n.dependencies,n!==null&&uu(n)&&(vn=!0))}function A_(n,a,i,d){ut=n;var v=0;do{if(nl&&(al=null),_i=0,nl=!1,25<=v)throw Error(o(301));if(v+=1,bn=Dt=null,n.updateQueue!=null){var y=n.updateQueue;y.lastEffect=null,y.events=null,y.stores=null,y.memoCache!=null&&(y.memoCache.index=0)}q.H=py,y=a(i,d)}while(nl);return y}function HN(){var n=q.H,a=n.useState()[0];return a=typeof a.then=="function"?yi(a):a,n=n.useState()[0],(Dt!==null?Dt.memoizedState:null)!==n&&(ut.flags|=1024),a}function em(){var n=_u!==0;return _u=0,n}function tm(n,a,i){a.updateQueue=n.updateQueue,a.flags&=-2053,n.lanes&=~i}function nm(n){if(vu){for(n=n.memoizedState;n!==null;){var a=n.queue;a!==null&&(a.pending=null),n=n.next}vu=!1}Cs=0,bn=Dt=ut=null,nl=!1,_i=_u=0,al=null}function Fn(){var n={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return bn===null?ut.memoizedState=bn=n:bn=bn.next=n,bn}function gn(){if(Dt===null){var n=ut.alternate;n=n!==null?n.memoizedState:null}else n=Dt.next;var a=bn===null?ut.memoizedState:bn.next;if(a!==null)bn=a,Dt=n;else{if(n===null)throw ut.alternate===null?Error(o(467)):Error(o(310));Dt=n,n={memoizedState:Dt.memoizedState,baseState:Dt.baseState,baseQueue:Dt.baseQueue,queue:Dt.queue,next:null},bn===null?ut.memoizedState=bn=n:bn=bn.next=n}return bn}function yu(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function yi(n){var a=_i;return _i+=1,al===null&&(al=[]),n=y_(al,n,a),a=ut,(bn===null?a.memoizedState:bn.next)===null&&(a=a.alternate,q.H=a===null||a.memoizedState===null?fy:mm),n}function ju(n){if(n!==null&&typeof n=="object"){if(typeof n.then=="function")return yi(n);if(n.$$typeof===N)return zn(n)}throw Error(o(438,String(n)))}function am(n){var a=null,i=ut.updateQueue;if(i!==null&&(a=i.memoCache),a==null){var d=ut.alternate;d!==null&&(d=d.updateQueue,d!==null&&(d=d.memoCache,d!=null&&(a={data:d.data.map(function(v){return v.slice()}),index:0})))}if(a==null&&(a={data:[],index:0}),i===null&&(i=yu(),ut.updateQueue=i),i.memoCache=a,i=a.data[a.index],i===void 0)for(i=a.data[a.index]=Array(n),d=0;d<n;d++)i[d]=D;return a.index++,i}function Es(n,a){return typeof a=="function"?a(n):a}function wu(n){var a=gn();return sm(a,Dt,n)}function sm(n,a,i){var d=n.queue;if(d===null)throw Error(o(311));d.lastRenderedReducer=i;var v=n.baseQueue,y=d.pending;if(y!==null){if(v!==null){var O=v.next;v.next=y.next,y.next=O}a.baseQueue=v=y,d.pending=null}if(y=n.baseState,v===null)n.memoizedState=y;else{a=v.next;var U=O=null,Q=null,ne=a,ge=!1;do{var ye=ne.lane&-536870913;if(ye!==ne.lane?(yt&ye)===ye:(Cs&ye)===ye){var re=ne.revertLane;if(re===0)Q!==null&&(Q=Q.next={lane:0,revertLane:0,gesture:null,action:ne.action,hasEagerState:ne.hasEagerState,eagerState:ne.eagerState,next:null}),ye===Zo&&(ge=!0);else if((Cs&re)===re){ne=ne.next,re===Zo&&(ge=!0);continue}else ye={lane:0,revertLane:ne.revertLane,gesture:null,action:ne.action,hasEagerState:ne.hasEagerState,eagerState:ne.eagerState,next:null},Q===null?(U=Q=ye,O=y):Q=Q.next=ye,ut.lanes|=re,dr|=re;ye=ne.action,no&&i(y,ye),y=ne.hasEagerState?ne.eagerState:i(y,ye)}else re={lane:ye,revertLane:ne.revertLane,gesture:ne.gesture,action:ne.action,hasEagerState:ne.hasEagerState,eagerState:ne.eagerState,next:null},Q===null?(U=Q=re,O=y):Q=Q.next=re,ut.lanes|=ye,dr|=ye;ne=ne.next}while(ne!==null&&ne!==a);if(Q===null?O=y:Q.next=U,!ua(y,n.memoizedState)&&(vn=!0,ge&&(i=Wo,i!==null)))throw i;n.memoizedState=y,n.baseState=O,n.baseQueue=Q,d.lastRenderedState=y}return v===null&&(d.lanes=0),[n.memoizedState,d.dispatch]}function rm(n){var a=gn(),i=a.queue;if(i===null)throw Error(o(311));i.lastRenderedReducer=n;var d=i.dispatch,v=i.pending,y=a.memoizedState;if(v!==null){i.pending=null;var O=v=v.next;do y=n(y,O.action),O=O.next;while(O!==v);ua(y,a.memoizedState)||(vn=!0),a.memoizedState=y,a.baseQueue===null&&(a.baseState=y),i.lastRenderedState=y}return[y,d]}function M_(n,a,i){var d=ut,v=gn(),y=kt;if(y){if(i===void 0)throw Error(o(407));i=i()}else i=a();var O=!ua((Dt||v).memoizedState,i);if(O&&(v.memoizedState=i,vn=!0),v=v.queue,im(D_.bind(null,d,v,n),[n]),v.getSnapshot!==a||O||bn!==null&&bn.memoizedState.tag&1){if(d.flags|=2048,sl(9,{destroy:void 0},z_.bind(null,d,v,i,a),null),Vt===null)throw Error(o(349));y||(Cs&127)!==0||O_(d,a,i)}return i}function O_(n,a,i){n.flags|=16384,n={getSnapshot:a,value:i},a=ut.updateQueue,a===null?(a=yu(),ut.updateQueue=a,a.stores=[n]):(i=a.stores,i===null?a.stores=[n]:i.push(n))}function z_(n,a,i,d){a.value=i,a.getSnapshot=d,L_(a)&&P_(n)}function D_(n,a,i){return i(function(){L_(a)&&P_(n)})}function L_(n){var a=n.getSnapshot;n=n.value;try{var i=a();return!ua(n,i)}catch{return!0}}function P_(n){var a=Yr(n,2);a!==null&&sa(a,n,2)}function om(n){var a=Fn();if(typeof n=="function"){var i=n;if(n=i(),no){Xe(!0);try{i()}finally{Xe(!1)}}}return a.memoizedState=a.baseState=n,a.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:Es,lastRenderedState:n},a}function I_(n,a,i,d){return n.baseState=i,sm(n,Dt,typeof d=="function"?d:Es)}function VN(n,a,i,d,v){if(Cu(n))throw Error(o(485));if(n=a.action,n!==null){var y={payload:v,action:n,next:null,isTransition:!0,status:"pending",value:null,reason:null,listeners:[],then:function(O){y.listeners.push(O)}};q.T!==null?i(!0):y.isTransition=!1,d(y),i=a.pending,i===null?(y.next=a.pending=y,B_(a,y)):(y.next=i.next,a.pending=i.next=y)}}function B_(n,a){var i=a.action,d=a.payload,v=n.state;if(a.isTransition){var y=q.T,O={};q.T=O;try{var U=i(v,d),Q=q.S;Q!==null&&Q(O,U),U_(n,a,U)}catch(ne){lm(n,a,ne)}finally{y!==null&&O.types!==null&&(y.types=O.types),q.T=y}}else try{y=i(v,d),U_(n,a,y)}catch(ne){lm(n,a,ne)}}function U_(n,a,i){i!==null&&typeof i=="object"&&typeof i.then=="function"?i.then(function(d){H_(n,a,d)},function(d){return lm(n,a,d)}):H_(n,a,i)}function H_(n,a,i){a.status="fulfilled",a.value=i,V_(a),n.state=i,a=n.pending,a!==null&&(i=a.next,i===a?n.pending=null:(i=i.next,a.next=i,B_(n,i)))}function lm(n,a,i){var d=n.pending;if(n.pending=null,d!==null){d=d.next;do a.status="rejected",a.reason=i,V_(a),a=a.next;while(a!==d)}n.action=null}function V_(n){n=n.listeners;for(var a=0;a<n.length;a++)(0,n[a])()}function q_(n,a){return a}function $_(n,a){if(kt){var i=Vt.formState;if(i!==null){e:{var d=ut;if(kt){if(Yt){t:{for(var v=Yt,y=Na;v.nodeType!==8;){if(!y){v=null;break t}if(v=Ta(v.nextSibling),v===null){v=null;break t}}y=v.data,v=y==="F!"||y==="F"?v:null}if(v){Yt=Ta(v.nextSibling),d=v.data==="F!";break e}}nr(d)}d=!1}d&&(a=i[0])}}return i=Fn(),i.memoizedState=i.baseState=a,d={pending:null,lanes:0,dispatch:null,lastRenderedReducer:q_,lastRenderedState:a},i.queue=d,i=cy.bind(null,ut,d),d.dispatch=i,d=om(!1),y=pm.bind(null,ut,!1,d.queue),d=Fn(),v={state:a,dispatch:null,action:n,pending:null},d.queue=v,i=VN.bind(null,ut,v,y,i),v.dispatch=i,d.memoizedState=n,[a,i,!1]}function F_(n){var a=gn();return G_(a,Dt,n)}function G_(n,a,i){if(a=sm(n,a,q_)[0],n=wu(Es)[0],typeof a=="object"&&a!==null&&typeof a.then=="function")try{var d=yi(a)}catch(O){throw O===Jo?pu:O}else d=a;a=gn();var v=a.queue,y=v.dispatch;return i!==a.memoizedState&&(ut.flags|=2048,sl(9,{destroy:void 0},qN.bind(null,v,i),null)),[d,y,n]}function qN(n,a){n.action=a}function Y_(n){var a=gn(),i=Dt;if(i!==null)return G_(a,i,n);gn(),a=a.memoizedState,i=gn();var d=i.queue.dispatch;return i.memoizedState=n,[a,d,!1]}function sl(n,a,i,d){return n={tag:n,create:i,deps:d,inst:a,next:null},a=ut.updateQueue,a===null&&(a=yu(),ut.updateQueue=a),i=a.lastEffect,i===null?a.lastEffect=n.next=n:(d=i.next,i.next=n,n.next=d,a.lastEffect=n),n}function X_(){return gn().memoizedState}function ku(n,a,i,d){var v=Fn();ut.flags|=n,v.memoizedState=sl(1|a,{destroy:void 0},i,d===void 0?null:d)}function Su(n,a,i,d){var v=gn();d=d===void 0?null:d;var y=v.memoizedState.inst;Dt!==null&&d!==null&&Wp(d,Dt.memoizedState.deps)?v.memoizedState=sl(a,y,i,d):(ut.flags|=n,v.memoizedState=sl(1|a,y,i,d))}function K_(n,a){ku(8390656,8,n,a)}function im(n,a){Su(2048,8,n,a)}function $N(n){ut.flags|=4;var a=ut.updateQueue;if(a===null)a=yu(),ut.updateQueue=a,a.events=[n];else{var i=a.events;i===null?a.events=[n]:i.push(n)}}function Q_(n){var a=gn().memoizedState;return $N({ref:a,nextImpl:n}),function(){if((At&2)!==0)throw Error(o(440));return a.impl.apply(void 0,arguments)}}function Z_(n,a){return Su(4,2,n,a)}function W_(n,a){return Su(4,4,n,a)}function J_(n,a){if(typeof a=="function"){n=n();var i=a(n);return function(){typeof i=="function"?i():a(null)}}if(a!=null)return n=n(),a.current=n,function(){a.current=null}}function ey(n,a,i){i=i!=null?i.concat([n]):null,Su(4,4,J_.bind(null,a,n),i)}function cm(){}function ty(n,a){var i=gn();a=a===void 0?null:a;var d=i.memoizedState;return a!==null&&Wp(a,d[1])?d[0]:(i.memoizedState=[n,a],n)}function ny(n,a){var i=gn();a=a===void 0?null:a;var d=i.memoizedState;if(a!==null&&Wp(a,d[1]))return d[0];if(d=n(),no){Xe(!0);try{n()}finally{Xe(!1)}}return i.memoizedState=[d,a],d}function um(n,a,i){return i===void 0||(Cs&1073741824)!==0&&(yt&261930)===0?n.memoizedState=a:(n.memoizedState=i,n=a0(),ut.lanes|=n,dr|=n,i)}function ay(n,a,i,d){return ua(i,a)?i:tl.current!==null?(n=um(n,i,d),ua(n,a)||(vn=!0),n):(Cs&42)===0||(Cs&1073741824)!==0&&(yt&261930)===0?(vn=!0,n.memoizedState=i):(n=a0(),ut.lanes|=n,dr|=n,a)}function sy(n,a,i,d,v){var y=Y.p;Y.p=y!==0&&8>y?y:8;var O=q.T,U={};q.T=U,pm(n,!1,a,i);try{var Q=v(),ne=q.S;if(ne!==null&&ne(U,Q),Q!==null&&typeof Q=="object"&&typeof Q.then=="function"){var ge=BN(Q,d);ji(n,a,ge,ha(n))}else ji(n,a,d,ha(n))}catch(ye){ji(n,a,{then:function(){},status:"rejected",reason:ye},ha())}finally{Y.p=y,O!==null&&U.types!==null&&(O.types=U.types),q.T=O}}function FN(){}function dm(n,a,i,d){if(n.tag!==5)throw Error(o(476));var v=ry(n).queue;sy(n,v,a,X,i===null?FN:function(){return oy(n),i(d)})}function ry(n){var a=n.memoizedState;if(a!==null)return a;a={memoizedState:X,baseState:X,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Es,lastRenderedState:X},next:null};var i={};return a.next={memoizedState:i,baseState:i,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Es,lastRenderedState:i},next:null},n.memoizedState=a,n=n.alternate,n!==null&&(n.memoizedState=a),a}function oy(n){var a=ry(n);a.next===null&&(a=n.alternate.memoizedState),ji(n,a.next.queue,{},ha())}function fm(){return zn(Bi)}function ly(){return gn().memoizedState}function iy(){return gn().memoizedState}function GN(n){for(var a=n.return;a!==null;){switch(a.tag){case 24:case 3:var i=ha();n=rr(i);var d=or(a,n,i);d!==null&&(sa(d,a,i),xi(d,a,i)),a={cache:Hp()},n.payload=a;return}a=a.return}}function YN(n,a,i){var d=ha();i={lane:d,revertLane:0,gesture:null,action:i,hasEagerState:!1,eagerState:null,next:null},Cu(n)?uy(a,i):(i=Tp(n,a,i,d),i!==null&&(sa(i,n,d),dy(i,a,d)))}function cy(n,a,i){var d=ha();ji(n,a,i,d)}function ji(n,a,i,d){var v={lane:d,revertLane:0,gesture:null,action:i,hasEagerState:!1,eagerState:null,next:null};if(Cu(n))uy(a,v);else{var y=n.alternate;if(n.lanes===0&&(y===null||y.lanes===0)&&(y=a.lastRenderedReducer,y!==null))try{var O=a.lastRenderedState,U=y(O,i);if(v.hasEagerState=!0,v.eagerState=U,ua(U,O))return ou(n,a,v,0),Vt===null&&ru(),!1}catch{}finally{}if(i=Tp(n,a,v,d),i!==null)return sa(i,n,d),dy(i,a,d),!0}return!1}function pm(n,a,i,d){if(d={lane:2,revertLane:Fm(),gesture:null,action:d,hasEagerState:!1,eagerState:null,next:null},Cu(n)){if(a)throw Error(o(479))}else a=Tp(n,i,d,2),a!==null&&sa(a,n,2)}function Cu(n){var a=n.alternate;return n===ut||a!==null&&a===ut}function uy(n,a){nl=vu=!0;var i=n.pending;i===null?a.next=a:(a.next=i.next,i.next=a),n.pending=a}function dy(n,a,i){if((i&4194048)!==0){var d=a.lanes;d&=n.pendingLanes,i|=d,a.lanes=i,La(n,i)}}var wi={readContext:zn,use:ju,useCallback:on,useContext:on,useEffect:on,useImperativeHandle:on,useLayoutEffect:on,useInsertionEffect:on,useMemo:on,useReducer:on,useRef:on,useState:on,useDebugValue:on,useDeferredValue:on,useTransition:on,useSyncExternalStore:on,useId:on,useHostTransitionStatus:on,useFormState:on,useActionState:on,useOptimistic:on,useMemoCache:on,useCacheRefresh:on};wi.useEffectEvent=on;var fy={readContext:zn,use:ju,useCallback:function(n,a){return Fn().memoizedState=[n,a===void 0?null:a],n},useContext:zn,useEffect:K_,useImperativeHandle:function(n,a,i){i=i!=null?i.concat([n]):null,ku(4194308,4,J_.bind(null,a,n),i)},useLayoutEffect:function(n,a){return ku(4194308,4,n,a)},useInsertionEffect:function(n,a){ku(4,2,n,a)},useMemo:function(n,a){var i=Fn();a=a===void 0?null:a;var d=n();if(no){Xe(!0);try{n()}finally{Xe(!1)}}return i.memoizedState=[d,a],d},useReducer:function(n,a,i){var d=Fn();if(i!==void 0){var v=i(a);if(no){Xe(!0);try{i(a)}finally{Xe(!1)}}}else v=a;return d.memoizedState=d.baseState=v,n={pending:null,lanes:0,dispatch:null,lastRenderedReducer:n,lastRenderedState:v},d.queue=n,n=n.dispatch=YN.bind(null,ut,n),[d.memoizedState,n]},useRef:function(n){var a=Fn();return n={current:n},a.memoizedState=n},useState:function(n){n=om(n);var a=n.queue,i=cy.bind(null,ut,a);return a.dispatch=i,[n.memoizedState,i]},useDebugValue:cm,useDeferredValue:function(n,a){var i=Fn();return um(i,n,a)},useTransition:function(){var n=om(!1);return n=sy.bind(null,ut,n.queue,!0,!1),Fn().memoizedState=n,[!1,n]},useSyncExternalStore:function(n,a,i){var d=ut,v=Fn();if(kt){if(i===void 0)throw Error(o(407));i=i()}else{if(i=a(),Vt===null)throw Error(o(349));(yt&127)!==0||O_(d,a,i)}v.memoizedState=i;var y={value:i,getSnapshot:a};return v.queue=y,K_(D_.bind(null,d,y,n),[n]),d.flags|=2048,sl(9,{destroy:void 0},z_.bind(null,d,y,i,a),null),i},useId:function(){var n=Fn(),a=Vt.identifierPrefix;if(kt){var i=Ka,d=Xa;i=(d&~(1<<32-rt(d)-1)).toString(32)+i,a="_"+a+"R_"+i,i=_u++,0<i&&(a+="H"+i.toString(32)),a+="_"}else i=UN++,a="_"+a+"r_"+i.toString(32)+"_";return n.memoizedState=a},useHostTransitionStatus:fm,useFormState:$_,useActionState:$_,useOptimistic:function(n){var a=Fn();a.memoizedState=a.baseState=n;var i={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return a.queue=i,a=pm.bind(null,ut,!0,i),i.dispatch=a,[n,a]},useMemoCache:am,useCacheRefresh:function(){return Fn().memoizedState=GN.bind(null,ut)},useEffectEvent:function(n){var a=Fn(),i={impl:n};return a.memoizedState=i,function(){if((At&2)!==0)throw Error(o(440));return i.impl.apply(void 0,arguments)}}},mm={readContext:zn,use:ju,useCallback:ty,useContext:zn,useEffect:im,useImperativeHandle:ey,useInsertionEffect:Z_,useLayoutEffect:W_,useMemo:ny,useReducer:wu,useRef:X_,useState:function(){return wu(Es)},useDebugValue:cm,useDeferredValue:function(n,a){var i=gn();return ay(i,Dt.memoizedState,n,a)},useTransition:function(){var n=wu(Es)[0],a=gn().memoizedState;return[typeof n=="boolean"?n:yi(n),a]},useSyncExternalStore:M_,useId:ly,useHostTransitionStatus:fm,useFormState:F_,useActionState:F_,useOptimistic:function(n,a){var i=gn();return I_(i,Dt,n,a)},useMemoCache:am,useCacheRefresh:iy};mm.useEffectEvent=Q_;var py={readContext:zn,use:ju,useCallback:ty,useContext:zn,useEffect:im,useImperativeHandle:ey,useInsertionEffect:Z_,useLayoutEffect:W_,useMemo:ny,useReducer:rm,useRef:X_,useState:function(){return rm(Es)},useDebugValue:cm,useDeferredValue:function(n,a){var i=gn();return Dt===null?um(i,n,a):ay(i,Dt.memoizedState,n,a)},useTransition:function(){var n=rm(Es)[0],a=gn().memoizedState;return[typeof n=="boolean"?n:yi(n),a]},useSyncExternalStore:M_,useId:ly,useHostTransitionStatus:fm,useFormState:Y_,useActionState:Y_,useOptimistic:function(n,a){var i=gn();return Dt!==null?I_(i,Dt,n,a):(i.baseState=n,[n,i.queue.dispatch])},useMemoCache:am,useCacheRefresh:iy};py.useEffectEvent=Q_;function gm(n,a,i,d){a=n.memoizedState,i=i(d,a),i=i==null?a:b({},a,i),n.memoizedState=i,n.lanes===0&&(n.updateQueue.baseState=i)}var hm={enqueueSetState:function(n,a,i){n=n._reactInternals;var d=ha(),v=rr(d);v.payload=a,i!=null&&(v.callback=i),a=or(n,v,d),a!==null&&(sa(a,n,d),xi(a,n,d))},enqueueReplaceState:function(n,a,i){n=n._reactInternals;var d=ha(),v=rr(d);v.tag=1,v.payload=a,i!=null&&(v.callback=i),a=or(n,v,d),a!==null&&(sa(a,n,d),xi(a,n,d))},enqueueForceUpdate:function(n,a){n=n._reactInternals;var i=ha(),d=rr(i);d.tag=2,a!=null&&(d.callback=a),a=or(n,d,i),a!==null&&(sa(a,n,i),xi(a,n,i))}};function my(n,a,i,d,v,y,O){return n=n.stateNode,typeof n.shouldComponentUpdate=="function"?n.shouldComponentUpdate(d,y,O):a.prototype&&a.prototype.isPureReactComponent?!ci(i,d)||!ci(v,y):!0}function gy(n,a,i,d){n=a.state,typeof a.componentWillReceiveProps=="function"&&a.componentWillReceiveProps(i,d),typeof a.UNSAFE_componentWillReceiveProps=="function"&&a.UNSAFE_componentWillReceiveProps(i,d),a.state!==n&&hm.enqueueReplaceState(a,a.state,null)}function ao(n,a){var i=a;if("ref"in a){i={};for(var d in a)d!=="ref"&&(i[d]=a[d])}if(n=n.defaultProps){i===a&&(i=b({},i));for(var v in n)i[v]===void 0&&(i[v]=n[v])}return i}function hy(n){su(n)}function xy(n){console.error(n)}function by(n){su(n)}function Eu(n,a){try{var i=n.onUncaughtError;i(a.value,{componentStack:a.stack})}catch(d){setTimeout(function(){throw d})}}function vy(n,a,i){try{var d=n.onCaughtError;d(i.value,{componentStack:i.stack,errorBoundary:a.tag===1?a.stateNode:null})}catch(v){setTimeout(function(){throw v})}}function xm(n,a,i){return i=rr(i),i.tag=3,i.payload={element:null},i.callback=function(){Eu(n,a)},i}function _y(n){return n=rr(n),n.tag=3,n}function yy(n,a,i,d){var v=i.type.getDerivedStateFromError;if(typeof v=="function"){var y=d.value;n.payload=function(){return v(y)},n.callback=function(){vy(a,i,d)}}var O=i.stateNode;O!==null&&typeof O.componentDidCatch=="function"&&(n.callback=function(){vy(a,i,d),typeof v!="function"&&(fr===null?fr=new Set([this]):fr.add(this));var U=d.stack;this.componentDidCatch(d.value,{componentStack:U!==null?U:""})})}function XN(n,a,i,d,v){if(i.flags|=32768,d!==null&&typeof d=="object"&&typeof d.then=="function"){if(a=i.alternate,a!==null&&Qo(a,i,v,!0),i=fa.current,i!==null){switch(i.tag){case 31:case 13:return Ra===null?Bu():i.alternate===null&&ln===0&&(ln=3),i.flags&=-257,i.flags|=65536,i.lanes=v,d===mu?i.flags|=16384:(a=i.updateQueue,a===null?i.updateQueue=new Set([d]):a.add(d),Vm(n,d,v)),!1;case 22:return i.flags|=65536,d===mu?i.flags|=16384:(a=i.updateQueue,a===null?(a={transitions:null,markerInstances:null,retryQueue:new Set([d])},i.updateQueue=a):(i=a.retryQueue,i===null?a.retryQueue=new Set([d]):i.add(d)),Vm(n,d,v)),!1}throw Error(o(435,i.tag))}return Vm(n,d,v),Bu(),!1}if(kt)return a=fa.current,a!==null?((a.flags&65536)===0&&(a.flags|=256),a.flags|=65536,a.lanes=v,d!==Lp&&(n=Error(o(422),{cause:d}),fi(Sa(n,i)))):(d!==Lp&&(a=Error(o(423),{cause:d}),fi(Sa(a,i))),n=n.current.alternate,n.flags|=65536,v&=-v,n.lanes|=v,d=Sa(d,i),v=xm(n.stateNode,d,v),Yp(n,v),ln!==4&&(ln=2)),!1;var y=Error(o(520),{cause:d});if(y=Sa(y,i),Ai===null?Ai=[y]:Ai.push(y),ln!==4&&(ln=2),a===null)return!0;d=Sa(d,i),i=a;do{switch(i.tag){case 3:return i.flags|=65536,n=v&-v,i.lanes|=n,n=xm(i.stateNode,d,n),Yp(i,n),!1;case 1:if(a=i.type,y=i.stateNode,(i.flags&128)===0&&(typeof a.getDerivedStateFromError=="function"||y!==null&&typeof y.componentDidCatch=="function"&&(fr===null||!fr.has(y))))return i.flags|=65536,v&=-v,i.lanes|=v,v=_y(v),yy(v,n,i,d),Yp(i,v),!1}i=i.return}while(i!==null);return!1}var bm=Error(o(461)),vn=!1;function Dn(n,a,i,d){a.child=n===null?S_(a,null,i,d):to(a,n.child,i,d)}function jy(n,a,i,d,v){i=i.render;var y=a.ref;if("ref"in d){var O={};for(var U in d)U!=="ref"&&(O[U]=d[U])}else O=d;return Zr(a),d=Jp(n,a,i,O,y,v),U=em(),n!==null&&!vn?(tm(n,a,v),Ns(n,a,v)):(kt&&U&&zp(a),a.flags|=1,Dn(n,a,d,v),a.child)}function wy(n,a,i,d,v){if(n===null){var y=i.type;return typeof y=="function"&&!Ap(y)&&y.defaultProps===void 0&&i.compare===null?(a.tag=15,a.type=y,ky(n,a,y,d,v)):(n=iu(i.type,null,d,a,a.mode,v),n.ref=a.ref,n.return=a,a.child=n)}if(y=n.child,!Cm(n,v)){var O=y.memoizedProps;if(i=i.compare,i=i!==null?i:ci,i(O,d)&&n.ref===a.ref)return Ns(n,a,v)}return a.flags|=1,n=js(y,d),n.ref=a.ref,n.return=a,a.child=n}function ky(n,a,i,d,v){if(n!==null){var y=n.memoizedProps;if(ci(y,d)&&n.ref===a.ref)if(vn=!1,a.pendingProps=d=y,Cm(n,v))(n.flags&131072)!==0&&(vn=!0);else return a.lanes=n.lanes,Ns(n,a,v)}return vm(n,a,i,d,v)}function Sy(n,a,i,d){var v=d.children,y=n!==null?n.memoizedState:null;if(n===null&&a.stateNode===null&&(a.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),d.mode==="hidden"){if((a.flags&128)!==0){if(y=y!==null?y.baseLanes|i:i,n!==null){for(d=a.child=n.child,v=0;d!==null;)v=v|d.lanes|d.childLanes,d=d.sibling;d=v&~y}else d=0,a.child=null;return Cy(n,a,y,i,d)}if((i&536870912)!==0)a.memoizedState={baseLanes:0,cachePool:null},n!==null&&fu(a,y!==null?y.cachePool:null),y!==null?N_(a,y):Kp(),R_(a);else return d=a.lanes=536870912,Cy(n,a,y!==null?y.baseLanes|i:i,i,d)}else y!==null?(fu(a,y.cachePool),N_(a,y),ir(),a.memoizedState=null):(n!==null&&fu(a,null),Kp(),ir());return Dn(n,a,v,i),a.child}function ki(n,a){return n!==null&&n.tag===22||a.stateNode!==null||(a.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),a.sibling}function Cy(n,a,i,d,v){var y=qp();return y=y===null?null:{parent:xn._currentValue,pool:y},a.memoizedState={baseLanes:i,cachePool:y},n!==null&&fu(a,null),Kp(),R_(a),n!==null&&Qo(n,a,d,!0),a.childLanes=v,null}function Nu(n,a){return a=Tu({mode:a.mode,children:a.children},n.mode),a.ref=n.ref,n.child=a,a.return=n,a}function Ey(n,a,i){return to(a,n.child,null,i),n=Nu(a,a.pendingProps),n.flags|=2,pa(a),a.memoizedState=null,n}function KN(n,a,i){var d=a.pendingProps,v=(a.flags&128)!==0;if(a.flags&=-129,n===null){if(kt){if(d.mode==="hidden")return n=Nu(a,d),a.lanes=536870912,ki(null,n);if(Zp(a),(n=Yt)?(n=B0(n,Na),n=n!==null&&n.data==="&"?n:null,n!==null&&(a.memoizedState={dehydrated:n,treeContext:er!==null?{id:Xa,overflow:Ka}:null,retryLane:536870912,hydrationErrors:null},i=u_(n),i.return=a,a.child=i,On=a,Yt=null)):n=null,n===null)throw nr(a);return a.lanes=536870912,null}return Nu(a,d)}var y=n.memoizedState;if(y!==null){var O=y.dehydrated;if(Zp(a),v)if(a.flags&256)a.flags&=-257,a=Ey(n,a,i);else if(a.memoizedState!==null)a.child=n.child,a.flags|=128,a=null;else throw Error(o(558));else if(vn||Qo(n,a,i,!1),v=(i&n.childLanes)!==0,vn||v){if(d=Vt,d!==null&&(O=bs(d,i),O!==0&&O!==y.retryLane))throw y.retryLane=O,Yr(n,O),sa(d,n,O),bm;Bu(),a=Ey(n,a,i)}else n=y.treeContext,Yt=Ta(O.nextSibling),On=a,kt=!0,tr=null,Na=!1,n!==null&&p_(a,n),a=Nu(a,d),a.flags|=4096;return a}return n=js(n.child,{mode:d.mode,children:d.children}),n.ref=a.ref,a.child=n,n.return=a,n}function Ru(n,a){var i=a.ref;if(i===null)n!==null&&n.ref!==null&&(a.flags|=4194816);else{if(typeof i!="function"&&typeof i!="object")throw Error(o(284));(n===null||n.ref!==i)&&(a.flags|=4194816)}}function vm(n,a,i,d,v){return Zr(a),i=Jp(n,a,i,d,void 0,v),d=em(),n!==null&&!vn?(tm(n,a,v),Ns(n,a,v)):(kt&&d&&zp(a),a.flags|=1,Dn(n,a,i,v),a.child)}function Ny(n,a,i,d,v,y){return Zr(a),a.updateQueue=null,i=A_(a,d,i,v),T_(n),d=em(),n!==null&&!vn?(tm(n,a,y),Ns(n,a,y)):(kt&&d&&zp(a),a.flags|=1,Dn(n,a,i,y),a.child)}function Ry(n,a,i,d,v){if(Zr(a),a.stateNode===null){var y=Go,O=i.contextType;typeof O=="object"&&O!==null&&(y=zn(O)),y=new i(d,y),a.memoizedState=y.state!==null&&y.state!==void 0?y.state:null,y.updater=hm,a.stateNode=y,y._reactInternals=a,y=a.stateNode,y.props=d,y.state=a.memoizedState,y.refs={},Fp(a),O=i.contextType,y.context=typeof O=="object"&&O!==null?zn(O):Go,y.state=a.memoizedState,O=i.getDerivedStateFromProps,typeof O=="function"&&(gm(a,i,O,d),y.state=a.memoizedState),typeof i.getDerivedStateFromProps=="function"||typeof y.getSnapshotBeforeUpdate=="function"||typeof y.UNSAFE_componentWillMount!="function"&&typeof y.componentWillMount!="function"||(O=y.state,typeof y.componentWillMount=="function"&&y.componentWillMount(),typeof y.UNSAFE_componentWillMount=="function"&&y.UNSAFE_componentWillMount(),O!==y.state&&hm.enqueueReplaceState(y,y.state,null),vi(a,d,y,v),bi(),y.state=a.memoizedState),typeof y.componentDidMount=="function"&&(a.flags|=4194308),d=!0}else if(n===null){y=a.stateNode;var U=a.memoizedProps,Q=ao(i,U);y.props=Q;var ne=y.context,ge=i.contextType;O=Go,typeof ge=="object"&&ge!==null&&(O=zn(ge));var ye=i.getDerivedStateFromProps;ge=typeof ye=="function"||typeof y.getSnapshotBeforeUpdate=="function",U=a.pendingProps!==U,ge||typeof y.UNSAFE_componentWillReceiveProps!="function"&&typeof y.componentWillReceiveProps!="function"||(U||ne!==O)&&gy(a,y,d,O),sr=!1;var re=a.memoizedState;y.state=re,vi(a,d,y,v),bi(),ne=a.memoizedState,U||re!==ne||sr?(typeof ye=="function"&&(gm(a,i,ye,d),ne=a.memoizedState),(Q=sr||my(a,i,Q,d,re,ne,O))?(ge||typeof y.UNSAFE_componentWillMount!="function"&&typeof y.componentWillMount!="function"||(typeof y.componentWillMount=="function"&&y.componentWillMount(),typeof y.UNSAFE_componentWillMount=="function"&&y.UNSAFE_componentWillMount()),typeof y.componentDidMount=="function"&&(a.flags|=4194308)):(typeof y.componentDidMount=="function"&&(a.flags|=4194308),a.memoizedProps=d,a.memoizedState=ne),y.props=d,y.state=ne,y.context=O,d=Q):(typeof y.componentDidMount=="function"&&(a.flags|=4194308),d=!1)}else{y=a.stateNode,Gp(n,a),O=a.memoizedProps,ge=ao(i,O),y.props=ge,ye=a.pendingProps,re=y.context,ne=i.contextType,Q=Go,typeof ne=="object"&&ne!==null&&(Q=zn(ne)),U=i.getDerivedStateFromProps,(ne=typeof U=="function"||typeof y.getSnapshotBeforeUpdate=="function")||typeof y.UNSAFE_componentWillReceiveProps!="function"&&typeof y.componentWillReceiveProps!="function"||(O!==ye||re!==Q)&&gy(a,y,d,Q),sr=!1,re=a.memoizedState,y.state=re,vi(a,d,y,v),bi();var ie=a.memoizedState;O!==ye||re!==ie||sr||n!==null&&n.dependencies!==null&&uu(n.dependencies)?(typeof U=="function"&&(gm(a,i,U,d),ie=a.memoizedState),(ge=sr||my(a,i,ge,d,re,ie,Q)||n!==null&&n.dependencies!==null&&uu(n.dependencies))?(ne||typeof y.UNSAFE_componentWillUpdate!="function"&&typeof y.componentWillUpdate!="function"||(typeof y.componentWillUpdate=="function"&&y.componentWillUpdate(d,ie,Q),typeof y.UNSAFE_componentWillUpdate=="function"&&y.UNSAFE_componentWillUpdate(d,ie,Q)),typeof y.componentDidUpdate=="function"&&(a.flags|=4),typeof y.getSnapshotBeforeUpdate=="function"&&(a.flags|=1024)):(typeof y.componentDidUpdate!="function"||O===n.memoizedProps&&re===n.memoizedState||(a.flags|=4),typeof y.getSnapshotBeforeUpdate!="function"||O===n.memoizedProps&&re===n.memoizedState||(a.flags|=1024),a.memoizedProps=d,a.memoizedState=ie),y.props=d,y.state=ie,y.context=Q,d=ge):(typeof y.componentDidUpdate!="function"||O===n.memoizedProps&&re===n.memoizedState||(a.flags|=4),typeof y.getSnapshotBeforeUpdate!="function"||O===n.memoizedProps&&re===n.memoizedState||(a.flags|=1024),d=!1)}return y=d,Ru(n,a),d=(a.flags&128)!==0,y||d?(y=a.stateNode,i=d&&typeof i.getDerivedStateFromError!="function"?null:y.render(),a.flags|=1,n!==null&&d?(a.child=to(a,n.child,null,v),a.child=to(a,null,i,v)):Dn(n,a,i,v),a.memoizedState=y.state,n=a.child):n=Ns(n,a,v),n}function Ty(n,a,i,d){return Kr(),a.flags|=256,Dn(n,a,i,d),a.child}var _m={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function ym(n){return{baseLanes:n,cachePool:v_()}}function jm(n,a,i){return n=n!==null?n.childLanes&~i:0,a&&(n|=ga),n}function Ay(n,a,i){var d=a.pendingProps,v=!1,y=(a.flags&128)!==0,O;if((O=y)||(O=n!==null&&n.memoizedState===null?!1:(mn.current&2)!==0),O&&(v=!0,a.flags&=-129),O=(a.flags&32)!==0,a.flags&=-33,n===null){if(kt){if(v?lr(a):ir(),(n=Yt)?(n=B0(n,Na),n=n!==null&&n.data!=="&"?n:null,n!==null&&(a.memoizedState={dehydrated:n,treeContext:er!==null?{id:Xa,overflow:Ka}:null,retryLane:536870912,hydrationErrors:null},i=u_(n),i.return=a,a.child=i,On=a,Yt=null)):n=null,n===null)throw nr(a);return sg(n)?a.lanes=32:a.lanes=536870912,null}var U=d.children;return d=d.fallback,v?(ir(),v=a.mode,U=Tu({mode:"hidden",children:U},v),d=Xr(d,v,i,null),U.return=a,d.return=a,U.sibling=d,a.child=U,d=a.child,d.memoizedState=ym(i),d.childLanes=jm(n,O,i),a.memoizedState=_m,ki(null,d)):(lr(a),wm(a,U))}var Q=n.memoizedState;if(Q!==null&&(U=Q.dehydrated,U!==null)){if(y)a.flags&256?(lr(a),a.flags&=-257,a=km(n,a,i)):a.memoizedState!==null?(ir(),a.child=n.child,a.flags|=128,a=null):(ir(),U=d.fallback,v=a.mode,d=Tu({mode:"visible",children:d.children},v),U=Xr(U,v,i,null),U.flags|=2,d.return=a,U.return=a,d.sibling=U,a.child=d,to(a,n.child,null,i),d=a.child,d.memoizedState=ym(i),d.childLanes=jm(n,O,i),a.memoizedState=_m,a=ki(null,d));else if(lr(a),sg(U)){if(O=U.nextSibling&&U.nextSibling.dataset,O)var ne=O.dgst;O=ne,d=Error(o(419)),d.stack="",d.digest=O,fi({value:d,source:null,stack:null}),a=km(n,a,i)}else if(vn||Qo(n,a,i,!1),O=(i&n.childLanes)!==0,vn||O){if(O=Vt,O!==null&&(d=bs(O,i),d!==0&&d!==Q.retryLane))throw Q.retryLane=d,Yr(n,d),sa(O,n,d),bm;ag(U)||Bu(),a=km(n,a,i)}else ag(U)?(a.flags|=192,a.child=n.child,a=null):(n=Q.treeContext,Yt=Ta(U.nextSibling),On=a,kt=!0,tr=null,Na=!1,n!==null&&p_(a,n),a=wm(a,d.children),a.flags|=4096);return a}return v?(ir(),U=d.fallback,v=a.mode,Q=n.child,ne=Q.sibling,d=js(Q,{mode:"hidden",children:d.children}),d.subtreeFlags=Q.subtreeFlags&65011712,ne!==null?U=js(ne,U):(U=Xr(U,v,i,null),U.flags|=2),U.return=a,d.return=a,d.sibling=U,a.child=d,ki(null,d),d=a.child,U=n.child.memoizedState,U===null?U=ym(i):(v=U.cachePool,v!==null?(Q=xn._currentValue,v=v.parent!==Q?{parent:Q,pool:Q}:v):v=v_(),U={baseLanes:U.baseLanes|i,cachePool:v}),d.memoizedState=U,d.childLanes=jm(n,O,i),a.memoizedState=_m,ki(n.child,d)):(lr(a),i=n.child,n=i.sibling,i=js(i,{mode:"visible",children:d.children}),i.return=a,i.sibling=null,n!==null&&(O=a.deletions,O===null?(a.deletions=[n],a.flags|=16):O.push(n)),a.child=i,a.memoizedState=null,i)}function wm(n,a){return a=Tu({mode:"visible",children:a},n.mode),a.return=n,n.child=a}function Tu(n,a){return n=da(22,n,null,a),n.lanes=0,n}function km(n,a,i){return to(a,n.child,null,i),n=wm(a,a.pendingProps.children),n.flags|=2,a.memoizedState=null,n}function My(n,a,i){n.lanes|=a;var d=n.alternate;d!==null&&(d.lanes|=a),Bp(n.return,a,i)}function Sm(n,a,i,d,v,y){var O=n.memoizedState;O===null?n.memoizedState={isBackwards:a,rendering:null,renderingStartTime:0,last:d,tail:i,tailMode:v,treeForkCount:y}:(O.isBackwards=a,O.rendering=null,O.renderingStartTime=0,O.last=d,O.tail=i,O.tailMode=v,O.treeForkCount=y)}function Oy(n,a,i){var d=a.pendingProps,v=d.revealOrder,y=d.tail;d=d.children;var O=mn.current,U=(O&2)!==0;if(U?(O=O&1|2,a.flags|=128):O&=1,W(mn,O),Dn(n,a,d,i),d=kt?di:0,!U&&n!==null&&(n.flags&128)!==0)e:for(n=a.child;n!==null;){if(n.tag===13)n.memoizedState!==null&&My(n,i,a);else if(n.tag===19)My(n,i,a);else if(n.child!==null){n.child.return=n,n=n.child;continue}if(n===a)break e;for(;n.sibling===null;){if(n.return===null||n.return===a)break e;n=n.return}n.sibling.return=n.return,n=n.sibling}switch(v){case"forwards":for(i=a.child,v=null;i!==null;)n=i.alternate,n!==null&&bu(n)===null&&(v=i),i=i.sibling;i=v,i===null?(v=a.child,a.child=null):(v=i.sibling,i.sibling=null),Sm(a,!1,v,i,y,d);break;case"backwards":case"unstable_legacy-backwards":for(i=null,v=a.child,a.child=null;v!==null;){if(n=v.alternate,n!==null&&bu(n)===null){a.child=v;break}n=v.sibling,v.sibling=i,i=v,v=n}Sm(a,!0,i,null,y,d);break;case"together":Sm(a,!1,null,null,void 0,d);break;default:a.memoizedState=null}return a.child}function Ns(n,a,i){if(n!==null&&(a.dependencies=n.dependencies),dr|=a.lanes,(i&a.childLanes)===0)if(n!==null){if(Qo(n,a,i,!1),(i&a.childLanes)===0)return null}else return null;if(n!==null&&a.child!==n.child)throw Error(o(153));if(a.child!==null){for(n=a.child,i=js(n,n.pendingProps),a.child=i,i.return=a;n.sibling!==null;)n=n.sibling,i=i.sibling=js(n,n.pendingProps),i.return=a;i.sibling=null}return a.child}function Cm(n,a){return(n.lanes&a)!==0?!0:(n=n.dependencies,!!(n!==null&&uu(n)))}function QN(n,a,i){switch(a.tag){case 3:oe(a,a.stateNode.containerInfo),ar(a,xn,n.memoizedState.cache),Kr();break;case 27:case 5:Re(a);break;case 4:oe(a,a.stateNode.containerInfo);break;case 10:ar(a,a.type,a.memoizedProps.value);break;case 31:if(a.memoizedState!==null)return a.flags|=128,Zp(a),null;break;case 13:var d=a.memoizedState;if(d!==null)return d.dehydrated!==null?(lr(a),a.flags|=128,null):(i&a.child.childLanes)!==0?Ay(n,a,i):(lr(a),n=Ns(n,a,i),n!==null?n.sibling:null);lr(a);break;case 19:var v=(n.flags&128)!==0;if(d=(i&a.childLanes)!==0,d||(Qo(n,a,i,!1),d=(i&a.childLanes)!==0),v){if(d)return Oy(n,a,i);a.flags|=128}if(v=a.memoizedState,v!==null&&(v.rendering=null,v.tail=null,v.lastEffect=null),W(mn,mn.current),d)break;return null;case 22:return a.lanes=0,Sy(n,a,i,a.pendingProps);case 24:ar(a,xn,n.memoizedState.cache)}return Ns(n,a,i)}function zy(n,a,i){if(n!==null)if(n.memoizedProps!==a.pendingProps)vn=!0;else{if(!Cm(n,i)&&(a.flags&128)===0)return vn=!1,QN(n,a,i);vn=(n.flags&131072)!==0}else vn=!1,kt&&(a.flags&1048576)!==0&&f_(a,di,a.index);switch(a.lanes=0,a.tag){case 16:e:{var d=a.pendingProps;if(n=Jr(a.elementType),a.type=n,typeof n=="function")Ap(n)?(d=ao(n,d),a.tag=1,a=Ry(null,a,n,d,i)):(a.tag=0,a=vm(null,a,n,d,i));else{if(n!=null){var v=n.$$typeof;if(v===R){a.tag=11,a=jy(null,a,n,d,i);break e}else if(v===M){a.tag=14,a=wy(null,a,n,d,i);break e}}throw a=H(n)||n,Error(o(306,a,""))}}return a;case 0:return vm(n,a,a.type,a.pendingProps,i);case 1:return d=a.type,v=ao(d,a.pendingProps),Ry(n,a,d,v,i);case 3:e:{if(oe(a,a.stateNode.containerInfo),n===null)throw Error(o(387));d=a.pendingProps;var y=a.memoizedState;v=y.element,Gp(n,a),vi(a,d,null,i);var O=a.memoizedState;if(d=O.cache,ar(a,xn,d),d!==y.cache&&Up(a,[xn],i,!0),bi(),d=O.element,y.isDehydrated)if(y={element:d,isDehydrated:!1,cache:O.cache},a.updateQueue.baseState=y,a.memoizedState=y,a.flags&256){a=Ty(n,a,d,i);break e}else if(d!==v){v=Sa(Error(o(424)),a),fi(v),a=Ty(n,a,d,i);break e}else{switch(n=a.stateNode.containerInfo,n.nodeType){case 9:n=n.body;break;default:n=n.nodeName==="HTML"?n.ownerDocument.body:n}for(Yt=Ta(n.firstChild),On=a,kt=!0,tr=null,Na=!0,i=S_(a,null,d,i),a.child=i;i;)i.flags=i.flags&-3|4096,i=i.sibling}else{if(Kr(),d===v){a=Ns(n,a,i);break e}Dn(n,a,d,i)}a=a.child}return a;case 26:return Ru(n,a),n===null?(i=F0(a.type,null,a.pendingProps,null))?a.memoizedState=i:kt||(i=a.type,n=a.pendingProps,d=Gu(ue.current).createElement(i),d[Ht]=a,d[Mn]=n,Ln(d,i,n),Sn(d),a.stateNode=d):a.memoizedState=F0(a.type,n.memoizedProps,a.pendingProps,n.memoizedState),null;case 27:return Re(a),n===null&&kt&&(d=a.stateNode=V0(a.type,a.pendingProps,ue.current),On=a,Na=!0,v=Yt,hr(a.type)?(rg=v,Yt=Ta(d.firstChild)):Yt=v),Dn(n,a,a.pendingProps.children,i),Ru(n,a),n===null&&(a.flags|=4194304),a.child;case 5:return n===null&&kt&&((v=d=Yt)&&(d=CR(d,a.type,a.pendingProps,Na),d!==null?(a.stateNode=d,On=a,Yt=Ta(d.firstChild),Na=!1,v=!0):v=!1),v||nr(a)),Re(a),v=a.type,y=a.pendingProps,O=n!==null?n.memoizedProps:null,d=y.children,eg(v,y)?d=null:O!==null&&eg(v,O)&&(a.flags|=32),a.memoizedState!==null&&(v=Jp(n,a,HN,null,null,i),Bi._currentValue=v),Ru(n,a),Dn(n,a,d,i),a.child;case 6:return n===null&&kt&&((n=i=Yt)&&(i=ER(i,a.pendingProps,Na),i!==null?(a.stateNode=i,On=a,Yt=null,n=!0):n=!1),n||nr(a)),null;case 13:return Ay(n,a,i);case 4:return oe(a,a.stateNode.containerInfo),d=a.pendingProps,n===null?a.child=to(a,null,d,i):Dn(n,a,d,i),a.child;case 11:return jy(n,a,a.type,a.pendingProps,i);case 7:return Dn(n,a,a.pendingProps,i),a.child;case 8:return Dn(n,a,a.pendingProps.children,i),a.child;case 12:return Dn(n,a,a.pendingProps.children,i),a.child;case 10:return d=a.pendingProps,ar(a,a.type,d.value),Dn(n,a,d.children,i),a.child;case 9:return v=a.type._context,d=a.pendingProps.children,Zr(a),v=zn(v),d=d(v),a.flags|=1,Dn(n,a,d,i),a.child;case 14:return wy(n,a,a.type,a.pendingProps,i);case 15:return ky(n,a,a.type,a.pendingProps,i);case 19:return Oy(n,a,i);case 31:return KN(n,a,i);case 22:return Sy(n,a,i,a.pendingProps);case 24:return Zr(a),d=zn(xn),n===null?(v=qp(),v===null&&(v=Vt,y=Hp(),v.pooledCache=y,y.refCount++,y!==null&&(v.pooledCacheLanes|=i),v=y),a.memoizedState={parent:d,cache:v},Fp(a),ar(a,xn,v)):((n.lanes&i)!==0&&(Gp(n,a),vi(a,null,null,i),bi()),v=n.memoizedState,y=a.memoizedState,v.parent!==d?(v={parent:d,cache:d},a.memoizedState=v,a.lanes===0&&(a.memoizedState=a.updateQueue.baseState=v),ar(a,xn,d)):(d=y.cache,ar(a,xn,d),d!==v.cache&&Up(a,[xn],i,!0))),Dn(n,a,a.pendingProps.children,i),a.child;case 29:throw a.pendingProps}throw Error(o(156,a.tag))}function Rs(n){n.flags|=4}function Em(n,a,i,d,v){if((a=(n.mode&32)!==0)&&(a=!1),a){if(n.flags|=16777216,(v&335544128)===v)if(n.stateNode.complete)n.flags|=8192;else if(l0())n.flags|=8192;else throw eo=mu,$p}else n.flags&=-16777217}function Dy(n,a){if(a.type!=="stylesheet"||(a.state.loading&4)!==0)n.flags&=-16777217;else if(n.flags|=16777216,!Q0(a))if(l0())n.flags|=8192;else throw eo=mu,$p}function Au(n,a){a!==null&&(n.flags|=4),n.flags&16384&&(a=n.tag!==22?ca():536870912,n.lanes|=a,il|=a)}function Si(n,a){if(!kt)switch(n.tailMode){case"hidden":a=n.tail;for(var i=null;a!==null;)a.alternate!==null&&(i=a),a=a.sibling;i===null?n.tail=null:i.sibling=null;break;case"collapsed":i=n.tail;for(var d=null;i!==null;)i.alternate!==null&&(d=i),i=i.sibling;d===null?a||n.tail===null?n.tail=null:n.tail.sibling=null:d.sibling=null}}function Xt(n){var a=n.alternate!==null&&n.alternate.child===n.child,i=0,d=0;if(a)for(var v=n.child;v!==null;)i|=v.lanes|v.childLanes,d|=v.subtreeFlags&65011712,d|=v.flags&65011712,v.return=n,v=v.sibling;else for(v=n.child;v!==null;)i|=v.lanes|v.childLanes,d|=v.subtreeFlags,d|=v.flags,v.return=n,v=v.sibling;return n.subtreeFlags|=d,n.childLanes=i,a}function ZN(n,a,i){var d=a.pendingProps;switch(Dp(a),a.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Xt(a),null;case 1:return Xt(a),null;case 3:return i=a.stateNode,d=null,n!==null&&(d=n.memoizedState.cache),a.memoizedState.cache!==d&&(a.flags|=2048),Ss(xn),fe(),i.pendingContext&&(i.context=i.pendingContext,i.pendingContext=null),(n===null||n.child===null)&&(Ko(a)?Rs(a):n===null||n.memoizedState.isDehydrated&&(a.flags&256)===0||(a.flags|=1024,Pp())),Xt(a),null;case 26:var v=a.type,y=a.memoizedState;return n===null?(Rs(a),y!==null?(Xt(a),Dy(a,y)):(Xt(a),Em(a,v,null,d,i))):y?y!==n.memoizedState?(Rs(a),Xt(a),Dy(a,y)):(Xt(a),a.flags&=-16777217):(n=n.memoizedProps,n!==d&&Rs(a),Xt(a),Em(a,v,n,d,i)),null;case 27:if(le(a),i=ue.current,v=a.type,n!==null&&a.stateNode!=null)n.memoizedProps!==d&&Rs(a);else{if(!d){if(a.stateNode===null)throw Error(o(166));return Xt(a),null}n=ee.current,Ko(a)?m_(a):(n=V0(v,d,i),a.stateNode=n,Rs(a))}return Xt(a),null;case 5:if(le(a),v=a.type,n!==null&&a.stateNode!=null)n.memoizedProps!==d&&Rs(a);else{if(!d){if(a.stateNode===null)throw Error(o(166));return Xt(a),null}if(y=ee.current,Ko(a))m_(a);else{var O=Gu(ue.current);switch(y){case 1:y=O.createElementNS("http://www.w3.org/2000/svg",v);break;case 2:y=O.createElementNS("http://www.w3.org/1998/Math/MathML",v);break;default:switch(v){case"svg":y=O.createElementNS("http://www.w3.org/2000/svg",v);break;case"math":y=O.createElementNS("http://www.w3.org/1998/Math/MathML",v);break;case"script":y=O.createElement("div"),y.innerHTML="<script><\/script>",y=y.removeChild(y.firstChild);break;case"select":y=typeof d.is=="string"?O.createElement("select",{is:d.is}):O.createElement("select"),d.multiple?y.multiple=!0:d.size&&(y.size=d.size);break;default:y=typeof d.is=="string"?O.createElement(v,{is:d.is}):O.createElement(v)}}y[Ht]=a,y[Mn]=d;e:for(O=a.child;O!==null;){if(O.tag===5||O.tag===6)y.appendChild(O.stateNode);else if(O.tag!==4&&O.tag!==27&&O.child!==null){O.child.return=O,O=O.child;continue}if(O===a)break e;for(;O.sibling===null;){if(O.return===null||O.return===a)break e;O=O.return}O.sibling.return=O.return,O=O.sibling}a.stateNode=y;e:switch(Ln(y,v,d),v){case"button":case"input":case"select":case"textarea":d=!!d.autoFocus;break e;case"img":d=!0;break e;default:d=!1}d&&Rs(a)}}return Xt(a),Em(a,a.type,n===null?null:n.memoizedProps,a.pendingProps,i),null;case 6:if(n&&a.stateNode!=null)n.memoizedProps!==d&&Rs(a);else{if(typeof d!="string"&&a.stateNode===null)throw Error(o(166));if(n=ue.current,Ko(a)){if(n=a.stateNode,i=a.memoizedProps,d=null,v=On,v!==null)switch(v.tag){case 27:case 5:d=v.memoizedProps}n[Ht]=a,n=!!(n.nodeValue===i||d!==null&&d.suppressHydrationWarning===!0||A0(n.nodeValue,i)),n||nr(a,!0)}else n=Gu(n).createTextNode(d),n[Ht]=a,a.stateNode=n}return Xt(a),null;case 31:if(i=a.memoizedState,n===null||n.memoizedState!==null){if(d=Ko(a),i!==null){if(n===null){if(!d)throw Error(o(318));if(n=a.memoizedState,n=n!==null?n.dehydrated:null,!n)throw Error(o(557));n[Ht]=a}else Kr(),(a.flags&128)===0&&(a.memoizedState=null),a.flags|=4;Xt(a),n=!1}else i=Pp(),n!==null&&n.memoizedState!==null&&(n.memoizedState.hydrationErrors=i),n=!0;if(!n)return a.flags&256?(pa(a),a):(pa(a),null);if((a.flags&128)!==0)throw Error(o(558))}return Xt(a),null;case 13:if(d=a.memoizedState,n===null||n.memoizedState!==null&&n.memoizedState.dehydrated!==null){if(v=Ko(a),d!==null&&d.dehydrated!==null){if(n===null){if(!v)throw Error(o(318));if(v=a.memoizedState,v=v!==null?v.dehydrated:null,!v)throw Error(o(317));v[Ht]=a}else Kr(),(a.flags&128)===0&&(a.memoizedState=null),a.flags|=4;Xt(a),v=!1}else v=Pp(),n!==null&&n.memoizedState!==null&&(n.memoizedState.hydrationErrors=v),v=!0;if(!v)return a.flags&256?(pa(a),a):(pa(a),null)}return pa(a),(a.flags&128)!==0?(a.lanes=i,a):(i=d!==null,n=n!==null&&n.memoizedState!==null,i&&(d=a.child,v=null,d.alternate!==null&&d.alternate.memoizedState!==null&&d.alternate.memoizedState.cachePool!==null&&(v=d.alternate.memoizedState.cachePool.pool),y=null,d.memoizedState!==null&&d.memoizedState.cachePool!==null&&(y=d.memoizedState.cachePool.pool),y!==v&&(d.flags|=2048)),i!==n&&i&&(a.child.flags|=8192),Au(a,a.updateQueue),Xt(a),null);case 4:return fe(),n===null&&Km(a.stateNode.containerInfo),Xt(a),null;case 10:return Ss(a.type),Xt(a),null;case 19:if(F(mn),d=a.memoizedState,d===null)return Xt(a),null;if(v=(a.flags&128)!==0,y=d.rendering,y===null)if(v)Si(d,!1);else{if(ln!==0||n!==null&&(n.flags&128)!==0)for(n=a.child;n!==null;){if(y=bu(n),y!==null){for(a.flags|=128,Si(d,!1),n=y.updateQueue,a.updateQueue=n,Au(a,n),a.subtreeFlags=0,n=i,i=a.child;i!==null;)c_(i,n),i=i.sibling;return W(mn,mn.current&1|2),kt&&ws(a,d.treeForkCount),a.child}n=n.sibling}d.tail!==null&&ae()>Lu&&(a.flags|=128,v=!0,Si(d,!1),a.lanes=4194304)}else{if(!v)if(n=bu(y),n!==null){if(a.flags|=128,v=!0,n=n.updateQueue,a.updateQueue=n,Au(a,n),Si(d,!0),d.tail===null&&d.tailMode==="hidden"&&!y.alternate&&!kt)return Xt(a),null}else 2*ae()-d.renderingStartTime>Lu&&i!==536870912&&(a.flags|=128,v=!0,Si(d,!1),a.lanes=4194304);d.isBackwards?(y.sibling=a.child,a.child=y):(n=d.last,n!==null?n.sibling=y:a.child=y,d.last=y)}return d.tail!==null?(n=d.tail,d.rendering=n,d.tail=n.sibling,d.renderingStartTime=ae(),n.sibling=null,i=mn.current,W(mn,v?i&1|2:i&1),kt&&ws(a,d.treeForkCount),n):(Xt(a),null);case 22:case 23:return pa(a),Qp(),d=a.memoizedState!==null,n!==null?n.memoizedState!==null!==d&&(a.flags|=8192):d&&(a.flags|=8192),d?(i&536870912)!==0&&(a.flags&128)===0&&(Xt(a),a.subtreeFlags&6&&(a.flags|=8192)):Xt(a),i=a.updateQueue,i!==null&&Au(a,i.retryQueue),i=null,n!==null&&n.memoizedState!==null&&n.memoizedState.cachePool!==null&&(i=n.memoizedState.cachePool.pool),d=null,a.memoizedState!==null&&a.memoizedState.cachePool!==null&&(d=a.memoizedState.cachePool.pool),d!==i&&(a.flags|=2048),n!==null&&F(Wr),null;case 24:return i=null,n!==null&&(i=n.memoizedState.cache),a.memoizedState.cache!==i&&(a.flags|=2048),Ss(xn),Xt(a),null;case 25:return null;case 30:return null}throw Error(o(156,a.tag))}function WN(n,a){switch(Dp(a),a.tag){case 1:return n=a.flags,n&65536?(a.flags=n&-65537|128,a):null;case 3:return Ss(xn),fe(),n=a.flags,(n&65536)!==0&&(n&128)===0?(a.flags=n&-65537|128,a):null;case 26:case 27:case 5:return le(a),null;case 31:if(a.memoizedState!==null){if(pa(a),a.alternate===null)throw Error(o(340));Kr()}return n=a.flags,n&65536?(a.flags=n&-65537|128,a):null;case 13:if(pa(a),n=a.memoizedState,n!==null&&n.dehydrated!==null){if(a.alternate===null)throw Error(o(340));Kr()}return n=a.flags,n&65536?(a.flags=n&-65537|128,a):null;case 19:return F(mn),null;case 4:return fe(),null;case 10:return Ss(a.type),null;case 22:case 23:return pa(a),Qp(),n!==null&&F(Wr),n=a.flags,n&65536?(a.flags=n&-65537|128,a):null;case 24:return Ss(xn),null;case 25:return null;default:return null}}function Ly(n,a){switch(Dp(a),a.tag){case 3:Ss(xn),fe();break;case 26:case 27:case 5:le(a);break;case 4:fe();break;case 31:a.memoizedState!==null&&pa(a);break;case 13:pa(a);break;case 19:F(mn);break;case 10:Ss(a.type);break;case 22:case 23:pa(a),Qp(),n!==null&&F(Wr);break;case 24:Ss(xn)}}function Ci(n,a){try{var i=a.updateQueue,d=i!==null?i.lastEffect:null;if(d!==null){var v=d.next;i=v;do{if((i.tag&n)===n){d=void 0;var y=i.create,O=i.inst;d=y(),O.destroy=d}i=i.next}while(i!==v)}}catch(U){Ot(a,a.return,U)}}function cr(n,a,i){try{var d=a.updateQueue,v=d!==null?d.lastEffect:null;if(v!==null){var y=v.next;d=y;do{if((d.tag&n)===n){var O=d.inst,U=O.destroy;if(U!==void 0){O.destroy=void 0,v=a;var Q=i,ne=U;try{ne()}catch(ge){Ot(v,Q,ge)}}}d=d.next}while(d!==y)}}catch(ge){Ot(a,a.return,ge)}}function Py(n){var a=n.updateQueue;if(a!==null){var i=n.stateNode;try{E_(a,i)}catch(d){Ot(n,n.return,d)}}}function Iy(n,a,i){i.props=ao(n.type,n.memoizedProps),i.state=n.memoizedState;try{i.componentWillUnmount()}catch(d){Ot(n,a,d)}}function Ei(n,a){try{var i=n.ref;if(i!==null){switch(n.tag){case 26:case 27:case 5:var d=n.stateNode;break;case 30:d=n.stateNode;break;default:d=n.stateNode}typeof i=="function"?n.refCleanup=i(d):i.current=d}}catch(v){Ot(n,a,v)}}function Qa(n,a){var i=n.ref,d=n.refCleanup;if(i!==null)if(typeof d=="function")try{d()}catch(v){Ot(n,a,v)}finally{n.refCleanup=null,n=n.alternate,n!=null&&(n.refCleanup=null)}else if(typeof i=="function")try{i(null)}catch(v){Ot(n,a,v)}else i.current=null}function By(n){var a=n.type,i=n.memoizedProps,d=n.stateNode;try{e:switch(a){case"button":case"input":case"select":case"textarea":i.autoFocus&&d.focus();break e;case"img":i.src?d.src=i.src:i.srcSet&&(d.srcset=i.srcSet)}}catch(v){Ot(n,n.return,v)}}function Nm(n,a,i){try{var d=n.stateNode;_R(d,n.type,i,a),d[Mn]=a}catch(v){Ot(n,n.return,v)}}function Uy(n){return n.tag===5||n.tag===3||n.tag===26||n.tag===27&&hr(n.type)||n.tag===4}function Rm(n){e:for(;;){for(;n.sibling===null;){if(n.return===null||Uy(n.return))return null;n=n.return}for(n.sibling.return=n.return,n=n.sibling;n.tag!==5&&n.tag!==6&&n.tag!==18;){if(n.tag===27&&hr(n.type)||n.flags&2||n.child===null||n.tag===4)continue e;n.child.return=n,n=n.child}if(!(n.flags&2))return n.stateNode}}function Tm(n,a,i){var d=n.tag;if(d===5||d===6)n=n.stateNode,a?(i.nodeType===9?i.body:i.nodeName==="HTML"?i.ownerDocument.body:i).insertBefore(n,a):(a=i.nodeType===9?i.body:i.nodeName==="HTML"?i.ownerDocument.body:i,a.appendChild(n),i=i._reactRootContainer,i!=null||a.onclick!==null||(a.onclick=_s));else if(d!==4&&(d===27&&hr(n.type)&&(i=n.stateNode,a=null),n=n.child,n!==null))for(Tm(n,a,i),n=n.sibling;n!==null;)Tm(n,a,i),n=n.sibling}function Mu(n,a,i){var d=n.tag;if(d===5||d===6)n=n.stateNode,a?i.insertBefore(n,a):i.appendChild(n);else if(d!==4&&(d===27&&hr(n.type)&&(i=n.stateNode),n=n.child,n!==null))for(Mu(n,a,i),n=n.sibling;n!==null;)Mu(n,a,i),n=n.sibling}function Hy(n){var a=n.stateNode,i=n.memoizedProps;try{for(var d=n.type,v=a.attributes;v.length;)a.removeAttributeNode(v[0]);Ln(a,d,i),a[Ht]=n,a[Mn]=i}catch(y){Ot(n,n.return,y)}}var Ts=!1,_n=!1,Am=!1,Vy=typeof WeakSet=="function"?WeakSet:Set,Cn=null;function JN(n,a){if(n=n.containerInfo,Wm=Ju,n=e_(n),kp(n)){if("selectionStart"in n)var i={start:n.selectionStart,end:n.selectionEnd};else e:{i=(i=n.ownerDocument)&&i.defaultView||window;var d=i.getSelection&&i.getSelection();if(d&&d.rangeCount!==0){i=d.anchorNode;var v=d.anchorOffset,y=d.focusNode;d=d.focusOffset;try{i.nodeType,y.nodeType}catch{i=null;break e}var O=0,U=-1,Q=-1,ne=0,ge=0,ye=n,re=null;t:for(;;){for(var ie;ye!==i||v!==0&&ye.nodeType!==3||(U=O+v),ye!==y||d!==0&&ye.nodeType!==3||(Q=O+d),ye.nodeType===3&&(O+=ye.nodeValue.length),(ie=ye.firstChild)!==null;)re=ye,ye=ie;for(;;){if(ye===n)break t;if(re===i&&++ne===v&&(U=O),re===y&&++ge===d&&(Q=O),(ie=ye.nextSibling)!==null)break;ye=re,re=ye.parentNode}ye=ie}i=U===-1||Q===-1?null:{start:U,end:Q}}else i=null}i=i||{start:0,end:0}}else i=null;for(Jm={focusedElem:n,selectionRange:i},Ju=!1,Cn=a;Cn!==null;)if(a=Cn,n=a.child,(a.subtreeFlags&1028)!==0&&n!==null)n.return=a,Cn=n;else for(;Cn!==null;){switch(a=Cn,y=a.alternate,n=a.flags,a.tag){case 0:if((n&4)!==0&&(n=a.updateQueue,n=n!==null?n.events:null,n!==null))for(i=0;i<n.length;i++)v=n[i],v.ref.impl=v.nextImpl;break;case 11:case 15:break;case 1:if((n&1024)!==0&&y!==null){n=void 0,i=a,v=y.memoizedProps,y=y.memoizedState,d=i.stateNode;try{var qe=ao(i.type,v);n=d.getSnapshotBeforeUpdate(qe,y),d.__reactInternalSnapshotBeforeUpdate=n}catch(at){Ot(i,i.return,at)}}break;case 3:if((n&1024)!==0){if(n=a.stateNode.containerInfo,i=n.nodeType,i===9)ng(n);else if(i===1)switch(n.nodeName){case"HEAD":case"HTML":case"BODY":ng(n);break;default:n.textContent=""}}break;case 5:case 26:case 27:case 6:case 4:case 17:break;default:if((n&1024)!==0)throw Error(o(163))}if(n=a.sibling,n!==null){n.return=a.return,Cn=n;break}Cn=a.return}}function qy(n,a,i){var d=i.flags;switch(i.tag){case 0:case 11:case 15:Ms(n,i),d&4&&Ci(5,i);break;case 1:if(Ms(n,i),d&4)if(n=i.stateNode,a===null)try{n.componentDidMount()}catch(O){Ot(i,i.return,O)}else{var v=ao(i.type,a.memoizedProps);a=a.memoizedState;try{n.componentDidUpdate(v,a,n.__reactInternalSnapshotBeforeUpdate)}catch(O){Ot(i,i.return,O)}}d&64&&Py(i),d&512&&Ei(i,i.return);break;case 3:if(Ms(n,i),d&64&&(n=i.updateQueue,n!==null)){if(a=null,i.child!==null)switch(i.child.tag){case 27:case 5:a=i.child.stateNode;break;case 1:a=i.child.stateNode}try{E_(n,a)}catch(O){Ot(i,i.return,O)}}break;case 27:a===null&&d&4&&Hy(i);case 26:case 5:Ms(n,i),a===null&&d&4&&By(i),d&512&&Ei(i,i.return);break;case 12:Ms(n,i);break;case 31:Ms(n,i),d&4&&Gy(n,i);break;case 13:Ms(n,i),d&4&&Yy(n,i),d&64&&(n=i.memoizedState,n!==null&&(n=n.dehydrated,n!==null&&(i=iR.bind(null,i),NR(n,i))));break;case 22:if(d=i.memoizedState!==null||Ts,!d){a=a!==null&&a.memoizedState!==null||_n,v=Ts;var y=_n;Ts=d,(_n=a)&&!y?Os(n,i,(i.subtreeFlags&8772)!==0):Ms(n,i),Ts=v,_n=y}break;case 30:break;default:Ms(n,i)}}function $y(n){var a=n.alternate;a!==null&&(n.alternate=null,$y(a)),n.child=null,n.deletions=null,n.sibling=null,n.tag===5&&(a=n.stateNode,a!==null&&lp(a)),n.stateNode=null,n.return=null,n.dependencies=null,n.memoizedProps=null,n.memoizedState=null,n.pendingProps=null,n.stateNode=null,n.updateQueue=null}var Jt=null,ea=!1;function As(n,a,i){for(i=i.child;i!==null;)Fy(n,a,i),i=i.sibling}function Fy(n,a,i){if(He&&typeof He.onCommitFiberUnmount=="function")try{He.onCommitFiberUnmount(Ae,i)}catch{}switch(i.tag){case 26:_n||Qa(i,a),As(n,a,i),i.memoizedState?i.memoizedState.count--:i.stateNode&&(i=i.stateNode,i.parentNode.removeChild(i));break;case 27:_n||Qa(i,a);var d=Jt,v=ea;hr(i.type)&&(Jt=i.stateNode,ea=!1),As(n,a,i),Li(i.stateNode),Jt=d,ea=v;break;case 5:_n||Qa(i,a);case 6:if(d=Jt,v=ea,Jt=null,As(n,a,i),Jt=d,ea=v,Jt!==null)if(ea)try{(Jt.nodeType===9?Jt.body:Jt.nodeName==="HTML"?Jt.ownerDocument.body:Jt).removeChild(i.stateNode)}catch(y){Ot(i,a,y)}else try{Jt.removeChild(i.stateNode)}catch(y){Ot(i,a,y)}break;case 18:Jt!==null&&(ea?(n=Jt,P0(n.nodeType===9?n.body:n.nodeName==="HTML"?n.ownerDocument.body:n,i.stateNode),hl(n)):P0(Jt,i.stateNode));break;case 4:d=Jt,v=ea,Jt=i.stateNode.containerInfo,ea=!0,As(n,a,i),Jt=d,ea=v;break;case 0:case 11:case 14:case 15:cr(2,i,a),_n||cr(4,i,a),As(n,a,i);break;case 1:_n||(Qa(i,a),d=i.stateNode,typeof d.componentWillUnmount=="function"&&Iy(i,a,d)),As(n,a,i);break;case 21:As(n,a,i);break;case 22:_n=(d=_n)||i.memoizedState!==null,As(n,a,i),_n=d;break;default:As(n,a,i)}}function Gy(n,a){if(a.memoizedState===null&&(n=a.alternate,n!==null&&(n=n.memoizedState,n!==null))){n=n.dehydrated;try{hl(n)}catch(i){Ot(a,a.return,i)}}}function Yy(n,a){if(a.memoizedState===null&&(n=a.alternate,n!==null&&(n=n.memoizedState,n!==null&&(n=n.dehydrated,n!==null))))try{hl(n)}catch(i){Ot(a,a.return,i)}}function eR(n){switch(n.tag){case 31:case 13:case 19:var a=n.stateNode;return a===null&&(a=n.stateNode=new Vy),a;case 22:return n=n.stateNode,a=n._retryCache,a===null&&(a=n._retryCache=new Vy),a;default:throw Error(o(435,n.tag))}}function Ou(n,a){var i=eR(n);a.forEach(function(d){if(!i.has(d)){i.add(d);var v=cR.bind(null,n,d);d.then(v,v)}})}function ta(n,a){var i=a.deletions;if(i!==null)for(var d=0;d<i.length;d++){var v=i[d],y=n,O=a,U=O;e:for(;U!==null;){switch(U.tag){case 27:if(hr(U.type)){Jt=U.stateNode,ea=!1;break e}break;case 5:Jt=U.stateNode,ea=!1;break e;case 3:case 4:Jt=U.stateNode.containerInfo,ea=!0;break e}U=U.return}if(Jt===null)throw Error(o(160));Fy(y,O,v),Jt=null,ea=!1,y=v.alternate,y!==null&&(y.return=null),v.return=null}if(a.subtreeFlags&13886)for(a=a.child;a!==null;)Xy(a,n),a=a.sibling}var Ia=null;function Xy(n,a){var i=n.alternate,d=n.flags;switch(n.tag){case 0:case 11:case 14:case 15:ta(a,n),na(n),d&4&&(cr(3,n,n.return),Ci(3,n),cr(5,n,n.return));break;case 1:ta(a,n),na(n),d&512&&(_n||i===null||Qa(i,i.return)),d&64&&Ts&&(n=n.updateQueue,n!==null&&(d=n.callbacks,d!==null&&(i=n.shared.hiddenCallbacks,n.shared.hiddenCallbacks=i===null?d:i.concat(d))));break;case 26:var v=Ia;if(ta(a,n),na(n),d&512&&(_n||i===null||Qa(i,i.return)),d&4){var y=i!==null?i.memoizedState:null;if(d=n.memoizedState,i===null)if(d===null)if(n.stateNode===null){e:{d=n.type,i=n.memoizedProps,v=v.ownerDocument||v;t:switch(d){case"title":y=v.getElementsByTagName("title")[0],(!y||y[ei]||y[Ht]||y.namespaceURI==="http://www.w3.org/2000/svg"||y.hasAttribute("itemprop"))&&(y=v.createElement(d),v.head.insertBefore(y,v.querySelector("head > title"))),Ln(y,d,i),y[Ht]=n,Sn(y),d=y;break e;case"link":var O=X0("link","href",v).get(d+(i.href||""));if(O){for(var U=0;U<O.length;U++)if(y=O[U],y.getAttribute("href")===(i.href==null||i.href===""?null:i.href)&&y.getAttribute("rel")===(i.rel==null?null:i.rel)&&y.getAttribute("title")===(i.title==null?null:i.title)&&y.getAttribute("crossorigin")===(i.crossOrigin==null?null:i.crossOrigin)){O.splice(U,1);break t}}y=v.createElement(d),Ln(y,d,i),v.head.appendChild(y);break;case"meta":if(O=X0("meta","content",v).get(d+(i.content||""))){for(U=0;U<O.length;U++)if(y=O[U],y.getAttribute("content")===(i.content==null?null:""+i.content)&&y.getAttribute("name")===(i.name==null?null:i.name)&&y.getAttribute("property")===(i.property==null?null:i.property)&&y.getAttribute("http-equiv")===(i.httpEquiv==null?null:i.httpEquiv)&&y.getAttribute("charset")===(i.charSet==null?null:i.charSet)){O.splice(U,1);break t}}y=v.createElement(d),Ln(y,d,i),v.head.appendChild(y);break;default:throw Error(o(468,d))}y[Ht]=n,Sn(y),d=y}n.stateNode=d}else K0(v,n.type,n.stateNode);else n.stateNode=Y0(v,d,n.memoizedProps);else y!==d?(y===null?i.stateNode!==null&&(i=i.stateNode,i.parentNode.removeChild(i)):y.count--,d===null?K0(v,n.type,n.stateNode):Y0(v,d,n.memoizedProps)):d===null&&n.stateNode!==null&&Nm(n,n.memoizedProps,i.memoizedProps)}break;case 27:ta(a,n),na(n),d&512&&(_n||i===null||Qa(i,i.return)),i!==null&&d&4&&Nm(n,n.memoizedProps,i.memoizedProps);break;case 5:if(ta(a,n),na(n),d&512&&(_n||i===null||Qa(i,i.return)),n.flags&32){v=n.stateNode;try{Bo(v,"")}catch(qe){Ot(n,n.return,qe)}}d&4&&n.stateNode!=null&&(v=n.memoizedProps,Nm(n,v,i!==null?i.memoizedProps:v)),d&1024&&(Am=!0);break;case 6:if(ta(a,n),na(n),d&4){if(n.stateNode===null)throw Error(o(162));d=n.memoizedProps,i=n.stateNode;try{i.nodeValue=d}catch(qe){Ot(n,n.return,qe)}}break;case 3:if(Ku=null,v=Ia,Ia=Yu(a.containerInfo),ta(a,n),Ia=v,na(n),d&4&&i!==null&&i.memoizedState.isDehydrated)try{hl(a.containerInfo)}catch(qe){Ot(n,n.return,qe)}Am&&(Am=!1,Ky(n));break;case 4:d=Ia,Ia=Yu(n.stateNode.containerInfo),ta(a,n),na(n),Ia=d;break;case 12:ta(a,n),na(n);break;case 31:ta(a,n),na(n),d&4&&(d=n.updateQueue,d!==null&&(n.updateQueue=null,Ou(n,d)));break;case 13:ta(a,n),na(n),n.child.flags&8192&&n.memoizedState!==null!=(i!==null&&i.memoizedState!==null)&&(Du=ae()),d&4&&(d=n.updateQueue,d!==null&&(n.updateQueue=null,Ou(n,d)));break;case 22:v=n.memoizedState!==null;var Q=i!==null&&i.memoizedState!==null,ne=Ts,ge=_n;if(Ts=ne||v,_n=ge||Q,ta(a,n),_n=ge,Ts=ne,na(n),d&8192)e:for(a=n.stateNode,a._visibility=v?a._visibility&-2:a._visibility|1,v&&(i===null||Q||Ts||_n||so(n)),i=null,a=n;;){if(a.tag===5||a.tag===26){if(i===null){Q=i=a;try{if(y=Q.stateNode,v)O=y.style,typeof O.setProperty=="function"?O.setProperty("display","none","important"):O.display="none";else{U=Q.stateNode;var ye=Q.memoizedProps.style,re=ye!=null&&ye.hasOwnProperty("display")?ye.display:null;U.style.display=re==null||typeof re=="boolean"?"":(""+re).trim()}}catch(qe){Ot(Q,Q.return,qe)}}}else if(a.tag===6){if(i===null){Q=a;try{Q.stateNode.nodeValue=v?"":Q.memoizedProps}catch(qe){Ot(Q,Q.return,qe)}}}else if(a.tag===18){if(i===null){Q=a;try{var ie=Q.stateNode;v?I0(ie,!0):I0(Q.stateNode,!1)}catch(qe){Ot(Q,Q.return,qe)}}}else if((a.tag!==22&&a.tag!==23||a.memoizedState===null||a===n)&&a.child!==null){a.child.return=a,a=a.child;continue}if(a===n)break e;for(;a.sibling===null;){if(a.return===null||a.return===n)break e;i===a&&(i=null),a=a.return}i===a&&(i=null),a.sibling.return=a.return,a=a.sibling}d&4&&(d=n.updateQueue,d!==null&&(i=d.retryQueue,i!==null&&(d.retryQueue=null,Ou(n,i))));break;case 19:ta(a,n),na(n),d&4&&(d=n.updateQueue,d!==null&&(n.updateQueue=null,Ou(n,d)));break;case 30:break;case 21:break;default:ta(a,n),na(n)}}function na(n){var a=n.flags;if(a&2){try{for(var i,d=n.return;d!==null;){if(Uy(d)){i=d;break}d=d.return}if(i==null)throw Error(o(160));switch(i.tag){case 27:var v=i.stateNode,y=Rm(n);Mu(n,y,v);break;case 5:var O=i.stateNode;i.flags&32&&(Bo(O,""),i.flags&=-33);var U=Rm(n);Mu(n,U,O);break;case 3:case 4:var Q=i.stateNode.containerInfo,ne=Rm(n);Tm(n,ne,Q);break;default:throw Error(o(161))}}catch(ge){Ot(n,n.return,ge)}n.flags&=-3}a&4096&&(n.flags&=-4097)}function Ky(n){if(n.subtreeFlags&1024)for(n=n.child;n!==null;){var a=n;Ky(a),a.tag===5&&a.flags&1024&&a.stateNode.reset(),n=n.sibling}}function Ms(n,a){if(a.subtreeFlags&8772)for(a=a.child;a!==null;)qy(n,a.alternate,a),a=a.sibling}function so(n){for(n=n.child;n!==null;){var a=n;switch(a.tag){case 0:case 11:case 14:case 15:cr(4,a,a.return),so(a);break;case 1:Qa(a,a.return);var i=a.stateNode;typeof i.componentWillUnmount=="function"&&Iy(a,a.return,i),so(a);break;case 27:Li(a.stateNode);case 26:case 5:Qa(a,a.return),so(a);break;case 22:a.memoizedState===null&&so(a);break;case 30:so(a);break;default:so(a)}n=n.sibling}}function Os(n,a,i){for(i=i&&(a.subtreeFlags&8772)!==0,a=a.child;a!==null;){var d=a.alternate,v=n,y=a,O=y.flags;switch(y.tag){case 0:case 11:case 15:Os(v,y,i),Ci(4,y);break;case 1:if(Os(v,y,i),d=y,v=d.stateNode,typeof v.componentDidMount=="function")try{v.componentDidMount()}catch(ne){Ot(d,d.return,ne)}if(d=y,v=d.updateQueue,v!==null){var U=d.stateNode;try{var Q=v.shared.hiddenCallbacks;if(Q!==null)for(v.shared.hiddenCallbacks=null,v=0;v<Q.length;v++)C_(Q[v],U)}catch(ne){Ot(d,d.return,ne)}}i&&O&64&&Py(y),Ei(y,y.return);break;case 27:Hy(y);case 26:case 5:Os(v,y,i),i&&d===null&&O&4&&By(y),Ei(y,y.return);break;case 12:Os(v,y,i);break;case 31:Os(v,y,i),i&&O&4&&Gy(v,y);break;case 13:Os(v,y,i),i&&O&4&&Yy(v,y);break;case 22:y.memoizedState===null&&Os(v,y,i),Ei(y,y.return);break;case 30:break;default:Os(v,y,i)}a=a.sibling}}function Mm(n,a){var i=null;n!==null&&n.memoizedState!==null&&n.memoizedState.cachePool!==null&&(i=n.memoizedState.cachePool.pool),n=null,a.memoizedState!==null&&a.memoizedState.cachePool!==null&&(n=a.memoizedState.cachePool.pool),n!==i&&(n!=null&&n.refCount++,i!=null&&pi(i))}function Om(n,a){n=null,a.alternate!==null&&(n=a.alternate.memoizedState.cache),a=a.memoizedState.cache,a!==n&&(a.refCount++,n!=null&&pi(n))}function Ba(n,a,i,d){if(a.subtreeFlags&10256)for(a=a.child;a!==null;)Qy(n,a,i,d),a=a.sibling}function Qy(n,a,i,d){var v=a.flags;switch(a.tag){case 0:case 11:case 15:Ba(n,a,i,d),v&2048&&Ci(9,a);break;case 1:Ba(n,a,i,d);break;case 3:Ba(n,a,i,d),v&2048&&(n=null,a.alternate!==null&&(n=a.alternate.memoizedState.cache),a=a.memoizedState.cache,a!==n&&(a.refCount++,n!=null&&pi(n)));break;case 12:if(v&2048){Ba(n,a,i,d),n=a.stateNode;try{var y=a.memoizedProps,O=y.id,U=y.onPostCommit;typeof U=="function"&&U(O,a.alternate===null?"mount":"update",n.passiveEffectDuration,-0)}catch(Q){Ot(a,a.return,Q)}}else Ba(n,a,i,d);break;case 31:Ba(n,a,i,d);break;case 13:Ba(n,a,i,d);break;case 23:break;case 22:y=a.stateNode,O=a.alternate,a.memoizedState!==null?y._visibility&2?Ba(n,a,i,d):Ni(n,a):y._visibility&2?Ba(n,a,i,d):(y._visibility|=2,rl(n,a,i,d,(a.subtreeFlags&10256)!==0||!1)),v&2048&&Mm(O,a);break;case 24:Ba(n,a,i,d),v&2048&&Om(a.alternate,a);break;default:Ba(n,a,i,d)}}function rl(n,a,i,d,v){for(v=v&&((a.subtreeFlags&10256)!==0||!1),a=a.child;a!==null;){var y=n,O=a,U=i,Q=d,ne=O.flags;switch(O.tag){case 0:case 11:case 15:rl(y,O,U,Q,v),Ci(8,O);break;case 23:break;case 22:var ge=O.stateNode;O.memoizedState!==null?ge._visibility&2?rl(y,O,U,Q,v):Ni(y,O):(ge._visibility|=2,rl(y,O,U,Q,v)),v&&ne&2048&&Mm(O.alternate,O);break;case 24:rl(y,O,U,Q,v),v&&ne&2048&&Om(O.alternate,O);break;default:rl(y,O,U,Q,v)}a=a.sibling}}function Ni(n,a){if(a.subtreeFlags&10256)for(a=a.child;a!==null;){var i=n,d=a,v=d.flags;switch(d.tag){case 22:Ni(i,d),v&2048&&Mm(d.alternate,d);break;case 24:Ni(i,d),v&2048&&Om(d.alternate,d);break;default:Ni(i,d)}a=a.sibling}}var Ri=8192;function ol(n,a,i){if(n.subtreeFlags&Ri)for(n=n.child;n!==null;)Zy(n,a,i),n=n.sibling}function Zy(n,a,i){switch(n.tag){case 26:ol(n,a,i),n.flags&Ri&&n.memoizedState!==null&&UR(i,Ia,n.memoizedState,n.memoizedProps);break;case 5:ol(n,a,i);break;case 3:case 4:var d=Ia;Ia=Yu(n.stateNode.containerInfo),ol(n,a,i),Ia=d;break;case 22:n.memoizedState===null&&(d=n.alternate,d!==null&&d.memoizedState!==null?(d=Ri,Ri=16777216,ol(n,a,i),Ri=d):ol(n,a,i));break;default:ol(n,a,i)}}function Wy(n){var a=n.alternate;if(a!==null&&(n=a.child,n!==null)){a.child=null;do a=n.sibling,n.sibling=null,n=a;while(n!==null)}}function Ti(n){var a=n.deletions;if((n.flags&16)!==0){if(a!==null)for(var i=0;i<a.length;i++){var d=a[i];Cn=d,e0(d,n)}Wy(n)}if(n.subtreeFlags&10256)for(n=n.child;n!==null;)Jy(n),n=n.sibling}function Jy(n){switch(n.tag){case 0:case 11:case 15:Ti(n),n.flags&2048&&cr(9,n,n.return);break;case 3:Ti(n);break;case 12:Ti(n);break;case 22:var a=n.stateNode;n.memoizedState!==null&&a._visibility&2&&(n.return===null||n.return.tag!==13)?(a._visibility&=-3,zu(n)):Ti(n);break;default:Ti(n)}}function zu(n){var a=n.deletions;if((n.flags&16)!==0){if(a!==null)for(var i=0;i<a.length;i++){var d=a[i];Cn=d,e0(d,n)}Wy(n)}for(n=n.child;n!==null;){switch(a=n,a.tag){case 0:case 11:case 15:cr(8,a,a.return),zu(a);break;case 22:i=a.stateNode,i._visibility&2&&(i._visibility&=-3,zu(a));break;default:zu(a)}n=n.sibling}}function e0(n,a){for(;Cn!==null;){var i=Cn;switch(i.tag){case 0:case 11:case 15:cr(8,i,a);break;case 23:case 22:if(i.memoizedState!==null&&i.memoizedState.cachePool!==null){var d=i.memoizedState.cachePool.pool;d!=null&&d.refCount++}break;case 24:pi(i.memoizedState.cache)}if(d=i.child,d!==null)d.return=i,Cn=d;else e:for(i=n;Cn!==null;){d=Cn;var v=d.sibling,y=d.return;if($y(d),d===i){Cn=null;break e}if(v!==null){v.return=y,Cn=v;break e}Cn=y}}}var tR={getCacheForType:function(n){var a=zn(xn),i=a.data.get(n);return i===void 0&&(i=n(),a.data.set(n,i)),i},cacheSignal:function(){return zn(xn).controller.signal}},nR=typeof WeakMap=="function"?WeakMap:Map,At=0,Vt=null,bt=null,yt=0,Mt=0,ma=null,ur=!1,ll=!1,zm=!1,zs=0,ln=0,dr=0,ro=0,Dm=0,ga=0,il=0,Ai=null,aa=null,Lm=!1,Du=0,t0=0,Lu=1/0,Pu=null,fr=null,jn=0,pr=null,cl=null,Ds=0,Pm=0,Im=null,n0=null,Mi=0,Bm=null;function ha(){return(At&2)!==0&&yt!==0?yt&-yt:q.T!==null?Fm():pn()}function a0(){if(ga===0)if((yt&536870912)===0||kt){var n=an;an<<=1,(an&3932160)===0&&(an=262144),ga=n}else ga=536870912;return n=fa.current,n!==null&&(n.flags|=32),ga}function sa(n,a,i){(n===Vt&&(Mt===2||Mt===9)||n.cancelPendingCommit!==null)&&(ul(n,0),mr(n,yt,ga,!1)),fn(n,i),((At&2)===0||n!==Vt)&&(n===Vt&&((At&2)===0&&(ro|=i),ln===4&&mr(n,yt,ga,!1)),Za(n))}function s0(n,a,i){if((At&6)!==0)throw Error(o(327));var d=!i&&(a&127)===0&&(a&n.expiredLanes)===0||dn(n,a),v=d?rR(n,a):Hm(n,a,!0),y=d;do{if(v===0){ll&&!d&&mr(n,a,0,!1);break}else{if(i=n.current.alternate,y&&!aR(i)){v=Hm(n,a,!1),y=!1;continue}if(v===2){if(y=a,n.errorRecoveryDisabledLanes&y)var O=0;else O=n.pendingLanes&-536870913,O=O!==0?O:O&536870912?536870912:0;if(O!==0){a=O;e:{var U=n;v=Ai;var Q=U.current.memoizedState.isDehydrated;if(Q&&(ul(U,O).flags|=256),O=Hm(U,O,!1),O!==2){if(zm&&!Q){U.errorRecoveryDisabledLanes|=y,ro|=y,v=4;break e}y=aa,aa=v,y!==null&&(aa===null?aa=y:aa.push.apply(aa,y))}v=O}if(y=!1,v!==2)continue}}if(v===1){ul(n,0),mr(n,a,0,!0);break}e:{switch(d=n,y=v,y){case 0:case 1:throw Error(o(345));case 4:if((a&4194048)!==a)break;case 6:mr(d,a,ga,!ur);break e;case 2:aa=null;break;case 3:case 5:break;default:throw Error(o(329))}if((a&62914560)===a&&(v=Du+300-ae(),10<v)){if(mr(d,a,ga,!ur),Gt(d,0,!0)!==0)break e;Ds=a,d.timeoutHandle=D0(r0.bind(null,d,i,aa,Pu,Lm,a,ga,ro,il,ur,y,"Throttled",-0,0),v);break e}r0(d,i,aa,Pu,Lm,a,ga,ro,il,ur,y,null,-0,0)}}break}while(!0);Za(n)}function r0(n,a,i,d,v,y,O,U,Q,ne,ge,ye,re,ie){if(n.timeoutHandle=-1,ye=a.subtreeFlags,ye&8192||(ye&16785408)===16785408){ye={stylesheets:null,count:0,imgCount:0,imgBytes:0,suspenseyImages:[],waitingForImages:!0,waitingForViewTransition:!1,unsuspend:_s},Zy(a,y,ye);var qe=(y&62914560)===y?Du-ae():(y&4194048)===y?t0-ae():0;if(qe=HR(ye,qe),qe!==null){Ds=y,n.cancelPendingCommit=qe(p0.bind(null,n,a,y,i,d,v,O,U,Q,ge,ye,null,re,ie)),mr(n,y,O,!ne);return}}p0(n,a,y,i,d,v,O,U,Q)}function aR(n){for(var a=n;;){var i=a.tag;if((i===0||i===11||i===15)&&a.flags&16384&&(i=a.updateQueue,i!==null&&(i=i.stores,i!==null)))for(var d=0;d<i.length;d++){var v=i[d],y=v.getSnapshot;v=v.value;try{if(!ua(y(),v))return!1}catch{return!1}}if(i=a.child,a.subtreeFlags&16384&&i!==null)i.return=a,a=i;else{if(a===n)break;for(;a.sibling===null;){if(a.return===null||a.return===n)return!0;a=a.return}a.sibling.return=a.return,a=a.sibling}}return!0}function mr(n,a,i,d){a&=~Dm,a&=~ro,n.suspendedLanes|=a,n.pingedLanes&=~a,d&&(n.warmLanes|=a),d=n.expirationTimes;for(var v=a;0<v;){var y=31-rt(v),O=1<<y;d[y]=-1,v&=~O}i!==0&&xs(n,i,a)}function Iu(){return(At&6)===0?(Oi(0),!1):!0}function Um(){if(bt!==null){if(Mt===0)var n=bt.return;else n=bt,ks=Qr=null,nm(n),el=null,gi=0,n=bt;for(;n!==null;)Ly(n.alternate,n),n=n.return;bt=null}}function ul(n,a){var i=n.timeoutHandle;i!==-1&&(n.timeoutHandle=-1,wR(i)),i=n.cancelPendingCommit,i!==null&&(n.cancelPendingCommit=null,i()),Ds=0,Um(),Vt=n,bt=i=js(n.current,null),yt=a,Mt=0,ma=null,ur=!1,ll=dn(n,a),zm=!1,il=ga=Dm=ro=dr=ln=0,aa=Ai=null,Lm=!1,(a&8)!==0&&(a|=a&32);var d=n.entangledLanes;if(d!==0)for(n=n.entanglements,d&=a;0<d;){var v=31-rt(d),y=1<<v;a|=n[v],d&=~y}return zs=a,ru(),i}function o0(n,a){ut=null,q.H=wi,a===Jo||a===pu?(a=j_(),Mt=3):a===$p?(a=j_(),Mt=4):Mt=a===bm?8:a!==null&&typeof a=="object"&&typeof a.then=="function"?6:1,ma=a,bt===null&&(ln=1,Eu(n,Sa(a,n.current)))}function l0(){var n=fa.current;return n===null?!0:(yt&4194048)===yt?Ra===null:(yt&62914560)===yt||(yt&536870912)!==0?n===Ra:!1}function i0(){var n=q.H;return q.H=wi,n===null?wi:n}function c0(){var n=q.A;return q.A=tR,n}function Bu(){ln=4,ur||(yt&4194048)!==yt&&fa.current!==null||(ll=!0),(dr&134217727)===0&&(ro&134217727)===0||Vt===null||mr(Vt,yt,ga,!1)}function Hm(n,a,i){var d=At;At|=2;var v=i0(),y=c0();(Vt!==n||yt!==a)&&(Pu=null,ul(n,a)),a=!1;var O=ln;e:do try{if(Mt!==0&&bt!==null){var U=bt,Q=ma;switch(Mt){case 8:Um(),O=6;break e;case 3:case 2:case 9:case 6:fa.current===null&&(a=!0);var ne=Mt;if(Mt=0,ma=null,dl(n,U,Q,ne),i&&ll){O=0;break e}break;default:ne=Mt,Mt=0,ma=null,dl(n,U,Q,ne)}}sR(),O=ln;break}catch(ge){o0(n,ge)}while(!0);return a&&n.shellSuspendCounter++,ks=Qr=null,At=d,q.H=v,q.A=y,bt===null&&(Vt=null,yt=0,ru()),O}function sR(){for(;bt!==null;)u0(bt)}function rR(n,a){var i=At;At|=2;var d=i0(),v=c0();Vt!==n||yt!==a?(Pu=null,Lu=ae()+500,ul(n,a)):ll=dn(n,a);e:do try{if(Mt!==0&&bt!==null){a=bt;var y=ma;t:switch(Mt){case 1:Mt=0,ma=null,dl(n,a,y,1);break;case 2:case 9:if(__(y)){Mt=0,ma=null,d0(a);break}a=function(){Mt!==2&&Mt!==9||Vt!==n||(Mt=7),Za(n)},y.then(a,a);break e;case 3:Mt=7;break e;case 4:Mt=5;break e;case 7:__(y)?(Mt=0,ma=null,d0(a)):(Mt=0,ma=null,dl(n,a,y,7));break;case 5:var O=null;switch(bt.tag){case 26:O=bt.memoizedState;case 5:case 27:var U=bt;if(O?Q0(O):U.stateNode.complete){Mt=0,ma=null;var Q=U.sibling;if(Q!==null)bt=Q;else{var ne=U.return;ne!==null?(bt=ne,Uu(ne)):bt=null}break t}}Mt=0,ma=null,dl(n,a,y,5);break;case 6:Mt=0,ma=null,dl(n,a,y,6);break;case 8:Um(),ln=6;break e;default:throw Error(o(462))}}oR();break}catch(ge){o0(n,ge)}while(!0);return ks=Qr=null,q.H=d,q.A=v,At=i,bt!==null?0:(Vt=null,yt=0,ru(),ln)}function oR(){for(;bt!==null&&!Pe();)u0(bt)}function u0(n){var a=zy(n.alternate,n,zs);n.memoizedProps=n.pendingProps,a===null?Uu(n):bt=a}function d0(n){var a=n,i=a.alternate;switch(a.tag){case 15:case 0:a=Ny(i,a,a.pendingProps,a.type,void 0,yt);break;case 11:a=Ny(i,a,a.pendingProps,a.type.render,a.ref,yt);break;case 5:nm(a);default:Ly(i,a),a=bt=c_(a,zs),a=zy(i,a,zs)}n.memoizedProps=n.pendingProps,a===null?Uu(n):bt=a}function dl(n,a,i,d){ks=Qr=null,nm(a),el=null,gi=0;var v=a.return;try{if(XN(n,v,a,i,yt)){ln=1,Eu(n,Sa(i,n.current)),bt=null;return}}catch(y){if(v!==null)throw bt=v,y;ln=1,Eu(n,Sa(i,n.current)),bt=null;return}a.flags&32768?(kt||d===1?n=!0:ll||(yt&536870912)!==0?n=!1:(ur=n=!0,(d===2||d===9||d===3||d===6)&&(d=fa.current,d!==null&&d.tag===13&&(d.flags|=16384))),f0(a,n)):Uu(a)}function Uu(n){var a=n;do{if((a.flags&32768)!==0){f0(a,ur);return}n=a.return;var i=ZN(a.alternate,a,zs);if(i!==null){bt=i;return}if(a=a.sibling,a!==null){bt=a;return}bt=a=n}while(a!==null);ln===0&&(ln=5)}function f0(n,a){do{var i=WN(n.alternate,n);if(i!==null){i.flags&=32767,bt=i;return}if(i=n.return,i!==null&&(i.flags|=32768,i.subtreeFlags=0,i.deletions=null),!a&&(n=n.sibling,n!==null)){bt=n;return}bt=n=i}while(n!==null);ln=6,bt=null}function p0(n,a,i,d,v,y,O,U,Q){n.cancelPendingCommit=null;do Hu();while(jn!==0);if((At&6)!==0)throw Error(o(327));if(a!==null){if(a===n.current)throw Error(o(177));if(y=a.lanes|a.childLanes,y|=Rp,ya(n,i,y,O,U,Q),n===Vt&&(bt=Vt=null,yt=0),cl=a,pr=n,Ds=i,Pm=y,Im=v,n0=d,(a.subtreeFlags&10256)!==0||(a.flags&10256)!==0?(n.callbackNode=null,n.callbackPriority=0,uR(Me,function(){return b0(),null})):(n.callbackNode=null,n.callbackPriority=0),d=(a.flags&13878)!==0,(a.subtreeFlags&13878)!==0||d){d=q.T,q.T=null,v=Y.p,Y.p=2,O=At,At|=4;try{JN(n,a,i)}finally{At=O,Y.p=v,q.T=d}}jn=1,m0(),g0(),h0()}}function m0(){if(jn===1){jn=0;var n=pr,a=cl,i=(a.flags&13878)!==0;if((a.subtreeFlags&13878)!==0||i){i=q.T,q.T=null;var d=Y.p;Y.p=2;var v=At;At|=4;try{Xy(a,n);var y=Jm,O=e_(n.containerInfo),U=y.focusedElem,Q=y.selectionRange;if(O!==U&&U&&U.ownerDocument&&Jv(U.ownerDocument.documentElement,U)){if(Q!==null&&kp(U)){var ne=Q.start,ge=Q.end;if(ge===void 0&&(ge=ne),"selectionStart"in U)U.selectionStart=ne,U.selectionEnd=Math.min(ge,U.value.length);else{var ye=U.ownerDocument||document,re=ye&&ye.defaultView||window;if(re.getSelection){var ie=re.getSelection(),qe=U.textContent.length,at=Math.min(Q.start,qe),Pt=Q.end===void 0?at:Math.min(Q.end,qe);!ie.extend&&at>Pt&&(O=Pt,Pt=at,at=O);var J=Wv(U,at),Z=Wv(U,Pt);if(J&&Z&&(ie.rangeCount!==1||ie.anchorNode!==J.node||ie.anchorOffset!==J.offset||ie.focusNode!==Z.node||ie.focusOffset!==Z.offset)){var te=ye.createRange();te.setStart(J.node,J.offset),ie.removeAllRanges(),at>Pt?(ie.addRange(te),ie.extend(Z.node,Z.offset)):(te.setEnd(Z.node,Z.offset),ie.addRange(te))}}}}for(ye=[],ie=U;ie=ie.parentNode;)ie.nodeType===1&&ye.push({element:ie,left:ie.scrollLeft,top:ie.scrollTop});for(typeof U.focus=="function"&&U.focus(),U=0;U<ye.length;U++){var xe=ye[U];xe.element.scrollLeft=xe.left,xe.element.scrollTop=xe.top}}Ju=!!Wm,Jm=Wm=null}finally{At=v,Y.p=d,q.T=i}}n.current=a,jn=2}}function g0(){if(jn===2){jn=0;var n=pr,a=cl,i=(a.flags&8772)!==0;if((a.subtreeFlags&8772)!==0||i){i=q.T,q.T=null;var d=Y.p;Y.p=2;var v=At;At|=4;try{qy(n,a.alternate,a)}finally{At=v,Y.p=d,q.T=i}}jn=3}}function h0(){if(jn===4||jn===3){jn=0,Ie();var n=pr,a=cl,i=Ds,d=n0;(a.subtreeFlags&10256)!==0||(a.flags&10256)!==0?jn=5:(jn=0,cl=pr=null,x0(n,n.pendingLanes));var v=n.pendingLanes;if(v===0&&(fr=null),zt(i),a=a.stateNode,He&&typeof He.onCommitFiberRoot=="function")try{He.onCommitFiberRoot(Ae,a,void 0,(a.current.flags&128)===128)}catch{}if(d!==null){a=q.T,v=Y.p,Y.p=2,q.T=null;try{for(var y=n.onRecoverableError,O=0;O<d.length;O++){var U=d[O];y(U.value,{componentStack:U.stack})}}finally{q.T=a,Y.p=v}}(Ds&3)!==0&&Hu(),Za(n),v=n.pendingLanes,(i&261930)!==0&&(v&42)!==0?n===Bm?Mi++:(Mi=0,Bm=n):Mi=0,Oi(0)}}function x0(n,a){(n.pooledCacheLanes&=a)===0&&(a=n.pooledCache,a!=null&&(n.pooledCache=null,pi(a)))}function Hu(){return m0(),g0(),h0(),b0()}function b0(){if(jn!==5)return!1;var n=pr,a=Pm;Pm=0;var i=zt(Ds),d=q.T,v=Y.p;try{Y.p=32>i?32:i,q.T=null,i=Im,Im=null;var y=pr,O=Ds;if(jn=0,cl=pr=null,Ds=0,(At&6)!==0)throw Error(o(331));var U=At;if(At|=4,Jy(y.current),Qy(y,y.current,O,i),At=U,Oi(0,!1),He&&typeof He.onPostCommitFiberRoot=="function")try{He.onPostCommitFiberRoot(Ae,y)}catch{}return!0}finally{Y.p=v,q.T=d,x0(n,a)}}function v0(n,a,i){a=Sa(i,a),a=xm(n.stateNode,a,2),n=or(n,a,2),n!==null&&(fn(n,2),Za(n))}function Ot(n,a,i){if(n.tag===3)v0(n,n,i);else for(;a!==null;){if(a.tag===3){v0(a,n,i);break}else if(a.tag===1){var d=a.stateNode;if(typeof a.type.getDerivedStateFromError=="function"||typeof d.componentDidCatch=="function"&&(fr===null||!fr.has(d))){n=Sa(i,n),i=_y(2),d=or(a,i,2),d!==null&&(yy(i,d,a,n),fn(d,2),Za(d));break}}a=a.return}}function Vm(n,a,i){var d=n.pingCache;if(d===null){d=n.pingCache=new nR;var v=new Set;d.set(a,v)}else v=d.get(a),v===void 0&&(v=new Set,d.set(a,v));v.has(i)||(zm=!0,v.add(i),n=lR.bind(null,n,a,i),a.then(n,n))}function lR(n,a,i){var d=n.pingCache;d!==null&&d.delete(a),n.pingedLanes|=n.suspendedLanes&i,n.warmLanes&=~i,Vt===n&&(yt&i)===i&&(ln===4||ln===3&&(yt&62914560)===yt&&300>ae()-Du?(At&2)===0&&ul(n,0):Dm|=i,il===yt&&(il=0)),Za(n)}function _0(n,a){a===0&&(a=ca()),n=Yr(n,a),n!==null&&(fn(n,a),Za(n))}function iR(n){var a=n.memoizedState,i=0;a!==null&&(i=a.retryLane),_0(n,i)}function cR(n,a){var i=0;switch(n.tag){case 31:case 13:var d=n.stateNode,v=n.memoizedState;v!==null&&(i=v.retryLane);break;case 19:d=n.stateNode;break;case 22:d=n.stateNode._retryCache;break;default:throw Error(o(314))}d!==null&&d.delete(a),_0(n,i)}function uR(n,a){return Ce(n,a)}var Vu=null,fl=null,qm=!1,qu=!1,$m=!1,gr=0;function Za(n){n!==fl&&n.next===null&&(fl===null?Vu=fl=n:fl=fl.next=n),qu=!0,qm||(qm=!0,fR())}function Oi(n,a){if(!$m&&qu){$m=!0;do for(var i=!1,d=Vu;d!==null;){if(n!==0){var v=d.pendingLanes;if(v===0)var y=0;else{var O=d.suspendedLanes,U=d.pingedLanes;y=(1<<31-rt(42|n)+1)-1,y&=v&~(O&~U),y=y&201326741?y&201326741|1:y?y|2:0}y!==0&&(i=!0,k0(d,y))}else y=yt,y=Gt(d,d===Vt?y:0,d.cancelPendingCommit!==null||d.timeoutHandle!==-1),(y&3)===0||dn(d,y)||(i=!0,k0(d,y));d=d.next}while(i);$m=!1}}function dR(){y0()}function y0(){qu=qm=!1;var n=0;gr!==0&&jR()&&(n=gr);for(var a=ae(),i=null,d=Vu;d!==null;){var v=d.next,y=j0(d,a);y===0?(d.next=null,i===null?Vu=v:i.next=v,v===null&&(fl=i)):(i=d,(n!==0||(y&3)!==0)&&(qu=!0)),d=v}jn!==0&&jn!==5||Oi(n),gr!==0&&(gr=0)}function j0(n,a){for(var i=n.suspendedLanes,d=n.pingedLanes,v=n.expirationTimes,y=n.pendingLanes&-62914561;0<y;){var O=31-rt(y),U=1<<O,Q=v[O];Q===-1?((U&i)===0||(U&d)!==0)&&(v[O]=Wn(U,a)):Q<=a&&(n.expiredLanes|=U),y&=~U}if(a=Vt,i=yt,i=Gt(n,n===a?i:0,n.cancelPendingCommit!==null||n.timeoutHandle!==-1),d=n.callbackNode,i===0||n===a&&(Mt===2||Mt===9)||n.cancelPendingCommit!==null)return d!==null&&d!==null&&Le(d),n.callbackNode=null,n.callbackPriority=0;if((i&3)===0||dn(n,i)){if(a=i&-i,a===n.callbackPriority)return a;switch(d!==null&&Le(d),zt(i)){case 2:case 8:i=Ne;break;case 32:i=Me;break;case 268435456:i=st;break;default:i=Me}return d=w0.bind(null,n),i=Ce(i,d),n.callbackPriority=a,n.callbackNode=i,a}return d!==null&&d!==null&&Le(d),n.callbackPriority=2,n.callbackNode=null,2}function w0(n,a){if(jn!==0&&jn!==5)return n.callbackNode=null,n.callbackPriority=0,null;var i=n.callbackNode;if(Hu()&&n.callbackNode!==i)return null;var d=yt;return d=Gt(n,n===Vt?d:0,n.cancelPendingCommit!==null||n.timeoutHandle!==-1),d===0?null:(s0(n,d,a),j0(n,ae()),n.callbackNode!=null&&n.callbackNode===i?w0.bind(null,n):null)}function k0(n,a){if(Hu())return null;s0(n,a,!0)}function fR(){kR(function(){(At&6)!==0?Ce($e,dR):y0()})}function Fm(){if(gr===0){var n=Zo;n===0&&(n=Nt,Nt<<=1,(Nt&261888)===0&&(Nt=256)),gr=n}return gr}function S0(n){return n==null||typeof n=="symbol"||typeof n=="boolean"?null:typeof n=="function"?n:Zc(""+n)}function C0(n,a){var i=a.ownerDocument.createElement("input");return i.name=a.name,i.value=a.value,n.id&&i.setAttribute("form",n.id),a.parentNode.insertBefore(i,a),n=new FormData(n),i.parentNode.removeChild(i),n}function pR(n,a,i,d,v){if(a==="submit"&&i&&i.stateNode===v){var y=S0((v[Mn]||null).action),O=d.submitter;O&&(a=(a=O[Mn]||null)?S0(a.formAction):O.getAttribute("formAction"),a!==null&&(y=a,O=null));var U=new tu("action","action",null,d,v);n.push({event:U,listeners:[{instance:null,listener:function(){if(d.defaultPrevented){if(gr!==0){var Q=O?C0(v,O):new FormData(v);dm(i,{pending:!0,data:Q,method:v.method,action:y},null,Q)}}else typeof y=="function"&&(U.preventDefault(),Q=O?C0(v,O):new FormData(v),dm(i,{pending:!0,data:Q,method:v.method,action:y},y,Q))},currentTarget:v}]})}}for(var Gm=0;Gm<Np.length;Gm++){var Ym=Np[Gm],mR=Ym.toLowerCase(),gR=Ym[0].toUpperCase()+Ym.slice(1);Pa(mR,"on"+gR)}Pa(a_,"onAnimationEnd"),Pa(s_,"onAnimationIteration"),Pa(r_,"onAnimationStart"),Pa("dblclick","onDoubleClick"),Pa("focusin","onFocus"),Pa("focusout","onBlur"),Pa(AN,"onTransitionRun"),Pa(MN,"onTransitionStart"),Pa(ON,"onTransitionCancel"),Pa(o_,"onTransitionEnd"),Po("onMouseEnter",["mouseout","mouseover"]),Po("onMouseLeave",["mouseout","mouseover"]),Po("onPointerEnter",["pointerout","pointerover"]),Po("onPointerLeave",["pointerout","pointerover"]),qr("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),qr("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),qr("onBeforeInput",["compositionend","keypress","textInput","paste"]),qr("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),qr("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),qr("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var zi="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),hR=new Set("beforetoggle cancel close invalid load scroll scrollend toggle".split(" ").concat(zi));function E0(n,a){a=(a&4)!==0;for(var i=0;i<n.length;i++){var d=n[i],v=d.event;d=d.listeners;e:{var y=void 0;if(a)for(var O=d.length-1;0<=O;O--){var U=d[O],Q=U.instance,ne=U.currentTarget;if(U=U.listener,Q!==y&&v.isPropagationStopped())break e;y=U,v.currentTarget=ne;try{y(v)}catch(ge){su(ge)}v.currentTarget=null,y=Q}else for(O=0;O<d.length;O++){if(U=d[O],Q=U.instance,ne=U.currentTarget,U=U.listener,Q!==y&&v.isPropagationStopped())break e;y=U,v.currentTarget=ne;try{y(v)}catch(ge){su(ge)}v.currentTarget=null,y=Q}}}}function vt(n,a){var i=a[Jl];i===void 0&&(i=a[Jl]=new Set);var d=n+"__bubble";i.has(d)||(N0(a,n,2,!1),i.add(d))}function Xm(n,a,i){var d=0;a&&(d|=4),N0(i,n,d,a)}var $u="_reactListening"+Math.random().toString(36).slice(2);function Km(n){if(!n[$u]){n[$u]=!0,yv.forEach(function(i){i!=="selectionchange"&&(hR.has(i)||Xm(i,!1,n),Xm(i,!0,n))});var a=n.nodeType===9?n:n.ownerDocument;a===null||a[$u]||(a[$u]=!0,Xm("selectionchange",!1,a))}}function N0(n,a,i,d){switch(a1(a)){case 2:var v=$R;break;case 8:v=FR;break;default:v=ug}i=v.bind(null,a,i,n),v=void 0,!gp||a!=="touchstart"&&a!=="touchmove"&&a!=="wheel"||(v=!0),d?v!==void 0?n.addEventListener(a,i,{capture:!0,passive:v}):n.addEventListener(a,i,!0):v!==void 0?n.addEventListener(a,i,{passive:v}):n.addEventListener(a,i,!1)}function Qm(n,a,i,d,v){var y=d;if((a&1)===0&&(a&2)===0&&d!==null)e:for(;;){if(d===null)return;var O=d.tag;if(O===3||O===4){var U=d.stateNode.containerInfo;if(U===v)break;if(O===4)for(O=d.return;O!==null;){var Q=O.tag;if((Q===3||Q===4)&&O.stateNode.containerInfo===v)return;O=O.return}for(;U!==null;){if(O=zo(U),O===null)return;if(Q=O.tag,Q===5||Q===6||Q===26||Q===27){d=y=O;continue e}U=U.parentNode}}d=d.return}Ov(function(){var ne=y,ge=pp(i),ye=[];e:{var re=l_.get(n);if(re!==void 0){var ie=tu,qe=n;switch(n){case"keypress":if(Jc(i)===0)break e;case"keydown":case"keyup":ie=cN;break;case"focusin":qe="focus",ie=vp;break;case"focusout":qe="blur",ie=vp;break;case"beforeblur":case"afterblur":ie=vp;break;case"click":if(i.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":ie=Lv;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":ie=ZE;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":ie=fN;break;case a_:case s_:case r_:ie=eN;break;case o_:ie=mN;break;case"scroll":case"scrollend":ie=KE;break;case"wheel":ie=hN;break;case"copy":case"cut":case"paste":ie=nN;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":ie=Iv;break;case"toggle":case"beforetoggle":ie=bN}var at=(a&4)!==0,Pt=!at&&(n==="scroll"||n==="scrollend"),J=at?re!==null?re+"Capture":null:re;at=[];for(var Z=ne,te;Z!==null;){var xe=Z;if(te=xe.stateNode,xe=xe.tag,xe!==5&&xe!==26&&xe!==27||te===null||J===null||(xe=ni(Z,J),xe!=null&&at.push(Di(Z,xe,te))),Pt)break;Z=Z.return}0<at.length&&(re=new ie(re,qe,null,i,ge),ye.push({event:re,listeners:at}))}}if((a&7)===0){e:{if(re=n==="mouseover"||n==="pointerover",ie=n==="mouseout"||n==="pointerout",re&&i!==fp&&(qe=i.relatedTarget||i.fromElement)&&(zo(qe)||qe[Ya]))break e;if((ie||re)&&(re=ge.window===ge?ge:(re=ge.ownerDocument)?re.defaultView||re.parentWindow:window,ie?(qe=i.relatedTarget||i.toElement,ie=ne,qe=qe?zo(qe):null,qe!==null&&(Pt=c(qe),at=qe.tag,qe!==Pt||at!==5&&at!==27&&at!==6)&&(qe=null)):(ie=null,qe=ne),ie!==qe)){if(at=Lv,xe="onMouseLeave",J="onMouseEnter",Z="mouse",(n==="pointerout"||n==="pointerover")&&(at=Iv,xe="onPointerLeave",J="onPointerEnter",Z="pointer"),Pt=ie==null?re:ti(ie),te=qe==null?re:ti(qe),re=new at(xe,Z+"leave",ie,i,ge),re.target=Pt,re.relatedTarget=te,xe=null,zo(ge)===ne&&(at=new at(J,Z+"enter",qe,i,ge),at.target=te,at.relatedTarget=Pt,xe=at),Pt=xe,ie&&qe)t:{for(at=xR,J=ie,Z=qe,te=0,xe=J;xe;xe=at(xe))te++;xe=0;for(var We=Z;We;We=at(We))xe++;for(;0<te-xe;)J=at(J),te--;for(;0<xe-te;)Z=at(Z),xe--;for(;te--;){if(J===Z||Z!==null&&J===Z.alternate){at=J;break t}J=at(J),Z=at(Z)}at=null}else at=null;ie!==null&&R0(ye,re,ie,at,!1),qe!==null&&Pt!==null&&R0(ye,Pt,qe,at,!0)}}e:{if(re=ne?ti(ne):window,ie=re.nodeName&&re.nodeName.toLowerCase(),ie==="select"||ie==="input"&&re.type==="file")var Rt=Gv;else if($v(re))if(Yv)Rt=NN;else{Rt=CN;var Ge=SN}else ie=re.nodeName,!ie||ie.toLowerCase()!=="input"||re.type!=="checkbox"&&re.type!=="radio"?ne&&dp(ne.elementType)&&(Rt=Gv):Rt=EN;if(Rt&&(Rt=Rt(n,ne))){Fv(ye,Rt,i,ge);break e}Ge&&Ge(n,re,ne),n==="focusout"&&ne&&re.type==="number"&&ne.memoizedProps.value!=null&&up(re,"number",re.value)}switch(Ge=ne?ti(ne):window,n){case"focusin":($v(Ge)||Ge.contentEditable==="true")&&(qo=Ge,Sp=ne,ui=null);break;case"focusout":ui=Sp=qo=null;break;case"mousedown":Cp=!0;break;case"contextmenu":case"mouseup":case"dragend":Cp=!1,t_(ye,i,ge);break;case"selectionchange":if(TN)break;case"keydown":case"keyup":t_(ye,i,ge)}var dt;if(yp)e:{switch(n){case"compositionstart":var jt="onCompositionStart";break e;case"compositionend":jt="onCompositionEnd";break e;case"compositionupdate":jt="onCompositionUpdate";break e}jt=void 0}else Vo?Vv(n,i)&&(jt="onCompositionEnd"):n==="keydown"&&i.keyCode===229&&(jt="onCompositionStart");jt&&(Bv&&i.locale!=="ko"&&(Vo||jt!=="onCompositionStart"?jt==="onCompositionEnd"&&Vo&&(dt=zv()):(Js=ge,hp="value"in Js?Js.value:Js.textContent,Vo=!0)),Ge=Fu(ne,jt),0<Ge.length&&(jt=new Pv(jt,n,null,i,ge),ye.push({event:jt,listeners:Ge}),dt?jt.data=dt:(dt=qv(i),dt!==null&&(jt.data=dt)))),(dt=_N?yN(n,i):jN(n,i))&&(jt=Fu(ne,"onBeforeInput"),0<jt.length&&(Ge=new Pv("onBeforeInput","beforeinput",null,i,ge),ye.push({event:Ge,listeners:jt}),Ge.data=dt)),pR(ye,n,ne,i,ge)}E0(ye,a)})}function Di(n,a,i){return{instance:n,listener:a,currentTarget:i}}function Fu(n,a){for(var i=a+"Capture",d=[];n!==null;){var v=n,y=v.stateNode;if(v=v.tag,v!==5&&v!==26&&v!==27||y===null||(v=ni(n,i),v!=null&&d.unshift(Di(n,v,y)),v=ni(n,a),v!=null&&d.push(Di(n,v,y))),n.tag===3)return d;n=n.return}return[]}function xR(n){if(n===null)return null;do n=n.return;while(n&&n.tag!==5&&n.tag!==27);return n||null}function R0(n,a,i,d,v){for(var y=a._reactName,O=[];i!==null&&i!==d;){var U=i,Q=U.alternate,ne=U.stateNode;if(U=U.tag,Q!==null&&Q===d)break;U!==5&&U!==26&&U!==27||ne===null||(Q=ne,v?(ne=ni(i,y),ne!=null&&O.unshift(Di(i,ne,Q))):v||(ne=ni(i,y),ne!=null&&O.push(Di(i,ne,Q)))),i=i.return}O.length!==0&&n.push({event:a,listeners:O})}var bR=/\r\n?/g,vR=/\u0000|\uFFFD/g;function T0(n){return(typeof n=="string"?n:""+n).replace(bR,`
|
|
49
|
+
`).replace(vR,"")}function A0(n,a){return a=T0(a),T0(n)===a}function Lt(n,a,i,d,v,y){switch(i){case"children":typeof d=="string"?a==="body"||a==="textarea"&&d===""||Bo(n,d):(typeof d=="number"||typeof d=="bigint")&&a!=="body"&&Bo(n,""+d);break;case"className":Kc(n,"class",d);break;case"tabIndex":Kc(n,"tabindex",d);break;case"dir":case"role":case"viewBox":case"width":case"height":Kc(n,i,d);break;case"style":Av(n,d,y);break;case"data":if(a!=="object"){Kc(n,"data",d);break}case"src":case"href":if(d===""&&(a!=="a"||i!=="href")){n.removeAttribute(i);break}if(d==null||typeof d=="function"||typeof d=="symbol"||typeof d=="boolean"){n.removeAttribute(i);break}d=Zc(""+d),n.setAttribute(i,d);break;case"action":case"formAction":if(typeof d=="function"){n.setAttribute(i,"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')");break}else typeof y=="function"&&(i==="formAction"?(a!=="input"&&Lt(n,a,"name",v.name,v,null),Lt(n,a,"formEncType",v.formEncType,v,null),Lt(n,a,"formMethod",v.formMethod,v,null),Lt(n,a,"formTarget",v.formTarget,v,null)):(Lt(n,a,"encType",v.encType,v,null),Lt(n,a,"method",v.method,v,null),Lt(n,a,"target",v.target,v,null)));if(d==null||typeof d=="symbol"||typeof d=="boolean"){n.removeAttribute(i);break}d=Zc(""+d),n.setAttribute(i,d);break;case"onClick":d!=null&&(n.onclick=_s);break;case"onScroll":d!=null&&vt("scroll",n);break;case"onScrollEnd":d!=null&&vt("scrollend",n);break;case"dangerouslySetInnerHTML":if(d!=null){if(typeof d!="object"||!("__html"in d))throw Error(o(61));if(i=d.__html,i!=null){if(v.children!=null)throw Error(o(60));n.innerHTML=i}}break;case"multiple":n.multiple=d&&typeof d!="function"&&typeof d!="symbol";break;case"muted":n.muted=d&&typeof d!="function"&&typeof d!="symbol";break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"defaultValue":case"defaultChecked":case"innerHTML":case"ref":break;case"autoFocus":break;case"xlinkHref":if(d==null||typeof d=="function"||typeof d=="boolean"||typeof d=="symbol"){n.removeAttribute("xlink:href");break}i=Zc(""+d),n.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",i);break;case"contentEditable":case"spellCheck":case"draggable":case"value":case"autoReverse":case"externalResourcesRequired":case"focusable":case"preserveAlpha":d!=null&&typeof d!="function"&&typeof d!="symbol"?n.setAttribute(i,""+d):n.removeAttribute(i);break;case"inert":case"allowFullScreen":case"async":case"autoPlay":case"controls":case"default":case"defer":case"disabled":case"disablePictureInPicture":case"disableRemotePlayback":case"formNoValidate":case"hidden":case"loop":case"noModule":case"noValidate":case"open":case"playsInline":case"readOnly":case"required":case"reversed":case"scoped":case"seamless":case"itemScope":d&&typeof d!="function"&&typeof d!="symbol"?n.setAttribute(i,""):n.removeAttribute(i);break;case"capture":case"download":d===!0?n.setAttribute(i,""):d!==!1&&d!=null&&typeof d!="function"&&typeof d!="symbol"?n.setAttribute(i,d):n.removeAttribute(i);break;case"cols":case"rows":case"size":case"span":d!=null&&typeof d!="function"&&typeof d!="symbol"&&!isNaN(d)&&1<=d?n.setAttribute(i,d):n.removeAttribute(i);break;case"rowSpan":case"start":d==null||typeof d=="function"||typeof d=="symbol"||isNaN(d)?n.removeAttribute(i):n.setAttribute(i,d);break;case"popover":vt("beforetoggle",n),vt("toggle",n),Xc(n,"popover",d);break;case"xlinkActuate":vs(n,"http://www.w3.org/1999/xlink","xlink:actuate",d);break;case"xlinkArcrole":vs(n,"http://www.w3.org/1999/xlink","xlink:arcrole",d);break;case"xlinkRole":vs(n,"http://www.w3.org/1999/xlink","xlink:role",d);break;case"xlinkShow":vs(n,"http://www.w3.org/1999/xlink","xlink:show",d);break;case"xlinkTitle":vs(n,"http://www.w3.org/1999/xlink","xlink:title",d);break;case"xlinkType":vs(n,"http://www.w3.org/1999/xlink","xlink:type",d);break;case"xmlBase":vs(n,"http://www.w3.org/XML/1998/namespace","xml:base",d);break;case"xmlLang":vs(n,"http://www.w3.org/XML/1998/namespace","xml:lang",d);break;case"xmlSpace":vs(n,"http://www.w3.org/XML/1998/namespace","xml:space",d);break;case"is":Xc(n,"is",d);break;case"innerText":case"textContent":break;default:(!(2<i.length)||i[0]!=="o"&&i[0]!=="O"||i[1]!=="n"&&i[1]!=="N")&&(i=YE.get(i)||i,Xc(n,i,d))}}function Zm(n,a,i,d,v,y){switch(i){case"style":Av(n,d,y);break;case"dangerouslySetInnerHTML":if(d!=null){if(typeof d!="object"||!("__html"in d))throw Error(o(61));if(i=d.__html,i!=null){if(v.children!=null)throw Error(o(60));n.innerHTML=i}}break;case"children":typeof d=="string"?Bo(n,d):(typeof d=="number"||typeof d=="bigint")&&Bo(n,""+d);break;case"onScroll":d!=null&&vt("scroll",n);break;case"onScrollEnd":d!=null&&vt("scrollend",n);break;case"onClick":d!=null&&(n.onclick=_s);break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"innerHTML":case"ref":break;case"innerText":case"textContent":break;default:if(!jv.hasOwnProperty(i))e:{if(i[0]==="o"&&i[1]==="n"&&(v=i.endsWith("Capture"),a=i.slice(2,v?i.length-7:void 0),y=n[Mn]||null,y=y!=null?y[i]:null,typeof y=="function"&&n.removeEventListener(a,y,v),typeof d=="function")){typeof y!="function"&&y!==null&&(i in n?n[i]=null:n.hasAttribute(i)&&n.removeAttribute(i)),n.addEventListener(a,d,v);break e}i in n?n[i]=d:d===!0?n.setAttribute(i,""):Xc(n,i,d)}}}function Ln(n,a,i){switch(a){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"img":vt("error",n),vt("load",n);var d=!1,v=!1,y;for(y in i)if(i.hasOwnProperty(y)){var O=i[y];if(O!=null)switch(y){case"src":d=!0;break;case"srcSet":v=!0;break;case"children":case"dangerouslySetInnerHTML":throw Error(o(137,a));default:Lt(n,a,y,O,i,null)}}v&&Lt(n,a,"srcSet",i.srcSet,i,null),d&&Lt(n,a,"src",i.src,i,null);return;case"input":vt("invalid",n);var U=y=O=v=null,Q=null,ne=null;for(d in i)if(i.hasOwnProperty(d)){var ge=i[d];if(ge!=null)switch(d){case"name":v=ge;break;case"type":O=ge;break;case"checked":Q=ge;break;case"defaultChecked":ne=ge;break;case"value":y=ge;break;case"defaultValue":U=ge;break;case"children":case"dangerouslySetInnerHTML":if(ge!=null)throw Error(o(137,a));break;default:Lt(n,a,d,ge,i,null)}}Ev(n,y,U,Q,ne,O,v,!1);return;case"select":vt("invalid",n),d=O=y=null;for(v in i)if(i.hasOwnProperty(v)&&(U=i[v],U!=null))switch(v){case"value":y=U;break;case"defaultValue":O=U;break;case"multiple":d=U;default:Lt(n,a,v,U,i,null)}a=y,i=O,n.multiple=!!d,a!=null?Io(n,!!d,a,!1):i!=null&&Io(n,!!d,i,!0);return;case"textarea":vt("invalid",n),y=v=d=null;for(O in i)if(i.hasOwnProperty(O)&&(U=i[O],U!=null))switch(O){case"value":d=U;break;case"defaultValue":v=U;break;case"children":y=U;break;case"dangerouslySetInnerHTML":if(U!=null)throw Error(o(91));break;default:Lt(n,a,O,U,i,null)}Rv(n,d,v,y);return;case"option":for(Q in i)if(i.hasOwnProperty(Q)&&(d=i[Q],d!=null))switch(Q){case"selected":n.selected=d&&typeof d!="function"&&typeof d!="symbol";break;default:Lt(n,a,Q,d,i,null)}return;case"dialog":vt("beforetoggle",n),vt("toggle",n),vt("cancel",n),vt("close",n);break;case"iframe":case"object":vt("load",n);break;case"video":case"audio":for(d=0;d<zi.length;d++)vt(zi[d],n);break;case"image":vt("error",n),vt("load",n);break;case"details":vt("toggle",n);break;case"embed":case"source":case"link":vt("error",n),vt("load",n);case"area":case"base":case"br":case"col":case"hr":case"keygen":case"meta":case"param":case"track":case"wbr":case"menuitem":for(ne in i)if(i.hasOwnProperty(ne)&&(d=i[ne],d!=null))switch(ne){case"children":case"dangerouslySetInnerHTML":throw Error(o(137,a));default:Lt(n,a,ne,d,i,null)}return;default:if(dp(a)){for(ge in i)i.hasOwnProperty(ge)&&(d=i[ge],d!==void 0&&Zm(n,a,ge,d,i,void 0));return}}for(U in i)i.hasOwnProperty(U)&&(d=i[U],d!=null&&Lt(n,a,U,d,i,null))}function _R(n,a,i,d){switch(a){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"input":var v=null,y=null,O=null,U=null,Q=null,ne=null,ge=null;for(ie in i){var ye=i[ie];if(i.hasOwnProperty(ie)&&ye!=null)switch(ie){case"checked":break;case"value":break;case"defaultValue":Q=ye;default:d.hasOwnProperty(ie)||Lt(n,a,ie,null,d,ye)}}for(var re in d){var ie=d[re];if(ye=i[re],d.hasOwnProperty(re)&&(ie!=null||ye!=null))switch(re){case"type":y=ie;break;case"name":v=ie;break;case"checked":ne=ie;break;case"defaultChecked":ge=ie;break;case"value":O=ie;break;case"defaultValue":U=ie;break;case"children":case"dangerouslySetInnerHTML":if(ie!=null)throw Error(o(137,a));break;default:ie!==ye&&Lt(n,a,re,ie,d,ye)}}cp(n,O,U,Q,ne,ge,y,v);return;case"select":ie=O=U=re=null;for(y in i)if(Q=i[y],i.hasOwnProperty(y)&&Q!=null)switch(y){case"value":break;case"multiple":ie=Q;default:d.hasOwnProperty(y)||Lt(n,a,y,null,d,Q)}for(v in d)if(y=d[v],Q=i[v],d.hasOwnProperty(v)&&(y!=null||Q!=null))switch(v){case"value":re=y;break;case"defaultValue":U=y;break;case"multiple":O=y;default:y!==Q&&Lt(n,a,v,y,d,Q)}a=U,i=O,d=ie,re!=null?Io(n,!!i,re,!1):!!d!=!!i&&(a!=null?Io(n,!!i,a,!0):Io(n,!!i,i?[]:"",!1));return;case"textarea":ie=re=null;for(U in i)if(v=i[U],i.hasOwnProperty(U)&&v!=null&&!d.hasOwnProperty(U))switch(U){case"value":break;case"children":break;default:Lt(n,a,U,null,d,v)}for(O in d)if(v=d[O],y=i[O],d.hasOwnProperty(O)&&(v!=null||y!=null))switch(O){case"value":re=v;break;case"defaultValue":ie=v;break;case"children":break;case"dangerouslySetInnerHTML":if(v!=null)throw Error(o(91));break;default:v!==y&&Lt(n,a,O,v,d,y)}Nv(n,re,ie);return;case"option":for(var qe in i)if(re=i[qe],i.hasOwnProperty(qe)&&re!=null&&!d.hasOwnProperty(qe))switch(qe){case"selected":n.selected=!1;break;default:Lt(n,a,qe,null,d,re)}for(Q in d)if(re=d[Q],ie=i[Q],d.hasOwnProperty(Q)&&re!==ie&&(re!=null||ie!=null))switch(Q){case"selected":n.selected=re&&typeof re!="function"&&typeof re!="symbol";break;default:Lt(n,a,Q,re,d,ie)}return;case"img":case"link":case"area":case"base":case"br":case"col":case"embed":case"hr":case"keygen":case"meta":case"param":case"source":case"track":case"wbr":case"menuitem":for(var at in i)re=i[at],i.hasOwnProperty(at)&&re!=null&&!d.hasOwnProperty(at)&&Lt(n,a,at,null,d,re);for(ne in d)if(re=d[ne],ie=i[ne],d.hasOwnProperty(ne)&&re!==ie&&(re!=null||ie!=null))switch(ne){case"children":case"dangerouslySetInnerHTML":if(re!=null)throw Error(o(137,a));break;default:Lt(n,a,ne,re,d,ie)}return;default:if(dp(a)){for(var Pt in i)re=i[Pt],i.hasOwnProperty(Pt)&&re!==void 0&&!d.hasOwnProperty(Pt)&&Zm(n,a,Pt,void 0,d,re);for(ge in d)re=d[ge],ie=i[ge],!d.hasOwnProperty(ge)||re===ie||re===void 0&&ie===void 0||Zm(n,a,ge,re,d,ie);return}}for(var J in i)re=i[J],i.hasOwnProperty(J)&&re!=null&&!d.hasOwnProperty(J)&&Lt(n,a,J,null,d,re);for(ye in d)re=d[ye],ie=i[ye],!d.hasOwnProperty(ye)||re===ie||re==null&&ie==null||Lt(n,a,ye,re,d,ie)}function M0(n){switch(n){case"css":case"script":case"font":case"img":case"image":case"input":case"link":return!0;default:return!1}}function yR(){if(typeof performance.getEntriesByType=="function"){for(var n=0,a=0,i=performance.getEntriesByType("resource"),d=0;d<i.length;d++){var v=i[d],y=v.transferSize,O=v.initiatorType,U=v.duration;if(y&&U&&M0(O)){for(O=0,U=v.responseEnd,d+=1;d<i.length;d++){var Q=i[d],ne=Q.startTime;if(ne>U)break;var ge=Q.transferSize,ye=Q.initiatorType;ge&&M0(ye)&&(Q=Q.responseEnd,O+=ge*(Q<U?1:(U-ne)/(Q-ne)))}if(--d,a+=8*(y+O)/(v.duration/1e3),n++,10<n)break}}if(0<n)return a/n/1e6}return navigator.connection&&(n=navigator.connection.downlink,typeof n=="number")?n:5}var Wm=null,Jm=null;function Gu(n){return n.nodeType===9?n:n.ownerDocument}function O0(n){switch(n){case"http://www.w3.org/2000/svg":return 1;case"http://www.w3.org/1998/Math/MathML":return 2;default:return 0}}function z0(n,a){if(n===0)switch(a){case"svg":return 1;case"math":return 2;default:return 0}return n===1&&a==="foreignObject"?0:n}function eg(n,a){return n==="textarea"||n==="noscript"||typeof a.children=="string"||typeof a.children=="number"||typeof a.children=="bigint"||typeof a.dangerouslySetInnerHTML=="object"&&a.dangerouslySetInnerHTML!==null&&a.dangerouslySetInnerHTML.__html!=null}var tg=null;function jR(){var n=window.event;return n&&n.type==="popstate"?n===tg?!1:(tg=n,!0):(tg=null,!1)}var D0=typeof setTimeout=="function"?setTimeout:void 0,wR=typeof clearTimeout=="function"?clearTimeout:void 0,L0=typeof Promise=="function"?Promise:void 0,kR=typeof queueMicrotask=="function"?queueMicrotask:typeof L0<"u"?function(n){return L0.resolve(null).then(n).catch(SR)}:D0;function SR(n){setTimeout(function(){throw n})}function hr(n){return n==="head"}function P0(n,a){var i=a,d=0;do{var v=i.nextSibling;if(n.removeChild(i),v&&v.nodeType===8)if(i=v.data,i==="/$"||i==="/&"){if(d===0){n.removeChild(v),hl(a);return}d--}else if(i==="$"||i==="$?"||i==="$~"||i==="$!"||i==="&")d++;else if(i==="html")Li(n.ownerDocument.documentElement);else if(i==="head"){i=n.ownerDocument.head,Li(i);for(var y=i.firstChild;y;){var O=y.nextSibling,U=y.nodeName;y[ei]||U==="SCRIPT"||U==="STYLE"||U==="LINK"&&y.rel.toLowerCase()==="stylesheet"||i.removeChild(y),y=O}}else i==="body"&&Li(n.ownerDocument.body);i=v}while(i);hl(a)}function I0(n,a){var i=n;n=0;do{var d=i.nextSibling;if(i.nodeType===1?a?(i._stashedDisplay=i.style.display,i.style.display="none"):(i.style.display=i._stashedDisplay||"",i.getAttribute("style")===""&&i.removeAttribute("style")):i.nodeType===3&&(a?(i._stashedText=i.nodeValue,i.nodeValue=""):i.nodeValue=i._stashedText||""),d&&d.nodeType===8)if(i=d.data,i==="/$"){if(n===0)break;n--}else i!=="$"&&i!=="$?"&&i!=="$~"&&i!=="$!"||n++;i=d}while(i)}function ng(n){var a=n.firstChild;for(a&&a.nodeType===10&&(a=a.nextSibling);a;){var i=a;switch(a=a.nextSibling,i.nodeName){case"HTML":case"HEAD":case"BODY":ng(i),lp(i);continue;case"SCRIPT":case"STYLE":continue;case"LINK":if(i.rel.toLowerCase()==="stylesheet")continue}n.removeChild(i)}}function CR(n,a,i,d){for(;n.nodeType===1;){var v=i;if(n.nodeName.toLowerCase()!==a.toLowerCase()){if(!d&&(n.nodeName!=="INPUT"||n.type!=="hidden"))break}else if(d){if(!n[ei])switch(a){case"meta":if(!n.hasAttribute("itemprop"))break;return n;case"link":if(y=n.getAttribute("rel"),y==="stylesheet"&&n.hasAttribute("data-precedence"))break;if(y!==v.rel||n.getAttribute("href")!==(v.href==null||v.href===""?null:v.href)||n.getAttribute("crossorigin")!==(v.crossOrigin==null?null:v.crossOrigin)||n.getAttribute("title")!==(v.title==null?null:v.title))break;return n;case"style":if(n.hasAttribute("data-precedence"))break;return n;case"script":if(y=n.getAttribute("src"),(y!==(v.src==null?null:v.src)||n.getAttribute("type")!==(v.type==null?null:v.type)||n.getAttribute("crossorigin")!==(v.crossOrigin==null?null:v.crossOrigin))&&y&&n.hasAttribute("async")&&!n.hasAttribute("itemprop"))break;return n;default:return n}}else if(a==="input"&&n.type==="hidden"){var y=v.name==null?null:""+v.name;if(v.type==="hidden"&&n.getAttribute("name")===y)return n}else return n;if(n=Ta(n.nextSibling),n===null)break}return null}function ER(n,a,i){if(a==="")return null;for(;n.nodeType!==3;)if((n.nodeType!==1||n.nodeName!=="INPUT"||n.type!=="hidden")&&!i||(n=Ta(n.nextSibling),n===null))return null;return n}function B0(n,a){for(;n.nodeType!==8;)if((n.nodeType!==1||n.nodeName!=="INPUT"||n.type!=="hidden")&&!a||(n=Ta(n.nextSibling),n===null))return null;return n}function ag(n){return n.data==="$?"||n.data==="$~"}function sg(n){return n.data==="$!"||n.data==="$?"&&n.ownerDocument.readyState!=="loading"}function NR(n,a){var i=n.ownerDocument;if(n.data==="$~")n._reactRetry=a;else if(n.data!=="$?"||i.readyState!=="loading")a();else{var d=function(){a(),i.removeEventListener("DOMContentLoaded",d)};i.addEventListener("DOMContentLoaded",d),n._reactRetry=d}}function Ta(n){for(;n!=null;n=n.nextSibling){var a=n.nodeType;if(a===1||a===3)break;if(a===8){if(a=n.data,a==="$"||a==="$!"||a==="$?"||a==="$~"||a==="&"||a==="F!"||a==="F")break;if(a==="/$"||a==="/&")return null}}return n}var rg=null;function U0(n){n=n.nextSibling;for(var a=0;n;){if(n.nodeType===8){var i=n.data;if(i==="/$"||i==="/&"){if(a===0)return Ta(n.nextSibling);a--}else i!=="$"&&i!=="$!"&&i!=="$?"&&i!=="$~"&&i!=="&"||a++}n=n.nextSibling}return null}function H0(n){n=n.previousSibling;for(var a=0;n;){if(n.nodeType===8){var i=n.data;if(i==="$"||i==="$!"||i==="$?"||i==="$~"||i==="&"){if(a===0)return n;a--}else i!=="/$"&&i!=="/&"||a++}n=n.previousSibling}return null}function V0(n,a,i){switch(a=Gu(i),n){case"html":if(n=a.documentElement,!n)throw Error(o(452));return n;case"head":if(n=a.head,!n)throw Error(o(453));return n;case"body":if(n=a.body,!n)throw Error(o(454));return n;default:throw Error(o(451))}}function Li(n){for(var a=n.attributes;a.length;)n.removeAttributeNode(a[0]);lp(n)}var Aa=new Map,q0=new Set;function Yu(n){return typeof n.getRootNode=="function"?n.getRootNode():n.nodeType===9?n:n.ownerDocument}var Ls=Y.d;Y.d={f:RR,r:TR,D:AR,C:MR,L:OR,m:zR,X:LR,S:DR,M:PR};function RR(){var n=Ls.f(),a=Iu();return n||a}function TR(n){var a=Do(n);a!==null&&a.tag===5&&a.type==="form"?oy(a):Ls.r(n)}var pl=typeof document>"u"?null:document;function $0(n,a,i){var d=pl;if(d&&typeof a=="string"&&a){var v=wa(a);v='link[rel="'+n+'"][href="'+v+'"]',typeof i=="string"&&(v+='[crossorigin="'+i+'"]'),q0.has(v)||(q0.add(v),n={rel:n,crossOrigin:i,href:a},d.querySelector(v)===null&&(a=d.createElement("link"),Ln(a,"link",n),Sn(a),d.head.appendChild(a)))}}function AR(n){Ls.D(n),$0("dns-prefetch",n,null)}function MR(n,a){Ls.C(n,a),$0("preconnect",n,a)}function OR(n,a,i){Ls.L(n,a,i);var d=pl;if(d&&n&&a){var v='link[rel="preload"][as="'+wa(a)+'"]';a==="image"&&i&&i.imageSrcSet?(v+='[imagesrcset="'+wa(i.imageSrcSet)+'"]',typeof i.imageSizes=="string"&&(v+='[imagesizes="'+wa(i.imageSizes)+'"]')):v+='[href="'+wa(n)+'"]';var y=v;switch(a){case"style":y=ml(n);break;case"script":y=gl(n)}Aa.has(y)||(n=b({rel:"preload",href:a==="image"&&i&&i.imageSrcSet?void 0:n,as:a},i),Aa.set(y,n),d.querySelector(v)!==null||a==="style"&&d.querySelector(Pi(y))||a==="script"&&d.querySelector(Ii(y))||(a=d.createElement("link"),Ln(a,"link",n),Sn(a),d.head.appendChild(a)))}}function zR(n,a){Ls.m(n,a);var i=pl;if(i&&n){var d=a&&typeof a.as=="string"?a.as:"script",v='link[rel="modulepreload"][as="'+wa(d)+'"][href="'+wa(n)+'"]',y=v;switch(d){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":y=gl(n)}if(!Aa.has(y)&&(n=b({rel:"modulepreload",href:n},a),Aa.set(y,n),i.querySelector(v)===null)){switch(d){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(i.querySelector(Ii(y)))return}d=i.createElement("link"),Ln(d,"link",n),Sn(d),i.head.appendChild(d)}}}function DR(n,a,i){Ls.S(n,a,i);var d=pl;if(d&&n){var v=Lo(d).hoistableStyles,y=ml(n);a=a||"default";var O=v.get(y);if(!O){var U={loading:0,preload:null};if(O=d.querySelector(Pi(y)))U.loading=5;else{n=b({rel:"stylesheet",href:n,"data-precedence":a},i),(i=Aa.get(y))&&og(n,i);var Q=O=d.createElement("link");Sn(Q),Ln(Q,"link",n),Q._p=new Promise(function(ne,ge){Q.onload=ne,Q.onerror=ge}),Q.addEventListener("load",function(){U.loading|=1}),Q.addEventListener("error",function(){U.loading|=2}),U.loading|=4,Xu(O,a,d)}O={type:"stylesheet",instance:O,count:1,state:U},v.set(y,O)}}}function LR(n,a){Ls.X(n,a);var i=pl;if(i&&n){var d=Lo(i).hoistableScripts,v=gl(n),y=d.get(v);y||(y=i.querySelector(Ii(v)),y||(n=b({src:n,async:!0},a),(a=Aa.get(v))&&lg(n,a),y=i.createElement("script"),Sn(y),Ln(y,"link",n),i.head.appendChild(y)),y={type:"script",instance:y,count:1,state:null},d.set(v,y))}}function PR(n,a){Ls.M(n,a);var i=pl;if(i&&n){var d=Lo(i).hoistableScripts,v=gl(n),y=d.get(v);y||(y=i.querySelector(Ii(v)),y||(n=b({src:n,async:!0,type:"module"},a),(a=Aa.get(v))&&lg(n,a),y=i.createElement("script"),Sn(y),Ln(y,"link",n),i.head.appendChild(y)),y={type:"script",instance:y,count:1,state:null},d.set(v,y))}}function F0(n,a,i,d){var v=(v=ue.current)?Yu(v):null;if(!v)throw Error(o(446));switch(n){case"meta":case"title":return null;case"style":return typeof i.precedence=="string"&&typeof i.href=="string"?(a=ml(i.href),i=Lo(v).hoistableStyles,d=i.get(a),d||(d={type:"style",instance:null,count:0,state:null},i.set(a,d)),d):{type:"void",instance:null,count:0,state:null};case"link":if(i.rel==="stylesheet"&&typeof i.href=="string"&&typeof i.precedence=="string"){n=ml(i.href);var y=Lo(v).hoistableStyles,O=y.get(n);if(O||(v=v.ownerDocument||v,O={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},y.set(n,O),(y=v.querySelector(Pi(n)))&&!y._p&&(O.instance=y,O.state.loading=5),Aa.has(n)||(i={rel:"preload",as:"style",href:i.href,crossOrigin:i.crossOrigin,integrity:i.integrity,media:i.media,hrefLang:i.hrefLang,referrerPolicy:i.referrerPolicy},Aa.set(n,i),y||IR(v,n,i,O.state))),a&&d===null)throw Error(o(528,""));return O}if(a&&d!==null)throw Error(o(529,""));return null;case"script":return a=i.async,i=i.src,typeof i=="string"&&a&&typeof a!="function"&&typeof a!="symbol"?(a=gl(i),i=Lo(v).hoistableScripts,d=i.get(a),d||(d={type:"script",instance:null,count:0,state:null},i.set(a,d)),d):{type:"void",instance:null,count:0,state:null};default:throw Error(o(444,n))}}function ml(n){return'href="'+wa(n)+'"'}function Pi(n){return'link[rel="stylesheet"]['+n+"]"}function G0(n){return b({},n,{"data-precedence":n.precedence,precedence:null})}function IR(n,a,i,d){n.querySelector('link[rel="preload"][as="style"]['+a+"]")?d.loading=1:(a=n.createElement("link"),d.preload=a,a.addEventListener("load",function(){return d.loading|=1}),a.addEventListener("error",function(){return d.loading|=2}),Ln(a,"link",i),Sn(a),n.head.appendChild(a))}function gl(n){return'[src="'+wa(n)+'"]'}function Ii(n){return"script[async]"+n}function Y0(n,a,i){if(a.count++,a.instance===null)switch(a.type){case"style":var d=n.querySelector('style[data-href~="'+wa(i.href)+'"]');if(d)return a.instance=d,Sn(d),d;var v=b({},i,{"data-href":i.href,"data-precedence":i.precedence,href:null,precedence:null});return d=(n.ownerDocument||n).createElement("style"),Sn(d),Ln(d,"style",v),Xu(d,i.precedence,n),a.instance=d;case"stylesheet":v=ml(i.href);var y=n.querySelector(Pi(v));if(y)return a.state.loading|=4,a.instance=y,Sn(y),y;d=G0(i),(v=Aa.get(v))&&og(d,v),y=(n.ownerDocument||n).createElement("link"),Sn(y);var O=y;return O._p=new Promise(function(U,Q){O.onload=U,O.onerror=Q}),Ln(y,"link",d),a.state.loading|=4,Xu(y,i.precedence,n),a.instance=y;case"script":return y=gl(i.src),(v=n.querySelector(Ii(y)))?(a.instance=v,Sn(v),v):(d=i,(v=Aa.get(y))&&(d=b({},i),lg(d,v)),n=n.ownerDocument||n,v=n.createElement("script"),Sn(v),Ln(v,"link",d),n.head.appendChild(v),a.instance=v);case"void":return null;default:throw Error(o(443,a.type))}else a.type==="stylesheet"&&(a.state.loading&4)===0&&(d=a.instance,a.state.loading|=4,Xu(d,i.precedence,n));return a.instance}function Xu(n,a,i){for(var d=i.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),v=d.length?d[d.length-1]:null,y=v,O=0;O<d.length;O++){var U=d[O];if(U.dataset.precedence===a)y=U;else if(y!==v)break}y?y.parentNode.insertBefore(n,y.nextSibling):(a=i.nodeType===9?i.head:i,a.insertBefore(n,a.firstChild))}function og(n,a){n.crossOrigin==null&&(n.crossOrigin=a.crossOrigin),n.referrerPolicy==null&&(n.referrerPolicy=a.referrerPolicy),n.title==null&&(n.title=a.title)}function lg(n,a){n.crossOrigin==null&&(n.crossOrigin=a.crossOrigin),n.referrerPolicy==null&&(n.referrerPolicy=a.referrerPolicy),n.integrity==null&&(n.integrity=a.integrity)}var Ku=null;function X0(n,a,i){if(Ku===null){var d=new Map,v=Ku=new Map;v.set(i,d)}else v=Ku,d=v.get(i),d||(d=new Map,v.set(i,d));if(d.has(n))return d;for(d.set(n,null),i=i.getElementsByTagName(n),v=0;v<i.length;v++){var y=i[v];if(!(y[ei]||y[Ht]||n==="link"&&y.getAttribute("rel")==="stylesheet")&&y.namespaceURI!=="http://www.w3.org/2000/svg"){var O=y.getAttribute(a)||"";O=n+O;var U=d.get(O);U?U.push(y):d.set(O,[y])}}return d}function K0(n,a,i){n=n.ownerDocument||n,n.head.insertBefore(i,a==="title"?n.querySelector("head > title"):null)}function BR(n,a,i){if(i===1||a.itemProp!=null)return!1;switch(n){case"meta":case"title":return!0;case"style":if(typeof a.precedence!="string"||typeof a.href!="string"||a.href==="")break;return!0;case"link":if(typeof a.rel!="string"||typeof a.href!="string"||a.href===""||a.onLoad||a.onError)break;switch(a.rel){case"stylesheet":return n=a.disabled,typeof a.precedence=="string"&&n==null;default:return!0}case"script":if(a.async&&typeof a.async!="function"&&typeof a.async!="symbol"&&!a.onLoad&&!a.onError&&a.src&&typeof a.src=="string")return!0}return!1}function Q0(n){return!(n.type==="stylesheet"&&(n.state.loading&3)===0)}function UR(n,a,i,d){if(i.type==="stylesheet"&&(typeof d.media!="string"||matchMedia(d.media).matches!==!1)&&(i.state.loading&4)===0){if(i.instance===null){var v=ml(d.href),y=a.querySelector(Pi(v));if(y){a=y._p,a!==null&&typeof a=="object"&&typeof a.then=="function"&&(n.count++,n=Qu.bind(n),a.then(n,n)),i.state.loading|=4,i.instance=y,Sn(y);return}y=a.ownerDocument||a,d=G0(d),(v=Aa.get(v))&&og(d,v),y=y.createElement("link"),Sn(y);var O=y;O._p=new Promise(function(U,Q){O.onload=U,O.onerror=Q}),Ln(y,"link",d),i.instance=y}n.stylesheets===null&&(n.stylesheets=new Map),n.stylesheets.set(i,a),(a=i.state.preload)&&(i.state.loading&3)===0&&(n.count++,i=Qu.bind(n),a.addEventListener("load",i),a.addEventListener("error",i))}}var ig=0;function HR(n,a){return n.stylesheets&&n.count===0&&Wu(n,n.stylesheets),0<n.count||0<n.imgCount?function(i){var d=setTimeout(function(){if(n.stylesheets&&Wu(n,n.stylesheets),n.unsuspend){var y=n.unsuspend;n.unsuspend=null,y()}},6e4+a);0<n.imgBytes&&ig===0&&(ig=62500*yR());var v=setTimeout(function(){if(n.waitingForImages=!1,n.count===0&&(n.stylesheets&&Wu(n,n.stylesheets),n.unsuspend)){var y=n.unsuspend;n.unsuspend=null,y()}},(n.imgBytes>ig?50:800)+a);return n.unsuspend=i,function(){n.unsuspend=null,clearTimeout(d),clearTimeout(v)}}:null}function Qu(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Wu(this,this.stylesheets);else if(this.unsuspend){var n=this.unsuspend;this.unsuspend=null,n()}}}var Zu=null;function Wu(n,a){n.stylesheets=null,n.unsuspend!==null&&(n.count++,Zu=new Map,a.forEach(VR,n),Zu=null,Qu.call(n))}function VR(n,a){if(!(a.state.loading&4)){var i=Zu.get(n);if(i)var d=i.get(null);else{i=new Map,Zu.set(n,i);for(var v=n.querySelectorAll("link[data-precedence],style[data-precedence]"),y=0;y<v.length;y++){var O=v[y];(O.nodeName==="LINK"||O.getAttribute("media")!=="not all")&&(i.set(O.dataset.precedence,O),d=O)}d&&i.set(null,d)}v=a.instance,O=v.getAttribute("data-precedence"),y=i.get(O)||d,y===d&&i.set(null,v),i.set(O,v),this.count++,d=Qu.bind(this),v.addEventListener("load",d),v.addEventListener("error",d),y?y.parentNode.insertBefore(v,y.nextSibling):(n=n.nodeType===9?n.head:n,n.insertBefore(v,n.firstChild)),a.state.loading|=4}}var Bi={$$typeof:N,Provider:null,Consumer:null,_currentValue:X,_currentValue2:X,_threadCount:0};function qR(n,a,i,d,v,y,O,U,Q){this.tag=1,this.containerInfo=n,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=_a(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=_a(0),this.hiddenUpdates=_a(null),this.identifierPrefix=d,this.onUncaughtError=v,this.onCaughtError=y,this.onRecoverableError=O,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=Q,this.incompleteTransitions=new Map}function Z0(n,a,i,d,v,y,O,U,Q,ne,ge,ye){return n=new qR(n,a,i,O,Q,ne,ge,ye,U),a=1,y===!0&&(a|=24),y=da(3,null,null,a),n.current=y,y.stateNode=n,a=Hp(),a.refCount++,n.pooledCache=a,a.refCount++,y.memoizedState={element:d,isDehydrated:i,cache:a},Fp(y),n}function W0(n){return n?(n=Go,n):Go}function J0(n,a,i,d,v,y){v=W0(v),d.context===null?d.context=v:d.pendingContext=v,d=rr(a),d.payload={element:i},y=y===void 0?null:y,y!==null&&(d.callback=y),i=or(n,d,a),i!==null&&(sa(i,n,a),xi(i,n,a))}function e1(n,a){if(n=n.memoizedState,n!==null&&n.dehydrated!==null){var i=n.retryLane;n.retryLane=i!==0&&i<a?i:a}}function cg(n,a){e1(n,a),(n=n.alternate)&&e1(n,a)}function t1(n){if(n.tag===13||n.tag===31){var a=Yr(n,67108864);a!==null&&sa(a,n,67108864),cg(n,67108864)}}function n1(n){if(n.tag===13||n.tag===31){var a=ha();a=ct(a);var i=Yr(n,a);i!==null&&sa(i,n,a),cg(n,a)}}var Ju=!0;function $R(n,a,i,d){var v=q.T;q.T=null;var y=Y.p;try{Y.p=2,ug(n,a,i,d)}finally{Y.p=y,q.T=v}}function FR(n,a,i,d){var v=q.T;q.T=null;var y=Y.p;try{Y.p=8,ug(n,a,i,d)}finally{Y.p=y,q.T=v}}function ug(n,a,i,d){if(Ju){var v=dg(d);if(v===null)Qm(n,a,d,ed,i),s1(n,d);else if(YR(v,n,a,i,d))d.stopPropagation();else if(s1(n,d),a&4&&-1<GR.indexOf(n)){for(;v!==null;){var y=Do(v);if(y!==null)switch(y.tag){case 3:if(y=y.stateNode,y.current.memoizedState.isDehydrated){var O=Wt(y.pendingLanes);if(O!==0){var U=y;for(U.pendingLanes|=2,U.entangledLanes|=2;O;){var Q=1<<31-rt(O);U.entanglements[1]|=Q,O&=~Q}Za(y),(At&6)===0&&(Lu=ae()+500,Oi(0))}}break;case 31:case 13:U=Yr(y,2),U!==null&&sa(U,y,2),Iu(),cg(y,2)}if(y=dg(d),y===null&&Qm(n,a,d,ed,i),y===v)break;v=y}v!==null&&d.stopPropagation()}else Qm(n,a,d,null,i)}}function dg(n){return n=pp(n),fg(n)}var ed=null;function fg(n){if(ed=null,n=zo(n),n!==null){var a=c(n);if(a===null)n=null;else{var i=a.tag;if(i===13){if(n=u(a),n!==null)return n;n=null}else if(i===31){if(n=p(a),n!==null)return n;n=null}else if(i===3){if(a.stateNode.current.memoizedState.isDehydrated)return a.tag===3?a.stateNode.containerInfo:null;n=null}else a!==n&&(n=null)}}return ed=n,null}function a1(n){switch(n){case"beforetoggle":case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"toggle":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 2;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 8;case"message":switch(be()){case $e:return 2;case Ne:return 8;case Me:case Ze:return 32;case st:return 268435456;default:return 32}default:return 32}}var pg=!1,xr=null,br=null,vr=null,Ui=new Map,Hi=new Map,_r=[],GR="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset".split(" ");function s1(n,a){switch(n){case"focusin":case"focusout":xr=null;break;case"dragenter":case"dragleave":br=null;break;case"mouseover":case"mouseout":vr=null;break;case"pointerover":case"pointerout":Ui.delete(a.pointerId);break;case"gotpointercapture":case"lostpointercapture":Hi.delete(a.pointerId)}}function Vi(n,a,i,d,v,y){return n===null||n.nativeEvent!==y?(n={blockedOn:a,domEventName:i,eventSystemFlags:d,nativeEvent:y,targetContainers:[v]},a!==null&&(a=Do(a),a!==null&&t1(a)),n):(n.eventSystemFlags|=d,a=n.targetContainers,v!==null&&a.indexOf(v)===-1&&a.push(v),n)}function YR(n,a,i,d,v){switch(a){case"focusin":return xr=Vi(xr,n,a,i,d,v),!0;case"dragenter":return br=Vi(br,n,a,i,d,v),!0;case"mouseover":return vr=Vi(vr,n,a,i,d,v),!0;case"pointerover":var y=v.pointerId;return Ui.set(y,Vi(Ui.get(y)||null,n,a,i,d,v)),!0;case"gotpointercapture":return y=v.pointerId,Hi.set(y,Vi(Hi.get(y)||null,n,a,i,d,v)),!0}return!1}function r1(n){var a=zo(n.target);if(a!==null){var i=c(a);if(i!==null){if(a=i.tag,a===13){if(a=u(i),a!==null){n.blockedOn=a,kn(n.priority,function(){n1(i)});return}}else if(a===31){if(a=p(i),a!==null){n.blockedOn=a,kn(n.priority,function(){n1(i)});return}}else if(a===3&&i.stateNode.current.memoizedState.isDehydrated){n.blockedOn=i.tag===3?i.stateNode.containerInfo:null;return}}}n.blockedOn=null}function td(n){if(n.blockedOn!==null)return!1;for(var a=n.targetContainers;0<a.length;){var i=dg(n.nativeEvent);if(i===null){i=n.nativeEvent;var d=new i.constructor(i.type,i);fp=d,i.target.dispatchEvent(d),fp=null}else return a=Do(i),a!==null&&t1(a),n.blockedOn=i,!1;a.shift()}return!0}function o1(n,a,i){td(n)&&i.delete(a)}function XR(){pg=!1,xr!==null&&td(xr)&&(xr=null),br!==null&&td(br)&&(br=null),vr!==null&&td(vr)&&(vr=null),Ui.forEach(o1),Hi.forEach(o1)}function nd(n,a){n.blockedOn===a&&(n.blockedOn=null,pg||(pg=!0,e.unstable_scheduleCallback(e.unstable_NormalPriority,XR)))}var ad=null;function l1(n){ad!==n&&(ad=n,e.unstable_scheduleCallback(e.unstable_NormalPriority,function(){ad===n&&(ad=null);for(var a=0;a<n.length;a+=3){var i=n[a],d=n[a+1],v=n[a+2];if(typeof d!="function"){if(fg(d||i)===null)continue;break}var y=Do(i);y!==null&&(n.splice(a,3),a-=3,dm(y,{pending:!0,data:v,method:i.method,action:d},d,v))}}))}function hl(n){function a(Q){return nd(Q,n)}xr!==null&&nd(xr,n),br!==null&&nd(br,n),vr!==null&&nd(vr,n),Ui.forEach(a),Hi.forEach(a);for(var i=0;i<_r.length;i++){var d=_r[i];d.blockedOn===n&&(d.blockedOn=null)}for(;0<_r.length&&(i=_r[0],i.blockedOn===null);)r1(i),i.blockedOn===null&&_r.shift();if(i=(n.ownerDocument||n).$$reactFormReplay,i!=null)for(d=0;d<i.length;d+=3){var v=i[d],y=i[d+1],O=v[Mn]||null;if(typeof y=="function")O||l1(i);else if(O){var U=null;if(y&&y.hasAttribute("formAction")){if(v=y,O=y[Mn]||null)U=O.formAction;else if(fg(v)!==null)continue}else U=O.action;typeof U=="function"?i[d+1]=U:(i.splice(d,3),d-=3),l1(i)}}}function i1(){function n(y){y.canIntercept&&y.info==="react-transition"&&y.intercept({handler:function(){return new Promise(function(O){return v=O})},focusReset:"manual",scroll:"manual"})}function a(){v!==null&&(v(),v=null),d||setTimeout(i,20)}function i(){if(!d&&!navigation.transition){var y=navigation.currentEntry;y&&y.url!=null&&navigation.navigate(y.url,{state:y.getState(),info:"react-transition",history:"replace"})}}if(typeof navigation=="object"){var d=!1,v=null;return navigation.addEventListener("navigate",n),navigation.addEventListener("navigatesuccess",a),navigation.addEventListener("navigateerror",a),setTimeout(i,100),function(){d=!0,navigation.removeEventListener("navigate",n),navigation.removeEventListener("navigatesuccess",a),navigation.removeEventListener("navigateerror",a),v!==null&&(v(),v=null)}}}function mg(n){this._internalRoot=n}sd.prototype.render=mg.prototype.render=function(n){var a=this._internalRoot;if(a===null)throw Error(o(409));var i=a.current,d=ha();J0(i,d,n,a,null,null)},sd.prototype.unmount=mg.prototype.unmount=function(){var n=this._internalRoot;if(n!==null){this._internalRoot=null;var a=n.containerInfo;J0(n.current,2,null,n,null,null),Iu(),a[Ya]=null}};function sd(n){this._internalRoot=n}sd.prototype.unstable_scheduleHydration=function(n){if(n){var a=pn();n={blockedOn:null,target:n,priority:a};for(var i=0;i<_r.length&&a!==0&&a<_r[i].priority;i++);_r.splice(i,0,n),i===0&&r1(n)}};var c1=t.version;if(c1!=="19.2.7")throw Error(o(527,c1,"19.2.7"));Y.findDOMNode=function(n){var a=n._reactInternals;if(a===void 0)throw typeof n.render=="function"?Error(o(188)):(n=Object.keys(n).join(","),Error(o(268,n)));return n=g(a),n=n!==null?h(n):null,n=n===null?null:n.stateNode,n};var KR={bundleType:0,version:"19.2.7",rendererPackageName:"react-dom",currentDispatcherRef:q,reconcilerVersion:"19.2.7"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var rd=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!rd.isDisabled&&rd.supportsFiber)try{Ae=rd.inject(KR),He=rd}catch{}}return $i.createRoot=function(n,a){if(!l(n))throw Error(o(299));var i=!1,d="",v=hy,y=xy,O=by;return a!=null&&(a.unstable_strictMode===!0&&(i=!0),a.identifierPrefix!==void 0&&(d=a.identifierPrefix),a.onUncaughtError!==void 0&&(v=a.onUncaughtError),a.onCaughtError!==void 0&&(y=a.onCaughtError),a.onRecoverableError!==void 0&&(O=a.onRecoverableError)),a=Z0(n,1,!1,null,null,i,d,null,v,y,O,i1),n[Ya]=a.current,Km(n),new mg(a)},$i.hydrateRoot=function(n,a,i){if(!l(n))throw Error(o(299));var d=!1,v="",y=hy,O=xy,U=by,Q=null;return i!=null&&(i.unstable_strictMode===!0&&(d=!0),i.identifierPrefix!==void 0&&(v=i.identifierPrefix),i.onUncaughtError!==void 0&&(y=i.onUncaughtError),i.onCaughtError!==void 0&&(O=i.onCaughtError),i.onRecoverableError!==void 0&&(U=i.onRecoverableError),i.formState!==void 0&&(Q=i.formState)),a=Z0(n,1,!0,a,i??null,d,v,Q,y,O,U,i1),a.context=W0(null),i=a.current,d=ha(),d=ct(d),v=rr(d),v.callback=null,or(i,v,d),i=d,a.current.lanes=i,fn(a,i),Za(a),n[Ya]=a.current,Km(n),new sd(a)},$i.version="19.2.7",$i}var v1;function oT(){if(v1)return xg.exports;v1=1;function e(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}return e(),xg.exports=rT(),xg.exports}var lT=oT();const iT=jx(lT);/**
|
|
50
|
+
* react-router v7.18.0
|
|
51
|
+
*
|
|
52
|
+
* Copyright (c) Remix Software Inc.
|
|
53
|
+
*
|
|
54
|
+
* This source code is licensed under the MIT license found in the
|
|
55
|
+
* LICENSE.md file in the root directory of this source tree.
|
|
56
|
+
*
|
|
57
|
+
* @license MIT
|
|
58
|
+
*/var wx=/^(?:[a-z][a-z0-9+.-]*:|[\\/]{2})/i,sk=/^[\\/]{2}/;function cT(e,t){return t+e.replace(/\\/g,"/")}var _1="popstate";function y1(e){return typeof e=="object"&&e!=null&&"pathname"in e&&"search"in e&&"hash"in e&&"state"in e&&"key"in e}function uT(e={}){function t(o,l){let c=l.state?.masked,{pathname:u,search:p,hash:m}=c||o.location;return Mh("",{pathname:u,search:p,hash:m},l.state&&l.state.usr||null,l.state&&l.state.key||"default",c?{pathname:o.location.pathname,search:o.location.search,hash:o.location.hash}:void 0)}function s(o,l){return typeof l=="string"?l:wc(l)}return fT(t,s,null,e)}function en(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}function Da(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function dT(){return Math.random().toString(36).substring(2,10)}function j1(e,t){return{usr:e.state,key:e.key,idx:t,masked:e.mask?{pathname:e.pathname,search:e.search,hash:e.hash}:void 0}}function Mh(e,t,s=null,o,l){return{pathname:typeof e=="string"?e:e.pathname,search:"",hash:"",...typeof t=="string"?Gl(t):t,state:s,key:t&&t.key||o||dT(),mask:l}}function wc({pathname:e="/",search:t="",hash:s=""}){return t&&t!=="?"&&(e+=t.charAt(0)==="?"?t:"?"+t),s&&s!=="#"&&(e+=s.charAt(0)==="#"?s:"#"+s),e}function Gl(e){let t={};if(e){let s=e.indexOf("#");s>=0&&(t.hash=e.substring(s),e=e.substring(0,s));let o=e.indexOf("?");o>=0&&(t.search=e.substring(o),e=e.substring(0,o)),e&&(t.pathname=e)}return t}function fT(e,t,s,o={}){let{window:l=document.defaultView,v5Compat:c=!1}=o,u=l.history,p="POP",m=null,g=h();g==null&&(g=0,u.replaceState({...u.state,idx:g},""));function h(){return(u.state||{idx:null}).idx}function b(){p="POP";let w=h(),S=w==null?null:w-g;g=w,m&&m({action:p,location:j.location,delta:S})}function _(w,S){p="PUSH";let C=y1(w)?w:Mh(j.location,w,S);g=h()+1;let N=j1(C,g),R=j.createHref(C.mask||C);try{u.pushState(N,"",R)}catch(A){if(A instanceof DOMException&&A.name==="DataCloneError")throw A;l.location.assign(R)}c&&m&&m({action:p,location:j.location,delta:1})}function k(w,S){p="REPLACE";let C=y1(w)?w:Mh(j.location,w,S);g=h();let N=j1(C,g),R=j.createHref(C.mask||C);u.replaceState(N,"",R),c&&m&&m({action:p,location:j.location,delta:0})}function E(w){return pT(l,w)}let j={get action(){return p},get location(){return e(l,u)},listen(w){if(m)throw new Error("A history only accepts one active listener");return l.addEventListener(_1,b),m=w,()=>{l.removeEventListener(_1,b),m=null}},createHref(w){return t(l,w)},createURL:E,encodeLocation(w){let S=E(w);return{pathname:S.pathname,search:S.search,hash:S.hash}},push:_,replace:k,go(w){return u.go(w)}};return j}function pT(e,t,s=!1){let o="http://localhost";e&&(o=e.location.origin!=="null"?e.location.origin:e.location.href),en(o,"No window.location.(origin|href) available to create URL");let l=typeof t=="string"?t:wc(t);return l=l.replace(/ $/,"%20"),!s&&sk.test(l)&&(l=o+l),new URL(l,o)}function rk(e,t,s="/"){return mT(e,t,s,!1)}function mT(e,t,s,o,l){let c=typeof t=="string"?Gl(t):t,u=$s(c.pathname||"/",s);if(u==null)return null;let p=gT(e),m=null,g=CT(u);for(let h=0;m==null&&h<p.length;++h)m=ST(p[h],g,o);return m}function gT(e){let t=ok(e);return hT(t),t}function ok(e,t=[],s=[],o="",l=!1){let c=(u,p,m=l,g)=>{let h={relativePath:g===void 0?u.path||"":g,caseSensitive:u.caseSensitive===!0,childrenIndex:p,route:u};if(h.relativePath.startsWith("/")){if(!h.relativePath.startsWith(o)&&m)return;en(h.relativePath.startsWith(o),`Absolute route path "${h.relativePath}" nested under path "${o}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),h.relativePath=h.relativePath.slice(o.length)}let b=Va([o,h.relativePath]),_=s.concat(h);u.children&&u.children.length>0&&(en(u.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${b}".`),ok(u.children,t,_,b,m)),!(u.path==null&&!u.index)&&t.push({path:b,score:wT(b,u.index),routesMeta:_.map((k,E)=>{let[j,w]=ck(k.relativePath,k.caseSensitive,E===_.length-1);return{...k,matcher:j,compiledParams:w}})})};return e.forEach((u,p)=>{if(u.path===""||!u.path?.includes("?"))c(u,p);else for(let m of lk(u.path))c(u,p,!0,m)}),t}function lk(e){let t=e.split("/");if(t.length===0)return[];let[s,...o]=t,l=s.endsWith("?"),c=s.replace(/\?$/,"");if(o.length===0)return l?[c,""]:[c];let u=lk(o.join("/")),p=[];return p.push(...u.map(m=>m===""?c:[c,m].join("/"))),l&&p.push(...u),p.map(m=>e.startsWith("/")&&m===""?"/":m)}function hT(e){e.sort((t,s)=>t.score!==s.score?s.score-t.score:kT(t.routesMeta.map(o=>o.childrenIndex),s.routesMeta.map(o=>o.childrenIndex)))}var xT=/^:[\w-]+$/,bT=3,vT=2,_T=1,yT=10,jT=-2,w1=e=>e==="*";function wT(e,t){let s=e.split("/"),o=s.length;return s.some(w1)&&(o+=jT),t&&(o+=vT),s.filter(l=>!w1(l)).reduce((l,c)=>l+(xT.test(c)?bT:c===""?_T:yT),o)}function kT(e,t){return e.length===t.length&&e.slice(0,-1).every((o,l)=>o===t[l])?e[e.length-1]-t[t.length-1]:0}function ST(e,t,s=!1){let{routesMeta:o}=e,l={},c="/",u=[];for(let p=0;p<o.length;++p){let m=o[p],g=p===o.length-1,h=c==="/"?t:t.slice(c.length)||"/",b={path:m.relativePath,caseSensitive:m.caseSensitive,end:g},_=m.matcher&&m.compiledParams?ik(b,h,m.matcher,m.compiledParams):Ud(b,h),k=m.route;if(!_&&g&&s&&!o[o.length-1].route.index&&(_=Ud({path:m.relativePath,caseSensitive:m.caseSensitive,end:!1},h)),!_)return null;Object.assign(l,_.params),u.push({params:l,pathname:Va([c,_.pathname]),pathnameBase:RT(Va([c,_.pathnameBase])),route:k}),_.pathnameBase!=="/"&&(c=Va([c,_.pathnameBase]))}return u}function Ud(e,t){typeof e=="string"&&(e={path:e,caseSensitive:!1,end:!0});let[s,o]=ck(e.path,e.caseSensitive,e.end);return ik(e,t,s,o)}function ik(e,t,s,o){let l=t.match(s);if(!l)return null;let c=l[0],u=c.replace(/(.)\/+$/,"$1"),p=l.slice(1);return{params:o.reduce((g,{paramName:h,isOptional:b},_)=>{if(h==="*"){let E=p[_]||"";u=c.slice(0,c.length-E.length).replace(/(.)\/+$/,"$1")}const k=p[_];return b&&!k?g[h]=void 0:g[h]=(k||"").replace(/%2F/g,"/"),g},{}),pathname:c,pathnameBase:u,pattern:e}}function ck(e,t=!1,s=!0){Da(e==="*"||!e.endsWith("*")||e.endsWith("/*"),`Route path "${e}" will be treated as if it were "${e.replace(/\*$/,"/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${e.replace(/\*$/,"/*")}".`);let o=[],l="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(u,p,m,g,h)=>{if(o.push({paramName:p,isOptional:m!=null}),m){let b=h.charAt(g+u.length);return b&&b!=="/"?"/([^\\/]*)":"(?:/([^\\/]*))?"}return"/([^\\/]+)"}).replace(/\/([\w-]+)\?(\/|$)/g,"(/$1)?$2");return e.endsWith("*")?(o.push({paramName:"*"}),l+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):s?l+="\\/*$":e!==""&&e!=="/"&&(l+="(?:(?=\\/|$))"),[new RegExp(l,t?void 0:"i"),o]}function CT(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return Da(!1,`The URL path "${e}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${t}).`),e}}function $s(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let s=t.endsWith("/")?t.length-1:t.length,o=e.charAt(s);return o&&o!=="/"?null:e.slice(s)||"/"}function ET(e,t="/"){let{pathname:s,search:o="",hash:l=""}=typeof e=="string"?Gl(e):e,c;return s?(s=uk(s),s.startsWith("/")?c=k1(s.substring(1),"/"):c=k1(s,t)):c=t,{pathname:c,search:TT(o),hash:AT(l)}}function k1(e,t){let s=Hd(t).split("/");return e.split("/").forEach(l=>{l===".."?s.length>1&&s.pop():l!=="."&&s.push(l)}),s.length>1?s.join("/"):"/"}function yg(e,t,s,o){return`Cannot include a '${e}' character in a manually specified \`to.${t}\` field [${JSON.stringify(o)}]. Please separate it out to the \`to.${s}\` field. Alternatively you may provide the full path as a string in <Link to="..."> and the router will parse it for you.`}function NT(e){return e.filter((t,s)=>s===0||t.route.path&&t.route.path.length>0)}function kx(e){let t=NT(e);return t.map((s,o)=>o===t.length-1?s.pathname:s.pathnameBase)}function bf(e,t,s,o=!1){let l;typeof e=="string"?l=Gl(e):(l={...e},en(!l.pathname||!l.pathname.includes("?"),yg("?","pathname","search",l)),en(!l.pathname||!l.pathname.includes("#"),yg("#","pathname","hash",l)),en(!l.search||!l.search.includes("#"),yg("#","search","hash",l)));let c=e===""||l.pathname==="",u=c?"/":l.pathname,p;if(u==null)p=s;else{let b=t.length-1;if(!o&&u.startsWith("..")){let _=u.split("/");for(;_[0]==="..";)_.shift(),b-=1;l.pathname=_.join("/")}p=b>=0?t[b]:"/"}let m=ET(l,p),g=u&&u!=="/"&&u.endsWith("/"),h=(c||u===".")&&s.endsWith("/");return!m.pathname.endsWith("/")&&(g||h)&&(m.pathname+="/"),m}var uk=e=>e.replace(/[\\/]{2,}/g,"/"),Va=e=>uk(e.join("/")),Hd=e=>e.replace(/\/+$/,""),RT=e=>Hd(e).replace(/^\/*/,"/"),TT=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,AT=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e,MT=class{constructor(e,t,s,o=!1){this.status=e,this.statusText=t||"",this.internal=o,s instanceof Error?(this.data=s.toString(),this.error=s):this.data=s}};function OT(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}function zT(e){let t=e.map(s=>s.route.path).filter(Boolean);return Va(t)||"/"}var dk=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function fk(e,t){let s=e;if(typeof s!="string"||!wx.test(s))return{absoluteURL:void 0,isExternal:!1,to:s};let o=s,l=!1;if(dk)try{let c=new URL(window.location.href),u=sk.test(s)?new URL(cT(s,c.protocol)):new URL(s),p=$s(u.pathname,t);u.origin===c.origin&&p!=null?s=p+u.search+u.hash:l=!0}catch{Da(!1,`<Link to="${s}"> contains an invalid URL which will probably break when clicked - please update to a valid URL path.`)}return{absoluteURL:o,isExternal:l,to:s}}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");var pk=["POST","PUT","PATCH","DELETE"];new Set(pk);var DT=["GET",...pk];new Set(DT);var LT=["about:","blob:","chrome:","chrome-untrusted:","content:","data:","devtools:","file:","filesystem:","javascript:"];function PT(e){try{return LT.includes(new URL(e).protocol)}catch{return!1}}var Yl=x.createContext(null);Yl.displayName="DataRouter";var vf=x.createContext(null);vf.displayName="DataRouterState";var mk=x.createContext(!1);function IT(){return x.useContext(mk)}var gk=x.createContext({isTransitioning:!1});gk.displayName="ViewTransition";var BT=x.createContext(new Map);BT.displayName="Fetchers";var UT=x.createContext(null);UT.displayName="Await";var va=x.createContext(null);va.displayName="Navigation";var Dc=x.createContext(null);Dc.displayName="Location";var $a=x.createContext({outlet:null,matches:[],isDataRoute:!1});$a.displayName="Route";var Sx=x.createContext(null);Sx.displayName="RouteError";var hk="REACT_ROUTER_ERROR",HT="REDIRECT",VT="ROUTE_ERROR_RESPONSE";function qT(e){if(e.startsWith(`${hk}:${HT}:{`))try{let t=JSON.parse(e.slice(28));if(typeof t=="object"&&t&&typeof t.status=="number"&&typeof t.statusText=="string"&&typeof t.location=="string"&&typeof t.reloadDocument=="boolean"&&typeof t.replace=="boolean")return t}catch{}}function $T(e){if(e.startsWith(`${hk}:${VT}:{`))try{let t=JSON.parse(e.slice(40));if(typeof t=="object"&&t&&typeof t.status=="number"&&typeof t.statusText=="string")return new MT(t.status,t.statusText,t.data)}catch{}}function FT(e,{relative:t}={}){en(Xl(),"useHref() may be used only in the context of a <Router> component.");let{basename:s,navigator:o}=x.useContext(va),{hash:l,pathname:c,search:u}=Lc(e,{relative:t}),p=c;return s!=="/"&&(p=c==="/"?s:Va([s,c])),o.createHref({pathname:p,search:u,hash:l})}function Xl(){return x.useContext(Dc)!=null}function Kn(){return en(Xl(),"useLocation() may be used only in the context of a <Router> component."),x.useContext(Dc).location}var xk="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function bk(e){x.useContext(va).static||x.useLayoutEffect(e)}function Qn(){let{isDataRoute:e}=x.useContext($a);return e?sA():GT()}function GT(){en(Xl(),"useNavigate() may be used only in the context of a <Router> component.");let e=x.useContext(Yl),{basename:t,navigator:s}=x.useContext(va),{matches:o}=x.useContext($a),{pathname:l}=Kn(),c=JSON.stringify(kx(o)),u=x.useRef(!1);return bk(()=>{u.current=!0}),x.useCallback((m,g={})=>{if(Da(u.current,xk),!u.current)return;if(typeof m=="number"){s.go(m);return}let h=bf(m,JSON.parse(c),l,g.relative==="path");e==null&&t!=="/"&&(h.pathname=h.pathname==="/"?t:Va([t,h.pathname])),(g.replace?s.replace:s.push)(h,g.state,g)},[t,s,c,l,e])}x.createContext(null);function vk(){let{matches:e}=x.useContext($a);return e[e.length-1]?.params??{}}function Lc(e,{relative:t}={}){let{matches:s}=x.useContext($a),{pathname:o}=Kn(),l=JSON.stringify(kx(s));return x.useMemo(()=>bf(e,JSON.parse(l),o,t==="path"),[e,l,o,t])}function YT(e,t){return _k(e,t)}function _k(e,t,s){en(Xl(),"useRoutes() may be used only in the context of a <Router> component.");let{navigator:o}=x.useContext(va),{matches:l}=x.useContext($a),c=l[l.length-1],u=c?c.params:{},p=c?c.pathname:"/",m=c?c.pathnameBase:"/",g=c&&c.route;{let w=g&&g.path||"";jk(p,!g||w.endsWith("*")||w.endsWith("*?"),`You rendered descendant <Routes> (or called \`useRoutes()\`) at "${p}" (under <Route path="${w}">) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render.
|
|
59
|
+
|
|
60
|
+
Please change the parent <Route path="${w}"> to <Route path="${w==="/"?"*":`${w}/*`}">.`)}let h=Kn(),b;if(t){let w=typeof t=="string"?Gl(t):t;en(m==="/"||w.pathname?.startsWith(m),`When overriding the location using \`<Routes location>\` or \`useRoutes(routes, location)\`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is "${m}" but pathname "${w.pathname}" was given in the \`location\` prop.`),b=w}else b=h;let _=b.pathname||"/",k=_;if(m!=="/"){let w=m.replace(/^\//,"").split("/");k="/"+_.replace(/^\//,"").split("/").slice(w.length).join("/")}let E=s&&s.state.matches.length?s.state.matches.map(w=>Object.assign(w,{route:s.manifest[w.route.id]||w.route})):rk(e,{pathname:k});Da(g||E!=null,`No routes matched location "${b.pathname}${b.search}${b.hash}" `),Da(E==null||E[E.length-1].route.element!==void 0||E[E.length-1].route.Component!==void 0||E[E.length-1].route.lazy!==void 0,`Matched leaf route at location "${b.pathname}${b.search}${b.hash}" does not have an element or Component. This means it will render an <Outlet /> with a null value by default resulting in an "empty" page.`);let j=WT(E&&E.map(w=>Object.assign({},w,{params:Object.assign({},u,w.params),pathname:Va([m,o.encodeLocation?o.encodeLocation(w.pathname.replace(/%/g,"%25").replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:w.pathname]),pathnameBase:w.pathnameBase==="/"?m:Va([m,o.encodeLocation?o.encodeLocation(w.pathnameBase.replace(/%/g,"%25").replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:w.pathnameBase])})),l,s);return t&&j?x.createElement(Dc.Provider,{value:{location:{pathname:"/",search:"",hash:"",state:null,key:"default",mask:void 0,...b},navigationType:"POP"}},j):j}function XT(){let e=aA(),t=OT(e)?`${e.status} ${e.statusText}`:e instanceof Error?e.message:JSON.stringify(e),s=e instanceof Error?e.stack:null,o="rgba(200,200,200, 0.5)",l={padding:"0.5rem",backgroundColor:o},c={padding:"2px 4px",backgroundColor:o},u=null;return console.error("Error handled by React Router default ErrorBoundary:",e),u=x.createElement(x.Fragment,null,x.createElement("p",null,"💿 Hey developer 👋"),x.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",x.createElement("code",{style:c},"ErrorBoundary")," or"," ",x.createElement("code",{style:c},"errorElement")," prop on your route.")),x.createElement(x.Fragment,null,x.createElement("h2",null,"Unexpected Application Error!"),x.createElement("h3",{style:{fontStyle:"italic"}},t),s?x.createElement("pre",{style:l},s):null,u)}var KT=x.createElement(XT,null),yk=class extends x.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location||t.revalidation!=="idle"&&e.revalidation==="idle"?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:e.error!==void 0?e.error:t.error,location:t.location,revalidation:e.revalidation||t.revalidation}}componentDidCatch(e,t){this.props.onError?this.props.onError(e,t):console.error("React Router caught the following error during render",e)}render(){let e=this.state.error;if(this.context&&typeof e=="object"&&e&&"digest"in e&&typeof e.digest=="string"){const s=$T(e.digest);s&&(e=s)}let t=e!==void 0?x.createElement($a.Provider,{value:this.props.routeContext},x.createElement(Sx.Provider,{value:e,children:this.props.component})):this.props.children;return this.context?x.createElement(QT,{error:e},t):t}};yk.contextType=mk;var jg=new WeakMap;function QT({children:e,error:t}){let{basename:s}=x.useContext(va);if(typeof t=="object"&&t&&"digest"in t&&typeof t.digest=="string"){let o=qT(t.digest);if(o){let l=jg.get(t);if(l)throw l;let c=fk(o.location,s),u=c.absoluteURL||c.to;if(PT(u))throw new Error("Invalid redirect location");if(dk&&!jg.get(t))if(c.isExternal||o.reloadDocument)window.location.href=u;else{const p=Promise.resolve().then(()=>window.__reactRouterDataRouter.navigate(c.to,{replace:o.replace}));throw jg.set(t,p),p}return x.createElement("meta",{httpEquiv:"refresh",content:`0;url=${u}`})}}return e}function ZT({routeContext:e,match:t,children:s}){let o=x.useContext(Yl);return o&&o.static&&o.staticContext&&(t.route.errorElement||t.route.ErrorBoundary)&&(o.staticContext._deepestRenderedBoundaryId=t.route.id),x.createElement($a.Provider,{value:e},s)}function WT(e,t=[],s){let o=s?.state;if(e==null){if(!o)return null;if(o.errors)e=o.matches;else if(t.length===0&&!o.initialized&&o.matches.length>0)e=o.matches;else return null}let l=e,c=o?.errors;if(c!=null){let h=l.findIndex(b=>b.route.id&&c?.[b.route.id]!==void 0);en(h>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(c).join(",")}`),l=l.slice(0,Math.min(l.length,h+1))}let u=!1,p=-1;if(s&&o){u=o.renderFallback;for(let h=0;h<l.length;h++){let b=l[h];if((b.route.HydrateFallback||b.route.hydrateFallbackElement)&&(p=h),b.route.id){let{loaderData:_,errors:k}=o,E=b.route.loader&&!_.hasOwnProperty(b.route.id)&&(!k||k[b.route.id]===void 0);if(b.route.lazy||E){s.isStatic&&(u=!0),p>=0?l=l.slice(0,p+1):l=[l[0]];break}}}}let m=s?.onError,g=o&&m?(h,b)=>{m(h,{location:o.location,params:o.matches?.[0]?.params??{},pattern:zT(o.matches),errorInfo:b})}:void 0;return l.reduceRight((h,b,_)=>{let k,E=!1,j=null,w=null;o&&(k=c&&b.route.id?c[b.route.id]:void 0,j=b.route.errorElement||KT,u&&(p<0&&_===0?(jk("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),E=!0,w=null):p===_&&(E=!0,w=b.route.hydrateFallbackElement||null)));let S=t.concat(l.slice(0,_+1)),C=()=>{let N;return k?N=j:E?N=w:b.route.Component?N=x.createElement(b.route.Component,null):b.route.element?N=b.route.element:N=h,x.createElement(ZT,{match:b,routeContext:{outlet:h,matches:S,isDataRoute:o!=null},children:N})};return o&&(b.route.ErrorBoundary||b.route.errorElement||_===0)?x.createElement(yk,{location:o.location,revalidation:o.revalidation,component:j,error:k,children:C(),routeContext:{outlet:null,matches:S,isDataRoute:!0},onError:g}):C()},null)}function Cx(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function JT(e){let t=x.useContext(Yl);return en(t,Cx(e)),t}function eA(e){let t=x.useContext(vf);return en(t,Cx(e)),t}function tA(e){let t=x.useContext($a);return en(t,Cx(e)),t}function Ex(e){let t=tA(e),s=t.matches[t.matches.length-1];return en(s.route.id,`${e} can only be used on routes that contain a unique "id"`),s.route.id}function nA(){return Ex("useRouteId")}function aA(){let e=x.useContext(Sx),t=eA("useRouteError"),s=Ex("useRouteError");return e!==void 0?e:t.errors?.[s]}function sA(){let{router:e}=JT("useNavigate"),t=Ex("useNavigate"),s=x.useRef(!1);return bk(()=>{s.current=!0}),x.useCallback(async(l,c={})=>{Da(s.current,xk),s.current&&(typeof l=="number"?await e.navigate(l):await e.navigate(l,{fromRouteId:t,...c}))},[e,t])}var S1={};function jk(e,t,s){!t&&!S1[e]&&(S1[e]=!0,Da(!1,s))}x.memo(rA);function rA({routes:e,manifest:t,future:s,state:o,isStatic:l,onError:c}){return _k(e,void 0,{manifest:t,state:o,isStatic:l,onError:c})}function oA({to:e,replace:t,state:s,relative:o}){en(Xl(),"<Navigate> may be used only in the context of a <Router> component.");let{static:l}=x.useContext(va);Da(!l,"<Navigate> must not be used on the initial render in a <StaticRouter>. This is a no-op, but you should modify your code so the <Navigate> is only ever rendered in response to some user interaction or state change.");let{matches:c}=x.useContext($a),{pathname:u}=Kn(),p=Qn(),m=bf(e,kx(c),u,o==="path"),g=JSON.stringify(m);return x.useEffect(()=>{p(JSON.parse(g),{replace:t,state:s,relative:o})},[p,g,o,t,s]),null}function qt(e){en(!1,"A <Route> is only ever to be used as the child of <Routes> element, never rendered directly. Please wrap your <Route> in a <Routes>.")}function lA({basename:e="/",children:t=null,location:s,navigationType:o="POP",navigator:l,static:c=!1,useTransitions:u}){en(!Xl(),"You cannot render a <Router> inside another <Router>. You should never have more than one in your app.");let p=e.replace(/^\/*/,"/"),m=x.useMemo(()=>({basename:p,navigator:l,static:c,useTransitions:u,future:{}}),[p,l,c,u]);typeof s=="string"&&(s=Gl(s));let{pathname:g="/",search:h="",hash:b="",state:_=null,key:k="default",mask:E}=s,j=x.useMemo(()=>{let w=$s(g,p);return w==null?null:{location:{pathname:w,search:h,hash:b,state:_,key:k,mask:E},navigationType:o}},[p,g,h,b,_,k,o,E]);return Da(j!=null,`<Router basename="${p}"> is not able to match the URL "${g}${h}${b}" because it does not start with the basename, so the <Router> won't render anything.`),j==null?null:x.createElement(va.Provider,{value:m},x.createElement(Dc.Provider,{children:t,value:j}))}function wk({children:e,location:t}){return YT(Oh(e),t)}function Oh(e,t=[]){let s=[];return x.Children.forEach(e,(o,l)=>{if(!x.isValidElement(o))return;let c=[...t,l];if(o.type===x.Fragment){s.push.apply(s,Oh(o.props.children,c));return}en(o.type===qt,`[${typeof o.type=="string"?o.type:o.type.name}] is not a <Route> component. All component children of <Routes> must be a <Route> or <React.Fragment>`),en(!o.props.index||!o.props.children,"An index route cannot have child routes.");let u={id:o.props.id||c.join("-"),caseSensitive:o.props.caseSensitive,element:o.props.element,Component:o.props.Component,index:o.props.index,path:o.props.path,middleware:o.props.middleware,loader:o.props.loader,action:o.props.action,hydrateFallbackElement:o.props.hydrateFallbackElement,HydrateFallback:o.props.HydrateFallback,errorElement:o.props.errorElement,ErrorBoundary:o.props.ErrorBoundary,hasErrorBoundary:o.props.hasErrorBoundary===!0||o.props.ErrorBoundary!=null||o.props.errorElement!=null,shouldRevalidate:o.props.shouldRevalidate,handle:o.props.handle,lazy:o.props.lazy};o.props.children&&(u.children=Oh(o.props.children,c)),s.push(u)}),s}var Ad="get",Md="application/x-www-form-urlencoded";function _f(e){return typeof HTMLElement<"u"&&e instanceof HTMLElement}function iA(e){return _f(e)&&e.tagName.toLowerCase()==="button"}function cA(e){return _f(e)&&e.tagName.toLowerCase()==="form"}function uA(e){return _f(e)&&e.tagName.toLowerCase()==="input"}function dA(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function fA(e,t){return e.button===0&&(!t||t==="_self")&&!dA(e)}function zh(e=""){return new URLSearchParams(typeof e=="string"||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce((t,s)=>{let o=e[s];return t.concat(Array.isArray(o)?o.map(l=>[s,l]):[[s,o]])},[]))}function pA(e,t){let s=zh(e);return t&&t.forEach((o,l)=>{s.has(l)||t.getAll(l).forEach(c=>{s.append(l,c)})}),s}var od=null;function mA(){if(od===null)try{new FormData(document.createElement("form"),0),od=!1}catch{od=!0}return od}var gA=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function wg(e){return e!=null&&!gA.has(e)?(Da(!1,`"${e}" is not a valid \`encType\` for \`<Form>\`/\`<fetcher.Form>\` and will default to "${Md}"`),null):e}function hA(e,t){let s,o,l,c,u;if(cA(e)){let p=e.getAttribute("action");o=p?$s(p,t):null,s=e.getAttribute("method")||Ad,l=wg(e.getAttribute("enctype"))||Md,c=new FormData(e)}else if(iA(e)||uA(e)&&(e.type==="submit"||e.type==="image")){let p=e.form;if(p==null)throw new Error('Cannot submit a <button> or <input type="submit"> without a <form>');let m=e.getAttribute("formaction")||p.getAttribute("action");if(o=m?$s(m,t):null,s=e.getAttribute("formmethod")||p.getAttribute("method")||Ad,l=wg(e.getAttribute("formenctype"))||wg(p.getAttribute("enctype"))||Md,c=new FormData(p,e),!mA()){let{name:g,type:h,value:b}=e;if(h==="image"){let _=g?`${g}.`:"";c.append(`${_}x`,"0"),c.append(`${_}y`,"0")}else g&&c.append(g,b)}}else{if(_f(e))throw new Error('Cannot submit element that is not <form>, <button>, or <input type="submit|image">');s=Ad,o=null,l=Md,u=e}return c&&l==="text/plain"&&(u=c,c=void 0),{action:o,method:s.toLowerCase(),encType:l,formData:c,body:u}}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");function Nx(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}function kk(e,t,s,o){let l=typeof e=="string"?new URL(e,typeof window>"u"?"server://singlefetch/":window.location.origin):e;return s?l.pathname.endsWith("/")?l.pathname=`${l.pathname}_.${o}`:l.pathname=`${l.pathname}.${o}`:l.pathname==="/"?l.pathname=`_root.${o}`:t&&$s(l.pathname,t)==="/"?l.pathname=`${Hd(t)}/_root.${o}`:l.pathname=`${Hd(l.pathname)}.${o}`,l}async function xA(e,t){if(e.id in t)return t[e.id];try{let s=await import(e.module);return t[e.id]=s,s}catch(s){return console.error(`Error loading route module \`${e.module}\`, reloading page...`),console.error(s),window.__reactRouterContext&&window.__reactRouterContext.isSpaMode,window.location.reload(),new Promise(()=>{})}}function bA(e){return e==null?!1:e.href==null?e.rel==="preload"&&typeof e.imageSrcSet=="string"&&typeof e.imageSizes=="string":typeof e.rel=="string"&&typeof e.href=="string"}async function vA(e,t,s){let o=await Promise.all(e.map(async l=>{let c=t.routes[l.route.id];if(c){let u=await xA(c,s);return u.links?u.links():[]}return[]}));return wA(o.flat(1).filter(bA).filter(l=>l.rel==="stylesheet"||l.rel==="preload").map(l=>l.rel==="stylesheet"?{...l,rel:"prefetch",as:"style"}:{...l,rel:"prefetch"}))}function C1(e,t,s,o,l,c){let u=(m,g)=>s[g]?m.route.id!==s[g].route.id:!0,p=(m,g)=>s[g].pathname!==m.pathname||s[g].route.path?.endsWith("*")&&s[g].params["*"]!==m.params["*"];return c==="assets"?t.filter((m,g)=>u(m,g)||p(m,g)):c==="data"?t.filter((m,g)=>{let h=o.routes[m.route.id];if(!h||!h.hasLoader)return!1;if(u(m,g)||p(m,g))return!0;if(m.route.shouldRevalidate){let b=m.route.shouldRevalidate({currentUrl:new URL(l.pathname+l.search+l.hash,window.origin),currentParams:s[0]?.params||{},nextUrl:new URL(e,window.origin),nextParams:m.params,defaultShouldRevalidate:!0});if(typeof b=="boolean")return b}return!0}):[]}function _A(e,t,{includeHydrateFallback:s}={}){return yA(e.map(o=>{let l=t.routes[o.route.id];if(!l)return[];let c=[l.module];return l.clientActionModule&&(c=c.concat(l.clientActionModule)),l.clientLoaderModule&&(c=c.concat(l.clientLoaderModule)),s&&l.hydrateFallbackModule&&(c=c.concat(l.hydrateFallbackModule)),l.imports&&(c=c.concat(l.imports)),c}).flat(1))}function yA(e){return[...new Set(e)]}function jA(e){let t={},s=Object.keys(e).sort();for(let o of s)t[o]=e[o];return t}function wA(e,t){let s=new Set;return new Set(t),e.reduce((o,l)=>{let c=JSON.stringify(jA(l));return s.has(c)||(s.add(c),o.push({key:c,link:l})),o},[])}function Rx(){let e=x.useContext(Yl);return Nx(e,"You must render this element inside a <DataRouterContext.Provider> element"),e}function kA(){let e=x.useContext(vf);return Nx(e,"You must render this element inside a <DataRouterStateContext.Provider> element"),e}var Tx=x.createContext(void 0);Tx.displayName="FrameworkContext";function yf(){let e=x.useContext(Tx);return Nx(e,"You must render this element inside a <HydratedRouter> element"),e}function SA(e,t){let s=x.useContext(Tx),[o,l]=x.useState(!1),[c,u]=x.useState(!1),{onFocus:p,onBlur:m,onMouseEnter:g,onMouseLeave:h,onTouchStart:b}=t,_=x.useRef(null);x.useEffect(()=>{if(e==="render"&&u(!0),e==="viewport"){let j=S=>{S.forEach(C=>{u(C.isIntersecting)})},w=new IntersectionObserver(j,{threshold:.5});return _.current&&w.observe(_.current),()=>{w.disconnect()}}},[e]),x.useEffect(()=>{if(o){let j=setTimeout(()=>{u(!0)},100);return()=>{clearTimeout(j)}}},[o]);let k=()=>{l(!0)},E=()=>{l(!1),u(!1)};return s?e!=="intent"?[c,_,{}]:[c,_,{onFocus:Fi(p,k),onBlur:Fi(m,E),onMouseEnter:Fi(g,k),onMouseLeave:Fi(h,E),onTouchStart:Fi(b,k)}]:[!1,_,{}]}function Fi(e,t){return s=>{e&&e(s),s.defaultPrevented||t(s)}}function CA({page:e,...t}){let s=IT(),{nonce:o}=yf(),{router:l}=Rx(),c=x.useMemo(()=>rk(l.routes,e,l.basename),[l.routes,e,l.basename]);return c?(t.nonce==null&&o&&(t={...t,nonce:o}),s?x.createElement(NA,{page:e,matches:c,...t}):x.createElement(RA,{page:e,matches:c,...t})):null}function EA(e){let{manifest:t,routeModules:s}=yf(),[o,l]=x.useState([]);return x.useEffect(()=>{let c=!1;return vA(e,t,s).then(u=>{c||l(u)}),()=>{c=!0}},[e,t,s]),o}function NA({page:e,matches:t,...s}){let o=Kn(),{future:l}=yf(),{basename:c}=Rx(),u=x.useMemo(()=>{if(e===o.pathname+o.search+o.hash)return[];let p=kk(e,c,l.v8_trailingSlashAwareDataRequests,"rsc"),m=!1,g=[];for(let h of t)typeof h.route.shouldRevalidate=="function"?m=!0:g.push(h.route.id);return m&&g.length>0&&p.searchParams.set("_routes",g.join(",")),[p.pathname+p.search]},[c,l.v8_trailingSlashAwareDataRequests,e,o,t]);return x.createElement(x.Fragment,null,u.map(p=>x.createElement("link",{key:p,rel:"prefetch",as:"fetch",href:p,...s})))}function RA({page:e,matches:t,...s}){let o=Kn(),{future:l,manifest:c,routeModules:u}=yf(),{basename:p}=Rx(),{loaderData:m,matches:g}=kA(),h=x.useMemo(()=>C1(e,t,g,c,o,"data"),[e,t,g,c,o]),b=x.useMemo(()=>C1(e,t,g,c,o,"assets"),[e,t,g,c,o]),_=x.useMemo(()=>{if(e===o.pathname+o.search+o.hash)return[];let j=new Set,w=!1;if(t.forEach(C=>{let N=c.routes[C.route.id];!N||!N.hasLoader||(!h.some(R=>R.route.id===C.route.id)&&C.route.id in m&&u[C.route.id]?.shouldRevalidate||N.hasClientLoader?w=!0:j.add(C.route.id))}),j.size===0)return[];let S=kk(e,p,l.v8_trailingSlashAwareDataRequests,"data");return w&&j.size>0&&S.searchParams.set("_routes",t.filter(C=>j.has(C.route.id)).map(C=>C.route.id).join(",")),[S.pathname+S.search]},[p,l.v8_trailingSlashAwareDataRequests,m,o,c,h,t,e,u]),k=x.useMemo(()=>_A(b,c),[b,c]),E=EA(b);return x.createElement(x.Fragment,null,_.map(j=>x.createElement("link",{key:j,rel:"prefetch",as:"fetch",href:j,...s})),k.map(j=>x.createElement("link",{key:j,rel:"modulepreload",href:j,...s})),E.map(({key:j,link:w})=>x.createElement("link",{key:j,nonce:s.nonce,...w,crossOrigin:w.crossOrigin??s.crossOrigin})))}function TA(...e){return t=>{e.forEach(s=>{typeof s=="function"?s(t):s!=null&&(s.current=t)})}}var AA=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";try{AA&&(window.__reactRouterVersion="7.18.0")}catch{}function MA({basename:e,children:t,useTransitions:s,window:o}){let l=x.useRef();l.current==null&&(l.current=uT({window:o,v5Compat:!0}));let c=l.current,[u,p]=x.useState({action:c.action,location:c.location}),m=x.useCallback(g=>{s===!1?p(g):x.startTransition(()=>p(g))},[s]);return x.useLayoutEffect(()=>c.listen(m),[c,m]),x.createElement(lA,{basename:e,children:t,location:u.location,navigationType:u.action,navigator:c,useTransitions:s})}var Ax=x.forwardRef(function({onClick:t,discover:s="render",prefetch:o="none",relative:l,reloadDocument:c,replace:u,mask:p,state:m,target:g,to:h,preventScrollReset:b,viewTransition:_,defaultShouldRevalidate:k,...E},j){let{basename:w,navigator:S,useTransitions:C}=x.useContext(va),N=typeof h=="string"&&wx.test(h),R=fk(h,w);h=R.to;let A=FT(h,{relative:l}),T=Kn(),M=null;if(p){let G=bf(p,[],T.mask?T.mask.pathname:"/",!0);w!=="/"&&(G.pathname=G.pathname==="/"?w:Va([w,G.pathname])),M=S.createHref(G)}let[z,P,D]=SA(o,E),I=DA(h,{replace:u,mask:p,state:m,target:g,preventScrollReset:b,relative:l,viewTransition:_,defaultShouldRevalidate:k,useTransitions:C});function B(G){t&&t(G),G.defaultPrevented||I(G)}let V=!(R.isExternal||c),H=x.createElement("a",{...E,...D,href:(V?M:void 0)||R.absoluteURL||A,onClick:V?B:t,ref:TA(j,P),target:g,"data-discover":!N&&s==="render"?"true":void 0});return z&&!N?x.createElement(x.Fragment,null,H,x.createElement(CA,{page:A})):H});Ax.displayName="Link";var Sk=x.forwardRef(function({"aria-current":t="page",caseSensitive:s=!1,className:o="",end:l=!1,style:c,to:u,viewTransition:p,children:m,...g},h){let b=Lc(u,{relative:g.relative}),_=Kn(),k=x.useContext(vf),{navigator:E,basename:j}=x.useContext(va),w=k!=null&&UA(b)&&p===!0,S=E.encodeLocation?E.encodeLocation(b).pathname:b.pathname,C=_.pathname,N=k&&k.navigation&&k.navigation.location?k.navigation.location.pathname:null;s||(C=C.toLowerCase(),N=N?N.toLowerCase():null,S=S.toLowerCase()),N&&j&&(N=$s(N,j)||N);const R=S!=="/"&&S.endsWith("/")?S.length-1:S.length;let A=C===S||!l&&C.startsWith(S)&&C.charAt(R)==="/",T=N!=null&&(N===S||!l&&N.startsWith(S)&&N.charAt(S.length)==="/"),M={isActive:A,isPending:T,isTransitioning:w},z=A?t:void 0,P;typeof o=="function"?P=o(M):P=[o,A?"active":null,T?"pending":null,w?"transitioning":null].filter(Boolean).join(" ");let D=typeof c=="function"?c(M):c;return x.createElement(Ax,{...g,"aria-current":z,className:P,ref:h,style:D,to:u,viewTransition:p},typeof m=="function"?m(M):m)});Sk.displayName="NavLink";var OA=x.forwardRef(({discover:e="render",fetcherKey:t,navigate:s,reloadDocument:o,replace:l,state:c,method:u=Ad,action:p,onSubmit:m,relative:g,preventScrollReset:h,viewTransition:b,defaultShouldRevalidate:_,...k},E)=>{let{useTransitions:j}=x.useContext(va),w=IA(),S=BA(p,{relative:g}),C=u.toLowerCase()==="get"?"get":"post",N=typeof p=="string"&&wx.test(p),R=A=>{if(m&&m(A),A.defaultPrevented)return;A.preventDefault();let T=A.nativeEvent.submitter,M=T?.getAttribute("formmethod")||u,z=()=>w(T||A.currentTarget,{fetcherKey:t,method:M,navigate:s,replace:l,state:c,relative:g,preventScrollReset:h,viewTransition:b,defaultShouldRevalidate:_});j&&s!==!1?x.startTransition(()=>z()):z()};return x.createElement("form",{ref:E,method:C,action:S,onSubmit:o?m:R,...k,"data-discover":!N&&e==="render"?"true":void 0})});OA.displayName="Form";function zA(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function Ck(e){let t=x.useContext(Yl);return en(t,zA(e)),t}function DA(e,{target:t,replace:s,mask:o,state:l,preventScrollReset:c,relative:u,viewTransition:p,defaultShouldRevalidate:m,useTransitions:g}={}){let h=Qn(),b=Kn(),_=Lc(e,{relative:u});return x.useCallback(k=>{if(fA(k,t)){k.preventDefault();let E=s!==void 0?s:wc(b)===wc(_),j=()=>h(e,{replace:E,mask:o,state:l,preventScrollReset:c,relative:u,viewTransition:p,defaultShouldRevalidate:m});g?x.startTransition(()=>j()):j()}},[b,h,_,s,o,l,t,e,c,u,p,m,g])}function jf(e){Da(typeof URLSearchParams<"u","You cannot use the `useSearchParams` hook in a browser that does not support the URLSearchParams API. If you need to support Internet Explorer 11, we recommend you load a polyfill such as https://github.com/ungap/url-search-params.");let t=x.useRef(zh(e)),s=x.useRef(!1),o=Kn(),l=x.useMemo(()=>pA(o.search,s.current?null:t.current),[o.search]),c=Qn(),u=x.useCallback((p,m)=>{const g=zh(typeof p=="function"?p(new URLSearchParams(l)):p);s.current=!0,c("?"+g,m)},[c,l]);return[l,u]}var LA=0,PA=()=>`__${String(++LA)}__`;function IA(){let{router:e}=Ck("useSubmit"),{basename:t}=x.useContext(va),s=nA(),o=e.fetch,l=e.navigate;return x.useCallback(async(c,u={})=>{let{action:p,method:m,encType:g,formData:h,body:b}=hA(c,t);if(u.navigate===!1){let _=u.fetcherKey||PA();await o(_,s,u.action||p,{defaultShouldRevalidate:u.defaultShouldRevalidate,preventScrollReset:u.preventScrollReset,formData:h,body:b,formMethod:u.method||m,formEncType:u.encType||g,flushSync:u.flushSync})}else await l(u.action||p,{defaultShouldRevalidate:u.defaultShouldRevalidate,preventScrollReset:u.preventScrollReset,formData:h,body:b,formMethod:u.method||m,formEncType:u.encType||g,replace:u.replace,state:u.state,fromRouteId:s,flushSync:u.flushSync,viewTransition:u.viewTransition})},[o,l,t,s])}function BA(e,{relative:t}={}){let{basename:s}=x.useContext(va),o=x.useContext($a);en(o,"useFormAction must be used inside a RouteContext");let[l]=o.matches.slice(-1),c={...Lc(e||".",{relative:t})},u=Kn();if(e==null){c.search=u.search;let p=new URLSearchParams(c.search),m=p.getAll("index");if(m.some(h=>h==="")){p.delete("index"),m.filter(b=>b).forEach(b=>p.append("index",b));let h=p.toString();c.search=h?`?${h}`:""}}return(!e||e===".")&&l.route.index&&(c.search=c.search?c.search.replace(/^\?/,"?index&"):"?index"),s!=="/"&&(c.pathname=c.pathname==="/"?s:Va([s,c.pathname])),wc(c)}function UA(e,{relative:t}={}){let s=x.useContext(gk);en(s!=null,"`useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`. Did you accidentally import `RouterProvider` from `react-router`?");let{basename:o}=Ck("useViewTransitionState"),l=Lc(e,{relative:t});if(!s.isTransitioning)return!1;let c=$s(s.currentLocation.pathname,o)||s.currentLocation.pathname,u=$s(s.nextLocation.pathname,o)||s.nextLocation.pathname;return Ud(l.pathname,u)!=null||Ud(l.pathname,c)!=null}var is=ak();/**
|
|
61
|
+
* @license lucide-react v0.469.0 - ISC
|
|
62
|
+
*
|
|
63
|
+
* This source code is licensed under the ISC license.
|
|
64
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
65
|
+
*/const HA=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),Ek=(...e)=>e.filter((t,s,o)=>!!t&&t.trim()!==""&&o.indexOf(t)===s).join(" ").trim();/**
|
|
66
|
+
* @license lucide-react v0.469.0 - ISC
|
|
67
|
+
*
|
|
68
|
+
* This source code is licensed under the ISC license.
|
|
69
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
70
|
+
*/var VA={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"};/**
|
|
71
|
+
* @license lucide-react v0.469.0 - ISC
|
|
72
|
+
*
|
|
73
|
+
* This source code is licensed under the ISC license.
|
|
74
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
75
|
+
*/const qA=x.forwardRef(({color:e="currentColor",size:t=24,strokeWidth:s=2,absoluteStrokeWidth:o,className:l="",children:c,iconNode:u,...p},m)=>x.createElement("svg",{ref:m,...VA,width:t,height:t,stroke:e,strokeWidth:o?Number(s)*24/Number(t):s,className:Ek("lucide",l),...p},[...u.map(([g,h])=>x.createElement(g,h)),...Array.isArray(c)?c:[c]]));/**
|
|
76
|
+
* @license lucide-react v0.469.0 - ISC
|
|
77
|
+
*
|
|
78
|
+
* This source code is licensed under the ISC license.
|
|
79
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
80
|
+
*/const Se=(e,t)=>{const s=x.forwardRef(({className:o,...l},c)=>x.createElement(qA,{ref:c,iconNode:t,className:Ek(`lucide-${HA(e)}`,o),...l}));return s.displayName=`${e}`,s};/**
|
|
81
|
+
* @license lucide-react v0.469.0 - ISC
|
|
82
|
+
*
|
|
83
|
+
* This source code is licensed under the ISC license.
|
|
84
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
85
|
+
*/const Nk=Se("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"}]]);/**
|
|
86
|
+
* @license lucide-react v0.469.0 - ISC
|
|
87
|
+
*
|
|
88
|
+
* This source code is licensed under the ISC license.
|
|
89
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
90
|
+
*/const Rk=Se("ArrowDownLeft",[["path",{d:"M17 7 7 17",key:"15tmo1"}],["path",{d:"M17 17H7V7",key:"1org7z"}]]);/**
|
|
91
|
+
* @license lucide-react v0.469.0 - ISC
|
|
92
|
+
*
|
|
93
|
+
* This source code is licensed under the ISC license.
|
|
94
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
95
|
+
*/const $A=Se("ArrowLeft",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);/**
|
|
96
|
+
* @license lucide-react v0.469.0 - ISC
|
|
97
|
+
*
|
|
98
|
+
* This source code is licensed under the ISC license.
|
|
99
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
100
|
+
*/const Tk=Se("ArrowRight",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);/**
|
|
101
|
+
* @license lucide-react v0.469.0 - ISC
|
|
102
|
+
*
|
|
103
|
+
* This source code is licensed under the ISC license.
|
|
104
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
105
|
+
*/const Ak=Se("ArrowUpRight",[["path",{d:"M7 7h10v10",key:"1tivn9"}],["path",{d:"M7 17 17 7",key:"1vkiza"}]]);/**
|
|
106
|
+
* @license lucide-react v0.469.0 - ISC
|
|
107
|
+
*
|
|
108
|
+
* This source code is licensed under the ISC license.
|
|
109
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
110
|
+
*/const FA=Se("ArrowUp",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]]);/**
|
|
111
|
+
* @license lucide-react v0.469.0 - ISC
|
|
112
|
+
*
|
|
113
|
+
* This source code is licensed under the ISC license.
|
|
114
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
115
|
+
*/const GA=Se("Ban",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m4.9 4.9 14.2 14.2",key:"1m5liu"}]]);/**
|
|
116
|
+
* @license lucide-react v0.469.0 - ISC
|
|
117
|
+
*
|
|
118
|
+
* This source code is licensed under the ISC license.
|
|
119
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
120
|
+
*/const YA=Se("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"}]]);/**
|
|
121
|
+
* @license lucide-react v0.469.0 - ISC
|
|
122
|
+
*
|
|
123
|
+
* This source code is licensed under the ISC license.
|
|
124
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
125
|
+
*/const hn=Se("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"}]]);/**
|
|
126
|
+
* @license lucide-react v0.469.0 - ISC
|
|
127
|
+
*
|
|
128
|
+
* This source code is licensed under the ISC license.
|
|
129
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
130
|
+
*/const XA=Se("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"}]]);/**
|
|
131
|
+
* @license lucide-react v0.469.0 - ISC
|
|
132
|
+
*
|
|
133
|
+
* This source code is licensed under the ISC license.
|
|
134
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
135
|
+
*/const KA=Se("Braces",[["path",{d:"M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5c0 1.1.9 2 2 2h1",key:"ezmyqa"}],["path",{d:"M16 21h1a2 2 0 0 0 2-2v-5c0-1.1.9-2 2-2a2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1",key:"e1hn23"}]]);/**
|
|
136
|
+
* @license lucide-react v0.469.0 - ISC
|
|
137
|
+
*
|
|
138
|
+
* This source code is licensed under the ISC license.
|
|
139
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
140
|
+
*/const Vd=Se("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"}]]);/**
|
|
141
|
+
* @license lucide-react v0.469.0 - ISC
|
|
142
|
+
*
|
|
143
|
+
* This source code is licensed under the ISC license.
|
|
144
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
145
|
+
*/const ho=Se("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);/**
|
|
146
|
+
* @license lucide-react v0.469.0 - ISC
|
|
147
|
+
*
|
|
148
|
+
* This source code is licensed under the ISC license.
|
|
149
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
150
|
+
*/const Zs=Se("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);/**
|
|
151
|
+
* @license lucide-react v0.469.0 - ISC
|
|
152
|
+
*
|
|
153
|
+
* This source code is licensed under the ISC license.
|
|
154
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
155
|
+
*/const Pc=Se("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);/**
|
|
156
|
+
* @license lucide-react v0.469.0 - ISC
|
|
157
|
+
*
|
|
158
|
+
* This source code is licensed under the ISC license.
|
|
159
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
160
|
+
*/const Mk=Se("ChevronUp",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]]);/**
|
|
161
|
+
* @license lucide-react v0.469.0 - ISC
|
|
162
|
+
*
|
|
163
|
+
* This source code is licensed under the ISC license.
|
|
164
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
165
|
+
*/const QA=Se("ChevronsUpDown",[["path",{d:"m7 15 5 5 5-5",key:"1hf1tw"}],["path",{d:"m7 9 5-5 5 5",key:"sgt6xg"}]]);/**
|
|
166
|
+
* @license lucide-react v0.469.0 - ISC
|
|
167
|
+
*
|
|
168
|
+
* This source code is licensed under the ISC license.
|
|
169
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
170
|
+
*/const Mx=Se("CircleCheck",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);/**
|
|
171
|
+
* @license lucide-react v0.469.0 - ISC
|
|
172
|
+
*
|
|
173
|
+
* This source code is licensed under the ISC license.
|
|
174
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
175
|
+
*/const ZA=Se("CircleX",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);/**
|
|
176
|
+
* @license lucide-react v0.469.0 - ISC
|
|
177
|
+
*
|
|
178
|
+
* This source code is licensed under the ISC license.
|
|
179
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
180
|
+
*/const WA=Se("Circle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);/**
|
|
181
|
+
* @license lucide-react v0.469.0 - ISC
|
|
182
|
+
*
|
|
183
|
+
* This source code is licensed under the ISC license.
|
|
184
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
185
|
+
*/const JA=Se("ClipboardList",[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2",key:"116196"}],["path",{d:"M12 11h4",key:"1jrz19"}],["path",{d:"M12 16h4",key:"n85exb"}],["path",{d:"M8 11h.01",key:"1dfujw"}],["path",{d:"M8 16h.01",key:"18s6g9"}]]);/**
|
|
186
|
+
* @license lucide-react v0.469.0 - ISC
|
|
187
|
+
*
|
|
188
|
+
* This source code is licensed under the ISC license.
|
|
189
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
190
|
+
*/const eM=Se("Clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]]);/**
|
|
191
|
+
* @license lucide-react v0.469.0 - ISC
|
|
192
|
+
*
|
|
193
|
+
* This source code is licensed under the ISC license.
|
|
194
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
195
|
+
*/const tM=Se("Cloud",[["path",{d:"M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z",key:"p7xjir"}]]);/**
|
|
196
|
+
* @license lucide-react v0.469.0 - ISC
|
|
197
|
+
*
|
|
198
|
+
* This source code is licensed under the ISC license.
|
|
199
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
200
|
+
*/const qd=Se("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"}]]);/**
|
|
201
|
+
* @license lucide-react v0.469.0 - ISC
|
|
202
|
+
*
|
|
203
|
+
* This source code is licensed under the ISC license.
|
|
204
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
205
|
+
*/const nM=Se("CornerDownLeft",[["polyline",{points:"9 10 4 15 9 20",key:"r3jprv"}],["path",{d:"M20 4v7a4 4 0 0 1-4 4H4",key:"6o5b7l"}]]);/**
|
|
206
|
+
* @license lucide-react v0.469.0 - ISC
|
|
207
|
+
*
|
|
208
|
+
* This source code is licensed under the ISC license.
|
|
209
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
210
|
+
*/const aM=Se("CornerDownRight",[["polyline",{points:"15 10 20 15 15 20",key:"1q7qjw"}],["path",{d:"M4 4v7a4 4 0 0 0 4 4h12",key:"z08zvw"}]]);/**
|
|
211
|
+
* @license lucide-react v0.469.0 - ISC
|
|
212
|
+
*
|
|
213
|
+
* This source code is licensed under the ISC license.
|
|
214
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
215
|
+
*/const Ox=Se("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"}]]);/**
|
|
216
|
+
* @license lucide-react v0.469.0 - ISC
|
|
217
|
+
*
|
|
218
|
+
* This source code is licensed under the ISC license.
|
|
219
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
220
|
+
*/const Fs=Se("Crown",[["path",{d:"M11.562 3.266a.5.5 0 0 1 .876 0L15.39 8.87a1 1 0 0 0 1.516.294L21.183 5.5a.5.5 0 0 1 .798.519l-2.834 10.246a1 1 0 0 1-.956.734H5.81a1 1 0 0 1-.957-.734L2.02 6.02a.5.5 0 0 1 .798-.519l4.276 3.664a1 1 0 0 0 1.516-.294z",key:"1vdc57"}],["path",{d:"M5 21h14",key:"11awu3"}]]);/**
|
|
221
|
+
* @license lucide-react v0.469.0 - ISC
|
|
222
|
+
*
|
|
223
|
+
* This source code is licensed under the ISC license.
|
|
224
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
225
|
+
*/const Ok=Se("Database",[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]]);/**
|
|
226
|
+
* @license lucide-react v0.469.0 - ISC
|
|
227
|
+
*
|
|
228
|
+
* This source code is licensed under the ISC license.
|
|
229
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
230
|
+
*/const sM=Se("Eraser",[["path",{d:"m7 21-4.3-4.3c-1-1-1-2.5 0-3.4l9.6-9.6c1-1 2.5-1 3.4 0l5.6 5.6c1 1 1 2.5 0 3.4L13 21",key:"182aya"}],["path",{d:"M22 21H7",key:"t4ddhn"}],["path",{d:"m5 11 9 9",key:"1mo9qw"}]]);/**
|
|
231
|
+
* @license lucide-react v0.469.0 - ISC
|
|
232
|
+
*
|
|
233
|
+
* This source code is licensed under the ISC license.
|
|
234
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
235
|
+
*/const rM=Se("EyeOff",[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]);/**
|
|
236
|
+
* @license lucide-react v0.469.0 - ISC
|
|
237
|
+
*
|
|
238
|
+
* This source code is licensed under the ISC license.
|
|
239
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
240
|
+
*/const wf=Se("Eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);/**
|
|
241
|
+
* @license lucide-react v0.469.0 - ISC
|
|
242
|
+
*
|
|
243
|
+
* This source code is licensed under the ISC license.
|
|
244
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
245
|
+
*/const oM=Se("FileCode2",[["path",{d:"M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v4",key:"1pf5j1"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"m5 12-3 3 3 3",key:"oke12k"}],["path",{d:"m9 18 3-3-3-3",key:"112psh"}]]);/**
|
|
246
|
+
* @license lucide-react v0.469.0 - ISC
|
|
247
|
+
*
|
|
248
|
+
* This source code is licensed under the ISC license.
|
|
249
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
250
|
+
*/const $d=Se("FilePen",[["path",{d:"M12.5 22H18a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v9.5",key:"1couwa"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M13.378 15.626a1 1 0 1 0-3.004-3.004l-5.01 5.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z",key:"1y4qbx"}]]);/**
|
|
251
|
+
* @license lucide-react v0.469.0 - ISC
|
|
252
|
+
*
|
|
253
|
+
* This source code is licensed under the ISC license.
|
|
254
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
255
|
+
*/const lM=Se("FilePlus2",[["path",{d:"M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v4",key:"1pf5j1"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M3 15h6",key:"4e2qda"}],["path",{d:"M6 12v6",key:"1u72j0"}]]);/**
|
|
256
|
+
* @license lucide-react v0.469.0 - ISC
|
|
257
|
+
*
|
|
258
|
+
* This source code is licensed under the ISC license.
|
|
259
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
260
|
+
*/const iM=Se("FilePlus",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M9 15h6",key:"cctwl0"}],["path",{d:"M12 18v-6",key:"17g6i2"}]]);/**
|
|
261
|
+
* @license lucide-react v0.469.0 - ISC
|
|
262
|
+
*
|
|
263
|
+
* This source code is licensed under the ISC license.
|
|
264
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
265
|
+
*/const cM=Se("FileText",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]);/**
|
|
266
|
+
* @license lucide-react v0.469.0 - ISC
|
|
267
|
+
*
|
|
268
|
+
* This source code is licensed under the ISC license.
|
|
269
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
270
|
+
*/const uM=Se("FileX2",[["path",{d:"M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v4",key:"1pf5j1"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"m8 12.5-5 5",key:"b853mi"}],["path",{d:"m3 12.5 5 5",key:"1qls4r"}]]);/**
|
|
271
|
+
* @license lucide-react v0.469.0 - ISC
|
|
272
|
+
*
|
|
273
|
+
* This source code is licensed under the ISC license.
|
|
274
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
275
|
+
*/const dM=Se("File",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}]]);/**
|
|
276
|
+
* @license lucide-react v0.469.0 - ISC
|
|
277
|
+
*
|
|
278
|
+
* This source code is licensed under the ISC license.
|
|
279
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
280
|
+
*/const zk=Se("FlaskConical",[["path",{d:"M14 2v6a2 2 0 0 0 .245.96l5.51 10.08A2 2 0 0 1 18 22H6a2 2 0 0 1-1.755-2.96l5.51-10.08A2 2 0 0 0 10 8V2",key:"18mbvz"}],["path",{d:"M6.453 15h11.094",key:"3shlmq"}],["path",{d:"M8.5 2h7",key:"csnxdl"}]]);/**
|
|
281
|
+
* @license lucide-react v0.469.0 - ISC
|
|
282
|
+
*
|
|
283
|
+
* This source code is licensed under the ISC license.
|
|
284
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
285
|
+
*/const fM=Se("FolderGit2",[["path",{d:"M9 20H4a2 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.9H20a2 2 0 0 1 2 2v5",key:"1w6njk"}],["circle",{cx:"13",cy:"12",r:"2",key:"1j92g6"}],["path",{d:"M18 19c-2.8 0-5-2.2-5-5v8",key:"pkpw2h"}],["circle",{cx:"20",cy:"19",r:"2",key:"1obnsp"}]]);/**
|
|
286
|
+
* @license lucide-react v0.469.0 - ISC
|
|
287
|
+
*
|
|
288
|
+
* This source code is licensed under the ISC license.
|
|
289
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
290
|
+
*/const Dk=Se("FolderKanban",[["path",{d:"M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2Z",key:"1fr9dc"}],["path",{d:"M8 10v4",key:"tgpxqk"}],["path",{d:"M12 10v2",key:"hh53o1"}],["path",{d:"M16 10v6",key:"1d6xys"}]]);/**
|
|
291
|
+
* @license lucide-react v0.469.0 - ISC
|
|
292
|
+
*
|
|
293
|
+
* This source code is licensed under the ISC license.
|
|
294
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
295
|
+
*/const zx=Se("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"}]]);/**
|
|
296
|
+
* @license lucide-react v0.469.0 - ISC
|
|
297
|
+
*
|
|
298
|
+
* This source code is licensed under the ISC license.
|
|
299
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
300
|
+
*/const Lk=Se("FolderTree",[["path",{d:"M20 10a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1h-2.5a1 1 0 0 1-.8-.4l-.9-1.2A1 1 0 0 0 15 3h-2a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z",key:"hod4my"}],["path",{d:"M20 21a1 1 0 0 0 1-1v-3a1 1 0 0 0-1-1h-2.9a1 1 0 0 1-.88-.55l-.42-.85a1 1 0 0 0-.92-.6H13a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z",key:"w4yl2u"}],["path",{d:"M3 5a2 2 0 0 0 2 2h3",key:"f2jnh7"}],["path",{d:"M3 3v13a2 2 0 0 0 2 2h3",key:"k8epm1"}]]);/**
|
|
301
|
+
* @license lucide-react v0.469.0 - ISC
|
|
302
|
+
*
|
|
303
|
+
* This source code is licensed under the ISC license.
|
|
304
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
305
|
+
*/const pM=Se("Folder",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]);/**
|
|
306
|
+
* @license lucide-react v0.469.0 - ISC
|
|
307
|
+
*
|
|
308
|
+
* This source code is licensed under the ISC license.
|
|
309
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
310
|
+
*/const mM=Se("Folders",[["path",{d:"M20 17a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-3.9a2 2 0 0 1-1.69-.9l-.81-1.2a2 2 0 0 0-1.67-.9H8a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2Z",key:"4u7rpt"}],["path",{d:"M2 8v11a2 2 0 0 0 2 2h14",key:"1eicx1"}]]);/**
|
|
311
|
+
* @license lucide-react v0.469.0 - ISC
|
|
312
|
+
*
|
|
313
|
+
* This source code is licensed under the ISC license.
|
|
314
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
315
|
+
*/const kf=Se("Gauge",[["path",{d:"m12 14 4-4",key:"9kzdfg"}],["path",{d:"M3.34 19a10 10 0 1 1 17.32 0",key:"19p75a"}]]);/**
|
|
316
|
+
* @license lucide-react v0.469.0 - ISC
|
|
317
|
+
*
|
|
318
|
+
* This source code is licensed under the ISC license.
|
|
319
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
320
|
+
*/const gM=Se("Gem",[["path",{d:"M6 3h12l4 6-10 13L2 9Z",key:"1pcd5k"}],["path",{d:"M11 3 8 9l4 13 4-13-3-6",key:"1fcu3u"}],["path",{d:"M2 9h20",key:"16fsjt"}]]);/**
|
|
321
|
+
* @license lucide-react v0.469.0 - ISC
|
|
322
|
+
*
|
|
323
|
+
* This source code is licensed under the ISC license.
|
|
324
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
325
|
+
*/const Dx=Se("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"}]]);/**
|
|
326
|
+
* @license lucide-react v0.469.0 - ISC
|
|
327
|
+
*
|
|
328
|
+
* This source code is licensed under the ISC license.
|
|
329
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
330
|
+
*/const hM=Se("GitCompare",[["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}],["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["path",{d:"M13 6h3a2 2 0 0 1 2 2v7",key:"1yeb86"}],["path",{d:"M11 18H8a2 2 0 0 1-2-2V9",key:"19pyzm"}]]);/**
|
|
331
|
+
* @license lucide-react v0.469.0 - ISC
|
|
332
|
+
*
|
|
333
|
+
* This source code is licensed under the ISC license.
|
|
334
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
335
|
+
*/const xM=Se("Hammer",[["path",{d:"m15 12-8.373 8.373a1 1 0 1 1-3-3L12 9",key:"eefl8a"}],["path",{d:"m18 15 4-4",key:"16gjal"}],["path",{d:"m21.5 11.5-1.914-1.914A2 2 0 0 1 19 8.172V7l-2.26-2.26a6 6 0 0 0-4.202-1.756L9 2.96l.92.82A6.18 6.18 0 0 1 12 8.4V10l2 2h1.172a2 2 0 0 1 1.414.586L18.5 14.5",key:"b7pghm"}]]);/**
|
|
336
|
+
* @license lucide-react v0.469.0 - ISC
|
|
337
|
+
*
|
|
338
|
+
* This source code is licensed under the ISC license.
|
|
339
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
340
|
+
*/const Ml=Se("Heart",[["path",{d:"M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z",key:"c3ymky"}]]);/**
|
|
341
|
+
* @license lucide-react v0.469.0 - ISC
|
|
342
|
+
*
|
|
343
|
+
* This source code is licensed under the ISC license.
|
|
344
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
345
|
+
*/const bM=Se("History",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}],["path",{d:"M12 7v5l4 2",key:"1fdv2h"}]]);/**
|
|
346
|
+
* @license lucide-react v0.469.0 - ISC
|
|
347
|
+
*
|
|
348
|
+
* This source code is licensed under the ISC license.
|
|
349
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
350
|
+
*/const vM=Se("House",[["path",{d:"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8",key:"5wwlr5"}],["path",{d:"M3 10a2 2 0 0 1 .709-1.528l7-5.999a2 2 0 0 1 2.582 0l7 5.999A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",key:"1d0kgt"}]]);/**
|
|
351
|
+
* @license lucide-react v0.469.0 - ISC
|
|
352
|
+
*
|
|
353
|
+
* This source code is licensed under the ISC license.
|
|
354
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
355
|
+
*/const _M=Se("Info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]);/**
|
|
356
|
+
* @license lucide-react v0.469.0 - ISC
|
|
357
|
+
*
|
|
358
|
+
* This source code is licensed under the ISC license.
|
|
359
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
360
|
+
*/const Dh=Se("KeyRound",[["path",{d:"M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z",key:"1s6t7t"}],["circle",{cx:"16.5",cy:"7.5",r:".5",fill:"currentColor",key:"w0ekpg"}]]);/**
|
|
361
|
+
* @license lucide-react v0.469.0 - ISC
|
|
362
|
+
*
|
|
363
|
+
* This source code is licensed under the ISC license.
|
|
364
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
365
|
+
*/const yM=Se("Languages",[["path",{d:"m5 8 6 6",key:"1wu5hv"}],["path",{d:"m4 14 6-6 2-3",key:"1k1g8d"}],["path",{d:"M2 5h12",key:"or177f"}],["path",{d:"M7 2h1",key:"1t2jsx"}],["path",{d:"m22 22-5-10-5 10",key:"don7ne"}],["path",{d:"M14 18h6",key:"1m8k6r"}]]);/**
|
|
366
|
+
* @license lucide-react v0.469.0 - ISC
|
|
367
|
+
*
|
|
368
|
+
* This source code is licensed under the ISC license.
|
|
369
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
370
|
+
*/const jM=Se("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"}]]);/**
|
|
371
|
+
* @license lucide-react v0.469.0 - ISC
|
|
372
|
+
*
|
|
373
|
+
* This source code is licensed under the ISC license.
|
|
374
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
375
|
+
*/const wM=Se("LayoutGrid",[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}]]);/**
|
|
376
|
+
* @license lucide-react v0.469.0 - ISC
|
|
377
|
+
*
|
|
378
|
+
* This source code is licensed under the ISC license.
|
|
379
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
380
|
+
*/const kM=Se("ListTodo",[["rect",{x:"3",y:"5",width:"6",height:"6",rx:"1",key:"1defrl"}],["path",{d:"m3 17 2 2 4-4",key:"1jhpwq"}],["path",{d:"M13 6h8",key:"15sg57"}],["path",{d:"M13 12h8",key:"h98zly"}],["path",{d:"M13 18h8",key:"oe0vm4"}]]);/**
|
|
381
|
+
* @license lucide-react v0.469.0 - ISC
|
|
382
|
+
*
|
|
383
|
+
* This source code is licensed under the ISC license.
|
|
384
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
385
|
+
*/const SM=Se("List",[["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M3 18h.01",key:"1tta3j"}],["path",{d:"M3 6h.01",key:"1rqtza"}],["path",{d:"M8 12h13",key:"1za7za"}],["path",{d:"M8 18h13",key:"1lx6n3"}],["path",{d:"M8 6h13",key:"ik3vkj"}]]);/**
|
|
386
|
+
* @license lucide-react v0.469.0 - ISC
|
|
387
|
+
*
|
|
388
|
+
* This source code is licensed under the ISC license.
|
|
389
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
390
|
+
*/const Sf=Se("LoaderCircle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);/**
|
|
391
|
+
* @license lucide-react v0.469.0 - ISC
|
|
392
|
+
*
|
|
393
|
+
* This source code is licensed under the ISC license.
|
|
394
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
395
|
+
*/const Pk=Se("MessageCircleQuestion",[["path",{d:"M7.9 20A9 9 0 1 0 4 16.1L2 22Z",key:"vv11sd"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);/**
|
|
396
|
+
* @license lucide-react v0.469.0 - ISC
|
|
397
|
+
*
|
|
398
|
+
* This source code is licensed under the ISC license.
|
|
399
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
400
|
+
*/const Lx=Se("MessageSquare",[["path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",key:"1lielz"}]]);/**
|
|
401
|
+
* @license lucide-react v0.469.0 - ISC
|
|
402
|
+
*
|
|
403
|
+
* This source code is licensed under the ISC license.
|
|
404
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
405
|
+
*/const Fd=Se("MessagesSquare",[["path",{d:"M14 9a2 2 0 0 1-2 2H6l-4 4V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2z",key:"p1xzt8"}],["path",{d:"M18 9h2a2 2 0 0 1 2 2v11l-4-4h-6a2 2 0 0 1-2-2v-1",key:"1cx29u"}]]);/**
|
|
406
|
+
* @license lucide-react v0.469.0 - ISC
|
|
407
|
+
*
|
|
408
|
+
* This source code is licensed under the ISC license.
|
|
409
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
410
|
+
*/const Ik=Se("Mic",[["path",{d:"M12 2a3 3 0 0 0-3 3v7a3 3 0 0 0 6 0V5a3 3 0 0 0-3-3Z",key:"131961"}],["path",{d:"M19 10v2a7 7 0 0 1-14 0v-2",key:"1vc78b"}],["line",{x1:"12",x2:"12",y1:"19",y2:"22",key:"x3vr5v"}]]);/**
|
|
411
|
+
* @license lucide-react v0.469.0 - ISC
|
|
412
|
+
*
|
|
413
|
+
* This source code is licensed under the ISC license.
|
|
414
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
415
|
+
*/const Bk=Se("Monitor",[["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["line",{x1:"8",x2:"16",y1:"21",y2:"21",key:"1svkeh"}],["line",{x1:"12",x2:"12",y1:"17",y2:"21",key:"vw1qmm"}]]);/**
|
|
416
|
+
* @license lucide-react v0.469.0 - ISC
|
|
417
|
+
*
|
|
418
|
+
* This source code is licensed under the ISC license.
|
|
419
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
420
|
+
*/const CM=Se("Moon",[["path",{d:"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z",key:"a7tn18"}]]);/**
|
|
421
|
+
* @license lucide-react v0.469.0 - ISC
|
|
422
|
+
*
|
|
423
|
+
* This source code is licensed under the ISC license.
|
|
424
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
425
|
+
*/const EM=Se("Package",[["path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z",key:"1a0edw"}],["path",{d:"M12 22V12",key:"d0xqtd"}],["path",{d:"m3.3 7 7.703 4.734a2 2 0 0 0 1.994 0L20.7 7",key:"yx3hmr"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}]]);/**
|
|
426
|
+
* @license lucide-react v0.469.0 - ISC
|
|
427
|
+
*
|
|
428
|
+
* This source code is licensed under the ISC license.
|
|
429
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
430
|
+
*/const NM=Se("Palette",[["circle",{cx:"13.5",cy:"6.5",r:".5",fill:"currentColor",key:"1okk4w"}],["circle",{cx:"17.5",cy:"10.5",r:".5",fill:"currentColor",key:"f64h9f"}],["circle",{cx:"8.5",cy:"7.5",r:".5",fill:"currentColor",key:"fotxhn"}],["circle",{cx:"6.5",cy:"12.5",r:".5",fill:"currentColor",key:"qy21gx"}],["path",{d:"M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10c.926 0 1.648-.746 1.648-1.688 0-.437-.18-.835-.437-1.125-.29-.289-.438-.652-.438-1.125a1.64 1.64 0 0 1 1.668-1.668h1.996c3.051 0 5.555-2.503 5.555-5.554C21.965 6.012 17.461 2 12 2z",key:"12rzf8"}]]);/**
|
|
431
|
+
* @license lucide-react v0.469.0 - ISC
|
|
432
|
+
*
|
|
433
|
+
* This source code is licensed under the ISC license.
|
|
434
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
435
|
+
*/const Uk=Se("PanelLeft",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}]]);/**
|
|
436
|
+
* @license lucide-react v0.469.0 - ISC
|
|
437
|
+
*
|
|
438
|
+
* This source code is licensed under the ISC license.
|
|
439
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
440
|
+
*/const RM=Se("PanelRight",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M15 3v18",key:"14nvp0"}]]);/**
|
|
441
|
+
* @license lucide-react v0.469.0 - ISC
|
|
442
|
+
*
|
|
443
|
+
* This source code is licensed under the ISC license.
|
|
444
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
445
|
+
*/const Eo=Se("Pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);/**
|
|
446
|
+
* @license lucide-react v0.469.0 - ISC
|
|
447
|
+
*
|
|
448
|
+
* This source code is licensed under the ISC license.
|
|
449
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
450
|
+
*/const Px=Se("Play",[["polygon",{points:"6 3 20 12 6 21 6 3",key:"1oa8hb"}]]);/**
|
|
451
|
+
* @license lucide-react v0.469.0 - ISC
|
|
452
|
+
*
|
|
453
|
+
* This source code is licensed under the ISC license.
|
|
454
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
455
|
+
*/const TM=Se("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"}]]);/**
|
|
456
|
+
* @license lucide-react v0.469.0 - ISC
|
|
457
|
+
*
|
|
458
|
+
* This source code is licensed under the ISC license.
|
|
459
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
460
|
+
*/const rn=Se("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);/**
|
|
461
|
+
* @license lucide-react v0.469.0 - ISC
|
|
462
|
+
*
|
|
463
|
+
* This source code is licensed under the ISC license.
|
|
464
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
465
|
+
*/const Lh=Se("Puzzle",[["path",{d:"M15.39 4.39a1 1 0 0 0 1.68-.474 2.5 2.5 0 1 1 3.014 3.015 1 1 0 0 0-.474 1.68l1.683 1.682a2.414 2.414 0 0 1 0 3.414L19.61 15.39a1 1 0 0 1-1.68-.474 2.5 2.5 0 1 0-3.014 3.015 1 1 0 0 1 .474 1.68l-1.683 1.682a2.414 2.414 0 0 1-3.414 0L8.61 19.61a1 1 0 0 0-1.68.474 2.5 2.5 0 1 1-3.014-3.015 1 1 0 0 0 .474-1.68l-1.683-1.682a2.414 2.414 0 0 1 0-3.414L4.39 8.61a1 1 0 0 1 1.68.474 2.5 2.5 0 1 0 3.014-3.015 1 1 0 0 1-.474-1.68l1.683-1.682a2.414 2.414 0 0 1 3.414 0z",key:"w46dr5"}]]);/**
|
|
466
|
+
* @license lucide-react v0.469.0 - ISC
|
|
467
|
+
*
|
|
468
|
+
* This source code is licensed under the ISC license.
|
|
469
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
470
|
+
*/const AM=Se("QrCode",[["rect",{width:"5",height:"5",x:"3",y:"3",rx:"1",key:"1tu5fj"}],["rect",{width:"5",height:"5",x:"16",y:"3",rx:"1",key:"1v8r4q"}],["rect",{width:"5",height:"5",x:"3",y:"16",rx:"1",key:"1x03jg"}],["path",{d:"M21 16h-3a2 2 0 0 0-2 2v3",key:"177gqh"}],["path",{d:"M21 21v.01",key:"ents32"}],["path",{d:"M12 7v3a2 2 0 0 1-2 2H7",key:"8crl2c"}],["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M12 3h.01",key:"n36tog"}],["path",{d:"M12 16v.01",key:"133mhm"}],["path",{d:"M16 12h1",key:"1slzba"}],["path",{d:"M21 12v.01",key:"1lwtk9"}],["path",{d:"M12 21v-1",key:"1880an"}]]);/**
|
|
471
|
+
* @license lucide-react v0.469.0 - ISC
|
|
472
|
+
*
|
|
473
|
+
* This source code is licensed under the ISC license.
|
|
474
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
475
|
+
*/const cs=Se("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"}]]);/**
|
|
476
|
+
* @license lucide-react v0.469.0 - ISC
|
|
477
|
+
*
|
|
478
|
+
* This source code is licensed under the ISC license.
|
|
479
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
480
|
+
*/const Ix=Se("RotateCcw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]]);/**
|
|
481
|
+
* @license lucide-react v0.469.0 - ISC
|
|
482
|
+
*
|
|
483
|
+
* This source code is licensed under the ISC license.
|
|
484
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
485
|
+
*/const Cf=Se("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"}]]);/**
|
|
486
|
+
* @license lucide-react v0.469.0 - ISC
|
|
487
|
+
*
|
|
488
|
+
* This source code is licensed under the ISC license.
|
|
489
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
490
|
+
*/const Gd=Se("ScrollText",[["path",{d:"M15 12h-5",key:"r7krc0"}],["path",{d:"M15 8h-5",key:"1khuty"}],["path",{d:"M19 17V5a2 2 0 0 0-2-2H4",key:"zz82l3"}],["path",{d:"M8 21h12a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1v1a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v2a1 1 0 0 0 1 1h3",key:"1ph1d7"}]]);/**
|
|
491
|
+
* @license lucide-react v0.469.0 - ISC
|
|
492
|
+
*
|
|
493
|
+
* This source code is licensed under the ISC license.
|
|
494
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
495
|
+
*/const Od=Se("Search",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]);/**
|
|
496
|
+
* @license lucide-react v0.469.0 - ISC
|
|
497
|
+
*
|
|
498
|
+
* This source code is licensed under the ISC license.
|
|
499
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
500
|
+
*/const Fa=Se("Send",[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]]);/**
|
|
501
|
+
* @license lucide-react v0.469.0 - ISC
|
|
502
|
+
*
|
|
503
|
+
* This source code is licensed under the ISC license.
|
|
504
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
505
|
+
*/const Hk=Se("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"}]]);/**
|
|
506
|
+
* @license lucide-react v0.469.0 - ISC
|
|
507
|
+
*
|
|
508
|
+
* This source code is licensed under the ISC license.
|
|
509
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
510
|
+
*/const MM=Se("Settings2",[["path",{d:"M20 7h-9",key:"3s1dr2"}],["path",{d:"M14 17H5",key:"gfn3mx"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}],["circle",{cx:"7",cy:"7",r:"3",key:"dfmy0x"}]]);/**
|
|
511
|
+
* @license lucide-react v0.469.0 - ISC
|
|
512
|
+
*
|
|
513
|
+
* This source code is licensed under the ISC license.
|
|
514
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
515
|
+
*/const Yd=Se("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"}]]);/**
|
|
516
|
+
* @license lucide-react v0.469.0 - ISC
|
|
517
|
+
*
|
|
518
|
+
* This source code is licensed under the ISC license.
|
|
519
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
520
|
+
*/const OM=Se("Smartphone",[["rect",{width:"14",height:"20",x:"5",y:"2",rx:"2",ry:"2",key:"1yt0o3"}],["path",{d:"M12 18h.01",key:"mhygvu"}]]);/**
|
|
521
|
+
* @license lucide-react v0.469.0 - ISC
|
|
522
|
+
*
|
|
523
|
+
* This source code is licensed under the ISC license.
|
|
524
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
525
|
+
*/const fs=Se("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"}]]);/**
|
|
526
|
+
* @license lucide-react v0.469.0 - ISC
|
|
527
|
+
*
|
|
528
|
+
* This source code is licensed under the ISC license.
|
|
529
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
530
|
+
*/const zM=Se("SquarePen",[["path",{d:"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7",key:"1m0v6g"}],["path",{d:"M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z",key:"ohrbg2"}]]);/**
|
|
531
|
+
* @license lucide-react v0.469.0 - ISC
|
|
532
|
+
*
|
|
533
|
+
* This source code is licensed under the ISC license.
|
|
534
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
535
|
+
*/const Vk=Se("Square",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]]);/**
|
|
536
|
+
* @license lucide-react v0.469.0 - ISC
|
|
537
|
+
*
|
|
538
|
+
* This source code is licensed under the ISC license.
|
|
539
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
540
|
+
*/const DM=Se("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"}]]);/**
|
|
541
|
+
* @license lucide-react v0.469.0 - ISC
|
|
542
|
+
*
|
|
543
|
+
* This source code is licensed under the ISC license.
|
|
544
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
545
|
+
*/const Mr=Se("Terminal",[["polyline",{points:"4 17 10 11 4 5",key:"akl6gq"}],["line",{x1:"12",x2:"20",y1:"19",y2:"19",key:"q2wloq"}]]);/**
|
|
546
|
+
* @license lucide-react v0.469.0 - ISC
|
|
547
|
+
*
|
|
548
|
+
* This source code is licensed under the ISC license.
|
|
549
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
550
|
+
*/const LM=Se("Timer",[["line",{x1:"10",x2:"14",y1:"2",y2:"2",key:"14vaq8"}],["line",{x1:"12",x2:"15",y1:"14",y2:"11",key:"17fdiu"}],["circle",{cx:"12",cy:"14",r:"8",key:"1e1u0o"}]]);/**
|
|
551
|
+
* @license lucide-react v0.469.0 - ISC
|
|
552
|
+
*
|
|
553
|
+
* This source code is licensed under the ISC license.
|
|
554
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
555
|
+
*/const ia=Se("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"}]]);/**
|
|
556
|
+
* @license lucide-react v0.469.0 - ISC
|
|
557
|
+
*
|
|
558
|
+
* This source code is licensed under the ISC license.
|
|
559
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
560
|
+
*/const qk=Se("TriangleAlert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);/**
|
|
561
|
+
* @license lucide-react v0.469.0 - ISC
|
|
562
|
+
*
|
|
563
|
+
* This source code is licensed under the ISC license.
|
|
564
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
565
|
+
*/const PM=Se("Upload",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"17 8 12 3 7 8",key:"t8dd8p"}],["line",{x1:"12",x2:"12",y1:"3",y2:"15",key:"widbto"}]]);/**
|
|
566
|
+
* @license lucide-react v0.469.0 - ISC
|
|
567
|
+
*
|
|
568
|
+
* This source code is licensed under the ISC license.
|
|
569
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
570
|
+
*/const Bx=Se("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"}]]);/**
|
|
571
|
+
* @license lucide-react v0.469.0 - ISC
|
|
572
|
+
*
|
|
573
|
+
* This source code is licensed under the ISC license.
|
|
574
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
575
|
+
*/const IM=Se("Volume2",[["path",{d:"M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z",key:"uqj9uw"}],["path",{d:"M16 9a5 5 0 0 1 0 6",key:"1q6k2b"}],["path",{d:"M19.364 18.364a9 9 0 0 0 0-12.728",key:"ijwkga"}]]);/**
|
|
576
|
+
* @license lucide-react v0.469.0 - ISC
|
|
577
|
+
*
|
|
578
|
+
* This source code is licensed under the ISC license.
|
|
579
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
580
|
+
*/const BM=Se("WandSparkles",[["path",{d:"m21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72",key:"ul74o6"}],["path",{d:"m14 7 3 3",key:"1r5n42"}],["path",{d:"M5 6v4",key:"ilb8ba"}],["path",{d:"M19 14v4",key:"blhpug"}],["path",{d:"M10 2v2",key:"7u0qdc"}],["path",{d:"M7 8H3",key:"zfb6yr"}],["path",{d:"M21 16h-4",key:"1cnmox"}],["path",{d:"M11 3H9",key:"1obp7u"}]]);/**
|
|
581
|
+
* @license lucide-react v0.469.0 - ISC
|
|
582
|
+
*
|
|
583
|
+
* This source code is licensed under the ISC license.
|
|
584
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
585
|
+
*/const Kl=Se("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"}]]);/**
|
|
586
|
+
* @license lucide-react v0.469.0 - ISC
|
|
587
|
+
*
|
|
588
|
+
* This source code is licensed under the ISC license.
|
|
589
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
590
|
+
*/const ps=Se("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);/**
|
|
591
|
+
* @license lucide-react v0.469.0 - ISC
|
|
592
|
+
*
|
|
593
|
+
* This source code is licensed under the ISC license.
|
|
594
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
595
|
+
*/const Ol=Se("Zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]]),Ef={health:5e3,projects:15e3,telegramStatus:8e3,pairList:12e3},Rn={theme:"apx.theme",token:"apx.token",sidebarCollapsed:"apx.sidebar.collapsed",language:"apx.lang",robyChat:"apx.roby.chat"},Ux=["total","automatico","permiso"],E1=["sky","violet","emerald","amber","rose","indigo","teal","fuchsia"],UM={icon:{light:"/logo/logo_only_white.webp",dark:"/logo/logo_only_dark.webp"},full:{light:"/logo/logo_white.webp",dark:"/logo/logo_dark.webp"},vertical:{light:"/logo/logo_vertical_white.webp",dark:"/logo/logo_vertical_dark.webp"}};function HM(){if(typeof window>"u")return"dark";const e=localStorage.getItem(Rn.theme);return e==="light"||e==="dark"?e:document.documentElement.classList.contains("dark")?"dark":"light"}const $k=x.createContext(null);function VM({children:e}){const[t,s]=x.useState(HM);x.useEffect(()=>{document.documentElement.classList.toggle("dark",t==="dark");try{localStorage.setItem(Rn.theme,t)}catch{}},[t]);const o=x.useCallback(()=>{s(c=>c==="dark"?"light":"dark")},[]),l=x.useMemo(()=>({theme:t,toggle:o,set:s}),[t,o]);return r.jsx($k.Provider,{value:l,children:e})}function Hx(){const e=x.useContext($k);if(!e)throw new Error("useTheme must be used within ThemeProvider");return e}const qM=1367/458,$M=735/1016;function FM({size:e=32,title:t="APX",variant:s="icon"}){const{theme:o}=Hx(),l=UM[s][o];if(s==="full"){const c=e,u=Math.round(e*qM);return r.jsx("img",{src:l,alt:t,width:u,height:c,className:"block object-contain",draggable:!1})}if(s==="vertical"){const c=e,u=Math.round(e/$M);return r.jsx("img",{src:l,alt:t,width:c,height:u,className:"block object-contain",draggable:!1})}return r.jsx("img",{src:l,alt:t,width:e,height:e,className:"block object-contain",draggable:!1})}function Fk(e){var t,s,o="";if(typeof e=="string"||typeof e=="number")o+=e;else if(typeof e=="object")if(Array.isArray(e)){var l=e.length;for(t=0;t<l;t++)e[t]&&(s=Fk(e[t]))&&(o&&(o+=" "),o+=s)}else for(s in e)e[s]&&(o&&(o+=" "),o+=s);return o}function kc(){for(var e,t,s=0,o="",l=arguments.length;s<l;s++)(e=arguments[s])&&(t=Fk(e))&&(o&&(o+=" "),o+=t);return o}const Vx="-",GM=e=>{const t=XM(e),{conflictingClassGroups:s,conflictingClassGroupModifiers:o}=e;return{getClassGroupId:u=>{const p=u.split(Vx);return p[0]===""&&p.length!==1&&p.shift(),Gk(p,t)||YM(u)},getConflictingClassGroupIds:(u,p)=>{const m=s[u]||[];return p&&o[u]?[...m,...o[u]]:m}}},Gk=(e,t)=>{if(e.length===0)return t.classGroupId;const s=e[0],o=t.nextPart.get(s),l=o?Gk(e.slice(1),o):void 0;if(l)return l;if(t.validators.length===0)return;const c=e.join(Vx);return t.validators.find(({validator:u})=>u(c))?.classGroupId},N1=/^\[(.+)\]$/,YM=e=>{if(N1.test(e)){const t=N1.exec(e)[1],s=t?.substring(0,t.indexOf(":"));if(s)return"arbitrary.."+s}},XM=e=>{const{theme:t,prefix:s}=e,o={nextPart:new Map,validators:[]};return QM(Object.entries(e.classGroups),s).forEach(([c,u])=>{Ph(u,o,c,t)}),o},Ph=(e,t,s,o)=>{e.forEach(l=>{if(typeof l=="string"){const c=l===""?t:R1(t,l);c.classGroupId=s;return}if(typeof l=="function"){if(KM(l)){Ph(l(o),t,s,o);return}t.validators.push({validator:l,classGroupId:s});return}Object.entries(l).forEach(([c,u])=>{Ph(u,R1(t,c),s,o)})})},R1=(e,t)=>{let s=e;return t.split(Vx).forEach(o=>{s.nextPart.has(o)||s.nextPart.set(o,{nextPart:new Map,validators:[]}),s=s.nextPart.get(o)}),s},KM=e=>e.isThemeGetter,QM=(e,t)=>t?e.map(([s,o])=>{const l=o.map(c=>typeof c=="string"?t+c:typeof c=="object"?Object.fromEntries(Object.entries(c).map(([u,p])=>[t+u,p])):c);return[s,l]}):e,ZM=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,s=new Map,o=new Map;const l=(c,u)=>{s.set(c,u),t++,t>e&&(t=0,o=s,s=new Map)};return{get(c){let u=s.get(c);if(u!==void 0)return u;if((u=o.get(c))!==void 0)return l(c,u),u},set(c,u){s.has(c)?s.set(c,u):l(c,u)}}},Yk="!",WM=e=>{const{separator:t,experimentalParseClassName:s}=e,o=t.length===1,l=t[0],c=t.length,u=p=>{const m=[];let g=0,h=0,b;for(let w=0;w<p.length;w++){let S=p[w];if(g===0){if(S===l&&(o||p.slice(w,w+c)===t)){m.push(p.slice(h,w)),h=w+c;continue}if(S==="/"){b=w;continue}}S==="["?g++:S==="]"&&g--}const _=m.length===0?p:p.substring(h),k=_.startsWith(Yk),E=k?_.substring(1):_,j=b&&b>h?b-h:void 0;return{modifiers:m,hasImportantModifier:k,baseClassName:E,maybePostfixModifierPosition:j}};return s?p=>s({className:p,parseClassName:u}):u},JM=e=>{if(e.length<=1)return e;const t=[];let s=[];return e.forEach(o=>{o[0]==="["?(t.push(...s.sort(),o),s=[]):s.push(o)}),t.push(...s.sort()),t},e3=e=>({cache:ZM(e.cacheSize),parseClassName:WM(e),...GM(e)}),t3=/\s+/,n3=(e,t)=>{const{parseClassName:s,getClassGroupId:o,getConflictingClassGroupIds:l}=t,c=[],u=e.trim().split(t3);let p="";for(let m=u.length-1;m>=0;m-=1){const g=u[m],{modifiers:h,hasImportantModifier:b,baseClassName:_,maybePostfixModifierPosition:k}=s(g);let E=!!k,j=o(E?_.substring(0,k):_);if(!j){if(!E){p=g+(p.length>0?" "+p:p);continue}if(j=o(_),!j){p=g+(p.length>0?" "+p:p);continue}E=!1}const w=JM(h).join(":"),S=b?w+Yk:w,C=S+j;if(c.includes(C))continue;c.push(C);const N=l(j,E);for(let R=0;R<N.length;++R){const A=N[R];c.push(S+A)}p=g+(p.length>0?" "+p:p)}return p};function a3(){let e=0,t,s,o="";for(;e<arguments.length;)(t=arguments[e++])&&(s=Xk(t))&&(o&&(o+=" "),o+=s);return o}const Xk=e=>{if(typeof e=="string")return e;let t,s="";for(let o=0;o<e.length;o++)e[o]&&(t=Xk(e[o]))&&(s&&(s+=" "),s+=t);return s};function s3(e,...t){let s,o,l,c=u;function u(m){const g=t.reduce((h,b)=>b(h),e());return s=e3(g),o=s.cache.get,l=s.cache.set,c=p,p(m)}function p(m){const g=o(m);if(g)return g;const h=n3(m,s);return l(m,h),h}return function(){return c(a3.apply(null,arguments))}}const Kt=e=>{const t=s=>s[e]||[];return t.isThemeGetter=!0,t},Kk=/^\[(?:([a-z-]+):)?(.+)\]$/i,r3=/^\d+\/\d+$/,o3=new Set(["px","full","screen"]),l3=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,i3=/\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$/,c3=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,u3=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,d3=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Ps=e=>wl(e)||o3.has(e)||r3.test(e),jr=e=>Ql(e,"length",v3),wl=e=>!!e&&!Number.isNaN(Number(e)),kg=e=>Ql(e,"number",wl),Gi=e=>!!e&&Number.isInteger(Number(e)),f3=e=>e.endsWith("%")&&wl(e.slice(0,-1)),ft=e=>Kk.test(e),wr=e=>l3.test(e),p3=new Set(["length","size","percentage"]),m3=e=>Ql(e,p3,Qk),g3=e=>Ql(e,"position",Qk),h3=new Set(["image","url"]),x3=e=>Ql(e,h3,y3),b3=e=>Ql(e,"",_3),Yi=()=>!0,Ql=(e,t,s)=>{const o=Kk.exec(e);return o?o[1]?typeof t=="string"?o[1]===t:t.has(o[1]):s(o[2]):!1},v3=e=>i3.test(e)&&!c3.test(e),Qk=()=>!1,_3=e=>u3.test(e),y3=e=>d3.test(e),j3=()=>{const e=Kt("colors"),t=Kt("spacing"),s=Kt("blur"),o=Kt("brightness"),l=Kt("borderColor"),c=Kt("borderRadius"),u=Kt("borderSpacing"),p=Kt("borderWidth"),m=Kt("contrast"),g=Kt("grayscale"),h=Kt("hueRotate"),b=Kt("invert"),_=Kt("gap"),k=Kt("gradientColorStops"),E=Kt("gradientColorStopPositions"),j=Kt("inset"),w=Kt("margin"),S=Kt("opacity"),C=Kt("padding"),N=Kt("saturate"),R=Kt("scale"),A=Kt("sepia"),T=Kt("skew"),M=Kt("space"),z=Kt("translate"),P=()=>["auto","contain","none"],D=()=>["auto","hidden","clip","visible","scroll"],I=()=>["auto",ft,t],B=()=>[ft,t],V=()=>["",Ps,jr],H=()=>["auto",wl,ft],G=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],q=()=>["solid","dashed","dotted","double","none"],Y=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],X=()=>["start","end","center","between","around","evenly","stretch"],$=()=>["","0",ft],K=()=>["auto","avoid","all","avoid-page","page","left","right","column"],L=()=>[wl,ft];return{cacheSize:500,separator:":",theme:{colors:[Yi],spacing:[Ps,jr],blur:["none","",wr,ft],brightness:L(),borderColor:[e],borderRadius:["none","","full",wr,ft],borderSpacing:B(),borderWidth:V(),contrast:L(),grayscale:$(),hueRotate:L(),invert:$(),gap:B(),gradientColorStops:[e],gradientColorStopPositions:[f3,jr],inset:I(),margin:I(),opacity:L(),padding:B(),saturate:L(),scale:L(),sepia:$(),skew:L(),space:B(),translate:B()},classGroups:{aspect:[{aspect:["auto","square","video",ft]}],container:["container"],columns:[{columns:[wr]}],"break-after":[{"break-after":K()}],"break-before":[{"break-before":K()}],"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:[...G(),ft]}],overflow:[{overflow:D()}],"overflow-x":[{"overflow-x":D()}],"overflow-y":[{"overflow-y":D()}],overscroll:[{overscroll:P()}],"overscroll-x":[{"overscroll-x":P()}],"overscroll-y":[{"overscroll-y":P()}],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",Gi,ft]}],basis:[{basis:I()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",ft]}],grow:[{grow:$()}],shrink:[{shrink:$()}],order:[{order:["first","last","none",Gi,ft]}],"grid-cols":[{"grid-cols":[Yi]}],"col-start-end":[{col:["auto",{span:["full",Gi,ft]},ft]}],"col-start":[{"col-start":H()}],"col-end":[{"col-end":H()}],"grid-rows":[{"grid-rows":[Yi]}],"row-start-end":[{row:["auto",{span:[Gi,ft]},ft]}],"row-start":[{"row-start":H()}],"row-end":[{"row-end":H()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",ft]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",ft]}],gap:[{gap:[_]}],"gap-x":[{"gap-x":[_]}],"gap-y":[{"gap-y":[_]}],"justify-content":[{justify:["normal",...X()]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal",...X(),"baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":[...X(),"baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[C]}],px:[{px:[C]}],py:[{py:[C]}],ps:[{ps:[C]}],pe:[{pe:[C]}],pt:[{pt:[C]}],pr:[{pr:[C]}],pb:[{pb:[C]}],pl:[{pl:[C]}],m:[{m:[w]}],mx:[{mx:[w]}],my:[{my:[w]}],ms:[{ms:[w]}],me:[{me:[w]}],mt:[{mt:[w]}],mr:[{mr:[w]}],mb:[{mb:[w]}],ml:[{ml:[w]}],"space-x":[{"space-x":[M]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[M]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",ft,t]}],"min-w":[{"min-w":[ft,t,"min","max","fit"]}],"max-w":[{"max-w":[ft,t,"none","full","min","max","fit","prose",{screen:[wr]},wr]}],h:[{h:[ft,t,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[ft,t,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[ft,t,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[ft,t,"auto","min","max","fit"]}],"font-size":[{text:["base",wr,jr]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",kg]}],"font-family":[{font:[Yi]}],"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",ft]}],"line-clamp":[{"line-clamp":["none",wl,kg]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",Ps,ft]}],"list-image":[{"list-image":["none",ft]}],"list-style-type":[{list:["none","disc","decimal",ft]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[e]}],"placeholder-opacity":[{"placeholder-opacity":[S]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[e]}],"text-opacity":[{"text-opacity":[S]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...q(),"wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",Ps,jr]}],"underline-offset":[{"underline-offset":["auto",Ps,ft]}],"text-decoration-color":[{decoration:[e]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:B()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",ft]}],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",ft]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[S]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:[...G(),g3]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",m3]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},x3]}],"bg-color":[{bg:[e]}],"gradient-from-pos":[{from:[E]}],"gradient-via-pos":[{via:[E]}],"gradient-to-pos":[{to:[E]}],"gradient-from":[{from:[k]}],"gradient-via":[{via:[k]}],"gradient-to":[{to:[k]}],rounded:[{rounded:[c]}],"rounded-s":[{"rounded-s":[c]}],"rounded-e":[{"rounded-e":[c]}],"rounded-t":[{"rounded-t":[c]}],"rounded-r":[{"rounded-r":[c]}],"rounded-b":[{"rounded-b":[c]}],"rounded-l":[{"rounded-l":[c]}],"rounded-ss":[{"rounded-ss":[c]}],"rounded-se":[{"rounded-se":[c]}],"rounded-ee":[{"rounded-ee":[c]}],"rounded-es":[{"rounded-es":[c]}],"rounded-tl":[{"rounded-tl":[c]}],"rounded-tr":[{"rounded-tr":[c]}],"rounded-br":[{"rounded-br":[c]}],"rounded-bl":[{"rounded-bl":[c]}],"border-w":[{border:[p]}],"border-w-x":[{"border-x":[p]}],"border-w-y":[{"border-y":[p]}],"border-w-s":[{"border-s":[p]}],"border-w-e":[{"border-e":[p]}],"border-w-t":[{"border-t":[p]}],"border-w-r":[{"border-r":[p]}],"border-w-b":[{"border-b":[p]}],"border-w-l":[{"border-l":[p]}],"border-opacity":[{"border-opacity":[S]}],"border-style":[{border:[...q(),"hidden"]}],"divide-x":[{"divide-x":[p]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[p]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[S]}],"divide-style":[{divide:q()}],"border-color":[{border:[l]}],"border-color-x":[{"border-x":[l]}],"border-color-y":[{"border-y":[l]}],"border-color-s":[{"border-s":[l]}],"border-color-e":[{"border-e":[l]}],"border-color-t":[{"border-t":[l]}],"border-color-r":[{"border-r":[l]}],"border-color-b":[{"border-b":[l]}],"border-color-l":[{"border-l":[l]}],"divide-color":[{divide:[l]}],"outline-style":[{outline:["",...q()]}],"outline-offset":[{"outline-offset":[Ps,ft]}],"outline-w":[{outline:[Ps,jr]}],"outline-color":[{outline:[e]}],"ring-w":[{ring:V()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[e]}],"ring-opacity":[{"ring-opacity":[S]}],"ring-offset-w":[{"ring-offset":[Ps,jr]}],"ring-offset-color":[{"ring-offset":[e]}],shadow:[{shadow:["","inner","none",wr,b3]}],"shadow-color":[{shadow:[Yi]}],opacity:[{opacity:[S]}],"mix-blend":[{"mix-blend":[...Y(),"plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":Y()}],filter:[{filter:["","none"]}],blur:[{blur:[s]}],brightness:[{brightness:[o]}],contrast:[{contrast:[m]}],"drop-shadow":[{"drop-shadow":["","none",wr,ft]}],grayscale:[{grayscale:[g]}],"hue-rotate":[{"hue-rotate":[h]}],invert:[{invert:[b]}],saturate:[{saturate:[N]}],sepia:[{sepia:[A]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[s]}],"backdrop-brightness":[{"backdrop-brightness":[o]}],"backdrop-contrast":[{"backdrop-contrast":[m]}],"backdrop-grayscale":[{"backdrop-grayscale":[g]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[h]}],"backdrop-invert":[{"backdrop-invert":[b]}],"backdrop-opacity":[{"backdrop-opacity":[S]}],"backdrop-saturate":[{"backdrop-saturate":[N]}],"backdrop-sepia":[{"backdrop-sepia":[A]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[u]}],"border-spacing-x":[{"border-spacing-x":[u]}],"border-spacing-y":[{"border-spacing-y":[u]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",ft]}],duration:[{duration:L()}],ease:[{ease:["linear","in","out","in-out",ft]}],delay:[{delay:L()}],animate:[{animate:["none","spin","ping","pulse","bounce",ft]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[R]}],"scale-x":[{"scale-x":[R]}],"scale-y":[{"scale-y":[R]}],rotate:[{rotate:[Gi,ft]}],"translate-x":[{"translate-x":[z]}],"translate-y":[{"translate-y":[z]}],"skew-x":[{"skew-x":[T]}],"skew-y":[{"skew-y":[T]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",ft]}],accent:[{accent:["auto",e]}],appearance:[{appearance:["none","auto"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",ft]}],"caret-color":[{caret:[e]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":B()}],"scroll-mx":[{"scroll-mx":B()}],"scroll-my":[{"scroll-my":B()}],"scroll-ms":[{"scroll-ms":B()}],"scroll-me":[{"scroll-me":B()}],"scroll-mt":[{"scroll-mt":B()}],"scroll-mr":[{"scroll-mr":B()}],"scroll-mb":[{"scroll-mb":B()}],"scroll-ml":[{"scroll-ml":B()}],"scroll-p":[{"scroll-p":B()}],"scroll-px":[{"scroll-px":B()}],"scroll-py":[{"scroll-py":B()}],"scroll-ps":[{"scroll-ps":B()}],"scroll-pe":[{"scroll-pe":B()}],"scroll-pt":[{"scroll-pt":B()}],"scroll-pr":[{"scroll-pr":B()}],"scroll-pb":[{"scroll-pb":B()}],"scroll-pl":[{"scroll-pl":B()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",ft]}],fill:[{fill:[e,"none"]}],"stroke-w":[{stroke:[Ps,jr,kg]}],stroke:[{stroke:[e,"none"]}],sr:["sr-only","not-sr-only"],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]}}},Zk=s3(j3);function De(...e){return Zk(kc(e))}const T1={};function Xn(e,t){const s=x.useRef(T1);return s.current===T1&&(s.current=e(t)),s}const Ih=[];let Bh;function w3(){return Bh}function k3(e){Ih.push(e)}function qx(e){const t=(s,o)=>{const l=Xn(S3).current;let c;try{Bh=l;for(const u of Ih)u.before(l);c=e(s,o);for(const u of Ih)u.after(l);l.didInitialize=!0}finally{Bh=void 0}return c};return t.displayName=e.displayName||e.name,t}function Wk(e){return x.forwardRef(qx(e))}function S3(){return{didInitialize:!1}}const C3=()=>{},ze=typeof document<"u"?x.useLayoutEffect:C3;function E3(e,t){return function(o,...l){const c=new URL(e);return c.searchParams.set("code",o.toString()),l.forEach(u=>c.searchParams.append("args[]",u)),`${t} error #${o}; visit ${c} for the full message.`}}const tn=E3("https://base-ui.com/production-error","Base UI"),Jk=x.createContext(void 0);function Ic(e){const t=x.useContext(Jk);if(t===void 0&&!e)throw new Error(tn(72));return t}const N3=[];function $x(e){x.useEffect(e,N3)}const Xi=0;class qa{static create(){return new qa}currentId=Xi;start(t,s){this.clear(),this.currentId=setTimeout(()=>{this.currentId=Xi,s()},t)}isStarted(){return this.currentId!==Xi}clear=()=>{this.currentId!==Xi&&(clearTimeout(this.currentId),this.currentId=Xi)};disposeEffect=()=>this.clear}function wn(){const e=Xn(qa.create).current;return $x(e.disposeEffect),e}function R3(){return typeof navigator>"u"?{userAgent:"",platform:"",maxTouchPoints:0}:{userAgent:navigator.userAgent,platform:navigator.platform??"",maxTouchPoints:navigator.maxTouchPoints??0}}const{userAgent:T3,platform:A3,maxTouchPoints:M3}=R3(),Nf=T3.toLowerCase(),Sc=A3.toLowerCase(),Rf=/^i(os$|p)/.test(Sc)||Sc==="macintel"&&M3>1,A1="android",Uh=Sc===A1||Nf.includes(A1),Fx=!Rf&&Sc.startsWith("mac");Sc.startsWith("win");const O3=Fx||Rf,Dr=typeof CSS<"u"&&!!CSS.supports?.("-webkit-backdrop-filter:none");!Dr&&Nf.includes("firefox");!Dr&&Nf.includes("chrom");const z3=O3,Gx=/jsdom|happydom/.test(Nf);function Ja(e){e.preventDefault(),e.stopPropagation()}function D3(e){return"nativeEvent"in e}function Yx(e){return e.pointerType===""&&e.isTrusted?!0:Uh&&e.pointerType?e.type==="click"&&e.buttons===1:e.detail===0&&!e.pointerType}function eS(e){return Gx?!1:!Uh&&e.width===0&&e.height===0||Uh&&e.width===1&&e.height===1&&e.pressure===0&&e.detail===0&&e.pointerType==="mouse"||e.width<1&&e.height<1&&e.pressure===0&&e.detail===0&&e.pointerType==="touch"}function xo(e,t){const s=["mouse","pen"];return t||s.push("",void 0),s.includes(e)}function L3(e){const t=e.type;return t==="click"||t==="mousedown"||t==="keydown"||t==="keyup"}function Tf(){return typeof window<"u"}function Bn(e){return Xx(e)?(e.nodeName||"").toLowerCase():"#document"}function Ft(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function ms(e){var t;return(t=(Xx(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function Xx(e){return Tf()?e instanceof Node||e instanceof Ft(e).Node:!1}function gt(e){return Tf()?e instanceof Element||e instanceof Ft(e).Element:!1}function Ut(e){return Tf()?e instanceof HTMLElement||e instanceof Ft(e).HTMLElement:!1}function zl(e){return!Tf()||typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof Ft(e).ShadowRoot}function Lr(e){const{overflow:t,overflowX:s,overflowY:o,display:l}=la(e);return/auto|scroll|overlay|hidden|clip/.test(t+o+s)&&l!=="inline"&&l!=="contents"}function P3(e){return/^(table|td|th)$/.test(Bn(e))}function Af(e){try{if(e.matches(":popover-open"))return!0}catch{}try{return e.matches(":modal")}catch{return!1}}const I3=/transform|translate|scale|rotate|perspective|filter/,B3=/paint|layout|strict|content/,oo=e=>!!e&&e!=="none";let Sg;function Kx(e){const t=gt(e)?la(e):e;return oo(t.transform)||oo(t.translate)||oo(t.scale)||oo(t.rotate)||oo(t.perspective)||!Qx()&&(oo(t.backdropFilter)||oo(t.filter))||I3.test(t.willChange||"")||B3.test(t.contain||"")}function U3(e){let t=us(e);for(;Ut(t)&&!rs(t);){if(Kx(t))return t;if(Af(t))return null;t=us(t)}return null}function Qx(){return Sg==null&&(Sg=typeof CSS<"u"&&CSS.supports&&CSS.supports("-webkit-backdrop-filter","none")),Sg}function rs(e){return/^(html|body|#document)$/.test(Bn(e))}function la(e){return Ft(e).getComputedStyle(e)}function Mf(e){return gt(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function us(e){if(Bn(e)==="html")return e;const t=e.assignedSlot||e.parentNode||zl(e)&&e.host||ms(e);return zl(t)?t.host:t}function tS(e){const t=us(e);return rs(t)?e.ownerDocument?e.ownerDocument.body:e.body:Ut(t)&&Lr(t)?t:tS(t)}function Cc(e,t,s){var o;t===void 0&&(t=[]),s===void 0&&(s=!0);const l=tS(e),c=l===((o=e.ownerDocument)==null?void 0:o.body),u=Ft(l);if(c){const p=Hh(u);return t.concat(u,u.visualViewport||[],Lr(l)?l:[],p&&s?Cc(p):[])}else return t.concat(l,Cc(l,[],s))}function Hh(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}const Vh="data-base-ui-focusable",nS="input:not([type='hidden']):not([disabled]),[contenteditable]:not([contenteditable='false']),textarea:not([disabled])",Of="ArrowLeft",zf="ArrowRight",aS="ArrowUp",Zx="ArrowDown";function Vn(e){let t=e.activeElement;for(;t?.shadowRoot?.activeElement!=null;)t=t.shadowRoot.activeElement;return t}function Ke(e,t){if(!e||!t)return!1;const s=t.getRootNode?.();if(e.contains(t))return!0;if(s&&zl(s)){let o=t;for(;o;){if(e===o)return!0;o=o.parentNode||o.host}}return!1}function In(e){return"composedPath"in e?e.composedPath()[0]:e.target}function Xd(e,t){if(!gt(e))return!1;const s=e;if(t.hasElement(s))return!s.hasAttribute("data-trigger-disabled");for(const[,o]of t.entries())if(Ke(o,s))return!o.hasAttribute("data-trigger-disabled");return!1}function Cg(e,t){if(t==null)return!1;if("composedPath"in e)return e.composedPath().includes(t);const s=e;return s.target!=null&&t.contains(s.target)}function H3(e){return e.matches("html,body")}function Df(e){return Ut(e)&&e.matches(nS)}function V3(e){return e?.closest(`button,a[href],[role="button"],select,[tabindex]:not([tabindex="-1"]),${nS}`)!=null}function qh(e){return e?e.getAttribute("role")==="combobox"&&Df(e):!1}function q3(e){if(!e||Gx)return!0;try{return e.matches(":focus-visible")}catch{return!0}}function Kd(e){return e?e.hasAttribute(Vh)?e:e.querySelector(`[${Vh}]`)||e:null}function $3(e,t){return t!=null&&!xo(t)?0:typeof e=="function"?e():e}function Dl(e,t,s){const o=$3(e,s);return typeof o=="number"?o:o?.[t]}function M1(e){return typeof e=="function"?e():e}function sS(e,t){return t||e==="click"||e==="mousedown"}function F3(e){return e?.includes("mouse")&&e!=="mousedown"}function En(){}const Gs=Object.freeze([]),$t=Object.freeze({}),ds="none",Zl="trigger-press",Nn="trigger-hover",kl="trigger-focus",Lf="outside-press",Sl="item-press",G3="close-press",bo="focus-out",Pf="escape-key",$h="list-navigation",rS="cancel-open",lc="sibling-open",oS="disabled",O1="missing",z1="initial",Wx="imperative-action",Y3="window-resize";function nt(e,t,s,o){let l=!1,c=!1;const u=o??$t;return{reason:e,event:t??new Event("base-ui"),cancel(){l=!0},allowPropagation(){c=!0},get isCanceled(){return l},get isPropagationAllowed(){return c},trigger:s,...u}}const lS=x.createContext({hasProvider:!1,timeoutMs:0,delayRef:{current:0},initialDelayRef:{current:0},timeout:new qa,currentIdRef:{current:null},currentContextRef:{current:null}});function X3(e,t){e.current=t.current}function K3(e){const{children:t,delay:s,timeoutMs:o=0}=e,l=x.useRef(s),c=x.useRef(s),u=x.useRef(null),p=x.useRef(null),m=wn();return ze(()=>{if(c.current=s,!u.current){l.current=s;return}l.current={open:Dl(l.current,"open"),close:Dl(s,"close")}},[s,u,l,c]),r.jsx(lS.Provider,{value:x.useMemo(()=>({hasProvider:!0,delayRef:l,initialDelayRef:c,currentIdRef:u,timeoutMs:o,currentContextRef:p,timeout:m}),[o,m]),children:t})}function Q3(e,t={open:!1}){const{open:s}=t,o="rootStore"in e?e.rootStore:e,l=o.useState("floatingId"),c=x.useContext(lS),{currentIdRef:u,delayRef:p,timeoutMs:m,initialDelayRef:g,currentContextRef:h,hasProvider:b,timeout:_}=c,[k,E]=x.useState(!1),j=x.useRef(s),w=x.useRef(!1);return ze(()=>{j.current=s},[s]),ze(()=>()=>{w.current=!0},[]),ze(()=>{function S(){w.current||E(!1),h.current?.setIsInstantPhase(!1),u.current=null,h.current=null,p.current=g.current,_.clear()}if(u.current&&!s&&u.current===l){if(E(!1),m){const C=l;return _.start(m,()=>{o.select("open")||u.current&&u.current!==C||S()}),()=>{(j.current||u.current!==C)&&_.clear()}}S()}},[s,l,u,p,m,g,h,_,o]),ze(()=>{if(!s)return;const S=h.current,C=u.current;_.clear(),h.current={onOpenChange:o.setOpen,setIsInstantPhase:E},u.current=l,p.current={open:0,close:Dl(g.current,"close")},C!==null&&C!==l?(E(!0),S?.setIsInstantPhase(!0),S?.onOpenChange(!1,nt(ds))):(E(!1),S?.setIsInstantPhase(!1))},[s,l,o,u,p,g,h,_]),ze(()=>()=>{if(u.current===l){if(h.current=null,!j.current)return;u.current=null,X3(p,g),_.clear()}},[h,u,p,l,g,_]),x.useMemo(()=>({hasProvider:b,delayRef:p,isInstantPhase:k}),[b,p,k])}function ht(e,t,s,o){return e.addEventListener(t,s,o),()=>{e.removeEventListener(t,s,o)}}function os(...e){return()=>{for(let t=0;t<e.length;t+=1){const s=e[t];s&&s()}}}function Ys(e,t,s,o){const l=Xn(iS).current;return W3(l,e,t,s,o)&&cS(l,[e,t,s,o]),l.callback}function Z3(e){const t=Xn(iS).current;return J3(t,e)&&cS(t,e),t.callback}function iS(){return{callback:null,cleanup:null,refs:[]}}function W3(e,t,s,o,l){return e.refs[0]!==t||e.refs[1]!==s||e.refs[2]!==o||e.refs[3]!==l}function J3(e,t){return e.refs.length!==t.length||e.refs.some((s,o)=>s!==t[o])}function cS(e,t){if(e.refs=t,t.every(s=>s==null)){e.callback=null;return}e.callback=s=>{if(e.cleanup&&(e.cleanup(),e.cleanup=null),s!=null){const o=Array(t.length).fill(null);for(let l=0;l<t.length;l+=1){const c=t[l];if(c!=null)switch(typeof c){case"function":{const u=c(s);typeof u=="function"&&(o[l]=u);break}case"object":{c.current=s;break}}}e.cleanup=()=>{for(let l=0;l<t.length;l+=1){const c=t[l];if(c!=null)switch(typeof c){case"function":{const u=o[l];typeof u=="function"?u():c(null);break}case"object":{c.current=null;break}}}}}}}function cn(e){const t=Xn(e5,e).current;return t.next=e,ze(t.effect),t}function e5(e){const t={current:e,next:e,effect:()=>{t.current=t.next}};return t}const Jx={...tT},Eg=Jx.useInsertionEffect,t5=Eg&&Eg!==Jx.useLayoutEffect?Eg:e=>e();function Ue(e){const t=Xn(n5).current;return t.next=e,t5(t.effect),t.trampoline}function n5(){const e={next:void 0,callback:a5,trampoline:(...t)=>e.callback?.(...t),effect:()=>{e.callback=e.next}};return e}function a5(){}const ld=null;class s5{callbacks=[];callbacksCount=0;nextId=1;startId=1;isScheduled=!1;tick=t=>{this.isScheduled=!1;const s=this.callbacks,o=this.callbacksCount;if(this.callbacks=[],this.callbacksCount=0,this.startId=this.nextId,o>0)for(let l=0;l<s.length;l+=1)s[l]?.(t)};request(t){const s=this.nextId;return this.nextId+=1,this.callbacks.push(t),this.callbacksCount+=1,(!this.isScheduled||!1)&&(requestAnimationFrame(this.tick),this.isScheduled=!0),s}cancel(t){const s=t-this.startId;s<0||s>=this.callbacks.length||(this.callbacks[s]=null,this.callbacksCount-=1)}}const id=new s5;class ts{static create(){return new ts}static request(t){return id.request(t)}static cancel(t){return id.cancel(t)}currentId=ld;request(t){this.cancel(),this.currentId=id.request(()=>{this.currentId=ld,t()})}cancel=()=>{this.currentId!==ld&&(id.cancel(this.currentId),this.currentId=ld)};disposeEffect=()=>this.cancel}function Ll(){const e=Xn(ts.create).current;return $x(e.disposeEffect),e}function mt(e){return e?.ownerDocument||document}const uS={clipPath:"inset(50%)",overflow:"hidden",whiteSpace:"nowrap",border:0,padding:0,width:1,height:1,margin:-1},eb={...uS,position:"fixed",top:0,left:0},dS={...uS,position:"absolute"},Pl=x.forwardRef(function(t,s){const[o,l]=x.useState();ze(()=>{z3&&Dr&&l("button")},[]);const c={tabIndex:0,role:o};return r.jsx("span",{...t,ref:s,style:eb,"aria-hidden":o?void 0:!0,...c,"data-base-ui-focus-guard":""})}),r5=["top","right","bottom","left"],Il=Math.min,xa=Math.max,Qd=Math.round,cd=Math.floor,ls=e=>({x:e,y:e}),o5={left:"right",right:"left",bottom:"top",top:"bottom"};function Fh(e,t,s){return xa(e,Il(t,s))}function Xs(e,t){return typeof e=="function"?e(t):e}function oa(e){return e.split("-")[0]}function Pr(e){return e.split("-")[1]}function tb(e){return e==="x"?"y":"x"}function nb(e){return e==="y"?"height":"width"}function Oa(e){const t=e[0];return t==="t"||t==="b"?"y":"x"}function ab(e){return tb(Oa(e))}function l5(e,t,s){s===void 0&&(s=!1);const o=Pr(e),l=ab(e),c=nb(l);let u=l==="x"?o===(s?"end":"start")?"right":"left":o==="start"?"bottom":"top";return t.reference[c]>t.floating[c]&&(u=Zd(u)),[u,Zd(u)]}function i5(e){const t=Zd(e);return[Gh(e),t,Gh(t)]}function Gh(e){return e.includes("start")?e.replace("start","end"):e.replace("end","start")}const D1=["left","right"],L1=["right","left"],c5=["top","bottom"],u5=["bottom","top"];function d5(e,t,s){switch(e){case"top":case"bottom":return s?t?L1:D1:t?D1:L1;case"left":case"right":return t?c5:u5;default:return[]}}function f5(e,t,s,o){const l=Pr(e);let c=d5(oa(e),s==="start",o);return l&&(c=c.map(u=>u+"-"+l),t&&(c=c.concat(c.map(Gh)))),c}function Zd(e){const t=oa(e);return o5[t]+e.slice(t.length)}function p5(e){return{top:0,right:0,bottom:0,left:0,...e}}function fS(e){return typeof e!="number"?p5(e):{top:e,right:e,bottom:e,left:e}}function Ec(e){const{x:t,y:s,width:o,height:l}=e;return{width:o,height:l,top:s,left:t,right:t+o,bottom:s+l,x:t,y:s}}function hc(e,t){return t<0||t>=e.length}function zd(e,t){return Vs(e.current,{disabledIndices:t})}function Yh(e,t){return Vs(e.current,{decrement:!0,startingIndex:e.current.length,disabledIndices:t})}function Vs(e,{startingIndex:t=-1,decrement:s=!1,disabledIndices:o,amount:l=1}={}){let c=t;do c+=s?-l:l;while(c>=0&&c<=e.length-1&&Wd(e,c,o));return c}function Wd(e,t,s){if(typeof s=="function"?s(t):s?.includes(t)??!1)return!0;const l=e[t];return l?If(l)?!s&&(l.hasAttribute("disabled")||l.getAttribute("aria-disabled")==="true"):!0:!1}function m5(e){return e.visibility==="hidden"||e.visibility==="collapse"}function If(e,t=e?la(e):null){return!e||!e.isConnected||!t||m5(t)?!1:typeof e.checkVisibility=="function"?e.checkVisibility():t.display!=="none"&&t.display!=="contents"}const g5='a[href],button,input,select,textarea,summary,details,iframe,object,embed,[tabindex],[contenteditable]:not([contenteditable="false"]),audio[controls],video[controls]';function h5(e){const t=e.assignedSlot;if(t)return t;if(e.parentElement)return e.parentElement;const s=e.getRootNode();return zl(s)?s.host:null}function Xh(e){for(const t of Array.from(e.children))if(Bn(t)==="summary")return t;return null}function x5(e,t){const s=Xh(t);return!!s&&(e===s||Ke(s,e))}function pS(e){const t=e?Bn(e):"";return e!=null&&e.matches(g5)&&(t!=="summary"||e.parentElement!=null&&Bn(e.parentElement)==="details"&&Xh(e.parentElement)===e)&&(t!=="details"||Xh(e)==null)&&(t!=="input"||e.type!=="hidden")}function mS(e){if(!pS(e)||!e.isConnected||e.matches(":disabled"))return!1;for(let t=e;t;t=h5(t)){const s=t!==e,o=Bn(t)==="slot";if(t.hasAttribute("inert")||s&&Bn(t)==="details"&&!t.open&&!x5(e,t)||t.hasAttribute("hidden")||!o&&!b5(t,s))return!1}return!0}function b5(e,t){const s=la(e);return t?s.display!=="none":If(e,s)}function gS(e){const t=e.tabIndex;if(t<0){const s=Bn(e);if(s==="details"||s==="audio"||s==="video"||Ut(e)&&e.isContentEditable)return 0}return t}function Ng(e){if(Bn(e)!=="input")return null;const t=e;return t.type==="radio"&&t.name!==""?t:null}function v5(e,t){const s=Ng(e);if(!s)return!0;const o=t.find(l=>{const c=Ng(l);return c?.name===s.name&&c.form===s.form&&c.checked});return o?o===s:t.find(l=>{const c=Ng(l);return c?.name===s.name&&c.form===s.form})===s}function hS(e){if(Ut(e)&&Bn(e)==="slot"){const t=e.assignedElements({flatten:!0});if(t.length>0)return t}return Ut(e)&&e.shadowRoot?Array.from(e.shadowRoot.children):Array.from(e.children)}function xS(e,t){hS(e).forEach(s=>{pS(s)&&t.push(s),xS(s,t)})}function bS(e,t,s){hS(e).forEach(o=>{Ut(o)&&o.matches(t)&&s.push(o),bS(o,t,s)})}function sb(e){return mS(e)&&gS(e)>=0}function vS(e){const t=[];return xS(e,t),t.filter(mS)}function Bc(e){const t=vS(e);return t.filter(s=>gS(s)>=0&&v5(s,t))}function _S(e,t){const s=Bc(e),o=s.length;if(o===0)return;const l=Vn(mt(e)),c=s.indexOf(l),u=c===-1?t===1?0:o-1:c+t;return s[u]}function rb(e){return _S(mt(e).body,1)||e}function yS(e){return _S(mt(e).body,-1)||e}function jS(e,t){if(!e)return null;const s=Bc(mt(e).body),o=s.length;if(o===0)return null;const l=s.indexOf(e);if(l===-1)return null;const c=(l+t+o)%o;return s[c]}function _5(e){return jS(e,1)}function y5(e){return jS(e,-1)}function Cl(e,t){const s=t||e.currentTarget,o=e.relatedTarget;return!o||!Ke(s,o)}function j5(e){Bc(e).forEach(s=>{s.dataset.tabindex=s.getAttribute("tabindex")||"",s.setAttribute("tabindex","-1")})}function P1(e){const t=[];bS(e,"[data-tabindex]",t),t.forEach(s=>{const o=s.dataset.tabindex;delete s.dataset.tabindex,o?s.setAttribute("tabindex",o):s.removeAttribute("tabindex")})}function Or(e,t,s=!0){return e.filter(l=>l.parentId===t).flatMap(l=>[...!s||l.context?.open?[l]:[],...Or(e,l.id,s)])}function I1(e,t){let s=[],o=e.find(l=>l.id===t)?.parentId;for(;o;){const l=e.find(c=>c.id===o);o=l?.parentId,l&&(s=s.concat(l))}return s}function Nc(e){return`data-base-ui-${e}`}let ud=0;function Dd(e,t={}){const{preventScroll:s=!1,sync:o=!1,shouldFocus:l}=t;cancelAnimationFrame(ud);function c(){l&&!l()||e?.focus({preventScroll:s})}if(o)return c(),En;const u=requestAnimationFrame(c);return ud=u,()=>{ud===u&&(cancelAnimationFrame(u),ud=0)}}const Rg={inert:new WeakMap,"aria-hidden":new WeakMap},B1="data-base-ui-inert",Kh={inert:new WeakSet,"aria-hidden":new WeakSet};let Ki=new WeakMap,Tg=0;function w5(e){return Kh[e]}function wS(e){return e?zl(e)?e.host:wS(e.parentNode):null}const U1=(e,t)=>t.map(s=>{if(e.contains(s))return s;const o=wS(s);return e.contains(o)?o:null}).filter(s=>s!=null),H1=e=>{const t=new Set;return e.forEach(s=>{let o=s;for(;o&&!t.has(o);)t.add(o),o=o.parentNode}),t},V1=(e,t,s)=>{const o=[],l=c=>{!c||s.has(c)||Array.from(c.children).forEach(u=>{Bn(u)!=="script"&&(t.has(u)?l(u):o.push(u))})};return l(e),o};function k5(e,t,s,o,{mark:l=!0}){let c=null;o?c="inert":s&&(c="aria-hidden");let u=null,p=null;const m=U1(t,e),g=l?V1(t,H1(m),new Set(m)):[],h=[],b=[];if(c){const _=Rg[c],k=w5(c);p=k,u=_;const E=U1(t,Array.from(t.querySelectorAll("[aria-live]"))),j=m.concat(E);V1(t,H1(j),new Set(j)).forEach(S=>{const C=S.getAttribute(c),N=C!==null&&C!=="false",R=(_.get(S)||0)+1;_.set(S,R),h.push(S),R===1&&N&&k.add(S),N||S.setAttribute(c,c==="inert"?"":"true")})}return l&&g.forEach(_=>{const k=(Ki.get(_)||0)+1;Ki.set(_,k),b.push(_),k===1&&_.setAttribute(B1,"")}),Tg+=1,()=>{u&&h.forEach(_=>{const E=(u.get(_)||0)-1;u.set(_,E),E||(!p?.has(_)&&c&&_.removeAttribute(c),p?.delete(_))}),l&&b.forEach(_=>{const k=(Ki.get(_)||0)-1;Ki.set(_,k),k||_.removeAttribute(B1)}),Tg-=1,Tg||(Rg.inert=new WeakMap,Rg["aria-hidden"]=new WeakMap,Kh.inert=new WeakSet,Kh["aria-hidden"]=new WeakSet,Ki=new WeakMap)}}function q1(e,t={}){const{ariaHidden:s=!1,inert:o=!1,mark:l=!0}=t,c=mt(e[0]).body;return k5(e,c,s,o,{mark:l})}let $1=0;function S5(e,t="mui"){const[s,o]=x.useState(e),l=e||s;return x.useEffect(()=>{s==null&&($1+=1,o(`${t}-${$1}`))},[s,t]),l}const F1=Jx.useId;function vo(e,t){if(F1!==void 0){const s=F1();return e??(t?`${t}-${s}`:s)}return S5(e,t)}const C5=parseInt(x.version,10);function ob(e){return C5>=e}function G1(e){if(!x.isValidElement(e))return null;const t=e,s=t.props;return(ob(19)?s?.ref:t.ref)??null}function Qh(e,t){if(e&&!t)return e;if(!e&&t)return t;if(e||t)return{...e,...t}}function E5(e,t){const s={};for(const o in e){const l=e[o];if(t?.hasOwnProperty(o)){const c=t[o](l);c!=null&&Object.assign(s,c);continue}l===!0?s[`data-${o.toLowerCase()}`]="":l&&(s[`data-${o.toLowerCase()}`]=l.toString())}return s}function N5(e,t){return typeof e=="function"?e(t):e}function R5(e,t){return typeof e=="function"?e(t):e}const lb={};function $n(e,t,s,o,l){if(!s&&!o&&!l&&!e)return Jd(t);let c=Jd(e);return t&&(c=ic(c,t)),s&&(c=ic(c,s)),o&&(c=ic(c,o)),l&&(c=ic(c,l)),c}function T5(e){if(e.length===0)return lb;if(e.length===1)return Jd(e[0]);let t=Jd(e[0]);for(let s=1;s<e.length;s+=1)t=ic(t,e[s]);return t}function Jd(e){return ib(e)?{...SS(e,lb)}:A5(e)}function ic(e,t){return ib(t)?SS(t,e):M5(e,t)}function A5(e){const t={...e};for(const s in t){const o=t[s];kS(s,o)&&(t[s]=CS(o))}return t}function M5(e,t){if(!t)return e;for(const s in t){const o=t[s];switch(s){case"style":{e[s]=Qh(e.style,o);break}case"className":{e[s]=ES(e.className,o);break}default:kS(s,o)?e[s]=O5(e[s],o):e[s]=o}}return e}function kS(e,t){const s=e.charCodeAt(0),o=e.charCodeAt(1),l=e.charCodeAt(2);return s===111&&o===110&&l>=65&&l<=90&&(typeof t=="function"||typeof t>"u")}function ib(e){return typeof e=="function"}function SS(e,t){return ib(e)?e(t):e??lb}function O5(e,t){return t?e?(...s)=>{const o=s[0];if(NS(o)){const c=o;ef(c);const u=t(...s);return c.baseUIHandlerPrevented||e?.(...s),u}const l=t(...s);return e?.(...s),l}:CS(t):e}function CS(e){return e&&((...t)=>{const s=t[0];return NS(s)&&ef(s),e(...t)})}function ef(e){return e.preventBaseUIHandler=()=>{e.baseUIHandlerPrevented=!0},e}function ES(e,t){return t?e?t+" "+e:t:e}function NS(e){return e!=null&&typeof e=="object"&&"nativeEvent"in e}function Et(e,t,s={}){const o=t.render,l=z5(t,s);if(s.enabled===!1)return null;const c=s.state??$t;return P5(e,o,l,c)}function z5(e,t={}){const{className:s,style:o,render:l}=e,{state:c=$t,ref:u,props:p,stateAttributesMapping:m,enabled:g=!0}=t,h=g?N5(s,c):void 0,b=g?R5(o,c):void 0,_=g?E5(c,m):$t,k=g&&p?D5(p):void 0,E=g?Qh(_,k)??{}:$t;return typeof document<"u"&&(g?Array.isArray(u)?E.ref=Z3([E.ref,G1(l),...u]):E.ref=Ys(E.ref,G1(l),u):Ys(null,null)),g?(h!==void 0&&(E.className=ES(E.className,h)),b!==void 0&&(E.style=Qh(E.style,b)),E):$t}function D5(e){return Array.isArray(e)?T5(e):$n(void 0,e)}const L5=Symbol.for("react.lazy");function P5(e,t,s,o){if(t){if(typeof t=="function")return t(s,o);const l=$n(s,t.props);l.ref=s.ref;let c=t;return c?.$$typeof===L5&&(c=x.Children.toArray(t)[0]),x.cloneElement(c,l)}if(e&&typeof e=="string")return I5(e,s);throw new Error(tn(8))}function I5(e,t){return e==="button"?x.createElement("button",{type:"button",...t,key:t.key}):e==="img"?x.createElement("img",{alt:"",...t,key:t.key}):x.createElement(e,t)}const B5=500,U5=500,H5={style:{transition:"none"}},V5="data-base-ui-click-trigger",RS={fallbackAxisSide:"none"},TS={fallbackAxisSide:"end"},q5={clipPath:"inset(50%)",position:"fixed",top:0,left:0},AS=x.createContext(null),MS=()=>x.useContext(AS),$5=Nc("portal");function OS(e={}){const{ref:t,container:s,componentProps:o=$t,elementProps:l}=e,c=vo(),p=MS()?.portalNode,[m,g]=x.useState(null),[h,b]=x.useState(null),_=Ue(w=>{w!==null&&b(w)}),k=x.useRef(null);ze(()=>{if(s===null){k.current&&(k.current=null,b(null),g(null));return}if(c==null)return;const w=(s&&(Xx(s)?s:s.current))??p??document.body;if(w==null){k.current&&(k.current=null,b(null),g(null));return}k.current!==w&&(k.current=w,b(null),g(w))},[s,p,c]);const E=Et("div",o,{ref:[t,_],props:[{id:c,[$5]:""},l]});return{portalNode:h,portalSubtree:m&&E?is.createPortal(E,m):null}}const cb=x.forwardRef(function(t,s){const{render:o,className:l,style:c,children:u,container:p,renderGuards:m,...g}=t,{portalNode:h,portalSubtree:b}=OS({container:p,ref:s,componentProps:t,elementProps:g}),_=x.useRef(null),k=x.useRef(null),E=x.useRef(null),j=x.useRef(null),[w,S]=x.useState(null),C=x.useRef(!1),N=w?.modal,R=w?.open,A=typeof m=="boolean"?m:!!w&&!w.modal&&w.open&&!!h;x.useEffect(()=>{if(!h||N)return;function M(z){h&&z.relatedTarget&&Cl(z)&&(z.type==="focusin"?C.current&&(P1(h),C.current=!1):(j5(h),C.current=!0))}return os(ht(h,"focusin",M,!0),ht(h,"focusout",M,!0))},[h,N]),ze(()=>{!h||R!==!0||!C.current||(P1(h),C.current=!1)},[R,h]);const T=x.useMemo(()=>({beforeOutsideRef:_,afterOutsideRef:k,beforeInsideRef:E,afterInsideRef:j,portalNode:h,setFocusManagerState:S}),[h]);return r.jsxs(x.Fragment,{children:[b,r.jsxs(AS.Provider,{value:T,children:[A&&h&&r.jsx(Pl,{"data-type":"outside",ref:_,onFocus:M=>{if(Cl(M,h))E.current?.focus();else{const z=w?w.domReference:null;yS(z)?.focus()}}}),A&&h&&r.jsx("span",{"aria-owns":h.id,style:q5}),h&&is.createPortal(u,h),A&&h&&r.jsx(Pl,{"data-type":"outside",ref:k,onFocus:M=>{if(Cl(M,h))j.current?.focus();else{const z=w?w.domReference:null;rb(z)?.focus(),w?.closeOnFocusOut&&w?.onOpenChange(!1,nt(bo,M.nativeEvent))}}})]})]})});function zS(){const e=new Map;return{emit(t,s){e.get(t)?.forEach(o=>o(s))},on(t,s){e.has(t)||e.set(t,new Set),e.get(t).add(s)},off(t,s){e.get(t)?.delete(s)}}}class ub{nodesRef={current:[]};events=zS();addNode(t){this.nodesRef.current.push(t)}removeNode(t){const s=this.nodesRef.current.findIndex(o=>o===t);s!==-1&&this.nodesRef.current.splice(s,1)}}const DS=x.createContext(null),LS=x.createContext(null),Ir=()=>x.useContext(DS)?.id||null,Br=e=>{const t=x.useContext(LS);return e??t};function PS(e){const t=vo(),s=Br(e),o=Ir();return ze(()=>{if(!t)return;const l={id:t,parentId:o};return s?.addNode(l),()=>{s?.removeNode(l)}},[s,t,o]),t}function F5(e){const{children:t,id:s}=e,o=Ir();return r.jsx(DS.Provider,{value:x.useMemo(()=>({id:s,parentId:o}),[s,o]),children:t})}function G5(e){const{children:t,externalTree:s}=e,o=Xn(()=>s??new ub).current;return r.jsx(LS.Provider,{value:o,children:t})}function Us(e){return e==null?e:"current"in e?e.current:e}function Y5(e,t){const s=Ft(In(e));return e instanceof s.KeyboardEvent?"keyboard":e instanceof s.FocusEvent?t||"keyboard":"pointerType"in e?e.pointerType||"keyboard":"touches"in e?"touch":e instanceof s.MouseEvent?t||(e.detail===0?"keyboard":"mouse"):""}const Y1=20;let Nr=[];function db(){Nr=Nr.filter(e=>e.deref()?.isConnected)}function X1(e){db(),e&&Bn(e)!=="body"&&(Nr.push(new WeakRef(e)),Nr.length>Y1&&(Nr=Nr.slice(-Y1)))}function K1(){return db(),Nr[Nr.length-1]?.deref()}function X5(e){return e?sb(e)?e:Bc(e)[0]||e:null}function Q1(e){if(e.hasAttribute("tabindex")&&!e.hasAttribute("data-tabindex")||!e.getAttribute("role")?.includes("dialog"))return;const s=vS(e).filter(l=>{const c=l.getAttribute("data-tabindex")||"";return sb(l)||l.hasAttribute("data-tabindex")&&!c.startsWith("-")}),o=e.getAttribute("tabindex");s.length===0?o!=="0"&&(e.setAttribute("tabindex","0"),e.setAttribute("data-tabindex","0")):(o!=="-1"||e.hasAttribute("data-tabindex")&&e.getAttribute("data-tabindex")!=="-1")&&(e.setAttribute("tabindex","-1"),e.setAttribute("data-tabindex","-1"))}function fb(e){const{context:t,children:s,disabled:o=!1,initialFocus:l=!0,returnFocus:c=!0,restoreFocus:u=!1,modal:p=!0,closeOnFocusOut:m=!0,openInteractionType:g="",nextFocusableElement:h,previousFocusableElement:b,beforeContentFocusGuardRef:_,externalTree:k,getInsideElements:E}=e,j="rootStore"in t?t.rootStore:t,w=j.useState("open"),S=j.useState("domReferenceElement"),C=j.useState("floatingElement"),{events:N,dataRef:R}=j.context,A=Ue(()=>R.current.floatingContext?.nodeId),T=l===!1,M=qh(S)&&T,z=cn(l),P=cn(c),D=cn(g),I=cn(w),B=Br(k),V=MS(),H=x.useRef(!1),G=x.useRef(!1),q=x.useRef(!1),Y=x.useRef(null),X=x.useRef(""),$=x.useRef(""),K=x.useRef(null),L=x.useRef(null),F=Ys(K,_,V?.beforeInsideRef),W=Ys(L,V?.afterInsideRef),ee=wn(),ce=wn(),ue=Ll(),se=V!=null,oe=Kd(C),fe=Ue((de=oe)=>de?Bc(de):[]),Re=Ue(()=>E?.().filter(de=>de!=null)??[]);x.useEffect(()=>{if(o||!p)return;function de(je){je.key==="Tab"&&Ke(oe,Vn(mt(oe)))&&fe().length===0&&!M&&Ja(je)}const ke=mt(oe);return ht(ke,"keydown",de)},[o,oe,p,M,fe]),x.useEffect(()=>{if(o||!w)return;const de=mt(oe);function ke(){q.current=!1}function je(Ve){const we=In(Ve),Ee=Re(),_e=Ke(C,we)||Ke(S,we)||Ke(V?.portalNode,we)||Ee.some(Ce=>Ce===we||Ke(Ce,we));q.current=!_e,$.current=Ve.pointerType||"keyboard",we?.closest(`[${V5}]`)&&(G.current=!0,ce.start(0,()=>{G.current=!1}))}function Be(){$.current="keyboard"}return os(ht(de,"pointerdown",je,!0),ht(de,"pointerup",ke,!0),ht(de,"pointercancel",ke,!0),ht(de,"keydown",Be,!0),ke)},[o,C,S,oe,w,V,ce,Re]),x.useEffect(()=>{if(o||!m)return;const de=mt(oe);function ke(){G.current=!0,ce.start(0,()=>{G.current=!1})}function je(Ee){const _e=In(Ee);sb(_e)&&(Y.current=_e)}function Be(Ee){const _e=Ee.relatedTarget,Ce=Ee.currentTarget,Le=In(Ee);p&&_e==null&&Le!=null&&Ke(C,Le)&&X1(Le),queueMicrotask(()=>{const Pe=A(),Ie=j.context.triggerElements,ae=Re(),be=_e?.hasAttribute(Nc("focus-guard"))&&[K.current,L.current,V?.beforeInsideRef.current,V?.afterInsideRef.current,V?.beforeOutsideRef.current,V?.afterOutsideRef.current,Us(b),Us(h)].includes(_e),$e=!(Ke(S,_e)||Ke(C,_e)||Ke(_e,C)||Ke(V?.portalNode,_e)||ae.some(Ne=>Ne===_e||Ke(Ne,_e))||_e!=null&&Ie.hasElement(_e)||Ie.hasMatchingElement(Ne=>Ke(Ne,_e))||be||B&&(Or(B.nodesRef.current,Pe).find(Ne=>Ke(Ne.context?.elements.floating,_e)||Ke(Ne.context?.elements.domReference,_e))||I1(B.nodesRef.current,Pe).find(Ne=>[Ne.context?.elements.floating,Kd(Ne.context?.elements.floating)].includes(_e)||Ne.context?.elements.domReference===_e)));if(Ce===S&&oe&&Q1(oe),u&&Ce!==S&&!If(Le)&&Vn(de)===de.body){if(Ut(oe)&&(oe.focus(),u==="popup")){ue.request(()=>{oe.focus()});return}const Ne=fe(),Me=Y.current,Ze=(Me&&Ne.includes(Me)?Me:null)||Ne[Ne.length-1]||oe;Ut(Ze)&&Ze.focus()}if(R.current.insideReactTree){R.current.insideReactTree=!1;return}(M||!p)&&_e&&$e&&!G.current&&(M||_e!==K1())&&(H.current=!0,j.setOpen(!1,nt(bo,Ee)))})}function Ve(){q.current||(R.current.insideReactTree=!0,ee.start(0,()=>{R.current.insideReactTree=!1}))}const we=Ut(S)?S:null;if(!(!C&&!we))return os(we&&ht(we,"focusout",Be),we&&ht(we,"pointerdown",ke),C&&ht(C,"focusin",je),C&&ht(C,"focusout",Be),C&&V&&ht(C,"focusout",Ve,!0))},[o,S,C,oe,p,B,V,j,m,u,fe,M,A,R,ee,ce,ue,h,b,Re]),x.useEffect(()=>{if(o||!C||!w)return;const de=Array.from(V?.portalNode?.querySelectorAll(`[${Nc("portal")}]`)||[]),je=(B?I1(B.nodesRef.current,A()):[]).find(Ce=>qh(Ce.context?.elements.domReference||null))?.context?.elements.domReference,Ve=[...[C,...de,K.current,L.current,V?.beforeOutsideRef.current,V?.afterOutsideRef.current,...Re()],je,Us(b),Us(h),M?S:null].filter(Ce=>Ce!=null),we=q1(Ve,{ariaHidden:p||M,mark:!1}),Ee=[C,...de].filter(Ce=>Ce!=null),_e=q1(Ee);return()=>{_e(),we()}},[w,o,S,C,p,V,M,B,A,h,b,Re]),ze(()=>{if(!w||o||!Ut(oe))return;const de=mt(oe),ke=Vn(de);queueMicrotask(()=>{const je=z.current,Be=typeof je=="function"?je(D.current||""):je;if(Be===void 0||Be===!1||Ke(oe,ke))return;let we=null;const Ee=()=>(we==null&&(we=fe(oe)),we[0]||oe);let _e;Be===!0||Be===null?_e=Ee():_e=Us(Be),_e=_e||Ee();const Ce=Ke(oe,Vn(de));Dd(_e,{preventScroll:_e===oe,shouldFocus(){if(!I.current)return!1;if(Ce)return!0;const Le=Vn(de);return!(Le!==_e&&Ke(oe,Le))}})})},[o,w,oe,fe,z,D,I]),ze(()=>{if(o||!oe)return;const de=mt(oe),ke=Vn(de),je=D.current==null;X1(ke);function Be(we){if(we.open||(X.current=Y5(we.nativeEvent,$.current)),we.reason===Nn&&we.nativeEvent.type==="mouseleave"&&(H.current=!0),we.reason===Lf)if(we.nested)H.current=!1;else if(Yx(we.nativeEvent)||eS(we.nativeEvent))H.current=!1;else{let Ee=!1;mt(oe).createElement("div").focus({get preventScroll(){return Ee=!0,!1}}),Ee?H.current=!1:H.current=!0}}N.on("openchange",Be);function Ve(){const we=P.current;let Ee=typeof we=="function"?we(X.current):we;if(Ee===void 0||Ee===!1)return null;Ee===null&&(Ee=!0);const _e=S?.isConnected?S:null,Ce=ke?.isConnected&&Bn(ke)!=="body"?ke:null;let Le=je?Ce||_e:_e||Ce;return Le||(Le=K1()||null),typeof Ee=="boolean"?Le:Us(Ee)||Le||null}return()=>{N.off("openchange",Be);const we=Vn(de),Ee=Re(),_e=Ke(C,we)||Ee.some(Pe=>Pe===we||Ke(Pe,we))||B&&Or(B.nodesRef.current,A(),!1).some(Pe=>Ke(Pe.context?.elements.floating,we)),Ce=P.current,Le=Ve();queueMicrotask(()=>{const Pe=X5(Le),Ie=typeof Ce!="boolean";Ce&&!H.current&&Ut(Pe)&&(!(!Ie&&Pe!==we&&we!==de.body)||_e)&&Pe.focus({preventScroll:!0}),H.current=!1})}},[o,C,oe,P,D,N,B,S,A,Re]),ze(()=>{if(!Dr||w||!C)return;const de=Vn(mt(C));!Ut(de)||!Df(de)||Ke(C,de)&&de.blur()},[w,C]),ze(()=>{if(!(o||!V))return V.setFocusManagerState({modal:p,closeOnFocusOut:m,open:w,onOpenChange:j.setOpen,domReference:S}),()=>{V.setFocusManagerState(null)}},[o,V,p,w,j,m,S]),ze(()=>{if(!(o||!oe))return Q1(oe),()=>{queueMicrotask(db)}},[o,oe]);const le=!o&&(p?!M:!0)&&(se||p);return r.jsxs(x.Fragment,{children:[le&&r.jsx(Pl,{"data-type":"inside",ref:F,onFocus:de=>{if(p){const ke=fe();Dd(ke[ke.length-1])}else V?.portalNode&&(H.current=!1,Cl(de,V.portalNode)?rb(S)?.focus():Us(b??V.beforeOutsideRef)?.focus())}}),s,le&&r.jsx(Pl,{"data-type":"inside",ref:W,onFocus:de=>{p?Dd(fe()[0]):V?.portalNode&&(m&&(H.current=!0),Cl(de,V.portalNode)?yS(S)?.focus():Us(h??V.afterOutsideRef)?.focus())}})]})}function IS(e,t={}){const{enabled:s=!0,event:o="click",toggle:l=!0,ignoreMouse:c=!1,stickIfOpen:u=!0,touchOpenDelay:p=0,reason:m=Zl}=t,g="rootStore"in e?e.rootStore:e,h=g.context.dataRef,b=x.useRef(void 0),_=Ll(),k=wn(),E=x.useMemo(()=>{function j(S,C,N,R){const A=nt(m,C,N);S&&R==="touch"&&p>0?k.start(p,()=>{g.setOpen(!0,A)}):g.setOpen(S,A)}function w(S,C,N){const R=h.current.openEvent,A=g.select("domReferenceElement")!==C;return S&&A||!S||!l?!0:R&&u?!N(R.type):!1}return{onPointerDown(S){b.current=S.pointerType},onMouseDown(S){const C=b.current,N=S.nativeEvent,R=g.select("open");if(S.button!==0||o==="click"||xo(C,!0)&&c)return;const A=w(R,S.currentTarget,z=>z==="click"||z==="mousedown"),T=In(N);if(Df(T)){j(A,N,T,C);return}const M=S.currentTarget;_.request(()=>{j(A,N,M,C)})},onClick(S){if(o==="mousedown-only")return;const C=b.current;if(o==="mousedown"&&C){b.current=void 0;return}if(xo(C,!0)&&c)return;const N=g.select("open"),R=w(N,S.currentTarget,A=>A==="click"||A==="mousedown"||A==="keydown"||A==="keyup");j(R,S.nativeEvent,S.currentTarget,C)},onKeyDown(){b.current=void 0}}},[h,o,c,m,g,u,l,_,k,p]);return x.useMemo(()=>s?{reference:E}:$t,[s,E])}function K5(e,t){let s=null,o=null,l=!1;return{contextElement:e||void 0,getBoundingClientRect(){const c=e?.getBoundingClientRect()||{width:0,height:0,x:0,y:0},u=t.axis==="x"||t.axis==="both",p=t.axis==="y"||t.axis==="both",m=["mouseenter","mousemove"].includes(t.dataRef.current.openEvent?.type||"")&&t.pointerType!=="touch";let g=c.width,h=c.height,b=c.x,_=c.y;return s==null&&t.x&&u&&(s=c.x-t.x),o==null&&t.y&&p&&(o=c.y-t.y),b-=s||0,_-=o||0,g=0,h=0,!l||m?(g=t.axis==="y"?c.width:0,h=t.axis==="x"?c.height:0,b=u&&t.x!=null?t.x:b,_=p&&t.y!=null?t.y:_):l&&!m&&(h=t.axis==="x"?c.height:h,g=t.axis==="y"?c.width:g),l=!0,{width:g,height:h,x:b,y:_,top:_,right:b+g,bottom:_+h,left:b}}}}function Z1(e){return e!=null&&e.clientX!=null}function Q5(e,t={}){const{enabled:s=!0,axis:o="both"}=t,l="rootStore"in e?e.rootStore:e,c=l.useState("open"),u=l.useState("floatingElement"),p=l.useState("domReferenceElement"),m=l.context.dataRef,g=x.useRef(!1),h=x.useRef(null),[b,_]=x.useState(),[k,E]=x.useState([]),j=Ue(R=>{l.set("positionReference",R)}),w=Ue((R,A,T)=>{g.current||m.current.openEvent&&!Z1(m.current.openEvent)||l.set("positionReference",K5(T??p,{x:R,y:A,axis:o,dataRef:m,pointerType:b}))}),S=Ue(R=>{c?h.current||(w(R.clientX,R.clientY,R.currentTarget),E([])):w(R.clientX,R.clientY,R.currentTarget)}),C=xo(b)?u:c;x.useEffect(()=>{if(!s){j(p);return}if(!C)return;function R(){h.current?.(),h.current=null}const A=Ft(u);function T(M){const z=In(M);Ke(u,z)?R():w(M.clientX,M.clientY)}return!m.current.openEvent||Z1(m.current.openEvent)?h.current=ht(A,"mousemove",T):j(p),R},[C,s,u,m,p,l,w,j,k]),x.useEffect(()=>()=>{l.set("positionReference",null)},[l]),x.useEffect(()=>{s&&!u&&(g.current=!1)},[s,u]),x.useEffect(()=>{!s&&c&&(g.current=!0)},[s,c]);const N=x.useMemo(()=>{function R(A){_(A.pointerType)}return{onPointerDown:R,onPointerEnter:R,onMouseMove:S,onMouseEnter:S}},[S]);return x.useMemo(()=>s?{reference:N,trigger:N}:{},[s,N])}function Z5(){return!1}function W5(e){return{escapeKey:typeof e=="boolean"?e:e?.escapeKey??!1,outsidePress:typeof e=="boolean"?e:e?.outsidePress??!0}}function Bf(e,t={}){const{enabled:s=!0,escapeKey:o=!0,outsidePress:l=!0,outsidePressEvent:c="sloppy",referencePress:u=Z5,bubbles:p,externalTree:m}=t,g="rootStore"in e?e.rootStore:e,h=g.useState("open"),b=g.useState("floatingElement"),{dataRef:_}=g.context,k=Br(m),E=Ue(typeof l=="function"?l:()=>!1),j=typeof l=="function"?E:l,w=j!==!1,S=Ue(()=>c),{escapeKey:C,outsidePress:N}=W5(p),R=x.useRef(!1),A=x.useRef(!1),T=x.useRef(!1),M=x.useRef(!1),z=x.useRef(""),P=x.useRef(null),D=wn(),I=wn(),B=Ue(()=>{I.clear(),_.current.insideReactTree=!1}),V=Ue(F=>{const W=_.current.floatingContext?.nodeId;return(k?Or(k.nodesRef.current,W):[]).some(ce=>ce.context?.open&&!ce.context.dataRef.current[F])}),H=Ue(F=>Cg(F,g.select("floatingElement"))||Cg(F,g.select("domReferenceElement"))),G=Ue(F=>{u()&&g.setOpen(!1,nt(Zl,F.nativeEvent))}),q=Ue(F=>{if(!h||!s||!o||F.key!=="Escape"||M.current||!C&&V("__escapeKeyBubbles"))return;const W=D3(F)?F.nativeEvent:F,ee=nt(Pf,W);g.setOpen(!1,ee),ee.isCanceled||F.preventDefault(),!C&&!ee.isPropagationAllowed&&F.stopPropagation()}),Y=Ue(()=>{_.current.insideReactTree=!0,I.start(0,B)}),X=Ue(F=>{if(!h||!s||F.button!==0)return;const W=In(F.nativeEvent);Ke(g.select("floatingElement"),W)&&(R.current||(R.current=!0,A.current=!1))}),$=Ue(F=>{!h||!s||(F.defaultPrevented||F.nativeEvent.defaultPrevented)&&R.current&&(A.current=!0)});x.useEffect(()=>{if(!h||!s)return;_.current.__escapeKeyBubbles=C,_.current.__outsidePressBubbles=N;const F=new qa,W=new qa;function ee(){F.clear(),M.current=!0}function ce(){F.start(Dr?5:0,()=>{M.current=!1})}function ue(){T.current=!0,W.start(0,()=>{T.current=!1})}function se(){R.current=!1,A.current=!1}function oe(){const ae=z.current,be=ae==="pen"||!ae?"mouse":ae,$e=S(),Ne=typeof $e=="function"?$e():$e;return typeof Ne=="string"?Ne:Ne[be]}function fe(ae){const be=oe();return be==="intentional"&&ae.type!=="click"||be==="sloppy"&&ae.type==="click"}function Re(ae){const be=_.current.floatingContext?.nodeId,$e=k&&Or(k.nodesRef.current,be).some(Ne=>Cg(ae,Ne.context?.elements.floating));return H(ae)||$e}function le(ae){if(fe(ae)){ae.type!=="click"&&!H(ae)&&(W.clear(),T.current=!1),B();return}if(_.current.insideReactTree){B();return}const be=In(ae),$e=`[${Nc("inert")}]`,Ne=gt(be)?be.getRootNode():null,Me=Array.from((zl(Ne)?Ne:mt(g.select("floatingElement"))).querySelectorAll($e)),Ze=g.context.triggerElements;if(be&&(Ze.hasElement(be)||Ze.hasMatchingElement(_t=>Ke(_t,be))))return;let st=gt(be)?be:null;for(;st&&!rs(st);){const _t=us(st);if(rs(_t)||!gt(_t))break;st=_t}if(!(Me.length&>(be)&&!H3(be)&&!Ke(be,g.select("floatingElement"))&&Me.every(_t=>!Ke(st,_t)))){if(Ut(be)&&!("touches"in ae)){const _t=rs(be),ve=la(be),Ae=/auto|scroll/,He=_t||Ae.test(ve.overflowX),Xe=_t||Ae.test(ve.overflowY),rt=He&&be.clientWidth>0&&be.scrollWidth>be.clientWidth,nn=Xe&&be.clientHeight>0&&be.scrollHeight>be.clientHeight,un=ve.direction==="rtl",pt=nn&&(un?ae.offsetX<=be.offsetWidth-be.clientWidth:ae.offsetX>be.clientWidth),Nt=rt&&ae.offsetY>be.clientHeight;if(pt||Nt)return}if(!Re(ae)){if(oe()==="intentional"&&T.current){W.clear(),T.current=!1;return}typeof j=="function"&&!j(ae)||V("__outsidePressBubbles")||(g.setOpen(!1,nt(Lf,ae)),B())}}}function de(ae){oe()!=="sloppy"||ae.pointerType==="touch"||!g.select("open")||!s||H(ae)||le(ae)}function ke(ae){if(oe()!=="sloppy"||!g.select("open")||!s||H(ae))return;const be=ae.touches[0];be&&(P.current={startTime:Date.now(),startX:be.clientX,startY:be.clientY,dismissOnTouchEnd:!1,dismissOnMouseDown:!0},D.start(1e3,()=>{P.current&&(P.current.dismissOnTouchEnd=!1,P.current.dismissOnMouseDown=!1)}))}function je(ae,be){const $e=In(ae);if(!$e)return;const Ne=ht($e,ae.type,()=>{be(ae),Ne()})}function Be(ae){z.current="touch",je(ae,ke)}function Ve(ae){D.clear(),ae.type==="pointerdown"&&(z.current=ae.pointerType),!(ae.type==="mousedown"&&P.current&&!P.current.dismissOnMouseDown)&&je(ae,be=>{be.type==="pointerdown"?de(be):le(be)})}function we(ae){if(!R.current)return;const be=A.current;if(se(),oe()==="intentional"){if(ae.type==="pointercancel"){be&&ue();return}if(!Re(ae)){if(be){ue();return}typeof j=="function"&&!j(ae)||(W.clear(),T.current=!0,B())}}}function Ee(ae){if(oe()!=="sloppy"||!P.current||H(ae))return;const be=ae.touches[0];if(!be)return;const $e=Math.abs(be.clientX-P.current.startX),Ne=Math.abs(be.clientY-P.current.startY),Me=Math.sqrt($e*$e+Ne*Ne);Me>5&&(P.current.dismissOnTouchEnd=!0),Me>10&&(le(ae),D.clear(),P.current=null)}function _e(ae){je(ae,Ee)}function Ce(ae){oe()!=="sloppy"||!P.current||H(ae)||(P.current.dismissOnTouchEnd&&le(ae),D.clear(),P.current=null)}function Le(ae){je(ae,Ce)}const Pe=mt(b),Ie=os(o&&os(ht(Pe,"keydown",q),ht(Pe,"compositionstart",ee),ht(Pe,"compositionend",ce)),w&&os(ht(Pe,"click",Ve,!0),ht(Pe,"pointerdown",Ve,!0),ht(Pe,"pointerup",we,!0),ht(Pe,"pointercancel",we,!0),ht(Pe,"mousedown",Ve,!0),ht(Pe,"mouseup",we,!0),ht(Pe,"touchstart",Be,!0),ht(Pe,"touchmove",_e,!0),ht(Pe,"touchend",Le,!0)));return()=>{Ie(),F.clear(),W.clear(),se(),T.current=!1}},[_,b,o,w,j,h,s,C,N,q,B,S,V,H,k,g,D]),x.useEffect(B,[j,B]);const K=x.useMemo(()=>({onKeyDown:q,onPointerDown:G,onClick:G}),[q,G]),L=x.useMemo(()=>({onKeyDown:q,onPointerDown:$,onMouseDown:$,onClickCapture:Y,onMouseDownCapture(F){Y(),X(F)},onPointerDownCapture(F){Y(),X(F)},onMouseUpCapture:Y,onTouchEndCapture:Y,onTouchMoveCapture:Y}),[q,Y,X,$]);return x.useMemo(()=>s?{reference:K,floating:L,trigger:K}:{},[s,K,L])}function W1(e,t,s){let{reference:o,floating:l}=e;const c=Oa(t),u=ab(t),p=nb(u),m=oa(t),g=c==="y",h=o.x+o.width/2-l.width/2,b=o.y+o.height/2-l.height/2,_=o[p]/2-l[p]/2;let k;switch(m){case"top":k={x:h,y:o.y-l.height};break;case"bottom":k={x:h,y:o.y+o.height};break;case"right":k={x:o.x+o.width,y:b};break;case"left":k={x:o.x-l.width,y:b};break;default:k={x:o.x,y:o.y}}switch(Pr(t)){case"start":k[u]-=_*(s&&g?-1:1);break;case"end":k[u]+=_*(s&&g?-1:1);break}return k}async function J5(e,t){var s;t===void 0&&(t={});const{x:o,y:l,platform:c,rects:u,elements:p,strategy:m}=e,{boundary:g="clippingAncestors",rootBoundary:h="viewport",elementContext:b="floating",altBoundary:_=!1,padding:k=0}=Xs(t,e),E=fS(k),w=p[_?b==="floating"?"reference":"floating":b],S=Ec(await c.getClippingRect({element:(s=await(c.isElement==null?void 0:c.isElement(w)))==null||s?w:w.contextElement||await(c.getDocumentElement==null?void 0:c.getDocumentElement(p.floating)),boundary:g,rootBoundary:h,strategy:m})),C=b==="floating"?{x:o,y:l,width:u.floating.width,height:u.floating.height}:u.reference,N=await(c.getOffsetParent==null?void 0:c.getOffsetParent(p.floating)),R=await(c.isElement==null?void 0:c.isElement(N))?await(c.getScale==null?void 0:c.getScale(N))||{x:1,y:1}:{x:1,y:1},A=Ec(c.convertOffsetParentRelativeRectToViewportRelativeRect?await c.convertOffsetParentRelativeRectToViewportRelativeRect({elements:p,rect:C,offsetParent:N,strategy:m}):C);return{top:(S.top-A.top+E.top)/R.y,bottom:(A.bottom-S.bottom+E.bottom)/R.y,left:(S.left-A.left+E.left)/R.x,right:(A.right-S.right+E.right)/R.x}}const eO=50,tO=async(e,t,s)=>{const{placement:o="bottom",strategy:l="absolute",middleware:c=[],platform:u}=s,p=u.detectOverflow?u:{...u,detectOverflow:J5},m=await(u.isRTL==null?void 0:u.isRTL(t));let g=await u.getElementRects({reference:e,floating:t,strategy:l}),{x:h,y:b}=W1(g,o,m),_=o,k=0;const E={};for(let j=0;j<c.length;j++){const w=c[j];if(!w)continue;const{name:S,fn:C}=w,{x:N,y:R,data:A,reset:T}=await C({x:h,y:b,initialPlacement:o,placement:_,strategy:l,middlewareData:E,rects:g,platform:p,elements:{reference:e,floating:t}});h=N??h,b=R??b,E[S]={...E[S],...A},T&&k<eO&&(k++,typeof T=="object"&&(T.placement&&(_=T.placement),T.rects&&(g=T.rects===!0?await u.getElementRects({reference:e,floating:t,strategy:l}):T.rects),{x:h,y:b}=W1(g,_,m)),j=-1)}return{x:h,y:b,placement:_,strategy:l,middlewareData:E}},nO=function(e){return e===void 0&&(e={}),{name:"flip",options:e,async fn(t){var s,o;const{placement:l,middlewareData:c,rects:u,initialPlacement:p,platform:m,elements:g}=t,{mainAxis:h=!0,crossAxis:b=!0,fallbackPlacements:_,fallbackStrategy:k="bestFit",fallbackAxisSideDirection:E="none",flipAlignment:j=!0,...w}=Xs(e,t);if((s=c.arrow)!=null&&s.alignmentOffset)return{};const S=oa(l),C=Oa(p),N=oa(p)===p,R=await(m.isRTL==null?void 0:m.isRTL(g.floating)),A=_||(N||!j?[Zd(p)]:i5(p)),T=E!=="none";!_&&T&&A.push(...f5(p,j,E,R));const M=[p,...A],z=await m.detectOverflow(t,w),P=[];let D=((o=c.flip)==null?void 0:o.overflows)||[];if(h&&P.push(z[S]),b){const H=l5(l,u,R);P.push(z[H[0]],z[H[1]])}if(D=[...D,{placement:l,overflows:P}],!P.every(H=>H<=0)){var I,B;const H=(((I=c.flip)==null?void 0:I.index)||0)+1,G=M[H];if(G&&(!(b==="alignment"?C!==Oa(G):!1)||D.every(X=>Oa(X.placement)===C?X.overflows[0]>0:!0)))return{data:{index:H,overflows:D},reset:{placement:G}};let q=(B=D.filter(Y=>Y.overflows[0]<=0).sort((Y,X)=>Y.overflows[1]-X.overflows[1])[0])==null?void 0:B.placement;if(!q)switch(k){case"bestFit":{var V;const Y=(V=D.filter(X=>{if(T){const $=Oa(X.placement);return $===C||$==="y"}return!0}).map(X=>[X.placement,X.overflows.filter($=>$>0).reduce(($,K)=>$+K,0)]).sort((X,$)=>X[1]-$[1])[0])==null?void 0:V[0];Y&&(q=Y);break}case"initialPlacement":q=p;break}if(l!==q)return{reset:{placement:q}}}return{}}}};function J1(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function ej(e){return r5.some(t=>e[t]>=0)}const aO=function(e){return e===void 0&&(e={}),{name:"hide",options:e,async fn(t){const{rects:s,platform:o}=t,{strategy:l="referenceHidden",...c}=Xs(e,t);switch(l){case"referenceHidden":{const u=await o.detectOverflow(t,{...c,elementContext:"reference"}),p=J1(u,s.reference);return{data:{referenceHiddenOffsets:p,referenceHidden:ej(p)}}}case"escaped":{const u=await o.detectOverflow(t,{...c,altBoundary:!0}),p=J1(u,s.floating);return{data:{escapedOffsets:p,escaped:ej(p)}}}default:return{}}}}},BS=new Set(["left","top"]);async function sO(e,t){const{placement:s,platform:o,elements:l}=e,c=await(o.isRTL==null?void 0:o.isRTL(l.floating)),u=oa(s),p=Pr(s),m=Oa(s)==="y",g=BS.has(u)?-1:1,h=c&&m?-1:1,b=Xs(t,e);let{mainAxis:_,crossAxis:k,alignmentAxis:E}=typeof b=="number"?{mainAxis:b,crossAxis:0,alignmentAxis:null}:{mainAxis:b.mainAxis||0,crossAxis:b.crossAxis||0,alignmentAxis:b.alignmentAxis};return p&&typeof E=="number"&&(k=p==="end"?E*-1:E),m?{x:k*h,y:_*g}:{x:_*g,y:k*h}}const rO=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){var s,o;const{x:l,y:c,placement:u,middlewareData:p}=t,m=await sO(t,e);return u===((s=p.offset)==null?void 0:s.placement)&&(o=p.arrow)!=null&&o.alignmentOffset?{}:{x:l+m.x,y:c+m.y,data:{...m,placement:u}}}}},oO=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){const{x:s,y:o,placement:l,platform:c}=t,{mainAxis:u=!0,crossAxis:p=!1,limiter:m={fn:S=>{let{x:C,y:N}=S;return{x:C,y:N}}},...g}=Xs(e,t),h={x:s,y:o},b=await c.detectOverflow(t,g),_=Oa(oa(l)),k=tb(_);let E=h[k],j=h[_];if(u){const S=k==="y"?"top":"left",C=k==="y"?"bottom":"right",N=E+b[S],R=E-b[C];E=Fh(N,E,R)}if(p){const S=_==="y"?"top":"left",C=_==="y"?"bottom":"right",N=j+b[S],R=j-b[C];j=Fh(N,j,R)}const w=m.fn({...t,[k]:E,[_]:j});return{...w,data:{x:w.x-s,y:w.y-o,enabled:{[k]:u,[_]:p}}}}}},lO=function(e){return e===void 0&&(e={}),{options:e,fn(t){const{x:s,y:o,placement:l,rects:c,middlewareData:u}=t,{offset:p=0,mainAxis:m=!0,crossAxis:g=!0}=Xs(e,t),h={x:s,y:o},b=Oa(l),_=tb(b);let k=h[_],E=h[b];const j=Xs(p,t),w=typeof j=="number"?{mainAxis:j,crossAxis:0}:{mainAxis:0,crossAxis:0,...j};if(m){const N=_==="y"?"height":"width",R=c.reference[_]-c.floating[N]+w.mainAxis,A=c.reference[_]+c.reference[N]-w.mainAxis;k<R?k=R:k>A&&(k=A)}if(g){var S,C;const N=_==="y"?"width":"height",R=BS.has(oa(l)),A=c.reference[b]-c.floating[N]+(R&&((S=u.offset)==null?void 0:S[b])||0)+(R?0:w.crossAxis),T=c.reference[b]+c.reference[N]+(R?0:((C=u.offset)==null?void 0:C[b])||0)-(R?w.crossAxis:0);E<A?E=A:E>T&&(E=T)}return{[_]:k,[b]:E}}}},iO=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){var s,o;const{placement:l,rects:c,platform:u,elements:p}=t,{apply:m=()=>{},...g}=Xs(e,t),h=await u.detectOverflow(t,g),b=oa(l),_=Pr(l),k=Oa(l)==="y",{width:E,height:j}=c.floating;let w,S;b==="top"||b==="bottom"?(w=b,S=_===(await(u.isRTL==null?void 0:u.isRTL(p.floating))?"start":"end")?"left":"right"):(S=b,w=_==="end"?"top":"bottom");const C=j-h.top-h.bottom,N=E-h.left-h.right,R=Il(j-h[w],C),A=Il(E-h[S],N),T=!t.middlewareData.shift;let M=R,z=A;if((s=t.middlewareData.shift)!=null&&s.enabled.x&&(z=N),(o=t.middlewareData.shift)!=null&&o.enabled.y&&(M=C),T&&!_){const D=xa(h.left,0),I=xa(h.right,0),B=xa(h.top,0),V=xa(h.bottom,0);k?z=E-2*(D!==0||I!==0?D+I:xa(h.left,h.right)):M=j-2*(B!==0||V!==0?B+V:xa(h.top,h.bottom))}await m({...t,availableWidth:z,availableHeight:M});const P=await u.getDimensions(p.floating);return E!==P.width||j!==P.height?{reset:{rects:!0}}:{}}}};function US(e){const t=la(e);let s=parseFloat(t.width)||0,o=parseFloat(t.height)||0;const l=Ut(e),c=l?e.offsetWidth:s,u=l?e.offsetHeight:o,p=Qd(s)!==c||Qd(o)!==u;return p&&(s=c,o=u),{width:s,height:o,$:p}}function pb(e){return gt(e)?e:e.contextElement}function El(e){const t=pb(e);if(!Ut(t))return ls(1);const s=t.getBoundingClientRect(),{width:o,height:l,$:c}=US(t);let u=(c?Qd(s.width):s.width)/o,p=(c?Qd(s.height):s.height)/l;return(!u||!Number.isFinite(u))&&(u=1),(!p||!Number.isFinite(p))&&(p=1),{x:u,y:p}}const cO=ls(0);function HS(e){const t=Ft(e);return!Qx()||!t.visualViewport?cO:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function uO(e,t,s){return t===void 0&&(t=!1),!s||t&&s!==Ft(e)?!1:t}function _o(e,t,s,o){t===void 0&&(t=!1),s===void 0&&(s=!1);const l=e.getBoundingClientRect(),c=pb(e);let u=ls(1);t&&(o?gt(o)&&(u=El(o)):u=El(e));const p=uO(c,s,o)?HS(c):ls(0);let m=(l.left+p.x)/u.x,g=(l.top+p.y)/u.y,h=l.width/u.x,b=l.height/u.y;if(c){const _=Ft(c),k=o&>(o)?Ft(o):o;let E=_,j=Hh(E);for(;j&&o&&k!==E;){const w=El(j),S=j.getBoundingClientRect(),C=la(j),N=S.left+(j.clientLeft+parseFloat(C.paddingLeft))*w.x,R=S.top+(j.clientTop+parseFloat(C.paddingTop))*w.y;m*=w.x,g*=w.y,h*=w.x,b*=w.y,m+=N,g+=R,E=Ft(j),j=Hh(E)}}return Ec({width:h,height:b,x:m,y:g})}function Uf(e,t){const s=Mf(e).scrollLeft;return t?t.left+s:_o(ms(e)).left+s}function VS(e,t){const s=e.getBoundingClientRect(),o=s.left+t.scrollLeft-Uf(e,s),l=s.top+t.scrollTop;return{x:o,y:l}}function dO(e){let{elements:t,rect:s,offsetParent:o,strategy:l}=e;const c=l==="fixed",u=ms(o),p=t?Af(t.floating):!1;if(o===u||p&&c)return s;let m={scrollLeft:0,scrollTop:0},g=ls(1);const h=ls(0),b=Ut(o);if((b||!b&&!c)&&((Bn(o)!=="body"||Lr(u))&&(m=Mf(o)),b)){const k=_o(o);g=El(o),h.x=k.x+o.clientLeft,h.y=k.y+o.clientTop}const _=u&&!b&&!c?VS(u,m):ls(0);return{width:s.width*g.x,height:s.height*g.y,x:s.x*g.x-m.scrollLeft*g.x+h.x+_.x,y:s.y*g.y-m.scrollTop*g.y+h.y+_.y}}function fO(e){return Array.from(e.getClientRects())}function pO(e){const t=ms(e),s=Mf(e),o=e.ownerDocument.body,l=xa(t.scrollWidth,t.clientWidth,o.scrollWidth,o.clientWidth),c=xa(t.scrollHeight,t.clientHeight,o.scrollHeight,o.clientHeight);let u=-s.scrollLeft+Uf(e);const p=-s.scrollTop;return la(o).direction==="rtl"&&(u+=xa(t.clientWidth,o.clientWidth)-l),{width:l,height:c,x:u,y:p}}const tj=25;function mO(e,t){const s=Ft(e),o=ms(e),l=s.visualViewport;let c=o.clientWidth,u=o.clientHeight,p=0,m=0;if(l){c=l.width,u=l.height;const h=Qx();(!h||h&&t==="fixed")&&(p=l.offsetLeft,m=l.offsetTop)}const g=Uf(o);if(g<=0){const h=o.ownerDocument,b=h.body,_=getComputedStyle(b),k=h.compatMode==="CSS1Compat"&&parseFloat(_.marginLeft)+parseFloat(_.marginRight)||0,E=Math.abs(o.clientWidth-b.clientWidth-k);E<=tj&&(c-=E)}else g<=tj&&(c+=g);return{width:c,height:u,x:p,y:m}}function gO(e,t){const s=_o(e,!0,t==="fixed"),o=s.top+e.clientTop,l=s.left+e.clientLeft,c=Ut(e)?El(e):ls(1),u=e.clientWidth*c.x,p=e.clientHeight*c.y,m=l*c.x,g=o*c.y;return{width:u,height:p,x:m,y:g}}function nj(e,t,s){let o;if(t==="viewport")o=mO(e,s);else if(t==="document")o=pO(ms(e));else if(gt(t))o=gO(t,s);else{const l=HS(e);o={x:t.x-l.x,y:t.y-l.y,width:t.width,height:t.height}}return Ec(o)}function qS(e,t){const s=us(e);return s===t||!gt(s)||rs(s)?!1:la(s).position==="fixed"||qS(s,t)}function hO(e,t){const s=t.get(e);if(s)return s;let o=Cc(e,[],!1).filter(p=>gt(p)&&Bn(p)!=="body"),l=null;const c=la(e).position==="fixed";let u=c?us(e):e;for(;gt(u)&&!rs(u);){const p=la(u),m=Kx(u);!m&&p.position==="fixed"&&(l=null),(c?!m&&!l:!m&&p.position==="static"&&!!l&&(l.position==="absolute"||l.position==="fixed")||Lr(u)&&!m&&qS(e,u))?o=o.filter(h=>h!==u):l=p,u=us(u)}return t.set(e,o),o}function xO(e){let{element:t,boundary:s,rootBoundary:o,strategy:l}=e;const u=[...s==="clippingAncestors"?Af(t)?[]:hO(t,this._c):[].concat(s),o],p=nj(t,u[0],l);let m=p.top,g=p.right,h=p.bottom,b=p.left;for(let _=1;_<u.length;_++){const k=nj(t,u[_],l);m=xa(k.top,m),g=Il(k.right,g),h=Il(k.bottom,h),b=xa(k.left,b)}return{width:g-b,height:h-m,x:b,y:m}}function bO(e){const{width:t,height:s}=US(e);return{width:t,height:s}}function vO(e,t,s){const o=Ut(t),l=ms(t),c=s==="fixed",u=_o(e,!0,c,t);let p={scrollLeft:0,scrollTop:0};const m=ls(0);function g(){m.x=Uf(l)}if(o||!o&&!c)if((Bn(t)!=="body"||Lr(l))&&(p=Mf(t)),o){const k=_o(t,!0,c,t);m.x=k.x+t.clientLeft,m.y=k.y+t.clientTop}else l&&g();c&&!o&&l&&g();const h=l&&!o&&!c?VS(l,p):ls(0),b=u.left+p.scrollLeft-m.x-h.x,_=u.top+p.scrollTop-m.y-h.y;return{x:b,y:_,width:u.width,height:u.height}}function Ag(e){return la(e).position==="static"}function aj(e,t){if(!Ut(e)||la(e).position==="fixed")return null;if(t)return t(e);let s=e.offsetParent;return ms(e)===s&&(s=s.ownerDocument.body),s}function $S(e,t){const s=Ft(e);if(Af(e))return s;if(!Ut(e)){let l=us(e);for(;l&&!rs(l);){if(gt(l)&&!Ag(l))return l;l=us(l)}return s}let o=aj(e,t);for(;o&&P3(o)&&Ag(o);)o=aj(o,t);return o&&rs(o)&&Ag(o)&&!Kx(o)?s:o||U3(e)||s}const _O=async function(e){const t=this.getOffsetParent||$S,s=this.getDimensions,o=await s(e.floating);return{reference:vO(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:o.width,height:o.height}}};function yO(e){return la(e).direction==="rtl"}const FS={convertOffsetParentRelativeRectToViewportRelativeRect:dO,getDocumentElement:ms,getClippingRect:xO,getOffsetParent:$S,getElementRects:_O,getClientRects:fO,getDimensions:bO,getScale:El,isElement:gt,isRTL:yO};function GS(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function jO(e,t){let s=null,o;const l=ms(e);function c(){var p;clearTimeout(o),(p=s)==null||p.disconnect(),s=null}function u(p,m){p===void 0&&(p=!1),m===void 0&&(m=1),c();const g=e.getBoundingClientRect(),{left:h,top:b,width:_,height:k}=g;if(p||t(),!_||!k)return;const E=cd(b),j=cd(l.clientWidth-(h+_)),w=cd(l.clientHeight-(b+k)),S=cd(h),N={rootMargin:-E+"px "+-j+"px "+-w+"px "+-S+"px",threshold:xa(0,Il(1,m))||1};let R=!0;function A(T){const M=T[0].intersectionRatio;if(M!==m){if(!R)return u();M?u(!1,M):o=setTimeout(()=>{u(!1,1e-7)},1e3)}M===1&&!GS(g,e.getBoundingClientRect())&&u(),R=!1}try{s=new IntersectionObserver(A,{...N,root:l.ownerDocument})}catch{s=new IntersectionObserver(A,N)}s.observe(e)}return u(!0),c}function sj(e,t,s,o){o===void 0&&(o={});const{ancestorScroll:l=!0,ancestorResize:c=!0,elementResize:u=typeof ResizeObserver=="function",layoutShift:p=typeof IntersectionObserver=="function",animationFrame:m=!1}=o,g=pb(e),h=l||c?[...g?Cc(g):[],...t?Cc(t):[]]:[];h.forEach(S=>{l&&S.addEventListener("scroll",s,{passive:!0}),c&&S.addEventListener("resize",s)});const b=g&&p?jO(g,s):null;let _=-1,k=null;u&&(k=new ResizeObserver(S=>{let[C]=S;C&&C.target===g&&k&&t&&(k.unobserve(t),cancelAnimationFrame(_),_=requestAnimationFrame(()=>{var N;(N=k)==null||N.observe(t)})),s()}),g&&!m&&k.observe(g),t&&k.observe(t));let E,j=m?_o(e):null;m&&w();function w(){const S=_o(e);j&&!GS(j,S)&&s(),j=S,E=requestAnimationFrame(w)}return s(),()=>{var S;h.forEach(C=>{l&&C.removeEventListener("scroll",s),c&&C.removeEventListener("resize",s)}),b?.(),(S=k)==null||S.disconnect(),k=null,m&&cancelAnimationFrame(E)}}const wO=rO,kO=oO,SO=nO,CO=iO,EO=aO,NO=lO,RO=(e,t,s)=>{const o=new Map,l={platform:FS,...s},c={...l.platform,_c:o};return tO(e,t,{...l,platform:c})};var TO=typeof document<"u",AO=function(){},Ld=TO?x.useLayoutEffect:AO;function tf(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e=="function"&&e.toString()===t.toString())return!0;let s,o,l;if(e&&t&&typeof e=="object"){if(Array.isArray(e)){if(s=e.length,s!==t.length)return!1;for(o=s;o--!==0;)if(!tf(e[o],t[o]))return!1;return!0}if(l=Object.keys(e),s=l.length,s!==Object.keys(t).length)return!1;for(o=s;o--!==0;)if(!{}.hasOwnProperty.call(t,l[o]))return!1;for(o=s;o--!==0;){const c=l[o];if(!(c==="_owner"&&e.$$typeof)&&!tf(e[c],t[c]))return!1}return!0}return e!==e&&t!==t}function YS(e){return typeof window>"u"?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function rj(e,t){const s=YS(e);return Math.round(t*s)/s}function Mg(e){const t=x.useRef(e);return Ld(()=>{t.current=e}),t}function MO(e){e===void 0&&(e={});const{placement:t="bottom",strategy:s="absolute",middleware:o=[],platform:l,elements:{reference:c,floating:u}={},transform:p=!0,whileElementsMounted:m,open:g}=e,[h,b]=x.useState({x:0,y:0,strategy:s,placement:t,middlewareData:{},isPositioned:!1}),[_,k]=x.useState(o);tf(_,o)||k(o);const[E,j]=x.useState(null),[w,S]=x.useState(null),C=x.useCallback(X=>{X!==T.current&&(T.current=X,j(X))},[]),N=x.useCallback(X=>{X!==M.current&&(M.current=X,S(X))},[]),R=c||E,A=u||w,T=x.useRef(null),M=x.useRef(null),z=x.useRef(h),P=m!=null,D=Mg(m),I=Mg(l),B=Mg(g),V=x.useCallback(()=>{if(!T.current||!M.current)return;const X={placement:t,strategy:s,middleware:_};I.current&&(X.platform=I.current),RO(T.current,M.current,X).then($=>{const K={...$,isPositioned:B.current!==!1};H.current&&!tf(z.current,K)&&(z.current=K,is.flushSync(()=>{b(K)}))})},[_,t,s,I,B]);Ld(()=>{g===!1&&z.current.isPositioned&&(z.current.isPositioned=!1,b(X=>({...X,isPositioned:!1})))},[g]);const H=x.useRef(!1);Ld(()=>(H.current=!0,()=>{H.current=!1}),[]),Ld(()=>{if(R&&(T.current=R),A&&(M.current=A),R&&A){if(D.current)return D.current(R,A,V);V()}},[R,A,V,D,P]);const G=x.useMemo(()=>({reference:T,floating:M,setReference:C,setFloating:N}),[C,N]),q=x.useMemo(()=>({reference:R,floating:A}),[R,A]),Y=x.useMemo(()=>{const X={position:s,left:0,top:0};if(!q.floating)return X;const $=rj(q.floating,h.x),K=rj(q.floating,h.y);return p?{...X,transform:"translate("+$+"px, "+K+"px)",...YS(q.floating)>=1.5&&{willChange:"transform"}}:{position:s,left:$,top:K}},[s,p,q.floating,h.x,h.y]);return x.useMemo(()=>({...h,update:V,refs:G,elements:q,floatingStyles:Y}),[h,V,G,q,Y])}const OO=(e,t)=>{const s=wO(e);return{name:s.name,fn:s.fn,options:[e,t]}},zO=(e,t)=>{const s=kO(e);return{name:s.name,fn:s.fn,options:[e,t]}},DO=(e,t)=>({fn:NO(e).fn,options:[e,t]}),LO=(e,t)=>{const s=SO(e);return{name:s.name,fn:s.fn,options:[e,t]}},PO=(e,t)=>{const s=CO(e);return{name:s.name,fn:s.fn,options:[e,t]}},IO=(e,t)=>{const s=EO(e);return{name:s.name,fn:s.fn,options:[e,t]}};function mb(e){const t=x.useRef(!0);t.current&&(t.current=!1,e())}const Te=(e,t,s,o,l,c,...u)=>{if(u.length>0)throw new Error(tn(1));let p;if(e)p=e;else throw new Error("Missing arguments");return p};var Og={exports:{}},zg={};/**
|
|
596
|
+
* @license React
|
|
597
|
+
* use-sync-external-store-shim.production.js
|
|
598
|
+
*
|
|
599
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
600
|
+
*
|
|
601
|
+
* This source code is licensed under the MIT license found in the
|
|
602
|
+
* LICENSE file in the root directory of this source tree.
|
|
603
|
+
*/var oj;function BO(){if(oj)return zg;oj=1;var e=Oc();function t(b,_){return b===_&&(b!==0||1/b===1/_)||b!==b&&_!==_}var s=typeof Object.is=="function"?Object.is:t,o=e.useState,l=e.useEffect,c=e.useLayoutEffect,u=e.useDebugValue;function p(b,_){var k=_(),E=o({inst:{value:k,getSnapshot:_}}),j=E[0].inst,w=E[1];return c(function(){j.value=k,j.getSnapshot=_,m(j)&&w({inst:j})},[b,k,_]),l(function(){return m(j)&&w({inst:j}),b(function(){m(j)&&w({inst:j})})},[b]),u(k),k}function m(b){var _=b.getSnapshot;b=b.value;try{var k=_();return!s(b,k)}catch{return!0}}function g(b,_){return _()}var h=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?g:p;return zg.useSyncExternalStore=e.useSyncExternalStore!==void 0?e.useSyncExternalStore:h,zg}var lj;function XS(){return lj||(lj=1,Og.exports=BO()),Og.exports}var nf=XS(),Dg={exports:{}},Lg={};/**
|
|
604
|
+
* @license React
|
|
605
|
+
* use-sync-external-store-shim/with-selector.production.js
|
|
606
|
+
*
|
|
607
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
608
|
+
*
|
|
609
|
+
* This source code is licensed under the MIT license found in the
|
|
610
|
+
* LICENSE file in the root directory of this source tree.
|
|
611
|
+
*/var ij;function UO(){if(ij)return Lg;ij=1;var e=Oc(),t=XS();function s(g,h){return g===h&&(g!==0||1/g===1/h)||g!==g&&h!==h}var o=typeof Object.is=="function"?Object.is:s,l=t.useSyncExternalStore,c=e.useRef,u=e.useEffect,p=e.useMemo,m=e.useDebugValue;return Lg.useSyncExternalStoreWithSelector=function(g,h,b,_,k){var E=c(null);if(E.current===null){var j={hasValue:!1,value:null};E.current=j}else j=E.current;E=p(function(){function S(T){if(!C){if(C=!0,N=T,T=_(T),k!==void 0&&j.hasValue){var M=j.value;if(k(M,T))return R=M}return R=T}if(M=R,o(N,T))return M;var z=_(T);return k!==void 0&&k(M,z)?(N=T,M):(N=T,R=z)}var C=!1,N,R,A=b===void 0?null:b;return[function(){return S(h())},A===null?void 0:function(){return S(A())}]},[h,b,_,k]);var w=l(g,E[0],E[1]);return u(function(){j.hasValue=!0,j.value=w},[w]),m(w),w},Lg}var cj;function HO(){return cj||(cj=1,Dg.exports=UO()),Dg.exports}var VO=HO();const qO=ob(19),$O=qO?GO:YO;function tt(e,t,s,o,l){return $O(e,t,s,o,l)}function FO(e,t,s,o,l){const c=x.useCallback(()=>t(e.getSnapshot(),s,o,l),[e,t,s,o,l]);return nf.useSyncExternalStore(e.subscribe,c,c)}k3({before(e){e.syncIndex=0,e.didInitialize||(e.syncTick=1,e.syncHooks=[],e.didChangeStore=!0,e.getSnapshot=()=>{let t=!1;for(let s=0;s<e.syncHooks.length;s+=1){const o=e.syncHooks[s],l=o.selector(o.store.state,o.a1,o.a2,o.a3);Object.is(o.value,l)||(t=!0,o.value=l)}return t&&(e.syncTick+=1),e.syncTick})},after(e){e.syncHooks.length>0&&(e.didChangeStore&&(e.didChangeStore=!1,e.subscribe=t=>{const s=new Set;for(const l of e.syncHooks)s.add(l.store);const o=[];for(const l of s)o.push(l.subscribe(t));return()=>{for(const l of o)l()}}),nf.useSyncExternalStore(e.subscribe,e.getSnapshot,e.getSnapshot))}});function GO(e,t,s,o,l){const c=w3();if(!c)return FO(e,t,s,o,l);const u=c.syncIndex;c.syncIndex+=1;let p;return c.didInitialize?(p=c.syncHooks[u],(p.store!==e||p.selector!==t||!Object.is(p.a1,s)||!Object.is(p.a2,o)||!Object.is(p.a3,l))&&(p.store!==e&&(c.didChangeStore=!0),p.store=e,p.selector=t,p.a1=s,p.a2=o,p.a3=l,p.value=t(e.getSnapshot(),s,o,l))):(p={store:e,selector:t,a1:s,a2:o,a3:l,value:t(e.getSnapshot(),s,o,l)},c.syncHooks.push(p)),p.value}function YO(e,t,s,o,l){return VO.useSyncExternalStoreWithSelector(e.subscribe,e.getSnapshot,e.getSnapshot,c=>t(c,s,o,l))}class KS{constructor(t){this.state=t,this.listeners=new Set,this.updateTick=0}subscribe=t=>(this.listeners.add(t),()=>{this.listeners.delete(t)});getSnapshot=()=>this.state;setState(t){if(this.state===t)return;this.state=t,this.updateTick+=1;const s=this.updateTick;for(const o of this.listeners){if(s!==this.updateTick)return;o(t)}}update(t){for(const s in t)if(!Object.is(this.state[s],t[s])){this.setState({...this.state,...t});return}}set(t,s){Object.is(this.state[t],s)||this.setState({...this.state,[t]:s})}notifyAll(){const t={...this.state};this.setState(t)}use(t,s,o,l){return tt(this,t,s,o,l)}}class Hf extends KS{constructor(t,s={},o){super(t),this.context=s,this.selectors=o}useSyncedValue(t,s){x.useDebugValue(t);const o=this;ze(()=>{o.state[t]!==s&&o.set(t,s)},[o,t,s])}useSyncedValueWithCleanup(t,s){const o=this;ze(()=>(o.state[t]!==s&&o.set(t,s),()=>{o.set(t,void 0)}),[o,t,s])}useSyncedValues(t){const s=this,o=Object.values(t);ze(()=>{s.update(t)},[s,...o])}useControlledProp(t,s){x.useDebugValue(t);const o=this,l=s!==void 0;ze(()=>{l&&!Object.is(o.state[t],s)&&o.setState({...o.state,[t]:s})},[o,t,s,l])}select(t,s,o,l){const c=this.selectors[t];return c(this.state,s,o,l)}useState(t,s,o,l){return x.useDebugValue(t),tt(this,this.selectors[t],s,o,l)}useContextCallback(t,s){x.useDebugValue(t);const o=Ue(s??En);this.context[t]=o}useStateSetter(t){const s=x.useRef(void 0);return s.current===void 0&&(s.current=o=>{this.set(t,o)}),s.current}observe(t,s){let o;typeof t=="function"?o=t:o=this.selectors[t];let l=o(this.state);return s(l,l,this),this.subscribe(c=>{const u=o(c);if(!Object.is(l,u)){const p=l;l=u,s(u,p,this)}})}}const XO={open:Te(e=>e.open),transitionStatus:Te(e=>e.transitionStatus),domReferenceElement:Te(e=>e.domReferenceElement),referenceElement:Te(e=>e.positionReference??e.referenceElement),floatingElement:Te(e=>e.floatingElement),floatingId:Te(e=>e.floatingId)};class Vf extends Hf{constructor(t){const{syncOnly:s,nested:o,onOpenChange:l,triggerElements:c,...u}=t;super({...u,positionReference:u.referenceElement,domReferenceElement:u.referenceElement},{onOpenChange:l,dataRef:{current:{}},events:zS(),nested:o,triggerElements:c},XO),this.syncOnly=s}syncOpenEvent=(t,s)=>{(!t||!this.state.open||s!=null&&L3(s))&&(this.context.dataRef.current.openEvent=t?s:void 0)};dispatchOpenChange=(t,s)=>{this.syncOpenEvent(t,s.event);const o={open:t,reason:s.reason,nativeEvent:s.event,nested:this.context.nested,triggerElement:s.trigger};this.context.events.emit("openchange",o)};setOpen=(t,s)=>{if(this.syncOnly){this.context.onOpenChange?.(t,s);return}this.dispatchOpenChange(t,s),this.context.onOpenChange?.(t,s)}}function QS(e){const{popupStore:t,treatPopupAsFloatingElement:s=!1,floatingRootContext:o,floatingId:l,nested:c,onOpenChange:u}=e,p=t.useState("open"),m=t.useState("activeTriggerElement"),g=t.useState(s?"popupElement":"positionerElement"),h=t.context.triggerElements,b=u,_=x.useRef(null);o===void 0&&_.current===null&&(_.current=new Vf({open:p,transitionStatus:void 0,referenceElement:m,floatingElement:g,triggerElements:h,onOpenChange:b,floatingId:l,syncOnly:!0,nested:c}));const k=o??_.current;return t.useSyncedValue("floatingId",l),ze(()=>{const E={open:p,floatingId:l,referenceElement:m,floatingElement:g};gt(m)&&(E.domReferenceElement=m),k.state.positionReference===k.state.referenceElement&&(E.positionReference=m),k.update(E)},[p,l,m,g,k]),k.context.onOpenChange=b,k.context.nested=c,k}function Wl(e,t=!1,s=!1){const[o,l]=x.useState(e&&t?"idle":void 0),[c,u]=x.useState(e);return e&&!c&&(u(!0),l("starting")),!e&&c&&o!=="ending"&&!s&&l("ending"),!e&&!c&&o==="ending"&&l(void 0),ze(()=>{if(!e&&c&&o!=="ending"&&s){const p=ts.request(()=>{l("ending")});return()=>{ts.cancel(p)}}},[e,c,o,s]),ze(()=>{if(!e||t)return;const p=ts.request(()=>{l(void 0)});return()=>{ts.cancel(p)}},[t,e]),ze(()=>{if(!e||!t)return;e&&c&&o!=="idle"&&l("starting");const p=ts.request(()=>{l("idle")});return()=>{ts.cancel(p)}},[t,e,c,o]),{mounted:c,setMounted:u,transitionStatus:o}}let yo=(function(e){return e.startingStyle="data-starting-style",e.endingStyle="data-ending-style",e})({});const KO={[yo.startingStyle]:""},QO={[yo.endingStyle]:""},Ws={transitionStatus(e){return e==="starting"?KO:e==="ending"?QO:null}};function ZS(e,t=!1,s=!0){const o=Ll();return Ue((l,c=null)=>{o.cancel();const u=Us(e);if(u==null)return;const p=u,m=()=>{is.flushSync(l)};if(typeof p.getAnimations!="function"||globalThis.BASE_UI_ANIMATIONS_DISABLED){l();return}function g(){Promise.all(p.getAnimations().map(h=>h.finished)).then(()=>{c?.aborted||m()}).catch(()=>{if(s){c?.aborted||m();return}const h=p.getAnimations();!c?.aborted&&h.length>0&&h.some(b=>b.pending||b.playState!=="finished")&&g()})}if(t){const h=yo.startingStyle;if(!p.hasAttribute(h)){o.request(g);return}const b=new MutationObserver(()=>{p.hasAttribute(h)||(b.disconnect(),g())});b.observe(p,{attributes:!0,attributeFilter:[h]}),c?.addEventListener("abort",()=>b.disconnect(),{once:!0});return}o.request(g)})}function gs(e){const{enabled:t=!0,open:s,ref:o,onComplete:l}=e,c=Ue(l),u=ZS(o,s,!1);x.useEffect(()=>{if(!t)return;const p=new AbortController;return u(c,p.signal),()=>{p.abort()}},[t,s,c,u])}const qf={tabIndex:-1,[Vh]:""};function ZO(e){return t=>t==="touch"?e.current:!0}function WS(e,t,s=!1){const o=vo(),l=Ir()!=null,c=x.useRef(null);e===void 0&&c.current===null&&(c.current=t(o,l));const u=e??c.current;return QS({popupStore:u,treatPopupAsFloatingElement:s,floatingRootContext:u.state.floatingRootContext,floatingId:o,nested:l,onOpenChange:u.setOpen}),{store:u,internalStore:c.current}}function WO(e,t){const s=x.useRef(null),o=x.useRef(null);return x.useCallback(l=>{if(e===void 0)return;let c=!1;if(s.current!==null){const u=s.current,p=o.current,m=t.context.triggerElements.getById(u);p&&m===p&&(t.context.triggerElements.delete(u),c=!0),s.current=null,o.current=null}if(l!==null&&(s.current=e,o.current=l,t.context.triggerElements.add(e,l),c=!0),c){const u=t.context.triggerElements.size;t.select("open")&&t.state.triggerCount!==u&&t.set("triggerCount",u)}},[t,e])}function gb(e,t,s,o=!1){t?e.preventUnmountingOnClose=!1:o&&(e.preventUnmountingOnClose=!0);const l=s?.id??null;(l||t)&&(e.activeTriggerId=l,e.activeTriggerElement=s??null)}function JS(e){let t=!1;return e.preventUnmountOnClose=()=>{t=!0},()=>t}function JO(e,t,s,o={}){const l=s.reason,c=l===Nn,u=t&&l===kl,p=!t&&(l===Zl||l===Pf),m=JS(s);if(e.context.onOpenChange?.(t,s),s.isCanceled)return;o.onBeforeDispatch?.(),e.state.floatingRootContext.dispatchOpenChange(t,s);const g=()=>{const h={...o.extraState,open:t};u?h.instantType="focus":p?h.instantType="dismiss":c&&(h.instantType=void 0),gb(h,t,s.trigger,m()),e.update(h)};c?is.flushSync(g):g()}function e2(e,t,s,o){mb(()=>{t===void 0&&e.state.open===!1&&s&&(e.state={...e.state,open:!0,activeTriggerId:o,preventUnmountingOnClose:!1})})}function t2(e,t,s,o){const l=s.useState("isMountedByTrigger",e),c=WO(e,s),u=Ue(p=>{if(c(p),!p)return;const m=s.select("open"),g=s.select("activeTriggerId");if(g===e){s.update({activeTriggerElement:p,...m?o:null});return}g==null&&m&&s.update({activeTriggerId:e,activeTriggerElement:p,...o})});return ze(()=>{l&&s.update({activeTriggerElement:t.current,...o})},[l,s,t,...Object.values(o)]),{registerTrigger:u,isMountedByThisTrigger:l}}function hb(e,t={}){const{closeOnActiveTriggerUnmount:s=!1}=t,o=e.useState("open"),l=e.useState("triggerCount");ze(()=>{if(!o){e.state.triggerCount!==0&&e.set("triggerCount",0);return}const c=e.context.triggerElements.size,u={};e.state.triggerCount!==c&&(u.triggerCount=c);const p=e.select("activeTriggerId");let m=null;if(p){const g=e.context.triggerElements.getById(p);g?g!==e.state.activeTriggerElement&&(u.activeTriggerElement=g):m=p}if(!m&&!p&&c===1){const g=e.context.triggerElements.entries().next();if(!g.done){const[h,b]=g.value;u.activeTriggerId=h,u.activeTriggerElement=b}}(u.triggerCount!==void 0||u.activeTriggerId!==void 0||u.activeTriggerElement!==void 0)&&e.update(u),m&&s&&queueMicrotask(()=>{if(e.select("open")&&e.select("activeTriggerId")===m&&!e.context.triggerElements.getById(m)){const g=nt(ds);e.setOpen(!1,g),g.isCanceled||e.update({activeTriggerId:null,activeTriggerElement:null})}})},[o,e,l,s])}function xb(e,t,s){const{mounted:o,setMounted:l,transitionStatus:c}=Wl(e),u=t.useState("preventUnmountingOnClose"),p=e?!1:u;t.useSyncedValues({mounted:o,transitionStatus:c,preventUnmountingOnClose:p});const m=Ue(()=>{l(!1),t.update({activeTriggerId:null,activeTriggerElement:null,mounted:!1,preventUnmountingOnClose:!1}),s?.(),t.context.onOpenChangeComplete?.(!1)});return gs({enabled:o&&!e&&!p,open:e,ref:t.context.popupRef,onComplete(){e||m()}}),{forceUnmount:m,transitionStatus:c}}function bb(e,t){e.useSyncedValues(t),ze(()=>()=>{e.update({activeTriggerProps:$t,inactiveTriggerProps:$t,popupProps:$t})},[e])}function e4(e,t){ze(()=>{!t&&e.state.openMethod!==null&&e.set("openMethod",null)},[t,e]),ze(()=>()=>{e.state.openMethod!==null&&e.set("openMethod",null)},[e])}class Uc{constructor(){this.elementsSet=new Set,this.idMap=new Map}add(t,s){const o=this.idMap.get(t);o!==s&&(o!==void 0&&this.elementsSet.delete(o),this.elementsSet.add(s),this.idMap.set(t,s))}delete(t){const s=this.idMap.get(t);s&&(this.elementsSet.delete(s),this.idMap.delete(t))}hasElement(t){return this.elementsSet.has(t)}hasMatchingElement(t){for(const s of this.elementsSet)if(t(s))return!0;return!1}getById(t){return this.idMap.get(t)}entries(){return this.idMap.entries()}elements(){return this.elementsSet.values()}get size(){return this.idMap.size}}function t4(){return new Vf({open:!1,transitionStatus:void 0,floatingElement:null,referenceElement:null,triggerElements:new Uc,floatingId:void 0,syncOnly:!1,nested:!1,onOpenChange:void 0})}function vb(){return{open:!1,openProp:void 0,mounted:!1,transitionStatus:void 0,floatingRootContext:t4(),floatingId:void 0,triggerCount:0,preventUnmountingOnClose:!1,payload:void 0,activeTriggerId:null,activeTriggerElement:null,triggerIdProp:void 0,popupElement:null,positionerElement:null,activeTriggerProps:$t,inactiveTriggerProps:$t,popupProps:$t}}function n2(e,t,s=!1){return new Vf({open:!1,transitionStatus:void 0,floatingElement:null,referenceElement:null,triggerElements:e,floatingId:t,syncOnly:!0,nested:s,onOpenChange:void 0})}const xc=Te(e=>e.triggerIdProp??e.activeTriggerId),_b=Te(e=>e.openProp??e.open),uj=Te(e=>(e.popupElement?.id??e.floatingId)||void 0);function a2(e,t){return t!==void 0&&_b(e)&&xc(e)===t}function n4(e,t){return a2(e,t)?!0:t!==void 0&&_b(e)&&xc(e)==null&&e.triggerCount===1}const yb={open:_b,mounted:Te(e=>e.mounted),transitionStatus:Te(e=>e.transitionStatus),floatingRootContext:Te(e=>e.floatingRootContext),triggerCount:Te(e=>e.triggerCount),preventUnmountingOnClose:Te(e=>e.preventUnmountingOnClose),payload:Te(e=>e.payload),activeTriggerId:xc,activeTriggerElement:Te(e=>e.mounted?e.activeTriggerElement:null),popupId:uj,isTriggerActive:Te((e,t)=>t!==void 0&&xc(e)===t),isOpenedByTrigger:Te((e,t)=>a2(e,t)),isMountedByTrigger:Te((e,t)=>t!==void 0&&xc(e)===t&&e.mounted),triggerProps:Te((e,t)=>t?e.activeTriggerProps:e.inactiveTriggerProps),triggerPopupId:Te((e,t)=>n4(e,t)?uj(e):void 0),popupProps:Te(e=>e.popupProps),popupElement:Te(e=>e.popupElement),positionerElement:Te(e=>e.positionerElement)};function s2(e){const{open:t=!1,onOpenChange:s,elements:o={}}=e,l=vo(),c=Ir()!=null,u=Xn(()=>new Vf({open:t,transitionStatus:void 0,onOpenChange:s,referenceElement:o.reference??null,floatingElement:o.floating??null,triggerElements:new Uc,floatingId:l,syncOnly:!1,nested:c})).current;return ze(()=>{const p={open:t,floatingId:l};o.reference!==void 0&&(p.referenceElement=o.reference,p.domReferenceElement=gt(o.reference)?o.reference:null),o.floating!==void 0&&(p.floatingElement=o.floating),u.update(p)},[t,l,o.reference,o.floating,u]),u.context.onOpenChange=s,u.context.nested=c,u}function a4(e={}){const{nodeId:t,externalTree:s}=e,o=s2(e),l=e.rootContext||o,c=l.useState("referenceElement"),u=l.useState("floatingElement"),p=l.useState("domReferenceElement"),m=l.useState("open"),g=l.useState("floatingId"),[h,b]=x.useState(null),[_,k]=x.useState(void 0),[E,j]=x.useState(void 0),w=x.useRef(null),S=Br(s),C=x.useMemo(()=>({reference:c,floating:u,domReference:p}),[c,u,p]),N=MO({...e,elements:{...C,...h&&{reference:h}}}),R=gt(_)?_:null,A=E===void 0?l.state.floatingElement:E;l.useSyncedValue("referenceElement",_??null),l.useSyncedValue("domReferenceElement",_===void 0?p:R),l.useSyncedValue("floatingElement",A);const T=x.useCallback(B=>{const V=gt(B)?{getBoundingClientRect:()=>B.getBoundingClientRect(),getClientRects:()=>B.getClientRects(),contextElement:B}:B;b(V),N.refs.setReference(V)},[N.refs]),M=x.useCallback(B=>{(gt(B)||B===null)&&(w.current=B,k(B)),(gt(N.refs.reference.current)||N.refs.reference.current===null||B!==null&&!gt(B))&&N.refs.setReference(B)},[N.refs,k]),z=x.useCallback(B=>{j(B),N.refs.setFloating(B)},[N.refs]),P=x.useMemo(()=>({...N.refs,setReference:M,setFloating:z,setPositionReference:T,domReference:w}),[N.refs,M,z,T]),D=x.useMemo(()=>({...N.elements,domReference:p}),[N.elements,p]),I=x.useMemo(()=>({...N,dataRef:l.context.dataRef,open:m,onOpenChange:l.setOpen,events:l.context.events,floatingId:g,refs:P,elements:D,nodeId:t,rootStore:l}),[N,P,D,t,l,m,g]);return ze(()=>{p&&(w.current=p)},[p]),ze(()=>{l.context.dataRef.current.floatingContext=I;const B=S?.nodesRef.current.find(V=>V.id===t);B&&(B.context=I)}),x.useMemo(()=>({...N,context:I,refs:P,elements:D,rootStore:l}),[N,P,D,I,l])}const Pg=Fx&&Dr;function r2(e,t={}){const{enabled:s=!0,delay:o}=t,l="rootStore"in e?e.rootStore:e,{events:c,dataRef:u}=l.context,p=x.useRef(!1),m=x.useRef(null),g=x.useRef(!0),h=wn();x.useEffect(()=>{const _=l.select("domReferenceElement");if(!s)return;const k=Ft(_);function E(){const S=l.select("domReferenceElement");!l.select("open")&&Ut(S)&&S===Vn(mt(S))&&(p.current=!0)}function j(){g.current=!0}function w(){g.current=!1}return os(ht(k,"blur",E),Pg&&ht(k,"keydown",j,!0),Pg&&ht(k,"pointerdown",w,!0))},[l,s]),x.useEffect(()=>{if(!s)return;function _(k){if(k.reason===Zl||k.reason===Pf){const E=l.select("domReferenceElement");gt(E)&&(m.current=E,p.current=!0)}}return c.on("openchange",_),()=>{c.off("openchange",_)}},[c,s,l]);const b=x.useMemo(()=>{function _(){p.current=!1,m.current=null}return{onMouseLeave(){_()},onFocus(k){const E=k.currentTarget;if(p.current){if(m.current===E)return;_()}const j=In(k.nativeEvent);if(gt(j)){if(Pg&&!k.relatedTarget){if(!g.current&&!Df(j))return}else if(!q3(j))return}const w=Xd(k.relatedTarget,l.context.triggerElements),{nativeEvent:S,currentTarget:C}=k,N=typeof o=="function"?o():o;if(l.select("open")&&w||N===0||N===void 0){l.setOpen(!0,nt(kl,S,C));return}h.start(N,()=>{p.current||l.setOpen(!0,nt(kl,S,C))})},onBlur(k){_();const E=k.relatedTarget,j=k.nativeEvent,w=gt(E)&&E.hasAttribute(Nc("focus-guard"))&&E.getAttribute("data-type")==="outside";h.start(0,()=>{const S=l.select("domReferenceElement"),C=Vn(mt(S));!E&&C===S||Ke(u.current.floatingContext?.refs.floating.current,C)||Ke(S,C)||w||Xd(E??C,l.context.triggerElements)||l.setOpen(!1,nt(kl,j))})}}},[u,o,l,h]);return x.useMemo(()=>s?{reference:b,trigger:b}:{},[s,b])}class jb{constructor(){this.pointerType=void 0,this.interactedInside=!1,this.handler=void 0,this.blockMouseMove=!0,this.performedPointerEventsMutation=!1,this.pointerEventsScopeElement=null,this.pointerEventsReferenceElement=null,this.pointerEventsFloatingElement=null,this.restTimeoutPending=!1,this.openChangeTimeout=new qa,this.restTimeout=new qa,this.handleCloseOptions=void 0}static create(){return new jb}dispose=()=>{this.openChangeTimeout.clear(),this.restTimeout.clear()};disposeEffect=()=>this.dispose}const af=new WeakMap;function sf(e){if(!e.performedPointerEventsMutation)return;const t=e.pointerEventsScopeElement;t&&af.get(t)===e&&(e.pointerEventsScopeElement?.style.removeProperty("pointer-events"),e.pointerEventsReferenceElement?.style.removeProperty("pointer-events"),e.pointerEventsFloatingElement?.style.removeProperty("pointer-events"),af.delete(t)),e.performedPointerEventsMutation=!1,e.pointerEventsScopeElement=null,e.pointerEventsReferenceElement=null,e.pointerEventsFloatingElement=null}function o2(e,t){const{scopeElement:s,referenceElement:o,floatingElement:l}=t,c=af.get(s);c&&c!==e&&sf(c),sf(e),e.performedPointerEventsMutation=!0,e.pointerEventsScopeElement=s,e.pointerEventsReferenceElement=o,e.pointerEventsFloatingElement=l,af.set(s,e),s.style.pointerEvents="none",o.style.pointerEvents="auto",l.style.pointerEvents="auto"}function wb(e){const t=e.context.dataRef.current,s=Xn(()=>t.hoverInteractionState??jb.create()).current;return t.hoverInteractionState||(t.hoverInteractionState=s),$x(t.hoverInteractionState.disposeEffect),t.hoverInteractionState}function l2(e,t={}){const{enabled:s=!0,closeDelay:o=0,nodeId:l}=t,c="rootStore"in e?e.rootStore:e,u=c.useState("open"),p=c.useState("floatingElement"),m=c.useState("domReferenceElement"),{dataRef:g}=c.context,h=Br(),b=Ir(),_=wb(c),k=wn(),E=Ue(()=>sS(g.current.openEvent?.type,_.interactedInside)),j=Ue(()=>F3(g.current.openEvent?.type)),w=Ue(()=>{sf(_)});ze(()=>{u||(_.pointerType=void 0,_.restTimeoutPending=!1,_.interactedInside=!1,w())},[u,_,w]),x.useEffect(()=>w,[w]),ze(()=>{if(s&&u&&_.handleCloseOptions?.blockPointerEvents&&j()&>(m)&&p){const S=m,C=p,N=mt(p),R=h?.nodesRef.current.find(z=>z.id===b)?.context?.elements.floating;R&&(R.style.pointerEvents="");const A=_.pointerEventsScopeElement!==C?_.pointerEventsScopeElement:null,T=R!==C?R:null,M=_.handleCloseOptions?.getScope?.()??A??T??S.closest("[data-rootownerid]")??N.body;return o2(_,{scopeElement:M,referenceElement:S,floatingElement:C}),()=>{w()}}},[s,u,m,p,_,j,h,b,w]),x.useEffect(()=>{if(!s)return;function S(){return!!(h&&b&&Or(h.nodesRef.current,b).length>0)}function C(z){const P=Dl(o,"close",_.pointerType),D=()=>{c.setOpen(!1,nt(Nn,z)),h?.events.emit("floating.closed",z)};P?_.openChangeTimeout.start(P,D):(_.openChangeTimeout.clear(),D())}function N(z){const P=In(z);if(!V3(P)){_.interactedInside=!1;return}_.interactedInside=P?.closest("[aria-haspopup]")!=null}function R(){_.openChangeTimeout.clear(),k.clear(),h?.events.off("floating.closed",T),w()}function A(z){if(S()&&h){h.events.on("floating.closed",T);return}if(Xd(z.relatedTarget,c.context.triggerElements))return;const P=g.current.floatingContext?.nodeId??l,D=z.relatedTarget;if(!(h&&P&>(D)&&Or(h.nodesRef.current,P,!1).some(B=>Ke(B.context?.elements.floating,D)))){if(_.handler){_.handler(z);return}w(),j()&&!E()&&C(z)}}function T(z){!h||!b||S()||k.start(0,()=>{h.events.off("floating.closed",T),c.setOpen(!1,nt(Nn,z)),h.events.emit("floating.closed",z)})}const M=p;return os(M&&ht(M,"mouseenter",R),M&&ht(M,"mouseleave",A),M&&ht(M,"pointerdown",N,!0),()=>{h?.events.off("floating.closed",T)})},[s,p,c,g,o,l,j,E,w,_,h,b,k])}const s4={current:null};function i2(e,t={}){const{enabled:s=!0,delay:o=0,handleClose:l=null,mouseOnly:c=!1,restMs:u=0,move:p=!0,triggerElementRef:m=s4,externalTree:g,isActiveTrigger:h=!0,getHandleCloseContext:b,isClosing:_,shouldOpen:k}=t,E="rootStore"in e?e.rootStore:e,{dataRef:j,events:w}=E.context,S=Br(g),C=wb(E),N=x.useRef(!1),R=cn(l),A=cn(o),T=cn(u),M=cn(s),z=cn(k),P=cn(_),D=Ue(()=>sS(j.current.openEvent?.type,C.interactedInside)),I=Ue(()=>z.current?.()!==!1),B=Ue((G,q,Y)=>{const X=E.context.triggerElements;if(X.hasElement(q))return!G||!Ke(G,q);if(!gt(Y))return!1;const $=Y;return X.hasMatchingElement(K=>Ke(K,$))&&(!G||!Ke(G,$))}),V=Ue(()=>{if(!C.handler)return;mt(E.select("domReferenceElement")).removeEventListener("mousemove",C.handler),C.handler=void 0}),H=Ue(()=>{sf(C)});return h&&(C.handleCloseOptions=R.current?.__options),x.useEffect(()=>V,[V]),x.useEffect(()=>{if(!s)return;function G(q){q.open?N.current=!1:(N.current=q.reason===Nn,V(),C.openChangeTimeout.clear(),C.restTimeout.clear(),C.blockMouseMove=!0,C.restTimeoutPending=!1)}return w.on("openchange",G),()=>{w.off("openchange",G)}},[s,w,C,V]),x.useEffect(()=>{if(!s)return;function G($,K=!0){const L=Dl(A.current,"close",C.pointerType);L?C.openChangeTimeout.start(L,()=>{E.setOpen(!1,nt(Nn,$)),S?.events.emit("floating.closed",$)}):K&&(C.openChangeTimeout.clear(),E.setOpen(!1,nt(Nn,$)),S?.events.emit("floating.closed",$))}const q=m.current??(h?E.select("domReferenceElement"):null);if(!gt(q))return;function Y($){if(C.openChangeTimeout.clear(),C.blockMouseMove=!1,c&&!xo(C.pointerType))return;const K=M1(T.current),L=Dl(A.current,"open",C.pointerType),F=In($),W=$.currentTarget??null,ee=E.select("domReferenceElement");let ce=W;if(gt(F)&&!E.context.triggerElements.hasElement(F)){for(const je of E.context.triggerElements.elements())if(Ke(je,F)){ce=je;break}}gt(W)&>(ee)&&!E.context.triggerElements.hasElement(W)&&Ke(W,ee)&&(ce=ee);const ue=ce==null?!1:B(ee,ce,F),se=E.select("open"),oe=P.current?.()??E.select("transitionStatus")==="ending",fe=!se&&oe&&N.current,Re=!ue&>(ce)&>(ee)&&Ke(ee,ce)&&fe,le=K>0&&!L,de=ue&&(se||fe)||Re,ke=!se||ue;if(de){I()&&E.setOpen(!0,nt(Nn,$,ce));return}le||(L?C.openChangeTimeout.start(L,()=>{ke&&I()&&E.setOpen(!0,nt(Nn,$,ce))}):ke&&I()&&E.setOpen(!0,nt(Nn,$,ce)))}function X($){if(D()){H();return}V();const K=E.select("domReferenceElement"),L=mt(K);C.restTimeout.clear(),C.restTimeoutPending=!1;const F=j.current.floatingContext??b?.();if(Xd($.relatedTarget,E.context.triggerElements))return;if(R.current&&F){E.select("open")||C.openChangeTimeout.clear();const ee=m.current;C.handler=R.current({...F,tree:S,x:$.clientX,y:$.clientY,onClose(){H(),V(),M.current&&!D()&&ee===E.select("domReferenceElement")&&G($,!0)}}),L.addEventListener("mousemove",C.handler),C.handler($);return}(C.pointerType==="touch"?!Ke(E.select("floatingElement"),$.relatedTarget):!0)&&G($)}return p?os(ht(q,"mousemove",Y,{once:!0}),ht(q,"mouseenter",Y),ht(q,"mouseleave",X)):os(ht(q,"mouseenter",Y),ht(q,"mouseleave",X))},[V,H,j,A,E,s,R,C,h,B,D,c,p,T,m,S,M,b,P,I]),x.useMemo(()=>{if(!s)return;function G(q){C.pointerType=q.pointerType}return{onPointerDown:G,onPointerEnter:G,onMouseMove(q){const{nativeEvent:Y}=q,X=q.currentTarget,$=E.select("domReferenceElement"),K=E.select("open"),L=B($,X,q.target);if(c&&!xo(C.pointerType))return;if(K&&L&&C.handleCloseOptions?.blockPointerEvents){const ee=E.select("floatingElement");if(ee){const ce=C.handleCloseOptions?.getScope?.()??X.ownerDocument.body;o2(C,{scopeElement:ce,referenceElement:X,floatingElement:ee})}}const F=M1(T.current);if(K&&!L||F===0||!L&&C.restTimeoutPending&&q.movementX**2+q.movementY**2<2)return;C.restTimeout.clear();function W(){if(C.restTimeoutPending=!1,D())return;const ee=E.select("open");!C.blockMouseMove&&(!ee||L)&&I()&&E.setOpen(!0,nt(Nn,Y,X))}C.pointerType==="touch"?is.flushSync(()=>{W()}):L&&K?W():(C.restTimeoutPending=!0,C.restTimeout.start(F,W))}}},[s,C,D,B,c,E,T,I])}const r4="Escape";function $f(e,t,s){switch(e){case"vertical":return t;case"horizontal":return s;default:return t||s}}function dd(e,t){return $f(t,e===aS||e===Zx,e===Of||e===zf)}function Ig(e,t,s){return $f(t,e===Zx,s?e===Of:e===zf)||e==="Enter"||e===" "||e===""}function o4(e,t,s){return $f(t,s?e===Of:e===zf,e===Zx)}function l4(e,t,s,o){const l=s?e===zf:e===Of,c=e===aS;return t==="both"||t==="horizontal"&&o?e===r4:$f(t,l,c)}function c2(e,t){const{listRef:s,activeIndex:o,onNavigate:l=()=>{},enabled:c=!0,selectedIndex:u=null,allowEscape:p=!1,loopFocus:m=!1,nested:g=!1,rtl:h=!1,virtual:b=!1,focusItemOnOpen:_="auto",focusItemOnHover:k=!0,openOnArrowKeyDown:E=!0,disabledIndices:j=void 0,orientation:w="vertical",parentOrientation:S,id:C,resetOnPointerLeave:N=!0,externalTree:R,grid:A}=t,T=A!=null,M="rootStore"in e?e.rootStore:e,z=M.useState("open"),P=M.useState("floatingElement"),D=M.useState("domReferenceElement"),I=M.context.dataRef,B=Kd(P),V=qh(D),H=cn(B),G=Ir(),q=Br(R),Y=x.useRef(_),X=x.useRef(u??-1),$=x.useRef(null),K=x.useRef(!0),L=Ue(ae=>{l(X.current===-1?null:X.current,ae)}),F=x.useRef(!!P),W=x.useRef(z),ee=x.useRef(!1),ce=x.useRef(!1),ue=x.useRef(null),se=cn(j),oe=cn(z),fe=cn(u),Re=cn(N),le=Ll(),de=Ll(),ke=Ue(()=>{function ae(Me){b?q?.events.emit("virtualfocus",Me):ue.current=Dd(Me,{sync:ee.current,preventScroll:!0})}const be=s.current[X.current],$e=ce.current;be&&ae(be),(ee.current?Me=>Me():Me=>le.request(Me))(()=>{const Me=s.current[X.current]||be;if(!Me)return;be||ae(Me),_e&&($e||!K.current)&&Me.scrollIntoView?.({block:"nearest",inline:"nearest"})})});ze(()=>{I.current.orientation=w},[I,w]),ze(()=>{c&&(z&&P?(X.current=u??-1,Y.current&&u!=null&&(ce.current=!0,L())):F.current&&(X.current=-1,L()))},[c,z,P,u,L]),ze(()=>{if(c){if(!z){ee.current=!1;return}if(P)if(o==null){if(ee.current=!1,fe.current!=null)return;if(F.current&&(X.current=-1,ke()),(!W.current||!F.current)&&Y.current&&($.current!=null||Y.current===!0&&$.current==null)){let ae=0;const be=()=>{s.current[0]==null?(ae<2&&(ae?Ne=>de.request(Ne):queueMicrotask)(be),ae+=1):(X.current=$.current==null||Ig($.current,w,h)||g?zd(s):Yh(s),$.current=null,L())};be()}}else hc(s.current,o)||(X.current=o,ke(),ce.current=!1)}},[c,z,P,o,fe,g,s,w,h,L,ke,de]),ze(()=>{if(!c||P||!q||b||!F.current)return;const ae=q.nodesRef.current,be=ae.find(Me=>Me.id===G)?.context?.elements.floating,$e=Vn(mt(D??be??null)),Ne=ae.some(Me=>Me.context&&Ke(Me.context.elements.floating,$e));be&&!Ne&&K.current&&be.focus({preventScroll:!0})},[c,P,D,q,G,b]),ze(()=>{W.current=z,F.current=!!P}),ze(()=>{z||($.current=null,Y.current=_)},[z,_]);const je=o!=null,Be=Ue(ae=>{if(!oe.current)return;const be=s.current.indexOf(ae.currentTarget);be!==-1&&(X.current!==be||o!==be)&&(X.current=be,L(ae))}),Ve=Ue(()=>S??q?.nodesRef.current.find(ae=>ae.id===G)?.context?.dataRef?.current.orientation),we=Ue(()=>zd(s,se.current)),Ee=Ue(ae=>{if(K.current=!1,ee.current=!0,ae.which===229||!oe.current&&ae.currentTarget===H.current)return;if(g&&l4(ae.key,w,h,T)){dd(ae.key,Ve())||Ja(ae),M.setOpen(!1,nt($h,ae.nativeEvent)),Ut(D)&&(b?q?.events.emit("virtualfocus",D):D.focus());return}const be=X.current,$e=zd(s,j),Ne=Yh(s,j);if(V||(ae.key==="Home"&&(Ja(ae),X.current=$e,L(ae)),ae.key==="End"&&(Ja(ae),X.current=Ne,L(ae))),A!=null){const Me=A(ae,X.current,s,w,m,h,j,$e,Ne);if(Me!=null&&(X.current=Me,L(ae)),w==="both")return}if(dd(ae.key,w)){if(Ja(ae),z&&!b&&Vn(ae.currentTarget.ownerDocument)===ae.currentTarget){X.current=Ig(ae.key,w,h)?$e:Ne,L(ae);return}Ig(ae.key,w,h)?m?be>=Ne?p&&be!==s.current.length?X.current=-1:(ee.current=!1,X.current=$e):X.current=Vs(s.current,{startingIndex:be,disabledIndices:j}):X.current=Math.min(Ne,Vs(s.current,{startingIndex:be,disabledIndices:j})):m?be<=$e?p&&be!==-1?X.current=s.current.length:(ee.current=!1,X.current=Ne):X.current=Vs(s.current,{startingIndex:be,decrement:!0,disabledIndices:j}):X.current=Math.max($e,Vs(s.current,{startingIndex:be,decrement:!0,disabledIndices:j})),hc(s.current,X.current)&&(X.current=-1),L(ae)}}),_e=x.useMemo(()=>({onFocus(be){ee.current=!0,Be(be)},onClick:({currentTarget:be})=>be.focus({preventScroll:!0}),onMouseMove(be){ee.current=!0,ce.current=!1,k&&Be(be)},onPointerLeave(be){if(!oe.current||!K.current||be.pointerType==="touch")return;ee.current=!0;const $e=be.relatedTarget;if(!(!k||s.current.includes($e))&&Re.current&&(ue.current?.(),ue.current=null,X.current=-1,L(be),!b)){const Ne=H.current,Me=Vn(mt(Ne));Ne&&Ke(Ne,Me)&&Ne.focus({preventScroll:!0})}}}),[Be,oe,H,k,s,L,Re,b]),Ce=x.useMemo(()=>b&&z&&je&&{"aria-activedescendant":`${C}-${o}`},[b,z,je,C,o]),Le=x.useMemo(()=>({"aria-orientation":w==="both"?void 0:w,...V?{}:Ce,onKeyDown(ae){if(ae.key==="Tab"&&ae.shiftKey&&z&&!b){const be=In(ae.nativeEvent);if(be&&!Ke(H.current,be))return;Ja(ae),M.setOpen(!1,nt(bo,ae.nativeEvent)),Ut(D)&&D.focus();return}Ee(ae)},onPointerMove(){K.current=!0}}),[Ce,Ee,H,w,V,M,z,b,D]),Pe=x.useMemo(()=>{function ae(Ne){M.setOpen(!0,nt($h,Ne.nativeEvent,Ne.currentTarget))}function be(Ne){_==="auto"&&Yx(Ne.nativeEvent)&&(Y.current=!b)}function $e(Ne){Y.current=_,_==="auto"&&eS(Ne.nativeEvent)&&(Y.current=!0)}return{onKeyDown(Ne){const Me=M.select("open");K.current=!1;const Ze=Ne.key.startsWith("Arrow"),st=o4(Ne.key,Ve(),h),_t=dd(Ne.key,w),ve=(g?st:_t)||Ne.key==="Enter"||Ne.key.trim()==="";if(b&&Me)return Ee(Ne);if(!(!Me&&!E&&Ze)){if(ve){const Ae=dd(Ne.key,Ve());$.current=g&&Ae?null:Ne.key}if(g){st&&(Ja(Ne),Me?(X.current=we(),L(Ne)):ae(Ne));return}_t&&(fe.current!=null&&(X.current=fe.current),Ja(Ne),!Me&&E?ae(Ne):Ee(Ne),Me&&L(Ne))}},onFocus(Ne){M.select("open")&&!b&&(X.current=-1,L(Ne))},onPointerDown:$e,onPointerEnter:$e,onMouseDown:be,onClick:be}},[Ee,_,we,g,L,M,E,w,Ve,h,fe,b]),Ie=x.useMemo(()=>({...Ce,...Pe}),[Ce,Pe]);return x.useMemo(()=>c?{reference:Ie,floating:Le,item:_e,trigger:Pe}:{},[c,Ie,Le,Pe,_e])}function u2(e,t){const{listRef:s,elementsRef:o,activeIndex:l,onMatch:c,disabledIndices:u,onTyping:p,enabled:m=!0,resetMs:g=750,selectedIndex:h=null}=t,b="rootStore"in e?e.rootStore:e,_=b.useState("open"),k=wn(),E=x.useRef(""),j=x.useRef(h??l??-1),w=x.useRef(null),S=Ue(R=>{function A(H){const G=o?.current[H];return!G||If(G)}function T(H){return A(H)?u==null||!Wd(Gs,H,u):!1}function M(H,G,q=0){if(H.length===0)return-1;const Y=(q%H.length+H.length)%H.length,X=G.toLowerCase();for(let $=0;$<H.length;$+=1){const K=(Y+$)%H.length;if(!(!H[K]?.toLowerCase().startsWith(X)||!T(K)))return K}return-1}const z=s.current;if(E.current.length>0&&R.key===" "&&(Ja(R),p?.(!0)),E.current.length>0&&E.current[0]!==" "&&M(z,E.current)===-1&&R.key!==" "&&p?.(!1),z==null||R.key.length!==1||R.ctrlKey||R.metaKey||R.altKey)return;_&&R.key!==" "&&(Ja(R),p?.(!0));const P=E.current==="";P&&(j.current=h??l??-1),z.every((H,G)=>H&&T(G)?H[0]?.toLowerCase()!==H[1]?.toLowerCase():!0)&&E.current===R.key&&(E.current="",j.current=w.current),E.current+=R.key,k.start(g,()=>{E.current="",j.current=w.current,p?.(!1)});const B=((P?h??l??-1:j.current)??0)+1,V=M(z,E.current,B);V!==-1?(c?.(V),w.current=V):R.key!==" "&&(E.current="",p?.(!1))}),C=Ue(R=>{const A=R.relatedTarget,T=b.select("domReferenceElement"),M=b.select("floatingElement");Ke(T,A)||Ke(M,A)||(k.clear(),E.current="",j.current=w.current,p?.(!1))});ze(()=>{!_&&h!==null||(k.clear(),w.current=null,E.current!==""&&(E.current=""))},[_,h,k]),ze(()=>{_&&E.current===""&&(j.current=h??l??-1)},[_,h,l]);const N=x.useMemo(()=>({onKeyDown:S,onBlur:C}),[S,C]);return x.useMemo(()=>m?{reference:N,floating:N}:{},[m,N])}const dj=.1,i4=dj*dj,It=.5;function fd(e,t,s,o,l,c){return o>=t!=c>=t&&e<=(l-s)*(t-o)/(c-o)+s}function pd(e,t,s,o,l,c,u,p,m,g){let h=!1;return fd(e,t,s,o,l,c)&&(h=!h),fd(e,t,l,c,u,p)&&(h=!h),fd(e,t,u,p,m,g)&&(h=!h),fd(e,t,m,g,s,o)&&(h=!h),h}function c4(e,t,s){return e>=s.x&&e<=s.x+s.width&&t>=s.y&&t<=s.y+s.height}function md(e,t,s,o,l,c){const u=Math.min(s,l),p=Math.max(s,l),m=Math.min(o,c),g=Math.max(o,c);return e>=u&&e<=p&&t>=m&&t<=g}function d2(e={}){const{blockPointerEvents:t=!1}=e,s=new qa,o=({x:l,y:c,placement:u,elements:p,onClose:m,nodeId:g,tree:h})=>{const b=u?.split("-")[0];let _=!1,k=null,E=null,j=typeof performance<"u"?performance.now():0;function w(C,N){const R=performance.now(),A=R-j;if(k===null||E===null||A===0)return k=C,E=N,j=R,!1;const T=C-k,M=N-E,z=T*T+M*M,P=A*A*i4;return k=C,E=N,j=R,z<P}function S(){s.clear(),m()}return function(N){s.clear();const R=p.domReference,A=p.floating;if(!R||!A||b==null||l==null||c==null)return;const{clientX:T,clientY:M}=N,z=In(N),P=N.type==="mouseleave",D=Ke(A,z),I=Ke(R,z);if(D&&(_=!0,!P))return;if(I&&(_=!1,!P)){_=!0;return}if(P&>(N.relatedTarget)&&Ke(A,N.relatedTarget))return;function B(){return!!(h&&Or(h.nodesRef.current,g).length>0)}function V(){B()||S()}if(B())return;const H=R.getBoundingClientRect(),G=A.getBoundingClientRect(),q=l>G.right-G.width/2,Y=c>G.bottom-G.height/2,X=G.width>H.width,$=G.height>H.height,K=(X?H:G).left,L=(X?H:G).right,F=($?H:G).top,W=($?H:G).bottom;if(b==="top"&&c>=H.bottom-1||b==="bottom"&&c<=H.top+1||b==="left"&&l>=H.right-1||b==="right"&&l<=H.left+1){V();return}let ee=!1;switch(b){case"top":ee=md(T,M,K,H.top+1,L,G.bottom-1);break;case"bottom":ee=md(T,M,K,G.top+1,L,H.bottom-1);break;case"left":ee=md(T,M,G.right-1,W,H.left+1,F);break;case"right":ee=md(T,M,H.right-1,W,G.left+1,F);break}if(ee)return;if(_&&!c4(T,M,H)){V();return}if(!P&&w(T,M)){V();return}let ce=!1;switch(b){case"top":{const ue=X?It/2:It*4,se=X||q?l+ue:l-ue,oe=X?l-ue:q?l+ue:l-ue,fe=c+It+1,Re=q||X?G.bottom-It:G.top,le=q?X?G.bottom-It:G.top:G.bottom-It;ce=pd(T,M,se,fe,oe,fe,G.left,Re,G.right,le);break}case"bottom":{const ue=X?It/2:It*4,se=X||q?l+ue:l-ue,oe=X?l-ue:q?l+ue:l-ue,fe=c-It,Re=q||X?G.top+It:G.bottom,le=q?X?G.top+It:G.bottom:G.top+It;ce=pd(T,M,se,fe,oe,fe,G.left,Re,G.right,le);break}case"left":{const ue=$?It/2:It*4,se=$||Y?c+ue:c-ue,oe=$?c-ue:Y?c+ue:c-ue,fe=l+It+1,Re=Y||$?G.right-It:G.left,le=Y?$?G.right-It:G.left:G.right-It;ce=pd(T,M,Re,G.top,le,G.bottom,fe,se,fe,oe);break}case"right":{const ue=$?It/2:It*4,se=$||Y?c+ue:c-ue,oe=$?c-ue:Y?c+ue:c-ue,fe=l-It,Re=Y||$?G.left+It:G.right,le=Y?$?G.left+It:G.right:G.left+It;ce=pd(T,M,fe,se,fe,oe,Re,G.top,le,G.bottom);break}}ce?_||s.start(40,V):V()}};return o.__options={...e,blockPointerEvents:t},o}const u4={...yb,disabled:Te(e=>e.disabled),instantType:Te(e=>e.instantType),isInstantPhase:Te(e=>e.isInstantPhase),trackCursorAxis:Te(e=>e.trackCursorAxis),disableHoverablePopup:Te(e=>e.disableHoverablePopup),lastOpenChangeReason:Te(e=>e.openChangeReason),closeOnClick:Te(e=>e.closeOnClick),closeDelay:Te(e=>e.closeDelay),hasViewport:Te(e=>e.hasViewport)};class kb extends Hf{constructor(t,s,o=!1){const l=new Uc,c={...d4(),...t};c.floatingRootContext=n2(l,s,o),super(c,{popupRef:x.createRef(),onOpenChange:void 0,onOpenChangeComplete:void 0,triggerElements:l},u4)}setOpen=(t,s)=>{JO(this,t,s,{extraState:{openChangeReason:s.reason}})};cancelPendingOpen(t){this.state.floatingRootContext.dispatchOpenChange(!1,nt(Zl,t))}static useStore(t,s){return WS(t,(l,c)=>new kb(s,l,c)).store}}function d4(){return{...vb(),disabled:!1,instantType:void 0,isInstantPhase:!1,trackCursorAxis:"none",disableHoverablePopup:!1,openChangeReason:null,closeOnClick:!0,closeDelay:0,hasViewport:!1}}const f4=qx(function(t){const{disabled:s=!1,defaultOpen:o=!1,open:l,disableHoverablePopup:c=!1,trackCursorAxis:u="none",actionsRef:p,onOpenChange:m,onOpenChangeComplete:g,handle:h,triggerId:b,defaultTriggerId:_=null,children:k}=t,E=kb.useStore(h?.store,{open:o,openProp:l,activeTriggerId:_,triggerIdProp:b});e2(E,l,o,_),E.useControlledProp("openProp",l),E.useControlledProp("triggerIdProp",b),E.useContextCallback("onOpenChange",m),E.useContextCallback("onOpenChangeComplete",g);const j=E.useState("open"),w=!s&&j,S=E.useState("activeTriggerId"),C=E.useState("mounted"),N=E.useState("payload");E.useSyncedValues({trackCursorAxis:u,disableHoverablePopup:c}),E.useSyncedValue("disabled",s),hb(E,{closeOnActiveTriggerUnmount:!0});const{forceUnmount:R,transitionStatus:A}=xb(w,E),T=E.useState("isInstantPhase"),M=E.useState("instantType"),z=E.useState("lastOpenChangeReason"),P=x.useRef(null);ze(()=>{j&&s&&E.setOpen(!1,nt(oS))},[j,s,E]),ze(()=>{A==="ending"&&z===ds||A!=="ending"&&T?(M!=="delay"&&(P.current=M),E.set("instantType","delay")):P.current!==null&&(E.set("instantType",P.current),P.current=null)},[A,T,z,M,E]),ze(()=>{w&&S==null&&E.set("payload",void 0)},[E,S,w]);const D=x.useCallback(()=>{E.setOpen(!1,nt(Wx))},[E]);x.useImperativeHandle(p,()=>({unmount:R,close:D}),[R,D]);const I=w||C||!s&&u!=="none";return r.jsxs(Jk.Provider,{value:E,children:[I&&r.jsx(p4,{store:E,disabled:s,trackCursorAxis:u}),typeof k=="function"?k({payload:N}):k]})});function p4({store:e,disabled:t,trackCursorAxis:s}){const o=e.useState("floatingRootContext"),l=Bf(o,{enabled:!t,referencePress:()=>e.select("closeOnClick")}),c=Q5(o,{enabled:!t&&s!=="none",axis:s==="none"?void 0:s}),u=x.useMemo(()=>$n(c.reference,l.reference),[c.reference,l.reference]),p=x.useMemo(()=>$n(c.trigger,l.trigger),[c.trigger,l.trigger]),m=x.useMemo(()=>$n(qf,c.floating,l.floating),[c.floating,l.floating]);return bb(e,{activeTriggerProps:u,inactiveTriggerProps:p,popupProps:m}),null}let po=(function(e){return e.open="data-open",e.closed="data-closed",e[e.startingStyle=yo.startingStyle]="startingStyle",e[e.endingStyle=yo.endingStyle]="endingStyle",e.anchorHidden="data-anchor-hidden",e.side="data-side",e.align="data-align",e})({}),rf=(function(e){return e.popupOpen="data-popup-open",e.pressed="data-pressed",e})({});const m4={[rf.popupOpen]:""},g4={[rf.popupOpen]:"",[rf.pressed]:""},h4={[po.open]:""},x4={[po.closed]:""},b4={[po.anchorHidden]:""},f2={open(e){return e?m4:null}},Zh={open(e){return e?g4:null}},No={open(e){return e?h4:x4},anchorHidden(e){return e?b4:null}};function Ga(e){return vo(e,"base-ui")}const p2=x.createContext(void 0);function v4(){return x.useContext(p2)}let _4=(function(e){return e[e.popupOpen=rf.popupOpen]="popupOpen",e.triggerDisabled="data-trigger-disabled",e})({});const y4=600,m2="data-base-ui-tooltip-trigger";function fj(e){if("composedPath"in e){const s=e.composedPath();for(let o=0;o<s.length;o+=1){const l=s[o];if(gt(l))return l}}const t=e.target;return gt(t)?t:null}function j4(e){let t=e;for(;t;){if(t.hasAttribute(m2))return t;const s=t.parentElement;if(s){t=s;continue}const o=t.getRootNode();t="host"in o&>(o.host)?o.host:null}return null}const w4=Wk(function(t,s){const{render:o,className:l,style:c,handle:u,payload:p,disabled:m,delay:g,closeOnClick:h=!0,closeDelay:b,id:_,...k}=t,E=Ic(!0),j=u?.store??E;if(!j)throw new Error(tn(82));const w=Ga(_),S=j.useState("isTriggerActive",w),C=j.useState("isOpenedByTrigger",w),N=j.useState("floatingRootContext"),R=x.useRef(null),A=g??y4,T=b??0,{registerTrigger:M,isMountedByThisTrigger:z}=t2(w,R,j,{payload:p,closeOnClick:h,closeDelay:T}),P=v4(),{delayRef:D,isInstantPhase:I,hasProvider:B}=Q3(N,{open:C}),V=wb(N);j.useSyncedValue("isInstantPhase",I);const H=j.useState("disabled"),G=m??H,q=cn(G),Y=j.useState("trackCursorAxis"),X=j.useState("disableHoverablePopup"),$=x.useRef(!1),K=wn(),L=x.useRef(void 0);function F(){const de=P?.delay,ke=typeof D.current=="object"?D.current.open:void 0;let je=A;return B&&(ke!==0?je=g??de??A:je=0),je}function W(de){const ke=R.current;if(!ke||!de)return!1;const je=j4(de);return je!==null&&je!==ke&&Ke(ke,je)}function ee(de){const ke=W(de);return $.current=ke,ke&&(V.openChangeTimeout.clear(),V.restTimeout.clear(),V.restTimeoutPending=!1,K.clear()),ke}const ce=i2(N,{enabled:!G,mouseOnly:!0,move:!1,handleClose:!X&&Y!=="both"?d2():null,restMs:F,delay(){const de=typeof D.current=="object"?D.current.close:void 0;let ke=T;return b==null&&B&&(ke=de),{close:ke}},triggerElementRef:R,isActiveTrigger:S,isClosing:()=>j.select("transitionStatus")==="ending",shouldOpen(){return!$.current}}),ue=r2(N,{enabled:!G}).reference,se=de=>{const ke=$.current,je=fj(de),Be=ee(je),Ve=R.current,we=Ve&&je&&Ke(Ve,je);if(Be&&j.select("open")&&j.select("lastOpenChangeReason")===Nn){j.setOpen(!1,nt(Nn,de));return}if(ke&&!Be&&we&&!q.current&&!j.select("open")&&Ve&&xo(L.current)){const Ee=()=>{!$.current&&!q.current&&!j.select("open")&&j.setOpen(!0,nt(Nn,de,Ve))},_e=F();_e===0?(K.clear(),Ee()):K.start(_e,Ee)}},oe=j.useState("triggerProps",z);return Et("button",t,{state:{open:C},ref:[s,M,R],props:[ce,ue,z||Y!=="none"?oe:void 0,{onMouseOver(de){se(de.nativeEvent)},onFocus(de){W(fj(de.nativeEvent))&&de.preventBaseUIHandler()},onMouseLeave(){$.current=!1,K.clear(),L.current=void 0},onPointerEnter(de){L.current=de.pointerType},onPointerDown(de){L.current=de.pointerType,j.set("closeOnClick",h),h&&!j.select("open")&&j.cancelPendingOpen(de.nativeEvent)},onClick(de){h&&!j.select("open")&&j.cancelPendingOpen(de.nativeEvent)},id:w,[_4.triggerDisabled]:G?"":void 0,[m2]:G?void 0:""},k],stateAttributesMapping:f2})}),g2=x.createContext(void 0);function k4(){const e=x.useContext(g2);if(e===void 0)throw new Error(tn(70));return e}const S4=x.forwardRef(function(t,s){const{children:o,container:l,className:c,render:u,style:p,...m}=t,{portalNode:g,portalSubtree:h}=OS({container:l,ref:s,componentProps:t,elementProps:m});return!h&&!g?null:r.jsxs(x.Fragment,{children:[h,g&&is.createPortal(o,g)]})}),C4=x.forwardRef(function(t,s){const{keepMounted:o=!1,...l}=t;return Ic().useState("mounted")||o?r.jsx(g2.Provider,{value:o,children:r.jsx(S4,{ref:s,...l})}):null}),h2=x.createContext(void 0);function x2(){const e=x.useContext(h2);if(e===void 0)throw new Error(tn(71));return e}const E4=x.createContext(void 0);function Ff(){return x.useContext(E4)?.direction??"ltr"}const N4=e=>({name:"arrow",options:e,async fn(t){const{x:s,y:o,placement:l,rects:c,platform:u,elements:p,middlewareData:m}=t,{element:g,padding:h=0,offsetParent:b="real"}=Xs(e,t)||{};if(g==null)return{};const _=fS(h),k={x:s,y:o},E=ab(l),j=nb(E),w=await u.getDimensions(g),S=E==="y",C=S?"top":"left",N=S?"bottom":"right",R=S?"clientHeight":"clientWidth",A=c.reference[j]+c.reference[E]-k[E]-c.floating[j],T=k[E]-c.reference[E],M=b==="real"?await u.getOffsetParent?.(g):p.floating;let z=p.floating[R]||c.floating[j];(!z||!await u.isElement?.(M))&&(z=p.floating[R]||c.floating[j]);const P=A/2-T/2,D=z/2-w[j]/2-1,I=Math.min(_[C],D),B=Math.min(_[N],D),V=I,H=z-w[j]-B,G=z/2-w[j]/2+P,q=Fh(V,G,H),Y=!m.arrow&&Pr(l)!=null&&G!==q&&c.reference[j]/2-(G<V?I:B)-w[j]/2<0,X=Y?G<V?G-V:G-H:0;return{[E]:k[E]+X,data:{[E]:q,centerOffset:G-q-X,...Y&&{alignmentOffset:X}},reset:Y}}}),R4=(e,t)=>({...N4(e),options:[e,t]}),T4=IO().fn,A4={name:"hide",async fn(e){const{width:t,height:s,x:o,y:l}=e.rects.reference,c=t===0&&s===0&&o===0&&l===0;return{data:{referenceHidden:(await T4(e)).data?.referenceHidden||c}}}},Pd={sideX:"left",sideY:"top"},b2={name:"adaptiveOrigin",async fn(e){const{x:t,y:s,rects:{floating:o},elements:{floating:l},platform:c,strategy:u,placement:p}=e,m=Ft(l),g=m.getComputedStyle(l);if(!(g.transitionDuration!=="0s"&&g.transitionDuration!==""))return{x:t,y:s,data:Pd};const b=await c.getOffsetParent?.(l);let _={width:0,height:0};if(u==="fixed"&&m?.visualViewport)_={width:m.visualViewport.width,height:m.visualViewport.height};else if(b===m){const C=mt(l);_={width:C.documentElement.clientWidth,height:C.documentElement.clientHeight}}else await c.isElement?.(b)&&(_=await c.getDimensions(b));const k=oa(p);let E=t,j=s;k==="left"&&(E=_.width-(t+o.width)),k==="top"&&(j=_.height-(s+o.height));const w=k==="left"?"right":Pd.sideX,S=k==="top"?"bottom":Pd.sideY;return{x:E,y:j,data:{sideX:w,sideY:S}}}};function v2(e,t,s){const o=e==="inline-start"||e==="inline-end";return{top:"top",right:o?s?"inline-start":"inline-end":"right",bottom:"bottom",left:o?s?"inline-end":"inline-start":"left"}[t]}function pj(e,t,s){const{rects:o,placement:l}=e;return{side:v2(t,oa(l),s),align:Pr(l)||"center",anchor:{width:o.reference.width,height:o.reference.height},positioner:{width:o.floating.width,height:o.floating.height}}}function Sb(e){const{anchor:t,positionMethod:s="absolute",side:o="bottom",sideOffset:l=0,align:c="center",alignOffset:u=0,collisionBoundary:p,collisionPadding:m=5,sticky:g=!1,arrowPadding:h=5,disableAnchorTracking:b=!1,inline:_,keepMounted:k=!1,floatingRootContext:E,mounted:j,collisionAvoidance:w,shiftCrossAxis:S=!1,nodeId:C,adaptiveOrigin:N,lazyFlip:R=!1,externalTree:A}=e,[T,M]=x.useState(null);!j&&T!==null&&M(null);const z=w.side||"flip",P=w.align||"flip",D=w.fallbackAxisSide||"end",I=typeof t=="function"?t:void 0,B=Ue(I),V=I?B:t,H=cn(t),G=cn(j),Y=Ff()==="rtl",X=T||{top:"top",right:"right",bottom:"bottom",left:"left","inline-end":Y?"left":"right","inline-start":Y?"right":"left"}[o],$=c==="center"?X:`${X}-${c}`;let K=m;const L=1,F=o==="bottom"?L:0,W=o==="top"?L:0,ee=o==="right"?L:0,ce=o==="left"?L:0;typeof K=="number"?K={top:K+F,right:K+ce,bottom:K+W,left:K+ee}:K&&(K={top:(K.top||0)+F,right:(K.right||0)+ce,bottom:(K.bottom||0)+W,left:(K.left||0)+ee});const ue={boundary:p==="clipping-ancestors"?"clippingAncestors":p,padding:K},se=x.useRef(null),oe=cn(l),fe=cn(u),Re=typeof l!="function"?l:0,le=typeof u!="function"?u:0,de=[];_&&de.push(_),de.push(OO(pt=>{const Nt=pj(pt,o,Y),an=typeof oe.current=="function"?oe.current(Nt):oe.current,Zt=typeof fe.current=="function"?fe.current(Nt):fe.current;return{mainAxis:an,crossAxis:Zt,alignmentAxis:Zt}},[Re,le,Y,o]));const ke=P==="none"&&z!=="shift",je=!ke&&(g||S||z==="shift"),Be=z==="none"?null:LO({...ue,padding:{top:K.top+L,right:K.right+L,bottom:K.bottom+L,left:K.left+L},mainAxis:!S&&z==="flip",crossAxis:P==="flip"?"alignment":!1,fallbackAxisSideDirection:D}),Ve=ke?null:zO(pt=>{const Nt=mt(pt.elements.floating).documentElement;return{...ue,rootBoundary:S?{x:0,y:0,width:Nt.clientWidth,height:Nt.clientHeight}:void 0,mainAxis:P!=="none",crossAxis:je,limiter:g||S?void 0:DO(an=>{if(!se.current)return{};const{width:Zt,height:Wt}=se.current.getBoundingClientRect(),Gt=Oa(oa(an.placement)),dn=Gt==="y"?Zt:Wt,Wn=Gt==="y"?K.left+K.right:K.top+K.bottom;return{offset:dn/2+Wn/2}})}},[ue,g,S,K,P]);z==="shift"||P==="shift"||c==="center"?de.push(Ve,Be):de.push(Be,Ve),de.push(PO({...ue,apply({elements:{floating:pt},availableWidth:Nt,availableHeight:an,rects:Zt}){if(!G.current)return;const Wt=pt.style;Wt.setProperty("--available-width",`${Nt}px`),Wt.setProperty("--available-height",`${an}px`);const Gt=Ft(pt).devicePixelRatio||1,{x:dn,y:Wn,width:ca,height:_a}=Zt.reference,fn=(Math.round((dn+ca)*Gt)-Math.round(dn*Gt))/Gt,ya=(Math.round((Wn+_a)*Gt)-Math.round(Wn*Gt))/Gt;Wt.setProperty("--anchor-width",`${fn}px`),Wt.setProperty("--anchor-height",`${ya}px`)}}),R4(pt=>({element:se.current||mt(pt.elements.floating).createElement("div"),padding:h,offsetParent:"floating"}),[h]),{name:"transformOrigin",fn(pt){const{elements:Nt,middlewareData:an,placement:Zt,rects:Wt,y:Gt}=pt,dn=oa(Zt),Wn=Oa(dn),ca=se.current,_a=an.arrow?.x||0,fn=an.arrow?.y||0,ya=ca?.clientWidth||0,xs=ca?.clientHeight||0,La=_a+ya/2,bs=fn+xs/2,ct=Math.abs(an.shift?.y||0),zt=Wt.reference.height/2,pn=typeof l=="function"?l(pj(pt,o,Y)):l,kn=ct>pn,yn={top:`${La}px calc(100% + ${pn}px)`,bottom:`${La}px ${-pn}px`,left:`calc(100% + ${pn}px) ${bs}px`,right:`${-pn}px ${bs}px`}[dn],Ht=`${La}px ${Wt.reference.y+zt-Gt}px`;return Nt.floating.style.setProperty("--transform-origin",je&&Wn==="y"&&kn?Ht:yn),{}}},A4,N),ze(()=>{!j&&E&&E.update({referenceElement:null,floatingElement:null,domReferenceElement:null,positionReference:null})},[j,E]);const we=x.useMemo(()=>({elementResize:!b&&typeof ResizeObserver<"u",layoutShift:!b&&typeof IntersectionObserver<"u"}),[b]),{refs:Ee,elements:_e,x:Ce,y:Le,middlewareData:Pe,update:Ie,placement:ae,context:be,isPositioned:$e,floatingStyles:Ne}=a4({rootContext:E,open:k?j:void 0,placement:$,middleware:de,strategy:s,whileElementsMounted:k?void 0:(...pt)=>sj(...pt,we),nodeId:C,externalTree:A}),{sideX:Me,sideY:Ze}=Pe.adaptiveOrigin||Pd,st=$e?s:"fixed",_t=x.useMemo(()=>{const pt=N?{position:st,[Me]:Ce,[Ze]:Le}:{position:st,...Ne};return $e||(pt.opacity=0),pt},[N,st,Me,Ce,Ze,Le,Ne,$e]),ve=x.useRef(null);ze(()=>{if(!j)return;const pt=H.current,Nt=typeof pt=="function"?pt():pt,Zt=(mj(Nt)?Nt.current:Nt)||null||null;Zt!==ve.current&&(Ee.setPositionReference(Zt),ve.current=Zt)},[j,Ee,V,H]),x.useEffect(()=>{if(!j)return;const pt=H.current;typeof pt!="function"&&mj(pt)&&pt.current!==ve.current&&(Ee.setPositionReference(pt.current),ve.current=pt.current)},[j,Ee,V,H]),x.useEffect(()=>{if(k&&j&&_e.reference&&_e.floating)return sj(_e.reference,_e.floating,Ie,we)},[k,j,_e,Ie,we]);const Ae=oa(ae),He=v2(o,Ae,Y),Xe=Pr(ae)||"center",rt=!!Pe.hide?.referenceHidden;ze(()=>{R&&j&&$e&&M(Ae)},[R,j,$e,Ae]);const nn=x.useMemo(()=>({position:"absolute",top:Pe.arrow?.y,left:Pe.arrow?.x}),[Pe.arrow]),un=Pe.arrow?.centerOffset!==0;return x.useMemo(()=>({positionerStyles:_t,arrowStyles:nn,arrowRef:se,arrowUncentered:un,side:He,align:Xe,physicalSide:Ae,anchorHidden:rt,refs:Ee,context:be,isPositioned:$e,update:Ie}),[_t,nn,se,un,He,Xe,Ae,rt,Ee,be,$e,Ie])}function mj(e){return e!=null&&"current"in e}function Gf(e){return e==="starting"?H5:$t}function Cb(e,t,{styles:s,transitionStatus:o,props:l,refs:c,hidden:u,inert:p=!1}){const m={...s};return p&&(m.pointerEvents="none"),Et("div",e,{state:t,ref:c,props:[{role:"presentation",hidden:u,style:m},Gf(o),l],stateAttributesMapping:No})}const M4=x.forwardRef(function(t,s){const{render:o,className:l,anchor:c,positionMethod:u="absolute",side:p="top",align:m="center",sideOffset:g=0,alignOffset:h=0,collisionBoundary:b="clipping-ancestors",collisionPadding:_=5,arrowPadding:k=5,sticky:E=!1,disableAnchorTracking:j=!1,collisionAvoidance:w=TS,style:S,...C}=t,N=Ic(),R=k4(),A=N.useState("open"),T=N.useState("mounted"),M=N.useState("trackCursorAxis"),z=N.useState("disableHoverablePopup"),P=N.useState("floatingRootContext"),D=N.useState("instantType"),I=N.useState("transitionStatus"),B=N.useState("hasViewport"),V=Sb({anchor:c,positionMethod:u,floatingRootContext:P,mounted:T,side:p,sideOffset:g,align:m,alignOffset:h,collisionBoundary:b,collisionPadding:_,sticky:E,arrowPadding:k,disableAnchorTracking:j,keepMounted:R,collisionAvoidance:w,adaptiveOrigin:B?b2:void 0}),H=x.useMemo(()=>({open:A,side:V.side,align:V.align,anchorHidden:V.anchorHidden,instant:M!=="none"?"tracking-cursor":D}),[A,V.side,V.align,V.anchorHidden,M,D]),G=Cb(t,H,{styles:V.positionerStyles,transitionStatus:I,props:C,refs:[s,N.useStateSetter("positionerElement")],hidden:!T,inert:!A||M==="both"||z});return r.jsx(h2.Provider,{value:V,children:G})}),O4={...No,...Ws},z4=x.forwardRef(function(t,s){const{render:o,className:l,style:c,...u}=t,p=Ic(),{side:m,align:g}=x2(),h=p.useState("open"),b=p.useState("instantType"),_=p.useState("transitionStatus"),k=p.useState("popupProps"),E=p.useState("floatingRootContext"),j=p.useState("disabled"),w=p.useState("closeDelay");gs({open:h,ref:p.context.popupRef,onComplete(){h&&p.context.onOpenChangeComplete?.(!0)}}),l2(E,{enabled:!j,closeDelay:w});const S=p.useStateSetter("popupElement");return Et("div",t,{state:{open:h,side:m,align:g,instant:b,transitionStatus:_},ref:[s,p.context.popupRef,S],props:[k,Gf(_),u],stateAttributesMapping:O4})}),D4=x.forwardRef(function(t,s){const{render:o,className:l,style:c,...u}=t,p=Ic(),{arrowRef:m,side:g,align:h,arrowUncentered:b,arrowStyles:_}=x2(),k=p.useState("open"),E=p.useState("instantType");return Et("div",t,{state:{open:k,side:g,align:h,uncentered:b,instant:E},ref:[s,m],props:[{style:_,"aria-hidden":!0},u],stateAttributesMapping:No})}),L4=function(t){const{delay:s,closeDelay:o,timeout:l=400}=t,c=x.useMemo(()=>({delay:s,closeDelay:o}),[s,o]),u=x.useMemo(()=>({open:s,close:o}),[s,o]);return r.jsx(p2.Provider,{value:c,children:r.jsx(K3,{delay:u,timeoutMs:l,children:t.children})})};function Yf(e){return ob(19)?e:e?"true":void 0}function P4(e){const[t,s]=x.useState({current:e,previous:null});return e!==t.current&&s({current:e,previous:t.current}),t.previous}function Ct(...e){return Zk(kc(e))}function I4({delay:e=0,...t}){return r.jsx(L4,{"data-slot":"tooltip-provider",delay:e,...t})}function Eb({...e}){return r.jsx(f4,{"data-slot":"tooltip",...e})}function Nb({...e}){return r.jsx(w4,{"data-slot":"tooltip-trigger",...e})}function Rb({className:e,side:t="top",sideOffset:s=4,align:o="center",alignOffset:l=0,children:c,...u}){return r.jsx(C4,{children:r.jsx(M4,{align:o,alignOffset:l,side:t,sideOffset:s,className:"isolate z-50",children:r.jsxs(z4,{"data-slot":"tooltip-content",className:Ct("z-50 inline-flex w-fit max-w-xs origin-(--transform-origin) items-center gap-1.5 rounded-md bg-foreground px-3 py-1.5 text-xs text-background has-data-[slot=kbd]:pr-1.5 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 **:data-[slot=kbd]:relative **:data-[slot=kbd]:isolate **:data-[slot=kbd]:z-50 **:data-[slot=kbd]:rounded-sm data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",e),...u,children:[c,r.jsx(D4,{className:"z-50 size-2.5 translate-y-[calc(-50%-2px)] rotate-45 rounded-[2px] bg-foreground fill-foreground data-[side=bottom]:top-1 data-[side=inline-end]:top-1/2! data-[side=inline-end]:-left-1 data-[side=inline-end]:-translate-y-1/2 data-[side=inline-start]:top-1/2! data-[side=inline-start]:-right-1 data-[side=inline-start]:-translate-y-1/2 data-[side=left]:top-1/2! data-[side=left]:-right-1 data-[side=left]:-translate-y-1/2 data-[side=right]:top-1/2! data-[side=right]:-left-1 data-[side=right]:-translate-y-1/2 data-[side=top]:-bottom-2.5"})]})})})}function xl({label:e,active:t,onClick:s,isAdd:o,isSettings:l,isDefault:c,icon:u,title:p,testId:m}){const g=e.trim()||"·",{initials:h,subLabel:b}=_2(g),_=o||l?"indigo":y2(g),k=b&&!o&&!l&&!c;return r.jsxs(Eb,{children:[r.jsx(Nb,{render:r.jsxs("button",{type:"button",onClick:s,"data-testid":m,className:"group relative flex w-full cursor-pointer flex-col items-center gap-1",children:[r.jsx("span",{className:De("flex size-10 items-center justify-center rounded-xl text-sm font-bold transition-all",t&&"ring-2 ring-foreground ring-offset-2 ring-offset-card",o&&"border border-dashed border-muted-fg/50 bg-transparent text-muted-fg hover:bg-accent/60 hover:text-foreground",l&&"bg-muted text-muted-fg hover:bg-accent hover:text-foreground",c&&"overflow-hidden bg-muted",!o&&!l&&!c&&t&&V4(_),!o&&!l&&!c&&!t&&H4(_)),children:u??h}),k&&r.jsx("span",{className:"block max-w-[3.6rem] truncate text-[9px] leading-tight text-muted-fg group-hover:text-foreground",children:b})]})}),r.jsx(Rb,{side:"right",children:p||e})]})}function _2(e){const t=e.trim().replace(/[_\-.]+/g," ").replace(/\s+/g," ");if(!t)return{initials:"·",subLabel:null};const s=t.split(" ");if(s.length>=2)return{initials:(s[0][0]+s[1][0]).toUpperCase(),subLabel:B4(t)};const o=s[0];return o.length<=4?{initials:o[0].toUpperCase(),subLabel:o}:{initials:o[0].toUpperCase(),subLabel:o.slice(0,4)+"…"}}function B4(e){return e.length>6?e.slice(0,5)+"…":e}function y2(e){let t=0;for(let s=0;s<e.length;s++)t=t*31+e.charCodeAt(s)|0;return E1[Math.abs(t)%E1.length]}const j2={sky:"bg-sky-500/15 text-sky-300 hover:bg-sky-500/25",violet:"bg-violet-500/15 text-violet-300 hover:bg-violet-500/25",emerald:"bg-emerald-500/15 text-emerald-300 hover:bg-emerald-500/25",amber:"bg-amber-500/15 text-amber-300 hover:bg-amber-500/25",rose:"bg-rose-500/15 text-rose-300 hover:bg-rose-500/25",indigo:"bg-indigo-500/15 text-indigo-300 hover:bg-indigo-500/25",teal:"bg-teal-500/15 text-teal-300 hover:bg-teal-500/25",fuchsia:"bg-fuchsia-500/15 text-fuchsia-300 hover:bg-fuchsia-500/25"},U4={sky:"bg-sky-500/30 text-sky-100",violet:"bg-violet-500/30 text-violet-100",emerald:"bg-emerald-500/30 text-emerald-100",amber:"bg-amber-500/30 text-amber-100",rose:"bg-rose-500/30 text-rose-100",indigo:"bg-indigo-500/30 text-indigo-100",teal:"bg-teal-500/30 text-teal-100",fuchsia:"bg-fuchsia-500/30 text-fuchsia-100"};function H4(e){return j2[e]}function V4(e){return U4[e]}function q4(e){const{initials:t}=_2(e);return{initials:t,idleClass:j2[y2(e)]}}function et({content:e,side:t="top",children:s}){return e?r.jsxs(Eb,{children:[r.jsx(Nb,{render:s}),r.jsx(Rb,{side:t,children:e})]}):s}const w2=x.createContext(void 0);function Tb(e){const t=x.useContext(w2);if(t===void 0&&!e)throw new Error(tn(33));return t}const k2=x.createContext(void 0);function Ur(e){const t=x.useContext(k2);if(t===void 0&&!e)throw new Error(tn(36));return t}const $4=x.createContext(void 0);function Xf(e=!0){const t=x.useContext($4);if(t===void 0&&!e)throw new Error(tn(25));return t}function Bl({controlled:e,default:t,name:s,state:o="value"}){const{current:l}=x.useRef(e!==void 0),[c,u]=x.useState(t),p=l?e:c,m=x.useCallback(g=>{l||u(g)},[]);return[p,m]}const S2=x.createContext(void 0);function Ab(e=!1){const t=x.useContext(S2);if(t===void 0&&!e)throw new Error(tn(16));return t}function F4(e){const{focusableWhenDisabled:t,disabled:s,composite:o=!1,tabIndex:l=0,isNativeButton:c}=e,u=o&&t!==!1,p=o&&t===!1;return{props:x.useMemo(()=>{const g={onKeyDown(h){s&&t&&h.key!=="Tab"&&h.preventDefault()}};return o||(g.tabIndex=l,!c&&s&&(g.tabIndex=t?l:-1)),(c&&(t||u)||!c&&s)&&(g["aria-disabled"]=s),c&&(!t||p)&&(g.disabled=s),g},[o,s,t,u,p,c,l])}}function Hr(e={}){const{disabled:t=!1,focusableWhenDisabled:s,tabIndex:o=0,native:l=!0,composite:c}=e,u=x.useRef(null),p=Ab(!0),m=c??p!==void 0,{props:g}=F4({focusableWhenDisabled:s,disabled:t,composite:m,tabIndex:o,isNativeButton:l}),h=x.useCallback(()=>{const k=u.current;Bg(k)&&m&&t&&g.disabled===void 0&&k.disabled&&(k.disabled=!1)},[t,g.disabled,m]);ze(h,[h]);const b=x.useCallback((k={})=>{const{onClick:E,onMouseDown:j,onKeyUp:w,onKeyDown:S,onPointerDown:C,...N}=k;return $n({onClick(R){if(t){R.preventDefault();return}E?.(R)},onMouseDown(R){t||j?.(R)},onKeyDown(R){if(t||(ef(R),S?.(R),R.baseUIHandlerPrevented))return;const A=R.target===R.currentTarget,T=R.currentTarget,M=Bg(T),z=!l&&G4(T),P=A&&(l?M:!z),D=R.key==="Enter",I=R.key===" ",B=T.getAttribute("role"),V=B?.startsWith("menuitem")||B==="option"||B==="gridcell";if(A&&m&&I){if(R.defaultPrevented&&V)return;R.preventDefault(),z||l&&M?(T.click(),R.preventBaseUIHandler()):P&&(E?.(R),R.preventBaseUIHandler());return}P&&(!l&&(I||D)&&R.preventDefault(),!l&&D&&E?.(R))},onKeyUp(R){if(!t){if(ef(R),w?.(R),R.target===R.currentTarget&&l&&m&&Bg(R.currentTarget)&&R.key===" "){R.preventDefault();return}R.baseUIHandlerPrevented||R.target===R.currentTarget&&!l&&!m&&R.key===" "&&E?.(R)}},onPointerDown(R){if(t){R.preventDefault();return}C?.(R)}},l?{type:"button"}:{role:"button"},g,N)},[t,g,m,l]),_=Ue(k=>{u.current=k,h()});return{getButtonProps:b,buttonRef:_}}function Bg(e){return Ut(e)&&e.tagName==="BUTTON"}function G4(e){return!!(e?.tagName==="A"&&e?.href)}function Y4(e){const{closeOnClick:t,highlighted:s,id:o,nodeId:l,store:c,typingRef:u,itemRef:p,itemMetadata:m}=e,{events:g}=c.useState("floatingTreeRoot"),h=c.useState("open"),b=Xf(!0),_=b!==void 0;return x.useMemo(()=>({id:o,role:"menuitem",tabIndex:h&&s?0:-1,onKeyDown(k){k.key===" "&&u?.current&&k.preventDefault()},onMouseMove(k){l&&g.emit("itemhover",{nodeId:l,target:k.currentTarget})},onClick(k){t&&g.emit("close",{domEvent:k,reason:Sl})},onMouseUp(k){if(b){const E=b.initialCursorPointRef.current;if(b.initialCursorPointRef.current=null,_&&E&&Math.abs(k.clientX-E.x)<=1&&Math.abs(k.clientY-E.y)<=1||_&&!Fx&&k.button===2)return}p.current&&c.context.allowMouseUpTriggerRef.current&&(!_||k.button===2)&&(!m||m.type==="regular-item")&&p.current.click()}}),[t,s,o,g,l,h,c,u,p,b,_,m])}const C2={type:"regular-item"};function E2(e){const{closeOnClick:t,disabled:s=!1,highlighted:o,id:l,store:c,typingRef:u=c.context.typingRef,nativeButton:p,itemMetadata:m,nodeId:g}=e,h=c.useState("disabled"),b=s||h,_=x.useRef(null),{getButtonProps:k,buttonRef:E}=Hr({disabled:b,focusableWhenDisabled:!0,native:p,composite:!0}),j=Y4({closeOnClick:t,highlighted:o,id:l,nodeId:g,store:c,typingRef:u,itemRef:_,itemMetadata:m}),w=x.useCallback(C=>$n(j,{onMouseEnter(){m.type==="submenu-trigger"&&m.setActive()}},C,k),[j,k,m]),S=Ys(_,E);return x.useMemo(()=>({getItemProps:w,itemRef:S}),[w,S])}const N2=x.createContext({register:()=>{},unregister:()=>{},subscribeMapChange:()=>()=>{},elementsRef:{current:[]},nextIndexRef:{current:0}});function X4(){return x.useContext(N2)}let R2=(function(e){return e[e.None=0]="None",e[e.GuessFromOrder=1]="GuessFromOrder",e})({});function Hc(e={}){const{label:t,metadata:s,textRef:o,indexGuessBehavior:l,index:c}=e,{register:u,unregister:p,subscribeMapChange:m,elementsRef:g,labelsRef:h,nextIndexRef:b}=X4(),_=x.useRef(-1),[k,E]=x.useState(c??(l===R2.GuessFromOrder?()=>{if(_.current===-1){const S=b.current;b.current+=1,_.current=S}return _.current}:-1)),j=x.useRef(null),w=x.useCallback(S=>{if(j.current=S,k!==-1&&S!==null&&(g.current[k]=S,h)){const C=t!==void 0;h.current[k]=C?t:o?.current?.textContent??S.textContent}},[k,g,h,t,o]);return ze(()=>{if(c!=null)return;const S=j.current;if(S)return u(S,s),()=>{p(S)}},[c,u,p,s]),ze(()=>{if(c==null)return m(S=>{const C=j.current?S.get(j.current)?.index:null;C!=null&&E(C)})},[c,m,E]),{ref:w,index:k}}let gj=(function(e){return e.checked="data-checked",e.unchecked="data-unchecked",e.disabled="data-disabled",e.highlighted="data-highlighted",e})({});const T2={checked(e){return e?{[gj.checked]:""}:{[gj.unchecked]:""}},...Ws},K4=x.createContext(void 0),Q4=x.forwardRef(function(t,s){const{render:o,className:l,id:c,label:u,nativeButton:p=!1,disabled:m=!1,closeOnClick:g=!0,style:h,...b}=t,_=Hc({label:u}),k=Tb(!0),E=Ga(c),{store:j}=Ur(),w=j.useState("isActive",_.index),S=j.useState("itemProps"),{getItemProps:C,itemRef:N}=E2({closeOnClick:g,disabled:m,highlighted:w,id:E,store:j,nativeButton:p,nodeId:k?.context.nodeId,itemMetadata:C2});return Et("div",t,{state:{disabled:m,highlighted:w},props:[S,b,C],ref:[N,s,_.ref]})}),Z4=x.createContext(void 0);function A2(e){return x.useContext(Z4)}const bc="ArrowUp",vc="ArrowDown",of="ArrowLeft",lf="ArrowRight",Kf="Home",Qf="End",M2=new Set([of,lf]),W4=new Set([of,lf,Kf,Qf]),O2=new Set([bc,vc]),J4=new Set([bc,vc,Kf,Qf]),z2=new Set([...M2,...O2]),Zf=new Set([...z2,Kf,Qf]),ez="Shift",tz="Control",nz="Alt",az="Meta",sz=new Set([ez,tz,nz,az]);function rz(e){return Ut(e)&&e.tagName==="INPUT"}function hj(e){return!!(rz(e)&&e.selectionStart!=null||Ut(e)&&e.tagName==="TEXTAREA")}function xj(e,t,s,o){if(!e||!t||!t.scrollTo)return;let l=e.scrollLeft,c=e.scrollTop;const u=e.clientWidth<e.scrollWidth,p=e.clientHeight<e.scrollHeight;if(u&&o!=="vertical"){const m=bj(e,t,"left"),g=gd(e),h=gd(t);s==="ltr"&&(m+t.offsetWidth+h.scrollMarginRight>e.scrollLeft+e.clientWidth-g.scrollPaddingRight?l=m+t.offsetWidth+h.scrollMarginRight-e.clientWidth+g.scrollPaddingRight:m-h.scrollMarginLeft<e.scrollLeft+g.scrollPaddingLeft&&(l=m-h.scrollMarginLeft-g.scrollPaddingLeft)),s==="rtl"&&(m-h.scrollMarginRight<e.scrollLeft+g.scrollPaddingLeft?l=m-h.scrollMarginLeft-g.scrollPaddingLeft:m+t.offsetWidth+h.scrollMarginRight>e.scrollLeft+e.clientWidth-g.scrollPaddingRight&&(l=m+t.offsetWidth+h.scrollMarginRight-e.clientWidth+g.scrollPaddingRight))}if(p&&o!=="horizontal"){const m=bj(e,t,"top"),g=gd(e),h=gd(t);m-h.scrollMarginTop<e.scrollTop+g.scrollPaddingTop?c=m-h.scrollMarginTop-g.scrollPaddingTop:m+t.offsetHeight+h.scrollMarginBottom>e.scrollTop+e.clientHeight-g.scrollPaddingBottom&&(c=m+t.offsetHeight+h.scrollMarginBottom-e.clientHeight+g.scrollPaddingBottom)}e.scrollTo({left:l,top:c,behavior:"auto"})}function bj(e,t,s){const o=s==="left"?"offsetLeft":"offsetTop";let l=0;for(;t.offsetParent&&(l+=t[o],t.offsetParent!==e);)t=t.offsetParent;return l}function gd(e){const t=getComputedStyle(e);return{scrollMarginTop:parseFloat(t.scrollMarginTop)||0,scrollMarginRight:parseFloat(t.scrollMarginRight)||0,scrollMarginBottom:parseFloat(t.scrollMarginBottom)||0,scrollMarginLeft:parseFloat(t.scrollMarginLeft)||0,scrollPaddingTop:parseFloat(t.scrollPaddingTop)||0,scrollPaddingRight:parseFloat(t.scrollPaddingRight)||0,scrollPaddingBottom:parseFloat(t.scrollPaddingBottom)||0,scrollPaddingLeft:parseFloat(t.scrollPaddingLeft)||0}}const oz={...No,...Ws},lz=x.forwardRef(function(t,s){const{render:o,className:l,style:c,finalFocus:u,...p}=t,{store:m}=Ur(),{side:g,align:h}=Tb(),b=A2()!=null,_=m.useState("open"),k=m.useState("transitionStatus"),E=m.useState("popupProps"),j=m.useState("mounted"),w=m.useState("instantType"),S=m.useState("activeTriggerElement"),C=m.useState("parent"),N=m.useState("lastOpenChangeReason"),R=m.useState("rootId"),A=m.useState("floatingRootContext"),T=m.useState("floatingTreeRoot"),M=m.useState("closeDelay"),z=m.useState("activeTriggerElement"),P=m.useState("hoverEnabled"),D=m.useState("disabled"),I=m.useState("openMethod"),B=C.type==="context-menu";gs({open:_,ref:m.context.popupRef,onComplete(){_&&m.context.onOpenChangeComplete?.(!0)}}),x.useEffect(()=>{function Y(X){m.setOpen(!1,nt(X.reason,X.domEvent))}return T.events.on("close",Y),()=>{T.events.off("close",Y)}},[T.events,m]),l2(A,{enabled:P&&!D&&!B&&C.type!=="menubar",closeDelay:M});const V=x.useCallback(Y=>{m.set("popupElement",Y)},[m]),H={transitionStatus:k,side:g,align:h,open:_,nested:C.type==="menu",instant:w},G=Et("div",t,{state:H,ref:[s,m.context.popupRef,V],stateAttributesMapping:oz,props:[E,{onKeyDown(Y){b&&Zf.has(Y.key)&&Y.stopPropagation()}},Gf(k),p,{"data-rootownerid":R}]});let q=C.type===void 0||B;return(S||C.type==="menubar"&&N!==Lf)&&(q=!0),r.jsx(fb,{context:A,openInteractionType:I,modal:B,disabled:!j,returnFocus:u===void 0?q:u,initialFocus:C.type!=="menu",restoreFocus:!0,externalTree:C.type!=="menubar"?T:void 0,previousFocusableElement:z,nextFocusableElement:C.type===void 0?m.context.triggerFocusTargetRef:void 0,beforeContentFocusGuardRef:C.type===void 0?m.context.beforeContentFocusGuardRef:void 0,children:G})}),D2=x.createContext(void 0);function iz(){const e=x.useContext(D2);if(e===void 0)throw new Error(tn(32));return e}const cz=x.forwardRef(function(t,s){const{keepMounted:o=!1,...l}=t,{store:c}=Ur();return c.useState("mounted")||o?r.jsx(D2.Provider,{value:o,children:r.jsx(cb,{ref:s,...l})}):null});function Wf(e){const{children:t,elementsRef:s,labelsRef:o,onMapChange:l}=e,c=Ue(l),u=x.useRef(0),p=Xn(dz).current,m=Xn(uz).current,[g,h]=x.useState(0),b=x.useRef(g),_=Ue((S,C)=>{m.set(S,C??null),b.current+=1,h(b.current)}),k=Ue(S=>{m.delete(S),b.current+=1,h(b.current)}),E=x.useMemo(()=>{const S=new Map;return Array.from(m.keys()).filter(N=>N.isConnected).sort(fz).forEach((N,R)=>{const A=m.get(N)??{};S.set(N,{...A,index:R})}),S},[m,g]);ze(()=>{if(typeof MutationObserver!="function"||E.size===0)return;const S=new MutationObserver(C=>{const N=new Set,R=A=>N.has(A)?N.delete(A):N.add(A);C.forEach(A=>{A.removedNodes.forEach(R),A.addedNodes.forEach(R)}),N.size===0&&(b.current+=1,h(b.current))});return E.forEach((C,N)=>{N.parentElement&&S.observe(N.parentElement,{childList:!0})}),()=>{S.disconnect()}},[E]),ze(()=>{b.current===g&&(s.current.length!==E.size&&(s.current.length=E.size),o&&o.current.length!==E.size&&(o.current.length=E.size),u.current=E.size),c(E)},[c,E,s,o,g]),ze(()=>()=>{s.current=[]},[s]),ze(()=>()=>{o&&(o.current=[])},[o]);const j=Ue(S=>(p.add(S),()=>{p.delete(S)}));ze(()=>{p.forEach(S=>S(E))},[p,E]);const w=x.useMemo(()=>({register:_,unregister:k,subscribeMapChange:j,elementsRef:s,labelsRef:o,nextIndexRef:u}),[_,k,j,s,o,u]);return r.jsx(N2.Provider,{value:w,children:t})}function uz(){return new Map}function dz(){return new Set}function fz(e,t){const s=e.compareDocumentPosition(t);return s&Node.DOCUMENT_POSITION_FOLLOWING||s&Node.DOCUMENT_POSITION_CONTAINED_BY?-1:s&Node.DOCUMENT_POSITION_PRECEDING||s&Node.DOCUMENT_POSITION_CONTAINS?1:0}const Mb=x.forwardRef(function(t,s){const{cutout:o,...l}=t;let c;if(o){const u=o.getBoundingClientRect();c=`polygon(0% 0%,100% 0%,100% 100%,0% 100%,0% 0%,${u.left}px ${u.top}px,${u.left}px ${u.bottom}px,${u.right}px ${u.bottom}px,${u.right}px ${u.top}px,${u.left}px ${u.top}px)`}return r.jsx("div",{ref:s,role:"presentation","data-base-ui-inert":"",...l,style:{position:"fixed",inset:0,userSelect:"none",WebkitUserSelect:"none",clipPath:c}})});let vj={},_j={},yj="";function pz(e){if(typeof document>"u")return!1;const t=mt(e);return Ft(t).innerWidth-t.documentElement.clientWidth>0}function mz(e){if(!(typeof CSS<"u"&&CSS.supports&&CSS.supports("scrollbar-gutter","stable"))||typeof document>"u")return!1;const s=mt(e),o=s.documentElement,l=s.body,c=Lr(o)?o:l,u=c.style.overflowY,p=o.style.scrollbarGutter;o.style.scrollbarGutter="stable",c.style.overflowY="scroll";const m=c.offsetWidth;c.style.overflowY="hidden";const g=c.offsetWidth;return c.style.overflowY=u,o.style.scrollbarGutter=p,m===g}function gz(e){const t=mt(e),s=t.documentElement,o=t.body,l=Lr(s)?s:o,c={overflowY:l.style.overflowY,overflowX:l.style.overflowX};return Object.assign(l.style,{overflowY:"hidden",overflowX:"hidden"}),()=>{Object.assign(l.style,c)}}function hz(e){const t=mt(e),s=t.documentElement,o=t.body,l=Ft(s);let c=0,u=0,p=!1;const m=ts.create();if(Dr&&(l.visualViewport?.scale??1)!==1)return()=>{};function g(){const k=l.getComputedStyle(s),E=l.getComputedStyle(o),S=(k.scrollbarGutter||"").includes("both-edges")?"stable both-edges":"stable";c=s.scrollTop,u=s.scrollLeft,vj={scrollbarGutter:s.style.scrollbarGutter,overflowY:s.style.overflowY,overflowX:s.style.overflowX},yj=s.style.scrollBehavior,_j={position:o.style.position,height:o.style.height,width:o.style.width,boxSizing:o.style.boxSizing,overflowY:o.style.overflowY,overflowX:o.style.overflowX,scrollBehavior:o.style.scrollBehavior};const C=s.scrollHeight>s.clientHeight,N=s.scrollWidth>s.clientWidth,R=k.overflowY==="scroll"||E.overflowY==="scroll",A=k.overflowX==="scroll"||E.overflowX==="scroll",T=Math.max(0,l.innerWidth-o.clientWidth),M=Math.max(0,l.innerHeight-o.clientHeight),z=parseFloat(E.marginTop)+parseFloat(E.marginBottom),P=parseFloat(E.marginLeft)+parseFloat(E.marginRight),D=Lr(s)?s:o;if(p=mz(e),p){s.style.scrollbarGutter=S,D.style.overflowY="hidden",D.style.overflowX="hidden";return}Object.assign(s.style,{scrollbarGutter:S,overflowY:"hidden",overflowX:"hidden"}),(C||R)&&(s.style.overflowY="scroll"),(N||A)&&(s.style.overflowX="scroll"),Object.assign(o.style,{position:"relative",height:z||M?`calc(100dvh - ${z+M}px)`:"100dvh",width:P||T?`calc(100vw - ${P+T}px)`:"100vw",boxSizing:"border-box",overflow:"hidden",scrollBehavior:"unset"}),o.scrollTop=c,o.scrollLeft=u,s.setAttribute("data-base-ui-scroll-locked",""),s.style.scrollBehavior="unset"}function h(){Object.assign(s.style,vj),Object.assign(o.style,_j),p||(s.scrollTop=c,s.scrollLeft=u,s.removeAttribute("data-base-ui-scroll-locked"),s.style.scrollBehavior=yj)}function b(){h(),m.request(g)}g();const _=ht(l,"resize",b);return()=>{m.cancel(),h(),typeof l.removeEventListener=="function"&&_()}}class xz{lockCount=0;restore=null;timeoutLock=qa.create();timeoutUnlock=qa.create();acquire(t){return this.lockCount+=1,this.lockCount===1&&this.restore===null&&this.timeoutLock.start(0,()=>this.lock(t)),this.release}release=()=>{this.lockCount-=1,this.lockCount===0&&this.restore&&this.timeoutUnlock.start(0,this.unlock)};unlock=()=>{this.lockCount===0&&this.restore&&(this.restore?.(),this.restore=null)};lock(t){if(this.lockCount===0||this.restore!==null)return;const o=mt(t).documentElement,l=Ft(o).getComputedStyle(o).overflowY;if(l==="hidden"||l==="clip"){this.restore=En;return}const c=Rf||!pz(t);this.restore=c?gz(t):hz(t)}}const bz=new xz;function L2(e=!0,t=null){ze(()=>{if(e)return bz.acquire(t)},[e,t])}const vz=20;function P2(e,t,s,o){const[l,c]=x.useState(!1);ze(()=>{if(!e||!t||s==null){c(!1);return}const u=mt(s).documentElement.clientWidth,p=s.offsetWidth;c(u>0&&p>0&&p>=u-vz)},[e,t,s]),L2(e&&(!t||l),o)}const _z=x.forwardRef(function(t,s){const{anchor:o,positionMethod:l="absolute",className:c,render:u,side:p,align:m,sideOffset:g=0,alignOffset:h=0,collisionBoundary:b="clipping-ancestors",collisionPadding:_=5,arrowPadding:k=5,sticky:E=!1,disableAnchorTracking:j=!1,collisionAvoidance:w=RS,style:S,...C}=t,{store:N}=Ur(),R=iz(),A=Xf(!0),T=N.useState("parent"),M=N.useState("floatingRootContext"),z=N.useState("floatingTreeRoot"),P=N.useState("mounted"),D=N.useState("open"),I=N.useState("modal"),B=N.useState("openMethod"),V=N.useState("activeTriggerElement"),H=N.useState("transitionStatus"),G=N.useState("positionerElement"),q=N.useState("instantType"),Y=N.useState("hasViewport"),X=N.useState("lastOpenChangeReason"),$=N.useState("floatingNodeId"),K=N.useState("floatingParentNodeId"),L=M.useState("domReferenceElement"),F=x.useRef(null),W=ZS(G,!1,!1);let ee=o,ce=g,ue=h,se=m,oe=w;T.type==="context-menu"&&(ee=o??T.context?.anchor,se=se??"start",!p&&se!=="center"&&(ue=t.alignOffset??2,ce=t.sideOffset??-5));let fe=p,Re=se;T.type==="menu"?(fe=fe??"inline-end",Re=Re??"start",oe=t.collisionAvoidance??TS):T.type==="menubar"&&(fe=fe??(T.context.orientation==="vertical"?"inline-end":"bottom"),Re=Re??"start");const le=T.type==="context-menu",de=Sb({anchor:ee,floatingRootContext:M,positionMethod:A?"fixed":l,mounted:P,side:fe,sideOffset:ce,align:Re,alignOffset:ue,arrowPadding:le?0:k,collisionBoundary:b,collisionPadding:_,sticky:E,nodeId:$,keepMounted:R,disableAnchorTracking:j,collisionAvoidance:oe,shiftCrossAxis:le&&!("side"in oe&&oe.side==="flip"),externalTree:z,adaptiveOrigin:Y?b2:void 0});x.useEffect(()=>{function Ce(Le){Le.open&&(Le.parentNodeId===$&&N.set("hoverEnabled",!1),Le.nodeId!==$&&Le.parentNodeId===N.select("floatingParentNodeId")&&N.setOpen(!1,nt(lc)))}return z.events.on("menuopenchange",Ce),()=>{z.events.off("menuopenchange",Ce)}},[N,z.events,$]),x.useEffect(()=>{if(N.select("floatingParentNodeId")==null)return;function Ce(Le){if(Le.open||Le.nodeId!==N.select("floatingParentNodeId"))return;const Pe=Le.reason??lc;N.setOpen(!1,nt(Pe))}return z.events.on("menuopenchange",Ce),()=>{z.events.off("menuopenchange",Ce)}},[z.events,N]);const ke=wn();x.useEffect(()=>{D||ke.clear()},[D,ke]),x.useEffect(()=>{function Ce(Le){if(!(!D||Le.nodeId!==N.select("floatingParentNodeId")))if(Le.target&&V&&V!==Le.target){const Pe=N.select("closeDelay");Pe>0?ke.isStarted()||ke.start(Pe,()=>{N.setOpen(!1,nt(lc))}):N.setOpen(!1,nt(lc))}else ke.clear()}return z.events.on("itemhover",Ce),()=>{z.events.off("itemhover",Ce)}},[z.events,D,V,N,ke]),x.useEffect(()=>{const Ce={open:D,nodeId:$,parentNodeId:K,reason:N.select("lastOpenChangeReason")};z.events.emit("menuopenchange",Ce)},[z.events,D,N,$,K]),ze(()=>{const Ce=L,Le=F.current;if(Ce&&(F.current=Ce),Le&&Ce&&Ce!==Le){N.set("instantType",void 0);const Pe=new AbortController;return W(()=>{N.set("instantType","trigger-change")},Pe.signal),()=>{Pe.abort()}}},[L,W,N]);const je={open:D,side:de.side,align:de.align,anchorHidden:de.anchorHidden,nested:T.type==="menu",instant:q},Be=T.type==="menubar"&&T.context.modal;P2(D&&(Be||I&&X!==Nn),B==="touch",G,V);const we=Cb(t,je,{styles:de.positionerStyles,transitionStatus:H,props:C,refs:[s,N.useStateSetter("positionerElement")],hidden:!P,inert:!D}),Ee=P&&T.type!=="menu"&&(T.type!=="menubar"&&I&&X!==Nn||T.type==="menubar"&&T.context.modal);let _e=null;return T.type==="menubar"?_e=T.context.contentElement:T.type===void 0&&(_e=V),r.jsxs(w2.Provider,{value:de,children:[Ee&&r.jsx(Mb,{ref:T.type==="context-menu"||T.type==="nested-context-menu"?T.context.internalBackdropRef:null,inert:Yf(!D),cutout:_e}),r.jsx(F5,{id:$,children:r.jsx(Wf,{elementsRef:N.context.itemDomElements,labelsRef:N.context.itemLabels,children:we})})]})}),I2=x.createContext(void 0);function yz(){const e=x.useContext(I2);if(e===void 0)throw new Error(tn(34));return e}const jz=x.memo(x.forwardRef(function(t,s){const{render:o,className:l,value:c,defaultValue:u,onValueChange:p,disabled:m=!1,style:g,"aria-labelledby":h,...b}=t,[_,k]=x.useState(void 0),[E,j]=Bl({controlled:c,default:u,name:"MenuRadioGroup"}),w=Ue((R,A)=>{p?.(R,A),!A.isCanceled&&j(R)}),C=Et("div",t,{state:{disabled:m},ref:s,props:{role:"group","aria-labelledby":h??_,"aria-disabled":m||void 0,...b}}),N=x.useMemo(()=>({value:E,setValue:w,disabled:m}),[E,w,m]);return r.jsx(K4.Provider,{value:k,children:r.jsx(I2.Provider,{value:N,children:C})})})),B2=x.createContext(void 0);function wz(){const e=x.useContext(B2);if(e===void 0)throw new Error(tn(35));return e}const kz=x.forwardRef(function(t,s){const{render:o,className:l,id:c,label:u,nativeButton:p=!1,disabled:m=!1,closeOnClick:g=!1,value:h,style:b,..._}=t,k=Hc({label:u}),E=Tb(!0),j=Ga(c),{store:w}=Ur(),S=w.useState("isActive",k.index),C=w.useState("itemProps"),{value:N,setValue:R,disabled:A}=yz(),T=A||m,M=N===h,{getItemProps:z,itemRef:P}=E2({closeOnClick:g,disabled:T,highlighted:S,id:j,store:w,nativeButton:p,nodeId:E?.context.nodeId,itemMetadata:C2}),D=x.useMemo(()=>({disabled:T,highlighted:S,checked:M}),[T,S,M]);function I(V){const H=nt(Sl,V.nativeEvent,void 0,{preventUnmountOnClose(){}});R(h,H)}const B=Et("div",t,{state:D,stateAttributesMapping:T2,props:[C,{role:"menuitemradio","aria-checked":M,onClick:I},_,z],ref:[P,s,k.ref]});return r.jsx(B2.Provider,{value:D,children:B})}),Sz=x.forwardRef(function(t,s){const{render:o,className:l,style:c,keepMounted:u=!1,...p}=t,m=wz(),g=x.useRef(null),{transitionStatus:h,setMounted:b}=Wl(m.checked);gs({open:m.checked,ref:g,onComplete(){m.checked||b(!1)}});const _={checked:m.checked,disabled:m.disabled,highlighted:m.highlighted,transitionStatus:h};return Et("span",t,{state:_,stateAttributesMapping:T2,ref:[s,g],props:{"aria-hidden":!0,...p},enabled:u||m.checked})}),Cz=x.createContext(null);function U2(e){return x.useContext(Cz)}function Ez(e){const t=x.useRef(""),s=x.useCallback(l=>{l.defaultPrevented||(t.current=l.pointerType,e(l,l.pointerType))},[e]);return{onClick:x.useCallback(l=>{if(l.detail===0){e(l,"keyboard");return}"pointerType"in l?e(l,l.pointerType):e(l,t.current),t.current=""},[e]),onPointerDown:s}}function Ob(e,t){const s=x.useRef(e),o=Ue(t);ze(()=>{s.current!==e&&o(s.current)},[e,o]),ze(()=>{s.current=e},[e])}function Nz(e,t){const s=Ue((c,u)=>{(typeof e=="function"?e():e)||t(u||(Rf?"touch":""))}),{onClick:o,onPointerDown:l}=Ez(s);return x.useMemo(()=>({onClick:o,onPointerDown:l}),[o,l])}function H2(e){const[t,s]=x.useState(null),o=Nz(e,s);return Ob(e,l=>{l&&!e&&s(null)}),x.useMemo(()=>({openMethod:t,triggerProps:o}),[t,o])}const Rz={...yb,disabled:Te(e=>e.parent.type==="menubar"&&e.parent.context.disabled||e.disabled),modal:Te(e=>(e.parent.type===void 0||e.parent.type==="context-menu")&&(e.modal??!0)),openMethod:Te(e=>e.openMethod),allowMouseEnter:Te(e=>e.allowMouseEnter),highlightItemOnHover:Te(e=>e.highlightItemOnHover),stickIfOpen:Te(e=>e.stickIfOpen),parent:Te(e=>e.parent),rootId:Te(e=>e.parent.type==="menu"?e.parent.store.select("rootId"):e.parent.type!==void 0?e.parent.context.rootId:e.rootId),activeIndex:Te(e=>e.activeIndex),isActive:Te((e,t)=>e.activeIndex===t),hoverEnabled:Te(e=>e.hoverEnabled),instantType:Te(e=>e.instantType),lastOpenChangeReason:Te(e=>e.openChangeReason),floatingTreeRoot:Te(e=>e.parent.type==="menu"?e.parent.store.select("floatingTreeRoot"):e.floatingTreeRoot),floatingNodeId:Te(e=>e.floatingNodeId),floatingParentNodeId:Te(e=>e.floatingParentNodeId),itemProps:Te(e=>e.itemProps),closeDelay:Te(e=>e.closeDelay),hasViewport:Te(e=>e.hasViewport),keyboardEventRelay:Te(e=>{if(e.keyboardEventRelay)return e.keyboardEventRelay;if(e.parent.type==="menu")return e.parent.store.select("keyboardEventRelay")})};class zb extends Hf{constructor(t){super({...Tz(),...t},{positionerRef:x.createRef(),popupRef:x.createRef(),typingRef:{current:!1},itemDomElements:{current:[]},itemLabels:{current:[]},allowMouseUpTriggerRef:{current:!1},triggerFocusTargetRef:x.createRef(),beforeContentFocusGuardRef:x.createRef(),onOpenChangeComplete:void 0,triggerElements:new Uc},Rz),this.unsubscribeParentListener=this.observe("parent",s=>{if(this.unsubscribeParentListener?.(),s.type==="menu"){let o=s.store.select("rootId"),l=s.store.select("floatingTreeRoot"),c=s.store.select("keyboardEventRelay");this.unsubscribeParentListener=s.store.subscribe(()=>{const u=s.store.select("rootId"),p=s.store.select("floatingTreeRoot"),m=s.store.select("keyboardEventRelay");o===u&&l===p&&c===m||(o=u,l=p,c=m,this.notifyAll())}),this.context.allowMouseUpTriggerRef=s.store.context.allowMouseUpTriggerRef;return}s.type!==void 0&&(this.context.allowMouseUpTriggerRef=s.context.allowMouseUpTriggerRef),this.unsubscribeParentListener=null})}setOpen(t,s){this.state.floatingRootContext.context.events.emit("setOpen",{open:t,eventDetails:s})}static useStore(t,s){const o=Xn(()=>new zb(s)).current;return t??o}unsubscribeParentListener=null}function Tz(){return{...vb(),disabled:!1,modal:!0,openMethod:null,allowMouseEnter:!1,highlightItemOnHover:!0,stickIfOpen:!0,parent:{type:void 0},rootId:void 0,activeIndex:null,hoverEnabled:!0,instantType:void 0,openChangeReason:null,floatingTreeRoot:new ub,floatingNodeId:void 0,floatingParentNodeId:null,itemProps:$t,keyboardEventRelay:void 0,closeDelay:0,hasViewport:!1}}const Az=x.createContext(void 0);function Mz(){return x.useContext(Az)}const Oz=qx(function(t){const{children:s,open:o,onOpenChange:l,onOpenChangeComplete:c,defaultOpen:u=!1,disabled:p=!1,modal:m,loopFocus:g=!0,orientation:h="vertical",actionsRef:b,closeParentOnEsc:_=!1,handle:k,triggerId:E,defaultTriggerId:j=null,highlightItemOnHover:w=!0}=t,S=Xf(!0),C=Ur(!0),N=U2(!0),R=Mz(),A=x.useMemo(()=>R&&C?{type:"menu",store:C.store}:N?{type:"menubar",context:N}:S&&!C?{type:"context-menu",context:S}:{type:void 0},[S,C,N,R]),T=zb.useStore(k?.store,{open:u,openProp:o,activeTriggerId:j,triggerIdProp:E,parent:A});e2(T,o,u,j),T.useControlledProp("openProp",o),T.useControlledProp("triggerIdProp",E),T.useContextCallback("onOpenChangeComplete",c);const M=vo(),z=vo(),P=T.useState("floatingTreeRoot"),D=PS(P),I=Ir(),B=T.useState("open"),V=T.useState("activeTriggerElement"),H=T.useState("positionerElement"),G=T.useState("hoverEnabled"),q=T.useState("disabled"),Y=T.useState("lastOpenChangeReason"),X=T.useState("parent"),$=T.useState("activeIndex"),K=T.useState("payload"),L=T.useState("floatingParentNodeId"),F=x.useRef(null),W=x.useRef(X.type!=="context-menu"),ee=wn(),ce=x.useRef(!0),ue=wn(),se=L!=null,{openMethod:oe,triggerProps:fe}=H2(B);T.useSyncedValues({disabled:p,highlightItemOnHover:w,modal:X.type===void 0?m:void 0,openMethod:oe,rootId:M}),hb(T);const{forceUnmount:Re}=xb(B,T,()=>{T.update({allowMouseEnter:!1,stickIfOpen:!0})});ze(()=>{S&&!C?T.update({parent:{type:"context-menu",context:S},floatingNodeId:D,floatingParentNodeId:I}):C&&T.update({floatingNodeId:D,floatingParentNodeId:I})},[S,C,D,I,T]),x.useEffect(()=>{if(B||(F.current=null),X.type==="context-menu"){if(!B){ee.clear(),W.current=!1;return}ee.start(500,()=>{W.current=!0})}},[ee,B,X.type]),ze(()=>{!B&&!G&&T.set("hoverEnabled",!0)},[B,G,T]);const le=Ue((Me,Ze)=>{const st=Ze.reason;if(B===Me&&Ze.trigger===V&&Y===st)return;const _t=JS(Ze);if(!Me&&Ze.trigger==null&&(Ze.trigger=V??void 0),l?.(Me,Ze),Ze.isCanceled)return;T.state.floatingRootContext.dispatchOpenChange(Me,Ze);const ve=Ze.event;if(Me===!1&&ve?.type==="click"&&ve.pointerType==="touch"&&!ce.current)return;Me&&st===kl?(ce.current=!1,ue.start(300,()=>{ce.current=!0})):(ce.current=!0,ue.clear());const Ae=(st===Zl||st===Sl)&&ve.detail===0&&ve?.isTrusted,He=!Me&&(st===Pf||st==null),Xe={open:Me,openChangeReason:st};F.current=Ze.event??null,gb(Xe,Me,Ze.trigger,_t()),T.update(Xe),X.type==="menubar"&&(st===kl||st===bo||st===Nn||st===$h||st===lc)?T.set("instantType","group"):Ae||He?T.set("instantType",Ae?"click":"dismiss"):T.set("instantType",void 0)}),de=QS({popupStore:T,floatingId:z,nested:I!=null,onOpenChange:le}),ke=de.context.events;x.useEffect(()=>{const Me=({open:Ze,eventDetails:st})=>le(Ze,st);return ke.on("setOpen",Me),()=>{ke?.off("setOpen",Me)}},[ke,le]);const je=x.useCallback(()=>{T.setOpen(!1,nt(Wx))},[T]);x.useImperativeHandle(b,()=>({unmount:Re,close:je}),[Re,je]);let Be;X.type==="context-menu"&&(Be=X.context),x.useImperativeHandle(Be?.positionerRef,()=>H,[H]),x.useImperativeHandle(Be?.actionsRef,()=>({setOpen:le}),[le]);const Ve=Bf(de,{enabled:!q,bubbles:{escapeKey:_&&X.type==="menu"},outsidePress(){return X.type!=="context-menu"||F.current?.type==="contextmenu"?!0:W.current},externalTree:se?P:void 0}),we=Ff(),Ee=x.useCallback(Me=>{T.select("activeIndex")!==Me&&T.set("activeIndex",Me)},[T]),_e=c2(de,{enabled:!q,listRef:T.context.itemDomElements,activeIndex:$,nested:X.type!==void 0,loopFocus:g,orientation:h,parentOrientation:X.type==="menubar"?X.context.orientation:void 0,rtl:we==="rtl",disabledIndices:Gs,onNavigate:Ee,openOnArrowKeyDown:X.type!=="context-menu",externalTree:se?P:void 0,focusItemOnHover:w}),Ce=x.useCallback(Me=>{T.context.typingRef.current=Me},[T]),Le=u2(de,{enabled:!q,listRef:T.context.itemLabels,elementsRef:T.context.itemDomElements,activeIndex:$,resetMs:B5,onMatch:Me=>{B&&Me!==$&&T.set("activeIndex",Me)},onTyping:Ce}),Pe=x.useMemo(()=>{const Me=$n(Le.reference,_e.reference,Ve.reference,{onMouseMove(){T.set("allowMouseEnter",!0)}},fe);return Me["aria-haspopup"]="menu",Me["aria-expanded"]=B,Me},[T,Le.reference,_e.reference,Ve.reference,fe,B]),Ie=x.useMemo(()=>{const Me=$n(_e.trigger,Ve.trigger,fe);return Me["aria-haspopup"]="menu",Me["aria-expanded"]=!1,Me},[_e.trigger,Ve.trigger,fe]),ae=x.useMemo(()=>$n(qf,{id:z,role:"menu","aria-labelledby":V?.id,onMouseMove(){T.set("allowMouseEnter",!0),X.type==="menu"&&T.set("hoverEnabled",!1)},onClick(){T.select("hoverEnabled")&&T.set("hoverEnabled",!1)},onKeyDown(Me){const Ze=T.select("keyboardEventRelay");Ze&&!Me.isPropagationStopped()&&Ze(Me)}},Le.floating,_e.floating,Ve.floating),[V,z,X.type,T,Le.floating,_e.floating,Ve.floating]),be=_e.item??$t;bb(T,{floatingRootContext:de,activeTriggerProps:Pe,inactiveTriggerProps:Ie,popupProps:ae,itemProps:be});const $e=x.useMemo(()=>({store:T,parent:A}),[T,A]),Ne=r.jsx(k2.Provider,{value:$e,children:typeof s=="function"?s({payload:K}):s});return X.type===void 0||X.type==="context-menu"?r.jsx(G5,{externalTree:P,children:Ne}):Ne});function V2(e){const t=e.getBoundingClientRect(),s=Ft(e);if(Gx)return t;const o=s.getComputedStyle(e,"::before"),l=s.getComputedStyle(e,"::after");if(!(o.content!=="none"||l.content!=="none"))return t;const u=parseFloat(o.width)||0,p=parseFloat(o.height)||0,m=parseFloat(l.width)||0,g=parseFloat(l.height)||0,h=Math.max(t.width,u,m),b=Math.max(t.height,p,g),_=h-t.width,k=b-t.height;return{left:t.left-_/2,right:t.right+_/2,top:t.top-k/2,bottom:t.bottom+k/2}}function q2(e={}){const{highlightItemOnHover:t,highlightedIndex:s,onHighlightedIndexChange:o}=Ab(),{ref:l,index:c}=Hc(e),u=s===c,p=x.useRef(null),m=Ys(l,p);return{compositeProps:{tabIndex:u?0:-1,onFocus(){o(c)},onMouseMove(){const h=p.current;if(!t||!h)return;const b=h.hasAttribute("disabled")||h.ariaDisabled==="true";!u&&!b&&h.focus()}},compositeRef:m,index:c}}function zz(e){const{render:t,className:s,style:o,state:l=$t,props:c=Gs,refs:u=Gs,metadata:p,stateAttributesMapping:m,tag:g="div",...h}=e,{compositeProps:b,compositeRef:_}=q2({metadata:p});return Et(g,e,{state:l,ref:[...u,_],props:[b,...c,h],stateAttributesMapping:m})}function $2(e){if(Ut(e)&&e.hasAttribute("data-rootownerid"))return e.getAttribute("data-rootownerid")??void 0;if(!rs(e))return $2(us(e))}function Dz(e,t){const s=x.useRef(null);function o(c){is.flushSync(()=>{e.setOpen(!1,nt(bo,c.nativeEvent,c.currentTarget))}),y5(s.current)?.focus()}function l(c){const u=e.select("positionerElement");if(u&&Cl(c,u))e.context.beforeContentFocusGuardRef.current?.focus();else{is.flushSync(()=>{e.setOpen(!1,nt(bo,c.nativeEvent,c.currentTarget))});let p=_5(e.context.triggerFocusTargetRef.current||t.current);for(;p!==null&&Ke(u,p);){const m=p;if(p=rb(p),p===m)break}p?.focus()}}return{preFocusGuardRef:s,handlePreFocusGuardFocus:o,handleFocusTargetFocus:l}}function Lz(e){const{enabled:t=!0,mouseDownAction:s,open:o}=e,l=x.useRef(!1);return x.useMemo(()=>t?{onMouseDown:c=>{(s==="open"&&!o||s==="close"&&o)&&(l.current=!0,mt(c.currentTarget).addEventListener("click",()=>{l.current=!1},{once:!0}))},onClick:c=>{l.current&&(l.current=!1,c.preventBaseUIHandler())}}:$t,[t,s,o])}const hd=2,Pz=Wk(function(t,s){const{render:o,className:l,style:c,disabled:u=!1,nativeButton:p=!0,id:m,openOnHover:g,delay:h=100,closeDelay:b=0,handle:_,payload:k,...E}=t,j=Ur(!0),w=_?.store??j?.store;if(!w)throw new Error(tn(85));const S=Ga(m),C=w.useState("isTriggerActive",S),N=w.useState("floatingRootContext"),R=w.useState("isOpenedByTrigger",S),A=w.useState("triggerPopupId",S),T=x.useRef(null),M=Bz(),z=Ab(!0),P=Br(),D=x.useMemo(()=>P??new ub,[P]),I=PS(D),B=Ir(),{registerTrigger:V,isMountedByThisTrigger:H}=t2(S,T,w,{payload:k,closeDelay:b,parent:M,floatingTreeRoot:D,floatingNodeId:I,floatingParentNodeId:B,keyboardEventRelay:z?.relayKeyboardEvent}),G=M.type==="menubar",q=w.useState("disabled"),Y=u||q||G&&M.context.disabled,{getButtonProps:X,buttonRef:$}=Hr({disabled:Y,native:p});x.useEffect(()=>{!R&&M.type===void 0&&(w.context.allowMouseUpTriggerRef.current=!1)},[w,R,M.type]);const K=x.useRef(null),L=wn(),F=Ue(_e=>{if(!K.current)return;L.clear(),w.context.allowMouseUpTriggerRef.current=!1;const Ce=_e.target;if(Ke(K.current,Ce)||Ke(w.select("positionerElement"),Ce)||Ce===K.current||Ce!=null&&$2(Ce)===w.select("rootId"))return;const Le=V2(K.current);_e.clientX>=Le.left-hd&&_e.clientX<=Le.right+hd&&_e.clientY>=Le.top-hd&&_e.clientY<=Le.bottom+hd||D.events.emit("close",{domEvent:_e,reason:rS})});x.useEffect(()=>{R&&w.select("lastOpenChangeReason")===Nn&&mt(K.current).addEventListener("mouseup",F,{once:!0})},[R,F,w]);const W=G&&M.context.hasSubmenuOpen,ce=i2(N,{enabled:(g??W)&&!Y&&M.type!=="context-menu"&&(!G||W&&!H),handleClose:d2({blockPointerEvents:!G}),mouseOnly:!0,move:!1,restMs:M.type===void 0?h:void 0,delay:{close:b},triggerElementRef:T,externalTree:D,isActiveTrigger:C,isClosing:()=>w.select("transitionStatus")==="ending"}),ue=Iz(R,w.select("lastOpenChangeReason")),se=IS(N,{enabled:!Y&&M.type!=="context-menu",event:R&&G?"click":"mousedown",toggle:!0,ignoreMouse:!1,stickIfOpen:M.type===void 0?ue:!1}),oe=r2(N,{enabled:!Y&&W}),fe=Lz({open:R,enabled:G,mouseDownAction:"open"}),Re=x.useMemo(()=>$n(oe.reference,se.reference),[oe.reference,se.reference]),le=w.useState("triggerProps",H),{preFocusGuardRef:de,handlePreFocusGuardFocus:ke,handleFocusTargetFocus:je}=Dz(w,T),Be={disabled:Y,open:R},Ve=[K,s,$,V,T],we=[Re,ce??$t,le,{"aria-haspopup":"menu","aria-controls":A,id:S,onMouseDown:_e=>{if(w.select("open"))return;L.start(200,()=>{w.context.allowMouseUpTriggerRef.current=!0}),mt(_e.currentTarget).addEventListener("mouseup",F,{once:!0})}},G?{role:"menuitem"}:{},fe,E,X],Ee=Et("button",t,{enabled:!G,stateAttributesMapping:Zh,state:Be,ref:Ve,props:we});return G?r.jsx(zz,{tag:"button",render:o,className:l,style:c,state:Be,refs:Ve,props:we,stateAttributesMapping:Zh}):R?r.jsxs(x.Fragment,{children:[r.jsx(Pl,{ref:de,onFocus:ke},`${S}-pre-focus-guard`),r.jsx(x.Fragment,{children:Ee},S),r.jsx(Pl,{ref:w.context.triggerFocusTargetRef,onFocus:je},`${S}-post-focus-guard`)]}):r.jsx(x.Fragment,{children:Ee},S)});function Iz(e,t){const s=wn(),[o,l]=x.useState(!1);return ze(()=>{e&&t==="trigger-hover"?(l(!0),s.start(U5,()=>{l(!1)})):e||(s.clear(),l(!1))},[e,t,s]),o}function Bz(){const e=Xf(!0),t=Ur(!0),s=U2();return x.useMemo(()=>s?{type:"menubar",context:s}:e&&!t?{type:"context-menu",context:e}:{type:void 0},[e,t,s])}function F2(e){return e==null||e.hasAttribute("disabled")||e.getAttribute("aria-disabled")==="true"}function G2({...e}){return r.jsx(Oz,{"data-slot":"dropdown-menu",...e})}function Y2({...e}){return r.jsx(Pz,{"data-slot":"dropdown-menu-trigger",...e})}function X2({align:e="start",alignOffset:t=0,side:s="bottom",sideOffset:o=4,className:l,...c}){return r.jsx(cz,{children:r.jsx(_z,{className:"isolate z-50 outline-none",align:e,alignOffset:t,side:s,sideOffset:o,children:r.jsx(lz,{"data-slot":"dropdown-menu-content",className:Ct("z-50 max-h-(--available-height) w-(--anchor-width) min-w-32 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-lg bg-popover p-1 text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 outline-none data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:overflow-hidden data-closed:fade-out-0 data-closed:zoom-out-95",l),...c})})})}function Uz({className:e,inset:t,variant:s="default",...o}){return r.jsx(Q4,{"data-slot":"dropdown-menu-item","data-inset":t,"data-variant":s,className:Ct("group/dropdown-menu-item relative flex cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:pl-7 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 data-[variant=destructive]:*:[svg]:text-destructive",e),...o})}function Hz({...e}){return r.jsx(jz,{"data-slot":"dropdown-menu-radio-group",...e})}function Vz({className:e,children:t,inset:s,...o}){return r.jsxs(kz,{"data-slot":"dropdown-menu-radio-item","data-inset":s,className:Ct("relative flex cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:pl-7 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",e),...o,children:[r.jsx("span",{className:"pointer-events-none absolute right-2 flex items-center justify-center","data-slot":"dropdown-menu-radio-item-indicator",children:r.jsx(Sz,{children:r.jsx(ho,{})})}),t]})}const qz={common:{loading:"Cargando…",saving:"Guardando…",cancel:"Cancelar",save:"Guardar",delete:"Borrar",edit:"Editar",create:"Crear",add:"Agregar",remove:"Quitar",reload:"Recargar",shutdown:"Apagar",enabled:"Habilitado",disabled:"Deshabilitado",enable:"Habilitar",disable:"Deshabilitar",open:"Abrir",close:"Cerrar",confirm:"Confirmar",optional:"(opcional)",none:"—",none_yet:"Todavía no hay nada.",error_generic:"Algo salió mal.",search:"Buscar",new:"Nuevo",restore:"Restaurar",show:"Mostrar",hide:"Ocultar",copy:"Copiar",run:"Ejecutar"},daemon:{connecting:"Conectando con el daemon…",unreachable:"No pude llegar al daemon en localhost:7430.",unreachable_hint:"Arrancá APX con `apx daemon start` y refrescá.",version:"Versión",uptime:"Uptime",status:"Status",running:"running",down:"down",reload_hint:"POST /admin/reload — relee ~/.apx/config.json sin reiniciar.",shutdown_confirm:"¿Apagar el daemon? Las próximas requests fallarán hasta levantarlo de nuevo.",shutdown_done:"Daemon detenido."},pairing:{title:"Vincular este equipo",subtitle:"Estás entrando desde fuera de esta máquina. Por seguridad, vinculá este navegador con un código de pairing.",steps_title:"Cómo obtener el código",step_1:"En la PC donde corre APX, abrí una terminal.",step_2:"Ejecutá `apx pair` (o escaneá el QR con APX Deck).",step_3:"Copiá el código que aparece debajo del QR y pegalo acá.",code_label:"Código de pairing",code_ph:"p. ej. 7f3a1c9e-…",label_label:"Nombre de este equipo",label_ph:"p. ej. Notebook del living",submit:"Vincular",linking:"Vinculando…",success:"Equipo vinculado ✓",err_required:"Pegá el código de pairing.",err_expired:"El código expiró. Volvé a correr `apx pair` y probá de nuevo.",err_unknown:"Código desconocido o ya usado. Generá uno nuevo con `apx pair`.",err_generic:"No se pudo vincular. Revisá el código e intentá otra vez.",revoke_hint:"Podés revocar este equipo cuando quieras desde Settings o con `apx pair revoke`."},nav:{apx_admin:"APX",settings:"Settings",project:"Proyecto",add_project:"Agregar proyecto",all_projects:"Todos los proyectos",more_projects:"{count} más",collapse_projects:"Ocultar proyectos",expand_projects:"Mostrar proyectos",modules:{voice:"Voces",desktop:"Escritorio",deck:"Deck",code:"Code"}},topbar:{breadcrumb_root:"APX",breadcrumb_settings:"APX › Settings",breadcrumb_project:"APX › Proyecto",breadcrumb_base:"Base",breadcrumb_projects:"Proyectos",light:"Cambiar a claro",dark:"Cambiar a oscuro",lang_toggle:"Idioma"},admin:{title:"APX",subtitle:"Panel general. Configuración global, canales y proyectos.",engines_title:"Engines",engines_subtitle:"Adaptadores LLM disponibles. Las API keys viven en ~/.apx/config.json.",telegram_title:"Telegram",telegram_subtitle:"Canales configurados. Cada uno puede estar pineado a un proyecto.",telegram_polling_on:"Polling activo",telegram_polling_off:"Deshabilitado",telegram_add_channel:"Canal",telegram_send_test:"Probar",telegram_send_test_title:"Enviar a",telegram_default_message:"Mensaje de prueba desde el panel de APX ✅",projects_title:"Proyectos registrados",projects_subtitle:"Click en un proyecto para abrir su panel.",unregister:"Desregistrar",unregister_confirm:"¿Quitar {label} de APX? La carpeta no se borra; sólo se desregistra.",reload_success:"Config recargada.",telegram_polling_started:"Polling iniciado.",telegram_polling_stopped:"Polling detenido.",telegram_channel_removed:"Canal eliminado.",agents_badge:"agents",engine_badge:"sí",engine_badge_no:"no",base_label:"Base"},add_project:{title:"Agregar proyecto",subtitle:"APX indexará .apc/, agents y AGENTS.md en esa carpeta.",path_label:"Ruta absoluta",path_hint:"Equivalente a apx project add /ruta/al/proyecto",path_placeholder:"/Volumes/SSDT7Shield/proyectos_varios/mi-proyecto",register:"Registrar",path_required:"Ruta requerida.",registered:"Proyecto #{id} registrado.",search_btn:"Buscar",picker_prompt:"Elegí la carpeta del proyecto",browser_unavailable:"Explorador no disponible hasta reiniciar daemon. Pegá ruta manual.",no_folders:"Sin carpetas."},settings:{title:"Settings",subtitle:"Preferencias del panel + diagnóstico del daemon local.",appearance:"Apariencia",light_mode:"Claro",dark_mode:"Oscuro",language:"Idioma",daemon:"Daemon",daemon_sub:"Estado del proceso local que sirve esta web y orquesta los agentes.",engines:"Engines disponibles",engines_sub:"Adaptadores LLM compilados con el daemon.",token:"Token para esta sesión",token_sub:"Si esta web no logró auto-cargar el token, pegalo acá.",token_active:"(ya hay token activo)",token_paste:"Pegá el bearer del daemon",token_saved:"Token guardado.",devices:"Dispositivos pareados",devices_sub:"GET /pair/list. Revocar invalida ese bearer en el daemon.",devices_empty:"No hay clientes pareados todavía.",devices_revoke_confirm:"Revocar cliente {id}?",devices_revoke_success:"Cliente revocado.",devices_pair_btn:"Vincular dispositivo",devices_pair_title:"Vincular dispositivo",devices_pair_desc:"Escaneá el QR con la cámara del celu para entrar directo, o pegá el código en la otra PC.",devices_pair_scan:"Escaneá con la cámara del teléfono — te abre la web ya vinculada.",devices_pair_code:"O pegá este código en la pantalla de pairing:",devices_pair_url:"URL de acceso",devices_pair_link:"O copiá este link y abrilo en el otro dispositivo (entra solo):",devices_pair_copy:"Copiar",devices_pair_copied:"Link copiado al portapapeles.",devices_pair_copied_code:"Código copiado.",devices_pair_expires:"Expira en {s}s",devices_pair_expired:"El código expiró.",devices_pair_regen:"Generar otro",devices_pair_waiting:"Esperando que el dispositivo confirme…",devices_pair_done:"Dispositivo vinculado ✓",devices_pair_localhost_only:"Solo se pueden generar códigos desde la PC del daemon (localhost).",devices_last_seen:"visto:",devices_never:"nunca",devices_revoke:"Revocar",account_section:"Cuenta",agents_section:"Agentes & modelos",channels_section:"Canales & dispositivos",advanced_section:"Avanzado",tabs:{identity:"Identidad",super_agent:"Super-agente",engines:"Engines & modelos",telegram:"Telegram",devices:"Dispositivos",advanced:"Avanzado"},identity:{title:"Identidad",subtitle:"Datos del usuario. Configuración del agente va en Super-agente.",agent_name:"Nombre del agente",owner_name:"Tu nombre",personality:"Personalidad",owner_context:"Contexto del dueño",owner_context_hint:"Quién sos, en qué trabajás, qué le interesa al agente saber de vos.",language:"Idioma preferido",timezone:"Timezone (IANA)",timezone_hint:"ej. America/Argentina/Buenos_Aires",saved:"Identidad guardada."},super_agent:{title:"Super-agente",subtitle:"Personalidad, modelo, prompt y modos del super-agente.",personality:"Personalidad",model:"Modelo activo",model_hint:"Ej: anthropic:claude-sonnet-4.5, ollama:gemma2:9b",permission_mode:"Permission mode",system:"Prompt extra (system)",system_hint:"Texto que se prepende al system prompt base.",system_ph:"(Vacío = se usa el prompt base de core/agent/prompts/super-agent-base.md)",fallback_title:"Fallback chain",fallback_hint:"Si el modelo activo falla, prueba estos en orden.",fallback_add:"Agregar modelo a la cadena",saved:"Super-agente guardado.",enabled_label:"Super-agente habilitado",model_active:"Modelo activo (router)",model_configure:"Configurar en Modelos",behavior_subtitle:"Comportamiento del super-agente. El modelo y la cadena de fallback se configuran en el Router de modelos."},engines_keys:{title:"API keys de modelos",subtitle:"Cada engine guarda su key en ~/.apx/config.json. Los valores ya seteados muestran sufijo seguro.",ollama_url:"Ollama URL",ollama_hint:"Por defecto: http://127.0.0.1:11434",key_label:"API key",key_placeholder:"(no seteada)",clear:"Borrar key",saved:"Key guardada.",cleared:"Key borrada."},telegram_global:{title:"Telegram (default)",subtitle:"Canal default — los proyectos pueden overridear con su propio canal.",bot_token:"Bot token",chat_id:"Chat ID por defecto",poll_interval:"Poll interval (ms)",respond_with_engine:"Respond with engine",enabled:"Polling habilitado",saved:"Telegram guardado."},advanced:{title:"Avanzado",subtitle:"Editor raw del ~/.apx/config.json. Los secretos se ven *** set *** pero podés escribir uno nuevo.",write:"Aplicar cambios",written:"Config aplicada y daemon recargado.",reload_success:"Config recargada."}},project:{not_found:"Roby no encontró el proyecto {pid}: quizás se desregistró o el ID es incorrecto.",rebuild:"Rebuild context",rebuild_done:"Rebuild OK.",unregister_confirm:"¿Desregistrar {label}? La carpeta no se borra.",unregistered:"Desregistrado.",base_subtitle:"Espacio general · super-agente",danger:{title:"Zona peligrosa",subtitle:"Acciones que afectan el registro del proyecto en APX. No tocan archivos del repo.",rebuild_desc:"Re-escanea .apc/, MCPs y agents y regenera el contexto del super-agente para este proyecto.",unregister_desc:"Quita el proyecto del registry de APX. La carpeta del disco se mantiene intacta.",rebuild_confirm_title:"Rebuild context",rebuild_confirm_desc:"Regenerar contexto de {label}.",rebuild_long:"Vuelve a leer la config APC, lista MCPs y agents disponibles, y reconstruye el system prompt del super-agente. Es seguro de correr — no borra nada. Usalo después de tocar .apc/ a mano o si los cambios no se reflejan.",unregister_confirm_title:"Desregistrar proyecto",unregister_long:"El proyecto deja de aparecer en `apx`. Los archivos del disco (.apc/, código, todo) se mantienen. Podés volver a registrarlo con `apx project register <path>`."},nav:{overview:"Overview",chat:"Chat",config:"Config",telegram:"Telegram",agents:"Agents",routines:"Rutinas",tasks:"Tasks",mcps:"MCPs",vars:"Variables",logs:"Logs",memories:"Memorias"},sections:{workspace:"Workspace",automation:"Automatización",knowledge:"Conversaciones",config:"Config"},overview:{tasks_open:"Tasks abiertas",routines:"Rutinas",agents:"Agents",mcps:"MCPs",chat:"Chat (super-agent)",chat_value:"abrir"},chat:{title:"Chat con agente",subtitle:"Chat directo con el agente del proyecto.",superagent_title:"Chat con {persona}",superagent_subtitle:"Chat con {persona} — el super-agente APX. Puede usar tools (proyectos, tasks, mcps, agentes).",loaded_subtitle:"Conversación cargada con {slug}. Lo que mandes se agrega a este chat.",empty:"Mandá un mensaje para arrancar la conversación.",placeholder:"Escribí algo y enter para enviar (shift+enter = nueva línea)",send:"Enviar",stop:"Stop",clear:"Limpiar",copy:"copiar",copied:"Copiado.",stopped_marker:" [detenido]",create_agent:"Crear agente",create_agent_title:"Crear agente",create_agent_desc:"Necesario para iniciar chat en proyecto.",role_label:"rol",model_label:"modelo",model_hint:"ej. openai:gpt-5, groq:llama-3.3-70b-versatile",master_label:"Agente master",list:{title:"Chats",new:"Nuevo",search:"Buscar chats…",all_agents:"Todos los agentes",empty:"No hay conversaciones todavía. Arrancá una desde la derecha.",count:"{n} en total",live_with:"Live · {slug}",live_subtitle:"Sesión en memoria"}},tasks:{title:"Tasks (TODOs)",subtitle:"Append-only JSONL en ~/.apx/projects/<id>/tasks/.",add:"agregar",add_label:"Nueva task",add_placeholder:"ej. revisar bug del scroll",empty:"No hay tasks {state}.",empty_open:"No hay tasks abiertas.",created:"Task creada.",create_error:"no pude crear la task",done:"✓ done",drop:"✗ drop",reopen:"↻ reopen",due:"vence",via:"via",aria_done:"marcar done",aria_drop:"descartar task",aria_reopen:"reabrir task"},global_tasks:{title:"Tasks (todos los proyectos)",subtitle:"Tareas agregadas de todos los proyectos registrados.",empty:"Sin tasks.",due:"vence",go_project:"Ir al proyecto"},routines:{title:"Heartbeats / Routines",subtitle:"Cron, every:Nm, once:ISO. Cada rutina dispara un agente o un shell.",empty:"Sin rutinas. Creá una arriba.",new:"nueva",new_btn:"Nueva",delete_confirm:"Borrar rutina {name}?",delete_confirm_body:"Esta acción no se puede deshacer.",saved:"Rutina guardada.",paused:"pausada",next_run:"próxima:",last_run:"última:",enabled_hint:"Activa · corre según el intervalo",disabled_hint:"Pausada · solo con el botón Run",enabled_label:"Habilitada",new_title:"Nueva rutina",edit_title:"Editar {name}",dialog_desc:"Se guarda en .apc/routines.json. La rutina corre mientras el daemon está activo.",name_field:"Nombre (name)",name_no_edit:"No se puede cambiar al editar.",kind_field:"Acción (kind)",schedule_field:"Intervalo (schedule)",schedule_hint:"Elegí un preset o escribilo a mano. Manual = solo corre con el botón Run.",vars_title:"Variables disponibles",what_happens:"Qué va a pasar",list_title:"Rutinas",detail_empty:"Elegí una rutina de la lista.",edit_btn:"Editar",edit_hint:"Abrir el editor: tipo, intervalo, prompt, pre/post y variables.",block_pre:"Pre-commands",block_post:"Post-commands",block_prompt:"Prompt",block_text:"Texto",block_command:"Comando",block_empty:"(vacío)",runs_title:"Ejecuciones",runs_empty:"Sin ejecuciones todavía.",runs_close:"Cerrar",runs_no_detail:"Sin más detalle.",runs_output:"Salida",status_ok:"ok",status_error:"error",status_skipped:"salteada",agent_field:"Agente (spec.agent)",agent_hint:"Quién ejecuta la rutina.",agent_loading:"cargando…",agent_pick:"— elegí un agente —",prompt_exec:"Prompt (spec.prompt)",prompt_exec_ph:"qué pendiente hay para hoy?",prompt_super:"Prompt (spec.prompt)",prompt_super_ph:"resumí el estado del proyecto",pre_field:"Pre-commands (pre_commands)",pre_hint:"Shell ANTES del prompt. Uno por línea.",post_field:"Post-commands (post_commands)",post_hint:"Shell DESPUÉS del prompt. Uno por línea.",tg_channel:"Canal (spec.channel)",tg_chat_id:"Chat ID (spec.chat_id)",tg_text:"Mensaje de Telegram (spec.text)",tg_text_hint:"Mensaje fijo a enviar. No usa modelo.",shell_field:"Comando (spec.command)",shell_hint:"Corre tal cual en el shell. Sin prompt ni pre/post.",hb_channel:"Canal (spec.channel)",hb_message:"Mensaje (spec.message)",name_required:"name requerido",save_error:"save falló",run_error:"run falló",toggle_error:"toggle falló",delete_error:"delete falló",run_success:"{name} disparada.",run_confirm:"¿Ejecutar la rutina {name} ahora?",run_confirm_body:"Corre la acción una vez, sin esperar al horario.",running:"Ejecutando…",delete_success:"borrada."},agents:{title:"Agents",subtitle:"Definidos en .apc/agents/<slug>.md.",subtitle_full:"Definidos en .apc/agents/<slug>.md. La memoria runtime vive en ~/.apx/projects/<id>/agents/<slug>/.",empty:"Sin agents. Agregá uno con <code>apx agent add</code> o el botón.",empty_text:"Sin agents. Agregá uno con `apx agent add` o el botón de arriba.",new:"Agente",created:"Agent {slug} creado.",slug_invalid:"slug debe matchear /^[a-z][a-z0-9_-]*$/",hierarchy:"Jerarquía",list_view:"Lista",import:"Importar",chat:"Chat",view:"Ver",orchestrator:"Orquestador",new_title:"Nuevo agent",new_desc:"POST /projects/:pid/agents — escribe .apc/agents/<slug>.md.",slug_label:"slug",slug_ph:"cody",role_label:"role (opcional)",role_ph:"code refactor",model_label:"model (opcional)",model_hint:"ej. ollama:gemma2:9b, openai:gpt-4o-mini",lang_label:"language (opcional)",desc_label:"description (opcional)",desc_ph:"Qué hace este agente…",skills_label:"skills (coma)",skills_ph:"skill-a, skill-b",tools_label:"tools (coma)",tools_ph:"tool-a, tool-b",parent_label:"reporta a (parent, opcional)",parent_hint:"Subagente de un orquestador.",none_parent:"— ninguno —",master_label:"Orquestador (master)",create_success:"Agent {slug} creado.",create_error:"create falló",import_title:"Importar del vault",import_desc:"Plantillas en ~/.apx/agents. Se registran en este proyecto (.apc/agents/<slug>.md).",import_empty:"Sin plantillas en el vault.",import_success:"Importado: {slug}",import_already:"ya está",import_btn:"Importar"},agent_detail:{not_found:"Agente no encontrado.",chat_btn:"Chat con {slug}",reports_to:"↳ reporta a",no_threads:"Sin threads.",no_activity:"Sin actividad registrada.",threads_recent:"Threads recientes",subagents:"Subagentes",subagents_desc:"Agentes que reportan a este orquestador.",config_title:"Configuración del agente",type_label:"Tipología (type)",area_label:"Área",area_hint:"ej. operaciones, marketing",area_ph:"operaciones",role_label:"Role",parent_label:"Reporta a (parent)",none_parent:"— ninguno —",model_label:"Modelo base",model_hint:"Vacío = usa el modelo del Router (default). Setealo solo para forzar un modelo a este agente.",model_ph:"(vacío = router default)",skills_label:"Skills (coma)",bio_label:"Bio / descripción",system_label:"System prompt",system_hint:"Define personalidad y comportamiento (cuerpo del AGENT.md).",master_label:"Orquestador (master)",delete_btn:"Borrar agente",save_btn:"Guardar cambios",delete_confirm:'Borrar el agente "{slug}"? Se elimina .apc/agents/{slug}.md y sus datos runtime locales.',update_success:"Agente actualizado.",delete_success:"Agente borrado.",tools_hint:"Qué tools puede usar el agente. Tocá para activar/desactivar; o editá la lista abajo.",tools_custom_ph:"lista (coma): echo, http_fetch",memory_title:"Memoria del agente",memory_empty:"(memoria vacía)",memory_saved:"Memoria guardada.",records_title:"Records",records_desc:"Log de actividad del agente (mensajes/acciones). Lo más nuevo primero.",sleep_title:"Sleep / Heartbeat",sleep_desc:"Estado de ejecución del agente, derivado de sus rutinas.",sleep_deep:"Deep sleep · sin heartbeat",sleep_deep_desc:"Este agente no tiene ninguna rutina que lo dispare. No se ejecuta de forma autónoma; solo responde cuando lo invocás (chat / tarea).",brain_title:"Brain",brain_desc:"Grafo de relaciones reales del agente: memoria, threads, tasks, heartbeats y jerarquía. (primera versión — lo refinamos)",brain_empty:"Aún no hay relaciones para graficar (sin memoria, threads, tasks ni rutinas).",msgs_count:"msgs"},mcps:{title:"MCP servers",subtitle:"3 scopes: Runtime > Shared > Global. Conflictos arriba si los hay.",empty:"Sin MCPs configurados.",new:"MCP",delete_confirm:"Borrar MCP {name} de scope {scope}?",conflicts:"⚠ Conflictos: {names}",new_title:"Nuevo MCP",edit_title:"Editar MCP",new_desc:"Se guarda según el scope elegido. Los valores con ${var.X} se resuelven al arrancar el MCP.",scope_label:"Scope",scope_runtime:"Runtime",scope_shared:"Shared",scope_global:"Global",scope_runtime_desc:"Solo este proyecto · con secrets · no se commitea (~/.apx/projects/<id>/mcps.json)",scope_shared_desc:"Solo este proyecto · committeable · sin secrets (.apc/mcps.json)",scope_global_desc:"Todos los proyectos de esta máquina (~/.apx/mcps.json)",transport_stdio:"stdio",transport_http:"HTTP",transport_stdio_desc:"Proceso local — `command` + args",transport_http_desc:"Endpoint remoto — URL + headers",transport_label:"Transport",name_label:"Nombre",name_ph:"my-mcp",cmd_label:"Comando",cmd_ph:"npx",args_label:"Args",args_hint_tokens:"Una entrada por argumento. Usá el botón + para insertar variables.",env_label:"Env",env_hint_tokens:"Pares clave/valor. Los valores aceptan ${var.NOMBRE} (botón + a la derecha).",env_empty:"Sin variables de entorno.",url_label:"URL",url_ph:"https://example.com/v2/mcp",headers_label:"Headers",headers_hint:"Pares clave/valor — típicamente Authorization: Bearer ${var.TOKEN}.",headers_empty:"Sin headers.",enabled_label:"Habilitado",add_btn:"Agregar",save_btn:"Guardar",add_arg:"Agregar arg",edit_btn:"Editar",test_btn:"Probar",logs_btn:"Logs",testing:"Probando…",test_ok:"OK · {n} tools disponibles",logs_title:"Logs · {name}",logs_empty:"Sin logs todavía. Arrancá el MCP llamando un tool o probando.",logs_events:"Eventos recientes",logs_stderr:"stderr (últimos 4KB)",logs_panel_title:"Live logs",logs_panel_pick:"elegí un MCP",logs_panel_hint:"Click un MCP de la lista para ver lo que está pasando en vivo.",logs_panel_idle:"Sin actividad. Apretá Probar para arrancarlo.",name_required:"Nombre requerido",removed:"eliminado",added:"MCP agregado.",updated:"MCP actualizado."},vars:{title:"Variables",subtitle_project:"Reemplazan ${var.NOMBRE} al cargar MCPs y plantillas. Las del proyecto ganan sobre las globales. Se guardan fuera del repo (~/.apx/, chmod 0600).",subtitle_base:"Variables globales — disponibles para todos los proyectos. Se guardan en ~/.apx/vars.json (chmod 0600).",empty:"Sin variables todavía.",new:"Variable",new_title:"Nueva variable",edit_title:"Editar variable",new_desc:"Se referencia como ${var.NOMBRE} en cualquier campo que soporte interpolación.",reveal_all:"Mostrar valores",reveal:"Mostrar",hide:"Ocultar",filter_label:"Mostrar:",filter_all:"Todas",filter_project:"Sólo proyecto",filter_global:"Sólo globales",scope_label:"Scope",scope_project:"proyecto",scope_project_desc:"Sólo este proyecto. Pisa la global con mismo nombre.",scope_global:"global",scope_global_desc:"Disponible en todos los proyectos.",name_label:"Nombre",name_hint:"Mayúsculas, dígitos y _. P. ej.: MY_API_KEY, GITHUB_TOKEN.",value_label:"Valor",value_hint:"Se guarda en disco con permisos 0600. Nunca se commitea.",value_edit_ph:"(dejá vacío para no cambiarlo… aún no soportado, pegá el valor de nuevo)",add_btn:"Agregar",save_btn:"Guardar",edit_btn:"Editar",delete_btn:"Borrar",delete_confirm:"¿Borrar {name} ({scope})?",removed:"Variable eliminada.",added:"Variable agregada.",updated:"Variable actualizada.",name_required:"Nombre requerido.",value_required:"Valor requerido."},threads:{title:"Chats",subtitle:"Conversaciones por agent (vacío = ningún log persistido todavía).",no_agents:"No hay agents. Las conversaciones requieren un agent configurado.",pick:"Elegí un agent para ver sus conversaciones.",empty:"No hay conversaciones para {slug}.",conversation_title:"Conversación {id}",messages:"mensajes",via:"via"},config:{title:"Config rápida",subtitle:"Override del proyecto. Se escribe en {path}.",model:"super_agent.model",model_hint:"ej. anthropic:claude-sonnet-4.5, ollama:gemma2:9b",perm:"super_agent.permission_mode",route:"route_to_agent",route_hint:"Slug del agent que atiende por defecto en este proyecto.",use_global:"(usa global)",saved:"Guardado.",nothing:"Nada para guardar.",raw_title:"Config (JSON crudo)",raw_subtitle:"Pegá el objeto entero — equivale a PUT del archivo.",raw_save:"Reemplazar config",raw_done:"Config sobrescrita.",effective:"Effective config (read-only)",effective_sub:"Lo que ve realmente el daemon (global ⊕ override).",section_title:"Config proyecto",section_desc:"APC metadata y overrides separados. General APX vive en Settings > Config.",effective_read:"Lectura: global APX + override proyecto.",save_project:".apc/project.json guardado.",save_override:".apc/config.json guardado.",save_fields_success:"Overrides guardados.",save_meta_success:"Project metadata guardado.",no_data:"Sin datos."},telegram:{title:"Canal de Telegram (override)",subtitle:"Si seteás un canal acá, los mensajes generados por este proyecto se mandan ahí en lugar del default.",use_default:"Usar el canal default",bot_token:"Bot token (override)",chat_id:"Chat ID (override)",saved:"Override guardado.",cleared:"Override eliminado — vuelve al default.",override_active:"override activo",channel_badge:"Canal {name}",no_override:"Sin override. Los mensajes de este proyecto van al canal default.",respond_engine:"Responder con engine",route_agent:"route_to_agent",route_hint:"Slug del agent que atiende (vacío = super-agent).",bot_hint_none:"Si vacío, hereda del default."},memories:{project_title:"Memoria del proyecto",project_desc:"Hechos durables a nivel proyecto. .apc/memory.md — la leen los agentes y el super-agente.",project_ph:`# Memoria del proyecto
|
|
612
|
+
|
|
613
|
+
Hechos estables que cualquier agente debería saber…`,agents_title:"Memorias de agentes",agents_desc:"Memoria individual por agente. ~/.apx/projects/<id>/agents/<slug>/memory.md",no_agents:"Sin agentes en este proyecto.",saved:"Memoria guardada.",empty:"(memoria vacía)",chars:"chars · Markdown",save_btn:"Guardar"}},base:{title:"Base",subtitle:"Espacio general · super-agente",nav_general:"General",nav_activity:"Actividad",nav_system:"Sistema",workspaces_title:"Workspaces",workspaces_desc:"Todos los proyectos registrados en APX.",workspaces_new:"Nuevo proyecto",workspaces_empty:"Sin proyectos. Agregá uno con el botón de arriba.",sessions_title:"Sessions",sessions_desc:"Sesiones de todos los engines (apx · claude · codex), más nuevas primero.",sessions_all:"Todos los engines",sessions_empty:"Sin sesiones.",sessions_error:"No pude leer las sesiones: {msg}",defaults_title:"Agent defaults",defaults_desc:"Plantillas globales del vault. Las bundled vienen con APX y siempre están; las que crees o edites quedan en ~/.apx/agents y se superponen. Importalas a un proyecto desde Agents › Importar.",defaults_show_removed:"Mostrar removidos",defaults_new:"Nuevo",defaults_empty:"Sin plantillas en el vault.",defaults_hide:"Ocultar",defaults_restore:"Restaurar",defaults_edit:"Editar",defaults_remove:"Ocultar",defaults_delete:"Borrar",defaults_tombstone_msg:'Ocultar el default "{slug}"? Es bundled — quedá tombstoneado y lo recuperás con Restaurar.',defaults_delete_msg:'Borrar el template "{slug}"?',defaults_hidden:"Ocultado.",defaults_deleted:"Borrado.",defaults_restored:"Restaurado.",defaults_new_title:"Nuevo template",defaults_new_desc:"POST /agents/vault — se guarda en ~/.apx/agents/<slug>.md",defaults_edit_title:'Editar "{slug}"',defaults_bundled_desc:"Es un default bundled. Al guardar se hace copy-on-write a ~/.apx/agents/<slug>.md (queda como override).",defaults_user_desc:"PATCH /agents/vault/:slug — edita el archivo en ~/.apx/agents.",defaults_master_label:"Agente master",defaults_slug_invalid:"slug inválido (debe matchear /^[a-z][a-z0-9_-]*$/)",defaults_created:'Template "{slug}" creado.',defaults_saved:'Template "{slug}" guardado.'},logs:{title:"Logs",desc_global:"Actividad del daemon (canales globales: telegram, direct…). ~/.apx/messages/<channel>/.",desc_project:"Actividad del proyecto. ~/.apx/projects/<id>/messages/.",filter_channel:"filtrar canal (ej. telegram)",filter_dir:"dirección",all_directions:"Todas las direcciones",in:"Entrada (in)",out:"Salida (out)",filter_type:"tipo",all_types:"Todos los tipos",search_text:"buscar en el texto…",count_of:"de",no_activity:"Sin actividad.",no_activity_ch:'Sin actividad en el canal "{ch}".',error:"No pude leer los mensajes: {msg}",show_more:"ver más",show_less:"ver menos",daemon_errors:"Errores del daemon (~/.apx/logs/errors.jsonl)",no_errors:"Sin errores registrados. 🎉"},telegram_contacts:{title:"Contactos de Telegram",desc:"Quién le escribe a los bots. El rol define qué herramientas puede usar; un invitado no tiene permisos hasta que le asignes un rol.",empty:"Todavía no hay contactos — se registran solos cuando alguien escribe a un bot.",owner_badge:"dueño",assign_role:"Asignar rol",owner_hint:"Es dueño de un canal — cambialo desde el canal",removed:"Contacto eliminado.",delete_confirm:"¿Borrar el contacto {name}?",last_seen:"visto:",tools_all:"tools: todas",tools_none:"tools: ninguna",tools_label:"tools:"},telegram_channels:{title:"Canales",desc:"Cada canal es un bot que el daemon polea. Acá podés añadir/quitar canales, cambiar el agente que contesta, el proyecto al que pertenece y su dueño.",new_btn:"Nuevo canal",empty:"Todavía no hay canales — agregá el primero.",removed:"Canal eliminado.",delete_confirm:"¿Borrar el canal {name}?",no_owner:"sin dueño (se reclama al primer DM)",owner_label:"dueño:"},telegram_channel_dialog:{new_title:"Nuevo canal de Telegram",edit_title:"Editar canal: {name}",name_label:"name (slug interno)",token_label:"bot_token",chat_id:"chat_id",project_label:"project",project_hint:"Slug o id del proyecto al que pinear este canal (opcional).",route_label:"route_to_agent",route_hint:"Agente que contesta; vacío = super-agent APX.",owner_label:"owner_user_id",owner_hint:"user_id de Telegram del dueño de este canal. Override del rol global a 'owner' acá. Si lo dejás vacío, el primer mensaje privado lo reclama.",owner_ph:"889721252",respond_label:"Responder con engine (no echo)",name_required:"name requerido",saved:"Canal guardado."},telegram_send_dialog:{title:"Enviar a {name}",default_msg:"Mensaje de prueba desde el panel de APX ✅"},telegram_roles:{title:"Roles",desc:"Cada rol define qué herramientas del super-agent puede usar quien lo tenga asignado. 'owner' siempre = todas; 'guest' siempre = ninguna (solo chat).",empty:"No hay roles definidos.",tools_all:"todas las herramientas",tools_none:"ninguna herramienta",builtin:"built-in",delete_confirm:'¿Borrar el rol "{name}"?',removed:"Rol eliminado.",saved:'Rol "{name}" guardado.',name_required:"Nombre requerido.",builtin_error:'"{name}" es un rol built-in.',new_title:"Nuevo rol o reemplazar uno custom",name_label:"Nombre",name_ph:"editor",tools_label:"Tools (separadas por coma)",tools_hint:"Vacío = ninguna. Ejemplos: call_agent, list_tasks, create_task.",tools_ph:"call_agent, list_tasks",full_access:"Acceso total (todas las tools)",save_btn:"Guardar rol",delete_btn:"Borrar"},superagent:{title:"{persona}",badge:"super-agent · APX",desc:"Conversación rápida con tu super-agente. Tiene acceso a tools (proyectos, tasks, mcps, agentes); para un hilo más largo y persistente, abrí Chats.",empty:"Mandale un mensaje a {persona} para arrancar.",thinking:"{persona} está pensando…",talk:"Hablar con {persona}",new_chat:"Nuevo chat",placeholder:"Escribí y enter para enviar (shift+enter = nueva línea)…"},not_found:{title:"404",message:"Roby se perdió: esta página no existe o se movió.",home:"Volver al inicio"},ask_panel:{answers_header:"Respuestas",other:"Otro",other_placeholder:"Escribí tu propia respuesta acá",text_placeholder:"Escribí tu respuesta…",back:"Atrás",skip:"Omitir",next:"Siguiente",submit:"Enviar",status_waiting:"Esperando respuesta…",status_received:"Respuestas recibidas"},code_module:{title:"Code",badge:"super-agent",desc:"Sesiones de código estilo OpenCode. Elegí un proyecto, abrí una sesión y pedile que lea, planifique, edite o ejecute.",no_projects:"No hay proyectos registrados. Registrá uno con `apx project add` para usar Code.",sessions:"Sesiones",new_session:"Nueva sesión",untitled:"Nueva sesión",no_sessions:"Todavía no hay sesiones — creá una para empezar a codear.",pick_project:"Elegí un proyecto para ver sus sesiones.",rename:"Renombrar",delete:"Eliminar",delete_confirm:"¿Eliminar esta sesión? Se borra la transcripción; tus archivos quedan intactos.",empty_chat:"Mandá una instrucción de código para arrancar.",placeholder:"Pedí un cambio… (enter envía, shift+enter = nueva línea)",mode_build:"Build",mode_plan:"Plan",mode_build_hint:"Build — edita archivos y ejecuta comandos",mode_plan_hint:"Plan — solo lectura, propone cambios sin tocar archivos",tab_context:"Contexto",tab_changes:"Cambios",tab_artifacts:"Artifacts",artifacts_none:"Todavía no hay artifacts. Pedile al agente que cree un script en `artifacts/<nombre>`.",artifacts_count:"{n} artifact(s)",artifacts_copy_path:"Copiar path",artifacts_run:"Run",artifacts_run_hint:"Para ejecutarlo desde la terminal:",artifacts_delete:"Eliminar",artifacts_delete_confirm:"¿Eliminar este artifact? El archivo se borra del disco.",ctx_model:"Modelo",ctx_tokens:"Tokens",ctx_input:"Entrada",ctx_output:"Salida",ctx_messages:"Mensajes",ctx_breakdown:"Desglose de contexto",ctx_none:"Sin uso todavía — mandá un turno para ver tokens.",seg_system:"Sistema",seg_user:"Usuario",seg_assistant:"Asistente",seg_tool:"Tools",seg_other:"Otro",changes_none:"Todavía no hay cambios en esta sesión.",changes_no_git:"Los cambios necesitan un repo git. Este proyecto no lo es.",changes_files:"{n} archivo(s) cambiados",stopped:"[detenido]",close:"Cerrar",reload:"Recargar",discard_changes:"Descartar cambios",save_shortcut_hint:"Guardar (Cmd/Ctrl+S)",artifacts_rename:"Renombrar",artifacts_view:"Ver contenido",artifacts_edit:"Editar contenido",tree_collapse_all:"Colapsar todo",terminal_clear:"Limpiar",terminal_close:"Cerrar terminal"},desktop_screen:{status_title:"Estado",autostart_title:"Arranque automático",shortcut_title:"Atajo de teclado",appearance_title:"Apariencia",activation_title:"Activación + transcripción",last_conv_title:"Última conversación"},voice_screen:{providers_title:"Proveedores de voz (TTS)",test_title:"Probar voz",stt_title:"Transcripción (STT)",configure_provider:"Configurar {name}"},deck_screen:{widgets_title:"Widgets",context_title:"Contexto APX",reload_manifest:"Recargar manifest",widget_native:"Widget nativo APX",widget_external:"Widget externo"},memory_panel:{embeddings_title:"Embeddings (RAG)",embeddings_desc:"Modelo que vectoriza el historial de todos los canales para la memoria relevante. Igual que TTS/STT: elegí un proveedor y un modelo. 'Automático' prueba local primero y cae a offline si no hay nada disponible.",provider_label:"Proveedor",provider_hint:"Ollama es local y gratis. Gemini/OpenAI usan la API key de su sección en Modelos (o la de abajo).",mode_label:"Modo de selección",mode_hint:"Cadena cae al siguiente si uno falla; Único usa exactamente el proveedor elegido.",available:"disponible",unavailable:"no disp.",test_btn:"Probar embedding",reindex_btn:"Reindexar memoria",test_ok:"Embedding OK con {embedder}",test_failed:"Test falló: {msg}",reindexed:"Reindexado: {indexed} chunks (limpiados {cleared}).",reindex_failed:"Reindex falló: {msg}",save_failed:"No se pudo guardar: {msg}",provider_auto:"Automático (cadena: Ollama → Gemini → OpenAI → offline)",provider_ollama:"Ollama — local, sin API key (nomic-embed-text)",provider_gemini:"Gemini — free tier con key (text-embedding-004)",provider_openai:"OpenAI — text-embedding-3-small (cloud)",provider_tf:"Offline (term-frequency, sin modelo — degradado)",mode_chain:"Cadena (fallback automático)",mode_single:"Único (usa solo el elegido)",ollama_title:"Ollama (local)",ollama_desc:"Sin API key. Corre nomic-embed-text en tu Ollama local o cloud.",model_label:"Modelo",base_url_label:"Base URL",ollama_base_url_hint:"Vacío usa engines.ollama.base_url (default http://localhost:11434).",openai_title:"OpenAI",openai_desc:"text-embedding-3-small (1536 dims) u otro modelo compatible.",api_key_label:"API key",openai_key_hint:"Vacío reusa engines.openai.api_key. Dejalo en blanco para mantener la guardada.",gemini_title:"Gemini",gemini_desc:"text-embedding-004 (768 dims). Free tier con API key de Google.",gemini_key_hint:"Vacío reusa engines.gemini.api_key.",compaction_title:"Compactación de historial",compaction_desc:"Cuando un chat supera el umbral de turnos, los más viejos se resumen con un LLM liviano (local) y se guardan como [RESUMEN COMPACTADO], manteniendo el contexto acotado. Corre fuera del hot-path: el turno actual usa el resumen que ya exista.",threshold_label:"Umbral de compactación",threshold_hint:"Compactar una vez que el chat supera estos turnos (por defecto 60).",keep_recent_label:"Turnos recientes a preservar",keep_recent_hint:"Turnos verbatim que NUNCA se compactan (por defecto 40). Debe ser menor al umbral.",compact_model_label:"Modelo de compactación",compact_model_hint:"LLM liviano para resumir. Ideal uno local (Ollama) para no gastar. Formato proveedor:modelo.",compact_fallback_label:"Modelo de fallback",compact_fallback_hint:"Se usa si el de compactación falla. Vacío cae al modelo del super-agente.",compact_fallback_ph:"(vacío → modelo del super-agente)"},router_panel:{title:"Router de modelos",description:"Un único router general (sin casos por tarea). Elegí un proveedor y un modelo; si el activo falla, prueba la cadena de fallback en orden.",badge_default:"default",no_providers:"Agregá un proveedor abajo para poder elegir modelos.",active_model_label:"Modelo activo (default)",active_model_hint:"Proveedor + modelo. Se guarda como proveedor:modelo.",fallback_title:"Cadena de fallback",fallback_desc:"Si el modelo activo falla, prueba estos en orden. Click en uno para editarlo.",fallback_empty:"Sin fallback configurado.",add_to_chain:"Agregar a la cadena",done:"listo",save:"Guardar router",saved:"Guardado",saved_toast:"Router guardado.",provider_ph:"— proveedor —",provider_not_found:"⚠ {name} (no encontrado)",provider_not_configured:'El proveedor "{name}" no está configurado.'},engines_panel:{title:"Proveedores",new_btn:"Nuevo proveedor",description:"Proveedores LLM (API). Cada provider usa un engine/adapter (openai, ollama, …) con su key y URL.",empty:"Sin providers. Agregá uno con el botón de arriba.",add_card:"Agregar provider",saved:"Provider guardado.",saved_json:"Provider guardado (JSON).",deleted:"Provider borrado.",delete_confirm:"¿Borrar provider {name}?"},providers_modal:{new_title:"Nuevo proveedor",edit_title:"Editar {name}",description:"Proveedor LLM. El motor (engine) define qué adapter usa (openai, ollama, …).",list_models_hint:"Listar los modelos reales del proveedor",toggle_active:"Activo · click para desactivar",toggle_inactive:"Inactivo · click para activar",delete:"Borrar",custom:"Custom",json_mode:"JSON",form_mode:"Volver al formulario",json_label:"Config del provider (JSON)",json_hint:"Se guarda como engines.{slug} en config.json",json_help:"Debe ser un objeto JSON válido con al menos engine. El slug se toma del formulario.",name_label:"Nombre",name_ph:"Mi provider",engine_label:"Motor (engine)",base_url_label:"URL base (base_url)",base_url_hint:"Se completa sola al elegir un proveedor.",base_url_ph:"https://api.openai.com/v1",api_key_label:"API key",api_key_hint_existing:"Dejá en blanco para mantener la actual.",api_key_hint_env:"Se guarda como secreto. Env sugerida: {env}",api_key_hint:"Se guarda como secreto.",api_key_set:"…{suffix} (ya seteada)",model_label:"Modelo por defecto",load_models:"Cargar modelos",max_tokens_label:"Máx. tokens (max_tokens)",temperature_label:"Temperatura: {value}",pricing_summary:"Análisis de tokens / pricing (opcional)",context_limit_label:"Límite de contexto (tokens)",price_input:"$ entrada / 1M",price_output:"$ salida / 1M",price_cache_read:"$ cache read / 1M",price_cache_write:"$ cache write / 1M",model_limits_label:"Límites de contexto por modelo (JSON)",active_label:"Activo (los agentes pueden usarlo)",err_slug_required:"Slug requerido.",err_slug_required_form:"Slug requerido (en el formulario).",err_slug_exists:'Ya existe un provider "{slug}".',err_model_limits_json:"Límites de contexto por modelo: JSON inválido.",err_json_invalid:"JSON inválido: revisá la sintaxis.",err_json_object:"El JSON debe ser un objeto con la config del provider.",err_engine_missing:'Falta "engine" (ej. "anthropic", "ollama").',err_save:"Error al guardar.",err_no_models:"Sin modelos. ¿Key/URL correctas?",err_list_models:"No se pudo listar modelos."},providers_card:{active:"Activo",off:"Off",model:"Modelo",base_url:"Base URL",api_key:"API key",key_set:"✓ seteada",temp:"Temp",price_io:"$ in/out (1M)"},chat_ui:{copy:"Copiar",stop:"Detener",send:"Enviar",pick_model:"Elegir modelo (o Auto)",insert_variable:"Insertar variable"},sidebar_ui:{toggle:"Mostrar/ocultar sidebar"},models_ui:{invalid_hint:"Modelo/proveedor no disponible"},global_config:{title:"Config APX"},agent_detail_extra:{skills_title:"Skills & tools"},voice_ui:{api_key_label:"API key",api_key_set:"…{suffix} (ya seteada)",api_key_keep_hint:"Dejá en blanco para mantener la actual.",api_key_secret_hint:"Se guarda como secreto. Env: {env}",api_key_reuse_hint:"Si lo dejás vacío, reusa {engine}. Env: {env}",err_save:"Error al guardar.",model_label:"Modelo",voice_label:"Voz",format_label:"Formato",output_format_label:"Formato de salida",voice_id_label:"Voice ID",voice_id_hint:"Voice id de ElevenLabs (vacío = default).",gemini_model_hint:"El TTS de Gemini todavía está en preview.",style_label:"Estilo (cómo debería hablar)",style_hint:"Instrucción en lenguaje natural. Vacío = sin estilo. Ej.: 'hablá en un tono alegre y pausado'.",style_ph:"hablá en un tono alegre y enérgico",piper_bin_label:"Binario (bin)",piper_bin_hint:"Ruta o nombre del CLI de piper (PATH).",piper_model_label:"Modelo (.onnx)",piper_model_hint:"Ruta absoluta al modelo de voz de piper.",piper_speaker_label:"Speaker (opcional)",piper_speaker_hint:"Speaker id para modelos multi-voz.",mock_desc:"El engine mock genera un WAV de prueba en silencio. No tiene parámetros: sirve como fallback garantizado cuando no hay ningún otro engine configurado.",selection_mode:"Modo de selección",mode_chain_desc:"Cadena con fallback: usa el primer engine disponible siguiendo el orden de abajo.",mode_single_desc:"Solo engine default: siempre usa el elegido; el resto queda configurado para otros usos.",mode_chain_btn:"Cadena (router)",mode_single_btn:"Solo engine default",move_up:"Subir",move_down:"Bajar",badge_local:"local",badge_available:"disponible",badge_unavailable:"configurado, no disponible",badge_not_configured:"sin configurar",badge_default:"default",set_as_default:"Usar como default",configure:"Configurar",stt_engine_label:"Engine de transcripción",stt_engine_hint:"Local usa faster-whisper (requiere python3 + faster-whisper). OpenAI usa la key de engines.openai.",stt_model_label:"Modelo local (whisper)",stt_model_hint:"Más grande = más preciso y más lento.",stt_language_label:"Idioma",stt_language_hint:'Para español, elegir "Español" mejora la precisión.',stt_provider_auto:"Automático (local, después OpenAI)",stt_provider_local:"Local — faster-whisper (offline)",stt_provider_openai:"OpenAI — Whisper-1 (cloud)",lang_auto:"Detección automática",lang_es:"Español",lang_en:"Inglés",lang_pt:"Portugués",lang_fr:"Francés",lang_it:"Italiano",lang_de:"Alemán",test_default_text:"Hola, soy APX. Esto es una prueba de voz.",test_default_engine:"Default ({name})",test_default_chain:"Default (cadena)",test_unavailable_suffix:" · no disponible",test_empty_error:"Escribí algo para decir.",test_synth_error:"No se pudo sintetizar.",test_engine_label:"Engine",test_engine_hint:"Override del default para probar.",test_style_label:"Estilo (solo Gemini)",test_style_hint:"Cómo debería hablar. Vacío = sin estilo.",test_text_label:"Texto a decir",test_text_ph:"Escribí lo que querés que diga…",say_this:"Decir esto",stop:"Detener",replay:"Repetir",engine_result:"Engine",providers_desc:"Engines de síntesis. El estado lo reporta el daemon en vivo. Elegí cuál usar por defecto.",providers_load_error:"No pude cargar los proveedores: {msg}",test_desc:"Elegí con qué engine sintetizar y, si aplica, cómo debería hablar.",stt_desc:"Engine de speech-to-text que usan el deck, Telegram y la CLI al escuchar.",toast_default_engine:"Engine default: {id}.",toast_mode_chain:"Modo: cadena con fallback.",toast_mode_single:"Modo: solo engine default.",toast_config_saved:"Configuración de voz guardada.",toast_transcription_updated:"Transcripción actualizada."},telegram_ui:{channel_dialog_desc:"POST /telegram/channels (upsert) — PATCH /telegram/channels/:name (parcial).",bot_token_hint:"Token de BotFather. Se guarda en ~/.apx/config.json.",bot_token_hint_short:"Token de BotFather.",secret_set_replace:"(seteado — escribí para reemplazar)",secret_already_set:"(ya seteado)",empty_keep:"— vacío = mantener",message_sent:"Mensaje enviado.",message_label:"Texto",send_chat_id:"chat_id: {id}",default_apx:"APX por defecto",yes:"sí",no:"no",user_id_fallback:"user_id {id}",role_assigned:"{name} → {role}"},agents_ui:{model_router_default:"modelo: default del router",slug_kebab_hint:"kebab-case, ej. reviewer, my-agent, content-writer",comma_separated:"separadas por coma",body_hint:"markdown — extiende el system prompt del agente",source_user:"user",source_override:"override",source_bundled:"bundled",tab_explorer:"Explorador",type_none:"— sin tipo —",type_orchestrator:"Orquestador",type_orchestrator_desc:"Coordina el equipo y delega.",type_specialist:"Especialista",type_specialist_desc:"Experto en el dominio; corre tareas.",type_assistant:"Asistente",type_assistant_desc:"Ayudante conversacional.",type_worker:"Worker",type_worker_desc:"Corre tareas autónomas.",type_monitor:"Monitor",type_monitor_desc:"Vigila el estado y reporta.",stat_threads:"Threads",stat_records:"Records",stat_tasks:"Tasks",stat_heartbeats:"Heartbeats",config_def_desc:"definición (frontmatter + system prompt).",memory_durable_desc:"hechos durables que el agente recuerda.",running:"running",paused:"pausada",last_error:"última: error",field_tick:"Tick",field_next_tick:"Próximo tick",field_last_tick:"Último tick",field_last_run:"Última corrida",tools_label:"Tools",kind_agent:"agente",kind_memory:"memoria",kind_thread:"thread",kind_task:"task",kind_routine:"rutina",kind_hierarchy:"jerarquía",nodes_drag_hint:"{n} nodos · arrastrá para reordenar",kind_exec_agent:"Agente del proyecto",kind_exec_agent_desc:"Corre un agente del proyecto con un prompt. Vos elegís cuál.",kind_super_agent:"Super-agente",kind_super_agent_desc:"Llama al super-agente APX con un prompt.",kind_telegram:"Telegram",kind_telegram_desc:"Manda un mensaje fijo a un canal de Telegram. Sin modelo ni agente.",kind_shell:"Shell",kind_shell_desc:"Corre un comando shell. Sin prompt ni pre/post — el comando es la acción.",kind_heartbeat:"Heartbeat",kind_heartbeat_desc:"No hace nada salvo escribir una línea en los logs cada vez que corre. Sirve para confirmar que el scheduler está vivo. Si no sabés si lo necesitás, no lo uses.",unit_seconds:"segundos",unit_minutes:"minutos",unit_hours:"horas",unit_days:"días",every_n_unit:"cada {n} {unit}",every_v:"cada {v}",preset_every_10m:"cada 10 min",preset_hourly:"cada hora",preset_daily_9am:"diario 9am",preset_weekdays_9am:"días hábiles 9am",preset_manual:"Manual",var_pre_output_prompt:"Salida de texto de los pre-commands. Se reemplaza dentro del prompt/texto antes de enviarlo. Útil para inyectar datos frescos (clima, una API) en la instrucción.",var_llm_output:"Respuesta final del agente o super-agente. Disponible en los post-commands como variable de entorno. Ej: reenviarla por Telegram.",var_status:"Resultado de la acción: ok o error. Disponible en los post-commands para decidir qué hacer después.",var_skipped:"Vale 1 si la acción se salteó (por skip_prompt_on), 0 si corrió. Disponible en los post-commands.",var_pre_output:"Salida completa de los pre-commands, como variable de entorno en los post-commands (hasta 32k).",var_pre_output_file:"Ruta a un archivo temporal con la salida de los pre-commands. Para salidas grandes que no convienen como variable.",var_pre_exit:"Código de salida del último pre-command (0 = ok). Disponible en los post-commands.",var_routine:"Nombre de esta rutina. Disponible como variable de entorno en los comandos.",summary_runs_agent:'Corre el agente "{agent}"',summary_runs_agent_none:"Corre un agente (todavía no elegiste cuál)",summary_super_agent:"Llama al super-agente",summary_telegram:'Manda Telegram a "{channel}"',summary_runs_cmd:"Corre: {cmd}",summary_shell:"Corre un comando shell",summary_heartbeat:"Deja un heartbeat en los logs",action_agent_answers:'El agente "{agent}" responde el prompt',action_agent_pick_answers:"El agente (elegí uno) responde el prompt",action_super_answers:"El super-agente responde el prompt",action_telegram_channel:'Manda Telegram al canal "{channel}"',action_runs_shell:"Corre el comando shell",step_pre:"Pre",step_post:"Post",last_label:"última:",tg_chat_id_ph:"(usa el del canal)",tg_text_ph:"mensaje a enviar",hb_message_ph:"sigo vivo",arg_placeholder:"--flag o valor",remove_arg:"quitar arg",super_agent_label:"{persona} (super-agente)",super_agent_badge:"super-agente"},modules_ui:{desktop_pos_left:"Izquierda",desktop_pos_center:"Centro",desktop_pos_right:"Derecha",desktop_theme_light:"Claro",desktop_theme_dark:"Oscuro",desktop_status_desc:"La ventana se abre desde la terminal o por arranque automático.",desktop_running:"Corriendo",desktop_stopped:"Detenida",desktop_refresh:"refrescar",desktop_from_terminal:"Desde la terminal:",desktop_autostart_desc:"Abre la ventana al iniciar sesión. Equivale a `apx desktop install` (no requiere sudo).",desktop_platform:"plataforma: {platform}",desktop_shortcut_desc:"Atajo global que muestra/oculta la ventana y empieza a escuchar.",desktop_accelerator:"Acelerador",desktop_accelerator_hint:'Formato Electron, ej. "CommandOrControl+G" o "CommandOrControl+Shift+Space". Reiniciá la ventana para aplicar.',desktop_shortcut_saved:"Atajo guardado. Reiniciá la ventana (apx desktop stop && start) para aplicarlo.",desktop_autostart_on:"Arranque automático habilitado para el próximo inicio de sesión.",desktop_autostart_off:"Arranque automático deshabilitado.",desktop_appearance_desc:"Tema de la ventana y posición en la pantalla.",desktop_theme:"Tema",desktop_restart_apply:"Reiniciá la ventana para aplicar.",desktop_theme_set:"Tema: {value}.",desktop_position:"Posición",desktop_position_hint:'"izquierda" / "centro" / "derecha" del borde superior.',desktop_position_set:"Posición: {value}.",desktop_activation_desc:"El plugin del daemon procesa los mensajes. El STT se configura en Voces.",desktop_enabled_toast:"Escritorio habilitado.",desktop_disabled_toast:"Escritorio deshabilitado.",desktop_plugin_on:"Plugin habilitado (responde mensajes)",desktop_plugin_off:"Plugin deshabilitado",desktop_stt_engine:"Motor de speech-to-text:",desktop_stt_engine_suffix:"(whisper local, idioma, modelo).",desktop_last_conv_desc:"El último intercambio con el agente desde la ventana flotante.",desktop_no_messages:"Todavía no hay mensajes. Mandá algo a la ventana de escritorio para que aparezca acá.",desktop_you:"Vos",desktop_roby:"Roby",desktop_empty_msg:"(vacío)",deck_widget_enabled:"Widget {id} habilitado.",deck_widget_disabled:"Widget {id} deshabilitado.",deck_save_error:"Error al guardar",deck_loading_manifest:"Cargando manifest…",deck_manifest_error:"Error al cargar el manifest.",deck_widgets_summary:"{count} widgets · {enabled} externos habilitados",deck_loading_manifest_full:"Cargando el manifest del Deck…",deck_manifest_load_failed:"No se pudo cargar el manifest del Deck.",deck_retry:"Reintentar",deck_no_widgets:"No hay widgets en el manifest.",deck_context_desc:"Información que el Deck ve desde el daemon.",deck_active_project:"Proyecto activo:",deck_none:"ninguno",deck_registered_projects:"Proyectos registrados:",deck_active_plugins:"Plugins activos:",deck_daemon_active:"activo · {uptime}",deck_daemon_started:"iniciado",deck_safety_no_shell:"sin shell directo",deck_safety_no_arbitrary:"comandos arbitrarios bloqueados",deck_safety_confirm:"las acciones peligrosas requieren confirmación",code_copied:"Copiado.",code_saved:"Guardado.",code_file_empty:"(vacío)",code_file_error:"Error: {msg}",code_stream_error:"error",code_super_agent:"super-agent",code_super_agent_desc:"Agente principal con todas las tools",code_chat_tab:"Chat",code_panel_sessions:"Lista de sesiones",code_panel_tree:"Árbol de archivos",code_panel_terminal:"Terminal",code_panel_context:"Panel de contexto",code_ctx_auto:"auto",code_ctx_mode:"Modo",code_ctx_agent:"Agente",code_ctx_msgs_value:"{user} usuario · {assistant} asistente",code_ctx_tokens_total:"Tokens Total",code_ctx_created:"Creado",code_ctx_activity:"Actividad",code_project_fallback:"proyecto {id}",code_pick_project_ph:"Elegí un proyecto…",code_artifact_exit_ok:"exit 0 — {ms}ms",code_artifact_exit_fail:"exit {code}{timeout}",code_artifact_timeout_suffix:" (timeout)",code_artifact_view_short:"Ver",code_artifact_edit_short:"Editar",code_artifact_exit_badge:"exit {code}",code_artifact_timeout:"timeout",code_artifact_truncated:"truncado"},settings_ui:{bearer_label:"Bearer",global_config_desc:"Config general en ~/.apx/config.json. Editable por tabs; el JSON queda separado.",global_json_desc:"Los secretos redacted no se sobrescriben.",save_json:"Guardar JSON",expand_menu:"Expandir menú",collapse_menu:"Colapsar menú",documentation:"Documentación",kind_personal:"Personal",kind_company:"Empresa",kind_app:"App",kind_software:"Software",kind_default:"Default",kind_other:"Otro",base_menu_view:"Vista del menú Base (workspace general).",coming_soon:"Próximamente",inspector_title:"Skill Inspector (RAG por turno)",inspector_desc:"Función experimental. Cuando está activa, el agente NO recibe la lista completa de skills en su prompt; en cada mensaje un RAG local decide qué skill(s) cargar — el cuerpo completo si hay match fuerte, una sugerencia si es medio, nada si no aplica. Se reevalúa en cada turno: una skill que dejó de ser relevante desaparece del contexto.",enable_inspector:"Habilitar inspector",enable_inspector_hint:"Off = comportamiento clásico (lista de slugs + sugerencia pasiva). On = el RAG decide por turno.",on:"On",off:"Off",index_count:"Índice: {n} skills",not_indexed:"sin indexar",dim:"dim {dim}",updated_at:"actualizado {date}",reindex:"Reindexar",reindex_forced:"Reindexar (forzado)",embedder_source:"El embedder viene de Memoria (RAG). Local con Ollama, u offline si no hay proveedor configurado.",thresholds_title:"Umbrales y límites",thresholds_desc:"Ajustá qué tan agresivo es el inspector. Subir los umbrales = menos falsos positivos pero más riesgo de perderte una skill; bajarlos = al revés.",test_title:"Probar (dry-run)",test_desc:"Escribí un mensaje como lo haría un usuario y mirá qué skills cargaría/sugeriría el inspector — sin llamar al modelo. Fuerza el inspector aunque esté apagado arriba.",test_placeholder:"ej.: necesito crear un video promocional con voz en off",test_btn:"Probar",jit_empty_index:"JIT (índice vacío)",loaded_label:"Cargadas:",suggested_label:"Sugeridas:",could_not_save:"No se pudo guardar: {msg}",indexed_with:"Indexado con {embedder} (dim {dim}): +{added} ~{refreshed} -{removed}.",index_failed:"Falló el indexado: {msg}",dry_run_failed:"Falló el dry-run: {msg}",knob_load_threshold:"Umbral de carga",knob_load_threshold_hint:"Similaridad mínima para inyectar el CUERPO de la skill (alto = más estricto).",knob_hint_threshold:"Umbral de sugerencia",knob_hint_threshold_hint:"Similaridad mínima para solo SUGERIR la skill (así el agente la carga si quiere).",knob_margin:"Margen sobre la 2da",knob_margin_hint:"La primera tiene que superar a la segunda por este margen para cargar su cuerpo (evita empates flojos).",knob_max_loaded:"Máx. cuerpos cargados",knob_max_loaded_hint:"Cuántas skills se inyectan completas por turno.",knob_max_hints:"Máx. sugerencias",knob_max_hints_hint:"Cuántas skills extra se nombran como sugerencia.",knob_prompt_floor:"Largo mínimo del prompt",knob_prompt_floor_hint:"Los mensajes más cortos que esto se ignoran (evita 'ok', 'hola').",knob_body_char_cap:"Tope de chars del cuerpo",knob_body_char_cap_hint:"Recorta los cuerpos largos para que no inflen el contexto.",cfg_overrides_label:"Overrides",cfg_overrides_desc:".apc/config.json. Solo valores específicos del proyecto; vacío hereda del global/effective.",cfg_route_to_agent:"Route to agent",cfg_super_agent_model:"Modelo del super-agente",cfg_permission_mode:"Permission mode",cfg_extra_prompt:"Prompt extra",cfg_telegram_label:"Telegram",cfg_chat_id:"Chat ID",cfg_bot_token:"Bot token",cfg_respond_with_engine:"Responder con engine",cfg_engines_label:"Engines",cfg_ollama_url:"Ollama URL",cfg_anthropic_key:"Anthropic API key",cfg_openai_key:"OpenAI API key",cfg_groq_key:"Groq API key",cfg_openrouter_key:"OpenRouter API key",cfg_gemini_key:"Gemini API key",cfg_project_label:"Proyecto",cfg_project_desc:".apc/project.json. Metadata APC portable; sin secretos, sin runtime.",cfg_name:"Nombre",cfg_version:"Versión",cfg_apc_spec:"APC spec",cfg_apx_install:"Estado de instalación APX",cfg_apx_storage_id:"ID de storage APX"},shared_ui:{skill_inspector_title:"Skill Inspector ({embedder}) eligió estas skills para este turno",tools_count:"{n} tools",tool_read_file:"Leer archivo",tool_write_file:"Escribir archivo",tool_edit_file:"Editar archivo",tool_list_files:"Listar archivos",tool_search_files:"Buscar en archivos",tool_search_messages:"Buscar mensajes",tool_tail_messages:"Últimos mensajes",tool_run_shell:"Correr shell",tool_send_telegram:"Enviar Telegram",tool_call_agent:"Llamar agente",tool_call_mcp:"Llamar MCP",tool_call_runtime:"Llamar runtime",tool_create_task:"Crear task",dedup:"dedup",args:"args",result:"result",auto:"Auto",auto_router:"Auto (decide el router)",model_filter_ph:"filtrar o escribir modelo…",loading_models:"cargando modelos…",use_value:"usar “{value}”",model_combobox_ph:"elegí o escribí un modelo…",search_variable_ph:"buscar variable…",no_matches:"sin coincidencias",create_variable:"Crear nueva variable…",kv_key_ph:"CLAVE",kv_value_ph:"valor",remove_row:"quitar fila",add_row:"Agregar fila",err_chat_failed:"Falló el chat.",err_stream_failed:"Falló el stream.",err_load_conversation:"No se pudo cargar la conversación.",err_stream:"Error de stream."}},$z={common:{loading:"Loading…",saving:"Saving…",cancel:"Cancel",save:"Save",delete:"Delete",edit:"Edit",create:"Create",add:"Add",remove:"Remove",reload:"Reload",shutdown:"Shut down",enabled:"Enabled",disabled:"Disabled",enable:"Enable",disable:"Disable",open:"Open",close:"Close",confirm:"Confirm",optional:"(optional)",none:"—",none_yet:"Nothing here yet.",error_generic:"Something went wrong.",search:"Search",new:"New",restore:"Restore",show:"Show",hide:"Hide",copy:"Copy",run:"Run"},daemon:{connecting:"Connecting to the daemon…",unreachable:"Could not reach the daemon at localhost:7430.",unreachable_hint:"Start APX with `apx daemon start` and refresh.",version:"Version",uptime:"Uptime",status:"Status",running:"running",down:"down",reload_hint:"POST /admin/reload — reloads ~/.apx/config.json without restarting.",shutdown_confirm:"Shut down the daemon? Upcoming requests will fail until it restarts.",shutdown_done:"Daemon stopped."},pairing:{title:"Pair this device",subtitle:"You are connecting from outside this machine. For security, pair this browser with a pairing code.",steps_title:"How to get the code",step_1:"On the PC where APX is running, open a terminal.",step_2:"Run `apx pair` (or scan the QR with APX Deck).",step_3:"Copy the code shown below the QR and paste it here.",code_label:"Pairing code",code_ph:"e.g. 7f3a1c9e-…",label_label:"Device name",label_ph:"e.g. Living room laptop",submit:"Pair",linking:"Pairing…",success:"Device paired ✓",err_required:"Paste the pairing code.",err_expired:"The code expired. Run `apx pair` again and try again.",err_unknown:"Unknown or already-used code. Generate a new one with `apx pair`.",err_generic:"Could not pair. Check the code and try again.",revoke_hint:"You can revoke this device at any time from Settings or with `apx pair revoke`."},nav:{apx_admin:"APX",settings:"Settings",project:"Project",add_project:"Add project",all_projects:"All projects",more_projects:"{count} more",collapse_projects:"Hide projects",expand_projects:"Show projects",modules:{voice:"Voices",desktop:"Desktop",deck:"Deck",code:"Code"}},topbar:{breadcrumb_root:"APX",breadcrumb_settings:"APX › Settings",breadcrumb_project:"APX › Project",breadcrumb_base:"Base",breadcrumb_projects:"Projects",light:"Switch to light",dark:"Switch to dark",lang_toggle:"Language"},admin:{title:"APX",subtitle:"Admin panel. Global config, channels and projects.",engines_title:"Engines",engines_subtitle:"Available LLM adapters. API keys live in ~/.apx/config.json.",telegram_title:"Telegram",telegram_subtitle:"Configured channels. Each one can be pinned to a project.",telegram_polling_on:"Polling active",telegram_polling_off:"Disabled",telegram_add_channel:"Channel",telegram_send_test:"Test",telegram_send_test_title:"Send to",telegram_default_message:"Test message from APX panel ✅",projects_title:"Registered projects",projects_subtitle:"Click a project to open its panel.",unregister:"Unregister",unregister_confirm:"Remove {label} from APX? The folder is not deleted; only unregistered.",reload_success:"Config reloaded.",telegram_polling_started:"Polling started.",telegram_polling_stopped:"Polling stopped.",telegram_channel_removed:"Channel deleted.",agents_badge:"agents",engine_badge:"yes",engine_badge_no:"no",base_label:"Base"},add_project:{title:"Add project",subtitle:"APX will index .apc/, agents and AGENTS.md in that folder.",path_label:"Absolute path",path_hint:"Equivalent to apx project add /path/to/project",path_placeholder:"/path/to/my-project",register:"Register",path_required:"Path required.",registered:"Project #{id} registered.",search_btn:"Browse",picker_prompt:"Pick the project folder",browser_unavailable:"Browser unavailable until daemon restarts. Paste path manually.",no_folders:"No folders."},settings:{title:"Settings",subtitle:"Panel preferences + local daemon diagnostics.",appearance:"Appearance",light_mode:"Light",dark_mode:"Dark",language:"Language",daemon:"Daemon",daemon_sub:"Status of the local process that serves this web and orchestrates agents.",engines:"Available engines",engines_sub:"LLM adapters compiled with the daemon.",token:"Session token",token_sub:"If this web could not auto-load the token, paste it here.",token_active:"(token already active)",token_paste:"Paste daemon bearer",token_saved:"Token saved.",devices:"Paired devices",devices_sub:"GET /pair/list. Revoking invalidates that bearer on the daemon.",devices_empty:"No paired clients yet.",devices_revoke_confirm:"Revoke client {id}?",devices_revoke_success:"Client revoked.",devices_pair_btn:"Pair device",devices_pair_title:"Pair device",devices_pair_desc:"Scan the QR with your phone camera to open the web already paired, or paste the code on another PC.",devices_pair_scan:"Scan with your phone camera — opens the web already paired.",devices_pair_code:"Or paste this code on the pairing screen:",devices_pair_url:"Access URL",devices_pair_link:"Or copy this link and open it on the other device (enters automatically):",devices_pair_copy:"Copy",devices_pair_copied:"Link copied to clipboard.",devices_pair_copied_code:"Code copied.",devices_pair_expires:"Expires in {s}s",devices_pair_expired:"The code expired.",devices_pair_regen:"Generate another",devices_pair_waiting:"Waiting for device to confirm…",devices_pair_done:"Device paired ✓",devices_pair_localhost_only:"Codes can only be generated from the daemon's PC (localhost).",devices_last_seen:"seen:",devices_never:"never",devices_revoke:"Revoke",account_section:"Account",agents_section:"Agents & models",channels_section:"Channels & devices",advanced_section:"Advanced",tabs:{identity:"Identity",super_agent:"Super-agent",engines:"Engines & models",telegram:"Telegram",devices:"Devices",advanced:"Advanced"},identity:{title:"Identity",subtitle:"User data. Agent configuration goes in Super-agent.",agent_name:"Agent name",owner_name:"Your name",personality:"Personality",owner_context:"Owner context",owner_context_hint:"Who you are, what you work on, what the agent should know about you.",language:"Preferred language",timezone:"Timezone (IANA)",timezone_hint:"e.g. America/New_York",saved:"Identity saved."},super_agent:{title:"Super-agent",subtitle:"Personality, model, prompt and modes of the super-agent.",personality:"Personality",model:"Active model",model_hint:"E.g.: anthropic:claude-sonnet-4.5, ollama:gemma2:9b",permission_mode:"Permission mode",system:"Extra prompt (system)",system_hint:"Text prepended to the base system prompt.",system_ph:"(Empty = the base prompt from core/agent/prompts/super-agent-base.md is used)",fallback_title:"Fallback chain",fallback_hint:"If the active model fails, these are tried in order.",fallback_add:"Add model to chain",saved:"Super-agent saved.",enabled_label:"Super-agent enabled",model_active:"Active model (router)",model_configure:"Configure in Models",behavior_subtitle:"Super-agent behavior. Model and fallback chain are configured in the Model Router."},engines_keys:{title:"Model API keys",subtitle:"Each engine stores its key in ~/.apx/config.json. Already-set values show a safe suffix.",ollama_url:"Ollama URL",ollama_hint:"Default: http://127.0.0.1:11434",key_label:"API key",key_placeholder:"(not set)",clear:"Clear key",saved:"Key saved.",cleared:"Key cleared."},telegram_global:{title:"Telegram (default)",subtitle:"Default channel — projects can override with their own channel.",bot_token:"Bot token",chat_id:"Default chat ID",poll_interval:"Poll interval (ms)",respond_with_engine:"Respond with engine",enabled:"Polling enabled",saved:"Telegram saved."},advanced:{title:"Advanced",subtitle:"Raw editor for ~/.apx/config.json. Secrets show as *** set *** but you can write a new one.",write:"Apply changes",written:"Config applied and daemon reloaded.",reload_success:"Config reloaded."}},project:{not_found:"Roby couldn't find project {pid}: it may have been unregistered, or the ID is wrong.",rebuild:"Rebuild context",rebuild_done:"Rebuild OK.",unregister_confirm:"Unregister {label}? The folder is not deleted.",unregistered:"Unregistered.",base_subtitle:"General workspace · super-agent",danger:{title:"Danger zone",subtitle:"Actions that affect APX's project registry. They do not touch repo files.",rebuild_desc:"Re-scans .apc/, MCPs and agents and regenerates the super-agent context for this project.",unregister_desc:"Removes the project from APX's registry. The folder on disk stays intact.",rebuild_confirm_title:"Rebuild context",rebuild_confirm_desc:"Regenerate context for {label}.",rebuild_long:"Re-reads APC config, lists available MCPs and agents, and rebuilds the super-agent system prompt. Safe to run — nothing is deleted. Use it after editing .apc/ by hand or if changes are not being picked up.",unregister_confirm_title:"Unregister project",unregister_long:"The project disappears from `apx`. Files on disk (.apc/, code, everything) stay. You can re-register it with `apx project register <path>`."},nav:{overview:"Overview",chat:"Chat",config:"Config",telegram:"Telegram",agents:"Agents",routines:"Routines",tasks:"Tasks",mcps:"MCPs",vars:"Variables",logs:"Logs",memories:"Memories"},sections:{workspace:"Workspace",automation:"Automation",knowledge:"Conversations",config:"Config"},overview:{tasks_open:"Open tasks",routines:"Routines",agents:"Agents",mcps:"MCPs",chat:"Chat (super-agent)",chat_value:"open"},chat:{title:"Chat with agent",subtitle:"Direct conversations with project agents. The super-agent does not intervene.",superagent_title:"Chat with {persona}",superagent_subtitle:"Chat with {persona} — the APX super-agent. Can use tools (projects, tasks, mcps, agents).",loaded_subtitle:"Loaded conversation with {slug}. Sending will append to this thread.",empty:"Send a message to start the conversation.",placeholder:"Type something and press enter to send (shift+enter = new line)",send:"Send",stop:"Stop",clear:"Clear",copy:"copy",copied:"Copied.",stopped_marker:" [stopped]",create_agent:"Create agent",create_agent_title:"Create agent",create_agent_desc:"Required to start a chat in this project.",role_label:"role",model_label:"model",model_hint:"e.g. openai:gpt-5, groq:llama-3.3-70b-versatile",master_label:"Master agent",list:{title:"Chats",new:"New",search:"Search chats…",all_agents:"All agents",empty:"No conversations yet. Start one from the right.",count:"{n} total",live_with:"Live · {slug}",live_subtitle:"In-memory session"}},tasks:{title:"Tasks (TODOs)",subtitle:"Append-only JSONL in ~/.apx/projects/<id>/tasks/.",add:"add",add_label:"New task",add_placeholder:"e.g. fix scroll bug",empty:"No {state} tasks.",empty_open:"No open tasks.",created:"Task created.",create_error:"could not create task",done:"✓ done",drop:"✗ drop",reopen:"↻ reopen",due:"due",via:"via",aria_done:"mark done",aria_drop:"discard task",aria_reopen:"reopen task"},global_tasks:{title:"Tasks (all projects)",subtitle:"Aggregated tasks from all registered projects.",empty:"No tasks.",due:"due",go_project:"Go to project"},routines:{title:"Heartbeats / Routines",subtitle:"Cron, every:Nm, once:ISO. Each routine fires an agent or a shell.",empty:"No routines. Create one above.",new:"new",new_btn:"New",delete_confirm:"Delete routine {name}?",delete_confirm_body:"This can't be undone.",saved:"Routine saved.",paused:"paused",next_run:"next:",last_run:"last:",enabled_hint:"Active · runs on schedule",disabled_hint:"Paused · only via Run button",enabled_label:"Enabled",new_title:"New routine",edit_title:"Edit {name}",dialog_desc:"Saved in .apc/routines.json. The routine runs while the daemon is active.",name_field:"Name",name_no_edit:"Cannot be changed when editing.",kind_field:"Action (kind)",schedule_field:"Interval (schedule)",schedule_hint:"Choose a preset or type manually. Manual = only runs via Run button.",vars_title:"Available variables",what_happens:"What will happen",list_title:"Routines",detail_empty:"Pick a routine from the list.",edit_btn:"Edit",edit_hint:"Open the editor: kind, schedule, prompt, pre/post and variables.",block_pre:"Pre-commands",block_post:"Post-commands",block_prompt:"Prompt",block_text:"Text",block_command:"Command",block_empty:"(empty)",runs_title:"Executions",runs_empty:"No executions yet.",runs_close:"Close",runs_no_detail:"No further detail.",runs_output:"Output",status_ok:"ok",status_error:"error",status_skipped:"skipped",agent_field:"Agent (spec.agent)",agent_hint:"Who executes the routine.",agent_loading:"loading…",agent_pick:"— pick an agent —",prompt_exec:"Prompt (spec.prompt)",prompt_exec_ph:"what is pending for today?",prompt_super:"Prompt (spec.prompt)",prompt_super_ph:"summarize the project status",pre_field:"Pre-commands (pre_commands)",pre_hint:"Shell BEFORE the prompt. One per line.",post_field:"Post-commands (post_commands)",post_hint:"Shell AFTER the prompt. One per line.",tg_channel:"Channel (spec.channel)",tg_chat_id:"Chat ID (spec.chat_id)",tg_text:"Telegram Message (spec.text)",tg_text_hint:"Fixed message to send. Does not use a model.",shell_field:"Command (spec.command)",shell_hint:"Runs as-is in the shell. No prompt, no pre/post.",hb_channel:"Channel (spec.channel)",hb_message:"Message (spec.message)",name_required:"name required",save_error:"save failed",run_error:"run failed",toggle_error:"toggle failed",delete_error:"delete failed",run_success:"{name} fired.",run_confirm:"Run routine {name} now?",run_confirm_body:"Runs the action once, regardless of the schedule.",running:"Running…",delete_success:"deleted."},agents:{title:"Agents",subtitle:"Defined in .apc/agents/<slug>.md.",subtitle_full:"Defined in .apc/agents/<slug>.md. Runtime memory lives under ~/.apx/projects/<id>/agents/<slug>/.",empty:"No agents. Add one with <code>apx agent add</code> or the button.",empty_text:"No agents. Add one with `apx agent add` or the button above.",new:"Agent",created:"Agent {slug} created.",slug_invalid:"slug must match /^[a-z][a-z0-9_-]*$/",hierarchy:"Hierarchy",list_view:"List",import:"Import",chat:"Chat",view:"View",orchestrator:"Orchestrator",new_title:"New agent",new_desc:"POST /projects/:pid/agents — writes .apc/agents/<slug>.md.",slug_label:"slug",slug_ph:"cody",role_label:"role (optional)",role_ph:"code refactor",model_label:"model (optional)",model_hint:"e.g. ollama:gemma2:9b, openai:gpt-4o-mini",lang_label:"language (optional)",desc_label:"description (optional)",desc_ph:"What does this agent do…",skills_label:"skills (comma)",skills_ph:"skill-a, skill-b",tools_label:"tools (comma)",tools_ph:"tool-a, tool-b",parent_label:"reports to (parent, optional)",parent_hint:"Sub-agent of an orchestrator.",none_parent:"— none —",master_label:"Orchestrator (master)",create_success:"Agent {slug} created.",create_error:"create failed",import_title:"Import from vault",import_desc:"Templates in ~/.apx/agents. Registered in this project (.apc/agents/<slug>.md).",import_empty:"No templates in the vault.",import_success:"Imported: {slug}",import_already:"already here",import_btn:"Import"},agent_detail:{not_found:"Agent not found.",chat_btn:"Chat with {slug}",reports_to:"↳ reports to",no_threads:"No threads.",no_activity:"No recorded activity.",threads_recent:"Recent threads",subagents:"Sub-agents",subagents_desc:"Agents that report to this orchestrator.",config_title:"Agent configuration",type_label:"Type",area_label:"Area",area_hint:"e.g. operations, marketing",area_ph:"operations",role_label:"Role",parent_label:"Reports to (parent)",none_parent:"— none —",model_label:"Base model",model_hint:"Empty = uses the Router model (default). Set only to force a model for this agent.",model_ph:"(empty = router default)",skills_label:"Skills (comma)",bio_label:"Bio / description",system_label:"System prompt",system_hint:"Defines personality and behavior (body of AGENT.md).",master_label:"Orchestrator (master)",delete_btn:"Delete agent",save_btn:"Save changes",delete_confirm:'Delete agent "{slug}"? Removes .apc/agents/{slug}.md and local runtime data.',update_success:"Agent updated.",delete_success:"Agent deleted.",tools_hint:"Which tools this agent can use. Tap to toggle; or edit the list below.",tools_custom_ph:"list (comma): echo, http_fetch",memory_title:"Agent memory",memory_empty:"(empty memory)",memory_saved:"Memory saved.",records_title:"Records",records_desc:"Agent activity log (messages/actions). Newest first.",sleep_title:"Sleep / Heartbeat",sleep_desc:"Agent execution status, derived from its routines.",sleep_deep:"Deep sleep · no heartbeat",sleep_deep_desc:"This agent has no routine that triggers it. It does not run autonomously; it only responds when invoked (chat / task).",brain_title:"Brain",brain_desc:"Real relationship graph of the agent: memory, threads, tasks, heartbeats and hierarchy. (first version — will be refined)",brain_empty:"No relationships to graph yet (no memory, threads, tasks or routines).",msgs_count:"msgs"},mcps:{title:"MCP servers",subtitle:"3 scopes: runtime > shared > global. Conflicts shown above if any.",empty:"No MCPs configured.",new:"MCP",delete_confirm:"Delete MCP {name} from scope {scope}?",conflicts:"⚠ Conflicts: {names}",new_title:"New MCP",new_desc:"POST /projects/:pid/mcps?scope=…",scope_label:"Scope",transport_label:"Transport",name_label:"Name",name_ph:"filesystem",cmd_label:"Command",cmd_ph:"npx",args_label:"Args",args_hint:"space-separated",args_ph:"-y @modelcontextprotocol/server-filesystem /tmp",env_label:"Env (JSON, optional)",url_label:"URL",url_ph:"https://example.com/mcp",enabled_label:"Enabled",add_btn:"Add",name_required:"name required",env_invalid:"env must be valid JSON",removed:"removed",added:"MCP added.",updated:"MCP updated.",edit_title:"Edit MCP",save_btn:"Save",add_arg:"Add arg",edit_btn:"Edit",test_btn:"Test",logs_btn:"Logs",testing:"Testing…",test_ok:"OK · {n} tools available",logs_title:"Logs · {name}",logs_empty:"No logs yet. Start the MCP by calling a tool or running Test.",logs_events:"Recent events",logs_stderr:"stderr (last 4KB)",logs_panel_title:"Live logs",logs_panel_pick:"pick an MCP",logs_panel_hint:"Click an MCP in the list to see what's happening live.",logs_panel_idle:"No activity. Hit Test to spin it up.",scope_runtime:"Runtime",scope_shared:"Shared",scope_global:"Global",scope_runtime_desc:"This project only · with secrets · not committed (~/.apx/projects/<id>/mcps.json)",scope_shared_desc:"This project only · committeable · no secrets (.apc/mcps.json)",scope_global_desc:"All projects on this machine (~/.apx/mcps.json)",transport_stdio:"stdio",transport_http:"HTTP",transport_stdio_desc:"Local process — `command` + args",transport_http_desc:"Remote endpoint — URL + headers",args_hint_tokens:"One entry per arg. Use the + button to insert a variable.",env_hint_tokens:"Key/value pairs. Values accept ${var.NAME} (+ button on the right).",env_empty:"No env vars.",headers_label:"Headers",headers_hint:"Key/value pairs — typically Authorization: Bearer ${var.TOKEN}.",headers_empty:"No headers."},vars:{title:"Variables",subtitle_project:"Replace ${var.NAME} when loading MCPs and templates. Project vars beat globals. Stored outside the repo (~/.apx/, chmod 0600).",subtitle_base:"Global variables — available to every project. Stored in ~/.apx/vars.json (chmod 0600).",empty:"No variables yet.",new:"Variable",new_title:"New variable",edit_title:"Edit variable",new_desc:"Referenced as ${var.NAME} in any field that supports interpolation.",reveal_all:"Show values",reveal:"Show",hide:"Hide",filter_label:"Show:",filter_all:"All",filter_project:"Project only",filter_global:"Globals only",scope_label:"Scope",scope_project:"project",scope_project_desc:"This project only. Beats the global with the same name.",scope_global:"global",scope_global_desc:"Available to every project.",name_label:"Name",name_hint:"Uppercase, digits and _. E.g. MY_API_KEY, GITHUB_TOKEN.",value_label:"Value",value_hint:"Stored on disk with 0600 perms. Never committed.",value_edit_ph:"(leave empty to keep current… not yet supported, paste the value again)",add_btn:"Add",save_btn:"Save",edit_btn:"Edit",delete_btn:"Delete",delete_confirm:"Delete {name} ({scope})?",removed:"Variable removed.",added:"Variable added.",updated:"Variable updated.",name_required:"Name required.",value_required:"Value required."},threads:{title:"Chats",subtitle:"Conversations per agent (empty = no logs persisted yet).",no_agents:"No agents. Conversations require a configured agent.",pick:"Pick an agent to view its conversations.",empty:"No conversations for {slug}.",conversation_title:"Conversation {id}",messages:"messages",via:"via"},config:{title:"Quick config",subtitle:"Project override. Written to {path}.",model:"super_agent.model",model_hint:"e.g. anthropic:claude-sonnet-4.5, ollama:gemma2:9b",perm:"super_agent.permission_mode",route:"route_to_agent",route_hint:"Slug of the agent that handles this project by default.",use_global:"(uses global)",saved:"Saved.",nothing:"Nothing to save.",raw_title:"Config (raw JSON)",raw_subtitle:"Paste the entire object — equivalent to PUT the file.",raw_save:"Replace config",raw_done:"Config overwritten.",effective:"Effective config (read-only)",effective_sub:"What the daemon actually sees (global ⊕ override).",section_title:"Project config",section_desc:"APC metadata and overrides separated. General APX lives in Settings > Config.",effective_read:"Read: global APX + project override.",save_project:".apc/project.json saved.",save_override:".apc/config.json saved.",save_fields_success:"Overrides saved.",save_meta_success:"Project metadata saved.",no_data:"No data."},telegram:{title:"Telegram channel (override)",subtitle:"If you set a channel here, messages from this project go there instead of the default.",use_default:"Use default channel",bot_token:"Bot token (override)",chat_id:"Chat ID (override)",saved:"Override saved.",cleared:"Override removed — falls back to default.",override_active:"override active",channel_badge:"Channel {name}",no_override:"No override. Messages from this project go to the default channel.",respond_engine:"Respond with engine",route_agent:"route_to_agent",route_hint:"Slug of the agent that handles messages (empty = super-agent).",bot_hint_none:"If empty, inherits from default."},memories:{project_title:"Project memory",project_desc:"Durable facts at the project level. .apc/memory.md — read by agents and the super-agent.",project_ph:`# Project Memory
|
|
614
|
+
|
|
615
|
+
Stable facts that any agent should know…`,agents_title:"Agent memories",agents_desc:"Individual memory per agent. ~/.apx/projects/<id>/agents/<slug>/memory.md",no_agents:"No agents in this project.",saved:"Memory saved.",empty:"(empty memory)",chars:"chars · Markdown",save_btn:"Save"}},base:{title:"Base",subtitle:"General workspace · super-agent",nav_general:"General",nav_activity:"Activity",nav_system:"System",workspaces_title:"Workspaces",workspaces_desc:"All projects registered in APX.",workspaces_new:"New project",workspaces_empty:"No projects. Add one with the button above.",sessions_title:"Sessions",sessions_desc:"Sessions from all engines (apx · claude · codex), newest first.",sessions_all:"All engines",sessions_empty:"No sessions.",sessions_error:"Could not read sessions: {msg}",defaults_title:"Agent defaults",defaults_desc:"Global vault templates. Bundled ones come with APX and are always present; ones you create or edit go in ~/.apx/agents and override. Import them into a project from Agents › Import.",defaults_show_removed:"Show removed",defaults_new:"New",defaults_empty:"No templates in the vault.",defaults_hide:"Hide",defaults_restore:"Restore",defaults_edit:"Edit",defaults_remove:"Hide",defaults_delete:"Delete",defaults_tombstone_msg:`Hide the default "{slug}"? It's bundled — tombstoned and recoverable with Restore.`,defaults_delete_msg:'Delete the template "{slug}"?',defaults_hidden:"Hidden.",defaults_deleted:"Deleted.",defaults_restored:"Restored.",defaults_new_title:"New template",defaults_new_desc:"POST /agents/vault — saved to ~/.apx/agents/<slug>.md",defaults_edit_title:'Edit "{slug}"',defaults_bundled_desc:"This is a bundled default. Saving does a copy-on-write to ~/.apx/agents/<slug>.md (becomes an override).",defaults_user_desc:"PATCH /agents/vault/:slug — edits the file in ~/.apx/agents.",defaults_master_label:"Master agent",defaults_slug_invalid:"invalid slug (must match /^[a-z][a-z0-9_-]*$/)",defaults_created:'Template "{slug}" created.',defaults_saved:'Template "{slug}" saved.'},logs:{title:"Logs",desc_global:"Daemon activity (global channels: telegram, direct…). ~/.apx/messages/<channel>/.",desc_project:"Project activity. ~/.apx/projects/<id>/messages/.",filter_channel:"filter channel (e.g. telegram)",filter_dir:"direction",all_directions:"All directions",in:"Incoming (in)",out:"Outgoing (out)",filter_type:"type",all_types:"All types",search_text:"search text…",count_of:"of",no_activity:"No activity.",no_activity_ch:'No activity in channel "{ch}".',error:"Could not read messages: {msg}",show_more:"show more",show_less:"show less",daemon_errors:"Daemon errors (~/.apx/logs/errors.jsonl)",no_errors:"No errors recorded. 🎉"},telegram_contacts:{title:"Telegram contacts",desc:"Who writes to the bots. The role defines which tools they can use; a guest has no permissions until you assign a role.",empty:"No contacts yet — they register automatically when someone writes to a bot.",owner_badge:"owner",assign_role:"Assign role",owner_hint:"Channel owner — change it from the channel",removed:"Contact deleted.",delete_confirm:"Delete contact {name}?",last_seen:"seen:",tools_all:"tools: all",tools_none:"tools: none",tools_label:"tools:"},telegram_channels:{title:"Channels",desc:"Each channel is a bot the daemon polls. Here you can add/remove channels, change the answering agent, the project it belongs to and its owner.",new_btn:"New channel",empty:"No channels yet — add the first one.",removed:"Channel deleted.",delete_confirm:"Delete channel {name}?",no_owner:"no owner (claimed on first DM)",owner_label:"owner:"},telegram_channel_dialog:{new_title:"New Telegram channel",edit_title:"Edit channel: {name}",name_label:"name (internal slug)",token_label:"bot_token",chat_id:"chat_id",project_label:"project",project_hint:"Slug or id of the project to pin this channel to (optional).",route_label:"route_to_agent",route_hint:"Answering agent; empty = APX super-agent.",owner_label:"owner_user_id",owner_hint:"Telegram user_id of the channel owner. Overrides global role to 'owner' here. Leave empty — first private message claims it.",owner_ph:"889721252",respond_label:"Respond with engine (not echo)",name_required:"name required",saved:"Channel saved."},telegram_send_dialog:{title:"Send to {name}",default_msg:"Test message from APX panel ✅"},telegram_roles:{title:"Roles",desc:"Each role defines which super-agent tools the assigned user can invoke. 'owner' always = all; 'guest' always = none (chat only).",empty:"No roles defined.",tools_all:"all tools",tools_none:"no tools",builtin:"built-in",delete_confirm:'Delete role "{name}"?',removed:"Role deleted.",saved:'Role "{name}" saved.',name_required:"Name required.",builtin_error:'"{name}" is a built-in role.',new_title:"New role or replace a custom one",name_label:"Name",name_ph:"editor",tools_label:"Tools (comma-separated)",tools_hint:"Empty = none. Examples: call_agent, list_tasks, create_task.",tools_ph:"call_agent, list_tasks",full_access:"Full access (all tools)",save_btn:"Save role",delete_btn:"Delete"},superagent:{title:"{persona}",badge:"super-agent · APX",desc:"Quick chat with your super-agent. Has access to tools (projects, tasks, mcps, agents); for a longer persistent thread, open Chats.",empty:"Send {persona} a message to get started.",thinking:"{persona} is thinking…",talk:"Talk to {persona}",new_chat:"New chat",placeholder:"Type and press enter to send (shift+enter = new line)…"},not_found:{title:"404",message:"Roby got lost: this page doesn't exist or has moved.",home:"Back to home"},ask_panel:{answers_header:"Answers",other:"Other",other_placeholder:"Write your own answer here",text_placeholder:"Type your answer…",back:"Back",skip:"Skip",next:"Next",submit:"Send",status_waiting:"Waiting for your answer…",status_received:"Answers received"},code_module:{title:"Code",badge:"super-agent",desc:"OpenCode-style coding sessions. Pick a project, open a session, and ask it to read, plan, edit or run.",no_projects:"No registered projects. Register one with `apx project add` to use Code.",sessions:"Sessions",new_session:"New session",untitled:"New session",no_sessions:"No sessions yet — create one to start coding.",pick_project:"Pick a project to see its sessions.",rename:"Rename",delete:"Delete",delete_confirm:"Delete this session? The transcript is removed; your files are untouched.",empty_chat:"Send a coding instruction to get started.",placeholder:"Ask for a change… (enter sends, shift+enter = new line)",mode_build:"Build",mode_plan:"Plan",mode_build_hint:"Build — edits files and runs commands",mode_plan_hint:"Plan — read-only, proposes changes without touching files",tab_context:"Context",tab_changes:"Changes",tab_artifacts:"Artifacts",artifacts_none:"No artifacts yet. Ask the agent to create a script under `artifacts/<name>`.",artifacts_count:"{n} artifact(s)",artifacts_copy_path:"Copy path",artifacts_run:"Run",artifacts_run_hint:"Run it from your terminal:",artifacts_delete:"Delete",artifacts_delete_confirm:"Delete this artifact? The file will be removed from disk.",ctx_model:"Model",ctx_tokens:"Tokens",ctx_input:"Input",ctx_output:"Output",ctx_messages:"Messages",ctx_breakdown:"Context breakdown",ctx_none:"No usage yet — send a turn to see tokens.",seg_system:"System",seg_user:"User",seg_assistant:"Assistant",seg_tool:"Tools",seg_other:"Other",changes_none:"No changes in this session yet.",changes_no_git:"Changes need a git repository. This project isn't one.",changes_files:"{n} file(s) changed",stopped:"[stopped]",close:"Close",reload:"Reload",discard_changes:"Discard changes",save_shortcut_hint:"Save (Cmd/Ctrl+S)",artifacts_rename:"Rename",artifacts_view:"View contents",artifacts_edit:"Edit contents",tree_collapse_all:"Collapse all",terminal_clear:"Clear",terminal_close:"Close terminal"},desktop_screen:{status_title:"Status",autostart_title:"Auto-start",shortcut_title:"Keyboard shortcut",appearance_title:"Appearance",activation_title:"Activation + transcription",last_conv_title:"Last conversation"},voice_screen:{providers_title:"Voice providers (TTS)",test_title:"Test voice",stt_title:"Transcription (STT)",configure_provider:"Configure {name}"},deck_screen:{widgets_title:"Widgets",context_title:"APX context",reload_manifest:"Reload manifest",widget_native:"Native APX widget",widget_external:"External widget"},memory_panel:{embeddings_title:"Embeddings (RAG)",embeddings_desc:"Model that vectorizes the history of all channels for relevant memory. Just like TTS/STT: pick a provider and model. 'Automatic' tries local first and falls back to offline if nothing is available.",provider_label:"Provider",provider_hint:"Ollama is local and free. Gemini/OpenAI use the API key from their section in Models (or the one below).",mode_label:"Selection mode",mode_hint:"Chain falls back to the next if one fails; Single uses exactly the chosen provider.",available:"available",unavailable:"unavail.",test_btn:"Test embedding",reindex_btn:"Reindex memory",test_ok:"Embedding OK with {embedder}",test_failed:"Test failed: {msg}",reindexed:"Reindexed: {indexed} chunks (cleared {cleared}).",reindex_failed:"Reindex failed: {msg}",save_failed:"Could not save: {msg}",provider_auto:"Automatic (chain: Ollama → Gemini → OpenAI → offline)",provider_ollama:"Ollama — local, no API key (nomic-embed-text)",provider_gemini:"Gemini — free tier with key (text-embedding-004)",provider_openai:"OpenAI — text-embedding-3-small (cloud)",provider_tf:"Offline (term-frequency, no model — degraded)",mode_chain:"Chain (automatic fallback)",mode_single:"Single (uses only the chosen one)",ollama_title:"Ollama (local)",ollama_desc:"No API key. Runs nomic-embed-text on your local or cloud Ollama.",model_label:"Model",base_url_label:"Base URL",ollama_base_url_hint:"Empty uses engines.ollama.base_url (default http://localhost:11434).",openai_title:"OpenAI",openai_desc:"text-embedding-3-small (1536 dims) or another compatible model.",api_key_label:"API key",openai_key_hint:"Empty reuses engines.openai.api_key. Leave it blank to keep the saved one.",gemini_title:"Gemini",gemini_desc:"text-embedding-004 (768 dims). Free tier with a Google API key.",gemini_key_hint:"Empty reuses engines.gemini.api_key.",compaction_title:"History compaction",compaction_desc:"When a chat exceeds the turn threshold, the oldest turns are summarized with a lightweight (local) LLM and saved as [COMPACTED SUMMARY], keeping context bounded. Runs off the hot-path: the current turn uses whatever summary already exists.",threshold_label:"Compaction threshold",threshold_hint:"Compact once the chat exceeds these turns (default 60).",keep_recent_label:"Recent turns to preserve",keep_recent_hint:"Verbatim turns that are NEVER compacted (default 40). Must be lower than the threshold.",compact_model_label:"Compaction model",compact_model_hint:"Lightweight LLM for summarizing. Ideally a local one (Ollama) to avoid cost. Format provider:model.",compact_fallback_label:"Fallback model",compact_fallback_hint:"Used if the compaction one fails. Empty falls back to the super-agent model.",compact_fallback_ph:"(empty → super-agent model)"},router_panel:{title:"Model router",description:"A single general router (no per-task cases). Pick a provider and model; if the active one fails, it tries the fallback chain in order.",badge_default:"default",no_providers:"Add a provider below to be able to pick models.",active_model_label:"Active model (default)",active_model_hint:"Provider + model. Saved as provider:model.",fallback_title:"Fallback chain",fallback_desc:"If the active model fails, it tries these in order. Click one to edit it.",fallback_empty:"No fallback configured.",add_to_chain:"Add to the chain",done:"done",save:"Save router",saved:"Saved",saved_toast:"Router saved.",provider_ph:"— provider —",provider_not_found:"⚠ {name} (not found)",provider_not_configured:'The provider "{name}" is not configured.'},engines_panel:{title:"Providers",new_btn:"New provider",description:"LLM providers (API). Each provider uses an engine/adapter (openai, ollama, …) with its key and URL.",empty:"No providers. Add one with the button above.",add_card:"Add provider",saved:"Provider saved.",saved_json:"Provider saved (JSON).",deleted:"Provider deleted.",delete_confirm:"Delete provider {name}?"},providers_modal:{new_title:"New provider",edit_title:"Edit {name}",description:"LLM provider. The engine defines which adapter it uses (openai, ollama, …).",list_models_hint:"List the provider's actual models",toggle_active:"Active · click to deactivate",toggle_inactive:"Inactive · click to activate",delete:"Delete",custom:"Custom",json_mode:"JSON",form_mode:"Back to form",json_label:"Provider config (JSON)",json_hint:"Saved as engines.{slug} in config.json",json_help:"Must be a valid JSON object with at least engine. The slug is taken from the form.",name_label:"Name",name_ph:"My provider",engine_label:"Engine",base_url_label:"Base URL (base_url)",base_url_hint:"Auto-filled when you pick a provider.",base_url_ph:"https://api.openai.com/v1",api_key_label:"API key",api_key_hint_existing:"Leave blank to keep the current one.",api_key_hint_env:"Stored as a secret. Suggested env: {env}",api_key_hint:"Stored as a secret.",api_key_set:"…{suffix} (already set)",model_label:"Default model",load_models:"Load models",max_tokens_label:"Max tokens (max_tokens)",temperature_label:"Temperature: {value}",pricing_summary:"Token analysis / pricing (optional)",context_limit_label:"Context limit (tokens)",price_input:"$ input / 1M",price_output:"$ output / 1M",price_cache_read:"$ cache read / 1M",price_cache_write:"$ cache write / 1M",model_limits_label:"Per-model context limits (JSON)",active_label:"Active (agents can use it)",err_slug_required:"Slug required.",err_slug_required_form:"Slug required (in the form).",err_slug_exists:'A provider "{slug}" already exists.',err_model_limits_json:"Per-model context limits: invalid JSON.",err_json_invalid:"Invalid JSON: check the syntax.",err_json_object:"The JSON must be an object with the provider config.",err_engine_missing:'Missing "engine" (e.g. "anthropic", "ollama").',err_save:"Error saving.",err_no_models:"No models. Correct key/URL?",err_list_models:"Could not list models."},providers_card:{active:"Active",off:"Off",model:"Model",base_url:"Base URL",api_key:"API key",key_set:"✓ set",temp:"Temp",price_io:"$ in/out (1M)"},chat_ui:{copy:"Copy",stop:"Stop",send:"Send",pick_model:"Pick model (or Auto)",insert_variable:"Insert variable"},sidebar_ui:{toggle:"Toggle sidebar"},models_ui:{invalid_hint:"Model/provider unavailable"},global_config:{title:"APX config"},agent_detail_extra:{skills_title:"Skills & tools"},voice_ui:{api_key_label:"API key",api_key_set:"…{suffix} (already set)",api_key_keep_hint:"Leave blank to keep the current one.",api_key_secret_hint:"Stored as a secret. Env: {env}",api_key_reuse_hint:"Reuses {engine} if left blank. Env: {env}",err_save:"Error while saving.",model_label:"Model",voice_label:"Voice",format_label:"Format",output_format_label:"Output format",voice_id_label:"Voice ID",voice_id_hint:"ElevenLabs voice id (empty = default).",gemini_model_hint:"Gemini TTS is still in preview.",style_label:"Style (how it should speak)",style_hint:"Natural-language instruction. Empty = no style. E.g.: 'speak in a cheerful, unhurried tone'.",style_ph:"speak in a cheerful, energetic tone",piper_bin_label:"Binary (bin)",piper_bin_hint:"Path or name of the piper CLI (PATH).",piper_model_label:"Model (.onnx)",piper_model_hint:"Absolute path to the piper voice model.",piper_speaker_label:"Speaker (optional)",piper_speaker_hint:"Speaker id for multi-voice models.",mock_desc:"The mock engine generates a silent test WAV. It has no parameters: it serves as a guaranteed fallback when no other engine is configured.",selection_mode:"Selection mode",mode_chain_desc:"Chain with fallback: uses the first available engine following the order below.",mode_single_desc:"Default engine only: always uses the chosen one; the rest stay configured for other purposes.",mode_chain_btn:"Chain (router)",mode_single_btn:"Default engine only",move_up:"Move up",move_down:"Move down",badge_local:"local",badge_available:"available",badge_unavailable:"configured, unavailable",badge_not_configured:"not configured",badge_default:"default",set_as_default:"Set as default",configure:"Configure",stt_engine_label:"Transcription engine",stt_engine_hint:"Local uses faster-whisper (requires python3 + faster-whisper). OpenAI uses the engines.openai key.",stt_model_label:"Local model (whisper)",stt_model_hint:"Bigger = more accurate and slower.",stt_language_label:"Language",stt_language_hint:'For Spanish, setting "Spanish" improves accuracy.',stt_provider_auto:"Automatic (local, then OpenAI)",stt_provider_local:"Local — faster-whisper (offline)",stt_provider_openai:"OpenAI — Whisper-1 (cloud)",lang_auto:"Auto-detect",lang_es:"Spanish",lang_en:"English",lang_pt:"Portuguese",lang_fr:"French",lang_it:"Italian",lang_de:"German",test_default_text:"Hi, I'm APX. This is a voice test.",test_default_engine:"Default ({name})",test_default_chain:"Default (chain)",test_unavailable_suffix:" · unavailable",test_empty_error:"Type something to say.",test_synth_error:"Could not synthesize.",test_engine_label:"Engine",test_engine_hint:"Override the default for testing.",test_style_label:"Style (Gemini only)",test_style_hint:"How it should speak. Empty = no style.",test_text_label:"Text to say",test_text_ph:"Type what you want it to say…",say_this:"Say this",stop:"Stop",replay:"Replay",engine_result:"Engine",providers_desc:"Synthesis engines. Status is reported live by the daemon. Pick which one to use by default.",providers_load_error:"Could not load providers: {msg}",test_desc:"Pick which engine to synthesize with and, if applicable, how it should speak.",stt_desc:"Speech-to-text engine used by the deck, Telegram, and the CLI when listening.",toast_default_engine:"Default engine: {id}.",toast_mode_chain:"Mode: chain with fallback.",toast_mode_single:"Mode: default engine only.",toast_config_saved:"Voice configuration saved.",toast_transcription_updated:"Transcription updated."},telegram_ui:{channel_dialog_desc:"POST /telegram/channels (upsert) — PATCH /telegram/channels/:name (partial).",bot_token_hint:"BotFather token. Stored in ~/.apx/config.json.",bot_token_hint_short:"BotFather token.",secret_set_replace:"(set — type to replace)",secret_already_set:"(already set)",empty_keep:"— empty = keep",message_sent:"Message sent.",message_label:"Text",send_chat_id:"chat_id: {id}",default_apx:"default APX",yes:"yes",no:"no",user_id_fallback:"user_id {id}",role_assigned:"{name} → {role}"},agents_ui:{model_router_default:"model: router default",slug_kebab_hint:"kebab-case, e.g. reviewer, my-agent, content-writer",comma_separated:"comma-separated",body_hint:"markdown — extends the agent's system prompt",source_user:"user",source_override:"override",source_bundled:"bundled",tab_explorer:"Explorer",type_none:"— no type —",type_orchestrator:"Orchestrator",type_orchestrator_desc:"Coordinates the team and delegates.",type_specialist:"Specialist",type_specialist_desc:"Domain expert; runs tasks.",type_assistant:"Assistant",type_assistant_desc:"Conversational helper.",type_worker:"Worker",type_worker_desc:"Runs autonomous tasks.",type_monitor:"Monitor",type_monitor_desc:"Watches state and reports.",stat_threads:"Threads",stat_records:"Records",stat_tasks:"Tasks",stat_heartbeats:"Heartbeats",config_def_desc:"definition (frontmatter + system prompt).",memory_durable_desc:"durable facts the agent remembers.",running:"running",paused:"paused",last_error:"last: error",field_tick:"Tick",field_next_tick:"Next tick",field_last_tick:"Last tick",field_last_run:"Last run",tools_label:"Tools",kind_agent:"agent",kind_memory:"memory",kind_thread:"thread",kind_task:"task",kind_routine:"routine",kind_hierarchy:"hierarchy",nodes_drag_hint:"{n} nodes · drag to rearrange",kind_exec_agent:"Project agent",kind_exec_agent_desc:"Runs a project agent with a prompt. You pick which one.",kind_super_agent:"Super-agent",kind_super_agent_desc:"Calls the APX super-agent with a prompt.",kind_telegram:"Telegram",kind_telegram_desc:"Sends a fixed message to a Telegram channel. No model or agent.",kind_shell:"Shell",kind_shell_desc:"Runs a shell command. No prompt or pre/post — the command is the action.",kind_heartbeat:"Heartbeat",kind_heartbeat_desc:"Does nothing except write a line to the logs each time it runs. Useful to confirm the scheduler is alive. If you don't know whether you need it, don't use it.",unit_seconds:"seconds",unit_minutes:"minutes",unit_hours:"hours",unit_days:"days",every_n_unit:"every {n} {unit}",every_v:"every {v}",preset_every_10m:"every 10 min",preset_hourly:"hourly",preset_daily_9am:"daily 9am",preset_weekdays_9am:"weekdays 9am",preset_manual:"Manual",var_pre_output_prompt:"Text output of the pre-commands. Replaced inside the prompt/text before it is sent. Use it to inject fresh data (weather, an API) into the instruction.",var_llm_output:"Final answer from the agent or super-agent. Available in the post-commands as an env var — e.g. forward it via Telegram.",var_status:"Action result: ok or error. Available in the post-commands to branch on what happened.",var_skipped:"1 if the action was skipped (via skip_prompt_on), 0 if it ran. Available in the post-commands.",var_pre_output:"Full pre-commands output, as an env var in the post-commands (up to 32k).",var_pre_output_file:"Path to a temp file with the pre-commands output. For large outputs not suited to an env var.",var_pre_exit:"Exit code of the last pre-command (0 = ok). Available in the post-commands.",var_routine:"Name of this routine. Available as an env var in the commands.",summary_runs_agent:'Runs the agent "{agent}"',summary_runs_agent_none:"Runs an agent (none chosen yet)",summary_super_agent:"Calls the super-agent",summary_telegram:'Sends Telegram to "{channel}"',summary_runs_cmd:"Runs: {cmd}",summary_shell:"Runs a shell command",summary_heartbeat:"Leaves a heartbeat in the logs",action_agent_answers:'Agent "{agent}" answers the prompt',action_agent_pick_answers:"Agent (pick one) answers the prompt",action_super_answers:"The super-agent answers the prompt",action_telegram_channel:'Sends Telegram to channel "{channel}"',action_runs_shell:"Runs the shell command",step_pre:"Pre",step_post:"Post",last_label:"last:",tg_chat_id_ph:"(uses the channel's)",tg_text_ph:"message to send",hb_message_ph:"still alive",arg_placeholder:"--flag or value",remove_arg:"remove arg",super_agent_label:"{persona} (super-agent)",super_agent_badge:"super-agent"},modules_ui:{desktop_pos_left:"Left",desktop_pos_center:"Center",desktop_pos_right:"Right",desktop_theme_light:"Light",desktop_theme_dark:"Dark",desktop_status_desc:"The window launches from the terminal or via autostart.",desktop_running:"Running",desktop_stopped:"Stopped",desktop_refresh:"refresh",desktop_from_terminal:"From terminal:",desktop_autostart_desc:"Launches the window at user login. Equivalent to `apx desktop install` (no sudo required).",desktop_platform:"platform: {platform}",desktop_shortcut_desc:"Global hotkey that shows/hides the window and starts listening.",desktop_accelerator:"Accelerator",desktop_accelerator_hint:'Electron format, e.g. "CommandOrControl+G" or "CommandOrControl+Shift+Space". Restart the window to apply.',desktop_shortcut_saved:"Shortcut saved. Restart the window (apx desktop stop && start) to apply it.",desktop_autostart_on:"Autostart enabled for the next login.",desktop_autostart_off:"Autostart disabled.",desktop_appearance_desc:"Window theme and position on the screen.",desktop_theme:"Theme",desktop_restart_apply:"Restart the window to apply.",desktop_theme_set:"Theme: {value}.",desktop_position:"Position",desktop_position_hint:'"left" / "center" / "right" of the top edge.',desktop_position_set:"Position: {value}.",desktop_activation_desc:"The daemon plugin processes the messages. STT is configured in Voices.",desktop_enabled_toast:"Desktop enabled.",desktop_disabled_toast:"Desktop disabled.",desktop_plugin_on:"Plugin enabled (replies to messages)",desktop_plugin_off:"Plugin disabled",desktop_stt_engine:"Speech-to-text engine:",desktop_stt_engine_suffix:"(local whisper, language, model).",desktop_last_conv_desc:"The latest exchange with the agent from the floating window.",desktop_no_messages:"No messages yet. Send something to the desktop window for it to appear here.",desktop_you:"You",desktop_roby:"Roby",desktop_empty_msg:"(empty)",deck_widget_enabled:"Widget {id} enabled.",deck_widget_disabled:"Widget {id} disabled.",deck_save_error:"Error while saving",deck_loading_manifest:"Loading manifest…",deck_manifest_error:"Error loading the manifest.",deck_widgets_summary:"{count} widgets · {enabled} external enabled",deck_loading_manifest_full:"Loading the Deck manifest…",deck_manifest_load_failed:"Could not load the Deck manifest.",deck_retry:"Retry",deck_no_widgets:"No widgets in the manifest.",deck_context_desc:"Information the Deck sees from the daemon.",deck_active_project:"Active project:",deck_none:"none",deck_registered_projects:"Registered projects:",deck_active_plugins:"Active plugins:",deck_daemon_active:"active · {uptime}",deck_daemon_started:"started",deck_safety_no_shell:"no direct shell",deck_safety_no_arbitrary:"arbitrary commands blocked",deck_safety_confirm:"dangerous actions require confirmation",code_copied:"Copied.",code_saved:"Saved.",code_file_empty:"(empty)",code_file_error:"Error: {msg}",code_stream_error:"error",code_super_agent:"super-agent",code_super_agent_desc:"Main agent with all tools",code_chat_tab:"Chat",code_panel_sessions:"Session list",code_panel_tree:"File tree",code_panel_terminal:"Terminal",code_panel_context:"Context panel",code_ctx_auto:"auto",code_ctx_mode:"Mode",code_ctx_agent:"Agent",code_ctx_msgs_value:"{user} user · {assistant} assistant",code_ctx_tokens_total:"Total Tokens",code_ctx_created:"Created",code_ctx_activity:"Activity",code_project_fallback:"project {id}",code_pick_project_ph:"Pick a project…",code_artifact_exit_ok:"exit 0 — {ms}ms",code_artifact_exit_fail:"exit {code}{timeout}",code_artifact_timeout_suffix:" (timeout)",code_artifact_view_short:"View",code_artifact_edit_short:"Edit",code_artifact_exit_badge:"exit {code}",code_artifact_timeout:"timeout",code_artifact_truncated:"truncated"},settings_ui:{bearer_label:"Bearer",global_config_desc:"General config in ~/.apx/config.json. Editable by tabs; JSON stays separate.",global_json_desc:"Redacted secrets are not overwritten.",save_json:"Save JSON",expand_menu:"Expand menu",collapse_menu:"Collapse menu",documentation:"Documentation",kind_personal:"Personal",kind_company:"Company",kind_app:"App",kind_software:"Software",kind_default:"Default",kind_other:"Other",base_menu_view:"Base menu view (general workspace).",coming_soon:"Coming soon",inspector_title:"Skill Inspector (per-turn RAG)",inspector_desc:"Experimental feature. When active, the agent does NOT receive the full skill list in its prompt; on each message a local RAG decides which skill(s) to load — the full body on a strong match, a suggestion on a medium match, nothing if it doesn't apply. It is re-evaluated every turn: a skill that stopped being relevant disappears from the context.",enable_inspector:"Enable inspector",enable_inspector_hint:"Off = classic behavior (slug list + passive suggestion). On = the RAG decides per turn.",on:"On",off:"Off",index_count:"Index: {n} skills",not_indexed:"not indexed",dim:"dim {dim}",updated_at:"updated {date}",reindex:"Reindex",reindex_forced:"Reindex (forced)",embedder_source:"The embedder comes from Memory (RAG). Local with Ollama, or offline if no provider is set.",thresholds_title:"Thresholds and limits",thresholds_desc:"Tune how aggressive the inspector is. Raising the thresholds = fewer false positives but more risk of missing a skill; lowering them = the opposite.",test_title:"Test (dry-run)",test_desc:"Type a message the way a user would and see which skills the inspector would load/suggest — without calling the model. Forces the inspector on even if it's off above.",test_placeholder:"e.g.: I need to create a promo video with voiceover",test_btn:"Test",jit_empty_index:"JIT (empty index)",loaded_label:"Loaded:",suggested_label:"Suggested:",could_not_save:"Could not save: {msg}",indexed_with:"Indexed with {embedder} (dim {dim}): +{added} ~{refreshed} -{removed}.",index_failed:"Index failed: {msg}",dry_run_failed:"Dry-run failed: {msg}",knob_load_threshold:"Load threshold",knob_load_threshold_hint:"Minimum similarity to inject the skill's BODY (high = stricter).",knob_hint_threshold:"Hint threshold",knob_hint_threshold_hint:"Minimum similarity to only SUGGEST the skill (so the agent loads it if it wants).",knob_margin:"Margin over the 2nd",knob_margin_hint:"The top must beat the second by this margin to load its body (avoids weak ties).",knob_max_loaded:"Max. loaded bodies",knob_max_loaded_hint:"How many skills are injected in full per turn.",knob_max_hints:"Max. hints",knob_max_hints_hint:"How many extra skills are named as a suggestion.",knob_prompt_floor:"Minimum prompt length",knob_prompt_floor_hint:"Messages shorter than this are ignored (avoids 'ok', 'hi').",knob_body_char_cap:"Body char cap",knob_body_char_cap_hint:"Trims long skill bodies so they don't bloat the context.",cfg_overrides_label:"Overrides",cfg_overrides_desc:".apc/config.json. Only project-specific values; empty inherits global/effective.",cfg_route_to_agent:"Route to agent",cfg_super_agent_model:"Super-agent model",cfg_permission_mode:"Permission mode",cfg_extra_prompt:"Extra prompt",cfg_telegram_label:"Telegram",cfg_chat_id:"Chat ID",cfg_bot_token:"Bot token",cfg_respond_with_engine:"Respond with engine",cfg_engines_label:"Engines",cfg_ollama_url:"Ollama URL",cfg_anthropic_key:"Anthropic API key",cfg_openai_key:"OpenAI API key",cfg_groq_key:"Groq API key",cfg_openrouter_key:"OpenRouter API key",cfg_gemini_key:"Gemini API key",cfg_project_label:"Project",cfg_project_desc:".apc/project.json. Portable APC metadata; no secrets, no runtime.",cfg_name:"Name",cfg_version:"Version",cfg_apc_spec:"APC spec",cfg_apx_install:"APX install state",cfg_apx_storage_id:"APX storage id"},shared_ui:{skill_inspector_title:"Skill Inspector ({embedder}) chose these skills for this turn",tools_count:"{n} tools",tool_read_file:"Read file",tool_write_file:"Write file",tool_edit_file:"Edit file",tool_list_files:"List files",tool_search_files:"Search in files",tool_search_messages:"Search messages",tool_tail_messages:"Latest messages",tool_run_shell:"Run shell",tool_send_telegram:"Send Telegram",tool_call_agent:"Call agent",tool_call_mcp:"Call MCP",tool_call_runtime:"Call runtime",tool_create_task:"Create task",dedup:"dedup",args:"args",result:"result",auto:"Auto",auto_router:"Auto (router decides)",model_filter_ph:"filter or type a model…",loading_models:"loading models…",use_value:"use “{value}”",model_combobox_ph:"pick or type a model…",search_variable_ph:"search variable…",no_matches:"no matches",create_variable:"Create new variable…",kv_key_ph:"KEY",kv_value_ph:"value",remove_row:"remove row",add_row:"Add row",err_chat_failed:"Chat failed.",err_stream_failed:"Stream failed.",err_load_conversation:"Could not load conversation.",err_stream:"Stream error."}},Db={es:qz,en:$z};function Fz(){try{const e=localStorage.getItem(Rn.language);if(e&&e in Db)return e}catch{}return"en"}let Jf=Fz();function K2(e){Jf=e;try{localStorage.setItem(Rn.language,e)}catch{}}const Q2=[{value:"es",label:"Español"},{value:"en",label:"English"}];function Z2(){return Jf}function Gz(e){const t=Db[Jf],s=e.split(".");let o=t;for(const l of s)if(o&&typeof o=="object"&&l in o)o=o[l];else return;return typeof o=="string"?o:void 0}function Yz(e,t){return t?e.replace(/\{(\w+)\}/g,(s,o)=>o in t?String(t[o]):`{${o}}`):e}function Xz(e){const t=Gz(e);if(t!==void 0)return t;if(Jf!=="es"){const s=Db.es,o=e.split(".");let l=s;for(const c of o)if(l&&typeof l=="object"&&c in l)l=l[c];else return;return typeof l=="string"?l:void 0}}function f(e,t){const s=Xz(e);return s===void 0?e:Yz(s,t)}function Lb(e){const[t,s]=x.useState(!1);x.useEffect(()=>{try{s(localStorage.getItem(e)==="true")}catch{}},[e]);const o=x.useCallback(()=>s(l=>{const c=!l;try{localStorage.setItem(e,String(c))}catch{}return c}),[e]);return{collapsed:t,toggle:o}}function Kz({collapsed:e,onToggle:t}){return r.jsx(et,{content:f(e?"settings_ui.expand_menu":"settings_ui.collapse_menu"),side:"bottom",children:r.jsx("button",{type:"button",onClick:t,"aria-label":f(e?"settings_ui.expand_menu":"settings_ui.collapse_menu"),className:"flex size-7 shrink-0 items-center justify-center rounded-md text-muted-fg transition-colors hover:bg-accent hover:text-foreground",children:r.jsx(Uk,{className:De("size-4 transition-transform",e&&"rotate-180")})})})}function Qz({sections:e,active:t,onChange:s,collapsed:o=!1}){return r.jsx("nav",{className:De("hidden md:flex shrink-0 flex-col gap-1 py-3 transition-all",o?"w-12 items-center px-1":"w-52 px-2"),children:e.map((l,c)=>r.jsxs("div",{className:De("w-full",c>0&&"mt-2"),children:[!o&&l.title&&r.jsx("p",{className:"mb-1 px-2 text-[9px] font-semibold uppercase tracking-wider text-muted-fg/70",children:l.title}),r.jsx("div",{className:"space-y-0.5",children:l.items.map(({key:u,label:p,icon:m,badge:g})=>{const h=t===u,b=r.jsxs("button",{type:"button",onClick:()=>s(u),"data-testid":`tabnav-${u||"index"}`,className:De("flex cursor-pointer items-center rounded-lg transition-colors",o?"size-9 justify-center":"w-full gap-2 px-2.5 py-1.5",h?"bg-accent text-accent-fg":"text-muted-fg hover:bg-accent/60 hover:text-foreground"),children:[r.jsx(m,{className:"size-4 shrink-0"}),!o&&r.jsxs(r.Fragment,{children:[r.jsx("span",{className:"flex-1 truncate text-left text-xs",children:p}),g!==void 0&&r.jsx("span",{className:"rounded-full bg-muted px-1.5 text-[9px] text-muted-fg",children:g})]})]});return o?r.jsx(et,{content:p,side:"right",children:b},u):r.jsx(x.Fragment,{children:b},u)})})]},c))})}const W2=0,J2=1,eC=2,jj=3;var wj=Object.prototype.hasOwnProperty;function Wh(e,t){var s,o;if(e===t)return!0;if(e&&t&&(s=e.constructor)===t.constructor){if(s===Date)return e.getTime()===t.getTime();if(s===RegExp)return e.toString()===t.toString();if(s===Array){if((o=e.length)===t.length)for(;o--&&Wh(e[o],t[o]););return o===-1}if(!s||typeof e=="object"){o=0;for(s in e)if(wj.call(e,s)&&++o&&!wj.call(t,s)||!(s in t)||!Wh(e[s],t[s]))return!1;return Object.keys(t).length===o}}return e!==e&&t!==t}const Hs=new WeakMap,qs=()=>{},Pn=qs(),Jh=Object,wt=e=>e===Pn,ns=e=>typeof e=="function",zr=(e,t)=>({...e,...t}),tC=e=>ns(e.then),Ug={},xd={},Pb="undefined",Vc=typeof window!=Pb,ex=typeof document!=Pb,Zz=Vc&&"Deno"in window,Wz=()=>Vc&&typeof window.requestAnimationFrame!=Pb,nC=(e,t)=>{const s=Hs.get(e);return[()=>!wt(t)&&e.get(t)||Ug,o=>{if(!wt(t)){const l=e.get(t);t in xd||(xd[t]=l),s[5](t,zr(l,o),l||Ug)}},s[6],()=>!wt(t)&&t in xd?xd[t]:!wt(t)&&e.get(t)||Ug]};let tx=!0;const Jz=()=>tx,[nx,ax]=Vc&&window.addEventListener?[window.addEventListener.bind(window),window.removeEventListener.bind(window)]:[qs,qs],eD=()=>{const e=ex&&document.visibilityState;return wt(e)||e!=="hidden"},tD=e=>(ex&&document.addEventListener("visibilitychange",e),nx("focus",e),()=>{ex&&document.removeEventListener("visibilitychange",e),ax("focus",e)}),nD=e=>{const t=()=>{tx=!0,e()},s=()=>{tx=!1};return nx("online",t),nx("offline",s),()=>{ax("online",t),ax("offline",s)}},aD={isOnline:Jz,isVisible:eD},sD={initFocus:tD,initReconnect:nD},kj=!zc.useId,Nl=!Vc||Zz,rD=e=>Wz()?window.requestAnimationFrame(e):setTimeout(e,1),Hg=Nl?x.useEffect:x.useLayoutEffect,Vg=typeof navigator<"u"&&navigator.connection,Sj=!Nl&&Vg&&(["slow-2g","2g"].includes(Vg.effectiveType)||Vg.saveData),bd=new WeakMap,oD=e=>Jh.prototype.toString.call(e),qg=(e,t)=>e===`[object ${t}]`;let lD=0;const sx=e=>{const t=typeof e,s=oD(e),o=qg(s,"Date"),l=qg(s,"RegExp"),c=qg(s,"Object");let u,p;if(Jh(e)===e&&!o&&!l){if(u=bd.get(e),u)return u;if(u=++lD+"~",bd.set(e,u),Array.isArray(e)){for(u="@",p=0;p<e.length;p++)u+=sx(e[p])+",";bd.set(e,u)}if(c){u="#";const m=Jh.keys(e).sort();for(;!wt(p=m.pop());)wt(e[p])||(u+=p+":"+sx(e[p])+",");bd.set(e,u)}}else u=o?e.toJSON():t=="symbol"?e.toString():t=="string"?JSON.stringify(e):""+e;return u},Ib=e=>{if(ns(e))try{e=e()}catch{e=""}const t=e;return e=typeof e=="string"?e:(Array.isArray(e)?e.length:e)?sx(e):"",[e,t]};let iD=0;const rx=()=>++iD;async function aC(...e){const[t,s,o,l]=e,c=zr({populateCache:!0,throwOnError:!0},typeof l=="boolean"?{revalidate:l}:l||{});let u=c.populateCache;const p=c.rollbackOnError;let m=c.optimisticData;const g=_=>typeof p=="function"?p(_):p!==!1,h=c.throwOnError;if(ns(s)){const _=s,k=[],E=t.keys();for(const j of E)!/^\$(inf|sub)\$/.test(j)&&_(t.get(j)._k)&&k.push(j);return Promise.all(k.map(b))}return b(s);async function b(_){const[k]=Ib(_);if(!k)return;const[E,j]=nC(t,k),[w,S,C,N]=Hs.get(t),R=()=>{const H=w[k];return(ns(c.revalidate)?c.revalidate(E().data,_):c.revalidate!==!1)&&(delete C[k],delete N[k],H&&H[0])?H[0](eC).then(()=>E().data):E().data};if(e.length<3)return R();let A=o,T,M=!1;const z=rx();S[k]=[z,0];const P=!wt(m),D=E(),I=D.data,B=D._c,V=wt(B)?I:B;if(P&&(m=ns(m)?m(V,I):m,j({data:m,_c:V})),ns(A))try{A=A(V)}catch(H){T=H,M=!0}if(A&&tC(A))if(A=await A.catch(H=>{T=H,M=!0}),z!==S[k][0]){if(M)throw T;return A}else M&&P&&g(T)&&(u=!0,j({data:V,_c:Pn}));if(u&&!M)if(ns(u)){const H=u(A,V);j({data:H,error:Pn,_c:Pn})}else j({data:A,error:Pn,_c:Pn});if(S[k][1]=rx(),Promise.resolve(R()).then(()=>{j({_c:Pn})}),M){if(h)throw T;return}return A}}const Cj=(e,t)=>{for(const s in e)e[s][0]&&e[s][0](t)},cD=(e,t)=>{if(!Hs.has(e)){const s=zr(sD,t),o=Object.create(null),l=aC.bind(Pn,e);let c=qs;const u=Object.create(null),p=(h,b)=>{const _=u[h]||[];return u[h]=_,_.push(b),()=>{const k=_.indexOf(b);k>=0&&(_[k]=_[_.length-1],_.pop())}},m=(h,b,_)=>{e.set(h,b);const k=u[h];if(k)for(const E of k)E(b,_)},g=()=>{if(!Hs.has(e)&&(Hs.set(e,[o,Object.create(null),Object.create(null),Object.create(null),l,m,p]),!Nl)){const h=s.initFocus(setTimeout.bind(Pn,Cj.bind(Pn,o,W2))),b=s.initReconnect(setTimeout.bind(Pn,Cj.bind(Pn,o,J2)));c=()=>{h&&h(),b&&b(),Hs.delete(e)}}};return g(),[e,l,g,c]}return[e,Hs.get(e)[4]]},uD=(e,t,s,o,l)=>{const c=s.errorRetryCount,u=l.retryCount,p=~~((Math.random()+.5)*(1<<(u<8?u:8)))*s.errorRetryInterval;!wt(c)&&u>c||setTimeout(o,p,l)},dD=Wh,[sC,rC]=cD(new Map),fD=zr({onLoadingSlow:qs,onSuccess:qs,onError:qs,onErrorRetry:uD,onDiscarded:qs,revalidateOnFocus:!0,revalidateOnReconnect:!0,revalidateIfStale:!0,shouldRetryOnError:!0,errorRetryInterval:Sj?1e4:5e3,focusThrottleInterval:5*1e3,dedupingInterval:2*1e3,loadingTimeout:Sj?5e3:3e3,compare:dD,isPaused:()=>!1,cache:sC,mutate:rC,fallback:{}},aD),pD=(e,t)=>{const s=zr(e,t);if(t){const{use:o,fallback:l}=e,{use:c,fallback:u}=t;o&&c&&(s.use=o.concat(c)),l&&u&&(s.fallback=zr(l,u))}return s},mD=x.createContext({}),gD="$inf$",oC=Vc&&window.__SWR_DEVTOOLS_USE__,hD=oC?window.__SWR_DEVTOOLS_USE__:[],xD=()=>{oC&&(window.__SWR_DEVTOOLS_REACT__=zc)},bD=e=>ns(e[1])?[e[0],e[1],e[2]||{}]:[e[0],null,(e[1]===null?e[2]:e[1])||{}],lC=()=>{const e=x.useContext(mD);return x.useMemo(()=>zr(fD,e),[e])},vD=e=>(t,s,o)=>e(t,s&&((...c)=>{const[u]=Ib(t),[,,,p]=Hs.get(sC);if(u.startsWith(gD))return s(...c);const m=p[u];return wt(m)?s(...c):(delete p[u],m)}),o),_D=hD.concat(vD),yD=e=>function(...s){const o=lC(),[l,c,u]=bD(s),p=pD(o,u);let m=e;const{use:g}=p,h=(g||[]).concat(_D);for(let b=h.length;b--;)m=h[b](m);return m(l,c||p.fetcher||null,p)},jD=(e,t,s)=>{const o=t[e]||(t[e]=[]);return o.push(s),()=>{const l=o.indexOf(s);l>=0&&(o[l]=o[o.length-1],o.pop())}};xD();const $g=zc.use||(e=>{switch(e.status){case"pending":throw e;case"fulfilled":return e.value;case"rejected":throw e.reason;default:throw e.status="pending",e.then(t=>{e.status="fulfilled",e.value=t},t=>{e.status="rejected",e.reason=t}),e}}),Fg={dedupe:!0},cf=Promise.resolve(Pn);cf.status="fulfilled";cf.value=Pn;const wD=()=>qs,kD=(e,t,s)=>{const{cache:o,compare:l,suspense:c,fallbackData:u,revalidateOnMount:p,revalidateIfStale:m,refreshInterval:g,refreshWhenHidden:h,refreshWhenOffline:b,keepPreviousData:_,strictServerPrefetchWarning:k}=s,[E,j,w,S]=Hs.get(o),[C,N]=Ib(e),R=x.useRef(!1),A=x.useRef(!1),T=x.useRef(C),M=x.useRef(t),z=x.useRef(s),P=()=>z.current,D=()=>P().isVisible()&&P().isOnline(),[I,B,V,H]=nC(o,C),G=x.useRef({}).current,q=wt(u)?wt(s.fallback)?Pn:s.fallback[C]:u,Y=(we,Ee)=>{for(const _e in G){const Ce=_e;if(Ce==="data"){if(!l(we[Ce],Ee[Ce])&&(!wt(we[Ce])||!l(ue,Ee[Ce])))return!1}else if(Ee[Ce]!==we[Ce])return!1}return!0},X=!R.current,$=x.useMemo(()=>{const we=I(),Ee=H(),_e=Ie=>{const ae=zr(Ie);return delete ae._k,(()=>{if(!C||!t||P().isPaused())return!1;if(X&&!wt(p))return p;const $e=wt(q)?ae.data:q;return wt($e)||m})()?{isValidating:!0,isLoading:!0,...ae}:ae},Ce=_e(we),Le=we===Ee?Ce:_e(Ee);let Pe=Ce;return[()=>{const Ie=_e(I());return Y(Ie,Pe)?(Pe.data=Ie.data,Pe.isLoading=Ie.isLoading,Pe.isValidating=Ie.isValidating,Pe.error=Ie.error,Pe):(Pe=Ie,Ie)},()=>Le]},[o,C]),K=nf.useSyncExternalStore(x.useCallback(we=>V(C,(Ee,_e)=>{Y(_e,Ee)||we()}),[o,C]),$[0],$[1]),L=E[C]&&E[C].length>0,F=K.data,W=wt(F)?q&&tC(q)?$g(q):q:F,ee=K.error,ce=x.useRef(W),ue=_?wt(F)?wt(ce.current)?W:ce.current:F:W,se=C&&wt(W),oe=x.useRef(null);!Nl&&nf.useSyncExternalStore(wD,()=>(oe.current=!1,oe),()=>(oe.current=!0,oe));const fe=oe.current;k&&fe&&!c&&se&&console.warn(`Missing pre-initiated data for serialized key "${C}" during server-side rendering. Data fetching should be initiated on the server and provided to SWR via fallback data. You can set "strictServerPrefetchWarning: false" to disable this warning.`);const Re=!C||!t||P().isPaused()||L&&!wt(ee)?!1:X&&!wt(p)?p:c?wt(W)?!1:m:wt(W)||m,le=X&&Re,de=wt(K.isValidating)?le:K.isValidating,ke=wt(K.isLoading)?le:K.isLoading,je=x.useCallback(async we=>{const Ee=M.current;if(!C||!Ee||A.current||P().isPaused())return!1;let _e,Ce,Le=!0;const Pe=we||{},Ie=!w[C]||!Pe.dedupe,ae=()=>kj?!A.current&&C===T.current&&R.current:C===T.current,be={isValidating:!1,isLoading:!1},$e=()=>{B(be)},Ne=()=>{const Ze=w[C];Ze&&Ze[1]===Ce&&delete w[C]},Me={isValidating:!0};wt(I().data)&&(Me.isLoading=!0);try{if(Ie&&(B(Me),s.loadingTimeout&&wt(I().data)&&setTimeout(()=>{Le&&ae()&&P().onLoadingSlow(C,s)},s.loadingTimeout),w[C]=[Ee(N),rx()]),[_e,Ce]=w[C],_e=await _e,Ie&&setTimeout(Ne,s.dedupingInterval),!w[C]||w[C][1]!==Ce)return Ie&&ae()&&P().onDiscarded(C),!1;be.error=Pn;const Ze=j[C];if(!wt(Ze)&&(Ce<=Ze[0]||Ce<=Ze[1]||Ze[1]===0))return $e(),Ie&&ae()&&P().onDiscarded(C),!1;const st=I().data;be.data=l(st,_e)?st:_e,Ie&&ae()&&P().onSuccess(_e,C,s)}catch(Ze){Ne();const st=P(),{shouldRetryOnError:_t}=st;st.isPaused()||(be.error=Ze,Ie&&ae()&&(st.onError(Ze,C,st),(_t===!0||ns(_t)&&_t(Ze))&&(!P().revalidateOnFocus||!P().revalidateOnReconnect||D())&&st.onErrorRetry(Ze,C,st,ve=>{const Ae=E[C];Ae&&Ae[0]&&Ae[0](jj,ve)},{retryCount:(Pe.retryCount||0)+1,dedupe:!0})))}return Le=!1,$e(),!0},[C,o]),Be=x.useCallback((...we)=>aC(o,T.current,...we),[]);if(Hg(()=>{M.current=t,z.current=s,wt(F)||(ce.current=F)}),Hg(()=>{if(!C)return;const we=je.bind(Pn,Fg);let Ee=0;P().revalidateOnFocus&&(Ee=Date.now()+P().focusThrottleInterval);const Ce=jD(C,E,(Le,Pe={})=>{if(Le==W2){const Ie=Date.now();P().revalidateOnFocus&&Ie>Ee&&D()&&(Ee=Ie+P().focusThrottleInterval,we())}else if(Le==J2)P().revalidateOnReconnect&&D()&&we();else{if(Le==eC)return je();if(Le==jj)return je(Pe)}});return A.current=!1,T.current=C,R.current=!0,B({_k:N}),Re&&(w[C]||(wt(W)||Nl?we():rD(we))),()=>{A.current=!0,Ce()}},[C]),Hg(()=>{let we;function Ee(){const Ce=ns(g)?g(I().data):g;Ce&&we!==-1&&(we=setTimeout(_e,Ce))}function _e(){!I().error&&(h||P().isVisible())&&(b||P().isOnline())?je(Fg).then(Ee):Ee()}return Ee(),()=>{we&&(clearTimeout(we),we=-1)}},[g,h,b,C]),x.useDebugValue(ue),c){if(!kj&&Nl&&se)throw new Error("Fallback data is required when using Suspense in SSR.");se&&(M.current=t,z.current=s,A.current=!1);const we=S[C],Ee=!wt(we)&&se?Be(we):cf;if($g(Ee),!wt(ee)&&se)throw ee;const _e=se?je(Fg):cf;!wt(ue)&&se&&(_e.status="fulfilled",_e.value=!0),$g(_e)}return{mutate:Be,get data(){return G.data=!0,ue},get error(){return G.error=!0,ee},get isValidating(){return G.isValidating=!0,de},get isLoading(){return G.isLoading=!0,ke}}},Qe=yD(kD);let Ul=null;function fo(e){Ul=e}function Bb(){return Ul}class qc extends Error{status;body;constructor(t,s,o){super(s),this.status=t,this.body=o}}async function Qi(e,t,s,o={}){const l={"content-type":"application/json",...Ul?{authorization:`Bearer ${Ul}`}:{},...o.headers||{}},c=await fetch(t,{...o,method:e,headers:l,body:s!==void 0?JSON.stringify(s):void 0});if(!c.ok){let u="",p=null;try{p=await c.json(),u=p?.error||JSON.stringify(p)}catch{u=await c.text()}throw new qc(c.status,`${e} ${t} → ${c.status}: ${u}`,p)}if(c.status!==204)return await c.json()}const he={get:e=>Qi("GET",e),post:(e,t)=>Qi("POST",e,t),put:(e,t)=>Qi("PUT",e,t),patch:(e,t)=>Qi("PATCH",e,t),del:e=>Qi("DELETE",e)};async function iC(e,t,s,o){const l=await fetch(e,{method:"POST",signal:o,headers:{"content-type":"application/json",...Ul?{authorization:`Bearer ${Ul}`}:{}},body:JSON.stringify(t)});if(!l.ok||!l.body){const m=await l.text().catch(()=>"");throw new qc(l.status,`POST ${e} → ${l.status}: ${m||"stream failed"}`)}const c=l.body.getReader(),u=new TextDecoder("utf-8");let p="";for(;;){const{value:m,done:g}=await c.read();if(g)break;p+=u.decode(m,{stream:!0});let h=p.indexOf(`
|
|
616
|
+
`);for(;h>=0;){const b=p.slice(0,h).trim();if(p=p.slice(h+1),b)try{s(JSON.parse(b))}catch{}h=p.indexOf(`
|
|
617
|
+
`)}}if(p.trim())try{s(JSON.parse(p.trim()))}catch{}}const SD={get:()=>he.get("/health")},ra={list:()=>he.get("/projects"),register:e=>he.post("/projects",{path:e}),remove:e=>he.del(`/projects/${encodeURIComponent(e)}`),rebuild:e=>he.post(`/projects/${encodeURIComponent(e)}/rebuild`),config:{show:e=>he.get(`/projects/${e}/config`),set:(e,t)=>he.patch(`/projects/${e}/config`,{set:t}),unset:(e,t)=>he.patch(`/projects/${e}/config`,{unset:t}),put:(e,t)=>he.put(`/projects/${e}/config`,t)},apcProject:{set:(e,t,s)=>he.patch(`/projects/${e}/apc-project`,{set:t,unset:s}),put:(e,t)=>he.put(`/projects/${e}/apc-project`,t)},memory:{get:e=>he.get(`/projects/${e}/memory`),put:(e,t)=>he.put(`/projects/${e}/memory`,{body:t})}},sn={list:e=>he.get(`/projects/${e}/agents`),get:(e,t)=>he.get(`/projects/${e}/agents/${t}`),create:(e,t)=>he.post(`/projects/${e}/agents`,t),update:(e,t,s)=>he.patch(`/projects/${e}/agents/${encodeURIComponent(t)}`,s),remove:(e,t)=>he.del(`/projects/${e}/agents/${encodeURIComponent(t)}`),chat:(e,t,s)=>he.post(`/projects/${e}/agents/${encodeURIComponent(t)}/chat`,s),memory:{get:(e,t)=>he.get(`/projects/${e}/agents/${t}/memory`),put:(e,t,s)=>he.put(`/projects/${e}/agents/${t}/memory`,{body:s})},vault:e=>he.get(e?.includeRemoved?"/agents/vault?include_removed=1":"/agents/vault"),vaultCreate:(e,t={},s="")=>he.post("/agents/vault",{slug:e,fields:t,body:s}),vaultPatch:(e,t)=>he.patch(`/agents/vault/${encodeURIComponent(e)}`,t),vaultRemove:e=>he.del(`/agents/vault/${encodeURIComponent(e)}`),vaultRestore:e=>he.post(`/agents/vault/${encodeURIComponent(e)}/restore`),import:(e,t)=>he.post(`/projects/${e}/agents/import`,{slug:t})},Ub={list:(e,t)=>he.get(`/projects/${e}/agents/${t}/conversations`),get:(e,t,s)=>he.get(`/projects/${e}/agents/${t}/conversations/${s}`),compact:(e,t,s)=>he.post(s?`/projects/${e}/agents/${t}/conversations/${s}/compact`:`/projects/${e}/agents/${t}/compact`,{})},Sr={list:e=>he.get(`/projects/${e}/routines`),get:(e,t)=>he.get(`/projects/${e}/routines/${t}`),run:(e,t)=>he.post(`/projects/${e}/routines/${t}/run`),enable:(e,t)=>he.post(`/projects/${e}/routines/${t}/enable`),disable:(e,t)=>he.post(`/projects/${e}/routines/${t}/disable`),upsert:(e,t)=>he.post(`/projects/${e}/routines`,t),remove:(e,t)=>he.del(`/projects/${e}/routines/${encodeURIComponent(t)}`)},Cr={list:(e,t="open")=>he.get(`/projects/${e}/tasks?state=${t}`),global:(e="open")=>he.get(`/tasks?state=${e}`),add:(e,t)=>he.post(`/projects/${e}/tasks`,t),done:(e,t)=>he.post(`/projects/${e}/tasks/${t}/done`),drop:(e,t)=>he.post(`/projects/${e}/tasks/${t}/drop`),reopen:(e,t)=>he.post(`/projects/${e}/tasks/${t}/reopen`)},Er={list:e=>he.get(`/projects/${e}/mcps`),check:e=>he.get(`/projects/${e}/mcps/check`),add:(e,t,s)=>he.post(`/projects/${e}/mcps?scope=${t}`,s),remove:(e,t,s="shared")=>he.del(`/projects/${e}/mcps/${encodeURIComponent(t)}?scope=${s}`),test:(e,t)=>he.post(`/projects/${e}/mcps/${encodeURIComponent(t)}/test`,{}),logs:(e,t)=>he.get(`/projects/${e}/mcps/${encodeURIComponent(t)}/logs`)},Rc={list:(e,t={})=>he.get(`/projects/${e}/vars${t.reveal?"?reveal=1":""}`),get:(e,t,s={})=>he.get(`/projects/${e}/vars/${encodeURIComponent(t)}${s.reveal?"?reveal=1":""}`),upsert:(e,t)=>he.post(`/projects/${e}/vars`,t),remove:(e,t,s="project")=>he.del(`/projects/${e}/vars/${encodeURIComponent(t)}?scope=${s}`)},Gg=e=>{const t=new URLSearchParams;for(const[o,l]of Object.entries(e))l!==void 0&&l!==""&&t.set(o,String(l));const s=t.toString();return s?`?${s}`:""},uf={global:(e={})=>he.get(`/messages/global${Gg(e)}`),project:(e,t={})=>he.get(`/projects/${e}/messages${Gg(t)}`),search:(e,t,s=50)=>he.get(`/projects/${e}/messages/search${Gg({q:t,limit:s})}`)},CD={global:e=>he.get(`/sessions${e?`?engine=${encodeURIComponent(e)}`:""}`)},ED={list:()=>he.get("/tools")},Tn={channels:{list:()=>he.get("/telegram/channels"),upsert:e=>he.post("/telegram/channels",e),patch:(e,t)=>he.patch(`/telegram/channels/${e}`,t),remove:e=>he.del(`/telegram/channels/${encodeURIComponent(e)}`)},contacts:{list:()=>he.get("/telegram/contacts"),patch:(e,t)=>he.patch(`/telegram/contacts/${encodeURIComponent(String(e))}`,t),remove:e=>he.del(`/telegram/contacts/${encodeURIComponent(String(e))}`)},roles:{list:()=>he.get("/telegram/roles"),set:(e,t)=>he.put(`/telegram/roles/${encodeURIComponent(e)}`,{tools:t}),remove:e=>he.del(`/telegram/roles/${encodeURIComponent(e)}`)},status:()=>he.get("/telegram/status"),start:()=>he.post("/telegram/start"),stop:()=>he.post("/telegram/stop"),send:e=>he.post("/telegram/send",e)},df={list:()=>he.get("/engines"),models:e=>he.post("/engines/models",e)},Hl={reload:()=>he.post("/admin/reload"),shutdown:()=>he.post("/admin/shutdown"),config:{get:()=>he.get("/admin/config"),patch:e=>he.patch("/admin/config",e)},superAgent:()=>he.get("/admin/super-agent"),logs:(e="errors",t=200)=>he.get(`/admin/logs?file=${e}&limit=${t}`)},Vl={list:()=>he.get("/pair/list"),revoke:e=>he.del(`/pair/revoke/${encodeURIComponent(e)}`),init:()=>he.post("/pair/init",{}),status:e=>he.get(`/pair/status/${encodeURIComponent(e)}`),confirm:e=>he.post("/pair/confirm",e)},Ej={get:()=>he.get("/identity"),patch:e=>he.patch("/identity",e)},cC={send:(e,t)=>he.post(`/projects/${e}/super-agent/chat`,t),stream:(e,t,s,o)=>iC(`/projects/${e}/super-agent/chat/stream`,t,s,o),summarize:e=>he.post("/super-agent/summarize",e)},Nj={dirs:e=>he.get(`/admin/fs/dirs?path=${encodeURIComponent(e)}`),pickDir:e=>he.get(`/admin/fs/pick-dir${e?`?prompt=${encodeURIComponent(e)}`:""}`)},ND=["alloy","echo","fable","onyx","nova","shimmer"],RD=["Kore","Puck","Charon","Fenrir","Aoede"],TD=["eleven_multilingual_v2","eleven_turbo_v2_5","eleven_flash_v2_5"],AD=["tts-1","tts-1-hd"],MD=["tiny","base","small","medium","large-v2","large-v3"],ff={piper:{name:"Piper",note:"Local, offline (CLI + .onnx model). No API key.",local:!0},elevenlabs:{name:"ElevenLabs",note:"Cloud, multilingual. Requires an API key."},openai:{name:"OpenAI",note:"Cloud (tts-1 / tts-1-hd). Uses your OpenAI key."},gemini:{name:"Gemini",note:"Cloud (preview). Uses your Gemini key."},mock:{name:"Mock",note:"Silent test engine. Always available as a fallback.",local:!0}};async function OD(e){const t=Bb(),s=await fetch(`/voice/tts?path=${encodeURIComponent(e)}`,{headers:t?{authorization:`Bearer ${t}`}:{}});if(!s.ok){const l=await s.text().catch(()=>"");throw new Error(`No se pudo leer el audio (${s.status}): ${l.slice(0,160)}`)}const o=await s.blob();return URL.createObjectURL(o)}const uC={providers:()=>he.get("/tts/providers"),say:e=>he.post("/tts/say",e),turn:e=>he.post("/voice/turn",e)},Rj={manifest:()=>he.get("/deck/manifest"),setWidget:(e,t)=>he.patch(`/deck/widgets/${encodeURIComponent(e)}`,t),exec:e=>he.post("/deck/exec",e)},lo=e=>`/projects/${e}/code/sessions`,Is={sessions:{list:e=>he.get(lo(e)).then(t=>t.sessions),get:(e,t)=>he.get(`${lo(e)}/${t}`),create:(e,t={})=>he.post(lo(e),t),update:(e,t,s)=>he.patch(`${lo(e)}/${t}`,s),remove:(e,t)=>he.del(`${lo(e)}/${t}`)},changes:(e,t)=>he.get(`${lo(e)}/${t}/changes`),stream:(e,t,s,o,l)=>iC(`${lo(e)}/${t}/chat/stream`,s,o,l)},Rl={list:e=>he.get(`/projects/${encodeURIComponent(e)}/artifacts`),read:(e,t)=>he.get(`/projects/${encodeURIComponent(e)}/artifacts/${encodeURIComponent(t)}`),run:(e,t,s=[])=>he.post(`/projects/${encodeURIComponent(e)}/artifacts/${encodeURIComponent(t)}/run`,{args:s}),remove:(e,t)=>he.del(`/projects/${encodeURIComponent(e)}/artifacts/${encodeURIComponent(t)}`),write:(e,t,s)=>he.patch(`/projects/${encodeURIComponent(e)}/artifacts/${encodeURIComponent(t)}`,{content:s}),rename:(e,t,s)=>he.patch(`/projects/${encodeURIComponent(e)}/artifacts/${encodeURIComponent(t)}`,{newName:s})},cc={list:e=>he.get(e?`/skills?project_path=${encodeURIComponent(e)}`:"/skills"),inspector:()=>he.get("/skills/inspector"),updateInspector:e=>he.put("/skills/inspector",e),index:(e={})=>he.post("/skills/index",e),inspect:(e,t)=>he.post("/skills/inspect",{prompt:e,project_path:t})};function $c(){const{data:e,error:t,isLoading:s,mutate:o}=Qe("/projects",()=>ra.list(),{refreshInterval:Ef.projects});return{projects:(e||[]).slice().sort((c,u)=>{const p=Number(c.id),m=Number(u.id);return p===0&&m!==0?-1:m===0&&p!==0?1:p-m}),error:t,isLoading:s,mutate:o}}function Hb(e){const{projects:t,isLoading:s,mutate:o}=$c();return{project:t.find(c=>String(c.id)===e)??null,isLoading:s,mutate:o}}function Vb(){const{data:e,error:t,isLoading:s,mutate:o}=Qe("/identity",()=>Ej.get());return{identity:e||{},error:t,isLoading:s,mutate:o,save:async c=>{const u=await Ej.patch(c);return await o(u,{revalidate:!1}),u}}}function qb(){const{identity:e}=Vb();return e?.agent_name?.trim()||"APX"}function zD(){return[{id:"voice",label:f("nav.modules.voice"),href:"/m/voice",icon:Ik},{id:"desktop",label:f("nav.modules.desktop"),href:"/m/desktop",icon:Bk},{id:"deck",label:f("nav.modules.deck"),href:"/m/deck",icon:wM},{id:"code",label:f("nav.modules.code"),href:"/m/code",icon:Mr}]}function DD(e,t,s){const[o,l]=x.useState(t);return x.useLayoutEffect(()=>{const c=e.current;if(!c||!s)return;const u=()=>{const m=c.clientHeight;if(!m)return;const g=parseFloat(getComputedStyle(c).rowGap)||12,b=(c.querySelector("[data-rail-probe]")?.offsetHeight??56)+g,k=Math.max(0,Math.floor((m+g)/b))-1;l(k>=t?t:Math.max(0,k-1))};u();const p=new ResizeObserver(u);return p.observe(c),()=>p.disconnect()},[e,t,s]),s?Math.min(o,t):t}function Tj({projects:e,label:t,sublabel:s,icon:o,tooltip:l,header:c,active:u,testId:p,onSelect:m,isActive:g}){return r.jsxs(G2,{children:[r.jsxs(Y2,{"data-testid":p,title:l,"aria-label":l,className:"group flex w-full cursor-pointer flex-col items-center gap-1",children:[r.jsx("span",{className:De("flex size-10 items-center justify-center rounded-xl text-xs font-bold transition-all","bg-muted/40 text-muted-fg hover:bg-accent hover:text-foreground",u&&"ring-2 ring-foreground ring-offset-2 ring-offset-card"),children:o??t}),s&&r.jsx("span",{className:"block max-w-[3.6rem] truncate text-[9px] leading-tight text-muted-fg group-hover:text-foreground",children:s})]}),r.jsxs(X2,{side:"right",align:"start",sideOffset:8,className:"max-h-[70vh] w-64",children:[r.jsx("div",{className:"px-1.5 py-1 text-xs font-medium text-muted-foreground",children:c}),e.map(h=>{const b=h.name||h.path.split("/").pop()||String(h.id),_=`/p/${h.id}`,{initials:k,idleClass:E}=q4(b);return r.jsxs(Uz,{"data-testid":`project-menu-item-${h.id}`,onClick:()=>m(_),className:De(g(_)&&"bg-accent/60 text-foreground"),children:[r.jsx("span",{className:De("flex size-6 shrink-0 items-center justify-center rounded-md text-[10px] font-bold",E),children:k}),r.jsx("span",{className:"truncate",children:b})]},h.id)})]})]})}function LD({onSelect:e,onOpenRoby:t,onOpenAddProject:s}){const{projects:o,isLoading:l}=$c(),c=Kn(),u=zD(),p=qb(),m=x.useRef(null),{collapsed:g,toggle:h}=Lb(Rn.sidebarCollapsed+".projects"),b=C=>c.pathname===C||c.pathname.startsWith(`${C}/`),_=o.find(C=>String(C.id)==="0"),k=o.filter(C=>String(C.id)!=="0").sort((C,N)=>Number(N.id)-Number(C.id)),E=DD(m,k.length,!g&&k.length>0),j=k.slice(0,E),w=k.slice(E),S=w.some(C=>b(`/p/${C.id}`));return r.jsxs("aside",{className:"flex h-full w-20 flex-col items-center gap-3 overflow-hidden bg-transparent py-3",children:[r.jsx(et,{content:f("nav.apx_admin"),side:"right",children:r.jsx("button",{type:"button",onClick:()=>e("/"),"data-testid":"nav-home",className:"mb-2 cursor-pointer",children:r.jsx(FM,{size:36})})}),l&&r.jsx("div",{className:"size-10 animate-pulse rounded-xl bg-muted"}),_&&r.jsx(xl,{label:f("base.title"),testId:"project-avatar-0",title:f("base.subtitle"),active:b("/p/0"),isDefault:!0,icon:r.jsx("img",{src:"/modules/superagent.png",alt:f("base.title"),className:"size-7 object-contain",draggable:!1}),onClick:()=>e("/p/0")}),r.jsx("div",{className:"my-0.5 h-px w-8 rounded-full bg-border"}),u.map(C=>r.jsx(xl,{label:C.label,testId:`module-avatar-${C.id}`,title:C.label,active:b(C.href),icon:r.jsx(C.icon,{size:18}),onClick:()=>e(C.href)},C.id)),r.jsxs("div",{className:"flex min-h-0 w-full flex-1 flex-col items-center gap-3",children:[k.length>0&&r.jsxs(r.Fragment,{children:[r.jsx("div",{className:"my-0.5 h-px w-8 rounded-full bg-border"}),r.jsx(et,{content:f(g?"nav.expand_projects":"nav.collapse_projects"),side:"right",children:r.jsx("button",{type:"button",onClick:h,"data-testid":"nav-toggle-projects","aria-label":f(g?"nav.expand_projects":"nav.collapse_projects"),"aria-expanded":!g,className:"flex h-5 w-8 cursor-pointer items-center justify-center rounded-md text-muted-fg transition-colors hover:bg-accent hover:text-foreground",children:r.jsx(Zs,{className:De("size-3.5 transition-transform",g&&"-rotate-90")})})})]}),r.jsxs("div",{ref:m,className:"flex min-h-0 w-full flex-1 flex-col items-center gap-3 overflow-hidden",children:[k.length>0&&g&&r.jsx(Tj,{projects:k,icon:r.jsx(mM,{size:18}),sublabel:String(k.length),tooltip:f("nav.all_projects"),header:f("nav.all_projects"),active:k.some(C=>b(`/p/${C.id}`)),testId:"nav-projects-folder",onSelect:e,isActive:b}),k.length>0&&!g&&r.jsxs(r.Fragment,{children:[r.jsx("div",{"data-rail-probe":!0,"aria-hidden":!0,className:"invisible absolute w-full",children:r.jsx(xl,{label:"Ag",active:!1,onClick:()=>{}})}),j.map(C=>{const N=C.name||C.path.split("/").pop()||String(C.id),R=`/p/${C.id}`;return r.jsx("div",{"data-rail-item":!0,className:"w-full",children:r.jsx(xl,{label:N,testId:`project-avatar-${C.id}`,title:`${N} — ${C.path}`,active:b(R),onClick:()=>e(R)})},C.id)}),w.length>0&&r.jsx(Tj,{projects:w,label:`+${w.length}`,tooltip:f("nav.more_projects",{count:w.length}),header:f("nav.more_projects",{count:w.length}),active:S,testId:"nav-projects-overflow",onSelect:e,isActive:b})]}),r.jsx(xl,{label:f("nav.add_project"),isAdd:!0,testId:"nav-add-project",icon:r.jsx(rn,{size:18}),active:!1,onClick:()=>s?s():e("/?action=add-project"),title:f("nav.add_project")})]})]}),r.jsx(xl,{label:f("nav.settings"),isSettings:!0,testId:"nav-settings",icon:r.jsx(Yd,{size:16}),active:c.pathname==="/settings"||c.pathname.startsWith("/settings/"),onClick:()=>e("/settings"),title:f("nav.settings")}),r.jsx(et,{content:f("settings_ui.documentation"),side:"right",children:r.jsx("a",{href:"https://agentprojectcontext.github.io/apx/docs/",target:"_blank",rel:"noopener noreferrer","data-testid":"nav-docs","aria-label":f("settings_ui.documentation"),className:"flex size-10 items-center justify-center rounded-xl border border-border/60 bg-muted/30 text-muted-fg transition-colors hover:bg-accent hover:text-foreground",children:r.jsx(YA,{size:18})})}),r.jsx(et,{content:f("superagent.talk",{persona:p}),side:"right",children:r.jsx("button",{type:"button",onClick:t,"data-testid":"nav-roby","aria-label":f("superagent.talk",{persona:p}),className:"flex size-10 items-center justify-center rounded-xl border border-border/60 bg-muted/30 text-muted-fg transition-colors hover:bg-accent hover:text-foreground",children:r.jsx(hn,{size:18})})})]})}function dC(e){switch(e){case"personal":return f("settings_ui.kind_personal");case"company":return f("settings_ui.kind_company");case"app":return f("settings_ui.kind_app");case"software":return f("settings_ui.kind_software");case"default":return f("settings_ui.kind_default");case"other":return f("settings_ui.kind_other");default:return f("nav.project")}}function Ye({title:e,description:t,action:s,className:o,children:l}){return r.jsxs("section",{className:De("rounded-xl border border-border bg-card p-5",o),children:[r.jsxs("header",{className:"mb-4 flex items-start justify-between gap-4",children:[r.jsxs("div",{children:[r.jsx("h2",{className:"text-lg font-semibold tracking-tight",children:e}),t&&r.jsx("p",{className:"mt-0.5 text-sm text-muted-fg",children:t})]}),s]}),r.jsx("div",{children:l})]})}function Aj({children:e}){return r.jsx("kbd",{className:"rounded border border-border bg-muted px-1.5 py-0.5 font-mono text-[10px] uppercase tracking-wide text-muted-fg",children:e})}function Fc({ok:e}){return r.jsx("span",{className:De("inline-block size-2 rounded-full",e===null?"bg-muted-fg":e?"bg-emerald-500":"bg-red-500")})}const PD=x.forwardRef(function(t,s){const{render:o,className:l,disabled:c=!1,focusableWhenDisabled:u=!1,nativeButton:p=!0,style:m,...g}=t,{getButtonProps:h,buttonRef:b}=Hr({disabled:c,focusableWhenDisabled:u,native:p});return Et("button",t,{state:{disabled:c},ref:[s,b],props:[g,h]})}),Mj=e=>typeof e=="boolean"?`${e}`:e===0?"0":e,Oj=kc,$b=(e,t)=>s=>{var o;if(t?.variants==null)return Oj(e,s?.class,s?.className);const{variants:l,defaultVariants:c}=t,u=Object.keys(l).map(g=>{const h=s?.[g],b=c?.[g];if(h===null)return null;const _=Mj(h)||Mj(b);return l[g][_]}),p=s&&Object.entries(s).reduce((g,h)=>{let[b,_]=h;return _===void 0||(g[b]=_),g},{}),m=t==null||(o=t.compoundVariants)===null||o===void 0?void 0:o.reduce((g,h)=>{let{class:b,className:_,...k}=h;return Object.entries(k).every(E=>{let[j,w]=E;return Array.isArray(w)?w.includes({...c,...p}[j]):{...c,...p}[j]===w})?[...g,b,_]:g},[]);return Oj(e,u,m,s?.class,s?.className)},ID=$b("group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",{variants:{variant:{default:"bg-primary text-primary-foreground [a]:hover:bg-primary/80",outline:"border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80 aria-expanded:bg-secondary aria-expanded:text-secondary-foreground",ghost:"hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50",destructive:"bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",xs:"h-6 gap-1 rounded-[min(var(--radius-md),10px)] px-2 text-xs in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3",sm:"h-7 gap-1 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5",lg:"h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",icon:"size-8","icon-xs":"size-6 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg [&_svg:not([class*='size-'])]:size-3","icon-sm":"size-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg","icon-lg":"size-9"}},defaultVariants:{variant:"default",size:"default"}});function Ks({className:e,variant:t="default",size:s="default",...o}){return r.jsx(PD,{"data-slot":"button",className:Ct(ID({variant:t,size:s,className:e})),...o})}let zj=(function(e){return e.disabled="data-disabled",e.valid="data-valid",e.invalid="data-invalid",e.touched="data-touched",e.dirty="data-dirty",e.filled="data-filled",e.focused="data-focused",e})({});const BD={badInput:!1,customError:!1,patternMismatch:!1,rangeOverflow:!1,rangeUnderflow:!1,stepMismatch:!1,tooLong:!1,tooShort:!1,typeMismatch:!1,valid:null,valueMissing:!1},uc={valid:null,touched:!1,dirty:!1,filled:!1,focused:!1},UD={disabled:!1,...uc},Fb={valid(e){return e===null?null:e?{[zj.valid]:""}:{[zj.invalid]:""}}},HD={invalid:void 0,name:void 0,validityData:{state:BD,errors:[],error:"",value:"",initialValue:null},setValidityData:En,disabled:void 0,touched:uc.touched,setTouched:En,dirty:uc.dirty,setDirty:En,filled:uc.filled,setFilled:En,focused:uc.focused,setFocused:En,validate:()=>null,validationMode:"onSubmit",validationDebounceTime:0,shouldValidateOnChange:()=>!1,state:UD,markedDirtyRef:{current:!1},registerFieldControl:En,validation:{getValidationProps:(e,t=$t)=>t,inputRef:{current:null},registerInput:En,commit:async()=>{},change:En}},VD=x.createContext(HD);function Gc(e=!0){const t=x.useContext(VD);if(t.setValidityData===En&&!e)throw new Error(tn(28));return t}const qD=x.createContext({formRef:{current:{fields:new Map}},errors:{},clearErrors:En,validationMode:"onSubmit",submitAttemptedRef:{current:!1}});function Gb(){return x.useContext(qD)}const $D=x.createContext({controlId:void 0,registerControlId:En,labelId:void 0,setLabelId:En,messageIds:[],setMessageIds:En,getDescriptionProps:e=>e});function ep(){return x.useContext($D)}function FD(e,t,s,o=!0,l){const[c,u]=x.useState(),p=Ga(l?`${l}-label`:void 0),m=e??t??c;return ze(()=>{const g=e||t||!o?void 0:GD(s.current,p);c!==g&&u(g)}),m}function GD(e,t){const s=YD(e);if(s)return!s.id&&t&&(s.id=t),s.id||void 0}function YD(e){if(!e)return;const t=e.parentElement;if(t&&t.tagName==="LABEL")return t;const s=e.id;if(s){const l=e.nextElementSibling;if(l&&l.htmlFor===s)return l}const o=e.labels;return o&&o[0]}function tp(e={}){const{id:t,implicit:s=!1,controlRef:o}=e,{controlId:l,registerControlId:c}=ep(),u=Ga(t),p=s?l:void 0,m=Xn(()=>Symbol("labelable-control")),g=x.useRef(!1),h=x.useRef(t!=null),b=Ue(()=>{!g.current||c===En||(g.current=!1,c(m.current,void 0))});return ze(()=>{if(c===En)return;let _;if(s){const k=o?.current;gt(k)&&k.closest("label")!=null?_=t??null:_=p??u}else if(t!=null)h.current=!0,_=t;else if(h.current)_=u;else{b();return}if(_===void 0){b();return}g.current=!0,c(m.current,_)},[t,o,p,c,s,u,m,b]),x.useEffect(()=>b,[b]),l??u}function Yb(e,t,s,o,l=!0,c){const{registerFieldControl:u}=Gc(),p=x.useRef(null);p.current||(p.current=Symbol()),ze(()=>{const m=p.current;return!m||!l?void 0:(u(m,{controlRef:e,getValue:o,id:t,name:c,value:s}),()=>{u(m,void 0)})},[e,l,o,t,c,u,s])}const XD=x.forwardRef(function(t,s){const{render:o,className:l,id:c,name:u,value:p,disabled:m=!1,onValueChange:g,defaultValue:h,autoFocus:b=!1,style:_,...k}=t,{state:E,name:j,disabled:w,setTouched:S,setDirty:C,validityData:N,setFocused:R,setFilled:A,validationMode:T,validation:M}=Gc(),{clearErrors:z}=Gb(),P=w||m,D=j??u,I={...E,disabled:P},{labelId:B}=ep(),V=tp({id:c});ze(()=>{const K=p!=null;M.inputRef.current?.value||K&&p!==""?A(!0):K&&p===""&&A(!1)},[M.inputRef,A,p]);const H=x.useRef(null);ze(()=>{b&&H.current===Vn(mt(H.current))&&R(!0)},[b,R]);const[G]=Bl({controlled:p,default:h,name:"FieldControl",state:"value"}),q=p!==void 0,Y=q?G:void 0,X=Ue(()=>M.inputRef.current?.value);return Yb(M.inputRef,V,Y,X,!P,u),Et("input",t,{ref:[s,H],state:I,props:[{id:V,disabled:P,name:D,ref:M.inputRef,"aria-labelledby":B,autoFocus:b,...q?{value:Y}:{defaultValue:h},onChange(K){const L=K.currentTarget.value;g?.(L,nt(ds,K.nativeEvent)),C(L!==N.initialValue),A(L!==""),K.nativeEvent.defaultPrevented||(z(D),M.change(L))},onFocus(){R(!0)},onBlur(K){S(!0),R(!1),T==="onBlur"&&M.commit(K.currentTarget.value)},onKeyDown(K){K.currentTarget.tagName==="INPUT"&&K.key==="Enter"&&(S(!0),M.commit(K.currentTarget.value))}},k,K=>M.getValidationProps(P,K)],stateAttributesMapping:Fb})}),KD=x.forwardRef(function(t,s){return r.jsx(XD,{ref:s,...t})});function QD({className:e,type:t,...s}){return r.jsx(KD,{type:t,"data-slot":"input",className:Ct("h-8 w-full min-w-0 rounded-lg border border-input bg-transparent px-2.5 py-1 text-base transition-colors outline-none file:inline-flex file:h-6 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:pointer-events-none disabled:cursor-not-allowed disabled:bg-input/50 disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 md:text-sm dark:bg-input/30 dark:disabled:bg-input/80 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40",e),...s})}function ZD({className:e,...t}){return r.jsx("textarea",{"data-slot":"textarea",className:Ct("flex field-sizing-content min-h-16 w-full rounded-lg border border-input bg-transparent px-2.5 py-2 text-base transition-colors outline-none placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:bg-input/50 disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 md:text-sm dark:bg-input/30 dark:disabled:bg-input/80 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40",e),...t})}function WD(e){return Et(e.defaultTagName??"div",e,e)}const JD=$b("group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-all focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3!",{variants:{variant:{default:"bg-primary text-primary-foreground [a]:hover:bg-primary/80",secondary:"bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80",destructive:"bg-destructive/10 text-destructive focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:focus-visible:ring-destructive/40 [a]:hover:bg-destructive/20",outline:"border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground",ghost:"hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50",link:"text-primary underline-offset-4 hover:underline"}},defaultVariants:{variant:"default"}});function eL({className:e,variant:t="default",render:s,...o}){return WD({defaultTagName:"span",props:$n({className:Ct(JD({variant:t}),e)},o),render:s,state:{slot:"badge",variant:t}})}const fC=x.createContext(void 0);function tL(){const e=x.useContext(fC);if(e===void 0)throw new Error(tn(63));return e}let Dj=(function(e){return e.checked="data-checked",e.unchecked="data-unchecked",e.disabled="data-disabled",e.readonly="data-readonly",e.required="data-required",e.valid="data-valid",e.invalid="data-invalid",e.touched="data-touched",e.dirty="data-dirty",e.filled="data-filled",e.focused="data-focused",e})({});const pC={...Fb,checked(e){return e?{[Dj.checked]:""}:{[Dj.unchecked]:""}}},nL=x.forwardRef(function(t,s){const{checked:o,className:l,defaultChecked:c,"aria-labelledby":u,form:p,id:m,inputRef:g,name:h,nativeButton:b=!1,onCheckedChange:_,readOnly:k=!1,required:E=!1,disabled:j=!1,render:w,uncheckedValue:S,value:C,style:N,...R}=t,{clearErrors:A}=Gb(),{state:T,setTouched:M,setDirty:z,validityData:P,setFilled:D,setFocused:I,validationMode:B,disabled:V,name:H,validation:G}=Gc(),{labelId:q}=ep(),Y=V||j,X=H??h,$=x.useRef(null),K=Ys($,g,G.inputRef),L=x.useRef(null),F=Ga(),W=tp({id:m,implicit:!1,controlRef:L}),ee=b?void 0:W,[ce,ue]=Bl({controlled:o,default:!!c,name:"Switch",state:"checked"});Yb(L,F,ce,void 0,!Y,h),ze(()=>{$.current&&D($.current.checked)},[$,D]),Ob(ce,()=>{A(X),z(ce!==P.initialValue),D(ce),G.change(ce)});const{getButtonProps:se,buttonRef:oe}=Hr({disabled:Y,native:b}),fe=FD(u,q,$,!b,ee),Re={id:b?W:F,role:"switch","aria-checked":ce,"aria-readonly":k||void 0,"aria-required":E||void 0,"aria-labelledby":fe,onFocus(){Y||I(!0)},onBlur(){const je=$.current;!je||Y||(M(!0),I(!1),B==="onBlur"&&G.commit(je.checked))},onClick(je){if(k||Y)return;je.preventDefault();const Be=$.current;Be&&Be.dispatchEvent(new(Ft(Be)).PointerEvent("click",{bubbles:!0,shiftKey:je.shiftKey,ctrlKey:je.ctrlKey,altKey:je.altKey,metaKey:je.metaKey}))}},le=$n({checked:ce,disabled:Y,form:p,id:ee,name:X,required:E,style:X?dS:eb,tabIndex:-1,type:"checkbox","aria-hidden":!0,ref:K,onChange(je){if(je.nativeEvent.defaultPrevented)return;if(k){je.preventDefault();return}const Be=je.currentTarget.checked,Ve=nt(ds,je.nativeEvent);_?.(Be,Ve),!Ve.isCanceled&&ue(Be)},onFocus(){L.current?.focus()}},je=>G.getValidationProps(Y,je),C!==void 0?{value:C}:$t),de=x.useMemo(()=>({...T,checked:ce,disabled:Y,readOnly:k,required:E}),[T,ce,Y,k,E]),ke=Et("span",t,{state:de,ref:[s,L,oe],props:[Re,R,se,je=>G.getValidationProps(Y,je)],stateAttributesMapping:pC});return r.jsxs(fC.Provider,{value:de,children:[ke,!ce&&X&&S!==void 0&&r.jsx("input",{type:"hidden",form:p,name:X,value:S,disabled:Y}),r.jsx("input",{...le,suppressHydrationWarning:!0})]})}),aL=x.forwardRef(function(t,s){const{render:o,className:l,style:c,...u}=t,p=tL();return Et("span",t,{state:p,ref:s,stateAttributesMapping:pC,props:u})});function sL({className:e,size:t="default",...s}){return r.jsx(nL,{"data-slot":"switch","data-size":t,className:Ct("peer group/switch relative inline-flex shrink-0 items-center rounded-full border border-transparent transition-all outline-none after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 data-[size=default]:h-[18.4px] data-[size=default]:w-[32px] data-[size=sm]:h-[14px] data-[size=sm]:w-[24px] dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-checked:bg-primary data-unchecked:bg-input dark:data-unchecked:bg-input/80 data-disabled:cursor-not-allowed data-disabled:opacity-50",e),...s,children:r.jsx(aL,{"data-slot":"switch-thumb",className:"pointer-events-none block rounded-full bg-background ring-0 transition-transform group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 group-data-[size=default]/switch:data-checked:translate-x-[calc(100%-2px)] group-data-[size=sm]/switch:data-checked:translate-x-[calc(100%-2px)] dark:data-checked:bg-primary-foreground group-data-[size=default]/switch:data-unchecked:translate-x-0 group-data-[size=sm]/switch:data-unchecked:translate-x-0 dark:data-unchecked:bg-foreground"})})}function rL({className:e,...t}){return r.jsx(Sf,{role:"status","aria-label":"Loading",className:Ct("size-4 animate-spin",e),...t})}const mC=x.createContext(!1),gC=x.createContext(void 0);function Ro(e){const t=x.useContext(gC);if(e===!1&&t===void 0)throw new Error(tn(27));return t}const oL={...No,...Ws},hC=x.forwardRef(function(t,s){const{render:o,className:l,style:c,forceRender:u=!1,...p}=t,{store:m}=Ro(),g=m.useState("open"),h=m.useState("nested"),b=m.useState("mounted"),_=m.useState("transitionStatus");return Et("div",t,{state:{open:g,transitionStatus:_},ref:[m.context.backdropRef,s],stateAttributesMapping:oL,props:[{role:"presentation",hidden:!b,style:{userSelect:"none",WebkitUserSelect:"none"}},p],enabled:u||!h})}),np=x.forwardRef(function(t,s){const{render:o,className:l,style:c,disabled:u=!1,nativeButton:p=!0,...m}=t,{store:g}=Ro(),h=g.useState("open"),{getButtonProps:b,buttonRef:_}=Hr({disabled:u,native:p}),k={disabled:u};function E(j){h&&g.setOpen(!1,nt(G3,j.nativeEvent))}return Et("button",t,{state:k,ref:[s,_],props:[{onClick:E},m,b]})}),xC=x.forwardRef(function(t,s){const{render:o,className:l,style:c,id:u,...p}=t,{store:m}=Ro(),g=Ga(u);return m.useSyncedValueWithCleanup("descriptionElementId",g),Et("p",t,{ref:s,props:[{id:g},p]})});let lL=(function(e){return e.nestedDialogs="--nested-dialogs",e})({}),iL=(function(e){return e[e.open=po.open]="open",e[e.closed=po.closed]="closed",e[e.startingStyle=po.startingStyle]="startingStyle",e[e.endingStyle=po.endingStyle]="endingStyle",e.nested="data-nested",e.nestedDialogOpen="data-nested-dialog-open",e})({});const bC=x.createContext(void 0);function cL(){const e=x.useContext(bC);if(e===void 0)throw new Error(tn(26));return e}const uL={...No,...Ws,nestedDialogOpen(e){return e?{[iL.nestedDialogOpen]:""}:null}},vC=x.forwardRef(function(t,s){const{render:o,className:l,style:c,finalFocus:u,initialFocus:p,...m}=t,{store:g}=Ro(),h=g.useState("descriptionElementId"),b=g.useState("disablePointerDismissal"),_=g.useState("floatingRootContext"),k=g.useState("popupProps"),E=g.useState("modal"),j=g.useState("mounted"),w=g.useState("nested"),S=g.useState("nestedOpenDialogCount"),C=g.useState("open"),N=g.useState("openMethod"),R=g.useState("titleElementId"),A=g.useState("transitionStatus"),T=g.useState("role"),M=_.useState("floatingId"),z=m.id??M;cL(),gs({open:C,ref:g.context.popupRef,onComplete(){C&&g.context.onOpenChangeComplete?.(!0)}});const P=p===void 0?ZO(g.context.popupRef):p,D=S>0,I=g.useStateSetter("popupElement"),V=Et("div",t,{state:{open:C,nested:w,transitionStatus:A,nestedDialogOpen:D},props:[k,{id:z,"aria-labelledby":R??void 0,"aria-describedby":h??void 0,role:T,...qf,hidden:!j,onKeyDown(H){Zf.has(H.key)&&H.stopPropagation()},style:{[lL.nestedDialogs]:S}},m],ref:[s,g.context.popupRef,I],stateAttributesMapping:uL});return r.jsx(fb,{context:_,openInteractionType:N,disabled:!j,closeOnFocusOut:!b,initialFocus:P,returnFocus:u,modal:E!==!1,restoreFocus:"popup",children:V})}),_C=x.forwardRef(function(t,s){const{keepMounted:o=!1,...l}=t,{store:c}=Ro(),u=c.useState("mounted"),p=c.useState("modal"),m=c.useState("open");return u||o?r.jsx(bC.Provider,{value:o,children:r.jsxs(cb,{ref:s,...l,children:[u&&p===!0&&r.jsx(Mb,{ref:c.context.internalBackdropRef,inert:Yf(!m)}),t.children]})}):null});function dL(e){const{store:t,actionsRef:s}=e,o=t.useState("open");e4(t,o),hb(t);const{forceUnmount:l}=xb(o,t),c=x.useCallback(()=>{t.setOpen(!1,nt(Wx))},[t]);x.useImperativeHandle(s,()=>({unmount:l,close:c}),[l,c])}function fL({store:e,parentContext:t,isDrawer:s}){const o=e.useState("open"),l=e.useState("disablePointerDismissal"),c=e.useState("modal"),u=e.useState("popupElement"),p=e.useState("floatingRootContext"),[m,g]=x.useState(0),[h,b]=x.useState(0),_=m===0,k=Bf(p,{outsidePressEvent(){return e.context.internalBackdropRef.current||e.context.backdropRef.current?"intentional":{mouse:c==="trap-focus"?"sloppy":"intentional",touch:"sloppy"}},outsidePress(S){if(!e.context.outsidePressEnabledRef.current||"button"in S&&S.button!==0||"touches"in S&&S.touches.length!==1)return!1;const C=In(S);return _&&!l?c&&(e.context.internalBackdropRef.current||e.context.backdropRef.current)?e.context.internalBackdropRef.current===C||e.context.backdropRef.current===C||Ke(C,u)&&!C?.hasAttribute("data-base-ui-portal"):!0:!1},escapeKey:_});L2(o&&c===!0,u),e.useContextCallback("onNestedDialogOpen",(S,C)=>{g(S),b(C)}),e.useContextCallback("onNestedDialogClose",()=>{g(0),b(0)}),x.useEffect(()=>(t?.onNestedDialogOpen&&o&&t.onNestedDialogOpen(m+1,h+(s?1:0)),t?.onNestedDialogClose&&!o&&t.onNestedDialogClose(),()=>{t?.onNestedDialogClose&&o&&t.onNestedDialogClose()}),[s,o,m,h,t]);const E=k.reference??$t,j=k.trigger??$t,w=k.floating??$t;return bb(e,{activeTriggerProps:E,inactiveTriggerProps:j,popupProps:w,nestedOpenDialogCount:m,nestedOpenDrawerCount:h}),null}const pL={...yb,modal:Te(e=>e.modal),nested:Te(e=>e.nested),nestedOpenDialogCount:Te(e=>e.nestedOpenDialogCount),nestedOpenDrawerCount:Te(e=>e.nestedOpenDrawerCount),disablePointerDismissal:Te(e=>e.disablePointerDismissal),openMethod:Te(e=>e.openMethod),descriptionElementId:Te(e=>e.descriptionElementId),titleElementId:Te(e=>e.titleElementId),viewportElement:Te(e=>e.viewportElement),role:Te(e=>e.role)};class Xb extends Hf{constructor(t,s,o=!1){const l=new Uc,c=mL(t);c.floatingRootContext=n2(l,s,o),super(c,{popupRef:x.createRef(),backdropRef:x.createRef(),internalBackdropRef:x.createRef(),outsidePressEnabledRef:{current:!0},triggerElements:l,onOpenChange:void 0,onOpenChangeComplete:void 0},pL)}setOpen=(t,s)=>{if(s.preventUnmountOnClose=()=>{this.set("preventUnmountingOnClose",!0)},!t&&s.trigger==null&&this.state.activeTriggerId!=null&&(s.trigger=this.state.activeTriggerElement??void 0),this.context.onOpenChange?.(t,s),s.isCanceled)return;this.state.floatingRootContext.dispatchOpenChange(t,s);const o={open:t};gb(o,t,s.trigger),this.update(o)};static useStore(t,s){return WS(t,(l,c)=>new Xb(s,l,c),!0).store}}function mL(e={}){return{...vb(),modal:!0,disablePointerDismissal:!1,popupElement:null,viewportElement:null,descriptionElementId:void 0,titleElementId:void 0,openMethod:null,nested:!1,nestedOpenDialogCount:0,nestedOpenDrawerCount:0,role:"dialog",...e}}function gL(e,t="dialog"){const{children:s,open:o,defaultOpen:l=!1,onOpenChange:c,onOpenChangeComplete:u,disablePointerDismissal:p=!1,modal:m=!0,actionsRef:g,handle:h,triggerId:b,defaultTriggerId:_=null}=e,k=t==="drawer",E=t==="alert-dialog",j=E?!0:m,w=E||p,S=E?"alertdialog":"dialog",C=Ro(!0),R={modal:j,disablePointerDismissal:w,nested:!!C,role:S},A=Xb.useStore(h?.store,{open:l,openProp:o,activeTriggerId:_,triggerIdProp:b,...R});mb(()=>{const I=o===void 0&&A.state.open===!1&&l===!0?{open:!0,activeTriggerId:_}:null;E?A.update(I?{...R,...I}:R):I&&A.update(I)}),A.useControlledProp("openProp",o),A.useControlledProp("triggerIdProp",b),A.useSyncedValues(R),A.useContextCallback("onOpenChange",c),A.useContextCallback("onOpenChangeComplete",u);const T=A.useState("open"),M=A.useState("mounted"),z=A.useState("payload");dL({store:A,actionsRef:g});const P=T||M,D=x.useMemo(()=>({store:A}),[A]);return r.jsx(mC.Provider,{value:!1,children:r.jsxs(gC.Provider,{value:D,children:[P&&r.jsx(fL,{store:A,parentContext:C?.store.context,isDrawer:k}),typeof s=="function"?s({payload:z}):s]})})}function yC(e){const t=x.useContext(mC)?"drawer":"dialog";return gL(e,t)}const jC=x.forwardRef(function(t,s){const{render:o,className:l,style:c,id:u,...p}=t,{store:m}=Ro(),g=Ga(u);return m.useSyncedValueWithCleanup("titleElementId",g),Et("h2",t,{ref:s,props:[{id:g},p]})});function ox({...e}){return r.jsx(yC,{"data-slot":"dialog",...e})}function hL({...e}){return r.jsx(_C,{"data-slot":"dialog-portal",...e})}function xL({...e}){return r.jsx(np,{"data-slot":"dialog-close",...e})}function bL({className:e,...t}){return r.jsx(hC,{"data-slot":"dialog-overlay",className:Ct("fixed inset-0 isolate z-50 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",e),...t})}function lx({className:e,children:t,showCloseButton:s=!0,...o}){return r.jsxs(hL,{children:[r.jsx(bL,{}),r.jsxs(vC,{"data-slot":"dialog-content",className:Ct("fixed top-1/2 left-1/2 z-50 grid w-full max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-4 rounded-xl bg-popover p-4 text-sm text-popover-foreground ring-1 ring-foreground/10 duration-100 outline-none sm:max-w-sm data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",e),...o,children:[t,s&&r.jsxs(np,{"data-slot":"dialog-close",render:r.jsx(Ks,{variant:"ghost",className:"absolute top-2 right-2",size:"icon-sm"}),children:[r.jsx(ps,{}),r.jsx("span",{className:"sr-only",children:"Close"})]})]})]})}function ix({className:e,...t}){return r.jsx("div",{"data-slot":"dialog-header",className:Ct("flex flex-col gap-2",e),...t})}function Lj({className:e,showCloseButton:t=!1,children:s,...o}){return r.jsxs("div",{"data-slot":"dialog-footer",className:Ct("-mx-4 -mb-4 flex flex-col-reverse gap-2 rounded-b-xl border-t bg-muted/50 p-4 sm:flex-row sm:justify-end",e),...o,children:[s,t&&r.jsx(np,{render:r.jsx(Ks,{variant:"outline"}),children:"Close"})]})}function cx({className:e,...t}){return r.jsx(jC,{"data-slot":"dialog-title",className:Ct("font-heading text-base leading-none font-medium",e),...t})}function vL({className:e,...t}){return r.jsx(xC,{"data-slot":"dialog-description",className:Ct("text-sm text-muted-foreground *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground",e),...t})}const _L={primary:"default",secondary:"outline",ghost:"ghost",destructive:"destructive"},yL={sm:"sm",md:"default"};function me({variant:e="secondary",size:t="md",loading:s,className:o,children:l,disabled:c,type:u="button",...p}){return r.jsxs(Ks,{type:u,variant:_L[e],size:yL[t],disabled:c||s,className:o,...p,children:[s?r.jsx(ba,{size:14}):null,l]})}function Oe(e){return r.jsx(QD,{...e})}function Un(e){return r.jsx(ZD,{...e})}function jL(e){return r.jsx("select",{...e,className:De("h-8 w-full rounded-lg border border-input bg-transparent px-2.5 text-sm outline-none transition-colors focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50",e.className)})}function pe({label:e,hint:t,badge:s,children:o}){return r.jsxs("label",{className:"block space-y-1",children:[r.jsxs("span",{className:"flex items-center gap-1.5 text-xs font-medium text-muted-foreground",children:[e,s&&r.jsx("span",{className:"rounded bg-muted px-1 py-0.5 text-[9px] font-semibold uppercase tracking-wide text-muted-foreground",children:s})]}),o,t&&r.jsx("span",{className:"block text-[11px] text-muted-foreground/70",children:t})]})}function Qt({checked:e,onChange:t,label:s,disabled:o}){return r.jsxs("label",{className:De("inline-flex items-center gap-2",o&&"opacity-50"),children:[r.jsx(sL,{checked:e,onCheckedChange:t,disabled:o}),s&&r.jsx("span",{className:"text-sm",children:s})]})}function Fe({children:e,tone:t="muted",className:s}){const o=t==="danger"?"destructive":t==="muted"?"secondary":"outline",l={muted:"",danger:"",success:"text-emerald-400 border-emerald-500/30",warning:"text-amber-400 border-amber-500/30",info:"text-sky-400 border-sky-500/30"};return r.jsx(eL,{variant:o,className:De("rounded-md",l[t],s),children:e})}function An({open:e,onClose:t,title:s,description:o,children:l,footer:c,size:u="md"}){const p={sm:"sm:max-w-md",md:"sm:max-w-lg",lg:"sm:max-w-2xl",xl:"sm:max-w-4xl"};return r.jsx(ox,{open:e,onOpenChange:m=>{m||t()},children:r.jsxs(lx,{className:De("flex max-h-[88vh] w-full flex-col gap-0 p-0",p[u]),children:[(s||o)&&r.jsxs(ix,{className:"shrink-0 border-b border-border px-5 py-4 pr-12",children:[s&&r.jsx(cx,{children:s}),o&&r.jsx(vL,{children:o})]}),r.jsx("div",{className:"min-h-0 flex-1 overflow-auto px-5 py-4",children:l}),c&&r.jsx("div",{className:"flex shrink-0 items-center justify-end gap-2 border-t border-border px-5 py-4",children:c})]})})}function ba({size:e=14}){return r.jsx(rL,{style:{width:e,height:e}})}function xt({children:e}){return r.jsx("div",{className:"rounded-lg border border-dashed border-border bg-muted/20 px-4 py-6 text-center text-sm text-muted-foreground",children:e})}function ot({label:e="Cargando…"}){return r.jsxs("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[r.jsx(ba,{})," ",e]})}const wC=x.createContext(null);let wL=1;function kL({children:e}){const[t,s]=x.useState([]),o=x.useCallback((c,u)=>{const p=wL++;s(m=>[...m,{id:p,kind:c,message:u}]),setTimeout(()=>{s(m=>m.filter(g=>g.id!==p))},4500)},[]),l=x.useMemo(()=>({show:o,success:c=>o("success",c),error:c=>o("error",c),info:c=>o("info",c)}),[o]);return x.useEffect(()=>(window.__apxToast=l,()=>{delete window.__apxToast}),[l]),r.jsxs(wC.Provider,{value:l,children:[e,r.jsx("div",{className:"pointer-events-none fixed bottom-4 right-4 z-[100] flex w-80 max-w-[calc(100vw-2rem)] flex-col gap-2",children:t.map(c=>r.jsx("div",{className:De("pointer-events-auto overflow-hidden rounded-lg border bg-card px-3 py-2 text-sm shadow-lg",c.kind==="success"&&"border-emerald-500/40",c.kind==="error"&&"border-destructive/60",c.kind==="info"&&"border-border"),children:r.jsxs("div",{className:"flex items-start gap-2",children:[r.jsx("span",{className:De("mt-1 size-2 shrink-0 rounded-full",c.kind==="success"&&"bg-emerald-500",c.kind==="error"&&"bg-destructive",c.kind==="info"&&"bg-sky-500")}),r.jsx("span",{className:"flex-1 break-words",children:c.message})]})},c.id))})]})}function lt(){const e=x.useContext(wC);if(!e)throw new Error("useToast must be used inside <ToastProvider>");return e}function kC(){const{data:e,error:t,isLoading:s}=Qe("/health",()=>SD.get(),{refreshInterval:Ef.health});return{health:e,error:t,isLoading:s,isUp:!t&&!!e}}function SL(){const{data:e,error:t,isLoading:s,mutate:o}=Qe("/engines",()=>df.list());return{engines:e?.engines||[],error:t,isLoading:s,mutate:o}}function CL(){const{data:e,error:t,isLoading:s,mutate:o}=Qe("/telegram/status",()=>Tn.status(),{refreshInterval:Ef.telegramStatus});return{status:e,error:t,isLoading:s,mutate:o}}function Kb(){const{data:e,error:t,isLoading:s,mutate:o}=Qe("/telegram/channels",()=>Tn.channels.list());return{channels:e?.channels||[],error:t,isLoading:s,mutate:o}}function Qb(){const{data:e,error:t,isLoading:s,mutate:o}=Qe("/telegram/contacts",()=>Tn.contacts.list());return{contacts:e?.contacts||[],roles:e?.roles||{},channelOwners:e?.channel_owners||[],error:t,isLoading:s,mutate:o}}function Ha(e){return typeof e=="string"&&e.startsWith("*** set ***")}function Tr(e,t="(no seteada)"){return Ha(e)?e:t}function ql(e){if(typeof e!="string")return null;const t=e.match(/\(\.\.\.([^)]+)\)/);return t?t[1]:null}function SC({channel:e,onClose:t,onSaved:s}){const o=lt(),[l,c]=x.useState(!1),[u,p]=x.useState({name:""});x.useEffect(()=>{p(e?{...e,bot_token:""}:{name:""})},[e?.name]);const m=async()=>{if(!u.name?.trim()){o.error(f("telegram_channel_dialog.name_required"));return}c(!0);try{e&&e.name!==""&&e?.name===u.name?await Tn.channels.patch(e.name,u):await Tn.channels.upsert(u),o.success(f("telegram_channel_dialog.saved")),s()}catch(g){o.error(g.message)}finally{c(!1)}};return r.jsx(An,{open:!!e,onClose:t,title:e?.name?f("telegram_channel_dialog.edit_title",{name:e.name}):f("telegram_channel_dialog.new_title"),description:f("telegram_ui.channel_dialog_desc"),footer:r.jsxs(r.Fragment,{children:[r.jsx(me,{variant:"ghost",onClick:t,disabled:l,children:f("common.cancel")}),r.jsx(me,{variant:"primary",onClick:m,loading:l,children:f("common.save")})]}),children:r.jsxs("div",{className:"space-y-3",children:[r.jsx(pe,{label:f("telegram_channel_dialog.name_label"),children:r.jsx(Oe,{value:u.name,onChange:g=>p({...u,name:g.target.value}),disabled:!!e?.name})}),r.jsx(pe,{label:f("telegram_channel_dialog.token_label"),hint:e?.bot_token?Tr(e.bot_token):f("telegram_ui.bot_token_hint"),children:r.jsx(Oe,{type:"password",value:u.bot_token||"",onChange:g=>p({...u,bot_token:g.target.value}),placeholder:e?.bot_token?Tr(e.bot_token):""})}),r.jsx(pe,{label:f("telegram_channel_dialog.chat_id"),children:r.jsx(Oe,{value:u.chat_id||"",onChange:g=>p({...u,chat_id:g.target.value})})}),r.jsx(pe,{label:f("telegram_channel_dialog.project_label"),hint:f("telegram_channel_dialog.project_hint"),children:r.jsx(Oe,{value:u.project||"",onChange:g=>p({...u,project:g.target.value})})}),r.jsx(pe,{label:f("telegram_channel_dialog.route_label"),hint:f("telegram_channel_dialog.route_hint"),children:r.jsx(Oe,{value:u.route_to_agent||"",onChange:g=>p({...u,route_to_agent:g.target.value})})}),r.jsx(pe,{label:f("telegram_channel_dialog.owner_label"),hint:f("telegram_channel_dialog.owner_hint"),children:r.jsx(Oe,{value:u.owner_user_id!=null?String(u.owner_user_id):"",onChange:g=>{const h=g.target.value.trim();p({...u,owner_user_id:h===""?void 0:/^\d+$/.test(h)?Number(h):h})},placeholder:"889721252"})}),r.jsx(Qt,{checked:!!u.respond_with_engine,onChange:g=>p({...u,respond_with_engine:g}),label:f("telegram_channel_dialog.respond_label")})]})})}function CC({channel:e,onClose:t}){const s=lt(),[o,l]=x.useState(f("admin.telegram_default_message")),[c,u]=x.useState(!1),p=async()=>{if(!(!o.trim()||!e)){u(!0);try{await Tn.send({text:o,channel:e.name}),s.success(f("telegram_ui.message_sent")),t()}catch(m){s.error(m.message)}finally{u(!1)}}};return r.jsx(An,{open:!!e,onClose:t,title:e?f("telegram_send_dialog.title",{name:e.name}):"",description:e?f("telegram_ui.send_chat_id",{id:e.chat_id||"—"}):"",footer:r.jsxs(r.Fragment,{children:[r.jsx(me,{variant:"ghost",onClick:t,disabled:c,children:f("common.cancel")}),r.jsx(me,{variant:"primary",onClick:p,loading:c,children:f("chat_ui.send")})]}),children:r.jsx(pe,{label:f("telegram_ui.message_label"),children:r.jsx(Un,{rows:4,value:o,onChange:m=>l(m.target.value)})})})}function EC({bare:e=!1}){const t=lt(),{contacts:s,roles:o,channelOwners:l,isLoading:c,mutate:u}=Qb(),p=new Set(l.filter(_=>_.owner_user_id!=null).map(_=>String(_.owner_user_id))),m=Array.from(new Set(["owner","guest",...Object.keys(o)])),g=async(_,k)=>{try{await Tn.contacts.patch(_.user_id,{role:k}),t.success(f("telegram_ui.role_assigned",{name:_.name||_.user_id,role:k})),u()}catch(E){t.error(E.message)}},h=async _=>{if(confirm(f("telegram_contacts.delete_confirm",{name:_.name||String(_.user_id)})))try{await Tn.contacts.remove(_.user_id),t.success(f("telegram_contacts.removed")),u()}catch(k){t.error(k.message)}},b=r.jsxs(r.Fragment,{children:[c&&r.jsx(ot,{}),!c&&s.length===0&&r.jsx(xt,{children:f("telegram_contacts.empty")}),s.length>0&&r.jsx("ul",{className:"space-y-2 text-sm",children:s.map(_=>{const k=p.has(String(_.user_id)),E=k?"owner":_.role||"guest";return r.jsxs("li",{className:"rounded-md border border-border bg-muted/30 px-3 py-2",children:[r.jsxs("div",{className:"flex items-center justify-between gap-2",children:[r.jsxs("div",{className:"min-w-0",children:[r.jsx("span",{className:"font-medium",children:_.name||"—"}),_.username&&r.jsxs("span",{className:"ml-2 text-xs text-muted-fg",children:["@",_.username]}),k&&r.jsx(Fe,{tone:"success",children:f("telegram_contacts.owner_badge")})]}),r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx(et,{content:f(k?"telegram_contacts.owner_hint":"telegram_contacts.assign_role"),children:r.jsx(jL,{value:E,disabled:k,onChange:j=>g(_,j.target.value),children:m.map(j=>r.jsx("option",{value:j,children:j},j))})}),r.jsx(me,{size:"sm",variant:"destructive",onClick:()=>h(_),children:f("common.delete")})]})]}),r.jsxs("div",{className:"mt-1 grid grid-cols-3 gap-2 text-xs text-muted-fg",children:[r.jsxs("span",{children:["user_id: ",String(_.user_id)]}),r.jsxs("span",{children:[f("telegram_contacts.last_seen")," ",_.last_seen?_.last_seen.slice(0,10):"—"]}),r.jsx("span",{children:EL(o[E])})]})]},String(_.user_id))})})]});return e?b:r.jsx(Ye,{title:f("telegram_contacts.title"),description:f("telegram_contacts.desc"),children:b})}function EL(e){return!e||e.tools===void 0?"":e.tools==="*"?f("telegram_contacts.tools_all"):Array.isArray(e.tools)?e.tools.length?`${f("telegram_contacts.tools_label")} ${e.tools.join(", ")}`:f("telegram_contacts.tools_none"):""}function NL(){const e=Qn(),[t,s]=jf(),o=lt(),{health:l,isUp:c}=kC(),{projects:u,isLoading:p,mutate:m}=$c(),{engines:g,isLoading:h}=SL(),{status:b,mutate:_}=CL(),{channels:k,isLoading:E,mutate:j}=Kb(),[w,S]=x.useState(null),[C,N]=x.useState(null),R=async()=>{try{await Hl.reload(),o.success(f("admin.reload_success"))}catch(z){o.error(z.message)}},A=async()=>{try{b?.enabled?(await Tn.stop(),o.info(f("admin.telegram_polling_stopped"))):(await Tn.start(),o.success(f("admin.telegram_polling_started"))),_()}catch(z){o.error(z.message)}},T=async z=>{if(confirm(f("telegram_channels.delete_confirm",{name:z})))try{await Tn.channels.remove(z),o.success(f("admin.telegram_channel_removed")),j()}catch(P){o.error(P.message)}},M=async(z,P)=>{if(confirm(f("admin.unregister_confirm",{label:P})))try{await ra.remove(z),o.success(f("project.unregistered")),m()}catch(D){o.error(D.message)}};return r.jsxs("div",{className:"mx-auto max-w-5xl space-y-6 p-6","data-testid":"screen-admin",children:[r.jsxs("header",{className:"flex items-end justify-between",children:[r.jsxs("div",{children:[r.jsx("h1",{className:"text-2xl font-bold tracking-tight",children:f("admin.title")}),r.jsx("p",{className:"text-sm text-muted-fg",children:f("admin.subtitle")})]}),r.jsxs("div",{className:"flex gap-2",children:[r.jsx(et,{content:f("daemon.reload_hint"),children:r.jsxs(me,{size:"sm",onClick:R,children:[f("common.reload")," config"]})}),r.jsxs(me,{size:"sm",variant:"primary",onClick:()=>{const z=new URLSearchParams(t);z.set("action","add-project"),s(z)},children:[r.jsx(rn,{size:14})," ",f("nav.project")]})]})]}),r.jsx(Ye,{title:f("daemon.version"),children:r.jsxs("div",{className:"grid grid-cols-3 gap-3 text-sm",children:[r.jsx(Yg,{label:f("daemon.version"),value:l?.version||"—"}),r.jsx(Yg,{label:f("daemon.uptime"),value:l?`${l.uptime_s}s`:"—"}),r.jsx(Yg,{label:f("daemon.status"),value:f(c?"daemon.running":"daemon.down"),ok:c})]})}),r.jsxs(Ye,{title:f("admin.engines_title"),description:f("admin.engines_subtitle"),children:[h&&r.jsx(ot,{}),r.jsx("div",{className:"flex flex-wrap gap-1.5",children:g.map(z=>r.jsx(Fe,{tone:"info",children:z},z))})]}),r.jsxs(Ye,{title:f("admin.telegram_title"),description:f("admin.telegram_subtitle"),action:r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx(Qt,{checked:!!b?.enabled,onChange:A,label:b?.enabled?f("admin.telegram_polling_on"):f("admin.telegram_polling_off")}),r.jsxs(me,{size:"sm",onClick:()=>S({name:""}),children:[r.jsx(rn,{size:14})," ",f("admin.telegram_add_channel")]})]}),children:[E&&r.jsx(ot,{}),k.length===0&&r.jsx(xt,{children:f("common.none_yet")}),r.jsx("ul",{className:"space-y-2 text-sm",children:k.map(z=>r.jsxs("li",{className:"rounded-md border border-border bg-muted/30 px-3 py-2",children:[r.jsxs("div",{className:"flex items-center justify-between gap-2",children:[r.jsx("span",{className:"font-medium",children:z.name}),r.jsxs("div",{className:"flex items-center gap-2",children:[z.project&&r.jsxs(Fe,{tone:"success",children:["project = ",z.project]}),r.jsxs(me,{size:"sm",variant:"ghost",onClick:()=>N(z),children:[r.jsx(Fa,{size:13})," ",f("admin.telegram_send_test")]}),r.jsx(me,{size:"sm",variant:"secondary",onClick:()=>S(z),children:f("common.edit")}),r.jsx(me,{size:"sm",variant:"destructive",onClick:()=>T(z.name),children:f("common.delete")})]})]}),r.jsxs("div",{className:"mt-1 grid grid-cols-3 gap-2 text-xs text-muted-fg",children:[r.jsxs("span",{children:["chat_id: ",z.chat_id||"—"]}),r.jsxs("span",{children:["route_to_agent: ",z.route_to_agent||"default APX"]}),r.jsxs("span",{children:["engine: ",z.respond_with_engine?f("admin.engine_badge"):f("admin.engine_badge_no")]})]})]},z.name))})]}),r.jsx(EC,{}),r.jsxs(Ye,{title:f("admin.projects_title"),description:f("admin.projects_subtitle"),children:[p&&r.jsx(ot,{}),r.jsx("ul",{className:"divide-y divide-border",children:u.map(z=>r.jsxs("li",{className:"flex items-center gap-3 py-2",children:[r.jsxs("span",{className:"w-10 font-mono text-xs text-muted-fg",children:["#",z.id]}),r.jsxs("button",{type:"button",className:"flex-1 text-left hover:underline",onClick:()=>e(`/p/${z.id}`),children:[r.jsx("span",{className:"font-medium",children:z.name||z.path.split("/").pop()}),r.jsx("span",{className:"ml-2 text-xs text-muted-fg",children:z.path})]}),r.jsxs(Fe,{children:[z.agents??0," ",f("admin.agents_badge")]}),Number(z.id)!==0&&r.jsx(me,{size:"sm",variant:"destructive",onClick:()=>M(String(z.id),z.name||z.path),children:f("admin.unregister")})]},z.id))})]}),r.jsx(SC,{channel:w,onClose:()=>S(null),onSaved:()=>{S(null),j()}}),r.jsx(CC,{channel:C,onClose:()=>N(null)})]})}function Yg({label:e,value:t,ok:s}){return r.jsxs("div",{className:"rounded-md border border-border bg-muted/30 p-3",children:[r.jsx("div",{className:"text-xs uppercase tracking-wide text-muted-fg",children:e}),r.jsxs("div",{className:"mt-1 flex items-center gap-2 text-base font-medium",children:[s!==void 0&&r.jsx(Fc,{ok:s}),r.jsx("span",{children:t})]})]})}const NC=x.createContext(null),RC=x.createContext(null),TC=x.createContext(""),AC=x.createContext(null),MC=x.createContext(null),OC=x.createContext(null);function RL({children:e}){const[t,s]=x.useState(null),[o,l]=x.useState(""),[c,u]=x.useState(null);return r.jsx(RC.Provider,{value:s,children:r.jsx(NC.Provider,{value:t,children:r.jsx(AC.Provider,{value:l,children:r.jsx(TC.Provider,{value:o,children:r.jsx(OC.Provider,{value:u,children:r.jsx(MC.Provider,{value:c,children:e})})})})})})}function TL(){return x.useContext(NC)}function AL(e,t){const s=x.useContext(RC);x.useEffect(()=>(s?.({collapsed:e,toggle:t}),()=>s?.(null)),[e,t,s])}function ML(){return x.useContext(TC)}function OL(e){const t=x.useContext(AC);x.useEffect(()=>(t?.(e),()=>t?.("")),[e,t])}function zL(){return x.useContext(MC)}function DL(e){const t=x.useContext(OC);x.useEffect(()=>(t?.(e),()=>t?.(null)),[e,t])}function zC({sections:e,active:t,onChange:s,collapsed:o,onToggleCollapse:l,actions:c,contentClassName:u,testId:p,children:m}){return AL(o,l),r.jsxs("div",{className:"flex h-full",children:[r.jsx(Qz,{sections:e,active:t,onChange:s,collapsed:o}),r.jsxs("div",{className:"flex min-w-0 flex-1 flex-col overflow-hidden",children:[c?r.jsx("div",{className:"flex shrink-0 items-center justify-end gap-2 px-6 pt-3",children:c}):null,r.jsx("div",{className:De("flex-1 min-h-0 overflow-y-auto",u),"data-testid":p,children:m})]})]})}const Pj={happy:{eyes:["◕","◕"],mouth:"‿"},wave:{eyes:["◕","◕"],mouth:"▽",top:"·"},confused:{eyes:["◑","◐"],mouth:"o",top:"?"},sad:{eyes:["╥","╥"],mouth:"◠"},excited:{eyes:["★","★"],mouth:"▽",top:"✦"},sleeping:{eyes:["−","−"],mouth:"‿",top:"z z"}};function DC({mood:e="happy",className:t}){const s=Pj[e]??Pj.happy,[o,l]=s.eyes,c="text-emerald-700 dark:text-emerald-600/70";return r.jsxs("div",{"aria-hidden":!0,className:Ct("select-none whitespace-pre font-mono leading-none text-emerald-400",t),children:[s.top&&r.jsx("div",{children:r.jsx("span",{className:c,children:` ${s.top}`})}),r.jsx("div",{children:" ▄███████▄"}),r.jsxs("div",{children:[" █ ",r.jsx("span",{className:c,children:"██"})," ",r.jsx("span",{className:c,children:"██"})," █"]}),r.jsx("div",{children:` █ ${o} ${l} █`}),r.jsx("div",{children:` █ ${s.mouth} █`}),r.jsx("div",{children:" ▀███████▀"})]})}function LC({mood:e="confused",title:t,titleClassName:s,message:o,action:l,className:c,testId:u}){return r.jsx("div",{className:Ct("grid h-full place-items-center p-8",c),"data-testid":u,children:r.jsxs("div",{className:"flex flex-col items-center text-center",children:[r.jsx(DC,{mood:e,className:"mb-6 text-sm"}),t!=null&&r.jsx("div",{className:Ct("font-mono font-semibold leading-none tracking-tight text-foreground",s),children:t}),o!=null&&r.jsx("p",{className:"mt-4 max-w-sm text-sm text-muted-fg",children:o}),l&&r.jsx("div",{className:"mt-6",children:l})]})})}function Ij({pid:e}){const t=Qe(`/projects/${e}/tasks?state=open`,()=>Cr.list(e)),s=Qe(`/projects/${e}/routines`,()=>Sr.list(e)),o=Qe(`/projects/${e}/agents`,()=>sn.list(e)),l=Qe(`/projects/${e}/mcps`,()=>Er.list(e));return r.jsxs("div",{className:"grid grid-cols-2 gap-4 md:grid-cols-3",children:[r.jsx(Zi,{title:f("project.overview.tasks_open"),value:t.data?.length??"…",href:`/p/${e}/tasks`,icon:Ol}),r.jsx(Zi,{title:f("project.overview.routines"),value:s.data?.length??"…",href:`/p/${e}/routines`,icon:Ml}),r.jsx(Zi,{title:f("project.overview.agents"),value:o.data?.length??"…",href:`/p/${e}/agents`,icon:hn}),r.jsx(Zi,{title:f("project.overview.mcps"),value:l.data?.length??"…",href:`/p/${e}/mcps`,icon:Lh}),r.jsx(Zi,{title:f("project.overview.chat"),value:f("project.overview.chat_value"),href:`/p/${e}/chat`,icon:Fd})]})}function Zi({title:e,value:t,href:s,icon:o}){return r.jsxs(Sk,{to:s,className:"flex items-center gap-3 rounded-xl border border-border bg-card p-4 hover:bg-accent/40",children:[r.jsx("span",{className:"grid size-10 place-items-center rounded-lg bg-muted text-muted-fg",children:r.jsx(o,{size:20})}),r.jsxs("div",{children:[r.jsx("div",{className:"text-xs uppercase tracking-wide text-muted-fg",children:e}),r.jsx("div",{className:"text-2xl font-semibold",children:t})]})]})}function LL(){const e=Qn(),{projects:t,isLoading:s}=$c();return r.jsxs(Ye,{title:f("base.workspaces_title"),description:f("base.workspaces_desc"),action:r.jsxs(me,{size:"sm",variant:"primary",onClick:()=>e("/p/0/workspaces?action=add-project"),children:[r.jsx(rn,{size:14})," ",f("base.workspaces_new")]}),children:[s&&r.jsx(ot,{}),!s&&t.length===0&&r.jsx(xt,{children:f("base.workspaces_empty")}),r.jsx("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-3",children:t.map(o=>{const l=String(o.id)==="0",c=l?f("base.title"):o.name||o.path.split("/").pop()||String(o.id);return r.jsxs("button",{type:"button",onClick:()=>e(`/p/${o.id}`),className:"flex cursor-pointer flex-col gap-2 rounded-xl border border-border bg-card p-4 text-left transition-colors hover:border-muted-fg/50",children:[r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx(Dk,{className:"size-4 text-muted-fg"}),r.jsx("span",{className:"truncate text-sm font-semibold",children:c}),r.jsx(Fe,{tone:l?"success":"info",children:l?f("base.title"):dC(o.kind)})]}),r.jsx("p",{className:"truncate font-mono text-[10px] text-muted-fg",children:o.path})]},o.id)})})]})}const PC=x.createContext(null),IC=x.createContext(null);function hs(){const e=x.useContext(PC);if(e===null)throw new Error(tn(60));return e}function BC(){const e=x.useContext(IC);if(e===null)throw new Error(tn(61));return e}const PL=(e,t)=>Object.is(e,t);function jo(e,t,s){return e==null||t==null?Object.is(e,t):s(e,t)}function IL(e,t,s){return!e||e.length===0?!1:e.some(o=>o===void 0?!1:jo(t,o,s))}function _c(e,t,s){return!e||e.length===0?-1:e.findIndex(o=>o===void 0?!1:jo(o,t,s))}function BL(e,t,s){return e.filter(o=>!jo(t,o,s))}function ux(e){if(e==null)return"";if(typeof e=="string")return e;try{return JSON.stringify(e)}catch{return String(e)}}function UC(e){return e!=null&&e.length>0&&typeof e[0]=="object"&&e[0]!=null&&"items"in e[0]}function UL(e){if(!Array.isArray(e))return e!=null&&"null"in e;const t=e;if(UC(t)){for(const s of t)for(const o of s.items)if(o&&o.value==null&&o.label!=null)return!0;return!1}for(const s of t)if(s&&s.value==null&&s.label!=null)return!0;return!1}function HC(e,t){if(t&&e!=null)return t(e)??"";if(e&&typeof e=="object"){if("label"in e&&e.label!=null)return String(e.label);if("value"in e)return String(e.value)}return ux(e)}function co(e,t){return t&&e!=null?t(e)??"":e&&typeof e=="object"&&"value"in e&&"label"in e?ux(e.value):ux(e)}function VC(e,t,s){function o(){return HC(e,s)}if(s&&e!=null)return s(e);if(e&&typeof e=="object"&&"label"in e&&e.label!=null)return e.label;if(t&&!Array.isArray(t))return t[e]??o();if(Array.isArray(t)){const l=t,c=UC(l)?l.flatMap(u=>u.items):l;if(e==null||typeof e!="object"){const u=c.find(p=>p.value===e);return u&&u.label!=null?u.label:o()}if("value"in e){const u=c.find(p=>p&&p.value===e.value);if(u&&u.label!=null)return u.label}}return o()}function HL(e,t,s){return e.reduce((o,l,c)=>(c>0&&o.push(", "),o.push(r.jsx(x.Fragment,{children:VC(l,t,s)},c)),o),[])}const Je={id:Te(e=>e.id),labelId:Te(e=>e.labelId),modal:Te(e=>e.modal),multiple:Te(e=>e.multiple),items:Te(e=>e.items),itemToStringLabel:Te(e=>e.itemToStringLabel),itemToStringValue:Te(e=>e.itemToStringValue),isItemEqualToValue:Te(e=>e.isItemEqualToValue),value:Te(e=>e.value),hasSelectedValue:Te(e=>{const{value:t,multiple:s,itemToStringValue:o}=e;return t==null?!1:s&&Array.isArray(t)?t.length>0:co(t,o)!==""}),hasNullItemLabel:Te((e,t)=>t?UL(e.items):!1),open:Te(e=>e.open),mounted:Te(e=>e.mounted),forceMount:Te(e=>e.forceMount),transitionStatus:Te(e=>e.transitionStatus),openMethod:Te(e=>e.openMethod),activeIndex:Te(e=>e.activeIndex),selectedIndex:Te(e=>e.selectedIndex),isActive:Te((e,t)=>e.activeIndex===t),isSelected:Te((e,t)=>{const s=e.isItemEqualToValue,o=e.value;return e.multiple?Array.isArray(o)&&o.some(l=>jo(t,l,s)):jo(t,o,s)}),isSelectedByFocus:Te((e,t)=>e.selectedIndex===t),popupProps:Te(e=>e.popupProps),triggerProps:Te(e=>e.triggerProps),triggerElement:Te(e=>e.triggerElement),positionerElement:Te(e=>e.positionerElement),listElement:Te(e=>e.listElement),popupSide:Te(e=>e.popupSide),scrollUpArrowVisible:Te(e=>e.scrollUpArrowVisible),scrollDownArrowVisible:Te(e=>e.scrollDownArrowVisible),hasScrollArrows:Te(e=>e.hasScrollArrows)};function VL(e,t,s=(o,l)=>o===l){return e.length===t.length&&e.every((o,l)=>s(o,t[l]))}function dc(e,t=Number.MIN_SAFE_INTEGER,s=Number.MAX_SAFE_INTEGER){return Math.max(t,Math.min(e,s))}const Ua=1;function Zb(e,t){return Math.max(0,e-t)}function pf(e,t){if(t<=0)return 0;const s=dc(e,0,t),o=s,l=t-s,c=o<=Ua,u=l<=Ua;return c&&u?o<=l?0:t:c?0:u?t:s}function qL(e){const{id:t,value:s,defaultValue:o=null,onValueChange:l,open:c,defaultOpen:u=!1,onOpenChange:p,name:m,form:g,autoComplete:h,disabled:b=!1,readOnly:_=!1,required:k=!1,modal:E=!0,actionsRef:j,inputRef:w,onOpenChangeComplete:S,items:C,multiple:N=!1,itemToStringLabel:R,itemToStringValue:A,isItemEqualToValue:T=PL,highlightItemOnHover:M=!0,children:z}=e,{clearErrors:P}=Gb(),{setDirty:D,setTouched:I,setFocused:B,validityData:V,setFilled:H,name:G,disabled:q,validation:Y,validationMode:X}=Gc(),$=tp({id:t}),K=q||b,L=G??m,[F,W]=Bl({controlled:s,default:N?o??Gs:o,name:"Select",state:"value"}),[ee,ce]=Bl({controlled:c,default:u,name:"Select",state:"open"}),ue=x.useRef([]),se=x.useRef([]),oe=x.useRef(null),fe=x.useRef(null),Re=x.useRef(0),le=x.useRef(null),de=x.useRef([]),ke=x.useRef(!1),je=x.useRef(null),Be=x.useRef(null),Ve=x.useRef({allowSelectedMouseUp:!1,allowUnselectedMouseUp:!1,dragY:0}),we=x.useRef(!1),{mounted:Ee,setMounted:_e,transitionStatus:Ce}=Wl(ee),{openMethod:Le,triggerProps:Pe}=H2(ee),Ie=Xn(()=>new KS({id:$,labelId:void 0,modal:E,multiple:N,itemToStringLabel:R,itemToStringValue:A,isItemEqualToValue:T,value:F,open:ee,mounted:Ee,transitionStatus:Ce,items:C,forceMount:!1,openMethod:null,activeIndex:null,selectedIndex:null,popupProps:{},triggerProps:{},triggerElement:null,positionerElement:null,listElement:null,popupSide:null,scrollUpArrowVisible:!1,scrollDownArrowVisible:!1,hasScrollArrows:!1})).current,ae=tt(Ie,Je.activeIndex),be=tt(Ie,Je.selectedIndex),$e=tt(Ie,Je.triggerElement),Ne=tt(Ie,Je.positionerElement),Me=P4(Le),Ze=Le??Me??null,st=x.useMemo(()=>N?"":co(F,A),[N,F,A]),_t=x.useMemo(()=>N&&Array.isArray(F)?F.map(ct=>co(ct,A)):co(F,A),[N,F,A]),ve=cn(Ie.state.triggerElement),Ae=Ue(()=>_t);Yb(ve,$,F,Ae,!K,m);const He=x.useRef(F),Xe=N?Array.isArray(F)&&F.length>0:F!=null&&co(F,A)!=="";ze(()=>{F!==He.current&&Ie.set("forceMount",!0)},[Ie,F]),ze(()=>{H(Xe)},[Xe,H]),ze(function(){const zt=de.current;let pn;if(N){const kn=Array.isArray(F)?F:[];if(kn.length===0)pn=null;else{const yn=kn[kn.length-1],Ht=_c(zt,yn,T);pn=Ht===-1?null:Ht}}else{const kn=_c(zt,F,T);pn=kn===-1?null:kn}pn===null&&(Be.current=null),!ee&&Ie.set("selectedIndex",pn)},[Xe,N,ee,F,de,T,Ie,Be]);function rt(ct){const zt=V.initialValue;return Array.isArray(ct)&&Array.isArray(zt)?!VL(ct,zt,(pn,kn)=>jo(pn,kn,T)):ct!==zt}Ob(F,()=>{P(L),D(rt(F)),Y.change(F)});const nn=Ue((ct,zt)=>{p?.(ct,zt),!zt.isCanceled&&(ce(ct),!ct&&(zt.reason===bo||zt.reason===Lf)&&(I(!0),B(!1),X==="onBlur"&&Y.commit(F)))}),un=Ue(()=>{_e(!1),Ie.update({activeIndex:null,openMethod:null}),S?.(!1)});gs({enabled:!j,open:ee,ref:oe,onComplete(){ee||un()}}),x.useImperativeHandle(j,()=>({unmount:un}),[un]);const pt=Ue((ct,zt)=>{l?.(ct,zt),!zt.isCanceled&&W(ct)}),Nt=Ue(()=>{const ct=Ie.state.listElement||oe.current;if(!ct)return;const zt=Zb(ct.scrollHeight,ct.clientHeight),pn=pf(ct.scrollTop,zt),kn=pn>0,yn=pn<zt;Ie.state.scrollUpArrowVisible!==kn&&Ie.set("scrollUpArrowVisible",kn),Ie.state.scrollDownArrowVisible!==yn&&Ie.set("scrollDownArrowVisible",yn)}),an=s2({open:ee,onOpenChange:nn,elements:{reference:$e,floating:Ne}}),Zt=IS(an,{enabled:!_&&!K,event:"mousedown"}),Wt=Bf(an),Gt=c2(an,{enabled:!_&&!K,listRef:ue,activeIndex:ae,selectedIndex:be,disabledIndices:Gs,onNavigate(ct){ct===null&&!ee||Ie.set("activeIndex",ct)},focusItemOnHover:M}),dn=u2(an,{enabled:!_&&!K&&(ee||!N),listRef:se,activeIndex:ae,selectedIndex:be,disabledIndices:ct=>F2(ue.current[ct]),onMatch(ct){ee?Ie.set("activeIndex",ct):pt(de.current[ct],nt("none"))},onTyping(ct){ke.current=ct}}),Wn=x.useMemo(()=>{const ct=$n(dn.reference,Gt.reference,Wt.reference,Zt.reference,Pe);return $&&(ct.id=$),ct},[Zt.reference,dn.reference,Gt.reference,Wt.reference,Pe,$]),ca=x.useMemo(()=>$n(qf,dn.floating,Gt.floating,Wt.floating),[dn.floating,Gt.floating,Wt.floating]),_a=Gt.item??$t;mb(()=>{Ie.update({popupProps:ca,triggerProps:Wn})}),ze(()=>{Ie.update({id:$,modal:E,multiple:N,value:F,open:ee,mounted:Ee,transitionStatus:Ce,popupProps:ca,triggerProps:Wn,items:C,itemToStringLabel:R,itemToStringValue:A,isItemEqualToValue:T,openMethod:Ze})},[Ie,$,E,N,F,ee,Ee,Ce,ca,Wn,C,R,A,T,Ze]);const fn=x.useMemo(()=>({store:Ie,name:L,required:k,disabled:K,readOnly:_,multiple:N,highlightItemOnHover:M,setValue:pt,setOpen:nn,listRef:ue,popupRef:oe,scrollHandlerRef:fe,handleScrollArrowVisibility:Nt,scrollArrowsMountedCountRef:Re,itemProps:_a,valueRef:le,valuesRef:de,labelsRef:se,typingRef:ke,selectionRef:Ve,firstItemTextRef:je,selectedItemTextRef:Be,validation:Y,onOpenChangeComplete:S,alignItemWithTriggerActiveRef:we,initialValueRef:He}),[Ie,L,k,K,_,N,M,pt,nn,_a,Y,S,Nt]),ya=Ys(w,Y.inputRef),xs=N&&Array.isArray(F)&&F.length>0,La=N?void 0:L,bs=x.useMemo(()=>!N||!Array.isArray(F)||!L?null:F.map(ct=>{const zt=co(ct,A);return r.jsx("input",{type:"hidden",form:g,name:L,value:zt,disabled:K},zt)}),[N,F,g,L,A,K]);return r.jsx(PC.Provider,{value:fn,children:r.jsxs(IC.Provider,{value:an,children:[z,r.jsx("input",{...Y.getValidationProps(K,{onFocus(){Ie.state.triggerElement?.focus({focusVisible:!0})},onChange(ct){if(ct.nativeEvent.defaultPrevented||K||_)return;const zt=ct.currentTarget.value,pn=nt(ds,ct.nativeEvent);function kn(){if(N)return;const yn=zt.toLowerCase();let Ht=de.current.findIndex(Ya=>co(Ya,A).toLowerCase()===yn||HC(Ya,R).toLowerCase()===yn);Ht===-1&&(Ht=de.current.findIndex((Ya,Jl)=>{const Yc=se.current[Jl];return Yc!=null&&Yc.toLowerCase()===yn}));const Mn=Ht===-1?void 0:de.current[Ht];Mn!=null&&pt(Mn,pn)}Ie.set("forceMount",!0),queueMicrotask(kn)}}),id:$&&La==null?`${$}-hidden-input`:void 0,form:g,name:La,autoComplete:h,value:st,disabled:K,required:k&&!xs,readOnly:_,ref:ya,style:L?dS:eb,tabIndex:-1,"aria-hidden":!0,suppressHydrationWarning:!0}),bs]})})}function $L(e,t){return e??t}const vd=2,FL=400,GL={...Zh,...Fb,popupSide:e=>e?{"data-popup-side":e}:null,value:()=>null},YL=x.forwardRef(function(t,s){const{render:o,className:l,id:c,disabled:u=!1,nativeButton:p=!0,style:m,...g}=t,{setTouched:h,setFocused:b,validationMode:_,state:k,disabled:E}=Gc(),{labelId:j}=ep(),{store:w,setOpen:S,selectionRef:C,validation:N,readOnly:R,required:A,alignItemWithTriggerActiveRef:T,disabled:M}=hs(),z=E||M||u,P=tt(w,Je.open),D=tt(w,Je.mounted),I=tt(w,Je.value),B=tt(w,Je.triggerProps),V=tt(w,Je.positionerElement),H=tt(w,Je.listElement),G=tt(w,Je.popupSide),q=tt(w,Je.id),Y=tt(w,Je.labelId),X=tt(w,Je.hasSelectedValue),$=D&&V?G:null,K=c??q,L=$L(j,Y);tp({id:K});const F=cn(V),W=x.useRef(null),{getButtonProps:ee,buttonRef:ce}=Hr({disabled:z,native:p}),ue=Ue(ke=>{w.set("triggerElement",ke)}),se=wn(),oe=wn(),fe=wn();x.useEffect(()=>{if(P)return fe.start(FL,()=>{C.current.allowUnselectedMouseUp=!0,C.current.allowSelectedMouseUp=!0}),()=>{fe.clear()};C.current={allowSelectedMouseUp:!1,allowUnselectedMouseUp:!1,dragY:0},oe.clear()},[P,C,oe,fe]);const Re=$n(B,{id:K,role:"combobox","aria-expanded":P?"true":"false","aria-haspopup":"listbox","aria-controls":P?H?.id??Kd(V)?.id:void 0,"aria-labelledby":L,"aria-readonly":R||void 0,"aria-required":A||void 0,tabIndex:z?-1:0,onFocus(ke){b(!0),P&&T.current&&S(!1,nt(ds,ke.nativeEvent)),se.start(0,()=>{w.set("forceMount",!0)})},onBlur(ke){Ke(V,ke.relatedTarget)||(h(!0),b(!1),_==="onBlur"&&N.commit(I))},onMouseDown(ke){if(P)return;const je=mt(ke.currentTarget);function Be(Ve){if(!W.current)return;const we=Ve.target;if(Ke(W.current,we)||Ke(F.current,we))return;const Ee=V2(W.current);Ve.clientX>=Ee.left-vd&&Ve.clientX<=Ee.right+vd&&Ve.clientY>=Ee.top-vd&&Ve.clientY<=Ee.bottom+vd||S(!1,nt(rS,Ve))}oe.start(0,()=>{je.addEventListener("mouseup",Be,{once:!0})})}},g,ee),le=N.getValidationProps(z,Re);le.role="combobox";const de={...k,open:P,disabled:z,value:I,readOnly:R,popupSide:$,placeholder:!X};return Et("button",t,{ref:[s,W,ce,ue],state:de,stateAttributesMapping:GL,props:le})}),XL={value:()=>null},KL=x.forwardRef(function(t,s){const{className:o,render:l,children:c,placeholder:u,style:p,...m}=t,{store:g,valueRef:h}=hs(),b=tt(g,Je.value),_=tt(g,Je.items),k=tt(g,Je.itemToStringLabel),E=tt(g,Je.hasSelectedValue),j=!E&&u!=null&&c==null,w=tt(g,Je.hasNullItemLabel,j),S={value:b,placeholder:!E};let C=null;return typeof c=="function"?C=c(b):c!=null?C=c:!E&&u!=null&&!w?C=u:Array.isArray(b)?C=HL(b,_,k):C=VC(b,_,k),Et("span",t,{state:S,ref:[s,h],props:[{children:C},m],stateAttributesMapping:XL})}),QL=x.forwardRef(function(t,s){const{render:o,className:l,style:c,...u}=t,{store:p}=hs(),g={open:tt(p,Je.open)};return Et("span",t,{state:g,ref:s,props:[{"aria-hidden":!0,children:"▼"},u],stateAttributesMapping:f2})}),ZL=x.createContext(void 0),WL=x.forwardRef(function(t,s){const{store:o}=hs(),l=tt(o,Je.mounted),c=tt(o,Je.forceMount);return l||c?r.jsx(ZL.Provider,{value:!0,children:r.jsx(cb,{ref:s,...t})}):null}),qC=x.createContext(void 0);function Wb(){const e=x.useContext(qC);if(!e)throw new Error(tn(59));return e}function mf(e,t){e&&Object.assign(e.style,t)}const $C={position:"relative",maxHeight:"100%",overflowX:"hidden",overflowY:"auto"},JL={position:"fixed"},eP=x.forwardRef(function(t,s){const{anchor:o,positionMethod:l="absolute",className:c,render:u,side:p="bottom",align:m="center",sideOffset:g=0,alignOffset:h=0,collisionBoundary:b="clipping-ancestors",collisionPadding:_,arrowPadding:k=5,sticky:E=!1,disableAnchorTracking:j,alignItemWithTrigger:w=!0,collisionAvoidance:S=RS,style:C,...N}=t,{store:R,listRef:A,labelsRef:T,alignItemWithTriggerActiveRef:M,selectedItemTextRef:z,valuesRef:P,initialValueRef:D,popupRef:I,setValue:B}=hs(),V=BC(),H=tt(R,Je.open),G=tt(R,Je.mounted),q=tt(R,Je.modal),Y=tt(R,Je.value),X=tt(R,Je.openMethod),$=tt(R,Je.positionerElement),K=tt(R,Je.triggerElement),L=tt(R,Je.isItemEqualToValue),F=tt(R,Je.transitionStatus),W=x.useRef(null),ee=x.useRef(null),[ce,ue]=x.useState(w),se=G&&ce&&X!=="touch";!G&&ce!==w&&ue(w),ze(()=>{G||(Je.scrollUpArrowVisible(R.state)&&R.set("scrollUpArrowVisible",!1),Je.scrollDownArrowVisible(R.state)&&R.set("scrollDownArrowVisible",!1))},[R,G]),x.useImperativeHandle(M,()=>se),P2((se||q)&&H,X==="touch",$,K);const oe=Sb({anchor:o,floatingRootContext:V,positionMethod:l,mounted:G,side:p,sideOffset:g,align:m,alignOffset:h,arrowPadding:k,collisionBoundary:b,collisionPadding:_,sticky:E,disableAnchorTracking:j??se,collisionAvoidance:S,keepMounted:!0}),fe=se?"none":oe.side,Re=se?JL:oe.positionerStyles,le={open:H,side:fe,align:oe.align,anchorHidden:oe.anchorHidden};ze(()=>{R.set("popupSide",oe.side)},[R,oe.side]);const de=Ue(we=>{R.set("positionerElement",we)}),ke=Cb(t,le,{styles:Re,transitionStatus:F,props:N,refs:[s,de],hidden:!G,inert:!H}),je=x.useRef(0),Be=Ue(we=>{if(we.size===0&&je.current===0||P.current.length===0)return;const Ee=je.current;if(je.current=we.size,we.size===Ee)return;const _e=nt(ds);if(Ee!==0&&!R.state.multiple&&Y!==null&&_c(P.current,Y,L)===-1){const Le=D.current,Ie=Le!=null&&_c(P.current,Le,L)!==-1?Le:null;B(Ie,_e),Ie===null&&(R.set("selectedIndex",null),z.current=null)}if(Ee!==0&&R.state.multiple&&Array.isArray(Y)){const Ce=Pe=>_c(P.current,Pe,L)!==-1,Le=Y.filter(Pe=>Ce(Pe));(Le.length!==Y.length||Le.some(Pe=>!IL(Y,Pe,L)))&&(B(Le,_e),Le.length===0&&(R.set("selectedIndex",null),z.current=null))}if(H&&se){R.update({scrollUpArrowVisible:!1,scrollDownArrowVisible:!1});const Ce={height:""};mf($,Ce),mf(I.current,Ce)}}),Ve=x.useMemo(()=>({...oe,side:fe,alignItemWithTriggerActive:se,setControlledAlignItemWithTrigger:ue,scrollUpArrowRef:W,scrollDownArrowRef:ee}),[oe,fe,se,ue]);return r.jsx(Wf,{elementsRef:A,labelsRef:T,onMapChange:Be,children:r.jsxs(qC.Provider,{value:Ve,children:[G&&q&&r.jsx(Mb,{inert:Yf(!H),cutout:K}),ke]})})}),_d="base-ui-disable-scrollbar",dx={className:_d,getElement(e){return r.jsx("style",{nonce:e,href:_d,precedence:"base-ui:low",children:`.${_d}{scrollbar-width:none}.${_d}::-webkit-scrollbar{display:none}`})}},tP=x.createContext(void 0),nP={disableStyleElements:!1};function aP(){return x.useContext(tP)??nP}const sP={...No,...Ws},rP=x.forwardRef(function(t,s){const{render:o,className:l,style:c,finalFocus:u,...p}=t,{store:m,popupRef:g,onOpenChangeComplete:h,setOpen:b,valueRef:_,firstItemTextRef:k,selectedItemTextRef:E,multiple:j,handleScrollArrowVisibility:w,scrollHandlerRef:S,listRef:C,highlightItemOnHover:N}=hs(),{side:R,align:A,alignItemWithTriggerActive:T,isPositioned:M,setControlledAlignItemWithTrigger:z}=Wb(),P=A2()!=null,D=BC(),I=Ff(),{nonce:B,disableStyleElements:V}=aP(),H=tt(m,Je.id),G=tt(m,Je.open),q=tt(m,Je.openMethod),Y=tt(m,Je.mounted),X=tt(m,Je.popupProps),$=tt(m,Je.transitionStatus),K=tt(m,Je.triggerElement),L=tt(m,Je.positionerElement),F=tt(m,Je.listElement),W=x.useRef(!1),ee=x.useRef(!1),ce=x.useRef({}),ue=Ll(),se=Ue(le=>{if(!L||!g.current||!ee.current)return;if(W.current||!T){w();return}const de=L.style.top==="0px",ke=L.style.bottom==="0px";if(!de&&!ke){w();return}const je=Uj(L),Be=fc(L.getBoundingClientRect().height,"y",je),Ve=mt(L),we=Ft(L),Ee=we.getComputedStyle(L),_e=parseFloat(Ee.marginTop),Ce=parseFloat(Ee.marginBottom),Le=Bj(we.getComputedStyle(g.current)),Pe=Math.min(Ve.documentElement.clientHeight-_e-Ce,Le),Ie=le.scrollTop,ae=yd(le);let be=0,$e=null,Ne=!1,Me=!1;const Ze=Ae=>{L.style.height=`${Ae}px`},st=(Ae,He)=>{const Xe=dc(Ae,0,Pe-Be);Xe>0&&Ze(Be+Xe),le.scrollTop=He,Pe-(Be+Xe)<=Ua&&(W.current=!0),w()},_t=de?ae-Ie:Ie,ve=Math.min(Be+_t,Pe);if(be=ve,_t<=Ua){st(_t,de?ae:0);return}if(Pe-ve>Ua)de?Me=!0:$e=0;else if(Ne=!0,ke&&Ie<ae){const Ae=Be+_t-Pe;$e=Ie-(_t-Ae)}if(be=Math.ceil(be),be!==0&&Ze(be),Me||$e!=null){const Ae=yd(le),He=Me?Ae:dc($e,0,Ae);Math.abs(le.scrollTop-He)>Ua&&(le.scrollTop=He)}(Ne||be>=Pe-Ua)&&(W.current=!0),w()});x.useImperativeHandle(S,()=>se,[se]),gs({open:G,ref:g,onComplete(){G&&h?.(!0)}});const oe={open:G,transitionStatus:$,side:R,align:A};ze(()=>{!L||!g.current||Object.keys(ce.current).length||(ce.current={top:L.style.top||"0",left:L.style.left||"0",right:L.style.right,height:L.style.height,bottom:L.style.bottom,minHeight:L.style.minHeight,maxHeight:L.style.maxHeight,marginTop:L.style.marginTop,marginBottom:L.style.marginBottom})},[g,L]),ze(()=>{G||T||(ee.current=!1,W.current=!1,mf(L,ce.current))},[G,T,L,g]),ze(()=>{const le=g.current;if(!G||!K||!L||!le||T&&!M||m.state.transitionStatus==="ending")return;if(!T){ee.current=!0,ue.request(w),le.style.removeProperty("--transform-origin");return}const de=oP(le);le.style.removeProperty("--transform-origin");try{let ke=E.current;ke?.isConnected||(ke=!Je.hasSelectedValue(m.state)&&k.current?.isConnected?k.current:null);const je=_.current,Be=Ft(L),Ve=Be.getComputedStyle(L),we=Be.getComputedStyle(le),Ee=mt(K),_e=Uj(K),Ce=jd(K.getBoundingClientRect(),_e),Le=jd(L.getBoundingClientRect(),_e),Pe=Ce.height,Ie=F||le,ae=Ie.scrollHeight,be=parseFloat(we.borderBottomWidth),$e=parseFloat(Ve.marginTop)||10,Ne=parseFloat(Ve.marginBottom)||10,Me=parseFloat(Ve.minHeight)||100,Ze=Bj(we),st=5,_t=5,ve=20,Ae=Ee.documentElement.clientHeight-$e-Ne,He=Ee.documentElement.clientWidth,Xe=Ae-Ce.bottom+Pe;let rt,nn=I==="rtl"?Ce.right-Le.width:Ce.left,un=0;if(ke&&je){const fn=jd(je.getBoundingClientRect(),_e);rt=jd(ke.getBoundingClientRect(),_e),nn=Le.left+(I==="rtl"?fn.right-rt.right:fn.left-rt.left);const ya=fn.top-Ce.top+fn.height/2;un=rt.top-Le.top+rt.height/2-ya}const pt=Xe+un+Ne+be;let Nt=Math.min(Ae,pt);const an=Ae-$e-Ne,Zt=pt-Nt,Wt=He-_t;L.style.left=`${dc(nn,st,Wt-Le.width)}px`,L.style.height=`${Nt}px`,L.style.maxHeight="none",L.style.marginTop=`${$e}px`,L.style.marginBottom=`${Ne}px`,le.style.height="100%";const Gt=yd(Ie),dn=Zt>=Gt-Ua;dn&&(Nt=Math.min(Ae,Le.height)-(Zt-Gt));const Wn=Ce.top<ve||Ce.bottom>Ae-ve||Math.ceil(Nt)+Ua<Math.min(ae,Me),ca=(Be.visualViewport?.scale??1)!==1&&Dr;if(Wn||ca){ee.current=!0,mf(L,ce.current),z(!1);return}const _a=Math.max(Me,Nt);if(dn){const fn=Math.max(0,Ae-pt);L.style.top=Le.height>=an?"0":`${fn}px`,L.style.height=`${Nt}px`,Ie.scrollTop=yd(Ie)}else L.style.bottom="0",Ie.scrollTop=Zt;if(rt){const fn=Le.top,ya=Le.height,xs=rt.top+rt.height/2,La=ya>0?(xs-fn)/ya*100:50,bs=dc(La,0,100);le.style.setProperty("--transform-origin",`50% ${bs}%`)}(_a===Ae||Nt>=Ze)&&(W.current=!0),w(),N&&m.state.selectedIndex===null&&m.state.activeIndex===null&&C.current[0]!=null&&m.set("activeIndex",0),ee.current=!0}finally{de()}},[m,G,L,K,_,k,E,g,w,T,z,ue,F,C,N,I,M]),x.useEffect(()=>{if(!T||!L||!G)return;const le=Ft(L);function de(ke){b(!1,nt(Y3,ke))}return ht(le,"resize",de)},[b,T,L,G]);const fe={...F?{role:"presentation","aria-orientation":void 0}:{role:"listbox","aria-multiselectable":j||void 0,id:`${H}-list`},onKeyDown(le){P&&Zf.has(le.key)&&le.stopPropagation()},onScroll(le){F||se(le.currentTarget)},...T&&{style:F?{height:"100%"}:$C}},Re=Et("div",t,{ref:[s,g],state:oe,stateAttributesMapping:sP,props:[X,fe,Gf($),{className:!F&&T?dx.className:void 0},p]});return r.jsxs(x.Fragment,{children:[!V&&dx.getElement(B),r.jsx(fb,{context:D,modal:!1,disabled:!Y,openInteractionType:q,returnFocus:u,restoreFocus:!0,children:Re})]})});function Bj(e){const t=e.maxHeight||"";return t.endsWith("px")&&parseFloat(t)||1/0}function yd(e){return Zb(e.scrollHeight,e.clientHeight)}function Uj(e){return FS.getScale(e)}function fc(e,t,s){return e/s[t]}function jd(e,t){return Ec({x:fc(e.x,"x",t),y:fc(e.y,"y",t),width:fc(e.width,"x",t),height:fc(e.height,"y",t)})}const Hj=[["transform","none"],["scale","1"],["translate","0 0"]];function oP(e){const{style:t}=e,s={};for(const[o,l]of Hj)s[o]=t.getPropertyValue(o),t.setProperty(o,l,"important");return()=>{for(const[o]of Hj){const l=s[o];l?t.setProperty(o,l):t.removeProperty(o)}}}const lP=x.forwardRef(function(t,s){const{render:o,className:l,style:c,...u}=t,{store:p,scrollHandlerRef:m}=hs(),{alignItemWithTriggerActive:g}=Wb(),h=tt(p,Je.hasScrollArrows),b=tt(p,Je.openMethod),_=tt(p,Je.multiple),E={id:`${tt(p,Je.id)}-list`,role:"listbox","aria-multiselectable":_||void 0,onScroll(w){m.current?.(w.currentTarget)},...g&&{style:$C},className:h&&b!=="touch"?dx.className:void 0},j=Ue(w=>{p.set("listElement",w)});return Et("div",t,{ref:[s,j],props:[E,u]})}),FC=x.createContext(void 0);function Jb(){const e=x.useContext(FC);if(!e)throw new Error(tn(57));return e}const iP=x.memo(x.forwardRef(function(t,s){const{render:o,className:l,style:c,value:u=null,label:p,disabled:m=!1,nativeButton:g=!1,...h}=t,b=x.useRef(null),_=Hc({label:p,textRef:b,indexGuessBehavior:R2.GuessFromOrder}),{store:k,itemProps:E,setOpen:j,setValue:w,selectionRef:S,typingRef:C,valuesRef:N,multiple:R,selectedItemTextRef:A,disabled:T,readOnly:M}=hs(),z=tt(k,Je.isActive,_.index),P=tt(k,Je.open),D=tt(k,Je.isSelected,u),I=tt(k,Je.isSelectedByFocus,_.index),B=tt(k,Je.isItemEqualToValue),V=_.index,H=V!==-1,G=x.useRef(null);ze(()=>{if(!H)return;const se=N.current;return se[V]=u,()=>{delete se[V]}},[H,V,u,N]),ze(()=>{if(!H)return;const se=k.state.value;let oe=se;R&&Array.isArray(se)&&(oe=se.length>0?se[se.length-1]:void 0),oe!==void 0&&jo(u,oe,B)&&(k.set("selectedIndex",V),b.current&&(A.current=b.current))},[H,V,R,B,k,u,A]);const q=x.useRef(null),Y=x.useRef("mouse"),X=x.useRef(!1),{getButtonProps:$,buttonRef:K}=Hr({disabled:m,focusableWhenDisabled:!0,native:g,composite:!0}),L={disabled:m,selected:D,highlighted:z};function F(se){if(T||M)return;const oe=k.state.value;if(R){const fe=Array.isArray(oe)?oe:[],Re=D?BL(fe,u,B):[...fe,u];w(Re,nt(Sl,se))}else w(u,nt(Sl,se)),j(!1,nt(Sl,se))}function W(){S.current.dragY=0}const ee={role:"option","aria-selected":D,tabIndex:P&&z?0:-1,onKeyDown(se){q.current=se.key,k.set("activeIndex",V),se.key===" "&&C.current&&se.preventDefault()},onClick(se){const oe=se.type==="click"&&Y.current!=="touch",fe=se.nativeEvent.pointerType,Re=oe&&Yx(se.nativeEvent)&&(fe!==void 0||z),le=oe&&!Re&&!X.current;X.current=!1,!(se.type==="keydown"&&q.current===null)&&(m||se.type==="keydown"&&q.current===" "&&C.current||le||(q.current=null,F(se.nativeEvent)))},onPointerEnter(se){Y.current=se.pointerType},onPointerMove(se){if(se.pointerType==="mouse"&&se.buttons===1){const oe=S.current;oe.dragY+=se.movementY,oe.dragY**2>=64&&(oe.allowUnselectedMouseUp=!0)}},onPointerDown(se){Y.current=se.pointerType,X.current=!0,W()},onMouseUp(){if(W(),m||Y.current==="touch"||X.current)return;const se=!S.current.allowSelectedMouseUp&&D,oe=!S.current.allowUnselectedMouseUp&&!D;se||oe||(X.current=!0,G.current?.click(),X.current=!1)}},ce=Et("div",t,{ref:[K,s,_.ref,G],state:L,props:[E,ee,h,$]}),ue=x.useMemo(()=>({selected:D,index:V,textRef:b,selectedByFocus:I,hasRegistered:H}),[D,V,b,I,H]);return r.jsx(FC.Provider,{value:ue,children:ce})})),cP=x.forwardRef(function(t,s){const o=t.keepMounted??!1,{selected:l}=Jb();return o||l?r.jsx(uP,{...t,ref:s}):null}),uP=x.memo(x.forwardRef((e,t)=>{const{render:s,className:o,style:l,keepMounted:c,...u}=e,{selected:p}=Jb(),m=x.useRef(null),{transitionStatus:g,setMounted:h}=Wl(p),_=Et("span",e,{ref:[t,m],state:{selected:p,transitionStatus:g},props:[{"aria-hidden":!0,children:"✔️"},u],stateAttributesMapping:Ws});return gs({open:p,ref:m,onComplete(){p||h(!1)}}),_})),dP=x.memo(x.forwardRef(function(t,s){const{index:o,textRef:l,selectedByFocus:c,hasRegistered:u}=Jb(),{firstItemTextRef:p,selectedItemTextRef:m}=hs(),{render:g,className:h,style:b,..._}=t,k=x.useCallback(j=>{j&&(u&&o===0&&(p.current=j),u&&c&&(m.current=j))},[p,m,o,c,u]);return Et("div",t,{ref:[k,s,l],props:_})})),GC=x.forwardRef(function(t,s){const{render:o,className:l,style:c,direction:u,keepMounted:p=!1,...m}=t,g=u==="up",{store:h,popupRef:b,listRef:_,handleScrollArrowVisibility:k,scrollArrowsMountedCountRef:E}=hs(),{side:j,scrollDownArrowRef:w,scrollUpArrowRef:S}=Wb(),C=g?Je.scrollUpArrowVisible:Je.scrollDownArrowVisible,N=tt(h,C),R=tt(h,Je.openMethod),A=N&&R!=="touch",T=wn(),M=g?S:w,{mounted:z,transitionStatus:P,setMounted:D}=Wl(A);ze(()=>(E.current+=1,h.state.hasScrollArrows||h.set("hasScrollArrows",!0),()=>{E.current=Math.max(0,E.current-1),E.current===0&&h.state.hasScrollArrows&&h.set("hasScrollArrows",!1)}),[h,E]),gs({open:A,ref:M,onComplete(){A||D(!1)}});const V=Et("div",t,{ref:[s,M],state:{direction:u,visible:A,side:j,transitionStatus:P},props:[{"aria-hidden":!0,children:g?"▲":"▼",style:{position:"absolute"},onMouseMove(G){if(G.movementX===0&&G.movementY===0||T.isStarted())return;h.set("activeIndex",null);function q(){const Y=h.state.listElement??b.current;if(!Y)return;h.set("activeIndex",null),k();const X=Zb(Y.scrollHeight,Y.clientHeight),$=pf(Y.scrollTop,X),K=$===(g?0:X),L=_.current;if($!==Y.scrollTop&&(Y.scrollTop=$),L.length===0&&h.set(g?"scrollUpArrowVisible":"scrollDownArrowVisible",!K),K){T.clear();return}if(L.length>0){const F=M.current?.offsetHeight||0;Y.scrollTop=fP(L,g,$,Y.clientHeight,F,X)}T.start(40,q)}T.start(40,q)},onMouseLeave(){T.clear()}},m],stateAttributesMapping:Ws});return z||p?V:null});function fP(e,t,s,o,l,c){if(t){let h=0;const b=s+l-Ua;for(let E=0;E<e.length;E+=1){const j=e[E];if(j&&j.offsetTop>=b){h=E;break}}const _=Math.max(0,h-1),k=e[_];return _<h&&k?pf(k.offsetTop-l,c):0}let u=e.length-1;const p=s+o-l+Ua;for(let h=0;h<e.length;h+=1){const b=e[h];if(b&&b.offsetTop+b.offsetHeight>p){u=Math.max(0,h-1);break}}const m=Math.min(e.length-1,u+1),g=e[m];return m>u&&g?pf(g.offsetTop+g.offsetHeight-o+l,c):c}const pP=x.forwardRef(function(t,s){return r.jsx(GC,{...t,ref:s,direction:"down"})}),mP=x.forwardRef(function(t,s){return r.jsx(GC,{...t,ref:s,direction:"up"})}),gP=qL;function hP({className:e,...t}){return r.jsx(KL,{"data-slot":"select-value",className:Ct("flex flex-1 text-left",e),...t})}function xP({className:e,size:t="default",children:s,...o}){return r.jsxs(YL,{"data-slot":"select-trigger","data-size":t,className:Ct("flex w-fit items-center justify-between gap-1.5 rounded-lg border border-input bg-transparent py-2 pr-2 pl-2.5 text-sm whitespace-nowrap transition-colors outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 data-placeholder:text-muted-foreground data-[size=default]:h-8 data-[size=sm]:h-7 data-[size=sm]:rounded-[min(var(--radius-md),10px)] *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-1.5 dark:bg-input/30 dark:hover:bg-input/50 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",e),...o,children:[s,r.jsx(QL,{render:r.jsx(Zs,{className:"pointer-events-none size-4 text-muted-foreground"})})]})}function bP({className:e,children:t,side:s="bottom",sideOffset:o=4,align:l="center",alignOffset:c=0,alignItemWithTrigger:u=!0,...p}){return r.jsx(WL,{children:r.jsx(eP,{side:s,sideOffset:o,align:l,alignOffset:c,alignItemWithTrigger:u,className:"isolate z-50",children:r.jsxs(rP,{"data-slot":"select-content","data-align-trigger":u,className:Ct("relative isolate z-50 max-h-(--available-height) w-(--anchor-width) min-w-36 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-lg bg-popover text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[align-trigger=true]:animate-none data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",e),...p,children:[r.jsx(_P,{}),r.jsx(lP,{children:t}),r.jsx(yP,{})]})})})}function vP({className:e,children:t,...s}){return r.jsxs(iP,{"data-slot":"select-item",className:Ct("relative flex w-full cursor-default items-center gap-2 rounded-md py-2 pr-8 pl-2.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",e),...s,children:[r.jsx(dP,{className:"flex min-w-0 flex-1 gap-2 overflow-hidden whitespace-nowrap",children:t}),r.jsx(cP,{render:r.jsx("span",{className:"pointer-events-none absolute right-2 flex size-4 items-center justify-center"}),children:r.jsx(ho,{className:"pointer-events-none"})})]})}function _P({className:e,...t}){return r.jsx(mP,{"data-slot":"select-scroll-up-button",className:Ct("top-0 z-10 flex w-full cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4",e),...t,children:r.jsx(Mk,{})})}function yP({className:e,...t}){return r.jsx(pP,{"data-slot":"select-scroll-down-button",className:Ct("bottom-0 z-10 flex w-full cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4",e),...t,children:r.jsx(Zs,{})})}function St({value:e,onChange:t,options:s,placeholder:o="— elegir —",disabled:l,className:c,showIcon:u=!1}){return r.jsxs(gP,{value:e,onValueChange:p=>t(p??""),disabled:l,children:[r.jsx(xP,{className:De("h-9 w-full",c),children:r.jsx(hP,{placeholder:o,children:p=>{const m=s.find(h=>h.value===p),g=u?m?.icon:void 0;return r.jsxs("span",{className:"flex min-w-0 items-center gap-1.5",children:[g&&r.jsx(g,{className:"size-3.5 shrink-0"}),r.jsx("span",{className:"truncate",children:m?.label??p})]})}})}),r.jsx(bP,{side:"bottom",sideOffset:6,align:"start",alignItemWithTrigger:!1,className:"w-[var(--anchor-width)] p-1.5",children:s.map(p=>{const m=p.icon;return r.jsx(vP,{value:p.value,children:r.jsxs("span",{className:"flex min-w-0 items-center gap-2",children:[m?r.jsx(m,{className:"size-4 shrink-0 text-muted-fg"}):null,p.description?r.jsxs("span",{className:"flex min-w-0 flex-col leading-tight",children:[r.jsx("span",{className:"truncate font-medium",children:p.label}),r.jsx("span",{className:"truncate text-[11px] text-muted-fg",children:p.description})]}):r.jsx("span",{className:"truncate",children:p.label})]})},p.value)})})]})}const Vj=320;function jP(e){const t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleString(void 0,{month:"short",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"})}function wP(e){return e.agent_slug||e.actor_id||e.author||e.actor_kind||"—"}function kP({m:e}){const[t,s]=x.useState(!1),o=(e.body?.length||0)>Vj,l=!o||t?e.body:`${e.body.slice(0,Vj)}…`;return r.jsxs("li",{className:"flex items-start gap-3 rounded-md border border-border bg-muted/30 px-3 py-2",children:[r.jsx("span",{className:"mt-0.5 shrink-0",children:e.direction==="in"?r.jsx(Rk,{size:14,className:"text-blue-400"}):r.jsx(Ak,{size:14,className:"text-emerald-400"})}),r.jsxs("div",{className:"min-w-0 flex-1",children:[r.jsxs("div",{className:"flex flex-wrap items-center gap-2 text-xs text-muted-fg",children:[r.jsx("span",{className:"font-mono",children:jP(e.ts)}),r.jsx(Fe,{tone:"info",children:e.channel}),e.type&&r.jsx(Fe,{children:e.type}),r.jsx("span",{className:"font-medium text-foreground",children:wP(e)})]}),e.body&&r.jsx("p",{className:"mt-1 whitespace-pre-wrap break-words text-xs",children:l}),o&&r.jsx("button",{type:"button",onClick:()=>s(c=>!c),className:"mt-1 text-[11px] font-medium text-sky-400 hover:underline",children:f(t?"logs.show_less":"logs.show_more")})]})]})}function SP(){const[e,t]=x.useState(!1),s=Qe(e?"/admin/logs?errors":null,()=>Hl.logs("errors",200)),o=s.data?.entries||[];return r.jsxs("details",{className:"mb-3 rounded-lg border border-border bg-muted/20",onToggle:l=>t(l.target.open),children:[r.jsxs("summary",{className:"cursor-pointer px-3 py-2 text-xs font-medium text-muted-fg",children:[f("logs.daemon_errors"),o.length?` · ${o.length}`:""]}),r.jsxs("div",{className:"border-t border-border p-3",children:[s.isLoading&&r.jsx(ot,{}),e&&!s.isLoading&&o.length===0&&r.jsx("p",{className:"text-xs text-muted-fg",children:f("logs.no_errors")}),r.jsx("ul",{className:"space-y-1",children:o.map((l,c)=>r.jsxs("li",{className:"rounded-md bg-card px-2 py-1 text-[11px]",children:[r.jsxs("div",{className:"flex items-center gap-2 text-muted-fg",children:[typeof l.ts=="string"&&r.jsx("span",{className:"font-mono",children:new Date(l.ts).toLocaleString()}),typeof l.level=="string"&&r.jsx("span",{className:"text-destructive",children:l.level})]}),r.jsx("p",{className:"whitespace-pre-wrap break-words font-mono",children:String(l.msg??l.message??l.error??l.raw??JSON.stringify(l)).slice(0,500)})]},c))})]})]})}function CP({pid:e}){const t=!e||String(e)==="0",[s,o]=x.useState(""),[l,c]=x.useState(""),[u,p]=x.useState(""),[m,g]=x.useState(""),h=s.trim()||void 0,b=t?`/messages/global?channel=${h??""}`:`/projects/${e}/messages?channel=${h??""}`,_=Qe(b,()=>t?uf.global({channel:h,limit:300}):uf.project(e,{channel:h,limit:300})),k=x.useMemo(()=>[..._.data||[]].sort((w,S)=>(S.ts||"").localeCompare(w.ts||"")),[_.data]),E=x.useMemo(()=>Array.from(new Set(k.map(w=>w.type).filter(Boolean))),[k]),j=x.useMemo(()=>k.filter(w=>!(l&&w.direction!==l||u&&w.type!==u||m&&!(w.body||"").toLowerCase().includes(m.toLowerCase()))),[k,l,u,m]);return r.jsxs(Ye,{title:f("logs.title"),description:f(t?"logs.desc_global":"logs.desc_project"),action:r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx(Oe,{placeholder:f("logs.filter_channel"),value:s,onChange:w=>o(w.target.value),className:"w-44"}),r.jsx(me,{size:"sm",variant:"secondary",onClick:()=>_.mutate(),children:r.jsx(cs,{size:13})})]}),children:[t&&r.jsx(SP,{}),r.jsxs("div",{className:"mb-3 flex flex-wrap items-center gap-2",children:[r.jsx("div",{className:"w-36",children:r.jsx(St,{value:l,onChange:c,placeholder:f("logs.filter_dir"),options:[{value:"",label:f("logs.all_directions")},{value:"in",label:f("logs.in")},{value:"out",label:f("logs.out")}]})}),r.jsx("div",{className:"w-40",children:r.jsx(St,{value:u,onChange:p,placeholder:f("logs.filter_type"),options:[{value:"",label:f("logs.all_types")},...E.map(w=>({value:w,label:w}))]})}),r.jsx(Oe,{placeholder:f("logs.search_text"),value:m,onChange:w=>g(w.target.value),className:"w-56"}),r.jsxs("span",{className:"text-[11px] text-muted-fg",children:[j.length," ",f("logs.count_of")," ",k.length]})]}),_.isLoading&&r.jsx(ot,{}),_.error&&r.jsx(xt,{children:f("logs.error",{msg:_.error.message})}),!_.isLoading&&!_.error&&j.length===0&&r.jsx(xt,{children:h?f("logs.no_activity_ch",{ch:h}):f("logs.no_activity")}),r.jsx("ul",{className:"space-y-1 text-sm",children:j.map((w,S)=>r.jsx(kP,{m:w},`${w.ts}-${S}`))})]})}function YC({value:e,onChange:t,options:s,placeholder:o=f("shared_ui.model_combobox_ph"),invalid:l,invalidHint:c,className:u}){const[p,m]=x.useState(!1),[g,h]=x.useState(e),b=x.useRef(null),_=x.useRef(null),[k,E]=x.useState(null);x.useEffect(()=>{h(e)},[e]),x.useLayoutEffect(()=>{if(!p)return;const N=()=>{const R=b.current;if(!R)return;const A=R.getBoundingClientRect();E({top:A.bottom+4,left:A.left,width:A.width})};return N(),window.addEventListener("scroll",N,!0),window.addEventListener("resize",N),()=>{window.removeEventListener("scroll",N,!0),window.removeEventListener("resize",N)}},[p]),x.useEffect(()=>{if(!p)return;const N=R=>{const A=R.target;b.current?.contains(A)||_.current?.contains(A)||m(!1)};return document.addEventListener("mousedown",N),()=>document.removeEventListener("mousedown",N)},[p]);const j=g.trim().toLowerCase(),S=j&&!(g===e)?s.filter(N=>N.toLowerCase().includes(j)):s,C=N=>{t(N),h(N),m(!1)};return r.jsxs("div",{ref:b,className:De("relative",u),children:[r.jsxs("div",{className:De("flex items-center gap-1 rounded-lg border bg-background px-2.5 transition-colors focus-within:border-ring focus-within:ring-1 focus-within:ring-ring",l?"border-amber-500/60":"border-border"),children:[l&&r.jsx(et,{content:c||f("models_ui.invalid_hint"),children:r.jsx("span",{children:r.jsx(qk,{className:"size-3.5 shrink-0 text-amber-400"})})}),r.jsx("input",{value:g,placeholder:o,onChange:N=>{h(N.target.value),t(N.target.value),m(!0)},onFocus:()=>m(!0),className:"w-full bg-transparent py-1.5 text-sm outline-none placeholder:text-muted-fg/60"}),r.jsx("button",{type:"button",tabIndex:-1,onClick:()=>m(N=>!N),className:"shrink-0 text-muted-fg hover:text-foreground",children:r.jsx(Zs,{className:"size-4"})})]}),p&&S.length>0&&k&&is.createPortal(r.jsx("ul",{ref:_,style:{position:"fixed",top:k.top,left:k.left,width:k.width},className:"z-[1000] max-h-56 overflow-y-auto rounded-lg border border-border bg-popover p-1 shadow-md ring-1 ring-foreground/10",children:S.map(N=>r.jsx("li",{children:r.jsx("button",{type:"button",onMouseDown:R=>{R.preventDefault(),C(N)},className:De("flex w-full items-center rounded-md px-2 py-1 text-left text-sm hover:bg-accent hover:text-accent-fg",N===e&&"bg-accent/50"),children:r.jsx("span",{className:"truncate font-mono text-xs",children:N})})},N))}),document.body)]})}function Vr(){const{data:e,error:t,isLoading:s,mutate:o}=Qe("/admin/config",()=>Hl.config.get()),l=async(c,u)=>{const p=await Hl.config.patch({set:c,unset:u});return await o({config:p.config},{revalidate:!1}),p.config};return{config:e?.config||{},error:t,isLoading:s,mutate:o,patch:l}}function XC(){const{data:e,error:t,isLoading:s,mutate:o}=Qe("/admin/super-agent",()=>Hl.superAgent());return{superAgent:e,error:t,isLoading:s,mutate:o}}const EP={anthropic:"from-orange-600 to-amber-600",openai:"from-emerald-600 to-teal-600",gemini:"from-blue-600 to-indigo-600",groq:"from-cyan-600 to-teal-600",openrouter:"from-violet-600 to-indigo-600",ollama:"from-amber-600 to-orange-600",azure:"from-blue-600 to-cyan-600",mock:"from-slate-600 to-gray-600",custom:"from-slate-600 to-gray-600"},NP={anthropic:"bg-orange-500/20 text-orange-300 border border-orange-500/40",openai:"bg-emerald-500/20 text-emerald-300 border border-emerald-500/40",gemini:"bg-blue-500/20 text-blue-300 border border-blue-500/40",groq:"bg-cyan-500/20 text-cyan-300 border border-cyan-500/40",openrouter:"bg-violet-500/20 text-violet-300 border border-violet-500/40",ollama:"bg-amber-500/20 text-amber-300 border border-amber-500/40",azure:"bg-blue-500/20 text-blue-300 border border-blue-500/40",mock:"bg-slate-500/20 text-slate-300 border border-slate-500/40",custom:"bg-slate-500/20 text-slate-300 border border-slate-500/40"},yc=[{value:"anthropic",label:"Anthropic"},{value:"openai",label:"OpenAI-compatible"},{value:"gemini",label:"Gemini"},{value:"groq",label:"Groq"},{value:"openrouter",label:"OpenRouter"},{value:"ollama",label:"Ollama"},{value:"azure",label:"Azure OpenAI"},{value:"mock",label:"Mock (test)"},{value:"custom",label:"Custom"}];function Xg(e,t){return t&&t in e?e[t]:e.custom}const gf={anthropic:fs,openai:hn,gemini:gM,groq:Ol,openrouter:Dx,ollama:Hk,azure:tM,mock:zk,custom:Kl},mo={anthropic:{base_url:"",default_model:"claude-sonnet-4.6",api_key_env:"ANTHROPIC_API_KEY",known_models:["claude-opus-4.8","claude-opus-4.7","claude-opus-4.6","claude-sonnet-4.6","claude-sonnet-4.5","claude-haiku-4.5"]},openai:{base_url:"https://api.openai.com/v1",default_model:"gpt-4o-mini",api_key_env:"OPENAI_API_KEY",known_models:["gpt-4o","gpt-4o-mini","gpt-4.1","gpt-4.1-mini","o3-mini"]},gemini:{base_url:"https://generativelanguage.googleapis.com/v1beta/openai",default_model:"gemini-2.5-flash",api_key_env:"GEMINI_API_KEY",known_models:["gemini-3.5-pro","gemini-3.5-flash","gemini-3.1-pro","gemini-3.1-flash","gemini-2.5-pro","gemini-2.5-flash","gemini-2.5-flash-lite"]},groq:{base_url:"https://api.groq.com/openai/v1",default_model:"llama-3.3-70b-versatile",api_key_env:"GROQ_API_KEY",known_models:["llama-3.3-70b-versatile","llama-3.1-8b-instant","meta-llama/llama-4-scout-17b-16e-instruct","openai/gpt-oss-120b","openai/gpt-oss-20b","groq/compound","groq/compound-mini","qwen/qwen3-32b","whisper-large-v3-turbo"]},openrouter:{base_url:"https://openrouter.ai/api/v1",default_model:"openrouter/auto",api_key_env:"OPENROUTER_API_KEY",known_models:["openrouter/auto","openrouter/free","deepseek/deepseek-r1:free","meta-llama/llama-3.3-70b-instruct:free","google/gemini-2.0-flash-exp:free","qwen/qwen3-235b-a22b:free","anthropic/claude-sonnet-4.5","openai/gpt-4o-mini"]},ollama:{base_url:"http://127.0.0.1:11434",default_model:"gemma2:9b",api_key_env:"",known_models:[]},azure:{base_url:"",default_model:"gpt-4o-mini",api_key_env:"AZURE_OPENAI_API_KEY",known_models:["gpt-4o","gpt-4o-mini"]},mock:{base_url:"",default_model:"mock",api_key_env:"",known_models:["mock"]},custom:{base_url:"",default_model:"",api_key_env:"",known_models:[]}};function KC(e){const t=e.indexOf(":");return t<0?{provider:e,model:""}:{provider:e.slice(0,t),model:e.slice(t+1)}}function Kg({value:e,onChange:t,providers:s}){const{provider:o,model:l}=KC(e),c=s.find(h=>h.slug===o),u=!!o&&!c,p=x.useMemo(()=>{const h=c?mo[c.engine]?.known_models||[]:[];return Array.from(new Set([...c?.default_model?[c.default_model]:[],...h]))},[c]),m=h=>{const b=s.find(k=>k.slug===h),_=b?.default_model||mo[b?.engine]?.default_model||"";t(_?`${h}:${_}`:`${h}:`)},g=h=>t(`${o}:${h}`);return r.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[r.jsx(St,{value:o,onChange:m,placeholder:u?f("router_panel.provider_not_found",{name:o}):f("router_panel.provider_ph"),options:s.map(h=>({value:h.slug,label:h.slug,icon:gf[h.engine]}))}),r.jsx(YC,{value:l,onChange:g,options:p,invalid:u,invalidHint:f("router_panel.provider_not_configured",{name:o})})]})}function RP(){const e=lt(),{superAgent:t,isLoading:s,mutate:o}=XC(),{config:l,patch:c}=Vr(),[u,p]=x.useState(""),[m,g]=x.useState([]),[h,b]=x.useState(""),[_,k]=x.useState(null),[E,j]=x.useState(!1),[w,S]=x.useState({model:"",fallback:[]});x.useEffect(()=>{if(!t)return;const D=t.model_fallback?.models||[],I=Array.isArray(D)?D:[];p(t.model||""),g(I),S({model:t.model||"",fallback:I})},[t]);const C=x.useMemo(()=>{const D=l.engines||{};return Object.entries(D).map(([I,B])=>({slug:I,engine:B?.engine||I,default_model:B?.default_model||mo[B?.engine||I]?.default_model}))},[l.engines]),N=D=>{const{provider:I}=KC(D);return C.some(B=>B.slug===I)};if(s||!t)return r.jsx(ot,{});const R=u!==w.model||JSON.stringify(m)!==JSON.stringify(w.fallback),A=async()=>{j(!0);try{await c({"super_agent.model":u,"super_agent.model_fallback.enabled":m.length>0,"super_agent.model_fallback.models":m}),e.success(f("router_panel.saved_toast")),S({model:u,fallback:m}),o()}catch(D){e.error(D.message)}finally{j(!1)}},T=()=>{const D=h.trim().replace(/:$/,"");!D||!D.includes(":")||m.includes(D)||(g([...m,D]),b(""))},M=(D,I)=>{const B=[...m];B[D]=I,g(B)},z=D=>{g(m.filter((I,B)=>B!==D)),_===D&&k(null)},P=(D,I)=>{const B=D+I;if(B<0||B>=m.length)return;const V=[...m];[V[D],V[B]]=[V[B],V[D]],g(V)};return r.jsx(Ye,{title:f("router_panel.title"),description:f("router_panel.description"),children:r.jsxs("div",{className:"space-y-4",children:[r.jsxs("div",{className:"flex flex-wrap items-center gap-2 rounded-lg border border-border bg-muted/20 p-3",children:[r.jsxs(Fe,{tone:"success",children:[r.jsx(Dx,{size:11})," ",f("router_panel.badge_default")]}),r.jsx("span",{className:`font-mono text-xs ${!N(u)&&u?"text-amber-400":""}`,children:u||"—"}),m.map(D=>r.jsxs("span",{className:"flex items-center gap-2 text-muted-fg",children:[r.jsx(Tk,{size:12}),r.jsx("span",{className:`font-mono text-xs ${N(D)?"":"text-amber-400"}`,children:D})]},D))]}),C.length===0?r.jsx("p",{className:"text-xs text-muted-fg",children:f("router_panel.no_providers")}):r.jsx(pe,{label:f("router_panel.active_model_label"),hint:f("router_panel.active_model_hint"),children:r.jsx(Kg,{value:u,onChange:p,providers:C})}),r.jsxs("div",{className:"rounded-lg border border-border bg-muted/20 p-3",children:[r.jsxs("div",{className:"mb-2",children:[r.jsx("div",{className:"text-sm font-medium",children:f("router_panel.fallback_title")}),r.jsx("div",{className:"text-xs text-muted-fg",children:f("router_panel.fallback_desc")})]}),r.jsxs("ul",{className:"mb-3 space-y-1",children:[m.map((D,I)=>{const B=!N(D),V=_===I;return r.jsx("li",{className:"rounded-md bg-card px-2 py-1.5 text-xs",children:r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsxs("span",{className:"w-6 text-muted-fg",children:["#",I+1]}),V?r.jsx("div",{className:"flex-1",children:r.jsx(Kg,{value:D,onChange:H=>M(I,H),providers:C})}):r.jsxs("button",{type:"button",onClick:()=>k(I),className:"flex flex-1 items-center gap-1.5 text-left",children:[B&&r.jsx(qk,{size:12,className:"text-amber-400"}),r.jsx("span",{className:`font-mono ${B?"text-amber-400":""}`,children:D})]}),V?r.jsx(me,{size:"sm",variant:"secondary",onClick:()=>k(null),children:f("router_panel.done")}):r.jsx(me,{size:"sm",variant:"ghost",onClick:()=>k(I),children:r.jsx(Eo,{size:12})}),r.jsx(me,{size:"sm",variant:"ghost",onClick:()=>P(I,-1),disabled:I===0,children:"↑"}),r.jsx(me,{size:"sm",variant:"ghost",onClick:()=>P(I,1),disabled:I===m.length-1,children:"↓"}),r.jsx(me,{size:"sm",variant:"destructive",onClick:()=>z(I),children:r.jsx(ia,{size:12})})]})},`${I}-${D}`)}),m.length===0&&r.jsx("li",{className:"text-xs text-muted-fg",children:f("router_panel.fallback_empty")})]}),C.length>0&&r.jsxs("div",{className:"space-y-2",children:[r.jsx("div",{className:"text-xs text-muted-fg",children:f("router_panel.add_to_chain")}),r.jsx(Kg,{value:h,onChange:b,providers:C}),r.jsxs(me,{size:"sm",variant:"secondary",onClick:T,disabled:!h.includes(":")||h.endsWith(":"),children:[r.jsx(rn,{size:13})," ",f("router_panel.add_to_chain")]})]})]}),r.jsx(me,{variant:"primary",loading:E,disabled:!R,onClick:A,children:f(R?"router_panel.save":"router_panel.saved")})]})})}function TP({provider:e,onEdit:t,onDelete:s,onToggle:o}){const l=Xg(EP,e.engine),c=Xg(NP,e.engine),u=Xg(gf,e.engine),p=yc.find(b=>b.value===e.engine)?.label||e.engine,m=typeof e.api_key=="string"&&e.api_key.length>0,g=ql(e.api_key),h=e.is_active!==!1;return r.jsxs("div",{className:"group flex h-full cursor-pointer flex-col gap-3 rounded-xl border border-border bg-card p-4 transition-colors hover:border-muted-fg/50",onClick:t,children:[r.jsxs("div",{className:"flex items-start gap-3",children:[r.jsx("div",{className:De("flex size-10 shrink-0 items-center justify-center rounded-xl bg-gradient-to-br",l),children:r.jsx(u,{className:"size-5 text-white"})}),r.jsxs("div",{className:"min-w-0 flex-1",children:[r.jsx("h3",{className:"truncate text-sm font-semibold",children:e.name||e.slug}),r.jsx("p",{className:"truncate font-mono text-[10px] text-muted-fg",children:e.slug}),r.jsxs("span",{className:De("mt-1 inline-flex items-center gap-1 rounded-full px-2 py-0.5 text-[10px] font-medium",c),children:[r.jsx(u,{className:"size-3"})," ",p]})]}),r.jsxs("div",{className:"flex shrink-0 items-center gap-1",children:[r.jsx(et,{content:f(h?"providers_modal.toggle_active":"providers_modal.toggle_inactive"),children:r.jsxs("button",{type:"button",onClick:b=>{b.stopPropagation(),o()},className:De("flex items-center gap-1 rounded-md border px-1.5 py-0.5 text-[10px] font-medium transition-colors",h?"border-emerald-500/40 text-emerald-400 hover:bg-emerald-500/10":"border-border text-muted-fg hover:text-foreground"),children:[r.jsx("span",{className:De("size-1.5 rounded-full",h?"bg-emerald-400":"bg-muted-fg/40")}),f(h?"providers_card.active":"providers_card.off")]})}),r.jsx(et,{content:f("providers_modal.delete"),children:r.jsx("button",{type:"button",onClick:b=>{b.stopPropagation(),s()},className:"rounded-md p-1 text-muted-fg hover:bg-destructive/10 hover:text-destructive",children:r.jsx(ia,{className:"size-3.5"})})})]})]}),r.jsxs("div",{className:"mt-auto space-y-1 text-xs",children:[r.jsx(Wi,{label:f("providers_card.model"),value:e.default_model||"—",mono:!0}),e.base_url&&r.jsx(Wi,{label:f("providers_card.base_url"),value:e.base_url,mono:!0,truncate:!0}),r.jsx(Wi,{label:f("providers_card.api_key"),value:m?g?`…${g}`:f("providers_card.key_set"):"—",mono:!!g}),e.default_temperature!==void 0&&r.jsx(Wi,{label:f("providers_card.temp"),value:e.default_temperature.toFixed(1)}),e.pricing?.input_per_million!==void 0&&r.jsx(Wi,{label:f("providers_card.price_io"),value:`${e.pricing.input_per_million??0} / ${e.pricing.output_per_million??0}`})]})]})}function Wi({label:e,value:t,mono:s,truncate:o}){return r.jsxs("div",{className:"flex items-center justify-between gap-2",children:[r.jsx("span",{className:"text-muted-fg",children:e}),r.jsx("span",{className:De("text-foreground",s&&"font-mono",o&&"max-w-[180px] truncate"),children:t})]})}const qj={name:"",slug:"",engine:"anthropic",base_url:"",api_key_value:"",default_model:"",default_temperature:.7,default_max_tokens:4096,is_active:!0,context_limit_tokens:2e5,model_context_limits_json:"",p_input:"",p_output:"",p_cache_read:"",p_cache_write:""},AP=["anthropic","openai","gemini","groq","openrouter","ollama","custom"];function Ji(e){return e.toLowerCase().trim().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")}function wd(e){if(e==null)return"";const t=Number(e);return Number.isFinite(t)?String(t):""}function MP(e){return{name:e.name||e.slug,slug:e.slug,engine:e.engine||"custom",base_url:e.base_url||"",api_key_value:"",default_model:e.default_model||"",default_temperature:e.default_temperature??.7,default_max_tokens:e.default_max_tokens??4096,is_active:e.is_active!==!1,context_limit_tokens:e.context_limit_tokens??2e5,model_context_limits_json:e.model_context_limits?JSON.stringify(e.model_context_limits,null,2):"",p_input:wd(e.pricing?.input_per_million),p_output:wd(e.pricing?.output_per_million),p_cache_read:wd(e.pricing?.cache_read_per_million),p_cache_write:wd(e.pricing?.cache_write_per_million)}}function OP({open:e,initial:t,existingSlugs:s,onClose:o,onSave:l}){const c=!!t,[u,p]=x.useState(qj),[m,g]=x.useState(!1),[h,b]=x.useState(null),[_,k]=x.useState([]),[E,j]=x.useState(!1),[w,S]=x.useState(null),[C,N]=x.useState(!1),[R,A]=x.useState("");x.useEffect(()=>{if(!e)return;const $=t?MP(t):qj;p($),b(null),S(null),N(!1);const K=mo[$.engine];k(K?.known_models||[])},[e,t]);const T=$=>p(K=>({...K,...$})),M=$=>{const K=mo[$];T({engine:$,name:$==="custom"?u.name:yc.find(L=>L.value===$)?.label||$,slug:$==="custom"?u.slug:$,base_url:K.base_url,default_model:K.default_model}),k(K.known_models),S(null)},z=$=>{const K=mo[$];T({engine:$,base_url:u.base_url||K.base_url,default_model:u.default_model||K.default_model}),k(K.known_models)},P=async()=>{j(!0),S(null);try{const $=await df.models({engine:u.engine,slug:u.slug||Ji(u.name),base_url:u.base_url||void 0,api_key:u.api_key_value||void 0});if($.error){S($.error);return}k($.models),$.models.length===0&&S(f("providers_modal.err_no_models"))}catch($){S($.message||f("providers_modal.err_list_models"))}finally{j(!1)}},D=x.useMemo(()=>u.default_model&&!_.includes(u.default_model)?[u.default_model,..._]:_,[_,u.default_model]),I=()=>{const $=(u.slug||Ji(u.name)).trim();if(!$)return b(f("providers_modal.err_slug_required")),null;if(!c&&s.includes($))return b(f("providers_modal.err_slug_exists",{slug:$})),null;let K;if(u.model_context_limits_json.trim())try{const W=JSON.parse(u.model_context_limits_json);if(!W||typeof W!="object"||Array.isArray(W))throw new Error;K=W}catch{return b(f("providers_modal.err_model_limits_json")),null}const F=[u.p_input,u.p_output,u.p_cache_read,u.p_cache_write].map(W=>W.trim()).some(Boolean)?{input_per_million:Number(u.p_input||0),output_per_million:Number(u.p_output||0),cache_read_per_million:Number(u.p_cache_read||0),cache_write_per_million:Number(u.p_cache_write||0)}:void 0;return{provider:{slug:$,name:u.name.trim()||$,engine:u.engine,base_url:u.base_url.trim()||void 0,default_model:u.default_model.trim()||void 0,default_temperature:u.default_temperature,default_max_tokens:u.default_max_tokens,is_active:u.is_active,context_limit_tokens:u.context_limit_tokens||void 0,model_context_limits:K,pricing:F},modelLimits:K}},B=()=>{const $=I();if(!$)return;const{provider:K}=$,L={name:K.name,engine:K.engine,is_active:K.is_active!==!1,default_temperature:K.default_temperature,default_max_tokens:K.default_max_tokens};K.base_url&&(L.base_url=K.base_url),K.default_model&&(L.default_model=K.default_model),K.context_limit_tokens&&(L.context_limit_tokens=K.context_limit_tokens),K.model_context_limits&&(L.model_context_limits=K.model_context_limits),K.pricing&&(L.pricing=K.pricing),u.api_key_value.trim()&&(L.api_key=u.api_key_value.trim()),A(JSON.stringify(L,null,2)),b(null),N(!0)},V=async()=>{g(!0),b(null);try{if(C){const K=(u.slug||Ji(u.name)).trim();if(!K){b(f("providers_modal.err_slug_required_form"));return}let L;try{L=JSON.parse(R)}catch{b(f("providers_modal.err_json_invalid"));return}if(!L||typeof L!="object"||Array.isArray(L)){b(f("providers_modal.err_json_object"));return}const F=L;if(!F.engine||typeof F.engine!="string"){b(f("providers_modal.err_engine_missing"));return}const W={slug:K,name:typeof F.name=="string"?F.name:K,engine:String(F.engine),base_url:typeof F.base_url=="string"?F.base_url:void 0,default_model:typeof F.default_model=="string"?F.default_model:void 0,is_active:F.is_active!==!1};await l({provider:W,raw:F,originalSlug:t?.slug}),o();return}const $=I();if(!$)return;await l({provider:$.provider,apiKeyValue:u.api_key_value.trim()||void 0,originalSlug:t?.slug}),o()}catch($){b($.message||f("providers_modal.err_save"))}finally{g(!1)}},H=c&&Ha(t?.api_key),G=ql(t?.api_key),q=H?f("providers_modal.api_key_set",{suffix:G??""}):"sk-…",Y=u.engine==="ollama",X=mo[u.engine]?.api_key_env;return r.jsx(An,{open:e,onClose:o,title:c?f("providers_modal.edit_title",{name:t?.name||t?.slug||""}):f("providers_modal.new_title"),description:f("providers_modal.description"),size:"lg",footer:r.jsxs(r.Fragment,{children:[r.jsx(me,{variant:"ghost",onClick:o,disabled:m,children:f("common.cancel")}),r.jsx(me,{variant:"primary",onClick:V,loading:m,children:f(c?"common.save":"common.create")})]}),children:r.jsxs("div",{className:"space-y-3",children:[r.jsxs("div",{className:"flex items-center justify-between",children:[c?r.jsx("span",{}):r.jsx("div",{className:"flex flex-wrap gap-1.5",children:AP.map($=>{const K=gf[$],L=$==="custom"?f("providers_modal.custom"):yc.find(W=>W.value===$)?.label||$,F=u.engine===$;return r.jsxs("button",{type:"button",onClick:()=>M($),className:`flex items-center gap-1.5 rounded-lg border px-2.5 py-1 text-xs transition-colors ${F?"border-emerald-500/50 bg-emerald-500/10 text-emerald-400":"border-border text-muted-fg hover:border-muted-fg/60 hover:text-foreground"}`,children:[r.jsx(K,{className:"size-3.5"})," ",L]},$)})}),r.jsxs("button",{type:"button",onClick:()=>C?N(!1):B(),className:`flex shrink-0 items-center gap-1.5 rounded-lg border px-2.5 py-1 text-xs transition-colors ${C?"border-sky-500/50 bg-sky-500/10 text-sky-400":"border-border text-muted-fg hover:text-foreground"}`,children:[r.jsx(KA,{className:"size-3.5"})," ",f(C?"providers_modal.form_mode":"providers_modal.json_mode")]})]}),C?r.jsxs("div",{className:"space-y-2",children:[r.jsx(pe,{label:f("providers_modal.json_label"),hint:f("providers_modal.json_hint",{slug:u.slug||Ji(u.name)||"<slug>"}),children:r.jsx(Un,{rows:14,className:"font-mono text-xs",value:R,onChange:$=>A($.target.value),spellCheck:!1})}),r.jsx("p",{className:"text-[11px] text-muted-fg",children:f("providers_modal.json_help")})]}):r.jsxs(r.Fragment,{children:[r.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[r.jsx(pe,{label:f("providers_modal.name_label"),children:r.jsx(Oe,{value:u.name,onChange:$=>T({name:$.target.value,slug:c?u.slug:Ji($.target.value)}),placeholder:f("providers_modal.name_ph")})}),r.jsx(pe,{label:f("providers_modal.engine_label"),children:r.jsx(St,{value:u.engine,onChange:$=>z($),options:yc.map($=>({value:$.value,label:$.label,icon:gf[$.value]}))})})]}),r.jsx(pe,{label:f("providers_modal.base_url_label"),hint:f("providers_modal.base_url_hint"),children:r.jsx(Oe,{value:u.base_url,onChange:$=>T({base_url:$.target.value}),placeholder:f("providers_modal.base_url_ph")})}),!Y&&r.jsx(pe,{label:f("providers_modal.api_key_label"),hint:H?f("providers_modal.api_key_hint_existing"):X?f("providers_modal.api_key_hint_env",{env:X}):f("providers_modal.api_key_hint"),children:r.jsx(Oe,{type:"password",autoComplete:"new-password",value:u.api_key_value,onChange:$=>T({api_key_value:$.target.value}),placeholder:q})}),r.jsx(pe,{label:f("providers_modal.model_label"),children:r.jsxs("div",{className:"space-y-2",children:[r.jsxs("div",{className:"flex items-start gap-2",children:[r.jsx(YC,{value:u.default_model,onChange:$=>T({default_model:$}),options:D,className:"flex-1"}),r.jsx(et,{content:f("providers_modal.list_models_hint"),children:r.jsxs(me,{size:"sm",variant:"secondary",onClick:P,disabled:E,"aria-label":f("providers_modal.list_models_hint"),children:[E?r.jsx(Sf,{className:"size-3.5 animate-spin"}):r.jsx(cs,{className:"size-3.5"}),f("providers_modal.load_models")]})})]}),w&&r.jsx("p",{className:"text-[11px] text-amber-400",children:w})]})}),r.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[r.jsx(pe,{label:f("providers_modal.max_tokens_label"),children:r.jsx(Oe,{type:"number",min:256,step:256,value:u.default_max_tokens,onChange:$=>T({default_max_tokens:parseInt($.target.value)||4096})})}),r.jsx(pe,{label:f("providers_modal.temperature_label",{value:u.default_temperature.toFixed(1)}),children:r.jsx("input",{type:"range",min:0,max:2,step:.1,value:u.default_temperature,onChange:$=>T({default_temperature:parseFloat($.target.value)}),className:"mt-2 w-full accent-foreground"})})]}),r.jsxs("details",{className:"rounded-md border border-border bg-muted/20 p-3",children:[r.jsx("summary",{className:"cursor-pointer text-xs font-medium text-muted-fg",children:f("providers_modal.pricing_summary")}),r.jsxs("div",{className:"mt-3 space-y-3",children:[r.jsx(pe,{label:f("providers_modal.context_limit_label"),children:r.jsx(Oe,{type:"number",min:0,step:1024,value:u.context_limit_tokens,onChange:$=>T({context_limit_tokens:parseInt($.target.value)||0})})}),r.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[r.jsx(pe,{label:f("providers_modal.price_input"),children:r.jsx(Oe,{type:"number",min:0,step:1e-4,value:u.p_input,onChange:$=>T({p_input:$.target.value}),placeholder:"0.15"})}),r.jsx(pe,{label:f("providers_modal.price_output"),children:r.jsx(Oe,{type:"number",min:0,step:1e-4,value:u.p_output,onChange:$=>T({p_output:$.target.value}),placeholder:"0.60"})}),r.jsx(pe,{label:f("providers_modal.price_cache_read"),children:r.jsx(Oe,{type:"number",min:0,step:1e-4,value:u.p_cache_read,onChange:$=>T({p_cache_read:$.target.value}),placeholder:"0.03"})}),r.jsx(pe,{label:f("providers_modal.price_cache_write"),children:r.jsx(Oe,{type:"number",min:0,step:1e-4,value:u.p_cache_write,onChange:$=>T({p_cache_write:$.target.value}),placeholder:"0.00"})})]}),r.jsx(pe,{label:f("providers_modal.model_limits_label"),hint:'{"gpt-4o-mini":128000}',children:r.jsx(Un,{rows:3,className:"font-mono text-xs",value:u.model_context_limits_json,onChange:$=>T({model_context_limits_json:$.target.value})})})]})]}),r.jsx(Qt,{checked:u.is_active,onChange:$=>T({is_active:$}),label:f("providers_modal.active_label")})]}),h&&r.jsx("div",{className:"rounded-md border border-destructive/40 bg-destructive/10 px-3 py-2 text-xs text-destructive",children:h})]})})}const zP=new Set(yc.map(e=>e.value));function DP(e,t){const s=typeof t.engine=="string"&&t.engine||(zP.has(e)?e:"custom");return{slug:e,name:typeof t.name=="string"?t.name:void 0,engine:s,base_url:typeof t.base_url=="string"?t.base_url:void 0,api_key:typeof t.api_key=="string"?t.api_key:void 0,default_model:typeof t.default_model=="string"?t.default_model:void 0,default_temperature:typeof t.default_temperature=="number"?t.default_temperature:void 0,default_max_tokens:typeof t.default_max_tokens=="number"?t.default_max_tokens:void 0,is_active:typeof t.is_active=="boolean"?t.is_active:void 0,context_limit_tokens:typeof t.context_limit_tokens=="number"?t.context_limit_tokens:void 0,model_context_limits:t.model_context_limits||void 0,pricing:t.pricing||void 0}}function LP(){const e=lt(),{config:t,isLoading:s,patch:o,mutate:l}=Vr(),[c,u]=x.useState(!1),[p,m]=x.useState(null);if(s)return r.jsx(ot,{});const g=t.engines||{},h=Object.entries(g).map(([S,C])=>DP(S,C||{})),b=h.map(S=>S.slug),_=()=>{m(null),u(!0)},k=S=>{m(S),u(!0)},E=async({provider:S,apiKeyValue:C,raw:N})=>{if(N){await o({[`engines.${S.slug}`]:N}),e.success(f("engines_panel.saved_json")),l();return}const R=`engines.${S.slug}`,A={[`${R}.name`]:S.name,[`${R}.engine`]:S.engine,[`${R}.is_active`]:S.is_active!==!1,[`${R}.default_temperature`]:S.default_temperature,[`${R}.default_max_tokens`]:S.default_max_tokens},T=[],M=(z,P)=>{P===void 0||P===""?T.push(`${R}.${z}`):A[`${R}.${z}`]=P};M("base_url",S.base_url),M("default_model",S.default_model),M("context_limit_tokens",S.context_limit_tokens),M("pricing",S.pricing),M("model_context_limits",S.model_context_limits),C&&(A[`${R}.api_key`]=C),await o(A,T),e.success(f("engines_panel.saved")),l()},j=async S=>{try{await o({[`engines.${S.slug}.is_active`]:S.is_active===!1}),l()}catch(C){e.error(C.message)}},w=async S=>{if(confirm(f("engines_panel.delete_confirm",{name:S.name||S.slug})))try{await o(void 0,[`engines.${S.slug}`]),e.success(f("engines_panel.deleted")),l()}catch(C){e.error(C.message)}};return r.jsxs(Ye,{title:f("engines_panel.title"),description:f("engines_panel.description"),action:r.jsxs(me,{size:"sm",variant:"primary",onClick:_,children:[r.jsx(rn,{size:14})," ",f("engines_panel.new_btn")]}),children:[h.length===0?r.jsx(xt,{children:f("engines_panel.empty")}):r.jsxs("div",{className:"grid grid-cols-1 items-stretch gap-3 sm:grid-cols-2 lg:grid-cols-3",children:[h.map(S=>r.jsx(TP,{provider:S,onEdit:()=>k(S),onDelete:()=>w(S),onToggle:()=>j(S)},S.slug)),r.jsxs("button",{type:"button",onClick:_,className:"flex min-h-[120px] flex-col items-center justify-center gap-2 rounded-xl border border-dashed border-border text-muted-fg transition-colors hover:border-muted-fg/60 hover:text-foreground",children:[r.jsx(rn,{size:20}),r.jsx("span",{className:"text-sm font-medium",children:f("engines_panel.add_card")})]})]}),r.jsx(OP,{open:c,initial:p,existingSlugs:b,onClose:()=>{u(!1),m(null)},onSave:E})]})}function QC(){return r.jsxs("div",{className:"space-y-6",children:[r.jsx(RP,{}),r.jsx(LP,{})]})}function PP(){const e=lt(),[t,s]=x.useState(!1),l=Qe(t?"/agents/vault?include_removed=1":"/agents/vault",()=>sn.vault({includeRemoved:t})),c=l.data||[],[u,p]=x.useState(null),m=async h=>{const b=h.source!=="user",_=b?f("base.defaults_tombstone_msg",{slug:h.slug}):f("base.defaults_delete_msg",{slug:h.slug});if(confirm(_))try{await sn.vaultRemove(h.slug),e.success(f(b?"base.defaults_hidden":"base.defaults_deleted")),l.mutate()}catch(k){e.error(k.message)}},g=async h=>{try{await sn.vaultRestore(h),e.success(f("base.defaults_restored")),l.mutate()}catch(b){e.error(b.message)}};return r.jsxs(Ye,{title:f("base.defaults_title"),description:f("base.defaults_desc"),action:r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx(Qt,{checked:t,onChange:s,label:f("base.defaults_show_removed")}),r.jsxs(me,{size:"sm",onClick:()=>p("new"),children:[r.jsx(rn,{size:14})," ",f("base.defaults_new")]})]}),children:[l.isLoading&&r.jsx(ot,{}),!l.isLoading&&c.length===0&&r.jsx(xt,{children:f("base.defaults_empty")}),r.jsx("div",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-3",children:c.map(h=>{const b=t&&h.tombstoned;return r.jsxs("div",{className:`flex flex-col gap-2 rounded-xl border bg-card p-4 ${b?"border-dashed border-border opacity-60":"border-border"}`,children:[r.jsxs("div",{className:"flex items-center justify-between gap-2",children:[r.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[r.jsx("div",{className:"flex size-9 shrink-0 items-center justify-center rounded-xl bg-gradient-to-br from-slate-600 to-gray-600",children:h.is_master?r.jsx(Fs,{className:"size-4 text-white"}):r.jsx(hn,{className:"size-4 text-white"})}),r.jsx("span",{className:"truncate text-sm font-semibold",children:h.slug}),r.jsx(IP,{source:h.source})]}),r.jsx("div",{className:"flex shrink-0 items-center gap-0.5",children:b?r.jsx(Qg,{label:f("base.defaults_restore"),onClick:()=>g(h.slug),variant:"secondary",children:r.jsx(Ix,{size:13})}):r.jsxs(r.Fragment,{children:[r.jsx(Qg,{label:f("base.defaults_edit"),onClick:()=>p(h),variant:"ghost",children:r.jsx(Eo,{size:13})}),r.jsx(Qg,{label:h.source==="user"?f("base.defaults_delete"):f("base.defaults_hide"),onClick:()=>m(h),variant:"ghost-destructive",children:r.jsx(ia,{size:13})})]})})]}),h.model?r.jsx(Fe,{tone:"info",children:h.model}):r.jsx("span",{className:"text-[10px] text-muted-fg",children:f("agents_ui.model_router_default")}),h.description&&r.jsx("p",{className:"line-clamp-3 text-xs text-muted-fg",children:h.description}),r.jsxs("div",{className:"flex flex-wrap gap-1",children:[h.role&&r.jsx(Fe,{children:h.role}),h.skills?.map(_=>r.jsxs("span",{className:"inline-flex items-center gap-0.5 rounded bg-muted px-1 py-0.5 text-[9px] text-muted-fg",children:[r.jsx(fs,{size:9})," ",_]},_)),h.tools?.map(_=>r.jsxs("span",{className:"inline-flex items-center gap-0.5 rounded bg-muted px-1 py-0.5 text-[9px] text-muted-fg",children:[r.jsx(Kl,{size:9})," ",_]},_))]})]},h.slug)})}),u!==null&&r.jsx(BP,{agent:u==="new"?null:u,onClose:()=>p(null),onSaved:()=>{p(null),l.mutate()}})]})}function IP({source:e}){return e==="user"?r.jsx(Fe,{tone:"success",children:f("agents_ui.source_user")}):e==="user-override"?r.jsx(Fe,{tone:"warning",children:f("agents_ui.source_override")}):r.jsx(Fe,{tone:"muted",children:f("agents_ui.source_bundled")})}function Qg({label:e,onClick:t,variant:s="ghost",children:o}){const l="inline-flex size-7 items-center justify-center rounded-md transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/40",c={ghost:"text-muted-fg hover:bg-accent hover:text-accent-fg","ghost-destructive":"text-muted-fg hover:bg-destructive/15 hover:text-destructive",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80"};return r.jsxs(Eb,{children:[r.jsx(Nb,{render:r.jsx("button",{type:"button",onClick:t,"aria-label":e,className:`${l} ${c[s]}`,children:o})}),r.jsx(Rb,{children:e})]})}function BP({agent:e,onClose:t,onSaved:s}){const o=lt(),[l,c]=x.useState(!1),u=!e,[p,m]=x.useState(e?.slug??""),[g,h]=x.useState(e?.role??""),[b,_]=x.useState(e?.model??""),[k,E]=x.useState(e?.description??""),[j,w]=x.useState(e?.language??"es"),[S,C]=x.useState((e?.skills??[]).join(", ")),[N,R]=x.useState((e?.tools??[]).join(", ")),[A,T]=x.useState(!!e?.is_master),[M,z]=x.useState(e?.body??""),P=async()=>{const D={role:g||void 0,model:b||void 0,description:k||void 0,language:j||void 0,skills:S,tools:N,is_master:A};c(!0);try{if(u){if(!/^[a-z][a-z0-9_-]*$/.test(p))throw new Error(f("base.defaults_slug_invalid"));await sn.vaultCreate(p,D,M),o.success(f("base.defaults_created",{slug:p}))}else await sn.vaultPatch(e.slug,{fields:D,body:M}),o.success(f("base.defaults_saved",{slug:e.slug}));s()}catch(I){o.error(I.message)}finally{c(!1)}};return r.jsx(An,{open:!0,onClose:t,title:u?f("base.defaults_new_title"):f("base.defaults_edit_title",{slug:e.slug}),description:u?f("base.defaults_new_desc"):e.source==="bundled"?f("base.defaults_bundled_desc"):f("base.defaults_user_desc"),size:"lg",footer:r.jsxs(r.Fragment,{children:[r.jsx(me,{variant:"ghost",onClick:t,disabled:l,children:f("common.cancel")}),r.jsx(me,{variant:"primary",onClick:P,loading:l,children:f("common.save")})]}),children:r.jsxs("div",{className:"space-y-3",children:[u&&r.jsx(pe,{label:"slug",hint:f("agents_ui.slug_kebab_hint"),children:r.jsx(Oe,{autoFocus:!0,value:p,onChange:D=>m(D.target.value),placeholder:"reviewer"})}),r.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[r.jsx(pe,{label:"role",children:r.jsx(Oe,{value:g,onChange:D=>h(D.target.value),placeholder:"Code reviewer"})}),r.jsx(pe,{label:"model",children:r.jsx(Oe,{value:b,onChange:D=>_(D.target.value),placeholder:"openrouter:..."})}),r.jsx(pe,{label:"language",children:r.jsx(Oe,{value:j,onChange:D=>w(D.target.value),placeholder:"es"})}),r.jsx(pe,{label:"is_master",children:r.jsx("div",{className:"flex h-9 items-center",children:r.jsx(Qt,{checked:A,onChange:T,label:f("base.defaults_master_label")})})})]}),r.jsx(pe,{label:"description",children:r.jsx(Oe,{value:k,onChange:D=>E(D.target.value)})}),r.jsx(pe,{label:"skills",hint:f("agents_ui.comma_separated"),children:r.jsx(Oe,{value:S,onChange:D=>C(D.target.value),placeholder:"code-review, git"})}),r.jsx(pe,{label:"tools",hint:f("agents_ui.comma_separated"),children:r.jsx(Oe,{value:N,onChange:D=>R(D.target.value),placeholder:"read, write, run"})}),r.jsx(pe,{label:"body",hint:f("agents_ui.body_hint"),children:r.jsx(Un,{value:M,onChange:D=>z(D.target.value),rows:10,placeholder:"# Mission\\n..."})})]})})}const UP={apx:"success",claude:"info",codex:"warning"};function HP(){const[e,t]=x.useState(""),s=Qe(`/sessions?engine=${e}`,()=>CD.global(e||void 0)),o=s.data?.sessions||[];return r.jsxs(Ye,{title:f("base.sessions_title"),description:f("base.sessions_desc"),action:r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx("div",{className:"w-40",children:r.jsx(St,{value:e,onChange:t,options:[{value:"",label:f("base.sessions_all")},{value:"apx",label:"apx"},{value:"claude",label:"claude"},{value:"codex",label:"codex"}]})}),r.jsx(me,{size:"sm",variant:"secondary",onClick:()=>s.mutate(),children:r.jsx(cs,{size:13})})]}),children:[s.isLoading&&r.jsx(ot,{}),s.error&&r.jsx(xt,{children:f("base.sessions_error",{msg:s.error.message})}),!s.isLoading&&!s.error&&o.length===0&&r.jsx(xt,{children:f("base.sessions_empty")}),r.jsx("ul",{className:"space-y-1 text-sm",children:o.map((l,c)=>r.jsxs("li",{className:"flex items-center gap-3 rounded-md border border-border bg-muted/30 px-3 py-2",children:[r.jsx(Fe,{tone:UP[l.engine]||"muted",children:l.engine}),r.jsxs("div",{className:"min-w-0 flex-1",children:[r.jsx("div",{className:"truncate",children:l.title||l.id}),r.jsx("div",{className:"truncate font-mono text-[10px] text-muted-fg",children:l.cwd})]}),l.mtime>0&&r.jsx("span",{className:"shrink-0 text-[11px] text-muted-fg",children:new Date(l.mtime).toLocaleString()})]},`${l.engine}-${l.id}-${c}`))})]})}function VP(){const e=Qn(),[t,s]=x.useState("open"),o=Qe(`/tasks?state=${t}`,()=>Cr.global(t));return r.jsxs(Ye,{title:f("project.global_tasks.title"),description:f("project.global_tasks.subtitle"),action:r.jsx("div",{className:"flex gap-1",children:["open","done","dropped","all"].map(l=>r.jsx(me,{size:"sm",variant:t===l?"primary":"ghost",onClick:()=>s(l),children:l},l))}),children:[o.isLoading&&r.jsx(ot,{}),!o.isLoading&&(o.data?.length??0)===0&&r.jsx(xt,{children:f("project.global_tasks.empty")}),r.jsx("ul",{className:"space-y-2 text-sm",children:(o.data||[]).map(l=>r.jsxs("li",{className:"flex items-start gap-3 rounded-md border border-border bg-muted/30 px-3 py-2",children:[r.jsx("button",{type:"button",onClick:()=>e(`/p/${l.project_id}/tasks`),title:f("project.global_tasks.go_project"),children:r.jsx(Fe,{tone:"info",children:(l.project_name||"").split("/").pop()||l.project_id})}),r.jsxs("div",{className:"min-w-0 flex-1",children:[r.jsx("div",{className:"font-medium",children:l.title}),r.jsxs("div",{className:"mt-0.5 flex flex-wrap items-center gap-2 text-xs text-muted-fg",children:[r.jsx("span",{children:l.state}),l.agent&&r.jsxs(Fe,{tone:"muted",children:["@",l.agent]}),l.tags?.map(c=>r.jsxs("span",{children:["#",c]},c)),l.due&&r.jsxs("span",{children:[f("project.global_tasks.due")," ",l.due]})]})]})]},`${l.project_id}-${l.id}`))})]})}const ZC=x.createContext(void 0);function ev(){const e=x.useContext(ZC);if(e===void 0)throw new Error(tn(64));return e}let qP=(function(e){return e.activationDirection="data-activation-direction",e.orientation="data-orientation",e})({});const ap={tabActivationDirection:e=>({[qP.activationDirection]:e})},$P=x.forwardRef(function(t,s){const{className:o,defaultValue:l=0,onValueChange:c,orientation:u="horizontal",render:p,value:m,style:g,...h}=t,b=t.defaultValue!==void 0,_=x.useRef([]),[k,E]=x.useState(()=>new Map),[j,w]=Bl({controlled:m,default:l,name:"Tabs",state:"value"}),S=m!==void 0,[C,N]=x.useState(()=>new Map),R=x.useRef(void 0),A=x.useCallback(fe=>{if(fe===void 0)return null;for(const[Re,le]of C.entries())if(le!=null&&fe===(le.value??le.index))return Re;return null},[C]),[T,M]=x.useState(()=>({previousValue:j,tabActivationDirection:"none"})),{previousValue:z,tabActivationDirection:P}=T;let D=P,I=!1;z!==j&&(D=$j(z,j,u,C),I=z!=null&&j!=null&&A(j)==null);const B=I?z:j,V=z!==B||P!==D;ze(()=>{V&&M({previousValue:B,tabActivationDirection:D})},[B,V,D]);const H=Ue((fe,Re)=>{const le=$j(j,fe,u,C);Re.activationDirection=le,c?.(fe,Re),!Re.isCanceled&&w(fe)}),G=Ue((fe,Re)=>{c?.(fe,nt(Re,void 0,void 0,{activationDirection:"none"}))}),q=Ue((fe,Re)=>{E(le=>{if(le.get(fe)===Re)return le;const de=new Map(le);return de.set(fe,Re),de})}),Y=Ue((fe,Re)=>{E(le=>{if(!le.has(fe)||le.get(fe)!==Re)return le;const de=new Map(le);return de.delete(fe),de})}),X=x.useCallback(fe=>k.get(fe),[k]),$=x.useCallback(fe=>{for(const Re of C.values())if(fe===Re?.value)return Re?.id},[C]),K=x.useMemo(()=>({getTabElementBySelectedValue:A,getTabIdByPanelValue:$,getTabPanelIdByValue:X,onValueChange:H,orientation:u,registerMountedTabPanel:q,setTabMap:N,unregisterMountedTabPanel:Y,tabActivationDirection:D,value:j}),[A,$,X,H,u,q,N,Y,D,j]),L=x.useMemo(()=>{for(const fe of C.values())if(fe!=null&&fe.value===j)return fe},[C,j]),F=x.useMemo(()=>{for(const fe of C.values())if(fe!=null&&!fe.disabled)return fe.value},[C]),W=x.useRef(!b),ee=x.useRef(l),ce=x.useRef(b),ue=x.useRef(!1);ze(()=>{if(S)return;function fe(ke,je){w(ke),M(Be=>Be.previousValue===ke&&Be.tabActivationDirection==="none"?Be:{previousValue:ke,tabActivationDirection:"none"}),G(ke,je),W.current=!1}if(C.size===0){ue.current&&j!==null&&!R.current?.isConnected&&fe(null,O1);return}ue.current=!0,R.current=C.keys().next().value;const Re=L?.disabled,le=L==null&&j!==null;if(!Re&&j===ee.current&&(ce.current=!1),ce.current&&Re&&j===ee.current)return;const de=W.current;if(Re||le){const ke=F??null;if(j===ke){W.current=!1;return}let je=O1;de?je=z1:Re&&(je=oS),fe(ke,je);return}de&&L!=null&&(G(j,z1),W.current=!1)},[F,S,G,L,w,C,j]);const oe=Et("div",t,{state:{orientation:u,tabActivationDirection:D},ref:s,props:h,stateAttributesMapping:ap});return r.jsx(ZC.Provider,{value:K,children:r.jsx(Wf,{elementsRef:_,children:oe})})});function $j(e,t,s,o){if(e==null||t==null)return"none";let l=null,c=null;for(const[m,g]of o.entries()){if(g==null)continue;const h=g.value??g.index;if(e===h&&(l=m),t===h&&(c=m),l!=null&&c!=null)break}if(l==null||c==null)return l!==c&&(typeof e=="number"||typeof e=="string")&&typeof e==typeof t?s==="horizontal"?t>e?"right":"left":t>e?"down":"up":"none";const u=l.getBoundingClientRect(),p=c.getBoundingClientRect();if(s==="horizontal"){if(p.left<u.left)return"left";if(p.left>u.left)return"right"}else{if(p.top<u.top)return"up";if(p.top>u.top)return"down"}return"none"}const WC="data-composite-item-active",JC=x.createContext(void 0);function FP(){const e=x.useContext(JC);if(e===void 0)throw new Error(tn(65));return e}const GP=x.forwardRef(function(t,s){const{className:o,disabled:l=!1,render:c,value:u,id:p,nativeButton:m=!0,style:g,...h}=t,{value:b,getTabPanelIdByValue:_,orientation:k,tabActivationDirection:E}=ev(),{activateOnFocus:j,highlightedTabIndex:w,onTabActivation:S,registerTabResizeObserverElement:C,setHighlightedTabIndex:N,tabsListElement:R}=FP(),A=Ga(p),T=x.useMemo(()=>({disabled:l,id:A,value:u}),[l,A,u]),{compositeProps:M,compositeRef:z,index:P}=q2({metadata:T}),D=u===b,I=x.useRef(!1),B=x.useRef(null);ze(()=>{const W=B.current;if(W)return C(W)},[C]),ze(()=>{if(I.current){I.current=!1;return}if(!(D&&P>-1&&w!==P))return;const W=R;if(W!=null){const ee=Vn(mt(W));if(ee&&Ke(W,ee))return}l||N(P)},[D,P,w,N,l,R]);const{getButtonProps:V,buttonRef:H}=Hr({disabled:l,native:m,focusableWhenDisabled:!0}),G=_(u),q=x.useRef(!1),Y=x.useRef(!1);function X(W){D||l||S(u,nt(ds,W.nativeEvent,void 0,{activationDirection:"none"}))}function $(W){D||(P>-1&&!l&&N(P),!l&&j&&(!q.current||q.current&&Y.current)&&S(u,nt(ds,W.nativeEvent,void 0,{activationDirection:"none"})))}function K(W){if(D||l)return;q.current=!0;function ee(){q.current=!1,Y.current=!1}(!W.button||W.button===0)&&(Y.current=!0,mt(W.currentTarget).addEventListener("pointerup",ee,{once:!0}))}return Et("button",t,{state:{disabled:l,active:D,orientation:k,tabActivationDirection:E},ref:[s,H,z,B],props:[M,{role:"tab","aria-controls":G,"aria-selected":D,id:A,onClick:X,onFocus:$,onPointerDown:K,[WC]:D?"":void 0,onKeyDownCapture(){I.current=!0}},h,V],stateAttributesMapping:ap})});let YP=(function(e){return e.index="data-index",e.activationDirection="data-activation-direction",e.orientation="data-orientation",e.hidden="data-hidden",e[e.startingStyle=yo.startingStyle]="startingStyle",e[e.endingStyle=yo.endingStyle]="endingStyle",e})({});const XP={...ap,...Ws},KP=x.forwardRef(function(t,s){const{className:o,value:l,render:c,keepMounted:u=!1,style:p,...m}=t,{value:g,getTabIdByPanelValue:h,orientation:b,tabActivationDirection:_,registerMountedTabPanel:k,unregisterMountedTabPanel:E}=ev(),j=Ga(),w=x.useMemo(()=>({id:j,value:l}),[j,l]),{ref:S,index:C}=Hc({metadata:w}),N=l===g,{mounted:R,transitionStatus:A,setMounted:T}=Wl(N),M=!R,z=h(l),P={hidden:M,orientation:b,tabActivationDirection:_,transitionStatus:A},D=x.useRef(null),I=Et("div",t,{state:P,ref:[s,S,D],props:[{"aria-labelledby":z,hidden:M,id:j,role:"tabpanel",tabIndex:N?0:-1,inert:Yf(!N),[YP.index]:C},m],stateAttributesMapping:XP});return gs({open:N,ref:D,onComplete(){N||T(!1)}}),ze(()=>{if(!(M&&!u)&&j!=null)return k(l,j),()=>{E(l,j)}},[M,u,l,j,k,E]),u||R?I:null}),QP=[];function ZP(e){const{loopFocus:t=!0,orientation:s="both",grid:o,onLoop:l,direction:c,highlightedIndex:u,onHighlightedIndexChange:p,rootRef:m,enableHomeAndEndKeys:g=!1,stopEventPropagation:h=!1,disabledIndices:b,modifierKeys:_=QP}=e,[k,E]=x.useState(0),j=o!=null,w=x.useRef(null),S=Ys(w,m),C=x.useRef([]),N=x.useRef(!1),R=u??k,A=Ue((D,I=!1)=>{if((p??E)(D),I){const B=C.current[D];xj(w.current,B,c,s)}}),T=Ue(D=>{if(D.size===0||N.current)return;N.current=!0;const I=Array.from(D.keys()),B=I.find(H=>H?.hasAttribute(WC))??null,V=B?I.indexOf(B):-1;if(V!==-1)A(V);else if(Wd(I,R,b)){const H=Vs(I,{disabledIndices:b});hc(I,H)||A(H)}xj(w.current,B,c,s)});ze(()=>{if(b==null||u!=null||!N.current)return;const D=C.current;if(Wd(D,R,b)){const I=Vs(D,{disabledIndices:b});hc(D,I)||A(I)}},[b,u,R,C,A]);const M=Ue((D,I,B)=>l?l(D,I,B,C):B),z=Ue(D=>{const I=g?Zf:z2;if(!I.has(D.key)||WP(D,_)||!w.current)return;const V=c==="rtl",H=V?of:lf,G={horizontal:H,vertical:vc,both:H}[s],q=V?lf:of,Y={horizontal:q,vertical:bc,both:q}[s],X=In(D.nativeEvent);if(X!=null&&hj(X)&&!F2(X)){const ce=X.selectionStart,ue=X.selectionEnd,se=X.value??"";if(ce==null||D.shiftKey||ce!==ue||D.key!==Y&&ce<se.length||D.key!==G&&ce>0)return}let $=R;const K=zd(C,b),L=Yh(C,b);o!=null&&($=o({disabledIndices:b,elementsRef:C,event:D,highlightedIndex:R,loopFocus:t,maxIndex:L,minIndex:K,onLoop:M,orientation:s,rtl:V}));const F={horizontal:[H],vertical:[vc],both:[H,vc]}[s],W={horizontal:[q],vertical:[bc],both:[q,bc]}[s],ee=j?I:{horizontal:g?W4:M2,vertical:g?J4:O2,both:I}[s];g&&(D.key===Kf?$=K:D.key===Qf&&($=L)),$===R&&(F.includes(D.key)||W.includes(D.key))&&(t&&$===L&&F.includes(D.key)?($=K,l&&($=l(D,R,$,C))):t&&$===K&&W.includes(D.key)?($=L,l&&($=l(D,R,$,C))):$=Vs(C.current,{startingIndex:$,decrement:W.includes(D.key),disabledIndices:b})),$!==R&&!hc(C.current,$)&&(h&&D.stopPropagation(),ee.has(D.key)&&D.preventDefault(),A($,!0),queueMicrotask(()=>{C.current[$]?.focus()}))});return{props:{ref:S,onFocus(D){const I=w.current,B=In(D.nativeEvent);!I||B==null||!hj(B)||B.setSelectionRange(0,B.value.length??0)},onKeyDown:z},highlightedIndex:R,onHighlightedIndexChange:A,elementsRef:C,disabledIndices:b,onMapChange:T,relayKeyboardEvent:z}}function WP(e,t){for(const s of sz.values())if(!t.includes(s)&&e.getModifierState(s))return!0;return!1}function JP(e){const{render:t,className:s,style:o,refs:l=Gs,props:c=Gs,state:u=$t,stateAttributesMapping:p,highlightedIndex:m,onHighlightedIndexChange:g,orientation:h,grid:b,loopFocus:_,onLoop:k,enableHomeAndEndKeys:E,onMapChange:j,stopEventPropagation:w=!0,rootRef:S,disabledIndices:C,modifierKeys:N,highlightItemOnHover:R=!1,tag:A="div",...T}=e,M=Ff(),{props:z,highlightedIndex:P,onHighlightedIndexChange:D,elementsRef:I,onMapChange:B,relayKeyboardEvent:V}=ZP({grid:b,loopFocus:_,onLoop:k,orientation:h,highlightedIndex:m,onHighlightedIndexChange:g,rootRef:S,stopEventPropagation:w,enableHomeAndEndKeys:E,direction:M,disabledIndices:C,modifierKeys:N}),H=Et(A,e,{state:u,ref:l,props:[z,...c,T],stateAttributesMapping:p}),G=x.useMemo(()=>({highlightedIndex:P,onHighlightedIndexChange:D,highlightItemOnHover:R,relayKeyboardEvent:V}),[P,D,R,V]);return r.jsx(S2.Provider,{value:G,children:r.jsx(Wf,{elementsRef:I,onMapChange:q=>{j?.(q),B(q)},children:H})})}const e6=x.forwardRef(function(t,s){const{activateOnFocus:o=!1,className:l,loopFocus:c=!0,render:u,style:p,...m}=t,{onValueChange:g,orientation:h,value:b,setTabMap:_,tabActivationDirection:k}=ev(),[E,j]=x.useState(0),[w,S]=x.useState(null),C=x.useRef(new Set),N=x.useRef(new Set),R=x.useRef(null);ze(()=>{if(typeof ResizeObserver>"u")return;const I=new ResizeObserver(()=>{C.current.forEach(B=>{B()})});return R.current=I,w&&I.observe(w),N.current.forEach(B=>{I.observe(B)}),()=>{I.disconnect(),R.current=null}},[w]);const A=Ue(I=>(C.current.add(I),()=>{C.current.delete(I)})),T=Ue(I=>(N.current.add(I),R.current?.observe(I),()=>{N.current.delete(I),R.current?.unobserve(I)})),M=Ue((I,B)=>{I!==b&&g(I,B)}),z={orientation:h,tabActivationDirection:k},P={"aria-orientation":h==="vertical"?"vertical":void 0,role:"tablist"},D=x.useMemo(()=>({activateOnFocus:o,highlightedTabIndex:E,registerIndicatorUpdateListener:A,registerTabResizeObserverElement:T,onTabActivation:M,setHighlightedTabIndex:j,tabsListElement:w}),[o,E,A,T,M,j,w]);return r.jsx(JC.Provider,{value:D,children:r.jsx(JP,{render:u,className:l,style:p,state:z,refs:[s,S],props:[P,m],stateAttributesMapping:ap,highlightedIndex:E,enableHomeAndEndKeys:!0,loopFocus:c,orientation:h,onHighlightedIndexChange:j,onMapChange:_,disabledIndices:Gs})})});function sp({className:e,...t}){return r.jsx($P,{"data-slot":"tabs",className:Ct("flex flex-col gap-4",e),...t})}const t6=$b("inline-flex h-9 w-fit items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground data-[variant=line]:h-8 data-[variant=line]:gap-1 data-[variant=line]:rounded-none data-[variant=line]:bg-transparent data-[variant=line]:p-0",{variants:{variant:{default:"bg-muted",line:"gap-1 bg-transparent"}},defaultVariants:{variant:"default"}});function rp({className:e,variant:t="default",...s}){return r.jsx(e6,{"data-slot":"tabs-list","data-variant":t,className:Ct(t6({variant:t}),e),...s})}function as({className:e,...t}){return r.jsx(GP,{"data-slot":"tabs-trigger",className:Ct("inline-flex h-7 items-center justify-center gap-1.5 rounded-md border border-transparent px-3 py-1 text-sm font-medium whitespace-nowrap text-muted-fg transition-colors hover:text-foreground focus-visible:ring-2 focus-visible:ring-ring/50 focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50 data-active:bg-background data-active:text-foreground data-active:shadow-sm dark:data-active:border-input dark:data-active:bg-input/30 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",e),...t})}function za({className:e,...t}){return r.jsx(KP,{"data-slot":"tabs-content",className:Ct("text-sm outline-none",e),...t})}function Fj(e,t){let s=e;for(const o of t.split(".")){if(!s||typeof s!="object"||Array.isArray(s))return;s=s[o]}return s}function tv(e,t=""){const s={};for(const[o,l]of Object.entries(e)){const c=t?`${t}.${o}`:o;l&&typeof l=="object"&&!Array.isArray(l)?Object.assign(s,tv(l,c)):s[c]=l}return s}function n6(e){const t=JSON.parse(e);if(!t||typeof t!="object"||Array.isArray(t))throw new Error("JSON debe ser objeto.");return t}function fx({sections:e,source:t,placeholderSource:s,jsonTitle:o,jsonDescription:l,saveLabel:c=f("common.save"),onSaveFields:u,onSaveJson:p,busy:m}){const g=e[0]?.key||"json",[h,b]=x.useState({}),[_,k]=x.useState(""),[E,j]=x.useState("");x.useEffect(()=>{const N={};for(const R of e.flatMap(A=>A.fields))N[R.path]=Fj(t,R.path)??"";b(N),k(JSON.stringify(t||{},null,2)),j("")},[t,e]);const w=x.useMemo(()=>new Set(e.flatMap(N=>N.fields.map(R=>R.path))),[e]),S=async()=>{const N={},R=[];for(const A of e.flatMap(T=>T.fields)){const T=h[A.path];if(!Ha(T)){if(T===""||T===void 0||T===null){R.push(A.path);continue}if(A.kind==="number"){const M=Number(T);Number.isFinite(M)&&(N[A.path]=M)}else N[A.path]=T}}await u(N,R.filter(A=>w.has(A)))},C=async()=>{j("");try{await p(n6(_))}catch(N){j(N.message)}};return r.jsxs(sp,{defaultValue:g,className:"space-y-4",children:[r.jsxs(rp,{className:"flex flex-wrap",children:[e.map(N=>r.jsx(as,{value:N.key,children:N.label},N.key)),r.jsx(as,{value:"json",children:"JSON"})]}),e.map(N=>r.jsx(za,{value:N.key,children:r.jsxs("div",{className:"space-y-4",children:[N.description&&r.jsx("p",{className:"text-sm text-muted-fg",children:N.description}),r.jsx("div",{className:"grid gap-3 md:grid-cols-2",children:N.fields.map(R=>r.jsx(a6,{field:R,value:h[R.path],inherited:Fj(s,R.path),onChange:A=>b(T=>({...T,[R.path]:A}))},R.path))}),r.jsx(me,{variant:"primary",loading:m,onClick:S,children:c})]})},N.key)),r.jsx(za,{value:"json",children:r.jsxs("div",{className:"space-y-3",children:[r.jsxs("div",{children:[r.jsx("h3",{className:"text-sm font-medium",children:o}),l&&r.jsx("p",{className:"text-xs text-muted-fg",children:l})]}),r.jsx(Un,{rows:18,className:"font-mono text-xs",value:_,onChange:N=>k(N.target.value)}),E&&r.jsx("p",{className:"text-xs text-destructive",children:E}),r.jsx(me,{variant:"primary",loading:m,onClick:C,children:f("settings_ui.save_json")})]})})]})}function a6({field:e,value:t,inherited:s,onChange:o}){const l=e.placeholder||Gj(s)||(Ha(t)?Tr(t):""),c=e.hint||(s!==void 0?`Heredado: ${Gj(s)}`:void 0);return e.kind==="boolean"?r.jsx("div",{className:"flex items-end pb-1",children:r.jsx(Qt,{checked:t===!0,onChange:o,label:e.label})}):r.jsx(pe,{label:e.label,hint:c,children:e.kind==="select"?r.jsx(St,{value:String(t||""),onChange:o,placeholder:l||"(sin override)",options:[{value:"",label:l||"(sin override)"},...(e.options||[]).map(u=>({value:String(u.value),label:u.label}))]}):e.kind==="textarea"?r.jsx(Un,{rows:4,value:String(t||""),placeholder:l,onChange:u=>o(u.target.value)}):r.jsx(Oe,{type:e.kind==="password"?"password":e.kind==="number"?"number":"text",value:String(Ha(t)?"":t||""),placeholder:e.kind==="password"&&Ha(t)?Tr(t):e.kind==="password"&&Ha(s)?Tr(s):l,onChange:u=>o(u.target.value)})})}function Gj(e){return e==null||e===""?"":Ha(e)?Tr(e):Array.isArray(e)?e.join(", "):typeof e=="object"?JSON.stringify(e):String(e)}function s6(){return[{key:"routing",label:f("settings_ui.cfg_overrides_label"),description:f("settings_ui.cfg_overrides_desc"),fields:[{path:"route_to_agent",label:f("settings_ui.cfg_route_to_agent"),placeholder:"master"},{path:"super_agent.model",label:f("settings_ui.cfg_super_agent_model")},{path:"super_agent.permission_mode",label:f("settings_ui.cfg_permission_mode"),kind:"select",options:Ux.map(e=>({value:e,label:e}))},{path:"super_agent.system",label:f("settings_ui.cfg_extra_prompt"),kind:"textarea"}]},{key:"telegram",label:f("settings_ui.cfg_telegram_label"),fields:[{path:"telegram.route_to_agent",label:f("settings_ui.cfg_route_to_agent")},{path:"telegram.chat_id",label:f("settings_ui.cfg_chat_id")},{path:"telegram.bot_token",label:f("settings_ui.cfg_bot_token"),kind:"password"},{path:"telegram.respond_with_engine",label:f("settings_ui.cfg_respond_with_engine"),kind:"boolean"}]},{key:"engines",label:f("settings_ui.cfg_engines_label"),fields:[{path:"engines.ollama.base_url",label:f("settings_ui.cfg_ollama_url")},{path:"engines.anthropic.api_key",label:f("settings_ui.cfg_anthropic_key"),kind:"password"},{path:"engines.openai.api_key",label:f("settings_ui.cfg_openai_key"),kind:"password"},{path:"engines.groq.api_key",label:f("settings_ui.cfg_groq_key"),kind:"password"},{path:"engines.openrouter.api_key",label:f("settings_ui.cfg_openrouter_key"),kind:"password"},{path:"engines.gemini.api_key",label:f("settings_ui.cfg_gemini_key"),kind:"password"}]}]}function r6(){return[{key:"identity",label:f("settings_ui.cfg_project_label"),description:f("settings_ui.cfg_project_desc"),fields:[{path:"name",label:f("settings_ui.cfg_name")},{path:"version",label:f("settings_ui.cfg_version")},{path:"apf",label:f("settings_ui.cfg_apc_spec")},{path:"apx",label:f("settings_ui.cfg_apx_install")},{path:"apx_id",label:f("settings_ui.cfg_apx_storage_id")}]}]}function o6({pid:e}){const t=lt(),s=Qn(),{project:o,mutate:l}=Hb(e),c=Qe(`/projects/${e}/config`,()=>ra.config.show(e)),u=String(e)==="0";if(c.isLoading)return r.jsx(ot,{});if(!c.data)return r.jsx(xt,{children:f("project.config.no_data")});const p=async g=>{await ra.apcProject.put(e,g),t.success(f("project.config.save_project")),c.mutate()},m=async g=>{await ra.config.put(e,g),t.success(f("project.config.save_override")),c.mutate()};return r.jsxs("div",{className:"space-y-6",children:[r.jsx(Ye,{title:f("project.config.section_title"),description:f("project.config.section_desc"),children:r.jsxs(sp,{defaultValue:"override",className:"space-y-4",children:[r.jsxs(rp,{children:[r.jsx(as,{value:"override",children:"Override"}),r.jsx(as,{value:"project",children:"APC project"}),r.jsx(as,{value:"effective",children:"Effective"})]}),r.jsx(za,{value:"override",children:r.jsx(fx,{sections:s6(),source:c.data.project_only,placeholderSource:c.data.effective,jsonTitle:c.data.project_config_path,jsonDescription:".apc/config.json. Overrides del proyecto.",onSaveFields:async(g,h)=>{await ra.config.set(e,g),h.length&&await ra.config.unset(e,h),t.success(f("project.config.save_fields_success")),c.mutate()},onSaveJson:m})}),r.jsx(za,{value:"project",children:r.jsx(fx,{sections:r6(),source:c.data.apc_project||{},jsonTitle:c.data.project_json_path,jsonDescription:".apc/project.json. Metadata APC portable.",onSaveFields:async(g,h)=>{await ra.apcProject.set(e,i6(g),h),t.success(f("project.config.save_meta_success")),c.mutate()},onSaveJson:p})}),r.jsx(za,{value:"effective",children:r.jsxs("div",{className:"space-y-2",children:[r.jsx("p",{className:"text-xs text-muted-fg",children:f("project.config.effective_read")}),r.jsx("pre",{className:"max-h-96 overflow-auto rounded-lg border border-border bg-muted/40 p-3 text-xs",children:JSON.stringify(c.data.effective,null,2)})]})})]})}),!u&&o?r.jsx(l6,{pid:e,label:o.name||o.path,onRebuilt:()=>c.mutate(),onUnregistered:()=>{l(),s("/")}}):null]})}function l6({pid:e,label:t,onRebuilt:s,onUnregistered:o}){const l=lt(),[c,u]=x.useState(null),[p,m]=x.useState(null),g=async()=>{u("rebuild");try{await ra.rebuild(e),l.success(f("project.rebuild_done")),s()}catch(b){l.error(b.message)}finally{u(null),m(null)}},h=async()=>{u("unregister");try{await ra.remove(e),l.success(f("project.unregistered")),o()}catch(b){l.error(b.message)}finally{u(null),m(null)}};return r.jsxs(r.Fragment,{children:[r.jsx(Ye,{title:f("project.danger.title"),description:f("project.danger.subtitle"),children:r.jsxs("div",{className:"space-y-3",children:[r.jsxs("div",{className:"flex items-start justify-between gap-3 rounded-md border border-border bg-muted/30 px-3 py-3",children:[r.jsxs("div",{className:"min-w-0",children:[r.jsx("div",{className:"text-sm font-medium",children:f("project.rebuild")}),r.jsx("div",{className:"text-xs text-muted-fg",children:f("project.danger.rebuild_desc")})]}),r.jsxs(me,{size:"sm",variant:"secondary",onClick:()=>m("rebuild"),children:[r.jsx(cs,{size:13})," ",f("project.rebuild")]})]}),r.jsxs("div",{className:"flex items-start justify-between gap-3 rounded-md border border-red-500/40 bg-red-500/5 px-3 py-3",children:[r.jsxs("div",{className:"min-w-0",children:[r.jsx("div",{className:"text-sm font-medium",children:f("admin.unregister")}),r.jsx("div",{className:"text-xs text-muted-fg",children:f("project.danger.unregister_desc")})]}),r.jsxs(me,{size:"sm",variant:"destructive",onClick:()=>m("unregister"),children:[r.jsx(ia,{size:13})," ",f("admin.unregister")]})]})]})}),r.jsx(An,{open:p==="rebuild",onClose:()=>c?null:m(null),title:f("project.danger.rebuild_confirm_title"),description:f("project.danger.rebuild_confirm_desc",{label:t}),size:"sm",footer:r.jsxs(r.Fragment,{children:[r.jsx(me,{variant:"ghost",onClick:()=>m(null),disabled:c!==null,children:f("common.cancel")}),r.jsx(me,{variant:"primary",onClick:g,loading:c==="rebuild",children:f("project.rebuild")})]}),children:r.jsx("p",{className:"text-sm text-muted-fg",children:f("project.danger.rebuild_long")})}),r.jsx(An,{open:p==="unregister",onClose:()=>c?null:m(null),title:f("project.danger.unregister_confirm_title"),description:f("project.unregister_confirm",{label:t}),size:"sm",footer:r.jsxs(r.Fragment,{children:[r.jsx(me,{variant:"ghost",onClick:()=>m(null),disabled:c!==null,children:f("common.cancel")}),r.jsx(me,{variant:"destructive",onClick:h,loading:c==="unregister",children:f("admin.unregister")})]}),children:r.jsx("p",{className:"text-sm text-muted-fg",children:f("project.danger.unregister_long")})})]})}function i6(e){const t={};for(const[s,o]of Object.entries(tv(e)))Ha(o)||(t[s]=o);return t}const c6=["","es","en","pt","fr","it","de"],Yj=e=>e.split(",").map(t=>t.trim()).filter(Boolean);function eE(e){return e.is_master?{gradient:"from-violet-600 to-indigo-600",Icon:Fs}:{gradient:"from-slate-600 to-gray-600",Icon:hn}}function u6(e){const t=e.filter(u=>u.is_master),s=t.length===1?t[0]:null,o=u=>u.parent?u.parent:s&&!u.is_master&&u.slug!==s.slug?s.slug:null,l=new Map,c=[];for(const u of e){const p=o(u);p&&e.some(m=>m.slug===p)?(l.has(p)||l.set(p,[]),l.get(p).push(u)):c.push(u)}return{roots:c,childrenByParent:l}}function d6({pid:e}){const t=Qn();lt();const s=Qe(`/projects/${e}/agents`,()=>sn.list(e)),[o,l]=x.useState("hierarchy"),[c,u]=x.useState(!1),[p,m]=x.useState(!1),g=s.data||[],h=E=>t(`/p/${e}/agents/${E}`),b=E=>t(E?`/p/${e}/chat?agent=${E}`:`/p/${e}/chat`),{roots:_,childrenByParent:k}=x.useMemo(()=>u6(g),[g]);return r.jsxs(Ye,{title:f("project.agents.title"),description:f("project.agents.subtitle_full"),action:r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsxs("div",{className:"flex rounded-lg border border-border p-0.5",children:[r.jsxs("button",{onClick:()=>l("hierarchy"),className:De("flex items-center gap-1 rounded-md px-2 py-1 text-xs",o==="hierarchy"?"bg-accent text-accent-fg":"text-muted-fg"),children:[r.jsx(Dx,{size:13})," ",f("project.agents.hierarchy")]}),r.jsxs("button",{onClick:()=>l("list"),className:De("flex items-center gap-1 rounded-md px-2 py-1 text-xs",o==="list"?"bg-accent text-accent-fg":"text-muted-fg"),children:[r.jsx(SM,{size:13})," ",f("project.agents.list_view")]})]}),r.jsxs(me,{size:"sm",variant:"ghost",onClick:()=>m(!0),children:[r.jsx(PM,{size:13})," ",f("project.agents.import")]}),r.jsxs(me,{size:"sm",variant:"secondary",onClick:()=>b(),children:[r.jsx(Fa,{size:13})," ",f("project.agents.chat")]}),r.jsxs(me,{size:"sm",variant:"primary","data-testid":"agent-new",onClick:()=>u(!0),children:[r.jsx(rn,{size:14})," ",f("project.agents.new")]})]}),children:[s.isLoading&&r.jsx(ot,{}),!s.isLoading&&g.length===0&&r.jsx(xt,{children:f("project.agents.empty_text")}),!s.isLoading&&g.length>0&&(o==="hierarchy"?r.jsx(p6,{roots:_,childrenByParent:k,onOpen:h,onChat:b}):r.jsx(m6,{agents:g,onOpen:h,onChat:b})),r.jsx(g6,{open:c,pid:e,agents:g,onClose:()=>u(!1),onCreated:()=>{u(!1),s.mutate()}}),r.jsx(f6,{open:p,pid:e,existing:g.map(E=>E.slug),onClose:()=>m(!1),onImported:()=>s.mutate()})]})}function f6({open:e,onClose:t,onImported:s,pid:o,existing:l}){const c=lt(),u=Qe(e?"/agents/vault":null,()=>sn.vault()),[p,m]=x.useState(""),g=u.data||[],h=async b=>{m(b);try{await sn.import(o,b),c.success(f("project.agents.import_success",{slug:b})),s()}catch(_){c.error(_.message)}finally{m("")}};return r.jsxs(An,{open:e,onClose:t,title:f("project.agents.import_title"),description:f("project.agents.import_desc"),size:"lg",footer:r.jsx(me,{variant:"ghost",onClick:t,children:f("common.close")}),children:[u.isLoading&&r.jsx(ot,{}),!u.isLoading&&g.length===0&&r.jsx(xt,{children:f("project.agents.import_empty")}),r.jsx("ul",{className:"space-y-2",children:g.map(b=>{const _=l.includes(b.slug);return r.jsxs("li",{className:"flex items-center gap-3 rounded-lg border border-border bg-muted/30 p-3",children:[r.jsx(hn,{size:16,className:"shrink-0 text-muted-fg"}),r.jsxs("div",{className:"min-w-0 flex-1",children:[r.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[r.jsx("span",{className:"text-sm font-medium",children:b.slug}),b.is_master&&r.jsxs(Fe,{tone:"success",children:[r.jsx(Fs,{size:9})," ",f("project.agents.orchestrator")]}),b.model&&r.jsx(Fe,{tone:"info",children:b.model})]}),b.description&&r.jsx("p",{className:"truncate text-xs text-muted-fg",children:b.description})]}),r.jsx(me,{size:"sm",variant:"primary",disabled:_||p===b.slug,loading:p===b.slug,onClick:()=>h(b.slug),children:f(_?"project.agents.import_already":"project.agents.import_btn")})]},b.slug)})})]})}function p6({roots:e,childrenByParent:t,onOpen:s,onChat:o}){return r.jsx("div",{className:"space-y-8",children:e.map(l=>{const c=t.get(l.slug)||[];return r.jsxs("div",{className:"flex flex-col items-center",children:[r.jsx(Zg,{agent:l,onOpen:s,onChat:o,wide:!0}),c.length>0&&r.jsxs(r.Fragment,{children:[r.jsx("div",{className:"h-5 w-px bg-border"}),r.jsx("div",{className:"flex flex-wrap items-start justify-center gap-4 border-t border-border pt-5",children:c.map(u=>r.jsxs("div",{className:"flex flex-col items-center",children:[r.jsx(Zg,{agent:u,onOpen:s,onChat:o}),(t.get(u.slug)||[]).length>0&&r.jsxs(r.Fragment,{children:[r.jsx("div",{className:"h-4 w-px bg-border"}),r.jsx("div",{className:"flex flex-wrap justify-center gap-3 border-t border-border pt-4",children:(t.get(u.slug)||[]).map(p=>r.jsx(Zg,{agent:p,onOpen:s,onChat:o,compact:!0},p.slug))})]})]},u.slug))})]})]},l.slug)})})}function Zg({agent:e,onOpen:t,onChat:s,wide:o,compact:l}){const{gradient:c,Icon:u}=eE(e);return r.jsxs("div",{"data-testid":`agent-card-${e.slug}`,className:De("cursor-pointer rounded-xl border border-border bg-card p-3 transition-colors hover:border-muted-fg/50",o?"w-64":l?"w-44":"w-52"),onClick:()=>t(e.slug),children:[r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx("div",{className:De("flex size-8 shrink-0 items-center justify-center rounded-lg bg-gradient-to-br",c),children:r.jsx(u,{className:"size-4 text-white"})}),r.jsx("span",{className:"truncate text-sm font-semibold",children:e.slug})]}),r.jsxs("div",{className:"mt-2 flex flex-wrap items-center gap-1",children:[e.is_master&&r.jsxs(Fe,{tone:"success",children:[r.jsx(Fs,{size:9})," ",f("project.agents.orchestrator")]}),e.role&&r.jsx(Fe,{children:e.role}),e.model&&!l&&r.jsx(Fe,{tone:"info",children:e.model})]}),r.jsxs("div",{className:"mt-2 flex items-center gap-3 border-t border-border pt-2 text-xs text-muted-fg",onClick:p=>p.stopPropagation(),children:[r.jsxs("button",{onClick:()=>t(e.slug),className:"flex items-center gap-1 hover:text-foreground",children:[r.jsx(wf,{size:12})," ",f("project.agents.view")]}),r.jsxs("button",{onClick:()=>s(e.slug),className:"flex items-center gap-1 text-emerald-500 hover:text-emerald-400",children:[r.jsx(Fa,{size:12})," ",f("project.agents.chat")]})]})]})}function m6({agents:e,onOpen:t,onChat:s}){const o=[...e].sort((l,c)=>+!!c.is_master-+!!l.is_master||l.slug.localeCompare(c.slug));return r.jsx("div",{className:"space-y-2",children:o.map(l=>{const{gradient:c,Icon:u}=eE(l);return r.jsxs("div",{"data-testid":`agent-card-${l.slug}`,className:"flex cursor-pointer items-center gap-4 rounded-xl border border-border bg-muted/30 p-3 hover:border-muted-fg/50",onClick:()=>t(l.slug),children:[r.jsx("div",{className:De("flex size-9 shrink-0 items-center justify-center rounded-xl bg-gradient-to-br",c),children:r.jsx(u,{className:"size-4 text-white"})}),r.jsxs("div",{className:"min-w-0 flex-1",children:[r.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[r.jsx("span",{className:"text-sm font-semibold",children:l.slug}),l.is_master&&r.jsxs(Fe,{tone:"success",children:[r.jsx(Fs,{size:10})," ",f("project.agents.orchestrator")]}),l.role&&r.jsx(Fe,{children:l.role}),l.model&&r.jsx(Fe,{tone:"info",children:l.model}),l.parent&&r.jsxs("span",{className:"text-[10px] text-violet-400",children:["↳ ",l.parent]})]}),l.description&&r.jsx("p",{className:"mt-1 truncate text-xs text-muted-fg",children:l.description}),r.jsxs("div",{className:"mt-1 flex flex-wrap gap-1",children:[l.skills?.map(p=>r.jsxs("span",{className:"inline-flex items-center gap-0.5 rounded bg-muted px-1 py-0.5 text-[9px] text-muted-fg",children:[r.jsx(fs,{size:9})," ",p]},p)),l.tools?.map(p=>r.jsxs("span",{className:"inline-flex items-center gap-0.5 rounded bg-muted px-1 py-0.5 text-[9px] text-muted-fg",children:[r.jsx(Kl,{size:9})," ",p]},p))]})]}),r.jsxs("div",{className:"flex shrink-0 items-center gap-3 text-xs text-muted-fg",onClick:p=>p.stopPropagation(),children:[r.jsxs("button",{onClick:()=>t(l.slug),className:"flex items-center gap-1 hover:text-foreground",children:[r.jsx(wf,{size:12})," ",f("project.agents.view")]}),r.jsxs("button",{onClick:()=>s(l.slug),className:"flex items-center gap-1 text-emerald-500 hover:text-emerald-400",children:[r.jsx(Fa,{size:12})," ",f("project.agents.chat")]})]})]},l.slug)})})}function g6({open:e,onClose:t,onCreated:s,pid:o,agents:l}){const c=lt(),[u,p]=x.useState(""),[m,g]=x.useState(""),[h,b]=x.useState(""),[_,k]=x.useState(""),[E,j]=x.useState(""),[w,S]=x.useState(""),[C,N]=x.useState(""),[R,A]=x.useState(!1),[T,M]=x.useState(""),[z,P]=x.useState(!1),D=()=>{p(""),g(""),b(""),k(""),j(""),S(""),N(""),A(!1),M("")},I=async()=>{if(!/^[a-z][a-z0-9_-]*$/.test(u)){c.error(f("project.agents.slug_invalid"));return}P(!0);try{await sn.create(o,{slug:u,role:m||void 0,model:h||void 0,language:_||void 0,description:E||void 0,skills:Yj(w),tools:Yj(C),is_master:R,parent:T||void 0}),c.success(f("project.agents.create_success",{slug:u})),s(),D()}catch(B){c.error(B?.message||f("project.agents.create_error"))}finally{P(!1)}};return r.jsx(An,{open:e,onClose:t,title:f("project.agents.new_title"),description:f("project.agents.new_desc"),size:"lg",footer:r.jsxs(r.Fragment,{children:[r.jsx(me,{variant:"ghost",onClick:t,disabled:z,children:f("common.cancel")}),r.jsx(me,{variant:"primary","data-testid":"agent-create-submit",onClick:I,loading:z,children:f("common.create")})]}),children:r.jsxs("div",{className:"space-y-3",children:[r.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[r.jsx(pe,{label:f("project.agents.slug_label"),children:r.jsx(Oe,{autoFocus:!0,"data-testid":"agent-slug",value:u,onChange:B=>p(B.target.value),placeholder:f("project.agents.slug_ph")})}),r.jsx(pe,{label:f("project.agents.role_label"),children:r.jsx(Oe,{value:m,onChange:B=>g(B.target.value),placeholder:f("project.agents.role_ph")})})]}),r.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[r.jsx(pe,{label:f("project.agents.model_label"),hint:f("project.agents.model_hint"),children:r.jsx(Oe,{value:h,onChange:B=>b(B.target.value)})}),r.jsx(pe,{label:f("project.agents.lang_label"),children:r.jsx(St,{value:_,onChange:k,options:c6.map(B=>({value:B,label:B||"—"}))})})]}),r.jsx(pe,{label:f("project.agents.desc_label"),children:r.jsx(Un,{rows:2,value:E,onChange:B=>j(B.target.value),placeholder:f("project.agents.desc_ph")})}),r.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[r.jsx(pe,{label:f("project.agents.skills_label"),children:r.jsx(Oe,{value:w,onChange:B=>S(B.target.value),placeholder:f("project.agents.skills_ph")})}),r.jsx(pe,{label:f("project.agents.tools_label"),children:r.jsx(Oe,{value:C,onChange:B=>N(B.target.value),placeholder:f("project.agents.tools_ph")})})]}),r.jsxs("div",{className:"grid grid-cols-2 items-end gap-3",children:[r.jsx(pe,{label:f("project.agents.parent_label"),hint:f("project.agents.parent_hint"),children:r.jsx(St,{value:T,onChange:M,placeholder:f("project.agents.none_parent"),options:[{value:"",label:f("project.agents.none_parent")},...l.filter(B=>B.slug!==u).map(B=>({value:B.slug,label:B.slug}))]})}),r.jsx(Qt,{checked:R,onChange:A,label:f("project.agents.master_label")})]})]})})}function kd(e){return e.split(`
|
|
618
|
+
`).map(t=>t.trim()).filter(Boolean)}function Tc(){return{exec_agent:{label:f("agents_ui.kind_exec_agent"),desc:f("agents_ui.kind_exec_agent_desc"),icon:hn},super_agent:{label:f("agents_ui.kind_super_agent"),desc:f("agents_ui.kind_super_agent_desc"),icon:Fs},telegram:{label:f("agents_ui.kind_telegram"),desc:f("agents_ui.kind_telegram_desc"),icon:Fa},shell:{label:f("agents_ui.kind_shell"),desc:f("agents_ui.kind_shell_desc"),icon:Mr},heartbeat:{label:f("agents_ui.kind_heartbeat"),desc:f("agents_ui.kind_heartbeat_desc"),icon:Ml}}}function h6(e){const t=Tc();return Object.keys(t).filter(s=>s!=="heartbeat"||e==="heartbeat").map(s=>({value:s,label:t[s].label,description:t[s].desc,icon:t[s].icon}))}function nv(e){if(!e)return"—";if(e.startsWith("every:")){const t=e.slice(6),s=t.match(/^(\d+)(s|m|h|d)$/);if(s){const o=s[1],l={s:f("agents_ui.unit_seconds"),m:f("agents_ui.unit_minutes"),h:f("agents_ui.unit_hours"),d:f("agents_ui.unit_days")}[s[2]]||s[2];return f("agents_ui.every_n_unit",{n:o,unit:l})}return f("agents_ui.every_v",{v:t})}return e.startsWith("once:")?`once · ${new Date(e.slice(5)).toLocaleString()}`:e.startsWith("cron ")?`cron · ${e.slice(5)}`:e}function x6(){return[{label:f("agents_ui.preset_every_10m"),value:"every:10m"},{label:f("agents_ui.preset_hourly"),value:"every:1h"},{label:f("agents_ui.preset_daily_9am"),value:"cron 0 9 * * *"},{label:f("agents_ui.preset_weekdays_9am"),value:"cron 0 9 * * 1-5"}]}function tE(){return[{v:"{{pre_output}}",where:"prompt",desc:f("agents_ui.var_pre_output_prompt")},{v:"$APX_LLM_OUTPUT",where:"post",desc:f("agents_ui.var_llm_output")},{v:"$APX_STATUS",where:"post",desc:f("agents_ui.var_status")},{v:"$APX_SKIPPED",where:"post",desc:f("agents_ui.var_skipped")},{v:"$APX_PRE_OUTPUT",where:"post",desc:f("agents_ui.var_pre_output")},{v:"$APX_PRE_OUTPUT_FILE",where:"post",desc:f("agents_ui.var_pre_output_file")},{v:"$APX_PRE_EXIT",where:"post",desc:f("agents_ui.var_pre_exit")},{v:"$APX_ROUTINE",where:"pre/post",desc:f("agents_ui.var_routine")}]}function ec(e){return tE().filter(t=>e==="pre"?t.where.includes("pre"):e==="prompt"?t.where==="prompt":t.where==="post"||t.where==="pre/post")}function b6({routines:e,selectedName:t,onSelect:s}){return r.jsxs("aside",{className:"flex h-full min-h-0 flex-col border-r border-border",children:[r.jsx("div",{className:"shrink-0 px-3 py-2.5 text-[11px] font-semibold uppercase tracking-wide text-muted-fg",children:f("project.routines.list_title")}),r.jsx("ul",{className:"min-h-0 flex-1 space-y-1 overflow-y-auto p-2 pt-0",children:e.map(o=>{const l=Tc()[o.kind],c=l?.icon||Ol,u=o.name===t;return r.jsx("li",{children:r.jsxs("button",{type:"button",onClick:()=>s(o.name),"aria-current":u,className:De("w-full rounded-lg border px-2.5 py-2 text-left transition-colors",u?"border-primary/50 bg-primary/10":"border-transparent hover:border-border hover:bg-accent/40"),children:[r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx("span",{className:De("flex size-6 shrink-0 items-center justify-center rounded-md",o.enabled?"bg-emerald-500/15 text-emerald-400":"bg-muted text-muted-fg"),children:r.jsx(c,{size:13})}),r.jsx("span",{className:"min-w-0 flex-1 truncate text-sm font-medium",children:o.name}),!o.enabled&&r.jsx("span",{className:"shrink-0 text-[10px] text-muted-fg",children:f("project.routines.paused")}),r.jsx(Fc,{ok:o.last_status==="ok"?!0:o.last_status==="error"?!1:null})]}),r.jsxs("div",{className:"mt-1 flex items-center justify-between gap-2 pl-8 text-[10px] text-muted-fg",children:[r.jsx("span",{className:"truncate",children:l?.label||o.kind}),r.jsxs("span",{className:"shrink-0",children:["⏱ ",nv(o.schedule)]})]})]})},o.name)})})]})}function v6({title:e,body:t,mono:s}){return r.jsxs("div",{className:"space-y-1",children:[r.jsx("div",{className:"text-[11px] font-semibold uppercase tracking-wide text-muted-fg",children:e}),r.jsx("div",{className:De("max-h-44 overflow-auto whitespace-pre-wrap break-words rounded-lg border border-border bg-muted/20 px-3 py-2 text-xs",s&&"font-mono"),children:t.trim()?t:r.jsx("span",{className:"text-muted-fg",children:f("project.routines.block_empty")})})]})}function nE(e){const t=e.meta||{};return t.skipped?"skipped":t.status==="error"?"error":"ok"}function aE(e){const t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleString(void 0,{month:"short",day:"2-digit",hour:"2-digit",minute:"2-digit"})}function sE({st:e}){return e==="ok"?r.jsx(ho,{size:13,className:"shrink-0 text-emerald-500"}):e==="error"?r.jsx(ps,{size:13,className:"shrink-0 text-destructive"}):r.jsx(GA,{size:13,className:"shrink-0 text-amber-500"})}function rE(e){return f(e==="ok"?"project.routines.status_ok":e==="error"?"project.routines.status_error":"project.routines.status_skipped")}function Wg({title:e,children:t}){return r.jsxs("div",{className:"space-y-1",children:[r.jsx("div",{className:"text-[10px] font-semibold uppercase tracking-wide text-muted-fg",children:e}),t]})}const Jg="whitespace-pre-wrap break-words rounded-lg border border-border bg-muted/20 px-3 py-2 font-mono text-[11px]";function _6({m:e,onClose:t}){const s=nE(e),o=e.meta||{},l=o.result||{},c=o.flow||null,u=String(l.reply??l.text??l.stdout??""),p=String(l.error??l.stderr??""),m=String(l.note??""),g=r.jsx("span",{className:"text-muted-fg",children:f("project.routines.block_empty")});return r.jsxs("div",{className:"flex min-h-0 flex-col border-l border-border",children:[r.jsxs("div",{className:"flex shrink-0 items-center justify-between gap-2 px-4 py-2",children:[r.jsxs("div",{className:"flex items-center gap-2 text-xs",children:[r.jsx(sE,{st:s}),r.jsx("span",{className:De("font-medium",s==="ok"&&"text-emerald-500",s==="error"&&"text-destructive",s==="skipped"&&"text-amber-500"),children:rE(s)}),r.jsx("span",{className:"font-mono text-muted-fg",children:aE(e.ts)})]}),r.jsx("button",{type:"button",onClick:t,"aria-label":f("project.routines.runs_close"),className:"rounded-md p-1 text-muted-fg hover:bg-muted hover:text-foreground",children:r.jsx(ps,{size:14})})]}),r.jsxs("div",{className:"min-h-0 flex-1 space-y-3 overflow-y-auto px-4 pb-4 text-xs",children:[e.body&&r.jsx("div",{className:"text-muted-fg",children:e.body}),c?.pre&&r.jsx(Wg,{title:f("project.routines.block_pre"),children:c.pre.output?.trim()?r.jsx("pre",{className:Jg,children:c.pre.output}):g}),r.jsx(Wg,{title:f("project.routines.runs_output"),children:u?r.jsx("pre",{className:Jg,children:u}):p?r.jsx("pre",{className:"whitespace-pre-wrap break-words rounded-lg bg-destructive/10 px-3 py-2 font-mono text-[11px] text-destructive",children:p}):m?r.jsx("div",{className:"text-muted-fg",children:m}):g}),c?.post&&c.post.length>0&&r.jsx(Wg,{title:f("project.routines.block_post"),children:r.jsx("div",{className:"space-y-1.5",children:c.post.map((h,b)=>r.jsxs("div",{className:"space-y-1",children:[r.jsxs("div",{className:"font-mono text-[10px] text-muted-fg",children:["$ ",h.cmd," ",r.jsxs("span",{className:"opacity-70",children:["· exit ",h.exit]})]}),(h.stdout||h.stderr)&&r.jsx("pre",{className:Jg,children:h.stdout||h.stderr})]},b))})})]})]})}function y6({pid:e,name:t,running:s}){const o=Qe(`/projects/${e}/routines/${t}/runs`,async()=>(await uf.project(e,{channel:"routine",limit:200})).filter(g=>g.meta?.routine===t&&(g.actor_id==="apx:routine"||g.type==="system"))),l=(o.data||[]).slice(0,50),[c,u]=x.useState(null),p=c&&l.find(m=>m.ts===c)||null;return r.jsxs("div",{className:"flex min-h-0 flex-1 flex-col border-t border-border",children:[r.jsx("div",{className:"shrink-0 px-4 pb-1.5 pt-3 text-[11px] font-semibold uppercase tracking-wide text-muted-fg",children:f("project.routines.runs_title")}),r.jsxs("div",{className:De("grid min-h-0 flex-1 overflow-hidden",p?"grid-cols-[minmax(0,1fr)_minmax(0,1.1fr)]":"grid-cols-1"),children:[r.jsxs("div",{className:"min-h-0 overflow-y-auto px-4 pb-4",children:[o.isLoading&&r.jsx(ot,{}),!o.isLoading&&l.length===0&&r.jsx("div",{className:"text-xs text-muted-fg",children:f("project.routines.runs_empty")}),r.jsxs("ul",{className:"space-y-1",children:[s&&r.jsx("li",{children:r.jsxs("div",{className:"flex w-full items-center gap-2 rounded-md border border-primary/40 bg-primary/5 px-3 py-1.5 text-xs",children:[r.jsx(ba,{size:12}),r.jsx("span",{className:"text-muted-fg",children:f("project.routines.running")})]})}),l.map((m,g)=>{const h=nE(m),b=c===m.ts;return r.jsx("li",{children:r.jsxs("button",{type:"button",onClick:()=>u(b?null:m.ts),"aria-current":b,className:De("flex w-full items-center gap-2 rounded-md border px-3 py-1.5 text-left text-xs transition-colors",b?"border-primary/50 bg-primary/10":"border-border bg-muted/30 hover:border-muted-fg/40"),children:[r.jsx(sE,{st:h}),r.jsx("span",{className:"font-mono text-muted-fg",children:aE(m.ts)}),r.jsx("span",{className:De("font-medium",h==="ok"&&"text-emerald-500",h==="error"&&"text-destructive",h==="skipped"&&"text-amber-500"),children:rE(h)})]})},`${m.ts}-${g}`)})]})]}),p&&r.jsx(_6,{m:p,onClose:()=>u(null)})]})]})}function j6({pid:e,routine:t,onEdit:s,onRun:o,onToggle:l,onDelete:c,running:u}){const p=Tc()[t.kind],m=p?.icon||Ol,g=t.spec||{},h=t.pre_commands||[],b=t.post_commands||[],_=[];return h.length&&_.push({title:f("project.routines.block_pre"),body:h.join(`
|
|
619
|
+
`),mono:!0}),t.kind==="exec_agent"||t.kind==="super_agent"?_.push({title:f("project.routines.block_prompt"),body:String(g.prompt||"")}):t.kind==="telegram"?_.push({title:f("project.routines.block_text"),body:String(g.text||"")}):t.kind==="shell"?_.push({title:f("project.routines.block_command"),body:String(g.command||""),mono:!0}):t.kind==="heartbeat"&&_.push({title:f("project.routines.block_text"),body:String(g.message||"")}),b.length&&_.push({title:f("project.routines.block_post"),body:b.join(`
|
|
620
|
+
`),mono:!0}),r.jsxs("div",{className:"flex h-full min-h-0 flex-col",children:[r.jsxs("div",{className:"min-h-0 shrink space-y-4 overflow-y-auto p-4",children:[r.jsxs("div",{className:"flex items-start justify-between gap-3",children:[r.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[r.jsx("span",{className:De("flex size-7 shrink-0 items-center justify-center rounded-lg",t.enabled?"bg-emerald-500/15 text-emerald-400":"bg-muted text-muted-fg"),children:r.jsx(m,{size:14})}),r.jsx("h3",{className:"truncate text-base font-semibold",children:t.name}),r.jsx(Fe,{tone:t.kind==="shell"?"warning":"info",children:p?.label||t.kind})]}),r.jsxs("div",{className:"flex shrink-0 items-center gap-2",children:[r.jsx(Qt,{checked:t.enabled,onChange:l}),r.jsx(et,{content:f("common.run"),children:r.jsx(me,{size:"sm",variant:"secondary",onClick:o,loading:u,children:r.jsx(Px,{size:13})})}),r.jsx(et,{content:f("project.routines.edit_hint"),children:r.jsxs(me,{size:"sm",variant:"secondary",onClick:s,children:[r.jsx(Eo,{size:13})," ",f("project.routines.edit_btn")]})}),r.jsx(et,{content:f("common.delete"),children:r.jsx(me,{size:"sm",variant:"destructive",onClick:c,children:r.jsx(ia,{size:13})})})]})]}),r.jsxs("div",{className:"flex flex-wrap items-center gap-x-4 gap-y-1 text-xs text-muted-fg",children:[r.jsxs("span",{children:["⏱ ",nv(t.schedule)]}),t.next_run_at&&r.jsxs("span",{children:[f("project.routines.next_run")," ",new Date(t.next_run_at).toLocaleString()]}),t.last_run_at&&r.jsxs("span",{children:[f("project.routines.last_run")," ",new Date(t.last_run_at).toLocaleString()]}),r.jsxs("span",{className:De(t.last_status==="ok"&&"text-emerald-500",t.last_status==="error"&&"text-destructive"),children:[f("agents_ui.last_label")," ",t.last_status||"—"]})]}),t.last_error&&r.jsx("div",{className:"rounded-md bg-destructive/10 px-2 py-1 text-xs text-destructive",children:t.last_error}),r.jsx("div",{className:"space-y-3",children:_.map(k=>r.jsx(v6,{title:k.title,body:k.body,mono:k.mono},k.title))})]}),r.jsx(y6,{pid:e,name:t.name,running:u})]})}function bl({label:e,hint:t,value:s,onChange:o,vars:l,rows:c=3,mono:u,placeholder:p}){const m=x.useRef(null),g=h=>{const b=m.current?.querySelector("textarea");if(!b){o(s?`${s}${h}`:h);return}const _=b.selectionStart??s.length,k=b.selectionEnd??s.length,E=s.slice(0,_)+h+s.slice(k);o(E),requestAnimationFrame(()=>{b.focus();const j=_+h.length;b.setSelectionRange(j,j)})};return r.jsxs("div",{className:"space-y-1",children:[r.jsx("div",{className:"text-xs font-medium text-muted-foreground",children:e}),t&&r.jsx("div",{className:"text-[11px] text-muted-foreground/70",children:t}),r.jsxs("div",{ref:m,className:"space-y-1.5",children:[r.jsx(Un,{rows:c,className:De(u&&"font-mono text-xs"),value:s,onChange:h=>o(h.target.value),placeholder:p}),l.length>0&&r.jsx("div",{className:"flex flex-wrap gap-1",children:l.map(h=>r.jsx("button",{type:"button",onClick:()=>g(h.v),className:"inline-flex items-center rounded-md border border-border bg-card px-1.5 py-0.5 font-mono text-[10px] text-muted-fg transition-colors hover:border-muted-fg/50 hover:text-foreground",children:h.v},h.v))})]})]})}function w6(){return r.jsxs("div",{className:"rounded-lg border border-border bg-muted/10 p-3",children:[r.jsx("div",{className:"mb-1.5 text-[11px] font-semibold uppercase tracking-wide text-muted-fg",children:f("project.routines.vars_title")}),r.jsx("div",{className:"flex flex-wrap gap-1.5",children:tE().map(e=>r.jsx(et,{content:r.jsx("span",{className:"block max-w-[240px] whitespace-normal leading-snug",children:e.desc}),children:r.jsxs("span",{className:"inline-flex cursor-help items-center gap-1 rounded-md border border-border bg-card px-1.5 py-0.5 font-mono text-[10px]",children:[e.v,r.jsxs("span",{className:"not-italic text-muted-fg",children:["· ",e.where]})]})},e.v))})]})}function k6({draft:e,onClose:t,onSaved:s,pid:o}){const l=lt(),c=Qe(e?`/projects/${o}/agents`:null,()=>sn.list(o)),[u,p]=x.useState(!1),[m,g]=x.useState(""),[h,b]=x.useState("super_agent"),[_,k]=x.useState("every:10m"),[E,j]=x.useState(!0),[w,S]=x.useState(""),[C,N]=x.useState(""),[R,A]=x.useState("default"),[T,M]=x.useState(""),[z,P]=x.useState(""),[D,I]=x.useState(""),[B,V]=x.useState("heartbeat"),[H,G]=x.useState(""),[q,Y]=x.useState(""),[X,$]=x.useState(""),K=Qe(e&&h==="telegram"?"/telegram/channels":null,()=>Tn.channels.list());x.useEffect(()=>{if(!e)return;const le=e.spec&&typeof e.spec=="object"?e.spec:{};g(e.name||""),b(e.kind||"super_agent"),k(e.schedule||"every:10m"),j(e.enabled??!0),S(le.agent||""),N(le.prompt||""),A(le.channel||"default"),M(le.chat_id?String(le.chat_id):""),P(le.text||""),I(le.command||""),V(le.channel||"heartbeat"),G(le.message||""),Y((e.pre_commands||[]).join(`
|
|
621
|
+
`)),$((e.post_commands||[]).join(`
|
|
622
|
+
`))},[e]);const L=h==="exec_agent"||h==="super_agent"||h==="telegram",F=()=>{switch(h){case"exec_agent":return{agent:w,prompt:C};case"super_agent":return{prompt:C};case"telegram":return{channel:R,...T?{chat_id:T}:{},text:z};case"shell":return{command:D};case"heartbeat":return{channel:B,message:H}}},W=async()=>{if(!m){l.error(f("project.routines.name_required"));return}p(!0);try{await Sr.upsert(o,{name:m,kind:h,schedule:_,enabled:E,spec:F(),pre_commands:L?kd(q):[],post_commands:L?kd(X):[]}),l.success(f("project.routines.saved")),s()}catch(le){l.error(le?.message||f("project.routines.save_error"))}finally{p(!1)}},ee=(()=>{const le=K.data?.channels||[],de=["default",...le.map(je=>je.name)];R&&!de.includes(R)&&de.push(R);const ke=new Set;return de.filter(je=>ke.has(je)?!1:(ke.add(je),!0)).map(je=>{const Be=le.find(we=>we.name===je),Ve=Be?.project?`proyecto ${Be.project}`:Be?.chat_id?`chat ${Be.chat_id}`:void 0;return{value:je,label:je,description:Ve}})})(),ce=L?kd(q):[],ue=L?kd(X):[],se=(()=>{switch(h){case"exec_agent":return w?f("agents_ui.action_agent_answers",{agent:w}):f("agents_ui.action_agent_pick_answers");case"super_agent":return f("agents_ui.action_super_answers");case"telegram":return f("agents_ui.action_telegram_channel",{channel:R});case"shell":return D?f("agents_ui.summary_runs_cmd",{cmd:D.slice(0,48)}):f("agents_ui.action_runs_shell");case"heartbeat":return f("agents_ui.summary_heartbeat")}})(),oe=h==="telegram"?z:h==="shell"?D:h==="heartbeat"?H:C,fe=Tc()[h].icon,Re=[...ce.map((le,de)=>({id:`pre-${de}`,icon:Mr,label:f("agents_ui.step_pre"),detail:le,action:!1})),{id:"action",icon:fe,label:se,detail:oe?oe.slice(0,90):f("project.routines.block_empty"),action:!0},...ue.map((le,de)=>({id:`post-${de}`,icon:Mr,label:f("agents_ui.step_post"),detail:le,action:!1}))];return r.jsx(An,{open:!!e,onClose:t,title:e?.name?f("project.routines.edit_title",{name:e.name}):f("project.routines.new_title"),description:f("project.routines.dialog_desc"),size:"xl",footer:r.jsxs(r.Fragment,{children:[r.jsx(me,{variant:"ghost",onClick:t,disabled:u,children:f("common.cancel")}),r.jsx(me,{variant:"primary",onClick:W,loading:u,children:f("common.save")})]}),children:r.jsxs("div",{className:"space-y-4",children:[r.jsxs("div",{className:"grid gap-6 md:grid-cols-2",children:[r.jsxs("div",{className:"space-y-3",children:[r.jsxs("div",{className:"flex items-center justify-between rounded-lg border border-border bg-muted/20 px-3 py-2",children:[r.jsx(Qt,{checked:E,onChange:j,label:f("project.routines.enabled_label")}),r.jsx("span",{className:"text-[11px] text-muted-fg",children:f(E?"project.routines.enabled_hint":"project.routines.disabled_hint")})]}),r.jsx(pe,{label:f("project.routines.name_field"),hint:e?.name?f("project.routines.name_no_edit"):void 0,children:r.jsx(Oe,{value:m,disabled:!!e?.name,onChange:le=>g(le.target.value),placeholder:"resumen-diario"})}),r.jsx(pe,{label:f("project.routines.kind_field"),children:r.jsx(St,{value:h,onChange:le=>b(le),options:h6(h)})}),r.jsx("p",{className:"-mt-1 text-[11px] text-muted-fg",children:Tc()[h].desc}),h==="exec_agent"&&r.jsx(pe,{label:f("project.routines.agent_field"),hint:f("project.routines.agent_hint"),children:r.jsx(St,{value:w,onChange:S,placeholder:c.isLoading?f("project.routines.agent_loading"):f("project.routines.agent_pick"),options:(c.data||[]).map(le=>({value:le.slug,label:le.slug,description:[le.role,le.model].filter(Boolean).join(" · ")||void 0}))})}),r.jsx(pe,{label:f("project.routines.schedule_field"),hint:f("project.routines.schedule_hint"),children:r.jsxs("div",{className:"space-y-2",children:[r.jsxs("div",{className:"flex flex-wrap gap-1",children:[x6().map(le=>r.jsx("button",{type:"button",onClick:()=>k(le.value),className:De("rounded-md border px-2 py-0.5 text-[11px]",_===le.value?"border-emerald-500/50 text-emerald-400":"border-border text-muted-fg hover:text-foreground"),children:le.label},le.value)),r.jsx("button",{type:"button",onClick:()=>k("manual"),className:De("rounded-md border px-2 py-0.5 text-[11px]",_==="manual"?"border-emerald-500/50 text-emerald-400":"border-border text-muted-fg hover:text-foreground"),children:f("agents_ui.preset_manual")})]}),r.jsx(Oe,{value:_,onChange:le=>k(le.target.value),placeholder:"every:10m · cron 0 9 * * 1-5 · once:ISO · manual"})]})}),r.jsx(w6,{})]}),r.jsxs("div",{className:"space-y-3",children:[L&&r.jsx(bl,{label:f("project.routines.pre_field"),hint:f("project.routines.pre_hint"),rows:2,mono:!0,value:q,onChange:Y,vars:ec("pre"),placeholder:"curl -s https://wttr.in/Bariloche"}),h==="exec_agent"&&r.jsx(bl,{label:f("project.routines.prompt_exec"),rows:4,value:C,onChange:N,vars:ec("prompt"),placeholder:f("project.routines.prompt_exec_ph")}),h==="super_agent"&&r.jsx(bl,{label:f("project.routines.prompt_super"),rows:4,value:C,onChange:N,vars:ec("prompt"),placeholder:f("project.routines.prompt_super_ph")}),h==="telegram"&&r.jsxs(r.Fragment,{children:[r.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[r.jsx(pe,{label:f("project.routines.tg_channel"),children:r.jsx(St,{value:R,onChange:A,options:ee})}),r.jsx(pe,{label:f("project.routines.tg_chat_id"),children:r.jsx(Oe,{value:T,onChange:le=>M(le.target.value),placeholder:f("agents_ui.tg_chat_id_ph")})})]}),r.jsx(bl,{label:f("project.routines.tg_text"),hint:f("project.routines.tg_text_hint"),rows:6,value:z,onChange:P,vars:ec("prompt"),placeholder:f("agents_ui.tg_text_ph")})]}),h==="shell"&&r.jsx(bl,{label:f("project.routines.shell_field"),hint:f("project.routines.shell_hint"),rows:11,mono:!0,value:D,onChange:I,vars:[],placeholder:"cd /repo && git pull && npm test"}),h==="heartbeat"&&r.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[r.jsx(pe,{label:f("project.routines.hb_channel"),children:r.jsx(Oe,{value:B,onChange:le=>V(le.target.value),placeholder:"heartbeat"})}),r.jsx(pe,{label:f("project.routines.hb_message"),children:r.jsx(Oe,{value:H,onChange:le=>G(le.target.value),placeholder:f("agents_ui.hb_message_ph")})})]}),L&&r.jsx(bl,{label:f("project.routines.post_field"),hint:f("project.routines.post_hint"),rows:2,mono:!0,value:X,onChange:$,vars:ec("post"),placeholder:'apx telegram send "$APX_LLM_OUTPUT"'})]})]}),r.jsxs("div",{className:"rounded-lg border border-border bg-muted/20 p-3",children:[r.jsxs("div",{className:"mb-2 text-xs font-semibold text-muted-fg",children:[f("project.routines.what_happens")," ",r.jsxs("span",{className:"font-normal text-muted-fg",children:["· ⏱ ",nv(_)]})]}),r.jsx("div",{className:"flex flex-wrap items-stretch gap-2",children:Re.map((le,de)=>r.jsxs("div",{className:"flex items-stretch gap-2",children:[r.jsxs("div",{className:De("flex max-w-[240px] flex-col gap-1 rounded-lg border px-2.5 py-2",le.action?"border-emerald-500/40 bg-emerald-500/5":"border-border bg-card"),children:[r.jsxs("div",{className:De("flex items-center gap-1.5 text-[11px] font-medium",le.action?"text-emerald-400":"text-muted-fg"),children:[r.jsx(le.icon,{size:12})," ",le.label]}),le.detail&&r.jsx("div",{className:"line-clamp-2 font-mono text-[10px] text-muted-fg",children:le.detail})]}),de<Re.length-1&&r.jsx(Tk,{size:14,className:"shrink-0 self-center text-muted-fg"})]},le.id))})]})]})})}function S6({pid:e}){const t=lt(),s=Qe(`/projects/${e}/routines`,()=>Sr.list(e)),[o,l]=jf(),[c,u]=x.useState(null),[p,m]=x.useState(null),[g,h]=x.useState(!1),[b,_]=x.useState(null),[k,E]=x.useState(null),j=s.data||[],w=o.get("r_id"),S=j.find(T=>T.name===w)||null,C=T=>l(M=>{const z=new URLSearchParams(M);return T?z.set("r_id",T):z.delete("r_id"),z},{replace:!0});x.useEffect(()=>{j.length!==0&&(w&&j.some(T=>T.name===w)||C(j[0].name))},[j,w]);const N=async T=>{try{await(T.enabled?Sr.disable:Sr.enable)(e,T.name),s.mutate()}catch(M){t.error(M?.message||f("project.routines.toggle_error"))}},R=async()=>{if(!b)return;const T=b;_(null),E(T.name);try{await Sr.run(e,T.name),t.success(f("project.routines.run_success",{name:T.name})),await Promise.all([s.mutate(),rC(`/projects/${e}/routines/${T.name}/runs`)])}catch(M){t.error(M?.message||f("project.routines.run_error"))}finally{E(null)}},A=async()=>{if(p){h(!0);try{await Sr.remove(e,p.name),t.success(f("project.routines.delete_success")),w===p.name&&C(null),m(null),s.mutate()}catch(T){t.error(T?.message||f("project.routines.delete_error"))}finally{h(!1)}}};return r.jsxs("div",{className:"flex h-full min-h-0 flex-col gap-3",children:[r.jsxs("div",{className:"flex shrink-0 items-start justify-between gap-4",children:[r.jsxs("div",{children:[r.jsx("h2",{className:"text-lg font-semibold tracking-tight",children:f("project.routines.title")}),r.jsx("p",{className:"mt-0.5 text-sm text-muted-fg",children:f("project.routines.subtitle")})]}),r.jsxs(me,{size:"sm",variant:"primary",onClick:()=>u({kind:"super_agent",schedule:"every:10m",enabled:!0}),children:[r.jsx(rn,{size:14})," ",f("project.routines.new_btn")]})]}),s.isLoading&&r.jsx(ot,{}),!s.isLoading&&j.length===0&&r.jsx(xt,{children:f("project.routines.empty")}),j.length>0&&r.jsxs("div",{className:"grid min-h-0 flex-1 grid-rows-[minmax(0,1fr)] grid-cols-[minmax(200px,260px)_1fr] overflow-hidden rounded-xl border border-border bg-card/40",children:[r.jsx(b6,{routines:j,selectedName:S?.name??null,onSelect:C}),r.jsx("div",{className:"min-h-0 min-w-0 overflow-hidden",children:S?r.jsx(j6,{pid:e,routine:S,onEdit:()=>u({...S}),onRun:()=>_(S),onToggle:()=>N(S),onDelete:()=>m(S),running:k===S.name},S.name):r.jsx("div",{className:"flex h-full items-center justify-center p-8",children:r.jsx("p",{className:"text-sm text-muted-fg",children:f("project.routines.detail_empty")})})})]}),r.jsx(k6,{draft:c,onClose:()=>u(null),onSaved:()=>{u(null),s.mutate()},pid:e}),r.jsx(An,{open:!!p,onClose:()=>g?null:m(null),title:f("project.routines.delete_confirm",{name:p?.name||""}),size:"sm",footer:r.jsxs(r.Fragment,{children:[r.jsx(me,{variant:"ghost",onClick:()=>m(null),disabled:g,children:f("common.cancel")}),r.jsx(me,{variant:"destructive",onClick:A,loading:g,children:f("common.delete")})]}),children:r.jsx("p",{className:"text-sm text-muted-fg",children:f("project.routines.delete_confirm_body")})}),r.jsx(An,{open:!!b,onClose:()=>_(null),title:f("project.routines.run_confirm",{name:b?.name||""}),size:"sm",footer:r.jsxs(r.Fragment,{children:[r.jsx(me,{variant:"ghost",onClick:()=>_(null),children:f("common.cancel")}),r.jsx(me,{variant:"primary",onClick:R,children:f("common.run")})]}),children:r.jsx("p",{className:"text-sm text-muted-fg",children:f("project.routines.run_confirm_body")})})]})}function C6({pid:e}){const[t,s]=x.useState("open"),o=lt(),l=Qe(`/projects/${e}/tasks?state=${t}`,()=>Cr.list(e,t),{dedupingInterval:0,revalidateOnFocus:!0}),[c,u]=x.useState(""),[p,m]=x.useState(!1),g=async()=>{if(c.trim()){m(!0);try{await Cr.add(e,{title:c.trim()}),u(""),o.success(f("project.tasks.created")),l.mutate()}catch(b){o.error(b?.message||f("project.tasks.create_error"))}finally{m(!1)}}},h=async(b,_)=>{try{await b(),o.success(_),l.mutate()}catch(k){o.error(k?.message||f("common.error_generic"))}};return r.jsxs(Ye,{title:f("project.tasks.title"),description:f("project.tasks.subtitle"),action:r.jsx("div",{className:"flex gap-1",children:["open","done","dropped"].map(b=>r.jsx(me,{size:"sm","data-testid":`task-filter-${b}`,variant:t===b?"primary":"ghost",onClick:()=>s(b),children:b},b))}),children:[r.jsxs("div",{className:"mb-4 flex items-end gap-2",children:[r.jsx(pe,{label:f("project.tasks.add_label"),children:r.jsx(Oe,{"data-testid":"task-input",placeholder:f("project.tasks.add_placeholder"),value:c,onChange:b=>u(b.target.value),onKeyDown:b=>{b.key==="Enter"&&g()}})}),r.jsxs(me,{variant:"primary","data-testid":"task-add",onClick:g,loading:p,children:[r.jsx(rn,{size:14})," ",f("project.tasks.add")]})]}),l.isLoading&&r.jsx(ot,{}),!l.isLoading&&(l.data?.length??0)===0&&r.jsxs(xt,{children:[t==="open"?f("project.tasks.empty_open"):f("project.tasks.empty",{state:t})," ",r.jsx("code",{children:'apx task add "…"'})]}),r.jsx("ul",{className:"space-y-2 text-sm","data-testid":"task-list",children:(l.data||[]).map(b=>r.jsxs("li",{"data-testid":`task-${b.id}`,className:"flex items-start gap-3 rounded-md border border-border bg-muted/30 px-3 py-2",children:[r.jsx("span",{className:"mt-0.5 font-mono text-[10px] text-muted-fg",children:b.id}),r.jsxs("div",{className:"flex-1",children:[r.jsx("div",{className:"font-medium",children:b.title}),r.jsxs("div",{className:"mt-0.5 flex flex-wrap items-center gap-2 text-xs text-muted-fg",children:[b.tags?.map(_=>r.jsxs(Fe,{children:["#",_]},_)),b.agent&&r.jsxs(Fe,{tone:"info",children:["@",b.agent]}),b.source&&r.jsxs("span",{children:[f("project.tasks.via")," ",b.source]}),b.due&&r.jsxs("span",{children:[f("project.tasks.due")," ",b.due]})]})]}),r.jsxs("div",{className:"flex gap-1",children:[t==="open"&&r.jsxs(r.Fragment,{children:[r.jsx(me,{size:"sm",variant:"secondary","aria-label":f("project.tasks.aria_done"),"data-testid":`task-done-${b.id}`,onClick:()=>h(()=>Cr.done(e,b.id),f("project.tasks.done")),children:r.jsx(ho,{size:13})}),r.jsx(me,{size:"sm",variant:"destructive","aria-label":f("project.tasks.aria_drop"),"data-testid":`task-drop-${b.id}`,onClick:()=>h(()=>Cr.drop(e,b.id),f("project.tasks.drop")),children:r.jsx(ia,{size:13})})]}),t!=="open"&&r.jsx(me,{size:"sm",variant:"ghost","aria-label":f("project.tasks.aria_reopen"),"data-testid":`task-reopen-${b.id}`,onClick:()=>h(()=>Cr.reopen(e,b.id),f("project.tasks.reopen")),children:r.jsx(Ix,{size:13})})]})]},b.id))})]})}const E6="\\$\\{var\\.([^}\\s]+)\\}";function oE(e="g"){return new RegExp(E6,e)}function lE(e){return oE("").test(e)}function N6(e){const t=[];let s=0;for(const o of e.matchAll(oE("g"))){const l=o.index??0;l>s&&t.push({type:"text",value:e.slice(s,l)}),t.push({type:"var",value:o[1]}),s=l+o[0].length}return s<e.length&&t.push({type:"text",value:e.slice(s)}),t}function eh(e){let t="";for(const s of Array.from(e.childNodes))if(s.nodeType===Node.TEXT_NODE)t+=s.textContent??"";else if(s instanceof HTMLElement){const o=s.dataset.varName;o?t+=`\${var.${o}}`:s.tagName==="BR"?t+="":t+=s.textContent??""}return t.replace(/[\u200B-\u200F\u202A-\u202E\u2060\uFEFF]/g,"").replace(/\u00A0/g," ")}function Xj(e,t){e.replaceChildren();const s=N6(t);for(const o of s)o.type==="text"?e.appendChild(document.createTextNode(o.value)):e.appendChild(iE(o.value));(s.length===0||s[s.length-1].type==="var")&&e.appendChild(document.createTextNode(""))}function iE(e){const t=document.createElement("span");return t.contentEditable="false",t.dataset.varName=e,t.className="inline-flex items-baseline px-1 rounded bg-primary/10 text-primary font-mono text-[12px] select-none cursor-default whitespace-nowrap",t.textContent=`$${e}`,t.title=`\${var.${e}}`,t}function R6(e,t){e.deleteContents(),e.insertNode(t),e.setStartAfter(t),e.collapse(!0);const s=window.getSelection();s?.removeAllRanges(),s?.addRange(e)}function T6(e){const t=document.createRange();t.selectNodeContents(e),t.collapse(!1);const s=window.getSelection();s?.removeAllRanges(),s?.addRange(t)}const av=x.forwardRef(function({value:t,onChange:s,placeholder:o,className:l,varNames:c=[],onCreateVar:u},p){const m=x.useRef(null),g=x.useRef(null),[h,b]=x.useState(!1),[_,k]=x.useState(""),E=x.useRef(t);x.useEffect(()=>{const A=m.current;A&&(t===E.current&&A.childNodes.length>0||(Xj(A,t),E.current=t))},[t]);const j=x.useCallback(()=>{const A=m.current;if(!A)return;const T=eh(A);E.current=T,T!==t&&s(T)},[s,t]),w=x.useCallback(()=>{const A=m.current;if(!A)return;const T=eh(A);if(lE(T)&&M6(A)){const M=O6(A);Xj(A,T),M!=null&&z6(A,M)}E.current=eh(A),E.current!==t&&s(E.current)},[s,t]),S=x.useCallback(()=>{const A=window.getSelection();if(!A||A.rangeCount===0)return;const T=A.getRangeAt(0),M=m.current;M&&M.contains(T.startContainer)&&(g.current=T.cloneRange())},[]),C=x.useCallback(A=>{if(A.key==="Enter"){A.preventDefault(),A.currentTarget.blur();return}if(A.key==="Backspace"){const T=window.getSelection();if(!T||T.rangeCount===0)return;const M=T.getRangeAt(0);if(!M.collapsed)return;const{startContainer:z,startOffset:P}=M;if(z.nodeType===Node.TEXT_NODE&&P===0){const D=z.previousSibling;if(D instanceof HTMLElement&&D.dataset.varName){A.preventDefault(),D.remove(),j();return}}else if(z===m.current){const D=z.childNodes[P-1];if(D instanceof HTMLElement&&D.dataset.varName){A.preventDefault(),D.remove(),j();return}}}},[j]),N=x.useCallback(A=>{const T=m.current;if(!T)return;const M=g.current;T.focus();let z;M&&T.contains(M.startContainer)?z=M:(z=document.createRange(),z.selectNodeContents(T),z.collapse(!1)),R6(z,iE(A)),g.current=null,j()},[j]);x.useImperativeHandle(p,()=>({insertVar:N,focus:()=>m.current?.focus()}),[N]);const R=c.filter(A=>A.toLowerCase().includes(_.toLowerCase()));return r.jsxs("div",{className:De("group flex items-stretch w-full min-w-0 rounded-lg border border-input bg-transparent dark:bg-input/30 transition-colors","focus-within:border-ring focus-within:ring-3 focus-within:ring-ring/50",l),children:[r.jsxs("div",{className:"relative flex-1 min-w-0",children:[r.jsx("div",{ref:m,role:"textbox",contentEditable:!0,suppressContentEditableWarning:!0,onInput:w,onKeyDown:C,onBlur:j,onFocus:S,onMouseUp:S,onKeyUp:S,className:De("h-8 w-full whitespace-nowrap overflow-x-auto px-2.5 py-1 text-sm rounded-l-lg","focus:outline-none font-mono leading-7","[&_*]:align-baseline"),"data-placeholder":o||"",style:{caretColor:"currentColor"}}),t===""&&o&&r.jsx("span",{className:"pointer-events-none absolute left-2.5 top-1/2 -translate-y-1/2 select-none text-sm text-muted-foreground font-mono",children:o})]}),r.jsxs("div",{className:"relative flex",children:[r.jsx(et,{content:f("chat_ui.insert_variable"),children:r.jsx("button",{type:"button",onMouseDown:A=>{A.preventDefault(),S()},onClick:()=>b(A=>!A),"aria-label":f("chat_ui.insert_variable"),className:De("flex items-center justify-center px-2 min-w-8 border-l border-input text-muted-foreground rounded-r-lg","hover:bg-muted/60 hover:text-foreground transition-colors",h&&"bg-muted/60 text-foreground"),children:r.jsx(rn,{size:14})})}),h&&r.jsx(A6,{query:_,onQuery:k,varNames:R,onPick:A=>{N(A),b(!1),k("")},onClose:()=>{b(!1),k("")},onCreateVar:u})]})]})});function A6({query:e,onQuery:t,varNames:s,onPick:o,onClose:l,onCreateVar:c}){const u=x.useRef(null),p=x.useRef(null);return x.useEffect(()=>{p.current?.focus({preventScroll:!0})},[]),x.useEffect(()=>{function m(g){u.current&&!u.current.contains(g.target)&&l()}return document.addEventListener("mousedown",m),()=>document.removeEventListener("mousedown",m)},[l]),r.jsxs("div",{ref:u,className:"absolute right-0 top-full z-50 mt-1 w-64 rounded-md border border-border bg-popover shadow-lg",children:[r.jsx("div",{className:"border-b border-border p-2",children:r.jsx("input",{ref:p,value:e,onChange:m=>t(m.target.value),placeholder:f("shared_ui.search_variable_ph"),className:"w-full rounded bg-muted/40 px-2 py-1 text-xs font-mono outline-none"})}),r.jsxs("ul",{className:"max-h-44 overflow-auto p-1 text-xs",children:[s.length===0&&r.jsx("li",{className:"px-2 py-1.5 text-muted-foreground",children:f("shared_ui.no_matches")}),s.map(m=>r.jsx("li",{children:r.jsx("button",{type:"button",onMouseDown:g=>g.preventDefault(),onClick:()=>o(m),className:"block w-full rounded px-2 py-1.5 text-left font-mono hover:bg-muted/60",children:m})},m))]}),c&&r.jsx("div",{className:"border-t border-border p-1",children:r.jsxs("button",{type:"button",onMouseDown:m=>m.preventDefault(),onClick:()=>{c(),l()},className:"flex w-full items-center gap-1 rounded px-2 py-1.5 text-left text-xs hover:bg-muted/60",children:[r.jsx(rn,{size:12})," ",f("shared_ui.create_variable")]})})]})}function M6(e){for(const t of Array.from(e.childNodes))if(t.nodeType===Node.TEXT_NODE&&lE(t.textContent??""))return!0;return!1}function O6(e){const t=window.getSelection();if(!t||t.rangeCount===0)return null;const s=t.getRangeAt(0);if(!e.contains(s.startContainer))return null;const o=s.cloneRange();return o.selectNodeContents(e),o.setEnd(s.startContainer,s.startOffset),o.toString().length}function z6(e,t){const s=document.createTreeWalker(e,NodeFilter.SHOW_TEXT);let o=t,l=s.nextNode();for(;l;){const c=(l.textContent??"").length;if(o<=c){const u=document.createRange();u.setStart(l,o),u.collapse(!0);const p=window.getSelection();p?.removeAllRanges(),p?.addRange(u);return}o-=c,l=s.nextNode()}T6(e)}function Kj(e){return e?Object.entries(e).map(([t,s])=>({key:t,value:String(s)})):[]}function Qj(e){const t={};for(const s of e)s.key.trim()&&(t[s.key.trim()]=s.value);return t}function Zj({rows:e,onChange:t,keyPlaceholder:s=f("shared_ui.kv_key_ph"),valuePlaceholder:o=f("shared_ui.kv_value_ph"),varNames:l,onCreateVar:c,emptyLabel:u}){const p=(h,b)=>{const _=e.slice();_[h]={..._[h],...b},t(_)},m=h=>t(e.filter((b,_)=>_!==h)),g=()=>t([...e,{key:"",value:""}]);return r.jsxs("div",{className:"space-y-2",children:[e.length===0&&u&&r.jsx("p",{className:"text-[11px] text-muted-foreground",children:u}),e.map((h,b)=>r.jsxs("div",{className:"flex items-start gap-2",children:[r.jsx(Oe,{value:h.key,onChange:_=>p(b,{key:_.target.value}),placeholder:s,className:"w-40 font-mono text-xs"}),r.jsx("div",{className:"flex-1",children:r.jsx(av,{value:h.value,onChange:_=>p(b,{value:_}),placeholder:o,varNames:l,onCreateVar:c})}),r.jsx(me,{type:"button",size:"sm",variant:"ghost",onClick:()=>m(b),"aria-label":f("shared_ui.remove_row"),children:r.jsx(ia,{size:13})})]},b)),r.jsxs(me,{type:"button",size:"sm",variant:"ghost",onClick:g,children:[r.jsx(rn,{size:12})," ",f("shared_ui.add_row")]})]})}const D6={apc:"info",runtime:"success",global:"muted"};function px(e){return e==="runtime"?"runtime":e==="global"?"global":"shared"}function L6(e){return e==="apc"?f("project.mcps.scope_shared"):e==="runtime"?f("project.mcps.scope_runtime"):e==="global"?f("project.mcps.scope_global"):e}function P6({pid:e}){const t=lt(),s=Qe(`/projects/${e}/mcps`,()=>Er.list(e)),o=Qe(`/projects/${e}/mcps/check`,()=>Er.check(e)),l=Qe(`/projects/${e}/vars`,()=>Rc.list(e)),[c,u]=x.useState(null),[p,m]=x.useState(null),[g,h]=x.useState(null),b=x.useMemo(()=>l.data?Object.keys(l.data.effective).sort():[],[l.data]),_=async(j,w)=>{if(confirm(f("project.mcps.delete_confirm",{name:j,scope:w})))try{await Er.remove(e,j,w),t.success(f("project.mcps.removed")),s.mutate(),p===j&&m(null)}catch(S){t.error(S?.message||f("common.error_generic"))}},k=async j=>{try{await Er.add(e,px(j.source),{name:j.name,enabled:!j.enabled}),s.mutate()}catch(w){t.error(w?.message||f("common.error_generic"))}},E=async j=>{m(j),h({name:j,busy:!0});try{const w=await Er.test(e,j);h({name:j,result:w})}catch(w){h({name:j,result:{ok:!1,error:w?.message||"error"}})}};return r.jsxs("div",{className:"grid grid-cols-1 gap-4 lg:grid-cols-4",children:[r.jsx("div",{className:"lg:col-span-3",children:r.jsxs(Ye,{title:f("project.mcps.title"),description:f("project.mcps.subtitle"),action:r.jsxs(me,{size:"sm",variant:"primary",onClick:()=>u({kind:"new"}),children:[r.jsx(rn,{size:14})," ",f("project.mcps.new")]}),children:[o.data?.conflicts?.length?r.jsx("div",{className:"mb-3 rounded-md border border-amber-500/40 bg-amber-500/10 p-2 text-xs",children:f("project.mcps.conflicts",{names:o.data.conflicts.map(j=>j.name).join(", ")})}):null,s.isLoading&&r.jsx(ot,{}),!s.isLoading&&(s.data?.length??0)===0&&r.jsx(xt,{children:f("project.mcps.empty")}),r.jsx("ul",{className:"space-y-2 text-sm",children:(s.data||[]).map(j=>{const w=j.source==="apc"||j.source==="runtime"||j.source==="global",S=px(j.source),C=p===j.name;return r.jsxs("li",{className:"rounded-md border px-3 py-2 transition-colors "+(C?"border-primary/50 bg-primary/5":"border-border bg-muted/30 hover:bg-muted/50"),onClick:()=>m(j.name),role:"button",children:[r.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[r.jsx("span",{className:"font-medium",children:j.name}),r.jsx(Fe,{tone:D6[j.source]??"muted",children:L6(j.source)}),r.jsx("span",{className:"ml-auto text-xs text-muted-fg",children:(j.transport||"stdio").toUpperCase()}),r.jsx("div",{onClick:N=>N.stopPropagation(),children:r.jsx(Qt,{checked:j.enabled!==!1,onChange:()=>k(j),label:""})}),r.jsx(et,{content:f("project.mcps.test_btn"),children:r.jsx(me,{size:"sm",variant:"ghost",onClick:N=>{N.stopPropagation(),E(j.name)},"aria-label":f("project.mcps.test_btn"),children:r.jsx(zk,{size:13})})}),r.jsx(et,{content:f("project.mcps.logs_btn"),children:r.jsx(me,{size:"sm",variant:"ghost",onClick:N=>{N.stopPropagation(),m(j.name)},"aria-label":f("project.mcps.logs_btn"),children:r.jsx(Gd,{size:13})})}),w&&r.jsx(et,{content:f("project.mcps.edit_btn"),children:r.jsx(me,{size:"sm",variant:"ghost",onClick:N=>{N.stopPropagation(),u({kind:"edit",entry:j})},"aria-label":f("project.mcps.edit_btn"),children:r.jsx(Eo,{size:13})})}),w&&r.jsx(me,{size:"sm",variant:"destructive",onClick:N=>{N.stopPropagation(),_(j.name,S)},children:r.jsx(ia,{size:13})})]}),g?.name===j.name&&r.jsx(I6,{result:g.result,busy:!!g.busy,onClose:()=>h(null)})]},`${j.source}-${j.name}`)})}),c&&r.jsx(U6,{mode:c,pid:e,varNames:b,onClose:()=>u(null),onSaved:()=>{u(null),s.mutate()},onVarsChanged:()=>l.mutate()})]})}),r.jsx("div",{className:"lg:col-span-1",children:r.jsx(B6,{pid:e,mcpName:p,runningTest:!!g?.busy})})]})}function I6({result:e,busy:t,onClose:s}){return r.jsxs("div",{className:"mt-2 rounded border border-border/60 bg-background/40 p-2 text-xs",children:[r.jsxs("div",{className:"mb-1 flex items-center gap-2",children:[t&&r.jsx("span",{className:"text-muted-fg",children:f("project.mcps.testing")}),!t&&e?.ok&&r.jsxs("span",{className:"flex items-center gap-1 text-emerald-400",children:[r.jsx(Mx,{size:12})," ",f("project.mcps.test_ok",{n:String(e.tool_count??0)})]}),!t&&e&&!e.ok&&r.jsxs("span",{className:"flex items-center gap-1 text-red-400",children:[r.jsx(ZA,{size:12})," ",e.error]}),r.jsx("button",{className:"ml-auto text-muted-fg hover:text-fg",onClick:s,children:"×"})]}),!t&&e?.ok&&e.tools&&e.tools.length>0&&r.jsxs("ul",{className:"space-y-0.5 font-mono",children:[e.tools.slice(0,10).map(o=>r.jsxs("li",{className:"truncate",children:[r.jsx("span",{className:"text-primary",children:o.name}),o.description&&r.jsxs("span",{className:"ml-2 text-muted-fg",children:["— ",o.description]})]},o.name)),e.tools.length>10&&r.jsxs("li",{className:"text-muted-fg",children:["… +",e.tools.length-10]})]})]})}function B6({pid:e,mcpName:t,runningTest:s}){const[o,l]=x.useState(null),[c,u]=x.useState(null),p=x.useRef(null);x.useEffect(()=>{if(!t){l(null),u(null);return}p.current!==t&&(l(null),u(null),p.current=t);let g=!1;const h=async()=>{try{const k=await Er.logs(e,t);g||(l(k),u(null))}catch(k){g||u(k?.message||"error")}};h();const _=setInterval(h,s?1200:4e3);return()=>{g=!0,clearInterval(_)}},[e,t,s]);const m=x.useRef(null);return x.useEffect(()=>{m.current&&(m.current.scrollTop=m.current.scrollHeight)},[o?.events?.length,o?.stderr_tail]),r.jsxs("div",{className:"sticky top-3 flex h-[calc(100vh-7rem)] min-h-[24rem] flex-col rounded-xl border border-border bg-card",children:[r.jsxs("div",{className:"flex items-center gap-2 border-b border-border px-3 py-2 text-xs",children:[r.jsx(Mr,{size:13,className:"text-muted-fg"}),r.jsx("span",{className:"font-medium",children:f("project.mcps.logs_panel_title")}),t?r.jsx(Fe,{tone:"info",children:t}):r.jsxs("span",{className:"text-muted-fg",children:["— ",f("project.mcps.logs_panel_pick")]})]}),r.jsxs("div",{ref:m,className:"flex-1 overflow-auto bg-background/60 px-3 py-2 font-mono text-[11px]",children:[!t&&r.jsx("p",{className:"text-muted-fg",children:f("project.mcps.logs_panel_hint")}),t&&c&&r.jsx("p",{className:"text-red-400",children:c}),t&&!c&&o&&r.jsxs(r.Fragment,{children:[r.jsxs("div",{className:"mb-2 text-muted-fg",children:[o.transport.toUpperCase(),o.url?` · ${o.url}`:o.command?` · ${o.command}`:"",o.last_error?` · last_error: ${o.last_error}`:""]}),o.note&&r.jsx("p",{className:"text-muted-fg",children:o.note}),(!o.events||o.events.length===0)&&!o.stderr_tail&&!o.note&&r.jsx("p",{className:"text-muted-fg",children:f("project.mcps.logs_panel_idle")}),o.events?.map((g,h)=>r.jsxs("div",{className:"flex gap-2",children:[r.jsx("span",{className:"text-muted-fg",children:g.ts.slice(11,19)}),r.jsx("span",{className:g.level==="error"?"text-red-400":g.level==="stderr"?"text-amber-400":"text-emerald-400",children:g.level}),r.jsx("span",{className:"flex-1 break-all",children:g.msg})]},h)),o.stderr_tail&&r.jsxs("div",{className:"mt-2 border-t border-border/60 pt-2",children:[r.jsx("div",{className:"mb-1 text-muted-fg",children:"stderr"}),r.jsx("pre",{className:"whitespace-pre-wrap break-all text-amber-300/80",children:o.stderr_tail})]})]})]})]})}function U6({mode:e,pid:t,varNames:s,onClose:o,onSaved:l,onVarsChanged:c}){const u=lt(),p=e.kind==="edit",m=p?e.entry:null,[g,h]=x.useState(!1),[b,_]=x.useState(m?px(m.source):"runtime"),[k,E]=x.useState(m?.name||""),[j,w]=x.useState(m?.transport==="http"||m?.url?"http":"stdio"),[S,C]=x.useState(m?.command||""),[N,R]=x.useState(m?.args&&m.args.length?m.args:[""]),[A,T]=x.useState(Kj(m?.env)),[M,z]=x.useState(m?.url||""),[P,D]=x.useState(Kj(m?.headers)),[I,B]=x.useState(m?.enabled!==!1),[V,H]=x.useState(!1),G=async()=>{if(!k.trim()){u.error(f("project.mcps.name_required"));return}h(!0);try{const q=N.map(X=>X.trim()).filter(Boolean),Y=j==="stdio"?{name:k.trim(),command:S.trim(),args:q.length?q:void 0,env:A.length?Qj(A):void 0,enabled:I}:{name:k.trim(),url:M.trim(),headers:P.length?Qj(P):void 0,enabled:I};await Er.add(t,b,Y),u.success(f(p?"project.mcps.updated":"project.mcps.added")),l()}catch(q){u.error(q?.message||f("common.error_generic"))}finally{h(!1)}};return r.jsxs(r.Fragment,{children:[r.jsx(An,{open:!0,onClose:()=>g?null:o(),title:f(p?"project.mcps.edit_title":"project.mcps.new_title"),description:p?m?.name:f("project.mcps.new_desc"),size:"lg",footer:r.jsxs(r.Fragment,{children:[r.jsx(me,{variant:"ghost",onClick:o,disabled:g,children:f("common.cancel")}),r.jsx(me,{variant:"primary",onClick:G,loading:g,children:f(p?"project.mcps.save_btn":"project.mcps.add_btn")})]}),children:r.jsxs("div",{className:"space-y-4",children:[r.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[r.jsx(pe,{label:f("project.mcps.scope_label"),children:r.jsx(St,{value:b,onChange:q=>_(q),options:[{value:"runtime",label:f("project.mcps.scope_runtime"),description:f("project.mcps.scope_runtime_desc")},{value:"shared",label:f("project.mcps.scope_shared"),description:f("project.mcps.scope_shared_desc")},{value:"global",label:f("project.mcps.scope_global"),description:f("project.mcps.scope_global_desc")}]})}),r.jsx(pe,{label:f("project.mcps.transport_label"),children:r.jsx(St,{value:j,onChange:q=>w(q),options:[{value:"stdio",label:f("project.mcps.transport_stdio"),description:f("project.mcps.transport_stdio_desc")},{value:"http",label:f("project.mcps.transport_http"),description:f("project.mcps.transport_http_desc")}]})})]}),r.jsx(pe,{label:f("project.mcps.name_label"),children:r.jsx(Oe,{value:k,onChange:q=>E(q.target.value),placeholder:f("project.mcps.name_ph"),disabled:p})}),j==="stdio"?r.jsxs(r.Fragment,{children:[r.jsx(pe,{label:f("project.mcps.cmd_label"),children:r.jsx(Oe,{value:S,onChange:q=>C(q.target.value),placeholder:f("project.mcps.cmd_ph")})}),r.jsx(pe,{label:f("project.mcps.args_label"),hint:f("project.mcps.args_hint_tokens"),children:r.jsx(H6,{args:N,onChange:R,varNames:s,onCreateVar:()=>H(!0)})}),r.jsx(pe,{label:f("project.mcps.env_label"),hint:f("project.mcps.env_hint_tokens"),children:r.jsx(Zj,{rows:A,onChange:T,keyPlaceholder:"API_KEY",valuePlaceholder:"${var.MY_TOKEN}",varNames:s,onCreateVar:()=>H(!0),emptyLabel:f("project.mcps.env_empty")})})]}):r.jsxs(r.Fragment,{children:[r.jsx(pe,{label:f("project.mcps.url_label"),children:r.jsx(av,{value:M,onChange:z,placeholder:f("project.mcps.url_ph"),varNames:s,onCreateVar:()=>H(!0)})}),r.jsx(pe,{label:f("project.mcps.headers_label"),hint:f("project.mcps.headers_hint"),children:r.jsx(Zj,{rows:P,onChange:D,keyPlaceholder:"Authorization",valuePlaceholder:"Bearer ${var.TOKEN}",varNames:s,onCreateVar:()=>H(!0),emptyLabel:f("project.mcps.headers_empty")})})]}),r.jsx(Qt,{checked:I,onChange:B,label:f("project.mcps.enabled_label")})]})}),V&&r.jsx(V6,{pid:t,onClose:()=>H(!1),onCreated:()=>{H(!1),c()}})]})}function H6({args:e,onChange:t,varNames:s,onCreateVar:o}){const l=(p,m)=>{const g=e.slice();g[p]=m,t(g)},c=p=>t(e.filter((m,g)=>g!==p)),u=()=>t([...e,""]);return r.jsxs("div",{className:"space-y-2",children:[e.map((p,m)=>r.jsxs("div",{className:"flex items-start gap-2",children:[r.jsx("div",{className:"flex-1",children:r.jsx(av,{value:p,onChange:g=>l(m,g),placeholder:f("agents_ui.arg_placeholder"),varNames:s,onCreateVar:o})}),r.jsx(me,{type:"button",size:"sm",variant:"ghost",onClick:()=>c(m),"aria-label":f("agents_ui.remove_arg"),children:r.jsx(ia,{size:13})})]},m)),r.jsxs(me,{type:"button",size:"sm",variant:"ghost",onClick:u,children:[r.jsx(rn,{size:12})," ",f("project.mcps.add_arg")]})]})}function V6({pid:e,onClose:t,onCreated:s}){const o=lt(),l=String(e)==="0",[c,u]=x.useState(""),[p,m]=x.useState(""),[g,h]=x.useState(!1),[b,_]=x.useState(l?"global":"project"),k=async()=>{if(!c.trim()){o.error(f("project.vars.name_required"));return}if(!p){o.error(f("project.vars.value_required"));return}h(!0);try{await Rc.upsert(e,{name:c.trim(),value:p,scope:b}),o.success(f("project.vars.added")),s()}catch(E){o.error(E?.message||f("common.error_generic"))}finally{h(!1)}};return r.jsx(An,{open:!0,onClose:()=>g?null:t(),title:f("project.vars.new_title"),description:f("project.vars.new_desc"),size:"sm",footer:r.jsxs(r.Fragment,{children:[r.jsx(me,{variant:"ghost",onClick:t,disabled:g,children:f("common.cancel")}),r.jsx(me,{variant:"primary",onClick:k,loading:g,children:f("project.vars.add_btn")})]}),children:r.jsxs("div",{className:"space-y-3",children:[r.jsx(pe,{label:f("project.vars.scope_label"),children:r.jsx(St,{value:b,onChange:E=>_(E),options:[...l?[]:[{value:"project",label:f("project.vars.scope_project"),description:f("project.vars.scope_project_desc")}],{value:"global",label:f("project.vars.scope_global"),description:f("project.vars.scope_global_desc")}]})}),r.jsx(pe,{label:f("project.vars.name_label"),hint:f("project.vars.name_hint"),children:r.jsx(Oe,{value:c,onChange:E=>u(E.target.value.toUpperCase().replace(/[^A-Z0-9_]/g,"_")),placeholder:"MY_API_KEY",autoFocus:!0})}),r.jsx(pe,{label:f("project.vars.value_label"),hint:f("project.vars.value_hint"),children:r.jsx(Oe,{type:"password",value:p,onChange:E=>m(E.target.value),className:"font-mono text-xs"})})]})})}function q6({pid:e}){const t=lt(),s=String(e)==="0",[o,l]=x.useState(s?"global":"all"),[c,u]=x.useState(!1),p=Qe(`/projects/${e}/vars?reveal=${c?1:0}`,()=>Rc.list(e,{reveal:c})),[m,g]=x.useState(null),h=x.useMemo(()=>{if(!p.data)return[];const _=[],k=p.data.project||{},E=p.data.global||{};for(const[j,w]of Object.entries(k))_.push({name:j,scope:"project",masked:w});for(const[j,w]of Object.entries(E))k[j]===void 0&&_.push({name:j,scope:"global",masked:w});return _.filter(j=>o==="all"?!0:j.scope===o).sort((j,w)=>j.name.localeCompare(w.name))},[p.data,o]),b=async(_,k)=>{if(confirm(f("project.vars.delete_confirm",{name:_,scope:k})))try{await Rc.remove(e,_,k),t.success(f("project.vars.removed")),p.mutate()}catch(E){t.error(E?.message||f("common.error_generic"))}};return r.jsxs(Ye,{title:f("project.vars.title"),description:f(s?"project.vars.subtitle_base":"project.vars.subtitle_project"),action:r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx(Qt,{checked:c,onChange:u,label:f("project.vars.reveal_all")}),r.jsxs(me,{size:"sm",variant:"primary",onClick:()=>g({}),children:[r.jsx(rn,{size:14})," ",f("project.vars.new")]})]}),children:[!s&&r.jsxs("div",{className:"mb-3 flex items-center gap-2 text-xs",children:[r.jsx("span",{className:"text-muted-fg",children:f("project.vars.filter_label")}),r.jsx(th,{active:o==="all",onClick:()=>l("all"),children:f("project.vars.filter_all")}),r.jsx(th,{active:o==="project",onClick:()=>l("project"),children:f("project.vars.filter_project")}),r.jsx(th,{active:o==="global",onClick:()=>l("global"),children:f("project.vars.filter_global")})]}),p.isLoading&&r.jsx(ot,{}),!p.isLoading&&h.length===0&&r.jsx(xt,{children:f("project.vars.empty")}),h.length>0&&r.jsx("ul",{className:"space-y-2 text-sm",children:h.map(_=>r.jsxs("li",{className:"flex items-center gap-3 rounded-md border border-border bg-muted/30 px-3 py-2",children:[r.jsx("span",{className:"font-mono text-xs font-medium",children:_.name}),r.jsx(Fe,{tone:_.scope==="project"?"info":"muted",children:_.scope==="project"?f("project.vars.scope_project"):f("project.vars.scope_global")}),r.jsx("span",{className:"ml-2 font-mono text-xs text-muted-fg",children:_.masked}),r.jsxs("div",{className:"ml-auto flex items-center gap-1",children:[r.jsx(me,{size:"sm",variant:"ghost",onClick:()=>g({name:_.name,scope:_.scope}),"aria-label":f("project.vars.edit_btn"),children:r.jsx(Eo,{size:13})}),!(s&&_.scope==="project")&&r.jsx(me,{size:"sm",variant:"destructive",onClick:()=>b(_.name,_.scope),"aria-label":f("project.vars.delete_btn"),children:r.jsx(ia,{size:13})})]})]},`${_.scope}-${_.name}`))}),r.jsx($6,{open:m!==null,initial:m||void 0,onClose:()=>g(null),pid:e,isBase:s,onSaved:()=>{g(null),p.mutate()}})]})}function th({active:e,onClick:t,children:s}){return r.jsx("button",{type:"button",onClick:t,className:e?"rounded-full border border-primary/50 bg-primary/10 px-2 py-0.5 text-xs":"rounded-full border border-border bg-muted/30 px-2 py-0.5 text-xs hover:bg-muted/60",children:s})}function $6({open:e,onClose:t,pid:s,isBase:o,initial:l,onSaved:c}){const u=lt(),[p,m]=x.useState(!1),[g,h]=x.useState(!1),[b,_]=x.useState(l?.name||""),[k,E]=x.useState(l?.value||""),[j,w]=x.useState(l?.scope||(o?"global":"project")),S=!!l?.name;x.useEffect(()=>{e&&(_(l?.name||""),E(l?.value||""),w(l?.scope||(o?"global":"project")),h(!1))},[e,l?.name,l?.scope,l?.value,o]);const C=async()=>{if(!b.trim()){u.error(f("project.vars.name_required"));return}if(!k){u.error(f("project.vars.value_required"));return}m(!0);try{await Rc.upsert(s,{name:b.trim(),value:k,scope:j}),u.success(f(S?"project.vars.updated":"project.vars.added")),c()}catch(N){u.error(N?.message||f("common.error_generic"))}finally{m(!1)}};return r.jsx(An,{open:e,onClose:()=>p?null:t(),title:f(S?"project.vars.edit_title":"project.vars.new_title"),description:f("project.vars.new_desc"),size:"sm",footer:r.jsxs(r.Fragment,{children:[r.jsx(me,{variant:"ghost",onClick:t,disabled:p,children:f("common.cancel")}),r.jsx(me,{variant:"primary",onClick:C,loading:p,children:f(S?"project.vars.save_btn":"project.vars.add_btn")})]}),children:r.jsxs("div",{className:"space-y-3",children:[r.jsx(pe,{label:f("project.vars.scope_label"),children:r.jsx(St,{value:j,onChange:N=>w(N),options:[...o?[]:[{value:"project",label:f("project.vars.scope_project"),description:f("project.vars.scope_project_desc")}],{value:"global",label:f("project.vars.scope_global"),description:f("project.vars.scope_global_desc")}]})}),r.jsx(pe,{label:f("project.vars.name_label"),hint:f("project.vars.name_hint"),children:r.jsx(Oe,{value:b,onChange:N=>_(N.target.value.toUpperCase().replace(/[^A-Z0-9_]/g,"_")),placeholder:"MY_API_KEY",disabled:S,autoFocus:!S})}),r.jsx(pe,{label:f("project.vars.value_label"),hint:f("project.vars.value_hint"),children:r.jsxs("div",{className:"relative",children:[r.jsx(Oe,{type:g?"text":"password",value:k,onChange:N=>E(N.target.value),placeholder:S?f("project.vars.value_edit_ph"):"",className:"pr-9 font-mono text-xs",autoFocus:S}),r.jsx("button",{type:"button",onClick:()=>h(N=>!N),className:"absolute right-2 top-1/2 -translate-y-1/2 text-muted-fg hover:text-fg","aria-label":f(g?"project.vars.hide":"project.vars.reveal"),children:g?r.jsx(rM,{size:14}):r.jsx(wf,{size:14})})]})})]})})}function sv({value:e,onValueChange:t,onSubmit:s,onStop:o,busy:l=!1,disabled:c=!1,placeholder:u,autoFocus:p,minRows:m=2,maxRows:g=8,footer:h,className:b}){const _=x.useRef(null);x.useLayoutEffect(()=>{const E=_.current;if(!E)return;const j=()=>{E.style.height="auto",E.offsetHeight;const S=parseFloat(getComputedStyle(E).lineHeight)||20,C=S*m,N=S*g;E.style.height=`${Math.min(Math.max(E.scrollHeight,C),N)}px`,E.style.overflowY=E.scrollHeight>N?"auto":"hidden"};j();const w=requestAnimationFrame(j);return()=>cancelAnimationFrame(w)},[e,m,g]);const k=e.trim().length>0&&!c;return r.jsxs("div",{className:Ct("flex flex-col gap-1.5 rounded-2xl border border-border bg-muted/60 p-2 shadow-sm transition-colors","focus-within:border-foreground/25 focus-within:bg-muted",c&&"opacity-60",b),children:[r.jsx("textarea",{ref:_,rows:m,value:e,autoFocus:p,disabled:c,placeholder:u,onChange:E=>t(E.target.value),onKeyDown:E=>{if(E.key==="Enter"&&!E.shiftKey){if(E.preventDefault(),l||!k)return;s()}},className:"w-full resize-none bg-transparent px-2 pt-1 text-sm leading-relaxed outline-none placeholder:text-muted-foreground"}),r.jsxs("div",{className:"flex items-center justify-between gap-2 pl-1",children:[r.jsx("div",{className:"flex min-w-0 items-center gap-2 text-[11px] text-muted-foreground",children:h}),l&&o?r.jsx(et,{content:f("chat_ui.stop"),children:r.jsx(Ks,{type:"button",size:"icon-sm",variant:"destructive",onClick:o,"aria-label":f("chat_ui.stop"),children:r.jsx(Vk,{className:"size-3.5",fill:"currentColor"})})}):r.jsx(et,{content:f("chat_ui.send"),children:r.jsx(Ks,{type:"button",size:"icon-sm",variant:"default",onClick:s,disabled:!k,"aria-label":f("chat_ui.send"),children:r.jsx(FA,{className:"size-4"})})})]})]})}function rv({value:e,onChange:t,disabled:s}){const[o,l]=x.useState(!1),[c,u]=x.useState(""),[p,m]=x.useState([]),[g,h]=x.useState(!1),b=x.useRef(null);x.useEffect(()=>{if(!o)return;const w=S=>{b.current&&!b.current.contains(S.target)&&l(!1)};return document.addEventListener("mousedown",w),()=>document.removeEventListener("mousedown",w)},[o]),x.useEffect(()=>{if(!o||g)return;let w=!1;return(async()=>{try{const{engines:S}=await df.list(),C=await Promise.all(S.map(N=>df.models({engine:N}).then(R=>(R.models||[]).map(A=>A.includes(":")?A:`${N}:${A}`)).catch(()=>[])));if(!w){const N=Array.from(new Set(C.flat())).sort();m(N),h(!0)}}catch{w||h(!0)}})(),()=>{w=!0}},[o,g]);const _=c.trim().toLowerCase(),k=_?p.filter(w=>w.toLowerCase().includes(_)):p,E=e||f("shared_ui.auto"),j=w=>{t(w),l(!1),u("")};return r.jsxs("div",{ref:b,className:"relative",children:[r.jsx(et,{content:f("chat_ui.pick_model"),children:r.jsxs("button",{type:"button",disabled:s,onClick:()=>l(w=>!w),"data-testid":"chat-model-picker",className:De("flex max-w-[200px] items-center gap-1 rounded-md border border-transparent px-1.5 py-0.5 text-[11px] text-muted-foreground transition-colors","hover:bg-accent/60 hover:text-foreground",e&&"text-foreground"),"aria-label":f("chat_ui.pick_model"),children:[r.jsx(Hk,{className:"size-3 shrink-0"}),r.jsx("span",{className:"truncate font-mono",children:E}),r.jsx(Zs,{className:"size-3 shrink-0 opacity-60"})]})}),o&&r.jsxs("div",{className:"absolute bottom-full left-0 z-50 mb-1.5 w-64 rounded-lg border border-border bg-popover p-1.5 shadow-md ring-1 ring-foreground/10",children:[r.jsx("input",{autoFocus:!0,value:c,placeholder:f("shared_ui.model_filter_ph"),onChange:w=>u(w.target.value),onKeyDown:w=>{w.key==="Enter"&&c.trim()&&j(c.trim())},className:"mb-1 w-full rounded-md border border-border bg-background px-2 py-1 text-xs outline-none focus:border-foreground/30"}),r.jsxs("ul",{className:"max-h-56 overflow-y-auto",children:[r.jsx("li",{children:r.jsxs("button",{type:"button",onMouseDown:w=>{w.preventDefault(),j("")},className:De("flex w-full items-center justify-between rounded-md px-2 py-1 text-left text-xs hover:bg-accent hover:text-accent-fg",!e&&"bg-accent/50"),children:[r.jsxs("span",{className:"flex items-center gap-1.5",children:[r.jsx(ps,{className:"size-3"})," ",f("shared_ui.auto_router")]}),!e&&r.jsx(ho,{className:"size-3"})]})}),!g&&r.jsx("li",{className:"px-2 py-1 text-[11px] text-muted-fg",children:f("shared_ui.loading_models")}),g&&k.length===0&&c.trim()&&r.jsx("li",{children:r.jsx("button",{type:"button",onMouseDown:w=>{w.preventDefault(),j(c.trim())},className:"w-full rounded-md px-2 py-1 text-left font-mono text-xs hover:bg-accent hover:text-accent-fg",children:f("shared_ui.use_value",{value:c.trim()})})}),k.map(w=>r.jsx("li",{children:r.jsxs("button",{type:"button",onMouseDown:S=>{S.preventDefault(),j(w)},className:De("flex w-full items-center justify-between rounded-md px-2 py-1 text-left font-mono text-xs hover:bg-accent hover:text-accent-fg",w===e&&"bg-accent/50"),children:[r.jsx("span",{className:"truncate",children:w}),w===e&&r.jsx(ho,{className:"size-3 shrink-0"})]})},w))]})]})]})}function F6({onSend:e,onStop:t,streaming:s,model:o,onModelChange:l}){const[c,u]=x.useState(""),p=()=>{const m=c.trim();m&&(u(""),e(m))};return r.jsx("div",{className:"border-t border-border bg-card/60 p-3",children:r.jsx(sv,{value:c,onValueChange:u,onSubmit:p,onStop:t,busy:s,placeholder:f("project.chat.placeholder"),maxRows:12,footer:l?r.jsx(rv,{value:o||"",onChange:l,disabled:s}):void 0})})}function G6(){return{read_file:{icon:cM,label:f("shared_ui.tool_read_file")},write_file:{icon:iM,label:f("shared_ui.tool_write_file")},edit_file:{icon:$d,label:f("shared_ui.tool_edit_file")},list_files:{icon:Lk,label:f("shared_ui.tool_list_files")},search_files:{icon:Od,label:f("shared_ui.tool_search_files")},search_messages:{icon:Od,label:f("shared_ui.tool_search_messages")},tail_messages:{icon:Od,label:f("shared_ui.tool_tail_messages")},run_shell:{icon:Mr,label:f("shared_ui.tool_run_shell")},send_telegram:{icon:Fa,label:f("shared_ui.tool_send_telegram")},call_agent:{icon:hn,label:f("shared_ui.tool_call_agent")},call_mcp:{icon:TM,label:f("shared_ui.tool_call_mcp")},call_runtime:{icon:hn,label:f("shared_ui.tool_call_runtime")},create_task:{icon:kM,label:f("shared_ui.tool_create_task")}}}const cE=new Set(["write_file","edit_file"]);function Y6(e){return G6()[e]||{icon:Kl,label:e}}function X6(e,t){if(!t)return"";const s=l=>typeof t[l]=="string"?t[l]:void 0,o=s("path")||s("file")||s("pattern")||s("query")||s("command")||s("slug")||s("name")||s("agent");return o?String(o):""}function Wj(e){if(e==null)return"";if(typeof e=="string")return e;try{return JSON.stringify(e,null,2)}catch{return String(e)}}function K6({status:e}){return e==="running"?r.jsx(Sf,{className:"size-3 shrink-0 animate-spin text-sky-400"}):e==="error"?r.jsx(ps,{className:"size-3 shrink-0 text-rose-400"}):e==="deduped"?r.jsx(aM,{className:"size-3 shrink-0 text-amber-400"}):r.jsx(ho,{className:"size-3 shrink-0 text-emerald-400"})}function Q6({part:e}){const[t,s]=x.useState(!1),{icon:o,label:l}=Y6(e.tool),c=X6(e.tool,e.args),u=cE.has(e.tool),p=!!e.args||e.result!==void 0;return r.jsxs("div",{className:De("rounded-lg border bg-muted/30 text-[12px]",e.status==="error"?"border-rose-500/30":"border-border"),children:[r.jsxs("button",{type:"button",onClick:()=>p&&s(m=>!m),className:"flex w-full items-center gap-2 px-2.5 py-1.5 text-left",children:[p?r.jsx(Pc,{className:De("size-3 shrink-0 text-muted-foreground transition-transform",t&&"rotate-90")}):r.jsx("span",{className:"size-3 shrink-0"}),r.jsx(o,{className:De("size-3.5 shrink-0",u?"text-violet-400":"text-muted-foreground")}),r.jsx("span",{className:"shrink-0 font-medium",children:l}),c&&r.jsx("span",{className:"truncate font-mono text-muted-foreground",children:c}),r.jsxs("span",{className:"ml-auto flex items-center gap-1",children:[e.status==="deduped"&&r.jsx("span",{className:"text-[10px] text-amber-400",children:f("shared_ui.dedup")}),r.jsx(K6,{status:e.status})]})]}),t&&p&&r.jsxs("div",{className:"space-y-2 border-t border-border/60 px-2.5 py-2",children:[e.args&&Object.keys(e.args).length>0&&r.jsxs("div",{children:[r.jsx("div",{className:"mb-1 text-[10px] font-semibold uppercase tracking-wide text-muted-foreground/70",children:f("shared_ui.args")}),r.jsx("pre",{className:"max-h-48 overflow-auto rounded-md bg-background/60 p-2 font-mono text-[11px] leading-relaxed text-foreground",children:Wj(e.args)})]}),e.result!==void 0&&r.jsxs("div",{children:[r.jsx("div",{className:"mb-1 text-[10px] font-semibold uppercase tracking-wide text-muted-foreground/70",children:f("shared_ui.result")}),r.jsx("pre",{className:De("max-h-64 overflow-auto rounded-md bg-background/60 p-2 font-mono text-[11px] leading-relaxed",e.status==="error"?"text-rose-300":"text-foreground"),children:Wj(e.result)})]})]})]})}function Z6(e){const t=e.args;return(t&&Array.isArray(t.questions)?t.questions:[]).map(o=>typeof o=="string"?o:o&&typeof o=="object"&&typeof o.question=="string"?o.question:null).filter(o=>!!o)}function W6({part:e,pending:t}){const s=Z6(e),o=f(t?"ask_panel.status_waiting":"ask_panel.status_received");return r.jsxs("div",{className:De("rounded-2xl border px-3 py-2 text-sm shadow-sm",t?"rounded-bl-sm border-amber-500/30 bg-amber-500/5 text-foreground":"rounded-bl-sm border-emerald-500/30 bg-emerald-500/5 text-foreground"),"data-testid":"ask-questions-card","data-state":t?"pending":"answered",children:[r.jsxs("div",{className:"flex items-center gap-2",children:[t?r.jsx(Sf,{className:"size-3.5 shrink-0 animate-spin text-amber-600 dark:text-amber-400"}):r.jsx(Mx,{className:"size-3.5 shrink-0 text-emerald-600 dark:text-emerald-400"}),r.jsx(Pk,{className:"size-3.5 shrink-0 text-muted-foreground"}),r.jsx("span",{className:"text-[12px] font-medium",children:o}),s.length>1&&r.jsxs("span",{className:"ml-auto text-[10px] text-muted-foreground",children:[s.length," preguntas"]})]}),s.length>0&&r.jsx("ul",{className:"mt-1.5 space-y-0.5 pl-5 text-[12px] text-muted-foreground",children:s.map((l,c)=>r.jsx("li",{className:"list-disc",children:l},c))})]})}function uE(e){const t=e.split(`
|
|
623
|
+
`),s=[];let o=null;for(const l of t)if(l.startsWith("- "))o&&s.push(o),o={question:l.slice(2),answer:"",skipped:!1};else if(l.startsWith(" → ")&&o){const c=l.slice(4);o.answer=c,o.skipped=c==="(omitido)"}else return null;return o&&s.push(o),s.length>0?s:null}function J6({text:e}){const t=uE(e);return t?r.jsx("div",{className:"flex w-full justify-center",children:r.jsxs("div",{className:"w-full max-w-[85%] rounded-2xl border border-border/70 bg-card/40 px-4 py-3 shadow-sm","data-testid":"ask-answers-card",children:[r.jsxs("div",{className:"mb-2 flex items-center gap-1.5 text-[11px] font-medium text-muted-foreground",children:[r.jsx(Pk,{className:"size-3.5"}),r.jsx("span",{children:f("ask_panel.answers_header")})]}),r.jsx("ul",{className:"space-y-2.5",children:t.map((s,o)=>r.jsxs("li",{className:"space-y-0.5",children:[r.jsx("div",{className:"text-sm font-medium leading-snug text-foreground",children:s.question}),r.jsx("div",{className:De("whitespace-pre-wrap text-[13px] leading-snug",s.skipped?"italic text-muted-foreground/70":"text-muted-foreground"),children:s.answer})]},o))})]})}):null}function mx(e){return e.parts.filter(t=>t.kind==="text").map(t=>t.text).join(`
|
|
624
|
+
|
|
625
|
+
`).trim()}function eI(e){const t=e.args?.questions;if(!Array.isArray(t)||t.length===0)return null;const s=t.map(o=>{if(typeof o=="string")return`- ${o}`;if(!o||typeof o!="object")return null;const l=o;if(typeof l.question!="string")return null;const u=(Array.isArray(l.options)?l.options:[]).map(p=>typeof p=="string"?p:p&&typeof p=="object"&&typeof p.label=="string"?p.label:"").filter(p=>p).join(", ");return u?`- ${l.question} (opciones: ${u})`:`- ${l.question}`}).filter(o=>!!o);return s.length===0?null:`[ask_questions]
|
|
626
|
+
${s.join(`
|
|
627
|
+
`)}`}function tI(e){const t=[];for(const s of e.parts)if(s.kind==="text"&&s.text)t.push(s.text);else if(s.kind==="tool"&&s.tool==="ask_questions"){const o=eI(s);o&&t.push(o)}return t.join(`
|
|
628
|
+
|
|
629
|
+
`).trim()}const nI=e=>[{kind:"text",text:e}];function aI(e){if(!e||typeof e!="object")return!1;const t=e;return"error"in t&&!!t.error}function ov(e,t){const s=o=>({...e,notes:[...e.notes||[],o]});switch(t.type){case"model_start":return t.model?{...e,model:t.model}:e;case"model_routed":{const o=t.model?{...e,model:t.model}:e;return t.from_fallback?{...o,notes:[...o.notes||[],`routing fell back → ${t.model}`]}:o}case"engine_failed":return s(`engine ${t.model||"?"} failed → ${t.retry_with||"retry"}`);case"model_retry":return s(`retry (${t.reason||"?"})`);case"tools_suppressed":return s(`tools suppressed: ${(t.tools||[]).join(", ")}`);case"skill_inspector":{const o=t.inspector;return!o||!o.loaded?.length&&!o.hinted?.length?e:{...e,inspector:{embedder:o.embedder,loaded:o.loaded||[],hinted:o.hinted||[]}}}case"assistant_text":return t.text?{...e,parts:[...e.parts,{kind:"text",text:t.text}]}:e;case"tool_start":return t.trace?{...e,parts:[...e.parts,{kind:"tool",id:t.trace.id,tool:t.trace.tool,args:t.trace.args,status:"running"}]}:e;case"tool_deduped":return t.trace?{...e,parts:e.parts.map(o=>o.kind==="tool"&&o.id===t.trace.id?{...o,status:"deduped"}:o)}:e;case"tool_result":if(!t.trace)return e;{const o=aI(t.trace.result);return{...e,parts:e.parts.map(l=>l.kind==="tool"&&l.id===t.trace.id?{...l,result:t.trace.result,status:o?"error":l.status==="deduped"?"deduped":"done"}:l)}}case"final":return{...e,pending:!1,usage:t.result?.usage??e.usage,model:e.model??t.result?.name,parts:t.result?.text&&!e.parts.some(o=>o.kind==="text")?[...e.parts,{kind:"text",text:t.result.text}]:e.parts};default:{const o=t.delta||t.content||"";if(!o)return e;const l=[...e.parts],c=l[l.length-1];return c&&c.kind==="text"?l[l.length-1]={...c,text:c.text+o}:l.push({kind:"text",text:o}),{...e,parts:l}}}}function sI(e,t){const[s,o]=x.useState([]),[l,c]=x.useState(!1),[u,p]=x.useState(void 0),m=x.useRef(null),g=x.useRef(void 0),h=x.useCallback(w=>{o(S=>{const C=[...S],N=C[C.length-1];return N&&N.role==="assistant"&&(C[C.length-1]=w(N)),C})},[]),b=x.useCallback(w=>{if(w.type==="error"){t?.(w.error||f("shared_ui.err_stream"));return}h(S=>ov(S,w))},[h,t]),_=x.useCallback(async(w,S={})=>{const C=w.trim();if(!C||l)return;const N=()=>new Date().toISOString(),R=s.map(T=>({role:T.role,content:tI(T)}));if(o(T=>[...T,{role:"user",parts:nI(C),ts:N()},{role:"assistant",parts:[],ts:N(),pending:!0}]),c(!0),S.agentSlug){try{const T=await sn.chat(e,S.agentSlug,{prompt:C,conversation_id:g.current,model:S.model||void 0,channel:"web"});g.current=T.conversation_id,p(T.conversation_id),h(M=>({...M,pending:!1,model:T.engine,parts:[{kind:"text",text:T.text}]}))}catch(T){t?.(T?.message||f("shared_ui.err_chat_failed")),o(M=>M.filter((z,P)=>P!==M.length-1))}finally{c(!1)}return}const A=new AbortController;m.current=A;try{await cC.stream(e,{prompt:C,previousMessages:R,model:S.model||void 0,channel:"web"},b,A.signal),h(T=>({...T,pending:!1}))}catch(T){A.signal.aborted?h(M=>({...M,pending:!1,parts:[...M.parts,{kind:"text",text:f("code_module.stopped")}]})):(t?.(T?.message||f("shared_ui.err_stream_failed")),o(M=>M.filter((z,P)=>P!==M.length-1)))}finally{c(!1),m.current=null}},[e,s,l,b,h,t]),k=x.useCallback(()=>m.current?.abort(),[]),E=x.useCallback(()=>{l||(g.current=void 0,p(void 0),o([]))},[l]),j=x.useCallback(async(w,S)=>{if(!l)try{const N=(await Ub.get(e,w,S)).messages.filter(R=>R.role==="user"||R.role==="assistant").map(R=>({role:R.role,parts:[{kind:"text",text:R.content}],ts:R.ts||new Date().toISOString()}));g.current=S,p(S),o(N)}catch(C){t?.(C?.message||f("shared_ui.err_load_conversation"))}},[e,l,t]);return{msgs:s,send:_,stop:k,clear:E,load:j,streaming:l,conversationId:u}}function rI({msg:e,isLast:t,isAskAnswer:s,onCopy:o}){const l=e.role==="user",c=mx(e),u=e.parts.some(p=>p.kind==="tool");if(l&&s){const p=mx(e);if(uE(p))return r.jsx(J6,{text:p})}return r.jsxs("div",{className:De("group flex items-start gap-2",l?"justify-end":"justify-start"),children:[!l&&r.jsx("span",{className:"mt-0.5 grid size-7 shrink-0 place-items-center rounded-full bg-muted text-muted-foreground",children:r.jsx(hn,{size:14})}),r.jsxs("div",{className:De("flex min-w-0 flex-col gap-1.5",l?"items-end":"w-full max-w-[85%]"),children:[!l&&e.notes&&e.notes.length>0&&r.jsx("div",{className:"flex flex-col gap-0.5",children:e.notes.map((p,m)=>r.jsxs("span",{className:"flex items-center gap-1 text-[10px] text-amber-400/80",children:[r.jsx(_M,{size:10})," ",p]},m))}),!l&&e.inspector&&(e.inspector.loaded?.length||e.inspector.hinted?.length)?r.jsx(et,{content:f("shared_ui.skill_inspector_title",{embedder:e.inspector.embedder||"RAG"}),children:r.jsxs("div",{className:"flex flex-wrap items-center gap-1 text-[10px] text-sky-400/90",children:[r.jsx(fs,{size:10}),e.inspector.loaded?.map(p=>r.jsx("span",{className:"rounded bg-sky-500/15 px-1 py-0.5 font-mono",children:p},`l-${p}`)),e.inspector.hinted?.map(p=>r.jsxs("span",{className:"rounded border border-sky-500/30 px-1 py-0.5 font-mono opacity-70",children:[p,"?"]},`h-${p}`))]})}):null,e.parts.map((p,m)=>p.kind==="tool"?p.tool==="ask_questions"&&!l?r.jsx(W6,{part:p,pending:!!t},`${p.id}-${m}`):r.jsx(Q6,{part:p},`${p.id}-${m}`):p.text?r.jsx("div",{className:De("whitespace-pre-wrap rounded-2xl px-3 py-2 text-sm leading-relaxed shadow-sm",l?"rounded-br-sm border border-emerald-500/30 bg-emerald-500/10 text-foreground dark:bg-emerald-500/15":"w-full rounded-bl-sm border border-border bg-card text-foreground"),children:p.text},m):null),!l&&e.pending&&e.parts.length===0&&r.jsx("div",{className:"rounded-2xl rounded-bl-sm border border-border bg-card px-3 py-2 text-sm text-muted-foreground",children:"…"}),r.jsxs("div",{className:"flex items-center gap-2 text-[10px] text-muted-foreground opacity-0 transition-opacity group-hover:opacity-100",children:[r.jsx("span",{children:oI(e.ts)}),!l&&e.model&&r.jsxs("span",{className:"font-mono",children:["· ",e.model]}),!l&&u&&r.jsxs("span",{children:["· ",f("shared_ui.tools_count",{n:e.parts.filter(p=>p.kind==="tool").length})]}),o&&c&&r.jsx(et,{content:f("chat_ui.copy"),children:r.jsxs("button",{type:"button",onClick:()=>o(c),className:"inline-flex items-center gap-1 hover:text-foreground","aria-label":f("chat_ui.copy"),children:[r.jsx(qd,{size:10})," ",f("chat_ui.copy")]})})]})]}),l&&r.jsx("span",{className:"mt-0.5 grid size-7 shrink-0 place-items-center rounded-full bg-muted text-muted-foreground",children:r.jsx(Bx,{size:14})})]})}function oI(e){try{return new Date(e).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit"})}catch{return e}}function lv({msgs:e,onCopy:t}){const s=x.useRef(null);if(x.useEffect(()=>{s.current?.scrollIntoView({behavior:"smooth",block:"end"})},[e]),e.length===0)return r.jsx("div",{className:"grid h-full place-items-center p-6",children:r.jsx(xt,{children:f("project.chat.empty")})});const o=e.length-1;return r.jsxs("div",{className:"space-y-4 px-3 py-4",children:[e.map((l,c)=>r.jsx(rI,{msg:l,isLast:c===o,isAskAnswer:lI(e,c),onCopy:t},c)),r.jsx("div",{ref:s})]})}function lI(e,t){const s=e[t];if(!s||s.role!=="user")return!1;const o=e[t-1];if(!o||o.role!=="assistant")return!1;for(let l=o.parts.length-1;l>=0;l--){const c=o.parts[l];if(c.kind==="tool")return c.tool==="ask_questions"}return!1}function iI(e){if(!e)return;const t=e.path??e.file??e.filename;return typeof t=="string"?t:void 0}function dE({msgs:e}){const[t,s]=x.useState(!1),{inTok:o,outTok:l,toolCount:c,changed:u,model:p}=x.useMemo(()=>{let g=0,h=0,b=0,_;const k=new Set,E=[];for(const j of e)if(j.role==="assistant"){j.usage&&(g+=j.usage.input_tokens||0,h+=j.usage.output_tokens||0),j.model&&(_=j.model);for(const w of j.parts)if(w.kind==="tool"&&(b+=1,cE.has(w.tool)&&w.status!=="error")){const S=iI(w.args);S&&!k.has(S)&&(k.add(S),E.push({path:S,tool:w.tool}))}}return{inTok:g,outTok:h,toolCount:b,changed:E,model:_}},[e]),m=o+l;return m===0&&c===0?null:r.jsxs("div",{className:"shrink-0 border-t border-border bg-card/40 text-[11px]",children:[r.jsxs("button",{type:"button",onClick:()=>u.length>0&&s(g=>!g),className:De("flex w-full items-center gap-3 px-4 py-1.5 text-muted-foreground",u.length>0&&"hover:text-foreground"),children:[r.jsxs("span",{className:"flex items-center gap-1",children:[r.jsx(kf,{size:12})," ",nh(m)," tok",r.jsxs("span",{className:"text-muted-foreground/60",children:["(",nh(o),"↑ / ",nh(l),"↓)"]})]}),c>0&&r.jsxs("span",{className:"flex items-center gap-1",children:[r.jsx(Kl,{size:12})," ",c," tools"]}),u.length>0&&r.jsxs("span",{className:"flex items-center gap-1 text-violet-400",children:[r.jsx($d,{size:12})," ",u.length," archivos"]}),p&&r.jsx("span",{className:"ml-auto font-mono text-muted-foreground/70",children:p}),u.length>0&&r.jsx(Zs,{className:De("size-3 shrink-0 transition-transform",t&&"rotate-180")})]}),t&&u.length>0&&r.jsx("ul",{className:"max-h-40 space-y-0.5 overflow-y-auto border-t border-border/60 px-4 py-2",children:u.map(g=>r.jsxs("li",{className:"flex items-center gap-2 font-mono text-[11px]",children:[r.jsx($d,{size:11,className:"shrink-0 text-violet-400"}),r.jsx("span",{className:"truncate",children:g.path}),r.jsx("span",{className:"ml-auto shrink-0 text-[10px] text-muted-foreground/60",children:g.tool==="write_file"?"write":"edit"})]},g.path))})]})}function nh(e){return e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e)}function yl(){return{picked:new Set,text:"",skipped:!1}}function Jj(e,t){const s=[];return e.forEach((o,l)=>{const c=t[l]||yl();if(c.skipped){s.push(`- ${o.question}
|
|
630
|
+
→ (omitido)`);return}const u=[];if(o.options&&o.options.length>0){const g=[...c.picked].sort((h,b)=>h-b).map(h=>o.options[h]?.label).filter(Boolean);g.length>0&&u.push(g.join(", "))}const p=c.text.trim();p&&u.push(o.options&&o.options.length>0?`(Otro: ${p})`:p);const m=u.length>0?u.join(" "):"(sin respuesta)";s.push(`- ${o.question}
|
|
631
|
+
→ ${m}`)}),s.join(`
|
|
632
|
+
`)}function fE({turnKey:e,questions:t,onSubmit:s,onDismiss:o,disabled:l}){const c=t.length,[u,p]=x.useState(0),[m,g]=x.useState(()=>t.map(()=>yl()));x.useEffect(()=>{p(0),g(t.map(()=>yl()))},[e,t]);const h=t[u],b=m[u]||yl(),_=!!h?.options&&h.options.length>0,k=!!h?.multiSelect,E=h?.allowText!==!1,j=T=>{g(M=>{const z=[...M],P=z[u]||yl();return z[u]={...P,...T,skipped:!1},z})},w=T=>{g(M=>{const z=[...M],P=z[u]||yl(),D=new Set(P.picked);return k?D.has(T)?D.delete(T):D.add(T):(D.clear(),D.add(T)),z[u]={...P,picked:D,skipped:!1},z})},S=x.useMemo(()=>!0,[]),C=u===c-1,N=()=>p(T=>Math.max(0,T-1)),R=()=>{if(C){s(Jj(t,m));return}p(T=>Math.min(c-1,T+1))},A=()=>{if(g(T=>{const M=[...T];return M[u]={picked:new Set,text:"",skipped:!0},M}),C){const T=m.map((M,z)=>z===u?{picked:new Set,text:"",skipped:!0}:M);s(Jj(t,T))}else p(T=>Math.min(c-1,T+1))};return x.useEffect(()=>{const T=M=>{if(l)return;const z=M.target?.tagName?.toLowerCase(),P=z==="input"||z==="textarea";if(M.key==="Enter"&&(M.metaKey||M.ctrlKey)){M.preventDefault(),R();return}if(!P&&_&&/^[1-9]$/.test(M.key)){const D=parseInt(M.key,10)-1;D<(h?.options?.length||0)&&(M.preventDefault(),w(D))}};return window.addEventListener("keydown",T),()=>window.removeEventListener("keydown",T)}),!h||c===0?null:r.jsxs("div",{className:De("mx-3 mb-2 rounded-xl border border-border bg-card/95 shadow-xl backdrop-blur supports-[backdrop-filter]:bg-card/80",l&&"pointer-events-none opacity-60"),"data-testid":"inline-ask-panel",children:[r.jsxs("header",{className:"flex items-start gap-2 border-b border-border px-3 py-2",children:[r.jsxs("span",{className:"mt-0.5 shrink-0 rounded-md bg-amber-500/15 px-1.5 py-0.5 text-[10px] font-mono font-medium text-amber-700 dark:text-amber-300",children:[u+1,"/",c]}),h.header&&r.jsx("span",{className:"mt-0.5 shrink-0 rounded-md bg-muted px-1.5 py-0.5 text-[10px] font-medium text-muted-foreground",children:h.header}),r.jsx("p",{className:"min-w-0 flex-1 text-sm font-semibold leading-snug",children:h.question}),o&&r.jsx("button",{type:"button",onClick:o,className:"rounded p-1 text-muted-foreground hover:bg-accent hover:text-foreground","aria-label":f("common.close"),children:r.jsx(ps,{className:"size-3.5"})})]}),r.jsxs("div",{className:"space-y-1 px-2 py-2",children:[_&&h.options.map((T,M)=>{const z=b.picked.has(M);return r.jsxs("button",{type:"button",onClick:()=>w(M),className:De("flex w-full items-start gap-2 rounded-md border border-transparent px-2 py-1.5 text-left transition",z?"border-emerald-500/40 bg-emerald-500/10":"hover:border-border hover:bg-accent/40"),children:[r.jsxs("div",{className:"min-w-0 flex-1",children:[r.jsx("div",{className:"text-xs font-medium",children:T.label}),T.description&&r.jsx("div",{className:"text-[11px] text-muted-foreground",children:T.description})]}),k?r.jsx("span",{className:De("mt-0.5 grid size-4 shrink-0 place-items-center rounded border",z?"border-emerald-500 bg-emerald-500 text-white":"border-border bg-background"),children:z&&r.jsx("span",{className:"text-[10px] leading-none",children:"✓"})}):r.jsx("span",{className:De("mt-0.5 grid size-4 shrink-0 place-items-center rounded border font-mono text-[10px]",z?"border-emerald-500 bg-emerald-500 text-white":"border-border bg-muted text-muted-foreground"),children:M+1})]},`${M}:${T.label}`)}),(E||!_)&&r.jsxs("div",{className:"rounded-md border border-transparent px-2 py-1.5 hover:border-border",children:[_&&r.jsx("div",{className:"mb-1 text-xs font-medium",children:f("ask_panel.other")}),r.jsx("input",{type:"text",value:b.text,onChange:T=>j({text:T.target.value}),placeholder:f(_?"ask_panel.other_placeholder":"ask_panel.text_placeholder"),className:"w-full rounded border border-border bg-background px-2 py-1 text-xs outline-none focus:border-emerald-500"})]})]}),r.jsxs("footer",{className:"flex items-center justify-between gap-2 border-t border-border px-3 py-2",children:[r.jsx("button",{type:"button",onClick:N,disabled:u===0,className:"rounded px-2 py-1 text-[11px] text-muted-foreground hover:bg-accent disabled:opacity-30",children:f("ask_panel.back")}),r.jsxs("div",{className:"flex items-center gap-1",children:[r.jsx("button",{type:"button",onClick:A,className:"rounded px-2 py-1 text-[11px] text-muted-foreground hover:bg-accent",children:f("ask_panel.skip")}),r.jsxs("button",{type:"button",onClick:R,disabled:!S,className:"inline-flex items-center gap-1 rounded bg-emerald-500/15 px-2 py-1 text-[11px] font-medium text-emerald-700 hover:bg-emerald-500/25 dark:text-emerald-300",children:[f(C?"ask_panel.submit":"ask_panel.next"),r.jsx(nM,{className:"size-3 opacity-60"})]})]})]})]})}function cI(e){if(typeof e=="string")return{question:e,options:[],multiSelect:!1,allowText:!0};if(!e||typeof e!="object")return null;const t=e,s=typeof t.question=="string"?t.question:"";if(!s)return null;const l=(Array.isArray(t.options)?t.options:[]).map(c=>{if(typeof c=="string")return{label:c};if(c&&typeof c=="object"&&typeof c.label=="string"){const u=c;return{label:u.label,description:typeof u.description=="string"?u.description:void 0}}return null}).filter(c=>c!==null);return{question:s,header:typeof t.header=="string"?t.header:void 0,options:l,multiSelect:t.multiSelect===!0,allowText:t.allowText!==!1}}function pE(e){if(!e.length)return null;const t=e[e.length-1];if(t.role!=="assistant")return null;let s=null,o=-1;for(let g=t.parts.length-1;g>=0;g--){const h=t.parts[g];if(h.kind==="tool"&&h.tool==="ask_questions"){s=h,o=g;break}}if(!s||o<0)return null;let l=null;if(typeof s.result=="string")try{l=JSON.parse(s.result)}catch{l=null}else s.result&&typeof s.result=="object"&&(l=s.result);const c=[];Array.isArray(s.args?.questions)&&c.push(s.args.questions),l&&Array.isArray(l.questions)&&c.push(l.questions);let u=[];for(const g of c)if(u=g.map(cI).filter(h=>!!h),u.length>0)break;return u.length?{turnKey:`${t.ts||""}#${o}`,questions:u}:null}const gx={live:{label:"Live",icon:fs,order:0},telegram:{label:"Telegram",icon:Fa,order:1},voice:{label:"Voice",icon:Ik,order:2},desktop:{label:"Desktop",icon:Bk,order:3},web:{label:"Web",icon:Lx,order:4},a2a:{label:"Agent ↔ Agent",icon:hn,order:5},schedule:{label:"Schedule",icon:LM,order:6},other:{label:"Other",icon:zx,order:7}};function uI(e){if(!e)return"web";const t=e.toLowerCase();return t==="telegram"?"telegram":t==="voice"||t==="overlay"?"voice":t==="desktop"?"desktop":t==="web"||t==="sidebar"||t==="web-sidebar"?"web":t==="a2a"||t.startsWith("agent")?"a2a":t==="schedule"||t==="cron"||t==="routine"?"schedule":"other"}function dI({pid:e,slug:t,onLoaded:s}){const{data:o}=Qe(`/projects/${e}/agents/${t}/conversations`,()=>Ub.list(e,t),{revalidateOnFocus:!1});return x.useEffect(()=>{s(t,o)},[t,o]),null}function fI({pid:e,agents:t,superAgentSlug:s,superAgentLabel:o,selected:l,onSelect:c,onNewChat:u}){const[p,m]=x.useState(""),[g,h]=x.useState(""),[b,_]=x.useState({}),[k,E]=x.useState({}),j=(M,z)=>{z&&E(P=>{const D=P[M];return D&&D.length===z.length&&D===z?P:{...P,[M]:z}})},w=x.useMemo(()=>{const M=[];for(const z of t)for(const P of k[z.slug]||[])M.push({...P,agent_slug:P.agent_slug||z.slug});return M},[t,k]),S=x.useMemo(()=>{const M=p.trim().toLowerCase();return w.filter(z=>!(g&&z.agent_slug!==g||M&&!`${z.title||""} ${z.id} ${z.agent_slug}`.toLowerCase().includes(M)))},[w,p,g]),C=x.useMemo(()=>{const M=new Map;for(const z of S){const P=uI(z.channel),D=M.get(P);D?D.push(z):M.set(P,[z])}return Array.from(M.entries()).map(([z,P])=>({key:z,items:P.sort((D,I)=>new Date(I.started_at||0).getTime()-new Date(D.started_at||0).getTime())})).sort((z,P)=>gx[z.key].order-gx[P.key].order)},[S]),N=x.useMemo(()=>{if(g===s)return[{slug:s,label:o}];const M=[];g||M.push({slug:s,label:o});for(const z of t)g&&z.slug!==g||M.push({slug:z.slug,label:z.slug});return M},[t,g,s,o]),R=x.useMemo(()=>[{value:"",label:f("project.chat.list.all_agents")},{value:s,label:o},...t.map(M=>({value:M.slug,label:M.slug}))],[t,s,o]),A=w.length+N.length,T=Object.keys(k).length>0||t.length===0;return r.jsxs("aside",{className:"flex h-full w-72 shrink-0 flex-col border-r border-border bg-card/30",children:[t.map(M=>r.jsx(dI,{pid:e,slug:M.slug,onLoaded:j},M.slug)),r.jsxs("header",{className:"flex h-[57px] shrink-0 items-center justify-between gap-2 border-b border-border px-3",children:[r.jsxs("div",{className:"min-w-0",children:[r.jsx("p",{className:"truncate text-sm font-semibold",children:f("project.chat.list.title")}),r.jsx("p",{className:"text-[10px] text-muted-fg",children:f("project.chat.list.count",{n:A})})]}),r.jsxs("button",{type:"button",onClick:u,className:"inline-flex items-center gap-1 rounded-md border border-border bg-accent/60 px-2 py-1 text-[11px] font-medium hover:bg-accent",children:[r.jsx(rn,{className:"size-3"})," ",f("project.chat.list.new")]})]}),r.jsxs("div",{className:"space-y-2 border-b border-border p-2",children:[r.jsx(Oe,{value:p,onChange:M=>m(M.target.value),placeholder:f("project.chat.list.search")}),r.jsx(St,{value:g,onChange:h,options:R})]}),r.jsxs("div",{className:"flex-1 space-y-3 overflow-y-auto p-2",children:[!T&&r.jsx("div",{className:"px-2 py-1",children:r.jsx(ot,{})}),N.length>0&&r.jsx(ew,{keyName:"live",count:N.length,collapsed:!!b.live,onToggle:()=>_(M=>({...M,live:!M.live})),children:N.map(M=>{const z=M.slug===s,P=l.kind==="live"&&l.agentSlug===M.slug;return r.jsx(tw,{title:z?M.label:f("project.chat.list.live_with",{slug:M.slug}),subtitle:f("project.chat.list.live_subtitle"),badge:z?"super":M.slug,selected:P,onClick:()=>c({kind:"live",agentSlug:M.slug})},`live-${M.slug}`)})}),C.map(M=>r.jsx(ew,{keyName:M.key,count:M.items.length,collapsed:!!b[M.key],onToggle:()=>_(z=>({...z,[M.key]:!z[M.key]})),children:M.items.map(z=>{const P=l.kind==="conv"&&l.agentSlug===z.agent_slug&&l.convId===z.id;return r.jsx(tw,{title:z.title||z.id,subtitle:[z.agent_slug,`${z.messages??0} msg`].filter(Boolean).join(" · "),badge:z.agent_slug,timeAgo:z.started_at,selected:P,onClick:()=>c({kind:"conv",agentSlug:z.agent_slug,convId:z.id})},`${z.agent_slug}-${z.id}`)})},M.key)),T&&w.length===0&&r.jsx("p",{className:"px-3 py-6 text-center text-xs text-muted-fg",children:f("project.chat.list.empty")})]})]})}function ew({keyName:e,count:t,collapsed:s,onToggle:o,children:l}){const c=gx[e],u=c.icon;return r.jsxs("section",{className:"space-y-1",children:[r.jsxs("button",{type:"button",onClick:o,className:"flex w-full items-center justify-between rounded-md px-2 py-1 text-muted-fg hover:bg-accent/30",children:[r.jsxs("span",{className:"inline-flex items-center gap-1.5",children:[s?r.jsx(Pc,{className:"size-3"}):r.jsx(Zs,{className:"size-3"}),r.jsx(u,{className:"size-3"}),r.jsx("span",{className:"text-[10px] font-semibold uppercase tracking-wider",children:c.label})]}),r.jsx("span",{className:"text-[10px]",children:t})]}),!s&&r.jsx("div",{className:"space-y-0.5",children:l})]})}function tw({title:e,subtitle:t,badge:s,timeAgo:o,selected:l,onClick:c}){return r.jsxs("button",{type:"button",onClick:c,className:kc("w-full rounded-md border px-2.5 py-2 text-left transition-colors",l?"border-primary/50 bg-primary/10":"border-transparent hover:border-border hover:bg-accent/40"),children:[r.jsxs("div",{className:"flex items-start justify-between gap-2",children:[r.jsx("p",{className:kc("truncate text-sm",l?"font-semibold":"font-medium"),children:e}),o&&r.jsxs("span",{className:"inline-flex shrink-0 items-center gap-0.5 text-[10px] text-muted-fg",children:[r.jsx(eM,{className:"size-2.5"}),pI(o)]})]}),r.jsxs("div",{className:"mt-0.5 flex items-center justify-between gap-2 text-[10px] text-muted-fg",children:[r.jsx("span",{className:"truncate",children:t}),s&&r.jsxs("span",{className:"inline-flex shrink-0 items-center gap-1 rounded bg-accent/50 px-1.5 py-0.5",children:[r.jsx(Bx,{className:"size-2.5"}),s]})]})]})}function pI(e){if(!e)return"";const t=new Date(e).getTime();if(!Number.isFinite(t))return"";const s=Date.now()-t,o=Math.floor(s/6e4);if(o<1)return"now";if(o<60)return`${o}m`;const l=Math.floor(o/60);return l<24?`${l}h`:`${Math.floor(l/24)}d`}const Sd="__super_agent__";function mI({pid:e}){const t=lt(),[s]=jf(),o=Qe(`/projects/${e}/agents`,()=>sn.list(e)),[l,c]=x.useState(!1),[u,p]=x.useState(""),[m,g]=x.useState(null),{msgs:h,send:b,stop:_,clear:k,load:E,streaming:j,conversationId:w}=sI(e,H=>t.error(H)),S=qb(),C=s.get("agent"),[N,R]=x.useState(C?{kind:"live",agentSlug:C}:{kind:"live",agentSlug:Sd}),A=o.data||[],T=H=>H===Sd,M=x.useMemo(()=>N.kind==="live"?A.find(H=>H.slug===N.agentSlug):A.find(H=>H.slug===N.agentSlug),[A,N]),z=T(N.agentSlug);x.useEffect(()=>{N.kind==="conv"?E(N.agentSlug,N.convId):w&&k()},[N.kind,N.kind==="conv"?N.convId:N.agentSlug]);const P=async H=>{if(z){await b(H,{model:u||void 0});return}M&&await b(H,{model:u||void 0,agentSlug:M.slug})},D=async H=>{try{await navigator.clipboard.writeText(H),t.info(f("project.chat.copied"))}catch{}},I=()=>{R({kind:"live",agentSlug:Sd}),k()},B=z?f("project.chat.superagent_title",{persona:S}):N.kind==="conv"?N.convId:f("project.chat.title"),V=z?f("project.chat.superagent_subtitle",{persona:S}):N.kind==="conv"?f("project.chat.loaded_subtitle",{slug:N.agentSlug}):f("project.chat.subtitle");return o.isLoading?r.jsx(ot,{}):r.jsxs("div",{className:"flex h-full overflow-hidden rounded-xl border border-border bg-card/40",children:[r.jsx(fI,{pid:e,agents:A,superAgentSlug:Sd,superAgentLabel:f("agents_ui.super_agent_label",{persona:S}),selected:N,onSelect:R,onNewChat:I}),r.jsxs("section",{className:"flex min-w-0 flex-1 flex-col",children:[r.jsxs("header",{className:"flex shrink-0 items-center justify-between gap-3 border-b border-border px-4 py-3",children:[r.jsxs("div",{className:"min-w-0",children:[r.jsx("h2",{className:"truncate text-sm font-semibold",children:B}),r.jsx("p",{className:"truncate text-[11px] text-muted-fg",children:V})]}),r.jsxs("div",{className:"flex items-center gap-2",children:[z?r.jsx(Fe,{tone:"success",children:f("agents_ui.super_agent_badge")}):M?.model&&r.jsx(Fe,{tone:"info",children:M.model}),N.kind==="conv"&&r.jsx(Fe,{tone:"info",children:w||"…"}),!A.length&&!z&&r.jsxs(me,{variant:"primary",size:"sm",onClick:()=>c(!0),children:[r.jsx(rn,{size:14})," ",f("project.chat.create_agent")]}),r.jsxs(me,{variant:"ghost",size:"sm",disabled:j||h.length===0,onClick:I,children:[r.jsx(ia,{size:13})," ",f("project.chat.clear")]})]})]}),r.jsx("div",{className:"flex-1 overflow-y-auto",children:h.length?r.jsx(lv,{msgs:h,onCopy:D}):r.jsx("div",{className:"flex h-full items-center justify-center p-8",children:r.jsx("p",{className:"text-sm text-muted-fg",children:f("project.chat.empty")})})}),r.jsx(dE,{msgs:h}),(()=>{const H=j?null:pE(h);return!H||H.turnKey===m?null:r.jsx(fE,{turnKey:H.turnKey,questions:H.questions,onSubmit:G=>void P(G),onDismiss:()=>g(H.turnKey),disabled:j})})(),r.jsx(F6,{onSend:P,onStop:_,streaming:j,model:u,onModelChange:p})]}),r.jsx(gI,{open:l,pid:e,onClose:()=>c(!1),onCreated:()=>{c(!1),o.mutate()}})]})}function gI({open:e,onClose:t,onCreated:s,pid:o}){const l=lt(),[c,u]=x.useState(""),[p,m]=x.useState("master"),[g,h]=x.useState(""),[b,_]=x.useState(!0),[k,E]=x.useState(!1),j=async()=>{if(!/^[a-z][a-z0-9_-]*$/.test(c)){l.error(f("project.agents.slug_invalid"));return}E(!0);try{await sn.create(o,{slug:c,role:p,model:g||void 0,is_master:b}),l.success(f("project.agents.created",{slug:c})),u(""),m("master"),h(""),_(!0),s()}catch(w){l.error(w.message)}finally{E(!1)}};return r.jsx(An,{open:e,onClose:t,title:f("project.chat.create_agent_title"),description:f("project.chat.create_agent_desc"),footer:r.jsxs(r.Fragment,{children:[r.jsx(me,{variant:"ghost",onClick:t,disabled:k,children:f("common.cancel")}),r.jsx(me,{variant:"primary",onClick:j,loading:k,children:f("common.create")})]}),children:r.jsxs("div",{className:"space-y-3",children:[r.jsx(pe,{label:"slug",children:r.jsx(Oe,{autoFocus:!0,value:c,onChange:w=>u(w.target.value),placeholder:"master"})}),r.jsx(pe,{label:f("project.chat.role_label"),children:r.jsx(Oe,{value:p,onChange:w=>m(w.target.value),placeholder:"master"})}),r.jsx(pe,{label:f("project.chat.model_label"),hint:f("project.chat.model_hint"),children:r.jsx(Oe,{value:g,onChange:w=>h(w.target.value)})}),r.jsx(Qt,{checked:b,onChange:_,label:f("project.chat.master_label")})]})})}function hI({pid:e}){const t=lt(),{project:s}=Hb(e),{channels:o,isLoading:l,mutate:c}=Kb(),u=String(e),p=s?.name||s?.path?.split("/").pop()||u,m=`proj-${u}`,g=o.find(M=>M.project===u||M.project===p||M.name===m),[h,b]=x.useState(!!g),[_,k]=x.useState(""),[E,j]=x.useState(""),[w,S]=x.useState(""),[C,N]=x.useState(!0),[R,A]=x.useState(!1);if(x.useEffect(()=>{g?(b(!0),k(""),j(g.chat_id||""),S(g.route_to_agent||""),N(g.respond_with_engine??!0)):(b(!1),k(""),j(""),S(""),N(!0))},[g?.name,g?.chat_id,g?.route_to_agent]),l)return r.jsx(ot,{});const T=async()=>{A(!0);try{if(!h){g&&(await Tn.channels.remove(g.name),t.success(f("project.telegram.cleared"))),await c();return}const M={name:g?.name||m,project:u,chat_id:E,route_to_agent:w,respond_with_engine:C,..._?{bot_token:_}:{}};g?await Tn.channels.patch(g.name,M):await Tn.channels.upsert(M),t.success(f("project.telegram.saved")),await c(),k("")}catch(M){t.error(M.message)}finally{A(!1)}};return r.jsx(Ye,{title:f("project.telegram.title"),description:f("project.telegram.subtitle"),children:r.jsxs("div",{className:"space-y-3",children:[r.jsxs("div",{className:"flex items-center gap-3",children:[r.jsx(Qt,{checked:h,onChange:b,label:f(h?"project.telegram.override_active":"project.telegram.use_default")}),g&&r.jsx(Fe,{tone:"success",children:f("project.telegram.channel_badge",{name:g.name})})]}),h&&r.jsxs(r.Fragment,{children:[r.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[r.jsx(pe,{label:f("project.telegram.bot_token"),hint:g?.bot_token?`${Tr(g.bot_token)} ${f("telegram_ui.empty_keep")}`:f("project.telegram.bot_hint_none"),children:r.jsx(Oe,{type:"password",value:_,onChange:M=>k(M.target.value),placeholder:g?.bot_token?Tr(g.bot_token):""})}),r.jsx(pe,{label:f("project.telegram.chat_id"),children:r.jsx(Oe,{value:E,onChange:M=>j(M.target.value)})}),r.jsx(pe,{label:f("project.telegram.route_agent"),hint:f("project.telegram.route_hint"),children:r.jsx(Oe,{value:w,onChange:M=>S(M.target.value)})})]}),r.jsx(Qt,{checked:C,onChange:N,label:f("project.telegram.respond_engine")})]}),r.jsx("div",{className:"pt-2",children:r.jsx(me,{variant:"primary",loading:R,onClick:T,children:f("common.save")})}),!h&&!g&&r.jsx(xt,{children:f("project.telegram.no_override")})]})})}function mE({load:e,save:t,rows:s=10,placeholder:o}){const l=lt(),[c,u]=x.useState(null),[p,m]=x.useState(""),[g,h]=x.useState(!1);if(x.useEffect(()=>{let k=!0;return e().then(E=>{k&&(u(E),m(E))}).catch(()=>{k&&(u(""),m(""))}),()=>{k=!1}},[e]),c===null)return r.jsx(ot,{});const b=p!==c,_=async()=>{h(!0);try{await t(p),u(p),l.success(f("project.memories.saved"))}catch(k){l.error(k.message)}finally{h(!1)}};return r.jsxs("div",{className:"space-y-2",children:[r.jsx(Un,{rows:s,className:"font-mono text-xs",value:p,onChange:k=>m(k.target.value),placeholder:o}),r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsxs("span",{className:"text-[11px] text-muted-fg",children:[p.length," ",f("project.memories.chars")]}),r.jsxs(me,{size:"sm",variant:"primary",loading:g,disabled:!b,onClick:_,children:[r.jsx(Cf,{size:12})," ",f("project.memories.save_btn")]})]})]})}function xI({pid:e,agent:t}){const[s,o]=x.useState(!1),l=t.is_master?Fs:hn;return r.jsxs("li",{className:"rounded-xl border border-border bg-muted/30",children:[r.jsxs("button",{type:"button",onClick:()=>o(c=>!c),className:"flex w-full items-center gap-3 px-3 py-2 text-left",children:[s?r.jsx(Zs,{size:14,className:"text-muted-fg"}):r.jsx(Pc,{size:14,className:"text-muted-fg"}),r.jsx(l,{size:14,className:t.is_master?"text-violet-400":"text-muted-fg"}),r.jsx("span",{className:"text-sm font-medium",children:t.slug}),t.role&&r.jsxs("span",{className:"text-xs text-muted-fg",children:["· ",t.role]})]}),s&&r.jsx("div",{className:"border-t border-border p-3",children:r.jsx(mE,{rows:8,load:()=>sn.memory.get(e,t.slug).then(c=>c.body),save:c=>sn.memory.put(e,t.slug,c).then(()=>{})})})]})}function bI({pid:e}){const t=Qe(`/projects/${e}/agents`,()=>sn.list(e));return r.jsxs("div",{className:"space-y-6",children:[r.jsx(Ye,{title:f("project.memories.project_title"),description:f("project.memories.project_desc"),children:r.jsxs("div",{className:"flex items-start gap-3",children:[r.jsx("div",{className:"mt-1 flex size-9 shrink-0 items-center justify-center rounded-xl bg-gradient-to-br from-sky-600 to-indigo-600",children:r.jsx(Vd,{className:"size-4 text-white"})}),r.jsx("div",{className:"min-w-0 flex-1",children:r.jsx(mE,{rows:12,load:()=>ra.memory.get(e).then(s=>s.body),save:s=>ra.memory.put(e,s).then(()=>{}),placeholder:f("project.memories.project_ph")})})]})}),r.jsxs(Ye,{title:f("project.memories.agents_title"),description:f("project.memories.agents_desc"),children:[t.isLoading&&r.jsx(ot,{}),!t.isLoading&&(t.data?.length??0)===0&&r.jsx(xt,{children:f("project.memories.no_agents")}),r.jsx("ul",{className:"space-y-2",children:(t.data||[]).map(s=>r.jsx(xI,{pid:e,agent:s},s.slug))})]})]})}function vI(e,t){var s,o=1;e==null&&(e=0),t==null&&(t=0);function l(){var c,u=s.length,p,m=0,g=0;for(c=0;c<u;++c)p=s[c],m+=p.x,g+=p.y;for(m=(m/u-e)*o,g=(g/u-t)*o,c=0;c<u;++c)p=s[c],p.x-=m,p.y-=g}return l.initialize=function(c){s=c},l.x=function(c){return arguments.length?(e=+c,l):e},l.y=function(c){return arguments.length?(t=+c,l):t},l.strength=function(c){return arguments.length?(o=+c,l):o},l}function _I(e){const t=+this._x.call(null,e),s=+this._y.call(null,e);return gE(this.cover(t,s),t,s,e)}function gE(e,t,s,o){if(isNaN(t)||isNaN(s))return e;var l,c=e._root,u={data:o},p=e._x0,m=e._y0,g=e._x1,h=e._y1,b,_,k,E,j,w,S,C;if(!c)return e._root=u,e;for(;c.length;)if((j=t>=(b=(p+g)/2))?p=b:g=b,(w=s>=(_=(m+h)/2))?m=_:h=_,l=c,!(c=c[S=w<<1|j]))return l[S]=u,e;if(k=+e._x.call(null,c.data),E=+e._y.call(null,c.data),t===k&&s===E)return u.next=c,l?l[S]=u:e._root=u,e;do l=l?l[S]=new Array(4):e._root=new Array(4),(j=t>=(b=(p+g)/2))?p=b:g=b,(w=s>=(_=(m+h)/2))?m=_:h=_;while((S=w<<1|j)===(C=(E>=_)<<1|k>=b));return l[C]=c,l[S]=u,e}function yI(e){var t,s,o=e.length,l,c,u=new Array(o),p=new Array(o),m=1/0,g=1/0,h=-1/0,b=-1/0;for(s=0;s<o;++s)isNaN(l=+this._x.call(null,t=e[s]))||isNaN(c=+this._y.call(null,t))||(u[s]=l,p[s]=c,l<m&&(m=l),l>h&&(h=l),c<g&&(g=c),c>b&&(b=c));if(m>h||g>b)return this;for(this.cover(m,g).cover(h,b),s=0;s<o;++s)gE(this,u[s],p[s],e[s]);return this}function jI(e,t){if(isNaN(e=+e)||isNaN(t=+t))return this;var s=this._x0,o=this._y0,l=this._x1,c=this._y1;if(isNaN(s))l=(s=Math.floor(e))+1,c=(o=Math.floor(t))+1;else{for(var u=l-s||1,p=this._root,m,g;s>e||e>=l||o>t||t>=c;)switch(g=(t<o)<<1|e<s,m=new Array(4),m[g]=p,p=m,u*=2,g){case 0:l=s+u,c=o+u;break;case 1:s=l-u,c=o+u;break;case 2:l=s+u,o=c-u;break;case 3:s=l-u,o=c-u;break}this._root&&this._root.length&&(this._root=p)}return this._x0=s,this._y0=o,this._x1=l,this._y1=c,this}function wI(){var e=[];return this.visit(function(t){if(!t.length)do e.push(t.data);while(t=t.next)}),e}function kI(e){return arguments.length?this.cover(+e[0][0],+e[0][1]).cover(+e[1][0],+e[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]}function Gn(e,t,s,o,l){this.node=e,this.x0=t,this.y0=s,this.x1=o,this.y1=l}function SI(e,t,s){var o,l=this._x0,c=this._y0,u,p,m,g,h=this._x1,b=this._y1,_=[],k=this._root,E,j;for(k&&_.push(new Gn(k,l,c,h,b)),s==null?s=1/0:(l=e-s,c=t-s,h=e+s,b=t+s,s*=s);E=_.pop();)if(!(!(k=E.node)||(u=E.x0)>h||(p=E.y0)>b||(m=E.x1)<l||(g=E.y1)<c))if(k.length){var w=(u+m)/2,S=(p+g)/2;_.push(new Gn(k[3],w,S,m,g),new Gn(k[2],u,S,w,g),new Gn(k[1],w,p,m,S),new Gn(k[0],u,p,w,S)),(j=(t>=S)<<1|e>=w)&&(E=_[_.length-1],_[_.length-1]=_[_.length-1-j],_[_.length-1-j]=E)}else{var C=e-+this._x.call(null,k.data),N=t-+this._y.call(null,k.data),R=C*C+N*N;if(R<s){var A=Math.sqrt(s=R);l=e-A,c=t-A,h=e+A,b=t+A,o=k.data}}return o}function CI(e){if(isNaN(h=+this._x.call(null,e))||isNaN(b=+this._y.call(null,e)))return this;var t,s=this._root,o,l,c,u=this._x0,p=this._y0,m=this._x1,g=this._y1,h,b,_,k,E,j,w,S;if(!s)return this;if(s.length)for(;;){if((E=h>=(_=(u+m)/2))?u=_:m=_,(j=b>=(k=(p+g)/2))?p=k:g=k,t=s,!(s=s[w=j<<1|E]))return this;if(!s.length)break;(t[w+1&3]||t[w+2&3]||t[w+3&3])&&(o=t,S=w)}for(;s.data!==e;)if(l=s,!(s=s.next))return this;return(c=s.next)&&delete s.next,l?(c?l.next=c:delete l.next,this):t?(c?t[w]=c:delete t[w],(s=t[0]||t[1]||t[2]||t[3])&&s===(t[3]||t[2]||t[1]||t[0])&&!s.length&&(o?o[S]=s:this._root=s),this):(this._root=c,this)}function EI(e){for(var t=0,s=e.length;t<s;++t)this.remove(e[t]);return this}function NI(){return this._root}function RI(){var e=0;return this.visit(function(t){if(!t.length)do++e;while(t=t.next)}),e}function TI(e){var t=[],s,o=this._root,l,c,u,p,m;for(o&&t.push(new Gn(o,this._x0,this._y0,this._x1,this._y1));s=t.pop();)if(!e(o=s.node,c=s.x0,u=s.y0,p=s.x1,m=s.y1)&&o.length){var g=(c+p)/2,h=(u+m)/2;(l=o[3])&&t.push(new Gn(l,g,h,p,m)),(l=o[2])&&t.push(new Gn(l,c,h,g,m)),(l=o[1])&&t.push(new Gn(l,g,u,p,h)),(l=o[0])&&t.push(new Gn(l,c,u,g,h))}return this}function AI(e){var t=[],s=[],o;for(this._root&&t.push(new Gn(this._root,this._x0,this._y0,this._x1,this._y1));o=t.pop();){var l=o.node;if(l.length){var c,u=o.x0,p=o.y0,m=o.x1,g=o.y1,h=(u+m)/2,b=(p+g)/2;(c=l[0])&&t.push(new Gn(c,u,p,h,b)),(c=l[1])&&t.push(new Gn(c,h,p,m,b)),(c=l[2])&&t.push(new Gn(c,u,b,h,g)),(c=l[3])&&t.push(new Gn(c,h,b,m,g))}s.push(o)}for(;o=s.pop();)e(o.node,o.x0,o.y0,o.x1,o.y1);return this}function MI(e){return e[0]}function OI(e){return arguments.length?(this._x=e,this):this._x}function zI(e){return e[1]}function DI(e){return arguments.length?(this._y=e,this):this._y}function iv(e,t,s){var o=new cv(t??MI,s??zI,NaN,NaN,NaN,NaN);return e==null?o:o.addAll(e)}function cv(e,t,s,o,l,c){this._x=e,this._y=t,this._x0=s,this._y0=o,this._x1=l,this._y1=c,this._root=void 0}function nw(e){for(var t={data:e.data},s=t;e=e.next;)s=s.next={data:e.data};return t}var Zn=iv.prototype=cv.prototype;Zn.copy=function(){var e=new cv(this._x,this._y,this._x0,this._y0,this._x1,this._y1),t=this._root,s,o;if(!t)return e;if(!t.length)return e._root=nw(t),e;for(s=[{source:t,target:e._root=new Array(4)}];t=s.pop();)for(var l=0;l<4;++l)(o=t.source[l])&&(o.length?s.push({source:o,target:t.target[l]=new Array(4)}):t.target[l]=nw(o));return e};Zn.add=_I;Zn.addAll=yI;Zn.cover=jI;Zn.data=wI;Zn.extent=kI;Zn.find=SI;Zn.remove=CI;Zn.removeAll=EI;Zn.root=NI;Zn.size=RI;Zn.visit=TI;Zn.visitAfter=AI;Zn.x=OI;Zn.y=DI;function go(e){return function(){return e}}function Rr(e){return(e()-.5)*1e-6}function LI(e){return e.x+e.vx}function PI(e){return e.y+e.vy}function II(e){var t,s,o,l=1,c=1;typeof e!="function"&&(e=go(e==null?1:+e));function u(){for(var g,h=t.length,b,_,k,E,j,w,S=0;S<c;++S)for(b=iv(t,LI,PI).visitAfter(p),g=0;g<h;++g)_=t[g],j=s[_.index],w=j*j,k=_.x+_.vx,E=_.y+_.vy,b.visit(C);function C(N,R,A,T,M){var z=N.data,P=N.r,D=j+P;if(z){if(z.index>_.index){var I=k-z.x-z.vx,B=E-z.y-z.vy,V=I*I+B*B;V<D*D&&(I===0&&(I=Rr(o),V+=I*I),B===0&&(B=Rr(o),V+=B*B),V=(D-(V=Math.sqrt(V)))/V*l,_.vx+=(I*=V)*(D=(P*=P)/(w+P)),_.vy+=(B*=V)*D,z.vx-=I*(D=1-D),z.vy-=B*D)}return}return R>k+D||T<k-D||A>E+D||M<E-D}}function p(g){if(g.data)return g.r=s[g.data.index];for(var h=g.r=0;h<4;++h)g[h]&&g[h].r>g.r&&(g.r=g[h].r)}function m(){if(t){var g,h=t.length,b;for(s=new Array(h),g=0;g<h;++g)b=t[g],s[b.index]=+e(b,g,t)}}return u.initialize=function(g,h){t=g,o=h,m()},u.iterations=function(g){return arguments.length?(c=+g,u):c},u.strength=function(g){return arguments.length?(l=+g,u):l},u.radius=function(g){return arguments.length?(e=typeof g=="function"?g:go(+g),m(),u):e},u}function BI(e){return e.index}function aw(e,t){var s=e.get(t);if(!s)throw new Error("node not found: "+t);return s}function UI(e){var t=BI,s=b,o,l=go(30),c,u,p,m,g,h=1;e==null&&(e=[]);function b(w){return 1/Math.min(p[w.source.index],p[w.target.index])}function _(w){for(var S=0,C=e.length;S<h;++S)for(var N=0,R,A,T,M,z,P,D;N<C;++N)R=e[N],A=R.source,T=R.target,M=T.x+T.vx-A.x-A.vx||Rr(g),z=T.y+T.vy-A.y-A.vy||Rr(g),P=Math.sqrt(M*M+z*z),P=(P-c[N])/P*w*o[N],M*=P,z*=P,T.vx-=M*(D=m[N]),T.vy-=z*D,A.vx+=M*(D=1-D),A.vy+=z*D}function k(){if(u){var w,S=u.length,C=e.length,N=new Map(u.map((A,T)=>[t(A,T,u),A])),R;for(w=0,p=new Array(S);w<C;++w)R=e[w],R.index=w,typeof R.source!="object"&&(R.source=aw(N,R.source)),typeof R.target!="object"&&(R.target=aw(N,R.target)),p[R.source.index]=(p[R.source.index]||0)+1,p[R.target.index]=(p[R.target.index]||0)+1;for(w=0,m=new Array(C);w<C;++w)R=e[w],m[w]=p[R.source.index]/(p[R.source.index]+p[R.target.index]);o=new Array(C),E(),c=new Array(C),j()}}function E(){if(u)for(var w=0,S=e.length;w<S;++w)o[w]=+s(e[w],w,e)}function j(){if(u)for(var w=0,S=e.length;w<S;++w)c[w]=+l(e[w],w,e)}return _.initialize=function(w,S){u=w,g=S,k()},_.links=function(w){return arguments.length?(e=w,k(),_):e},_.id=function(w){return arguments.length?(t=w,_):t},_.iterations=function(w){return arguments.length?(h=+w,_):h},_.strength=function(w){return arguments.length?(s=typeof w=="function"?w:go(+w),E(),_):s},_.distance=function(w){return arguments.length?(l=typeof w=="function"?w:go(+w),j(),_):l},_}var HI={value:()=>{}};function hE(){for(var e=0,t=arguments.length,s={},o;e<t;++e){if(!(o=arguments[e]+"")||o in s||/[\s.]/.test(o))throw new Error("illegal type: "+o);s[o]=[]}return new Id(s)}function Id(e){this._=e}function VI(e,t){return e.trim().split(/^|\s+/).map(function(s){var o="",l=s.indexOf(".");if(l>=0&&(o=s.slice(l+1),s=s.slice(0,l)),s&&!t.hasOwnProperty(s))throw new Error("unknown type: "+s);return{type:s,name:o}})}Id.prototype=hE.prototype={constructor:Id,on:function(e,t){var s=this._,o=VI(e+"",s),l,c=-1,u=o.length;if(arguments.length<2){for(;++c<u;)if((l=(e=o[c]).type)&&(l=qI(s[l],e.name)))return l;return}if(t!=null&&typeof t!="function")throw new Error("invalid callback: "+t);for(;++c<u;)if(l=(e=o[c]).type)s[l]=sw(s[l],e.name,t);else if(t==null)for(l in s)s[l]=sw(s[l],e.name,null);return this},copy:function(){var e={},t=this._;for(var s in t)e[s]=t[s].slice();return new Id(e)},call:function(e,t){if((l=arguments.length-2)>0)for(var s=new Array(l),o=0,l,c;o<l;++o)s[o]=arguments[o+2];if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(c=this._[e],o=0,l=c.length;o<l;++o)c[o].value.apply(t,s)},apply:function(e,t,s){if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(var o=this._[e],l=0,c=o.length;l<c;++l)o[l].value.apply(t,s)}};function qI(e,t){for(var s=0,o=e.length,l;s<o;++s)if((l=e[s]).name===t)return l.value}function sw(e,t,s){for(var o=0,l=e.length;o<l;++o)if(e[o].name===t){e[o]=HI,e=e.slice(0,o).concat(e.slice(o+1));break}return s!=null&&e.push({name:t,value:s}),e}var $l=0,pc=0,tc=0,xE=1e3,hf,mc,xf=0,wo=0,op=0,Ac=typeof performance=="object"&&performance.now?performance:Date,bE=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function vE(){return wo||(bE($I),wo=Ac.now()+op)}function $I(){wo=0}function hx(){this._call=this._time=this._next=null}hx.prototype=_E.prototype={constructor:hx,restart:function(e,t,s){if(typeof e!="function")throw new TypeError("callback is not a function");s=(s==null?vE():+s)+(t==null?0:+t),!this._next&&mc!==this&&(mc?mc._next=this:hf=this,mc=this),this._call=e,this._time=s,xx()},stop:function(){this._call&&(this._call=null,this._time=1/0,xx())}};function _E(e,t,s){var o=new hx;return o.restart(e,t,s),o}function FI(){vE(),++$l;for(var e=hf,t;e;)(t=wo-e._time)>=0&&e._call.call(void 0,t),e=e._next;--$l}function rw(){wo=(xf=Ac.now())+op,$l=pc=0;try{FI()}finally{$l=0,YI(),wo=0}}function GI(){var e=Ac.now(),t=e-xf;t>xE&&(op-=t,xf=e)}function YI(){for(var e,t=hf,s,o=1/0;t;)t._call?(o>t._time&&(o=t._time),e=t,t=t._next):(s=t._next,t._next=null,t=e?e._next=s:hf=s);mc=e,xx(o)}function xx(e){if(!$l){pc&&(pc=clearTimeout(pc));var t=e-wo;t>24?(e<1/0&&(pc=setTimeout(rw,e-Ac.now()-op)),tc&&(tc=clearInterval(tc))):(tc||(xf=Ac.now(),tc=setInterval(GI,xE)),$l=1,bE(rw))}}const XI=1664525,KI=1013904223,ow=4294967296;function QI(){let e=1;return()=>(e=(XI*e+KI)%ow)/ow}function ZI(e){return e.x}function WI(e){return e.y}var JI=10,e8=Math.PI*(3-Math.sqrt(5));function t8(e){var t,s=1,o=.001,l=1-Math.pow(o,1/300),c=0,u=.6,p=new Map,m=_E(b),g=hE("tick","end"),h=QI();e==null&&(e=[]);function b(){_(),g.call("tick",t),s<o&&(m.stop(),g.call("end",t))}function _(j){var w,S=e.length,C;j===void 0&&(j=1);for(var N=0;N<j;++N)for(s+=(c-s)*l,p.forEach(function(R){R(s)}),w=0;w<S;++w)C=e[w],C.fx==null?C.x+=C.vx*=u:(C.x=C.fx,C.vx=0),C.fy==null?C.y+=C.vy*=u:(C.y=C.fy,C.vy=0);return t}function k(){for(var j=0,w=e.length,S;j<w;++j){if(S=e[j],S.index=j,S.fx!=null&&(S.x=S.fx),S.fy!=null&&(S.y=S.fy),isNaN(S.x)||isNaN(S.y)){var C=JI*Math.sqrt(.5+j),N=j*e8;S.x=C*Math.cos(N),S.y=C*Math.sin(N)}(isNaN(S.vx)||isNaN(S.vy))&&(S.vx=S.vy=0)}}function E(j){return j.initialize&&j.initialize(e,h),j}return k(),t={tick:_,restart:function(){return m.restart(b),t},stop:function(){return m.stop(),t},nodes:function(j){return arguments.length?(e=j,k(),p.forEach(E),t):e},alpha:function(j){return arguments.length?(s=+j,t):s},alphaMin:function(j){return arguments.length?(o=+j,t):o},alphaDecay:function(j){return arguments.length?(l=+j,t):+l},alphaTarget:function(j){return arguments.length?(c=+j,t):c},velocityDecay:function(j){return arguments.length?(u=1-j,t):1-u},randomSource:function(j){return arguments.length?(h=j,p.forEach(E),t):h},force:function(j,w){return arguments.length>1?(w==null?p.delete(j):p.set(j,E(w)),t):p.get(j)},find:function(j,w,S){var C=0,N=e.length,R,A,T,M,z;for(S==null?S=1/0:S*=S,C=0;C<N;++C)M=e[C],R=j-M.x,A=w-M.y,T=R*R+A*A,T<S&&(z=M,S=T);return z},on:function(j,w){return arguments.length>1?(g.on(j,w),t):g.on(j)}}}function n8(){var e,t,s,o,l=go(-30),c,u=1,p=1/0,m=.81;function g(k){var E,j=e.length,w=iv(e,ZI,WI).visitAfter(b);for(o=k,E=0;E<j;++E)t=e[E],w.visit(_)}function h(){if(e){var k,E=e.length,j;for(c=new Array(E),k=0;k<E;++k)j=e[k],c[j.index]=+l(j,k,e)}}function b(k){var E=0,j,w,S=0,C,N,R;if(k.length){for(C=N=R=0;R<4;++R)(j=k[R])&&(w=Math.abs(j.value))&&(E+=j.value,S+=w,C+=w*j.x,N+=w*j.y);k.x=C/S,k.y=N/S}else{j=k,j.x=j.data.x,j.y=j.data.y;do E+=c[j.data.index];while(j=j.next)}k.value=E}function _(k,E,j,w){if(!k.value)return!0;var S=k.x-t.x,C=k.y-t.y,N=w-E,R=S*S+C*C;if(N*N/m<R)return R<p&&(S===0&&(S=Rr(s),R+=S*S),C===0&&(C=Rr(s),R+=C*C),R<u&&(R=Math.sqrt(u*R)),t.vx+=S*k.value*o/R,t.vy+=C*k.value*o/R),!0;if(k.length||R>=p)return;(k.data!==t||k.next)&&(S===0&&(S=Rr(s),R+=S*S),C===0&&(C=Rr(s),R+=C*C),R<u&&(R=Math.sqrt(u*R)));do k.data!==t&&(N=c[k.data.index]*o/R,t.vx+=S*N,t.vy+=C*N);while(k=k.next)}return g.initialize=function(k,E){e=k,s=E,h()},g.strength=function(k){return arguments.length?(l=typeof k=="function"?k:go(+k),h(),g):l},g.distanceMin=function(k){return arguments.length?(u=k*k,g):Math.sqrt(u)},g.distanceMax=function(k){return arguments.length?(p=k*k,g):Math.sqrt(p)},g.theta=function(k){return arguments.length?(m=k*k,g):Math.sqrt(m)},g}const nc={agent:"#a78bfa",memory:"#38bdf8",thread:"#34d399",task:"#fbbf24",routine:"#f472b6",agentlink:"#c084fc"};function a8(){return{agent:f("agents_ui.kind_agent"),memory:f("agents_ui.kind_memory"),thread:f("agents_ui.kind_thread"),task:f("agents_ui.kind_task"),routine:f("agents_ui.kind_routine"),agentlink:f("agents_ui.kind_hierarchy")}}const ac=760,sc=460;function s8({center:e,nodes:t}){const s=x.useRef(null),o=x.useRef(null),l=x.useRef([]),c=x.useRef([]),u=x.useRef(null),[,p]=x.useState(0),[m,g]=x.useState(null);x.useEffect(()=>{const w={id:"__center",label:e,kind:"agent",relation:"self",x:ac/2,y:sc/2,fx:ac/2,fy:sc/2},S=[w,...t.map(R=>({...R}))],C=S.slice(1).map(R=>({source:w,target:R}));l.current=S,c.current=C;const N=t8(S).force("link",UI(C).distance(120).strength(.5)).force("charge",n8().strength(-220)).force("center",vI(ac/2,sc/2).strength(.05)).force("collide",II(26)).on("tick",()=>p(R=>R+1));return o.current=N,()=>{N.stop()}},[e,t]);const h=w=>{const S=s.current.getBoundingClientRect();return{x:(w.clientX-S.left)/S.width*ac,y:(w.clientY-S.top)/S.height*sc}},b=w=>S=>{w.id!=="__center"&&(u.current=w,S.target.setPointerCapture?.(S.pointerId),o.current?.alphaTarget(.3).restart())},_=w=>{const S=u.current;if(!S)return;const{x:C,y:N}=h(w);S.fx=C,S.fy=N},k=()=>{const w=u.current;w&&(w.fx=null,w.fy=null),u.current=null,o.current?.alphaTarget(0)},E=l.current,j=c.current;return r.jsxs("div",{className:"space-y-3",children:[r.jsx("div",{className:"overflow-hidden rounded-xl border border-border bg-muted/10",children:r.jsxs("svg",{ref:s,viewBox:`0 0 ${ac} ${sc}`,className:"h-[460px] w-full touch-none select-none",onPointerMove:_,onPointerUp:k,onPointerLeave:k,children:[j.map((w,S)=>r.jsx("line",{x1:w.source.x,y1:w.source.y,x2:w.target.x,y2:w.target.y,stroke:nc[w.target.kind],strokeOpacity:.22,strokeWidth:1.5},S)),E.map(w=>{if(w.id==="__center")return r.jsxs("g",{transform:`translate(${w.x},${w.y})`,children:[r.jsx("circle",{r:22,fill:nc.agent}),r.jsx("text",{textAnchor:"middle",y:4,fontSize:11,fontWeight:700,fill:"#1a1a1a",children:e.length>8?e.slice(0,8):e})]},w.id);const S=m?.id===w.id;return r.jsxs("g",{transform:`translate(${w.x},${w.y})`,className:"cursor-grab active:cursor-grabbing",onPointerDown:b(w),onClick:()=>g(w),children:[r.jsx("circle",{r:S?9:6,fill:nc[w.kind],fillOpacity:S?1:.9,stroke:S?"#fff":"none",strokeWidth:S?2:0}),r.jsx("text",{x:10,y:4,fontSize:10,className:"fill-foreground/80",children:w.label.length>22?`${w.label.slice(0,22)}…`:w.label})]},w.id)})]})}),r.jsxs("div",{className:"flex flex-wrap items-center gap-3 text-[11px] text-muted-fg",children:[(()=>{const w=a8();return Object.keys(w).filter(S=>S!=="agent").map(S=>r.jsxs("span",{className:"inline-flex items-center gap-1",children:[r.jsx("span",{className:"size-2 rounded-full",style:{background:nc[S]}})," ",w[S]]},S))})(),r.jsx("span",{className:"ml-auto",children:f("agents_ui.nodes_drag_hint",{n:String(t.length)})})]}),m&&r.jsxs("div",{className:"rounded-lg border border-border bg-card p-3 text-xs",children:[r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx("span",{className:"size-2 rounded-full",style:{background:nc[m.kind]}}),r.jsx("span",{className:"font-medium",children:m.label}),r.jsxs("span",{className:"text-muted-fg",children:["· ",m.relation]})]}),m.detail&&r.jsx("p",{className:"mt-1 whitespace-pre-wrap text-muted-fg",children:m.detail})]})]})}function r8(){return[{key:"overview",label:f("agents_ui.tab_explorer"),icon:kf},{key:"memories",label:f("project.nav.memories"),icon:Vd},{key:"records",label:f("project.agent_detail.records_title"),icon:Nk},{key:"sleep",label:f("project.agent_detail.sleep_title"),icon:Ml},{key:"brain",label:f("project.agent_detail.brain_title"),icon:fs},{key:"config",label:f("settings.tabs.advanced"),icon:Yd}]}function o8(){return[{value:"",label:f("agents_ui.type_none")},{value:"orchestrator",label:f("agents_ui.type_orchestrator"),description:f("agents_ui.type_orchestrator_desc")},{value:"specialist",label:f("agents_ui.type_specialist"),description:f("agents_ui.type_specialist_desc")},{value:"assistant",label:f("agents_ui.type_assistant"),description:f("agents_ui.type_assistant_desc")},{value:"worker",label:f("agents_ui.type_worker"),description:f("agents_ui.type_worker_desc")},{value:"monitor",label:f("agents_ui.type_monitor"),description:f("agents_ui.type_monitor_desc")}]}const bx=e=>e.split(",").map(t=>t.trim()).filter(Boolean),l8=(e,t)=>e.filter(s=>s.spec?.agent===t||t==="super-agent"&&s.kind==="super_agent");function i8(e){return e.split(`
|
|
633
|
+
`).map(t=>t.replace(/^[-*#>\s]+/,"").trim()).filter(t=>t.length>2&&!t.startsWith("```")).slice(0,12)}function c8({pid:e}){const{slug:t=""}=vk(),s=Qn(),[o,l]=x.useState("overview"),c=r8(),u=Qe(`/projects/${e}/agents/${t}`,()=>sn.get(e,t)),p=Qe(`/projects/${e}/agents`,()=>sn.list(e)),m=Qe(`/projects/${e}/routines`,()=>Sr.list(e)),g=Qe(`/projects/${e}/messages?agent=${t}`,()=>uf.project(e,{agent:t,limit:200})),h=Qe(`/projects/${e}/agents/${t}/conversations`,()=>Ub.list(e,t)),b=Qe(`/projects/${e}/tasks?all`,()=>Cr.list(e,"all")),_=u.data,k=l8(m.data||[],t),E=(b.data||[]).filter(S=>S.agent===t),j=(p.data||[]).filter(S=>S.parent===t);if(u.isLoading)return r.jsx(ot,{});if(!_)return r.jsx("div",{className:"text-sm text-muted-fg",children:f("project.agent_detail.not_found")});const w=_.is_master?Fs:hn;return r.jsxs("div",{className:"space-y-4",children:[r.jsxs("div",{className:"flex items-start justify-between gap-3",children:[r.jsxs("div",{className:"flex items-start gap-3",children:[r.jsx("button",{onClick:()=>s(`/p/${e}/agents`),className:"mt-1 text-muted-fg hover:text-foreground",children:r.jsx($A,{size:16})}),r.jsx("div",{className:De("flex size-11 items-center justify-center rounded-xl bg-gradient-to-br",_.is_master?"from-violet-600 to-indigo-600":"from-slate-600 to-gray-600"),children:r.jsx(w,{className:"size-5 text-white"})}),r.jsxs("div",{children:[r.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[r.jsx("h1",{className:"text-lg font-semibold",children:_.slug}),_.is_master&&r.jsxs(Fe,{tone:"success",children:[r.jsx(Fs,{size:10})," ",f("project.agents.orchestrator")]}),_.role&&r.jsx(Fe,{children:_.role}),_.model&&r.jsx(Fe,{tone:"info",children:_.model}),_.parent&&r.jsxs("button",{onClick:()=>s(`/p/${e}/agents/${_.parent}`),className:"text-[11px] text-violet-400 hover:underline",children:[f("project.agent_detail.reports_to")," ",_.parent]})]}),_.description&&r.jsx("p",{className:"mt-0.5 max-w-2xl text-xs text-muted-fg",children:_.description})]})]}),r.jsxs(me,{size:"sm",variant:"primary",onClick:()=>s(`/p/${e}/chat?agent=${t}`),children:[r.jsx(Fa,{size:13})," ",f("project.agent_detail.chat_btn",{slug:_.slug})]})]}),r.jsx("div",{className:"flex flex-wrap gap-1 border-b border-border",children:c.map(({key:S,label:C,icon:N})=>r.jsxs("button",{onClick:()=>l(S),className:De("flex items-center gap-1.5 border-b-2 px-3 py-2 text-sm transition-colors -mb-px",o===S?"border-foreground text-foreground":"border-transparent text-muted-fg hover:text-foreground"),children:[r.jsx(N,{size:14})," ",C]},S))}),o==="overview"&&r.jsxs("div",{className:"space-y-4",children:[r.jsxs("div",{className:"grid grid-cols-2 gap-3 sm:grid-cols-4",children:[r.jsx(Cd,{label:f("agents_ui.stat_threads"),value:h.data?.length??0,icon:Fd}),r.jsx(Cd,{label:f("agents_ui.stat_records"),value:g.data?.length??0,icon:Nk}),r.jsx(Cd,{label:f("agents_ui.stat_tasks"),value:E.length,icon:kf}),r.jsx(Cd,{label:f("agents_ui.stat_heartbeats"),value:k.length,icon:Ml})]}),r.jsxs("div",{className:"grid gap-3 sm:grid-cols-2",children:[r.jsx(Ye,{title:f("agent_detail_extra.skills_title"),description:"",children:r.jsxs("div",{className:"flex flex-wrap gap-1",children:[_.skills?.map(S=>r.jsxs(Fe,{tone:"info",children:[r.jsx(fs,{size:10})," ",S]},S)),_.tools?.map(S=>r.jsxs(Fe,{children:[r.jsx(Kl,{size:10})," ",S]},S)),!_.skills?.length&&!_.tools?.length&&r.jsx("span",{className:"text-xs text-muted-fg",children:"—"})]})}),r.jsx(Ye,{title:f("project.agent_detail.threads_recent"),description:"",children:r.jsxs("ul",{className:"space-y-1 text-xs",children:[(h.data||[]).slice(0,6).map(S=>r.jsxs("li",{className:"flex items-center justify-between rounded-md bg-muted/30 px-2 py-1",children:[r.jsx("span",{className:"truncate",children:S.title||S.filename}),r.jsxs("span",{className:"shrink-0 text-muted-fg",children:[S.messages??0," ",f("project.agent_detail.msgs_count")]})]},S.id)),!h.data?.length&&r.jsx("li",{className:"text-muted-fg",children:f("project.agent_detail.no_threads")})]})})]}),j.length>0&&r.jsx(Ye,{title:f("project.agent_detail.subagents"),description:f("project.agent_detail.subagents_desc"),children:r.jsx("div",{className:"flex flex-wrap gap-2",children:j.map(S=>r.jsxs("button",{onClick:()=>s(`/p/${e}/agents/${S.slug}`),className:"flex items-center gap-2 rounded-lg border border-border bg-muted/30 px-3 py-1.5 text-sm hover:border-muted-fg/50",children:[r.jsx(hn,{size:14,className:"text-muted-fg"})," ",S.slug]},S.slug))})})]}),o==="memories"&&r.jsx(d8,{pid:e,slug:t,initial:_.memory||"",onSaved:()=>u.mutate()}),o==="records"&&r.jsx(f8,{records:g.data||[],loading:g.isLoading}),o==="sleep"&&r.jsx(p8,{routines:k}),o==="brain"&&r.jsx(g8,{slug:t,memory:_.memory||"",threads:(h.data||[]).map(S=>({id:S.id,label:S.title||S.filename})),tasks:E.map(S=>({id:S.id,label:S.title,detail:S.body||void 0})),routines:k,parent:_.parent||null,children:j.map(S=>S.slug)}),o==="config"&&r.jsx(u8,{pid:e,agent:_,agents:p.data||[],onSaved:()=>{u.mutate(),p.mutate()},onDeleted:()=>{p.mutate(),s(`/p/${e}/agents`)}})]})}function u8({pid:e,agent:t,agents:s,onSaved:o,onDeleted:l}){const c=lt(),[u,p]=x.useState(t.type||""),[m,g]=x.useState(t.area||""),[h,b]=x.useState(t.role||""),[_,k]=x.useState(t.model||""),[E,j]=x.useState(t.parent||""),[w,S]=x.useState(!!t.is_master),[C,N]=x.useState((t.skills||[]).join(", ")),[R,A]=x.useState((t.tools||[]).join(", ")),[T,M]=x.useState(t.description||""),[z,P]=x.useState(t.system||""),[D,I]=x.useState(!1),B=async()=>{I(!0);try{await sn.update(e,t.slug,{type:u||null,area:m||null,role:h||null,model:_||null,parent:E||null,is_master:w||u==="orchestrator",skills:bx(C),tools:bx(R),description:T||null,system:z}),c.success(f("project.agent_detail.update_success")),o()}catch(H){c.error(H.message)}finally{I(!1)}},V=async()=>{if(confirm(f("project.agent_detail.delete_confirm",{slug:t.slug})))try{await sn.remove(e,t.slug),c.success(f("project.agent_detail.delete_success")),l()}catch(H){c.error(H.message)}};return r.jsx(Ye,{title:f("project.agent_detail.config_title"),description:`.apc/agents/${t.slug}.md — ${f("agents_ui.config_def_desc")}`,children:r.jsxs("div",{className:"space-y-3",children:[r.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[r.jsx(pe,{label:f("project.agent_detail.type_label"),children:r.jsx(St,{value:u,onChange:p,options:o8()})}),r.jsx(pe,{label:f("project.agent_detail.area_label"),hint:f("project.agent_detail.area_hint"),children:r.jsx(Oe,{value:m,onChange:H=>g(H.target.value),placeholder:f("project.agent_detail.area_ph")})})]}),r.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[r.jsx(pe,{label:f("project.agent_detail.role_label"),children:r.jsx(Oe,{value:h,onChange:H=>b(H.target.value),placeholder:"Operations Lead"})}),r.jsx(pe,{label:f("project.agent_detail.parent_label"),children:r.jsx(St,{value:E,onChange:j,placeholder:f("project.agent_detail.none_parent"),options:[{value:"",label:f("project.agent_detail.none_parent")},...s.filter(H=>H.slug!==t.slug).map(H=>({value:H.slug,label:H.slug}))]})})]}),r.jsx(pe,{label:f("project.agent_detail.model_label"),hint:f("project.agent_detail.model_hint"),children:r.jsx(Oe,{value:_,onChange:H=>k(H.target.value),placeholder:f("project.agent_detail.model_ph")})}),r.jsx(pe,{label:f("project.agent_detail.skills_label"),children:r.jsx(Oe,{value:C,onChange:H=>N(H.target.value),placeholder:"skill-a, skill-b"})}),r.jsx(m8,{value:R,onChange:A}),r.jsx(pe,{label:f("project.agent_detail.bio_label"),children:r.jsx(Un,{rows:2,value:T,onChange:H=>M(H.target.value)})}),r.jsx(pe,{label:f("project.agent_detail.system_label"),hint:f("project.agent_detail.system_hint"),children:r.jsx(Un,{rows:10,className:"font-mono text-xs",value:z,onChange:H=>P(H.target.value),placeholder:"You are…"})}),r.jsx(Qt,{checked:w,onChange:S,label:f("project.agent_detail.master_label")}),r.jsxs("div",{className:"flex items-center justify-between border-t border-border pt-3",children:[r.jsxs(me,{variant:"destructive",onClick:V,children:[r.jsx(ia,{size:13})," ",f("project.agent_detail.delete_btn")]}),r.jsxs(me,{variant:"primary",loading:D,onClick:B,children:[r.jsx(Cf,{size:13})," ",f("project.agent_detail.save_btn")]})]})]})})}function Cd({label:e,value:t,icon:s}){return r.jsxs("div",{className:"rounded-xl border border-border bg-muted/30 p-3",children:[r.jsxs("div",{className:"flex items-center gap-2 text-xs text-muted-fg",children:[r.jsx(s,{size:13})," ",e]}),r.jsx("div",{className:"mt-1 text-2xl font-semibold",children:t})]})}function d8({pid:e,slug:t,initial:s,onSaved:o}){const l=lt(),[c,u]=x.useState(s),[p,m]=x.useState(!1);x.useEffect(()=>{u(s)},[s]);const g=c!==s,h=async()=>{m(!0);try{await sn.memory.put(e,t,c),l.success(f("project.agent_detail.memory_saved")),o()}catch(b){l.error(b.message)}finally{m(!1)}};return r.jsxs(Ye,{title:f("project.agent_detail.memory_title"),description:`~/.apx/projects/<id>/agents/${t}/memory.md — ${f("agents_ui.memory_durable_desc")}`,children:[r.jsx(Un,{rows:16,className:"font-mono text-xs",value:c,onChange:b=>u(b.target.value),placeholder:f("project.agent_detail.memory_empty")}),r.jsxs("div",{className:"mt-2 flex items-center justify-between",children:[r.jsxs("span",{className:"text-[11px] text-muted-fg",children:[c.length," ",f("project.memories.chars")]}),r.jsxs(me,{size:"sm",variant:"primary",loading:p,disabled:!g,onClick:h,children:[r.jsx(Cf,{size:12})," ",f("project.memories.save_btn")]})]})]})}function f8({records:e,loading:t}){const s=x.useMemo(()=>[...e].sort((o,l)=>(l.ts||"").localeCompare(o.ts||"")),[e]);return r.jsxs(Ye,{title:f("project.agent_detail.records_title"),description:f("project.agent_detail.records_desc"),children:[t&&r.jsx(ot,{}),!t&&s.length===0&&r.jsx("p",{className:"text-xs text-muted-fg",children:f("project.agent_detail.no_activity")}),r.jsx("ul",{className:"space-y-1 text-sm",children:s.map((o,l)=>r.jsxs("li",{className:"flex items-start gap-2 rounded-md border border-border bg-muted/30 px-3 py-2",children:[r.jsx("span",{className:"mt-0.5 shrink-0",children:o.direction==="in"?r.jsx(Rk,{size:13,className:"text-blue-400"}):r.jsx(Ak,{size:13,className:"text-emerald-400"})}),r.jsxs("div",{className:"min-w-0 flex-1",children:[r.jsxs("div",{className:"flex flex-wrap items-center gap-2 text-[11px] text-muted-fg",children:[r.jsx("span",{className:"font-mono",children:new Date(o.ts).toLocaleString()}),r.jsx(Fe,{tone:"info",children:o.channel}),o.type&&r.jsx(Fe,{children:o.type})]}),o.body&&r.jsx("p",{className:"mt-1 whitespace-pre-wrap break-words text-xs",children:o.body.length>400?`${o.body.slice(0,400)}…`:o.body})]})]},`${o.ts}-${l}`))})]})}function p8({routines:e}){return e.length===0?r.jsx(Ye,{title:f("project.agent_detail.sleep_title"),description:f("project.agent_detail.sleep_desc"),children:r.jsxs("div",{className:"rounded-lg border border-amber-500/30 bg-amber-500/5 p-4 text-sm",children:[r.jsx("div",{className:"font-medium text-amber-400",children:f("project.agent_detail.sleep_deep")}),r.jsx("p",{className:"mt-1 text-xs text-muted-fg",children:f("project.agent_detail.sleep_deep_desc")})]})}):r.jsx(Ye,{title:f("project.agent_detail.sleep_title"),description:f("project.agent_detail.sleep_desc"),children:r.jsx("div",{className:"space-y-3",children:e.map(t=>{const s=t.enabled,o=t.last_status==="error";return r.jsxs("div",{className:"rounded-xl border border-border bg-muted/30 p-3",children:[r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx("span",{className:De("size-2 rounded-full",o?"bg-destructive":s?"bg-emerald-400":"bg-muted-fg/40")}),r.jsx("span",{className:"text-sm font-medium",children:t.name}),r.jsx(Fe,{tone:s?"success":"muted",children:f(s?"agents_ui.running":"agents_ui.paused")}),o&&r.jsx(Fe,{tone:"danger",children:f("agents_ui.last_error")})]}),r.jsxs("div",{className:"mt-2 grid grid-cols-2 gap-2 text-xs sm:grid-cols-4",children:[r.jsx(Ed,{label:f("agents_ui.field_tick"),value:t.schedule}),r.jsx(Ed,{label:f("agents_ui.field_next_tick"),value:t.next_run_at?new Date(t.next_run_at).toLocaleString():"—"}),r.jsx(Ed,{label:f("agents_ui.field_last_tick"),value:t.last_run_at?new Date(t.last_run_at).toLocaleString():"—"}),r.jsx(Ed,{label:f("agents_ui.field_last_run"),value:t.last_status||"—"})]}),t.last_error&&r.jsx("p",{className:"mt-2 rounded-md bg-destructive/10 px-2 py-1 text-[11px] text-destructive",children:t.last_error})]},t.name)})})})}function Ed({label:e,value:t}){return r.jsxs("div",{className:"rounded-md border border-border bg-card p-2",children:[r.jsx("div",{className:"text-[10px] uppercase tracking-wide text-muted-fg",children:e}),r.jsx("div",{className:"mt-0.5 truncate font-mono text-[11px]",children:t})]})}function m8({value:e,onChange:t}){const s=Qe("/tools",()=>ED.list()),o=bx(e),l=s.data||[],c=p=>{const m=new Set(o);m.has(p)?m.delete(p):m.add(p),t([...m].join(", "))},u=o.filter(p=>!l.some(m=>m.name===p));return r.jsxs(pe,{label:f("agents_ui.tools_label"),hint:f("project.agent_detail.tools_hint"),children:[r.jsxs("div",{className:"flex flex-wrap gap-1.5",children:[l.map(p=>{const m=o.includes(p.name);return r.jsx(et,{content:p.description||p.name,children:r.jsx("button",{type:"button",onClick:()=>c(p.name),className:De("rounded-md border px-2 py-0.5 font-mono text-[11px] transition-colors",m?"border-emerald-500/50 bg-emerald-500/10 text-emerald-400":"border-border text-muted-fg hover:text-foreground"),children:p.name})},p.name)}),u.map(p=>r.jsxs("button",{type:"button",onClick:()=>c(p),className:"rounded-md border border-sky-500/50 bg-sky-500/10 px-2 py-0.5 font-mono text-[11px] text-sky-400",children:[p," ✕"]},p))]}),r.jsx(Oe,{className:"mt-2",value:e,onChange:p=>t(p.target.value),placeholder:f("project.agent_detail.tools_custom_ph")})]})}function g8({slug:e,memory:t,threads:s,tasks:o,routines:l,parent:c,children:u}){const p=x.useMemo(()=>{const m=[];return i8(t).forEach((g,h)=>m.push({id:`m${h}`,label:g,kind:"memory",relation:"knows",detail:g})),s.slice(0,8).forEach(g=>m.push({id:`th-${g.id}`,label:g.label,kind:"thread",relation:"in_thread"})),o.slice(0,8).forEach(g=>m.push({id:`ts-${g.id}`,label:g.label,kind:"task",relation:"handles_task",detail:g.detail})),l.forEach(g=>m.push({id:`rt-${g.name}`,label:g.name,kind:"routine",relation:"ticks",detail:`schedule: ${g.schedule}`})),c&&m.push({id:`p-${c}`,label:c,kind:"agentlink",relation:"reports_to"}),u.forEach(g=>m.push({id:`c-${g}`,label:g,kind:"agentlink",relation:"orchestrates"})),m},[t,s,o,l,c,u]);return r.jsx(Ye,{title:f("project.agent_detail.brain_title"),description:f("project.agent_detail.brain_desc"),children:p.length===0?r.jsx("p",{className:"text-xs text-muted-fg",children:f("project.agent_detail.brain_empty")}):r.jsx(s8,{center:e,nodes:p})})}function h8(){const e=Qn(),t=Kn(),{pid:s=""}=vk(),{project:o}=Hb(s),{collapsed:l,toggle:c}=Lb(Rn.sidebarCollapsed+".project"),u=String(s)==="0",p=x.useMemo(()=>u?[{title:f("base.nav_general"),items:[{key:"",label:"Dashboard",icon:jM},{key:"workspaces",label:f("base.workspaces_title"),icon:XA},{key:"models",label:f("settings.tabs.engines"),icon:Ox},{key:"agent-defaults",label:f("base.defaults_title"),icon:hn}]},{title:f("base.nav_activity"),items:[{key:"chat",label:f("project.nav.chat"),icon:Fd},{key:"sessions",label:f("base.sessions_title"),icon:bM},{key:"tasks",label:f("project.nav.tasks"),icon:Ol},{key:"logs",label:f("project.nav.logs"),icon:Gd}]},{title:f("base.nav_system"),items:[{key:"agents",label:f("project.nav.agents"),icon:hn},{key:"memories",label:f("project.nav.memories"),icon:Vd},{key:"routines",label:f("project.nav.routines"),icon:Ml},{key:"mcps",label:f("project.nav.mcps"),icon:Lh},{key:"vars",label:f("project.nav.vars"),icon:Dh},{key:"config",label:f("project.nav.config"),icon:Yd}]}]:[{title:f("project.sections.workspace"),items:[{key:"",label:f("project.nav.overview"),icon:Dk},{key:"telegram",label:f("project.nav.telegram"),icon:Fa},{key:"chat",label:f("project.nav.chat"),icon:Fd},{key:"agents",label:f("project.nav.agents"),icon:hn},{key:"memories",label:f("project.nav.memories"),icon:Vd}]},{title:f("project.sections.automation"),items:[{key:"routines",label:f("project.nav.routines"),icon:Ml},{key:"tasks",label:f("project.nav.tasks"),icon:Ol},{key:"mcps",label:f("project.nav.mcps"),icon:Lh},{key:"vars",label:f("project.nav.vars"),icon:Dh},{key:"logs",label:f("project.nav.logs"),icon:Gd}]},{title:f("project.sections.config"),items:[{key:"config",label:f("project.nav.config"),icon:Yd}]}],[u]),m=t.pathname.replace(`/p/${s}`,"").replace(/^\//,"").split("/")[0];if(!o)return r.jsx(LC,{testId:"screen-project-not-found",mood:"confused",message:f("project.not_found",{pid:s}),action:r.jsx(Ks,{variant:"outline",onClick:()=>e("/"),children:f("not_found.home")})});const g=h=>{const b=h?`/p/${s}/${h}`:`/p/${s}`;e(b)};return r.jsx(zC,{sections:p,active:m,onChange:g,collapsed:l,onToggleCollapse:c,contentClassName:"w-full space-y-6 p-6 pt-3",testId:`project-tab-${m||"overview"}`,children:r.jsxs(wk,{children:[r.jsx(qt,{index:!0,element:r.jsx(Ij,{pid:s})}),r.jsx(qt,{path:"workspaces",element:r.jsx(LL,{})}),r.jsx(qt,{path:"models",element:r.jsx(QC,{})}),r.jsx(qt,{path:"agent-defaults",element:r.jsx(PP,{})}),r.jsx(qt,{path:"sessions",element:r.jsx(HP,{})}),r.jsx(qt,{path:"logs",element:r.jsx(CP,{pid:s})}),r.jsx(qt,{path:"config",element:r.jsx(o6,{pid:s})}),r.jsx(qt,{path:"telegram",element:r.jsx(hI,{pid:s})}),r.jsx(qt,{path:"agents",element:r.jsx(d6,{pid:s})}),r.jsx(qt,{path:"agents/:slug",element:r.jsx(c8,{pid:s})}),r.jsx(qt,{path:"memories",element:r.jsx(bI,{pid:s})}),r.jsx(qt,{path:"routines",element:r.jsx(S6,{pid:s})}),r.jsx(qt,{path:"tasks",element:u?r.jsx(VP,{}):r.jsx(C6,{pid:s})}),r.jsx(qt,{path:"mcps",element:r.jsx(P6,{pid:s})}),r.jsx(qt,{path:"vars",element:r.jsx(q6,{pid:s})}),r.jsx(qt,{path:"threads",element:r.jsx(oA,{to:`/p/${s}/chat`,replace:!0})}),r.jsx(qt,{path:"chat",element:r.jsx(mI,{pid:s})}),r.jsx(qt,{path:"*",element:r.jsx(Ij,{pid:s})})]})})}const x8=["es","en","pt","fr","it","de"];function b8(){const e=lt(),{identity:t,isLoading:s,save:o}=Vb(),[l,c]=x.useState({}),[u,p]=x.useState(!1);if(x.useEffect(()=>{c(t)},[t]),s)return r.jsx(ot,{});const m=async()=>{p(!0);try{await o({owner_name:l.owner_name,owner_context:l.owner_context,language:l.language,timezone:l.timezone}),e.success(f("settings.identity.saved"))}catch(g){e.error(g.message)}finally{p(!1)}};return r.jsxs(Ye,{title:f("settings.identity.title"),description:f("settings.identity.subtitle"),children:[t?null:r.jsx(xt,{children:f("common.none_yet")}),r.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[r.jsx(pe,{label:f("settings.identity.owner_name"),children:r.jsx(Oe,{value:l.owner_name||"",onChange:g=>c({...l,owner_name:g.target.value})})}),r.jsx(pe,{label:f("settings.identity.language"),children:r.jsx(St,{value:l.language||"es",onChange:g=>c({...l,language:g}),options:x8.map(g=>({value:g,label:g}))})}),r.jsx(pe,{label:f("settings.identity.timezone"),hint:f("settings.identity.timezone_hint"),children:r.jsx(Oe,{value:l.timezone||"",onChange:g=>c({...l,timezone:g.target.value})})})]}),r.jsx("div",{className:"mt-3",children:r.jsx(pe,{label:f("settings.identity.owner_context"),hint:f("settings.identity.owner_context_hint"),children:r.jsx(Un,{rows:3,value:l.owner_context||"",onChange:g=>c({...l,owner_context:g.target.value})})})}),r.jsx("div",{className:"mt-4",children:r.jsx(me,{variant:"primary",loading:u,onClick:m,children:f("common.save")})})]})}function v8(){const e=lt(),t=Qn(),{superAgent:s,isLoading:o,mutate:l}=XC(),{patch:c}=Vr(),{identity:u,save:p}=Vb(),[m,g]=x.useState(!0),[h,b]=x.useState(""),[_,k]=x.useState(""),[E,j]=x.useState("permiso"),[w,S]=x.useState(!1);if(x.useEffect(()=>{s&&(g(!!s.enabled),b(s.system||""),j(s.permission_mode||"permiso"))},[s]),x.useEffect(()=>{k(u.personality||"")},[u.personality]),o||!s)return r.jsx(ot,{});const C=async()=>{S(!0);try{await c({"super_agent.enabled":m,"super_agent.system":h,"super_agent.permission_mode":E},["super_agent.name"]),await p({personality:_}),e.success(f("settings.super_agent.saved")),l()}catch(N){e.error(N.message)}finally{S(!1)}};return r.jsx(Ye,{title:f("settings.super_agent.title"),description:f("settings.super_agent.behavior_subtitle"),children:r.jsxs("div",{className:"space-y-4",children:[r.jsx("div",{className:"flex items-center gap-3",children:r.jsx(Qt,{checked:m,onChange:g,label:f("settings.super_agent.enabled_label")})}),r.jsxs("div",{className:"flex items-center justify-between rounded-lg border border-border bg-muted/20 p-3",children:[r.jsxs("div",{className:"min-w-0",children:[r.jsx("div",{className:"text-sm font-medium",children:f("settings.super_agent.model_active")}),r.jsx("div",{className:"truncate font-mono text-xs text-muted-fg",children:s.model||"—"})]}),r.jsxs(me,{size:"sm",variant:"secondary",onClick:()=>t("/p/0/models"),children:[r.jsx(Ox,{size:13})," ",f("settings.super_agent.model_configure")]})]}),r.jsx(pe,{label:f("settings.super_agent.permission_mode"),children:r.jsx(St,{value:E,onChange:j,options:Ux.map(N=>({value:N,label:N}))})}),r.jsx(pe,{label:f("settings.super_agent.personality"),children:r.jsx(Un,{rows:2,value:_,onChange:N=>k(N.target.value)})}),r.jsx(pe,{label:f("settings.super_agent.system"),hint:f("settings.super_agent.system_hint"),children:r.jsx(Un,{rows:6,className:"font-mono text-xs",value:h,onChange:N=>b(N.target.value),placeholder:f("settings.super_agent.system_ph")})}),r.jsx(me,{variant:"primary",loading:w,onClick:C,children:f("common.save")})]})})}const ah={providers:()=>he.get("/embeddings/providers"),test:(e={})=>he.post("/embeddings/test",e),reindex:()=>he.post("/embeddings/reindex",{})},_8=()=>[{value:"auto",label:f("memory_panel.provider_auto")},{value:"ollama",label:f("memory_panel.provider_ollama")},{value:"gemini",label:f("memory_panel.provider_gemini")},{value:"openai",label:f("memory_panel.provider_openai")},{value:"tf",label:f("memory_panel.provider_tf")}],y8=()=>[{value:"chain",label:f("memory_panel.mode_chain")},{value:"single",label:f("memory_panel.mode_single")}],lw=e=>e.startsWith("***");function j8(){const e=lt(),{config:t,isLoading:s,patch:o}=Vr(),{data:l,mutate:c}=Qe("/embeddings/providers",()=>ah.providers()),[u,p]=x.useState(!1),[m,g]=x.useState(null);if(s)return r.jsx(ot,{});const h=t.memory||{},b=h.embeddings||{},_=l?.configured_provider||b.provider||"auto",k=l?.mode||b.mode||"chain",E=l?.engines||[],j=async C=>{p(!0);try{await o(C),await c()}catch(N){e.error(f("memory_panel.save_failed",{msg:N.message}))}finally{p(!1)}},w=async()=>{p(!0),g(null);try{const C=await ah.test({});g(`${C.embedder} · dim ${C.dim} · ${C.ms}ms`),e.success(f("memory_panel.test_ok",{embedder:C.embedder}))}catch(C){e.error(f("memory_panel.test_failed",{msg:C.message}))}finally{p(!1)}},S=async()=>{p(!0);try{const C=await ah.reindex();e.success(f("memory_panel.reindexed",{indexed:C.indexed,cleared:C.cleared}))}catch(C){e.error(f("memory_panel.reindex_failed",{msg:C.message}))}finally{p(!1)}};return r.jsxs("div",{className:"grid gap-6 xl:grid-cols-2 xl:items-start",children:[r.jsx(Ye,{title:f("memory_panel.embeddings_title"),description:f("memory_panel.embeddings_desc"),children:r.jsxs("div",{className:"space-y-3",children:[r.jsx(pe,{label:f("memory_panel.provider_label"),hint:f("memory_panel.provider_hint"),children:r.jsx(St,{value:_,onChange:C=>j({"memory.embeddings.provider":C}),options:_8(),disabled:u,className:"max-w-xl"})}),r.jsx(pe,{label:f("memory_panel.mode_label"),hint:f("memory_panel.mode_hint"),children:r.jsx(St,{value:k,onChange:C=>j({"memory.embeddings.mode":C}),options:y8(),disabled:u,className:"max-w-md"})}),r.jsx("div",{className:"flex flex-wrap items-center gap-2 pt-1",children:E.map(C=>r.jsxs(Fe,{tone:C.available?"success":"muted",children:[C.id,": ",C.available?f("memory_panel.available"):f("memory_panel.unavailable")]},C.id))}),r.jsxs("div",{className:"flex flex-wrap items-center gap-3 pt-1",children:[r.jsxs(me,{variant:"secondary",onClick:w,loading:u,children:[r.jsx(fs,{size:14})," ",f("memory_panel.test_btn")]}),r.jsxs(me,{variant:"secondary",onClick:S,loading:u,children:[r.jsx(Ok,{size:14})," ",f("memory_panel.reindex_btn")]}),m&&r.jsx("span",{className:"text-sm text-muted-foreground",children:m})]})]})}),r.jsxs(Ye,{title:f("memory_panel.ollama_title"),description:f("memory_panel.ollama_desc"),children:[r.jsx(pe,{label:f("memory_panel.model_label"),children:r.jsx(Oe,{defaultValue:b.ollama?.model||"nomic-embed-text",placeholder:"nomic-embed-text",disabled:u,onBlur:C=>{const N=C.target.value.trim();N&&N!==b.ollama?.model&&j({"memory.embeddings.ollama.model":N})},className:"max-w-md"})}),r.jsx(pe,{label:f("memory_panel.base_url_label"),hint:f("memory_panel.ollama_base_url_hint"),children:r.jsx(Oe,{defaultValue:b.ollama?.base_url||"",placeholder:"http://localhost:11434",disabled:u,onBlur:C=>j({"memory.embeddings.ollama.base_url":C.target.value.trim()}),className:"max-w-md"})})]}),r.jsxs(Ye,{title:f("memory_panel.openai_title"),description:f("memory_panel.openai_desc"),children:[r.jsx(pe,{label:f("memory_panel.model_label"),children:r.jsx(Oe,{defaultValue:b.openai?.model||"text-embedding-3-small",placeholder:"text-embedding-3-small",disabled:u,onBlur:C=>{const N=C.target.value.trim();N&&N!==b.openai?.model&&j({"memory.embeddings.openai.model":N})},className:"max-w-md"})}),r.jsx(pe,{label:f("memory_panel.api_key_label"),hint:f("memory_panel.openai_key_hint"),children:r.jsx(Oe,{type:"password",defaultValue:b.openai?.api_key||"",placeholder:"sk-…",disabled:u,onBlur:C=>{const N=C.target.value;N&&!lw(N)&&j({"memory.embeddings.openai.api_key":N})},className:"max-w-md"})})]}),r.jsxs(Ye,{title:f("memory_panel.gemini_title"),description:f("memory_panel.gemini_desc"),children:[r.jsx(pe,{label:f("memory_panel.model_label"),children:r.jsx(Oe,{defaultValue:b.gemini?.model||"text-embedding-004",placeholder:"text-embedding-004",disabled:u,onBlur:C=>{const N=C.target.value.trim();N&&N!==b.gemini?.model&&j({"memory.embeddings.gemini.model":N})},className:"max-w-md"})}),r.jsx(pe,{label:f("memory_panel.api_key_label"),hint:f("memory_panel.gemini_key_hint"),children:r.jsx(Oe,{type:"password",defaultValue:b.gemini?.api_key||"",placeholder:"AIza…",disabled:u,onBlur:C=>{const N=C.target.value;N&&!lw(N)&&j({"memory.embeddings.gemini.api_key":N})},className:"max-w-md"})})]}),r.jsxs(Ye,{title:f("memory_panel.compaction_title"),description:f("memory_panel.compaction_desc"),children:[r.jsxs("div",{className:"grid gap-3 sm:grid-cols-2",children:[r.jsx(pe,{label:f("memory_panel.threshold_label"),hint:f("memory_panel.threshold_hint"),children:r.jsx(Oe,{type:"number",min:1,defaultValue:h.compact_threshold??60,placeholder:"60",disabled:u,onBlur:C=>{const N=parseInt(C.target.value,10);Number.isFinite(N)&&N>0&&N!==h.compact_threshold&&j({"memory.compact_threshold":N})},className:"max-w-[10rem]"})}),r.jsx(pe,{label:f("memory_panel.keep_recent_label"),hint:f("memory_panel.keep_recent_hint"),children:r.jsx(Oe,{type:"number",min:1,defaultValue:h.keep_recent??40,placeholder:"40",disabled:u,onBlur:C=>{const N=parseInt(C.target.value,10);Number.isFinite(N)&&N>0&&N!==h.keep_recent&&j({"memory.keep_recent":N})},className:"max-w-[10rem]"})})]}),r.jsx(pe,{label:f("memory_panel.compact_model_label"),hint:f("memory_panel.compact_model_hint"),children:r.jsx(Oe,{defaultValue:h.compact_model||"ollama:gemma4:31b-cloud",placeholder:"ollama:gemma4:31b-cloud",disabled:u,onBlur:C=>{const N=C.target.value.trim();N&&N!==h.compact_model&&j({"memory.compact_model":N})},className:"max-w-md"})}),r.jsx(pe,{label:f("memory_panel.compact_fallback_label"),hint:f("memory_panel.compact_fallback_hint"),children:r.jsx(Oe,{defaultValue:h.compact_fallback_model||"",placeholder:f("memory_panel.compact_fallback_ph"),disabled:u,onBlur:C=>{const N=C.target.value.trim();N!==(h.compact_fallback_model||"")&&j({"memory.compact_fallback_model":N})},className:"max-w-md"})})]})]})}function w8(){return[{key:"load_threshold",label:f("settings_ui.knob_load_threshold"),hint:f("settings_ui.knob_load_threshold_hint"),step:.01,min:0,max:1},{key:"hint_threshold",label:f("settings_ui.knob_hint_threshold"),hint:f("settings_ui.knob_hint_threshold_hint"),step:.01,min:0,max:1},{key:"margin",label:f("settings_ui.knob_margin"),hint:f("settings_ui.knob_margin_hint"),step:.01,min:0,max:1},{key:"max_loaded",label:f("settings_ui.knob_max_loaded"),hint:f("settings_ui.knob_max_loaded_hint"),step:1,min:0,max:5},{key:"max_hints",label:f("settings_ui.knob_max_hints"),hint:f("settings_ui.knob_max_hints_hint"),step:1,min:0,max:8},{key:"prompt_floor",label:f("settings_ui.knob_prompt_floor"),hint:f("settings_ui.knob_prompt_floor_hint"),step:1,min:0,max:40},{key:"body_char_cap",label:f("settings_ui.knob_body_char_cap"),hint:f("settings_ui.knob_body_char_cap_hint"),step:500,min:500,max:2e4}]}function k8(){const e=lt(),{data:t,mutate:s,isLoading:o}=Qe("/skills/inspector",()=>cc.inspector()),[l,c]=x.useState(!1),[u,p]=x.useState(""),[m,g]=x.useState(null);if(o||!t)return r.jsx(ot,{});const h=t.config,b=t.index,_=async j=>{c(!0);try{await cc.updateInspector(j),await s()}catch(w){e.error(f("settings_ui.could_not_save",{msg:w.message}))}finally{c(!1)}},k=async(j=!1)=>{c(!0);try{const w=await cc.index({force:j});e.success(f("settings_ui.indexed_with",{embedder:w.embedder,dim:w.dim,added:w.changed.added,refreshed:w.changed.refreshed,removed:w.changed.removed})),await s()}catch(w){e.error(f("settings_ui.index_failed",{msg:w.message}))}finally{c(!1)}},E=async()=>{if(u.trim()){c(!0),g(null);try{const j=await cc.inspect(u.trim());g(j.trace)}catch(j){e.error(f("settings_ui.dry_run_failed",{msg:j.message}))}finally{c(!1)}}};return r.jsxs("div",{className:"grid gap-6 xl:grid-cols-2 xl:items-start",children:[r.jsx(Ye,{title:f("settings_ui.inspector_title"),description:f("settings_ui.inspector_desc"),children:r.jsxs("div",{className:"space-y-4",children:[r.jsx(pe,{label:f("settings_ui.enable_inspector"),hint:f("settings_ui.enable_inspector_hint"),children:r.jsx(Qt,{checked:h.enabled,disabled:l,onChange:j=>_({enabled:j}),label:h.enabled?f("settings_ui.on"):f("settings_ui.off")})}),r.jsxs("div",{className:"flex flex-wrap items-center gap-2 pt-1",children:[r.jsx(Fe,{tone:b.count>0?"success":"warning",children:f("settings_ui.index_count",{n:b.count})}),r.jsx(Fe,{tone:"muted",children:b.embedder||f("settings_ui.not_indexed")}),b.dim?r.jsx(Fe,{tone:"muted",children:f("settings_ui.dim",{dim:b.dim})}):null,b.updated_at?r.jsx("span",{className:"text-xs text-muted-foreground",children:f("settings_ui.updated_at",{date:new Date(b.updated_at).toLocaleString()})}):null]}),r.jsxs("div",{className:"flex flex-wrap items-center gap-3 pt-1",children:[r.jsxs(me,{variant:"secondary",onClick:()=>k(!1),loading:l,children:[r.jsx(cs,{size:14})," ",f("settings_ui.reindex")]}),r.jsxs(me,{variant:"secondary",onClick:()=>k(!0),loading:l,children:[r.jsx(cs,{size:14})," ",f("settings_ui.reindex_forced")]}),r.jsx("span",{className:"text-xs text-muted-foreground",children:f("settings_ui.embedder_source")})]})]})}),r.jsx(Ye,{title:f("settings_ui.thresholds_title"),description:f("settings_ui.thresholds_desc"),children:r.jsx("div",{className:"grid grid-cols-1 gap-4 sm:grid-cols-2",children:w8().map(j=>r.jsx(pe,{label:j.label,hint:j.hint,children:r.jsx(Oe,{type:"number",step:j.step,min:j.min,max:j.max,defaultValue:String(h[j.key]),disabled:l,onBlur:w=>{const S=Number(w.target.value);Number.isFinite(S)&&S!==h[j.key]&&_({[j.key]:S})},className:"max-w-[12rem]"})},j.key))})}),r.jsx(Ye,{title:f("settings_ui.test_title"),description:f("settings_ui.test_desc"),children:r.jsxs("div",{className:"space-y-3",children:[r.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[r.jsx(Oe,{value:u,placeholder:f("settings_ui.test_placeholder"),disabled:l,onChange:j=>p(j.target.value),onKeyDown:j=>{j.key==="Enter"&&E()},className:"max-w-xl flex-1"}),r.jsxs(me,{variant:"primary",onClick:E,loading:l,children:[r.jsx(BM,{size:14})," ",f("settings_ui.test_btn")]})]}),m&&r.jsxs("div",{className:"rounded-md border border-border/60 bg-muted/30 p-3 text-sm",children:[r.jsxs("div",{className:"mb-2 flex flex-wrap items-center gap-2",children:[r.jsx(fs,{size:14,className:"text-muted-foreground"}),r.jsx("span",{className:"text-muted-foreground",children:m.embedder||"—"}),m.jit?r.jsx(Fe,{tone:"warning",children:f("settings_ui.jit_empty_index")}):null,m.reason&&!m.loaded?.length&&!m.hinted?.length?r.jsx(Fe,{tone:"muted",children:m.reason}):null]}),m.loaded?.length?r.jsxs("div",{className:"mb-1",children:[r.jsxs("span",{className:"text-muted-foreground",children:[f("settings_ui.loaded_label")," "]}),m.loaded.map(j=>r.jsx(Fe,{tone:"success",className:"mr-1",children:j},j))]}):null,m.hinted?.length?r.jsxs("div",{className:"mb-1",children:[r.jsxs("span",{className:"text-muted-foreground",children:[f("settings_ui.suggested_label")," "]}),m.hinted.map(j=>r.jsx(Fe,{tone:"info",className:"mr-1",children:j},j))]}):null,m.scored?.length?r.jsx("div",{className:"mt-2 space-y-0.5 font-mono text-xs text-muted-foreground",children:m.scored.map(j=>r.jsxs("div",{children:[j.sim.toFixed(3)," ",j.slug]},j.slug))}):null]})]})})]})}function S8(){const e=lt(),{config:t,isLoading:s,patch:o,mutate:l}=Vr(),c=t.telegram?.channels||[],u=Math.max(0,c.findIndex(A=>A.name==="default")),p=c[u],[m,g]=x.useState(!0),[h,b]=x.useState(1500),[_,k]=x.useState(!0),[E,j]=x.useState(""),[w,S]=x.useState(""),[C,N]=x.useState(!1);if(x.useEffect(()=>{g(!!t.telegram?.enabled),b(Number(t.telegram?.poll_interval_ms||1500)),k(!!t.telegram?.respond_with_engine),j(""),S(p?.chat_id||"")},[t,p?.chat_id]),s)return r.jsx(ot,{});const R=async()=>{N(!0);try{const A=c.slice(),T={name:"default",chat_id:w,respond_with_engine:_,...E?{bot_token:E}:{}};c.length===0?A.push(T):A[u]={...p,...T},await o({"telegram.enabled":m,"telegram.poll_interval_ms":h,"telegram.respond_with_engine":_,"telegram.channels":A}),e.success(f("settings.telegram_global.saved")),l(),j("")}catch(A){e.error(A.message)}finally{N(!1)}};return r.jsx(Ye,{title:f("settings.telegram_global.title"),description:f("settings.telegram_global.subtitle"),children:r.jsxs("div",{className:"space-y-3",children:[r.jsxs("div",{className:"flex items-center gap-3",children:[r.jsx(Qt,{checked:m,onChange:g,label:f("settings.telegram_global.enabled")}),r.jsx(Qt,{checked:_,onChange:k,label:f("settings.telegram_global.respond_with_engine")})]}),r.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[r.jsx(pe,{label:f("settings.telegram_global.bot_token"),hint:p?.bot_token?`…${ql(p.bot_token)??""} ${f("telegram_ui.secret_set_replace")}`:f("telegram_ui.bot_token_hint_short"),children:r.jsx(Oe,{type:"password",value:E,onChange:A=>j(A.target.value),placeholder:p?.bot_token?`…${ql(p.bot_token)??""} ${f("telegram_ui.secret_already_set")}`:""})}),r.jsx(pe,{label:f("settings.telegram_global.chat_id"),children:r.jsx(Oe,{value:w,onChange:A=>S(A.target.value),placeholder:"889721252"})}),r.jsx(pe,{label:f("settings.telegram_global.poll_interval"),children:r.jsx(Oe,{type:"number",value:String(h),onChange:A=>b(Number(A.target.value)||1500)})})]}),r.jsx(me,{variant:"primary",loading:C,onClick:R,children:f("common.save")})]})})}function C8(){const e=lt(),{channels:t,isLoading:s,mutate:o}=Kb(),{contacts:l}=Qb(),[c,u]=x.useState(null),[p,m]=x.useState(null),g=new Map;for(const b of l)g.set(String(b.user_id),b.name||`@${b.username||b.user_id}`);const h=async b=>{if(confirm(f("telegram_channels.delete_confirm",{name:b})))try{await Tn.channels.remove(b),e.success(f("telegram_channels.removed")),o()}catch(_){e.error(_.message)}};return r.jsxs(Ye,{title:f("telegram_channels.title"),description:f("telegram_channels.desc"),action:r.jsxs(me,{size:"sm",onClick:()=>u({name:""}),children:[r.jsx(rn,{size:14})," ",f("telegram_channels.new_btn")]}),children:[s&&r.jsx(ot,{}),!s&&t.length===0&&r.jsx(xt,{children:f("telegram_channels.empty")}),r.jsx("ul",{className:"space-y-2 text-sm",children:t.map(b=>{const _=b.owner_user_id!=null?g.get(String(b.owner_user_id))||f("telegram_ui.user_id_fallback",{id:b.owner_user_id}):f("telegram_channels.no_owner");return r.jsxs("li",{className:"rounded-md border border-border bg-muted/30 px-3 py-2",children:[r.jsxs("div",{className:"flex items-center justify-between gap-2",children:[r.jsx("span",{className:"font-medium",children:b.name}),r.jsxs("div",{className:"flex items-center gap-2",children:[b.project&&r.jsxs(Fe,{tone:"success",children:["project = ",b.project]}),r.jsxs(me,{size:"sm",variant:"ghost",onClick:()=>m(b),children:[r.jsx(Fa,{size:13})," ",f("admin.telegram_send_test")]}),r.jsx(me,{size:"sm",variant:"secondary",onClick:()=>u(b),children:f("common.edit")}),r.jsx(me,{size:"sm",variant:"destructive",onClick:()=>h(b.name),children:f("common.delete")})]})]}),r.jsxs("div",{className:"mt-1 grid grid-cols-2 gap-2 text-xs text-muted-fg",children:[r.jsxs("span",{children:["chat_id: ",b.chat_id||"—"]}),r.jsxs("span",{children:["bot_token: ",b.bot_token?`…${ql(b.bot_token)??""}`:"—"]}),r.jsxs("span",{children:["route_to_agent: ",b.route_to_agent||f("telegram_ui.default_apx")]}),r.jsxs("span",{children:["engine: ",b.respond_with_engine?f("telegram_ui.yes"):f("telegram_ui.no")]}),r.jsxs("span",{className:"col-span-2",children:[f("telegram_channels.owner_label")," ",_]})]})]},b.name)})}),r.jsx(SC,{channel:c,onClose:()=>u(null),onSaved:()=>{u(null),o()}}),r.jsx(CC,{channel:p,onClose:()=>m(null)})]})}const iw=new Set(["owner","guest"]);function E8(){const e=lt(),{roles:t,mutate:s,isLoading:o}=Qb(),[l,c]=x.useState(""),[u,p]=x.useState(""),[m,g]=x.useState(!1),[h,b]=x.useState(!1),_=async()=>{const j=l.trim();if(!j){e.error(f("telegram_roles.name_required"));return}if(iw.has(j)){e.error(f("telegram_roles.builtin_error",{name:j}));return}b(!0);try{const w=m?"*":u.split(",").map(S=>S.trim()).filter(Boolean);await Tn.roles.set(j,w),e.success(f("telegram_roles.saved",{name:j})),c(""),p(""),g(!1),s()}catch(w){e.error(w.message)}finally{b(!1)}},k=async j=>{if(confirm(f("telegram_roles.delete_confirm",{name:j})))try{await Tn.roles.remove(j),e.success(f("telegram_roles.removed")),s()}catch(w){e.error(w.message)}},E=Object.entries(t);return r.jsxs(Ye,{title:f("telegram_roles.title"),description:f("telegram_roles.desc"),children:[o&&r.jsx(ot,{}),E.length===0&&!o&&r.jsx(xt,{children:f("telegram_roles.empty")}),E.length>0&&r.jsx("ul",{className:"space-y-2 text-sm",children:E.map(([j,w])=>{const S=iw.has(j),C=w?.tools==="*"?f("telegram_roles.tools_all"):Array.isArray(w?.tools)&&w.tools.length>0?w.tools.join(", "):f("telegram_roles.tools_none");return r.jsxs("li",{className:"rounded-md border border-border bg-muted/30 px-3 py-2",children:[r.jsxs("div",{className:"flex items-center justify-between gap-2",children:[r.jsxs("div",{className:"min-w-0",children:[r.jsx("span",{className:"font-medium",children:j}),S&&r.jsx(Fe,{tone:"info",children:f("telegram_roles.builtin")})]}),!S&&r.jsx(me,{size:"sm",variant:"destructive",onClick:()=>k(j),children:f("telegram_roles.delete_btn")})]}),r.jsxs("div",{className:"mt-1 text-xs text-muted-fg",children:[f("telegram_contacts.tools_label")," ",C]})]},j)})}),r.jsxs("div",{className:"mt-4 space-y-3 rounded-md border border-dashed border-border p-3",children:[r.jsxs("div",{className:"flex items-center gap-2 text-sm font-medium",children:[r.jsx(rn,{size:14})," ",f("telegram_roles.new_title")]}),r.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[r.jsx(pe,{label:f("telegram_roles.name_label"),children:r.jsx(Oe,{value:l,onChange:j=>c(j.target.value),placeholder:f("telegram_roles.name_ph")})}),r.jsx(pe,{label:f("telegram_roles.tools_label"),hint:f("telegram_roles.tools_hint"),children:r.jsx(Oe,{value:u,onChange:j=>p(j.target.value),disabled:m,placeholder:f("telegram_roles.tools_ph")})})]}),r.jsxs("div",{className:"flex items-center justify-between gap-3",children:[r.jsx(Qt,{checked:m,onChange:g,label:f("telegram_roles.full_access")}),r.jsx(me,{variant:"primary",loading:h,onClick:_,children:f("telegram_roles.save_btn")})]})]})]})}const yE="apx.settings.telegramTab";function N8(){if(typeof window>"u")return"default";const e=window.localStorage.getItem(yE);return e==="channels"||e==="contacts"||e==="roles"||e==="default"?e:"default"}function R8(){const[e,t]=x.useState("default");x.useEffect(()=>{t(N8())},[]);const s=o=>{const l=o==="channels"||o==="contacts"||o==="roles"||o==="default"?o:"default";t(l);try{window.localStorage.setItem(yE,l)}catch{}};return r.jsxs(sp,{value:e,onValueChange:s,className:"w-full",children:[r.jsxs(rp,{children:[r.jsx(as,{value:"default",children:f("settings.telegram_global.title")}),r.jsx(as,{value:"channels",children:f("telegram_channels.title")}),r.jsx(as,{value:"contacts",children:f("telegram_contacts.title")}),r.jsx(as,{value:"roles",children:f("telegram_roles.title")})]}),r.jsx(za,{value:"default",className:"mt-4",children:r.jsx(S8,{})}),r.jsx(za,{value:"channels",className:"mt-4",children:r.jsx(C8,{})}),r.jsx(za,{value:"contacts",className:"mt-4",children:r.jsx(EC,{})}),r.jsx(za,{value:"roles",className:"mt-4",children:r.jsx(E8,{})})]})}function T8(){const{data:e,error:t,isLoading:s,mutate:o}=Qe("/pair/list",()=>Vl.list(),{refreshInterval:Ef.pairList});return{clients:e?.clients||[],error:t,isLoading:s,mutate:o}}var vl={},sh,cw;function A8(){return cw||(cw=1,sh=function(){return typeof Promise=="function"&&Promise.prototype&&Promise.prototype.then}),sh}var rh={},kr={},uw;function To(){if(uw)return kr;uw=1;let e;const t=[0,26,44,70,100,134,172,196,242,292,346,404,466,532,581,655,733,815,901,991,1085,1156,1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465,2611,2761,2876,3034,3196,3362,3532,3706];return kr.getSymbolSize=function(o){if(!o)throw new Error('"version" cannot be null or undefined');if(o<1||o>40)throw new Error('"version" should be in range from 1 to 40');return o*4+17},kr.getSymbolTotalCodewords=function(o){return t[o]},kr.getBCHDigit=function(s){let o=0;for(;s!==0;)o++,s>>>=1;return o},kr.setToSJISFunction=function(o){if(typeof o!="function")throw new Error('"toSJISFunc" is not a valid function.');e=o},kr.isKanjiModeEnabled=function(){return typeof e<"u"},kr.toSJIS=function(o){return e(o)},kr}var oh={},dw;function uv(){return dw||(dw=1,(function(e){e.L={bit:1},e.M={bit:0},e.Q={bit:3},e.H={bit:2};function t(s){if(typeof s!="string")throw new Error("Param is not a string");switch(s.toLowerCase()){case"l":case"low":return e.L;case"m":case"medium":return e.M;case"q":case"quartile":return e.Q;case"h":case"high":return e.H;default:throw new Error("Unknown EC Level: "+s)}}e.isValid=function(o){return o&&typeof o.bit<"u"&&o.bit>=0&&o.bit<4},e.from=function(o,l){if(e.isValid(o))return o;try{return t(o)}catch{return l}}})(oh)),oh}var lh,fw;function M8(){if(fw)return lh;fw=1;function e(){this.buffer=[],this.length=0}return e.prototype={get:function(t){const s=Math.floor(t/8);return(this.buffer[s]>>>7-t%8&1)===1},put:function(t,s){for(let o=0;o<s;o++)this.putBit((t>>>s-o-1&1)===1)},getLengthInBits:function(){return this.length},putBit:function(t){const s=Math.floor(this.length/8);this.buffer.length<=s&&this.buffer.push(0),t&&(this.buffer[s]|=128>>>this.length%8),this.length++}},lh=e,lh}var ih,pw;function O8(){if(pw)return ih;pw=1;function e(t){if(!t||t<1)throw new Error("BitMatrix size must be defined and greater than 0");this.size=t,this.data=new Uint8Array(t*t),this.reservedBit=new Uint8Array(t*t)}return e.prototype.set=function(t,s,o,l){const c=t*this.size+s;this.data[c]=o,l&&(this.reservedBit[c]=!0)},e.prototype.get=function(t,s){return this.data[t*this.size+s]},e.prototype.xor=function(t,s,o){this.data[t*this.size+s]^=o},e.prototype.isReserved=function(t,s){return this.reservedBit[t*this.size+s]},ih=e,ih}var ch={},mw;function z8(){return mw||(mw=1,(function(e){const t=To().getSymbolSize;e.getRowColCoords=function(o){if(o===1)return[];const l=Math.floor(o/7)+2,c=t(o),u=c===145?26:Math.ceil((c-13)/(2*l-2))*2,p=[c-7];for(let m=1;m<l-1;m++)p[m]=p[m-1]-u;return p.push(6),p.reverse()},e.getPositions=function(o){const l=[],c=e.getRowColCoords(o),u=c.length;for(let p=0;p<u;p++)for(let m=0;m<u;m++)p===0&&m===0||p===0&&m===u-1||p===u-1&&m===0||l.push([c[p],c[m]]);return l}})(ch)),ch}var uh={},gw;function D8(){if(gw)return uh;gw=1;const e=To().getSymbolSize,t=7;return uh.getPositions=function(o){const l=e(o);return[[0,0],[l-t,0],[0,l-t]]},uh}var dh={},hw;function L8(){return hw||(hw=1,(function(e){e.Patterns={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7};const t={N1:3,N2:3,N3:40,N4:10};e.isValid=function(l){return l!=null&&l!==""&&!isNaN(l)&&l>=0&&l<=7},e.from=function(l){return e.isValid(l)?parseInt(l,10):void 0},e.getPenaltyN1=function(l){const c=l.size;let u=0,p=0,m=0,g=null,h=null;for(let b=0;b<c;b++){p=m=0,g=h=null;for(let _=0;_<c;_++){let k=l.get(b,_);k===g?p++:(p>=5&&(u+=t.N1+(p-5)),g=k,p=1),k=l.get(_,b),k===h?m++:(m>=5&&(u+=t.N1+(m-5)),h=k,m=1)}p>=5&&(u+=t.N1+(p-5)),m>=5&&(u+=t.N1+(m-5))}return u},e.getPenaltyN2=function(l){const c=l.size;let u=0;for(let p=0;p<c-1;p++)for(let m=0;m<c-1;m++){const g=l.get(p,m)+l.get(p,m+1)+l.get(p+1,m)+l.get(p+1,m+1);(g===4||g===0)&&u++}return u*t.N2},e.getPenaltyN3=function(l){const c=l.size;let u=0,p=0,m=0;for(let g=0;g<c;g++){p=m=0;for(let h=0;h<c;h++)p=p<<1&2047|l.get(g,h),h>=10&&(p===1488||p===93)&&u++,m=m<<1&2047|l.get(h,g),h>=10&&(m===1488||m===93)&&u++}return u*t.N3},e.getPenaltyN4=function(l){let c=0;const u=l.data.length;for(let m=0;m<u;m++)c+=l.data[m];return Math.abs(Math.ceil(c*100/u/5)-10)*t.N4};function s(o,l,c){switch(o){case e.Patterns.PATTERN000:return(l+c)%2===0;case e.Patterns.PATTERN001:return l%2===0;case e.Patterns.PATTERN010:return c%3===0;case e.Patterns.PATTERN011:return(l+c)%3===0;case e.Patterns.PATTERN100:return(Math.floor(l/2)+Math.floor(c/3))%2===0;case e.Patterns.PATTERN101:return l*c%2+l*c%3===0;case e.Patterns.PATTERN110:return(l*c%2+l*c%3)%2===0;case e.Patterns.PATTERN111:return(l*c%3+(l+c)%2)%2===0;default:throw new Error("bad maskPattern:"+o)}}e.applyMask=function(l,c){const u=c.size;for(let p=0;p<u;p++)for(let m=0;m<u;m++)c.isReserved(m,p)||c.xor(m,p,s(l,m,p))},e.getBestMask=function(l,c){const u=Object.keys(e.Patterns).length;let p=0,m=1/0;for(let g=0;g<u;g++){c(g),e.applyMask(g,l);const h=e.getPenaltyN1(l)+e.getPenaltyN2(l)+e.getPenaltyN3(l)+e.getPenaltyN4(l);e.applyMask(g,l),h<m&&(m=h,p=g)}return p}})(dh)),dh}var Nd={},xw;function jE(){if(xw)return Nd;xw=1;const e=uv(),t=[1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,4,1,2,4,4,2,4,4,4,2,4,6,5,2,4,6,6,2,5,8,8,4,5,8,8,4,5,8,11,4,8,10,11,4,9,12,16,4,9,16,16,6,10,12,18,6,10,17,16,6,11,16,19,6,13,18,21,7,14,21,25,8,16,20,25,8,17,23,25,9,17,23,34,9,18,25,30,10,20,27,32,12,21,29,35,12,23,34,37,12,25,34,40,13,26,35,42,14,28,38,45,15,29,40,48,16,31,43,51,17,33,45,54,18,35,48,57,19,37,51,60,19,38,53,63,20,40,56,66,21,43,59,70,22,45,62,74,24,47,65,77,25,49,68,81],s=[7,10,13,17,10,16,22,28,15,26,36,44,20,36,52,64,26,48,72,88,36,64,96,112,40,72,108,130,48,88,132,156,60,110,160,192,72,130,192,224,80,150,224,264,96,176,260,308,104,198,288,352,120,216,320,384,132,240,360,432,144,280,408,480,168,308,448,532,180,338,504,588,196,364,546,650,224,416,600,700,224,442,644,750,252,476,690,816,270,504,750,900,300,560,810,960,312,588,870,1050,336,644,952,1110,360,700,1020,1200,390,728,1050,1260,420,784,1140,1350,450,812,1200,1440,480,868,1290,1530,510,924,1350,1620,540,980,1440,1710,570,1036,1530,1800,570,1064,1590,1890,600,1120,1680,1980,630,1204,1770,2100,660,1260,1860,2220,720,1316,1950,2310,750,1372,2040,2430];return Nd.getBlocksCount=function(l,c){switch(c){case e.L:return t[(l-1)*4+0];case e.M:return t[(l-1)*4+1];case e.Q:return t[(l-1)*4+2];case e.H:return t[(l-1)*4+3];default:return}},Nd.getTotalCodewordsCount=function(l,c){switch(c){case e.L:return s[(l-1)*4+0];case e.M:return s[(l-1)*4+1];case e.Q:return s[(l-1)*4+2];case e.H:return s[(l-1)*4+3];default:return}},Nd}var fh={},rc={},bw;function P8(){if(bw)return rc;bw=1;const e=new Uint8Array(512),t=new Uint8Array(256);return(function(){let o=1;for(let l=0;l<255;l++)e[l]=o,t[o]=l,o<<=1,o&256&&(o^=285);for(let l=255;l<512;l++)e[l]=e[l-255]})(),rc.log=function(o){if(o<1)throw new Error("log("+o+")");return t[o]},rc.exp=function(o){return e[o]},rc.mul=function(o,l){return o===0||l===0?0:e[t[o]+t[l]]},rc}var vw;function I8(){return vw||(vw=1,(function(e){const t=P8();e.mul=function(o,l){const c=new Uint8Array(o.length+l.length-1);for(let u=0;u<o.length;u++)for(let p=0;p<l.length;p++)c[u+p]^=t.mul(o[u],l[p]);return c},e.mod=function(o,l){let c=new Uint8Array(o);for(;c.length-l.length>=0;){const u=c[0];for(let m=0;m<l.length;m++)c[m]^=t.mul(l[m],u);let p=0;for(;p<c.length&&c[p]===0;)p++;c=c.slice(p)}return c},e.generateECPolynomial=function(o){let l=new Uint8Array([1]);for(let c=0;c<o;c++)l=e.mul(l,new Uint8Array([1,t.exp(c)]));return l}})(fh)),fh}var ph,_w;function B8(){if(_w)return ph;_w=1;const e=I8();function t(s){this.genPoly=void 0,this.degree=s,this.degree&&this.initialize(this.degree)}return t.prototype.initialize=function(o){this.degree=o,this.genPoly=e.generateECPolynomial(this.degree)},t.prototype.encode=function(o){if(!this.genPoly)throw new Error("Encoder not initialized");const l=new Uint8Array(o.length+this.degree);l.set(o);const c=e.mod(l,this.genPoly),u=this.degree-c.length;if(u>0){const p=new Uint8Array(this.degree);return p.set(c,u),p}return c},ph=t,ph}var mh={},gh={},hh={},yw;function wE(){return yw||(yw=1,hh.isValid=function(t){return!isNaN(t)&&t>=1&&t<=40}),hh}var Wa={},jw;function kE(){if(jw)return Wa;jw=1;const e="[0-9]+",t="[A-Z $%*+\\-./:]+";let s="(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+";s=s.replace(/u/g,"\\u");const o="(?:(?![A-Z0-9 $%*+\\-./:]|"+s+`)(?:.|[\r
|
|
634
|
+
]))+`;Wa.KANJI=new RegExp(s,"g"),Wa.BYTE_KANJI=new RegExp("[^A-Z0-9 $%*+\\-./:]+","g"),Wa.BYTE=new RegExp(o,"g"),Wa.NUMERIC=new RegExp(e,"g"),Wa.ALPHANUMERIC=new RegExp(t,"g");const l=new RegExp("^"+s+"$"),c=new RegExp("^"+e+"$"),u=new RegExp("^[A-Z0-9 $%*+\\-./:]+$");return Wa.testKanji=function(m){return l.test(m)},Wa.testNumeric=function(m){return c.test(m)},Wa.testAlphanumeric=function(m){return u.test(m)},Wa}var ww;function Ao(){return ww||(ww=1,(function(e){const t=wE(),s=kE();e.NUMERIC={id:"Numeric",bit:1,ccBits:[10,12,14]},e.ALPHANUMERIC={id:"Alphanumeric",bit:2,ccBits:[9,11,13]},e.BYTE={id:"Byte",bit:4,ccBits:[8,16,16]},e.KANJI={id:"Kanji",bit:8,ccBits:[8,10,12]},e.MIXED={bit:-1},e.getCharCountIndicator=function(c,u){if(!c.ccBits)throw new Error("Invalid mode: "+c);if(!t.isValid(u))throw new Error("Invalid version: "+u);return u>=1&&u<10?c.ccBits[0]:u<27?c.ccBits[1]:c.ccBits[2]},e.getBestModeForData=function(c){return s.testNumeric(c)?e.NUMERIC:s.testAlphanumeric(c)?e.ALPHANUMERIC:s.testKanji(c)?e.KANJI:e.BYTE},e.toString=function(c){if(c&&c.id)return c.id;throw new Error("Invalid mode")},e.isValid=function(c){return c&&c.bit&&c.ccBits};function o(l){if(typeof l!="string")throw new Error("Param is not a string");switch(l.toLowerCase()){case"numeric":return e.NUMERIC;case"alphanumeric":return e.ALPHANUMERIC;case"kanji":return e.KANJI;case"byte":return e.BYTE;default:throw new Error("Unknown mode: "+l)}}e.from=function(c,u){if(e.isValid(c))return c;try{return o(c)}catch{return u}}})(gh)),gh}var kw;function U8(){return kw||(kw=1,(function(e){const t=To(),s=jE(),o=uv(),l=Ao(),c=wE(),u=7973,p=t.getBCHDigit(u);function m(_,k,E){for(let j=1;j<=40;j++)if(k<=e.getCapacity(j,E,_))return j}function g(_,k){return l.getCharCountIndicator(_,k)+4}function h(_,k){let E=0;return _.forEach(function(j){const w=g(j.mode,k);E+=w+j.getBitsLength()}),E}function b(_,k){for(let E=1;E<=40;E++)if(h(_,E)<=e.getCapacity(E,k,l.MIXED))return E}e.from=function(k,E){return c.isValid(k)?parseInt(k,10):E},e.getCapacity=function(k,E,j){if(!c.isValid(k))throw new Error("Invalid QR Code version");typeof j>"u"&&(j=l.BYTE);const w=t.getSymbolTotalCodewords(k),S=s.getTotalCodewordsCount(k,E),C=(w-S)*8;if(j===l.MIXED)return C;const N=C-g(j,k);switch(j){case l.NUMERIC:return Math.floor(N/10*3);case l.ALPHANUMERIC:return Math.floor(N/11*2);case l.KANJI:return Math.floor(N/13);case l.BYTE:default:return Math.floor(N/8)}},e.getBestVersionForData=function(k,E){let j;const w=o.from(E,o.M);if(Array.isArray(k)){if(k.length>1)return b(k,w);if(k.length===0)return 1;j=k[0]}else j=k;return m(j.mode,j.getLength(),w)},e.getEncodedBits=function(k){if(!c.isValid(k)||k<7)throw new Error("Invalid QR Code version");let E=k<<12;for(;t.getBCHDigit(E)-p>=0;)E^=u<<t.getBCHDigit(E)-p;return k<<12|E}})(mh)),mh}var xh={},Sw;function H8(){if(Sw)return xh;Sw=1;const e=To(),t=1335,s=21522,o=e.getBCHDigit(t);return xh.getEncodedBits=function(c,u){const p=c.bit<<3|u;let m=p<<10;for(;e.getBCHDigit(m)-o>=0;)m^=t<<e.getBCHDigit(m)-o;return(p<<10|m)^s},xh}var bh={},vh,Cw;function V8(){if(Cw)return vh;Cw=1;const e=Ao();function t(s){this.mode=e.NUMERIC,this.data=s.toString()}return t.getBitsLength=function(o){return 10*Math.floor(o/3)+(o%3?o%3*3+1:0)},t.prototype.getLength=function(){return this.data.length},t.prototype.getBitsLength=function(){return t.getBitsLength(this.data.length)},t.prototype.write=function(o){let l,c,u;for(l=0;l+3<=this.data.length;l+=3)c=this.data.substr(l,3),u=parseInt(c,10),o.put(u,10);const p=this.data.length-l;p>0&&(c=this.data.substr(l),u=parseInt(c,10),o.put(u,p*3+1))},vh=t,vh}var _h,Ew;function q8(){if(Ew)return _h;Ew=1;const e=Ao(),t=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"," ","$","%","*","+","-",".","/",":"];function s(o){this.mode=e.ALPHANUMERIC,this.data=o}return s.getBitsLength=function(l){return 11*Math.floor(l/2)+6*(l%2)},s.prototype.getLength=function(){return this.data.length},s.prototype.getBitsLength=function(){return s.getBitsLength(this.data.length)},s.prototype.write=function(l){let c;for(c=0;c+2<=this.data.length;c+=2){let u=t.indexOf(this.data[c])*45;u+=t.indexOf(this.data[c+1]),l.put(u,11)}this.data.length%2&&l.put(t.indexOf(this.data[c]),6)},_h=s,_h}var yh,Nw;function $8(){if(Nw)return yh;Nw=1;const e=Ao();function t(s){this.mode=e.BYTE,typeof s=="string"?this.data=new TextEncoder().encode(s):this.data=new Uint8Array(s)}return t.getBitsLength=function(o){return o*8},t.prototype.getLength=function(){return this.data.length},t.prototype.getBitsLength=function(){return t.getBitsLength(this.data.length)},t.prototype.write=function(s){for(let o=0,l=this.data.length;o<l;o++)s.put(this.data[o],8)},yh=t,yh}var jh,Rw;function F8(){if(Rw)return jh;Rw=1;const e=Ao(),t=To();function s(o){this.mode=e.KANJI,this.data=o}return s.getBitsLength=function(l){return l*13},s.prototype.getLength=function(){return this.data.length},s.prototype.getBitsLength=function(){return s.getBitsLength(this.data.length)},s.prototype.write=function(o){let l;for(l=0;l<this.data.length;l++){let c=t.toSJIS(this.data[l]);if(c>=33088&&c<=40956)c-=33088;else if(c>=57408&&c<=60351)c-=49472;else throw new Error("Invalid SJIS character: "+this.data[l]+`
|
|
635
|
+
Make sure your charset is UTF-8`);c=(c>>>8&255)*192+(c&255),o.put(c,13)}},jh=s,jh}var wh={exports:{}},Tw;function G8(){return Tw||(Tw=1,(function(e){var t={single_source_shortest_paths:function(s,o,l){var c={},u={};u[o]=0;var p=t.PriorityQueue.make();p.push(o,0);for(var m,g,h,b,_,k,E,j,w;!p.empty();){m=p.pop(),g=m.value,b=m.cost,_=s[g]||{};for(h in _)_.hasOwnProperty(h)&&(k=_[h],E=b+k,j=u[h],w=typeof u[h]>"u",(w||j>E)&&(u[h]=E,p.push(h,E),c[h]=g))}if(typeof l<"u"&&typeof u[l]>"u"){var S=["Could not find a path from ",o," to ",l,"."].join("");throw new Error(S)}return c},extract_shortest_path_from_predecessor_list:function(s,o){for(var l=[],c=o;c;)l.push(c),s[c],c=s[c];return l.reverse(),l},find_path:function(s,o,l){var c=t.single_source_shortest_paths(s,o,l);return t.extract_shortest_path_from_predecessor_list(c,l)},PriorityQueue:{make:function(s){var o=t.PriorityQueue,l={},c;s=s||{};for(c in o)o.hasOwnProperty(c)&&(l[c]=o[c]);return l.queue=[],l.sorter=s.sorter||o.default_sorter,l},default_sorter:function(s,o){return s.cost-o.cost},push:function(s,o){var l={value:s,cost:o};this.queue.push(l),this.queue.sort(this.sorter)},pop:function(){return this.queue.shift()},empty:function(){return this.queue.length===0}}};e.exports=t})(wh)),wh.exports}var Aw;function Y8(){return Aw||(Aw=1,(function(e){const t=Ao(),s=V8(),o=q8(),l=$8(),c=F8(),u=kE(),p=To(),m=G8();function g(S){return unescape(encodeURIComponent(S)).length}function h(S,C,N){const R=[];let A;for(;(A=S.exec(N))!==null;)R.push({data:A[0],index:A.index,mode:C,length:A[0].length});return R}function b(S){const C=h(u.NUMERIC,t.NUMERIC,S),N=h(u.ALPHANUMERIC,t.ALPHANUMERIC,S);let R,A;return p.isKanjiModeEnabled()?(R=h(u.BYTE,t.BYTE,S),A=h(u.KANJI,t.KANJI,S)):(R=h(u.BYTE_KANJI,t.BYTE,S),A=[]),C.concat(N,R,A).sort(function(M,z){return M.index-z.index}).map(function(M){return{data:M.data,mode:M.mode,length:M.length}})}function _(S,C){switch(C){case t.NUMERIC:return s.getBitsLength(S);case t.ALPHANUMERIC:return o.getBitsLength(S);case t.KANJI:return c.getBitsLength(S);case t.BYTE:return l.getBitsLength(S)}}function k(S){return S.reduce(function(C,N){const R=C.length-1>=0?C[C.length-1]:null;return R&&R.mode===N.mode?(C[C.length-1].data+=N.data,C):(C.push(N),C)},[])}function E(S){const C=[];for(let N=0;N<S.length;N++){const R=S[N];switch(R.mode){case t.NUMERIC:C.push([R,{data:R.data,mode:t.ALPHANUMERIC,length:R.length},{data:R.data,mode:t.BYTE,length:R.length}]);break;case t.ALPHANUMERIC:C.push([R,{data:R.data,mode:t.BYTE,length:R.length}]);break;case t.KANJI:C.push([R,{data:R.data,mode:t.BYTE,length:g(R.data)}]);break;case t.BYTE:C.push([{data:R.data,mode:t.BYTE,length:g(R.data)}])}}return C}function j(S,C){const N={},R={start:{}};let A=["start"];for(let T=0;T<S.length;T++){const M=S[T],z=[];for(let P=0;P<M.length;P++){const D=M[P],I=""+T+P;z.push(I),N[I]={node:D,lastCount:0},R[I]={};for(let B=0;B<A.length;B++){const V=A[B];N[V]&&N[V].node.mode===D.mode?(R[V][I]=_(N[V].lastCount+D.length,D.mode)-_(N[V].lastCount,D.mode),N[V].lastCount+=D.length):(N[V]&&(N[V].lastCount=D.length),R[V][I]=_(D.length,D.mode)+4+t.getCharCountIndicator(D.mode,C))}}A=z}for(let T=0;T<A.length;T++)R[A[T]].end=0;return{map:R,table:N}}function w(S,C){let N;const R=t.getBestModeForData(S);if(N=t.from(C,R),N!==t.BYTE&&N.bit<R.bit)throw new Error('"'+S+'" cannot be encoded with mode '+t.toString(N)+`.
|
|
636
|
+
Suggested mode is: `+t.toString(R));switch(N===t.KANJI&&!p.isKanjiModeEnabled()&&(N=t.BYTE),N){case t.NUMERIC:return new s(S);case t.ALPHANUMERIC:return new o(S);case t.KANJI:return new c(S);case t.BYTE:return new l(S)}}e.fromArray=function(C){return C.reduce(function(N,R){return typeof R=="string"?N.push(w(R,null)):R.data&&N.push(w(R.data,R.mode)),N},[])},e.fromString=function(C,N){const R=b(C,p.isKanjiModeEnabled()),A=E(R),T=j(A,N),M=m.find_path(T.map,"start","end"),z=[];for(let P=1;P<M.length-1;P++)z.push(T.table[M[P]].node);return e.fromArray(k(z))},e.rawSplit=function(C){return e.fromArray(b(C,p.isKanjiModeEnabled()))}})(bh)),bh}var Mw;function X8(){if(Mw)return rh;Mw=1;const e=To(),t=uv(),s=M8(),o=O8(),l=z8(),c=D8(),u=L8(),p=jE(),m=B8(),g=U8(),h=H8(),b=Ao(),_=Y8();function k(T,M){const z=T.size,P=c.getPositions(M);for(let D=0;D<P.length;D++){const I=P[D][0],B=P[D][1];for(let V=-1;V<=7;V++)if(!(I+V<=-1||z<=I+V))for(let H=-1;H<=7;H++)B+H<=-1||z<=B+H||(V>=0&&V<=6&&(H===0||H===6)||H>=0&&H<=6&&(V===0||V===6)||V>=2&&V<=4&&H>=2&&H<=4?T.set(I+V,B+H,!0,!0):T.set(I+V,B+H,!1,!0))}}function E(T){const M=T.size;for(let z=8;z<M-8;z++){const P=z%2===0;T.set(z,6,P,!0),T.set(6,z,P,!0)}}function j(T,M){const z=l.getPositions(M);for(let P=0;P<z.length;P++){const D=z[P][0],I=z[P][1];for(let B=-2;B<=2;B++)for(let V=-2;V<=2;V++)B===-2||B===2||V===-2||V===2||B===0&&V===0?T.set(D+B,I+V,!0,!0):T.set(D+B,I+V,!1,!0)}}function w(T,M){const z=T.size,P=g.getEncodedBits(M);let D,I,B;for(let V=0;V<18;V++)D=Math.floor(V/3),I=V%3+z-8-3,B=(P>>V&1)===1,T.set(D,I,B,!0),T.set(I,D,B,!0)}function S(T,M,z){const P=T.size,D=h.getEncodedBits(M,z);let I,B;for(I=0;I<15;I++)B=(D>>I&1)===1,I<6?T.set(I,8,B,!0):I<8?T.set(I+1,8,B,!0):T.set(P-15+I,8,B,!0),I<8?T.set(8,P-I-1,B,!0):I<9?T.set(8,15-I-1+1,B,!0):T.set(8,15-I-1,B,!0);T.set(P-8,8,1,!0)}function C(T,M){const z=T.size;let P=-1,D=z-1,I=7,B=0;for(let V=z-1;V>0;V-=2)for(V===6&&V--;;){for(let H=0;H<2;H++)if(!T.isReserved(D,V-H)){let G=!1;B<M.length&&(G=(M[B]>>>I&1)===1),T.set(D,V-H,G),I--,I===-1&&(B++,I=7)}if(D+=P,D<0||z<=D){D-=P,P=-P;break}}}function N(T,M,z){const P=new s;z.forEach(function(H){P.put(H.mode.bit,4),P.put(H.getLength(),b.getCharCountIndicator(H.mode,T)),H.write(P)});const D=e.getSymbolTotalCodewords(T),I=p.getTotalCodewordsCount(T,M),B=(D-I)*8;for(P.getLengthInBits()+4<=B&&P.put(0,4);P.getLengthInBits()%8!==0;)P.putBit(0);const V=(B-P.getLengthInBits())/8;for(let H=0;H<V;H++)P.put(H%2?17:236,8);return R(P,T,M)}function R(T,M,z){const P=e.getSymbolTotalCodewords(M),D=p.getTotalCodewordsCount(M,z),I=P-D,B=p.getBlocksCount(M,z),V=P%B,H=B-V,G=Math.floor(P/B),q=Math.floor(I/B),Y=q+1,X=G-q,$=new m(X);let K=0;const L=new Array(B),F=new Array(B);let W=0;const ee=new Uint8Array(T.buffer);for(let fe=0;fe<B;fe++){const Re=fe<H?q:Y;L[fe]=ee.slice(K,K+Re),F[fe]=$.encode(L[fe]),K+=Re,W=Math.max(W,Re)}const ce=new Uint8Array(P);let ue=0,se,oe;for(se=0;se<W;se++)for(oe=0;oe<B;oe++)se<L[oe].length&&(ce[ue++]=L[oe][se]);for(se=0;se<X;se++)for(oe=0;oe<B;oe++)ce[ue++]=F[oe][se];return ce}function A(T,M,z,P){let D;if(Array.isArray(T))D=_.fromArray(T);else if(typeof T=="string"){let G=M;if(!G){const q=_.rawSplit(T);G=g.getBestVersionForData(q,z)}D=_.fromString(T,G||40)}else throw new Error("Invalid data");const I=g.getBestVersionForData(D,z);if(!I)throw new Error("The amount of data is too big to be stored in a QR Code");if(!M)M=I;else if(M<I)throw new Error(`
|
|
637
|
+
The chosen QR Code version cannot contain this amount of data.
|
|
638
|
+
Minimum version required to store current data is: `+I+`.
|
|
639
|
+
`);const B=N(M,z,D),V=e.getSymbolSize(M),H=new o(V);return k(H,M),E(H),j(H,M),S(H,z,0),M>=7&&w(H,M),C(H,B),isNaN(P)&&(P=u.getBestMask(H,S.bind(null,H,z))),u.applyMask(P,H),S(H,z,P),{modules:H,version:M,errorCorrectionLevel:z,maskPattern:P,segments:D}}return rh.create=function(M,z){if(typeof M>"u"||M==="")throw new Error("No input text");let P=t.M,D,I;return typeof z<"u"&&(P=t.from(z.errorCorrectionLevel,t.M),D=g.from(z.version),I=u.from(z.maskPattern),z.toSJISFunc&&e.setToSJISFunction(z.toSJISFunc)),A(M,D,P,I)},rh}var kh={},Sh={},Ow;function SE(){return Ow||(Ow=1,(function(e){function t(s){if(typeof s=="number"&&(s=s.toString()),typeof s!="string")throw new Error("Color should be defined as hex string");let o=s.slice().replace("#","").split("");if(o.length<3||o.length===5||o.length>8)throw new Error("Invalid hex color: "+s);(o.length===3||o.length===4)&&(o=Array.prototype.concat.apply([],o.map(function(c){return[c,c]}))),o.length===6&&o.push("F","F");const l=parseInt(o.join(""),16);return{r:l>>24&255,g:l>>16&255,b:l>>8&255,a:l&255,hex:"#"+o.slice(0,6).join("")}}e.getOptions=function(o){o||(o={}),o.color||(o.color={});const l=typeof o.margin>"u"||o.margin===null||o.margin<0?4:o.margin,c=o.width&&o.width>=21?o.width:void 0,u=o.scale||4;return{width:c,scale:c?4:u,margin:l,color:{dark:t(o.color.dark||"#000000ff"),light:t(o.color.light||"#ffffffff")},type:o.type,rendererOpts:o.rendererOpts||{}}},e.getScale=function(o,l){return l.width&&l.width>=o+l.margin*2?l.width/(o+l.margin*2):l.scale},e.getImageWidth=function(o,l){const c=e.getScale(o,l);return Math.floor((o+l.margin*2)*c)},e.qrToImageData=function(o,l,c){const u=l.modules.size,p=l.modules.data,m=e.getScale(u,c),g=Math.floor((u+c.margin*2)*m),h=c.margin*m,b=[c.color.light,c.color.dark];for(let _=0;_<g;_++)for(let k=0;k<g;k++){let E=(_*g+k)*4,j=c.color.light;if(_>=h&&k>=h&&_<g-h&&k<g-h){const w=Math.floor((_-h)/m),S=Math.floor((k-h)/m);j=b[p[w*u+S]?1:0]}o[E++]=j.r,o[E++]=j.g,o[E++]=j.b,o[E]=j.a}}})(Sh)),Sh}var zw;function K8(){return zw||(zw=1,(function(e){const t=SE();function s(l,c,u){l.clearRect(0,0,c.width,c.height),c.style||(c.style={}),c.height=u,c.width=u,c.style.height=u+"px",c.style.width=u+"px"}function o(){try{return document.createElement("canvas")}catch{throw new Error("You need to specify a canvas element")}}e.render=function(c,u,p){let m=p,g=u;typeof m>"u"&&(!u||!u.getContext)&&(m=u,u=void 0),u||(g=o()),m=t.getOptions(m);const h=t.getImageWidth(c.modules.size,m),b=g.getContext("2d"),_=b.createImageData(h,h);return t.qrToImageData(_.data,c,m),s(b,g,h),b.putImageData(_,0,0),g},e.renderToDataURL=function(c,u,p){let m=p;typeof m>"u"&&(!u||!u.getContext)&&(m=u,u=void 0),m||(m={});const g=e.render(c,u,m),h=m.type||"image/png",b=m.rendererOpts||{};return g.toDataURL(h,b.quality)}})(kh)),kh}var Ch={},Dw;function Q8(){if(Dw)return Ch;Dw=1;const e=SE();function t(l,c){const u=l.a/255,p=c+'="'+l.hex+'"';return u<1?p+" "+c+'-opacity="'+u.toFixed(2).slice(1)+'"':p}function s(l,c,u){let p=l+c;return typeof u<"u"&&(p+=" "+u),p}function o(l,c,u){let p="",m=0,g=!1,h=0;for(let b=0;b<l.length;b++){const _=Math.floor(b%c),k=Math.floor(b/c);!_&&!g&&(g=!0),l[b]?(h++,b>0&&_>0&&l[b-1]||(p+=g?s("M",_+u,.5+k+u):s("m",m,0),m=0,g=!1),_+1<c&&l[b+1]||(p+=s("h",h),h=0)):m++}return p}return Ch.render=function(c,u,p){const m=e.getOptions(u),g=c.modules.size,h=c.modules.data,b=g+m.margin*2,_=m.color.light.a?"<path "+t(m.color.light,"fill")+' d="M0 0h'+b+"v"+b+'H0z"/>':"",k="<path "+t(m.color.dark,"stroke")+' d="'+o(h,g,m.margin)+'"/>',E='viewBox="0 0 '+b+" "+b+'"',w='<svg xmlns="http://www.w3.org/2000/svg" '+(m.width?'width="'+m.width+'" height="'+m.width+'" ':"")+E+' shape-rendering="crispEdges">'+_+k+`</svg>
|
|
640
|
+
`;return typeof p=="function"&&p(null,w),w},Ch}var Lw;function Z8(){if(Lw)return vl;Lw=1;const e=A8(),t=X8(),s=K8(),o=Q8();function l(c,u,p,m,g){const h=[].slice.call(arguments,1),b=h.length,_=typeof h[b-1]=="function";if(!_&&!e())throw new Error("Callback required as last argument");if(_){if(b<2)throw new Error("Too few arguments provided");b===2?(g=p,p=u,u=m=void 0):b===3&&(u.getContext&&typeof g>"u"?(g=m,m=void 0):(g=m,m=p,p=u,u=void 0))}else{if(b<1)throw new Error("Too few arguments provided");return b===1?(p=u,u=m=void 0):b===2&&!u.getContext&&(m=p,p=u,u=void 0),new Promise(function(k,E){try{const j=t.create(p,m);k(c(j,u,m))}catch(j){E(j)}})}try{const k=t.create(p,m);g(null,c(k,u,m))}catch(k){g(k)}}return vl.create=t.create,vl.toCanvas=l.bind(null,s.render),vl.toDataURL=l.bind(null,s.renderToDataURL),vl.toString=l.bind(null,function(c,u,p){return o.render(c,p)}),vl}var W8=Z8();const J8=jx(W8);function e7({value:e,size:t=200}){const[s,o]=x.useState(null);return x.useEffect(()=>{let l=!0;return J8.toDataURL(e,{margin:2,width:t*2,errorCorrectionLevel:"M"}).then(c=>{l&&o(c)}).catch(()=>{l&&o(null)}),()=>{l=!1}},[e,t]),r.jsx("div",{className:"grid place-items-center rounded-lg bg-white p-3",style:{width:t+24,height:t+24},children:s?r.jsx("img",{src:s,width:t,height:t,alt:"QR"}):r.jsx("div",{className:"size-full animate-pulse rounded bg-muted"})})}function t7(e){return e.find(t=>!t.includes("127.0.0.1")&&!t.includes("localhost"))||e[0]||window.location.origin}function n7({open:e,onClose:t,onPaired:s}){const o=lt(),[l,c]=x.useState(null),[u,p]=x.useState(null),[m,g]=x.useState(0),[h,b]=x.useState(!1),_=x.useRef(null),k=x.useCallback(async()=>{c(null),p(null),b(!1);try{const C=await Vl.init();c(C),g(Math.round((C.ttl_ms||9e4)/1e3))}catch(C){C instanceof qc&&C.status===403?p(f("settings.devices_pair_localhost_only")):p(C.message)}},[]);x.useEffect(()=>{e?k():(c(null),p(null),b(!1))},[e,k]),x.useEffect(()=>{if(!l||h||m<=0)return;const C=window.setTimeout(()=>g(N=>N-1),1e3);return()=>window.clearTimeout(C)},[l,m,h]),x.useEffect(()=>{if(!e||!l||h)return;let C=!0;const N=async()=>{try{const R=await Vl.status(l.pairing_id);if(!C)return;if(R.status==="confirmed"){b(!0),o.success(f("settings.devices_pair_done")),s(),window.setTimeout(()=>{C&&t()},900);return}if(R.status==="expired"||R.status==="unknown"){g(0);return}}catch{}_.current=window.setTimeout(N,1500)};return _.current=window.setTimeout(N,1500),()=>{C=!1,_.current&&window.clearTimeout(_.current)}},[e,l,h,t,s,o]);const E=!!l&&!h&&m<=0,j=l?t7(l.lan_urls):"",w=l?`${j}/#pair=${l.pairing_id}`:"",S=async(C,N)=>{try{await navigator.clipboard.writeText(C),o.success(N)}catch{o.error(C)}};return r.jsxs(An,{open:e,onClose:t,title:f("settings.devices_pair_title"),description:f("settings.devices_pair_desc"),footer:r.jsx(me,{variant:"secondary",onClick:t,children:f("common.close")}),children:[u&&r.jsx("p",{className:"rounded-md bg-destructive/10 px-3 py-2 text-sm text-destructive",children:u}),!u&&!l&&r.jsxs("div",{className:"flex items-center gap-2 py-8 text-sm text-muted-fg",children:[r.jsx(ba,{})," ",f("common.loading")]}),!u&&l&&r.jsxs("div",{className:"flex flex-col items-center gap-4",children:[r.jsx("div",{className:E?"opacity-40":"",children:r.jsx(e7,{value:w,size:196})}),h?r.jsx("p",{className:"text-sm font-medium text-emerald-500",children:f("settings.devices_pair_done")}):E?r.jsxs("div",{className:"flex flex-col items-center gap-2",children:[r.jsx("p",{className:"text-sm text-muted-fg",children:f("settings.devices_pair_expired")}),r.jsx(me,{variant:"primary",onClick:()=>void k(),children:f("settings.devices_pair_regen")})]}):r.jsxs(r.Fragment,{children:[r.jsx("p",{className:"text-center text-xs text-muted-fg",children:f("settings.devices_pair_scan")}),r.jsxs("div",{className:"flex items-center gap-2 text-xs text-muted-fg",children:[r.jsx(ba,{size:12}),r.jsx("span",{children:f("settings.devices_pair_waiting")}),r.jsxs("span",{className:"tabular-nums",children:["· ",f("settings.devices_pair_expires",{s:m})]})]}),r.jsxs("div",{className:"w-full space-y-3 border-t border-border pt-3",children:[r.jsxs("div",{className:"space-y-1",children:[r.jsx("p",{className:"text-xs text-muted-fg",children:f("settings.devices_pair_link")}),r.jsxs("div",{className:"flex items-stretch gap-2",children:[r.jsx("code",{className:"min-w-0 flex-1 break-all rounded-md bg-muted px-3 py-2 text-xs",children:w}),r.jsx(et,{content:f("settings.devices_pair_copy"),children:r.jsx(me,{size:"sm",variant:"secondary",onClick:()=>S(w,f("settings.devices_pair_copied")),children:r.jsx(qd,{size:14})})})]})]}),r.jsxs("div",{className:"space-y-1",children:[r.jsx("p",{className:"text-xs text-muted-fg",children:f("settings.devices_pair_code")}),r.jsxs("div",{className:"flex items-stretch gap-2",children:[r.jsx("code",{className:"min-w-0 flex-1 break-all rounded-md bg-muted px-3 py-2 text-center text-sm",children:l.pairing_id}),r.jsx(et,{content:f("settings.devices_pair_copy"),children:r.jsx(me,{size:"sm",variant:"secondary",onClick:()=>S(l.pairing_id,f("settings.devices_pair_copied_code")),children:r.jsx(qd,{size:14})})})]})]})]})]})]})]})}function a7(){const e=lt(),{clients:t,isLoading:s,mutate:o}=T8(),[l,c]=x.useState(!1),u=async p=>{if(confirm(f("settings.devices_revoke_confirm",{id:p})))try{await Vl.revoke(p),e.success(f("settings.devices_revoke_success")),o()}catch(m){e.error(m.message)}};return r.jsxs(Ye,{title:f("settings.devices"),description:f("settings.devices_sub"),action:r.jsxs(me,{size:"sm",variant:"primary",onClick:()=>c(!0),children:[r.jsx(AM,{size:14})," ",f("settings.devices_pair_btn")]}),children:[s&&r.jsx(ot,{}),!s&&t.length===0&&r.jsx(xt,{children:f("settings.devices_empty")}),t.length>0&&r.jsx("ul",{className:"space-y-2 text-sm",children:t.map(p=>r.jsxs("li",{className:"flex items-center gap-3 rounded-md border border-border bg-muted/30 px-3 py-2",children:[r.jsx("span",{className:"font-medium",children:p.label||p.id}),r.jsx(Fe,{tone:p.kind==="web"?"info":p.kind==="deck"?"success":"muted",children:p.kind}),r.jsxs("span",{className:"font-mono text-xs text-muted-fg",children:["…",p.token_suffix]}),r.jsxs("span",{className:"ml-auto text-xs text-muted-fg",children:[f("settings.devices_last_seen")," ",p.last_seen?new Date(p.last_seen).toLocaleString():f("settings.devices_never")]}),r.jsx(me,{size:"sm",variant:"destructive",onClick:()=>u(p.id),children:f("settings.devices_revoke")})]},p.id))}),r.jsx(n7,{open:l,onClose:()=>c(!1),onPaired:()=>o()})]})}const s7=[{key:"daemon",label:"Daemon",description:"~/.apx/config.json. General APX config.",fields:[{path:"port",label:"Port",kind:"number",placeholder:"7430"},{path:"host",label:"Host",placeholder:"127.0.0.1"},{path:"log_level",label:"Log level",placeholder:"info"},{path:"user.language",label:"Language",placeholder:"en"},{path:"user.locale",label:"Locale",placeholder:"en-US"},{path:"user.timezone",label:"Timezone",placeholder:"America/Argentina/Salta"}]},{key:"super-agent",label:"Super-agent",fields:[{path:"super_agent.enabled",label:"Super-agent enabled",kind:"boolean"},{path:"super_agent.model",label:"Model",placeholder:"gemini:gemini-2.5-flash"},{path:"super_agent.permission_mode",label:"Permission mode",kind:"select",options:Ux.map(e=>({value:e,label:e}))},{path:"super_agent.system",label:"Extra prompt",kind:"textarea"}]},{key:"telegram",label:"Telegram",fields:[{path:"telegram.enabled",label:"Polling enabled",kind:"boolean"},{path:"telegram.poll_interval_ms",label:"Poll interval ms",kind:"number",placeholder:"1500"},{path:"telegram.respond_with_engine",label:"Respond with engine",kind:"boolean"},{path:"telegram.route_to_agent",label:"Route to agent",placeholder:"master"},{path:"telegram.channels.0.chat_id",label:"Default chat ID"},{path:"telegram.channels.0.bot_token",label:"Default bot token",kind:"password"}]},{key:"engines",label:"Engines",fields:[{path:"engines.anthropic.api_key",label:"Anthropic API key",kind:"password"},{path:"engines.openai.api_key",label:"OpenAI API key",kind:"password"},{path:"engines.openai.base_url",label:"OpenAI base URL",placeholder:"https://api.openai.com/v1"},{path:"engines.groq.api_key",label:"Groq API key",kind:"password"},{path:"engines.groq.base_url",label:"Groq base URL",placeholder:"https://api.groq.com/openai/v1"},{path:"engines.openrouter.api_key",label:"OpenRouter API key",kind:"password"},{path:"engines.openrouter.base_url",label:"OpenRouter base URL",placeholder:"https://openrouter.ai/api/v1"},{path:"engines.gemini.api_key",label:"Gemini API key",kind:"password"},{path:"engines.ollama.base_url",label:"Ollama URL",placeholder:"http://localhost:11434"}]}];function r7(){const{config:e,isLoading:t,patch:s,mutate:o}=Vr();if(t)return r.jsx(ot,{});const l=async c=>{const u={};for(const[p,m]of Object.entries(tv(c)))Ha(m)||(u[p]=m);await s(u),o()};return r.jsx(Ye,{title:f("global_config.title"),description:f("settings_ui.global_config_desc"),children:r.jsx(fx,{sections:s7,source:e,jsonTitle:"~/.apx/config.json",jsonDescription:f("settings_ui.global_json_desc"),onSaveFields:async(c,u)=>{await s(c,u),o()},onSaveJson:l})})}function o7(){const e=lt(),{health:t,isUp:s}=kC(),o=async()=>{try{await Hl.reload(),e.success(f("settings.advanced.reload_success"))}catch(l){e.error(l.message)}};return r.jsxs("div",{className:"space-y-6",children:[r.jsx(Ye,{title:f("daemon.version"),action:r.jsx(me,{size:"sm",onClick:o,children:f("common.reload")}),children:r.jsxs("div",{className:"grid grid-cols-3 gap-3 text-sm",children:[r.jsx(Eh,{label:f("daemon.version"),value:t?.version||"—"}),r.jsx(Eh,{label:f("daemon.uptime"),value:t?`${t.uptime_s}s`:"—"}),r.jsx(Eh,{label:f("daemon.status"),value:f(s?"daemon.running":"daemon.down"),ok:s})]})}),r.jsx(r7,{})]})}function Eh({label:e,value:t,ok:s}){return r.jsxs("div",{className:"rounded-md border border-border bg-muted/30 p-3",children:[r.jsx("div",{className:"text-xs uppercase tracking-wide text-muted-fg",children:e}),r.jsxs("div",{className:"mt-1 flex items-center gap-2 text-base font-medium",children:[s!==void 0&&r.jsx(Fc,{ok:s}),r.jsx("span",{children:t})]})]})}function l7(){const e=lt(),{theme:t,set:s}=Hx(),[o,l]=x.useState(""),[c,u]=x.useState(Z2()),p=()=>{const g=o.trim();if(g){fo(g);try{localStorage.setItem(Rn.token,g)}catch{}l(""),e.success(f("settings.token_saved"))}},m=g=>{K2(g),u(g),window.location.reload()};return r.jsxs("div",{className:"grid gap-6 xl:grid-cols-2 xl:items-start",children:[r.jsx(Ye,{title:f("settings.appearance"),children:r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx(me,{variant:t==="light"?"primary":"secondary",onClick:()=>s("light"),children:f("settings.light_mode")}),r.jsx(me,{variant:t==="dark"?"primary":"secondary",onClick:()=>s("dark"),children:f("settings.dark_mode")})]})}),r.jsx(Ye,{title:f("settings.language"),children:r.jsx("div",{className:"flex items-center gap-2",children:Q2.map(g=>r.jsx(me,{variant:c===g.value?"primary":"secondary",onClick:()=>m(g.value),children:g.label},g.value))})}),r.jsxs(Ye,{title:f("settings.token"),description:f("settings.token_sub"),children:[r.jsx(pe,{label:f("settings_ui.bearer_label"),children:r.jsx(Oe,{type:"password",placeholder:Bb()?f("settings.token_active"):f("settings.token_paste"),value:o,onChange:g=>l(g.target.value),className:"font-mono",onKeyDown:g=>{g.key==="Enter"&&p()}})}),r.jsx("div",{className:"mt-2",children:r.jsx(me,{variant:"primary",onClick:p,children:f("common.save")})})]})]})}const i7=[{title:f("settings.account_section"),items:[{key:"identity",label:f("settings.tabs.identity"),icon:Bx},{key:"appearance",label:f("settings.appearance"),icon:NM}]},{title:f("settings.agents_section"),items:[{key:"super_agent",label:f("settings.tabs.super_agent"),icon:hn},{key:"engines",label:f("settings.tabs.engines"),icon:Ox},{key:"memory",label:"Memory (RAG)",icon:Ok},{key:"skills",label:"Skills (RAG)",icon:fs}]},{title:f("settings.channels_section"),items:[{key:"telegram",label:f("settings.tabs.telegram"),icon:Fa},{key:"devices",label:f("settings.tabs.devices"),icon:OM}]},{title:f("settings.advanced_section"),items:[{key:"advanced",label:f("settings.tabs.advanced"),icon:Gd}]}],c7=new Set(["engines","telegram","memory","skills","appearance"]),u7={identity:()=>r.jsx(b8,{}),super_agent:()=>r.jsx(v8,{}),engines:()=>r.jsx(QC,{}),memory:()=>r.jsx(j8,{}),skills:()=>r.jsx(k8,{}),telegram:()=>r.jsx(R8,{}),devices:()=>r.jsx(a7,{}),appearance:()=>r.jsx(l7,{}),advanced:()=>r.jsx(o7,{})};function d7(){const e=Qn(),t=Kn(),s=f7(t.pathname),o=u7[s],{collapsed:l,toggle:c}=Lb(Rn.sidebarCollapsed+".settings");return r.jsx(zC,{sections:i7,active:s,onChange:u=>e(u==="identity"?"/settings":`/settings/${p7(u)}`),collapsed:l,onToggleCollapse:c,contentClassName:`w-full ${c7.has(s)?"":"mx-auto max-w-3xl"} space-y-6 p-6 pt-3`,testId:`settings-tab-${s}`,children:r.jsx(o,{})})}function f7(e){switch(e.split("/").filter(Boolean)[1]||"identity"){case"super-agent":return"super_agent";case"engines":return"engines";case"memory":return"memory";case"skills":return"skills";case"telegram":return"telegram";case"devices":return"devices";case"appearance":return"appearance";case"config":case"advanced":return"advanced";default:return"identity"}}function p7(e){return e==="super_agent"?"super-agent":e==="advanced"?"config":e}function m7({engines:e,order:t,mode:s,configuredProvider:o,onSetMode:l,onSetDefault:c,onToggleEnabled:u,onReorder:p,onConfigure:m,busy:g}){const h=new Map(e.map(E=>[E.id,E])),b=[...t.filter(E=>h.has(E)),...e.map(E=>E.id).filter(E=>!t.includes(E))],_=s==="chain",k=(E,j)=>{const w=b.indexOf(E),S=w+j;if(w<0||S<0||S>=b.length)return;const C=[...b];[C[w],C[S]]=[C[S],C[w]],p(C)};return r.jsxs("div",{className:"space-y-3",children:[r.jsx("div",{className:"rounded-lg border border-border p-3",children:r.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[r.jsxs("div",{className:"min-w-0",children:[r.jsx("div",{className:"text-sm font-medium",children:f("voice_ui.selection_mode")}),r.jsx("div",{className:"text-xs text-muted-fg",children:f(_?"voice_ui.mode_chain_desc":"voice_ui.mode_single_desc")})]}),r.jsxs("div",{className:"flex shrink-0 overflow-hidden rounded-md border border-border",role:"group",children:[r.jsx("button",{type:"button",onClick:()=>l("chain"),disabled:g,"data-testid":"voice-mode-chain",className:De("px-3 py-1.5 text-xs font-medium transition-colors",_?"bg-emerald-500/15 text-emerald-300":"text-muted-fg hover:text-fg"),children:f("voice_ui.mode_chain_btn")}),r.jsx("button",{type:"button",onClick:()=>l("single"),disabled:g,"data-testid":"voice-mode-single",className:De("border-l border-border px-3 py-1.5 text-xs font-medium transition-colors",_?"text-muted-fg hover:text-fg":"bg-emerald-500/15 text-emerald-300"),children:f("voice_ui.mode_single_btn")})]})]})}),r.jsx("div",{className:"space-y-2",children:b.map((E,j)=>{const w=h.get(E),S=ff[E]||{name:E,note:""},C=!_&&o===E,N=E==="mock";return r.jsxs("div",{"data-testid":`voice-provider-${E}`,className:De("flex items-center gap-3 rounded-lg border px-3 py-2.5",C?"border-emerald-500/50 bg-emerald-500/10":"border-border",_&&!N&&!w.enabled&&"opacity-60"),children:[_&&r.jsxs("div",{className:"flex flex-col",children:[r.jsx("button",{type:"button",onClick:()=>k(E,-1),disabled:g||j===0,"aria-label":f("voice_ui.move_up"),"data-testid":`voice-provider-${E}-up`,className:"text-muted-fg hover:text-fg disabled:opacity-30",children:r.jsx(Mk,{className:"size-3.5"})}),r.jsx("button",{type:"button",onClick:()=>k(E,1),disabled:g||j===b.length-1,"aria-label":f("voice_ui.move_down"),"data-testid":`voice-provider-${E}-down`,className:"text-muted-fg hover:text-fg disabled:opacity-30",children:r.jsx(Zs,{className:"size-3.5"})})]}),r.jsx(Fc,{ok:w.available?!0:w.configured?!1:null}),r.jsxs("div",{className:"min-w-0 flex-1",children:[r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx("span",{className:"text-sm font-medium",children:S.name}),S.local&&r.jsx(Fe,{tone:"info",children:f("voice_ui.badge_local")}),w.available?r.jsx(Fe,{tone:"success",children:f("voice_ui.badge_available")}):w.configured?r.jsx(Fe,{tone:"warning",children:f("voice_ui.badge_unavailable")}):r.jsx(Fe,{tone:"muted",children:f("voice_ui.badge_not_configured")}),C&&r.jsx(Fe,{tone:"success",children:f("voice_ui.badge_default")})]}),r.jsx("div",{className:"truncate text-xs text-muted-fg",children:S.note})]}),r.jsxs("div",{className:"flex shrink-0 items-center gap-2",children:[_?r.jsx(Qt,{checked:N?!0:w.enabled,onChange:R=>u(E,R),disabled:g||N}):!C&&r.jsxs(me,{size:"sm",variant:"ghost",onClick:()=>c(E),disabled:g,"data-testid":`voice-provider-${E}-default`,children:[r.jsx(WA,{className:"size-3.5"})," ",f("voice_ui.set_as_default")]}),C&&r.jsx(Mx,{className:"size-4 text-emerald-400"}),r.jsxs(me,{size:"sm",variant:"secondary",onClick:()=>m(E),"data-testid":`voice-provider-${E}-config`,children:[r.jsx(MM,{className:"size-3.5"})," ",f("voice_ui.configure")]})]})]},E)})})]})}function Ma(e){return typeof e=="string"?e:e==null?"":String(e)}function g7({open:e,providerId:t,config:s,onClose:o,onSave:l}){const[c,u]=x.useState(!1),[p,m]=x.useState(null),[g,h]=x.useState(""),[b,_]=x.useState({});if(x.useEffect(()=>{if(!e||!t)return;m(null),h("");const R=s||{};if(t==="piper"){const A=R;_({bin:Ma(A.bin),model:Ma(A.model),speaker:Ma(A.speaker)})}else if(t==="elevenlabs"){const A=R;_({model:Ma(A.model),voice_id:Ma(A.voice_id),output_format:Ma(A.output_format)})}else if(t==="openai"){const A=R;_({model:Ma(A.model)||"tts-1",voice:Ma(A.voice)||"alloy",format:Ma(A.format)||"mp3"})}else if(t==="gemini"){const A=R;_({model:Ma(A.model),voice:Ma(A.voice)||"Kore",style:Ma(A.style)})}else _({})},[e,t,s]),!t)return null;const k=ff[t],E=`voice.tts.${t}`,j=R=>_(A=>({...A,...R})),w=t!=="piper"&&t!=="mock",S=w&&Ha(s?.api_key),C=S?f("voice_ui.api_key_set",{suffix:ql(s?.api_key)??""}):f("voice_ui.api_key_label"),N=async()=>{u(!0),m(null);try{const R={},A=[],T=(M,z)=>{z.trim()?R[`${E}.${M}`]=z.trim():A.push(`${E}.${M}`)};t==="piper"?(T("bin",b.bin),T("model",b.model),b.speaker.trim()?R[`${E}.speaker`]=b.speaker.trim():A.push(`${E}.speaker`)):t==="elevenlabs"?(T("model",b.model),T("voice_id",b.voice_id),T("output_format",b.output_format)):t==="openai"?(T("model",b.model),T("voice",b.voice),T("format",b.format)):t==="gemini"&&(T("model",b.model),T("voice",b.voice),T("style",b.style)),w&&g.trim()&&(R[`${E}.api_key`]=g.trim()),await l({set:R,unset:A}),o()}catch(R){m(R.message||f("voice_ui.err_save"))}finally{u(!1)}};return r.jsx(An,{open:e,onClose:o,title:f("voice_screen.configure_provider",{name:k?.name||t||""}),description:k?.note,size:"md",footer:r.jsxs(r.Fragment,{children:[r.jsx(me,{variant:"ghost",onClick:o,disabled:c,children:f("common.cancel")}),r.jsx(me,{variant:"primary",onClick:N,loading:c,"data-testid":"voice-provider-save",children:f("common.save")})]}),children:r.jsxs("div",{className:"space-y-3",children:[t==="piper"&&r.jsxs(r.Fragment,{children:[r.jsx(pe,{label:f("voice_ui.piper_bin_label"),hint:f("voice_ui.piper_bin_hint"),children:r.jsx(Oe,{value:b.bin,onChange:R=>j({bin:R.target.value}),placeholder:"piper"})}),r.jsx(pe,{label:f("voice_ui.piper_model_label"),hint:f("voice_ui.piper_model_hint"),children:r.jsx(Oe,{value:b.model,onChange:R=>j({model:R.target.value}),placeholder:"/abs/path/voice.onnx"})}),r.jsx(pe,{label:f("voice_ui.piper_speaker_label"),hint:f("voice_ui.piper_speaker_hint"),children:r.jsx(Oe,{value:b.speaker,onChange:R=>j({speaker:R.target.value}),placeholder:"0"})})]}),t==="elevenlabs"&&r.jsxs(r.Fragment,{children:[r.jsx(pe,{label:f("voice_ui.api_key_label"),hint:S?f("voice_ui.api_key_keep_hint"):f("voice_ui.api_key_secret_hint",{env:"ELEVENLABS_API_KEY"}),children:r.jsx(Oe,{type:"password",autoComplete:"new-password",value:g,onChange:R=>h(R.target.value),placeholder:C})}),r.jsx(pe,{label:f("voice_ui.model_label"),children:r.jsx(St,{value:b.model||"",onChange:R=>j({model:R}),options:TD.map(R=>({value:R,label:R})),placeholder:"eleven_multilingual_v2"})}),r.jsx(pe,{label:f("voice_ui.voice_id_label"),hint:f("voice_ui.voice_id_hint"),children:r.jsx(Oe,{value:b.voice_id,onChange:R=>j({voice_id:R.target.value}),placeholder:"EXAVITQu4vr4xnSDxMaL"})}),r.jsx(pe,{label:f("voice_ui.output_format_label"),children:r.jsx(Oe,{value:b.output_format,onChange:R=>j({output_format:R.target.value}),placeholder:"mp3_44100_128"})})]}),t==="openai"&&r.jsxs(r.Fragment,{children:[r.jsx(pe,{label:f("voice_ui.api_key_label"),hint:S?f("voice_ui.api_key_keep_hint"):f("voice_ui.api_key_reuse_hint",{engine:"engines.openai.api_key",env:"OPENAI_API_KEY"}),children:r.jsx(Oe,{type:"password",autoComplete:"new-password",value:g,onChange:R=>h(R.target.value),placeholder:C})}),r.jsx(pe,{label:f("voice_ui.model_label"),children:r.jsx(St,{value:b.model||"tts-1",onChange:R=>j({model:R}),options:AD.map(R=>({value:R,label:R}))})}),r.jsx(pe,{label:f("voice_ui.voice_label"),children:r.jsx(St,{value:b.voice||"alloy",onChange:R=>j({voice:R}),options:ND.map(R=>({value:R,label:R}))})}),r.jsx(pe,{label:f("voice_ui.format_label"),children:r.jsx(St,{value:b.format||"mp3",onChange:R=>j({format:R}),options:["mp3","opus","aac","flac","wav"].map(R=>({value:R,label:R}))})})]}),t==="gemini"&&r.jsxs(r.Fragment,{children:[r.jsx(pe,{label:f("voice_ui.api_key_label"),hint:S?f("voice_ui.api_key_keep_hint"):f("voice_ui.api_key_reuse_hint",{engine:"engines.gemini.api_key",env:"GEMINI_API_KEY"}),children:r.jsx(Oe,{type:"password",autoComplete:"new-password",value:g,onChange:R=>h(R.target.value),placeholder:C})}),r.jsx(pe,{label:f("voice_ui.model_label"),hint:f("voice_ui.gemini_model_hint"),children:r.jsx(Oe,{value:b.model,onChange:R=>j({model:R.target.value}),placeholder:"gemini-2.5-flash-preview-tts"})}),r.jsx(pe,{label:f("voice_ui.voice_label"),children:r.jsx(St,{value:b.voice||"Kore",onChange:R=>j({voice:R}),options:RD.map(R=>({value:R,label:R}))})}),r.jsx(pe,{label:f("voice_ui.style_label"),hint:f("voice_ui.style_hint"),children:r.jsx(Un,{rows:2,value:b.style||"",onChange:R=>j({style:R.target.value}),placeholder:f("voice_ui.style_ph")})})]}),t==="mock"&&r.jsx("p",{className:"text-sm text-muted-fg",children:f("voice_ui.mock_desc")}),p&&r.jsx("div",{className:"rounded-md border border-destructive/40 bg-destructive/10 px-3 py-2 text-xs text-destructive",children:p})]})})}function h7(){const e=x.useRef(null),t=x.useRef(null),[s,o]=x.useState(!1),[l,c]=x.useState(!1),u=x.useCallback(()=>{t.current&&(URL.revokeObjectURL(t.current),t.current=null)},[]);x.useEffect(()=>()=>{e.current&&(e.current.pause(),e.current=null),u()},[u]);const p=x.useCallback(async g=>{c(!0);try{u();const h=await OD(g);t.current=h,e.current||(e.current=new Audio);const b=e.current;b.src=h,b.onended=()=>o(!1),b.onerror=()=>o(!1),await b.play(),o(!0)}finally{c(!1)}},[u]),m=x.useCallback(()=>{e.current&&(e.current.pause(),e.current.currentTime=0),o(!1)},[]);return{play:p,stop:m,playing:s,loading:l}}function x7({engines:e,defaultProvider:t,mode:s}){const o=lt(),{play:l,stop:c,playing:u,loading:p}=h7(),[m,g]=x.useState(f("voice_ui.test_default_text")),[h,b]=x.useState(""),[_,k]=x.useState(""),[E,j]=x.useState(!1),[w,S]=x.useState(null),N=[{value:"",label:s==="single"&&t&&t!=="auto"?f("voice_ui.test_default_engine",{name:ff[t]?.name||t}):f("voice_ui.test_default_chain")},...e.map(A=>({value:A.id,label:`${ff[A.id]?.name||A.id}${A.available?"":f("voice_ui.test_unavailable_suffix")}`}))],R=async()=>{const A=m.trim();if(!A){o.error(f("voice_ui.test_empty_error"));return}j(!0);try{const T=await uC.say({text:A,provider:h||void 0,style:_.trim()||void 0});S(T),await l(T.audio_path)}catch(T){o.error(T.message||f("voice_ui.test_synth_error"))}finally{j(!1)}};return r.jsxs("div",{className:"space-y-3",children:[r.jsxs("div",{className:"grid gap-3 sm:grid-cols-2",children:[r.jsx(pe,{label:f("voice_ui.test_engine_label"),hint:f("voice_ui.test_engine_hint"),children:r.jsx(St,{value:h,onChange:b,options:N})}),r.jsx(pe,{label:f("voice_ui.test_style_label"),hint:f("voice_ui.test_style_hint"),children:r.jsx(Oe,{value:_,onChange:A=>k(A.target.value),placeholder:f("voice_ui.style_ph"),"data-testid":"voice-test-style"})})]}),r.jsx(pe,{label:f("voice_ui.test_text_label"),children:r.jsx(Un,{rows:2,value:m,onChange:A=>g(A.target.value),placeholder:f("voice_ui.test_text_ph"),"data-testid":"voice-test-input"})}),r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsxs(me,{variant:"primary",onClick:R,loading:E,disabled:p,"data-testid":"voice-test-say",children:[r.jsx(IM,{className:"size-4"})," ",f("voice_ui.say_this")]}),u?r.jsxs(me,{variant:"secondary",onClick:c,"data-testid":"voice-test-stop",children:[r.jsx(Vk,{className:"size-4"})," ",f("voice_ui.stop")]}):w?r.jsxs(me,{variant:"secondary",onClick:()=>l(w.audio_path),loading:p,"data-testid":"voice-test-replay",children:[r.jsx(Px,{className:"size-4"})," ",f("voice_ui.replay")]}):null,w&&r.jsxs("span",{className:"text-xs text-muted-fg",children:[f("voice_ui.engine_result"),": ",r.jsx("strong",{children:w.provider}),w.duration_s?` · ${w.duration_s.toFixed(1)}s`:""]})]})]})}const b7=()=>[{value:"auto",label:f("voice_ui.stt_provider_auto")},{value:"local",label:f("voice_ui.stt_provider_local")},{value:"openai",label:f("voice_ui.stt_provider_openai")}],v7=()=>[{value:"auto",label:f("voice_ui.lang_auto")},{value:"es",label:f("voice_ui.lang_es")},{value:"en",label:f("voice_ui.lang_en")},{value:"pt",label:f("voice_ui.lang_pt")},{value:"fr",label:f("voice_ui.lang_fr")},{value:"it",label:f("voice_ui.lang_it")},{value:"de",label:f("voice_ui.lang_de")}];function _7({config:e,onPatch:t,busy:s}){const o=e.provider||"auto",l=e.local||{},c=l.model||"small",u=l.language||"auto",p=o!=="openai";return r.jsxs("div",{className:"space-y-3",children:[r.jsx(pe,{label:f("voice_ui.stt_engine_label"),hint:f("voice_ui.stt_engine_hint"),children:r.jsx(St,{value:o,onChange:m=>t({"transcription.provider":m}),options:b7(),disabled:s,className:"max-w-md"})}),p&&r.jsxs("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[r.jsx(pe,{label:f("voice_ui.stt_model_label"),hint:f("voice_ui.stt_model_hint"),children:r.jsx(St,{value:c,onChange:m=>t({"transcription.local.model":m}),options:MD.map(m=>({value:m,label:m})),disabled:s})}),r.jsx(pe,{label:f("voice_ui.stt_language_label"),hint:f("voice_ui.stt_language_hint"),children:r.jsx(St,{value:u,onChange:m=>t({"transcription.local.language":m}),options:v7(),disabled:s})})]})]})}function y7(){const e=lt(),{config:t,isLoading:s,patch:o,mutate:l}=Vr(),{data:c,isLoading:u,error:p,mutate:m}=Qe("/tts/providers",()=>uC.providers()),[g,h]=x.useState(null),[b,_]=x.useState(!1),k=t,E=k.voice?.tts||{},j=k.transcription||{},w=c?.configured_provider||E.provider||"auto",S=c?.mode||E.mode||"chain",C=c?.engines||[],N=c?.order||[],R=x.useMemo(()=>g?E[g]||{}:{},[g,E]),A=async I=>{_(!0);try{await o({"voice.tts.provider":I,"voice.tts.mode":"single"}),await m(),e.success(f("voice_ui.toast_default_engine",{id:I}))}catch(B){e.error(B.message)}finally{_(!1)}},T=async I=>{_(!0);try{const B={"voice.tts.mode":I};if(I==="single"&&(w==="auto"||!w)){const V=C.find(H=>H.available)?.id||N[0]||"mock";B["voice.tts.provider"]=V}await o(B),await m(),e.success(f(I==="chain"?"voice_ui.toast_mode_chain":"voice_ui.toast_mode_single"))}catch(B){e.error(B.message)}finally{_(!1)}},M=async(I,B)=>{_(!0);try{await o({[`voice.tts.${I}.enabled`]:B}),await m()}catch(V){e.error(V.message)}finally{_(!1)}},z=async I=>{_(!0);try{await o({"voice.tts.order":I}),await m()}catch(B){e.error(B.message)}finally{_(!1)}},P=async({set:I,unset:B})=>{await o(I,B.length?B:void 0),await m(),await l(),e.success(f("voice_ui.toast_config_saved"))},D=async(I,B)=>{try{await o(I,B),e.success(f("voice_ui.toast_transcription_updated"))}catch(V){e.error(V.message)}};return r.jsxs("div",{className:"p-6","data-testid":"screen-voice",children:[r.jsxs("div",{className:"grid gap-6 xl:grid-cols-2",children:[r.jsx(Ye,{title:f("voice_screen.providers_title"),description:f("voice_ui.providers_desc"),children:u||s?r.jsx(ot,{}):p?r.jsx(xt,{children:f("voice_ui.providers_load_error",{msg:p.message})}):r.jsx(m7,{engines:C,order:N,mode:S,configuredProvider:w,onSetMode:T,onSetDefault:A,onToggleEnabled:M,onReorder:z,onConfigure:I=>h(I),busy:b})}),r.jsxs("div",{className:"space-y-6",children:[r.jsx(Ye,{title:f("voice_screen.test_title"),description:f("voice_ui.test_desc"),children:r.jsx(x7,{engines:C,defaultProvider:w,mode:S})}),r.jsx(Ye,{title:f("voice_screen.stt_title"),description:f("voice_ui.stt_desc"),children:s?r.jsx(ot,{}):r.jsx(_7,{config:j,onPatch:D})})]})]}),r.jsx(g7,{open:!!g,providerId:g,config:R,onClose:()=>h(null),onSave:P})]})}const Nh={status:()=>he.get("/desktop/status"),autostartGet:()=>he.get("/desktop/autostart"),autostartSet:e=>he.post("/desktop/autostart",{enable:e})};function j7(e=30){return he.get(`/messages/global?channel=desktop&limit=${e}`)}const Pw="CommandOrControl+G",w7=()=>[{value:"left",label:f("modules_ui.desktop_pos_left")},{value:"center",label:f("modules_ui.desktop_pos_center")},{value:"right",label:f("modules_ui.desktop_pos_right")}],k7=()=>[{value:"light",label:f("modules_ui.desktop_theme_light")},{value:"dark",label:f("modules_ui.desktop_theme_dark")}];function S7(){const e=lt(),{config:t,isLoading:s,patch:o}=Vr(),l=t,c=l.desktop?.shortcut||l.overlay?.shortcut||Pw,u=l.desktop?.enabled!==!1,p=l.desktop?.theme||"light",m=l.desktop?.position||"right",{data:g,isLoading:h,mutate:b}=Qe("/desktop/status",()=>Nh.status(),{refreshInterval:5e3}),_=!!g?.running,{data:k,mutate:E}=Qe("/desktop/autostart",()=>Nh.autostartGet()),{data:j,isLoading:w,mutate:S}=Qe("/messages/global?channel=desktop",()=>j7(40),{refreshInterval:8e3}),[C,N]=x.useState(c),[R,A]=x.useState(!1),[T,M]=x.useState(!1);x.useEffect(()=>N(c),[c]);const z=async()=>{const I=C.trim();if(!(!I||I===c)){A(!0);try{await o({"desktop.shortcut":I}),e.success(f("modules_ui.desktop_shortcut_saved"))}catch(B){e.error(B.message)}finally{A(!1)}}},P=async(I,B,V)=>{A(!0);try{await o({[I]:B}),e.success(V)}catch(H){e.error(H.message)}finally{A(!1)}},D=async I=>{M(!0);try{await Nh.autostartSet(I),await E(),e.success(f(I?"modules_ui.desktop_autostart_on":"modules_ui.desktop_autostart_off"))}catch(B){e.error(B.message)}finally{M(!1)}};return r.jsx("div",{className:"mx-auto max-w-6xl space-y-6 p-6","data-testid":"screen-desktop",children:r.jsxs("div",{className:"grid gap-6 xl:grid-cols-[1fr_1fr]",children:[r.jsxs("div",{className:"space-y-6",children:[r.jsxs(Ye,{title:f("desktop_screen.status_title"),description:f("modules_ui.desktop_status_desc"),children:[h?r.jsx(ot,{}):r.jsxs("div",{className:"flex items-center gap-2 text-sm",children:[r.jsx(Fc,{ok:_}),r.jsx("span",{className:"font-medium",children:f(_?"modules_ui.desktop_running":"modules_ui.desktop_stopped")}),r.jsx("button",{type:"button",onClick:()=>b(),className:"ml-2 text-xs text-muted-fg underline-offset-2 hover:underline",children:f("modules_ui.desktop_refresh")})]}),r.jsxs("p",{className:"mt-3 text-xs text-muted-fg",children:[f("modules_ui.desktop_from_terminal")," ",r.jsx(Aj,{children:"apx desktop start"})," · ",r.jsx(Aj,{children:"apx desktop --debug"})]})]}),r.jsx(Ye,{title:f("desktop_screen.autostart_title"),description:f("modules_ui.desktop_autostart_desc"),children:k?r.jsxs("div",{className:"flex items-center justify-between gap-3",children:[r.jsx(Qt,{checked:k.enabled,onChange:D,disabled:T,label:k.enabled?f("common.enabled"):f("common.disabled")}),r.jsx("span",{className:"text-xs text-muted-fg",children:f("modules_ui.desktop_platform",{platform:k.platform})})]}):r.jsx(ot,{})}),r.jsx(Ye,{title:f("desktop_screen.shortcut_title"),description:f("modules_ui.desktop_shortcut_desc"),children:s?r.jsx(ot,{}):r.jsxs("div",{className:"flex items-end gap-3",children:[r.jsx("div",{className:"flex-1",children:r.jsx(pe,{label:f("modules_ui.desktop_accelerator"),hint:f("modules_ui.desktop_accelerator_hint"),children:r.jsx(Oe,{value:C,onChange:I=>N(I.target.value),onKeyDown:I=>{I.key==="Enter"&&z()},placeholder:Pw,className:"max-w-md font-mono",disabled:R})})}),r.jsx(me,{variant:"primary",onClick:z,loading:R,disabled:!C.trim()||C.trim()===c,children:f("common.save")})]})}),r.jsx(Ye,{title:f("desktop_screen.appearance_title"),description:f("modules_ui.desktop_appearance_desc"),children:s?r.jsx(ot,{}):r.jsxs("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[r.jsx(pe,{label:f("modules_ui.desktop_theme"),hint:f("modules_ui.desktop_restart_apply"),children:r.jsx(St,{value:p,onChange:I=>P("desktop.theme",I,f("modules_ui.desktop_theme_set",{value:I})),options:k7(),disabled:R})}),r.jsx(pe,{label:f("modules_ui.desktop_position"),hint:f("modules_ui.desktop_position_hint"),children:r.jsx(St,{value:m,onChange:I=>P("desktop.position",I,f("modules_ui.desktop_position_set",{value:I})),options:w7(),disabled:R})})]})}),r.jsx(Ye,{title:f("desktop_screen.activation_title"),description:f("modules_ui.desktop_activation_desc"),children:s?r.jsx(ot,{}):r.jsxs("div",{className:"space-y-3",children:[r.jsx(Qt,{checked:u,onChange:I=>P("desktop.enabled",I,f(I?"modules_ui.desktop_enabled_toast":"modules_ui.desktop_disabled_toast")),disabled:R,label:f(u?"modules_ui.desktop_plugin_on":"modules_ui.desktop_plugin_off")}),r.jsxs("p",{className:"text-xs text-muted-fg",children:[f("modules_ui.desktop_stt_engine")," ",r.jsx(Ax,{to:"/m/voice",className:"font-medium text-fg underline underline-offset-2",children:f("nav.modules.voice")})," ",f("modules_ui.desktop_stt_engine_suffix")]})]})})]}),r.jsx("div",{children:r.jsx(Ye,{title:f("desktop_screen.last_conv_title"),description:f("modules_ui.desktop_last_conv_desc"),action:r.jsx("button",{type:"button",onClick:()=>S(),className:"text-xs text-muted-fg underline-offset-2 hover:underline",children:f("modules_ui.desktop_refresh")}),children:r.jsx(C7,{messages:j||[],loading:w})})})]})})}function C7({messages:e,loading:t}){const s=x.useMemo(()=>N7(e),[e]);return t?r.jsx(ot,{}):e.length?r.jsx("div",{className:"space-y-3 max-h-[560px] overflow-y-auto pr-1",children:s.slice().reverse().map((o,l)=>r.jsx("div",{className:"rounded-lg border border-border bg-card/40 p-3",children:o.map((c,u)=>r.jsx(E7,{m:c},u))},l))}):r.jsx(xt,{children:f("modules_ui.desktop_no_messages")})}function E7({m:e}){const t=e.direction==="in",s=R7(e.ts);return r.jsxs("div",{className:"py-1",children:[r.jsxs("div",{className:"flex items-baseline gap-2 text-[11px] text-muted-fg",children:[r.jsx("span",{className:"font-semibold",children:f(t?"modules_ui.desktop_you":"modules_ui.desktop_roby")}),r.jsx("span",{children:s})]}),r.jsx("div",{className:"mt-0.5 text-sm leading-snug whitespace-pre-wrap "+(t?"text-muted-fg":"text-fg"),children:(e.body||"").trim()||r.jsx("span",{className:"italic opacity-50",children:f("modules_ui.desktop_empty_msg")})})]})}function N7(e){const t=[];for(const s of e)s.direction==="in"||!t.length?t.push([s]):t[t.length-1].push(s);return t}function R7(e){try{const t=new Date(e);return t.toDateString()===new Date().toDateString()?t.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"}):t.toLocaleString([],{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}catch{return""}}function T7(e){return e<60?`${e}s`:e<3600?`${Math.floor(e/60)}m`:`${Math.floor(e/3600)}h ${Math.floor(e%3600/60)}m`}function A7({manifest:e}){const t=e.daemon,s=e.safety;return r.jsxs("div",{"data-testid":"deck-daemon-card",className:"rounded-xl border border-border bg-muted/10 px-4 py-3 text-xs",children:[r.jsxs("div",{className:"mb-2 flex flex-wrap items-center justify-between gap-2",children:[r.jsxs("span",{className:"font-semibold text-foreground",children:[t.name," ",r.jsxs("span",{className:"font-normal text-muted-fg",children:["v",t.version]})]}),r.jsxs("div",{className:"flex items-center gap-1.5",children:[r.jsx("span",{className:"size-2 rounded-full bg-emerald-500"}),r.jsx("span",{className:"text-muted-fg",children:f("modules_ui.deck_daemon_active",{uptime:T7(t.uptime_s)})})]})]}),r.jsxs("div",{className:"flex flex-wrap gap-2",children:[r.jsxs("span",{className:"text-muted-fg",children:[t.host,":",t.port]}),r.jsx("span",{className:"text-muted-fg",children:"·"}),r.jsxs("span",{className:"text-muted-fg",children:[f("modules_ui.deck_daemon_started")," ",new Date(t.started_at).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})]})]}),r.jsxs("div",{className:"mt-2.5 flex flex-wrap gap-1.5",children:[s.direct_shell===!1&&r.jsx(Fe,{tone:"success",children:f("modules_ui.deck_safety_no_shell")}),s.arbitrary_commands===!1&&r.jsx(Fe,{tone:"success",children:f("modules_ui.deck_safety_no_arbitrary")}),s.dangerous_actions_require_confirmation&&r.jsx(Fe,{tone:"info",children:f("modules_ui.deck_safety_confirm")})]})]})}function M7(e){return e==="available"?"success":e==="configured"?"info":"muted"}function O7(e){return e==="available"?"activo":e==="configured"?"configurado":e==="disabled"?"deshabilitado":"sin configurar"}function z7(e){return e==="voice"?"warning":e==="plugin"?"info":"muted"}function D7({widget:e,onToggle:t}){const s=e.source==="external",[o,l]=x.useState(!1),c=e.user_enabled===!0,u=async p=>{if(!(!t||o)){l(!0);try{await t(p)}finally{l(!1)}}};return r.jsxs("li",{"data-testid":`deck-widget-${e.id}`,className:De("flex items-center gap-3 rounded-lg border px-3 py-2.5 text-sm transition-colors",s?"border-border bg-muted/20 hover:border-muted-fg/30":"border-border/50 bg-muted/10"),children:[r.jsx(et,{content:e.source==="apx"?f("deck_screen.widget_native"):f("deck_screen.widget_external"),children:r.jsx("span",{className:De("size-2 shrink-0 rounded-full",e.source==="apx"?"bg-emerald-500":"bg-sky-400")})}),r.jsxs("div",{className:"min-w-0 flex-1",children:[r.jsx("span",{className:"font-medium",children:e.title}),r.jsx("span",{className:"ml-2 text-xs text-muted-fg",children:e.desktop})]}),r.jsx(Fe,{tone:z7(e.kind),children:e.kind}),r.jsx(Fe,{tone:M7(e.status),children:O7(e.status)}),s?r.jsx("span",{"data-testid":`deck-widget-toggle-${e.id}`,children:r.jsx(Qt,{checked:c,onChange:u,disabled:o||!t})}):r.jsx("span",{className:"w-9 shrink-0","aria-hidden":!0})]})}function L7({desktop:e,widgets:t,onToggle:s}){return t.length===0?null:r.jsxs("div",{"data-testid":`deck-desktop-${e.id}`,className:"space-y-1.5",children:[r.jsx("h3",{className:"text-xs font-semibold uppercase tracking-wide text-muted-fg",children:e.title}),r.jsx("ul",{className:"space-y-1.5",children:t.map(o=>r.jsx(D7,{widget:o,onToggle:o.source==="external"?l=>s(o.id,l):void 0},o.id))})]})}function P7(){const e=lt(),{data:t,error:s,isLoading:o,mutate:l}=Qe("/deck/manifest",()=>Rj.manifest(),{refreshInterval:3e4}),c=async(b,_)=>{try{await Rj.setWidget(b,{enabled:_}),await l(k=>k&&{...k,deck:{...k.deck,widgets:k.deck.widgets.map(E=>E.id===b?{...E,user_enabled:_,status:_?E.daemon_status?"available":"configured":"disabled"}:E)}},{revalidate:!1}),e.success(_?f("modules_ui.deck_widget_enabled",{id:b}):f("modules_ui.deck_widget_disabled",{id:b})),setTimeout(()=>l(),800)}catch(k){const E=k instanceof Error?k.message:f("modules_ui.deck_save_error");e.error(E)}},u=t?.deck.desktops??[],p=t?.deck.widgets??[],m=u.map(b=>({desktop:b,widgets:p.filter(_=>_.desktop===b.id)})),h=p.filter(b=>b.source==="external").filter(b=>b.user_enabled===!0).length;return r.jsxs("div",{className:"mx-auto max-w-4xl space-y-6 p-6","data-testid":"screen-deck",children:[t&&r.jsx(A7,{manifest:t}),r.jsxs(Ye,{title:f("deck_screen.widgets_title"),description:o?f("modules_ui.deck_loading_manifest"):s?f("modules_ui.deck_manifest_error"):f("modules_ui.deck_widgets_summary",{count:p.length,enabled:h}),action:r.jsx(et,{content:f("deck_screen.reload_manifest"),children:r.jsx(me,{size:"sm",variant:"ghost",onClick:()=>l(),disabled:o,"aria-label":f("deck_screen.reload_manifest"),children:r.jsx(cs,{size:14,className:o?"animate-spin":""})})}),children:[o&&r.jsx(ot,{label:f("modules_ui.deck_loading_manifest_full")}),!o&&s&&r.jsxs(xt,{children:[f("modules_ui.deck_manifest_load_failed")," ",r.jsx("button",{type:"button",className:"ml-1 underline",onClick:()=>l(),children:f("modules_ui.deck_retry")})]}),!o&&!s&&p.length===0&&r.jsx(xt,{children:f("modules_ui.deck_no_widgets")}),!o&&!s&&p.length>0&&r.jsx("div",{className:"space-y-5","data-testid":"deck-desktop-list",children:m.filter(b=>b.widgets.length>0).map(b=>r.jsx(L7,{desktop:b.desktop,widgets:b.widgets,onToggle:c},b.desktop.id))})]}),t?.apx&&r.jsx(Ye,{title:f("deck_screen.context_title"),description:f("modules_ui.deck_context_desc"),children:r.jsxs("div",{className:"space-y-2 text-sm","data-testid":"deck-apx-context",children:[r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx("span",{className:"text-muted-fg",children:f("modules_ui.deck_active_project")}),r.jsx("span",{className:"font-medium",children:t.apx.active_project?t.apx.active_project.name:f("modules_ui.deck_none")})]}),r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx("span",{className:"text-muted-fg",children:f("modules_ui.deck_registered_projects")}),r.jsx("span",{className:"font-medium",children:t.apx.projects.length})]}),r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx("span",{className:"text-muted-fg",children:f("modules_ui.deck_active_plugins")}),r.jsx("span",{className:"font-medium",children:Object.keys(t.apx.plugins).join(", ")||"—"})]})]})})]})}function I7(e,t){const s=getComputedStyle(e),o=parseFloat(s.fontSize);return t*o}function B7(e,t){const s=getComputedStyle(e.ownerDocument.documentElement),o=parseFloat(s.fontSize);return t*o}function U7(e){return e/100*window.innerHeight}function H7(e){return e/100*window.innerWidth}function V7(e){switch(typeof e){case"number":return[e,"px"];case"string":{const t=parseFloat(e);return e.endsWith("%")?[t,"%"]:e.endsWith("px")?[t,"px"]:e.endsWith("rem")?[t,"rem"]:e.endsWith("em")?[t,"em"]:e.endsWith("vh")?[t,"vh"]:e.endsWith("vw")?[t,"vw"]:[t,"%"]}}}function gc({groupSize:e,panelElement:t,styleProp:s}){let o;const[l,c]=V7(s);switch(c){case"%":{o=l/100*e;break}case"px":{o=l;break}case"rem":{o=B7(t,l);break}case"em":{o=I7(t,l);break}case"vh":{o=U7(l);break}case"vw":{o=H7(l);break}}return o}function Yn(e){return parseFloat(e.toFixed(3))}function Fl({group:e}){const{orientation:t,panels:s}=e;return s.reduce((o,l)=>(o+=t==="horizontal"?l.element.offsetWidth:l.element.offsetHeight,o),0)}function vx(e){const{panels:t}=e,s=Fl({group:e});return s===0?t.map(o=>({groupResizeBehavior:o.panelConstraints.groupResizeBehavior,collapsedSize:0,collapsible:o.panelConstraints.collapsible===!0,defaultSize:void 0,disabled:o.panelConstraints.disabled,minSize:0,maxSize:100,panelId:o.id})):t.map(o=>{const{element:l,panelConstraints:c}=o;let u=0;if(c.collapsedSize!==void 0){const h=gc({groupSize:s,panelElement:l,styleProp:c.collapsedSize});u=Yn(h/s*100)}let p;if(c.defaultSize!==void 0){const h=gc({groupSize:s,panelElement:l,styleProp:c.defaultSize});p=Yn(h/s*100)}let m=0;if(c.minSize!==void 0){const h=gc({groupSize:s,panelElement:l,styleProp:c.minSize});m=Yn(h/s*100)}let g=100;if(c.maxSize!==void 0){const h=gc({groupSize:s,panelElement:l,styleProp:c.maxSize});g=Yn(h/s*100)}return{groupResizeBehavior:c.groupResizeBehavior,collapsedSize:u,collapsible:c.collapsible===!0,defaultSize:p,disabled:c.disabled,minSize:m,maxSize:g,panelId:o.id}})}function Bt(e,t="Assertion error"){if(!e)throw Error(t)}function _x(e,t){return Array.from(t).sort(e==="horizontal"?q7:$7)}function q7(e,t){const s=e.element.offsetLeft-t.element.offsetLeft;return s!==0?s:e.element.offsetWidth-t.element.offsetWidth}function $7(e,t){const s=e.element.offsetTop-t.element.offsetTop;return s!==0?s:e.element.offsetHeight-t.element.offsetHeight}function CE(e){return e!==null&&typeof e=="object"&&"nodeType"in e&&e.nodeType===Node.ELEMENT_NODE}function EE(e,t){return{x:e.x>=t.left&&e.x<=t.right?0:Math.min(Math.abs(e.x-t.left),Math.abs(e.x-t.right)),y:e.y>=t.top&&e.y<=t.bottom?0:Math.min(Math.abs(e.y-t.top),Math.abs(e.y-t.bottom))}}function F7({orientation:e,rects:t,targetRect:s}){const o={x:s.x+s.width/2,y:s.y+s.height/2};let l,c=Number.MAX_VALUE;for(const u of t){const{x:p,y:m}=EE(o,u),g=e==="horizontal"?p:m;g<c&&(c=g,l=u)}return Bt(l,"No rect found"),l}let Rd;function G7(){return Rd===void 0&&(typeof matchMedia=="function"?Rd=!!matchMedia("(pointer:coarse)").matches:Rd=!1),Rd}function NE(e){const{element:t,orientation:s,panels:o,separators:l}=e,c=_x(s,Array.from(t.children).filter(CE).map(E=>({element:E}))).map(({element:E})=>E),u=[];let p=!1,m=!1,g=-1,h=-1,b=0,_,k=[];{let E=-1;for(const j of c)j.hasAttribute("data-panel")&&(E++,j.hasAttribute("data-disabled")||(b++,g===-1&&(g=E),h=E))}if(b>1){let E=-1;for(const j of c)if(j.hasAttribute("data-panel")){E++;const w=o.find(S=>S.element===j);if(w){if(_){const S=_.element.getBoundingClientRect(),C=j.getBoundingClientRect();let N;if(m){const R=s==="horizontal"?new DOMRect(S.right,S.top,0,S.height):new DOMRect(S.left,S.bottom,S.width,0),A=s==="horizontal"?new DOMRect(C.left,C.top,0,C.height):new DOMRect(C.left,C.top,C.width,0);switch(k.length){case 0:{N=[R,A];break}case 1:{const T=k[0],M=F7({orientation:s,rects:[S,C],targetRect:T.element.getBoundingClientRect()});N=[T,M===S?A:R];break}default:{N=k;break}}}else k.length?N=k:N=[s==="horizontal"?new DOMRect(S.right,C.top,C.left-S.right,C.height):new DOMRect(C.left,S.bottom,C.width,C.top-S.bottom)];for(const R of N){let A="width"in R?R:R.element.getBoundingClientRect();const T=G7()?e.resizeTargetMinimumSize.coarse:e.resizeTargetMinimumSize.fine;if(A.width<T){const z=T-A.width;A=new DOMRect(A.x-z/2,A.y,A.width+z,A.height)}if(A.height<T){const z=T-A.height;A=new DOMRect(A.x,A.y-z/2,A.width,A.height+z)}const M=E<=g||E>h;!p&&!M&&u.push({group:e,groupSize:Fl({group:e}),panels:[_,w],separator:"width"in R?void 0:R,rect:A}),p=!1}}m=!1,_=w,k=[]}}else if(j.hasAttribute("data-separator")){j.ariaDisabled!==null&&(p=!0);const w=l.find(S=>S.element===j);w?k.push(w):(_=void 0,k=[])}else m=!0}return u}class RE{#e={};addListener(t,s){const o=this.#e[t];return o===void 0?this.#e[t]=[s]:o.includes(s)||o.push(s),()=>{this.removeListener(t,s)}}emit(t,s){const o=this.#e[t];if(o!==void 0)if(o.length===1)o[0].call(null,s);else{let l=!1,c=null;const u=Array.from(o);for(let p=0;p<u.length;p++){const m=u[p];try{m.call(null,s)}catch(g){c===null&&(l=!0,c=g)}}if(l)throw c}}removeAllListeners(){this.#e={}}removeListener(t,s){const o=this.#e[t];if(o!==void 0){const l=o.indexOf(s);l>=0&&o.splice(l,1)}}}let ss=new Map;const TE=new RE;function Y7(e){ss=new Map(ss),ss.delete(e)}function Iw(e,t){for(const[s]of ss)if(s.id===e)return s}function Ar(e,t){for(const[s,o]of ss)if(s.id===e)return o;if(t)throw Error(`Could not find data for Group with id ${e}`)}function Mo(){return ss}function dv(e,t){return TE.addListener("groupChange",s=>{s.group.id===e&&t(s)})}function Qs(e,t){const s=ss.get(e);ss=new Map(ss),ss.set(e,t),TE.emit("groupChange",{group:e,prev:s,next:t})}function X7(e,t,s){let o,l={x:1/0,y:1/0};for(const c of t){const u=EE(s,c.rect);switch(e){case"horizontal":{u.x<=l.x&&(o=c,l=u);break}case"vertical":{u.y<=l.y&&(o=c,l=u);break}}}return o?{distance:l,hitRegion:o}:void 0}function K7(e){return e!==null&&typeof e=="object"&&"nodeType"in e&&e.nodeType===Node.DOCUMENT_FRAGMENT_NODE}function Q7(e,t){if(e===t)throw new Error("Cannot compare node with itself");const s={a:Hw(e),b:Hw(t)};let o;for(;s.a.at(-1)===s.b.at(-1);)o=s.a.pop(),s.b.pop();Bt(o,"Stacking order can only be calculated for elements with a common ancestor");const l={a:Uw(Bw(s.a)),b:Uw(Bw(s.b))};if(l.a===l.b){const c=o.childNodes,u={a:s.a.at(-1),b:s.b.at(-1)};let p=c.length;for(;p--;){const m=c[p];if(m===u.a)return 1;if(m===u.b)return-1}}return Math.sign(l.a-l.b)}const Z7=/\b(?:position|zIndex|opacity|transform|webkitTransform|mixBlendMode|filter|webkitFilter|isolation)\b/;function W7(e){const t=getComputedStyle(AE(e)??e).display;return t==="flex"||t==="inline-flex"}function J7(e){const t=getComputedStyle(e);return!!(t.position==="fixed"||t.zIndex!=="auto"&&(t.position!=="static"||W7(e))||+t.opacity<1||"transform"in t&&t.transform!=="none"||"webkitTransform"in t&&t.webkitTransform!=="none"||"mixBlendMode"in t&&t.mixBlendMode!=="normal"||"filter"in t&&t.filter!=="none"||"webkitFilter"in t&&t.webkitFilter!=="none"||"isolation"in t&&t.isolation==="isolate"||Z7.test(t.willChange)||t.webkitOverflowScrolling==="touch")}function Bw(e){let t=e.length;for(;t--;){const s=e[t];if(Bt(s,"Missing node"),J7(s))return s}return null}function Uw(e){return e&&Number(getComputedStyle(e).zIndex)||0}function Hw(e){const t=[];for(;e;)t.push(e),e=AE(e);return t}function AE(e){const{parentNode:t}=e;return K7(t)?t.host:t}function eB(e,t){return e.x<t.x+t.width&&e.x+e.width>t.x&&e.y<t.y+t.height&&e.y+e.height>t.y}function tB({groupElement:e,hitRegion:t,pointerEventTarget:s}){if(!CE(s)||s.contains(e)||e.contains(s))return!0;if(Q7(s,e)>0){let o=s;for(;o;){if(o.contains(e))return!0;if(eB(o.getBoundingClientRect(),t))return!1;o=o.parentElement}}return!0}function fv(e,t){const s=[];return t.forEach((o,l)=>{if(l.disabled)return;const c=NE(l),u=X7(l.orientation,c,{x:e.clientX,y:e.clientY});u&&u.distance.x<=0&&u.distance.y<=0&&tB({groupElement:l.element,hitRegion:u.hitRegion.rect,pointerEventTarget:e.target})&&s.push(u.hitRegion)}),s}function nB(e,t){if(e.length!==t.length)return!1;for(let s=0;s<e.length;s++)if(e[s]!=t[s])return!1;return!0}function qn(e,t,s=0){return Math.abs(Yn(e)-Yn(t))<=s}function es(e,t){return qn(e,t)?0:e>t?1:-1}function jl({overrideDisabledPanels:e,panelConstraints:t,prevSize:s,size:o}){const{collapsedSize:l=0,collapsible:c,disabled:u,maxSize:p=100,minSize:m=0}=t;if(u&&!e)return s;if(es(o,m)<0)if(c){const g=(l+m)/2;es(o,g)<0?o=l:o=m}else o=m;return o=Math.min(p,o),o=Yn(o),o}function Mc({delta:e,initialLayout:t,panelConstraints:s,pivotIndices:o,prevLayout:l,trigger:c}){if(qn(e,0))return t;const u=c==="imperative-api",p=Object.values(t),m=Object.values(l),g=[...p],[h,b]=o;Bt(h!=null,"Invalid first pivot index"),Bt(b!=null,"Invalid second pivot index");let _=0;switch(c){case"keyboard":{{const j=e<0?b:h,w=s[j];Bt(w,`Panel constraints not found for index ${j}`);const{collapsedSize:S=0,collapsible:C,minSize:N=0}=w;if(C){const R=p[j];if(Bt(R!=null,`Previous layout not found for panel index ${j}`),qn(R,S)){const A=N-R;es(A,Math.abs(e))>0&&(e=e<0?0-A:A)}}}{const j=e<0?h:b,w=s[j];Bt(w,`No panel constraints found for index ${j}`);const{collapsedSize:S=0,collapsible:C,minSize:N=0}=w;if(C){const R=p[j];if(Bt(R!=null,`Previous layout not found for panel index ${j}`),qn(R,N)){const A=R-S;es(A,Math.abs(e))>0&&(e=e<0?0-A:A)}}}break}default:{const j=e<0?b:h,w=s[j];Bt(w,`Panel constraints not found for index ${j}`);const S=p[j],{collapsible:C,collapsedSize:N,minSize:R}=w;if(C&&es(S,R)<0)if(e>0){const A=R-N,T=A/2,M=S+e;es(M,R)<0&&(e=es(e,T)<=0?0:A)}else{const A=R-N,T=100-A/2,M=S-e;es(M,R)<0&&(e=es(100+e,T)>0?0:-A)}break}}{const j=e<0?1:-1;let w=e<0?b:h,S=0;for(;;){const N=p[w];Bt(N!=null,`Previous layout not found for panel index ${w}`);const R=jl({overrideDisabledPanels:u,panelConstraints:s[w],prevSize:N,size:100})-N;if(S+=R,w+=j,w<0||w>=s.length)break}const C=Math.min(Math.abs(e),Math.abs(S));e=e<0?0-C:C}{let j=e<0?h:b;for(;j>=0&&j<s.length;){const w=Math.abs(e)-Math.abs(_),S=p[j];Bt(S!=null,`Previous layout not found for panel index ${j}`);const C=S-w,N=jl({overrideDisabledPanels:u,panelConstraints:s[j],prevSize:S,size:C});if(!qn(S,N)&&(_+=S-N,g[j]=N,_.toFixed(3).localeCompare(Math.abs(e).toFixed(3),void 0,{numeric:!0})>=0))break;e<0?j--:j++}}if(nB(m,g))return l;{const j=e<0?b:h,w=p[j];Bt(w!=null,`Previous layout not found for panel index ${j}`);const S=w+_,C=jl({overrideDisabledPanels:u,panelConstraints:s[j],prevSize:w,size:S});if(g[j]=C,!qn(C,S)){let N=S-C,R=e<0?b:h;for(;R>=0&&R<s.length;){const A=g[R];Bt(A!=null,`Previous layout not found for panel index ${R}`);const T=A+N,M=jl({overrideDisabledPanels:u,panelConstraints:s[R],prevSize:A,size:T});if(qn(A,M)||(N-=M-A,g[R]=M),qn(N,0))break;e>0?R--:R++}}}const k=Object.values(g).reduce((j,w)=>w+j,0);if(!qn(k,100,.1))return l;const E=Object.keys(l);return g.reduce((j,w,S)=>(j[E[S]]=w,j),{})}function ko(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const s in e)if(t[s]===void 0||es(e[s],t[s])!==0)return!1;return!0}function So({layout:e,panelConstraints:t}){const s=Object.values(e),o=[...s],l=o.reduce((p,m)=>p+m,0);if(o.length!==t.length)throw Error(`Invalid ${t.length} panel layout: ${o.map(p=>`${p}%`).join(", ")}`);if(!qn(l,100)&&o.length>0)for(let p=0;p<t.length;p++){const m=o[p];Bt(m!=null,`No layout data found for index ${p}`);const g=100/l*m;o[p]=g}let c=0;for(let p=0;p<t.length;p++){const m=s[p];Bt(m!=null,`No layout data found for index ${p}`);const g=o[p];Bt(g!=null,`No layout data found for index ${p}`);const h=jl({overrideDisabledPanels:!0,panelConstraints:t[p],prevSize:m,size:g});g!=h&&(c+=g-h,o[p]=h)}if(!qn(c,0))for(let p=0;p<t.length;p++){const m=o[p];Bt(m!=null,`No layout data found for index ${p}`);const g=m+c,h=jl({overrideDisabledPanels:!0,panelConstraints:t[p],prevSize:m,size:g});if(m!==h&&(c-=h-m,o[p]=h,qn(c,0)))break}const u=Object.keys(e);return o.reduce((p,m,g)=>(p[u[g]]=m,p),{})}function ME({groupId:e,panelId:t}){const s=()=>{const m=Mo();for(const[g,{defaultLayoutDeferred:h,derivedPanelConstraints:b,layout:_,groupSize:k,separatorToPanels:E}]of m)if(g.id===e)return{defaultLayoutDeferred:h,derivedPanelConstraints:b,group:g,groupSize:k,layout:_,separatorToPanels:E};throw Error(`Group ${e} not found`)},o=()=>{const m=s().derivedPanelConstraints.find(g=>g.panelId===t);if(m!==void 0)return m;throw Error(`Panel constraints not found for Panel ${t}`)},l=()=>{const m=s().group.panels.find(g=>g.id===t);if(m!==void 0)return m;throw Error(`Layout not found for Panel ${t}`)},c=()=>{const m=s().layout[t];if(m!==void 0)return m;throw Error(`Layout not found for Panel ${t}`)},u=({nextSize:m,panels:g,prevLayout:h,derivedPanelConstraints:b})=>{const _=c(),k=g.findIndex(w=>w.id===t),E=k===0,j=k===g.length-1;if(j&&m<_&&(E||g.slice(0,k).every((w,S)=>{const C=b[S];return C?.collapsible&&qn(C.collapsedSize,h[C.panelId])}))){const w=g.slice(0,k).reduce((S,C)=>S+h[C.id],0);return{...h,[t]:Yn(100-w)}}return Mc({delta:j?_-m:m-_,initialLayout:h,panelConstraints:b,pivotIndices:j?[k-1,k]:[k,k+1],prevLayout:h,trigger:"imperative-api"})},p=m=>{const g=c();if(m===g)return;const{defaultLayoutDeferred:h,derivedPanelConstraints:b,group:_,groupSize:k,layout:E,separatorToPanels:j}=s(),w=u({nextSize:m,panels:_.panels,prevLayout:E,derivedPanelConstraints:b}),S=So({layout:w,panelConstraints:b});ko(E,S)||Qs(_,{defaultLayoutDeferred:h,derivedPanelConstraints:b,groupSize:k,layout:S,separatorToPanels:j})};return{collapse:()=>{const{collapsible:m,collapsedSize:g}=o(),{mutableValues:h}=l(),b=c();m&&b!==g&&(h.expandToSize=b,p(g))},expand:()=>{const{collapsible:m,collapsedSize:g,minSize:h}=o(),{mutableValues:b}=l(),_=c();if(m&&_===g){let k=b.expandToSize??h;k===0&&(k=1),p(k)}},getSize:()=>{const{group:m}=s(),g=c(),{element:h}=l(),b=m.orientation==="horizontal"?h.offsetWidth:h.offsetHeight;return{asPercentage:g,inPixels:b}},isCollapsed:()=>{const{collapsible:m,collapsedSize:g}=o(),h=c();return m&&qn(g,h)},resize:m=>{const{group:g}=s(),{element:h}=l(),b=Fl({group:g}),_=gc({groupSize:b,panelElement:h,styleProp:m}),k=Yn(_/b*100);p(k)}}}function Vw(e){if(e.defaultPrevented)return;const t=Mo();fv(e,t).forEach(s=>{if(s.separator&&!s.separator.disableDoubleClick){const o=s.panels.find(l=>l.panelConstraints.defaultSize!==void 0);if(o){const l=o.panelConstraints.defaultSize,c=ME({groupId:s.group.id,panelId:o.id});c&&l!==void 0&&(c.resize(l),e.preventDefault())}}})}function Bd(e){const t=Mo();for(const[s]of t)if(s.separators.some(o=>o.element===e))return s;throw Error("Could not find parent Group for separator element")}function OE({groupId:e}){const t=()=>{const s=Mo();for(const[o,l]of s)if(o.id===e)return{group:o,...l};throw Error(`Could not find Group with id "${e}"`)};return{getLayout(){const{defaultLayoutDeferred:s,layout:o}=t();return s?{}:o},setLayout(s){const{defaultLayoutDeferred:o,derivedPanelConstraints:l,group:c,groupSize:u,layout:p,separatorToPanels:m}=t(),g=So({layout:s,panelConstraints:l});return o?p:(ko(p,g)||Qs(c,{defaultLayoutDeferred:o,derivedPanelConstraints:l,groupSize:u,layout:g,separatorToPanels:m}),g)}}}function io(e,t){const s=Bd(e),o=Ar(s.id,!0),l=s.separators.find(h=>h.element===e);Bt(l,"Matching separator not found");const c=o.separatorToPanels.get(l);Bt(c,"Matching panels not found");const u=c.map(h=>s.panels.indexOf(h)),p=OE({groupId:s.id}).getLayout(),m=Mc({delta:t,initialLayout:p,panelConstraints:o.derivedPanelConstraints,pivotIndices:u,prevLayout:p,trigger:"keyboard"}),g=So({layout:m,panelConstraints:o.derivedPanelConstraints});ko(p,g)||Qs(s,{defaultLayoutDeferred:o.defaultLayoutDeferred,derivedPanelConstraints:o.derivedPanelConstraints,groupSize:o.groupSize,layout:g,separatorToPanels:o.separatorToPanels})}function qw(e){if(e.defaultPrevented)return;const t=e.currentTarget,s=Bd(t);if(!s.disabled)switch(e.key){case"ArrowDown":{e.preventDefault(),s.orientation==="vertical"&&io(t,5);break}case"ArrowLeft":{e.preventDefault(),s.orientation==="horizontal"&&io(t,-5);break}case"ArrowRight":{e.preventDefault(),s.orientation==="horizontal"&&io(t,5);break}case"ArrowUp":{e.preventDefault(),s.orientation==="vertical"&&io(t,-5);break}case"End":{e.preventDefault(),io(t,100);break}case"Enter":{e.preventDefault();const o=Bd(t),l=Ar(o.id,!0),{derivedPanelConstraints:c,layout:u,separatorToPanels:p}=l,m=o.separators.find(_=>_.element===t);Bt(m,"Matching separator not found");const g=p.get(m);Bt(g,"Matching panels not found");const h=g[0],b=c.find(_=>_.panelId===h.id);if(Bt(b,"Panel metadata not found"),b.collapsible){const _=u[h.id],k=b.collapsedSize===_?o.mutableState.expandedPanelSizes[h.id]??b.minSize:b.collapsedSize;io(t,k-_)}break}case"F6":{e.preventDefault();const o=Bd(t).separators.map(u=>u.element),l=Array.from(o).findIndex(u=>u===e.currentTarget);Bt(l!==null,"Index not found");const c=e.shiftKey?l>0?l-1:o.length-1:l+1<o.length?l+1:0;o[c].focus({preventScroll:!0});break}case"Home":{e.preventDefault(),io(t,-100);break}}}let Tl={cursorFlags:0,state:"inactive"};const pv=new RE;function Co(){return Tl}function aB(e){return pv.addListener("change",e)}function sB(e){const t=Tl,s={...Tl};s.cursorFlags=e,Tl=s,pv.emit("change",{prev:t,next:s})}function Al(e){const t=Tl;Tl=e,pv.emit("change",{prev:t,next:e})}function $w(e){if(e.defaultPrevented||e.pointerType==="mouse"&&e.button>0)return;const t=Mo(),s=fv(e,t),o=new Map;let l=!1;s.forEach(c=>{c.separator&&(l||(l=!0,c.separator.element.focus({focusVisible:!1,preventScroll:!0})));const u=t.get(c.group);u&&o.set(c.group,u.layout)}),Al({cursorFlags:0,hitRegions:s,initialLayoutMap:o,pointerDownAtPoint:{x:e.clientX,y:e.clientY},state:"active"}),s.length&&e.preventDefault()}const rB=e=>e,Rh=()=>{},zE=1,DE=2,LE=4,PE=8,Fw=3,Gw=12;let Td;function Yw(){return Td===void 0&&(Td=!1,typeof window<"u"&&(window.navigator.userAgent.includes("Chrome")||window.navigator.userAgent.includes("Firefox"))&&(Td=!0)),Td}function oB({cursorFlags:e,groups:t,state:s}){let o=0,l=0;switch(s){case"active":case"hover":t.forEach(c=>{if(!c.mutableState.disableCursor)switch(c.orientation){case"horizontal":{o++;break}case"vertical":{l++;break}}})}if(!(o===0&&l===0)){switch(s){case"active":{if(e&&Yw()){const c=(e&zE)!==0,u=(e&DE)!==0,p=(e&LE)!==0,m=(e&PE)!==0;if(c)return p?"se-resize":m?"ne-resize":"e-resize";if(u)return p?"sw-resize":m?"nw-resize":"w-resize";if(p)return"s-resize";if(m)return"n-resize"}break}}return Yw()?o>0&&l>0?"move":o>0?"ew-resize":"ns-resize":o>0&&l>0?"grab":o>0?"col-resize":"row-resize"}}const Xw=new WeakMap;function mv(e){if(e.defaultView===null||e.defaultView===void 0)return;let{prevStyle:t,styleSheet:s}=Xw.get(e)??{};s===void 0&&(s=new e.defaultView.CSSStyleSheet,e.adoptedStyleSheets&&(Object.isExtensible(e.adoptedStyleSheets)?e.adoptedStyleSheets.push(s):e.adoptedStyleSheets=[...e.adoptedStyleSheets,s]));const o=Co();switch(o.state){case"active":case"hover":{const l=oB({cursorFlags:o.cursorFlags,groups:o.hitRegions.map(u=>u.group),state:o.state}),c=`*, *:hover {cursor: ${l} !important; }`;if(t===c)return;t=c,l?s.cssRules.length===0?s.insertRule(c):s.replaceSync(c):s.cssRules.length===1&&s.deleteRule(0);break}case"inactive":{t=void 0,s.cssRules.length===1&&s.deleteRule(0);break}}Xw.set(e,{prevStyle:t,styleSheet:s})}function IE({document:e,event:t,hitRegions:s,initialLayoutMap:o,mountedGroups:l,pointerDownAtPoint:c,prevCursorFlags:u}){let p=0;s.forEach(g=>{const{group:h,groupSize:b}=g,{orientation:_,panels:k}=h,{disableCursor:E}=h.mutableState;let j=0;c?_==="horizontal"?j=(t.clientX-c.x)/b*100:j=(t.clientY-c.y)/b*100:_==="horizontal"?j=t.clientX<0?-100:100:j=t.clientY<0?-100:100;const w=o.get(h),S=l.get(h);if(!w||!S)return;const{defaultLayoutDeferred:C,derivedPanelConstraints:N,groupSize:R,layout:A,separatorToPanels:T}=S;if(N&&A&&T){const M=Mc({delta:j,initialLayout:w,panelConstraints:N,pivotIndices:g.panels.map(z=>k.indexOf(z)),prevLayout:A,trigger:"mouse-or-touch"});if(ko(M,A)){if(j!==0&&!E)switch(_){case"horizontal":{p|=j<0?zE:DE;break}case"vertical":{p|=j<0?LE:PE;break}}}else Qs(g.group,{defaultLayoutDeferred:C,derivedPanelConstraints:N,groupSize:R,layout:M,separatorToPanels:T})}});let m=0;t.movementX===0?m|=u&Fw:m|=p&Fw,t.movementY===0?m|=u&Gw:m|=p&Gw,sB(m),mv(e)}function Kw(e){const t=Mo(),s=Co();switch(s.state){case"active":IE({document:e.currentTarget,event:e,hitRegions:s.hitRegions,initialLayoutMap:s.initialLayoutMap,mountedGroups:t,prevCursorFlags:s.cursorFlags})}}function Qw(e){if(e.defaultPrevented)return;const t=Co(),s=Mo();switch(t.state){case"active":{if(e.buttons===0){Al({cursorFlags:0,state:"inactive"}),t.hitRegions.forEach(o=>{const l=Ar(o.group.id,!0);Qs(o.group,l)});return}for(const o of t.hitRegions)if(o.separator){const{element:l}=o.separator;l.hasPointerCapture?.(e.pointerId)||l.setPointerCapture?.(e.pointerId)}IE({document:e.currentTarget,event:e,hitRegions:t.hitRegions,initialLayoutMap:t.initialLayoutMap,mountedGroups:s,pointerDownAtPoint:t.pointerDownAtPoint,prevCursorFlags:t.cursorFlags});break}default:{const o=fv(e,s);o.length===0?t.state!=="inactive"&&Al({cursorFlags:0,state:"inactive"}):Al({cursorFlags:0,hitRegions:o,state:"hover"}),mv(e.currentTarget);break}}}function Zw(e){if(e.relatedTarget instanceof HTMLIFrameElement)switch(Co().state){case"hover":Al({cursorFlags:0,state:"inactive"})}}function Ww(e){if(e.defaultPrevented||e.pointerType==="mouse"&&e.button>0)return;const t=Co();switch(t.state){case"active":Al({cursorFlags:0,state:"inactive"}),t.hitRegions.length>0&&(mv(e.currentTarget),t.hitRegions.forEach(s=>{const o=Ar(s.group.id,!0);Qs(s.group,o)}),e.preventDefault())}}function Jw(e){let t=0,s=0;const o={};for(const c of e)if(c.defaultSize!==void 0){t++;const u=Yn(c.defaultSize);s+=u,o[c.panelId]=u}else o[c.panelId]=void 0;const l=e.length-t;if(l!==0){const c=Yn((100-s)/l);for(const u of e)u.defaultSize===void 0&&(o[u.panelId]=c)}return o}function lB(e,t,s){if(!s[0])return;const o=e.panels.find(m=>m.element===t);if(!o||!o.onResize)return;const l=Fl({group:e}),c=e.orientation==="horizontal"?o.element.offsetWidth:o.element.offsetHeight,u=o.mutableValues.prevSize,p={asPercentage:Yn(c/l*100),inPixels:c};o.mutableValues.prevSize=p,o.onResize(p,o.id,u)}function iB(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const s in e)if(e[s]!==t[s])return!1;return!0}function cB({group:e,nextGroupSize:t,prevGroupSize:s,prevLayout:o}){if(s<=0||t<=0||s===t)return o;let l=0,c=0,u=!1;const p=new Map,m=[];for(const b of e.panels){const _=o[b.id]??0;switch(b.panelConstraints.groupResizeBehavior){case"preserve-pixel-size":{u=!0;const k=_/100*s,E=Yn(k/t*100);p.set(b.id,E),l+=E;break}case"preserve-relative-size":default:{m.push(b.id),c+=_;break}}}if(!u||m.length===0)return o;const g=100-l,h={...o};if(p.forEach((b,_)=>{h[_]=b}),c>0)for(const b of m){const _=o[b]??0;h[b]=Yn(_/c*g)}else{const b=Yn(g/m.length);for(const _ of m)h[_]=b}return h}function uB(e,t){const s=e.map(l=>l.id),o=Object.keys(t);if(s.length!==o.length)return!1;for(const l of s)if(!o.includes(l))return!1;return!0}const _l=new Map;function dB(e){let t=!0;Bt(e.element.ownerDocument.defaultView,"Cannot register an unmounted Group");const s=e.element.ownerDocument.defaultView.ResizeObserver,o=new Set,l=new Set,c=new s(E=>{for(const j of E){const{borderBoxSize:w,target:S}=j;if(S===e.element){if(t){const C=Fl({group:e});if(C===0)return;const N=Ar(e.id);if(!N)return;const R=vx(e),A=N.defaultLayoutDeferred?Jw(R):N.layout,T=cB({group:e,nextGroupSize:C,prevGroupSize:N.groupSize,prevLayout:A}),M=So({layout:T,panelConstraints:R});if(!N.defaultLayoutDeferred&&ko(N.layout,M)&&iB(N.derivedPanelConstraints,R)&&N.groupSize===C)return;Qs(e,{defaultLayoutDeferred:!1,derivedPanelConstraints:R,groupSize:C,layout:M,separatorToPanels:N.separatorToPanels})}}else lB(e,S,w)}});c.observe(e.element),e.panels.forEach(E=>{Bt(!o.has(E.id),`Panel ids must be unique; id "${E.id}" was used more than once`),o.add(E.id),E.onResize&&c.observe(E.element)});const u=Fl({group:e}),p=vx(e),m=e.panels.map(({id:E})=>E).join(",");let g=e.mutableState.defaultLayout;g&&(uB(e.panels,g)||(g=void 0));const h=e.mutableState.layouts[m]??g??Jw(p),b=So({layout:h,panelConstraints:p}),_=e.element.ownerDocument;_l.set(_,(_l.get(_)??0)+1);const k=new Map;return NE(e).forEach(E=>{E.separator&&k.set(E.separator,E.panels)}),Qs(e,{defaultLayoutDeferred:u===0,derivedPanelConstraints:p,groupSize:u,layout:b,separatorToPanels:k}),e.separators.forEach(E=>{Bt(!l.has(E.id),`Separator ids must be unique; id "${E.id}" was used more than once`),l.add(E.id),E.element.addEventListener("keydown",qw)}),_l.get(_)===1&&(_.addEventListener("dblclick",Vw,!0),_.addEventListener("pointerdown",$w,!0),_.addEventListener("pointerleave",Kw),_.addEventListener("pointermove",Qw),_.addEventListener("pointerout",Zw),_.addEventListener("pointerup",Ww,!0)),function(){t=!1,_l.set(_,Math.max(0,(_l.get(_)??0)-1)),Y7(e),e.separators.forEach(E=>{E.element.removeEventListener("keydown",qw)}),_l.get(_)||(_.removeEventListener("dblclick",Vw,!0),_.removeEventListener("pointerdown",$w,!0),_.removeEventListener("pointerleave",Kw),_.removeEventListener("pointermove",Qw),_.removeEventListener("pointerout",Zw),_.removeEventListener("pointerup",Ww,!0)),c.disconnect()}}function fB(){const[e,t]=x.useState({}),s=x.useCallback(()=>t({}),[]);return[e,s]}function gv(e){const t=x.useId();return`${e??t}`}const Oo=typeof window<"u"?x.useLayoutEffect:x.useEffect;function jc(e){const t=x.useRef(e);return Oo(()=>{t.current=e},[e]),x.useCallback((...s)=>t.current?.(...s),[t])}function hv(...e){return jc(t=>{e.forEach(s=>{if(s)switch(typeof s){case"function":{s(t);break}case"object":{s.current=t;break}}})})}function xv(e){const t=x.useRef({...e});return Oo(()=>{for(const s in e)t.current[s]=e[s]},[e]),t.current}const BE=x.createContext(null);function pB(e,t){const s=x.useRef({getLayout:()=>({}),setLayout:rB});x.useImperativeHandle(t,()=>s.current,[]),Oo(()=>{Object.assign(s.current,OE({groupId:e}))})}function yx({children:e,className:t,defaultLayout:s,disableCursor:o,disabled:l,elementRef:c,groupRef:u,id:p,onLayoutChange:m,onLayoutChanged:g,orientation:h="horizontal",resizeTargetMinimumSize:b={coarse:20,fine:10},style:_,...k}){const E=x.useRef({onLayoutChange:{},onLayoutChanged:{}}),j=jc(I=>{ko(E.current.onLayoutChange,I)||(E.current.onLayoutChange=I,m?.(I))}),w=jc(I=>{ko(E.current.onLayoutChanged,I)||(E.current.onLayoutChanged=I,g?.(I))}),S=gv(p),C=x.useRef(null),[N,R]=fB(),A=x.useRef({lastExpandedPanelSizes:{},layouts:{},panels:[],resizeTargetMinimumSize:b,separators:[]}),T=hv(C,c);pB(S,u);const M=jc((I,B)=>{const V=Co(),H=Iw(I),G=Ar(I);if(G){let q=!1;switch(V.state){case"active":{q=V.hitRegions.some(Y=>Y.group===H);break}}return{flexGrow:G.layout[B]??1,pointerEvents:q?"none":void 0}}if(s?.[B])return{flexGrow:s?.[B]}}),z=xv({defaultLayout:s,disableCursor:o}),P=x.useMemo(()=>({get disableCursor(){return!!z.disableCursor},getPanelStyles:M,id:S,orientation:h,registerPanel:I=>{const B=A.current;return B.panels=_x(h,[...B.panels,I]),R(),()=>{B.panels=B.panels.filter(V=>V!==I),R()}},registerSeparator:I=>{const B=A.current;return B.separators=_x(h,[...B.separators,I]),R(),()=>{B.separators=B.separators.filter(V=>V!==I),R()}},updatePanelProps:(I,{disabled:B})=>{const V=A.current.panels.find(q=>q.id===I);V&&(V.panelConstraints.disabled=B);const H=Iw(S),G=Ar(S);H&&G&&Qs(H,{...G,derivedPanelConstraints:vx(H)})},updateSeparatorProps:(I,{disabled:B,disableDoubleClick:V})=>{const H=A.current.separators.find(G=>G.id===I);H&&(H.disabled=B,H.disableDoubleClick=V)}}),[M,S,R,h,z]),D=x.useRef(null);return Oo(()=>{const I=C.current;if(I===null)return;const B=A.current;let V;if(z.defaultLayout!==void 0&&Object.keys(z.defaultLayout).length===B.panels.length){V={};for(const K of B.panels){const L=z.defaultLayout[K.id];L!==void 0&&(V[K.id]=L)}}const H={disabled:!!l,element:I,id:S,mutableState:{defaultLayout:V,disableCursor:!!z.disableCursor,expandedPanelSizes:A.current.lastExpandedPanelSizes,layouts:A.current.layouts},orientation:h,panels:B.panels,resizeTargetMinimumSize:B.resizeTargetMinimumSize,separators:B.separators};D.current=H;const G=dB(H),{defaultLayoutDeferred:q,derivedPanelConstraints:Y,layout:X}=Ar(H.id,!0);!q&&Y.length>0&&(j(X),w(X));const $=dv(S,K=>{const{defaultLayoutDeferred:L,derivedPanelConstraints:F,layout:W}=K.next;if(L||F.length===0)return;const ee=H.panels.map(({id:ue})=>ue).join(",");H.mutableState.layouts[ee]=W,F.forEach(ue=>{if(ue.collapsible){const{layout:se}=K.prev??{};if(se){const oe=qn(ue.collapsedSize,W[ue.panelId]),fe=qn(ue.collapsedSize,se[ue.panelId]);oe&&!fe&&(H.mutableState.expandedPanelSizes[ue.panelId]=se[ue.panelId])}}});const ce=Co().state!=="active";j(W),ce&&w(W)});return()=>{D.current=null,G(),$()}},[l,S,w,j,h,N,z]),x.useEffect(()=>{const I=D.current;I&&(I.mutableState.defaultLayout=s,I.mutableState.disableCursor=!!o)}),r.jsx(BE.Provider,{value:P,children:r.jsx("div",{...k,className:t,"data-group":!0,"data-testid":S,id:S,ref:T,style:{height:"100%",width:"100%",overflow:"hidden",..._,display:"flex",flexDirection:h==="horizontal"?"row":"column",flexWrap:"nowrap",touchAction:h==="horizontal"?"pan-y":"pan-x"},children:e})})}yx.displayName="Group";function bv(){const e=x.useContext(BE);return Bt(e,"Group Context not found; did you render a Panel or Separator outside of a Group?"),e}function mB(e,t){const{id:s}=bv(),o=x.useRef({collapse:Rh,expand:Rh,getSize:()=>({asPercentage:0,inPixels:0}),isCollapsed:()=>!1,resize:Rh});x.useImperativeHandle(t,()=>o.current,[]),Oo(()=>{Object.assign(o.current,ME({groupId:s,panelId:e}))})}function uo({children:e,className:t,collapsedSize:s="0%",collapsible:o=!1,defaultSize:l,disabled:c,elementRef:u,groupResizeBehavior:p="preserve-relative-size",id:m,maxSize:g="100%",minSize:h="0%",onResize:b,panelRef:_,style:k,...E}){const j=!!m,w=gv(m),S=xv({disabled:c}),C=x.useRef(null),N=hv(C,u),{getPanelStyles:R,id:A,orientation:T,registerPanel:M,updatePanelProps:z}=bv(),P=b!==null,D=jc((H,G,q)=>{b?.(H,m,q)});Oo(()=>{const H=C.current;if(H!==null){const G={element:H,id:w,idIsStable:j,mutableValues:{expandToSize:void 0,prevSize:void 0},onResize:P?D:void 0,panelConstraints:{groupResizeBehavior:p,collapsedSize:s,collapsible:o,defaultSize:l,disabled:S.disabled,maxSize:g,minSize:h}};return M(G)}},[p,s,o,l,P,w,j,g,h,D,M,S]),x.useEffect(()=>{z(w,{disabled:c})},[c,w,z]),mB(w,_);const I=()=>{const H=R(A,w);if(H)return JSON.stringify(H)},B=x.useSyncExternalStore(H=>dv(A,H),I,I);let V;return B?V=JSON.parse(B):l!==void 0?V={flexGrow:void 0,flexShrink:void 0,flexBasis:l}:V={flexGrow:1},r.jsx("div",{...E,"data-disabled":c||void 0,"data-panel":!0,"data-testid":w,id:w,ref:N,style:{...gB,display:"flex",flexBasis:0,flexShrink:1,overflow:"visible",...V},children:r.jsx("div",{className:t,style:{maxHeight:"100%",maxWidth:"100%",flexGrow:1,overflow:"auto",...k,touchAction:T==="horizontal"?"pan-y":"pan-x"},children:e})})}uo.displayName="Panel";const gB={minHeight:0,maxHeight:"100%",height:"auto",minWidth:0,maxWidth:"100%",width:"auto",border:"none",borderWidth:0,padding:0,margin:0};function hB({layout:e,panelConstraints:t,panelId:s,panelIndex:o}){let l,c;const u=e[s],p=t.find(m=>m.panelId===s);if(p){const m=p.maxSize,g=p.collapsible?p.collapsedSize:p.minSize,h=[o,o+1];c=So({layout:Mc({delta:g-u,initialLayout:e,panelConstraints:t,pivotIndices:h,prevLayout:e}),panelConstraints:t})[s],l=So({layout:Mc({delta:m-u,initialLayout:e,panelConstraints:t,pivotIndices:h,prevLayout:e}),panelConstraints:t})[s]}return{valueControls:s,valueMax:l,valueMin:c,valueNow:u}}function vv({children:e,className:t,disabled:s,disableDoubleClick:o,elementRef:l,id:c,style:u,...p}){const m=gv(c),g=xv({disabled:s,disableDoubleClick:o}),[h,b]=x.useState({}),[_,k]=x.useState("inactive"),[E,j]=x.useState(!1),w=x.useRef(null),S=hv(w,l),{disableCursor:C,id:N,orientation:R,registerSeparator:A,updateSeparatorProps:T}=bv(),M=R==="horizontal"?"vertical":"horizontal";Oo(()=>{const D=w.current;if(D!==null){const I={disabled:g.disabled,disableDoubleClick:g.disableDoubleClick,element:D,id:m},B=A(I),V=aB(G=>{k(G.next.state!=="inactive"&&G.next.hitRegions.some(q=>q.separator===I)?G.next.state:"inactive")}),H=dv(N,G=>{const{derivedPanelConstraints:q,layout:Y,separatorToPanels:X}=G.next,$=X.get(I);if($){const K=$[0],L=$.indexOf(K);b(hB({layout:Y,panelConstraints:q,panelId:K.id,panelIndex:L}))}});return()=>{V(),H(),B()}}},[N,m,A,g]),x.useEffect(()=>{T(m,{disabled:s,disableDoubleClick:o})},[s,o,m,T]);let z;s&&!C&&(z="not-allowed");let P;if(s)P="disabled";else switch(_){case"active":{P="active";break}default:E?P="focus":P=_}return r.jsx("div",{...p,"aria-controls":h.valueControls,"aria-disabled":s||void 0,"aria-orientation":M,"aria-valuemax":h.valueMax,"aria-valuemin":h.valueMin,"aria-valuenow":h.valueNow,children:e,className:t,"data-separator":P,"data-testid":m,id:m,onBlur:()=>j(!1),onFocus:()=>j(!0),ref:S,role:"separator",style:{flexBasis:"auto",cursor:z,...u,flexGrow:0,flexShrink:0,touchAction:"none"},tabIndex:s?void 0:0})}vv.displayName="Separator";function xB({projects:e,value:t,onChange:s,disabled:o}){const l=e.map(c=>{const u=c.path?.split("/").filter(Boolean).pop()||f("modules_ui.code_project_fallback",{id:c.id});return{value:String(c.id),label:c.name||u,icon:fM,description:c.path}});return r.jsx("div",{className:"w-full","data-testid":"code-project-select",children:r.jsx(St,{value:t,onChange:s,options:l,placeholder:f("modules_ui.code_pick_project_ph"),disabled:o})})}function bB({sessions:e,activeId:t,busy:s,onSelect:o,onCreate:l,onRename:c,onDelete:u}){return r.jsxs("div",{className:"flex h-full flex-col","data-testid":"code-session-list",children:[r.jsxs("div",{className:"flex shrink-0 items-center justify-between px-3 py-2",children:[r.jsx("span",{className:"text-[11px] font-semibold uppercase tracking-wide text-muted-foreground",children:f("code_module.sessions")}),r.jsx(et,{content:f("code_module.new_session"),children:r.jsxs("button",{type:"button",onClick:l,disabled:s,"data-testid":"code-new-session",className:"flex items-center gap-1 rounded-md border border-border px-1.5 py-0.5 text-[11px] text-muted-foreground transition-colors hover:bg-accent hover:text-foreground disabled:opacity-50",children:[r.jsx(rn,{className:"size-3"})," ",f("code_module.new_session")]})})]}),r.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto px-2 pb-2",children:e.length===0?r.jsx("div",{className:"p-2",children:r.jsx(xt,{children:f("code_module.no_sessions")})}):r.jsx("ul",{className:"space-y-0.5",children:e.map(p=>r.jsxs("li",{className:"group/item relative",children:[r.jsxs("button",{type:"button",onClick:()=>o(p.id),className:De("flex w-full items-start gap-2 rounded-md px-2 py-1.5 text-left text-xs transition-colors",p.id===t?"bg-accent text-accent-fg":"text-foreground/80 hover:bg-accent/50"),children:[r.jsx(Lx,{className:"mt-0.5 size-3.5 shrink-0 opacity-60"}),r.jsxs("span",{className:"min-w-0 flex-1",children:[r.jsx("span",{className:"block truncate font-medium",children:p.title}),r.jsxs("span",{className:"block truncate text-[10px] text-muted-foreground",children:[p.mode," · ",p.messageCount," msg",p.model?` · ${p.model}`:""]})]})]}),r.jsxs("div",{className:"absolute right-1 top-1 hidden items-center gap-0.5 group-hover/item:flex",children:[r.jsx(et,{content:f("code_module.rename"),children:r.jsx("button",{type:"button",onClick:()=>c(p.id,p.title),className:"rounded p-1 text-muted-foreground hover:bg-background hover:text-foreground",children:r.jsx(Eo,{className:"size-3"})})}),r.jsx(et,{content:f("code_module.delete"),children:r.jsx("button",{type:"button",onClick:()=>u(p.id),className:"rounded p-1 text-muted-foreground hover:bg-background hover:text-rose-500",children:r.jsx(ia,{className:"size-3"})})})]})]},p.id))})})]})}function vB({mode:e,onChange:t,disabled:s}){const o=(l,c,u,p)=>r.jsx(et,{content:u,children:r.jsxs("button",{type:"button",disabled:s,"data-testid":`code-mode-${l}`,"aria-pressed":e===l,onClick:()=>t(l),className:De("flex items-center gap-1.5 rounded-md px-2.5 py-1 text-xs font-medium transition-colors disabled:opacity-50",e===l?"bg-background text-foreground shadow-sm":"text-muted-foreground hover:text-foreground"),children:[r.jsx(p,{className:"size-3.5"})," ",c]})});return r.jsxs("div",{className:"flex items-center gap-0.5 rounded-lg border border-border bg-muted/60 p-0.5",children:[o("build",f("code_module.mode_build"),f("code_module.mode_build_hint"),xM),o("plan",f("code_module.mode_plan"),f("code_module.mode_plan_hint"),JA)]})}function _B({value:e,onValueChange:t,onSubmit:s,onStop:o,busy:l,disabled:c,mode:u,onModeChange:p,model:m,onModelChange:g}){return r.jsx(sv,{value:e,onValueChange:t,onSubmit:s,onStop:o,busy:l,disabled:c,placeholder:f("code_module.placeholder"),minRows:1,maxRows:6,footer:r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx(vB,{mode:u,onChange:p,disabled:l}),r.jsx(rv,{value:m,onChange:g,disabled:l})]})})}function Th(e,t){let s=0;for(const o of e.parts||[])o.kind==="text"&&t.text&&(s+=o.text.length),o.kind==="tool"&&t.tool&&(o.args&&(s+=JSON.stringify(o.args).length),o.result!==void 0&&(s+=JSON.stringify(o.result).length));return Math.ceil(s/4)}function yB(e){let t=null,s=0,o=0;for(const u of e)u.role==="user"?s++:o++,u.role==="assistant"&&u.usage&&(t={input:u.usage.input_tokens,output:u.usage.output_tokens,model:u.model});const l=t?.input??0,c=t?.output??0;return{model:t?.model??null,input:l,output:c,total:l+c,hasUsage:!!t,messages:e.length,userMsgs:s,assistantMsgs:o}}function jB(e){let t=0,s=0,o=0;for(const u of e)u.role==="user"?t+=Th(u,{text:!0}):s+=Th(u,{text:!0}),o+=Th(u,{tool:!0});const l=t+s+o||1,c=(u,p)=>({key:u,tokens:p,percent:Math.round(p/l*100)});return[c("user",t),c("assistant",s),c("tool",o)].filter(u=>u.tokens>0)}const ek={user:"bg-emerald-500",assistant:"bg-sky-500",tool:"bg-amber-500"};function Bs({label:e,value:t}){return r.jsxs("div",{className:"flex items-baseline justify-between gap-2 py-0.5",children:[r.jsx("span",{className:"shrink-0 text-[10px] uppercase tracking-wide text-muted-foreground",children:e}),r.jsx("span",{className:"min-w-0 truncate text-right font-mono text-xs text-foreground",children:t})]})}function tk(e){if(!e)return"";const t=new Date(e),s=o=>String(o).padStart(2,"0");return`${s(t.getDate())} ${t.toLocaleString("es",{month:"short"})} ${t.getFullYear()}, ${s(t.getHours())}:${s(t.getMinutes())}`}function wB({turns:e,session:t}){const s=x.useMemo(()=>yB(e),[e]),o=x.useMemo(()=>jB(e),[e]);return e.length===0?r.jsx("div",{className:"p-3",children:r.jsx(xt,{children:f("code_module.ctx_none")})}):r.jsxs("div",{className:"space-y-1 p-3","data-testid":"code-context-tab",children:[r.jsx(Bs,{label:f("code_module.ctx_model"),value:s.model||f("modules_ui.code_ctx_auto")}),t?.mode&&r.jsx(Bs,{label:f("modules_ui.code_ctx_mode"),value:t.mode}),t?.agentSlug&&r.jsx(Bs,{label:f("modules_ui.code_ctx_agent"),value:t.agentSlug}),r.jsx(Bs,{label:f("code_module.ctx_messages"),value:f("modules_ui.code_ctx_msgs_value",{user:s.userMsgs,assistant:s.assistantMsgs})}),r.jsx(Bs,{label:f("code_module.ctx_input"),value:s.input.toLocaleString()}),r.jsx(Bs,{label:f("code_module.ctx_output"),value:s.output.toLocaleString()}),r.jsx(Bs,{label:f("modules_ui.code_ctx_tokens_total"),value:(s.input+s.output).toLocaleString()}),t?.createdAt&&r.jsx(Bs,{label:f("modules_ui.code_ctx_created"),value:tk(t.createdAt)}),t?.updatedAt&&r.jsx(Bs,{label:f("modules_ui.code_ctx_activity"),value:tk(t.updatedAt)}),r.jsx("hr",{className:"border-border my-2"}),r.jsxs("div",{children:[r.jsx("div",{className:"mb-1 text-[11px] font-semibold text-muted-foreground",children:f("code_module.ctx_breakdown")}),o.length>0?r.jsxs(r.Fragment,{children:[r.jsx("div",{className:"flex h-2.5 w-full overflow-hidden rounded-full bg-muted",children:o.map(l=>r.jsx(et,{content:`${l.key}: ${l.tokens} (${l.percent}%)`,children:r.jsx("div",{className:ek[l.key],style:{width:`${l.percent}%`}})},l.key))}),r.jsx("ul",{className:"mt-2 space-y-1",children:o.map(l=>r.jsxs("li",{className:"flex items-center gap-2 text-[11px]",children:[r.jsx("span",{className:`size-2 rounded-full ${ek[l.key]}`}),r.jsx("span",{className:"flex-1 text-foreground/80",children:f(`code_module.seg_${l.key}`)}),r.jsxs("span",{className:"font-mono text-muted-foreground",children:[l.tokens," · ",l.percent,"%"]})]},l.key))})]}):r.jsx("p",{className:"text-[11px] text-muted-foreground",children:f("code_module.ctx_none")})]})]})}function kB(e){const t=[];for(const s of(e||"").split(`
|
|
641
|
+
`))s.startsWith("diff --git")||s.startsWith("index ")||s.startsWith("--- ")||s.startsWith("+++ ")||s.startsWith("new file")||s.startsWith("deleted file")||s.startsWith("similarity index")||s.startsWith("rename ")||(s.startsWith("@@")?t.push({kind:"hunk",text:s}):s.startsWith("+")?t.push({kind:"add",text:s.slice(1)}):s.startsWith("-")?t.push({kind:"del",text:s.slice(1)}):t.push({kind:"ctx",text:s.replace(/^ /,"")}));for(;t.length&&t[t.length-1].kind==="ctx"&&t[t.length-1].text==="";)t.pop();return t}function SB({patch:e}){const t=x.useMemo(()=>kB(e),[e]);return t.length?r.jsx("pre",{className:"overflow-x-auto rounded-md border border-border bg-background/60 font-mono text-[11px] leading-relaxed",children:r.jsx("code",{className:"block",children:t.map((s,o)=>r.jsxs("div",{className:De("px-2 whitespace-pre",s.kind==="add"&&"bg-emerald-500/10 text-emerald-600 dark:text-emerald-400",s.kind==="del"&&"bg-rose-500/10 text-rose-600 dark:text-rose-400",s.kind==="hunk"&&"bg-muted/60 text-muted-foreground",s.kind==="ctx"&&"text-foreground/70"),children:[r.jsx("span",{className:"select-none opacity-50",children:s.kind==="add"?"+":s.kind==="del"?"-":" "}),s.text]},o))})}):null}const CB={added:lM,modified:$d,deleted:uM},EB={added:"text-emerald-600 dark:text-emerald-400",modified:"text-amber-600 dark:text-amber-400",deleted:"text-rose-600 dark:text-rose-400"};function NB({file:e}){const[t,s]=x.useState(!1),o=CB[e.status];return r.jsxs("li",{className:"rounded-md border border-border",children:[r.jsxs("button",{type:"button",onClick:()=>s(l=>!l),className:"flex w-full items-center gap-2 px-2 py-1.5 text-left text-xs hover:bg-accent/40",children:[r.jsx(Pc,{className:De("size-3 shrink-0 transition-transform",t&&"rotate-90")}),r.jsx(o,{className:De("size-3.5 shrink-0",EB[e.status])}),r.jsx("span",{className:"min-w-0 flex-1 truncate font-mono",children:e.path}),r.jsxs("span",{className:"shrink-0 font-mono text-[10px] text-muted-foreground",children:[e.additions!=null&&r.jsxs("span",{className:"text-emerald-600 dark:text-emerald-400",children:["+",e.additions]}),e.deletions!=null&&r.jsxs("span",{className:"ml-1 text-rose-600 dark:text-rose-400",children:["-",e.deletions]})]})]}),t&&r.jsx("div",{className:"border-t border-border p-1.5",children:r.jsx(SB,{patch:e.patch})})]})}function RB({changes:e,loading:t,onRefresh:s}){const o=e?.files||[];return r.jsxs("div",{className:"flex h-full flex-col","data-testid":"code-changes-tab",children:[r.jsxs("div",{className:"flex shrink-0 items-center justify-between px-3 py-2",children:[r.jsx("span",{className:"text-[11px] text-muted-foreground",children:o.length>0?f("code_module.changes_files",{n:o.length}):""}),r.jsx(et,{content:f("code_module.reload"),children:r.jsx("button",{type:"button",onClick:s,className:"rounded p-1 text-muted-foreground hover:bg-accent hover:text-foreground",children:t?r.jsx(ba,{size:12}):r.jsx(cs,{className:"size-3"})})})]}),r.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto px-3 pb-3",children:e&&!e.git?r.jsx(xt,{children:f("code_module.changes_no_git")}):o.length===0?r.jsx(xt,{children:f("code_module.changes_none")}):r.jsx("ul",{className:"space-y-1.5",children:o.map(l=>r.jsx(NB,{file:l},l.path))})})]})}function TB({pid:e,entry:t,onDeleted:s,onRenamed:o,onRunInTerminal:l,onEditArtifact:c}){const[u,p]=x.useState(!1),[m,g]=x.useState(null),h=lt(),[b,_]=x.useState(!1),[k,E]=x.useState(t.name),j=x.useRef(null),[w,S]=x.useState(!1),[C,N]=x.useState(!1),[R,A]=x.useState(!1),T=w?["artifact",e,t.name]:null,M=Qe(T,()=>Rl.read(e,t.name),{revalidateOnFocus:!1}),z=!M.data?.content||M.data.content.startsWith("#!"),P=async V=>{try{await navigator.clipboard.writeText(V),h.info(f("modules_ui.code_copied"))}catch{}},D=async()=>{A(!0);try{await Rl.remove(e,t.name),N(!1),s()}catch(V){h.error(V.message)}finally{A(!1)}},I=()=>{E(t.name),_(!0),requestAnimationFrame(()=>j.current?.select())},B=async()=>{const V=k.trim();if(_(!1),!(!V||V===t.name))try{await Rl.rename(e,t.name,V),o()}catch(H){h.error(H.message)}};return r.jsxs("li",{className:"rounded-md border border-border",children:[r.jsxs("div",{className:"flex w-full items-center gap-2 px-2 py-1.5 text-xs",children:[r.jsx(oM,{className:"size-3.5 shrink-0 text-emerald-600 dark:text-emerald-400"}),b?r.jsx("input",{ref:j,value:k,onChange:V=>E(V.target.value),onBlur:()=>void B(),onKeyDown:V=>{V.key==="Enter"&&B(),V.key==="Escape"&&_(!1)},autoFocus:!0,className:"min-w-0 flex-1 rounded border border-border bg-background px-1 py-0.5 font-mono text-xs outline-none focus:ring-1 focus:ring-ring"}):r.jsx("span",{className:"min-w-0 flex-1 truncate font-mono",children:t.name}),r.jsx(et,{content:f("code_module.artifacts_rename"),children:r.jsx("button",{type:"button",onClick:I,className:"shrink-0 rounded p-0.5 text-muted-foreground hover:bg-accent hover:text-foreground",children:r.jsx(Eo,{className:"size-3"})})}),r.jsxs("span",{className:"shrink-0 font-mono text-[10px] text-muted-foreground",children:[t.size,"b"]})]}),r.jsxs("div",{className:"space-y-2 border-t border-border p-2",children:[r.jsxs("div",{className:"flex w-full min-w-0 items-center gap-1 rounded bg-muted px-1.5 py-0.5",children:[r.jsx("code",{className:"min-w-0 flex-1 truncate font-mono text-[10px] text-muted-foreground",children:t.path}),r.jsx(et,{content:f("code_module.artifacts_copy_path"),children:r.jsx("button",{type:"button",onClick:()=>void P(t.path),className:"shrink-0 rounded p-0.5 text-muted-foreground hover:bg-accent hover:text-foreground",children:r.jsx(qd,{className:"size-3"})})})]}),r.jsxs("div",{className:"flex flex-wrap items-center gap-1 mt-1",children:[r.jsxs(ox,{open:w,onOpenChange:S,children:[r.jsx(et,{content:f("code_module.artifacts_view"),children:r.jsxs("button",{type:"button",onClick:()=>S(!0),className:"inline-flex items-center gap-1 rounded px-1.5 py-1 text-[10px] font-medium bg-blue-500/15 text-blue-700 hover:bg-blue-500/25 dark:text-blue-300",children:[r.jsx(wf,{className:"size-3"}),f("modules_ui.code_artifact_view_short")]})}),r.jsxs(lx,{className:"sm:max-w-lg",children:[r.jsx(ix,{children:r.jsx(cx,{className:"font-mono text-sm",children:t.name})}),M.isLoading?r.jsx("div",{className:"flex justify-center py-6",children:r.jsx(ba,{size:16})}):r.jsx("pre",{className:"max-h-96 overflow-auto rounded bg-muted/50 p-3 font-mono text-[11px] leading-tight whitespace-pre-wrap break-all",children:M.data?.content??""}),r.jsx(Lj,{showCloseButton:!0})]})]}),r.jsx(et,{content:f("code_module.artifacts_edit"),children:r.jsxs("button",{type:"button",onClick:()=>c?.(t.name),className:"inline-flex items-center gap-1 rounded px-1.5 py-1 text-[10px] font-medium bg-violet-500/15 text-violet-700 hover:bg-violet-500/25 dark:text-violet-300",children:[r.jsx(zM,{className:"size-3"}),f("modules_ui.code_artifact_edit_short")]})}),z&&r.jsx(et,{content:f("code_module.artifacts_run"),children:r.jsxs("button",{type:"button",onClick:()=>l?.(`apx artifact run ${t.name}`),className:"inline-flex items-center gap-1 rounded px-1.5 py-1 text-[10px] font-medium bg-emerald-500/15 text-emerald-700 hover:bg-emerald-500/25 dark:text-emerald-300",children:[r.jsx(Px,{className:"size-3"}),f("code_module.artifacts_run")]})}),r.jsxs(ox,{open:C,onOpenChange:N,children:[r.jsx(et,{content:f("code_module.artifacts_delete"),children:r.jsx("button",{type:"button",onClick:()=>N(!0),className:"ml-auto rounded p-1 text-rose-600 hover:bg-rose-50 dark:text-rose-400 dark:hover:bg-rose-950",children:r.jsx(ia,{className:"size-3"})})}),r.jsxs(lx,{className:"sm:max-w-sm",children:[r.jsx(ix,{children:r.jsxs(cx,{className:"font-mono text-sm",children:[f("code_module.artifacts_delete")," — ",t.name]})}),r.jsx("p",{className:"px-1 text-sm text-muted-foreground",children:f("code_module.artifacts_delete_confirm")}),r.jsxs(Lj,{children:[r.jsx(xL,{render:r.jsx("button",{type:"button",className:"rounded px-3 py-1.5 text-xs font-medium hover:bg-accent"}),children:f("common.cancel")}),r.jsxs("button",{type:"button",onClick:()=>void D(),disabled:R,className:De("inline-flex items-center gap-1.5 rounded px-3 py-1.5 text-xs font-medium",R?"bg-muted text-muted-foreground":"bg-rose-500/15 text-rose-700 hover:bg-rose-500/25 dark:text-rose-300"),children:[R&&r.jsx(ba,{size:10}),f("code_module.delete")]})]})]})]})]}),r.jsxs("div",{className:"mt-1 text-[10px] text-muted-foreground",children:[f("code_module.artifacts_run_hint")," ",r.jsxs("code",{className:"rounded bg-muted px-1 font-mono",children:["apx artifact run ",t.name]})]}),m&&r.jsxs("div",{className:"space-y-1",children:[r.jsxs("div",{className:"flex items-center gap-2 text-[10px]",children:[r.jsx("span",{className:De("rounded px-1.5 py-0.5 font-mono",m.ok?"bg-emerald-500/15 text-emerald-700 dark:text-emerald-300":"bg-rose-500/15 text-rose-700 dark:text-rose-300"),children:f("modules_ui.code_artifact_exit_badge",{code:m.exitCode??m.signal??"?"})}),m.timedOut&&r.jsx("span",{className:"rounded bg-amber-500/15 px-1.5 py-0.5 font-mono text-amber-700 dark:text-amber-300",children:f("modules_ui.code_artifact_timeout")}),m.truncated&&r.jsx("span",{className:"rounded bg-amber-500/15 px-1.5 py-0.5 font-mono text-amber-700 dark:text-amber-300",children:f("modules_ui.code_artifact_truncated")}),r.jsxs("span",{className:"font-mono text-muted-foreground",children:[m.durationMs,"ms"]})]}),m.stdout&&r.jsx("pre",{className:"max-h-32 overflow-auto rounded bg-background/60 p-2 text-[10px] leading-tight",children:m.stdout}),m.stderr&&r.jsx("pre",{className:"max-h-32 overflow-auto rounded bg-rose-500/5 p-2 text-[10px] leading-tight text-rose-700 dark:text-rose-300",children:m.stderr})]})]})]})}function AB({pid:e,onRunInTerminal:t,onEditArtifact:s}){const o=Qe(e?["artifacts",e]:null,()=>Rl.list(e)),l=o.data||[];return r.jsxs("div",{className:"flex h-full flex-col","data-testid":"code-artifacts-tab",children:[r.jsxs("div",{className:"flex shrink-0 items-center justify-between px-3 py-2",children:[r.jsx("span",{className:"text-[11px] text-muted-foreground",children:l.length>0?f("code_module.artifacts_count",{n:l.length}):""}),r.jsx(et,{content:f("code_module.reload"),children:r.jsx("button",{type:"button",onClick:()=>void o.mutate(),className:"rounded p-1 text-muted-foreground hover:bg-accent hover:text-foreground",children:o.isLoading?r.jsx(ba,{size:12}):r.jsx(cs,{className:"size-3"})})})]}),r.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto px-3 pb-3",children:l.length===0?r.jsx(xt,{children:f("code_module.artifacts_none")}):r.jsx("ul",{className:"space-y-1.5",children:l.map(c=>r.jsx(TB,{pid:e,entry:c,onDeleted:()=>void o.mutate(),onRenamed:()=>void o.mutate(),onRunInTerminal:t,onEditArtifact:s},c.name))})})]})}const MB=[{value:"context",icon:kf,label:"tab_context"},{value:"changes",icon:hM,label:"tab_changes"},{value:"artifacts",icon:EM,label:"tab_artifacts"}];function OB({pid:e,turns:t,changes:s,changesLoading:o,onRefreshChanges:l,session:c,onRunInTerminal:u,onEditArtifact:p}){const[m,g]=x.useState("context"),h=s?.files.length||0;return r.jsxs(sp,{value:m,onValueChange:g,className:"flex h-full flex-col gap-0","data-testid":"code-side-panel",children:[r.jsx("div",{className:"shrink-0 border-b border-border px-2 py-2",children:r.jsx(rp,{variant:"line",className:"w-full",children:MB.map(({value:b,icon:_,label:k})=>{const E=m===b,j=f(`code_module.${k}`);return r.jsx(et,{content:j,children:r.jsxs(as,{value:b,className:E?"flex-1 min-w-0":"w-8 shrink-0",children:[r.jsx(_,{className:"size-3.5 shrink-0"}),E&&r.jsx("span",{className:"truncate text-xs",children:j}),b==="changes"&&h>0&&r.jsx("span",{className:"ml-0.5 rounded-full bg-muted px-1 text-[10px] text-muted-foreground leading-none py-0.5",children:h})]})},b)})})}),r.jsx(za,{value:"context",className:"min-h-0 flex-1 overflow-y-auto",children:r.jsx(wB,{turns:t,session:c})}),r.jsx(za,{value:"changes",className:"min-h-0 flex-1 overflow-hidden",children:r.jsx(RB,{changes:s,loading:o,onRefresh:l})}),r.jsx(za,{value:"artifacts",className:"min-h-0 flex-1 overflow-hidden",children:r.jsx(AB,{pid:e,onRunInTerminal:u,onEditArtifact:p})})]})}function zB(e){const t=[];for(const o of e){const l=o.split("/").filter(Boolean);let c=t,u="";for(let p=0;p<l.length;p++){u=u?`${u}/${l[p]}`:l[p];const m=p===l.length-1;let g=c.find(h=>h.name===l[p]);g||(g={name:l[p],path:u,type:m?"file":"dir",children:m?void 0:[]},c.push(g)),m||(c=g.children)}}const s=o=>(o.forEach(l=>{l.children&&(l.children=s(l.children))}),o.sort((l,c)=>l.type!==c.type?l.type==="dir"?-1:1:l.name.localeCompare(c.name)));return s(t)}function UE({node:e,depth:t,onOpenFile:s,openDirs:o,toggleDir:l}){const c=e.type==="dir",u=c&&o.has(e.path);return r.jsxs("li",{children:[r.jsxs("button",{type:"button",onClick:()=>c?l(e.path):s(e.path),style:{paddingLeft:`${t*12+6}px`},className:De("flex w-full items-center gap-1.5 py-0.5 pr-2 text-left text-[11px] rounded transition-colors","hover:bg-accent/40",c?"text-foreground/80":"text-foreground/70"),children:[c?r.jsxs(r.Fragment,{children:[r.jsx(Pc,{className:De("size-3 shrink-0 transition-transform",u&&"rotate-90")}),u?r.jsx(zx,{className:"size-3.5 shrink-0 text-amber-400"}):r.jsx(pM,{className:"size-3.5 shrink-0 text-amber-400"})]}):r.jsxs(r.Fragment,{children:[r.jsx("span",{className:"size-3 shrink-0"}),r.jsx(dM,{className:"size-3.5 shrink-0 text-sky-400"})]}),r.jsx("span",{className:"truncate",children:e.name})]}),c&&u&&e.children&&e.children.length>0&&r.jsx("ul",{children:e.children.map(p=>r.jsx(UE,{node:p,depth:t+1,onOpenFile:s,openDirs:o,toggleDir:l},p.path))})]})}function DB({pid:e,projectPath:t,className:s,onOpenFile:o}){const[l,c]=x.useState([]),[u,p]=x.useState(!1),[m,g]=x.useState(!1),[h,b]=x.useState(()=>new Set),_=x.useCallback(async()=>{p(!0);try{const C=(await he.post("/run",{cmd:"find . -type f -not -path '*/node_modules/*' -not -path '*/.git/*' -not -path '*/dist/*' -not -path '*/.claude/*' | sed 's|^\\./||' | sort | head -500",project:e})).stdout.split(`
|
|
642
|
+
`).map(N=>N.trim()).filter(Boolean);c(C),g(!0)}catch{g(!0)}finally{p(!1)}},[e]);x.useEffect(()=>{b(new Set),_()},[_]);const k=x.useCallback(S=>{b(C=>{const N=new Set(C);return N.has(S)?N.delete(S):N.add(S),N})},[]),E=x.useCallback(()=>{b(new Set)},[]),j=zB(l),w=h.size>0;return r.jsxs("div",{className:De("flex h-full flex-col",s),"data-testid":"code-file-tree",children:[r.jsxs("div",{className:"flex shrink-0 items-center justify-between border-b border-border px-3 py-2",children:[r.jsx("span",{className:"text-[11px] font-semibold uppercase tracking-wide text-muted-foreground",children:"Archivos"}),r.jsxs("div",{className:"flex items-center gap-0.5",children:[r.jsx(et,{content:f("code_module.tree_collapse_all"),children:r.jsx("button",{type:"button",onClick:E,disabled:!w,className:"rounded p-1 text-muted-foreground hover:bg-accent hover:text-foreground disabled:opacity-40 disabled:hover:bg-transparent",children:r.jsx(QA,{className:"size-3"})})}),r.jsx(et,{content:f("code_module.reload"),children:r.jsx("button",{type:"button",onClick:()=>void _(),className:"rounded p-1 text-muted-foreground hover:bg-accent hover:text-foreground",children:u?r.jsx(ba,{size:12}):r.jsx(cs,{className:"size-3"})})})]})]}),r.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto py-1",children:m?j.length===0?r.jsx("div",{className:"p-3",children:r.jsx(xt,{children:"Sin archivos"})}):r.jsx("ul",{children:j.map(S=>r.jsx(UE,{node:S,depth:0,onOpenFile:o??(()=>{}),openDirs:h,toggleDir:k},S.path))}):r.jsx("div",{className:"flex justify-center pt-6",children:r.jsx(ba,{size:14})})})]})}function LB({path:e,content:t,loading:s,onSave:o}){const l=typeof o=="function",[c,u]=x.useState(t),[p,m]=x.useState(!1);x.useEffect(()=>{u(t)},[t]);const g=l&&c!==t,h=async()=>{if(!(!o||!g)){m(!0);try{await o(c)}finally{m(!1)}}};return r.jsxs("div",{className:"flex h-full min-h-0 flex-col bg-card/40","data-testid":"code-file-viewer",children:[r.jsxs("div",{className:"flex shrink-0 items-center gap-2 border-b border-border px-3 py-1.5",children:[r.jsxs("span",{className:"min-w-0 flex-1 truncate font-mono text-[11px] text-muted-foreground",children:[e,g&&r.jsx("span",{className:"ml-1 text-amber-400",children:"•"})]}),l&&r.jsxs(r.Fragment,{children:[r.jsx(et,{content:f("code_module.discard_changes"),children:r.jsxs("button",{type:"button",onClick:()=>u(t),disabled:!g||p,className:"inline-flex items-center gap-1 rounded px-1.5 py-0.5 text-[10px] font-medium text-muted-foreground hover:bg-accent hover:text-foreground disabled:opacity-40",children:[r.jsx(Ix,{className:"size-3"}),"Descartar"]})}),r.jsx(et,{content:f("code_module.save_shortcut_hint"),children:r.jsxs("button",{type:"button",onClick:()=>void h(),disabled:!g||p,className:De("inline-flex items-center gap-1 rounded px-2 py-0.5 text-[10px] font-medium transition-colors",g&&!p?"bg-emerald-500/15 text-emerald-700 hover:bg-emerald-500/25 dark:text-emerald-300":"bg-muted text-muted-foreground"),children:[p?r.jsx(ba,{size:10}):r.jsx(Cf,{className:"size-3"}),"Guardar"]})})]})]}),s?r.jsx("div",{className:"flex flex-1 items-center justify-center",children:r.jsx(ba,{size:16})}):l?r.jsx("textarea",{value:c,onChange:b=>u(b.target.value),onKeyDown:b=>{(b.metaKey||b.ctrlKey)&&b.key==="s"&&(b.preventDefault(),h())},className:"min-h-0 flex-1 resize-none bg-transparent p-3 font-mono text-[12px] leading-[1.6] text-foreground/90 outline-none",spellCheck:!1}):r.jsx("div",{className:"min-h-0 flex-1 overflow-auto",children:r.jsx("table",{className:"w-full border-collapse font-mono text-[12px] leading-[1.6]",children:r.jsx("tbody",{children:t.split(`
|
|
643
|
+
`).map((b,_)=>r.jsxs("tr",{className:"hover:bg-accent/20",children:[r.jsx("td",{className:"w-12 select-none border-r border-border/30 px-3 py-0 text-right align-top text-[10px] text-muted-foreground/40","aria-hidden":"true",children:_+1}),r.jsx("td",{className:"px-4 py-0 align-top text-foreground/90 whitespace-pre",children:b||" "})]},_))})})})]})}function PB({pid:e,className:t,initCmd:s,onClose:o}){const[l,c]=x.useState([]),[u,p]=x.useState(""),[m,g]=x.useState(!1),[h,b]=x.useState([]),[_,k]=x.useState(-1),E=x.useRef(null),j=x.useRef(null);x.useEffect(()=>{E.current?.scrollIntoView({behavior:"smooth"})},[l]),x.useEffect(()=>{s&&(p(s),setTimeout(()=>j.current?.focus(),50))},[s]);const w=async C=>{const N=C.trim();if(N){b(R=>[N,...R.slice(0,49)]),k(-1),c(R=>[...R,{type:"cmd",text:`$ ${N}`}]),g(!0);try{const R=await he.post("/run",{cmd:N,project:e});R.stdout&&c(A=>[...A,{type:"out",text:R.stdout}]),R.stderr&&c(A=>[...A,{type:"err",text:R.stderr}])}catch(R){c(A=>[...A,{type:"err",text:String(R.message)}])}finally{g(!1)}}},S=C=>{if(C.key==="Enter")w(u),p("");else if(C.key==="ArrowUp"){C.preventDefault();const N=Math.min(_+1,h.length-1);k(N),p(h[N]??"")}else if(C.key==="ArrowDown"){C.preventDefault();const N=Math.max(_-1,-1);k(N),p(N===-1?"":h[N]??"")}};return r.jsxs("div",{className:De("flex h-full min-h-0 flex-col bg-card/60",t),"data-testid":"code-terminal",children:[r.jsxs("div",{className:"flex shrink-0 items-center gap-2 border-b border-border px-3 py-1",children:[r.jsx(Mr,{className:"size-3 text-muted-foreground"}),r.jsx("span",{className:"flex-1 text-[11px] text-muted-foreground",children:"Terminal"}),r.jsx(et,{content:f("code_module.terminal_clear"),children:r.jsx("button",{type:"button",onClick:()=>c([]),className:"rounded p-0.5 text-muted-foreground hover:bg-accent hover:text-foreground",children:r.jsx(sM,{className:"size-3"})})}),r.jsx(et,{content:f("code_module.terminal_close"),children:r.jsx("button",{type:"button",onClick:()=>o?.(),className:"rounded p-0.5 text-muted-foreground hover:bg-accent hover:text-foreground",children:r.jsx(ps,{className:"size-3"})})})]}),r.jsxs("div",{className:"min-h-0 flex-1 overflow-y-auto px-3 py-1 font-mono text-[11px] leading-snug cursor-text",onClick:()=>j.current?.focus(),children:[l.map((C,N)=>r.jsx("div",{className:De("whitespace-pre-wrap break-all",C.type==="cmd"&&"text-emerald-400",C.type==="err"&&"text-rose-400",C.type==="out"&&"text-foreground/90"),children:C.text},N)),r.jsx("div",{ref:E})]}),r.jsxs("div",{className:"flex shrink-0 items-center border-t border-border px-3 py-1",children:[r.jsx("span",{className:"mr-2 text-[11px] text-emerald-400 font-mono",children:"$"}),r.jsx("input",{ref:j,value:u,onChange:C=>p(C.target.value),onKeyDown:S,disabled:m,placeholder:m?"ejecutando…":"comando…",className:"flex-1 bg-transparent font-mono text-[11px] text-foreground outline-none placeholder:text-muted-foreground/50 disabled:opacity-50",spellCheck:!1,autoComplete:"off"})]})]})}const oc="super-agent";function Ah(){return r.jsx(vv,{className:"relative z-10 w-px shrink-0 cursor-col-resize bg-border transition-colors hover:bg-primary/50 active:bg-primary/70"})}function IB(){return r.jsx(vv,{className:"relative z-10 h-px shrink-0 cursor-row-resize bg-border transition-colors hover:bg-primary/50 active:bg-primary/70"})}function BB(){const e=lt(),t=Qe("/projects",()=>ra.list()),s=x.useMemo(()=>t.data||[],[t.data]),[o,l]=x.useState(""),[c,u]=x.useState(null),[p,m]=x.useState(oc),[g,h]=x.useState([]),[b,_]=x.useState(""),[k,E]=x.useState(!1),[j,w]=x.useState(!0),[S,C]=x.useState(!0),[N,R]=x.useState(!1),[A,T]=x.useState(""),[M,z]=x.useState(!1),P=x.useRef(null),[D,I]=x.useState([]),[B,V]=x.useState("chat"),H=x.useCallback(ve=>{R(!0),T(ve)},[]);x.useEffect(()=>{!o&&s.length&&l(String(s[0].id))},[o,s]);const G=Qe(o?["code-sessions",o]:null,()=>Is.sessions.list(o)),q=Qe(o?["agents",o]:null,()=>sn.list(o)),Y=Qe(o&&c?["code-session",o,c]:null,()=>Is.sessions.get(o,c)),X=Qe(o&&c?["code-changes",o,c]:null,()=>Is.changes(o,c));x.useEffect(()=>{const ve=G.data||[];!c&&ve.length&&u(ve[0].id),c&&ve.length&&!ve.some(Ae=>Ae.id===c)&&u(ve[0]?.id??null)},[G.data,c]),x.useEffect(()=>{Y.data&&m(Y.data.agentSlug||oc)},[Y.data]),x.useEffect(()=>{k||(Y.data?h(Y.data.messages||[]):c||h([]))},[Y.data,c,k]),x.useEffect(()=>()=>P.current?.abort(),[]);const $=Y.data,K=$?.mode==="plan"?"plan":"build",L=$?.model||"",F=ve=>{ve===o||k||(l(ve),u(null),h([]))},W=ve=>{k||ve===c||(u(ve),h([]))},ee=async()=>{if(!(!o||k))try{const ve=await Is.sessions.create(o,{title:f("code_module.untitled"),agentSlug:p!==oc?p:null});await G.mutate(),u(ve.id),h([])}catch(ve){e.error(ve.message)}},ce=async(ve,Ae)=>{const He=window.prompt(f("code_module.rename"),Ae);if(!(!He||He===Ae))try{await Is.sessions.update(o,ve,{title:He}),await G.mutate(),ve===c&&await Y.mutate()}catch(Xe){e.error(Xe.message)}},ue=async ve=>{if(!k&&window.confirm(f("code_module.delete_confirm")))try{await Is.sessions.remove(o,ve),ve===c&&(u(null),h([])),await G.mutate()}catch(Ae){e.error(Ae.message)}},se=async ve=>{if(m(ve),!!c)try{await Is.sessions.update(o,c,{agentSlug:ve!==oc?ve:null}),await Promise.all([Y.mutate(),G.mutate()])}catch(Ae){e.error(Ae.message)}},oe=x.useCallback(async ve=>{if(c)try{await Is.sessions.update(o,c,ve),await Promise.all([Y.mutate(),G.mutate()])}catch(Ae){e.error(Ae.message)}},[o,c,Y,G,e]),fe=()=>{P.current?.abort(),E(!1)},Re=ve=>h(Ae=>{const He=[...Ae],Xe=He[He.length-1];return Xe&&Xe.role==="assistant"&&(He[He.length-1]=ve(Xe)),He}),le=async ve=>{const Ae=(ve??b).trim();if(!Ae||k||!o||!c)return;const He=new Date().toISOString();h(nn=>[...nn,{role:"user",parts:[{kind:"text",text:Ae}],ts:He},{role:"assistant",parts:[],ts:He,pending:!0}]),_(""),E(!0);const Xe=new AbortController;P.current=Xe;const rt=nn=>{if(nn.type==="error"){e.error(nn.error||f("modules_ui.code_stream_error"));return}Re(un=>ov(un,nn))};try{await Is.stream(o,c,{prompt:Ae},rt,Xe.signal),Re(nn=>({...nn,pending:!1}))}catch(nn){Xe.signal.aborted?Re(un=>({...un,pending:!1,parts:[...un.parts,{kind:"text",text:f("code_module.stopped")}]})):(e.error(nn.message),h(un=>un.filter((pt,Nt)=>Nt!==un.length-1)))}finally{P.current===Xe&&(P.current=null),E(!1),Y.mutate(),G.mutate(),X.mutate()}},de=async ve=>{try{await navigator.clipboard.writeText(ve),e.info(f("modules_ui.code_copied"))}catch{}},ke=x.useCallback(ve=>{V(ve),I(Ae=>Ae.some(He=>He.path===ve)?Ae:[...Ae,{path:ve,content:"",loading:!0}]),he.post("/run",{cmd:`cat "${ve}"`,project:o}).then(Ae=>{const He=Ae.stdout||Ae.stderr||f("modules_ui.code_file_empty");I(Xe=>Xe.map(rt=>rt.path===ve?{...rt,content:He,loading:!1}:rt))}).catch(Ae=>{I(He=>He.map(Xe=>Xe.path===ve?{...Xe,content:f("modules_ui.code_file_error",{msg:Ae.message}),loading:!1}:Xe))})},[o]),je=x.useCallback(ve=>{I(Ae=>Ae.filter(He=>He.path!==ve)),V(Ae=>Ae===ve?"chat":Ae)},[]),Be=x.useCallback(ve=>{const Ae=`artifacts/${ve}`;V(Ae),I(He=>He.some(Xe=>Xe.path===Ae)?He:[...He,{path:Ae,content:"",loading:!0,artifactName:ve}]),Rl.read(o,ve).then(He=>{I(Xe=>Xe.map(rt=>rt.path===Ae?{...rt,content:He.content,loading:!1}:rt))}).catch(He=>{I(Xe=>Xe.map(rt=>rt.path===Ae?{...rt,content:f("modules_ui.code_file_error",{msg:He.message}),loading:!1}:rt))})},[o]),Ve=x.useCallback(async(ve,Ae)=>{const He=D.find(Xe=>Xe.path===ve);if(He?.artifactName)try{await Rl.write(o,He.artifactName,Ae),I(Xe=>Xe.map(rt=>rt.path===ve?{...rt,content:Ae}:rt)),e.info(f("modules_ui.code_saved"))}catch(Xe){e.error(Xe.message)}},[D,o,e]),we=!t.isLoading&&s.length>0,Ee=x.useMemo(()=>{const ve=[{value:oc,label:f("modules_ui.code_super_agent"),icon:hn,description:f("modules_ui.code_super_agent_desc")}],Ae=(q.data||[]).map(He=>({value:He.slug,label:He.slug,icon:hn,description:He.description||He.role||void 0}));return[...ve,...Ae]},[q.data]),_e=x.useMemo(()=>g,[g]),Ce=x.useMemo(()=>G.data?.find(ve=>ve.id===c)?.title||"",[G.data,c]),Le=x.useMemo(()=>s.find(ve=>String(ve.id)===o),[s,o]);OL(Ce);const[Pe,Ie]=x.useState(null),ae=k?null:pE(g),be=ae&&ae.turnKey!==Pe,$e=ve=>{le(ve)},Ne=x.useCallback(()=>w(ve=>!ve),[]),Me=x.useCallback(()=>z(ve=>!ve),[]),Ze=x.useCallback(()=>R(ve=>!ve),[]),st=x.useCallback(()=>C(ve=>!ve),[]),_t=x.useMemo(()=>c?r.jsx("div",{className:"flex items-center gap-0.5",children:[{Icon:Uk,open:j,toggle:Ne,title:f("modules_ui.code_panel_sessions")},{Icon:Lk,open:M,toggle:Me,title:f("modules_ui.code_panel_tree")},{Icon:Mr,open:N,toggle:Ze,title:f("modules_ui.code_panel_terminal")},{Icon:RM,open:S,toggle:st,title:f("modules_ui.code_panel_context")}].map(({Icon:ve,open:Ae,toggle:He,title:Xe})=>r.jsx(et,{content:Xe,children:r.jsx("button",{type:"button",onClick:He,"data-active":Ae,className:"rounded p-1 text-muted-fg transition-colors hover:bg-accent hover:text-accent-fg data-[active=true]:bg-accent data-[active=true]:text-accent-fg",children:r.jsx(ve,{className:"size-3.5"})})},Xe))}):null,[c,j,M,N,S,Ne,Me,Ze,st]);return DL(_t),r.jsx("div",{className:"flex h-full min-h-0 flex-col","data-testid":"screen-code",children:t.isLoading?r.jsx(ot,{}):we?r.jsxs(yx,{orientation:"vertical",id:"code-layout-v",className:"min-h-0 flex-1",children:[r.jsx(uo,{id:"top",defaultSize:N?"55%":"100%",minSize:"20%",children:r.jsxs(yx,{orientation:"horizontal",id:"code-layout",className:"h-full",children:[j&&r.jsxs(r.Fragment,{children:[r.jsx(uo,{id:"left",defaultSize:"14%",minSize:"8%",children:r.jsxs("aside",{className:"flex h-full flex-col",children:[r.jsx("div",{className:"shrink-0 border-b border-border p-2",children:r.jsx(xB,{projects:s,value:o,onChange:F,disabled:k})}),r.jsx("div",{className:"min-h-0 flex-1 overflow-hidden",children:r.jsx(bB,{sessions:G.data||[],activeId:c,busy:k,onSelect:W,onCreate:ee,onRename:ce,onDelete:ue})}),r.jsx("div",{className:"shrink-0 border-t border-border p-2",children:r.jsx(St,{value:p,onChange:se,options:Ee,disabled:k,showIcon:!0})})]})}),r.jsx(Ah,{})]}),M&&r.jsxs(r.Fragment,{children:[r.jsx(uo,{id:"tree",defaultSize:"13%",minSize:"8%",children:r.jsx("div",{className:"h-full",children:r.jsx(DB,{pid:o,projectPath:Le?.path,onOpenFile:ke})})}),r.jsx(Ah,{})]}),r.jsx(uo,{id:"main",defaultSize:"50%",minSize:"20%",children:r.jsxs("div",{className:"flex h-full flex-col",children:[D.length>0&&r.jsxs("div",{className:"flex shrink-0 items-center gap-0 overflow-x-auto border-b border-border",children:[r.jsxs("button",{type:"button",onClick:()=>V("chat"),"data-active":B==="chat",className:"flex shrink-0 items-center gap-1.5 border-r border-border px-3 py-2 text-[11px] font-medium text-muted-foreground transition-colors hover:bg-accent/40 data-[active=true]:text-foreground",children:[r.jsx(Lx,{className:"size-3 shrink-0"}),f("modules_ui.code_chat_tab")]}),D.map(ve=>{const Ae=ve.path.split("/").pop()??ve.path,He=B===ve.path;return r.jsxs("div",{"data-active":He,className:"group flex shrink-0 items-center gap-1 border-r border-border px-2 py-2 text-[11px] text-muted-foreground transition-colors hover:bg-accent/40 data-[active=true]:text-foreground",children:[r.jsx(et,{content:ve.path,children:r.jsx("button",{type:"button",onClick:()=>V(ve.path),className:"min-w-0 max-w-[140px] truncate font-mono",children:Ae})}),r.jsx(et,{content:f("code_module.close"),children:r.jsx("button",{type:"button",onClick:()=>je(ve.path),className:"shrink-0 rounded p-0.5 opacity-60 hover:bg-accent hover:opacity-100",children:r.jsx(ps,{className:"size-2.5"})})})]},ve.path)})]}),B==="chat"?r.jsxs(r.Fragment,{children:[r.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto","data-testid":"code-transcript",children:c?g.length?r.jsx(lv,{msgs:g,onCopy:de}):r.jsx("div",{className:"grid h-full place-items-center p-6",children:r.jsx(xt,{children:f("code_module.empty_chat")})}):r.jsx("div",{className:"grid h-full place-items-center p-6",children:r.jsx(xt,{children:f("code_module.pick_project")})})}),be&&ae&&r.jsx(fE,{turnKey:ae.turnKey,questions:ae.questions,onSubmit:$e,onDismiss:()=>Ie(ae.turnKey),disabled:k})]}):r.jsx("div",{className:"min-h-0 flex-1 overflow-hidden",children:(()=>{const ve=D.find(Ae=>Ae.path===B);return ve?r.jsx(LB,{path:ve.path,content:ve.content,loading:ve.loading,onSave:ve.artifactName?Ae=>Ve(ve.path,Ae):void 0}):null})()}),r.jsx("div",{className:"shrink-0 border-t border-border p-2","data-testid":"code-input",children:r.jsx(_B,{value:b,onValueChange:_,onSubmit:()=>void le(),onStop:fe,busy:k,disabled:!c,mode:K,onModeChange:ve=>void oe({mode:ve}),model:L,onModelChange:ve=>void oe({model:ve||null})})})]})}),S&&r.jsxs(r.Fragment,{children:[r.jsx(Ah,{}),r.jsx(uo,{id:"right",defaultSize:"22%",minSize:"15%",children:r.jsx("aside",{className:"flex h-full flex-col",children:r.jsx(OB,{pid:o,turns:_e,changes:X.data,changesLoading:X.isLoading,onRefreshChanges:()=>void X.mutate(),session:Y.data?{title:Y.data.title,mode:Y.data.mode,createdAt:Y.data.createdAt,updatedAt:Y.data.updatedAt,agentSlug:Y.data.agentSlug??null}:null,onRunInTerminal:H,onEditArtifact:Be})})})]})]})}),N&&o&&r.jsxs(r.Fragment,{children:[r.jsx(IB,{}),r.jsx(uo,{id:"terminal",defaultSize:"45%",minSize:"10%",maxSize:"80%",children:r.jsx(PB,{pid:o,initCmd:A,onClose:Ze,className:"h-full"})})]})]}):r.jsx("div",{className:"grid flex-1 place-items-center",children:r.jsx(xt,{children:f("code_module.no_projects")})})})}function UB({open:e,onClose:t}){const{mutate:s}=lC(),o=Qn(),l=lt(),[c,u]=x.useState(""),[p,m]=x.useState(!1),[g,h]=x.useState(""),[b,_]=x.useState([]),[k,E]=x.useState(null),[j,w]=x.useState(""),[S,C]=x.useState(!1),[N,R]=x.useState(!1),A=async(z,P=!1)=>{C(!0),w("");try{const D=await Nj.dirs(z||"~");h(D.path),u(D.path),E(D.parent),_(D.entries)}catch(D){const I=D.message;w(I),P||l.error(I)}finally{C(!1)}};x.useEffect(()=>{e||(u(""),m(!1),h(""),_([]),E(null),w(""))},[e]);const T=async()=>{C(!0);try{const z=await Nj.pickDir(f("add_project.picker_prompt"));if("cancelled"in z)return;u(z.path);return}catch{m(!0),await A(c||"~")}finally{C(!1)}},M=async()=>{const z=c.trim();if(!z){l.error(f("add_project.path_required"));return}R(!0);try{const P=await ra.register(z);l.success(f("add_project.registered",{id:P.id})),await s("/projects"),t(),o(`/p/${P.id}`)}catch(P){l.error(P.message)}finally{R(!1)}};return r.jsx(An,{open:e,onClose:t,title:f("add_project.title"),description:f("add_project.subtitle"),footer:r.jsxs(r.Fragment,{children:[r.jsx(me,{variant:"ghost",onClick:t,disabled:N,children:f("common.cancel")}),r.jsx(me,{variant:"primary",onClick:M,loading:N,children:f("add_project.register")})]}),children:r.jsxs("div",{className:"space-y-3",children:[r.jsx(pe,{label:f("add_project.path_label"),hint:f("add_project.path_hint"),children:r.jsxs("div",{className:"flex gap-2",children:[r.jsx(Oe,{autoFocus:!0,placeholder:f("add_project.path_placeholder"),value:c,onChange:z=>u(z.target.value),onKeyDown:z=>{z.key==="Enter"&&M()}}),r.jsxs(me,{onClick:T,disabled:S,children:[r.jsx(Od,{size:14})," ",f("add_project.search_btn")]})]})}),p&&r.jsxs("div",{className:"rounded-md border border-border bg-muted/20",children:[r.jsxs("div",{className:"flex items-center justify-between border-b border-border px-3 py-2",children:[r.jsx("span",{className:"truncate font-mono text-xs text-muted-fg",children:g||c||"~"}),r.jsxs("div",{className:"flex gap-1",children:[r.jsx(me,{size:"sm",variant:"ghost",onClick:()=>A("~"),disabled:S,children:r.jsx(vM,{size:13})}),r.jsx(me,{size:"sm",variant:"ghost",onClick:()=>k&&A(k),disabled:!k||S,children:".."}),r.jsx(me,{size:"sm",variant:"ghost",onClick:()=>m(!1),disabled:S,children:r.jsx(ps,{size:13})})]})]}),r.jsxs("div",{className:"max-h-64 overflow-y-auto p-2",children:[S&&r.jsx(ot,{}),!S&&j&&r.jsx(xt,{children:f("add_project.browser_unavailable")}),!S&&!j&&b.length===0&&r.jsx(xt,{children:f("add_project.no_folders")}),!S&&!j&&b.map(z=>r.jsxs("button",{type:"button",onClick:()=>A(z),className:"flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-left text-sm hover:bg-accent",children:[r.jsx(zx,{size:14,className:"text-muted-fg"}),r.jsx("span",{className:"truncate",children:z.split("/").pop()}),r.jsx("span",{className:"ml-auto truncate font-mono text-[10px] text-muted-fg",children:z})]},z))]})]})]})})}function HB({onPaired:e}){const[t,s]=x.useState(""),[o,l]=x.useState(VB()),[c,u]=x.useState(!1),[p,m]=x.useState(null);async function g(){const h=t.trim();if(!h){m(f("pairing.err_required"));return}u(!0),m(null);try{const b=await Vl.confirm({pairing_id:h,label:o.trim()||void 0});fo(b.token);try{localStorage.setItem(Rn.token,b.token)}catch{}e()}catch(b){m(qB(b)),u(!1)}}return r.jsx("div",{className:"flex min-h-[100dvh] w-full items-center justify-center overflow-y-auto bg-background p-4 text-foreground",children:r.jsxs("div",{className:"my-auto w-full max-w-md rounded-xl border border-border bg-card p-6 shadow-sm",children:[r.jsxs("div",{className:"mb-4 flex items-center gap-3",children:[r.jsx("div",{className:"grid size-10 place-items-center rounded-lg bg-primary/10 text-primary",children:r.jsx(Dh,{size:20})}),r.jsxs("div",{children:[r.jsx("h1",{className:"text-base font-semibold",children:f("pairing.title")}),r.jsx("p",{className:"text-xs text-muted-fg",children:f("pairing.subtitle")})]})]}),r.jsxs("ol",{className:"mb-5 space-y-1.5 rounded-lg bg-muted/50 p-3 text-xs text-muted-fg",children:[r.jsx("li",{className:"font-medium text-foreground",children:f("pairing.steps_title")}),r.jsxs("li",{children:["1. ",f("pairing.step_1")]}),r.jsxs("li",{children:["2. ",f("pairing.step_2")]}),r.jsxs("li",{children:["3. ",f("pairing.step_3")]})]}),r.jsxs("form",{className:"space-y-3",onSubmit:h=>{h.preventDefault(),g()},children:[r.jsx(pe,{label:f("pairing.code_label"),children:r.jsx(Oe,{value:t,onChange:h=>s(h.target.value),placeholder:f("pairing.code_ph"),spellCheck:!1,autoComplete:"off"})}),r.jsx(pe,{label:f("pairing.label_label"),hint:f("pairing.revoke_hint"),children:r.jsx(Oe,{value:o,onChange:h=>l(h.target.value),placeholder:f("pairing.label_ph")})}),p&&r.jsx("p",{className:"rounded-md bg-destructive/10 px-3 py-2 text-xs text-destructive",children:p}),r.jsx(me,{type:"submit",variant:"primary",size:"md",loading:c,className:"w-full justify-center",children:f(c?"pairing.linking":"pairing.submit")})]})]})})}function VB(){const e=navigator.userAgent;return/iPhone|iPad/.test(e)?"iPhone":/Android/.test(e)?"Android":/Mac/.test(e)?"Mac":/Windows/.test(e)?"Windows PC":/Linux/.test(e)?"Linux":"browser"}function qB(e){if(e instanceof qc){if(e.status===410)return f("pairing.err_expired");if(e.status===404||e.status===409)return f("pairing.err_unknown")}return f("pairing.err_generic")}function $B({...e}){return r.jsx(yC,{"data-slot":"sheet",...e})}function FB({...e}){return r.jsx(_C,{"data-slot":"sheet-portal",...e})}function GB({className:e,...t}){return r.jsx(hC,{"data-slot":"sheet-overlay",className:Ct("fixed inset-0 z-50 bg-black/10 transition-opacity duration-150 data-ending-style:opacity-0 data-starting-style:opacity-0 supports-backdrop-filter:backdrop-blur-xs",e),...t})}function YB({className:e,children:t,side:s="right",showCloseButton:o=!0,...l}){return r.jsxs(FB,{children:[r.jsx(GB,{}),r.jsxs(vC,{"data-slot":"sheet-content","data-side":s,className:Ct("fixed z-50 flex flex-col gap-4 bg-popover bg-clip-padding text-sm text-popover-foreground shadow-lg transition duration-200 ease-in-out data-ending-style:opacity-0 data-starting-style:opacity-0 data-[side=bottom]:inset-x-0 data-[side=bottom]:bottom-0 data-[side=bottom]:h-auto data-[side=bottom]:border-t data-[side=bottom]:data-ending-style:translate-y-[2.5rem] data-[side=bottom]:data-starting-style:translate-y-[2.5rem] data-[side=left]:inset-y-0 data-[side=left]:left-0 data-[side=left]:h-full data-[side=left]:w-3/4 data-[side=left]:border-r data-[side=left]:data-ending-style:translate-x-[-2.5rem] data-[side=left]:data-starting-style:translate-x-[-2.5rem] data-[side=right]:inset-y-0 data-[side=right]:right-0 data-[side=right]:h-full data-[side=right]:w-3/4 data-[side=right]:border-l data-[side=right]:data-ending-style:translate-x-[2.5rem] data-[side=right]:data-starting-style:translate-x-[2.5rem] data-[side=top]:inset-x-0 data-[side=top]:top-0 data-[side=top]:h-auto data-[side=top]:border-b data-[side=top]:data-ending-style:translate-y-[-2.5rem] data-[side=top]:data-starting-style:translate-y-[-2.5rem] data-[side=left]:sm:max-w-sm data-[side=right]:sm:max-w-sm",e),...l,children:[t,o&&r.jsxs(np,{"data-slot":"sheet-close",render:r.jsx(Ks,{variant:"ghost",className:"absolute top-3 right-3",size:"icon-sm"}),children:[r.jsx(ps,{}),r.jsx("span",{className:"sr-only",children:"Close"})]})]})]})}function XB({className:e,...t}){return r.jsx("div",{"data-slot":"sheet-header",className:Ct("flex flex-col gap-0.5 p-4",e),...t})}function KB({className:e,...t}){return r.jsx(jC,{"data-slot":"sheet-title",className:Ct("font-heading text-base font-medium text-foreground",e),...t})}function QB({className:e,...t}){return r.jsx(xC,{"data-slot":"sheet-description",className:Ct("text-sm text-muted-foreground",e),...t})}function ZB({value:e,projectPath:t,onPick:s}){const o=WB(e),l=o?JB(e):"",{data:c}=Qe(o?["/skills",t||""]:null,()=>cc.list(t)),u=c?.skills||[],p=x.useMemo(()=>{const m=l.toLowerCase();return m?u.filter(g=>g.slug.toLowerCase().includes(m)).slice(0,8):u.slice(0,8)},[u,l]);return!o||p.length===0?null:r.jsxs("div",{className:"rounded-xl border border-border bg-popover/95 text-sm shadow-md backdrop-blur",children:[r.jsx("ul",{role:"listbox",className:"max-h-64 overflow-y-auto py-1",children:p.map(m=>r.jsx("li",{children:r.jsxs("button",{type:"button",onClick:()=>s(m.slug),className:"flex w-full items-start gap-2 px-3 py-1.5 text-left hover:bg-accent hover:text-accent-foreground",children:[r.jsxs("code",{className:"rounded bg-muted px-1.5 py-0.5 text-[11px]",children:["/",m.slug]}),r.jsx("span",{className:"truncate text-xs text-muted-foreground",children:m.description})]})},m.slug))}),r.jsx("div",{className:"border-t border-border px-3 py-1.5 text-[10px] text-muted-foreground",children:"Type a name to filter · click to insert · the skill body will be loaded for this turn."})]})}function WB(e){return!!e.match(/^\s*\/([A-Za-z0-9_-]*)$/)}function JB(e){const t=e.match(/^\s*\/([A-Za-z0-9_-]*)$/);return t?t[1]:""}function e9(){try{const e=localStorage.getItem(Rn.robyChat);if(!e)return[];const t=JSON.parse(e);return Array.isArray(t)?t.filter(s=>s&&Array.isArray(s.parts)&&!s.pending):[]}catch{return[]}}function t9({open:e,onOpenChange:t}){const s=qb(),o=lt(),[l,c]=x.useState(e9),[u,p]=x.useState(""),[m,g]=x.useState(!1),[h,b]=x.useState(""),_=x.useRef(null);x.useEffect(()=>{const C=l.filter(N=>!N.pending);try{C.length?localStorage.setItem(Rn.robyChat,JSON.stringify(C)):localStorage.removeItem(Rn.robyChat)}catch{}},[l]);const k=()=>{if(!m){c([]),p("");try{localStorage.removeItem(Rn.robyChat)}catch{}}};x.useEffect(()=>()=>_.current?.abort(),[]);const E=()=>{_.current?.abort(),g(!1)},j=C=>c(N=>{const R=[...N],A=R[R.length-1];return A?.role==="assistant"&&(R[R.length-1]=C(A)),R}),w=async()=>{const C=u.trim();if(!C||m)return;const N=new Date().toISOString(),R=l.filter(z=>!z.pending).map(z=>({role:z.role,content:mx(z)}));c(z=>[...z,{role:"user",parts:[{kind:"text",text:C}],ts:N},{role:"assistant",parts:[],ts:N,pending:!0}]),p(""),g(!0);const A=new AbortController;_.current=A;let T=!1;const M=z=>{if(z?.type==="error"){T=!0,o.error(z.error||"error"),c(P=>{const D=[...P],I=D[D.length-1];return I?.role==="assistant"&&I.pending&&D.pop(),D});return}j(P=>ov(P,z))};try{await cC.stream(0,{prompt:C,previousMessages:R,model:h||void 0,channel:"web_sidebar"},M,A.signal),j(z=>({...z,pending:!1}))}catch(z){A.signal.aborted?j(P=>({...P,pending:!1,parts:[...P.parts,{kind:"text",text:f("project.chat.stopped_marker")}]})):T||(o.error(z.message),c(P=>{const D=[...P],I=D[D.length-1];return I?.role==="assistant"&&I.pending&&D.pop(),D}))}finally{_.current===A&&(_.current=null),g(!1)}},S=async C=>{try{await navigator.clipboard.writeText(C),o.info(f("project.chat.copied"))}catch{}};return r.jsx($B,{open:e,onOpenChange:t,children:r.jsxs(YB,{side:"right",className:"flex w-full flex-col gap-0 p-0 sm:max-w-xl data-[side=right]:sm:max-w-xl",children:[r.jsxs(XB,{className:"pr-12",children:[r.jsxs(KB,{className:"flex items-center gap-2",children:[r.jsx(hn,{size:18})," ",f("superagent.title",{persona:s}),r.jsx("span",{className:"text-xs font-normal text-muted-fg",children:f("superagent.badge")})]}),r.jsx(QB,{children:f("superagent.desc")})]}),r.jsx("div",{className:"flex-1 overflow-y-auto",children:l.length===0?r.jsx("p",{className:"mt-6 text-center text-sm text-muted-fg",children:f("superagent.empty",{persona:s})}):r.jsx(lv,{msgs:l,onCopy:S})}),r.jsx(dE,{msgs:l}),r.jsxs("div",{className:"border-t border-border p-3",children:[r.jsx("div",{className:"mb-1.5",children:r.jsx(ZB,{value:u,onPick:C=>p(`/${C} `)})}),r.jsx(sv,{value:u,onValueChange:p,onSubmit:()=>void w(),onStop:E,busy:m,placeholder:f("superagent.placeholder"),footer:r.jsx(rv,{value:h,onChange:b,disabled:m})}),r.jsx("div",{className:"mt-1.5 flex justify-end",children:r.jsxs(Ks,{size:"xs",variant:"ghost",onClick:k,disabled:m||l.length===0,children:[r.jsx(rn,{className:"size-3"})," ",f("superagent.new_chat")]})})]})]})})}function n9(){const e=navigator.userAgent;return/iPhone|iPad/.test(e)?"iPhone":/Android/.test(e)?"Android":/Mac/.test(e)?"Mac":/Windows/.test(e)?"Windows PC":/Linux/.test(e)?"Linux":"browser"}function a9(){const[e,t]=x.useState({status:"loading"}),[s,o]=x.useState(0),l=x.useCallback(()=>{t({status:"loading"}),o(c=>c+1)},[]);return x.useEffect(()=>{let c=!1;return(async()=>{try{const h=await fetch("/health");if(!h.ok)throw new Error(`HTTP ${h.status}`)}catch(h){c||t({status:"error",reason:String(h)});return}const u=window.location.hash.replace(/^#/,""),p=new URLSearchParams(u),m=p.get("pair");if(m){history.replaceState(null,"",window.location.pathname+window.location.search);try{const h=await Vl.confirm({pairing_id:m,label:n9(),kind:"web"});fo(h.token);try{localStorage.setItem(Rn.token,h.token)}catch{}c||t({status:"ok"});return}catch{}}const g=p.get("token");if(g){fo(g);try{localStorage.setItem(Rn.token,g)}catch{}history.replaceState(null,"",window.location.pathname+window.location.search)}else try{const h=localStorage.getItem(Rn.token);h&&fo(h)}catch{}try{const h=await fetch("/admin/web-token");if(h.ok){const b=await h.json();if(b?.token){fo(b.token);try{localStorage.setItem(Rn.token,b.token)}catch{}}}}catch{}if(!Bb()){c||t({status:"unpaired"});return}try{await he.get("/projects"),c||t({status:"ok"})}catch(h){if(h instanceof qc&&(h.status===401||h.status===403)){fo(null);try{localStorage.removeItem(Rn.token)}catch{}c||t({status:"unpaired"})}else c||t({status:"error",reason:String(h)})}})(),()=>{c=!0}},[s]),{...e,reload:l}}function s9(){const e=a9();return e.status==="loading"?r.jsx(nk,{text:f("daemon.connecting")}):e.status==="error"?r.jsx(nk,{mood:"sad",text:f("daemon.unreachable"),sub:`${f("daemon.unreachable_hint")}
|
|
644
|
+
|
|
645
|
+
${e.reason}`}):e.status==="unpaired"?r.jsx(HB,{onPaired:e.reload}):r.jsx(kL,{children:r.jsx(I4,{delay:0,children:r.jsx(r9,{})})})}function r9(){const e=Qn(),t=Kn(),[s,o]=jf(),{theme:l,toggle:c}=Hx(),u=s.get("action")==="add-project",[p,m]=x.useState(!1),g=()=>{const b=new URLSearchParams(s);b.delete("action"),o(b,{replace:!0})},h=()=>{const b=new URLSearchParams(s);b.set("action","add-project"),o(b)};return r.jsx(RL,{children:r.jsxs("div",{className:"flex h-screen w-screen overflow-hidden bg-background text-foreground","data-testid":"app-shell",children:[r.jsx(LD,{onSelect:b=>e(b),onOpenRoby:()=>m(!0),onOpenAddProject:h}),r.jsxs("main",{className:"m-2 ml-0 flex min-w-0 flex-1 flex-col overflow-hidden rounded-xl border border-border bg-card shadow-sm",children:[r.jsx(o9,{onToggleTheme:c,isDark:l==="dark",pathname:t.pathname}),r.jsx("div",{className:"flex-1 overflow-y-auto",children:r.jsxs(wk,{children:[r.jsx(qt,{path:"/",element:r.jsx(NL,{})}),r.jsx(qt,{path:"/settings/*",element:r.jsx(d7,{})}),r.jsx(qt,{path:"/m/voice/*",element:r.jsx(y7,{})}),r.jsx(qt,{path:"/m/desktop/*",element:r.jsx(S7,{})}),r.jsx(qt,{path:"/m/deck/*",element:r.jsx(P7,{})}),r.jsx(qt,{path:"/m/code/*",element:r.jsx(BB,{})}),r.jsx(qt,{path:"/p/:pid/*",element:r.jsx(h8,{})}),r.jsx(qt,{path:"*",element:r.jsx(d9,{})})]})})]}),r.jsx(UB,{open:u,onClose:g}),r.jsx(t9,{open:p,onOpenChange:m})]})})}function o9({onToggleTheme:e,isDark:t,pathname:s}){const{projects:o}=$c(),l=ML(),c=s.split("/").filter(Boolean),u=c[0]==="p"?o.find(E=>String(E.id)===c[1]):void 0,p=c[0]==="settings"?c9(c[1]):c[0]==="p"?u9(c[2]):"",m=c[0]==="p"&&c[1]==="0",g=u?.name||u?.path?.split("/").pop()||f("nav.project"),h=s==="/"?f("topbar.breadcrumb_root"):c[0]==="settings"?[f("topbar.breadcrumb_root"),f("nav.settings"),p].filter(Boolean).join(" › "):c[0]==="m"?[f("topbar.breadcrumb_root"),i9(c[1]),l].filter(Boolean).join(" › "):c[0]==="p"?m?[f("topbar.breadcrumb_root"),f("topbar.breadcrumb_base"),p].filter(Boolean).join(" › "):[f("topbar.breadcrumb_root"),f("topbar.breadcrumb_projects"),g,p].filter(Boolean).join(" › "):f("topbar.breadcrumb_root"),b=s==="/"?"":c[0]==="settings"?f("settings.subtitle"):c[0]==="p"?m?f("base.subtitle"):u?`${dC(u.kind)} · ${u.path}`:"":"",_=TL(),k=zL();return r.jsxs("header",{className:"flex h-10 shrink-0 items-center gap-2 border-b border-border/50 px-3",children:[_&&r.jsx(Kz,{collapsed:_.collapsed,onToggle:_.toggle}),r.jsxs("span",{className:"min-w-0 flex-1 truncate text-[11px] tracking-wide text-muted-fg",children:[h,b&&r.jsxs("span",{className:"text-muted-fg/50",children:[" · ",b]})]}),k,r.jsx(l9,{}),r.jsx(et,{content:f(t?"topbar.light":"topbar.dark"),children:r.jsx("button",{type:"button","data-testid":"theme-toggle",onClick:e,className:"shrink-0 rounded-md p-1.5 text-muted-fg hover:bg-accent hover:text-accent-fg",children:t?r.jsx(DM,{size:14}):r.jsx(CM,{size:14})})})]})}function l9(){const e=Z2(),t=s=>{s!==e&&(K2(s),window.location.reload())};return r.jsxs(G2,{children:[r.jsxs(Y2,{"data-testid":"lang-menu",title:f("topbar.lang_toggle"),className:"flex shrink-0 items-center gap-1 rounded-md p-1.5 text-muted-fg hover:bg-accent hover:text-accent-fg",children:[r.jsx(yM,{size:14}),r.jsx("span",{className:"text-[11px] font-medium uppercase",children:e})]}),r.jsx(X2,{align:"end",children:r.jsx(Hz,{value:e,onValueChange:s=>t(s),children:Q2.map(s=>r.jsx(Vz,{value:s.value,children:s.label},s.value))})})]})}function i9(e){switch(e){case"voice":return f("nav.modules.voice");case"desktop":return f("nav.modules.desktop");case"deck":return f("nav.modules.deck");case"code":return f("nav.modules.code");default:return e||""}}function c9(e){switch(e){case"super-agent":return f("settings.tabs.super_agent");case"engines":return f("settings.tabs.engines");case"telegram":return f("settings.tabs.telegram");case"devices":return f("settings.tabs.devices");case"appearance":return f("settings.appearance");case"config":case"advanced":return f("settings.tabs.advanced");case"identity":default:return e||""}}function u9(e){switch(e){case"chat":return f("project.nav.chat");case"telegram":return f("project.nav.telegram");case"agents":return f("project.nav.agents");case"routines":return f("project.nav.routines");case"tasks":return f("project.nav.tasks");case"mcps":return f("project.nav.mcps");case"config":return f("project.nav.config");case"workspaces":return f("base.workspaces_title");case"models":return f("settings.tabs.engines");case"agent-defaults":return f("base.defaults_title");case"sessions":return f("base.sessions_title");case"logs":return f("project.nav.logs");case"memories":return f("project.nav.memories");default:return""}}function nk({text:e,sub:t,mood:s="happy"}){return r.jsx("div",{className:"grid h-screen w-screen place-items-center bg-background text-foreground",children:r.jsxs("div",{className:"flex flex-col items-center text-center",children:[r.jsx(DC,{mood:s,className:"mb-4 text-xs"}),r.jsx("div",{className:"text-foreground",children:e}),t&&r.jsx("pre",{className:"mt-2 max-w-xl whitespace-pre-wrap text-sm text-muted-fg",children:t})]})})}function d9(){const e=Qn();return r.jsx(LC,{testId:"screen-not-found",mood:"confused",title:f("not_found.title"),titleClassName:"text-7xl",message:f("not_found.message"),action:r.jsx(Ks,{variant:"outline",onClick:()=>e("/"),children:f("not_found.home")})})}iT.createRoot(document.getElementById("root")).render(r.jsx(zc.StrictMode,{children:r.jsx(MA,{children:r.jsx(VM,{children:r.jsx(s9,{})})})}));
|
|
646
|
+
//# sourceMappingURL=index-DW7j3cXB.js.map
|