@mastra/deployer-sandbox 0.3.6 → 0.3.7
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/CHANGELOG.md +16 -0
- package/dist/studio/assets/{core-HEn8R6m8.js → core-D4uJjOI3.js} +1 -1
- package/dist/studio/assets/{index-CgvV7Gwb.js → index-xPIh3Y5m.js} +2 -2
- package/dist/studio/assets/{main-C5HXxYsv.js → main-B2YJT1E1.js} +3 -3
- package/dist/studio/index.html +1 -1
- package/package.json +6 -6
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./core-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./core-D4uJjOI3.js","./engine-compile-BkERmzkH.js","./preload-helper-PPVm8Dsz.js","./engine-javascript-CSIo_1eZ.js","./html-C2L_23MC.js","./javascript-ySlJ1b_l.js","./css-BPhBrDlE.js"])))=>i.map(i=>d[i]);
|
|
2
2
|
import{_ as Ma}from"./preload-helper-PPVm8Dsz.js";function SGt(e,t){for(var n=0;n<t.length;n++){const r=t[n];if(typeof r!="string"&&!Array.isArray(r)){for(const s in r)if(s!=="default"&&!(s in e)){const a=Object.getOwnPropertyDescriptor(r,s);a&&Object.defineProperty(e,s,a.get?a:{enumerable:!0,get:()=>r[s]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var bj=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Ll(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var rX={exports:{}},sR={};var Z$e;function kGt(){if(Z$e)return sR;Z$e=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.fragment");function n(r,s,a){var i=null;if(a!==void 0&&(i=""+a),s.key!==void 0&&(i=""+s.key),"key"in s){a={};for(var l in s)l!=="key"&&(a[l]=s[l])}else a=s;return s=a.ref,{$$typeof:e,type:r,key:i,ref:s!==void 0?s:null,props:a}}return sR.Fragment=t,sR.jsx=n,sR.jsxs=n,sR}var G$e;function OGt(){return G$e||(G$e=1,rX.exports=kGt()),rX.exports}var o=OGt(),sX={exports:{}},Hr={},Q$e;function _Gt(){if(Q$e)return Hr;Q$e=1;var e={env:{}};var t=Symbol.for("react.transitional.element"),n=Symbol.for("react.portal"),r=Symbol.for("react.fragment"),s=Symbol.for("react.strict_mode"),a=Symbol.for("react.profiler"),i=Symbol.for("react.consumer"),l=Symbol.for("react.context"),c=Symbol.for("react.forward_ref"),u=Symbol.for("react.suspense"),d=Symbol.for("react.memo"),f=Symbol.for("react.lazy"),p=Symbol.for("react.activity"),h=Symbol.iterator;function m(U){return U===null||typeof U!="object"?null:(U=h&&U[h]||U["@@iterator"],typeof U=="function"?U:null)}var v={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},y=Object.assign,b={};function x(U,$,q){this.props=U,this.context=$,this.refs=b,this.updater=q||v}x.prototype.isReactComponent={},x.prototype.setState=function(U,$){if(typeof U!="object"&&typeof U!="function"&&U!=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,U,$,"setState")},x.prototype.forceUpdate=function(U){this.updater.enqueueForceUpdate(this,U,"forceUpdate")};function S(){}S.prototype=x.prototype;function k(U,$,q){this.props=U,this.context=$,this.refs=b,this.updater=q||v}var _=k.prototype=new S;_.constructor=k,y(_,x.prototype),_.isPureReactComponent=!0;var C=Array.isArray;function T(){}var E={H:null,A:null,T:null,S:null},N=Object.prototype.hasOwnProperty;function I(U,$,q){var Z=q.ref;return{$$typeof:t,type:U,key:$,ref:Z!==void 0?Z:null,props:q}}function A(U,$){return I(U.type,$,U.props)}function R(U){return typeof U=="object"&&U!==null&&U.$$typeof===t}function L(U){var $={"=":"=0",":":"=2"};return"$"+U.replace(/[=:]/g,function(q){return $[q]})}var D=/\/+/g;function F(U,$){return typeof U=="object"&&U!==null&&U.key!=null?L(""+U.key):$.toString(36)}function H(U){switch(U.status){case"fulfilled":return U.value;case"rejected":throw U.reason;default:switch(typeof U.status=="string"?U.then(T,T):(U.status="pending",U.then(function($){U.status==="pending"&&(U.status="fulfilled",U.value=$)},function($){U.status==="pending"&&(U.status="rejected",U.reason=$)})),U.status){case"fulfilled":return U.value;case"rejected":throw U.reason}}throw U}function B(U,$,q,Z,Y){var ne=typeof U;(ne==="undefined"||ne==="boolean")&&(U=null);var J=!1;if(U===null)J=!0;else switch(ne){case"bigint":case"string":case"number":J=!0;break;case"object":switch(U.$$typeof){case t:case n:J=!0;break;case f:return J=U._init,B(J(U._payload),$,q,Z,Y)}}if(J)return Y=Y(U),J=Z===""?"."+F(U,0):Z,C(Y)?(q="",J!=null&&(q=J.replace(D,"$&/")+"/"),B(Y,$,q,"",function(le){return le})):Y!=null&&(R(Y)&&(Y=A(Y,q+(Y.key==null||U&&U.key===Y.key?"":(""+Y.key).replace(D,"$&/")+"/")+J)),$.push(Y)),1;J=0;var ee=Z===""?".":Z+":";if(C(U))for(var se=0;se<U.length;se++)Z=U[se],ne=ee+F(Z,se),J+=B(Z,$,q,ne,Y);else if(se=m(U),typeof se=="function")for(U=se.call(U),se=0;!(Z=U.next()).done;)Z=Z.value,ne=ee+F(Z,se++),J+=B(Z,$,q,ne,Y);else if(ne==="object"){if(typeof U.then=="function")return B(H(U),$,q,Z,Y);throw $=String(U),Error("Objects are not valid as a React child (found: "+($==="[object Object]"?"object with keys {"+Object.keys(U).join(", ")+"}":$)+"). If you meant to render a collection of children, use an array instead.")}return J}function z(U,$,q){if(U==null)return U;var Z=[],Y=0;return B(U,Z,"","",function(ne){return $.call(q,ne,Y++)}),Z}function V(U){if(U._status===-1){var $=U._result;$=$(),$.then(function(q){(U._status===0||U._status===-1)&&(U._status=1,U._result=q)},function(q){(U._status===0||U._status===-1)&&(U._status=2,U._result=q)}),U._status===-1&&(U._status=0,U._result=$)}if(U._status===1)return U._result.default;throw U._result}var M=typeof reportError=="function"?reportError:function(U){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var $=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof U=="object"&&U!==null&&typeof U.message=="string"?String(U.message):String(U),error:U});if(!window.dispatchEvent($))return}else if(typeof e=="object"&&typeof e.emit=="function"){e.emit("uncaughtException",U);return}console.error(U)},G={map:z,forEach:function(U,$,q){z(U,function(){$.apply(this,arguments)},q)},count:function(U){var $=0;return z(U,function(){$++}),$},toArray:function(U){return z(U,function($){return $})||[]},only:function(U){if(!R(U))throw Error("React.Children.only expected to receive a single React element child.");return U}};return Hr.Activity=p,Hr.Children=G,Hr.Component=x,Hr.Fragment=r,Hr.Profiler=a,Hr.PureComponent=k,Hr.StrictMode=s,Hr.Suspense=u,Hr.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=E,Hr.__COMPILER_RUNTIME={__proto__:null,c:function(U){return E.H.useMemoCache(U)}},Hr.cache=function(U){return function(){return U.apply(null,arguments)}},Hr.cacheSignal=function(){return null},Hr.cloneElement=function(U,$,q){if(U==null)throw Error("The argument must be a React element, but you passed "+U+".");var Z=y({},U.props),Y=U.key;if($!=null)for(ne in $.key!==void 0&&(Y=""+$.key),$)!N.call($,ne)||ne==="key"||ne==="__self"||ne==="__source"||ne==="ref"&&$.ref===void 0||(Z[ne]=$[ne]);var ne=arguments.length-2;if(ne===1)Z.children=q;else if(1<ne){for(var J=Array(ne),ee=0;ee<ne;ee++)J[ee]=arguments[ee+2];Z.children=J}return I(U.type,Y,Z)},Hr.createContext=function(U){return U={$$typeof:l,_currentValue:U,_currentValue2:U,_threadCount:0,Provider:null,Consumer:null},U.Provider=U,U.Consumer={$$typeof:i,_context:U},U},Hr.createElement=function(U,$,q){var Z,Y={},ne=null;if($!=null)for(Z in $.key!==void 0&&(ne=""+$.key),$)N.call($,Z)&&Z!=="key"&&Z!=="__self"&&Z!=="__source"&&(Y[Z]=$[Z]);var J=arguments.length-2;if(J===1)Y.children=q;else if(1<J){for(var ee=Array(J),se=0;se<J;se++)ee[se]=arguments[se+2];Y.children=ee}if(U&&U.defaultProps)for(Z in J=U.defaultProps,J)Y[Z]===void 0&&(Y[Z]=J[Z]);return I(U,ne,Y)},Hr.createRef=function(){return{current:null}},Hr.forwardRef=function(U){return{$$typeof:c,render:U}},Hr.isValidElement=R,Hr.lazy=function(U){return{$$typeof:f,_payload:{_status:-1,_result:U},_init:V}},Hr.memo=function(U,$){return{$$typeof:d,type:U,compare:$===void 0?null:$}},Hr.startTransition=function(U){var $=E.T,q={};E.T=q;try{var Z=U(),Y=E.S;Y!==null&&Y(q,Z),typeof Z=="object"&&Z!==null&&typeof Z.then=="function"&&Z.then(T,M)}catch(ne){M(ne)}finally{$!==null&&q.types!==null&&($.types=q.types),E.T=$}},Hr.unstable_useCacheRefresh=function(){return E.H.useCacheRefresh()},Hr.use=function(U){return E.H.use(U)},Hr.useActionState=function(U,$,q){return E.H.useActionState(U,$,q)},Hr.useCallback=function(U,$){return E.H.useCallback(U,$)},Hr.useContext=function(U){return E.H.useContext(U)},Hr.useDebugValue=function(){},Hr.useDeferredValue=function(U,$){return E.H.useDeferredValue(U,$)},Hr.useEffect=function(U,$){return E.H.useEffect(U,$)},Hr.useEffectEvent=function(U){return E.H.useEffectEvent(U)},Hr.useId=function(){return E.H.useId()},Hr.useImperativeHandle=function(U,$,q){return E.H.useImperativeHandle(U,$,q)},Hr.useInsertionEffect=function(U,$){return E.H.useInsertionEffect(U,$)},Hr.useLayoutEffect=function(U,$){return E.H.useLayoutEffect(U,$)},Hr.useMemo=function(U,$){return E.H.useMemo(U,$)},Hr.useOptimistic=function(U,$){return E.H.useOptimistic(U,$)},Hr.useReducer=function(U,$,q){return E.H.useReducer(U,$,q)},Hr.useRef=function(U){return E.H.useRef(U)},Hr.useState=function(U){return E.H.useState(U)},Hr.useSyncExternalStore=function(U,$,q){return E.H.useSyncExternalStore(U,$,q)},Hr.useTransition=function(){return E.H.useTransition()},Hr.version="19.2.7",Hr}var Y$e;function QN(){return Y$e||(Y$e=1,sX.exports=_Gt()),sX.exports}var g=QN();const Fe=Ll(g),YN=SGt({__proto__:null,default:Fe},[g]);var aX={exports:{}},aR={},iX={exports:{}},oX={};var K$e;function CGt(){return K$e||(K$e=1,(function(e){function t(H,B){var z=H.length;H.push(B);e:for(;0<z;){var V=z-1>>>1,M=H[V];if(0<s(M,B))H[V]=B,H[z]=M,z=V;else break e}}function n(H){return H.length===0?null:H[0]}function r(H){if(H.length===0)return null;var B=H[0],z=H.pop();if(z!==B){H[0]=z;e:for(var V=0,M=H.length,G=M>>>1;V<G;){var U=2*(V+1)-1,$=H[U],q=U+1,Z=H[q];if(0>s($,z))q<M&&0>s(Z,$)?(H[V]=Z,H[q]=z,V=q):(H[V]=$,H[U]=z,V=U);else if(q<M&&0>s(Z,z))H[V]=Z,H[q]=z,V=q;else break e}}return B}function s(H,B){var z=H.sortIndex-B.sortIndex;return z!==0?z:H.id-B.id}if(e.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var a=performance;e.unstable_now=function(){return a.now()}}else{var i=Date,l=i.now();e.unstable_now=function(){return i.now()-l}}var c=[],u=[],d=1,f=null,p=3,h=!1,m=!1,v=!1,y=!1,b=typeof setTimeout=="function"?setTimeout:null,x=typeof clearTimeout=="function"?clearTimeout:null,S=typeof setImmediate<"u"?setImmediate:null;function k(H){for(var B=n(u);B!==null;){if(B.callback===null)r(u);else if(B.startTime<=H)r(u),B.sortIndex=B.expirationTime,t(c,B);else break;B=n(u)}}function _(H){if(v=!1,k(H),!m)if(n(c)!==null)m=!0,C||(C=!0,R());else{var B=n(u);B!==null&&F(_,B.startTime-H)}}var C=!1,T=-1,E=5,N=-1;function I(){return y?!0:!(e.unstable_now()-N<E)}function A(){if(y=!1,C){var H=e.unstable_now();N=H;var B=!0;try{e:{m=!1,v&&(v=!1,x(T),T=-1),h=!0;var z=p;try{t:{for(k(H),f=n(c);f!==null&&!(f.expirationTime>H&&I());){var V=f.callback;if(typeof V=="function"){f.callback=null,p=f.priorityLevel;var M=V(f.expirationTime<=H);if(H=e.unstable_now(),typeof M=="function"){f.callback=M,k(H),B=!0;break t}f===n(c)&&r(c),k(H)}else r(c);f=n(c)}if(f!==null)B=!0;else{var G=n(u);G!==null&&F(_,G.startTime-H),B=!1}}break e}finally{f=null,p=z,h=!1}B=void 0}}finally{B?R():C=!1}}}var R;if(typeof S=="function")R=function(){S(A)};else if(typeof MessageChannel<"u"){var L=new MessageChannel,D=L.port2;L.port1.onmessage=A,R=function(){D.postMessage(null)}}else R=function(){b(A,0)};function F(H,B){T=b(function(){H(e.unstable_now())},B)}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(H){H.callback=null},e.unstable_forceFrameRate=function(H){0>H||125<H?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):E=0<H?Math.floor(1e3/H):5},e.unstable_getCurrentPriorityLevel=function(){return p},e.unstable_next=function(H){switch(p){case 1:case 2:case 3:var B=3;break;default:B=p}var z=p;p=B;try{return H()}finally{p=z}},e.unstable_requestPaint=function(){y=!0},e.unstable_runWithPriority=function(H,B){switch(H){case 1:case 2:case 3:case 4:case 5:break;default:H=3}var z=p;p=H;try{return B()}finally{p=z}},e.unstable_scheduleCallback=function(H,B,z){var V=e.unstable_now();switch(typeof z=="object"&&z!==null?(z=z.delay,z=typeof z=="number"&&0<z?V+z:V):z=V,H){case 1:var M=-1;break;case 2:M=250;break;case 5:M=1073741823;break;case 4:M=1e4;break;default:M=5e3}return M=z+M,H={id:d++,callback:B,priorityLevel:H,startTime:z,expirationTime:M,sortIndex:-1},z>V?(H.sortIndex=z,t(u,H),n(c)===null&&H===n(u)&&(v?(x(T),T=-1):v=!0,F(_,z-V))):(H.sortIndex=M,t(c,H),m||h||(m=!0,C||(C=!0,R()))),H},e.unstable_shouldYield=I,e.unstable_wrapCallback=function(H){var B=p;return function(){var z=p;p=B;try{return H.apply(this,arguments)}finally{p=z}}}})(oX)),oX}var X$e;function EGt(){return X$e||(X$e=1,iX.exports=CGt()),iX.exports}var lX={exports:{}},Eu={};var J$e;function TGt(){if(J$e)return Eu;J$e=1;var e=QN();function t(c){var u="https://react.dev/errors/"+c;if(1<arguments.length){u+="?args[]="+encodeURIComponent(arguments[1]);for(var d=2;d<arguments.length;d++)u+="&args[]="+encodeURIComponent(arguments[d])}return"Minified React error #"+c+"; visit "+u+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function n(){}var r={d:{f:n,r:function(){throw Error(t(522))},D:n,C:n,L:n,m:n,X:n,S:n,M:n},p:0,findDOMNode:null},s=Symbol.for("react.portal");function a(c,u,d){var f=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:s,key:f==null?null:""+f,children:c,containerInfo:u,implementation:d}}var i=e.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function l(c,u){if(c==="font")return"";if(typeof u=="string")return u==="use-credentials"?u:""}return Eu.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=r,Eu.createPortal=function(c,u){var d=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!u||u.nodeType!==1&&u.nodeType!==9&&u.nodeType!==11)throw Error(t(299));return a(c,u,null,d)},Eu.flushSync=function(c){var u=i.T,d=r.p;try{if(i.T=null,r.p=2,c)return c()}finally{i.T=u,r.p=d,r.d.f()}},Eu.preconnect=function(c,u){typeof c=="string"&&(u?(u=u.crossOrigin,u=typeof u=="string"?u==="use-credentials"?u:"":void 0):u=null,r.d.C(c,u))},Eu.prefetchDNS=function(c){typeof c=="string"&&r.d.D(c)},Eu.preinit=function(c,u){if(typeof c=="string"&&u&&typeof u.as=="string"){var d=u.as,f=l(d,u.crossOrigin),p=typeof u.integrity=="string"?u.integrity:void 0,h=typeof u.fetchPriority=="string"?u.fetchPriority:void 0;d==="style"?r.d.S(c,typeof u.precedence=="string"?u.precedence:void 0,{crossOrigin:f,integrity:p,fetchPriority:h}):d==="script"&&r.d.X(c,{crossOrigin:f,integrity:p,fetchPriority:h,nonce:typeof u.nonce=="string"?u.nonce:void 0})}},Eu.preinitModule=function(c,u){if(typeof c=="string")if(typeof u=="object"&&u!==null){if(u.as==null||u.as==="script"){var d=l(u.as,u.crossOrigin);r.d.M(c,{crossOrigin:d,integrity:typeof u.integrity=="string"?u.integrity:void 0,nonce:typeof u.nonce=="string"?u.nonce:void 0})}}else u==null&&r.d.M(c)},Eu.preload=function(c,u){if(typeof c=="string"&&typeof u=="object"&&u!==null&&typeof u.as=="string"){var d=u.as,f=l(d,u.crossOrigin);r.d.L(c,d,{crossOrigin:f,integrity:typeof u.integrity=="string"?u.integrity:void 0,nonce:typeof u.nonce=="string"?u.nonce:void 0,type:typeof u.type=="string"?u.type:void 0,fetchPriority:typeof u.fetchPriority=="string"?u.fetchPriority:void 0,referrerPolicy:typeof u.referrerPolicy=="string"?u.referrerPolicy:void 0,imageSrcSet:typeof u.imageSrcSet=="string"?u.imageSrcSet:void 0,imageSizes:typeof u.imageSizes=="string"?u.imageSizes:void 0,media:typeof u.media=="string"?u.media:void 0})}},Eu.preloadModule=function(c,u){if(typeof c=="string")if(u){var d=l(u.as,u.crossOrigin);r.d.m(c,{as:typeof u.as=="string"&&u.as!=="script"?u.as:void 0,crossOrigin:d,integrity:typeof u.integrity=="string"?u.integrity:void 0})}else r.d.m(c)},Eu.requestFormReset=function(c){r.d.r(c)},Eu.unstable_batchedUpdates=function(c,u){return c(u)},Eu.useFormState=function(c,u,d){return i.H.useFormState(c,u,d)},Eu.useFormStatus=function(){return i.H.useHostTransitionStatus()},Eu.version="19.2.7",Eu}var eMe;function Plt(){if(eMe)return lX.exports;eMe=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(),lX.exports=TGt(),lX.exports}var tMe;function jGt(){if(tMe)return aR;tMe=1;var e={env:{}};var t=EGt(),n=QN(),r=Plt();function s(w){var O="https://react.dev/errors/"+w;if(1<arguments.length){O+="?args[]="+encodeURIComponent(arguments[1]);for(var j=2;j<arguments.length;j++)O+="&args[]="+encodeURIComponent(arguments[j])}return"Minified React error #"+w+"; visit "+O+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function a(w){return!(!w||w.nodeType!==1&&w.nodeType!==9&&w.nodeType!==11)}function i(w){var O=w,j=w;if(w.alternate)for(;O.return;)O=O.return;else{w=O;do O=w,(O.flags&4098)!==0&&(j=O.return),w=O.return;while(w)}return O.tag===3?j:null}function l(w){if(w.tag===13){var O=w.memoizedState;if(O===null&&(w=w.alternate,w!==null&&(O=w.memoizedState)),O!==null)return O.dehydrated}return null}function c(w){if(w.tag===31){var O=w.memoizedState;if(O===null&&(w=w.alternate,w!==null&&(O=w.memoizedState)),O!==null)return O.dehydrated}return null}function u(w){if(i(w)!==w)throw Error(s(188))}function d(w){var O=w.alternate;if(!O){if(O=i(w),O===null)throw Error(s(188));return O!==w?null:w}for(var j=w,P=O;;){var W=j.return;if(W===null)break;var Q=W.alternate;if(Q===null){if(P=W.return,P!==null){j=P;continue}break}if(W.child===Q.child){for(Q=W.child;Q;){if(Q===j)return u(W),w;if(Q===P)return u(W),O;Q=Q.sibling}throw Error(s(188))}if(j.return!==P.return)j=W,P=Q;else{for(var ie=!1,Oe=W.child;Oe;){if(Oe===j){ie=!0,j=W,P=Q;break}if(Oe===P){ie=!0,P=W,j=Q;break}Oe=Oe.sibling}if(!ie){for(Oe=Q.child;Oe;){if(Oe===j){ie=!0,j=Q,P=W;break}if(Oe===P){ie=!0,P=Q,j=W;break}Oe=Oe.sibling}if(!ie)throw Error(s(189))}}if(j.alternate!==P)throw Error(s(190))}if(j.tag!==3)throw Error(s(188));return j.stateNode.current===j?w:O}function f(w){var O=w.tag;if(O===5||O===26||O===27||O===6)return w;for(w=w.child;w!==null;){if(O=f(w),O!==null)return O;w=w.sibling}return null}var p=Object.assign,h=Symbol.for("react.element"),m=Symbol.for("react.transitional.element"),v=Symbol.for("react.portal"),y=Symbol.for("react.fragment"),b=Symbol.for("react.strict_mode"),x=Symbol.for("react.profiler"),S=Symbol.for("react.consumer"),k=Symbol.for("react.context"),_=Symbol.for("react.forward_ref"),C=Symbol.for("react.suspense"),T=Symbol.for("react.suspense_list"),E=Symbol.for("react.memo"),N=Symbol.for("react.lazy"),I=Symbol.for("react.activity"),A=Symbol.for("react.memo_cache_sentinel"),R=Symbol.iterator;function L(w){return w===null||typeof w!="object"?null:(w=R&&w[R]||w["@@iterator"],typeof w=="function"?w:null)}var D=Symbol.for("react.client.reference");function F(w){if(w==null)return null;if(typeof w=="function")return w.$$typeof===D?null:w.displayName||w.name||null;if(typeof w=="string")return w;switch(w){case y:return"Fragment";case x:return"Profiler";case b:return"StrictMode";case C:return"Suspense";case T:return"SuspenseList";case I:return"Activity"}if(typeof w=="object")switch(w.$$typeof){case v:return"Portal";case k:return w.displayName||"Context";case S:return(w._context.displayName||"Context")+".Consumer";case _:var O=w.render;return w=w.displayName,w||(w=O.displayName||O.name||"",w=w!==""?"ForwardRef("+w+")":"ForwardRef"),w;case E:return O=w.displayName||null,O!==null?O:F(w.type)||"Memo";case N:O=w._payload,w=w._init;try{return F(w(O))}catch{}}return null}var H=Array.isArray,B=n.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,z=r.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,V={pending:!1,data:null,method:null,action:null},M=[],G=-1;function U(w){return{current:w}}function $(w){0>G||(w.current=M[G],M[G]=null,G--)}function q(w,O){G++,M[G]=w.current,w.current=O}var Z=U(null),Y=U(null),ne=U(null),J=U(null);function ee(w,O){switch(q(ne,O),q(Y,w),q(Z,null),O.nodeType){case 9:case 11:w=(w=O.documentElement)&&(w=w.namespaceURI)?g$e(w):0;break;default:if(w=O.tagName,O=O.namespaceURI)O=g$e(O),w=v$e(O,w);else switch(w){case"svg":w=1;break;case"math":w=2;break;default:w=0}}$(Z),q(Z,w)}function se(){$(Z),$(Y),$(ne)}function le(w){w.memoizedState!==null&&q(J,w);var O=Z.current,j=v$e(O,w.type);O!==j&&(q(Y,w),q(Z,j))}function X(w){Y.current===w&&($(Z),$(Y)),J.current===w&&($(J),eR._currentValue=V)}var te,re;function pe(w){if(te===void 0)try{throw Error()}catch(j){var O=j.stack.trim().match(/\n( *(at )?)/);te=O&&O[1]||"",re=-1<j.stack.indexOf(`
|
|
3
3
|
at`)?" (<anonymous>)":-1<j.stack.indexOf("@")?"@unknown:0:0":""}return`
|
|
4
4
|
`+te+w+re}var ce=!1;function Se(w,O){if(!w||ce)return"";ce=!0;var j=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var P={DetermineComponentFrameRoot:function(){try{if(O){var Nt=function(){throw Error()};if(Object.defineProperty(Nt.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(Nt,[])}catch(ht){var lt=ht}Reflect.construct(w,[],Nt)}else{try{Nt.call()}catch(ht){lt=ht}w.call(Nt.prototype)}}else{try{throw Error()}catch(ht){lt=ht}(Nt=w())&&typeof Nt.catch=="function"&&Nt.catch(function(){})}}catch(ht){if(ht&<&&typeof ht.stack=="string")return[ht.stack,lt.stack]}return[null,null]}};P.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var W=Object.getOwnPropertyDescriptor(P.DetermineComponentFrameRoot,"name");W&&W.configurable&&Object.defineProperty(P.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var Q=P.DetermineComponentFrameRoot(),ie=Q[0],Oe=Q[1];if(ie&&Oe){var qe=ie.split(`
|
|
@@ -231,7 +231,7 @@ attempted value: ${i}
|
|
|
231
231
|
\${}
|
|
232
232
|
}
|
|
233
233
|
}`,{label:"class",detail:"definition",type:"keyword"}),nf('import {${names}} from "${module}"\n${}',{label:"import",detail:"named",type:"keyword"}),nf('import ${name} from "${module}"\n${}',{label:"import",detail:"default",type:"keyword"})],NSt=Gke.concat([nf("interface ${name} {\n ${}\n}",{label:"interface",detail:"definition",type:"keyword"}),nf("type ${name} = ${type}",{label:"type",detail:"definition",type:"keyword"}),nf("enum ${name} {\n ${}\n}",{label:"enum",detail:"definition",type:"keyword"})]),Z8e=new P0t,ISt=new Set(["Script","Block","FunctionExpression","FunctionDeclaration","ArrowFunction","MethodDeclaration","ForStatement"]);function NR(e){return(t,n)=>{let r=t.node.getChild("VariableDefinition");return r&&n(r,e),!0}}const wVn=["FunctionDeclaration"],SVn={FunctionDeclaration:NR("function"),ClassDeclaration:NR("class"),ClassExpression:()=>!0,EnumDeclaration:NR("constant"),TypeAliasDeclaration:NR("type"),NamespaceDeclaration:NR("namespace"),VariableDefinition(e,t){e.matchContext(wVn)||t(e,"variable")},TypeDefinition(e,t){t(e,"type")},__proto__:null};function ASt(e,t){let n=Z8e.get(t);if(n)return n;let r=[],s=!0;function a(i,l){let c=e.sliceString(i.from,i.to);r.push({label:c,type:l})}return t.cursor(Da.IncludeAnonymous).iterate(i=>{if(s)s=!1;else if(i.name){let l=SVn[i.name];if(l&&l(i,a)||ISt.has(i.name))return!1}else if(i.to-i.from>8192){for(let l of ASt(e,i.node))r.push(l);return!1}}),Z8e.set(t,r),r}const BB=/^[\w$\xa1-\uffff][\w$\d\xa1-\uffff]*$/,Qke=["TemplateString","String","RegExp","LineComment","BlockComment","VariableDefinition","TypeDefinition","Label","PropertyDefinition","PropertyName","PrivatePropertyDefinition","PrivatePropertyName","JSXText","JSXAttributeValue","JSXOpenTag","JSXCloseTag","JSXSelfClosingTag",".","?."];function RSt(e){let t=gi(e.state).resolveInner(e.pos,-1);if(Qke.indexOf(t.name)>-1)return null;let n=t.name=="VariableName"||t.to-t.from<20&&BB.test(e.state.sliceDoc(t.from,t.to));if(!n&&!e.explicit)return null;let r=[];for(let s=t;s;s=s.parent)ISt.has(s.name)&&(r=r.concat(ASt(e.state.doc,s)));return{options:r,from:n?t.from:e.pos,validFor:BB}}function Zee(e,t,n){var r;let s=[];for(;;){let a=t.firstChild,i;if(a?.name=="VariableName")return s.push(e(a)),{path:s.reverse(),name:n};if(a?.name=="MemberExpression"&&((r=i=a.lastChild)===null||r===void 0?void 0:r.name)=="PropertyName")s.push(e(i)),t=a;else return null}}function PSt(e){let t=r=>e.state.doc.sliceString(r.from,r.to),n=gi(e.state).resolveInner(e.pos,-1);return n.name=="PropertyName"?Zee(t,n.parent,t(n)):(n.name=="."||n.name=="?.")&&n.parent.name=="MemberExpression"?Zee(t,n.parent,""):Qke.indexOf(n.name)>-1?null:n.name=="VariableName"||n.to-n.from<20&&BB.test(t(n))?{path:[],name:t(n)}:n.name=="MemberExpression"?Zee(t,n,""):e.explicit?{path:[],name:""}:null}function kVn(e,t){let n=e,r=[],s=new Set;for(let a=0;;a++){for(let l of(Object.getOwnPropertyNames||Object.keys)(e)){if(!/^[a-zA-Z_$\xaa-\uffdc][\w$\xaa-\uffdc]*$/.test(l)||s.has(l))continue;s.add(l);let c;try{c=n[l]}catch{continue}r.push({label:l,type:typeof c=="function"?/^[A-Z]/.test(l)?"class":t?"function":"method":t?"variable":"property",boost:-a})}let i=Object.getPrototypeOf(e);if(!i)return r;e=i}}function OVn(e){let t=new Map;return n=>{let r=PSt(n);if(!r)return null;let s=e;for(let i of r.path)if(s=s[i],!s)return null;let a=t.get(s);return a||t.set(s,a=kVn(s,!r.path.length)),{from:n.pos-r.name.length,options:a,validFor:BB}}}const em=VO.define({name:"javascript",parser:xVn.configure({props:[J_.add({IfStatement:XT({except:/^\s*({|else\b)/}),TryStatement:XT({except:/^\s*({|catch\b|finally\b)/}),LabeledStatement:y7n,SwitchBody:e=>{let t=e.textAfter,n=/^\s*\}/.test(t),r=/^\s*(case|default)\b/.test(t);return e.baseIndent+(n?0:r?1:2)*e.unit},Block:v7n({closing:"}"}),ArrowFunction:e=>e.baseIndent+e.unit,"TemplateString BlockComment":()=>null,"Statement Property":XT({except:/^\s*{/}),JSXElement(e){let t=/^\s*<\//.test(e.textAfter);return e.lineIndent(e.node.from)+(t?0:e.unit)},JSXEscape(e){let t=/\s*\}/.test(e.textAfter);return e.lineIndent(e.node.from)+(t?0:e.unit)},"JSXOpenTag JSXSelfClosingTag"(e){return e.column(e.node.from)+e.unit}}),eC.add({"Block ClassBody SwitchBody EnumBody ObjectExpression ArrayExpression ObjectType":Tke,BlockComment(e){return{from:e.from+2,to:e.to-2}},JSXElement(e){let t=e.firstChild;if(!t||t.name=="JSXSelfClosingTag")return null;let n=e.lastChild;return{from:t.to,to:n.type.isError?e.to:n.from}},"JSXSelfClosingTag JSXOpenTag"(e){var t;let n=(t=e.firstChild)===null||t===void 0?void 0:t.nextSibling,r=e.lastChild;return!n||n.type.isError?null:{from:n.to,to:r.type.isError?e.to:r.from}}})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"`"]},commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\}|<\/)$/,wordChars:"$"}}),$St={test:e=>/^JSX/.test(e.name),facet:nW({commentTokens:{block:{open:"{/*",close:"*/}"}}})},Yke=em.configure({dialect:"ts"},"typescript"),Kke=em.configure({dialect:"jsx",props:[_ke.add(e=>e.isTop?[$St]:void 0)]}),Xke=em.configure({dialect:"jsx ts",props:[_ke.add(e=>e.isTop?[$St]:void 0)]},"typescript");let MSt=e=>({label:e,type:"keyword"});const DSt="break case const continue default delete export extends false finally in instanceof let new return static super switch this throw true typeof var yield".split(" ").map(MSt),_Vn=DSt.concat(["declare","implements","private","protected","public"].map(MSt));function UB(e={}){let t=e.jsx?e.typescript?Xke:Kke:e.typescript?Yke:em,n=e.typescript?NSt.concat(_Vn):Gke.concat(DSt);return new WO(t,[em.data.of({autocomplete:rBn(Qke,$1t(n))}),em.data.of({autocomplete:RSt}),e.jsx?LSt:[]])}function CVn(e){for(;;){if(e.name=="JSXOpenTag"||e.name=="JSXSelfClosingTag"||e.name=="JSXFragmentTag")return e;if(e.name=="JSXEscape"||!e.parent)return null;e=e.parent}}function G8e(e,t,n=e.length){for(let r=t?.firstChild;r;r=r.nextSibling)if(r.name=="JSXIdentifier"||r.name=="JSXBuiltin"||r.name=="JSXNamespacedName"||r.name=="JSXMemberExpression")return e.sliceString(r.from,Math.min(r.to,n));return""}const EVn=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent),LSt=At.inputHandler.of((e,t,n,r,s)=>{if((EVn?e.composing:e.compositionStarted)||e.state.readOnly||t!=n||r!=">"&&r!="/"||!em.isActiveAt(e.state,t,-1))return!1;let a=s(),{state:i}=a,l=i.changeByRange(c=>{var u;let{head:d}=c,f=gi(i).resolveInner(d-1,-1),p;if(f.name=="JSXStartTag"&&(f=f.parent),!(i.doc.sliceString(d-1,d)!=r||f.name=="JSXAttributeValue"&&f.to>d)){if(r==">"&&f.name=="JSXFragmentTag")return{range:c,changes:{from:d,insert:"</>"}};if(r=="/"&&f.name=="JSXStartCloseTag"){let h=f.parent,m=h.parent;if(m&&h.from==d-2&&((p=G8e(i.doc,m.firstChild,d))||((u=m.firstChild)===null||u===void 0?void 0:u.name)=="JSXFragmentTag")){let v=`${p}>`;return{range:wt.cursor(d+v.length,-1),changes:{from:d,insert:v}}}}else if(r==">"){let h=CVn(f);if(h&&h.name=="JSXOpenTag"&&!/^\/?>|^<\//.test(i.doc.sliceString(d,d+2))&&(p=G8e(i.doc,h,d)))return{range:c,changes:{from:d,insert:`</${p}>`}}}}return{range:c}});return l.changes.empty?!1:(e.dispatch([a,i.update(l,{userEvent:"input.complete",scrollIntoView:!0})]),!0)});function TVn(e,t){return t||(t={parserOptions:{ecmaVersion:2019,sourceType:"module"},env:{browser:!0,node:!0,es6:!0,es2015:!0,es2017:!0,es2020:!0},rules:{}},e.getRules().forEach((n,r)=>{var s;!((s=n.meta.docs)===null||s===void 0)&&s.recommended&&(t.rules[r]=2)})),n=>{let{state:r}=n,s=[];for(let{from:a,to:i}of em.findRegions(r)){let l=r.doc.lineAt(a),c={line:l.number-1,col:a-l.from,pos:a};for(let u of e.verify(r.sliceDoc(a,i),t))s.push(jVn(u,r.doc,c))}return s}}function Q8e(e,t,n,r){return n.line(e+r.line).from+t+(e==1?r.col-1:-1)}function jVn(e,t,n){let r=Q8e(e.line,e.column,t,n),s={from:r,to:e.endLine!=null&&e.endColumn!=1?Q8e(e.endLine,e.endColumn,t,n):r,message:e.message,source:e.ruleId?"eslint:"+e.ruleId:"eslint",severity:e.severity==1?"warning":"error"};if(e.fix){let{range:a,text:i}=e.fix,l=a[0]+n.pos-r,c=a[1]+n.pos-r;s.actions=[{name:"fix",apply(u,d){u.dispatch({changes:{from:d+l,to:d+c,insert:i},scrollIntoView:!0})}}]}return s}const dF=Object.freeze(Object.defineProperty({__proto__:null,autoCloseTags:LSt,completionPath:PSt,esLint:TVn,javascript:UB,javascriptLanguage:em,jsxLanguage:Kke,localCompletionSource:RSt,scopeCompletionSource:OVn,snippets:Gke,tsxLanguage:Xke,typescriptLanguage:Yke,typescriptSnippets:NSt},Symbol.toStringTag,{value:"Module"})),IR=["_blank","_self","_top","_parent"],Gee=["ascii","utf-8","utf-16","latin1","latin1"],Qee=["get","post","put","delete"],Yee=["application/x-www-form-urlencoded","multipart/form-data","text/plain"],lp=["true","false"],Jn={},NVn={a:{attrs:{href:null,ping:null,type:null,media:null,target:IR,hreflang:null}},abbr:Jn,address:Jn,area:{attrs:{alt:null,coords:null,href:null,target:null,ping:null,media:null,hreflang:null,type:null,shape:["default","rect","circle","poly"]}},article:Jn,aside:Jn,audio:{attrs:{src:null,mediagroup:null,crossorigin:["anonymous","use-credentials"],preload:["none","metadata","auto"],autoplay:["autoplay"],loop:["loop"],controls:["controls"]}},b:Jn,base:{attrs:{href:null,target:IR}},bdi:Jn,bdo:Jn,blockquote:{attrs:{cite:null}},body:Jn,br:Jn,button:{attrs:{form:null,formaction:null,name:null,value:null,autofocus:["autofocus"],disabled:["autofocus"],formenctype:Yee,formmethod:Qee,formnovalidate:["novalidate"],formtarget:IR,type:["submit","reset","button"]}},canvas:{attrs:{width:null,height:null}},caption:Jn,center:Jn,cite:Jn,code:Jn,col:{attrs:{span:null}},colgroup:{attrs:{span:null}},command:{attrs:{type:["command","checkbox","radio"],label:null,icon:null,radiogroup:null,command:null,title:null,disabled:["disabled"],checked:["checked"]}},data:{attrs:{value:null}},datagrid:{attrs:{disabled:["disabled"],multiple:["multiple"]}},datalist:{attrs:{data:null}},dd:Jn,del:{attrs:{cite:null,datetime:null}},details:{attrs:{open:["open"]}},dfn:Jn,div:Jn,dl:Jn,dt:Jn,em:Jn,embed:{attrs:{src:null,type:null,width:null,height:null}},eventsource:{attrs:{src:null}},fieldset:{attrs:{disabled:["disabled"],form:null,name:null}},figcaption:Jn,figure:Jn,footer:Jn,form:{attrs:{action:null,name:null,"accept-charset":Gee,autocomplete:["on","off"],enctype:Yee,method:Qee,novalidate:["novalidate"],target:IR}},h1:Jn,h2:Jn,h3:Jn,h4:Jn,h5:Jn,h6:Jn,head:{children:["title","base","link","style","meta","script","noscript","command"]},header:Jn,hgroup:Jn,hr:Jn,html:{attrs:{manifest:null}},i:Jn,iframe:{attrs:{src:null,srcdoc:null,name:null,width:null,height:null,sandbox:["allow-top-navigation","allow-same-origin","allow-forms","allow-scripts"],seamless:["seamless"]}},img:{attrs:{alt:null,src:null,ismap:null,usemap:null,width:null,height:null,crossorigin:["anonymous","use-credentials"]}},input:{attrs:{alt:null,dirname:null,form:null,formaction:null,height:null,list:null,max:null,maxlength:null,min:null,name:null,pattern:null,placeholder:null,size:null,src:null,step:null,value:null,width:null,accept:["audio/*","video/*","image/*"],autocomplete:["on","off"],autofocus:["autofocus"],checked:["checked"],disabled:["disabled"],formenctype:Yee,formmethod:Qee,formnovalidate:["novalidate"],formtarget:IR,multiple:["multiple"],readonly:["readonly"],required:["required"],type:["hidden","text","search","tel","url","email","password","datetime","date","month","week","time","datetime-local","number","range","color","checkbox","radio","file","submit","image","reset","button"]}},ins:{attrs:{cite:null,datetime:null}},kbd:Jn,keygen:{attrs:{challenge:null,form:null,name:null,autofocus:["autofocus"],disabled:["disabled"],keytype:["RSA"]}},label:{attrs:{for:null,form:null}},legend:Jn,li:{attrs:{value:null}},link:{attrs:{href:null,type:null,hreflang:null,media:null,sizes:["all","16x16","16x16 32x32","16x16 32x32 64x64"]}},map:{attrs:{name:null}},mark:Jn,menu:{attrs:{label:null,type:["list","context","toolbar"]}},meta:{attrs:{content:null,charset:Gee,name:["viewport","application-name","author","description","generator","keywords"],"http-equiv":["content-language","content-type","default-style","refresh"]}},meter:{attrs:{value:null,min:null,low:null,high:null,max:null,optimum:null}},nav:Jn,noscript:Jn,object:{attrs:{data:null,type:null,name:null,usemap:null,form:null,width:null,height:null,typemustmatch:["typemustmatch"]}},ol:{attrs:{reversed:["reversed"],start:null,type:["1","a","A","i","I"]},children:["li","script","template","ul","ol"]},optgroup:{attrs:{disabled:["disabled"],label:null}},option:{attrs:{disabled:["disabled"],label:null,selected:["selected"],value:null}},output:{attrs:{for:null,form:null,name:null}},p:Jn,param:{attrs:{name:null,value:null}},pre:Jn,progress:{attrs:{value:null,max:null}},q:{attrs:{cite:null}},rp:Jn,rt:Jn,ruby:Jn,samp:Jn,script:{attrs:{type:["text/javascript"],src:null,async:["async"],defer:["defer"],charset:Gee}},section:Jn,select:{attrs:{form:null,name:null,size:null,autofocus:["autofocus"],disabled:["disabled"],multiple:["multiple"]}},slot:{attrs:{name:null}},small:Jn,source:{attrs:{src:null,type:null,media:null}},span:Jn,strong:Jn,style:{attrs:{type:["text/css"],media:null,scoped:null}},sub:Jn,summary:Jn,sup:Jn,table:Jn,tbody:Jn,td:{attrs:{colspan:null,rowspan:null,headers:null}},template:Jn,textarea:{attrs:{dirname:null,form:null,maxlength:null,name:null,placeholder:null,rows:null,cols:null,autofocus:["autofocus"],disabled:["disabled"],readonly:["readonly"],required:["required"],wrap:["soft","hard"]}},tfoot:Jn,th:{attrs:{colspan:null,rowspan:null,headers:null,scope:["row","col","rowgroup","colgroup"]}},thead:Jn,time:{attrs:{datetime:null}},title:Jn,tr:Jn,track:{attrs:{src:null,label:null,default:null,kind:["subtitles","captions","descriptions","chapters","metadata"],srclang:null}},ul:{children:["li","script","template","ul","ol"]},var:Jn,video:{attrs:{src:null,poster:null,width:null,height:null,crossorigin:["anonymous","use-credentials"],preload:["auto","metadata","none"],autoplay:["autoplay"],mediagroup:["movie"],muted:["muted"],controls:["controls"]}},wbr:Jn},FSt={accesskey:null,class:null,contenteditable:lp,contextmenu:null,dir:["ltr","rtl","auto"],draggable:["true","false","auto"],dropzone:["copy","move","link","string:","file:"],hidden:["hidden"],id:null,inert:["inert"],itemid:null,itemprop:null,itemref:null,itemscope:["itemscope"],itemtype:null,lang:["ar","bn","de","en-GB","en-US","es","fr","hi","id","ja","pa","pt","ru","tr","zh"],spellcheck:lp,autocorrect:lp,autocapitalize:lp,style:null,tabindex:null,title:null,translate:["yes","no"],rel:["stylesheet","alternate","author","bookmark","help","license","next","nofollow","noreferrer","prefetch","prev","search","tag"],role:"alert application article banner button cell checkbox complementary contentinfo dialog document feed figure form grid gridcell heading img list listbox listitem main navigation region row rowgroup search switch tab table tabpanel textbox timer".split(" "),"aria-activedescendant":null,"aria-atomic":lp,"aria-autocomplete":["inline","list","both","none"],"aria-busy":lp,"aria-checked":["true","false","mixed","undefined"],"aria-controls":null,"aria-describedby":null,"aria-disabled":lp,"aria-dropeffect":null,"aria-expanded":["true","false","undefined"],"aria-flowto":null,"aria-grabbed":["true","false","undefined"],"aria-haspopup":lp,"aria-hidden":lp,"aria-invalid":["true","false","grammar","spelling"],"aria-label":null,"aria-labelledby":null,"aria-level":null,"aria-live":["off","polite","assertive"],"aria-multiline":lp,"aria-multiselectable":lp,"aria-owns":null,"aria-posinset":null,"aria-pressed":["true","false","mixed","undefined"],"aria-readonly":lp,"aria-relevant":null,"aria-required":lp,"aria-selected":["true","false","undefined"],"aria-setsize":null,"aria-sort":["ascending","descending","none","other"],"aria-valuemax":null,"aria-valuemin":null,"aria-valuenow":null,"aria-valuetext":null},zSt="beforeunload copy cut dragstart dragover dragleave dragenter dragend drag paste focus blur change click load mousedown mouseenter mouseleave mouseup keydown keyup resize scroll unload".split(" ").map(e=>"on"+e);for(let e of zSt)FSt[e]=null;class EM{constructor(t,n){this.tags={...NVn,...t},this.globalAttrs={...FSt,...n},this.allTags=Object.keys(this.tags),this.globalAttrNames=Object.keys(this.globalAttrs)}}EM.default=new EM;function Kj(e,t,n=e.length){if(!t)return"";let r=t.firstChild,s=r&&r.getChild("TagName");return s?e.sliceString(s.from,Math.min(s.to,n)):""}function Xj(e,t=!1){for(;e;e=e.parent)if(e.name=="Element")if(t)t=!1;else return e;return null}function BSt(e,t,n){let r=n.tags[Kj(e,Xj(t))];return r?.children||n.allTags}function Jke(e,t){let n=[];for(let r=Xj(t);r&&!r.type.isTop;r=Xj(r.parent)){let s=Kj(e,r);if(s&&r.lastChild.name=="CloseTag")break;s&&n.indexOf(s)<0&&(t.name=="EndTag"||t.from>=r.firstChild.to)&&n.push(s)}return n}const USt=/^[:\-\.\w\u00b7-\uffff]*$/;function Y8e(e,t,n,r,s){let a=/\s*>/.test(e.sliceDoc(s,s+5))?"":">",i=Xj(n,n.name=="StartTag"||n.name=="TagName");return{from:r,to:s,options:BSt(e.doc,i,t).map(l=>({label:l,type:"type"})).concat(Jke(e.doc,n).map((l,c)=>({label:"/"+l,apply:"/"+l+a,type:"type",boost:99-c}))),validFor:/^\/?[:\-\.\w\u00b7-\uffff]*$/}}function K8e(e,t,n,r){let s=/\s*>/.test(e.sliceDoc(r,r+5))?"":">";return{from:n,to:r,options:Jke(e.doc,t).map((a,i)=>({label:a,apply:a+s,type:"type",boost:99-i})),validFor:USt}}function IVn(e,t,n,r){let s=[],a=0;for(let i of BSt(e.doc,n,t))s.push({label:"<"+i,type:"type"});for(let i of Jke(e.doc,n))s.push({label:"</"+i+">",type:"type",boost:99-a++});return{from:r,to:r,options:s,validFor:/^<\/?[:\-\.\w\u00b7-\uffff]*$/}}function AVn(e,t,n,r,s){let a=Xj(n),i=a?t.tags[Kj(e.doc,a)]:null,l=i&&i.attrs?Object.keys(i.attrs):[],c=i&&i.globalAttrs===!1?l:l.length?l.concat(t.globalAttrNames):t.globalAttrNames;return{from:r,to:s,options:c.map(u=>({label:u,type:"property"})),validFor:USt}}function RVn(e,t,n,r,s){var a;let i=(a=n.parent)===null||a===void 0?void 0:a.getChild("AttributeName"),l=[],c;if(i){let u=e.sliceDoc(i.from,i.to),d=t.globalAttrs[u];if(!d){let f=Xj(n),p=f?t.tags[Kj(e.doc,f)]:null;d=p?.attrs&&p.attrs[u]}if(d){let f=e.sliceDoc(r,s).toLowerCase(),p='"',h='"';/^['"]/.test(f)?(c=f[0]=='"'?/^[^"]*$/:/^[^']*$/,p="",h=e.sliceDoc(s,s+1)==f[0]?"":f[0],f=f.slice(1),r++):c=/^[^\s<>='"]*$/;for(let m of d)l.push({label:m,apply:p+m+h,type:"constant"})}}return{from:r,to:s,options:l,validFor:c}}function qSt(e,t){let{state:n,pos:r}=t,s=gi(n).resolveInner(r,-1),a=s.resolve(r);for(let i=r,l;a==s&&(l=s.childBefore(i));){let c=l.lastChild;if(!c||!c.type.isError||c.from<c.to)break;a=s=l,i=c.from}return s.name=="TagName"?s.parent&&/CloseTag$/.test(s.parent.name)?K8e(n,s,s.from,r):Y8e(n,e,s,s.from,r):s.name=="StartTag"||s.name=="IncompleteTag"?Y8e(n,e,s,r,r):s.name=="StartCloseTag"||s.name=="IncompleteCloseTag"?K8e(n,s,r,r):s.name=="OpenTag"||s.name=="SelfClosingTag"||s.name=="AttributeName"?AVn(n,e,s,s.name=="AttributeName"?s.from:r,r):s.name=="Is"||s.name=="AttributeValue"||s.name=="UnquotedAttributeValue"?RVn(n,e,s,s.name=="Is"?r:s.from,r):t.explicit&&(a.name=="Element"||a.name=="Text"||a.name=="Document")?IVn(n,e,s,r):null}function PVn(e){return qSt(EM.default,e)}function $Vn(e){let{extraTags:t,extraGlobalAttributes:n}=e,r=n||t?new EM(t,n):EM.default;return s=>qSt(r,s)}const MVn=em.parser.configure({top:"SingleExpression"}),VSt=[{tag:"script",attrs:e=>e.type=="text/typescript"||e.lang=="ts",parser:Yke.parser},{tag:"script",attrs:e=>e.type=="text/babel"||e.type=="text/jsx",parser:Kke.parser},{tag:"script",attrs:e=>e.type=="text/typescript-jsx",parser:Xke.parser},{tag:"script",attrs(e){return/^(importmap|speculationrules|application\/(.+\+)?json)$/i.test(e.type)},parser:MVn},{tag:"script",attrs(e){return!e.type||/^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^module$|^$/i.test(e.type)},parser:em.parser},{tag:"style",attrs(e){return(!e.lang||e.lang=="css")&&(!e.type||/^(text\/)?(x-)?(stylesheet|css)$/i.test(e.type))},parser:zB.parser}],HSt=[{name:"style",parser:zB.parser.configure({top:"Styles"})}].concat(zSt.map(e=>({name:e,parser:em.parser}))),WSt=VO.define({name:"html",parser:oqn.configure({props:[J_.add({Element(e){let t=/^(\s*)(<\/)?/.exec(e.textAfter);return e.node.to<=e.pos+t[0].length?e.continue():e.lineIndent(e.node.from)+(t[2]?0:e.unit)},"OpenTag CloseTag SelfClosingTag"(e){return e.column(e.node.from)+e.unit},Document(e){if(e.pos+/\s*/.exec(e.textAfter)[0].length<e.node.to)return e.continue();let t=null,n;for(let r=e.node;;){let s=r.lastChild;if(!s||s.name!="Element"||s.to!=r.to)break;t=r=s}return t&&!((n=t.lastChild)&&(n.name=="CloseTag"||n.name=="SelfClosingTag"))?e.lineIndent(t.from)+e.unit:null}}),eC.add({Element(e){let t=e.firstChild,n=e.lastChild;return!t||t.name!="OpenTag"?null:{from:t.to,to:n.name=="CloseTag"?n.from:e.to}}}),T1t.add({"OpenTag CloseTag":e=>e.getChild("TagName")})]}),languageData:{commentTokens:{block:{open:"<!--",close:"-->"}},indentOnInput:/^\s*<\/\w+\W$/,wordChars:"-_"}}),V8=WSt.configure({wrap:kSt(VSt,HSt)});function DVn(e={}){let t="",n;e.matchClosingTags===!1&&(t="noMatch"),e.selfClosingTags===!0&&(t=(t?t+" ":"")+"selfClosing"),(e.nestedLanguages&&e.nestedLanguages.length||e.nestedAttributes&&e.nestedAttributes.length)&&(n=kSt((e.nestedLanguages||[]).concat(VSt),(e.nestedAttributes||[]).concat(HSt)));let r=n?WSt.configure({wrap:n,dialect:t}):t?V8.configure({dialect:t}):V8;return new WO(r,[V8.data.of({autocomplete:$Vn(e)}),e.autoCloseTags!==!1?LVn:[],UB().support,qqn().support])}const X8e=new Set("area base br col command embed frame hr img input keygen link meta param source track wbr menuitem".split(" ")),LVn=At.inputHandler.of((e,t,n,r,s)=>{if(e.composing||e.state.readOnly||t!=n||r!=">"&&r!="/"||!V8.isActiveAt(e.state,t,-1))return!1;let a=s(),{state:i}=a,l=i.changeByRange(c=>{var u,d,f;let p=i.doc.sliceString(c.from-1,c.to)==r,{head:h}=c,m=gi(i).resolveInner(h,-1),v;if(p&&r==">"&&m.name=="EndTag"){let y=m.parent;if(((d=(u=y.parent)===null||u===void 0?void 0:u.lastChild)===null||d===void 0?void 0:d.name)!="CloseTag"&&(v=Kj(i.doc,y.parent,h))&&!X8e.has(v)){let b=h+(i.doc.sliceString(h,h+1)===">"?1:0),x=`</${v}>`;return{range:c,changes:{from:h,to:b,insert:x}}}}else if(p&&r=="/"&&m.name=="IncompleteCloseTag"){let y=m.parent;if(m.from==h-2&&((f=y.lastChild)===null||f===void 0?void 0:f.name)!="CloseTag"&&(v=Kj(i.doc,y,h))&&!X8e.has(v)){let b=h+(i.doc.sliceString(h,h+1)===">"?1:0),x=`${v}>`;return{range:wt.cursor(h+x.length,-1),changes:{from:h,to:b,insert:x}}}}return{range:c}});return l.changes.empty?!1:(e.dispatch([a,i.update(l,{userEvent:"input.complete",scrollIntoView:!0})]),!0)}),ZSt=nW({commentTokens:{block:{open:"<!--",close:"-->"}}}),GSt=new Rr,QSt=cUn.configure({props:[eC.add(e=>!e.is("Block")||e.is("Document")||nve(e)!=null||FVn(e)?void 0:(t,n)=>({from:n.doc.lineAt(t.from).to,to:t.to})),GSt.add(nve),J_.add({Document:()=>null}),Pw.add({Document:ZSt})]});function nve(e){let t=/^(?:ATX|Setext)Heading(\d)$/.exec(e.name);return t?+t[1]:void 0}function FVn(e){return e.name=="OrderedList"||e.name=="BulletList"}function zVn(e,t){let n=e;for(;;){let r=n.nextSibling,s;if(!r||(s=nve(r.type))!=null&&s<=t)break;n=r}return n.to}const BVn=g1t.of((e,t,n)=>{for(let r=gi(e).resolveInner(n,-1);r&&!(r.from<t);r=r.parent){let s=r.type.prop(GSt);if(s==null)continue;let a=zVn(r,s);if(a>n)return{from:n,to:a}}return null});function eOe(e){return new Tp(ZSt,e,[],"markdown")}const YSt=eOe(QSt),UVn=QSt.configure([xUn,SUn,wUn,kUn,{props:[eC.add({Table:(e,t)=>({from:t.doc.lineAt(e.from).to,to:e.to})})]}]),QO=eOe(UVn);function qVn(e,t){return n=>{if(n&&e){let r=null;if(n=/\S*/.exec(n)[0],typeof e=="function"?r=e(n):r=ug.matchLanguageName(e,n,!0),r instanceof ug)return r.support?r.support.language.parser:HO.getSkippingParser(r.load());if(r)return r.parser}return t?t.parser:null}}class Kee{constructor(t,n,r,s,a,i,l){this.node=t,this.from=n,this.to=r,this.spaceBefore=s,this.spaceAfter=a,this.type=i,this.item=l}blank(t,n=!0){let r=this.spaceBefore+(this.node.name=="Blockquote"?">":"");if(t!=null){for(;r.length<t;)r+=" ";return r}else{for(let s=this.to-this.from-r.length-this.spaceAfter.length;s>0;s--)r+=" ";return r+(n?this.spaceAfter:"")}}marker(t,n){let r=this.node.name=="OrderedList"?String(+XSt(this.item,t)[2]+n):"";return this.spaceBefore+r+this.type+this.spaceAfter}}function KSt(e,t){let n=[],r=[];for(let s=e;s;s=s.parent){if(s.name=="FencedCode")return r;(s.name=="ListItem"||s.name=="Blockquote")&&n.push(s)}for(let s=n.length-1;s>=0;s--){let a=n[s],i,l=t.lineAt(a.from),c=a.from-l.from;if(a.name=="Blockquote"&&(i=/^ *>( ?)/.exec(l.text.slice(c))))r.push(new Kee(a,c,c+i[0].length,"",i[1],">",null));else if(a.name=="ListItem"&&a.parent.name=="OrderedList"&&(i=/^( *)\d+([.)])( *)/.exec(l.text.slice(c)))){let u=i[3],d=i[0].length;u.length>=4&&(u=u.slice(0,u.length-4),d-=4),r.push(new Kee(a.parent,c,c+d,i[1],u,i[2],a))}else if(a.name=="ListItem"&&a.parent.name=="BulletList"&&(i=/^( *)([-+*])( {1,4}\[[ xX]\])?( +)/.exec(l.text.slice(c)))){let u=i[4],d=i[0].length;u.length>4&&(u=u.slice(0,u.length-4),d-=4);let f=i[2];i[3]&&(f+=i[3].replace(/[xX]/," ")),r.push(new Kee(a.parent,c,c+d,i[1],u,f,a))}}return r}function XSt(e,t){return/^(\s*)(\d+)(?=[.)])/.exec(t.sliceString(e.from,e.from+10))}function Xee(e,t,n,r=0){for(let s=-1,a=e;;){if(a.name=="ListItem"){let l=XSt(a,t),c=+l[2];if(s>=0){if(c!=s+1)return;n.push({from:a.from+l[1].length,to:a.from+l[0].length,insert:String(s+2+r)})}s=c}let i=a.nextSibling;if(!i)break;a=i}}function tOe(e,t){let n=/^[ \t]*/.exec(e)[0].length;if(!n||t.facet(yI)!=" ")return e;let r=zg(e,4,n),s="";for(let a=r;a>0;)a>=4?(s+=" ",a-=4):(s+=" ",a--);return s+e.slice(n)}const JSt=(e={})=>({state:t,dispatch:n})=>{let r=gi(t),{doc:s}=t,a=null,i=t.changeByRange(l=>{if(!l.empty||!QO.isActiveAt(t,l.from,-1)&&!QO.isActiveAt(t,l.from,1))return a={range:l};let c=l.from,u=s.lineAt(c),d=KSt(r.resolveInner(c,-1),s);for(;d.length&&d[d.length-1].from>c-u.from;)d.pop();if(!d.length)return a={range:l};let f=d[d.length-1];if(f.to-f.spaceAfter.length>c-u.from)return a={range:l};let p=c>=f.to-f.spaceAfter.length&&!/\S/.test(u.text.slice(f.to));if(f.item&&p){let b=f.node.firstChild,x=f.node.getChild("ListItem","ListItem");if(b.to>=c||x&&x.to<c||u.from>0&&!/[^\s>]/.test(s.lineAt(u.from-1).text)||e.nonTightLists===!1){let S=d.length>1?d[d.length-2]:null,k,_="";S&&S.item?(k=u.from+S.from,_=S.marker(s,1)):k=u.from+(S?S.to:0);let C=[{from:k,to:c,insert:_}];return f.node.name=="OrderedList"&&Xee(f.item,s,C,-2),S&&S.node.name=="OrderedList"&&Xee(S.item,s,C),{range:wt.cursor(k+_.length),changes:C}}else{let S=e9e(d,t,u);return{range:wt.cursor(c+S.length+1),changes:{from:u.from,insert:S+t.lineBreak}}}}if(f.node.name=="Blockquote"&&p&&u.from){let b=s.lineAt(u.from-1),x=/>\s*$/.exec(b.text);if(x&&x.index==f.from){let S=t.changes([{from:b.from+x.index,to:b.to},{from:u.from+f.from,to:u.to}]);return{range:l.map(S),changes:S}}}let h=[];f.node.name=="OrderedList"&&Xee(f.item,s,h);let m=f.item&&f.item.from<u.from,v="";if(!m||/^[\s\d.)\-+*>]*/.exec(u.text)[0].length>=f.to)for(let b=0,x=d.length-1;b<=x;b++)v+=b==x&&!m?d[b].marker(s,1):d[b].blank(b<x?zg(u.text,4,d[b+1].from)-v.length:null);let y=c;for(;y>u.from&&/\s/.test(u.text.charAt(y-u.from-1));)y--;return v=tOe(v,t),VVn(f.node,t.doc)&&(v=e9e(d,t,u)+t.lineBreak+v),h.push({from:y,to:c,insert:t.lineBreak+v}),{range:wt.cursor(y+v.length+1),changes:h}});return a?!1:(n(t.update(i,{scrollIntoView:!0,userEvent:"input"})),!0)},ekt=JSt();function J8e(e){return e.name=="QuoteMark"||e.name=="ListMark"}function VVn(e,t){if(e.name!="OrderedList"&&e.name!="BulletList")return!1;let n=e.firstChild,r=e.getChild("ListItem","ListItem");if(!r)return!1;let s=t.lineAt(n.to),a=t.lineAt(r.from),i=/^[\s>]*$/.test(s.text);return s.number+(i?0:1)<a.number}function e9e(e,t,n){let r="";for(let s=0,a=e.length-2;s<=a;s++)r+=e[s].blank(s<a?zg(n.text,4,e[s+1].from)-r.length:null,s<a);return tOe(r,t)}function HVn(e,t){let n=e.resolveInner(t,-1),r=t;J8e(n)&&(r=n.from,n=n.parent);for(let s;s=n.childBefore(r);)if(J8e(s))r=s.from;else if(s.name=="OrderedList"||s.name=="BulletList")n=s.lastChild,r=n.to;else break;return n}const tkt=({state:e,dispatch:t})=>{let n=gi(e),r=null,s=e.changeByRange(a=>{let i=a.from,{doc:l}=e;if(a.empty&&QO.isActiveAt(e,a.from)){let c=l.lineAt(i),u=KSt(HVn(n,i),l);if(u.length){let d=u[u.length-1],f=d.to-d.spaceAfter.length+(d.spaceAfter?1:0);if(i-c.from>f&&!/\S/.test(c.text.slice(f,i-c.from)))return{range:wt.cursor(c.from+f),changes:{from:c.from+f,to:i}};if(i-c.from==f&&(!d.item||c.from<=d.item.from||!/\S/.test(c.text.slice(0,d.to)))){let p=c.from+d.from;if(d.item&&d.node.from<d.item.from&&/\S/.test(c.text.slice(d.from,d.to))){let h=d.blank(zg(c.text,4,d.to)-zg(c.text,4,d.from));return p==c.from&&(h=tOe(h,e)),{range:wt.cursor(p+h.length),changes:{from:p,to:c.from+d.to,insert:h}}}if(p<i)return{range:wt.cursor(p),changes:{from:p,to:i}}}}}return r={range:a}});return r?!1:(t(e.update(s,{scrollIntoView:!0,userEvent:"delete"})),!0)},nkt=[{key:"Enter",run:ekt},{key:"Backspace",run:tkt}],rkt=DVn({matchClosingTags:!1});function nOe(e={}){let{codeLanguages:t,defaultCodeLanguage:n,addKeymap:r=!0,base:{parser:s}=YSt,completeHTMLTags:a=!0,pasteURLAsLink:i=!0,htmlTagLanguage:l=rkt}=e;if(!(s instanceof iW))throw new RangeError("Base parser provided to `markdown` should be a Markdown parser");let c=e.extensions?[e.extensions]:[],u=[l.support,BVn],d;i&&u.push(skt),n instanceof WO?(u.push(n.support),d=n.language):n&&(d=n);let f=t||d?qVn(t,d):void 0;c.push(dUn({codeParser:f,htmlParser:l.language.parser})),r&&u.push(Jp.high(vI.of(nkt)));let p=eOe(s.configure(c));return a&&u.push(p.data.of({autocomplete:WVn})),new WO(p,u)}function WVn(e){let{state:t,pos:n}=e,r=/<[:\-\.\w\u00b7-\uffff]*$/.exec(t.sliceDoc(n-25,n));if(!r)return null;let s=gi(t).resolveInner(n,-1);for(;s&&!s.type.isTop;){if(s.name=="CodeBlock"||s.name=="FencedCode"||s.name=="ProcessingInstructionBlock"||s.name=="CommentBlock"||s.name=="Link"||s.name=="Image")return null;s=s.parent}return{from:n-r[0].length,to:n,options:ZVn(),validFor:/^<[:\-\.\w\u00b7-\uffff]*$/}}let Jee=null;function ZVn(){if(Jee)return Jee;let e=PVn(new Ake(ps.create({extensions:rkt}),0,!0));return Jee=e?e.options:[]}const GVn=/code|horizontalrule|html|link|comment|processing|escape|entity|image|mark|url/i,skt=At.domEventHandlers({paste:(e,t)=>{var n;let{main:r}=t.state.selection;if(r.empty)return!1;let s=(n=e.clipboardData)===null||n===void 0?void 0:n.getData("text/plain");if(!s||!/^(https?:\/\/|mailto:|xmpp:|www\.)/.test(s)||(/^www\./.test(s)&&(s="https://"+s),!QO.isActiveAt(t.state,r.from,1)))return!1;let a=gi(t.state),i=!1;return a.iterate({from:r.from,to:r.to,enter:l=>{(l.from>r.from||GVn.test(l.name))&&(i=!0)},leave:l=>{l.to<r.to&&(i=!0)}}),i?!1:(t.dispatch({changes:[{from:r.from,insert:"["},{from:r.to,insert:`](${s})`}],userEvent:"input.paste",scrollIntoView:!0}),!0)}}),QVn=Object.freeze(Object.defineProperty({__proto__:null,commonmarkLanguage:YSt,deleteMarkupBackward:tkt,insertNewlineContinueMarkup:ekt,insertNewlineContinueMarkupCommand:JSt,markdown:nOe,markdownKeymap:nkt,markdownLanguage:QO,pasteURLAsLink:skt},Symbol.toStringTag,{value:"Module"}));function YO(){return YO=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},YO.apply(null,arguments)}var YVn=e=>{var t=e.theme,n=e.settings,r=n===void 0?{}:n,s=e.styles,a=s===void 0?[]:s,i={".cm-gutters":{}},l={};r.background&&(l.backgroundColor=r.background),r.backgroundImage&&(l.backgroundImage=r.backgroundImage),r.foreground&&(l.color=r.foreground),r.fontSize&&(l.fontSize=r.fontSize),(r.background||r.foreground)&&(i["&"]=l),r.fontFamily&&(i["&.cm-editor .cm-scroller"]={fontFamily:r.fontFamily}),r.gutterBackground&&(i[".cm-gutters"].backgroundColor=r.gutterBackground),r.gutterForeground&&(i[".cm-gutters"].color=r.gutterForeground),r.gutterBorder&&(i[".cm-gutters"].borderRightColor=r.gutterBorder),r.caret&&(i[".cm-content"]={caretColor:r.caret},i[".cm-cursor, .cm-dropCursor"]={borderLeftColor:r.caret});var c={};r.gutterActiveForeground&&(c.color=r.gutterActiveForeground),r.lineHighlight&&(i[".cm-activeLine"]={backgroundColor:r.lineHighlight},c.backgroundColor=r.lineHighlight),i[".cm-activeLineGutter"]=c,r.selection&&(i["&.cm-focused .cm-selectionBackground, & .cm-line::selection, & .cm-selectionLayer .cm-selectionBackground, .cm-content ::selection"]={background:r.selection+" !important"}),r.selectionMatch&&(i["& .cm-selectionMatch"]={backgroundColor:r.selectionMatch});var u=At.theme(i,{dark:t==="dark"}),d=Gg.define(a),f=[u,rS(d)];return f},KVn={background:"#282a36",foreground:"#f8f8f2",caret:"#f8f8f0",selection:"rgba(255, 255, 255, 0.1)",selectionMatch:"rgba(255, 255, 255, 0.2)",gutterBackground:"#282a36",gutterForeground:"#6D8A88",gutterBorder:"transparent",lineHighlight:"rgba(255, 255, 255, 0.1)"},XVn=[{tag:de.comment,color:"#6272a4"},{tag:de.string,color:"#f1fa8c"},{tag:de.atom,color:"#bd93f9"},{tag:de.meta,color:"#f8f8f2"},{tag:[de.keyword,de.operator,de.tagName],color:"#ff79c6"},{tag:[de.function(de.propertyName),de.propertyName],color:"#66d9ef"},{tag:[de.definition(de.variableName),de.function(de.variableName),de.className,de.attributeName],color:"#50fa7b"},{tag:de.atom,color:"#bd93f9"}],xI=e=>{var t=e||{},n=t.theme,r=n===void 0?"dark":n,s=t.settings,a=s===void 0?{}:s,i=t.styles,l=i===void 0?[]:i;return YVn({theme:r,settings:YO({},KVn,a),styles:[...XVn,...l]})};xI();function akt(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}const JVn=e=>{let{state:t}=e,n=t.doc.lineAt(t.selection.main.from),r=sOe(e.state,n.from);return r.line?eHn(e):r.block?nHn(e):!1};function rOe(e,t){return({state:n,dispatch:r})=>{if(n.readOnly)return!1;let s=e(t,n);return s?(r(n.update(s)),!0):!1}}const eHn=rOe(aHn,0),tHn=rOe(ikt,0),nHn=rOe((e,t)=>ikt(e,t,sHn(t)),0);function sOe(e,t){let n=e.languageDataAt("commentTokens",t,1);return n.length?n[0]:{}}const AR=50;function rHn(e,{open:t,close:n},r,s){let a=e.sliceDoc(r-AR,r),i=e.sliceDoc(s,s+AR),l=/\s*$/.exec(a)[0].length,c=/^\s*/.exec(i)[0].length,u=a.length-l;if(a.slice(u-t.length,u)==t&&i.slice(c,c+n.length)==n)return{open:{pos:r-l,margin:l&&1},close:{pos:s+c,margin:c&&1}};let d,f;s-r<=2*AR?d=f=e.sliceDoc(r,s):(d=e.sliceDoc(r,r+AR),f=e.sliceDoc(s-AR,s));let p=/^\s*/.exec(d)[0].length,h=/\s*$/.exec(f)[0].length,m=f.length-h-n.length;return d.slice(p,p+t.length)==t&&f.slice(m,m+n.length)==n?{open:{pos:r+p+t.length,margin:/\s/.test(d.charAt(p+t.length))?1:0},close:{pos:s-h-n.length,margin:/\s/.test(f.charAt(m-1))?1:0}}:null}function sHn(e){let t=[];for(let n of e.selection.ranges){let r=e.doc.lineAt(n.from),s=n.to<=r.to?r:e.doc.lineAt(n.to);s.from>r.from&&s.from==n.to&&(s=n.to==r.to+1?r:e.doc.lineAt(n.to-1));let a=t.length-1;a>=0&&t[a].to>r.from?t[a].to=s.to:t.push({from:r.from+/^\s*/.exec(r.text)[0].length,to:s.to})}return t}function ikt(e,t,n=t.selection.ranges){let r=n.map(a=>sOe(t,a.from).block);if(!r.every(a=>a))return null;let s=n.map((a,i)=>rHn(t,r[i],a.from,a.to));if(e!=2&&!s.every(a=>a))return{changes:t.changes(n.map((a,i)=>s[i]?[]:[{from:a.from,insert:r[i].open+" "},{from:a.to,insert:" "+r[i].close}]))};if(e!=1&&s.some(a=>a)){let a=[];for(let i=0,l;i<s.length;i++)if(l=s[i]){let c=r[i],{open:u,close:d}=l;a.push({from:u.pos-c.open.length,to:u.pos+u.margin},{from:d.pos-d.margin,to:d.pos+c.close.length})}return{changes:a}}return null}function aHn(e,t,n=t.selection.ranges){let r=[],s=-1;e:for(let{from:a,to:i}of n){let l=r.length,c=1e9,u;for(let d=a;d<=i;){let f=t.doc.lineAt(d);if(u==null&&(u=sOe(t,f.from).line,!u))continue e;if(f.from>s&&(a==i||i>f.from)){s=f.from;let p=/^\s*/.exec(f.text)[0].length,h=p==f.length,m=f.text.slice(p,p+u.length)==u?p:-1;p<f.text.length&&p<c&&(c=p),r.push({line:f,comment:m,token:u,indent:p,empty:h,single:!1})}d=f.to+1}if(c<1e9)for(let d=l;d<r.length;d++)r[d].indent<r[d].line.text.length&&(r[d].indent=c);r.length==l+1&&(r[l].single=!0)}if(e!=2&&r.some(a=>a.comment<0&&(!a.empty||a.single))){let a=[];for(let{line:l,token:c,indent:u,empty:d,single:f}of r)(f||!d)&&a.push({from:l.from+u,insert:c+" "});let i=t.changes(a);return{changes:i,selection:t.selection.map(i,1)}}else if(e!=1&&r.some(a=>a.comment>=0)){let a=[];for(let{line:i,comment:l,token:c}of r)if(l>=0){let u=i.from+l,d=u+c.length;i.text[d-i.from]==" "&&d++,a.push({from:u,to:d})}return{changes:a}}return null}const rve=Ly.define(),iHn=Ly.define(),oHn=xn.define(),okt=xn.define({combine(e){return Fy(e,{minDepth:100,newGroupDelay:500,joinToEvent:(t,n)=>n},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(t,n)=>(r,s)=>t(r,s)||n(r,s)})}}),lkt=bl.define({create(){return Yv.empty},update(e,t){let n=t.state.facet(okt),r=t.annotation(rve);if(r){let c=bf.fromTransaction(t,r.selection),u=r.side,d=u==0?e.undone:e.done;return c?d=qB(d,d.length,n.minDepth,c):d=dkt(d,t.startState.selection),new Yv(u==0?r.rest:d,u==0?d:r.rest)}let s=t.annotation(iHn);if((s=="full"||s=="before")&&(e=e.isolate()),t.annotation(Il.addToHistory)===!1)return t.changes.empty?e:e.addMapping(t.changes.desc);let a=bf.fromTransaction(t),i=t.annotation(Il.time),l=t.annotation(Il.userEvent);return a?e=e.addChanges(a,i,l,n,t):t.selection&&(e=e.addSelection(t.startState.selection,i,l,n.newGroupDelay)),(s=="full"||s=="after")&&(e=e.isolate()),e},toJSON(e){return{done:e.done.map(t=>t.toJSON()),undone:e.undone.map(t=>t.toJSON())}},fromJSON(e){return new Yv(e.done.map(bf.fromJSON),e.undone.map(bf.fromJSON))}});function lHn(e={}){return[lkt,okt.of(e),At.domEventHandlers({beforeinput(t,n){let r=t.inputType=="historyUndo"?ckt:t.inputType=="historyRedo"?sve:null;return r?(t.preventDefault(),r(n)):!1}})]}function oW(e,t){return function({state:n,dispatch:r}){if(!t&&n.readOnly)return!1;let s=n.field(lkt,!1);if(!s)return!1;let a=s.pop(e,n,t);return a?(r(a),!0):!1}}const ckt=oW(0,!1),sve=oW(1,!1),cHn=oW(0,!0),uHn=oW(1,!0);class bf{constructor(t,n,r,s,a){this.changes=t,this.effects=n,this.mapped=r,this.startSelection=s,this.selectionsAfter=a}setSelAfter(t){return new bf(this.changes,this.effects,this.mapped,this.startSelection,t)}toJSON(){var t,n,r;return{changes:(t=this.changes)===null||t===void 0?void 0:t.toJSON(),mapped:(n=this.mapped)===null||n===void 0?void 0:n.toJSON(),startSelection:(r=this.startSelection)===null||r===void 0?void 0:r.toJSON(),selectionsAfter:this.selectionsAfter.map(s=>s.toJSON())}}static fromJSON(t){return new bf(t.changes&&jl.fromJSON(t.changes),[],t.mapped&&oy.fromJSON(t.mapped),t.startSelection&&wt.fromJSON(t.startSelection),t.selectionsAfter.map(wt.fromJSON))}static fromTransaction(t,n){let r=qh;for(let s of t.startState.facet(oHn)){let a=s(t);a.length&&(r=r.concat(a))}return!r.length&&t.changes.empty?null:new bf(t.changes.invert(t.startState.doc),r,void 0,n||t.startState.selection,qh)}static selection(t){return new bf(void 0,qh,void 0,void 0,t)}}function qB(e,t,n,r){let s=t+1>n+20?t-n-1:0,a=e.slice(s,t);return a.push(r),a}function dHn(e,t){let n=[],r=!1;return e.iterChangedRanges((s,a)=>n.push(s,a)),t.iterChangedRanges((s,a,i,l)=>{for(let c=0;c<n.length;){let u=n[c++],d=n[c++];l>=u&&i<=d&&(r=!0)}}),r}function fHn(e,t){return e.ranges.length==t.ranges.length&&e.ranges.filter((n,r)=>n.empty!=t.ranges[r].empty).length===0}function ukt(e,t){return e.length?t.length?e.concat(t):e:t}const qh=[],pHn=200;function dkt(e,t){if(e.length){let n=e[e.length-1],r=n.selectionsAfter.slice(Math.max(0,n.selectionsAfter.length-pHn));return r.length&&r[r.length-1].eq(t)?e:(r.push(t),qB(e,e.length-1,1e9,n.setSelAfter(r)))}else return[bf.selection([t])]}function hHn(e){let t=e[e.length-1],n=e.slice();return n[e.length-1]=t.setSelAfter(t.selectionsAfter.slice(0,t.selectionsAfter.length-1)),n}function ete(e,t){if(!e.length)return e;let n=e.length,r=qh;for(;n;){let s=mHn(e[n-1],t,r);if(s.changes&&!s.changes.empty||s.effects.length){let a=e.slice(0,n);return a[n-1]=s,a}else t=s.mapped,n--,r=s.selectionsAfter}return r.length?[bf.selection(r)]:qh}function mHn(e,t,n){let r=ukt(e.selectionsAfter.length?e.selectionsAfter.map(l=>l.map(t)):qh,n);if(!e.changes)return bf.selection(r);let s=e.changes.map(t),a=t.mapDesc(e.changes,!0),i=e.mapped?e.mapped.composeDesc(a):a;return new bf(s,dr.mapEffects(e.effects,t),i,e.startSelection.map(a),r)}const gHn=/^(input\.type|delete)($|\.)/;class Yv{constructor(t,n,r=0,s=void 0){this.done=t,this.undone=n,this.prevTime=r,this.prevUserEvent=s}isolate(){return this.prevTime?new Yv(this.done,this.undone):this}addChanges(t,n,r,s,a){let i=this.done,l=i[i.length-1];return l&&l.changes&&!l.changes.empty&&t.changes&&(!r||gHn.test(r))&&(!l.selectionsAfter.length&&n-this.prevTime<s.newGroupDelay&&s.joinToEvent(a,dHn(l.changes,t.changes))||r=="input.type.compose")?i=qB(i,i.length-1,s.minDepth,new bf(t.changes.compose(l.changes),ukt(dr.mapEffects(t.effects,l.changes),l.effects),l.mapped,l.startSelection,qh)):i=qB(i,i.length,s.minDepth,t),new Yv(i,qh,n,r)}addSelection(t,n,r,s){let a=this.done.length?this.done[this.done.length-1].selectionsAfter:qh;return a.length>0&&n-this.prevTime<s&&r==this.prevUserEvent&&r&&/^select($|\.)/.test(r)&&fHn(a[a.length-1],t)?this:new Yv(dkt(this.done,t),this.undone,n,r)}addMapping(t){return new Yv(ete(this.done,t),ete(this.undone,t),this.prevTime,this.prevUserEvent)}pop(t,n,r){let s=t==0?this.done:this.undone;if(s.length==0)return null;let a=s[s.length-1],i=a.selectionsAfter[0]||(a.startSelection?a.startSelection.map(a.changes.invertedDesc,1):n.selection);if(r&&a.selectionsAfter.length)return n.update({selection:a.selectionsAfter[a.selectionsAfter.length-1],annotations:rve.of({side:t,rest:hHn(s),selection:i}),userEvent:t==0?"select.undo":"select.redo",scrollIntoView:!0});if(a.changes){let l=s.length==1?qh:s.slice(0,s.length-1);return a.mapped&&(l=ete(l,a.mapped)),n.update({changes:a.changes,selection:a.startSelection,effects:a.effects,annotations:rve.of({side:t,rest:l,selection:i}),filter:!1,userEvent:t==0?"undo":"redo",scrollIntoView:!0})}else return null}}Yv.empty=new Yv(qh,qh);const vHn=[{key:"Mod-z",run:ckt,preventDefault:!0},{key:"Mod-y",mac:"Mod-Shift-z",run:sve,preventDefault:!0},{linux:"Ctrl-Shift-z",run:sve,preventDefault:!0},{key:"Mod-u",run:cHn,preventDefault:!0},{key:"Alt-u",mac:"Mod-Shift-u",run:uHn,preventDefault:!0}];function wI(e,t){return wt.create(e.ranges.map(t),e.mainIndex)}function Qg(e,t){return e.update({selection:t,scrollIntoView:!0,userEvent:"select"})}function Yg({state:e,dispatch:t},n){let r=wI(e.selection,n);return r.eq(e.selection,!0)?!1:(t(Qg(e,r)),!0)}function lW(e,t){return wt.cursor(t?e.to:e.from)}function fkt(e,t){return Yg(e,n=>n.empty?e.moveByChar(n,t):lW(n,t))}function sd(e){return e.textDirectionAt(e.state.selection.main.head)==Oi.LTR}const pkt=e=>fkt(e,!sd(e)),hkt=e=>fkt(e,sd(e));function mkt(e,t){return Yg(e,n=>n.empty?e.moveByGroup(n,t):lW(n,t))}const yHn=e=>mkt(e,!sd(e)),bHn=e=>mkt(e,sd(e));function xHn(e,t,n){if(t.type.prop(n))return!0;let r=t.to-t.from;return r&&(r>2||/[^\s,.;:]/.test(e.sliceDoc(t.from,t.to)))||t.firstChild}function cW(e,t,n){let r=gi(e).resolveInner(t.head),s=n?Rr.closedBy:Rr.openedBy;for(let c=t.head;;){let u=n?r.childAfter(c):r.childBefore(c);if(!u)break;xHn(e,u,s)?r=u:c=n?u.to:u.from}let a=r.type.prop(s),i,l;return a&&(i=n?Qv(e,r.from,1):Qv(e,r.to,-1))&&i.matched?l=n?i.end.to:i.end.from:l=n?r.to:r.from,wt.cursor(l,n?-1:1)}const wHn=e=>Yg(e,t=>cW(e.state,t,!sd(e))),SHn=e=>Yg(e,t=>cW(e.state,t,sd(e)));function gkt(e,t){return Yg(e,n=>{if(!n.empty)return lW(n,t);let r=e.moveVertically(n,t);return r.head!=n.head?r:e.moveToLineBoundary(n,t)})}const vkt=e=>gkt(e,!1),ykt=e=>gkt(e,!0);function bkt(e){let t=e.scrollDOM.clientHeight<e.scrollDOM.scrollHeight-2,n=0,r=0,s;if(t){for(let a of e.state.facet(At.scrollMargins)){let i=a(e);i?.top&&(n=Math.max(i?.top,n)),i?.bottom&&(r=Math.max(i?.bottom,r))}s=e.scrollDOM.clientHeight-n-r}else s=(e.dom.ownerDocument.defaultView||window).innerHeight;return{marginTop:n,marginBottom:r,selfScroll:t,height:Math.max(e.defaultLineHeight,s-5)}}function xkt(e,t){let n=bkt(e),{state:r}=e,s=wI(r.selection,i=>i.empty?e.moveVertically(i,t,n.height):lW(i,t));if(s.eq(r.selection))return!1;let a;if(n.selfScroll){let i=e.coordsAtPos(r.selection.main.head),l=e.scrollDOM.getBoundingClientRect(),c=l.top+n.marginTop,u=l.bottom-n.marginBottom;i&&i.top>c&&i.bottom<u&&(a=At.scrollIntoView(s.main.head,{y:"start",yMargin:i.top-c}))}return e.dispatch(Qg(r,s),{effects:a}),!0}const t9e=e=>xkt(e,!1),ave=e=>xkt(e,!0);function sS(e,t,n){let r=e.lineBlockAt(t.head),s=e.moveToLineBoundary(t,n);if(s.head==t.head&&s.head!=(n?r.to:r.from)&&(s=e.moveToLineBoundary(t,n,!1)),!n&&s.head==r.from&&r.length){let a=/^\s*/.exec(e.state.sliceDoc(r.from,Math.min(r.from+100,r.to)))[0].length;a&&t.head!=r.from+a&&(s=wt.cursor(r.from+a))}return s}const kHn=e=>Yg(e,t=>sS(e,t,!0)),OHn=e=>Yg(e,t=>sS(e,t,!1)),_Hn=e=>Yg(e,t=>sS(e,t,!sd(e))),CHn=e=>Yg(e,t=>sS(e,t,sd(e))),EHn=e=>Yg(e,t=>wt.cursor(e.lineBlockAt(t.head).from,1)),THn=e=>Yg(e,t=>wt.cursor(e.lineBlockAt(t.head).to,-1));function jHn(e,t,n){let r=!1,s=wI(e.selection,a=>{let i=Qv(e,a.head,-1)||Qv(e,a.head,1)||a.head>0&&Qv(e,a.head-1,1)||a.head<e.doc.length&&Qv(e,a.head+1,-1);if(!i||!i.end)return a;r=!0;let l=i.start.from==a.head?i.end.to:i.end.from;return wt.cursor(l)});return r?(t(Qg(e,s)),!0):!1}const NHn=({state:e,dispatch:t})=>jHn(e,t);function Am(e,t,n){let r=wI(e.state.selection,s=>{s.undirectional&&s.head>=s.anchor!=t&&(s=wt.range(s.head,s.anchor));let a=n(s);return wt.range(s.anchor,a.head,a.goalColumn,a.bidiLevel||void 0,a.assoc)});return r.eq(e.state.selection)?!1:(e.dispatch(Qg(e.state,r)),!0)}function wkt(e,t){return Am(e,t,n=>e.moveByChar(n,t))}const Skt=e=>wkt(e,!sd(e)),kkt=e=>wkt(e,sd(e));function Okt(e,t){return Am(e,t,n=>e.moveByGroup(n,t))}const IHn=e=>Okt(e,!sd(e)),AHn=e=>Okt(e,sd(e)),RHn=e=>{let t=!sd(e);return Am(e,t,n=>cW(e.state,n,t))},PHn=e=>{let t=sd(e);return Am(e,t,n=>cW(e.state,n,t))};function _kt(e,t){return Am(e,t,n=>e.moveVertically(n,t))}const Ckt=e=>_kt(e,!1),Ekt=e=>_kt(e,!0);function Tkt(e,t){return Am(e,t,n=>e.moveVertically(n,t,bkt(e).height))}const n9e=e=>Tkt(e,!1),r9e=e=>Tkt(e,!0),$Hn=e=>Am(e,!0,t=>sS(e,t,!0)),MHn=e=>Am(e,!1,t=>sS(e,t,!1)),DHn=e=>{let t=!sd(e);return Am(e,t,n=>sS(e,n,t))},LHn=e=>{let t=sd(e);return Am(e,t,n=>sS(e,n,t))},FHn=e=>Am(e,!1,t=>wt.cursor(e.lineBlockAt(t.head).from)),zHn=e=>Am(e,!0,t=>wt.cursor(e.lineBlockAt(t.head).to)),s9e=({state:e,dispatch:t})=>(t(Qg(e,{anchor:0})),!0),a9e=({state:e,dispatch:t})=>(t(Qg(e,{anchor:e.doc.length})),!0),i9e=({state:e,dispatch:t})=>(t(Qg(e,{anchor:e.selection.main.anchor,head:0})),!0),o9e=({state:e,dispatch:t})=>(t(Qg(e,{anchor:e.selection.main.anchor,head:e.doc.length})),!0),BHn=({state:e,dispatch:t})=>(t(e.update({selection:{anchor:0,head:e.doc.length},userEvent:"select"})),!0),UHn=({state:e,dispatch:t})=>{let n=uW(e).map(({from:r,to:s})=>wt.range(r,Math.min(s+1,e.doc.length)));return t(e.update({selection:wt.create(n),userEvent:"select"})),!0},qHn=({state:e,dispatch:t})=>{let n=wI(e.selection,r=>{let s=gi(e),a=s.resolveStack(r.from,1);if(r.empty){let i=s.resolveStack(r.from,-1);i.node.from>=a.node.from&&i.node.to<=a.node.to&&(a=i)}for(let i=a;i;i=i.next){let{node:l}=i;if((l.from<r.from&&l.to>=r.to||l.to>r.to&&l.from<=r.from)&&i.next)return wt.range(l.to,l.from)}return r});return n.eq(e.selection)?!1:(t(Qg(e,n)),!0)};function jkt(e,t){let{state:n}=e,r=n.selection,s=n.selection.ranges.slice();for(let a of n.selection.ranges){let i=n.doc.lineAt(a.head);if(t?i.to<e.state.doc.length:i.from>0)for(let l=a;;){let c=e.moveVertically(l,t);if(c.head<i.from||c.head>i.to){s.some(u=>u.head==c.head)||s.push(c);break}else{if(c.head==l.head)break;l=c}}}return s.length==r.ranges.length?!1:(e.dispatch(Qg(n,wt.create(s,s.length-1))),!0)}const VHn=e=>jkt(e,!1),HHn=e=>jkt(e,!0),WHn=({state:e,dispatch:t})=>{let n=e.selection,r=null;return n.ranges.length>1?r=wt.create([n.main]):n.main.empty||(r=wt.create([wt.cursor(n.main.head)])),r?(t(Qg(e,r)),!0):!1};function G3(e,t){if(e.state.readOnly)return!1;let n="delete.selection",{state:r}=e,s=r.changeByRange(a=>{let{from:i,to:l}=a;if(i==l){let c=t(a);c<i?(n="delete.backward",c=fF(e,c,!1)):c>i&&(n="delete.forward",c=fF(e,c,!0)),i=Math.min(i,c),l=Math.max(l,c)}else i=fF(e,i,!1),l=fF(e,l,!0);return i==l?{range:a}:{changes:{from:i,to:l},range:wt.cursor(i,i<a.head?-1:1)}});return s.changes.empty?!1:(e.dispatch(r.update(s,{scrollIntoView:!0,userEvent:n,effects:n=="delete.selection"?At.announce.of(r.phrase("Selection deleted")):void 0})),!0)}function fF(e,t,n){if(e instanceof At)for(let r of e.state.facet(At.atomicRanges).map(s=>s(e)))r.between(t,t,(s,a)=>{s<t&&a>t&&(t=n?a:s)});return t}const Nkt=(e,t,n)=>G3(e,r=>{let s=r.from,{state:a}=e,i=a.doc.lineAt(s),l,c;if(n&&!t&&s>i.from&&s<i.from+200&&!/[^ \t]/.test(l=i.text.slice(0,s-i.from))){if(l[l.length-1]==" ")return s-1;let u=zg(l,a.tabSize),d=u%ZO(a)||ZO(a);for(let f=0;f<d&&l[l.length-1-f]==" ";f++)s--;c=s}else c=_c(i.text,s-i.from,t,t)+i.from,c==s&&i.number!=(t?a.doc.lines:1)?c+=t?1:-1:!t&&/[\ufe00-\ufe0f]/.test(i.text.slice(c-i.from,s-i.from))&&(c=_c(i.text,c-i.from,!1,!1)+i.from);return c}),ive=e=>Nkt(e,!1,!0),Ikt=e=>Nkt(e,!0,!1),Akt=(e,t)=>G3(e,n=>{let r=n.head,{state:s}=e,a=s.doc.lineAt(r),i=s.charCategorizer(r);for(let l=null;;){if(r==(t?a.to:a.from)){r==n.head&&a.number!=(t?s.doc.lines:1)&&(r+=t?1:-1);break}let c=_c(a.text,r-a.from,t)+a.from,u=a.text.slice(Math.min(r,c)-a.from,Math.max(r,c)-a.from),d=i(u);if(l!=null&&d!=l)break;(u!=" "||r!=n.head)&&(l=d),r=c}return r}),Rkt=e=>Akt(e,!1),ZHn=e=>Akt(e,!0),GHn=e=>G3(e,t=>{let n=e.lineBlockAt(t.head).to;return t.head<n?n:Math.min(e.state.doc.length,t.head+1)}),QHn=e=>G3(e,t=>{let n=e.moveToLineBoundary(t,!1).head;return t.head>n?n:Math.max(0,t.head-1)}),YHn=e=>G3(e,t=>{let n=e.moveToLineBoundary(t,!0).head;return t.head<n?n:Math.min(e.state.doc.length,t.head+1)}),KHn=({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=e.changeByRange(r=>({changes:{from:r.from,to:r.to,insert:xa.of(["",""])},range:wt.cursor(r.from)}));return t(e.update(n,{scrollIntoView:!0,userEvent:"input"})),!0},XHn=({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=e.changeByRange(r=>{if(!r.empty||r.from==0||r.from==e.doc.length)return{range:r};let s=r.from,a=e.doc.lineAt(s),i=s==a.from?s-1:_c(a.text,s-a.from,!1)+a.from,l=s==a.to?s+1:_c(a.text,s-a.from,!0)+a.from;return{changes:{from:i,to:l,insert:e.doc.slice(s,l).append(e.doc.slice(i,s))},range:wt.cursor(l)}});return n.changes.empty?!1:(t(e.update(n,{scrollIntoView:!0,userEvent:"move.character"})),!0)};function uW(e){let t=[],n=-1;for(let r of e.selection.ranges){let s=e.doc.lineAt(r.from),a=e.doc.lineAt(r.to);if(!r.empty&&r.to==a.from&&(a=e.doc.lineAt(r.to-1)),n>=s.number){let i=t[t.length-1];i.to=a.to,i.ranges.push(r)}else t.push({from:s.from,to:a.to,ranges:[r]});n=a.number+1}return t}function Pkt(e,t,n){if(e.readOnly)return!1;let r=[],s=[];for(let a of uW(e)){if(n?a.to==e.doc.length:a.from==0)continue;let i=e.doc.lineAt(n?a.to+1:a.from-1),l=i.length+1;if(n){r.push({from:a.to,to:i.to},{from:a.from,insert:i.text+e.lineBreak});for(let c of a.ranges)s.push(wt.range(Math.min(e.doc.length,c.anchor+l),Math.min(e.doc.length,c.head+l)))}else{r.push({from:i.from,to:a.from},{from:a.to,insert:e.lineBreak+i.text});for(let c of a.ranges)s.push(wt.range(c.anchor-l,c.head-l))}}return r.length?(t(e.update({changes:r,scrollIntoView:!0,selection:wt.create(s,e.selection.mainIndex),userEvent:"move.line"})),!0):!1}const JHn=({state:e,dispatch:t})=>Pkt(e,t,!1),eWn=({state:e,dispatch:t})=>Pkt(e,t,!0);function $kt(e,t,n){if(e.readOnly)return!1;let r=[];for(let a of uW(e))n?r.push({from:a.from,insert:e.doc.slice(a.from,a.to)+e.lineBreak}):r.push({from:a.to,insert:e.lineBreak+e.doc.slice(a.from,a.to)});let s=e.changes(r);return t(e.update({changes:s,selection:e.selection.map(s,n?1:-1),scrollIntoView:!0,userEvent:"input.copyline"})),!0}const tWn=({state:e,dispatch:t})=>$kt(e,t,!1),nWn=({state:e,dispatch:t})=>$kt(e,t,!0),rWn=e=>{if(e.state.readOnly)return!1;let{state:t}=e,n=t.changes(uW(t).map(({from:s,to:a})=>(s>0?s--:a<t.doc.length&&a++,{from:s,to:a}))),r=wI(t.selection,s=>{let a;if(e.lineWrapping){let i=e.lineBlockAt(s.head),l=e.coordsAtPos(s.head,s.assoc||1);l&&(a=i.bottom+e.documentTop-l.bottom+e.defaultLineHeight/2)}return e.moveVertically(s,!0,a)}).map(n);return e.dispatch({changes:n,selection:r,scrollIntoView:!0,userEvent:"delete.line"}),!0};function sWn(e,t){if(/\(\)|\[\]|\{\}/.test(e.sliceDoc(t-1,t+1)))return{from:t,to:t};let n=gi(e).resolveInner(t),r=n.childBefore(t),s=n.childAfter(t),a;return r&&s&&r.to<=t&&s.from>=t&&(a=r.type.prop(Rr.closedBy))&&a.indexOf(s.name)>-1&&e.doc.lineAt(r.to).from==e.doc.lineAt(s.from).from&&!/\S/.test(e.sliceDoc(r.to,s.from))?{from:r.to,to:s.from}:null}const l9e=Mkt(!1),aWn=Mkt(!0);function Mkt(e){return({state:t,dispatch:n})=>{if(t.readOnly)return!1;let r=t.changeByRange(s=>{let{from:a,to:i}=s,l=t.doc.lineAt(a),c=!e&&a==i&&sWn(t,a);e&&(a=i=(i<=l.to?l:t.doc.lineAt(i)).to);let u=new rW(t,{simulateBreak:a,simulateDoubleBreak:!!c}),d=Cke(u,a);for(d==null&&(d=zg(/^\s*/.exec(t.doc.lineAt(a).text)[0],t.tabSize));i<l.to&&/\s/.test(l.text[i-l.from]);)i++;c?{from:a,to:i}=c:a>l.from&&a<l.from+100&&!/\S/.test(l.text.slice(0,a))&&(a=l.from);let f=["",bM(t,d)];return c&&f.push(bM(t,u.lineIndent(l.from,-1))),{changes:{from:a,to:i,insert:xa.of(f)},range:wt.cursor(a+1+f[1].length)}});return n(t.update(r,{scrollIntoView:!0,userEvent:"input"})),!0}}function aOe(e,t){let n=-1;return e.changeByRange(r=>{let s=[];for(let i=r.from;i<=r.to;){let l=e.doc.lineAt(i);l.number>n&&(r.empty||r.to>l.from)&&(t(l,s,r),n=l.number),i=l.to+1}let a=e.changes(s);return{changes:s,range:wt.range(a.mapPos(r.anchor,1),a.mapPos(r.head,1))}})}const iWn=({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=Object.create(null),r=new rW(e,{overrideIndentation:a=>{let i=n[a];return i??-1}}),s=aOe(e,(a,i,l)=>{let c=Cke(r,a.from);if(c==null)return;/\S/.test(a.text)||(c=0);let u=/^\s*/.exec(a.text)[0],d=bM(e,c);(u!=d||l.from<a.from+u.length)&&(n[a.from]=c,i.push({from:a.from,to:a.from+u.length,insert:d}))});return s.changes.empty||t(e.update(s,{userEvent:"indent"})),!0},Dkt=({state:e,dispatch:t})=>e.readOnly?!1:(t(e.update(aOe(e,(n,r)=>{r.push({from:n.from,insert:e.facet(yI)})}),{userEvent:"input.indent"})),!0),Lkt=({state:e,dispatch:t})=>e.readOnly?!1:(t(e.update(aOe(e,(n,r)=>{let s=/^\s*/.exec(n.text)[0];if(!s)return;let a=zg(s,e.tabSize),i=0,l=bM(e,Math.max(0,a-ZO(e)));for(;i<s.length&&i<l.length&&s.charCodeAt(i)==l.charCodeAt(i);)i++;r.push({from:n.from+i,to:n.from+s.length,insert:l.slice(i)})}),{userEvent:"delete.dedent"})),!0),oWn=e=>(e.setTabFocusMode(),!0),lWn=[{key:"Ctrl-b",run:pkt,shift:Skt,preventDefault:!0},{key:"Ctrl-f",run:hkt,shift:kkt},{key:"Ctrl-p",run:vkt,shift:Ckt},{key:"Ctrl-n",run:ykt,shift:Ekt},{key:"Ctrl-a",run:EHn,shift:FHn},{key:"Ctrl-e",run:THn,shift:zHn},{key:"Ctrl-d",run:Ikt},{key:"Ctrl-h",run:ive},{key:"Ctrl-k",run:GHn},{key:"Ctrl-Alt-h",run:Rkt},{key:"Ctrl-o",run:KHn},{key:"Ctrl-t",run:XHn},{key:"Ctrl-v",run:ave}],cWn=[{key:"ArrowLeft",run:pkt,shift:Skt,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:yHn,shift:IHn,preventDefault:!0},{mac:"Cmd-ArrowLeft",run:_Hn,shift:DHn,preventDefault:!0},{key:"ArrowRight",run:hkt,shift:kkt,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:bHn,shift:AHn,preventDefault:!0},{mac:"Cmd-ArrowRight",run:CHn,shift:LHn,preventDefault:!0},{key:"ArrowUp",run:vkt,shift:Ckt,preventDefault:!0},{mac:"Cmd-ArrowUp",run:s9e,shift:i9e},{mac:"Ctrl-ArrowUp",run:t9e,shift:n9e},{key:"ArrowDown",run:ykt,shift:Ekt,preventDefault:!0},{mac:"Cmd-ArrowDown",run:a9e,shift:o9e},{mac:"Ctrl-ArrowDown",run:ave,shift:r9e},{key:"PageUp",run:t9e,shift:n9e},{key:"PageDown",run:ave,shift:r9e},{key:"Home",run:OHn,shift:MHn,preventDefault:!0},{key:"Mod-Home",run:s9e,shift:i9e},{key:"End",run:kHn,shift:$Hn,preventDefault:!0},{key:"Mod-End",run:a9e,shift:o9e},{key:"Enter",run:l9e,shift:l9e},{key:"Mod-a",run:BHn},{key:"Backspace",run:ive,shift:ive,preventDefault:!0},{key:"Delete",run:Ikt,preventDefault:!0},{key:"Mod-Backspace",mac:"Alt-Backspace",run:Rkt,preventDefault:!0},{key:"Mod-Delete",mac:"Alt-Delete",run:ZHn,preventDefault:!0},{mac:"Mod-Backspace",run:QHn,preventDefault:!0},{mac:"Mod-Delete",run:YHn,preventDefault:!0}].concat(lWn.map(e=>({mac:e.key,run:e.run,shift:e.shift}))),uWn=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:wHn,shift:RHn},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:SHn,shift:PHn},{key:"Alt-ArrowUp",run:JHn},{key:"Shift-Alt-ArrowUp",run:tWn},{key:"Alt-ArrowDown",run:eWn},{key:"Shift-Alt-ArrowDown",run:nWn},{key:"Mod-Alt-ArrowUp",run:VHn},{key:"Mod-Alt-ArrowDown",run:HHn},{key:"Escape",run:WHn},{key:"Mod-Enter",run:aWn},{key:"Alt-l",mac:"Ctrl-l",run:UHn},{key:"Mod-i",run:qHn,preventDefault:!0},{key:"Mod-[",run:Lkt},{key:"Mod-]",run:Dkt},{key:"Mod-Alt-\\",run:iWn},{key:"Shift-Mod-k",run:rWn},{key:"Shift-Mod-\\",run:NHn},{key:"Mod-/",run:JVn},{key:"Alt-A",run:tHn},{key:"Ctrl-m",mac:"Shift-Alt-m",run:oWn}].concat(cWn),dWn={key:"Tab",run:Dkt,shift:Lkt},c9e=typeof String.prototype.normalize=="function"?e=>e.normalize("NFKD"):e=>e;class Dx{constructor(t,n,r=0,s=t.length,a,i){this.test=i,this.value={from:0,to:0,precise:!1},this.done=!1,this.matches=[],this.buffer="",this.bufferPos=0,this.iter=t.iterRange(r,s),this.bufferStart=r,this.normalize=a?l=>a(c9e(l)):c9e,this.query=this.normalize(n)}peek(){if(this.bufferPos==this.buffer.length){if(this.bufferStart+=this.buffer.length,this.iter.next(),this.iter.done)return-1;this.bufferPos=0,this.buffer=this.iter.value}return cf(this.buffer,this.bufferPos)}next(){for(;this.matches.length;)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let t=this.peek();if(t<0)return this.done=!0,this;let n=oke(t),r=this.bufferStart+this.bufferPos;this.bufferPos+=Lv(t);let s=this.normalize(n);if(s.length)for(let a=0,i=r,l=!0;;a++){let c=s.charCodeAt(a),u=this.match(c,i,l,this.bufferPos+this.bufferStart,a==s.length-1);if(u)return this.value=u,this;if(a==s.length-1)break;l&&a<n.length&&n.charCodeAt(a)==c?i++:l=!1}}}match(t,n,r,s,a){let i=null;for(let l=0;l<this.matches.length;){let c=this.matches[l],u=!1;this.query.charCodeAt(c.index)==t&&(c.index==this.query.length-1?i={from:c.from,to:s,precise:a&&c.precise}:(c.index++,u=!0)),u?l++:this.matches.splice(l,1)}return this.query.charCodeAt(0)==t&&(this.query.length==1?i={from:n,to:s,precise:r&&a}:this.matches.push({from:n,index:1,precise:r})),i&&this.test&&!this.test(i.from,i.to,this.buffer,this.bufferStart)&&(i=null),i}}typeof Symbol<"u"&&(Dx.prototype[Symbol.iterator]=function(){return this});const Fkt={from:-1,to:-1,match:/.*/.exec(""),precise:!0},iOe="gm"+(/x/.unicode==null?"":"u");class zkt{constructor(t,n,r,s=0,a=t.length){if(this.text=t,this.to=a,this.curLine="",this.done=!1,this.value=Fkt,/\\[sWDnr]|\n|\r|\[\^/.test(n))return new Bkt(t,n,r,s,a);this.re=new RegExp(n,iOe+(r?.ignoreCase?"i":"")),this.test=r?.test,this.iter=t.iter();let i=t.lineAt(s);this.curLineStart=i.from,this.matchPos=VB(t,s),this.getLine(this.curLineStart)}getLine(t){this.iter.next(t),this.iter.lineBreak?this.curLine="":(this.curLine=this.iter.value,this.curLineStart+this.curLine.length>this.to&&(this.curLine=this.curLine.slice(0,this.to-this.curLineStart)),this.iter.next())}nextLine(){this.curLineStart=this.curLineStart+this.curLine.length+1,this.curLineStart>this.to?this.curLine="":this.getLine(0)}next(){for(let t=this.matchPos-this.curLineStart;;){this.re.lastIndex=t;let n=this.matchPos<=this.to&&this.re.exec(this.curLine);if(n){let r=this.curLineStart+n.index,s=r+n[0].length;if(this.matchPos=VB(this.text,s+(r==s?1:0)),r==this.curLineStart+this.curLine.length&&this.nextLine(),(r<s||r>this.value.to)&&(!this.test||this.test(r,s,n)))return this.value={from:r,to:s,precise:!0,match:n},this;t=this.matchPos-this.curLineStart}else if(this.curLineStart+this.curLine.length<this.to)this.nextLine(),t=0;else return this.done=!0,this}}}const tte=new WeakMap;class ej{constructor(t,n){this.from=t,this.text=n}get to(){return this.from+this.text.length}static get(t,n,r){let s=tte.get(t);if(!s||s.from>=r||s.to<=n){let l=new ej(n,t.sliceString(n,r));return tte.set(t,l),l}if(s.from==n&&s.to==r)return s;let{text:a,from:i}=s;return i>n&&(a=t.sliceString(n,i)+a,i=n),s.to<r&&(a+=t.sliceString(s.to,r)),tte.set(t,new ej(i,a)),new ej(n,a.slice(n-i,r-i))}}class Bkt{constructor(t,n,r,s,a){this.text=t,this.to=a,this.done=!1,this.value=Fkt,this.matchPos=VB(t,s),this.re=new RegExp(n,iOe+(r?.ignoreCase?"i":"")),this.test=r?.test,this.flat=ej.get(t,s,this.chunkEnd(s+5e3))}chunkEnd(t){return t>=this.to?this.to:this.text.lineAt(t).to}next(){for(;;){let t=this.re.lastIndex=this.matchPos-this.flat.from,n=this.re.exec(this.flat.text);if(n&&!n[0]&&n.index==t&&(this.re.lastIndex=t+1,n=this.re.exec(this.flat.text)),n){let r=this.flat.from+n.index,s=r+n[0].length;if((this.flat.to>=this.to||n.index+n[0].length<=this.flat.text.length-10)&&(!this.test||this.test(r,s,n)))return this.value={from:r,to:s,precise:!0,match:n},this.matchPos=VB(this.text,s+(r==s?1:0)),this}if(this.flat.to==this.to)return this.done=!0,this;this.flat=ej.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+this.flat.text.length*2))}}}typeof Symbol<"u"&&(zkt.prototype[Symbol.iterator]=Bkt.prototype[Symbol.iterator]=function(){return this});function fWn(e){try{return new RegExp(e,iOe),!0}catch{return!1}}function VB(e,t){if(t>=e.length)return t;let n=e.lineAt(t),r;for(;t<n.to&&(r=n.text.charCodeAt(t-n.from))>=56320&&r<57344;)t++;return t}const pWn=e=>{let{state:t}=e,n=String(t.doc.lineAt(e.state.selection.main.head).number),{close:r,result:s}=G9n(e,{label:t.phrase("Go to line"),input:{type:"text",name:"line",value:n},focus:!0,submitLabel:t.phrase("go")});return s.then(a=>{let i=a&&/^([+-])?(\d+)?(:\d+)?(%)?$/.exec(a.elements.line.value);if(!i){e.dispatch({effects:r});return}let l=t.doc.lineAt(t.selection.main.head),[,c,u,d,f]=i,p=d?+d.slice(1):0,h=u?+u:l.number;if(u&&f){let y=h/100;c&&(y=y*(c=="-"?-1:1)+l.number/t.doc.lines),h=Math.round(t.doc.lines*y)}else u&&c&&(h=h*(c=="-"?-1:1)+l.number);let m=t.doc.line(Math.max(1,Math.min(t.doc.lines,h))),v=wt.cursor(m.from+Math.max(0,Math.min(p,m.length)));e.dispatch({effects:[r,At.scrollIntoView(v.from,{y:"center"})],selection:v})}),!0},hWn={highlightWordAroundCursor:!1,minSelectionLength:1,maxMatches:100,wholeWords:!1},mWn=xn.define({combine(e){return Fy(e,hWn,{highlightWordAroundCursor:(t,n)=>t||n,minSelectionLength:Math.min,maxMatches:Math.min})}});function gWn(e){return[wWn,xWn]}const vWn=jn.mark({class:"cm-selectionMatch"}),yWn=jn.mark({class:"cm-selectionMatch cm-selectionMatch-main"});function u9e(e,t,n,r){return(n==0||e(t.sliceDoc(n-1,n))!=yo.Word)&&(r==t.doc.length||e(t.sliceDoc(r,r+1))!=yo.Word)}function bWn(e,t,n,r){return e(t.sliceDoc(n,n+1))==yo.Word&&e(t.sliceDoc(r-1,r))==yo.Word}const xWn=ko.fromClass(class{constructor(e){this.decorations=this.getDeco(e)}update(e){(e.selectionSet||e.docChanged||e.viewportChanged)&&(this.decorations=this.getDeco(e.view))}getDeco(e){let t=e.state.facet(mWn),{state:n}=e,r=n.selection;if(r.ranges.length>1)return jn.none;let s=r.main,a,i=null;if(s.empty){if(!t.highlightWordAroundCursor)return jn.none;let c=n.wordAt(s.head);if(!c)return jn.none;i=n.charCategorizer(s.head),a=n.sliceDoc(c.from,c.to)}else{let c=s.to-s.from;if(c<t.minSelectionLength||c>200)return jn.none;if(t.wholeWords){if(a=n.sliceDoc(s.from,s.to),i=n.charCategorizer(s.head),!(u9e(i,n,s.from,s.to)&&bWn(i,n,s.from,s.to)))return jn.none}else if(a=n.sliceDoc(s.from,s.to),!a)return jn.none}let l=[];for(let c of e.visibleRanges){let u=new Dx(n.doc,a,c.from,c.to);for(;!u.next().done;){let{from:d,to:f}=u.value;if((!i||u9e(i,n,d,f))&&(s.empty&&d<=s.from&&f>=s.to?l.push(yWn.range(d,f)):(d>=s.to||f<=s.from)&&l.push(vWn.range(d,f)),l.length>t.maxMatches))return jn.none}}return jn.set(l)}},{decorations:e=>e.decorations}),wWn=At.baseTheme({".cm-selectionMatch":{backgroundColor:"#99ff7780"},".cm-searchMatch .cm-selectionMatch":{backgroundColor:"transparent"}}),SWn=({state:e,dispatch:t})=>{let{selection:n}=e,r=wt.create(n.ranges.map(s=>e.wordAt(s.head)||wt.cursor(s.head)),n.mainIndex);return r.eq(n)?!1:(t(e.update({selection:r})),!0)};function kWn(e,t){let{main:n,ranges:r}=e.selection,s=e.wordAt(n.head),a=s&&s.from==n.from&&s.to==n.to;for(let i=!1,l=new Dx(e.doc,t,r[r.length-1].to);;)if(l.next(),l.done){if(i)return null;l=new Dx(e.doc,t,0,Math.max(0,r[r.length-1].from-1)),i=!0}else{if(i&&r.some(c=>c.from==l.value.from))continue;if(a){let c=e.wordAt(l.value.from);if(!c||c.from!=l.value.from||c.to!=l.value.to)continue}return l.value}}const OWn=({state:e,dispatch:t})=>{let{ranges:n}=e.selection;if(n.some(a=>a.from===a.to))return SWn({state:e,dispatch:t});let r=e.sliceDoc(n[0].from,n[0].to);if(e.selection.ranges.some(a=>e.sliceDoc(a.from,a.to)!=r))return!1;let s=kWn(e,r);return s?(t(e.update({selection:e.selection.addRange(wt.range(s.from,s.to),!1),effects:At.scrollIntoView(s.to)})),!0):!1},SI=xn.define({combine(e){return Fy(e,{top:!1,caseSensitive:!1,literal:!1,regexp:!1,wholeWord:!1,createPanel:t=>new LWn(t),scrollToMatch:t=>At.scrollIntoView(t)})}});class Ukt{constructor(t){this.search=t.search,this.caseSensitive=!!t.caseSensitive,this.literal=!!t.literal,this.regexp=!!t.regexp,this.replace=t.replace||"",this.valid=!!this.search&&(!this.regexp||fWn(this.search)),this.unquoted=this.unquote(this.search),this.wholeWord=!!t.wholeWord,this.test=t.test}unquote(t){return this.literal?t:t.replace(/\\([nrt\\])/g,(n,r)=>r=="n"?`
|
|
234
|
-
`:r=="r"?"\r":r=="t"?" ":"\\")}eq(t){return this.search==t.search&&this.replace==t.replace&&this.caseSensitive==t.caseSensitive&&this.regexp==t.regexp&&this.wholeWord==t.wholeWord&&this.test==t.test}create(){return this.regexp?new NWn(this):new EWn(this)}getCursor(t,n=0,r){let s=t.doc?t:ps.create({doc:t});return r==null&&(r=s.doc.length),this.regexp?KE(this,s,n,r):YE(this,s,n,r)}}class qkt{constructor(t){this.spec=t}}function _Wn(e,t,n){return(r,s,a,i)=>{if(n&&!n(r,s,a,i))return!1;let l=r>=i&&s<=i+a.length?a.slice(r-i,s-i):t.doc.sliceString(r,s);return e(l,t,r,s)}}function YE(e,t,n,r){let s;return e.wholeWord&&(s=CWn(t.doc,t.charCategorizer(t.selection.main.head))),e.test&&(s=_Wn(e.test,t,s)),new Dx(t.doc,e.unquoted,n,r,e.caseSensitive?void 0:a=>a.toLowerCase(),s)}function CWn(e,t){return(n,r,s,a)=>((a>n||a+s.length<r)&&(a=Math.max(0,n-2),s=e.sliceString(a,Math.min(e.length,r+2))),(t(HB(s,n-a))!=yo.Word||t(WB(s,n-a))!=yo.Word)&&(t(WB(s,r-a))!=yo.Word||t(HB(s,r-a))!=yo.Word))}class EWn extends qkt{constructor(t){super(t)}nextMatch(t,n,r){let s=YE(this.spec,t,r,t.doc.length).nextOverlapping();if(s.done){let a=Math.min(t.doc.length,n+this.spec.unquoted.length);s=YE(this.spec,t,0,a).nextOverlapping()}return s.done||s.value.from==n&&s.value.to==r?null:s.value}prevMatchInRange(t,n,r){for(let s=r;;){let a=Math.max(n,s-1e4-this.spec.unquoted.length),i=YE(this.spec,t,a,s),l=null;for(;!i.nextOverlapping().done;)l=i.value;if(l)return l;if(a==n)return null;s-=1e4}}prevMatch(t,n,r){let s=this.prevMatchInRange(t,0,n);return s||(s=this.prevMatchInRange(t,Math.max(0,r-this.spec.unquoted.length),t.doc.length)),s&&(s.from!=n||s.to!=r)?s:null}getReplacement(t){return this.spec.unquote(this.spec.replace)}matchAll(t,n){let r=YE(this.spec,t,0,t.doc.length),s=[];for(;!r.next().done;){if(s.length>=n)return null;s.push(r.value)}return s}highlight(t,n,r,s){let a=YE(this.spec,t,Math.max(0,n-this.spec.unquoted.length),Math.min(r+this.spec.unquoted.length,t.doc.length));for(;!a.next().done;)s(a.value.from,a.value.to)}}function TWn(e,t,n){return(r,s,a)=>(!n||n(r,s,a))&&e(a[0],t,r,s)}function KE(e,t,n,r){let s;return e.wholeWord&&(s=jWn(t.charCategorizer(t.selection.main.head))),e.test&&(s=TWn(e.test,t,s)),new zkt(t.doc,e.search,{ignoreCase:!e.caseSensitive,test:s},n,r)}function HB(e,t){return e.slice(_c(e,t,!1),t)}function WB(e,t){return e.slice(t,_c(e,t))}function jWn(e){return(t,n,r)=>!r[0].length||(e(HB(r.input,r.index))!=yo.Word||e(WB(r.input,r.index))!=yo.Word)&&(e(WB(r.input,r.index+r[0].length))!=yo.Word||e(HB(r.input,r.index+r[0].length))!=yo.Word)}class NWn extends qkt{nextMatch(t,n,r){let s=KE(this.spec,t,r,t.doc.length).next();return s.done&&(s=KE(this.spec,t,0,n).next()),s.done?null:s.value}prevMatchInRange(t,n,r){for(let s=1;;s++){let a=Math.max(n,r-s*1e4),i=KE(this.spec,t,a,r),l=null;for(;!i.next().done;)l=i.value;if(l&&(a==n||l.from>a+10))return l;if(a==n)return null}}prevMatch(t,n,r){return this.prevMatchInRange(t,0,n)||this.prevMatchInRange(t,r,t.doc.length)}getReplacement(t){return this.spec.unquote(this.spec.replace).replace(/\$([$&]|\d+)/g,(n,r)=>{if(r=="&")return t.match[0];if(r=="$")return"$";for(let s=r.length;s>0;s--){let a=+r.slice(0,s);if(a>0&&a<t.match.length)return t.match[a]+r.slice(s)}return n})}matchAll(t,n){let r=KE(this.spec,t,0,t.doc.length),s=[];for(;!r.next().done;){if(s.length>=n)return null;s.push(r.value)}return s}highlight(t,n,r,s){let a=KE(this.spec,t,Math.max(0,n-250),Math.min(r+250,t.doc.length));for(;!a.next().done;)s(a.value.from,a.value.to)}}const TM=dr.define(),oOe=dr.define(),Jw=bl.define({create(e){return new nte(ove(e).create(),null)},update(e,t){for(let n of t.effects)n.is(TM)?e=new nte(n.value.create(),e.panel):n.is(oOe)&&(e=new nte(e.query,n.value?lOe:null));return e},provide:e=>yM.from(e,t=>t.panel)});class nte{constructor(t,n){this.query=t,this.panel=n}}const IWn=jn.mark({class:"cm-searchMatch"}),AWn=jn.mark({class:"cm-searchMatch cm-searchMatch-selected"}),RWn=ko.fromClass(class{constructor(e){this.view=e,this.decorations=this.highlight(e.state.field(Jw))}update(e){let t=e.state.field(Jw);(t!=e.startState.field(Jw)||e.docChanged||e.selectionSet||e.viewportChanged)&&(this.decorations=this.highlight(t))}highlight({query:e,panel:t}){if(!t||!e.spec.valid)return jn.none;let{view:n}=this,r=new Ld;for(let s=0,a=n.visibleRanges,i=a.length;s<i;s++){let{from:l,to:c}=a[s];for(;s<i-1&&c>a[s+1].from-500;)c=a[++s].to;e.highlight(n.state,l,c,(u,d)=>{let f=n.state.selection.ranges.some(p=>p.from==u&&p.to==d);r.add(u,d,f?AWn:IWn)})}return r.finish()}},{decorations:e=>e.decorations});function Q3(e){return t=>{let n=t.state.field(Jw,!1);return n&&n.query.spec.valid?e(t,n):Wkt(t)}}const ZB=Q3((e,{query:t})=>{let{to:n}=e.state.selection.main,r=t.nextMatch(e.state,n,n);if(!r)return!1;let s=wt.single(r.from,r.to),a=e.state.facet(SI);return e.dispatch({selection:s,effects:[cOe(e,r),a.scrollToMatch(s.main,e)],userEvent:"select.search"}),Hkt(e),!0}),GB=Q3((e,{query:t})=>{let{state:n}=e,{from:r}=n.selection.main,s=t.prevMatch(n,r,r);if(!s)return!1;let a=wt.single(s.from,s.to),i=e.state.facet(SI);return e.dispatch({selection:a,effects:[cOe(e,s),i.scrollToMatch(a.main,e)],userEvent:"select.search"}),Hkt(e),!0}),PWn=Q3((e,{query:t})=>{let n=t.matchAll(e.state,1e3);return!n||!n.length?!1:(e.dispatch({selection:wt.create(n.map(r=>wt.range(r.from,r.to))),userEvent:"select.search.matches"}),!0)}),$Wn=({state:e,dispatch:t})=>{let n=e.selection;if(n.ranges.length>1||n.main.empty)return!1;let{from:r,to:s}=n.main,a=[],i=0;for(let l=new Dx(e.doc,e.sliceDoc(r,s));!l.next().done;){if(a.length>1e3)return!1;l.value.from==r&&(i=a.length),a.push(wt.range(l.value.from,l.value.to))}return t(e.update({selection:wt.create(a,i),userEvent:"select.search.matches"})),!0},d9e=Q3((e,{query:t})=>{let{state:n}=e,{from:r,to:s}=n.selection.main;if(n.readOnly)return!1;let a=t.nextMatch(n,r,r);if(!a)return!1;let i=a,l=[],c,u,d=[];i.precise?i.from==r&&i.to==s&&(u=n.toText(t.getReplacement(i)),l.push({from:i.from,to:i.to,insert:u}),i=t.nextMatch(n,i.from,i.to),d.push(At.announce.of(n.phrase("replaced match on line $",n.doc.lineAt(r).number)+"."))):i=t.nextMatch(n,i.from,i.to);let f=e.state.changes(l);return i&&(c=wt.single(i.from,i.to).map(f),d.push(cOe(e,i)),d.push(n.facet(SI).scrollToMatch(c.main,e))),e.dispatch({changes:f,selection:c,effects:d,userEvent:"input.replace"}),!0}),MWn=Q3((e,{query:t})=>{if(e.state.readOnly)return!1;let n=[];for(let s of t.matchAll(e.state,1e9)){let{from:a,to:i,precise:l}=s;l&&n.push({from:a,to:i,insert:t.getReplacement(s)})}if(!n.length)return!1;let r=e.state.phrase("replaced $ matches",n.length)+".";return e.dispatch({changes:n,effects:At.announce.of(r),userEvent:"input.replace.all"}),!0});function lOe(e){return e.state.facet(SI).createPanel(e)}function ove(e,t){var n,r,s,a,i;let l=e.selection.main,c=l.empty||l.to>l.from+100?"":e.sliceDoc(l.from,l.to);if(t&&!c)return t;let u=e.facet(SI);return new Ukt({search:((n=t?.literal)!==null&&n!==void 0?n:u.literal)?c:c.replace(/\n/g,"\\n"),caseSensitive:(r=t?.caseSensitive)!==null&&r!==void 0?r:u.caseSensitive,literal:(s=t?.literal)!==null&&s!==void 0?s:u.literal,regexp:(a=t?.regexp)!==null&&a!==void 0?a:u.regexp,wholeWord:(i=t?.wholeWord)!==null&&i!==void 0?i:u.wholeWord})}function Vkt(e){let t=Oke(e,lOe);return t&&t.dom.querySelector("[main-field]")}function Hkt(e){let t=Vkt(e);t&&t==e.root.activeElement&&t.select()}const Wkt=e=>{let t=e.state.field(Jw,!1);if(t&&t.panel){let n=Vkt(e);if(n&&n!=e.root.activeElement){let r=ove(e.state,t.query.spec);r.valid&&e.dispatch({effects:TM.of(r)}),n.focus(),n.select()}}else e.dispatch({effects:[oOe.of(!0),t?TM.of(ove(e.state,t.query.spec)):dr.appendConfig.of(zWn)]});return!0},Zkt=e=>{let t=e.state.field(Jw,!1);if(!t||!t.panel)return!1;let n=Oke(e,lOe);return n&&n.dom.contains(e.root.activeElement)&&e.focus(),e.dispatch({effects:oOe.of(!1)}),!0},DWn=[{key:"Mod-f",run:Wkt,scope:"editor search-panel"},{key:"F3",run:ZB,shift:GB,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:ZB,shift:GB,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:Zkt,scope:"editor search-panel"},{key:"Mod-Shift-l",run:$Wn},{key:"Mod-Alt-g",run:pWn},{key:"Mod-d",run:OWn,preventDefault:!0}];class LWn{constructor(t){this.view=t;let n=this.query=t.state.field(Jw).query.spec;this.commit=this.commit.bind(this),this.searchField=ui("input",{value:n.search,placeholder:cp(t,"Find"),"aria-label":cp(t,"Find"),class:"cm-textfield",name:"search",form:"","main-field":"true",onchange:this.commit,onkeyup:this.commit}),this.replaceField=ui("input",{value:n.replace,placeholder:cp(t,"Replace"),"aria-label":cp(t,"Replace"),class:"cm-textfield",name:"replace",form:"",onchange:this.commit,onkeyup:this.commit}),this.caseField=ui("input",{type:"checkbox",name:"case",form:"",checked:n.caseSensitive,onchange:this.commit}),this.reField=ui("input",{type:"checkbox",name:"re",form:"",checked:n.regexp,onchange:this.commit}),this.wordField=ui("input",{type:"checkbox",name:"word",form:"",checked:n.wholeWord,onchange:this.commit});function r(s,a,i){return ui("button",{class:"cm-button",name:s,onclick:a,type:"button"},i)}this.dom=ui("div",{onkeydown:s=>this.keydown(s),class:"cm-search"},[this.searchField,r("next",()=>ZB(t),[cp(t,"next")]),r("prev",()=>GB(t),[cp(t,"previous")]),r("select",()=>PWn(t),[cp(t,"all")]),ui("label",null,[this.caseField,cp(t,"match case")]),ui("label",null,[this.reField,cp(t,"regexp")]),ui("label",null,[this.wordField,cp(t,"by word")]),...t.state.readOnly?[]:[ui("br"),this.replaceField,r("replace",()=>d9e(t),[cp(t,"replace")]),r("replaceAll",()=>MWn(t),[cp(t,"replace all")])],ui("button",{name:"close",onclick:()=>Zkt(t),"aria-label":cp(t,"close"),type:"button"},["×"])])}commit(){let t=new Ukt({search:this.searchField.value,caseSensitive:this.caseField.checked,regexp:this.reField.checked,wholeWord:this.wordField.checked,replace:this.replaceField.value});t.eq(this.query)||(this.query=t,this.view.dispatch({effects:TM.of(t)}))}keydown(t){s9n(this.view,t,"search-panel")?t.preventDefault():t.keyCode==13&&t.target==this.searchField?(t.preventDefault(),(t.shiftKey?GB:ZB)(this.view)):t.keyCode==13&&t.target==this.replaceField&&(t.preventDefault(),d9e(this.view))}update(t){for(let n of t.transactions)for(let r of n.effects)r.is(TM)&&!r.value.eq(this.query)&&this.setQuery(r.value)}setQuery(t){this.query=t,this.searchField.value=t.search,this.replaceField.value=t.replace,this.caseField.checked=t.caseSensitive,this.reField.checked=t.regexp,this.wordField.checked=t.wholeWord}mount(){this.searchField.select()}get pos(){return 80}get top(){return this.view.state.facet(SI).top}}function cp(e,t){return e.state.phrase(t)}const pF=30,hF=/[\s\.,:;?!]/;function cOe(e,{from:t,to:n}){let r=e.state.doc.lineAt(t),s=e.state.doc.lineAt(n).to,a=Math.max(r.from,t-pF),i=Math.min(s,n+pF),l=e.state.sliceDoc(a,i);if(a!=r.from){for(let c=0;c<pF;c++)if(!hF.test(l[c+1])&&hF.test(l[c])){l=l.slice(c);break}}if(i!=s){for(let c=l.length-1;c>l.length-pF;c--)if(!hF.test(l[c-1])&&hF.test(l[c])){l=l.slice(0,c);break}}return At.announce.of(`${e.state.phrase("current match")}. ${l} ${e.state.phrase("on line")} ${r.number}.`)}const FWn=At.baseTheme({".cm-panel.cm-search":{padding:"2px 6px 4px",position:"relative","& [name=close]":{position:"absolute",top:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:0,margin:0},"& input, & button, & label":{margin:".2em .6em .2em 0"},"& input[type=checkbox]":{marginRight:".2em"},"& label":{fontSize:"80%",whiteSpace:"pre"}},"&light .cm-searchMatch":{backgroundColor:"#ffff0054"},"&dark .cm-searchMatch":{backgroundColor:"#00ffff8a"},"&light .cm-searchMatch-selected":{backgroundColor:"#ff6a0054"},"&dark .cm-searchMatch-selected":{backgroundColor:"#ff00ff8a"}}),zWn=[Jw,Jp.low(RWn),FWn];class f9e{constructor(t,n,r){this.from=t,this.to=n,this.diagnostic=r}}class Ek{constructor(t,n,r){this.diagnostics=t,this.panel=n,this.selected=r}static init(t,n,r){let s=r.facet(jM).markerFilter;s&&(t=s(t,r));let a=t.slice().sort((d,f)=>d.from-f.from||d.to-f.to),i=new Ld,l=[],c=0;for(let d=0;;){let f=d==a.length?null:a[d];if(!f&&!l.length)break;let p,h;for(l.length?(p=c,h=l.reduce((v,y)=>Math.min(v,y.to),f&&f.from>p?f.from:1e8)):(p=f.from,h=f.to,l.push(f),d++);d<a.length;){let v=a[d];if(v.from==p&&(v.to>v.from||v.to==p))l.push(v),d++,h=Math.min(v.to,h);else{h=Math.min(v.from,h);break}}let m=JWn(l);if(l.some(v=>v.from==v.to||v.from==v.to-1&&r.doc.lineAt(v.from).to==v.from))i.add(p,p,jn.widget({widget:new QWn(m),diagnostics:l.slice()}));else{let v=l.reduce((y,b)=>b.markClass?y+" "+b.markClass:y,"");i.add(p,h,jn.mark({class:"cm-lintRange cm-lintRange-"+m+v,diagnostics:l.slice(),inclusiveEnd:l.some(y=>y.to>h)}))}c=h;for(let v=0;v<l.length;v++)l[v].to<=c&&l.splice(v--,1)}let u=i.finish();return new Ek(u,n,Jj(u))}}function Jj(e,t=null,n=0){let r=null;return e.between(n,1e9,(s,a,{spec:i})=>{if(!(t&&i.diagnostics.indexOf(t)<0))if(!r)r=new f9e(s,a,t||i.diagnostics[0]);else{if(i.diagnostics.indexOf(r.diagnostic)<0)return!1;r=new f9e(r.from,a,r.diagnostic)}}),r}function BWn(e,t){let n=t.pos,r=t.end||n,s=e.state.facet(jM).hideOn(e,n,r);if(s!=null)return s;let a=e.startState.doc.lineAt(t.pos);return!!(e.effects.some(i=>i.is(Gkt))||e.changes.touchesRange(a.from,Math.max(a.to,r)))}function UWn(e,t){return e.field(jp,!1)?t:t.concat(dr.appendConfig.of(eZn))}const Gkt=dr.define(),uOe=dr.define(),Qkt=dr.define(),jp=bl.define({create(){return new Ek(jn.none,null,null)},update(e,t){if(t.docChanged&&e.diagnostics.size){let n=e.diagnostics.map(t.changes),r=null,s=e.panel;if(e.selected){let a=t.changes.mapPos(e.selected.from,1);r=Jj(n,e.selected.diagnostic,a)||Jj(n,null,a)}!n.size&&s&&t.state.facet(jM).autoPanel&&(s=null),e=new Ek(n,s,r)}for(let n of t.effects)if(n.is(Gkt)){let r=t.state.facet(jM).autoPanel?n.value.length?NM.open:null:e.panel;e=Ek.init(n.value,r,t.state)}else n.is(uOe)?e=new Ek(e.diagnostics,n.value?NM.open:null,e.selected):n.is(Qkt)&&(e=new Ek(e.diagnostics,e.panel,n.value));return e},provide:e=>[yM.from(e,t=>t.panel),At.decorations.from(e,t=>t.diagnostics)]}),qWn=jn.mark({class:"cm-lintRange cm-lintRange-active"});function VWn(e,t,n){let{diagnostics:r}=e.state.field(jp),s,a=-1,i=-1;r.between(t-(n<0?1:0),t+(n>0?1:0),(c,u,{spec:d})=>{if(t>=c&&t<=u&&(c==u||(t>c||n>0)&&(t<u||n<0)))return s=d.diagnostics,a=c,i=u,!1});let l=e.state.facet(jM).tooltipFilter;return s&&l&&(s=l(s,e.state)),s?{pos:a,end:i,above:e.state.doc.lineAt(a).to<i,create(){return{dom:HWn(e,s)}}}:null}function HWn(e,t){return ui("ul",{class:"cm-tooltip-lint"},t.map(n=>Kkt(e,n,!1)))}const WWn=e=>{let t=e.state.field(jp,!1);(!t||!t.panel)&&e.dispatch({effects:UWn(e.state,[uOe.of(!0)])});let n=Oke(e,NM.open);return n&&n.dom.querySelector(".cm-panel-lint ul").focus(),!0},p9e=e=>{let t=e.state.field(jp,!1);return!t||!t.panel?!1:(e.dispatch({effects:uOe.of(!1)}),!0)},ZWn=e=>{let t=e.state.field(jp,!1);if(!t)return!1;let n=e.state.selection.main,r=t.diagnostics.iter(n.to+1);return!r.value&&(r=t.diagnostics.iter(0),!r.value||r.from==n.from&&r.to==n.to)?!1:(e.dispatch({selection:{anchor:r.from,head:r.to},scrollIntoView:!0}),!0)},GWn=[{key:"Mod-Shift-m",run:WWn,preventDefault:!0},{key:"F8",run:ZWn}],jM=xn.define({combine(e){return{sources:e.map(t=>t.source).filter(t=>t!=null),...Fy(e.map(t=>t.config),{delay:750,markerFilter:null,tooltipFilter:null,needsRefresh:null,hideOn:()=>null},{delay:Math.max,markerFilter:h9e,tooltipFilter:h9e,needsRefresh:(t,n)=>t?n?r=>t(r)||n(r):t:n,hideOn:(t,n)=>t?n?(r,s,a)=>t(r,s,a)||n(r,s,a):t:n,autoPanel:(t,n)=>t||n})}}});function h9e(e,t){return e?t?(n,r)=>t(e(n,r),r):e:t}function Ykt(e){let t=[];if(e)e:for(let{name:n}of e){for(let r=0;r<n.length;r++){let s=n[r];if(/[a-zA-Z]/.test(s)&&!t.some(a=>a.toLowerCase()==s.toLowerCase())){t.push(s);continue e}}t.push("")}return t}function Kkt(e,t,n){var r;let s=n?Ykt(t.actions):[];return ui("li",{class:"cm-diagnostic cm-diagnostic-"+t.severity},ui("span",{class:"cm-diagnosticText"},t.renderMessage?t.renderMessage(e):t.message),(r=t.actions)===null||r===void 0?void 0:r.map((a,i)=>{let l=!1,c=h=>{if(h.preventDefault(),l)return;l=!0;let m=Jj(e.state.field(jp).diagnostics,t);m&&a.apply(e,m.from,m.to)},{name:u}=a,d=s[i]?u.indexOf(s[i]):-1,f=d<0?u:[u.slice(0,d),ui("u",u.slice(d,d+1)),u.slice(d+1)],p=a.markClass?" "+a.markClass:"";return ui("button",{type:"button",class:"cm-diagnosticAction"+p,onclick:c,onmousedown:c,"aria-label":` Action: ${u}${d<0?"":` (access key "${s[i]})"`}.`},f)}),t.source&&ui("div",{class:"cm-diagnosticSource"},t.source))}class QWn extends eh{constructor(t){super(),this.sev=t}eq(t){return t.sev==this.sev}toDOM(){return ui("span",{class:"cm-lintPoint cm-lintPoint-"+this.sev})}}class m9e{constructor(t,n){this.diagnostic=n,this.id="item_"+Math.floor(Math.random()*4294967295).toString(16),this.dom=Kkt(t,n,!0),this.dom.id=this.id,this.dom.setAttribute("role","option")}}class NM{constructor(t){this.view=t,this.items=[];let n=s=>{if(s.keyCode==27)p9e(this.view),this.view.focus();else if(s.keyCode==38||s.keyCode==33)this.moveSelection((this.selectedIndex-1+this.items.length)%this.items.length);else if(s.keyCode==40||s.keyCode==34)this.moveSelection((this.selectedIndex+1)%this.items.length);else if(s.keyCode==36)this.moveSelection(0);else if(s.keyCode==35)this.moveSelection(this.items.length-1);else if(s.keyCode==13)this.view.focus();else if(s.keyCode>=65&&s.keyCode<=90&&this.selectedIndex>=0){let{diagnostic:a}=this.items[this.selectedIndex],i=Ykt(a.actions);for(let l=0;l<i.length;l++)if(i[l].toUpperCase().charCodeAt(0)==s.keyCode){let c=Jj(this.view.state.field(jp).diagnostics,a);c&&a.actions[l].apply(t,c.from,c.to)}}else return;s.preventDefault()},r=s=>{for(let a=0;a<this.items.length;a++)this.items[a].dom.contains(s.target)&&this.moveSelection(a)};this.list=ui("ul",{tabIndex:0,role:"listbox","aria-label":this.view.state.phrase("Diagnostics"),onkeydown:n,onclick:r}),this.dom=ui("div",{class:"cm-panel-lint"},this.list,ui("button",{type:"button",name:"close","aria-label":this.view.state.phrase("close"),onclick:()=>p9e(this.view)},"×")),this.update()}get selectedIndex(){let t=this.view.state.field(jp).selected;if(!t)return-1;for(let n=0;n<this.items.length;n++)if(this.items[n].diagnostic==t.diagnostic)return n;return-1}update(){let{diagnostics:t,selected:n}=this.view.state.field(jp),r=0,s=!1,a=null,i=new Set;for(t.between(0,this.view.state.doc.length,(l,c,{spec:u})=>{for(let d of u.diagnostics){if(i.has(d))continue;i.add(d);let f=-1,p;for(let h=r;h<this.items.length;h++)if(this.items[h].diagnostic==d){f=h;break}f<0?(p=new m9e(this.view,d),this.items.splice(r,0,p),s=!0):(p=this.items[f],f>r&&(this.items.splice(r,f-r),s=!0)),n&&p.diagnostic==n.diagnostic?p.dom.hasAttribute("aria-selected")||(p.dom.setAttribute("aria-selected","true"),a=p):p.dom.hasAttribute("aria-selected")&&p.dom.removeAttribute("aria-selected"),r++}});r<this.items.length&&!(this.items.length==1&&this.items[0].diagnostic.from<0);)s=!0,this.items.pop();this.items.length==0&&(this.items.push(new m9e(this.view,{from:-1,to:-1,severity:"info",message:this.view.state.phrase("No diagnostics")})),s=!0),a?(this.list.setAttribute("aria-activedescendant",a.id),this.view.requestMeasure({key:this,read:()=>({sel:a.dom.getBoundingClientRect(),panel:this.list.getBoundingClientRect()}),write:({sel:l,panel:c})=>{let u=c.height/this.list.offsetHeight;l.top<c.top?this.list.scrollTop-=(c.top-l.top)/u:l.bottom>c.bottom&&(this.list.scrollTop+=(l.bottom-c.bottom)/u)}})):this.selectedIndex<0&&this.list.removeAttribute("aria-activedescendant"),s&&this.sync()}sync(){let t=this.list.firstChild;function n(){let r=t;t=r.nextSibling,r.remove()}for(let r of this.items)if(r.dom.parentNode==this.list){for(;t!=r.dom;)n();t=r.dom.nextSibling}else this.list.insertBefore(r.dom,t);for(;t;)n()}moveSelection(t){if(this.selectedIndex<0)return;let n=this.view.state.field(jp),r=Jj(n.diagnostics,this.items[t].diagnostic);r&&this.view.dispatch({selection:{anchor:r.from,head:r.to},scrollIntoView:!0,effects:Qkt.of(r)})}static open(t){return new NM(t)}}function YWn(e,t='viewBox="0 0 40 40"'){return`url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" ${t}>${encodeURIComponent(e)}</svg>')`}function mF(e){return YWn(`<path d="m0 2.5 l2 -1.5 l1 0 l2 1.5 l1 0" stroke="${e}" fill="none" stroke-width=".7"/>`,'width="6" height="3"')}const KWn=At.baseTheme({".cm-diagnostic":{padding:"3px 6px 3px 8px",marginLeft:"-1px",display:"block",whiteSpace:"pre-wrap"},".cm-diagnostic-error":{borderLeft:"5px solid #d11"},".cm-diagnostic-warning":{borderLeft:"5px solid orange"},".cm-diagnostic-info":{borderLeft:"5px solid #999"},".cm-diagnostic-hint":{borderLeft:"5px solid #66d"},".cm-diagnosticAction":{font:"inherit",border:"none",padding:"2px 4px",backgroundColor:"#444",color:"white",borderRadius:"3px",marginLeft:"8px",cursor:"pointer"},".cm-diagnosticSource":{fontSize:"70%",opacity:.7},".cm-lintRange":{backgroundPosition:"left bottom",backgroundRepeat:"repeat-x",paddingBottom:"0.7px"},".cm-lintRange-error":{backgroundImage:mF("#d11")},".cm-lintRange-warning":{backgroundImage:mF("orange")},".cm-lintRange-info":{backgroundImage:mF("#999")},".cm-lintRange-hint":{backgroundImage:mF("#66d")},".cm-lintRange-active":{backgroundColor:"#ffdd9980"},".cm-tooltip-lint":{padding:0,margin:0},".cm-lintPoint":{position:"relative","&:after":{content:'""',position:"absolute",bottom:0,left:"-2px",borderLeft:"3px solid transparent",borderRight:"3px solid transparent",borderBottom:"4px solid #d11"}},".cm-lintPoint-warning":{"&:after":{borderBottomColor:"orange"}},".cm-lintPoint-info":{"&:after":{borderBottomColor:"#999"}},".cm-lintPoint-hint":{"&:after":{borderBottomColor:"#66d"}},".cm-panel.cm-panel-lint":{position:"relative","& ul":{maxHeight:"100px",overflowY:"auto","& [aria-selected]":{backgroundColor:"#ddd","& u":{textDecoration:"underline"}},"&:focus [aria-selected]":{background_fallback:"#bdf",backgroundColor:"Highlight",color_fallback:"white",color:"HighlightText"},"& u":{textDecoration:"none"},padding:0,margin:0},"& [name=close]":{position:"absolute",top:"0",right:"2px",background:"inherit",border:"none",font:"inherit",padding:0,margin:0}}});function XWn(e){return e=="error"?4:e=="warning"?3:e=="info"?2:1}function JWn(e){let t="hint",n=1;for(let r of e){let s=XWn(r.severity);s>n&&(n=s,t=r.severity)}return t}const eZn=[jp,At.decorations.compute([jp],e=>{let{selected:t,panel:n}=e.field(jp);return!t||!n||t.from==t.to?jn.none:jn.set([qWn.range(t.from,t.to)])}),W9n(VWn,{hideOn:BWn}),KWn];var g9e=function(t){t===void 0&&(t={});var n=t,r=n.crosshairCursor,s=r===void 0?!1:r,a=[];t.closeBracketsKeymap!==!1&&(a=a.concat(qBn)),t.defaultKeymap!==!1&&(a=a.concat(uWn)),t.searchKeymap!==!1&&(a=a.concat(DWn)),t.historyKeymap!==!1&&(a=a.concat(vHn)),t.foldKeymap!==!1&&(a=a.concat(T7n)),t.completionKeymap!==!1&&(a=a.concat(H1t)),t.lintKeymap!==!1&&(a=a.concat(GWn));var i=[];return t.lineNumbers!==!1&&i.push(s7n()),t.highlightActiveLineGutter!==!1&&i.push(o7n()),t.highlightSpecialChars!==!1&&i.push(x9n()),t.history!==!1&&i.push(lHn()),t.foldGutter!==!1&&i.push(A7n()),t.drawSelection!==!1&&i.push(u9n()),t.dropCursor!==!1&&i.push(m9n()),t.allowMultipleSelections!==!1&&i.push(ps.allowMultipleSelections.of(!0)),t.indentOnInput!==!1&&i.push(x7n()),t.syntaxHighlighting!==!1&&i.push(rS(M7n,{fallback:!0})),t.bracketMatching!==!1&&i.push(q7n()),t.closeBrackets!==!1&&i.push(FBn()),t.autocompletion!==!1&&i.push(V1t()),t.rectangularSelection!==!1&&i.push(P9n()),s!==!1&&i.push(D9n()),t.highlightActiveLine!==!1&&i.push(C9n()),t.highlightSelectionMatches!==!1&&i.push(gWn()),t.tabSize&&typeof t.tabSize=="number"&&i.push(yI.of(" ".repeat(t.tabSize))),i.concat([vI.of(a.flat())]).filter(Boolean)};const tZn="#e5c07b",v9e="#e06c75",nZn="#56b6c2",rZn="#ffffff",H8="#abb2bf",lve="#7d8799",sZn="#61afef",aZn="#98c379",y9e="#d19a66",iZn="#c678dd",oZn="#21252b",b9e="#2c313a",x9e="#282c34",rte="#353a42",lZn="#3E4451",w9e="#528bff",cZn=At.theme({"&":{color:H8,backgroundColor:x9e},".cm-content":{caretColor:w9e},".cm-cursor, .cm-dropCursor":{borderLeftColor:w9e},"&.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection":{backgroundColor:lZn},".cm-panels":{backgroundColor:oZn,color:H8},".cm-panels.cm-panels-top":{borderBottom:"2px solid black"},".cm-panels.cm-panels-bottom":{borderTop:"2px solid black"},".cm-searchMatch":{backgroundColor:"#72a1ff59",outline:"1px solid #457dff"},".cm-searchMatch.cm-searchMatch-selected":{backgroundColor:"#6199ff2f"},".cm-activeLine":{backgroundColor:"#6699ff0b"},".cm-selectionMatch":{backgroundColor:"#aafe661a"},"&.cm-focused .cm-matchingBracket, &.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bad0f847"},".cm-gutters":{backgroundColor:x9e,color:lve,border:"none"},".cm-activeLineGutter":{backgroundColor:b9e},".cm-foldPlaceholder":{backgroundColor:"transparent",border:"none",color:"#ddd"},".cm-tooltip":{border:"none",backgroundColor:rte},".cm-tooltip .cm-tooltip-arrow:before":{borderTopColor:"transparent",borderBottomColor:"transparent"},".cm-tooltip .cm-tooltip-arrow:after":{borderTopColor:rte,borderBottomColor:rte},".cm-tooltip-autocomplete":{"& > ul > li[aria-selected]":{backgroundColor:b9e,color:H8}}},{dark:!0}),uZn=Gg.define([{tag:de.keyword,color:iZn},{tag:[de.name,de.deleted,de.character,de.propertyName,de.macroName],color:v9e},{tag:[de.function(de.variableName),de.labelName],color:sZn},{tag:[de.color,de.constant(de.name),de.standard(de.name)],color:y9e},{tag:[de.definition(de.name),de.separator],color:H8},{tag:[de.typeName,de.className,de.number,de.changed,de.annotation,de.modifier,de.self,de.namespace],color:tZn},{tag:[de.operator,de.operatorKeyword,de.url,de.escape,de.regexp,de.link,de.special(de.string)],color:nZn},{tag:[de.meta,de.comment],color:lve},{tag:de.strong,fontWeight:"bold"},{tag:de.emphasis,fontStyle:"italic"},{tag:de.strikethrough,textDecoration:"line-through"},{tag:de.link,color:lve,textDecoration:"underline"},{tag:de.heading,fontWeight:"bold",color:v9e},{tag:[de.atom,de.bool,de.special(de.variableName)],color:y9e},{tag:[de.processingInstruction,de.string,de.inserted],color:aZn},{tag:de.invalid,color:rZn}]),dZn=[cZn,rS(uZn)];var fZn=At.theme({"&":{backgroundColor:"#fff"}},{dark:!1}),pZn=function(t){t===void 0&&(t={});var n=t,r=n.indentWithTab,s=r===void 0?!0:r,a=n.editable,i=a===void 0?!0:a,l=n.readOnly,c=l===void 0?!1:l,u=n.theme,d=u===void 0?"light":u,f=n.placeholder,p=f===void 0?"":f,h=n.basicSetup,m=h===void 0?!0:h,v=[];switch(s&&v.unshift(vI.of([dWn])),m&&(typeof m=="boolean"?v.unshift(g9e()):v.unshift(g9e(m))),p&&v.unshift(N9n(p)),d){case"light":v.push(fZn);break;case"dark":v.push(dZn);break;case"none":break;default:v.push(d);break}return i===!1&&v.push(At.editable.of(!1)),c&&v.push(ps.readOnly.of(!0)),[...v]},hZn=e=>({line:e.state.doc.lineAt(e.state.selection.main.from),lineCount:e.state.doc.lines,lineBreak:e.state.lineBreak,length:e.state.doc.length,readOnly:e.state.readOnly,tabSize:e.state.tabSize,selection:e.state.selection,selectionAsSingle:e.state.selection.asSingle().main,ranges:e.state.selection.ranges,selectionCode:e.state.sliceDoc(e.state.selection.main.from,e.state.selection.main.to),selections:e.state.selection.ranges.map(t=>e.state.sliceDoc(t.from,t.to)),selectedText:e.state.selection.ranges.some(t=>!t.empty)});class mZn{constructor(t,n){this.timeLeftMS=void 0,this.timeoutMS=void 0,this.isCancelled=!1,this.isTimeExhausted=!1,this.callbacks=[],this.timeLeftMS=n,this.timeoutMS=n,this.callbacks.push(t)}tick(){if(!this.isCancelled&&!this.isTimeExhausted&&(this.timeLeftMS--,this.timeLeftMS<=0)){this.isTimeExhausted=!0;var t=this.callbacks.slice();this.callbacks.length=0,t.forEach(n=>{try{n()}catch(r){console.error("TimeoutLatch callback error:",r)}})}}cancel(){this.isCancelled=!0,this.callbacks.length=0}reset(){this.timeLeftMS=this.timeoutMS,this.isCancelled=!1,this.isTimeExhausted=!1}get isDone(){return this.isCancelled||this.isTimeExhausted}}class S9e{constructor(){this.interval=null,this.latches=new Set}add(t){this.latches.add(t),this.start()}remove(t){this.latches.delete(t),this.latches.size===0&&this.stop()}start(){this.interval===null&&(this.interval=setInterval(()=>{this.latches.forEach(t=>{t.tick(),t.isDone&&this.remove(t)})},1))}stop(){this.interval!==null&&(clearInterval(this.interval),this.interval=null)}}var ste=null,gZn=()=>typeof window>"u"?new S9e:(ste||(ste=new S9e),ste),vZn=At.theme({"& .cm-scroller":{height:"100% !important"}}),k9e=null,ate=null;function yZn(e,t,n,r,s,a){if(!e&&!t&&!n&&!r&&!s&&!a)return null;var i=JSON.stringify({height:e,minHeight:t,maxHeight:n,width:r,minWidth:s,maxWidth:a});return i===k9e||(k9e=i,ate=At.theme({"&":{height:e,minHeight:t,maxHeight:n,width:r,minWidth:s,maxWidth:a}})),ate}var O9e=Ly.define(),bZn=200,xZn=[];function wZn(e){var t=e.value,n=e.selection,r=e.onChange,s=e.onStatistics,a=e.onCreateEditor,i=e.onUpdate,l=e.extensions,c=l===void 0?xZn:l,u=e.autoFocus,d=e.theme,f=d===void 0?"light":d,p=e.height,h=p===void 0?null:p,m=e.minHeight,v=m===void 0?null:m,y=e.maxHeight,b=y===void 0?null:y,x=e.width,S=x===void 0?null:x,k=e.minWidth,_=k===void 0?null:k,C=e.maxWidth,T=C===void 0?null:C,E=e.placeholder,N=E===void 0?"":E,I=e.editable,A=I===void 0?!0:I,R=e.readOnly,L=R===void 0?!1:R,D=e.indentWithTab,F=D===void 0?!0:D,H=e.basicSetup,B=H===void 0?!0:H,z=e.root,V=e.initialState,M=g.useState(),G=M[0],U=M[1],$=g.useState(),q=$[0],Z=$[1],Y=g.useState(),ne=Y[0],J=Y[1],ee=g.useState(()=>({current:null}))[0],se=g.useState(()=>({current:null}))[0],le=yZn(h,v,b,S,_,T),X=At.updateListener.of(pe=>{if(pe.docChanged&&typeof r=="function"&&!pe.transactions.some(ve=>ve.annotation(O9e))){ee.current?ee.current.reset():(ee.current=new mZn(()=>{if(se.current){var ve=se.current;se.current=null,ve()}ee.current=null},bZn),gZn().add(ee.current));var ce=pe.state.doc,Se=ce.toString();r(Se,pe)}s&&s(hZn(pe))}),te=pZn({theme:f,editable:A,readOnly:L,placeholder:N,indentWithTab:F,basicSetup:B}),re=[X,...le?[le]:[],vZn,...te];return i&&typeof i=="function"&&re.push(At.updateListener.of(i)),re=re.concat(c),g.useLayoutEffect(()=>{if(G&&!ne){var pe={doc:t,selection:n,extensions:re},ce=V?ps.fromJSON(V.json,pe,V.fields):ps.create(pe);if(J(ce),!q){var Se=new At({state:ce,parent:G,root:z});Z(Se),a&&a(Se,ce)}}return()=>{q&&(J(void 0),Z(void 0))}},[G,ne]),g.useEffect(()=>{e.container&&U(e.container)},[e.container]),g.useEffect(()=>()=>{q&&(q.destroy(),Z(void 0)),ee.current&&(ee.current.cancel(),ee.current=null)},[q]),g.useEffect(()=>{u&&q&&q.focus()},[u,q]),g.useEffect(()=>{q&&q.dispatch({effects:dr.reconfigure.of(re)})},[f,c,h,v,b,S,_,T,N,A,L,F,B,r,i]),g.useEffect(()=>{if(t!==void 0){var pe=q?q.state.doc.toString():"";if(q&&t!==pe){var ce=ee.current&&!ee.current.isDone,Se=()=>{q&&t!==q.state.doc.toString()&&q.dispatch({changes:{from:0,to:q.state.doc.toString().length,insert:t||""},annotations:[O9e.of(!0)]})};ce?se.current=Se:Se()}}},[t,q]),{state:ne,setState:J,view:q,setView:Z,container:G,setContainer:U}}var SZn=["className","value","selection","extensions","onChange","onStatistics","onCreateEditor","onUpdate","autoFocus","theme","height","minHeight","maxHeight","width","minWidth","maxWidth","basicSetup","placeholder","indentWithTab","editable","readOnly","root","initialState"],Xu=g.forwardRef((e,t)=>{var n=e.className,r=e.value,s=r===void 0?"":r,a=e.selection,i=e.extensions,l=i===void 0?[]:i,c=e.onChange,u=e.onStatistics,d=e.onCreateEditor,f=e.onUpdate,p=e.autoFocus,h=e.theme,m=h===void 0?"light":h,v=e.height,y=e.minHeight,b=e.maxHeight,x=e.width,S=e.minWidth,k=e.maxWidth,_=e.basicSetup,C=e.placeholder,T=e.indentWithTab,E=e.editable,N=e.readOnly,I=e.root,A=e.initialState,R=akt(e,SZn),L=g.useRef(null),D=wZn({root:I,value:s,autoFocus:p,theme:m,height:v,minHeight:y,maxHeight:b,width:x,minWidth:S,maxWidth:k,basicSetup:_,placeholder:C,indentWithTab:T,editable:E,readOnly:N,selection:a,onChange:c,onStatistics:u,onCreateEditor:d,onUpdate:f,extensions:l,initialState:A}),F=D.state,H=D.view,B=D.container,z=D.setContainer;g.useImperativeHandle(t,()=>({editor:L.current,state:F,view:H}),[L,B,F,H]);var V=g.useCallback(G=>{L.current=G,z(G)},[z]);if(typeof s!="string")throw new Error("value must be typeof string but got "+typeof s);var M=typeof m=="string"?"cm-theme-"+m:"cm-theme";return o.jsx("div",YO({ref:V,className:""+M+(n?" "+n:"")},R))});Xu.displayName="CodeMirror";const kZn={js:"javascript",javascript:"javascript",mjs:"javascript",cjs:"javascript",node:"javascript",ts:"typescript",typescript:"typescript",mts:"typescript",cts:"typescript",tsx:"tsx",jsx:"jsx",json:"json",json5:"json",md:"markdown",markdown:"markdown",py:"python",python:"python",sh:"bash",bash:"bash",shell:"bash",zsh:"bash",yml:"yaml",yaml:"yaml",diff:"diff",patch:"diff",css:"css",scss:"css",html:"html",htm:"html",xml:"xml",svg:"xml",sql:"sql"};let ite=null;function OZn(){return ite||(ite=(async()=>{const[{createHighlighterCore:e},{createJavaScriptRegexEngine:t}]=await Promise.all([Ma(()=>import("./core-HEn8R6m8.js"),__vite__mapDeps([0,1,2]),import.meta.url),Ma(()=>import("./engine-javascript-CSIo_1eZ.js"),__vite__mapDeps([3,1]),import.meta.url)]);return e({themes:[Ma(()=>import("./github-light-DAi9KRSo.js"),[],import.meta.url),Ma(()=>import("./github-dark-DHJKELXO.js"),[],import.meta.url)],langs:[Ma(()=>import("./javascript-ySlJ1b_l.js"),[],import.meta.url),Ma(()=>import("./typescript-Dj6nwHGl.js"),[],import.meta.url),Ma(()=>import("./tsx-B6W0miNI.js"),[],import.meta.url),Ma(()=>import("./jsx-BAng5TT0.js"),[],import.meta.url),Ma(()=>import("./json-BQoSv7ci.js"),[],import.meta.url),Ma(()=>import("./bash-atvbtKCR.js"),[],import.meta.url),Ma(()=>import("./markdown-UIAJJxZW.js"),[],import.meta.url),Ma(()=>import("./python-DhUJRlN_.js"),[],import.meta.url),Ma(()=>import("./yaml-CVw76BM1.js"),[],import.meta.url),Ma(()=>import("./diff-BgYniUM_.js"),[],import.meta.url),Ma(()=>import("./css-BPhBrDlE.js"),[],import.meta.url),Ma(()=>import("./html-C2L_23MC.js"),__vite__mapDeps([4,5,6]),import.meta.url),Ma(()=>import("./xml-DGRTSKzu.js"),[],import.meta.url),Ma(()=>import("./sql-COK4E0Yg.js"),[],import.meta.url)],engine:t()})})()),ite}async function _Zn(e,t){const n=kZn[t?.toLowerCase()];if(!n)return null;const r=await OZn(),{tokens:s}=r.codeToTokens(e,{lang:n,defaultColor:!1,themes:{light:"github-light",dark:"github-dark"}});return s}function CZn(e){return new WO(jke.define(e))}const Xkt=[ug.of({name:"JavaScript",alias:["ecmascript","js","node"],extensions:["js","mjs","cjs"],load(){return Ma(()=>Promise.resolve().then(()=>dF),void 0,import.meta.url).then(e=>e.javascript())}}),ug.of({name:"JSON",alias:["json5"],extensions:["json","map"],load(){return Ma(()=>Promise.resolve().then(()=>tBn),void 0,import.meta.url).then(e=>e.json())}}),ug.of({name:"JSX",extensions:["jsx"],load(){return Ma(()=>Promise.resolve().then(()=>dF),void 0,import.meta.url).then(e=>e.javascript({jsx:!0}))}}),ug.of({name:"Markdown",extensions:["md","markdown","mkd"],load(){return Ma(()=>Promise.resolve().then(()=>QVn),void 0,import.meta.url).then(e=>e.markdown())}}),ug.of({name:"TSX",extensions:["tsx"],load(){return Ma(()=>Promise.resolve().then(()=>dF),void 0,import.meta.url).then(e=>e.javascript({jsx:!0,typescript:!0}))}}),ug.of({name:"TypeScript",alias:["ts"],extensions:["ts","mts","cts"],load(){return Ma(()=>Promise.resolve().then(()=>dF),void 0,import.meta.url).then(e=>e.javascript({typescript:!0}))}}),ug.of({name:"Shell",alias:["bash","sh","zsh"],extensions:["sh","ksh","bash"],filename:/^PKGBUILD$/,load(){return Ma(()=>import("./shell-CjFT_Tl9.js"),[],import.meta.url).then(e=>CZn(e.shell))}})];function EZn(e,t=5){if(!e?.properties)return[];const n=[];function r(s,a,i){if(i>t)return;const l=Array.isArray(s.type)?s.type.join(" | "):s.type;if(n.push({path:a,label:a,description:s.description??s.title,type:l}),s.properties)for(const[c,u]of Object.entries(s.properties))r(u,`${a}.${c}`,i+1);if(s.items?.properties)for(const[c,u]of Object.entries(s.items.properties))r(u,`${a}[].${c}`,i+1)}for(const[s,a]of Object.entries(e.properties))r(a,s,1);return n}function TZn(e){const t=EZn(e);return V1t({override:[jZn(t)],defaultKeymap:!0,closeOnBlur:!0,icons:!1})}function jZn(e){return t=>{const r=t.state.sliceDoc(Math.max(0,t.pos-50),t.pos).match(/\{\{([a-zA-Z0-9_.\[\]]*)?$/);if(!r)return null;const s=r[1]??"",a=t.pos-s.length,i=s?e.filter(c=>c.path.toLowerCase().startsWith(s.toLowerCase())):e;if(i.length===0)return null;const l=i.map(c=>({label:c.path,displayLabel:c.path,detail:c.type,info:c.description,apply:(u,d,f,p)=>{const v=u.state.sliceDoc(p,p+2)==="}}"?d.label:`${d.label}}}`;u.dispatch({changes:{from:f,to:p,insert:v},selection:{anchor:f+v.length}})}}));return{from:a,options:l,validFor:/^[a-zA-Z0-9_.\[\]]*$/}}}const NZn=/\{\{([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)*)\}\}/g,IZn=jn.mark({class:"cm-variable-highlight"}),_9e=new s1t({regexp:NZn,decoration:()=>IZn}),AZn=ko.fromClass(class{decorations;constructor(e){this.decorations=_9e.createDeco(e)}update(e){this.decorations=_9e.updateDeco(e,this.decorations)}},{decorations:e=>e.decorations}),RZn=AZn;function PZn(){const e=xI({settings:{fontFamily:"var(--font-mono)",fontSize:"0.8rem",lineHighlight:"transparent",gutterBackground:"transparent",gutterForeground:"var(--neutral2)",background:"transparent",foreground:"var(--neutral6)",caret:"var(--neutral6)"},styles:[{tag:[de.className,de.propertyName],color:"var(--neutral6)"},{tag:de.heading,color:"var(--accent3)",fontWeight:"bold"},{tag:[de.heading1,de.heading2,de.heading3,de.heading4,de.heading5,de.heading6],color:"var(--accent3)",fontWeight:"bold"},{tag:de.emphasis,fontStyle:"italic",color:"var(--neutral6)"},{tag:de.strong,fontWeight:"bold",color:"var(--neutral6)"},{tag:de.link,color:"var(--accent3)",textDecoration:"underline"},{tag:de.url,color:"var(--accent3)"},{tag:de.monospace,color:"var(--neutral6)"},{tag:de.strikethrough,textDecoration:"line-through"},{tag:de.quote,fontStyle:"italic",color:"var(--neutral2)"}]}),t=At.theme({".cm-editor":{backgroundColor:"transparent"},".cm-content":{color:"var(--neutral6)",caretColor:"var(--neutral6)"},".cm-lineNumbers .cm-gutterElement":{color:"var(--neutral2)"},".cm-activeLineGutter":{color:"var(--neutral3)"},".cm-cursor":{borderLeftColor:"var(--neutral6)"},".cm-selectionBackground, .cm-content ::selection":{backgroundColor:"color-mix(in srgb, var(--accent3) 22%, transparent)"},".cm-tooltip-autocomplete":{backgroundColor:"var(--surface2)",border:"1px solid var(--border1)",borderRadius:"6px",boxShadow:"0 8px 16px rgba(0, 0, 0, 0.2)"},".cm-tooltip-autocomplete > ul":{fontFamily:"var(--font-mono)"},".cm-completionLabel":{color:"var(--neutral6)"},".cm-completionDetail":{color:"var(--neutral3)",fontSize:"0.7rem",marginLeft:"auto",paddingLeft:"12px"},".cm-completionInfo":{backgroundColor:"var(--surface2)",border:"1px solid var(--border1)",color:"var(--neutral3)",padding:"8px 12px"},".cm-completionIcon":{display:"none"},"ul.cm-completionList li[aria-selected]":{backgroundColor:"var(--surface4)",color:"var(--neutral6)"},".cm-line .cm-variable-highlight":{color:"var(--accent6) !important",fontWeight:"500"}});return[e,t]}function $Zn(){const e=At.theme({"&":{backgroundColor:"transparent",color:"var(--neutral6)",fontSize:"0.8rem"},"&.cm-editor .cm-scroller":{fontFamily:"var(--font-mono)"},".cm-gutters":{backgroundColor:"transparent",color:"var(--neutral2)",borderRight:"none"},".cm-content":{color:"var(--neutral6)",caretColor:"var(--neutral6)"},".cm-activeLine":{backgroundColor:"transparent"},".cm-lineNumbers .cm-gutterElement":{color:"var(--neutral2)"},".cm-activeLineGutter":{backgroundColor:"transparent",color:"var(--neutral3)"},".cm-cursor, .cm-dropCursor":{borderLeftColor:"var(--neutral6)"},"&.cm-focused .cm-selectionBackground, & .cm-line::selection, & .cm-selectionLayer .cm-selectionBackground, .cm-content ::selection":{background:"color-mix(in srgb, var(--accent3) 22%, transparent) !important"},".cm-tooltip-autocomplete":{backgroundColor:"var(--surface2)",border:"1px solid var(--border1)",borderRadius:"6px",boxShadow:"0 8px 16px rgba(0, 0, 0, 0.2)"},".cm-tooltip-autocomplete > ul":{fontFamily:"var(--font-mono)"},".cm-completionLabel":{color:"var(--neutral6)"},".cm-completionDetail":{color:"var(--neutral3)",fontSize:"0.7rem",marginLeft:"auto",paddingLeft:"12px"},".cm-completionInfo":{backgroundColor:"var(--surface2)",border:"1px solid var(--border1)",color:"var(--neutral3)",padding:"8px 12px"},".cm-completionIcon":{display:"none"},"ul.cm-completionList li[aria-selected]":{backgroundColor:"var(--surface4)",color:"var(--neutral6)"},".cm-line .cm-variable-highlight":{color:"var(--accent6) !important",fontWeight:"500"}}),t=Gg.define([{tag:[de.comment,de.bracket],color:"var(--neutral2)"},{tag:[de.string,de.meta,de.regexp],color:"var(--accent1)"},{tag:[de.atom,de.bool,de.special(de.variableName)],color:"var(--accent6)"},{tag:[de.keyword,de.operator,de.tagName],color:"var(--accent2)"},{tag:[de.function(de.propertyName),de.propertyName],color:"var(--accent5)"},{tag:[de.definition(de.variableName),de.function(de.variableName),de.className,de.attributeName],color:"var(--accent3)"},{tag:[de.variableName,de.number],color:"var(--accent5)"},{tag:[de.name,de.quote],color:"var(--accent1)"},{tag:de.heading,color:"var(--accent3)",fontWeight:"bold"},{tag:[de.heading1,de.heading2,de.heading3,de.heading4,de.heading5,de.heading6],color:"var(--accent3)",fontWeight:"bold"},{tag:[de.emphasis],fontStyle:"italic",color:"var(--neutral6)"},{tag:[de.strong],fontWeight:"bold",color:"var(--neutral6)"},{tag:de.link,color:"var(--accent3)",textDecoration:"underline"},{tag:de.url,color:"var(--accent3)"},{tag:de.monospace,color:"var(--neutral6)"},{tag:de.strikethrough,textDecoration:"line-through"},{tag:[de.deleted],color:"var(--accent2)"},{tag:de.invalid,color:"var(--error)"},{tag:[de.standard(de.tagName)],color:"var(--accent1)"}]);return[e,rS(t)]}const l0=()=>{const e=K_().resolvedTheme==="dark";return g.useMemo(()=>e?PZn():$Zn(),[e])},MZn=qa(K("relative overflow-hidden font-mono outline-hidden focus-within:outline-hidden focus:outline-hidden","duration-normal transition-colors ease-out-custom"),{variants:{variant:{default:"rounded-md border border-border1 bg-surface3 p-1 focus-within:border-neutral6/20",embedded:"rounded-none border-none bg-transparent p-0"}},defaultVariants:{variant:"default"}}),DZn=Jp.highest(At.editorAttributes.of({style:"outline: none"})),LZn=Jp.highest(At.theme({"&":{outline:"none"},"&.cm-focused":{outline:"none"},".cm-scroller":{outline:"none"},".cm-content":{outline:"none"},".cm-content:focus":{outline:"none"}})),FZn=[DZn,LZn],Zr=g.forwardRef(({data:e,value:t,onChange:n,showCopyButton:r=!0,className:s,language:a="json",highlightVariables:i=!1,placeholder:l,schema:c,autoFocus:u,lineNumbers:d=!0,lineWrapping:f=!0,editable:p,variant:h,...m},v)=>{const y=l0(),b=e?JSON.stringify(e,null,2):t??"",x=g.useMemo(()=>{const S=[...FZn];return f&&S.push(At.lineWrapping),a==="json"?S.push(Mp):a==="markdown"&&S.push(nOe({base:QO,codeLanguages:Xkt})),i&&a==="markdown"&&S.push(RZn),c&&a==="markdown"&&S.push(TZn(c)),p===!1&&S.push(ps.readOnly.of(!0)),S},[a,i,c,p,f]);return o.jsxs("div",{className:K(MZn({variant:h}),s),...m,children:[r&&o.jsx(Sa,{content:b,className:"absolute top-2 right-2 z-20"}),o.jsx(Xu,{ref:v,value:b,theme:y,extensions:x,onChange:n,editable:p,"aria-label":"Code editor",placeholder:l,height:"100%",style:{height:"100%"},autoFocus:u,basicSetup:{lineNumbers:d}})]})}),zZn=e=>{try{return JSON.stringify(e??{},null,2)}catch{return"{}"}},BZn=({editorClassName:e="h-[240px] max-h-[40vh]",onSaved:t})=>{const n=l0(),{settings:r,setSettings:s}=MH(),a=r?.tracingOptions,i=g.useMemo(()=>zZn(a),[a]),[l,c]=g.useState(()=>i),u=g.useRef(!1);g.useEffect(()=>{u.current||c(i)},[i]);const d=p=>{u.current=!0,c(p)},f=()=>{if(!l){s({...r,tracingOptions:void 0}),t?.();return}try{const p=JSON.parse(l);typeof p=="object"&&p!==null&&s({...r,tracingOptions:p})}catch{return}t?.()};return o.jsxs("div",{className:"space-y-2 px-5 py-2",children:[o.jsx(ge,{as:"h3",variant:"ui-md",className:"text-neutral3",children:"Tracing Options"}),o.jsx(Xu,{value:l,onChange:d,theme:n,extensions:[Mp],className:K("overflow-y-scroll bg-surface3 rounded-lg overflow-hidden p-3",e)}),o.jsx("div",{className:"flex items-center justify-end",children:o.jsx(oe,{type:"button",onClick:f,children:"Save"})})]})},UZn=()=>{const[e,t]=g.useState(!1);return o.jsxs(o.Fragment,{children:[o.jsxs(En,{children:[o.jsx(kn,{asChild:!0,children:o.jsx(oe,{type:"button",variant:"ghost",size:"icon-md","aria-label":"Run Options",onClick:()=>t(!0),children:o.jsx(Ve,{children:o.jsx(kV,{})})})}),o.jsx(On,{children:"Run Options"})]}),o.jsx(gr,{open:e,onOpenChange:t,children:o.jsxs(vr,{children:[o.jsxs(yr,{children:[o.jsx(pr,{children:"Run Options"}),o.jsx(Ns,{children:"Configure tracing and debug options for this workflow run"})]}),o.jsx($r,{children:o.jsx(BZn,{onSaved:()=>t(!1)})})]})})]})};function qZn({status:e}){switch(e){case"running":return o.jsx(qt,{});case"failed":return o.jsx(Ps,{className:"text-accent2"});case"canceled":return o.jsx(Df,{className:"text-neutral3"});case"pending":case"waiting":return o.jsx(bO,{className:"text-neutral3"});case"suspended":return o.jsx(mV,{className:"text-accent3"});case"success":return o.jsx(ia,{className:"text-accent1"});default:return o.jsx(bO,{className:"text-neutral3"})}}function Jkt({status:e}){return o.jsxs(En,{children:[o.jsx(kn,{asChild:!0,children:o.jsx(Ve,{"aria-label":e,className:"shrink-0",children:o.jsx(qZn,{status:e})})}),o.jsx(On,{children:e})]})}var ote,C9e;function dOe(){if(C9e)return ote;C9e=1;var e="\0",t="\0",n="";class r{_isDirected=!0;_isMultigraph=!1;_isCompound=!1;_label;_defaultNodeLabelFn=()=>{};_defaultEdgeLabelFn=()=>{};_nodes={};_in={};_preds={};_out={};_sucs={};_edgeObjs={};_edgeLabels={};_nodeCount=0;_edgeCount=0;_parent;_children;constructor(d){d&&(this._isDirected=Object.hasOwn(d,"directed")?d.directed:!0,this._isMultigraph=Object.hasOwn(d,"multigraph")?d.multigraph:!1,this._isCompound=Object.hasOwn(d,"compound")?d.compound:!1),this._isCompound&&(this._parent={},this._children={},this._children[t]={})}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(d){return this._label=d,this}graph(){return this._label}setDefaultNodeLabel(d){return this._defaultNodeLabelFn=d,typeof d!="function"&&(this._defaultNodeLabelFn=()=>d),this}nodeCount(){return this._nodeCount}nodes(){return Object.keys(this._nodes)}sources(){var d=this;return this.nodes().filter(f=>Object.keys(d._in[f]).length===0)}sinks(){var d=this;return this.nodes().filter(f=>Object.keys(d._out[f]).length===0)}setNodes(d,f){var p=arguments,h=this;return d.forEach(function(m){p.length>1?h.setNode(m,f):h.setNode(m)}),this}setNode(d,f){return Object.hasOwn(this._nodes,d)?(arguments.length>1&&(this._nodes[d]=f),this):(this._nodes[d]=arguments.length>1?f:this._defaultNodeLabelFn(d),this._isCompound&&(this._parent[d]=t,this._children[d]={},this._children[t][d]=!0),this._in[d]={},this._preds[d]={},this._out[d]={},this._sucs[d]={},++this._nodeCount,this)}node(d){return this._nodes[d]}hasNode(d){return Object.hasOwn(this._nodes,d)}removeNode(d){var f=this;if(Object.hasOwn(this._nodes,d)){var p=h=>f.removeEdge(f._edgeObjs[h]);delete this._nodes[d],this._isCompound&&(this._removeFromParentsChildList(d),delete this._parent[d],this.children(d).forEach(function(h){f.setParent(h)}),delete this._children[d]),Object.keys(this._in[d]).forEach(p),delete this._in[d],delete this._preds[d],Object.keys(this._out[d]).forEach(p),delete this._out[d],delete this._sucs[d],--this._nodeCount}return this}setParent(d,f){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(f===void 0)f=t;else{f+="";for(var p=f;p!==void 0;p=this.parent(p))if(p===d)throw new Error("Setting "+f+" as parent of "+d+" would create a cycle");this.setNode(f)}return this.setNode(d),this._removeFromParentsChildList(d),this._parent[d]=f,this._children[f][d]=!0,this}_removeFromParentsChildList(d){delete this._children[this._parent[d]][d]}parent(d){if(this._isCompound){var f=this._parent[d];if(f!==t)return f}}children(d=t){if(this._isCompound){var f=this._children[d];if(f)return Object.keys(f)}else{if(d===t)return this.nodes();if(this.hasNode(d))return[]}}predecessors(d){var f=this._preds[d];if(f)return Object.keys(f)}successors(d){var f=this._sucs[d];if(f)return Object.keys(f)}neighbors(d){var f=this.predecessors(d);if(f){const h=new Set(f);for(var p of this.successors(d))h.add(p);return Array.from(h.values())}}isLeaf(d){var f;return this.isDirected()?f=this.successors(d):f=this.neighbors(d),f.length===0}filterNodes(d){var f=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});f.setGraph(this.graph());var p=this;Object.entries(this._nodes).forEach(function([v,y]){d(v)&&f.setNode(v,y)}),Object.values(this._edgeObjs).forEach(function(v){f.hasNode(v.v)&&f.hasNode(v.w)&&f.setEdge(v,p.edge(v))});var h={};function m(v){var y=p.parent(v);return y===void 0||f.hasNode(y)?(h[v]=y,y):y in h?h[y]:m(y)}return this._isCompound&&f.nodes().forEach(v=>f.setParent(v,m(v))),f}setDefaultEdgeLabel(d){return this._defaultEdgeLabelFn=d,typeof d!="function"&&(this._defaultEdgeLabelFn=()=>d),this}edgeCount(){return this._edgeCount}edges(){return Object.values(this._edgeObjs)}setPath(d,f){var p=this,h=arguments;return d.reduce(function(m,v){return h.length>1?p.setEdge(m,v,f):p.setEdge(m,v),v}),this}setEdge(){var d,f,p,h,m=!1,v=arguments[0];typeof v=="object"&&v!==null&&"v"in v?(d=v.v,f=v.w,p=v.name,arguments.length===2&&(h=arguments[1],m=!0)):(d=v,f=arguments[1],p=arguments[3],arguments.length>2&&(h=arguments[2],m=!0)),d=""+d,f=""+f,p!==void 0&&(p=""+p);var y=i(this._isDirected,d,f,p);if(Object.hasOwn(this._edgeLabels,y))return m&&(this._edgeLabels[y]=h),this;if(p!==void 0&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(d),this.setNode(f),this._edgeLabels[y]=m?h:this._defaultEdgeLabelFn(d,f,p);var b=l(this._isDirected,d,f,p);return d=b.v,f=b.w,Object.freeze(b),this._edgeObjs[y]=b,s(this._preds[f],d),s(this._sucs[d],f),this._in[f][y]=b,this._out[d][y]=b,this._edgeCount++,this}edge(d,f,p){var h=arguments.length===1?c(this._isDirected,arguments[0]):i(this._isDirected,d,f,p);return this._edgeLabels[h]}edgeAsObj(){const d=this.edge(...arguments);return typeof d!="object"?{label:d}:d}hasEdge(d,f,p){var h=arguments.length===1?c(this._isDirected,arguments[0]):i(this._isDirected,d,f,p);return Object.hasOwn(this._edgeLabels,h)}removeEdge(d,f,p){var h=arguments.length===1?c(this._isDirected,arguments[0]):i(this._isDirected,d,f,p),m=this._edgeObjs[h];return m&&(d=m.v,f=m.w,delete this._edgeLabels[h],delete this._edgeObjs[h],a(this._preds[f],d),a(this._sucs[d],f),delete this._in[f][h],delete this._out[d][h],this._edgeCount--),this}inEdges(d,f){var p=this._in[d];if(p){var h=Object.values(p);return f?h.filter(m=>m.v===f):h}}outEdges(d,f){var p=this._out[d];if(p){var h=Object.values(p);return f?h.filter(m=>m.w===f):h}}nodeEdges(d,f){var p=this.inEdges(d,f);if(p)return p.concat(this.outEdges(d,f))}}function s(u,d){u[d]?u[d]++:u[d]=1}function a(u,d){--u[d]||delete u[d]}function i(u,d,f,p){var h=""+d,m=""+f;if(!u&&h>m){var v=h;h=m,m=v}return h+n+m+n+(p===void 0?e:p)}function l(u,d,f,p){var h=""+d,m=""+f;if(!u&&h>m){var v=h;h=m,m=v}var y={v:h,w:m};return p&&(y.name=p),y}function c(u,d){return i(u,d.v,d.w,d.name)}return ote=r,ote}var lte,E9e;function VZn(){return E9e||(E9e=1,lte="2.2.4"),lte}var cte,T9e;function HZn(){return T9e||(T9e=1,cte={Graph:dOe(),version:VZn()}),cte}var ute,j9e;function WZn(){if(j9e)return ute;j9e=1;var e=dOe();ute={write:t,read:s};function t(a){var i={options:{directed:a.isDirected(),multigraph:a.isMultigraph(),compound:a.isCompound()},nodes:n(a),edges:r(a)};return a.graph()!==void 0&&(i.value=structuredClone(a.graph())),i}function n(a){return a.nodes().map(function(i){var l=a.node(i),c=a.parent(i),u={v:i};return l!==void 0&&(u.value=l),c!==void 0&&(u.parent=c),u})}function r(a){return a.edges().map(function(i){var l=a.edge(i),c={v:i.v,w:i.w};return i.name!==void 0&&(c.name=i.name),l!==void 0&&(c.value=l),c})}function s(a){var i=new e(a.options).setGraph(a.value);return a.nodes.forEach(function(l){i.setNode(l.v,l.value),l.parent&&i.setParent(l.v,l.parent)}),a.edges.forEach(function(l){i.setEdge({v:l.v,w:l.w,name:l.name},l.value)}),i}return ute}var dte,N9e;function ZZn(){if(N9e)return dte;N9e=1,dte=e;function e(t){var n={},r=[],s;function a(i){Object.hasOwn(n,i)||(n[i]=!0,s.push(i),t.successors(i).forEach(a),t.predecessors(i).forEach(a))}return t.nodes().forEach(function(i){s=[],a(i),s.length&&r.push(s)}),r}return dte}var fte,I9e;function eOt(){if(I9e)return fte;I9e=1;class e{_arr=[];_keyIndices={};size(){return this._arr.length}keys(){return this._arr.map(function(n){return n.key})}has(n){return Object.hasOwn(this._keyIndices,n)}priority(n){var r=this._keyIndices[n];if(r!==void 0)return this._arr[r].priority}min(){if(this.size()===0)throw new Error("Queue underflow");return this._arr[0].key}add(n,r){var s=this._keyIndices;if(n=String(n),!Object.hasOwn(s,n)){var a=this._arr,i=a.length;return s[n]=i,a.push({key:n,priority:r}),this._decrease(i),!0}return!1}removeMin(){this._swap(0,this._arr.length-1);var n=this._arr.pop();return delete this._keyIndices[n.key],this._heapify(0),n.key}decrease(n,r){var s=this._keyIndices[n];if(r>this._arr[s].priority)throw new Error("New priority is greater than current priority. Key: "+n+" Old: "+this._arr[s].priority+" New: "+r);this._arr[s].priority=r,this._decrease(s)}_heapify(n){var r=this._arr,s=2*n,a=s+1,i=n;s<r.length&&(i=r[s].priority<r[i].priority?s:i,a<r.length&&(i=r[a].priority<r[i].priority?a:i),i!==n&&(this._swap(n,i),this._heapify(i)))}_decrease(n){for(var r=this._arr,s=r[n].priority,a;n!==0&&(a=n>>1,!(r[a].priority<s));)this._swap(n,a),n=a}_swap(n,r){var s=this._arr,a=this._keyIndices,i=s[n],l=s[r];s[n]=l,s[r]=i,a[l.key]=n,a[i.key]=r}}return fte=e,fte}var pte,A9e;function tOt(){if(A9e)return pte;A9e=1;var e=eOt();pte=n;var t=()=>1;function n(s,a,i,l){return r(s,String(a),i||t,l||function(c){return s.outEdges(c)})}function r(s,a,i,l){var c={},u=new e,d,f,p=function(h){var m=h.v!==d?h.v:h.w,v=c[m],y=i(h),b=f.distance+y;if(y<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+h+" Weight: "+y);b<v.distance&&(v.distance=b,v.predecessor=d,u.decrease(m,b))};for(s.nodes().forEach(function(h){var m=h===a?0:Number.POSITIVE_INFINITY;c[h]={distance:m},u.add(h,m)});u.size()>0&&(d=u.removeMin(),f=c[d],f.distance!==Number.POSITIVE_INFINITY);)l(d).forEach(p);return c}return pte}var hte,R9e;function GZn(){if(R9e)return hte;R9e=1;var e=tOt();hte=t;function t(n,r,s){return n.nodes().reduce(function(a,i){return a[i]=e(n,i,r,s),a},{})}return hte}var mte,P9e;function nOt(){if(P9e)return mte;P9e=1,mte=e;function e(t){var n=0,r=[],s={},a=[];function i(l){var c=s[l]={onStack:!0,lowlink:n,index:n++};if(r.push(l),t.successors(l).forEach(function(f){Object.hasOwn(s,f)?s[f].onStack&&(c.lowlink=Math.min(c.lowlink,s[f].index)):(i(f),c.lowlink=Math.min(c.lowlink,s[f].lowlink))}),c.lowlink===c.index){var u=[],d;do d=r.pop(),s[d].onStack=!1,u.push(d);while(l!==d);a.push(u)}}return t.nodes().forEach(function(l){Object.hasOwn(s,l)||i(l)}),a}return mte}var gte,$9e;function QZn(){if($9e)return gte;$9e=1;var e=nOt();gte=t;function t(n){return e(n).filter(function(r){return r.length>1||r.length===1&&n.hasEdge(r[0],r[0])})}return gte}var vte,M9e;function YZn(){if(M9e)return vte;M9e=1,vte=t;var e=()=>1;function t(r,s,a){return n(r,s||e,a||function(i){return r.outEdges(i)})}function n(r,s,a){var i={},l=r.nodes();return l.forEach(function(c){i[c]={},i[c][c]={distance:0},l.forEach(function(u){c!==u&&(i[c][u]={distance:Number.POSITIVE_INFINITY})}),a(c).forEach(function(u){var d=u.v===c?u.w:u.v,f=s(u);i[c][d]={distance:f,predecessor:c}})}),l.forEach(function(c){var u=i[c];l.forEach(function(d){var f=i[d];l.forEach(function(p){var h=f[c],m=u[p],v=f[p],y=h.distance+m.distance;y<v.distance&&(v.distance=y,v.predecessor=m.predecessor)})})}),i}return vte}var yte,D9e;function rOt(){if(D9e)return yte;D9e=1;function e(n){var r={},s={},a=[];function i(l){if(Object.hasOwn(s,l))throw new t;Object.hasOwn(r,l)||(s[l]=!0,r[l]=!0,n.predecessors(l).forEach(i),delete s[l],a.push(l))}if(n.sinks().forEach(i),Object.keys(r).length!==n.nodeCount())throw new t;return a}class t extends Error{constructor(){super(...arguments)}}return yte=e,e.CycleException=t,yte}var bte,L9e;function KZn(){if(L9e)return bte;L9e=1;var e=rOt();bte=t;function t(n){try{e(n)}catch(r){if(r instanceof e.CycleException)return!1;throw r}return!0}return bte}var xte,F9e;function sOt(){if(F9e)return xte;F9e=1,xte=e;function e(s,a,i){Array.isArray(a)||(a=[a]);var l=s.isDirected()?f=>s.successors(f):f=>s.neighbors(f),c=i==="post"?t:n,u=[],d={};return a.forEach(f=>{if(!s.hasNode(f))throw new Error("Graph does not have node: "+f);c(f,l,d,u)}),u}function t(s,a,i,l){for(var c=[[s,!1]];c.length>0;){var u=c.pop();u[1]?l.push(u[0]):Object.hasOwn(i,u[0])||(i[u[0]]=!0,c.push([u[0],!0]),r(a(u[0]),d=>c.push([d,!1])))}}function n(s,a,i,l){for(var c=[s];c.length>0;){var u=c.pop();Object.hasOwn(i,u)||(i[u]=!0,l.push(u),r(a(u),d=>c.push(d)))}}function r(s,a){for(var i=s.length;i--;)a(s[i],i,s);return s}return xte}var wte,z9e;function XZn(){if(z9e)return wte;z9e=1;var e=sOt();wte=t;function t(n,r){return e(n,r,"post")}return wte}var Ste,B9e;function JZn(){if(B9e)return Ste;B9e=1;var e=sOt();Ste=t;function t(n,r){return e(n,r,"pre")}return Ste}var kte,U9e;function eGn(){if(U9e)return kte;U9e=1;var e=dOe(),t=eOt();kte=n;function n(r,s){var a=new e,i={},l=new t,c;function u(f){var p=f.v===c?f.w:f.v,h=l.priority(p);if(h!==void 0){var m=s(f);m<h&&(i[p]=c,l.decrease(p,m))}}if(r.nodeCount()===0)return a;r.nodes().forEach(function(f){l.add(f,Number.POSITIVE_INFINITY),a.setNode(f)}),l.decrease(r.nodes()[0],0);for(var d=!1;l.size()>0;){if(c=l.removeMin(),Object.hasOwn(i,c))a.setEdge(c,i[c]);else{if(d)throw new Error("Input graph is not connected: "+r);d=!0}r.nodeEdges(c).forEach(u)}return a}return kte}var Ote,q9e;function tGn(){return q9e||(q9e=1,Ote={components:ZZn(),dijkstra:tOt(),dijkstraAll:GZn(),findCycles:QZn(),floydWarshall:YZn(),isAcyclic:KZn(),postorder:XZn(),preorder:JZn(),prim:eGn(),tarjan:nOt(),topsort:rOt()}),Ote}var _te,V9e;function Ug(){if(V9e)return _te;V9e=1;var e=HZn();return _te={Graph:e.Graph,json:WZn(),alg:tGn(),version:e.version},_te}var Cte,H9e;function nGn(){if(H9e)return Cte;H9e=1;class e{constructor(){let s={};s._next=s._prev=s,this._sentinel=s}dequeue(){let s=this._sentinel,a=s._prev;if(a!==s)return t(a),a}enqueue(s){let a=this._sentinel;s._prev&&s._next&&t(s),s._next=a._next,a._next._prev=s,a._next=s,s._prev=a}toString(){let s=[],a=this._sentinel,i=a._prev;for(;i!==a;)s.push(JSON.stringify(i,n)),i=i._prev;return"["+s.join(", ")+"]"}}function t(r){r._prev._next=r._next,r._next._prev=r._prev,delete r._next,delete r._prev}function n(r,s){if(r!=="_next"&&r!=="_prev")return s}return Cte=e,Cte}var Ete,W9e;function rGn(){if(W9e)return Ete;W9e=1;let e=Ug().Graph,t=nGn();Ete=r;let n=()=>1;function r(u,d){if(u.nodeCount()<=1)return[];let f=i(u,d||n);return s(f.graph,f.buckets,f.zeroIdx).flatMap(h=>u.outEdges(h.v,h.w))}function s(u,d,f){let p=[],h=d[d.length-1],m=d[0],v;for(;u.nodeCount();){for(;v=m.dequeue();)a(u,d,f,v);for(;v=h.dequeue();)a(u,d,f,v);if(u.nodeCount()){for(let y=d.length-2;y>0;--y)if(v=d[y].dequeue(),v){p=p.concat(a(u,d,f,v,!0));break}}}return p}function a(u,d,f,p,h){let m=h?[]:void 0;return u.inEdges(p.v).forEach(v=>{let y=u.edge(v),b=u.node(v.v);h&&m.push({v:v.v,w:v.w}),b.out-=y,l(d,f,b)}),u.outEdges(p.v).forEach(v=>{let y=u.edge(v),b=v.w,x=u.node(b);x.in-=y,l(d,f,x)}),u.removeNode(p.v),m}function i(u,d){let f=new e,p=0,h=0;u.nodes().forEach(y=>{f.setNode(y,{v:y,in:0,out:0})}),u.edges().forEach(y=>{let b=f.edge(y.v,y.w)||0,x=d(y),S=b+x;f.setEdge(y.v,y.w,S),h=Math.max(h,f.node(y.v).out+=x),p=Math.max(p,f.node(y.w).in+=x)});let m=c(h+p+3).map(()=>new t),v=p+1;return f.nodes().forEach(y=>{l(m,v,f.node(y))}),{graph:f,buckets:m,zeroIdx:v}}function l(u,d,f){f.out?f.in?u[f.out-f.in+d].enqueue(f):u[u.length-1].enqueue(f):u[0].enqueue(f)}function c(u){const d=[];for(let f=0;f<u;f++)d.push(f);return d}return Ete}var Tte,Z9e;function Pl(){if(Z9e)return Tte;Z9e=1;let e=Ug().Graph;Tte={addBorderNode:d,addDummyNode:t,applyWithChunking:h,asNonCompoundGraph:r,buildLayerMatrix:l,intersectRect:i,mapValues:C,maxRank:m,normalizeRanks:c,notime:b,partition:v,pick:_,predecessorWeights:a,range:k,removeEmptyRanks:u,simplify:n,successorWeights:s,time:y,uniqueId:S,zipObject:T};function t(E,N,I,A){for(var R=A;E.hasNode(R);)R=S(A);return I.dummy=N,E.setNode(R,I),R}function n(E){let N=new e().setGraph(E.graph());return E.nodes().forEach(I=>N.setNode(I,E.node(I))),E.edges().forEach(I=>{let A=N.edge(I.v,I.w)||{weight:0,minlen:1},R=E.edge(I);N.setEdge(I.v,I.w,{weight:A.weight+R.weight,minlen:Math.max(A.minlen,R.minlen)})}),N}function r(E){let N=new e({multigraph:E.isMultigraph()}).setGraph(E.graph());return E.nodes().forEach(I=>{E.children(I).length||N.setNode(I,E.node(I))}),E.edges().forEach(I=>{N.setEdge(I,E.edge(I))}),N}function s(E){let N=E.nodes().map(I=>{let A={};return E.outEdges(I).forEach(R=>{A[R.w]=(A[R.w]||0)+E.edge(R).weight}),A});return T(E.nodes(),N)}function a(E){let N=E.nodes().map(I=>{let A={};return E.inEdges(I).forEach(R=>{A[R.v]=(A[R.v]||0)+E.edge(R).weight}),A});return T(E.nodes(),N)}function i(E,N){let I=E.x,A=E.y,R=N.x-I,L=N.y-A,D=E.width/2,F=E.height/2;if(!R&&!L)throw new Error("Not possible to find intersection inside of the rectangle");let H,B;return Math.abs(L)*D>Math.abs(R)*F?(L<0&&(F=-F),H=F*R/L,B=F):(R<0&&(D=-D),H=D,B=D*L/R),{x:I+H,y:A+B}}function l(E){let N=k(m(E)+1).map(()=>[]);return E.nodes().forEach(I=>{let A=E.node(I),R=A.rank;R!==void 0&&(N[R][A.order]=I)}),N}function c(E){let N=E.nodes().map(A=>{let R=E.node(A).rank;return R===void 0?Number.MAX_VALUE:R}),I=h(Math.min,N);E.nodes().forEach(A=>{let R=E.node(A);Object.hasOwn(R,"rank")&&(R.rank-=I)})}function u(E){let N=E.nodes().map(D=>E.node(D).rank),I=h(Math.min,N),A=[];E.nodes().forEach(D=>{let F=E.node(D).rank-I;A[F]||(A[F]=[]),A[F].push(D)});let R=0,L=E.graph().nodeRankFactor;Array.from(A).forEach((D,F)=>{D===void 0&&F%L!==0?--R:D!==void 0&&R&&D.forEach(H=>E.node(H).rank+=R)})}function d(E,N,I,A){let R={width:0,height:0};return arguments.length>=4&&(R.rank=I,R.order=A),t(E,"border",R,N)}function f(E,N=p){const I=[];for(let A=0;A<E.length;A+=N){const R=E.slice(A,A+N);I.push(R)}return I}const p=65535;function h(E,N){if(N.length>p){const I=f(N);return E.apply(null,I.map(A=>E.apply(null,A)))}else return E.apply(null,N)}function m(E){const I=E.nodes().map(A=>{let R=E.node(A).rank;return R===void 0?Number.MIN_VALUE:R});return h(Math.max,I)}function v(E,N){let I={lhs:[],rhs:[]};return E.forEach(A=>{N(A)?I.lhs.push(A):I.rhs.push(A)}),I}function y(E,N){let I=Date.now();try{return N()}finally{console.log(E+" time: "+(Date.now()-I)+"ms")}}function b(E,N){return N()}let x=0;function S(E){var N=++x;return E+(""+N)}function k(E,N,I=1){N==null&&(N=E,E=0);let A=L=>L<N;I<0&&(A=L=>N<L);const R=[];for(let L=E;A(L);L+=I)R.push(L);return R}function _(E,N){const I={};for(const A of N)E[A]!==void 0&&(I[A]=E[A]);return I}function C(E,N){let I=N;return typeof N=="string"&&(I=A=>A[N]),Object.entries(E).reduce((A,[R,L])=>(A[R]=I(L,R),A),{})}function T(E,N){return E.reduce((I,A,R)=>(I[A]=N[R],I),{})}return Tte}var jte,G9e;function sGn(){if(G9e)return jte;G9e=1;let e=rGn(),t=Pl().uniqueId;jte={run:n,undo:s};function n(a){(a.graph().acyclicer==="greedy"?e(a,l(a)):r(a)).forEach(c=>{let u=a.edge(c);a.removeEdge(c),u.forwardName=c.name,u.reversed=!0,a.setEdge(c.w,c.v,u,t("rev"))});function l(c){return u=>c.edge(u).weight}}function r(a){let i=[],l={},c={};function u(d){Object.hasOwn(c,d)||(c[d]=!0,l[d]=!0,a.outEdges(d).forEach(f=>{Object.hasOwn(l,f.w)?i.push(f):u(f.w)}),delete l[d])}return a.nodes().forEach(u),i}function s(a){a.edges().forEach(i=>{let l=a.edge(i);if(l.reversed){a.removeEdge(i);let c=l.forwardName;delete l.reversed,delete l.forwardName,a.setEdge(i.w,i.v,l,c)}})}return jte}var Nte,Q9e;function aGn(){if(Q9e)return Nte;Q9e=1;let e=Pl();Nte={run:t,undo:r};function t(s){s.graph().dummyChains=[],s.edges().forEach(a=>n(s,a))}function n(s,a){let i=a.v,l=s.node(i).rank,c=a.w,u=s.node(c).rank,d=a.name,f=s.edge(a),p=f.labelRank;if(u===l+1)return;s.removeEdge(a);let h,m,v;for(v=0,++l;l<u;++v,++l)f.points=[],m={width:0,height:0,edgeLabel:f,edgeObj:a,rank:l},h=e.addDummyNode(s,"edge",m,"_d"),l===p&&(m.width=f.width,m.height=f.height,m.dummy="edge-label",m.labelpos=f.labelpos),s.setEdge(i,h,{weight:f.weight},d),v===0&&s.graph().dummyChains.push(h),i=h;s.setEdge(i,c,{weight:f.weight},d)}function r(s){s.graph().dummyChains.forEach(a=>{let i=s.node(a),l=i.edgeLabel,c;for(s.setEdge(i.edgeObj,l);i.dummy;)c=s.successors(a)[0],s.removeNode(a),l.points.push({x:i.x,y:i.y}),i.dummy==="edge-label"&&(l.x=i.x,l.y=i.y,l.width=i.width,l.height=i.height),a=c,i=s.node(a)})}return Nte}var Ite,Y9e;function QB(){if(Y9e)return Ite;Y9e=1;const{applyWithChunking:e}=Pl();Ite={longestPath:t,slack:n};function t(r){var s={};function a(i){var l=r.node(i);if(Object.hasOwn(s,i))return l.rank;s[i]=!0;let c=r.outEdges(i).map(d=>d==null?Number.POSITIVE_INFINITY:a(d.w)-r.edge(d).minlen);var u=e(Math.min,c);return u===Number.POSITIVE_INFINITY&&(u=0),l.rank=u}r.sources().forEach(a)}function n(r,s){return r.node(s.w).rank-r.node(s.v).rank-r.edge(s).minlen}return Ite}var Ate,K9e;function aOt(){if(K9e)return Ate;K9e=1;var e=Ug().Graph,t=QB().slack;Ate=n;function n(i){var l=new e({directed:!1}),c=i.nodes()[0],u=i.nodeCount();l.setNode(c,{});for(var d,f;r(l,i)<u;)d=s(l,i),f=l.hasNode(d.v)?t(i,d):-t(i,d),a(l,i,f);return l}function r(i,l){function c(u){l.nodeEdges(u).forEach(d=>{var f=d.v,p=u===f?d.w:f;!i.hasNode(p)&&!t(l,d)&&(i.setNode(p,{}),i.setEdge(u,p,{}),c(p))})}return i.nodes().forEach(c),i.nodeCount()}function s(i,l){return l.edges().reduce((u,d)=>{let f=Number.POSITIVE_INFINITY;return i.hasNode(d.v)!==i.hasNode(d.w)&&(f=t(l,d)),f<u[0]?[f,d]:u},[Number.POSITIVE_INFINITY,null])[1]}function a(i,l,c){i.nodes().forEach(u=>l.node(u).rank+=c)}return Ate}var Rte,X9e;function iGn(){if(X9e)return Rte;X9e=1;var e=aOt(),t=QB().slack,n=QB().longestPath,r=Ug().alg.preorder,s=Ug().alg.postorder,a=Pl().simplify;Rte=i,i.initLowLimValues=d,i.initCutValues=l,i.calcCutValue=u,i.leaveEdge=p,i.enterEdge=h,i.exchangeEdges=m;function i(x){x=a(x),n(x);var S=e(x);d(S),l(S,x);for(var k,_;k=p(S);)_=h(S,x,k),m(S,x,k,_)}function l(x,S){var k=s(x,x.nodes());k=k.slice(0,k.length-1),k.forEach(_=>c(x,S,_))}function c(x,S,k){var _=x.node(k),C=_.parent;x.edge(k,C).cutvalue=u(x,S,k)}function u(x,S,k){var _=x.node(k),C=_.parent,T=!0,E=S.edge(k,C),N=0;return E||(T=!1,E=S.edge(C,k)),N=E.weight,S.nodeEdges(k).forEach(I=>{var A=I.v===k,R=A?I.w:I.v;if(R!==C){var L=A===T,D=S.edge(I).weight;if(N+=L?D:-D,y(x,k,R)){var F=x.edge(k,R).cutvalue;N+=L?-F:F}}}),N}function d(x,S){arguments.length<2&&(S=x.nodes()[0]),f(x,{},1,S)}function f(x,S,k,_,C){var T=k,E=x.node(_);return S[_]=!0,x.neighbors(_).forEach(N=>{Object.hasOwn(S,N)||(k=f(x,S,k,N,_))}),E.low=T,E.lim=k++,C?E.parent=C:delete E.parent,k}function p(x){return x.edges().find(S=>x.edge(S).cutvalue<0)}function h(x,S,k){var _=k.v,C=k.w;S.hasEdge(_,C)||(_=k.w,C=k.v);var T=x.node(_),E=x.node(C),N=T,I=!1;T.lim>E.lim&&(N=E,I=!0);var A=S.edges().filter(R=>I===b(x,x.node(R.v),N)&&I!==b(x,x.node(R.w),N));return A.reduce((R,L)=>t(S,L)<t(S,R)?L:R)}function m(x,S,k,_){var C=k.v,T=k.w;x.removeEdge(C,T),x.setEdge(_.v,_.w,{}),d(x),l(x,S),v(x,S)}function v(x,S){var k=x.nodes().find(C=>!S.node(C).parent),_=r(x,k);_=_.slice(1),_.forEach(C=>{var T=x.node(C).parent,E=S.edge(C,T),N=!1;E||(E=S.edge(T,C),N=!0),S.node(C).rank=S.node(T).rank+(N?E.minlen:-E.minlen)})}function y(x,S,k){return x.hasEdge(S,k)}function b(x,S,k){return k.low<=S.lim&&S.lim<=k.lim}return Rte}var Pte,J9e;function oGn(){if(J9e)return Pte;J9e=1;var e=QB(),t=e.longestPath,n=aOt(),r=iGn();Pte=s;function s(c){var u=c.graph().ranker;if(u instanceof Function)return u(c);switch(c.graph().ranker){case"network-simplex":l(c);break;case"tight-tree":i(c);break;case"longest-path":a(c);break;case"none":break;default:l(c)}}var a=t;function i(c){t(c),n(c)}function l(c){r(c)}return Pte}var $te,e7e;function lGn(){if(e7e)return $te;e7e=1,$te=e;function e(r){let s=n(r);r.graph().dummyChains.forEach(a=>{let i=r.node(a),l=i.edgeObj,c=t(r,s,l.v,l.w),u=c.path,d=c.lca,f=0,p=u[f],h=!0;for(;a!==l.w;){if(i=r.node(a),h){for(;(p=u[f])!==d&&r.node(p).maxRank<i.rank;)f++;p===d&&(h=!1)}if(!h){for(;f<u.length-1&&r.node(p=u[f+1]).minRank<=i.rank;)f++;p=u[f]}r.setParent(a,p),a=r.successors(a)[0]}})}function t(r,s,a,i){let l=[],c=[],u=Math.min(s[a].low,s[i].low),d=Math.max(s[a].lim,s[i].lim),f,p;f=a;do f=r.parent(f),l.push(f);while(f&&(s[f].low>u||d>s[f].lim));for(p=f,f=i;(f=r.parent(f))!==p;)c.push(f);return{path:l.concat(c.reverse()),lca:p}}function n(r){let s={},a=0;function i(l){let c=a;r.children(l).forEach(i),s[l]={low:c,lim:a++}}return r.children().forEach(i),s}return $te}var Mte,t7e;function cGn(){if(t7e)return Mte;t7e=1;let e=Pl();Mte={run:t,cleanup:a};function t(i){let l=e.addDummyNode(i,"root",{},"_root"),c=r(i),u=Object.values(c),d=e.applyWithChunking(Math.max,u)-1,f=2*d+1;i.graph().nestingRoot=l,i.edges().forEach(h=>i.edge(h).minlen*=f);let p=s(i)+1;i.children().forEach(h=>n(i,l,f,p,d,c,h)),i.graph().nodeRankFactor=f}function n(i,l,c,u,d,f,p){let h=i.children(p);if(!h.length){p!==l&&i.setEdge(l,p,{weight:0,minlen:c});return}let m=e.addBorderNode(i,"_bt"),v=e.addBorderNode(i,"_bb"),y=i.node(p);i.setParent(m,p),y.borderTop=m,i.setParent(v,p),y.borderBottom=v,h.forEach(b=>{n(i,l,c,u,d,f,b);let x=i.node(b),S=x.borderTop?x.borderTop:b,k=x.borderBottom?x.borderBottom:b,_=x.borderTop?u:2*u,C=S!==k?1:d-f[p]+1;i.setEdge(m,S,{weight:_,minlen:C,nestingEdge:!0}),i.setEdge(k,v,{weight:_,minlen:C,nestingEdge:!0})}),i.parent(p)||i.setEdge(l,m,{weight:0,minlen:d+f[p]})}function r(i){var l={};function c(u,d){var f=i.children(u);f&&f.length&&f.forEach(p=>c(p,d+1)),l[u]=d}return i.children().forEach(u=>c(u,1)),l}function s(i){return i.edges().reduce((l,c)=>l+i.edge(c).weight,0)}function a(i){var l=i.graph();i.removeNode(l.nestingRoot),delete l.nestingRoot,i.edges().forEach(c=>{var u=i.edge(c);u.nestingEdge&&i.removeEdge(c)})}return Mte}var Dte,n7e;function uGn(){if(n7e)return Dte;n7e=1;let e=Pl();Dte=t;function t(r){function s(a){let i=r.children(a),l=r.node(a);if(i.length&&i.forEach(s),Object.hasOwn(l,"minRank")){l.borderLeft=[],l.borderRight=[];for(let c=l.minRank,u=l.maxRank+1;c<u;++c)n(r,"borderLeft","_bl",a,l,c),n(r,"borderRight","_br",a,l,c)}}r.children().forEach(s)}function n(r,s,a,i,l,c){let u={width:0,height:0,rank:c,borderType:s},d=l[s][c-1],f=e.addDummyNode(r,"border",u,a);l[s][c]=f,r.setParent(f,i),d&&r.setEdge(d,f,{weight:1})}return Dte}var Lte,r7e;function dGn(){if(r7e)return Lte;r7e=1,Lte={adjust:e,undo:t};function e(c){let u=c.graph().rankdir.toLowerCase();(u==="lr"||u==="rl")&&n(c)}function t(c){let u=c.graph().rankdir.toLowerCase();(u==="bt"||u==="rl")&&s(c),(u==="lr"||u==="rl")&&(i(c),n(c))}function n(c){c.nodes().forEach(u=>r(c.node(u))),c.edges().forEach(u=>r(c.edge(u)))}function r(c){let u=c.width;c.width=c.height,c.height=u}function s(c){c.nodes().forEach(u=>a(c.node(u))),c.edges().forEach(u=>{let d=c.edge(u);d.points.forEach(a),Object.hasOwn(d,"y")&&a(d)})}function a(c){c.y=-c.y}function i(c){c.nodes().forEach(u=>l(c.node(u))),c.edges().forEach(u=>{let d=c.edge(u);d.points.forEach(l),Object.hasOwn(d,"x")&&l(d)})}function l(c){let u=c.x;c.x=c.y,c.y=u}return Lte}var Fte,s7e;function fGn(){if(s7e)return Fte;s7e=1;let e=Pl();Fte=t;function t(n){let r={},s=n.nodes().filter(d=>!n.children(d).length),a=s.map(d=>n.node(d).rank),i=e.applyWithChunking(Math.max,a),l=e.range(i+1).map(()=>[]);function c(d){if(r[d])return;r[d]=!0;let f=n.node(d);l[f.rank].push(d),n.successors(d).forEach(c)}return s.sort((d,f)=>n.node(d).rank-n.node(f).rank).forEach(c),l}return Fte}var zte,a7e;function pGn(){if(a7e)return zte;a7e=1;let e=Pl().zipObject;zte=t;function t(r,s){let a=0;for(let i=1;i<s.length;++i)a+=n(r,s[i-1],s[i]);return a}function n(r,s,a){let i=e(a,a.map((p,h)=>h)),l=s.flatMap(p=>r.outEdges(p).map(h=>({pos:i[h.w],weight:r.edge(h).weight})).sort((h,m)=>h.pos-m.pos)),c=1;for(;c<a.length;)c<<=1;let u=2*c-1;c-=1;let d=new Array(u).fill(0),f=0;return l.forEach(p=>{let h=p.pos+c;d[h]+=p.weight;let m=0;for(;h>0;)h%2&&(m+=d[h+1]),h=h-1>>1,d[h]+=p.weight;f+=p.weight*m}),f}return zte}var Bte,i7e;function hGn(){if(i7e)return Bte;i7e=1,Bte=e;function e(t,n=[]){return n.map(r=>{let s=t.inEdges(r);if(s.length){let a=s.reduce((i,l)=>{let c=t.edge(l),u=t.node(l.v);return{sum:i.sum+c.weight*u.order,weight:i.weight+c.weight}},{sum:0,weight:0});return{v:r,barycenter:a.sum/a.weight,weight:a.weight}}else return{v:r}})}return Bte}var Ute,o7e;function mGn(){if(o7e)return Ute;o7e=1;let e=Pl();Ute=t;function t(s,a){let i={};s.forEach((c,u)=>{let d=i[c.v]={indegree:0,in:[],out:[],vs:[c.v],i:u};c.barycenter!==void 0&&(d.barycenter=c.barycenter,d.weight=c.weight)}),a.edges().forEach(c=>{let u=i[c.v],d=i[c.w];u!==void 0&&d!==void 0&&(d.indegree++,u.out.push(i[c.w]))});let l=Object.values(i).filter(c=>!c.indegree);return n(l)}function n(s){let a=[];function i(c){return u=>{u.merged||(u.barycenter===void 0||c.barycenter===void 0||u.barycenter>=c.barycenter)&&r(c,u)}}function l(c){return u=>{u.in.push(c),--u.indegree===0&&s.push(u)}}for(;s.length;){let c=s.pop();a.push(c),c.in.reverse().forEach(i(c)),c.out.forEach(l(c))}return a.filter(c=>!c.merged).map(c=>e.pick(c,["vs","i","barycenter","weight"]))}function r(s,a){let i=0,l=0;s.weight&&(i+=s.barycenter*s.weight,l+=s.weight),a.weight&&(i+=a.barycenter*a.weight,l+=a.weight),s.vs=a.vs.concat(s.vs),s.barycenter=i/l,s.weight=l,s.i=Math.min(a.i,s.i),a.merged=!0}return Ute}var qte,l7e;function gGn(){if(l7e)return qte;l7e=1;let e=Pl();qte=t;function t(s,a){let i=e.partition(s,m=>Object.hasOwn(m,"barycenter")),l=i.lhs,c=i.rhs.sort((m,v)=>v.i-m.i),u=[],d=0,f=0,p=0;l.sort(r(!!a)),p=n(u,c,p),l.forEach(m=>{p+=m.vs.length,u.push(m.vs),d+=m.barycenter*m.weight,f+=m.weight,p=n(u,c,p)});let h={vs:u.flat(!0)};return f&&(h.barycenter=d/f,h.weight=f),h}function n(s,a,i){let l;for(;a.length&&(l=a[a.length-1]).i<=i;)a.pop(),s.push(l.vs),i++;return i}function r(s){return(a,i)=>a.barycenter<i.barycenter?-1:a.barycenter>i.barycenter?1:s?i.i-a.i:a.i-i.i}return qte}var Vte,c7e;function vGn(){if(c7e)return Vte;c7e=1;let e=hGn(),t=mGn(),n=gGn();Vte=r;function r(i,l,c,u){let d=i.children(l),f=i.node(l),p=f?f.borderLeft:void 0,h=f?f.borderRight:void 0,m={};p&&(d=d.filter(x=>x!==p&&x!==h));let v=e(i,d);v.forEach(x=>{if(i.children(x.v).length){let S=r(i,x.v,c,u);m[x.v]=S,Object.hasOwn(S,"barycenter")&&a(x,S)}});let y=t(v,c);s(y,m);let b=n(y,u);if(p&&(b.vs=[p,b.vs,h].flat(!0),i.predecessors(p).length)){let x=i.node(i.predecessors(p)[0]),S=i.node(i.predecessors(h)[0]);Object.hasOwn(b,"barycenter")||(b.barycenter=0,b.weight=0),b.barycenter=(b.barycenter*b.weight+x.order+S.order)/(b.weight+2),b.weight+=2}return b}function s(i,l){i.forEach(c=>{c.vs=c.vs.flatMap(u=>l[u]?l[u].vs:u)})}function a(i,l){i.barycenter!==void 0?(i.barycenter=(i.barycenter*i.weight+l.barycenter*l.weight)/(i.weight+l.weight),i.weight+=l.weight):(i.barycenter=l.barycenter,i.weight=l.weight)}return Vte}var Hte,u7e;function yGn(){if(u7e)return Hte;u7e=1;let e=Ug().Graph,t=Pl();Hte=n;function n(s,a,i,l){l||(l=s.nodes());let c=r(s),u=new e({compound:!0}).setGraph({root:c}).setDefaultNodeLabel(d=>s.node(d));return l.forEach(d=>{let f=s.node(d),p=s.parent(d);(f.rank===a||f.minRank<=a&&a<=f.maxRank)&&(u.setNode(d),u.setParent(d,p||c),s[i](d).forEach(h=>{let m=h.v===d?h.w:h.v,v=u.edge(m,d),y=v!==void 0?v.weight:0;u.setEdge(m,d,{weight:s.edge(h).weight+y})}),Object.hasOwn(f,"minRank")&&u.setNode(d,{borderLeft:f.borderLeft[a],borderRight:f.borderRight[a]}))}),u}function r(s){for(var a;s.hasNode(a=t.uniqueId("_root")););return a}return Hte}var Wte,d7e;function bGn(){if(d7e)return Wte;d7e=1,Wte=e;function e(t,n,r){let s={},a;r.forEach(i=>{let l=t.parent(i),c,u;for(;l;){if(c=t.parent(l),c?(u=s[c],s[c]=l):(u=a,a=l),u&&u!==l){n.setEdge(u,l);return}l=c}})}return Wte}var Zte,f7e;function xGn(){if(f7e)return Zte;f7e=1;let e=fGn(),t=pGn(),n=vGn(),r=yGn(),s=bGn(),a=Ug().Graph,i=Pl();Zte=l;function l(f,p){if(p&&typeof p.customOrder=="function"){p.customOrder(f,l);return}let h=i.maxRank(f),m=c(f,i.range(1,h+1),"inEdges"),v=c(f,i.range(h-1,-1,-1),"outEdges"),y=e(f);if(d(f,y),p&&p.disableOptimalOrderHeuristic)return;let b=Number.POSITIVE_INFINITY,x;for(let S=0,k=0;k<4;++S,++k){u(S%2?m:v,S%4>=2),y=i.buildLayerMatrix(f);let _=t(f,y);_<b&&(k=0,x=Object.assign({},y),b=_)}d(f,x)}function c(f,p,h){const m=new Map,v=(y,b)=>{m.has(y)||m.set(y,[]),m.get(y).push(b)};for(const y of f.nodes()){const b=f.node(y);if(typeof b.rank=="number"&&v(b.rank,y),typeof b.minRank=="number"&&typeof b.maxRank=="number")for(let x=b.minRank;x<=b.maxRank;x++)x!==b.rank&&v(x,y)}return p.map(function(y){return r(f,y,h,m.get(y)||[])})}function u(f,p){let h=new a;f.forEach(function(m){let v=m.graph().root,y=n(m,v,h,p);y.vs.forEach((b,x)=>m.node(b).order=x),s(m,h,y.vs)})}function d(f,p){Object.values(p).forEach(h=>h.forEach((m,v)=>f.node(m).order=v))}return Zte}var Gte,p7e;function wGn(){if(p7e)return Gte;p7e=1;let e=Ug().Graph,t=Pl();Gte={positionX:h,findType1Conflicts:n,findType2Conflicts:r,addConflict:a,hasConflict:i,verticalAlignment:l,horizontalCompaction:c,alignCoordinates:f,findSmallestWidthAlignment:d,balance:p};function n(y,b){let x={};function S(k,_){let C=0,T=0,E=k.length,N=_[_.length-1];return _.forEach((I,A)=>{let R=s(y,I),L=R?y.node(R).order:E;(R||I===N)&&(_.slice(T,A+1).forEach(D=>{y.predecessors(D).forEach(F=>{let H=y.node(F),B=H.order;(B<C||L<B)&&!(H.dummy&&y.node(D).dummy)&&a(x,F,D)})}),T=A+1,C=L)}),_}return b.length&&b.reduce(S),x}function r(y,b){let x={};function S(_,C,T,E,N){let I;t.range(C,T).forEach(A=>{I=_[A],y.node(I).dummy&&y.predecessors(I).forEach(R=>{let L=y.node(R);L.dummy&&(L.order<E||L.order>N)&&a(x,R,I)})})}function k(_,C){let T=-1,E,N=0;return C.forEach((I,A)=>{if(y.node(I).dummy==="border"){let R=y.predecessors(I);R.length&&(E=y.node(R[0]).order,S(C,N,A,T,E),N=A,T=E)}S(C,N,C.length,E,_.length)}),C}return b.length&&b.reduce(k),x}function s(y,b){if(y.node(b).dummy)return y.predecessors(b).find(x=>y.node(x).dummy)}function a(y,b,x){if(b>x){let k=b;b=x,x=k}let S=y[b];S||(y[b]=S={}),S[x]=!0}function i(y,b,x){if(b>x){let S=b;b=x,x=S}return!!y[b]&&Object.hasOwn(y[b],x)}function l(y,b,x,S){let k={},_={},C={};return b.forEach(T=>{T.forEach((E,N)=>{k[E]=E,_[E]=E,C[E]=N})}),b.forEach(T=>{let E=-1;T.forEach(N=>{let I=S(N);if(I.length){I=I.sort((R,L)=>C[R]-C[L]);let A=(I.length-1)/2;for(let R=Math.floor(A),L=Math.ceil(A);R<=L;++R){let D=I[R];_[N]===N&&E<C[D]&&!i(x,N,D)&&(_[D]=N,_[N]=k[N]=k[D],E=C[D])}}})}),{root:k,align:_}}function c(y,b,x,S,k){let _={},C=u(y,b,x,k),T=k?"borderLeft":"borderRight";function E(A,R){let L=C.nodes(),D=L.pop(),F={};for(;D;)F[D]?A(D):(F[D]=!0,L.push(D),L=L.concat(R(D))),D=L.pop()}function N(A){_[A]=C.inEdges(A).reduce((R,L)=>Math.max(R,_[L.v]+C.edge(L)),0)}function I(A){let R=C.outEdges(A).reduce((D,F)=>Math.min(D,_[F.w]-C.edge(F)),Number.POSITIVE_INFINITY),L=y.node(A);R!==Number.POSITIVE_INFINITY&&L.borderType!==T&&(_[A]=Math.max(_[A],R))}return E(N,C.predecessors.bind(C)),E(I,C.successors.bind(C)),Object.keys(S).forEach(A=>_[A]=_[x[A]]),_}function u(y,b,x,S){let k=new e,_=y.graph(),C=m(_.nodesep,_.edgesep,S);return b.forEach(T=>{let E;T.forEach(N=>{let I=x[N];if(k.setNode(I),E){var A=x[E],R=k.edge(A,I);k.setEdge(A,I,Math.max(C(y,N,E),R||0))}E=N})}),k}function d(y,b){return Object.values(b).reduce((x,S)=>{let k=Number.NEGATIVE_INFINITY,_=Number.POSITIVE_INFINITY;Object.entries(S).forEach(([T,E])=>{let N=v(y,T)/2;k=Math.max(E+N,k),_=Math.min(E-N,_)});const C=k-_;return C<x[0]&&(x=[C,S]),x},[Number.POSITIVE_INFINITY,null])[1]}function f(y,b){let x=Object.values(b),S=t.applyWithChunking(Math.min,x),k=t.applyWithChunking(Math.max,x);["u","d"].forEach(_=>{["l","r"].forEach(C=>{let T=_+C,E=y[T];if(E===b)return;let N=Object.values(E),I=S-t.applyWithChunking(Math.min,N);C!=="l"&&(I=k-t.applyWithChunking(Math.max,N)),I&&(y[T]=t.mapValues(E,A=>A+I))})})}function p(y,b){return t.mapValues(y.ul,(x,S)=>{if(b)return y[b.toLowerCase()][S];{let k=Object.values(y).map(_=>_[S]).sort((_,C)=>_-C);return(k[1]+k[2])/2}})}function h(y){let b=t.buildLayerMatrix(y),x=Object.assign(n(y,b),r(y,b)),S={},k;["u","d"].forEach(C=>{k=C==="u"?b:Object.values(b).reverse(),["l","r"].forEach(T=>{T==="r"&&(k=k.map(A=>Object.values(A).reverse()));let E=(C==="u"?y.predecessors:y.successors).bind(y),N=l(y,k,x,E),I=c(y,k,N.root,N.align,T==="r");T==="r"&&(I=t.mapValues(I,A=>-A)),S[C+T]=I})});let _=d(y,S);return f(S,_),p(S,y.graph().align)}function m(y,b,x){return(S,k,_)=>{let C=S.node(k),T=S.node(_),E=0,N;if(E+=C.width/2,Object.hasOwn(C,"labelpos"))switch(C.labelpos.toLowerCase()){case"l":N=-C.width/2;break;case"r":N=C.width/2;break}if(N&&(E+=x?N:-N),N=0,E+=(C.dummy?b:y)/2,E+=(T.dummy?b:y)/2,E+=T.width/2,Object.hasOwn(T,"labelpos"))switch(T.labelpos.toLowerCase()){case"l":N=T.width/2;break;case"r":N=-T.width/2;break}return N&&(E+=x?N:-N),N=0,E}}function v(y,b){return y.node(b).width}return Gte}var Qte,h7e;function SGn(){if(h7e)return Qte;h7e=1;let e=Pl(),t=wGn().positionX;Qte=n;function n(s){s=e.asNonCompoundGraph(s),r(s),Object.entries(t(s)).forEach(([a,i])=>s.node(a).x=i)}function r(s){let a=e.buildLayerMatrix(s),i=s.graph().ranksep,l=0;a.forEach(c=>{const u=c.reduce((d,f)=>{const p=s.node(f).height;return d>p?d:p},0);c.forEach(d=>s.node(d).y=l+u/2),l+=u+i})}return Qte}var Yte,m7e;function kGn(){if(m7e)return Yte;m7e=1;let e=sGn(),t=aGn(),n=oGn(),r=Pl().normalizeRanks,s=lGn(),a=Pl().removeEmptyRanks,i=cGn(),l=uGn(),c=dGn(),u=xGn(),d=SGn(),f=Pl(),p=Ug().Graph;Yte=h;function h($,q){let Z=q&&q.debugTiming?f.time:f.notime;Z("layout",()=>{let Y=Z(" buildLayoutGraph",()=>E($));Z(" runLayout",()=>m(Y,Z,q)),Z(" updateInputGraph",()=>v($,Y))})}function m($,q,Z){q(" makeSpaceForEdgeLabels",()=>N($)),q(" removeSelfEdges",()=>z($)),q(" acyclic",()=>e.run($)),q(" nestingGraph.run",()=>i.run($)),q(" rank",()=>n(f.asNonCompoundGraph($))),q(" injectEdgeLabelProxies",()=>I($)),q(" removeEmptyRanks",()=>a($)),q(" nestingGraph.cleanup",()=>i.cleanup($)),q(" normalizeRanks",()=>r($)),q(" assignRankMinMax",()=>A($)),q(" removeEdgeLabelProxies",()=>R($)),q(" normalize.run",()=>t.run($)),q(" parentDummyChains",()=>s($)),q(" addBorderSegments",()=>l($)),q(" order",()=>u($,Z)),q(" insertSelfEdges",()=>V($)),q(" adjustCoordinateSystem",()=>c.adjust($)),q(" position",()=>d($)),q(" positionSelfEdges",()=>M($)),q(" removeBorderNodes",()=>B($)),q(" normalize.undo",()=>t.undo($)),q(" fixupEdgeLabelCoords",()=>F($)),q(" undoCoordinateSystem",()=>c.undo($)),q(" translateGraph",()=>L($)),q(" assignNodeIntersects",()=>D($)),q(" reversePoints",()=>H($)),q(" acyclic.undo",()=>e.undo($))}function v($,q){$.nodes().forEach(Z=>{let Y=$.node(Z),ne=q.node(Z);Y&&(Y.x=ne.x,Y.y=ne.y,Y.rank=ne.rank,q.children(Z).length&&(Y.width=ne.width,Y.height=ne.height))}),$.edges().forEach(Z=>{let Y=$.edge(Z),ne=q.edge(Z);Y.points=ne.points,Object.hasOwn(ne,"x")&&(Y.x=ne.x,Y.y=ne.y)}),$.graph().width=q.graph().width,$.graph().height=q.graph().height}let y=["nodesep","edgesep","ranksep","marginx","marginy"],b={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},x=["acyclicer","ranker","rankdir","align"],S=["width","height","rank"],k={width:0,height:0},_=["minlen","weight","width","height","labeloffset"],C={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},T=["labelpos"];function E($){let q=new p({multigraph:!0,compound:!0}),Z=U($.graph());return q.setGraph(Object.assign({},b,G(Z,y),f.pick(Z,x))),$.nodes().forEach(Y=>{let ne=U($.node(Y));const J=G(ne,S);Object.keys(k).forEach(ee=>{J[ee]===void 0&&(J[ee]=k[ee])}),q.setNode(Y,J),q.setParent(Y,$.parent(Y))}),$.edges().forEach(Y=>{let ne=U($.edge(Y));q.setEdge(Y,Object.assign({},C,G(ne,_),f.pick(ne,T)))}),q}function N($){let q=$.graph();q.ranksep/=2,$.edges().forEach(Z=>{let Y=$.edge(Z);Y.minlen*=2,Y.labelpos.toLowerCase()!=="c"&&(q.rankdir==="TB"||q.rankdir==="BT"?Y.width+=Y.labeloffset:Y.height+=Y.labeloffset)})}function I($){$.edges().forEach(q=>{let Z=$.edge(q);if(Z.width&&Z.height){let Y=$.node(q.v),J={rank:($.node(q.w).rank-Y.rank)/2+Y.rank,e:q};f.addDummyNode($,"edge-proxy",J,"_ep")}})}function A($){let q=0;$.nodes().forEach(Z=>{let Y=$.node(Z);Y.borderTop&&(Y.minRank=$.node(Y.borderTop).rank,Y.maxRank=$.node(Y.borderBottom).rank,q=Math.max(q,Y.maxRank))}),$.graph().maxRank=q}function R($){$.nodes().forEach(q=>{let Z=$.node(q);Z.dummy==="edge-proxy"&&($.edge(Z.e).labelRank=Z.rank,$.removeNode(q))})}function L($){let q=Number.POSITIVE_INFINITY,Z=0,Y=Number.POSITIVE_INFINITY,ne=0,J=$.graph(),ee=J.marginx||0,se=J.marginy||0;function le(X){let te=X.x,re=X.y,pe=X.width,ce=X.height;q=Math.min(q,te-pe/2),Z=Math.max(Z,te+pe/2),Y=Math.min(Y,re-ce/2),ne=Math.max(ne,re+ce/2)}$.nodes().forEach(X=>le($.node(X))),$.edges().forEach(X=>{let te=$.edge(X);Object.hasOwn(te,"x")&&le(te)}),q-=ee,Y-=se,$.nodes().forEach(X=>{let te=$.node(X);te.x-=q,te.y-=Y}),$.edges().forEach(X=>{let te=$.edge(X);te.points.forEach(re=>{re.x-=q,re.y-=Y}),Object.hasOwn(te,"x")&&(te.x-=q),Object.hasOwn(te,"y")&&(te.y-=Y)}),J.width=Z-q+ee,J.height=ne-Y+se}function D($){$.edges().forEach(q=>{let Z=$.edge(q),Y=$.node(q.v),ne=$.node(q.w),J,ee;Z.points?(J=Z.points[0],ee=Z.points[Z.points.length-1]):(Z.points=[],J=ne,ee=Y),Z.points.unshift(f.intersectRect(Y,J)),Z.points.push(f.intersectRect(ne,ee))})}function F($){$.edges().forEach(q=>{let Z=$.edge(q);if(Object.hasOwn(Z,"x"))switch((Z.labelpos==="l"||Z.labelpos==="r")&&(Z.width-=Z.labeloffset),Z.labelpos){case"l":Z.x-=Z.width/2+Z.labeloffset;break;case"r":Z.x+=Z.width/2+Z.labeloffset;break}})}function H($){$.edges().forEach(q=>{let Z=$.edge(q);Z.reversed&&Z.points.reverse()})}function B($){$.nodes().forEach(q=>{if($.children(q).length){let Z=$.node(q),Y=$.node(Z.borderTop),ne=$.node(Z.borderBottom),J=$.node(Z.borderLeft[Z.borderLeft.length-1]),ee=$.node(Z.borderRight[Z.borderRight.length-1]);Z.width=Math.abs(ee.x-J.x),Z.height=Math.abs(ne.y-Y.y),Z.x=J.x+Z.width/2,Z.y=Y.y+Z.height/2}}),$.nodes().forEach(q=>{$.node(q).dummy==="border"&&$.removeNode(q)})}function z($){$.edges().forEach(q=>{if(q.v===q.w){var Z=$.node(q.v);Z.selfEdges||(Z.selfEdges=[]),Z.selfEdges.push({e:q,label:$.edge(q)}),$.removeEdge(q)}})}function V($){var q=f.buildLayerMatrix($);q.forEach(Z=>{var Y=0;Z.forEach((ne,J)=>{var ee=$.node(ne);ee.order=J+Y,(ee.selfEdges||[]).forEach(se=>{f.addDummyNode($,"selfedge",{width:se.label.width,height:se.label.height,rank:ee.rank,order:J+ ++Y,e:se.e,label:se.label},"_se")}),delete ee.selfEdges})})}function M($){$.nodes().forEach(q=>{var Z=$.node(q);if(Z.dummy==="selfedge"){var Y=$.node(Z.e.v),ne=Y.x+Y.width/2,J=Y.y,ee=Z.x-ne,se=Y.height/2;$.setEdge(Z.e,Z.label),$.removeNode(q),Z.label.points=[{x:ne+2*ee/3,y:J-se},{x:ne+5*ee/6,y:J-se},{x:ne+ee,y:J},{x:ne+5*ee/6,y:J+se},{x:ne+2*ee/3,y:J+se}],Z.label.x=Z.x,Z.label.y=Z.y}})}function G($,q){return f.mapValues(f.pick($,q),Number)}function U($){var q={};return $&&Object.entries($).forEach(([Z,Y])=>{typeof Z=="string"&&(Z=Z.toLowerCase()),q[Z]=Y}),q}return Yte}var Kte,g7e;function OGn(){if(g7e)return Kte;g7e=1;let e=Pl(),t=Ug().Graph;Kte={debugOrdering:n};function n(r){let s=e.buildLayerMatrix(r),a=new t({compound:!0,multigraph:!0}).setGraph({});return r.nodes().forEach(i=>{a.setNode(i,{label:i}),a.setParent(i,"layer"+r.node(i).rank)}),r.edges().forEach(i=>a.setEdge(i.v,i.w,{},i.name)),s.forEach((i,l)=>{let c="layer"+l;a.setNode(c,{rank:"same"}),i.reduce((u,d)=>(a.setEdge(u,d,{style:"invis"}),d))}),a}return Kte}var Xte,v7e;function _Gn(){return v7e||(v7e=1,Xte="1.1.8"),Xte}var Jte,y7e;function CGn(){return y7e||(y7e=1,Jte={graphlib:Ug(),layout:kGn(),debug:OGn(),util:{time:Pl().time,notime:Pl().notime},version:_Gn()}),Jte}var EGn=CGn();const b7e=Ll(EGn);function Ul(e){if(typeof e=="string"||typeof e=="number")return""+e;let t="";if(Array.isArray(e))for(let n=0,r;n<e.length;n++)(r=Ul(e[n]))!==""&&(t+=(t&&" ")+r);else for(let n in e)e[n]&&(t+=(t&&" ")+n);return t}var TGn={value:()=>{}};function dW(){for(var e=0,t=arguments.length,n={},r;e<t;++e){if(!(r=arguments[e]+"")||r in n||/[\s.]/.test(r))throw new Error("illegal type: "+r);n[r]=[]}return new W8(n)}function W8(e){this._=e}function jGn(e,t){return e.trim().split(/^|\s+/).map(function(n){var r="",s=n.indexOf(".");if(s>=0&&(r=n.slice(s+1),n=n.slice(0,s)),n&&!t.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:r}})}W8.prototype=dW.prototype={constructor:W8,on:function(e,t){var n=this._,r=jGn(e+"",n),s,a=-1,i=r.length;if(arguments.length<2){for(;++a<i;)if((s=(e=r[a]).type)&&(s=NGn(n[s],e.name)))return s;return}if(t!=null&&typeof t!="function")throw new Error("invalid callback: "+t);for(;++a<i;)if(s=(e=r[a]).type)n[s]=x7e(n[s],e.name,t);else if(t==null)for(s in n)n[s]=x7e(n[s],e.name,null);return this},copy:function(){var e={},t=this._;for(var n in t)e[n]=t[n].slice();return new W8(e)},call:function(e,t){if((s=arguments.length-2)>0)for(var n=new Array(s),r=0,s,a;r<s;++r)n[r]=arguments[r+2];if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(a=this._[e],r=0,s=a.length;r<s;++r)a[r].value.apply(t,n)},apply:function(e,t,n){if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(var r=this._[e],s=0,a=r.length;s<a;++s)r[s].value.apply(t,n)}};function NGn(e,t){for(var n=0,r=e.length,s;n<r;++n)if((s=e[n]).name===t)return s.value}function x7e(e,t,n){for(var r=0,s=e.length;r<s;++r)if(e[r].name===t){e[r]=TGn,e=e.slice(0,r).concat(e.slice(r+1));break}return n!=null&&e.push({name:t,value:n}),e}var cve="http://www.w3.org/1999/xhtml";const w7e={svg:"http://www.w3.org/2000/svg",xhtml:cve,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function fW(e){var t=e+="",n=t.indexOf(":");return n>=0&&(t=e.slice(0,n))!=="xmlns"&&(e=e.slice(n+1)),w7e.hasOwnProperty(t)?{space:w7e[t],local:e}:e}function IGn(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===cve&&t.documentElement.namespaceURI===cve?t.createElement(e):t.createElementNS(n,e)}}function AGn(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function iOt(e){var t=fW(e);return(t.local?AGn:IGn)(t)}function RGn(){}function fOe(e){return e==null?RGn:function(){return this.querySelector(e)}}function PGn(e){typeof e!="function"&&(e=fOe(e));for(var t=this._groups,n=t.length,r=new Array(n),s=0;s<n;++s)for(var a=t[s],i=a.length,l=r[s]=new Array(i),c,u,d=0;d<i;++d)(c=a[d])&&(u=e.call(c,c.__data__,d,a))&&("__data__"in c&&(u.__data__=c.__data__),l[d]=u);return new Gp(r,this._parents)}function $Gn(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function MGn(){return[]}function oOt(e){return e==null?MGn:function(){return this.querySelectorAll(e)}}function DGn(e){return function(){return $Gn(e.apply(this,arguments))}}function LGn(e){typeof e=="function"?e=DGn(e):e=oOt(e);for(var t=this._groups,n=t.length,r=[],s=[],a=0;a<n;++a)for(var i=t[a],l=i.length,c,u=0;u<l;++u)(c=i[u])&&(r.push(e.call(c,c.__data__,u,i)),s.push(c));return new Gp(r,s)}function lOt(e){return function(){return this.matches(e)}}function cOt(e){return function(t){return t.matches(e)}}var FGn=Array.prototype.find;function zGn(e){return function(){return FGn.call(this.children,e)}}function BGn(){return this.firstElementChild}function UGn(e){return this.select(e==null?BGn:zGn(typeof e=="function"?e:cOt(e)))}var qGn=Array.prototype.filter;function VGn(){return Array.from(this.children)}function HGn(e){return function(){return qGn.call(this.children,e)}}function WGn(e){return this.selectAll(e==null?VGn:HGn(typeof e=="function"?e:cOt(e)))}function ZGn(e){typeof e!="function"&&(e=lOt(e));for(var t=this._groups,n=t.length,r=new Array(n),s=0;s<n;++s)for(var a=t[s],i=a.length,l=r[s]=[],c,u=0;u<i;++u)(c=a[u])&&e.call(c,c.__data__,u,a)&&l.push(c);return new Gp(r,this._parents)}function uOt(e){return new Array(e.length)}function GGn(){return new Gp(this._enter||this._groups.map(uOt),this._parents)}function YB(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}YB.prototype={constructor:YB,appendChild:function(e){return this._parent.insertBefore(e,this._next)},insertBefore:function(e,t){return this._parent.insertBefore(e,t)},querySelector:function(e){return this._parent.querySelector(e)},querySelectorAll:function(e){return this._parent.querySelectorAll(e)}};function QGn(e){return function(){return e}}function YGn(e,t,n,r,s,a){for(var i=0,l,c=t.length,u=a.length;i<u;++i)(l=t[i])?(l.__data__=a[i],r[i]=l):n[i]=new YB(e,a[i]);for(;i<c;++i)(l=t[i])&&(s[i]=l)}function KGn(e,t,n,r,s,a,i){var l,c,u=new Map,d=t.length,f=a.length,p=new Array(d),h;for(l=0;l<d;++l)(c=t[l])&&(p[l]=h=i.call(c,c.__data__,l,t)+"",u.has(h)?s[l]=c:u.set(h,c));for(l=0;l<f;++l)h=i.call(e,a[l],l,a)+"",(c=u.get(h))?(r[l]=c,c.__data__=a[l],u.delete(h)):n[l]=new YB(e,a[l]);for(l=0;l<d;++l)(c=t[l])&&u.get(p[l])===c&&(s[l]=c)}function XGn(e){return e.__data__}function JGn(e,t){if(!arguments.length)return Array.from(this,XGn);var n=t?KGn:YGn,r=this._parents,s=this._groups;typeof e!="function"&&(e=QGn(e));for(var a=s.length,i=new Array(a),l=new Array(a),c=new Array(a),u=0;u<a;++u){var d=r[u],f=s[u],p=f.length,h=eQn(e.call(d,d&&d.__data__,u,r)),m=h.length,v=l[u]=new Array(m),y=i[u]=new Array(m),b=c[u]=new Array(p);n(d,f,v,y,b,h,t);for(var x=0,S=0,k,_;x<m;++x)if(k=v[x]){for(x>=S&&(S=x+1);!(_=y[S])&&++S<m;);k._next=_||null}}return i=new Gp(i,r),i._enter=l,i._exit=c,i}function eQn(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function tQn(){return new Gp(this._exit||this._groups.map(uOt),this._parents)}function nQn(e,t,n){var r=this.enter(),s=this,a=this.exit();return typeof e=="function"?(r=e(r),r&&(r=r.selection())):r=r.append(e+""),t!=null&&(s=t(s),s&&(s=s.selection())),n==null?a.remove():n(a),r&&s?r.merge(s).order():s}function rQn(e){for(var t=e.selection?e.selection():e,n=this._groups,r=t._groups,s=n.length,a=r.length,i=Math.min(s,a),l=new Array(s),c=0;c<i;++c)for(var u=n[c],d=r[c],f=u.length,p=l[c]=new Array(f),h,m=0;m<f;++m)(h=u[m]||d[m])&&(p[m]=h);for(;c<s;++c)l[c]=n[c];return new Gp(l,this._parents)}function sQn(){for(var e=this._groups,t=-1,n=e.length;++t<n;)for(var r=e[t],s=r.length-1,a=r[s],i;--s>=0;)(i=r[s])&&(a&&i.compareDocumentPosition(a)^4&&a.parentNode.insertBefore(i,a),a=i);return this}function aQn(e){e||(e=iQn);function t(f,p){return f&&p?e(f.__data__,p.__data__):!f-!p}for(var n=this._groups,r=n.length,s=new Array(r),a=0;a<r;++a){for(var i=n[a],l=i.length,c=s[a]=new Array(l),u,d=0;d<l;++d)(u=i[d])&&(c[d]=u);c.sort(t)}return new Gp(s,this._parents).order()}function iQn(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function oQn(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function lQn(){return Array.from(this)}function cQn(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],s=0,a=r.length;s<a;++s){var i=r[s];if(i)return i}return null}function uQn(){let e=0;for(const t of this)++e;return e}function dQn(){return!this.node()}function fQn(e){for(var t=this._groups,n=0,r=t.length;n<r;++n)for(var s=t[n],a=0,i=s.length,l;a<i;++a)(l=s[a])&&e.call(l,l.__data__,a,s);return this}function pQn(e){return function(){this.removeAttribute(e)}}function hQn(e){return function(){this.removeAttributeNS(e.space,e.local)}}function mQn(e,t){return function(){this.setAttribute(e,t)}}function gQn(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function vQn(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}}function yQn(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,n)}}function bQn(e,t){var n=fW(e);if(arguments.length<2){var r=this.node();return n.local?r.getAttributeNS(n.space,n.local):r.getAttribute(n)}return this.each((t==null?n.local?hQn:pQn:typeof t=="function"?n.local?yQn:vQn:n.local?gQn:mQn)(n,t))}function dOt(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function xQn(e){return function(){this.style.removeProperty(e)}}function wQn(e,t,n){return function(){this.style.setProperty(e,t,n)}}function SQn(e,t,n){return function(){var r=t.apply(this,arguments);r==null?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function kQn(e,t,n){return arguments.length>1?this.each((t==null?xQn:typeof t=="function"?SQn:wQn)(e,t,n??"")):eN(this.node(),e)}function eN(e,t){return e.style.getPropertyValue(t)||dOt(e).getComputedStyle(e,null).getPropertyValue(t)}function OQn(e){return function(){delete this[e]}}function _Qn(e,t){return function(){this[e]=t}}function CQn(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function EQn(e,t){return arguments.length>1?this.each((t==null?OQn:typeof t=="function"?CQn:_Qn)(e,t)):this.node()[e]}function fOt(e){return e.trim().split(/^|\s+/)}function pOe(e){return e.classList||new pOt(e)}function pOt(e){this._node=e,this._names=fOt(e.getAttribute("class")||"")}pOt.prototype={add:function(e){var t=this._names.indexOf(e);t<0&&(this._names.push(e),this._node.setAttribute("class",this._names.join(" ")))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(e){return this._names.indexOf(e)>=0}};function hOt(e,t){for(var n=pOe(e),r=-1,s=t.length;++r<s;)n.add(t[r])}function mOt(e,t){for(var n=pOe(e),r=-1,s=t.length;++r<s;)n.remove(t[r])}function TQn(e){return function(){hOt(this,e)}}function jQn(e){return function(){mOt(this,e)}}function NQn(e,t){return function(){(t.apply(this,arguments)?hOt:mOt)(this,e)}}function IQn(e,t){var n=fOt(e+"");if(arguments.length<2){for(var r=pOe(this.node()),s=-1,a=n.length;++s<a;)if(!r.contains(n[s]))return!1;return!0}return this.each((typeof t=="function"?NQn:t?TQn:jQn)(n,t))}function AQn(){this.textContent=""}function RQn(e){return function(){this.textContent=e}}function PQn(e){return function(){var t=e.apply(this,arguments);this.textContent=t??""}}function $Qn(e){return arguments.length?this.each(e==null?AQn:(typeof e=="function"?PQn:RQn)(e)):this.node().textContent}function MQn(){this.innerHTML=""}function DQn(e){return function(){this.innerHTML=e}}function LQn(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??""}}function FQn(e){return arguments.length?this.each(e==null?MQn:(typeof e=="function"?LQn:DQn)(e)):this.node().innerHTML}function zQn(){this.nextSibling&&this.parentNode.appendChild(this)}function BQn(){return this.each(zQn)}function UQn(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function qQn(){return this.each(UQn)}function VQn(e){var t=typeof e=="function"?e:iOt(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function HQn(){return null}function WQn(e,t){var n=typeof e=="function"?e:iOt(e),r=t==null?HQn:typeof t=="function"?t:fOe(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})}function ZQn(){var e=this.parentNode;e&&e.removeChild(this)}function GQn(){return this.each(ZQn)}function QQn(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function YQn(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function KQn(e){return this.select(e?YQn:QQn)}function XQn(e){return arguments.length?this.property("__data__",e):this.node().__data__}function JQn(e){return function(t){e.call(this,t,this.__data__)}}function eYn(e){return e.trim().split(/^|\s+/).map(function(t){var n="",r=t.indexOf(".");return r>=0&&(n=t.slice(r+1),t=t.slice(0,r)),{type:t,name:n}})}function tYn(e){return function(){var t=this.__on;if(t){for(var n=0,r=-1,s=t.length,a;n<s;++n)a=t[n],(!e.type||a.type===e.type)&&a.name===e.name?this.removeEventListener(a.type,a.listener,a.options):t[++r]=a;++r?t.length=r:delete this.__on}}}function nYn(e,t,n){return function(){var r=this.__on,s,a=JQn(t);if(r){for(var i=0,l=r.length;i<l;++i)if((s=r[i]).type===e.type&&s.name===e.name){this.removeEventListener(s.type,s.listener,s.options),this.addEventListener(s.type,s.listener=a,s.options=n),s.value=t;return}}this.addEventListener(e.type,a,n),s={type:e.type,name:e.name,value:t,listener:a,options:n},r?r.push(s):this.__on=[s]}}function rYn(e,t,n){var r=eYn(e+""),s,a=r.length,i;if(arguments.length<2){var l=this.node().__on;if(l){for(var c=0,u=l.length,d;c<u;++c)for(s=0,d=l[c];s<a;++s)if((i=r[s]).type===d.type&&i.name===d.name)return d.value}return}for(l=t?nYn:tYn,s=0;s<a;++s)this.each(l(r[s],t,n));return this}function gOt(e,t,n){var r=dOt(e),s=r.CustomEvent;typeof s=="function"?s=new s(t,n):(s=r.document.createEvent("Event"),n?(s.initEvent(t,n.bubbles,n.cancelable),s.detail=n.detail):s.initEvent(t,!1,!1)),e.dispatchEvent(s)}function sYn(e,t){return function(){return gOt(this,e,t)}}function aYn(e,t){return function(){return gOt(this,e,t.apply(this,arguments))}}function iYn(e,t){return this.each((typeof t=="function"?aYn:sYn)(e,t))}function*oYn(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],s=0,a=r.length,i;s<a;++s)(i=r[s])&&(yield i)}var vOt=[null];function Gp(e,t){this._groups=e,this._parents=t}function Y3(){return new Gp([[document.documentElement]],vOt)}function lYn(){return this}Gp.prototype=Y3.prototype={constructor:Gp,select:PGn,selectAll:LGn,selectChild:UGn,selectChildren:WGn,filter:ZGn,data:JGn,enter:GGn,exit:tQn,join:nQn,merge:rQn,selection:lYn,order:sQn,sort:aQn,call:oQn,nodes:lQn,node:cQn,size:uQn,empty:dQn,each:fQn,attr:bQn,style:kQn,property:EQn,classed:IQn,text:$Qn,html:FQn,raise:BQn,lower:qQn,append:VQn,insert:WQn,remove:GQn,clone:KQn,datum:XQn,on:rYn,dispatch:iYn,[Symbol.iterator]:oYn};function _p(e){return typeof e=="string"?new Gp([[document.querySelector(e)]],[document.documentElement]):new Gp([[e]],vOt)}function cYn(e){let t;for(;t=e.sourceEvent;)e=t;return e}function dg(e,t){if(e=cYn(e),t===void 0&&(t=e.currentTarget),t){var n=t.ownerSVGElement||t;if(n.createSVGPoint){var r=n.createSVGPoint();return r.x=e.clientX,r.y=e.clientY,r=r.matrixTransform(t.getScreenCTM().inverse()),[r.x,r.y]}if(t.getBoundingClientRect){var s=t.getBoundingClientRect();return[e.clientX-s.left-t.clientLeft,e.clientY-s.top-t.clientTop]}}return[e.pageX,e.pageY]}const uYn={passive:!1},IM={capture:!0,passive:!1};function ene(e){e.stopImmediatePropagation()}function tj(e){e.preventDefault(),e.stopImmediatePropagation()}function yOt(e){var t=e.document.documentElement,n=_p(e).on("dragstart.drag",tj,IM);"onselectstart"in t?n.on("selectstart.drag",tj,IM):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect="none")}function bOt(e,t){var n=e.document.documentElement,r=_p(e).on("dragstart.drag",null);t&&(r.on("click.drag",tj,IM),setTimeout(function(){r.on("click.drag",null)},0)),"onselectstart"in n?r.on("selectstart.drag",null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}const gF=e=>()=>e;function uve(e,{sourceEvent:t,subject:n,target:r,identifier:s,active:a,x:i,y:l,dx:c,dy:u,dispatch:d}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},identifier:{value:s,enumerable:!0,configurable:!0},active:{value:a,enumerable:!0,configurable:!0},x:{value:i,enumerable:!0,configurable:!0},y:{value:l,enumerable:!0,configurable:!0},dx:{value:c,enumerable:!0,configurable:!0},dy:{value:u,enumerable:!0,configurable:!0},_:{value:d}})}uve.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function dYn(e){return!e.ctrlKey&&!e.button}function fYn(){return this.parentNode}function pYn(e,t){return t??{x:e.x,y:e.y}}function hYn(){return navigator.maxTouchPoints||"ontouchstart"in this}function xOt(){var e=dYn,t=fYn,n=pYn,r=hYn,s={},a=dW("start","drag","end"),i=0,l,c,u,d,f=0;function p(k){k.on("mousedown.drag",h).filter(r).on("touchstart.drag",y).on("touchmove.drag",b,uYn).on("touchend.drag touchcancel.drag",x).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function h(k,_){if(!(d||!e.call(this,k,_))){var C=S(this,t.call(this,k,_),k,_,"mouse");C&&(_p(k.view).on("mousemove.drag",m,IM).on("mouseup.drag",v,IM),yOt(k.view),ene(k),u=!1,l=k.clientX,c=k.clientY,C("start",k))}}function m(k){if(tj(k),!u){var _=k.clientX-l,C=k.clientY-c;u=_*_+C*C>f}s.mouse("drag",k)}function v(k){_p(k.view).on("mousemove.drag mouseup.drag",null),bOt(k.view,u),tj(k),s.mouse("end",k)}function y(k,_){if(e.call(this,k,_)){var C=k.changedTouches,T=t.call(this,k,_),E=C.length,N,I;for(N=0;N<E;++N)(I=S(this,T,k,_,C[N].identifier,C[N]))&&(ene(k),I("start",k,C[N]))}}function b(k){var _=k.changedTouches,C=_.length,T,E;for(T=0;T<C;++T)(E=s[_[T].identifier])&&(tj(k),E("drag",k,_[T]))}function x(k){var _=k.changedTouches,C=_.length,T,E;for(d&&clearTimeout(d),d=setTimeout(function(){d=null},500),T=0;T<C;++T)(E=s[_[T].identifier])&&(ene(k),E("end",k,_[T]))}function S(k,_,C,T,E,N){var I=a.copy(),A=dg(N||C,_),R,L,D;if((D=n.call(k,new uve("beforestart",{sourceEvent:C,target:p,identifier:E,active:i,x:A[0],y:A[1],dx:0,dy:0,dispatch:I}),T))!=null)return R=D.x-A[0]||0,L=D.y-A[1]||0,function F(H,B,z){var V=A,M;switch(H){case"start":s[E]=F,M=i++;break;case"end":delete s[E],--i;case"drag":A=dg(z||B,_),M=i;break}I.call(H,k,new uve(H,{sourceEvent:B,subject:D,target:p,identifier:E,active:M,x:A[0]+R,y:A[1]+L,dx:A[0]-V[0],dy:A[1]-V[1],dispatch:I}),T)}}return p.filter=function(k){return arguments.length?(e=typeof k=="function"?k:gF(!!k),p):e},p.container=function(k){return arguments.length?(t=typeof k=="function"?k:gF(k),p):t},p.subject=function(k){return arguments.length?(n=typeof k=="function"?k:gF(k),p):n},p.touchable=function(k){return arguments.length?(r=typeof k=="function"?k:gF(!!k),p):r},p.on=function(){var k=a.on.apply(a,arguments);return k===a?p:k},p.clickDistance=function(k){return arguments.length?(f=(k=+k)*k,p):Math.sqrt(f)},p}function hOe(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function wOt(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function K3(){}var AM=.7,KB=1/AM,nj="\\s*([+-]?\\d+)\\s*",RM="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",ly="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",mYn=/^#([0-9a-f]{3,8})$/,gYn=new RegExp(`^rgb\\(${nj},${nj},${nj}\\)$`),vYn=new RegExp(`^rgb\\(${ly},${ly},${ly}\\)$`),yYn=new RegExp(`^rgba\\(${nj},${nj},${nj},${RM}\\)$`),bYn=new RegExp(`^rgba\\(${ly},${ly},${ly},${RM}\\)$`),xYn=new RegExp(`^hsl\\(${RM},${ly},${ly}\\)$`),wYn=new RegExp(`^hsla\\(${RM},${ly},${ly},${RM}\\)$`),S7e={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};hOe(K3,KO,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:k7e,formatHex:k7e,formatHex8:SYn,formatHsl:kYn,formatRgb:O7e,toString:O7e});function k7e(){return this.rgb().formatHex()}function SYn(){return this.rgb().formatHex8()}function kYn(){return SOt(this).formatHsl()}function O7e(){return this.rgb().formatRgb()}function KO(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=mYn.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?_7e(t):n===3?new xf(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?vF(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?vF(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=gYn.exec(e))?new xf(t[1],t[2],t[3],1):(t=vYn.exec(e))?new xf(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=yYn.exec(e))?vF(t[1],t[2],t[3],t[4]):(t=bYn.exec(e))?vF(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=xYn.exec(e))?T7e(t[1],t[2]/100,t[3]/100,1):(t=wYn.exec(e))?T7e(t[1],t[2]/100,t[3]/100,t[4]):S7e.hasOwnProperty(e)?_7e(S7e[e]):e==="transparent"?new xf(NaN,NaN,NaN,0):null}function _7e(e){return new xf(e>>16&255,e>>8&255,e&255,1)}function vF(e,t,n,r){return r<=0&&(e=t=n=NaN),new xf(e,t,n,r)}function OYn(e){return e instanceof K3||(e=KO(e)),e?(e=e.rgb(),new xf(e.r,e.g,e.b,e.opacity)):new xf}function dve(e,t,n,r){return arguments.length===1?OYn(e):new xf(e,t,n,r??1)}function xf(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}hOe(xf,dve,wOt(K3,{brighter(e){return e=e==null?KB:Math.pow(KB,e),new xf(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?AM:Math.pow(AM,e),new xf(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new xf(aO(this.r),aO(this.g),aO(this.b),XB(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:C7e,formatHex:C7e,formatHex8:_Yn,formatRgb:E7e,toString:E7e}));function C7e(){return`#${Lk(this.r)}${Lk(this.g)}${Lk(this.b)}`}function _Yn(){return`#${Lk(this.r)}${Lk(this.g)}${Lk(this.b)}${Lk((isNaN(this.opacity)?1:this.opacity)*255)}`}function E7e(){const e=XB(this.opacity);return`${e===1?"rgb(":"rgba("}${aO(this.r)}, ${aO(this.g)}, ${aO(this.b)}${e===1?")":`, ${e})`}`}function XB(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function aO(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Lk(e){return e=aO(e),(e<16?"0":"")+e.toString(16)}function T7e(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new yg(e,t,n,r)}function SOt(e){if(e instanceof yg)return new yg(e.h,e.s,e.l,e.opacity);if(e instanceof K3||(e=KO(e)),!e)return new yg;if(e instanceof yg)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,s=Math.min(t,n,r),a=Math.max(t,n,r),i=NaN,l=a-s,c=(a+s)/2;return l?(t===a?i=(n-r)/l+(n<r)*6:n===a?i=(r-t)/l+2:i=(t-n)/l+4,l/=c<.5?a+s:2-a-s,i*=60):l=c>0&&c<1?0:i,new yg(i,l,c,e.opacity)}function CYn(e,t,n,r){return arguments.length===1?SOt(e):new yg(e,t,n,r??1)}function yg(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}hOe(yg,CYn,wOt(K3,{brighter(e){return e=e==null?KB:Math.pow(KB,e),new yg(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?AM:Math.pow(AM,e),new yg(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,s=2*n-r;return new xf(tne(e>=240?e-240:e+120,s,r),tne(e,s,r),tne(e<120?e+240:e-120,s,r),this.opacity)},clamp(){return new yg(j7e(this.h),yF(this.s),yF(this.l),XB(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=XB(this.opacity);return`${e===1?"hsl(":"hsla("}${j7e(this.h)}, ${yF(this.s)*100}%, ${yF(this.l)*100}%${e===1?")":`, ${e})`}`}}));function j7e(e){return e=(e||0)%360,e<0?e+360:e}function yF(e){return Math.max(0,Math.min(1,e||0))}function tne(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}const mOe=e=>()=>e;function EYn(e,t){return function(n){return e+n*t}}function TYn(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}function jYn(e){return(e=+e)==1?kOt:function(t,n){return n-t?TYn(t,n,e):mOe(isNaN(t)?n:t)}}function kOt(e,t){var n=t-e;return n?EYn(e,n):mOe(isNaN(e)?t:e)}const JB=(function e(t){var n=jYn(t);function r(s,a){var i=n((s=dve(s)).r,(a=dve(a)).r),l=n(s.g,a.g),c=n(s.b,a.b),u=kOt(s.opacity,a.opacity);return function(d){return s.r=i(d),s.g=l(d),s.b=c(d),s.opacity=u(d),s+""}}return r.gamma=e,r})(1);function NYn(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,r=t.slice(),s;return function(a){for(s=0;s<n;++s)r[s]=e[s]*(1-a)+t[s]*a;return r}}function IYn(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function AYn(e,t){var n=t?t.length:0,r=e?Math.min(n,e.length):0,s=new Array(r),a=new Array(n),i;for(i=0;i<r;++i)s[i]=yx(e[i],t[i]);for(;i<n;++i)a[i]=t[i];return function(l){for(i=0;i<r;++i)a[i]=s[i](l);return a}}function RYn(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function pg(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function PYn(e,t){var n={},r={},s;(e===null||typeof e!="object")&&(e={}),(t===null||typeof t!="object")&&(t={});for(s in t)s in e?n[s]=yx(e[s],t[s]):r[s]=t[s];return function(a){for(s in n)r[s]=n[s](a);return r}}var fve=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,nne=new RegExp(fve.source,"g");function $Yn(e){return function(){return e}}function MYn(e){return function(t){return e(t)+""}}function OOt(e,t){var n=fve.lastIndex=nne.lastIndex=0,r,s,a,i=-1,l=[],c=[];for(e=e+"",t=t+"";(r=fve.exec(e))&&(s=nne.exec(t));)(a=s.index)>n&&(a=t.slice(n,a),l[i]?l[i]+=a:l[++i]=a),(r=r[0])===(s=s[0])?l[i]?l[i]+=s:l[++i]=s:(l[++i]=null,c.push({i,x:pg(r,s)})),n=nne.lastIndex;return n<t.length&&(a=t.slice(n),l[i]?l[i]+=a:l[++i]=a),l.length<2?c[0]?MYn(c[0].x):$Yn(t):(t=c.length,function(u){for(var d=0,f;d<t;++d)l[(f=c[d]).i]=f.x(u);return l.join("")})}function yx(e,t){var n=typeof t,r;return t==null||n==="boolean"?mOe(t):(n==="number"?pg:n==="string"?(r=KO(t))?(t=r,JB):OOt:t instanceof KO?JB:t instanceof Date?RYn:IYn(t)?NYn:Array.isArray(t)?AYn:typeof t.valueOf!="function"&&typeof t.toString!="function"||isNaN(t)?PYn:pg)(e,t)}function gOe(e,t){return e=+e,t=+t,function(n){return Math.round(e*(1-n)+t*n)}}var N7e=180/Math.PI,pve={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function _Ot(e,t,n,r,s,a){var i,l,c;return(i=Math.sqrt(e*e+t*t))&&(e/=i,t/=i),(c=e*n+t*r)&&(n-=e*c,r-=t*c),(l=Math.sqrt(n*n+r*r))&&(n/=l,r/=l,c/=l),e*r<t*n&&(e=-e,t=-t,c=-c,i=-i),{translateX:s,translateY:a,rotate:Math.atan2(t,e)*N7e,skewX:Math.atan(c)*N7e,scaleX:i,scaleY:l}}var bF;function DYn(e){const t=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?pve:_Ot(t.a,t.b,t.c,t.d,t.e,t.f)}function LYn(e){return e==null||(bF||(bF=document.createElementNS("http://www.w3.org/2000/svg","g")),bF.setAttribute("transform",e),!(e=bF.transform.baseVal.consolidate()))?pve:(e=e.matrix,_Ot(e.a,e.b,e.c,e.d,e.e,e.f))}function COt(e,t,n,r){function s(u){return u.length?u.pop()+" ":""}function a(u,d,f,p,h,m){if(u!==f||d!==p){var v=h.push("translate(",null,t,null,n);m.push({i:v-4,x:pg(u,f)},{i:v-2,x:pg(d,p)})}else(f||p)&&h.push("translate("+f+t+p+n)}function i(u,d,f,p){u!==d?(u-d>180?d+=360:d-u>180&&(u+=360),p.push({i:f.push(s(f)+"rotate(",null,r)-2,x:pg(u,d)})):d&&f.push(s(f)+"rotate("+d+r)}function l(u,d,f,p){u!==d?p.push({i:f.push(s(f)+"skewX(",null,r)-2,x:pg(u,d)}):d&&f.push(s(f)+"skewX("+d+r)}function c(u,d,f,p,h,m){if(u!==f||d!==p){var v=h.push(s(h)+"scale(",null,",",null,")");m.push({i:v-4,x:pg(u,f)},{i:v-2,x:pg(d,p)})}else(f!==1||p!==1)&&h.push(s(h)+"scale("+f+","+p+")")}return function(u,d){var f=[],p=[];return u=e(u),d=e(d),a(u.translateX,u.translateY,d.translateX,d.translateY,f,p),i(u.rotate,d.rotate,f,p),l(u.skewX,d.skewX,f,p),c(u.scaleX,u.scaleY,d.scaleX,d.scaleY,f,p),u=d=null,function(h){for(var m=-1,v=p.length,y;++m<v;)f[(y=p[m]).i]=y.x(h);return f.join("")}}}var FYn=COt(DYn,"px, ","px)","deg)"),zYn=COt(LYn,", ",")",")"),BYn=1e-12;function I7e(e){return((e=Math.exp(e))+1/e)/2}function UYn(e){return((e=Math.exp(e))-1/e)/2}function qYn(e){return((e=Math.exp(2*e))-1)/(e+1)}const Z8=(function e(t,n,r){function s(a,i){var l=a[0],c=a[1],u=a[2],d=i[0],f=i[1],p=i[2],h=d-l,m=f-c,v=h*h+m*m,y,b;if(v<BYn)b=Math.log(p/u)/t,y=function(T){return[l+T*h,c+T*m,u*Math.exp(t*T*b)]};else{var x=Math.sqrt(v),S=(p*p-u*u+r*v)/(2*u*n*x),k=(p*p-u*u-r*v)/(2*p*n*x),_=Math.log(Math.sqrt(S*S+1)-S),C=Math.log(Math.sqrt(k*k+1)-k);b=(C-_)/t,y=function(T){var E=T*b,N=I7e(_),I=u/(n*x)*(N*qYn(t*E+_)-UYn(_));return[l+I*h,c+I*m,u*N/I7e(t*E+_)]}}return y.duration=b*1e3*t/Math.SQRT2,y}return s.rho=function(a){var i=Math.max(.001,+a),l=i*i,c=l*l;return e(i,l,c)},s})(Math.SQRT2,2,4);function VYn(e,t){t===void 0&&(t=e,e=yx);for(var n=0,r=t.length-1,s=t[0],a=new Array(r<0?0:r);n<r;)a[n]=e(s,s=t[++n]);return function(i){var l=Math.max(0,Math.min(r-1,Math.floor(i*=r)));return a[l](i-l)}}var tN=0,QP=0,RR=0,EOt=1e3,eU,YP,tU=0,XO=0,pW=0,PM=typeof performance=="object"&&performance.now?performance:Date,TOt=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function vOe(){return XO||(TOt(HYn),XO=PM.now()+pW)}function HYn(){XO=0}function nU(){this._call=this._time=this._next=null}nU.prototype=jOt.prototype={constructor:nU,restart:function(e,t,n){if(typeof e!="function")throw new TypeError("callback is not a function");n=(n==null?vOe():+n)+(t==null?0:+t),!this._next&&YP!==this&&(YP?YP._next=this:eU=this,YP=this),this._call=e,this._time=n,hve()},stop:function(){this._call&&(this._call=null,this._time=1/0,hve())}};function jOt(e,t,n){var r=new nU;return r.restart(e,t,n),r}function WYn(){vOe(),++tN;for(var e=eU,t;e;)(t=XO-e._time)>=0&&e._call.call(void 0,t),e=e._next;--tN}function A7e(){XO=(tU=PM.now())+pW,tN=QP=0;try{WYn()}finally{tN=0,GYn(),XO=0}}function ZYn(){var e=PM.now(),t=e-tU;t>EOt&&(pW-=t,tU=e)}function GYn(){for(var e,t=eU,n,r=1/0;t;)t._call?(r>t._time&&(r=t._time),e=t,t=t._next):(n=t._next,t._next=null,t=e?e._next=n:eU=n);YP=e,hve(r)}function hve(e){if(!tN){QP&&(QP=clearTimeout(QP));var t=e-XO;t>24?(e<1/0&&(QP=setTimeout(A7e,e-PM.now()-pW)),RR&&(RR=clearInterval(RR))):(RR||(tU=PM.now(),RR=setInterval(ZYn,EOt)),tN=1,TOt(A7e))}}function R7e(e,t,n){var r=new nU;return t=t==null?0:+t,r.restart(s=>{r.stop(),e(s+t)},t,n),r}var QYn=dW("start","end","cancel","interrupt"),YYn=[],NOt=0,P7e=1,mve=2,G8=3,$7e=4,gve=5,Q8=6;function hW(e,t,n,r,s,a){var i=e.__transition;if(!i)e.__transition={};else if(n in i)return;KYn(e,n,{name:t,index:r,group:s,on:QYn,tween:YYn,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:NOt})}function yOe(e,t){var n=Kg(e,t);if(n.state>NOt)throw new Error("too late; already scheduled");return n}function zy(e,t){var n=Kg(e,t);if(n.state>G8)throw new Error("too late; already running");return n}function Kg(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function KYn(e,t,n){var r=e.__transition,s;r[t]=n,n.timer=jOt(a,0,n.time);function a(u){n.state=P7e,n.timer.restart(i,n.delay,n.time),n.delay<=u&&i(u-n.delay)}function i(u){var d,f,p,h;if(n.state!==P7e)return c();for(d in r)if(h=r[d],h.name===n.name){if(h.state===G8)return R7e(i);h.state===$7e?(h.state=Q8,h.timer.stop(),h.on.call("interrupt",e,e.__data__,h.index,h.group),delete r[d]):+d<t&&(h.state=Q8,h.timer.stop(),h.on.call("cancel",e,e.__data__,h.index,h.group),delete r[d])}if(R7e(function(){n.state===G8&&(n.state=$7e,n.timer.restart(l,n.delay,n.time),l(u))}),n.state=mve,n.on.call("start",e,e.__data__,n.index,n.group),n.state===mve){for(n.state=G8,s=new Array(p=n.tween.length),d=0,f=-1;d<p;++d)(h=n.tween[d].value.call(e,e.__data__,n.index,n.group))&&(s[++f]=h);s.length=f+1}}function l(u){for(var d=u<n.duration?n.ease.call(null,u/n.duration):(n.timer.restart(c),n.state=gve,1),f=-1,p=s.length;++f<p;)s[f].call(e,d);n.state===gve&&(n.on.call("end",e,e.__data__,n.index,n.group),c())}function c(){n.state=Q8,n.timer.stop(),delete r[t];for(var u in r)return;delete e.__transition}}function Y8(e,t){var n=e.__transition,r,s,a=!0,i;if(n){t=t==null?null:t+"";for(i in n){if((r=n[i]).name!==t){a=!1;continue}s=r.state>mve&&r.state<gve,r.state=Q8,r.timer.stop(),r.on.call(s?"interrupt":"cancel",e,e.__data__,r.index,r.group),delete n[i]}a&&delete e.__transition}}function XYn(e){return this.each(function(){Y8(this,e)})}function JYn(e,t){var n,r;return function(){var s=zy(this,e),a=s.tween;if(a!==n){r=n=a;for(var i=0,l=r.length;i<l;++i)if(r[i].name===t){r=r.slice(),r.splice(i,1);break}}s.tween=r}}function eKn(e,t,n){var r,s;if(typeof n!="function")throw new Error;return function(){var a=zy(this,e),i=a.tween;if(i!==r){s=(r=i).slice();for(var l={name:t,value:n},c=0,u=s.length;c<u;++c)if(s[c].name===t){s[c]=l;break}c===u&&s.push(l)}a.tween=s}}function tKn(e,t){var n=this._id;if(e+="",arguments.length<2){for(var r=Kg(this.node(),n).tween,s=0,a=r.length,i;s<a;++s)if((i=r[s]).name===e)return i.value;return null}return this.each((t==null?JYn:eKn)(n,e,t))}function bOe(e,t,n){var r=e._id;return e.each(function(){var s=zy(this,r);(s.value||(s.value={}))[t]=n.apply(this,arguments)}),function(s){return Kg(s,r).value[t]}}function IOt(e,t){var n;return(typeof t=="number"?pg:t instanceof KO?JB:(n=KO(t))?(t=n,JB):OOt)(e,t)}function nKn(e){return function(){this.removeAttribute(e)}}function rKn(e){return function(){this.removeAttributeNS(e.space,e.local)}}function sKn(e,t,n){var r,s=n+"",a;return function(){var i=this.getAttribute(e);return i===s?null:i===r?a:a=t(r=i,n)}}function aKn(e,t,n){var r,s=n+"",a;return function(){var i=this.getAttributeNS(e.space,e.local);return i===s?null:i===r?a:a=t(r=i,n)}}function iKn(e,t,n){var r,s,a;return function(){var i,l=n(this),c;return l==null?void this.removeAttribute(e):(i=this.getAttribute(e),c=l+"",i===c?null:i===r&&c===s?a:(s=c,a=t(r=i,l)))}}function oKn(e,t,n){var r,s,a;return function(){var i,l=n(this),c;return l==null?void this.removeAttributeNS(e.space,e.local):(i=this.getAttributeNS(e.space,e.local),c=l+"",i===c?null:i===r&&c===s?a:(s=c,a=t(r=i,l)))}}function lKn(e,t){var n=fW(e),r=n==="transform"?zYn:IOt;return this.attrTween(e,typeof t=="function"?(n.local?oKn:iKn)(n,r,bOe(this,"attr."+e,t)):t==null?(n.local?rKn:nKn)(n):(n.local?aKn:sKn)(n,r,t))}function cKn(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function uKn(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function dKn(e,t){var n,r;function s(){var a=t.apply(this,arguments);return a!==r&&(n=(r=a)&&uKn(e,a)),n}return s._value=t,s}function fKn(e,t){var n,r;function s(){var a=t.apply(this,arguments);return a!==r&&(n=(r=a)&&cKn(e,a)),n}return s._value=t,s}function pKn(e,t){var n="attr."+e;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(t==null)return this.tween(n,null);if(typeof t!="function")throw new Error;var r=fW(e);return this.tween(n,(r.local?dKn:fKn)(r,t))}function hKn(e,t){return function(){yOe(this,e).delay=+t.apply(this,arguments)}}function mKn(e,t){return t=+t,function(){yOe(this,e).delay=t}}function gKn(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?hKn:mKn)(t,e)):Kg(this.node(),t).delay}function vKn(e,t){return function(){zy(this,e).duration=+t.apply(this,arguments)}}function yKn(e,t){return t=+t,function(){zy(this,e).duration=t}}function bKn(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?vKn:yKn)(t,e)):Kg(this.node(),t).duration}function xKn(e,t){if(typeof t!="function")throw new Error;return function(){zy(this,e).ease=t}}function wKn(e){var t=this._id;return arguments.length?this.each(xKn(t,e)):Kg(this.node(),t).ease}function SKn(e,t){return function(){var n=t.apply(this,arguments);if(typeof n!="function")throw new Error;zy(this,e).ease=n}}function kKn(e){if(typeof e!="function")throw new Error;return this.each(SKn(this._id,e))}function OKn(e){typeof e!="function"&&(e=lOt(e));for(var t=this._groups,n=t.length,r=new Array(n),s=0;s<n;++s)for(var a=t[s],i=a.length,l=r[s]=[],c,u=0;u<i;++u)(c=a[u])&&e.call(c,c.__data__,u,a)&&l.push(c);return new Lx(r,this._parents,this._name,this._id)}function _Kn(e){if(e._id!==this._id)throw new Error;for(var t=this._groups,n=e._groups,r=t.length,s=n.length,a=Math.min(r,s),i=new Array(r),l=0;l<a;++l)for(var c=t[l],u=n[l],d=c.length,f=i[l]=new Array(d),p,h=0;h<d;++h)(p=c[h]||u[h])&&(f[h]=p);for(;l<r;++l)i[l]=t[l];return new Lx(i,this._parents,this._name,this._id)}function CKn(e){return(e+"").trim().split(/^|\s+/).every(function(t){var n=t.indexOf(".");return n>=0&&(t=t.slice(0,n)),!t||t==="start"})}function EKn(e,t,n){var r,s,a=CKn(t)?yOe:zy;return function(){var i=a(this,e),l=i.on;l!==r&&(s=(r=l).copy()).on(t,n),i.on=s}}function TKn(e,t){var n=this._id;return arguments.length<2?Kg(this.node(),n).on.on(e):this.each(EKn(n,e,t))}function jKn(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function NKn(){return this.on("end.remove",jKn(this._id))}function IKn(e){var t=this._name,n=this._id;typeof e!="function"&&(e=fOe(e));for(var r=this._groups,s=r.length,a=new Array(s),i=0;i<s;++i)for(var l=r[i],c=l.length,u=a[i]=new Array(c),d,f,p=0;p<c;++p)(d=l[p])&&(f=e.call(d,d.__data__,p,l))&&("__data__"in d&&(f.__data__=d.__data__),u[p]=f,hW(u[p],t,n,p,u,Kg(d,n)));return new Lx(a,this._parents,t,n)}function AKn(e){var t=this._name,n=this._id;typeof e!="function"&&(e=oOt(e));for(var r=this._groups,s=r.length,a=[],i=[],l=0;l<s;++l)for(var c=r[l],u=c.length,d,f=0;f<u;++f)if(d=c[f]){for(var p=e.call(d,d.__data__,f,c),h,m=Kg(d,n),v=0,y=p.length;v<y;++v)(h=p[v])&&hW(h,t,n,v,p,m);a.push(p),i.push(d)}return new Lx(a,i,t,n)}var RKn=Y3.prototype.constructor;function PKn(){return new RKn(this._groups,this._parents)}function $Kn(e,t){var n,r,s;return function(){var a=eN(this,e),i=(this.style.removeProperty(e),eN(this,e));return a===i?null:a===n&&i===r?s:s=t(n=a,r=i)}}function AOt(e){return function(){this.style.removeProperty(e)}}function MKn(e,t,n){var r,s=n+"",a;return function(){var i=eN(this,e);return i===s?null:i===r?a:a=t(r=i,n)}}function DKn(e,t,n){var r,s,a;return function(){var i=eN(this,e),l=n(this),c=l+"";return l==null&&(c=l=(this.style.removeProperty(e),eN(this,e))),i===c?null:i===r&&c===s?a:(s=c,a=t(r=i,l))}}function LKn(e,t){var n,r,s,a="style."+t,i="end."+a,l;return function(){var c=zy(this,e),u=c.on,d=c.value[a]==null?l||(l=AOt(t)):void 0;(u!==n||s!==d)&&(r=(n=u).copy()).on(i,s=d),c.on=r}}function FKn(e,t,n){var r=(e+="")=="transform"?FYn:IOt;return t==null?this.styleTween(e,$Kn(e,r)).on("end.style."+e,AOt(e)):typeof t=="function"?this.styleTween(e,DKn(e,r,bOe(this,"style."+e,t))).each(LKn(this._id,e)):this.styleTween(e,MKn(e,r,t),n).on("end.style."+e,null)}function zKn(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}function BKn(e,t,n){var r,s;function a(){var i=t.apply(this,arguments);return i!==s&&(r=(s=i)&&zKn(e,i,n)),r}return a._value=t,a}function UKn(e,t,n){var r="style."+(e+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(t==null)return this.tween(r,null);if(typeof t!="function")throw new Error;return this.tween(r,BKn(e,t,n??""))}function qKn(e){return function(){this.textContent=e}}function VKn(e){return function(){var t=e(this);this.textContent=t??""}}function HKn(e){return this.tween("text",typeof e=="function"?VKn(bOe(this,"text",e)):qKn(e==null?"":e+""))}function WKn(e){return function(t){this.textContent=e.call(this,t)}}function ZKn(e){var t,n;function r(){var s=e.apply(this,arguments);return s!==n&&(t=(n=s)&&WKn(s)),t}return r._value=e,r}function GKn(e){var t="text";if(arguments.length<1)return(t=this.tween(t))&&t._value;if(e==null)return this.tween(t,null);if(typeof e!="function")throw new Error;return this.tween(t,ZKn(e))}function QKn(){for(var e=this._name,t=this._id,n=ROt(),r=this._groups,s=r.length,a=0;a<s;++a)for(var i=r[a],l=i.length,c,u=0;u<l;++u)if(c=i[u]){var d=Kg(c,t);hW(c,e,n,u,i,{time:d.time+d.delay+d.duration,delay:0,duration:d.duration,ease:d.ease})}return new Lx(r,this._parents,e,n)}function YKn(){var e,t,n=this,r=n._id,s=n.size();return new Promise(function(a,i){var l={value:i},c={value:function(){--s===0&&a()}};n.each(function(){var u=zy(this,r),d=u.on;d!==e&&(t=(e=d).copy(),t._.cancel.push(l),t._.interrupt.push(l),t._.end.push(c)),u.on=t}),s===0&&a()})}var KKn=0;function Lx(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}function ROt(){return++KKn}var kb=Y3.prototype;Lx.prototype={constructor:Lx,select:IKn,selectAll:AKn,selectChild:kb.selectChild,selectChildren:kb.selectChildren,filter:OKn,merge:_Kn,selection:PKn,transition:QKn,call:kb.call,nodes:kb.nodes,node:kb.node,size:kb.size,empty:kb.empty,each:kb.each,on:TKn,attr:lKn,attrTween:pKn,style:FKn,styleTween:UKn,text:HKn,textTween:GKn,remove:NKn,tween:tKn,delay:gKn,duration:bKn,ease:wKn,easeVarying:kKn,end:YKn,[Symbol.iterator]:kb[Symbol.iterator]};function XKn(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var JKn={time:null,delay:0,duration:250,ease:XKn};function eXn(e,t){for(var n;!(n=e.__transition)||!(n=n[t]);)if(!(e=e.parentNode))throw new Error(`transition ${t} not found`);return n}function tXn(e){var t,n;e instanceof Lx?(t=e._id,e=e._name):(t=ROt(),(n=JKn).time=vOe(),e=e==null?null:e+"");for(var r=this._groups,s=r.length,a=0;a<s;++a)for(var i=r[a],l=i.length,c,u=0;u<l;++u)(c=i[u])&&hW(c,e,t,u,i,n||eXn(c,t));return new Lx(r,this._parents,e,t)}Y3.prototype.interrupt=XYn;Y3.prototype.transition=tXn;const xF=e=>()=>e;function nXn(e,{sourceEvent:t,target:n,transform:r,dispatch:s}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:s}})}function ax(e,t,n){this.k=e,this.x=t,this.y=n}ax.prototype={constructor:ax,scale:function(e){return e===1?this:new ax(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new ax(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var mW=new ax(1,0,0);POt.prototype=ax.prototype;function POt(e){for(;!e.__zoom;)if(!(e=e.parentNode))return mW;return e.__zoom}function rne(e){e.stopImmediatePropagation()}function PR(e){e.preventDefault(),e.stopImmediatePropagation()}function rXn(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function sXn(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e,e.hasAttribute("viewBox")?(e=e.viewBox.baseVal,[[e.x,e.y],[e.x+e.width,e.y+e.height]]):[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]):[[0,0],[e.clientWidth,e.clientHeight]]}function M7e(){return this.__zoom||mW}function aXn(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function iXn(){return navigator.maxTouchPoints||"ontouchstart"in this}function oXn(e,t,n){var r=e.invertX(t[0][0])-n[0][0],s=e.invertX(t[1][0])-n[1][0],a=e.invertY(t[0][1])-n[0][1],i=e.invertY(t[1][1])-n[1][1];return e.translate(s>r?(r+s)/2:Math.min(0,r)||Math.max(0,s),i>a?(a+i)/2:Math.min(0,a)||Math.max(0,i))}function $Ot(){var e=rXn,t=sXn,n=oXn,r=aXn,s=iXn,a=[0,1/0],i=[[-1/0,-1/0],[1/0,1/0]],l=250,c=Z8,u=dW("start","zoom","end"),d,f,p,h=500,m=150,v=0,y=10;function b(D){D.property("__zoom",M7e).on("wheel.zoom",E,{passive:!1}).on("mousedown.zoom",N).on("dblclick.zoom",I).filter(s).on("touchstart.zoom",A).on("touchmove.zoom",R).on("touchend.zoom touchcancel.zoom",L).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}b.transform=function(D,F,H,B){var z=D.selection?D.selection():D;z.property("__zoom",M7e),D!==z?_(D,F,H,B):z.interrupt().each(function(){C(this,arguments).event(B).start().zoom(null,typeof F=="function"?F.apply(this,arguments):F).end()})},b.scaleBy=function(D,F,H,B){b.scaleTo(D,function(){var z=this.__zoom.k,V=typeof F=="function"?F.apply(this,arguments):F;return z*V},H,B)},b.scaleTo=function(D,F,H,B){b.transform(D,function(){var z=t.apply(this,arguments),V=this.__zoom,M=H==null?k(z):typeof H=="function"?H.apply(this,arguments):H,G=V.invert(M),U=typeof F=="function"?F.apply(this,arguments):F;return n(S(x(V,U),M,G),z,i)},H,B)},b.translateBy=function(D,F,H,B){b.transform(D,function(){return n(this.__zoom.translate(typeof F=="function"?F.apply(this,arguments):F,typeof H=="function"?H.apply(this,arguments):H),t.apply(this,arguments),i)},null,B)},b.translateTo=function(D,F,H,B,z){b.transform(D,function(){var V=t.apply(this,arguments),M=this.__zoom,G=B==null?k(V):typeof B=="function"?B.apply(this,arguments):B;return n(mW.translate(G[0],G[1]).scale(M.k).translate(typeof F=="function"?-F.apply(this,arguments):-F,typeof H=="function"?-H.apply(this,arguments):-H),V,i)},B,z)};function x(D,F){return F=Math.max(a[0],Math.min(a[1],F)),F===D.k?D:new ax(F,D.x,D.y)}function S(D,F,H){var B=F[0]-H[0]*D.k,z=F[1]-H[1]*D.k;return B===D.x&&z===D.y?D:new ax(D.k,B,z)}function k(D){return[(+D[0][0]+ +D[1][0])/2,(+D[0][1]+ +D[1][1])/2]}function _(D,F,H,B){D.on("start.zoom",function(){C(this,arguments).event(B).start()}).on("interrupt.zoom end.zoom",function(){C(this,arguments).event(B).end()}).tween("zoom",function(){var z=this,V=arguments,M=C(z,V).event(B),G=t.apply(z,V),U=H==null?k(G):typeof H=="function"?H.apply(z,V):H,$=Math.max(G[1][0]-G[0][0],G[1][1]-G[0][1]),q=z.__zoom,Z=typeof F=="function"?F.apply(z,V):F,Y=c(q.invert(U).concat($/q.k),Z.invert(U).concat($/Z.k));return function(ne){if(ne===1)ne=Z;else{var J=Y(ne),ee=$/J[2];ne=new ax(ee,U[0]-J[0]*ee,U[1]-J[1]*ee)}M.zoom(null,ne)}})}function C(D,F,H){return!H&&D.__zooming||new T(D,F)}function T(D,F){this.that=D,this.args=F,this.active=0,this.sourceEvent=null,this.extent=t.apply(D,F),this.taps=0}T.prototype={event:function(D){return D&&(this.sourceEvent=D),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(D,F){return this.mouse&&D!=="mouse"&&(this.mouse[1]=F.invert(this.mouse[0])),this.touch0&&D!=="touch"&&(this.touch0[1]=F.invert(this.touch0[0])),this.touch1&&D!=="touch"&&(this.touch1[1]=F.invert(this.touch1[0])),this.that.__zoom=F,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(D){var F=_p(this.that).datum();u.call(D,this.that,new nXn(D,{sourceEvent:this.sourceEvent,target:b,transform:this.that.__zoom,dispatch:u}),F)}};function E(D,...F){if(!e.apply(this,arguments))return;var H=C(this,F).event(D),B=this.__zoom,z=Math.max(a[0],Math.min(a[1],B.k*Math.pow(2,r.apply(this,arguments)))),V=dg(D);if(H.wheel)(H.mouse[0][0]!==V[0]||H.mouse[0][1]!==V[1])&&(H.mouse[1]=B.invert(H.mouse[0]=V)),clearTimeout(H.wheel);else{if(B.k===z)return;H.mouse=[V,B.invert(V)],Y8(this),H.start()}PR(D),H.wheel=setTimeout(M,m),H.zoom("mouse",n(S(x(B,z),H.mouse[0],H.mouse[1]),H.extent,i));function M(){H.wheel=null,H.end()}}function N(D,...F){if(p||!e.apply(this,arguments))return;var H=D.currentTarget,B=C(this,F,!0).event(D),z=_p(D.view).on("mousemove.zoom",U,!0).on("mouseup.zoom",$,!0),V=dg(D,H),M=D.clientX,G=D.clientY;yOt(D.view),rne(D),B.mouse=[V,this.__zoom.invert(V)],Y8(this),B.start();function U(q){if(PR(q),!B.moved){var Z=q.clientX-M,Y=q.clientY-G;B.moved=Z*Z+Y*Y>v}B.event(q).zoom("mouse",n(S(B.that.__zoom,B.mouse[0]=dg(q,H),B.mouse[1]),B.extent,i))}function $(q){z.on("mousemove.zoom mouseup.zoom",null),bOt(q.view,B.moved),PR(q),B.event(q).end()}}function I(D,...F){if(e.apply(this,arguments)){var H=this.__zoom,B=dg(D.changedTouches?D.changedTouches[0]:D,this),z=H.invert(B),V=H.k*(D.shiftKey?.5:2),M=n(S(x(H,V),B,z),t.apply(this,F),i);PR(D),l>0?_p(this).transition().duration(l).call(_,M,B,D):_p(this).call(b.transform,M,B,D)}}function A(D,...F){if(e.apply(this,arguments)){var H=D.touches,B=H.length,z=C(this,F,D.changedTouches.length===B).event(D),V,M,G,U;for(rne(D),M=0;M<B;++M)G=H[M],U=dg(G,this),U=[U,this.__zoom.invert(U),G.identifier],z.touch0?!z.touch1&&z.touch0[2]!==U[2]&&(z.touch1=U,z.taps=0):(z.touch0=U,V=!0,z.taps=1+!!d);d&&(d=clearTimeout(d)),V&&(z.taps<2&&(f=U[0],d=setTimeout(function(){d=null},h)),Y8(this),z.start())}}function R(D,...F){if(this.__zooming){var H=C(this,F).event(D),B=D.changedTouches,z=B.length,V,M,G,U;for(PR(D),V=0;V<z;++V)M=B[V],G=dg(M,this),H.touch0&&H.touch0[2]===M.identifier?H.touch0[0]=G:H.touch1&&H.touch1[2]===M.identifier&&(H.touch1[0]=G);if(M=H.that.__zoom,H.touch1){var $=H.touch0[0],q=H.touch0[1],Z=H.touch1[0],Y=H.touch1[1],ne=(ne=Z[0]-$[0])*ne+(ne=Z[1]-$[1])*ne,J=(J=Y[0]-q[0])*J+(J=Y[1]-q[1])*J;M=x(M,Math.sqrt(ne/J)),G=[($[0]+Z[0])/2,($[1]+Z[1])/2],U=[(q[0]+Y[0])/2,(q[1]+Y[1])/2]}else if(H.touch0)G=H.touch0[0],U=H.touch0[1];else return;H.zoom("touch",n(S(M,G,U),H.extent,i))}}function L(D,...F){if(this.__zooming){var H=C(this,F).event(D),B=D.changedTouches,z=B.length,V,M;for(rne(D),p&&clearTimeout(p),p=setTimeout(function(){p=null},h),V=0;V<z;++V)M=B[V],H.touch0&&H.touch0[2]===M.identifier?delete H.touch0:H.touch1&&H.touch1[2]===M.identifier&&delete H.touch1;if(H.touch1&&!H.touch0&&(H.touch0=H.touch1,delete H.touch1),H.touch0)H.touch0[1]=this.__zoom.invert(H.touch0[0]);else if(H.end(),H.taps===2&&(M=dg(M,this),Math.hypot(f[0]-M[0],f[1]-M[1])<y)){var G=_p(this).on("dblclick.zoom");G&&G.apply(this,arguments)}}}return b.wheelDelta=function(D){return arguments.length?(r=typeof D=="function"?D:xF(+D),b):r},b.filter=function(D){return arguments.length?(e=typeof D=="function"?D:xF(!!D),b):e},b.touchable=function(D){return arguments.length?(s=typeof D=="function"?D:xF(!!D),b):s},b.extent=function(D){return arguments.length?(t=typeof D=="function"?D:xF([[+D[0][0],+D[0][1]],[+D[1][0],+D[1][1]]]),b):t},b.scaleExtent=function(D){return arguments.length?(a[0]=+D[0],a[1]=+D[1],b):[a[0],a[1]]},b.translateExtent=function(D){return arguments.length?(i[0][0]=+D[0][0],i[1][0]=+D[1][0],i[0][1]=+D[0][1],i[1][1]=+D[1][1],b):[[i[0][0],i[0][1]],[i[1][0],i[1][1]]]},b.constrain=function(D){return arguments.length?(n=D,b):n},b.duration=function(D){return arguments.length?(l=+D,b):l},b.interpolate=function(D){return arguments.length?(c=D,b):c},b.on=function(){var D=u.on.apply(u,arguments);return D===u?b:D},b.clickDistance=function(D){return arguments.length?(v=(D=+D)*D,b):Math.sqrt(v)},b.tapDistance=function(D){return arguments.length?(y=+D,b):y},b}const Sy={error001:()=>"[React Flow]: Seems like you have not used zustand provider as an ancestor. Help: https://reactflow.dev/error#001",error002:()=>"It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.",error003:e=>`Node type "${e}" not found. Using fallback type "default".`,error004:()=>"The React Flow parent container needs a width and a height to render the graph.",error005:()=>"Only child nodes can use a parent extent.",error006:()=>"Can't create edge. An edge needs a source and a target.",error007:e=>`The old edge with id=${e} does not exist.`,error009:e=>`Marker type "${e}" doesn't exist.`,error008:(e,{id:t,sourceHandle:n,targetHandle:r})=>`Couldn't create edge for ${e} handle id: "${e==="source"?n:r}", edge id: ${t}.`,error010:()=>"Handle: No node id found. Make sure to only use a Handle inside a custom Node.",error011:e=>`Edge type "${e}" not found. Using fallback type "default".`,error012:e=>`Node with id "${e}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`,error013:(e="react")=>`It seems that you haven't loaded the styles. Please import '@xyflow/${e}/dist/style.css' or base.css to make sure everything is working properly.`,error014:()=>"useNodeConnections: No node ID found. Call useNodeConnections inside a custom Node or provide a node ID.",error015:()=>"It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs."},$M=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],MOt=["Enter"," ","Escape"],DOt={"node.a11yDescription.default":"Press enter or space to select a node. Press delete to remove it and escape to cancel.","node.a11yDescription.keyboardDisabled":"Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.","node.a11yDescription.ariaLiveMessage":({direction:e,x:t,y:n})=>`Moved selected node ${e}. New position, x: ${t}, y: ${n}`,"edge.a11yDescription.default":"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.","controls.ariaLabel":"Control Panel","controls.zoomIn.ariaLabel":"Zoom In","controls.zoomOut.ariaLabel":"Zoom Out","controls.fitView.ariaLabel":"Fit View","controls.interactive.ariaLabel":"Toggle Interactivity","minimap.ariaLabel":"Mini Map","handle.ariaLabel":"Handle"};var nN;(function(e){e.Strict="strict",e.Loose="loose"})(nN||(nN={}));var iO;(function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"})(iO||(iO={}));var MM;(function(e){e.Partial="partial",e.Full="full"})(MM||(MM={}));const LOt={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null};var Cw;(function(e){e.Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier"})(Cw||(Cw={}));var DM;(function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"})(DM||(DM={}));var nr;(function(e){e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom"})(nr||(nr={}));const D7e={[nr.Left]:nr.Right,[nr.Right]:nr.Left,[nr.Top]:nr.Bottom,[nr.Bottom]:nr.Top};function FOt(e){return e===null?null:e?"valid":"invalid"}const zOt=e=>"id"in e&&"source"in e&&"target"in e,lXn=e=>"id"in e&&"position"in e&&!("source"in e)&&!("target"in e),xOe=e=>"id"in e&&"internals"in e&&!("source"in e)&&!("target"in e),X3=(e,t=[0,0])=>{const{width:n,height:r}=c0(e),s=e.origin??t,a=n*s[0],i=r*s[1];return{x:e.position.x-a,y:e.position.y-i}},cXn=(e,t={nodeOrigin:[0,0]})=>{if(e.length===0)return{x:0,y:0,width:0,height:0};const n=e.reduce((r,s)=>{const a=typeof s=="string";let i=!t.nodeLookup&&!a?s:void 0;t.nodeLookup&&(i=a?t.nodeLookup.get(s):xOe(s)?s:t.nodeLookup.get(s.id));const l=i?rU(i,t.nodeOrigin):{x:0,y:0,x2:0,y2:0};return gW(r,l)},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return vW(n)},J3=(e,t={})=>{let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0},r=!1;return e.forEach(s=>{(t.filter===void 0||t.filter(s))&&(n=gW(n,rU(s)),r=!0)}),r?vW(n):{x:0,y:0,width:0,height:0}},wOe=(e,t,[n,r,s]=[0,0,1],a=!1,i=!1)=>{const l={...t4(t,[n,r,s]),width:t.width/s,height:t.height/s},c=[];for(const u of e.values()){const{measured:d,selectable:f=!0,hidden:p=!1}=u;if(i&&!f||p)continue;const h=d.width??u.width??u.initialWidth??null,m=d.height??u.height??u.initialHeight??null,v=LM(l,sN(u)),y=(h??0)*(m??0),b=a&&v>0;(!u.internals.handleBounds||b||v>=y||u.dragging)&&c.push(u)}return c},uXn=(e,t)=>{const n=new Set;return e.forEach(r=>{n.add(r.id)}),t.filter(r=>n.has(r.source)||n.has(r.target))};function dXn(e,t){const n=new Map,r=t?.nodes?new Set(t.nodes.map(s=>s.id)):null;return e.forEach(s=>{s.measured.width&&s.measured.height&&(t?.includeHiddenNodes||!s.hidden)&&(!r||r.has(s.id))&&n.set(s.id,s)}),n}async function fXn({nodes:e,width:t,height:n,panZoom:r,minZoom:s,maxZoom:a},i){if(e.size===0)return Promise.resolve(!0);const l=dXn(e,i),c=J3(l),u=SOe(c,t,n,i?.minZoom??s,i?.maxZoom??a,i?.padding??.1);return await r.setViewport(u,{duration:i?.duration,ease:i?.ease,interpolate:i?.interpolate}),Promise.resolve(!0)}function BOt({nodeId:e,nextPosition:t,nodeLookup:n,nodeOrigin:r=[0,0],nodeExtent:s,onError:a}){const i=n.get(e),l=i.parentId?n.get(i.parentId):void 0,{x:c,y:u}=l?l.internals.positionAbsolute:{x:0,y:0},d=i.origin??r;let f=i.extent||s;if(i.extent==="parent"&&!i.expandParent)if(!l)a?.("005",Sy.error005());else{const h=l.measured.width,m=l.measured.height;h&&m&&(f=[[c,u],[c+h,u+m]])}else l&&aN(i.extent)&&(f=[[i.extent[0][0]+c,i.extent[0][1]+u],[i.extent[1][0]+c,i.extent[1][1]+u]]);const p=aN(f)?JO(t,f,i.measured):t;return(i.measured.width===void 0||i.measured.height===void 0)&&a?.("015",Sy.error015()),{position:{x:p.x-c+(i.measured.width??0)*d[0],y:p.y-u+(i.measured.height??0)*d[1]},positionAbsolute:p}}async function pXn({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:r,onBeforeDelete:s}){const a=new Set(e.map(p=>p.id)),i=[];for(const p of n){if(p.deletable===!1)continue;const h=a.has(p.id),m=!h&&p.parentId&&i.find(v=>v.id===p.parentId);(h||m)&&i.push(p)}const l=new Set(t.map(p=>p.id)),c=r.filter(p=>p.deletable!==!1),d=uXn(i,c);for(const p of c)l.has(p.id)&&!d.find(m=>m.id===p.id)&&d.push(p);if(!s)return{edges:d,nodes:i};const f=await s({nodes:i,edges:d});return typeof f=="boolean"?f?{edges:d,nodes:i}:{edges:[],nodes:[]}:f}const rN=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),JO=(e={x:0,y:0},t,n)=>({x:rN(e.x,t[0][0],t[1][0]-(n?.width??0)),y:rN(e.y,t[0][1],t[1][1]-(n?.height??0))});function UOt(e,t,n){const{width:r,height:s}=c0(n),{x:a,y:i}=n.internals.positionAbsolute;return JO(e,[[a,i],[a+r,i+s]],t)}const L7e=(e,t,n)=>e<t?rN(Math.abs(e-t),1,t)/t:e>n?-rN(Math.abs(e-n),1,t)/t:0,qOt=(e,t,n=15,r=40)=>{const s=L7e(e.x,r,t.width-r)*n,a=L7e(e.y,r,t.height-r)*n;return[s,a]},gW=(e,t)=>({x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),x2:Math.max(e.x2,t.x2),y2:Math.max(e.y2,t.y2)}),vve=({x:e,y:t,width:n,height:r})=>({x:e,y:t,x2:e+n,y2:t+r}),vW=({x:e,y:t,x2:n,y2:r})=>({x:e,y:t,width:n-e,height:r-t}),sN=(e,t=[0,0])=>{const{x:n,y:r}=xOe(e)?e.internals.positionAbsolute:X3(e,t);return{x:n,y:r,width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}},rU=(e,t=[0,0])=>{const{x:n,y:r}=xOe(e)?e.internals.positionAbsolute:X3(e,t);return{x:n,y:r,x2:n+(e.measured?.width??e.width??e.initialWidth??0),y2:r+(e.measured?.height??e.height??e.initialHeight??0)}},VOt=(e,t)=>vW(gW(vve(e),vve(t))),LM=(e,t)=>{const n=Math.max(0,Math.min(e.x+e.width,t.x+t.width)-Math.max(e.x,t.x)),r=Math.max(0,Math.min(e.y+e.height,t.y+t.height)-Math.max(e.y,t.y));return Math.ceil(n*r)},F7e=e=>kg(e.width)&&kg(e.height)&&kg(e.x)&&kg(e.y),kg=e=>!isNaN(e)&&isFinite(e),hXn=(e,t)=>{},e4=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),t4=({x:e,y:t},[n,r,s],a=!1,i=[1,1])=>{const l={x:(e-n)/s,y:(t-r)/s};return a?e4(l,i):l},sU=({x:e,y:t},[n,r,s])=>({x:e*s+n,y:t*s+r});function mE(e,t){if(typeof e=="number")return Math.floor((t-t/(1+e))*.5);if(typeof e=="string"&&e.endsWith("px")){const n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(n)}if(typeof e=="string"&&e.endsWith("%")){const n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(t*n*.01)}return console.error(`[React Flow] The padding value "${e}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}function mXn(e,t,n){if(typeof e=="string"||typeof e=="number"){const r=mE(e,n),s=mE(e,t);return{top:r,right:s,bottom:r,left:s,x:s*2,y:r*2}}if(typeof e=="object"){const r=mE(e.top??e.y??0,n),s=mE(e.bottom??e.y??0,n),a=mE(e.left??e.x??0,t),i=mE(e.right??e.x??0,t);return{top:r,right:i,bottom:s,left:a,x:a+i,y:r+s}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function gXn(e,t,n,r,s,a){const{x:i,y:l}=sU(e,[t,n,r]),{x:c,y:u}=sU({x:e.x+e.width,y:e.y+e.height},[t,n,r]),d=s-c,f=a-u;return{left:Math.floor(i),top:Math.floor(l),right:Math.floor(d),bottom:Math.floor(f)}}const SOe=(e,t,n,r,s,a)=>{const i=mXn(a,t,n),l=(t-i.x)/e.width,c=(n-i.y)/e.height,u=Math.min(l,c),d=rN(u,r,s),f=e.x+e.width/2,p=e.y+e.height/2,h=t/2-f*d,m=n/2-p*d,v=gXn(e,h,m,d,t,n),y={left:Math.min(v.left-i.left,0),top:Math.min(v.top-i.top,0),right:Math.min(v.right-i.right,0),bottom:Math.min(v.bottom-i.bottom,0)};return{x:h-y.left+y.right,y:m-y.top+y.bottom,zoom:d}},FM=()=>typeof navigator<"u"&&navigator?.userAgent?.indexOf("Mac")>=0;function aN(e){return e!=null&&e!=="parent"}function c0(e){return{width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}}function HOt(e){return(e.measured?.width??e.width??e.initialWidth)!==void 0&&(e.measured?.height??e.height??e.initialHeight)!==void 0}function WOt(e,t={width:0,height:0},n,r,s){const a={...e},i=r.get(n);if(i){const l=i.origin||s;a.x+=i.internals.positionAbsolute.x-(t.width??0)*l[0],a.y+=i.internals.positionAbsolute.y-(t.height??0)*l[1]}return a}function z7e(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function vXn(){let e,t;return{promise:new Promise((r,s)=>{e=r,t=s}),resolve:e,reject:t}}function yXn(e){return{...DOt,...e||{}}}function A2(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:r,containerBounds:s}){const{x:a,y:i}=Og(e),l=t4({x:a-(s?.left??0),y:i-(s?.top??0)},r),{x:c,y:u}=n?e4(l,t):l;return{xSnapped:c,ySnapped:u,...l}}const kOe=e=>({width:e.offsetWidth,height:e.offsetHeight}),ZOt=e=>e?.getRootNode?.()||window?.document,bXn=["INPUT","SELECT","TEXTAREA"];function GOt(e){const t=e.composedPath?.()?.[0]||e.target;return t?.nodeType!==1?!1:bXn.includes(t.nodeName)||t.hasAttribute("contenteditable")||!!t.closest(".nokey")}const QOt=e=>"clientX"in e,Og=(e,t)=>{const n=QOt(e),r=n?e.clientX:e.touches?.[0].clientX,s=n?e.clientY:e.touches?.[0].clientY;return{x:r-(t?.left??0),y:s-(t?.top??0)}},B7e=(e,t,n,r,s)=>{const a=t.querySelectorAll(`.${e}`);return!a||!a.length?null:Array.from(a).map(i=>{const l=i.getBoundingClientRect();return{id:i.getAttribute("data-handleid"),type:e,nodeId:s,position:i.getAttribute("data-handlepos"),x:(l.left-n.left)/r,y:(l.top-n.top)/r,...kOe(i)}})};function YOt({sourceX:e,sourceY:t,targetX:n,targetY:r,sourceControlX:s,sourceControlY:a,targetControlX:i,targetControlY:l}){const c=e*.125+s*.375+i*.375+n*.125,u=t*.125+a*.375+l*.375+r*.125,d=Math.abs(c-e),f=Math.abs(u-t);return[c,u,d,f]}function wF(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function U7e({pos:e,x1:t,y1:n,x2:r,y2:s,c:a}){switch(e){case nr.Left:return[t-wF(t-r,a),n];case nr.Right:return[t+wF(r-t,a),n];case nr.Top:return[t,n-wF(n-s,a)];case nr.Bottom:return[t,n+wF(s-n,a)]}}function OOe({sourceX:e,sourceY:t,sourcePosition:n=nr.Bottom,targetX:r,targetY:s,targetPosition:a=nr.Top,curvature:i=.25}){const[l,c]=U7e({pos:n,x1:e,y1:t,x2:r,y2:s,c:i}),[u,d]=U7e({pos:a,x1:r,y1:s,x2:e,y2:t,c:i}),[f,p,h,m]=YOt({sourceX:e,sourceY:t,targetX:r,targetY:s,sourceControlX:l,sourceControlY:c,targetControlX:u,targetControlY:d});return[`M${e},${t} C${l},${c} ${u},${d} ${r},${s}`,f,p,h,m]}function KOt({sourceX:e,sourceY:t,targetX:n,targetY:r}){const s=Math.abs(n-e)/2,a=n<e?n+s:n-s,i=Math.abs(r-t)/2,l=r<t?r+i:r-i;return[a,l,s,i]}function xXn({sourceNode:e,targetNode:t,selected:n=!1,zIndex:r=0,elevateOnSelect:s=!1,zIndexMode:a="basic"}){if(a==="manual")return r;const i=s&&n?r+1e3:r,l=Math.max(e.parentId||s&&e.selected?e.internals.z:0,t.parentId||s&&t.selected?t.internals.z:0);return i+l}function wXn({sourceNode:e,targetNode:t,width:n,height:r,transform:s}){const a=gW(rU(e),rU(t));a.x===a.x2&&(a.x2+=1),a.y===a.y2&&(a.y2+=1);const i={x:-s[0]/s[2],y:-s[1]/s[2],width:n/s[2],height:r/s[2]};return LM(i,vW(a))>0}const SXn=({source:e,sourceHandle:t,target:n,targetHandle:r})=>`xy-edge__${e}${t||""}-${n}${r||""}`,kXn=(e,t)=>t.some(n=>n.source===e.source&&n.target===e.target&&(n.sourceHandle===e.sourceHandle||!n.sourceHandle&&!e.sourceHandle)&&(n.targetHandle===e.targetHandle||!n.targetHandle&&!e.targetHandle)),OXn=(e,t,n={})=>{if(!e.source||!e.target)return t;const r=n.getEdgeId||SXn;let s;return zOt(e)?s={...e}:s={...e,id:r(e)},kXn(s,t)?t:(s.sourceHandle===null&&delete s.sourceHandle,s.targetHandle===null&&delete s.targetHandle,t.concat(s))};function XOt({sourceX:e,sourceY:t,targetX:n,targetY:r}){const[s,a,i,l]=KOt({sourceX:e,sourceY:t,targetX:n,targetY:r});return[`M ${e},${t}L ${n},${r}`,s,a,i,l]}const q7e={[nr.Left]:{x:-1,y:0},[nr.Right]:{x:1,y:0},[nr.Top]:{x:0,y:-1},[nr.Bottom]:{x:0,y:1}},_Xn=({source:e,sourcePosition:t=nr.Bottom,target:n})=>t===nr.Left||t===nr.Right?e.x<n.x?{x:1,y:0}:{x:-1,y:0}:e.y<n.y?{x:0,y:1}:{x:0,y:-1},V7e=(e,t)=>Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2));function CXn({source:e,sourcePosition:t=nr.Bottom,target:n,targetPosition:r=nr.Top,center:s,offset:a,stepPosition:i}){const l=q7e[t],c=q7e[r],u={x:e.x+l.x*a,y:e.y+l.y*a},d={x:n.x+c.x*a,y:n.y+c.y*a},f=_Xn({source:u,sourcePosition:t,target:d}),p=f.x!==0?"x":"y",h=f[p];let m=[],v,y;const b={x:0,y:0},x={x:0,y:0},[,,S,k]=KOt({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(l[p]*c[p]===-1){p==="x"?(v=s.x??u.x+(d.x-u.x)*i,y=s.y??(u.y+d.y)/2):(v=s.x??(u.x+d.x)/2,y=s.y??u.y+(d.y-u.y)*i);const E=[{x:v,y:u.y},{x:v,y:d.y}],N=[{x:u.x,y},{x:d.x,y}];l[p]===h?m=p==="x"?E:N:m=p==="x"?N:E}else{const E=[{x:u.x,y:d.y}],N=[{x:d.x,y:u.y}];if(p==="x"?m=l.x===h?N:E:m=l.y===h?E:N,t===r){const D=Math.abs(e[p]-n[p]);if(D<=a){const F=Math.min(a-1,a-D);l[p]===h?b[p]=(u[p]>e[p]?-1:1)*F:x[p]=(d[p]>n[p]?-1:1)*F}}if(t!==r){const D=p==="x"?"y":"x",F=l[p]===c[D],H=u[D]>d[D],B=u[D]<d[D];(l[p]===1&&(!F&&H||F&&B)||l[p]!==1&&(!F&&B||F&&H))&&(m=p==="x"?E:N)}const I={x:u.x+b.x,y:u.y+b.y},A={x:d.x+x.x,y:d.y+x.y},R=Math.max(Math.abs(I.x-m[0].x),Math.abs(A.x-m[0].x)),L=Math.max(Math.abs(I.y-m[0].y),Math.abs(A.y-m[0].y));R>=L?(v=(I.x+A.x)/2,y=m[0].y):(v=m[0].x,y=(I.y+A.y)/2)}const _={x:u.x+b.x,y:u.y+b.y},C={x:d.x+x.x,y:d.y+x.y};return[[e,..._.x!==m[0].x||_.y!==m[0].y?[_]:[],...m,...C.x!==m[m.length-1].x||C.y!==m[m.length-1].y?[C]:[],n],v,y,S,k]}function EXn(e,t,n,r){const s=Math.min(V7e(e,t)/2,V7e(t,n)/2,r),{x:a,y:i}=t;if(e.x===a&&a===n.x||e.y===i&&i===n.y)return`L${a} ${i}`;if(e.y===i){const u=e.x<n.x?-1:1,d=e.y<n.y?1:-1;return`L ${a+s*u},${i}Q ${a},${i} ${a},${i+s*d}`}const l=e.x<n.x?1:-1,c=e.y<n.y?-1:1;return`L ${a},${i+s*c}Q ${a},${i} ${a+s*l},${i}`}function yve({sourceX:e,sourceY:t,sourcePosition:n=nr.Bottom,targetX:r,targetY:s,targetPosition:a=nr.Top,borderRadius:i=5,centerX:l,centerY:c,offset:u=20,stepPosition:d=.5}){const[f,p,h,m,v]=CXn({source:{x:e,y:t},sourcePosition:n,target:{x:r,y:s},targetPosition:a,center:{x:l,y:c},offset:u,stepPosition:d});let y=`M${f[0].x} ${f[0].y}`;for(let b=1;b<f.length-1;b++)y+=EXn(f[b-1],f[b],f[b+1],i);return y+=`L${f[f.length-1].x} ${f[f.length-1].y}`,[y,p,h,m,v]}function H7e(e){return e&&!!(e.internals.handleBounds||e.handles?.length)&&!!(e.measured.width||e.width||e.initialWidth)}function TXn(e){const{sourceNode:t,targetNode:n}=e;if(!H7e(t)||!H7e(n))return null;const r=t.internals.handleBounds||W7e(t.handles),s=n.internals.handleBounds||W7e(n.handles),a=Z7e(r?.source??[],e.sourceHandle),i=Z7e(e.connectionMode===nN.Strict?s?.target??[]:(s?.target??[]).concat(s?.source??[]),e.targetHandle);if(!a||!i)return e.onError?.("008",Sy.error008(a?"target":"source",{id:e.id,sourceHandle:e.sourceHandle,targetHandle:e.targetHandle})),null;const l=a?.position||nr.Bottom,c=i?.position||nr.Top,u=e_(t,a,l),d=e_(n,i,c);return{sourceX:u.x,sourceY:u.y,targetX:d.x,targetY:d.y,sourcePosition:l,targetPosition:c}}function W7e(e){if(!e)return null;const t=[],n=[];for(const r of e)r.width=r.width??1,r.height=r.height??1,r.type==="source"?t.push(r):r.type==="target"&&n.push(r);return{source:t,target:n}}function e_(e,t,n=nr.Left,r=!1){const s=(t?.x??0)+e.internals.positionAbsolute.x,a=(t?.y??0)+e.internals.positionAbsolute.y,{width:i,height:l}=t??c0(e);if(r)return{x:s+i/2,y:a+l/2};switch(t?.position??n){case nr.Top:return{x:s+i/2,y:a};case nr.Right:return{x:s+i,y:a+l/2};case nr.Bottom:return{x:s+i/2,y:a+l};case nr.Left:return{x:s,y:a+l/2}}}function Z7e(e,t){return e&&(t?e.find(n=>n.id===t):e[0])||null}function bve(e,t){return e?typeof e=="string"?e:`${t?`${t}__`:""}${Object.keys(e).sort().map(r=>`${r}=${e[r]}`).join("&")}`:""}function jXn(e,{id:t,defaultColor:n,defaultMarkerStart:r,defaultMarkerEnd:s}){const a=new Set;return e.reduce((i,l)=>([l.markerStart||r,l.markerEnd||s].forEach(c=>{if(c&&typeof c=="object"){const u=bve(c,t);a.has(u)||(i.push({id:u,color:c.color||n,...c}),a.add(u))}}),i),[]).sort((i,l)=>i.id.localeCompare(l.id))}const JOt=1e3,NXn=10,_Oe={nodeOrigin:[0,0],nodeExtent:$M,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},IXn={..._Oe,checkEquality:!0};function COe(e,t){const n={...e};for(const r in t)t[r]!==void 0&&(n[r]=t[r]);return n}function AXn(e,t,n){const r=COe(_Oe,n);for(const s of e.values())if(s.parentId)TOe(s,e,t,r);else{const a=X3(s,r.nodeOrigin),i=aN(s.extent)?s.extent:r.nodeExtent,l=JO(a,i,c0(s));s.internals.positionAbsolute=l}}function RXn(e,t){if(!e.handles)return e.measured?t?.internals.handleBounds:void 0;const n=[],r=[];for(const s of e.handles){const a={id:s.id,width:s.width??1,height:s.height??1,nodeId:e.id,x:s.x,y:s.y,position:s.position,type:s.type};s.type==="source"?n.push(a):s.type==="target"&&r.push(a)}return{source:n,target:r}}function EOe(e){return e==="manual"}function xve(e,t,n,r={}){const s=COe(IXn,r),a={i:0},i=new Map(t),l=s?.elevateNodesOnSelect&&!EOe(s.zIndexMode)?JOt:0;let c=e.length>0,u=!1;t.clear(),n.clear();for(const d of e){let f=i.get(d.id);if(s.checkEquality&&d===f?.internals.userNode)t.set(d.id,f);else{const p=X3(d,s.nodeOrigin),h=aN(d.extent)?d.extent:s.nodeExtent,m=JO(p,h,c0(d));f={...s.defaults,...d,measured:{width:d.measured?.width,height:d.measured?.height},internals:{positionAbsolute:m,handleBounds:RXn(d,f),z:e_t(d,l,s.zIndexMode),userNode:d}},t.set(d.id,f)}(f.measured===void 0||f.measured.width===void 0||f.measured.height===void 0)&&!f.hidden&&(c=!1),d.parentId&&TOe(f,t,n,r,a),u||=d.selected??!1}return{nodesInitialized:c,hasSelectedNodes:u}}function PXn(e,t){if(!e.parentId)return;const n=t.get(e.parentId);n?n.set(e.id,e):t.set(e.parentId,new Map([[e.id,e]]))}function TOe(e,t,n,r,s){const{elevateNodesOnSelect:a,nodeOrigin:i,nodeExtent:l,zIndexMode:c}=COe(_Oe,r),u=e.parentId,d=t.get(u);if(!d){console.warn(`Parent node ${u} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);return}PXn(e,n),s&&!d.parentId&&d.internals.rootParentIndex===void 0&&c==="auto"&&(d.internals.rootParentIndex=++s.i,d.internals.z=d.internals.z+s.i*NXn),s&&d.internals.rootParentIndex!==void 0&&(s.i=d.internals.rootParentIndex);const f=a&&!EOe(c)?JOt:0,{x:p,y:h,z:m}=$Xn(e,d,i,l,f,c),{positionAbsolute:v}=e.internals,y=p!==v.x||h!==v.y;(y||m!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:y?{x:p,y:h}:v,z:m}})}function e_t(e,t,n){const r=kg(e.zIndex)?e.zIndex:0;return EOe(n)?r:r+(e.selected?t:0)}function $Xn(e,t,n,r,s,a){const{x:i,y:l}=t.internals.positionAbsolute,c=c0(e),u=X3(e,n),d=aN(e.extent)?JO(u,e.extent,c):u;let f=JO({x:i+d.x,y:l+d.y},r,c);e.extent==="parent"&&(f=UOt(f,c,t));const p=e_t(e,s,a),h=t.internals.z??0;return{x:f.x,y:f.y,z:h>=p?h+1:p}}function jOe(e,t,n,r=[0,0]){const s=[],a=new Map;for(const i of e){const l=t.get(i.parentId);if(!l)continue;const c=a.get(i.parentId)?.expandedRect??sN(l),u=VOt(c,i.rect);a.set(i.parentId,{expandedRect:u,parent:l})}return a.size>0&&a.forEach(({expandedRect:i,parent:l},c)=>{const u=l.internals.positionAbsolute,d=c0(l),f=l.origin??r,p=i.x<u.x?Math.round(Math.abs(u.x-i.x)):0,h=i.y<u.y?Math.round(Math.abs(u.y-i.y)):0,m=Math.max(d.width,Math.round(i.width)),v=Math.max(d.height,Math.round(i.height)),y=(m-d.width)*f[0],b=(v-d.height)*f[1];(p>0||h>0||y||b)&&(s.push({id:c,type:"position",position:{x:l.position.x-p+y,y:l.position.y-h+b}}),n.get(c)?.forEach(x=>{e.some(S=>S.id===x.id)||s.push({id:x.id,type:"position",position:{x:x.position.x+p,y:x.position.y+h}})})),(d.width<i.width||d.height<i.height||p||h)&&s.push({id:c,type:"dimensions",setAttributes:!0,dimensions:{width:m+(p?f[0]*p-y:0),height:v+(h?f[1]*h-b:0)}})}),s}function MXn(e,t,n,r,s,a,i){const l=r?.querySelector(".xyflow__viewport");let c=!1;if(!l)return{changes:[],updatedInternals:c};const u=[],d=window.getComputedStyle(l),{m22:f}=new window.DOMMatrixReadOnly(d.transform),p=[];for(const h of e.values()){const m=t.get(h.id);if(!m)continue;if(m.hidden){t.set(m.id,{...m,internals:{...m.internals,handleBounds:void 0}}),c=!0;continue}const v=kOe(h.nodeElement),y=m.measured.width!==v.width||m.measured.height!==v.height;if(!!(v.width&&v.height&&(y||!m.internals.handleBounds||h.force))){const x=h.nodeElement.getBoundingClientRect(),S=aN(m.extent)?m.extent:a;let{positionAbsolute:k}=m.internals;m.parentId&&m.extent==="parent"?k=UOt(k,v,t.get(m.parentId)):S&&(k=JO(k,S,v));const _={...m,measured:v,internals:{...m.internals,positionAbsolute:k,handleBounds:{source:B7e("source",h.nodeElement,x,f,m.id),target:B7e("target",h.nodeElement,x,f,m.id)}}};t.set(m.id,_),m.parentId&&TOe(_,t,n,{nodeOrigin:s,zIndexMode:i}),c=!0,y&&(u.push({id:m.id,type:"dimensions",dimensions:v}),m.expandParent&&m.parentId&&p.push({id:m.id,parentId:m.parentId,rect:sN(_,s)}))}}if(p.length>0){const h=jOe(p,t,n,s);u.push(...h)}return{changes:u,updatedInternals:c}}async function DXn({delta:e,panZoom:t,transform:n,translateExtent:r,width:s,height:a}){if(!t||!e.x&&!e.y)return Promise.resolve(!1);const i=await t.setViewportConstrained({x:n[0]+e.x,y:n[1]+e.y,zoom:n[2]},[[0,0],[s,a]],r),l=!!i&&(i.x!==n[0]||i.y!==n[1]||i.k!==n[2]);return Promise.resolve(l)}function G7e(e,t,n,r,s,a){let i=s;const l=r.get(i)||new Map;r.set(i,l.set(n,t)),i=`${s}-${e}`;const c=r.get(i)||new Map;if(r.set(i,c.set(n,t)),a){i=`${s}-${e}-${a}`;const u=r.get(i)||new Map;r.set(i,u.set(n,t))}}function t_t(e,t,n){e.clear(),t.clear();for(const r of n){const{source:s,target:a,sourceHandle:i=null,targetHandle:l=null}=r,c={edgeId:r.id,source:s,target:a,sourceHandle:i,targetHandle:l},u=`${s}-${i}--${a}-${l}`,d=`${a}-${l}--${s}-${i}`;G7e("source",c,d,e,s,i),G7e("target",c,u,e,a,l),t.set(r.id,r)}}function n_t(e,t){if(!e.parentId)return!1;const n=t.get(e.parentId);return n?n.selected?!0:n_t(n,t):!1}function Q7e(e,t,n){let r=e;do{if(r?.matches?.(t))return!0;if(r===n)return!1;r=r?.parentElement}while(r);return!1}function LXn(e,t,n,r){const s=new Map;for(const[a,i]of e)if((i.selected||i.id===r)&&(!i.parentId||!n_t(i,e))&&(i.draggable||t&&typeof i.draggable>"u")){const l=e.get(a);l&&s.set(a,{id:a,position:l.position||{x:0,y:0},distance:{x:n.x-l.internals.positionAbsolute.x,y:n.y-l.internals.positionAbsolute.y},extent:l.extent,parentId:l.parentId,origin:l.origin,expandParent:l.expandParent,internals:{positionAbsolute:l.internals.positionAbsolute||{x:0,y:0}},measured:{width:l.measured.width??0,height:l.measured.height??0}})}return s}function sne({nodeId:e,dragItems:t,nodeLookup:n,dragging:r=!0}){const s=[];for(const[i,l]of t){const c=n.get(i)?.internals.userNode;c&&s.push({...c,position:l.position,dragging:r})}if(!e)return[s[0],s];const a=n.get(e)?.internals.userNode;return[a?{...a,position:t.get(e)?.position||a.position,dragging:r}:s[0],s]}function FXn({dragItems:e,snapGrid:t,x:n,y:r}){const s=e.values().next().value;if(!s)return null;const a={x:n-s.distance.x,y:r-s.distance.y},i=e4(a,t);return{x:i.x-a.x,y:i.y-a.y}}function zXn({onNodeMouseDown:e,getStoreItems:t,onDragStart:n,onDrag:r,onDragStop:s}){let a={x:null,y:null},i=0,l=new Map,c=!1,u={x:0,y:0},d=null,f=!1,p=null,h=!1,m=!1,v=null;function y({noDragClassName:x,handleSelector:S,domNode:k,isSelectable:_,nodeId:C,nodeClickDistance:T=0}){p=_p(k);function E({x:R,y:L}){const{nodeLookup:D,nodeExtent:F,snapGrid:H,snapToGrid:B,nodeOrigin:z,onNodeDrag:V,onSelectionDrag:M,onError:G,updateNodePositions:U}=t();a={x:R,y:L};let $=!1;const q=l.size>1,Z=q&&F?vve(J3(l)):null,Y=q&&B?FXn({dragItems:l,snapGrid:H,x:R,y:L}):null;for(const[ne,J]of l){if(!D.has(ne))continue;let ee={x:R-J.distance.x,y:L-J.distance.y};B&&(ee=Y?{x:Math.round(ee.x+Y.x),y:Math.round(ee.y+Y.y)}:e4(ee,H));let se=null;if(q&&F&&!J.extent&&Z){const{positionAbsolute:te}=J.internals,re=te.x-Z.x+F[0][0],pe=te.x+J.measured.width-Z.x2+F[1][0],ce=te.y-Z.y+F[0][1],Se=te.y+J.measured.height-Z.y2+F[1][1];se=[[re,ce],[pe,Se]]}const{position:le,positionAbsolute:X}=BOt({nodeId:ne,nextPosition:ee,nodeLookup:D,nodeExtent:se||F,nodeOrigin:z,onError:G});$=$||J.position.x!==le.x||J.position.y!==le.y,J.position=le,J.internals.positionAbsolute=X}if(m=m||$,!!$&&(U(l,!0),v&&(r||V||!C&&M))){const[ne,J]=sne({nodeId:C,dragItems:l,nodeLookup:D});r?.(v,l,ne,J),V?.(v,ne,J),C||M?.(v,J)}}async function N(){if(!d)return;const{transform:R,panBy:L,autoPanSpeed:D,autoPanOnNodeDrag:F}=t();if(!F){c=!1,cancelAnimationFrame(i);return}const[H,B]=qOt(u,d,D);(H!==0||B!==0)&&(a.x=(a.x??0)-H/R[2],a.y=(a.y??0)-B/R[2],await L({x:H,y:B})&&E(a)),i=requestAnimationFrame(N)}function I(R){const{nodeLookup:L,multiSelectionActive:D,nodesDraggable:F,transform:H,snapGrid:B,snapToGrid:z,selectNodesOnDrag:V,onNodeDragStart:M,onSelectionDragStart:G,unselectNodesAndEdges:U}=t();f=!0,(!V||!_)&&!D&&C&&(L.get(C)?.selected||U()),_&&V&&C&&e?.(C);const $=A2(R.sourceEvent,{transform:H,snapGrid:B,snapToGrid:z,containerBounds:d});if(a=$,l=LXn(L,F,$,C),l.size>0&&(n||M||!C&&G)){const[q,Z]=sne({nodeId:C,dragItems:l,nodeLookup:L});n?.(R.sourceEvent,l,q,Z),M?.(R.sourceEvent,q,Z),C||G?.(R.sourceEvent,Z)}}const A=xOt().clickDistance(T).on("start",R=>{const{domNode:L,nodeDragThreshold:D,transform:F,snapGrid:H,snapToGrid:B}=t();d=L?.getBoundingClientRect()||null,h=!1,m=!1,v=R.sourceEvent,D===0&&I(R),a=A2(R.sourceEvent,{transform:F,snapGrid:H,snapToGrid:B,containerBounds:d}),u=Og(R.sourceEvent,d)}).on("drag",R=>{const{autoPanOnNodeDrag:L,transform:D,snapGrid:F,snapToGrid:H,nodeDragThreshold:B,nodeLookup:z}=t(),V=A2(R.sourceEvent,{transform:D,snapGrid:F,snapToGrid:H,containerBounds:d});if(v=R.sourceEvent,(R.sourceEvent.type==="touchmove"&&R.sourceEvent.touches.length>1||C&&!z.has(C))&&(h=!0),!h){if(!c&&L&&f&&(c=!0,N()),!f){const M=Og(R.sourceEvent,d),G=M.x-u.x,U=M.y-u.y;Math.sqrt(G*G+U*U)>B&&I(R)}(a.x!==V.xSnapped||a.y!==V.ySnapped)&&l&&f&&(u=Og(R.sourceEvent,d),E(V))}}).on("end",R=>{if(!(!f||h)&&(c=!1,f=!1,cancelAnimationFrame(i),l.size>0)){const{nodeLookup:L,updateNodePositions:D,onNodeDragStop:F,onSelectionDragStop:H}=t();if(m&&(D(l,!1),m=!1),s||F||!C&&H){const[B,z]=sne({nodeId:C,dragItems:l,nodeLookup:L,dragging:!1});s?.(R.sourceEvent,l,B,z),F?.(R.sourceEvent,B,z),C||H?.(R.sourceEvent,z)}}}).filter(R=>{const L=R.target;return!R.button&&(!x||!Q7e(L,`.${x}`,k))&&(!S||Q7e(L,S,k))});p.call(A)}function b(){p?.on(".drag",null)}return{update:y,destroy:b}}function BXn(e,t,n){const r=[],s={x:e.x-n,y:e.y-n,width:n*2,height:n*2};for(const a of t.values())LM(s,sN(a))>0&&r.push(a);return r}const UXn=250;function qXn(e,t,n,r){let s=[],a=1/0;const i=BXn(e,n,t+UXn);for(const l of i){const c=[...l.internals.handleBounds?.source??[],...l.internals.handleBounds?.target??[]];for(const u of c){if(r.nodeId===u.nodeId&&r.type===u.type&&r.id===u.id)continue;const{x:d,y:f}=e_(l,u,u.position,!0),p=Math.sqrt(Math.pow(d-e.x,2)+Math.pow(f-e.y,2));p>t||(p<a?(s=[{...u,x:d,y:f}],a=p):p===a&&s.push({...u,x:d,y:f}))}}if(!s.length)return null;if(s.length>1){const l=r.type==="source"?"target":"source";return s.find(c=>c.type===l)??s[0]}return s[0]}function r_t(e,t,n,r,s,a=!1){const i=r.get(e);if(!i)return null;const l=s==="strict"?i.internals.handleBounds?.[t]:[...i.internals.handleBounds?.source??[],...i.internals.handleBounds?.target??[]],c=(n?l?.find(u=>u.id===n):l?.[0])??null;return c&&a?{...c,...e_(i,c,c.position,!0)}:c}function s_t(e,t){return e||(t?.classList.contains("target")?"target":t?.classList.contains("source")?"source":null)}function VXn(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}const a_t=()=>!0;function HXn(e,{connectionMode:t,connectionRadius:n,handleId:r,nodeId:s,edgeUpdaterType:a,isTarget:i,domNode:l,nodeLookup:c,lib:u,autoPanOnConnect:d,flowId:f,panBy:p,cancelConnection:h,onConnectStart:m,onConnect:v,onConnectEnd:y,isValidConnection:b=a_t,onReconnectEnd:x,updateConnection:S,getTransform:k,getFromHandle:_,autoPanSpeed:C,dragThreshold:T=1,handleDomNode:E}){const N=ZOt(e.target);let I=0,A;const{x:R,y:L}=Og(e),D=s_t(a,E),F=l?.getBoundingClientRect();let H=!1;if(!F||!D)return;const B=r_t(s,D,r,c,t);if(!B)return;let z=Og(e,F),V=!1,M=null,G=!1,U=null;function $(){if(!d||!F)return;const[le,X]=qOt(z,F,C);p({x:le,y:X}),I=requestAnimationFrame($)}const q={...B,nodeId:s,type:D,position:B.position},Z=c.get(s);let ne={inProgress:!0,isValid:null,from:e_(Z,q,nr.Left,!0),fromHandle:q,fromPosition:q.position,fromNode:Z,to:z,toHandle:null,toPosition:D7e[q.position],toNode:null,pointer:z};function J(){H=!0,S(ne),m?.(e,{nodeId:s,handleId:r,handleType:D})}T===0&&J();function ee(le){if(!H){const{x:Se,y:ve}=Og(le),ke=Se-R,Ne=ve-L;if(!(ke*ke+Ne*Ne>T*T))return;J()}if(!_()||!q){se(le);return}const X=k();z=Og(le,F),A=qXn(t4(z,X,!1,[1,1]),n,c,q),V||($(),V=!0);const te=i_t(le,{handle:A,connectionMode:t,fromNodeId:s,fromHandleId:r,fromType:i?"target":"source",isValidConnection:b,doc:N,lib:u,flowId:f,nodeLookup:c});U=te.handleDomNode,M=te.connection,G=VXn(!!A,te.isValid);const re=c.get(s),pe=re?e_(re,q,nr.Left,!0):ne.from,ce={...ne,from:pe,isValid:G,to:te.toHandle&&G?sU({x:te.toHandle.x,y:te.toHandle.y},X):z,toHandle:te.toHandle,toPosition:G&&te.toHandle?te.toHandle.position:D7e[q.position],toNode:te.toHandle?c.get(te.toHandle.nodeId):null,pointer:z};S(ce),ne=ce}function se(le){if(!("touches"in le&&le.touches.length>0)){if(H){(A||U)&&M&&G&&v?.(M);const{inProgress:X,...te}=ne,re={...te,toPosition:ne.toHandle?ne.toPosition:null};y?.(le,re),a&&x?.(le,re)}h(),cancelAnimationFrame(I),V=!1,G=!1,M=null,U=null,N.removeEventListener("mousemove",ee),N.removeEventListener("mouseup",se),N.removeEventListener("touchmove",ee),N.removeEventListener("touchend",se)}}N.addEventListener("mousemove",ee),N.addEventListener("mouseup",se),N.addEventListener("touchmove",ee),N.addEventListener("touchend",se)}function i_t(e,{handle:t,connectionMode:n,fromNodeId:r,fromHandleId:s,fromType:a,doc:i,lib:l,flowId:c,isValidConnection:u=a_t,nodeLookup:d}){const f=a==="target",p=t?i.querySelector(`.${l}-flow__handle[data-id="${c}-${t?.nodeId}-${t?.id}-${t?.type}"]`):null,{x:h,y:m}=Og(e),v=i.elementFromPoint(h,m),y=v?.classList.contains(`${l}-flow__handle`)?v:p,b={handleDomNode:y,isValid:!1,connection:null,toHandle:null};if(y){const x=s_t(void 0,y),S=y.getAttribute("data-nodeid"),k=y.getAttribute("data-handleid"),_=y.classList.contains("connectable"),C=y.classList.contains("connectableend");if(!S||!x)return b;const T={source:f?S:r,sourceHandle:f?k:s,target:f?r:S,targetHandle:f?s:k};b.connection=T;const N=_&&C&&(n===nN.Strict?f&&x==="source"||!f&&x==="target":S!==r||k!==s);b.isValid=N&&u(T),b.toHandle=r_t(S,x,k,d,n,!0)}return b}const wve={onPointerDown:HXn,isValid:i_t};function WXn({domNode:e,panZoom:t,getTransform:n,getViewScale:r}){const s=_p(e);function a({translateExtent:l,width:c,height:u,zoomStep:d=1,pannable:f=!0,zoomable:p=!0,inversePan:h=!1}){const m=S=>{if(S.sourceEvent.type!=="wheel"||!t)return;const k=n(),_=S.sourceEvent.ctrlKey&&FM()?10:1,C=-S.sourceEvent.deltaY*(S.sourceEvent.deltaMode===1?.05:S.sourceEvent.deltaMode?1:.002)*d,T=k[2]*Math.pow(2,C*_);t.scaleTo(T)};let v=[0,0];const y=S=>{(S.sourceEvent.type==="mousedown"||S.sourceEvent.type==="touchstart")&&(v=[S.sourceEvent.clientX??S.sourceEvent.touches[0].clientX,S.sourceEvent.clientY??S.sourceEvent.touches[0].clientY])},b=S=>{const k=n();if(S.sourceEvent.type!=="mousemove"&&S.sourceEvent.type!=="touchmove"||!t)return;const _=[S.sourceEvent.clientX??S.sourceEvent.touches[0].clientX,S.sourceEvent.clientY??S.sourceEvent.touches[0].clientY],C=[_[0]-v[0],_[1]-v[1]];v=_;const T=r()*Math.max(k[2],Math.log(k[2]))*(h?-1:1),E={x:k[0]-C[0]*T,y:k[1]-C[1]*T},N=[[0,0],[c,u]];t.setViewportConstrained({x:E.x,y:E.y,zoom:k[2]},N,l)},x=$Ot().on("start",y).on("zoom",f?b:null).on("zoom.wheel",p?m:null);s.call(x,{})}function i(){s.on("zoom",null)}return{update:a,destroy:i,pointer:dg}}const yW=e=>({x:e.x,y:e.y,zoom:e.k}),ane=({x:e,y:t,zoom:n})=>mW.translate(e,t).scale(n),vT=(e,t)=>e.target.closest(`.${t}`),o_t=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),ZXn=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,ine=(e,t=0,n=ZXn,r=()=>{})=>{const s=typeof t=="number"&&t>0;return s||r(),s?e.transition().duration(t).ease(n).on("end",r):e},l_t=e=>{const t=e.ctrlKey&&FM()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function GXn({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:r,panOnScrollMode:s,panOnScrollSpeed:a,zoomOnPinch:i,onPanZoomStart:l,onPanZoom:c,onPanZoomEnd:u}){return d=>{if(vT(d,t))return d.ctrlKey&&d.preventDefault(),!1;d.preventDefault(),d.stopImmediatePropagation();const f=n.property("__zoom").k||1;if(d.ctrlKey&&i){const y=dg(d),b=l_t(d),x=f*Math.pow(2,b);r.scaleTo(n,x,y,d);return}const p=d.deltaMode===1?20:1;let h=s===iO.Vertical?0:d.deltaX*p,m=s===iO.Horizontal?0:d.deltaY*p;!FM()&&d.shiftKey&&s!==iO.Vertical&&(h=d.deltaY*p,m=0),r.translateBy(n,-(h/f)*a,-(m/f)*a,{internal:!0});const v=yW(n.property("__zoom"));clearTimeout(e.panScrollTimeout),e.isPanScrolling?(c?.(d,v),e.panScrollTimeout=setTimeout(()=>{u?.(d,v),e.isPanScrolling=!1},150)):(e.isPanScrolling=!0,l?.(d,v))}}function QXn({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(r,s){const a=r.type==="wheel",i=!t&&a&&!r.ctrlKey,l=vT(r,e);if(r.ctrlKey&&a&&l&&r.preventDefault(),i||l)return null;r.preventDefault(),n.call(this,r,s)}}function YXn({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return r=>{if(r.sourceEvent?.internal)return;const s=yW(r.transform);e.mouseButton=r.sourceEvent?.button||0,e.isZoomingOrPanning=!0,e.prevViewport=s,r.sourceEvent?.type==="mousedown"&&t(!0),n&&n?.(r.sourceEvent,s)}}function KXn({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:r,onPanZoom:s}){return a=>{e.usedRightMouseButton=!!(n&&o_t(t,e.mouseButton??0)),a.sourceEvent?.sync||r([a.transform.x,a.transform.y,a.transform.k]),s&&!a.sourceEvent?.internal&&s?.(a.sourceEvent,yW(a.transform))}}function XXn({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:r,onPanZoomEnd:s,onPaneContextMenu:a}){return i=>{if(!i.sourceEvent?.internal&&(e.isZoomingOrPanning=!1,a&&o_t(t,e.mouseButton??0)&&!e.usedRightMouseButton&&i.sourceEvent&&a(i.sourceEvent),e.usedRightMouseButton=!1,r(!1),s)){const l=yW(i.transform);e.prevViewport=l,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{s?.(i.sourceEvent,l)},n?150:0)}}}function JXn({zoomActivationKeyPressed:e,zoomOnScroll:t,zoomOnPinch:n,panOnDrag:r,panOnScroll:s,zoomOnDoubleClick:a,userSelectionActive:i,noWheelClassName:l,noPanClassName:c,lib:u,connectionInProgress:d}){return f=>{const p=e||t,h=n&&f.ctrlKey,m=f.type==="wheel";if(f.button===1&&f.type==="mousedown"&&(vT(f,`${u}-flow__node`)||vT(f,`${u}-flow__edge`)))return!0;if(!r&&!p&&!s&&!a&&!n||i||d&&!m||vT(f,l)&&m||vT(f,c)&&(!m||s&&m&&!e)||!n&&f.ctrlKey&&m)return!1;if(!n&&f.type==="touchstart"&&f.touches?.length>1)return f.preventDefault(),!1;if(!p&&!s&&!h&&m||!r&&(f.type==="mousedown"||f.type==="touchstart")||Array.isArray(r)&&!r.includes(f.button)&&f.type==="mousedown")return!1;const v=Array.isArray(r)&&r.includes(f.button)||!f.button||f.button<=1;return(!f.ctrlKey||m)&&v}}function eJn({domNode:e,minZoom:t,maxZoom:n,translateExtent:r,viewport:s,onPanZoom:a,onPanZoomStart:i,onPanZoomEnd:l,onDraggingChange:c}){const u={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},d=e.getBoundingClientRect(),f=$Ot().scaleExtent([t,n]).translateExtent(r),p=_p(e).call(f);x({x:s.x,y:s.y,zoom:rN(s.zoom,t,n)},[[0,0],[d.width,d.height]],r);const h=p.on("wheel.zoom"),m=p.on("dblclick.zoom");f.wheelDelta(l_t);function v(A,R){return p?new Promise(L=>{f?.interpolate(R?.interpolate==="linear"?yx:Z8).transform(ine(p,R?.duration,R?.ease,()=>L(!0)),A)}):Promise.resolve(!1)}function y({noWheelClassName:A,noPanClassName:R,onPaneContextMenu:L,userSelectionActive:D,panOnScroll:F,panOnDrag:H,panOnScrollMode:B,panOnScrollSpeed:z,preventScrolling:V,zoomOnPinch:M,zoomOnScroll:G,zoomOnDoubleClick:U,zoomActivationKeyPressed:$,lib:q,onTransformChange:Z,connectionInProgress:Y,paneClickDistance:ne,selectionOnDrag:J}){D&&!u.isZoomingOrPanning&&b();const ee=F&&!$&&!D;f.clickDistance(J?1/0:!kg(ne)||ne<0?0:ne);const se=ee?GXn({zoomPanValues:u,noWheelClassName:A,d3Selection:p,d3Zoom:f,panOnScrollMode:B,panOnScrollSpeed:z,zoomOnPinch:M,onPanZoomStart:i,onPanZoom:a,onPanZoomEnd:l}):QXn({noWheelClassName:A,preventScrolling:V,d3ZoomHandler:h});if(p.on("wheel.zoom",se,{passive:!1}),!D){const X=YXn({zoomPanValues:u,onDraggingChange:c,onPanZoomStart:i});f.on("start",X);const te=KXn({zoomPanValues:u,panOnDrag:H,onPaneContextMenu:!!L,onPanZoom:a,onTransformChange:Z});f.on("zoom",te);const re=XXn({zoomPanValues:u,panOnDrag:H,panOnScroll:F,onPaneContextMenu:L,onPanZoomEnd:l,onDraggingChange:c});f.on("end",re)}const le=JXn({zoomActivationKeyPressed:$,panOnDrag:H,zoomOnScroll:G,panOnScroll:F,zoomOnDoubleClick:U,zoomOnPinch:M,userSelectionActive:D,noPanClassName:R,noWheelClassName:A,lib:q,connectionInProgress:Y});f.filter(le),U?p.on("dblclick.zoom",m):p.on("dblclick.zoom",null)}function b(){f.on("zoom",null)}async function x(A,R,L){const D=ane(A),F=f?.constrain()(D,R,L);return F&&await v(F),new Promise(H=>H(F))}async function S(A,R){const L=ane(A);return await v(L,R),new Promise(D=>D(L))}function k(A){if(p){const R=ane(A),L=p.property("__zoom");(L.k!==A.zoom||L.x!==A.x||L.y!==A.y)&&f?.transform(p,R,null,{sync:!0})}}function _(){const A=p?POt(p.node()):{x:0,y:0,k:1};return{x:A.x,y:A.y,zoom:A.k}}function C(A,R){return p?new Promise(L=>{f?.interpolate(R?.interpolate==="linear"?yx:Z8).scaleTo(ine(p,R?.duration,R?.ease,()=>L(!0)),A)}):Promise.resolve(!1)}function T(A,R){return p?new Promise(L=>{f?.interpolate(R?.interpolate==="linear"?yx:Z8).scaleBy(ine(p,R?.duration,R?.ease,()=>L(!0)),A)}):Promise.resolve(!1)}function E(A){f?.scaleExtent(A)}function N(A){f?.translateExtent(A)}function I(A){const R=!kg(A)||A<0?0:A;f?.clickDistance(R)}return{update:y,destroy:b,setViewport:S,setViewportConstrained:x,getViewport:_,scaleTo:C,scaleBy:T,setScaleExtent:E,setTranslateExtent:N,syncViewport:k,setClickDistance:I}}var iN;(function(e){e.Line="line",e.Handle="handle"})(iN||(iN={}));function tJn({width:e,prevWidth:t,height:n,prevHeight:r,affectsX:s,affectsY:a}){const i=e-t,l=n-r,c=[i>0?1:i<0?-1:0,l>0?1:l<0?-1:0];return i&&s&&(c[0]=c[0]*-1),l&&a&&(c[1]=c[1]*-1),c}function Y7e(e){const t=e.includes("right")||e.includes("left"),n=e.includes("bottom")||e.includes("top"),r=e.includes("left"),s=e.includes("top");return{isHorizontal:t,isVertical:n,affectsX:r,affectsY:s}}function nw(e,t){return Math.max(0,t-e)}function rw(e,t){return Math.max(0,e-t)}function SF(e,t,n){return Math.max(0,t-e,e-n)}function K7e(e,t){return e?!t:t}function nJn(e,t,n,r,s,a,i,l){let{affectsX:c,affectsY:u}=t;const{isHorizontal:d,isVertical:f}=t,p=d&&f,{xSnapped:h,ySnapped:m}=n,{minWidth:v,maxWidth:y,minHeight:b,maxHeight:x}=r,{x:S,y:k,width:_,height:C,aspectRatio:T}=e;let E=Math.floor(d?h-e.pointerX:0),N=Math.floor(f?m-e.pointerY:0);const I=_+(c?-E:E),A=C+(u?-N:N),R=-a[0]*_,L=-a[1]*C;let D=SF(I,v,y),F=SF(A,b,x);if(i){let z=0,V=0;c&&E<0?z=nw(S+E+R,i[0][0]):!c&&E>0&&(z=rw(S+I+R,i[1][0])),u&&N<0?V=nw(k+N+L,i[0][1]):!u&&N>0&&(V=rw(k+A+L,i[1][1])),D=Math.max(D,z),F=Math.max(F,V)}if(l){let z=0,V=0;c&&E>0?z=rw(S+E,l[0][0]):!c&&E<0&&(z=nw(S+I,l[1][0])),u&&N>0?V=rw(k+N,l[0][1]):!u&&N<0&&(V=nw(k+A,l[1][1])),D=Math.max(D,z),F=Math.max(F,V)}if(s){if(d){const z=SF(I/T,b,x)*T;if(D=Math.max(D,z),i){let V=0;!c&&!u||c&&!u&&p?V=rw(k+L+I/T,i[1][1])*T:V=nw(k+L+(c?E:-E)/T,i[0][1])*T,D=Math.max(D,V)}if(l){let V=0;!c&&!u||c&&!u&&p?V=nw(k+I/T,l[1][1])*T:V=rw(k+(c?E:-E)/T,l[0][1])*T,D=Math.max(D,V)}}if(f){const z=SF(A*T,v,y)/T;if(F=Math.max(F,z),i){let V=0;!c&&!u||u&&!c&&p?V=rw(S+A*T+R,i[1][0])/T:V=nw(S+(u?N:-N)*T+R,i[0][0])/T,F=Math.max(F,V)}if(l){let V=0;!c&&!u||u&&!c&&p?V=nw(S+A*T,l[1][0])/T:V=rw(S+(u?N:-N)*T,l[0][0])/T,F=Math.max(F,V)}}}N=N+(N<0?F:-F),E=E+(E<0?D:-D),s&&(p?I>A*T?N=(K7e(c,u)?-E:E)/T:E=(K7e(c,u)?-N:N)*T:d?(N=E/T,u=c):(E=N*T,c=u));const H=c?S+E:S,B=u?k+N:k;return{width:_+(c?-E:E),height:C+(u?-N:N),x:a[0]*E*(c?-1:1)+H,y:a[1]*N*(u?-1:1)+B}}const c_t={width:0,height:0,x:0,y:0},rJn={...c_t,pointerX:0,pointerY:0,aspectRatio:1};function sJn(e){return[[0,0],[e.measured.width,e.measured.height]]}function aJn(e,t,n){const r=t.position.x+e.position.x,s=t.position.y+e.position.y,a=e.measured.width??0,i=e.measured.height??0,l=n[0]*a,c=n[1]*i;return[[r-l,s-c],[r+a-l,s+i-c]]}function iJn({domNode:e,nodeId:t,getStoreItems:n,onChange:r,onEnd:s}){const a=_p(e);let i={controlDirection:Y7e("bottom-right"),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};function l({controlPosition:u,boundaries:d,keepAspectRatio:f,resizeDirection:p,onResizeStart:h,onResize:m,onResizeEnd:v,shouldResize:y}){let b={...c_t},x={...rJn};i={boundaries:d,resizeDirection:p,keepAspectRatio:f,controlDirection:Y7e(u)};let S,k=null,_=[],C,T,E,N=!1;const I=xOt().on("start",A=>{const{nodeLookup:R,transform:L,snapGrid:D,snapToGrid:F,nodeOrigin:H,paneDomNode:B}=n();if(S=R.get(t),!S)return;k=B?.getBoundingClientRect()??null;const{xSnapped:z,ySnapped:V}=A2(A.sourceEvent,{transform:L,snapGrid:D,snapToGrid:F,containerBounds:k});b={width:S.measured.width??0,height:S.measured.height??0,x:S.position.x??0,y:S.position.y??0},x={...b,pointerX:z,pointerY:V,aspectRatio:b.width/b.height},C=void 0,S.parentId&&(S.extent==="parent"||S.expandParent)&&(C=R.get(S.parentId),T=C&&S.extent==="parent"?sJn(C):void 0),_=[],E=void 0;for(const[M,G]of R)if(G.parentId===t&&(_.push({id:M,position:{...G.position},extent:G.extent}),G.extent==="parent"||G.expandParent)){const U=aJn(G,S,G.origin??H);E?E=[[Math.min(U[0][0],E[0][0]),Math.min(U[0][1],E[0][1])],[Math.max(U[1][0],E[1][0]),Math.max(U[1][1],E[1][1])]]:E=U}h?.(A,{...b})}).on("drag",A=>{const{transform:R,snapGrid:L,snapToGrid:D,nodeOrigin:F}=n(),H=A2(A.sourceEvent,{transform:R,snapGrid:L,snapToGrid:D,containerBounds:k}),B=[];if(!S)return;const{x:z,y:V,width:M,height:G}=b,U={},$=S.origin??F,{width:q,height:Z,x:Y,y:ne}=nJn(x,i.controlDirection,H,i.boundaries,i.keepAspectRatio,$,T,E),J=q!==M,ee=Z!==G,se=Y!==z&&J,le=ne!==V&ⅇif(!se&&!le&&!J&&!ee)return;if((se||le||$[0]===1||$[1]===1)&&(U.x=se?Y:b.x,U.y=le?ne:b.y,b.x=U.x,b.y=U.y,_.length>0)){const pe=Y-z,ce=ne-V;for(const Se of _)Se.position={x:Se.position.x-pe+$[0]*(q-M),y:Se.position.y-ce+$[1]*(Z-G)},B.push(Se)}if((J||ee)&&(U.width=J&&(!i.resizeDirection||i.resizeDirection==="horizontal")?q:b.width,U.height=ee&&(!i.resizeDirection||i.resizeDirection==="vertical")?Z:b.height,b.width=U.width,b.height=U.height),C&&S.expandParent){const pe=$[0]*(U.width??0);U.x&&U.x<pe&&(b.x=pe,x.x=x.x-(U.x-pe));const ce=$[1]*(U.height??0);U.y&&U.y<ce&&(b.y=ce,x.y=x.y-(U.y-ce))}const X=tJn({width:b.width,prevWidth:M,height:b.height,prevHeight:G,affectsX:i.controlDirection.affectsX,affectsY:i.controlDirection.affectsY}),te={...b,direction:X};y?.(A,te)!==!1&&(N=!0,m?.(A,te),r(U,B))}).on("end",A=>{N&&(v?.(A,{...b}),s?.({...b}),N=!1)});a.call(I)}function c(){a.on(".drag",null)}return{update:l,destroy:c}}const oJn={},X7e=e=>{let t;const n=new Set,r=(d,f)=>{const p=typeof d=="function"?d(t):d;if(!Object.is(p,t)){const h=t;t=f??(typeof p!="object"||p===null)?p:Object.assign({},t,p),n.forEach(m=>m(t,h))}},s=()=>t,c={setState:r,getState:s,getInitialState:()=>u,subscribe:d=>(n.add(d),()=>n.delete(d)),destroy:()=>{(oJn?"production":void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),n.clear()}},u=t=e(r,s,c);return c},lJn=e=>e?X7e(e):X7e,{useDebugValue:cJn}=Fe,{useSyncExternalStoreWithSelector:uJn}=MTn,dJn=e=>e;function u_t(e,t=dJn,n){const r=uJn(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return cJn(r),r}const J7e=(e,t)=>{const n=lJn(e),r=(s,a=t)=>u_t(n,s,a);return Object.assign(r,n),r},fJn=(e,t)=>e?J7e(e,t):J7e;function ao(e,t){if(Object.is(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(const[r,s]of e)if(!Object.is(s,t.get(r)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const r of e)if(!t.has(r))return!1;return!0}const n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(const r of n)if(!Object.prototype.hasOwnProperty.call(t,r)||!Object.is(e[r],t[r]))return!1;return!0}const bW=g.createContext(null),pJn=bW.Provider,d_t=Sy.error001();function zs(e,t){const n=g.useContext(bW);if(n===null)throw new Error(d_t);return u_t(n,e,t)}function Eo(){const e=g.useContext(bW);if(e===null)throw new Error(d_t);return g.useMemo(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}const eBe={display:"none"},hJn={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},f_t="react-flow__node-desc",p_t="react-flow__edge-desc",mJn="react-flow__aria-live",gJn=e=>e.ariaLiveMessage,vJn=e=>e.ariaLabelConfig;function yJn({rfId:e}){const t=zs(gJn);return o.jsx("div",{id:`${mJn}-${e}`,"aria-live":"assertive","aria-atomic":"true",style:hJn,children:t})}function bJn({rfId:e,disableKeyboardA11y:t}){const n=zs(vJn);return o.jsxs(o.Fragment,{children:[o.jsx("div",{id:`${f_t}-${e}`,style:eBe,children:t?n["node.a11yDescription.default"]:n["node.a11yDescription.keyboardDisabled"]}),o.jsx("div",{id:`${p_t}-${e}`,style:eBe,children:n["edge.a11yDescription.default"]}),!t&&o.jsx(yJn,{rfId:e})]})}const n4=g.forwardRef(({position:e="top-left",children:t,className:n,style:r,...s},a)=>{const i=`${e}`.split("-");return o.jsx("div",{className:Ul(["react-flow__panel",n,...i]),style:r,ref:a,...s,children:t})});n4.displayName="Panel";function xJn({proOptions:e,position:t="bottom-right"}){return e?.hideAttribution?null:o.jsx(n4,{position:t,className:"react-flow__attribution","data-message":"Please only hide this attribution when you are subscribed to React Flow Pro: https://pro.reactflow.dev",children:o.jsx("a",{href:"https://reactflow.dev",target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution",children:"React Flow"})})}const wJn=e=>{const t=[],n=[];for(const[,r]of e.nodeLookup)r.selected&&t.push(r.internals.userNode);for(const[,r]of e.edgeLookup)r.selected&&n.push(r);return{selectedNodes:t,selectedEdges:n}},kF=e=>e.id;function SJn(e,t){return ao(e.selectedNodes.map(kF),t.selectedNodes.map(kF))&&ao(e.selectedEdges.map(kF),t.selectedEdges.map(kF))}function kJn({onSelectionChange:e}){const t=Eo(),{selectedNodes:n,selectedEdges:r}=zs(wJn,SJn);return g.useEffect(()=>{const s={nodes:n,edges:r};e?.(s),t.getState().onSelectionChangeHandlers.forEach(a=>a(s))},[n,r,e]),null}const OJn=e=>!!e.onSelectionChangeHandlers;function _Jn({onSelectionChange:e}){const t=zs(OJn);return e||t?o.jsx(kJn,{onSelectionChange:e}):null}const Sve=typeof window<"u"?g.useLayoutEffect:g.useEffect,h_t=[0,0],CJn={x:0,y:0,zoom:1},EJn=["nodes","edges","defaultNodes","defaultEdges","onConnect","onConnectStart","onConnectEnd","onClickConnectStart","onClickConnectEnd","nodesDraggable","autoPanOnNodeFocus","nodesConnectable","nodesFocusable","edgesFocusable","edgesReconnectable","elevateNodesOnSelect","elevateEdgesOnSelect","minZoom","maxZoom","nodeExtent","onNodesChange","onEdgesChange","elementsSelectable","connectionMode","snapGrid","snapToGrid","translateExtent","connectOnClick","defaultEdgeOptions","fitView","fitViewOptions","onNodesDelete","onEdgesDelete","onDelete","onNodeDrag","onNodeDragStart","onNodeDragStop","onSelectionDrag","onSelectionDragStart","onSelectionDragStop","onMoveStart","onMove","onMoveEnd","noPanClassName","nodeOrigin","autoPanOnConnect","autoPanOnNodeDrag","onError","connectionRadius","isValidConnection","selectNodesOnDrag","nodeDragThreshold","connectionDragThreshold","onBeforeDelete","debug","autoPanSpeed","ariaLabelConfig","zIndexMode"],tBe=[...EJn,"rfId"],TJn=e=>({setNodes:e.setNodes,setEdges:e.setEdges,setMinZoom:e.setMinZoom,setMaxZoom:e.setMaxZoom,setTranslateExtent:e.setTranslateExtent,setNodeExtent:e.setNodeExtent,reset:e.reset,setDefaultNodesAndEdges:e.setDefaultNodesAndEdges}),nBe={translateExtent:$M,nodeOrigin:h_t,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:"nopan",rfId:"1"};function jJn(e){const{setNodes:t,setEdges:n,setMinZoom:r,setMaxZoom:s,setTranslateExtent:a,setNodeExtent:i,reset:l,setDefaultNodesAndEdges:c}=zs(TJn,ao),u=Eo();Sve(()=>(c(e.defaultNodes,e.defaultEdges),()=>{d.current=nBe,l()}),[]);const d=g.useRef(nBe);return Sve(()=>{for(const f of tBe){const p=e[f],h=d.current[f];p!==h&&(typeof e[f]>"u"||(f==="nodes"?t(p):f==="edges"?n(p):f==="minZoom"?r(p):f==="maxZoom"?s(p):f==="translateExtent"?a(p):f==="nodeExtent"?i(p):f==="ariaLabelConfig"?u.setState({ariaLabelConfig:yXn(p)}):f==="fitView"?u.setState({fitViewQueued:p}):f==="fitViewOptions"?u.setState({fitViewOptions:p}):u.setState({[f]:p})))}d.current=e},tBe.map(f=>e[f])),null}function rBe(){return typeof window>"u"||!window.matchMedia?null:window.matchMedia("(prefers-color-scheme: dark)")}function NJn(e){const[t,n]=g.useState(e==="system"?null:e);return g.useEffect(()=>{if(e!=="system"){n(e);return}const r=rBe(),s=()=>n(r?.matches?"dark":"light");return s(),r?.addEventListener("change",s),()=>{r?.removeEventListener("change",s)}},[e]),t!==null?t:rBe()?.matches?"dark":"light"}const sBe=typeof document<"u"?document:null;function zM(e=null,t={target:sBe,actInsideInputWithModifier:!0}){const[n,r]=g.useState(!1),s=g.useRef(!1),a=g.useRef(new Set([])),[i,l]=g.useMemo(()=>{if(e!==null){const u=(Array.isArray(e)?e:[e]).filter(f=>typeof f=="string").map(f=>f.replace("+",`
|
|
234
|
+
`:r=="r"?"\r":r=="t"?" ":"\\")}eq(t){return this.search==t.search&&this.replace==t.replace&&this.caseSensitive==t.caseSensitive&&this.regexp==t.regexp&&this.wholeWord==t.wholeWord&&this.test==t.test}create(){return this.regexp?new NWn(this):new EWn(this)}getCursor(t,n=0,r){let s=t.doc?t:ps.create({doc:t});return r==null&&(r=s.doc.length),this.regexp?KE(this,s,n,r):YE(this,s,n,r)}}class qkt{constructor(t){this.spec=t}}function _Wn(e,t,n){return(r,s,a,i)=>{if(n&&!n(r,s,a,i))return!1;let l=r>=i&&s<=i+a.length?a.slice(r-i,s-i):t.doc.sliceString(r,s);return e(l,t,r,s)}}function YE(e,t,n,r){let s;return e.wholeWord&&(s=CWn(t.doc,t.charCategorizer(t.selection.main.head))),e.test&&(s=_Wn(e.test,t,s)),new Dx(t.doc,e.unquoted,n,r,e.caseSensitive?void 0:a=>a.toLowerCase(),s)}function CWn(e,t){return(n,r,s,a)=>((a>n||a+s.length<r)&&(a=Math.max(0,n-2),s=e.sliceString(a,Math.min(e.length,r+2))),(t(HB(s,n-a))!=yo.Word||t(WB(s,n-a))!=yo.Word)&&(t(WB(s,r-a))!=yo.Word||t(HB(s,r-a))!=yo.Word))}class EWn extends qkt{constructor(t){super(t)}nextMatch(t,n,r){let s=YE(this.spec,t,r,t.doc.length).nextOverlapping();if(s.done){let a=Math.min(t.doc.length,n+this.spec.unquoted.length);s=YE(this.spec,t,0,a).nextOverlapping()}return s.done||s.value.from==n&&s.value.to==r?null:s.value}prevMatchInRange(t,n,r){for(let s=r;;){let a=Math.max(n,s-1e4-this.spec.unquoted.length),i=YE(this.spec,t,a,s),l=null;for(;!i.nextOverlapping().done;)l=i.value;if(l)return l;if(a==n)return null;s-=1e4}}prevMatch(t,n,r){let s=this.prevMatchInRange(t,0,n);return s||(s=this.prevMatchInRange(t,Math.max(0,r-this.spec.unquoted.length),t.doc.length)),s&&(s.from!=n||s.to!=r)?s:null}getReplacement(t){return this.spec.unquote(this.spec.replace)}matchAll(t,n){let r=YE(this.spec,t,0,t.doc.length),s=[];for(;!r.next().done;){if(s.length>=n)return null;s.push(r.value)}return s}highlight(t,n,r,s){let a=YE(this.spec,t,Math.max(0,n-this.spec.unquoted.length),Math.min(r+this.spec.unquoted.length,t.doc.length));for(;!a.next().done;)s(a.value.from,a.value.to)}}function TWn(e,t,n){return(r,s,a)=>(!n||n(r,s,a))&&e(a[0],t,r,s)}function KE(e,t,n,r){let s;return e.wholeWord&&(s=jWn(t.charCategorizer(t.selection.main.head))),e.test&&(s=TWn(e.test,t,s)),new zkt(t.doc,e.search,{ignoreCase:!e.caseSensitive,test:s},n,r)}function HB(e,t){return e.slice(_c(e,t,!1),t)}function WB(e,t){return e.slice(t,_c(e,t))}function jWn(e){return(t,n,r)=>!r[0].length||(e(HB(r.input,r.index))!=yo.Word||e(WB(r.input,r.index))!=yo.Word)&&(e(WB(r.input,r.index+r[0].length))!=yo.Word||e(HB(r.input,r.index+r[0].length))!=yo.Word)}class NWn extends qkt{nextMatch(t,n,r){let s=KE(this.spec,t,r,t.doc.length).next();return s.done&&(s=KE(this.spec,t,0,n).next()),s.done?null:s.value}prevMatchInRange(t,n,r){for(let s=1;;s++){let a=Math.max(n,r-s*1e4),i=KE(this.spec,t,a,r),l=null;for(;!i.next().done;)l=i.value;if(l&&(a==n||l.from>a+10))return l;if(a==n)return null}}prevMatch(t,n,r){return this.prevMatchInRange(t,0,n)||this.prevMatchInRange(t,r,t.doc.length)}getReplacement(t){return this.spec.unquote(this.spec.replace).replace(/\$([$&]|\d+)/g,(n,r)=>{if(r=="&")return t.match[0];if(r=="$")return"$";for(let s=r.length;s>0;s--){let a=+r.slice(0,s);if(a>0&&a<t.match.length)return t.match[a]+r.slice(s)}return n})}matchAll(t,n){let r=KE(this.spec,t,0,t.doc.length),s=[];for(;!r.next().done;){if(s.length>=n)return null;s.push(r.value)}return s}highlight(t,n,r,s){let a=KE(this.spec,t,Math.max(0,n-250),Math.min(r+250,t.doc.length));for(;!a.next().done;)s(a.value.from,a.value.to)}}const TM=dr.define(),oOe=dr.define(),Jw=bl.define({create(e){return new nte(ove(e).create(),null)},update(e,t){for(let n of t.effects)n.is(TM)?e=new nte(n.value.create(),e.panel):n.is(oOe)&&(e=new nte(e.query,n.value?lOe:null));return e},provide:e=>yM.from(e,t=>t.panel)});class nte{constructor(t,n){this.query=t,this.panel=n}}const IWn=jn.mark({class:"cm-searchMatch"}),AWn=jn.mark({class:"cm-searchMatch cm-searchMatch-selected"}),RWn=ko.fromClass(class{constructor(e){this.view=e,this.decorations=this.highlight(e.state.field(Jw))}update(e){let t=e.state.field(Jw);(t!=e.startState.field(Jw)||e.docChanged||e.selectionSet||e.viewportChanged)&&(this.decorations=this.highlight(t))}highlight({query:e,panel:t}){if(!t||!e.spec.valid)return jn.none;let{view:n}=this,r=new Ld;for(let s=0,a=n.visibleRanges,i=a.length;s<i;s++){let{from:l,to:c}=a[s];for(;s<i-1&&c>a[s+1].from-500;)c=a[++s].to;e.highlight(n.state,l,c,(u,d)=>{let f=n.state.selection.ranges.some(p=>p.from==u&&p.to==d);r.add(u,d,f?AWn:IWn)})}return r.finish()}},{decorations:e=>e.decorations});function Q3(e){return t=>{let n=t.state.field(Jw,!1);return n&&n.query.spec.valid?e(t,n):Wkt(t)}}const ZB=Q3((e,{query:t})=>{let{to:n}=e.state.selection.main,r=t.nextMatch(e.state,n,n);if(!r)return!1;let s=wt.single(r.from,r.to),a=e.state.facet(SI);return e.dispatch({selection:s,effects:[cOe(e,r),a.scrollToMatch(s.main,e)],userEvent:"select.search"}),Hkt(e),!0}),GB=Q3((e,{query:t})=>{let{state:n}=e,{from:r}=n.selection.main,s=t.prevMatch(n,r,r);if(!s)return!1;let a=wt.single(s.from,s.to),i=e.state.facet(SI);return e.dispatch({selection:a,effects:[cOe(e,s),i.scrollToMatch(a.main,e)],userEvent:"select.search"}),Hkt(e),!0}),PWn=Q3((e,{query:t})=>{let n=t.matchAll(e.state,1e3);return!n||!n.length?!1:(e.dispatch({selection:wt.create(n.map(r=>wt.range(r.from,r.to))),userEvent:"select.search.matches"}),!0)}),$Wn=({state:e,dispatch:t})=>{let n=e.selection;if(n.ranges.length>1||n.main.empty)return!1;let{from:r,to:s}=n.main,a=[],i=0;for(let l=new Dx(e.doc,e.sliceDoc(r,s));!l.next().done;){if(a.length>1e3)return!1;l.value.from==r&&(i=a.length),a.push(wt.range(l.value.from,l.value.to))}return t(e.update({selection:wt.create(a,i),userEvent:"select.search.matches"})),!0},d9e=Q3((e,{query:t})=>{let{state:n}=e,{from:r,to:s}=n.selection.main;if(n.readOnly)return!1;let a=t.nextMatch(n,r,r);if(!a)return!1;let i=a,l=[],c,u,d=[];i.precise?i.from==r&&i.to==s&&(u=n.toText(t.getReplacement(i)),l.push({from:i.from,to:i.to,insert:u}),i=t.nextMatch(n,i.from,i.to),d.push(At.announce.of(n.phrase("replaced match on line $",n.doc.lineAt(r).number)+"."))):i=t.nextMatch(n,i.from,i.to);let f=e.state.changes(l);return i&&(c=wt.single(i.from,i.to).map(f),d.push(cOe(e,i)),d.push(n.facet(SI).scrollToMatch(c.main,e))),e.dispatch({changes:f,selection:c,effects:d,userEvent:"input.replace"}),!0}),MWn=Q3((e,{query:t})=>{if(e.state.readOnly)return!1;let n=[];for(let s of t.matchAll(e.state,1e9)){let{from:a,to:i,precise:l}=s;l&&n.push({from:a,to:i,insert:t.getReplacement(s)})}if(!n.length)return!1;let r=e.state.phrase("replaced $ matches",n.length)+".";return e.dispatch({changes:n,effects:At.announce.of(r),userEvent:"input.replace.all"}),!0});function lOe(e){return e.state.facet(SI).createPanel(e)}function ove(e,t){var n,r,s,a,i;let l=e.selection.main,c=l.empty||l.to>l.from+100?"":e.sliceDoc(l.from,l.to);if(t&&!c)return t;let u=e.facet(SI);return new Ukt({search:((n=t?.literal)!==null&&n!==void 0?n:u.literal)?c:c.replace(/\n/g,"\\n"),caseSensitive:(r=t?.caseSensitive)!==null&&r!==void 0?r:u.caseSensitive,literal:(s=t?.literal)!==null&&s!==void 0?s:u.literal,regexp:(a=t?.regexp)!==null&&a!==void 0?a:u.regexp,wholeWord:(i=t?.wholeWord)!==null&&i!==void 0?i:u.wholeWord})}function Vkt(e){let t=Oke(e,lOe);return t&&t.dom.querySelector("[main-field]")}function Hkt(e){let t=Vkt(e);t&&t==e.root.activeElement&&t.select()}const Wkt=e=>{let t=e.state.field(Jw,!1);if(t&&t.panel){let n=Vkt(e);if(n&&n!=e.root.activeElement){let r=ove(e.state,t.query.spec);r.valid&&e.dispatch({effects:TM.of(r)}),n.focus(),n.select()}}else e.dispatch({effects:[oOe.of(!0),t?TM.of(ove(e.state,t.query.spec)):dr.appendConfig.of(zWn)]});return!0},Zkt=e=>{let t=e.state.field(Jw,!1);if(!t||!t.panel)return!1;let n=Oke(e,lOe);return n&&n.dom.contains(e.root.activeElement)&&e.focus(),e.dispatch({effects:oOe.of(!1)}),!0},DWn=[{key:"Mod-f",run:Wkt,scope:"editor search-panel"},{key:"F3",run:ZB,shift:GB,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:ZB,shift:GB,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:Zkt,scope:"editor search-panel"},{key:"Mod-Shift-l",run:$Wn},{key:"Mod-Alt-g",run:pWn},{key:"Mod-d",run:OWn,preventDefault:!0}];class LWn{constructor(t){this.view=t;let n=this.query=t.state.field(Jw).query.spec;this.commit=this.commit.bind(this),this.searchField=ui("input",{value:n.search,placeholder:cp(t,"Find"),"aria-label":cp(t,"Find"),class:"cm-textfield",name:"search",form:"","main-field":"true",onchange:this.commit,onkeyup:this.commit}),this.replaceField=ui("input",{value:n.replace,placeholder:cp(t,"Replace"),"aria-label":cp(t,"Replace"),class:"cm-textfield",name:"replace",form:"",onchange:this.commit,onkeyup:this.commit}),this.caseField=ui("input",{type:"checkbox",name:"case",form:"",checked:n.caseSensitive,onchange:this.commit}),this.reField=ui("input",{type:"checkbox",name:"re",form:"",checked:n.regexp,onchange:this.commit}),this.wordField=ui("input",{type:"checkbox",name:"word",form:"",checked:n.wholeWord,onchange:this.commit});function r(s,a,i){return ui("button",{class:"cm-button",name:s,onclick:a,type:"button"},i)}this.dom=ui("div",{onkeydown:s=>this.keydown(s),class:"cm-search"},[this.searchField,r("next",()=>ZB(t),[cp(t,"next")]),r("prev",()=>GB(t),[cp(t,"previous")]),r("select",()=>PWn(t),[cp(t,"all")]),ui("label",null,[this.caseField,cp(t,"match case")]),ui("label",null,[this.reField,cp(t,"regexp")]),ui("label",null,[this.wordField,cp(t,"by word")]),...t.state.readOnly?[]:[ui("br"),this.replaceField,r("replace",()=>d9e(t),[cp(t,"replace")]),r("replaceAll",()=>MWn(t),[cp(t,"replace all")])],ui("button",{name:"close",onclick:()=>Zkt(t),"aria-label":cp(t,"close"),type:"button"},["×"])])}commit(){let t=new Ukt({search:this.searchField.value,caseSensitive:this.caseField.checked,regexp:this.reField.checked,wholeWord:this.wordField.checked,replace:this.replaceField.value});t.eq(this.query)||(this.query=t,this.view.dispatch({effects:TM.of(t)}))}keydown(t){s9n(this.view,t,"search-panel")?t.preventDefault():t.keyCode==13&&t.target==this.searchField?(t.preventDefault(),(t.shiftKey?GB:ZB)(this.view)):t.keyCode==13&&t.target==this.replaceField&&(t.preventDefault(),d9e(this.view))}update(t){for(let n of t.transactions)for(let r of n.effects)r.is(TM)&&!r.value.eq(this.query)&&this.setQuery(r.value)}setQuery(t){this.query=t,this.searchField.value=t.search,this.replaceField.value=t.replace,this.caseField.checked=t.caseSensitive,this.reField.checked=t.regexp,this.wordField.checked=t.wholeWord}mount(){this.searchField.select()}get pos(){return 80}get top(){return this.view.state.facet(SI).top}}function cp(e,t){return e.state.phrase(t)}const pF=30,hF=/[\s\.,:;?!]/;function cOe(e,{from:t,to:n}){let r=e.state.doc.lineAt(t),s=e.state.doc.lineAt(n).to,a=Math.max(r.from,t-pF),i=Math.min(s,n+pF),l=e.state.sliceDoc(a,i);if(a!=r.from){for(let c=0;c<pF;c++)if(!hF.test(l[c+1])&&hF.test(l[c])){l=l.slice(c);break}}if(i!=s){for(let c=l.length-1;c>l.length-pF;c--)if(!hF.test(l[c-1])&&hF.test(l[c])){l=l.slice(0,c);break}}return At.announce.of(`${e.state.phrase("current match")}. ${l} ${e.state.phrase("on line")} ${r.number}.`)}const FWn=At.baseTheme({".cm-panel.cm-search":{padding:"2px 6px 4px",position:"relative","& [name=close]":{position:"absolute",top:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:0,margin:0},"& input, & button, & label":{margin:".2em .6em .2em 0"},"& input[type=checkbox]":{marginRight:".2em"},"& label":{fontSize:"80%",whiteSpace:"pre"}},"&light .cm-searchMatch":{backgroundColor:"#ffff0054"},"&dark .cm-searchMatch":{backgroundColor:"#00ffff8a"},"&light .cm-searchMatch-selected":{backgroundColor:"#ff6a0054"},"&dark .cm-searchMatch-selected":{backgroundColor:"#ff00ff8a"}}),zWn=[Jw,Jp.low(RWn),FWn];class f9e{constructor(t,n,r){this.from=t,this.to=n,this.diagnostic=r}}class Ek{constructor(t,n,r){this.diagnostics=t,this.panel=n,this.selected=r}static init(t,n,r){let s=r.facet(jM).markerFilter;s&&(t=s(t,r));let a=t.slice().sort((d,f)=>d.from-f.from||d.to-f.to),i=new Ld,l=[],c=0;for(let d=0;;){let f=d==a.length?null:a[d];if(!f&&!l.length)break;let p,h;for(l.length?(p=c,h=l.reduce((v,y)=>Math.min(v,y.to),f&&f.from>p?f.from:1e8)):(p=f.from,h=f.to,l.push(f),d++);d<a.length;){let v=a[d];if(v.from==p&&(v.to>v.from||v.to==p))l.push(v),d++,h=Math.min(v.to,h);else{h=Math.min(v.from,h);break}}let m=JWn(l);if(l.some(v=>v.from==v.to||v.from==v.to-1&&r.doc.lineAt(v.from).to==v.from))i.add(p,p,jn.widget({widget:new QWn(m),diagnostics:l.slice()}));else{let v=l.reduce((y,b)=>b.markClass?y+" "+b.markClass:y,"");i.add(p,h,jn.mark({class:"cm-lintRange cm-lintRange-"+m+v,diagnostics:l.slice(),inclusiveEnd:l.some(y=>y.to>h)}))}c=h;for(let v=0;v<l.length;v++)l[v].to<=c&&l.splice(v--,1)}let u=i.finish();return new Ek(u,n,Jj(u))}}function Jj(e,t=null,n=0){let r=null;return e.between(n,1e9,(s,a,{spec:i})=>{if(!(t&&i.diagnostics.indexOf(t)<0))if(!r)r=new f9e(s,a,t||i.diagnostics[0]);else{if(i.diagnostics.indexOf(r.diagnostic)<0)return!1;r=new f9e(r.from,a,r.diagnostic)}}),r}function BWn(e,t){let n=t.pos,r=t.end||n,s=e.state.facet(jM).hideOn(e,n,r);if(s!=null)return s;let a=e.startState.doc.lineAt(t.pos);return!!(e.effects.some(i=>i.is(Gkt))||e.changes.touchesRange(a.from,Math.max(a.to,r)))}function UWn(e,t){return e.field(jp,!1)?t:t.concat(dr.appendConfig.of(eZn))}const Gkt=dr.define(),uOe=dr.define(),Qkt=dr.define(),jp=bl.define({create(){return new Ek(jn.none,null,null)},update(e,t){if(t.docChanged&&e.diagnostics.size){let n=e.diagnostics.map(t.changes),r=null,s=e.panel;if(e.selected){let a=t.changes.mapPos(e.selected.from,1);r=Jj(n,e.selected.diagnostic,a)||Jj(n,null,a)}!n.size&&s&&t.state.facet(jM).autoPanel&&(s=null),e=new Ek(n,s,r)}for(let n of t.effects)if(n.is(Gkt)){let r=t.state.facet(jM).autoPanel?n.value.length?NM.open:null:e.panel;e=Ek.init(n.value,r,t.state)}else n.is(uOe)?e=new Ek(e.diagnostics,n.value?NM.open:null,e.selected):n.is(Qkt)&&(e=new Ek(e.diagnostics,e.panel,n.value));return e},provide:e=>[yM.from(e,t=>t.panel),At.decorations.from(e,t=>t.diagnostics)]}),qWn=jn.mark({class:"cm-lintRange cm-lintRange-active"});function VWn(e,t,n){let{diagnostics:r}=e.state.field(jp),s,a=-1,i=-1;r.between(t-(n<0?1:0),t+(n>0?1:0),(c,u,{spec:d})=>{if(t>=c&&t<=u&&(c==u||(t>c||n>0)&&(t<u||n<0)))return s=d.diagnostics,a=c,i=u,!1});let l=e.state.facet(jM).tooltipFilter;return s&&l&&(s=l(s,e.state)),s?{pos:a,end:i,above:e.state.doc.lineAt(a).to<i,create(){return{dom:HWn(e,s)}}}:null}function HWn(e,t){return ui("ul",{class:"cm-tooltip-lint"},t.map(n=>Kkt(e,n,!1)))}const WWn=e=>{let t=e.state.field(jp,!1);(!t||!t.panel)&&e.dispatch({effects:UWn(e.state,[uOe.of(!0)])});let n=Oke(e,NM.open);return n&&n.dom.querySelector(".cm-panel-lint ul").focus(),!0},p9e=e=>{let t=e.state.field(jp,!1);return!t||!t.panel?!1:(e.dispatch({effects:uOe.of(!1)}),!0)},ZWn=e=>{let t=e.state.field(jp,!1);if(!t)return!1;let n=e.state.selection.main,r=t.diagnostics.iter(n.to+1);return!r.value&&(r=t.diagnostics.iter(0),!r.value||r.from==n.from&&r.to==n.to)?!1:(e.dispatch({selection:{anchor:r.from,head:r.to},scrollIntoView:!0}),!0)},GWn=[{key:"Mod-Shift-m",run:WWn,preventDefault:!0},{key:"F8",run:ZWn}],jM=xn.define({combine(e){return{sources:e.map(t=>t.source).filter(t=>t!=null),...Fy(e.map(t=>t.config),{delay:750,markerFilter:null,tooltipFilter:null,needsRefresh:null,hideOn:()=>null},{delay:Math.max,markerFilter:h9e,tooltipFilter:h9e,needsRefresh:(t,n)=>t?n?r=>t(r)||n(r):t:n,hideOn:(t,n)=>t?n?(r,s,a)=>t(r,s,a)||n(r,s,a):t:n,autoPanel:(t,n)=>t||n})}}});function h9e(e,t){return e?t?(n,r)=>t(e(n,r),r):e:t}function Ykt(e){let t=[];if(e)e:for(let{name:n}of e){for(let r=0;r<n.length;r++){let s=n[r];if(/[a-zA-Z]/.test(s)&&!t.some(a=>a.toLowerCase()==s.toLowerCase())){t.push(s);continue e}}t.push("")}return t}function Kkt(e,t,n){var r;let s=n?Ykt(t.actions):[];return ui("li",{class:"cm-diagnostic cm-diagnostic-"+t.severity},ui("span",{class:"cm-diagnosticText"},t.renderMessage?t.renderMessage(e):t.message),(r=t.actions)===null||r===void 0?void 0:r.map((a,i)=>{let l=!1,c=h=>{if(h.preventDefault(),l)return;l=!0;let m=Jj(e.state.field(jp).diagnostics,t);m&&a.apply(e,m.from,m.to)},{name:u}=a,d=s[i]?u.indexOf(s[i]):-1,f=d<0?u:[u.slice(0,d),ui("u",u.slice(d,d+1)),u.slice(d+1)],p=a.markClass?" "+a.markClass:"";return ui("button",{type:"button",class:"cm-diagnosticAction"+p,onclick:c,onmousedown:c,"aria-label":` Action: ${u}${d<0?"":` (access key "${s[i]})"`}.`},f)}),t.source&&ui("div",{class:"cm-diagnosticSource"},t.source))}class QWn extends eh{constructor(t){super(),this.sev=t}eq(t){return t.sev==this.sev}toDOM(){return ui("span",{class:"cm-lintPoint cm-lintPoint-"+this.sev})}}class m9e{constructor(t,n){this.diagnostic=n,this.id="item_"+Math.floor(Math.random()*4294967295).toString(16),this.dom=Kkt(t,n,!0),this.dom.id=this.id,this.dom.setAttribute("role","option")}}class NM{constructor(t){this.view=t,this.items=[];let n=s=>{if(s.keyCode==27)p9e(this.view),this.view.focus();else if(s.keyCode==38||s.keyCode==33)this.moveSelection((this.selectedIndex-1+this.items.length)%this.items.length);else if(s.keyCode==40||s.keyCode==34)this.moveSelection((this.selectedIndex+1)%this.items.length);else if(s.keyCode==36)this.moveSelection(0);else if(s.keyCode==35)this.moveSelection(this.items.length-1);else if(s.keyCode==13)this.view.focus();else if(s.keyCode>=65&&s.keyCode<=90&&this.selectedIndex>=0){let{diagnostic:a}=this.items[this.selectedIndex],i=Ykt(a.actions);for(let l=0;l<i.length;l++)if(i[l].toUpperCase().charCodeAt(0)==s.keyCode){let c=Jj(this.view.state.field(jp).diagnostics,a);c&&a.actions[l].apply(t,c.from,c.to)}}else return;s.preventDefault()},r=s=>{for(let a=0;a<this.items.length;a++)this.items[a].dom.contains(s.target)&&this.moveSelection(a)};this.list=ui("ul",{tabIndex:0,role:"listbox","aria-label":this.view.state.phrase("Diagnostics"),onkeydown:n,onclick:r}),this.dom=ui("div",{class:"cm-panel-lint"},this.list,ui("button",{type:"button",name:"close","aria-label":this.view.state.phrase("close"),onclick:()=>p9e(this.view)},"×")),this.update()}get selectedIndex(){let t=this.view.state.field(jp).selected;if(!t)return-1;for(let n=0;n<this.items.length;n++)if(this.items[n].diagnostic==t.diagnostic)return n;return-1}update(){let{diagnostics:t,selected:n}=this.view.state.field(jp),r=0,s=!1,a=null,i=new Set;for(t.between(0,this.view.state.doc.length,(l,c,{spec:u})=>{for(let d of u.diagnostics){if(i.has(d))continue;i.add(d);let f=-1,p;for(let h=r;h<this.items.length;h++)if(this.items[h].diagnostic==d){f=h;break}f<0?(p=new m9e(this.view,d),this.items.splice(r,0,p),s=!0):(p=this.items[f],f>r&&(this.items.splice(r,f-r),s=!0)),n&&p.diagnostic==n.diagnostic?p.dom.hasAttribute("aria-selected")||(p.dom.setAttribute("aria-selected","true"),a=p):p.dom.hasAttribute("aria-selected")&&p.dom.removeAttribute("aria-selected"),r++}});r<this.items.length&&!(this.items.length==1&&this.items[0].diagnostic.from<0);)s=!0,this.items.pop();this.items.length==0&&(this.items.push(new m9e(this.view,{from:-1,to:-1,severity:"info",message:this.view.state.phrase("No diagnostics")})),s=!0),a?(this.list.setAttribute("aria-activedescendant",a.id),this.view.requestMeasure({key:this,read:()=>({sel:a.dom.getBoundingClientRect(),panel:this.list.getBoundingClientRect()}),write:({sel:l,panel:c})=>{let u=c.height/this.list.offsetHeight;l.top<c.top?this.list.scrollTop-=(c.top-l.top)/u:l.bottom>c.bottom&&(this.list.scrollTop+=(l.bottom-c.bottom)/u)}})):this.selectedIndex<0&&this.list.removeAttribute("aria-activedescendant"),s&&this.sync()}sync(){let t=this.list.firstChild;function n(){let r=t;t=r.nextSibling,r.remove()}for(let r of this.items)if(r.dom.parentNode==this.list){for(;t!=r.dom;)n();t=r.dom.nextSibling}else this.list.insertBefore(r.dom,t);for(;t;)n()}moveSelection(t){if(this.selectedIndex<0)return;let n=this.view.state.field(jp),r=Jj(n.diagnostics,this.items[t].diagnostic);r&&this.view.dispatch({selection:{anchor:r.from,head:r.to},scrollIntoView:!0,effects:Qkt.of(r)})}static open(t){return new NM(t)}}function YWn(e,t='viewBox="0 0 40 40"'){return`url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" ${t}>${encodeURIComponent(e)}</svg>')`}function mF(e){return YWn(`<path d="m0 2.5 l2 -1.5 l1 0 l2 1.5 l1 0" stroke="${e}" fill="none" stroke-width=".7"/>`,'width="6" height="3"')}const KWn=At.baseTheme({".cm-diagnostic":{padding:"3px 6px 3px 8px",marginLeft:"-1px",display:"block",whiteSpace:"pre-wrap"},".cm-diagnostic-error":{borderLeft:"5px solid #d11"},".cm-diagnostic-warning":{borderLeft:"5px solid orange"},".cm-diagnostic-info":{borderLeft:"5px solid #999"},".cm-diagnostic-hint":{borderLeft:"5px solid #66d"},".cm-diagnosticAction":{font:"inherit",border:"none",padding:"2px 4px",backgroundColor:"#444",color:"white",borderRadius:"3px",marginLeft:"8px",cursor:"pointer"},".cm-diagnosticSource":{fontSize:"70%",opacity:.7},".cm-lintRange":{backgroundPosition:"left bottom",backgroundRepeat:"repeat-x",paddingBottom:"0.7px"},".cm-lintRange-error":{backgroundImage:mF("#d11")},".cm-lintRange-warning":{backgroundImage:mF("orange")},".cm-lintRange-info":{backgroundImage:mF("#999")},".cm-lintRange-hint":{backgroundImage:mF("#66d")},".cm-lintRange-active":{backgroundColor:"#ffdd9980"},".cm-tooltip-lint":{padding:0,margin:0},".cm-lintPoint":{position:"relative","&:after":{content:'""',position:"absolute",bottom:0,left:"-2px",borderLeft:"3px solid transparent",borderRight:"3px solid transparent",borderBottom:"4px solid #d11"}},".cm-lintPoint-warning":{"&:after":{borderBottomColor:"orange"}},".cm-lintPoint-info":{"&:after":{borderBottomColor:"#999"}},".cm-lintPoint-hint":{"&:after":{borderBottomColor:"#66d"}},".cm-panel.cm-panel-lint":{position:"relative","& ul":{maxHeight:"100px",overflowY:"auto","& [aria-selected]":{backgroundColor:"#ddd","& u":{textDecoration:"underline"}},"&:focus [aria-selected]":{background_fallback:"#bdf",backgroundColor:"Highlight",color_fallback:"white",color:"HighlightText"},"& u":{textDecoration:"none"},padding:0,margin:0},"& [name=close]":{position:"absolute",top:"0",right:"2px",background:"inherit",border:"none",font:"inherit",padding:0,margin:0}}});function XWn(e){return e=="error"?4:e=="warning"?3:e=="info"?2:1}function JWn(e){let t="hint",n=1;for(let r of e){let s=XWn(r.severity);s>n&&(n=s,t=r.severity)}return t}const eZn=[jp,At.decorations.compute([jp],e=>{let{selected:t,panel:n}=e.field(jp);return!t||!n||t.from==t.to?jn.none:jn.set([qWn.range(t.from,t.to)])}),W9n(VWn,{hideOn:BWn}),KWn];var g9e=function(t){t===void 0&&(t={});var n=t,r=n.crosshairCursor,s=r===void 0?!1:r,a=[];t.closeBracketsKeymap!==!1&&(a=a.concat(qBn)),t.defaultKeymap!==!1&&(a=a.concat(uWn)),t.searchKeymap!==!1&&(a=a.concat(DWn)),t.historyKeymap!==!1&&(a=a.concat(vHn)),t.foldKeymap!==!1&&(a=a.concat(T7n)),t.completionKeymap!==!1&&(a=a.concat(H1t)),t.lintKeymap!==!1&&(a=a.concat(GWn));var i=[];return t.lineNumbers!==!1&&i.push(s7n()),t.highlightActiveLineGutter!==!1&&i.push(o7n()),t.highlightSpecialChars!==!1&&i.push(x9n()),t.history!==!1&&i.push(lHn()),t.foldGutter!==!1&&i.push(A7n()),t.drawSelection!==!1&&i.push(u9n()),t.dropCursor!==!1&&i.push(m9n()),t.allowMultipleSelections!==!1&&i.push(ps.allowMultipleSelections.of(!0)),t.indentOnInput!==!1&&i.push(x7n()),t.syntaxHighlighting!==!1&&i.push(rS(M7n,{fallback:!0})),t.bracketMatching!==!1&&i.push(q7n()),t.closeBrackets!==!1&&i.push(FBn()),t.autocompletion!==!1&&i.push(V1t()),t.rectangularSelection!==!1&&i.push(P9n()),s!==!1&&i.push(D9n()),t.highlightActiveLine!==!1&&i.push(C9n()),t.highlightSelectionMatches!==!1&&i.push(gWn()),t.tabSize&&typeof t.tabSize=="number"&&i.push(yI.of(" ".repeat(t.tabSize))),i.concat([vI.of(a.flat())]).filter(Boolean)};const tZn="#e5c07b",v9e="#e06c75",nZn="#56b6c2",rZn="#ffffff",H8="#abb2bf",lve="#7d8799",sZn="#61afef",aZn="#98c379",y9e="#d19a66",iZn="#c678dd",oZn="#21252b",b9e="#2c313a",x9e="#282c34",rte="#353a42",lZn="#3E4451",w9e="#528bff",cZn=At.theme({"&":{color:H8,backgroundColor:x9e},".cm-content":{caretColor:w9e},".cm-cursor, .cm-dropCursor":{borderLeftColor:w9e},"&.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection":{backgroundColor:lZn},".cm-panels":{backgroundColor:oZn,color:H8},".cm-panels.cm-panels-top":{borderBottom:"2px solid black"},".cm-panels.cm-panels-bottom":{borderTop:"2px solid black"},".cm-searchMatch":{backgroundColor:"#72a1ff59",outline:"1px solid #457dff"},".cm-searchMatch.cm-searchMatch-selected":{backgroundColor:"#6199ff2f"},".cm-activeLine":{backgroundColor:"#6699ff0b"},".cm-selectionMatch":{backgroundColor:"#aafe661a"},"&.cm-focused .cm-matchingBracket, &.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bad0f847"},".cm-gutters":{backgroundColor:x9e,color:lve,border:"none"},".cm-activeLineGutter":{backgroundColor:b9e},".cm-foldPlaceholder":{backgroundColor:"transparent",border:"none",color:"#ddd"},".cm-tooltip":{border:"none",backgroundColor:rte},".cm-tooltip .cm-tooltip-arrow:before":{borderTopColor:"transparent",borderBottomColor:"transparent"},".cm-tooltip .cm-tooltip-arrow:after":{borderTopColor:rte,borderBottomColor:rte},".cm-tooltip-autocomplete":{"& > ul > li[aria-selected]":{backgroundColor:b9e,color:H8}}},{dark:!0}),uZn=Gg.define([{tag:de.keyword,color:iZn},{tag:[de.name,de.deleted,de.character,de.propertyName,de.macroName],color:v9e},{tag:[de.function(de.variableName),de.labelName],color:sZn},{tag:[de.color,de.constant(de.name),de.standard(de.name)],color:y9e},{tag:[de.definition(de.name),de.separator],color:H8},{tag:[de.typeName,de.className,de.number,de.changed,de.annotation,de.modifier,de.self,de.namespace],color:tZn},{tag:[de.operator,de.operatorKeyword,de.url,de.escape,de.regexp,de.link,de.special(de.string)],color:nZn},{tag:[de.meta,de.comment],color:lve},{tag:de.strong,fontWeight:"bold"},{tag:de.emphasis,fontStyle:"italic"},{tag:de.strikethrough,textDecoration:"line-through"},{tag:de.link,color:lve,textDecoration:"underline"},{tag:de.heading,fontWeight:"bold",color:v9e},{tag:[de.atom,de.bool,de.special(de.variableName)],color:y9e},{tag:[de.processingInstruction,de.string,de.inserted],color:aZn},{tag:de.invalid,color:rZn}]),dZn=[cZn,rS(uZn)];var fZn=At.theme({"&":{backgroundColor:"#fff"}},{dark:!1}),pZn=function(t){t===void 0&&(t={});var n=t,r=n.indentWithTab,s=r===void 0?!0:r,a=n.editable,i=a===void 0?!0:a,l=n.readOnly,c=l===void 0?!1:l,u=n.theme,d=u===void 0?"light":u,f=n.placeholder,p=f===void 0?"":f,h=n.basicSetup,m=h===void 0?!0:h,v=[];switch(s&&v.unshift(vI.of([dWn])),m&&(typeof m=="boolean"?v.unshift(g9e()):v.unshift(g9e(m))),p&&v.unshift(N9n(p)),d){case"light":v.push(fZn);break;case"dark":v.push(dZn);break;case"none":break;default:v.push(d);break}return i===!1&&v.push(At.editable.of(!1)),c&&v.push(ps.readOnly.of(!0)),[...v]},hZn=e=>({line:e.state.doc.lineAt(e.state.selection.main.from),lineCount:e.state.doc.lines,lineBreak:e.state.lineBreak,length:e.state.doc.length,readOnly:e.state.readOnly,tabSize:e.state.tabSize,selection:e.state.selection,selectionAsSingle:e.state.selection.asSingle().main,ranges:e.state.selection.ranges,selectionCode:e.state.sliceDoc(e.state.selection.main.from,e.state.selection.main.to),selections:e.state.selection.ranges.map(t=>e.state.sliceDoc(t.from,t.to)),selectedText:e.state.selection.ranges.some(t=>!t.empty)});class mZn{constructor(t,n){this.timeLeftMS=void 0,this.timeoutMS=void 0,this.isCancelled=!1,this.isTimeExhausted=!1,this.callbacks=[],this.timeLeftMS=n,this.timeoutMS=n,this.callbacks.push(t)}tick(){if(!this.isCancelled&&!this.isTimeExhausted&&(this.timeLeftMS--,this.timeLeftMS<=0)){this.isTimeExhausted=!0;var t=this.callbacks.slice();this.callbacks.length=0,t.forEach(n=>{try{n()}catch(r){console.error("TimeoutLatch callback error:",r)}})}}cancel(){this.isCancelled=!0,this.callbacks.length=0}reset(){this.timeLeftMS=this.timeoutMS,this.isCancelled=!1,this.isTimeExhausted=!1}get isDone(){return this.isCancelled||this.isTimeExhausted}}class S9e{constructor(){this.interval=null,this.latches=new Set}add(t){this.latches.add(t),this.start()}remove(t){this.latches.delete(t),this.latches.size===0&&this.stop()}start(){this.interval===null&&(this.interval=setInterval(()=>{this.latches.forEach(t=>{t.tick(),t.isDone&&this.remove(t)})},1))}stop(){this.interval!==null&&(clearInterval(this.interval),this.interval=null)}}var ste=null,gZn=()=>typeof window>"u"?new S9e:(ste||(ste=new S9e),ste),vZn=At.theme({"& .cm-scroller":{height:"100% !important"}}),k9e=null,ate=null;function yZn(e,t,n,r,s,a){if(!e&&!t&&!n&&!r&&!s&&!a)return null;var i=JSON.stringify({height:e,minHeight:t,maxHeight:n,width:r,minWidth:s,maxWidth:a});return i===k9e||(k9e=i,ate=At.theme({"&":{height:e,minHeight:t,maxHeight:n,width:r,minWidth:s,maxWidth:a}})),ate}var O9e=Ly.define(),bZn=200,xZn=[];function wZn(e){var t=e.value,n=e.selection,r=e.onChange,s=e.onStatistics,a=e.onCreateEditor,i=e.onUpdate,l=e.extensions,c=l===void 0?xZn:l,u=e.autoFocus,d=e.theme,f=d===void 0?"light":d,p=e.height,h=p===void 0?null:p,m=e.minHeight,v=m===void 0?null:m,y=e.maxHeight,b=y===void 0?null:y,x=e.width,S=x===void 0?null:x,k=e.minWidth,_=k===void 0?null:k,C=e.maxWidth,T=C===void 0?null:C,E=e.placeholder,N=E===void 0?"":E,I=e.editable,A=I===void 0?!0:I,R=e.readOnly,L=R===void 0?!1:R,D=e.indentWithTab,F=D===void 0?!0:D,H=e.basicSetup,B=H===void 0?!0:H,z=e.root,V=e.initialState,M=g.useState(),G=M[0],U=M[1],$=g.useState(),q=$[0],Z=$[1],Y=g.useState(),ne=Y[0],J=Y[1],ee=g.useState(()=>({current:null}))[0],se=g.useState(()=>({current:null}))[0],le=yZn(h,v,b,S,_,T),X=At.updateListener.of(pe=>{if(pe.docChanged&&typeof r=="function"&&!pe.transactions.some(ve=>ve.annotation(O9e))){ee.current?ee.current.reset():(ee.current=new mZn(()=>{if(se.current){var ve=se.current;se.current=null,ve()}ee.current=null},bZn),gZn().add(ee.current));var ce=pe.state.doc,Se=ce.toString();r(Se,pe)}s&&s(hZn(pe))}),te=pZn({theme:f,editable:A,readOnly:L,placeholder:N,indentWithTab:F,basicSetup:B}),re=[X,...le?[le]:[],vZn,...te];return i&&typeof i=="function"&&re.push(At.updateListener.of(i)),re=re.concat(c),g.useLayoutEffect(()=>{if(G&&!ne){var pe={doc:t,selection:n,extensions:re},ce=V?ps.fromJSON(V.json,pe,V.fields):ps.create(pe);if(J(ce),!q){var Se=new At({state:ce,parent:G,root:z});Z(Se),a&&a(Se,ce)}}return()=>{q&&(J(void 0),Z(void 0))}},[G,ne]),g.useEffect(()=>{e.container&&U(e.container)},[e.container]),g.useEffect(()=>()=>{q&&(q.destroy(),Z(void 0)),ee.current&&(ee.current.cancel(),ee.current=null)},[q]),g.useEffect(()=>{u&&q&&q.focus()},[u,q]),g.useEffect(()=>{q&&q.dispatch({effects:dr.reconfigure.of(re)})},[f,c,h,v,b,S,_,T,N,A,L,F,B,r,i]),g.useEffect(()=>{if(t!==void 0){var pe=q?q.state.doc.toString():"";if(q&&t!==pe){var ce=ee.current&&!ee.current.isDone,Se=()=>{q&&t!==q.state.doc.toString()&&q.dispatch({changes:{from:0,to:q.state.doc.toString().length,insert:t||""},annotations:[O9e.of(!0)]})};ce?se.current=Se:Se()}}},[t,q]),{state:ne,setState:J,view:q,setView:Z,container:G,setContainer:U}}var SZn=["className","value","selection","extensions","onChange","onStatistics","onCreateEditor","onUpdate","autoFocus","theme","height","minHeight","maxHeight","width","minWidth","maxWidth","basicSetup","placeholder","indentWithTab","editable","readOnly","root","initialState"],Xu=g.forwardRef((e,t)=>{var n=e.className,r=e.value,s=r===void 0?"":r,a=e.selection,i=e.extensions,l=i===void 0?[]:i,c=e.onChange,u=e.onStatistics,d=e.onCreateEditor,f=e.onUpdate,p=e.autoFocus,h=e.theme,m=h===void 0?"light":h,v=e.height,y=e.minHeight,b=e.maxHeight,x=e.width,S=e.minWidth,k=e.maxWidth,_=e.basicSetup,C=e.placeholder,T=e.indentWithTab,E=e.editable,N=e.readOnly,I=e.root,A=e.initialState,R=akt(e,SZn),L=g.useRef(null),D=wZn({root:I,value:s,autoFocus:p,theme:m,height:v,minHeight:y,maxHeight:b,width:x,minWidth:S,maxWidth:k,basicSetup:_,placeholder:C,indentWithTab:T,editable:E,readOnly:N,selection:a,onChange:c,onStatistics:u,onCreateEditor:d,onUpdate:f,extensions:l,initialState:A}),F=D.state,H=D.view,B=D.container,z=D.setContainer;g.useImperativeHandle(t,()=>({editor:L.current,state:F,view:H}),[L,B,F,H]);var V=g.useCallback(G=>{L.current=G,z(G)},[z]);if(typeof s!="string")throw new Error("value must be typeof string but got "+typeof s);var M=typeof m=="string"?"cm-theme-"+m:"cm-theme";return o.jsx("div",YO({ref:V,className:""+M+(n?" "+n:"")},R))});Xu.displayName="CodeMirror";const kZn={js:"javascript",javascript:"javascript",mjs:"javascript",cjs:"javascript",node:"javascript",ts:"typescript",typescript:"typescript",mts:"typescript",cts:"typescript",tsx:"tsx",jsx:"jsx",json:"json",json5:"json",md:"markdown",markdown:"markdown",py:"python",python:"python",sh:"bash",bash:"bash",shell:"bash",zsh:"bash",yml:"yaml",yaml:"yaml",diff:"diff",patch:"diff",css:"css",scss:"css",html:"html",htm:"html",xml:"xml",svg:"xml",sql:"sql"};let ite=null;function OZn(){return ite||(ite=(async()=>{const[{createHighlighterCore:e},{createJavaScriptRegexEngine:t}]=await Promise.all([Ma(()=>import("./core-D4uJjOI3.js"),__vite__mapDeps([0,1,2]),import.meta.url),Ma(()=>import("./engine-javascript-CSIo_1eZ.js"),__vite__mapDeps([3,1]),import.meta.url)]);return e({themes:[Ma(()=>import("./github-light-DAi9KRSo.js"),[],import.meta.url),Ma(()=>import("./github-dark-DHJKELXO.js"),[],import.meta.url)],langs:[Ma(()=>import("./javascript-ySlJ1b_l.js"),[],import.meta.url),Ma(()=>import("./typescript-Dj6nwHGl.js"),[],import.meta.url),Ma(()=>import("./tsx-B6W0miNI.js"),[],import.meta.url),Ma(()=>import("./jsx-BAng5TT0.js"),[],import.meta.url),Ma(()=>import("./json-BQoSv7ci.js"),[],import.meta.url),Ma(()=>import("./bash-atvbtKCR.js"),[],import.meta.url),Ma(()=>import("./markdown-UIAJJxZW.js"),[],import.meta.url),Ma(()=>import("./python-DhUJRlN_.js"),[],import.meta.url),Ma(()=>import("./yaml-CVw76BM1.js"),[],import.meta.url),Ma(()=>import("./diff-BgYniUM_.js"),[],import.meta.url),Ma(()=>import("./css-BPhBrDlE.js"),[],import.meta.url),Ma(()=>import("./html-C2L_23MC.js"),__vite__mapDeps([4,5,6]),import.meta.url),Ma(()=>import("./xml-DGRTSKzu.js"),[],import.meta.url),Ma(()=>import("./sql-COK4E0Yg.js"),[],import.meta.url)],engine:t()})})()),ite}async function _Zn(e,t){const n=kZn[t?.toLowerCase()];if(!n)return null;const r=await OZn(),{tokens:s}=r.codeToTokens(e,{lang:n,defaultColor:!1,themes:{light:"github-light",dark:"github-dark"}});return s}function CZn(e){return new WO(jke.define(e))}const Xkt=[ug.of({name:"JavaScript",alias:["ecmascript","js","node"],extensions:["js","mjs","cjs"],load(){return Ma(()=>Promise.resolve().then(()=>dF),void 0,import.meta.url).then(e=>e.javascript())}}),ug.of({name:"JSON",alias:["json5"],extensions:["json","map"],load(){return Ma(()=>Promise.resolve().then(()=>tBn),void 0,import.meta.url).then(e=>e.json())}}),ug.of({name:"JSX",extensions:["jsx"],load(){return Ma(()=>Promise.resolve().then(()=>dF),void 0,import.meta.url).then(e=>e.javascript({jsx:!0}))}}),ug.of({name:"Markdown",extensions:["md","markdown","mkd"],load(){return Ma(()=>Promise.resolve().then(()=>QVn),void 0,import.meta.url).then(e=>e.markdown())}}),ug.of({name:"TSX",extensions:["tsx"],load(){return Ma(()=>Promise.resolve().then(()=>dF),void 0,import.meta.url).then(e=>e.javascript({jsx:!0,typescript:!0}))}}),ug.of({name:"TypeScript",alias:["ts"],extensions:["ts","mts","cts"],load(){return Ma(()=>Promise.resolve().then(()=>dF),void 0,import.meta.url).then(e=>e.javascript({typescript:!0}))}}),ug.of({name:"Shell",alias:["bash","sh","zsh"],extensions:["sh","ksh","bash"],filename:/^PKGBUILD$/,load(){return Ma(()=>import("./shell-CjFT_Tl9.js"),[],import.meta.url).then(e=>CZn(e.shell))}})];function EZn(e,t=5){if(!e?.properties)return[];const n=[];function r(s,a,i){if(i>t)return;const l=Array.isArray(s.type)?s.type.join(" | "):s.type;if(n.push({path:a,label:a,description:s.description??s.title,type:l}),s.properties)for(const[c,u]of Object.entries(s.properties))r(u,`${a}.${c}`,i+1);if(s.items?.properties)for(const[c,u]of Object.entries(s.items.properties))r(u,`${a}[].${c}`,i+1)}for(const[s,a]of Object.entries(e.properties))r(a,s,1);return n}function TZn(e){const t=EZn(e);return V1t({override:[jZn(t)],defaultKeymap:!0,closeOnBlur:!0,icons:!1})}function jZn(e){return t=>{const r=t.state.sliceDoc(Math.max(0,t.pos-50),t.pos).match(/\{\{([a-zA-Z0-9_.\[\]]*)?$/);if(!r)return null;const s=r[1]??"",a=t.pos-s.length,i=s?e.filter(c=>c.path.toLowerCase().startsWith(s.toLowerCase())):e;if(i.length===0)return null;const l=i.map(c=>({label:c.path,displayLabel:c.path,detail:c.type,info:c.description,apply:(u,d,f,p)=>{const v=u.state.sliceDoc(p,p+2)==="}}"?d.label:`${d.label}}}`;u.dispatch({changes:{from:f,to:p,insert:v},selection:{anchor:f+v.length}})}}));return{from:a,options:l,validFor:/^[a-zA-Z0-9_.\[\]]*$/}}}const NZn=/\{\{([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)*)\}\}/g,IZn=jn.mark({class:"cm-variable-highlight"}),_9e=new s1t({regexp:NZn,decoration:()=>IZn}),AZn=ko.fromClass(class{decorations;constructor(e){this.decorations=_9e.createDeco(e)}update(e){this.decorations=_9e.updateDeco(e,this.decorations)}},{decorations:e=>e.decorations}),RZn=AZn;function PZn(){const e=xI({settings:{fontFamily:"var(--font-mono)",fontSize:"0.8rem",lineHighlight:"transparent",gutterBackground:"transparent",gutterForeground:"var(--neutral2)",background:"transparent",foreground:"var(--neutral6)",caret:"var(--neutral6)"},styles:[{tag:[de.className,de.propertyName],color:"var(--neutral6)"},{tag:de.heading,color:"var(--accent3)",fontWeight:"bold"},{tag:[de.heading1,de.heading2,de.heading3,de.heading4,de.heading5,de.heading6],color:"var(--accent3)",fontWeight:"bold"},{tag:de.emphasis,fontStyle:"italic",color:"var(--neutral6)"},{tag:de.strong,fontWeight:"bold",color:"var(--neutral6)"},{tag:de.link,color:"var(--accent3)",textDecoration:"underline"},{tag:de.url,color:"var(--accent3)"},{tag:de.monospace,color:"var(--neutral6)"},{tag:de.strikethrough,textDecoration:"line-through"},{tag:de.quote,fontStyle:"italic",color:"var(--neutral2)"}]}),t=At.theme({".cm-editor":{backgroundColor:"transparent"},".cm-content":{color:"var(--neutral6)",caretColor:"var(--neutral6)"},".cm-lineNumbers .cm-gutterElement":{color:"var(--neutral2)"},".cm-activeLineGutter":{color:"var(--neutral3)"},".cm-cursor":{borderLeftColor:"var(--neutral6)"},".cm-selectionBackground, .cm-content ::selection":{backgroundColor:"color-mix(in srgb, var(--accent3) 22%, transparent)"},".cm-tooltip-autocomplete":{backgroundColor:"var(--surface2)",border:"1px solid var(--border1)",borderRadius:"6px",boxShadow:"0 8px 16px rgba(0, 0, 0, 0.2)"},".cm-tooltip-autocomplete > ul":{fontFamily:"var(--font-mono)"},".cm-completionLabel":{color:"var(--neutral6)"},".cm-completionDetail":{color:"var(--neutral3)",fontSize:"0.7rem",marginLeft:"auto",paddingLeft:"12px"},".cm-completionInfo":{backgroundColor:"var(--surface2)",border:"1px solid var(--border1)",color:"var(--neutral3)",padding:"8px 12px"},".cm-completionIcon":{display:"none"},"ul.cm-completionList li[aria-selected]":{backgroundColor:"var(--surface4)",color:"var(--neutral6)"},".cm-line .cm-variable-highlight":{color:"var(--accent6) !important",fontWeight:"500"}});return[e,t]}function $Zn(){const e=At.theme({"&":{backgroundColor:"transparent",color:"var(--neutral6)",fontSize:"0.8rem"},"&.cm-editor .cm-scroller":{fontFamily:"var(--font-mono)"},".cm-gutters":{backgroundColor:"transparent",color:"var(--neutral2)",borderRight:"none"},".cm-content":{color:"var(--neutral6)",caretColor:"var(--neutral6)"},".cm-activeLine":{backgroundColor:"transparent"},".cm-lineNumbers .cm-gutterElement":{color:"var(--neutral2)"},".cm-activeLineGutter":{backgroundColor:"transparent",color:"var(--neutral3)"},".cm-cursor, .cm-dropCursor":{borderLeftColor:"var(--neutral6)"},"&.cm-focused .cm-selectionBackground, & .cm-line::selection, & .cm-selectionLayer .cm-selectionBackground, .cm-content ::selection":{background:"color-mix(in srgb, var(--accent3) 22%, transparent) !important"},".cm-tooltip-autocomplete":{backgroundColor:"var(--surface2)",border:"1px solid var(--border1)",borderRadius:"6px",boxShadow:"0 8px 16px rgba(0, 0, 0, 0.2)"},".cm-tooltip-autocomplete > ul":{fontFamily:"var(--font-mono)"},".cm-completionLabel":{color:"var(--neutral6)"},".cm-completionDetail":{color:"var(--neutral3)",fontSize:"0.7rem",marginLeft:"auto",paddingLeft:"12px"},".cm-completionInfo":{backgroundColor:"var(--surface2)",border:"1px solid var(--border1)",color:"var(--neutral3)",padding:"8px 12px"},".cm-completionIcon":{display:"none"},"ul.cm-completionList li[aria-selected]":{backgroundColor:"var(--surface4)",color:"var(--neutral6)"},".cm-line .cm-variable-highlight":{color:"var(--accent6) !important",fontWeight:"500"}}),t=Gg.define([{tag:[de.comment,de.bracket],color:"var(--neutral2)"},{tag:[de.string,de.meta,de.regexp],color:"var(--accent1)"},{tag:[de.atom,de.bool,de.special(de.variableName)],color:"var(--accent6)"},{tag:[de.keyword,de.operator,de.tagName],color:"var(--accent2)"},{tag:[de.function(de.propertyName),de.propertyName],color:"var(--accent5)"},{tag:[de.definition(de.variableName),de.function(de.variableName),de.className,de.attributeName],color:"var(--accent3)"},{tag:[de.variableName,de.number],color:"var(--accent5)"},{tag:[de.name,de.quote],color:"var(--accent1)"},{tag:de.heading,color:"var(--accent3)",fontWeight:"bold"},{tag:[de.heading1,de.heading2,de.heading3,de.heading4,de.heading5,de.heading6],color:"var(--accent3)",fontWeight:"bold"},{tag:[de.emphasis],fontStyle:"italic",color:"var(--neutral6)"},{tag:[de.strong],fontWeight:"bold",color:"var(--neutral6)"},{tag:de.link,color:"var(--accent3)",textDecoration:"underline"},{tag:de.url,color:"var(--accent3)"},{tag:de.monospace,color:"var(--neutral6)"},{tag:de.strikethrough,textDecoration:"line-through"},{tag:[de.deleted],color:"var(--accent2)"},{tag:de.invalid,color:"var(--error)"},{tag:[de.standard(de.tagName)],color:"var(--accent1)"}]);return[e,rS(t)]}const l0=()=>{const e=K_().resolvedTheme==="dark";return g.useMemo(()=>e?PZn():$Zn(),[e])},MZn=qa(K("relative overflow-hidden font-mono outline-hidden focus-within:outline-hidden focus:outline-hidden","duration-normal transition-colors ease-out-custom"),{variants:{variant:{default:"rounded-md border border-border1 bg-surface3 p-1 focus-within:border-neutral6/20",embedded:"rounded-none border-none bg-transparent p-0"}},defaultVariants:{variant:"default"}}),DZn=Jp.highest(At.editorAttributes.of({style:"outline: none"})),LZn=Jp.highest(At.theme({"&":{outline:"none"},"&.cm-focused":{outline:"none"},".cm-scroller":{outline:"none"},".cm-content":{outline:"none"},".cm-content:focus":{outline:"none"}})),FZn=[DZn,LZn],Zr=g.forwardRef(({data:e,value:t,onChange:n,showCopyButton:r=!0,className:s,language:a="json",highlightVariables:i=!1,placeholder:l,schema:c,autoFocus:u,lineNumbers:d=!0,lineWrapping:f=!0,editable:p,variant:h,...m},v)=>{const y=l0(),b=e?JSON.stringify(e,null,2):t??"",x=g.useMemo(()=>{const S=[...FZn];return f&&S.push(At.lineWrapping),a==="json"?S.push(Mp):a==="markdown"&&S.push(nOe({base:QO,codeLanguages:Xkt})),i&&a==="markdown"&&S.push(RZn),c&&a==="markdown"&&S.push(TZn(c)),p===!1&&S.push(ps.readOnly.of(!0)),S},[a,i,c,p,f]);return o.jsxs("div",{className:K(MZn({variant:h}),s),...m,children:[r&&o.jsx(Sa,{content:b,className:"absolute top-2 right-2 z-20"}),o.jsx(Xu,{ref:v,value:b,theme:y,extensions:x,onChange:n,editable:p,"aria-label":"Code editor",placeholder:l,height:"100%",style:{height:"100%"},autoFocus:u,basicSetup:{lineNumbers:d}})]})}),zZn=e=>{try{return JSON.stringify(e??{},null,2)}catch{return"{}"}},BZn=({editorClassName:e="h-[240px] max-h-[40vh]",onSaved:t})=>{const n=l0(),{settings:r,setSettings:s}=MH(),a=r?.tracingOptions,i=g.useMemo(()=>zZn(a),[a]),[l,c]=g.useState(()=>i),u=g.useRef(!1);g.useEffect(()=>{u.current||c(i)},[i]);const d=p=>{u.current=!0,c(p)},f=()=>{if(!l){s({...r,tracingOptions:void 0}),t?.();return}try{const p=JSON.parse(l);typeof p=="object"&&p!==null&&s({...r,tracingOptions:p})}catch{return}t?.()};return o.jsxs("div",{className:"space-y-2 px-5 py-2",children:[o.jsx(ge,{as:"h3",variant:"ui-md",className:"text-neutral3",children:"Tracing Options"}),o.jsx(Xu,{value:l,onChange:d,theme:n,extensions:[Mp],className:K("overflow-y-scroll bg-surface3 rounded-lg overflow-hidden p-3",e)}),o.jsx("div",{className:"flex items-center justify-end",children:o.jsx(oe,{type:"button",onClick:f,children:"Save"})})]})},UZn=()=>{const[e,t]=g.useState(!1);return o.jsxs(o.Fragment,{children:[o.jsxs(En,{children:[o.jsx(kn,{asChild:!0,children:o.jsx(oe,{type:"button",variant:"ghost",size:"icon-md","aria-label":"Run Options",onClick:()=>t(!0),children:o.jsx(Ve,{children:o.jsx(kV,{})})})}),o.jsx(On,{children:"Run Options"})]}),o.jsx(gr,{open:e,onOpenChange:t,children:o.jsxs(vr,{children:[o.jsxs(yr,{children:[o.jsx(pr,{children:"Run Options"}),o.jsx(Ns,{children:"Configure tracing and debug options for this workflow run"})]}),o.jsx($r,{children:o.jsx(BZn,{onSaved:()=>t(!1)})})]})})]})};function qZn({status:e}){switch(e){case"running":return o.jsx(qt,{});case"failed":return o.jsx(Ps,{className:"text-accent2"});case"canceled":return o.jsx(Df,{className:"text-neutral3"});case"pending":case"waiting":return o.jsx(bO,{className:"text-neutral3"});case"suspended":return o.jsx(mV,{className:"text-accent3"});case"success":return o.jsx(ia,{className:"text-accent1"});default:return o.jsx(bO,{className:"text-neutral3"})}}function Jkt({status:e}){return o.jsxs(En,{children:[o.jsx(kn,{asChild:!0,children:o.jsx(Ve,{"aria-label":e,className:"shrink-0",children:o.jsx(qZn,{status:e})})}),o.jsx(On,{children:e})]})}var ote,C9e;function dOe(){if(C9e)return ote;C9e=1;var e="\0",t="\0",n="";class r{_isDirected=!0;_isMultigraph=!1;_isCompound=!1;_label;_defaultNodeLabelFn=()=>{};_defaultEdgeLabelFn=()=>{};_nodes={};_in={};_preds={};_out={};_sucs={};_edgeObjs={};_edgeLabels={};_nodeCount=0;_edgeCount=0;_parent;_children;constructor(d){d&&(this._isDirected=Object.hasOwn(d,"directed")?d.directed:!0,this._isMultigraph=Object.hasOwn(d,"multigraph")?d.multigraph:!1,this._isCompound=Object.hasOwn(d,"compound")?d.compound:!1),this._isCompound&&(this._parent={},this._children={},this._children[t]={})}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(d){return this._label=d,this}graph(){return this._label}setDefaultNodeLabel(d){return this._defaultNodeLabelFn=d,typeof d!="function"&&(this._defaultNodeLabelFn=()=>d),this}nodeCount(){return this._nodeCount}nodes(){return Object.keys(this._nodes)}sources(){var d=this;return this.nodes().filter(f=>Object.keys(d._in[f]).length===0)}sinks(){var d=this;return this.nodes().filter(f=>Object.keys(d._out[f]).length===0)}setNodes(d,f){var p=arguments,h=this;return d.forEach(function(m){p.length>1?h.setNode(m,f):h.setNode(m)}),this}setNode(d,f){return Object.hasOwn(this._nodes,d)?(arguments.length>1&&(this._nodes[d]=f),this):(this._nodes[d]=arguments.length>1?f:this._defaultNodeLabelFn(d),this._isCompound&&(this._parent[d]=t,this._children[d]={},this._children[t][d]=!0),this._in[d]={},this._preds[d]={},this._out[d]={},this._sucs[d]={},++this._nodeCount,this)}node(d){return this._nodes[d]}hasNode(d){return Object.hasOwn(this._nodes,d)}removeNode(d){var f=this;if(Object.hasOwn(this._nodes,d)){var p=h=>f.removeEdge(f._edgeObjs[h]);delete this._nodes[d],this._isCompound&&(this._removeFromParentsChildList(d),delete this._parent[d],this.children(d).forEach(function(h){f.setParent(h)}),delete this._children[d]),Object.keys(this._in[d]).forEach(p),delete this._in[d],delete this._preds[d],Object.keys(this._out[d]).forEach(p),delete this._out[d],delete this._sucs[d],--this._nodeCount}return this}setParent(d,f){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(f===void 0)f=t;else{f+="";for(var p=f;p!==void 0;p=this.parent(p))if(p===d)throw new Error("Setting "+f+" as parent of "+d+" would create a cycle");this.setNode(f)}return this.setNode(d),this._removeFromParentsChildList(d),this._parent[d]=f,this._children[f][d]=!0,this}_removeFromParentsChildList(d){delete this._children[this._parent[d]][d]}parent(d){if(this._isCompound){var f=this._parent[d];if(f!==t)return f}}children(d=t){if(this._isCompound){var f=this._children[d];if(f)return Object.keys(f)}else{if(d===t)return this.nodes();if(this.hasNode(d))return[]}}predecessors(d){var f=this._preds[d];if(f)return Object.keys(f)}successors(d){var f=this._sucs[d];if(f)return Object.keys(f)}neighbors(d){var f=this.predecessors(d);if(f){const h=new Set(f);for(var p of this.successors(d))h.add(p);return Array.from(h.values())}}isLeaf(d){var f;return this.isDirected()?f=this.successors(d):f=this.neighbors(d),f.length===0}filterNodes(d){var f=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});f.setGraph(this.graph());var p=this;Object.entries(this._nodes).forEach(function([v,y]){d(v)&&f.setNode(v,y)}),Object.values(this._edgeObjs).forEach(function(v){f.hasNode(v.v)&&f.hasNode(v.w)&&f.setEdge(v,p.edge(v))});var h={};function m(v){var y=p.parent(v);return y===void 0||f.hasNode(y)?(h[v]=y,y):y in h?h[y]:m(y)}return this._isCompound&&f.nodes().forEach(v=>f.setParent(v,m(v))),f}setDefaultEdgeLabel(d){return this._defaultEdgeLabelFn=d,typeof d!="function"&&(this._defaultEdgeLabelFn=()=>d),this}edgeCount(){return this._edgeCount}edges(){return Object.values(this._edgeObjs)}setPath(d,f){var p=this,h=arguments;return d.reduce(function(m,v){return h.length>1?p.setEdge(m,v,f):p.setEdge(m,v),v}),this}setEdge(){var d,f,p,h,m=!1,v=arguments[0];typeof v=="object"&&v!==null&&"v"in v?(d=v.v,f=v.w,p=v.name,arguments.length===2&&(h=arguments[1],m=!0)):(d=v,f=arguments[1],p=arguments[3],arguments.length>2&&(h=arguments[2],m=!0)),d=""+d,f=""+f,p!==void 0&&(p=""+p);var y=i(this._isDirected,d,f,p);if(Object.hasOwn(this._edgeLabels,y))return m&&(this._edgeLabels[y]=h),this;if(p!==void 0&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(d),this.setNode(f),this._edgeLabels[y]=m?h:this._defaultEdgeLabelFn(d,f,p);var b=l(this._isDirected,d,f,p);return d=b.v,f=b.w,Object.freeze(b),this._edgeObjs[y]=b,s(this._preds[f],d),s(this._sucs[d],f),this._in[f][y]=b,this._out[d][y]=b,this._edgeCount++,this}edge(d,f,p){var h=arguments.length===1?c(this._isDirected,arguments[0]):i(this._isDirected,d,f,p);return this._edgeLabels[h]}edgeAsObj(){const d=this.edge(...arguments);return typeof d!="object"?{label:d}:d}hasEdge(d,f,p){var h=arguments.length===1?c(this._isDirected,arguments[0]):i(this._isDirected,d,f,p);return Object.hasOwn(this._edgeLabels,h)}removeEdge(d,f,p){var h=arguments.length===1?c(this._isDirected,arguments[0]):i(this._isDirected,d,f,p),m=this._edgeObjs[h];return m&&(d=m.v,f=m.w,delete this._edgeLabels[h],delete this._edgeObjs[h],a(this._preds[f],d),a(this._sucs[d],f),delete this._in[f][h],delete this._out[d][h],this._edgeCount--),this}inEdges(d,f){var p=this._in[d];if(p){var h=Object.values(p);return f?h.filter(m=>m.v===f):h}}outEdges(d,f){var p=this._out[d];if(p){var h=Object.values(p);return f?h.filter(m=>m.w===f):h}}nodeEdges(d,f){var p=this.inEdges(d,f);if(p)return p.concat(this.outEdges(d,f))}}function s(u,d){u[d]?u[d]++:u[d]=1}function a(u,d){--u[d]||delete u[d]}function i(u,d,f,p){var h=""+d,m=""+f;if(!u&&h>m){var v=h;h=m,m=v}return h+n+m+n+(p===void 0?e:p)}function l(u,d,f,p){var h=""+d,m=""+f;if(!u&&h>m){var v=h;h=m,m=v}var y={v:h,w:m};return p&&(y.name=p),y}function c(u,d){return i(u,d.v,d.w,d.name)}return ote=r,ote}var lte,E9e;function VZn(){return E9e||(E9e=1,lte="2.2.4"),lte}var cte,T9e;function HZn(){return T9e||(T9e=1,cte={Graph:dOe(),version:VZn()}),cte}var ute,j9e;function WZn(){if(j9e)return ute;j9e=1;var e=dOe();ute={write:t,read:s};function t(a){var i={options:{directed:a.isDirected(),multigraph:a.isMultigraph(),compound:a.isCompound()},nodes:n(a),edges:r(a)};return a.graph()!==void 0&&(i.value=structuredClone(a.graph())),i}function n(a){return a.nodes().map(function(i){var l=a.node(i),c=a.parent(i),u={v:i};return l!==void 0&&(u.value=l),c!==void 0&&(u.parent=c),u})}function r(a){return a.edges().map(function(i){var l=a.edge(i),c={v:i.v,w:i.w};return i.name!==void 0&&(c.name=i.name),l!==void 0&&(c.value=l),c})}function s(a){var i=new e(a.options).setGraph(a.value);return a.nodes.forEach(function(l){i.setNode(l.v,l.value),l.parent&&i.setParent(l.v,l.parent)}),a.edges.forEach(function(l){i.setEdge({v:l.v,w:l.w,name:l.name},l.value)}),i}return ute}var dte,N9e;function ZZn(){if(N9e)return dte;N9e=1,dte=e;function e(t){var n={},r=[],s;function a(i){Object.hasOwn(n,i)||(n[i]=!0,s.push(i),t.successors(i).forEach(a),t.predecessors(i).forEach(a))}return t.nodes().forEach(function(i){s=[],a(i),s.length&&r.push(s)}),r}return dte}var fte,I9e;function eOt(){if(I9e)return fte;I9e=1;class e{_arr=[];_keyIndices={};size(){return this._arr.length}keys(){return this._arr.map(function(n){return n.key})}has(n){return Object.hasOwn(this._keyIndices,n)}priority(n){var r=this._keyIndices[n];if(r!==void 0)return this._arr[r].priority}min(){if(this.size()===0)throw new Error("Queue underflow");return this._arr[0].key}add(n,r){var s=this._keyIndices;if(n=String(n),!Object.hasOwn(s,n)){var a=this._arr,i=a.length;return s[n]=i,a.push({key:n,priority:r}),this._decrease(i),!0}return!1}removeMin(){this._swap(0,this._arr.length-1);var n=this._arr.pop();return delete this._keyIndices[n.key],this._heapify(0),n.key}decrease(n,r){var s=this._keyIndices[n];if(r>this._arr[s].priority)throw new Error("New priority is greater than current priority. Key: "+n+" Old: "+this._arr[s].priority+" New: "+r);this._arr[s].priority=r,this._decrease(s)}_heapify(n){var r=this._arr,s=2*n,a=s+1,i=n;s<r.length&&(i=r[s].priority<r[i].priority?s:i,a<r.length&&(i=r[a].priority<r[i].priority?a:i),i!==n&&(this._swap(n,i),this._heapify(i)))}_decrease(n){for(var r=this._arr,s=r[n].priority,a;n!==0&&(a=n>>1,!(r[a].priority<s));)this._swap(n,a),n=a}_swap(n,r){var s=this._arr,a=this._keyIndices,i=s[n],l=s[r];s[n]=l,s[r]=i,a[l.key]=n,a[i.key]=r}}return fte=e,fte}var pte,A9e;function tOt(){if(A9e)return pte;A9e=1;var e=eOt();pte=n;var t=()=>1;function n(s,a,i,l){return r(s,String(a),i||t,l||function(c){return s.outEdges(c)})}function r(s,a,i,l){var c={},u=new e,d,f,p=function(h){var m=h.v!==d?h.v:h.w,v=c[m],y=i(h),b=f.distance+y;if(y<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+h+" Weight: "+y);b<v.distance&&(v.distance=b,v.predecessor=d,u.decrease(m,b))};for(s.nodes().forEach(function(h){var m=h===a?0:Number.POSITIVE_INFINITY;c[h]={distance:m},u.add(h,m)});u.size()>0&&(d=u.removeMin(),f=c[d],f.distance!==Number.POSITIVE_INFINITY);)l(d).forEach(p);return c}return pte}var hte,R9e;function GZn(){if(R9e)return hte;R9e=1;var e=tOt();hte=t;function t(n,r,s){return n.nodes().reduce(function(a,i){return a[i]=e(n,i,r,s),a},{})}return hte}var mte,P9e;function nOt(){if(P9e)return mte;P9e=1,mte=e;function e(t){var n=0,r=[],s={},a=[];function i(l){var c=s[l]={onStack:!0,lowlink:n,index:n++};if(r.push(l),t.successors(l).forEach(function(f){Object.hasOwn(s,f)?s[f].onStack&&(c.lowlink=Math.min(c.lowlink,s[f].index)):(i(f),c.lowlink=Math.min(c.lowlink,s[f].lowlink))}),c.lowlink===c.index){var u=[],d;do d=r.pop(),s[d].onStack=!1,u.push(d);while(l!==d);a.push(u)}}return t.nodes().forEach(function(l){Object.hasOwn(s,l)||i(l)}),a}return mte}var gte,$9e;function QZn(){if($9e)return gte;$9e=1;var e=nOt();gte=t;function t(n){return e(n).filter(function(r){return r.length>1||r.length===1&&n.hasEdge(r[0],r[0])})}return gte}var vte,M9e;function YZn(){if(M9e)return vte;M9e=1,vte=t;var e=()=>1;function t(r,s,a){return n(r,s||e,a||function(i){return r.outEdges(i)})}function n(r,s,a){var i={},l=r.nodes();return l.forEach(function(c){i[c]={},i[c][c]={distance:0},l.forEach(function(u){c!==u&&(i[c][u]={distance:Number.POSITIVE_INFINITY})}),a(c).forEach(function(u){var d=u.v===c?u.w:u.v,f=s(u);i[c][d]={distance:f,predecessor:c}})}),l.forEach(function(c){var u=i[c];l.forEach(function(d){var f=i[d];l.forEach(function(p){var h=f[c],m=u[p],v=f[p],y=h.distance+m.distance;y<v.distance&&(v.distance=y,v.predecessor=m.predecessor)})})}),i}return vte}var yte,D9e;function rOt(){if(D9e)return yte;D9e=1;function e(n){var r={},s={},a=[];function i(l){if(Object.hasOwn(s,l))throw new t;Object.hasOwn(r,l)||(s[l]=!0,r[l]=!0,n.predecessors(l).forEach(i),delete s[l],a.push(l))}if(n.sinks().forEach(i),Object.keys(r).length!==n.nodeCount())throw new t;return a}class t extends Error{constructor(){super(...arguments)}}return yte=e,e.CycleException=t,yte}var bte,L9e;function KZn(){if(L9e)return bte;L9e=1;var e=rOt();bte=t;function t(n){try{e(n)}catch(r){if(r instanceof e.CycleException)return!1;throw r}return!0}return bte}var xte,F9e;function sOt(){if(F9e)return xte;F9e=1,xte=e;function e(s,a,i){Array.isArray(a)||(a=[a]);var l=s.isDirected()?f=>s.successors(f):f=>s.neighbors(f),c=i==="post"?t:n,u=[],d={};return a.forEach(f=>{if(!s.hasNode(f))throw new Error("Graph does not have node: "+f);c(f,l,d,u)}),u}function t(s,a,i,l){for(var c=[[s,!1]];c.length>0;){var u=c.pop();u[1]?l.push(u[0]):Object.hasOwn(i,u[0])||(i[u[0]]=!0,c.push([u[0],!0]),r(a(u[0]),d=>c.push([d,!1])))}}function n(s,a,i,l){for(var c=[s];c.length>0;){var u=c.pop();Object.hasOwn(i,u)||(i[u]=!0,l.push(u),r(a(u),d=>c.push(d)))}}function r(s,a){for(var i=s.length;i--;)a(s[i],i,s);return s}return xte}var wte,z9e;function XZn(){if(z9e)return wte;z9e=1;var e=sOt();wte=t;function t(n,r){return e(n,r,"post")}return wte}var Ste,B9e;function JZn(){if(B9e)return Ste;B9e=1;var e=sOt();Ste=t;function t(n,r){return e(n,r,"pre")}return Ste}var kte,U9e;function eGn(){if(U9e)return kte;U9e=1;var e=dOe(),t=eOt();kte=n;function n(r,s){var a=new e,i={},l=new t,c;function u(f){var p=f.v===c?f.w:f.v,h=l.priority(p);if(h!==void 0){var m=s(f);m<h&&(i[p]=c,l.decrease(p,m))}}if(r.nodeCount()===0)return a;r.nodes().forEach(function(f){l.add(f,Number.POSITIVE_INFINITY),a.setNode(f)}),l.decrease(r.nodes()[0],0);for(var d=!1;l.size()>0;){if(c=l.removeMin(),Object.hasOwn(i,c))a.setEdge(c,i[c]);else{if(d)throw new Error("Input graph is not connected: "+r);d=!0}r.nodeEdges(c).forEach(u)}return a}return kte}var Ote,q9e;function tGn(){return q9e||(q9e=1,Ote={components:ZZn(),dijkstra:tOt(),dijkstraAll:GZn(),findCycles:QZn(),floydWarshall:YZn(),isAcyclic:KZn(),postorder:XZn(),preorder:JZn(),prim:eGn(),tarjan:nOt(),topsort:rOt()}),Ote}var _te,V9e;function Ug(){if(V9e)return _te;V9e=1;var e=HZn();return _te={Graph:e.Graph,json:WZn(),alg:tGn(),version:e.version},_te}var Cte,H9e;function nGn(){if(H9e)return Cte;H9e=1;class e{constructor(){let s={};s._next=s._prev=s,this._sentinel=s}dequeue(){let s=this._sentinel,a=s._prev;if(a!==s)return t(a),a}enqueue(s){let a=this._sentinel;s._prev&&s._next&&t(s),s._next=a._next,a._next._prev=s,a._next=s,s._prev=a}toString(){let s=[],a=this._sentinel,i=a._prev;for(;i!==a;)s.push(JSON.stringify(i,n)),i=i._prev;return"["+s.join(", ")+"]"}}function t(r){r._prev._next=r._next,r._next._prev=r._prev,delete r._next,delete r._prev}function n(r,s){if(r!=="_next"&&r!=="_prev")return s}return Cte=e,Cte}var Ete,W9e;function rGn(){if(W9e)return Ete;W9e=1;let e=Ug().Graph,t=nGn();Ete=r;let n=()=>1;function r(u,d){if(u.nodeCount()<=1)return[];let f=i(u,d||n);return s(f.graph,f.buckets,f.zeroIdx).flatMap(h=>u.outEdges(h.v,h.w))}function s(u,d,f){let p=[],h=d[d.length-1],m=d[0],v;for(;u.nodeCount();){for(;v=m.dequeue();)a(u,d,f,v);for(;v=h.dequeue();)a(u,d,f,v);if(u.nodeCount()){for(let y=d.length-2;y>0;--y)if(v=d[y].dequeue(),v){p=p.concat(a(u,d,f,v,!0));break}}}return p}function a(u,d,f,p,h){let m=h?[]:void 0;return u.inEdges(p.v).forEach(v=>{let y=u.edge(v),b=u.node(v.v);h&&m.push({v:v.v,w:v.w}),b.out-=y,l(d,f,b)}),u.outEdges(p.v).forEach(v=>{let y=u.edge(v),b=v.w,x=u.node(b);x.in-=y,l(d,f,x)}),u.removeNode(p.v),m}function i(u,d){let f=new e,p=0,h=0;u.nodes().forEach(y=>{f.setNode(y,{v:y,in:0,out:0})}),u.edges().forEach(y=>{let b=f.edge(y.v,y.w)||0,x=d(y),S=b+x;f.setEdge(y.v,y.w,S),h=Math.max(h,f.node(y.v).out+=x),p=Math.max(p,f.node(y.w).in+=x)});let m=c(h+p+3).map(()=>new t),v=p+1;return f.nodes().forEach(y=>{l(m,v,f.node(y))}),{graph:f,buckets:m,zeroIdx:v}}function l(u,d,f){f.out?f.in?u[f.out-f.in+d].enqueue(f):u[u.length-1].enqueue(f):u[0].enqueue(f)}function c(u){const d=[];for(let f=0;f<u;f++)d.push(f);return d}return Ete}var Tte,Z9e;function Pl(){if(Z9e)return Tte;Z9e=1;let e=Ug().Graph;Tte={addBorderNode:d,addDummyNode:t,applyWithChunking:h,asNonCompoundGraph:r,buildLayerMatrix:l,intersectRect:i,mapValues:C,maxRank:m,normalizeRanks:c,notime:b,partition:v,pick:_,predecessorWeights:a,range:k,removeEmptyRanks:u,simplify:n,successorWeights:s,time:y,uniqueId:S,zipObject:T};function t(E,N,I,A){for(var R=A;E.hasNode(R);)R=S(A);return I.dummy=N,E.setNode(R,I),R}function n(E){let N=new e().setGraph(E.graph());return E.nodes().forEach(I=>N.setNode(I,E.node(I))),E.edges().forEach(I=>{let A=N.edge(I.v,I.w)||{weight:0,minlen:1},R=E.edge(I);N.setEdge(I.v,I.w,{weight:A.weight+R.weight,minlen:Math.max(A.minlen,R.minlen)})}),N}function r(E){let N=new e({multigraph:E.isMultigraph()}).setGraph(E.graph());return E.nodes().forEach(I=>{E.children(I).length||N.setNode(I,E.node(I))}),E.edges().forEach(I=>{N.setEdge(I,E.edge(I))}),N}function s(E){let N=E.nodes().map(I=>{let A={};return E.outEdges(I).forEach(R=>{A[R.w]=(A[R.w]||0)+E.edge(R).weight}),A});return T(E.nodes(),N)}function a(E){let N=E.nodes().map(I=>{let A={};return E.inEdges(I).forEach(R=>{A[R.v]=(A[R.v]||0)+E.edge(R).weight}),A});return T(E.nodes(),N)}function i(E,N){let I=E.x,A=E.y,R=N.x-I,L=N.y-A,D=E.width/2,F=E.height/2;if(!R&&!L)throw new Error("Not possible to find intersection inside of the rectangle");let H,B;return Math.abs(L)*D>Math.abs(R)*F?(L<0&&(F=-F),H=F*R/L,B=F):(R<0&&(D=-D),H=D,B=D*L/R),{x:I+H,y:A+B}}function l(E){let N=k(m(E)+1).map(()=>[]);return E.nodes().forEach(I=>{let A=E.node(I),R=A.rank;R!==void 0&&(N[R][A.order]=I)}),N}function c(E){let N=E.nodes().map(A=>{let R=E.node(A).rank;return R===void 0?Number.MAX_VALUE:R}),I=h(Math.min,N);E.nodes().forEach(A=>{let R=E.node(A);Object.hasOwn(R,"rank")&&(R.rank-=I)})}function u(E){let N=E.nodes().map(D=>E.node(D).rank),I=h(Math.min,N),A=[];E.nodes().forEach(D=>{let F=E.node(D).rank-I;A[F]||(A[F]=[]),A[F].push(D)});let R=0,L=E.graph().nodeRankFactor;Array.from(A).forEach((D,F)=>{D===void 0&&F%L!==0?--R:D!==void 0&&R&&D.forEach(H=>E.node(H).rank+=R)})}function d(E,N,I,A){let R={width:0,height:0};return arguments.length>=4&&(R.rank=I,R.order=A),t(E,"border",R,N)}function f(E,N=p){const I=[];for(let A=0;A<E.length;A+=N){const R=E.slice(A,A+N);I.push(R)}return I}const p=65535;function h(E,N){if(N.length>p){const I=f(N);return E.apply(null,I.map(A=>E.apply(null,A)))}else return E.apply(null,N)}function m(E){const I=E.nodes().map(A=>{let R=E.node(A).rank;return R===void 0?Number.MIN_VALUE:R});return h(Math.max,I)}function v(E,N){let I={lhs:[],rhs:[]};return E.forEach(A=>{N(A)?I.lhs.push(A):I.rhs.push(A)}),I}function y(E,N){let I=Date.now();try{return N()}finally{console.log(E+" time: "+(Date.now()-I)+"ms")}}function b(E,N){return N()}let x=0;function S(E){var N=++x;return E+(""+N)}function k(E,N,I=1){N==null&&(N=E,E=0);let A=L=>L<N;I<0&&(A=L=>N<L);const R=[];for(let L=E;A(L);L+=I)R.push(L);return R}function _(E,N){const I={};for(const A of N)E[A]!==void 0&&(I[A]=E[A]);return I}function C(E,N){let I=N;return typeof N=="string"&&(I=A=>A[N]),Object.entries(E).reduce((A,[R,L])=>(A[R]=I(L,R),A),{})}function T(E,N){return E.reduce((I,A,R)=>(I[A]=N[R],I),{})}return Tte}var jte,G9e;function sGn(){if(G9e)return jte;G9e=1;let e=rGn(),t=Pl().uniqueId;jte={run:n,undo:s};function n(a){(a.graph().acyclicer==="greedy"?e(a,l(a)):r(a)).forEach(c=>{let u=a.edge(c);a.removeEdge(c),u.forwardName=c.name,u.reversed=!0,a.setEdge(c.w,c.v,u,t("rev"))});function l(c){return u=>c.edge(u).weight}}function r(a){let i=[],l={},c={};function u(d){Object.hasOwn(c,d)||(c[d]=!0,l[d]=!0,a.outEdges(d).forEach(f=>{Object.hasOwn(l,f.w)?i.push(f):u(f.w)}),delete l[d])}return a.nodes().forEach(u),i}function s(a){a.edges().forEach(i=>{let l=a.edge(i);if(l.reversed){a.removeEdge(i);let c=l.forwardName;delete l.reversed,delete l.forwardName,a.setEdge(i.w,i.v,l,c)}})}return jte}var Nte,Q9e;function aGn(){if(Q9e)return Nte;Q9e=1;let e=Pl();Nte={run:t,undo:r};function t(s){s.graph().dummyChains=[],s.edges().forEach(a=>n(s,a))}function n(s,a){let i=a.v,l=s.node(i).rank,c=a.w,u=s.node(c).rank,d=a.name,f=s.edge(a),p=f.labelRank;if(u===l+1)return;s.removeEdge(a);let h,m,v;for(v=0,++l;l<u;++v,++l)f.points=[],m={width:0,height:0,edgeLabel:f,edgeObj:a,rank:l},h=e.addDummyNode(s,"edge",m,"_d"),l===p&&(m.width=f.width,m.height=f.height,m.dummy="edge-label",m.labelpos=f.labelpos),s.setEdge(i,h,{weight:f.weight},d),v===0&&s.graph().dummyChains.push(h),i=h;s.setEdge(i,c,{weight:f.weight},d)}function r(s){s.graph().dummyChains.forEach(a=>{let i=s.node(a),l=i.edgeLabel,c;for(s.setEdge(i.edgeObj,l);i.dummy;)c=s.successors(a)[0],s.removeNode(a),l.points.push({x:i.x,y:i.y}),i.dummy==="edge-label"&&(l.x=i.x,l.y=i.y,l.width=i.width,l.height=i.height),a=c,i=s.node(a)})}return Nte}var Ite,Y9e;function QB(){if(Y9e)return Ite;Y9e=1;const{applyWithChunking:e}=Pl();Ite={longestPath:t,slack:n};function t(r){var s={};function a(i){var l=r.node(i);if(Object.hasOwn(s,i))return l.rank;s[i]=!0;let c=r.outEdges(i).map(d=>d==null?Number.POSITIVE_INFINITY:a(d.w)-r.edge(d).minlen);var u=e(Math.min,c);return u===Number.POSITIVE_INFINITY&&(u=0),l.rank=u}r.sources().forEach(a)}function n(r,s){return r.node(s.w).rank-r.node(s.v).rank-r.edge(s).minlen}return Ite}var Ate,K9e;function aOt(){if(K9e)return Ate;K9e=1;var e=Ug().Graph,t=QB().slack;Ate=n;function n(i){var l=new e({directed:!1}),c=i.nodes()[0],u=i.nodeCount();l.setNode(c,{});for(var d,f;r(l,i)<u;)d=s(l,i),f=l.hasNode(d.v)?t(i,d):-t(i,d),a(l,i,f);return l}function r(i,l){function c(u){l.nodeEdges(u).forEach(d=>{var f=d.v,p=u===f?d.w:f;!i.hasNode(p)&&!t(l,d)&&(i.setNode(p,{}),i.setEdge(u,p,{}),c(p))})}return i.nodes().forEach(c),i.nodeCount()}function s(i,l){return l.edges().reduce((u,d)=>{let f=Number.POSITIVE_INFINITY;return i.hasNode(d.v)!==i.hasNode(d.w)&&(f=t(l,d)),f<u[0]?[f,d]:u},[Number.POSITIVE_INFINITY,null])[1]}function a(i,l,c){i.nodes().forEach(u=>l.node(u).rank+=c)}return Ate}var Rte,X9e;function iGn(){if(X9e)return Rte;X9e=1;var e=aOt(),t=QB().slack,n=QB().longestPath,r=Ug().alg.preorder,s=Ug().alg.postorder,a=Pl().simplify;Rte=i,i.initLowLimValues=d,i.initCutValues=l,i.calcCutValue=u,i.leaveEdge=p,i.enterEdge=h,i.exchangeEdges=m;function i(x){x=a(x),n(x);var S=e(x);d(S),l(S,x);for(var k,_;k=p(S);)_=h(S,x,k),m(S,x,k,_)}function l(x,S){var k=s(x,x.nodes());k=k.slice(0,k.length-1),k.forEach(_=>c(x,S,_))}function c(x,S,k){var _=x.node(k),C=_.parent;x.edge(k,C).cutvalue=u(x,S,k)}function u(x,S,k){var _=x.node(k),C=_.parent,T=!0,E=S.edge(k,C),N=0;return E||(T=!1,E=S.edge(C,k)),N=E.weight,S.nodeEdges(k).forEach(I=>{var A=I.v===k,R=A?I.w:I.v;if(R!==C){var L=A===T,D=S.edge(I).weight;if(N+=L?D:-D,y(x,k,R)){var F=x.edge(k,R).cutvalue;N+=L?-F:F}}}),N}function d(x,S){arguments.length<2&&(S=x.nodes()[0]),f(x,{},1,S)}function f(x,S,k,_,C){var T=k,E=x.node(_);return S[_]=!0,x.neighbors(_).forEach(N=>{Object.hasOwn(S,N)||(k=f(x,S,k,N,_))}),E.low=T,E.lim=k++,C?E.parent=C:delete E.parent,k}function p(x){return x.edges().find(S=>x.edge(S).cutvalue<0)}function h(x,S,k){var _=k.v,C=k.w;S.hasEdge(_,C)||(_=k.w,C=k.v);var T=x.node(_),E=x.node(C),N=T,I=!1;T.lim>E.lim&&(N=E,I=!0);var A=S.edges().filter(R=>I===b(x,x.node(R.v),N)&&I!==b(x,x.node(R.w),N));return A.reduce((R,L)=>t(S,L)<t(S,R)?L:R)}function m(x,S,k,_){var C=k.v,T=k.w;x.removeEdge(C,T),x.setEdge(_.v,_.w,{}),d(x),l(x,S),v(x,S)}function v(x,S){var k=x.nodes().find(C=>!S.node(C).parent),_=r(x,k);_=_.slice(1),_.forEach(C=>{var T=x.node(C).parent,E=S.edge(C,T),N=!1;E||(E=S.edge(T,C),N=!0),S.node(C).rank=S.node(T).rank+(N?E.minlen:-E.minlen)})}function y(x,S,k){return x.hasEdge(S,k)}function b(x,S,k){return k.low<=S.lim&&S.lim<=k.lim}return Rte}var Pte,J9e;function oGn(){if(J9e)return Pte;J9e=1;var e=QB(),t=e.longestPath,n=aOt(),r=iGn();Pte=s;function s(c){var u=c.graph().ranker;if(u instanceof Function)return u(c);switch(c.graph().ranker){case"network-simplex":l(c);break;case"tight-tree":i(c);break;case"longest-path":a(c);break;case"none":break;default:l(c)}}var a=t;function i(c){t(c),n(c)}function l(c){r(c)}return Pte}var $te,e7e;function lGn(){if(e7e)return $te;e7e=1,$te=e;function e(r){let s=n(r);r.graph().dummyChains.forEach(a=>{let i=r.node(a),l=i.edgeObj,c=t(r,s,l.v,l.w),u=c.path,d=c.lca,f=0,p=u[f],h=!0;for(;a!==l.w;){if(i=r.node(a),h){for(;(p=u[f])!==d&&r.node(p).maxRank<i.rank;)f++;p===d&&(h=!1)}if(!h){for(;f<u.length-1&&r.node(p=u[f+1]).minRank<=i.rank;)f++;p=u[f]}r.setParent(a,p),a=r.successors(a)[0]}})}function t(r,s,a,i){let l=[],c=[],u=Math.min(s[a].low,s[i].low),d=Math.max(s[a].lim,s[i].lim),f,p;f=a;do f=r.parent(f),l.push(f);while(f&&(s[f].low>u||d>s[f].lim));for(p=f,f=i;(f=r.parent(f))!==p;)c.push(f);return{path:l.concat(c.reverse()),lca:p}}function n(r){let s={},a=0;function i(l){let c=a;r.children(l).forEach(i),s[l]={low:c,lim:a++}}return r.children().forEach(i),s}return $te}var Mte,t7e;function cGn(){if(t7e)return Mte;t7e=1;let e=Pl();Mte={run:t,cleanup:a};function t(i){let l=e.addDummyNode(i,"root",{},"_root"),c=r(i),u=Object.values(c),d=e.applyWithChunking(Math.max,u)-1,f=2*d+1;i.graph().nestingRoot=l,i.edges().forEach(h=>i.edge(h).minlen*=f);let p=s(i)+1;i.children().forEach(h=>n(i,l,f,p,d,c,h)),i.graph().nodeRankFactor=f}function n(i,l,c,u,d,f,p){let h=i.children(p);if(!h.length){p!==l&&i.setEdge(l,p,{weight:0,minlen:c});return}let m=e.addBorderNode(i,"_bt"),v=e.addBorderNode(i,"_bb"),y=i.node(p);i.setParent(m,p),y.borderTop=m,i.setParent(v,p),y.borderBottom=v,h.forEach(b=>{n(i,l,c,u,d,f,b);let x=i.node(b),S=x.borderTop?x.borderTop:b,k=x.borderBottom?x.borderBottom:b,_=x.borderTop?u:2*u,C=S!==k?1:d-f[p]+1;i.setEdge(m,S,{weight:_,minlen:C,nestingEdge:!0}),i.setEdge(k,v,{weight:_,minlen:C,nestingEdge:!0})}),i.parent(p)||i.setEdge(l,m,{weight:0,minlen:d+f[p]})}function r(i){var l={};function c(u,d){var f=i.children(u);f&&f.length&&f.forEach(p=>c(p,d+1)),l[u]=d}return i.children().forEach(u=>c(u,1)),l}function s(i){return i.edges().reduce((l,c)=>l+i.edge(c).weight,0)}function a(i){var l=i.graph();i.removeNode(l.nestingRoot),delete l.nestingRoot,i.edges().forEach(c=>{var u=i.edge(c);u.nestingEdge&&i.removeEdge(c)})}return Mte}var Dte,n7e;function uGn(){if(n7e)return Dte;n7e=1;let e=Pl();Dte=t;function t(r){function s(a){let i=r.children(a),l=r.node(a);if(i.length&&i.forEach(s),Object.hasOwn(l,"minRank")){l.borderLeft=[],l.borderRight=[];for(let c=l.minRank,u=l.maxRank+1;c<u;++c)n(r,"borderLeft","_bl",a,l,c),n(r,"borderRight","_br",a,l,c)}}r.children().forEach(s)}function n(r,s,a,i,l,c){let u={width:0,height:0,rank:c,borderType:s},d=l[s][c-1],f=e.addDummyNode(r,"border",u,a);l[s][c]=f,r.setParent(f,i),d&&r.setEdge(d,f,{weight:1})}return Dte}var Lte,r7e;function dGn(){if(r7e)return Lte;r7e=1,Lte={adjust:e,undo:t};function e(c){let u=c.graph().rankdir.toLowerCase();(u==="lr"||u==="rl")&&n(c)}function t(c){let u=c.graph().rankdir.toLowerCase();(u==="bt"||u==="rl")&&s(c),(u==="lr"||u==="rl")&&(i(c),n(c))}function n(c){c.nodes().forEach(u=>r(c.node(u))),c.edges().forEach(u=>r(c.edge(u)))}function r(c){let u=c.width;c.width=c.height,c.height=u}function s(c){c.nodes().forEach(u=>a(c.node(u))),c.edges().forEach(u=>{let d=c.edge(u);d.points.forEach(a),Object.hasOwn(d,"y")&&a(d)})}function a(c){c.y=-c.y}function i(c){c.nodes().forEach(u=>l(c.node(u))),c.edges().forEach(u=>{let d=c.edge(u);d.points.forEach(l),Object.hasOwn(d,"x")&&l(d)})}function l(c){let u=c.x;c.x=c.y,c.y=u}return Lte}var Fte,s7e;function fGn(){if(s7e)return Fte;s7e=1;let e=Pl();Fte=t;function t(n){let r={},s=n.nodes().filter(d=>!n.children(d).length),a=s.map(d=>n.node(d).rank),i=e.applyWithChunking(Math.max,a),l=e.range(i+1).map(()=>[]);function c(d){if(r[d])return;r[d]=!0;let f=n.node(d);l[f.rank].push(d),n.successors(d).forEach(c)}return s.sort((d,f)=>n.node(d).rank-n.node(f).rank).forEach(c),l}return Fte}var zte,a7e;function pGn(){if(a7e)return zte;a7e=1;let e=Pl().zipObject;zte=t;function t(r,s){let a=0;for(let i=1;i<s.length;++i)a+=n(r,s[i-1],s[i]);return a}function n(r,s,a){let i=e(a,a.map((p,h)=>h)),l=s.flatMap(p=>r.outEdges(p).map(h=>({pos:i[h.w],weight:r.edge(h).weight})).sort((h,m)=>h.pos-m.pos)),c=1;for(;c<a.length;)c<<=1;let u=2*c-1;c-=1;let d=new Array(u).fill(0),f=0;return l.forEach(p=>{let h=p.pos+c;d[h]+=p.weight;let m=0;for(;h>0;)h%2&&(m+=d[h+1]),h=h-1>>1,d[h]+=p.weight;f+=p.weight*m}),f}return zte}var Bte,i7e;function hGn(){if(i7e)return Bte;i7e=1,Bte=e;function e(t,n=[]){return n.map(r=>{let s=t.inEdges(r);if(s.length){let a=s.reduce((i,l)=>{let c=t.edge(l),u=t.node(l.v);return{sum:i.sum+c.weight*u.order,weight:i.weight+c.weight}},{sum:0,weight:0});return{v:r,barycenter:a.sum/a.weight,weight:a.weight}}else return{v:r}})}return Bte}var Ute,o7e;function mGn(){if(o7e)return Ute;o7e=1;let e=Pl();Ute=t;function t(s,a){let i={};s.forEach((c,u)=>{let d=i[c.v]={indegree:0,in:[],out:[],vs:[c.v],i:u};c.barycenter!==void 0&&(d.barycenter=c.barycenter,d.weight=c.weight)}),a.edges().forEach(c=>{let u=i[c.v],d=i[c.w];u!==void 0&&d!==void 0&&(d.indegree++,u.out.push(i[c.w]))});let l=Object.values(i).filter(c=>!c.indegree);return n(l)}function n(s){let a=[];function i(c){return u=>{u.merged||(u.barycenter===void 0||c.barycenter===void 0||u.barycenter>=c.barycenter)&&r(c,u)}}function l(c){return u=>{u.in.push(c),--u.indegree===0&&s.push(u)}}for(;s.length;){let c=s.pop();a.push(c),c.in.reverse().forEach(i(c)),c.out.forEach(l(c))}return a.filter(c=>!c.merged).map(c=>e.pick(c,["vs","i","barycenter","weight"]))}function r(s,a){let i=0,l=0;s.weight&&(i+=s.barycenter*s.weight,l+=s.weight),a.weight&&(i+=a.barycenter*a.weight,l+=a.weight),s.vs=a.vs.concat(s.vs),s.barycenter=i/l,s.weight=l,s.i=Math.min(a.i,s.i),a.merged=!0}return Ute}var qte,l7e;function gGn(){if(l7e)return qte;l7e=1;let e=Pl();qte=t;function t(s,a){let i=e.partition(s,m=>Object.hasOwn(m,"barycenter")),l=i.lhs,c=i.rhs.sort((m,v)=>v.i-m.i),u=[],d=0,f=0,p=0;l.sort(r(!!a)),p=n(u,c,p),l.forEach(m=>{p+=m.vs.length,u.push(m.vs),d+=m.barycenter*m.weight,f+=m.weight,p=n(u,c,p)});let h={vs:u.flat(!0)};return f&&(h.barycenter=d/f,h.weight=f),h}function n(s,a,i){let l;for(;a.length&&(l=a[a.length-1]).i<=i;)a.pop(),s.push(l.vs),i++;return i}function r(s){return(a,i)=>a.barycenter<i.barycenter?-1:a.barycenter>i.barycenter?1:s?i.i-a.i:a.i-i.i}return qte}var Vte,c7e;function vGn(){if(c7e)return Vte;c7e=1;let e=hGn(),t=mGn(),n=gGn();Vte=r;function r(i,l,c,u){let d=i.children(l),f=i.node(l),p=f?f.borderLeft:void 0,h=f?f.borderRight:void 0,m={};p&&(d=d.filter(x=>x!==p&&x!==h));let v=e(i,d);v.forEach(x=>{if(i.children(x.v).length){let S=r(i,x.v,c,u);m[x.v]=S,Object.hasOwn(S,"barycenter")&&a(x,S)}});let y=t(v,c);s(y,m);let b=n(y,u);if(p&&(b.vs=[p,b.vs,h].flat(!0),i.predecessors(p).length)){let x=i.node(i.predecessors(p)[0]),S=i.node(i.predecessors(h)[0]);Object.hasOwn(b,"barycenter")||(b.barycenter=0,b.weight=0),b.barycenter=(b.barycenter*b.weight+x.order+S.order)/(b.weight+2),b.weight+=2}return b}function s(i,l){i.forEach(c=>{c.vs=c.vs.flatMap(u=>l[u]?l[u].vs:u)})}function a(i,l){i.barycenter!==void 0?(i.barycenter=(i.barycenter*i.weight+l.barycenter*l.weight)/(i.weight+l.weight),i.weight+=l.weight):(i.barycenter=l.barycenter,i.weight=l.weight)}return Vte}var Hte,u7e;function yGn(){if(u7e)return Hte;u7e=1;let e=Ug().Graph,t=Pl();Hte=n;function n(s,a,i,l){l||(l=s.nodes());let c=r(s),u=new e({compound:!0}).setGraph({root:c}).setDefaultNodeLabel(d=>s.node(d));return l.forEach(d=>{let f=s.node(d),p=s.parent(d);(f.rank===a||f.minRank<=a&&a<=f.maxRank)&&(u.setNode(d),u.setParent(d,p||c),s[i](d).forEach(h=>{let m=h.v===d?h.w:h.v,v=u.edge(m,d),y=v!==void 0?v.weight:0;u.setEdge(m,d,{weight:s.edge(h).weight+y})}),Object.hasOwn(f,"minRank")&&u.setNode(d,{borderLeft:f.borderLeft[a],borderRight:f.borderRight[a]}))}),u}function r(s){for(var a;s.hasNode(a=t.uniqueId("_root")););return a}return Hte}var Wte,d7e;function bGn(){if(d7e)return Wte;d7e=1,Wte=e;function e(t,n,r){let s={},a;r.forEach(i=>{let l=t.parent(i),c,u;for(;l;){if(c=t.parent(l),c?(u=s[c],s[c]=l):(u=a,a=l),u&&u!==l){n.setEdge(u,l);return}l=c}})}return Wte}var Zte,f7e;function xGn(){if(f7e)return Zte;f7e=1;let e=fGn(),t=pGn(),n=vGn(),r=yGn(),s=bGn(),a=Ug().Graph,i=Pl();Zte=l;function l(f,p){if(p&&typeof p.customOrder=="function"){p.customOrder(f,l);return}let h=i.maxRank(f),m=c(f,i.range(1,h+1),"inEdges"),v=c(f,i.range(h-1,-1,-1),"outEdges"),y=e(f);if(d(f,y),p&&p.disableOptimalOrderHeuristic)return;let b=Number.POSITIVE_INFINITY,x;for(let S=0,k=0;k<4;++S,++k){u(S%2?m:v,S%4>=2),y=i.buildLayerMatrix(f);let _=t(f,y);_<b&&(k=0,x=Object.assign({},y),b=_)}d(f,x)}function c(f,p,h){const m=new Map,v=(y,b)=>{m.has(y)||m.set(y,[]),m.get(y).push(b)};for(const y of f.nodes()){const b=f.node(y);if(typeof b.rank=="number"&&v(b.rank,y),typeof b.minRank=="number"&&typeof b.maxRank=="number")for(let x=b.minRank;x<=b.maxRank;x++)x!==b.rank&&v(x,y)}return p.map(function(y){return r(f,y,h,m.get(y)||[])})}function u(f,p){let h=new a;f.forEach(function(m){let v=m.graph().root,y=n(m,v,h,p);y.vs.forEach((b,x)=>m.node(b).order=x),s(m,h,y.vs)})}function d(f,p){Object.values(p).forEach(h=>h.forEach((m,v)=>f.node(m).order=v))}return Zte}var Gte,p7e;function wGn(){if(p7e)return Gte;p7e=1;let e=Ug().Graph,t=Pl();Gte={positionX:h,findType1Conflicts:n,findType2Conflicts:r,addConflict:a,hasConflict:i,verticalAlignment:l,horizontalCompaction:c,alignCoordinates:f,findSmallestWidthAlignment:d,balance:p};function n(y,b){let x={};function S(k,_){let C=0,T=0,E=k.length,N=_[_.length-1];return _.forEach((I,A)=>{let R=s(y,I),L=R?y.node(R).order:E;(R||I===N)&&(_.slice(T,A+1).forEach(D=>{y.predecessors(D).forEach(F=>{let H=y.node(F),B=H.order;(B<C||L<B)&&!(H.dummy&&y.node(D).dummy)&&a(x,F,D)})}),T=A+1,C=L)}),_}return b.length&&b.reduce(S),x}function r(y,b){let x={};function S(_,C,T,E,N){let I;t.range(C,T).forEach(A=>{I=_[A],y.node(I).dummy&&y.predecessors(I).forEach(R=>{let L=y.node(R);L.dummy&&(L.order<E||L.order>N)&&a(x,R,I)})})}function k(_,C){let T=-1,E,N=0;return C.forEach((I,A)=>{if(y.node(I).dummy==="border"){let R=y.predecessors(I);R.length&&(E=y.node(R[0]).order,S(C,N,A,T,E),N=A,T=E)}S(C,N,C.length,E,_.length)}),C}return b.length&&b.reduce(k),x}function s(y,b){if(y.node(b).dummy)return y.predecessors(b).find(x=>y.node(x).dummy)}function a(y,b,x){if(b>x){let k=b;b=x,x=k}let S=y[b];S||(y[b]=S={}),S[x]=!0}function i(y,b,x){if(b>x){let S=b;b=x,x=S}return!!y[b]&&Object.hasOwn(y[b],x)}function l(y,b,x,S){let k={},_={},C={};return b.forEach(T=>{T.forEach((E,N)=>{k[E]=E,_[E]=E,C[E]=N})}),b.forEach(T=>{let E=-1;T.forEach(N=>{let I=S(N);if(I.length){I=I.sort((R,L)=>C[R]-C[L]);let A=(I.length-1)/2;for(let R=Math.floor(A),L=Math.ceil(A);R<=L;++R){let D=I[R];_[N]===N&&E<C[D]&&!i(x,N,D)&&(_[D]=N,_[N]=k[N]=k[D],E=C[D])}}})}),{root:k,align:_}}function c(y,b,x,S,k){let _={},C=u(y,b,x,k),T=k?"borderLeft":"borderRight";function E(A,R){let L=C.nodes(),D=L.pop(),F={};for(;D;)F[D]?A(D):(F[D]=!0,L.push(D),L=L.concat(R(D))),D=L.pop()}function N(A){_[A]=C.inEdges(A).reduce((R,L)=>Math.max(R,_[L.v]+C.edge(L)),0)}function I(A){let R=C.outEdges(A).reduce((D,F)=>Math.min(D,_[F.w]-C.edge(F)),Number.POSITIVE_INFINITY),L=y.node(A);R!==Number.POSITIVE_INFINITY&&L.borderType!==T&&(_[A]=Math.max(_[A],R))}return E(N,C.predecessors.bind(C)),E(I,C.successors.bind(C)),Object.keys(S).forEach(A=>_[A]=_[x[A]]),_}function u(y,b,x,S){let k=new e,_=y.graph(),C=m(_.nodesep,_.edgesep,S);return b.forEach(T=>{let E;T.forEach(N=>{let I=x[N];if(k.setNode(I),E){var A=x[E],R=k.edge(A,I);k.setEdge(A,I,Math.max(C(y,N,E),R||0))}E=N})}),k}function d(y,b){return Object.values(b).reduce((x,S)=>{let k=Number.NEGATIVE_INFINITY,_=Number.POSITIVE_INFINITY;Object.entries(S).forEach(([T,E])=>{let N=v(y,T)/2;k=Math.max(E+N,k),_=Math.min(E-N,_)});const C=k-_;return C<x[0]&&(x=[C,S]),x},[Number.POSITIVE_INFINITY,null])[1]}function f(y,b){let x=Object.values(b),S=t.applyWithChunking(Math.min,x),k=t.applyWithChunking(Math.max,x);["u","d"].forEach(_=>{["l","r"].forEach(C=>{let T=_+C,E=y[T];if(E===b)return;let N=Object.values(E),I=S-t.applyWithChunking(Math.min,N);C!=="l"&&(I=k-t.applyWithChunking(Math.max,N)),I&&(y[T]=t.mapValues(E,A=>A+I))})})}function p(y,b){return t.mapValues(y.ul,(x,S)=>{if(b)return y[b.toLowerCase()][S];{let k=Object.values(y).map(_=>_[S]).sort((_,C)=>_-C);return(k[1]+k[2])/2}})}function h(y){let b=t.buildLayerMatrix(y),x=Object.assign(n(y,b),r(y,b)),S={},k;["u","d"].forEach(C=>{k=C==="u"?b:Object.values(b).reverse(),["l","r"].forEach(T=>{T==="r"&&(k=k.map(A=>Object.values(A).reverse()));let E=(C==="u"?y.predecessors:y.successors).bind(y),N=l(y,k,x,E),I=c(y,k,N.root,N.align,T==="r");T==="r"&&(I=t.mapValues(I,A=>-A)),S[C+T]=I})});let _=d(y,S);return f(S,_),p(S,y.graph().align)}function m(y,b,x){return(S,k,_)=>{let C=S.node(k),T=S.node(_),E=0,N;if(E+=C.width/2,Object.hasOwn(C,"labelpos"))switch(C.labelpos.toLowerCase()){case"l":N=-C.width/2;break;case"r":N=C.width/2;break}if(N&&(E+=x?N:-N),N=0,E+=(C.dummy?b:y)/2,E+=(T.dummy?b:y)/2,E+=T.width/2,Object.hasOwn(T,"labelpos"))switch(T.labelpos.toLowerCase()){case"l":N=T.width/2;break;case"r":N=-T.width/2;break}return N&&(E+=x?N:-N),N=0,E}}function v(y,b){return y.node(b).width}return Gte}var Qte,h7e;function SGn(){if(h7e)return Qte;h7e=1;let e=Pl(),t=wGn().positionX;Qte=n;function n(s){s=e.asNonCompoundGraph(s),r(s),Object.entries(t(s)).forEach(([a,i])=>s.node(a).x=i)}function r(s){let a=e.buildLayerMatrix(s),i=s.graph().ranksep,l=0;a.forEach(c=>{const u=c.reduce((d,f)=>{const p=s.node(f).height;return d>p?d:p},0);c.forEach(d=>s.node(d).y=l+u/2),l+=u+i})}return Qte}var Yte,m7e;function kGn(){if(m7e)return Yte;m7e=1;let e=sGn(),t=aGn(),n=oGn(),r=Pl().normalizeRanks,s=lGn(),a=Pl().removeEmptyRanks,i=cGn(),l=uGn(),c=dGn(),u=xGn(),d=SGn(),f=Pl(),p=Ug().Graph;Yte=h;function h($,q){let Z=q&&q.debugTiming?f.time:f.notime;Z("layout",()=>{let Y=Z(" buildLayoutGraph",()=>E($));Z(" runLayout",()=>m(Y,Z,q)),Z(" updateInputGraph",()=>v($,Y))})}function m($,q,Z){q(" makeSpaceForEdgeLabels",()=>N($)),q(" removeSelfEdges",()=>z($)),q(" acyclic",()=>e.run($)),q(" nestingGraph.run",()=>i.run($)),q(" rank",()=>n(f.asNonCompoundGraph($))),q(" injectEdgeLabelProxies",()=>I($)),q(" removeEmptyRanks",()=>a($)),q(" nestingGraph.cleanup",()=>i.cleanup($)),q(" normalizeRanks",()=>r($)),q(" assignRankMinMax",()=>A($)),q(" removeEdgeLabelProxies",()=>R($)),q(" normalize.run",()=>t.run($)),q(" parentDummyChains",()=>s($)),q(" addBorderSegments",()=>l($)),q(" order",()=>u($,Z)),q(" insertSelfEdges",()=>V($)),q(" adjustCoordinateSystem",()=>c.adjust($)),q(" position",()=>d($)),q(" positionSelfEdges",()=>M($)),q(" removeBorderNodes",()=>B($)),q(" normalize.undo",()=>t.undo($)),q(" fixupEdgeLabelCoords",()=>F($)),q(" undoCoordinateSystem",()=>c.undo($)),q(" translateGraph",()=>L($)),q(" assignNodeIntersects",()=>D($)),q(" reversePoints",()=>H($)),q(" acyclic.undo",()=>e.undo($))}function v($,q){$.nodes().forEach(Z=>{let Y=$.node(Z),ne=q.node(Z);Y&&(Y.x=ne.x,Y.y=ne.y,Y.rank=ne.rank,q.children(Z).length&&(Y.width=ne.width,Y.height=ne.height))}),$.edges().forEach(Z=>{let Y=$.edge(Z),ne=q.edge(Z);Y.points=ne.points,Object.hasOwn(ne,"x")&&(Y.x=ne.x,Y.y=ne.y)}),$.graph().width=q.graph().width,$.graph().height=q.graph().height}let y=["nodesep","edgesep","ranksep","marginx","marginy"],b={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},x=["acyclicer","ranker","rankdir","align"],S=["width","height","rank"],k={width:0,height:0},_=["minlen","weight","width","height","labeloffset"],C={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},T=["labelpos"];function E($){let q=new p({multigraph:!0,compound:!0}),Z=U($.graph());return q.setGraph(Object.assign({},b,G(Z,y),f.pick(Z,x))),$.nodes().forEach(Y=>{let ne=U($.node(Y));const J=G(ne,S);Object.keys(k).forEach(ee=>{J[ee]===void 0&&(J[ee]=k[ee])}),q.setNode(Y,J),q.setParent(Y,$.parent(Y))}),$.edges().forEach(Y=>{let ne=U($.edge(Y));q.setEdge(Y,Object.assign({},C,G(ne,_),f.pick(ne,T)))}),q}function N($){let q=$.graph();q.ranksep/=2,$.edges().forEach(Z=>{let Y=$.edge(Z);Y.minlen*=2,Y.labelpos.toLowerCase()!=="c"&&(q.rankdir==="TB"||q.rankdir==="BT"?Y.width+=Y.labeloffset:Y.height+=Y.labeloffset)})}function I($){$.edges().forEach(q=>{let Z=$.edge(q);if(Z.width&&Z.height){let Y=$.node(q.v),J={rank:($.node(q.w).rank-Y.rank)/2+Y.rank,e:q};f.addDummyNode($,"edge-proxy",J,"_ep")}})}function A($){let q=0;$.nodes().forEach(Z=>{let Y=$.node(Z);Y.borderTop&&(Y.minRank=$.node(Y.borderTop).rank,Y.maxRank=$.node(Y.borderBottom).rank,q=Math.max(q,Y.maxRank))}),$.graph().maxRank=q}function R($){$.nodes().forEach(q=>{let Z=$.node(q);Z.dummy==="edge-proxy"&&($.edge(Z.e).labelRank=Z.rank,$.removeNode(q))})}function L($){let q=Number.POSITIVE_INFINITY,Z=0,Y=Number.POSITIVE_INFINITY,ne=0,J=$.graph(),ee=J.marginx||0,se=J.marginy||0;function le(X){let te=X.x,re=X.y,pe=X.width,ce=X.height;q=Math.min(q,te-pe/2),Z=Math.max(Z,te+pe/2),Y=Math.min(Y,re-ce/2),ne=Math.max(ne,re+ce/2)}$.nodes().forEach(X=>le($.node(X))),$.edges().forEach(X=>{let te=$.edge(X);Object.hasOwn(te,"x")&&le(te)}),q-=ee,Y-=se,$.nodes().forEach(X=>{let te=$.node(X);te.x-=q,te.y-=Y}),$.edges().forEach(X=>{let te=$.edge(X);te.points.forEach(re=>{re.x-=q,re.y-=Y}),Object.hasOwn(te,"x")&&(te.x-=q),Object.hasOwn(te,"y")&&(te.y-=Y)}),J.width=Z-q+ee,J.height=ne-Y+se}function D($){$.edges().forEach(q=>{let Z=$.edge(q),Y=$.node(q.v),ne=$.node(q.w),J,ee;Z.points?(J=Z.points[0],ee=Z.points[Z.points.length-1]):(Z.points=[],J=ne,ee=Y),Z.points.unshift(f.intersectRect(Y,J)),Z.points.push(f.intersectRect(ne,ee))})}function F($){$.edges().forEach(q=>{let Z=$.edge(q);if(Object.hasOwn(Z,"x"))switch((Z.labelpos==="l"||Z.labelpos==="r")&&(Z.width-=Z.labeloffset),Z.labelpos){case"l":Z.x-=Z.width/2+Z.labeloffset;break;case"r":Z.x+=Z.width/2+Z.labeloffset;break}})}function H($){$.edges().forEach(q=>{let Z=$.edge(q);Z.reversed&&Z.points.reverse()})}function B($){$.nodes().forEach(q=>{if($.children(q).length){let Z=$.node(q),Y=$.node(Z.borderTop),ne=$.node(Z.borderBottom),J=$.node(Z.borderLeft[Z.borderLeft.length-1]),ee=$.node(Z.borderRight[Z.borderRight.length-1]);Z.width=Math.abs(ee.x-J.x),Z.height=Math.abs(ne.y-Y.y),Z.x=J.x+Z.width/2,Z.y=Y.y+Z.height/2}}),$.nodes().forEach(q=>{$.node(q).dummy==="border"&&$.removeNode(q)})}function z($){$.edges().forEach(q=>{if(q.v===q.w){var Z=$.node(q.v);Z.selfEdges||(Z.selfEdges=[]),Z.selfEdges.push({e:q,label:$.edge(q)}),$.removeEdge(q)}})}function V($){var q=f.buildLayerMatrix($);q.forEach(Z=>{var Y=0;Z.forEach((ne,J)=>{var ee=$.node(ne);ee.order=J+Y,(ee.selfEdges||[]).forEach(se=>{f.addDummyNode($,"selfedge",{width:se.label.width,height:se.label.height,rank:ee.rank,order:J+ ++Y,e:se.e,label:se.label},"_se")}),delete ee.selfEdges})})}function M($){$.nodes().forEach(q=>{var Z=$.node(q);if(Z.dummy==="selfedge"){var Y=$.node(Z.e.v),ne=Y.x+Y.width/2,J=Y.y,ee=Z.x-ne,se=Y.height/2;$.setEdge(Z.e,Z.label),$.removeNode(q),Z.label.points=[{x:ne+2*ee/3,y:J-se},{x:ne+5*ee/6,y:J-se},{x:ne+ee,y:J},{x:ne+5*ee/6,y:J+se},{x:ne+2*ee/3,y:J+se}],Z.label.x=Z.x,Z.label.y=Z.y}})}function G($,q){return f.mapValues(f.pick($,q),Number)}function U($){var q={};return $&&Object.entries($).forEach(([Z,Y])=>{typeof Z=="string"&&(Z=Z.toLowerCase()),q[Z]=Y}),q}return Yte}var Kte,g7e;function OGn(){if(g7e)return Kte;g7e=1;let e=Pl(),t=Ug().Graph;Kte={debugOrdering:n};function n(r){let s=e.buildLayerMatrix(r),a=new t({compound:!0,multigraph:!0}).setGraph({});return r.nodes().forEach(i=>{a.setNode(i,{label:i}),a.setParent(i,"layer"+r.node(i).rank)}),r.edges().forEach(i=>a.setEdge(i.v,i.w,{},i.name)),s.forEach((i,l)=>{let c="layer"+l;a.setNode(c,{rank:"same"}),i.reduce((u,d)=>(a.setEdge(u,d,{style:"invis"}),d))}),a}return Kte}var Xte,v7e;function _Gn(){return v7e||(v7e=1,Xte="1.1.8"),Xte}var Jte,y7e;function CGn(){return y7e||(y7e=1,Jte={graphlib:Ug(),layout:kGn(),debug:OGn(),util:{time:Pl().time,notime:Pl().notime},version:_Gn()}),Jte}var EGn=CGn();const b7e=Ll(EGn);function Ul(e){if(typeof e=="string"||typeof e=="number")return""+e;let t="";if(Array.isArray(e))for(let n=0,r;n<e.length;n++)(r=Ul(e[n]))!==""&&(t+=(t&&" ")+r);else for(let n in e)e[n]&&(t+=(t&&" ")+n);return t}var TGn={value:()=>{}};function dW(){for(var e=0,t=arguments.length,n={},r;e<t;++e){if(!(r=arguments[e]+"")||r in n||/[\s.]/.test(r))throw new Error("illegal type: "+r);n[r]=[]}return new W8(n)}function W8(e){this._=e}function jGn(e,t){return e.trim().split(/^|\s+/).map(function(n){var r="",s=n.indexOf(".");if(s>=0&&(r=n.slice(s+1),n=n.slice(0,s)),n&&!t.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:r}})}W8.prototype=dW.prototype={constructor:W8,on:function(e,t){var n=this._,r=jGn(e+"",n),s,a=-1,i=r.length;if(arguments.length<2){for(;++a<i;)if((s=(e=r[a]).type)&&(s=NGn(n[s],e.name)))return s;return}if(t!=null&&typeof t!="function")throw new Error("invalid callback: "+t);for(;++a<i;)if(s=(e=r[a]).type)n[s]=x7e(n[s],e.name,t);else if(t==null)for(s in n)n[s]=x7e(n[s],e.name,null);return this},copy:function(){var e={},t=this._;for(var n in t)e[n]=t[n].slice();return new W8(e)},call:function(e,t){if((s=arguments.length-2)>0)for(var n=new Array(s),r=0,s,a;r<s;++r)n[r]=arguments[r+2];if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(a=this._[e],r=0,s=a.length;r<s;++r)a[r].value.apply(t,n)},apply:function(e,t,n){if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(var r=this._[e],s=0,a=r.length;s<a;++s)r[s].value.apply(t,n)}};function NGn(e,t){for(var n=0,r=e.length,s;n<r;++n)if((s=e[n]).name===t)return s.value}function x7e(e,t,n){for(var r=0,s=e.length;r<s;++r)if(e[r].name===t){e[r]=TGn,e=e.slice(0,r).concat(e.slice(r+1));break}return n!=null&&e.push({name:t,value:n}),e}var cve="http://www.w3.org/1999/xhtml";const w7e={svg:"http://www.w3.org/2000/svg",xhtml:cve,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function fW(e){var t=e+="",n=t.indexOf(":");return n>=0&&(t=e.slice(0,n))!=="xmlns"&&(e=e.slice(n+1)),w7e.hasOwnProperty(t)?{space:w7e[t],local:e}:e}function IGn(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===cve&&t.documentElement.namespaceURI===cve?t.createElement(e):t.createElementNS(n,e)}}function AGn(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function iOt(e){var t=fW(e);return(t.local?AGn:IGn)(t)}function RGn(){}function fOe(e){return e==null?RGn:function(){return this.querySelector(e)}}function PGn(e){typeof e!="function"&&(e=fOe(e));for(var t=this._groups,n=t.length,r=new Array(n),s=0;s<n;++s)for(var a=t[s],i=a.length,l=r[s]=new Array(i),c,u,d=0;d<i;++d)(c=a[d])&&(u=e.call(c,c.__data__,d,a))&&("__data__"in c&&(u.__data__=c.__data__),l[d]=u);return new Gp(r,this._parents)}function $Gn(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function MGn(){return[]}function oOt(e){return e==null?MGn:function(){return this.querySelectorAll(e)}}function DGn(e){return function(){return $Gn(e.apply(this,arguments))}}function LGn(e){typeof e=="function"?e=DGn(e):e=oOt(e);for(var t=this._groups,n=t.length,r=[],s=[],a=0;a<n;++a)for(var i=t[a],l=i.length,c,u=0;u<l;++u)(c=i[u])&&(r.push(e.call(c,c.__data__,u,i)),s.push(c));return new Gp(r,s)}function lOt(e){return function(){return this.matches(e)}}function cOt(e){return function(t){return t.matches(e)}}var FGn=Array.prototype.find;function zGn(e){return function(){return FGn.call(this.children,e)}}function BGn(){return this.firstElementChild}function UGn(e){return this.select(e==null?BGn:zGn(typeof e=="function"?e:cOt(e)))}var qGn=Array.prototype.filter;function VGn(){return Array.from(this.children)}function HGn(e){return function(){return qGn.call(this.children,e)}}function WGn(e){return this.selectAll(e==null?VGn:HGn(typeof e=="function"?e:cOt(e)))}function ZGn(e){typeof e!="function"&&(e=lOt(e));for(var t=this._groups,n=t.length,r=new Array(n),s=0;s<n;++s)for(var a=t[s],i=a.length,l=r[s]=[],c,u=0;u<i;++u)(c=a[u])&&e.call(c,c.__data__,u,a)&&l.push(c);return new Gp(r,this._parents)}function uOt(e){return new Array(e.length)}function GGn(){return new Gp(this._enter||this._groups.map(uOt),this._parents)}function YB(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}YB.prototype={constructor:YB,appendChild:function(e){return this._parent.insertBefore(e,this._next)},insertBefore:function(e,t){return this._parent.insertBefore(e,t)},querySelector:function(e){return this._parent.querySelector(e)},querySelectorAll:function(e){return this._parent.querySelectorAll(e)}};function QGn(e){return function(){return e}}function YGn(e,t,n,r,s,a){for(var i=0,l,c=t.length,u=a.length;i<u;++i)(l=t[i])?(l.__data__=a[i],r[i]=l):n[i]=new YB(e,a[i]);for(;i<c;++i)(l=t[i])&&(s[i]=l)}function KGn(e,t,n,r,s,a,i){var l,c,u=new Map,d=t.length,f=a.length,p=new Array(d),h;for(l=0;l<d;++l)(c=t[l])&&(p[l]=h=i.call(c,c.__data__,l,t)+"",u.has(h)?s[l]=c:u.set(h,c));for(l=0;l<f;++l)h=i.call(e,a[l],l,a)+"",(c=u.get(h))?(r[l]=c,c.__data__=a[l],u.delete(h)):n[l]=new YB(e,a[l]);for(l=0;l<d;++l)(c=t[l])&&u.get(p[l])===c&&(s[l]=c)}function XGn(e){return e.__data__}function JGn(e,t){if(!arguments.length)return Array.from(this,XGn);var n=t?KGn:YGn,r=this._parents,s=this._groups;typeof e!="function"&&(e=QGn(e));for(var a=s.length,i=new Array(a),l=new Array(a),c=new Array(a),u=0;u<a;++u){var d=r[u],f=s[u],p=f.length,h=eQn(e.call(d,d&&d.__data__,u,r)),m=h.length,v=l[u]=new Array(m),y=i[u]=new Array(m),b=c[u]=new Array(p);n(d,f,v,y,b,h,t);for(var x=0,S=0,k,_;x<m;++x)if(k=v[x]){for(x>=S&&(S=x+1);!(_=y[S])&&++S<m;);k._next=_||null}}return i=new Gp(i,r),i._enter=l,i._exit=c,i}function eQn(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function tQn(){return new Gp(this._exit||this._groups.map(uOt),this._parents)}function nQn(e,t,n){var r=this.enter(),s=this,a=this.exit();return typeof e=="function"?(r=e(r),r&&(r=r.selection())):r=r.append(e+""),t!=null&&(s=t(s),s&&(s=s.selection())),n==null?a.remove():n(a),r&&s?r.merge(s).order():s}function rQn(e){for(var t=e.selection?e.selection():e,n=this._groups,r=t._groups,s=n.length,a=r.length,i=Math.min(s,a),l=new Array(s),c=0;c<i;++c)for(var u=n[c],d=r[c],f=u.length,p=l[c]=new Array(f),h,m=0;m<f;++m)(h=u[m]||d[m])&&(p[m]=h);for(;c<s;++c)l[c]=n[c];return new Gp(l,this._parents)}function sQn(){for(var e=this._groups,t=-1,n=e.length;++t<n;)for(var r=e[t],s=r.length-1,a=r[s],i;--s>=0;)(i=r[s])&&(a&&i.compareDocumentPosition(a)^4&&a.parentNode.insertBefore(i,a),a=i);return this}function aQn(e){e||(e=iQn);function t(f,p){return f&&p?e(f.__data__,p.__data__):!f-!p}for(var n=this._groups,r=n.length,s=new Array(r),a=0;a<r;++a){for(var i=n[a],l=i.length,c=s[a]=new Array(l),u,d=0;d<l;++d)(u=i[d])&&(c[d]=u);c.sort(t)}return new Gp(s,this._parents).order()}function iQn(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function oQn(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function lQn(){return Array.from(this)}function cQn(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],s=0,a=r.length;s<a;++s){var i=r[s];if(i)return i}return null}function uQn(){let e=0;for(const t of this)++e;return e}function dQn(){return!this.node()}function fQn(e){for(var t=this._groups,n=0,r=t.length;n<r;++n)for(var s=t[n],a=0,i=s.length,l;a<i;++a)(l=s[a])&&e.call(l,l.__data__,a,s);return this}function pQn(e){return function(){this.removeAttribute(e)}}function hQn(e){return function(){this.removeAttributeNS(e.space,e.local)}}function mQn(e,t){return function(){this.setAttribute(e,t)}}function gQn(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function vQn(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}}function yQn(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,n)}}function bQn(e,t){var n=fW(e);if(arguments.length<2){var r=this.node();return n.local?r.getAttributeNS(n.space,n.local):r.getAttribute(n)}return this.each((t==null?n.local?hQn:pQn:typeof t=="function"?n.local?yQn:vQn:n.local?gQn:mQn)(n,t))}function dOt(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function xQn(e){return function(){this.style.removeProperty(e)}}function wQn(e,t,n){return function(){this.style.setProperty(e,t,n)}}function SQn(e,t,n){return function(){var r=t.apply(this,arguments);r==null?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function kQn(e,t,n){return arguments.length>1?this.each((t==null?xQn:typeof t=="function"?SQn:wQn)(e,t,n??"")):eN(this.node(),e)}function eN(e,t){return e.style.getPropertyValue(t)||dOt(e).getComputedStyle(e,null).getPropertyValue(t)}function OQn(e){return function(){delete this[e]}}function _Qn(e,t){return function(){this[e]=t}}function CQn(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function EQn(e,t){return arguments.length>1?this.each((t==null?OQn:typeof t=="function"?CQn:_Qn)(e,t)):this.node()[e]}function fOt(e){return e.trim().split(/^|\s+/)}function pOe(e){return e.classList||new pOt(e)}function pOt(e){this._node=e,this._names=fOt(e.getAttribute("class")||"")}pOt.prototype={add:function(e){var t=this._names.indexOf(e);t<0&&(this._names.push(e),this._node.setAttribute("class",this._names.join(" ")))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(e){return this._names.indexOf(e)>=0}};function hOt(e,t){for(var n=pOe(e),r=-1,s=t.length;++r<s;)n.add(t[r])}function mOt(e,t){for(var n=pOe(e),r=-1,s=t.length;++r<s;)n.remove(t[r])}function TQn(e){return function(){hOt(this,e)}}function jQn(e){return function(){mOt(this,e)}}function NQn(e,t){return function(){(t.apply(this,arguments)?hOt:mOt)(this,e)}}function IQn(e,t){var n=fOt(e+"");if(arguments.length<2){for(var r=pOe(this.node()),s=-1,a=n.length;++s<a;)if(!r.contains(n[s]))return!1;return!0}return this.each((typeof t=="function"?NQn:t?TQn:jQn)(n,t))}function AQn(){this.textContent=""}function RQn(e){return function(){this.textContent=e}}function PQn(e){return function(){var t=e.apply(this,arguments);this.textContent=t??""}}function $Qn(e){return arguments.length?this.each(e==null?AQn:(typeof e=="function"?PQn:RQn)(e)):this.node().textContent}function MQn(){this.innerHTML=""}function DQn(e){return function(){this.innerHTML=e}}function LQn(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??""}}function FQn(e){return arguments.length?this.each(e==null?MQn:(typeof e=="function"?LQn:DQn)(e)):this.node().innerHTML}function zQn(){this.nextSibling&&this.parentNode.appendChild(this)}function BQn(){return this.each(zQn)}function UQn(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function qQn(){return this.each(UQn)}function VQn(e){var t=typeof e=="function"?e:iOt(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function HQn(){return null}function WQn(e,t){var n=typeof e=="function"?e:iOt(e),r=t==null?HQn:typeof t=="function"?t:fOe(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})}function ZQn(){var e=this.parentNode;e&&e.removeChild(this)}function GQn(){return this.each(ZQn)}function QQn(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function YQn(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function KQn(e){return this.select(e?YQn:QQn)}function XQn(e){return arguments.length?this.property("__data__",e):this.node().__data__}function JQn(e){return function(t){e.call(this,t,this.__data__)}}function eYn(e){return e.trim().split(/^|\s+/).map(function(t){var n="",r=t.indexOf(".");return r>=0&&(n=t.slice(r+1),t=t.slice(0,r)),{type:t,name:n}})}function tYn(e){return function(){var t=this.__on;if(t){for(var n=0,r=-1,s=t.length,a;n<s;++n)a=t[n],(!e.type||a.type===e.type)&&a.name===e.name?this.removeEventListener(a.type,a.listener,a.options):t[++r]=a;++r?t.length=r:delete this.__on}}}function nYn(e,t,n){return function(){var r=this.__on,s,a=JQn(t);if(r){for(var i=0,l=r.length;i<l;++i)if((s=r[i]).type===e.type&&s.name===e.name){this.removeEventListener(s.type,s.listener,s.options),this.addEventListener(s.type,s.listener=a,s.options=n),s.value=t;return}}this.addEventListener(e.type,a,n),s={type:e.type,name:e.name,value:t,listener:a,options:n},r?r.push(s):this.__on=[s]}}function rYn(e,t,n){var r=eYn(e+""),s,a=r.length,i;if(arguments.length<2){var l=this.node().__on;if(l){for(var c=0,u=l.length,d;c<u;++c)for(s=0,d=l[c];s<a;++s)if((i=r[s]).type===d.type&&i.name===d.name)return d.value}return}for(l=t?nYn:tYn,s=0;s<a;++s)this.each(l(r[s],t,n));return this}function gOt(e,t,n){var r=dOt(e),s=r.CustomEvent;typeof s=="function"?s=new s(t,n):(s=r.document.createEvent("Event"),n?(s.initEvent(t,n.bubbles,n.cancelable),s.detail=n.detail):s.initEvent(t,!1,!1)),e.dispatchEvent(s)}function sYn(e,t){return function(){return gOt(this,e,t)}}function aYn(e,t){return function(){return gOt(this,e,t.apply(this,arguments))}}function iYn(e,t){return this.each((typeof t=="function"?aYn:sYn)(e,t))}function*oYn(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],s=0,a=r.length,i;s<a;++s)(i=r[s])&&(yield i)}var vOt=[null];function Gp(e,t){this._groups=e,this._parents=t}function Y3(){return new Gp([[document.documentElement]],vOt)}function lYn(){return this}Gp.prototype=Y3.prototype={constructor:Gp,select:PGn,selectAll:LGn,selectChild:UGn,selectChildren:WGn,filter:ZGn,data:JGn,enter:GGn,exit:tQn,join:nQn,merge:rQn,selection:lYn,order:sQn,sort:aQn,call:oQn,nodes:lQn,node:cQn,size:uQn,empty:dQn,each:fQn,attr:bQn,style:kQn,property:EQn,classed:IQn,text:$Qn,html:FQn,raise:BQn,lower:qQn,append:VQn,insert:WQn,remove:GQn,clone:KQn,datum:XQn,on:rYn,dispatch:iYn,[Symbol.iterator]:oYn};function _p(e){return typeof e=="string"?new Gp([[document.querySelector(e)]],[document.documentElement]):new Gp([[e]],vOt)}function cYn(e){let t;for(;t=e.sourceEvent;)e=t;return e}function dg(e,t){if(e=cYn(e),t===void 0&&(t=e.currentTarget),t){var n=t.ownerSVGElement||t;if(n.createSVGPoint){var r=n.createSVGPoint();return r.x=e.clientX,r.y=e.clientY,r=r.matrixTransform(t.getScreenCTM().inverse()),[r.x,r.y]}if(t.getBoundingClientRect){var s=t.getBoundingClientRect();return[e.clientX-s.left-t.clientLeft,e.clientY-s.top-t.clientTop]}}return[e.pageX,e.pageY]}const uYn={passive:!1},IM={capture:!0,passive:!1};function ene(e){e.stopImmediatePropagation()}function tj(e){e.preventDefault(),e.stopImmediatePropagation()}function yOt(e){var t=e.document.documentElement,n=_p(e).on("dragstart.drag",tj,IM);"onselectstart"in t?n.on("selectstart.drag",tj,IM):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect="none")}function bOt(e,t){var n=e.document.documentElement,r=_p(e).on("dragstart.drag",null);t&&(r.on("click.drag",tj,IM),setTimeout(function(){r.on("click.drag",null)},0)),"onselectstart"in n?r.on("selectstart.drag",null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}const gF=e=>()=>e;function uve(e,{sourceEvent:t,subject:n,target:r,identifier:s,active:a,x:i,y:l,dx:c,dy:u,dispatch:d}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},identifier:{value:s,enumerable:!0,configurable:!0},active:{value:a,enumerable:!0,configurable:!0},x:{value:i,enumerable:!0,configurable:!0},y:{value:l,enumerable:!0,configurable:!0},dx:{value:c,enumerable:!0,configurable:!0},dy:{value:u,enumerable:!0,configurable:!0},_:{value:d}})}uve.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function dYn(e){return!e.ctrlKey&&!e.button}function fYn(){return this.parentNode}function pYn(e,t){return t??{x:e.x,y:e.y}}function hYn(){return navigator.maxTouchPoints||"ontouchstart"in this}function xOt(){var e=dYn,t=fYn,n=pYn,r=hYn,s={},a=dW("start","drag","end"),i=0,l,c,u,d,f=0;function p(k){k.on("mousedown.drag",h).filter(r).on("touchstart.drag",y).on("touchmove.drag",b,uYn).on("touchend.drag touchcancel.drag",x).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function h(k,_){if(!(d||!e.call(this,k,_))){var C=S(this,t.call(this,k,_),k,_,"mouse");C&&(_p(k.view).on("mousemove.drag",m,IM).on("mouseup.drag",v,IM),yOt(k.view),ene(k),u=!1,l=k.clientX,c=k.clientY,C("start",k))}}function m(k){if(tj(k),!u){var _=k.clientX-l,C=k.clientY-c;u=_*_+C*C>f}s.mouse("drag",k)}function v(k){_p(k.view).on("mousemove.drag mouseup.drag",null),bOt(k.view,u),tj(k),s.mouse("end",k)}function y(k,_){if(e.call(this,k,_)){var C=k.changedTouches,T=t.call(this,k,_),E=C.length,N,I;for(N=0;N<E;++N)(I=S(this,T,k,_,C[N].identifier,C[N]))&&(ene(k),I("start",k,C[N]))}}function b(k){var _=k.changedTouches,C=_.length,T,E;for(T=0;T<C;++T)(E=s[_[T].identifier])&&(tj(k),E("drag",k,_[T]))}function x(k){var _=k.changedTouches,C=_.length,T,E;for(d&&clearTimeout(d),d=setTimeout(function(){d=null},500),T=0;T<C;++T)(E=s[_[T].identifier])&&(ene(k),E("end",k,_[T]))}function S(k,_,C,T,E,N){var I=a.copy(),A=dg(N||C,_),R,L,D;if((D=n.call(k,new uve("beforestart",{sourceEvent:C,target:p,identifier:E,active:i,x:A[0],y:A[1],dx:0,dy:0,dispatch:I}),T))!=null)return R=D.x-A[0]||0,L=D.y-A[1]||0,function F(H,B,z){var V=A,M;switch(H){case"start":s[E]=F,M=i++;break;case"end":delete s[E],--i;case"drag":A=dg(z||B,_),M=i;break}I.call(H,k,new uve(H,{sourceEvent:B,subject:D,target:p,identifier:E,active:M,x:A[0]+R,y:A[1]+L,dx:A[0]-V[0],dy:A[1]-V[1],dispatch:I}),T)}}return p.filter=function(k){return arguments.length?(e=typeof k=="function"?k:gF(!!k),p):e},p.container=function(k){return arguments.length?(t=typeof k=="function"?k:gF(k),p):t},p.subject=function(k){return arguments.length?(n=typeof k=="function"?k:gF(k),p):n},p.touchable=function(k){return arguments.length?(r=typeof k=="function"?k:gF(!!k),p):r},p.on=function(){var k=a.on.apply(a,arguments);return k===a?p:k},p.clickDistance=function(k){return arguments.length?(f=(k=+k)*k,p):Math.sqrt(f)},p}function hOe(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function wOt(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function K3(){}var AM=.7,KB=1/AM,nj="\\s*([+-]?\\d+)\\s*",RM="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",ly="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",mYn=/^#([0-9a-f]{3,8})$/,gYn=new RegExp(`^rgb\\(${nj},${nj},${nj}\\)$`),vYn=new RegExp(`^rgb\\(${ly},${ly},${ly}\\)$`),yYn=new RegExp(`^rgba\\(${nj},${nj},${nj},${RM}\\)$`),bYn=new RegExp(`^rgba\\(${ly},${ly},${ly},${RM}\\)$`),xYn=new RegExp(`^hsl\\(${RM},${ly},${ly}\\)$`),wYn=new RegExp(`^hsla\\(${RM},${ly},${ly},${RM}\\)$`),S7e={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};hOe(K3,KO,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:k7e,formatHex:k7e,formatHex8:SYn,formatHsl:kYn,formatRgb:O7e,toString:O7e});function k7e(){return this.rgb().formatHex()}function SYn(){return this.rgb().formatHex8()}function kYn(){return SOt(this).formatHsl()}function O7e(){return this.rgb().formatRgb()}function KO(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=mYn.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?_7e(t):n===3?new xf(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?vF(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?vF(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=gYn.exec(e))?new xf(t[1],t[2],t[3],1):(t=vYn.exec(e))?new xf(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=yYn.exec(e))?vF(t[1],t[2],t[3],t[4]):(t=bYn.exec(e))?vF(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=xYn.exec(e))?T7e(t[1],t[2]/100,t[3]/100,1):(t=wYn.exec(e))?T7e(t[1],t[2]/100,t[3]/100,t[4]):S7e.hasOwnProperty(e)?_7e(S7e[e]):e==="transparent"?new xf(NaN,NaN,NaN,0):null}function _7e(e){return new xf(e>>16&255,e>>8&255,e&255,1)}function vF(e,t,n,r){return r<=0&&(e=t=n=NaN),new xf(e,t,n,r)}function OYn(e){return e instanceof K3||(e=KO(e)),e?(e=e.rgb(),new xf(e.r,e.g,e.b,e.opacity)):new xf}function dve(e,t,n,r){return arguments.length===1?OYn(e):new xf(e,t,n,r??1)}function xf(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}hOe(xf,dve,wOt(K3,{brighter(e){return e=e==null?KB:Math.pow(KB,e),new xf(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?AM:Math.pow(AM,e),new xf(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new xf(aO(this.r),aO(this.g),aO(this.b),XB(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:C7e,formatHex:C7e,formatHex8:_Yn,formatRgb:E7e,toString:E7e}));function C7e(){return`#${Lk(this.r)}${Lk(this.g)}${Lk(this.b)}`}function _Yn(){return`#${Lk(this.r)}${Lk(this.g)}${Lk(this.b)}${Lk((isNaN(this.opacity)?1:this.opacity)*255)}`}function E7e(){const e=XB(this.opacity);return`${e===1?"rgb(":"rgba("}${aO(this.r)}, ${aO(this.g)}, ${aO(this.b)}${e===1?")":`, ${e})`}`}function XB(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function aO(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Lk(e){return e=aO(e),(e<16?"0":"")+e.toString(16)}function T7e(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new yg(e,t,n,r)}function SOt(e){if(e instanceof yg)return new yg(e.h,e.s,e.l,e.opacity);if(e instanceof K3||(e=KO(e)),!e)return new yg;if(e instanceof yg)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,s=Math.min(t,n,r),a=Math.max(t,n,r),i=NaN,l=a-s,c=(a+s)/2;return l?(t===a?i=(n-r)/l+(n<r)*6:n===a?i=(r-t)/l+2:i=(t-n)/l+4,l/=c<.5?a+s:2-a-s,i*=60):l=c>0&&c<1?0:i,new yg(i,l,c,e.opacity)}function CYn(e,t,n,r){return arguments.length===1?SOt(e):new yg(e,t,n,r??1)}function yg(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}hOe(yg,CYn,wOt(K3,{brighter(e){return e=e==null?KB:Math.pow(KB,e),new yg(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?AM:Math.pow(AM,e),new yg(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,s=2*n-r;return new xf(tne(e>=240?e-240:e+120,s,r),tne(e,s,r),tne(e<120?e+240:e-120,s,r),this.opacity)},clamp(){return new yg(j7e(this.h),yF(this.s),yF(this.l),XB(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=XB(this.opacity);return`${e===1?"hsl(":"hsla("}${j7e(this.h)}, ${yF(this.s)*100}%, ${yF(this.l)*100}%${e===1?")":`, ${e})`}`}}));function j7e(e){return e=(e||0)%360,e<0?e+360:e}function yF(e){return Math.max(0,Math.min(1,e||0))}function tne(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}const mOe=e=>()=>e;function EYn(e,t){return function(n){return e+n*t}}function TYn(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}function jYn(e){return(e=+e)==1?kOt:function(t,n){return n-t?TYn(t,n,e):mOe(isNaN(t)?n:t)}}function kOt(e,t){var n=t-e;return n?EYn(e,n):mOe(isNaN(e)?t:e)}const JB=(function e(t){var n=jYn(t);function r(s,a){var i=n((s=dve(s)).r,(a=dve(a)).r),l=n(s.g,a.g),c=n(s.b,a.b),u=kOt(s.opacity,a.opacity);return function(d){return s.r=i(d),s.g=l(d),s.b=c(d),s.opacity=u(d),s+""}}return r.gamma=e,r})(1);function NYn(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,r=t.slice(),s;return function(a){for(s=0;s<n;++s)r[s]=e[s]*(1-a)+t[s]*a;return r}}function IYn(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function AYn(e,t){var n=t?t.length:0,r=e?Math.min(n,e.length):0,s=new Array(r),a=new Array(n),i;for(i=0;i<r;++i)s[i]=yx(e[i],t[i]);for(;i<n;++i)a[i]=t[i];return function(l){for(i=0;i<r;++i)a[i]=s[i](l);return a}}function RYn(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function pg(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function PYn(e,t){var n={},r={},s;(e===null||typeof e!="object")&&(e={}),(t===null||typeof t!="object")&&(t={});for(s in t)s in e?n[s]=yx(e[s],t[s]):r[s]=t[s];return function(a){for(s in n)r[s]=n[s](a);return r}}var fve=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,nne=new RegExp(fve.source,"g");function $Yn(e){return function(){return e}}function MYn(e){return function(t){return e(t)+""}}function OOt(e,t){var n=fve.lastIndex=nne.lastIndex=0,r,s,a,i=-1,l=[],c=[];for(e=e+"",t=t+"";(r=fve.exec(e))&&(s=nne.exec(t));)(a=s.index)>n&&(a=t.slice(n,a),l[i]?l[i]+=a:l[++i]=a),(r=r[0])===(s=s[0])?l[i]?l[i]+=s:l[++i]=s:(l[++i]=null,c.push({i,x:pg(r,s)})),n=nne.lastIndex;return n<t.length&&(a=t.slice(n),l[i]?l[i]+=a:l[++i]=a),l.length<2?c[0]?MYn(c[0].x):$Yn(t):(t=c.length,function(u){for(var d=0,f;d<t;++d)l[(f=c[d]).i]=f.x(u);return l.join("")})}function yx(e,t){var n=typeof t,r;return t==null||n==="boolean"?mOe(t):(n==="number"?pg:n==="string"?(r=KO(t))?(t=r,JB):OOt:t instanceof KO?JB:t instanceof Date?RYn:IYn(t)?NYn:Array.isArray(t)?AYn:typeof t.valueOf!="function"&&typeof t.toString!="function"||isNaN(t)?PYn:pg)(e,t)}function gOe(e,t){return e=+e,t=+t,function(n){return Math.round(e*(1-n)+t*n)}}var N7e=180/Math.PI,pve={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function _Ot(e,t,n,r,s,a){var i,l,c;return(i=Math.sqrt(e*e+t*t))&&(e/=i,t/=i),(c=e*n+t*r)&&(n-=e*c,r-=t*c),(l=Math.sqrt(n*n+r*r))&&(n/=l,r/=l,c/=l),e*r<t*n&&(e=-e,t=-t,c=-c,i=-i),{translateX:s,translateY:a,rotate:Math.atan2(t,e)*N7e,skewX:Math.atan(c)*N7e,scaleX:i,scaleY:l}}var bF;function DYn(e){const t=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?pve:_Ot(t.a,t.b,t.c,t.d,t.e,t.f)}function LYn(e){return e==null||(bF||(bF=document.createElementNS("http://www.w3.org/2000/svg","g")),bF.setAttribute("transform",e),!(e=bF.transform.baseVal.consolidate()))?pve:(e=e.matrix,_Ot(e.a,e.b,e.c,e.d,e.e,e.f))}function COt(e,t,n,r){function s(u){return u.length?u.pop()+" ":""}function a(u,d,f,p,h,m){if(u!==f||d!==p){var v=h.push("translate(",null,t,null,n);m.push({i:v-4,x:pg(u,f)},{i:v-2,x:pg(d,p)})}else(f||p)&&h.push("translate("+f+t+p+n)}function i(u,d,f,p){u!==d?(u-d>180?d+=360:d-u>180&&(u+=360),p.push({i:f.push(s(f)+"rotate(",null,r)-2,x:pg(u,d)})):d&&f.push(s(f)+"rotate("+d+r)}function l(u,d,f,p){u!==d?p.push({i:f.push(s(f)+"skewX(",null,r)-2,x:pg(u,d)}):d&&f.push(s(f)+"skewX("+d+r)}function c(u,d,f,p,h,m){if(u!==f||d!==p){var v=h.push(s(h)+"scale(",null,",",null,")");m.push({i:v-4,x:pg(u,f)},{i:v-2,x:pg(d,p)})}else(f!==1||p!==1)&&h.push(s(h)+"scale("+f+","+p+")")}return function(u,d){var f=[],p=[];return u=e(u),d=e(d),a(u.translateX,u.translateY,d.translateX,d.translateY,f,p),i(u.rotate,d.rotate,f,p),l(u.skewX,d.skewX,f,p),c(u.scaleX,u.scaleY,d.scaleX,d.scaleY,f,p),u=d=null,function(h){for(var m=-1,v=p.length,y;++m<v;)f[(y=p[m]).i]=y.x(h);return f.join("")}}}var FYn=COt(DYn,"px, ","px)","deg)"),zYn=COt(LYn,", ",")",")"),BYn=1e-12;function I7e(e){return((e=Math.exp(e))+1/e)/2}function UYn(e){return((e=Math.exp(e))-1/e)/2}function qYn(e){return((e=Math.exp(2*e))-1)/(e+1)}const Z8=(function e(t,n,r){function s(a,i){var l=a[0],c=a[1],u=a[2],d=i[0],f=i[1],p=i[2],h=d-l,m=f-c,v=h*h+m*m,y,b;if(v<BYn)b=Math.log(p/u)/t,y=function(T){return[l+T*h,c+T*m,u*Math.exp(t*T*b)]};else{var x=Math.sqrt(v),S=(p*p-u*u+r*v)/(2*u*n*x),k=(p*p-u*u-r*v)/(2*p*n*x),_=Math.log(Math.sqrt(S*S+1)-S),C=Math.log(Math.sqrt(k*k+1)-k);b=(C-_)/t,y=function(T){var E=T*b,N=I7e(_),I=u/(n*x)*(N*qYn(t*E+_)-UYn(_));return[l+I*h,c+I*m,u*N/I7e(t*E+_)]}}return y.duration=b*1e3*t/Math.SQRT2,y}return s.rho=function(a){var i=Math.max(.001,+a),l=i*i,c=l*l;return e(i,l,c)},s})(Math.SQRT2,2,4);function VYn(e,t){t===void 0&&(t=e,e=yx);for(var n=0,r=t.length-1,s=t[0],a=new Array(r<0?0:r);n<r;)a[n]=e(s,s=t[++n]);return function(i){var l=Math.max(0,Math.min(r-1,Math.floor(i*=r)));return a[l](i-l)}}var tN=0,QP=0,RR=0,EOt=1e3,eU,YP,tU=0,XO=0,pW=0,PM=typeof performance=="object"&&performance.now?performance:Date,TOt=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function vOe(){return XO||(TOt(HYn),XO=PM.now()+pW)}function HYn(){XO=0}function nU(){this._call=this._time=this._next=null}nU.prototype=jOt.prototype={constructor:nU,restart:function(e,t,n){if(typeof e!="function")throw new TypeError("callback is not a function");n=(n==null?vOe():+n)+(t==null?0:+t),!this._next&&YP!==this&&(YP?YP._next=this:eU=this,YP=this),this._call=e,this._time=n,hve()},stop:function(){this._call&&(this._call=null,this._time=1/0,hve())}};function jOt(e,t,n){var r=new nU;return r.restart(e,t,n),r}function WYn(){vOe(),++tN;for(var e=eU,t;e;)(t=XO-e._time)>=0&&e._call.call(void 0,t),e=e._next;--tN}function A7e(){XO=(tU=PM.now())+pW,tN=QP=0;try{WYn()}finally{tN=0,GYn(),XO=0}}function ZYn(){var e=PM.now(),t=e-tU;t>EOt&&(pW-=t,tU=e)}function GYn(){for(var e,t=eU,n,r=1/0;t;)t._call?(r>t._time&&(r=t._time),e=t,t=t._next):(n=t._next,t._next=null,t=e?e._next=n:eU=n);YP=e,hve(r)}function hve(e){if(!tN){QP&&(QP=clearTimeout(QP));var t=e-XO;t>24?(e<1/0&&(QP=setTimeout(A7e,e-PM.now()-pW)),RR&&(RR=clearInterval(RR))):(RR||(tU=PM.now(),RR=setInterval(ZYn,EOt)),tN=1,TOt(A7e))}}function R7e(e,t,n){var r=new nU;return t=t==null?0:+t,r.restart(s=>{r.stop(),e(s+t)},t,n),r}var QYn=dW("start","end","cancel","interrupt"),YYn=[],NOt=0,P7e=1,mve=2,G8=3,$7e=4,gve=5,Q8=6;function hW(e,t,n,r,s,a){var i=e.__transition;if(!i)e.__transition={};else if(n in i)return;KYn(e,n,{name:t,index:r,group:s,on:QYn,tween:YYn,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:NOt})}function yOe(e,t){var n=Kg(e,t);if(n.state>NOt)throw new Error("too late; already scheduled");return n}function zy(e,t){var n=Kg(e,t);if(n.state>G8)throw new Error("too late; already running");return n}function Kg(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function KYn(e,t,n){var r=e.__transition,s;r[t]=n,n.timer=jOt(a,0,n.time);function a(u){n.state=P7e,n.timer.restart(i,n.delay,n.time),n.delay<=u&&i(u-n.delay)}function i(u){var d,f,p,h;if(n.state!==P7e)return c();for(d in r)if(h=r[d],h.name===n.name){if(h.state===G8)return R7e(i);h.state===$7e?(h.state=Q8,h.timer.stop(),h.on.call("interrupt",e,e.__data__,h.index,h.group),delete r[d]):+d<t&&(h.state=Q8,h.timer.stop(),h.on.call("cancel",e,e.__data__,h.index,h.group),delete r[d])}if(R7e(function(){n.state===G8&&(n.state=$7e,n.timer.restart(l,n.delay,n.time),l(u))}),n.state=mve,n.on.call("start",e,e.__data__,n.index,n.group),n.state===mve){for(n.state=G8,s=new Array(p=n.tween.length),d=0,f=-1;d<p;++d)(h=n.tween[d].value.call(e,e.__data__,n.index,n.group))&&(s[++f]=h);s.length=f+1}}function l(u){for(var d=u<n.duration?n.ease.call(null,u/n.duration):(n.timer.restart(c),n.state=gve,1),f=-1,p=s.length;++f<p;)s[f].call(e,d);n.state===gve&&(n.on.call("end",e,e.__data__,n.index,n.group),c())}function c(){n.state=Q8,n.timer.stop(),delete r[t];for(var u in r)return;delete e.__transition}}function Y8(e,t){var n=e.__transition,r,s,a=!0,i;if(n){t=t==null?null:t+"";for(i in n){if((r=n[i]).name!==t){a=!1;continue}s=r.state>mve&&r.state<gve,r.state=Q8,r.timer.stop(),r.on.call(s?"interrupt":"cancel",e,e.__data__,r.index,r.group),delete n[i]}a&&delete e.__transition}}function XYn(e){return this.each(function(){Y8(this,e)})}function JYn(e,t){var n,r;return function(){var s=zy(this,e),a=s.tween;if(a!==n){r=n=a;for(var i=0,l=r.length;i<l;++i)if(r[i].name===t){r=r.slice(),r.splice(i,1);break}}s.tween=r}}function eKn(e,t,n){var r,s;if(typeof n!="function")throw new Error;return function(){var a=zy(this,e),i=a.tween;if(i!==r){s=(r=i).slice();for(var l={name:t,value:n},c=0,u=s.length;c<u;++c)if(s[c].name===t){s[c]=l;break}c===u&&s.push(l)}a.tween=s}}function tKn(e,t){var n=this._id;if(e+="",arguments.length<2){for(var r=Kg(this.node(),n).tween,s=0,a=r.length,i;s<a;++s)if((i=r[s]).name===e)return i.value;return null}return this.each((t==null?JYn:eKn)(n,e,t))}function bOe(e,t,n){var r=e._id;return e.each(function(){var s=zy(this,r);(s.value||(s.value={}))[t]=n.apply(this,arguments)}),function(s){return Kg(s,r).value[t]}}function IOt(e,t){var n;return(typeof t=="number"?pg:t instanceof KO?JB:(n=KO(t))?(t=n,JB):OOt)(e,t)}function nKn(e){return function(){this.removeAttribute(e)}}function rKn(e){return function(){this.removeAttributeNS(e.space,e.local)}}function sKn(e,t,n){var r,s=n+"",a;return function(){var i=this.getAttribute(e);return i===s?null:i===r?a:a=t(r=i,n)}}function aKn(e,t,n){var r,s=n+"",a;return function(){var i=this.getAttributeNS(e.space,e.local);return i===s?null:i===r?a:a=t(r=i,n)}}function iKn(e,t,n){var r,s,a;return function(){var i,l=n(this),c;return l==null?void this.removeAttribute(e):(i=this.getAttribute(e),c=l+"",i===c?null:i===r&&c===s?a:(s=c,a=t(r=i,l)))}}function oKn(e,t,n){var r,s,a;return function(){var i,l=n(this),c;return l==null?void this.removeAttributeNS(e.space,e.local):(i=this.getAttributeNS(e.space,e.local),c=l+"",i===c?null:i===r&&c===s?a:(s=c,a=t(r=i,l)))}}function lKn(e,t){var n=fW(e),r=n==="transform"?zYn:IOt;return this.attrTween(e,typeof t=="function"?(n.local?oKn:iKn)(n,r,bOe(this,"attr."+e,t)):t==null?(n.local?rKn:nKn)(n):(n.local?aKn:sKn)(n,r,t))}function cKn(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function uKn(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function dKn(e,t){var n,r;function s(){var a=t.apply(this,arguments);return a!==r&&(n=(r=a)&&uKn(e,a)),n}return s._value=t,s}function fKn(e,t){var n,r;function s(){var a=t.apply(this,arguments);return a!==r&&(n=(r=a)&&cKn(e,a)),n}return s._value=t,s}function pKn(e,t){var n="attr."+e;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(t==null)return this.tween(n,null);if(typeof t!="function")throw new Error;var r=fW(e);return this.tween(n,(r.local?dKn:fKn)(r,t))}function hKn(e,t){return function(){yOe(this,e).delay=+t.apply(this,arguments)}}function mKn(e,t){return t=+t,function(){yOe(this,e).delay=t}}function gKn(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?hKn:mKn)(t,e)):Kg(this.node(),t).delay}function vKn(e,t){return function(){zy(this,e).duration=+t.apply(this,arguments)}}function yKn(e,t){return t=+t,function(){zy(this,e).duration=t}}function bKn(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?vKn:yKn)(t,e)):Kg(this.node(),t).duration}function xKn(e,t){if(typeof t!="function")throw new Error;return function(){zy(this,e).ease=t}}function wKn(e){var t=this._id;return arguments.length?this.each(xKn(t,e)):Kg(this.node(),t).ease}function SKn(e,t){return function(){var n=t.apply(this,arguments);if(typeof n!="function")throw new Error;zy(this,e).ease=n}}function kKn(e){if(typeof e!="function")throw new Error;return this.each(SKn(this._id,e))}function OKn(e){typeof e!="function"&&(e=lOt(e));for(var t=this._groups,n=t.length,r=new Array(n),s=0;s<n;++s)for(var a=t[s],i=a.length,l=r[s]=[],c,u=0;u<i;++u)(c=a[u])&&e.call(c,c.__data__,u,a)&&l.push(c);return new Lx(r,this._parents,this._name,this._id)}function _Kn(e){if(e._id!==this._id)throw new Error;for(var t=this._groups,n=e._groups,r=t.length,s=n.length,a=Math.min(r,s),i=new Array(r),l=0;l<a;++l)for(var c=t[l],u=n[l],d=c.length,f=i[l]=new Array(d),p,h=0;h<d;++h)(p=c[h]||u[h])&&(f[h]=p);for(;l<r;++l)i[l]=t[l];return new Lx(i,this._parents,this._name,this._id)}function CKn(e){return(e+"").trim().split(/^|\s+/).every(function(t){var n=t.indexOf(".");return n>=0&&(t=t.slice(0,n)),!t||t==="start"})}function EKn(e,t,n){var r,s,a=CKn(t)?yOe:zy;return function(){var i=a(this,e),l=i.on;l!==r&&(s=(r=l).copy()).on(t,n),i.on=s}}function TKn(e,t){var n=this._id;return arguments.length<2?Kg(this.node(),n).on.on(e):this.each(EKn(n,e,t))}function jKn(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function NKn(){return this.on("end.remove",jKn(this._id))}function IKn(e){var t=this._name,n=this._id;typeof e!="function"&&(e=fOe(e));for(var r=this._groups,s=r.length,a=new Array(s),i=0;i<s;++i)for(var l=r[i],c=l.length,u=a[i]=new Array(c),d,f,p=0;p<c;++p)(d=l[p])&&(f=e.call(d,d.__data__,p,l))&&("__data__"in d&&(f.__data__=d.__data__),u[p]=f,hW(u[p],t,n,p,u,Kg(d,n)));return new Lx(a,this._parents,t,n)}function AKn(e){var t=this._name,n=this._id;typeof e!="function"&&(e=oOt(e));for(var r=this._groups,s=r.length,a=[],i=[],l=0;l<s;++l)for(var c=r[l],u=c.length,d,f=0;f<u;++f)if(d=c[f]){for(var p=e.call(d,d.__data__,f,c),h,m=Kg(d,n),v=0,y=p.length;v<y;++v)(h=p[v])&&hW(h,t,n,v,p,m);a.push(p),i.push(d)}return new Lx(a,i,t,n)}var RKn=Y3.prototype.constructor;function PKn(){return new RKn(this._groups,this._parents)}function $Kn(e,t){var n,r,s;return function(){var a=eN(this,e),i=(this.style.removeProperty(e),eN(this,e));return a===i?null:a===n&&i===r?s:s=t(n=a,r=i)}}function AOt(e){return function(){this.style.removeProperty(e)}}function MKn(e,t,n){var r,s=n+"",a;return function(){var i=eN(this,e);return i===s?null:i===r?a:a=t(r=i,n)}}function DKn(e,t,n){var r,s,a;return function(){var i=eN(this,e),l=n(this),c=l+"";return l==null&&(c=l=(this.style.removeProperty(e),eN(this,e))),i===c?null:i===r&&c===s?a:(s=c,a=t(r=i,l))}}function LKn(e,t){var n,r,s,a="style."+t,i="end."+a,l;return function(){var c=zy(this,e),u=c.on,d=c.value[a]==null?l||(l=AOt(t)):void 0;(u!==n||s!==d)&&(r=(n=u).copy()).on(i,s=d),c.on=r}}function FKn(e,t,n){var r=(e+="")=="transform"?FYn:IOt;return t==null?this.styleTween(e,$Kn(e,r)).on("end.style."+e,AOt(e)):typeof t=="function"?this.styleTween(e,DKn(e,r,bOe(this,"style."+e,t))).each(LKn(this._id,e)):this.styleTween(e,MKn(e,r,t),n).on("end.style."+e,null)}function zKn(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}function BKn(e,t,n){var r,s;function a(){var i=t.apply(this,arguments);return i!==s&&(r=(s=i)&&zKn(e,i,n)),r}return a._value=t,a}function UKn(e,t,n){var r="style."+(e+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(t==null)return this.tween(r,null);if(typeof t!="function")throw new Error;return this.tween(r,BKn(e,t,n??""))}function qKn(e){return function(){this.textContent=e}}function VKn(e){return function(){var t=e(this);this.textContent=t??""}}function HKn(e){return this.tween("text",typeof e=="function"?VKn(bOe(this,"text",e)):qKn(e==null?"":e+""))}function WKn(e){return function(t){this.textContent=e.call(this,t)}}function ZKn(e){var t,n;function r(){var s=e.apply(this,arguments);return s!==n&&(t=(n=s)&&WKn(s)),t}return r._value=e,r}function GKn(e){var t="text";if(arguments.length<1)return(t=this.tween(t))&&t._value;if(e==null)return this.tween(t,null);if(typeof e!="function")throw new Error;return this.tween(t,ZKn(e))}function QKn(){for(var e=this._name,t=this._id,n=ROt(),r=this._groups,s=r.length,a=0;a<s;++a)for(var i=r[a],l=i.length,c,u=0;u<l;++u)if(c=i[u]){var d=Kg(c,t);hW(c,e,n,u,i,{time:d.time+d.delay+d.duration,delay:0,duration:d.duration,ease:d.ease})}return new Lx(r,this._parents,e,n)}function YKn(){var e,t,n=this,r=n._id,s=n.size();return new Promise(function(a,i){var l={value:i},c={value:function(){--s===0&&a()}};n.each(function(){var u=zy(this,r),d=u.on;d!==e&&(t=(e=d).copy(),t._.cancel.push(l),t._.interrupt.push(l),t._.end.push(c)),u.on=t}),s===0&&a()})}var KKn=0;function Lx(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}function ROt(){return++KKn}var kb=Y3.prototype;Lx.prototype={constructor:Lx,select:IKn,selectAll:AKn,selectChild:kb.selectChild,selectChildren:kb.selectChildren,filter:OKn,merge:_Kn,selection:PKn,transition:QKn,call:kb.call,nodes:kb.nodes,node:kb.node,size:kb.size,empty:kb.empty,each:kb.each,on:TKn,attr:lKn,attrTween:pKn,style:FKn,styleTween:UKn,text:HKn,textTween:GKn,remove:NKn,tween:tKn,delay:gKn,duration:bKn,ease:wKn,easeVarying:kKn,end:YKn,[Symbol.iterator]:kb[Symbol.iterator]};function XKn(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var JKn={time:null,delay:0,duration:250,ease:XKn};function eXn(e,t){for(var n;!(n=e.__transition)||!(n=n[t]);)if(!(e=e.parentNode))throw new Error(`transition ${t} not found`);return n}function tXn(e){var t,n;e instanceof Lx?(t=e._id,e=e._name):(t=ROt(),(n=JKn).time=vOe(),e=e==null?null:e+"");for(var r=this._groups,s=r.length,a=0;a<s;++a)for(var i=r[a],l=i.length,c,u=0;u<l;++u)(c=i[u])&&hW(c,e,t,u,i,n||eXn(c,t));return new Lx(r,this._parents,e,t)}Y3.prototype.interrupt=XYn;Y3.prototype.transition=tXn;const xF=e=>()=>e;function nXn(e,{sourceEvent:t,target:n,transform:r,dispatch:s}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:s}})}function ax(e,t,n){this.k=e,this.x=t,this.y=n}ax.prototype={constructor:ax,scale:function(e){return e===1?this:new ax(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new ax(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var mW=new ax(1,0,0);POt.prototype=ax.prototype;function POt(e){for(;!e.__zoom;)if(!(e=e.parentNode))return mW;return e.__zoom}function rne(e){e.stopImmediatePropagation()}function PR(e){e.preventDefault(),e.stopImmediatePropagation()}function rXn(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function sXn(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e,e.hasAttribute("viewBox")?(e=e.viewBox.baseVal,[[e.x,e.y],[e.x+e.width,e.y+e.height]]):[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]):[[0,0],[e.clientWidth,e.clientHeight]]}function M7e(){return this.__zoom||mW}function aXn(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function iXn(){return navigator.maxTouchPoints||"ontouchstart"in this}function oXn(e,t,n){var r=e.invertX(t[0][0])-n[0][0],s=e.invertX(t[1][0])-n[1][0],a=e.invertY(t[0][1])-n[0][1],i=e.invertY(t[1][1])-n[1][1];return e.translate(s>r?(r+s)/2:Math.min(0,r)||Math.max(0,s),i>a?(a+i)/2:Math.min(0,a)||Math.max(0,i))}function $Ot(){var e=rXn,t=sXn,n=oXn,r=aXn,s=iXn,a=[0,1/0],i=[[-1/0,-1/0],[1/0,1/0]],l=250,c=Z8,u=dW("start","zoom","end"),d,f,p,h=500,m=150,v=0,y=10;function b(D){D.property("__zoom",M7e).on("wheel.zoom",E,{passive:!1}).on("mousedown.zoom",N).on("dblclick.zoom",I).filter(s).on("touchstart.zoom",A).on("touchmove.zoom",R).on("touchend.zoom touchcancel.zoom",L).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}b.transform=function(D,F,H,B){var z=D.selection?D.selection():D;z.property("__zoom",M7e),D!==z?_(D,F,H,B):z.interrupt().each(function(){C(this,arguments).event(B).start().zoom(null,typeof F=="function"?F.apply(this,arguments):F).end()})},b.scaleBy=function(D,F,H,B){b.scaleTo(D,function(){var z=this.__zoom.k,V=typeof F=="function"?F.apply(this,arguments):F;return z*V},H,B)},b.scaleTo=function(D,F,H,B){b.transform(D,function(){var z=t.apply(this,arguments),V=this.__zoom,M=H==null?k(z):typeof H=="function"?H.apply(this,arguments):H,G=V.invert(M),U=typeof F=="function"?F.apply(this,arguments):F;return n(S(x(V,U),M,G),z,i)},H,B)},b.translateBy=function(D,F,H,B){b.transform(D,function(){return n(this.__zoom.translate(typeof F=="function"?F.apply(this,arguments):F,typeof H=="function"?H.apply(this,arguments):H),t.apply(this,arguments),i)},null,B)},b.translateTo=function(D,F,H,B,z){b.transform(D,function(){var V=t.apply(this,arguments),M=this.__zoom,G=B==null?k(V):typeof B=="function"?B.apply(this,arguments):B;return n(mW.translate(G[0],G[1]).scale(M.k).translate(typeof F=="function"?-F.apply(this,arguments):-F,typeof H=="function"?-H.apply(this,arguments):-H),V,i)},B,z)};function x(D,F){return F=Math.max(a[0],Math.min(a[1],F)),F===D.k?D:new ax(F,D.x,D.y)}function S(D,F,H){var B=F[0]-H[0]*D.k,z=F[1]-H[1]*D.k;return B===D.x&&z===D.y?D:new ax(D.k,B,z)}function k(D){return[(+D[0][0]+ +D[1][0])/2,(+D[0][1]+ +D[1][1])/2]}function _(D,F,H,B){D.on("start.zoom",function(){C(this,arguments).event(B).start()}).on("interrupt.zoom end.zoom",function(){C(this,arguments).event(B).end()}).tween("zoom",function(){var z=this,V=arguments,M=C(z,V).event(B),G=t.apply(z,V),U=H==null?k(G):typeof H=="function"?H.apply(z,V):H,$=Math.max(G[1][0]-G[0][0],G[1][1]-G[0][1]),q=z.__zoom,Z=typeof F=="function"?F.apply(z,V):F,Y=c(q.invert(U).concat($/q.k),Z.invert(U).concat($/Z.k));return function(ne){if(ne===1)ne=Z;else{var J=Y(ne),ee=$/J[2];ne=new ax(ee,U[0]-J[0]*ee,U[1]-J[1]*ee)}M.zoom(null,ne)}})}function C(D,F,H){return!H&&D.__zooming||new T(D,F)}function T(D,F){this.that=D,this.args=F,this.active=0,this.sourceEvent=null,this.extent=t.apply(D,F),this.taps=0}T.prototype={event:function(D){return D&&(this.sourceEvent=D),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(D,F){return this.mouse&&D!=="mouse"&&(this.mouse[1]=F.invert(this.mouse[0])),this.touch0&&D!=="touch"&&(this.touch0[1]=F.invert(this.touch0[0])),this.touch1&&D!=="touch"&&(this.touch1[1]=F.invert(this.touch1[0])),this.that.__zoom=F,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(D){var F=_p(this.that).datum();u.call(D,this.that,new nXn(D,{sourceEvent:this.sourceEvent,target:b,transform:this.that.__zoom,dispatch:u}),F)}};function E(D,...F){if(!e.apply(this,arguments))return;var H=C(this,F).event(D),B=this.__zoom,z=Math.max(a[0],Math.min(a[1],B.k*Math.pow(2,r.apply(this,arguments)))),V=dg(D);if(H.wheel)(H.mouse[0][0]!==V[0]||H.mouse[0][1]!==V[1])&&(H.mouse[1]=B.invert(H.mouse[0]=V)),clearTimeout(H.wheel);else{if(B.k===z)return;H.mouse=[V,B.invert(V)],Y8(this),H.start()}PR(D),H.wheel=setTimeout(M,m),H.zoom("mouse",n(S(x(B,z),H.mouse[0],H.mouse[1]),H.extent,i));function M(){H.wheel=null,H.end()}}function N(D,...F){if(p||!e.apply(this,arguments))return;var H=D.currentTarget,B=C(this,F,!0).event(D),z=_p(D.view).on("mousemove.zoom",U,!0).on("mouseup.zoom",$,!0),V=dg(D,H),M=D.clientX,G=D.clientY;yOt(D.view),rne(D),B.mouse=[V,this.__zoom.invert(V)],Y8(this),B.start();function U(q){if(PR(q),!B.moved){var Z=q.clientX-M,Y=q.clientY-G;B.moved=Z*Z+Y*Y>v}B.event(q).zoom("mouse",n(S(B.that.__zoom,B.mouse[0]=dg(q,H),B.mouse[1]),B.extent,i))}function $(q){z.on("mousemove.zoom mouseup.zoom",null),bOt(q.view,B.moved),PR(q),B.event(q).end()}}function I(D,...F){if(e.apply(this,arguments)){var H=this.__zoom,B=dg(D.changedTouches?D.changedTouches[0]:D,this),z=H.invert(B),V=H.k*(D.shiftKey?.5:2),M=n(S(x(H,V),B,z),t.apply(this,F),i);PR(D),l>0?_p(this).transition().duration(l).call(_,M,B,D):_p(this).call(b.transform,M,B,D)}}function A(D,...F){if(e.apply(this,arguments)){var H=D.touches,B=H.length,z=C(this,F,D.changedTouches.length===B).event(D),V,M,G,U;for(rne(D),M=0;M<B;++M)G=H[M],U=dg(G,this),U=[U,this.__zoom.invert(U),G.identifier],z.touch0?!z.touch1&&z.touch0[2]!==U[2]&&(z.touch1=U,z.taps=0):(z.touch0=U,V=!0,z.taps=1+!!d);d&&(d=clearTimeout(d)),V&&(z.taps<2&&(f=U[0],d=setTimeout(function(){d=null},h)),Y8(this),z.start())}}function R(D,...F){if(this.__zooming){var H=C(this,F).event(D),B=D.changedTouches,z=B.length,V,M,G,U;for(PR(D),V=0;V<z;++V)M=B[V],G=dg(M,this),H.touch0&&H.touch0[2]===M.identifier?H.touch0[0]=G:H.touch1&&H.touch1[2]===M.identifier&&(H.touch1[0]=G);if(M=H.that.__zoom,H.touch1){var $=H.touch0[0],q=H.touch0[1],Z=H.touch1[0],Y=H.touch1[1],ne=(ne=Z[0]-$[0])*ne+(ne=Z[1]-$[1])*ne,J=(J=Y[0]-q[0])*J+(J=Y[1]-q[1])*J;M=x(M,Math.sqrt(ne/J)),G=[($[0]+Z[0])/2,($[1]+Z[1])/2],U=[(q[0]+Y[0])/2,(q[1]+Y[1])/2]}else if(H.touch0)G=H.touch0[0],U=H.touch0[1];else return;H.zoom("touch",n(S(M,G,U),H.extent,i))}}function L(D,...F){if(this.__zooming){var H=C(this,F).event(D),B=D.changedTouches,z=B.length,V,M;for(rne(D),p&&clearTimeout(p),p=setTimeout(function(){p=null},h),V=0;V<z;++V)M=B[V],H.touch0&&H.touch0[2]===M.identifier?delete H.touch0:H.touch1&&H.touch1[2]===M.identifier&&delete H.touch1;if(H.touch1&&!H.touch0&&(H.touch0=H.touch1,delete H.touch1),H.touch0)H.touch0[1]=this.__zoom.invert(H.touch0[0]);else if(H.end(),H.taps===2&&(M=dg(M,this),Math.hypot(f[0]-M[0],f[1]-M[1])<y)){var G=_p(this).on("dblclick.zoom");G&&G.apply(this,arguments)}}}return b.wheelDelta=function(D){return arguments.length?(r=typeof D=="function"?D:xF(+D),b):r},b.filter=function(D){return arguments.length?(e=typeof D=="function"?D:xF(!!D),b):e},b.touchable=function(D){return arguments.length?(s=typeof D=="function"?D:xF(!!D),b):s},b.extent=function(D){return arguments.length?(t=typeof D=="function"?D:xF([[+D[0][0],+D[0][1]],[+D[1][0],+D[1][1]]]),b):t},b.scaleExtent=function(D){return arguments.length?(a[0]=+D[0],a[1]=+D[1],b):[a[0],a[1]]},b.translateExtent=function(D){return arguments.length?(i[0][0]=+D[0][0],i[1][0]=+D[1][0],i[0][1]=+D[0][1],i[1][1]=+D[1][1],b):[[i[0][0],i[0][1]],[i[1][0],i[1][1]]]},b.constrain=function(D){return arguments.length?(n=D,b):n},b.duration=function(D){return arguments.length?(l=+D,b):l},b.interpolate=function(D){return arguments.length?(c=D,b):c},b.on=function(){var D=u.on.apply(u,arguments);return D===u?b:D},b.clickDistance=function(D){return arguments.length?(v=(D=+D)*D,b):Math.sqrt(v)},b.tapDistance=function(D){return arguments.length?(y=+D,b):y},b}const Sy={error001:()=>"[React Flow]: Seems like you have not used zustand provider as an ancestor. Help: https://reactflow.dev/error#001",error002:()=>"It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.",error003:e=>`Node type "${e}" not found. Using fallback type "default".`,error004:()=>"The React Flow parent container needs a width and a height to render the graph.",error005:()=>"Only child nodes can use a parent extent.",error006:()=>"Can't create edge. An edge needs a source and a target.",error007:e=>`The old edge with id=${e} does not exist.`,error009:e=>`Marker type "${e}" doesn't exist.`,error008:(e,{id:t,sourceHandle:n,targetHandle:r})=>`Couldn't create edge for ${e} handle id: "${e==="source"?n:r}", edge id: ${t}.`,error010:()=>"Handle: No node id found. Make sure to only use a Handle inside a custom Node.",error011:e=>`Edge type "${e}" not found. Using fallback type "default".`,error012:e=>`Node with id "${e}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`,error013:(e="react")=>`It seems that you haven't loaded the styles. Please import '@xyflow/${e}/dist/style.css' or base.css to make sure everything is working properly.`,error014:()=>"useNodeConnections: No node ID found. Call useNodeConnections inside a custom Node or provide a node ID.",error015:()=>"It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs."},$M=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],MOt=["Enter"," ","Escape"],DOt={"node.a11yDescription.default":"Press enter or space to select a node. Press delete to remove it and escape to cancel.","node.a11yDescription.keyboardDisabled":"Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.","node.a11yDescription.ariaLiveMessage":({direction:e,x:t,y:n})=>`Moved selected node ${e}. New position, x: ${t}, y: ${n}`,"edge.a11yDescription.default":"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.","controls.ariaLabel":"Control Panel","controls.zoomIn.ariaLabel":"Zoom In","controls.zoomOut.ariaLabel":"Zoom Out","controls.fitView.ariaLabel":"Fit View","controls.interactive.ariaLabel":"Toggle Interactivity","minimap.ariaLabel":"Mini Map","handle.ariaLabel":"Handle"};var nN;(function(e){e.Strict="strict",e.Loose="loose"})(nN||(nN={}));var iO;(function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"})(iO||(iO={}));var MM;(function(e){e.Partial="partial",e.Full="full"})(MM||(MM={}));const LOt={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null};var Cw;(function(e){e.Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier"})(Cw||(Cw={}));var DM;(function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"})(DM||(DM={}));var nr;(function(e){e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom"})(nr||(nr={}));const D7e={[nr.Left]:nr.Right,[nr.Right]:nr.Left,[nr.Top]:nr.Bottom,[nr.Bottom]:nr.Top};function FOt(e){return e===null?null:e?"valid":"invalid"}const zOt=e=>"id"in e&&"source"in e&&"target"in e,lXn=e=>"id"in e&&"position"in e&&!("source"in e)&&!("target"in e),xOe=e=>"id"in e&&"internals"in e&&!("source"in e)&&!("target"in e),X3=(e,t=[0,0])=>{const{width:n,height:r}=c0(e),s=e.origin??t,a=n*s[0],i=r*s[1];return{x:e.position.x-a,y:e.position.y-i}},cXn=(e,t={nodeOrigin:[0,0]})=>{if(e.length===0)return{x:0,y:0,width:0,height:0};const n=e.reduce((r,s)=>{const a=typeof s=="string";let i=!t.nodeLookup&&!a?s:void 0;t.nodeLookup&&(i=a?t.nodeLookup.get(s):xOe(s)?s:t.nodeLookup.get(s.id));const l=i?rU(i,t.nodeOrigin):{x:0,y:0,x2:0,y2:0};return gW(r,l)},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return vW(n)},J3=(e,t={})=>{let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0},r=!1;return e.forEach(s=>{(t.filter===void 0||t.filter(s))&&(n=gW(n,rU(s)),r=!0)}),r?vW(n):{x:0,y:0,width:0,height:0}},wOe=(e,t,[n,r,s]=[0,0,1],a=!1,i=!1)=>{const l={...t4(t,[n,r,s]),width:t.width/s,height:t.height/s},c=[];for(const u of e.values()){const{measured:d,selectable:f=!0,hidden:p=!1}=u;if(i&&!f||p)continue;const h=d.width??u.width??u.initialWidth??null,m=d.height??u.height??u.initialHeight??null,v=LM(l,sN(u)),y=(h??0)*(m??0),b=a&&v>0;(!u.internals.handleBounds||b||v>=y||u.dragging)&&c.push(u)}return c},uXn=(e,t)=>{const n=new Set;return e.forEach(r=>{n.add(r.id)}),t.filter(r=>n.has(r.source)||n.has(r.target))};function dXn(e,t){const n=new Map,r=t?.nodes?new Set(t.nodes.map(s=>s.id)):null;return e.forEach(s=>{s.measured.width&&s.measured.height&&(t?.includeHiddenNodes||!s.hidden)&&(!r||r.has(s.id))&&n.set(s.id,s)}),n}async function fXn({nodes:e,width:t,height:n,panZoom:r,minZoom:s,maxZoom:a},i){if(e.size===0)return Promise.resolve(!0);const l=dXn(e,i),c=J3(l),u=SOe(c,t,n,i?.minZoom??s,i?.maxZoom??a,i?.padding??.1);return await r.setViewport(u,{duration:i?.duration,ease:i?.ease,interpolate:i?.interpolate}),Promise.resolve(!0)}function BOt({nodeId:e,nextPosition:t,nodeLookup:n,nodeOrigin:r=[0,0],nodeExtent:s,onError:a}){const i=n.get(e),l=i.parentId?n.get(i.parentId):void 0,{x:c,y:u}=l?l.internals.positionAbsolute:{x:0,y:0},d=i.origin??r;let f=i.extent||s;if(i.extent==="parent"&&!i.expandParent)if(!l)a?.("005",Sy.error005());else{const h=l.measured.width,m=l.measured.height;h&&m&&(f=[[c,u],[c+h,u+m]])}else l&&aN(i.extent)&&(f=[[i.extent[0][0]+c,i.extent[0][1]+u],[i.extent[1][0]+c,i.extent[1][1]+u]]);const p=aN(f)?JO(t,f,i.measured):t;return(i.measured.width===void 0||i.measured.height===void 0)&&a?.("015",Sy.error015()),{position:{x:p.x-c+(i.measured.width??0)*d[0],y:p.y-u+(i.measured.height??0)*d[1]},positionAbsolute:p}}async function pXn({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:r,onBeforeDelete:s}){const a=new Set(e.map(p=>p.id)),i=[];for(const p of n){if(p.deletable===!1)continue;const h=a.has(p.id),m=!h&&p.parentId&&i.find(v=>v.id===p.parentId);(h||m)&&i.push(p)}const l=new Set(t.map(p=>p.id)),c=r.filter(p=>p.deletable!==!1),d=uXn(i,c);for(const p of c)l.has(p.id)&&!d.find(m=>m.id===p.id)&&d.push(p);if(!s)return{edges:d,nodes:i};const f=await s({nodes:i,edges:d});return typeof f=="boolean"?f?{edges:d,nodes:i}:{edges:[],nodes:[]}:f}const rN=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),JO=(e={x:0,y:0},t,n)=>({x:rN(e.x,t[0][0],t[1][0]-(n?.width??0)),y:rN(e.y,t[0][1],t[1][1]-(n?.height??0))});function UOt(e,t,n){const{width:r,height:s}=c0(n),{x:a,y:i}=n.internals.positionAbsolute;return JO(e,[[a,i],[a+r,i+s]],t)}const L7e=(e,t,n)=>e<t?rN(Math.abs(e-t),1,t)/t:e>n?-rN(Math.abs(e-n),1,t)/t:0,qOt=(e,t,n=15,r=40)=>{const s=L7e(e.x,r,t.width-r)*n,a=L7e(e.y,r,t.height-r)*n;return[s,a]},gW=(e,t)=>({x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),x2:Math.max(e.x2,t.x2),y2:Math.max(e.y2,t.y2)}),vve=({x:e,y:t,width:n,height:r})=>({x:e,y:t,x2:e+n,y2:t+r}),vW=({x:e,y:t,x2:n,y2:r})=>({x:e,y:t,width:n-e,height:r-t}),sN=(e,t=[0,0])=>{const{x:n,y:r}=xOe(e)?e.internals.positionAbsolute:X3(e,t);return{x:n,y:r,width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}},rU=(e,t=[0,0])=>{const{x:n,y:r}=xOe(e)?e.internals.positionAbsolute:X3(e,t);return{x:n,y:r,x2:n+(e.measured?.width??e.width??e.initialWidth??0),y2:r+(e.measured?.height??e.height??e.initialHeight??0)}},VOt=(e,t)=>vW(gW(vve(e),vve(t))),LM=(e,t)=>{const n=Math.max(0,Math.min(e.x+e.width,t.x+t.width)-Math.max(e.x,t.x)),r=Math.max(0,Math.min(e.y+e.height,t.y+t.height)-Math.max(e.y,t.y));return Math.ceil(n*r)},F7e=e=>kg(e.width)&&kg(e.height)&&kg(e.x)&&kg(e.y),kg=e=>!isNaN(e)&&isFinite(e),hXn=(e,t)=>{},e4=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),t4=({x:e,y:t},[n,r,s],a=!1,i=[1,1])=>{const l={x:(e-n)/s,y:(t-r)/s};return a?e4(l,i):l},sU=({x:e,y:t},[n,r,s])=>({x:e*s+n,y:t*s+r});function mE(e,t){if(typeof e=="number")return Math.floor((t-t/(1+e))*.5);if(typeof e=="string"&&e.endsWith("px")){const n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(n)}if(typeof e=="string"&&e.endsWith("%")){const n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(t*n*.01)}return console.error(`[React Flow] The padding value "${e}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}function mXn(e,t,n){if(typeof e=="string"||typeof e=="number"){const r=mE(e,n),s=mE(e,t);return{top:r,right:s,bottom:r,left:s,x:s*2,y:r*2}}if(typeof e=="object"){const r=mE(e.top??e.y??0,n),s=mE(e.bottom??e.y??0,n),a=mE(e.left??e.x??0,t),i=mE(e.right??e.x??0,t);return{top:r,right:i,bottom:s,left:a,x:a+i,y:r+s}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function gXn(e,t,n,r,s,a){const{x:i,y:l}=sU(e,[t,n,r]),{x:c,y:u}=sU({x:e.x+e.width,y:e.y+e.height},[t,n,r]),d=s-c,f=a-u;return{left:Math.floor(i),top:Math.floor(l),right:Math.floor(d),bottom:Math.floor(f)}}const SOe=(e,t,n,r,s,a)=>{const i=mXn(a,t,n),l=(t-i.x)/e.width,c=(n-i.y)/e.height,u=Math.min(l,c),d=rN(u,r,s),f=e.x+e.width/2,p=e.y+e.height/2,h=t/2-f*d,m=n/2-p*d,v=gXn(e,h,m,d,t,n),y={left:Math.min(v.left-i.left,0),top:Math.min(v.top-i.top,0),right:Math.min(v.right-i.right,0),bottom:Math.min(v.bottom-i.bottom,0)};return{x:h-y.left+y.right,y:m-y.top+y.bottom,zoom:d}},FM=()=>typeof navigator<"u"&&navigator?.userAgent?.indexOf("Mac")>=0;function aN(e){return e!=null&&e!=="parent"}function c0(e){return{width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}}function HOt(e){return(e.measured?.width??e.width??e.initialWidth)!==void 0&&(e.measured?.height??e.height??e.initialHeight)!==void 0}function WOt(e,t={width:0,height:0},n,r,s){const a={...e},i=r.get(n);if(i){const l=i.origin||s;a.x+=i.internals.positionAbsolute.x-(t.width??0)*l[0],a.y+=i.internals.positionAbsolute.y-(t.height??0)*l[1]}return a}function z7e(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function vXn(){let e,t;return{promise:new Promise((r,s)=>{e=r,t=s}),resolve:e,reject:t}}function yXn(e){return{...DOt,...e||{}}}function A2(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:r,containerBounds:s}){const{x:a,y:i}=Og(e),l=t4({x:a-(s?.left??0),y:i-(s?.top??0)},r),{x:c,y:u}=n?e4(l,t):l;return{xSnapped:c,ySnapped:u,...l}}const kOe=e=>({width:e.offsetWidth,height:e.offsetHeight}),ZOt=e=>e?.getRootNode?.()||window?.document,bXn=["INPUT","SELECT","TEXTAREA"];function GOt(e){const t=e.composedPath?.()?.[0]||e.target;return t?.nodeType!==1?!1:bXn.includes(t.nodeName)||t.hasAttribute("contenteditable")||!!t.closest(".nokey")}const QOt=e=>"clientX"in e,Og=(e,t)=>{const n=QOt(e),r=n?e.clientX:e.touches?.[0].clientX,s=n?e.clientY:e.touches?.[0].clientY;return{x:r-(t?.left??0),y:s-(t?.top??0)}},B7e=(e,t,n,r,s)=>{const a=t.querySelectorAll(`.${e}`);return!a||!a.length?null:Array.from(a).map(i=>{const l=i.getBoundingClientRect();return{id:i.getAttribute("data-handleid"),type:e,nodeId:s,position:i.getAttribute("data-handlepos"),x:(l.left-n.left)/r,y:(l.top-n.top)/r,...kOe(i)}})};function YOt({sourceX:e,sourceY:t,targetX:n,targetY:r,sourceControlX:s,sourceControlY:a,targetControlX:i,targetControlY:l}){const c=e*.125+s*.375+i*.375+n*.125,u=t*.125+a*.375+l*.375+r*.125,d=Math.abs(c-e),f=Math.abs(u-t);return[c,u,d,f]}function wF(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function U7e({pos:e,x1:t,y1:n,x2:r,y2:s,c:a}){switch(e){case nr.Left:return[t-wF(t-r,a),n];case nr.Right:return[t+wF(r-t,a),n];case nr.Top:return[t,n-wF(n-s,a)];case nr.Bottom:return[t,n+wF(s-n,a)]}}function OOe({sourceX:e,sourceY:t,sourcePosition:n=nr.Bottom,targetX:r,targetY:s,targetPosition:a=nr.Top,curvature:i=.25}){const[l,c]=U7e({pos:n,x1:e,y1:t,x2:r,y2:s,c:i}),[u,d]=U7e({pos:a,x1:r,y1:s,x2:e,y2:t,c:i}),[f,p,h,m]=YOt({sourceX:e,sourceY:t,targetX:r,targetY:s,sourceControlX:l,sourceControlY:c,targetControlX:u,targetControlY:d});return[`M${e},${t} C${l},${c} ${u},${d} ${r},${s}`,f,p,h,m]}function KOt({sourceX:e,sourceY:t,targetX:n,targetY:r}){const s=Math.abs(n-e)/2,a=n<e?n+s:n-s,i=Math.abs(r-t)/2,l=r<t?r+i:r-i;return[a,l,s,i]}function xXn({sourceNode:e,targetNode:t,selected:n=!1,zIndex:r=0,elevateOnSelect:s=!1,zIndexMode:a="basic"}){if(a==="manual")return r;const i=s&&n?r+1e3:r,l=Math.max(e.parentId||s&&e.selected?e.internals.z:0,t.parentId||s&&t.selected?t.internals.z:0);return i+l}function wXn({sourceNode:e,targetNode:t,width:n,height:r,transform:s}){const a=gW(rU(e),rU(t));a.x===a.x2&&(a.x2+=1),a.y===a.y2&&(a.y2+=1);const i={x:-s[0]/s[2],y:-s[1]/s[2],width:n/s[2],height:r/s[2]};return LM(i,vW(a))>0}const SXn=({source:e,sourceHandle:t,target:n,targetHandle:r})=>`xy-edge__${e}${t||""}-${n}${r||""}`,kXn=(e,t)=>t.some(n=>n.source===e.source&&n.target===e.target&&(n.sourceHandle===e.sourceHandle||!n.sourceHandle&&!e.sourceHandle)&&(n.targetHandle===e.targetHandle||!n.targetHandle&&!e.targetHandle)),OXn=(e,t,n={})=>{if(!e.source||!e.target)return t;const r=n.getEdgeId||SXn;let s;return zOt(e)?s={...e}:s={...e,id:r(e)},kXn(s,t)?t:(s.sourceHandle===null&&delete s.sourceHandle,s.targetHandle===null&&delete s.targetHandle,t.concat(s))};function XOt({sourceX:e,sourceY:t,targetX:n,targetY:r}){const[s,a,i,l]=KOt({sourceX:e,sourceY:t,targetX:n,targetY:r});return[`M ${e},${t}L ${n},${r}`,s,a,i,l]}const q7e={[nr.Left]:{x:-1,y:0},[nr.Right]:{x:1,y:0},[nr.Top]:{x:0,y:-1},[nr.Bottom]:{x:0,y:1}},_Xn=({source:e,sourcePosition:t=nr.Bottom,target:n})=>t===nr.Left||t===nr.Right?e.x<n.x?{x:1,y:0}:{x:-1,y:0}:e.y<n.y?{x:0,y:1}:{x:0,y:-1},V7e=(e,t)=>Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2));function CXn({source:e,sourcePosition:t=nr.Bottom,target:n,targetPosition:r=nr.Top,center:s,offset:a,stepPosition:i}){const l=q7e[t],c=q7e[r],u={x:e.x+l.x*a,y:e.y+l.y*a},d={x:n.x+c.x*a,y:n.y+c.y*a},f=_Xn({source:u,sourcePosition:t,target:d}),p=f.x!==0?"x":"y",h=f[p];let m=[],v,y;const b={x:0,y:0},x={x:0,y:0},[,,S,k]=KOt({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(l[p]*c[p]===-1){p==="x"?(v=s.x??u.x+(d.x-u.x)*i,y=s.y??(u.y+d.y)/2):(v=s.x??(u.x+d.x)/2,y=s.y??u.y+(d.y-u.y)*i);const E=[{x:v,y:u.y},{x:v,y:d.y}],N=[{x:u.x,y},{x:d.x,y}];l[p]===h?m=p==="x"?E:N:m=p==="x"?N:E}else{const E=[{x:u.x,y:d.y}],N=[{x:d.x,y:u.y}];if(p==="x"?m=l.x===h?N:E:m=l.y===h?E:N,t===r){const D=Math.abs(e[p]-n[p]);if(D<=a){const F=Math.min(a-1,a-D);l[p]===h?b[p]=(u[p]>e[p]?-1:1)*F:x[p]=(d[p]>n[p]?-1:1)*F}}if(t!==r){const D=p==="x"?"y":"x",F=l[p]===c[D],H=u[D]>d[D],B=u[D]<d[D];(l[p]===1&&(!F&&H||F&&B)||l[p]!==1&&(!F&&B||F&&H))&&(m=p==="x"?E:N)}const I={x:u.x+b.x,y:u.y+b.y},A={x:d.x+x.x,y:d.y+x.y},R=Math.max(Math.abs(I.x-m[0].x),Math.abs(A.x-m[0].x)),L=Math.max(Math.abs(I.y-m[0].y),Math.abs(A.y-m[0].y));R>=L?(v=(I.x+A.x)/2,y=m[0].y):(v=m[0].x,y=(I.y+A.y)/2)}const _={x:u.x+b.x,y:u.y+b.y},C={x:d.x+x.x,y:d.y+x.y};return[[e,..._.x!==m[0].x||_.y!==m[0].y?[_]:[],...m,...C.x!==m[m.length-1].x||C.y!==m[m.length-1].y?[C]:[],n],v,y,S,k]}function EXn(e,t,n,r){const s=Math.min(V7e(e,t)/2,V7e(t,n)/2,r),{x:a,y:i}=t;if(e.x===a&&a===n.x||e.y===i&&i===n.y)return`L${a} ${i}`;if(e.y===i){const u=e.x<n.x?-1:1,d=e.y<n.y?1:-1;return`L ${a+s*u},${i}Q ${a},${i} ${a},${i+s*d}`}const l=e.x<n.x?1:-1,c=e.y<n.y?-1:1;return`L ${a},${i+s*c}Q ${a},${i} ${a+s*l},${i}`}function yve({sourceX:e,sourceY:t,sourcePosition:n=nr.Bottom,targetX:r,targetY:s,targetPosition:a=nr.Top,borderRadius:i=5,centerX:l,centerY:c,offset:u=20,stepPosition:d=.5}){const[f,p,h,m,v]=CXn({source:{x:e,y:t},sourcePosition:n,target:{x:r,y:s},targetPosition:a,center:{x:l,y:c},offset:u,stepPosition:d});let y=`M${f[0].x} ${f[0].y}`;for(let b=1;b<f.length-1;b++)y+=EXn(f[b-1],f[b],f[b+1],i);return y+=`L${f[f.length-1].x} ${f[f.length-1].y}`,[y,p,h,m,v]}function H7e(e){return e&&!!(e.internals.handleBounds||e.handles?.length)&&!!(e.measured.width||e.width||e.initialWidth)}function TXn(e){const{sourceNode:t,targetNode:n}=e;if(!H7e(t)||!H7e(n))return null;const r=t.internals.handleBounds||W7e(t.handles),s=n.internals.handleBounds||W7e(n.handles),a=Z7e(r?.source??[],e.sourceHandle),i=Z7e(e.connectionMode===nN.Strict?s?.target??[]:(s?.target??[]).concat(s?.source??[]),e.targetHandle);if(!a||!i)return e.onError?.("008",Sy.error008(a?"target":"source",{id:e.id,sourceHandle:e.sourceHandle,targetHandle:e.targetHandle})),null;const l=a?.position||nr.Bottom,c=i?.position||nr.Top,u=e_(t,a,l),d=e_(n,i,c);return{sourceX:u.x,sourceY:u.y,targetX:d.x,targetY:d.y,sourcePosition:l,targetPosition:c}}function W7e(e){if(!e)return null;const t=[],n=[];for(const r of e)r.width=r.width??1,r.height=r.height??1,r.type==="source"?t.push(r):r.type==="target"&&n.push(r);return{source:t,target:n}}function e_(e,t,n=nr.Left,r=!1){const s=(t?.x??0)+e.internals.positionAbsolute.x,a=(t?.y??0)+e.internals.positionAbsolute.y,{width:i,height:l}=t??c0(e);if(r)return{x:s+i/2,y:a+l/2};switch(t?.position??n){case nr.Top:return{x:s+i/2,y:a};case nr.Right:return{x:s+i,y:a+l/2};case nr.Bottom:return{x:s+i/2,y:a+l};case nr.Left:return{x:s,y:a+l/2}}}function Z7e(e,t){return e&&(t?e.find(n=>n.id===t):e[0])||null}function bve(e,t){return e?typeof e=="string"?e:`${t?`${t}__`:""}${Object.keys(e).sort().map(r=>`${r}=${e[r]}`).join("&")}`:""}function jXn(e,{id:t,defaultColor:n,defaultMarkerStart:r,defaultMarkerEnd:s}){const a=new Set;return e.reduce((i,l)=>([l.markerStart||r,l.markerEnd||s].forEach(c=>{if(c&&typeof c=="object"){const u=bve(c,t);a.has(u)||(i.push({id:u,color:c.color||n,...c}),a.add(u))}}),i),[]).sort((i,l)=>i.id.localeCompare(l.id))}const JOt=1e3,NXn=10,_Oe={nodeOrigin:[0,0],nodeExtent:$M,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},IXn={..._Oe,checkEquality:!0};function COe(e,t){const n={...e};for(const r in t)t[r]!==void 0&&(n[r]=t[r]);return n}function AXn(e,t,n){const r=COe(_Oe,n);for(const s of e.values())if(s.parentId)TOe(s,e,t,r);else{const a=X3(s,r.nodeOrigin),i=aN(s.extent)?s.extent:r.nodeExtent,l=JO(a,i,c0(s));s.internals.positionAbsolute=l}}function RXn(e,t){if(!e.handles)return e.measured?t?.internals.handleBounds:void 0;const n=[],r=[];for(const s of e.handles){const a={id:s.id,width:s.width??1,height:s.height??1,nodeId:e.id,x:s.x,y:s.y,position:s.position,type:s.type};s.type==="source"?n.push(a):s.type==="target"&&r.push(a)}return{source:n,target:r}}function EOe(e){return e==="manual"}function xve(e,t,n,r={}){const s=COe(IXn,r),a={i:0},i=new Map(t),l=s?.elevateNodesOnSelect&&!EOe(s.zIndexMode)?JOt:0;let c=e.length>0,u=!1;t.clear(),n.clear();for(const d of e){let f=i.get(d.id);if(s.checkEquality&&d===f?.internals.userNode)t.set(d.id,f);else{const p=X3(d,s.nodeOrigin),h=aN(d.extent)?d.extent:s.nodeExtent,m=JO(p,h,c0(d));f={...s.defaults,...d,measured:{width:d.measured?.width,height:d.measured?.height},internals:{positionAbsolute:m,handleBounds:RXn(d,f),z:e_t(d,l,s.zIndexMode),userNode:d}},t.set(d.id,f)}(f.measured===void 0||f.measured.width===void 0||f.measured.height===void 0)&&!f.hidden&&(c=!1),d.parentId&&TOe(f,t,n,r,a),u||=d.selected??!1}return{nodesInitialized:c,hasSelectedNodes:u}}function PXn(e,t){if(!e.parentId)return;const n=t.get(e.parentId);n?n.set(e.id,e):t.set(e.parentId,new Map([[e.id,e]]))}function TOe(e,t,n,r,s){const{elevateNodesOnSelect:a,nodeOrigin:i,nodeExtent:l,zIndexMode:c}=COe(_Oe,r),u=e.parentId,d=t.get(u);if(!d){console.warn(`Parent node ${u} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);return}PXn(e,n),s&&!d.parentId&&d.internals.rootParentIndex===void 0&&c==="auto"&&(d.internals.rootParentIndex=++s.i,d.internals.z=d.internals.z+s.i*NXn),s&&d.internals.rootParentIndex!==void 0&&(s.i=d.internals.rootParentIndex);const f=a&&!EOe(c)?JOt:0,{x:p,y:h,z:m}=$Xn(e,d,i,l,f,c),{positionAbsolute:v}=e.internals,y=p!==v.x||h!==v.y;(y||m!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:y?{x:p,y:h}:v,z:m}})}function e_t(e,t,n){const r=kg(e.zIndex)?e.zIndex:0;return EOe(n)?r:r+(e.selected?t:0)}function $Xn(e,t,n,r,s,a){const{x:i,y:l}=t.internals.positionAbsolute,c=c0(e),u=X3(e,n),d=aN(e.extent)?JO(u,e.extent,c):u;let f=JO({x:i+d.x,y:l+d.y},r,c);e.extent==="parent"&&(f=UOt(f,c,t));const p=e_t(e,s,a),h=t.internals.z??0;return{x:f.x,y:f.y,z:h>=p?h+1:p}}function jOe(e,t,n,r=[0,0]){const s=[],a=new Map;for(const i of e){const l=t.get(i.parentId);if(!l)continue;const c=a.get(i.parentId)?.expandedRect??sN(l),u=VOt(c,i.rect);a.set(i.parentId,{expandedRect:u,parent:l})}return a.size>0&&a.forEach(({expandedRect:i,parent:l},c)=>{const u=l.internals.positionAbsolute,d=c0(l),f=l.origin??r,p=i.x<u.x?Math.round(Math.abs(u.x-i.x)):0,h=i.y<u.y?Math.round(Math.abs(u.y-i.y)):0,m=Math.max(d.width,Math.round(i.width)),v=Math.max(d.height,Math.round(i.height)),y=(m-d.width)*f[0],b=(v-d.height)*f[1];(p>0||h>0||y||b)&&(s.push({id:c,type:"position",position:{x:l.position.x-p+y,y:l.position.y-h+b}}),n.get(c)?.forEach(x=>{e.some(S=>S.id===x.id)||s.push({id:x.id,type:"position",position:{x:x.position.x+p,y:x.position.y+h}})})),(d.width<i.width||d.height<i.height||p||h)&&s.push({id:c,type:"dimensions",setAttributes:!0,dimensions:{width:m+(p?f[0]*p-y:0),height:v+(h?f[1]*h-b:0)}})}),s}function MXn(e,t,n,r,s,a,i){const l=r?.querySelector(".xyflow__viewport");let c=!1;if(!l)return{changes:[],updatedInternals:c};const u=[],d=window.getComputedStyle(l),{m22:f}=new window.DOMMatrixReadOnly(d.transform),p=[];for(const h of e.values()){const m=t.get(h.id);if(!m)continue;if(m.hidden){t.set(m.id,{...m,internals:{...m.internals,handleBounds:void 0}}),c=!0;continue}const v=kOe(h.nodeElement),y=m.measured.width!==v.width||m.measured.height!==v.height;if(!!(v.width&&v.height&&(y||!m.internals.handleBounds||h.force))){const x=h.nodeElement.getBoundingClientRect(),S=aN(m.extent)?m.extent:a;let{positionAbsolute:k}=m.internals;m.parentId&&m.extent==="parent"?k=UOt(k,v,t.get(m.parentId)):S&&(k=JO(k,S,v));const _={...m,measured:v,internals:{...m.internals,positionAbsolute:k,handleBounds:{source:B7e("source",h.nodeElement,x,f,m.id),target:B7e("target",h.nodeElement,x,f,m.id)}}};t.set(m.id,_),m.parentId&&TOe(_,t,n,{nodeOrigin:s,zIndexMode:i}),c=!0,y&&(u.push({id:m.id,type:"dimensions",dimensions:v}),m.expandParent&&m.parentId&&p.push({id:m.id,parentId:m.parentId,rect:sN(_,s)}))}}if(p.length>0){const h=jOe(p,t,n,s);u.push(...h)}return{changes:u,updatedInternals:c}}async function DXn({delta:e,panZoom:t,transform:n,translateExtent:r,width:s,height:a}){if(!t||!e.x&&!e.y)return Promise.resolve(!1);const i=await t.setViewportConstrained({x:n[0]+e.x,y:n[1]+e.y,zoom:n[2]},[[0,0],[s,a]],r),l=!!i&&(i.x!==n[0]||i.y!==n[1]||i.k!==n[2]);return Promise.resolve(l)}function G7e(e,t,n,r,s,a){let i=s;const l=r.get(i)||new Map;r.set(i,l.set(n,t)),i=`${s}-${e}`;const c=r.get(i)||new Map;if(r.set(i,c.set(n,t)),a){i=`${s}-${e}-${a}`;const u=r.get(i)||new Map;r.set(i,u.set(n,t))}}function t_t(e,t,n){e.clear(),t.clear();for(const r of n){const{source:s,target:a,sourceHandle:i=null,targetHandle:l=null}=r,c={edgeId:r.id,source:s,target:a,sourceHandle:i,targetHandle:l},u=`${s}-${i}--${a}-${l}`,d=`${a}-${l}--${s}-${i}`;G7e("source",c,d,e,s,i),G7e("target",c,u,e,a,l),t.set(r.id,r)}}function n_t(e,t){if(!e.parentId)return!1;const n=t.get(e.parentId);return n?n.selected?!0:n_t(n,t):!1}function Q7e(e,t,n){let r=e;do{if(r?.matches?.(t))return!0;if(r===n)return!1;r=r?.parentElement}while(r);return!1}function LXn(e,t,n,r){const s=new Map;for(const[a,i]of e)if((i.selected||i.id===r)&&(!i.parentId||!n_t(i,e))&&(i.draggable||t&&typeof i.draggable>"u")){const l=e.get(a);l&&s.set(a,{id:a,position:l.position||{x:0,y:0},distance:{x:n.x-l.internals.positionAbsolute.x,y:n.y-l.internals.positionAbsolute.y},extent:l.extent,parentId:l.parentId,origin:l.origin,expandParent:l.expandParent,internals:{positionAbsolute:l.internals.positionAbsolute||{x:0,y:0}},measured:{width:l.measured.width??0,height:l.measured.height??0}})}return s}function sne({nodeId:e,dragItems:t,nodeLookup:n,dragging:r=!0}){const s=[];for(const[i,l]of t){const c=n.get(i)?.internals.userNode;c&&s.push({...c,position:l.position,dragging:r})}if(!e)return[s[0],s];const a=n.get(e)?.internals.userNode;return[a?{...a,position:t.get(e)?.position||a.position,dragging:r}:s[0],s]}function FXn({dragItems:e,snapGrid:t,x:n,y:r}){const s=e.values().next().value;if(!s)return null;const a={x:n-s.distance.x,y:r-s.distance.y},i=e4(a,t);return{x:i.x-a.x,y:i.y-a.y}}function zXn({onNodeMouseDown:e,getStoreItems:t,onDragStart:n,onDrag:r,onDragStop:s}){let a={x:null,y:null},i=0,l=new Map,c=!1,u={x:0,y:0},d=null,f=!1,p=null,h=!1,m=!1,v=null;function y({noDragClassName:x,handleSelector:S,domNode:k,isSelectable:_,nodeId:C,nodeClickDistance:T=0}){p=_p(k);function E({x:R,y:L}){const{nodeLookup:D,nodeExtent:F,snapGrid:H,snapToGrid:B,nodeOrigin:z,onNodeDrag:V,onSelectionDrag:M,onError:G,updateNodePositions:U}=t();a={x:R,y:L};let $=!1;const q=l.size>1,Z=q&&F?vve(J3(l)):null,Y=q&&B?FXn({dragItems:l,snapGrid:H,x:R,y:L}):null;for(const[ne,J]of l){if(!D.has(ne))continue;let ee={x:R-J.distance.x,y:L-J.distance.y};B&&(ee=Y?{x:Math.round(ee.x+Y.x),y:Math.round(ee.y+Y.y)}:e4(ee,H));let se=null;if(q&&F&&!J.extent&&Z){const{positionAbsolute:te}=J.internals,re=te.x-Z.x+F[0][0],pe=te.x+J.measured.width-Z.x2+F[1][0],ce=te.y-Z.y+F[0][1],Se=te.y+J.measured.height-Z.y2+F[1][1];se=[[re,ce],[pe,Se]]}const{position:le,positionAbsolute:X}=BOt({nodeId:ne,nextPosition:ee,nodeLookup:D,nodeExtent:se||F,nodeOrigin:z,onError:G});$=$||J.position.x!==le.x||J.position.y!==le.y,J.position=le,J.internals.positionAbsolute=X}if(m=m||$,!!$&&(U(l,!0),v&&(r||V||!C&&M))){const[ne,J]=sne({nodeId:C,dragItems:l,nodeLookup:D});r?.(v,l,ne,J),V?.(v,ne,J),C||M?.(v,J)}}async function N(){if(!d)return;const{transform:R,panBy:L,autoPanSpeed:D,autoPanOnNodeDrag:F}=t();if(!F){c=!1,cancelAnimationFrame(i);return}const[H,B]=qOt(u,d,D);(H!==0||B!==0)&&(a.x=(a.x??0)-H/R[2],a.y=(a.y??0)-B/R[2],await L({x:H,y:B})&&E(a)),i=requestAnimationFrame(N)}function I(R){const{nodeLookup:L,multiSelectionActive:D,nodesDraggable:F,transform:H,snapGrid:B,snapToGrid:z,selectNodesOnDrag:V,onNodeDragStart:M,onSelectionDragStart:G,unselectNodesAndEdges:U}=t();f=!0,(!V||!_)&&!D&&C&&(L.get(C)?.selected||U()),_&&V&&C&&e?.(C);const $=A2(R.sourceEvent,{transform:H,snapGrid:B,snapToGrid:z,containerBounds:d});if(a=$,l=LXn(L,F,$,C),l.size>0&&(n||M||!C&&G)){const[q,Z]=sne({nodeId:C,dragItems:l,nodeLookup:L});n?.(R.sourceEvent,l,q,Z),M?.(R.sourceEvent,q,Z),C||G?.(R.sourceEvent,Z)}}const A=xOt().clickDistance(T).on("start",R=>{const{domNode:L,nodeDragThreshold:D,transform:F,snapGrid:H,snapToGrid:B}=t();d=L?.getBoundingClientRect()||null,h=!1,m=!1,v=R.sourceEvent,D===0&&I(R),a=A2(R.sourceEvent,{transform:F,snapGrid:H,snapToGrid:B,containerBounds:d}),u=Og(R.sourceEvent,d)}).on("drag",R=>{const{autoPanOnNodeDrag:L,transform:D,snapGrid:F,snapToGrid:H,nodeDragThreshold:B,nodeLookup:z}=t(),V=A2(R.sourceEvent,{transform:D,snapGrid:F,snapToGrid:H,containerBounds:d});if(v=R.sourceEvent,(R.sourceEvent.type==="touchmove"&&R.sourceEvent.touches.length>1||C&&!z.has(C))&&(h=!0),!h){if(!c&&L&&f&&(c=!0,N()),!f){const M=Og(R.sourceEvent,d),G=M.x-u.x,U=M.y-u.y;Math.sqrt(G*G+U*U)>B&&I(R)}(a.x!==V.xSnapped||a.y!==V.ySnapped)&&l&&f&&(u=Og(R.sourceEvent,d),E(V))}}).on("end",R=>{if(!(!f||h)&&(c=!1,f=!1,cancelAnimationFrame(i),l.size>0)){const{nodeLookup:L,updateNodePositions:D,onNodeDragStop:F,onSelectionDragStop:H}=t();if(m&&(D(l,!1),m=!1),s||F||!C&&H){const[B,z]=sne({nodeId:C,dragItems:l,nodeLookup:L,dragging:!1});s?.(R.sourceEvent,l,B,z),F?.(R.sourceEvent,B,z),C||H?.(R.sourceEvent,z)}}}).filter(R=>{const L=R.target;return!R.button&&(!x||!Q7e(L,`.${x}`,k))&&(!S||Q7e(L,S,k))});p.call(A)}function b(){p?.on(".drag",null)}return{update:y,destroy:b}}function BXn(e,t,n){const r=[],s={x:e.x-n,y:e.y-n,width:n*2,height:n*2};for(const a of t.values())LM(s,sN(a))>0&&r.push(a);return r}const UXn=250;function qXn(e,t,n,r){let s=[],a=1/0;const i=BXn(e,n,t+UXn);for(const l of i){const c=[...l.internals.handleBounds?.source??[],...l.internals.handleBounds?.target??[]];for(const u of c){if(r.nodeId===u.nodeId&&r.type===u.type&&r.id===u.id)continue;const{x:d,y:f}=e_(l,u,u.position,!0),p=Math.sqrt(Math.pow(d-e.x,2)+Math.pow(f-e.y,2));p>t||(p<a?(s=[{...u,x:d,y:f}],a=p):p===a&&s.push({...u,x:d,y:f}))}}if(!s.length)return null;if(s.length>1){const l=r.type==="source"?"target":"source";return s.find(c=>c.type===l)??s[0]}return s[0]}function r_t(e,t,n,r,s,a=!1){const i=r.get(e);if(!i)return null;const l=s==="strict"?i.internals.handleBounds?.[t]:[...i.internals.handleBounds?.source??[],...i.internals.handleBounds?.target??[]],c=(n?l?.find(u=>u.id===n):l?.[0])??null;return c&&a?{...c,...e_(i,c,c.position,!0)}:c}function s_t(e,t){return e||(t?.classList.contains("target")?"target":t?.classList.contains("source")?"source":null)}function VXn(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}const a_t=()=>!0;function HXn(e,{connectionMode:t,connectionRadius:n,handleId:r,nodeId:s,edgeUpdaterType:a,isTarget:i,domNode:l,nodeLookup:c,lib:u,autoPanOnConnect:d,flowId:f,panBy:p,cancelConnection:h,onConnectStart:m,onConnect:v,onConnectEnd:y,isValidConnection:b=a_t,onReconnectEnd:x,updateConnection:S,getTransform:k,getFromHandle:_,autoPanSpeed:C,dragThreshold:T=1,handleDomNode:E}){const N=ZOt(e.target);let I=0,A;const{x:R,y:L}=Og(e),D=s_t(a,E),F=l?.getBoundingClientRect();let H=!1;if(!F||!D)return;const B=r_t(s,D,r,c,t);if(!B)return;let z=Og(e,F),V=!1,M=null,G=!1,U=null;function $(){if(!d||!F)return;const[le,X]=qOt(z,F,C);p({x:le,y:X}),I=requestAnimationFrame($)}const q={...B,nodeId:s,type:D,position:B.position},Z=c.get(s);let ne={inProgress:!0,isValid:null,from:e_(Z,q,nr.Left,!0),fromHandle:q,fromPosition:q.position,fromNode:Z,to:z,toHandle:null,toPosition:D7e[q.position],toNode:null,pointer:z};function J(){H=!0,S(ne),m?.(e,{nodeId:s,handleId:r,handleType:D})}T===0&&J();function ee(le){if(!H){const{x:Se,y:ve}=Og(le),ke=Se-R,Ne=ve-L;if(!(ke*ke+Ne*Ne>T*T))return;J()}if(!_()||!q){se(le);return}const X=k();z=Og(le,F),A=qXn(t4(z,X,!1,[1,1]),n,c,q),V||($(),V=!0);const te=i_t(le,{handle:A,connectionMode:t,fromNodeId:s,fromHandleId:r,fromType:i?"target":"source",isValidConnection:b,doc:N,lib:u,flowId:f,nodeLookup:c});U=te.handleDomNode,M=te.connection,G=VXn(!!A,te.isValid);const re=c.get(s),pe=re?e_(re,q,nr.Left,!0):ne.from,ce={...ne,from:pe,isValid:G,to:te.toHandle&&G?sU({x:te.toHandle.x,y:te.toHandle.y},X):z,toHandle:te.toHandle,toPosition:G&&te.toHandle?te.toHandle.position:D7e[q.position],toNode:te.toHandle?c.get(te.toHandle.nodeId):null,pointer:z};S(ce),ne=ce}function se(le){if(!("touches"in le&&le.touches.length>0)){if(H){(A||U)&&M&&G&&v?.(M);const{inProgress:X,...te}=ne,re={...te,toPosition:ne.toHandle?ne.toPosition:null};y?.(le,re),a&&x?.(le,re)}h(),cancelAnimationFrame(I),V=!1,G=!1,M=null,U=null,N.removeEventListener("mousemove",ee),N.removeEventListener("mouseup",se),N.removeEventListener("touchmove",ee),N.removeEventListener("touchend",se)}}N.addEventListener("mousemove",ee),N.addEventListener("mouseup",se),N.addEventListener("touchmove",ee),N.addEventListener("touchend",se)}function i_t(e,{handle:t,connectionMode:n,fromNodeId:r,fromHandleId:s,fromType:a,doc:i,lib:l,flowId:c,isValidConnection:u=a_t,nodeLookup:d}){const f=a==="target",p=t?i.querySelector(`.${l}-flow__handle[data-id="${c}-${t?.nodeId}-${t?.id}-${t?.type}"]`):null,{x:h,y:m}=Og(e),v=i.elementFromPoint(h,m),y=v?.classList.contains(`${l}-flow__handle`)?v:p,b={handleDomNode:y,isValid:!1,connection:null,toHandle:null};if(y){const x=s_t(void 0,y),S=y.getAttribute("data-nodeid"),k=y.getAttribute("data-handleid"),_=y.classList.contains("connectable"),C=y.classList.contains("connectableend");if(!S||!x)return b;const T={source:f?S:r,sourceHandle:f?k:s,target:f?r:S,targetHandle:f?s:k};b.connection=T;const N=_&&C&&(n===nN.Strict?f&&x==="source"||!f&&x==="target":S!==r||k!==s);b.isValid=N&&u(T),b.toHandle=r_t(S,x,k,d,n,!0)}return b}const wve={onPointerDown:HXn,isValid:i_t};function WXn({domNode:e,panZoom:t,getTransform:n,getViewScale:r}){const s=_p(e);function a({translateExtent:l,width:c,height:u,zoomStep:d=1,pannable:f=!0,zoomable:p=!0,inversePan:h=!1}){const m=S=>{if(S.sourceEvent.type!=="wheel"||!t)return;const k=n(),_=S.sourceEvent.ctrlKey&&FM()?10:1,C=-S.sourceEvent.deltaY*(S.sourceEvent.deltaMode===1?.05:S.sourceEvent.deltaMode?1:.002)*d,T=k[2]*Math.pow(2,C*_);t.scaleTo(T)};let v=[0,0];const y=S=>{(S.sourceEvent.type==="mousedown"||S.sourceEvent.type==="touchstart")&&(v=[S.sourceEvent.clientX??S.sourceEvent.touches[0].clientX,S.sourceEvent.clientY??S.sourceEvent.touches[0].clientY])},b=S=>{const k=n();if(S.sourceEvent.type!=="mousemove"&&S.sourceEvent.type!=="touchmove"||!t)return;const _=[S.sourceEvent.clientX??S.sourceEvent.touches[0].clientX,S.sourceEvent.clientY??S.sourceEvent.touches[0].clientY],C=[_[0]-v[0],_[1]-v[1]];v=_;const T=r()*Math.max(k[2],Math.log(k[2]))*(h?-1:1),E={x:k[0]-C[0]*T,y:k[1]-C[1]*T},N=[[0,0],[c,u]];t.setViewportConstrained({x:E.x,y:E.y,zoom:k[2]},N,l)},x=$Ot().on("start",y).on("zoom",f?b:null).on("zoom.wheel",p?m:null);s.call(x,{})}function i(){s.on("zoom",null)}return{update:a,destroy:i,pointer:dg}}const yW=e=>({x:e.x,y:e.y,zoom:e.k}),ane=({x:e,y:t,zoom:n})=>mW.translate(e,t).scale(n),vT=(e,t)=>e.target.closest(`.${t}`),o_t=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),ZXn=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,ine=(e,t=0,n=ZXn,r=()=>{})=>{const s=typeof t=="number"&&t>0;return s||r(),s?e.transition().duration(t).ease(n).on("end",r):e},l_t=e=>{const t=e.ctrlKey&&FM()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function GXn({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:r,panOnScrollMode:s,panOnScrollSpeed:a,zoomOnPinch:i,onPanZoomStart:l,onPanZoom:c,onPanZoomEnd:u}){return d=>{if(vT(d,t))return d.ctrlKey&&d.preventDefault(),!1;d.preventDefault(),d.stopImmediatePropagation();const f=n.property("__zoom").k||1;if(d.ctrlKey&&i){const y=dg(d),b=l_t(d),x=f*Math.pow(2,b);r.scaleTo(n,x,y,d);return}const p=d.deltaMode===1?20:1;let h=s===iO.Vertical?0:d.deltaX*p,m=s===iO.Horizontal?0:d.deltaY*p;!FM()&&d.shiftKey&&s!==iO.Vertical&&(h=d.deltaY*p,m=0),r.translateBy(n,-(h/f)*a,-(m/f)*a,{internal:!0});const v=yW(n.property("__zoom"));clearTimeout(e.panScrollTimeout),e.isPanScrolling?(c?.(d,v),e.panScrollTimeout=setTimeout(()=>{u?.(d,v),e.isPanScrolling=!1},150)):(e.isPanScrolling=!0,l?.(d,v))}}function QXn({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(r,s){const a=r.type==="wheel",i=!t&&a&&!r.ctrlKey,l=vT(r,e);if(r.ctrlKey&&a&&l&&r.preventDefault(),i||l)return null;r.preventDefault(),n.call(this,r,s)}}function YXn({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return r=>{if(r.sourceEvent?.internal)return;const s=yW(r.transform);e.mouseButton=r.sourceEvent?.button||0,e.isZoomingOrPanning=!0,e.prevViewport=s,r.sourceEvent?.type==="mousedown"&&t(!0),n&&n?.(r.sourceEvent,s)}}function KXn({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:r,onPanZoom:s}){return a=>{e.usedRightMouseButton=!!(n&&o_t(t,e.mouseButton??0)),a.sourceEvent?.sync||r([a.transform.x,a.transform.y,a.transform.k]),s&&!a.sourceEvent?.internal&&s?.(a.sourceEvent,yW(a.transform))}}function XXn({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:r,onPanZoomEnd:s,onPaneContextMenu:a}){return i=>{if(!i.sourceEvent?.internal&&(e.isZoomingOrPanning=!1,a&&o_t(t,e.mouseButton??0)&&!e.usedRightMouseButton&&i.sourceEvent&&a(i.sourceEvent),e.usedRightMouseButton=!1,r(!1),s)){const l=yW(i.transform);e.prevViewport=l,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{s?.(i.sourceEvent,l)},n?150:0)}}}function JXn({zoomActivationKeyPressed:e,zoomOnScroll:t,zoomOnPinch:n,panOnDrag:r,panOnScroll:s,zoomOnDoubleClick:a,userSelectionActive:i,noWheelClassName:l,noPanClassName:c,lib:u,connectionInProgress:d}){return f=>{const p=e||t,h=n&&f.ctrlKey,m=f.type==="wheel";if(f.button===1&&f.type==="mousedown"&&(vT(f,`${u}-flow__node`)||vT(f,`${u}-flow__edge`)))return!0;if(!r&&!p&&!s&&!a&&!n||i||d&&!m||vT(f,l)&&m||vT(f,c)&&(!m||s&&m&&!e)||!n&&f.ctrlKey&&m)return!1;if(!n&&f.type==="touchstart"&&f.touches?.length>1)return f.preventDefault(),!1;if(!p&&!s&&!h&&m||!r&&(f.type==="mousedown"||f.type==="touchstart")||Array.isArray(r)&&!r.includes(f.button)&&f.type==="mousedown")return!1;const v=Array.isArray(r)&&r.includes(f.button)||!f.button||f.button<=1;return(!f.ctrlKey||m)&&v}}function eJn({domNode:e,minZoom:t,maxZoom:n,translateExtent:r,viewport:s,onPanZoom:a,onPanZoomStart:i,onPanZoomEnd:l,onDraggingChange:c}){const u={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},d=e.getBoundingClientRect(),f=$Ot().scaleExtent([t,n]).translateExtent(r),p=_p(e).call(f);x({x:s.x,y:s.y,zoom:rN(s.zoom,t,n)},[[0,0],[d.width,d.height]],r);const h=p.on("wheel.zoom"),m=p.on("dblclick.zoom");f.wheelDelta(l_t);function v(A,R){return p?new Promise(L=>{f?.interpolate(R?.interpolate==="linear"?yx:Z8).transform(ine(p,R?.duration,R?.ease,()=>L(!0)),A)}):Promise.resolve(!1)}function y({noWheelClassName:A,noPanClassName:R,onPaneContextMenu:L,userSelectionActive:D,panOnScroll:F,panOnDrag:H,panOnScrollMode:B,panOnScrollSpeed:z,preventScrolling:V,zoomOnPinch:M,zoomOnScroll:G,zoomOnDoubleClick:U,zoomActivationKeyPressed:$,lib:q,onTransformChange:Z,connectionInProgress:Y,paneClickDistance:ne,selectionOnDrag:J}){D&&!u.isZoomingOrPanning&&b();const ee=F&&!$&&!D;f.clickDistance(J?1/0:!kg(ne)||ne<0?0:ne);const se=ee?GXn({zoomPanValues:u,noWheelClassName:A,d3Selection:p,d3Zoom:f,panOnScrollMode:B,panOnScrollSpeed:z,zoomOnPinch:M,onPanZoomStart:i,onPanZoom:a,onPanZoomEnd:l}):QXn({noWheelClassName:A,preventScrolling:V,d3ZoomHandler:h});if(p.on("wheel.zoom",se,{passive:!1}),!D){const X=YXn({zoomPanValues:u,onDraggingChange:c,onPanZoomStart:i});f.on("start",X);const te=KXn({zoomPanValues:u,panOnDrag:H,onPaneContextMenu:!!L,onPanZoom:a,onTransformChange:Z});f.on("zoom",te);const re=XXn({zoomPanValues:u,panOnDrag:H,panOnScroll:F,onPaneContextMenu:L,onPanZoomEnd:l,onDraggingChange:c});f.on("end",re)}const le=JXn({zoomActivationKeyPressed:$,panOnDrag:H,zoomOnScroll:G,panOnScroll:F,zoomOnDoubleClick:U,zoomOnPinch:M,userSelectionActive:D,noPanClassName:R,noWheelClassName:A,lib:q,connectionInProgress:Y});f.filter(le),U?p.on("dblclick.zoom",m):p.on("dblclick.zoom",null)}function b(){f.on("zoom",null)}async function x(A,R,L){const D=ane(A),F=f?.constrain()(D,R,L);return F&&await v(F),new Promise(H=>H(F))}async function S(A,R){const L=ane(A);return await v(L,R),new Promise(D=>D(L))}function k(A){if(p){const R=ane(A),L=p.property("__zoom");(L.k!==A.zoom||L.x!==A.x||L.y!==A.y)&&f?.transform(p,R,null,{sync:!0})}}function _(){const A=p?POt(p.node()):{x:0,y:0,k:1};return{x:A.x,y:A.y,zoom:A.k}}function C(A,R){return p?new Promise(L=>{f?.interpolate(R?.interpolate==="linear"?yx:Z8).scaleTo(ine(p,R?.duration,R?.ease,()=>L(!0)),A)}):Promise.resolve(!1)}function T(A,R){return p?new Promise(L=>{f?.interpolate(R?.interpolate==="linear"?yx:Z8).scaleBy(ine(p,R?.duration,R?.ease,()=>L(!0)),A)}):Promise.resolve(!1)}function E(A){f?.scaleExtent(A)}function N(A){f?.translateExtent(A)}function I(A){const R=!kg(A)||A<0?0:A;f?.clickDistance(R)}return{update:y,destroy:b,setViewport:S,setViewportConstrained:x,getViewport:_,scaleTo:C,scaleBy:T,setScaleExtent:E,setTranslateExtent:N,syncViewport:k,setClickDistance:I}}var iN;(function(e){e.Line="line",e.Handle="handle"})(iN||(iN={}));function tJn({width:e,prevWidth:t,height:n,prevHeight:r,affectsX:s,affectsY:a}){const i=e-t,l=n-r,c=[i>0?1:i<0?-1:0,l>0?1:l<0?-1:0];return i&&s&&(c[0]=c[0]*-1),l&&a&&(c[1]=c[1]*-1),c}function Y7e(e){const t=e.includes("right")||e.includes("left"),n=e.includes("bottom")||e.includes("top"),r=e.includes("left"),s=e.includes("top");return{isHorizontal:t,isVertical:n,affectsX:r,affectsY:s}}function nw(e,t){return Math.max(0,t-e)}function rw(e,t){return Math.max(0,e-t)}function SF(e,t,n){return Math.max(0,t-e,e-n)}function K7e(e,t){return e?!t:t}function nJn(e,t,n,r,s,a,i,l){let{affectsX:c,affectsY:u}=t;const{isHorizontal:d,isVertical:f}=t,p=d&&f,{xSnapped:h,ySnapped:m}=n,{minWidth:v,maxWidth:y,minHeight:b,maxHeight:x}=r,{x:S,y:k,width:_,height:C,aspectRatio:T}=e;let E=Math.floor(d?h-e.pointerX:0),N=Math.floor(f?m-e.pointerY:0);const I=_+(c?-E:E),A=C+(u?-N:N),R=-a[0]*_,L=-a[1]*C;let D=SF(I,v,y),F=SF(A,b,x);if(i){let z=0,V=0;c&&E<0?z=nw(S+E+R,i[0][0]):!c&&E>0&&(z=rw(S+I+R,i[1][0])),u&&N<0?V=nw(k+N+L,i[0][1]):!u&&N>0&&(V=rw(k+A+L,i[1][1])),D=Math.max(D,z),F=Math.max(F,V)}if(l){let z=0,V=0;c&&E>0?z=rw(S+E,l[0][0]):!c&&E<0&&(z=nw(S+I,l[1][0])),u&&N>0?V=rw(k+N,l[0][1]):!u&&N<0&&(V=nw(k+A,l[1][1])),D=Math.max(D,z),F=Math.max(F,V)}if(s){if(d){const z=SF(I/T,b,x)*T;if(D=Math.max(D,z),i){let V=0;!c&&!u||c&&!u&&p?V=rw(k+L+I/T,i[1][1])*T:V=nw(k+L+(c?E:-E)/T,i[0][1])*T,D=Math.max(D,V)}if(l){let V=0;!c&&!u||c&&!u&&p?V=nw(k+I/T,l[1][1])*T:V=rw(k+(c?E:-E)/T,l[0][1])*T,D=Math.max(D,V)}}if(f){const z=SF(A*T,v,y)/T;if(F=Math.max(F,z),i){let V=0;!c&&!u||u&&!c&&p?V=rw(S+A*T+R,i[1][0])/T:V=nw(S+(u?N:-N)*T+R,i[0][0])/T,F=Math.max(F,V)}if(l){let V=0;!c&&!u||u&&!c&&p?V=nw(S+A*T,l[1][0])/T:V=rw(S+(u?N:-N)*T,l[0][0])/T,F=Math.max(F,V)}}}N=N+(N<0?F:-F),E=E+(E<0?D:-D),s&&(p?I>A*T?N=(K7e(c,u)?-E:E)/T:E=(K7e(c,u)?-N:N)*T:d?(N=E/T,u=c):(E=N*T,c=u));const H=c?S+E:S,B=u?k+N:k;return{width:_+(c?-E:E),height:C+(u?-N:N),x:a[0]*E*(c?-1:1)+H,y:a[1]*N*(u?-1:1)+B}}const c_t={width:0,height:0,x:0,y:0},rJn={...c_t,pointerX:0,pointerY:0,aspectRatio:1};function sJn(e){return[[0,0],[e.measured.width,e.measured.height]]}function aJn(e,t,n){const r=t.position.x+e.position.x,s=t.position.y+e.position.y,a=e.measured.width??0,i=e.measured.height??0,l=n[0]*a,c=n[1]*i;return[[r-l,s-c],[r+a-l,s+i-c]]}function iJn({domNode:e,nodeId:t,getStoreItems:n,onChange:r,onEnd:s}){const a=_p(e);let i={controlDirection:Y7e("bottom-right"),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};function l({controlPosition:u,boundaries:d,keepAspectRatio:f,resizeDirection:p,onResizeStart:h,onResize:m,onResizeEnd:v,shouldResize:y}){let b={...c_t},x={...rJn};i={boundaries:d,resizeDirection:p,keepAspectRatio:f,controlDirection:Y7e(u)};let S,k=null,_=[],C,T,E,N=!1;const I=xOt().on("start",A=>{const{nodeLookup:R,transform:L,snapGrid:D,snapToGrid:F,nodeOrigin:H,paneDomNode:B}=n();if(S=R.get(t),!S)return;k=B?.getBoundingClientRect()??null;const{xSnapped:z,ySnapped:V}=A2(A.sourceEvent,{transform:L,snapGrid:D,snapToGrid:F,containerBounds:k});b={width:S.measured.width??0,height:S.measured.height??0,x:S.position.x??0,y:S.position.y??0},x={...b,pointerX:z,pointerY:V,aspectRatio:b.width/b.height},C=void 0,S.parentId&&(S.extent==="parent"||S.expandParent)&&(C=R.get(S.parentId),T=C&&S.extent==="parent"?sJn(C):void 0),_=[],E=void 0;for(const[M,G]of R)if(G.parentId===t&&(_.push({id:M,position:{...G.position},extent:G.extent}),G.extent==="parent"||G.expandParent)){const U=aJn(G,S,G.origin??H);E?E=[[Math.min(U[0][0],E[0][0]),Math.min(U[0][1],E[0][1])],[Math.max(U[1][0],E[1][0]),Math.max(U[1][1],E[1][1])]]:E=U}h?.(A,{...b})}).on("drag",A=>{const{transform:R,snapGrid:L,snapToGrid:D,nodeOrigin:F}=n(),H=A2(A.sourceEvent,{transform:R,snapGrid:L,snapToGrid:D,containerBounds:k}),B=[];if(!S)return;const{x:z,y:V,width:M,height:G}=b,U={},$=S.origin??F,{width:q,height:Z,x:Y,y:ne}=nJn(x,i.controlDirection,H,i.boundaries,i.keepAspectRatio,$,T,E),J=q!==M,ee=Z!==G,se=Y!==z&&J,le=ne!==V&ⅇif(!se&&!le&&!J&&!ee)return;if((se||le||$[0]===1||$[1]===1)&&(U.x=se?Y:b.x,U.y=le?ne:b.y,b.x=U.x,b.y=U.y,_.length>0)){const pe=Y-z,ce=ne-V;for(const Se of _)Se.position={x:Se.position.x-pe+$[0]*(q-M),y:Se.position.y-ce+$[1]*(Z-G)},B.push(Se)}if((J||ee)&&(U.width=J&&(!i.resizeDirection||i.resizeDirection==="horizontal")?q:b.width,U.height=ee&&(!i.resizeDirection||i.resizeDirection==="vertical")?Z:b.height,b.width=U.width,b.height=U.height),C&&S.expandParent){const pe=$[0]*(U.width??0);U.x&&U.x<pe&&(b.x=pe,x.x=x.x-(U.x-pe));const ce=$[1]*(U.height??0);U.y&&U.y<ce&&(b.y=ce,x.y=x.y-(U.y-ce))}const X=tJn({width:b.width,prevWidth:M,height:b.height,prevHeight:G,affectsX:i.controlDirection.affectsX,affectsY:i.controlDirection.affectsY}),te={...b,direction:X};y?.(A,te)!==!1&&(N=!0,m?.(A,te),r(U,B))}).on("end",A=>{N&&(v?.(A,{...b}),s?.({...b}),N=!1)});a.call(I)}function c(){a.on(".drag",null)}return{update:l,destroy:c}}const oJn={},X7e=e=>{let t;const n=new Set,r=(d,f)=>{const p=typeof d=="function"?d(t):d;if(!Object.is(p,t)){const h=t;t=f??(typeof p!="object"||p===null)?p:Object.assign({},t,p),n.forEach(m=>m(t,h))}},s=()=>t,c={setState:r,getState:s,getInitialState:()=>u,subscribe:d=>(n.add(d),()=>n.delete(d)),destroy:()=>{(oJn?"production":void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),n.clear()}},u=t=e(r,s,c);return c},lJn=e=>e?X7e(e):X7e,{useDebugValue:cJn}=Fe,{useSyncExternalStoreWithSelector:uJn}=MTn,dJn=e=>e;function u_t(e,t=dJn,n){const r=uJn(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return cJn(r),r}const J7e=(e,t)=>{const n=lJn(e),r=(s,a=t)=>u_t(n,s,a);return Object.assign(r,n),r},fJn=(e,t)=>e?J7e(e,t):J7e;function ao(e,t){if(Object.is(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(const[r,s]of e)if(!Object.is(s,t.get(r)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const r of e)if(!t.has(r))return!1;return!0}const n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(const r of n)if(!Object.prototype.hasOwnProperty.call(t,r)||!Object.is(e[r],t[r]))return!1;return!0}const bW=g.createContext(null),pJn=bW.Provider,d_t=Sy.error001();function zs(e,t){const n=g.useContext(bW);if(n===null)throw new Error(d_t);return u_t(n,e,t)}function Eo(){const e=g.useContext(bW);if(e===null)throw new Error(d_t);return g.useMemo(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}const eBe={display:"none"},hJn={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},f_t="react-flow__node-desc",p_t="react-flow__edge-desc",mJn="react-flow__aria-live",gJn=e=>e.ariaLiveMessage,vJn=e=>e.ariaLabelConfig;function yJn({rfId:e}){const t=zs(gJn);return o.jsx("div",{id:`${mJn}-${e}`,"aria-live":"assertive","aria-atomic":"true",style:hJn,children:t})}function bJn({rfId:e,disableKeyboardA11y:t}){const n=zs(vJn);return o.jsxs(o.Fragment,{children:[o.jsx("div",{id:`${f_t}-${e}`,style:eBe,children:t?n["node.a11yDescription.default"]:n["node.a11yDescription.keyboardDisabled"]}),o.jsx("div",{id:`${p_t}-${e}`,style:eBe,children:n["edge.a11yDescription.default"]}),!t&&o.jsx(yJn,{rfId:e})]})}const n4=g.forwardRef(({position:e="top-left",children:t,className:n,style:r,...s},a)=>{const i=`${e}`.split("-");return o.jsx("div",{className:Ul(["react-flow__panel",n,...i]),style:r,ref:a,...s,children:t})});n4.displayName="Panel";function xJn({proOptions:e,position:t="bottom-right"}){return e?.hideAttribution?null:o.jsx(n4,{position:t,className:"react-flow__attribution","data-message":"Please only hide this attribution when you are subscribed to React Flow Pro: https://pro.reactflow.dev",children:o.jsx("a",{href:"https://reactflow.dev",target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution",children:"React Flow"})})}const wJn=e=>{const t=[],n=[];for(const[,r]of e.nodeLookup)r.selected&&t.push(r.internals.userNode);for(const[,r]of e.edgeLookup)r.selected&&n.push(r);return{selectedNodes:t,selectedEdges:n}},kF=e=>e.id;function SJn(e,t){return ao(e.selectedNodes.map(kF),t.selectedNodes.map(kF))&&ao(e.selectedEdges.map(kF),t.selectedEdges.map(kF))}function kJn({onSelectionChange:e}){const t=Eo(),{selectedNodes:n,selectedEdges:r}=zs(wJn,SJn);return g.useEffect(()=>{const s={nodes:n,edges:r};e?.(s),t.getState().onSelectionChangeHandlers.forEach(a=>a(s))},[n,r,e]),null}const OJn=e=>!!e.onSelectionChangeHandlers;function _Jn({onSelectionChange:e}){const t=zs(OJn);return e||t?o.jsx(kJn,{onSelectionChange:e}):null}const Sve=typeof window<"u"?g.useLayoutEffect:g.useEffect,h_t=[0,0],CJn={x:0,y:0,zoom:1},EJn=["nodes","edges","defaultNodes","defaultEdges","onConnect","onConnectStart","onConnectEnd","onClickConnectStart","onClickConnectEnd","nodesDraggable","autoPanOnNodeFocus","nodesConnectable","nodesFocusable","edgesFocusable","edgesReconnectable","elevateNodesOnSelect","elevateEdgesOnSelect","minZoom","maxZoom","nodeExtent","onNodesChange","onEdgesChange","elementsSelectable","connectionMode","snapGrid","snapToGrid","translateExtent","connectOnClick","defaultEdgeOptions","fitView","fitViewOptions","onNodesDelete","onEdgesDelete","onDelete","onNodeDrag","onNodeDragStart","onNodeDragStop","onSelectionDrag","onSelectionDragStart","onSelectionDragStop","onMoveStart","onMove","onMoveEnd","noPanClassName","nodeOrigin","autoPanOnConnect","autoPanOnNodeDrag","onError","connectionRadius","isValidConnection","selectNodesOnDrag","nodeDragThreshold","connectionDragThreshold","onBeforeDelete","debug","autoPanSpeed","ariaLabelConfig","zIndexMode"],tBe=[...EJn,"rfId"],TJn=e=>({setNodes:e.setNodes,setEdges:e.setEdges,setMinZoom:e.setMinZoom,setMaxZoom:e.setMaxZoom,setTranslateExtent:e.setTranslateExtent,setNodeExtent:e.setNodeExtent,reset:e.reset,setDefaultNodesAndEdges:e.setDefaultNodesAndEdges}),nBe={translateExtent:$M,nodeOrigin:h_t,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:"nopan",rfId:"1"};function jJn(e){const{setNodes:t,setEdges:n,setMinZoom:r,setMaxZoom:s,setTranslateExtent:a,setNodeExtent:i,reset:l,setDefaultNodesAndEdges:c}=zs(TJn,ao),u=Eo();Sve(()=>(c(e.defaultNodes,e.defaultEdges),()=>{d.current=nBe,l()}),[]);const d=g.useRef(nBe);return Sve(()=>{for(const f of tBe){const p=e[f],h=d.current[f];p!==h&&(typeof e[f]>"u"||(f==="nodes"?t(p):f==="edges"?n(p):f==="minZoom"?r(p):f==="maxZoom"?s(p):f==="translateExtent"?a(p):f==="nodeExtent"?i(p):f==="ariaLabelConfig"?u.setState({ariaLabelConfig:yXn(p)}):f==="fitView"?u.setState({fitViewQueued:p}):f==="fitViewOptions"?u.setState({fitViewOptions:p}):u.setState({[f]:p})))}d.current=e},tBe.map(f=>e[f])),null}function rBe(){return typeof window>"u"||!window.matchMedia?null:window.matchMedia("(prefers-color-scheme: dark)")}function NJn(e){const[t,n]=g.useState(e==="system"?null:e);return g.useEffect(()=>{if(e!=="system"){n(e);return}const r=rBe(),s=()=>n(r?.matches?"dark":"light");return s(),r?.addEventListener("change",s),()=>{r?.removeEventListener("change",s)}},[e]),t!==null?t:rBe()?.matches?"dark":"light"}const sBe=typeof document<"u"?document:null;function zM(e=null,t={target:sBe,actInsideInputWithModifier:!0}){const[n,r]=g.useState(!1),s=g.useRef(!1),a=g.useRef(new Set([])),[i,l]=g.useMemo(()=>{if(e!==null){const u=(Array.isArray(e)?e:[e]).filter(f=>typeof f=="string").map(f=>f.replace("+",`
|
|
235
235
|
`).replace(`
|
|
236
236
|
|
|
237
237
|
`,`
|
|
@@ -641,7 +641,7 @@ Token usage: ${n} input + ${r} output = ${s} total`:`The model stopped generatin
|
|
|
641
641
|
}
|
|
642
642
|
]`})]})]})}function igs({errors:e,maxErrors:t=5}){if(e.length===0)return null;const n=e.slice(0,t),r=e.length-t;return o.jsxs("div",{className:"bg-accent2/10 border-accent2/30 rounded-md border p-3",children:[o.jsxs("div",{className:"text-accent2 mb-2 flex items-center gap-2",children:[o.jsx(Ve,{children:o.jsx(Cf,{className:"h-4 w-4"})}),o.jsxs("span",{className:"text-sm font-medium",children:[e.length," validation error",e.length!==1?"s":""]})]}),o.jsx("ul",{className:"text-accent2/80 space-y-1 text-sm",children:n.map((s,a)=>o.jsxs("li",{className:"flex gap-2",children:[o.jsx("span",{className:"shrink-0",children:"•"}),o.jsx("span",{children:s.message})]},a))}),r>0&&o.jsxs("div",{className:"text-accent2/60 mt-2 text-xs",children:["+",r," more error",r!==1?"s":""]})]})}function ogs({datasetId:e,open:t,onOpenChange:n,onSuccess:r}){const[s,a]=g.useState("upload"),[i,l]=g.useState(null),[c,u]=g.useState({current:0,total:0}),[d,f]=g.useState(null),[p,h]=g.useState(!1),{parseFile:m,isParsing:v,error:y}=Uhs(),{batchInsertItems:b}=qi(),x=g.useCallback(async I=>{try{const A=await m(I);l(A),a("preview")}catch{}},[m]),S=g.useCallback(async()=>{if(!i||i.items.length===0)return;a("importing"),h(!0);const{items:I}=i;u({current:0,total:I.length});try{await b.mutateAsync({datasetId:e,items:I.map(A=>({input:A.input,groundTruth:A.groundTruth,metadata:A.metadata}))}),f({success:I.length,errors:0})}catch{f({success:0,errors:I.length})}u({current:I.length,total:I.length}),h(!1),a("complete")},[i,b,e]),k=g.useCallback(()=>{n(!1),r?.(),d&&d.success>0&&Be.success(`Imported ${d.success} item${d.success!==1?"s":""}`),setTimeout(()=>{a("upload"),l(null),u({current:0,total:0}),f(null)},150)},[n,r,d]),_=g.useCallback(()=>{p||(n(!1),setTimeout(()=>{a("upload"),l(null),u({current:0,total:0}),f(null)},150))},[p,n]),C=i&&i.items.length>0&&i.errors.length===0,T=()=>{switch(s){case"upload":return o.jsx(ags,{onFileSelect:x,isParsing:v,error:y?.message});case"preview":return i?o.jsx("div",{className:"flex flex-col gap-4",children:i.errors.length>0?o.jsxs(o.Fragment,{children:[o.jsx(igs,{errors:i.errors}),o.jsx("div",{className:"text-neutral4 text-sm",children:"Please fix the errors in your JSON file and try again."})]}):o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"text-neutral4 text-sm",children:["Found ",i.items.length," valid item",i.items.length!==1?"s":""," to import."]}),o.jsx(sgs,{items:i.items,maxRows:5})]})}):null;case"importing":return o.jsxs("div",{className:"flex flex-col items-center gap-4 py-8",children:[o.jsx(qt,{}),o.jsxs("div",{className:"text-center",children:[o.jsx("div",{className:"text-neutral1 text-lg font-medium",children:"Importing items..."}),o.jsxs("div",{className:"text-neutral4 mt-1 text-sm",children:[c.current," of ",c.total]})]})]});case"complete":return o.jsxs("div",{className:"flex flex-col items-center gap-4 py-8",children:[o.jsx("div",{className:"text-4xl",children:d&&d.errors===0?"✓":"⚠"}),o.jsxs("div",{className:"text-center",children:[o.jsx("div",{className:"text-neutral1 text-lg font-medium",children:"Import Complete"}),o.jsxs("div",{className:"text-neutral4 mt-1 text-sm",children:[d?.success??0," item",d?.success!==1?"s":""," imported",d&&d.errors>0&&o.jsxs("span",{className:"text-accent2",children:[" ","(",d.errors," error",d.errors!==1?"s":"",")"]})]})]})]})}},E=()=>{switch(s){case"upload":return o.jsx(oe,{onClick:_,children:"Cancel"});case"preview":return o.jsxs(o.Fragment,{children:[o.jsx(oe,{onClick:()=>a("upload"),children:"Back"}),o.jsxs(oe,{variant:"primary",onClick:S,disabled:!C,children:["Import ",i?.items.length??0," Item",i?.items.length!==1?"s":""]})]});case"importing":return null;case"complete":return o.jsx(oe,{variant:"primary",onClick:k,children:"Done"})}},N={upload:"Import JSON",preview:"Preview Data",importing:"Importing",complete:"Import Complete"};return o.jsx(gr,{open:t,onOpenChange:_,children:o.jsxs(vr,{className:"max-h-[90vh] max-w-2xl",children:[o.jsxs(yr,{children:[o.jsx(pr,{children:N[s]}),o.jsx(Ns,{children:"Import dataset items from a JSON file."})]}),o.jsx($r,{className:"max-h-[50vh] min-h-[200px] overflow-y-auto",children:T()}),o.jsx(ac,{className:"flex justify-end gap-2 px-6 pt-4",children:E()})]})})}function lgs(e){if(!(e instanceof HTMLElement))return!1;if(e.isContentEditable)return!0;const t=e.tagName;return t==="INPUT"||t==="TEXTAREA"||t==="SELECT"?!0:!!e.closest('[role="dialog"]:not([data-item-panel])')}function gVt({active:e,onPrevious:t,onNext:n,onClose:r}){g.useEffect(()=>{if(!e)return;const s=a=>{a.defaultPrevented||lgs(a.target)||(a.key==="PageUp"?(a.preventDefault(),t?.()):a.key==="PageDown"?(a.preventDefault(),n?.()):a.key==="Escape"&&(a.preventDefault(),r()))};return window.addEventListener("keydown",s),()=>window.removeEventListener("keydown",s)},[e,t,n,r])}const vVt=g.createContext(null);function cgs({datasetId:e,items:t,isLoadingItems:n,children:r}){const s=Xr(),i=Sgt("/datasets/:datasetId/items/:itemId")?.params.itemId,l=g.useCallback(h=>{s(`/datasets/${e}/items/${encodeURIComponent(h)}`)},[s,e]),c=g.useCallback(()=>{s(`/datasets/${e}`)},[s,e]),u=g.useMemo(()=>i?t.findIndex(h=>h.id===i):-1,[t,i]),d=g.useMemo(()=>{if(u<=0)return;const h=t[u-1].id;return()=>l(h)},[u,t,l]),f=g.useMemo(()=>{if(u<0||u>=t.length-1)return;const h=t[u+1].id;return()=>l(h)},[u,t,l]);gVt({active:!!i,onPrevious:d,onNext:f,onClose:c});const p=g.useMemo(()=>({datasetId:e,items:t,isLoadingItems:n,currentItemId:i,openItem:l,close:c,goToPreviousItem:d,goToNextItem:f}),[e,t,n,i,l,c,d,f]);return o.jsx(vVt.Provider,{value:p,children:r})}function yVt(){const e=g.useContext(vVt);if(!e)throw new Error("useDatasetItemPanel must be used within a DatasetItemPanelProvider");return e}const zAe=e=>{const t=Ge(),{data:n}=$D(e),r=n?.experiments;return yt({queryKey:["dataset-review-items",e,r?.map(s=>s.id)],queryFn:async()=>!r||r.length===0?[]:(await Promise.all(r.map(async a=>{if(!a.datasetId)return[];try{const{results:i}=await t.listDatasetExperimentResults(a.datasetId,a.id);return i.filter(l=>l.status==="needs-review").map(l=>({id:l.id,input:l.input,output:l.output,error:l.error,itemId:l.itemId,experimentId:l.experimentId,datasetId:a.datasetId??void 0,traceId:l.traceId??void 0,scores:l.scores?Object.fromEntries(l.scores.map(c=>[c.scorerId,c.score??0])):{},tags:l.tags??[],comment:l.comment??""}))}catch{return[]}}))).flat(),enabled:!!e&&!!r&&r.length>0,refetchOnWindowFocus:!1})},ugs=e=>{const t=Ge(),{data:n}=$D(e),r=n?.experiments;return yt({queryKey:["dataset-completed-items",e,r?.map(s=>s.id)],queryFn:async()=>!r||r.length===0?[]:(await Promise.all(r.map(async a=>{if(!a.datasetId)return[];try{const{results:i}=await t.listDatasetExperimentResults(a.datasetId,a.id);return i.filter(l=>l.status==="complete").map(l=>({id:l.id,input:l.input,output:l.output,error:l.error,itemId:l.itemId,experimentId:l.experimentId,datasetId:a.datasetId??void 0,traceId:l.traceId??void 0,scores:l.scores?Object.fromEntries(l.scores.map(c=>[c.scorerId,c.score??0])):{},tags:l.tags??[],comment:l.comment??""}))}catch{return[]}}))).flat(),enabled:!!e&&!!r&&r.length>0,refetchOnWindowFocus:!1})};function BAe({label:e,wide:t=!1,children:n}){return o.jsxs("div",{className:K("pointer-events-none absolute inset-0 z-30","grid transition-[grid-template-columns] duration-300 ease-in-out",t?"grid-cols-[1fr_4fr]":"grid-cols-[1fr_1fr]"),children:[o.jsx("div",{className:"pointer-events-none"}),o.jsx("div",{role:"dialog","data-item-panel":!0,"aria-label":e,className:"pointer-events-auto h-full min-h-0 min-w-0 overflow-y-auto",children:n})]})}function dgs(e,t){if(typeof e=="string")return e.length>t?e.slice(0,t)+"...":e;try{const n=JSON.stringify(e);return n.length>t?n.slice(0,t)+"...":n}catch{return String(e)}}function bVt({datasetId:e,experimentId:t,featuredItemId:n,detailPanelVariant:r="inline"}){const s=Ge(),{data:a}=Zg(e),{data:i,isLoading:l}=zAe(e),{data:c,isLoading:u}=ugs(e),d=g.useMemo(()=>t?(i??[]).filter($e=>$e.experimentId===t):i,[i,t]),f=g.useMemo(()=>t?(c??[]).filter($e=>$e.experimentId===t):c,[c,t]),{updateExperimentResult:p}=qi(),[h,m]=g.useState(n??null);g.useEffect(()=>{n!==void 0&&m(n)},[n]);const[v,y]=g.useState(null),[b,x]=g.useState(new Set),[S,k]=g.useState(!1),[_,C]=g.useState(!1),[T,E]=g.useState(!1),[N,I]=g.useState(""),[A,R]=g.useState(""),[L,D]=g.useState(""),[F,H]=g.useState([]),[B,z]=g.useState(!1),[V,M]=g.useState(null),G=g.useMemo(()=>V??d??[],[V,d]);g.useEffect(()=>{M(null)},[e,t]),g.useEffect(()=>{d&&V===null&&M(d)},[d,V]);const U=g.useMemo(()=>{const $e=new Set;if(a?.tags)for(const ye of a.tags)$e.add(ye);for(const ye of G)for(const xe of ye.tags)$e.add(xe);return[...$e].sort()},[a,G]),$=g.useCallback($e=>{!a||!e||(a.tags??[]).includes($e)},[a,e]),q=g.useMemo(()=>v?v==="__untagged__"?G.filter($e=>$e.tags.length===0):G.filter($e=>$e.tags.includes(v)):G,[G,v]),Z=g.useMemo(()=>{const $e=new Map;for(const ye of G)for(const xe of ye.tags)$e.set(xe,($e.get(xe)??0)+1);return[...$e.entries()].sort((ye,xe)=>xe[1]-ye[1])},[G]),Y=g.useMemo(()=>G.filter($e=>$e.tags.length===0).length,[G]),ne=g.useMemo(()=>{let $e=0;return v&&$e++,S&&$e++,$e},[v,S]),J=g.useCallback(($e,ye)=>{M(Re=>(Re??[]).map(He=>He.id===$e?{...He,tags:ye}:He));const xe=G.find(Re=>Re.id===$e);xe?.experimentId&&xe?.datasetId&&p.mutate({datasetId:xe.datasetId,experimentId:xe.experimentId,resultId:xe.id,tags:ye})},[G,p]),ee=g.useCallback(($e,ye)=>{const xe=G.find(Re=>Re.id===$e);xe?.traceId&&ye!==void 0&&s.createFeedback({feedback:{traceId:xe.traceId,source:"studio",feedbackSource:"studio",feedbackType:"rating",value:ye==="positive"?1:-1,experimentId:xe.experimentId??void 0,sourceId:xe.id}}).catch(()=>{}),M(Re=>(Re??[]).map(He=>He.id===$e?{...He,rating:ye}:He))},[G,s]),se=g.useCallback(($e,ye)=>{const xe=G.find(Re=>Re.id===$e);xe?.experimentId&&xe?.datasetId&&p.mutate({datasetId:xe.datasetId,experimentId:xe.experimentId,resultId:xe.id,comment:ye}),xe?.traceId&&s.createFeedback({feedback:{traceId:xe.traceId,source:"studio",feedbackSource:"studio",feedbackType:"comment",value:ye,comment:ye,experimentId:xe.experimentId??void 0,sourceId:xe.id}}).catch(()=>{}),M(Re=>(Re??[]).map(He=>He.id===$e?{...He,comment:ye}:He))},[G,s,p]),le=g.useCallback($e=>{const ye=G.find(xe=>xe.id===$e);M(xe=>(xe??[]).filter(Re=>Re.id!==$e)),x(xe=>{const Re=new Set(xe);return Re.delete($e),Re}),h===$e&&m(null),ye?.experimentId&&ye?.datasetId&&p.mutate({datasetId:ye.datasetId,experimentId:ye.experimentId,resultId:ye.id,status:null})},[G,p,h]),X=g.useCallback($e=>{const ye=G.find(xe=>xe.id===$e);M(xe=>(xe??[]).filter(Re=>Re.id!==$e)),x(xe=>{const Re=new Set(xe);return Re.delete($e),Re}),h===$e&&m(null),ye?.experimentId&&ye?.datasetId&&p.mutate({datasetId:ye.datasetId,experimentId:ye.experimentId,resultId:ye.id,status:"complete"})},[G,p,h]),te=g.useMemo(()=>{const $e=S?f??[]:q;return!S||!v?$e:v==="__untagged__"?$e.filter(ye=>ye.tags.length===0):$e.filter(ye=>ye.tags.includes(v))},[S,f,q,v]),re=S?u:!1,pe=g.useMemo(()=>new Set(te.map($e=>$e.id)),[te]),ce=g.useMemo(()=>[...b].filter($e=>pe.has($e)).length,[b,pe]),Se=te.length>0&&ce===te.length,ve=ce>0&&!Se,ke=g.useCallback($e=>{x(ye=>{const xe=new Set(ye);return xe.has($e)?xe.delete($e):xe.add($e),xe})},[]),Ne=g.useCallback(()=>{x(Se?new Set:new Set(te.map($e=>$e.id)))},[Se,te]),Pe=g.useCallback($e=>{for(const ye of b){const xe=G.find(Re=>Re.id===ye);xe&&!xe.tags.includes($e)&&J(ye,[...xe.tags,$e])}},[G,b,J]),Ae=g.useCallback($e=>{for(const ye of b){const xe=G.find(Re=>Re.id===ye);xe&&xe.tags.includes($e)&&J(ye,xe.tags.filter(Re=>Re!==$e))}},[G,b,J]),Ie=g.useCallback(()=>{for(const $e of b)X($e);x(new Set)},[b,X]),ae=g.useCallback(()=>{for(const $e of b)le($e);x(new Set)},[b,le]),fe=g.useCallback(()=>{I(""),E(!0)},[]),ue=g.useCallback(async()=>{if(!(!A||!L)){C(!0),E(!1);try{const $e=G.filter(xe=>b.has(xe.id));if($e.length===0){C(!1);return}const ye=await s.clusterFailures({modelId:`${A}/${L}`,items:$e.map(xe=>({id:xe.id,input:xe.input,output:xe.output??void 0,error:typeof xe.error=="string"?xe.error:xe.error?String(xe.error):void 0,scores:xe.scores,existingTags:xe.tags.length>0?xe.tags:void 0})),availableTags:U.length>0?U:void 0,prompt:N||void 0});ye.proposedTags&&ye.proposedTags.length>0&&(H(ye.proposedTags.map(xe=>({...xe,accepted:!0}))),z(!0))}catch($e){console.error("Analysis failed:",$e)}finally{C(!1)}}},[A,L,G,b,s,U,N]),we=g.useCallback(()=>{for(const $e of F){if(!$e.accepted)continue;const ye=G.find(xe=>xe.id===$e.itemId);if(ye){const xe=[...new Set([...ye.tags,...$e.tags])];J(ye.id,xe)}}z(!1)},[F,G,J]),Ee=g.useCallback($e=>{m(ye=>ye===$e?null:$e)},[]),me=g.useMemo(()=>h?te.find($e=>$e.id===h)??null:null,[h,te]),_e=h?te.findIndex($e=>$e.id===h):-1,Ue=_e>0?()=>m(te[_e-1].id):void 0,Le=_e>=0&&_e<te.length-1?()=>m(te[_e+1].id):void 0,ze="auto minmax(15rem,1fr) 10rem 8rem 6rem 6rem",{containerRef:Ye,getRowProps:rt}=wo({count:te.length});if(l)return o.jsx("div",{className:"flex flex-1 items-center justify-center",children:o.jsx(qt,{className:"h-6 w-6"})});const gt=me?o.jsx(LUt,{className:"h-full",item:me,isCompleted:S,tagVocabulary:U,onRate:$e=>ee(me.id,$e),onSetTags:$e=>{J(me.id,$e);for(const ye of $e)U.includes(ye)||$(ye)},onComment:$e=>se(me.id,$e),onRemove:()=>le(me.id),onComplete:S?void 0:()=>X(me.id),onPrevious:Ue,onNext:Le,onClose:()=>m(null)}):null;return o.jsxs("div",{className:K("flex h-full min-h-0 flex-1",r==="overlay"?"overflow-visible":"overflow-hidden"),children:[o.jsx(gr,{open:T,onOpenChange:E,children:o.jsxs(vr,{children:[o.jsxs(yr,{children:[o.jsx(pr,{children:"Analyze Items"}),o.jsx(Ns,{children:"Use an LLM to automatically suggest tags for the selected items."})]}),o.jsxs("div",{className:"space-y-4 py-2",children:[o.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[o.jsxs("div",{children:[o.jsx($t,{className:"mb-1 block text-xs",children:"Provider"}),o.jsx(Hy,{value:A,onValueChange:R})]}),o.jsxs("div",{children:[o.jsx($t,{className:"mb-1 block text-xs",children:"Model"}),o.jsx(Wy,{llmId:A,value:L,onValueChange:D})]})]}),o.jsxs(ge,{variant:"ui-xs",className:"text-neutral3",children:[b.size," item",b.size!==1?"s":""," will be analyzed"]}),o.jsxs("div",{children:[o.jsx($t,{className:"text-xs",children:"Instructions (optional)"}),o.jsx(Rl,{value:N,onChange:$e=>I($e.target.value),placeholder:"E.g., Focus on safety issues and factual errors...",rows:3,className:"mt-1 text-xs"})]})]}),o.jsxs(ac,{children:[o.jsx(oe,{variant:"outline",onClick:()=>E(!1),children:"Cancel"}),o.jsxs(oe,{onClick:ue,disabled:!A||!L||_,children:[_?o.jsx(qt,{className:"mr-1 h-4 w-4"}):null,"Analyze"]})]})]})}),o.jsx(gr,{open:B,onOpenChange:z,children:o.jsxs(vr,{className:"max-h-[80vh] max-w-2xl overflow-y-auto",children:[o.jsxs(yr,{children:[o.jsx(pr,{children:"Review Proposed Tags"}),o.jsxs(Ns,{children:[F.filter($e=>$e.accepted).length," of ",F.length," proposals selected"]})]}),o.jsx("div",{className:"space-y-3 py-2",children:F.map(($e,ye)=>{const xe=G.find(Re=>Re.id===$e.itemId);return o.jsx("div",{className:K("p-3 border rounded-lg",!$e.accepted&&"opacity-50"),children:o.jsxs("div",{className:"flex items-start gap-2",children:[o.jsx(So,{checked:$e.accepted,onCheckedChange:Re=>H(He=>He.map((et,Rt)=>Rt===ye?{...et,accepted:!!Re}:et))}),o.jsxs("div",{className:"min-w-0 flex-1",children:[o.jsx(ge,{variant:"ui-xs",className:"text-neutral4 block truncate",children:xe?typeof xe.input=="string"?xe.input.slice(0,100):JSON.stringify(xe.input).slice(0,100):$e.itemId}),o.jsx("div",{className:"mt-1.5 flex flex-wrap gap-1",children:$e.tags.map((Re,He)=>o.jsx(zUt,{tag:Re,onRename:et=>H(Rt=>Rt.map((Te,Ke)=>Ke===ye?{...Te,tags:Te.tags.map((pt,Wt)=>Wt===He?et:pt)}:Te)),onRemove:()=>H(et=>et.map((Rt,Te)=>Te===ye?{...Rt,tags:Rt.tags.filter((Ke,pt)=>pt!==He)}:Rt))},`${Re}-${He}`))}),$e.reason&&o.jsx(ge,{variant:"ui-xs",className:"text-neutral3 mt-1 block italic",children:$e.reason})]})]})},$e.itemId)})}),o.jsxs(ac,{children:[o.jsx(oe,{variant:"outline",onClick:()=>z(!1),children:"Cancel"}),o.jsxs(oe,{onClick:we,disabled:F.filter($e=>$e.accepted).length===0,children:["Accept ",F.filter($e=>$e.accepted).length," proposals"]})]})]})}),o.jsxs("div",{className:K("grid h-full min-h-0 w-full grid-cols-1 gap-4",r==="overlay"?"overflow-visible":"overflow-hidden",me&&r==="inline"&&"grid-cols-[1fr_1fr]"),children:[o.jsxs("div",{className:"grid min-h-0 w-full grid-rows-[auto_1fr] gap-3 overflow-hidden pt-3",children:[(G.length>0||ne>0)&&o.jsxs("div",{className:"flex w-full flex-wrap items-center justify-start gap-3",children:[o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsxs(it,{children:[o.jsx(it.Trigger,{asChild:!0,children:o.jsxs(oe,{size:"sm",children:[o.jsx(Wlt,{}),"Filter",ne>0&&o.jsx(Xt,{variant:"default",size:"xs",children:ne})]})}),o.jsxs(it.Content,{align:"start",className:K("min-w-48"),children:[o.jsxs(it.Sub,{children:[o.jsxs(it.SubTrigger,{children:["Status",S&&o.jsx("span",{className:K("ml-auto text-ui-sm text-accent1"),children:"1"})]}),o.jsxs(it.SubContent,{children:[o.jsx(it.CheckboxItem,{checked:!S,onCheckedChange:()=>{k(!1),m(null)},onSelect:$e=>$e.preventDefault(),children:"Review Queue"}),o.jsx(it.CheckboxItem,{checked:S,onCheckedChange:()=>{k(!0),m(null)},onSelect:$e=>$e.preventDefault(),children:"Completed"})]})]}),o.jsxs(it.Sub,{children:[o.jsxs(it.SubTrigger,{children:["Tags",v&&o.jsx("span",{className:K("ml-auto text-ui-sm text-accent1"),children:"1"})]}),o.jsxs(it.SubContent,{children:[o.jsx(it.CheckboxItem,{checked:!v,onCheckedChange:()=>y(null),onSelect:$e=>$e.preventDefault(),children:"All"}),Y>0&&o.jsx(it.CheckboxItem,{checked:v==="__untagged__",onCheckedChange:()=>y(v==="__untagged__"?null:"__untagged__"),onSelect:$e=>$e.preventDefault(),children:"Untagged"}),Z.length>0&&o.jsx(it.Separator,{}),Z.map(([$e])=>o.jsx(it.CheckboxItem,{checked:v===$e,onCheckedChange:()=>y(v===$e?null:$e),onSelect:ye=>ye.preventDefault(),children:$e},$e))]})]}),ne>0&&o.jsxs(o.Fragment,{children:[o.jsx(it.Separator,{}),o.jsxs(it.Item,{onSelect:()=>{y(null),k(!1),m(null)},children:[o.jsx(Ps,{}),"Clear all filters"]})]})]})]}),ne>0&&o.jsxs(oe,{size:"sm",onClick:()=>{y(null),k(!1),m(null)},children:[o.jsx(Ps,{}),"Reset"]})]}),!S&&b.size>0&&o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(FUt,{selectedCount:b.size,vocabulary:U,onApplyTag:Pe,onRemoveTag:Ae,onNewTag:$e=>Pe($e)}),o.jsxs(it,{children:[o.jsx(it.Trigger,{asChild:!0,children:o.jsxs(oe,{size:"sm",disabled:_,children:[_?o.jsx(qt,{className:"h-4 w-4"}):o.jsx(Ve,{size:"sm",children:o.jsx(ba,{})}),"Actions"]})}),o.jsxs(it.Content,{align:"end",children:[o.jsxs(it.Item,{onSelect:Ie,children:[o.jsx(Ve,{size:"sm",children:o.jsx(gO,{})}),"Complete"]}),o.jsxs(it.Item,{onSelect:ae,children:[o.jsx(Ve,{size:"sm",children:o.jsx(td,{})}),"Remove"]}),o.jsx(it.Separator,{}),o.jsxs(it.Item,{onSelect:fe,children:[o.jsx(Ve,{size:"sm",children:o.jsx(Ag,{})}),"Analyze"]})]})]})]})]}),re?o.jsx("div",{className:"flex flex-1 items-center justify-center",children:o.jsx(qt,{className:"h-6 w-6"})}):te.length===0?o.jsx("div",{className:"flex h-full items-center justify-center py-12",children:o.jsx(_r,{iconSlot:o.jsx(yO,{className:"text-neutral3 h-8 w-8"}),titleSlot:S?"No completed reviews yet":"No items to review",descriptionSlot:S?"Items marked as complete will appear here for auditing.":"When experiment results are flagged for review, they will appear here."})}):o.jsxs(be,{columns:ze,className:"min-w-0",scrollRef:Ye,children:[o.jsxs(be.Top,{hasLeadingCell:!0,children:[S?o.jsx(be.TopCell,{children:" "}):o.jsx(be.TopSelectCell,{checked:Se?!0:ve?"indeterminate":!1,onToggle:()=>Ne(),"aria-label":"Select all"}),o.jsxs(be.TopCells,{colStart:2,children:[o.jsx(be.TopCell,{children:"Input"}),o.jsx(be.TopCell,{children:"Comment"}),o.jsx(be.TopCell,{children:"Tags"}),o.jsx(be.TopCell,{children:"Rating"}),o.jsx(be.TopCell,{children:"Scores"})]})]}),te.map(($e,ye)=>{const xe=$e.scores?Object.entries($e.scores):[],Re=h===$e.id,He=o.jsxs(o.Fragment,{children:[o.jsx(be.Cell,{className:"text-neutral4 min-w-0",children:o.jsx("span",{className:"block truncate",children:dgs($e.input,200)})}),o.jsx(be.Cell,{className:"min-w-0",children:$e.comment?o.jsx(ge,{variant:"ui-xs",className:"text-neutral3 truncate",children:$e.comment}):o.jsx(ge,{variant:"ui-xs",className:"text-neutral2",children:"—"})}),o.jsx(be.Cell,{className:"min-w-0",children:$e.tags.length>0?o.jsx(ge,{variant:"ui-xs",className:"text-neutral4 truncate",children:$e.tags.join(", ")}):o.jsx(ge,{variant:"ui-xs",className:"text-neutral2",children:"—"})}),o.jsxs(be.Cell,{children:[$e.rating==="positive"&&o.jsx(Ve,{size:"sm",className:"text-positive1",children:o.jsx(g0e,{})}),$e.rating==="negative"&&o.jsx(Ve,{size:"sm",className:"text-negative1",children:o.jsx(m0e,{})}),!$e.rating&&o.jsx(ge,{variant:"ui-xs",className:"text-neutral2",children:"—"})]}),o.jsx(be.Cell,{children:xe.length>0?o.jsxs("div",{className:"flex items-center gap-1",children:[o.jsx(Ve,{size:"sm",className:"text-neutral3",children:o.jsx(lm,{})}),o.jsx(ge,{variant:"ui-xs",className:"text-neutral4 font-mono",children:xe[0][1].toFixed(2)}),xe.length>1&&o.jsxs(Xt,{variant:"default",children:["+",xe.length-1]})]}):o.jsx(ge,{variant:"ui-xs",className:"text-neutral2",children:"—"})})]});return o.jsxs(be.RowWrapper,{children:[S?o.jsx(be.Cell,{className:"justify-items-center px-4",children:o.jsx("div",{role:"img","aria-label":$e.error?"Error":"Success",title:$e.error?"Error":"Success",className:K("w-2 h-2 rounded-full",$e.error?"bg-red-700":"bg-green-600")})}):o.jsx(be.SelectCell,{checked:b.has($e.id),onToggle:()=>ke($e.id),"aria-label":`Select item ${$e.id}`}),o.jsx(be.RowButton,{colStart:2,featured:Re,onClick:()=>Ee($e.id),...rt(ye),children:He})]},$e.id)})]})]}),gt&&(r==="overlay"?o.jsx(BAe,{label:`Review item ${me?.id??""}`,children:gt}):gt)]})]})}function fgs({datasetId:e,onAddItemClick:t,onNavigateToDataset:n,rightSlot:r}){const[s,a]=ti(),{tab:i,activeVersion:l,handleTabChange:c}=FAe(s,a),[u,d]=g.useState(!1),[f,p]=g.useState(!1),[h,m]=g.useState(!1),[v,y]=g.useState([]),[b,x]=g.useState(!1),[S,k]=g.useState([]),[_,C]=g.useState(!1),[T,E]=g.useState([]),[N,I]=g.useState(0),[A,R]=g.useState(""),[L]=UH(A,300),{data:D}=Zg(e),{data:F=[],total:H,isLoading:B,setEndOfListElement:z,isFetchingNextPage:V,hasNextPage:M}=Qx(e,L||void 0,l),{total:G}=Qx(e,void 0,l),[U,$]=g.useState({}),{data:q,isLoading:Z}=$D(e,void 0,U),{data:Y}=$D(e),{deleteItems:ne}=qi(),J=q?.experiments??[],ee=Y?.experiments??[],se=Ims({hasSearchQuery:!!L,filteredItemsLength:F.length,unfilteredItemsTotal:G,itemsTotal:H}),{data:le}=zAe(e),X=le?.length??0,{currentItemId:te,openItem:re,close:pe}=yVt(),ce=ae=>{te===ae?pe():re(ae)},Se=ae=>{y(ae),m(!0)},ve=ae=>{k(ae),x(!0)},ke=ae=>{x(ae),ae||(k([]),I(fe=>fe+1))},Ne=ae=>{E(ae),C(!0)},Pe=async()=>{await ne.mutateAsync({datasetId:e,itemIds:T}),Be.success(`Deleted ${T.length} items`),C(!1),E([]),I(ae=>ae+1)},Ae=ae=>{m(!1),y([]),I(fe=>fe+1),n?.(ae)},Ie=ae=>{m(ae),ae||(y([]),I(fe=>fe+1))};return o.jsxs(o.Fragment,{children:[o.jsxs(Vl,{defaultTab:"items",value:i,onValueChange:c,className:"grid h-full grid-rows-[auto_1fr]",children:[o.jsxs("div",{className:"flex items-center justify-between gap-4 px-6 py-3",children:[o.jsxs(ql,{variant:"pill-ghost",children:[o.jsxs(hr,{value:"items",className:"px-3 py-2.5",children:[o.jsx(Ve,{size:"sm",children:o.jsx(kj,{})}),o.jsx(ge,{variant:"ui-sm",className:"text-inherit",children:"Items"}),o.jsx(rl,{color:"gray",children:se})]}),o.jsxs(hr,{value:"experiments",className:"px-3 py-2.5",children:[o.jsx(Ve,{size:"sm",children:o.jsx(l0e,{})}),o.jsx(ge,{variant:"ui-sm",className:"text-inherit",children:"Experiments"}),o.jsx(rl,{color:"gray",children:J.length})]}),o.jsxs(hr,{value:"review",className:"px-3 py-2.5",children:[o.jsx(Ve,{size:"sm",children:o.jsx(yO,{})}),o.jsx(ge,{variant:"ui-sm",className:"text-inherit",children:"Review"}),X>0&&o.jsx(rl,{color:"orange",children:X})]})]}),r&&o.jsx("div",{className:"shrink-0 whitespace-nowrap",children:r})]}),o.jsx(Br,{value:"items",className:"border-border1 grid overflow-auto border-t py-0",children:o.jsx(rgs,{items:F,isLoading:B,onItemClick:ce,featuredItemId:te,onAddClick:t??(()=>{}),onImportClick:()=>d(!0),onImportJsonClick:()=>p(!0),onBulkDeleteClick:Ne,onCreateDatasetClick:Se,onAddToDatasetClick:ve,datasetName:D?.name,clearSelectionTrigger:N,setEndOfListElement:z,isFetchingNextPage:V,hasNextPage:M,searchQuery:A,activeSearchQuery:L,onSearchChange:R,currentDatasetVersion:D?.version})}),o.jsx(Br,{value:"experiments",className:"border-border1 grid overflow-auto border-t px-6 pt-3 pb-6",children:o.jsx(Xms,{experiments:J,allExperiments:ee,isLoading:Z,datasetId:e,filters:U,onFiltersChange:$})}),o.jsx(Br,{value:"review",className:"border-border1 overflow-auto border-t px-6 pt-3 pb-6",children:o.jsx(bVt,{datasetId:e})})]}),o.jsx(zms,{datasetId:e,open:u,onOpenChange:d}),o.jsx(ogs,{datasetId:e,open:f,onOpenChange:p}),o.jsx(yms,{open:h,onOpenChange:Ie,items:v,onSuccess:Ae}),o.jsx(bms,{open:b,onOpenChange:ke,items:S,currentDatasetId:e}),o.jsx(Mt,{open:_,onOpenChange:C,children:o.jsxs(Mt.Content,{children:[o.jsxs(Mt.Header,{children:[o.jsx(Mt.Title,{children:"Delete Items"}),o.jsxs(Mt.Description,{children:["Are you sure you want to delete ",T.length," item",T.length!==1?"s":"","? This action cannot be undone."]})]}),o.jsxs(Mt.Footer,{children:[o.jsx(Mt.Cancel,{children:"Cancel"}),o.jsx(Mt.Action,{onClick:Pe,children:ne.isPending?"Deleting...":"Delete"})]})]})})]})}function xVt({selectedScorers:e,setSelectedScorers:t,disabled:n=!1,container:r,label:s="Scorers (Optional)",helperText:a}){const{data:i,isLoading:l}=lh(),c=Object.entries(i??{}).filter(([,u])=>u.isRegistered).map(([u,d])=>({value:u,label:d.scorer?.config?.name||u,description:d.scorer?.config?.description||""}));return o.jsxs("div",{className:"grid gap-2",children:[o.jsx($t,{children:s}),a?o.jsx("p",{className:"text-muted-foreground text-xs",children:a}):null,o.jsx(yl,{multiple:!0,options:c,value:e,onValueChange:t,placeholder:"Select scorers...",searchPlaceholder:"Search scorers...",emptyText:"No scorers available",disabled:n||l,container:r})]})}function wVt({overrideEnabled:e,onOverrideEnabledChange:t,selectedScorerIds:n,onSelectedScorerIdsChange:r,disabled:s=!1}){return o.jsxs("div",{className:"grid gap-3",children:[o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsx(sc,{id:"override-dataset-scorers",checked:e,onCheckedChange:t,disabled:s}),o.jsx($t,{htmlFor:"override-dataset-scorers",children:"Override dataset scorers"})]}),o.jsx("p",{className:"text-muted-foreground text-xs",children:e?"Only selected scorers run for this item. Leave empty to run no scorers.":"Use scorers attached to the dataset."}),e?o.jsx(xVt,{selectedScorers:n,setSelectedScorers:r,disabled:s,label:"Item scorers",helperText:"Choose from scorers that can be resolved by this Mastra instance."}):null]})}function pgs(e){if(!(e instanceof Error))return null;const t=e.message.match(/- ({.*})$/);if(!t)return null;try{const n=JSON.parse(t[1]);if(n.field&&Array.isArray(n.errors))return{field:n.field,errors:n.errors}}catch{}return null}function Eie({field:e,errors:t}){return t.length?o.jsx("div",{className:"mt-2 space-y-1",children:t.map((n,r)=>o.jsxs("p",{className:"text-destructive text-xs",children:[o.jsxs("code",{className:"bg-destructive/10 rounded px-1",children:[e,n.path!=="/"?n.path:""]}),": ",n.message]},r))}):null}function hgs({datasetId:e,open:t,onOpenChange:n,onSuccess:r}){const[s,a]=g.useState("{}"),[i,l]=g.useState(""),[c,u]=g.useState(""),[d,f]=g.useState(""),[p,h]=g.useState(!1),[m,v]=g.useState([]),[y,b]=g.useState(""),[x,S]=g.useState(null),{addItem:k}=qi(),_=()=>{a("{}"),l(""),u(""),f(""),h(!1),v([]),b(""),S(null)},C=R=>{_(),n(R)},T=async R=>{R.preventDefault();let L;try{L=JSON.parse(s)}catch{Be.error("Input must be valid JSON");return}let D;if(i.trim())try{D=JSON.parse(i)}catch{Be.error("Ground Truth must be valid JSON");return}let F;if(c.trim())try{F=JSON.parse(c)}catch{Be.error("Expected Trajectory must be valid JSON");return}let H;if(d.trim())try{const z=JSON.parse(d);if(!Array.isArray(z)){Be.error("Tool Mocks must be a JSON array");return}H=z}catch{Be.error("Tool Mocks must be valid JSON");return}let B;if(y.trim())try{B=JSON.parse(y)}catch{Be.error("Request Context must be valid JSON");return}try{await k.mutateAsync({datasetId:e,input:L,groundTruth:D,expectedTrajectory:F,toolMocks:H,scorerIds:p?m:void 0,requestContext:B}),Be.success("Item added successfully"),C(!1),r?.()}catch(z){const V=pgs(z);V?S(V):Be.error(`Failed to add item: ${z instanceof Error?z.message:"Unknown error"}`)}},E=R=>{a(R),x?.field==="input"&&S(null)},N=R=>{l(R),x?.field==="groundTruth"&&S(null)},I=R=>{f(R),x?.field==="toolMocks"&&S(null)},A=()=>{C(!1)};return o.jsxs(wa,{dialogTitle:"Add Item",dialogDescription:"Create a new dataset item",isOpen:t,onClose:A,level:1,children:[o.jsx(wa.Top,{children:"Add Item"}),o.jsxs(wa.Content,{children:[o.jsx(wa.Header,{children:o.jsx(wa.Heading,{children:"Add Item"})}),o.jsxs("form",{onSubmit:T,className:"grid gap-6",children:[o.jsxs("div",{className:"grid gap-2",children:[o.jsx($t,{htmlFor:"item-input",children:"Input (JSON) *"}),o.jsx(Zr,{value:s,onChange:E,showCopyButton:!1,className:"min-h-[240px]"}),x?.field==="input"&&o.jsx(Eie,{field:"input",errors:x.errors})]}),o.jsxs("div",{className:"grid gap-2",children:[o.jsx($t,{htmlFor:"item-ground-truth",children:"Ground Truth (JSON, optional)"}),o.jsx(Zr,{value:i,onChange:N,showCopyButton:!1,className:"min-h-[200px]"}),x?.field==="groundTruth"&&o.jsx(Eie,{field:"groundTruth",errors:x.errors})]}),o.jsxs("div",{className:"grid gap-2",children:[o.jsx($t,{htmlFor:"item-trajectory",children:"Expected Trajectory (JSON, optional)"}),o.jsx(Zr,{value:c,onChange:u,showCopyButton:!1,className:"min-h-[200px]"})]}),o.jsxs("div",{className:"grid gap-2",children:[o.jsx($t,{htmlFor:"item-tool-mocks",children:"Tool Mocks (JSON array, optional)"}),o.jsx(Zr,{value:d,onChange:I,showCopyButton:!1,className:"min-h-[200px]"}),x?.field==="toolMocks"&&o.jsx(Eie,{field:"toolMocks",errors:x.errors})]}),o.jsx(wVt,{overrideEnabled:p,onOverrideEnabledChange:h,selectedScorerIds:m,onSelectedScorerIdsChange:v,disabled:k.isPending}),o.jsxs("div",{className:"grid gap-2",children:[o.jsx($t,{htmlFor:"item-request-context",children:"Request Context (JSON, optional)"}),o.jsx(Zr,{value:y,onChange:b,showCopyButton:!1,className:"min-h-[200px]"})]}),o.jsxs("div",{className:"flex justify-end gap-2 pt-4",children:[o.jsx(oe,{type:"button",onClick:A,children:"Cancel"}),o.jsx(oe,{type:"submit",variant:"primary",disabled:k.isPending,children:k.isPending?"Adding...":"Add Item"})]})]})]})]})}function mgs({item:e}){return o.jsx(Ia,{withMargins:!1,children:o.jsxs(Ia.Column,{children:[o.jsxs(Ia.Title,{size:"smaller",children:[o.jsx(gV,{}),o.jsx("span",{className:"truncate",children:e.id}),o.jsx(Sa,{content:e.id,tooltip:`Copy item ID: ${e.id}`})]}),o.jsxs(Ia.Description,{children:[o.jsxs(Al,{children:[o.jsx(mQt,{})," Created ",br(new Date(e.createdAt),"MMM d, yyyy h:mm aaa")]}),e.datasetVersion!=null&&o.jsxs(Al,{children:[o.jsx(eI,{})," Version v",e.datasetVersion]})]})]})})}function UAe({item:e}){const t=e?.input?JSON.stringify(e.input,null,2):"null",n=e?.groundTruth?JSON.stringify(e.groundTruth,null,2):"null",r=e?.metadata?JSON.stringify(e.metadata,null,2):"null",s=e?.expectedTrajectory?JSON.stringify(e.expectedTrajectory,null,2):null;return o.jsxs(mas,{children:[o.jsx(wa.CodeSection,{title:"Input",icon:o.jsx(wj,{}),codeStr:t}),o.jsx(wa.CodeSection,{title:"Ground Truth",icon:o.jsx(cx,{}),codeStr:n}),s&&o.jsx(wa.CodeSection,{title:"Expected Trajectory",icon:o.jsx(p0e,{}),codeStr:s}),o.jsx(wa.CodeSection,{title:"Scorers",icon:o.jsx(xV,{}),codeStr:e.scorerIds===void 0?"Inherited from dataset":JSON.stringify(e.scorerIds,null,2)}),o.jsx(wa.CodeSection,{title:"Metadata",icon:o.jsx(tI,{}),codeStr:r})]})}function Tie({field:e,errors:t}){return t.length?o.jsx("div",{className:"mt-2 space-y-1",children:t.map((n,r)=>o.jsxs("p",{className:"text-destructive text-xs",children:[o.jsxs("code",{className:"bg-destructive/10 rounded px-1",children:[e,n.path!=="/"?n.path:""]}),": ",n.message]},r))}):null}function ggs({inputValue:e,setInputValue:t,groundTruthValue:n,setGroundTruthValue:r,metadataValue:s,setMetadataValue:a,trajectoryValue:i,setTrajectoryValue:l,toolMocksValue:c,setToolMocksValue:u,scorerOverrideEnabled:d,setScorerOverrideEnabled:f,selectedScorerIds:p,setSelectedScorerIds:h,requestContextValue:m,setRequestContextValue:v,validationErrors:y,onSave:b,onCancel:x,isSaving:S}){return o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"mb-4",children:o.jsxs("h3",{className:"flex items-center gap-2 text-lg font-medium",children:[o.jsx(cm,{className:"h-5 w-5"})," Edit Item"]})}),o.jsxs("div",{className:"space-y-6",children:[o.jsxs("div",{className:"space-y-2",children:[o.jsx($t,{children:"Input (JSON) *"}),o.jsx(Zr,{value:e,onChange:t,showCopyButton:!1,className:"min-h-[120px]"}),y?.field==="input"&&o.jsx(Tie,{field:"input",errors:y.errors})]}),o.jsxs("div",{className:"space-y-2",children:[o.jsx($t,{children:"Ground Truth (JSON, optional)"}),o.jsx(Zr,{value:n,onChange:r,showCopyButton:!1,className:"min-h-[100px]"}),y?.field==="groundTruth"&&o.jsx(Tie,{field:"groundTruth",errors:y.errors})]}),o.jsxs("div",{className:"space-y-2",children:[o.jsx($t,{children:"Expected Trajectory (JSON, optional)"}),o.jsx(Zr,{value:i,onChange:l,showCopyButton:!1,className:"min-h-[80px]"})]}),o.jsxs("div",{className:"space-y-2",children:[o.jsx($t,{children:"Tool Mocks (JSON array, optional)"}),o.jsxs("p",{className:"text-muted-foreground text-xs",children:["Ordered static mocks served in place of executing the tool. Each entry is"," ",o.jsx("code",{children:'{ "toolName", "args", "output" }'}),". Calling a mocked tool with non-matching args fails the item; unmocked tools run live."]}),o.jsx(Zr,{value:c,onChange:u,showCopyButton:!1,className:"min-h-[100px]"}),y?.field==="toolMocks"&&o.jsx(Tie,{field:"toolMocks",errors:y.errors})]}),o.jsx(wVt,{overrideEnabled:d,onOverrideEnabledChange:f,selectedScorerIds:p,onSelectedScorerIdsChange:h,disabled:S}),o.jsxs("div",{className:"space-y-2",children:[o.jsx($t,{children:"Request Context (JSON, optional)"}),o.jsx(Zr,{value:m,onChange:v,showCopyButton:!1,className:"min-h-[80px]"})]}),o.jsxs("div",{className:"space-y-2",children:[o.jsx($t,{children:"Metadata (JSON, optional)"}),o.jsx(Zr,{value:s,onChange:a,showCopyButton:!1,className:"min-h-[80px]"})]}),o.jsxs("div",{className:"flex gap-2 pt-4",children:[o.jsx(oe,{variant:"primary",onClick:b,disabled:S,children:S?"Saving...":"Save Changes"}),o.jsx(oe,{onClick:x,disabled:S,children:"Cancel"})]})]})]})}const vgs=[{value:"agent",label:"Agent"},{value:"workflow",label:"Workflow"},{value:"scorer",label:"Scorer"}];function ygs({targetType:e,setTargetType:t,targetId:n,setTargetId:r,container:s}){const{data:a,isLoading:i}=$m(),{data:l,isLoading:c}=Zy(),{data:u,isLoading:d}=lh(),f=e==="agent"?Object.entries(a??{}).map(([v,y])=>({value:v,label:y.name??v})):e==="workflow"?Object.entries(l??{}).map(([v,y])=>({value:v,label:y.name??v})):e==="scorer"?Object.entries(u??{}).map(([v,y])=>({value:v,label:y.scorer?.config?.name??v})):[],p=e==="agent"&&i||e==="workflow"&&c||e==="scorer"&&d,h=v=>{t(v),r("")},m=e==="agent"?"Agent":e==="workflow"?"Workflow":"Scorer";return o.jsxs("div",{className:"grid gap-6",children:[o.jsxs("div",{className:"grid gap-2",children:[o.jsx($t,{children:"Target Type"}),o.jsx(yl,{options:vgs,value:e,onValueChange:h,placeholder:"Select target type",searchPlaceholder:"Search types...",emptyText:"No types available",container:s})]}),e&&o.jsxs("div",{className:"grid gap-2",children:[o.jsx($t,{children:m}),o.jsx(yl,{options:f,value:n,onValueChange:r,placeholder:`Select ${e}`,searchPlaceholder:"Search...",emptyText:"No targets available",disabled:p,container:s})]})]})}function bgs({requestContextSchema:e,onChange:t}){const n=g.useMemo(()=>{try{return gm(e)}catch(r){return console.error("Failed to parse requestContextSchema:",r),null}},[e]);return n?o.jsxs("div",{className:"space-y-2",children:[o.jsx($t,{children:"Request Context"}),o.jsx(U3,{schema:n,onValuesChange:t,className:"[&_button[type=submit]]:hidden"})]}):o.jsx("p",{className:"text-destructive text-sm",children:"Failed to parse request context schema"})}function qAe({initialDatasetId:e,initialDatasetVersion:t,initialScorerIds:n,open:r,onOpenChange:s,onSuccess:a}){const i=g.useRef(null),[l,c]=g.useState(e??""),[u,d]=g.useState(t??null),[f,p]=g.useState(""),[h,m]=g.useState(""),[v,y]=g.useState(n??[]),[b,x]=g.useState({}),[S,k]=g.useState(""),{triggerExperiment:_}=qi(),{data:C}=Zg(l),T=C?.requestContextSchema,E=!!(T&&Object.keys(T).length>0),N=l&&f&&h,I=_.isPending,A=H=>{c(H),d(null),x({})},R=()=>{c(e??""),d(t??null),p(""),m(""),y(n??[]),x({}),k("")},L=()=>{if(E){const H=Object.entries(b).filter(([,B])=>B!==void 0&&B!=="");return H.length>0?Object.fromEntries(H):void 0}if(S.trim()){let H;try{H=JSON.parse(S)}catch{throw new Error("Request Context must be valid JSON")}if(!H||typeof H!="object"||Array.isArray(H))throw new Error("Request Context must be a JSON object");return H}},D=async()=>{if(!N)return;let H;try{H=L()}catch(B){const z=B instanceof Error?B.message:"Request Context must be valid JSON";uu.error(z);return}try{const B=await _.mutateAsync({datasetId:l,targetType:f,targetId:h,scorerIds:v.length>0?v:void 0,version:u??void 0,requestContext:H});uu.success("Experiment triggered successfully"),s(!1),a?.(B.experimentId),R()}catch(B){const z=B instanceof Error?B.message:"Failed to trigger experiment";uu.error(z)}},F=()=>{I||(s(!1),R())};return o.jsx(gr,{open:r,onOpenChange:F,children:o.jsxs(vr,{ref:i,children:[o.jsxs(yr,{children:[o.jsx(pr,{children:"Run Experiment"}),o.jsx(Ns,{children:u!=null?`Execute items from version v${u} of the dataset against a target.`:"Execute dataset items against a target."})]}),o.jsxs($r,{className:"grid gap-6",children:[o.jsxs("div",{className:"grid gap-6",children:[o.jsxs("div",{className:"grid gap-2",children:[o.jsx($t,{children:"Dataset"}),o.jsx(_ms,{value:l,onValueChange:A,container:i})]}),l&&o.jsxs("div",{className:"grid gap-2",children:[o.jsx($t,{children:"Version"}),o.jsx(dVt,{datasetId:l,value:u,onValueChange:d,container:i})]})]}),o.jsx(ygs,{targetType:f,setTargetType:p,targetId:h,setTargetId:m,container:i}),o.jsx(xVt,{selectedScorers:v,setSelectedScorers:y,disabled:I,container:i}),E?o.jsx(bgs,{requestContextSchema:T,onChange:x}):o.jsxs("div",{className:"space-y-2",children:[o.jsx($t,{children:"Request Context (JSON, optional)"}),o.jsx(Zr,{value:S,onChange:k,showCopyButton:!1,className:"min-h-[80px]"})]})]}),o.jsxs(ac,{className:"px-6 pt-4",children:[o.jsx(oe,{onClick:F,disabled:I,children:"Cancel"}),o.jsx(oe,{variant:"primary",onClick:D,disabled:!N||I,children:I?o.jsxs(o.Fragment,{children:[o.jsx(qt,{className:"h-4 w-4"}),"Running..."]}):"Run"})]})]})})}const SVt=g.createContext(null);function xgs({experimentId:e,datasetId:t,experimentStatus:n,results:r,isLoadingResults:s,hasNextPage:a,children:i}){const l=Xr(),u=Sgt("/experiments/:experimentId/items/:itemId")?.params.itemId,d=g.useCallback(b=>{l(`/experiments/${e}/items/${encodeURIComponent(b)}`)},[l,e]),f=g.useCallback(()=>{l(`/experiments/${e}`)},[l,e]),p=g.useCallback(b=>{l(`/experiments/${e}?review=${encodeURIComponent(b)}`)},[l,e]),h=g.useMemo(()=>u?r.findIndex(b=>b.itemId===u):-1,[r,u]),m=g.useMemo(()=>{if(h<=0)return;const b=r[h-1].itemId;return()=>d(b)},[h,r,d]),v=g.useMemo(()=>{if(h<0||h>=r.length-1)return;const b=r[h+1].itemId;return()=>d(b)},[h,r,d]);gVt({active:!!u,onPrevious:m,onNext:v,onClose:f});const y=g.useMemo(()=>({experimentId:e,datasetId:t,experimentStatus:n,results:r,isLoadingResults:s,hasNextPage:a,currentItemId:u,openItem:d,close:f,openInReview:p,goToPreviousItem:m,goToNextItem:v}),[e,t,n,r,s,a,u,d,f,p,m,v]);return o.jsx(SVt.Provider,{value:y,children:i})}function kVt(){const e=g.useContext(SVt);if(!e)throw new Error("useExperimentItemPanel must be used within an ExperimentItemPanelProvider");return e}function wgs({results:e,isLoading:t,featuredResultId:n,onResultClick:r,columns:s,scoresByItemId:a,scorerIds:i,setEndOfListElement:l,isFetchingNextPage:c,hasNextPage:u,selectedIds:d,onToggleSelect:f}){const{Link:p,paths:h}=dn(),m=!!(d&&f),v=[m?"auto":"",...s.map(k=>k.size)].filter(Boolean).join(" "),y=s.some(k=>k.name==="input"),{containerRef:b,getRowProps:x}=wo({count:e.length}),S=k=>i?.includes(k.name)?o.jsx(be.TopCell,{children:o.jsxs(p,{href:h.scorerLink(k.name),target:"_blank",rel:"noopener noreferrer",className:"flex min-w-0 items-center gap-1.5 hover:underline [&>svg]:size-3.5 [&>svg]:shrink-0",children:[o.jsx(BL,{}),o.jsx("span",{className:"min-w-0 truncate",children:k.label}),o.jsx(ds,{className:"text-neutral3"})]})},k.name):o.jsx(be.TopCell,{children:k.label},k.name);return t?o.jsx(vl,{columns:v}):o.jsxs(be,{columns:v,className:"min-w-0",scrollRef:b,children:[o.jsxs(be.Top,{hasLeadingCell:m,children:[m&&o.jsx(be.TopCell,{children:" "}),m?o.jsx(be.TopCells,{colStart:2,children:s.map(S)}):s.map(S)]}),e.length===0?o.jsx(be.NoMatch,{message:"No results yet"}):o.jsxs(o.Fragment,{children:[e.map((k,_)=>{const C=!!k.error,T=k.id===n,E=o.jsxs(o.Fragment,{children:[o.jsx(be.IdCell,{id:k.itemId}),o.jsx(be.Cell,{children:o.jsxs(En,{children:[o.jsx(kn,{render:o.jsx("div",{className:"relative flex h-full w-10 items-center justify-center bg-transparent",children:C?o.jsx(vO,{role:"img","aria-label":"Error",className:"text-error size-4"}):o.jsx(HD,{role:"img","aria-label":"Success",className:"text-accent1 size-4"})})}),o.jsx(On,{children:C?"Error":"Success"})]})}),y&&o.jsx(be.TextCell,{font:"mono",children:kgs(Sgs(k.input),200)}),i?.map(N=>{const A=a?.[k.itemId]?.find(R=>R.scorerId===N);return o.jsx(be.Cell,{className:"text-neutral3 text-ui-smd font-mono",children:A!=null?A.score.toFixed(3):"-"},N)})]});return m?o.jsxs(be.RowWrapper,{children:[o.jsx(be.SelectCell,{checked:d.has(k.id),onToggle:()=>f(k.id),"aria-label":`Select result ${k.itemId}`}),o.jsx(be.RowButton,{colStart:2,featured:T,"data-selected":T||void 0,onClick:()=>r(k.id),...x(_),children:E})]},k.id):o.jsx(be.RowButton,{featured:T,"data-selected":T||void 0,onClick:()=>r(k.id),...x(_),children:E},k.id)}),o.jsx(be.NextPageLoading,{isLoading:c,hasMore:u,setEndOfListElement:l})]})]})}function Sgs(e){return e==null?"-":typeof e=="string"?e:JSON.stringify(e,null,2)}function kgs(e,t){return e.length<=t?e:e.slice(0,t-1)+"..."}function Ogs({scoresByItemId:e,experimentStatus:t}){const{Link:n,paths:r}=dn(),{data:s}=lh(),a=g.useMemo(()=>{if(!e)return[];const i={};for(const l of Object.values(e))for(const c of l)i[c.scorerId]||(i[c.scorerId]={sum:0,count:0,failed:0}),i[c.scorerId].sum+=c.score,i[c.scorerId].count++,c.score<1&&i[c.scorerId].failed++;return Object.entries(i).map(([l,{sum:c,count:u,failed:d}])=>({scorerId:l,avg:c/u,count:u,failed:d})).sort((l,c)=>l.scorerId.localeCompare(c.scorerId))},[e]);if(a.length===0){const i=t==="running"||t==="pending",l=e!==void 0;let c,u;return i?(c="Experiment in progress",u="Summary metrics will appear here once the experiment completes."):l?(c="No scorers configured",u="Add scorers when triggering an experiment to evaluate results and see summary metrics here."):(c="Loading scores",u="Fetching scorer results…"),o.jsx("div",{className:"flex h-full items-center justify-center py-12",children:o.jsx(_r,{iconSlot:o.jsx(lm,{className:"text-neutral3 h-8 w-8"}),titleSlot:c,descriptionSlot:u})})}return o.jsx("div",{className:"flex flex-wrap content-start gap-3",children:a.map(({scorerId:i,avg:l,count:c,failed:u})=>{const d=s?.[i]?.scorer?.config?.name??i;return o.jsxs(Wr,{className:"max-w-96",children:[o.jsxs(n,{href:r.scorerLink(i),target:"_blank",rel:"noopener noreferrer",className:"text-ui-md text-neutral3 [&>svg]:text-neutral3 flex min-w-0 items-center gap-1.5 leading-relaxed hover:underline [&>svg]:size-3.5 [&>svg]:shrink-0",children:[o.jsx(BL,{}),o.jsx("span",{className:"truncate",children:d}),o.jsx(ds,{})]}),o.jsxs("strong",{className:"text-header-lg text-neutral4 font-semibold",children:[o.jsx("span",{className:u===0?"text-accent1":"text-error",children:u}),o.jsxs("span",{className:"text-neutral3",children:["/",c]}),o.jsx("span",{className:"text-ui-md text-neutral3 ml-1.5 font-normal",children:"failed"})]}),o.jsx(Wr.Label,{className:"text-ui-sm text-neutral2",children:`Avg score ${l.toFixed(3)}`})]},i)})})}function _gs({experimentId:e,datasetId:t,experimentStatus:n,results:r,isLoading:s,setEndOfListElement:a,isFetchingNextPage:i,hasNextPage:l}){const{currentItemId:c,openItem:u,close:d}=kVt(),[f,p]=g.useState(new Set),[h,m]=g.useState(!1),{updateExperimentResult:v}=qi(),y=g.useCallback(z=>{p(V=>{const M=new Set(V);return M.has(z)?M.delete(z):M.add(z),M})},[]),b=g.useCallback(()=>p(new Set),[]),x=g.useCallback(()=>{const z=r.filter(V=>!!V.error).map(V=>V.id);p(new Set(z))},[r]),S=g.useCallback(async z=>{if(h||z.length===0)return;m(!0);let V=0;const M=new Set;try{for(const G of z)try{await v.mutateAsync({datasetId:t,experimentId:e,resultId:G,status:"needs-review"}),V++,M.add(G)}catch{}}finally{m(!1)}M.size>0&&p(G=>{const U=new Set(G);for(const $ of M)U.delete($);return U}),V>0&&Be(`${V} result${V>1?"s":""} flagged for review`)},[t,e,h,v]),k=g.useMemo(()=>c?r.find(z=>z.itemId===c)?.id??null:null,[r,c]),[_,C]=g.useState("summary"),[T,E]=ti(),N=T.get("review"),I=c?"results":N?"reviews":_,A=z=>{C(z),z!=="results"&&c&&d(),z!=="reviews"&&N&&E(V=>{const M=new URLSearchParams(V);return M.delete("review"),M},{replace:!0})},{data:R}=zAe(t),L=(R??[]).filter(z=>z.experimentId===e).length,{data:D}=UN(e,n),F=g.useMemo(()=>{if(!D)return[];const z=new Set;for(const V of Object.values(D))for(const M of V)z.add(M.scorerId);return[...z].sort()},[D]),H=g.useCallback(z=>{const V=r.find(M=>M.id===z);V&&(V.itemId===c?d():u(V.itemId))},[r,c,d,u]),B=g.useMemo(()=>[{name:"itemId",label:"Item ID",size:"7rem"},{name:"status",label:"Status",size:"5rem"},{name:"input",label:"Input",size:"minmax(15rem,1fr)"},...F.map(z=>({name:z,label:z,size:"12rem"}))],[F]);return o.jsxs(Vl,{defaultTab:"summary",value:I,onValueChange:A,className:"grid h-full grid-rows-[auto_1fr] overflow-visible",children:[o.jsxs(ql,{variant:"pill-ghost",children:[o.jsxs(hr,{value:"summary",className:"px-3 py-2.5",children:[o.jsx(Ve,{size:"sm",children:o.jsx(bQt,{})}),o.jsx(ge,{variant:"ui-sm",className:"text-inherit",children:"Scorers summary"})]}),o.jsxs(hr,{value:"results",className:"px-3 py-2.5",children:[o.jsx(Ve,{size:"sm",children:o.jsx(kj,{})}),o.jsx(ge,{variant:"ui-sm",className:"text-inherit",children:"Results"})]}),o.jsxs(hr,{value:"reviews",className:"px-3 py-2.5",children:[o.jsx(Ve,{size:"sm",children:o.jsx(yO,{})}),o.jsx(ge,{variant:"ui-sm",className:"text-inherit",children:"Reviews"}),L>0&&o.jsx(Xt,{variant:"default",size:"xs",children:L})]})]}),o.jsx(Br,{value:"summary",className:"overflow-y-auto pt-3",children:o.jsx(Ogs,{scoresByItemId:D,experimentStatus:n})}),o.jsx(Br,{value:"reviews",className:"h-full min-h-0 overflow-visible py-0",children:o.jsx(bVt,{datasetId:t,experimentId:e,featuredItemId:N,detailPanelVariant:"overlay"})}),o.jsxs(Br,{value:"results",className:"grid grid-rows-[auto_1fr] gap-3 overflow-hidden pt-3",children:[f.size>0?o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsxs(oe,{variant:"outline",size:"sm",disabled:h,onClick:()=>S([...f]),children:[o.jsx(Ve,{size:"sm",children:o.jsx(yO,{})}),"Flag ",f.size," to review"]}),o.jsx(oe,{variant:"ghost",size:"sm",onClick:b,children:"Clear"})]}):r.length>0&&!s?o.jsx("div",{className:"flex items-center gap-2",children:o.jsxs(oe,{size:"sm",onClick:x,children:[o.jsx(Ve,{size:"sm",children:o.jsx(xV,{})}),"Select all failures"]})}):o.jsx("div",{}),o.jsx("div",{className:"min-h-0 overflow-y-auto",children:o.jsx(wgs,{results:r,isLoading:s,featuredResultId:k,onResultClick:H,columns:B,scoresByItemId:D,scorerIds:F,setEndOfListElement:a,isFetchingNextPage:i,hasNextPage:l,selectedIds:f,onToggleSelect:y})})]})]})}const Bet={pending:{icon:o.jsx(bO,{className:"text-warning1 size-4"}),label:"Pending"},running:{icon:o.jsx(qt,{size:"sm"}),label:"Running"},completed:{icon:o.jsx(HD,{className:"text-accent1 size-4"}),label:"Completed"},failed:{icon:o.jsx(vO,{className:"text-error size-4"}),label:"Failed"}};function Cgs({status:e,className:t}){const n=Bet[e]??Bet.pending;return o.jsxs(En,{children:[o.jsx(kn,{render:o.jsx("span",{tabIndex:0,className:K("flex shrink-0 items-center",t),children:n.icon})}),o.jsx(On,{children:n.label})]})}const Egs=e=>{const t=Ge();return yt({queryKey:["experiment-trace-light",e],queryFn:async()=>{if(!e)throw new Error("Trace ID is required");return t.getTraceLight(e)},select:$Ae,enabled:!!e})},Tgs={present:!1,output:null,metadata:null,comment:null,error:null,startedAt:null,completedAt:null,scores:[]},Uet=e=>e?e instanceof Date?e.toISOString():e:null,qet=e=>{const t=new Map;for(const n of e??[])t.set(n.itemId,n);return t},Vet=(e,t,n)=>{if(!e)return Tgs;const r=new Map;for(const s of n??[])r.set(s.scorerId,s.reason??null);return{present:!0,output:e.output,metadata:t?.metadata??null,comment:t?.comment??null,error:t?.error??null,startedAt:Uet(t?.startedAt),completedAt:Uet(t?.completedAt),scores:Object.entries(e.scores).map(([s,a])=>({scorerId:s,value:a,reason:r.get(s)??null})).sort((s,a)=>s.scorerId.localeCompare(a.scorerId))}},jgs=({comparison:e,baselineId:t,contenderId:n,baselineResults:r,contenderResults:s,baselineScores:a,contenderScores:i})=>{if(!e)return[];const l=qet(r),c=qet(s);return e.items.map(u=>{const d=Vet(u.results[t],l.get(u.itemId),a?.[u.itemId]),f=Vet(u.results[n],c.get(u.itemId),i?.[u.itemId]),p={};for(const h of new Set([...d.scores,...f.scores].map(m=>m.scorerId))){const m=d.scores.find(y=>y.scorerId===h)?.value??null,v=f.scores.find(y=>y.scorerId===h)?.value??null;p[h]=m!=null&&v!=null?v-m:null}return{itemId:u.itemId,input:u.input,groundTruth:u.groundTruth,baseline:d,contender:f,deltas:p}})};function Nk({title:e,actions:t,tone:n="default",defaultOpen:r=!0,children:s}){return o.jsxs(bu,{defaultOpen:r,className:"grid gap-2",children:[o.jsxs("div",{className:"flex min-h-6 items-center justify-between gap-2",children:[o.jsxs(Rc,{className:K("text-ui-md flex items-center gap-1.5 font-semibold [&>svg]:size-4",n==="negative"?"text-negative1":"text-neutral5"),children:[o.jsx(Zs,{}),e]}),t]}),o.jsx(Pc,{role:"region","aria-label":e,children:s})]})}function Het({label:e,value:t}){return t==null?null:o.jsx(Nk,{title:e,defaultOpen:!1,children:o.jsx("pre",{className:"text-ui-sm text-neutral4 bg-surface3 max-h-40 overflow-auto rounded-md p-3 whitespace-pre-wrap",children:typeof t=="string"?t:JSON.stringify(t,null,2)})})}function OVt({delta:e}){const t=e>0?"text-positive1":e<0?"text-negative1":"text-neutral3";return o.jsxs("span",{className:K("inline-flex min-w-20 items-center gap-1 font-mono text-sm",t),children:[o.jsx("span",{className:"inline-block w-3",children:e>0?"+":e<0?"-":""}),Math.abs(e).toFixed(2),e>0?o.jsx(HGt,{className:"size-3.5"}):e<0?o.jsx(FGt,{className:"size-3.5"}):null]})}function _Vt({scorerId:e,value:t,delta:n,reason:r}){const{Link:s,paths:a}=dn();return o.jsxs("div",{className:"bg-surface2 grid gap-1 rounded-lg px-3 py-2",children:[o.jsxs("div",{className:"flex items-center justify-between gap-4",children:[o.jsxs(s,{href:a.scorerLink(e),target:"_blank",rel:"noopener noreferrer","aria-label":`Open ${e}`,className:"text-neutral5 flex min-w-0 items-center gap-1.5 text-sm font-medium hover:underline [&>svg]:size-3.5 [&>svg]:shrink-0",children:[o.jsx(BL,{}),o.jsx("span",{className:"min-w-0 truncate",children:e}),o.jsx(ds,{})]}),o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsx("span",{className:"text-neutral3 font-mono text-sm",children:t!=null?t.toFixed(2):"-"}),n!=null&&o.jsx(OVt,{delta:n})]})]}),r&&o.jsx("p",{className:"text-neutral3 text-sm",children:r})]})}function Wet(e){return e==null?"-":typeof e=="string"?e:JSON.stringify(e,null,2)}function Ngs(e){if(!e.startedAt||!e.completedAt)return null;const t=new Date(e.completedAt).getTime()-new Date(e.startedAt).getTime();return Number.isFinite(t)?`${(t/1e3).toFixed(2)}s`:null}const Igs="border-border1 bg-surface3 text-ui-md text-neutral4 max-h-[30vh] overflow-y-auto rounded-xl border p-4 font-mono break-all whitespace-pre-wrap dark:border-white/10 dark:bg-black/20";function Zet({side:e,row:t,showDeltas:n,isLoading:r}){const s=t[e],a=Ngs(s);if(r)return o.jsx("div",{className:"flex h-32 items-center justify-center",children:o.jsx(qt,{})});if(!s.present)return o.jsx("p",{className:"text-neutral3 py-8 text-center text-sm",children:"Not present in this experiment"});const i=Wet(s.output);return o.jsxs("div",{className:"grid content-start gap-5",children:[a&&o.jsxs(En,{children:[o.jsx(kn,{render:o.jsxs("p",{className:"text-neutral3 flex items-center justify-end gap-1.5 text-sm [&>svg]:size-3.5",children:[o.jsx(bO,{}),a]})}),o.jsx(On,{children:"Run duration"})]}),s.error?o.jsx(Nk,{title:"Error",tone:"negative",actions:o.jsx(Sa,{content:s.error.message}),children:o.jsx("p",{className:"border-negative1/40 bg-negative1/5 text-ui-md text-neutral4 rounded-xl border p-4 break-words",children:s.error.message})}):o.jsx(Nk,{title:"Output",actions:o.jsx(Sa,{content:i}),children:o.jsx("pre",{className:Igs,children:i})}),s.scores.length>0&&o.jsx(Nk,{title:"Scores",children:o.jsx("div",{className:"grid gap-2",children:s.scores.map(l=>o.jsx(_Vt,{scorerId:l.scorerId,value:l.value,delta:n?t.deltas[l.scorerId]:null,reason:l.reason},l.scorerId))})}),s.comment&&o.jsx(Nk,{title:"Comment",defaultOpen:!1,children:o.jsx("p",{className:"text-neutral3 text-sm",children:s.comment})}),s.metadata&&Object.keys(s.metadata).length>0&&o.jsx(Nk,{title:"Metadata",defaultOpen:!1,children:o.jsx("dl",{className:"grid gap-1",children:Object.entries(s.metadata).map(([l,c])=>o.jsxs("div",{className:"flex items-start justify-between gap-4 text-sm",children:[o.jsx("dt",{className:"text-neutral3",children:l}),o.jsx("dd",{className:"text-neutral5 font-mono break-all",children:Wet(c)})]},l))})})]})}const Ags={baseline:"Baseline",contender:"Contender"},Rgs={baseline:"purple",contender:"cyan"},Pgs="flex min-w-0 items-center gap-1.5 hover:underline [&>svg]:size-3.5 [&>svg]:shrink-0";function Get({side:e,experiment:t,summary:n,showDeltas:r,versionMismatch:s}){const{Link:a,paths:i}=dn(),l=Ags[e],c=t?dS(t.id)??t.id:null,u=t?.createdAt?new Date(t.createdAt):null,d=n??[];return o.jsxs("div",{className:"grid content-start gap-3",children:[o.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[o.jsx(rl,{color:Rgs[e],size:"small",children:l}),t&&o.jsxs(oe,{as:a,size:"xs",href:`/experiments/${t.id}`,target:"_blank",rel:"noopener noreferrer","aria-label":`Open experiment ${t.name||c}`,children:[o.jsx("span",{className:"min-w-0 truncate",children:t.name||c}),o.jsx(ds,{})]})]}),t&&o.jsxs("div",{className:"text-ui-sm text-neutral3 flex flex-wrap gap-x-4 gap-y-1",children:[t.name&&o.jsxs(Al,{children:[o.jsx(rKt,{})," ",c]}),t.targetType==="agent"&&t.targetId?o.jsxs(a,{href:i.agentLink(t.targetId),target:"_blank",rel:"noopener noreferrer",className:Pgs,children:[o.jsx(Oo,{}),o.jsx("span",{className:"min-w-0 truncate",children:t.targetId}),o.jsx(ds,{})]}):o.jsxs(Al,{children:[o.jsx(ict,{})," ",t.targetId]}),o.jsx("span",{className:K(s&&"text-accent6"),children:o.jsxs(Al,{children:[o.jsx(bV,{})," v",t.datasetVersion??"—",s&&" · different dataset version"]})}),u&&o.jsxs(Al,{children:[o.jsx(Blt,{})," ",br(u,"MMM d, yyyy HH:mm")]})]}),d.length>0&&o.jsx(Nk,{title:"Overall score",children:o.jsx("div",{className:"grid gap-2",children:d.map(({scorerId:f,average:p,delta:h})=>o.jsx(_Vt,{scorerId:f,value:p,delta:r?h:null},f))})})]})}const ME="min-w-0 px-4 py-3";function $gs({datasetId:e,experimentIdA:t,experimentIdB:n}){const{Link:r,paths:s}=dn(),{data:a,isLoading:i,error:l}=Ahs(e,t,n),{data:c}=Rxe(e,t),{data:u}=Rxe(e,n),d=c&&u&&c.datasetVersion!==u.datasetVersion,f=a?.baselineId??t,p=t===f?n:t,h=c?.id===f?c:u,m=c?.id===p?c:u,{data:v,isLoading:y}=MD({datasetId:e,experimentId:f,experimentStatus:h?.status}),{data:b,isLoading:x}=MD({datasetId:e,experimentId:p,experimentStatus:m?.status}),{data:S}=UN(f,h?.status),{data:k}=UN(p,m?.status),_=g.useMemo(()=>jgs({comparison:a,baselineId:f,contenderId:p,baselineResults:v,contenderResults:b,baselineScores:S,contenderScores:k}),[a,f,p,v,b,S,k]),C=g.useMemo(()=>[...new Set(_.flatMap(E=>Object.keys(E.deltas)))].sort(),[_]),T=g.useMemo(()=>{const E=(A,R)=>{const L=_.map(D=>D[A].scores.find(F=>F.scorerId===R)?.value).filter(D=>D!=null);return L.length>0?L.reduce((D,F)=>D+F,0)/L.length:null},N=C.map(A=>({scorerId:A,average:E("baseline",A),delta:null})),I=C.map(A=>{const R=E("baseline",A),L=E("contender",A);return{scorerId:A,average:L,delta:R!=null&&L!=null?L-R:null}});return{baseline:N,contender:I}},[_,C]);return i?o.jsx("div",{className:"flex h-64 items-center justify-center",children:o.jsx(qt,{})}):l?o.jsx(Zn,{variant:"warning",title:"Error loading comparison",children:o.jsx(Zn.Message,{children:l instanceof Error?l.message:"Unknown error"})}):!a||a.items.length===0?o.jsx("div",{className:"text-neutral4 py-8 text-center text-sm",children:"No comparison data"}):o.jsx("div",{className:"grid gap-4",children:o.jsxs("div",{role:"table","aria-label":"Experiments comparison",className:"grid",children:[o.jsxs("div",{role:"row",className:"border-border1 grid border-y xl:grid-cols-[minmax(20rem,24rem)_1fr_1fr] xl:divide-x xl:divide-[var(--border1)]",children:[o.jsx("div",{role:"columnheader","aria-label":"Items",className:`${ME} text-neutral3 text-ui-sm uppercase`,children:"Items"}),o.jsx("div",{role:"columnheader","aria-label":"Baseline",className:ME,children:o.jsx(Get,{side:"baseline",experiment:h,summary:T.baseline,versionMismatch:d})}),o.jsx("div",{role:"columnheader","aria-label":"Contender",className:ME,children:o.jsx(Get,{side:"contender",experiment:m,summary:T.contender,versionMismatch:d,showDeltas:!0})})]}),_.map(E=>{const N=Object.entries(E.deltas).filter(([,I])=>I!=null&&I!==0);return o.jsxs("div",{role:"row","aria-label":E.itemId,className:"border-border1 grid border-b xl:grid-cols-[minmax(20rem,24rem)_1fr_1fr] xl:divide-x xl:divide-[var(--border1)]",children:[o.jsxs("div",{role:"cell",className:`${ME} grid content-start gap-1`,children:[o.jsxs(r,{href:s.datasetItemLink(e,E.itemId),target:"_blank",rel:"noopener noreferrer","aria-label":`Open item ${E.itemId}`,className:K("text-ui-sm flex items-start gap-1.5 font-mono break-all hover:underline [&>svg]:mt-0.5 [&>svg]:size-3.5 [&>svg]:shrink-0",E.baseline.present&&E.contender.present?"text-neutral4":"text-neutral1"),children:[o.jsx("span",{className:"min-w-0",children:E.itemId}),o.jsx(ds,{})]}),N.length>0&&o.jsx("span",{className:"flex flex-wrap items-center gap-2",children:N.map(([I,A])=>o.jsx(OVt,{delta:A},I))}),o.jsxs("div",{className:"grid pt-3",children:[o.jsx(Het,{label:"Input",value:E.input}),o.jsx(Het,{label:"Ground truth",value:E.groundTruth})]})]}),o.jsx("div",{role:"cell","aria-label":"Baseline",className:ME,children:o.jsx(Zet,{side:"baseline",row:E,isLoading:y})}),o.jsx("div",{role:"cell","aria-label":"Contender",className:ME,children:o.jsx(Zet,{side:"contender",row:E,isLoading:x,showDeltas:!0})})]},E.itemId)})]})})}function CVt({children:e,className:t}){return o.jsx("div",{className:K("",t),children:e})}function Mgs({date:e,className:t,withTime:n=!1}){const r=e?wxt(new Date(e)):!1,s=e?$3(new Date(e))?"Today":br(new Date(e),"MMM dd"):"",a=e&&!r?br(new Date(e),"yyyy"):"",i=e&&n?`${br(new Date(e),"'at' h:mm aaa")}`:"";return o.jsxs("div",{className:K("truncate text-ui-md text-neutral2",t),children:[s," ",a," ",i]})}function VAe(e){return!e||e.length===0?"":e?.map(t=>t.size).join(" ")}function Dgs({columns:e,isSelectionActive:t,children:n}){return o.jsx("div",{className:K("sticky top-0 z-10 mb-4 rounded-lg bg-surface3 px-4"),children:o.jsx("div",{className:K("grid items-center gap-4 text-left text-ui-xs tracking-widest text-neutral3 uppercase",{"pl-12 [&>label]:absolute [&>label]:left-0":t}),style:{gridTemplateColumns:VAe(e)},children:n})})}function Lgs({children:e,className:t}){return o.jsx("span",{className:K("py-3",t),children:e})}function Fgs({id:e,className:t,isShortened:n=!0}){const r=n?e.slice(0,8):e;return o.jsx("div",{className:K("truncate py-[0.6rem] text-ui-md text-neutral2",t),children:r})}function zgs({children:e}){return o.jsx("ul",{className:"grid content-start",children:e})}function Bgs({children:e}){const t=g.useRef(null);return o.jsx("div",{ref:t,className:K("overflow-y-auto"),children:e})}function Ugs({children:e,className:t}){return o.jsx("label",{className:K("flex h-full w-14 items-center justify-center rounded-lg hover:bg-surface5",t),children:e})}function qgs({children:e,href:t,className:n,LinkComponent:r}){return o.jsx(r,{href:t,className:K("flex w-full items-center justify-center gap-6 rounded-lg px-3 py-[0.6rem] text-left","hover:bg-surface4",Gr.colors,j3.visible,n),children:e})}function Vgs({children:e,message:t,className:n,type:r}){return!e&&!t?null:o.jsx("div",{className:K("grid border-t border-border1",n),children:t?o.jsxs("p",{className:K("grid justify-center justify-items-center gap-2 p-8 text-center text-ui-md text-neutral3","[&>svg]:size-[1.5em] [&>svg]:opacity-75",{"[&>svg]:text-red-500":r==="error"}),children:[r==="error"?o.jsx(C3,{}):o.jsx(Q1e,{})," ",t]}):e})}function Hgs({isLoading:e,hasMore:t,setEndOfListElement:n,loadingText:r="Loading more data...",noMoreDataText:s="No more data to load"}){return n?o.jsxs("div",{ref:n,className:"text-ui-md text-neutral3 mt-8 flex justify-center opacity-50",children:[e&&r,!t&&!e&&s]}):null}function Wgs({currentPage:e,hasMore:t,onNextPage:n,onPrevPage:r}){const s=typeof e=="number"&&e>0||t;return o.jsxs("div",{className:K("flex items-center justify-center gap-8 pt-6 text-ui-md text-neutral3"),children:[o.jsxs("span",{children:["Page ",o.jsx("b",{children:e?e+1:"1"})]}),s&&o.jsxs("div",{className:K("flex gap-4","[&>button]:flex [&>button]:items-center [&>button]:gap-2 [&>button]:rounded-md [&>button]:border [&>button]:border-border1 [&>button]:p-1 [&>button]:px-2 [&>button]:text-neutral4 [&>button]:transition-colors [&>button:hover]:text-neutral5","[&_svg]:size-[1em] [&_svg]:text-neutral3"),children:[typeof e=="number"&&e>0&&o.jsxs("button",{onClick:r,children:[o.jsx(OH,{}),"Previous"]}),t&&o.jsxs("button",{onClick:n,children:["Next",o.jsx(B7,{})]})]})]})}function Zgs({children:e,className:t}){return o.jsx("div",{className:K("grid grid-rows-[auto_1fr] overflow-y-auto",t),children:e})}function Ggs({isSelected:e,children:t,columns:n}){return o.jsx("li",{className:K("flex overflow-hidden rounded-lg border border-transparent border-t-border1 py-[3px] pb-[2px] text-ui-md text-neutral5 first:border-t-transparent","[&:last-child>button]:rounded-b-lg","[&.selected-row]:border [&.selected-row]:border-dashed [&.selected-row]:border-white/50 [&.selected-row]:pr-[3px] [&.selected-row]:first:border-t","[&:has(+.selected-row)]:rounded-b-none [&:has(+.selected-row)]:border-b-transparent","[.selected-row+&]:rounded-t-none",Gr.colors,{"selected-row":e,"grid px-4 gap-4 ":n}),style:{gridTemplateColumns:VAe(n)},children:t})}function Qgs({item:e,isFeatured:t,onClick:n,children:r,columns:s,className:a,disabled:i,...l}){const c=()=>{n?.(e?.id)};return o.jsx("button",{...l,onClick:c,className:K("grid w-full items-center gap-4 rounded-lg px-4 text-left",Gr.colors,j3.visible,{"bg-surface4":t,"hover:bg-surface4":e&&!t&&!i},a),style:{gridTemplateColumns:VAe(s)},disabled:i,children:r})}function Ygs(e){return e.charAt(0).toUpperCase()+e.slice(1)}function Kgs({status:e}){return e?o.jsxs(En,{children:[o.jsx(kn,{asChild:!0,children:o.jsx("div",{className:K("relative flex h-full w-10 items-center justify-center bg-transparent"),children:o.jsx("div",{className:K("size-2 rounded-full",{"bg-green-600":["success","completed"].includes(e),"bg-red-700":["error","failed"].includes(e),"bg-yellow-500":["pending","running"].includes(e)})})})}),o.jsx(On,{children:Ygs(e)})]}):null}function Xgs({children:e,isLoading:t,className:n}){return o.jsx("div",{className:K("truncate py-[0.6rem] text-ui-md text-neutral4",n),children:t?o.jsx("div",{className:"bg-surface4 h-4 animate-pulse rounded-md text-transparent select-none"}):e})}function Jgs({version:e,date:t,isLatest:n,isDeleted:r}){return o.jsxs(CVt,{className:K("grid grid-cols-[1fr_auto] pl-1"),children:[o.jsxs("div",{className:K("grid gap-1 leading-none text-neutral3",{"text-neutral4":n}),children:[o.jsxs("strong",{className:"font-normal",children:["v. ",e]}),o.jsx("em",{className:"text-ui-sm text-neutral2 font-normal",children:t?br(new Date(t),"MMM d, yyyy HH:mm"):null})]}),(n||r)&&o.jsxs("div",{className:"flex items-center gap-1",children:[n&&o.jsxs(En,{children:[o.jsx(kn,{asChild:!0,children:o.jsx(rl,{color:"blue",children:o.jsx(HIn,{})})}),o.jsx(On,{children:"Latest version"})]}),r&&o.jsxs(En,{children:[o.jsx(kn,{asChild:!0,children:o.jsx(rl,{color:"red",children:o.jsx(byt,{})})}),o.jsx(On,{children:"Deleted in this version"})]})]})]})}const di=Object.assign(Zgs,{Header:Dgs,HeaderCol:Lgs,Items:zgs,Scroller:Bgs,Row:Ggs,RowButton:Qgs,Message:Vgs,NextPageLoading:Hgs,Pagination:Wgs,Cell:CVt,TextCell:Xgs,StatusCell:Kgs,VersionCell:Jgs,IdCell:Fgs,DateCell:Mgs,LinkCell:qgs,LabelCell:Ugs});function evs({datasetId:e,itemId:t,onVersionSelect:n,onCompareVersionsClick:r,activeVersion:s}){const{data:a,isLoading:i}=LAe(e,t),[l,c]=g.useState(!1),[u,d]=g.useState(new Set),f=b=>{n?.(b)},p=b=>s==null?b.isLatest:b.datasetVersion===s,h=b=>{d(x=>{const S=new Set(x);if(S.has(b))S.delete(b);else if(S.size>=2){const[k]=Array.from(S);return new Set([k,b])}else S.add(b);return S})},m=()=>{c(!1),d(new Set)},v=()=>{c(!0)},y=()=>{u.size===2&&r?.([...u])};return o.jsxs(Ks,{className:"min-w-56",children:[l?o.jsx(Ks.Toolbar,{className:"grid w-full justify-stretch gap-3",children:o.jsxs(us,{children:[o.jsx(oe,{onClick:m,children:"Cancel"}),o.jsx(oe,{variant:"primary",disabled:u.size!==2,onClick:y,tooltip:u.size!==2?"Check 2 versions to compare":void 0,className:"grow",children:"Compare"})]})}):o.jsx(o.Fragment,{children:(a||[]).length>1&&o.jsx(Ks.Toolbar,{children:o.jsxs(oe,{onClick:v,className:"w-full",children:[o.jsx(Sj,{})," Compare Ver."]})})}),i?o.jsx(tvs,{}):o.jsxs(di,{children:[o.jsx(di.Header,{children:o.jsx(di.HeaderCol,{children:"Item Version History"})}),o.jsx(di.Scroller,{children:o.jsx(di.Items,{children:a?.map(b=>{const x=String(b.datasetVersion),S=typeof b.updatedAt=="string"?new Date(b.updatedAt):b.updatedAt;return o.jsxs(di.Row,{isSelected:l&&u.has(x),children:[l&&o.jsx(di.LabelCell,{children:o.jsx(So,{checked:u.has(x),disabled:b.isDeleted,onCheckedChange:()=>{},onClick:k=>{k.stopPropagation(),b.isDeleted||h(x)},"aria-label":`Select version ${b.datasetVersion}`})}),o.jsx(di.RowButton,{item:b,columns:[{name:"version",label:"Item Version History",size:"1fr"}],isFeatured:p(b),onClick:()=>f(b),className:"py-2",children:o.jsx(di.VersionCell,{version:b.datasetVersion,date:S,isLatest:b.isLatest,isDeleted:b.isDeleted})})]},String(b.datasetVersion))})})})]})]})}function tvs(){return o.jsxs(di,{children:[o.jsx(di.Header,{columns:[{name:"version",label:"Item Version History",size:"1fr"}],children:o.jsx(di.HeaderCol,{children:"Item Version History"})}),o.jsx(di.Items,{children:Array.from({length:3}).map((e,t)=>o.jsx(di.Row,{children:o.jsx(di.RowButton,{columns:[{name:"version",label:"Item Version History",size:"1fr"}],children:o.jsx(di.TextCell,{isLoading:!0,children:"Loading..."})})},t))})]})}function nvs(e,t){if(t){const n=typeof t=="string"?new Date(t):t;return`v${e} ${br(n,"MMM dd 'at' H:mm:ss a")}`}return`v${e}`}function rvs({datasetId:e,versionA:t,versionB:n,onVersionChange:r}){const{data:s}=fAe(e),a=(s??[]).map(i=>({value:String(i.version),label:`${nvs(i.version,i.createdAt)}${i.isCurrent?" (current)":""}`}));return o.jsxs(Ks.Toolbar,{className:"grid w-full grid-cols-[1fr_1fr_1fr_10rem] gap-4",children:[o.jsx("div",{}),o.jsx(Tc,{label:"Version A",labelIsHidden:!0,name:"version-a",placeholder:"Select version",options:a,value:t??"",onValueChange:i=>r?.(i,n??"")}),o.jsx(Tc,{label:"Version B",labelIsHidden:!0,name:"version-b",options:a,value:n??"",onValueChange:i=>r?.(t??"",i)}),o.jsx("div",{})]})}const svs=[{name:"id",label:"ID",size:"1fr"},{name:"versionA",label:"Version A",size:"1fr"},{name:"versionB",label:"Version B",size:"1fr"},{name:"compare",label:"Compare",size:"10rem"}],avs={added:{color:"blue",borderColor:"border-blue-900",icon:o.jsx(Qr,{}),tooltip:"Added in this version"},changed:{color:"orange",borderColor:"border-yellow-900",icon:o.jsx(cXt,{}),tooltip:"Changed in this version"},same:{color:"green",borderColor:"border-green-900",icon:o.jsx(pYt,{}),tooltip:"Same in both versions"}};function jie({red:e=!1,tooltip:t}){return o.jsxs(En,{children:[o.jsx(kn,{asChild:!0,children:o.jsx(XGt,{className:K("text-neutral3/40 w-5 h-5 ",{"text-red-900":e})})}),t&&o.jsx(On,{children:t})]})}function dk({variant:e,version:t}){if(!e)return o.jsxs("span",{className:"text-ui-md text-neutral4",children:["v. ",t]});const{color:n,icon:r,tooltip:s}=avs[e];return o.jsxs(En,{children:[o.jsx(kn,{asChild:!0,children:o.jsxs("div",{className:"grid grid-cols-[1fr_auto]",children:[t!==void 0&&o.jsxs("span",{className:"text-ui-md text-neutral4 flex min-w-16 justify-end pr-3",children:["v. ",t]}),o.jsx(rl,{color:n,size:"small",children:r})]})}),o.jsx(On,{children:s})]})}function ivs(e,t){return e&&t&&e.datasetVersion===t.datasetVersion?"same":e&&t&&e.datasetVersion!==t.datasetVersion?"changed":e?"added":"removed"}function ovs({datasetId:e,versionA:t,versionB:n,allItems:r,itemsAMap:s,itemsBMap:a}){const{Link:i}=dn(),l=t>n;return o.jsx(di,{children:o.jsx(di.Scroller,{children:o.jsx(di.Items,{children:r.map(({id:c})=>{const u=s.get(c),d=a.get(c),f=ivs(u,d);return o.jsxs(di.Row,{columns:svs,children:[o.jsx(di.IdCell,{id:c,isShortened:!1}),f!=="same"?o.jsxs(o.Fragment,{children:[u?.datasetVersion?o.jsx(di.LinkCell,{LinkComponent:i,href:`/datasets/${e}/items/${c}`,className:"gap-2",children:!d&&l?o.jsx(dk,{variant:"added",version:u.datasetVersion}):f==="changed"&&l?o.jsx(dk,{variant:"changed",version:u.datasetVersion}):o.jsx(dk,{version:u.datasetVersion})}):o.jsx(di.Cell,{className:"flex items-center justify-center",children:o.jsx(jie,{red:l,tooltip:l?"Deleted in this version":"Not present in this version"})}),d?.datasetVersion?o.jsx(di.LinkCell,{LinkComponent:i,href:`/datasets/${e}/items/${c}`,className:"gap-2",children:!u&&!l?o.jsx(dk,{variant:"added",version:d.datasetVersion}):f==="changed"&&!l?o.jsx(dk,{variant:"changed",version:d.datasetVersion}):o.jsx(dk,{version:d.datasetVersion})}):o.jsx(di.Cell,{className:"flex items-center justify-center",children:o.jsx(jie,{red:!l,tooltip:l?"Not present in this version":"Deleted in this version"})})]}):o.jsx(di.LinkCell,{LinkComponent:i,href:`/datasets/${e}/items/${c}`,className:"col-span-2 gap-2",children:o.jsx(dk,{variant:"same",version:d?.datasetVersion})}),f==="changed"?o.jsx(di.LinkCell,{LinkComponent:i,href:`/datasets/${e}/items/${c}/versions?ids=${u?.datasetVersion},${d?.datasetVersion}`,children:"Compare"}):o.jsx(di.Cell,{children:o.jsx(jie,{tooltip:o.jsxs(o.Fragment,{children:["Comparing is available",o.jsx("br",{})," only for changed items"]})})})]},c)})})})})}const Qet={needsReview:"#facc15",complete:"#22c55e"},lvs=[{label:"Needs Review",color:Qet.needsReview},{label:"Reviewed",color:Qet.complete}];function cvs({reviewSummary:e,experiments:t,datasets:n,isLoading:r,isError:s}){const{data:a,maxVal:i,totalInPipeline:l}=g.useMemo(()=>{if(!e?.counts||!t)return{data:[],maxVal:0,totalInPipeline:0};const u=new Map;for(const m of t)u.set(m.id,m);const d=new Map;if(n)for(const m of n)d.set(m.id,m.name);let f=0,p=0;const h=[];for(const m of e.counts){const v=m.needsReview+m.complete;if(v===0)continue;p+=v,v>f&&(f=v);const y=u.get(m.experimentId),b=y?.datasetId?d.get(y.datasetId):void 0,x=b?`${b} · ${m.experimentId.slice(0,8)}`:m.experimentId.slice(0,8);h.push({name:x,values:[m.needsReview,m.complete]})}return{data:h,maxVal:f,totalInPipeline:p}},[e,t,n]),c=a.length>0;return o.jsxs(Bt,{children:[o.jsxs(Bt.TopBar,{children:[o.jsx(Bt.TitleAndDescription,{title:"Review Pipeline",description:"Items in review across experiments."}),c&&o.jsx(Bt.Summary,{value:String(l),label:"Items in pipeline"})]}),r?o.jsx(Bt.Loading,{}):s?o.jsx(Bt.Error,{message:"Failed to load review data"}):o.jsx(Bt.Content,{children:c?o.jsx(VN,{data:a,segments:lvs,maxVal:i,fmt:u=>String(u)}):o.jsx(Bt.NoData,{message:"No items have been sent to review yet"})})]})}function HAe(){const e=Ge();return yt({queryKey:["experiment-review-summary"],queryFn:()=>e.getExperimentReviewSummary()})}function EVt(e){const t=new Map;if(!e?.counts)return t;for(const n of e.counts)t.set(n.experimentId,{needsReview:n.needsReview,complete:n.complete,total:n.total});return t}function uvs(e,t){const n=new Map,r=EVt(e);if(!r.size||!t)return n;for(const s of t){const a=r.get(s.id);if(!a||!s.datasetId||a.needsReview+a.complete===0)continue;const l=n.get(s.datasetId)??{needsReview:0,complete:0};l.needsReview+=a.needsReview,l.complete+=a.complete,n.set(s.datasetId,l)}return n}function dvs(e){return e?.counts?e.counts.reduce((t,n)=>({needsReview:t.needsReview+n.needsReview,complete:t.complete+n.complete,inPipeline:t.inPipeline+n.needsReview+n.complete}),{needsReview:0,complete:0,inPipeline:0}):{needsReview:0,complete:0,inPipeline:0}}const fvs=10;function pvs(){const e=Xr(),[t,n]=g.useState(""),[r,s]=g.useState("all"),[a,i]=g.useState("all"),[l,c]=g.useState("all"),[u,d]=g.useState(0),{data:f,isLoading:p,error:h}=jm({page:u,perPage:fvs}),{data:m,isLoading:v,error:y}=HQ(),{data:b}=HAe(),x=g.useMemo(()=>f?.datasets??[],[f?.datasets]),S=f?.pagination?.hasMore??!1,k=g.useMemo(()=>m?.experiments??[],[m?.experiments]),_=g.useMemo(()=>Khs(x),[x]),C=g.useMemo(()=>uvs(b,k),[b,k]),T=p||v,E=h||y,N=()=>{e("/datasets/new")},I=g.useCallback(()=>d(z=>z+1),[]),A=g.useCallback(()=>d(z=>Math.max(0,z-1)),[]),R=g.useCallback(z=>{n(z),d(0)},[]),L=g.useCallback(z=>{s(z),d(0)},[]),D=g.useCallback(z=>{i(z),d(0)},[]),F=g.useCallback(z=>{c(z),d(0)},[]);if(E&&ws(E))return o.jsx(ar,{children:o.jsx(Ys,{})});if(E&&Ss(E))return o.jsx(ar,{children:o.jsx(qs,{resource:"datasets"})});if(E)return o.jsx(ar,{children:o.jsx(Ui,{title:"Failed to load datasets",message:E.message})});if(x.length===0&&!T&&u===0)return o.jsx(ar,{children:o.jsx(nms,{onCreateClick:N})});const H=r!=="all"||a!=="all"||l!=="all"||t!=="",B=()=>{n(""),s("all"),i("all"),c("all"),d(0)};return o.jsxs(Ut,{children:[o.jsx(Ut.TopArea,{children:o.jsx(ams,{search:t,onSearchChange:R,targetFilter:r,onTargetFilterChange:L,experimentFilter:a,onExperimentFilterChange:D,tagFilter:l,onTagFilterChange:F,tagOptions:_,onReset:B,hasActiveFilters:H,onCreateClick:N})}),o.jsx(tms,{datasets:x,experiments:k,reviewByDataset:C,isLoading:T,search:t,targetFilter:r,experimentFilter:a,tagFilter:l,currentPage:u,hasMore:S,onNextPage:I,onPrevPage:A})]})}function Zz({children:e}){return o.jsxs(Ut,{height:"full",children:[o.jsx("div",{}),o.jsx(Ut.MainArea,{isCentered:!0,children:e})]})}function hvs(){const{datasetId:e}=wr(),t=Xr(),[n,r]=ti(),{activeVersion:s,handleVersionChange:a}=FAe(n,r),[i,l]=g.useState(!1),[c,u]=g.useState(!1),[d,f]=g.useState(!1),[p,h]=g.useState(!1),{data:m,error:v,isLoading:y}=Zg(e),{data:b=[],isLoading:x}=Qx(e,void 0,s),S=!x&&b.length===0;if(y)return null;if(v&&ws(v))return o.jsx(Zz,{children:o.jsx(Ys,{})});if(v&&Ss(v))return o.jsx(Zz,{children:o.jsx(qs,{resource:"datasets"})});if(v&&O$t(v)||!y&&!v&&!m)return o.jsx(Zz,{children:o.jsx(_r,{iconSlot:o.jsx(om,{}),titleSlot:"Dataset not found",descriptionSlot:`No dataset with id "${e}".`,actionSlot:o.jsxs(oe,{as:ki,to:"/datasets",children:[o.jsx(ed,{}),"Back to Datasets"]})})});if(v)return o.jsx(Zz,{children:o.jsx(Ui,{title:"Failed to load dataset",message:v instanceof Error?v.message:"An unexpected error occurred. Please try again."})});const k=C=>{t(`/experiments/${C}`)},_=()=>{t("/datasets")};return o.jsxs(cgs,{datasetId:e,items:b,isLoadingItems:x,children:[o.jsxs("div",{className:"relative h-full overflow-hidden",children:[o.jsx(Ut,{height:"full",className:"grid-rows-[1fr] p-0",children:o.jsx(Ut.MainArea,{children:o.jsx(fgs,{datasetId:e,onAddItemClick:()=>u(!0),rightSlot:o.jsxs(us,{children:[o.jsx("span",{className:"text-ui-sm text-neutral3 mr-3 whitespace-nowrap",children:m?.createdAt?`Created ${br(new Date(m.createdAt),"MMM d")}`:""}),o.jsx(dVt,{datasetId:e,value:s,onValueChange:a,currentVersion:m?.version,className:"w-36"}),S?o.jsxs(En,{children:[o.jsx(kn,{asChild:!0,children:o.jsx("span",{className:"cursor-not-allowed",children:o.jsx("div",{className:"pointer-events-none opacity-50",inert:!0,"aria-disabled":"true",children:o.jsxs(oe,{variant:"primary",children:[o.jsx(hu,{}),"Run Experiment"]})})})}),o.jsx(On,{children:"Add items to the dataset before running an experiment"})]}):o.jsxs(oe,{variant:"primary",onClick:()=>l(!0),children:[o.jsx(hu,{}),"Run Experiment"]}),o.jsxs(it,{children:[o.jsx(it.Trigger,{asChild:!0,children:o.jsx(oe,{size:"lg","aria-label":"Dataset actions menu",children:o.jsx(WD,{})})}),o.jsxs(it.Content,{align:"end",className:"w-48",children:[o.jsxs(it.Item,{onSelect:()=>{t(`/datasets/${e}/edit`)},children:[o.jsx(cm,{})," Edit Dataset"]}),o.jsxs(it.Item,{onSelect:()=>h(!0),children:[o.jsx(im,{})," Duplicate Dataset"]}),o.jsxs(it.Item,{onSelect:()=>f(!0),className:"text-red-500 focus:text-red-400",children:[o.jsx(td,{})," Delete Dataset"]})]})]})]})})})}),o.jsx(Mg,{})]}),o.jsx(qAe,{initialDatasetId:e,initialDatasetVersion:s??void 0,open:i,onOpenChange:l,onSuccess:k},`${e}:${s??"latest"}`),o.jsx(hgs,{datasetId:e,open:c,onOpenChange:u}),m&&o.jsx(xms,{open:p,onOpenChange:h,sourceDatasetId:m.id,sourceDatasetName:m.name,sourceDatasetDescription:m.description,sourceDatasetTargetType:m.targetType}),m&&o.jsx(Oms,{open:d,onOpenChange:f,datasetId:m.id,datasetName:m.name,onSuccess:_})]})}function Nie({children:e}){return o.jsxs(Ut,{height:"full",children:[o.jsx("div",{}),o.jsx(Ut.MainArea,{isCentered:!0,children:e})]})}function mvs(){const{datasetId:e}=wr(),t=Xr(),{data:n,error:r,isLoading:s}=Zg(e),a=()=>{t(`/datasets/${e}`)};return s?null:r&&ws(r)?o.jsx(Nie,{children:o.jsx(Ys,{})}):r&&Ss(r)?o.jsx(Nie,{children:o.jsx(qs,{resource:"datasets"})}):r||!n?o.jsx(Nie,{children:o.jsx(Ui,{title:"Failed to load dataset",message:r instanceof Error?r.message:"An unexpected error occurred. Please try again."})}):o.jsxs(Ut,{height:"full",children:[o.jsx("div",{}),o.jsx(Ut.MainArea,{isCentered:!0,children:o.jsxs("div",{className:"w-full max-w-2xl overflow-y-auto px-6 py-8",children:[o.jsx(Ia,{className:"mb-6 p-0",children:o.jsxs(Ia.Column,{children:[o.jsxs(Ia.Title,{children:[o.jsx(om,{})," Edit dataset"]}),o.jsx(Ia.Description,{children:n.name})]})}),o.jsx(By,{className:"p-6",children:o.jsx(kms,{dataset:{id:n.id,name:n.name,description:n.description||"",targetType:n.targetType,inputSchema:n.inputSchema,groundTruthSchema:n.groundTruthSchema,requestContextSchema:n.requestContextSchema},onSuccess:a,onCancel:a})})]})})]})}function Yet({experimentId:e}){return o.jsxs(oe,{as:ki,to:`/experiments/${e}`,target:"_blank",rel:"noopener noreferrer",size:"sm","aria-label":`Open experiment ${e}`,children:[e.slice(0,8),o.jsx(ds,{})]})}function gvs(){const{datasetId:e}=wr(),[t,n]=ti(),{error:r}=Zg(e??""),s=t.get("baseline")??"",a=t.get("contender")??"";return r&&ws(r)?o.jsx(As,{children:o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Ys,{})})}):r&&Ss(r)?o.jsx(As,{children:o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(qs,{resource:"datasets"})})}):!e||!s||!a?o.jsx(As,{children:o.jsx(Gx,{children:o.jsxs("div",{className:"text-neutral4 py-8 text-center",children:[o.jsx("p",{children:"Select two experiments to compare."}),o.jsxs("p",{className:"mt-2 text-sm",children:["Use the URL format: /datasets/","{datasetId}","/experiments?baseline=","{experimentIdA}","&contender=","{experimentIdB}"]})]})})}):o.jsx(As,{children:o.jsx(Gx,{children:o.jsxs("div",{className:"grid w-full content-start",children:[o.jsxs("div",{className:"flex items-center justify-between gap-4 px-6 py-3",children:[o.jsxs("div",{className:"flex min-w-0 items-center gap-3",children:[o.jsx(ge,{as:"h1",variant:"ui-lg",className:"text-neutral6 font-medium",children:"Experiments comparison"}),o.jsxs("p",{className:"text-ui-sm text-neutral4 flex items-center gap-2",children:[o.jsx(Yet,{experimentId:s}),"and",o.jsx(Yet,{experimentId:a})]})]}),o.jsxs(En,{children:[o.jsx(kn,{asChild:!0,children:o.jsxs(oe,{onClick:()=>n({baseline:a,contender:s}),children:[o.jsx(BGt,{}),"Swap sides"]})}),o.jsx(On,{children:"Switch baseline and contender"})]})]}),o.jsx($gs,{datasetId:e,experimentIdA:s,experimentIdB:a})]})})})}const Gz=()=>{},vvs=new Set,yvs=[{name:"id",label:"ID",size:"7rem"},{name:"input",label:"Input",size:"minmax(10rem,1fr)"},{name:"groundTruth",label:"Ground Truth",size:"minmax(10rem,1fr)"},{name:"trajectory",label:"Trajectory",size:"8rem"},{name:"createdAt",label:"Created",size:"10rem"}];function bvs({datasetId:e,currentItemId:t,open:n,onOpenChange:r}){const{navigate:s,paths:a}=dn(),[i,l]=g.useState(""),[c]=UH(i,300),{data:u,isLoading:d,setEndOfListElement:f,isFetchingNextPage:p,hasNextPage:h}=Qx(e,c||void 0),m=u.filter(y=>y.id!==t),v=y=>{r(!1),s(a.datasetItemCompareLink(e,t,y))};return o.jsx(gr,{open:n,onOpenChange:r,children:o.jsxs(vr,{className:"sm:max-w-[min(72rem,calc(100%-4rem))]",children:[o.jsxs(yr,{children:[o.jsx(pr,{children:"Compare with…"}),o.jsx(Ns,{children:"Pick an item to compare with the current one."})]}),o.jsxs($r,{className:"grid max-h-[70vh] min-h-[24rem] grid-rows-[auto_1fr] gap-3",children:[o.jsx(v_,{name:"compare-with-dialog-search",label:"Search items to compare",labelIsHidden:!0,value:i,onChange:y=>l(y.target.value),placeholder:"Search items..."}),o.jsx("div",{className:"min-h-0 overflow-y-auto",children:o.jsx(mVt,{items:m,isLoading:d,onItemClick:v,selectOnNavigate:!1,columns:yvs,searchQuery:c||" ",setEndOfListElement:f,isFetchingNextPage:p,hasNextPage:h,isSelectionActive:!1,selectedIds:vvs,onToggleSelection:Gz,onSelectAll:Gz,onClearSelection:Gz,onAddClick:Gz})})]})]})})}function xvs(e){if(!(e instanceof Error))return null;const t=e.message.match(/- ({.*})$/);if(!t)return null;try{const n=JSON.parse(t[1]);if(n.field&&Array.isArray(n.errors))return{field:n.field,errors:n.errors}}catch{}return null}function wvs({datasetId:e,item:t,items:n,onItemChange:r,onClose:s}){const{Link:a}=dn(),{updateItem:i,deleteItem:l}=qi(),[c,u]=g.useState(!1),[d,f]=g.useState(""),[p,h]=g.useState(""),[m,v]=g.useState(""),[y,b]=g.useState(""),[x,S]=g.useState(""),[k,_]=g.useState(t.scorerIds!==void 0),[C,T]=g.useState(t.scorerIds??[]),[E,N]=g.useState(""),[I,A]=g.useState(null),[R,L]=g.useState(!1),[D,F]=g.useState(!1);g.useEffect(()=>{t&&(f(JSON.stringify(t.input,null,2)),h(t.groundTruth?JSON.stringify(t.groundTruth,null,2):""),v(t.metadata?JSON.stringify(t.metadata,null,2):""),b(t.expectedTrajectory?JSON.stringify(t.expectedTrajectory,null,2):""),S(t.toolMocks?.length?JSON.stringify(t.toolMocks,null,2):""),_(t.scorerIds!==void 0),T(t.scorerIds??[]),N(t.requestContext?JSON.stringify(t.requestContext,null,2):""),u(!1),L(!1),A(null))},[t?.id]);const H=n.findIndex(q=>q.id===t.id),B=H>0?()=>r(n[H-1].id):void 0,z=H>=0&&H<n.length-1?()=>r(n[H+1].id):void 0,V=async()=>{let q;try{q=JSON.parse(d)}catch{Be.error("Input must be valid JSON");return}let Z;if(p.trim())try{Z=JSON.parse(p)}catch{Be.error("Ground Truth must be valid JSON");return}let Y;if(m.trim())try{Y=JSON.parse(m)}catch{Be.error("Metadata must be valid JSON");return}let ne=null;if(y.trim())try{ne=JSON.parse(y)}catch{Be.error("Expected Trajectory must be valid JSON");return}let J;if(x.trim())try{const le=JSON.parse(x);if(!Array.isArray(le)){Be.error("Tool Mocks must be a JSON array");return}J=le}catch{Be.error("Tool Mocks must be valid JSON");return}else J=[];let ee;if(E.trim())try{ee=JSON.parse(E)}catch{Be.error("Request Context must be valid JSON");return}let se;k?se=C:t.scorerIds!==void 0&&(se=null);try{const le=await i.mutateAsync({datasetId:e,itemId:t.id,input:q,groundTruth:Z,metadata:Y,expectedTrajectory:ne,toolMocks:J,scorerIds:se,requestContext:ee});Be.success("Item updated successfully"),_(le.scorerIds!==void 0),T(le.scorerIds??[]),u(!1),A(null)}catch(le){const X=xvs(le);X?A(X):Be.error(`Failed to update item: ${le instanceof Error?le.message:"Unknown error"}`)}},M=()=>{f(JSON.stringify(t.input,null,2)),h(t.groundTruth?JSON.stringify(t.groundTruth,null,2):""),v(t.metadata?JSON.stringify(t.metadata,null,2):""),b(t.expectedTrajectory?JSON.stringify(t.expectedTrajectory,null,2):""),S(t.toolMocks?.length?JSON.stringify(t.toolMocks,null,2):""),_(t.scorerIds!==void 0),T(t.scorerIds??[]),N(t.requestContext?JSON.stringify(t.requestContext,null,2):""),u(!1),A(null)},G=q=>{f(q),I?.field==="input"&&A(null)},U=q=>{h(q),I?.field==="groundTruth"&&A(null)},$=async()=>{try{await l.mutateAsync({datasetId:e,itemId:t.id}),Be.success("Item deleted successfully"),L(!1),s()}catch(q){Be.error(`Failed to delete item: ${q instanceof Error?q.message:"Unknown error"}`)}};return o.jsxs(o.Fragment,{children:[o.jsxs(vn,{children:[o.jsxs(vn.Header,{children:[o.jsxs(vn.Heading,{children:["Item ",o.jsxs("b",{children:["# ",t.id.length>12?`${t.id.slice(0,12)}…`:t.id]})]}),o.jsxs(us,{className:"ml-auto shrink-0",children:[o.jsx(vn.NextPrevNav,{onPrevious:B,onNext:z,previousLabel:"Previous item",nextLabel:"Next item"}),!c&&o.jsxs(o.Fragment,{children:[o.jsx(oe,{as:a,href:`/datasets/${e}/items/${t.id}/versions`,size:"md",tooltip:"Go to item versions history","aria-label":"Go to item versions history",children:o.jsx(eI,{})}),o.jsxs(it,{children:[o.jsx(it.Trigger,{asChild:!0,children:o.jsx(oe,{size:"md","aria-label":"Actions menu",children:o.jsx(WD,{})})}),o.jsxs(it.Content,{align:"end",className:"w-48",children:[o.jsxs(it.Item,{onSelect:()=>u(!0),children:[o.jsx(cm,{}),"Edit"]}),o.jsxs(it.Item,{onSelect:()=>F(!0),children:[o.jsx(Sj,{}),"Compare with…"]}),o.jsxs(it.Item,{onSelect:()=>L(!0),className:"text-red-500 focus:text-red-400",children:[o.jsx(td,{}),"Delete Item"]})]})]})]}),o.jsx(vn.CloseButton,{onClick:s,tooltip:"Close detail panel"})]})]}),o.jsx(vn.Content,{children:c?o.jsx(ggs,{inputValue:d,setInputValue:G,groundTruthValue:p,setGroundTruthValue:U,metadataValue:m,setMetadataValue:v,trajectoryValue:y,setTrajectoryValue:b,toolMocksValue:x,setToolMocksValue:S,scorerOverrideEnabled:k,setScorerOverrideEnabled:_,selectedScorerIds:C,setSelectedScorerIds:T,requestContextValue:E,setRequestContextValue:N,validationErrors:I,onSave:V,onCancel:M,isSaving:i.isPending}):o.jsxs(o.Fragment,{children:[o.jsxs(Zt,{children:[o.jsx(Zt.Key,{children:"Dataset Id"}),o.jsx(Zt.ValueWithCopyBtn,{copyTooltip:"Copy Dataset Id to clipboard",copyValue:t.datasetId,children:t.datasetId}),o.jsx(Zt.Key,{children:"Version"}),o.jsxs(Zt.Value,{children:["v",t.datasetVersion]}),o.jsx(Zt.Key,{children:"Created"}),o.jsx(Zt.Value,{children:br(new Date(t.createdAt),"MMM d, yyyy h:mm aaa")}),t.updatedAt&&new Date(t.updatedAt).getTime()!==new Date(t.createdAt).getTime()&&o.jsxs(o.Fragment,{children:[o.jsx(Zt.Key,{children:"Updated"}),o.jsx(Zt.Value,{children:br(new Date(t.updatedAt),"MMM d, yyyy h:mm aaa")})]})]}),o.jsxs("div",{className:"mt-3 grid gap-3",children:[o.jsx(vn.CodeSection,{title:"Input",icon:o.jsx(wj,{}),codeStr:JSON.stringify(t.input??null,null,2)}),o.jsx(vn.CodeSection,{title:"Ground Truth",icon:o.jsx(cx,{}),codeStr:JSON.stringify(t.groundTruth??null,null,2)}),t.expectedTrajectory!=null&&o.jsx(vn.CodeSection,{title:"Expected Trajectory",icon:o.jsx(p0e,{}),codeStr:JSON.stringify(t.expectedTrajectory,null,2)}),o.jsx(vn.CodeSection,{title:"Tool Mocks",icon:o.jsx(Vp,{}),codeStr:JSON.stringify(t.toolMocks??[],null,2)}),o.jsx(vn.CodeSection,{title:"Scorers",icon:o.jsx(xV,{}),codeStr:t.scorerIds===void 0?"Inherited from dataset":JSON.stringify(t.scorerIds,null,2)}),t.requestContext!=null&&o.jsx(vn.CodeSection,{title:"Request Context",icon:o.jsx(jy,{}),codeStr:JSON.stringify(t.requestContext,null,2)}),o.jsx(vn.CodeSection,{title:"Metadata",icon:o.jsx(tI,{}),codeStr:JSON.stringify(t.metadata??null,null,2)})]})]})})]}),o.jsx(bvs,{datasetId:e,currentItemId:t.id,open:D,onOpenChange:F}),o.jsx(Mt,{open:R,onOpenChange:L,children:o.jsxs(Mt.Content,{children:[o.jsxs(Mt.Header,{children:[o.jsx(Mt.Title,{children:"Delete Item"}),o.jsx(Mt.Description,{children:"Are you sure you want to delete this item? This action cannot be undone."})]}),o.jsxs(Mt.Footer,{children:[o.jsx(Mt.Cancel,{children:"Cancel"}),o.jsx(Mt.Action,{onClick:$,children:l.isPending?"Deleting...":"Yes, Delete"})]})]})})]})}function Svs(){const{itemId:e}=wr(),{datasetId:t,items:n,isLoadingItems:r,openItem:s,close:a}=yVt(),i=g.useMemo(()=>n.find(d=>d.id===e)??null,[n,e]),{data:l,isLoading:c}=DD(i?"":t,!i&&e?e:""),u=i??l??null;return e?o.jsx(BAe,{label:`Dataset item ${e}`,children:u?o.jsx("div",{className:"[&>section]:bg-surface3 flex min-h-full flex-col p-3 [&>section]:min-h-0 [&>section]:flex-1 [&>section]:rounded-lg [&>section]:shadow-lg",children:o.jsx(wvs,{datasetId:t,item:u,items:n,onItemChange:s,onClose:a})}):r||c?o.jsx("div",{className:"h-full p-3",children:o.jsx("div",{className:"border-border1 bg-surface3 flex h-full items-center justify-center rounded-lg border shadow-lg",children:o.jsx(qt,{})})}):o.jsx("div",{className:"h-full p-3",children:o.jsx("div",{className:"border-border1 bg-surface3 flex h-full items-center justify-center rounded-lg border shadow-lg",children:o.jsx(_r,{iconSlot:o.jsx(om,{}),titleSlot:"Item not found",descriptionSlot:`No loaded item "${e}".`,actionSlot:o.jsx(oe,{onClick:a,children:"Close"})})})})}):null}function Ket(e){return JSON.stringify({input:e.input??null,groundTruth:e.groundTruth??null,metadata:e.metadata??null},null,2)}function kvs(){const{datasetId:e,itemId:t,secondItemId:n}=wr(),r=Xr(),s=[t,n].filter(h=>!!h),{data:a,error:i}=Zg(e??""),{Link:l,paths:c}=dn(),[u,d]=g.useState(!1),{data:f}=DD(e??"",s[0]??""),{data:p}=DD(e??"",s[1]??"");return i&&ws(i)?o.jsx(As,{children:o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Ys,{})})}):i&&Ss(i)?o.jsx(As,{children:o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(qs,{resource:"datasets"})})}):!e||s.length<2?o.jsx(As,{children:o.jsx(Gx,{children:o.jsx("div",{className:"text-neutral4 py-8 text-center",children:o.jsx("p",{children:"Select at least two items to compare."})})})}):o.jsxs(As,{children:[o.jsx($y,{owner:"dataset-items-compare",children:o.jsxs(oe,{as:ki,to:`/datasets/${e}`,variant:"outline",children:[o.jsx(ed,{}),"Back to Dataset"]})}),o.jsx("div",{className:"h-full overflow-hidden px-[3vw] pb-4",children:o.jsxs("div",{className:K("grid gap-6 max-w-[140rem] mx-auto grid-rows-[auto_1fr] h-full",{"grid-rows-[auto_auto_1fr]":u}),children:[o.jsxs(Ia,{children:[o.jsxs(Ia.Column,{children:[o.jsxs(Ia.Title,{children:[o.jsx(Sj,{}),"Compare Dataset Items"]}),o.jsx(Ia.Description,{children:o.jsxs(Al,{children:["Comparing ",s.length," items of"," ",o.jsx(ki,{to:`/datasets/${e}`,className:"text-info1 hover:underline",children:a?.name||e?.slice(0,8)})]})})]}),o.jsx(Ia.Column,{children:o.jsx(us,{children:o.jsx(oe,{variant:"primary",onClick:()=>d(h=>!h),children:u?o.jsxs(o.Fragment,{children:[o.jsx(a0e,{})," Default View"]}):o.jsxs(o.Fragment,{children:[o.jsx(aYt,{})," Diff View"]})})})})]}),o.jsx(Sx,{className:"grid-cols-[1fr_3vw_1fr]",children:s.map((h,m)=>o.jsxs(g.Fragment,{children:[o.jsx(Ovs,{datasetId:e,itemId:h,Link:l,idx:m,itemIds:s,showContent:!u,onItemChange:v=>{const y=[...s];y[m]=v,r(c.datasetItemCompareLink(e,y[0],y[1]))}}),m==0&&o.jsx("div",{className:K("bg-surface5 w-[3px] shrink-0 mx-[1.5vw]")})]},h))}),u&&f&&p&&o.jsx(fje,{codeA:Ket(f),codeB:Ket(p)})]})})]})}function Ovs({datasetId:e,itemId:t,Link:n,idx:r,itemIds:s,onItemChange:a,showContent:i=!0}){const{data:l,isLoading:c}=DD(e,t),{data:u}=Qx(e),d=new Set(s.filter((p,h)=>h!==r)),f=(u??[]).map(p=>({value:p.id,label:p.id,disabled:d.has(p.id)}));return o.jsxs(Ks,{children:[o.jsxs(Ks.Toolbar,{className:"flex gap-4",children:[o.jsxs(fa,{name:`compare-item-${r}`,value:t,onValueChange:a,children:[o.jsx(ha,{"aria-label":"Item",children:o.jsx(pa,{placeholder:"Select item"})}),o.jsx(ma,{children:f.map(p=>o.jsx(Nr,{value:p.value,disabled:p.disabled,children:p.label},p.value))})]}),o.jsxs(oe,{as:n,to:`/datasets/${e}/items/${t}`,children:[o.jsx(eI,{}),"Versions"]})]}),i&&o.jsx(Ks.Content,{children:c?o.jsx("div",{className:"text-neutral4 text-sm",children:"Loading..."}):l?o.jsxs(o.Fragment,{children:[o.jsx(mgs,{item:l}),o.jsx(UAe,{item:l,Link:n})]}):o.jsxs("div",{className:"text-neutral4 text-sm",children:["Item ",t.slice(0,8)," not found"]})})]})}function Xet(e){return JSON.stringify({input:e.input??null,groundTruth:e.groundTruth??null,scorerIds:e.scorerIds??null,metadata:e.metadata??null},null,2)}function _vs(){const{datasetId:e,itemId:t}=wr(),[n,r]=ti(),[s,a]=g.useState(!1),i=n.get("ids")?.split(",").map(Number).filter(h=>!isNaN(h)&&h>0)??[],{data:l,error:c}=Zg(e??""),{Link:u}=dn(),{data:d}=LAe(e??"",t??""),{data:f}=Fxe(e??"",t??"",i[0]??0,l?.version),{data:p}=Fxe(e??"",t??"",i[1]??0,l?.version);return c&&ws(c)?o.jsx(As,{children:o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Ys,{})})}):c&&Ss(c)?o.jsx(As,{children:o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(qs,{resource:"datasets"})})}):!e||!t?o.jsx(As,{children:o.jsx(Gx,{children:o.jsx("div",{className:"text-neutral4 py-8 text-center",children:o.jsx("p",{children:"Item not found."})})})}):i.length<2?o.jsx(Cvs,{datasetId:e,itemId:t,Link:u,onCompare:h=>r({ids:h.join(",")})}):o.jsxs(As,{children:[o.jsx($y,{owner:"dataset-item-versions-compare",children:o.jsxs(oe,{as:ki,to:`/datasets/${e}/items/${t}`,variant:"outline",children:[o.jsx(ed,{}),"Back to Item"]})}),o.jsx("div",{className:"h-full overflow-hidden px-[3vw] pb-4",children:o.jsxs("div",{className:K("grid gap-6 max-w-[140rem] mx-auto grid-rows-[auto_1fr] h-full",{"grid-rows-[auto_auto_1fr]":s}),children:[o.jsxs(Ia,{children:[o.jsxs(Ia.Column,{children:[o.jsxs(Ia.Title,{children:[o.jsx(Sj,{}),"Compare Dataset Item Versions"]}),o.jsx(Ia.Description,{children:o.jsxs(Al,{children:["Comparing ",i.length," versions of"," ",o.jsx(ki,{to:`/datasets/${e}/items/${t}`,className:"text-info1 hover:underline",children:t})]})})]}),o.jsx(Ia.Column,{children:o.jsx(us,{children:o.jsx(oe,{variant:"primary",onClick:()=>a(h=>!h),children:s?o.jsxs(o.Fragment,{children:[o.jsx(a0e,{})," Default View"]}):o.jsxs(o.Fragment,{children:[o.jsx(VYt,{})," Diff View"]})})})})]}),o.jsx(Sx,{className:"grid-cols-[1fr_3vw_1fr]",children:i.map((h,m)=>o.jsxs(g.Fragment,{children:[o.jsx(Evs,{datasetId:e,itemId:t,datasetVersion:h,latestVersion:l?.version,allVersions:d??[],versionNumbers:i,Link:u,idx:m,showContent:!s,onVersionChange:v=>{const y=[...i];y[m]=v,r({ids:y.join(",")})}}),m===0&&o.jsx("div",{className:K("bg-surface5 w-[3px] shrink-0 mx-[1.5vw]")})]},h))}),s&&f&&p&&o.jsx(fje,{codeA:Xet(f),codeB:Xet(p)})]})})]})}function Cvs({datasetId:e,itemId:t,Link:n,onCompare:r}){const[s,a]=g.useState(null),{data:i,isLoading:l}=LAe(e,t),c=(s!=null?i?.find(d=>d.datasetVersion===s):void 0)??i?.[0],u=c?{id:c.id,datasetId:e,datasetVersion:c.datasetVersion,input:c.input,groundTruth:c.groundTruth,scorerIds:c.scorerIds,metadata:c.metadata,createdAt:c.createdAt,updatedAt:c.updatedAt}:null;return o.jsxs(As,{children:[o.jsx($y,{owner:"dataset-item-versions-history",children:o.jsxs(oe,{as:ki,to:`/datasets/${e}/items/${t}`,variant:"outline",children:[o.jsx(ed,{}),"Back to Item"]})}),o.jsx("div",{className:"h-full overflow-hidden px-[3vw] pb-4",children:o.jsxs("div",{className:"mx-auto grid h-full max-w-[140rem] grid-rows-[auto_1fr] gap-6",children:[o.jsx(Ia,{children:o.jsxs(Ia.Column,{children:[o.jsxs(Ia.Title,{children:[o.jsx(eI,{}),"Item Version History"]}),o.jsx(Ia.Description,{children:o.jsxs(Al,{children:["Versions of ",t]})})]})}),o.jsxs(Sx,{className:"grid-cols-[1fr_auto]",children:[o.jsx(Ks,{children:o.jsx(Ks.Content,{children:l?o.jsx("div",{className:"text-neutral4 text-sm",children:"Loading..."}):u?o.jsx(UAe,{item:u,Link:n}):o.jsx("div",{className:"text-neutral4 text-sm",children:"Item data not available"})})}),o.jsx(evs,{datasetId:e,itemId:t,onClose:()=>{},onVersionSelect:d=>a(d.datasetVersion),onCompareVersionsClick:r,activeVersion:s})]})]})})]})}function Evs({datasetId:e,itemId:t,datasetVersion:n,latestVersion:r,allVersions:s,versionNumbers:a,Link:i,idx:l,showContent:c=!0,onVersionChange:u}){const{data:d,isLoading:f}=Fxe(e,t,n,r),p=new Set(a.filter((v,y)=>y!==l)),h=s.map(v=>{const y=typeof v.updatedAt=="string"?new Date(v.updatedAt):v.updatedAt;return{value:String(v.datasetVersion),label:o.jsxs(o.Fragment,{children:[o.jsxs("b",{children:["v. ",v.datasetVersion]})," - ",br(y,"MMM d, yyyy h:mm a"),v.isLatest?o.jsx(rl,{color:"blue",size:"small",children:"Latest"}):null]}),disabled:p.has(v.datasetVersion)}}),m=d?{id:d.id,datasetId:e,datasetVersion:d.datasetVersion,input:d.input,groundTruth:d.groundTruth,scorerIds:d.scorerIds,metadata:d.metadata,createdAt:d.createdAt,updatedAt:d.updatedAt}:null;return o.jsxs(Ks,{children:[o.jsxs(Ks.Toolbar,{className:"grid grid-cols-[auto_1fr] gap-4",children:[o.jsx(eI,{className:"h-6 w-6 opacity-50"}),o.jsxs(fa,{name:`compare-version-${l}`,value:String(n),onValueChange:v=>u(Number(v)),children:[o.jsx(ha,{"aria-label":"Version",className:"w-full",children:o.jsx(pa,{placeholder:"Select version"})}),o.jsx(ma,{children:h.map(v=>o.jsx(Nr,{value:v.value,disabled:v.disabled,children:v.label},v.value))})]})]}),c&&o.jsx(Ks.Content,{children:f?o.jsx("div",{className:"text-neutral4 text-sm",children:"Loading..."}):!d||!m?o.jsxs("div",{className:"text-neutral4 text-sm",children:["Version ",n," not found"]}):o.jsx(UAe,{item:m,Link:i})})]})}function Tvs(){const{datasetId:e}=wr(),[t]=ti(),n=t.get("ids")?.split(",").map(Number).filter(v=>!isNaN(v)&&v>0)??[],r=Xr(),{data:s,error:a}=Zg(e??""),i=Qx(e??"",void 0,n[0]??null),l=Qx(e??"",void 0,n[1]??null),c=g.useMemo(()=>i.data??[],[i.data]),u=g.useMemo(()=>l.data??[],[l.data]),d=g.useMemo(()=>{const v=new Map;for(const y of[...c,...u])v.has(y.id)||v.set(y.id,{id:y.id,createdAt:new Date(y.createdAt)});return[...v.values()].sort((y,b)=>b.createdAt.getTime()-y.createdAt.getTime())},[c,u]),f=g.useMemo(()=>new Map(c.map(v=>[v.id,v])),[c]),p=g.useMemo(()=>new Map(u.map(v=>[v.id,v])),[u]);if(a&&ws(a))return o.jsx(As,{children:o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Ys,{})})});if(a&&Ss(a))return o.jsx(As,{children:o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(qs,{resource:"datasets"})})});if(!e||n.length<2)return o.jsx(As,{children:o.jsx(Gx,{children:o.jsx("div",{className:"text-neutral4 py-8 text-center",children:o.jsx("p",{children:"Select at least two versions to compare."})})})});const h=(v,y,b)=>{r(`/datasets/${e}/items/${v}/versions?ids=${y?.datasetVersion??""},${b?.datasetVersion??""}`)},m=(v,y)=>{r(`/datasets/${e}/versions?ids=${v},${y}`,{replace:!0})};return o.jsx(As,{children:o.jsx("div",{className:"h-full overflow-hidden px-[3vw] pb-4",children:o.jsxs("div",{className:"mx-auto grid h-full max-w-[140rem] grid-rows-[auto_1fr] gap-6",children:[o.jsxs(Ia,{children:[o.jsxs(Ia.Column,{children:[o.jsxs(Ia.Title,{children:[o.jsx($Xt,{})," Compare Dataset Versions"]}),o.jsx(Ia.Description,{children:o.jsxs(Al,{children:[o.jsx(eI,{})," Comparing ",n.length," versions of"," ",s?.name||e?.slice(0,8)]})})]}),o.jsx(Ia.Column,{children:o.jsxs(oe,{as:ki,to:`/datasets/${e}`,children:[o.jsx(ed,{}),"Back to Dataset"]})})]}),o.jsx(Sx,{children:o.jsxs(Ks,{children:[o.jsx(rvs,{datasetId:e,versionA:String(n[0]),versionB:String(n[1]),onVersionChange:m}),o.jsx(ovs,{datasetId:e,versionA:n[0],versionB:n[1],allItems:d,itemsAMap:f,itemsBMap:p,onItemClick:h})]})})]})})})}function jvs(){const e=Xr(),[t]=ti(),n=t.get("targetType"),r=zD(n)?n:void 0,s=t.get("targetIds"),a=r&&s?s.split(",").map(i=>i.trim()).filter(Boolean):void 0;return o.jsxs(Ut,{height:"full",children:[o.jsx("div",{}),o.jsx(Ut.MainArea,{isCentered:!0,children:o.jsxs("div",{className:"w-full max-w-2xl overflow-y-auto px-6 py-8",children:[o.jsx(Ia,{className:"mb-6 p-0",children:o.jsxs(Ia.Column,{children:[o.jsxs(Ia.Title,{children:[o.jsx(om,{})," Create new dataset"]}),o.jsx(Ia.Description,{children:"Datasets group test cases used to evaluate your agents and workflows."})]})}),o.jsx(By,{className:"p-6",children:o.jsx(vms,{targetType:r,targetIds:a,onSuccess:i=>{e(`/datasets/${i}`)},onCancel:()=>{e(-1)}})})]})})]})}function Uxe({children:e,className:t}){return o.jsx("div",{className:K("flex flex-wrap gap-8",t),children:e})}function Nvs(e){if(!e||e.length<2)return null;const t=[...e].sort((i,l)=>new Date(i.createdAt).getTime()-new Date(l.createdAt).getTime()),n=Math.floor(t.length/2),r=n,s=t.length-n;if(r===0)return null;const a=(s-r)/r*100;return{changePct:Math.round(a*10)/10,prevValue:String(r)}}function Ivs({scorers:e,datasets:t,experiments:n,avgScore:r,prevAvgScore:s,totalNeedsReview:a,isLoadingScorers:i,isLoadingDatasets:l,isLoadingExperiments:c,isLoadingScores:u,isLoadingReview:d}){const f=e?Object.keys(e).length:void 0,p=t?.length,h=n?.length,m=r!=null&&s!=null&&s!==0?{changePct:Math.round((r-s)/s*100*10)/10,prevValue:String(s)}:null,v=Nvs(n);return o.jsxs(o.Fragment,{children:[o.jsxs(Wr,{children:[o.jsx(Wr.Label,{children:"Total Scorers"}),i?o.jsx(Wr.Loading,{}):f!=null?o.jsxs(o.Fragment,{children:[o.jsx(Wr.Value,{children:String(f)}),o.jsx(Wr.NoChange,{message:"Static count"})]}):o.jsx(Wr.NoData,{})]}),o.jsxs(Wr,{children:[o.jsx(Wr.Label,{children:"Total Datasets"}),l?o.jsx(Wr.Loading,{}):p!=null?o.jsxs(o.Fragment,{children:[o.jsx(Wr.Value,{children:String(p)}),o.jsx(Wr.NoChange,{message:"Static count"})]}):o.jsx(Wr.NoData,{})]}),o.jsxs(Wr,{children:[o.jsx(Wr.Label,{children:"Avg Score"}),u?o.jsx(Wr.Loading,{}):r!=null?o.jsxs(o.Fragment,{children:[o.jsx(Wr.Value,{children:String(r)}),m?o.jsx(Wr.Change,{changePct:m.changePct,prevValue:m.prevValue}):o.jsx(Wr.NoChange,{})]}):o.jsx(Wr.NoData,{})]}),o.jsxs(Wr,{children:[o.jsx(Wr.Label,{children:"Total Experiments"}),c?o.jsx(Wr.Loading,{}):h!=null?o.jsxs(o.Fragment,{children:[o.jsx(Wr.Value,{children:String(h)}),v?o.jsx(Wr.Change,{changePct:v.changePct,prevValue:v.prevValue}):o.jsx(Wr.NoChange,{})]}):o.jsx(Wr.NoData,{})]}),o.jsxs(Wr,{children:[o.jsx(Wr.Label,{children:"Needs Review"}),d?o.jsx(Wr.Loading,{}):a!=null?o.jsxs(o.Fragment,{children:[o.jsx(Wr.Value,{children:String(a)}),a>0?o.jsx(Wr.NoChange,{message:"items pending review"}):o.jsx(Wr.NoChange,{message:"All caught up"})]}):o.jsx(Wr.NoData,{})]})]})}const Jet=`${fVt} ${Bms} ${pVt}`;function Avs({experiments:e,datasets:t,reviewByExperiment:n,isLoading:r,search:s="",statusFilter:a="all",datasetFilter:i="all"}){const{paths:l,Link:c}=dn(),u=g.useMemo(()=>{const m=new Map;return t?.forEach(v=>m.set(v.id,v.name)),m},[t]),d=g.useMemo(()=>[...e].sort((m,v)=>{const y=m.createdAt?new Date(m.createdAt).getTime():0;return(v.createdAt?new Date(v.createdAt).getTime():0)-y}),[e]),f=g.useMemo(()=>{const m=s.toLowerCase();return d.filter(v=>{const y=v.datasetId?u.get(v.datasetId)??"":"",b=!m||v.id.toLowerCase().includes(m)||(v.name??"").toLowerCase().includes(m)||y.toLowerCase().includes(m)||(v.targetId??"").toLowerCase().includes(m),x=a==="all"||v.status===a,S=i==="all"||v.datasetId===i;return b&&x&&S})},[d,s,u,a,i]),{containerRef:p,getRowProps:h}=wo({count:f.length});return r?o.jsx(vl,{columns:Jet}):o.jsxs(be,{columns:Jet,variant:"striped",scrollRef:p,children:[o.jsxs(be.Top,{children:[o.jsx(be.TopCell,{children:Jc.experiment}),o.jsx(be.TopCell,{children:Jc.dataset}),o.jsx(be.TopCell,{children:Jc.target}),o.jsx(be.TopCell,{children:Jc.status}),o.jsx(be.TopCell,{className:"text-center",children:Jc.items}),o.jsx(be.TopCell,{className:"text-center",children:Jc.succeeded}),o.jsx(be.TopCell,{className:"text-center",children:Jc.failed}),o.jsx(be.TopCell,{className:"text-center",children:Jc.review}),o.jsx(be.TopCell,{children:Jc.date})]}),f.map((m,v)=>{const y=m.datasetId?u.get(m.datasetId)??dS(m.datasetId)??m.datasetId:"—";return o.jsx(be.RowLink,{to:l.experimentLink(m.id),LinkComponent:c,...h(v),children:o.jsx(hVt,{experiment:m,datasetName:y,review:n?.get(m.id)})},m.id)})]})}const Rvs=[{value:"all",label:"All statuses"},{value:"completed",label:"Completed"},{value:"running",label:"Running"},{value:"failed",label:"Failed"},{value:"pending",label:"Pending"}];function Pvs(e){return[{value:"all",label:"All datasets"},...(e??[]).map(t=>({value:t.id,label:t.name}))]}const Qz={completed:"#22c55e",running:"#facc15",pending:"#fb923c",failed:"#f87171"},$vs=[{label:"Completed",color:Qz.completed},{label:"Running",color:Qz.running},{label:"Pending",color:Qz.pending},{label:"Failed",color:Qz.failed}];function Mvs({experiments:e,datasets:t,isLoading:n,isError:r}){const{data:s,maxVal:a}=g.useMemo(()=>{if(!e||e.length===0)return{data:[],maxVal:0};const l=new Map;if(t)for(const f of t)l.set(f.id,f.name);const c=new Map;for(const f of e){const p=f.datasetId??"unknown";c.has(p)||c.set(p,{completed:0,running:0,pending:0,failed:0});const h=c.get(p),m=f.status;m in h&&h[m]++}let u=0;return{data:Array.from(c.entries()).map(([f,p])=>{const h=p.completed+p.running+p.pending+p.failed;return h>u&&(u=h),{name:l.get(f)??f.slice(0,12),values:[p.completed,p.running,p.pending,p.failed]}}),maxVal:u}},[e,t]),i=s.length>0;return o.jsxs(Bt,{children:[o.jsxs(Bt.TopBar,{children:[o.jsx(Bt.TitleAndDescription,{title:"Experiments by Dataset",description:"Experiment status breakdown per dataset."}),i&&o.jsx(Bt.Summary,{value:String(e?.length??0),label:"Total experiments"})]}),n?o.jsx(Bt.Loading,{}):r?o.jsx(Bt.Error,{message:"Failed to load experiments data"}):o.jsx(Bt.Content,{children:i?o.jsx(VN,{data:s,segments:$vs,maxVal:a,fmt:l=>String(l)}):o.jsx(Bt.NoData,{message:"No experiments have been run yet"})})]})}const Dvs=({onRunExperiment:e})=>o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(_r,{iconSlot:o.jsx(Df,{}),titleSlot:"No Experiments yet",descriptionSlot:o.jsxs(o.Fragment,{children:["Run an experiment from a dataset to evaluate ",o.jsx("br",{}),"your agents and workflows."]}),actionSlot:o.jsxs("div",{className:"flex flex-col items-center gap-2",children:[e&&o.jsxs(oe,{variant:"primary",onClick:e,children:[o.jsx(hu,{}),"Run Experiment"]}),o.jsxs(oe,{variant:"ghost",as:"a",href:"https://mastra.ai/en/docs/datasets/running-experiments",target:"_blank",rel:"noopener noreferrer",children:["Experiments Documentation ",o.jsx(ds,{})]})]})})});function Lvs({search:e,onSearchChange:t,statusFilter:n,onStatusFilterChange:r,datasetFilter:s,onDatasetFilterChange:a,datasetOptions:i,onReset:l,hasActiveFilters:c,onRunClick:u,runTooltip:d="Run an experiment"}){return o.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[o.jsx("div",{className:"max-w-120 min-w-64 flex-1",children:o.jsx(Bf,{label:"Search experiments",placeholder:"Filter by experiment, dataset, or target",value:e,onSearch:t})}),o.jsxs(us,{children:[o.jsx(Tc,{label:"Status",labelIsHidden:!0,name:"filter-status",options:[...Rvs],value:n,onValueChange:r,className:"whitespace-nowrap"}),o.jsx(Tc,{label:"Dataset",labelIsHidden:!0,name:"filter-dataset",options:i,value:s,onValueChange:a,className:"whitespace-nowrap"}),l&&c&&o.jsxs(oe,{onClick:l,size:"sm",variant:"default",children:[o.jsx(Ps,{className:"size-3"})," Reset"]})]}),u&&o.jsxs(oe,{onClick:u,tooltip:d,variant:"primary",className:"ml-auto shrink-0",children:[o.jsx(hu,{}),"Run Experiment"]})]})}function Fvs(){const[e,t]=g.useState("all"),[n,r]=g.useState({}),{data:s,isLoading:a,error:i}=lh(),{data:l,isLoading:c,error:u}=jm(),{data:d,isLoading:f,error:p}=HQ(),{data:h,isLoading:m,isError:v,error:y}=Ris(n),{data:b,isLoading:x,isError:S,error:k}=HAe(),_=l?.datasets,C=d?.experiments,T=g.useMemo(()=>dvs(b),[b]),E=i||u||p||y||k;return E&&ws(E)?o.jsx(ar,{children:o.jsx(Ys,{})}):E&&Ss(E)?o.jsx(ar,{children:o.jsx(qs,{resource:"evaluation"})}):E?o.jsx(ar,{children:o.jsx(Ui,{title:"Failed to load evaluation data",message:E.message})}):o.jsxs(Ut,{width:"wide",height:"full",children:[o.jsx(Ut.TopArea,{children:o.jsx(Ut.Row,{children:o.jsx(Ut.Column,{children:o.jsx(I4,{preset:e,onPresetChange:t,dateFrom:n.start,dateTo:n.end,onDateChange:(N,I)=>r(A=>I==="from"?{...A,start:N}:{...A,end:N})})})})}),o.jsxs("div",{className:"flex flex-col gap-6",children:[o.jsx(Uxe,{children:o.jsx(Ivs,{scorers:s,datasets:_,experiments:C,avgScore:h?.avgScore??null,prevAvgScore:h?.prevAvgScore??null,totalNeedsReview:T.needsReview,isLoadingScorers:a,isLoadingDatasets:c,isLoadingExperiments:f,isLoadingScores:m,isLoadingReview:x})}),o.jsx(Uas,{summaryData:h?.summaryData??[],overTimeData:h?.overTimeData??[],scorerNames:h?.scorerNames??[],avgScore:h?.avgScore??null,isLoading:m,isError:v}),o.jsxs("div",{className:"grid grid-cols-1 gap-6 lg:grid-cols-2",children:[o.jsx(sms,{experiments:C,isLoading:f,isError:!!p}),o.jsx(Mvs,{experiments:C,datasets:_,isLoading:f,isError:!!p})]}),o.jsx(cvs,{reviewSummary:b,experiments:C,datasets:_,isLoading:x,isError:!!S})]})]})}function zvs(){const[e,t]=g.useState(""),[n,r]=g.useState("all"),[s,a]=g.useState("all"),[i,l]=g.useState(!1),c=Xr(),{data:u,isLoading:d,error:f}=jm(),{data:p,isLoading:h,error:m}=HQ(),{data:v}=HAe(),y=g.useMemo(()=>u?.datasets??[],[u?.datasets]),b=g.useMemo(()=>p?.experiments??[],[p?.experiments]),x=g.useMemo(()=>Pvs(y),[y]),S=g.useMemo(()=>EVt(v),[v]),k=d||h,_=m||f;if(_&&ws(_))return o.jsx(ar,{children:o.jsx(Ys,{})});if(m&&Ss(m))return o.jsx(ar,{children:o.jsx(qs,{resource:"experiments"})});if(f&&Ss(f))return o.jsx(ar,{children:o.jsx(qs,{resource:"datasets"})});if(_)return o.jsx(ar,{children:o.jsx(Ui,{title:"Failed to load experiments",message:_.message})});const C=o.jsx(qAe,{open:i,onOpenChange:l,onSuccess:N=>{c(`/experiments/${N}`)}});if(b.length===0&&!k)return o.jsxs(ar,{children:[o.jsx(Dvs,{onRunExperiment:()=>l(!0)}),C]});const T=n!=="all"||s!=="all"||e!=="",E=()=>{t(""),r("all"),a("all")};return o.jsxs(Ut,{children:[o.jsx(Ut.TopArea,{children:o.jsx(Lvs,{search:e,onSearchChange:t,statusFilter:n,onStatusFilterChange:r,datasetFilter:s,onDatasetFilterChange:a,datasetOptions:x,onReset:E,hasActiveFilters:T,onRunClick:()=>l(!0)})}),o.jsx(Avs,{experiments:b,datasets:y,reviewByExperiment:S,isLoading:k,search:e,statusFilter:n,datasetFilter:s}),C]})}function Yz({label:e,children:t}){return o.jsxs("div",{className:"min-w-0 flex-1 px-6 py-3",children:[o.jsx("div",{className:"text-ui-sm text-neutral2 tracking-widest uppercase",children:e}),o.jsx("div",{className:"text-ui-md text-neutral5 mt-1 flex flex-wrap items-baseline gap-x-1.5",children:t})]})}function Bvs(e){if(e<1e3)return`${e}ms`;if(e<6e4)return`${(e/1e3).toFixed(1).replace(/\.0$/,"")}s`;const t=Math.floor(e/6e4),n=Math.round(e%6e4/1e3);if(t<60)return n>0?`${t}m ${n}s`:`${t}m`;const r=Math.floor(t/60),s=t%60;return s>0?`${r}h ${s}m`:`${r}h`}function Uvs({experiment:e,className:t}){const{Link:n,paths:r}=dn(),{data:s,isLoading:a}=Zg(e.datasetId??""),i=e.startedAt??e.createdAt,l=i?new Date(i):null,c=(()=>{if(e.status==="running")return"Running…";if(!e.startedAt||!e.completedAt)return"—";const u=new Date(e.completedAt).getTime()-new Date(e.startedAt).getTime();return u<0?"—":Bvs(u)})();return o.jsxs("div",{className:K("flex w-full items-stretch divide-x divide-border1 border-y border-border1",t),children:[o.jsx(Yz,{label:"Results",children:(e.failedCount??0)===0&&e.succeededCount===e.totalItems?o.jsx("span",{className:"text-accent1",children:"All passed"}):o.jsxs(o.Fragment,{children:[o.jsxs("span",{className:"font-mono",children:[o.jsx("span",{className:"text-error",children:e.failedCount??0}),o.jsxs("span",{className:"text-neutral3",children:["/",e.totalItems]})]}),o.jsx("span",{children:"failed"})]})}),o.jsx(Yz,{label:"Started",children:l?o.jsxs(o.Fragment,{children:[o.jsx("span",{children:br(l,"MMM d, h:mm a")}),o.jsxs("span",{className:"text-neutral3",children:["· ",SDn(l,{addSuffix:!0})]})]}):o.jsx("span",{children:"—"})}),o.jsx(Yz,{label:"Duration",children:o.jsx("span",{children:c})}),o.jsx(Yz,{label:"Dataset",children:e.datasetId?a?o.jsx(St,{className:"h-4 w-40"}):o.jsxs(o.Fragment,{children:[o.jsxs(n,{href:r.datasetLink(e.datasetId),target:"_blank",rel:"noopener noreferrer",className:"[&>svg]:text-neutral3 flex min-w-0 items-center gap-1.5 hover:underline [&>svg]:size-3.5 [&>svg]:shrink-0",children:[o.jsx("span",{className:"truncate",children:s?.name??e.datasetId}),o.jsx(ds,{})]}),e.datasetVersion!=null&&o.jsxs("span",{className:"text-neutral3 shrink-0",children:["v",e.datasetVersion]}),o.jsxs("span",{className:"text-neutral3 shrink-0",children:["· ",e.totalItems," item",e.totalItems===1?"":"s"]})]}):o.jsx("span",{children:"—"})})]})}function qvs({experiment:e}){const{Link:t,paths:n}=dn(),{data:r}=$m(),{data:s}=Zy(),{data:a}=lh(),{data:i}=UN(e.id,e.status),l=g.useMemo(()=>{if(!i)return;const f=Object.values(i).flat();if(f.length!==0)return f.reduce((p,h)=>p+h.score,0)/f.length},[i]),c=()=>{if(!e.targetId)return null;switch(e.targetType){case"agent":return n.agentLink(e.targetId);case"workflow":return n.workflowLink(e.targetId);case"scorer":return n.scorerLink(e.targetId);default:return"#"}},u=()=>{const f=e.targetId;if(!f)return"External (caller-run)";switch(e.targetType){case"agent":return r?.[f]?.name??f;case"workflow":return s?.[f]?.name??f;case"scorer":return a?.[f]?.scorer?.config?.name??f;default:return f}},d=e.agentVersion&&e.targetType==="agent"&&e.targetId?`${n.agentLink(e.targetId)}/editor?version=${encodeURIComponent(e.agentVersion)}`:null;return o.jsxs(Ut.TopArea,{children:[o.jsxs(Ut.Row,{children:[o.jsx(Ut.Column,{className:"justify-items-start gap-3",children:o.jsxs("div",{className:"flex items-start gap-3",children:[o.jsx(Cgs,{status:e.status,className:"mt-4 h-7"}),o.jsxs(pu,{children:[o.jsx("p",{className:"text-ui-xs text-neutral3 tracking-wider uppercase",children:"Evaluation target"}),o.jsxs(pu.Title,{children:[(()=>{const f=c();return f?o.jsxs(t,{href:f,target:"_blank",rel:"noopener noreferrer",className:K("flex items-center gap-2 transition-colors","hover:text-neutral4 [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-neutral3"),children:[u(),o.jsx(ds,{})]}):u()})(),l!==void 0&&o.jsxs(Xt,{size:"sm",children:["Avg ",l.toFixed(3)]})]}),e.description&&o.jsx(pu.Description,{children:e.description})]})]})}),o.jsx(Ut.Column,{className:"justify-items-end gap-3",children:e.agentVersion&&o.jsxs(Zt,{numOfCol:1,children:[o.jsx(Zt.Key,{children:"Version"}),d?o.jsx(Zt.ValueLink,{href:d,as:t,children:e.agentVersion}):o.jsx(Zt.Value,{children:e.agentVersion})]})})]}),o.jsx(Uvs,{experiment:e,className:"-mx-6 w-auto"})]})}function Kz({children:e}){return o.jsxs(Ut,{height:"full",children:[o.jsx("div",{}),o.jsx(Ut.MainArea,{isCentered:!0,children:e})]})}function Vvs(){const{experimentId:e}=wr(),{data:t,isLoading:n}=HQ(),s=t?.experiments?.find(h=>h.id===e)?.datasetId??"",{data:a,isLoading:i,error:l}=Rxe(s,e??""),{data:c,isLoading:u,setEndOfListElement:d,isFetchingNextPage:f,hasNextPage:p}=MD({datasetId:s,experimentId:e??"",experimentStatus:a?.status});return!e||n||i?null:l&&ws(l)?o.jsx(Kz,{children:o.jsx(Ys,{})}):l&&Ss(l)?o.jsx(Kz,{children:o.jsx(qs,{resource:"datasets"})}):l&&O$t(l)||!n&&!s||!i&&!l&&!a?o.jsx(Kz,{children:o.jsx(_r,{iconSlot:o.jsx(s0e,{}),titleSlot:"Experiment not found",descriptionSlot:`No experiment with id "${e}".`,actionSlot:o.jsxs(oe,{as:ki,to:"/experiments",children:[o.jsx(ed,{}),"Back to Experiments"]})})}):l?o.jsx(Kz,{children:o.jsx(Ui,{title:"Failed to load experiment",message:l instanceof Error?l.message:"An unexpected error occurred. Please try again."})}):o.jsx(xgs,{experimentId:e,datasetId:s,experimentStatus:a.status,results:c??[],isLoadingResults:u,hasNextPage:p,children:o.jsxs("div",{className:"relative h-full overflow-hidden",children:[o.jsxs(Ut,{height:"full",children:[o.jsx(qvs,{experiment:a}),o.jsx(Ut.MainArea,{className:"overflow-visible",children:o.jsx(_gs,{experimentId:e,datasetId:s,experimentStatus:a.status,results:c??[],isLoading:u,setEndOfListElement:d,isFetchingNextPage:f,hasNextPage:p})})]}),o.jsx(Mg,{})]})})}const WAe=e=>o.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 9.45892 8.88606",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:[o.jsx("path",{d:"M8.53702 7.36403C8.98547 7.36403 9.34918 7.70502 9.34918 8.12535C9.34906 8.54559 8.9854 8.88606 8.53702 8.88606H5.6839C5.23552 8.88606 4.87186 8.54559 4.87174 8.12535C4.87174 7.70502 5.23545 7.36403 5.6839 7.36403H8.53702Z",fill:"currentColor"}),o.jsx("path",{d:"M8.53702 3.67209C8.98547 3.67209 9.34918 4.01309 9.34918 4.43342C9.34911 4.8537 8.98543 5.19413 8.53702 5.19413H5.6839C5.23549 5.19413 4.87181 4.8537 4.87174 4.43342C4.87174 4.01309 5.23545 3.67209 5.6839 3.67209H8.53702Z",fill:"currentColor"}),o.jsx("path",{d:"M8.67155 0C9.10635 2.06584e-05 9.45892 0.341006 9.45892 0.761326C9.45878 1.18153 9.10627 1.52201 8.67155 1.52203H2.88163C2.4469 1.52203 2.0944 1.18154 2.09427 0.761326C2.09427 0.340993 2.44681 3.80132e-08 2.88163 0H8.67155Z",fill:"currentColor"}),o.jsx("path",{d:"M0.757606 0.760086V4.01122H3.50594V4.76883H0.759466L0.762566 5.4291C0.76837 6.70703 1.8058 7.73972 3.08374 7.73973H3.67953V8.49796H3.08374C1.38863 8.49795 0.0120204 7.1273 0.00433981 5.4322L0 4.39188V0.760086H0.757606Z",fill:"currentColor"})]});function Iie(e){try{return JSON.stringify(e??{})}catch{return String(e)}}function Hvs({report:e}){const{served:t,unconsumed:n,liveCalls:r,failure:s}=e,a=[...t.map(i=>({outcome:"served",toolName:i.toolName,args:i.args})),...r.map(i=>({outcome:"live",toolName:i.toolName,args:i.args})),...n.map(i=>({outcome:"unconsumed",toolName:i.toolName,args:i.args}))];return o.jsxs("div",{className:"grid gap-2","data-testid":"tool-mock-report",children:[o.jsx(vn.SectionHeading,{icon:o.jsx(Vp,{}),className:"mb-2",children:"Tool Mocks"}),s&&o.jsx(Zn,{variant:"destructive",title:"Mock mismatch",children:o.jsxs(Zn.Message,{children:[o.jsx("span",{className:"block",children:`Tool "${s.toolName}" was called with arguments that did not match an available mock (${s.code}).`}),o.jsxs("span",{className:"mt-1 block font-mono text-xs",children:["Called with: ",Iie(s.args)]}),n.length>0&&o.jsxs("span",{className:"mt-1 block font-mono text-xs",children:["Unconsumed mocks: ",n.map(i=>Iie(i.args)).join(", ")]})]})}),o.jsx("div",{className:"border-border1 divide-border1 divide-y rounded border text-sm",children:a.map((i,l)=>o.jsxs("div",{className:"flex items-center justify-between gap-2 px-3 py-1.5",children:[o.jsxs("span",{className:"min-w-0 truncate",children:[o.jsx("span",{className:"text-neutral4 font-mono",children:i.toolName}),o.jsx("span",{className:"text-neutral3 ml-2 font-mono text-xs",children:Iie(i.args)})]}),o.jsx("span",{className:`shrink-0 rounded px-2 py-0.5 text-xs ${Wvs(i.outcome)}`,children:i.outcome})]},`${i.outcome}-${i.toolName}-${l}`))})]})}function Wvs(e){switch(e){case"served":return"bg-accent1/10 text-accent1";case"live":return"bg-orange-500/10 text-orange-400";case"unconsumed":return"bg-neutral3/10 text-neutral4"}}function Zvs({result:e,scores:t,onPrevious:n,onNext:r,onClose:s,onShowTrace:a,onOpenInReview:i,onScoreClick:l,featuredScoreId:c,onFlagForReview:u,collapsed:d=!1,scorePanelSlot:f}){const p=!!e?.error,h=Xz(e?.input),m=Xz(e?.output),v=Xz(e?.groundTruth),y=u&&e.status!=="needs-review"&&e.status!=="complete",b=Array.isArray(e.tags)?e.tags:[];return o.jsxs(vn,{collapsed:d,children:[o.jsxs(vn.Header,{children:[o.jsxs(vn.Heading,{children:["Result ",o.jsxs("b",{children:["# ",e.id.length>12?`${e.id.slice(0,12)}…`:e.id]})]}),o.jsxs(us,{className:"ml-auto shrink-0",children:[o.jsx(vn.NextPrevNav,{onPrevious:n,onNext:r,previousLabel:"Previous result",nextLabel:"Next result"}),e.traceId&&o.jsxs(oe,{size:"md",onClick:a,children:[o.jsx(WAe,{}),"Trace"]}),o.jsx(vn.CloseButton,{onClick:s,tooltip:"Close result panel"})]})]}),!d&&o.jsx(Gvs,{scorePanelSlot:f,children:o.jsxs(vn.Content,{children:[o.jsxs("div",{className:"mb-6 grid gap-4",children:[o.jsxs(Zt,{children:[o.jsx(Zt.Key,{children:"Item Id"}),o.jsx(Zt.ValueWithCopyBtn,{copyTooltip:"Copy Item Id to clipboard",copyValue:e.itemId,children:e.itemId}),o.jsx(Zt.Key,{children:"Created"}),o.jsx(Zt.Value,{children:br(new Date(e.createdAt),"MMM d, yyyy 'at' h:mm a")})]}),p&&o.jsx(Zn,{variant:"destructive",title:"Error",children:o.jsx(Zn.Message,{children:Xz(e?.error&&typeof e.error=="object"?e.error.message:e?.error)})}),t&&t.length>0&&o.jsxs(be,{columns:"1fr 1fr",children:[o.jsxs(be.Top,{children:[o.jsx(be.TopCell,{children:"Scorer"}),o.jsx(be.TopCell,{children:"Score"})]}),t.map(x=>o.jsxs(be.RowButton,{featured:c===x.id,onClick:()=>l?.(x.id),children:[o.jsx(be.Cell,{children:x.scorerId}),o.jsx(be.TextCell,{font:"mono",children:x.score.toFixed(3)})]},x.id))]}),e.toolMockReport&&o.jsx(Hvs,{report:e.toolMockReport}),(e.status||b.length>0||y)&&o.jsxs("div",{className:"grid gap-2",children:[o.jsx(vn.SectionHeading,{icon:o.jsx(tI,{}),className:"mb-2",children:"Review"}),(e.status||b.length>0)&&o.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.status&&o.jsx("span",{className:`rounded-full px-2 py-0.5 text-xs font-medium ${e.status==="needs-review"?"bg-orange-500/10 text-orange-400":e.status==="complete"?"bg-accent1/10 text-accent1":"bg-neutral3/10 text-neutral4"}`,children:e.status}),b.map(x=>o.jsx("span",{className:"bg-surface4 text-neutral4 rounded px-2 py-0.5 text-xs",children:x},x))]}),y&&o.jsx("div",{children:o.jsxs(oe,{size:"sm",onClick:()=>u(e.id),children:[o.jsx(yO,{}),"Flag for Review"]})}),e.status==="needs-review"&&i&&o.jsx("div",{children:o.jsxs(oe,{size:"sm",onClick:i,children:[o.jsx(ds,{}),"Review"]})})]})]}),o.jsxs("div",{className:"grid gap-3",children:[o.jsx(vn.CodeSection,{title:"Input",icon:o.jsx(gV,{}),codeStr:h}),o.jsx(vn.CodeSection,{title:"Output",icon:o.jsx(cx,{}),codeStr:m}),o.jsx(vn.CodeSection,{title:"Ground Truth",icon:o.jsx(ict,{}),codeStr:v})]})]})})]})}function Gvs({scorePanelSlot:e,children:t}){return e?o.jsxs("div",{className:"grid min-h-0 flex-1 grid-cols-[1fr_1fr]",children:[o.jsx("div",{className:"flex min-h-0 flex-col overflow-hidden",children:t}),o.jsx("div",{className:"animate-in border-border1 fade-in-0 flex min-h-0 flex-col overflow-hidden border-l duration-300",children:e})]}):o.jsx(o.Fragment,{children:t})}function Xz(e){return e==null?"-":typeof e=="string"?e:JSON.stringify(e,null,2)}function Qvs(e){const t=e.scorer;return t?.hasJudge===!1?!0:t?.hasJudge===!0?!1:!e.preprocessPrompt&&!e.analyzePrompt&&!e.generateScorePrompt&&!e.generateReasonPrompt}function Yvs({score:e,onNext:t,onPrevious:n,onClose:r,onShowTrace:s,collapsed:a,onCollapsedChange:i,className:l}){const[c,u]=g.useState(!1),d=a??c,f=i??u,p=Qvs(e),h=p?"N/A — code-based scorer":"N/A — step not configured";return o.jsxs(vn,{collapsed:d,className:l,children:[o.jsxs(vn.Header,{children:[o.jsxs(vn.Heading,{children:["Score ",o.jsx("b",{children:e.scorerId})]}),o.jsxs(us,{className:"ml-auto shrink-0",children:[i&&o.jsx(oe,{size:"md",tooltip:d?"Expand panel":"Collapse panel",onClick:()=>f(!d),children:d?o.jsx(qlt,{}):o.jsx(CQt,{})}),(n||t)&&o.jsx(vn.NextPrevNav,{onPrevious:n,onNext:t,previousLabel:"Previous score",nextLabel:"Next score"}),s&&e.traceId&&o.jsxs(oe,{size:"md",onClick:s,children:[o.jsx(WAe,{}),"Trace"]}),o.jsx(vn.CloseButton,{onClick:r,tooltip:"Close score panel"})]})]}),!d&&o.jsx(vn.Content,{children:o.jsxs("div",{className:"grid gap-3",children:[o.jsx(vn.CodeSection,{title:`Score: ${e.score}`,icon:o.jsx(lm,{}),codeStr:e.reason||h,simplified:!0}),!p&&o.jsxs(o.Fragment,{children:[o.jsx(vn.CodeSection,{title:"Preprocess Prompt",icon:o.jsx(jh,{}),codeStr:e.preprocessPrompt||h,simplified:!0}),o.jsx(vn.CodeSection,{title:"Analyze Prompt",icon:o.jsx(jh,{}),codeStr:e.analyzePrompt||h,simplified:!0}),o.jsx(vn.CodeSection,{title:"Generate Score Prompt",icon:o.jsx(jh,{}),codeStr:e.generateScorePrompt||h,simplified:!0}),o.jsx(vn.CodeSection,{title:"Generate Reason Prompt",icon:o.jsx(jh,{}),codeStr:e.generateReasonPrompt||h,simplified:!0})]})]})})]})}function Kvs(){const{itemId:e}=wr();return e?o.jsx(Xvs,{itemId:e},e):null}function Xvs({itemId:e}){const{experimentId:t,experimentStatus:n,results:r,isLoadingResults:s,hasNextPage:a,close:i,openInReview:l,goToPreviousItem:c,goToNextItem:u}=kVt(),d=g.useMemo(()=>r.find(M=>M.itemId===e)??null,[r,e]),{data:f}=UN(t,n),p=d?f?.[d.itemId]:void 0,[h,m]=g.useState(null),[v,y]=g.useState(void 0),[b,x]=g.useState(null),[S,k]=g.useState(!1),[_,C]=g.useState(!1),T=p?.find(M=>M.id===b)??null,E=g.useCallback(M=>{x(G=>M===G?null:M),m(null),y(void 0)},[]),N=()=>{if(!b||!p)return;const M=p.findIndex(G=>G.id===b);if(M>=0&&M<p.length-1)return()=>x(p[M+1].id)},I=()=>{if(!b||!p)return;const M=p.findIndex(G=>G.id===b);if(M>0)return()=>x(p[M-1].id)},{data:A,isLoading:R}=Egs(h),L=A?.spans,{data:D,isLoading:F}=qQ(h,v),H=D?.span,{handlePreviousSpan:B,handleNextSpan:z}=Dqt(L,v??null,y),V=(()=>{const M=[],G=!!h;return M.push(S?"auto":G?"2fr":"1fr"),G&&M.push(_?"auto":"3fr"),G&&v&&M.push("3fr"),M.join(" ")})();return o.jsx(BAe,{label:`Experiment item ${e}`,wide:!!T&&!S,children:d?o.jsxs("div",{className:"[&>section]:bg-surface3 grid h-full min-h-0 content-start gap-4 p-3 [&>section]:rounded-lg [&>section]:shadow-lg",style:{gridTemplateRows:V},children:[o.jsx(Zvs,{result:d,scores:p,onPrevious:c,onNext:u,onClose:i,onScoreClick:E,featuredScoreId:b,onShowTrace:()=>{d.traceId&&(m(d.traceId),y(void 0),x(null),k(!0),C(!1))},onOpenInReview:()=>l(d.id),collapsed:S,scorePanelSlot:T?o.jsx(Yvs,{score:T,onNext:N(),onPrevious:I(),onClose:()=>x(null),onShowTrace:()=>{T.traceId&&(m(T.traceId),y(void 0),k(!0),C(!1))},className:"rounded-none border-0 bg-transparent"}):null}),h&&o.jsxs(o.Fragment,{children:[o.jsx(oVt,{traceId:h,spans:L,isLoading:R,onClose:()=>{m(null),y(void 0),k(!1)},onSpanSelect:y,initialSpanId:v??null,placement:"traces-list",showUnavailableFeaturesMsg:!1,collapsed:_,onCollapsedChange:C,LinkComponent:iy,traceHref:`/traces?traceId=${encodeURIComponent(h)}`}),v&&o.jsx(Nqt,{traceId:h,spanId:v,span:H,isLoading:F,onPrevious:B,onNext:z,onClose:()=>y(void 0)})]})]}):s||a?o.jsx("div",{className:"h-full p-3",children:o.jsx("div",{className:"border-border1 bg-surface3 flex h-full items-center justify-center rounded-lg border shadow-lg",children:o.jsx(qt,{})})}):o.jsx("div",{className:"h-full p-3",children:o.jsx("div",{className:"border-border1 bg-surface3 flex h-full items-center justify-center rounded-lg border shadow-lg",children:o.jsx(_r,{iconSlot:o.jsx(s0e,{}),titleSlot:"Item not found",descriptionSlot:`No loaded result for item "${e}".`,actionSlot:o.jsx(oe,{onClick:i,children:"Close"})})})})})}function Jvs({connection:e,isAdmin:t,disconnectPending:n,onDisconnect:r}){return o.jsxs("li",{className:"flex items-center justify-between border-b py-2",children:[o.jsxs("div",{children:[o.jsx("div",{className:"font-mono text-xs",children:e.connectionId}),o.jsxs("div",{className:"text-xs text-gray-500",children:[e.label??"(no label)"," · ",e.status,e.scope?` · ${e.scope}`:"",t&&e.authorId?` · author: ${e.authorId}`:""]})]}),o.jsx("button",{type:"button",className:"text-red-600 underline disabled:opacity-50",onClick:r,disabled:n,children:"Disconnect"})]})}function TVt({connections:e,isAdmin:t,disconnectPending:n,onDisconnect:r}){return o.jsx("ul",{className:"space-y-1",children:e.map(s=>o.jsx(Jvs,{connection:s,isAdmin:t,disconnectPending:n,onDisconnect:()=>r(s.connectionId)},s.connectionId))})}function eys({groups:e,isAdmin:t,disconnectPending:n,onDisconnect:r}){return o.jsx("div",{className:"space-y-4",children:e.map(([s,a])=>o.jsxs("div",{children:[o.jsx("h3",{className:"text-sm font-semibold text-gray-700","data-testid":`integration-author-group-${s}`,children:s==="shared"?"Shared":`Owned by ${s}`}),o.jsx(TVt,{connections:a,isAdmin:t,disconnectPending:n,onDisconnect:r})]},s))})}function tys({providerId:e,toolkit:t,connections:n,groupedByAuthor:r,isAdmin:s,isLoading:a,error:i,disconnectPending:l,disconnectError:c,onDisconnect:u}){return o.jsxs("div",{className:"space-y-2 border rounded p-4",children:[o.jsx("h2",{className:"text-lg font-semibold",children:"Existing connections"}),!e||!t?o.jsx("p",{className:"text-gray-500",children:"Pick a provider and toolkit to list connections."}):a?o.jsx("p",{className:"text-gray-500",children:"Loading…"}):i?o.jsx("p",{className:"text-red-600",children:String(i)}):n.length===0?o.jsx("p",{className:"text-gray-500",children:"No connections."}):r?o.jsx(eys,{groups:r,isAdmin:s,disconnectPending:l,onDisconnect:u}):o.jsx(TVt,{connections:n,isAdmin:s,disconnectPending:l,onDisconnect:u}),c?o.jsx("p",{className:"text-red-600",children:String(c)}):null]})}function nys({providers:e,toolkits:t,providerId:n,toolkit:r,label:s,providersLoading:a,providersError:i,toolkitsLoading:l,toolkitsError:c,authorizePending:u,authorizeError:d,authorizedConnection:f,onProviderChange:p,onToolkitChange:h,onLabelChange:m,onConnect:v}){return o.jsxs("div",{className:"space-y-4 border rounded p-4",children:[o.jsxs("div",{className:"space-y-1",children:[o.jsx("label",{className:"block font-medium",htmlFor:"provider-select",children:"Provider"}),o.jsxs("select",{id:"provider-select",className:"border rounded px-2 py-1 w-full",value:n,onChange:y=>p(y.target.value),disabled:a,children:[o.jsx("option",{value:"",children:"— select provider —"}),e.map(y=>o.jsxs("option",{value:y.id,children:[y.displayName??y.name," (",y.id,")"]},y.id))]}),a&&o.jsx("span",{className:"text-gray-500",children:"Loading providers…"}),i?o.jsx("span",{className:"text-red-600",children:String(i)}):null]}),o.jsxs("div",{className:"space-y-1",children:[o.jsx("label",{className:"block font-medium",htmlFor:"toolkit-select",children:"Toolkit"}),o.jsxs("select",{id:"toolkit-select",className:"border rounded px-2 py-1 w-full",value:r,onChange:y=>h(y.target.value),disabled:!n||l,children:[o.jsx("option",{value:"",children:"— select toolkit —"}),t.map(y=>o.jsxs("option",{value:y.slug,children:[y.name," (",y.slug,")"]},y.slug))]}),l&&o.jsx("span",{className:"text-gray-500",children:"Loading toolkits…"}),c?o.jsx("span",{className:"text-red-600",children:String(c)}):null]}),o.jsxs("div",{className:"space-y-1",children:[o.jsx("label",{className:"block font-medium",htmlFor:"label-input",children:"Label (optional)"}),o.jsx("input",{id:"label-input",type:"text",className:"border rounded px-2 py-1 w-full",placeholder:"My personal Gmail",value:s,onChange:y=>m(y.target.value),disabled:!n||!r})]}),o.jsx("button",{type:"button",className:"bg-blue-600 text-white rounded px-4 py-2 disabled:opacity-50",onClick:v,disabled:!n||!r||u,children:u?"Authorizing…":"Connect"}),d?o.jsx("p",{className:"text-red-600",children:String(d)}):null,f&&o.jsxs("p",{className:"text-green-700",children:["Authorized: ",f.connectionId," (status: ",f.status,")"]})]})}const ett=e=>e.authorId?.trim()||"shared",rys=(e,t)=>{if(!t||new Set(e.map(ett)).size<=1)return null;const r=new Map;for(const a of e){const i=ett(a);r.set(i,[...r.get(i)??[],a])}const s=Array.from(r.entries());return s.sort(([a],[i])=>a==="shared"?1:i==="shared"?-1:a.localeCompare(i)),s},sys=["*","tool-providers:*","tool-providers:admin"];function ays(){const{data:e}=Pm();return e?.permissions?.some(t=>sys.includes(t))??!1}function iys(){const[e,t]=g.useState(""),[n,r]=g.useState(""),[s,a]=g.useState(""),i=QI(),l=GZ(e||null),c=e3t(e||null,n||null),u=JDt(),d=YDt(),f=ays(),p=i.data?.providers??[],h=l.data?.data??[],m=g.useMemo(()=>c.data?.items??[],[c.data?.items]),v=g.useMemo(()=>rys(m,f),[m,f]),y=S=>{t(S),r("")},b=()=>{!e||!n||u.mutate({providerId:e,toolkit:n,label:s.trim()||null},{onSuccess:()=>{a(""),c.refetch()}})},x=S=>{d.mutate({providerId:e,connectionId:S})};return o.jsxs("div",{className:"p-6 max-w-3xl space-y-6 text-sm",children:[o.jsx("h1",{className:"text-2xl font-semibold",children:"Integrations"}),o.jsx("p",{className:"text-gray-500",children:"Minimal page to verify the ToolProvider backend. Pick a provider and toolkit, then connect."}),o.jsx(nys,{providers:p,toolkits:h,providerId:e,toolkit:n,label:s,providersLoading:i.isLoading,providersError:i.error,toolkitsLoading:l.isLoading,toolkitsError:l.error,authorizePending:u.isPending,authorizeError:u.error,authorizedConnection:u.data,onProviderChange:y,onToolkitChange:r,onLabelChange:a,onConnect:b}),o.jsx(tys,{providerId:e,toolkit:n,connections:m,groupedByAuthor:v,isAdmin:f,isLoading:c.isLoading,error:c.error,disconnectPending:d.isPending,disconnectError:d.error,onDisconnect:x})]})}function oys({title:e,description:t,errorBanner:n,children:r}){return o.jsx("div",{"data-testid":"login-page",className:"bg-surface1 flex min-h-screen items-center justify-center",children:o.jsxs("div",{className:"w-full max-w-sm space-y-6",children:[o.jsxs("div",{className:"flex flex-col items-center space-y-2",children:[o.jsx(rm,{className:"h-10 w-10"}),o.jsx("h1",{className:"text-neutral6 text-xl font-semibold",children:e})]}),t,n,r]})})}function jVt({redirectUri:e,onSuccess:t,initialMode:n="signin",errorMessage:r}){const{data:s,isLoading:a}=oc(),{mutate:i,isPending:l,error:c}=SPr(),{mutate:u,isPending:d,error:f}=OPr(),{mutate:p,isPending:h}=nMt(),[m,v]=g.useState(n),[y,b]=g.useState(""),[x,S]=g.useState(""),[k,_]=g.useState("");if(a)return o.jsx("div",{className:"bg-surface1 flex min-h-screen items-center justify-center",children:o.jsx("div",{className:"text-neutral3",children:"Loading..."})});if(!s?.enabled||!s?.login)return o.jsx("div",{className:"bg-surface1 flex min-h-screen items-center justify-center",children:o.jsx("div",{className:"text-neutral3",children:"Authentication is not configured"})});const{login:C}=s,T=C.type==="sso"||C.type==="both",E=C.type==="credentials"||C.type==="both",N=C.sso,I=C.signUpEnabled!==!1,A=m==="signin"||!I,R=A?l:d,L=A?c:f,D=()=>{t?t():e?window.location.href=e:window.location.href=CQ("/")},F=M=>{M.preventDefault(),A?i({email:x,password:k},{onSuccess:D}):u({email:x,password:k,name:y||void 0},{onSuccess:D})},H=()=>{p({redirectUri:e},{onSuccess:M=>{window.location.href=M.url}})},B=()=>{v(A?"signup":"signin")},z=C.description?o.jsxs("div",{className:"border-border1 bg-surface1 flex items-start gap-2.5 rounded-md border p-3",children:[o.jsx(jf,{className:"text-neutral4 mt-0.5 h-4 w-4 shrink-0"}),o.jsx("p",{className:"text-neutral3 text-sm",children:C.description})]}):null,V=r?o.jsx("div",{className:"rounded-md bg-red-500/10 p-3 text-sm text-red-400",children:r}):null;return o.jsxs(oys,{title:A?"Sign in to Mastra Studio":"Create your account",description:z,errorBanner:V,children:[E&&o.jsxs("form",{onSubmit:F,className:"space-y-4",children:[!A&&o.jsxs("div",{className:"space-y-2",children:[o.jsx("label",{htmlFor:"name",className:"text-neutral4 block text-sm",children:"Name"}),o.jsx(An,{id:"name",type:"text",value:y,onChange:M=>b(M.target.value),placeholder:"Your name",variant:"default",size:"lg"})]}),o.jsxs("div",{className:"space-y-2",children:[o.jsx("label",{htmlFor:"email",className:"text-neutral4 block text-sm",children:"Email"}),o.jsx(An,{id:"email",type:"email",value:x,onChange:M=>S(M.target.value),placeholder:"you@example.com",required:!0,variant:"default",size:"lg"})]}),o.jsxs("div",{className:"space-y-2",children:[o.jsx("label",{htmlFor:"password",className:"text-neutral4 block text-sm",children:"Password"}),o.jsx(An,{id:"password",type:"password",value:k,onChange:M=>_(M.target.value),placeholder:A?"Enter your password":"Create a password",required:!0,variant:"default",size:"lg"})]}),L&&o.jsx("div",{className:"rounded-md bg-red-500/10 p-3 text-sm text-red-400",children:L.message}),o.jsx(oe,{type:"submit",disabled:R,className:"w-full",size:"lg",children:R?A?"Signing in...":"Creating account...":A?"Sign in":"Create account"}),I&&o.jsxs("div",{className:"text-center text-sm",children:[o.jsx("span",{className:"text-neutral3",children:A?"Don't have an account? ":"Already have an account? "}),o.jsx("button",{type:"button",onClick:B,className:"text-neutral6 hover:underline",children:A?"Sign up":"Sign in"})]})]}),T&&E&&o.jsxs("div",{className:"relative",children:[o.jsx("div",{className:"absolute inset-0 flex items-center",children:o.jsx("div",{className:"border-border1 w-full border-t"})}),o.jsx("div",{className:"relative flex justify-center text-sm",children:o.jsx("span",{className:"bg-surface1 text-neutral3 px-2",children:"or continue with"})})]}),T&&N&&o.jsxs(oe,{onClick:H,disabled:h,className:"w-full",size:"lg",variant:"outline",children:[N.icon&&o.jsx("span",{className:"mr-2",children:N.icon}),h?"Redirecting...":N.text||"Sign in"]})]})}function lys(){const[e]=ti(),t=Xr(),n=e.get("redirect")||"/",s=e.get("mode")==="signup"?"signup":"signin",a=e.get("error_description")||e.get("error")||null,i=()=>{n.startsWith("http")?window.location.href=n:t(n,{replace:!0})};return o.jsx(jVt,{redirectUri:n,onSuccess:i,initialMode:s,errorMessage:a})}function cys({collapsed:e,children:t}){return o.jsx("section",{className:K("flex flex-col overflow-hidden rounded-xl border border-border1 bg-surface2",e?"h-auto":"h-full"),children:t})}function uys({onClick:e,tooltip:t="Close panel",className:n}){return o.jsx(oe,{size:"md",onClick:e,"aria-label":"Close Panel",tooltip:t,className:n,children:o.jsx(Ac,{})})}function dys(){return xI({settings:{fontFamily:"var(--font-mono)",fontSize:"0.75rem",lineHighlight:"transparent",gutterBackground:"transparent",gutterForeground:"#939393",background:"transparent"},styles:[{tag:[de.className,de.propertyName]}]})}function fys(){const e=At.theme({"&":{backgroundColor:"transparent",color:"var(--neutral6)",fontSize:"0.75rem"},"&.cm-editor .cm-scroller":{fontFamily:"var(--font-mono)"},".cm-gutters":{backgroundColor:"transparent",color:"var(--neutral2)",borderRight:"none"},".cm-content":{color:"var(--neutral6)",caretColor:"var(--neutral6)"},".cm-activeLine":{backgroundColor:"transparent"},".cm-activeLineGutter":{backgroundColor:"transparent"},".cm-cursor, .cm-dropCursor":{borderLeftColor:"var(--neutral6)"}}),t=Gg.define([{tag:[de.comment,de.bracket],color:"var(--neutral2)"},{tag:[de.string,de.meta,de.regexp],color:"var(--accent1)"},{tag:[de.atom,de.bool,de.special(de.variableName)],color:"var(--accent6)"},{tag:[de.keyword,de.operator,de.tagName],color:"var(--accent2)"},{tag:[de.function(de.propertyName),de.propertyName],color:"var(--accent5)"},{tag:[de.definition(de.variableName),de.function(de.variableName),de.className,de.attributeName],color:"var(--accent3)"},{tag:[de.variableName,de.number],color:"var(--accent5)"},{tag:[de.name,de.quote],color:"var(--accent1)"}]);return[e,rS(t)]}const pys=()=>{const e=K_().resolvedTheme==="dark";return g.useMemo(()=>e?dys():fys(),[e])};function hys({codeStr:e="",title:t,icon:n,simplified:r=!1,className:s}){const a=pys(),[i,l]=g.useState(!1),c=g.useMemo(()=>{try{const f=JSON.parse(e);return qxe(f||"")}catch{return!1}},[e]),u=i?e?.replace(/\\n/g,`
|
|
643
643
|
`):e,d=r||i;return!e||e==="null"?null:o.jsxs("div",{className:K("flex flex-col gap-2",s),children:[o.jsxs("div",{className:"flex items-center justify-between",children:[o.jsxs("div",{className:K("flex items-center gap-1.5 text-ui-xs tracking-widest text-neutral2 uppercase","[&>svg]:size-3.5"),children:[n,t]}),o.jsxs(us,{children:[o.jsx(Sa,{content:e||"No content",size:"sm"}),c&&o.jsx(oe,{size:"sm","aria-label":i?"Show escaped newlines":"Show multiline text",onClick:()=>l(f=>!f),children:i?o.jsx(Y$,{}):o.jsx(z7,{})})]})]}),o.jsx("div",{className:"border-border1 bg-surface3 text-ui-sm text-neutral4 max-h-[30vh] overflow-hidden overflow-y-auto rounded-lg border p-3 break-all dark:border-white/10 dark:bg-black/20",children:d?o.jsx("div",{className:"text-neutral4 font-mono break-all",children:o.jsx("pre",{className:"text-wrap",children:u})}):o.jsx(Xu,{extensions:[Qj(),At.lineWrapping],theme:a,value:e,editable:!1})})]})}function qxe(e){if(typeof e=="string"){const t=e.indexOf(`
|
|
644
|
-
`);return t!==-1&&t!==e.length-1}else{if(Array.isArray(e))return e.some(t=>qxe(t));if(e&&typeof e=="object")return Object.values(e).some(t=>qxe(t))}return!1}function mys({children:e}){return o.jsx("div",{className:"flex-1 overflow-y-auto p-4",children:e})}function gys({className:e,children:t}){return o.jsx("div",{className:K("mx-4 flex items-center justify-between gap-2 border-b border-border1 py-3",e),children:t})}function vys({className:e,children:t}){return o.jsx("h3",{className:K("flex gap-2 text-ui-md text-neutral3 [&>b]:font-normal [&>b]:text-neutral2",e),children:t})}function yys({className:e,children:t}){return o.jsx("dl",{className:K("grid grid-cols-[auto_1fr] gap-x-4 gap-y-1.5",e),children:t})}function bys({className:e,children:t}){return o.jsx("dt",{className:K("shrink-0 py-0.5 text-ui-smd text-neutral2",e),children:t})}function xys({className:e,children:t}){return o.jsx("dd",{className:K("min-w-0 truncate py-0.5 text-ui-smd text-neutral3",e),children:t})}function wys({className:e,children:t}){return o.jsx("dt",{className:K("col-span-2 py-3 text-ui-sm tracking-widest text-neutral2 uppercase",e),children:t})}const Sys=Object.assign(yys,{Key:bys,Value:xys,Header:wys});function kys({children:e}){return o.jsxs("div",{className:"text-ui-sm text-neutral3 flex items-center justify-center gap-2 px-4 py-6",children:[o.jsx(qt,{size:"sm",variant:"pulse",className:"text-neutral3"})," ",e??"Loading..."]})}function Oys({children:e}){return o.jsx("p",{className:"text-ui-sm text-neutral2 px-4 py-6",children:e??"No data found."})}const Li=Object.assign(cys,{Header:gys,Heading:vys,CloseButton:uys,LoadingData:kys,NoData:Oys,Content:mys,KeyValueList:Sys,CodeSection:hys}),pp=Li.KeyValueList;function _ys(e){return e instanceof Date?e:new Date(e)}function Cys({log:e,onClose:t,onTraceClick:n,onSpanClick:r,onPrevious:s,onNext:a,collapsed:i,onCollapsedChange:l}){const[c,u]=g.useState(!1),d=i??c,f=l??u,p=_ys(e.timestamp),h=e.traceId,m=e.spanId;return o.jsxs(Li,{collapsed:d,children:[o.jsxs(Li.Header,{children:[o.jsxs(Li.Heading,{children:["Log ",o.jsx("b",{children:br(p,"MMM dd, HH:mm:ss.SSS")})]}),o.jsxs(us,{className:"ml-auto shrink-0",children:[l&&o.jsx(oe,{size:"md",tooltip:d?"Expand panel":"Collapse panel",onClick:()=>f(!d),children:d?o.jsx(EH,{}):o.jsx(W1e,{})}),o.jsxs(us,{spacing:"close",children:[o.jsx(oe,{size:"md",tooltip:"Previous log",onClick:s,disabled:!s,children:o.jsx(_H,{})}),o.jsx(oe,{size:"md",tooltip:"Next log",onClick:a,disabled:!a,children:o.jsx(kH,{})})]}),o.jsx(Li.CloseButton,{onClick:t})]})]}),!d&&o.jsxs(Li.Content,{children:[o.jsx("p",{className:"text-ui-md text-neutral4 font-mono wrap-break-word whitespace-pre-wrap",children:e.message}),(h||m)&&o.jsxs("div",{className:K("my-8 grid gap-2","[&>button]:justify-between [&>button]:overflow-hidden"),children:[h&&o.jsxs(us,{spacing:"close",className:"w-full min-w-0",children:[o.jsxs(oe,{size:"md",className:"min-w-0 flex-1 overflow-hidden",onClick:()=>n?.(h),children:[o.jsx(B7,{}),o.jsx("span",{children:"Trace"}),o.jsxs("span",{className:"text-ui-sm text-neutral2 ml-auto min-w-0 truncate",children:["# ",h]})]}),o.jsx(Sa,{content:h,size:"md",tooltip:"Copy Trace ID to clipboard"})]}),m&&o.jsxs(us,{spacing:"close",className:"w-full min-w-0",children:[o.jsxs(oe,{size:"md",className:"min-w-0 flex-1 overflow-hidden",disabled:!h||!r,onClick:()=>h&&r?.(h,m),children:[o.jsx(B7,{}),o.jsx("span",{children:"Span"}),o.jsxs("span",{className:"text-ui-sm text-neutral2 ml-auto min-w-0 truncate",children:["# ",m]})]}),o.jsx(Sa,{content:m,size:"md",tooltip:"Copy Span ID to clipboard"})]})]}),o.jsxs(pp,{className:"mb-6",children:[e.entityType&&o.jsxs(o.Fragment,{children:[o.jsx(pp.Key,{children:"Entity Type"}),o.jsx(pp.Value,{children:e.entityType})]}),e.entityName&&o.jsxs(o.Fragment,{children:[o.jsx(pp.Key,{children:"Entity Name"}),o.jsx(pp.Value,{children:e.entityName})]}),e.serviceName&&o.jsxs(o.Fragment,{children:[o.jsx(pp.Key,{children:"Service"}),o.jsx(pp.Value,{children:e.serviceName})]}),e.environment&&o.jsxs(o.Fragment,{children:[o.jsx(pp.Key,{children:"Environment"}),o.jsx(pp.Value,{children:e.environment})]}),e.source&&o.jsxs(o.Fragment,{children:[o.jsx(pp.Key,{children:"Source"}),o.jsx(pp.Value,{children:e.source})]}),e.metadata&&Object.keys(e.metadata).length>0&&o.jsx(o.Fragment,{children:Object.entries(e.metadata).map(([v,y])=>o.jsxs(g.Fragment,{children:[o.jsx(pp.Key,{children:v}),o.jsx(pp.Value,{children:String(y)})]},v))})]}),e.data&&Object.keys(e.data).length>0&&o.jsx(Li.CodeSection,{title:"Data",codeStr:JSON.stringify(e.data,null,2),className:"mt-6"})]})]})}function Eys({error:e,resource:t,errorTitle:n}){if(ws(e))return o.jsx(Ys,{});if(Ss(e))return o.jsx(qs,{resource:t});if(P4(e))return o.jsx(_r,{iconSlot:o.jsx(U7,{}),titleSlot:"Observability storage is not available",descriptionSlot:"The observability storage domain is disabled or not configured. Enable it in your storage configuration to view logs in Studio."});if(R4(e,"logs"))return o.jsx(_r,{iconSlot:o.jsx(U7,{}),titleSlot:"Logs are not available with your current storage",descriptionSlot:"The configured observability storage provider does not support listing logs. Switch to a storage provider with logs support to view runtime logs in Studio."});const r=e instanceof Error?e.message:void 0;return o.jsx(Ui,{title:n,message:r??"Unknown error"})}function Tys({listSlot:e,logPanelSlot:t,tracePanelSlot:n,spanPanelSlot:r,logCollapsed:s}){const a=!!t;return o.jsxs("div",{className:K("grid h-full min-h-0 items-start gap-4",a?"grid-cols-[1fr_1fr]":"grid-cols-[1fr]"),children:[e,a&&o.jsxs("div",{className:K("grid h-full gap-4 overflow-auto",n&&r?s?"grid-rows-[auto_1fr_1fr]":"grid-rows-[1fr_1fr_1fr]":n?s?"grid-rows-[auto_1fr]":"grid-rows-[1fr_1fr]":s?"grid-rows-[auto]":"grid-rows-[1fr]"),children:[t,n,r]})]})}const jys={debug:{label:"DEBUG",color:"#71717a"},info:{label:"INFO",color:"#60a5fa"},warn:{label:"WARN",color:"#facc15"},error:{label:"ERROR",color:"#f87171"},fatal:{label:"FATAL",color:"#dc2626"}};function Nys({level:e}){const t=jys[e];return o.jsx(To,{children:o.jsx("span",{className:"text-ui-sm font-semibold uppercase",style:{color:t.color},children:t.label})})}function Iys({entityType:e,className:t}){const n=K("size-3.5 shrink-0 text-neutral2",t);switch(e.toLowerCase()){case"agent":return o.jsx(Oo,{className:n,"aria-hidden":!0});case"workflow":case"workflow_run":return o.jsx(rd,{className:n,"aria-hidden":!0});case"tool":return o.jsx(Mf,{className:n,"aria-hidden":!0});default:return null}}function Ays({entityType:e,entityName:t}){const n=e??"";return o.jsxs(To,{className:"flex min-w-0 items-center gap-2",children:[o.jsx(Iys,{entityType:n}),t?o.jsx("span",{className:"text-ui-smd min-w-0 truncate",children:t}):"-"]})}function Rys({message:e}){return o.jsx(To,{className:"text-ui-smd text-neutral4 min-w-0 truncate font-mono",children:e})}function Pys({data:e}){if(!e||Object.keys(e).length===0)return o.jsx(To,{children:null});const t=Object.entries(e).map(([n,r])=>{if(typeof r=="string")return`${n}: ${r}`;try{return`${n}: ${JSON.stringify(r)}`}catch{return`${n}: <unserializable>`}}).join(", ");return o.jsx(DTe,{font:"mono",children:t})}const Ql=Object.assign(q4,{Top:nG,TopCell:mC,TopCellWithTooltip:rG,TopCellSmart:U3t,RowWrapper:BTe,RowButton:V4,RowLink:B3t,Spacer:UTe,NoMatch:tG,DateCell:LTe,TimeCell:FTe,LevelCell:Nys,EntityCell:Ays,MessageCell:Rys,DataCell:Pys,NextPageLoading:eG}),ttt="6rem 9rem 5rem 10rem minmax(8rem,1fr) minmax(8rem,1fr)",$ys=36,Mys=8;function Dys({logs:e,isLoading:t,isFetchingNextPage:n,hasNextPage:r,setEndOfListElement:s,logIdMap:a,featuredLogId:i,onLogClick:l}){const c=g.useRef(null),u=$qt({count:e.length,getScrollElement:()=>c.current,estimateSize:()=>$ys,overscan:Mys}),{getRowProps:d}=wo({count:e.length,containerRef:c,onNavigate:y=>u.scrollToIndex(y)}),f=g.useRef(t);if(g.useEffect(()=>{f.current&&!t&&c.current?.dispatchEvent(new Event("scroll")),f.current=t},[t]),t)return o.jsx(vl,{columns:ttt});const p=u.getVirtualItems(),h=u.getTotalSize(),m=p[0]?.start??0,v=p.length>0?Math.max(0,h-(p[p.length-1]?.end??0)):0;return o.jsxs(Ql,{columns:ttt,variant:"striped",scrollRef:c,className:"min-w-0",children:[o.jsxs(Ql.Top,{children:[o.jsx(Ql.TopCell,{children:"Date"}),o.jsx(Ql.TopCell,{children:"Time"}),o.jsx(Ql.TopCell,{children:"Level"}),o.jsx(Ql.TopCell,{children:"Entity"}),o.jsx(Ql.TopCell,{children:"Message"}),o.jsx(Ql.TopCell,{children:"Data"})]}),e.length===0?o.jsx(Ql.NoMatch,{message:"No logs match your search"}):o.jsxs(o.Fragment,{children:[o.jsx(Ql.Spacer,{height:m}),p.map(y=>{const b=e[y.index];if(!b)return null;const x=a.get(b);if(!x)return null;const S=x===i;return o.jsxs(Ql.RowButton,{ref:u.measureElement,"data-index":y.index,...d(y.index),onClick:()=>l(b),featured:S,variant:b.level==="error"||b.level==="fatal"?"error":"default",children:[o.jsx(Ql.DateCell,{timestamp:b.timestamp}),o.jsx(Ql.TimeCell,{timestamp:b.timestamp}),o.jsx(Ql.LevelCell,{level:b.level}),o.jsx(Ql.EntityCell,{entityType:b.entityType,entityName:b.entityName}),o.jsx(Ql.MessageCell,{message:b.message}),o.jsx(Ql.DataCell,{data:b.data})]},x)}),o.jsx(Ql.Spacer,{height:v})]}),o.jsx(Ql.NextPageLoading,{isLoading:n,hasMore:r,setEndOfListElement:s})]})}function Lys({onClear:e,onRemoveAll:t,onSave:n,onRemoveSaved:r,isLoading:s,filterFields:a,filterTokens:i,onFilterTokensChange:l,autoFocusFilterFieldId:c}){const u=i.length>0,d=i.some(f=>Fys(f,a));return o.jsxs("div",{className:K("grid grid-cols-[1fr_auto] items-start gap-3"),children:[o.jsx(EAe,{fields:a,tokens:i,onTokensChange:l,disabled:s,autoFocusFieldId:c}),u&&o.jsx(_Ae,{disabled:s,onClear:d?e:void 0,onRemoveAll:t,onSave:n,onRemoveSaved:r})]})}function Fys(e,t){const n=t.find(r=>r.id===e.fieldId);return n?n.kind==="text"?typeof e.value=="string"&&e.value.trim()!=="":n.kind==="pick-multi"?n.multi?Array.isArray(e.value)&&e.value.length>0:typeof e.value=="string"&&e.value!==""&&e.value!=="Any":n.kind==="multi-select"?Array.isArray(e.value)&&e.value.length>0:!1:!1}const zys={"last-24h":"the last 24 hours","last-3d":"the last 3 days","last-7d":"the last 7 days","last-14d":"the last 14 days","last-30d":"the last 30 days"},Aie="MMM d, yyyy HH:mm",Rie="Pick a wider range or lower the logging level — verbose entries (debug, info) may be filtered out.";function Bys({datePreset:e,dateFrom:t,dateTo:n}){return e&&e!=="all"&&e!=="custom"?{title:`No logs for ${zys[e]}`,description:Rie}:t&&n?{title:`No logs between ${br(t,Aie)} and ${br(n,Aie)}`,description:Rie}:t?{title:`No logs since ${br(t,Aie)}`,description:Rie}:{title:"No logs yet",description:"Logs will appear here once agents, workflows, or tools are executed."}}const Uys=({datePreset:e,dateFrom:t,dateTo:n}={})=>{const{title:r,description:s}=Bys({datePreset:e,dateFrom:t,dateTo:n});return o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(_r,{iconSlot:o.jsx(U7,{}),titleSlot:r,descriptionSlot:s,actionSlot:o.jsxs(oe,{variant:"ghost",as:"a",href:"https://mastra.ai/en/docs/observability/logging",target:"_blank",rel:"noopener noreferrer",children:["Logging Documentation ",o.jsx(kyt,{})]})})})},qys=20,Vys=1e4;function Hys(e,t,n){if(e?.pagination?.hasMore)return n+1}function Wys(e){const t=new Set,n=[];for(const r of e.pages)for(const s of r.logs??[]){const a=s.logId??JSON.stringify(s);t.has(a)||(t.add(a),n.push(s))}return n}function Zys(e){return R4(e.state.error,"logs")||P4(e.state.error)?!1:Vys}const Gys=({filters:e}={})=>{const t=Ge(),{inView:n,setRef:r}=tC(),s=K1({queryKey:["logs",e],queryFn:({pageParam:p})=>t.listLogsVNext({pagination:{page:p,perPage:qys},filters:e,orderBy:{field:"timestamp",direction:"DESC"}}),initialPageParam:0,getNextPageParam:Hys,select:Wys,retry:!1,refetchInterval:Zys}),{hasNextPage:a,isFetchingNextPage:i,fetchNextPage:l,data:c,isLoading:u,isError:d,error:f}=s;return g.useEffect(()=>{n&&a&&!i&&l()},[n,a,i,l]),{data:c,hasNextPage:a,isFetchingNextPage:i,fetchNextPage:l,isLoading:u,isError:d,error:f,setEndOfListElement:r}},Jz={AGENT:"agent",WORKFLOW:"workflow_run",SCORER:"scorer",INGEST:"rag_ingestion"},NVt=[{label:"Agent",entityType:Jz.AGENT},{label:"Workflow",entityType:Jz.WORKFLOW},{label:"Scorer",entityType:Jz.SCORER},{label:"Ingest",entityType:Jz.INGEST}],Qys=[{label:"Debug",value:"debug"},{label:"Info",value:"info"},{label:"Warn",value:"warn"},{label:"Error",value:"error"},{label:"Fatal",value:"fatal"}],Xx="rootEntityType",tx="datePreset",nx="dateFrom",rx="dateTo",Yys=new Set(["all","last-24h","last-3d","last-7d","last-14d","last-30d","custom"]),El={level:"filterLevel",tags:"filterTags",entityName:"filterEntityName",traceId:"filterTraceId",spanId:"filterSpanId",runId:"filterRunId",threadId:"filterThreadId",sessionId:"filterSessionId",requestId:"filterRequestId",resourceId:"filterResourceId",userId:"filterUserId",organizationId:"filterOrganizationId",serviceName:"filterServiceName",environment:"filterEnvironment",experimentId:"filterExperimentId"},UL=Object.keys(El),ZAe=new Set(["tags"]),GAe="mastra:logs:saved-filters";function Kys(e,t=GAe){const n=nbs(e),r=e.get(tx);r&&n.set(tx,r);const s=e.get(nx);s&&n.set(nx,s);const a=e.get(rx);a&&n.set(rx,a);try{localStorage.setItem(t,n.toString())}catch{}}function Xys(e=GAe){try{localStorage.removeItem(e)}catch{}}function ntt(e=GAe){try{const t=localStorage.getItem(e);if(!t)return null;const n=new URLSearchParams(t);return n.toString()?n:null}catch{return null}}function Jys(e){if(e.has(tx)||e.has(nx)||e.has(rx)||e.has(Xx))return!0;for(const t of UL)if(e.has(El[t]))return!0;return!1}function ebs({availableTags:e,availableRootEntityNames:t,availableServiceNames:n,availableEnvironments:r,loading:s}){const a=[{id:"rootEntityType",label:"Primitive Type",kind:"pick-multi",searchable:!1,options:NVt.map(u=>({label:u.label,value:u.entityType})),placeholder:"Choose entity type",emptyText:"No entity types."},{id:"entityName",label:"Primitive Name",kind:"pick-multi",options:t.map(u=>({label:u,value:u})),placeholder:"Choose entity names",emptyText:"No entity names found.",isLoading:s?.entityNames},{id:"level",label:"Level",kind:"pick-multi",searchable:!1,options:Qys.map(u=>({label:u.label,value:u.value})),placeholder:"Choose level",emptyText:"No levels."},{id:"tags",label:"Tags",kind:"pick-multi",multi:!0,options:e.map(u=>({label:u,value:u})),placeholder:"Choose tags",emptyText:"No tags found.",isLoading:s?.tags},{id:"serviceName",label:"Service Name",kind:"pick-multi",options:n.map(u=>({label:u,value:u})),placeholder:"Choose service names",emptyText:"No service names found.",isLoading:s?.serviceNames},{id:"environment",label:"Environment",kind:"pick-multi",options:r.map(u=>({label:u,value:u})),placeholder:"Choose environments",emptyText:"No environments found.",isLoading:s?.environments},{id:"traceId",label:"Trace ID",kind:"text"},{id:"spanId",label:"Span ID",kind:"text"},{id:"runId",label:"Run ID",kind:"text"},{id:"threadId",label:"Thread ID",kind:"text"},{id:"sessionId",label:"Session ID",kind:"text"},{id:"requestId",label:"Request ID",kind:"text"},{id:"resourceId",label:"Resource ID",kind:"text"},{id:"userId",label:"User ID",kind:"text"},{id:"organizationId",label:"Organization ID",kind:"text"},{id:"experimentId",label:"Experiment ID",kind:"text"}],i=(u,d)=>u.label.localeCompare(d.label),l=a.filter(u=>u.kind==="pick-multi").sort(i),c=a.filter(u=>u.kind==="text").sort(i);return[...l,...c]}function tbs(e){const t=[],n=new Map([[Xx,"rootEntityType"]]);for(const s of UL)n.set(El[s],s);const r=new Set;for(const[s]of e.entries()){const a=n.get(s);if(!a||r.has(a))continue;if(r.add(a),ZAe.has(a)){const l=e.getAll(s);if(l.length===0)continue;t.push({fieldId:a,value:l.filter(Boolean)});continue}const i=e.get(s);i!==null&&t.push({fieldId:a,value:i})}return t}function nbs(e){const t=new URLSearchParams,n=e.get(Xx);n&&t.set(Xx,n);for(const r of UL){const s=El[r];if(ZAe.has(r)){for(const i of e.getAll(s))t.append(s,i);continue}const a=e.get(s);a&&t.set(s,a)}return t}function rbs(e,t){e.delete(Xx);for(const n of UL)e.delete(El[n]);for(const n of t){if(n.fieldId==="rootEntityType"&&typeof n.value=="string"){e.set(Xx,n.value);continue}const r=El[n.fieldId];if(r){if(ZAe.has(n.fieldId)&&Array.isArray(n.value)){if(n.value.length===0)e.append(r,"");else for(const s of n.value)e.append(r,s);continue}typeof n.value=="string"&&e.set(r,n.value.trim())}}}function sbs({rootEntityType:e,dateFrom:t,dateTo:n,tokens:r}){const s={};e&&(s.rootEntityType=e),(t||n)&&(s.timestamp={...t?{start:t}:{},...n?{end:n}:{}});for(const a of r){if(a.fieldId==="tags"){Array.isArray(a.value)&&a.value.length>0?s.tags=a.value:typeof a.value=="string"&&a.value.trim()&&(s.tags=[a.value.trim()]);continue}if(a.fieldId==="level"){typeof a.value=="string"&&a.value.trim()&&a.value!=="Any"&&(s.level=a.value);continue}if(typeof a.value=="string"&&a.value.trim()&&a.value!=="Any")switch(a.fieldId){case"entityName":s.rootEntityName=a.value;break;case"traceId":s.traceId=a.value;break;case"spanId":s.spanId=a.value;break;case"runId":s.runId=a.value;break;case"threadId":s.threadId=a.value;break;case"sessionId":s.sessionId=a.value;break;case"requestId":s.requestId=a.value;break;case"resourceId":s.resourceId=a.value;break;case"userId":s.userId=a.value;break;case"organizationId":s.organizationId=a.value;break;case"serviceName":s.serviceName=a.value;break;case"environment":s.environment=a.value;break;case"experimentId":s.experimentId=a.value;break}}return s}function abs(e,t){return t.map(n=>{const r=e.find(s=>s.id===n.fieldId);return r?r.kind==="text"?{fieldId:n.fieldId,value:""}:r.kind==="pick-multi"?r.multi?{fieldId:n.fieldId,value:[]}:{fieldId:n.fieldId,value:"Any"}:n:n})}const ibs="Filters setting for Logs saved",obs="Filters setting for Logs cleared up";function lbs(e,t,n){const{storageKey:r,messages:s,skipHydration:a}={},[i,l]=g.useState(()=>ntt(r)!==null),c=g.useCallback(()=>{Kys(e,r),l(!0);const f=s?.saved??ibs;f!==!1&&Be.success(f)},[e,r,s?.saved]),u=g.useCallback(()=>{Xys(r),l(!1);const f=s?.cleared??obs;f!==!1&&Be.success(f)},[r,s?.cleared]),d=g.useRef(!1);return g.useEffect(()=>{if(a||d.current||(d.current=!0,Jys(e)))return;const f=ntt(r);f&&t(p=>{const h=new URLSearchParams(p);for(const[m,v]of f)h.append(m,v);return h},{replace:!0})},[]),{hasSavedFilters:i,handleSave:c,handleRemoveSaved:u}}function cbs(e){let t=0;for(let n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n)|0;return(t>>>0).toString(36)}function ubs(e){const t=new Map;for(const n of e){if(n.logId){t.set(n,n.logId);continue}const r=n.timestamp instanceof Date?n.timestamp.toISOString():n.timestamp;t.set(n,cbs(`${r}${n.message??""}${n.data?JSON.stringify(n.data):""}`))}return t}function dbs(e,t,n,r){const s=g.useMemo(()=>ubs(e),[e]),a=g.useMemo(()=>{const h=new Map;for(const[m,v]of e.entries()){const y=s.get(v);y&&h.set(y,{log:v,idx:m})}return h},[e,s]),l=(t?a.get(t):void 0)?.idx??-1,c=l>=0?e[l]??null:null,u=g.useCallback(h=>s.get(h),[s]),d=g.useCallback(h=>{const m=s.get(h);if(m){if(t===m){n({logId:null});return}n(r?{logId:m,traceId:h.traceId??null,spanId:null}:{logId:m})}},[s,t,r,n]),f=l>0?()=>{const h=e[l-1];if(!h)return;const m=s.get(h);m&&n(r?{logId:m,traceId:h.traceId??null,spanId:null}:{logId:m})}:void 0,p=l>=0&&l<e.length-1?()=>{const h=e[l+1];if(!h)return;const m=s.get(h);m&&n(r?{logId:m,traceId:h.traceId??null,spanId:null}:{logId:m})}:void 0;return{logIdMap:s,getLogId:u,featuredLog:c,handleLogClick:d,handlePreviousLog:f,handleNextLog:p}}const Vxe="logId",Hxe="traceId",Wxe="spanId",kP=1440*60*1e3,fbs={"last-24h":kP,"last-3d":3*kP,"last-7d":7*kP,"last-14d":14*kP,"last-30d":30*kP};function e8(e){e.delete(Vxe),e.delete(Hxe),e.delete(Wxe)}function pbs(e,t,n){const{onRemoveAll:r}={},s=g.useMemo(()=>{const _=e.get(tx);return _&&Yys.has(_)?_:"last-24h"},[e]),a=e.get(nx),i=e.get(rx),l=g.useMemo(()=>{if(s==="custom"){if(!a)return;const C=new Date(a);return Number.isNaN(C.getTime())?void 0:C}if(s==="all")return;const _=fbs[s];return _?new Date(Date.now()-_):void 0},[s,a]),c=g.useMemo(()=>{if(s!=="custom"||!i)return;const _=new Date(i);return Number.isNaN(_.getTime())?void 0:_},[s,i]),u=g.useRef(s);u.current=s;const d=e.get(Vxe),f=e.get(Hxe),p=e.get(Wxe),h=g.useMemo(()=>NVt.find(_=>_.entityType===e.get(Xx)),[e]),m=g.useMemo(()=>tbs(e),[e]),v=g.useCallback(_=>{t(C=>{const T=new URLSearchParams(C);for(const[E,N]of Object.entries(_)){const I=E==="logId"?Vxe:E==="traceId"?Hxe:Wxe;N?T.set(I,N):T.delete(I)}return T},{replace:!0})},[t]),y=g.useCallback(_=>{t(C=>{const T=new URLSearchParams(C);return rbs(T,_),e8(T),T},{replace:!0})},[t]),b=y,x=g.useCallback((_,C)=>{if(u.current!=="custom")return;const T=C==="from"?nx:rx;t(E=>{const N=new URLSearchParams(E);return _?N.set(T,_.toISOString()):N.delete(T),e8(N),N},{replace:!0})},[t]),S=g.useCallback(_=>{u.current=_,t(C=>{const T=new URLSearchParams(C);return _==="last-24h"?(T.delete(tx),T.delete(nx),T.delete(rx)):_==="custom"?T.set(tx,"custom"):(T.set(tx,_),T.delete(nx),T.delete(rx)),e8(T),T},{replace:!0})},[t]),k=g.useCallback(()=>{t(_=>{const C=new URLSearchParams(_);C.delete(Xx);for(const T of UL)C.delete(El[T]);return C.delete(tx),C.delete(nx),C.delete(rx),e8(C),C},{replace:!0}),r?.()},[t,r]);return g.useMemo(()=>({searchParams:e,setSearchParams:t,datePreset:s,selectedDateFrom:l,selectedDateTo:c,datePresetRef:u,featuredLogId:d,featuredTraceId:f,featuredSpanId:p,selectedEntityOption:h,filterTokens:m,handleFeaturedChange:v,handleFilterTokensChange:b,handleDateChange:x,handleDatePresetChange:S,handleRemoveAll:k,applyFilterTokens:y}),[e,t,s,l,c,u,d,f,p,h,m,v,b,x,S,k,y])}const Tb=Li.KeyValueList;function hbs({spanId:e,span:t,isLoading:n,onClose:r}){const s=BQ(t?.startedAt,t?.endedAt),a=uV(t?.startedAt),i=uV(t?.endedAt);return o.jsxs(Li,{children:[o.jsxs(Li.Header,{children:[o.jsxs(Li.Heading,{children:["Span ",o.jsxs("b",{children:["# ",e]})]}),o.jsx(Li.CloseButton,{onClick:r})]}),n?o.jsx(Li.LoadingData,{children:"Loading span..."}):t?o.jsxs(Li.Content,{children:[o.jsxs(Tb,{children:[t.spanType&&o.jsxs(o.Fragment,{children:[o.jsx(Tb.Key,{children:"Type"}),o.jsx(Tb.Value,{children:t.spanType})]}),a&&o.jsxs(o.Fragment,{children:[o.jsx(Tb.Key,{children:"Started"}),o.jsx(Tb.Value,{children:a})]}),i&&o.jsxs(o.Fragment,{children:[o.jsx(Tb.Key,{children:"Ended"}),o.jsx(Tb.Value,{children:i})]}),s&&o.jsxs(o.Fragment,{children:[o.jsx(Tb.Key,{children:"Duration"}),o.jsx(Tb.Value,{children:s})]})]}),o.jsx("br",{}),o.jsx(Li.CodeSection,{title:"Input",icon:o.jsx(yme,{}),codeStr:JSON.stringify(t.input??null,null,2)}),o.jsx(Li.CodeSection,{title:"Output",icon:o.jsx(bme,{}),codeStr:JSON.stringify(t.output??null,null,2)}),o.jsx(Li.CodeSection,{title:"Metadata",icon:o.jsx(sx,{}),codeStr:JSON.stringify(t.metadata??null,null,2)}),o.jsx(Li.CodeSection,{title:"Attributes",icon:o.jsx(sx,{}),codeStr:JSON.stringify(t.attributes??null,null,2)})]}):o.jsx(Li.NoData,{children:"Span not found."})]})}function mbs({traceId:e,spans:t,isLoading:n,onClose:r,onSpanSelect:s,selectedSpanId:a}){const i=g.useMemo(()=>MAe(t??[]),[t]),[l,c]=g.useState([]);g.useEffect(()=>{i.length>0&&c(DAe(i))},[i]);const u=d=>{s?.(a===d?void 0:d)};return o.jsxs(Li,{children:[o.jsxs(Li.Header,{children:[o.jsxs(Li.Heading,{children:["Trace ",o.jsxs("b",{children:["# ",e]})]}),o.jsx(Li.CloseButton,{onClick:r})]}),n?o.jsx(Li.LoadingData,{children:"Loading trace..."}):i.length===0?o.jsx(Li.NoData,{children:"No spans found for this trace."}):o.jsx(Li.Content,{children:o.jsx(iVt,{hierarchicalSpans:i,onSpanClick:u,selectedSpanId:a??void 0,expandedSpanIds:l,setExpandedSpanIds:c})})]})}function gbs(){const[e,t]=ti(),n=pbs(e,t),r=lbs(e,t),[s,a]=g.useState(),[i,l]=g.useState(!1),{data:c=[],isPending:u}=PAe(),{data:d=[],isPending:f}=IAe({entityType:n.selectedEntityOption?.entityType,rootOnly:!0}),{data:p=[],isPending:h}=AAe(),{data:m=[],isPending:v}=RAe(),y=g.useMemo(()=>ebs({availableTags:c,availableRootEntityNames:d,availableServiceNames:m,availableEnvironments:p,loading:{tags:u,entityNames:f,serviceNames:v,environments:h}}),[c,d,m,p,u,f,v,h]),b=g.useMemo(()=>sbs({rootEntityType:n.selectedEntityOption?.entityType,dateFrom:n.selectedDateFrom,dateTo:n.selectedDateTo,tokens:n.filterTokens}),[n.filterTokens,n.selectedDateFrom,n.selectedDateTo,n.selectedEntityOption]),{data:x=[],isLoading:S,error:k,isFetchingNextPage:_,hasNextPage:C,setEndOfListElement:T}=Gys({filters:b}),{logIdMap:E,featuredLog:N,handleLogClick:I,handlePreviousLog:A,handleNextLog:R}=dbs(x,n.featuredLogId,n.handleFeaturedChange,n.featuredTraceId),{data:L,isLoading:D}=Mqt(n.featuredTraceId??null),{data:F,isLoading:H}=qQ(n.featuredTraceId??"",n.featuredSpanId??""),B=g.useCallback(()=>n.applyFilterTokens(abs(y,n.filterTokens)),[y,n]),z=g.useCallback(()=>n.handleFeaturedChange({logId:null}),[n]),V=g.useCallback(Y=>n.handleFeaturedChange({traceId:Y,spanId:null}),[n]),M=g.useCallback((Y,ne)=>n.handleFeaturedChange({traceId:Y,spanId:ne}),[n]),G=g.useCallback(()=>{n.handleFeaturedChange({traceId:null,spanId:null}),l(!1)},[n]),U=g.useCallback(()=>n.handleFeaturedChange({spanId:null}),[n]),$=g.useCallback(Y=>n.handleFeaturedChange({spanId:Y??null}),[n]),q=o.jsxs(Ut.TopArea,{children:[o.jsx(Ut.Row,{children:o.jsxs(Ut.Column,{className:"flex flex-wrap items-start justify-start gap-2",children:[o.jsx(I4,{preset:n.datePreset,onPresetChange:n.handleDatePresetChange,dateFrom:n.selectedDateFrom,dateTo:n.selectedDateTo,onDateChange:n.handleDateChange,disabled:S,presets:["last-24h","last-3d","last-7d","last-14d","last-30d","custom"]}),o.jsx(TAe,{fields:y,tokens:n.filterTokens,onTokensChange:n.handleFilterTokensChange,disabled:S,onStartTextFilter:a})]})}),o.jsx(Lys,{isLoading:S,filterFields:y,filterTokens:n.filterTokens,onFilterTokensChange:n.handleFilterTokensChange,onClear:B,onRemoveAll:n.handleRemoveAll,onSave:r.handleSave,onRemoveSaved:r.hasSavedFilters?r.handleRemoveSaved:void 0,autoFocusFilterFieldId:s})]});if(k)return o.jsxs(Ut,{width:"wide",height:"full",children:[q,o.jsx(Ut.MainArea,{isCentered:!0,children:o.jsx(Eys,{error:k,resource:"logs",errorTitle:"Failed to load logs"})})]});const Z=!!n.selectedEntityOption||n.filterTokens.length>0;return x.length===0&&!S&&!Z?o.jsxs(Ut,{width:"wide",height:"full",children:[q,o.jsx(Ut.MainArea,{isCentered:!0,children:o.jsx(Uys,{datePreset:n.datePreset,dateFrom:n.selectedDateFrom,dateTo:n.selectedDateTo})})]}):o.jsxs(Ut,{width:"wide",height:"full",children:[q,o.jsx(Tys,{logCollapsed:i,listSlot:o.jsx(Dys,{logs:x,isLoading:S,isFetchingNextPage:_,hasNextPage:C,setEndOfListElement:T,logIdMap:E,featuredLogId:n.featuredLogId,onLogClick:I}),logPanelSlot:N?o.jsx(Cys,{log:N,onClose:z,onTraceClick:V,onSpanClick:M,onPrevious:A,onNext:R,collapsed:i,onCollapsedChange:l}):null,tracePanelSlot:n.featuredTraceId?o.jsx(mbs,{traceId:n.featuredTraceId,spans:L?.spans,isLoading:D,onClose:G,onSpanSelect:$,selectedSpanId:n.featuredSpanId}):null,spanPanelSlot:n.featuredTraceId&&n.featuredSpanId?o.jsx(hbs,{spanId:n.featuredSpanId,span:F?.span,isLoading:H,onClose:U}):null})]})}function vbs({server:e,rowProps:t}){const{paths:n,Link:r}=dn(),a=Ge().options.baseUrl,i=a?`${a}/api/mcp/${e.id}/sse`:"",{data:l}=cBt(e),c=Object.values(l||{}),u=c.length,d=c.filter(h=>h.toolType==="agent").length,f=c.filter(h=>h.toolType==="workflow").length,p=Qh(e.name,50);return o.jsxs(be.RowLink,{to:n.mcpServerLink(e.id),LinkComponent:r,...t,children:[o.jsx(be.NameCell,{children:p}),o.jsx(be.DescriptionCell,{children:i}),o.jsx(be.TextCell,{className:"text-center",children:d||""}),o.jsx(be.TextCell,{className:"text-center",children:u||""}),o.jsx(be.TextCell,{className:"text-center",children:f||""})]})}function ybs({mcpServers:e,isLoading:t,search:n=""}){const r=g.useMemo(()=>{const i=n.toLowerCase();return e.filter(l=>l.name?.toLowerCase().includes(i)||l.id?.toLowerCase().includes(i))},[e,n]),{containerRef:s,getRowProps:a}=wo({count:r.length});return t?o.jsx(vl,{columns:"auto 1fr auto auto auto"}):o.jsxs(be,{columns:"auto 1fr auto auto auto",variant:"striped",scrollRef:s,children:[o.jsxs(be.Top,{children:[o.jsx(be.TopCell,{children:"Name"}),o.jsx(be.TopCell,{children:"URL"}),o.jsx(be.TopCellSmart,{long:"Agents",short:o.jsx(Oo,{}),tooltip:"Agent Tools",className:"text-center"}),o.jsx(be.TopCellSmart,{long:"Tools",short:o.jsx(Mf,{}),tooltip:"Tools",className:"text-center"}),o.jsx(be.TopCellSmart,{long:"Workflows",short:o.jsx(rd,{}),tooltip:"Workflow Tools",className:"text-center"})]}),r.length===0&&n?o.jsx(be.NoMatch,{message:"No MCP Servers match your search"}):null,r.map((i,l)=>o.jsx(vbs,{server:i,rowProps:a(l)},i.id))]})}const bbs=()=>o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(_r,{iconSlot:o.jsx(Df,{}),titleSlot:"No MCP Servers yet",descriptionSlot:o.jsxs(o.Fragment,{children:["MCP servers are not configured yet. ",o.jsx("br",{}),"More information in the documentation."]}),actionSlot:o.jsxs(oe,{variant:"ghost",as:"a",href:"https://mastra.ai/docs/tools-mcp/mcp-overview",target:"_blank",rel:"noopener noreferrer",children:["MCP Documentation ",o.jsx(ds,{})]})})}),xbs=()=>{const{data:e=[],isLoading:t,error:n}=bQ(),[r,s]=g.useState("");return n&&ws(n)?o.jsx(ar,{children:o.jsx(Ys,{})}):n&&Ss(n)?o.jsx(ar,{children:o.jsx(qs,{resource:"MCP servers"})}):n?o.jsx(ar,{children:o.jsx(Ui,{title:"Failed to load MCP servers",message:n.message})}):e.length===0&&!t?o.jsx(ar,{children:o.jsx(bbs,{})}):o.jsxs(Ut,{children:[o.jsx(Ut.TopArea,{children:o.jsx("div",{className:"max-w-120",children:o.jsx(Bf,{onSearch:s,label:"Filter MCP servers",placeholder:"Filter by name"})})}),o.jsx(ybs,{mcpServers:e,isLoading:t,search:r})]})},wbs=(e,t)=>{const n=new Map,r=Object.keys(t);for(const s of r){const a=t[s],i=a.tools,l=Object.keys(i);for(const c of l){const u=i[c];n.has(u.id)||n.set(u.id,{...u,agents:[]}),n.get(u.id).agents.push({...a,id:s})}}for(const[s,a]of Object.entries(e))n.has(a.id)||n.set(a.id,{...a,agents:[]});return Array.from(n.values())};function Sbs({tools:e,agents:t,isLoading:n,search:r=""}){const{paths:s,Link:a}=dn(),i=g.useMemo(()=>wbs(e,t),[e,t]),l=g.useMemo(()=>i.filter(d=>d.id.toLowerCase().includes(r.toLowerCase())),[i,r]),{containerRef:c,getRowProps:u}=wo({count:l.length});return n?o.jsx(vl,{columns:"auto 1fr auto"}):o.jsxs(be,{columns:"auto 1fr auto",variant:"striped",scrollRef:c,children:[o.jsxs(be.Top,{children:[o.jsx(be.TopCell,{children:"Name"}),o.jsx(be.TopCell,{children:"Description"}),o.jsx(be.TopCellSmart,{long:"Agents",short:o.jsx(Oo,{}),tooltip:"Attached Agents",className:"text-center"})]}),l.length===0&&r?o.jsx(be.NoMatch,{message:"No Tools match your search"}):null,l.map((d,f)=>{const p=Qh(d.id,50),h=Qh(d.description??"",200),m=d.agents.length;return o.jsxs(be.RowLink,{to:s.toolLink(d.id),LinkComponent:a,...u(f),children:[o.jsx(be.NameCell,{children:p}),o.jsx(be.DescriptionCell,{children:h}),o.jsx(be.TextCell,{className:"text-center",children:m||""})]},d.id)})]})}const kbs=()=>o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(_r,{iconSlot:o.jsx(Df,{}),titleSlot:"No Tools yet",descriptionSlot:o.jsxs(o.Fragment,{children:["Mastra tools are not configured yet. ",o.jsx("br",{}),"More information in the documentation."]}),actionSlot:o.jsxs(oe,{variant:"ghost",as:"a",href:"https://mastra.ai/docs/agents/using-tools-and-mcp",target:"_blank",rel:"noopener noreferrer",children:["Tools Documentation ",o.jsx(ds,{})]})})}),Obs=()=>{const e=Ge();return Rn({mutationFn:async({toolId:t,input:n,requestContext:r})=>{const s=new A_;Object.entries(r??{}).forEach(([a,i])=>{s.set(a,i)});try{return await e.getTool(t).execute({data:n,requestContext:s})}catch(a){throw Be.error("Error executing dev tool"),console.error("Error executing dev tool:",a),a}}})},_bs=({toolId:e})=>{const{canExecute:t}=Uo(),n=t("tools"),{data:r={}}=$m(),s=g.useMemo(()=>{for(const v of Object.values(r))if(v.tools){const y=Object.values(v.tools).find(b=>b.id===e);if(y)return y}return null},[r,e]),{data:a,isLoading:i,error:l}=PRr(e,{enabled:!s}),c=s||a,{mutateAsync:u,isPending:d,data:f}=Obs(),{requestContext:p}=hs();g.useEffect(()=>{if(l){const v=l instanceof Error?l.message:"Failed to load tool";Be.error(`Error loading tool: ${v}`)}},[l]);const h=async(v,y)=>{if(!c)return;const b={...p??{},...y??{}};return u({toolId:c.id,input:v,requestContext:b})},m=c?.inputSchema?gm(Nx(c?.inputSchema)):vs({});return i?o.jsxs("div",{className:"p-6",children:[o.jsx(St,{className:"mb-4 h-8 w-48"}),o.jsx(St,{className:"h-32 w-full"})]}):l?null:c?n?o.jsx(tAe,{executionResult:f,isExecutingTool:d,zodInputSchema:m,handleExecuteTool:h,toolDescription:c.description,toolId:c.id,requestContextSchema:c.requestContextSchema}):o.jsx("div",{className:"px-6 py-12 text-center",children:o.jsx(ge,{variant:"ui-sm",className:"text-neutral3",children:"You don't have permission to execute tools."})}):o.jsx("div",{className:"px-6 py-12 text-center",children:o.jsx(ge,{variant:"header-md",className:"text-neutral3",children:"Tool not found"})})};function Cbs({value:e,onValueChange:t,placeholder:n="Select a tool...",searchPlaceholder:r="Search tools...",emptyText:s="No tools found.",className:a,disabled:i=!1,variant:l}){const{data:c={},isLoading:u,isError:d,error:f}=ZI(),{data:p={},isLoading:h,isError:m,error:v}=$m(),{navigate:y,paths:b}=dn();g.useEffect(()=>{if(d){const _=f instanceof Error?f.message:"Failed to load tools";Be.error(`Error loading tools: ${_}`)}},[d,f]),g.useEffect(()=>{if(m){const _=v instanceof Error?v.message:"Failed to load agents";Be.error(`Error loading agents: ${_}`)}},[m,v]);const x=new Map;Object.values(p).forEach(_=>{_.tools&&Object.values(_.tools).forEach(C=>{x.has(C.id)||x.set(C.id,C)})}),Object.values(c).forEach(_=>{x.has(_.id)||x.set(_.id,_)});const S=Array.from(x.values()).map(_=>({label:_.id,value:_.id})),k=_=>{t?t(_):_&&_!==e&&y(b.toolLink(_))};return o.jsx(yl,{options:S,value:e,onValueChange:k,placeholder:u||h?"Loading tools...":n,searchPlaceholder:r,emptyText:s,className:a,disabled:i||u||h||d||m,variant:l})}const Ebs=({isLoading:e,server:t})=>{const[{sseUrl:n,httpStreamUrl:r},s]=g.useState({sseUrl:"",httpStreamUrl:""});if(g.useEffect(()=>{if(!t)return;const i=window.MASTRA_SERVER_HOST,l=window.MASTRA_SERVER_PORT;let c=null;i&&l&&(c=`http://${i}:${l}`);const u=c||"http://localhost:4111",d=`${u}/api/mcp/${t.id}/sse`,f=`${u}/api/mcp/${t.id}/mcp`;s({sseUrl:d,httpStreamUrl:f})},[t]),e)return null;if(!t)return o.jsx(Gx,{children:o.jsx(ge,{as:"h1",variant:"header-md",className:"text-neutral3 py-20 text-center font-medium",children:"Server not found"})});const a=`npx -y mcp-remote ${n}`;return o.jsxs(Gx,{isDivided:!0,children:[o.jsxs("div",{className:"mx-auto w-full max-w-2xl px-8 py-12",children:[o.jsx(ge,{as:"h1",variant:"header-md",className:"text-neutral6 pb-4 font-medium",children:t.name}),o.jsxs("div",{className:"flex items-center gap-1 pb-6",children:[o.jsx(Xt,{icon:o.jsx(rVt,{className:"text-neutral6"}),className:"text-neutral4! rounded-r-sm",children:"Version"}),o.jsx(Xt,{className:"text-neutral4! rounded-l-sm",children:t.version_detail.version})]}),o.jsx(ge,{className:"text-neutral3 pb-4",children:"This MCP server can be accessed through multiple transport methods. Choose the one that best fits your use case."}),o.jsxs("div",{className:"flex flex-col gap-4",children:[o.jsxs("div",{className:"border-border1 bg-surface3 rounded-lg border p-4",children:[o.jsx(Xt,{icon:o.jsx("span",{className:"text-accent1 mr-1 w-6 font-mono font-medium",children:"HTTP"}),children:"Regular HTTP Endpoint"}),o.jsx(ge,{className:"text-neutral3 pt-1 pb-2",children:"Use for stateless HTTP transport with streamable responses."}),o.jsxs("div",{className:"flex items-start gap-2",children:[o.jsx(ge,{className:"bg-surface4 rounded-lg px-2 py-1",children:r}),o.jsx("div",{className:"pt-1",children:o.jsx(Sa,{tooltip:"Copy HTTP Stream URL",content:r})})]})]}),o.jsxs("div",{className:"border-border1 bg-surface3 rounded-lg border p-4",children:[o.jsx(Xt,{icon:o.jsx("span",{className:"text-accent1 mr-1 w-6 font-mono font-medium",children:"SSE"}),children:"Server-Sent Events"}),o.jsx(ge,{className:"text-neutral3 pt-1 pb-2",children:"Use for real-time communication via SSE."}),o.jsxs("div",{className:"flex items-start gap-2",children:[o.jsx(ge,{className:"bg-surface4 rounded-lg px-2 py-1",children:n}),o.jsx("div",{className:"pt-1",children:o.jsx(Sa,{tooltip:"Copy SSE URL",content:n})})]})]}),o.jsxs("div",{className:"border-border1 bg-surface3 rounded-lg border p-4",children:[o.jsx(Xt,{icon:o.jsx("span",{className:"text-accent1 mr-1 w-6 font-mono font-medium",children:"CLI"}),children:"Command Line"}),o.jsx(ge,{className:"text-neutral3 pt-1 pb-2",children:"Use for local command-line access via npx and mcp-remote."}),o.jsxs("div",{className:"flex items-start gap-2",children:[o.jsx(ge,{className:"bg-surface4 rounded-lg px-2 py-1",children:a}),o.jsx("div",{className:"pt-1",children:o.jsx(Sa,{tooltip:"Copy Command Line Config",content:a})})]})]})]})]}),o.jsx("div",{className:"border-border1 h-full overflow-y-scroll border-l",children:o.jsx(Tbs,{server:t})})]})},Tbs=({server:e})=>{const{data:t={},isLoading:n}=cBt(e);if(n)return null;const r=Object.keys(t);return o.jsxs("div",{className:"overflow-y-scroll p-5",children:[o.jsxs("div",{className:"text-neutral6 flex items-center gap-2",children:[o.jsx(Ve,{size:"lg",className:"bg-surface4 rounded-md p-1",children:o.jsx(OC,{})}),o.jsx(ge,{variant:"header-md",as:"h2",className:"font-medium",children:"Available Tools"})]}),o.jsx("div",{className:"flex flex-col gap-2 pt-6",children:r.map(s=>{const a=t[s];return o.jsx(Nbs,{tool:a,serverId:e.id},s)})})]})};function jbs(e){if(!e)return!1;const t=e.ui;return!!(typeof t?.resourceUri=="string"&&t.resourceUri.startsWith("ui://")||typeof e["ui/resourceUri"]=="string"&&e["ui/resourceUri"].startsWith("ui://"))}const Nbs=({tool:e,serverId:t})=>{const n=g.useRef(null),{Link:r,paths:s}=dn(),a=zBt[e.toolType||"tool"],i=jbs(e._meta);return o.jsxs(qf,{onClick:()=>n.current?.click(),children:[o.jsx(XDt,{children:o.jsx(a,{className:"group-hover/entity:text-accent6"})}),o.jsxs(Hf,{children:[o.jsx(Vf,{children:o.jsxs("span",{className:"flex items-center gap-2",children:[o.jsx(r,{ref:n,href:s.mcpServerToolLink(t,e.id),children:e.id}),i&&o.jsx(Xt,{className:"py-0 text-[10px]",children:"App"})]})}),o.jsx(rh,{children:e.description})]})]})},Ibs=()=>{const{serverId:e}=wr(),{data:t=[],isLoading:n}=bQ(),r=t.find(s=>s.id===e);return o.jsx("div",{className:"h-full w-full overflow-hidden",children:o.jsx(Ebs,{isLoading:n,server:r})})};function Abs(e){if(!e)return;const t=e.ui;if(t?.resourceUri)return t.resourceUri;const n=e["ui/resourceUri"];if(typeof n=="string")return n}const Rbs=({toolId:e,serverId:t})=>{const{canExecute:n}=Uo(),r=n("tools"),s=Ge(),{data:a,isLoading:i,error:l}=YIe(t,e),{mutateAsync:c,isPending:u,data:d}=xrs(t,e),f=a?Abs(a._meta):void 0,{data:p}=yt({queryKey:["mcp-app-resource",t,f],queryFn:async()=>f?(await s.readMcpServerResource(t,f)).contents[0]?.text??null:null,enabled:!!f}),h=g.useCallback(async(y,b)=>await c(b),[c]);g.useEffect(()=>{if(l){const y=l instanceof Error?l.message:"Failed to load tool";Be.error(`Error loading tool: ${y}`)}},[l]);const m=async y=>{if(a)return await c(y)};if(i)return o.jsxs("div",{className:"p-6",children:[o.jsx(St,{className:"mb-4 h-8 w-48"}),o.jsx(St,{className:"h-32 w-full"})]});if(l)return null;if(!a)return o.jsx("div",{className:"px-6 py-12 text-center",children:o.jsx(ge,{variant:"header-md",className:"text-neutral3",children:"Tool not found"})});if(!r)return o.jsx("div",{className:"px-6 py-12 text-center",children:o.jsx(ge,{variant:"ui-sm",className:"text-neutral3",children:"You don't have permission to execute tools."})});let v;try{v=gm(a.inputSchema)}catch(y){console.error("Error processing input schema:",y),Be.error("Failed to process tool input schema."),v=vs({})}return o.jsxs("div",{className:"flex flex-col gap-4",children:[p&&o.jsx("div",{className:"border-border1 border-b p-4",children:o.jsx(lBt,{html:p,toolName:a.name??a.id,onToolCall:h})}),o.jsx(tAe,{executionResult:d,isExecutingTool:u,zodInputSchema:v,handleExecuteTool:m,toolDescription:a.description||"",toolId:a.id})]})},Pbs=()=>{const{serverId:e,toolId:t}=wr(),{data:n,isLoading:r}=YIe(e,t);return r||!n?null:o.jsx("div",{className:"h-full w-full overflow-y-auto",children:o.jsx(Rbs,{toolId:t,serverId:e})})},IVt=[{label:"Agent",entityType:"agent"},{label:"Workflow",entityType:"workflow_run"},{label:"Scorer",entityType:"scorer"},{label:"Ingest",entityType:"rag_ingestion"}],HN="rootEntityType",WN={tags:"filterTags",entityId:"filterEntityId",entityName:"filterEntityName",runId:"filterRunId",threadId:"filterThreadId",sessionId:"filterSessionId",requestId:"filterRequestId",resourceId:"filterResourceId",userId:"filterUserId",organizationId:"filterOrganizationId",serviceName:"filterServiceName",environment:"filterEnvironment",experimentId:"filterExperimentId",provider:"filterProvider",model:"filterModel"},ZQ=Object.keys(WN),QAe="mastra:metrics:saved-filters";function $bs(e){const t=zbs(e);try{localStorage.setItem(QAe,t.toString())}catch{}}function Mbs(){try{localStorage.removeItem(QAe)}catch{}}function AVt(){try{const e=localStorage.getItem(QAe);if(!e)return null;const t=new URLSearchParams(e);return t.toString()?t:null}catch{return null}}function Dbs(e){if(e.has(HN))return!0;for(const t of ZQ)if(e.has(WN[t]))return!0;return!1}function Lbs({availableTags:e,availableEntityNames:t,availableServiceNames:n,availableEnvironments:r,loading:s}){const a=[{id:"rootEntityType",label:"Primitive Type",kind:"pick-multi",searchable:!1,options:IVt.map(u=>({label:u.label,value:u.entityType})),placeholder:"Choose entity type",emptyText:"No entity types."},{id:"entityName",label:"Primitive Name",kind:"pick-multi",options:t.map(u=>({label:u,value:u})),placeholder:"Choose entity names",emptyText:"No entity names found.",isLoading:s?.entityNames},{id:"entityId",label:"Primitive ID",kind:"text"},{id:"tags",label:"Tags",kind:"pick-multi",multi:!0,options:e.map(u=>({label:u,value:u})),placeholder:"Choose tags",emptyText:"No tags found.",isLoading:s?.tags},{id:"serviceName",label:"Service Name",kind:"pick-multi",options:n.map(u=>({label:u,value:u})),placeholder:"Choose service names",emptyText:"No service names found.",isLoading:s?.serviceNames},{id:"environment",label:"Environment",kind:"pick-multi",options:r.map(u=>({label:u,value:u})),placeholder:"Choose environments",emptyText:"No environments found.",isLoading:s?.environments},{id:"threadId",label:"Thread ID",kind:"text"},{id:"resourceId",label:"Resource ID",kind:"text"},{id:"userId",label:"User ID",kind:"text"},{id:"organizationId",label:"Organization ID",kind:"text"},{id:"runId",label:"Run ID",kind:"text"},{id:"sessionId",label:"Session ID",kind:"text"},{id:"requestId",label:"Request ID",kind:"text"},{id:"experimentId",label:"Experiment ID",kind:"text"}],i=(u,d)=>u.label.localeCompare(d.label),l=a.filter(u=>u.kind==="pick-multi").sort(i),c=a.filter(u=>u.kind==="text").sort(i);return[...l,...c]}function Fbs(e){const t=[],n=new Map([[HN,"rootEntityType"]]);for(const s of ZQ)n.set(WN[s],s);const r=new Set;for(const[s]of e.entries()){const a=n.get(s);if(!a||r.has(a))continue;if(r.add(a),a==="tags"){const l=e.getAll(s);if(l.length===0)continue;t.push({fieldId:a,value:l.filter(Boolean)});continue}if(a==="rootEntityType"||a==="entityName"||a==="serviceName"||a==="environment"||a==="provider"||a==="model"){const l=e.getAll(s);if(l.length>1){t.push({fieldId:a,value:l});continue}}const i=e.get(s);i!==null&&t.push({fieldId:a,value:i})}return t}function zbs(e){const t=new URLSearchParams,n=e.getAll(HN);for(const r of n)t.append(HN,r);for(const r of ZQ){const s=WN[r],a=e.getAll(s);for(const i of a)t.append(s,i)}return t}function Bbs(e,t){e.delete(HN);for(const n of ZQ)e.delete(WN[n]);for(const n of t){const r=n.fieldId==="rootEntityType"?HN:WN[n.fieldId];if(r)if(Array.isArray(n.value)){const s=n.value.filter(a=>typeof a=="string"&&a!=="");if(s.length===0){n.fieldId==="tags"&&e.append(r,"");continue}for(const a of s)e.append(r,a)}else typeof n.value=="string"&&e.set(r,n.value.trim())}}const Ubs="Any";function rtt(e){const t=e.trim();return t===""||t===Ubs}const qbs=new Set(IVt.map(e=>e.entityType));function stt(e){const t=e.trim();return qbs.has(t)?t:void 0}function Vbs(e){const t={};for(const n of e){const r=n.fieldId;if(Array.isArray(n.value)){const s=n.value.filter(a=>typeof a=="string").map(a=>a.trim()).filter(a=>!rtt(a));if(s.length===0)continue;if(r==="tags")t.tags=s;else if(r==="rootEntityType"){const a=s[0],i=a!==void 0?stt(a):void 0;i&&(t.rootEntityType=i)}else t[r]=s[0]}else if(typeof n.value=="string"){if(rtt(n.value))continue;const s=n.value.trim();if(r==="rootEntityType"){const a=stt(s);a&&(t.rootEntityType=a)}else t[r]=s}}return t}const RVt=[{label:"Last 24 hours",value:"24h"},{label:"Last 3 days",value:"3d"},{label:"Last 7 days",value:"7d"},{label:"Last 14 days",value:"14d"},{label:"Last 30 days",value:"30d"}],Hbs=new Set(RVt.map(e=>e.value));function Wbs(e){return typeof e=="string"&&(Hbs.has(e)||e==="custom")}const PVt=g.createContext({datePreset:"24h",setDatePreset:()=>{},customRange:void 0,setCustomRange:()=>{},dateRangeLabel:"Last 24 hours",filterTokens:[],setFilterTokens:()=>{},dimensionalFilter:{},dimensionalFilterKey:"{}",tracesBasePath:void 0,logsBasePath:void 0});function GQ(){return g.useContext(PVt)}function Zbs(e,t){return e!=="custom"?RVt.find(n=>n.value===e)?.label??e:t?.from?t.to?`${br(t.from,"MMM d, yyyy")} – ${br(t.to,"MMM d, yyyy")}`:br(t.from,"MMM d, yyyy"):"Custom range"}function Gbs({children:e,preset:t,filterTokens:n,onPresetChange:r,onFilterTokensChange:s,customRange:a,onCustomRangeChange:i,tracesBasePath:l,logsBasePath:c}){const u=g.useMemo(()=>JSON.stringify(n),[n]),d=g.useMemo(()=>n,[u]),f=g.useMemo(()=>Vbs(d),[d]),p=g.useMemo(()=>JSON.stringify(f),[f]),h=Zbs(t,a),m=g.useMemo(()=>({datePreset:t,setDatePreset:r,customRange:a,setCustomRange:i??(()=>{}),dateRangeLabel:h,filterTokens:d,setFilterTokens:s,dimensionalFilter:f,dimensionalFilterKey:p,tracesBasePath:l,logsBasePath:c}),[t,r,a,i,h,d,s,f,p,l,c]);return o.jsx(PVt.Provider,{value:m,children:e})}const Qbs=["last-24h","last-3d","last-7d","last-14d","last-30d","custom"];function Ybs(e){switch(e){case"3d":return"last-3d";case"7d":return"last-7d";case"14d":return"last-14d";case"30d":return"last-30d";case"custom":return"custom";default:return"last-24h"}}function Kbs(e){switch(e){case"last-3d":return"3d";case"last-7d":return"7d";case"last-14d":return"14d";case"last-30d":return"30d";case"custom":return"custom";default:return"24h"}}function Xbs(){const{datePreset:e,setDatePreset:t,customRange:n,setCustomRange:r}=GQ(),s=g.useRef(e);s.current=e;const a=g.useRef(n);return a.current=n,o.jsx(I4,{preset:Ybs(e),onPresetChange:i=>{const l=Kbs(i);s.current=l,t(l)},dateFrom:n?.from,dateTo:n?.to,onDateChange:(i,l)=>{if(s.current!=="custom")return;const c={...a.current,[l]:i};a.current=c,r(c)},presets:Qbs})}const Zxe=1440*60*1e3,Jbs={"24h":Zxe,"3d":4320*60*1e3,"7d":10080*60*1e3,"14d":336*60*60*1e3,"30d":720*60*60*1e3};function exs(e,t,n){if(e!=="custom"){const r=Jbs[e]??Zxe;return{start:new Date(n-r),end:new Date(n)}}return{start:t?.from??new Date(n-Zxe),end:t?.to??new Date(n)}}function Fm(){const{datePreset:e,customRange:t,dimensionalFilter:n,dimensionalFilterKey:r}=GQ(),s=g.useRef(null),a=e==="custom"?`custom:${t?.from?.getTime()??""}:${t?.to?.getTime()??""}`:`preset:${e}`;(!s.current||s.current.key!==a)&&(s.current={key:a,anchor:Date.now()});const i=s.current.anchor,l=g.useMemo(()=>exs(e,t,i),[e,t,i]),c=g.useMemo(()=>({timestamp:l,...n}),[l,r]),u=g.useMemo(()=>`${a}|${r}`,[a,r]);return{datePreset:e,customRange:t,timestamp:l,filters:c,dimensionalFilter:n,filterKey:u}}function $Vt(){const e=Ge(),{filters:t,filterKey:n}=Fm();return yt({queryKey:["metrics","agent-runs-kpi",n],queryFn:()=>e.getMetricAggregate({name:["mastra_agent_duration_ms"],aggregation:"count",filters:t,comparePeriod:"previous_period"})})}function qL({href:e,LinkComponent:t="a"}){return o.jsx(oe,{as:t,href:e,variant:"ghost",size:"icon-md",tooltip:"View in Traces","aria-label":"View in Traces",children:o.jsx(vme,{})})}function txs({href:e,LinkComponent:t="a"}){return o.jsx(oe,{as:t,href:e,variant:"ghost",size:"icon-md",tooltip:"View errors in Logs","aria-label":"View errors in Logs",children:o.jsx(rRn,{})})}function nxs(e){return e==="agents"||e==="workflows"||e==="tools"}function att(e,t){if(e.length===0)return"0";const n=e.reduce((r,s)=>{const a=s[t];return r+(typeof a=="number"&&Number.isFinite(a)?a:0)},0);return`${Math.round(n/e.length)}`}function rxs(e){const t=e;return typeof t?.tsMs=="number"&&Number.isFinite(t.tsMs)}const sxs=[{dataKey:"p50",label:"p50",color:qp.blue,aggregate:e=>({value:att(e,"p50"),suffix:"avg ms"})},{dataKey:"p95",label:"p95",color:qp.yellow,aggregate:e=>({value:att(e,"p95"),suffix:"avg ms"})}];function Pie({data:e,onPointClick:t}){return e.length===0?o.jsx(Bt.NoData,{message:"No latency data yet"}):o.jsx(AD,{data:e,series:sxs,onPointClick:t?n=>rxs(n)?t(n):void 0:void 0})}function axs({data:e,isLoading:t,isError:n,onPointClick:r,actions:s}){const a=(e?.agentData.length??0)>0,i=(e?.workflowData.length??0)>0,l=(e?.toolData.length??0)>0,c={agents:a,workflows:i,tools:l},u=a?"agents":i?"workflows":l?"tools":"agents",[d,f]=g.useState("agents"),p=c[d]?d:u,h=typeof s=="function"?s(p):s,m=!!e&&(e.agentData.length>0||e.workflowData.length>0||e.toolData.length>0),v=e?Object.values(e).filter(Array.isArray).flat().map(b=>b.p50).filter(b=>typeof b=="number"):[],y=v.length>0?`${Math.round(v.reduce((b,x)=>b+x,0)/v.length)}ms`:"—";return o.jsxs(Bt,{children:[o.jsxs(Bt.TopBar,{children:[o.jsx(Bt.TitleAndDescription,{title:"Latency",description:"Hourly p50 and p95 latency."}),m&&o.jsx(Bt.Summary,{value:y,label:"Avg p50"}),h?o.jsx(Bt.Actions,{children:h}):null]}),t?o.jsx(Bt.Loading,{}):n?o.jsx(Bt.Error,{message:"Failed to load latency data"}):o.jsx(Bt.Content,{children:m?o.jsxs(Vl,{value:p,onValueChange:b=>{nxs(b)&&c[b]&&f(b)},defaultTab:u,className:"overflow-visible",children:[o.jsxs(ql,{children:[o.jsx(hr,{value:"agents",disabled:!a,disabledTooltip:"No agent latency data for this period",children:"Agents"}),o.jsx(hr,{value:"workflows",disabled:!i,disabledTooltip:"No workflow latency data for this period",children:"Workflows"}),o.jsx(hr,{value:"tools",disabled:!l,disabledTooltip:"No tool latency data for this period",children:"Tools"})]}),o.jsx(Br,{value:"agents",children:o.jsx(Pie,{data:e.agentData,onPointClick:r?b=>r("agents",b):void 0})}),o.jsx(Br,{value:"workflows",children:o.jsx(Pie,{data:e.workflowData,onPointClick:r?b=>r("workflows",b):void 0})}),o.jsx(Br,{value:"tools",children:o.jsx(Pie,{data:e.toolData,onPointClick:r?b=>r("tools",b):void 0})})]}):o.jsx(Bt.NoData,{message:"No latency data yet"})})]})}function ixs(e){switch(e){case"24h":return"last-24h";case"3d":return"last-3d";case"7d":return"last-7d";case"14d":return"last-14d";case"30d":return"last-30d";case"custom":return"custom";default:return}}function oxs(e,t){if(t==="1h"){const s=new Date(e);s.setUTCMinutes(0,0,0);const a=new Date(s.getTime()+3600*1e3);return{from:s,to:a}}const n=new Date(e);n.setUTCHours(0,0,0,0);const r=new Date(n.getTime()+1440*60*1e3);return{from:n,to:r}}function MVt(e,t,n,r,s,a,i){if(i){e.set(t,"custom"),e.set(n,i.from.toISOString()),e.set(r,i.to.toISOString());return}if(s==="custom"){e.set(t,"custom"),a?.from&&e.set(n,a.from.toISOString()),a?.to&&e.set(r,a.to.toISOString());return}const l=ixs(s);l&&e.set(t,l)}function $o(e,t,n){typeof n=="string"&&n.length>0&&e.set(t,n)}function DVt(e,t,n){if(!(!Array.isArray(n)||n.length===0))for(const r of n)r&&e.append(t,r)}function itt({preset:e,customRange:t,dashboardFilter:n,scope:r,tracesBasePath:s="/traces"}){const a=new URLSearchParams;a.set(Fw,"branches"),MVt(a,zw,Bw,Uw,e,t,r.window);const i=r.rootEntityType??n.rootEntityType;i&&a.set(Yx,i),r.status&&a.set(Kx,r.status),$o(a,Cl.entityName,r.entityName??n.entityName),$o(a,Cl.threadId,r.threadId??n.threadId),$o(a,Cl.resourceId,r.resourceId??n.resourceId),$o(a,Cl.entityId,n.entityId),$o(a,Cl.runId,n.runId),$o(a,Cl.sessionId,n.sessionId),$o(a,Cl.requestId,n.requestId),$o(a,Cl.userId,n.userId),$o(a,Cl.organizationId,n.organizationId),$o(a,Cl.experimentId,n.experimentId),$o(a,Cl.serviceName,n.serviceName),$o(a,Cl.environment,n.environment),DVt(a,Cl.tags,n.tags);const l=a.toString();return l?`${s}?${l}`:s}function lxs({preset:e,customRange:t,dashboardFilter:n,scope:r,logsBasePath:s="/logs"}){const a=new URLSearchParams;MVt(a,tx,nx,rx,e,t,r.window);const i=r.rootEntityType??n.rootEntityType;i&&a.set(Xx,i),$o(a,El.entityName,r.entityName??n.entityName),$o(a,El.threadId,r.threadId??n.threadId),$o(a,El.resourceId,r.resourceId??n.resourceId),$o(a,El.runId,n.runId),$o(a,El.sessionId,n.sessionId),$o(a,El.requestId,n.requestId),$o(a,El.userId,n.userId),$o(a,El.organizationId,n.organizationId),$o(a,El.experimentId,n.experimentId),$o(a,El.serviceName,n.serviceName),$o(a,El.environment,n.environment),DVt(a,El.tags,n.tags),r.status==="error"&&a.append(El.level,"error");const l=a.toString();return l?`${s}?${l}`:s}function dA(){const{datePreset:e,customRange:t,dimensionalFilter:n,tracesBasePath:r,logsBasePath:s}=GQ(),a=g.useCallback((c={})=>itt({preset:e,customRange:t,dashboardFilter:n,scope:c,tracesBasePath:r}),[e,t,n,r]),i=g.useCallback((c={})=>lxs({preset:e,customRange:t,dashboardFilter:n,scope:c,logsBasePath:s}),[e,t,n,s]),l=g.useCallback((c,u,d)=>{const f=oxs(u,d);return itt({preset:e,customRange:t,dashboardFilter:n,scope:{...c,window:f},tracesBasePath:r})},[e,t,n,r]);return{getTracesHref:a,getLogsHref:i,getBucketTracesHref:l}}const LVt="1h";async function $ie(e,t,n){const r=await e.getMetricPercentiles({name:t,percentiles:[.5,.95],interval:LVt,filters:n}),s=r.series.find(l=>l.percentile===.5),a=r.series.find(l=>l.percentile===.95);if(!s||!a)return[];const i=new Map(a.points.map(l=>[new Date(l.timestamp).getTime(),l.value]));return s.points.map(l=>{const c=new Date(l.timestamp),u=c.getTime();return{time:c.toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit",hour12:!1}),tsMs:u,p50:Math.round(l.value),p95:Math.round(i.get(u)??0)}})}function cxs(){const e=Ge(),{filters:t,filterKey:n}=Fm();return yt({queryKey:["metrics","latency",n],queryFn:async()=>{const[r,s,a]=await Promise.all([$ie(e,"mastra_agent_duration_ms",t),$ie(e,"mastra_workflow_duration_ms",t),$ie(e,"mastra_tool_duration_ms",t)]);return{agentData:r,workflowData:s,toolData:a,interval:LVt}}})}const ott={agents:Wu.AGENT,workflows:Wu.WORKFLOW_RUN,tools:Wu.TOOL};function uxs(){const{data:e,isLoading:t,isError:n}=cxs(),{getTracesHref:r,getBucketTracesHref:s}=dA(),{Link:a}=dn(),i=Xr();return o.jsx(axs,{data:e,isLoading:t,isError:n,onPointClick:(l,c)=>{Number.isFinite(c.tsMs)&&i(s({rootEntityType:ott[l]},c.tsMs,"1h"))},actions:l=>o.jsx(qL,{href:r({rootEntityType:ott[l]}),LinkComponent:a})})}function dxs(e){return e==="threads"||e==="resources"}function Mie(e){return e.length<=12?e:`${e.slice(0,6)}…${e.slice(-4)}`}function fxs({threads:e,resources:t,getThreadRowHref:n,getResourceRowHref:r,actions:s,LinkComponent:a}){const[i,l]=g.useState("threads"),c=e.data?.map(y=>({...y,key:y.threadId}))??[],u=t.data?.map(y=>({...y,key:y.resourceId}))??[],d=c.length>0,f=u.length>0,p=e.data?.reduce((y,b)=>y+b.runs,0)??0,h=t.data?.reduce((y,b)=>y+b.threadCount,0)??0,m=i==="threads"?e:t,v=typeof s=="function"?s(i):s;return o.jsxs(Bt,{children:[o.jsxs(Bt.TopBar,{children:[o.jsx(Bt.TitleAndDescription,{title:"Memory",description:"Resource and Thread consumption"}),i==="threads"&&d&&o.jsx(Bt.Summary,{value:p.toLocaleString(),label:"Total runs"}),i==="resources"&&f&&o.jsx(Bt.Summary,{value:h.toLocaleString(),label:"Total threads"}),v?o.jsx(Bt.Actions,{children:v}):null]}),m.isLoading?o.jsx(Bt.Loading,{}):m.isError?o.jsx(Bt.Error,{message:"Failed to load memory data"}):o.jsx(Bt.Content,{children:o.jsxs(Vl,{defaultTab:"threads",value:i,onValueChange:y=>{dxs(y)&&l(y)},className:"grid h-full grid-rows-[auto_1fr] overflow-y-auto",children:[o.jsxs(ql,{children:[o.jsx(hr,{value:"threads",children:"Threads"}),o.jsx(hr,{value:"resources",children:"Resources"})]}),o.jsx(Br,{value:"threads",children:d?o.jsxs(be,{columns:"auto auto auto auto auto",...Mxe,children:[o.jsxs(be.Top,{children:[o.jsx(be.TopCell,{sticky:"start",children:"Thread ID"}),o.jsx(be.TopCell,{className:"justify-end text-right",children:"Resource ID"}),o.jsx(be.TopCell,{className:"justify-end text-right",children:"Runs"}),o.jsx(be.TopCell,{className:"justify-end text-right",children:"Tokens"}),o.jsx(be.TopCell,{className:"justify-end text-right",children:"Cost"})]}),c.map(y=>{const b=n?.(y),x=o.jsxs(o.Fragment,{children:[o.jsx(be.RowHeaderCell,{className:"text-ui-sm",children:Mie(y.threadId)}),o.jsx(be.NumberCell,{children:y.resourceId?Mie(y.resourceId):"—"}),o.jsx(be.NumberCell,{highlight:!0,children:y.runs.toLocaleString()}),o.jsx(be.NumberCell,{children:y.tokens>0?sl(y.tokens):"—"}),o.jsx(be.NumberCell,{children:y.cost!=null?Up(y.cost,y.costUnit):"—"})]});return b?o.jsx(be.RowLink,{to:b,LinkComponent:a,children:x},y.key):o.jsx(be.RowStatic,{children:x},y.key)})]}):o.jsx(Bt.NoData,{message:"No thread activity yet"})}),o.jsx(Br,{value:"resources",children:f?o.jsxs(be,{columns:"auto auto auto auto",...Mxe,children:[o.jsxs(be.Top,{children:[o.jsx(be.TopCell,{sticky:"start",children:"Resource ID"}),o.jsx(be.TopCell,{className:"justify-end text-right",children:"Threads"}),o.jsx(be.TopCell,{className:"justify-end text-right",children:"Tokens"}),o.jsx(be.TopCell,{className:"justify-end text-right",children:"Cost"})]}),u.map(y=>{const b=r?.(y),x=o.jsxs(o.Fragment,{children:[o.jsx(be.RowHeaderCell,{className:"text-ui-sm",children:Mie(y.resourceId)}),o.jsx(be.NumberCell,{highlight:!0,children:y.threadCount.toLocaleString()}),o.jsx(be.NumberCell,{children:y.tokens>0?sl(y.tokens):"—"}),o.jsx(be.NumberCell,{children:y.cost!=null?Up(y.cost,y.costUnit):"—"})]});return b?o.jsx(be.RowLink,{to:b,LinkComponent:a,children:x},y.key):o.jsx(be.RowStatic,{children:x},y.key)})]}):o.jsx(Bt.NoData,{message:"No resource activity yet"})})]})})]})}const Die=20;function pxs(){const e=Ge(),{filters:t,filterKey:n}=Fm();return yt({queryKey:["metrics","top-active-threads",n],queryFn:async()=>{const r={groupBy:["threadId","resourceId"],orderDirection:"DESC",filters:t},[s,a,i]=await Promise.all([e.getMetricBreakdown({...r,name:["mastra_agent_duration_ms"],aggregation:"count",limit:Die}),e.getMetricBreakdown({...r,name:["mastra_model_total_input_tokens"],aggregation:"sum",limit:Die}),e.getMetricBreakdown({...r,name:["mastra_model_total_output_tokens"],aggregation:"sum",limit:Die})]),l=new Map,c=d=>uA(l,d,()=>({tokens:0,cost:null,costUnit:null})),u=d=>{for(const f of d){const p=f.dimensions.threadId;if(!p)continue;const h=c(p);h.tokens+=f.value,f.estimatedCost!=null&&(h.cost=(h.cost??0)+f.estimatedCost,f.costUnit&&(h.costUnit=f.costUnit))}};return u(a.groups),u(i.groups),s.groups.filter(d=>!!d.dimensions.threadId).map(d=>{const f=d.dimensions.threadId,p=l.get(f);return{threadId:f,resourceId:d.dimensions.resourceId??null,runs:d.value,tokens:p?.tokens??0,cost:p?.cost??null,costUnit:p?.costUnit??null}})}})}const Lie=20;function hxs(){const e=Ge(),{filters:t,filterKey:n}=Fm();return yt({queryKey:["metrics","top-resources-by-threads",n],queryFn:async()=>{const r={groupBy:["resourceId"],orderDirection:"DESC",filters:t},[s,a,i]=await Promise.all([e.getMetricBreakdown({...r,name:["mastra_agent_duration_ms"],aggregation:"count_distinct",distinctColumn:"threadId",limit:Lie}),e.getMetricBreakdown({...r,name:["mastra_model_total_input_tokens"],aggregation:"sum",limit:Lie}),e.getMetricBreakdown({...r,name:["mastra_model_total_output_tokens"],aggregation:"sum",limit:Lie})]),l=new Map,c=d=>uA(l,d,()=>({tokens:0,cost:null,costUnit:null})),u=d=>{for(const f of d){const p=f.dimensions.resourceId;if(!p)continue;const h=c(p);h.tokens+=f.value,f.estimatedCost!=null&&(h.cost=(h.cost??0)+f.estimatedCost,f.costUnit&&(h.costUnit=f.costUnit))}};return u(a.groups),u(i.groups),s.groups.filter(d=>!!d.dimensions.resourceId).map(d=>{const f=d.dimensions.resourceId,p=l.get(f);return{resourceId:f,threadCount:d.value,tokens:p?.tokens??0,cost:p?.cost??null,costUnit:p?.costUnit??null}})}})}function mxs(){const e=pxs(),t=hxs(),{getTracesHref:n}=dA(),{Link:r}=dn();return o.jsx(fxs,{threads:{data:e.data,isLoading:e.isLoading,isError:e.isError},resources:{data:t.data,isLoading:t.isLoading,isError:t.isError},LinkComponent:r,getThreadRowHref:s=>n({threadId:s.threadId,...s.resourceId?{resourceId:s.resourceId}:{}}),getResourceRowHref:s=>n({resourceId:s.resourceId})})}function VL({label:e,value:t,prevValue:n,changePct:r,isLoading:s,isError:a}){const i=t!=null;return o.jsxs(Wr,{children:[o.jsx(Wr.Label,{children:e}),o.jsx(Wr.Value,{className:i?void 0:"invisible",children:i?t:"—"}),a?o.jsx(Wr.Error,{}):s?o.jsx(Wr.Loading,{}):i?r!=null?o.jsx(Wr.Change,{changePct:r,prevValue:n}):o.jsx(Wr.NoChange,{}):o.jsx(Wr.NoData,{})]})}function gxs(){const e=Ge(),{filters:t,filterKey:n}=Fm();return yt({queryKey:["metrics","active-resources-kpi",n],queryFn:()=>e.getMetricAggregate({name:["mastra_agent_duration_ms"],aggregation:"count_distinct",distinctColumn:"resourceId",filters:t,comparePeriod:"previous_period"})})}function vxs(){const e=Ge(),{filters:t,filterKey:n}=Fm();return yt({queryKey:["metrics","active-threads-kpi",n],queryFn:()=>e.getMetricAggregate({name:["mastra_agent_duration_ms"],aggregation:"count_distinct",distinctColumn:"threadId",filters:t,comparePeriod:"previous_period"})})}function yxs(){const e=Ge(),{filters:t,filterKey:n}=Fm();return yt({queryKey:["metrics","model-cost-kpi",n],queryFn:async()=>{const r=await e.getMetricAggregate({name:["mastra_model_total_input_tokens","mastra_model_total_output_tokens"],aggregation:"sum",filters:t,comparePeriod:"previous_period"});return{cost:r.estimatedCost??null,costUnit:r.costUnit??null,previousCost:r.previousEstimatedCost??null,costChangePercent:r.costChangePercent??null}}})}function bxs(){const e=Ge(),{filters:t,filterKey:n}=Fm();return yt({queryKey:["metrics","total-tokens-kpi",n],queryFn:async()=>{const[r,s]=await Promise.all([e.getMetricAggregate({name:["mastra_model_total_input_tokens"],aggregation:"sum",filters:t,comparePeriod:"previous_period"}),e.getMetricAggregate({name:["mastra_model_total_output_tokens"],aggregation:"sum",filters:t,comparePeriod:"previous_period"})]),a=r.value!=null||s.value!=null,i=r.previousValue!=null||s.previousValue!=null,l=(r.value??0)+(s.value??0),c=(r.previousValue??0)+(s.previousValue??0),u=i&&c>0?(l-c)/c*100:null;return{value:a?l:null,previousValue:i?c:null,changePercent:u}}})}function xxs(){const{data:e,isLoading:t,isError:n}=$Vt();return o.jsx(VL,{label:"Total Agent Runs",value:e?.value!=null?e.value.toLocaleString():null,prevValue:e?.previousValue!=null?e.previousValue.toLocaleString():void 0,changePct:e?.changePercent??null,isLoading:t,isError:n})}function wxs(){const{data:e,isLoading:t,isError:n}=yxs();return o.jsx(VL,{label:"Total Model Cost",value:e?.cost!=null?Up(e.cost,e.costUnit):null,prevValue:e?.previousCost!=null?Up(e.previousCost,e.costUnit):void 0,changePct:e?.costChangePercent??null,isLoading:t,isError:n})}function Sxs(){const{data:e,isLoading:t,isError:n}=bxs();return o.jsx(VL,{label:"Total Tokens",value:e?.value!=null?sl(e.value):null,prevValue:e?.previousValue!=null?sl(e.previousValue):void 0,changePct:e?.changePercent??null,isLoading:t,isError:n})}function kxs(){const{data:e,isLoading:t,isError:n}=vxs();return o.jsx(VL,{label:"Total Threads",value:e?.value!=null?sl(e.value):null,prevValue:e?.previousValue!=null?sl(e.previousValue):void 0,changePct:e?.changePercent??null,isLoading:t,isError:n})}function Oxs(){const{data:e,isLoading:t,isError:n}=gxs();return o.jsx(VL,{label:"Total Resources",value:e?.value!=null?sl(e.value):null,prevValue:e?.previousValue!=null?sl(e.previousValue):void 0,changePct:e?.changePercent??null,isLoading:t,isError:n})}function _xs({onClear:e,onRemoveAll:t,onSave:n,onRemoveSaved:r,isLoading:s,filterFields:a,filterTokens:i,onFilterTokensChange:l,autoFocusFilterFieldId:c}){const u=i.length>0,d=i.some(f=>Cxs(f,a));return o.jsxs("div",{className:K("grid grid-cols-[1fr_auto] gap-3 items-start"),children:[o.jsx(EAe,{fields:a,tokens:i,onTokensChange:l,disabled:s,autoFocusFieldId:c}),u&&o.jsx(_Ae,{disabled:s,onClear:d?e:void 0,onRemoveAll:t,onSave:n,onRemoveSaved:r})]})}function Cxs(e,t){const n=t.find(r=>r.id===e.fieldId);return n?n.kind==="text"?typeof e.value=="string"&&e.value.trim()!=="":n.kind==="pick-multi"?n.multi?Array.isArray(e.value)&&e.value.length>0:typeof e.value=="string"&&e.value!==""&&e.value!=="Any":n.kind==="multi-select"?Array.isArray(e.value)&&e.value.length>0:!1:!1}function Exs({rows:e,isLoading:t,isError:n,getRowHref:r,actions:s,LinkComponent:a}){const i=!!e&&e.length>0;return o.jsxs(Bt,{children:[o.jsxs(Bt.TopBar,{children:[o.jsx(Bt.TitleAndDescription,{title:"Model Usage & Cost",description:"Token consumption by model."}),i&&(()=>{const l=e.reduce((d,f)=>d+(f.cost??0),0),c=new Set;for(const d of e)d.cost!=null&&d.costUnit&&c.add(d.costUnit);let u;return c.size===0?u=l>0?Up(l):"—":c.size===1?u=l>0?Up(l,[...c][0]):"—":u="Mixed",o.jsx(Bt.Summary,{value:u,label:"Total cost"})})(),s?o.jsx(Bt.Actions,{children:s}):null]}),t?o.jsx(Bt.Loading,{}):n?o.jsx(Bt.Error,{message:"Failed to load model usage data"}):o.jsx(Bt.Content,{children:i?o.jsxs(be,{columns:"auto auto auto auto auto auto",...Mxe,children:[o.jsxs(be.Top,{children:[o.jsx(be.TopCell,{sticky:"start",children:"Model"}),o.jsx(be.TopCell,{className:"justify-end text-right",children:"Input"}),o.jsx(be.TopCell,{className:"justify-end text-right",children:"Output"}),o.jsx(be.TopCell,{className:"justify-end text-right",children:"Cache Read"}),o.jsx(be.TopCell,{className:"justify-end text-right",children:"Cache Write"}),o.jsx(be.TopCell,{className:"justify-end text-right",children:"Cost"})]}),e.map(l=>{const c=r?.(l),u=o.jsxs(o.Fragment,{children:[o.jsx(be.RowHeaderCell,{className:"text-ui-sm",children:l.model}),o.jsx(be.NumberCell,{children:l.input}),o.jsx(be.NumberCell,{children:l.output}),o.jsx(be.NumberCell,{children:l.cacheRead}),o.jsx(be.NumberCell,{children:l.cacheWrite}),o.jsx(be.NumberCell,{highlight:!0,children:l.cost!=null?Up(l.cost,l.costUnit):"—"})]});return c?o.jsx(be.RowLink,{to:c,LinkComponent:a,children:u},l.model):o.jsx(be.RowStatic,{children:u},l.model)})]}):o.jsx(Bt.NoData,{message:"No model usage data yet"})})]})}function Txs(){const e=Ge(),{filters:t,filterKey:n}=Fm();return yt({queryKey:["metrics","model-usage-cost",n],queryFn:async()=>{const[r,s,a,i]=await Promise.all(["mastra_model_total_input_tokens","mastra_model_total_output_tokens","mastra_model_input_cache_read_tokens","mastra_model_input_cache_write_tokens"].map(d=>e.getMetricBreakdown({name:[d],groupBy:["model"],aggregation:"sum",orderDirection:"DESC",filters:t})));if(!r||!s||!a||!i)return[];const l=new Map,c=d=>uA(l,d,()=>({input:0,output:0,cacheRead:0,cacheWrite:0,cost:null,costUnit:null})),u=(d,f)=>{f.estimatedCost!=null&&(d.cost=(d.cost??0)+f.estimatedCost,f.costUnit&&(d.costUnit=f.costUnit))};for(const d of r.groups){const f=d.dimensions.model??"unknown",p=c(f);p.input=d.value,u(p,d)}for(const d of s.groups){const f=d.dimensions.model??"unknown",p=c(f);p.output=d.value,u(p,d)}for(const d of a.groups){const f=d.dimensions.model??"unknown",p=c(f);p.cacheRead=d.value}for(const d of i.groups){const f=d.dimensions.model??"unknown",p=c(f);p.cacheWrite=d.value}return Array.from(l.entries()).map(([d,f])=>({model:d,input:sl(f.input),output:sl(f.output),cacheRead:sl(f.cacheRead),cacheWrite:sl(f.cacheWrite),cost:f.cost,costUnit:f.costUnit})).sort((d,f)=>d.model.localeCompare(f.model))}})}function jxs(){const{data:e,isLoading:t,isError:n}=Txs(),{getTracesHref:r}=dA(),{Link:s}=dn();return o.jsx(Exs,{rows:e,isLoading:t,isError:n,LinkComponent:s,getRowHref:()=>r({rootEntityType:Wu.AGENT}),actions:o.jsx(qL,{href:r({rootEntityType:Wu.AGENT}),LinkComponent:s})})}function Nxs(e){return e==="tokens"||e==="cost"}function Ixs({data:e,isLoading:t,isError:n,getRowHref:r,actions:s,LinkComponent:a}){const[i,l]=g.useState("tokens"),c=e??[],u=c.length>0,d=c.reduce((b,x)=>b+x.total,0),f=c.filter(b=>b.cost!=null&&b.cost>0),p=new Set(f.map(b=>b.costUnit??"usd")),h=p.size<=1,m=h?[...p][0]??"usd":null,v=h?f.reduce((b,x)=>b+(x.cost??0),0):0,y=h&&v>0;return o.jsxs(Bt,{children:[o.jsxs(Bt.TopBar,{children:[o.jsx(Bt.TitleAndDescription,{title:"Token Usage by Agent",description:"Token consumption grouped by agent."}),u&&(i==="cost"&&y?o.jsx(Bt.Summary,{value:Up(v,m),label:"Total cost"}):o.jsx(Bt.Summary,{value:sl(d),label:"Total tokens"})),u&&s?o.jsx(Bt.Actions,{children:s}):null]}),t?o.jsx(Bt.Loading,{}):n?o.jsx(Bt.Error,{message:"Failed to load token usage data"}):o.jsx(Bt.Content,{children:u?o.jsxs(Vl,{defaultTab:"tokens",value:i,onValueChange:b=>{Nxs(b)&&l(b)},className:"grid h-full grid-rows-[auto_1fr] overflow-y-auto",children:[o.jsxs(ql,{children:[o.jsx(hr,{value:"tokens",children:"Tokens"}),o.jsx(hr,{value:"cost",children:"Cost"})]}),o.jsx(Br,{value:"tokens",children:o.jsx(VN,{LinkComponent:a,data:c.map(b=>({name:b.name,values:[b.input,b.output],href:r?.(b)})),segments:[{label:"Input",color:qp.blueDark},{label:"Output",color:qp.blue}],maxVal:Math.max(...c.map(b=>b.input+b.output)),fmt:sl})}),o.jsx(Br,{value:"cost",children:y?o.jsx(VN,{LinkComponent:a,data:f.slice().sort((b,x)=>(x.cost??0)-(b.cost??0)).map(b=>({name:b.name,values:[b.cost],href:r?.(b)})),segments:[{label:"Cost",color:qp.purple}],maxVal:Math.max(...f.map(b=>b.cost??0)),fmt:b=>Up(b,m)}):o.jsx(Bt.NoData,{message:"No cost data yet"})})]}):o.jsx(Bt.NoData,{message:"No token usage data yet"})})]})}function Axs(){const e=Ge(),{filters:t,filterKey:n}=Fm();return yt({queryKey:["metrics","token-usage-by-agent",n],queryFn:async()=>{const r={groupBy:["entityName"],aggregation:"sum",orderDirection:"DESC",filters:t},[s,a]=await Promise.all([e.getMetricBreakdown({...r,name:["mastra_model_total_input_tokens"]}),e.getMetricBreakdown({...r,name:["mastra_model_total_output_tokens"]})]),i=new Map,l=u=>uA(i,u,()=>({input:0,output:0,cost:null,costUnit:null})),c=(u,d)=>{d.estimatedCost!=null&&(u.cost=(u.cost??0)+d.estimatedCost,d.costUnit&&(u.costUnit=d.costUnit))};for(const u of s.groups){const d=u.dimensions.entityName??"unknown",f=l(d);f.input=u.value,c(f,u)}for(const u of a.groups){const d=u.dimensions.entityName??"unknown",f=l(d);f.output=u.value,c(f,u)}return Array.from(i.entries()).map(([u,d])=>({name:u,input:d.input,output:d.output,total:d.input+d.output,cost:d.cost,costUnit:d.costUnit})).sort((u,d)=>d.total-u.total)}})}function Rxs(){const{data:e,isLoading:t,isError:n}=Axs(),{getTracesHref:r}=dA(),{Link:s}=dn();return o.jsx(Ixs,{data:e,isLoading:t,isError:n,LinkComponent:s,getRowHref:a=>r({rootEntityType:Wu.AGENT,entityName:a.name}),actions:o.jsx(qL,{href:r({rootEntityType:Wu.AGENT}),LinkComponent:s})})}function Gxe(e,t=sl){return n=>({value:t(n.reduce((r,s)=>r+(typeof s[e]=="number"?s[e]:0),0))})}const Pxs=[{dataKey:"input",label:"Input tokens",color:qp.blue,aggregate:Gxe("input")},{dataKey:"output",label:"Output tokens",color:qp.yellow,aggregate:Gxe("output")}];function $xs(e){return e==="tokens"||e==="cost"}function Mxs({data:e,interval:t="1d",isLoading:n,isError:r,actions:s}){const[a,i]=g.useState("tokens"),l=e??[],c=l.map(k=>({...k})),u=l.length>0,d=l.reduce((k,_)=>k+_.total,0),f=l.filter(k=>k.cost!=null&&k.cost>0),p=f.map(k=>({...k})),h=new Set(f.map(k=>k.costUnit).filter(k=>!!k)),m=h.size===1&&f.every(k=>k.costUnit!=null),v=m?[...h][0]??null:null,y=m?f.reduce((k,_)=>k+(_.cost??0),0):0,b=m&&y>0,x=t==="1h"?"Input and output tokens per hour.":"Input and output tokens per day.",S=[{dataKey:"cost",label:"Cost",color:qp.purple,aggregate:Gxe("cost",k=>Up(k,v))}];return o.jsxs(Bt,{children:[o.jsxs(Bt.TopBar,{children:[o.jsx(Bt.TitleAndDescription,{title:"Token usage over time",description:x}),u&&(a==="cost"&&b?o.jsx(Bt.Summary,{value:Up(y,v),label:"Total cost"}):o.jsx(Bt.Summary,{value:sl(d),label:"Total tokens"})),u&&s?o.jsx(Bt.Actions,{children:s}):null]}),n?o.jsx(Bt.Loading,{}):r?o.jsx(Bt.Error,{message:"Failed to load token usage timeline"}):o.jsx(Bt.Content,{children:u?o.jsxs(Vl,{defaultTab:"tokens",value:a,onValueChange:k=>{$xs(k)&&i(k)},className:"overflow-visible",children:[o.jsxs(ql,{children:[o.jsx(hr,{value:"tokens",children:"Tokens"}),o.jsx(hr,{value:"cost",children:"Cost"})]}),o.jsx(Br,{value:"tokens",children:o.jsx(AD,{data:c,series:Pxs})}),o.jsx(Br,{value:"cost",children:b?o.jsx(AD,{data:p,series:S}):o.jsx(Bt.NoData,{message:"No cost data yet"})})]}):o.jsx(Bt.NoData,{message:"No token usage data yet"})})]})}function Dxs(e){return e==="24h"?"1h":"1d"}function Lxs(e,t){return t==="1h"?e.toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit",hour12:!1}):e.toLocaleDateString("en-US",{month:"short",day:"2-digit"})}function ltt(e,t,n){for(const r of t?.points??[]){const s=new Date(r.timestamp).getTime();if(!Number.isFinite(s))continue;const a=e.get(s)??{tsMs:s,input:0,output:0,cost:null,costUnits:new Set,hasUnknownCostUnit:!1};a[n]+=r.value,r.estimatedCost!=null&&(a.cost=(a.cost??0)+r.estimatedCost,t?.costUnit?a.costUnits.add(t.costUnit):a.hasUnknownCostUnit=!0),e.set(s,a)}}function Fxs(e){return e.cost==null||e.hasUnknownCostUnit||e.costUnits.size!==1?null:[...e.costUnits][0]??null}function zxs(){const e=Ge(),{datePreset:t,filters:n,filterKey:r}=Fm(),s=Dxs(t);return yt({queryKey:["metrics","token-usage-timeseries",r,s],queryFn:async()=>{const[a,i]=await Promise.all([e.getMetricTimeSeries({name:["mastra_model_total_input_tokens"],interval:s,aggregation:"sum",filters:n}),e.getMetricTimeSeries({name:["mastra_model_total_output_tokens"],interval:s,aggregation:"sum",filters:n})]),l=new Map;return ltt(l,a.series[0],"input"),ltt(l,i.series[0],"output"),{data:Array.from(l.values()).sort((u,d)=>u.tsMs-d.tsMs).map(u=>{const d=new Date(u.tsMs);return{time:Lxs(d,s),tsMs:u.tsMs,input:u.input,output:u.output,total:u.input+u.output,cost:u.cost,costUnit:Fxs(u)}}),interval:s}}})}function Bxs(){const{data:e,isLoading:t,isError:n}=zxs(),{getTracesHref:r}=dA(),{Link:s}=dn();return o.jsx(Mxs,{data:e?.data,interval:e?.interval,isLoading:t,isError:n,actions:o.jsx(qL,{href:r(),LinkComponent:s})})}function Fie({data:e,rowHrefs:t,errorHrefs:n,LinkComponent:r}){return o.jsx(VN,{LinkComponent:r,data:e.map(s=>{const a=n?.(s),i=t?.(s);return a?{name:s.name,values:[s.completed,s.errors],hrefs:[i,a]}:{name:s.name,values:[s.completed,s.errors],href:i}}),segments:[{label:"Completed",color:qp.blueDark},{label:"Errors",color:qp.pink}],maxVal:Math.max(...e.map(s=>s.completed+s.errors)),fmt:sl})}function Uxs({data:e,isLoading:t,isError:n,getRowHref:r,getErrorSegmentHref:s,actions:a,LinkComponent:i}){const[l,c]=g.useState("agents"),u=typeof a=="function"?a(l):a,d=!!e&&(e.agentData.length>0||e.workflowData.length>0||e.toolData.length>0),f=e?[...e.agentData,...e.workflowData,...e.toolData].reduce((m,v)=>m+v.completed+v.errors,0):0,p=m=>r?v=>r(m,v):void 0,h=m=>s?v=>s(m,v):void 0;return o.jsxs(Bt,{children:[o.jsxs(Bt.TopBar,{children:[o.jsx(Bt.TitleAndDescription,{title:"Trace Volume",description:"Runs and call counts."}),d&&o.jsx(Bt.Summary,{value:sl(f),label:"Total runs"}),u?o.jsx(Bt.Actions,{children:u}):null]}),t?o.jsx(Bt.Loading,{}):n?o.jsx(Bt.Error,{message:"Failed to load trace volume data"}):o.jsx(Bt.Content,{children:d?o.jsxs(Vl,{value:l,onValueChange:c,defaultTab:"agents",className:"grid h-full grid-rows-[auto_1fr] overflow-y-auto",children:[o.jsxs(ql,{children:[o.jsx(hr,{value:"agents",children:"Agents"}),o.jsx(hr,{value:"workflows",children:"Workflows"}),o.jsx(hr,{value:"tools",children:"Tools"})]}),o.jsx(Br,{value:"agents",children:e.agentData.length>0?o.jsx(Fie,{data:e.agentData,rowHrefs:p("agents"),errorHrefs:h("agents"),LinkComponent:i}):o.jsx(Bt.NoData,{message:"No agent data yet"})}),o.jsx(Br,{value:"workflows",children:e.workflowData.length>0?o.jsx(Fie,{data:e.workflowData,rowHrefs:p("workflows"),errorHrefs:h("workflows"),LinkComponent:i}):o.jsx(Bt.NoData,{message:"No workflow data yet"})}),o.jsx(Br,{value:"tools",children:e.toolData.length>0?o.jsx(Fie,{data:e.toolData,rowHrefs:p("tools"),errorHrefs:h("tools"),LinkComponent:i}):o.jsx(Bt.NoData,{message:"No tool data yet"})})]}):o.jsx(Bt.NoData,{message:"No trace volume data yet"})})]})}async function zie(e,t,n){const r=await e.getMetricBreakdown({name:[t],groupBy:["entityName","status"],aggregation:"count",orderDirection:"DESC",filters:n}),s=new Map;for(const a of r.groups){const i=a.dimensions.entityName??"unknown",l=a.dimensions.status??"ok",c=uA(s,i,()=>({completed:0,errors:0}));l==="error"?c.errors+=a.value:c.completed+=a.value}return Array.from(s.entries()).map(([a,i])=>({name:a,...i})).sort((a,i)=>i.completed+i.errors-(a.completed+a.errors))}function qxs(){const e=Ge(),{filters:t,filterKey:n}=Fm();return yt({queryKey:["metrics","trace-volume",n],queryFn:async()=>{const[r,s,a]=await Promise.all([zie(e,"mastra_agent_duration_ms",t),zie(e,"mastra_workflow_duration_ms",t),zie(e,"mastra_tool_duration_ms",t)]);return{agentData:r,workflowData:s,toolData:a}}})}const t8={agents:Wu.AGENT,workflows:Wu.WORKFLOW_RUN,tools:Wu.TOOL};function Vxs(){const{data:e,isLoading:t,isError:n}=qxs(),{getTracesHref:r,getLogsHref:s}=dA(),{Link:a}=dn();return o.jsx(Uxs,{data:e,isLoading:t,isError:n,LinkComponent:a,getRowHref:(i,l)=>r({rootEntityType:t8[i],entityName:l.name}),getErrorSegmentHref:(i,l)=>l.errors>0?s({rootEntityType:t8[i],entityName:l.name,status:"error"}):void 0,actions:i=>o.jsxs(o.Fragment,{children:[o.jsx(qL,{href:r({rootEntityType:t8[i]}),LinkComponent:a}),o.jsx(txs,{href:s({rootEntityType:t8[i],status:"error"}),LinkComponent:a})]})})}const Bie="period",n8="dateFrom",r8="dateTo";function Hxs(){const[e,t]=ti(),n=e.get(Bie),r=Wbs(n)?n:"24h",s=g.useMemo(()=>{if(r!=="custom")return;const d=h=>{if(!h)return;const m=new Date(h);return Number.isNaN(m.getTime())?void 0:m},f=d(e.get(n8)),p=d(e.get(r8));if(!(!f&&!p))return{from:f,to:p}},[r,e.toString()]),a=g.useMemo(()=>Fbs(e),[e.toString()]),i=g.useCallback(d=>{t(f=>{const p=new URLSearchParams(f);return d==="24h"?p.delete(Bie):p.set(Bie,d),d!=="custom"&&(p.delete(n8),p.delete(r8)),p},{replace:!0})},[t]),l=g.useCallback(d=>{t(f=>{const p=new URLSearchParams(f);return d?.from?p.set(n8,d.from.toISOString()):p.delete(n8),d?.to?p.set(r8,d.to.toISOString()):p.delete(r8),p},{replace:!0})},[t]),c=g.useCallback(d=>{t(f=>{const p=new URLSearchParams(f);return Bbs(p,d),p},{replace:!0})},[t]),u=g.useRef(!1);return g.useEffect(()=>{if(u.current||(u.current=!0,Dbs(e)))return;const d=AVt();d&&t(f=>{const p=new URLSearchParams(f);for(const[h,m]of d)p.append(h,m);return p},{replace:!0})},[]),o.jsx(Gbs,{preset:r,filterTokens:a,onPresetChange:i,onFilterTokensChange:c,customRange:s,onCustomRangeChange:l,children:o.jsx(Wxs,{})})}function Wxs(){const[e]=ti(),{error:t,isLoading:n}=$Vt(),{filterTokens:r,setFilterTokens:s}=GQ(),[a,i]=g.useState(),{supportsMetrics:l,isInMemory:c,isLoading:u}=Fqt(),{data:d,isLoading:f}=PAe(),{data:p,isLoading:h}=IAe(),{data:m,isLoading:v}=RAe(),{data:y,isLoading:b}=AAe(),x=g.useMemo(()=>Lbs({availableTags:d??[],availableEntityNames:p??[],availableServiceNames:m??[],availableEnvironments:y??[],loading:{tags:f,entityNames:h,serviceNames:v,environments:b}}),[d,p,m,y,f,h,v,b]),[S,k]=g.useState(()=>AVt()!==null),_=g.useCallback(()=>{$bs(e),k(!0),Be.success("Filters setting for Metrics saved")},[e]),C=g.useCallback(()=>{Mbs(),k(!1),Be.success("Filters setting for Metrics cleared up")},[]),T=g.useCallback(()=>{s([])},[s]),E=g.useCallback(()=>{const N=r.map(I=>{const A=x.find(R=>R.id===I.fieldId);return A?A.kind==="text"?{fieldId:I.fieldId,value:""}:A.kind==="pick-multi"?A.multi?{fieldId:I.fieldId,value:[]}:{fieldId:I.fieldId,value:"Any"}:A.kind==="multi-select"?{fieldId:I.fieldId,value:[]}:I:I});s(N)},[x,r,s]);return t&&ws(t)?o.jsx(ar,{children:o.jsx(Ys,{})}):t&&Ss(t)?o.jsx(ar,{children:o.jsx(qs,{resource:"metrics"})}):t?o.jsx(ar,{children:o.jsx(Ui,{title:"Failed to load metrics",message:t.message})}):o.jsxs(Ut,{width:"wide",height:"full",children:[o.jsxs(Ut.TopArea,{children:[o.jsx(Ut.Row,{children:o.jsxs(Ut.Column,{className:"flex flex-wrap items-start justify-start gap-2",children:[o.jsx(Xbs,{}),o.jsx(TAe,{fields:x,tokens:r,onTokensChange:s,disabled:n,onStartTextFilter:i})]})}),o.jsx(_xs,{isLoading:n,filterFields:x,filterTokens:r,onFilterTokensChange:s,onClear:E,onRemoveAll:T,onSave:_,onRemoveSaved:S?C:void 0,autoFocusFilterFieldId:a})]}),u?null:l?o.jsxs("div",{className:"grid content-start gap-8 pb-10",children:[c&&o.jsx(Zn,{variant:"info",title:"Metrics are not persisted",children:o.jsx(Zn.Message,{children:"This project uses in-memory storage for observability. Metrics will be lost on every server restart. For persistent metrics, switch the observability storage to ClickHouse, DuckDB, Postgres v-next, or Spanner."})}),o.jsxs(Uxe,{children:[o.jsx(xxs,{}),o.jsx(wxs,{}),o.jsx(Sxs,{}),o.jsx(kxs,{}),o.jsx(Oxs,{})]}),o.jsxs(Uxe,{children:[o.jsx(jxs,{}),o.jsx(Rxs,{}),o.jsx(Bxs,{}),o.jsx(mxs,{}),o.jsx(Vxs,{}),o.jsx(uxs,{})]})]}):o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(_r,{iconSlot:o.jsx(Df,{}),titleSlot:"Metrics are not available with your current storage",descriptionSlot:"Metrics require ClickHouse, DuckDB, Postgres v-next, Spanner, or in-memory storage for observability. Other relational databases (LibSQL, MSSQL) and document stores (MongoDB) do not support metrics collection. To enable metrics on an existing project, switch the observability storage in the Mastra configuration.",actionSlot:o.jsxs(oe,{variant:"ghost",as:"a",href:"https://mastra.ai/docs/observability/metrics/overview",target:"_blank",rel:"noopener noreferrer",children:["Metrics Documentation ",o.jsx(ds,{})]})})})]})}const Zxs=50;function Gxs(){const{paths:e}=dn(),{isCmsAvailable:t}=pS(),[n,r]=g.useState(""),[s,a]=g.useState(0),{data:i,isLoading:l,error:c,isPlaceholderData:u}=UBt({page:s,perPage:Zxs}),d=i?.promptBlocks??[],f=i?.hasMore??!1,p=g.useCallback(()=>{u||a(v=>v+1)},[u]),h=g.useCallback(()=>{u||a(v=>Math.max(0,v-1))},[u]),m=g.useCallback(v=>{r(v),a(0)},[]);return c&&ws(c)?o.jsx(ar,{children:o.jsx(Ys,{})}):c&&Ss(c)?o.jsx(ar,{children:o.jsx(qs,{resource:"prompt blocks"})}):c?o.jsx(ar,{children:o.jsx(Ui,{title:"Failed to load prompt blocks",message:c.message})}):d.length===0&&!l&&s===0?o.jsx(ar,{children:o.jsx(Bos,{})}):o.jsxs(Ut,{children:[o.jsx(Ut.TopArea,{children:o.jsxs(Ut.Row,{align:"center",stack:"responsive",children:[o.jsx("div",{className:"max-w-120 flex-1",children:o.jsx(Bf,{onSearch:m,label:"Filter prompts",placeholder:"Filter by name or description"})}),t&&o.jsxs(oe,{as:ki,to:e.cmsPromptBlockCreateLink(),variant:"primary",className:"shrink-0",children:[o.jsx(Qr,{}),"Create Prompt"]})]})}),o.jsx(zos,{promptBlocks:d,isLoading:l,search:n,currentPage:s,hasMore:f,onNextPage:p,onPrevPage:h})]})}function Qxs(){return o.jsx(Ut,{width:"narrow",children:o.jsx(Ut.MainArea,{children:o.jsx(uss,{children:o.jsx(gxe,{})})})})}const Yxs=[{title:"Mastra APIs",description:"Explore and test the available REST API endpoints with the interactive Swagger UI.",icon:uYt,href:"/swagger-ui",external:!1},{title:"Documentation",description:"Read the official Mastra documentation for guides, references, and tutorials.",icon:Flt,href:"https://mastra.ai/en/docs",external:!0},{title:"Github",description:"Browse the source code, report issues, and contribute to the Mastra project.",icon:ds,href:"https://github.com/mastra-ai/mastra",external:!0},{title:"Community",description:"Join the Mastra Discord community for help, discussion, and collaboration.",icon:wV,href:"https://discord.gg/BTYqqHKUrf",external:!0},{title:"Share with your team",description:"Running Mastra Studio locally? Deploy to the cloud so your team can collaborate.",icon:Hlt,href:"https://mastra.ai/cloud",external:!0},{title:"Talk to our Sales team",description:"Get a custom demo, discuss on-prem deployments, and how we can help you accelerate getting agents into production.",icon:zlt,href:"https://mastra.ai/contact?ref=studio",external:!0}];function Kxs(){return o.jsx(Ut,{width:"narrow",children:o.jsx(Ut.MainArea,{children:o.jsx("div",{className:"grid max-w-3xl grid-cols-1 gap-4 sm:grid-cols-2",children:Yxs.map(e=>o.jsxs("a",{href:e.href,...e.external?{target:"_blank",rel:"noreferrer"}:{},className:"group border-border1 bg-surface2 hover:border-accent1 hover:bg-surface3 flex flex-col gap-3 rounded-lg border p-5 transition-colors",children:[o.jsxs("div",{className:"flex items-center gap-2.5",children:[o.jsx(e.icon,{className:"text-icon3 group-hover:text-accent1 h-5 w-5 transition-colors"}),o.jsx("span",{className:"text-ui-md text-text1 font-medium",children:e.title}),e.external&&o.jsx(ds,{className:"text-icon3 ml-auto h-3.5 w-3.5 opacity-0 transition-opacity group-hover:opacity-100"})]}),o.jsx("p",{className:"text-ui-sm text-text3 leading-relaxed",children:e.description})]},e.href))})})})}function Xxs(){const{data:e={},isLoading:t,error:n}=lh(),[r,s]=g.useState(""),[a,i]=g.useState("all");if(n&&ws(n))return o.jsx(ar,{children:o.jsx(Ys,{})});if(n&&Ss(n))return o.jsx(ar,{children:o.jsx(qs,{resource:"scorers"})});if(n)return o.jsx(ar,{children:o.jsx(Ui,{title:"Failed to load scorers",message:n.message})});if(Object.keys(e).length===0&&!t)return o.jsx(ar,{children:o.jsx(Zas,{})});const l=a!=="all"||r!=="",c=()=>{s(""),i("all")};return o.jsxs(Ut,{children:[o.jsx(Ut.TopArea,{children:o.jsx(Qas,{search:r,onSearchChange:s,sourceFilter:a,onSourceFilterChange:i,onReset:c,hasActiveFilters:l})}),o.jsx(Was,{scorers:e,isLoading:t,search:r,sourceFilter:a})]})}function Jxs(){const{scorerId:e}=wr(),[t,n]=ti(),r=t.get("scoreId")??void 0,[s,a]=g.useState(r),[i,l]=g.useState(!1),c=Xr(),[u,d]=g.useState({value:"all",label:"All Entities",type:"ALL"}),{scorer:f,error:p}=kas(e),{data:h={},isLoading:m,error:v}=$m(),{isLoading:y,error:b}=Zy(),{data:x=[],isLoading:S,error:k,isFetchingNextPage:_,hasNextPage:C,setEndOfListElement:T}=Sas({scorerId:e,entityId:u?.value==="all"?void 0:u?.value,entityType:u?.type==="ALL"?void 0:u?.type}),E=g.useMemo(()=>f?.agentIds?.filter($=>h[$]).map($=>({value:$,label:h[$].name,type:"AGENT"}))||[],[f?.agentIds,h]),N=g.useMemo(()=>f?.workflowIds?.map($=>({value:$,label:$,type:"WORKFLOW"}))||[],[f?.workflowIds]),I=g.useMemo(()=>[{value:"all",label:"All Entities",type:"ALL"},...E,...N],[E,N]),A=t.get("entity")??"all",R=I.find($=>$.value===A);R&&R.value!==u?.value&&d(R),g.useEffect(()=>{if(p){const $=p instanceof Error?p.message:"Failed to load scorer";Be.error(`Error loading scorer: ${$}`)}},[p]),g.useEffect(()=>{if(v){const $=v instanceof Error?v.message:"Failed to load agents";Be.error(`Error loading agents: ${$}`)}},[v]),g.useEffect(()=>{if(b){const $=b instanceof Error?b.message:"Failed to load workflows";Be.error(`Error loading workflows: ${$}`)}},[b]);const L=$=>{$?.value&&n(q=>{const Z=new URLSearchParams(q);return Z.set("entity",$.value),Z})};g.useEffect(()=>{const $=t.get("scoreId")??void 0;if($===s)return;if(!$){a(void 0);return}x.find(Z=>Z.id===$)&&a($)},[t,x]);const D=g.useCallback($=>{a($||void 0),n(q=>{const Z=new URLSearchParams(q);return $?Z.set("scoreId",$):Z.delete("scoreId"),Z})},[n]);if(!f)return null;const F=ws(p)||ws(v)||ws(b),H=p&&Ss(p),B=!F&&!H&&(p||v||b),z=!S&&x.length===0,V=u?.value!=="all",M=f?.scorer?.source==="stored"?o.jsx($y,{owner:"scorer-detail",children:o.jsxs(oe,{variant:"default",as:ki,to:`/cms/scorers/${e}/edit`,size:"sm",children:[o.jsx(cm,{})," Edit"]})}):null,G=e?o.jsx(qAe,{open:i,onOpenChange:l,initialScorerIds:[e],onSuccess:$=>{c(`/experiments/${$}`)}}):null;if(F||H||B||z&&!V){const $=(p instanceof Error?p.message:void 0)??(v instanceof Error?v.message:void 0)??(b instanceof Error?b.message:void 0)??"An unexpected error occurred";return o.jsxs(Ut,{width:"wide",height:"full",className:"grid-rows-[1fr]",children:[M,o.jsx(Ut.MainArea,{isCentered:!0,children:F?o.jsx(Ys,{}):H?o.jsx(qs,{resource:"scorers"}):B?o.jsx(Ui,{title:"Failed to load scorer",message:$}):o.jsx(has,{onRunExperiment:()=>l(!0)})}),G]})}return o.jsxs(Ut,{width:"wide",height:"full",children:[M,o.jsx(Ut.TopArea,{children:o.jsxs("div",{className:"flex items-center justify-between gap-3",children:[o.jsx(gas,{selectedEntity:u,entityOptions:I,onEntityChange:L,onReset:()=>{n($=>{const q=new URLSearchParams($);return q.set("entity","all"),q})},isLoading:S||m||y}),o.jsxs(oe,{variant:"primary",onClick:()=>l(!0),children:[o.jsx(hu,{}),"Run Experiment"]})]})}),o.jsx(pas,{scores:x,isLoading:S,selectedScoreId:s,isFetchingNextPage:_,hasNextPage:C,setEndOfListElement:T,onScoreClick:D,errorMsg:k?.message}),G]})}const e0s=qa("flex min-w-0 flex-col",{variants:{variant:{default:"gap-3 sm:flex-row sm:items-center sm:justify-between",factory:"gap-2 px-4 py-3 lg:flex-row lg:items-center lg:justify-between lg:gap-4"}},defaultVariants:{variant:"default"}}),t0s=qa("flex min-w-0 flex-col",{variants:{variant:{default:"",factory:"gap-0.5"}},defaultVariants:{variant:"default"}}),ctt=qa("",{variants:{variant:{default:"text-sm font-medium",factory:"text-ui-md leading-ui-md text-neutral5"}},defaultVariants:{variant:"default"}}),n0s=qa("flex flex-col gap-0.5",{variants:{variant:{default:"text-sm text-neutral3",factory:"text-ui-sm text-neutral3"}},defaultVariants:{variant:"default"}});function r0s({label:e,description:t,htmlFor:n,variant:r,className:s,children:a}){return o.jsxs("div",{className:K(e0s({variant:r}),s),"data-slot":"settings-row",children:[o.jsxs("div",{className:t0s({variant:r}),children:[n?o.jsx($t,{htmlFor:n,className:ctt({variant:r}),children:e}):o.jsx("span",{className:ctt({variant:r}),children:e}),t&&o.jsx("div",{className:n0s({variant:r}),children:t})]}),a]})}const FVt=[{value:"dark",label:"Dark",Icon:qKt},{value:"light",label:"Light",Icon:nJt},{value:"system",label:"System",Icon:Klt}],s0s=e=>FVt.some(t=>t.value===e);function a0s({option:e}){const{Icon:t}=e;return o.jsxs("span",{className:"inline-flex max-w-full min-w-0 items-center gap-2",children:[o.jsx(t,{"aria-hidden":"true",className:"h-4 w-4 shrink-0 opacity-70"}),o.jsx("span",{className:"min-w-0 truncate",children:e.label})]})}const i0s=()=>{const{baseUrl:e,headers:t,apiPrefix:n}=jH(),{theme:r,setTheme:s}=K_();return o.jsx(Ut,{width:"narrow",children:o.jsxs(Ut.MainArea,{className:"mt-6 flex flex-col gap-5",children:[o.jsx(Wbe,{title:"Theme",description:"Customize the appearance of the studio.",children:o.jsx(r0s,{label:"Theme mode",htmlFor:"theme",children:o.jsxs(fa,{value:r,onValueChange:a=>{s0s(a)&&s(a)},children:[o.jsx(ha,{id:"theme",className:"w-full sm:w-48",children:o.jsx(pa,{className:"inline-flex max-w-full min-w-0 items-center"})}),o.jsx(ma,{children:FVt.map(a=>o.jsx(Nr,{value:a.value,children:o.jsx(a0s,{option:a})},a.value))})]})})}),o.jsx(Wbe,{title:"Mastra Connection",description:"Configure the Mastra instance URL, API prefix, and request headers used by the studio.",children:o.jsx(K3t,{initialConfig:{baseUrl:e,headers:t,apiPrefix:n}})})]})})};function o0s(){const[e]=ti(),t=Xr(),n=e.get("redirect")||"/",r=()=>{n.startsWith("http")?window.location.href=n:t(n,{replace:!0})};return o.jsx(jVt,{redirectUri:n,onSuccess:r,initialMode:"signup"})}const zVt=e=>o.jsx("svg",{width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:o.jsx("path",{d:"M7.5 0.75C3.6325 0.75 0.5 3.8825 0.5 7.75C0.5 10.8475 2.50375 13.4637 5.28625 14.3912C5.63625 14.4525 5.7675 14.2425 5.7675 14.0587C5.7675 13.8925 5.75875 13.3412 5.75875 12.755C4 13.0787 3.545 12.3262 3.405 11.9325C3.32625 11.7312 2.985 11.11 2.6875 10.9437C2.4425 10.8125 2.0925 10.4887 2.67875 10.48C3.23 10.4712 3.62375 10.9875 3.755 11.1975C4.385 12.2562 5.39125 11.9587 5.79375 11.775C5.855 11.32 6.03875 11.0137 6.24 10.8387C4.6825 10.6637 3.055 10.06 3.055 7.3825C3.055 6.62125 3.32625 5.99125 3.7725 5.50125C3.7025 5.32625 3.4575 4.60875 3.8425 3.64625C3.8425 3.64625 4.42875 3.4625 5.7675 4.36375C6.3275 4.20625 6.9225 4.1275 7.5175 4.1275C8.1125 4.1275 8.7075 4.20625 9.2675 4.36375C10.6062 3.45375 11.1925 3.64625 11.1925 3.64625C11.5775 4.60875 11.3325 5.32625 11.2625 5.50125C11.7087 5.99125 11.98 6.6125 11.98 7.3825C11.98 10.0687 10.3438 10.6637 8.78625 10.8387C9.04 11.0575 9.25875 11.4775 9.25875 12.1337C9.25875 13.07 9.25 13.8225 9.25 14.0587C9.25 14.2425 9.38125 14.4612 9.73125 14.3912C11.1209 13.9221 12.3284 13.029 13.1839 11.8377C14.0393 10.6463 14.4996 9.21668 14.5 7.75C14.5 3.8825 11.3675 0.75 7.5 0.75Z",fill:"currentColor"})});function l0s(e){return e.replace(/\/$/,"").split("/").pop()}function QQ({children:e,className:t}){return o.jsx("div",{className:K("border border-border1 rounded-lg mt-12 py-8 lg:min-h-[25rem] transition-height px-4 lg:px-12",t),children:e})}function c0s({templates:e,linkComponent:t,className:n,isLoading:r}){const s=t||"a";return r?o.jsx("div",{className:K("grid gap-y-4",n),children:Array.from({length:5}).map((a,i)=>o.jsx("div",{className:"bg-surface3 h-16 animate-pulse rounded-lg"},i))}):o.jsx("div",{className:K("grid gap-y-4",n),children:e.map(a=>{const i=a?.agents||a?.tools||a?.networks||a?.workflows||a?.mcp;return o.jsxs("article",{className:K("border border-border1 rounded-lg overflow-hidden w-full grid grid-cols-[1fr_auto] bg-surface3 transition-colors hover:bg-surface4"),children:[o.jsxs(s,{to:`/templates/${a.slug}`,className:K("grid [&:hover_p]:text-neutral5",{"grid-cols-[8rem_1fr] lg:grid-cols-[12rem_1fr]":a.imageURL}),children:[a.imageURL&&o.jsx("div",{className:K("overflow-hidden"),children:o.jsx("div",{className:"thumb transition-scale h-full w-full bg-cover duration-150",style:{backgroundImage:`url(${a.imageURL})`}})}),o.jsxs("div",{className:K("grid py-3 px-6 w-full gap-0.5","[&_svg]:w-[1em] [&_svg]:h-[1em] [&_svg]:text-neutral3"),children:[o.jsx("h2",{className:"text-ui-lg text-neutral5",children:a.title}),o.jsx("p",{className:"text-ui-md text-neutral4 transition-colors duration-500",children:a.description}),o.jsxs("div",{className:"text-neutral3 text-ui-md mt-3 hidden flex-wrap items-center gap-4 2xl:flex",children:[i&&o.jsxs("ul",{className:K("flex gap-4 text-ui-md text-neutral3 m-0 p-0 list-none","[&>li]:flex [&>li]:items-center [&>li]:gap-0.5 text-neutral4"),children:[a?.agents&&a.agents.length>0&&o.jsxs("li",{children:[o.jsx(Oo,{})," ",a.agents.length]}),a?.tools&&a.tools.length>0&&o.jsxs("li",{children:[o.jsx(Mf,{})," ",a.tools.length]}),a?.networks&&a.networks.length>0&&o.jsxs("li",{children:[o.jsx(Jlt,{})," ",a.networks.length]}),a?.workflows&&a.workflows.length>0&&o.jsxs("li",{children:[o.jsx(nI,{})," ",a.workflows.length]}),a?.mcp&&a.mcp.length>0&&o.jsxs("li",{children:[o.jsx(OC,{})," ",a.mcp.length]})]}),i&&a.supportedProviders&&o.jsx("small",{children:"|"}),o.jsx("div",{className:"text-neutral3 flex items-center gap-4",children:a.supportedProviders.map(l=>o.jsx("span",{className:"",children:l},l))})]})]})]}),o.jsx("a",{href:a.githubUrl,className:K("group items-center gap-2 text-ui-md ml-auto pr-4 hidden","lg:flex"),target:"_blank",rel:"noopener noreferrer",children:o.jsxs("span",{className:"bg-surface1 group-hover:bg-surface2 text-neutral3 group-hover:text-neutral5 flex items-center gap-2 rounded px-2 py-1 transition-colors",children:[o.jsx(zVt,{})," ",l0s(a.githubUrl)]})})]},a.slug)})})}function u0s({tagOptions:e,selectedTag:t,providerOptions:n,selectedProvider:r,onTagChange:s,onProviderChange:a,searchTerm:i,onSearchChange:l,onReset:c,className:u,isLoading:d}){return d?o.jsxs("div",{className:K("h-[6.5rem] flex items-center gap-8","[&>div]:bg-surface3 [&>div]:w-48 [&>div]:h-8 [&>div]:animate-pulse",u),children:[o.jsx("div",{})," ",o.jsx("div",{})," ",o.jsx("div",{})]}):o.jsxs("div",{className:K("flex flex-wrap mx-auto sticky top-0 gap-4 bg-surface2 py-8",u),children:[o.jsx(v_,{name:"search-templates",label:"Search templates",labelIsHidden:!0,value:i,onChange:f=>l?.(f.target.value),placeholder:"Search Template"}),o.jsx(Tc,{label:"Filter by tag",labelIsHidden:!0,name:"filter-tag",value:t,onValueChange:s,options:e}),o.jsx(Tc,{label:"Filter by provider",labelIsHidden:!0,name:"filter-provider",value:r,onValueChange:a,options:n}),c&&o.jsxs(oe,{onClick:c,children:["Reset ",o.jsx(Ps,{})]})]})}function d0s(){const{data:e,isLoading:t}=ksr(),{templates:n,tags:r,providers:s}=e??{templates:[],tags:[],providers:[]},[a,i]=g.useState("all"),[l,c]=g.useState("all"),[u,d]=g.useState(""),f=[{value:"all",label:"Any tag"}];(r||[]).forEach(x=>{f.push({value:x,label:x})});const p=[{value:"all",label:"Any provider"}];(s||[]).forEach(x=>{p.push({value:x,label:x})});const h=(x,S)=>{S==="tag"?i(x):S==="provider"&&c(x)},m=x=>{d(x)},v=()=>{i("all"),c("all"),d("")},y=n.filter(x=>!(u&&!x.title.toLowerCase().includes(u)&&!x.description.toLowerCase().includes(u)||a!=="all"&&!x.tags.includes(a)||l!=="all"&&!x.supportedProviders.includes(l))),b=u||a!=="all"||l!=="all";return o.jsxs(As,{children:[o.jsx(cSe,{children:o.jsxs(ybt,{children:[o.jsx(Ve,{children:o.jsx(sy,{})}),"Templates"]})}),o.jsxs("div",{className:K("overflow-y-auto w-full h-full px-8 pb-12 z-10"),children:[o.jsx(u0s,{selectedTag:a,onTagChange:x=>h(x,"tag"),tagOptions:f,selectedProvider:l,onProviderChange:x=>h(x,"provider"),providerOptions:p,searchTerm:u,onSearchChange:m,onReset:b?v:void 0,className:"max-w-[80rem]",isLoading:t}),o.jsx(c0s,{templates:y,linkComponent:ki,className:"mx-auto max-w-[80rem]",isLoading:t})]})]})}const f0s="1.63.1";function p0s({errorMsg:e,validationErrors:t}){const n=typeof e=="string"?e:e!=null?String(e):void 0,r=n?.includes("Invalid schema for function"),s=n?.includes("validation issue")||t&&t.length>0,a=()=>s?"Template installation completed but some validation issues remain. The template may still be functional, but you should review and fix these issues.":r?"There was an issue with the AI model configuration. This may be related to the selected model or AI SDK version compatibility.":"An unexpected error occurred during template installation.",i=()=>s?{icon:o.jsx(Cf,{className:"text-yellow-500"}),title:"Template Installed with Warnings"}:{icon:o.jsx(FYt,{}),title:"Template Installation Failed"},{icon:l,title:c}=i();return o.jsxs(QQ,{className:"text-neutral3 mb-8 content-center space-y-4",children:[o.jsxs("div",{className:K("grid items-center justify-items-center gap-4 content-center","[&>svg]:w-8 [&>svg]:h-8"),children:[l,o.jsxs("div",{className:"space-y-2 text-center",children:[o.jsx("p",{className:"text-ui-md text-neutral5 font-medium",children:c}),o.jsx("p",{className:"text-ui-md text-neutral3",children:a()})]})]}),t&&t.length>0&&o.jsxs("details",{className:"text-xs",children:[o.jsxs("summary",{className:"text-neutral3 hover:text-neutral4 cursor-pointer text-center select-none",children:["Show Validation Issues (",t.length,")"]}),o.jsx("div",{className:"mt-4 max-h-60 space-y-2 overflow-auto rounded bg-gray-100 p-3 text-left text-xs dark:bg-gray-800",children:t.map((u,d)=>o.jsxs("div",{className:"border-l-2 border-red-400 pl-2",children:[o.jsx("div",{className:"font-medium text-red-600 dark:text-red-400",children:u.type==="typescript"?"🔴 TypeScript Error":"⚠️ Lint Error"}),o.jsx("div",{className:"mt-1 font-mono text-xs wrap-break-word whitespace-pre-wrap text-gray-700 dark:text-gray-300",children:u.message})]},d))})]}),n&&!s&&o.jsxs("details",{className:"text-xs",children:[o.jsx("summary",{className:"text-neutral3 hover:text-neutral4 cursor-pointer text-center select-none",children:"Show Details"}),o.jsx("div",{className:"mt-4 max-h-60 overflow-auto rounded bg-gray-100 p-3 text-left font-mono text-xs dark:bg-gray-800",children:o.jsx("div",{className:"wrap-break-word whitespace-pre-wrap",children:n})})]})]})}function h0s({providerOptions:e,selectedProvider:t,onProviderChange:n,variables:r,errors:s,handleInstallTemplate:a,handleVariableChange:i,isLoadingEnvVars:l,isInstalling:c,defaultModelProvider:u,defaultModelId:d,onModelUpdate:f}){return o.jsx(QQ,{children:o.jsxs("div",{className:"mx-auto my-4 grid max-w-[40rem] gap-8 p-4 lg:p-8",children:[o.jsxs("h2",{className:K("text-neutral4 text-header-sm font-semibold flex items-center gap-2","[&>svg]:w-[1.2em] [&_svg]:h-[1.2em] [&_svg]:opacity-70"),children:["Install Template ",o.jsx(ect,{})]}),o.jsx(Tc,{name:"template-provider",options:e,label:"Template AI Model Provider",onValueChange:n,value:t,placeholder:"Select",layout:"horizontal"}),t&&Object.entries(r||{}).length>0&&o.jsxs(o.Fragment,{children:[o.jsx("h3",{className:"text-neutral3 text-ui-md",children:"Set required Environmental Variables"}),o.jsx("div",{className:"grid grid-cols-[1fr_1fr] items-start gap-4",children:l?o.jsxs("div",{className:K("flex items-center justify-center col-span-2 text-neutral3 text-ui-sm gap-4","[&_svg]:opacity-50 [&_svg]:w-[1.1em] [&_svg]:h-[1.1em]","animate-in fade-in duration-300"),children:[o.jsx(qt,{})," Loading variables..."]}):Object.entries(r).map(([p,h])=>o.jsxs(g.Fragment,{children:[o.jsx(Lg,{name:`env-${p}`,labelIsHidden:!0,label:"Key",value:p,disabled:!0,className:"w-full"}),o.jsx(Lg,{name:p,labelIsHidden:!0,label:"Value",value:h,onChange:i,errorMsg:s.includes(p)?"Value is required.":"",autoComplete:"off",className:"w-full"})]},p))}),o.jsxs("div",{className:"border-border1 relative mt-3.5 border-t pt-12",children:[o.jsx("div",{className:"bg-surface2 text-ui-sm text-neutral3 absolute top-0 left-1/2 flex h-8 w-8 -translate-x-1/2 -translate-y-4 items-center justify-center rounded-full",children:"And"}),o.jsx("h3",{className:"text-neutral4 text-ui-lg",children:"Set AI Model for Template Installation"}),o.jsx("p",{className:"text-neutral3 text-ui-md mt-2 mb-8",children:"This model will be used by the workflow to process and install the template"}),o.jsx(gBt,{defaultProvider:u||"",defaultModel:d||"",updateModel:f||(()=>Promise.resolve({message:"Updated"})),closeEditor:()=>{},autoSave:!0,selectProviderPlaceholder:"Provider"})]})]}),t&&!l&&o.jsx(oe,{className:K("flex items-center gap-2 mt-4 justify-center text-ui-md w-full bg-surface5 min-h-10 rounded-lg text-neutral5 hover:bg-surface6 transition-colors","[&>svg]:w-[1.1em] [&_svg]:h-[1.1em] [&_svg]:text-neutral5"),onClick:a,disabled:!t||!u||!d||s.length>0||c,children:c?o.jsxs(o.Fragment,{children:[o.jsx(qt,{className:"h-4 w-4"})," Installing..."]}):o.jsxs(o.Fragment,{children:["Install ",o.jsx(Ty,{})]})})]})})}function m0s({title:e,description:t,githubUrl:n,isLoading:r,infoData:s,templateSlug:a}){const i=a?`feat/install-template-${a}`:"feat/install-template-[slug]";return o.jsxs(o.Fragment,{children:[o.jsx("div",{className:K("grid mt-8 items-center"),children:o.jsxs("div",{className:K("text-header-lg flex items-center gap-3","[&>svg]:w-[1.2em] [&>svg]:h-[1.2em] [&>svg]:opacity-50",{"[&>svg]:opacity-20":r}),children:[o.jsx(sy,{}),o.jsx("h2",{className:K({"bg-surface4 flex rounded-lg min-w-[50%]":r}),children:r?o.jsx(o.Fragment,{children:" "}):e})]})}),o.jsxs("div",{className:"grid gap-x-24 lg:grid-cols-[1fr_1fr]",children:[o.jsxs("div",{className:"grid",children:[o.jsx("p",{className:K("mb-4 text-ui-md text-neutral4 mt-2 leading-7",{"bg-surface4 rounded-lg ":r}),children:r?o.jsx(o.Fragment,{children:" "}):t}),!r&&a&&o.jsxs("div",{className:K("bg-surface2 border border-surface4 rounded-lg p-4 mb-4","flex items-start gap-3"),children:[o.jsx("div",{className:"mt-0.5 shrink-0",children:o.jsx(e0,{className:"h-[1.1em] w-[1.1em] text-blue-500"})}),o.jsxs("div",{className:"flex-1 space-y-2",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(c0e,{className:"text-neutral4 h-[1em] w-[1em]"}),o.jsx("span",{className:"text-ui-md text-neutral5 font-medium",children:"A new Git branch will be created"})]}),o.jsxs("div",{className:"text-ui-sm text-neutral4 space-y-1",children:[o.jsxs("div",{children:[o.jsx("span",{className:"font-medium",children:"Branch name:"})," ",o.jsx("code",{className:"bg-surface3 text-ui-sm rounded px-1.5 py-0.5 font-mono",children:i})]}),o.jsx("div",{children:"This ensures safe installation with easy rollback if needed. Your main branch remains unchanged."})]})]})]}),n&&o.jsxs("a",{href:n,target:"_blank",rel:"noopener noreferrer",className:"text-neutral3 text-ui-md hover:text-neutral5 mt-auto flex items-center gap-2",children:[o.jsx(zVt,{}),n?.split("/")?.pop()]})]}),s&&o.jsx(wBt,{data:s,labelsAreHidden:!0,isLoading:r})]})]})}function utt(e){switch(e){case"running":return o.jsx(qt,{size:"sm","aria-hidden":!0});case"success":return o.jsx(yy,{"aria-hidden":!0});case"failed":return o.jsx(Ac,{"aria-hidden":!0});default:return null}}function g0s(){return o.jsx("svg",{viewBox:"0 0 24 24",className:"text-neutral2","aria-hidden":!0,children:o.jsx("circle",{cx:"12",cy:"12",r:"8.5",pathLength:"48",fill:"none",stroke:"currentcolor",strokeWidth:"2.8",strokeLinecap:"round",strokeDasharray:"3 3"})})}function v0s({status:e,variant:t}){return t==="plain"?o.jsx("span",{className:K("flex size-4 items-center justify-center self-center [&>svg]:size-4",Gr.colors,{"[&>svg]:text-positive1":e==="success","[&>svg]:text-negative1":e==="failed"}),children:e==="pending"?o.jsx(g0s,{}):utt(e)}):o.jsx("span",{className:K("flex size-7 items-center justify-center self-center rounded-full motion-reduce:transition-none",Gr.colors,Gr.transform,Gr.shadow,{"[&>svg]:text-notice-success-fg":e==="success","[&>svg]:text-notice-destructive-fg":e==="failed","border border-dashed border-neutral2":e==="pending","[&>svg]:size-4":e!=="running","bg-accent1Dark shadow-glow-accent1":e==="success","bg-accent2Dark shadow-glow-accent2":e==="failed","scale-110":e==="success"||e==="failed"}),children:utt(e)})}function y0s({step:e,isActive:t,position:n,variant:r="default"}){return o.jsxs("div",{className:K("grid grid-cols-[1fr_auto] gap-6 rounded-lg px-4 py-3 motion-reduce:transition-none",Gr.colors,{"border border-transparent":r==="default","border-dashed border-neutral2 bg-surface3":t&&r==="default"}),children:[o.jsxs("div",{className:"grid min-w-0 grid-cols-[auto_1fr] gap-2",children:[o.jsxs("span",{className:K("flex min-w-6 justify-end text-ui-md",Gr.colors,{"text-neutral5":t||e.status==="success","text-neutral3":!t&&e.status!=="success"}),children:[n,"."]}),o.jsxs("div",{className:"min-w-0",children:[o.jsx("h4",{className:K("text-ui-md",Gr.colors,{"text-neutral5":t||e.status==="success","text-neutral3":!t&&e.status!=="success"}),children:e.title}),e.description&&o.jsx("p",{className:K("-mt-0.5 text-ui-md text-neutral2",{truncate:r==="plain"}),children:e.description})]})]}),o.jsx(v0s,{status:e.status,variant:r})]})}function b0s({currentStep:e,steps:t=[],className:n}){return o.jsx("div",{className:K(n),children:t.map((r,s)=>o.jsx(y0s,{step:r,isActive:e?.id===r.id,position:s+1},r.id))})}function x0s({steps:e}){const t=e.length,n=e.filter(r=>r.status==="success").length;return o.jsxs("div",{className:"flex w-full flex-col content-center justify-center gap-4",children:[o.jsx("div",{className:"grid w-full grid-cols-[0_repeat(9,1fr)]",children:e.map((r,s)=>o.jsx("div",{className:K("relative flex h-8 items-center justify-end",Gr.colors,{"bg-accent1Dark":r.status==="success"&&e?.[s-1]?.status==="success"}),children:o.jsx("div",{className:K("absolute right-0 z-10 flex size-8 translate-x-1/2 items-center justify-center self-center rounded-full bg-surface3 text-ui-sm font-bold text-neutral3 motion-reduce:transition-none",Gr.colors,Gr.transform,Gr.shadow,{"border border-dashed border-neutral2":r.status==="pending","bg-accent1Dark text-notice-success-fg shadow-glow-accent1 scale-110":r.status==="success","bg-accent2Dark text-notice-destructive-fg shadow-glow-accent2 scale-110":r.status==="failed"}),children:r.status==="running"?o.jsx(qt,{}):s+1})},r.id))}),o.jsxs("div",{className:K("text-center text-xs text-neutral3",Gr.colors),children:[n," of ",t," steps completed"]})]})}function w0s({name:e,streamResult:t,runId:n,workflowInfo:r}){const s=t?.phase||"initializing",a=t?.payload?.workflowState,i=t?.payload?.currentStep,l=t?.error,c=a?.steps||{},u=Object.keys(c).length>0,d=v=>v==="input"||v.endsWith(".input")||v.startsWith("Mapping_")&&/[0-9a-f]{8}/.test(v)||/[0-9a-f]{8,}/.test(v)?!1:r?.allSteps?v in r.allSteps:!0,f=Object.entries(c).filter(([v,y])=>d(v)),p=f.length,h=()=>{switch(s){case"initializing":return"Preparing template installation...";case"processing":return`Installing ${e} template`;case"completed":return"Template installation completed!";case"error":return"Template installation failed";default:return"Installing template..."}},m=f.map(([v,y])=>({id:v,status:y?.status,description:y?.description,title:v.charAt(0).toUpperCase()+v.slice(1).replace(/-/g," "),isActive:i?.id===v}));return o.jsxs(QQ,{className:"text-neutral3 mb-8 content-center space-y-6",children:[o.jsxs("div",{className:"text-center",children:[o.jsx("h3",{className:"text-neutral5 text-lg font-semibold",children:h()}),(t?.runId||n)&&o.jsxs("div",{className:"text-ui-sm text-neutral3 mt-2",children:["Run ID: ",t?.runId??n]})]}),u&&p>0&&!["error"].includes(s)&&o.jsx("div",{className:"mx-auto w-full max-w-[30rem] px-6",children:o.jsx(x0s,{steps:m})}),l&&s==="error"&&o.jsxs("div",{className:K("rounded-lg text-neutral5 p-6 flex items-center gap-3 text-ui-md bg-red-500/10","[&>svg]:w-6 [&>svg]:h-6 [&>svg]:opacity-70 [&>svg]:text-red-500"),children:[o.jsx(JKt,{}),l||"Something went wrong"]}),u&&o.jsx(b0s,{steps:m,currentStep:i,className:"pb-4"}),!u&&s==="initializing"&&o.jsxs("div",{className:"text-neutral3 grid justify-items-center gap-4 text-center text-sm",children:[o.jsx(qt,{}),o.jsx("p",{children:"This may take some time..."})]})]})}function S0s({name:e,installedEntities:t}){return o.jsxs(QQ,{className:K("grid items-center justify-items-center gap-4 content-center","[&>svg]:w-8 [&>svg]:h-8"),children:[o.jsx(ect,{}),o.jsx("h2",{className:"text-header-md",children:"Done!"}),o.jsxs("p",{className:"text-ui-md text-neutral3 text-center",children:["The ",o.jsx("b",{className:"text-neutral4",children:e})," template has been successfully installed.",t&&t.length>0&&o.jsxs(o.Fragment,{children:[o.jsx("br",{})," Installed entities are listed below."]})]}),t&&t.length>0&&o.jsx(wBt,{data:t})]})}function k0s(){const{templateSlug:e}=wr(),[t,n]=ti(),[r,s]=g.useState(""),[a,i]=g.useState(""),[l,c]=g.useState(""),[u,d]=g.useState({}),[f,p]=g.useState([]),[h,m]=g.useState(null),[v,y]=g.useState(!1),[b,x]=g.useState(""),[S,k]=g.useState(!1),[_,C]=g.useState(!1),[T,E]=g.useState([]),{data:N,isLoading:I}=Osr({repoOrSlug:e,owner:"mastra-ai"}),R=f0s?.includes("beta")??!1?"beta":"main",{data:L,isLoading:D}=_sr({repo:N?.githubUrl?new URL(N.githubUrl).pathname.split("/")[2]:`template-${e}`,owner:"mastra-ai",branch:R}),{data:F,isLoading:H}=Csr(),{mutateAsync:B,isPending:z}=Esr(),{mutateAsync:V}=Tsr(),{streamInstall:M,streamResult:G,isStreaming:U}=Nsr(F),{observeInstall:$,streamResult:q,isStreaming:Z}=Isr(F);g.useEffect(()=>{const te=t.get("runId");te&&!v&&!h&&!U&&!Z&&(console.info("🔄 Checking completed run after hot reload:",{runId:te}),x(te),V({runId:te}).then(re=>{const pe=re.snapshot;if(pe?.status==="success"&&pe?.result?.success)y(!0);else if(pe?.result?.success===!1)if(pe?.result?.validationResults&&!pe?.result?.validationResults?.valid&&pe?.result?.validationResults?.remainingErrors>0){const{remainingErrors:Se,errors:ve}=pe.result.validationResults,ke=`Template installation completed but ${Se} validation issue${Se>1?"s":""} remain unresolved.`;m(ke),E(ve||[])}else{const Se=pe?.result?.message||pe?.result?.error||"Template installation failed";m(typeof Se=="string"?Se:String(Se))}}).catch(re=>{console.error("❌ Failed to fetch run details:",re),m("Failed to retrieve installation status after reload")}))},[t,v,h,U,Z,V]),g.useEffect(()=>{const te=t.get("runId"),re=t.get("resume"),pe=t.get("provider");if(te&&re==="true"&&pe&&!U&&!Z&&!S&&!_&&F){x(te),k(!0);try{V({runId:te}).then(ce=>{if(ce.snapshot?.status==="running")return $.mutateAsync({runId:te})}).then(()=>{n(ce=>{const Se=new URLSearchParams(ce);return Se.delete("resume"),Se})}).catch(ce=>{console.error("❌ Failed to resume template installation:",ce),ce.message?.includes("404")||ce.message?.includes("not found")?m("Template installation run not found. It may have expired or been completed."):m("Failed to resume template installation. Please try again.")})}catch(ce){console.error("❌ Auto-resume failed with error:",ce),m("Failed to resume template installation. Please refresh and try again.")}}},[t,e,U,Z,S,_,F,V,$,n]);const Y=[{value:"openai",label:"OpenAI"},{value:"anthropic",label:"Anthropic"},{value:"groq",label:"Groq"},{value:"google",label:"Google"}],ne=[{key:"tools",label:"Tools",value:N?.tools?.length?N.tools.map(te=>te).join(", "):"n/a",icon:o.jsx(Mf,{})},{key:"agents",label:"Agents",value:N?.agents?.length?N.agents.map(te=>te).join(", "):"n/a",icon:o.jsx(Oo,{})},{key:"workflows",label:"Workflows",value:N?.workflows?.length?N.workflows.map(te=>te).join(", "):"n/a",icon:o.jsx(nI,{})},{key:"providers",label:"Providers",value:N?.supportedProviders?.length?N.supportedProviders.join(", "):"n/a",icon:o.jsx(Uv,{})},{key:"tags",label:"Tags",value:N?.tags?.length?N.tags.join(", "):"n/a",icon:o.jsx(tI,{})}],J=[{...ne[0]},{...ne[1]},{...ne[2]}].filter(te=>te.value!=="n/a");g.useEffect(()=>{L&&d(L)},[L]),g.useEffect(()=>{const te=G||q;te?.phase==="error"&&te?.error&&m(typeof te.error=="string"?te.error:String(te.error))},[G?.phase,G?.error,q?.phase,q?.error]);const ee=te=>{s(te)},se=async te=>(i(te.provider),c(te.modelId),{message:"Model updated successfully"}),le=async()=>{const te=Object.entries(u).reduce((re,[pe,ce])=>(ce===""&&re.push(pe),re),[]);if(te.length>0){p(te);return}if(N){m(null),y(!1),x(""),C(!0);try{const pe={repo:N.githubUrl||`https://github.com/mastra-ai/template-${N.slug}`,ref:R,slug:N.slug,variables:u},{runId:ce}=await B({});x(ce),n(Se=>{const ve=new URLSearchParams(Se);return ve.set("runId",ce),ve.set("resume","true"),ve.set("provider",r||"openai"),ve}),await M.mutateAsync({inputData:pe,selectedModel:{provider:a,modelId:l},runId:ce})}catch(re){C(!1),m(re?.message||"Template installation failed"),console.error("Template installation failed",re)}}},X=te=>{const{name:re,value:pe}=te.target;pe.trim()===""?p(ce=>[...ce,re]):p(ce=>ce.filter(Se=>Se!==re)),d(ce=>({...ce,[re]:pe}))};return o.jsx(As,{children:o.jsx("div",{className:K("w-full lg:px-12 h-full overflow-y-scroll"),children:o.jsxs("div",{className:"mx-auto grid w-full max-w-[80rem] gap-y-4 p-6",children:[o.jsx(m0s,{isLoading:I,title:N?.title,description:N?.longDescription,imageURL:N?.imageURL,githubUrl:N?.githubUrl,infoData:ne,templateSlug:e}),N&&o.jsxs(o.Fragment,{children:[(U||Z)&&o.jsx(w0s,{name:N.title,streamResult:Z?q:G,runId:b,workflowInfo:F}),v&&o.jsx(S0s,{name:N.title,installedEntities:J,linkComponent:ki}),h&&o.jsx(p0s,{errorMsg:h,validationErrors:T.length>0?T:G?.validationResults?.errors||q?.validationResults?.errors}),!U&&!Z&&!v&&!h&&o.jsx(h0s,{providerOptions:Y,selectedProvider:r,onProviderChange:ee,variables:u,setVariables:d,errors:f,setErrors:p,handleInstallTemplate:le,handleVariableChange:X,isLoadingEnvVars:D||H,isInstalling:z,defaultModelProvider:a,defaultModelId:l,onModelUpdate:se})]})]})})})}const O0s=()=>{const{toolId:e,agentId:t}=wr();return o.jsx("div",{className:"h-full w-full overflow-y-auto",children:o.jsx(sos,{toolId:e,agentId:t})})},_0s=()=>{const{toolId:e}=wr();return o.jsx("div",{className:"h-full w-full overflow-y-hidden",children:o.jsx(_bs,{toolId:e})})};function C0s(){const{data:e,isLoading:t,error:n}=Zy(),[r,s]=g.useState("");return n&&ws(n)?o.jsx(ar,{children:o.jsx(Ys,{})}):n&&Ss(n)?o.jsx(ar,{children:o.jsx(qs,{resource:"workflows"})}):n?o.jsx(ar,{children:o.jsx(Ui,{title:"Failed to load workflows",message:n.message})}):Object.keys(e||{}).length===0&&!t?o.jsx(ar,{children:o.jsx(mZr,{})}):o.jsxs(Ut,{children:[o.jsx(Ut.TopArea,{children:o.jsxs(Ut.Row,{align:"center",stack:"responsive",children:[o.jsx("div",{className:"max-w-120 flex-1",children:o.jsx(Bf,{onSearch:s,label:"Filter workflows",placeholder:"Filter by name or description"})}),o.jsxs(oe,{as:ki,to:"/workflows/schedules",variant:"primary",className:"shrink-0",children:[o.jsx(VD,{}),"Schedules"]})]})}),o.jsx(hZr,{workflows:e||{},isLoading:t,search:r})]})}const E0s={active:"bg-accent1",paused:"bg-accent3"},T0s={active:"text-accent1",paused:"text-accent3"},BVt=({status:e})=>o.jsxs("span",{className:"inline-flex items-center gap-2 whitespace-nowrap",children:[o.jsx("span",{className:`h-1.5 w-1.5 rounded-full ${E0s[e]}`,"aria-hidden":!0}),o.jsx("span",{className:`text-ui-sm ${T0s[e]}`,children:e})]}),vj=e=>!e||e<=0?"—":new Date(e).toLocaleString(),r$=e=>{if(!e||e<=0)return"—";const t=e-Date.now(),n=Math.abs(t),r=Math.floor(n/1e3);if(r<60)return t>=0?`in ${r}s`:`${r}s ago`;const s=Math.floor(r/60);if(s<60)return t>=0?`in ${s}m`:`${s}m ago`;const a=Math.floor(s/60);if(a<24)return t>=0?`in ${a}h`:`${a}h ago`;const i=Math.floor(a/24);return t>=0?`in ${i}d`:`${i}d ago`};function UVt({status:e}){const{icon:t,color:n}=j0s(e);return o.jsxs("span",{className:`text-ui-sm inline-flex items-center gap-1.5 whitespace-nowrap ${n}`,children:[o.jsx("span",{className:"inline-flex shrink-0 items-center","aria-hidden":!0,children:t}),o.jsx("span",{children:e})]})}function j0s(e){switch(e){case"success":return{icon:o.jsx(ia,{size:14}),color:"text-accent1"};case"failed":return{icon:o.jsx(Ps,{size:14}),color:"text-accent2"};case"running":return{icon:o.jsx(qt,{}),color:"text-neutral3"};case"suspended":return{icon:o.jsx(mV,{size:14}),color:"text-accent3"};case"canceled":return{icon:o.jsx(Df,{size:14}),color:"text-neutral3"};case"pending":case"waiting":return{icon:o.jsx(bO,{size:14}),color:"text-neutral3"};default:return{icon:null,color:"text-neutral3"}}}const dtt="auto auto auto auto 1fr";function N0s(e){if(e===void 0)return"—";if(e<1e3)return`${e}ms`;if(e<6e4)return`${(e/1e3).toFixed(1)}s`;const t=Math.floor(e/6e4),n=Math.floor(e%6e4/1e3);return`${t}m ${n}s`}function I0s(e){const t=Math.abs(e),n=e<0?"-":"";return t<1e3?`${n}${t}ms`:t<6e4?`${n}${(t/1e3).toFixed(1)}s`:t<36e5?`${n}${(t/6e4).toFixed(1)}m`:`${n}${(t/36e5).toFixed(1)}h`}const A0s=3e4,R0s=5*6e4;function P0s({triggers:e,isLoading:t,workflowId:n,hasNextPage:r,isFetchingNextPage:s,setEndOfListElement:a}){const{Link:i,paths:l}=dn(),c=h=>!!(n&&h.runId&&h.outcome!=="failed"),u=e.filter(c).length,{containerRef:d,getRowProps:f}=wo({count:u});let p=-1;return t?o.jsx(vl,{columns:dtt}):e.length===0?o.jsx(ge,{variant:"ui-md",className:"text-neutral4 p-4",children:"No trigger history yet."}):o.jsxs(be,{columns:dtt,className:"min-w-0",scrollRef:d,children:[o.jsxs(be.Top,{children:[o.jsx(be.TopCell,{children:"Run"}),o.jsx(be.TopCell,{children:"Status"}),o.jsx(be.TopCell,{children:"Started"}),o.jsx(be.TopCell,{children:"Duration"}),o.jsx(be.TopCell,{children:" "})]}),e.map(h=>{const m=h.actualFireAt-h.scheduledFireAt,v=I0s(m),y=`Scheduled ${vj(h.scheduledFireAt)} — published ${vj(h.actualFireAt)} (drift ${v})`,b=h.outcome==="failed",x=b?h.error:h.run?.error,S=Math.abs(m),k=!b&&S>A0s&&S<=R0s,_=`${h.scheduleId}-${h.runId}-${h.actualFireAt}`,C=c(h);C&&(p+=1);const T=o.jsx("span",{className:C?"text-accent1 text-ui-sm font-mono whitespace-nowrap":"text-neutral3 text-ui-sm font-mono whitespace-nowrap",children:h.runId}),E=o.jsxs(o.Fragment,{children:[o.jsx(be.Cell,{children:T}),o.jsx(be.Cell,{children:o.jsxs("span",{className:"inline-flex items-center gap-2",children:[b?o.jsxs("span",{className:"text-ui-sm text-accent2 inline-flex items-center gap-1.5 whitespace-nowrap",children:[o.jsx(Cf,{size:14}),"publish failed"]}):h.run?o.jsx(UVt,{status:h.run.status}):o.jsx("span",{className:"text-ui-sm text-neutral3 inline-flex items-center gap-1.5 whitespace-nowrap",children:"pending"}),x?o.jsxs(En,{children:[o.jsx(kn,{asChild:!0,children:o.jsx("span",{className:"text-accent2 inline-flex",children:o.jsx(Cf,{size:14})})}),o.jsx(On,{children:x})]}):null]})}),o.jsx(be.Cell,{children:o.jsxs("span",{className:"inline-flex items-center gap-2 whitespace-nowrap",children:[o.jsx("span",{title:y,children:r$(h.actualFireAt)}),k?o.jsxs(En,{children:[o.jsx(kn,{asChild:!0,children:o.jsx("span",{className:"text-accent3 inline-flex",children:o.jsx(Cf,{size:14})})}),o.jsxs(On,{children:["Published ",v," after the scheduled fire time"]})]}):null]})}),o.jsx(be.Cell,{children:h.run?o.jsx("span",{children:N0s(h.run.durationMs)}):o.jsx("span",{className:"text-neutral4",children:"—"})}),o.jsx(be.Cell,{children:" "})]});return C?o.jsx(be.RowLink,{to:l.workflowRunLink(n,h.runId),LinkComponent:i,...f(p),children:E},_):o.jsx(be.RowStatic,{children:E},_)}),o.jsx(be.NextPageLoading,{isLoading:s,hasMore:r,setEndOfListElement:a})]})}const $0s=e=>{const t=Ge();return yt({queryKey:["schedule",e],enabled:!!e,queryFn:async()=>{if(!e)throw new Error("scheduleId is required");return t.getSchedule(e)}})},ftt=25,M0s=e=>{const t=Ge(),{inView:n,setRef:r}=tC(),s=K1({queryKey:["schedule-triggers",e],enabled:!!e,initialPageParam:void 0,queryFn:async({pageParam:u})=>e?t.listScheduleTriggers(e,{limit:ftt,toActualFireAt:u}):{triggers:[]},getNextPageParam:u=>{if(!(!u?.triggers?.length||u.triggers.length<ftt))return u.triggers[u.triggers.length-1].actualFireAt},refetchInterval:u=>(u.state.data?.pages.flatMap(p=>p.triggers)??[]).some(p=>p.run?p.run.status==="pending"||p.run.status==="running"||p.run.status==="waiting":p.outcome==="published")?5e3:!1}),a=s.data?.pages.flatMap(u=>u?.triggers??[])??[],{hasNextPage:i,isFetchingNextPage:l,fetchNextPage:c}=s;return g.useEffect(()=>{n&&i&&!l&&c()},[n,i,l,c]),{...s,data:a,setEndOfListElement:r}},D0s=e=>{const t=Ge(),n=Dr();return Rn({mutationFn:async r=>{if(!e)throw new Error("scheduleId is required");return r==="pause"?t.pauseSchedule(e):t.resumeSchedule(e)},onSuccess:(r,s)=>{n.invalidateQueries({queryKey:["schedule",e]}),n.invalidateQueries({queryKey:["schedules"]}),Be.success(s==="pause"?"Schedule paused":"Schedule resumed")},onError:r=>{Be.error(r.message)}})};function s8({label:e,children:t}){return o.jsxs("div",{className:"flex flex-col gap-1",children:[o.jsx(ge,{variant:"ui-xs",className:"text-neutral4 tracking-wide uppercase",children:e}),o.jsx("div",{className:"text-ui-md",children:t})]})}function L0s(){const{scheduleId:e}=wr(),{paths:t}=dn(),{data:n,error:r}=$0s(e),{data:s,isLoading:a,error:i,hasNextPage:l,isFetchingNextPage:c,setEndOfListElement:u}=M0s(e),d=D0s(e);if(r&&ws(r))return o.jsx(ar,{children:o.jsx(Ys,{})});if(r&&Ss(r))return o.jsx(ar,{children:o.jsx(qs,{resource:"schedules"})});if(r)return o.jsx(ar,{children:o.jsx(Ui,{title:"Failed to load schedule",message:r.message})});const f=n?.workflowId,p=n?.agentId;return o.jsxs(Ut,{children:[o.jsx(Ut.TopArea,{children:o.jsx(Ut.Row,{className:"justify-end",children:o.jsxs(Ut.Column,{className:"flex justify-end gap-2",children:[o.jsxs(oe,{as:ki,to:t.schedulesLink(),variant:"ghost",children:[o.jsx(ed,{}),"Back to schedules"]}),f?o.jsx(oe,{as:ki,to:t.workflowLink(f),variant:"ghost",children:"Open workflow"}):null,n?o.jsx(oe,{onClick:()=>d.mutate(n.status==="active"?"pause":"resume"),disabled:d.isPending,"data-testid":"schedule-toggle-button",children:n.status==="active"?o.jsxs(o.Fragment,{children:[o.jsx(d0e,{}),"Pause"]}):o.jsxs(o.Fragment,{children:[o.jsx(hu,{}),"Resume"]})}):null]})})}),n?o.jsxs("div",{className:"grid h-full grid-cols-[minmax(0,20rem)_1fr] gap-6 overflow-hidden",children:[o.jsxs("div",{className:"border-border1 flex h-fit flex-col gap-4 rounded-md border p-4",children:[o.jsx(s8,{label:p?"Agent":"Workflow",children:f?o.jsx(ki,{to:t.workflowLink(f),className:"text-accent1 hover:underline",children:f}):p?o.jsx(ki,{to:t.agentLink(p),className:"text-accent1 hover:underline",children:p}):"—"}),o.jsxs(s8,{label:"Cron",children:[o.jsx("code",{className:"text-ui-md font-mono",children:n.cron}),n.timezone?o.jsx("span",{className:"text-neutral4 text-ui-sm ml-2",children:n.timezone}):null]}),o.jsx(s8,{label:"Status",children:o.jsx(BVt,{status:n.status})}),o.jsx(s8,{label:"Next fire",children:o.jsx("span",{title:vj(n.nextFireAt),children:r$(n.nextFireAt)})})]}),o.jsxs("div",{className:"overflow-y-auto","data-testid":"schedule-triggers-panel",children:[o.jsx(ge,{variant:"ui-md",className:"mb-3",children:"Trigger history"}),i?o.jsx(Ui,{title:"Failed to load trigger history",message:i.message}):o.jsx(P0s,{triggers:s??[],isLoading:a,workflowId:f,hasNextPage:l,isFetchingNextPage:c,setEndOfListElement:u})]})]}):null]})}const ptt="minmax(0, 1.2fr) minmax(0, 1.4fr) minmax(0, 1fr) auto auto auto";function F0s({schedules:e,isLoading:t,search:n=""}){const{paths:r,Link:s}=dn(),a=g.useMemo(()=>{const c=n.toLowerCase();return c?e.filter(u=>u.id.toLowerCase().includes(c)||(u.workflowId??u.agentId??"").toLowerCase().includes(c)):e},[e,n]),{containerRef:i,getRowProps:l}=wo({count:a.length});return t?o.jsx(vl,{columns:ptt}):o.jsxs(be,{columns:ptt,variant:"striped",className:"min-w-0",scrollRef:i,children:[o.jsxs(be.Top,{children:[o.jsx(be.TopCell,{children:"Target"}),o.jsx(be.TopCell,{children:"Schedule ID"}),o.jsx(be.TopCell,{children:"Cron"}),o.jsx(be.TopCell,{children:"Status"}),o.jsx(be.TopCell,{children:"Next fire"}),o.jsx(be.TopCell,{children:"Last run"})]}),a.length===0&&n?o.jsx(be.NoMatch,{message:"No schedules match your search"}):null,a.length===0&&!n?o.jsx(be.NoMatch,{message:"No schedules configured"}):null,a.map((c,u)=>o.jsxs(be.RowLink,{to:r.scheduleLink(c.id),LinkComponent:s,...l(u),children:[o.jsx(be.NameCell,{children:c.workflowId??c.agentId}),o.jsx(be.Cell,{className:"min-w-0",children:o.jsx("span",{className:"text-ui-smd text-neutral3 block truncate font-mono",title:c.id,children:c.id})}),o.jsx(be.Cell,{children:o.jsxs("span",{className:"inline-flex items-center gap-2 whitespace-nowrap",children:[o.jsx("code",{className:"text-ui-sm font-mono",children:c.cron}),c.timezone?o.jsx("span",{className:"text-neutral4 text-ui-xs",children:c.timezone}):null]})}),o.jsx(be.Cell,{children:o.jsx(BVt,{status:c.status})}),o.jsx(be.Cell,{children:o.jsx("span",{className:"whitespace-nowrap",title:vj(c.nextFireAt),children:r$(c.nextFireAt)})}),o.jsx(be.Cell,{children:c.lastRun?o.jsxs("span",{className:"inline-flex items-center gap-2 whitespace-nowrap",children:[o.jsx(UVt,{status:c.lastRun.status}),o.jsx("span",{className:"text-neutral4 text-ui-sm",title:vj(c.lastFireAt),children:c.lastFireAt?r$(c.lastFireAt):""})]}):c.lastFireAt?o.jsx("span",{className:"whitespace-nowrap",title:vj(c.lastFireAt),children:r$(c.lastFireAt)}):o.jsx("span",{className:"text-neutral4",children:"Never"})})]},c.id))]})}function z0s({workflowId:e}={}){const{data:t,isLoading:n,error:r}=oSe(e?{workflowId:e}:{}),[s,a]=g.useState("");return r?o.jsx(Ui,{title:"Failed to load schedules",message:r.message}):o.jsxs("div",{className:"grid h-full grid-rows-[auto_1fr] gap-4 overflow-hidden",children:[o.jsx("div",{className:"max-w-120",children:o.jsx(Bf,{onSearch:a,label:"Filter schedules",placeholder:"Filter by id or workflow"})}),o.jsx("div",{className:"overflow-y-auto",children:o.jsx(F0s,{schedules:t??[],isLoading:n,search:s})})]})}function B0s(){const[e]=ti(),t=e.get("workflowId")??void 0,{error:n}=oSe(t?{workflowId:t}:{});return n&&ws(n)?o.jsx(ar,{children:o.jsx(Ys,{})}):n&&Ss(n)?o.jsx(ar,{children:o.jsx(qs,{resource:"schedules"})}):o.jsx(Ut,{children:o.jsx("div",{className:"h-full",children:o.jsx(z0s,{workflowId:t})})})}function U0s({stepGraph:e,open:t,workflowName:n}){const{nodes:r,edges:s}=AOe({stepGraph:e}),[a,i]=g.useState(!1),[l,c,u]=q_t(r),[d]=V_t(s),{edgeTypes:f,nodeTypes:p,styledEdges:h}=HLt({edges:d,workflowName:n,stepGraph:e});return g.useEffect(()=>{if(t){const m=setTimeout(()=>{i(!0)},500);return()=>clearTimeout(m)}},[t]),o.jsx("div",{className:"bg-surface1 relative h-full w-full",children:a?o.jsxs(U_t,{nodes:l,edges:h,edgeTypes:f,fitView:!0,fitViewOptions:{maxZoom:1},minZoom:.01,maxZoom:1,nodeTypes:p,onNodesChange:u,children:[o.jsx(Cje,{position:"bottom-left"}),o.jsx(W_t,{variant:cy.Lines,gap:12,size:.5})]}):o.jsx("div",{className:"flex h-full w-full items-center justify-center",children:o.jsx(qt,{})})})}function q0s(){const{stepDetail:e,closeStepDetail:t}=TW();return e?o.jsxs("div",{className:"flex h-full flex-col","data-testid":"workflow-step-detail-panel",children:[o.jsxs("div",{className:"border-border1 bg-surface1 flex items-center justify-between border-b px-4 py-3",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[e.type==="map-config"&&o.jsx(kj,{className:"h-4 w-4",style:{color:Mu.map}}),e.type==="nested-graph"&&o.jsx(rd,{className:"h-4 w-4",style:{color:Mu.workflow}}),o.jsxs("div",{className:"flex flex-col",children:[o.jsx(ge,{variant:"ui-md",className:"text-neutral6 font-medium",children:e.type==="map-config"?`${e.stepName} Config`:`${e.stepName} Workflow`}),e.type==="map-config"&&e.stepId&&e.stepId!==e.stepName&&o.jsx(ge,{variant:"ui-xs",className:"text-neutral3",children:e.stepId})]})]}),o.jsx("button",{onClick:t,className:"hover:bg-surface3 rounded p-1 transition-colors","aria-label":"Close",children:o.jsx(Ps,{className:"text-neutral3 h-4 w-4"})})]}),o.jsxs("div",{className:"flex-1 overflow-auto",children:[e.type==="map-config"&&e.mapConfig&&o.jsx(e$,{data:e.mapConfig}),e.type==="nested-graph"&&e.nestedGraph&&o.jsx("div",{className:"h-full min-h-[400px]",children:o.jsx(IOe,{children:o.jsx(U0s,{stepGraph:e.nestedGraph.stepGraph,open:!0,workflowName:e.nestedGraph.fullStep})},`nested-graph-${e.nestedGraph.fullStep}`)})]})]}):null}function V0s(e){const t=new Blob([JSON.stringify(e??null)]).size;return t<1024?`${t} B`:`${(t/1024).toFixed(1)} KB`}function H0s(e,t){if(e&&typeof e=="object"&&!Array.isArray(e)){const n=Object.keys(e);if(n.length===1)return n[0]}return t}function W0s({suspendedSteps:e,workflow:t,isStreaming:n,onResume:r}){return n||e.length===0?null:o.jsxs("div",{className:"border-border1 bg-surface4 space-y-5 rounded-lg border p-5","data-testid":"workflow-suspended-steps",children:[o.jsxs("div",{className:"flex items-center justify-between gap-3",children:[o.jsxs(ge,{as:"p",variant:"ui-md",className:"text-neutral6 flex items-center gap-2 font-semibold",children:[o.jsx(Ve,{children:o.jsx(mV,{})}),"Step suspended"]}),o.jsx(Xt,{variant:"warning",children:"Needs input"})]}),e.map((s,a)=>{const i=t.allSteps[s.stepId];if(!i||i.isWorkflow)return null;const l=i?.resumeSchema?gm(Nx(i.resumeSchema)):of(cr(),vf());return o.jsx(Z0s,{step:s,stepSchema:l,description:i.description,isStreaming:n,onResume:r},`${s.runId}-${s.stepId}-${a}`)})]})}function Z0s({step:e,stepSchema:t,description:n,isStreaming:r,onResume:s}){const[a,i]=g.useState(!1);return o.jsxs("div",{className:"space-y-5",children:[o.jsxs("div",{className:"space-y-2",children:[o.jsx(ge,{as:"p",variant:"ui-md",className:"text-neutral6 truncate font-medium",children:e.stepId}),n&&o.jsx(ge,{as:"p",variant:"ui-sm",className:"text-neutral3",children:n})]}),e.suspendPayload&&o.jsxs("div",{className:"space-y-2",children:[o.jsxs(ge,{as:"p",variant:"ui-sm",className:"text-neutral3 flex items-center gap-2",children:[o.jsx(Ve,{children:o.jsx(HKt,{})}),"The step is asking"]}),o.jsxs(bu,{open:a,onOpenChange:i,children:[o.jsxs(Rc,{className:"border-border1 bg-surface3 flex w-full items-center justify-between gap-2 rounded-lg border px-3 py-2.5",children:[o.jsxs("span",{className:"flex min-w-0 items-center gap-2",children:[o.jsx(Ve,{children:o.jsx(Zs,{className:K("transition-transform text-neutral3",{"transform rotate-90":a})})}),o.jsx(ge,{as:"span",variant:"ui-md",className:"text-neutral6 truncate",children:H0s(e.suspendPayload,e.stepId)})]}),o.jsx(ge,{as:"span",variant:"ui-sm",className:"text-neutral3 shrink-0",children:V0s(e.suspendPayload)})]}),o.jsx(Pc,{children:o.jsx("div",{"data-testid":"suspended-payload",className:"pt-2",children:o.jsx(Zr,{data:e.suspendPayload,className:"w-full overflow-x-auto p-2",showCopyButton:!1})})})]})]}),o.jsxs("div",{className:"space-y-3",children:[o.jsxs(ge,{as:"p",variant:"ui-sm",className:"text-neutral3 flex items-center gap-2",children:[o.jsx(Ve,{children:o.jsx(GKt,{})}),"Your response"]}),o.jsx("div",{className:"-mx-5",children:o.jsx(oU,{schema:t,isSubmitLoading:r,submitButtonLabel:"Resume",submitButtonIcon:o.jsx(hu,{}),submitButtonFullWidth:!0,collapsible:!1,hideHeading:!0,hideInputTypeLabel:!0,onSubmit:l=>{const c=e.stepId?.split(".");s({stepId:c,runId:e.runId,suspendPayload:e.suspendPayload,resumeData:l,isLoading:!1})}})})]})]})}function G0s(){const{result:e,runSnapshot:t,workflow:n,runId:r,isStreamingWorkflow:s}=g.useContext(Bl),{runId:a}=wr(),i=J_t(e,r??""),l=Mtr(),c=!!a,u=t?.status==="suspended",f=!!(a&&r&&a===r)&&e?.status==="suspended";return s||!n||i.length===0||c&&!u&&!f?null:o.jsx("div",{"data-testid":"workflow-suspended-overlay",className:"animate-in fade-in-0 slide-in-from-top-2 zoom-in-95 absolute top-2 right-2 z-20 max-h-[calc(100%-1rem)] w-[380px] max-w-[calc(100%-1rem)] overflow-y-auto rounded-lg shadow-lg duration-300",children:o.jsx(W0s,{suspendedSteps:i,workflow:n,isStreaming:s,onResume:l})},r)}const Q0s=e=>o.jsxs("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:[o.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M5.99982 2.0625C3.8252 2.0625 2.06232 3.82538 2.06232 6C2.06232 8.17462 3.8252 9.9375 5.99982 9.9375C8.17444 9.9375 9.93732 8.17462 9.93732 6C9.93732 3.82538 8.17444 2.0625 5.99982 2.0625ZM0.937317 6C0.937317 3.20406 3.20388 0.9375 5.99982 0.9375C8.79576 0.9375 11.0623 3.20406 11.0623 6C11.0623 8.79594 8.79576 11.0625 5.99982 11.0625C3.20388 11.0625 0.937317 8.79594 0.937317 6Z",fill:"currentColor"}),o.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M7.97865 4.57004C8.22604 4.75795 8.27426 5.11082 8.08635 5.35821L6.05486 8.03279C5.94873 8.17251 5.78348 8.25471 5.60803 8.25505C5.43257 8.2554 5.267 8.17385 5.16032 8.03454L3.80937 6.27034C3.6205 6.02369 3.66733 5.67063 3.91398 5.48176C4.16063 5.29288 4.51369 5.33972 4.70257 5.58637L5.6051 6.76498L7.19048 4.67774C7.37839 4.43036 7.73126 4.38213 7.97865 4.57004Z",fill:"currentColor"})]}),Y0s=e=>o.jsxs("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:[o.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M5.99982 2.0625C3.8252 2.0625 2.06232 3.82538 2.06232 6C2.06232 8.17462 3.8252 9.9375 5.99982 9.9375C8.17444 9.9375 9.93732 8.17462 9.93732 6C9.93732 3.82538 8.17444 2.0625 5.99982 2.0625ZM0.937317 6C0.937317 3.20406 3.20388 0.9375 5.99982 0.9375C8.79576 0.9375 11.0623 3.20406 11.0623 6C11.0623 8.79594 8.79576 11.0625 5.99982 11.0625C3.20388 11.0625 0.937317 8.79594 0.937317 6Z",fill:"currentColor"}),o.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M7.89741 4.10293C8.11707 4.32261 8.11706 4.67877 7.89738 4.89843L6.79517 6.00058L7.8962 7.10155C8.11588 7.32122 8.11589 7.67737 7.89623 7.89705C7.67656 8.11673 7.32041 8.11674 7.10073 7.89707L5.99965 6.79605L4.89856 7.89707C4.67889 8.11673 4.32273 8.11672 4.10307 7.89704C3.88341 7.67737 3.88342 7.32121 4.10309 7.10155L5.20413 6.00058L4.10191 4.89843C3.88224 4.67877 3.88223 4.32262 4.10189 4.10294C4.32155 3.88326 4.67771 3.88325 4.89738 4.10292L5.99965 5.20511L7.10191 4.10291C7.32159 3.88325 7.67774 3.88326 7.89741 4.10293Z",fill:"currentColor"})]}),K0s=e=>e.includes("."),X0s=e=>e==="input"||e.endsWith(".input"),J0s=1;function ews(e){return`${Number((e/1e3).toPrecision(3))}s`}function tws(e,t){const n=Object.entries(e).filter(([i])=>!X0s(i));if(n.length===0)return[];const r=Math.min(...n.map(([,i])=>i.startedAt)),s=Math.max(...n.map(([,i])=>i.endedAt??t)),a=Math.max(s-r,1);return n.map(([i,l])=>{const c=l.endedAt===void 0,d=(l.endedAt??t)-l.startedAt,f=(l.startedAt-r)/a*100,p=Math.max(d/a*100,J0s);return{stepId:i,step:l,status:l.status,offsetPct:f,widthPct:p,durationMs:d,isRunning:c,isNestedEntry:K0s(i)}})}const nws=({status:e})=>o.jsxs(Ve,{children:[e==="success"&&o.jsx(Q0s,{className:"text-accent1"}),e==="failed"&&o.jsx(Y0s,{className:"text-accent2"}),e==="suspended"&&o.jsx(mV,{className:"text-accent3"}),e==="waiting"&&o.jsx(Ipe,{className:"text-accent5"}),e==="skipped"&&o.jsx(Ipe,{className:"text-icon3"}),e==="running"&&o.jsx(sa,{className:"text-accent6 animate-spin"})]}),rws={success:"bg-accent1",failed:"bg-accent2",suspended:"bg-accent3",waiting:"bg-accent5",skipped:"bg-border1",running:"bg-accent6"};function qVt(e){return e.split(/[-_.\s]+/).filter(Boolean).map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(" ")}const htt=e=>e&&typeof e=="object"&&!Array.isArray(e)?e:{value:e},sws=e=>{const t=e;return MLt({duration:t.duration,date:t.date,isForEach:t.isForEach,mapConfig:t.mapConfig,canSuspend:t.canSuspend,isParallel:t.isParallel,stepGraph:t.stepGraph})},aws=({row:e,index:t,isSelected:n,isHovered:r,onSelectStep:s,onHoverStep:a,onOpenInput:i,onOpenOutput:l})=>{const c=sws(e.step),u=e.status==="running",d=!e.isNestedEntry;return o.jsxs("div",{role:"button",tabIndex:0,"data-testid":"workflow-timeline-row","data-workflow-step-key":e.stepId,"data-workflow-step-active":n?"true":void 0,"data-workflow-step-hovered":r?"true":void 0,"data-workflow-step-nested":e.isNestedEntry?"true":void 0,"aria-pressed":n,"aria-disabled":!d,onMouseEnter:()=>{d&&a(e.stepId)},onMouseLeave:()=>{d&&a(null)},onClick:()=>{d&&s(e.stepId)},onKeyDown:f=>{!d||f.key!=="Enter"&&f.key!==" "||(f.preventDefault(),s(e.stepId))},className:K("grid grid-cols-[auto_auto_auto_minmax(0,10rem)_minmax(0,1fr)_auto_5rem] items-center gap-2 rounded-md border border-transparent px-2 py-1 text-left transition-colors focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-accent1",d&&"cursor-pointer",d&&"hover:bg-surface4",d&&r&&!n&&"border-neutral6 bg-surface4",d&&n&&"border-accent1",e.isNestedEntry&&"cursor-default opacity-55"),children:[o.jsx("div",{className:"flex justify-center",children:o.jsx(nws,{status:e.status})}),o.jsx("div",{className:"flex justify-center",children:o.jsx(oe,{type:"button",variant:"ghost",size:"icon-sm",tooltip:"View step input",disabled:u,className:"text-neutral3 hover:text-neutral6 disabled:cursor-not-allowed disabled:opacity-40",onClick:f=>{f.stopPropagation(),u||i(e)},children:o.jsx(YXt,{})})}),o.jsx("div",{className:"flex overflow-hidden",children:o.jsx(Vq,{indicators:c,className:"shrink-0"})}),o.jsx(ge,{as:"span",variant:"ui-sm",className:"text-neutral6 block max-w-full min-w-0 justify-self-stretch overflow-hidden text-left text-ellipsis whitespace-nowrap",children:qVt(e.stepId)}),o.jsx("div",{className:"bg-surface4 relative h-2 min-w-0 rounded",children:o.jsx("div",{"data-testid":"workflow-timeline-bar","data-offset":String(e.offsetPct),"data-width":String(e.widthPct),className:`absolute top-0 h-full rounded ${rws[e.status]}`,style:{left:`${e.offsetPct}%`,width:`${e.widthPct}%`}})}),o.jsx("div",{className:"flex justify-center",children:o.jsx(oe,{type:"button",variant:"ghost",size:"icon-sm",tooltip:"View step output",disabled:u,className:"text-neutral3 hover:text-neutral6 disabled:cursor-not-allowed disabled:opacity-40",onClick:f=>{f.stopPropagation(),u||l(e)},children:o.jsx(GXt,{})})}),o.jsx(ge,{as:"span",variant:"ui-sm",className:"text-neutral3 w-20 justify-self-end text-right tabular-nums",children:ews(e.durationMs)})]},`timeline-item-${e.stepId}-${t}`)};function iws(){const{steps:e}=X4(),{selectedStepId:t,hoverStepId:n,setSelectedStepId:r,setHoverStepId:s}=LH(),[a,i]=g.useState(()=>Date.now()),[l,c]=g.useState(!1),[u,d]=g.useState(null),f=g.useRef(null);Ibt(f,{enabled:!l});const p=tws(e,a),h=p.some(m=>m.isRunning);return g.useEffect(()=>{if(!h)return;const m=setInterval(()=>i(Date.now()),100);return()=>clearInterval(m)},[h]),g.useEffect(()=>{if(l||p.length===0)return;const m=f.current;m&&(m.scrollTop=m.scrollHeight)},[l,p.length]),p.length===0?null:o.jsxs(o.Fragment,{children:[o.jsx("div",{"data-testid":"workflow-timeline",className:"pointer-events-none absolute right-0 bottom-0 z-20 px-2 pb-2",style:{left:"var(--workflow-left-panel-width, 0px)"},children:o.jsxs("div",{className:"rounded-studio-panel border-border1/50 bg-surface3 pointer-events-auto flex max-h-64 w-full min-w-0 flex-col gap-3 overflow-hidden border p-4 shadow-lg",children:[o.jsxs("div",{className:"flex shrink-0 items-center justify-between gap-3",children:[o.jsx(ge,{as:"p",variant:"ui-md",className:"text-neutral3",children:"Timeline"}),o.jsx("button",{type:"button","aria-label":l?"Expand timeline":"Collapse timeline","aria-expanded":!l,onClick:()=>c(m=>!m),className:"text-neutral3 hover:bg-surface4 hover:text-neutral6 rounded-md p-1 transition-colors",children:o.jsx(ba,{className:K("h-4 w-4 transition-transform",l&&"-rotate-90")})})]}),!l&&o.jsx("div",{ref:f,"data-testid":"workflow-timeline-list",className:"flex min-h-0 flex-col gap-2 overflow-y-auto",children:p.map((m,v)=>o.jsx(aws,{row:m,index:v,isSelected:t===m.stepId,isHovered:n===m.stepId,onSelectStep:r,onHoverStep:s,onOpenInput:y=>d({type:"input",stepId:y.stepId,data:htt(y.step.input)}),onOpenOutput:y=>d({type:"output",stepId:y.stepId,data:htt(y.step.output)})},`timeline-item-${m.stepId}-${v}`))})]})}),o.jsx(gr,{open:!!u,onOpenChange:m=>!m&&d(null),children:u&&o.jsx(tCt,{data:u.data,title:`${qVt(u.stepId)} ${u.type==="input"?"input":"output"}`})})]})}const ows=({workflowId:e,workflow:t,isLoading:n})=>{const{stepDetail:r}=TW();return o.jsxs("div",{className:"flex h-full min-h-0",children:[o.jsx("div",{className:"flex h-full min-h-0 flex-1 flex-col",children:o.jsxs("div",{className:"relative min-h-0 flex-1 p-2 pb-0",children:[o.jsx(XLt,{workflowId:e,workflow:t,isLoading:n}),o.jsx(G0s,{}),o.jsx(iws,{})]})}),r&&o.jsx("div",{className:"border-border1 min-h-0 w-[420px] overflow-hidden border-l",children:o.jsx(q0s,{})})]})},mtt=()=>{const{workflowId:e}=wr(),{data:t,isLoading:n,error:r}=a4(e);return r&&ws(r)?o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Ys,{})}):r&&Ss(r)?o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(qs,{resource:"workflows"})}):o.jsx(YOe,{children:o.jsx(ows,{workflowId:e,workflow:t??void 0,isLoading:n})})};function lws(e,t){if(e==null)return{};var n,r,s=akt(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}function Qxe(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function cws(e){if(Array.isArray(e))return Qxe(e)}function uws(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function dws(e,t){if(e){if(typeof e=="string")return Qxe(e,t);var n={}.toString.call(e).slice(8,-1);return n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set"?Array.from(e):n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Qxe(e,t):void 0}}function fws(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
|
|
644
|
+
`);return t!==-1&&t!==e.length-1}else{if(Array.isArray(e))return e.some(t=>qxe(t));if(e&&typeof e=="object")return Object.values(e).some(t=>qxe(t))}return!1}function mys({children:e}){return o.jsx("div",{className:"flex-1 overflow-y-auto p-4",children:e})}function gys({className:e,children:t}){return o.jsx("div",{className:K("mx-4 flex items-center justify-between gap-2 border-b border-border1 py-3",e),children:t})}function vys({className:e,children:t}){return o.jsx("h3",{className:K("flex gap-2 text-ui-md text-neutral3 [&>b]:font-normal [&>b]:text-neutral2",e),children:t})}function yys({className:e,children:t}){return o.jsx("dl",{className:K("grid grid-cols-[auto_1fr] gap-x-4 gap-y-1.5",e),children:t})}function bys({className:e,children:t}){return o.jsx("dt",{className:K("shrink-0 py-0.5 text-ui-smd text-neutral2",e),children:t})}function xys({className:e,children:t}){return o.jsx("dd",{className:K("min-w-0 truncate py-0.5 text-ui-smd text-neutral3",e),children:t})}function wys({className:e,children:t}){return o.jsx("dt",{className:K("col-span-2 py-3 text-ui-sm tracking-widest text-neutral2 uppercase",e),children:t})}const Sys=Object.assign(yys,{Key:bys,Value:xys,Header:wys});function kys({children:e}){return o.jsxs("div",{className:"text-ui-sm text-neutral3 flex items-center justify-center gap-2 px-4 py-6",children:[o.jsx(qt,{size:"sm",variant:"pulse",className:"text-neutral3"})," ",e??"Loading..."]})}function Oys({children:e}){return o.jsx("p",{className:"text-ui-sm text-neutral2 px-4 py-6",children:e??"No data found."})}const Li=Object.assign(cys,{Header:gys,Heading:vys,CloseButton:uys,LoadingData:kys,NoData:Oys,Content:mys,KeyValueList:Sys,CodeSection:hys}),pp=Li.KeyValueList;function _ys(e){return e instanceof Date?e:new Date(e)}function Cys({log:e,onClose:t,onTraceClick:n,onSpanClick:r,onPrevious:s,onNext:a,collapsed:i,onCollapsedChange:l}){const[c,u]=g.useState(!1),d=i??c,f=l??u,p=_ys(e.timestamp),h=e.traceId,m=e.spanId;return o.jsxs(Li,{collapsed:d,children:[o.jsxs(Li.Header,{children:[o.jsxs(Li.Heading,{children:["Log ",o.jsx("b",{children:br(p,"MMM dd, HH:mm:ss.SSS")})]}),o.jsxs(us,{className:"ml-auto shrink-0",children:[l&&o.jsx(oe,{size:"md",tooltip:d?"Expand panel":"Collapse panel",onClick:()=>f(!d),children:d?o.jsx(EH,{}):o.jsx(W1e,{})}),o.jsxs(us,{spacing:"close",children:[o.jsx(oe,{size:"md",tooltip:"Previous log",onClick:s,disabled:!s,children:o.jsx(_H,{})}),o.jsx(oe,{size:"md",tooltip:"Next log",onClick:a,disabled:!a,children:o.jsx(kH,{})})]}),o.jsx(Li.CloseButton,{onClick:t})]})]}),!d&&o.jsxs(Li.Content,{children:[o.jsx("p",{className:"text-ui-md text-neutral4 font-mono wrap-break-word whitespace-pre-wrap",children:e.message}),(h||m)&&o.jsxs("div",{className:K("my-8 grid gap-2","[&>button]:justify-between [&>button]:overflow-hidden"),children:[h&&o.jsxs(us,{spacing:"close",className:"w-full min-w-0",children:[o.jsxs(oe,{size:"md",className:"min-w-0 flex-1 overflow-hidden",onClick:()=>n?.(h),children:[o.jsx(B7,{}),o.jsx("span",{children:"Trace"}),o.jsxs("span",{className:"text-ui-sm text-neutral2 ml-auto min-w-0 truncate",children:["# ",h]})]}),o.jsx(Sa,{content:h,size:"md",tooltip:"Copy Trace ID to clipboard"})]}),m&&o.jsxs(us,{spacing:"close",className:"w-full min-w-0",children:[o.jsxs(oe,{size:"md",className:"min-w-0 flex-1 overflow-hidden",disabled:!h||!r,onClick:()=>h&&r?.(h,m),children:[o.jsx(B7,{}),o.jsx("span",{children:"Span"}),o.jsxs("span",{className:"text-ui-sm text-neutral2 ml-auto min-w-0 truncate",children:["# ",m]})]}),o.jsx(Sa,{content:m,size:"md",tooltip:"Copy Span ID to clipboard"})]})]}),o.jsxs(pp,{className:"mb-6",children:[e.entityType&&o.jsxs(o.Fragment,{children:[o.jsx(pp.Key,{children:"Entity Type"}),o.jsx(pp.Value,{children:e.entityType})]}),e.entityName&&o.jsxs(o.Fragment,{children:[o.jsx(pp.Key,{children:"Entity Name"}),o.jsx(pp.Value,{children:e.entityName})]}),e.serviceName&&o.jsxs(o.Fragment,{children:[o.jsx(pp.Key,{children:"Service"}),o.jsx(pp.Value,{children:e.serviceName})]}),e.environment&&o.jsxs(o.Fragment,{children:[o.jsx(pp.Key,{children:"Environment"}),o.jsx(pp.Value,{children:e.environment})]}),e.source&&o.jsxs(o.Fragment,{children:[o.jsx(pp.Key,{children:"Source"}),o.jsx(pp.Value,{children:e.source})]}),e.metadata&&Object.keys(e.metadata).length>0&&o.jsx(o.Fragment,{children:Object.entries(e.metadata).map(([v,y])=>o.jsxs(g.Fragment,{children:[o.jsx(pp.Key,{children:v}),o.jsx(pp.Value,{children:String(y)})]},v))})]}),e.data&&Object.keys(e.data).length>0&&o.jsx(Li.CodeSection,{title:"Data",codeStr:JSON.stringify(e.data,null,2),className:"mt-6"})]})]})}function Eys({error:e,resource:t,errorTitle:n}){if(ws(e))return o.jsx(Ys,{});if(Ss(e))return o.jsx(qs,{resource:t});if(P4(e))return o.jsx(_r,{iconSlot:o.jsx(U7,{}),titleSlot:"Observability storage is not available",descriptionSlot:"The observability storage domain is disabled or not configured. Enable it in your storage configuration to view logs in Studio."});if(R4(e,"logs"))return o.jsx(_r,{iconSlot:o.jsx(U7,{}),titleSlot:"Logs are not available with your current storage",descriptionSlot:"The configured observability storage provider does not support listing logs. Switch to a storage provider with logs support to view runtime logs in Studio."});const r=e instanceof Error?e.message:void 0;return o.jsx(Ui,{title:n,message:r??"Unknown error"})}function Tys({listSlot:e,logPanelSlot:t,tracePanelSlot:n,spanPanelSlot:r,logCollapsed:s}){const a=!!t;return o.jsxs("div",{className:K("grid h-full min-h-0 items-start gap-4",a?"grid-cols-[1fr_1fr]":"grid-cols-[1fr]"),children:[e,a&&o.jsxs("div",{className:K("grid h-full gap-4 overflow-auto",n&&r?s?"grid-rows-[auto_1fr_1fr]":"grid-rows-[1fr_1fr_1fr]":n?s?"grid-rows-[auto_1fr]":"grid-rows-[1fr_1fr]":s?"grid-rows-[auto]":"grid-rows-[1fr]"),children:[t,n,r]})]})}const jys={debug:{label:"DEBUG",color:"#71717a"},info:{label:"INFO",color:"#60a5fa"},warn:{label:"WARN",color:"#facc15"},error:{label:"ERROR",color:"#f87171"},fatal:{label:"FATAL",color:"#dc2626"}};function Nys({level:e}){const t=jys[e];return o.jsx(To,{children:o.jsx("span",{className:"text-ui-sm font-semibold uppercase",style:{color:t.color},children:t.label})})}function Iys({entityType:e,className:t}){const n=K("size-3.5 shrink-0 text-neutral2",t);switch(e.toLowerCase()){case"agent":return o.jsx(Oo,{className:n,"aria-hidden":!0});case"workflow":case"workflow_run":return o.jsx(rd,{className:n,"aria-hidden":!0});case"tool":return o.jsx(Mf,{className:n,"aria-hidden":!0});default:return null}}function Ays({entityType:e,entityName:t}){const n=e??"";return o.jsxs(To,{className:"flex min-w-0 items-center gap-2",children:[o.jsx(Iys,{entityType:n}),t?o.jsx("span",{className:"text-ui-smd min-w-0 truncate",children:t}):"-"]})}function Rys({message:e}){return o.jsx(To,{className:"text-ui-smd text-neutral4 min-w-0 truncate font-mono",children:e})}function Pys({data:e}){if(!e||Object.keys(e).length===0)return o.jsx(To,{children:null});const t=Object.entries(e).map(([n,r])=>{if(typeof r=="string")return`${n}: ${r}`;try{return`${n}: ${JSON.stringify(r)}`}catch{return`${n}: <unserializable>`}}).join(", ");return o.jsx(DTe,{font:"mono",children:t})}const Ql=Object.assign(q4,{Top:nG,TopCell:mC,TopCellWithTooltip:rG,TopCellSmart:U3t,RowWrapper:BTe,RowButton:V4,RowLink:B3t,Spacer:UTe,NoMatch:tG,DateCell:LTe,TimeCell:FTe,LevelCell:Nys,EntityCell:Ays,MessageCell:Rys,DataCell:Pys,NextPageLoading:eG}),ttt="6rem 9rem 5rem 10rem minmax(8rem,1fr) minmax(8rem,1fr)",$ys=36,Mys=8;function Dys({logs:e,isLoading:t,isFetchingNextPage:n,hasNextPage:r,setEndOfListElement:s,logIdMap:a,featuredLogId:i,onLogClick:l}){const c=g.useRef(null),u=$qt({count:e.length,getScrollElement:()=>c.current,estimateSize:()=>$ys,overscan:Mys}),{getRowProps:d}=wo({count:e.length,containerRef:c,onNavigate:y=>u.scrollToIndex(y)}),f=g.useRef(t);if(g.useEffect(()=>{f.current&&!t&&c.current?.dispatchEvent(new Event("scroll")),f.current=t},[t]),t)return o.jsx(vl,{columns:ttt});const p=u.getVirtualItems(),h=u.getTotalSize(),m=p[0]?.start??0,v=p.length>0?Math.max(0,h-(p[p.length-1]?.end??0)):0;return o.jsxs(Ql,{columns:ttt,variant:"striped",scrollRef:c,className:"min-w-0",children:[o.jsxs(Ql.Top,{children:[o.jsx(Ql.TopCell,{children:"Date"}),o.jsx(Ql.TopCell,{children:"Time"}),o.jsx(Ql.TopCell,{children:"Level"}),o.jsx(Ql.TopCell,{children:"Entity"}),o.jsx(Ql.TopCell,{children:"Message"}),o.jsx(Ql.TopCell,{children:"Data"})]}),e.length===0?o.jsx(Ql.NoMatch,{message:"No logs match your search"}):o.jsxs(o.Fragment,{children:[o.jsx(Ql.Spacer,{height:m}),p.map(y=>{const b=e[y.index];if(!b)return null;const x=a.get(b);if(!x)return null;const S=x===i;return o.jsxs(Ql.RowButton,{ref:u.measureElement,"data-index":y.index,...d(y.index),onClick:()=>l(b),featured:S,variant:b.level==="error"||b.level==="fatal"?"error":"default",children:[o.jsx(Ql.DateCell,{timestamp:b.timestamp}),o.jsx(Ql.TimeCell,{timestamp:b.timestamp}),o.jsx(Ql.LevelCell,{level:b.level}),o.jsx(Ql.EntityCell,{entityType:b.entityType,entityName:b.entityName}),o.jsx(Ql.MessageCell,{message:b.message}),o.jsx(Ql.DataCell,{data:b.data})]},x)}),o.jsx(Ql.Spacer,{height:v})]}),o.jsx(Ql.NextPageLoading,{isLoading:n,hasMore:r,setEndOfListElement:s})]})}function Lys({onClear:e,onRemoveAll:t,onSave:n,onRemoveSaved:r,isLoading:s,filterFields:a,filterTokens:i,onFilterTokensChange:l,autoFocusFilterFieldId:c}){const u=i.length>0,d=i.some(f=>Fys(f,a));return o.jsxs("div",{className:K("grid grid-cols-[1fr_auto] items-start gap-3"),children:[o.jsx(EAe,{fields:a,tokens:i,onTokensChange:l,disabled:s,autoFocusFieldId:c}),u&&o.jsx(_Ae,{disabled:s,onClear:d?e:void 0,onRemoveAll:t,onSave:n,onRemoveSaved:r})]})}function Fys(e,t){const n=t.find(r=>r.id===e.fieldId);return n?n.kind==="text"?typeof e.value=="string"&&e.value.trim()!=="":n.kind==="pick-multi"?n.multi?Array.isArray(e.value)&&e.value.length>0:typeof e.value=="string"&&e.value!==""&&e.value!=="Any":n.kind==="multi-select"?Array.isArray(e.value)&&e.value.length>0:!1:!1}const zys={"last-24h":"the last 24 hours","last-3d":"the last 3 days","last-7d":"the last 7 days","last-14d":"the last 14 days","last-30d":"the last 30 days"},Aie="MMM d, yyyy HH:mm",Rie="Pick a wider range or lower the logging level — verbose entries (debug, info) may be filtered out.";function Bys({datePreset:e,dateFrom:t,dateTo:n}){return e&&e!=="all"&&e!=="custom"?{title:`No logs for ${zys[e]}`,description:Rie}:t&&n?{title:`No logs between ${br(t,Aie)} and ${br(n,Aie)}`,description:Rie}:t?{title:`No logs since ${br(t,Aie)}`,description:Rie}:{title:"No logs yet",description:"Logs will appear here once agents, workflows, or tools are executed."}}const Uys=({datePreset:e,dateFrom:t,dateTo:n}={})=>{const{title:r,description:s}=Bys({datePreset:e,dateFrom:t,dateTo:n});return o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(_r,{iconSlot:o.jsx(U7,{}),titleSlot:r,descriptionSlot:s,actionSlot:o.jsxs(oe,{variant:"ghost",as:"a",href:"https://mastra.ai/en/docs/observability/logging",target:"_blank",rel:"noopener noreferrer",children:["Logging Documentation ",o.jsx(kyt,{})]})})})},qys=20,Vys=1e4;function Hys(e,t,n){if(e?.pagination?.hasMore)return n+1}function Wys(e){const t=new Set,n=[];for(const r of e.pages)for(const s of r.logs??[]){const a=s.logId??JSON.stringify(s);t.has(a)||(t.add(a),n.push(s))}return n}function Zys(e){return R4(e.state.error,"logs")||P4(e.state.error)?!1:Vys}const Gys=({filters:e}={})=>{const t=Ge(),{inView:n,setRef:r}=tC(),s=K1({queryKey:["logs",e],queryFn:({pageParam:p})=>t.listLogsVNext({pagination:{page:p,perPage:qys},filters:e,orderBy:{field:"timestamp",direction:"DESC"}}),initialPageParam:0,getNextPageParam:Hys,select:Wys,retry:!1,refetchInterval:Zys}),{hasNextPage:a,isFetchingNextPage:i,fetchNextPage:l,data:c,isLoading:u,isError:d,error:f}=s;return g.useEffect(()=>{n&&a&&!i&&l()},[n,a,i,l]),{data:c,hasNextPage:a,isFetchingNextPage:i,fetchNextPage:l,isLoading:u,isError:d,error:f,setEndOfListElement:r}},Jz={AGENT:"agent",WORKFLOW:"workflow_run",SCORER:"scorer",INGEST:"rag_ingestion"},NVt=[{label:"Agent",entityType:Jz.AGENT},{label:"Workflow",entityType:Jz.WORKFLOW},{label:"Scorer",entityType:Jz.SCORER},{label:"Ingest",entityType:Jz.INGEST}],Qys=[{label:"Debug",value:"debug"},{label:"Info",value:"info"},{label:"Warn",value:"warn"},{label:"Error",value:"error"},{label:"Fatal",value:"fatal"}],Xx="rootEntityType",tx="datePreset",nx="dateFrom",rx="dateTo",Yys=new Set(["all","last-24h","last-3d","last-7d","last-14d","last-30d","custom"]),El={level:"filterLevel",tags:"filterTags",entityName:"filterEntityName",traceId:"filterTraceId",spanId:"filterSpanId",runId:"filterRunId",threadId:"filterThreadId",sessionId:"filterSessionId",requestId:"filterRequestId",resourceId:"filterResourceId",userId:"filterUserId",organizationId:"filterOrganizationId",serviceName:"filterServiceName",environment:"filterEnvironment",experimentId:"filterExperimentId"},UL=Object.keys(El),ZAe=new Set(["tags"]),GAe="mastra:logs:saved-filters";function Kys(e,t=GAe){const n=nbs(e),r=e.get(tx);r&&n.set(tx,r);const s=e.get(nx);s&&n.set(nx,s);const a=e.get(rx);a&&n.set(rx,a);try{localStorage.setItem(t,n.toString())}catch{}}function Xys(e=GAe){try{localStorage.removeItem(e)}catch{}}function ntt(e=GAe){try{const t=localStorage.getItem(e);if(!t)return null;const n=new URLSearchParams(t);return n.toString()?n:null}catch{return null}}function Jys(e){if(e.has(tx)||e.has(nx)||e.has(rx)||e.has(Xx))return!0;for(const t of UL)if(e.has(El[t]))return!0;return!1}function ebs({availableTags:e,availableRootEntityNames:t,availableServiceNames:n,availableEnvironments:r,loading:s}){const a=[{id:"rootEntityType",label:"Primitive Type",kind:"pick-multi",searchable:!1,options:NVt.map(u=>({label:u.label,value:u.entityType})),placeholder:"Choose entity type",emptyText:"No entity types."},{id:"entityName",label:"Primitive Name",kind:"pick-multi",options:t.map(u=>({label:u,value:u})),placeholder:"Choose entity names",emptyText:"No entity names found.",isLoading:s?.entityNames},{id:"level",label:"Level",kind:"pick-multi",searchable:!1,options:Qys.map(u=>({label:u.label,value:u.value})),placeholder:"Choose level",emptyText:"No levels."},{id:"tags",label:"Tags",kind:"pick-multi",multi:!0,options:e.map(u=>({label:u,value:u})),placeholder:"Choose tags",emptyText:"No tags found.",isLoading:s?.tags},{id:"serviceName",label:"Service Name",kind:"pick-multi",options:n.map(u=>({label:u,value:u})),placeholder:"Choose service names",emptyText:"No service names found.",isLoading:s?.serviceNames},{id:"environment",label:"Environment",kind:"pick-multi",options:r.map(u=>({label:u,value:u})),placeholder:"Choose environments",emptyText:"No environments found.",isLoading:s?.environments},{id:"traceId",label:"Trace ID",kind:"text"},{id:"spanId",label:"Span ID",kind:"text"},{id:"runId",label:"Run ID",kind:"text"},{id:"threadId",label:"Thread ID",kind:"text"},{id:"sessionId",label:"Session ID",kind:"text"},{id:"requestId",label:"Request ID",kind:"text"},{id:"resourceId",label:"Resource ID",kind:"text"},{id:"userId",label:"User ID",kind:"text"},{id:"organizationId",label:"Organization ID",kind:"text"},{id:"experimentId",label:"Experiment ID",kind:"text"}],i=(u,d)=>u.label.localeCompare(d.label),l=a.filter(u=>u.kind==="pick-multi").sort(i),c=a.filter(u=>u.kind==="text").sort(i);return[...l,...c]}function tbs(e){const t=[],n=new Map([[Xx,"rootEntityType"]]);for(const s of UL)n.set(El[s],s);const r=new Set;for(const[s]of e.entries()){const a=n.get(s);if(!a||r.has(a))continue;if(r.add(a),ZAe.has(a)){const l=e.getAll(s);if(l.length===0)continue;t.push({fieldId:a,value:l.filter(Boolean)});continue}const i=e.get(s);i!==null&&t.push({fieldId:a,value:i})}return t}function nbs(e){const t=new URLSearchParams,n=e.get(Xx);n&&t.set(Xx,n);for(const r of UL){const s=El[r];if(ZAe.has(r)){for(const i of e.getAll(s))t.append(s,i);continue}const a=e.get(s);a&&t.set(s,a)}return t}function rbs(e,t){e.delete(Xx);for(const n of UL)e.delete(El[n]);for(const n of t){if(n.fieldId==="rootEntityType"&&typeof n.value=="string"){e.set(Xx,n.value);continue}const r=El[n.fieldId];if(r){if(ZAe.has(n.fieldId)&&Array.isArray(n.value)){if(n.value.length===0)e.append(r,"");else for(const s of n.value)e.append(r,s);continue}typeof n.value=="string"&&e.set(r,n.value.trim())}}}function sbs({rootEntityType:e,dateFrom:t,dateTo:n,tokens:r}){const s={};e&&(s.rootEntityType=e),(t||n)&&(s.timestamp={...t?{start:t}:{},...n?{end:n}:{}});for(const a of r){if(a.fieldId==="tags"){Array.isArray(a.value)&&a.value.length>0?s.tags=a.value:typeof a.value=="string"&&a.value.trim()&&(s.tags=[a.value.trim()]);continue}if(a.fieldId==="level"){typeof a.value=="string"&&a.value.trim()&&a.value!=="Any"&&(s.level=a.value);continue}if(typeof a.value=="string"&&a.value.trim()&&a.value!=="Any")switch(a.fieldId){case"entityName":s.rootEntityName=a.value;break;case"traceId":s.traceId=a.value;break;case"spanId":s.spanId=a.value;break;case"runId":s.runId=a.value;break;case"threadId":s.threadId=a.value;break;case"sessionId":s.sessionId=a.value;break;case"requestId":s.requestId=a.value;break;case"resourceId":s.resourceId=a.value;break;case"userId":s.userId=a.value;break;case"organizationId":s.organizationId=a.value;break;case"serviceName":s.serviceName=a.value;break;case"environment":s.environment=a.value;break;case"experimentId":s.experimentId=a.value;break}}return s}function abs(e,t){return t.map(n=>{const r=e.find(s=>s.id===n.fieldId);return r?r.kind==="text"?{fieldId:n.fieldId,value:""}:r.kind==="pick-multi"?r.multi?{fieldId:n.fieldId,value:[]}:{fieldId:n.fieldId,value:"Any"}:n:n})}const ibs="Filters setting for Logs saved",obs="Filters setting for Logs cleared up";function lbs(e,t,n){const{storageKey:r,messages:s,skipHydration:a}={},[i,l]=g.useState(()=>ntt(r)!==null),c=g.useCallback(()=>{Kys(e,r),l(!0);const f=s?.saved??ibs;f!==!1&&Be.success(f)},[e,r,s?.saved]),u=g.useCallback(()=>{Xys(r),l(!1);const f=s?.cleared??obs;f!==!1&&Be.success(f)},[r,s?.cleared]),d=g.useRef(!1);return g.useEffect(()=>{if(a||d.current||(d.current=!0,Jys(e)))return;const f=ntt(r);f&&t(p=>{const h=new URLSearchParams(p);for(const[m,v]of f)h.append(m,v);return h},{replace:!0})},[]),{hasSavedFilters:i,handleSave:c,handleRemoveSaved:u}}function cbs(e){let t=0;for(let n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n)|0;return(t>>>0).toString(36)}function ubs(e){const t=new Map;for(const n of e){if(n.logId){t.set(n,n.logId);continue}const r=n.timestamp instanceof Date?n.timestamp.toISOString():n.timestamp;t.set(n,cbs(`${r}${n.message??""}${n.data?JSON.stringify(n.data):""}`))}return t}function dbs(e,t,n,r){const s=g.useMemo(()=>ubs(e),[e]),a=g.useMemo(()=>{const h=new Map;for(const[m,v]of e.entries()){const y=s.get(v);y&&h.set(y,{log:v,idx:m})}return h},[e,s]),l=(t?a.get(t):void 0)?.idx??-1,c=l>=0?e[l]??null:null,u=g.useCallback(h=>s.get(h),[s]),d=g.useCallback(h=>{const m=s.get(h);if(m){if(t===m){n({logId:null});return}n(r?{logId:m,traceId:h.traceId??null,spanId:null}:{logId:m})}},[s,t,r,n]),f=l>0?()=>{const h=e[l-1];if(!h)return;const m=s.get(h);m&&n(r?{logId:m,traceId:h.traceId??null,spanId:null}:{logId:m})}:void 0,p=l>=0&&l<e.length-1?()=>{const h=e[l+1];if(!h)return;const m=s.get(h);m&&n(r?{logId:m,traceId:h.traceId??null,spanId:null}:{logId:m})}:void 0;return{logIdMap:s,getLogId:u,featuredLog:c,handleLogClick:d,handlePreviousLog:f,handleNextLog:p}}const Vxe="logId",Hxe="traceId",Wxe="spanId",kP=1440*60*1e3,fbs={"last-24h":kP,"last-3d":3*kP,"last-7d":7*kP,"last-14d":14*kP,"last-30d":30*kP};function e8(e){e.delete(Vxe),e.delete(Hxe),e.delete(Wxe)}function pbs(e,t,n){const{onRemoveAll:r}={},s=g.useMemo(()=>{const _=e.get(tx);return _&&Yys.has(_)?_:"last-24h"},[e]),a=e.get(nx),i=e.get(rx),l=g.useMemo(()=>{if(s==="custom"){if(!a)return;const C=new Date(a);return Number.isNaN(C.getTime())?void 0:C}if(s==="all")return;const _=fbs[s];return _?new Date(Date.now()-_):void 0},[s,a]),c=g.useMemo(()=>{if(s!=="custom"||!i)return;const _=new Date(i);return Number.isNaN(_.getTime())?void 0:_},[s,i]),u=g.useRef(s);u.current=s;const d=e.get(Vxe),f=e.get(Hxe),p=e.get(Wxe),h=g.useMemo(()=>NVt.find(_=>_.entityType===e.get(Xx)),[e]),m=g.useMemo(()=>tbs(e),[e]),v=g.useCallback(_=>{t(C=>{const T=new URLSearchParams(C);for(const[E,N]of Object.entries(_)){const I=E==="logId"?Vxe:E==="traceId"?Hxe:Wxe;N?T.set(I,N):T.delete(I)}return T},{replace:!0})},[t]),y=g.useCallback(_=>{t(C=>{const T=new URLSearchParams(C);return rbs(T,_),e8(T),T},{replace:!0})},[t]),b=y,x=g.useCallback((_,C)=>{if(u.current!=="custom")return;const T=C==="from"?nx:rx;t(E=>{const N=new URLSearchParams(E);return _?N.set(T,_.toISOString()):N.delete(T),e8(N),N},{replace:!0})},[t]),S=g.useCallback(_=>{u.current=_,t(C=>{const T=new URLSearchParams(C);return _==="last-24h"?(T.delete(tx),T.delete(nx),T.delete(rx)):_==="custom"?T.set(tx,"custom"):(T.set(tx,_),T.delete(nx),T.delete(rx)),e8(T),T},{replace:!0})},[t]),k=g.useCallback(()=>{t(_=>{const C=new URLSearchParams(_);C.delete(Xx);for(const T of UL)C.delete(El[T]);return C.delete(tx),C.delete(nx),C.delete(rx),e8(C),C},{replace:!0}),r?.()},[t,r]);return g.useMemo(()=>({searchParams:e,setSearchParams:t,datePreset:s,selectedDateFrom:l,selectedDateTo:c,datePresetRef:u,featuredLogId:d,featuredTraceId:f,featuredSpanId:p,selectedEntityOption:h,filterTokens:m,handleFeaturedChange:v,handleFilterTokensChange:b,handleDateChange:x,handleDatePresetChange:S,handleRemoveAll:k,applyFilterTokens:y}),[e,t,s,l,c,u,d,f,p,h,m,v,b,x,S,k,y])}const Tb=Li.KeyValueList;function hbs({spanId:e,span:t,isLoading:n,onClose:r}){const s=BQ(t?.startedAt,t?.endedAt),a=uV(t?.startedAt),i=uV(t?.endedAt);return o.jsxs(Li,{children:[o.jsxs(Li.Header,{children:[o.jsxs(Li.Heading,{children:["Span ",o.jsxs("b",{children:["# ",e]})]}),o.jsx(Li.CloseButton,{onClick:r})]}),n?o.jsx(Li.LoadingData,{children:"Loading span..."}):t?o.jsxs(Li.Content,{children:[o.jsxs(Tb,{children:[t.spanType&&o.jsxs(o.Fragment,{children:[o.jsx(Tb.Key,{children:"Type"}),o.jsx(Tb.Value,{children:t.spanType})]}),a&&o.jsxs(o.Fragment,{children:[o.jsx(Tb.Key,{children:"Started"}),o.jsx(Tb.Value,{children:a})]}),i&&o.jsxs(o.Fragment,{children:[o.jsx(Tb.Key,{children:"Ended"}),o.jsx(Tb.Value,{children:i})]}),s&&o.jsxs(o.Fragment,{children:[o.jsx(Tb.Key,{children:"Duration"}),o.jsx(Tb.Value,{children:s})]})]}),o.jsx("br",{}),o.jsx(Li.CodeSection,{title:"Input",icon:o.jsx(yme,{}),codeStr:JSON.stringify(t.input??null,null,2)}),o.jsx(Li.CodeSection,{title:"Output",icon:o.jsx(bme,{}),codeStr:JSON.stringify(t.output??null,null,2)}),o.jsx(Li.CodeSection,{title:"Metadata",icon:o.jsx(sx,{}),codeStr:JSON.stringify(t.metadata??null,null,2)}),o.jsx(Li.CodeSection,{title:"Attributes",icon:o.jsx(sx,{}),codeStr:JSON.stringify(t.attributes??null,null,2)})]}):o.jsx(Li.NoData,{children:"Span not found."})]})}function mbs({traceId:e,spans:t,isLoading:n,onClose:r,onSpanSelect:s,selectedSpanId:a}){const i=g.useMemo(()=>MAe(t??[]),[t]),[l,c]=g.useState([]);g.useEffect(()=>{i.length>0&&c(DAe(i))},[i]);const u=d=>{s?.(a===d?void 0:d)};return o.jsxs(Li,{children:[o.jsxs(Li.Header,{children:[o.jsxs(Li.Heading,{children:["Trace ",o.jsxs("b",{children:["# ",e]})]}),o.jsx(Li.CloseButton,{onClick:r})]}),n?o.jsx(Li.LoadingData,{children:"Loading trace..."}):i.length===0?o.jsx(Li.NoData,{children:"No spans found for this trace."}):o.jsx(Li.Content,{children:o.jsx(iVt,{hierarchicalSpans:i,onSpanClick:u,selectedSpanId:a??void 0,expandedSpanIds:l,setExpandedSpanIds:c})})]})}function gbs(){const[e,t]=ti(),n=pbs(e,t),r=lbs(e,t),[s,a]=g.useState(),[i,l]=g.useState(!1),{data:c=[],isPending:u}=PAe(),{data:d=[],isPending:f}=IAe({entityType:n.selectedEntityOption?.entityType,rootOnly:!0}),{data:p=[],isPending:h}=AAe(),{data:m=[],isPending:v}=RAe(),y=g.useMemo(()=>ebs({availableTags:c,availableRootEntityNames:d,availableServiceNames:m,availableEnvironments:p,loading:{tags:u,entityNames:f,serviceNames:v,environments:h}}),[c,d,m,p,u,f,v,h]),b=g.useMemo(()=>sbs({rootEntityType:n.selectedEntityOption?.entityType,dateFrom:n.selectedDateFrom,dateTo:n.selectedDateTo,tokens:n.filterTokens}),[n.filterTokens,n.selectedDateFrom,n.selectedDateTo,n.selectedEntityOption]),{data:x=[],isLoading:S,error:k,isFetchingNextPage:_,hasNextPage:C,setEndOfListElement:T}=Gys({filters:b}),{logIdMap:E,featuredLog:N,handleLogClick:I,handlePreviousLog:A,handleNextLog:R}=dbs(x,n.featuredLogId,n.handleFeaturedChange,n.featuredTraceId),{data:L,isLoading:D}=Mqt(n.featuredTraceId??null),{data:F,isLoading:H}=qQ(n.featuredTraceId??"",n.featuredSpanId??""),B=g.useCallback(()=>n.applyFilterTokens(abs(y,n.filterTokens)),[y,n]),z=g.useCallback(()=>n.handleFeaturedChange({logId:null}),[n]),V=g.useCallback(Y=>n.handleFeaturedChange({traceId:Y,spanId:null}),[n]),M=g.useCallback((Y,ne)=>n.handleFeaturedChange({traceId:Y,spanId:ne}),[n]),G=g.useCallback(()=>{n.handleFeaturedChange({traceId:null,spanId:null}),l(!1)},[n]),U=g.useCallback(()=>n.handleFeaturedChange({spanId:null}),[n]),$=g.useCallback(Y=>n.handleFeaturedChange({spanId:Y??null}),[n]),q=o.jsxs(Ut.TopArea,{children:[o.jsx(Ut.Row,{children:o.jsxs(Ut.Column,{className:"flex flex-wrap items-start justify-start gap-2",children:[o.jsx(I4,{preset:n.datePreset,onPresetChange:n.handleDatePresetChange,dateFrom:n.selectedDateFrom,dateTo:n.selectedDateTo,onDateChange:n.handleDateChange,disabled:S,presets:["last-24h","last-3d","last-7d","last-14d","last-30d","custom"]}),o.jsx(TAe,{fields:y,tokens:n.filterTokens,onTokensChange:n.handleFilterTokensChange,disabled:S,onStartTextFilter:a})]})}),o.jsx(Lys,{isLoading:S,filterFields:y,filterTokens:n.filterTokens,onFilterTokensChange:n.handleFilterTokensChange,onClear:B,onRemoveAll:n.handleRemoveAll,onSave:r.handleSave,onRemoveSaved:r.hasSavedFilters?r.handleRemoveSaved:void 0,autoFocusFilterFieldId:s})]});if(k)return o.jsxs(Ut,{width:"wide",height:"full",children:[q,o.jsx(Ut.MainArea,{isCentered:!0,children:o.jsx(Eys,{error:k,resource:"logs",errorTitle:"Failed to load logs"})})]});const Z=!!n.selectedEntityOption||n.filterTokens.length>0;return x.length===0&&!S&&!Z?o.jsxs(Ut,{width:"wide",height:"full",children:[q,o.jsx(Ut.MainArea,{isCentered:!0,children:o.jsx(Uys,{datePreset:n.datePreset,dateFrom:n.selectedDateFrom,dateTo:n.selectedDateTo})})]}):o.jsxs(Ut,{width:"wide",height:"full",children:[q,o.jsx(Tys,{logCollapsed:i,listSlot:o.jsx(Dys,{logs:x,isLoading:S,isFetchingNextPage:_,hasNextPage:C,setEndOfListElement:T,logIdMap:E,featuredLogId:n.featuredLogId,onLogClick:I}),logPanelSlot:N?o.jsx(Cys,{log:N,onClose:z,onTraceClick:V,onSpanClick:M,onPrevious:A,onNext:R,collapsed:i,onCollapsedChange:l}):null,tracePanelSlot:n.featuredTraceId?o.jsx(mbs,{traceId:n.featuredTraceId,spans:L?.spans,isLoading:D,onClose:G,onSpanSelect:$,selectedSpanId:n.featuredSpanId}):null,spanPanelSlot:n.featuredTraceId&&n.featuredSpanId?o.jsx(hbs,{spanId:n.featuredSpanId,span:F?.span,isLoading:H,onClose:U}):null})]})}function vbs({server:e,rowProps:t}){const{paths:n,Link:r}=dn(),a=Ge().options.baseUrl,i=a?`${a}/api/mcp/${e.id}/sse`:"",{data:l}=cBt(e),c=Object.values(l||{}),u=c.length,d=c.filter(h=>h.toolType==="agent").length,f=c.filter(h=>h.toolType==="workflow").length,p=Qh(e.name,50);return o.jsxs(be.RowLink,{to:n.mcpServerLink(e.id),LinkComponent:r,...t,children:[o.jsx(be.NameCell,{children:p}),o.jsx(be.DescriptionCell,{children:i}),o.jsx(be.TextCell,{className:"text-center",children:d||""}),o.jsx(be.TextCell,{className:"text-center",children:u||""}),o.jsx(be.TextCell,{className:"text-center",children:f||""})]})}function ybs({mcpServers:e,isLoading:t,search:n=""}){const r=g.useMemo(()=>{const i=n.toLowerCase();return e.filter(l=>l.name?.toLowerCase().includes(i)||l.id?.toLowerCase().includes(i))},[e,n]),{containerRef:s,getRowProps:a}=wo({count:r.length});return t?o.jsx(vl,{columns:"auto 1fr auto auto auto"}):o.jsxs(be,{columns:"auto 1fr auto auto auto",variant:"striped",scrollRef:s,children:[o.jsxs(be.Top,{children:[o.jsx(be.TopCell,{children:"Name"}),o.jsx(be.TopCell,{children:"URL"}),o.jsx(be.TopCellSmart,{long:"Agents",short:o.jsx(Oo,{}),tooltip:"Agent Tools",className:"text-center"}),o.jsx(be.TopCellSmart,{long:"Tools",short:o.jsx(Mf,{}),tooltip:"Tools",className:"text-center"}),o.jsx(be.TopCellSmart,{long:"Workflows",short:o.jsx(rd,{}),tooltip:"Workflow Tools",className:"text-center"})]}),r.length===0&&n?o.jsx(be.NoMatch,{message:"No MCP Servers match your search"}):null,r.map((i,l)=>o.jsx(vbs,{server:i,rowProps:a(l)},i.id))]})}const bbs=()=>o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(_r,{iconSlot:o.jsx(Df,{}),titleSlot:"No MCP Servers yet",descriptionSlot:o.jsxs(o.Fragment,{children:["MCP servers are not configured yet. ",o.jsx("br",{}),"More information in the documentation."]}),actionSlot:o.jsxs(oe,{variant:"ghost",as:"a",href:"https://mastra.ai/docs/tools-mcp/mcp-overview",target:"_blank",rel:"noopener noreferrer",children:["MCP Documentation ",o.jsx(ds,{})]})})}),xbs=()=>{const{data:e=[],isLoading:t,error:n}=bQ(),[r,s]=g.useState("");return n&&ws(n)?o.jsx(ar,{children:o.jsx(Ys,{})}):n&&Ss(n)?o.jsx(ar,{children:o.jsx(qs,{resource:"MCP servers"})}):n?o.jsx(ar,{children:o.jsx(Ui,{title:"Failed to load MCP servers",message:n.message})}):e.length===0&&!t?o.jsx(ar,{children:o.jsx(bbs,{})}):o.jsxs(Ut,{children:[o.jsx(Ut.TopArea,{children:o.jsx("div",{className:"max-w-120",children:o.jsx(Bf,{onSearch:s,label:"Filter MCP servers",placeholder:"Filter by name"})})}),o.jsx(ybs,{mcpServers:e,isLoading:t,search:r})]})},wbs=(e,t)=>{const n=new Map,r=Object.keys(t);for(const s of r){const a=t[s],i=a.tools,l=Object.keys(i);for(const c of l){const u=i[c];n.has(u.id)||n.set(u.id,{...u,agents:[]}),n.get(u.id).agents.push({...a,id:s})}}for(const[s,a]of Object.entries(e))n.has(a.id)||n.set(a.id,{...a,agents:[]});return Array.from(n.values())};function Sbs({tools:e,agents:t,isLoading:n,search:r=""}){const{paths:s,Link:a}=dn(),i=g.useMemo(()=>wbs(e,t),[e,t]),l=g.useMemo(()=>i.filter(d=>d.id.toLowerCase().includes(r.toLowerCase())),[i,r]),{containerRef:c,getRowProps:u}=wo({count:l.length});return n?o.jsx(vl,{columns:"auto 1fr auto"}):o.jsxs(be,{columns:"auto 1fr auto",variant:"striped",scrollRef:c,children:[o.jsxs(be.Top,{children:[o.jsx(be.TopCell,{children:"Name"}),o.jsx(be.TopCell,{children:"Description"}),o.jsx(be.TopCellSmart,{long:"Agents",short:o.jsx(Oo,{}),tooltip:"Attached Agents",className:"text-center"})]}),l.length===0&&r?o.jsx(be.NoMatch,{message:"No Tools match your search"}):null,l.map((d,f)=>{const p=Qh(d.id,50),h=Qh(d.description??"",200),m=d.agents.length;return o.jsxs(be.RowLink,{to:s.toolLink(d.id),LinkComponent:a,...u(f),children:[o.jsx(be.NameCell,{children:p}),o.jsx(be.DescriptionCell,{children:h}),o.jsx(be.TextCell,{className:"text-center",children:m||""})]},d.id)})]})}const kbs=()=>o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(_r,{iconSlot:o.jsx(Df,{}),titleSlot:"No Tools yet",descriptionSlot:o.jsxs(o.Fragment,{children:["Mastra tools are not configured yet. ",o.jsx("br",{}),"More information in the documentation."]}),actionSlot:o.jsxs(oe,{variant:"ghost",as:"a",href:"https://mastra.ai/docs/agents/using-tools-and-mcp",target:"_blank",rel:"noopener noreferrer",children:["Tools Documentation ",o.jsx(ds,{})]})})}),Obs=()=>{const e=Ge();return Rn({mutationFn:async({toolId:t,input:n,requestContext:r})=>{const s=new A_;Object.entries(r??{}).forEach(([a,i])=>{s.set(a,i)});try{return await e.getTool(t).execute({data:n,requestContext:s})}catch(a){throw Be.error("Error executing dev tool"),console.error("Error executing dev tool:",a),a}}})},_bs=({toolId:e})=>{const{canExecute:t}=Uo(),n=t("tools"),{data:r={}}=$m(),s=g.useMemo(()=>{for(const v of Object.values(r))if(v.tools){const y=Object.values(v.tools).find(b=>b.id===e);if(y)return y}return null},[r,e]),{data:a,isLoading:i,error:l}=PRr(e,{enabled:!s}),c=s||a,{mutateAsync:u,isPending:d,data:f}=Obs(),{requestContext:p}=hs();g.useEffect(()=>{if(l){const v=l instanceof Error?l.message:"Failed to load tool";Be.error(`Error loading tool: ${v}`)}},[l]);const h=async(v,y)=>{if(!c)return;const b={...p??{},...y??{}};return u({toolId:c.id,input:v,requestContext:b})},m=c?.inputSchema?gm(Nx(c?.inputSchema)):vs({});return i?o.jsxs("div",{className:"p-6",children:[o.jsx(St,{className:"mb-4 h-8 w-48"}),o.jsx(St,{className:"h-32 w-full"})]}):l?null:c?n?o.jsx(tAe,{executionResult:f,isExecutingTool:d,zodInputSchema:m,handleExecuteTool:h,toolDescription:c.description,toolId:c.id,requestContextSchema:c.requestContextSchema}):o.jsx("div",{className:"px-6 py-12 text-center",children:o.jsx(ge,{variant:"ui-sm",className:"text-neutral3",children:"You don't have permission to execute tools."})}):o.jsx("div",{className:"px-6 py-12 text-center",children:o.jsx(ge,{variant:"header-md",className:"text-neutral3",children:"Tool not found"})})};function Cbs({value:e,onValueChange:t,placeholder:n="Select a tool...",searchPlaceholder:r="Search tools...",emptyText:s="No tools found.",className:a,disabled:i=!1,variant:l}){const{data:c={},isLoading:u,isError:d,error:f}=ZI(),{data:p={},isLoading:h,isError:m,error:v}=$m(),{navigate:y,paths:b}=dn();g.useEffect(()=>{if(d){const _=f instanceof Error?f.message:"Failed to load tools";Be.error(`Error loading tools: ${_}`)}},[d,f]),g.useEffect(()=>{if(m){const _=v instanceof Error?v.message:"Failed to load agents";Be.error(`Error loading agents: ${_}`)}},[m,v]);const x=new Map;Object.values(p).forEach(_=>{_.tools&&Object.values(_.tools).forEach(C=>{x.has(C.id)||x.set(C.id,C)})}),Object.values(c).forEach(_=>{x.has(_.id)||x.set(_.id,_)});const S=Array.from(x.values()).map(_=>({label:_.id,value:_.id})),k=_=>{t?t(_):_&&_!==e&&y(b.toolLink(_))};return o.jsx(yl,{options:S,value:e,onValueChange:k,placeholder:u||h?"Loading tools...":n,searchPlaceholder:r,emptyText:s,className:a,disabled:i||u||h||d||m,variant:l})}const Ebs=({isLoading:e,server:t})=>{const[{sseUrl:n,httpStreamUrl:r},s]=g.useState({sseUrl:"",httpStreamUrl:""});if(g.useEffect(()=>{if(!t)return;const i=window.MASTRA_SERVER_HOST,l=window.MASTRA_SERVER_PORT;let c=null;i&&l&&(c=`http://${i}:${l}`);const u=c||"http://localhost:4111",d=`${u}/api/mcp/${t.id}/sse`,f=`${u}/api/mcp/${t.id}/mcp`;s({sseUrl:d,httpStreamUrl:f})},[t]),e)return null;if(!t)return o.jsx(Gx,{children:o.jsx(ge,{as:"h1",variant:"header-md",className:"text-neutral3 py-20 text-center font-medium",children:"Server not found"})});const a=`npx -y mcp-remote ${n}`;return o.jsxs(Gx,{isDivided:!0,children:[o.jsxs("div",{className:"mx-auto w-full max-w-2xl px-8 py-12",children:[o.jsx(ge,{as:"h1",variant:"header-md",className:"text-neutral6 pb-4 font-medium",children:t.name}),o.jsxs("div",{className:"flex items-center gap-1 pb-6",children:[o.jsx(Xt,{icon:o.jsx(rVt,{className:"text-neutral6"}),className:"text-neutral4! rounded-r-sm",children:"Version"}),o.jsx(Xt,{className:"text-neutral4! rounded-l-sm",children:t.version_detail.version})]}),o.jsx(ge,{className:"text-neutral3 pb-4",children:"This MCP server can be accessed through multiple transport methods. Choose the one that best fits your use case."}),o.jsxs("div",{className:"flex flex-col gap-4",children:[o.jsxs("div",{className:"border-border1 bg-surface3 rounded-lg border p-4",children:[o.jsx(Xt,{icon:o.jsx("span",{className:"text-accent1 mr-1 w-6 font-mono font-medium",children:"HTTP"}),children:"Regular HTTP Endpoint"}),o.jsx(ge,{className:"text-neutral3 pt-1 pb-2",children:"Use for stateless HTTP transport with streamable responses."}),o.jsxs("div",{className:"flex items-start gap-2",children:[o.jsx(ge,{className:"bg-surface4 rounded-lg px-2 py-1",children:r}),o.jsx("div",{className:"pt-1",children:o.jsx(Sa,{tooltip:"Copy HTTP Stream URL",content:r})})]})]}),o.jsxs("div",{className:"border-border1 bg-surface3 rounded-lg border p-4",children:[o.jsx(Xt,{icon:o.jsx("span",{className:"text-accent1 mr-1 w-6 font-mono font-medium",children:"SSE"}),children:"Server-Sent Events"}),o.jsx(ge,{className:"text-neutral3 pt-1 pb-2",children:"Use for real-time communication via SSE."}),o.jsxs("div",{className:"flex items-start gap-2",children:[o.jsx(ge,{className:"bg-surface4 rounded-lg px-2 py-1",children:n}),o.jsx("div",{className:"pt-1",children:o.jsx(Sa,{tooltip:"Copy SSE URL",content:n})})]})]}),o.jsxs("div",{className:"border-border1 bg-surface3 rounded-lg border p-4",children:[o.jsx(Xt,{icon:o.jsx("span",{className:"text-accent1 mr-1 w-6 font-mono font-medium",children:"CLI"}),children:"Command Line"}),o.jsx(ge,{className:"text-neutral3 pt-1 pb-2",children:"Use for local command-line access via npx and mcp-remote."}),o.jsxs("div",{className:"flex items-start gap-2",children:[o.jsx(ge,{className:"bg-surface4 rounded-lg px-2 py-1",children:a}),o.jsx("div",{className:"pt-1",children:o.jsx(Sa,{tooltip:"Copy Command Line Config",content:a})})]})]})]})]}),o.jsx("div",{className:"border-border1 h-full overflow-y-scroll border-l",children:o.jsx(Tbs,{server:t})})]})},Tbs=({server:e})=>{const{data:t={},isLoading:n}=cBt(e);if(n)return null;const r=Object.keys(t);return o.jsxs("div",{className:"overflow-y-scroll p-5",children:[o.jsxs("div",{className:"text-neutral6 flex items-center gap-2",children:[o.jsx(Ve,{size:"lg",className:"bg-surface4 rounded-md p-1",children:o.jsx(OC,{})}),o.jsx(ge,{variant:"header-md",as:"h2",className:"font-medium",children:"Available Tools"})]}),o.jsx("div",{className:"flex flex-col gap-2 pt-6",children:r.map(s=>{const a=t[s];return o.jsx(Nbs,{tool:a,serverId:e.id},s)})})]})};function jbs(e){if(!e)return!1;const t=e.ui;return!!(typeof t?.resourceUri=="string"&&t.resourceUri.startsWith("ui://")||typeof e["ui/resourceUri"]=="string"&&e["ui/resourceUri"].startsWith("ui://"))}const Nbs=({tool:e,serverId:t})=>{const n=g.useRef(null),{Link:r,paths:s}=dn(),a=zBt[e.toolType||"tool"],i=jbs(e._meta);return o.jsxs(qf,{onClick:()=>n.current?.click(),children:[o.jsx(XDt,{children:o.jsx(a,{className:"group-hover/entity:text-accent6"})}),o.jsxs(Hf,{children:[o.jsx(Vf,{children:o.jsxs("span",{className:"flex items-center gap-2",children:[o.jsx(r,{ref:n,href:s.mcpServerToolLink(t,e.id),children:e.id}),i&&o.jsx(Xt,{className:"py-0 text-[10px]",children:"App"})]})}),o.jsx(rh,{children:e.description})]})]})},Ibs=()=>{const{serverId:e}=wr(),{data:t=[],isLoading:n}=bQ(),r=t.find(s=>s.id===e);return o.jsx("div",{className:"h-full w-full overflow-hidden",children:o.jsx(Ebs,{isLoading:n,server:r})})};function Abs(e){if(!e)return;const t=e.ui;if(t?.resourceUri)return t.resourceUri;const n=e["ui/resourceUri"];if(typeof n=="string")return n}const Rbs=({toolId:e,serverId:t})=>{const{canExecute:n}=Uo(),r=n("tools"),s=Ge(),{data:a,isLoading:i,error:l}=YIe(t,e),{mutateAsync:c,isPending:u,data:d}=xrs(t,e),f=a?Abs(a._meta):void 0,{data:p}=yt({queryKey:["mcp-app-resource",t,f],queryFn:async()=>f?(await s.readMcpServerResource(t,f)).contents[0]?.text??null:null,enabled:!!f}),h=g.useCallback(async(y,b)=>await c(b),[c]);g.useEffect(()=>{if(l){const y=l instanceof Error?l.message:"Failed to load tool";Be.error(`Error loading tool: ${y}`)}},[l]);const m=async y=>{if(a)return await c(y)};if(i)return o.jsxs("div",{className:"p-6",children:[o.jsx(St,{className:"mb-4 h-8 w-48"}),o.jsx(St,{className:"h-32 w-full"})]});if(l)return null;if(!a)return o.jsx("div",{className:"px-6 py-12 text-center",children:o.jsx(ge,{variant:"header-md",className:"text-neutral3",children:"Tool not found"})});if(!r)return o.jsx("div",{className:"px-6 py-12 text-center",children:o.jsx(ge,{variant:"ui-sm",className:"text-neutral3",children:"You don't have permission to execute tools."})});let v;try{v=gm(a.inputSchema)}catch(y){console.error("Error processing input schema:",y),Be.error("Failed to process tool input schema."),v=vs({})}return o.jsxs("div",{className:"flex flex-col gap-4",children:[p&&o.jsx("div",{className:"border-border1 border-b p-4",children:o.jsx(lBt,{html:p,toolName:a.name??a.id,onToolCall:h})}),o.jsx(tAe,{executionResult:d,isExecutingTool:u,zodInputSchema:v,handleExecuteTool:m,toolDescription:a.description||"",toolId:a.id})]})},Pbs=()=>{const{serverId:e,toolId:t}=wr(),{data:n,isLoading:r}=YIe(e,t);return r||!n?null:o.jsx("div",{className:"h-full w-full overflow-y-auto",children:o.jsx(Rbs,{toolId:t,serverId:e})})},IVt=[{label:"Agent",entityType:"agent"},{label:"Workflow",entityType:"workflow_run"},{label:"Scorer",entityType:"scorer"},{label:"Ingest",entityType:"rag_ingestion"}],HN="rootEntityType",WN={tags:"filterTags",entityId:"filterEntityId",entityName:"filterEntityName",runId:"filterRunId",threadId:"filterThreadId",sessionId:"filterSessionId",requestId:"filterRequestId",resourceId:"filterResourceId",userId:"filterUserId",organizationId:"filterOrganizationId",serviceName:"filterServiceName",environment:"filterEnvironment",experimentId:"filterExperimentId",provider:"filterProvider",model:"filterModel"},ZQ=Object.keys(WN),QAe="mastra:metrics:saved-filters";function $bs(e){const t=zbs(e);try{localStorage.setItem(QAe,t.toString())}catch{}}function Mbs(){try{localStorage.removeItem(QAe)}catch{}}function AVt(){try{const e=localStorage.getItem(QAe);if(!e)return null;const t=new URLSearchParams(e);return t.toString()?t:null}catch{return null}}function Dbs(e){if(e.has(HN))return!0;for(const t of ZQ)if(e.has(WN[t]))return!0;return!1}function Lbs({availableTags:e,availableEntityNames:t,availableServiceNames:n,availableEnvironments:r,loading:s}){const a=[{id:"rootEntityType",label:"Primitive Type",kind:"pick-multi",searchable:!1,options:IVt.map(u=>({label:u.label,value:u.entityType})),placeholder:"Choose entity type",emptyText:"No entity types."},{id:"entityName",label:"Primitive Name",kind:"pick-multi",options:t.map(u=>({label:u,value:u})),placeholder:"Choose entity names",emptyText:"No entity names found.",isLoading:s?.entityNames},{id:"entityId",label:"Primitive ID",kind:"text"},{id:"tags",label:"Tags",kind:"pick-multi",multi:!0,options:e.map(u=>({label:u,value:u})),placeholder:"Choose tags",emptyText:"No tags found.",isLoading:s?.tags},{id:"serviceName",label:"Service Name",kind:"pick-multi",options:n.map(u=>({label:u,value:u})),placeholder:"Choose service names",emptyText:"No service names found.",isLoading:s?.serviceNames},{id:"environment",label:"Environment",kind:"pick-multi",options:r.map(u=>({label:u,value:u})),placeholder:"Choose environments",emptyText:"No environments found.",isLoading:s?.environments},{id:"threadId",label:"Thread ID",kind:"text"},{id:"resourceId",label:"Resource ID",kind:"text"},{id:"userId",label:"User ID",kind:"text"},{id:"organizationId",label:"Organization ID",kind:"text"},{id:"runId",label:"Run ID",kind:"text"},{id:"sessionId",label:"Session ID",kind:"text"},{id:"requestId",label:"Request ID",kind:"text"},{id:"experimentId",label:"Experiment ID",kind:"text"}],i=(u,d)=>u.label.localeCompare(d.label),l=a.filter(u=>u.kind==="pick-multi").sort(i),c=a.filter(u=>u.kind==="text").sort(i);return[...l,...c]}function Fbs(e){const t=[],n=new Map([[HN,"rootEntityType"]]);for(const s of ZQ)n.set(WN[s],s);const r=new Set;for(const[s]of e.entries()){const a=n.get(s);if(!a||r.has(a))continue;if(r.add(a),a==="tags"){const l=e.getAll(s);if(l.length===0)continue;t.push({fieldId:a,value:l.filter(Boolean)});continue}if(a==="rootEntityType"||a==="entityName"||a==="serviceName"||a==="environment"||a==="provider"||a==="model"){const l=e.getAll(s);if(l.length>1){t.push({fieldId:a,value:l});continue}}const i=e.get(s);i!==null&&t.push({fieldId:a,value:i})}return t}function zbs(e){const t=new URLSearchParams,n=e.getAll(HN);for(const r of n)t.append(HN,r);for(const r of ZQ){const s=WN[r],a=e.getAll(s);for(const i of a)t.append(s,i)}return t}function Bbs(e,t){e.delete(HN);for(const n of ZQ)e.delete(WN[n]);for(const n of t){const r=n.fieldId==="rootEntityType"?HN:WN[n.fieldId];if(r)if(Array.isArray(n.value)){const s=n.value.filter(a=>typeof a=="string"&&a!=="");if(s.length===0){n.fieldId==="tags"&&e.append(r,"");continue}for(const a of s)e.append(r,a)}else typeof n.value=="string"&&e.set(r,n.value.trim())}}const Ubs="Any";function rtt(e){const t=e.trim();return t===""||t===Ubs}const qbs=new Set(IVt.map(e=>e.entityType));function stt(e){const t=e.trim();return qbs.has(t)?t:void 0}function Vbs(e){const t={};for(const n of e){const r=n.fieldId;if(Array.isArray(n.value)){const s=n.value.filter(a=>typeof a=="string").map(a=>a.trim()).filter(a=>!rtt(a));if(s.length===0)continue;if(r==="tags")t.tags=s;else if(r==="rootEntityType"){const a=s[0],i=a!==void 0?stt(a):void 0;i&&(t.rootEntityType=i)}else t[r]=s[0]}else if(typeof n.value=="string"){if(rtt(n.value))continue;const s=n.value.trim();if(r==="rootEntityType"){const a=stt(s);a&&(t.rootEntityType=a)}else t[r]=s}}return t}const RVt=[{label:"Last 24 hours",value:"24h"},{label:"Last 3 days",value:"3d"},{label:"Last 7 days",value:"7d"},{label:"Last 14 days",value:"14d"},{label:"Last 30 days",value:"30d"}],Hbs=new Set(RVt.map(e=>e.value));function Wbs(e){return typeof e=="string"&&(Hbs.has(e)||e==="custom")}const PVt=g.createContext({datePreset:"24h",setDatePreset:()=>{},customRange:void 0,setCustomRange:()=>{},dateRangeLabel:"Last 24 hours",filterTokens:[],setFilterTokens:()=>{},dimensionalFilter:{},dimensionalFilterKey:"{}",tracesBasePath:void 0,logsBasePath:void 0});function GQ(){return g.useContext(PVt)}function Zbs(e,t){return e!=="custom"?RVt.find(n=>n.value===e)?.label??e:t?.from?t.to?`${br(t.from,"MMM d, yyyy")} – ${br(t.to,"MMM d, yyyy")}`:br(t.from,"MMM d, yyyy"):"Custom range"}function Gbs({children:e,preset:t,filterTokens:n,onPresetChange:r,onFilterTokensChange:s,customRange:a,onCustomRangeChange:i,tracesBasePath:l,logsBasePath:c}){const u=g.useMemo(()=>JSON.stringify(n),[n]),d=g.useMemo(()=>n,[u]),f=g.useMemo(()=>Vbs(d),[d]),p=g.useMemo(()=>JSON.stringify(f),[f]),h=Zbs(t,a),m=g.useMemo(()=>({datePreset:t,setDatePreset:r,customRange:a,setCustomRange:i??(()=>{}),dateRangeLabel:h,filterTokens:d,setFilterTokens:s,dimensionalFilter:f,dimensionalFilterKey:p,tracesBasePath:l,logsBasePath:c}),[t,r,a,i,h,d,s,f,p,l,c]);return o.jsx(PVt.Provider,{value:m,children:e})}const Qbs=["last-24h","last-3d","last-7d","last-14d","last-30d","custom"];function Ybs(e){switch(e){case"3d":return"last-3d";case"7d":return"last-7d";case"14d":return"last-14d";case"30d":return"last-30d";case"custom":return"custom";default:return"last-24h"}}function Kbs(e){switch(e){case"last-3d":return"3d";case"last-7d":return"7d";case"last-14d":return"14d";case"last-30d":return"30d";case"custom":return"custom";default:return"24h"}}function Xbs(){const{datePreset:e,setDatePreset:t,customRange:n,setCustomRange:r}=GQ(),s=g.useRef(e);s.current=e;const a=g.useRef(n);return a.current=n,o.jsx(I4,{preset:Ybs(e),onPresetChange:i=>{const l=Kbs(i);s.current=l,t(l)},dateFrom:n?.from,dateTo:n?.to,onDateChange:(i,l)=>{if(s.current!=="custom")return;const c={...a.current,[l]:i};a.current=c,r(c)},presets:Qbs})}const Zxe=1440*60*1e3,Jbs={"24h":Zxe,"3d":4320*60*1e3,"7d":10080*60*1e3,"14d":336*60*60*1e3,"30d":720*60*60*1e3};function exs(e,t,n){if(e!=="custom"){const r=Jbs[e]??Zxe;return{start:new Date(n-r),end:new Date(n)}}return{start:t?.from??new Date(n-Zxe),end:t?.to??new Date(n)}}function Fm(){const{datePreset:e,customRange:t,dimensionalFilter:n,dimensionalFilterKey:r}=GQ(),s=g.useRef(null),a=e==="custom"?`custom:${t?.from?.getTime()??""}:${t?.to?.getTime()??""}`:`preset:${e}`;(!s.current||s.current.key!==a)&&(s.current={key:a,anchor:Date.now()});const i=s.current.anchor,l=g.useMemo(()=>exs(e,t,i),[e,t,i]),c=g.useMemo(()=>({timestamp:l,...n}),[l,r]),u=g.useMemo(()=>`${a}|${r}`,[a,r]);return{datePreset:e,customRange:t,timestamp:l,filters:c,dimensionalFilter:n,filterKey:u}}function $Vt(){const e=Ge(),{filters:t,filterKey:n}=Fm();return yt({queryKey:["metrics","agent-runs-kpi",n],queryFn:()=>e.getMetricAggregate({name:["mastra_agent_duration_ms"],aggregation:"count",filters:t,comparePeriod:"previous_period"})})}function qL({href:e,LinkComponent:t="a"}){return o.jsx(oe,{as:t,href:e,variant:"ghost",size:"icon-md",tooltip:"View in Traces","aria-label":"View in Traces",children:o.jsx(vme,{})})}function txs({href:e,LinkComponent:t="a"}){return o.jsx(oe,{as:t,href:e,variant:"ghost",size:"icon-md",tooltip:"View errors in Logs","aria-label":"View errors in Logs",children:o.jsx(rRn,{})})}function nxs(e){return e==="agents"||e==="workflows"||e==="tools"}function att(e,t){if(e.length===0)return"0";const n=e.reduce((r,s)=>{const a=s[t];return r+(typeof a=="number"&&Number.isFinite(a)?a:0)},0);return`${Math.round(n/e.length)}`}function rxs(e){const t=e;return typeof t?.tsMs=="number"&&Number.isFinite(t.tsMs)}const sxs=[{dataKey:"p50",label:"p50",color:qp.blue,aggregate:e=>({value:att(e,"p50"),suffix:"avg ms"})},{dataKey:"p95",label:"p95",color:qp.yellow,aggregate:e=>({value:att(e,"p95"),suffix:"avg ms"})}];function Pie({data:e,onPointClick:t}){return e.length===0?o.jsx(Bt.NoData,{message:"No latency data yet"}):o.jsx(AD,{data:e,series:sxs,onPointClick:t?n=>rxs(n)?t(n):void 0:void 0})}function axs({data:e,isLoading:t,isError:n,onPointClick:r,actions:s}){const a=(e?.agentData.length??0)>0,i=(e?.workflowData.length??0)>0,l=(e?.toolData.length??0)>0,c={agents:a,workflows:i,tools:l},u=a?"agents":i?"workflows":l?"tools":"agents",[d,f]=g.useState("agents"),p=c[d]?d:u,h=typeof s=="function"?s(p):s,m=!!e&&(e.agentData.length>0||e.workflowData.length>0||e.toolData.length>0),v=e?Object.values(e).filter(Array.isArray).flat().map(b=>b.p50).filter(b=>typeof b=="number"):[],y=v.length>0?`${Math.round(v.reduce((b,x)=>b+x,0)/v.length)}ms`:"—";return o.jsxs(Bt,{children:[o.jsxs(Bt.TopBar,{children:[o.jsx(Bt.TitleAndDescription,{title:"Latency",description:"Hourly p50 and p95 latency."}),m&&o.jsx(Bt.Summary,{value:y,label:"Avg p50"}),h?o.jsx(Bt.Actions,{children:h}):null]}),t?o.jsx(Bt.Loading,{}):n?o.jsx(Bt.Error,{message:"Failed to load latency data"}):o.jsx(Bt.Content,{children:m?o.jsxs(Vl,{value:p,onValueChange:b=>{nxs(b)&&c[b]&&f(b)},defaultTab:u,className:"overflow-visible",children:[o.jsxs(ql,{children:[o.jsx(hr,{value:"agents",disabled:!a,disabledTooltip:"No agent latency data for this period",children:"Agents"}),o.jsx(hr,{value:"workflows",disabled:!i,disabledTooltip:"No workflow latency data for this period",children:"Workflows"}),o.jsx(hr,{value:"tools",disabled:!l,disabledTooltip:"No tool latency data for this period",children:"Tools"})]}),o.jsx(Br,{value:"agents",children:o.jsx(Pie,{data:e.agentData,onPointClick:r?b=>r("agents",b):void 0})}),o.jsx(Br,{value:"workflows",children:o.jsx(Pie,{data:e.workflowData,onPointClick:r?b=>r("workflows",b):void 0})}),o.jsx(Br,{value:"tools",children:o.jsx(Pie,{data:e.toolData,onPointClick:r?b=>r("tools",b):void 0})})]}):o.jsx(Bt.NoData,{message:"No latency data yet"})})]})}function ixs(e){switch(e){case"24h":return"last-24h";case"3d":return"last-3d";case"7d":return"last-7d";case"14d":return"last-14d";case"30d":return"last-30d";case"custom":return"custom";default:return}}function oxs(e,t){if(t==="1h"){const s=new Date(e);s.setUTCMinutes(0,0,0);const a=new Date(s.getTime()+3600*1e3);return{from:s,to:a}}const n=new Date(e);n.setUTCHours(0,0,0,0);const r=new Date(n.getTime()+1440*60*1e3);return{from:n,to:r}}function MVt(e,t,n,r,s,a,i){if(i){e.set(t,"custom"),e.set(n,i.from.toISOString()),e.set(r,i.to.toISOString());return}if(s==="custom"){e.set(t,"custom"),a?.from&&e.set(n,a.from.toISOString()),a?.to&&e.set(r,a.to.toISOString());return}const l=ixs(s);l&&e.set(t,l)}function $o(e,t,n){typeof n=="string"&&n.length>0&&e.set(t,n)}function DVt(e,t,n){if(!(!Array.isArray(n)||n.length===0))for(const r of n)r&&e.append(t,r)}function itt({preset:e,customRange:t,dashboardFilter:n,scope:r,tracesBasePath:s="/traces"}){const a=new URLSearchParams;a.set(Fw,"branches"),MVt(a,zw,Bw,Uw,e,t,r.window);const i=r.rootEntityType??n.rootEntityType;i&&a.set(Yx,i),r.status&&a.set(Kx,r.status),$o(a,Cl.entityName,r.entityName??n.entityName),$o(a,Cl.threadId,r.threadId??n.threadId),$o(a,Cl.resourceId,r.resourceId??n.resourceId),$o(a,Cl.entityId,n.entityId),$o(a,Cl.runId,n.runId),$o(a,Cl.sessionId,n.sessionId),$o(a,Cl.requestId,n.requestId),$o(a,Cl.userId,n.userId),$o(a,Cl.organizationId,n.organizationId),$o(a,Cl.experimentId,n.experimentId),$o(a,Cl.serviceName,n.serviceName),$o(a,Cl.environment,n.environment),DVt(a,Cl.tags,n.tags);const l=a.toString();return l?`${s}?${l}`:s}function lxs({preset:e,customRange:t,dashboardFilter:n,scope:r,logsBasePath:s="/logs"}){const a=new URLSearchParams;MVt(a,tx,nx,rx,e,t,r.window);const i=r.rootEntityType??n.rootEntityType;i&&a.set(Xx,i),$o(a,El.entityName,r.entityName??n.entityName),$o(a,El.threadId,r.threadId??n.threadId),$o(a,El.resourceId,r.resourceId??n.resourceId),$o(a,El.runId,n.runId),$o(a,El.sessionId,n.sessionId),$o(a,El.requestId,n.requestId),$o(a,El.userId,n.userId),$o(a,El.organizationId,n.organizationId),$o(a,El.experimentId,n.experimentId),$o(a,El.serviceName,n.serviceName),$o(a,El.environment,n.environment),DVt(a,El.tags,n.tags),r.status==="error"&&a.append(El.level,"error");const l=a.toString();return l?`${s}?${l}`:s}function dA(){const{datePreset:e,customRange:t,dimensionalFilter:n,tracesBasePath:r,logsBasePath:s}=GQ(),a=g.useCallback((c={})=>itt({preset:e,customRange:t,dashboardFilter:n,scope:c,tracesBasePath:r}),[e,t,n,r]),i=g.useCallback((c={})=>lxs({preset:e,customRange:t,dashboardFilter:n,scope:c,logsBasePath:s}),[e,t,n,s]),l=g.useCallback((c,u,d)=>{const f=oxs(u,d);return itt({preset:e,customRange:t,dashboardFilter:n,scope:{...c,window:f},tracesBasePath:r})},[e,t,n,r]);return{getTracesHref:a,getLogsHref:i,getBucketTracesHref:l}}const LVt="1h";async function $ie(e,t,n){const r=await e.getMetricPercentiles({name:t,percentiles:[.5,.95],interval:LVt,filters:n}),s=r.series.find(l=>l.percentile===.5),a=r.series.find(l=>l.percentile===.95);if(!s||!a)return[];const i=new Map(a.points.map(l=>[new Date(l.timestamp).getTime(),l.value]));return s.points.map(l=>{const c=new Date(l.timestamp),u=c.getTime();return{time:c.toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit",hour12:!1}),tsMs:u,p50:Math.round(l.value),p95:Math.round(i.get(u)??0)}})}function cxs(){const e=Ge(),{filters:t,filterKey:n}=Fm();return yt({queryKey:["metrics","latency",n],queryFn:async()=>{const[r,s,a]=await Promise.all([$ie(e,"mastra_agent_duration_ms",t),$ie(e,"mastra_workflow_duration_ms",t),$ie(e,"mastra_tool_duration_ms",t)]);return{agentData:r,workflowData:s,toolData:a,interval:LVt}}})}const ott={agents:Wu.AGENT,workflows:Wu.WORKFLOW_RUN,tools:Wu.TOOL};function uxs(){const{data:e,isLoading:t,isError:n}=cxs(),{getTracesHref:r,getBucketTracesHref:s}=dA(),{Link:a}=dn(),i=Xr();return o.jsx(axs,{data:e,isLoading:t,isError:n,onPointClick:(l,c)=>{Number.isFinite(c.tsMs)&&i(s({rootEntityType:ott[l]},c.tsMs,"1h"))},actions:l=>o.jsx(qL,{href:r({rootEntityType:ott[l]}),LinkComponent:a})})}function dxs(e){return e==="threads"||e==="resources"}function Mie(e){return e.length<=12?e:`${e.slice(0,6)}…${e.slice(-4)}`}function fxs({threads:e,resources:t,getThreadRowHref:n,getResourceRowHref:r,actions:s,LinkComponent:a}){const[i,l]=g.useState("threads"),c=e.data?.map(y=>({...y,key:y.threadId}))??[],u=t.data?.map(y=>({...y,key:y.resourceId}))??[],d=c.length>0,f=u.length>0,p=e.data?.reduce((y,b)=>y+b.runs,0)??0,h=t.data?.reduce((y,b)=>y+b.threadCount,0)??0,m=i==="threads"?e:t,v=typeof s=="function"?s(i):s;return o.jsxs(Bt,{children:[o.jsxs(Bt.TopBar,{children:[o.jsx(Bt.TitleAndDescription,{title:"Memory",description:"Resource and Thread consumption"}),i==="threads"&&d&&o.jsx(Bt.Summary,{value:p.toLocaleString(),label:"Total runs"}),i==="resources"&&f&&o.jsx(Bt.Summary,{value:h.toLocaleString(),label:"Total threads"}),v?o.jsx(Bt.Actions,{children:v}):null]}),m.isLoading?o.jsx(Bt.Loading,{}):m.isError?o.jsx(Bt.Error,{message:"Failed to load memory data"}):o.jsx(Bt.Content,{children:o.jsxs(Vl,{defaultTab:"threads",value:i,onValueChange:y=>{dxs(y)&&l(y)},className:"grid h-full grid-rows-[auto_1fr] overflow-y-auto",children:[o.jsxs(ql,{children:[o.jsx(hr,{value:"threads",children:"Threads"}),o.jsx(hr,{value:"resources",children:"Resources"})]}),o.jsx(Br,{value:"threads",children:d?o.jsxs(be,{columns:"auto auto auto auto auto",...Mxe,children:[o.jsxs(be.Top,{children:[o.jsx(be.TopCell,{sticky:"start",children:"Thread ID"}),o.jsx(be.TopCell,{className:"justify-end text-right",children:"Resource ID"}),o.jsx(be.TopCell,{className:"justify-end text-right",children:"Runs"}),o.jsx(be.TopCell,{className:"justify-end text-right",children:"Tokens"}),o.jsx(be.TopCell,{className:"justify-end text-right",children:"Cost"})]}),c.map(y=>{const b=n?.(y),x=o.jsxs(o.Fragment,{children:[o.jsx(be.RowHeaderCell,{className:"text-ui-sm",children:Mie(y.threadId)}),o.jsx(be.NumberCell,{children:y.resourceId?Mie(y.resourceId):"—"}),o.jsx(be.NumberCell,{highlight:!0,children:y.runs.toLocaleString()}),o.jsx(be.NumberCell,{children:y.tokens>0?sl(y.tokens):"—"}),o.jsx(be.NumberCell,{children:y.cost!=null?Up(y.cost,y.costUnit):"—"})]});return b?o.jsx(be.RowLink,{to:b,LinkComponent:a,children:x},y.key):o.jsx(be.RowStatic,{children:x},y.key)})]}):o.jsx(Bt.NoData,{message:"No thread activity yet"})}),o.jsx(Br,{value:"resources",children:f?o.jsxs(be,{columns:"auto auto auto auto",...Mxe,children:[o.jsxs(be.Top,{children:[o.jsx(be.TopCell,{sticky:"start",children:"Resource ID"}),o.jsx(be.TopCell,{className:"justify-end text-right",children:"Threads"}),o.jsx(be.TopCell,{className:"justify-end text-right",children:"Tokens"}),o.jsx(be.TopCell,{className:"justify-end text-right",children:"Cost"})]}),u.map(y=>{const b=r?.(y),x=o.jsxs(o.Fragment,{children:[o.jsx(be.RowHeaderCell,{className:"text-ui-sm",children:Mie(y.resourceId)}),o.jsx(be.NumberCell,{highlight:!0,children:y.threadCount.toLocaleString()}),o.jsx(be.NumberCell,{children:y.tokens>0?sl(y.tokens):"—"}),o.jsx(be.NumberCell,{children:y.cost!=null?Up(y.cost,y.costUnit):"—"})]});return b?o.jsx(be.RowLink,{to:b,LinkComponent:a,children:x},y.key):o.jsx(be.RowStatic,{children:x},y.key)})]}):o.jsx(Bt.NoData,{message:"No resource activity yet"})})]})})]})}const Die=20;function pxs(){const e=Ge(),{filters:t,filterKey:n}=Fm();return yt({queryKey:["metrics","top-active-threads",n],queryFn:async()=>{const r={groupBy:["threadId","resourceId"],orderDirection:"DESC",filters:t},[s,a,i]=await Promise.all([e.getMetricBreakdown({...r,name:["mastra_agent_duration_ms"],aggregation:"count",limit:Die}),e.getMetricBreakdown({...r,name:["mastra_model_total_input_tokens"],aggregation:"sum",limit:Die}),e.getMetricBreakdown({...r,name:["mastra_model_total_output_tokens"],aggregation:"sum",limit:Die})]),l=new Map,c=d=>uA(l,d,()=>({tokens:0,cost:null,costUnit:null})),u=d=>{for(const f of d){const p=f.dimensions.threadId;if(!p)continue;const h=c(p);h.tokens+=f.value,f.estimatedCost!=null&&(h.cost=(h.cost??0)+f.estimatedCost,f.costUnit&&(h.costUnit=f.costUnit))}};return u(a.groups),u(i.groups),s.groups.filter(d=>!!d.dimensions.threadId).map(d=>{const f=d.dimensions.threadId,p=l.get(f);return{threadId:f,resourceId:d.dimensions.resourceId??null,runs:d.value,tokens:p?.tokens??0,cost:p?.cost??null,costUnit:p?.costUnit??null}})}})}const Lie=20;function hxs(){const e=Ge(),{filters:t,filterKey:n}=Fm();return yt({queryKey:["metrics","top-resources-by-threads",n],queryFn:async()=>{const r={groupBy:["resourceId"],orderDirection:"DESC",filters:t},[s,a,i]=await Promise.all([e.getMetricBreakdown({...r,name:["mastra_agent_duration_ms"],aggregation:"count_distinct",distinctColumn:"threadId",limit:Lie}),e.getMetricBreakdown({...r,name:["mastra_model_total_input_tokens"],aggregation:"sum",limit:Lie}),e.getMetricBreakdown({...r,name:["mastra_model_total_output_tokens"],aggregation:"sum",limit:Lie})]),l=new Map,c=d=>uA(l,d,()=>({tokens:0,cost:null,costUnit:null})),u=d=>{for(const f of d){const p=f.dimensions.resourceId;if(!p)continue;const h=c(p);h.tokens+=f.value,f.estimatedCost!=null&&(h.cost=(h.cost??0)+f.estimatedCost,f.costUnit&&(h.costUnit=f.costUnit))}};return u(a.groups),u(i.groups),s.groups.filter(d=>!!d.dimensions.resourceId).map(d=>{const f=d.dimensions.resourceId,p=l.get(f);return{resourceId:f,threadCount:d.value,tokens:p?.tokens??0,cost:p?.cost??null,costUnit:p?.costUnit??null}})}})}function mxs(){const e=pxs(),t=hxs(),{getTracesHref:n}=dA(),{Link:r}=dn();return o.jsx(fxs,{threads:{data:e.data,isLoading:e.isLoading,isError:e.isError},resources:{data:t.data,isLoading:t.isLoading,isError:t.isError},LinkComponent:r,getThreadRowHref:s=>n({threadId:s.threadId,...s.resourceId?{resourceId:s.resourceId}:{}}),getResourceRowHref:s=>n({resourceId:s.resourceId})})}function VL({label:e,value:t,prevValue:n,changePct:r,isLoading:s,isError:a}){const i=t!=null;return o.jsxs(Wr,{children:[o.jsx(Wr.Label,{children:e}),o.jsx(Wr.Value,{className:i?void 0:"invisible",children:i?t:"—"}),a?o.jsx(Wr.Error,{}):s?o.jsx(Wr.Loading,{}):i?r!=null?o.jsx(Wr.Change,{changePct:r,prevValue:n}):o.jsx(Wr.NoChange,{}):o.jsx(Wr.NoData,{})]})}function gxs(){const e=Ge(),{filters:t,filterKey:n}=Fm();return yt({queryKey:["metrics","active-resources-kpi",n],queryFn:()=>e.getMetricAggregate({name:["mastra_agent_duration_ms"],aggregation:"count_distinct",distinctColumn:"resourceId",filters:t,comparePeriod:"previous_period"})})}function vxs(){const e=Ge(),{filters:t,filterKey:n}=Fm();return yt({queryKey:["metrics","active-threads-kpi",n],queryFn:()=>e.getMetricAggregate({name:["mastra_agent_duration_ms"],aggregation:"count_distinct",distinctColumn:"threadId",filters:t,comparePeriod:"previous_period"})})}function yxs(){const e=Ge(),{filters:t,filterKey:n}=Fm();return yt({queryKey:["metrics","model-cost-kpi",n],queryFn:async()=>{const r=await e.getMetricAggregate({name:["mastra_model_total_input_tokens","mastra_model_total_output_tokens"],aggregation:"sum",filters:t,comparePeriod:"previous_period"});return{cost:r.estimatedCost??null,costUnit:r.costUnit??null,previousCost:r.previousEstimatedCost??null,costChangePercent:r.costChangePercent??null}}})}function bxs(){const e=Ge(),{filters:t,filterKey:n}=Fm();return yt({queryKey:["metrics","total-tokens-kpi",n],queryFn:async()=>{const[r,s]=await Promise.all([e.getMetricAggregate({name:["mastra_model_total_input_tokens"],aggregation:"sum",filters:t,comparePeriod:"previous_period"}),e.getMetricAggregate({name:["mastra_model_total_output_tokens"],aggregation:"sum",filters:t,comparePeriod:"previous_period"})]),a=r.value!=null||s.value!=null,i=r.previousValue!=null||s.previousValue!=null,l=(r.value??0)+(s.value??0),c=(r.previousValue??0)+(s.previousValue??0),u=i&&c>0?(l-c)/c*100:null;return{value:a?l:null,previousValue:i?c:null,changePercent:u}}})}function xxs(){const{data:e,isLoading:t,isError:n}=$Vt();return o.jsx(VL,{label:"Total Agent Runs",value:e?.value!=null?e.value.toLocaleString():null,prevValue:e?.previousValue!=null?e.previousValue.toLocaleString():void 0,changePct:e?.changePercent??null,isLoading:t,isError:n})}function wxs(){const{data:e,isLoading:t,isError:n}=yxs();return o.jsx(VL,{label:"Total Model Cost",value:e?.cost!=null?Up(e.cost,e.costUnit):null,prevValue:e?.previousCost!=null?Up(e.previousCost,e.costUnit):void 0,changePct:e?.costChangePercent??null,isLoading:t,isError:n})}function Sxs(){const{data:e,isLoading:t,isError:n}=bxs();return o.jsx(VL,{label:"Total Tokens",value:e?.value!=null?sl(e.value):null,prevValue:e?.previousValue!=null?sl(e.previousValue):void 0,changePct:e?.changePercent??null,isLoading:t,isError:n})}function kxs(){const{data:e,isLoading:t,isError:n}=vxs();return o.jsx(VL,{label:"Total Threads",value:e?.value!=null?sl(e.value):null,prevValue:e?.previousValue!=null?sl(e.previousValue):void 0,changePct:e?.changePercent??null,isLoading:t,isError:n})}function Oxs(){const{data:e,isLoading:t,isError:n}=gxs();return o.jsx(VL,{label:"Total Resources",value:e?.value!=null?sl(e.value):null,prevValue:e?.previousValue!=null?sl(e.previousValue):void 0,changePct:e?.changePercent??null,isLoading:t,isError:n})}function _xs({onClear:e,onRemoveAll:t,onSave:n,onRemoveSaved:r,isLoading:s,filterFields:a,filterTokens:i,onFilterTokensChange:l,autoFocusFilterFieldId:c}){const u=i.length>0,d=i.some(f=>Cxs(f,a));return o.jsxs("div",{className:K("grid grid-cols-[1fr_auto] gap-3 items-start"),children:[o.jsx(EAe,{fields:a,tokens:i,onTokensChange:l,disabled:s,autoFocusFieldId:c}),u&&o.jsx(_Ae,{disabled:s,onClear:d?e:void 0,onRemoveAll:t,onSave:n,onRemoveSaved:r})]})}function Cxs(e,t){const n=t.find(r=>r.id===e.fieldId);return n?n.kind==="text"?typeof e.value=="string"&&e.value.trim()!=="":n.kind==="pick-multi"?n.multi?Array.isArray(e.value)&&e.value.length>0:typeof e.value=="string"&&e.value!==""&&e.value!=="Any":n.kind==="multi-select"?Array.isArray(e.value)&&e.value.length>0:!1:!1}function Exs({rows:e,isLoading:t,isError:n,getRowHref:r,actions:s,LinkComponent:a}){const i=!!e&&e.length>0;return o.jsxs(Bt,{children:[o.jsxs(Bt.TopBar,{children:[o.jsx(Bt.TitleAndDescription,{title:"Model Usage & Cost",description:"Token consumption by model."}),i&&(()=>{const l=e.reduce((d,f)=>d+(f.cost??0),0),c=new Set;for(const d of e)d.cost!=null&&d.costUnit&&c.add(d.costUnit);let u;return c.size===0?u=l>0?Up(l):"—":c.size===1?u=l>0?Up(l,[...c][0]):"—":u="Mixed",o.jsx(Bt.Summary,{value:u,label:"Total cost"})})(),s?o.jsx(Bt.Actions,{children:s}):null]}),t?o.jsx(Bt.Loading,{}):n?o.jsx(Bt.Error,{message:"Failed to load model usage data"}):o.jsx(Bt.Content,{children:i?o.jsxs(be,{columns:"auto auto auto auto auto auto",...Mxe,children:[o.jsxs(be.Top,{children:[o.jsx(be.TopCell,{sticky:"start",children:"Model"}),o.jsx(be.TopCell,{className:"justify-end text-right",children:"Input"}),o.jsx(be.TopCell,{className:"justify-end text-right",children:"Output"}),o.jsx(be.TopCell,{className:"justify-end text-right",children:"Cache Read"}),o.jsx(be.TopCell,{className:"justify-end text-right",children:"Cache Write"}),o.jsx(be.TopCell,{className:"justify-end text-right",children:"Cost"})]}),e.map(l=>{const c=r?.(l),u=o.jsxs(o.Fragment,{children:[o.jsx(be.RowHeaderCell,{className:"text-ui-sm",children:l.model}),o.jsx(be.NumberCell,{children:l.input}),o.jsx(be.NumberCell,{children:l.output}),o.jsx(be.NumberCell,{children:l.cacheRead}),o.jsx(be.NumberCell,{children:l.cacheWrite}),o.jsx(be.NumberCell,{highlight:!0,children:l.cost!=null?Up(l.cost,l.costUnit):"—"})]});return c?o.jsx(be.RowLink,{to:c,LinkComponent:a,children:u},l.model):o.jsx(be.RowStatic,{children:u},l.model)})]}):o.jsx(Bt.NoData,{message:"No model usage data yet"})})]})}function Txs(){const e=Ge(),{filters:t,filterKey:n}=Fm();return yt({queryKey:["metrics","model-usage-cost",n],queryFn:async()=>{const[r,s,a,i]=await Promise.all(["mastra_model_total_input_tokens","mastra_model_total_output_tokens","mastra_model_input_cache_read_tokens","mastra_model_input_cache_write_tokens"].map(d=>e.getMetricBreakdown({name:[d],groupBy:["model"],aggregation:"sum",orderDirection:"DESC",filters:t})));if(!r||!s||!a||!i)return[];const l=new Map,c=d=>uA(l,d,()=>({input:0,output:0,cacheRead:0,cacheWrite:0,cost:null,costUnit:null})),u=(d,f)=>{f.estimatedCost!=null&&(d.cost=(d.cost??0)+f.estimatedCost,f.costUnit&&(d.costUnit=f.costUnit))};for(const d of r.groups){const f=d.dimensions.model??"unknown",p=c(f);p.input=d.value,u(p,d)}for(const d of s.groups){const f=d.dimensions.model??"unknown",p=c(f);p.output=d.value,u(p,d)}for(const d of a.groups){const f=d.dimensions.model??"unknown",p=c(f);p.cacheRead=d.value}for(const d of i.groups){const f=d.dimensions.model??"unknown",p=c(f);p.cacheWrite=d.value}return Array.from(l.entries()).map(([d,f])=>({model:d,input:sl(f.input),output:sl(f.output),cacheRead:sl(f.cacheRead),cacheWrite:sl(f.cacheWrite),cost:f.cost,costUnit:f.costUnit})).sort((d,f)=>d.model.localeCompare(f.model))}})}function jxs(){const{data:e,isLoading:t,isError:n}=Txs(),{getTracesHref:r}=dA(),{Link:s}=dn();return o.jsx(Exs,{rows:e,isLoading:t,isError:n,LinkComponent:s,getRowHref:()=>r({rootEntityType:Wu.AGENT}),actions:o.jsx(qL,{href:r({rootEntityType:Wu.AGENT}),LinkComponent:s})})}function Nxs(e){return e==="tokens"||e==="cost"}function Ixs({data:e,isLoading:t,isError:n,getRowHref:r,actions:s,LinkComponent:a}){const[i,l]=g.useState("tokens"),c=e??[],u=c.length>0,d=c.reduce((b,x)=>b+x.total,0),f=c.filter(b=>b.cost!=null&&b.cost>0),p=new Set(f.map(b=>b.costUnit??"usd")),h=p.size<=1,m=h?[...p][0]??"usd":null,v=h?f.reduce((b,x)=>b+(x.cost??0),0):0,y=h&&v>0;return o.jsxs(Bt,{children:[o.jsxs(Bt.TopBar,{children:[o.jsx(Bt.TitleAndDescription,{title:"Token Usage by Agent",description:"Token consumption grouped by agent."}),u&&(i==="cost"&&y?o.jsx(Bt.Summary,{value:Up(v,m),label:"Total cost"}):o.jsx(Bt.Summary,{value:sl(d),label:"Total tokens"})),u&&s?o.jsx(Bt.Actions,{children:s}):null]}),t?o.jsx(Bt.Loading,{}):n?o.jsx(Bt.Error,{message:"Failed to load token usage data"}):o.jsx(Bt.Content,{children:u?o.jsxs(Vl,{defaultTab:"tokens",value:i,onValueChange:b=>{Nxs(b)&&l(b)},className:"grid h-full grid-rows-[auto_1fr] overflow-y-auto",children:[o.jsxs(ql,{children:[o.jsx(hr,{value:"tokens",children:"Tokens"}),o.jsx(hr,{value:"cost",children:"Cost"})]}),o.jsx(Br,{value:"tokens",children:o.jsx(VN,{LinkComponent:a,data:c.map(b=>({name:b.name,values:[b.input,b.output],href:r?.(b)})),segments:[{label:"Input",color:qp.blueDark},{label:"Output",color:qp.blue}],maxVal:Math.max(...c.map(b=>b.input+b.output)),fmt:sl})}),o.jsx(Br,{value:"cost",children:y?o.jsx(VN,{LinkComponent:a,data:f.slice().sort((b,x)=>(x.cost??0)-(b.cost??0)).map(b=>({name:b.name,values:[b.cost],href:r?.(b)})),segments:[{label:"Cost",color:qp.purple}],maxVal:Math.max(...f.map(b=>b.cost??0)),fmt:b=>Up(b,m)}):o.jsx(Bt.NoData,{message:"No cost data yet"})})]}):o.jsx(Bt.NoData,{message:"No token usage data yet"})})]})}function Axs(){const e=Ge(),{filters:t,filterKey:n}=Fm();return yt({queryKey:["metrics","token-usage-by-agent",n],queryFn:async()=>{const r={groupBy:["entityName"],aggregation:"sum",orderDirection:"DESC",filters:t},[s,a]=await Promise.all([e.getMetricBreakdown({...r,name:["mastra_model_total_input_tokens"]}),e.getMetricBreakdown({...r,name:["mastra_model_total_output_tokens"]})]),i=new Map,l=u=>uA(i,u,()=>({input:0,output:0,cost:null,costUnit:null})),c=(u,d)=>{d.estimatedCost!=null&&(u.cost=(u.cost??0)+d.estimatedCost,d.costUnit&&(u.costUnit=d.costUnit))};for(const u of s.groups){const d=u.dimensions.entityName??"unknown",f=l(d);f.input=u.value,c(f,u)}for(const u of a.groups){const d=u.dimensions.entityName??"unknown",f=l(d);f.output=u.value,c(f,u)}return Array.from(i.entries()).map(([u,d])=>({name:u,input:d.input,output:d.output,total:d.input+d.output,cost:d.cost,costUnit:d.costUnit})).sort((u,d)=>d.total-u.total)}})}function Rxs(){const{data:e,isLoading:t,isError:n}=Axs(),{getTracesHref:r}=dA(),{Link:s}=dn();return o.jsx(Ixs,{data:e,isLoading:t,isError:n,LinkComponent:s,getRowHref:a=>r({rootEntityType:Wu.AGENT,entityName:a.name}),actions:o.jsx(qL,{href:r({rootEntityType:Wu.AGENT}),LinkComponent:s})})}function Gxe(e,t=sl){return n=>({value:t(n.reduce((r,s)=>r+(typeof s[e]=="number"?s[e]:0),0))})}const Pxs=[{dataKey:"input",label:"Input tokens",color:qp.blue,aggregate:Gxe("input")},{dataKey:"output",label:"Output tokens",color:qp.yellow,aggregate:Gxe("output")}];function $xs(e){return e==="tokens"||e==="cost"}function Mxs({data:e,interval:t="1d",isLoading:n,isError:r,actions:s}){const[a,i]=g.useState("tokens"),l=e??[],c=l.map(k=>({...k})),u=l.length>0,d=l.reduce((k,_)=>k+_.total,0),f=l.filter(k=>k.cost!=null&&k.cost>0),p=f.map(k=>({...k})),h=new Set(f.map(k=>k.costUnit).filter(k=>!!k)),m=h.size===1&&f.every(k=>k.costUnit!=null),v=m?[...h][0]??null:null,y=m?f.reduce((k,_)=>k+(_.cost??0),0):0,b=m&&y>0,x=t==="1h"?"Input and output tokens per hour.":"Input and output tokens per day.",S=[{dataKey:"cost",label:"Cost",color:qp.purple,aggregate:Gxe("cost",k=>Up(k,v))}];return o.jsxs(Bt,{children:[o.jsxs(Bt.TopBar,{children:[o.jsx(Bt.TitleAndDescription,{title:"Token usage over time",description:x}),u&&(a==="cost"&&b?o.jsx(Bt.Summary,{value:Up(y,v),label:"Total cost"}):o.jsx(Bt.Summary,{value:sl(d),label:"Total tokens"})),u&&s?o.jsx(Bt.Actions,{children:s}):null]}),n?o.jsx(Bt.Loading,{}):r?o.jsx(Bt.Error,{message:"Failed to load token usage timeline"}):o.jsx(Bt.Content,{children:u?o.jsxs(Vl,{defaultTab:"tokens",value:a,onValueChange:k=>{$xs(k)&&i(k)},className:"overflow-visible",children:[o.jsxs(ql,{children:[o.jsx(hr,{value:"tokens",children:"Tokens"}),o.jsx(hr,{value:"cost",children:"Cost"})]}),o.jsx(Br,{value:"tokens",children:o.jsx(AD,{data:c,series:Pxs})}),o.jsx(Br,{value:"cost",children:b?o.jsx(AD,{data:p,series:S}):o.jsx(Bt.NoData,{message:"No cost data yet"})})]}):o.jsx(Bt.NoData,{message:"No token usage data yet"})})]})}function Dxs(e){return e==="24h"?"1h":"1d"}function Lxs(e,t){return t==="1h"?e.toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit",hour12:!1}):e.toLocaleDateString("en-US",{month:"short",day:"2-digit"})}function ltt(e,t,n){for(const r of t?.points??[]){const s=new Date(r.timestamp).getTime();if(!Number.isFinite(s))continue;const a=e.get(s)??{tsMs:s,input:0,output:0,cost:null,costUnits:new Set,hasUnknownCostUnit:!1};a[n]+=r.value,r.estimatedCost!=null&&(a.cost=(a.cost??0)+r.estimatedCost,t?.costUnit?a.costUnits.add(t.costUnit):a.hasUnknownCostUnit=!0),e.set(s,a)}}function Fxs(e){return e.cost==null||e.hasUnknownCostUnit||e.costUnits.size!==1?null:[...e.costUnits][0]??null}function zxs(){const e=Ge(),{datePreset:t,filters:n,filterKey:r}=Fm(),s=Dxs(t);return yt({queryKey:["metrics","token-usage-timeseries",r,s],queryFn:async()=>{const[a,i]=await Promise.all([e.getMetricTimeSeries({name:["mastra_model_total_input_tokens"],interval:s,aggregation:"sum",filters:n}),e.getMetricTimeSeries({name:["mastra_model_total_output_tokens"],interval:s,aggregation:"sum",filters:n})]),l=new Map;return ltt(l,a.series[0],"input"),ltt(l,i.series[0],"output"),{data:Array.from(l.values()).sort((u,d)=>u.tsMs-d.tsMs).map(u=>{const d=new Date(u.tsMs);return{time:Lxs(d,s),tsMs:u.tsMs,input:u.input,output:u.output,total:u.input+u.output,cost:u.cost,costUnit:Fxs(u)}}),interval:s}}})}function Bxs(){const{data:e,isLoading:t,isError:n}=zxs(),{getTracesHref:r}=dA(),{Link:s}=dn();return o.jsx(Mxs,{data:e?.data,interval:e?.interval,isLoading:t,isError:n,actions:o.jsx(qL,{href:r(),LinkComponent:s})})}function Fie({data:e,rowHrefs:t,errorHrefs:n,LinkComponent:r}){return o.jsx(VN,{LinkComponent:r,data:e.map(s=>{const a=n?.(s),i=t?.(s);return a?{name:s.name,values:[s.completed,s.errors],hrefs:[i,a]}:{name:s.name,values:[s.completed,s.errors],href:i}}),segments:[{label:"Completed",color:qp.blueDark},{label:"Errors",color:qp.pink}],maxVal:Math.max(...e.map(s=>s.completed+s.errors)),fmt:sl})}function Uxs({data:e,isLoading:t,isError:n,getRowHref:r,getErrorSegmentHref:s,actions:a,LinkComponent:i}){const[l,c]=g.useState("agents"),u=typeof a=="function"?a(l):a,d=!!e&&(e.agentData.length>0||e.workflowData.length>0||e.toolData.length>0),f=e?[...e.agentData,...e.workflowData,...e.toolData].reduce((m,v)=>m+v.completed+v.errors,0):0,p=m=>r?v=>r(m,v):void 0,h=m=>s?v=>s(m,v):void 0;return o.jsxs(Bt,{children:[o.jsxs(Bt.TopBar,{children:[o.jsx(Bt.TitleAndDescription,{title:"Trace Volume",description:"Runs and call counts."}),d&&o.jsx(Bt.Summary,{value:sl(f),label:"Total runs"}),u?o.jsx(Bt.Actions,{children:u}):null]}),t?o.jsx(Bt.Loading,{}):n?o.jsx(Bt.Error,{message:"Failed to load trace volume data"}):o.jsx(Bt.Content,{children:d?o.jsxs(Vl,{value:l,onValueChange:c,defaultTab:"agents",className:"grid h-full grid-rows-[auto_1fr] overflow-y-auto",children:[o.jsxs(ql,{children:[o.jsx(hr,{value:"agents",children:"Agents"}),o.jsx(hr,{value:"workflows",children:"Workflows"}),o.jsx(hr,{value:"tools",children:"Tools"})]}),o.jsx(Br,{value:"agents",children:e.agentData.length>0?o.jsx(Fie,{data:e.agentData,rowHrefs:p("agents"),errorHrefs:h("agents"),LinkComponent:i}):o.jsx(Bt.NoData,{message:"No agent data yet"})}),o.jsx(Br,{value:"workflows",children:e.workflowData.length>0?o.jsx(Fie,{data:e.workflowData,rowHrefs:p("workflows"),errorHrefs:h("workflows"),LinkComponent:i}):o.jsx(Bt.NoData,{message:"No workflow data yet"})}),o.jsx(Br,{value:"tools",children:e.toolData.length>0?o.jsx(Fie,{data:e.toolData,rowHrefs:p("tools"),errorHrefs:h("tools"),LinkComponent:i}):o.jsx(Bt.NoData,{message:"No tool data yet"})})]}):o.jsx(Bt.NoData,{message:"No trace volume data yet"})})]})}async function zie(e,t,n){const r=await e.getMetricBreakdown({name:[t],groupBy:["entityName","status"],aggregation:"count",orderDirection:"DESC",filters:n}),s=new Map;for(const a of r.groups){const i=a.dimensions.entityName??"unknown",l=a.dimensions.status??"ok",c=uA(s,i,()=>({completed:0,errors:0}));l==="error"?c.errors+=a.value:c.completed+=a.value}return Array.from(s.entries()).map(([a,i])=>({name:a,...i})).sort((a,i)=>i.completed+i.errors-(a.completed+a.errors))}function qxs(){const e=Ge(),{filters:t,filterKey:n}=Fm();return yt({queryKey:["metrics","trace-volume",n],queryFn:async()=>{const[r,s,a]=await Promise.all([zie(e,"mastra_agent_duration_ms",t),zie(e,"mastra_workflow_duration_ms",t),zie(e,"mastra_tool_duration_ms",t)]);return{agentData:r,workflowData:s,toolData:a}}})}const t8={agents:Wu.AGENT,workflows:Wu.WORKFLOW_RUN,tools:Wu.TOOL};function Vxs(){const{data:e,isLoading:t,isError:n}=qxs(),{getTracesHref:r,getLogsHref:s}=dA(),{Link:a}=dn();return o.jsx(Uxs,{data:e,isLoading:t,isError:n,LinkComponent:a,getRowHref:(i,l)=>r({rootEntityType:t8[i],entityName:l.name}),getErrorSegmentHref:(i,l)=>l.errors>0?s({rootEntityType:t8[i],entityName:l.name,status:"error"}):void 0,actions:i=>o.jsxs(o.Fragment,{children:[o.jsx(qL,{href:r({rootEntityType:t8[i]}),LinkComponent:a}),o.jsx(txs,{href:s({rootEntityType:t8[i],status:"error"}),LinkComponent:a})]})})}const Bie="period",n8="dateFrom",r8="dateTo";function Hxs(){const[e,t]=ti(),n=e.get(Bie),r=Wbs(n)?n:"24h",s=g.useMemo(()=>{if(r!=="custom")return;const d=h=>{if(!h)return;const m=new Date(h);return Number.isNaN(m.getTime())?void 0:m},f=d(e.get(n8)),p=d(e.get(r8));if(!(!f&&!p))return{from:f,to:p}},[r,e.toString()]),a=g.useMemo(()=>Fbs(e),[e.toString()]),i=g.useCallback(d=>{t(f=>{const p=new URLSearchParams(f);return d==="24h"?p.delete(Bie):p.set(Bie,d),d!=="custom"&&(p.delete(n8),p.delete(r8)),p},{replace:!0})},[t]),l=g.useCallback(d=>{t(f=>{const p=new URLSearchParams(f);return d?.from?p.set(n8,d.from.toISOString()):p.delete(n8),d?.to?p.set(r8,d.to.toISOString()):p.delete(r8),p},{replace:!0})},[t]),c=g.useCallback(d=>{t(f=>{const p=new URLSearchParams(f);return Bbs(p,d),p},{replace:!0})},[t]),u=g.useRef(!1);return g.useEffect(()=>{if(u.current||(u.current=!0,Dbs(e)))return;const d=AVt();d&&t(f=>{const p=new URLSearchParams(f);for(const[h,m]of d)p.append(h,m);return p},{replace:!0})},[]),o.jsx(Gbs,{preset:r,filterTokens:a,onPresetChange:i,onFilterTokensChange:c,customRange:s,onCustomRangeChange:l,children:o.jsx(Wxs,{})})}function Wxs(){const[e]=ti(),{error:t,isLoading:n}=$Vt(),{filterTokens:r,setFilterTokens:s}=GQ(),[a,i]=g.useState(),{supportsMetrics:l,isInMemory:c,isLoading:u}=Fqt(),{data:d,isLoading:f}=PAe(),{data:p,isLoading:h}=IAe(),{data:m,isLoading:v}=RAe(),{data:y,isLoading:b}=AAe(),x=g.useMemo(()=>Lbs({availableTags:d??[],availableEntityNames:p??[],availableServiceNames:m??[],availableEnvironments:y??[],loading:{tags:f,entityNames:h,serviceNames:v,environments:b}}),[d,p,m,y,f,h,v,b]),[S,k]=g.useState(()=>AVt()!==null),_=g.useCallback(()=>{$bs(e),k(!0),Be.success("Filters setting for Metrics saved")},[e]),C=g.useCallback(()=>{Mbs(),k(!1),Be.success("Filters setting for Metrics cleared up")},[]),T=g.useCallback(()=>{s([])},[s]),E=g.useCallback(()=>{const N=r.map(I=>{const A=x.find(R=>R.id===I.fieldId);return A?A.kind==="text"?{fieldId:I.fieldId,value:""}:A.kind==="pick-multi"?A.multi?{fieldId:I.fieldId,value:[]}:{fieldId:I.fieldId,value:"Any"}:A.kind==="multi-select"?{fieldId:I.fieldId,value:[]}:I:I});s(N)},[x,r,s]);return t&&ws(t)?o.jsx(ar,{children:o.jsx(Ys,{})}):t&&Ss(t)?o.jsx(ar,{children:o.jsx(qs,{resource:"metrics"})}):t?o.jsx(ar,{children:o.jsx(Ui,{title:"Failed to load metrics",message:t.message})}):o.jsxs(Ut,{width:"wide",height:"full",children:[o.jsxs(Ut.TopArea,{children:[o.jsx(Ut.Row,{children:o.jsxs(Ut.Column,{className:"flex flex-wrap items-start justify-start gap-2",children:[o.jsx(Xbs,{}),o.jsx(TAe,{fields:x,tokens:r,onTokensChange:s,disabled:n,onStartTextFilter:i})]})}),o.jsx(_xs,{isLoading:n,filterFields:x,filterTokens:r,onFilterTokensChange:s,onClear:E,onRemoveAll:T,onSave:_,onRemoveSaved:S?C:void 0,autoFocusFilterFieldId:a})]}),u?null:l?o.jsxs("div",{className:"grid content-start gap-8 pb-10",children:[c&&o.jsx(Zn,{variant:"info",title:"Metrics are not persisted",children:o.jsx(Zn.Message,{children:"This project uses in-memory storage for observability. Metrics will be lost on every server restart. For persistent metrics, switch the observability storage to ClickHouse, DuckDB, Postgres v-next, or Spanner."})}),o.jsxs(Uxe,{children:[o.jsx(xxs,{}),o.jsx(wxs,{}),o.jsx(Sxs,{}),o.jsx(kxs,{}),o.jsx(Oxs,{})]}),o.jsxs(Uxe,{children:[o.jsx(jxs,{}),o.jsx(Rxs,{}),o.jsx(Bxs,{}),o.jsx(mxs,{}),o.jsx(Vxs,{}),o.jsx(uxs,{})]})]}):o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(_r,{iconSlot:o.jsx(Df,{}),titleSlot:"Metrics are not available with your current storage",descriptionSlot:"Metrics require ClickHouse, DuckDB, Postgres v-next, Spanner, or in-memory storage for observability. Other relational databases (LibSQL, MSSQL) and document stores (MongoDB) do not support metrics collection. To enable metrics on an existing project, switch the observability storage in the Mastra configuration.",actionSlot:o.jsxs(oe,{variant:"ghost",as:"a",href:"https://mastra.ai/docs/observability/metrics/overview",target:"_blank",rel:"noopener noreferrer",children:["Metrics Documentation ",o.jsx(ds,{})]})})})]})}const Zxs=50;function Gxs(){const{paths:e}=dn(),{isCmsAvailable:t}=pS(),[n,r]=g.useState(""),[s,a]=g.useState(0),{data:i,isLoading:l,error:c,isPlaceholderData:u}=UBt({page:s,perPage:Zxs}),d=i?.promptBlocks??[],f=i?.hasMore??!1,p=g.useCallback(()=>{u||a(v=>v+1)},[u]),h=g.useCallback(()=>{u||a(v=>Math.max(0,v-1))},[u]),m=g.useCallback(v=>{r(v),a(0)},[]);return c&&ws(c)?o.jsx(ar,{children:o.jsx(Ys,{})}):c&&Ss(c)?o.jsx(ar,{children:o.jsx(qs,{resource:"prompt blocks"})}):c?o.jsx(ar,{children:o.jsx(Ui,{title:"Failed to load prompt blocks",message:c.message})}):d.length===0&&!l&&s===0?o.jsx(ar,{children:o.jsx(Bos,{})}):o.jsxs(Ut,{children:[o.jsx(Ut.TopArea,{children:o.jsxs(Ut.Row,{align:"center",stack:"responsive",children:[o.jsx("div",{className:"max-w-120 flex-1",children:o.jsx(Bf,{onSearch:m,label:"Filter prompts",placeholder:"Filter by name or description"})}),t&&o.jsxs(oe,{as:ki,to:e.cmsPromptBlockCreateLink(),variant:"primary",className:"shrink-0",children:[o.jsx(Qr,{}),"Create Prompt"]})]})}),o.jsx(zos,{promptBlocks:d,isLoading:l,search:n,currentPage:s,hasMore:f,onNextPage:p,onPrevPage:h})]})}function Qxs(){return o.jsx(Ut,{width:"narrow",children:o.jsx(Ut.MainArea,{children:o.jsx(uss,{children:o.jsx(gxe,{})})})})}const Yxs=[{title:"Mastra APIs",description:"Explore and test the available REST API endpoints with the interactive Swagger UI.",icon:uYt,href:"/swagger-ui",external:!1},{title:"Documentation",description:"Read the official Mastra documentation for guides, references, and tutorials.",icon:Flt,href:"https://mastra.ai/en/docs",external:!0},{title:"Github",description:"Browse the source code, report issues, and contribute to the Mastra project.",icon:ds,href:"https://github.com/mastra-ai/mastra",external:!0},{title:"Community",description:"Join the Mastra Discord community for help, discussion, and collaboration.",icon:wV,href:"https://discord.gg/BTYqqHKUrf",external:!0},{title:"Share with your team",description:"Running Mastra Studio locally? Deploy to the cloud so your team can collaborate.",icon:Hlt,href:"https://mastra.ai/cloud",external:!0},{title:"Talk to our Sales team",description:"Get a custom demo, discuss on-prem deployments, and how we can help you accelerate getting agents into production.",icon:zlt,href:"https://mastra.ai/contact?ref=studio",external:!0}];function Kxs(){return o.jsx(Ut,{width:"narrow",children:o.jsx(Ut.MainArea,{children:o.jsx("div",{className:"grid max-w-3xl grid-cols-1 gap-4 sm:grid-cols-2",children:Yxs.map(e=>o.jsxs("a",{href:e.href,...e.external?{target:"_blank",rel:"noreferrer"}:{},className:"group border-border1 bg-surface2 hover:border-accent1 hover:bg-surface3 flex flex-col gap-3 rounded-lg border p-5 transition-colors",children:[o.jsxs("div",{className:"flex items-center gap-2.5",children:[o.jsx(e.icon,{className:"text-icon3 group-hover:text-accent1 h-5 w-5 transition-colors"}),o.jsx("span",{className:"text-ui-md text-text1 font-medium",children:e.title}),e.external&&o.jsx(ds,{className:"text-icon3 ml-auto h-3.5 w-3.5 opacity-0 transition-opacity group-hover:opacity-100"})]}),o.jsx("p",{className:"text-ui-sm text-text3 leading-relaxed",children:e.description})]},e.href))})})})}function Xxs(){const{data:e={},isLoading:t,error:n}=lh(),[r,s]=g.useState(""),[a,i]=g.useState("all");if(n&&ws(n))return o.jsx(ar,{children:o.jsx(Ys,{})});if(n&&Ss(n))return o.jsx(ar,{children:o.jsx(qs,{resource:"scorers"})});if(n)return o.jsx(ar,{children:o.jsx(Ui,{title:"Failed to load scorers",message:n.message})});if(Object.keys(e).length===0&&!t)return o.jsx(ar,{children:o.jsx(Zas,{})});const l=a!=="all"||r!=="",c=()=>{s(""),i("all")};return o.jsxs(Ut,{children:[o.jsx(Ut.TopArea,{children:o.jsx(Qas,{search:r,onSearchChange:s,sourceFilter:a,onSourceFilterChange:i,onReset:c,hasActiveFilters:l})}),o.jsx(Was,{scorers:e,isLoading:t,search:r,sourceFilter:a})]})}function Jxs(){const{scorerId:e}=wr(),[t,n]=ti(),r=t.get("scoreId")??void 0,[s,a]=g.useState(r),[i,l]=g.useState(!1),c=Xr(),[u,d]=g.useState({value:"all",label:"All Entities",type:"ALL"}),{scorer:f,error:p}=kas(e),{data:h={},isLoading:m,error:v}=$m(),{isLoading:y,error:b}=Zy(),{data:x=[],isLoading:S,error:k,isFetchingNextPage:_,hasNextPage:C,setEndOfListElement:T}=Sas({scorerId:e,entityId:u?.value==="all"?void 0:u?.value,entityType:u?.type==="ALL"?void 0:u?.type}),E=g.useMemo(()=>f?.agentIds?.filter($=>h[$]).map($=>({value:$,label:h[$].name,type:"AGENT"}))||[],[f?.agentIds,h]),N=g.useMemo(()=>f?.workflowIds?.map($=>({value:$,label:$,type:"WORKFLOW"}))||[],[f?.workflowIds]),I=g.useMemo(()=>[{value:"all",label:"All Entities",type:"ALL"},...E,...N],[E,N]),A=t.get("entity")??"all",R=I.find($=>$.value===A);R&&R.value!==u?.value&&d(R),g.useEffect(()=>{if(p){const $=p instanceof Error?p.message:"Failed to load scorer";Be.error(`Error loading scorer: ${$}`)}},[p]),g.useEffect(()=>{if(v){const $=v instanceof Error?v.message:"Failed to load agents";Be.error(`Error loading agents: ${$}`)}},[v]),g.useEffect(()=>{if(b){const $=b instanceof Error?b.message:"Failed to load workflows";Be.error(`Error loading workflows: ${$}`)}},[b]);const L=$=>{$?.value&&n(q=>{const Z=new URLSearchParams(q);return Z.set("entity",$.value),Z})};g.useEffect(()=>{const $=t.get("scoreId")??void 0;if($===s)return;if(!$){a(void 0);return}x.find(Z=>Z.id===$)&&a($)},[t,x]);const D=g.useCallback($=>{a($||void 0),n(q=>{const Z=new URLSearchParams(q);return $?Z.set("scoreId",$):Z.delete("scoreId"),Z})},[n]);if(!f)return null;const F=ws(p)||ws(v)||ws(b),H=p&&Ss(p),B=!F&&!H&&(p||v||b),z=!S&&x.length===0,V=u?.value!=="all",M=f?.scorer?.source==="stored"?o.jsx($y,{owner:"scorer-detail",children:o.jsxs(oe,{variant:"default",as:ki,to:`/cms/scorers/${e}/edit`,size:"sm",children:[o.jsx(cm,{})," Edit"]})}):null,G=e?o.jsx(qAe,{open:i,onOpenChange:l,initialScorerIds:[e],onSuccess:$=>{c(`/experiments/${$}`)}}):null;if(F||H||B||z&&!V){const $=(p instanceof Error?p.message:void 0)??(v instanceof Error?v.message:void 0)??(b instanceof Error?b.message:void 0)??"An unexpected error occurred";return o.jsxs(Ut,{width:"wide",height:"full",className:"grid-rows-[1fr]",children:[M,o.jsx(Ut.MainArea,{isCentered:!0,children:F?o.jsx(Ys,{}):H?o.jsx(qs,{resource:"scorers"}):B?o.jsx(Ui,{title:"Failed to load scorer",message:$}):o.jsx(has,{onRunExperiment:()=>l(!0)})}),G]})}return o.jsxs(Ut,{width:"wide",height:"full",children:[M,o.jsx(Ut.TopArea,{children:o.jsxs("div",{className:"flex items-center justify-between gap-3",children:[o.jsx(gas,{selectedEntity:u,entityOptions:I,onEntityChange:L,onReset:()=>{n($=>{const q=new URLSearchParams($);return q.set("entity","all"),q})},isLoading:S||m||y}),o.jsxs(oe,{variant:"primary",onClick:()=>l(!0),children:[o.jsx(hu,{}),"Run Experiment"]})]})}),o.jsx(pas,{scores:x,isLoading:S,selectedScoreId:s,isFetchingNextPage:_,hasNextPage:C,setEndOfListElement:T,onScoreClick:D,errorMsg:k?.message}),G]})}const e0s=qa("flex min-w-0 flex-col",{variants:{variant:{default:"gap-3 sm:flex-row sm:items-center sm:justify-between",factory:"gap-2 px-4 py-3 lg:flex-row lg:items-center lg:justify-between lg:gap-4"}},defaultVariants:{variant:"default"}}),t0s=qa("flex min-w-0 flex-col",{variants:{variant:{default:"",factory:"gap-0.5"}},defaultVariants:{variant:"default"}}),ctt=qa("",{variants:{variant:{default:"text-sm font-medium",factory:"text-ui-md leading-ui-md text-neutral5"}},defaultVariants:{variant:"default"}}),n0s=qa("flex flex-col gap-0.5",{variants:{variant:{default:"text-sm text-neutral3",factory:"text-ui-sm text-neutral3"}},defaultVariants:{variant:"default"}});function r0s({label:e,description:t,htmlFor:n,variant:r,className:s,children:a}){return o.jsxs("div",{className:K(e0s({variant:r}),s),"data-slot":"settings-row",children:[o.jsxs("div",{className:t0s({variant:r}),children:[n?o.jsx($t,{htmlFor:n,className:ctt({variant:r}),children:e}):o.jsx("span",{className:ctt({variant:r}),children:e}),t&&o.jsx("div",{className:n0s({variant:r}),children:t})]}),a]})}const FVt=[{value:"dark",label:"Dark",Icon:qKt},{value:"light",label:"Light",Icon:nJt},{value:"system",label:"System",Icon:Klt}],s0s=e=>FVt.some(t=>t.value===e);function a0s({option:e}){const{Icon:t}=e;return o.jsxs("span",{className:"inline-flex max-w-full min-w-0 items-center gap-2",children:[o.jsx(t,{"aria-hidden":"true",className:"h-4 w-4 shrink-0 opacity-70"}),o.jsx("span",{className:"min-w-0 truncate",children:e.label})]})}const i0s=()=>{const{baseUrl:e,headers:t,apiPrefix:n}=jH(),{theme:r,setTheme:s}=K_();return o.jsx(Ut,{width:"narrow",children:o.jsxs(Ut.MainArea,{className:"mt-6 flex flex-col gap-5",children:[o.jsx(Wbe,{title:"Theme",description:"Customize the appearance of the studio.",children:o.jsx(r0s,{label:"Theme mode",htmlFor:"theme",children:o.jsxs(fa,{value:r,onValueChange:a=>{s0s(a)&&s(a)},children:[o.jsx(ha,{id:"theme",className:"w-full sm:w-48",children:o.jsx(pa,{className:"inline-flex max-w-full min-w-0 items-center"})}),o.jsx(ma,{children:FVt.map(a=>o.jsx(Nr,{value:a.value,children:o.jsx(a0s,{option:a})},a.value))})]})})}),o.jsx(Wbe,{title:"Mastra Connection",description:"Configure the Mastra instance URL, API prefix, and request headers used by the studio.",children:o.jsx(K3t,{initialConfig:{baseUrl:e,headers:t,apiPrefix:n}})})]})})};function o0s(){const[e]=ti(),t=Xr(),n=e.get("redirect")||"/",r=()=>{n.startsWith("http")?window.location.href=n:t(n,{replace:!0})};return o.jsx(jVt,{redirectUri:n,onSuccess:r,initialMode:"signup"})}const zVt=e=>o.jsx("svg",{width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:o.jsx("path",{d:"M7.5 0.75C3.6325 0.75 0.5 3.8825 0.5 7.75C0.5 10.8475 2.50375 13.4637 5.28625 14.3912C5.63625 14.4525 5.7675 14.2425 5.7675 14.0587C5.7675 13.8925 5.75875 13.3412 5.75875 12.755C4 13.0787 3.545 12.3262 3.405 11.9325C3.32625 11.7312 2.985 11.11 2.6875 10.9437C2.4425 10.8125 2.0925 10.4887 2.67875 10.48C3.23 10.4712 3.62375 10.9875 3.755 11.1975C4.385 12.2562 5.39125 11.9587 5.79375 11.775C5.855 11.32 6.03875 11.0137 6.24 10.8387C4.6825 10.6637 3.055 10.06 3.055 7.3825C3.055 6.62125 3.32625 5.99125 3.7725 5.50125C3.7025 5.32625 3.4575 4.60875 3.8425 3.64625C3.8425 3.64625 4.42875 3.4625 5.7675 4.36375C6.3275 4.20625 6.9225 4.1275 7.5175 4.1275C8.1125 4.1275 8.7075 4.20625 9.2675 4.36375C10.6062 3.45375 11.1925 3.64625 11.1925 3.64625C11.5775 4.60875 11.3325 5.32625 11.2625 5.50125C11.7087 5.99125 11.98 6.6125 11.98 7.3825C11.98 10.0687 10.3438 10.6637 8.78625 10.8387C9.04 11.0575 9.25875 11.4775 9.25875 12.1337C9.25875 13.07 9.25 13.8225 9.25 14.0587C9.25 14.2425 9.38125 14.4612 9.73125 14.3912C11.1209 13.9221 12.3284 13.029 13.1839 11.8377C14.0393 10.6463 14.4996 9.21668 14.5 7.75C14.5 3.8825 11.3675 0.75 7.5 0.75Z",fill:"currentColor"})});function l0s(e){return e.replace(/\/$/,"").split("/").pop()}function QQ({children:e,className:t}){return o.jsx("div",{className:K("border border-border1 rounded-lg mt-12 py-8 lg:min-h-[25rem] transition-height px-4 lg:px-12",t),children:e})}function c0s({templates:e,linkComponent:t,className:n,isLoading:r}){const s=t||"a";return r?o.jsx("div",{className:K("grid gap-y-4",n),children:Array.from({length:5}).map((a,i)=>o.jsx("div",{className:"bg-surface3 h-16 animate-pulse rounded-lg"},i))}):o.jsx("div",{className:K("grid gap-y-4",n),children:e.map(a=>{const i=a?.agents||a?.tools||a?.networks||a?.workflows||a?.mcp;return o.jsxs("article",{className:K("border border-border1 rounded-lg overflow-hidden w-full grid grid-cols-[1fr_auto] bg-surface3 transition-colors hover:bg-surface4"),children:[o.jsxs(s,{to:`/templates/${a.slug}`,className:K("grid [&:hover_p]:text-neutral5",{"grid-cols-[8rem_1fr] lg:grid-cols-[12rem_1fr]":a.imageURL}),children:[a.imageURL&&o.jsx("div",{className:K("overflow-hidden"),children:o.jsx("div",{className:"thumb transition-scale h-full w-full bg-cover duration-150",style:{backgroundImage:`url(${a.imageURL})`}})}),o.jsxs("div",{className:K("grid py-3 px-6 w-full gap-0.5","[&_svg]:w-[1em] [&_svg]:h-[1em] [&_svg]:text-neutral3"),children:[o.jsx("h2",{className:"text-ui-lg text-neutral5",children:a.title}),o.jsx("p",{className:"text-ui-md text-neutral4 transition-colors duration-500",children:a.description}),o.jsxs("div",{className:"text-neutral3 text-ui-md mt-3 hidden flex-wrap items-center gap-4 2xl:flex",children:[i&&o.jsxs("ul",{className:K("flex gap-4 text-ui-md text-neutral3 m-0 p-0 list-none","[&>li]:flex [&>li]:items-center [&>li]:gap-0.5 text-neutral4"),children:[a?.agents&&a.agents.length>0&&o.jsxs("li",{children:[o.jsx(Oo,{})," ",a.agents.length]}),a?.tools&&a.tools.length>0&&o.jsxs("li",{children:[o.jsx(Mf,{})," ",a.tools.length]}),a?.networks&&a.networks.length>0&&o.jsxs("li",{children:[o.jsx(Jlt,{})," ",a.networks.length]}),a?.workflows&&a.workflows.length>0&&o.jsxs("li",{children:[o.jsx(nI,{})," ",a.workflows.length]}),a?.mcp&&a.mcp.length>0&&o.jsxs("li",{children:[o.jsx(OC,{})," ",a.mcp.length]})]}),i&&a.supportedProviders&&o.jsx("small",{children:"|"}),o.jsx("div",{className:"text-neutral3 flex items-center gap-4",children:a.supportedProviders.map(l=>o.jsx("span",{className:"",children:l},l))})]})]})]}),o.jsx("a",{href:a.githubUrl,className:K("group items-center gap-2 text-ui-md ml-auto pr-4 hidden","lg:flex"),target:"_blank",rel:"noopener noreferrer",children:o.jsxs("span",{className:"bg-surface1 group-hover:bg-surface2 text-neutral3 group-hover:text-neutral5 flex items-center gap-2 rounded px-2 py-1 transition-colors",children:[o.jsx(zVt,{})," ",l0s(a.githubUrl)]})})]},a.slug)})})}function u0s({tagOptions:e,selectedTag:t,providerOptions:n,selectedProvider:r,onTagChange:s,onProviderChange:a,searchTerm:i,onSearchChange:l,onReset:c,className:u,isLoading:d}){return d?o.jsxs("div",{className:K("h-[6.5rem] flex items-center gap-8","[&>div]:bg-surface3 [&>div]:w-48 [&>div]:h-8 [&>div]:animate-pulse",u),children:[o.jsx("div",{})," ",o.jsx("div",{})," ",o.jsx("div",{})]}):o.jsxs("div",{className:K("flex flex-wrap mx-auto sticky top-0 gap-4 bg-surface2 py-8",u),children:[o.jsx(v_,{name:"search-templates",label:"Search templates",labelIsHidden:!0,value:i,onChange:f=>l?.(f.target.value),placeholder:"Search Template"}),o.jsx(Tc,{label:"Filter by tag",labelIsHidden:!0,name:"filter-tag",value:t,onValueChange:s,options:e}),o.jsx(Tc,{label:"Filter by provider",labelIsHidden:!0,name:"filter-provider",value:r,onValueChange:a,options:n}),c&&o.jsxs(oe,{onClick:c,children:["Reset ",o.jsx(Ps,{})]})]})}function d0s(){const{data:e,isLoading:t}=ksr(),{templates:n,tags:r,providers:s}=e??{templates:[],tags:[],providers:[]},[a,i]=g.useState("all"),[l,c]=g.useState("all"),[u,d]=g.useState(""),f=[{value:"all",label:"Any tag"}];(r||[]).forEach(x=>{f.push({value:x,label:x})});const p=[{value:"all",label:"Any provider"}];(s||[]).forEach(x=>{p.push({value:x,label:x})});const h=(x,S)=>{S==="tag"?i(x):S==="provider"&&c(x)},m=x=>{d(x)},v=()=>{i("all"),c("all"),d("")},y=n.filter(x=>!(u&&!x.title.toLowerCase().includes(u)&&!x.description.toLowerCase().includes(u)||a!=="all"&&!x.tags.includes(a)||l!=="all"&&!x.supportedProviders.includes(l))),b=u||a!=="all"||l!=="all";return o.jsxs(As,{children:[o.jsx(cSe,{children:o.jsxs(ybt,{children:[o.jsx(Ve,{children:o.jsx(sy,{})}),"Templates"]})}),o.jsxs("div",{className:K("overflow-y-auto w-full h-full px-8 pb-12 z-10"),children:[o.jsx(u0s,{selectedTag:a,onTagChange:x=>h(x,"tag"),tagOptions:f,selectedProvider:l,onProviderChange:x=>h(x,"provider"),providerOptions:p,searchTerm:u,onSearchChange:m,onReset:b?v:void 0,className:"max-w-[80rem]",isLoading:t}),o.jsx(c0s,{templates:y,linkComponent:ki,className:"mx-auto max-w-[80rem]",isLoading:t})]})]})}const f0s="1.63.2";function p0s({errorMsg:e,validationErrors:t}){const n=typeof e=="string"?e:e!=null?String(e):void 0,r=n?.includes("Invalid schema for function"),s=n?.includes("validation issue")||t&&t.length>0,a=()=>s?"Template installation completed but some validation issues remain. The template may still be functional, but you should review and fix these issues.":r?"There was an issue with the AI model configuration. This may be related to the selected model or AI SDK version compatibility.":"An unexpected error occurred during template installation.",i=()=>s?{icon:o.jsx(Cf,{className:"text-yellow-500"}),title:"Template Installed with Warnings"}:{icon:o.jsx(FYt,{}),title:"Template Installation Failed"},{icon:l,title:c}=i();return o.jsxs(QQ,{className:"text-neutral3 mb-8 content-center space-y-4",children:[o.jsxs("div",{className:K("grid items-center justify-items-center gap-4 content-center","[&>svg]:w-8 [&>svg]:h-8"),children:[l,o.jsxs("div",{className:"space-y-2 text-center",children:[o.jsx("p",{className:"text-ui-md text-neutral5 font-medium",children:c}),o.jsx("p",{className:"text-ui-md text-neutral3",children:a()})]})]}),t&&t.length>0&&o.jsxs("details",{className:"text-xs",children:[o.jsxs("summary",{className:"text-neutral3 hover:text-neutral4 cursor-pointer text-center select-none",children:["Show Validation Issues (",t.length,")"]}),o.jsx("div",{className:"mt-4 max-h-60 space-y-2 overflow-auto rounded bg-gray-100 p-3 text-left text-xs dark:bg-gray-800",children:t.map((u,d)=>o.jsxs("div",{className:"border-l-2 border-red-400 pl-2",children:[o.jsx("div",{className:"font-medium text-red-600 dark:text-red-400",children:u.type==="typescript"?"🔴 TypeScript Error":"⚠️ Lint Error"}),o.jsx("div",{className:"mt-1 font-mono text-xs wrap-break-word whitespace-pre-wrap text-gray-700 dark:text-gray-300",children:u.message})]},d))})]}),n&&!s&&o.jsxs("details",{className:"text-xs",children:[o.jsx("summary",{className:"text-neutral3 hover:text-neutral4 cursor-pointer text-center select-none",children:"Show Details"}),o.jsx("div",{className:"mt-4 max-h-60 overflow-auto rounded bg-gray-100 p-3 text-left font-mono text-xs dark:bg-gray-800",children:o.jsx("div",{className:"wrap-break-word whitespace-pre-wrap",children:n})})]})]})}function h0s({providerOptions:e,selectedProvider:t,onProviderChange:n,variables:r,errors:s,handleInstallTemplate:a,handleVariableChange:i,isLoadingEnvVars:l,isInstalling:c,defaultModelProvider:u,defaultModelId:d,onModelUpdate:f}){return o.jsx(QQ,{children:o.jsxs("div",{className:"mx-auto my-4 grid max-w-[40rem] gap-8 p-4 lg:p-8",children:[o.jsxs("h2",{className:K("text-neutral4 text-header-sm font-semibold flex items-center gap-2","[&>svg]:w-[1.2em] [&_svg]:h-[1.2em] [&_svg]:opacity-70"),children:["Install Template ",o.jsx(ect,{})]}),o.jsx(Tc,{name:"template-provider",options:e,label:"Template AI Model Provider",onValueChange:n,value:t,placeholder:"Select",layout:"horizontal"}),t&&Object.entries(r||{}).length>0&&o.jsxs(o.Fragment,{children:[o.jsx("h3",{className:"text-neutral3 text-ui-md",children:"Set required Environmental Variables"}),o.jsx("div",{className:"grid grid-cols-[1fr_1fr] items-start gap-4",children:l?o.jsxs("div",{className:K("flex items-center justify-center col-span-2 text-neutral3 text-ui-sm gap-4","[&_svg]:opacity-50 [&_svg]:w-[1.1em] [&_svg]:h-[1.1em]","animate-in fade-in duration-300"),children:[o.jsx(qt,{})," Loading variables..."]}):Object.entries(r).map(([p,h])=>o.jsxs(g.Fragment,{children:[o.jsx(Lg,{name:`env-${p}`,labelIsHidden:!0,label:"Key",value:p,disabled:!0,className:"w-full"}),o.jsx(Lg,{name:p,labelIsHidden:!0,label:"Value",value:h,onChange:i,errorMsg:s.includes(p)?"Value is required.":"",autoComplete:"off",className:"w-full"})]},p))}),o.jsxs("div",{className:"border-border1 relative mt-3.5 border-t pt-12",children:[o.jsx("div",{className:"bg-surface2 text-ui-sm text-neutral3 absolute top-0 left-1/2 flex h-8 w-8 -translate-x-1/2 -translate-y-4 items-center justify-center rounded-full",children:"And"}),o.jsx("h3",{className:"text-neutral4 text-ui-lg",children:"Set AI Model for Template Installation"}),o.jsx("p",{className:"text-neutral3 text-ui-md mt-2 mb-8",children:"This model will be used by the workflow to process and install the template"}),o.jsx(gBt,{defaultProvider:u||"",defaultModel:d||"",updateModel:f||(()=>Promise.resolve({message:"Updated"})),closeEditor:()=>{},autoSave:!0,selectProviderPlaceholder:"Provider"})]})]}),t&&!l&&o.jsx(oe,{className:K("flex items-center gap-2 mt-4 justify-center text-ui-md w-full bg-surface5 min-h-10 rounded-lg text-neutral5 hover:bg-surface6 transition-colors","[&>svg]:w-[1.1em] [&_svg]:h-[1.1em] [&_svg]:text-neutral5"),onClick:a,disabled:!t||!u||!d||s.length>0||c,children:c?o.jsxs(o.Fragment,{children:[o.jsx(qt,{className:"h-4 w-4"})," Installing..."]}):o.jsxs(o.Fragment,{children:["Install ",o.jsx(Ty,{})]})})]})})}function m0s({title:e,description:t,githubUrl:n,isLoading:r,infoData:s,templateSlug:a}){const i=a?`feat/install-template-${a}`:"feat/install-template-[slug]";return o.jsxs(o.Fragment,{children:[o.jsx("div",{className:K("grid mt-8 items-center"),children:o.jsxs("div",{className:K("text-header-lg flex items-center gap-3","[&>svg]:w-[1.2em] [&>svg]:h-[1.2em] [&>svg]:opacity-50",{"[&>svg]:opacity-20":r}),children:[o.jsx(sy,{}),o.jsx("h2",{className:K({"bg-surface4 flex rounded-lg min-w-[50%]":r}),children:r?o.jsx(o.Fragment,{children:" "}):e})]})}),o.jsxs("div",{className:"grid gap-x-24 lg:grid-cols-[1fr_1fr]",children:[o.jsxs("div",{className:"grid",children:[o.jsx("p",{className:K("mb-4 text-ui-md text-neutral4 mt-2 leading-7",{"bg-surface4 rounded-lg ":r}),children:r?o.jsx(o.Fragment,{children:" "}):t}),!r&&a&&o.jsxs("div",{className:K("bg-surface2 border border-surface4 rounded-lg p-4 mb-4","flex items-start gap-3"),children:[o.jsx("div",{className:"mt-0.5 shrink-0",children:o.jsx(e0,{className:"h-[1.1em] w-[1.1em] text-blue-500"})}),o.jsxs("div",{className:"flex-1 space-y-2",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(c0e,{className:"text-neutral4 h-[1em] w-[1em]"}),o.jsx("span",{className:"text-ui-md text-neutral5 font-medium",children:"A new Git branch will be created"})]}),o.jsxs("div",{className:"text-ui-sm text-neutral4 space-y-1",children:[o.jsxs("div",{children:[o.jsx("span",{className:"font-medium",children:"Branch name:"})," ",o.jsx("code",{className:"bg-surface3 text-ui-sm rounded px-1.5 py-0.5 font-mono",children:i})]}),o.jsx("div",{children:"This ensures safe installation with easy rollback if needed. Your main branch remains unchanged."})]})]})]}),n&&o.jsxs("a",{href:n,target:"_blank",rel:"noopener noreferrer",className:"text-neutral3 text-ui-md hover:text-neutral5 mt-auto flex items-center gap-2",children:[o.jsx(zVt,{}),n?.split("/")?.pop()]})]}),s&&o.jsx(wBt,{data:s,labelsAreHidden:!0,isLoading:r})]})]})}function utt(e){switch(e){case"running":return o.jsx(qt,{size:"sm","aria-hidden":!0});case"success":return o.jsx(yy,{"aria-hidden":!0});case"failed":return o.jsx(Ac,{"aria-hidden":!0});default:return null}}function g0s(){return o.jsx("svg",{viewBox:"0 0 24 24",className:"text-neutral2","aria-hidden":!0,children:o.jsx("circle",{cx:"12",cy:"12",r:"8.5",pathLength:"48",fill:"none",stroke:"currentcolor",strokeWidth:"2.8",strokeLinecap:"round",strokeDasharray:"3 3"})})}function v0s({status:e,variant:t}){return t==="plain"?o.jsx("span",{className:K("flex size-4 items-center justify-center self-center [&>svg]:size-4",Gr.colors,{"[&>svg]:text-positive1":e==="success","[&>svg]:text-negative1":e==="failed"}),children:e==="pending"?o.jsx(g0s,{}):utt(e)}):o.jsx("span",{className:K("flex size-7 items-center justify-center self-center rounded-full motion-reduce:transition-none",Gr.colors,Gr.transform,Gr.shadow,{"[&>svg]:text-notice-success-fg":e==="success","[&>svg]:text-notice-destructive-fg":e==="failed","border border-dashed border-neutral2":e==="pending","[&>svg]:size-4":e!=="running","bg-accent1Dark shadow-glow-accent1":e==="success","bg-accent2Dark shadow-glow-accent2":e==="failed","scale-110":e==="success"||e==="failed"}),children:utt(e)})}function y0s({step:e,isActive:t,position:n,variant:r="default"}){return o.jsxs("div",{className:K("grid grid-cols-[1fr_auto] gap-6 rounded-lg px-4 py-3 motion-reduce:transition-none",Gr.colors,{"border border-transparent":r==="default","border-dashed border-neutral2 bg-surface3":t&&r==="default"}),children:[o.jsxs("div",{className:"grid min-w-0 grid-cols-[auto_1fr] gap-2",children:[o.jsxs("span",{className:K("flex min-w-6 justify-end text-ui-md",Gr.colors,{"text-neutral5":t||e.status==="success","text-neutral3":!t&&e.status!=="success"}),children:[n,"."]}),o.jsxs("div",{className:"min-w-0",children:[o.jsx("h4",{className:K("text-ui-md",Gr.colors,{"text-neutral5":t||e.status==="success","text-neutral3":!t&&e.status!=="success"}),children:e.title}),e.description&&o.jsx("p",{className:K("-mt-0.5 text-ui-md text-neutral2",{truncate:r==="plain"}),children:e.description})]})]}),o.jsx(v0s,{status:e.status,variant:r})]})}function b0s({currentStep:e,steps:t=[],className:n}){return o.jsx("div",{className:K(n),children:t.map((r,s)=>o.jsx(y0s,{step:r,isActive:e?.id===r.id,position:s+1},r.id))})}function x0s({steps:e}){const t=e.length,n=e.filter(r=>r.status==="success").length;return o.jsxs("div",{className:"flex w-full flex-col content-center justify-center gap-4",children:[o.jsx("div",{className:"grid w-full grid-cols-[0_repeat(9,1fr)]",children:e.map((r,s)=>o.jsx("div",{className:K("relative flex h-8 items-center justify-end",Gr.colors,{"bg-accent1Dark":r.status==="success"&&e?.[s-1]?.status==="success"}),children:o.jsx("div",{className:K("absolute right-0 z-10 flex size-8 translate-x-1/2 items-center justify-center self-center rounded-full bg-surface3 text-ui-sm font-bold text-neutral3 motion-reduce:transition-none",Gr.colors,Gr.transform,Gr.shadow,{"border border-dashed border-neutral2":r.status==="pending","bg-accent1Dark text-notice-success-fg shadow-glow-accent1 scale-110":r.status==="success","bg-accent2Dark text-notice-destructive-fg shadow-glow-accent2 scale-110":r.status==="failed"}),children:r.status==="running"?o.jsx(qt,{}):s+1})},r.id))}),o.jsxs("div",{className:K("text-center text-xs text-neutral3",Gr.colors),children:[n," of ",t," steps completed"]})]})}function w0s({name:e,streamResult:t,runId:n,workflowInfo:r}){const s=t?.phase||"initializing",a=t?.payload?.workflowState,i=t?.payload?.currentStep,l=t?.error,c=a?.steps||{},u=Object.keys(c).length>0,d=v=>v==="input"||v.endsWith(".input")||v.startsWith("Mapping_")&&/[0-9a-f]{8}/.test(v)||/[0-9a-f]{8,}/.test(v)?!1:r?.allSteps?v in r.allSteps:!0,f=Object.entries(c).filter(([v,y])=>d(v)),p=f.length,h=()=>{switch(s){case"initializing":return"Preparing template installation...";case"processing":return`Installing ${e} template`;case"completed":return"Template installation completed!";case"error":return"Template installation failed";default:return"Installing template..."}},m=f.map(([v,y])=>({id:v,status:y?.status,description:y?.description,title:v.charAt(0).toUpperCase()+v.slice(1).replace(/-/g," "),isActive:i?.id===v}));return o.jsxs(QQ,{className:"text-neutral3 mb-8 content-center space-y-6",children:[o.jsxs("div",{className:"text-center",children:[o.jsx("h3",{className:"text-neutral5 text-lg font-semibold",children:h()}),(t?.runId||n)&&o.jsxs("div",{className:"text-ui-sm text-neutral3 mt-2",children:["Run ID: ",t?.runId??n]})]}),u&&p>0&&!["error"].includes(s)&&o.jsx("div",{className:"mx-auto w-full max-w-[30rem] px-6",children:o.jsx(x0s,{steps:m})}),l&&s==="error"&&o.jsxs("div",{className:K("rounded-lg text-neutral5 p-6 flex items-center gap-3 text-ui-md bg-red-500/10","[&>svg]:w-6 [&>svg]:h-6 [&>svg]:opacity-70 [&>svg]:text-red-500"),children:[o.jsx(JKt,{}),l||"Something went wrong"]}),u&&o.jsx(b0s,{steps:m,currentStep:i,className:"pb-4"}),!u&&s==="initializing"&&o.jsxs("div",{className:"text-neutral3 grid justify-items-center gap-4 text-center text-sm",children:[o.jsx(qt,{}),o.jsx("p",{children:"This may take some time..."})]})]})}function S0s({name:e,installedEntities:t}){return o.jsxs(QQ,{className:K("grid items-center justify-items-center gap-4 content-center","[&>svg]:w-8 [&>svg]:h-8"),children:[o.jsx(ect,{}),o.jsx("h2",{className:"text-header-md",children:"Done!"}),o.jsxs("p",{className:"text-ui-md text-neutral3 text-center",children:["The ",o.jsx("b",{className:"text-neutral4",children:e})," template has been successfully installed.",t&&t.length>0&&o.jsxs(o.Fragment,{children:[o.jsx("br",{})," Installed entities are listed below."]})]}),t&&t.length>0&&o.jsx(wBt,{data:t})]})}function k0s(){const{templateSlug:e}=wr(),[t,n]=ti(),[r,s]=g.useState(""),[a,i]=g.useState(""),[l,c]=g.useState(""),[u,d]=g.useState({}),[f,p]=g.useState([]),[h,m]=g.useState(null),[v,y]=g.useState(!1),[b,x]=g.useState(""),[S,k]=g.useState(!1),[_,C]=g.useState(!1),[T,E]=g.useState([]),{data:N,isLoading:I}=Osr({repoOrSlug:e,owner:"mastra-ai"}),R=f0s?.includes("beta")??!1?"beta":"main",{data:L,isLoading:D}=_sr({repo:N?.githubUrl?new URL(N.githubUrl).pathname.split("/")[2]:`template-${e}`,owner:"mastra-ai",branch:R}),{data:F,isLoading:H}=Csr(),{mutateAsync:B,isPending:z}=Esr(),{mutateAsync:V}=Tsr(),{streamInstall:M,streamResult:G,isStreaming:U}=Nsr(F),{observeInstall:$,streamResult:q,isStreaming:Z}=Isr(F);g.useEffect(()=>{const te=t.get("runId");te&&!v&&!h&&!U&&!Z&&(console.info("🔄 Checking completed run after hot reload:",{runId:te}),x(te),V({runId:te}).then(re=>{const pe=re.snapshot;if(pe?.status==="success"&&pe?.result?.success)y(!0);else if(pe?.result?.success===!1)if(pe?.result?.validationResults&&!pe?.result?.validationResults?.valid&&pe?.result?.validationResults?.remainingErrors>0){const{remainingErrors:Se,errors:ve}=pe.result.validationResults,ke=`Template installation completed but ${Se} validation issue${Se>1?"s":""} remain unresolved.`;m(ke),E(ve||[])}else{const Se=pe?.result?.message||pe?.result?.error||"Template installation failed";m(typeof Se=="string"?Se:String(Se))}}).catch(re=>{console.error("❌ Failed to fetch run details:",re),m("Failed to retrieve installation status after reload")}))},[t,v,h,U,Z,V]),g.useEffect(()=>{const te=t.get("runId"),re=t.get("resume"),pe=t.get("provider");if(te&&re==="true"&&pe&&!U&&!Z&&!S&&!_&&F){x(te),k(!0);try{V({runId:te}).then(ce=>{if(ce.snapshot?.status==="running")return $.mutateAsync({runId:te})}).then(()=>{n(ce=>{const Se=new URLSearchParams(ce);return Se.delete("resume"),Se})}).catch(ce=>{console.error("❌ Failed to resume template installation:",ce),ce.message?.includes("404")||ce.message?.includes("not found")?m("Template installation run not found. It may have expired or been completed."):m("Failed to resume template installation. Please try again.")})}catch(ce){console.error("❌ Auto-resume failed with error:",ce),m("Failed to resume template installation. Please refresh and try again.")}}},[t,e,U,Z,S,_,F,V,$,n]);const Y=[{value:"openai",label:"OpenAI"},{value:"anthropic",label:"Anthropic"},{value:"groq",label:"Groq"},{value:"google",label:"Google"}],ne=[{key:"tools",label:"Tools",value:N?.tools?.length?N.tools.map(te=>te).join(", "):"n/a",icon:o.jsx(Mf,{})},{key:"agents",label:"Agents",value:N?.agents?.length?N.agents.map(te=>te).join(", "):"n/a",icon:o.jsx(Oo,{})},{key:"workflows",label:"Workflows",value:N?.workflows?.length?N.workflows.map(te=>te).join(", "):"n/a",icon:o.jsx(nI,{})},{key:"providers",label:"Providers",value:N?.supportedProviders?.length?N.supportedProviders.join(", "):"n/a",icon:o.jsx(Uv,{})},{key:"tags",label:"Tags",value:N?.tags?.length?N.tags.join(", "):"n/a",icon:o.jsx(tI,{})}],J=[{...ne[0]},{...ne[1]},{...ne[2]}].filter(te=>te.value!=="n/a");g.useEffect(()=>{L&&d(L)},[L]),g.useEffect(()=>{const te=G||q;te?.phase==="error"&&te?.error&&m(typeof te.error=="string"?te.error:String(te.error))},[G?.phase,G?.error,q?.phase,q?.error]);const ee=te=>{s(te)},se=async te=>(i(te.provider),c(te.modelId),{message:"Model updated successfully"}),le=async()=>{const te=Object.entries(u).reduce((re,[pe,ce])=>(ce===""&&re.push(pe),re),[]);if(te.length>0){p(te);return}if(N){m(null),y(!1),x(""),C(!0);try{const pe={repo:N.githubUrl||`https://github.com/mastra-ai/template-${N.slug}`,ref:R,slug:N.slug,variables:u},{runId:ce}=await B({});x(ce),n(Se=>{const ve=new URLSearchParams(Se);return ve.set("runId",ce),ve.set("resume","true"),ve.set("provider",r||"openai"),ve}),await M.mutateAsync({inputData:pe,selectedModel:{provider:a,modelId:l},runId:ce})}catch(re){C(!1),m(re?.message||"Template installation failed"),console.error("Template installation failed",re)}}},X=te=>{const{name:re,value:pe}=te.target;pe.trim()===""?p(ce=>[...ce,re]):p(ce=>ce.filter(Se=>Se!==re)),d(ce=>({...ce,[re]:pe}))};return o.jsx(As,{children:o.jsx("div",{className:K("w-full lg:px-12 h-full overflow-y-scroll"),children:o.jsxs("div",{className:"mx-auto grid w-full max-w-[80rem] gap-y-4 p-6",children:[o.jsx(m0s,{isLoading:I,title:N?.title,description:N?.longDescription,imageURL:N?.imageURL,githubUrl:N?.githubUrl,infoData:ne,templateSlug:e}),N&&o.jsxs(o.Fragment,{children:[(U||Z)&&o.jsx(w0s,{name:N.title,streamResult:Z?q:G,runId:b,workflowInfo:F}),v&&o.jsx(S0s,{name:N.title,installedEntities:J,linkComponent:ki}),h&&o.jsx(p0s,{errorMsg:h,validationErrors:T.length>0?T:G?.validationResults?.errors||q?.validationResults?.errors}),!U&&!Z&&!v&&!h&&o.jsx(h0s,{providerOptions:Y,selectedProvider:r,onProviderChange:ee,variables:u,setVariables:d,errors:f,setErrors:p,handleInstallTemplate:le,handleVariableChange:X,isLoadingEnvVars:D||H,isInstalling:z,defaultModelProvider:a,defaultModelId:l,onModelUpdate:se})]})]})})})}const O0s=()=>{const{toolId:e,agentId:t}=wr();return o.jsx("div",{className:"h-full w-full overflow-y-auto",children:o.jsx(sos,{toolId:e,agentId:t})})},_0s=()=>{const{toolId:e}=wr();return o.jsx("div",{className:"h-full w-full overflow-y-hidden",children:o.jsx(_bs,{toolId:e})})};function C0s(){const{data:e,isLoading:t,error:n}=Zy(),[r,s]=g.useState("");return n&&ws(n)?o.jsx(ar,{children:o.jsx(Ys,{})}):n&&Ss(n)?o.jsx(ar,{children:o.jsx(qs,{resource:"workflows"})}):n?o.jsx(ar,{children:o.jsx(Ui,{title:"Failed to load workflows",message:n.message})}):Object.keys(e||{}).length===0&&!t?o.jsx(ar,{children:o.jsx(mZr,{})}):o.jsxs(Ut,{children:[o.jsx(Ut.TopArea,{children:o.jsxs(Ut.Row,{align:"center",stack:"responsive",children:[o.jsx("div",{className:"max-w-120 flex-1",children:o.jsx(Bf,{onSearch:s,label:"Filter workflows",placeholder:"Filter by name or description"})}),o.jsxs(oe,{as:ki,to:"/workflows/schedules",variant:"primary",className:"shrink-0",children:[o.jsx(VD,{}),"Schedules"]})]})}),o.jsx(hZr,{workflows:e||{},isLoading:t,search:r})]})}const E0s={active:"bg-accent1",paused:"bg-accent3"},T0s={active:"text-accent1",paused:"text-accent3"},BVt=({status:e})=>o.jsxs("span",{className:"inline-flex items-center gap-2 whitespace-nowrap",children:[o.jsx("span",{className:`h-1.5 w-1.5 rounded-full ${E0s[e]}`,"aria-hidden":!0}),o.jsx("span",{className:`text-ui-sm ${T0s[e]}`,children:e})]}),vj=e=>!e||e<=0?"—":new Date(e).toLocaleString(),r$=e=>{if(!e||e<=0)return"—";const t=e-Date.now(),n=Math.abs(t),r=Math.floor(n/1e3);if(r<60)return t>=0?`in ${r}s`:`${r}s ago`;const s=Math.floor(r/60);if(s<60)return t>=0?`in ${s}m`:`${s}m ago`;const a=Math.floor(s/60);if(a<24)return t>=0?`in ${a}h`:`${a}h ago`;const i=Math.floor(a/24);return t>=0?`in ${i}d`:`${i}d ago`};function UVt({status:e}){const{icon:t,color:n}=j0s(e);return o.jsxs("span",{className:`text-ui-sm inline-flex items-center gap-1.5 whitespace-nowrap ${n}`,children:[o.jsx("span",{className:"inline-flex shrink-0 items-center","aria-hidden":!0,children:t}),o.jsx("span",{children:e})]})}function j0s(e){switch(e){case"success":return{icon:o.jsx(ia,{size:14}),color:"text-accent1"};case"failed":return{icon:o.jsx(Ps,{size:14}),color:"text-accent2"};case"running":return{icon:o.jsx(qt,{}),color:"text-neutral3"};case"suspended":return{icon:o.jsx(mV,{size:14}),color:"text-accent3"};case"canceled":return{icon:o.jsx(Df,{size:14}),color:"text-neutral3"};case"pending":case"waiting":return{icon:o.jsx(bO,{size:14}),color:"text-neutral3"};default:return{icon:null,color:"text-neutral3"}}}const dtt="auto auto auto auto 1fr";function N0s(e){if(e===void 0)return"—";if(e<1e3)return`${e}ms`;if(e<6e4)return`${(e/1e3).toFixed(1)}s`;const t=Math.floor(e/6e4),n=Math.floor(e%6e4/1e3);return`${t}m ${n}s`}function I0s(e){const t=Math.abs(e),n=e<0?"-":"";return t<1e3?`${n}${t}ms`:t<6e4?`${n}${(t/1e3).toFixed(1)}s`:t<36e5?`${n}${(t/6e4).toFixed(1)}m`:`${n}${(t/36e5).toFixed(1)}h`}const A0s=3e4,R0s=5*6e4;function P0s({triggers:e,isLoading:t,workflowId:n,hasNextPage:r,isFetchingNextPage:s,setEndOfListElement:a}){const{Link:i,paths:l}=dn(),c=h=>!!(n&&h.runId&&h.outcome!=="failed"),u=e.filter(c).length,{containerRef:d,getRowProps:f}=wo({count:u});let p=-1;return t?o.jsx(vl,{columns:dtt}):e.length===0?o.jsx(ge,{variant:"ui-md",className:"text-neutral4 p-4",children:"No trigger history yet."}):o.jsxs(be,{columns:dtt,className:"min-w-0",scrollRef:d,children:[o.jsxs(be.Top,{children:[o.jsx(be.TopCell,{children:"Run"}),o.jsx(be.TopCell,{children:"Status"}),o.jsx(be.TopCell,{children:"Started"}),o.jsx(be.TopCell,{children:"Duration"}),o.jsx(be.TopCell,{children:" "})]}),e.map(h=>{const m=h.actualFireAt-h.scheduledFireAt,v=I0s(m),y=`Scheduled ${vj(h.scheduledFireAt)} — published ${vj(h.actualFireAt)} (drift ${v})`,b=h.outcome==="failed",x=b?h.error:h.run?.error,S=Math.abs(m),k=!b&&S>A0s&&S<=R0s,_=`${h.scheduleId}-${h.runId}-${h.actualFireAt}`,C=c(h);C&&(p+=1);const T=o.jsx("span",{className:C?"text-accent1 text-ui-sm font-mono whitespace-nowrap":"text-neutral3 text-ui-sm font-mono whitespace-nowrap",children:h.runId}),E=o.jsxs(o.Fragment,{children:[o.jsx(be.Cell,{children:T}),o.jsx(be.Cell,{children:o.jsxs("span",{className:"inline-flex items-center gap-2",children:[b?o.jsxs("span",{className:"text-ui-sm text-accent2 inline-flex items-center gap-1.5 whitespace-nowrap",children:[o.jsx(Cf,{size:14}),"publish failed"]}):h.run?o.jsx(UVt,{status:h.run.status}):o.jsx("span",{className:"text-ui-sm text-neutral3 inline-flex items-center gap-1.5 whitespace-nowrap",children:"pending"}),x?o.jsxs(En,{children:[o.jsx(kn,{asChild:!0,children:o.jsx("span",{className:"text-accent2 inline-flex",children:o.jsx(Cf,{size:14})})}),o.jsx(On,{children:x})]}):null]})}),o.jsx(be.Cell,{children:o.jsxs("span",{className:"inline-flex items-center gap-2 whitespace-nowrap",children:[o.jsx("span",{title:y,children:r$(h.actualFireAt)}),k?o.jsxs(En,{children:[o.jsx(kn,{asChild:!0,children:o.jsx("span",{className:"text-accent3 inline-flex",children:o.jsx(Cf,{size:14})})}),o.jsxs(On,{children:["Published ",v," after the scheduled fire time"]})]}):null]})}),o.jsx(be.Cell,{children:h.run?o.jsx("span",{children:N0s(h.run.durationMs)}):o.jsx("span",{className:"text-neutral4",children:"—"})}),o.jsx(be.Cell,{children:" "})]});return C?o.jsx(be.RowLink,{to:l.workflowRunLink(n,h.runId),LinkComponent:i,...f(p),children:E},_):o.jsx(be.RowStatic,{children:E},_)}),o.jsx(be.NextPageLoading,{isLoading:s,hasMore:r,setEndOfListElement:a})]})}const $0s=e=>{const t=Ge();return yt({queryKey:["schedule",e],enabled:!!e,queryFn:async()=>{if(!e)throw new Error("scheduleId is required");return t.getSchedule(e)}})},ftt=25,M0s=e=>{const t=Ge(),{inView:n,setRef:r}=tC(),s=K1({queryKey:["schedule-triggers",e],enabled:!!e,initialPageParam:void 0,queryFn:async({pageParam:u})=>e?t.listScheduleTriggers(e,{limit:ftt,toActualFireAt:u}):{triggers:[]},getNextPageParam:u=>{if(!(!u?.triggers?.length||u.triggers.length<ftt))return u.triggers[u.triggers.length-1].actualFireAt},refetchInterval:u=>(u.state.data?.pages.flatMap(p=>p.triggers)??[]).some(p=>p.run?p.run.status==="pending"||p.run.status==="running"||p.run.status==="waiting":p.outcome==="published")?5e3:!1}),a=s.data?.pages.flatMap(u=>u?.triggers??[])??[],{hasNextPage:i,isFetchingNextPage:l,fetchNextPage:c}=s;return g.useEffect(()=>{n&&i&&!l&&c()},[n,i,l,c]),{...s,data:a,setEndOfListElement:r}},D0s=e=>{const t=Ge(),n=Dr();return Rn({mutationFn:async r=>{if(!e)throw new Error("scheduleId is required");return r==="pause"?t.pauseSchedule(e):t.resumeSchedule(e)},onSuccess:(r,s)=>{n.invalidateQueries({queryKey:["schedule",e]}),n.invalidateQueries({queryKey:["schedules"]}),Be.success(s==="pause"?"Schedule paused":"Schedule resumed")},onError:r=>{Be.error(r.message)}})};function s8({label:e,children:t}){return o.jsxs("div",{className:"flex flex-col gap-1",children:[o.jsx(ge,{variant:"ui-xs",className:"text-neutral4 tracking-wide uppercase",children:e}),o.jsx("div",{className:"text-ui-md",children:t})]})}function L0s(){const{scheduleId:e}=wr(),{paths:t}=dn(),{data:n,error:r}=$0s(e),{data:s,isLoading:a,error:i,hasNextPage:l,isFetchingNextPage:c,setEndOfListElement:u}=M0s(e),d=D0s(e);if(r&&ws(r))return o.jsx(ar,{children:o.jsx(Ys,{})});if(r&&Ss(r))return o.jsx(ar,{children:o.jsx(qs,{resource:"schedules"})});if(r)return o.jsx(ar,{children:o.jsx(Ui,{title:"Failed to load schedule",message:r.message})});const f=n?.workflowId,p=n?.agentId;return o.jsxs(Ut,{children:[o.jsx(Ut.TopArea,{children:o.jsx(Ut.Row,{className:"justify-end",children:o.jsxs(Ut.Column,{className:"flex justify-end gap-2",children:[o.jsxs(oe,{as:ki,to:t.schedulesLink(),variant:"ghost",children:[o.jsx(ed,{}),"Back to schedules"]}),f?o.jsx(oe,{as:ki,to:t.workflowLink(f),variant:"ghost",children:"Open workflow"}):null,n?o.jsx(oe,{onClick:()=>d.mutate(n.status==="active"?"pause":"resume"),disabled:d.isPending,"data-testid":"schedule-toggle-button",children:n.status==="active"?o.jsxs(o.Fragment,{children:[o.jsx(d0e,{}),"Pause"]}):o.jsxs(o.Fragment,{children:[o.jsx(hu,{}),"Resume"]})}):null]})})}),n?o.jsxs("div",{className:"grid h-full grid-cols-[minmax(0,20rem)_1fr] gap-6 overflow-hidden",children:[o.jsxs("div",{className:"border-border1 flex h-fit flex-col gap-4 rounded-md border p-4",children:[o.jsx(s8,{label:p?"Agent":"Workflow",children:f?o.jsx(ki,{to:t.workflowLink(f),className:"text-accent1 hover:underline",children:f}):p?o.jsx(ki,{to:t.agentLink(p),className:"text-accent1 hover:underline",children:p}):"—"}),o.jsxs(s8,{label:"Cron",children:[o.jsx("code",{className:"text-ui-md font-mono",children:n.cron}),n.timezone?o.jsx("span",{className:"text-neutral4 text-ui-sm ml-2",children:n.timezone}):null]}),o.jsx(s8,{label:"Status",children:o.jsx(BVt,{status:n.status})}),o.jsx(s8,{label:"Next fire",children:o.jsx("span",{title:vj(n.nextFireAt),children:r$(n.nextFireAt)})})]}),o.jsxs("div",{className:"overflow-y-auto","data-testid":"schedule-triggers-panel",children:[o.jsx(ge,{variant:"ui-md",className:"mb-3",children:"Trigger history"}),i?o.jsx(Ui,{title:"Failed to load trigger history",message:i.message}):o.jsx(P0s,{triggers:s??[],isLoading:a,workflowId:f,hasNextPage:l,isFetchingNextPage:c,setEndOfListElement:u})]})]}):null]})}const ptt="minmax(0, 1.2fr) minmax(0, 1.4fr) minmax(0, 1fr) auto auto auto";function F0s({schedules:e,isLoading:t,search:n=""}){const{paths:r,Link:s}=dn(),a=g.useMemo(()=>{const c=n.toLowerCase();return c?e.filter(u=>u.id.toLowerCase().includes(c)||(u.workflowId??u.agentId??"").toLowerCase().includes(c)):e},[e,n]),{containerRef:i,getRowProps:l}=wo({count:a.length});return t?o.jsx(vl,{columns:ptt}):o.jsxs(be,{columns:ptt,variant:"striped",className:"min-w-0",scrollRef:i,children:[o.jsxs(be.Top,{children:[o.jsx(be.TopCell,{children:"Target"}),o.jsx(be.TopCell,{children:"Schedule ID"}),o.jsx(be.TopCell,{children:"Cron"}),o.jsx(be.TopCell,{children:"Status"}),o.jsx(be.TopCell,{children:"Next fire"}),o.jsx(be.TopCell,{children:"Last run"})]}),a.length===0&&n?o.jsx(be.NoMatch,{message:"No schedules match your search"}):null,a.length===0&&!n?o.jsx(be.NoMatch,{message:"No schedules configured"}):null,a.map((c,u)=>o.jsxs(be.RowLink,{to:r.scheduleLink(c.id),LinkComponent:s,...l(u),children:[o.jsx(be.NameCell,{children:c.workflowId??c.agentId}),o.jsx(be.Cell,{className:"min-w-0",children:o.jsx("span",{className:"text-ui-smd text-neutral3 block truncate font-mono",title:c.id,children:c.id})}),o.jsx(be.Cell,{children:o.jsxs("span",{className:"inline-flex items-center gap-2 whitespace-nowrap",children:[o.jsx("code",{className:"text-ui-sm font-mono",children:c.cron}),c.timezone?o.jsx("span",{className:"text-neutral4 text-ui-xs",children:c.timezone}):null]})}),o.jsx(be.Cell,{children:o.jsx(BVt,{status:c.status})}),o.jsx(be.Cell,{children:o.jsx("span",{className:"whitespace-nowrap",title:vj(c.nextFireAt),children:r$(c.nextFireAt)})}),o.jsx(be.Cell,{children:c.lastRun?o.jsxs("span",{className:"inline-flex items-center gap-2 whitespace-nowrap",children:[o.jsx(UVt,{status:c.lastRun.status}),o.jsx("span",{className:"text-neutral4 text-ui-sm",title:vj(c.lastFireAt),children:c.lastFireAt?r$(c.lastFireAt):""})]}):c.lastFireAt?o.jsx("span",{className:"whitespace-nowrap",title:vj(c.lastFireAt),children:r$(c.lastFireAt)}):o.jsx("span",{className:"text-neutral4",children:"Never"})})]},c.id))]})}function z0s({workflowId:e}={}){const{data:t,isLoading:n,error:r}=oSe(e?{workflowId:e}:{}),[s,a]=g.useState("");return r?o.jsx(Ui,{title:"Failed to load schedules",message:r.message}):o.jsxs("div",{className:"grid h-full grid-rows-[auto_1fr] gap-4 overflow-hidden",children:[o.jsx("div",{className:"max-w-120",children:o.jsx(Bf,{onSearch:a,label:"Filter schedules",placeholder:"Filter by id or workflow"})}),o.jsx("div",{className:"overflow-y-auto",children:o.jsx(F0s,{schedules:t??[],isLoading:n,search:s})})]})}function B0s(){const[e]=ti(),t=e.get("workflowId")??void 0,{error:n}=oSe(t?{workflowId:t}:{});return n&&ws(n)?o.jsx(ar,{children:o.jsx(Ys,{})}):n&&Ss(n)?o.jsx(ar,{children:o.jsx(qs,{resource:"schedules"})}):o.jsx(Ut,{children:o.jsx("div",{className:"h-full",children:o.jsx(z0s,{workflowId:t})})})}function U0s({stepGraph:e,open:t,workflowName:n}){const{nodes:r,edges:s}=AOe({stepGraph:e}),[a,i]=g.useState(!1),[l,c,u]=q_t(r),[d]=V_t(s),{edgeTypes:f,nodeTypes:p,styledEdges:h}=HLt({edges:d,workflowName:n,stepGraph:e});return g.useEffect(()=>{if(t){const m=setTimeout(()=>{i(!0)},500);return()=>clearTimeout(m)}},[t]),o.jsx("div",{className:"bg-surface1 relative h-full w-full",children:a?o.jsxs(U_t,{nodes:l,edges:h,edgeTypes:f,fitView:!0,fitViewOptions:{maxZoom:1},minZoom:.01,maxZoom:1,nodeTypes:p,onNodesChange:u,children:[o.jsx(Cje,{position:"bottom-left"}),o.jsx(W_t,{variant:cy.Lines,gap:12,size:.5})]}):o.jsx("div",{className:"flex h-full w-full items-center justify-center",children:o.jsx(qt,{})})})}function q0s(){const{stepDetail:e,closeStepDetail:t}=TW();return e?o.jsxs("div",{className:"flex h-full flex-col","data-testid":"workflow-step-detail-panel",children:[o.jsxs("div",{className:"border-border1 bg-surface1 flex items-center justify-between border-b px-4 py-3",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[e.type==="map-config"&&o.jsx(kj,{className:"h-4 w-4",style:{color:Mu.map}}),e.type==="nested-graph"&&o.jsx(rd,{className:"h-4 w-4",style:{color:Mu.workflow}}),o.jsxs("div",{className:"flex flex-col",children:[o.jsx(ge,{variant:"ui-md",className:"text-neutral6 font-medium",children:e.type==="map-config"?`${e.stepName} Config`:`${e.stepName} Workflow`}),e.type==="map-config"&&e.stepId&&e.stepId!==e.stepName&&o.jsx(ge,{variant:"ui-xs",className:"text-neutral3",children:e.stepId})]})]}),o.jsx("button",{onClick:t,className:"hover:bg-surface3 rounded p-1 transition-colors","aria-label":"Close",children:o.jsx(Ps,{className:"text-neutral3 h-4 w-4"})})]}),o.jsxs("div",{className:"flex-1 overflow-auto",children:[e.type==="map-config"&&e.mapConfig&&o.jsx(e$,{data:e.mapConfig}),e.type==="nested-graph"&&e.nestedGraph&&o.jsx("div",{className:"h-full min-h-[400px]",children:o.jsx(IOe,{children:o.jsx(U0s,{stepGraph:e.nestedGraph.stepGraph,open:!0,workflowName:e.nestedGraph.fullStep})},`nested-graph-${e.nestedGraph.fullStep}`)})]})]}):null}function V0s(e){const t=new Blob([JSON.stringify(e??null)]).size;return t<1024?`${t} B`:`${(t/1024).toFixed(1)} KB`}function H0s(e,t){if(e&&typeof e=="object"&&!Array.isArray(e)){const n=Object.keys(e);if(n.length===1)return n[0]}return t}function W0s({suspendedSteps:e,workflow:t,isStreaming:n,onResume:r}){return n||e.length===0?null:o.jsxs("div",{className:"border-border1 bg-surface4 space-y-5 rounded-lg border p-5","data-testid":"workflow-suspended-steps",children:[o.jsxs("div",{className:"flex items-center justify-between gap-3",children:[o.jsxs(ge,{as:"p",variant:"ui-md",className:"text-neutral6 flex items-center gap-2 font-semibold",children:[o.jsx(Ve,{children:o.jsx(mV,{})}),"Step suspended"]}),o.jsx(Xt,{variant:"warning",children:"Needs input"})]}),e.map((s,a)=>{const i=t.allSteps[s.stepId];if(!i||i.isWorkflow)return null;const l=i?.resumeSchema?gm(Nx(i.resumeSchema)):of(cr(),vf());return o.jsx(Z0s,{step:s,stepSchema:l,description:i.description,isStreaming:n,onResume:r},`${s.runId}-${s.stepId}-${a}`)})]})}function Z0s({step:e,stepSchema:t,description:n,isStreaming:r,onResume:s}){const[a,i]=g.useState(!1);return o.jsxs("div",{className:"space-y-5",children:[o.jsxs("div",{className:"space-y-2",children:[o.jsx(ge,{as:"p",variant:"ui-md",className:"text-neutral6 truncate font-medium",children:e.stepId}),n&&o.jsx(ge,{as:"p",variant:"ui-sm",className:"text-neutral3",children:n})]}),e.suspendPayload&&o.jsxs("div",{className:"space-y-2",children:[o.jsxs(ge,{as:"p",variant:"ui-sm",className:"text-neutral3 flex items-center gap-2",children:[o.jsx(Ve,{children:o.jsx(HKt,{})}),"The step is asking"]}),o.jsxs(bu,{open:a,onOpenChange:i,children:[o.jsxs(Rc,{className:"border-border1 bg-surface3 flex w-full items-center justify-between gap-2 rounded-lg border px-3 py-2.5",children:[o.jsxs("span",{className:"flex min-w-0 items-center gap-2",children:[o.jsx(Ve,{children:o.jsx(Zs,{className:K("transition-transform text-neutral3",{"transform rotate-90":a})})}),o.jsx(ge,{as:"span",variant:"ui-md",className:"text-neutral6 truncate",children:H0s(e.suspendPayload,e.stepId)})]}),o.jsx(ge,{as:"span",variant:"ui-sm",className:"text-neutral3 shrink-0",children:V0s(e.suspendPayload)})]}),o.jsx(Pc,{children:o.jsx("div",{"data-testid":"suspended-payload",className:"pt-2",children:o.jsx(Zr,{data:e.suspendPayload,className:"w-full overflow-x-auto p-2",showCopyButton:!1})})})]})]}),o.jsxs("div",{className:"space-y-3",children:[o.jsxs(ge,{as:"p",variant:"ui-sm",className:"text-neutral3 flex items-center gap-2",children:[o.jsx(Ve,{children:o.jsx(GKt,{})}),"Your response"]}),o.jsx("div",{className:"-mx-5",children:o.jsx(oU,{schema:t,isSubmitLoading:r,submitButtonLabel:"Resume",submitButtonIcon:o.jsx(hu,{}),submitButtonFullWidth:!0,collapsible:!1,hideHeading:!0,hideInputTypeLabel:!0,onSubmit:l=>{const c=e.stepId?.split(".");s({stepId:c,runId:e.runId,suspendPayload:e.suspendPayload,resumeData:l,isLoading:!1})}})})]})]})}function G0s(){const{result:e,runSnapshot:t,workflow:n,runId:r,isStreamingWorkflow:s}=g.useContext(Bl),{runId:a}=wr(),i=J_t(e,r??""),l=Mtr(),c=!!a,u=t?.status==="suspended",f=!!(a&&r&&a===r)&&e?.status==="suspended";return s||!n||i.length===0||c&&!u&&!f?null:o.jsx("div",{"data-testid":"workflow-suspended-overlay",className:"animate-in fade-in-0 slide-in-from-top-2 zoom-in-95 absolute top-2 right-2 z-20 max-h-[calc(100%-1rem)] w-[380px] max-w-[calc(100%-1rem)] overflow-y-auto rounded-lg shadow-lg duration-300",children:o.jsx(W0s,{suspendedSteps:i,workflow:n,isStreaming:s,onResume:l})},r)}const Q0s=e=>o.jsxs("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:[o.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M5.99982 2.0625C3.8252 2.0625 2.06232 3.82538 2.06232 6C2.06232 8.17462 3.8252 9.9375 5.99982 9.9375C8.17444 9.9375 9.93732 8.17462 9.93732 6C9.93732 3.82538 8.17444 2.0625 5.99982 2.0625ZM0.937317 6C0.937317 3.20406 3.20388 0.9375 5.99982 0.9375C8.79576 0.9375 11.0623 3.20406 11.0623 6C11.0623 8.79594 8.79576 11.0625 5.99982 11.0625C3.20388 11.0625 0.937317 8.79594 0.937317 6Z",fill:"currentColor"}),o.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M7.97865 4.57004C8.22604 4.75795 8.27426 5.11082 8.08635 5.35821L6.05486 8.03279C5.94873 8.17251 5.78348 8.25471 5.60803 8.25505C5.43257 8.2554 5.267 8.17385 5.16032 8.03454L3.80937 6.27034C3.6205 6.02369 3.66733 5.67063 3.91398 5.48176C4.16063 5.29288 4.51369 5.33972 4.70257 5.58637L5.6051 6.76498L7.19048 4.67774C7.37839 4.43036 7.73126 4.38213 7.97865 4.57004Z",fill:"currentColor"})]}),Y0s=e=>o.jsxs("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:[o.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M5.99982 2.0625C3.8252 2.0625 2.06232 3.82538 2.06232 6C2.06232 8.17462 3.8252 9.9375 5.99982 9.9375C8.17444 9.9375 9.93732 8.17462 9.93732 6C9.93732 3.82538 8.17444 2.0625 5.99982 2.0625ZM0.937317 6C0.937317 3.20406 3.20388 0.9375 5.99982 0.9375C8.79576 0.9375 11.0623 3.20406 11.0623 6C11.0623 8.79594 8.79576 11.0625 5.99982 11.0625C3.20388 11.0625 0.937317 8.79594 0.937317 6Z",fill:"currentColor"}),o.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M7.89741 4.10293C8.11707 4.32261 8.11706 4.67877 7.89738 4.89843L6.79517 6.00058L7.8962 7.10155C8.11588 7.32122 8.11589 7.67737 7.89623 7.89705C7.67656 8.11673 7.32041 8.11674 7.10073 7.89707L5.99965 6.79605L4.89856 7.89707C4.67889 8.11673 4.32273 8.11672 4.10307 7.89704C3.88341 7.67737 3.88342 7.32121 4.10309 7.10155L5.20413 6.00058L4.10191 4.89843C3.88224 4.67877 3.88223 4.32262 4.10189 4.10294C4.32155 3.88326 4.67771 3.88325 4.89738 4.10292L5.99965 5.20511L7.10191 4.10291C7.32159 3.88325 7.67774 3.88326 7.89741 4.10293Z",fill:"currentColor"})]}),K0s=e=>e.includes("."),X0s=e=>e==="input"||e.endsWith(".input"),J0s=1;function ews(e){return`${Number((e/1e3).toPrecision(3))}s`}function tws(e,t){const n=Object.entries(e).filter(([i])=>!X0s(i));if(n.length===0)return[];const r=Math.min(...n.map(([,i])=>i.startedAt)),s=Math.max(...n.map(([,i])=>i.endedAt??t)),a=Math.max(s-r,1);return n.map(([i,l])=>{const c=l.endedAt===void 0,d=(l.endedAt??t)-l.startedAt,f=(l.startedAt-r)/a*100,p=Math.max(d/a*100,J0s);return{stepId:i,step:l,status:l.status,offsetPct:f,widthPct:p,durationMs:d,isRunning:c,isNestedEntry:K0s(i)}})}const nws=({status:e})=>o.jsxs(Ve,{children:[e==="success"&&o.jsx(Q0s,{className:"text-accent1"}),e==="failed"&&o.jsx(Y0s,{className:"text-accent2"}),e==="suspended"&&o.jsx(mV,{className:"text-accent3"}),e==="waiting"&&o.jsx(Ipe,{className:"text-accent5"}),e==="skipped"&&o.jsx(Ipe,{className:"text-icon3"}),e==="running"&&o.jsx(sa,{className:"text-accent6 animate-spin"})]}),rws={success:"bg-accent1",failed:"bg-accent2",suspended:"bg-accent3",waiting:"bg-accent5",skipped:"bg-border1",running:"bg-accent6"};function qVt(e){return e.split(/[-_.\s]+/).filter(Boolean).map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(" ")}const htt=e=>e&&typeof e=="object"&&!Array.isArray(e)?e:{value:e},sws=e=>{const t=e;return MLt({duration:t.duration,date:t.date,isForEach:t.isForEach,mapConfig:t.mapConfig,canSuspend:t.canSuspend,isParallel:t.isParallel,stepGraph:t.stepGraph})},aws=({row:e,index:t,isSelected:n,isHovered:r,onSelectStep:s,onHoverStep:a,onOpenInput:i,onOpenOutput:l})=>{const c=sws(e.step),u=e.status==="running",d=!e.isNestedEntry;return o.jsxs("div",{role:"button",tabIndex:0,"data-testid":"workflow-timeline-row","data-workflow-step-key":e.stepId,"data-workflow-step-active":n?"true":void 0,"data-workflow-step-hovered":r?"true":void 0,"data-workflow-step-nested":e.isNestedEntry?"true":void 0,"aria-pressed":n,"aria-disabled":!d,onMouseEnter:()=>{d&&a(e.stepId)},onMouseLeave:()=>{d&&a(null)},onClick:()=>{d&&s(e.stepId)},onKeyDown:f=>{!d||f.key!=="Enter"&&f.key!==" "||(f.preventDefault(),s(e.stepId))},className:K("grid grid-cols-[auto_auto_auto_minmax(0,10rem)_minmax(0,1fr)_auto_5rem] items-center gap-2 rounded-md border border-transparent px-2 py-1 text-left transition-colors focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-accent1",d&&"cursor-pointer",d&&"hover:bg-surface4",d&&r&&!n&&"border-neutral6 bg-surface4",d&&n&&"border-accent1",e.isNestedEntry&&"cursor-default opacity-55"),children:[o.jsx("div",{className:"flex justify-center",children:o.jsx(nws,{status:e.status})}),o.jsx("div",{className:"flex justify-center",children:o.jsx(oe,{type:"button",variant:"ghost",size:"icon-sm",tooltip:"View step input",disabled:u,className:"text-neutral3 hover:text-neutral6 disabled:cursor-not-allowed disabled:opacity-40",onClick:f=>{f.stopPropagation(),u||i(e)},children:o.jsx(YXt,{})})}),o.jsx("div",{className:"flex overflow-hidden",children:o.jsx(Vq,{indicators:c,className:"shrink-0"})}),o.jsx(ge,{as:"span",variant:"ui-sm",className:"text-neutral6 block max-w-full min-w-0 justify-self-stretch overflow-hidden text-left text-ellipsis whitespace-nowrap",children:qVt(e.stepId)}),o.jsx("div",{className:"bg-surface4 relative h-2 min-w-0 rounded",children:o.jsx("div",{"data-testid":"workflow-timeline-bar","data-offset":String(e.offsetPct),"data-width":String(e.widthPct),className:`absolute top-0 h-full rounded ${rws[e.status]}`,style:{left:`${e.offsetPct}%`,width:`${e.widthPct}%`}})}),o.jsx("div",{className:"flex justify-center",children:o.jsx(oe,{type:"button",variant:"ghost",size:"icon-sm",tooltip:"View step output",disabled:u,className:"text-neutral3 hover:text-neutral6 disabled:cursor-not-allowed disabled:opacity-40",onClick:f=>{f.stopPropagation(),u||l(e)},children:o.jsx(GXt,{})})}),o.jsx(ge,{as:"span",variant:"ui-sm",className:"text-neutral3 w-20 justify-self-end text-right tabular-nums",children:ews(e.durationMs)})]},`timeline-item-${e.stepId}-${t}`)};function iws(){const{steps:e}=X4(),{selectedStepId:t,hoverStepId:n,setSelectedStepId:r,setHoverStepId:s}=LH(),[a,i]=g.useState(()=>Date.now()),[l,c]=g.useState(!1),[u,d]=g.useState(null),f=g.useRef(null);Ibt(f,{enabled:!l});const p=tws(e,a),h=p.some(m=>m.isRunning);return g.useEffect(()=>{if(!h)return;const m=setInterval(()=>i(Date.now()),100);return()=>clearInterval(m)},[h]),g.useEffect(()=>{if(l||p.length===0)return;const m=f.current;m&&(m.scrollTop=m.scrollHeight)},[l,p.length]),p.length===0?null:o.jsxs(o.Fragment,{children:[o.jsx("div",{"data-testid":"workflow-timeline",className:"pointer-events-none absolute right-0 bottom-0 z-20 px-2 pb-2",style:{left:"var(--workflow-left-panel-width, 0px)"},children:o.jsxs("div",{className:"rounded-studio-panel border-border1/50 bg-surface3 pointer-events-auto flex max-h-64 w-full min-w-0 flex-col gap-3 overflow-hidden border p-4 shadow-lg",children:[o.jsxs("div",{className:"flex shrink-0 items-center justify-between gap-3",children:[o.jsx(ge,{as:"p",variant:"ui-md",className:"text-neutral3",children:"Timeline"}),o.jsx("button",{type:"button","aria-label":l?"Expand timeline":"Collapse timeline","aria-expanded":!l,onClick:()=>c(m=>!m),className:"text-neutral3 hover:bg-surface4 hover:text-neutral6 rounded-md p-1 transition-colors",children:o.jsx(ba,{className:K("h-4 w-4 transition-transform",l&&"-rotate-90")})})]}),!l&&o.jsx("div",{ref:f,"data-testid":"workflow-timeline-list",className:"flex min-h-0 flex-col gap-2 overflow-y-auto",children:p.map((m,v)=>o.jsx(aws,{row:m,index:v,isSelected:t===m.stepId,isHovered:n===m.stepId,onSelectStep:r,onHoverStep:s,onOpenInput:y=>d({type:"input",stepId:y.stepId,data:htt(y.step.input)}),onOpenOutput:y=>d({type:"output",stepId:y.stepId,data:htt(y.step.output)})},`timeline-item-${m.stepId}-${v}`))})]})}),o.jsx(gr,{open:!!u,onOpenChange:m=>!m&&d(null),children:u&&o.jsx(tCt,{data:u.data,title:`${qVt(u.stepId)} ${u.type==="input"?"input":"output"}`})})]})}const ows=({workflowId:e,workflow:t,isLoading:n})=>{const{stepDetail:r}=TW();return o.jsxs("div",{className:"flex h-full min-h-0",children:[o.jsx("div",{className:"flex h-full min-h-0 flex-1 flex-col",children:o.jsxs("div",{className:"relative min-h-0 flex-1 p-2 pb-0",children:[o.jsx(XLt,{workflowId:e,workflow:t,isLoading:n}),o.jsx(G0s,{}),o.jsx(iws,{})]})}),r&&o.jsx("div",{className:"border-border1 min-h-0 w-[420px] overflow-hidden border-l",children:o.jsx(q0s,{})})]})},mtt=()=>{const{workflowId:e}=wr(),{data:t,isLoading:n,error:r}=a4(e);return r&&ws(r)?o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Ys,{})}):r&&Ss(r)?o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(qs,{resource:"workflows"})}):o.jsx(YOe,{children:o.jsx(ows,{workflowId:e,workflow:t??void 0,isLoading:n})})};function lws(e,t){if(e==null)return{};var n,r,s=akt(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}function Qxe(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function cws(e){if(Array.isArray(e))return Qxe(e)}function uws(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function dws(e,t){if(e){if(typeof e=="string")return Qxe(e,t);var n={}.toString.call(e).slice(8,-1);return n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set"?Array.from(e):n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Qxe(e,t):void 0}}function fws(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
|
|
645
645
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Yxe(e){return cws(e)||uws(e)||dws(e)||fws()}function BD(e){"@babel/helpers - typeof";return BD=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},BD(e)}function pws(e,t){if(BD(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(BD(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function hws(e){var t=pws(e,"string");return BD(t)=="symbol"?t:t+""}function VVt(e,t,n){return(t=hws(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function gtt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,r)}return n}function NT(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?gtt(Object(n),!0).forEach(function(r){VVt(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):gtt(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function mws(e){var t=e.length;if(t===0||t===1)return e;if(t===2)return[e[0],e[1],"".concat(e[0],".").concat(e[1]),"".concat(e[1],".").concat(e[0])];if(t===3)return[e[0],e[1],e[2],"".concat(e[0],".").concat(e[1]),"".concat(e[0],".").concat(e[2]),"".concat(e[1],".").concat(e[0]),"".concat(e[1],".").concat(e[2]),"".concat(e[2],".").concat(e[0]),"".concat(e[2],".").concat(e[1]),"".concat(e[0],".").concat(e[1],".").concat(e[2]),"".concat(e[0],".").concat(e[2],".").concat(e[1]),"".concat(e[1],".").concat(e[0],".").concat(e[2]),"".concat(e[1],".").concat(e[2],".").concat(e[0]),"".concat(e[2],".").concat(e[0],".").concat(e[1]),"".concat(e[2],".").concat(e[1],".").concat(e[0])];if(t>=4)return[e[0],e[1],e[2],e[3],"".concat(e[0],".").concat(e[1]),"".concat(e[0],".").concat(e[2]),"".concat(e[0],".").concat(e[3]),"".concat(e[1],".").concat(e[0]),"".concat(e[1],".").concat(e[2]),"".concat(e[1],".").concat(e[3]),"".concat(e[2],".").concat(e[0]),"".concat(e[2],".").concat(e[1]),"".concat(e[2],".").concat(e[3]),"".concat(e[3],".").concat(e[0]),"".concat(e[3],".").concat(e[1]),"".concat(e[3],".").concat(e[2]),"".concat(e[0],".").concat(e[1],".").concat(e[2]),"".concat(e[0],".").concat(e[1],".").concat(e[3]),"".concat(e[0],".").concat(e[2],".").concat(e[1]),"".concat(e[0],".").concat(e[2],".").concat(e[3]),"".concat(e[0],".").concat(e[3],".").concat(e[1]),"".concat(e[0],".").concat(e[3],".").concat(e[2]),"".concat(e[1],".").concat(e[0],".").concat(e[2]),"".concat(e[1],".").concat(e[0],".").concat(e[3]),"".concat(e[1],".").concat(e[2],".").concat(e[0]),"".concat(e[1],".").concat(e[2],".").concat(e[3]),"".concat(e[1],".").concat(e[3],".").concat(e[0]),"".concat(e[1],".").concat(e[3],".").concat(e[2]),"".concat(e[2],".").concat(e[0],".").concat(e[1]),"".concat(e[2],".").concat(e[0],".").concat(e[3]),"".concat(e[2],".").concat(e[1],".").concat(e[0]),"".concat(e[2],".").concat(e[1],".").concat(e[3]),"".concat(e[2],".").concat(e[3],".").concat(e[0]),"".concat(e[2],".").concat(e[3],".").concat(e[1]),"".concat(e[3],".").concat(e[0],".").concat(e[1]),"".concat(e[3],".").concat(e[0],".").concat(e[2]),"".concat(e[3],".").concat(e[1],".").concat(e[0]),"".concat(e[3],".").concat(e[1],".").concat(e[2]),"".concat(e[3],".").concat(e[2],".").concat(e[0]),"".concat(e[3],".").concat(e[2],".").concat(e[1]),"".concat(e[0],".").concat(e[1],".").concat(e[2],".").concat(e[3]),"".concat(e[0],".").concat(e[1],".").concat(e[3],".").concat(e[2]),"".concat(e[0],".").concat(e[2],".").concat(e[1],".").concat(e[3]),"".concat(e[0],".").concat(e[2],".").concat(e[3],".").concat(e[1]),"".concat(e[0],".").concat(e[3],".").concat(e[1],".").concat(e[2]),"".concat(e[0],".").concat(e[3],".").concat(e[2],".").concat(e[1]),"".concat(e[1],".").concat(e[0],".").concat(e[2],".").concat(e[3]),"".concat(e[1],".").concat(e[0],".").concat(e[3],".").concat(e[2]),"".concat(e[1],".").concat(e[2],".").concat(e[0],".").concat(e[3]),"".concat(e[1],".").concat(e[2],".").concat(e[3],".").concat(e[0]),"".concat(e[1],".").concat(e[3],".").concat(e[0],".").concat(e[2]),"".concat(e[1],".").concat(e[3],".").concat(e[2],".").concat(e[0]),"".concat(e[2],".").concat(e[0],".").concat(e[1],".").concat(e[3]),"".concat(e[2],".").concat(e[0],".").concat(e[3],".").concat(e[1]),"".concat(e[2],".").concat(e[1],".").concat(e[0],".").concat(e[3]),"".concat(e[2],".").concat(e[1],".").concat(e[3],".").concat(e[0]),"".concat(e[2],".").concat(e[3],".").concat(e[0],".").concat(e[1]),"".concat(e[2],".").concat(e[3],".").concat(e[1],".").concat(e[0]),"".concat(e[3],".").concat(e[0],".").concat(e[1],".").concat(e[2]),"".concat(e[3],".").concat(e[0],".").concat(e[2],".").concat(e[1]),"".concat(e[3],".").concat(e[1],".").concat(e[0],".").concat(e[2]),"".concat(e[3],".").concat(e[1],".").concat(e[2],".").concat(e[0]),"".concat(e[3],".").concat(e[2],".").concat(e[0],".").concat(e[1]),"".concat(e[3],".").concat(e[2],".").concat(e[1],".").concat(e[0])]}var Uie={};function gws(e){if(e.length===0||e.length===1)return e;var t=e.join(".");return Uie[t]||(Uie[t]=mws(e)),Uie[t]}function vws(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0,r=e.filter(function(a){return a!=="token"}),s=gws(r);return s.reduce(function(a,i){return NT(NT({},a),n[i])},t)}function vtt(e){return e.join(" ")}function yws(e,t){var n=0;return function(r){return n+=1,r.map(function(s,a){return HVt({node:s,stylesheet:e,useInlineStyles:t,key:"code-segment-".concat(n,"-").concat(a)})})}}function HVt(e){var t=e.node,n=e.stylesheet,r=e.style,s=r===void 0?{}:r,a=e.useInlineStyles,i=e.key,l=t.properties,c=t.type,u=t.tagName,d=t.value;if(c==="text")return d;if(u){var f=yws(n,a),p;if(!a)p=NT(NT({},l),{},{className:vtt(l.className)});else{var h=Object.keys(n).reduce(function(b,x){return x.split(".").forEach(function(S){b.includes(S)||b.push(S)}),b},[]),m=l.className&&l.className.includes("token")?["token"]:[],v=l.className&&m.concat(l.className.filter(function(b){return!h.includes(b)}));p=NT(NT({},l),{},{className:vtt(v)||void 0,style:vws(l.className,Object.assign({},l.style,s),n)})}var y=f(t.children);return Fe.createElement(u,YO({key:i},p),y)}}const bws=(function(e,t){var n=e.listLanguages();return n.indexOf(t)!==-1});var xws=["language","children","style","customStyle","codeTagProps","useInlineStyles","showLineNumbers","showInlineLineNumbers","startingLineNumber","lineNumberContainerStyle","lineNumberStyle","wrapLines","wrapLongLines","lineProps","renderer","PreTag","CodeTag","code","astGenerator"];function ytt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,r)}return n}function qw(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?ytt(Object(n),!0).forEach(function(r){VVt(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ytt(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}var wws=/\n/g;function Sws(e){return e.match(wws)}function kws(e){var t=e.lines,n=e.startingLineNumber,r=e.style;return t.map(function(s,a){var i=a+n;return Fe.createElement("span",{key:"line-".concat(a),className:"react-syntax-highlighter-line-number",style:typeof r=="function"?r(i):r},"".concat(i,`
|
|
646
646
|
`))})}function Ows(e){var t=e.codeString,n=e.codeStyle,r=e.containerStyle,s=r===void 0?{float:"left",paddingRight:"10px"}:r,a=e.numberStyle,i=a===void 0?{}:a,l=e.startingLineNumber;return Fe.createElement("code",{style:Object.assign({},n,s)},kws({lines:t.replace(/\n$/,"").split(`
|
|
647
647
|
`),style:i,startingLineNumber:l}))}function _ws(e){return"".concat(e.toString().length,".25em")}function WVt(e,t){return{type:"element",tagName:"span",properties:{key:"line-number--".concat(e),className:["comment","linenumber","react-syntax-highlighter-line-number"],style:t},children:[{type:"text",value:e}]}}function ZVt(e,t,n){var r={display:"inline-block",minWidth:_ws(n),paddingRight:"1em",textAlign:"right",userSelect:"none"},s=typeof e=="function"?e(t):e,a=qw(qw({},r),s);return a}function E9(e){var t=e.children,n=e.lineNumber,r=e.lineNumberStyle,s=e.largestLineNumber,a=e.showInlineLineNumbers,i=e.lineProps,l=i===void 0?{}:i,c=e.className,u=c===void 0?[]:c,d=e.showLineNumbers,f=e.wrapLongLines,p=e.wrapLines,h=p===void 0?!1:p,m=h?qw({},typeof l=="function"?l(n):l):{};if(m.className=m.className?[].concat(Yxe(m.className.trim().split(/\s+/)),Yxe(u)):u,n&&a){var v=ZVt(r,n,s);t.unshift(WVt(n,v))}return f&d&&(m.style=qw({display:"flex"},m.style)),{type:"element",tagName:"span",properties:m,children:t}}function GVt(e){for(var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[],r=0;r<e.length;r++){var s=e[r];if(s.type==="text")n.push(E9({children:[s],className:Yxe(new Set(t))}));else if(s.children){var a=t.concat(s.properties.className);GVt(s.children,a).forEach(function(i){return n.push(i)})}}return n}function Cws(e,t,n,r,s,a,i,l,c){var u,d=GVt(e.value),f=[],p=-1,h=0;function m(_,C){var T=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[];return E9({children:_,lineNumber:C,lineNumberStyle:l,largestLineNumber:i,showInlineLineNumbers:s,lineProps:n,className:T,showLineNumbers:r,wrapLongLines:c,wrapLines:t})}function v(_,C){if(r&&C&&s){var T=ZVt(l,C,i);_.unshift(WVt(C,T))}return _}function y(_,C){var T=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[];return t||T.length>0?m(_,C,T):v(_,C)}for(var b=function(){var C=d[h],T=C.children[0].value,E=Sws(T);if(E){var N=T.split(`
|