@mastra/deployer-cloud 1.51.0-alpha.8 → 1.51.0-alpha.9
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 +8 -0
- package/dist/studio/assets/{core-g551FJEo.js → core-C2MMfFjv.js} +1 -1
- package/dist/studio/assets/{index-InEURcK6.js → index-zoaK3xyk.js} +2 -2
- package/dist/studio/assets/{main-CPtdepE2.js → main-csjBuNTU.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-C2MMfFjv.js","./engine-compile-BkERmzkH.js","./preload-helper-PPVm8Dsz.js","./engine-javascript-CSIo_1eZ.js"])))=>i.map(i=>d[i]);
|
|
2
2
|
import{_ as uo}from"./preload-helper-PPVm8Dsz.js";function QBt(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 Vj=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Tc(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var CY={exports:{}},yA={};var KRe;function YBt(){if(KRe)return yA;KRe=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 yA.Fragment=t,yA.jsx=n,yA.jsxs=n,yA}var JRe;function XBt(){return JRe||(JRe=1,CY.exports=YBt()),CY.exports}var o=XBt(),EY={exports:{}},qr={},e2e;function KBt(){if(e2e)return qr;e2e=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 S(U,$,F){this.props=U,this.context=$,this.refs=b,this.updater=F||v}S.prototype.isReactComponent={},S.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")},S.prototype.forceUpdate=function(U){this.updater.enqueueForceUpdate(this,U,"forceUpdate")};function w(){}w.prototype=S.prototype;function k(U,$,F){this.props=U,this.context=$,this.refs=b,this.updater=F||v}var _=k.prototype=new w;_.constructor=k,y(_,S.prototype),_.isPureReactComponent=!0;var C=Array.isArray;function E(){}var j={H:null,A:null,T:null,S:null},T=Object.prototype.hasOwnProperty;function I(U,$,F){var Z=F.ref;return{$$typeof:t,type:U,key:$,ref:Z!==void 0?Z:null,props:F}}function A(U,$){return I(U.type,$,U.props)}function P(U){return typeof U=="object"&&U!==null&&U.$$typeof===t}function L(U){var $={"=":"=0",":":"=2"};return"$"+U.replace(/[=:]/g,function(F){return $[F]})}var D=/\/+/g;function q(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(E,E):(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 z(U,$,F,Z,X){var te=typeof U;(te==="undefined"||te==="boolean")&&(U=null);var ee=!1;if(U===null)ee=!0;else switch(te){case"bigint":case"string":case"number":ee=!0;break;case"object":switch(U.$$typeof){case t:case n:ee=!0;break;case f:return ee=U._init,z(ee(U._payload),$,F,Z,X)}}if(ee)return X=X(U),ee=Z===""?"."+q(U,0):Z,C(X)?(F="",ee!=null&&(F=ee.replace(D,"$&/")+"/"),z(X,$,F,"",function(pe){return pe})):X!=null&&(P(X)&&(X=A(X,F+(X.key==null||U&&U.key===X.key?"":(""+X.key).replace(D,"$&/")+"/")+ee)),$.push(X)),1;ee=0;var J=Z===""?".":Z+":";if(C(U))for(var ae=0;ae<U.length;ae++)Z=U[ae],te=J+q(Z,ae),ee+=z(Z,$,F,te,X);else if(ae=m(U),typeof ae=="function")for(U=ae.call(U),ae=0;!(Z=U.next()).done;)Z=Z.value,te=J+q(Z,ae++),ee+=z(Z,$,F,te,X);else if(te==="object"){if(typeof U.then=="function")return z(H(U),$,F,Z,X);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 ee}function B(U,$,F){if(U==null)return U;var Z=[],X=0;return z(U,Z,"","",function(te){return $.call(F,te,X++)}),Z}function V(U){if(U._status===-1){var $=U._result;$=$(),$.then(function(F){(U._status===0||U._status===-1)&&(U._status=1,U._result=F)},function(F){(U._status===0||U._status===-1)&&(U._status=2,U._result=F)}),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)},Q={map:B,forEach:function(U,$,F){B(U,function(){$.apply(this,arguments)},F)},count:function(U){var $=0;return B(U,function(){$++}),$},toArray:function(U){return B(U,function($){return $})||[]},only:function(U){if(!P(U))throw Error("React.Children.only expected to receive a single React element child.");return U}};return qr.Activity=p,qr.Children=Q,qr.Component=S,qr.Fragment=r,qr.Profiler=a,qr.PureComponent=k,qr.StrictMode=s,qr.Suspense=u,qr.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=j,qr.__COMPILER_RUNTIME={__proto__:null,c:function(U){return j.H.useMemoCache(U)}},qr.cache=function(U){return function(){return U.apply(null,arguments)}},qr.cacheSignal=function(){return null},qr.cloneElement=function(U,$,F){if(U==null)throw Error("The argument must be a React element, but you passed "+U+".");var Z=y({},U.props),X=U.key;if($!=null)for(te in $.key!==void 0&&(X=""+$.key),$)!T.call($,te)||te==="key"||te==="__self"||te==="__source"||te==="ref"&&$.ref===void 0||(Z[te]=$[te]);var te=arguments.length-2;if(te===1)Z.children=F;else if(1<te){for(var ee=Array(te),J=0;J<te;J++)ee[J]=arguments[J+2];Z.children=ee}return I(U.type,X,Z)},qr.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},qr.createElement=function(U,$,F){var Z,X={},te=null;if($!=null)for(Z in $.key!==void 0&&(te=""+$.key),$)T.call($,Z)&&Z!=="key"&&Z!=="__self"&&Z!=="__source"&&(X[Z]=$[Z]);var ee=arguments.length-2;if(ee===1)X.children=F;else if(1<ee){for(var J=Array(ee),ae=0;ae<ee;ae++)J[ae]=arguments[ae+2];X.children=J}if(U&&U.defaultProps)for(Z in ee=U.defaultProps,ee)X[Z]===void 0&&(X[Z]=ee[Z]);return I(U,te,X)},qr.createRef=function(){return{current:null}},qr.forwardRef=function(U){return{$$typeof:c,render:U}},qr.isValidElement=P,qr.lazy=function(U){return{$$typeof:f,_payload:{_status:-1,_result:U},_init:V}},qr.memo=function(U,$){return{$$typeof:d,type:U,compare:$===void 0?null:$}},qr.startTransition=function(U){var $=j.T,F={};j.T=F;try{var Z=U(),X=j.S;X!==null&&X(F,Z),typeof Z=="object"&&Z!==null&&typeof Z.then=="function"&&Z.then(E,M)}catch(te){M(te)}finally{$!==null&&F.types!==null&&($.types=F.types),j.T=$}},qr.unstable_useCacheRefresh=function(){return j.H.useCacheRefresh()},qr.use=function(U){return j.H.use(U)},qr.useActionState=function(U,$,F){return j.H.useActionState(U,$,F)},qr.useCallback=function(U,$){return j.H.useCallback(U,$)},qr.useContext=function(U){return j.H.useContext(U)},qr.useDebugValue=function(){},qr.useDeferredValue=function(U,$){return j.H.useDeferredValue(U,$)},qr.useEffect=function(U,$){return j.H.useEffect(U,$)},qr.useEffectEvent=function(U){return j.H.useEffectEvent(U)},qr.useId=function(){return j.H.useId()},qr.useImperativeHandle=function(U,$,F){return j.H.useImperativeHandle(U,$,F)},qr.useInsertionEffect=function(U,$){return j.H.useInsertionEffect(U,$)},qr.useLayoutEffect=function(U,$){return j.H.useLayoutEffect(U,$)},qr.useMemo=function(U,$){return j.H.useMemo(U,$)},qr.useOptimistic=function(U,$){return j.H.useOptimistic(U,$)},qr.useReducer=function(U,$,F){return j.H.useReducer(U,$,F)},qr.useRef=function(U){return j.H.useRef(U)},qr.useState=function(U){return j.H.useState(U)},qr.useSyncExternalStore=function(U,$,F){return j.H.useSyncExternalStore(U,$,F)},qr.useTransition=function(){return j.H.useTransition()},qr.version="19.2.7",qr}var t2e;function gN(){return t2e||(t2e=1,EY.exports=KBt()),EY.exports}var g=gN();const Le=Tc(g),a_=QBt({__proto__:null,default:Le},[g]);var jY={exports:{}},bA={},TY={exports:{}},NY={};var n2e;function JBt(){return n2e||(n2e=1,(function(e){function t(H,z){var B=H.length;H.push(z);e:for(;0<B;){var V=B-1>>>1,M=H[V];if(0<s(M,z))H[V]=z,H[B]=M,B=V;else break e}}function n(H){return H.length===0?null:H[0]}function r(H){if(H.length===0)return null;var z=H[0],B=H.pop();if(B!==z){H[0]=B;e:for(var V=0,M=H.length,Q=M>>>1;V<Q;){var U=2*(V+1)-1,$=H[U],F=U+1,Z=H[F];if(0>s($,B))F<M&&0>s(Z,$)?(H[V]=Z,H[F]=B,V=F):(H[V]=$,H[U]=B,V=U);else if(F<M&&0>s(Z,B))H[V]=Z,H[F]=B,V=F;else break e}}return z}function s(H,z){var B=H.sortIndex-z.sortIndex;return B!==0?B:H.id-z.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,S=typeof clearTimeout=="function"?clearTimeout:null,w=typeof setImmediate<"u"?setImmediate:null;function k(H){for(var z=n(u);z!==null;){if(z.callback===null)r(u);else if(z.startTime<=H)r(u),z.sortIndex=z.expirationTime,t(c,z);else break;z=n(u)}}function _(H){if(v=!1,k(H),!m)if(n(c)!==null)m=!0,C||(C=!0,P());else{var z=n(u);z!==null&&q(_,z.startTime-H)}}var C=!1,E=-1,j=5,T=-1;function I(){return y?!0:!(e.unstable_now()-T<j)}function A(){if(y=!1,C){var H=e.unstable_now();T=H;var z=!0;try{e:{m=!1,v&&(v=!1,S(E),E=-1),h=!0;var B=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),z=!0;break t}f===n(c)&&r(c),k(H)}else r(c);f=n(c)}if(f!==null)z=!0;else{var Q=n(u);Q!==null&&q(_,Q.startTime-H),z=!1}}break e}finally{f=null,p=B,h=!1}z=void 0}}finally{z?P():C=!1}}}var P;if(typeof w=="function")P=function(){w(A)};else if(typeof MessageChannel<"u"){var L=new MessageChannel,D=L.port2;L.port1.onmessage=A,P=function(){D.postMessage(null)}}else P=function(){b(A,0)};function q(H,z){E=b(function(){H(e.unstable_now())},z)}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"):j=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 z=3;break;default:z=p}var B=p;p=z;try{return H()}finally{p=B}},e.unstable_requestPaint=function(){y=!0},e.unstable_runWithPriority=function(H,z){switch(H){case 1:case 2:case 3:case 4:case 5:break;default:H=3}var B=p;p=H;try{return z()}finally{p=B}},e.unstable_scheduleCallback=function(H,z,B){var V=e.unstable_now();switch(typeof B=="object"&&B!==null?(B=B.delay,B=typeof B=="number"&&0<B?V+B:V):B=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=B+M,H={id:d++,callback:z,priorityLevel:H,startTime:B,expirationTime:M,sortIndex:-1},B>V?(H.sortIndex=B,t(u,H),n(c)===null&&H===n(u)&&(v?(S(E),E=-1):v=!0,q(_,B-V))):(H.sortIndex=M,t(c,H),m||h||(m=!0,C||(C=!0,P()))),H},e.unstable_shouldYield=I,e.unstable_wrapCallback=function(H){var z=p;return function(){var B=p;p=z;try{return H.apply(this,arguments)}finally{p=B}}}})(NY)),NY}var r2e;function eUt(){return r2e||(r2e=1,TY.exports=JBt()),TY.exports}var IY={exports:{}},bu={};var s2e;function tUt(){if(s2e)return bu;s2e=1;var e=gN();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 bu.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=r,bu.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)},bu.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()}},bu.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))},bu.prefetchDNS=function(c){typeof c=="string"&&r.d.D(c)},bu.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})}},bu.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)},bu.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})}},bu.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)},bu.requestFormReset=function(c){r.d.r(c)},bu.unstable_batchedUpdates=function(c,u){return c(u)},bu.useFormState=function(c,u,d){return i.H.useFormState(c,u,d)},bu.useFormStatus=function(){return i.H.useHostTransitionStatus()},bu.version="19.2.7",bu}var a2e;function ast(){if(a2e)return IY.exports;a2e=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(),IY.exports=tUt(),IY.exports}var i2e;function nUt(){if(i2e)return bA;i2e=1;var e={env:{}};var t=eUt(),n=gN(),r=ast();function s(x){var O="https://react.dev/errors/"+x;if(1<arguments.length){O+="?args[]="+encodeURIComponent(arguments[1]);for(var N=2;N<arguments.length;N++)O+="&args[]="+encodeURIComponent(arguments[N])}return"Minified React error #"+x+"; visit "+O+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function a(x){return!(!x||x.nodeType!==1&&x.nodeType!==9&&x.nodeType!==11)}function i(x){var O=x,N=x;if(x.alternate)for(;O.return;)O=O.return;else{x=O;do O=x,(O.flags&4098)!==0&&(N=O.return),x=O.return;while(x)}return O.tag===3?N:null}function l(x){if(x.tag===13){var O=x.memoizedState;if(O===null&&(x=x.alternate,x!==null&&(O=x.memoizedState)),O!==null)return O.dehydrated}return null}function c(x){if(x.tag===31){var O=x.memoizedState;if(O===null&&(x=x.alternate,x!==null&&(O=x.memoizedState)),O!==null)return O.dehydrated}return null}function u(x){if(i(x)!==x)throw Error(s(188))}function d(x){var O=x.alternate;if(!O){if(O=i(x),O===null)throw Error(s(188));return O!==x?null:x}for(var N=x,R=O;;){var W=N.return;if(W===null)break;var G=W.alternate;if(G===null){if(R=W.return,R!==null){N=R;continue}break}if(W.child===G.child){for(G=W.child;G;){if(G===N)return u(W),x;if(G===R)return u(W),O;G=G.sibling}throw Error(s(188))}if(N.return!==R.return)N=W,R=G;else{for(var ie=!1,Se=W.child;Se;){if(Se===N){ie=!0,N=W,R=G;break}if(Se===R){ie=!0,R=W,N=G;break}Se=Se.sibling}if(!ie){for(Se=G.child;Se;){if(Se===N){ie=!0,N=G,R=W;break}if(Se===R){ie=!0,R=G,N=W;break}Se=Se.sibling}if(!ie)throw Error(s(189))}}if(N.alternate!==R)throw Error(s(190))}if(N.tag!==3)throw Error(s(188));return N.stateNode.current===N?x:O}function f(x){var O=x.tag;if(O===5||O===26||O===27||O===6)return x;for(x=x.child;x!==null;){if(O=f(x),O!==null)return O;x=x.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"),S=Symbol.for("react.profiler"),w=Symbol.for("react.consumer"),k=Symbol.for("react.context"),_=Symbol.for("react.forward_ref"),C=Symbol.for("react.suspense"),E=Symbol.for("react.suspense_list"),j=Symbol.for("react.memo"),T=Symbol.for("react.lazy"),I=Symbol.for("react.activity"),A=Symbol.for("react.memo_cache_sentinel"),P=Symbol.iterator;function L(x){return x===null||typeof x!="object"?null:(x=P&&x[P]||x["@@iterator"],typeof x=="function"?x:null)}var D=Symbol.for("react.client.reference");function q(x){if(x==null)return null;if(typeof x=="function")return x.$$typeof===D?null:x.displayName||x.name||null;if(typeof x=="string")return x;switch(x){case y:return"Fragment";case S:return"Profiler";case b:return"StrictMode";case C:return"Suspense";case E:return"SuspenseList";case I:return"Activity"}if(typeof x=="object")switch(x.$$typeof){case v:return"Portal";case k:return x.displayName||"Context";case w:return(x._context.displayName||"Context")+".Consumer";case _:var O=x.render;return x=x.displayName,x||(x=O.displayName||O.name||"",x=x!==""?"ForwardRef("+x+")":"ForwardRef"),x;case j:return O=x.displayName||null,O!==null?O:q(x.type)||"Memo";case T:O=x._payload,x=x._init;try{return q(x(O))}catch{}}return null}var H=Array.isArray,z=n.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,B=r.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,V={pending:!1,data:null,method:null,action:null},M=[],Q=-1;function U(x){return{current:x}}function $(x){0>Q||(x.current=M[Q],M[Q]=null,Q--)}function F(x,O){Q++,M[Q]=x.current,x.current=O}var Z=U(null),X=U(null),te=U(null),ee=U(null);function J(x,O){switch(F(te,O),F(X,x),F(Z,null),O.nodeType){case 9:case 11:x=(x=O.documentElement)&&(x=x.namespaceURI)?wRe(x):0;break;default:if(x=O.tagName,O=O.namespaceURI)O=wRe(O),x=SRe(O,x);else switch(x){case"svg":x=1;break;case"math":x=2;break;default:x=0}}$(Z),F(Z,x)}function ae(){$(Z),$(X),$(te)}function pe(x){x.memoizedState!==null&&F(ee,x);var O=Z.current,N=SRe(O,x.type);O!==N&&(F(X,x),F(Z,N))}function Y(x){X.current===x&&($(Z),$(X)),ee.current===x&&($(ee),hA._currentValue=V)}var ne,ue;function fe(x){if(ne===void 0)try{throw Error()}catch(N){var O=N.stack.trim().match(/\n( *(at )?)/);ne=O&&O[1]||"",ue=-1<N.stack.indexOf(`
|
|
3
3
|
at`)?" (<anonymous>)":-1<N.stack.indexOf("@")?"@unknown:0:0":""}return`
|
|
4
4
|
`+ne+x+ue}var oe=!1;function me(x,O){if(!x||oe)return"";oe=!0;var N=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var R={DetermineComponentFrameRoot:function(){try{if(O){var Et=function(){throw Error()};if(Object.defineProperty(Et.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(Et,[])}catch(pt){var ct=pt}Reflect.construct(x,[],Et)}else{try{Et.call()}catch(pt){ct=pt}x.call(Et.prototype)}}else{try{throw Error()}catch(pt){ct=pt}(Et=x())&&typeof Et.catch=="function"&&Et.catch(function(){})}}catch(pt){if(pt&&ct&&typeof pt.stack=="string")return[pt.stack,ct.stack]}return[null,null]}};R.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var W=Object.getOwnPropertyDescriptor(R.DetermineComponentFrameRoot,"name");W&&W.configurable&&Object.defineProperty(R.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var G=R.DetermineComponentFrameRoot(),ie=G[0],Se=G[1];if(ie&&Se){var Be=ie.split(`
|
|
@@ -333,7 +333,7 @@ attempted value: ${i}
|
|
|
333
333
|
\${}
|
|
334
334
|
}
|
|
335
335
|
}`,{label:"class",detail:"definition",type:"keyword"}),Wd('import {${names}} from "${module}"\n${}',{label:"import",detail:"named",type:"keyword"}),Wd('import ${name} from "${module}"\n${}',{label:"import",detail:"default",type:"keyword"})],uxt=m1e.concat([Wd("interface ${name} {\n ${}\n}",{label:"interface",detail:"definition",type:"keyword"}),Wd("type ${name} = ${type}",{label:"type",detail:"definition",type:"keyword"}),Wd("enum ${name} {\n ${}\n}",{label:"enum",detail:"definition",type:"keyword"})]),P6e=new hvt,dxt=new Set(["Script","Block","FunctionExpression","FunctionDeclaration","ArrowFunction","MethodDeclaration","ForStatement"]);function WA(e){return(t,n)=>{let r=t.node.getChild("VariableDefinition");return r&&n(r,e),!0}}const xFn=["FunctionDeclaration"],wFn={FunctionDeclaration:WA("function"),ClassDeclaration:WA("class"),ClassExpression:()=>!0,EnumDeclaration:WA("constant"),TypeAliasDeclaration:WA("type"),NamespaceDeclaration:WA("namespace"),VariableDefinition(e,t){e.matchContext(xFn)||t(e,"variable")},TypeDefinition(e,t){t(e,"type")},__proto__:null};function fxt(e,t){let n=P6e.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(Ba.IncludeAnonymous).iterate(i=>{if(s)s=!1;else if(i.name){let l=wFn[i.name];if(l&&l(i,a)||dxt.has(i.name))return!1}else if(i.to-i.from>8192){for(let l of fxt(e,i.node))r.push(l);return!1}}),P6e.set(t,r),r}const j7=/^[\w$\xa1-\uffff][\w$\d\xa1-\uffff]*$/,g1e=["TemplateString","String","RegExp","LineComment","BlockComment","VariableDefinition","TypeDefinition","Label","PropertyDefinition","PropertyName","PrivatePropertyDefinition","PrivatePropertyName","JSXText","JSXAttributeValue","JSXOpenTag","JSXCloseTag","JSXSelfClosingTag",".","?."];function pxt(e){let t=hi(e.state).resolveInner(e.pos,-1);if(g1e.indexOf(t.name)>-1)return null;let n=t.name=="VariableName"||t.to-t.from<20&&j7.test(e.state.sliceDoc(t.from,t.to));if(!n&&!e.explicit)return null;let r=[];for(let s=t;s;s=s.parent)dxt.has(s.name)&&(r=r.concat(fxt(e.state.doc,s)));return{options:r,from:n?t.from:e.pos,validFor:j7}}function tJ(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 hxt(e){let t=r=>e.state.doc.sliceString(r.from,r.to),n=hi(e.state).resolveInner(e.pos,-1);return n.name=="PropertyName"?tJ(t,n.parent,t(n)):(n.name=="."||n.name=="?.")&&n.parent.name=="MemberExpression"?tJ(t,n.parent,""):g1e.indexOf(n.name)>-1?null:n.name=="VariableName"||n.to-n.from<20&&j7.test(t(n))?{path:[],name:t(n)}:n.name=="MemberExpression"?tJ(t,n,""):e.explicit?{path:[],name:""}:null}function SFn(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 kFn(e){let t=new Map;return n=>{let r=hxt(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=SFn(s,!r.path.length)),{from:n.pos-r.name.length,options:a,validFor:j7}}}const Zh=CO.define({name:"javascript",parser:bFn.configure({props:[I_.add({IfStatement:_j({except:/^\s*({|else\b)/}),TryStatement:_j({except:/^\s*({|catch\b|finally\b)/}),LabeledStatement:vLn,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:gLn({closing:"}"}),ArrowFunction:e=>e.baseIndent+e.unit,"TemplateString BlockComment":()=>null,"Statement Property":_j({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}}),A_.add({"Block ClassBody SwitchBody EnumBody ObjectExpression ArrayExpression ObjectType":Qwe,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:"$"}}),mxt={test:e=>/^JSX/.test(e.name),facet:IV({commentTokens:{block:{open:"{/*",close:"*/}"}}})},v1e=Zh.configure({dialect:"ts"},"typescript"),y1e=Zh.configure({dialect:"jsx",props:[Wwe.add(e=>e.isTop?[mxt]:void 0)]}),b1e=Zh.configure({dialect:"jsx ts",props:[Wwe.add(e=>e.isTop?[mxt]:void 0)]},"typescript");let gxt=e=>({label:e,type:"keyword"});const vxt="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(gxt),OFn=vxt.concat(["declare","implements","private","protected","public"].map(gxt));function T7(e={}){let t=e.jsx?e.typescript?b1e:y1e:e.typescript?v1e:Zh,n=e.typescript?uxt.concat(OFn):m1e.concat(vxt);return new jO(t,[Zh.data.of({autocomplete:n6n(g1e,mbt(n))}),Zh.data.of({autocomplete:pxt}),e.jsx?yxt:[]])}function _Fn(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 $6e(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 CFn=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent),yxt=Tt.inputHandler.of((e,t,n,r,s)=>{if((CFn?e.composing:e.compositionStarted)||e.state.readOnly||t!=n||r!=">"&&r!="/"||!Zh.isActiveAt(e.state,t,-1))return!1;let a=s(),{state:i}=a,l=i.changeByRange(c=>{var u;let{head:d}=c,f=hi(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=$6e(i.doc,m.firstChild,d))||((u=m.firstChild)===null||u===void 0?void 0:u.name)=="JSXFragmentTag")){let v=`${p}>`;return{range:vt.cursor(d+v.length,-1),changes:{from:d,insert:v}}}}else if(r==">"){let h=_Fn(f);if(h&&h.name=="JSXOpenTag"&&!/^\/?>|^<\//.test(i.doc.sliceString(d,d+2))&&(p=$6e(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 EFn(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 Zh.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(jFn(u,r.doc,c))}return s}}function M6e(e,t,n,r){return n.line(e+r.line).from+t+(e==1?r.col-1:-1)}function jFn(e,t,n){let r=M6e(e.line,e.column,t,n),s={from:r,to:e.endLine!=null&&e.endColumn!=1?M6e(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 S6=Object.freeze(Object.defineProperty({__proto__:null,autoCloseTags:yxt,completionPath:hxt,esLint:EFn,javascript:T7,javascriptLanguage:Zh,jsxLanguage:y1e,localCompletionSource:pxt,scopeCompletionSource:kFn,snippets:m1e,tsxLanguage:b1e,typescriptLanguage:v1e,typescriptSnippets:uxt},Symbol.toStringTag,{value:"Module"})),ZA=["_blank","_self","_top","_parent"],nJ=["ascii","utf-8","utf-16","latin1","latin1"],rJ=["get","post","put","delete"],sJ=["application/x-www-form-urlencoded","multipart/form-data","text/plain"],Yf=["true","false"],er={},TFn={a:{attrs:{href:null,ping:null,type:null,media:null,target:ZA,hreflang:null}},abbr:er,address:er,area:{attrs:{alt:null,coords:null,href:null,target:null,ping:null,media:null,hreflang:null,type:null,shape:["default","rect","circle","poly"]}},article:er,aside:er,audio:{attrs:{src:null,mediagroup:null,crossorigin:["anonymous","use-credentials"],preload:["none","metadata","auto"],autoplay:["autoplay"],loop:["loop"],controls:["controls"]}},b:er,base:{attrs:{href:null,target:ZA}},bdi:er,bdo:er,blockquote:{attrs:{cite:null}},body:er,br:er,button:{attrs:{form:null,formaction:null,name:null,value:null,autofocus:["autofocus"],disabled:["autofocus"],formenctype:sJ,formmethod:rJ,formnovalidate:["novalidate"],formtarget:ZA,type:["submit","reset","button"]}},canvas:{attrs:{width:null,height:null}},caption:er,center:er,cite:er,code:er,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:er,del:{attrs:{cite:null,datetime:null}},details:{attrs:{open:["open"]}},dfn:er,div:er,dl:er,dt:er,em:er,embed:{attrs:{src:null,type:null,width:null,height:null}},eventsource:{attrs:{src:null}},fieldset:{attrs:{disabled:["disabled"],form:null,name:null}},figcaption:er,figure:er,footer:er,form:{attrs:{action:null,name:null,"accept-charset":nJ,autocomplete:["on","off"],enctype:sJ,method:rJ,novalidate:["novalidate"],target:ZA}},h1:er,h2:er,h3:er,h4:er,h5:er,h6:er,head:{children:["title","base","link","style","meta","script","noscript","command"]},header:er,hgroup:er,hr:er,html:{attrs:{manifest:null}},i:er,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:sJ,formmethod:rJ,formnovalidate:["novalidate"],formtarget:ZA,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:er,keygen:{attrs:{challenge:null,form:null,name:null,autofocus:["autofocus"],disabled:["disabled"],keytype:["RSA"]}},label:{attrs:{for:null,form:null}},legend:er,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:er,menu:{attrs:{label:null,type:["list","context","toolbar"]}},meta:{attrs:{content:null,charset:nJ,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:er,noscript:er,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:er,param:{attrs:{name:null,value:null}},pre:er,progress:{attrs:{value:null,max:null}},q:{attrs:{cite:null}},rp:er,rt:er,ruby:er,samp:er,script:{attrs:{type:["text/javascript"],src:null,async:["async"],defer:["defer"],charset:nJ}},section:er,select:{attrs:{form:null,name:null,size:null,autofocus:["autofocus"],disabled:["disabled"],multiple:["multiple"]}},slot:{attrs:{name:null}},small:er,source:{attrs:{src:null,type:null,media:null}},span:er,strong:er,style:{attrs:{type:["text/css"],media:null,scoped:null}},sub:er,summary:er,sup:er,table:er,tbody:er,td:{attrs:{colspan:null,rowspan:null,headers:null}},template:er,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:er,th:{attrs:{colspan:null,rowspan:null,headers:null,scope:["row","col","rowgroup","colgroup"]}},thead:er,time:{attrs:{datetime:null}},title:er,tr:er,track:{attrs:{src:null,label:null,default:null,kind:["subtitles","captions","descriptions","chapters","metadata"],srclang:null}},ul:{children:["li","script","template","ul","ol"]},var:er,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:er},bxt={accesskey:null,class:null,contenteditable:Yf,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:Yf,autocorrect:Yf,autocapitalize:Yf,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":Yf,"aria-autocomplete":["inline","list","both","none"],"aria-busy":Yf,"aria-checked":["true","false","mixed","undefined"],"aria-controls":null,"aria-describedby":null,"aria-disabled":Yf,"aria-dropeffect":null,"aria-expanded":["true","false","undefined"],"aria-flowto":null,"aria-grabbed":["true","false","undefined"],"aria-haspopup":Yf,"aria-hidden":Yf,"aria-invalid":["true","false","grammar","spelling"],"aria-label":null,"aria-labelledby":null,"aria-level":null,"aria-live":["off","polite","assertive"],"aria-multiline":Yf,"aria-multiselectable":Yf,"aria-owns":null,"aria-posinset":null,"aria-pressed":["true","false","mixed","undefined"],"aria-readonly":Yf,"aria-relevant":null,"aria-required":Yf,"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},xxt="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 xxt)bxt[e]=null;class J${constructor(t,n){this.tags={...TFn,...t},this.globalAttrs={...bxt,...n},this.allTags=Object.keys(this.tags),this.globalAttrNames=Object.keys(this.globalAttrs)}}J$.default=new J$;function bT(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 xT(e,t=!1){for(;e;e=e.parent)if(e.name=="Element")if(t)t=!1;else return e;return null}function wxt(e,t,n){let r=n.tags[bT(e,xT(t))];return r?.children||n.allTags}function x1e(e,t){let n=[];for(let r=xT(t);r&&!r.type.isTop;r=xT(r.parent)){let s=bT(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 Sxt=/^[:\-\.\w\u00b7-\uffff]*$/;function D6e(e,t,n,r,s){let a=/\s*>/.test(e.sliceDoc(s,s+5))?"":">",i=xT(n,n.name=="StartTag"||n.name=="TagName");return{from:r,to:s,options:wxt(e.doc,i,t).map(l=>({label:l,type:"type"})).concat(x1e(e.doc,n).map((l,c)=>({label:"/"+l,apply:"/"+l+a,type:"type",boost:99-c}))),validFor:/^\/?[:\-\.\w\u00b7-\uffff]*$/}}function L6e(e,t,n,r){let s=/\s*>/.test(e.sliceDoc(r,r+5))?"":">";return{from:n,to:r,options:x1e(e.doc,t).map((a,i)=>({label:a,apply:a+s,type:"type",boost:99-i})),validFor:Sxt}}function NFn(e,t,n,r){let s=[],a=0;for(let i of wxt(e.doc,n,t))s.push({label:"<"+i,type:"type"});for(let i of x1e(e.doc,n))s.push({label:"</"+i+">",type:"type",boost:99-a++});return{from:r,to:r,options:s,validFor:/^<\/?[:\-\.\w\u00b7-\uffff]*$/}}function IFn(e,t,n,r,s){let a=xT(n),i=a?t.tags[bT(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:Sxt}}function AFn(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=xT(n),p=f?t.tags[bT(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 kxt(e,t){let{state:n,pos:r}=t,s=hi(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)?L6e(n,s,s.from,r):D6e(n,e,s,s.from,r):s.name=="StartTag"||s.name=="IncompleteTag"?D6e(n,e,s,r,r):s.name=="StartCloseTag"||s.name=="IncompleteCloseTag"?L6e(n,s,r,r):s.name=="OpenTag"||s.name=="SelfClosingTag"||s.name=="AttributeName"?IFn(n,e,s,s.name=="AttributeName"?s.from:r,r):s.name=="Is"||s.name=="AttributeValue"||s.name=="UnquotedAttributeValue"?AFn(n,e,s,s.name=="Is"?r:s.from,r):t.explicit&&(a.name=="Element"||a.name=="Text"||a.name=="Document")?NFn(n,e,s,r):null}function RFn(e){return kxt(J$.default,e)}function PFn(e){let{extraTags:t,extraGlobalAttributes:n}=e,r=n||t?new J$(t,n):J$.default;return s=>kxt(r,s)}const $Fn=Zh.parser.configure({top:"SingleExpression"}),Oxt=[{tag:"script",attrs:e=>e.type=="text/typescript"||e.lang=="ts",parser:v1e.parser},{tag:"script",attrs:e=>e.type=="text/babel"||e.type=="text/jsx",parser:y1e.parser},{tag:"script",attrs:e=>e.type=="text/typescript-jsx",parser:b1e.parser},{tag:"script",attrs(e){return/^(importmap|speculationrules|application\/(.+\+)?json)$/i.test(e.type)},parser:$Fn},{tag:"script",attrs(e){return!e.type||/^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^module$|^$/i.test(e.type)},parser:Zh.parser},{tag:"style",attrs(e){return(!e.lang||e.lang=="css")&&(!e.type||/^(text\/)?(x-)?(stylesheet|css)$/i.test(e.type))},parser:E7.parser}],_xt=[{name:"style",parser:E7.parser.configure({top:"Styles"})}].concat(xxt.map(e=>({name:e,parser:Zh.parser}))),Cxt=CO.define({name:"html",parser:izn.configure({props:[I_.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}}),A_.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}}}),lbt.add({"OpenTag CloseTag":e=>e.getChild("TagName")})]}),languageData:{commentTokens:{block:{open:"<!--",close:"-->"}},indentOnInput:/^\s*<\/\w+\W$/,wordChars:"-_"}}),nF=Cxt.configure({wrap:rxt(Oxt,_xt)});function MFn(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=rxt((e.nestedLanguages||[]).concat(Oxt),(e.nestedAttributes||[]).concat(_xt)));let r=n?Cxt.configure({wrap:n,dialect:t}):t?nF.configure({dialect:t}):nF;return new jO(r,[nF.data.of({autocomplete:PFn(e)}),e.autoCloseTags!==!1?DFn:[],T7().support,Uzn().support])}const z6e=new Set("area base br col command embed frame hr img input keygen link meta param source track wbr menuitem".split(" ")),DFn=Tt.inputHandler.of((e,t,n,r,s)=>{if(e.composing||e.state.readOnly||t!=n||r!=">"&&r!="/"||!nF.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=hi(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=bT(i.doc,y.parent,h))&&!z6e.has(v)){let b=h+(i.doc.sliceString(h,h+1)===">"?1:0),S=`</${v}>`;return{range:c,changes:{from:h,to:b,insert:S}}}}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=bT(i.doc,y,h))&&!z6e.has(v)){let b=h+(i.doc.sliceString(h,h+1)===">"?1:0),S=`${v}>`;return{range:vt.cursor(h+S.length,-1),changes:{from:h,to:b,insert:S}}}}return{range:c}});return l.changes.empty?!1:(e.dispatch([a,i.update(l,{userEvent:"input.complete",scrollIntoView:!0})]),!0)}),Ext=IV({commentTokens:{block:{open:"<!--",close:"-->"}}}),jxt=new Mr,Txt=l9n.configure({props:[A_.add(e=>!e.is("Block")||e.is("Document")||Mhe(e)!=null||LFn(e)?void 0:(t,n)=>({from:n.doc.lineAt(t.from).to,to:t.to})),jxt.add(Mhe),I_.add({Document:()=>null}),yw.add({Document:Ext})]});function Mhe(e){let t=/^(?:ATX|Setext)Heading(\d)$/.exec(e.name);return t?+t[1]:void 0}function LFn(e){return e.name=="OrderedList"||e.name=="BulletList"}function zFn(e,t){let n=e;for(;;){let r=n.nextSibling,s;if(!r||(s=Mhe(r.type))!=null&&s<=t)break;n=r}return n.to}const FFn=Yyt.of((e,t,n)=>{for(let r=hi(e).resolveInner(n,-1);r&&!(r.from<t);r=r.parent){let s=r.type.prop(jxt);if(s==null)continue;let a=zFn(r,s);if(a>n)return{from:n,to:a}}return null});function w1e(e){return new wp(Ext,e,[],"markdown")}const Nxt=w1e(Txt),BFn=Txt.configure([b9n,w9n,x9n,S9n,{props:[A_.add({Table:(e,t)=>({from:t.doc.lineAt(e.from).to,to:e.to})})]}]),IO=w1e(BFn);function UFn(e,t){return n=>{if(n&&e){let r=null;if(n=/\S*/.exec(n)[0],typeof e=="function"?r=e(n):r=eg.matchLanguageName(e,n,!0),r instanceof eg)return r.support?r.support.language.parser:EO.getSkippingParser(r.load());if(r)return r.parser}return t?t.parser:null}}class aJ{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(+Axt(this.item,t)[2]+n):"";return this.spaceBefore+r+this.type+this.spaceAfter}}function Ixt(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 aJ(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 aJ(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 aJ(a.parent,c,c+d,i[1],u,f,a))}}return r}function Axt(e,t){return/^(\s*)(\d+)(?=[.)])/.exec(t.sliceString(e.from,e.from+10))}function iJ(e,t,n,r=0){for(let s=-1,a=e;;){if(a.name=="ListItem"){let l=Axt(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 S1e(e,t){let n=/^[ \t]*/.exec(e)[0].length;if(!n||t.facet(BN)!=" ")return e;let r=Ng(e,4,n),s="";for(let a=r;a>0;)a>=4?(s+=" ",a-=4):(s+=" ",a--);return s+e.slice(n)}const Rxt=(e={})=>({state:t,dispatch:n})=>{let r=hi(t),{doc:s}=t,a=null,i=t.changeByRange(l=>{if(!l.empty||!IO.isActiveAt(t,l.from,-1)&&!IO.isActiveAt(t,l.from,1))return a={range:l};let c=l.from,u=s.lineAt(c),d=Ixt(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,S=f.node.getChild("ListItem","ListItem");if(b.to>=c||S&&S.to<c||u.from>0&&!/[^\s>]/.test(s.lineAt(u.from-1).text)||e.nonTightLists===!1){let w=d.length>1?d[d.length-2]:null,k,_="";w&&w.item?(k=u.from+w.from,_=w.marker(s,1)):k=u.from+(w?w.to:0);let C=[{from:k,to:c,insert:_}];return f.node.name=="OrderedList"&&iJ(f.item,s,C,-2),w&&w.node.name=="OrderedList"&&iJ(w.item,s,C),{range:vt.cursor(k+_.length),changes:C}}else{let w=B6e(d,t,u);return{range:vt.cursor(c+w.length+1),changes:{from:u.from,insert:w+t.lineBreak}}}}if(f.node.name=="Blockquote"&&p&&u.from){let b=s.lineAt(u.from-1),S=/>\s*$/.exec(b.text);if(S&&S.index==f.from){let w=t.changes([{from:b.from+S.index,to:b.to},{from:u.from+f.from,to:u.to}]);return{range:l.map(w),changes:w}}}let h=[];f.node.name=="OrderedList"&&iJ(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,S=d.length-1;b<=S;b++)v+=b==S&&!m?d[b].marker(s,1):d[b].blank(b<S?Ng(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=S1e(v,t),qFn(f.node,t.doc)&&(v=B6e(d,t,u)+t.lineBreak+v),h.push({from:y,to:c,insert:t.lineBreak+v}),{range:vt.cursor(y+v.length+1),changes:h}});return a?!1:(n(t.update(i,{scrollIntoView:!0,userEvent:"input"})),!0)},Pxt=Rxt();function F6e(e){return e.name=="QuoteMark"||e.name=="ListMark"}function qFn(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 B6e(e,t,n){let r="";for(let s=0,a=e.length-2;s<=a;s++)r+=e[s].blank(s<a?Ng(n.text,4,e[s+1].from)-r.length:null,s<a);return S1e(r,t)}function VFn(e,t){let n=e.resolveInner(t,-1),r=t;F6e(n)&&(r=n.from,n=n.parent);for(let s;s=n.childBefore(r);)if(F6e(s))r=s.from;else if(s.name=="OrderedList"||s.name=="BulletList")n=s.lastChild,r=n.to;else break;return n}const $xt=({state:e,dispatch:t})=>{let n=hi(e),r=null,s=e.changeByRange(a=>{let i=a.from,{doc:l}=e;if(a.empty&&IO.isActiveAt(e,a.from)){let c=l.lineAt(i),u=Ixt(VFn(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:vt.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(Ng(c.text,4,d.to)-Ng(c.text,4,d.from));return p==c.from&&(h=S1e(h,e)),{range:vt.cursor(p+h.length),changes:{from:p,to:c.from+d.to,insert:h}}}if(p<i)return{range:vt.cursor(p),changes:{from:p,to:i}}}}}return r={range:a}});return r?!1:(t(e.update(s,{scrollIntoView:!0,userEvent:"delete"})),!0)},Mxt=[{key:"Enter",run:Pxt},{key:"Backspace",run:$xt}],Dxt=MFn({matchClosingTags:!1});function k1e(e={}){let{codeLanguages:t,defaultCodeLanguage:n,addKeymap:r=!0,base:{parser:s}=Nxt,completeHTMLTags:a=!0,pasteURLAsLink:i=!0,htmlTagLanguage:l=Dxt}=e;if(!(s instanceof $V))throw new RangeError("Base parser provided to `markdown` should be a Markdown parser");let c=e.extensions?[e.extensions]:[],u=[l.support,FFn],d;i&&u.push(Lxt),n instanceof jO?(u.push(n.support),d=n.language):n&&(d=n);let f=t||d?UFn(t,d):void 0;c.push(u9n({codeParser:f,htmlParser:l.language.parser})),r&&u.push(Xp.high(FN.of(Mxt)));let p=w1e(s.configure(c));return a&&u.push(p.data.of({autocomplete:HFn})),new jO(p,u)}function HFn(e){let{state:t,pos:n}=e,r=/<[:\-\.\w\u00b7-\uffff]*$/.exec(t.sliceDoc(n-25,n));if(!r)return null;let s=hi(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:WFn(),validFor:/^<[:\-\.\w\u00b7-\uffff]*$/}}let oJ=null;function WFn(){if(oJ)return oJ;let e=RFn(new Jwe(os.create({extensions:Dxt}),0,!0));return oJ=e?e.options:[]}const ZFn=/code|horizontalrule|html|link|comment|processing|escape|entity|image|mark|url/i,Lxt=Tt.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),!IO.isActiveAt(t.state,r.from,1)))return!1;let a=hi(t.state),i=!1;return a.iterate({from:r.from,to:r.to,enter:l=>{(l.from>r.from||ZFn.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)}}),GFn=Object.freeze(Object.defineProperty({__proto__:null,commonmarkLanguage:Nxt,deleteMarkupBackward:$xt,insertNewlineContinueMarkup:Pxt,insertNewlineContinueMarkupCommand:Rxt,markdown:k1e,markdownKeymap:Mxt,markdownLanguage:IO,pasteURLAsLink:Lxt},Symbol.toStringTag,{value:"Module"}));function AO(){return AO=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},AO.apply(null,arguments)}var QFn=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=Tt.theme(i,{dark:t==="dark"}),d=Lg.define(a),f=[u,B1(d)];return f},YFn={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)"},XFn=[{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"}],qN=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 QFn({theme:r,settings:AO({},YFn,a),styles:[...XFn,...l]})};qN();function zxt(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 KFn=e=>{let{state:t}=e,n=t.doc.lineAt(t.selection.main.from),r=_1e(e.state,n.from);return r.line?JFn(e):r.block?t8n(e):!1};function O1e(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 JFn=O1e(s8n,0),e8n=O1e(Fxt,0),t8n=O1e((e,t)=>Fxt(e,t,r8n(t)),0);function _1e(e,t){let n=e.languageDataAt("commentTokens",t,1);return n.length?n[0]:{}}const GA=50;function n8n(e,{open:t,close:n},r,s){let a=e.sliceDoc(r-GA,r),i=e.sliceDoc(s,s+GA),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*GA?d=f=e.sliceDoc(r,s):(d=e.sliceDoc(r,r+GA),f=e.sliceDoc(s-GA,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 r8n(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 Fxt(e,t,n=t.selection.ranges){let r=n.map(a=>_1e(t,a.from).block);if(!r.every(a=>a))return null;let s=n.map((a,i)=>n8n(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 s8n(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=_1e(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 Dhe=Py.define(),a8n=Py.define(),i8n=On.define(),Bxt=On.define({combine(e){return $y(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)})}}),Uxt=vl.define({create(){return Bv.empty},update(e,t){let n=t.state.facet(Bxt),r=t.annotation(Dhe);if(r){let c=af.fromTransaction(t,r.selection),u=r.side,d=u==0?e.undone:e.done;return c?d=N7(d,d.length,n.minDepth,c):d=Hxt(d,t.startState.selection),new Bv(u==0?r.rest:d,u==0?d:r.rest)}let s=t.annotation(a8n);if((s=="full"||s=="before")&&(e=e.isolate()),t.annotation(Nl.addToHistory)===!1)return t.changes.empty?e:e.addMapping(t.changes.desc);let a=af.fromTransaction(t),i=t.annotation(Nl.time),l=t.annotation(Nl.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 Bv(e.done.map(af.fromJSON),e.undone.map(af.fromJSON))}});function o8n(e={}){return[Uxt,Bxt.of(e),Tt.domEventHandlers({beforeinput(t,n){let r=t.inputType=="historyUndo"?qxt:t.inputType=="historyRedo"?Lhe:null;return r?(t.preventDefault(),r(n)):!1}})]}function MV(e,t){return function({state:n,dispatch:r}){if(!t&&n.readOnly)return!1;let s=n.field(Uxt,!1);if(!s)return!1;let a=s.pop(e,n,t);return a?(r(a),!0):!1}}const qxt=MV(0,!1),Lhe=MV(1,!1),l8n=MV(0,!0),c8n=MV(1,!0);class af{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 af(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 af(t.changes&&jl.fromJSON(t.changes),[],t.mapped&&Jv.fromJSON(t.mapped),t.startSelection&&vt.fromJSON(t.startSelection),t.selectionsAfter.map(vt.fromJSON))}static fromTransaction(t,n){let r=Lh;for(let s of t.startState.facet(i8n)){let a=s(t);a.length&&(r=r.concat(a))}return!r.length&&t.changes.empty?null:new af(t.changes.invert(t.startState.doc),r,void 0,n||t.startState.selection,Lh)}static selection(t){return new af(void 0,Lh,void 0,void 0,t)}}function N7(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 u8n(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 d8n(e,t){return e.ranges.length==t.ranges.length&&e.ranges.filter((n,r)=>n.empty!=t.ranges[r].empty).length===0}function Vxt(e,t){return e.length?t.length?e.concat(t):e:t}const Lh=[],f8n=200;function Hxt(e,t){if(e.length){let n=e[e.length-1],r=n.selectionsAfter.slice(Math.max(0,n.selectionsAfter.length-f8n));return r.length&&r[r.length-1].eq(t)?e:(r.push(t),N7(e,e.length-1,1e9,n.setSelAfter(r)))}else return[af.selection([t])]}function p8n(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 lJ(e,t){if(!e.length)return e;let n=e.length,r=Lh;for(;n;){let s=h8n(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?[af.selection(r)]:Lh}function h8n(e,t,n){let r=Vxt(e.selectionsAfter.length?e.selectionsAfter.map(l=>l.map(t)):Lh,n);if(!e.changes)return af.selection(r);let s=e.changes.map(t),a=t.mapDesc(e.changes,!0),i=e.mapped?e.mapped.composeDesc(a):a;return new af(s,vr.mapEffects(e.effects,t),i,e.startSelection.map(a),r)}const m8n=/^(input\.type|delete)($|\.)/;class Bv{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 Bv(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||m8n.test(r))&&(!l.selectionsAfter.length&&n-this.prevTime<s.newGroupDelay&&s.joinToEvent(a,u8n(l.changes,t.changes))||r=="input.type.compose")?i=N7(i,i.length-1,s.minDepth,new af(t.changes.compose(l.changes),Vxt(vr.mapEffects(t.effects,l.changes),l.effects),l.mapped,l.startSelection,Lh)):i=N7(i,i.length,s.minDepth,t),new Bv(i,Lh,n,r)}addSelection(t,n,r,s){let a=this.done.length?this.done[this.done.length-1].selectionsAfter:Lh;return a.length>0&&n-this.prevTime<s&&r==this.prevUserEvent&&r&&/^select($|\.)/.test(r)&&d8n(a[a.length-1],t)?this:new Bv(Hxt(this.done,t),this.undone,n,r)}addMapping(t){return new Bv(lJ(this.done,t),lJ(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:Dhe.of({side:t,rest:p8n(s),selection:i}),userEvent:t==0?"select.undo":"select.redo",scrollIntoView:!0});if(a.changes){let l=s.length==1?Lh:s.slice(0,s.length-1);return a.mapped&&(l=lJ(l,a.mapped)),n.update({changes:a.changes,selection:a.startSelection,effects:a.effects,annotations:Dhe.of({side:t,rest:l,selection:i}),filter:!1,userEvent:t==0?"undo":"redo",scrollIntoView:!0})}else return null}}Bv.empty=new Bv(Lh,Lh);const g8n=[{key:"Mod-z",run:qxt,preventDefault:!0},{key:"Mod-y",mac:"Mod-Shift-z",run:Lhe,preventDefault:!0},{linux:"Ctrl-Shift-z",run:Lhe,preventDefault:!0},{key:"Mod-u",run:l8n,preventDefault:!0},{key:"Alt-u",mac:"Mod-Shift-u",run:c8n,preventDefault:!0}];function VN(e,t){return vt.create(e.ranges.map(t),e.mainIndex)}function zg(e,t){return e.update({selection:t,scrollIntoView:!0,userEvent:"select"})}function Fg({state:e,dispatch:t},n){let r=VN(e.selection,n);return r.eq(e.selection,!0)?!1:(t(zg(e,r)),!0)}function DV(e,t){return vt.cursor(t?e.to:e.from)}function Wxt(e,t){return Fg(e,n=>n.empty?e.moveByChar(n,t):DV(n,t))}function Xu(e){return e.textDirectionAt(e.state.selection.main.head)==Si.LTR}const Zxt=e=>Wxt(e,!Xu(e)),Gxt=e=>Wxt(e,Xu(e));function Qxt(e,t){return Fg(e,n=>n.empty?e.moveByGroup(n,t):DV(n,t))}const v8n=e=>Qxt(e,!Xu(e)),y8n=e=>Qxt(e,Xu(e));function b8n(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 LV(e,t,n){let r=hi(e).resolveInner(t.head),s=n?Mr.closedBy:Mr.openedBy;for(let c=t.head;;){let u=n?r.childAfter(c):r.childBefore(c);if(!u)break;b8n(e,u,s)?r=u:c=n?u.to:u.from}let a=r.type.prop(s),i,l;return a&&(i=n?Fv(e,r.from,1):Fv(e,r.to,-1))&&i.matched?l=n?i.end.to:i.end.from:l=n?r.to:r.from,vt.cursor(l,n?-1:1)}const x8n=e=>Fg(e,t=>LV(e.state,t,!Xu(e))),w8n=e=>Fg(e,t=>LV(e.state,t,Xu(e)));function Yxt(e,t){return Fg(e,n=>{if(!n.empty)return DV(n,t);let r=e.moveVertically(n,t);return r.head!=n.head?r:e.moveToLineBoundary(n,t)})}const Xxt=e=>Yxt(e,!1),Kxt=e=>Yxt(e,!0);function Jxt(e){let t=e.scrollDOM.clientHeight<e.scrollDOM.scrollHeight-2,n=0,r=0,s;if(t){for(let a of e.state.facet(Tt.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 e0t(e,t){let n=Jxt(e),{state:r}=e,s=VN(r.selection,i=>i.empty?e.moveVertically(i,t,n.height):DV(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=Tt.scrollIntoView(s.main.head,{y:"start",yMargin:i.top-c}))}return e.dispatch(zg(r,s),{effects:a}),!0}const U6e=e=>e0t(e,!1),zhe=e=>e0t(e,!0);function U1(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=vt.cursor(r.from+a))}return s}const S8n=e=>Fg(e,t=>U1(e,t,!0)),k8n=e=>Fg(e,t=>U1(e,t,!1)),O8n=e=>Fg(e,t=>U1(e,t,!Xu(e))),_8n=e=>Fg(e,t=>U1(e,t,Xu(e))),C8n=e=>Fg(e,t=>vt.cursor(e.lineBlockAt(t.head).from,1)),E8n=e=>Fg(e,t=>vt.cursor(e.lineBlockAt(t.head).to,-1));function j8n(e,t,n){let r=!1,s=VN(e.selection,a=>{let i=Fv(e,a.head,-1)||Fv(e,a.head,1)||a.head>0&&Fv(e,a.head-1,1)||a.head<e.doc.length&&Fv(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 vt.cursor(l)});return r?(t(zg(e,s)),!0):!1}const T8n=({state:e,dispatch:t})=>j8n(e,t);function Sm(e,t,n){let r=VN(e.state.selection,s=>{s.undirectional&&s.head>=s.anchor!=t&&(s=vt.range(s.head,s.anchor));let a=n(s);return vt.range(s.anchor,a.head,a.goalColumn,a.bidiLevel||void 0,a.assoc)});return r.eq(e.state.selection)?!1:(e.dispatch(zg(e.state,r)),!0)}function t0t(e,t){return Sm(e,t,n=>e.moveByChar(n,t))}const n0t=e=>t0t(e,!Xu(e)),r0t=e=>t0t(e,Xu(e));function s0t(e,t){return Sm(e,t,n=>e.moveByGroup(n,t))}const N8n=e=>s0t(e,!Xu(e)),I8n=e=>s0t(e,Xu(e)),A8n=e=>{let t=!Xu(e);return Sm(e,t,n=>LV(e.state,n,t))},R8n=e=>{let t=Xu(e);return Sm(e,t,n=>LV(e.state,n,t))};function a0t(e,t){return Sm(e,t,n=>e.moveVertically(n,t))}const i0t=e=>a0t(e,!1),o0t=e=>a0t(e,!0);function l0t(e,t){return Sm(e,t,n=>e.moveVertically(n,t,Jxt(e).height))}const q6e=e=>l0t(e,!1),V6e=e=>l0t(e,!0),P8n=e=>Sm(e,!0,t=>U1(e,t,!0)),$8n=e=>Sm(e,!1,t=>U1(e,t,!1)),M8n=e=>{let t=!Xu(e);return Sm(e,t,n=>U1(e,n,t))},D8n=e=>{let t=Xu(e);return Sm(e,t,n=>U1(e,n,t))},L8n=e=>Sm(e,!1,t=>vt.cursor(e.lineBlockAt(t.head).from)),z8n=e=>Sm(e,!0,t=>vt.cursor(e.lineBlockAt(t.head).to)),H6e=({state:e,dispatch:t})=>(t(zg(e,{anchor:0})),!0),W6e=({state:e,dispatch:t})=>(t(zg(e,{anchor:e.doc.length})),!0),Z6e=({state:e,dispatch:t})=>(t(zg(e,{anchor:e.selection.main.anchor,head:0})),!0),G6e=({state:e,dispatch:t})=>(t(zg(e,{anchor:e.selection.main.anchor,head:e.doc.length})),!0),F8n=({state:e,dispatch:t})=>(t(e.update({selection:{anchor:0,head:e.doc.length},userEvent:"select"})),!0),B8n=({state:e,dispatch:t})=>{let n=zV(e).map(({from:r,to:s})=>vt.range(r,Math.min(s+1,e.doc.length)));return t(e.update({selection:vt.create(n),userEvent:"select"})),!0},U8n=({state:e,dispatch:t})=>{let n=VN(e.selection,r=>{let s=hi(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 vt.range(l.to,l.from)}return r});return n.eq(e.selection)?!1:(t(zg(e,n)),!0)};function c0t(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(zg(n,vt.create(s,s.length-1))),!0)}const q8n=e=>c0t(e,!1),V8n=e=>c0t(e,!0),H8n=({state:e,dispatch:t})=>{let n=e.selection,r=null;return n.ranges.length>1?r=vt.create([n.main]):n.main.empty||(r=vt.create([vt.cursor(n.main.head)])),r?(t(zg(e,r)),!0):!1};function h3(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=k6(e,c,!1)):c>i&&(n="delete.forward",c=k6(e,c,!0)),i=Math.min(i,c),l=Math.max(l,c)}else i=k6(e,i,!1),l=k6(e,l,!0);return i==l?{range:a}:{changes:{from:i,to:l},range:vt.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"?Tt.announce.of(r.phrase("Selection deleted")):void 0})),!0)}function k6(e,t,n){if(e instanceof Tt)for(let r of e.state.facet(Tt.atomicRanges).map(s=>s(e)))r.between(t,t,(s,a)=>{s<t&&a>t&&(t=n?a:s)});return t}const u0t=(e,t,n)=>h3(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=Ng(l,a.tabSize),d=u%TO(a)||TO(a);for(let f=0;f<d&&l[l.length-1-f]==" ";f++)s--;c=s}else c=xc(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=xc(i.text,c-i.from,!1,!1)+i.from);return c}),Fhe=e=>u0t(e,!1,!0),d0t=e=>u0t(e,!0,!1),f0t=(e,t)=>h3(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=xc(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}),p0t=e=>f0t(e,!1),W8n=e=>f0t(e,!0),Z8n=e=>h3(e,t=>{let n=e.lineBlockAt(t.head).to;return t.head<n?n:Math.min(e.state.doc.length,t.head+1)}),G8n=e=>h3(e,t=>{let n=e.moveToLineBoundary(t,!1).head;return t.head>n?n:Math.max(0,t.head-1)}),Q8n=e=>h3(e,t=>{let n=e.moveToLineBoundary(t,!0).head;return t.head<n?n:Math.min(e.state.doc.length,t.head+1)}),Y8n=({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=e.changeByRange(r=>({changes:{from:r.from,to:r.to,insert:ka.of(["",""])},range:vt.cursor(r.from)}));return t(e.update(n,{scrollIntoView:!0,userEvent:"input"})),!0},X8n=({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:xc(a.text,s-a.from,!1)+a.from,l=s==a.to?s+1:xc(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:vt.cursor(l)}});return n.changes.empty?!1:(t(e.update(n,{scrollIntoView:!0,userEvent:"move.character"})),!0)};function zV(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 h0t(e,t,n){if(e.readOnly)return!1;let r=[],s=[];for(let a of zV(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(vt.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(vt.range(c.anchor-l,c.head-l))}}return r.length?(t(e.update({changes:r,scrollIntoView:!0,selection:vt.create(s,e.selection.mainIndex),userEvent:"move.line"})),!0):!1}const K8n=({state:e,dispatch:t})=>h0t(e,t,!1),J8n=({state:e,dispatch:t})=>h0t(e,t,!0);function m0t(e,t,n){if(e.readOnly)return!1;let r=[];for(let a of zV(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 e7n=({state:e,dispatch:t})=>m0t(e,t,!1),t7n=({state:e,dispatch:t})=>m0t(e,t,!0),n7n=e=>{if(e.state.readOnly)return!1;let{state:t}=e,n=t.changes(zV(t).map(({from:s,to:a})=>(s>0?s--:a<t.doc.length&&a++,{from:s,to:a}))),r=VN(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 r7n(e,t){if(/\(\)|\[\]|\{\}/.test(e.sliceDoc(t-1,t+1)))return{from:t,to:t};let n=hi(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(Mr.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 Q6e=g0t(!1),s7n=g0t(!0);function g0t(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&&r7n(t,a);e&&(a=i=(i<=l.to?l:t.doc.lineAt(i)).to);let u=new AV(t,{simulateBreak:a,simulateDoubleBreak:!!c}),d=Zwe(u,a);for(d==null&&(d=Ng(/^\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=["",H$(t,d)];return c&&f.push(H$(t,u.lineIndent(l.from,-1))),{changes:{from:a,to:i,insert:ka.of(f)},range:vt.cursor(a+1+f[1].length)}});return n(t.update(r,{scrollIntoView:!0,userEvent:"input"})),!0}}function C1e(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:vt.range(a.mapPos(r.anchor,1),a.mapPos(r.head,1))}})}const a7n=({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=Object.create(null),r=new AV(e,{overrideIndentation:a=>{let i=n[a];return i??-1}}),s=C1e(e,(a,i,l)=>{let c=Zwe(r,a.from);if(c==null)return;/\S/.test(a.text)||(c=0);let u=/^\s*/.exec(a.text)[0],d=H$(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},v0t=({state:e,dispatch:t})=>e.readOnly?!1:(t(e.update(C1e(e,(n,r)=>{r.push({from:n.from,insert:e.facet(BN)})}),{userEvent:"input.indent"})),!0),y0t=({state:e,dispatch:t})=>e.readOnly?!1:(t(e.update(C1e(e,(n,r)=>{let s=/^\s*/.exec(n.text)[0];if(!s)return;let a=Ng(s,e.tabSize),i=0,l=H$(e,Math.max(0,a-TO(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),i7n=e=>(e.setTabFocusMode(),!0),o7n=[{key:"Ctrl-b",run:Zxt,shift:n0t,preventDefault:!0},{key:"Ctrl-f",run:Gxt,shift:r0t},{key:"Ctrl-p",run:Xxt,shift:i0t},{key:"Ctrl-n",run:Kxt,shift:o0t},{key:"Ctrl-a",run:C8n,shift:L8n},{key:"Ctrl-e",run:E8n,shift:z8n},{key:"Ctrl-d",run:d0t},{key:"Ctrl-h",run:Fhe},{key:"Ctrl-k",run:Z8n},{key:"Ctrl-Alt-h",run:p0t},{key:"Ctrl-o",run:Y8n},{key:"Ctrl-t",run:X8n},{key:"Ctrl-v",run:zhe}],l7n=[{key:"ArrowLeft",run:Zxt,shift:n0t,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:v8n,shift:N8n,preventDefault:!0},{mac:"Cmd-ArrowLeft",run:O8n,shift:M8n,preventDefault:!0},{key:"ArrowRight",run:Gxt,shift:r0t,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:y8n,shift:I8n,preventDefault:!0},{mac:"Cmd-ArrowRight",run:_8n,shift:D8n,preventDefault:!0},{key:"ArrowUp",run:Xxt,shift:i0t,preventDefault:!0},{mac:"Cmd-ArrowUp",run:H6e,shift:Z6e},{mac:"Ctrl-ArrowUp",run:U6e,shift:q6e},{key:"ArrowDown",run:Kxt,shift:o0t,preventDefault:!0},{mac:"Cmd-ArrowDown",run:W6e,shift:G6e},{mac:"Ctrl-ArrowDown",run:zhe,shift:V6e},{key:"PageUp",run:U6e,shift:q6e},{key:"PageDown",run:zhe,shift:V6e},{key:"Home",run:k8n,shift:$8n,preventDefault:!0},{key:"Mod-Home",run:H6e,shift:Z6e},{key:"End",run:S8n,shift:P8n,preventDefault:!0},{key:"Mod-End",run:W6e,shift:G6e},{key:"Enter",run:Q6e,shift:Q6e},{key:"Mod-a",run:F8n},{key:"Backspace",run:Fhe,shift:Fhe,preventDefault:!0},{key:"Delete",run:d0t,preventDefault:!0},{key:"Mod-Backspace",mac:"Alt-Backspace",run:p0t,preventDefault:!0},{key:"Mod-Delete",mac:"Alt-Delete",run:W8n,preventDefault:!0},{mac:"Mod-Backspace",run:G8n,preventDefault:!0},{mac:"Mod-Delete",run:Q8n,preventDefault:!0}].concat(o7n.map(e=>({mac:e.key,run:e.run,shift:e.shift}))),c7n=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:x8n,shift:A8n},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:w8n,shift:R8n},{key:"Alt-ArrowUp",run:K8n},{key:"Shift-Alt-ArrowUp",run:e7n},{key:"Alt-ArrowDown",run:J8n},{key:"Shift-Alt-ArrowDown",run:t7n},{key:"Mod-Alt-ArrowUp",run:q8n},{key:"Mod-Alt-ArrowDown",run:V8n},{key:"Escape",run:H8n},{key:"Mod-Enter",run:s7n},{key:"Alt-l",mac:"Ctrl-l",run:B8n},{key:"Mod-i",run:U8n,preventDefault:!0},{key:"Mod-[",run:y0t},{key:"Mod-]",run:v0t},{key:"Mod-Alt-\\",run:a7n},{key:"Shift-Mod-k",run:n7n},{key:"Shift-Mod-\\",run:T8n},{key:"Mod-/",run:KFn},{key:"Alt-A",run:e8n},{key:"Ctrl-m",mac:"Shift-Alt-m",run:i7n}].concat(l7n),u7n={key:"Tab",run:v0t,shift:y0t},Y6e=typeof String.prototype.normalize=="function"?e=>e.normalize("NFKD"):e=>e;class Ox{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(Y6e(l)):Y6e,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 Xd(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=jwe(t),r=this.bufferStart+this.bufferPos;this.bufferPos+=Tv(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"&&(Ox.prototype[Symbol.iterator]=function(){return this});const b0t={from:-1,to:-1,match:/.*/.exec(""),precise:!0},E1e="gm"+(/x/.unicode==null?"":"u");class x0t{constructor(t,n,r,s=0,a=t.length){if(this.text=t,this.to=a,this.curLine="",this.done=!1,this.value=b0t,/\\[sWDnr]|\n|\r|\[\^/.test(n))return new w0t(t,n,r,s,a);this.re=new RegExp(n,E1e+(r?.ignoreCase?"i":"")),this.test=r?.test,this.iter=t.iter();let i=t.lineAt(s);this.curLineStart=i.from,this.matchPos=I7(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=I7(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 cJ=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=cJ.get(t);if(!s||s.from>=r||s.to<=n){let l=new Ej(n,t.sliceString(n,r));return cJ.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)),cJ.set(t,new Ej(i,a)),new Ej(n,a.slice(n-i,r-i))}}class w0t{constructor(t,n,r,s,a){this.text=t,this.to=a,this.done=!1,this.value=b0t,this.matchPos=I7(t,s),this.re=new RegExp(n,E1e+(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=I7(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"&&(x0t.prototype[Symbol.iterator]=w0t.prototype[Symbol.iterator]=function(){return this});function d7n(e){try{return new RegExp(e,E1e),!0}catch{return!1}}function I7(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 f7n=e=>{let{state:t}=e,n=String(t.doc.lineAt(e.state.selection.main.head).number),{close:r,result:s}=Z5n(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=vt.cursor(m.from+Math.max(0,Math.min(p,m.length)));e.dispatch({effects:[r,Tt.scrollIntoView(v.from,{y:"center"})],selection:v})}),!0},p7n={highlightWordAroundCursor:!1,minSelectionLength:1,maxMatches:100,wholeWords:!1},h7n=On.define({combine(e){return $y(e,p7n,{highlightWordAroundCursor:(t,n)=>t||n,minSelectionLength:Math.min,maxMatches:Math.min})}});function m7n(e){return[x7n,b7n]}const g7n=En.mark({class:"cm-selectionMatch"}),v7n=En.mark({class:"cm-selectionMatch cm-selectionMatch-main"});function X6e(e,t,n,r){return(n==0||e(t.sliceDoc(n-1,n))!=mo.Word)&&(r==t.doc.length||e(t.sliceDoc(r,r+1))!=mo.Word)}function y7n(e,t,n,r){return e(t.sliceDoc(n,n+1))==mo.Word&&e(t.sliceDoc(r-1,r))==mo.Word}const b7n=xo.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(h7n),{state:n}=e,r=n.selection;if(r.ranges.length>1)return En.none;let s=r.main,a,i=null;if(s.empty){if(!t.highlightWordAroundCursor)return En.none;let c=n.wordAt(s.head);if(!c)return En.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 En.none;if(t.wholeWords){if(a=n.sliceDoc(s.from,s.to),i=n.charCategorizer(s.head),!(X6e(i,n,s.from,s.to)&&y7n(i,n,s.from,s.to)))return En.none}else if(a=n.sliceDoc(s.from,s.to),!a)return En.none}let l=[];for(let c of e.visibleRanges){let u=new Ox(n.doc,a,c.from,c.to);for(;!u.next().done;){let{from:d,to:f}=u.value;if((!i||X6e(i,n,d,f))&&(s.empty&&d<=s.from&&f>=s.to?l.push(v7n.range(d,f)):(d>=s.to||f<=s.from)&&l.push(g7n.range(d,f)),l.length>t.maxMatches))return En.none}}return En.set(l)}},{decorations:e=>e.decorations}),x7n=Tt.baseTheme({".cm-selectionMatch":{backgroundColor:"#99ff7780"},".cm-searchMatch .cm-selectionMatch":{backgroundColor:"transparent"}}),w7n=({state:e,dispatch:t})=>{let{selection:n}=e,r=vt.create(n.ranges.map(s=>e.wordAt(s.head)||vt.cursor(s.head)),n.mainIndex);return r.eq(n)?!1:(t(e.update({selection:r})),!0)};function S7n(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 Ox(e.doc,t,r[r.length-1].to);;)if(l.next(),l.done){if(i)return null;l=new Ox(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 k7n=({state:e,dispatch:t})=>{let{ranges:n}=e.selection;if(n.some(a=>a.from===a.to))return w7n({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=S7n(e,r);return s?(t(e.update({selection:e.selection.addRange(vt.range(s.from,s.to),!1),effects:Tt.scrollIntoView(s.to)})),!0):!1},HN=On.define({combine(e){return $y(e,{top:!1,caseSensitive:!1,literal:!1,regexp:!1,wholeWord:!1,createPanel:t=>new D7n(t),scrollToMatch:t=>Tt.scrollIntoView(t)})}});class S0t{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||d7n(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"?`
|
|
336
|
-
`: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 T7n(this):new C7n(this)}getCursor(t,n=0,r){let s=t.doc?t:os.create({doc:t});return r==null&&(r=s.doc.length),this.regexp?CE(this,s,n,r):_E(this,s,n,r)}}class k0t{constructor(t){this.spec=t}}function O7n(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 _E(e,t,n,r){let s;return e.wholeWord&&(s=_7n(t.doc,t.charCategorizer(t.selection.main.head))),e.test&&(s=O7n(e.test,t,s)),new Ox(t.doc,e.unquoted,n,r,e.caseSensitive?void 0:a=>a.toLowerCase(),s)}function _7n(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(A7(s,n-a))!=mo.Word||t(R7(s,n-a))!=mo.Word)&&(t(R7(s,r-a))!=mo.Word||t(A7(s,r-a))!=mo.Word))}class C7n extends k0t{constructor(t){super(t)}nextMatch(t,n,r){let s=_E(this.spec,t,r,t.doc.length).nextOverlapping();if(s.done){let a=Math.min(t.doc.length,n+this.spec.unquoted.length);s=_E(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=_E(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=_E(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=_E(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 E7n(e,t,n){return(r,s,a)=>(!n||n(r,s,a))&&e(a[0],t,r,s)}function CE(e,t,n,r){let s;return e.wholeWord&&(s=j7n(t.charCategorizer(t.selection.main.head))),e.test&&(s=E7n(e.test,t,s)),new x0t(t.doc,e.search,{ignoreCase:!e.caseSensitive,test:s},n,r)}function A7(e,t){return e.slice(xc(e,t,!1),t)}function R7(e,t){return e.slice(t,xc(e,t))}function j7n(e){return(t,n,r)=>!r[0].length||(e(A7(r.input,r.index))!=mo.Word||e(R7(r.input,r.index))!=mo.Word)&&(e(R7(r.input,r.index+r[0].length))!=mo.Word||e(A7(r.input,r.index+r[0].length))!=mo.Word)}class T7n extends k0t{nextMatch(t,n,r){let s=CE(this.spec,t,r,t.doc.length).next();return s.done&&(s=CE(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=CE(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=CE(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=CE(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 eM=vr.define(),j1e=vr.define(),Mw=vl.define({create(e){return new uJ(Bhe(e).create(),null)},update(e,t){for(let n of t.effects)n.is(eM)?e=new uJ(n.value.create(),e.panel):n.is(j1e)&&(e=new uJ(e.query,n.value?T1e:null));return e},provide:e=>V$.from(e,t=>t.panel)});class uJ{constructor(t,n){this.query=t,this.panel=n}}const N7n=En.mark({class:"cm-searchMatch"}),I7n=En.mark({class:"cm-searchMatch cm-searchMatch-selected"}),A7n=xo.fromClass(class{constructor(e){this.view=e,this.decorations=this.highlight(e.state.field(Mw))}update(e){let t=e.state.field(Mw);(t!=e.startState.field(Mw)||e.docChanged||e.selectionSet||e.viewportChanged)&&(this.decorations=this.highlight(t))}highlight({query:e,panel:t}){if(!t||!e.spec.valid)return En.none;let{view:n}=this,r=new jd;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?I7n:N7n)})}return r.finish()}},{decorations:e=>e.decorations});function m3(e){return t=>{let n=t.state.field(Mw,!1);return n&&n.query.spec.valid?e(t,n):C0t(t)}}const P7=m3((e,{query:t})=>{let{to:n}=e.state.selection.main,r=t.nextMatch(e.state,n,n);if(!r)return!1;let s=vt.single(r.from,r.to),a=e.state.facet(HN);return e.dispatch({selection:s,effects:[N1e(e,r),a.scrollToMatch(s.main,e)],userEvent:"select.search"}),_0t(e),!0}),$7=m3((e,{query:t})=>{let{state:n}=e,{from:r}=n.selection.main,s=t.prevMatch(n,r,r);if(!s)return!1;let a=vt.single(s.from,s.to),i=e.state.facet(HN);return e.dispatch({selection:a,effects:[N1e(e,s),i.scrollToMatch(a.main,e)],userEvent:"select.search"}),_0t(e),!0}),R7n=m3((e,{query:t})=>{let n=t.matchAll(e.state,1e3);return!n||!n.length?!1:(e.dispatch({selection:vt.create(n.map(r=>vt.range(r.from,r.to))),userEvent:"select.search.matches"}),!0)}),P7n=({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 Ox(e.doc,e.sliceDoc(r,s));!l.next().done;){if(a.length>1e3)return!1;l.value.from==r&&(i=a.length),a.push(vt.range(l.value.from,l.value.to))}return t(e.update({selection:vt.create(a,i),userEvent:"select.search.matches"})),!0},K6e=m3((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(Tt.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=vt.single(i.from,i.to).map(f),d.push(N1e(e,i)),d.push(n.facet(HN).scrollToMatch(c.main,e))),e.dispatch({changes:f,selection:c,effects:d,userEvent:"input.replace"}),!0}),$7n=m3((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:Tt.announce.of(r),userEvent:"input.replace.all"}),!0});function T1e(e){return e.state.facet(HN).createPanel(e)}function Bhe(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(HN);return new S0t({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 O0t(e){let t=Hwe(e,T1e);return t&&t.dom.querySelector("[main-field]")}function _0t(e){let t=O0t(e);t&&t==e.root.activeElement&&t.select()}const C0t=e=>{let t=e.state.field(Mw,!1);if(t&&t.panel){let n=O0t(e);if(n&&n!=e.root.activeElement){let r=Bhe(e.state,t.query.spec);r.valid&&e.dispatch({effects:eM.of(r)}),n.focus(),n.select()}}else e.dispatch({effects:[j1e.of(!0),t?eM.of(Bhe(e.state,t.query.spec)):vr.appendConfig.of(z7n)]});return!0},E0t=e=>{let t=e.state.field(Mw,!1);if(!t||!t.panel)return!1;let n=Hwe(e,T1e);return n&&n.dom.contains(e.root.activeElement)&&e.focus(),e.dispatch({effects:j1e.of(!1)}),!0},M7n=[{key:"Mod-f",run:C0t,scope:"editor search-panel"},{key:"F3",run:P7,shift:$7,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:P7,shift:$7,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:E0t,scope:"editor search-panel"},{key:"Mod-Shift-l",run:P7n},{key:"Mod-Alt-g",run:f7n},{key:"Mod-d",run:k7n,preventDefault:!0}];class D7n{constructor(t){this.view=t;let n=this.query=t.state.field(Mw).query.spec;this.commit=this.commit.bind(this),this.searchField=ui("input",{value:n.search,placeholder:Xf(t,"Find"),"aria-label":Xf(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:Xf(t,"Replace"),"aria-label":Xf(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",()=>P7(t),[Xf(t,"next")]),r("prev",()=>$7(t),[Xf(t,"previous")]),r("select",()=>R7n(t),[Xf(t,"all")]),ui("label",null,[this.caseField,Xf(t,"match case")]),ui("label",null,[this.reField,Xf(t,"regexp")]),ui("label",null,[this.wordField,Xf(t,"by word")]),...t.state.readOnly?[]:[ui("br"),this.replaceField,r("replace",()=>K6e(t),[Xf(t,"replace")]),r("replaceAll",()=>$7n(t),[Xf(t,"replace all")])],ui("button",{name:"close",onclick:()=>E0t(t),"aria-label":Xf(t,"close"),type:"button"},["×"])])}commit(){let t=new S0t({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:eM.of(t)}))}keydown(t){r5n(this.view,t,"search-panel")?t.preventDefault():t.keyCode==13&&t.target==this.searchField?(t.preventDefault(),(t.shiftKey?$7:P7)(this.view)):t.keyCode==13&&t.target==this.replaceField&&(t.preventDefault(),K6e(this.view))}update(t){for(let n of t.transactions)for(let r of n.effects)r.is(eM)&&!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(HN).top}}function Xf(e,t){return e.state.phrase(t)}const O6=30,_6=/[\s\.,:;?!]/;function N1e(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-O6),i=Math.min(s,n+O6),l=e.state.sliceDoc(a,i);if(a!=r.from){for(let c=0;c<O6;c++)if(!_6.test(l[c+1])&&_6.test(l[c])){l=l.slice(c);break}}if(i!=s){for(let c=l.length-1;c>l.length-O6;c--)if(!_6.test(l[c-1])&&_6.test(l[c])){l=l.slice(0,c);break}}return Tt.announce.of(`${e.state.phrase("current match")}. ${l} ${e.state.phrase("on line")} ${r.number}.`)}const L7n=Tt.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"}}),z7n=[Mw,Xp.low(A7n),L7n];class J6e{constructor(t,n,r){this.from=t,this.to=n,this.diagnostic=r}}class hk{constructor(t,n,r){this.diagnostics=t,this.panel=n,this.selected=r}static init(t,n,r){let s=r.facet(tM).markerFilter;s&&(t=s(t,r));let a=t.slice().sort((d,f)=>d.from-f.from||d.to-f.to),i=new jd,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=K7n(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,En.widget({widget:new G7n(m),diagnostics:l.slice()}));else{let v=l.reduce((y,b)=>b.markClass?y+" "+b.markClass:y,"");i.add(p,h,En.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 hk(u,n,wT(u))}}function wT(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 J6e(s,a,t||i.diagnostics[0]);else{if(i.diagnostics.indexOf(r.diagnostic)<0)return!1;r=new J6e(r.from,a,r.diagnostic)}}),r}function F7n(e,t){let n=t.pos,r=t.end||n,s=e.state.facet(tM).hideOn(e,n,r);if(s!=null)return s;let a=e.startState.doc.lineAt(t.pos);return!!(e.effects.some(i=>i.is(j0t))||e.changes.touchesRange(a.from,Math.max(a.to,r)))}function B7n(e,t){return e.field(Sp,!1)?t:t.concat(vr.appendConfig.of(J7n))}const j0t=vr.define(),I1e=vr.define(),T0t=vr.define(),Sp=vl.define({create(){return new hk(En.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=wT(n,e.selected.diagnostic,a)||wT(n,null,a)}!n.size&&s&&t.state.facet(tM).autoPanel&&(s=null),e=new hk(n,s,r)}for(let n of t.effects)if(n.is(j0t)){let r=t.state.facet(tM).autoPanel?n.value.length?nM.open:null:e.panel;e=hk.init(n.value,r,t.state)}else n.is(I1e)?e=new hk(e.diagnostics,n.value?nM.open:null,e.selected):n.is(T0t)&&(e=new hk(e.diagnostics,e.panel,n.value));return e},provide:e=>[V$.from(e,t=>t.panel),Tt.decorations.from(e,t=>t.diagnostics)]}),U7n=En.mark({class:"cm-lintRange cm-lintRange-active"});function q7n(e,t,n){let{diagnostics:r}=e.state.field(Sp),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(tM).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:V7n(e,s)}}}:null}function V7n(e,t){return ui("ul",{class:"cm-tooltip-lint"},t.map(n=>I0t(e,n,!1)))}const H7n=e=>{let t=e.state.field(Sp,!1);(!t||!t.panel)&&e.dispatch({effects:B7n(e.state,[I1e.of(!0)])});let n=Hwe(e,nM.open);return n&&n.dom.querySelector(".cm-panel-lint ul").focus(),!0},e9e=e=>{let t=e.state.field(Sp,!1);return!t||!t.panel?!1:(e.dispatch({effects:I1e.of(!1)}),!0)},W7n=e=>{let t=e.state.field(Sp,!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)},Z7n=[{key:"Mod-Shift-m",run:H7n,preventDefault:!0},{key:"F8",run:W7n}],tM=On.define({combine(e){return{sources:e.map(t=>t.source).filter(t=>t!=null),...$y(e.map(t=>t.config),{delay:750,markerFilter:null,tooltipFilter:null,needsRefresh:null,hideOn:()=>null},{delay:Math.max,markerFilter:t9e,tooltipFilter:t9e,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 t9e(e,t){return e?t?(n,r)=>t(e(n,r),r):e:t}function N0t(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 I0t(e,t,n){var r;let s=n?N0t(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=wT(e.state.field(Sp).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 G7n extends Kp{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 n9e{constructor(t,n){this.diagnostic=n,this.id="item_"+Math.floor(Math.random()*4294967295).toString(16),this.dom=I0t(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)e9e(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=N0t(a.actions);for(let l=0;l<i.length;l++)if(i[l].toUpperCase().charCodeAt(0)==s.keyCode){let c=wT(this.view.state.field(Sp).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:()=>e9e(this.view)},"×")),this.update()}get selectedIndex(){let t=this.view.state.field(Sp).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(Sp),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 n9e(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 n9e(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(Sp),r=wT(n.diagnostics,this.items[t].diagnostic);r&&this.view.dispatch({selection:{anchor:r.from,head:r.to},scrollIntoView:!0,effects:T0t.of(r)})}static open(t){return new nM(t)}}function Q7n(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 C6(e){return Q7n(`<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 Y7n=Tt.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:C6("#d11")},".cm-lintRange-warning":{backgroundImage:C6("orange")},".cm-lintRange-info":{backgroundImage:C6("#999")},".cm-lintRange-hint":{backgroundImage:C6("#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 X7n(e){return e=="error"?4:e=="warning"?3:e=="info"?2:1}function K7n(e){let t="hint",n=1;for(let r of e){let s=X7n(r.severity);s>n&&(n=s,t=r.severity)}return t}const J7n=[Sp,Tt.decorations.compute([Sp],e=>{let{selected:t,panel:n}=e.field(Sp);return!t||!n||t.from==t.to?En.none:En.set([U7n.range(t.from,t.to)])}),H5n(q7n,{hideOn:F7n}),Y7n];var r9e=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(U6n)),t.defaultKeymap!==!1&&(a=a.concat(c7n)),t.searchKeymap!==!1&&(a=a.concat(M7n)),t.historyKeymap!==!1&&(a=a.concat(g8n)),t.foldKeymap!==!1&&(a=a.concat(ELn)),t.completionKeymap!==!1&&(a=a.concat(_bt)),t.lintKeymap!==!1&&(a=a.concat(Z7n));var i=[];return t.lineNumbers!==!1&&i.push(rLn()),t.highlightActiveLineGutter!==!1&&i.push(iLn()),t.highlightSpecialChars!==!1&&i.push(b5n()),t.history!==!1&&i.push(o8n()),t.foldGutter!==!1&&i.push(ILn()),t.drawSelection!==!1&&i.push(c5n()),t.dropCursor!==!1&&i.push(h5n()),t.allowMultipleSelections!==!1&&i.push(os.allowMultipleSelections.of(!0)),t.indentOnInput!==!1&&i.push(bLn()),t.syntaxHighlighting!==!1&&i.push(B1($Ln,{fallback:!0})),t.bracketMatching!==!1&&i.push(ULn()),t.closeBrackets!==!1&&i.push(L6n()),t.autocompletion!==!1&&i.push(Obt()),t.rectangularSelection!==!1&&i.push(R5n()),s!==!1&&i.push(M5n()),t.highlightActiveLine!==!1&&i.push(_5n()),t.highlightSelectionMatches!==!1&&i.push(m7n()),t.tabSize&&typeof t.tabSize=="number"&&i.push(BN.of(" ".repeat(t.tabSize))),i.concat([FN.of(a.flat())]).filter(Boolean)};const eBn="#e5c07b",s9e="#e06c75",tBn="#56b6c2",nBn="#ffffff",rF="#abb2bf",Uhe="#7d8799",rBn="#61afef",sBn="#98c379",a9e="#d19a66",aBn="#c678dd",iBn="#21252b",i9e="#2c313a",o9e="#282c34",dJ="#353a42",oBn="#3E4451",l9e="#528bff",lBn=Tt.theme({"&":{color:rF,backgroundColor:o9e},".cm-content":{caretColor:l9e},".cm-cursor, .cm-dropCursor":{borderLeftColor:l9e},"&.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection":{backgroundColor:oBn},".cm-panels":{backgroundColor:iBn,color:rF},".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:o9e,color:Uhe,border:"none"},".cm-activeLineGutter":{backgroundColor:i9e},".cm-foldPlaceholder":{backgroundColor:"transparent",border:"none",color:"#ddd"},".cm-tooltip":{border:"none",backgroundColor:dJ},".cm-tooltip .cm-tooltip-arrow:before":{borderTopColor:"transparent",borderBottomColor:"transparent"},".cm-tooltip .cm-tooltip-arrow:after":{borderTopColor:dJ,borderBottomColor:dJ},".cm-tooltip-autocomplete":{"& > ul > li[aria-selected]":{backgroundColor:i9e,color:rF}}},{dark:!0}),cBn=Lg.define([{tag:de.keyword,color:aBn},{tag:[de.name,de.deleted,de.character,de.propertyName,de.macroName],color:s9e},{tag:[de.function(de.variableName),de.labelName],color:rBn},{tag:[de.color,de.constant(de.name),de.standard(de.name)],color:a9e},{tag:[de.definition(de.name),de.separator],color:rF},{tag:[de.typeName,de.className,de.number,de.changed,de.annotation,de.modifier,de.self,de.namespace],color:eBn},{tag:[de.operator,de.operatorKeyword,de.url,de.escape,de.regexp,de.link,de.special(de.string)],color:tBn},{tag:[de.meta,de.comment],color:Uhe},{tag:de.strong,fontWeight:"bold"},{tag:de.emphasis,fontStyle:"italic"},{tag:de.strikethrough,textDecoration:"line-through"},{tag:de.link,color:Uhe,textDecoration:"underline"},{tag:de.heading,fontWeight:"bold",color:s9e},{tag:[de.atom,de.bool,de.special(de.variableName)],color:a9e},{tag:[de.processingInstruction,de.string,de.inserted],color:sBn},{tag:de.invalid,color:nBn}]),uBn=[lBn,B1(cBn)];var dBn=Tt.theme({"&":{backgroundColor:"#fff"}},{dark:!1}),fBn=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(FN.of([u7n])),m&&(typeof m=="boolean"?v.unshift(r9e()):v.unshift(r9e(m))),p&&v.unshift(T5n(p)),d){case"light":v.push(dBn);break;case"dark":v.push(uBn);break;case"none":break;default:v.push(d);break}return i===!1&&v.push(Tt.editable.of(!1)),c&&v.push(os.readOnly.of(!0)),[...v]},pBn=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 hBn{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 c9e{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 fJ=null,mBn=()=>typeof window>"u"?new c9e:(fJ||(fJ=new c9e),fJ),gBn=Tt.theme({"& .cm-scroller":{height:"100% !important"}}),u9e=null,pJ=null;function vBn(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===u9e||(u9e=i,pJ=Tt.theme({"&":{height:e,minHeight:t,maxHeight:n,width:r,minWidth:s,maxWidth:a}})),pJ}var d9e=Py.define(),yBn=200,bBn=[];function xBn(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?bBn: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,S=e.width,w=S===void 0?null:S,k=e.minWidth,_=k===void 0?null:k,C=e.maxWidth,E=C===void 0?null:C,j=e.placeholder,T=j===void 0?"":j,I=e.editable,A=I===void 0?!0:I,P=e.readOnly,L=P===void 0?!1:P,D=e.indentWithTab,q=D===void 0?!0:D,H=e.basicSetup,z=H===void 0?!0:H,B=e.root,V=e.initialState,M=g.useState(),Q=M[0],U=M[1],$=g.useState(),F=$[0],Z=$[1],X=g.useState(),te=X[0],ee=X[1],J=g.useState(()=>({current:null}))[0],ae=g.useState(()=>({current:null}))[0],pe=vBn(h,v,b,w,_,E),Y=Tt.updateListener.of(fe=>{if(fe.docChanged&&typeof r=="function"&&!fe.transactions.some(be=>be.annotation(d9e))){J.current?J.current.reset():(J.current=new hBn(()=>{if(ae.current){var be=ae.current;ae.current=null,be()}J.current=null},yBn),mBn().add(J.current));var oe=fe.state.doc,me=oe.toString();r(me,fe)}s&&s(pBn(fe))}),ne=fBn({theme:f,editable:A,readOnly:L,placeholder:T,indentWithTab:q,basicSetup:z}),ue=[Y,...pe?[pe]:[],gBn,...ne];return i&&typeof i=="function"&&ue.push(Tt.updateListener.of(i)),ue=ue.concat(c),g.useLayoutEffect(()=>{if(Q&&!te){var fe={doc:t,selection:n,extensions:ue},oe=V?os.fromJSON(V.json,fe,V.fields):os.create(fe);if(ee(oe),!F){var me=new Tt({state:oe,parent:Q,root:B});Z(me),a&&a(me,oe)}}return()=>{F&&(ee(void 0),Z(void 0))}},[Q,te]),g.useEffect(()=>{e.container&&U(e.container)},[e.container]),g.useEffect(()=>()=>{F&&(F.destroy(),Z(void 0)),J.current&&(J.current.cancel(),J.current=null)},[F]),g.useEffect(()=>{u&&F&&F.focus()},[u,F]),g.useEffect(()=>{F&&F.dispatch({effects:vr.reconfigure.of(ue)})},[f,c,h,v,b,w,_,E,T,A,L,q,z,r,i]),g.useEffect(()=>{if(t!==void 0){var fe=F?F.state.doc.toString():"";if(F&&t!==fe){var oe=J.current&&!J.current.isDone,me=()=>{F&&t!==F.state.doc.toString()&&F.dispatch({changes:{from:0,to:F.state.doc.toString().length,insert:t||""},annotations:[d9e.of(!0)]})};oe?ae.current=me:me()}}},[t,F]),{state:te,setState:ee,view:F,setView:Z,container:Q,setContainer:U}}var wBn=["className","value","selection","extensions","onChange","onStatistics","onCreateEditor","onUpdate","autoFocus","theme","height","minHeight","maxHeight","width","minWidth","maxWidth","basicSetup","placeholder","indentWithTab","editable","readOnly","root","initialState"],ou=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,S=e.width,w=e.minWidth,k=e.maxWidth,_=e.basicSetup,C=e.placeholder,E=e.indentWithTab,j=e.editable,T=e.readOnly,I=e.root,A=e.initialState,P=zxt(e,wBn),L=g.useRef(null),D=xBn({root:I,value:s,autoFocus:p,theme:m,height:v,minHeight:y,maxHeight:b,width:S,minWidth:w,maxWidth:k,basicSetup:_,placeholder:C,indentWithTab:E,editable:j,readOnly:T,selection:a,onChange:c,onStatistics:u,onCreateEditor:d,onUpdate:f,extensions:l,initialState:A}),q=D.state,H=D.view,z=D.container,B=D.setContainer;g.useImperativeHandle(t,()=>({editor:L.current,state:q,view:H}),[L,z,q,H]);var V=g.useCallback(Q=>{L.current=Q,B(Q)},[B]);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",AO({ref:V,className:""+M+(n?" "+n:"")},P))});ou.displayName="CodeMirror";const SBn={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"};let hJ=null;function kBn(){return hJ||(hJ=(async()=>{const[{createHighlighterCore:e},{createJavaScriptRegexEngine:t}]=await Promise.all([uo(()=>import("./core-g551FJEo.js"),__vite__mapDeps([0,1,2]),import.meta.url),uo(()=>import("./engine-javascript-CSIo_1eZ.js"),__vite__mapDeps([3,1]),import.meta.url)]);return e({themes:[uo(()=>import("./github-light-DAi9KRSo.js"),[],import.meta.url),uo(()=>import("./github-dark-DHJKELXO.js"),[],import.meta.url)],langs:[uo(()=>import("./javascript-ySlJ1b_l.js"),[],import.meta.url),uo(()=>import("./typescript-Dj6nwHGl.js"),[],import.meta.url),uo(()=>import("./tsx-B6W0miNI.js"),[],import.meta.url),uo(()=>import("./jsx-BAng5TT0.js"),[],import.meta.url),uo(()=>import("./json-BQoSv7ci.js"),[],import.meta.url),uo(()=>import("./bash-atvbtKCR.js"),[],import.meta.url),uo(()=>import("./markdown-UIAJJxZW.js"),[],import.meta.url),uo(()=>import("./python-DhUJRlN_.js"),[],import.meta.url)],engine:t()})})()),hJ}async function OBn(e,t){const n=SBn[t?.toLowerCase()];if(!n)return null;const r=await kBn(),{tokens:s}=r.codeToTokens(e,{lang:n,defaultColor:!1,themes:{light:"github-light",dark:"github-dark"}});return s}function _Bn(e){return new jO(Ywe.define(e))}const A0t=[eg.of({name:"JavaScript",alias:["ecmascript","js","node"],extensions:["js","mjs","cjs"],load(){return uo(()=>Promise.resolve().then(()=>S6),void 0,import.meta.url).then(e=>e.javascript())}}),eg.of({name:"JSON",alias:["json5"],extensions:["json","map"],load(){return uo(()=>Promise.resolve().then(()=>e6n),void 0,import.meta.url).then(e=>e.json())}}),eg.of({name:"JSX",extensions:["jsx"],load(){return uo(()=>Promise.resolve().then(()=>S6),void 0,import.meta.url).then(e=>e.javascript({jsx:!0}))}}),eg.of({name:"Markdown",extensions:["md","markdown","mkd"],load(){return uo(()=>Promise.resolve().then(()=>GFn),void 0,import.meta.url).then(e=>e.markdown())}}),eg.of({name:"TSX",extensions:["tsx"],load(){return uo(()=>Promise.resolve().then(()=>S6),void 0,import.meta.url).then(e=>e.javascript({jsx:!0,typescript:!0}))}}),eg.of({name:"TypeScript",alias:["ts"],extensions:["ts","mts","cts"],load(){return uo(()=>Promise.resolve().then(()=>S6),void 0,import.meta.url).then(e=>e.javascript({typescript:!0}))}}),eg.of({name:"Shell",alias:["bash","sh","zsh"],extensions:["sh","ksh","bash"],filename:/^PKGBUILD$/,load(){return uo(()=>import("./shell-CjFT_Tl9.js"),[],import.meta.url).then(e=>_Bn(e.shell))}})];function CBn(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 EBn(e){const t=CBn(e);return Obt({override:[jBn(t)],defaultKeymap:!0,closeOnBlur:!0,icons:!1})}function jBn(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 TBn=/\{\{([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)*)\}\}/g,NBn=En.mark({class:"cm-variable-highlight"}),f9e=new Lyt({regexp:TBn,decoration:()=>NBn}),IBn=xo.fromClass(class{decorations;constructor(e){this.decorations=f9e.createDeco(e)}update(e){this.decorations=f9e.updateDeco(e,this.decorations)}},{decorations:e=>e.decorations}),ABn=IBn;function RBn(){const e=qN({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=Tt.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 PBn(){const e=Tt.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=Lg.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,B1(t)]}const My=()=>{const e=j_().resolvedTheme==="dark";return g.useMemo(()=>e?RBn():PBn(),[e])},$Bn=Fo(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"}}),MBn=Xp.highest(Tt.editorAttributes.of({style:"outline: none"})),DBn=Xp.highest(Tt.theme({"&":{outline:"none"},"&.cm-focused":{outline:"none"},".cm-scroller":{outline:"none"},".cm-content":{outline:"none"},".cm-content:focus":{outline:"none"}})),LBn=[MBn,DBn],Yr=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=My(),b=e?JSON.stringify(e,null,2):t??"",S=g.useMemo(()=>{const w=[...LBn];return f&&w.push(Tt.lineWrapping),a==="json"?w.push(gf):a==="markdown"&&w.push(k1e({base:IO,codeLanguages:A0t})),i&&a==="markdown"&&w.push(ABn),c&&a==="markdown"&&w.push(EBn(c)),p===!1&&w.push(os.readOnly.of(!0)),w},[a,i,c,p,f]);return o.jsxs("div",{className:K($Bn({variant:h}),s),...m,children:[r&&o.jsx(Oa,{content:b,className:"absolute top-2 right-2 z-20"}),o.jsx(ou,{ref:v,value:b,theme:y,extensions:S,onChange:n,editable:p,"aria-label":"Code editor",placeholder:l,height:"100%",style:{height:"100%"},autoFocus:u,basicSetup:{lineNumbers:d}})]})}),zBn=e=>{try{return JSON.stringify(e??{},null,2)}catch{return"{}"}},FBn=({editorClassName:e="h-[240px] max-h-[40vh]",onSaved:t})=>{const n=My(),{settings:r,setSettings:s}=fV(),a=r?.tracingOptions,i=g.useMemo(()=>zBn(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(ye,{as:"h3",variant:"ui-md",className:"text-neutral3",children:"Tracing Options"}),o.jsx(ou,{value:l,onChange:d,theme:n,extensions:[gf],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(ce,{type:"button",onClick:f,children:"Save"})})]})},BBn=()=>{const[e,t]=g.useState(!1);return o.jsxs(o.Fragment,{children:[o.jsxs(Un,{children:[o.jsx(Dn,{asChild:!0,children:o.jsx(ce,{type:"button",variant:"ghost",size:"icon-md","aria-label":"Run Options",onClick:()=>t(!0),children:o.jsx(Ue,{children:o.jsx(Oq,{})})})}),o.jsx(Ln,{children:"Run Options"})]}),o.jsx(br,{open:e,onOpenChange:t,children:o.jsxs(xr,{children:[o.jsxs(wr,{children:[o.jsx(gr,{children:"Run Options"}),o.jsx(Xs,{children:"Configure tracing and debug options for this workflow run"})]}),o.jsx($r,{children:o.jsx(FBn,{onSaved:()=>t(!1)})})]})})]})};function UBn({status:e}){switch(e){case"running":return o.jsx(Qt,{});case"failed":return o.jsx(vs,{className:"text-accent2"});case"canceled":return o.jsx(Ef,{className:"text-neutral3"});case"pending":case"waiting":return o.jsx(Xj,{className:"text-neutral3"});case"suspended":return o.jsx(yq,{className:"text-accent3"});case"success":return o.jsx(ra,{className:"text-accent1"});default:return o.jsx(Xj,{className:"text-neutral3"})}}function R0t({status:e}){return o.jsxs(Un,{children:[o.jsx(Dn,{asChild:!0,children:o.jsx(Ue,{"aria-label":e,className:"shrink-0",children:o.jsx(UBn,{status:e})})}),o.jsx(Ln,{children:e})]})}var mJ,p9e;function A1e(){if(p9e)return mJ;p9e=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 mJ=r,mJ}var gJ,h9e;function qBn(){return h9e||(h9e=1,gJ="2.2.4"),gJ}var vJ,m9e;function VBn(){return m9e||(m9e=1,vJ={Graph:A1e(),version:qBn()}),vJ}var yJ,g9e;function HBn(){if(g9e)return yJ;g9e=1;var e=A1e();yJ={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 yJ}var bJ,v9e;function WBn(){if(v9e)return bJ;v9e=1,bJ=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 bJ}var xJ,y9e;function P0t(){if(y9e)return xJ;y9e=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 xJ=e,xJ}var wJ,b9e;function $0t(){if(b9e)return wJ;b9e=1;var e=P0t();wJ=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 wJ}var SJ,x9e;function ZBn(){if(x9e)return SJ;x9e=1;var e=$0t();SJ=t;function t(n,r,s){return n.nodes().reduce(function(a,i){return a[i]=e(n,i,r,s),a},{})}return SJ}var kJ,w9e;function M0t(){if(w9e)return kJ;w9e=1,kJ=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 kJ}var OJ,S9e;function GBn(){if(S9e)return OJ;S9e=1;var e=M0t();OJ=t;function t(n){return e(n).filter(function(r){return r.length>1||r.length===1&&n.hasEdge(r[0],r[0])})}return OJ}var _J,k9e;function QBn(){if(k9e)return _J;k9e=1,_J=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 _J}var CJ,O9e;function D0t(){if(O9e)return CJ;O9e=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 CJ=e,e.CycleException=t,CJ}var EJ,_9e;function YBn(){if(_9e)return EJ;_9e=1;var e=D0t();EJ=t;function t(n){try{e(n)}catch(r){if(r instanceof e.CycleException)return!1;throw r}return!0}return EJ}var jJ,C9e;function L0t(){if(C9e)return jJ;C9e=1,jJ=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 jJ}var TJ,E9e;function XBn(){if(E9e)return TJ;E9e=1;var e=L0t();TJ=t;function t(n,r){return e(n,r,"post")}return TJ}var NJ,j9e;function KBn(){if(j9e)return NJ;j9e=1;var e=L0t();NJ=t;function t(n,r){return e(n,r,"pre")}return NJ}var IJ,T9e;function JBn(){if(T9e)return IJ;T9e=1;var e=A1e(),t=P0t();IJ=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 IJ}var AJ,N9e;function eUn(){return N9e||(N9e=1,AJ={components:WBn(),dijkstra:$0t(),dijkstraAll:ZBn(),findCycles:GBn(),floydWarshall:QBn(),isAcyclic:YBn(),postorder:XBn(),preorder:KBn(),prim:JBn(),tarjan:M0t(),topsort:D0t()}),AJ}var RJ,I9e;function Ag(){if(I9e)return RJ;I9e=1;var e=VBn();return RJ={Graph:e.Graph,json:HBn(),alg:eUn(),version:e.version},RJ}var PJ,A9e;function tUn(){if(A9e)return PJ;A9e=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 PJ=e,PJ}var $J,R9e;function nUn(){if(R9e)return $J;R9e=1;let e=Ag().Graph,t=tUn();$J=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,S=u.node(b);S.in-=y,l(d,f,S)}),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,S=d(y),w=b+S;f.setEdge(y.v,y.w,w),h=Math.max(h,f.node(y.v).out+=S),p=Math.max(p,f.node(y.w).in+=S)});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 $J}var MJ,P9e;function Il(){if(P9e)return MJ;P9e=1;let e=Ag().Graph;MJ={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:w,zipObject:E};function t(j,T,I,A){for(var P=A;j.hasNode(P);)P=w(A);return I.dummy=T,j.setNode(P,I),P}function n(j){let T=new e().setGraph(j.graph());return j.nodes().forEach(I=>T.setNode(I,j.node(I))),j.edges().forEach(I=>{let A=T.edge(I.v,I.w)||{weight:0,minlen:1},P=j.edge(I);T.setEdge(I.v,I.w,{weight:A.weight+P.weight,minlen:Math.max(A.minlen,P.minlen)})}),T}function r(j){let T=new e({multigraph:j.isMultigraph()}).setGraph(j.graph());return j.nodes().forEach(I=>{j.children(I).length||T.setNode(I,j.node(I))}),j.edges().forEach(I=>{T.setEdge(I,j.edge(I))}),T}function s(j){let T=j.nodes().map(I=>{let A={};return j.outEdges(I).forEach(P=>{A[P.w]=(A[P.w]||0)+j.edge(P).weight}),A});return E(j.nodes(),T)}function a(j){let T=j.nodes().map(I=>{let A={};return j.inEdges(I).forEach(P=>{A[P.v]=(A[P.v]||0)+j.edge(P).weight}),A});return E(j.nodes(),T)}function i(j,T){let I=j.x,A=j.y,P=T.x-I,L=T.y-A,D=j.width/2,q=j.height/2;if(!P&&!L)throw new Error("Not possible to find intersection inside of the rectangle");let H,z;return Math.abs(L)*D>Math.abs(P)*q?(L<0&&(q=-q),H=q*P/L,z=q):(P<0&&(D=-D),H=D,z=D*L/P),{x:I+H,y:A+z}}function l(j){let T=k(m(j)+1).map(()=>[]);return j.nodes().forEach(I=>{let A=j.node(I),P=A.rank;P!==void 0&&(T[P][A.order]=I)}),T}function c(j){let T=j.nodes().map(A=>{let P=j.node(A).rank;return P===void 0?Number.MAX_VALUE:P}),I=h(Math.min,T);j.nodes().forEach(A=>{let P=j.node(A);Object.hasOwn(P,"rank")&&(P.rank-=I)})}function u(j){let T=j.nodes().map(D=>j.node(D).rank),I=h(Math.min,T),A=[];j.nodes().forEach(D=>{let q=j.node(D).rank-I;A[q]||(A[q]=[]),A[q].push(D)});let P=0,L=j.graph().nodeRankFactor;Array.from(A).forEach((D,q)=>{D===void 0&&q%L!==0?--P:D!==void 0&&P&&D.forEach(H=>j.node(H).rank+=P)})}function d(j,T,I,A){let P={width:0,height:0};return arguments.length>=4&&(P.rank=I,P.order=A),t(j,"border",P,T)}function f(j,T=p){const I=[];for(let A=0;A<j.length;A+=T){const P=j.slice(A,A+T);I.push(P)}return I}const p=65535;function h(j,T){if(T.length>p){const I=f(T);return j.apply(null,I.map(A=>j.apply(null,A)))}else return j.apply(null,T)}function m(j){const I=j.nodes().map(A=>{let P=j.node(A).rank;return P===void 0?Number.MIN_VALUE:P});return h(Math.max,I)}function v(j,T){let I={lhs:[],rhs:[]};return j.forEach(A=>{T(A)?I.lhs.push(A):I.rhs.push(A)}),I}function y(j,T){let I=Date.now();try{return T()}finally{console.log(j+" time: "+(Date.now()-I)+"ms")}}function b(j,T){return T()}let S=0;function w(j){var T=++S;return j+(""+T)}function k(j,T,I=1){T==null&&(T=j,j=0);let A=L=>L<T;I<0&&(A=L=>T<L);const P=[];for(let L=j;A(L);L+=I)P.push(L);return P}function _(j,T){const I={};for(const A of T)j[A]!==void 0&&(I[A]=j[A]);return I}function C(j,T){let I=T;return typeof T=="string"&&(I=A=>A[T]),Object.entries(j).reduce((A,[P,L])=>(A[P]=I(L,P),A),{})}function E(j,T){return j.reduce((I,A,P)=>(I[A]=T[P],I),{})}return MJ}var DJ,$9e;function rUn(){if($9e)return DJ;$9e=1;let e=nUn(),t=Il().uniqueId;DJ={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 DJ}var LJ,M9e;function sUn(){if(M9e)return LJ;M9e=1;let e=Il();LJ={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 LJ}var zJ,D9e;function M7(){if(D9e)return zJ;D9e=1;const{applyWithChunking:e}=Il();zJ={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 zJ}var FJ,L9e;function z0t(){if(L9e)return FJ;L9e=1;var e=Ag().Graph,t=M7().slack;FJ=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 FJ}var BJ,z9e;function aUn(){if(z9e)return BJ;z9e=1;var e=z0t(),t=M7().slack,n=M7().longestPath,r=Ag().alg.preorder,s=Ag().alg.postorder,a=Il().simplify;BJ=i,i.initLowLimValues=d,i.initCutValues=l,i.calcCutValue=u,i.leaveEdge=p,i.enterEdge=h,i.exchangeEdges=m;function i(S){S=a(S),n(S);var w=e(S);d(w),l(w,S);for(var k,_;k=p(w);)_=h(w,S,k),m(w,S,k,_)}function l(S,w){var k=s(S,S.nodes());k=k.slice(0,k.length-1),k.forEach(_=>c(S,w,_))}function c(S,w,k){var _=S.node(k),C=_.parent;S.edge(k,C).cutvalue=u(S,w,k)}function u(S,w,k){var _=S.node(k),C=_.parent,E=!0,j=w.edge(k,C),T=0;return j||(E=!1,j=w.edge(C,k)),T=j.weight,w.nodeEdges(k).forEach(I=>{var A=I.v===k,P=A?I.w:I.v;if(P!==C){var L=A===E,D=w.edge(I).weight;if(T+=L?D:-D,y(S,k,P)){var q=S.edge(k,P).cutvalue;T+=L?-q:q}}}),T}function d(S,w){arguments.length<2&&(w=S.nodes()[0]),f(S,{},1,w)}function f(S,w,k,_,C){var E=k,j=S.node(_);return w[_]=!0,S.neighbors(_).forEach(T=>{Object.hasOwn(w,T)||(k=f(S,w,k,T,_))}),j.low=E,j.lim=k++,C?j.parent=C:delete j.parent,k}function p(S){return S.edges().find(w=>S.edge(w).cutvalue<0)}function h(S,w,k){var _=k.v,C=k.w;w.hasEdge(_,C)||(_=k.w,C=k.v);var E=S.node(_),j=S.node(C),T=E,I=!1;E.lim>j.lim&&(T=j,I=!0);var A=w.edges().filter(P=>I===b(S,S.node(P.v),T)&&I!==b(S,S.node(P.w),T));return A.reduce((P,L)=>t(w,L)<t(w,P)?L:P)}function m(S,w,k,_){var C=k.v,E=k.w;S.removeEdge(C,E),S.setEdge(_.v,_.w,{}),d(S),l(S,w),v(S,w)}function v(S,w){var k=S.nodes().find(C=>!w.node(C).parent),_=r(S,k);_=_.slice(1),_.forEach(C=>{var E=S.node(C).parent,j=w.edge(C,E),T=!1;j||(j=w.edge(E,C),T=!0),w.node(C).rank=w.node(E).rank+(T?j.minlen:-j.minlen)})}function y(S,w,k){return S.hasEdge(w,k)}function b(S,w,k){return k.low<=w.lim&&w.lim<=k.lim}return BJ}var UJ,F9e;function iUn(){if(F9e)return UJ;F9e=1;var e=M7(),t=e.longestPath,n=z0t(),r=aUn();UJ=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 UJ}var qJ,B9e;function oUn(){if(B9e)return qJ;B9e=1,qJ=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 qJ}var VJ,U9e;function lUn(){if(U9e)return VJ;U9e=1;let e=Il();VJ={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 S=i.node(b),w=S.borderTop?S.borderTop:b,k=S.borderBottom?S.borderBottom:b,_=S.borderTop?u:2*u,C=w!==k?1:d-f[p]+1;i.setEdge(m,w,{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 VJ}var HJ,q9e;function cUn(){if(q9e)return HJ;q9e=1;let e=Il();HJ=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 HJ}var WJ,V9e;function uUn(){if(V9e)return WJ;V9e=1,WJ={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 WJ}var ZJ,H9e;function dUn(){if(H9e)return ZJ;H9e=1;let e=Il();ZJ=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 ZJ}var GJ,W9e;function fUn(){if(W9e)return GJ;W9e=1;let e=Il().zipObject;GJ=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 GJ}var QJ,Z9e;function pUn(){if(Z9e)return QJ;Z9e=1,QJ=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 QJ}var YJ,G9e;function hUn(){if(G9e)return YJ;G9e=1;let e=Il();YJ=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 YJ}var XJ,Q9e;function mUn(){if(Q9e)return XJ;Q9e=1;let e=Il();XJ=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 XJ}var KJ,Y9e;function gUn(){if(Y9e)return KJ;Y9e=1;let e=pUn(),t=hUn(),n=mUn();KJ=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(S=>S!==p&&S!==h));let v=e(i,d);v.forEach(S=>{if(i.children(S.v).length){let w=r(i,S.v,c,u);m[S.v]=w,Object.hasOwn(w,"barycenter")&&a(S,w)}});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 S=i.node(i.predecessors(p)[0]),w=i.node(i.predecessors(h)[0]);Object.hasOwn(b,"barycenter")||(b.barycenter=0,b.weight=0),b.barycenter=(b.barycenter*b.weight+S.order+w.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 KJ}var JJ,X9e;function vUn(){if(X9e)return JJ;X9e=1;let e=Ag().Graph,t=Il();JJ=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 JJ}var eee,K9e;function yUn(){if(K9e)return eee;K9e=1,eee=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 eee}var tee,J9e;function bUn(){if(J9e)return tee;J9e=1;let e=dUn(),t=fUn(),n=gUn(),r=vUn(),s=yUn(),a=Ag().Graph,i=Il();tee=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,S;for(let w=0,k=0;k<4;++w,++k){u(w%2?m:v,w%4>=2),y=i.buildLayerMatrix(f);let _=t(f,y);_<b&&(k=0,S=Object.assign({},y),b=_)}d(f,S)}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 S=b.minRank;S<=b.maxRank;S++)S!==b.rank&&v(S,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,S)=>m.node(b).order=S),s(m,h,y.vs)})}function d(f,p){Object.values(p).forEach(h=>h.forEach((m,v)=>f.node(m).order=v))}return tee}var nee,eze;function xUn(){if(eze)return nee;eze=1;let e=Ag().Graph,t=Il();nee={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 S={};function w(k,_){let C=0,E=0,j=k.length,T=_[_.length-1];return _.forEach((I,A)=>{let P=s(y,I),L=P?y.node(P).order:j;(P||I===T)&&(_.slice(E,A+1).forEach(D=>{y.predecessors(D).forEach(q=>{let H=y.node(q),z=H.order;(z<C||L<z)&&!(H.dummy&&y.node(D).dummy)&&a(S,q,D)})}),E=A+1,C=L)}),_}return b.length&&b.reduce(w),S}function r(y,b){let S={};function w(_,C,E,j,T){let I;t.range(C,E).forEach(A=>{I=_[A],y.node(I).dummy&&y.predecessors(I).forEach(P=>{let L=y.node(P);L.dummy&&(L.order<j||L.order>T)&&a(S,P,I)})})}function k(_,C){let E=-1,j,T=0;return C.forEach((I,A)=>{if(y.node(I).dummy==="border"){let P=y.predecessors(I);P.length&&(j=y.node(P[0]).order,w(C,T,A,E,j),T=A,E=j)}w(C,T,C.length,j,_.length)}),C}return b.length&&b.reduce(k),S}function s(y,b){if(y.node(b).dummy)return y.predecessors(b).find(S=>y.node(S).dummy)}function a(y,b,S){if(b>S){let k=b;b=S,S=k}let w=y[b];w||(y[b]=w={}),w[S]=!0}function i(y,b,S){if(b>S){let w=b;b=S,S=w}return!!y[b]&&Object.hasOwn(y[b],S)}function l(y,b,S,w){let k={},_={},C={};return b.forEach(E=>{E.forEach((j,T)=>{k[j]=j,_[j]=j,C[j]=T})}),b.forEach(E=>{let j=-1;E.forEach(T=>{let I=w(T);if(I.length){I=I.sort((P,L)=>C[P]-C[L]);let A=(I.length-1)/2;for(let P=Math.floor(A),L=Math.ceil(A);P<=L;++P){let D=I[P];_[T]===T&&j<C[D]&&!i(S,T,D)&&(_[D]=T,_[T]=k[T]=k[D],j=C[D])}}})}),{root:k,align:_}}function c(y,b,S,w,k){let _={},C=u(y,b,S,k),E=k?"borderLeft":"borderRight";function j(A,P){let L=C.nodes(),D=L.pop(),q={};for(;D;)q[D]?A(D):(q[D]=!0,L.push(D),L=L.concat(P(D))),D=L.pop()}function T(A){_[A]=C.inEdges(A).reduce((P,L)=>Math.max(P,_[L.v]+C.edge(L)),0)}function I(A){let P=C.outEdges(A).reduce((D,q)=>Math.min(D,_[q.w]-C.edge(q)),Number.POSITIVE_INFINITY),L=y.node(A);P!==Number.POSITIVE_INFINITY&&L.borderType!==E&&(_[A]=Math.max(_[A],P))}return j(T,C.predecessors.bind(C)),j(I,C.successors.bind(C)),Object.keys(w).forEach(A=>_[A]=_[S[A]]),_}function u(y,b,S,w){let k=new e,_=y.graph(),C=m(_.nodesep,_.edgesep,w);return b.forEach(E=>{let j;E.forEach(T=>{let I=S[T];if(k.setNode(I),j){var A=S[j],P=k.edge(A,I);k.setEdge(A,I,Math.max(C(y,T,j),P||0))}j=T})}),k}function d(y,b){return Object.values(b).reduce((S,w)=>{let k=Number.NEGATIVE_INFINITY,_=Number.POSITIVE_INFINITY;Object.entries(w).forEach(([E,j])=>{let T=v(y,E)/2;k=Math.max(j+T,k),_=Math.min(j-T,_)});const C=k-_;return C<S[0]&&(S=[C,w]),S},[Number.POSITIVE_INFINITY,null])[1]}function f(y,b){let S=Object.values(b),w=t.applyWithChunking(Math.min,S),k=t.applyWithChunking(Math.max,S);["u","d"].forEach(_=>{["l","r"].forEach(C=>{let E=_+C,j=y[E];if(j===b)return;let T=Object.values(j),I=w-t.applyWithChunking(Math.min,T);C!=="l"&&(I=k-t.applyWithChunking(Math.max,T)),I&&(y[E]=t.mapValues(j,A=>A+I))})})}function p(y,b){return t.mapValues(y.ul,(S,w)=>{if(b)return y[b.toLowerCase()][w];{let k=Object.values(y).map(_=>_[w]).sort((_,C)=>_-C);return(k[1]+k[2])/2}})}function h(y){let b=t.buildLayerMatrix(y),S=Object.assign(n(y,b),r(y,b)),w={},k;["u","d"].forEach(C=>{k=C==="u"?b:Object.values(b).reverse(),["l","r"].forEach(E=>{E==="r"&&(k=k.map(A=>Object.values(A).reverse()));let j=(C==="u"?y.predecessors:y.successors).bind(y),T=l(y,k,S,j),I=c(y,k,T.root,T.align,E==="r");E==="r"&&(I=t.mapValues(I,A=>-A)),w[C+E]=I})});let _=d(y,w);return f(w,_),p(w,y.graph().align)}function m(y,b,S){return(w,k,_)=>{let C=w.node(k),E=w.node(_),j=0,T;if(j+=C.width/2,Object.hasOwn(C,"labelpos"))switch(C.labelpos.toLowerCase()){case"l":T=-C.width/2;break;case"r":T=C.width/2;break}if(T&&(j+=S?T:-T),T=0,j+=(C.dummy?b:y)/2,j+=(E.dummy?b:y)/2,j+=E.width/2,Object.hasOwn(E,"labelpos"))switch(E.labelpos.toLowerCase()){case"l":T=E.width/2;break;case"r":T=-E.width/2;break}return T&&(j+=S?T:-T),T=0,j}}function v(y,b){return y.node(b).width}return nee}var ree,tze;function wUn(){if(tze)return ree;tze=1;let e=Il(),t=xUn().positionX;ree=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 ree}var see,nze;function SUn(){if(nze)return see;nze=1;let e=rUn(),t=sUn(),n=iUn(),r=Il().normalizeRanks,s=oUn(),a=Il().removeEmptyRanks,i=lUn(),l=cUn(),c=uUn(),u=bUn(),d=wUn(),f=Il(),p=Ag().Graph;see=h;function h($,F){let Z=F&&F.debugTiming?f.time:f.notime;Z("layout",()=>{let X=Z(" buildLayoutGraph",()=>j($));Z(" runLayout",()=>m(X,Z,F)),Z(" updateInputGraph",()=>v($,X))})}function m($,F,Z){F(" makeSpaceForEdgeLabels",()=>T($)),F(" removeSelfEdges",()=>B($)),F(" acyclic",()=>e.run($)),F(" nestingGraph.run",()=>i.run($)),F(" rank",()=>n(f.asNonCompoundGraph($))),F(" injectEdgeLabelProxies",()=>I($)),F(" removeEmptyRanks",()=>a($)),F(" nestingGraph.cleanup",()=>i.cleanup($)),F(" normalizeRanks",()=>r($)),F(" assignRankMinMax",()=>A($)),F(" removeEdgeLabelProxies",()=>P($)),F(" normalize.run",()=>t.run($)),F(" parentDummyChains",()=>s($)),F(" addBorderSegments",()=>l($)),F(" order",()=>u($,Z)),F(" insertSelfEdges",()=>V($)),F(" adjustCoordinateSystem",()=>c.adjust($)),F(" position",()=>d($)),F(" positionSelfEdges",()=>M($)),F(" removeBorderNodes",()=>z($)),F(" normalize.undo",()=>t.undo($)),F(" fixupEdgeLabelCoords",()=>q($)),F(" undoCoordinateSystem",()=>c.undo($)),F(" translateGraph",()=>L($)),F(" assignNodeIntersects",()=>D($)),F(" reversePoints",()=>H($)),F(" acyclic.undo",()=>e.undo($))}function v($,F){$.nodes().forEach(Z=>{let X=$.node(Z),te=F.node(Z);X&&(X.x=te.x,X.y=te.y,X.rank=te.rank,F.children(Z).length&&(X.width=te.width,X.height=te.height))}),$.edges().forEach(Z=>{let X=$.edge(Z),te=F.edge(Z);X.points=te.points,Object.hasOwn(te,"x")&&(X.x=te.x,X.y=te.y)}),$.graph().width=F.graph().width,$.graph().height=F.graph().height}let y=["nodesep","edgesep","ranksep","marginx","marginy"],b={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},S=["acyclicer","ranker","rankdir","align"],w=["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"},E=["labelpos"];function j($){let F=new p({multigraph:!0,compound:!0}),Z=U($.graph());return F.setGraph(Object.assign({},b,Q(Z,y),f.pick(Z,S))),$.nodes().forEach(X=>{let te=U($.node(X));const ee=Q(te,w);Object.keys(k).forEach(J=>{ee[J]===void 0&&(ee[J]=k[J])}),F.setNode(X,ee),F.setParent(X,$.parent(X))}),$.edges().forEach(X=>{let te=U($.edge(X));F.setEdge(X,Object.assign({},C,Q(te,_),f.pick(te,E)))}),F}function T($){let F=$.graph();F.ranksep/=2,$.edges().forEach(Z=>{let X=$.edge(Z);X.minlen*=2,X.labelpos.toLowerCase()!=="c"&&(F.rankdir==="TB"||F.rankdir==="BT"?X.width+=X.labeloffset:X.height+=X.labeloffset)})}function I($){$.edges().forEach(F=>{let Z=$.edge(F);if(Z.width&&Z.height){let X=$.node(F.v),ee={rank:($.node(F.w).rank-X.rank)/2+X.rank,e:F};f.addDummyNode($,"edge-proxy",ee,"_ep")}})}function A($){let F=0;$.nodes().forEach(Z=>{let X=$.node(Z);X.borderTop&&(X.minRank=$.node(X.borderTop).rank,X.maxRank=$.node(X.borderBottom).rank,F=Math.max(F,X.maxRank))}),$.graph().maxRank=F}function P($){$.nodes().forEach(F=>{let Z=$.node(F);Z.dummy==="edge-proxy"&&($.edge(Z.e).labelRank=Z.rank,$.removeNode(F))})}function L($){let F=Number.POSITIVE_INFINITY,Z=0,X=Number.POSITIVE_INFINITY,te=0,ee=$.graph(),J=ee.marginx||0,ae=ee.marginy||0;function pe(Y){let ne=Y.x,ue=Y.y,fe=Y.width,oe=Y.height;F=Math.min(F,ne-fe/2),Z=Math.max(Z,ne+fe/2),X=Math.min(X,ue-oe/2),te=Math.max(te,ue+oe/2)}$.nodes().forEach(Y=>pe($.node(Y))),$.edges().forEach(Y=>{let ne=$.edge(Y);Object.hasOwn(ne,"x")&&pe(ne)}),F-=J,X-=ae,$.nodes().forEach(Y=>{let ne=$.node(Y);ne.x-=F,ne.y-=X}),$.edges().forEach(Y=>{let ne=$.edge(Y);ne.points.forEach(ue=>{ue.x-=F,ue.y-=X}),Object.hasOwn(ne,"x")&&(ne.x-=F),Object.hasOwn(ne,"y")&&(ne.y-=X)}),ee.width=Z-F+J,ee.height=te-X+ae}function D($){$.edges().forEach(F=>{let Z=$.edge(F),X=$.node(F.v),te=$.node(F.w),ee,J;Z.points?(ee=Z.points[0],J=Z.points[Z.points.length-1]):(Z.points=[],ee=te,J=X),Z.points.unshift(f.intersectRect(X,ee)),Z.points.push(f.intersectRect(te,J))})}function q($){$.edges().forEach(F=>{let Z=$.edge(F);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(F=>{let Z=$.edge(F);Z.reversed&&Z.points.reverse()})}function z($){$.nodes().forEach(F=>{if($.children(F).length){let Z=$.node(F),X=$.node(Z.borderTop),te=$.node(Z.borderBottom),ee=$.node(Z.borderLeft[Z.borderLeft.length-1]),J=$.node(Z.borderRight[Z.borderRight.length-1]);Z.width=Math.abs(J.x-ee.x),Z.height=Math.abs(te.y-X.y),Z.x=ee.x+Z.width/2,Z.y=X.y+Z.height/2}}),$.nodes().forEach(F=>{$.node(F).dummy==="border"&&$.removeNode(F)})}function B($){$.edges().forEach(F=>{if(F.v===F.w){var Z=$.node(F.v);Z.selfEdges||(Z.selfEdges=[]),Z.selfEdges.push({e:F,label:$.edge(F)}),$.removeEdge(F)}})}function V($){var F=f.buildLayerMatrix($);F.forEach(Z=>{var X=0;Z.forEach((te,ee)=>{var J=$.node(te);J.order=ee+X,(J.selfEdges||[]).forEach(ae=>{f.addDummyNode($,"selfedge",{width:ae.label.width,height:ae.label.height,rank:J.rank,order:ee+ ++X,e:ae.e,label:ae.label},"_se")}),delete J.selfEdges})})}function M($){$.nodes().forEach(F=>{var Z=$.node(F);if(Z.dummy==="selfedge"){var X=$.node(Z.e.v),te=X.x+X.width/2,ee=X.y,J=Z.x-te,ae=X.height/2;$.setEdge(Z.e,Z.label),$.removeNode(F),Z.label.points=[{x:te+2*J/3,y:ee-ae},{x:te+5*J/6,y:ee-ae},{x:te+J,y:ee},{x:te+5*J/6,y:ee+ae},{x:te+2*J/3,y:ee+ae}],Z.label.x=Z.x,Z.label.y=Z.y}})}function Q($,F){return f.mapValues(f.pick($,F),Number)}function U($){var F={};return $&&Object.entries($).forEach(([Z,X])=>{typeof Z=="string"&&(Z=Z.toLowerCase()),F[Z]=X}),F}return see}var aee,rze;function kUn(){if(rze)return aee;rze=1;let e=Il(),t=Ag().Graph;aee={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 aee}var iee,sze;function OUn(){return sze||(sze=1,iee="1.1.8"),iee}var oee,aze;function _Un(){return aze||(aze=1,oee={graphlib:Ag(),layout:SUn(),debug:kUn(),util:{time:Il().time,notime:Il().notime},version:OUn()}),oee}var CUn=_Un();const ize=Tc(CUn);function Dl(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=Dl(e[n]))!==""&&(t+=(t&&" ")+r);else for(let n in e)e[n]&&(t+=(t&&" ")+n);return t}var EUn={value:()=>{}};function FV(){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 sF(n)}function sF(e){this._=e}function jUn(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}})}sF.prototype=FV.prototype={constructor:sF,on:function(e,t){var n=this._,r=jUn(e+"",n),s,a=-1,i=r.length;if(arguments.length<2){for(;++a<i;)if((s=(e=r[a]).type)&&(s=TUn(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]=oze(n[s],e.name,t);else if(t==null)for(s in n)n[s]=oze(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 sF(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 TUn(e,t){for(var n=0,r=e.length,s;n<r;++n)if((s=e[n]).name===t)return s.value}function oze(e,t,n){for(var r=0,s=e.length;r<s;++r)if(e[r].name===t){e[r]=EUn,e=e.slice(0,r).concat(e.slice(r+1));break}return n!=null&&e.push({name:t,value:n}),e}var qhe="http://www.w3.org/1999/xhtml";const lze={svg:"http://www.w3.org/2000/svg",xhtml:qhe,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function BV(e){var t=e+="",n=t.indexOf(":");return n>=0&&(t=e.slice(0,n))!=="xmlns"&&(e=e.slice(n+1)),lze.hasOwnProperty(t)?{space:lze[t],local:e}:e}function NUn(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===qhe&&t.documentElement.namespaceURI===qhe?t.createElement(e):t.createElementNS(n,e)}}function IUn(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function F0t(e){var t=BV(e);return(t.local?IUn:NUn)(t)}function AUn(){}function R1e(e){return e==null?AUn:function(){return this.querySelector(e)}}function RUn(e){typeof e!="function"&&(e=R1e(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 qp(r,this._parents)}function PUn(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function $Un(){return[]}function B0t(e){return e==null?$Un:function(){return this.querySelectorAll(e)}}function MUn(e){return function(){return PUn(e.apply(this,arguments))}}function DUn(e){typeof e=="function"?e=MUn(e):e=B0t(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 qp(r,s)}function U0t(e){return function(){return this.matches(e)}}function q0t(e){return function(t){return t.matches(e)}}var LUn=Array.prototype.find;function zUn(e){return function(){return LUn.call(this.children,e)}}function FUn(){return this.firstElementChild}function BUn(e){return this.select(e==null?FUn:zUn(typeof e=="function"?e:q0t(e)))}var UUn=Array.prototype.filter;function qUn(){return Array.from(this.children)}function VUn(e){return function(){return UUn.call(this.children,e)}}function HUn(e){return this.selectAll(e==null?qUn:VUn(typeof e=="function"?e:q0t(e)))}function WUn(e){typeof e!="function"&&(e=U0t(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 qp(r,this._parents)}function V0t(e){return new Array(e.length)}function ZUn(){return new qp(this._enter||this._groups.map(V0t),this._parents)}function D7(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}D7.prototype={constructor:D7,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 GUn(e){return function(){return e}}function QUn(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 D7(e,a[i]);for(;i<c;++i)(l=t[i])&&(s[i]=l)}function YUn(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 D7(e,a[l]);for(l=0;l<d;++l)(c=t[l])&&u.get(p[l])===c&&(s[l]=c)}function XUn(e){return e.__data__}function KUn(e,t){if(!arguments.length)return Array.from(this,XUn);var n=t?YUn:QUn,r=this._parents,s=this._groups;typeof e!="function"&&(e=GUn(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=JUn(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 S=0,w=0,k,_;S<m;++S)if(k=v[S]){for(S>=w&&(w=S+1);!(_=y[w])&&++w<m;);k._next=_||null}}return i=new qp(i,r),i._enter=l,i._exit=c,i}function JUn(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function eqn(){return new qp(this._exit||this._groups.map(V0t),this._parents)}function tqn(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 nqn(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 qp(l,this._parents)}function rqn(){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 sqn(e){e||(e=aqn);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 qp(s,this._parents).order()}function aqn(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function iqn(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function oqn(){return Array.from(this)}function lqn(){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 cqn(){let e=0;for(const t of this)++e;return e}function uqn(){return!this.node()}function dqn(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 fqn(e){return function(){this.removeAttribute(e)}}function pqn(e){return function(){this.removeAttributeNS(e.space,e.local)}}function hqn(e,t){return function(){this.setAttribute(e,t)}}function mqn(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function gqn(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}}function vqn(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 yqn(e,t){var n=BV(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?pqn:fqn:typeof t=="function"?n.local?vqn:gqn:n.local?mqn:hqn)(n,t))}function H0t(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function bqn(e){return function(){this.style.removeProperty(e)}}function xqn(e,t,n){return function(){this.style.setProperty(e,t,n)}}function wqn(e,t,n){return function(){var r=t.apply(this,arguments);r==null?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function Sqn(e,t,n){return arguments.length>1?this.each((t==null?bqn:typeof t=="function"?wqn:xqn)(e,t,n??"")):ST(this.node(),e)}function ST(e,t){return e.style.getPropertyValue(t)||H0t(e).getComputedStyle(e,null).getPropertyValue(t)}function kqn(e){return function(){delete this[e]}}function Oqn(e,t){return function(){this[e]=t}}function _qn(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function Cqn(e,t){return arguments.length>1?this.each((t==null?kqn:typeof t=="function"?_qn:Oqn)(e,t)):this.node()[e]}function W0t(e){return e.trim().split(/^|\s+/)}function P1e(e){return e.classList||new Z0t(e)}function Z0t(e){this._node=e,this._names=W0t(e.getAttribute("class")||"")}Z0t.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 G0t(e,t){for(var n=P1e(e),r=-1,s=t.length;++r<s;)n.add(t[r])}function Q0t(e,t){for(var n=P1e(e),r=-1,s=t.length;++r<s;)n.remove(t[r])}function Eqn(e){return function(){G0t(this,e)}}function jqn(e){return function(){Q0t(this,e)}}function Tqn(e,t){return function(){(t.apply(this,arguments)?G0t:Q0t)(this,e)}}function Nqn(e,t){var n=W0t(e+"");if(arguments.length<2){for(var r=P1e(this.node()),s=-1,a=n.length;++s<a;)if(!r.contains(n[s]))return!1;return!0}return this.each((typeof t=="function"?Tqn:t?Eqn:jqn)(n,t))}function Iqn(){this.textContent=""}function Aqn(e){return function(){this.textContent=e}}function Rqn(e){return function(){var t=e.apply(this,arguments);this.textContent=t??""}}function Pqn(e){return arguments.length?this.each(e==null?Iqn:(typeof e=="function"?Rqn:Aqn)(e)):this.node().textContent}function $qn(){this.innerHTML=""}function Mqn(e){return function(){this.innerHTML=e}}function Dqn(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??""}}function Lqn(e){return arguments.length?this.each(e==null?$qn:(typeof e=="function"?Dqn:Mqn)(e)):this.node().innerHTML}function zqn(){this.nextSibling&&this.parentNode.appendChild(this)}function Fqn(){return this.each(zqn)}function Bqn(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function Uqn(){return this.each(Bqn)}function qqn(e){var t=typeof e=="function"?e:F0t(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function Vqn(){return null}function Hqn(e,t){var n=typeof e=="function"?e:F0t(e),r=t==null?Vqn:typeof t=="function"?t:R1e(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})}function Wqn(){var e=this.parentNode;e&&e.removeChild(this)}function Zqn(){return this.each(Wqn)}function Gqn(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function Qqn(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function Yqn(e){return this.select(e?Qqn:Gqn)}function Xqn(e){return arguments.length?this.property("__data__",e):this.node().__data__}function Kqn(e){return function(t){e.call(this,t,this.__data__)}}function Jqn(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 eVn(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 tVn(e,t,n){return function(){var r=this.__on,s,a=Kqn(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 nVn(e,t,n){var r=Jqn(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?tVn:eVn,s=0;s<a;++s)this.each(l(r[s],t,n));return this}function Y0t(e,t,n){var r=H0t(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 rVn(e,t){return function(){return Y0t(this,e,t)}}function sVn(e,t){return function(){return Y0t(this,e,t.apply(this,arguments))}}function aVn(e,t){return this.each((typeof t=="function"?sVn:rVn)(e,t))}function*iVn(){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 X0t=[null];function qp(e,t){this._groups=e,this._parents=t}function g3(){return new qp([[document.documentElement]],X0t)}function oVn(){return this}qp.prototype=g3.prototype={constructor:qp,select:RUn,selectAll:DUn,selectChild:BUn,selectChildren:HUn,filter:WUn,data:KUn,enter:ZUn,exit:eqn,join:tqn,merge:nqn,selection:oVn,order:rqn,sort:sqn,call:iqn,nodes:oqn,node:lqn,size:cqn,empty:uqn,each:dqn,attr:yqn,style:Sqn,property:Cqn,classed:Nqn,text:Pqn,html:Lqn,raise:Fqn,lower:Uqn,append:qqn,insert:Hqn,remove:Zqn,clone:Yqn,datum:Xqn,on:nVn,dispatch:aVn,[Symbol.iterator]:iVn};function yp(e){return typeof e=="string"?new qp([[document.querySelector(e)]],[document.documentElement]):new qp([[e]],X0t)}function lVn(e){let t;for(;t=e.sourceEvent;)e=t;return e}function tg(e,t){if(e=lVn(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 cVn={passive:!1},rM={capture:!0,passive:!1};function lee(e){e.stopImmediatePropagation()}function jj(e){e.preventDefault(),e.stopImmediatePropagation()}function K0t(e){var t=e.document.documentElement,n=yp(e).on("dragstart.drag",jj,rM);"onselectstart"in t?n.on("selectstart.drag",jj,rM):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect="none")}function J0t(e,t){var n=e.document.documentElement,r=yp(e).on("dragstart.drag",null);t&&(r.on("click.drag",jj,rM),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 E6=e=>()=>e;function Vhe(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}})}Vhe.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function uVn(e){return!e.ctrlKey&&!e.button}function dVn(){return this.parentNode}function fVn(e,t){return t??{x:e.x,y:e.y}}function pVn(){return navigator.maxTouchPoints||"ontouchstart"in this}function ewt(){var e=uVn,t=dVn,n=fVn,r=pVn,s={},a=FV("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,cVn).on("touchend.drag touchcancel.drag",S).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=w(this,t.call(this,k,_),k,_,"mouse");C&&(yp(k.view).on("mousemove.drag",m,rM).on("mouseup.drag",v,rM),K0t(k.view),lee(k),u=!1,l=k.clientX,c=k.clientY,C("start",k))}}function m(k){if(jj(k),!u){var _=k.clientX-l,C=k.clientY-c;u=_*_+C*C>f}s.mouse("drag",k)}function v(k){yp(k.view).on("mousemove.drag mouseup.drag",null),J0t(k.view,u),jj(k),s.mouse("end",k)}function y(k,_){if(e.call(this,k,_)){var C=k.changedTouches,E=t.call(this,k,_),j=C.length,T,I;for(T=0;T<j;++T)(I=w(this,E,k,_,C[T].identifier,C[T]))&&(lee(k),I("start",k,C[T]))}}function b(k){var _=k.changedTouches,C=_.length,E,j;for(E=0;E<C;++E)(j=s[_[E].identifier])&&(jj(k),j("drag",k,_[E]))}function S(k){var _=k.changedTouches,C=_.length,E,j;for(d&&clearTimeout(d),d=setTimeout(function(){d=null},500),E=0;E<C;++E)(j=s[_[E].identifier])&&(lee(k),j("end",k,_[E]))}function w(k,_,C,E,j,T){var I=a.copy(),A=tg(T||C,_),P,L,D;if((D=n.call(k,new Vhe("beforestart",{sourceEvent:C,target:p,identifier:j,active:i,x:A[0],y:A[1],dx:0,dy:0,dispatch:I}),E))!=null)return P=D.x-A[0]||0,L=D.y-A[1]||0,function q(H,z,B){var V=A,M;switch(H){case"start":s[j]=q,M=i++;break;case"end":delete s[j],--i;case"drag":A=tg(B||z,_),M=i;break}I.call(H,k,new Vhe(H,{sourceEvent:z,subject:D,target:p,identifier:j,active:M,x:A[0]+P,y:A[1]+L,dx:A[0]-V[0],dy:A[1]-V[1],dispatch:I}),E)}}return p.filter=function(k){return arguments.length?(e=typeof k=="function"?k:E6(!!k),p):e},p.container=function(k){return arguments.length?(t=typeof k=="function"?k:E6(k),p):t},p.subject=function(k){return arguments.length?(n=typeof k=="function"?k:E6(k),p):n},p.touchable=function(k){return arguments.length?(r=typeof k=="function"?k:E6(!!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 $1e(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function twt(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function v3(){}var sM=.7,L7=1/sM,Tj="\\s*([+-]?\\d+)\\s*",aM="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",ey="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",hVn=/^#([0-9a-f]{3,8})$/,mVn=new RegExp(`^rgb\\(${Tj},${Tj},${Tj}\\)$`),gVn=new RegExp(`^rgb\\(${ey},${ey},${ey}\\)$`),vVn=new RegExp(`^rgba\\(${Tj},${Tj},${Tj},${aM}\\)$`),yVn=new RegExp(`^rgba\\(${ey},${ey},${ey},${aM}\\)$`),bVn=new RegExp(`^hsl\\(${aM},${ey},${ey}\\)$`),xVn=new RegExp(`^hsla\\(${aM},${ey},${ey},${aM}\\)$`),cze={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};$1e(v3,RO,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:uze,formatHex:uze,formatHex8:wVn,formatHsl:SVn,formatRgb:dze,toString:dze});function uze(){return this.rgb().formatHex()}function wVn(){return this.rgb().formatHex8()}function SVn(){return nwt(this).formatHsl()}function dze(){return this.rgb().formatRgb()}function RO(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=hVn.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?fze(t):n===3?new of(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?j6(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?j6(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=mVn.exec(e))?new of(t[1],t[2],t[3],1):(t=gVn.exec(e))?new of(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=vVn.exec(e))?j6(t[1],t[2],t[3],t[4]):(t=yVn.exec(e))?j6(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=bVn.exec(e))?mze(t[1],t[2]/100,t[3]/100,1):(t=xVn.exec(e))?mze(t[1],t[2]/100,t[3]/100,t[4]):cze.hasOwnProperty(e)?fze(cze[e]):e==="transparent"?new of(NaN,NaN,NaN,0):null}function fze(e){return new of(e>>16&255,e>>8&255,e&255,1)}function j6(e,t,n,r){return r<=0&&(e=t=n=NaN),new of(e,t,n,r)}function kVn(e){return e instanceof v3||(e=RO(e)),e?(e=e.rgb(),new of(e.r,e.g,e.b,e.opacity)):new of}function Hhe(e,t,n,r){return arguments.length===1?kVn(e):new of(e,t,n,r??1)}function of(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}$1e(of,Hhe,twt(v3,{brighter(e){return e=e==null?L7:Math.pow(L7,e),new of(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?sM:Math.pow(sM,e),new of(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new of(Hk(this.r),Hk(this.g),Hk(this.b),z7(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:pze,formatHex:pze,formatHex8:OVn,formatRgb:hze,toString:hze}));function pze(){return`#${Tk(this.r)}${Tk(this.g)}${Tk(this.b)}`}function OVn(){return`#${Tk(this.r)}${Tk(this.g)}${Tk(this.b)}${Tk((isNaN(this.opacity)?1:this.opacity)*255)}`}function hze(){const e=z7(this.opacity);return`${e===1?"rgb(":"rgba("}${Hk(this.r)}, ${Hk(this.g)}, ${Hk(this.b)}${e===1?")":`, ${e})`}`}function z7(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Hk(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Tk(e){return e=Hk(e),(e<16?"0":"")+e.toString(16)}function mze(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new og(e,t,n,r)}function nwt(e){if(e instanceof og)return new og(e.h,e.s,e.l,e.opacity);if(e instanceof v3||(e=RO(e)),!e)return new og;if(e instanceof og)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 og(i,l,c,e.opacity)}function _Vn(e,t,n,r){return arguments.length===1?nwt(e):new og(e,t,n,r??1)}function og(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}$1e(og,_Vn,twt(v3,{brighter(e){return e=e==null?L7:Math.pow(L7,e),new og(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?sM:Math.pow(sM,e),new og(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 of(cee(e>=240?e-240:e+120,s,r),cee(e,s,r),cee(e<120?e+240:e-120,s,r),this.opacity)},clamp(){return new og(gze(this.h),T6(this.s),T6(this.l),z7(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=z7(this.opacity);return`${e===1?"hsl(":"hsla("}${gze(this.h)}, ${T6(this.s)*100}%, ${T6(this.l)*100}%${e===1?")":`, ${e})`}`}}));function gze(e){return e=(e||0)%360,e<0?e+360:e}function T6(e){return Math.max(0,Math.min(1,e||0))}function cee(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 M1e=e=>()=>e;function CVn(e,t){return function(n){return e+n*t}}function EVn(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 jVn(e){return(e=+e)==1?rwt:function(t,n){return n-t?EVn(t,n,e):M1e(isNaN(t)?n:t)}}function rwt(e,t){var n=t-e;return n?CVn(e,n):M1e(isNaN(e)?t:e)}const F7=(function e(t){var n=jVn(t);function r(s,a){var i=n((s=Hhe(s)).r,(a=Hhe(a)).r),l=n(s.g,a.g),c=n(s.b,a.b),u=rwt(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 TVn(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 NVn(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function IVn(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]=sx(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 AVn(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function rg(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function RVn(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]=sx(e[s],t[s]):r[s]=t[s];return function(a){for(s in n)r[s]=n[s](a);return r}}var Whe=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,uee=new RegExp(Whe.source,"g");function PVn(e){return function(){return e}}function $Vn(e){return function(t){return e(t)+""}}function swt(e,t){var n=Whe.lastIndex=uee.lastIndex=0,r,s,a,i=-1,l=[],c=[];for(e=e+"",t=t+"";(r=Whe.exec(e))&&(s=uee.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:rg(r,s)})),n=uee.lastIndex;return n<t.length&&(a=t.slice(n),l[i]?l[i]+=a:l[++i]=a),l.length<2?c[0]?$Vn(c[0].x):PVn(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 sx(e,t){var n=typeof t,r;return t==null||n==="boolean"?M1e(t):(n==="number"?rg:n==="string"?(r=RO(t))?(t=r,F7):swt:t instanceof RO?F7:t instanceof Date?AVn:NVn(t)?TVn:Array.isArray(t)?IVn:typeof t.valueOf!="function"&&typeof t.toString!="function"||isNaN(t)?RVn:rg)(e,t)}function D1e(e,t){return e=+e,t=+t,function(n){return Math.round(e*(1-n)+t*n)}}var vze=180/Math.PI,Zhe={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function awt(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)*vze,skewX:Math.atan(c)*vze,scaleX:i,scaleY:l}}var N6;function MVn(e){const t=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?Zhe:awt(t.a,t.b,t.c,t.d,t.e,t.f)}function DVn(e){return e==null||(N6||(N6=document.createElementNS("http://www.w3.org/2000/svg","g")),N6.setAttribute("transform",e),!(e=N6.transform.baseVal.consolidate()))?Zhe:(e=e.matrix,awt(e.a,e.b,e.c,e.d,e.e,e.f))}function iwt(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:rg(u,f)},{i:v-2,x:rg(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:rg(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:rg(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:rg(u,f)},{i:v-2,x:rg(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 LVn=iwt(MVn,"px, ","px)","deg)"),zVn=iwt(DVn,", ",")",")"),FVn=1e-12;function yze(e){return((e=Math.exp(e))+1/e)/2}function BVn(e){return((e=Math.exp(e))-1/e)/2}function UVn(e){return((e=Math.exp(2*e))-1)/(e+1)}const aF=(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<FVn)b=Math.log(p/u)/t,y=function(E){return[l+E*h,c+E*m,u*Math.exp(t*E*b)]};else{var S=Math.sqrt(v),w=(p*p-u*u+r*v)/(2*u*n*S),k=(p*p-u*u-r*v)/(2*p*n*S),_=Math.log(Math.sqrt(w*w+1)-w),C=Math.log(Math.sqrt(k*k+1)-k);b=(C-_)/t,y=function(E){var j=E*b,T=yze(_),I=u/(n*S)*(T*UVn(t*j+_)-BVn(_));return[l+I*h,c+I*m,u*T/yze(t*j+_)]}}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 qVn(e,t){t===void 0&&(t=e,e=sx);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 kT=0,d2=0,QA=0,owt=1e3,B7,f2,U7=0,PO=0,UV=0,iM=typeof performance=="object"&&performance.now?performance:Date,lwt=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function L1e(){return PO||(lwt(VVn),PO=iM.now()+UV)}function VVn(){PO=0}function q7(){this._call=this._time=this._next=null}q7.prototype=cwt.prototype={constructor:q7,restart:function(e,t,n){if(typeof e!="function")throw new TypeError("callback is not a function");n=(n==null?L1e():+n)+(t==null?0:+t),!this._next&&f2!==this&&(f2?f2._next=this:B7=this,f2=this),this._call=e,this._time=n,Ghe()},stop:function(){this._call&&(this._call=null,this._time=1/0,Ghe())}};function cwt(e,t,n){var r=new q7;return r.restart(e,t,n),r}function HVn(){L1e(),++kT;for(var e=B7,t;e;)(t=PO-e._time)>=0&&e._call.call(void 0,t),e=e._next;--kT}function bze(){PO=(U7=iM.now())+UV,kT=d2=0;try{HVn()}finally{kT=0,ZVn(),PO=0}}function WVn(){var e=iM.now(),t=e-U7;t>owt&&(UV-=t,U7=e)}function ZVn(){for(var e,t=B7,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:B7=n);f2=e,Ghe(r)}function Ghe(e){if(!kT){d2&&(d2=clearTimeout(d2));var t=e-PO;t>24?(e<1/0&&(d2=setTimeout(bze,e-iM.now()-UV)),QA&&(QA=clearInterval(QA))):(QA||(U7=iM.now(),QA=setInterval(WVn,owt)),kT=1,lwt(bze))}}function xze(e,t,n){var r=new q7;return t=t==null?0:+t,r.restart(s=>{r.stop(),e(s+t)},t,n),r}var GVn=FV("start","end","cancel","interrupt"),QVn=[],uwt=0,wze=1,Qhe=2,iF=3,Sze=4,Yhe=5,oF=6;function qV(e,t,n,r,s,a){var i=e.__transition;if(!i)e.__transition={};else if(n in i)return;YVn(e,n,{name:t,index:r,group:s,on:GVn,tween:QVn,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:uwt})}function z1e(e,t){var n=Bg(e,t);if(n.state>uwt)throw new Error("too late; already scheduled");return n}function Dy(e,t){var n=Bg(e,t);if(n.state>iF)throw new Error("too late; already running");return n}function Bg(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function YVn(e,t,n){var r=e.__transition,s;r[t]=n,n.timer=cwt(a,0,n.time);function a(u){n.state=wze,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!==wze)return c();for(d in r)if(h=r[d],h.name===n.name){if(h.state===iF)return xze(i);h.state===Sze?(h.state=oF,h.timer.stop(),h.on.call("interrupt",e,e.__data__,h.index,h.group),delete r[d]):+d<t&&(h.state=oF,h.timer.stop(),h.on.call("cancel",e,e.__data__,h.index,h.group),delete r[d])}if(xze(function(){n.state===iF&&(n.state=Sze,n.timer.restart(l,n.delay,n.time),l(u))}),n.state=Qhe,n.on.call("start",e,e.__data__,n.index,n.group),n.state===Qhe){for(n.state=iF,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=Yhe,1),f=-1,p=s.length;++f<p;)s[f].call(e,d);n.state===Yhe&&(n.on.call("end",e,e.__data__,n.index,n.group),c())}function c(){n.state=oF,n.timer.stop(),delete r[t];for(var u in r)return;delete e.__transition}}function lF(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>Qhe&&r.state<Yhe,r.state=oF,r.timer.stop(),r.on.call(s?"interrupt":"cancel",e,e.__data__,r.index,r.group),delete n[i]}a&&delete e.__transition}}function XVn(e){return this.each(function(){lF(this,e)})}function KVn(e,t){var n,r;return function(){var s=Dy(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 JVn(e,t,n){var r,s;if(typeof n!="function")throw new Error;return function(){var a=Dy(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 eHn(e,t){var n=this._id;if(e+="",arguments.length<2){for(var r=Bg(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?KVn:JVn)(n,e,t))}function F1e(e,t,n){var r=e._id;return e.each(function(){var s=Dy(this,r);(s.value||(s.value={}))[t]=n.apply(this,arguments)}),function(s){return Bg(s,r).value[t]}}function dwt(e,t){var n;return(typeof t=="number"?rg:t instanceof RO?F7:(n=RO(t))?(t=n,F7):swt)(e,t)}function tHn(e){return function(){this.removeAttribute(e)}}function nHn(e){return function(){this.removeAttributeNS(e.space,e.local)}}function rHn(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 sHn(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 aHn(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 iHn(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 oHn(e,t){var n=BV(e),r=n==="transform"?zVn:dwt;return this.attrTween(e,typeof t=="function"?(n.local?iHn:aHn)(n,r,F1e(this,"attr."+e,t)):t==null?(n.local?nHn:tHn)(n):(n.local?sHn:rHn)(n,r,t))}function lHn(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function cHn(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function uHn(e,t){var n,r;function s(){var a=t.apply(this,arguments);return a!==r&&(n=(r=a)&&cHn(e,a)),n}return s._value=t,s}function dHn(e,t){var n,r;function s(){var a=t.apply(this,arguments);return a!==r&&(n=(r=a)&&lHn(e,a)),n}return s._value=t,s}function fHn(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=BV(e);return this.tween(n,(r.local?uHn:dHn)(r,t))}function pHn(e,t){return function(){z1e(this,e).delay=+t.apply(this,arguments)}}function hHn(e,t){return t=+t,function(){z1e(this,e).delay=t}}function mHn(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?pHn:hHn)(t,e)):Bg(this.node(),t).delay}function gHn(e,t){return function(){Dy(this,e).duration=+t.apply(this,arguments)}}function vHn(e,t){return t=+t,function(){Dy(this,e).duration=t}}function yHn(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?gHn:vHn)(t,e)):Bg(this.node(),t).duration}function bHn(e,t){if(typeof t!="function")throw new Error;return function(){Dy(this,e).ease=t}}function xHn(e){var t=this._id;return arguments.length?this.each(bHn(t,e)):Bg(this.node(),t).ease}function wHn(e,t){return function(){var n=t.apply(this,arguments);if(typeof n!="function")throw new Error;Dy(this,e).ease=n}}function SHn(e){if(typeof e!="function")throw new Error;return this.each(wHn(this._id,e))}function kHn(e){typeof e!="function"&&(e=U0t(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 _x(r,this._parents,this._name,this._id)}function OHn(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 _x(i,this._parents,this._name,this._id)}function _Hn(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 CHn(e,t,n){var r,s,a=_Hn(t)?z1e:Dy;return function(){var i=a(this,e),l=i.on;l!==r&&(s=(r=l).copy()).on(t,n),i.on=s}}function EHn(e,t){var n=this._id;return arguments.length<2?Bg(this.node(),n).on.on(e):this.each(CHn(n,e,t))}function jHn(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function THn(){return this.on("end.remove",jHn(this._id))}function NHn(e){var t=this._name,n=this._id;typeof e!="function"&&(e=R1e(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,qV(u[p],t,n,p,u,Bg(d,n)));return new _x(a,this._parents,t,n)}function IHn(e){var t=this._name,n=this._id;typeof e!="function"&&(e=B0t(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=Bg(d,n),v=0,y=p.length;v<y;++v)(h=p[v])&&qV(h,t,n,v,p,m);a.push(p),i.push(d)}return new _x(a,i,t,n)}var AHn=g3.prototype.constructor;function RHn(){return new AHn(this._groups,this._parents)}function PHn(e,t){var n,r,s;return function(){var a=ST(this,e),i=(this.style.removeProperty(e),ST(this,e));return a===i?null:a===n&&i===r?s:s=t(n=a,r=i)}}function fwt(e){return function(){this.style.removeProperty(e)}}function $Hn(e,t,n){var r,s=n+"",a;return function(){var i=ST(this,e);return i===s?null:i===r?a:a=t(r=i,n)}}function MHn(e,t,n){var r,s,a;return function(){var i=ST(this,e),l=n(this),c=l+"";return l==null&&(c=l=(this.style.removeProperty(e),ST(this,e))),i===c?null:i===r&&c===s?a:(s=c,a=t(r=i,l))}}function DHn(e,t){var n,r,s,a="style."+t,i="end."+a,l;return function(){var c=Dy(this,e),u=c.on,d=c.value[a]==null?l||(l=fwt(t)):void 0;(u!==n||s!==d)&&(r=(n=u).copy()).on(i,s=d),c.on=r}}function LHn(e,t,n){var r=(e+="")=="transform"?LVn:dwt;return t==null?this.styleTween(e,PHn(e,r)).on("end.style."+e,fwt(e)):typeof t=="function"?this.styleTween(e,MHn(e,r,F1e(this,"style."+e,t))).each(DHn(this._id,e)):this.styleTween(e,$Hn(e,r,t),n).on("end.style."+e,null)}function zHn(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}function FHn(e,t,n){var r,s;function a(){var i=t.apply(this,arguments);return i!==s&&(r=(s=i)&&zHn(e,i,n)),r}return a._value=t,a}function BHn(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,FHn(e,t,n??""))}function UHn(e){return function(){this.textContent=e}}function qHn(e){return function(){var t=e(this);this.textContent=t??""}}function VHn(e){return this.tween("text",typeof e=="function"?qHn(F1e(this,"text",e)):UHn(e==null?"":e+""))}function HHn(e){return function(t){this.textContent=e.call(this,t)}}function WHn(e){var t,n;function r(){var s=e.apply(this,arguments);return s!==n&&(t=(n=s)&&HHn(s)),t}return r._value=e,r}function ZHn(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,WHn(e))}function GHn(){for(var e=this._name,t=this._id,n=pwt(),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=Bg(c,t);qV(c,e,n,u,i,{time:d.time+d.delay+d.duration,delay:0,duration:d.duration,ease:d.ease})}return new _x(r,this._parents,e,n)}function QHn(){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=Dy(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 YHn=0;function _x(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}function pwt(){return++YHn}var mb=g3.prototype;_x.prototype={constructor:_x,select:NHn,selectAll:IHn,selectChild:mb.selectChild,selectChildren:mb.selectChildren,filter:kHn,merge:OHn,selection:RHn,transition:GHn,call:mb.call,nodes:mb.nodes,node:mb.node,size:mb.size,empty:mb.empty,each:mb.each,on:EHn,attr:oHn,attrTween:fHn,style:LHn,styleTween:BHn,text:VHn,textTween:ZHn,remove:THn,tween:eHn,delay:mHn,duration:yHn,ease:xHn,easeVarying:SHn,end:QHn,[Symbol.iterator]:mb[Symbol.iterator]};function XHn(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var KHn={time:null,delay:0,duration:250,ease:XHn};function JHn(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 eWn(e){var t,n;e instanceof _x?(t=e._id,e=e._name):(t=pwt(),(n=KHn).time=L1e(),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])&&qV(c,e,t,u,i,n||JHn(c,t));return new _x(r,this._parents,e,t)}g3.prototype.interrupt=XVn;g3.prototype.transition=eWn;const I6=e=>()=>e;function tWn(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 Wb(e,t,n){this.k=e,this.x=t,this.y=n}Wb.prototype={constructor:Wb,scale:function(e){return e===1?this:new Wb(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new Wb(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 VV=new Wb(1,0,0);hwt.prototype=Wb.prototype;function hwt(e){for(;!e.__zoom;)if(!(e=e.parentNode))return VV;return e.__zoom}function dee(e){e.stopImmediatePropagation()}function YA(e){e.preventDefault(),e.stopImmediatePropagation()}function nWn(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function rWn(){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 kze(){return this.__zoom||VV}function sWn(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function aWn(){return navigator.maxTouchPoints||"ontouchstart"in this}function iWn(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 mwt(){var e=nWn,t=rWn,n=iWn,r=sWn,s=aWn,a=[0,1/0],i=[[-1/0,-1/0],[1/0,1/0]],l=250,c=aF,u=FV("start","zoom","end"),d,f,p,h=500,m=150,v=0,y=10;function b(D){D.property("__zoom",kze).on("wheel.zoom",j,{passive:!1}).on("mousedown.zoom",T).on("dblclick.zoom",I).filter(s).on("touchstart.zoom",A).on("touchmove.zoom",P).on("touchend.zoom touchcancel.zoom",L).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}b.transform=function(D,q,H,z){var B=D.selection?D.selection():D;B.property("__zoom",kze),D!==B?_(D,q,H,z):B.interrupt().each(function(){C(this,arguments).event(z).start().zoom(null,typeof q=="function"?q.apply(this,arguments):q).end()})},b.scaleBy=function(D,q,H,z){b.scaleTo(D,function(){var B=this.__zoom.k,V=typeof q=="function"?q.apply(this,arguments):q;return B*V},H,z)},b.scaleTo=function(D,q,H,z){b.transform(D,function(){var B=t.apply(this,arguments),V=this.__zoom,M=H==null?k(B):typeof H=="function"?H.apply(this,arguments):H,Q=V.invert(M),U=typeof q=="function"?q.apply(this,arguments):q;return n(w(S(V,U),M,Q),B,i)},H,z)},b.translateBy=function(D,q,H,z){b.transform(D,function(){return n(this.__zoom.translate(typeof q=="function"?q.apply(this,arguments):q,typeof H=="function"?H.apply(this,arguments):H),t.apply(this,arguments),i)},null,z)},b.translateTo=function(D,q,H,z,B){b.transform(D,function(){var V=t.apply(this,arguments),M=this.__zoom,Q=z==null?k(V):typeof z=="function"?z.apply(this,arguments):z;return n(VV.translate(Q[0],Q[1]).scale(M.k).translate(typeof q=="function"?-q.apply(this,arguments):-q,typeof H=="function"?-H.apply(this,arguments):-H),V,i)},z,B)};function S(D,q){return q=Math.max(a[0],Math.min(a[1],q)),q===D.k?D:new Wb(q,D.x,D.y)}function w(D,q,H){var z=q[0]-H[0]*D.k,B=q[1]-H[1]*D.k;return z===D.x&&B===D.y?D:new Wb(D.k,z,B)}function k(D){return[(+D[0][0]+ +D[1][0])/2,(+D[0][1]+ +D[1][1])/2]}function _(D,q,H,z){D.on("start.zoom",function(){C(this,arguments).event(z).start()}).on("interrupt.zoom end.zoom",function(){C(this,arguments).event(z).end()}).tween("zoom",function(){var B=this,V=arguments,M=C(B,V).event(z),Q=t.apply(B,V),U=H==null?k(Q):typeof H=="function"?H.apply(B,V):H,$=Math.max(Q[1][0]-Q[0][0],Q[1][1]-Q[0][1]),F=B.__zoom,Z=typeof q=="function"?q.apply(B,V):q,X=c(F.invert(U).concat($/F.k),Z.invert(U).concat($/Z.k));return function(te){if(te===1)te=Z;else{var ee=X(te),J=$/ee[2];te=new Wb(J,U[0]-ee[0]*J,U[1]-ee[1]*J)}M.zoom(null,te)}})}function C(D,q,H){return!H&&D.__zooming||new E(D,q)}function E(D,q){this.that=D,this.args=q,this.active=0,this.sourceEvent=null,this.extent=t.apply(D,q),this.taps=0}E.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,q){return this.mouse&&D!=="mouse"&&(this.mouse[1]=q.invert(this.mouse[0])),this.touch0&&D!=="touch"&&(this.touch0[1]=q.invert(this.touch0[0])),this.touch1&&D!=="touch"&&(this.touch1[1]=q.invert(this.touch1[0])),this.that.__zoom=q,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(D){var q=yp(this.that).datum();u.call(D,this.that,new tWn(D,{sourceEvent:this.sourceEvent,target:b,transform:this.that.__zoom,dispatch:u}),q)}};function j(D,...q){if(!e.apply(this,arguments))return;var H=C(this,q).event(D),z=this.__zoom,B=Math.max(a[0],Math.min(a[1],z.k*Math.pow(2,r.apply(this,arguments)))),V=tg(D);if(H.wheel)(H.mouse[0][0]!==V[0]||H.mouse[0][1]!==V[1])&&(H.mouse[1]=z.invert(H.mouse[0]=V)),clearTimeout(H.wheel);else{if(z.k===B)return;H.mouse=[V,z.invert(V)],lF(this),H.start()}YA(D),H.wheel=setTimeout(M,m),H.zoom("mouse",n(w(S(z,B),H.mouse[0],H.mouse[1]),H.extent,i));function M(){H.wheel=null,H.end()}}function T(D,...q){if(p||!e.apply(this,arguments))return;var H=D.currentTarget,z=C(this,q,!0).event(D),B=yp(D.view).on("mousemove.zoom",U,!0).on("mouseup.zoom",$,!0),V=tg(D,H),M=D.clientX,Q=D.clientY;K0t(D.view),dee(D),z.mouse=[V,this.__zoom.invert(V)],lF(this),z.start();function U(F){if(YA(F),!z.moved){var Z=F.clientX-M,X=F.clientY-Q;z.moved=Z*Z+X*X>v}z.event(F).zoom("mouse",n(w(z.that.__zoom,z.mouse[0]=tg(F,H),z.mouse[1]),z.extent,i))}function $(F){B.on("mousemove.zoom mouseup.zoom",null),J0t(F.view,z.moved),YA(F),z.event(F).end()}}function I(D,...q){if(e.apply(this,arguments)){var H=this.__zoom,z=tg(D.changedTouches?D.changedTouches[0]:D,this),B=H.invert(z),V=H.k*(D.shiftKey?.5:2),M=n(w(S(H,V),z,B),t.apply(this,q),i);YA(D),l>0?yp(this).transition().duration(l).call(_,M,z,D):yp(this).call(b.transform,M,z,D)}}function A(D,...q){if(e.apply(this,arguments)){var H=D.touches,z=H.length,B=C(this,q,D.changedTouches.length===z).event(D),V,M,Q,U;for(dee(D),M=0;M<z;++M)Q=H[M],U=tg(Q,this),U=[U,this.__zoom.invert(U),Q.identifier],B.touch0?!B.touch1&&B.touch0[2]!==U[2]&&(B.touch1=U,B.taps=0):(B.touch0=U,V=!0,B.taps=1+!!d);d&&(d=clearTimeout(d)),V&&(B.taps<2&&(f=U[0],d=setTimeout(function(){d=null},h)),lF(this),B.start())}}function P(D,...q){if(this.__zooming){var H=C(this,q).event(D),z=D.changedTouches,B=z.length,V,M,Q,U;for(YA(D),V=0;V<B;++V)M=z[V],Q=tg(M,this),H.touch0&&H.touch0[2]===M.identifier?H.touch0[0]=Q:H.touch1&&H.touch1[2]===M.identifier&&(H.touch1[0]=Q);if(M=H.that.__zoom,H.touch1){var $=H.touch0[0],F=H.touch0[1],Z=H.touch1[0],X=H.touch1[1],te=(te=Z[0]-$[0])*te+(te=Z[1]-$[1])*te,ee=(ee=X[0]-F[0])*ee+(ee=X[1]-F[1])*ee;M=S(M,Math.sqrt(te/ee)),Q=[($[0]+Z[0])/2,($[1]+Z[1])/2],U=[(F[0]+X[0])/2,(F[1]+X[1])/2]}else if(H.touch0)Q=H.touch0[0],U=H.touch0[1];else return;H.zoom("touch",n(w(M,Q,U),H.extent,i))}}function L(D,...q){if(this.__zooming){var H=C(this,q).event(D),z=D.changedTouches,B=z.length,V,M;for(dee(D),p&&clearTimeout(p),p=setTimeout(function(){p=null},h),V=0;V<B;++V)M=z[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=tg(M,this),Math.hypot(f[0]-M[0],f[1]-M[1])<y)){var Q=yp(this).on("dblclick.zoom");Q&&Q.apply(this,arguments)}}}return b.wheelDelta=function(D){return arguments.length?(r=typeof D=="function"?D:I6(+D),b):r},b.filter=function(D){return arguments.length?(e=typeof D=="function"?D:I6(!!D),b):e},b.touchable=function(D){return arguments.length?(s=typeof D=="function"?D:I6(!!D),b):s},b.extent=function(D){return arguments.length?(t=typeof D=="function"?D:I6([[+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 my={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."},oM=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],gwt=["Enter"," ","Escape"],vwt={"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 OT;(function(e){e.Strict="strict",e.Loose="loose"})(OT||(OT={}));var Wk;(function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"})(Wk||(Wk={}));var lM;(function(e){e.Partial="partial",e.Full="full"})(lM||(lM={}));const ywt={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null};var ow;(function(e){e.Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier"})(ow||(ow={}));var cM;(function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"})(cM||(cM={}));var rr;(function(e){e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom"})(rr||(rr={}));const Oze={[rr.Left]:rr.Right,[rr.Right]:rr.Left,[rr.Top]:rr.Bottom,[rr.Bottom]:rr.Top};function bwt(e){return e===null?null:e?"valid":"invalid"}const xwt=e=>"id"in e&&"source"in e&&"target"in e,oWn=e=>"id"in e&&"position"in e&&!("source"in e)&&!("target"in e),B1e=e=>"id"in e&&"internals"in e&&!("source"in e)&&!("target"in e),y3=(e,t=[0,0])=>{const{width:n,height:r}=Gx(e),s=e.origin??t,a=n*s[0],i=r*s[1];return{x:e.position.x-a,y:e.position.y-i}},lWn=(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):B1e(s)?s:t.nodeLookup.get(s.id));const l=i?V7(i,t.nodeOrigin):{x:0,y:0,x2:0,y2:0};return HV(r,l)},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return WV(n)},b3=(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=HV(n,V7(s)),r=!0)}),r?WV(n):{x:0,y:0,width:0,height:0}},U1e=(e,t,[n,r,s]=[0,0,1],a=!1,i=!1)=>{const l={...w3(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=uM(l,CT(u)),y=(h??0)*(m??0),b=a&&v>0;(!u.internals.handleBounds||b||v>=y||u.dragging)&&c.push(u)}return c},cWn=(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 uWn(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 dWn({nodes:e,width:t,height:n,panZoom:r,minZoom:s,maxZoom:a},i){if(e.size===0)return Promise.resolve(!0);const l=uWn(e,i),c=b3(l),u=q1e(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 wwt({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",my.error005());else{const h=l.measured.width,m=l.measured.height;h&&m&&(f=[[c,u],[c+h,u+m]])}else l&&ET(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=ET(f)?$O(t,f,i.measured):t;return(i.measured.width===void 0||i.measured.height===void 0)&&a?.("015",my.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 fWn({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=cWn(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 _T=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),$O=(e={x:0,y:0},t,n)=>({x:_T(e.x,t[0][0],t[1][0]-(n?.width??0)),y:_T(e.y,t[0][1],t[1][1]-(n?.height??0))});function Swt(e,t,n){const{width:r,height:s}=Gx(n),{x:a,y:i}=n.internals.positionAbsolute;return $O(e,[[a,i],[a+r,i+s]],t)}const _ze=(e,t,n)=>e<t?_T(Math.abs(e-t),1,t)/t:e>n?-_T(Math.abs(e-n),1,t)/t:0,kwt=(e,t,n=15,r=40)=>{const s=_ze(e.x,r,t.width-r)*n,a=_ze(e.y,r,t.height-r)*n;return[s,a]},HV=(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)}),Xhe=({x:e,y:t,width:n,height:r})=>({x:e,y:t,x2:e+n,y2:t+r}),WV=({x:e,y:t,x2:n,y2:r})=>({x:e,y:t,width:n-e,height:r-t}),CT=(e,t=[0,0])=>{const{x:n,y:r}=B1e(e)?e.internals.positionAbsolute:y3(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}},V7=(e,t=[0,0])=>{const{x:n,y:r}=B1e(e)?e.internals.positionAbsolute:y3(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)}},Owt=(e,t)=>WV(HV(Xhe(e),Xhe(t))),uM=(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)},Cze=e=>pg(e.width)&&pg(e.height)&&pg(e.x)&&pg(e.y),pg=e=>!isNaN(e)&&isFinite(e),pWn=(e,t)=>{},x3=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),w3=({x:e,y:t},[n,r,s],a=!1,i=[1,1])=>{const l={x:(e-n)/s,y:(t-r)/s};return a?x3(l,i):l},H7=({x:e,y:t},[n,r,s])=>({x:e*s+n,y:t*s+r});function VC(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 hWn(e,t,n){if(typeof e=="string"||typeof e=="number"){const r=VC(e,n),s=VC(e,t);return{top:r,right:s,bottom:r,left:s,x:s*2,y:r*2}}if(typeof e=="object"){const r=VC(e.top??e.y??0,n),s=VC(e.bottom??e.y??0,n),a=VC(e.left??e.x??0,t),i=VC(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 mWn(e,t,n,r,s,a){const{x:i,y:l}=H7(e,[t,n,r]),{x:c,y:u}=H7({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 q1e=(e,t,n,r,s,a)=>{const i=hWn(a,t,n),l=(t-i.x)/e.width,c=(n-i.y)/e.height,u=Math.min(l,c),d=_T(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=mWn(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}},dM=()=>typeof navigator<"u"&&navigator?.userAgent?.indexOf("Mac")>=0;function ET(e){return e!=null&&e!=="parent"}function Gx(e){return{width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}}function _wt(e){return(e.measured?.width??e.width??e.initialWidth)!==void 0&&(e.measured?.height??e.height??e.initialHeight)!==void 0}function Cwt(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 Eze(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function gWn(){let e,t;return{promise:new Promise((r,s)=>{e=r,t=s}),resolve:e,reject:t}}function vWn(e){return{...vwt,...e||{}}}function W2(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:r,containerBounds:s}){const{x:a,y:i}=hg(e),l=w3({x:a-(s?.left??0),y:i-(s?.top??0)},r),{x:c,y:u}=n?x3(l,t):l;return{xSnapped:c,ySnapped:u,...l}}const V1e=e=>({width:e.offsetWidth,height:e.offsetHeight}),Ewt=e=>e?.getRootNode?.()||window?.document,yWn=["INPUT","SELECT","TEXTAREA"];function jwt(e){const t=e.composedPath?.()?.[0]||e.target;return t?.nodeType!==1?!1:yWn.includes(t.nodeName)||t.hasAttribute("contenteditable")||!!t.closest(".nokey")}const Twt=e=>"clientX"in e,hg=(e,t)=>{const n=Twt(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)}},jze=(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,...V1e(i)}})};function Nwt({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 A6(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function Tze({pos:e,x1:t,y1:n,x2:r,y2:s,c:a}){switch(e){case rr.Left:return[t-A6(t-r,a),n];case rr.Right:return[t+A6(r-t,a),n];case rr.Top:return[t,n-A6(n-s,a)];case rr.Bottom:return[t,n+A6(s-n,a)]}}function H1e({sourceX:e,sourceY:t,sourcePosition:n=rr.Bottom,targetX:r,targetY:s,targetPosition:a=rr.Top,curvature:i=.25}){const[l,c]=Tze({pos:n,x1:e,y1:t,x2:r,y2:s,c:i}),[u,d]=Tze({pos:a,x1:r,y1:s,x2:e,y2:t,c:i}),[f,p,h,m]=Nwt({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 Iwt({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 bWn({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 xWn({sourceNode:e,targetNode:t,width:n,height:r,transform:s}){const a=HV(V7(e),V7(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 uM(i,WV(a))>0}const wWn=({source:e,sourceHandle:t,target:n,targetHandle:r})=>`xy-edge__${e}${t||""}-${n}${r||""}`,SWn=(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)),kWn=(e,t,n={})=>{if(!e.source||!e.target)return t;const r=n.getEdgeId||wWn;let s;return xwt(e)?s={...e}:s={...e,id:r(e)},SWn(s,t)?t:(s.sourceHandle===null&&delete s.sourceHandle,s.targetHandle===null&&delete s.targetHandle,t.concat(s))};function Awt({sourceX:e,sourceY:t,targetX:n,targetY:r}){const[s,a,i,l]=Iwt({sourceX:e,sourceY:t,targetX:n,targetY:r});return[`M ${e},${t}L ${n},${r}`,s,a,i,l]}const Nze={[rr.Left]:{x:-1,y:0},[rr.Right]:{x:1,y:0},[rr.Top]:{x:0,y:-1},[rr.Bottom]:{x:0,y:1}},OWn=({source:e,sourcePosition:t=rr.Bottom,target:n})=>t===rr.Left||t===rr.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},Ize=(e,t)=>Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2));function _Wn({source:e,sourcePosition:t=rr.Bottom,target:n,targetPosition:r=rr.Top,center:s,offset:a,stepPosition:i}){const l=Nze[t],c=Nze[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=OWn({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},S={x:0,y:0},[,,w,k]=Iwt({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 j=[{x:v,y:u.y},{x:v,y:d.y}],T=[{x:u.x,y},{x:d.x,y}];l[p]===h?m=p==="x"?j:T:m=p==="x"?T:j}else{const j=[{x:u.x,y:d.y}],T=[{x:d.x,y:u.y}];if(p==="x"?m=l.x===h?T:j:m=l.y===h?j:T,t===r){const D=Math.abs(e[p]-n[p]);if(D<=a){const q=Math.min(a-1,a-D);l[p]===h?b[p]=(u[p]>e[p]?-1:1)*q:S[p]=(d[p]>n[p]?-1:1)*q}}if(t!==r){const D=p==="x"?"y":"x",q=l[p]===c[D],H=u[D]>d[D],z=u[D]<d[D];(l[p]===1&&(!q&&H||q&&z)||l[p]!==1&&(!q&&z||q&&H))&&(m=p==="x"?j:T)}const I={x:u.x+b.x,y:u.y+b.y},A={x:d.x+S.x,y:d.y+S.y},P=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));P>=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+S.x,y:d.y+S.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,w,k]}function CWn(e,t,n,r){const s=Math.min(Ize(e,t)/2,Ize(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 Khe({sourceX:e,sourceY:t,sourcePosition:n=rr.Bottom,targetX:r,targetY:s,targetPosition:a=rr.Top,borderRadius:i=5,centerX:l,centerY:c,offset:u=20,stepPosition:d=.5}){const[f,p,h,m,v]=_Wn({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+=CWn(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 Aze(e){return e&&!!(e.internals.handleBounds||e.handles?.length)&&!!(e.measured.width||e.width||e.initialWidth)}function EWn(e){const{sourceNode:t,targetNode:n}=e;if(!Aze(t)||!Aze(n))return null;const r=t.internals.handleBounds||Rze(t.handles),s=n.internals.handleBounds||Rze(n.handles),a=Pze(r?.source??[],e.sourceHandle),i=Pze(e.connectionMode===OT.Strict?s?.target??[]:(s?.target??[]).concat(s?.source??[]),e.targetHandle);if(!a||!i)return e.onError?.("008",my.error008(a?"target":"source",{id:e.id,sourceHandle:e.sourceHandle,targetHandle:e.targetHandle})),null;const l=a?.position||rr.Bottom,c=i?.position||rr.Top,u=MO(t,a,l),d=MO(n,i,c);return{sourceX:u.x,sourceY:u.y,targetX:d.x,targetY:d.y,sourcePosition:l,targetPosition:c}}function Rze(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 MO(e,t,n=rr.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??Gx(e);if(r)return{x:s+i/2,y:a+l/2};switch(t?.position??n){case rr.Top:return{x:s+i/2,y:a};case rr.Right:return{x:s+i,y:a+l/2};case rr.Bottom:return{x:s+i/2,y:a+l};case rr.Left:return{x:s,y:a+l/2}}}function Pze(e,t){return e&&(t?e.find(n=>n.id===t):e[0])||null}function Jhe(e,t){return e?typeof e=="string"?e:`${t?`${t}__`:""}${Object.keys(e).sort().map(r=>`${r}=${e[r]}`).join("&")}`:""}function jWn(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=Jhe(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 Rwt=1e3,TWn=10,W1e={nodeOrigin:[0,0],nodeExtent:oM,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},NWn={...W1e,checkEquality:!0};function Z1e(e,t){const n={...e};for(const r in t)t[r]!==void 0&&(n[r]=t[r]);return n}function IWn(e,t,n){const r=Z1e(W1e,n);for(const s of e.values())if(s.parentId)Q1e(s,e,t,r);else{const a=y3(s,r.nodeOrigin),i=ET(s.extent)?s.extent:r.nodeExtent,l=$O(a,i,Gx(s));s.internals.positionAbsolute=l}}function AWn(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 G1e(e){return e==="manual"}function eme(e,t,n,r={}){const s=Z1e(NWn,r),a={i:0},i=new Map(t),l=s?.elevateNodesOnSelect&&!G1e(s.zIndexMode)?Rwt: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=y3(d,s.nodeOrigin),h=ET(d.extent)?d.extent:s.nodeExtent,m=$O(p,h,Gx(d));f={...s.defaults,...d,measured:{width:d.measured?.width,height:d.measured?.height},internals:{positionAbsolute:m,handleBounds:AWn(d,f),z:Pwt(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&&Q1e(f,t,n,r,a),u||=d.selected??!1}return{nodesInitialized:c,hasSelectedNodes:u}}function RWn(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 Q1e(e,t,n,r,s){const{elevateNodesOnSelect:a,nodeOrigin:i,nodeExtent:l,zIndexMode:c}=Z1e(W1e,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}RWn(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*TWn),s&&d.internals.rootParentIndex!==void 0&&(s.i=d.internals.rootParentIndex);const f=a&&!G1e(c)?Rwt:0,{x:p,y:h,z:m}=PWn(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 Pwt(e,t,n){const r=pg(e.zIndex)?e.zIndex:0;return G1e(n)?r:r+(e.selected?t:0)}function PWn(e,t,n,r,s,a){const{x:i,y:l}=t.internals.positionAbsolute,c=Gx(e),u=y3(e,n),d=ET(e.extent)?$O(u,e.extent,c):u;let f=$O({x:i+d.x,y:l+d.y},r,c);e.extent==="parent"&&(f=Swt(f,c,t));const p=Pwt(e,s,a),h=t.internals.z??0;return{x:f.x,y:f.y,z:h>=p?h+1:p}}function Y1e(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??CT(l),u=Owt(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=Gx(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(S=>{e.some(w=>w.id===S.id)||s.push({id:S.id,type:"position",position:{x:S.position.x+p,y:S.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 $Wn(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=V1e(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 S=h.nodeElement.getBoundingClientRect(),w=ET(m.extent)?m.extent:a;let{positionAbsolute:k}=m.internals;m.parentId&&m.extent==="parent"?k=Swt(k,v,t.get(m.parentId)):w&&(k=$O(k,w,v));const _={...m,measured:v,internals:{...m.internals,positionAbsolute:k,handleBounds:{source:jze("source",h.nodeElement,S,f,m.id),target:jze("target",h.nodeElement,S,f,m.id)}}};t.set(m.id,_),m.parentId&&Q1e(_,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:CT(_,s)}))}}if(p.length>0){const h=Y1e(p,t,n,s);u.push(...h)}return{changes:u,updatedInternals:c}}async function MWn({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 $ze(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 $wt(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}`;$ze("source",c,d,e,s,i),$ze("target",c,u,e,a,l),t.set(r.id,r)}}function Mwt(e,t){if(!e.parentId)return!1;const n=t.get(e.parentId);return n?n.selected?!0:Mwt(n,t):!1}function Mze(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 DWn(e,t,n,r){const s=new Map;for(const[a,i]of e)if((i.selected||i.id===r)&&(!i.parentId||!Mwt(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 fee({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 LWn({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=x3(a,t);return{x:i.x-a.x,y:i.y-a.y}}function zWn({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:S,handleSelector:w,domNode:k,isSelectable:_,nodeId:C,nodeClickDistance:E=0}){p=yp(k);function j({x:P,y:L}){const{nodeLookup:D,nodeExtent:q,snapGrid:H,snapToGrid:z,nodeOrigin:B,onNodeDrag:V,onSelectionDrag:M,onError:Q,updateNodePositions:U}=t();a={x:P,y:L};let $=!1;const F=l.size>1,Z=F&&q?Xhe(b3(l)):null,X=F&&z?LWn({dragItems:l,snapGrid:H,x:P,y:L}):null;for(const[te,ee]of l){if(!D.has(te))continue;let J={x:P-ee.distance.x,y:L-ee.distance.y};z&&(J=X?{x:Math.round(J.x+X.x),y:Math.round(J.y+X.y)}:x3(J,H));let ae=null;if(F&&q&&!ee.extent&&Z){const{positionAbsolute:ne}=ee.internals,ue=ne.x-Z.x+q[0][0],fe=ne.x+ee.measured.width-Z.x2+q[1][0],oe=ne.y-Z.y+q[0][1],me=ne.y+ee.measured.height-Z.y2+q[1][1];ae=[[ue,oe],[fe,me]]}const{position:pe,positionAbsolute:Y}=wwt({nodeId:te,nextPosition:J,nodeLookup:D,nodeExtent:ae||q,nodeOrigin:B,onError:Q});$=$||ee.position.x!==pe.x||ee.position.y!==pe.y,ee.position=pe,ee.internals.positionAbsolute=Y}if(m=m||$,!!$&&(U(l,!0),v&&(r||V||!C&&M))){const[te,ee]=fee({nodeId:C,dragItems:l,nodeLookup:D});r?.(v,l,te,ee),V?.(v,te,ee),C||M?.(v,ee)}}async function T(){if(!d)return;const{transform:P,panBy:L,autoPanSpeed:D,autoPanOnNodeDrag:q}=t();if(!q){c=!1,cancelAnimationFrame(i);return}const[H,z]=kwt(u,d,D);(H!==0||z!==0)&&(a.x=(a.x??0)-H/P[2],a.y=(a.y??0)-z/P[2],await L({x:H,y:z})&&j(a)),i=requestAnimationFrame(T)}function I(P){const{nodeLookup:L,multiSelectionActive:D,nodesDraggable:q,transform:H,snapGrid:z,snapToGrid:B,selectNodesOnDrag:V,onNodeDragStart:M,onSelectionDragStart:Q,unselectNodesAndEdges:U}=t();f=!0,(!V||!_)&&!D&&C&&(L.get(C)?.selected||U()),_&&V&&C&&e?.(C);const $=W2(P.sourceEvent,{transform:H,snapGrid:z,snapToGrid:B,containerBounds:d});if(a=$,l=DWn(L,q,$,C),l.size>0&&(n||M||!C&&Q)){const[F,Z]=fee({nodeId:C,dragItems:l,nodeLookup:L});n?.(P.sourceEvent,l,F,Z),M?.(P.sourceEvent,F,Z),C||Q?.(P.sourceEvent,Z)}}const A=ewt().clickDistance(E).on("start",P=>{const{domNode:L,nodeDragThreshold:D,transform:q,snapGrid:H,snapToGrid:z}=t();d=L?.getBoundingClientRect()||null,h=!1,m=!1,v=P.sourceEvent,D===0&&I(P),a=W2(P.sourceEvent,{transform:q,snapGrid:H,snapToGrid:z,containerBounds:d}),u=hg(P.sourceEvent,d)}).on("drag",P=>{const{autoPanOnNodeDrag:L,transform:D,snapGrid:q,snapToGrid:H,nodeDragThreshold:z,nodeLookup:B}=t(),V=W2(P.sourceEvent,{transform:D,snapGrid:q,snapToGrid:H,containerBounds:d});if(v=P.sourceEvent,(P.sourceEvent.type==="touchmove"&&P.sourceEvent.touches.length>1||C&&!B.has(C))&&(h=!0),!h){if(!c&&L&&f&&(c=!0,T()),!f){const M=hg(P.sourceEvent,d),Q=M.x-u.x,U=M.y-u.y;Math.sqrt(Q*Q+U*U)>z&&I(P)}(a.x!==V.xSnapped||a.y!==V.ySnapped)&&l&&f&&(u=hg(P.sourceEvent,d),j(V))}}).on("end",P=>{if(!(!f||h)&&(c=!1,f=!1,cancelAnimationFrame(i),l.size>0)){const{nodeLookup:L,updateNodePositions:D,onNodeDragStop:q,onSelectionDragStop:H}=t();if(m&&(D(l,!1),m=!1),s||q||!C&&H){const[z,B]=fee({nodeId:C,dragItems:l,nodeLookup:L,dragging:!1});s?.(P.sourceEvent,l,z,B),q?.(P.sourceEvent,z,B),C||H?.(P.sourceEvent,B)}}}).filter(P=>{const L=P.target;return!P.button&&(!S||!Mze(L,`.${S}`,k))&&(!w||Mze(L,w,k))});p.call(A)}function b(){p?.on(".drag",null)}return{update:y,destroy:b}}function FWn(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())uM(s,CT(a))>0&&r.push(a);return r}const BWn=250;function UWn(e,t,n,r){let s=[],a=1/0;const i=FWn(e,n,t+BWn);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}=MO(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 Dwt(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,...MO(i,c,c.position,!0)}:c}function Lwt(e,t){return e||(t?.classList.contains("target")?"target":t?.classList.contains("source")?"source":null)}function qWn(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}const zwt=()=>!0;function VWn(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=zwt,onReconnectEnd:S,updateConnection:w,getTransform:k,getFromHandle:_,autoPanSpeed:C,dragThreshold:E=1,handleDomNode:j}){const T=Ewt(e.target);let I=0,A;const{x:P,y:L}=hg(e),D=Lwt(a,j),q=l?.getBoundingClientRect();let H=!1;if(!q||!D)return;const z=Dwt(s,D,r,c,t);if(!z)return;let B=hg(e,q),V=!1,M=null,Q=!1,U=null;function $(){if(!d||!q)return;const[pe,Y]=kwt(B,q,C);p({x:pe,y:Y}),I=requestAnimationFrame($)}const F={...z,nodeId:s,type:D,position:z.position},Z=c.get(s);let te={inProgress:!0,isValid:null,from:MO(Z,F,rr.Left,!0),fromHandle:F,fromPosition:F.position,fromNode:Z,to:B,toHandle:null,toPosition:Oze[F.position],toNode:null,pointer:B};function ee(){H=!0,w(te),m?.(e,{nodeId:s,handleId:r,handleType:D})}E===0&&ee();function J(pe){if(!H){const{x:me,y:be}=hg(pe),we=me-P,je=be-L;if(!(we*we+je*je>E*E))return;ee()}if(!_()||!F){ae(pe);return}const Y=k();B=hg(pe,q),A=UWn(w3(B,Y,!1,[1,1]),n,c,F),V||($(),V=!0);const ne=Fwt(pe,{handle:A,connectionMode:t,fromNodeId:s,fromHandleId:r,fromType:i?"target":"source",isValidConnection:b,doc:T,lib:u,flowId:f,nodeLookup:c});U=ne.handleDomNode,M=ne.connection,Q=qWn(!!A,ne.isValid);const ue=c.get(s),fe=ue?MO(ue,F,rr.Left,!0):te.from,oe={...te,from:fe,isValid:Q,to:ne.toHandle&&Q?H7({x:ne.toHandle.x,y:ne.toHandle.y},Y):B,toHandle:ne.toHandle,toPosition:Q&&ne.toHandle?ne.toHandle.position:Oze[F.position],toNode:ne.toHandle?c.get(ne.toHandle.nodeId):null,pointer:B};w(oe),te=oe}function ae(pe){if(!("touches"in pe&&pe.touches.length>0)){if(H){(A||U)&&M&&Q&&v?.(M);const{inProgress:Y,...ne}=te,ue={...ne,toPosition:te.toHandle?te.toPosition:null};y?.(pe,ue),a&&S?.(pe,ue)}h(),cancelAnimationFrame(I),V=!1,Q=!1,M=null,U=null,T.removeEventListener("mousemove",J),T.removeEventListener("mouseup",ae),T.removeEventListener("touchmove",J),T.removeEventListener("touchend",ae)}}T.addEventListener("mousemove",J),T.addEventListener("mouseup",ae),T.addEventListener("touchmove",J),T.addEventListener("touchend",ae)}function Fwt(e,{handle:t,connectionMode:n,fromNodeId:r,fromHandleId:s,fromType:a,doc:i,lib:l,flowId:c,isValidConnection:u=zwt,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}=hg(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 S=Lwt(void 0,y),w=y.getAttribute("data-nodeid"),k=y.getAttribute("data-handleid"),_=y.classList.contains("connectable"),C=y.classList.contains("connectableend");if(!w||!S)return b;const E={source:f?w:r,sourceHandle:f?k:s,target:f?r:w,targetHandle:f?s:k};b.connection=E;const T=_&&C&&(n===OT.Strict?f&&S==="source"||!f&&S==="target":w!==r||k!==s);b.isValid=T&&u(E),b.toHandle=Dwt(w,S,k,d,n,!0)}return b}const tme={onPointerDown:VWn,isValid:Fwt};function HWn({domNode:e,panZoom:t,getTransform:n,getViewScale:r}){const s=yp(e);function a({translateExtent:l,width:c,height:u,zoomStep:d=1,pannable:f=!0,zoomable:p=!0,inversePan:h=!1}){const m=w=>{if(w.sourceEvent.type!=="wheel"||!t)return;const k=n(),_=w.sourceEvent.ctrlKey&&dM()?10:1,C=-w.sourceEvent.deltaY*(w.sourceEvent.deltaMode===1?.05:w.sourceEvent.deltaMode?1:.002)*d,E=k[2]*Math.pow(2,C*_);t.scaleTo(E)};let v=[0,0];const y=w=>{(w.sourceEvent.type==="mousedown"||w.sourceEvent.type==="touchstart")&&(v=[w.sourceEvent.clientX??w.sourceEvent.touches[0].clientX,w.sourceEvent.clientY??w.sourceEvent.touches[0].clientY])},b=w=>{const k=n();if(w.sourceEvent.type!=="mousemove"&&w.sourceEvent.type!=="touchmove"||!t)return;const _=[w.sourceEvent.clientX??w.sourceEvent.touches[0].clientX,w.sourceEvent.clientY??w.sourceEvent.touches[0].clientY],C=[_[0]-v[0],_[1]-v[1]];v=_;const E=r()*Math.max(k[2],Math.log(k[2]))*(h?-1:1),j={x:k[0]-C[0]*E,y:k[1]-C[1]*E},T=[[0,0],[c,u]];t.setViewportConstrained({x:j.x,y:j.y,zoom:k[2]},T,l)},S=mwt().on("start",y).on("zoom",f?b:null).on("zoom.wheel",p?m:null);s.call(S,{})}function i(){s.on("zoom",null)}return{update:a,destroy:i,pointer:tg}}const ZV=e=>({x:e.x,y:e.y,zoom:e.k}),pee=({x:e,y:t,zoom:n})=>VV.translate(e,t).scale(n),GE=(e,t)=>e.target.closest(`.${t}`),Bwt=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),WWn=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,hee=(e,t=0,n=WWn,r=()=>{})=>{const s=typeof t=="number"&&t>0;return s||r(),s?e.transition().duration(t).ease(n).on("end",r):e},Uwt=e=>{const t=e.ctrlKey&&dM()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function ZWn({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:r,panOnScrollMode:s,panOnScrollSpeed:a,zoomOnPinch:i,onPanZoomStart:l,onPanZoom:c,onPanZoomEnd:u}){return d=>{if(GE(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=tg(d),b=Uwt(d),S=f*Math.pow(2,b);r.scaleTo(n,S,y,d);return}const p=d.deltaMode===1?20:1;let h=s===Wk.Vertical?0:d.deltaX*p,m=s===Wk.Horizontal?0:d.deltaY*p;!dM()&&d.shiftKey&&s!==Wk.Vertical&&(h=d.deltaY*p,m=0),r.translateBy(n,-(h/f)*a,-(m/f)*a,{internal:!0});const v=ZV(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 GWn({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(r,s){const a=r.type==="wheel",i=!t&&a&&!r.ctrlKey,l=GE(r,e);if(r.ctrlKey&&a&&l&&r.preventDefault(),i||l)return null;r.preventDefault(),n.call(this,r,s)}}function QWn({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return r=>{if(r.sourceEvent?.internal)return;const s=ZV(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 YWn({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:r,onPanZoom:s}){return a=>{e.usedRightMouseButton=!!(n&&Bwt(t,e.mouseButton??0)),a.sourceEvent?.sync||r([a.transform.x,a.transform.y,a.transform.k]),s&&!a.sourceEvent?.internal&&s?.(a.sourceEvent,ZV(a.transform))}}function XWn({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:r,onPanZoomEnd:s,onPaneContextMenu:a}){return i=>{if(!i.sourceEvent?.internal&&(e.isZoomingOrPanning=!1,a&&Bwt(t,e.mouseButton??0)&&!e.usedRightMouseButton&&i.sourceEvent&&a(i.sourceEvent),e.usedRightMouseButton=!1,r(!1),s)){const l=ZV(i.transform);e.prevViewport=l,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{s?.(i.sourceEvent,l)},n?150:0)}}}function KWn({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"&&(GE(f,`${u}-flow__node`)||GE(f,`${u}-flow__edge`)))return!0;if(!r&&!p&&!s&&!a&&!n||i||d&&!m||GE(f,l)&&m||GE(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 JWn({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=mwt().scaleExtent([t,n]).translateExtent(r),p=yp(e).call(f);S({x:s.x,y:s.y,zoom:_T(s.zoom,t,n)},[[0,0],[d.width,d.height]],r);const h=p.on("wheel.zoom"),m=p.on("dblclick.zoom");f.wheelDelta(Uwt);function v(A,P){return p?new Promise(L=>{f?.interpolate(P?.interpolate==="linear"?sx:aF).transform(hee(p,P?.duration,P?.ease,()=>L(!0)),A)}):Promise.resolve(!1)}function y({noWheelClassName:A,noPanClassName:P,onPaneContextMenu:L,userSelectionActive:D,panOnScroll:q,panOnDrag:H,panOnScrollMode:z,panOnScrollSpeed:B,preventScrolling:V,zoomOnPinch:M,zoomOnScroll:Q,zoomOnDoubleClick:U,zoomActivationKeyPressed:$,lib:F,onTransformChange:Z,connectionInProgress:X,paneClickDistance:te,selectionOnDrag:ee}){D&&!u.isZoomingOrPanning&&b();const J=q&&!$&&!D;f.clickDistance(ee?1/0:!pg(te)||te<0?0:te);const ae=J?ZWn({zoomPanValues:u,noWheelClassName:A,d3Selection:p,d3Zoom:f,panOnScrollMode:z,panOnScrollSpeed:B,zoomOnPinch:M,onPanZoomStart:i,onPanZoom:a,onPanZoomEnd:l}):GWn({noWheelClassName:A,preventScrolling:V,d3ZoomHandler:h});if(p.on("wheel.zoom",ae,{passive:!1}),!D){const Y=QWn({zoomPanValues:u,onDraggingChange:c,onPanZoomStart:i});f.on("start",Y);const ne=YWn({zoomPanValues:u,panOnDrag:H,onPaneContextMenu:!!L,onPanZoom:a,onTransformChange:Z});f.on("zoom",ne);const ue=XWn({zoomPanValues:u,panOnDrag:H,panOnScroll:q,onPaneContextMenu:L,onPanZoomEnd:l,onDraggingChange:c});f.on("end",ue)}const pe=KWn({zoomActivationKeyPressed:$,panOnDrag:H,zoomOnScroll:Q,panOnScroll:q,zoomOnDoubleClick:U,zoomOnPinch:M,userSelectionActive:D,noPanClassName:P,noWheelClassName:A,lib:F,connectionInProgress:X});f.filter(pe),U?p.on("dblclick.zoom",m):p.on("dblclick.zoom",null)}function b(){f.on("zoom",null)}async function S(A,P,L){const D=pee(A),q=f?.constrain()(D,P,L);return q&&await v(q),new Promise(H=>H(q))}async function w(A,P){const L=pee(A);return await v(L,P),new Promise(D=>D(L))}function k(A){if(p){const P=pee(A),L=p.property("__zoom");(L.k!==A.zoom||L.x!==A.x||L.y!==A.y)&&f?.transform(p,P,null,{sync:!0})}}function _(){const A=p?hwt(p.node()):{x:0,y:0,k:1};return{x:A.x,y:A.y,zoom:A.k}}function C(A,P){return p?new Promise(L=>{f?.interpolate(P?.interpolate==="linear"?sx:aF).scaleTo(hee(p,P?.duration,P?.ease,()=>L(!0)),A)}):Promise.resolve(!1)}function E(A,P){return p?new Promise(L=>{f?.interpolate(P?.interpolate==="linear"?sx:aF).scaleBy(hee(p,P?.duration,P?.ease,()=>L(!0)),A)}):Promise.resolve(!1)}function j(A){f?.scaleExtent(A)}function T(A){f?.translateExtent(A)}function I(A){const P=!pg(A)||A<0?0:A;f?.clickDistance(P)}return{update:y,destroy:b,setViewport:w,setViewportConstrained:S,getViewport:_,scaleTo:C,scaleBy:E,setScaleExtent:j,setTranslateExtent:T,syncViewport:k,setClickDistance:I}}var jT;(function(e){e.Line="line",e.Handle="handle"})(jT||(jT={}));function eZn({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 Dze(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 z0(e,t){return Math.max(0,t-e)}function F0(e,t){return Math.max(0,e-t)}function R6(e,t,n){return Math.max(0,t-e,e-n)}function Lze(e,t){return e?!t:t}function tZn(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:S}=r,{x:w,y:k,width:_,height:C,aspectRatio:E}=e;let j=Math.floor(d?h-e.pointerX:0),T=Math.floor(f?m-e.pointerY:0);const I=_+(c?-j:j),A=C+(u?-T:T),P=-a[0]*_,L=-a[1]*C;let D=R6(I,v,y),q=R6(A,b,S);if(i){let B=0,V=0;c&&j<0?B=z0(w+j+P,i[0][0]):!c&&j>0&&(B=F0(w+I+P,i[1][0])),u&&T<0?V=z0(k+T+L,i[0][1]):!u&&T>0&&(V=F0(k+A+L,i[1][1])),D=Math.max(D,B),q=Math.max(q,V)}if(l){let B=0,V=0;c&&j>0?B=F0(w+j,l[0][0]):!c&&j<0&&(B=z0(w+I,l[1][0])),u&&T>0?V=F0(k+T,l[0][1]):!u&&T<0&&(V=z0(k+A,l[1][1])),D=Math.max(D,B),q=Math.max(q,V)}if(s){if(d){const B=R6(I/E,b,S)*E;if(D=Math.max(D,B),i){let V=0;!c&&!u||c&&!u&&p?V=F0(k+L+I/E,i[1][1])*E:V=z0(k+L+(c?j:-j)/E,i[0][1])*E,D=Math.max(D,V)}if(l){let V=0;!c&&!u||c&&!u&&p?V=z0(k+I/E,l[1][1])*E:V=F0(k+(c?j:-j)/E,l[0][1])*E,D=Math.max(D,V)}}if(f){const B=R6(A*E,v,y)/E;if(q=Math.max(q,B),i){let V=0;!c&&!u||u&&!c&&p?V=F0(w+A*E+P,i[1][0])/E:V=z0(w+(u?T:-T)*E+P,i[0][0])/E,q=Math.max(q,V)}if(l){let V=0;!c&&!u||u&&!c&&p?V=z0(w+A*E,l[1][0])/E:V=F0(w+(u?T:-T)*E,l[0][0])/E,q=Math.max(q,V)}}}T=T+(T<0?q:-q),j=j+(j<0?D:-D),s&&(p?I>A*E?T=(Lze(c,u)?-j:j)/E:j=(Lze(c,u)?-T:T)*E:d?(T=j/E,u=c):(j=T*E,c=u));const H=c?w+j:w,z=u?k+T:k;return{width:_+(c?-j:j),height:C+(u?-T:T),x:a[0]*j*(c?-1:1)+H,y:a[1]*T*(u?-1:1)+z}}const qwt={width:0,height:0,x:0,y:0},nZn={...qwt,pointerX:0,pointerY:0,aspectRatio:1};function rZn(e){return[[0,0],[e.measured.width,e.measured.height]]}function sZn(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 aZn({domNode:e,nodeId:t,getStoreItems:n,onChange:r,onEnd:s}){const a=yp(e);let i={controlDirection:Dze("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={...qwt},S={...nZn};i={boundaries:d,resizeDirection:p,keepAspectRatio:f,controlDirection:Dze(u)};let w,k=null,_=[],C,E,j,T=!1;const I=ewt().on("start",A=>{const{nodeLookup:P,transform:L,snapGrid:D,snapToGrid:q,nodeOrigin:H,paneDomNode:z}=n();if(w=P.get(t),!w)return;k=z?.getBoundingClientRect()??null;const{xSnapped:B,ySnapped:V}=W2(A.sourceEvent,{transform:L,snapGrid:D,snapToGrid:q,containerBounds:k});b={width:w.measured.width??0,height:w.measured.height??0,x:w.position.x??0,y:w.position.y??0},S={...b,pointerX:B,pointerY:V,aspectRatio:b.width/b.height},C=void 0,w.parentId&&(w.extent==="parent"||w.expandParent)&&(C=P.get(w.parentId),E=C&&w.extent==="parent"?rZn(C):void 0),_=[],j=void 0;for(const[M,Q]of P)if(Q.parentId===t&&(_.push({id:M,position:{...Q.position},extent:Q.extent}),Q.extent==="parent"||Q.expandParent)){const U=sZn(Q,w,Q.origin??H);j?j=[[Math.min(U[0][0],j[0][0]),Math.min(U[0][1],j[0][1])],[Math.max(U[1][0],j[1][0]),Math.max(U[1][1],j[1][1])]]:j=U}h?.(A,{...b})}).on("drag",A=>{const{transform:P,snapGrid:L,snapToGrid:D,nodeOrigin:q}=n(),H=W2(A.sourceEvent,{transform:P,snapGrid:L,snapToGrid:D,containerBounds:k}),z=[];if(!w)return;const{x:B,y:V,width:M,height:Q}=b,U={},$=w.origin??q,{width:F,height:Z,x:X,y:te}=tZn(S,i.controlDirection,H,i.boundaries,i.keepAspectRatio,$,E,j),ee=F!==M,J=Z!==Q,ae=X!==B&&ee,pe=te!==V&&J;if(!ae&&!pe&&!ee&&!J)return;if((ae||pe||$[0]===1||$[1]===1)&&(U.x=ae?X:b.x,U.y=pe?te:b.y,b.x=U.x,b.y=U.y,_.length>0)){const fe=X-B,oe=te-V;for(const me of _)me.position={x:me.position.x-fe+$[0]*(F-M),y:me.position.y-oe+$[1]*(Z-Q)},z.push(me)}if((ee||J)&&(U.width=ee&&(!i.resizeDirection||i.resizeDirection==="horizontal")?F:b.width,U.height=J&&(!i.resizeDirection||i.resizeDirection==="vertical")?Z:b.height,b.width=U.width,b.height=U.height),C&&w.expandParent){const fe=$[0]*(U.width??0);U.x&&U.x<fe&&(b.x=fe,S.x=S.x-(U.x-fe));const oe=$[1]*(U.height??0);U.y&&U.y<oe&&(b.y=oe,S.y=S.y-(U.y-oe))}const Y=eZn({width:b.width,prevWidth:M,height:b.height,prevHeight:Q,affectsX:i.controlDirection.affectsX,affectsY:i.controlDirection.affectsY}),ne={...b,direction:Y};y?.(A,ne)!==!1&&(T=!0,m?.(A,ne),r(U,z))}).on("end",A=>{T&&(v?.(A,{...b}),s?.({...b}),T=!1)});a.call(I)}function c(){a.on(".drag",null)}return{update:l,destroy:c}}const iZn={},zze=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:()=>{(iZn?"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},oZn=e=>e?zze(e):zze,{useDebugValue:lZn}=Le,{useSyncExternalStoreWithSelector:cZn}=CSn,uZn=e=>e;function Vwt(e,t=uZn,n){const r=cZn(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return lZn(r),r}const Fze=(e,t)=>{const n=oZn(e),r=(s,a=t)=>Vwt(n,s,a);return Object.assign(r,n),r},dZn=(e,t)=>e?Fze(e,t):Fze;function so(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 GV=g.createContext(null),fZn=GV.Provider,Hwt=my.error001();function qs(e,t){const n=g.useContext(GV);if(n===null)throw new Error(Hwt);return Vwt(n,e,t)}function ko(){const e=g.useContext(GV);if(e===null)throw new Error(Hwt);return g.useMemo(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}const Bze={display:"none"},pZn={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},Wwt="react-flow__node-desc",Zwt="react-flow__edge-desc",hZn="react-flow__aria-live",mZn=e=>e.ariaLiveMessage,gZn=e=>e.ariaLabelConfig;function vZn({rfId:e}){const t=qs(mZn);return o.jsx("div",{id:`${hZn}-${e}`,"aria-live":"assertive","aria-atomic":"true",style:pZn,children:t})}function yZn({rfId:e,disableKeyboardA11y:t}){const n=qs(gZn);return o.jsxs(o.Fragment,{children:[o.jsx("div",{id:`${Wwt}-${e}`,style:Bze,children:t?n["node.a11yDescription.default"]:n["node.a11yDescription.keyboardDisabled"]}),o.jsx("div",{id:`${Zwt}-${e}`,style:Bze,children:n["edge.a11yDescription.default"]}),!t&&o.jsx(vZn,{rfId:e})]})}const S3=g.forwardRef(({position:e="top-left",children:t,className:n,style:r,...s},a)=>{const i=`${e}`.split("-");return o.jsx("div",{className:Dl(["react-flow__panel",n,...i]),style:r,ref:a,...s,children:t})});S3.displayName="Panel";function bZn({proOptions:e,position:t="bottom-right"}){return e?.hideAttribution?null:o.jsx(S3,{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 xZn=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}},P6=e=>e.id;function wZn(e,t){return so(e.selectedNodes.map(P6),t.selectedNodes.map(P6))&&so(e.selectedEdges.map(P6),t.selectedEdges.map(P6))}function SZn({onSelectionChange:e}){const t=ko(),{selectedNodes:n,selectedEdges:r}=qs(xZn,wZn);return g.useEffect(()=>{const s={nodes:n,edges:r};e?.(s),t.getState().onSelectionChangeHandlers.forEach(a=>a(s))},[n,r,e]),null}const kZn=e=>!!e.onSelectionChangeHandlers;function OZn({onSelectionChange:e}){const t=qs(kZn);return e||t?o.jsx(SZn,{onSelectionChange:e}):null}const nme=typeof window<"u"?g.useLayoutEffect:g.useEffect,Gwt=[0,0],_Zn={x:0,y:0,zoom:1},CZn=["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"],Uze=[...CZn,"rfId"],EZn=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}),qze={translateExtent:oM,nodeOrigin:Gwt,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:"nopan",rfId:"1"};function jZn(e){const{setNodes:t,setEdges:n,setMinZoom:r,setMaxZoom:s,setTranslateExtent:a,setNodeExtent:i,reset:l,setDefaultNodesAndEdges:c}=qs(EZn,so),u=ko();nme(()=>(c(e.defaultNodes,e.defaultEdges),()=>{d.current=qze,l()}),[]);const d=g.useRef(qze);return nme(()=>{for(const f of Uze){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:vWn(p)}):f==="fitView"?u.setState({fitViewQueued:p}):f==="fitViewOptions"?u.setState({fitViewOptions:p}):u.setState({[f]:p})))}d.current=e},Uze.map(f=>e[f])),null}function Vze(){return typeof window>"u"||!window.matchMedia?null:window.matchMedia("(prefers-color-scheme: dark)")}function TZn(e){const[t,n]=g.useState(e==="system"?null:e);return g.useEffect(()=>{if(e!=="system"){n(e);return}const r=Vze(),s=()=>n(r?.matches?"dark":"light");return s(),r?.addEventListener("change",s),()=>{r?.removeEventListener("change",s)}},[e]),t!==null?t:Vze()?.matches?"dark":"light"}const Hze=typeof document<"u"?document:null;function fM(e=null,t={target:Hze,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("+",`
|
|
336
|
+
`: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 T7n(this):new C7n(this)}getCursor(t,n=0,r){let s=t.doc?t:os.create({doc:t});return r==null&&(r=s.doc.length),this.regexp?CE(this,s,n,r):_E(this,s,n,r)}}class k0t{constructor(t){this.spec=t}}function O7n(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 _E(e,t,n,r){let s;return e.wholeWord&&(s=_7n(t.doc,t.charCategorizer(t.selection.main.head))),e.test&&(s=O7n(e.test,t,s)),new Ox(t.doc,e.unquoted,n,r,e.caseSensitive?void 0:a=>a.toLowerCase(),s)}function _7n(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(A7(s,n-a))!=mo.Word||t(R7(s,n-a))!=mo.Word)&&(t(R7(s,r-a))!=mo.Word||t(A7(s,r-a))!=mo.Word))}class C7n extends k0t{constructor(t){super(t)}nextMatch(t,n,r){let s=_E(this.spec,t,r,t.doc.length).nextOverlapping();if(s.done){let a=Math.min(t.doc.length,n+this.spec.unquoted.length);s=_E(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=_E(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=_E(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=_E(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 E7n(e,t,n){return(r,s,a)=>(!n||n(r,s,a))&&e(a[0],t,r,s)}function CE(e,t,n,r){let s;return e.wholeWord&&(s=j7n(t.charCategorizer(t.selection.main.head))),e.test&&(s=E7n(e.test,t,s)),new x0t(t.doc,e.search,{ignoreCase:!e.caseSensitive,test:s},n,r)}function A7(e,t){return e.slice(xc(e,t,!1),t)}function R7(e,t){return e.slice(t,xc(e,t))}function j7n(e){return(t,n,r)=>!r[0].length||(e(A7(r.input,r.index))!=mo.Word||e(R7(r.input,r.index))!=mo.Word)&&(e(R7(r.input,r.index+r[0].length))!=mo.Word||e(A7(r.input,r.index+r[0].length))!=mo.Word)}class T7n extends k0t{nextMatch(t,n,r){let s=CE(this.spec,t,r,t.doc.length).next();return s.done&&(s=CE(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=CE(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=CE(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=CE(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 eM=vr.define(),j1e=vr.define(),Mw=vl.define({create(e){return new uJ(Bhe(e).create(),null)},update(e,t){for(let n of t.effects)n.is(eM)?e=new uJ(n.value.create(),e.panel):n.is(j1e)&&(e=new uJ(e.query,n.value?T1e:null));return e},provide:e=>V$.from(e,t=>t.panel)});class uJ{constructor(t,n){this.query=t,this.panel=n}}const N7n=En.mark({class:"cm-searchMatch"}),I7n=En.mark({class:"cm-searchMatch cm-searchMatch-selected"}),A7n=xo.fromClass(class{constructor(e){this.view=e,this.decorations=this.highlight(e.state.field(Mw))}update(e){let t=e.state.field(Mw);(t!=e.startState.field(Mw)||e.docChanged||e.selectionSet||e.viewportChanged)&&(this.decorations=this.highlight(t))}highlight({query:e,panel:t}){if(!t||!e.spec.valid)return En.none;let{view:n}=this,r=new jd;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?I7n:N7n)})}return r.finish()}},{decorations:e=>e.decorations});function m3(e){return t=>{let n=t.state.field(Mw,!1);return n&&n.query.spec.valid?e(t,n):C0t(t)}}const P7=m3((e,{query:t})=>{let{to:n}=e.state.selection.main,r=t.nextMatch(e.state,n,n);if(!r)return!1;let s=vt.single(r.from,r.to),a=e.state.facet(HN);return e.dispatch({selection:s,effects:[N1e(e,r),a.scrollToMatch(s.main,e)],userEvent:"select.search"}),_0t(e),!0}),$7=m3((e,{query:t})=>{let{state:n}=e,{from:r}=n.selection.main,s=t.prevMatch(n,r,r);if(!s)return!1;let a=vt.single(s.from,s.to),i=e.state.facet(HN);return e.dispatch({selection:a,effects:[N1e(e,s),i.scrollToMatch(a.main,e)],userEvent:"select.search"}),_0t(e),!0}),R7n=m3((e,{query:t})=>{let n=t.matchAll(e.state,1e3);return!n||!n.length?!1:(e.dispatch({selection:vt.create(n.map(r=>vt.range(r.from,r.to))),userEvent:"select.search.matches"}),!0)}),P7n=({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 Ox(e.doc,e.sliceDoc(r,s));!l.next().done;){if(a.length>1e3)return!1;l.value.from==r&&(i=a.length),a.push(vt.range(l.value.from,l.value.to))}return t(e.update({selection:vt.create(a,i),userEvent:"select.search.matches"})),!0},K6e=m3((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(Tt.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=vt.single(i.from,i.to).map(f),d.push(N1e(e,i)),d.push(n.facet(HN).scrollToMatch(c.main,e))),e.dispatch({changes:f,selection:c,effects:d,userEvent:"input.replace"}),!0}),$7n=m3((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:Tt.announce.of(r),userEvent:"input.replace.all"}),!0});function T1e(e){return e.state.facet(HN).createPanel(e)}function Bhe(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(HN);return new S0t({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 O0t(e){let t=Hwe(e,T1e);return t&&t.dom.querySelector("[main-field]")}function _0t(e){let t=O0t(e);t&&t==e.root.activeElement&&t.select()}const C0t=e=>{let t=e.state.field(Mw,!1);if(t&&t.panel){let n=O0t(e);if(n&&n!=e.root.activeElement){let r=Bhe(e.state,t.query.spec);r.valid&&e.dispatch({effects:eM.of(r)}),n.focus(),n.select()}}else e.dispatch({effects:[j1e.of(!0),t?eM.of(Bhe(e.state,t.query.spec)):vr.appendConfig.of(z7n)]});return!0},E0t=e=>{let t=e.state.field(Mw,!1);if(!t||!t.panel)return!1;let n=Hwe(e,T1e);return n&&n.dom.contains(e.root.activeElement)&&e.focus(),e.dispatch({effects:j1e.of(!1)}),!0},M7n=[{key:"Mod-f",run:C0t,scope:"editor search-panel"},{key:"F3",run:P7,shift:$7,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:P7,shift:$7,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:E0t,scope:"editor search-panel"},{key:"Mod-Shift-l",run:P7n},{key:"Mod-Alt-g",run:f7n},{key:"Mod-d",run:k7n,preventDefault:!0}];class D7n{constructor(t){this.view=t;let n=this.query=t.state.field(Mw).query.spec;this.commit=this.commit.bind(this),this.searchField=ui("input",{value:n.search,placeholder:Xf(t,"Find"),"aria-label":Xf(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:Xf(t,"Replace"),"aria-label":Xf(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",()=>P7(t),[Xf(t,"next")]),r("prev",()=>$7(t),[Xf(t,"previous")]),r("select",()=>R7n(t),[Xf(t,"all")]),ui("label",null,[this.caseField,Xf(t,"match case")]),ui("label",null,[this.reField,Xf(t,"regexp")]),ui("label",null,[this.wordField,Xf(t,"by word")]),...t.state.readOnly?[]:[ui("br"),this.replaceField,r("replace",()=>K6e(t),[Xf(t,"replace")]),r("replaceAll",()=>$7n(t),[Xf(t,"replace all")])],ui("button",{name:"close",onclick:()=>E0t(t),"aria-label":Xf(t,"close"),type:"button"},["×"])])}commit(){let t=new S0t({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:eM.of(t)}))}keydown(t){r5n(this.view,t,"search-panel")?t.preventDefault():t.keyCode==13&&t.target==this.searchField?(t.preventDefault(),(t.shiftKey?$7:P7)(this.view)):t.keyCode==13&&t.target==this.replaceField&&(t.preventDefault(),K6e(this.view))}update(t){for(let n of t.transactions)for(let r of n.effects)r.is(eM)&&!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(HN).top}}function Xf(e,t){return e.state.phrase(t)}const O6=30,_6=/[\s\.,:;?!]/;function N1e(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-O6),i=Math.min(s,n+O6),l=e.state.sliceDoc(a,i);if(a!=r.from){for(let c=0;c<O6;c++)if(!_6.test(l[c+1])&&_6.test(l[c])){l=l.slice(c);break}}if(i!=s){for(let c=l.length-1;c>l.length-O6;c--)if(!_6.test(l[c-1])&&_6.test(l[c])){l=l.slice(0,c);break}}return Tt.announce.of(`${e.state.phrase("current match")}. ${l} ${e.state.phrase("on line")} ${r.number}.`)}const L7n=Tt.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"}}),z7n=[Mw,Xp.low(A7n),L7n];class J6e{constructor(t,n,r){this.from=t,this.to=n,this.diagnostic=r}}class hk{constructor(t,n,r){this.diagnostics=t,this.panel=n,this.selected=r}static init(t,n,r){let s=r.facet(tM).markerFilter;s&&(t=s(t,r));let a=t.slice().sort((d,f)=>d.from-f.from||d.to-f.to),i=new jd,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=K7n(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,En.widget({widget:new G7n(m),diagnostics:l.slice()}));else{let v=l.reduce((y,b)=>b.markClass?y+" "+b.markClass:y,"");i.add(p,h,En.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 hk(u,n,wT(u))}}function wT(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 J6e(s,a,t||i.diagnostics[0]);else{if(i.diagnostics.indexOf(r.diagnostic)<0)return!1;r=new J6e(r.from,a,r.diagnostic)}}),r}function F7n(e,t){let n=t.pos,r=t.end||n,s=e.state.facet(tM).hideOn(e,n,r);if(s!=null)return s;let a=e.startState.doc.lineAt(t.pos);return!!(e.effects.some(i=>i.is(j0t))||e.changes.touchesRange(a.from,Math.max(a.to,r)))}function B7n(e,t){return e.field(Sp,!1)?t:t.concat(vr.appendConfig.of(J7n))}const j0t=vr.define(),I1e=vr.define(),T0t=vr.define(),Sp=vl.define({create(){return new hk(En.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=wT(n,e.selected.diagnostic,a)||wT(n,null,a)}!n.size&&s&&t.state.facet(tM).autoPanel&&(s=null),e=new hk(n,s,r)}for(let n of t.effects)if(n.is(j0t)){let r=t.state.facet(tM).autoPanel?n.value.length?nM.open:null:e.panel;e=hk.init(n.value,r,t.state)}else n.is(I1e)?e=new hk(e.diagnostics,n.value?nM.open:null,e.selected):n.is(T0t)&&(e=new hk(e.diagnostics,e.panel,n.value));return e},provide:e=>[V$.from(e,t=>t.panel),Tt.decorations.from(e,t=>t.diagnostics)]}),U7n=En.mark({class:"cm-lintRange cm-lintRange-active"});function q7n(e,t,n){let{diagnostics:r}=e.state.field(Sp),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(tM).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:V7n(e,s)}}}:null}function V7n(e,t){return ui("ul",{class:"cm-tooltip-lint"},t.map(n=>I0t(e,n,!1)))}const H7n=e=>{let t=e.state.field(Sp,!1);(!t||!t.panel)&&e.dispatch({effects:B7n(e.state,[I1e.of(!0)])});let n=Hwe(e,nM.open);return n&&n.dom.querySelector(".cm-panel-lint ul").focus(),!0},e9e=e=>{let t=e.state.field(Sp,!1);return!t||!t.panel?!1:(e.dispatch({effects:I1e.of(!1)}),!0)},W7n=e=>{let t=e.state.field(Sp,!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)},Z7n=[{key:"Mod-Shift-m",run:H7n,preventDefault:!0},{key:"F8",run:W7n}],tM=On.define({combine(e){return{sources:e.map(t=>t.source).filter(t=>t!=null),...$y(e.map(t=>t.config),{delay:750,markerFilter:null,tooltipFilter:null,needsRefresh:null,hideOn:()=>null},{delay:Math.max,markerFilter:t9e,tooltipFilter:t9e,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 t9e(e,t){return e?t?(n,r)=>t(e(n,r),r):e:t}function N0t(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 I0t(e,t,n){var r;let s=n?N0t(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=wT(e.state.field(Sp).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 G7n extends Kp{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 n9e{constructor(t,n){this.diagnostic=n,this.id="item_"+Math.floor(Math.random()*4294967295).toString(16),this.dom=I0t(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)e9e(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=N0t(a.actions);for(let l=0;l<i.length;l++)if(i[l].toUpperCase().charCodeAt(0)==s.keyCode){let c=wT(this.view.state.field(Sp).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:()=>e9e(this.view)},"×")),this.update()}get selectedIndex(){let t=this.view.state.field(Sp).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(Sp),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 n9e(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 n9e(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(Sp),r=wT(n.diagnostics,this.items[t].diagnostic);r&&this.view.dispatch({selection:{anchor:r.from,head:r.to},scrollIntoView:!0,effects:T0t.of(r)})}static open(t){return new nM(t)}}function Q7n(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 C6(e){return Q7n(`<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 Y7n=Tt.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:C6("#d11")},".cm-lintRange-warning":{backgroundImage:C6("orange")},".cm-lintRange-info":{backgroundImage:C6("#999")},".cm-lintRange-hint":{backgroundImage:C6("#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 X7n(e){return e=="error"?4:e=="warning"?3:e=="info"?2:1}function K7n(e){let t="hint",n=1;for(let r of e){let s=X7n(r.severity);s>n&&(n=s,t=r.severity)}return t}const J7n=[Sp,Tt.decorations.compute([Sp],e=>{let{selected:t,panel:n}=e.field(Sp);return!t||!n||t.from==t.to?En.none:En.set([U7n.range(t.from,t.to)])}),H5n(q7n,{hideOn:F7n}),Y7n];var r9e=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(U6n)),t.defaultKeymap!==!1&&(a=a.concat(c7n)),t.searchKeymap!==!1&&(a=a.concat(M7n)),t.historyKeymap!==!1&&(a=a.concat(g8n)),t.foldKeymap!==!1&&(a=a.concat(ELn)),t.completionKeymap!==!1&&(a=a.concat(_bt)),t.lintKeymap!==!1&&(a=a.concat(Z7n));var i=[];return t.lineNumbers!==!1&&i.push(rLn()),t.highlightActiveLineGutter!==!1&&i.push(iLn()),t.highlightSpecialChars!==!1&&i.push(b5n()),t.history!==!1&&i.push(o8n()),t.foldGutter!==!1&&i.push(ILn()),t.drawSelection!==!1&&i.push(c5n()),t.dropCursor!==!1&&i.push(h5n()),t.allowMultipleSelections!==!1&&i.push(os.allowMultipleSelections.of(!0)),t.indentOnInput!==!1&&i.push(bLn()),t.syntaxHighlighting!==!1&&i.push(B1($Ln,{fallback:!0})),t.bracketMatching!==!1&&i.push(ULn()),t.closeBrackets!==!1&&i.push(L6n()),t.autocompletion!==!1&&i.push(Obt()),t.rectangularSelection!==!1&&i.push(R5n()),s!==!1&&i.push(M5n()),t.highlightActiveLine!==!1&&i.push(_5n()),t.highlightSelectionMatches!==!1&&i.push(m7n()),t.tabSize&&typeof t.tabSize=="number"&&i.push(BN.of(" ".repeat(t.tabSize))),i.concat([FN.of(a.flat())]).filter(Boolean)};const eBn="#e5c07b",s9e="#e06c75",tBn="#56b6c2",nBn="#ffffff",rF="#abb2bf",Uhe="#7d8799",rBn="#61afef",sBn="#98c379",a9e="#d19a66",aBn="#c678dd",iBn="#21252b",i9e="#2c313a",o9e="#282c34",dJ="#353a42",oBn="#3E4451",l9e="#528bff",lBn=Tt.theme({"&":{color:rF,backgroundColor:o9e},".cm-content":{caretColor:l9e},".cm-cursor, .cm-dropCursor":{borderLeftColor:l9e},"&.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection":{backgroundColor:oBn},".cm-panels":{backgroundColor:iBn,color:rF},".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:o9e,color:Uhe,border:"none"},".cm-activeLineGutter":{backgroundColor:i9e},".cm-foldPlaceholder":{backgroundColor:"transparent",border:"none",color:"#ddd"},".cm-tooltip":{border:"none",backgroundColor:dJ},".cm-tooltip .cm-tooltip-arrow:before":{borderTopColor:"transparent",borderBottomColor:"transparent"},".cm-tooltip .cm-tooltip-arrow:after":{borderTopColor:dJ,borderBottomColor:dJ},".cm-tooltip-autocomplete":{"& > ul > li[aria-selected]":{backgroundColor:i9e,color:rF}}},{dark:!0}),cBn=Lg.define([{tag:de.keyword,color:aBn},{tag:[de.name,de.deleted,de.character,de.propertyName,de.macroName],color:s9e},{tag:[de.function(de.variableName),de.labelName],color:rBn},{tag:[de.color,de.constant(de.name),de.standard(de.name)],color:a9e},{tag:[de.definition(de.name),de.separator],color:rF},{tag:[de.typeName,de.className,de.number,de.changed,de.annotation,de.modifier,de.self,de.namespace],color:eBn},{tag:[de.operator,de.operatorKeyword,de.url,de.escape,de.regexp,de.link,de.special(de.string)],color:tBn},{tag:[de.meta,de.comment],color:Uhe},{tag:de.strong,fontWeight:"bold"},{tag:de.emphasis,fontStyle:"italic"},{tag:de.strikethrough,textDecoration:"line-through"},{tag:de.link,color:Uhe,textDecoration:"underline"},{tag:de.heading,fontWeight:"bold",color:s9e},{tag:[de.atom,de.bool,de.special(de.variableName)],color:a9e},{tag:[de.processingInstruction,de.string,de.inserted],color:sBn},{tag:de.invalid,color:nBn}]),uBn=[lBn,B1(cBn)];var dBn=Tt.theme({"&":{backgroundColor:"#fff"}},{dark:!1}),fBn=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(FN.of([u7n])),m&&(typeof m=="boolean"?v.unshift(r9e()):v.unshift(r9e(m))),p&&v.unshift(T5n(p)),d){case"light":v.push(dBn);break;case"dark":v.push(uBn);break;case"none":break;default:v.push(d);break}return i===!1&&v.push(Tt.editable.of(!1)),c&&v.push(os.readOnly.of(!0)),[...v]},pBn=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 hBn{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 c9e{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 fJ=null,mBn=()=>typeof window>"u"?new c9e:(fJ||(fJ=new c9e),fJ),gBn=Tt.theme({"& .cm-scroller":{height:"100% !important"}}),u9e=null,pJ=null;function vBn(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===u9e||(u9e=i,pJ=Tt.theme({"&":{height:e,minHeight:t,maxHeight:n,width:r,minWidth:s,maxWidth:a}})),pJ}var d9e=Py.define(),yBn=200,bBn=[];function xBn(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?bBn: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,S=e.width,w=S===void 0?null:S,k=e.minWidth,_=k===void 0?null:k,C=e.maxWidth,E=C===void 0?null:C,j=e.placeholder,T=j===void 0?"":j,I=e.editable,A=I===void 0?!0:I,P=e.readOnly,L=P===void 0?!1:P,D=e.indentWithTab,q=D===void 0?!0:D,H=e.basicSetup,z=H===void 0?!0:H,B=e.root,V=e.initialState,M=g.useState(),Q=M[0],U=M[1],$=g.useState(),F=$[0],Z=$[1],X=g.useState(),te=X[0],ee=X[1],J=g.useState(()=>({current:null}))[0],ae=g.useState(()=>({current:null}))[0],pe=vBn(h,v,b,w,_,E),Y=Tt.updateListener.of(fe=>{if(fe.docChanged&&typeof r=="function"&&!fe.transactions.some(be=>be.annotation(d9e))){J.current?J.current.reset():(J.current=new hBn(()=>{if(ae.current){var be=ae.current;ae.current=null,be()}J.current=null},yBn),mBn().add(J.current));var oe=fe.state.doc,me=oe.toString();r(me,fe)}s&&s(pBn(fe))}),ne=fBn({theme:f,editable:A,readOnly:L,placeholder:T,indentWithTab:q,basicSetup:z}),ue=[Y,...pe?[pe]:[],gBn,...ne];return i&&typeof i=="function"&&ue.push(Tt.updateListener.of(i)),ue=ue.concat(c),g.useLayoutEffect(()=>{if(Q&&!te){var fe={doc:t,selection:n,extensions:ue},oe=V?os.fromJSON(V.json,fe,V.fields):os.create(fe);if(ee(oe),!F){var me=new Tt({state:oe,parent:Q,root:B});Z(me),a&&a(me,oe)}}return()=>{F&&(ee(void 0),Z(void 0))}},[Q,te]),g.useEffect(()=>{e.container&&U(e.container)},[e.container]),g.useEffect(()=>()=>{F&&(F.destroy(),Z(void 0)),J.current&&(J.current.cancel(),J.current=null)},[F]),g.useEffect(()=>{u&&F&&F.focus()},[u,F]),g.useEffect(()=>{F&&F.dispatch({effects:vr.reconfigure.of(ue)})},[f,c,h,v,b,w,_,E,T,A,L,q,z,r,i]),g.useEffect(()=>{if(t!==void 0){var fe=F?F.state.doc.toString():"";if(F&&t!==fe){var oe=J.current&&!J.current.isDone,me=()=>{F&&t!==F.state.doc.toString()&&F.dispatch({changes:{from:0,to:F.state.doc.toString().length,insert:t||""},annotations:[d9e.of(!0)]})};oe?ae.current=me:me()}}},[t,F]),{state:te,setState:ee,view:F,setView:Z,container:Q,setContainer:U}}var wBn=["className","value","selection","extensions","onChange","onStatistics","onCreateEditor","onUpdate","autoFocus","theme","height","minHeight","maxHeight","width","minWidth","maxWidth","basicSetup","placeholder","indentWithTab","editable","readOnly","root","initialState"],ou=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,S=e.width,w=e.minWidth,k=e.maxWidth,_=e.basicSetup,C=e.placeholder,E=e.indentWithTab,j=e.editable,T=e.readOnly,I=e.root,A=e.initialState,P=zxt(e,wBn),L=g.useRef(null),D=xBn({root:I,value:s,autoFocus:p,theme:m,height:v,minHeight:y,maxHeight:b,width:S,minWidth:w,maxWidth:k,basicSetup:_,placeholder:C,indentWithTab:E,editable:j,readOnly:T,selection:a,onChange:c,onStatistics:u,onCreateEditor:d,onUpdate:f,extensions:l,initialState:A}),q=D.state,H=D.view,z=D.container,B=D.setContainer;g.useImperativeHandle(t,()=>({editor:L.current,state:q,view:H}),[L,z,q,H]);var V=g.useCallback(Q=>{L.current=Q,B(Q)},[B]);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",AO({ref:V,className:""+M+(n?" "+n:"")},P))});ou.displayName="CodeMirror";const SBn={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"};let hJ=null;function kBn(){return hJ||(hJ=(async()=>{const[{createHighlighterCore:e},{createJavaScriptRegexEngine:t}]=await Promise.all([uo(()=>import("./core-C2MMfFjv.js"),__vite__mapDeps([0,1,2]),import.meta.url),uo(()=>import("./engine-javascript-CSIo_1eZ.js"),__vite__mapDeps([3,1]),import.meta.url)]);return e({themes:[uo(()=>import("./github-light-DAi9KRSo.js"),[],import.meta.url),uo(()=>import("./github-dark-DHJKELXO.js"),[],import.meta.url)],langs:[uo(()=>import("./javascript-ySlJ1b_l.js"),[],import.meta.url),uo(()=>import("./typescript-Dj6nwHGl.js"),[],import.meta.url),uo(()=>import("./tsx-B6W0miNI.js"),[],import.meta.url),uo(()=>import("./jsx-BAng5TT0.js"),[],import.meta.url),uo(()=>import("./json-BQoSv7ci.js"),[],import.meta.url),uo(()=>import("./bash-atvbtKCR.js"),[],import.meta.url),uo(()=>import("./markdown-UIAJJxZW.js"),[],import.meta.url),uo(()=>import("./python-DhUJRlN_.js"),[],import.meta.url)],engine:t()})})()),hJ}async function OBn(e,t){const n=SBn[t?.toLowerCase()];if(!n)return null;const r=await kBn(),{tokens:s}=r.codeToTokens(e,{lang:n,defaultColor:!1,themes:{light:"github-light",dark:"github-dark"}});return s}function _Bn(e){return new jO(Ywe.define(e))}const A0t=[eg.of({name:"JavaScript",alias:["ecmascript","js","node"],extensions:["js","mjs","cjs"],load(){return uo(()=>Promise.resolve().then(()=>S6),void 0,import.meta.url).then(e=>e.javascript())}}),eg.of({name:"JSON",alias:["json5"],extensions:["json","map"],load(){return uo(()=>Promise.resolve().then(()=>e6n),void 0,import.meta.url).then(e=>e.json())}}),eg.of({name:"JSX",extensions:["jsx"],load(){return uo(()=>Promise.resolve().then(()=>S6),void 0,import.meta.url).then(e=>e.javascript({jsx:!0}))}}),eg.of({name:"Markdown",extensions:["md","markdown","mkd"],load(){return uo(()=>Promise.resolve().then(()=>GFn),void 0,import.meta.url).then(e=>e.markdown())}}),eg.of({name:"TSX",extensions:["tsx"],load(){return uo(()=>Promise.resolve().then(()=>S6),void 0,import.meta.url).then(e=>e.javascript({jsx:!0,typescript:!0}))}}),eg.of({name:"TypeScript",alias:["ts"],extensions:["ts","mts","cts"],load(){return uo(()=>Promise.resolve().then(()=>S6),void 0,import.meta.url).then(e=>e.javascript({typescript:!0}))}}),eg.of({name:"Shell",alias:["bash","sh","zsh"],extensions:["sh","ksh","bash"],filename:/^PKGBUILD$/,load(){return uo(()=>import("./shell-CjFT_Tl9.js"),[],import.meta.url).then(e=>_Bn(e.shell))}})];function CBn(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 EBn(e){const t=CBn(e);return Obt({override:[jBn(t)],defaultKeymap:!0,closeOnBlur:!0,icons:!1})}function jBn(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 TBn=/\{\{([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)*)\}\}/g,NBn=En.mark({class:"cm-variable-highlight"}),f9e=new Lyt({regexp:TBn,decoration:()=>NBn}),IBn=xo.fromClass(class{decorations;constructor(e){this.decorations=f9e.createDeco(e)}update(e){this.decorations=f9e.updateDeco(e,this.decorations)}},{decorations:e=>e.decorations}),ABn=IBn;function RBn(){const e=qN({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=Tt.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 PBn(){const e=Tt.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=Lg.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,B1(t)]}const My=()=>{const e=j_().resolvedTheme==="dark";return g.useMemo(()=>e?RBn():PBn(),[e])},$Bn=Fo(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"}}),MBn=Xp.highest(Tt.editorAttributes.of({style:"outline: none"})),DBn=Xp.highest(Tt.theme({"&":{outline:"none"},"&.cm-focused":{outline:"none"},".cm-scroller":{outline:"none"},".cm-content":{outline:"none"},".cm-content:focus":{outline:"none"}})),LBn=[MBn,DBn],Yr=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=My(),b=e?JSON.stringify(e,null,2):t??"",S=g.useMemo(()=>{const w=[...LBn];return f&&w.push(Tt.lineWrapping),a==="json"?w.push(gf):a==="markdown"&&w.push(k1e({base:IO,codeLanguages:A0t})),i&&a==="markdown"&&w.push(ABn),c&&a==="markdown"&&w.push(EBn(c)),p===!1&&w.push(os.readOnly.of(!0)),w},[a,i,c,p,f]);return o.jsxs("div",{className:K($Bn({variant:h}),s),...m,children:[r&&o.jsx(Oa,{content:b,className:"absolute top-2 right-2 z-20"}),o.jsx(ou,{ref:v,value:b,theme:y,extensions:S,onChange:n,editable:p,"aria-label":"Code editor",placeholder:l,height:"100%",style:{height:"100%"},autoFocus:u,basicSetup:{lineNumbers:d}})]})}),zBn=e=>{try{return JSON.stringify(e??{},null,2)}catch{return"{}"}},FBn=({editorClassName:e="h-[240px] max-h-[40vh]",onSaved:t})=>{const n=My(),{settings:r,setSettings:s}=fV(),a=r?.tracingOptions,i=g.useMemo(()=>zBn(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(ye,{as:"h3",variant:"ui-md",className:"text-neutral3",children:"Tracing Options"}),o.jsx(ou,{value:l,onChange:d,theme:n,extensions:[gf],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(ce,{type:"button",onClick:f,children:"Save"})})]})},BBn=()=>{const[e,t]=g.useState(!1);return o.jsxs(o.Fragment,{children:[o.jsxs(Un,{children:[o.jsx(Dn,{asChild:!0,children:o.jsx(ce,{type:"button",variant:"ghost",size:"icon-md","aria-label":"Run Options",onClick:()=>t(!0),children:o.jsx(Ue,{children:o.jsx(Oq,{})})})}),o.jsx(Ln,{children:"Run Options"})]}),o.jsx(br,{open:e,onOpenChange:t,children:o.jsxs(xr,{children:[o.jsxs(wr,{children:[o.jsx(gr,{children:"Run Options"}),o.jsx(Xs,{children:"Configure tracing and debug options for this workflow run"})]}),o.jsx($r,{children:o.jsx(FBn,{onSaved:()=>t(!1)})})]})})]})};function UBn({status:e}){switch(e){case"running":return o.jsx(Qt,{});case"failed":return o.jsx(vs,{className:"text-accent2"});case"canceled":return o.jsx(Ef,{className:"text-neutral3"});case"pending":case"waiting":return o.jsx(Xj,{className:"text-neutral3"});case"suspended":return o.jsx(yq,{className:"text-accent3"});case"success":return o.jsx(ra,{className:"text-accent1"});default:return o.jsx(Xj,{className:"text-neutral3"})}}function R0t({status:e}){return o.jsxs(Un,{children:[o.jsx(Dn,{asChild:!0,children:o.jsx(Ue,{"aria-label":e,className:"shrink-0",children:o.jsx(UBn,{status:e})})}),o.jsx(Ln,{children:e})]})}var mJ,p9e;function A1e(){if(p9e)return mJ;p9e=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 mJ=r,mJ}var gJ,h9e;function qBn(){return h9e||(h9e=1,gJ="2.2.4"),gJ}var vJ,m9e;function VBn(){return m9e||(m9e=1,vJ={Graph:A1e(),version:qBn()}),vJ}var yJ,g9e;function HBn(){if(g9e)return yJ;g9e=1;var e=A1e();yJ={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 yJ}var bJ,v9e;function WBn(){if(v9e)return bJ;v9e=1,bJ=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 bJ}var xJ,y9e;function P0t(){if(y9e)return xJ;y9e=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 xJ=e,xJ}var wJ,b9e;function $0t(){if(b9e)return wJ;b9e=1;var e=P0t();wJ=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 wJ}var SJ,x9e;function ZBn(){if(x9e)return SJ;x9e=1;var e=$0t();SJ=t;function t(n,r,s){return n.nodes().reduce(function(a,i){return a[i]=e(n,i,r,s),a},{})}return SJ}var kJ,w9e;function M0t(){if(w9e)return kJ;w9e=1,kJ=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 kJ}var OJ,S9e;function GBn(){if(S9e)return OJ;S9e=1;var e=M0t();OJ=t;function t(n){return e(n).filter(function(r){return r.length>1||r.length===1&&n.hasEdge(r[0],r[0])})}return OJ}var _J,k9e;function QBn(){if(k9e)return _J;k9e=1,_J=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 _J}var CJ,O9e;function D0t(){if(O9e)return CJ;O9e=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 CJ=e,e.CycleException=t,CJ}var EJ,_9e;function YBn(){if(_9e)return EJ;_9e=1;var e=D0t();EJ=t;function t(n){try{e(n)}catch(r){if(r instanceof e.CycleException)return!1;throw r}return!0}return EJ}var jJ,C9e;function L0t(){if(C9e)return jJ;C9e=1,jJ=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 jJ}var TJ,E9e;function XBn(){if(E9e)return TJ;E9e=1;var e=L0t();TJ=t;function t(n,r){return e(n,r,"post")}return TJ}var NJ,j9e;function KBn(){if(j9e)return NJ;j9e=1;var e=L0t();NJ=t;function t(n,r){return e(n,r,"pre")}return NJ}var IJ,T9e;function JBn(){if(T9e)return IJ;T9e=1;var e=A1e(),t=P0t();IJ=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 IJ}var AJ,N9e;function eUn(){return N9e||(N9e=1,AJ={components:WBn(),dijkstra:$0t(),dijkstraAll:ZBn(),findCycles:GBn(),floydWarshall:QBn(),isAcyclic:YBn(),postorder:XBn(),preorder:KBn(),prim:JBn(),tarjan:M0t(),topsort:D0t()}),AJ}var RJ,I9e;function Ag(){if(I9e)return RJ;I9e=1;var e=VBn();return RJ={Graph:e.Graph,json:HBn(),alg:eUn(),version:e.version},RJ}var PJ,A9e;function tUn(){if(A9e)return PJ;A9e=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 PJ=e,PJ}var $J,R9e;function nUn(){if(R9e)return $J;R9e=1;let e=Ag().Graph,t=tUn();$J=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,S=u.node(b);S.in-=y,l(d,f,S)}),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,S=d(y),w=b+S;f.setEdge(y.v,y.w,w),h=Math.max(h,f.node(y.v).out+=S),p=Math.max(p,f.node(y.w).in+=S)});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 $J}var MJ,P9e;function Il(){if(P9e)return MJ;P9e=1;let e=Ag().Graph;MJ={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:w,zipObject:E};function t(j,T,I,A){for(var P=A;j.hasNode(P);)P=w(A);return I.dummy=T,j.setNode(P,I),P}function n(j){let T=new e().setGraph(j.graph());return j.nodes().forEach(I=>T.setNode(I,j.node(I))),j.edges().forEach(I=>{let A=T.edge(I.v,I.w)||{weight:0,minlen:1},P=j.edge(I);T.setEdge(I.v,I.w,{weight:A.weight+P.weight,minlen:Math.max(A.minlen,P.minlen)})}),T}function r(j){let T=new e({multigraph:j.isMultigraph()}).setGraph(j.graph());return j.nodes().forEach(I=>{j.children(I).length||T.setNode(I,j.node(I))}),j.edges().forEach(I=>{T.setEdge(I,j.edge(I))}),T}function s(j){let T=j.nodes().map(I=>{let A={};return j.outEdges(I).forEach(P=>{A[P.w]=(A[P.w]||0)+j.edge(P).weight}),A});return E(j.nodes(),T)}function a(j){let T=j.nodes().map(I=>{let A={};return j.inEdges(I).forEach(P=>{A[P.v]=(A[P.v]||0)+j.edge(P).weight}),A});return E(j.nodes(),T)}function i(j,T){let I=j.x,A=j.y,P=T.x-I,L=T.y-A,D=j.width/2,q=j.height/2;if(!P&&!L)throw new Error("Not possible to find intersection inside of the rectangle");let H,z;return Math.abs(L)*D>Math.abs(P)*q?(L<0&&(q=-q),H=q*P/L,z=q):(P<0&&(D=-D),H=D,z=D*L/P),{x:I+H,y:A+z}}function l(j){let T=k(m(j)+1).map(()=>[]);return j.nodes().forEach(I=>{let A=j.node(I),P=A.rank;P!==void 0&&(T[P][A.order]=I)}),T}function c(j){let T=j.nodes().map(A=>{let P=j.node(A).rank;return P===void 0?Number.MAX_VALUE:P}),I=h(Math.min,T);j.nodes().forEach(A=>{let P=j.node(A);Object.hasOwn(P,"rank")&&(P.rank-=I)})}function u(j){let T=j.nodes().map(D=>j.node(D).rank),I=h(Math.min,T),A=[];j.nodes().forEach(D=>{let q=j.node(D).rank-I;A[q]||(A[q]=[]),A[q].push(D)});let P=0,L=j.graph().nodeRankFactor;Array.from(A).forEach((D,q)=>{D===void 0&&q%L!==0?--P:D!==void 0&&P&&D.forEach(H=>j.node(H).rank+=P)})}function d(j,T,I,A){let P={width:0,height:0};return arguments.length>=4&&(P.rank=I,P.order=A),t(j,"border",P,T)}function f(j,T=p){const I=[];for(let A=0;A<j.length;A+=T){const P=j.slice(A,A+T);I.push(P)}return I}const p=65535;function h(j,T){if(T.length>p){const I=f(T);return j.apply(null,I.map(A=>j.apply(null,A)))}else return j.apply(null,T)}function m(j){const I=j.nodes().map(A=>{let P=j.node(A).rank;return P===void 0?Number.MIN_VALUE:P});return h(Math.max,I)}function v(j,T){let I={lhs:[],rhs:[]};return j.forEach(A=>{T(A)?I.lhs.push(A):I.rhs.push(A)}),I}function y(j,T){let I=Date.now();try{return T()}finally{console.log(j+" time: "+(Date.now()-I)+"ms")}}function b(j,T){return T()}let S=0;function w(j){var T=++S;return j+(""+T)}function k(j,T,I=1){T==null&&(T=j,j=0);let A=L=>L<T;I<0&&(A=L=>T<L);const P=[];for(let L=j;A(L);L+=I)P.push(L);return P}function _(j,T){const I={};for(const A of T)j[A]!==void 0&&(I[A]=j[A]);return I}function C(j,T){let I=T;return typeof T=="string"&&(I=A=>A[T]),Object.entries(j).reduce((A,[P,L])=>(A[P]=I(L,P),A),{})}function E(j,T){return j.reduce((I,A,P)=>(I[A]=T[P],I),{})}return MJ}var DJ,$9e;function rUn(){if($9e)return DJ;$9e=1;let e=nUn(),t=Il().uniqueId;DJ={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 DJ}var LJ,M9e;function sUn(){if(M9e)return LJ;M9e=1;let e=Il();LJ={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 LJ}var zJ,D9e;function M7(){if(D9e)return zJ;D9e=1;const{applyWithChunking:e}=Il();zJ={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 zJ}var FJ,L9e;function z0t(){if(L9e)return FJ;L9e=1;var e=Ag().Graph,t=M7().slack;FJ=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 FJ}var BJ,z9e;function aUn(){if(z9e)return BJ;z9e=1;var e=z0t(),t=M7().slack,n=M7().longestPath,r=Ag().alg.preorder,s=Ag().alg.postorder,a=Il().simplify;BJ=i,i.initLowLimValues=d,i.initCutValues=l,i.calcCutValue=u,i.leaveEdge=p,i.enterEdge=h,i.exchangeEdges=m;function i(S){S=a(S),n(S);var w=e(S);d(w),l(w,S);for(var k,_;k=p(w);)_=h(w,S,k),m(w,S,k,_)}function l(S,w){var k=s(S,S.nodes());k=k.slice(0,k.length-1),k.forEach(_=>c(S,w,_))}function c(S,w,k){var _=S.node(k),C=_.parent;S.edge(k,C).cutvalue=u(S,w,k)}function u(S,w,k){var _=S.node(k),C=_.parent,E=!0,j=w.edge(k,C),T=0;return j||(E=!1,j=w.edge(C,k)),T=j.weight,w.nodeEdges(k).forEach(I=>{var A=I.v===k,P=A?I.w:I.v;if(P!==C){var L=A===E,D=w.edge(I).weight;if(T+=L?D:-D,y(S,k,P)){var q=S.edge(k,P).cutvalue;T+=L?-q:q}}}),T}function d(S,w){arguments.length<2&&(w=S.nodes()[0]),f(S,{},1,w)}function f(S,w,k,_,C){var E=k,j=S.node(_);return w[_]=!0,S.neighbors(_).forEach(T=>{Object.hasOwn(w,T)||(k=f(S,w,k,T,_))}),j.low=E,j.lim=k++,C?j.parent=C:delete j.parent,k}function p(S){return S.edges().find(w=>S.edge(w).cutvalue<0)}function h(S,w,k){var _=k.v,C=k.w;w.hasEdge(_,C)||(_=k.w,C=k.v);var E=S.node(_),j=S.node(C),T=E,I=!1;E.lim>j.lim&&(T=j,I=!0);var A=w.edges().filter(P=>I===b(S,S.node(P.v),T)&&I!==b(S,S.node(P.w),T));return A.reduce((P,L)=>t(w,L)<t(w,P)?L:P)}function m(S,w,k,_){var C=k.v,E=k.w;S.removeEdge(C,E),S.setEdge(_.v,_.w,{}),d(S),l(S,w),v(S,w)}function v(S,w){var k=S.nodes().find(C=>!w.node(C).parent),_=r(S,k);_=_.slice(1),_.forEach(C=>{var E=S.node(C).parent,j=w.edge(C,E),T=!1;j||(j=w.edge(E,C),T=!0),w.node(C).rank=w.node(E).rank+(T?j.minlen:-j.minlen)})}function y(S,w,k){return S.hasEdge(w,k)}function b(S,w,k){return k.low<=w.lim&&w.lim<=k.lim}return BJ}var UJ,F9e;function iUn(){if(F9e)return UJ;F9e=1;var e=M7(),t=e.longestPath,n=z0t(),r=aUn();UJ=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 UJ}var qJ,B9e;function oUn(){if(B9e)return qJ;B9e=1,qJ=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 qJ}var VJ,U9e;function lUn(){if(U9e)return VJ;U9e=1;let e=Il();VJ={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 S=i.node(b),w=S.borderTop?S.borderTop:b,k=S.borderBottom?S.borderBottom:b,_=S.borderTop?u:2*u,C=w!==k?1:d-f[p]+1;i.setEdge(m,w,{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 VJ}var HJ,q9e;function cUn(){if(q9e)return HJ;q9e=1;let e=Il();HJ=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 HJ}var WJ,V9e;function uUn(){if(V9e)return WJ;V9e=1,WJ={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 WJ}var ZJ,H9e;function dUn(){if(H9e)return ZJ;H9e=1;let e=Il();ZJ=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 ZJ}var GJ,W9e;function fUn(){if(W9e)return GJ;W9e=1;let e=Il().zipObject;GJ=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 GJ}var QJ,Z9e;function pUn(){if(Z9e)return QJ;Z9e=1,QJ=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 QJ}var YJ,G9e;function hUn(){if(G9e)return YJ;G9e=1;let e=Il();YJ=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 YJ}var XJ,Q9e;function mUn(){if(Q9e)return XJ;Q9e=1;let e=Il();XJ=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 XJ}var KJ,Y9e;function gUn(){if(Y9e)return KJ;Y9e=1;let e=pUn(),t=hUn(),n=mUn();KJ=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(S=>S!==p&&S!==h));let v=e(i,d);v.forEach(S=>{if(i.children(S.v).length){let w=r(i,S.v,c,u);m[S.v]=w,Object.hasOwn(w,"barycenter")&&a(S,w)}});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 S=i.node(i.predecessors(p)[0]),w=i.node(i.predecessors(h)[0]);Object.hasOwn(b,"barycenter")||(b.barycenter=0,b.weight=0),b.barycenter=(b.barycenter*b.weight+S.order+w.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 KJ}var JJ,X9e;function vUn(){if(X9e)return JJ;X9e=1;let e=Ag().Graph,t=Il();JJ=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 JJ}var eee,K9e;function yUn(){if(K9e)return eee;K9e=1,eee=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 eee}var tee,J9e;function bUn(){if(J9e)return tee;J9e=1;let e=dUn(),t=fUn(),n=gUn(),r=vUn(),s=yUn(),a=Ag().Graph,i=Il();tee=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,S;for(let w=0,k=0;k<4;++w,++k){u(w%2?m:v,w%4>=2),y=i.buildLayerMatrix(f);let _=t(f,y);_<b&&(k=0,S=Object.assign({},y),b=_)}d(f,S)}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 S=b.minRank;S<=b.maxRank;S++)S!==b.rank&&v(S,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,S)=>m.node(b).order=S),s(m,h,y.vs)})}function d(f,p){Object.values(p).forEach(h=>h.forEach((m,v)=>f.node(m).order=v))}return tee}var nee,eze;function xUn(){if(eze)return nee;eze=1;let e=Ag().Graph,t=Il();nee={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 S={};function w(k,_){let C=0,E=0,j=k.length,T=_[_.length-1];return _.forEach((I,A)=>{let P=s(y,I),L=P?y.node(P).order:j;(P||I===T)&&(_.slice(E,A+1).forEach(D=>{y.predecessors(D).forEach(q=>{let H=y.node(q),z=H.order;(z<C||L<z)&&!(H.dummy&&y.node(D).dummy)&&a(S,q,D)})}),E=A+1,C=L)}),_}return b.length&&b.reduce(w),S}function r(y,b){let S={};function w(_,C,E,j,T){let I;t.range(C,E).forEach(A=>{I=_[A],y.node(I).dummy&&y.predecessors(I).forEach(P=>{let L=y.node(P);L.dummy&&(L.order<j||L.order>T)&&a(S,P,I)})})}function k(_,C){let E=-1,j,T=0;return C.forEach((I,A)=>{if(y.node(I).dummy==="border"){let P=y.predecessors(I);P.length&&(j=y.node(P[0]).order,w(C,T,A,E,j),T=A,E=j)}w(C,T,C.length,j,_.length)}),C}return b.length&&b.reduce(k),S}function s(y,b){if(y.node(b).dummy)return y.predecessors(b).find(S=>y.node(S).dummy)}function a(y,b,S){if(b>S){let k=b;b=S,S=k}let w=y[b];w||(y[b]=w={}),w[S]=!0}function i(y,b,S){if(b>S){let w=b;b=S,S=w}return!!y[b]&&Object.hasOwn(y[b],S)}function l(y,b,S,w){let k={},_={},C={};return b.forEach(E=>{E.forEach((j,T)=>{k[j]=j,_[j]=j,C[j]=T})}),b.forEach(E=>{let j=-1;E.forEach(T=>{let I=w(T);if(I.length){I=I.sort((P,L)=>C[P]-C[L]);let A=(I.length-1)/2;for(let P=Math.floor(A),L=Math.ceil(A);P<=L;++P){let D=I[P];_[T]===T&&j<C[D]&&!i(S,T,D)&&(_[D]=T,_[T]=k[T]=k[D],j=C[D])}}})}),{root:k,align:_}}function c(y,b,S,w,k){let _={},C=u(y,b,S,k),E=k?"borderLeft":"borderRight";function j(A,P){let L=C.nodes(),D=L.pop(),q={};for(;D;)q[D]?A(D):(q[D]=!0,L.push(D),L=L.concat(P(D))),D=L.pop()}function T(A){_[A]=C.inEdges(A).reduce((P,L)=>Math.max(P,_[L.v]+C.edge(L)),0)}function I(A){let P=C.outEdges(A).reduce((D,q)=>Math.min(D,_[q.w]-C.edge(q)),Number.POSITIVE_INFINITY),L=y.node(A);P!==Number.POSITIVE_INFINITY&&L.borderType!==E&&(_[A]=Math.max(_[A],P))}return j(T,C.predecessors.bind(C)),j(I,C.successors.bind(C)),Object.keys(w).forEach(A=>_[A]=_[S[A]]),_}function u(y,b,S,w){let k=new e,_=y.graph(),C=m(_.nodesep,_.edgesep,w);return b.forEach(E=>{let j;E.forEach(T=>{let I=S[T];if(k.setNode(I),j){var A=S[j],P=k.edge(A,I);k.setEdge(A,I,Math.max(C(y,T,j),P||0))}j=T})}),k}function d(y,b){return Object.values(b).reduce((S,w)=>{let k=Number.NEGATIVE_INFINITY,_=Number.POSITIVE_INFINITY;Object.entries(w).forEach(([E,j])=>{let T=v(y,E)/2;k=Math.max(j+T,k),_=Math.min(j-T,_)});const C=k-_;return C<S[0]&&(S=[C,w]),S},[Number.POSITIVE_INFINITY,null])[1]}function f(y,b){let S=Object.values(b),w=t.applyWithChunking(Math.min,S),k=t.applyWithChunking(Math.max,S);["u","d"].forEach(_=>{["l","r"].forEach(C=>{let E=_+C,j=y[E];if(j===b)return;let T=Object.values(j),I=w-t.applyWithChunking(Math.min,T);C!=="l"&&(I=k-t.applyWithChunking(Math.max,T)),I&&(y[E]=t.mapValues(j,A=>A+I))})})}function p(y,b){return t.mapValues(y.ul,(S,w)=>{if(b)return y[b.toLowerCase()][w];{let k=Object.values(y).map(_=>_[w]).sort((_,C)=>_-C);return(k[1]+k[2])/2}})}function h(y){let b=t.buildLayerMatrix(y),S=Object.assign(n(y,b),r(y,b)),w={},k;["u","d"].forEach(C=>{k=C==="u"?b:Object.values(b).reverse(),["l","r"].forEach(E=>{E==="r"&&(k=k.map(A=>Object.values(A).reverse()));let j=(C==="u"?y.predecessors:y.successors).bind(y),T=l(y,k,S,j),I=c(y,k,T.root,T.align,E==="r");E==="r"&&(I=t.mapValues(I,A=>-A)),w[C+E]=I})});let _=d(y,w);return f(w,_),p(w,y.graph().align)}function m(y,b,S){return(w,k,_)=>{let C=w.node(k),E=w.node(_),j=0,T;if(j+=C.width/2,Object.hasOwn(C,"labelpos"))switch(C.labelpos.toLowerCase()){case"l":T=-C.width/2;break;case"r":T=C.width/2;break}if(T&&(j+=S?T:-T),T=0,j+=(C.dummy?b:y)/2,j+=(E.dummy?b:y)/2,j+=E.width/2,Object.hasOwn(E,"labelpos"))switch(E.labelpos.toLowerCase()){case"l":T=E.width/2;break;case"r":T=-E.width/2;break}return T&&(j+=S?T:-T),T=0,j}}function v(y,b){return y.node(b).width}return nee}var ree,tze;function wUn(){if(tze)return ree;tze=1;let e=Il(),t=xUn().positionX;ree=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 ree}var see,nze;function SUn(){if(nze)return see;nze=1;let e=rUn(),t=sUn(),n=iUn(),r=Il().normalizeRanks,s=oUn(),a=Il().removeEmptyRanks,i=lUn(),l=cUn(),c=uUn(),u=bUn(),d=wUn(),f=Il(),p=Ag().Graph;see=h;function h($,F){let Z=F&&F.debugTiming?f.time:f.notime;Z("layout",()=>{let X=Z(" buildLayoutGraph",()=>j($));Z(" runLayout",()=>m(X,Z,F)),Z(" updateInputGraph",()=>v($,X))})}function m($,F,Z){F(" makeSpaceForEdgeLabels",()=>T($)),F(" removeSelfEdges",()=>B($)),F(" acyclic",()=>e.run($)),F(" nestingGraph.run",()=>i.run($)),F(" rank",()=>n(f.asNonCompoundGraph($))),F(" injectEdgeLabelProxies",()=>I($)),F(" removeEmptyRanks",()=>a($)),F(" nestingGraph.cleanup",()=>i.cleanup($)),F(" normalizeRanks",()=>r($)),F(" assignRankMinMax",()=>A($)),F(" removeEdgeLabelProxies",()=>P($)),F(" normalize.run",()=>t.run($)),F(" parentDummyChains",()=>s($)),F(" addBorderSegments",()=>l($)),F(" order",()=>u($,Z)),F(" insertSelfEdges",()=>V($)),F(" adjustCoordinateSystem",()=>c.adjust($)),F(" position",()=>d($)),F(" positionSelfEdges",()=>M($)),F(" removeBorderNodes",()=>z($)),F(" normalize.undo",()=>t.undo($)),F(" fixupEdgeLabelCoords",()=>q($)),F(" undoCoordinateSystem",()=>c.undo($)),F(" translateGraph",()=>L($)),F(" assignNodeIntersects",()=>D($)),F(" reversePoints",()=>H($)),F(" acyclic.undo",()=>e.undo($))}function v($,F){$.nodes().forEach(Z=>{let X=$.node(Z),te=F.node(Z);X&&(X.x=te.x,X.y=te.y,X.rank=te.rank,F.children(Z).length&&(X.width=te.width,X.height=te.height))}),$.edges().forEach(Z=>{let X=$.edge(Z),te=F.edge(Z);X.points=te.points,Object.hasOwn(te,"x")&&(X.x=te.x,X.y=te.y)}),$.graph().width=F.graph().width,$.graph().height=F.graph().height}let y=["nodesep","edgesep","ranksep","marginx","marginy"],b={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},S=["acyclicer","ranker","rankdir","align"],w=["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"},E=["labelpos"];function j($){let F=new p({multigraph:!0,compound:!0}),Z=U($.graph());return F.setGraph(Object.assign({},b,Q(Z,y),f.pick(Z,S))),$.nodes().forEach(X=>{let te=U($.node(X));const ee=Q(te,w);Object.keys(k).forEach(J=>{ee[J]===void 0&&(ee[J]=k[J])}),F.setNode(X,ee),F.setParent(X,$.parent(X))}),$.edges().forEach(X=>{let te=U($.edge(X));F.setEdge(X,Object.assign({},C,Q(te,_),f.pick(te,E)))}),F}function T($){let F=$.graph();F.ranksep/=2,$.edges().forEach(Z=>{let X=$.edge(Z);X.minlen*=2,X.labelpos.toLowerCase()!=="c"&&(F.rankdir==="TB"||F.rankdir==="BT"?X.width+=X.labeloffset:X.height+=X.labeloffset)})}function I($){$.edges().forEach(F=>{let Z=$.edge(F);if(Z.width&&Z.height){let X=$.node(F.v),ee={rank:($.node(F.w).rank-X.rank)/2+X.rank,e:F};f.addDummyNode($,"edge-proxy",ee,"_ep")}})}function A($){let F=0;$.nodes().forEach(Z=>{let X=$.node(Z);X.borderTop&&(X.minRank=$.node(X.borderTop).rank,X.maxRank=$.node(X.borderBottom).rank,F=Math.max(F,X.maxRank))}),$.graph().maxRank=F}function P($){$.nodes().forEach(F=>{let Z=$.node(F);Z.dummy==="edge-proxy"&&($.edge(Z.e).labelRank=Z.rank,$.removeNode(F))})}function L($){let F=Number.POSITIVE_INFINITY,Z=0,X=Number.POSITIVE_INFINITY,te=0,ee=$.graph(),J=ee.marginx||0,ae=ee.marginy||0;function pe(Y){let ne=Y.x,ue=Y.y,fe=Y.width,oe=Y.height;F=Math.min(F,ne-fe/2),Z=Math.max(Z,ne+fe/2),X=Math.min(X,ue-oe/2),te=Math.max(te,ue+oe/2)}$.nodes().forEach(Y=>pe($.node(Y))),$.edges().forEach(Y=>{let ne=$.edge(Y);Object.hasOwn(ne,"x")&&pe(ne)}),F-=J,X-=ae,$.nodes().forEach(Y=>{let ne=$.node(Y);ne.x-=F,ne.y-=X}),$.edges().forEach(Y=>{let ne=$.edge(Y);ne.points.forEach(ue=>{ue.x-=F,ue.y-=X}),Object.hasOwn(ne,"x")&&(ne.x-=F),Object.hasOwn(ne,"y")&&(ne.y-=X)}),ee.width=Z-F+J,ee.height=te-X+ae}function D($){$.edges().forEach(F=>{let Z=$.edge(F),X=$.node(F.v),te=$.node(F.w),ee,J;Z.points?(ee=Z.points[0],J=Z.points[Z.points.length-1]):(Z.points=[],ee=te,J=X),Z.points.unshift(f.intersectRect(X,ee)),Z.points.push(f.intersectRect(te,J))})}function q($){$.edges().forEach(F=>{let Z=$.edge(F);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(F=>{let Z=$.edge(F);Z.reversed&&Z.points.reverse()})}function z($){$.nodes().forEach(F=>{if($.children(F).length){let Z=$.node(F),X=$.node(Z.borderTop),te=$.node(Z.borderBottom),ee=$.node(Z.borderLeft[Z.borderLeft.length-1]),J=$.node(Z.borderRight[Z.borderRight.length-1]);Z.width=Math.abs(J.x-ee.x),Z.height=Math.abs(te.y-X.y),Z.x=ee.x+Z.width/2,Z.y=X.y+Z.height/2}}),$.nodes().forEach(F=>{$.node(F).dummy==="border"&&$.removeNode(F)})}function B($){$.edges().forEach(F=>{if(F.v===F.w){var Z=$.node(F.v);Z.selfEdges||(Z.selfEdges=[]),Z.selfEdges.push({e:F,label:$.edge(F)}),$.removeEdge(F)}})}function V($){var F=f.buildLayerMatrix($);F.forEach(Z=>{var X=0;Z.forEach((te,ee)=>{var J=$.node(te);J.order=ee+X,(J.selfEdges||[]).forEach(ae=>{f.addDummyNode($,"selfedge",{width:ae.label.width,height:ae.label.height,rank:J.rank,order:ee+ ++X,e:ae.e,label:ae.label},"_se")}),delete J.selfEdges})})}function M($){$.nodes().forEach(F=>{var Z=$.node(F);if(Z.dummy==="selfedge"){var X=$.node(Z.e.v),te=X.x+X.width/2,ee=X.y,J=Z.x-te,ae=X.height/2;$.setEdge(Z.e,Z.label),$.removeNode(F),Z.label.points=[{x:te+2*J/3,y:ee-ae},{x:te+5*J/6,y:ee-ae},{x:te+J,y:ee},{x:te+5*J/6,y:ee+ae},{x:te+2*J/3,y:ee+ae}],Z.label.x=Z.x,Z.label.y=Z.y}})}function Q($,F){return f.mapValues(f.pick($,F),Number)}function U($){var F={};return $&&Object.entries($).forEach(([Z,X])=>{typeof Z=="string"&&(Z=Z.toLowerCase()),F[Z]=X}),F}return see}var aee,rze;function kUn(){if(rze)return aee;rze=1;let e=Il(),t=Ag().Graph;aee={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 aee}var iee,sze;function OUn(){return sze||(sze=1,iee="1.1.8"),iee}var oee,aze;function _Un(){return aze||(aze=1,oee={graphlib:Ag(),layout:SUn(),debug:kUn(),util:{time:Il().time,notime:Il().notime},version:OUn()}),oee}var CUn=_Un();const ize=Tc(CUn);function Dl(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=Dl(e[n]))!==""&&(t+=(t&&" ")+r);else for(let n in e)e[n]&&(t+=(t&&" ")+n);return t}var EUn={value:()=>{}};function FV(){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 sF(n)}function sF(e){this._=e}function jUn(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}})}sF.prototype=FV.prototype={constructor:sF,on:function(e,t){var n=this._,r=jUn(e+"",n),s,a=-1,i=r.length;if(arguments.length<2){for(;++a<i;)if((s=(e=r[a]).type)&&(s=TUn(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]=oze(n[s],e.name,t);else if(t==null)for(s in n)n[s]=oze(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 sF(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 TUn(e,t){for(var n=0,r=e.length,s;n<r;++n)if((s=e[n]).name===t)return s.value}function oze(e,t,n){for(var r=0,s=e.length;r<s;++r)if(e[r].name===t){e[r]=EUn,e=e.slice(0,r).concat(e.slice(r+1));break}return n!=null&&e.push({name:t,value:n}),e}var qhe="http://www.w3.org/1999/xhtml";const lze={svg:"http://www.w3.org/2000/svg",xhtml:qhe,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function BV(e){var t=e+="",n=t.indexOf(":");return n>=0&&(t=e.slice(0,n))!=="xmlns"&&(e=e.slice(n+1)),lze.hasOwnProperty(t)?{space:lze[t],local:e}:e}function NUn(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===qhe&&t.documentElement.namespaceURI===qhe?t.createElement(e):t.createElementNS(n,e)}}function IUn(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function F0t(e){var t=BV(e);return(t.local?IUn:NUn)(t)}function AUn(){}function R1e(e){return e==null?AUn:function(){return this.querySelector(e)}}function RUn(e){typeof e!="function"&&(e=R1e(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 qp(r,this._parents)}function PUn(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function $Un(){return[]}function B0t(e){return e==null?$Un:function(){return this.querySelectorAll(e)}}function MUn(e){return function(){return PUn(e.apply(this,arguments))}}function DUn(e){typeof e=="function"?e=MUn(e):e=B0t(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 qp(r,s)}function U0t(e){return function(){return this.matches(e)}}function q0t(e){return function(t){return t.matches(e)}}var LUn=Array.prototype.find;function zUn(e){return function(){return LUn.call(this.children,e)}}function FUn(){return this.firstElementChild}function BUn(e){return this.select(e==null?FUn:zUn(typeof e=="function"?e:q0t(e)))}var UUn=Array.prototype.filter;function qUn(){return Array.from(this.children)}function VUn(e){return function(){return UUn.call(this.children,e)}}function HUn(e){return this.selectAll(e==null?qUn:VUn(typeof e=="function"?e:q0t(e)))}function WUn(e){typeof e!="function"&&(e=U0t(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 qp(r,this._parents)}function V0t(e){return new Array(e.length)}function ZUn(){return new qp(this._enter||this._groups.map(V0t),this._parents)}function D7(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}D7.prototype={constructor:D7,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 GUn(e){return function(){return e}}function QUn(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 D7(e,a[i]);for(;i<c;++i)(l=t[i])&&(s[i]=l)}function YUn(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 D7(e,a[l]);for(l=0;l<d;++l)(c=t[l])&&u.get(p[l])===c&&(s[l]=c)}function XUn(e){return e.__data__}function KUn(e,t){if(!arguments.length)return Array.from(this,XUn);var n=t?YUn:QUn,r=this._parents,s=this._groups;typeof e!="function"&&(e=GUn(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=JUn(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 S=0,w=0,k,_;S<m;++S)if(k=v[S]){for(S>=w&&(w=S+1);!(_=y[w])&&++w<m;);k._next=_||null}}return i=new qp(i,r),i._enter=l,i._exit=c,i}function JUn(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function eqn(){return new qp(this._exit||this._groups.map(V0t),this._parents)}function tqn(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 nqn(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 qp(l,this._parents)}function rqn(){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 sqn(e){e||(e=aqn);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 qp(s,this._parents).order()}function aqn(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function iqn(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function oqn(){return Array.from(this)}function lqn(){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 cqn(){let e=0;for(const t of this)++e;return e}function uqn(){return!this.node()}function dqn(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 fqn(e){return function(){this.removeAttribute(e)}}function pqn(e){return function(){this.removeAttributeNS(e.space,e.local)}}function hqn(e,t){return function(){this.setAttribute(e,t)}}function mqn(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function gqn(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}}function vqn(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 yqn(e,t){var n=BV(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?pqn:fqn:typeof t=="function"?n.local?vqn:gqn:n.local?mqn:hqn)(n,t))}function H0t(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function bqn(e){return function(){this.style.removeProperty(e)}}function xqn(e,t,n){return function(){this.style.setProperty(e,t,n)}}function wqn(e,t,n){return function(){var r=t.apply(this,arguments);r==null?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function Sqn(e,t,n){return arguments.length>1?this.each((t==null?bqn:typeof t=="function"?wqn:xqn)(e,t,n??"")):ST(this.node(),e)}function ST(e,t){return e.style.getPropertyValue(t)||H0t(e).getComputedStyle(e,null).getPropertyValue(t)}function kqn(e){return function(){delete this[e]}}function Oqn(e,t){return function(){this[e]=t}}function _qn(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function Cqn(e,t){return arguments.length>1?this.each((t==null?kqn:typeof t=="function"?_qn:Oqn)(e,t)):this.node()[e]}function W0t(e){return e.trim().split(/^|\s+/)}function P1e(e){return e.classList||new Z0t(e)}function Z0t(e){this._node=e,this._names=W0t(e.getAttribute("class")||"")}Z0t.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 G0t(e,t){for(var n=P1e(e),r=-1,s=t.length;++r<s;)n.add(t[r])}function Q0t(e,t){for(var n=P1e(e),r=-1,s=t.length;++r<s;)n.remove(t[r])}function Eqn(e){return function(){G0t(this,e)}}function jqn(e){return function(){Q0t(this,e)}}function Tqn(e,t){return function(){(t.apply(this,arguments)?G0t:Q0t)(this,e)}}function Nqn(e,t){var n=W0t(e+"");if(arguments.length<2){for(var r=P1e(this.node()),s=-1,a=n.length;++s<a;)if(!r.contains(n[s]))return!1;return!0}return this.each((typeof t=="function"?Tqn:t?Eqn:jqn)(n,t))}function Iqn(){this.textContent=""}function Aqn(e){return function(){this.textContent=e}}function Rqn(e){return function(){var t=e.apply(this,arguments);this.textContent=t??""}}function Pqn(e){return arguments.length?this.each(e==null?Iqn:(typeof e=="function"?Rqn:Aqn)(e)):this.node().textContent}function $qn(){this.innerHTML=""}function Mqn(e){return function(){this.innerHTML=e}}function Dqn(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??""}}function Lqn(e){return arguments.length?this.each(e==null?$qn:(typeof e=="function"?Dqn:Mqn)(e)):this.node().innerHTML}function zqn(){this.nextSibling&&this.parentNode.appendChild(this)}function Fqn(){return this.each(zqn)}function Bqn(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function Uqn(){return this.each(Bqn)}function qqn(e){var t=typeof e=="function"?e:F0t(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function Vqn(){return null}function Hqn(e,t){var n=typeof e=="function"?e:F0t(e),r=t==null?Vqn:typeof t=="function"?t:R1e(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})}function Wqn(){var e=this.parentNode;e&&e.removeChild(this)}function Zqn(){return this.each(Wqn)}function Gqn(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function Qqn(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function Yqn(e){return this.select(e?Qqn:Gqn)}function Xqn(e){return arguments.length?this.property("__data__",e):this.node().__data__}function Kqn(e){return function(t){e.call(this,t,this.__data__)}}function Jqn(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 eVn(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 tVn(e,t,n){return function(){var r=this.__on,s,a=Kqn(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 nVn(e,t,n){var r=Jqn(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?tVn:eVn,s=0;s<a;++s)this.each(l(r[s],t,n));return this}function Y0t(e,t,n){var r=H0t(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 rVn(e,t){return function(){return Y0t(this,e,t)}}function sVn(e,t){return function(){return Y0t(this,e,t.apply(this,arguments))}}function aVn(e,t){return this.each((typeof t=="function"?sVn:rVn)(e,t))}function*iVn(){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 X0t=[null];function qp(e,t){this._groups=e,this._parents=t}function g3(){return new qp([[document.documentElement]],X0t)}function oVn(){return this}qp.prototype=g3.prototype={constructor:qp,select:RUn,selectAll:DUn,selectChild:BUn,selectChildren:HUn,filter:WUn,data:KUn,enter:ZUn,exit:eqn,join:tqn,merge:nqn,selection:oVn,order:rqn,sort:sqn,call:iqn,nodes:oqn,node:lqn,size:cqn,empty:uqn,each:dqn,attr:yqn,style:Sqn,property:Cqn,classed:Nqn,text:Pqn,html:Lqn,raise:Fqn,lower:Uqn,append:qqn,insert:Hqn,remove:Zqn,clone:Yqn,datum:Xqn,on:nVn,dispatch:aVn,[Symbol.iterator]:iVn};function yp(e){return typeof e=="string"?new qp([[document.querySelector(e)]],[document.documentElement]):new qp([[e]],X0t)}function lVn(e){let t;for(;t=e.sourceEvent;)e=t;return e}function tg(e,t){if(e=lVn(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 cVn={passive:!1},rM={capture:!0,passive:!1};function lee(e){e.stopImmediatePropagation()}function jj(e){e.preventDefault(),e.stopImmediatePropagation()}function K0t(e){var t=e.document.documentElement,n=yp(e).on("dragstart.drag",jj,rM);"onselectstart"in t?n.on("selectstart.drag",jj,rM):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect="none")}function J0t(e,t){var n=e.document.documentElement,r=yp(e).on("dragstart.drag",null);t&&(r.on("click.drag",jj,rM),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 E6=e=>()=>e;function Vhe(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}})}Vhe.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function uVn(e){return!e.ctrlKey&&!e.button}function dVn(){return this.parentNode}function fVn(e,t){return t??{x:e.x,y:e.y}}function pVn(){return navigator.maxTouchPoints||"ontouchstart"in this}function ewt(){var e=uVn,t=dVn,n=fVn,r=pVn,s={},a=FV("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,cVn).on("touchend.drag touchcancel.drag",S).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=w(this,t.call(this,k,_),k,_,"mouse");C&&(yp(k.view).on("mousemove.drag",m,rM).on("mouseup.drag",v,rM),K0t(k.view),lee(k),u=!1,l=k.clientX,c=k.clientY,C("start",k))}}function m(k){if(jj(k),!u){var _=k.clientX-l,C=k.clientY-c;u=_*_+C*C>f}s.mouse("drag",k)}function v(k){yp(k.view).on("mousemove.drag mouseup.drag",null),J0t(k.view,u),jj(k),s.mouse("end",k)}function y(k,_){if(e.call(this,k,_)){var C=k.changedTouches,E=t.call(this,k,_),j=C.length,T,I;for(T=0;T<j;++T)(I=w(this,E,k,_,C[T].identifier,C[T]))&&(lee(k),I("start",k,C[T]))}}function b(k){var _=k.changedTouches,C=_.length,E,j;for(E=0;E<C;++E)(j=s[_[E].identifier])&&(jj(k),j("drag",k,_[E]))}function S(k){var _=k.changedTouches,C=_.length,E,j;for(d&&clearTimeout(d),d=setTimeout(function(){d=null},500),E=0;E<C;++E)(j=s[_[E].identifier])&&(lee(k),j("end",k,_[E]))}function w(k,_,C,E,j,T){var I=a.copy(),A=tg(T||C,_),P,L,D;if((D=n.call(k,new Vhe("beforestart",{sourceEvent:C,target:p,identifier:j,active:i,x:A[0],y:A[1],dx:0,dy:0,dispatch:I}),E))!=null)return P=D.x-A[0]||0,L=D.y-A[1]||0,function q(H,z,B){var V=A,M;switch(H){case"start":s[j]=q,M=i++;break;case"end":delete s[j],--i;case"drag":A=tg(B||z,_),M=i;break}I.call(H,k,new Vhe(H,{sourceEvent:z,subject:D,target:p,identifier:j,active:M,x:A[0]+P,y:A[1]+L,dx:A[0]-V[0],dy:A[1]-V[1],dispatch:I}),E)}}return p.filter=function(k){return arguments.length?(e=typeof k=="function"?k:E6(!!k),p):e},p.container=function(k){return arguments.length?(t=typeof k=="function"?k:E6(k),p):t},p.subject=function(k){return arguments.length?(n=typeof k=="function"?k:E6(k),p):n},p.touchable=function(k){return arguments.length?(r=typeof k=="function"?k:E6(!!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 $1e(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function twt(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function v3(){}var sM=.7,L7=1/sM,Tj="\\s*([+-]?\\d+)\\s*",aM="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",ey="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",hVn=/^#([0-9a-f]{3,8})$/,mVn=new RegExp(`^rgb\\(${Tj},${Tj},${Tj}\\)$`),gVn=new RegExp(`^rgb\\(${ey},${ey},${ey}\\)$`),vVn=new RegExp(`^rgba\\(${Tj},${Tj},${Tj},${aM}\\)$`),yVn=new RegExp(`^rgba\\(${ey},${ey},${ey},${aM}\\)$`),bVn=new RegExp(`^hsl\\(${aM},${ey},${ey}\\)$`),xVn=new RegExp(`^hsla\\(${aM},${ey},${ey},${aM}\\)$`),cze={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};$1e(v3,RO,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:uze,formatHex:uze,formatHex8:wVn,formatHsl:SVn,formatRgb:dze,toString:dze});function uze(){return this.rgb().formatHex()}function wVn(){return this.rgb().formatHex8()}function SVn(){return nwt(this).formatHsl()}function dze(){return this.rgb().formatRgb()}function RO(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=hVn.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?fze(t):n===3?new of(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?j6(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?j6(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=mVn.exec(e))?new of(t[1],t[2],t[3],1):(t=gVn.exec(e))?new of(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=vVn.exec(e))?j6(t[1],t[2],t[3],t[4]):(t=yVn.exec(e))?j6(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=bVn.exec(e))?mze(t[1],t[2]/100,t[3]/100,1):(t=xVn.exec(e))?mze(t[1],t[2]/100,t[3]/100,t[4]):cze.hasOwnProperty(e)?fze(cze[e]):e==="transparent"?new of(NaN,NaN,NaN,0):null}function fze(e){return new of(e>>16&255,e>>8&255,e&255,1)}function j6(e,t,n,r){return r<=0&&(e=t=n=NaN),new of(e,t,n,r)}function kVn(e){return e instanceof v3||(e=RO(e)),e?(e=e.rgb(),new of(e.r,e.g,e.b,e.opacity)):new of}function Hhe(e,t,n,r){return arguments.length===1?kVn(e):new of(e,t,n,r??1)}function of(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}$1e(of,Hhe,twt(v3,{brighter(e){return e=e==null?L7:Math.pow(L7,e),new of(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?sM:Math.pow(sM,e),new of(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new of(Hk(this.r),Hk(this.g),Hk(this.b),z7(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:pze,formatHex:pze,formatHex8:OVn,formatRgb:hze,toString:hze}));function pze(){return`#${Tk(this.r)}${Tk(this.g)}${Tk(this.b)}`}function OVn(){return`#${Tk(this.r)}${Tk(this.g)}${Tk(this.b)}${Tk((isNaN(this.opacity)?1:this.opacity)*255)}`}function hze(){const e=z7(this.opacity);return`${e===1?"rgb(":"rgba("}${Hk(this.r)}, ${Hk(this.g)}, ${Hk(this.b)}${e===1?")":`, ${e})`}`}function z7(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Hk(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Tk(e){return e=Hk(e),(e<16?"0":"")+e.toString(16)}function mze(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new og(e,t,n,r)}function nwt(e){if(e instanceof og)return new og(e.h,e.s,e.l,e.opacity);if(e instanceof v3||(e=RO(e)),!e)return new og;if(e instanceof og)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 og(i,l,c,e.opacity)}function _Vn(e,t,n,r){return arguments.length===1?nwt(e):new og(e,t,n,r??1)}function og(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}$1e(og,_Vn,twt(v3,{brighter(e){return e=e==null?L7:Math.pow(L7,e),new og(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?sM:Math.pow(sM,e),new og(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 of(cee(e>=240?e-240:e+120,s,r),cee(e,s,r),cee(e<120?e+240:e-120,s,r),this.opacity)},clamp(){return new og(gze(this.h),T6(this.s),T6(this.l),z7(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=z7(this.opacity);return`${e===1?"hsl(":"hsla("}${gze(this.h)}, ${T6(this.s)*100}%, ${T6(this.l)*100}%${e===1?")":`, ${e})`}`}}));function gze(e){return e=(e||0)%360,e<0?e+360:e}function T6(e){return Math.max(0,Math.min(1,e||0))}function cee(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 M1e=e=>()=>e;function CVn(e,t){return function(n){return e+n*t}}function EVn(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 jVn(e){return(e=+e)==1?rwt:function(t,n){return n-t?EVn(t,n,e):M1e(isNaN(t)?n:t)}}function rwt(e,t){var n=t-e;return n?CVn(e,n):M1e(isNaN(e)?t:e)}const F7=(function e(t){var n=jVn(t);function r(s,a){var i=n((s=Hhe(s)).r,(a=Hhe(a)).r),l=n(s.g,a.g),c=n(s.b,a.b),u=rwt(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 TVn(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 NVn(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function IVn(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]=sx(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 AVn(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function rg(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function RVn(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]=sx(e[s],t[s]):r[s]=t[s];return function(a){for(s in n)r[s]=n[s](a);return r}}var Whe=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,uee=new RegExp(Whe.source,"g");function PVn(e){return function(){return e}}function $Vn(e){return function(t){return e(t)+""}}function swt(e,t){var n=Whe.lastIndex=uee.lastIndex=0,r,s,a,i=-1,l=[],c=[];for(e=e+"",t=t+"";(r=Whe.exec(e))&&(s=uee.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:rg(r,s)})),n=uee.lastIndex;return n<t.length&&(a=t.slice(n),l[i]?l[i]+=a:l[++i]=a),l.length<2?c[0]?$Vn(c[0].x):PVn(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 sx(e,t){var n=typeof t,r;return t==null||n==="boolean"?M1e(t):(n==="number"?rg:n==="string"?(r=RO(t))?(t=r,F7):swt:t instanceof RO?F7:t instanceof Date?AVn:NVn(t)?TVn:Array.isArray(t)?IVn:typeof t.valueOf!="function"&&typeof t.toString!="function"||isNaN(t)?RVn:rg)(e,t)}function D1e(e,t){return e=+e,t=+t,function(n){return Math.round(e*(1-n)+t*n)}}var vze=180/Math.PI,Zhe={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function awt(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)*vze,skewX:Math.atan(c)*vze,scaleX:i,scaleY:l}}var N6;function MVn(e){const t=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?Zhe:awt(t.a,t.b,t.c,t.d,t.e,t.f)}function DVn(e){return e==null||(N6||(N6=document.createElementNS("http://www.w3.org/2000/svg","g")),N6.setAttribute("transform",e),!(e=N6.transform.baseVal.consolidate()))?Zhe:(e=e.matrix,awt(e.a,e.b,e.c,e.d,e.e,e.f))}function iwt(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:rg(u,f)},{i:v-2,x:rg(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:rg(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:rg(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:rg(u,f)},{i:v-2,x:rg(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 LVn=iwt(MVn,"px, ","px)","deg)"),zVn=iwt(DVn,", ",")",")"),FVn=1e-12;function yze(e){return((e=Math.exp(e))+1/e)/2}function BVn(e){return((e=Math.exp(e))-1/e)/2}function UVn(e){return((e=Math.exp(2*e))-1)/(e+1)}const aF=(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<FVn)b=Math.log(p/u)/t,y=function(E){return[l+E*h,c+E*m,u*Math.exp(t*E*b)]};else{var S=Math.sqrt(v),w=(p*p-u*u+r*v)/(2*u*n*S),k=(p*p-u*u-r*v)/(2*p*n*S),_=Math.log(Math.sqrt(w*w+1)-w),C=Math.log(Math.sqrt(k*k+1)-k);b=(C-_)/t,y=function(E){var j=E*b,T=yze(_),I=u/(n*S)*(T*UVn(t*j+_)-BVn(_));return[l+I*h,c+I*m,u*T/yze(t*j+_)]}}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 qVn(e,t){t===void 0&&(t=e,e=sx);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 kT=0,d2=0,QA=0,owt=1e3,B7,f2,U7=0,PO=0,UV=0,iM=typeof performance=="object"&&performance.now?performance:Date,lwt=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function L1e(){return PO||(lwt(VVn),PO=iM.now()+UV)}function VVn(){PO=0}function q7(){this._call=this._time=this._next=null}q7.prototype=cwt.prototype={constructor:q7,restart:function(e,t,n){if(typeof e!="function")throw new TypeError("callback is not a function");n=(n==null?L1e():+n)+(t==null?0:+t),!this._next&&f2!==this&&(f2?f2._next=this:B7=this,f2=this),this._call=e,this._time=n,Ghe()},stop:function(){this._call&&(this._call=null,this._time=1/0,Ghe())}};function cwt(e,t,n){var r=new q7;return r.restart(e,t,n),r}function HVn(){L1e(),++kT;for(var e=B7,t;e;)(t=PO-e._time)>=0&&e._call.call(void 0,t),e=e._next;--kT}function bze(){PO=(U7=iM.now())+UV,kT=d2=0;try{HVn()}finally{kT=0,ZVn(),PO=0}}function WVn(){var e=iM.now(),t=e-U7;t>owt&&(UV-=t,U7=e)}function ZVn(){for(var e,t=B7,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:B7=n);f2=e,Ghe(r)}function Ghe(e){if(!kT){d2&&(d2=clearTimeout(d2));var t=e-PO;t>24?(e<1/0&&(d2=setTimeout(bze,e-iM.now()-UV)),QA&&(QA=clearInterval(QA))):(QA||(U7=iM.now(),QA=setInterval(WVn,owt)),kT=1,lwt(bze))}}function xze(e,t,n){var r=new q7;return t=t==null?0:+t,r.restart(s=>{r.stop(),e(s+t)},t,n),r}var GVn=FV("start","end","cancel","interrupt"),QVn=[],uwt=0,wze=1,Qhe=2,iF=3,Sze=4,Yhe=5,oF=6;function qV(e,t,n,r,s,a){var i=e.__transition;if(!i)e.__transition={};else if(n in i)return;YVn(e,n,{name:t,index:r,group:s,on:GVn,tween:QVn,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:uwt})}function z1e(e,t){var n=Bg(e,t);if(n.state>uwt)throw new Error("too late; already scheduled");return n}function Dy(e,t){var n=Bg(e,t);if(n.state>iF)throw new Error("too late; already running");return n}function Bg(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function YVn(e,t,n){var r=e.__transition,s;r[t]=n,n.timer=cwt(a,0,n.time);function a(u){n.state=wze,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!==wze)return c();for(d in r)if(h=r[d],h.name===n.name){if(h.state===iF)return xze(i);h.state===Sze?(h.state=oF,h.timer.stop(),h.on.call("interrupt",e,e.__data__,h.index,h.group),delete r[d]):+d<t&&(h.state=oF,h.timer.stop(),h.on.call("cancel",e,e.__data__,h.index,h.group),delete r[d])}if(xze(function(){n.state===iF&&(n.state=Sze,n.timer.restart(l,n.delay,n.time),l(u))}),n.state=Qhe,n.on.call("start",e,e.__data__,n.index,n.group),n.state===Qhe){for(n.state=iF,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=Yhe,1),f=-1,p=s.length;++f<p;)s[f].call(e,d);n.state===Yhe&&(n.on.call("end",e,e.__data__,n.index,n.group),c())}function c(){n.state=oF,n.timer.stop(),delete r[t];for(var u in r)return;delete e.__transition}}function lF(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>Qhe&&r.state<Yhe,r.state=oF,r.timer.stop(),r.on.call(s?"interrupt":"cancel",e,e.__data__,r.index,r.group),delete n[i]}a&&delete e.__transition}}function XVn(e){return this.each(function(){lF(this,e)})}function KVn(e,t){var n,r;return function(){var s=Dy(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 JVn(e,t,n){var r,s;if(typeof n!="function")throw new Error;return function(){var a=Dy(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 eHn(e,t){var n=this._id;if(e+="",arguments.length<2){for(var r=Bg(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?KVn:JVn)(n,e,t))}function F1e(e,t,n){var r=e._id;return e.each(function(){var s=Dy(this,r);(s.value||(s.value={}))[t]=n.apply(this,arguments)}),function(s){return Bg(s,r).value[t]}}function dwt(e,t){var n;return(typeof t=="number"?rg:t instanceof RO?F7:(n=RO(t))?(t=n,F7):swt)(e,t)}function tHn(e){return function(){this.removeAttribute(e)}}function nHn(e){return function(){this.removeAttributeNS(e.space,e.local)}}function rHn(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 sHn(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 aHn(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 iHn(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 oHn(e,t){var n=BV(e),r=n==="transform"?zVn:dwt;return this.attrTween(e,typeof t=="function"?(n.local?iHn:aHn)(n,r,F1e(this,"attr."+e,t)):t==null?(n.local?nHn:tHn)(n):(n.local?sHn:rHn)(n,r,t))}function lHn(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function cHn(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function uHn(e,t){var n,r;function s(){var a=t.apply(this,arguments);return a!==r&&(n=(r=a)&&cHn(e,a)),n}return s._value=t,s}function dHn(e,t){var n,r;function s(){var a=t.apply(this,arguments);return a!==r&&(n=(r=a)&&lHn(e,a)),n}return s._value=t,s}function fHn(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=BV(e);return this.tween(n,(r.local?uHn:dHn)(r,t))}function pHn(e,t){return function(){z1e(this,e).delay=+t.apply(this,arguments)}}function hHn(e,t){return t=+t,function(){z1e(this,e).delay=t}}function mHn(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?pHn:hHn)(t,e)):Bg(this.node(),t).delay}function gHn(e,t){return function(){Dy(this,e).duration=+t.apply(this,arguments)}}function vHn(e,t){return t=+t,function(){Dy(this,e).duration=t}}function yHn(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?gHn:vHn)(t,e)):Bg(this.node(),t).duration}function bHn(e,t){if(typeof t!="function")throw new Error;return function(){Dy(this,e).ease=t}}function xHn(e){var t=this._id;return arguments.length?this.each(bHn(t,e)):Bg(this.node(),t).ease}function wHn(e,t){return function(){var n=t.apply(this,arguments);if(typeof n!="function")throw new Error;Dy(this,e).ease=n}}function SHn(e){if(typeof e!="function")throw new Error;return this.each(wHn(this._id,e))}function kHn(e){typeof e!="function"&&(e=U0t(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 _x(r,this._parents,this._name,this._id)}function OHn(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 _x(i,this._parents,this._name,this._id)}function _Hn(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 CHn(e,t,n){var r,s,a=_Hn(t)?z1e:Dy;return function(){var i=a(this,e),l=i.on;l!==r&&(s=(r=l).copy()).on(t,n),i.on=s}}function EHn(e,t){var n=this._id;return arguments.length<2?Bg(this.node(),n).on.on(e):this.each(CHn(n,e,t))}function jHn(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function THn(){return this.on("end.remove",jHn(this._id))}function NHn(e){var t=this._name,n=this._id;typeof e!="function"&&(e=R1e(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,qV(u[p],t,n,p,u,Bg(d,n)));return new _x(a,this._parents,t,n)}function IHn(e){var t=this._name,n=this._id;typeof e!="function"&&(e=B0t(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=Bg(d,n),v=0,y=p.length;v<y;++v)(h=p[v])&&qV(h,t,n,v,p,m);a.push(p),i.push(d)}return new _x(a,i,t,n)}var AHn=g3.prototype.constructor;function RHn(){return new AHn(this._groups,this._parents)}function PHn(e,t){var n,r,s;return function(){var a=ST(this,e),i=(this.style.removeProperty(e),ST(this,e));return a===i?null:a===n&&i===r?s:s=t(n=a,r=i)}}function fwt(e){return function(){this.style.removeProperty(e)}}function $Hn(e,t,n){var r,s=n+"",a;return function(){var i=ST(this,e);return i===s?null:i===r?a:a=t(r=i,n)}}function MHn(e,t,n){var r,s,a;return function(){var i=ST(this,e),l=n(this),c=l+"";return l==null&&(c=l=(this.style.removeProperty(e),ST(this,e))),i===c?null:i===r&&c===s?a:(s=c,a=t(r=i,l))}}function DHn(e,t){var n,r,s,a="style."+t,i="end."+a,l;return function(){var c=Dy(this,e),u=c.on,d=c.value[a]==null?l||(l=fwt(t)):void 0;(u!==n||s!==d)&&(r=(n=u).copy()).on(i,s=d),c.on=r}}function LHn(e,t,n){var r=(e+="")=="transform"?LVn:dwt;return t==null?this.styleTween(e,PHn(e,r)).on("end.style."+e,fwt(e)):typeof t=="function"?this.styleTween(e,MHn(e,r,F1e(this,"style."+e,t))).each(DHn(this._id,e)):this.styleTween(e,$Hn(e,r,t),n).on("end.style."+e,null)}function zHn(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}function FHn(e,t,n){var r,s;function a(){var i=t.apply(this,arguments);return i!==s&&(r=(s=i)&&zHn(e,i,n)),r}return a._value=t,a}function BHn(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,FHn(e,t,n??""))}function UHn(e){return function(){this.textContent=e}}function qHn(e){return function(){var t=e(this);this.textContent=t??""}}function VHn(e){return this.tween("text",typeof e=="function"?qHn(F1e(this,"text",e)):UHn(e==null?"":e+""))}function HHn(e){return function(t){this.textContent=e.call(this,t)}}function WHn(e){var t,n;function r(){var s=e.apply(this,arguments);return s!==n&&(t=(n=s)&&HHn(s)),t}return r._value=e,r}function ZHn(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,WHn(e))}function GHn(){for(var e=this._name,t=this._id,n=pwt(),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=Bg(c,t);qV(c,e,n,u,i,{time:d.time+d.delay+d.duration,delay:0,duration:d.duration,ease:d.ease})}return new _x(r,this._parents,e,n)}function QHn(){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=Dy(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 YHn=0;function _x(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}function pwt(){return++YHn}var mb=g3.prototype;_x.prototype={constructor:_x,select:NHn,selectAll:IHn,selectChild:mb.selectChild,selectChildren:mb.selectChildren,filter:kHn,merge:OHn,selection:RHn,transition:GHn,call:mb.call,nodes:mb.nodes,node:mb.node,size:mb.size,empty:mb.empty,each:mb.each,on:EHn,attr:oHn,attrTween:fHn,style:LHn,styleTween:BHn,text:VHn,textTween:ZHn,remove:THn,tween:eHn,delay:mHn,duration:yHn,ease:xHn,easeVarying:SHn,end:QHn,[Symbol.iterator]:mb[Symbol.iterator]};function XHn(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var KHn={time:null,delay:0,duration:250,ease:XHn};function JHn(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 eWn(e){var t,n;e instanceof _x?(t=e._id,e=e._name):(t=pwt(),(n=KHn).time=L1e(),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])&&qV(c,e,t,u,i,n||JHn(c,t));return new _x(r,this._parents,e,t)}g3.prototype.interrupt=XVn;g3.prototype.transition=eWn;const I6=e=>()=>e;function tWn(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 Wb(e,t,n){this.k=e,this.x=t,this.y=n}Wb.prototype={constructor:Wb,scale:function(e){return e===1?this:new Wb(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new Wb(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 VV=new Wb(1,0,0);hwt.prototype=Wb.prototype;function hwt(e){for(;!e.__zoom;)if(!(e=e.parentNode))return VV;return e.__zoom}function dee(e){e.stopImmediatePropagation()}function YA(e){e.preventDefault(),e.stopImmediatePropagation()}function nWn(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function rWn(){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 kze(){return this.__zoom||VV}function sWn(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function aWn(){return navigator.maxTouchPoints||"ontouchstart"in this}function iWn(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 mwt(){var e=nWn,t=rWn,n=iWn,r=sWn,s=aWn,a=[0,1/0],i=[[-1/0,-1/0],[1/0,1/0]],l=250,c=aF,u=FV("start","zoom","end"),d,f,p,h=500,m=150,v=0,y=10;function b(D){D.property("__zoom",kze).on("wheel.zoom",j,{passive:!1}).on("mousedown.zoom",T).on("dblclick.zoom",I).filter(s).on("touchstart.zoom",A).on("touchmove.zoom",P).on("touchend.zoom touchcancel.zoom",L).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}b.transform=function(D,q,H,z){var B=D.selection?D.selection():D;B.property("__zoom",kze),D!==B?_(D,q,H,z):B.interrupt().each(function(){C(this,arguments).event(z).start().zoom(null,typeof q=="function"?q.apply(this,arguments):q).end()})},b.scaleBy=function(D,q,H,z){b.scaleTo(D,function(){var B=this.__zoom.k,V=typeof q=="function"?q.apply(this,arguments):q;return B*V},H,z)},b.scaleTo=function(D,q,H,z){b.transform(D,function(){var B=t.apply(this,arguments),V=this.__zoom,M=H==null?k(B):typeof H=="function"?H.apply(this,arguments):H,Q=V.invert(M),U=typeof q=="function"?q.apply(this,arguments):q;return n(w(S(V,U),M,Q),B,i)},H,z)},b.translateBy=function(D,q,H,z){b.transform(D,function(){return n(this.__zoom.translate(typeof q=="function"?q.apply(this,arguments):q,typeof H=="function"?H.apply(this,arguments):H),t.apply(this,arguments),i)},null,z)},b.translateTo=function(D,q,H,z,B){b.transform(D,function(){var V=t.apply(this,arguments),M=this.__zoom,Q=z==null?k(V):typeof z=="function"?z.apply(this,arguments):z;return n(VV.translate(Q[0],Q[1]).scale(M.k).translate(typeof q=="function"?-q.apply(this,arguments):-q,typeof H=="function"?-H.apply(this,arguments):-H),V,i)},z,B)};function S(D,q){return q=Math.max(a[0],Math.min(a[1],q)),q===D.k?D:new Wb(q,D.x,D.y)}function w(D,q,H){var z=q[0]-H[0]*D.k,B=q[1]-H[1]*D.k;return z===D.x&&B===D.y?D:new Wb(D.k,z,B)}function k(D){return[(+D[0][0]+ +D[1][0])/2,(+D[0][1]+ +D[1][1])/2]}function _(D,q,H,z){D.on("start.zoom",function(){C(this,arguments).event(z).start()}).on("interrupt.zoom end.zoom",function(){C(this,arguments).event(z).end()}).tween("zoom",function(){var B=this,V=arguments,M=C(B,V).event(z),Q=t.apply(B,V),U=H==null?k(Q):typeof H=="function"?H.apply(B,V):H,$=Math.max(Q[1][0]-Q[0][0],Q[1][1]-Q[0][1]),F=B.__zoom,Z=typeof q=="function"?q.apply(B,V):q,X=c(F.invert(U).concat($/F.k),Z.invert(U).concat($/Z.k));return function(te){if(te===1)te=Z;else{var ee=X(te),J=$/ee[2];te=new Wb(J,U[0]-ee[0]*J,U[1]-ee[1]*J)}M.zoom(null,te)}})}function C(D,q,H){return!H&&D.__zooming||new E(D,q)}function E(D,q){this.that=D,this.args=q,this.active=0,this.sourceEvent=null,this.extent=t.apply(D,q),this.taps=0}E.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,q){return this.mouse&&D!=="mouse"&&(this.mouse[1]=q.invert(this.mouse[0])),this.touch0&&D!=="touch"&&(this.touch0[1]=q.invert(this.touch0[0])),this.touch1&&D!=="touch"&&(this.touch1[1]=q.invert(this.touch1[0])),this.that.__zoom=q,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(D){var q=yp(this.that).datum();u.call(D,this.that,new tWn(D,{sourceEvent:this.sourceEvent,target:b,transform:this.that.__zoom,dispatch:u}),q)}};function j(D,...q){if(!e.apply(this,arguments))return;var H=C(this,q).event(D),z=this.__zoom,B=Math.max(a[0],Math.min(a[1],z.k*Math.pow(2,r.apply(this,arguments)))),V=tg(D);if(H.wheel)(H.mouse[0][0]!==V[0]||H.mouse[0][1]!==V[1])&&(H.mouse[1]=z.invert(H.mouse[0]=V)),clearTimeout(H.wheel);else{if(z.k===B)return;H.mouse=[V,z.invert(V)],lF(this),H.start()}YA(D),H.wheel=setTimeout(M,m),H.zoom("mouse",n(w(S(z,B),H.mouse[0],H.mouse[1]),H.extent,i));function M(){H.wheel=null,H.end()}}function T(D,...q){if(p||!e.apply(this,arguments))return;var H=D.currentTarget,z=C(this,q,!0).event(D),B=yp(D.view).on("mousemove.zoom",U,!0).on("mouseup.zoom",$,!0),V=tg(D,H),M=D.clientX,Q=D.clientY;K0t(D.view),dee(D),z.mouse=[V,this.__zoom.invert(V)],lF(this),z.start();function U(F){if(YA(F),!z.moved){var Z=F.clientX-M,X=F.clientY-Q;z.moved=Z*Z+X*X>v}z.event(F).zoom("mouse",n(w(z.that.__zoom,z.mouse[0]=tg(F,H),z.mouse[1]),z.extent,i))}function $(F){B.on("mousemove.zoom mouseup.zoom",null),J0t(F.view,z.moved),YA(F),z.event(F).end()}}function I(D,...q){if(e.apply(this,arguments)){var H=this.__zoom,z=tg(D.changedTouches?D.changedTouches[0]:D,this),B=H.invert(z),V=H.k*(D.shiftKey?.5:2),M=n(w(S(H,V),z,B),t.apply(this,q),i);YA(D),l>0?yp(this).transition().duration(l).call(_,M,z,D):yp(this).call(b.transform,M,z,D)}}function A(D,...q){if(e.apply(this,arguments)){var H=D.touches,z=H.length,B=C(this,q,D.changedTouches.length===z).event(D),V,M,Q,U;for(dee(D),M=0;M<z;++M)Q=H[M],U=tg(Q,this),U=[U,this.__zoom.invert(U),Q.identifier],B.touch0?!B.touch1&&B.touch0[2]!==U[2]&&(B.touch1=U,B.taps=0):(B.touch0=U,V=!0,B.taps=1+!!d);d&&(d=clearTimeout(d)),V&&(B.taps<2&&(f=U[0],d=setTimeout(function(){d=null},h)),lF(this),B.start())}}function P(D,...q){if(this.__zooming){var H=C(this,q).event(D),z=D.changedTouches,B=z.length,V,M,Q,U;for(YA(D),V=0;V<B;++V)M=z[V],Q=tg(M,this),H.touch0&&H.touch0[2]===M.identifier?H.touch0[0]=Q:H.touch1&&H.touch1[2]===M.identifier&&(H.touch1[0]=Q);if(M=H.that.__zoom,H.touch1){var $=H.touch0[0],F=H.touch0[1],Z=H.touch1[0],X=H.touch1[1],te=(te=Z[0]-$[0])*te+(te=Z[1]-$[1])*te,ee=(ee=X[0]-F[0])*ee+(ee=X[1]-F[1])*ee;M=S(M,Math.sqrt(te/ee)),Q=[($[0]+Z[0])/2,($[1]+Z[1])/2],U=[(F[0]+X[0])/2,(F[1]+X[1])/2]}else if(H.touch0)Q=H.touch0[0],U=H.touch0[1];else return;H.zoom("touch",n(w(M,Q,U),H.extent,i))}}function L(D,...q){if(this.__zooming){var H=C(this,q).event(D),z=D.changedTouches,B=z.length,V,M;for(dee(D),p&&clearTimeout(p),p=setTimeout(function(){p=null},h),V=0;V<B;++V)M=z[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=tg(M,this),Math.hypot(f[0]-M[0],f[1]-M[1])<y)){var Q=yp(this).on("dblclick.zoom");Q&&Q.apply(this,arguments)}}}return b.wheelDelta=function(D){return arguments.length?(r=typeof D=="function"?D:I6(+D),b):r},b.filter=function(D){return arguments.length?(e=typeof D=="function"?D:I6(!!D),b):e},b.touchable=function(D){return arguments.length?(s=typeof D=="function"?D:I6(!!D),b):s},b.extent=function(D){return arguments.length?(t=typeof D=="function"?D:I6([[+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 my={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."},oM=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],gwt=["Enter"," ","Escape"],vwt={"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 OT;(function(e){e.Strict="strict",e.Loose="loose"})(OT||(OT={}));var Wk;(function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"})(Wk||(Wk={}));var lM;(function(e){e.Partial="partial",e.Full="full"})(lM||(lM={}));const ywt={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null};var ow;(function(e){e.Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier"})(ow||(ow={}));var cM;(function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"})(cM||(cM={}));var rr;(function(e){e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom"})(rr||(rr={}));const Oze={[rr.Left]:rr.Right,[rr.Right]:rr.Left,[rr.Top]:rr.Bottom,[rr.Bottom]:rr.Top};function bwt(e){return e===null?null:e?"valid":"invalid"}const xwt=e=>"id"in e&&"source"in e&&"target"in e,oWn=e=>"id"in e&&"position"in e&&!("source"in e)&&!("target"in e),B1e=e=>"id"in e&&"internals"in e&&!("source"in e)&&!("target"in e),y3=(e,t=[0,0])=>{const{width:n,height:r}=Gx(e),s=e.origin??t,a=n*s[0],i=r*s[1];return{x:e.position.x-a,y:e.position.y-i}},lWn=(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):B1e(s)?s:t.nodeLookup.get(s.id));const l=i?V7(i,t.nodeOrigin):{x:0,y:0,x2:0,y2:0};return HV(r,l)},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return WV(n)},b3=(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=HV(n,V7(s)),r=!0)}),r?WV(n):{x:0,y:0,width:0,height:0}},U1e=(e,t,[n,r,s]=[0,0,1],a=!1,i=!1)=>{const l={...w3(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=uM(l,CT(u)),y=(h??0)*(m??0),b=a&&v>0;(!u.internals.handleBounds||b||v>=y||u.dragging)&&c.push(u)}return c},cWn=(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 uWn(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 dWn({nodes:e,width:t,height:n,panZoom:r,minZoom:s,maxZoom:a},i){if(e.size===0)return Promise.resolve(!0);const l=uWn(e,i),c=b3(l),u=q1e(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 wwt({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",my.error005());else{const h=l.measured.width,m=l.measured.height;h&&m&&(f=[[c,u],[c+h,u+m]])}else l&&ET(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=ET(f)?$O(t,f,i.measured):t;return(i.measured.width===void 0||i.measured.height===void 0)&&a?.("015",my.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 fWn({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=cWn(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 _T=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),$O=(e={x:0,y:0},t,n)=>({x:_T(e.x,t[0][0],t[1][0]-(n?.width??0)),y:_T(e.y,t[0][1],t[1][1]-(n?.height??0))});function Swt(e,t,n){const{width:r,height:s}=Gx(n),{x:a,y:i}=n.internals.positionAbsolute;return $O(e,[[a,i],[a+r,i+s]],t)}const _ze=(e,t,n)=>e<t?_T(Math.abs(e-t),1,t)/t:e>n?-_T(Math.abs(e-n),1,t)/t:0,kwt=(e,t,n=15,r=40)=>{const s=_ze(e.x,r,t.width-r)*n,a=_ze(e.y,r,t.height-r)*n;return[s,a]},HV=(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)}),Xhe=({x:e,y:t,width:n,height:r})=>({x:e,y:t,x2:e+n,y2:t+r}),WV=({x:e,y:t,x2:n,y2:r})=>({x:e,y:t,width:n-e,height:r-t}),CT=(e,t=[0,0])=>{const{x:n,y:r}=B1e(e)?e.internals.positionAbsolute:y3(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}},V7=(e,t=[0,0])=>{const{x:n,y:r}=B1e(e)?e.internals.positionAbsolute:y3(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)}},Owt=(e,t)=>WV(HV(Xhe(e),Xhe(t))),uM=(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)},Cze=e=>pg(e.width)&&pg(e.height)&&pg(e.x)&&pg(e.y),pg=e=>!isNaN(e)&&isFinite(e),pWn=(e,t)=>{},x3=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),w3=({x:e,y:t},[n,r,s],a=!1,i=[1,1])=>{const l={x:(e-n)/s,y:(t-r)/s};return a?x3(l,i):l},H7=({x:e,y:t},[n,r,s])=>({x:e*s+n,y:t*s+r});function VC(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 hWn(e,t,n){if(typeof e=="string"||typeof e=="number"){const r=VC(e,n),s=VC(e,t);return{top:r,right:s,bottom:r,left:s,x:s*2,y:r*2}}if(typeof e=="object"){const r=VC(e.top??e.y??0,n),s=VC(e.bottom??e.y??0,n),a=VC(e.left??e.x??0,t),i=VC(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 mWn(e,t,n,r,s,a){const{x:i,y:l}=H7(e,[t,n,r]),{x:c,y:u}=H7({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 q1e=(e,t,n,r,s,a)=>{const i=hWn(a,t,n),l=(t-i.x)/e.width,c=(n-i.y)/e.height,u=Math.min(l,c),d=_T(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=mWn(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}},dM=()=>typeof navigator<"u"&&navigator?.userAgent?.indexOf("Mac")>=0;function ET(e){return e!=null&&e!=="parent"}function Gx(e){return{width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}}function _wt(e){return(e.measured?.width??e.width??e.initialWidth)!==void 0&&(e.measured?.height??e.height??e.initialHeight)!==void 0}function Cwt(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 Eze(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function gWn(){let e,t;return{promise:new Promise((r,s)=>{e=r,t=s}),resolve:e,reject:t}}function vWn(e){return{...vwt,...e||{}}}function W2(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:r,containerBounds:s}){const{x:a,y:i}=hg(e),l=w3({x:a-(s?.left??0),y:i-(s?.top??0)},r),{x:c,y:u}=n?x3(l,t):l;return{xSnapped:c,ySnapped:u,...l}}const V1e=e=>({width:e.offsetWidth,height:e.offsetHeight}),Ewt=e=>e?.getRootNode?.()||window?.document,yWn=["INPUT","SELECT","TEXTAREA"];function jwt(e){const t=e.composedPath?.()?.[0]||e.target;return t?.nodeType!==1?!1:yWn.includes(t.nodeName)||t.hasAttribute("contenteditable")||!!t.closest(".nokey")}const Twt=e=>"clientX"in e,hg=(e,t)=>{const n=Twt(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)}},jze=(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,...V1e(i)}})};function Nwt({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 A6(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function Tze({pos:e,x1:t,y1:n,x2:r,y2:s,c:a}){switch(e){case rr.Left:return[t-A6(t-r,a),n];case rr.Right:return[t+A6(r-t,a),n];case rr.Top:return[t,n-A6(n-s,a)];case rr.Bottom:return[t,n+A6(s-n,a)]}}function H1e({sourceX:e,sourceY:t,sourcePosition:n=rr.Bottom,targetX:r,targetY:s,targetPosition:a=rr.Top,curvature:i=.25}){const[l,c]=Tze({pos:n,x1:e,y1:t,x2:r,y2:s,c:i}),[u,d]=Tze({pos:a,x1:r,y1:s,x2:e,y2:t,c:i}),[f,p,h,m]=Nwt({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 Iwt({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 bWn({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 xWn({sourceNode:e,targetNode:t,width:n,height:r,transform:s}){const a=HV(V7(e),V7(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 uM(i,WV(a))>0}const wWn=({source:e,sourceHandle:t,target:n,targetHandle:r})=>`xy-edge__${e}${t||""}-${n}${r||""}`,SWn=(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)),kWn=(e,t,n={})=>{if(!e.source||!e.target)return t;const r=n.getEdgeId||wWn;let s;return xwt(e)?s={...e}:s={...e,id:r(e)},SWn(s,t)?t:(s.sourceHandle===null&&delete s.sourceHandle,s.targetHandle===null&&delete s.targetHandle,t.concat(s))};function Awt({sourceX:e,sourceY:t,targetX:n,targetY:r}){const[s,a,i,l]=Iwt({sourceX:e,sourceY:t,targetX:n,targetY:r});return[`M ${e},${t}L ${n},${r}`,s,a,i,l]}const Nze={[rr.Left]:{x:-1,y:0},[rr.Right]:{x:1,y:0},[rr.Top]:{x:0,y:-1},[rr.Bottom]:{x:0,y:1}},OWn=({source:e,sourcePosition:t=rr.Bottom,target:n})=>t===rr.Left||t===rr.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},Ize=(e,t)=>Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2));function _Wn({source:e,sourcePosition:t=rr.Bottom,target:n,targetPosition:r=rr.Top,center:s,offset:a,stepPosition:i}){const l=Nze[t],c=Nze[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=OWn({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},S={x:0,y:0},[,,w,k]=Iwt({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 j=[{x:v,y:u.y},{x:v,y:d.y}],T=[{x:u.x,y},{x:d.x,y}];l[p]===h?m=p==="x"?j:T:m=p==="x"?T:j}else{const j=[{x:u.x,y:d.y}],T=[{x:d.x,y:u.y}];if(p==="x"?m=l.x===h?T:j:m=l.y===h?j:T,t===r){const D=Math.abs(e[p]-n[p]);if(D<=a){const q=Math.min(a-1,a-D);l[p]===h?b[p]=(u[p]>e[p]?-1:1)*q:S[p]=(d[p]>n[p]?-1:1)*q}}if(t!==r){const D=p==="x"?"y":"x",q=l[p]===c[D],H=u[D]>d[D],z=u[D]<d[D];(l[p]===1&&(!q&&H||q&&z)||l[p]!==1&&(!q&&z||q&&H))&&(m=p==="x"?j:T)}const I={x:u.x+b.x,y:u.y+b.y},A={x:d.x+S.x,y:d.y+S.y},P=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));P>=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+S.x,y:d.y+S.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,w,k]}function CWn(e,t,n,r){const s=Math.min(Ize(e,t)/2,Ize(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 Khe({sourceX:e,sourceY:t,sourcePosition:n=rr.Bottom,targetX:r,targetY:s,targetPosition:a=rr.Top,borderRadius:i=5,centerX:l,centerY:c,offset:u=20,stepPosition:d=.5}){const[f,p,h,m,v]=_Wn({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+=CWn(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 Aze(e){return e&&!!(e.internals.handleBounds||e.handles?.length)&&!!(e.measured.width||e.width||e.initialWidth)}function EWn(e){const{sourceNode:t,targetNode:n}=e;if(!Aze(t)||!Aze(n))return null;const r=t.internals.handleBounds||Rze(t.handles),s=n.internals.handleBounds||Rze(n.handles),a=Pze(r?.source??[],e.sourceHandle),i=Pze(e.connectionMode===OT.Strict?s?.target??[]:(s?.target??[]).concat(s?.source??[]),e.targetHandle);if(!a||!i)return e.onError?.("008",my.error008(a?"target":"source",{id:e.id,sourceHandle:e.sourceHandle,targetHandle:e.targetHandle})),null;const l=a?.position||rr.Bottom,c=i?.position||rr.Top,u=MO(t,a,l),d=MO(n,i,c);return{sourceX:u.x,sourceY:u.y,targetX:d.x,targetY:d.y,sourcePosition:l,targetPosition:c}}function Rze(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 MO(e,t,n=rr.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??Gx(e);if(r)return{x:s+i/2,y:a+l/2};switch(t?.position??n){case rr.Top:return{x:s+i/2,y:a};case rr.Right:return{x:s+i,y:a+l/2};case rr.Bottom:return{x:s+i/2,y:a+l};case rr.Left:return{x:s,y:a+l/2}}}function Pze(e,t){return e&&(t?e.find(n=>n.id===t):e[0])||null}function Jhe(e,t){return e?typeof e=="string"?e:`${t?`${t}__`:""}${Object.keys(e).sort().map(r=>`${r}=${e[r]}`).join("&")}`:""}function jWn(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=Jhe(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 Rwt=1e3,TWn=10,W1e={nodeOrigin:[0,0],nodeExtent:oM,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},NWn={...W1e,checkEquality:!0};function Z1e(e,t){const n={...e};for(const r in t)t[r]!==void 0&&(n[r]=t[r]);return n}function IWn(e,t,n){const r=Z1e(W1e,n);for(const s of e.values())if(s.parentId)Q1e(s,e,t,r);else{const a=y3(s,r.nodeOrigin),i=ET(s.extent)?s.extent:r.nodeExtent,l=$O(a,i,Gx(s));s.internals.positionAbsolute=l}}function AWn(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 G1e(e){return e==="manual"}function eme(e,t,n,r={}){const s=Z1e(NWn,r),a={i:0},i=new Map(t),l=s?.elevateNodesOnSelect&&!G1e(s.zIndexMode)?Rwt: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=y3(d,s.nodeOrigin),h=ET(d.extent)?d.extent:s.nodeExtent,m=$O(p,h,Gx(d));f={...s.defaults,...d,measured:{width:d.measured?.width,height:d.measured?.height},internals:{positionAbsolute:m,handleBounds:AWn(d,f),z:Pwt(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&&Q1e(f,t,n,r,a),u||=d.selected??!1}return{nodesInitialized:c,hasSelectedNodes:u}}function RWn(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 Q1e(e,t,n,r,s){const{elevateNodesOnSelect:a,nodeOrigin:i,nodeExtent:l,zIndexMode:c}=Z1e(W1e,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}RWn(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*TWn),s&&d.internals.rootParentIndex!==void 0&&(s.i=d.internals.rootParentIndex);const f=a&&!G1e(c)?Rwt:0,{x:p,y:h,z:m}=PWn(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 Pwt(e,t,n){const r=pg(e.zIndex)?e.zIndex:0;return G1e(n)?r:r+(e.selected?t:0)}function PWn(e,t,n,r,s,a){const{x:i,y:l}=t.internals.positionAbsolute,c=Gx(e),u=y3(e,n),d=ET(e.extent)?$O(u,e.extent,c):u;let f=$O({x:i+d.x,y:l+d.y},r,c);e.extent==="parent"&&(f=Swt(f,c,t));const p=Pwt(e,s,a),h=t.internals.z??0;return{x:f.x,y:f.y,z:h>=p?h+1:p}}function Y1e(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??CT(l),u=Owt(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=Gx(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(S=>{e.some(w=>w.id===S.id)||s.push({id:S.id,type:"position",position:{x:S.position.x+p,y:S.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 $Wn(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=V1e(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 S=h.nodeElement.getBoundingClientRect(),w=ET(m.extent)?m.extent:a;let{positionAbsolute:k}=m.internals;m.parentId&&m.extent==="parent"?k=Swt(k,v,t.get(m.parentId)):w&&(k=$O(k,w,v));const _={...m,measured:v,internals:{...m.internals,positionAbsolute:k,handleBounds:{source:jze("source",h.nodeElement,S,f,m.id),target:jze("target",h.nodeElement,S,f,m.id)}}};t.set(m.id,_),m.parentId&&Q1e(_,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:CT(_,s)}))}}if(p.length>0){const h=Y1e(p,t,n,s);u.push(...h)}return{changes:u,updatedInternals:c}}async function MWn({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 $ze(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 $wt(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}`;$ze("source",c,d,e,s,i),$ze("target",c,u,e,a,l),t.set(r.id,r)}}function Mwt(e,t){if(!e.parentId)return!1;const n=t.get(e.parentId);return n?n.selected?!0:Mwt(n,t):!1}function Mze(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 DWn(e,t,n,r){const s=new Map;for(const[a,i]of e)if((i.selected||i.id===r)&&(!i.parentId||!Mwt(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 fee({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 LWn({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=x3(a,t);return{x:i.x-a.x,y:i.y-a.y}}function zWn({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:S,handleSelector:w,domNode:k,isSelectable:_,nodeId:C,nodeClickDistance:E=0}){p=yp(k);function j({x:P,y:L}){const{nodeLookup:D,nodeExtent:q,snapGrid:H,snapToGrid:z,nodeOrigin:B,onNodeDrag:V,onSelectionDrag:M,onError:Q,updateNodePositions:U}=t();a={x:P,y:L};let $=!1;const F=l.size>1,Z=F&&q?Xhe(b3(l)):null,X=F&&z?LWn({dragItems:l,snapGrid:H,x:P,y:L}):null;for(const[te,ee]of l){if(!D.has(te))continue;let J={x:P-ee.distance.x,y:L-ee.distance.y};z&&(J=X?{x:Math.round(J.x+X.x),y:Math.round(J.y+X.y)}:x3(J,H));let ae=null;if(F&&q&&!ee.extent&&Z){const{positionAbsolute:ne}=ee.internals,ue=ne.x-Z.x+q[0][0],fe=ne.x+ee.measured.width-Z.x2+q[1][0],oe=ne.y-Z.y+q[0][1],me=ne.y+ee.measured.height-Z.y2+q[1][1];ae=[[ue,oe],[fe,me]]}const{position:pe,positionAbsolute:Y}=wwt({nodeId:te,nextPosition:J,nodeLookup:D,nodeExtent:ae||q,nodeOrigin:B,onError:Q});$=$||ee.position.x!==pe.x||ee.position.y!==pe.y,ee.position=pe,ee.internals.positionAbsolute=Y}if(m=m||$,!!$&&(U(l,!0),v&&(r||V||!C&&M))){const[te,ee]=fee({nodeId:C,dragItems:l,nodeLookup:D});r?.(v,l,te,ee),V?.(v,te,ee),C||M?.(v,ee)}}async function T(){if(!d)return;const{transform:P,panBy:L,autoPanSpeed:D,autoPanOnNodeDrag:q}=t();if(!q){c=!1,cancelAnimationFrame(i);return}const[H,z]=kwt(u,d,D);(H!==0||z!==0)&&(a.x=(a.x??0)-H/P[2],a.y=(a.y??0)-z/P[2],await L({x:H,y:z})&&j(a)),i=requestAnimationFrame(T)}function I(P){const{nodeLookup:L,multiSelectionActive:D,nodesDraggable:q,transform:H,snapGrid:z,snapToGrid:B,selectNodesOnDrag:V,onNodeDragStart:M,onSelectionDragStart:Q,unselectNodesAndEdges:U}=t();f=!0,(!V||!_)&&!D&&C&&(L.get(C)?.selected||U()),_&&V&&C&&e?.(C);const $=W2(P.sourceEvent,{transform:H,snapGrid:z,snapToGrid:B,containerBounds:d});if(a=$,l=DWn(L,q,$,C),l.size>0&&(n||M||!C&&Q)){const[F,Z]=fee({nodeId:C,dragItems:l,nodeLookup:L});n?.(P.sourceEvent,l,F,Z),M?.(P.sourceEvent,F,Z),C||Q?.(P.sourceEvent,Z)}}const A=ewt().clickDistance(E).on("start",P=>{const{domNode:L,nodeDragThreshold:D,transform:q,snapGrid:H,snapToGrid:z}=t();d=L?.getBoundingClientRect()||null,h=!1,m=!1,v=P.sourceEvent,D===0&&I(P),a=W2(P.sourceEvent,{transform:q,snapGrid:H,snapToGrid:z,containerBounds:d}),u=hg(P.sourceEvent,d)}).on("drag",P=>{const{autoPanOnNodeDrag:L,transform:D,snapGrid:q,snapToGrid:H,nodeDragThreshold:z,nodeLookup:B}=t(),V=W2(P.sourceEvent,{transform:D,snapGrid:q,snapToGrid:H,containerBounds:d});if(v=P.sourceEvent,(P.sourceEvent.type==="touchmove"&&P.sourceEvent.touches.length>1||C&&!B.has(C))&&(h=!0),!h){if(!c&&L&&f&&(c=!0,T()),!f){const M=hg(P.sourceEvent,d),Q=M.x-u.x,U=M.y-u.y;Math.sqrt(Q*Q+U*U)>z&&I(P)}(a.x!==V.xSnapped||a.y!==V.ySnapped)&&l&&f&&(u=hg(P.sourceEvent,d),j(V))}}).on("end",P=>{if(!(!f||h)&&(c=!1,f=!1,cancelAnimationFrame(i),l.size>0)){const{nodeLookup:L,updateNodePositions:D,onNodeDragStop:q,onSelectionDragStop:H}=t();if(m&&(D(l,!1),m=!1),s||q||!C&&H){const[z,B]=fee({nodeId:C,dragItems:l,nodeLookup:L,dragging:!1});s?.(P.sourceEvent,l,z,B),q?.(P.sourceEvent,z,B),C||H?.(P.sourceEvent,B)}}}).filter(P=>{const L=P.target;return!P.button&&(!S||!Mze(L,`.${S}`,k))&&(!w||Mze(L,w,k))});p.call(A)}function b(){p?.on(".drag",null)}return{update:y,destroy:b}}function FWn(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())uM(s,CT(a))>0&&r.push(a);return r}const BWn=250;function UWn(e,t,n,r){let s=[],a=1/0;const i=FWn(e,n,t+BWn);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}=MO(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 Dwt(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,...MO(i,c,c.position,!0)}:c}function Lwt(e,t){return e||(t?.classList.contains("target")?"target":t?.classList.contains("source")?"source":null)}function qWn(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}const zwt=()=>!0;function VWn(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=zwt,onReconnectEnd:S,updateConnection:w,getTransform:k,getFromHandle:_,autoPanSpeed:C,dragThreshold:E=1,handleDomNode:j}){const T=Ewt(e.target);let I=0,A;const{x:P,y:L}=hg(e),D=Lwt(a,j),q=l?.getBoundingClientRect();let H=!1;if(!q||!D)return;const z=Dwt(s,D,r,c,t);if(!z)return;let B=hg(e,q),V=!1,M=null,Q=!1,U=null;function $(){if(!d||!q)return;const[pe,Y]=kwt(B,q,C);p({x:pe,y:Y}),I=requestAnimationFrame($)}const F={...z,nodeId:s,type:D,position:z.position},Z=c.get(s);let te={inProgress:!0,isValid:null,from:MO(Z,F,rr.Left,!0),fromHandle:F,fromPosition:F.position,fromNode:Z,to:B,toHandle:null,toPosition:Oze[F.position],toNode:null,pointer:B};function ee(){H=!0,w(te),m?.(e,{nodeId:s,handleId:r,handleType:D})}E===0&&ee();function J(pe){if(!H){const{x:me,y:be}=hg(pe),we=me-P,je=be-L;if(!(we*we+je*je>E*E))return;ee()}if(!_()||!F){ae(pe);return}const Y=k();B=hg(pe,q),A=UWn(w3(B,Y,!1,[1,1]),n,c,F),V||($(),V=!0);const ne=Fwt(pe,{handle:A,connectionMode:t,fromNodeId:s,fromHandleId:r,fromType:i?"target":"source",isValidConnection:b,doc:T,lib:u,flowId:f,nodeLookup:c});U=ne.handleDomNode,M=ne.connection,Q=qWn(!!A,ne.isValid);const ue=c.get(s),fe=ue?MO(ue,F,rr.Left,!0):te.from,oe={...te,from:fe,isValid:Q,to:ne.toHandle&&Q?H7({x:ne.toHandle.x,y:ne.toHandle.y},Y):B,toHandle:ne.toHandle,toPosition:Q&&ne.toHandle?ne.toHandle.position:Oze[F.position],toNode:ne.toHandle?c.get(ne.toHandle.nodeId):null,pointer:B};w(oe),te=oe}function ae(pe){if(!("touches"in pe&&pe.touches.length>0)){if(H){(A||U)&&M&&Q&&v?.(M);const{inProgress:Y,...ne}=te,ue={...ne,toPosition:te.toHandle?te.toPosition:null};y?.(pe,ue),a&&S?.(pe,ue)}h(),cancelAnimationFrame(I),V=!1,Q=!1,M=null,U=null,T.removeEventListener("mousemove",J),T.removeEventListener("mouseup",ae),T.removeEventListener("touchmove",J),T.removeEventListener("touchend",ae)}}T.addEventListener("mousemove",J),T.addEventListener("mouseup",ae),T.addEventListener("touchmove",J),T.addEventListener("touchend",ae)}function Fwt(e,{handle:t,connectionMode:n,fromNodeId:r,fromHandleId:s,fromType:a,doc:i,lib:l,flowId:c,isValidConnection:u=zwt,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}=hg(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 S=Lwt(void 0,y),w=y.getAttribute("data-nodeid"),k=y.getAttribute("data-handleid"),_=y.classList.contains("connectable"),C=y.classList.contains("connectableend");if(!w||!S)return b;const E={source:f?w:r,sourceHandle:f?k:s,target:f?r:w,targetHandle:f?s:k};b.connection=E;const T=_&&C&&(n===OT.Strict?f&&S==="source"||!f&&S==="target":w!==r||k!==s);b.isValid=T&&u(E),b.toHandle=Dwt(w,S,k,d,n,!0)}return b}const tme={onPointerDown:VWn,isValid:Fwt};function HWn({domNode:e,panZoom:t,getTransform:n,getViewScale:r}){const s=yp(e);function a({translateExtent:l,width:c,height:u,zoomStep:d=1,pannable:f=!0,zoomable:p=!0,inversePan:h=!1}){const m=w=>{if(w.sourceEvent.type!=="wheel"||!t)return;const k=n(),_=w.sourceEvent.ctrlKey&&dM()?10:1,C=-w.sourceEvent.deltaY*(w.sourceEvent.deltaMode===1?.05:w.sourceEvent.deltaMode?1:.002)*d,E=k[2]*Math.pow(2,C*_);t.scaleTo(E)};let v=[0,0];const y=w=>{(w.sourceEvent.type==="mousedown"||w.sourceEvent.type==="touchstart")&&(v=[w.sourceEvent.clientX??w.sourceEvent.touches[0].clientX,w.sourceEvent.clientY??w.sourceEvent.touches[0].clientY])},b=w=>{const k=n();if(w.sourceEvent.type!=="mousemove"&&w.sourceEvent.type!=="touchmove"||!t)return;const _=[w.sourceEvent.clientX??w.sourceEvent.touches[0].clientX,w.sourceEvent.clientY??w.sourceEvent.touches[0].clientY],C=[_[0]-v[0],_[1]-v[1]];v=_;const E=r()*Math.max(k[2],Math.log(k[2]))*(h?-1:1),j={x:k[0]-C[0]*E,y:k[1]-C[1]*E},T=[[0,0],[c,u]];t.setViewportConstrained({x:j.x,y:j.y,zoom:k[2]},T,l)},S=mwt().on("start",y).on("zoom",f?b:null).on("zoom.wheel",p?m:null);s.call(S,{})}function i(){s.on("zoom",null)}return{update:a,destroy:i,pointer:tg}}const ZV=e=>({x:e.x,y:e.y,zoom:e.k}),pee=({x:e,y:t,zoom:n})=>VV.translate(e,t).scale(n),GE=(e,t)=>e.target.closest(`.${t}`),Bwt=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),WWn=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,hee=(e,t=0,n=WWn,r=()=>{})=>{const s=typeof t=="number"&&t>0;return s||r(),s?e.transition().duration(t).ease(n).on("end",r):e},Uwt=e=>{const t=e.ctrlKey&&dM()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function ZWn({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:r,panOnScrollMode:s,panOnScrollSpeed:a,zoomOnPinch:i,onPanZoomStart:l,onPanZoom:c,onPanZoomEnd:u}){return d=>{if(GE(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=tg(d),b=Uwt(d),S=f*Math.pow(2,b);r.scaleTo(n,S,y,d);return}const p=d.deltaMode===1?20:1;let h=s===Wk.Vertical?0:d.deltaX*p,m=s===Wk.Horizontal?0:d.deltaY*p;!dM()&&d.shiftKey&&s!==Wk.Vertical&&(h=d.deltaY*p,m=0),r.translateBy(n,-(h/f)*a,-(m/f)*a,{internal:!0});const v=ZV(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 GWn({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(r,s){const a=r.type==="wheel",i=!t&&a&&!r.ctrlKey,l=GE(r,e);if(r.ctrlKey&&a&&l&&r.preventDefault(),i||l)return null;r.preventDefault(),n.call(this,r,s)}}function QWn({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return r=>{if(r.sourceEvent?.internal)return;const s=ZV(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 YWn({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:r,onPanZoom:s}){return a=>{e.usedRightMouseButton=!!(n&&Bwt(t,e.mouseButton??0)),a.sourceEvent?.sync||r([a.transform.x,a.transform.y,a.transform.k]),s&&!a.sourceEvent?.internal&&s?.(a.sourceEvent,ZV(a.transform))}}function XWn({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:r,onPanZoomEnd:s,onPaneContextMenu:a}){return i=>{if(!i.sourceEvent?.internal&&(e.isZoomingOrPanning=!1,a&&Bwt(t,e.mouseButton??0)&&!e.usedRightMouseButton&&i.sourceEvent&&a(i.sourceEvent),e.usedRightMouseButton=!1,r(!1),s)){const l=ZV(i.transform);e.prevViewport=l,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{s?.(i.sourceEvent,l)},n?150:0)}}}function KWn({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"&&(GE(f,`${u}-flow__node`)||GE(f,`${u}-flow__edge`)))return!0;if(!r&&!p&&!s&&!a&&!n||i||d&&!m||GE(f,l)&&m||GE(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 JWn({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=mwt().scaleExtent([t,n]).translateExtent(r),p=yp(e).call(f);S({x:s.x,y:s.y,zoom:_T(s.zoom,t,n)},[[0,0],[d.width,d.height]],r);const h=p.on("wheel.zoom"),m=p.on("dblclick.zoom");f.wheelDelta(Uwt);function v(A,P){return p?new Promise(L=>{f?.interpolate(P?.interpolate==="linear"?sx:aF).transform(hee(p,P?.duration,P?.ease,()=>L(!0)),A)}):Promise.resolve(!1)}function y({noWheelClassName:A,noPanClassName:P,onPaneContextMenu:L,userSelectionActive:D,panOnScroll:q,panOnDrag:H,panOnScrollMode:z,panOnScrollSpeed:B,preventScrolling:V,zoomOnPinch:M,zoomOnScroll:Q,zoomOnDoubleClick:U,zoomActivationKeyPressed:$,lib:F,onTransformChange:Z,connectionInProgress:X,paneClickDistance:te,selectionOnDrag:ee}){D&&!u.isZoomingOrPanning&&b();const J=q&&!$&&!D;f.clickDistance(ee?1/0:!pg(te)||te<0?0:te);const ae=J?ZWn({zoomPanValues:u,noWheelClassName:A,d3Selection:p,d3Zoom:f,panOnScrollMode:z,panOnScrollSpeed:B,zoomOnPinch:M,onPanZoomStart:i,onPanZoom:a,onPanZoomEnd:l}):GWn({noWheelClassName:A,preventScrolling:V,d3ZoomHandler:h});if(p.on("wheel.zoom",ae,{passive:!1}),!D){const Y=QWn({zoomPanValues:u,onDraggingChange:c,onPanZoomStart:i});f.on("start",Y);const ne=YWn({zoomPanValues:u,panOnDrag:H,onPaneContextMenu:!!L,onPanZoom:a,onTransformChange:Z});f.on("zoom",ne);const ue=XWn({zoomPanValues:u,panOnDrag:H,panOnScroll:q,onPaneContextMenu:L,onPanZoomEnd:l,onDraggingChange:c});f.on("end",ue)}const pe=KWn({zoomActivationKeyPressed:$,panOnDrag:H,zoomOnScroll:Q,panOnScroll:q,zoomOnDoubleClick:U,zoomOnPinch:M,userSelectionActive:D,noPanClassName:P,noWheelClassName:A,lib:F,connectionInProgress:X});f.filter(pe),U?p.on("dblclick.zoom",m):p.on("dblclick.zoom",null)}function b(){f.on("zoom",null)}async function S(A,P,L){const D=pee(A),q=f?.constrain()(D,P,L);return q&&await v(q),new Promise(H=>H(q))}async function w(A,P){const L=pee(A);return await v(L,P),new Promise(D=>D(L))}function k(A){if(p){const P=pee(A),L=p.property("__zoom");(L.k!==A.zoom||L.x!==A.x||L.y!==A.y)&&f?.transform(p,P,null,{sync:!0})}}function _(){const A=p?hwt(p.node()):{x:0,y:0,k:1};return{x:A.x,y:A.y,zoom:A.k}}function C(A,P){return p?new Promise(L=>{f?.interpolate(P?.interpolate==="linear"?sx:aF).scaleTo(hee(p,P?.duration,P?.ease,()=>L(!0)),A)}):Promise.resolve(!1)}function E(A,P){return p?new Promise(L=>{f?.interpolate(P?.interpolate==="linear"?sx:aF).scaleBy(hee(p,P?.duration,P?.ease,()=>L(!0)),A)}):Promise.resolve(!1)}function j(A){f?.scaleExtent(A)}function T(A){f?.translateExtent(A)}function I(A){const P=!pg(A)||A<0?0:A;f?.clickDistance(P)}return{update:y,destroy:b,setViewport:w,setViewportConstrained:S,getViewport:_,scaleTo:C,scaleBy:E,setScaleExtent:j,setTranslateExtent:T,syncViewport:k,setClickDistance:I}}var jT;(function(e){e.Line="line",e.Handle="handle"})(jT||(jT={}));function eZn({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 Dze(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 z0(e,t){return Math.max(0,t-e)}function F0(e,t){return Math.max(0,e-t)}function R6(e,t,n){return Math.max(0,t-e,e-n)}function Lze(e,t){return e?!t:t}function tZn(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:S}=r,{x:w,y:k,width:_,height:C,aspectRatio:E}=e;let j=Math.floor(d?h-e.pointerX:0),T=Math.floor(f?m-e.pointerY:0);const I=_+(c?-j:j),A=C+(u?-T:T),P=-a[0]*_,L=-a[1]*C;let D=R6(I,v,y),q=R6(A,b,S);if(i){let B=0,V=0;c&&j<0?B=z0(w+j+P,i[0][0]):!c&&j>0&&(B=F0(w+I+P,i[1][0])),u&&T<0?V=z0(k+T+L,i[0][1]):!u&&T>0&&(V=F0(k+A+L,i[1][1])),D=Math.max(D,B),q=Math.max(q,V)}if(l){let B=0,V=0;c&&j>0?B=F0(w+j,l[0][0]):!c&&j<0&&(B=z0(w+I,l[1][0])),u&&T>0?V=F0(k+T,l[0][1]):!u&&T<0&&(V=z0(k+A,l[1][1])),D=Math.max(D,B),q=Math.max(q,V)}if(s){if(d){const B=R6(I/E,b,S)*E;if(D=Math.max(D,B),i){let V=0;!c&&!u||c&&!u&&p?V=F0(k+L+I/E,i[1][1])*E:V=z0(k+L+(c?j:-j)/E,i[0][1])*E,D=Math.max(D,V)}if(l){let V=0;!c&&!u||c&&!u&&p?V=z0(k+I/E,l[1][1])*E:V=F0(k+(c?j:-j)/E,l[0][1])*E,D=Math.max(D,V)}}if(f){const B=R6(A*E,v,y)/E;if(q=Math.max(q,B),i){let V=0;!c&&!u||u&&!c&&p?V=F0(w+A*E+P,i[1][0])/E:V=z0(w+(u?T:-T)*E+P,i[0][0])/E,q=Math.max(q,V)}if(l){let V=0;!c&&!u||u&&!c&&p?V=z0(w+A*E,l[1][0])/E:V=F0(w+(u?T:-T)*E,l[0][0])/E,q=Math.max(q,V)}}}T=T+(T<0?q:-q),j=j+(j<0?D:-D),s&&(p?I>A*E?T=(Lze(c,u)?-j:j)/E:j=(Lze(c,u)?-T:T)*E:d?(T=j/E,u=c):(j=T*E,c=u));const H=c?w+j:w,z=u?k+T:k;return{width:_+(c?-j:j),height:C+(u?-T:T),x:a[0]*j*(c?-1:1)+H,y:a[1]*T*(u?-1:1)+z}}const qwt={width:0,height:0,x:0,y:0},nZn={...qwt,pointerX:0,pointerY:0,aspectRatio:1};function rZn(e){return[[0,0],[e.measured.width,e.measured.height]]}function sZn(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 aZn({domNode:e,nodeId:t,getStoreItems:n,onChange:r,onEnd:s}){const a=yp(e);let i={controlDirection:Dze("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={...qwt},S={...nZn};i={boundaries:d,resizeDirection:p,keepAspectRatio:f,controlDirection:Dze(u)};let w,k=null,_=[],C,E,j,T=!1;const I=ewt().on("start",A=>{const{nodeLookup:P,transform:L,snapGrid:D,snapToGrid:q,nodeOrigin:H,paneDomNode:z}=n();if(w=P.get(t),!w)return;k=z?.getBoundingClientRect()??null;const{xSnapped:B,ySnapped:V}=W2(A.sourceEvent,{transform:L,snapGrid:D,snapToGrid:q,containerBounds:k});b={width:w.measured.width??0,height:w.measured.height??0,x:w.position.x??0,y:w.position.y??0},S={...b,pointerX:B,pointerY:V,aspectRatio:b.width/b.height},C=void 0,w.parentId&&(w.extent==="parent"||w.expandParent)&&(C=P.get(w.parentId),E=C&&w.extent==="parent"?rZn(C):void 0),_=[],j=void 0;for(const[M,Q]of P)if(Q.parentId===t&&(_.push({id:M,position:{...Q.position},extent:Q.extent}),Q.extent==="parent"||Q.expandParent)){const U=sZn(Q,w,Q.origin??H);j?j=[[Math.min(U[0][0],j[0][0]),Math.min(U[0][1],j[0][1])],[Math.max(U[1][0],j[1][0]),Math.max(U[1][1],j[1][1])]]:j=U}h?.(A,{...b})}).on("drag",A=>{const{transform:P,snapGrid:L,snapToGrid:D,nodeOrigin:q}=n(),H=W2(A.sourceEvent,{transform:P,snapGrid:L,snapToGrid:D,containerBounds:k}),z=[];if(!w)return;const{x:B,y:V,width:M,height:Q}=b,U={},$=w.origin??q,{width:F,height:Z,x:X,y:te}=tZn(S,i.controlDirection,H,i.boundaries,i.keepAspectRatio,$,E,j),ee=F!==M,J=Z!==Q,ae=X!==B&&ee,pe=te!==V&&J;if(!ae&&!pe&&!ee&&!J)return;if((ae||pe||$[0]===1||$[1]===1)&&(U.x=ae?X:b.x,U.y=pe?te:b.y,b.x=U.x,b.y=U.y,_.length>0)){const fe=X-B,oe=te-V;for(const me of _)me.position={x:me.position.x-fe+$[0]*(F-M),y:me.position.y-oe+$[1]*(Z-Q)},z.push(me)}if((ee||J)&&(U.width=ee&&(!i.resizeDirection||i.resizeDirection==="horizontal")?F:b.width,U.height=J&&(!i.resizeDirection||i.resizeDirection==="vertical")?Z:b.height,b.width=U.width,b.height=U.height),C&&w.expandParent){const fe=$[0]*(U.width??0);U.x&&U.x<fe&&(b.x=fe,S.x=S.x-(U.x-fe));const oe=$[1]*(U.height??0);U.y&&U.y<oe&&(b.y=oe,S.y=S.y-(U.y-oe))}const Y=eZn({width:b.width,prevWidth:M,height:b.height,prevHeight:Q,affectsX:i.controlDirection.affectsX,affectsY:i.controlDirection.affectsY}),ne={...b,direction:Y};y?.(A,ne)!==!1&&(T=!0,m?.(A,ne),r(U,z))}).on("end",A=>{T&&(v?.(A,{...b}),s?.({...b}),T=!1)});a.call(I)}function c(){a.on(".drag",null)}return{update:l,destroy:c}}const iZn={},zze=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:()=>{(iZn?"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},oZn=e=>e?zze(e):zze,{useDebugValue:lZn}=Le,{useSyncExternalStoreWithSelector:cZn}=CSn,uZn=e=>e;function Vwt(e,t=uZn,n){const r=cZn(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return lZn(r),r}const Fze=(e,t)=>{const n=oZn(e),r=(s,a=t)=>Vwt(n,s,a);return Object.assign(r,n),r},dZn=(e,t)=>e?Fze(e,t):Fze;function so(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 GV=g.createContext(null),fZn=GV.Provider,Hwt=my.error001();function qs(e,t){const n=g.useContext(GV);if(n===null)throw new Error(Hwt);return Vwt(n,e,t)}function ko(){const e=g.useContext(GV);if(e===null)throw new Error(Hwt);return g.useMemo(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}const Bze={display:"none"},pZn={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},Wwt="react-flow__node-desc",Zwt="react-flow__edge-desc",hZn="react-flow__aria-live",mZn=e=>e.ariaLiveMessage,gZn=e=>e.ariaLabelConfig;function vZn({rfId:e}){const t=qs(mZn);return o.jsx("div",{id:`${hZn}-${e}`,"aria-live":"assertive","aria-atomic":"true",style:pZn,children:t})}function yZn({rfId:e,disableKeyboardA11y:t}){const n=qs(gZn);return o.jsxs(o.Fragment,{children:[o.jsx("div",{id:`${Wwt}-${e}`,style:Bze,children:t?n["node.a11yDescription.default"]:n["node.a11yDescription.keyboardDisabled"]}),o.jsx("div",{id:`${Zwt}-${e}`,style:Bze,children:n["edge.a11yDescription.default"]}),!t&&o.jsx(vZn,{rfId:e})]})}const S3=g.forwardRef(({position:e="top-left",children:t,className:n,style:r,...s},a)=>{const i=`${e}`.split("-");return o.jsx("div",{className:Dl(["react-flow__panel",n,...i]),style:r,ref:a,...s,children:t})});S3.displayName="Panel";function bZn({proOptions:e,position:t="bottom-right"}){return e?.hideAttribution?null:o.jsx(S3,{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 xZn=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}},P6=e=>e.id;function wZn(e,t){return so(e.selectedNodes.map(P6),t.selectedNodes.map(P6))&&so(e.selectedEdges.map(P6),t.selectedEdges.map(P6))}function SZn({onSelectionChange:e}){const t=ko(),{selectedNodes:n,selectedEdges:r}=qs(xZn,wZn);return g.useEffect(()=>{const s={nodes:n,edges:r};e?.(s),t.getState().onSelectionChangeHandlers.forEach(a=>a(s))},[n,r,e]),null}const kZn=e=>!!e.onSelectionChangeHandlers;function OZn({onSelectionChange:e}){const t=qs(kZn);return e||t?o.jsx(SZn,{onSelectionChange:e}):null}const nme=typeof window<"u"?g.useLayoutEffect:g.useEffect,Gwt=[0,0],_Zn={x:0,y:0,zoom:1},CZn=["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"],Uze=[...CZn,"rfId"],EZn=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}),qze={translateExtent:oM,nodeOrigin:Gwt,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:"nopan",rfId:"1"};function jZn(e){const{setNodes:t,setEdges:n,setMinZoom:r,setMaxZoom:s,setTranslateExtent:a,setNodeExtent:i,reset:l,setDefaultNodesAndEdges:c}=qs(EZn,so),u=ko();nme(()=>(c(e.defaultNodes,e.defaultEdges),()=>{d.current=qze,l()}),[]);const d=g.useRef(qze);return nme(()=>{for(const f of Uze){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:vWn(p)}):f==="fitView"?u.setState({fitViewQueued:p}):f==="fitViewOptions"?u.setState({fitViewOptions:p}):u.setState({[f]:p})))}d.current=e},Uze.map(f=>e[f])),null}function Vze(){return typeof window>"u"||!window.matchMedia?null:window.matchMedia("(prefers-color-scheme: dark)")}function TZn(e){const[t,n]=g.useState(e==="system"?null:e);return g.useEffect(()=>{if(e!=="system"){n(e);return}const r=Vze(),s=()=>n(r?.matches?"dark":"light");return s(),r?.addEventListener("change",s),()=>{r?.removeEventListener("change",s)}},[e]),t!==null?t:Vze()?.matches?"dark":"light"}const Hze=typeof document<"u"?document:null;function fM(e=null,t={target:Hze,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("+",`
|
|
337
337
|
`).replace(`
|
|
338
338
|
|
|
339
339
|
`,`
|
|
@@ -722,7 +722,7 @@ window.parent.postMessage({jsonrpc:'2.0',method:'ui/notifications/sandbox-proxy-
|
|
|
722
722
|
"groundTruth": "Expected result (optional)",
|
|
723
723
|
"metadata": { "key": "value" } // optional
|
|
724
724
|
}
|
|
725
|
-
]`})]})]})}function ers({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 border-accent2/30 rounded-md p-3",children:[o.jsxs("div",{className:"flex items-center gap-2 text-accent2 mb-2",children:[o.jsx(Ue,{children:o.jsx(Tp,{className:"w-4 h-4"})}),o.jsxs("span",{className:"font-medium text-sm",children:[e.length," validation error",e.length!==1?"s":""]})]}),o.jsx("ul",{className:"text-sm text-accent2/80 space-y-1",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-xs text-accent2/60 mt-2",children:["+",r," more error",r!==1?"s":""]})]})}function trs({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}=Ets(),{batchInsertItems:b}=Ei(),S=g.useCallback(async I=>{try{const A=await m(I);l(A),a("preview")}catch{}},[m]),w=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&&De.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,E=()=>{switch(s){case"upload":return o.jsx(Jns,{onFileSelect:S,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(ers,{errors:i.errors}),o.jsx("div",{className:"text-sm text-neutral4",children:"Please fix the errors in your JSON file and try again."})]}):o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"text-sm text-neutral4",children:["Found ",i.items.length," valid item",i.items.length!==1?"s":""," to import."]}),o.jsx(Kns,{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-lg font-medium text-neutral1",children:"Importing items..."}),o.jsxs("div",{className:"text-sm text-neutral4 mt-1",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-lg font-medium text-neutral1",children:"Import Complete"}),o.jsxs("div",{className:"text-sm text-neutral4 mt-1",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":"",")"]})]})]})]})}},j=()=>{switch(s){case"upload":return o.jsx(ce,{onClick:_,children:"Cancel"});case"preview":return o.jsxs(o.Fragment,{children:[o.jsx(ce,{onClick:()=>a("upload"),children:"Back"}),o.jsxs(ce,{variant:"primary",onClick:w,disabled:!C,children:["Import ",i?.items.length??0," Item",i?.items.length!==1?"s":""]})]});case"importing":return null;case"complete":return o.jsx(ce,{variant:"primary",onClick:k,children:"Done"})}},T={upload:"Import JSON",preview:"Preview Data",importing:"Importing",complete:"Import Complete"};return o.jsx(br,{open:t,onOpenChange:_,children:o.jsxs(xr,{className:"max-w-2xl max-h-[90vh]",children:[o.jsxs(wr,{children:[o.jsx(gr,{children:T[s]}),o.jsx(Xs,{children:"Import dataset items from a JSON file."})]}),o.jsx($r,{className:"min-h-[200px] max-h-[50vh] overflow-y-auto",children:E()}),o.jsx(Cc,{className:"px-6 pt-4 flex justify-end gap-2",children:j()})]})})}const HTe=e=>{const t=We(),{data:n}=rD(e),r=n?.experiments;return St({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:""}))}catch{return[]}}))).flat(),enabled:!!e&&!!r&&r.length>0,refetchOnWindowFocus:!1})},nrs=e=>{const t=We(),{data:n}=rD(e),r=n?.experiments;return St({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:""}))}catch{return[]}}))).flat(),enabled:!!e&&!!r&&r.length>0,refetchOnWindowFocus:!1})};function rrs(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 tFt({datasetId:e,experimentId:t,featuredItemId:n}){const r=We(),{data:s}=Wx(e),{data:a,isLoading:i}=HTe(e),{data:l,isLoading:c}=nrs(e),u=g.useMemo(()=>t?(a??[]).filter(Te=>Te.experimentId===t):a,[a,t]),d=g.useMemo(()=>t?(l??[]).filter(Te=>Te.experimentId===t):l,[l,t]),{updateExperimentResult:f}=Ei(),[p,h]=g.useState(n??null);g.useEffect(()=>{n!==void 0&&h(n)},[n]);const[m,v]=g.useState(null),[y,b]=g.useState(new Set),[S,w]=g.useState(!1),[k,_]=g.useState(!1),[C,E]=g.useState(!1),[j,T]=g.useState(""),[I,A]=g.useState(""),[P,L]=g.useState(""),[D,q]=g.useState([]),[H,z]=g.useState(!1),[B,V]=g.useState(null),M=g.useMemo(()=>B??u??[],[B,u]);g.useEffect(()=>{V(null)},[e,t]),g.useEffect(()=>{u&&B===null&&V(u)},[u,B]);const Q=g.useMemo(()=>{const Te=new Set;if(s?.tags)for(const Ce of s.tags)Te.add(Ce);for(const Ce of M)for(const Ee of Ce.tags)Te.add(Ee);return[...Te].sort()},[s,M]),U=g.useCallback(Te=>{!s||!e||(s.tags??[]).includes(Te)},[s,e]),$=g.useMemo(()=>m?m==="__untagged__"?M.filter(Te=>Te.tags.length===0):M.filter(Te=>Te.tags.includes(m)):M,[M,m]),F=g.useMemo(()=>{const Te=new Map;for(const Ce of M)for(const Ee of Ce.tags)Te.set(Ee,(Te.get(Ee)??0)+1);return[...Te.entries()].sort((Ce,Ee)=>Ee[1]-Ce[1])},[M]),Z=g.useMemo(()=>M.filter(Te=>Te.tags.length===0).length,[M]),X=g.useMemo(()=>{let Te=0;return m&&Te++,S&&Te++,Te},[m,S]),te=g.useCallback((Te,Ce)=>{V(Oe=>(Oe??[]).map(Re=>Re.id===Te?{...Re,tags:Ce}:Re));const Ee=M.find(Oe=>Oe.id===Te);Ee?.experimentId&&Ee?.datasetId&&f.mutate({datasetId:Ee.datasetId,experimentId:Ee.experimentId,resultId:Ee.id,tags:Ce})},[M,f]),ee=g.useCallback((Te,Ce)=>{const Ee=M.find(Oe=>Oe.id===Te);Ee?.traceId&&Ce!==void 0&&r.createFeedback({feedback:{traceId:Ee.traceId,source:"studio",feedbackSource:"studio",feedbackType:"rating",value:Ce==="positive"?1:-1,experimentId:Ee.experimentId??void 0,sourceId:Ee.id}}).catch(()=>{}),V(Oe=>(Oe??[]).map(Re=>Re.id===Te?{...Re,rating:Ce}:Re))},[M,r]),J=g.useCallback((Te,Ce)=>{const Ee=M.find(Oe=>Oe.id===Te);Ee?.traceId&&r.createFeedback({feedback:{traceId:Ee.traceId,source:"studio",feedbackSource:"studio",feedbackType:"comment",value:Ce,comment:Ce,experimentId:Ee.experimentId??void 0,sourceId:Ee.id}}).catch(()=>{}),V(Oe=>(Oe??[]).map(Re=>Re.id===Te?{...Re,comment:Ce}:Re))},[M,r]),ae=g.useCallback(Te=>{const Ce=M.find(Ee=>Ee.id===Te);V(Ee=>(Ee??[]).filter(Oe=>Oe.id!==Te)),b(Ee=>{const Oe=new Set(Ee);return Oe.delete(Te),Oe}),p===Te&&h(null),Ce?.experimentId&&Ce?.datasetId&&f.mutate({datasetId:Ce.datasetId,experimentId:Ce.experimentId,resultId:Ce.id,status:null})},[M,f,p]),pe=g.useCallback(Te=>{const Ce=M.find(Ee=>Ee.id===Te);V(Ee=>(Ee??[]).filter(Oe=>Oe.id!==Te)),b(Ee=>{const Oe=new Set(Ee);return Oe.delete(Te),Oe}),p===Te&&h(null),Ce?.experimentId&&Ce?.datasetId&&f.mutate({datasetId:Ce.datasetId,experimentId:Ce.experimentId,resultId:Ce.id,status:"complete"})},[M,f,p]),Y=g.useMemo(()=>{const Te=S?d??[]:$;return!S||!m?Te:m==="__untagged__"?Te.filter(Ce=>Ce.tags.length===0):Te.filter(Ce=>Ce.tags.includes(m))},[S,d,$,m]),ne=S?c:!1,ue=g.useMemo(()=>new Set(Y.map(Te=>Te.id)),[Y]),fe=g.useMemo(()=>[...y].filter(Te=>ue.has(Te)).length,[y,ue]),oe=Y.length>0&&fe===Y.length,me=fe>0&&!oe,be=g.useCallback(Te=>{b(Ce=>{const Ee=new Set(Ce);return Ee.has(Te)?Ee.delete(Te):Ee.add(Te),Ee})},[]),we=g.useCallback(()=>{b(oe?new Set:new Set(Y.map(Te=>Te.id)))},[oe,Y]),je=g.useCallback(Te=>{for(const Ce of y){const Ee=M.find(Oe=>Oe.id===Ce);Ee&&!Ee.tags.includes(Te)&&te(Ce,[...Ee.tags,Te])}},[M,y,te]),ke=g.useCallback(Te=>{for(const Ce of y){const Ee=M.find(Oe=>Oe.id===Ce);Ee&&Ee.tags.includes(Te)&&te(Ce,Ee.tags.filter(Oe=>Oe!==Te))}},[M,y,te]),Ae=g.useCallback(()=>{for(const Te of y)pe(Te);b(new Set)},[y,pe]),Fe=g.useCallback(()=>{for(const Te of y)ae(Te);b(new Set)},[y,ae]),le=g.useCallback(()=>{T(""),E(!0)},[]),re=g.useCallback(async()=>{if(!(!I||!P)){_(!0),E(!1);try{const Te=M.filter(Ee=>y.has(Ee.id));if(Te.length===0){_(!1);return}const Ce=await r.clusterFailures({modelId:`${I}/${P}`,items:Te.map(Ee=>({id:Ee.id,input:Ee.input,output:Ee.output??void 0,error:typeof Ee.error=="string"?Ee.error:Ee.error?String(Ee.error):void 0,scores:Ee.scores,existingTags:Ee.tags.length>0?Ee.tags:void 0})),availableTags:Q.length>0?Q:void 0,prompt:j||void 0});Ce.proposedTags&&Ce.proposedTags.length>0&&(q(Ce.proposedTags.map(Ee=>({...Ee,accepted:!0}))),z(!0))}catch(Te){console.error("Analysis failed:",Te)}finally{_(!1)}}},[I,P,M,y,r,Q,j]),se=g.useCallback(()=>{for(const Te of D){if(!Te.accepted)continue;const Ce=M.find(Ee=>Ee.id===Te.itemId);if(Ce){const Ee=[...new Set([...Ce.tags,...Te.tags])];te(Ce.id,Ee)}}z(!1)},[D,M,te]),he=g.useCallback(Te=>{h(Ce=>Ce===Te?null:Te)},[]),xe=g.useMemo(()=>p?Y.find(Te=>Te.id===p)??null:null,[p,Y]),Ne=p?Y.findIndex(Te=>Te.id===p):-1,Pe=Ne>0?()=>h(Y[Ne-1].id):void 0,Ye=Ne>=0&&Ne<Y.length-1?()=>h(Y[Ne+1].id):void 0,Ze="auto minmax(15rem,1fr) 10rem 8rem 6rem 6rem";return i?o.jsx("div",{className:"flex-1 flex items-center justify-center",children:o.jsx(Qt,{className:"w-6 h-6"})}):o.jsxs("div",{className:"flex flex-1 min-h-0 overflow-hidden",children:[o.jsx(br,{open:C,onOpenChange:E,children:o.jsxs(xr,{children:[o.jsxs(wr,{children:[o.jsx(gr,{children:"Analyze Items"}),o.jsx(Xs,{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:"text-xs mb-1 block",children:"Provider"}),o.jsx(Ly,{value:I,onValueChange:A})]}),o.jsxs("div",{children:[o.jsx($t,{className:"text-xs mb-1 block",children:"Model"}),o.jsx(zy,{llmId:I,value:P,onValueChange:L})]})]}),o.jsxs(ye,{variant:"ui-xs",className:"text-neutral3",children:[y.size," item",y.size!==1?"s":""," will be analyzed"]}),o.jsxs("div",{children:[o.jsx($t,{className:"text-xs",children:"Instructions (optional)"}),o.jsx(Jl,{value:j,onChange:Te=>T(Te.target.value),placeholder:"E.g., Focus on safety issues and factual errors...",rows:3,className:"text-xs mt-1"})]})]}),o.jsxs(Cc,{children:[o.jsx(ce,{variant:"outline",onClick:()=>E(!1),children:"Cancel"}),o.jsxs(ce,{onClick:re,disabled:!I||!P||k,children:[k?o.jsx(Qt,{className:"w-4 h-4 mr-1"}):null,"Analyze"]})]})]})}),o.jsx(br,{open:H,onOpenChange:z,children:o.jsxs(xr,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[o.jsxs(wr,{children:[o.jsx(gr,{children:"Review Proposed Tags"}),o.jsxs(Xs,{children:[D.filter(Te=>Te.accepted).length," of ",D.length," proposals selected"]})]}),o.jsx("div",{className:"space-y-3 py-2",children:D.map((Te,Ce)=>{const Ee=M.find(Oe=>Oe.id===Te.itemId);return o.jsx("div",{className:K("p-3 border rounded-lg",!Te.accepted&&"opacity-50"),children:o.jsxs("div",{className:"flex items-start gap-2",children:[o.jsx(Do,{checked:Te.accepted,onCheckedChange:Oe=>q(Re=>Re.map((qe,Xe)=>Xe===Ce?{...qe,accepted:!!Oe}:qe))}),o.jsxs("div",{className:"flex-1 min-w-0",children:[o.jsx(ye,{variant:"ui-xs",className:"text-neutral4 truncate block",children:Ee?typeof Ee.input=="string"?Ee.input.slice(0,100):JSON.stringify(Ee.input).slice(0,100):Te.itemId}),o.jsx("div",{className:"flex gap-1 flex-wrap mt-1.5",children:Te.tags.map((Oe,Re)=>o.jsx(Azt,{tag:Oe,onRename:qe=>q(Xe=>Xe.map((tt,Pt)=>Pt===Ce?{...tt,tags:tt.tags.map((ot,Ut)=>Ut===Re?qe:ot)}:tt)),onRemove:()=>q(qe=>qe.map((Xe,tt)=>tt===Ce?{...Xe,tags:Xe.tags.filter((Pt,ot)=>ot!==Re)}:Xe))},`${Oe}-${Re}`))}),Te.reason&&o.jsx(ye,{variant:"ui-xs",className:"text-neutral3 mt-1 block italic",children:Te.reason})]})]})},Te.itemId)})}),o.jsxs(Cc,{children:[o.jsx(ce,{variant:"outline",onClick:()=>z(!1),children:"Cancel"}),o.jsxs(ce,{onClick:se,disabled:D.filter(Te=>Te.accepted).length===0,children:["Accept ",D.filter(Te=>Te.accepted).length," proposals"]})]})]})}),o.jsxs("div",{className:K("grid w-full h-full grid-cols-1 gap-4 overflow-y-auto",xe&&"grid-cols-[1fr_1fr]"),children:[o.jsxs("div",{className:"grid gap-8 content-start w-full overflow-y-auto",children:[o.jsxs("div",{className:"flex items-center justify-between w-full flex-wrap gap-4 gap-x-6",children:[o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsxs(dt,{children:[o.jsx(dt.Trigger,{asChild:!0,children:o.jsxs(ce,{variant:"outline",size:"md",children:[o.jsx(Uct,{}),"Filter",X>0&&o.jsx("span",{className:K("ml-0.5 inline-flex items-center justify-center rounded-full bg-accent1/50 text-neutral5 text-ui-sm w-5 h-5"),children:X})]})}),o.jsxs(dt.Content,{align:"start",className:K("min-w-48"),children:[o.jsxs(dt.Sub,{children:[o.jsxs(dt.SubTrigger,{children:["Status",S&&o.jsx("span",{className:K("ml-auto text-ui-sm text-accent1"),children:"1"})]}),o.jsxs(dt.SubContent,{children:[o.jsx(dt.CheckboxItem,{checked:!S,onCheckedChange:()=>{w(!1),h(null)},onSelect:Te=>Te.preventDefault(),children:"Review Queue"}),o.jsx(dt.CheckboxItem,{checked:S,onCheckedChange:()=>{w(!0),h(null)},onSelect:Te=>Te.preventDefault(),children:"Completed"})]})]}),o.jsxs(dt.Sub,{children:[o.jsxs(dt.SubTrigger,{children:["Tags",m&&o.jsx("span",{className:K("ml-auto text-ui-sm text-accent1"),children:"1"})]}),o.jsxs(dt.SubContent,{children:[o.jsx(dt.CheckboxItem,{checked:!m,onCheckedChange:()=>v(null),onSelect:Te=>Te.preventDefault(),children:"All"}),Z>0&&o.jsx(dt.CheckboxItem,{checked:m==="__untagged__",onCheckedChange:()=>v(m==="__untagged__"?null:"__untagged__"),onSelect:Te=>Te.preventDefault(),children:"Untagged"}),F.length>0&&o.jsx(dt.Separator,{}),F.map(([Te])=>o.jsx(dt.CheckboxItem,{checked:m===Te,onCheckedChange:()=>v(m===Te?null:Te),onSelect:Ce=>Ce.preventDefault(),children:Te},Te))]})]}),X>0&&o.jsxs(o.Fragment,{children:[o.jsx(dt.Separator,{}),o.jsxs(dt.Item,{onSelect:()=>{v(null),w(!1),h(null)},children:[o.jsx(vs,{}),"Clear all filters"]})]})]})]}),X>0&&o.jsxs(ce,{variant:"outline",size:"md",onClick:()=>{v(null),w(!1),h(null)},children:[o.jsx(vs,{}),"Reset"]})]}),!S&&y.size>0&&o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(Izt,{selectedCount:y.size,vocabulary:Q,onApplyTag:je,onRemoveTag:ke,onNewTag:Te=>je(Te)}),o.jsxs(dt,{children:[o.jsx(dt.Trigger,{asChild:!0,children:o.jsxs(ce,{disabled:k,children:[k?o.jsx(Qt,{className:"w-4 h-4"}):o.jsx(Ue,{size:"sm",children:o.jsx(Ra,{})}),"Actions"]})}),o.jsxs(dt.Content,{align:"end",children:[o.jsxs(dt.Item,{onSelect:Ae,children:[o.jsx(Ue,{size:"sm",children:o.jsx(cO,{})}),"Complete"]}),o.jsxs(dt.Item,{onSelect:Fe,children:[o.jsx(Ue,{size:"sm",children:o.jsx(uu,{})}),"Remove"]}),o.jsx(dt.Separator,{}),o.jsxs(dt.Item,{onSelect:le,children:[o.jsx(Ue,{size:"sm",children:o.jsx(Og,{})}),"Analyze"]})]})]})]})]}),ne?o.jsx("div",{className:"flex-1 flex items-center justify-center",children:o.jsx(Qt,{className:"w-6 h-6"})}):Y.length===0?o.jsx("div",{className:"flex-1 flex items-center justify-center",children:o.jsxs("div",{className:"text-center px-8",children:[o.jsx(ye,{variant:"ui-sm",className:"text-neutral3 block",children:S?"No completed reviews yet":"No items to review"}),o.jsx(ye,{variant:"ui-xs",className:"text-neutral3 mt-2 block",children:S?"Items marked as complete will appear here for auditing.":"When experiment results are flagged for review, they will appear here."})]})}):o.jsxs(ve,{columns:Ze,className:"min-w-0",children:[o.jsxs(ve.Top,{hasLeadingCell:!0,children:[S?o.jsx(ve.TopCell,{children:" "}):o.jsx(ve.TopSelectCell,{checked:oe?!0:me?"indeterminate":!1,onToggle:()=>we(),"aria-label":"Select all"}),o.jsxs(ve.TopCells,{colStart:2,children:[o.jsx(ve.TopCell,{children:"Input"}),o.jsx(ve.TopCell,{children:"Comment"}),o.jsx(ve.TopCell,{children:"Tags"}),o.jsx(ve.TopCell,{children:"Rating"}),o.jsx(ve.TopCell,{children:"Scores"})]})]}),Y.map(Te=>{const Ce=Te.scores?Object.entries(Te.scores):[],Ee=p===Te.id,Oe=o.jsxs(o.Fragment,{children:[o.jsx(ve.Cell,{height:"compact",className:"min-w-0 text-neutral4",children:o.jsx("span",{className:"block truncate",children:rrs(Te.input,200)})}),o.jsx(ve.Cell,{height:"compact",className:"min-w-0",children:Te.comment?o.jsx(ye,{variant:"ui-xs",className:"text-neutral3 truncate",children:Te.comment}):o.jsx(ye,{variant:"ui-xs",className:"text-neutral2",children:"—"})}),o.jsx(ve.Cell,{height:"compact",className:"min-w-0",children:Te.tags.length>0?o.jsx(ye,{variant:"ui-xs",className:"text-neutral4 truncate",children:Te.tags.join(", ")}):o.jsx(ye,{variant:"ui-xs",className:"text-neutral2",children:"—"})}),o.jsxs(ve.Cell,{height:"compact",children:[Te.rating==="positive"&&o.jsx(Ue,{size:"sm",className:"text-positive1",children:o.jsx(Lbe,{})}),Te.rating==="negative"&&o.jsx(Ue,{size:"sm",className:"text-negative1",children:o.jsx(Dbe,{})}),!Te.rating&&o.jsx(ye,{variant:"ui-xs",className:"text-neutral2",children:"—"})]}),o.jsx(ve.Cell,{height:"compact",children:Ce.length>0?o.jsxs("div",{className:"flex items-center gap-1",children:[o.jsx(Ue,{size:"sm",className:"text-neutral3",children:o.jsx(sm,{})}),o.jsx(ye,{variant:"ui-xs",className:"text-neutral4 font-mono",children:Ce[0][1].toFixed(2)}),Ce.length>1&&o.jsxs(dn,{variant:"default",children:["+",Ce.length-1]})]}):o.jsx(ye,{variant:"ui-xs",className:"text-neutral2",children:"—"})})]});return o.jsxs(ve.RowWrapper,{children:[S?o.jsx(ve.Cell,{height:"compact",className:"justify-items-center px-4",children:o.jsx("div",{role:"img","aria-label":Te.error?"Error":"Success",title:Te.error?"Error":"Success",className:K("w-2 h-2 rounded-full",Te.error?"bg-red-700":"bg-green-600")})}):o.jsx(ve.SelectCell,{checked:y.has(Te.id),onToggle:()=>be(Te.id),"aria-label":`Select item ${Te.id}`}),o.jsx(ve.RowButton,{flushLeft:!0,colStart:2,featured:Ee,onClick:()=>he(Te.id),children:Oe})]},Te.id)})]})]}),xe&&o.jsx(Nzt,{item:xe,isCompleted:S,tagVocabulary:Q,onRate:Te=>ee(xe.id,Te),onSetTags:Te=>{te(xe.id,Te);for(const Ce of Te)Q.includes(Ce)||U(Ce)},onComment:Te=>J(xe.id,Te),onRemove:()=>ae(xe.id),onComplete:S?void 0:()=>pe(xe.id),onPrevious:Pe,onNext:Ye,onClose:()=>h(null)})]})]})}function srs({datasetId:e,onAddItemClick:t,onNavigateToDataset:n}){const{navigate:r}=yn(),[s,a]=va(),{tab:i,activeVersion:l,handleTabChange:c}=qTe(s,a),[u,d]=g.useState(!1),[f,p]=g.useState(!1),[h,m]=g.useState(!1),[v,y]=g.useState([]),[b,S]=g.useState(!1),[w,k]=g.useState([]),[_,C]=g.useState(!1),[E,j]=g.useState([]),[T,I]=g.useState(0),[A,P]=g.useState(null),[L,D]=g.useState(""),[q]=twe(L,300),{data:H}=Wx(e),{data:z=[],total:B,isLoading:V,setEndOfListElement:M,isFetchingNextPage:Q,hasNextPage:U}=E1(e,q||void 0,l),{total:$}=E1(e,void 0,l),[F,Z]=g.useState({}),{data:X,isLoading:te}=rD(e,void 0,F),{data:ee}=rD(e),{deleteItems:J}=Ei(),ae=X?.experiments??[],pe=ee?.experiments??[],Y=ans({hasSearchQuery:!!q,filteredItemsLength:z.length,unfilteredItemsTotal:$,itemsTotal:B}),{data:ne}=HTe(e),ue=ne?.length??0,fe=se=>{P(se)},oe=()=>{P(null)},me=se=>{y(se),m(!0)},be=se=>{k(se),S(!0)},we=se=>{S(se),se||(k([]),I(he=>he+1))},je=se=>{r(`/datasets/${e}/items?items=${se.join(",")}`)},ke=se=>{r(`/datasets/${e}/versions?ids=${se.join(",")}`)},Ae=se=>{j(se),C(!0)},Fe=async()=>{await J.mutateAsync({datasetId:e,itemIds:E}),De.success(`Deleted ${E.length} items`),C(!1),j([]),I(se=>se+1)},le=se=>{m(!1),y([]),I(he=>he+1),n?.(se)},re=se=>{m(se),se||(y([]),I(he=>he+1))};return o.jsxs(o.Fragment,{children:[o.jsxs(Ac,{defaultTab:"items",value:i,onValueChange:c,className:"grid grid-rows-[auto_1fr] h-full",children:[o.jsxs(Ic,{children:[o.jsxs(Ar,{value:"items",children:["Items ",o.jsx(ea,{color:"gray",children:Y})]}),o.jsxs(Ar,{value:"experiments",children:["Experiments",o.jsx(ea,{color:"gray",children:ae.length})]}),o.jsxs(Ar,{value:"review",children:["Review",ue>0&&o.jsx(ea,{color:"orange",children:ue})]})]}),o.jsx(Xr,{value:"items",className:"grid overflow-auto mt-5 pb-0",children:o.jsx(Xns,{datasetId:e,items:z,isLoading:V,featuredItemId:A,onItemSelect:fe,onItemClose:oe,onAddClick:t??(()=>{}),onImportClick:()=>d(!0),onImportJsonClick:()=>p(!0),onBulkDeleteClick:Ae,onCreateDatasetClick:me,onAddToDatasetClick:be,onCompareItemsClick:je,datasetName:H?.name,clearSelectionTrigger:T,setEndOfListElement:M,isFetchingNextPage:Q,hasNextPage:U,searchQuery:L,activeSearchQuery:q,onSearchChange:D,currentDatasetVersion:H?.version,onCompareVersionsClick:ke})}),o.jsx(Xr,{value:"experiments",className:"grid overflow-auto mt-5 pb-0",children:o.jsx(Sns,{experiments:ae,allExperiments:pe,isLoading:te,datasetId:e,filters:F,onFiltersChange:Z})}),o.jsx(Xr,{value:"review",className:"overflow-auto mt-2 pb-0",children:o.jsx(tFt,{datasetId:e})})]}),o.jsx(hns,{datasetId:e,open:u,onOpenChange:d}),o.jsx(trs,{datasetId:e,open:f,onOpenChange:p}),o.jsx(Vts,{open:h,onOpenChange:re,items:v,onSuccess:le}),o.jsx(Hts,{open:b,onOpenChange:we,items:w,currentDatasetId:e}),o.jsx(It,{open:_,onOpenChange:C,children:o.jsxs(It.Content,{children:[o.jsxs(It.Header,{children:[o.jsx(It.Title,{children:"Delete Items"}),o.jsxs(It.Description,{children:["Are you sure you want to delete ",E.length," item",E.length!==1?"s":"","? This action cannot be undone."]})]}),o.jsxs(It.Footer,{children:[o.jsx(It.Cancel,{children:"Cancel"}),o.jsx(It.Action,{onClick:Fe,children:J.isPending?"Deleting...":"Delete"})]})]})})]})}function ars(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 bse({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-xs text-destructive",children:[o.jsxs("code",{className:"bg-destructive/10 px-1 rounded",children:[e,n.path!=="/"?n.path:""]}),": ",n.message]},r))}):null}function irs({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(""),[m,v]=g.useState(null),{addItem:y}=Ei(),b=async C=>{C.preventDefault();let E;try{E=JSON.parse(s)}catch{De.error("Input must be valid JSON");return}let j;if(i.trim())try{j=JSON.parse(i)}catch{De.error("Ground Truth must be valid JSON");return}let T;if(c.trim())try{T=JSON.parse(c)}catch{De.error("Expected Trajectory must be valid JSON");return}let I;if(d.trim())try{const P=JSON.parse(d);if(!Array.isArray(P)){De.error("Tool Mocks must be a JSON array");return}I=P}catch{De.error("Tool Mocks must be valid JSON");return}let A;if(p.trim())try{A=JSON.parse(p)}catch{De.error("Request Context must be valid JSON");return}try{await y.mutateAsync({datasetId:e,input:E,groundTruth:j,expectedTrajectory:T,toolMocks:I,requestContext:A}),De.success("Item added successfully"),v(null),a("{}"),l(""),u(""),f(""),h(""),n(!1),r?.()}catch(P){const L=ars(P);L?v(L):De.error(`Failed to add item: ${P instanceof Error?P.message:"Unknown error"}`)}},S=C=>{a(C),m?.field==="input"&&v(null)},w=C=>{l(C),m?.field==="groundTruth"&&v(null)},k=C=>{f(C),m?.field==="toolMocks"&&v(null)},_=()=>{a("{}"),l(""),u(""),f(""),h(""),v(null),n(!1)};return o.jsx(br,{open:t,onOpenChange:n,children:o.jsxs(xr,{className:"max-w-lg",children:[o.jsx(wr,{children:o.jsx(gr,{children:"Add Item"})}),o.jsx($r,{children:o.jsxs("form",{onSubmit:b,className:"space-y-4",children:[o.jsxs("div",{className:"space-y-2",children:[o.jsx($t,{htmlFor:"item-input",children:"Input (JSON) *"}),o.jsx(Yr,{value:s,onChange:S,showCopyButton:!1,className:"min-h-[120px]"}),m?.field==="input"&&o.jsx(bse,{field:"input",errors:m.errors})]}),o.jsxs("div",{className:"space-y-2",children:[o.jsx($t,{htmlFor:"item-ground-truth",children:"Ground Truth (JSON, optional)"}),o.jsx(Yr,{value:i,onChange:w,showCopyButton:!1,className:"min-h-[80px]"}),m?.field==="groundTruth"&&o.jsx(bse,{field:"groundTruth",errors:m.errors})]}),o.jsxs("div",{className:"space-y-2",children:[o.jsx($t,{htmlFor:"item-trajectory",children:"Expected Trajectory (JSON, optional)"}),o.jsx(Yr,{value:c,onChange:u,showCopyButton:!1,className:"min-h-[80px]"})]}),o.jsxs("div",{className:"space-y-2",children:[o.jsx($t,{htmlFor:"item-tool-mocks",children:"Tool Mocks (JSON array, optional)"}),o.jsx(Yr,{value:d,onChange:k,showCopyButton:!1,className:"min-h-[80px]"}),m?.field==="toolMocks"&&o.jsx(bse,{field:"toolMocks",errors:m.errors})]}),o.jsxs("div",{className:"space-y-2",children:[o.jsx($t,{htmlFor:"item-request-context",children:"Request Context (JSON, optional)"}),o.jsx(Yr,{value:p,onChange:h,showCopyButton:!1,className:"min-h-[80px]"})]}),o.jsxs("div",{className:"flex justify-end gap-2 pt-4",children:[o.jsx(ce,{type:"button",onClick:_,children:"Cancel"}),o.jsx(ce,{type:"submit",variant:"primary",disabled:y.isPending,children:y.isPending?"Adding...":"Add Item"})]})]})})]})})}function ors({item:e}){return o.jsx(fa,{withMargins:!1,children:o.jsxs(fa.Column,{children:[o.jsxs(fa.Title,{size:"smaller",children:[o.jsx(xN,{}),o.jsx("span",{className:"truncate",children:e.id}),o.jsx(Oa,{content:e.id,tooltip:`Copy item ID: ${e.id}`})]}),o.jsxs(fa.Description,{children:[o.jsxs(Al,{children:[o.jsx(Rct,{})," Created ",tr(new Date(e.createdAt),"MMM d, yyyy h:mm aaa")]}),e.datasetVersion!=null&&o.jsxs(Al,{children:[o.jsx(d_,{})," Version v",e.datasetVersion]})]})]})})}function WTe({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(pTe,{children:[o.jsx(Ps.CodeSection,{title:"Input",icon:o.jsx(uO,{}),codeStr:t}),o.jsx(Ps.CodeSection,{title:"Ground Truth",icon:o.jsx(bg,{}),codeStr:n}),s&&o.jsx(Ps.CodeSection,{title:"Expected Trajectory",icon:o.jsx(Pbe,{}),codeStr:s}),o.jsx(Ps.CodeSection,{title:"Metadata",icon:o.jsx(kN,{}),codeStr:r})]})}function lrs({selectedScorers:e,setSelectedScorers:t,disabled:n=!1,container:r}){const{data:s,isLoading:a}=ah(),i=g.useMemo(()=>s?Object.entries(s).map(([l,c])=>({value:l,label:c.scorer?.config?.name||l,description:c.scorer?.config?.description||""})):[],[s]);return o.jsxs("div",{className:"grid gap-2",children:[o.jsx($t,{children:"Scorers (Optional)"}),o.jsx(tc,{multiple:!0,options:i,value:e,onValueChange:t,placeholder:"Select scorers...",searchPlaceholder:"Search scorers...",emptyText:"No scorers available",disabled:n||a,container:r})]})}const crs=[{value:"agent",label:"Agent"},{value:"workflow",label:"Workflow"},{value:"scorer",label:"Scorer"}];function urs({targetType:e,setTargetType:t,targetId:n,setTargetId:r,container:s}){const{data:a,isLoading:i}=Om(),{data:l,isLoading:c}=Fy(),{data:u,isLoading:d}=ah(),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(tc,{options:crs,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(tc,{options:f,value:n,onValueChange:r,placeholder:`Select ${e}`,searchPlaceholder:"Search...",emptyText:"No targets available",disabled:p,container:s})]})]})}function drs({requestContextSchema:e,onChange:t}){const n=g.useMemo(()=>{try{return um(lm(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(l3,{schema:n,onValuesChange:t,className:"[&_button[type=submit]]:hidden"})]}):o.jsx("p",{className:"text-sm text-destructive",children:"Failed to parse request context schema"})}function frs({datasetId:e,version:t,requestContextSchema:n,open:r,onOpenChange:s,onSuccess:a}){const i=g.useRef(null),[l,c]=g.useState(""),[u,d]=g.useState(""),[f,p]=g.useState([]),[h,m]=g.useState({}),[v,y]=g.useState(""),{triggerExperiment:b}=Ei(),S=!!(n&&Object.keys(n).length>0),w=l&&u,k=b.isPending,_=()=>{c(""),d(""),p([]),m({}),y("")},C=()=>{if(S){const T=Object.entries(h).filter(([,I])=>I!==void 0&&I!=="");return T.length>0?Object.fromEntries(T):void 0}if(v.trim()){let T;try{T=JSON.parse(v)}catch{throw new Error("Request Context must be valid JSON")}if(!T||typeof T!="object"||Array.isArray(T))throw new Error("Request Context must be a JSON object");return T}},E=async()=>{if(!w)return;let T;try{T=C()}catch(I){const A=I instanceof Error?I.message:"Request Context must be valid JSON";su.error(A);return}try{const I=await b.mutateAsync({datasetId:e,targetType:l,targetId:u,scorerIds:f.length>0?f:void 0,version:t,requestContext:T});su.success("Experiment triggered successfully"),s(!1),a?.(I.experimentId),_()}catch(I){const A=I instanceof Error?I.message:"Failed to trigger experiment";su.error(A)}},j=()=>{k||(s(!1),_())};return o.jsx(br,{open:r,onOpenChange:j,children:o.jsxs(xr,{ref:i,children:[o.jsxs(wr,{children:[o.jsx(gr,{children:"Run Experiment"}),o.jsx(Xs,{children:t?`Execute items from ${tr(new Date(t),"MMM d, yyyy")} version against a target.`:"Execute all items in this dataset against a target."})]}),o.jsxs($r,{className:"grid gap-6",children:[o.jsx(urs,{targetType:l,setTargetType:c,targetId:u,setTargetId:d,container:i}),l&&l!=="scorer"&&o.jsx(lrs,{selectedScorers:f,setSelectedScorers:p,disabled:k,container:i}),S?o.jsx(drs,{requestContextSchema:n,onChange:m}):o.jsxs("div",{className:"space-y-2",children:[o.jsx($t,{children:"Request Context (JSON, optional)"}),o.jsx(Yr,{value:v,onChange:y,showCopyButton:!1,className:"min-h-[80px]"})]})]}),o.jsxs(Cc,{className:"px-6 pt-4",children:[o.jsx(ce,{onClick:j,disabled:k,children:"Cancel"}),o.jsx(ce,{variant:"primary",onClick:E,disabled:!w||k,children:k?o.jsxs(o.Fragment,{children:[o.jsx(Qt,{className:"w-4 h-4"}),"Running..."]}):"Run"})]})]})})}const prs=e=>{const t=We();return St({queryKey:["experiment-trace-light",e],queryFn:async()=>{if(!e)throw new Error("Trace ID is required");return t.getTraceLight(e)},enabled:!!e})},ZTe=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 xse(e){try{return JSON.stringify(e??{})}catch{return String(e)}}function hrs({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(bn.SectionHeading,{icon:o.jsx(Fp,{}),className:"mb-2",children:"Tool Mocks"}),s&&o.jsx(In,{variant:"destructive",title:"Mock mismatch",children:o.jsxs(In.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: ",xse(s.args)]}),n.length>0&&o.jsxs("span",{className:"mt-1 block font-mono text-xs",children:["Unconsumed mocks: ",n.map(i=>xse(i.args)).join(", ")]})]})}),o.jsx("div",{className:"rounded border border-border1 divide-y divide-border1 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:"font-mono text-neutral4",children:i.toolName}),o.jsx("span",{className:"ml-2 font-mono text-xs text-neutral3",children:xse(i.args)})]}),o.jsx("span",{className:`shrink-0 text-xs px-2 py-0.5 rounded ${mrs(i.outcome)}`,children:i.outcome})]},`${i.outcome}-${i.toolName}-${l}`))})]})}function mrs(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 grs({result:e,scores:t,onPrevious:n,onNext:r,onClose:s,onShowTrace:a,onOpenInReview:i,onScoreClick:l,featuredScoreId:c,onFlagForReview:u,collapsed:d,onCollapsedChange:f}){const[p,h]=g.useState(!1),m=d??p,v=f??h,y=!!e?.error,b=az(e?.input),S=az(e?.output),w=az(e?.groundTruth),k=u&&e.status!=="needs-review"&&e.status!=="complete",_=Array.isArray(e.tags)?e.tags:[];return o.jsxs(bn,{collapsed:m,children:[o.jsxs(bn.Header,{children:[o.jsxs(bn.Heading,{children:["Result ",o.jsxs("b",{children:["# ",e.id.length>12?`${e.id.slice(0,12)}…`:e.id]})]}),o.jsxs(Dr,{className:"ml-auto shrink-0",children:[f&&o.jsx(ce,{size:"md",tooltip:m?"Expand panel":"Collapse panel",onClick:()=>v(!m),children:m?o.jsx(Dct,{}):o.jsx(Mct,{})}),o.jsx(bn.NextPrevNav,{onPrevious:n,onNext:r,previousLabel:"Previous result",nextLabel:"Next result"}),o.jsxs(ce,{size:"md",onClick:a,disabled:!e.traceId,children:[o.jsx(ZTe,{}),"Trace"]}),o.jsx(bn.CloseButton,{onClick:s,tooltip:"Close result panel"})]})]}),!m&&o.jsxs(bn.Content,{children:[o.jsxs("div",{className:"grid gap-4 mb-6",children:[o.jsxs(qt,{children:[o.jsx(qt.Key,{children:"Item Id"}),o.jsx(qt.ValueWithCopyBtn,{copyTooltip:"Copy Item Id to clipboard",copyValue:e.itemId,children:e.itemId}),o.jsx(qt.Key,{children:"Created"}),o.jsx(qt.Value,{children:tr(new Date(e.createdAt),"MMM d, yyyy 'at' h:mm a")})]}),y&&o.jsx(In,{variant:"destructive",title:"Error",children:o.jsx(In.Message,{children:az(e?.error&&typeof e.error=="object"?e.error.message:e?.error)})}),t&&t.length>0&&o.jsxs(ve,{columns:"1fr 1fr",children:[o.jsxs(ve.Top,{children:[o.jsx(ve.TopCell,{children:"Scorer"}),o.jsx(ve.TopCell,{children:"Score"})]}),t.map(C=>o.jsxs(ve.RowButton,{featured:c===C.id,onClick:()=>l?.(C.id),children:[o.jsx(ve.Cell,{height:"compact",children:C.scorerId}),o.jsx(ve.MonoCell,{children:C.score.toFixed(3)})]},C.id))]}),e.toolMockReport&&o.jsx(hrs,{report:e.toolMockReport}),(e.status||_.length>0||k)&&o.jsxs("div",{className:"grid gap-2",children:[o.jsx(bn.SectionHeading,{icon:o.jsx(kN,{}),className:"mb-2",children:"Review"}),(e.status||_.length>0)&&o.jsxs("div",{className:"flex flex-wrap gap-2 items-center",children:[e.status&&o.jsx("span",{className:`text-xs px-2 py-0.5 rounded-full 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}),_.map(C=>o.jsx("span",{className:"text-xs px-2 py-0.5 rounded bg-surface4 text-neutral4",children:C},C))]}),k&&o.jsx("div",{children:o.jsxs(ce,{size:"sm",onClick:()=>u(e.id),children:[o.jsx(bq,{}),"Flag for Review"]})}),e.status==="needs-review"&&i&&o.jsx("div",{children:o.jsxs(ce,{size:"sm",onClick:i,children:[o.jsx(_a,{}),"Review"]})})]})]}),o.jsxs("div",{className:"grid gap-3",children:[o.jsx(bn.CodeSection,{title:"Input",icon:o.jsx(xN,{}),codeStr:b}),o.jsx(bn.CodeSection,{title:"Output",icon:o.jsx(bg,{}),codeStr:S}),o.jsx(bn.CodeSection,{title:"Ground Truth",icon:o.jsx(Mbe,{}),codeStr:w})]})]})]})}function az(e){return e==null?"-":typeof e=="string"?e:JSON.stringify(e,null,2)}function vrs({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 p=!!(d&&f),h=[p?"auto":"",...s.map(v=>v.size)].filter(Boolean).join(" "),m=s.some(v=>v.name==="input");return t?o.jsx(rl,{columns:h}):o.jsxs(ve,{columns:h,className:"min-w-0",children:[o.jsxs(ve.Top,{hasLeadingCell:p,children:[p&&o.jsx(ve.TopCell,{children:" "}),p?o.jsx(ve.TopCells,{colStart:2,children:s.map(v=>o.jsx(ve.TopCell,{children:v.label},v.name))}):s.map(v=>o.jsx(ve.TopCell,{children:v.label},v.name))]}),e.length===0?o.jsx(ve.NoMatch,{message:"No results yet"}):o.jsxs(o.Fragment,{children:[e.map(v=>{const y=!!v.error,b=v.id===n,S=o.jsxs(o.Fragment,{children:[o.jsx(ve.IdCell,{id:v.itemId}),o.jsx(ve.Cell,{height:"compact",children:o.jsxs(Un,{children:[o.jsx(Dn,{asChild:!0,children:o.jsx("div",{className:"flex items-center justify-center w-10 relative bg-transparent h-full",children:o.jsx("div",{role:"img","aria-label":y?"Error":"Success",className:K("w-2 h-2 rounded-full",y?"bg-red-700":"bg-green-600")})})}),o.jsx(Ln,{children:y?"Error":"Success"})]})}),m&&o.jsx(ve.MonoCell,{children:brs(yrs(v.input),200)}),i?.map(w=>{const _=a?.[v.itemId]?.find(C=>C.scorerId===w);return o.jsx(ve.Cell,{height:"compact",className:"font-mono text-neutral3 text-ui-smd",children:_!=null?_.score.toFixed(3):"-"},w)})]});return p?o.jsxs(ve.RowWrapper,{children:[o.jsx(ve.SelectCell,{checked:d.has(v.id),onToggle:()=>f(v.id),"aria-label":`Select result ${v.itemId}`}),o.jsx(ve.RowButton,{flushLeft:!0,colStart:2,featured:b,onClick:()=>r(v.id),children:S})]},v.id):o.jsx(ve.RowButton,{featured:b,onClick:()=>r(v.id),children:S},v.id)}),o.jsx(ve.NextPageLoading,{isLoading:c,hasMore:u,setEndOfListElement:l})]})]})}function yrs(e){return e==null?"-":typeof e=="string"?e:JSON.stringify(e,null,2)}function brs(e,t){return e.length<=t?e:e.slice(0,t-1)+"..."}function xrs(e){const t=e.scorer;return t?.hasJudge===!1?!0:t?.hasJudge===!0?!1:!e.preprocessPrompt&&!e.analyzePrompt&&!e.generateScorePrompt&&!e.generateReasonPrompt}function wrs({score:e,onNext:t,onPrevious:n,onClose:r,onShowTrace:s,collapsed:a,onCollapsedChange:i}){const[l,c]=g.useState(!1),u=a??l,d=i??c,f=xrs(e),p=f?"N/A — code-based scorer":"N/A — step not configured";return o.jsxs(bn,{collapsed:u,children:[o.jsxs(bn.Header,{children:[o.jsxs(bn.Heading,{children:["Score ",o.jsx("b",{children:e.scorerId})]}),o.jsxs(Dr,{className:"ml-auto shrink-0",children:[i&&o.jsx(ce,{size:"md",tooltip:u?"Expand panel":"Collapse panel",onClick:()=>d(!u),children:u?o.jsx(Dct,{}):o.jsx(Mct,{})}),(n||t)&&o.jsx(bn.NextPrevNav,{onPrevious:n,onNext:t,previousLabel:"Previous score",nextLabel:"Next score"}),s&&o.jsxs(ce,{size:"md",onClick:s,disabled:!e.traceId,children:[o.jsx(ZTe,{}),"Trace"]}),o.jsx(bn.CloseButton,{onClick:r,tooltip:"Close score panel"})]})]}),!u&&o.jsx(bn.Content,{children:o.jsxs("div",{className:"grid gap-3",children:[o.jsx(bn.CodeSection,{title:`Score: ${e.score}`,icon:o.jsx(sm,{}),codeStr:e.reason||p,simplified:!0}),!f&&o.jsxs(o.Fragment,{children:[o.jsx(bn.CodeSection,{title:"Preprocess Prompt",icon:o.jsx(kh,{}),codeStr:e.preprocessPrompt||p,simplified:!0}),o.jsx(bn.CodeSection,{title:"Analyze Prompt",icon:o.jsx(kh,{}),codeStr:e.analyzePrompt||p,simplified:!0}),o.jsx(bn.CodeSection,{title:"Generate Score Prompt",icon:o.jsx(kh,{}),codeStr:e.generateScorePrompt||p,simplified:!0}),o.jsx(bn.CodeSection,{title:"Generate Reason Prompt",icon:o.jsx(kh,{}),codeStr:e.generateReasonPrompt||p,simplified:!0})]})]})})]})}const wYe=[{name:"scorer",label:"Scorer",size:"1fr"},{name:"avg",label:"Avg Score",size:"1fr"},{name:"count",label:"Items Scored",size:"1fr"}];function Srs({scoresByItemId:e,experimentStatus:t}){const n=g.useMemo(()=>{if(!e)return[];const r={};for(const s of Object.values(e))for(const a of s)r[a.scorerId]||(r[a.scorerId]={sum:0,count:0}),r[a.scorerId].sum+=a.score,r[a.scorerId].count++;return Object.entries(r).map(([s,{sum:a,count:i}])=>({scorerId:s,avg:a/i,count:i})).sort((s,a)=>s.scorerId.localeCompare(a.scorerId))},[e]);if(n.length===0){const r=t==="running"||t==="pending",s=e!==void 0;let a,i;return r?(a="Experiment in progress",i="Summary metrics will appear here once the experiment completes."):s?(a="No scorers configured",i="Add scorers when triggering an experiment to evaluate results and see summary metrics here."):(a="Loading scores",i="Fetching scorer results…"),o.jsx("div",{className:"flex h-full items-center justify-center py-12",children:o.jsx(Cr,{iconSlot:o.jsx(sm,{className:"w-8 h-8 text-neutral3"}),titleSlot:a,descriptionSlot:i})})}return o.jsxs(gn,{children:[o.jsxs(gn.Header,{columns:wYe,children:[o.jsx(gn.HeaderCol,{children:"Scorer"}),o.jsx(gn.HeaderCol,{children:"Avg Score"}),o.jsx(gn.HeaderCol,{children:"Items Scored"})]}),o.jsx(gn.Scroller,{children:o.jsx(gn.Items,{children:n.map(({scorerId:r,avg:s,count:a})=>o.jsxs(gn.Row,{columns:wYe,children:[o.jsx(gn.TextCell,{children:r}),o.jsx(gn.TextCell,{className:"font-mono",children:s.toFixed(3)}),o.jsx(gn.TextCell,{className:"font-mono",children:a})]},r))})})]})}function nFt({experimentId:e,datasetId:t,experimentStatus:n,results:r,isLoading:s,setEndOfListElement:a,isFetchingNextPage:i,hasNextPage:l}){const[c,u]=g.useState(null),[d,f]=g.useState(null),[p,h]=g.useState(void 0),[m,v]=g.useState(null),[y,b]=g.useState(new Set),[S,w]=g.useState(!1),[k,_]=g.useState(!1),[C,E]=g.useState(!1),[j,T]=g.useState(!1),{updateExperimentResult:I}=Ei(),A=g.useCallback(re=>{b(se=>{const he=new Set(se);return he.has(re)?he.delete(re):he.add(re),he})},[]),P=g.useCallback(()=>b(new Set),[]),L=g.useCallback(()=>{const re=r.filter(se=>!!se.error).map(se=>se.id);b(new Set(re))},[r]),D=g.useCallback(async re=>{if(S||re.length===0)return;w(!0);let se=0;const he=new Set;try{for(const xe of re)try{await I.mutateAsync({datasetId:t,experimentId:e,resultId:xe,status:"needs-review"}),se++,he.add(xe)}catch{}}finally{w(!1)}he.size>0&&b(xe=>{const Ne=new Set(xe);for(const Pe of he)Ne.delete(Pe);return Ne}),se>0&&De(`${se} result${se>1?"s":""} flagged for review`)},[t,e,S,I]),q=r.find(re=>re.id===c)??null,[H,z]=g.useState("summary"),[B,V]=g.useState(null),M=re=>{z(re),re!=="reviews"&&V(null)},{data:Q}=HTe(t),U=(Q??[]).filter(re=>re.experimentId===e).length,{data:$}=Czt(e,n),F=g.useMemo(()=>{if(!$)return[];const re=new Set;for(const se of Object.values($))for(const he of se)re.add(he.scorerId);return[...re].sort()},[$]),Z=re=>{u(re),f(null),h(void 0),v(null)},X=re=>{Z(re===c?null:re)},te=()=>{Z(null)},ee=()=>{if(!q)return;const re=r.findIndex(se=>se.id===q.id);if(re>=0&&re<r.length-1)return()=>Z(r[re+1].id)},J=()=>{if(!q)return;const re=r.findIndex(se=>se.id===q.id);if(re>0)return()=>Z(r[re-1].id)},ae=q?$?.[q.itemId]:void 0,pe=ae?.find(re=>re.id===m)??null,Y=re=>{v(re===m?null:re),f(null),h(void 0)},ne=()=>{if(!m||!ae)return;const re=ae.findIndex(se=>se.id===m);if(re>=0&&re<ae.length-1)return()=>v(ae[re+1].id)},ue=()=>{if(!m||!ae)return;const re=ae.findIndex(se=>se.id===m);if(re>0)return()=>v(ae[re-1].id)},{data:fe,isLoading:oe}=prs(d),me=fe?.spans,{data:be,isLoading:we}=ZN(d,p),je=be?.span,{handlePreviousSpan:ke,handleNextSpan:Ae}=gH(me,p??null,h),Fe=(()=>{const re=[],se=!!pe,he=!!d;return re.push(k?"auto":se||he?"2fr":"1fr"),se&&re.push(j?"auto":"3fr"),he&&re.push(C?"auto":"3fr"),he&&p&&re.push("3fr"),re.join(" ")})(),le=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(re=>({name:re,label:re,size:"12rem"}))],[F]);return o.jsxs(Ac,{defaultTab:"summary",value:H,onValueChange:M,className:"grid grid-rows-[auto_1fr] h-full overflow-hidden",children:[o.jsxs(Ic,{children:[o.jsx(Ar,{value:"summary",children:"Summary"}),o.jsx(Ar,{value:"results",children:"Results"}),o.jsxs(Ar,{value:"reviews",children:["Reviews",U>0&&o.jsx(ea,{color:"orange",children:U})]})]}),o.jsx(Xr,{value:"summary",className:"overflow-y-auto mt-5",children:o.jsx(Srs,{scoresByItemId:$,experimentStatus:n})}),o.jsx(Xr,{value:"reviews",className:"overflow-auto mt-2 pb-0",children:o.jsx(tFt,{datasetId:t,experimentId:e,featuredItemId:B})}),o.jsxs(Xr,{value:"results",className:"grid grid-rows-[auto_1fr] overflow-hidden mt-2",children:[o.jsxs("div",{className:"mb-4",children:[y.size>0&&o.jsxs("div",{className:"flex items-center gap-2 px-4 py-2 bg-surface3",children:[o.jsxs(ye,{variant:"ui-xs",className:"text-neutral5 font-medium",children:[y.size," selected"]}),o.jsx("div",{className:"flex-1"}),o.jsxs(ce,{variant:"outline",size:"sm",disabled:S,onClick:()=>D([...y]),children:[o.jsx(Ue,{size:"sm",children:o.jsx(bq,{})}),"Flag for Review"]}),o.jsx(ce,{variant:"ghost",size:"sm",onClick:P,children:"Clear"})]}),r.length>0&&y.size===0&&!s&&o.jsx("div",{className:"flex items-center gap-2 px-4 py-2",children:o.jsx(ce,{variant:"ghost",size:"sm",onClick:L,children:"Select loaded failures"})})]}),o.jsxs("div",{className:K("grid w-full h-full grid-cols-1 gap-4 overflow-y-auto",q&&"grid-cols-[1fr_1fr]"),children:[o.jsx("div",{className:"flex overflow-y-auto w-full",children:o.jsx("div",{className:"grid gap-8 content-start w-full overflow-y-auto",children:o.jsx(vrs,{results:r,isLoading:s,featuredResultId:c,onResultClick:X,columns:le,scoresByItemId:$,scorerIds:F,setEndOfListElement:a,isFetchingNextPage:i,hasNextPage:l,selectedIds:y,onToggleSelect:A})})}),q&&o.jsxs("div",{className:"grid gap-4 max-h-full min-h-0 overflow-auto content-start",style:{gridTemplateRows:Fe},children:[o.jsx(grs,{result:q,scores:ae,onPrevious:J(),onNext:ee(),onClose:te,onScoreClick:Y,featuredScoreId:m,onShowTrace:()=>{q.traceId&&(f(q.traceId),h(void 0),v(null),_(!0),E(!1))},onOpenInReview:()=>{V(q.id),z("reviews")},onFlagForReview:re=>D([re]),collapsed:k,onCollapsedChange:_}),pe&&o.jsx(wrs,{score:pe,onNext:ne(),onPrevious:ue(),onClose:()=>v(null),onShowTrace:()=>{pe.traceId&&(f(pe.traceId),h(void 0),_(!0),T(!0),E(!1))},collapsed:j,onCollapsedChange:T}),d&&o.jsxs(o.Fragment,{children:[o.jsx($Te,{traceId:d,spans:me,isLoading:oe,onClose:()=>{f(null),h(void 0),_(!1),T(!1)},onSpanSelect:h,initialSpanId:p??null,placement:"traces-list",showUnavailableFeaturesMsg:!1,collapsed:C,onCollapsedChange:E,LinkComponent:qD,traceHref:`/traces/${d}`}),p&&o.jsx(hH,{traceId:d,spanId:p,span:je,isLoading:we,onPrevious:ke,onNext:Ae,onClose:()=>h(void 0)})]})]})]})]})]})}const krs={pending:o.jsx(Xj,{}),running:o.jsx(wfe,{}),completed:o.jsx(ra,{}),failed:o.jsx(vs,{})};function Ors({experiment:e,className:t}){const n=e.status,r=e.totalItems-e.succeededCount-e.failedCount;return o.jsxs("div",{className:K("grid justify-items-end gap-3",t),children:[o.jsxs("div",{className:"flex p-1 px-3 text-ui-lg capitalize text-neutral4 gap-2 items-center bg-surface5 rounded-lg ",children:[o.jsx("span",{className:K("w-5 h-5 flex items-center justify-center rounded-full text-black","[&>svg]:w-4 [&>svg]:h-4",{"bg-green-700":n==="completed","bg-red-700":n==="failed","bg-cyan-600":n==="running","bg-yellow-600":n==="pending"}),children:krs[n]}),e.status]}),o.jsxs("div",{className:K("flex items-center gap-3 text-neutral3 text-ui-md ","[&>span]:flex [&>span]:gap-1 [&>span]:items-center ","[&_b]:text-neutral4 [&_b]:font-semibold"),children:[o.jsxs("span",{children:["Total: ",o.jsx("b",{children:e.totalItems})]}),o.jsxs("span",{children:["Succeeded: ",o.jsx("b",{children:e.succeededCount})]}),o.jsxs("span",{children:["Failed: ",o.jsx("b",{children:e.failedCount})]}),(n==="pending"||n==="running")&&o.jsxs("span",{children:["Pending: ",o.jsx("b",{children:r})]})]})]})}function _rs({onPrevious:e,onNext:t,previousAriaLabel:n="Previous",nextAriaLabel:r="Next"}){return o.jsxs(Dr,{spacing:"close",children:[o.jsxs(ce,{onClick:e,disabled:!e,"aria-label":n,children:[o.jsx(sV,{})," Prev"]}),o.jsxs(ce,{onClick:t,disabled:!t,"aria-label":r,children:["Next",o.jsx(VD,{})]})]})}function GTe({delta:e}){const t=e>0?o.jsx(ea,{size:"small",color:"green",intensity:"muted",children:o.jsx(gD,{})}):e<0?o.jsx(ea,{size:"small",color:"red",intensity:"muted",children:o.jsx(gun,{})}):null;return o.jsxs("span",{className:K("font-mono text-sm text-neutral4 min-w-20"),children:[o.jsx("span",{className:"w-3 inline-block",children:e>0?"+ ":e<0?"- ":""}),Math.abs(e).toFixed(2)," ",t]})}function iz(e){return e==null?"-":typeof e=="string"?e:JSON.stringify(e,null,2)}function Crs({item:e,baselineId:t,contenderId:n,baselineVersion:r,contenderVersion:s,onPrevious:a,onNext:i,onClose:l}){const c=e.results[t],u=e.results[n],d=!!(c&&u),f=new Set;if(c)for(const h of Object.keys(c.scores))f.add(h);if(u)for(const h of Object.keys(u.scores))f.add(h);const p=[...f].sort();return o.jsxs(Qr,{withLeftSeparator:!0,children:[o.jsxs(Qr.Toolbar,{children:[o.jsx(_rs,{onPrevious:a,onNext:i,previousAriaLabel:"Previous comparison item",nextAriaLabel:"Next comparison item"}),o.jsx(Dr,{children:o.jsx(ce,{onClick:l,"aria-label":"Close comparison detail panel",children:o.jsx(vs,{})})})]}),o.jsxs(Qr.Content,{className:"pb-6",children:[o.jsx(fa,{withMargins:!1,children:o.jsx(fa.Column,{children:o.jsxs(fa.Title,{size:"smaller",children:[o.jsx(xN,{})," ",e.itemId]})})}),d?o.jsx(o.Fragment,{children:o.jsxs(pTe,{children:[p.length>0&&o.jsxs("div",{className:"grid gap-3",children:[o.jsx("h4",{className:"text-sm font-medium text-neutral5",children:"Scores"}),o.jsx("div",{className:"grid gap-2",children:p.map(h=>{const m=c?.scores[h]??null,v=u?.scores[h]??null,y=m!=null&&v!=null?v-m:null;return o.jsxs("div",{className:"flex items-center justify-between gap-4 px-3 py-2 rounded-lg bg-surface2",children:[o.jsx("span",{className:"text-sm text-neutral5 font-medium",children:h}),o.jsxs("div",{className:"flex items-center gap-4",children:[o.jsxs("span",{className:"text-sm text-neutral3",children:[m!=null?m.toFixed(3):"-"," →"," ",v!=null?v.toFixed(3):"-"]}),y!=null&&o.jsx(GTe,{delta:y})]})]},h)})})]}),o.jsx(Ps.CodeSection,{title:o.jsxs(o.Fragment,{children:[o.jsx(ea,{color:"purple",children:"Baseline "})," Experiment Output"]}),icon:o.jsx(bg,{}),codeStr:iz(c?.output)}),o.jsx(Ps.CodeSection,{title:o.jsxs(o.Fragment,{children:[o.jsx(ea,{color:"cyan",children:"Contender "})," Experiment Output"]}),icon:o.jsx(bg,{}),codeStr:iz(u?.output)}),o.jsx(Ps.CodeSection,{title:"Item Input",icon:o.jsx(uO,{}),codeStr:iz(e.input)}),o.jsx(Ps.CodeSection,{title:"Item Ground Truth",icon:o.jsx(Mbe,{}),codeStr:iz(e.groundTruth)})]})}):o.jsx(In,{variant:"warning",title:"Comparison not available",children:o.jsx(In.Message,{children:(()=>{const h=c?"Contender":"Baseline",m=c?s:r;return o.jsxs(o.Fragment,{children:["The ",h," experiment was run against dataset",m!=null?` v. ${m}`:"",", which does not contain this item."]})})()})})]})]})}function Ers({items:e,baselineId:t,contenderId:n,scorerIds:r,featuredItemId:s,columns:a,onItemClick:i}){return o.jsx(Qr,{children:o.jsxs(gn,{children:[o.jsxs(gn.Header,{columns:a,children:[o.jsx(gn.HeaderCol,{children:"Item ID"}),!s&&r.map(l=>o.jsx(gn.HeaderCol,{className:"flex justify-center",children:l},l))]}),o.jsx(gn.Scroller,{children:o.jsx(gn.Items,{children:e.map(l=>{const c=l.results[t],u=l.results[n],d=!!(c&&u);return o.jsx(gn.Row,{children:o.jsxs(gn.RowButton,{item:{id:l.itemId},columns:a,isFeatured:s===l.itemId,onClick:i,children:[o.jsx(gn.IdCell,{id:l.itemId,className:d?"":"text-neutral1"}),!s&&o.jsx(o.Fragment,{children:r.map(f=>{const p=c?.scores[f]??null,h=u?.scores[f]??null,m=p!=null&&h!=null?h-p:null;return o.jsx(gn.Cell,{className:"flex items-center gap-5 justify-center font-mono",children:m!=null?o.jsxs(o.Fragment,{children:[o.jsxs("span",{className:"flex items-center text-neutral2 min-w-24",children:[p?.toFixed(2)," → ",h?.toFixed(2)]}),o.jsx(GTe,{delta:m})]}):o.jsx("span",{className:"text-neutral1",children:"-"})},f)})})]})},l.itemId)})})})]})})}const jrs={baseline:{label:"Baseline",color:"purple",customStyle:"items-end justify-items-end [&>div]:justify-end border-r-0 rounded-r-none"},contender:{label:"Contender",color:"cyan",customStyle:"items-start justify-items-start [&>div]:justify-start border-l-0 rounded-l-none"}};function SYe({datasetId:e,experiment:t,type:n}){const{Link:r}=yn(),{label:s,color:a,customStyle:i}=jrs[n];if(!t)return null;const l=t.createdAt?new Date(t.createdAt):null;return o.jsxs("div",{className:`grid border-2 border-border1 rounded-lg p-5 gap-3 ${i}`,children:[o.jsxs("div",{className:"flex items-center gap-3 w-full overflow-clip",children:[n==="contender"&&o.jsxs(ea,{size:"small",color:a,children:[s,o.jsx(vm,{})]}),o.jsx(ce,{as:r,href:`/datasets/${e}/experiments/${t.id}`,children:o.jsx("span",{className:"truncate min-w-0",children:t.id})}),n==="baseline"&&o.jsxs(ea,{size:"small",color:a,children:[o.jsx(Nc,{})," ",s]})]}),o.jsxs("div",{className:"flex flex-wrap gap-x-4 gap-y-1 text-ui-sm text-neutral3",children:[o.jsxs(Al,{children:[o.jsx(Mbe,{})," ",t.targetType," / ",t.targetId]}),o.jsxs(Al,{children:[o.jsx(Sq,{})," v",t.datasetVersion??"—"]}),l&&o.jsxs(Al,{children:[o.jsx(Pct,{})," ",tr(l,"MMM d, yyyy HH:mm")]})]})]})}function Trs({datasetId:e,experimentIdA:t,experimentIdB:n,onSwap:r}){const[s,a]=g.useState(null),{data:i,isLoading:l,error:c}=vts(e,t,n),{data:u}=GU(e,t),{data:d}=GU(e,n),f=u&&d&&u.datasetVersion!==d.datasetVersion,p=g.useMemo(()=>{if(!i)return[];const E=new Set;for(const j of i.items)for(const T of Object.values(j.results))if(T)for(const I of Object.keys(T.scores))E.add(I);return[...E].sort()},[i]),h=g.useMemo(()=>{if(!i||p.length===0)return[];const E=i.baselineId,j=t===E?n:t;return p.map(T=>{let I=0,A=0,P=0,L=0;for(const z of i.items){const B=z.results[E]?.scores[T],V=z.results[j]?.scores[T];B!=null&&(I+=B,P++),V!=null&&(A+=V,L++)}const D=P>0?I/P:null,q=L>0?A/L:null,H=D!=null&&q!=null?q-D:null;return{scorerId:T,avgA:D,avgB:q,delta:H}})},[i,p,t,n]),m=[{name:"scorer",label:"Scorer",size:"1fr"},{name:"baselineAvg",label:"Baseline Avg",size:"1fr"},{name:"comparisonAvg",label:"Comparison Avg",size:"1fr"},{name:"delta",label:"Delta",size:"1fr"}],v=g.useMemo(()=>[{name:"itemId",label:"Item ID",size:"8rem"},...s?[]:p.map(E=>({name:E,label:E,size:"1fr"}))],[p,s]),y=i?.items.find(E=>E.itemId===s)??null,b=E=>{a(E===s?null:E)},S=()=>{a(null)},w=()=>{if(!i||!s)return;const E=i.items.findIndex(j=>j.itemId===s);if(E>=0&&E<i.items.length-1)return()=>a(i.items[E+1].itemId)},k=()=>{if(!i||!s)return;const E=i.items.findIndex(j=>j.itemId===s);if(E>0)return()=>a(i.items[E-1].itemId)};if(l)return o.jsx("div",{className:"flex items-center justify-center h-64",children:o.jsx(Qt,{})});if(c)return o.jsx(In,{variant:"warning",title:"Error loading comparison",children:o.jsx(In.Message,{children:c instanceof Error?c.message:"Unknown error"})});if(!i||i.items.length===0)return o.jsx("div",{className:"text-neutral4 text-sm text-center py-8",children:"No comparison data"});const _=i.baselineId,C=t===_?n:t;return o.jsxs("div",{className:"grid gap-10",children:[u&&d&&o.jsxs("div",{className:K("relative grid xl:grid-cols-[1fr_auto_1fr] gap-4 xl:gap-0"),children:[o.jsx(SYe,{datasetId:e,experiment:u,type:"baseline"}),o.jsx("div",{className:"relative flex items-center justify-center px-[2vw] before:absolute before:inset-y-0 before:left-1/2 before:-translate-x-1/2 before:w-[2px] before:bg-border1",children:o.jsx("div",{className:"relative z-1 bg-surface2 rounded-lg p-2",children:o.jsxs(Un,{children:[o.jsx(Dn,{asChild:!0,children:o.jsx(ce,{onClick:r,children:"VS"})}),o.jsx(Ln,{children:"Switch the order"})]})})}),o.jsx(SYe,{datasetId:e,experiment:d,type:"contender"})]}),f&&o.jsx(In,{variant:"warning",title:"Version mismatch",children:o.jsxs(In.Message,{children:["These experiments used different dataset versions (v",u.datasetVersion," vs v",d.datasetVersion,"). Results may not be directly comparable."]})}),h.length>0&&o.jsxs(gn,{children:[o.jsxs(gn.Header,{columns:m,children:[o.jsx(gn.HeaderCol,{children:"Scorer"}),o.jsx(gn.HeaderCol,{className:"flex justify-center",children:o.jsxs(_Qe,{children:[o.jsx(ea,{color:"purple",size:"small",intensity:"muted",children:"Baseline"}),o.jsx(ea,{color:"purple",size:"small",children:"Avg"})]})}),o.jsx(gn.HeaderCol,{className:"flex justify-center",children:o.jsxs(_Qe,{children:[o.jsx(ea,{color:"cyan",size:"small",intensity:"muted",children:"Contender"}),o.jsx(ea,{color:"cyan",size:"small",children:"Avg"})]})}),o.jsx(gn.HeaderCol,{className:"flex justify-center",children:"Delta"})]}),o.jsx(gn.Scroller,{children:o.jsx(gn.Items,{children:h.map(({scorerId:E,avgA:j,avgB:T,delta:I})=>o.jsxs(gn.Row,{columns:m,children:[o.jsx(gn.TextCell,{children:E}),o.jsx(gn.TextCell,{className:"text-center font-mono",children:j!=null?j.toFixed(3):"-"}),o.jsx(gn.TextCell,{className:"text-center font-mono",children:T!=null?T.toFixed(3):"-"}),o.jsx(gn.TextCell,{className:"flex justify-center",children:I!=null?o.jsx(GTe,{delta:I}):"-"})]},E))})})]}),o.jsxs(ay,{className:K({"grid-cols-[1fr_2fr]":!!y}),children:[o.jsx(Ers,{items:i.items,baselineId:_,contenderId:C,scorerIds:p,featuredItemId:s,columns:v,onItemClick:b}),!!y&&o.jsx(Crs,{item:y,baselineId:_,contenderId:C,baselineVersion:u?.datasetVersion,contenderVersion:d?.datasetVersion,onPrevious:k(),onNext:w(),onClose:S})]})]})}function Nrs({datasetId:e,itemId:t,onVersionSelect:n,onCompareVersionsClick:r,activeVersion:s}){const{data:a,isLoading:i}=UTe(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(S=>{const w=new Set(S);if(w.has(b))w.delete(b);else if(w.size>=2){const[k]=Array.from(w);return new Set([k,b])}else w.add(b);return w})},m=()=>{c(!1),d(new Set)},v=()=>{c(!0)},y=()=>{u.size===2&&r?.([...u])};return o.jsxs(Qr,{className:"min-w-56",children:[l?o.jsx(Qr.Toolbar,{className:"grid justify-stretch gap-3 w-full",children:o.jsxs(Dr,{children:[o.jsx(ce,{onClick:m,children:"Cancel"}),o.jsx(ce,{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(Qr.Toolbar,{children:o.jsxs(ce,{onClick:v,className:"w-full",children:[o.jsx(Jw,{})," Compare Ver."]})})}),i?o.jsx(Irs,{}):o.jsxs(gn,{children:[o.jsx(gn.Header,{children:o.jsx(gn.HeaderCol,{children:"Item Version History"})}),o.jsx(gn.Scroller,{children:o.jsx(gn.Items,{children:a?.map(b=>{const S=String(b.datasetVersion),w=typeof b.updatedAt=="string"?new Date(b.updatedAt):b.updatedAt;return o.jsxs(gn.Row,{isSelected:l&&u.has(S),children:[l&&o.jsx(gn.LabelCell,{children:o.jsx(Do,{checked:u.has(S),disabled:b.isDeleted,onCheckedChange:()=>{},onClick:k=>{k.stopPropagation(),b.isDeleted||h(S)},"aria-label":`Select version ${b.datasetVersion}`})}),o.jsx(gn.RowButton,{item:b,columns:[{name:"version",label:"Item Version History",size:"1fr"}],isFeatured:p(b),onClick:()=>f(b),className:"py-2",children:o.jsx(gn.VersionCell,{version:b.datasetVersion,date:w,isLatest:b.isLatest,isDeleted:b.isDeleted})})]},String(b.datasetVersion))})})})]})]})}function Irs(){return o.jsxs(gn,{children:[o.jsx(gn.Header,{columns:[{name:"version",label:"Item Version History",size:"1fr"}],children:o.jsx(gn.HeaderCol,{children:"Item Version History"})}),o.jsx(gn.Items,{children:Array.from({length:3}).map((e,t)=>o.jsx(gn.Row,{children:o.jsx(gn.RowButton,{columns:[{name:"version",label:"Item Version History",size:"1fr"}],children:o.jsx(gn.TextCell,{isLoading:!0,children:"Loading..."})})},t))})]})}function Ars(e,t){if(t){const n=typeof t=="string"?new Date(t):t;return`v${e} ${tr(n,"MMM dd 'at' H:mm:ss a")}`}return`v${e}`}function Rrs({datasetId:e,versionA:t,versionB:n,onVersionChange:r}){const{data:s}=ETe(e),a=(s??[]).map(i=>({value:String(i.version),label:`${Ars(i.version,i.createdAt)}${i.isCurrent?" (current)":""}`}));return o.jsxs(Qr.Toolbar,{className:"grid grid-cols-[1fr_1fr_1fr_10rem] gap-4 w-full",children:[o.jsx("div",{}),o.jsx(Sc,{label:"Version A",labelIsHidden:!0,name:"version-a",placeholder:"Select version",options:a,value:t??"",onValueChange:i=>r?.(i,n??"")}),o.jsx(Sc,{label:"Version B",labelIsHidden:!0,name:"version-b",options:a,value:n??"",onValueChange:i=>r?.(t??"",i)}),o.jsx("div",{})]})}const Prs=[{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"}],$rs={added:{color:"blue",borderColor:"border-blue-900",icon:o.jsx(Hr,{}),tooltip:"Added in this version"},changed:{color:"orange",borderColor:"border-yellow-900",icon:o.jsx(Jct,{}),tooltip:"Changed in this version"},same:{color:"green",borderColor:"border-green-900",icon:o.jsx(Bdn,{}),tooltip:"Same in both versions"}};function wse({red:e=!1,tooltip:t}){return o.jsxs(Un,{children:[o.jsx(Dn,{asChild:!0,children:o.jsx(Cun,{className:K("text-neutral3/40 w-5 h-5 ",{"text-red-900":e})})}),t&&o.jsx(Ln,{children:t})]})}function QS({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}=$rs[e];return o.jsxs(Un,{children:[o.jsx(Dn,{asChild:!0,children:o.jsxs("div",{className:"grid grid-cols-[1fr_auto]",children:[t!==void 0&&o.jsxs("span",{className:"pr-3 text-ui-md text-neutral4 min-w-16 flex justify-end",children:["v. ",t]}),o.jsx(ea,{color:n,size:"small",children:r})]})}),o.jsx(Ln,{children:s})]})}function Mrs(e,t){return e&&t&&e.datasetVersion===t.datasetVersion?"same":e&&t&&e.datasetVersion!==t.datasetVersion?"changed":e?"added":"removed"}function Drs({datasetId:e,versionA:t,versionB:n,allItems:r,itemsAMap:s,itemsBMap:a}){const{Link:i}=yn(),l=t>n;return o.jsx(gn,{children:o.jsx(gn.Scroller,{children:o.jsx(gn.Items,{children:r.map(({id:c})=>{const u=s.get(c),d=a.get(c),f=Mrs(u,d);return o.jsxs(gn.Row,{columns:Prs,children:[o.jsx(gn.IdCell,{id:c,isShortened:!1}),f!=="same"?o.jsxs(o.Fragment,{children:[u?.datasetVersion?o.jsx(gn.LinkCell,{LinkComponent:i,href:`/datasets/${e}/items/${c}`,className:"gap-2",children:!d&&l?o.jsx(QS,{variant:"added",version:u.datasetVersion}):f==="changed"&&l?o.jsx(QS,{variant:"changed",version:u.datasetVersion}):o.jsx(QS,{version:u.datasetVersion})}):o.jsx(gn.Cell,{className:"justify-center flex items-center",children:o.jsx(wse,{red:l,tooltip:l?"Deleted in this version":"Not present in this version"})}),d?.datasetVersion?o.jsx(gn.LinkCell,{LinkComponent:i,href:`/datasets/${e}/items/${c}`,className:"gap-2",children:!u&&!l?o.jsx(QS,{variant:"added",version:d.datasetVersion}):f==="changed"&&!l?o.jsx(QS,{variant:"changed",version:d.datasetVersion}):o.jsx(QS,{version:d.datasetVersion})}):o.jsx(gn.Cell,{className:"justify-center flex items-center",children:o.jsx(wse,{red:!l,tooltip:l?"Not present in this version":"Deleted in this version"})})]}):o.jsx(gn.LinkCell,{LinkComponent:i,href:`/datasets/${e}/items/${c}`,className:"col-span-2 gap-2",children:o.jsx(QS,{variant:"same",version:d?.datasetVersion})}),f==="changed"?o.jsx(gn.LinkCell,{LinkComponent:i,href:`/datasets/${e}/items/${c}/versions?ids=${u?.datasetVersion},${d?.datasetVersion}`,children:"Compare"}):o.jsx(gn.Cell,{children:o.jsx(wse,{tooltip:o.jsxs(o.Fragment,{children:["Comparing is available",o.jsx("br",{})," only for changed items"]})})})]},c)})})})})}const kYe={needsReview:"#facc15",complete:"#22c55e"},Lrs=[{label:"Needs Review",color:kYe.needsReview},{label:"Reviewed",color:kYe.complete}];function zrs({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,S=b?`${b} · ${m.experimentId.slice(0,8)}`:m.experimentId.slice(0,8);h.push({name:S,values:[m.needsReview,m.complete]})}return{data:h,maxVal:f,totalInPipeline:p}},[e,t,n]),c=a.length>0;return o.jsxs(Vt,{children:[o.jsxs(Vt.TopBar,{children:[o.jsx(Vt.TitleAndDescription,{title:"Review Pipeline",description:"Items in review across experiments."}),c&&o.jsx(Vt.Summary,{value:String(l),label:"Items in pipeline"})]}),r?o.jsx(Vt.Loading,{}):s?o.jsx(Vt.Error,{message:"Failed to load review data"}):o.jsx(Vt.Content,{children:c?o.jsx(dN,{data:a,segments:Lrs,maxVal:i,fmt:u=>String(u)}):o.jsx(Vt.NoData,{message:"No items have been sent to review yet"})})]})}function QTe(){const e=We();return St({queryKey:["experiment-review-summary"],queryFn:()=>e.getExperimentReviewSummary()})}function rFt(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 Frs(e,t){const n=new Map,r=rFt(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 Brs(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 Urs=10;function qrs(){const[e,t]=g.useState(!1),[n,r]=g.useState(""),[s,a]=g.useState("all"),[i,l]=g.useState("all"),[c,u]=g.useState("all"),[d,f]=g.useState(0),{data:p,isLoading:h,error:m}=Dg({page:d,perPage:Urs}),{data:v,isLoading:y,error:b}=fG(),{data:S}=QTe(),w=g.useMemo(()=>p?.datasets??[],[p?.datasets]),k=p?.pagination?.hasMore??!1,_=g.useMemo(()=>v?.experiments??[],[v?.experiments]),C=g.useMemo(()=>$ts(w),[w]),E=g.useMemo(()=>Frs(S,_),[S,_]),j=h||y,T=m||b,I=()=>t(!0),A=g.useCallback(()=>f(V=>V+1),[]),P=g.useCallback(()=>f(V=>Math.max(0,V-1)),[]),L=g.useCallback(V=>{r(V),f(0)},[]),D=g.useCallback(V=>{a(V),f(0)},[]),q=g.useCallback(V=>{l(V),f(0)},[]),H=g.useCallback(V=>{u(V),f(0)},[]);if(T&&gs(T))return o.jsx(lr,{children:o.jsx(Ws,{})});if(T&&ys(T))return o.jsx(lr,{children:o.jsx(Ls,{resource:"datasets"})});if(T)return o.jsx(lr,{children:o.jsx(Bi,{title:"Failed to load datasets",message:T.message})});if(w.length===0&&!j&&d===0)return o.jsxs(o.Fragment,{children:[o.jsx(lr,{children:o.jsx(Fts,{onCreateClick:I})}),o.jsx(aye,{open:e,onOpenChange:t})]});const z=s!=="all"||i!=="all"||c!=="all"||n!=="",B=()=>{r(""),a("all"),l("all"),u("all"),f(0)};return o.jsxs(zt,{children:[o.jsx(zt.TopArea,{children:o.jsx(qts,{search:n,onSearchChange:L,targetFilter:s,onTargetFilterChange:D,experimentFilter:i,onExperimentFilterChange:q,tagFilter:c,onTagFilterChange:H,tagOptions:C,onReset:B,hasActiveFilters:z,onCreateClick:I})}),o.jsx(zts,{datasets:w,experiments:_,reviewByDataset:E,isLoading:j,search:n,targetFilter:s,experimentFilter:i,tagFilter:c,currentPage:d,hasMore:k,onNextPage:A,onPrevPage:P}),o.jsx(aye,{open:e,onOpenChange:t})]})}function oz({children:e}){return o.jsxs(zt,{height:"full",children:[o.jsx("div",{}),o.jsx(zt.MainArea,{isCentered:!0,children:e})]})}function Vrs(){const{datasetId:e}=ur(),t=bs(),[n,r]=va(),{activeVersion:s}=qTe(n,r),[a,i]=g.useState(!1),[l,c]=g.useState(!1),[u,d]=g.useState(!1),[f,p]=g.useState(!1),[h,m]=g.useState(!1),{data:v,error:y,isLoading:b}=Wx(e),{data:S=[],isLoading:w}=E1(e,void 0,s),k=!w&&S.length===0;if(b)return null;if(y&&gs(y))return o.jsx(oz,{children:o.jsx(Ws,{})});if(y&&ys(y))return o.jsx(oz,{children:o.jsx(Ls,{resource:"datasets"})});if(y&&JSe(y)||!b&&!y&&!v)return o.jsx(oz,{children:o.jsx(Cr,{iconSlot:o.jsx(oy,{}),titleSlot:"Dataset not found",descriptionSlot:`No dataset with id "${e}".`,actionSlot:o.jsxs(ce,{as:Da,to:"/datasets",children:[o.jsx(Nc,{}),"Back to Datasets"]})})});if(y)return o.jsx(oz,{children:o.jsx(Bi,{title:"Failed to load dataset",message:y instanceof Error?y.message:"An unexpected error occurred. Please try again."})});const _=E=>{t(`/datasets/${e}/experiments/${E}`)},C=()=>{t("/datasets")};return o.jsxs(o.Fragment,{children:[o.jsxs(zt,{height:"full",children:[o.jsx(zt.TopArea,{children:o.jsxs(zt.Row,{children:[o.jsxs(zt.Column,{children:[v?.description&&o.jsx("p",{className:"text-ui-smd text-neutral3 mb-1",children:v.description}),o.jsxs(qt,{numOfCol:2,children:[o.jsx(qt.Key,{children:"Created at"}),o.jsx(qt.Value,{children:v?.createdAt?tr(new Date(v.createdAt),"MMM d, yyyy"):""}),o.jsx(qt.Key,{children:"Latest version"}),o.jsxs(qt.Value,{children:["v",v?.version??""]})]})]}),o.jsx(zt.Column,{children:o.jsxs(Dr,{children:[k?o.jsxs(Un,{children:[o.jsx(Dn,{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(ce,{variant:"primary",children:[o.jsx(zp,{}),s!=null?`Run on v${s}`:"Run Experiment"]})})})}),o.jsx(Ln,{children:"Add items to the dataset before running an experiment"})]}):o.jsxs(ce,{variant:"primary",onClick:()=>i(!0),children:[o.jsx(zp,{}),s!=null?`Run on v${s}`:"Run Experiment"]}),o.jsxs(dt,{children:[o.jsx(dt.Trigger,{asChild:!0,children:o.jsx(ce,{size:"lg","aria-label":"Dataset actions menu",children:o.jsx(yD,{})})}),o.jsxs(dt.Content,{align:"end",className:"w-48",children:[o.jsxs(dt.Item,{onSelect:()=>d(!0),children:[o.jsx(am,{})," Edit Dataset"]}),o.jsxs(dt.Item,{onSelect:()=>m(!0),children:[o.jsx(rm,{})," Duplicate Dataset"]}),o.jsxs(dt.Item,{onSelect:()=>p(!0),className:"text-red-500 focus:text-red-400",children:[o.jsx(uu,{})," Delete Dataset"]})]})]})]})})]})}),o.jsx(zt.MainArea,{children:o.jsx(srs,{datasetId:e,onAddItemClick:()=>c(!0)})})]}),o.jsx(frs,{datasetId:e,version:s??void 0,requestContextSchema:v?.requestContextSchema,open:a,onOpenChange:i,onSuccess:_}),o.jsx(irs,{datasetId:e,open:l,onOpenChange:c}),v&&o.jsx(Qts,{open:u,onOpenChange:d,dataset:{id:v.id,name:v.name,description:v?.description||"",targetType:v.targetType,inputSchema:v.inputSchema,groundTruthSchema:v.groundTruthSchema,requestContextSchema:v.requestContextSchema}}),v&&o.jsx(Wts,{open:h,onOpenChange:m,sourceDatasetId:v.id,sourceDatasetName:v.name,sourceDatasetDescription:v.description,sourceDatasetTargetType:v.targetType}),v&&o.jsx(Xts,{open:f,onOpenChange:p,datasetId:v.id,datasetName:v.name,onSuccess:C})]})}function sFt({experiment:e}){const{Link:t,paths:n}=yn(),{data:r}=Om(),{data:s}=Fy(),{data:a}=ah(),i=()=>{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"#"}},l=()=>{const u=e.targetId;if(!u)return u;switch(e.targetType){case"agent":return r?.[u]?.name??u;case"workflow":return s?.[u]?.name??u;case"scorer":return a?.[u]?.scorer?.config?.name??u;default:return u}},c=e.agentVersion&&e.targetType==="agent"&&e.targetId?`${n.agentLink(e.targetId)}/editor?version=${encodeURIComponent(e.agentVersion)}`:null;return o.jsx(zt.TopArea,{children:o.jsxs(zt.Row,{children:[o.jsx(zt.Column,{children:o.jsxs(qt,{numOfCol:2,children:[o.jsx(qt.Key,{children:"Created at"}),o.jsx(qt.Value,{children:tr(new Date(e.createdAt),"MMM d, yyyy 'at' h:mm a")}),e.completedAt&&o.jsxs(o.Fragment,{children:[o.jsx(qt.Key,{children:"Completed at"}),o.jsx(qt.Value,{children:tr(new Date(e.completedAt),"MMM d, yyyy 'at' h:mm a")})]}),o.jsx(qt.Key,{children:"Target"}),o.jsx(qt.ValueLink,{href:i(),as:t,children:l()}),e.agentVersion&&o.jsxs(o.Fragment,{children:[o.jsx(qt.Key,{children:"Version"}),c?o.jsx(qt.ValueLink,{href:c,as:t,children:e.agentVersion}):o.jsx(qt.Value,{children:e.agentVersion})]})]})}),o.jsx(zt.Column,{children:o.jsx(Ors,{experiment:e})})]})})}function lz({children:e}){return o.jsxs(zt,{height:"full",children:[o.jsx("div",{}),o.jsx(zt.MainArea,{isCentered:!0,children:e})]})}function Hrs(){const{datasetId:e,experimentId:t}=ur(),{data:n,isLoading:r,error:s}=GU(e,t),{data:a,isLoading:i,setEndOfListElement:l,isFetchingNextPage:c,hasNextPage:u}=cG({datasetId:e,experimentId:t,experimentStatus:n?.status});return!e||!t||r?null:s&&gs(s)?o.jsx(lz,{children:o.jsx(Ws,{})}):s&&ys(s)?o.jsx(lz,{children:o.jsx(Ls,{resource:"datasets"})}):s&&JSe(s)||!r&&!s&&!n?o.jsx(lz,{children:o.jsx(Cr,{iconSlot:o.jsx(Ebe,{}),titleSlot:"Experiment not found",descriptionSlot:`No experiment with id "${t}".`,actionSlot:o.jsxs(ce,{as:Da,to:`/datasets/${e}?tab=experiments`,children:[o.jsx(Nc,{}),"Back to Dataset"]})})}):s?o.jsx(lz,{children:o.jsx(Bi,{title:"Failed to load experiment",message:s instanceof Error?s.message:"An unexpected error occurred. Please try again."})}):o.jsxs(zt,{height:"full",children:[o.jsx(sFt,{experiment:n}),o.jsx(zt.MainArea,{children:o.jsx(nFt,{experimentId:t,datasetId:e,experimentStatus:n.status,results:a??[],isLoading:i,setEndOfListElement:l,isFetchingNextPage:c,hasNextPage:u})})]})}function Wrs(){const{datasetId:e}=ur(),[t,n]=va(),{error:r}=Wx(e??""),s=t.get("baseline")??"",a=t.get("contender")??"";return r&&gs(r)?o.jsx(cs,{children:o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Ws,{})})}):r&&ys(r)?o.jsx(cs,{children:o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Ls,{resource:"datasets"})})}):!e||!s||!a?o.jsx(cs,{children:o.jsx(Sy,{children:o.jsxs("div",{className:"text-neutral4 text-center py-8",children:[o.jsx("p",{children:"Select two experiments to compare."}),o.jsxs("p",{className:"text-sm mt-2",children:["Use the URL format: /datasets/","{datasetId}","/experiments?baseline=","{experimentIdA}","&contender=","{experimentIdB}"]})]})})}):o.jsx(cs,{children:o.jsx(Sy,{children:o.jsxs("div",{className:"max-w-[100rem] w-full px-12 mx-auto grid content-start ",children:[o.jsxs(fa,{children:[o.jsxs(fa.Column,{children:[o.jsxs(fa.Title,{children:[o.jsx(Jw,{})," Dataset Experiments Comparison"]}),o.jsxs(fa.Description,{children:["Comparing"," ",o.jsx(Da,{to:`/datasets/${e}/experiments/${s}`,children:s.slice(0,8)})," vs"," ",o.jsx(Da,{to:`/datasets/${e}/experiments/${a}`,children:a.slice(0,8)})]})]}),o.jsx(fa.Column,{children:o.jsxs(ce,{as:Da,to:`/datasets/${e}`,children:[o.jsx(Nc,{}),"Back to Dataset"]})})]}),o.jsx(Trs,{datasetId:e,experimentIdA:s,experimentIdB:a,onSwap:()=>{n({baseline:a,contender:s})}})]})})})}function Zrs(){const{datasetId:e,itemId:t}=ur(),{Link:n}=yn(),r=bs(),{data:s,isLoading:a,error:i}=UTe(e??"",t??""),{updateItem:l,deleteItem:c}=Ei(),{data:u}=Wx(e??""),d=s?.[0]??null,f=d?.isDeleted??!1,[p,h]=g.useState(null),m=g.useMemo(()=>!d||f?{input:"",groundTruth:"",metadata:"",trajectory:"",toolMocks:"",requestContext:""}:{input:JSON.stringify(d.input,null,2),groundTruth:d.groundTruth?JSON.stringify(d.groundTruth,null,2):"",metadata:d.metadata?JSON.stringify(d.metadata,null,2):"",trajectory:d.expectedTrajectory!=null?JSON.stringify(d.expectedTrajectory,null,2):"",toolMocks:d.toolMocks?.length?JSON.stringify(d.toolMocks,null,2):"",requestContext:d.requestContext?JSON.stringify(d.requestContext,null,2):""},[d,f]),v=d?.datasetVersion??0,[y,b]=g.useState(!1),[S,w]=g.useState(m.input),[k,_]=g.useState(m.groundTruth),[C,E]=g.useState(m.metadata),[j,T]=g.useState(m.trajectory),[I,A]=g.useState(m.toolMocks),[P,L]=g.useState(m.requestContext),[D,q]=g.useState(v);v!==D&&(q(v),w(m.input),_(m.groundTruth),E(m.metadata),T(m.trajectory),A(m.toolMocks),L(m.requestContext));const[H,z]=g.useState(!1),B=ee=>{h(f?ee:ee.isLatest?null:ee)},V=()=>{h(null)},M=!f&&p!=null,Q=()=>{M||b(!0)},U=()=>{M||z(!0)},$=async()=>{if(!e||!t)return;let ee;try{ee=JSON.parse(S)}catch{De.error("Input must be valid JSON");return}let J;if(k.trim())try{J=JSON.parse(k)}catch{De.error("Ground Truth must be valid JSON");return}let ae;if(C.trim())try{ae=JSON.parse(C)}catch{De.error("Metadata must be valid JSON");return}let pe;const Y=j!==m.trajectory;if(Y&&j.trim())try{pe=JSON.parse(j)}catch{De.error("Expected Trajectory must be valid JSON");return}let ne;const ue=I!==m.toolMocks;if(ue&&I.trim())try{const me=JSON.parse(I);if(!Array.isArray(me)){De.error("Tool Mocks must be a JSON array");return}ne=me}catch{De.error("Tool Mocks must be valid JSON");return}let fe;const oe=P!==m.requestContext;if(oe&&P.trim())try{fe=JSON.parse(P)}catch{De.error("Request Context must be valid JSON");return}try{await l.mutateAsync({datasetId:e,itemId:t,input:ee,groundTruth:J,metadata:ae,...Y?{expectedTrajectory:pe??null}:{},...ue?{toolMocks:ne??[]}:{},...oe?{requestContext:fe}:{}}),De.success("Item updated successfully"),b(!1)}catch(me){De.error(`Failed to update item: ${me instanceof Error?me.message:"Unknown error"}`)}},F=()=>{d&&(w(JSON.stringify(d.input,null,2)),_(d.groundTruth?JSON.stringify(d.groundTruth,null,2):""),E(d.metadata?JSON.stringify(d.metadata,null,2):""),T(d.expectedTrajectory!=null?JSON.stringify(d.expectedTrajectory,null,2):""),A(d.toolMocks?.length?JSON.stringify(d.toolMocks,null,2):""),L(d.requestContext?JSON.stringify(d.requestContext,null,2):"")),b(!1)},Z=async()=>{if(!(!e||!t))try{await c.mutateAsync({datasetId:e,itemId:t}),De.success("Item deleted successfully"),z(!1),r(`/datasets/${e}`)}catch(ee){De.error(`Failed to delete item: ${ee instanceof Error?ee.message:"Unknown error"}`)}},X=p??d,te=X?{id:t??"",datasetId:e??"",datasetVersion:X.datasetVersion,input:X.input,groundTruth:X.groundTruth,expectedTrajectory:X.expectedTrajectory,metadata:X.metadata,createdAt:X.createdAt,updatedAt:X.updatedAt}:null;return i&&gs(i)?o.jsx(cs,{children:o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Ws,{})})}):i&&ys(i)?o.jsx(cs,{children:o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Ls,{resource:"datasets"})})}):a?null:!e||!t||!s||s.length===0?o.jsx(cs,{children:o.jsx(Sy,{children:o.jsx("div",{className:"text-neutral3 p-4",children:"Item not found"})})}):o.jsxs(o.Fragment,{children:[o.jsx(cs,{children:o.jsx("div",{className:"h-full overflow-hidden px-6 pb-4",children:o.jsxs("div",{className:"grid gap-6 max-w-[60rem] mx-auto grid-rows-[auto_1fr] h-full",children:[o.jsxs(fa,{children:[o.jsxs(fa.Column,{children:[o.jsxs(fa.Title,{children:[o.jsx(xN,{}),t," ",o.jsx(Oa,{content:t})]}),o.jsx(fa.Description,{children:o.jsxs(Al,{children:["Item of ",o.jsx(oy,{})," ",u?.name]})}),o.jsxs(fa.Description,{children:[o.jsxs(Al,{children:[o.jsx(Rct,{})," Created at"," ",d?.createdAt?tr(new Date(d.createdAt),"MMM d, yyyy"):""]}),o.jsxs(Al,{children:[o.jsx(d_,{})," Latest version v",d?.datasetVersion??""]})]})]}),o.jsx(fa.Column,{children:!y&&!f&&o.jsxs(Dr,{children:[o.jsxs(ce,{onClick:Q,disabled:M,title:M?"Return to latest version to edit":void 0,children:[o.jsx(Jct,{})," Edit"]}),o.jsxs(ce,{onClick:U,disabled:M,title:M?"Return to latest version to delete":void 0,children:[o.jsx(uu,{})," Delete"]})]})})]}),o.jsxs(ay,{className:y?"grid-cols-1":"grid-cols-[1fr_auto]",children:[o.jsxs(Qr,{withRightSeparator:!y,children:[f&&d&&o.jsx(In,{variant:"destructive",title:"Item deleted",children:o.jsxs(In.Message,{children:["This item was deleted at version v",d.datasetVersion]})}),!f&&M&&p&&o.jsx(In,{variant:"warning",title:"Previous version",action:o.jsxs(In.Button,{onClick:V,children:[o.jsx(jct,{})," Return to the latest version"]}),children:o.jsxs(In.Message,{children:["Viewing version v",p.datasetVersion]})}),y?o.jsx(Jzt,{inputValue:S,setInputValue:w,groundTruthValue:k,setGroundTruthValue:_,metadataValue:C,setMetadataValue:E,trajectoryValue:j,setTrajectoryValue:T,toolMocksValue:I,setToolMocksValue:A,requestContextValue:P,setRequestContextValue:L,validationErrors:null,onSave:$,onCancel:F,isSaving:l.isPending}):te?o.jsx(WTe,{item:te,Link:n}):o.jsx("div",{className:"text-neutral4 text-sm",children:"Item data not available"})]}),!y&&o.jsx(Qr,{children:o.jsx(Nrs,{datasetId:e,itemId:t,onClose:()=>{},onVersionSelect:B,onCompareVersionsClick:ee=>{r(`/datasets/${e}/items/${t}/versions?ids=${ee.join(",")}`)},activeVersion:p?.datasetVersion??null})})]})]})})}),o.jsx(It,{open:H,onOpenChange:z,children:o.jsxs(It.Content,{children:[o.jsxs(It.Header,{children:[o.jsx(It.Title,{children:"Delete Item"}),o.jsx(It.Description,{children:"Are you sure you want to delete this item? This action cannot be undone."})]}),o.jsxs(It.Footer,{children:[o.jsx(It.Cancel,{children:"Cancel"}),o.jsx(It.Action,{onClick:Z,children:c.isPending?"Deleting...":"Delete"})]})]})})]})}function OYe(e){return JSON.stringify({input:e.input??null,groundTruth:e.groundTruth??null,metadata:e.metadata??null},null,2)}function Grs(){const{datasetId:e}=ur(),[t,n]=va(),r=t.get("items")?.split(",").filter(Boolean)??[],{data:s,error:a}=Wx(e??""),{Link:i}=yn(),[l,c]=g.useState(!1),{data:u}=QU(e??"",r[0]??""),{data:d}=QU(e??"",r[1]??"");return a&&gs(a)?o.jsx(cs,{children:o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Ws,{})})}):a&&ys(a)?o.jsx(cs,{children:o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Ls,{resource:"datasets"})})}):!e||r.length<2?o.jsx(cs,{children:o.jsx(Sy,{children:o.jsx("div",{className:"text-neutral4 text-center py-8",children:o.jsx("p",{children:"Select at least two items to compare."})})})}):o.jsxs(cs,{children:[o.jsx(Iy,{owner:"dataset-items-compare",children:o.jsxs(ce,{as:Da,to:`/datasets/${e}`,variant:"outline",children:[o.jsx(Nc,{}),"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]":l}),children:[o.jsxs(fa,{children:[o.jsxs(fa.Column,{children:[o.jsxs(fa.Title,{children:[o.jsx(Jw,{}),"Compare Dataset Items"]}),o.jsx(fa.Description,{children:o.jsxs(Al,{children:["Comparing ",r.length," items of"," ",o.jsx(Da,{to:`/datasets/${e}`,className:"text-info1 hover:underline",children:s?.name||e?.slice(0,8)})]})})]}),o.jsx(fa.Column,{children:o.jsx(Dr,{children:o.jsx(ce,{variant:"primary",onClick:()=>c(f=>!f),children:l?o.jsxs(o.Fragment,{children:[o.jsx(Fct,{})," Default View"]}):o.jsxs(o.Fragment,{children:[o.jsx(Rdn,{})," Diff View"]})})})})]}),o.jsx(ay,{className:"grid-cols-[1fr_3vw_1fr]",children:r.map((f,p)=>o.jsxs(g.Fragment,{children:[o.jsx(Qrs,{datasetId:e,itemId:f,Link:i,idx:p,itemIds:r,showContent:!l,onItemChange:h=>{const m=[...r];m[p]=h,n({items:m.join(",")})}}),p==0&&o.jsx("div",{className:K("bg-surface5 w-[3px] shrink-0 mx-[1.5vw]")})]},f))}),l&&u&&d&&o.jsx(aCe,{codeA:OYe(u),codeB:OYe(d)})]})})]})}function Qrs({datasetId:e,itemId:t,Link:n,idx:r,itemIds:s,onItemChange:a,showContent:i=!0}){const{data:l,isLoading:c}=QU(e,t),{data:u}=E1(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(Qr,{children:[o.jsxs(Qr.Toolbar,{className:"flex gap-4",children:[o.jsxs(pa,{name:`compare-item-${r}`,value:t,onValueChange:a,children:[o.jsx(ma,{"aria-label":"Item",children:o.jsx(ha,{placeholder:"Select item"})}),o.jsx(ga,{children:f.map(p=>o.jsx(zr,{value:p.value,disabled:p.disabled,children:p.label},p.value))})]}),o.jsxs(ce,{as:n,to:`/datasets/${e}/items/${t}`,children:[o.jsx(d_,{}),"Versions"]})]}),i&&o.jsx(Qr.Content,{children:c?o.jsx("div",{className:"text-neutral4 text-sm",children:"Loading..."}):l?o.jsxs(o.Fragment,{children:[o.jsx(ors,{item:l}),o.jsx(WTe,{item:l,Link:n})]}):o.jsxs("div",{className:"text-neutral4 text-sm",children:["Item ",t.slice(0,8)," not found"]})})]})}function _Ye(e){return JSON.stringify({input:e.input??null,groundTruth:e.groundTruth??null,metadata:e.metadata??null},null,2)}function Yrs(){const{datasetId:e,itemId:t}=ur(),[n,r]=va(),[s,a]=g.useState(!1),i=n.get("ids")?.split(",").map(Number).filter(h=>!isNaN(h)&&h>0)??[],{data:l,error:c}=Wx(e??""),{Link:u}=yn(),{data:d}=UTe(e??"",t??""),{data:f}=oye(e??"",t??"",i[0]??0,l?.version),{data:p}=oye(e??"",t??"",i[1]??0,l?.version);return c&&gs(c)?o.jsx(cs,{children:o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Ws,{})})}):c&&ys(c)?o.jsx(cs,{children:o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Ls,{resource:"datasets"})})}):!e||!t||i.length<2?o.jsx(cs,{children:o.jsx(Sy,{children:o.jsx("div",{className:"text-neutral4 text-center py-8",children:o.jsx("p",{children:"Select at least two versions to compare."})})})}):o.jsxs(cs,{children:[o.jsx(Iy,{owner:"dataset-item-versions-compare",children:o.jsxs(ce,{as:Da,to:`/datasets/${e}/items/${t}`,variant:"outline",children:[o.jsx(Nc,{}),"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(fa,{children:[o.jsxs(fa.Column,{children:[o.jsxs(fa.Title,{children:[o.jsx(Jw,{}),"Compare Dataset Item Versions"]}),o.jsx(fa.Description,{children:o.jsxs(Al,{children:["Comparing ",i.length," versions of"," ",o.jsx(Da,{to:`/datasets/${e}/items/${t}`,className:"text-info1 hover:underline",children:t})]})})]}),o.jsx(fa.Column,{children:o.jsx(Dr,{children:o.jsx(ce,{variant:"primary",onClick:()=>a(h=>!h),children:s?o.jsxs(o.Fragment,{children:[o.jsx(Fct,{})," Default View"]}):o.jsxs(o.Fragment,{children:[o.jsx(yfn,{})," Diff View"]})})})})]}),o.jsx(ay,{className:"grid-cols-[1fr_3vw_1fr]",children:i.map((h,m)=>o.jsxs(g.Fragment,{children:[o.jsx(Xrs,{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(aCe,{codeA:_Ye(f),codeB:_Ye(p)})]})})]})}function Xrs({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}=oye(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]})," - ",tr(y,"MMM d, yyyy h:mm a"),v.isLatest?o.jsx(ea,{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,metadata:d.metadata,createdAt:d.createdAt,updatedAt:d.updatedAt}:null;return o.jsxs(Qr,{children:[o.jsxs(Qr.Toolbar,{className:"grid gap-4 grid-cols-[auto_1fr]",children:[o.jsx(d_,{className:"w-6 h-6 opacity-50"}),o.jsxs(pa,{name:`compare-version-${l}`,value:String(n),onValueChange:v=>u(Number(v)),children:[o.jsx(ma,{"aria-label":"Version",className:"w-full",children:o.jsx(ha,{placeholder:"Select version"})}),o.jsx(ga,{children:h.map(v=>o.jsx(zr,{value:v.value,disabled:v.disabled,children:v.label},v.value))})]})]}),c&&o.jsx(Qr.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(WTe,{item:m,Link:i})})]})}function Krs(){const{datasetId:e}=ur(),[t]=va(),n=t.get("ids")?.split(",").map(Number).filter(v=>!isNaN(v)&&v>0)??[],r=bs(),{data:s,error:a}=Wx(e??""),i=E1(e??"",void 0,n[0]??null),l=E1(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&&gs(a))return o.jsx(cs,{children:o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Ws,{})})});if(a&&ys(a))return o.jsx(cs,{children:o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Ls,{resource:"datasets"})})});if(!e||n.length<2)return o.jsx(cs,{children:o.jsx(Sy,{children:o.jsx("div",{className:"text-neutral4 text-center py-8",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(cs,{children:o.jsx("div",{className:"h-full overflow-hidden px-[3vw] pb-4",children:o.jsxs("div",{className:"grid gap-6 max-w-[140rem] mx-auto grid-rows-[auto_1fr] h-full",children:[o.jsxs(fa,{children:[o.jsxs(fa.Column,{children:[o.jsxs(fa.Title,{children:[o.jsx(ihn,{})," Compare Dataset Versions"]}),o.jsx(fa.Description,{children:o.jsxs(Al,{children:[o.jsx(d_,{})," Comparing ",n.length," versions of"," ",s?.name||e?.slice(0,8)]})})]}),o.jsx(fa.Column,{children:o.jsxs(ce,{as:Da,to:`/datasets/${e}`,children:[o.jsx(Nc,{}),"Back to Dataset"]})})]}),o.jsx(ay,{children:o.jsxs(Qr,{children:[o.jsx(Rrs,{datasetId:e,versionA:String(n[0]),versionB:String(n[1]),onVersionChange:m}),o.jsx(Drs,{datasetId:e,versionA:n[0],versionB:n[1],allItems:d,itemsAMap:f,itemsBMap:p,onItemClick:h})]})})]})})})}function cye({children:e,className:t}){return o.jsx("div",{className:K("flex flex-wrap gap-8",t),children:e})}function Jrs(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 ess({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=Jrs(n);return o.jsxs(o.Fragment,{children:[o.jsxs(Jr,{children:[o.jsx(Jr.Label,{children:"Total Scorers"}),i?o.jsx(Jr.Loading,{}):f!=null?o.jsxs(o.Fragment,{children:[o.jsx(Jr.Value,{children:String(f)}),o.jsx(Jr.NoChange,{message:"Static count"})]}):o.jsx(Jr.NoData,{})]}),o.jsxs(Jr,{children:[o.jsx(Jr.Label,{children:"Total Datasets"}),l?o.jsx(Jr.Loading,{}):p!=null?o.jsxs(o.Fragment,{children:[o.jsx(Jr.Value,{children:String(p)}),o.jsx(Jr.NoChange,{message:"Static count"})]}):o.jsx(Jr.NoData,{})]}),o.jsxs(Jr,{children:[o.jsx(Jr.Label,{children:"Avg Score"}),u?o.jsx(Jr.Loading,{}):r!=null?o.jsxs(o.Fragment,{children:[o.jsx(Jr.Value,{children:String(r)}),m?o.jsx(Jr.Change,{changePct:m.changePct,prevValue:m.prevValue}):o.jsx(Jr.NoChange,{})]}):o.jsx(Jr.NoData,{})]}),o.jsxs(Jr,{children:[o.jsx(Jr.Label,{children:"Total Experiments"}),c?o.jsx(Jr.Loading,{}):h!=null?o.jsxs(o.Fragment,{children:[o.jsx(Jr.Value,{children:String(h)}),v?o.jsx(Jr.Change,{changePct:v.changePct,prevValue:v.prevValue}):o.jsx(Jr.NoChange,{})]}):o.jsx(Jr.NoData,{})]}),o.jsxs(Jr,{children:[o.jsx(Jr.Label,{children:"Needs Review"}),d?o.jsx(Jr.Loading,{}):a!=null?o.jsxs(o.Fragment,{children:[o.jsx(Jr.Value,{children:String(a)}),a>0?o.jsx(Jr.NoChange,{message:"items pending review"}):o.jsx(Jr.NoChange,{message:"All caught up"})]}):o.jsx(Jr.NoData,{})]})]})}const CYe="auto 1fr auto auto auto auto auto auto auto";function tss(e){return e?(typeof e=="string"?new Date(e):e).toLocaleDateString("en-US",{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"}):"—"}const nss={completed:"success",running:"warning",failed:"error",pending:"neutral"};function rss({experiments:e,datasets:t,reviewByExperiment:n,isLoading:r,search:s="",statusFilter:a="all",datasetFilter:i="all"}){const{paths:l,Link:c}=yn(),u=g.useMemo(()=>{const p=new Map;return t?.forEach(h=>p.set(h.id,h.name)),p},[t]),d=g.useMemo(()=>[...e].sort((p,h)=>{const m=p.createdAt?new Date(p.createdAt).getTime():0;return(h.createdAt?new Date(h.createdAt).getTime():0)-m}),[e]),f=g.useMemo(()=>{const p=s.toLowerCase();return d.filter(h=>{const m=h.datasetId?u.get(h.datasetId)??"":"",v=!p||h.id.toLowerCase().includes(p)||m.toLowerCase().includes(p)||(h.targetId??"").toLowerCase().includes(p),y=a==="all"||h.status===a,b=i==="all"||h.datasetId===i;return v&&y&&b})},[d,s,u,a,i]);return r?o.jsx(rl,{columns:CYe}):o.jsxs(ve,{columns:CYe,variant:"striped",children:[o.jsxs(ve.Top,{children:[o.jsx(ve.TopCell,{children:"Experiment"}),o.jsx(ve.TopCell,{children:"Dataset"}),o.jsx(ve.TopCell,{children:"Target"}),o.jsx(ve.TopCell,{children:"Status"}),o.jsx(ve.TopCell,{className:"text-center",children:"Items"}),o.jsx(ve.TopCell,{className:"text-center",children:"Succeeded"}),o.jsx(ve.TopCell,{className:"text-center",children:"Failed"}),o.jsx(ve.TopCell,{className:"text-center",children:"Review"}),o.jsx(ve.TopCell,{children:"Date"})]}),f.map(p=>{const h=p.datasetId?u.get(p.datasetId)??p.datasetId.slice(0,8):"—",m=p.status??"pending",v=p.succeededCount??0,y=p.failedCount??0,b=p.totalItems??0,S=b>0?Math.round(v/b*100):0;return o.jsxs(ve.RowLink,{to:l.experimentLink(p.id),LinkComponent:c,children:[o.jsx(ve.NameCell,{className:"font-mono",children:p.id.slice(0,8)}),o.jsx(ve.TextCell,{children:h}),o.jsx(ve.Cell,{children:o.jsxs("span",{className:"truncate",children:[p.targetType," ",p.targetId]})}),o.jsx(ve.Cell,{children:o.jsx(mg,{variant:nss[m]??"neutral",withDot:!0,children:m})}),o.jsx(ve.TextCell,{className:"text-center",children:b}),o.jsx(ve.TextCell,{className:"text-center",children:o.jsxs("span",{className:v>0?"text-accent1":"",children:[v," (",S,"%)"]})}),o.jsx(ve.TextCell,{className:"text-center",children:o.jsx("span",{className:y>0?"text-accent2":"",children:y})}),o.jsx(ve.Cell,{className:"text-center",children:(()=>{const w=n?.get(p.id);if(!w)return o.jsx("span",{className:"text-neutral2",children:"—"});const k=w.needsReview+w.complete;return k===0?o.jsx("span",{className:"text-neutral2",children:"—"}):w.needsReview>0?o.jsxs(ea,{size:"small",color:"yellow",children:[w.needsReview," pending"]}):o.jsxs(ea,{size:"small",color:"green",children:[w.complete,"/",k," reviewed"]})})()}),o.jsx(ve.TextCell,{children:tss(p.createdAt)})]},p.id)})]})}const sss=[{value:"all",label:"All statuses"},{value:"completed",label:"Completed"},{value:"running",label:"Running"},{value:"failed",label:"Failed"},{value:"pending",label:"Pending"}];function ass(e){return[{value:"all",label:"All datasets"},...(e??[]).map(t=>({value:t.id,label:t.name}))]}const cz={completed:"#22c55e",running:"#facc15",pending:"#fb923c",failed:"#f87171"},iss=[{label:"Completed",color:cz.completed},{label:"Running",color:cz.running},{label:"Pending",color:cz.pending},{label:"Failed",color:cz.failed}];function oss({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(Vt,{children:[o.jsxs(Vt.TopBar,{children:[o.jsx(Vt.TitleAndDescription,{title:"Experiments by Dataset",description:"Experiment status breakdown per dataset."}),i&&o.jsx(Vt.Summary,{value:String(e?.length??0),label:"Total experiments"})]}),n?o.jsx(Vt.Loading,{}):r?o.jsx(Vt.Error,{message:"Failed to load experiments data"}):o.jsx(Vt.Content,{children:i?o.jsx(dN,{data:s,segments:iss,maxVal:a,fmt:l=>String(l)}):o.jsx(Vt.NoData,{message:"No experiments have been run yet"})})]})}const lss=()=>o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Cr,{iconSlot:o.jsx(Ef,{}),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.jsx("div",{className:"flex flex-col items-center gap-2",children:o.jsxs(ce,{variant:"ghost",as:"a",href:"https://mastra.ai/en/docs/evals/datasets/running-experiments",target:"_blank",rel:"noopener noreferrer",children:["Experiments Documentation ",o.jsx(_a,{})]})})})});function css({search:e,onSearchChange:t,statusFilter:n,onStatusFilterChange:r,datasetFilter:s,onDatasetFilterChange:a,datasetOptions:i,onReset:l,hasActiveFilters:c}){return o.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[o.jsx(Nf,{label:"Search experiments",placeholder:"Filter by experiment, dataset, or target",value:e,onSearch:t}),o.jsxs(Dr,{children:[o.jsx(Sc,{label:"Status",labelIsHidden:!0,name:"filter-status",options:[...sss],value:n,onValueChange:r,className:"whitespace-nowrap"}),o.jsx(Sc,{label:"Dataset",labelIsHidden:!0,name:"filter-dataset",options:i,value:s,onValueChange:a,className:"whitespace-nowrap"}),l&&c&&o.jsxs(ce,{onClick:l,size:"sm",variant:"default",children:[o.jsx(vs,{className:"size-3"})," Reset"]})]})]})}function uss(){const{data:e,isLoading:t,error:n}=ah(),{data:r,isLoading:s,error:a}=Dg(),{data:i,isLoading:l,error:c}=fG(),{data:u,isLoading:d,isError:f,error:p}=lQr(),{data:h,isLoading:m,isError:v,error:y}=QTe(),b=r?.datasets,S=i?.experiments,w=g.useMemo(()=>Brs(h),[h]),k=n||a||c||p||y;return k&&gs(k)?o.jsx(lr,{children:o.jsx(Ws,{})}):k&&ys(k)?o.jsx(lr,{children:o.jsx(Ls,{resource:"evaluation"})}):k?o.jsx(lr,{children:o.jsx(Bi,{title:"Failed to load evaluation data",message:k.message})}):o.jsx(zt,{width:"wide",height:"full",children:o.jsxs("div",{className:"flex flex-col gap-6",children:[o.jsx(cye,{children:o.jsx(ess,{scorers:e,datasets:b,experiments:S,avgScore:u?.avgScore??null,prevAvgScore:u?.prevAvgScore??null,totalNeedsReview:w.needsReview,isLoadingScorers:t,isLoadingDatasets:s,isLoadingExperiments:l,isLoadingScores:d,isLoadingReview:m})}),o.jsx(xGr,{summaryData:u?.summaryData??[],overTimeData:u?.overTimeData??[],scorerNames:u?.scorerNames??[],avgScore:u?.avgScore??null,isLoading:d,isError:f}),o.jsxs("div",{className:"grid grid-cols-1 gap-6 lg:grid-cols-2",children:[o.jsx(Uts,{experiments:S,isLoading:l,isError:!!c}),o.jsx(oss,{experiments:S,datasets:b,isLoading:l,isError:!!c})]}),o.jsx(zrs,{reviewSummary:h,experiments:S,datasets:b,isLoading:m,isError:!!v})]})})}function dss(){const[e,t]=g.useState(""),[n,r]=g.useState("all"),[s,a]=g.useState("all"),{data:i,isLoading:l,error:c}=Dg(),{data:u,isLoading:d,error:f}=fG(),{data:p}=QTe(),h=g.useMemo(()=>i?.datasets??[],[i?.datasets]),m=g.useMemo(()=>u?.experiments??[],[u?.experiments]),v=g.useMemo(()=>ass(h),[h]),y=g.useMemo(()=>rFt(p),[p]),b=l||d,S=f||c;if(S&&gs(S))return o.jsx(lr,{children:o.jsx(Ws,{})});if(f&&ys(f))return o.jsx(lr,{children:o.jsx(Ls,{resource:"experiments"})});if(c&&ys(c))return o.jsx(lr,{children:o.jsx(Ls,{resource:"datasets"})});if(S)return o.jsx(lr,{children:o.jsx(Bi,{title:"Failed to load experiments",message:S.message})});if(m.length===0&&!b)return o.jsx(lr,{children:o.jsx(lss,{})});const w=n!=="all"||s!=="all"||e!=="",k=()=>{t(""),r("all"),a("all")};return o.jsxs(zt,{children:[o.jsx(zt.TopArea,{children:o.jsx(css,{search:e,onSearchChange:t,statusFilter:n,onStatusFilterChange:r,datasetFilter:s,onDatasetFilterChange:a,datasetOptions:v,onReset:k,hasActiveFilters:w})}),o.jsx(rss,{experiments:m,datasets:h,reviewByExperiment:y,isLoading:b,search:e,statusFilter:n,datasetFilter:s})]})}function uz({children:e}){return o.jsxs(zt,{height:"full",children:[o.jsx("div",{}),o.jsx(zt.MainArea,{isCentered:!0,children:e})]})}function fss(){const{experimentId:e}=ur(),{data:t,isLoading:n}=fG(),s=t?.experiments?.find(h=>h.id===e)?.datasetId??"",{data:a,isLoading:i,error:l}=GU(s,e??""),{data:c,isLoading:u,setEndOfListElement:d,isFetchingNextPage:f,hasNextPage:p}=cG({datasetId:s,experimentId:e??"",experimentStatus:a?.status});return!e||n||i?null:l&&gs(l)?o.jsx(uz,{children:o.jsx(Ws,{})}):l&&ys(l)?o.jsx(uz,{children:o.jsx(Ls,{resource:"datasets"})}):l&&JSe(l)||!n&&!s||!i&&!l&&!a?o.jsx(uz,{children:o.jsx(Cr,{iconSlot:o.jsx(Ebe,{}),titleSlot:"Experiment not found",descriptionSlot:`No experiment with id "${e}".`,actionSlot:o.jsxs(ce,{as:Da,to:"/experiments",children:[o.jsx(Nc,{}),"Back to Experiments"]})})}):l?o.jsx(uz,{children:o.jsx(Bi,{title:"Failed to load experiment",message:l instanceof Error?l.message:"An unexpected error occurred. Please try again."})}):o.jsxs(zt,{height:"full",children:[o.jsx(sFt,{experiment:a}),o.jsx(zt.MainArea,{children:o.jsx(nFt,{experimentId:e,datasetId:s,experimentStatus:a.status,results:c??[],isLoading:u,setEndOfListElement:d,isFetchingNextPage:f,hasNextPage:p})})]})}function pss({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 aFt({connections:e,isAdmin:t,disconnectPending:n,onDisconnect:r}){return o.jsx("ul",{className:"space-y-1",children:e.map(s=>o.jsx(pss,{connection:s,isAdmin:t,disconnectPending:n,onDisconnect:()=>r(s.connectionId)},s.connectionId))})}function hss({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(aFt,{connections:a,isAdmin:t,disconnectPending:n,onDisconnect:r})]},s))})}function mss({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(hss,{groups:r,isAdmin:s,disconnectPending:l,onDisconnect:u}):o.jsx(aFt,{connections:n,isAdmin:s,disconnectPending:l,onDisconnect:u}),c?o.jsx("p",{className:"text-red-600",children:String(c)}):null]})}function gss({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 EYe=e=>e.authorId?.trim()||"shared",vss=(e,t)=>{if(!t||new Set(e.map(EYe)).size<=1)return null;const r=new Map;for(const a of e){const i=EYe(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},yss=["*","tool-providers:*","tool-providers:admin"];function bss(){const{data:e}=km();return e?.permissions?.some(t=>yss.includes(t))??!1}function xss(){const[e,t]=g.useState(""),[n,r]=g.useState(""),[s,a]=g.useState(""),i=XN(),l=IH(e||null),c=FEt(e||null,n||null),u=zEt(),d=MEt(),f=bss(),p=i.data?.providers??[],h=l.data?.data??[],m=g.useMemo(()=>c.data?.items??[],[c.data?.items]),v=g.useMemo(()=>vss(m,f),[m,f]),y=w=>{t(w),r("")},b=()=>{!e||!n||u.mutate({providerId:e,toolkit:n,label:s.trim()||null},{onSuccess:()=>{a(""),c.refetch()}})},S=w=>{d.mutate({providerId:e,connectionId:w})};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(gss,{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(mss,{providerId:e,toolkit:n,connections:m,groupedByAuthor:v,isAdmin:f,isLoading:c.isLoading,error:c.error,disconnectPending:d.isPending,disconnectError:d.error,onDisconnect:S})]})}function wss({title:e,description:t,errorBanner:n,children:r}){return o.jsx("div",{"data-testid":"login-page",className:"flex min-h-screen items-center justify-center bg-surface1",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(Qh,{className:"h-10 w-10"}),o.jsx("h1",{className:"text-xl font-semibold text-neutral6",children:e})]}),t,n,r]})})}function iFt({redirectUri:e,onSuccess:t,initialMode:n="signin",errorMessage:r}){const{data:s,isLoading:a}=oc(),{mutate:i,isPending:l,error:c}=War(),{mutate:u,isPending:d,error:f}=Gar(),{mutate:p,isPending:h}=cCt(),[m,v]=g.useState(n),[y,b]=g.useState(""),[S,w]=g.useState(""),[k,_]=g.useState("");if(a)return o.jsx("div",{className:"flex min-h-screen items-center justify-center bg-surface1",children:o.jsx("div",{className:"text-neutral3",children:"Loading..."})});if(!s?.enabled||!s?.login)return o.jsx("div",{className:"flex min-h-screen items-center justify-center bg-surface1",children:o.jsx("div",{className:"text-neutral3",children:"Authentication is not configured"})});const{login:C}=s,E=C.type==="sso"||C.type==="both",j=C.type==="credentials"||C.type==="both",T=C.sso,I=C.signUpEnabled!==!1,A=m==="signin"||!I,P=A?l:d,L=A?c:f,D=()=>{t?t():e?window.location.href=e:window.location.href="/"},q=M=>{M.preventDefault(),A?i({email:S,password:k},{onSuccess:D}):u({email:S,password:k,name:y||void 0},{onSuccess:D})},H=()=>{p({redirectUri:e},{onSuccess:M=>{window.location.href=M.url}})},z=()=>{v(A?"signup":"signin")},B=C.description?o.jsxs("div",{className:"flex items-start gap-2.5 rounded-md border border-border1 bg-surface1 p-3",children:[o.jsx(Sf,{className:"mt-0.5 h-4 w-4 shrink-0 text-neutral4"}),o.jsx("p",{className:"text-sm text-neutral3",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(wss,{title:A?"Sign in to Mastra Studio":"Create your account",description:B,errorBanner:V,children:[j&&o.jsxs("form",{onSubmit:q,className:"space-y-4",children:[!A&&o.jsxs("div",{className:"space-y-2",children:[o.jsx("label",{htmlFor:"name",className:"block text-sm text-neutral4",children:"Name"}),o.jsx(kn,{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:"block text-sm text-neutral4",children:"Email"}),o.jsx(kn,{id:"email",type:"email",value:S,onChange:M=>w(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:"block text-sm text-neutral4",children:"Password"}),o.jsx(kn,{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(ce,{type:"submit",disabled:P,className:"w-full",size:"lg",children:P?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:z,className:"text-neutral6 hover:underline",children:A?"Sign up":"Sign in"})]})]}),E&&j&&o.jsxs("div",{className:"relative",children:[o.jsx("div",{className:"absolute inset-0 flex items-center",children:o.jsx("div",{className:"w-full border-t border-border1"})}),o.jsx("div",{className:"relative flex justify-center text-sm",children:o.jsx("span",{className:"bg-surface1 px-2 text-neutral3",children:"or continue with"})})]}),E&&T&&o.jsxs(ce,{onClick:H,disabled:h,className:"w-full",size:"lg",variant:"outline",children:[T.icon&&o.jsx("span",{className:"mr-2",children:T.icon}),h?"Redirecting...":T.text||"Sign in"]})]})}function Sss(){const[e]=va(),t=bs(),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(iFt,{redirectUri:n,onSuccess:i,initialMode:s,errorMessage:a})}const ep=Mi.KeyValueList;function kss(e){return e instanceof Date?e:new Date(e)}function Oss({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=kss(e.timestamp),h=e.traceId,m=e.spanId;return o.jsxs(Mi,{collapsed:d,children:[o.jsxs(Mi.Header,{children:[o.jsxs(Mi.Heading,{children:["Log ",o.jsx("b",{children:tr(p,"MMM dd, HH:mm:ss.SSS")})]}),o.jsxs(Dr,{className:"ml-auto shrink-0",children:[l&&o.jsx(ce,{size:"md",tooltip:d?"Expand panel":"Collapse panel",onClick:()=>f(!d),children:d?o.jsx(aV,{}):o.jsx(i0e,{})}),o.jsxs(Dr,{spacing:"close",children:[o.jsx(ce,{size:"md",tooltip:"Previous log",onClick:s,disabled:!s,children:o.jsx(sV,{})}),o.jsx(ce,{size:"md",tooltip:"Next log",onClick:a,disabled:!a,children:o.jsx(VD,{})})]}),o.jsx(Mi.CloseButton,{onClick:t})]})]}),!d&&o.jsxs(Mi.Content,{children:[o.jsx("p",{className:"font-mono text-ui-md wrap-break-word whitespace-pre-wrap text-neutral4",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(Dr,{spacing:"close",className:"w-full min-w-0",children:[o.jsxs(ce,{size:"md",className:"min-w-0 flex-1 overflow-hidden",onClick:()=>n?.(h),children:[o.jsx(U8,{}),o.jsx("span",{children:"Trace"}),o.jsxs("span",{className:" ml-auto min-w-0 truncate text-ui-sm text-neutral2",children:["# ",h]})]}),o.jsx(Oa,{content:h,size:"md",tooltip:"Copy Trace ID to clipboard"})]}),m&&o.jsxs(Dr,{spacing:"close",className:"w-full min-w-0",children:[o.jsxs(ce,{size:"md",className:"min-w-0 flex-1 overflow-hidden",disabled:!h||!r,onClick:()=>h&&r?.(h,m),children:[o.jsx(U8,{}),o.jsx("span",{children:"Span"}),o.jsxs("span",{className:" ml-auto min-w-0 truncate text-ui-sm text-neutral2",children:["# ",m]})]}),o.jsx(Oa,{content:m,size:"md",tooltip:"Copy Span ID to clipboard"})]})]}),o.jsxs(ep,{className:"mb-6",children:[e.entityType&&o.jsxs(o.Fragment,{children:[o.jsx(ep.Key,{children:"Entity Type"}),o.jsx(ep.Value,{children:e.entityType})]}),e.entityName&&o.jsxs(o.Fragment,{children:[o.jsx(ep.Key,{children:"Entity Name"}),o.jsx(ep.Value,{children:e.entityName})]}),e.serviceName&&o.jsxs(o.Fragment,{children:[o.jsx(ep.Key,{children:"Service"}),o.jsx(ep.Value,{children:e.serviceName})]}),e.environment&&o.jsxs(o.Fragment,{children:[o.jsx(ep.Key,{children:"Environment"}),o.jsx(ep.Value,{children:e.environment})]}),e.source&&o.jsxs(o.Fragment,{children:[o.jsx(ep.Key,{children:"Source"}),o.jsx(ep.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(ep.Key,{children:v}),o.jsx(ep.Value,{children:String(y)})]},v))})]}),e.data&&Object.keys(e.data).length>0&&o.jsx(Mi.CodeSection,{title:"Data",codeStr:JSON.stringify(e.data,null,2),className:"mt-6"})]})]})}function _ss({error:e,resource:t,errorTitle:n}){if(gs(e))return o.jsx(Ws,{});if(ys(e))return o.jsx(Ls,{resource:t});if(r_t(e,"logs"))return o.jsx(Cr,{iconSlot:o.jsx(iV,{}),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(Bi,{title:n,message:r??"Unknown error"})}function Css({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 Ess={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 jss({level:e}){const t=Ess[e];return o.jsx(Oo,{height:"compact",children:o.jsx("span",{className:"text-ui-sm font-semibold uppercase",style:{color:t.color},children:t.label})})}function Tss({entityType:e,className:t}){const n=K("size-3.5 shrink-0 text-neutral2",t);switch(e.toLowerCase()){case Os.AGENT:return o.jsx(il,{className:n,"aria-hidden":!0});case"workflow":case Os.WORKFLOW_RUN:return o.jsx(Pd,{className:n,"aria-hidden":!0});case Os.TOOL:return o.jsx(Of,{className:n,"aria-hidden":!0});default:return null}}function Nss({entityType:e,entityName:t}){const n=e??"";return o.jsxs(Oo,{height:"compact",className:"flex min-w-0 items-center gap-2",children:[o.jsx(Tss,{entityType:n}),t?o.jsx("span",{className:"min-w-0 truncate text-ui-smd",children:t}):"-"]})}function Iss({message:e}){return o.jsx(Oo,{height:"compact",className:"min-w-0 truncate font-mono text-ui-smd text-neutral4",children:e})}function Ass({data:e}){if(!e||Object.keys(e).length===0)return o.jsx(Oo,{height:"compact",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(SSe,{children:t})}const ql=Object.assign(C3,{Top:uH,TopCell:M_,TopCellWithTooltip:dH,TopCellSmart:tkt,RowWrapper:ESe,RowButton:E3,RowLink:nkt,Spacer:CSe,NoMatch:cH,DateCell:kSe,TimeCell:OSe,LevelCell:jss,EntityCell:Nss,MessageCell:Iss,DataCell:Ass,NextPageLoading:lH}),jYe="6rem 9rem 5rem 10rem minmax(8rem,1fr) minmax(8rem,1fr)",Rss=36,Pss=8;function $ss({logs:e,isLoading:t,isFetchingNextPage:n,hasNextPage:r,setEndOfListElement:s,logIdMap:a,featuredLogId:i,onLogClick:l}){const c=g.useRef(null),u=Bzt({count:e.length,getScrollElement:()=>c.current,estimateSize:()=>Rss,overscan:Pss}),d=g.useRef(t);if(g.useEffect(()=>{d.current&&!t&&c.current?.dispatchEvent(new Event("scroll")),d.current=t},[t]),t)return o.jsx(rl,{columns:jYe});const f=u.getVirtualItems(),p=u.getTotalSize(),h=f[0]?.start??0,m=f.length>0?Math.max(0,p-(f[f.length-1]?.end??0)):0;return o.jsxs(ql,{columns:jYe,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:h}),f.map(v=>{const y=e[v.index];if(!y)return null;const b=a.get(y);if(!b)return null;const S=b===i;return o.jsxs(ql.RowButton,{ref:u.measureElement,"data-index":v.index,onClick:()=>l(y),featured:S,variant:y.level==="error"||y.level==="fatal"?"error":"default",children:[o.jsx(ql.DateCell,{timestamp:y.timestamp}),o.jsx(ql.TimeCell,{timestamp:y.timestamp}),o.jsx(ql.LevelCell,{level:y.level}),o.jsx(ql.EntityCell,{entityType:y.entityType,entityName:y.entityName}),o.jsx(ql.MessageCell,{message:y.message}),o.jsx(ql.DataCell,{data:y.data})]},b)}),o.jsx(ql.Spacer,{height:m})]}),o.jsx(ql.NextPageLoading,{isLoading:n,hasMore:r,setEndOfListElement:s})]})}function Mss({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=>Dss(f,a));return o.jsxs("div",{className:K("grid grid-cols-[1fr_auto] items-start gap-3"),children:[o.jsx(RTe,{fields:a,tokens:i,onTokensChange:l,disabled:s,autoFocusFieldId:c}),u&&o.jsx(ITe,{disabled:s,onClear:d?e:void 0,onRemoveAll:t,onSave:n,onRemoveSaved:r})]})}function Dss(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 Lss={"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"},Sse="MMM d, yyyy HH:mm",kse="Pick a wider range or lower the logging level — verbose entries (debug, info) may be filtered out.";function zss({datePreset:e,dateFrom:t,dateTo:n}){return e&&e!=="all"&&e!=="custom"?{title:`No logs for ${Lss[e]}`,description:kse}:t&&n?{title:`No logs between ${tr(t,Sse)} and ${tr(n,Sse)}`,description:kse}:t?{title:`No logs since ${tr(t,Sse)}`,description:kse}:{title:"No logs yet",description:"Logs will appear here once agents, workflows, or tools are executed."}}const Fss=({datePreset:e,dateFrom:t,dateTo:n}={})=>{const{title:r,description:s}=zss({datePreset:e,dateFrom:t,dateTo:n});return o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Cr,{iconSlot:o.jsx(iV,{}),titleSlot:r,descriptionSlot:s,actionSlot:o.jsxs(ce,{variant:"ghost",as:"a",href:"https://mastra.ai/en/docs/observability/logging",target:"_blank",rel:"noopener noreferrer",children:["Logging Documentation ",o.jsx(o0e,{})]})})})},Bss=20,Uss=1e4;function qss(e,t,n){if(e?.pagination?.hasMore)return n+1}function Vss(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 Hss(e){return r_t(e.state.error,"logs")?!1:Uss}const Wss=({filters:e}={})=>{const t=We(),{inView:n,setRef:r}=R_(),s=$1({queryKey:["logs",e],queryFn:({pageParam:p})=>t.listLogsVNext({pagination:{page:p,perPage:Bss},filters:e,orderBy:{field:"timestamp",direction:"DESC"}}),initialPageParam:0,getNextPageParam:qss,select:Vss,retry:!1,refetchInterval:Hss}),{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}},dz={AGENT:Os.AGENT,WORKFLOW:Os.WORKFLOW_RUN,SCORER:Os.SCORER,INGEST:Os.RAG_INGESTION},oFt=[{label:"Agent",entityType:dz.AGENT},{label:"Workflow",entityType:dz.WORKFLOW},{label:"Scorer",entityType:dz.SCORER},{label:"Ingest",entityType:dz.INGEST}],Zss=[{label:"Debug",value:"debug"},{label:"Info",value:"info"},{label:"Warn",value:"warn"},{label:"Error",value:"error"},{label:"Fatal",value:"fatal"}],Mx="rootEntityType",qb="datePreset",Vb="dateFrom",Hb="dateTo",Gss=new Set(["all","last-24h","last-3d","last-7d","last-14d","last-30d","custom"]),Cl={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"},t5=Object.keys(Cl),YTe=new Set(["tags"]),XTe="mastra:logs:saved-filters";function Qss(e,t=XTe){const n=eas(e),r=e.get(qb);r&&n.set(qb,r);const s=e.get(Vb);s&&n.set(Vb,s);const a=e.get(Hb);a&&n.set(Hb,a);try{localStorage.setItem(t,n.toString())}catch{}}function Yss(e=XTe){try{localStorage.removeItem(e)}catch{}}function TYe(e=XTe){try{const t=localStorage.getItem(e);if(!t)return null;const n=new URLSearchParams(t);return n.toString()?n:null}catch{return null}}function Xss(e){if(e.has(qb)||e.has(Vb)||e.has(Hb)||e.has(Mx))return!0;for(const t of t5)if(e.has(Cl[t]))return!0;return!1}function Kss({availableTags:e,availableRootEntityNames:t,availableServiceNames:n,availableEnvironments:r,loading:s}){const a=[{id:"rootEntityType",label:"Primitive Type",kind:"pick-multi",searchable:!1,options:oFt.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:Zss.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 Jss(e){const t=[],n=new Map([[Mx,"rootEntityType"]]);for(const s of t5)n.set(Cl[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),YTe.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 eas(e){const t=new URLSearchParams,n=e.get(Mx);n&&t.set(Mx,n);for(const r of t5){const s=Cl[r];if(YTe.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 tas(e,t){e.delete(Mx);for(const n of t5)e.delete(Cl[n]);for(const n of t){if(n.fieldId==="rootEntityType"&&typeof n.value=="string"){e.set(Mx,n.value);continue}const r=Cl[n.fieldId];if(r){if(YTe.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 nas({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 ras(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 sas="Filters setting for Logs saved",aas="Filters setting for Logs cleared up";function ias(e,t,n){const{storageKey:r,messages:s,skipHydration:a}={},[i,l]=g.useState(()=>TYe(r)!==null),c=g.useCallback(()=>{Qss(e,r),l(!0);const f=s?.saved??sas;f!==!1&&De.success(f)},[e,r,s?.saved]),u=g.useCallback(()=>{Yss(r),l(!1);const f=s?.cleared??aas;f!==!1&&De.success(f)},[r,s?.cleared]),d=g.useRef(!1);return g.useEffect(()=>{if(a||d.current||(d.current=!0,Xss(e)))return;const f=TYe(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 oas(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 las(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,oas(`${r}${n.message??""}${n.data?JSON.stringify(n.data):""}`))}return t}function cas(e,t,n,r){const s=g.useMemo(()=>las(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 uye="logId",dye="traceId",fye="spanId",DR=1440*60*1e3,uas={"last-24h":DR,"last-3d":3*DR,"last-7d":7*DR,"last-14d":14*DR,"last-30d":30*DR};function fz(e){e.delete(uye),e.delete(dye),e.delete(fye)}function das(e,t,n){const{onRemoveAll:r}={},s=g.useMemo(()=>{const _=e.get(qb);return _&&Gss.has(_)?_:"last-24h"},[e]),a=e.get(Vb),i=e.get(Hb),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 _=uas[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(uye),f=e.get(dye),p=e.get(fye),h=g.useMemo(()=>oFt.find(_=>_.entityType===e.get(Mx)),[e]),m=g.useMemo(()=>Jss(e),[e]),v=g.useCallback(_=>{t(C=>{const E=new URLSearchParams(C);for(const[j,T]of Object.entries(_)){const I=j==="logId"?uye:j==="traceId"?dye:fye;T?E.set(I,T):E.delete(I)}return E},{replace:!0})},[t]),y=g.useCallback(_=>{t(C=>{const E=new URLSearchParams(C);return tas(E,_),fz(E),E},{replace:!0})},[t]),b=y,S=g.useCallback((_,C)=>{if(u.current!=="custom")return;const E=C==="from"?Vb:Hb;t(j=>{const T=new URLSearchParams(j);return _?T.set(E,_.toISOString()):T.delete(E),fz(T),T},{replace:!0})},[t]),w=g.useCallback(_=>{u.current=_,t(C=>{const E=new URLSearchParams(C);return _==="last-24h"?(E.delete(qb),E.delete(Vb),E.delete(Hb)):_==="custom"?E.set(qb,"custom"):(E.set(qb,_),E.delete(Vb),E.delete(Hb)),fz(E),E},{replace:!0})},[t]),k=g.useCallback(()=>{t(_=>{const C=new URLSearchParams(_);C.delete(Mx);for(const E of t5)C.delete(Cl[E]);return C.delete(qb),C.delete(Vb),C.delete(Hb),fz(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:S,handleDatePresetChange:w,handleRemoveAll:k,applyFilterTokens:y}),[e,t,s,l,c,u,d,f,p,h,m,v,b,S,w,k,y])}const xb=Mi.KeyValueList;function fas({spanId:e,span:t,isLoading:n,onClose:r}){const s=t?.startedAt&&t?.endedAt?new Date(t.endedAt).getTime()-new Date(t.startedAt).getTime():null;return o.jsxs(Mi,{children:[o.jsxs(Mi.Header,{children:[o.jsxs(Mi.Heading,{children:["Span ",o.jsxs("b",{children:["# ",e]})]}),o.jsx(Mi.CloseButton,{onClick:r})]}),n?o.jsx(Mi.LoadingData,{children:"Loading span..."}):t?o.jsxs(Mi.Content,{children:[o.jsxs(xb,{children:[t.spanType&&o.jsxs(o.Fragment,{children:[o.jsx(xb.Key,{children:"Type"}),o.jsx(xb.Value,{children:t.spanType})]}),t.startedAt&&o.jsxs(o.Fragment,{children:[o.jsx(xb.Key,{children:"Started"}),o.jsx(xb.Value,{children:tr(new Date(t.startedAt),"MMM dd, HH:mm:ss.SSS")})]}),t.endedAt&&o.jsxs(o.Fragment,{children:[o.jsx(xb.Key,{children:"Ended"}),o.jsx(xb.Value,{children:tr(new Date(t.endedAt),"MMM dd, HH:mm:ss.SSS")})]}),s!=null&&o.jsxs(o.Fragment,{children:[o.jsx(xb.Key,{children:"Duration"}),o.jsx(xb.Value,{children:s<1e3?`${s}ms`:`${(s/1e3).toFixed(2)}s`})]})]}),o.jsx("br",{}),o.jsx(Mi.CodeSection,{title:"Input",icon:o.jsx(rpe,{}),codeStr:JSON.stringify(t.input??null,null,2)}),o.jsx(Mi.CodeSection,{title:"Output",icon:o.jsx(spe,{}),codeStr:JSON.stringify(t.output??null,null,2)}),o.jsx(Mi.CodeSection,{title:"Metadata",icon:o.jsx(mw,{}),codeStr:JSON.stringify(t.metadata??null,null,2)}),o.jsx(Mi.CodeSection,{title:"Attributes",icon:o.jsx(mw,{}),codeStr:JSON.stringify(t.attributes??null,null,2)})]}):o.jsx(Mi.NoData,{children:"Span not found."})]})}function pas(){const[e,t]=va(),n=das(e,t),r=ias(e,t),[s,a]=g.useState(),[i,l]=g.useState(!1),{data:c=[],isPending:u}=BTe(),{data:d=[],isPending:f}=LTe({entityType:n.selectedEntityOption?.entityType,rootOnly:!0}),{data:p=[],isPending:h}=zTe(),{data:m=[],isPending:v}=FTe(),y=g.useMemo(()=>Kss({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(()=>nas({rootEntityType:n.selectedEntityOption?.entityType,dateFrom:n.selectedDateFrom,dateTo:n.selectedDateTo,tokens:n.filterTokens}),[n.filterTokens,n.selectedDateFrom,n.selectedDateTo,n.selectedEntityOption]),{data:S=[],isLoading:w,error:k,isFetchingNextPage:_,hasNextPage:C,setEndOfListElement:E}=Wss({filters:b}),{logIdMap:j,featuredLog:T,handleLogClick:I,handlePreviousLog:A,handleNextLog:P}=cas(S,n.featuredLogId,n.handleFeaturedChange,n.featuredTraceId),{data:L,isLoading:D}=mH(n.featuredTraceId??null),{data:q,isLoading:H}=ZN(n.featuredTraceId??"",n.featuredSpanId??""),z=g.useCallback(()=>n.applyFilterTokens(ras(y,n.filterTokens)),[y,n]),B=g.useCallback(()=>n.handleFeaturedChange({logId:null}),[n]),V=g.useCallback(X=>n.handleFeaturedChange({traceId:X,spanId:null}),[n]),M=g.useCallback((X,te)=>n.handleFeaturedChange({traceId:X,spanId:te}),[n]),Q=g.useCallback(()=>{n.handleFeaturedChange({traceId:null,spanId:null}),l(!1)},[n]),U=g.useCallback(()=>n.handleFeaturedChange({spanId:null}),[n]),$=g.useCallback(X=>n.handleFeaturedChange({spanId:X??null}),[n]),F=o.jsxs(zt.TopArea,{children:[o.jsx(zt.Row,{children:o.jsxs(zt.Column,{className:"flex flex-wrap items-start justify-start gap-2",children:[o.jsx(NTe,{preset:n.datePreset,onPresetChange:n.handleDatePresetChange,dateFrom:n.selectedDateFrom,dateTo:n.selectedDateTo,onDateChange:n.handleDateChange,disabled:w,presets:["last-24h","last-3d","last-7d","last-14d","last-30d","custom"]}),o.jsx(PTe,{fields:y,tokens:n.filterTokens,onTokensChange:n.handleFilterTokensChange,disabled:w,onStartTextFilter:a})]})}),o.jsx(Mss,{isLoading:w,filterFields:y,filterTokens:n.filterTokens,onFilterTokensChange:n.handleFilterTokensChange,onClear:z,onRemoveAll:n.handleRemoveAll,onSave:r.handleSave,onRemoveSaved:r.hasSavedFilters?r.handleRemoveSaved:void 0,autoFocusFilterFieldId:s})]});if(k)return o.jsxs(zt,{width:"wide",height:"full",children:[F,o.jsx(zt.MainArea,{isCentered:!0,children:o.jsx(_ss,{error:k,resource:"logs",errorTitle:"Failed to load logs"})})]});const Z=!!n.selectedEntityOption||n.filterTokens.length>0;return S.length===0&&!w&&!Z?o.jsxs(zt,{width:"wide",height:"full",children:[F,o.jsx(zt.MainArea,{isCentered:!0,children:o.jsx(Fss,{datePreset:n.datePreset,dateFrom:n.selectedDateFrom,dateTo:n.selectedDateTo})})]}):o.jsxs(zt,{width:"wide",height:"full",children:[F,o.jsx(Css,{logCollapsed:i,listSlot:o.jsx($ss,{logs:S,isLoading:w,isFetchingNextPage:_,hasNextPage:C,setEndOfListElement:E,logIdMap:j,featuredLogId:n.featuredLogId,onLogClick:I}),logPanelSlot:T?o.jsx(Oss,{log:T,onClose:B,onTraceClick:V,onSpanClick:M,onPrevious:A,onNext:P,collapsed:i,onCollapsedChange:l}):null,tracePanelSlot:n.featuredTraceId?o.jsx(_kt,{traceId:n.featuredTraceId,spans:L?.spans,isLoading:D,onClose:Q,onSpanSelect:$,selectedSpanId:n.featuredSpanId}):null,spanPanelSlot:n.featuredTraceId&&n.featuredSpanId?o.jsx(fas,{spanId:n.featuredSpanId,span:q?.span,isLoading:H,onClose:U}):null})]})}function has({server:e}){const{paths:t,Link:n}=yn(),s=We().options.baseUrl,a=s?`${s}/api/mcp/${e.id}/sse`:"",{data:i}=r6t(e),l=Object.values(i||{}),c=l.length,u=l.filter(p=>p.toolType==="agent").length,d=l.filter(p=>p.toolType==="workflow").length,f=fm(e.name,50);return o.jsxs(ve.RowLink,{to:t.mcpServerLink(e.id),LinkComponent:n,children:[o.jsx(ve.NameCell,{children:f}),o.jsx(ve.DescriptionCell,{children:a}),o.jsx(ve.TextCell,{className:"text-center",children:u||""}),o.jsx(ve.TextCell,{className:"text-center",children:c||""}),o.jsx(ve.TextCell,{className:"text-center",children:d||""})]})}function mas({mcpServers:e,isLoading:t,search:n=""}){const r=g.useMemo(()=>{const s=n.toLowerCase();return e.filter(a=>a.name?.toLowerCase().includes(s)||a.id?.toLowerCase().includes(s))},[e,n]);return t?o.jsx(rl,{columns:"auto 1fr auto auto auto"}):o.jsxs(ve,{columns:"auto 1fr auto auto auto",variant:"striped",children:[o.jsxs(ve.Top,{children:[o.jsx(ve.TopCell,{children:"Name"}),o.jsx(ve.TopCell,{children:"URL"}),o.jsx(ve.TopCellSmart,{long:"Agents",short:o.jsx(il,{}),tooltip:"Agent Tools",className:"text-center"}),o.jsx(ve.TopCellSmart,{long:"Tools",short:o.jsx(Of,{}),tooltip:"Tools",className:"text-center"}),o.jsx(ve.TopCellSmart,{long:"Workflows",short:o.jsx(Pd,{}),tooltip:"Workflow Tools",className:"text-center"})]}),r.length===0&&n?o.jsx(ve.NoMatch,{message:"No MCP Servers match your search"}):null,r.map(s=>o.jsx(has,{server:s},s.id))]})}const gas=()=>o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Cr,{iconSlot:o.jsx(Ef,{}),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(ce,{variant:"ghost",as:"a",href:"https://mastra.ai/docs/tools-mcp/mcp-overview",target:"_blank",rel:"noopener noreferrer",children:["MCP Documentation ",o.jsx(_a,{})]})})}),vas=()=>{const{data:e=[],isLoading:t,error:n}=QZ(),[r,s]=g.useState("");return n&&gs(n)?o.jsx(lr,{children:o.jsx(Ws,{})}):n&&ys(n)?o.jsx(lr,{children:o.jsx(Ls,{resource:"MCP servers"})}):n?o.jsx(lr,{children:o.jsx(Bi,{title:"Failed to load MCP servers",message:n.message})}):e.length===0&&!t?o.jsx(lr,{children:o.jsx(gas,{})}):o.jsxs(zt,{children:[o.jsx(zt.TopArea,{children:o.jsx("div",{className:"max-w-120",children:o.jsx(Nf,{onSearch:s,label:"Filter MCP servers",placeholder:"Filter by name"})})}),o.jsx(mas,{mcpServers:e,isLoading:t,search:r})]})},yas=(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 bas({tools:e,agents:t,isLoading:n,search:r=""}){const{paths:s,Link:a}=yn(),i=g.useMemo(()=>yas(e,t),[e,t]),l=g.useMemo(()=>i.filter(c=>c.id.toLowerCase().includes(r.toLowerCase())),[i,r]);return n?o.jsx(rl,{columns:"auto 1fr auto"}):o.jsxs(ve,{columns:"auto 1fr auto",variant:"striped",children:[o.jsxs(ve.Top,{children:[o.jsx(ve.TopCell,{children:"Name"}),o.jsx(ve.TopCell,{children:"Description"}),o.jsx(ve.TopCellSmart,{long:"Agents",short:o.jsx(il,{}),tooltip:"Attached Agents",className:"text-center"})]}),l.length===0&&r?o.jsx(ve.NoMatch,{message:"No Tools match your search"}):null,l.map(c=>{const u=fm(c.id,50),d=fm(c.description??"",200),f=c.agents.length;return o.jsxs(ve.RowLink,{to:s.toolLink(c.id),LinkComponent:a,children:[o.jsx(ve.NameCell,{children:u}),o.jsx(ve.DescriptionCell,{children:d}),o.jsx(ve.TextCell,{className:"text-center",children:f||""})]},c.id)})]})}const xas=()=>o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Cr,{iconSlot:o.jsx(Ef,{}),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(ce,{variant:"ghost",as:"a",href:"https://mastra.ai/docs/agents/using-tools-and-mcp",target:"_blank",rel:"noopener noreferrer",children:["Tools Documentation ",o.jsx(_a,{})]})})}),was=()=>{const e=We();return Rn({mutationFn:async({toolId:t,input:n,requestContext:r})=>{const s=new l_;Object.entries(r??{}).forEach(([a,i])=>{s.set(a,i)});try{return await e.getTool(t).execute({data:n,requestContext:s})}catch(a){throw De.error("Error executing dev tool"),console.error("Error executing dev tool:",a),a}}})},Sas=({toolId:e})=>{const{canExecute:t}=ol(),n=t("tools"),{data:r={}}=Om(),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}=Tsr(e,{enabled:!s}),c=s||a,{mutateAsync:u,isPending:d,data:f}=was(),{requestContext:p}=_s();g.useEffect(()=>{if(l){const v=l instanceof Error?l.message:"Failed to load tool";De.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?um(lm(vx(c?.inputSchema))):Ss({});return i?o.jsxs("div",{className:"p-6",children:[o.jsx(xt,{className:"h-8 w-48 mb-4"}),o.jsx(xt,{className:"h-32 w-full"})]}):l?null:c?n?o.jsx(gTe,{executionResult:f,isExecutingTool:d,zodInputSchema:m,handleExecuteTool:h,toolDescription:c.description,toolId:c.id,requestContextSchema:c.requestContextSchema}):o.jsx("div",{className:"py-12 text-center px-6",children:o.jsx(ye,{variant:"ui-sm",className:"text-neutral3",children:"You don't have permission to execute tools."})}):o.jsx("div",{className:"py-12 text-center px-6",children:o.jsx(ye,{variant:"header-md",className:"text-neutral3",children:"Tool not found"})})};function kas({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}=QN(),{data:p={},isLoading:h,isError:m,error:v}=Om(),{navigate:y,paths:b}=yn();g.useEffect(()=>{if(d){const _=f instanceof Error?f.message:"Failed to load tools";De.error(`Error loading tools: ${_}`)}},[d,f]),g.useEffect(()=>{if(m){const _=v instanceof Error?v.message:"Failed to load agents";De.error(`Error loading agents: ${_}`)}},[m,v]);const S=new Map;Object.values(p).forEach(_=>{_.tools&&Object.values(_.tools).forEach(C=>{S.has(C.id)||S.set(C.id,C)})}),Object.values(c).forEach(_=>{S.has(_.id)||S.set(_.id,_)});const w=Array.from(S.values()).map(_=>({label:_.id,value:_.id})),k=_=>{t?t(_):_&&_!==e&&y(b.toolLink(_))};return o.jsx(tc,{options:w,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 Oas=({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(Sy,{children:o.jsx(ye,{as:"h1",variant:"header-md",className:"text-neutral3 font-medium py-20 text-center",children:"Server not found"})});const a=`npx -y mcp-remote ${n}`;return o.jsxs(Sy,{isDivided:!0,children:[o.jsxs("div",{className:"px-8 py-12 mx-auto max-w-2xl w-full",children:[o.jsx(ye,{as:"h1",variant:"header-md",className:"text-neutral6 font-medium pb-4",children:t.name}),o.jsxs("div",{className:"flex items-center gap-1 pb-6",children:[o.jsx(dn,{icon:o.jsx(mkt,{className:"text-neutral6"}),className:"rounded-r-sm text-neutral4!",children:"Version"}),o.jsx(dn,{className:"rounded-l-sm text-neutral4!",children:t.version_detail.version})]}),o.jsx(ye,{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:"rounded-lg border border-border1 bg-surface3 p-4",children:[o.jsx(dn,{icon:o.jsx("span",{className:"font-mono w-6 text-accent1 font-medium mr-1",children:"HTTP"}),children:"Regular HTTP Endpoint"}),o.jsx(ye,{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(ye,{className:"px-2 py-1 bg-surface4 rounded-lg",children:r}),o.jsx("div",{className:"pt-1",children:o.jsx(Oa,{tooltip:"Copy HTTP Stream URL",content:r})})]})]}),o.jsxs("div",{className:"rounded-lg border border-border1 bg-surface3 p-4",children:[o.jsx(dn,{icon:o.jsx("span",{className:"font-mono w-6 text-accent1 font-medium mr-1",children:"SSE"}),children:"Server-Sent Events"}),o.jsx(ye,{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(ye,{className:"px-2 py-1 bg-surface4 rounded-lg",children:n}),o.jsx("div",{className:"pt-1",children:o.jsx(Oa,{tooltip:"Copy SSE URL",content:n})})]})]}),o.jsxs("div",{className:"rounded-lg border border-border1 bg-surface3 p-4",children:[o.jsx(dn,{icon:o.jsx("span",{className:"font-mono w-6 text-accent1 font-medium mr-1",children:"CLI"}),children:"Command Line"}),o.jsx(ye,{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(ye,{className:"px-2 py-1 bg-surface4 rounded-lg",children:a}),o.jsx("div",{className:"pt-1",children:o.jsx(Oa,{tooltip:"Copy Command Line Config",content:a})})]})]})]})]}),o.jsx("div",{className:"h-full overflow-y-scroll border-l border-border1",children:o.jsx(_as,{server:t})})]})},_as=({server:e})=>{const{data:t={},isLoading:n}=r6t(e);if(n)return null;const r=Object.keys(t);return o.jsxs("div",{className:"p-5 overflow-y-scroll",children:[o.jsxs("div",{className:"text-neutral6 flex gap-2 items-center",children:[o.jsx(Ue,{size:"lg",className:"bg-surface4 rounded-md p-1",children:o.jsx(D_,{})}),o.jsx(ye,{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(Eas,{tool:a,serverId:e.id},s)})})]})};function Cas(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 Eas=({tool:e,serverId:t})=>{const n=g.useRef(null),{Link:r,paths:s}=yn(),a=N9t[e.toolType||"tool"],i=Cas(e._meta);return o.jsxs(Af,{onClick:()=>n.current?.click(),children:[o.jsx(LEt,{children:o.jsx(a,{className:"group-hover/entity:text-accent6"})}),o.jsxs(Pf,{children:[o.jsx(Rf,{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(dn,{className:"text-[10px] py-0",children:"App"})]})}),o.jsx(Jp,{children:e.description})]})]})},jas=()=>{const{serverId:e}=ur(),{data:t=[],isLoading:n}=QZ(),r=t.find(s=>s.id===e);return o.jsx("div",{className:"h-full w-full overflow-hidden",children:o.jsx(Oas,{isLoading:n,server:r})})};function Tas(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 Nas=({toolId:e,serverId:t})=>{const{canExecute:n}=ol(),r=n("tools"),s=We(),{data:a,isLoading:i,error:l}=Fje(t,e),{mutateAsync:c,isPending:u,data:d}=$Ur(t,e),f=a?Tas(a._meta):void 0,{data:p}=St({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";De.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(xt,{className:"h-8 w-48 mb-4"}),o.jsx(xt,{className:"h-32 w-full"})]});if(l)return null;if(!a)return o.jsx("div",{className:"py-12 text-center px-6",children:o.jsx(ye,{variant:"header-md",className:"text-neutral3",children:"Tool not found"})});if(!r)return o.jsx("div",{className:"py-12 text-center px-6",children:o.jsx(ye,{variant:"ui-sm",className:"text-neutral3",children:"You don't have permission to execute tools."})});let v;try{v=um(lm(a.inputSchema))}catch(y){console.error("Error processing input schema:",y),De.error("Failed to process tool input schema."),v=Ss({})}return o.jsxs("div",{className:"flex flex-col gap-4",children:[p&&o.jsx("div",{className:"border-b border-border1 p-4",children:o.jsx(n6t,{html:p,toolName:a.name??a.id,onToolCall:h})}),o.jsx(gTe,{executionResult:d,isExecutingTool:u,zodInputSchema:v,handleExecuteTool:m,toolDescription:a.description||"",toolId:a.id})]})},Ias=()=>{const{serverId:e,toolId:t}=ur(),{data:n,isLoading:r}=Fje(e,t);return r||!n?null:o.jsx("div",{className:"h-full w-full overflow-y-auto",children:o.jsx(Nas,{toolId:t,serverId:e})})},lFt=[{label:"Agent",entityType:Os.AGENT},{label:"Workflow",entityType:Os.WORKFLOW_RUN},{label:"Scorer",entityType:Os.SCORER},{label:"Ingest",entityType:Os.RAG_INGESTION}],fN="rootEntityType",pN={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"},pG=Object.keys(pN),KTe="mastra:metrics:saved-filters";function Aas(e){const t=Das(e);try{localStorage.setItem(KTe,t.toString())}catch{}}function Ras(){try{localStorage.removeItem(KTe)}catch{}}function cFt(){try{const e=localStorage.getItem(KTe);if(!e)return null;const t=new URLSearchParams(e);return t.toString()?t:null}catch{return null}}function Pas(e){if(e.has(fN))return!0;for(const t of pG)if(e.has(pN[t]))return!0;return!1}function $as({availableTags:e,availableEntityNames:t,availableServiceNames:n,availableEnvironments:r,loading:s}){const a=[{id:"rootEntityType",label:"Primitive Type",kind:"pick-multi",searchable:!1,options:lFt.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 Mas(e){const t=[],n=new Map([[fN,"rootEntityType"]]);for(const s of pG)n.set(pN[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 Das(e){const t=new URLSearchParams,n=e.getAll(fN);for(const r of n)t.append(fN,r);for(const r of pG){const s=pN[r],a=e.getAll(s);for(const i of a)t.append(s,i)}return t}function Las(e,t){e.delete(fN);for(const n of pG)e.delete(pN[n]);for(const n of t){const r=n.fieldId==="rootEntityType"?fN:pN[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 zas="Any";function NYe(e){const t=e.trim();return t===""||t===zas}const Fas=new Set(lFt.map(e=>e.entityType));function IYe(e){const t=e.trim();return Fas.has(t)?t:void 0}function Bas(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=>!NYe(a));if(s.length===0)continue;if(r==="tags")t.tags=s;else if(r==="rootEntityType"){const a=s[0],i=a!==void 0?IYe(a):void 0;i&&(t.rootEntityType=i)}else t[r]=s[0]}else if(typeof n.value=="string"){if(NYe(n.value))continue;const s=n.value.trim();if(r==="rootEntityType"){const a=IYe(s);a&&(t.rootEntityType=a)}else t[r]=s}}return t}const uFt=[{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"}],Uas=new Set(uFt.map(e=>e.value));function qas(e){return typeof e=="string"&&(Uas.has(e)||e==="custom")}const dFt=g.createContext({datePreset:"24h",setDatePreset:()=>{},customRange:void 0,setCustomRange:()=>{},dateRangeLabel:"Last 24 hours",filterTokens:[],setFilterTokens:()=>{},dimensionalFilter:{},dimensionalFilterKey:"{}",tracesBasePath:void 0,logsBasePath:void 0});function hG(){return g.useContext(dFt)}function Vas(e,t){return e!=="custom"?uFt.find(n=>n.value===e)?.label??e:t?.from?t.to?`${tr(t.from,"MMM d, yyyy")} – ${tr(t.to,"MMM d, yyyy")}`:tr(t.from,"MMM d, yyyy"):"Custom range"}function Has({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(()=>Bas(d),[d]),p=g.useMemo(()=>JSON.stringify(f),[f]),h=Vas(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(dFt.Provider,{value:m,children:e})}const Was=["last-24h","last-3d","last-7d","last-14d","last-30d","custom"];function Zas(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 Gas(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 Qas(){const{datePreset:e,setDatePreset:t,customRange:n,setCustomRange:r}=hG(),s=g.useRef(e);s.current=e;const a=g.useRef(n);return a.current=n,o.jsx(NTe,{preset:Zas(e),onPresetChange:i=>{const l=Gas(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:Was})}const pye=1440*60*1e3,Yas={"24h":pye,"3d":4320*60*1e3,"7d":10080*60*1e3,"14d":336*60*60*1e3,"30d":720*60*60*1e3};function Xas(e,t,n){if(e!=="custom"){const r=Yas[e]??pye;return{start:new Date(n-r),end:new Date(n)}}return{start:t?.from??new Date(n-pye),end:t?.to??new Date(n)}}function Tm(){const{datePreset:e,customRange:t,dimensionalFilter:n,dimensionalFilterKey:r}=hG(),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(()=>Xas(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 fFt(){const e=We(),{filters:t,filterKey:n}=Tm();return St({queryKey:["metrics","agent-runs-kpi",n],queryFn:()=>e.getMetricAggregate({name:["mastra_agent_duration_ms"],aggregation:"count",filters:t,comparePeriod:"previous_period"})})}function n5({href:e,LinkComponent:t="a"}){return o.jsx(ce,{as:t,href:e,variant:"ghost",size:"icon-md",tooltip:"View in Traces","aria-label":"View in Traces",children:o.jsx(q_n,{})})}function Kas({href:e,LinkComponent:t="a"}){return o.jsx(ce,{as:t,href:e,variant:"ghost",size:"icon-md",tooltip:"View errors in Logs","aria-label":"View errors in Logs",children:o.jsx(_Cn,{})})}const Jas=[{dataKey:"p50",label:"p50",color:Mp.blue,aggregate:e=>({value:e.length>0?`${Math.round(e.reduce((t,n)=>t+n.p50,0)/e.length)}`:"0",suffix:"avg ms"})},{dataKey:"p95",label:"p95",color:Mp.yellow,aggregate:e=>({value:e.length>0?`${Math.round(e.reduce((t,n)=>t+n.p95,0)/e.length)}`:"0",suffix:"avg ms"})}];function eis(e){return e==="agents"||e==="workflows"||e==="tools"}function Ose({data:e,onPointClick:t}){return e.length===0?o.jsx(Vt.NoData,{message:"No latency data yet"}):o.jsx(WU,{data:e,series:Jas,onPointClick:t?n=>{const r=n;typeof r?.tsMs=="number"&&Number.isFinite(r.tsMs)&&t(r)}:void 0})}function tis({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,S)=>b+S,0)/v.length)}ms`:"—";return o.jsxs(Vt,{children:[o.jsxs(Vt.TopBar,{children:[o.jsx(Vt.TitleAndDescription,{title:"Latency",description:"Hourly p50 and p95 latency."}),m&&o.jsx(Vt.Summary,{value:y,label:"Avg p50"}),h?o.jsx(Vt.Actions,{children:h}):null]}),t?o.jsx(Vt.Loading,{}):n?o.jsx(Vt.Error,{message:"Failed to load latency data"}):o.jsx(Vt.Content,{children:m?o.jsxs(Ac,{value:p,onValueChange:b=>{eis(b)&&c[b]&&f(b)},defaultTab:u,className:"overflow-visible",children:[o.jsxs(Ic,{children:[o.jsx(Ar,{value:"agents",disabled:!a,disabledTooltip:"No agent latency data for this period",children:"Agents"}),o.jsx(Ar,{value:"workflows",disabled:!i,disabledTooltip:"No workflow latency data for this period",children:"Workflows"}),o.jsx(Ar,{value:"tools",disabled:!l,disabledTooltip:"No tool latency data for this period",children:"Tools"})]}),o.jsx(Xr,{value:"agents",children:o.jsx(Ose,{data:e.agentData,onPointClick:r?b=>r("agents",b):void 0})}),o.jsx(Xr,{value:"workflows",children:o.jsx(Ose,{data:e.workflowData,onPointClick:r?b=>r("workflows",b):void 0})}),o.jsx(Xr,{value:"tools",children:o.jsx(Ose,{data:e.toolData,onPointClick:r?b=>r("tools",b):void 0})})]}):o.jsx(Vt.NoData,{message:"No latency data yet"})})]})}function nis(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 ris(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 pFt(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=nis(s);l&&e.set(t,l)}function No(e,t,n){typeof n=="string"&&n.length>0&&e.set(t,n)}function hFt(e,t,n){if(!(!Array.isArray(n)||n.length===0))for(const r of n)r&&e.append(t,r)}function AYe({preset:e,customRange:t,dashboardFilter:n,scope:r,tracesBasePath:s="/observability"}){const a=new URLSearchParams;a.set(ww,"branches"),pFt(a,Sw,kw,Ow,e,t,r.window);const i=r.rootEntityType??n.rootEntityType;i&&a.set(Px,i),r.status&&a.set($x,r.status),No(a,_l.entityName,r.entityName??n.entityName),No(a,_l.threadId,r.threadId??n.threadId),No(a,_l.resourceId,r.resourceId??n.resourceId),No(a,_l.entityId,n.entityId),No(a,_l.runId,n.runId),No(a,_l.sessionId,n.sessionId),No(a,_l.requestId,n.requestId),No(a,_l.userId,n.userId),No(a,_l.organizationId,n.organizationId),No(a,_l.experimentId,n.experimentId),No(a,_l.serviceName,n.serviceName),No(a,_l.environment,n.environment),hFt(a,_l.tags,n.tags);const l=a.toString();return l?`${s}?${l}`:s}function sis({preset:e,customRange:t,dashboardFilter:n,scope:r,logsBasePath:s="/logs"}){const a=new URLSearchParams;pFt(a,qb,Vb,Hb,e,t,r.window);const i=r.rootEntityType??n.rootEntityType;i&&a.set(Mx,i),No(a,Cl.entityName,r.entityName??n.entityName),No(a,Cl.threadId,r.threadId??n.threadId),No(a,Cl.resourceId,r.resourceId??n.resourceId),No(a,Cl.runId,n.runId),No(a,Cl.sessionId,n.sessionId),No(a,Cl.requestId,n.requestId),No(a,Cl.userId,n.userId),No(a,Cl.organizationId,n.organizationId),No(a,Cl.experimentId,n.experimentId),No(a,Cl.serviceName,n.serviceName),No(a,Cl.environment,n.environment),hFt(a,Cl.tags,n.tags),r.status==="error"&&a.append(Cl.level,"error");const l=a.toString();return l?`${s}?${l}`:s}function EI(){const{datePreset:e,customRange:t,dimensionalFilter:n,tracesBasePath:r,logsBasePath:s}=hG(),a=g.useCallback((c={})=>AYe({preset:e,customRange:t,dashboardFilter:n,scope:c,tracesBasePath:r}),[e,t,n,r]),i=g.useCallback((c={})=>sis({preset:e,customRange:t,dashboardFilter:n,scope:c,logsBasePath:s}),[e,t,n,s]),l=g.useCallback((c,u,d)=>{const f=ris(u,d);return AYe({preset:e,customRange:t,dashboardFilter:n,scope:{...c,window:f},tracesBasePath:r})},[e,t,n,r]);return{getTracesHref:a,getLogsHref:i,getBucketTracesHref:l}}const mFt="1h";async function _se(e,t,n){const r=await e.getMetricPercentiles({name:t,percentiles:[.5,.95],interval:mFt,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 ais(){const e=We(),{filters:t,filterKey:n}=Tm();return St({queryKey:["metrics","latency",n],queryFn:async()=>{const[r,s,a]=await Promise.all([_se(e,"mastra_agent_duration_ms",t),_se(e,"mastra_workflow_duration_ms",t),_se(e,"mastra_tool_duration_ms",t)]);return{agentData:r,workflowData:s,toolData:a,interval:mFt}}})}const RYe={agents:Os.AGENT,workflows:Os.WORKFLOW_RUN,tools:Os.TOOL};function iis(){const{data:e,isLoading:t,isError:n}=ais(),{getTracesHref:r,getBucketTracesHref:s}=EI(),{Link:a}=yn(),i=bs();return o.jsx(tis,{data:e,isLoading:t,isError:n,onPointClick:(l,c)=>{Number.isFinite(c.tsMs)&&i(s({rootEntityType:RYe[l]},c.tsMs,"1h"))},actions:l=>o.jsx(n5,{href:r({rootEntityType:RYe[l]}),LinkComponent:a})})}function ois(e){return e==="threads"||e==="resources"}function Cse(e){return e.length<=12?e:`${e.slice(0,6)}…${e.slice(-4)}`}function lis({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(Vt,{children:[o.jsxs(Vt.TopBar,{children:[o.jsx(Vt.TitleAndDescription,{title:"Memory",description:"Resource and Thread consumption"}),i==="threads"&&d&&o.jsx(Vt.Summary,{value:p.toLocaleString(),label:"Total runs"}),i==="resources"&&f&&o.jsx(Vt.Summary,{value:h.toLocaleString(),label:"Total threads"}),v?o.jsx(Vt.Actions,{children:v}):null]}),m.isLoading?o.jsx(Vt.Loading,{}):m.isError?o.jsx(Vt.Error,{message:"Failed to load memory data"}):o.jsx(Vt.Content,{children:o.jsxs(Ac,{defaultTab:"threads",value:i,onValueChange:y=>{ois(y)&&l(y)},className:"grid h-full grid-rows-[auto_1fr] overflow-y-auto",children:[o.jsxs(Ic,{children:[o.jsx(Ar,{value:"threads",children:"Threads"}),o.jsx(Ar,{value:"resources",children:"Resources"})]}),o.jsx(Xr,{value:"threads",children:d?o.jsxs(ve,{columns:"auto auto auto auto auto",...lye,children:[o.jsxs(ve.Top,{children:[o.jsx(ve.TopCell,{sticky:"start",children:"Thread ID"}),o.jsx(ve.TopCell,{className:"justify-end text-right",children:"Resource ID"}),o.jsx(ve.TopCell,{className:"justify-end text-right",children:"Runs"}),o.jsx(ve.TopCell,{className:"justify-end text-right",children:"Tokens"}),o.jsx(ve.TopCell,{className:"justify-end text-right",children:"Cost"})]}),c.map(y=>{const b=n?.(y),S=o.jsxs(o.Fragment,{children:[o.jsx(ve.RowHeaderCell,{height:"compact",className:"text-ui-sm",children:Cse(y.threadId)}),o.jsx(ve.NumberCell,{children:y.resourceId?Cse(y.resourceId):"—"}),o.jsx(ve.NumberCell,{highlight:!0,children:y.runs.toLocaleString()}),o.jsx(ve.NumberCell,{children:y.tokens>0?wc(y.tokens):"—"}),o.jsx(ve.NumberCell,{children:y.cost!=null?Sg(y.cost,y.costUnit):"—"})]});return b?o.jsx(ve.RowLink,{to:b,LinkComponent:a,children:S},y.key):o.jsx(ve.RowStatic,{children:S},y.key)})]}):o.jsx(Vt.NoData,{message:"No thread activity yet"})}),o.jsx(Xr,{value:"resources",children:f?o.jsxs(ve,{columns:"auto auto auto auto",...lye,children:[o.jsxs(ve.Top,{children:[o.jsx(ve.TopCell,{sticky:"start",children:"Resource ID"}),o.jsx(ve.TopCell,{className:"justify-end text-right",children:"Threads"}),o.jsx(ve.TopCell,{className:"justify-end text-right",children:"Tokens"}),o.jsx(ve.TopCell,{className:"justify-end text-right",children:"Cost"})]}),u.map(y=>{const b=r?.(y),S=o.jsxs(o.Fragment,{children:[o.jsx(ve.RowHeaderCell,{height:"compact",className:"text-ui-sm",children:Cse(y.resourceId)}),o.jsx(ve.NumberCell,{highlight:!0,children:y.threadCount.toLocaleString()}),o.jsx(ve.NumberCell,{children:y.tokens>0?wc(y.tokens):"—"}),o.jsx(ve.NumberCell,{children:y.cost!=null?Sg(y.cost,y.costUnit):"—"})]});return b?o.jsx(ve.RowLink,{to:b,LinkComponent:a,children:S},y.key):o.jsx(ve.RowStatic,{children:S},y.key)})]}):o.jsx(Vt.NoData,{message:"No resource activity yet"})})]})})]})}function r5(e,t,n){const r=e.get(t);if(r!==void 0)return r;const s=n();return e.set(t,s),s}const Ese=20;function cis(){const e=We(),{filters:t,filterKey:n}=Tm();return St({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:Ese}),e.getMetricBreakdown({...r,name:["mastra_model_total_input_tokens"],aggregation:"sum",limit:Ese}),e.getMetricBreakdown({...r,name:["mastra_model_total_output_tokens"],aggregation:"sum",limit:Ese})]),l=new Map,c=d=>r5(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 jse=20;function uis(){const e=We(),{filters:t,filterKey:n}=Tm();return St({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:jse}),e.getMetricBreakdown({...r,name:["mastra_model_total_input_tokens"],aggregation:"sum",limit:jse}),e.getMetricBreakdown({...r,name:["mastra_model_total_output_tokens"],aggregation:"sum",limit:jse})]),l=new Map,c=d=>r5(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 dis(){const e=cis(),t=uis(),{getTracesHref:n}=EI(),{Link:r}=yn();return o.jsx(lis,{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 s5({label:e,value:t,prevValue:n,changePct:r,isLoading:s,isError:a}){const i=t!=null;return o.jsxs(Jr,{children:[o.jsx(Jr.Label,{children:e}),o.jsx(Jr.Value,{className:i?void 0:"invisible",children:i?t:"—"}),a?o.jsx(Jr.Error,{}):s?o.jsx(Jr.Loading,{}):i?r!=null?o.jsx(Jr.Change,{changePct:r,prevValue:n}):o.jsx(Jr.NoChange,{}):o.jsx(Jr.NoData,{})]})}function fis(){const e=We(),{filters:t,filterKey:n}=Tm();return St({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 pis(){const e=We(),{filters:t,filterKey:n}=Tm();return St({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 his(){const e=We(),{filters:t,filterKey:n}=Tm();return St({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 mis(){const e=We(),{filters:t,filterKey:n}=Tm();return St({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 gis(){const{data:e,isLoading:t,isError:n}=fFt();return o.jsx(s5,{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 vis(){const{data:e,isLoading:t,isError:n}=his();return o.jsx(s5,{label:"Total Model Cost",value:e?.cost!=null?Sg(e.cost,e.costUnit):null,prevValue:e?.previousCost!=null?Sg(e.previousCost,e.costUnit):void 0,changePct:e?.costChangePercent??null,isLoading:t,isError:n})}function yis(){const{data:e,isLoading:t,isError:n}=mis();return o.jsx(s5,{label:"Total Tokens",value:e?.value!=null?wc(e.value):null,prevValue:e?.previousValue!=null?wc(e.previousValue):void 0,changePct:e?.changePercent??null,isLoading:t,isError:n})}function bis(){const{data:e,isLoading:t,isError:n}=pis();return o.jsx(s5,{label:"Total Threads",value:e?.value!=null?wc(e.value):null,prevValue:e?.previousValue!=null?wc(e.previousValue):void 0,changePct:e?.changePercent??null,isLoading:t,isError:n})}function xis(){const{data:e,isLoading:t,isError:n}=fis();return o.jsx(s5,{label:"Total Resources",value:e?.value!=null?wc(e.value):null,prevValue:e?.previousValue!=null?wc(e.previousValue):void 0,changePct:e?.changePercent??null,isLoading:t,isError:n})}function wis({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=>Sis(f,a));return o.jsxs("div",{className:K("grid grid-cols-[1fr_auto] gap-3 items-start"),children:[o.jsx(RTe,{fields:a,tokens:i,onTokensChange:l,disabled:s,autoFocusFieldId:c}),u&&o.jsx(ITe,{disabled:s,onClear:d?e:void 0,onRemoveAll:t,onSave:n,onRemoveSaved:r})]})}function Sis(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 kis({rows:e,isLoading:t,isError:n,getRowHref:r,actions:s,LinkComponent:a}){const i=!!e&&e.length>0;return o.jsxs(Vt,{children:[o.jsxs(Vt.TopBar,{children:[o.jsx(Vt.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?Sg(l):"—":c.size===1?u=l>0?Sg(l,[...c][0]):"—":u="Mixed",o.jsx(Vt.Summary,{value:u,label:"Total cost"})})(),s?o.jsx(Vt.Actions,{children:s}):null]}),t?o.jsx(Vt.Loading,{}):n?o.jsx(Vt.Error,{message:"Failed to load model usage data"}):o.jsx(Vt.Content,{children:i?o.jsxs(ve,{columns:"auto auto auto auto auto auto",...lye,children:[o.jsxs(ve.Top,{children:[o.jsx(ve.TopCell,{sticky:"start",children:"Model"}),o.jsx(ve.TopCell,{className:"justify-end text-right",children:"Input"}),o.jsx(ve.TopCell,{className:"justify-end text-right",children:"Output"}),o.jsx(ve.TopCell,{className:"justify-end text-right",children:"Cache Read"}),o.jsx(ve.TopCell,{className:"justify-end text-right",children:"Cache Write"}),o.jsx(ve.TopCell,{className:"justify-end text-right",children:"Cost"})]}),e.map(l=>{const c=r?.(l),u=o.jsxs(o.Fragment,{children:[o.jsx(ve.RowHeaderCell,{height:"compact",className:"text-ui-sm",children:l.model}),o.jsx(ve.NumberCell,{children:l.input}),o.jsx(ve.NumberCell,{children:l.output}),o.jsx(ve.NumberCell,{children:l.cacheRead}),o.jsx(ve.NumberCell,{children:l.cacheWrite}),o.jsx(ve.NumberCell,{highlight:!0,children:l.cost!=null?Sg(l.cost,l.costUnit):"—"})]});return c?o.jsx(ve.RowLink,{to:c,LinkComponent:a,children:u},l.model):o.jsx(ve.RowStatic,{children:u},l.model)})]}):o.jsx(Vt.NoData,{message:"No model usage data yet"})})]})}function Ois(){const e=We(),{filters:t,filterKey:n}=Tm();return St({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=>r5(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:wc(f.input),output:wc(f.output),cacheRead:wc(f.cacheRead),cacheWrite:wc(f.cacheWrite),cost:f.cost,costUnit:f.costUnit})).sort((d,f)=>d.model.localeCompare(f.model))}})}function _is(){const{data:e,isLoading:t,isError:n}=Ois(),{getTracesHref:r}=EI(),{Link:s}=yn();return o.jsx(kis,{rows:e,isLoading:t,isError:n,LinkComponent:s,getRowHref:()=>r({rootEntityType:Os.AGENT}),actions:o.jsx(n5,{href:r({rootEntityType:Os.AGENT}),LinkComponent:s})})}function Cis(e){return e==="tokens"||e==="cost"}function Eis({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,S)=>b+S.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,S)=>b+(S.cost??0),0):0,y=h&&v>0;return o.jsxs(Vt,{children:[o.jsxs(Vt.TopBar,{children:[o.jsx(Vt.TitleAndDescription,{title:"Token Usage by Agent",description:"Token consumption grouped by agent."}),u&&(i==="cost"&&y?o.jsx(Vt.Summary,{value:Sg(v,m),label:"Total cost"}):o.jsx(Vt.Summary,{value:wc(d),label:"Total tokens"})),u&&s?o.jsx(Vt.Actions,{children:s}):null]}),t?o.jsx(Vt.Loading,{}):n?o.jsx(Vt.Error,{message:"Failed to load token usage data"}):o.jsx(Vt.Content,{children:u?o.jsxs(Ac,{defaultTab:"tokens",value:i,onValueChange:b=>{Cis(b)&&l(b)},className:"grid h-full grid-rows-[auto_1fr] overflow-y-auto",children:[o.jsxs(Ic,{children:[o.jsx(Ar,{value:"tokens",children:"Tokens"}),o.jsx(Ar,{value:"cost",children:"Cost"})]}),o.jsx(Xr,{value:"tokens",children:o.jsx(dN,{LinkComponent:a,data:c.map(b=>({name:b.name,values:[b.input,b.output],href:r?.(b)})),segments:[{label:"Input",color:Mp.blueDark},{label:"Output",color:Mp.blue}],maxVal:Math.max(...c.map(b=>b.input+b.output)),fmt:wc})}),o.jsx(Xr,{value:"cost",children:y?o.jsx(dN,{LinkComponent:a,data:f.slice().sort((b,S)=>(S.cost??0)-(b.cost??0)).map(b=>({name:b.name,values:[b.cost],href:r?.(b)})),segments:[{label:"Cost",color:Mp.purple}],maxVal:Math.max(...f.map(b=>b.cost??0)),fmt:b=>Sg(b,m)}):o.jsx(Vt.NoData,{message:"No cost data yet"})})]}):o.jsx(Vt.NoData,{message:"No token usage data yet"})})]})}function jis(){const e=We(),{filters:t,filterKey:n}=Tm();return St({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=>r5(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 Tis(){const{data:e,isLoading:t,isError:n}=jis(),{getTracesHref:r}=EI(),{Link:s}=yn();return o.jsx(Eis,{data:e,isLoading:t,isError:n,LinkComponent:s,getRowHref:a=>r({rootEntityType:Os.AGENT,entityName:a.name}),actions:o.jsx(n5,{href:r({rootEntityType:Os.AGENT}),LinkComponent:s})})}function hye(e,t=wc){return n=>({value:t(n.reduce((r,s)=>r+(typeof s[e]=="number"?s[e]:0),0))})}const Nis=[{dataKey:"input",label:"Input tokens",color:Mp.blue,aggregate:hye("input")},{dataKey:"output",label:"Output tokens",color:Mp.yellow,aggregate:hye("output")}];function Iis(e){return e==="tokens"||e==="cost"}function Ais({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,S=t==="1h"?"Input and output tokens per hour.":"Input and output tokens per day.",w=[{dataKey:"cost",label:"Cost",color:Mp.purple,aggregate:hye("cost",k=>Sg(k,v))}];return o.jsxs(Vt,{children:[o.jsxs(Vt.TopBar,{children:[o.jsx(Vt.TitleAndDescription,{title:"Token usage over time",description:S}),u&&(a==="cost"&&b?o.jsx(Vt.Summary,{value:Sg(y,v),label:"Total cost"}):o.jsx(Vt.Summary,{value:wc(d),label:"Total tokens"})),u&&s?o.jsx(Vt.Actions,{children:s}):null]}),n?o.jsx(Vt.Loading,{}):r?o.jsx(Vt.Error,{message:"Failed to load token usage timeline"}):o.jsx(Vt.Content,{children:u?o.jsxs(Ac,{defaultTab:"tokens",value:a,onValueChange:k=>{Iis(k)&&i(k)},className:"overflow-visible",children:[o.jsxs(Ic,{children:[o.jsx(Ar,{value:"tokens",children:"Tokens"}),o.jsx(Ar,{value:"cost",children:"Cost"})]}),o.jsx(Xr,{value:"tokens",children:o.jsx(WU,{data:c,series:Nis})}),o.jsx(Xr,{value:"cost",children:b?o.jsx(WU,{data:p,series:w}):o.jsx(Vt.NoData,{message:"No cost data yet"})})]}):o.jsx(Vt.NoData,{message:"No token usage data yet"})})]})}function Ris(e){return e==="24h"?"1h":"1d"}function Pis(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 PYe(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 $is(e){return e.cost==null||e.hasUnknownCostUnit||e.costUnits.size!==1?null:[...e.costUnits][0]??null}function Mis(){const e=We(),{datePreset:t,filters:n,filterKey:r}=Tm(),s=Ris(t);return St({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 PYe(l,a.series[0],"input"),PYe(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:Pis(d,s),tsMs:u.tsMs,input:u.input,output:u.output,total:u.input+u.output,cost:u.cost,costUnit:$is(u)}}),interval:s}}})}function Dis(){const{data:e,isLoading:t,isError:n}=Mis(),{getTracesHref:r}=EI(),{Link:s}=yn();return o.jsx(Ais,{data:e?.data,interval:e?.interval,isLoading:t,isError:n,actions:o.jsx(n5,{href:r(),LinkComponent:s})})}function Tse({data:e,rowHrefs:t,errorHrefs:n,LinkComponent:r}){return o.jsx(dN,{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:Mp.blueDark},{label:"Errors",color:Mp.pink}],maxVal:Math.max(...e.map(s=>s.completed+s.errors)),fmt:wc})}function Lis({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(Vt,{children:[o.jsxs(Vt.TopBar,{children:[o.jsx(Vt.TitleAndDescription,{title:"Trace Volume",description:"Runs and call counts."}),d&&o.jsx(Vt.Summary,{value:wc(f),label:"Total runs"}),u?o.jsx(Vt.Actions,{children:u}):null]}),t?o.jsx(Vt.Loading,{}):n?o.jsx(Vt.Error,{message:"Failed to load trace volume data"}):o.jsx(Vt.Content,{children:d?o.jsxs(Ac,{value:l,onValueChange:c,defaultTab:"agents",className:"grid h-full grid-rows-[auto_1fr] overflow-y-auto",children:[o.jsxs(Ic,{children:[o.jsx(Ar,{value:"agents",children:"Agents"}),o.jsx(Ar,{value:"workflows",children:"Workflows"}),o.jsx(Ar,{value:"tools",children:"Tools"})]}),o.jsx(Xr,{value:"agents",children:e.agentData.length>0?o.jsx(Tse,{data:e.agentData,rowHrefs:p("agents"),errorHrefs:h("agents"),LinkComponent:i}):o.jsx(Vt.NoData,{message:"No agent data yet"})}),o.jsx(Xr,{value:"workflows",children:e.workflowData.length>0?o.jsx(Tse,{data:e.workflowData,rowHrefs:p("workflows"),errorHrefs:h("workflows"),LinkComponent:i}):o.jsx(Vt.NoData,{message:"No workflow data yet"})}),o.jsx(Xr,{value:"tools",children:e.toolData.length>0?o.jsx(Tse,{data:e.toolData,rowHrefs:p("tools"),errorHrefs:h("tools"),LinkComponent:i}):o.jsx(Vt.NoData,{message:"No tool data yet"})})]}):o.jsx(Vt.NoData,{message:"No trace volume data yet"})})]})}async function Nse(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=r5(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 zis(){const e=We(),{filters:t,filterKey:n}=Tm();return St({queryKey:["metrics","trace-volume",n],queryFn:async()=>{const[r,s,a]=await Promise.all([Nse(e,"mastra_agent_duration_ms",t),Nse(e,"mastra_workflow_duration_ms",t),Nse(e,"mastra_tool_duration_ms",t)]);return{agentData:r,workflowData:s,toolData:a}}})}const pz={agents:Os.AGENT,workflows:Os.WORKFLOW_RUN,tools:Os.TOOL};function Fis(){const{data:e,isLoading:t,isError:n}=zis(),{getTracesHref:r,getLogsHref:s}=EI(),{Link:a}=yn();return o.jsx(Lis,{data:e,isLoading:t,isError:n,LinkComponent:a,getRowHref:(i,l)=>r({rootEntityType:pz[i],entityName:l.name}),getErrorSegmentHref:(i,l)=>l.errors>0?s({rootEntityType:pz[i],entityName:l.name,status:"error"}):void 0,actions:i=>o.jsxs(o.Fragment,{children:[o.jsx(n5,{href:r({rootEntityType:pz[i]}),LinkComponent:a}),o.jsx(Kas,{href:s({rootEntityType:pz[i],status:"error"}),LinkComponent:a})]})})}const Bis=new Set(["ObservabilityStorageClickhouseVNext","ObservabilityStorageDuckDB","ObservabilityInMemory","ObservabilitySpanner","ObservabilityStoragePostgresVNext"]),Ise="period",hz="dateFrom",mz="dateTo";function Uis(){const[e,t]=va(),n=e.get(Ise),r=qas(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(hz)),p=d(e.get(mz));if(!(!f&&!p))return{from:f,to:p}},[r,e.toString()]),a=g.useMemo(()=>Mas(e),[e.toString()]),i=g.useCallback(d=>{t(f=>{const p=new URLSearchParams(f);return d==="24h"?p.delete(Ise):p.set(Ise,d),d!=="custom"&&(p.delete(hz),p.delete(mz)),p},{replace:!0})},[t]),l=g.useCallback(d=>{t(f=>{const p=new URLSearchParams(f);return d?.from?p.set(hz,d.from.toISOString()):p.delete(hz),d?.to?p.set(mz,d.to.toISOString()):p.delete(mz),p},{replace:!0})},[t]),c=g.useCallback(d=>{t(f=>{const p=new URLSearchParams(f);return Las(p,d),p},{replace:!0})},[t]),u=g.useRef(!1);return g.useEffect(()=>{if(u.current||(u.current=!0,Pas(e)))return;const d=cFt();d&&t(f=>{const p=new URLSearchParams(f);for(const[h,m]of d)p.append(h,m);return p},{replace:!0})},[]),o.jsx(Has,{preset:r,filterTokens:a,onPresetChange:i,onFilterTokensChange:c,customRange:s,onCustomRangeChange:l,children:o.jsx(qis,{})})}function qis(){const[e]=va(),{error:t,isLoading:n}=fFt(),{filterTokens:r,setFilterTokens:s}=hG(),[a,i]=g.useState(),{data:l,isLoading:c}=U3(),u=l?.observabilityStorageType,d=u?Bis.has(u):!1,f=u==="ObservabilityInMemory",{data:p,isLoading:h}=BTe(),{data:m,isLoading:v}=LTe(),{data:y,isLoading:b}=FTe(),{data:S,isLoading:w}=zTe(),k=g.useMemo(()=>$as({availableTags:p??[],availableEntityNames:m??[],availableServiceNames:y??[],availableEnvironments:S??[],loading:{tags:h,entityNames:v,serviceNames:b,environments:w}}),[p,m,y,S,h,v,b,w]),[_,C]=g.useState(()=>cFt()!==null),E=g.useCallback(()=>{Aas(e),C(!0),De.success("Filters setting for Metrics saved")},[e]),j=g.useCallback(()=>{Ras(),C(!1),De.success("Filters setting for Metrics cleared up")},[]),T=g.useCallback(()=>{s([])},[s]),I=g.useCallback(()=>{const A=r.map(P=>{const L=k.find(D=>D.id===P.fieldId);return L?L.kind==="text"?{fieldId:P.fieldId,value:""}:L.kind==="pick-multi"?L.multi?{fieldId:P.fieldId,value:[]}:{fieldId:P.fieldId,value:"Any"}:L.kind==="multi-select"?{fieldId:P.fieldId,value:[]}:P:P});s(A)},[k,r,s]);return t&&gs(t)?o.jsx(lr,{children:o.jsx(Ws,{})}):t&&ys(t)?o.jsx(lr,{children:o.jsx(Ls,{resource:"metrics"})}):t?o.jsx(lr,{children:o.jsx(Bi,{title:"Failed to load metrics",message:t.message})}):o.jsxs(zt,{width:"wide",height:"full",children:[o.jsxs(zt.TopArea,{children:[o.jsx(zt.Row,{children:o.jsxs(zt.Column,{className:"flex flex-wrap items-start justify-start gap-2",children:[o.jsx(Qas,{}),o.jsx(PTe,{fields:k,tokens:r,onTokensChange:s,disabled:n,onStartTextFilter:i})]})}),o.jsx(wis,{isLoading:n,filterFields:k,filterTokens:r,onFilterTokensChange:s,onClear:I,onRemoveAll:T,onSave:E,onRemoveSaved:_?j:void 0,autoFocusFilterFieldId:a})]}),c?null:d?o.jsxs("div",{className:"grid gap-8 content-start pb-10",children:[f&&o.jsx(In,{variant:"info",title:"Metrics are not persisted",children:o.jsx(In.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(cye,{children:[o.jsx(gis,{}),o.jsx(vis,{}),o.jsx(yis,{}),o.jsx(bis,{}),o.jsx(xis,{})]}),o.jsxs(cye,{children:[o.jsx(_is,{}),o.jsx(Tis,{}),o.jsx(Dis,{}),o.jsx(dis,{}),o.jsx(Fis,{}),o.jsx(iis,{})]})]}):o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Cr,{iconSlot:o.jsx(Ef,{}),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(ce,{variant:"ghost",as:"a",href:"https://mastra.ai/docs/observability/metrics/overview",target:"_blank",rel:"noopener noreferrer",children:["Metrics Documentation ",o.jsx(_a,{})]})})})]})}function Vis(){const{paths:e}=yn(),{data:t,isLoading:n,error:r}=A9t(),{isCmsAvailable:s}=G1(),[a,i]=g.useState(""),l=t?.promptBlocks??[];return r&&gs(r)?o.jsx(lr,{children:o.jsx(Ws,{})}):r&&ys(r)?o.jsx(lr,{children:o.jsx(Ls,{resource:"prompt blocks"})}):r?o.jsx(lr,{children:o.jsx(Bi,{title:"Failed to load prompt blocks",message:r.message})}):l.length===0&&!n?o.jsx(lr,{children:o.jsx(fYr,{})}):o.jsxs(zt,{children:[o.jsx(zt.TopArea,{children:o.jsxs(zt.Row,{align:"center",stack:"responsive",children:[o.jsx("div",{className:"max-w-120 flex-1",children:o.jsx(Nf,{onSearch:i,label:"Filter prompts",placeholder:"Filter by name or description"})}),s&&o.jsxs(ce,{as:Da,to:e.cmsPromptBlockCreateLink(),variant:"primary",className:"shrink-0",children:[o.jsx(Hr,{}),"Create Prompt"]})]})}),o.jsx(dYr,{promptBlocks:l,isLoading:n,search:a})]})}function His(){return o.jsx(zt,{width:"narrow",children:o.jsx(zt.MainArea,{children:o.jsx(dqr,{children:o.jsx($ve,{})})})})}const Wis=[{title:"Mastra APIs",description:"Explore and test the available REST API endpoints with the interactive Swagger UI.",icon:Ldn,href:"/swagger-ui",external:!1},{title:"Documentation",description:"Read the official Mastra documentation for guides, references, and tutorials.",icon:Ict,href:"https://mastra.ai/en/docs",external:!0},{title:"Github",description:"Browse the source code, report issues, and contribute to the Mastra project.",icon:_a,href:"https://github.com/mastra-ai/mastra",external:!0},{title:"Community",description:"Join the Mastra Discord community for help, discussion, and collaboration.",icon:Kj,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:zct,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:Act,href:"https://mastra.ai/contact?ref=studio",external:!0}];function Zis(){return o.jsx(zt,{width:"narrow",children:o.jsx(zt.MainArea,{children:o.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4 max-w-3xl",children:Wis.map(e=>o.jsxs("a",{href:e.href,...e.external?{target:"_blank",rel:"noreferrer"}:{},className:"group flex flex-col gap-3 rounded-lg border border-border1 bg-surface2 p-5 transition-colors hover:border-accent1 hover:bg-surface3",children:[o.jsxs("div",{className:"flex items-center gap-2.5",children:[o.jsx(e.icon,{className:"h-5 w-5 text-icon3 group-hover:text-accent1 transition-colors"}),o.jsx("span",{className:"text-ui-md font-medium text-text1",children:e.title}),e.external&&o.jsx(_a,{className:"h-3.5 w-3.5 text-icon3 ml-auto opacity-0 group-hover:opacity-100 transition-opacity"})]}),o.jsx("p",{className:"text-ui-sm text-text3 leading-relaxed",children:e.description})]},e.href))})})})}function Gis(){const{data:e={},isLoading:t,error:n}=ah(),[r,s]=g.useState(""),[a,i]=g.useState("all");if(n&&gs(n))return o.jsx(lr,{children:o.jsx(Ws,{})});if(n&&ys(n))return o.jsx(lr,{children:o.jsx(Ls,{resource:"scorers"})});if(n)return o.jsx(lr,{children:o.jsx(Bi,{title:"Failed to load scorers",message:n.message})});if(Object.keys(e).length===0&&!t)return o.jsx(lr,{children:o.jsx(_Gr,{})});const l=a!=="all"||r!=="",c=()=>{s(""),i("all")};return o.jsxs(zt,{children:[o.jsx(zt.TopArea,{children:o.jsx(EGr,{search:r,onSearchChange:s,sourceFilter:a,onSourceFilterChange:i,onReset:c,hasActiveFilters:l})}),o.jsx(OGr,{scorers:e,isLoading:t,search:r,sourceFilter:a})]})}function Qis(){const{scorerId:e}=ur(),[t,n]=va(),r=t.get("scoreId")??void 0,[s,a]=g.useState(r),[i,l]=g.useState({value:"all",label:"All Entities",type:"ALL"}),{scorer:c,error:u}=tGr(e),{data:d={},isLoading:f,error:p}=Om(),{isLoading:h,error:m}=Fy(),{data:v=[],isLoading:y,error:b,isFetchingNextPage:S,hasNextPage:w,setEndOfListElement:k}=eGr({scorerId:e,entityId:i?.value==="all"?void 0:i?.value,entityType:i?.type==="ALL"?void 0:i?.type}),_=g.useMemo(()=>c?.agentIds?.filter(V=>d[V]).map(V=>({value:V,label:d[V].name,type:"AGENT"}))||[],[c?.agentIds,d]),C=g.useMemo(()=>c?.workflowIds?.map(V=>({value:V,label:V,type:"WORKFLOW"}))||[],[c?.workflowIds]),E=g.useMemo(()=>[{value:"all",label:"All Entities",type:"ALL"},..._,...C],[_,C]),j=t.get("entity")??"all",T=E.find(V=>V.value===j);T&&T.value!==i?.value&&l(T),g.useEffect(()=>{if(u){const V=u instanceof Error?u.message:"Failed to load scorer";De.error(`Error loading scorer: ${V}`)}},[u]),g.useEffect(()=>{if(p){const V=p instanceof Error?p.message:"Failed to load agents";De.error(`Error loading agents: ${V}`)}},[p]),g.useEffect(()=>{if(m){const V=m instanceof Error?m.message:"Failed to load workflows";De.error(`Error loading workflows: ${V}`)}},[m]);const I=V=>{V?.value&&n(M=>{const Q=new URLSearchParams(M);return Q.set("entity",V.value),Q})};g.useEffect(()=>{const V=t.get("scoreId")??void 0;if(V===s)return;if(!V){a(void 0);return}v.find(Q=>Q.id===V)&&a(V)},[t,v]);const A=g.useCallback(V=>{a(V||void 0),n(M=>{const Q=new URLSearchParams(M);return V?Q.set("scoreId",V):Q.delete("scoreId"),Q})},[n]);if(!c)return null;const P=gs(u)||gs(p)||gs(m),L=u&&ys(u),D=!P&&!L&&(u||p||m),q=!y&&v.length===0,H=i?.value!=="all",z=c?.scorer?.source==="stored"?o.jsx(Iy,{owner:"scorer-detail",children:o.jsxs(ce,{variant:"default",as:Da,to:`/cms/scorers/${e}/edit`,size:"sm",children:[o.jsx(am,{})," Edit"]})}):null;if(P||L||D||q&&!H){const V=(u instanceof Error?u.message:void 0)??(p instanceof Error?p.message:void 0)??(m instanceof Error?m.message:void 0)??"An unexpected error occurred";return o.jsxs(zt,{width:"wide",height:"full",children:[z,o.jsx(zt.MainArea,{isCentered:!0,children:P?o.jsx(Ws,{}):L?o.jsx(Ls,{resource:"scorers"}):D?o.jsx(Bi,{title:"Failed to load scorer",message:V}):o.jsx(QZr,{})})]})}return o.jsxs(zt,{width:"wide",children:[z,o.jsx(zt.TopArea,{children:o.jsx(YZr,{selectedEntity:i,entityOptions:E,onEntityChange:I,onReset:()=>{n(V=>{const M=new URLSearchParams(V);return M.set("entity","all"),M})},isLoading:y||f||h})}),o.jsx(GZr,{scores:v,isLoading:y,selectedScoreId:s,isFetchingNextPage:S,hasNextPage:w,setEndOfListElement:k,onScoreClick:A,errorMsg:b?.message})]})}function Yis({label:e,description:t,htmlFor:n,className:r,children:s}){return o.jsxs("div",{className:K("flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",r),"data-slot":"settings-row",children:[o.jsxs("div",{children:[n?o.jsx($t,{htmlFor:n,className:"text-sm font-medium",children:e}):o.jsx("p",{className:"text-sm font-medium",children:e}),t&&o.jsx("p",{className:"text-sm text-neutral3",children:t})]}),s]})}const gFt=[{value:"dark",label:"Dark",Icon:mpn},{value:"light",label:"Light",Icon:jhn},{value:"system",label:"System",Icon:Qct}],Xis=e=>gFt.some(t=>t.value===e);function Kis({option:e}){const{Icon:t}=e;return o.jsxs("span",{className:"inline-flex min-w-0 max-w-full 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 Jis=()=>{const{baseUrl:e,headers:t,apiPrefix:n}=lV(),{theme:r,setTheme:s}=j_();return o.jsx(zt,{width:"narrow",children:o.jsxs(zt.MainArea,{className:"flex flex-col gap-5 mt-6",children:[o.jsx(xge,{title:"Theme",description:"Customize the appearance of the studio.",children:o.jsx(Yis,{label:"Theme mode",htmlFor:"theme",children:o.jsxs(pa,{value:r,onValueChange:a=>{Xis(a)&&s(a)},children:[o.jsx(ma,{id:"theme",className:"w-full sm:w-48",children:o.jsx(ha,{className:"inline-flex min-w-0 max-w-full items-center"})}),o.jsx(ga,{children:gFt.map(a=>o.jsx(zr,{value:a.value,children:o.jsx(Kis,{option:a})},a.value))})]})})}),o.jsx(xge,{title:"Mastra Connection",description:"Configure the Mastra instance URL, API prefix, and request headers used by the studio.",children:o.jsx(Kjt,{initialConfig:{baseUrl:e,headers:t,apiPrefix:n}})})]})})};function eos(){const[e]=va(),t=bs(),n=e.get("redirect")||"/",r=()=>{n.startsWith("http")?window.location.href=n:t(n,{replace:!0})};return o.jsx(iFt,{redirectUri:n,onSuccess:r,initialMode:"signup"})}const vFt=e=>o.jsxs("svg",{width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:[o.jsx("g",{clipPath:"url(#clip0_21999_22095)",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"})}),o.jsx("defs",{children:o.jsx("clipPath",{id:"clip0_21999_22095",children:o.jsx("rect",{width:"14",height:"14",fill:"currentColor",transform:"translate(0.5 0.75)"})})})]});function tos(e){return e.replace(/\/$/,"").split("/").pop()}function mG({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 nos({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:"h-16 bg-surface3 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:"w-full h-full bg-cover thumb transition-scale 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:"hidden 2xl:flex text-neutral3 text-ui-md flex-wrap items-center gap-4 mt-3",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(il,{})," ",a.agents.length]}),a?.tools&&a.tools.length>0&&o.jsxs("li",{children:[o.jsx(Of,{})," ",a.tools.length]}),a?.networks&&a.networks.length>0&&o.jsxs("li",{children:[o.jsx(Yct,{})," ",a.networks.length]}),a?.workflows&&a.workflows.length>0&&o.jsxs("li",{children:[o.jsx(xD,{})," ",a.workflows.length]}),a?.mcp&&a.mcp.length>0&&o.jsxs("li",{children:[o.jsx(D_,{})," ",a.mcp.length]})]}),i&&a.supportedProviders&&o.jsx("small",{children:"|"}),o.jsx("div",{className:"flex items-center text-neutral3 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:"flex items-center gap-2 px-2 py-1 rounded bg-surface1 group-hover:bg-surface2 text-neutral3 transition-colors group-hover:text-neutral5",children:[o.jsx(vFt,{})," ",tos(a.githubUrl)]})})]},a.slug)})})}function ros({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(NT,{name:"search-templates",label:"Search templates",labelIsHidden:!0,value:i,onChange:f=>l?.(f.target.value),placeholder:"Search Template"}),o.jsx(Sc,{label:"Filter by tag",labelIsHidden:!0,name:"filter-tag",value:t,onValueChange:s,options:e}),o.jsx(Sc,{label:"Filter by provider",labelIsHidden:!0,name:"filter-provider",value:r,onValueChange:a,options:n}),c&&o.jsxs(ce,{onClick:c,children:["Reset ",o.jsx(vs,{})]})]})}function sos(){const{data:e,isLoading:t}=yKn(),{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(S=>{f.push({value:S,label:S})});const p=[{value:"all",label:"Any provider"}];(s||[]).forEach(S=>{p.push({value:S,label:S})});const h=(S,w)=>{w==="tag"?i(S):w==="provider"&&c(S)},m=S=>{d(S)},v=()=>{i("all"),c("all"),d("")},y=n.filter(S=>!(u&&!S.title.toLowerCase().includes(u)&&!S.description.toLowerCase().includes(u)||a!=="all"&&!S.tags.includes(a)||l!=="all"&&!S.supportedProviders.includes(l))),b=u||a!=="all"||l!=="all";return o.jsxs(cs,{children:[o.jsx(k0e,{children:o.jsxs(Vht,{children:[o.jsx(Ue,{children:o.jsx(Gv,{})}),"Templates"]})}),o.jsxs("div",{className:K("overflow-y-auto w-full h-full px-8 pb-12 z-10"),children:[o.jsx(ros,{selectedTag:a,onTagChange:S=>h(S,"tag"),tagOptions:f,selectedProvider:l,onProviderChange:S=>h(S,"provider"),providerOptions:p,searchTerm:u,onSearchChange:m,onReset:b?v:void 0,className:"max-w-[80rem]",isLoading:t}),o.jsx(nos,{templates:y,linkComponent:Da,className:"max-w-[80rem] mx-auto",isLoading:t})]})]})}const aos="1.51.0-alpha.8";function ios({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(Tp,{className:"text-yellow-500"}),title:"Template Installed with Warnings"}:{icon:o.jsx(pfn,{}),title:"Template Installation Failed"},{icon:l,title:c}=i();return o.jsxs(mG,{className:"space-y-4 text-neutral3 mb-8 content-center",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:"text-center space-y-2",children:[o.jsx("p",{className:"text-ui-md font-medium text-neutral5",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:"cursor-pointer text-neutral3 hover:text-neutral4 select-none text-center",children:["Show Validation Issues (",t.length,")"]}),o.jsx("div",{className:"mt-4 p-3 bg-gray-100 dark:bg-gray-800 rounded text-xs overflow-auto max-h-60 text-left space-y-2",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:"text-xs font-mono text-gray-700 dark:text-gray-300 mt-1 whitespace-pre-wrap wrap-break-word",children:u.message})]},d))})]}),n&&!s&&o.jsxs("details",{className:"text-xs",children:[o.jsx("summary",{className:"cursor-pointer text-neutral3 hover:text-neutral4 select-none text-center",children:"Show Details"}),o.jsx("div",{className:"mt-4 p-3 bg-gray-100 dark:bg-gray-800 rounded text-xs font-mono overflow-auto max-h-60 text-left",children:o.jsx("div",{className:"whitespace-pre-wrap wrap-break-word",children:n})})]})]})}function oos({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(mG,{children:o.jsxs("div",{className:"max-w-[40rem] my-4 p-4 lg:p-8 mx-auto gap-8 grid",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(Xct,{})]}),o.jsx(Sc,{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] gap-4 items-start",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(gO,{name:`env-${p}`,labelIsHidden:!0,label:"Key",value:p,disabled:!0,className:"w-full"}),o.jsx(gO,{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-t border-border1 pt-12 mt-3.5 relative",children:[o.jsx("div",{className:"absolute w-8 h-8 rounded-full bg-surface2 top-0 left-1/2 -translate-x-1/2 -translate-y-4 text-ui-sm text-neutral3 flex items-center justify-center",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(c9t,{defaultProvider:u||"",defaultModel:d||"",updateModel:f||(()=>Promise.resolve({message:"Updated"})),closeEditor:()=>{},autoSave:!0,selectProviderPlaceholder:"Provider"})]})]}),t&&!l&&o.jsx(ce,{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:"w-4 h-4"})," Installing..."]}):o.jsxs(o.Fragment,{children:["Install ",o.jsx(vm,{})]})})]})})}function los({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(Gv,{}),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 lg:grid-cols-[1fr_1fr] gap-x-24",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:"shrink-0 mt-0.5",children:o.jsx(zx,{className:"w-[1.1em] h-[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(Nbe,{className:"w-[1em] h-[1em] text-neutral4"}),o.jsx("span",{className:"text-ui-md font-medium text-neutral5",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 px-1.5 py-0.5 rounded text-ui-sm 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:"flex items-center gap-2 mt-auto text-neutral3 text-ui-md hover:text-neutral5",children:[o.jsx(vFt,{}),n?.split("/")?.pop()]})]}),s&&o.jsx(fTe,{data:s,labelsAreHidden:!0,isLoading:r})]})]})}function cos(e){switch(e){case"running":return o.jsx(Qt,{});case"success":return o.jsx(gx,{});case"failed":return o.jsx(Hu,{});default:return null}}function uos({stepId:e,step:t,isActive:n,position:r}){const s=a=>a.charAt(0).toUpperCase()+a.slice(1).replace(/-/g," ");return o.jsxs("div",{className:K("grid grid-cols-[1fr_auto] gap-6 rounded-lg px-4 py-3",ms.all,{"border border-dashed border-neutral2 bg-surface3":n}),children:[o.jsxs("div",{className:"grid grid-cols-[auto_1fr] gap-2",children:[o.jsxs("span",{className:K("flex min-w-6 justify-end text-ui-md",ms.colors,{"text-neutral5":n||t.status==="success","text-neutral3":!n&&t.status!=="success"}),children:[r,"."]}),o.jsxs("div",{children:[o.jsx("h4",{className:K("text-ui-md",ms.colors,{"text-neutral5":n||t.status==="success","text-neutral3":!n&&t.status!=="success"}),children:s(e)}),t.description&&o.jsx("p",{className:"-mt-0.5 text-ui-md text-neutral2",children:t.description})]})]}),o.jsx("div",{className:K("flex size-[1.75rem] items-center justify-center self-center rounded-full",ms.all,{"border border-neutral2 border-dashed":t.status==="pending","[&>svg]:text-white [&>svg]:w-4 [&>svg]:h-4":t.status!=="running","w-[1.75rem] h-[1.75rem]":t.status==="running","bg-accent1Dark shadow-glow-accent1":t.status==="success","bg-accent2Dark shadow-glow-accent2":t.status==="failed","scale-110":t.status==="success"||t.status==="failed"}),children:cos(t.status)})]})}function dos({currentStep:e,steps:t=[],className:n}){return o.jsx("div",{className:K(n),children:t.map((r,s)=>o.jsx(uos,{stepId:r.id,step:r,isActive:e?.id===r.id,position:s+1},r.id))})}function fos({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",ms.colors,{"bg-accent1Dark":r.status==="success"&&e?.[s-1]?.status==="success"}),children:o.jsx("div",{className:K("absolute right-0 z-10 flex size-[2rem] translate-x-[50%] items-center justify-center self-center rounded-full bg-surface3 text-ui-sm font-bold text-neutral3",ms.all,{"border border-neutral2 border-dashed":r.status==="pending","[&>svg]:text-surface1 [&>svg]:w-[1.1rem] [&>svg]:h-[1.1rem]":r.status!=="running","bg-accent1Dark text-white shadow-glow-accent1 scale-110":r.status==="success","bg-accent2Dark text-white 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",ms.colors),children:[n," of ",t," steps completed"]})]})}function pos({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(mG,{className:"space-y-6 text-neutral3 mb-8 content-center",children:[o.jsxs("div",{className:"text-center",children:[o.jsx("h3",{className:"text-lg font-semibold text-neutral5",children:h()}),(t?.runId||n)&&o.jsxs("div",{className:"mt-2 text-ui-sm text-neutral3",children:["Run ID: ",t?.runId??n]})]}),u&&p>0&&!["error"].includes(s)&&o.jsx("div",{className:"max-w-[30rem] w-full mx-auto px-6",children:o.jsx(fos,{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(_pn,{}),l||"Something went wrong"]}),u&&o.jsx(dos,{steps:m,currentStep:i,className:"pb-4"}),!u&&s==="initializing"&&o.jsxs("div",{className:"text-center text-sm text-neutral3 grid gap-4 justify-items-center",children:[o.jsx(Qt,{}),o.jsx("p",{children:"This may take some time..."})]})]})}function hos({name:e,installedEntities:t}){return o.jsxs(mG,{className:K("grid items-center justify-items-center gap-4 content-center","[&>svg]:w-8 [&>svg]:h-8"),children:[o.jsx(Xct,{}),o.jsx("h2",{className:"text-header-md",children:"Done!"}),o.jsxs("p",{className:"text-ui-md text-center text-neutral3 ",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(fTe,{data:t})]})}function mos(){const{templateSlug:e}=ur(),[t,n]=va(),[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,S]=g.useState(""),[w,k]=g.useState(!1),[_,C]=g.useState(!1),[E,j]=g.useState([]),{data:T,isLoading:I}=bKn({repoOrSlug:e,owner:"mastra-ai"}),P=aos?.includes("beta")??!1?"beta":"main",{data:L,isLoading:D}=xKn({repo:T?.githubUrl?new URL(T.githubUrl).pathname.split("/")[2]:`template-${e}`,owner:"mastra-ai",branch:P}),{data:q,isLoading:H}=wKn(),{mutateAsync:z,isPending:B}=SKn(),{mutateAsync:V}=kKn(),{streamInstall:M,streamResult:Q,isStreaming:U}=_Kn(q),{observeInstall:$,streamResult:F,isStreaming:Z}=CKn(q);g.useEffect(()=>{const ne=t.get("runId");ne&&!v&&!h&&!U&&!Z&&(console.info("🔄 Checking completed run after hot reload:",{runId:ne}),S(ne),V({runId:ne}).then(ue=>{const fe=ue.snapshot;if(fe?.status==="success"&&fe?.result?.success)y(!0);else if(fe?.result?.success===!1)if(fe?.result?.validationResults&&!fe?.result?.validationResults?.valid&&fe?.result?.validationResults?.remainingErrors>0){const{remainingErrors:me,errors:be}=fe.result.validationResults,we=`Template installation completed but ${me} validation issue${me>1?"s":""} remain unresolved.`;m(we),j(be||[])}else{const me=fe?.result?.message||fe?.result?.error||"Template installation failed";m(typeof me=="string"?me:String(me))}}).catch(ue=>{console.error("❌ Failed to fetch run details:",ue),m("Failed to retrieve installation status after reload")}))},[t,v,h,U,Z,V]),g.useEffect(()=>{const ne=t.get("runId"),ue=t.get("resume"),fe=t.get("provider");if(ne&&ue==="true"&&fe&&!U&&!Z&&!w&&!_&&q){S(ne),k(!0);try{V({runId:ne}).then(oe=>{if(oe.snapshot?.status==="running")return $.mutateAsync({runId:ne})}).then(()=>{n(oe=>{const me=new URLSearchParams(oe);return me.delete("resume"),me})}).catch(oe=>{console.error("❌ Failed to resume template installation:",oe),oe.message?.includes("404")||oe.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(oe){console.error("❌ Auto-resume failed with error:",oe),m("Failed to resume template installation. Please refresh and try again.")}}},[t,e,U,Z,w,_,q,V,$,n]);const X=[{value:"openai",label:"OpenAI"},{value:"anthropic",label:"Anthropic"},{value:"groq",label:"Groq"},{value:"google",label:"Google"}],te=[{key:"tools",label:"Tools",value:T?.tools?.length?T.tools.map(ne=>ne).join(", "):"n/a",icon:o.jsx(Of,{})},{key:"agents",label:"Agents",value:T?.agents?.length?T.agents.map(ne=>ne).join(", "):"n/a",icon:o.jsx(il,{})},{key:"workflows",label:"Workflows",value:T?.workflows?.length?T.workflows.map(ne=>ne).join(", "):"n/a",icon:o.jsx(xD,{})},{key:"providers",label:"Providers",value:T?.supportedProviders?.length?T.supportedProviders.join(", "):"n/a",icon:o.jsx(Pv,{})},{key:"tags",label:"Tags",value:T?.tags?.length?T.tags.join(", "):"n/a",icon:o.jsx(kN,{})}],ee=[{...te[0]},{...te[1]},{...te[2]}].filter(ne=>ne.value!=="n/a");g.useEffect(()=>{L&&d(L)},[L]),g.useEffect(()=>{const ne=Q||F;ne?.phase==="error"&&ne?.error&&m(typeof ne.error=="string"?ne.error:String(ne.error))},[Q?.phase,Q?.error,F?.phase,F?.error]);const J=ne=>{s(ne)},ae=async ne=>(i(ne.provider),c(ne.modelId),{message:"Model updated successfully"}),pe=async()=>{const ne=Object.entries(u).reduce((ue,[fe,oe])=>(oe===""&&ue.push(fe),ue),[]);if(ne.length>0){p(ne);return}if(T){m(null),y(!1),S(""),C(!0);try{const fe={repo:T.githubUrl||`https://github.com/mastra-ai/template-${T.slug}`,ref:P,slug:T.slug,variables:u},{runId:oe}=await z({});S(oe),n(me=>{const be=new URLSearchParams(me);return be.set("runId",oe),be.set("resume","true"),be.set("provider",r||"openai"),be}),await M.mutateAsync({inputData:fe,selectedModel:{provider:a,modelId:l},runId:oe})}catch(ue){C(!1),m(ue?.message||"Template installation failed"),console.error("Template installation failed",ue)}}},Y=ne=>{const{name:ue,value:fe}=ne.target;fe.trim()===""?p(oe=>[...oe,ue]):p(oe=>oe.filter(me=>me!==ue)),d(oe=>({...oe,[ue]:fe}))};return o.jsx(cs,{children:o.jsx("div",{className:K("w-full lg:px-12 h-full overflow-y-scroll"),children:o.jsxs("div",{className:"p-6 w-full max-w-[80rem] mx-auto grid gap-y-4",children:[o.jsx(los,{isLoading:I,title:T?.title,description:T?.longDescription,imageURL:T?.imageURL,githubUrl:T?.githubUrl,infoData:te,templateSlug:e}),T&&o.jsxs(o.Fragment,{children:[(U||Z)&&o.jsx(pos,{name:T.title,streamResult:Z?F:Q,runId:b,workflowInfo:q}),v&&o.jsx(hos,{name:T.title,installedEntities:ee,linkComponent:Da}),h&&o.jsx(ios,{errorMsg:h,validationErrors:E.length>0?E:Q?.validationResults?.errors||F?.validationResults?.errors}),!U&&!Z&&!v&&!h&&o.jsx(oos,{providerOptions:X,selectedProvider:r,onProviderChange:J,variables:u,setVariables:d,errors:f,setErrors:p,handleInstallTemplate:pe,handleVariableChange:Y,isLoadingEnvVars:D||H,isInstalling:B,defaultModelProvider:a,defaultModelId:l,onModelUpdate:ae})]})]})})})}const gos=()=>{const{toolId:e,agentId:t}=ur();return o.jsx("div",{className:"h-full w-full overflow-y-auto",children:o.jsx(TQr,{toolId:e,agentId:t})})},vos=()=>{const{toolId:e}=ur();return o.jsx("div",{className:"h-full w-full overflow-y-hidden",children:o.jsx(Sas,{toolId:e})})};function yos(){const{traceId:e}=ur(),[t,n]=va(),r=bs(),s=t.get("spanId")||void 0,a=t.get("tab"),i=a==="scoring"?"scoring":a==="feedback"?"feedback":"details",l=t.get("scoreId")||void 0,[c,u]=g.useState(s??null),[d,f]=g.useState(),[p,h]=g.useState(i),[m,v]=g.useState(0),[y,b]=g.useState(!1),{data:S,isLoading:w,error:k}=mH(e),_=g.useMemo(()=>S?.spans??[],[S?.spans]),C=g.useMemo(()=>_.find(ae=>ae.parentSpanId==null),[_]),{data:E,isLoading:j}=ZN(e,c??"");g.useEffect(()=>v(0),[e,c]);const{data:T,isLoading:I}=ah(),{data:A,isLoading:P}=E9t({traceId:e,spanId:c??void 0,page:m}),[L,D]=g.useState(0);g.useEffect(()=>D(0),[e,c]);const{data:q,isLoading:H}=Qzt({traceId:e,page:L});g.useEffect(()=>{if(l&&A?.scores&&!d){const ae=A.scores.find(pe=>pe.id===l);ae&&f(ae)}},[l,A?.scores,d]);const z=g.useCallback(ae=>{const pe=new URLSearchParams(t);for(const[Y,ne]of Object.entries(ae))ne===null||ne===""?pe.delete(Y):pe.set(Y,ne);n(pe,{replace:!0})},[t,n]),B=g.useCallback(ae=>{const pe=ae??null,Y=pe===c;u(pe),Y||(f(void 0),h("details"),z({spanId:pe,tab:null,scoreId:null}))},[c,z]),V=g.useCallback(()=>{u(null),f(void 0),h("details"),z({spanId:null,tab:null,scoreId:null})},[z]),M=g.useCallback(ae=>{u(ae),f(void 0),h("details"),z({spanId:ae,tab:null,scoreId:null})},[z]),{handlePreviousSpan:Q,handleNextSpan:U}=gH(_,c,M),$=g.useCallback(ae=>{const pe=ae;h(pe),f(void 0),z({tab:pe==="details"?null:pe,scoreId:null})},[z]),F=g.useCallback(ae=>{f(ae),z({scoreId:ae.id})},[z]),Z=g.useCallback(()=>{f(void 0),z({scoreId:null})},[z]),X=g.useCallback(()=>{r("/observability")},[r]),te=g.useCallback(()=>{h("scoring"),C&&c!==C.spanId?(u(C.spanId),f(void 0),z({spanId:C.spanId,tab:"scoring",scoreId:null})):z({tab:"scoring"})},[C,c,z]),ee=C?o.jsx(Iy,{owner:"trace-detail",children:o.jsxs(Dr,{children:[o.jsxs(ce,{tooltip:"Evaluate Trace","aria-label":"Evaluate Trace",onClick:te,children:[o.jsx(sdn,{}),"Evaluate"]}),o.jsxs(ce,{tooltip:"Save as Dataset Item","aria-label":"Save as Dataset Item",onClick:()=>b(!0),children:[o.jsx(kd,{}),"Save"]})]})}):null,J=C?o.jsx(zt.Row,{children:o.jsx(zt.Column,{children:o.jsx(Lzt,{rootSpan:C,numOfCol:3})})}):null;return k?o.jsxs(zt,{height:"full",children:[ee,J&&o.jsx(zt.TopArea,{children:J}),o.jsx(zt.MainArea,{isCentered:!0,children:o.jsx(zzt,{error:k,resource:"traces",errorTitle:"Failed to load trace"})})]}):o.jsxs(zt,{children:[ee,J&&o.jsx(zt.TopArea,{children:J}),o.jsx(Vzt,{rootSpanId:C?.spanId,traceId:e,isOpen:y,onClose:()=>b(!1)}),o.jsxs("div",{className:K("grid h-full min-h-0 gap-4 overflow-hidden items-start mt-4",c?"grid-cols-[2fr_3fr]":"grid-cols-[1fr]"),children:[o.jsx($Te,{traceId:e,spans:_,isLoading:w,onClose:X,onSpanSelect:B,onEvaluateTrace:te,initialSpanId:c,placement:"trace-page",timelineChartWidth:c?"default":"wide"}),c&&!w&&o.jsxs("div",{className:K("grid gap-4 max-h-full min-h-0 overflow-auto",d?"grid-rows-[1fr_1fr]":"grid-rows-[1fr]"),children:[o.jsx(hH,{traceId:e,spanId:c,span:E?.span,isLoading:j,onClose:V,onPrevious:Q,onNext:U,activeTab:p,onTabChange:$,feedbackTabBadge:q?.pagination?.total??void 0,feedbackTabSlot:()=>o.jsx(Wzt,{feedbackData:q,onPageChange:D,isLoadingFeedbackData:H}),scoringTabBadge:A?.pagination?.total??void 0,scoringTabSlot:({span:ae,traceId:pe,spanId:Y})=>o.jsxs("div",{className:"grid gap-6",children:[o.jsx(Gzt,{traceId:pe,isTopLevelSpan:!ae.parentSpanId,spanId:Y,entityType:ae.attributes?.agentId||ae.entityType===Os.AGENT?"Agent":ae.attributes?.workflowId||ae.entityType===Os.WORKFLOW_RUN?"Workflow":void 0,scorers:T,isLoadingScorers:I}),o.jsx(Zzt,{scoresData:A,onPageChange:v,isLoadingScoresData:P,onScoreSelect:F})]})}),d&&o.jsx(dTe,{score:d,onClose:Z})]})]})]})}function bos(){const{data:e,isLoading:t,error:n}=Fy(),[r,s]=g.useState("");return n&&gs(n)?o.jsx(lr,{children:o.jsx(Ws,{})}):n&&ys(n)?o.jsx(lr,{children:o.jsx(Ls,{resource:"workflows"})}):n?o.jsx(lr,{children:o.jsx(Bi,{title:"Failed to load workflows",message:n.message})}):Object.keys(e||{}).length===0&&!t?o.jsx(lr,{children:o.jsx(L4r,{})}):o.jsxs(zt,{children:[o.jsx(zt.TopArea,{children:o.jsxs(zt.Row,{align:"center",stack:"responsive",children:[o.jsx("div",{className:"max-w-120 flex-1",children:o.jsx(Nf,{onSearch:s,label:"Filter workflows",placeholder:"Filter by name or description"})}),o.jsxs(ce,{as:Da,to:"/workflows/schedules",variant:"primary",className:"shrink-0",children:[o.jsx(vD,{}),"Schedules"]})]})}),o.jsx(D4r,{workflows:e||{},isLoading:t,search:r})]})}const xos={active:"bg-accent1",paused:"bg-accent3"},wos={active:"text-accent1",paused:"text-accent3"},yFt=({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 ${xos[e]}`,"aria-hidden":!0}),o.jsx("span",{className:`text-ui-sm ${wos[e]}`,children:e})]}),Uj=e=>!e||e<=0?"—":new Date(e).toLocaleString(),pP=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 bFt({status:e}){const{icon:t,color:n}=Sos(e);return o.jsxs("span",{className:`inline-flex items-center gap-1.5 whitespace-nowrap text-ui-sm ${n}`,children:[o.jsx("span",{className:"inline-flex shrink-0 items-center","aria-hidden":!0,children:t}),o.jsx("span",{children:e})]})}function Sos(e){switch(e){case"success":return{icon:o.jsx(ra,{size:14}),color:"text-accent1"};case"failed":return{icon:o.jsx(vs,{size:14}),color:"text-accent2"};case"running":return{icon:o.jsx(Qt,{}),color:"text-neutral3"};case"suspended":return{icon:o.jsx(yq,{size:14}),color:"text-accent3"};case"canceled":return{icon:o.jsx(Ef,{size:14}),color:"text-neutral3"};case"pending":case"waiting":return{icon:o.jsx(Xj,{size:14}),color:"text-neutral3"};default:return{icon:null,color:"text-neutral3"}}}const $Ye="auto auto auto auto 1fr";function kos(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 Oos(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 _os=3e4,Cos=5*6e4;function Eos({triggers:e,isLoading:t,workflowId:n,hasNextPage:r,isFetchingNextPage:s,setEndOfListElement:a}){const{Link:i,paths:l}=yn();return t?o.jsx(rl,{columns:$Ye}):e.length===0?o.jsx(ye,{variant:"ui-md",className:"text-neutral4 p-4",children:"No trigger history yet."}):o.jsxs(ve,{columns:$Ye,className:"min-w-0",children:[o.jsxs(ve.Top,{children:[o.jsx(ve.TopCell,{children:"Run"}),o.jsx(ve.TopCell,{children:"Status"}),o.jsx(ve.TopCell,{children:"Started"}),o.jsx(ve.TopCell,{children:"Duration"}),o.jsx(ve.TopCell,{children:" "})]}),e.map(c=>{const u=c.actualFireAt-c.scheduledFireAt,d=Oos(u),f=`Scheduled ${Uj(c.scheduledFireAt)} — published ${Uj(c.actualFireAt)} (drift ${d})`,p=c.outcome==="failed",h=p?c.error:c.run?.error,m=Math.abs(u),v=!p&&m>_os&&m<=Cos,y=`${c.scheduleId}-${c.runId}-${c.actualFireAt}`,b=!!(n&&c.runId&&!p),S=o.jsx("span",{className:b?"text-accent1 font-mono text-ui-sm whitespace-nowrap":"text-neutral3 font-mono text-ui-sm whitespace-nowrap",children:c.runId}),w=o.jsxs(o.Fragment,{children:[o.jsx(ve.Cell,{height:"compact",children:S}),o.jsx(ve.Cell,{height:"compact",children:o.jsxs("span",{className:"inline-flex items-center gap-2",children:[p?o.jsxs("span",{className:"inline-flex items-center gap-1.5 whitespace-nowrap text-ui-sm text-accent2",children:[o.jsx(Tp,{size:14}),"publish failed"]}):c.run?o.jsx(bFt,{status:c.run.status}):o.jsx("span",{className:"inline-flex items-center gap-1.5 whitespace-nowrap text-ui-sm text-neutral3",children:"pending"}),h?o.jsxs(Un,{children:[o.jsx(Dn,{asChild:!0,children:o.jsx("span",{className:"text-accent2 inline-flex",children:o.jsx(Tp,{size:14})})}),o.jsx(Ln,{children:h})]}):null]})}),o.jsx(ve.Cell,{height:"compact",children:o.jsxs("span",{className:"inline-flex items-center gap-2 whitespace-nowrap",children:[o.jsx("span",{title:f,children:pP(c.actualFireAt)}),v?o.jsxs(Un,{children:[o.jsx(Dn,{asChild:!0,children:o.jsx("span",{className:"text-accent3 inline-flex",children:o.jsx(Tp,{size:14})})}),o.jsxs(Ln,{children:["Published ",d," after the scheduled fire time"]})]}):null]})}),o.jsx(ve.Cell,{height:"compact",children:c.run?o.jsx("span",{children:kos(c.run.durationMs)}):o.jsx("span",{className:"text-neutral4",children:"—"})}),o.jsx(ve.Cell,{height:"compact",children:" "})]});return b?o.jsx(ve.RowLink,{to:l.workflowRunLink(n,c.runId),LinkComponent:i,children:w},y):o.jsx(ve.RowStatic,{children:w},y)}),o.jsx(ve.NextPageLoading,{isLoading:s,hasMore:r,setEndOfListElement:a})]})}const jos=e=>{const t=We();return St({queryKey:["schedule",e],enabled:!!e,queryFn:async()=>{if(!e)throw new Error("scheduleId is required");return t.getSchedule(e)}})},MYe=25,Tos=e=>{const t=We(),{inView:n,setRef:r}=R_(),s=$1({queryKey:["schedule-triggers",e],enabled:!!e,initialPageParam:void 0,queryFn:async({pageParam:u})=>e?t.listScheduleTriggers(e,{limit:MYe,toActualFireAt:u}):{triggers:[]},getNextPageParam:u=>{if(!(!u?.triggers?.length||u.triggers.length<MYe))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}},Nos=e=>{const t=We(),n=Br();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"]}),De.success(s==="pause"?"Schedule paused":"Schedule resumed")},onError:r=>{De.error(r.message)}})};function gz({label:e,children:t}){return o.jsxs("div",{className:"flex flex-col gap-1",children:[o.jsx(ye,{variant:"ui-xs",className:"text-neutral4 uppercase tracking-wide",children:e}),o.jsx("div",{className:"text-ui-md",children:t})]})}function Ios(){const{scheduleId:e}=ur(),{paths:t}=yn(),{data:n,error:r}=jos(e),{data:s,isLoading:a,error:i,hasNextPage:l,isFetchingNextPage:c,setEndOfListElement:u}=Tos(e),d=Nos(e);if(r&&gs(r))return o.jsx(lr,{children:o.jsx(Ws,{})});if(r&&ys(r))return o.jsx(lr,{children:o.jsx(Ls,{resource:"schedules"})});if(r)return o.jsx(lr,{children:o.jsx(Bi,{title:"Failed to load schedule",message:r.message})});const f=n?.workflowId,p=n?.agentId;return o.jsxs(zt,{children:[o.jsx(zt.TopArea,{children:o.jsx(zt.Row,{className:"justify-end",children:o.jsxs(zt.Column,{className:"flex justify-end gap-2",children:[o.jsxs(ce,{as:Da,to:t.schedulesLink(),variant:"ghost",children:[o.jsx(Nc,{}),"Back to schedules"]}),f?o.jsx(ce,{as:Da,to:t.workflowLink(f),variant:"ghost",children:"Open workflow"}):null,n?o.jsx(ce,{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(Kct,{}),"Pause"]}):o.jsxs(o.Fragment,{children:[o.jsx(zp,{}),"Resume"]})}):null]})})}),n?o.jsxs("div",{className:"grid gap-6 h-full overflow-hidden grid-cols-[minmax(0,20rem)_1fr]",children:[o.jsxs("div",{className:"flex flex-col gap-4 border border-border1 rounded-md p-4 h-fit",children:[o.jsx(gz,{label:p?"Agent":"Workflow",children:f?o.jsx(Da,{to:t.workflowLink(f),className:"text-accent1 hover:underline",children:f}):p?o.jsx(Da,{to:t.agentLink(p),className:"text-accent1 hover:underline",children:p}):"—"}),o.jsxs(gz,{label:"Cron",children:[o.jsx("code",{className:"font-mono text-ui-md",children:n.cron}),n.timezone?o.jsx("span",{className:"text-neutral4 ml-2 text-ui-sm",children:n.timezone}):null]}),o.jsx(gz,{label:"Status",children:o.jsx(yFt,{status:n.status})}),o.jsx(gz,{label:"Next fire",children:o.jsx("span",{title:Uj(n.nextFireAt),children:pP(n.nextFireAt)})})]}),o.jsxs("div",{className:"overflow-y-auto","data-testid":"schedule-triggers-panel",children:[o.jsx(ye,{variant:"ui-md",className:"mb-3",children:"Trigger history"}),i?o.jsx(Bi,{title:"Failed to load trigger history",message:i.message}):o.jsx(Eos,{triggers:s??[],isLoading:a,workflowId:f,hasNextPage:l,isFetchingNextPage:c,setEndOfListElement:u})]})]}):null]})}const DYe="minmax(0, 1.2fr) minmax(0, 1.4fr) minmax(0, 1fr) auto auto auto";function Aos({schedules:e,isLoading:t,search:n=""}){const{paths:r,Link:s}=yn(),a=g.useMemo(()=>{const i=n.toLowerCase();return i?e.filter(l=>l.id.toLowerCase().includes(i)||(l.workflowId??l.agentId??"").toLowerCase().includes(i)):e},[e,n]);return t?o.jsx(rl,{columns:DYe}):o.jsxs(ve,{columns:DYe,variant:"striped",className:"min-w-0",children:[o.jsxs(ve.Top,{children:[o.jsx(ve.TopCell,{children:"Target"}),o.jsx(ve.TopCell,{children:"Schedule ID"}),o.jsx(ve.TopCell,{children:"Cron"}),o.jsx(ve.TopCell,{children:"Status"}),o.jsx(ve.TopCell,{children:"Next fire"}),o.jsx(ve.TopCell,{children:"Last run"})]}),a.length===0&&n?o.jsx(ve.NoMatch,{message:"No schedules match your search"}):null,a.length===0&&!n?o.jsx(ve.NoMatch,{message:"No schedules configured"}):null,a.map(i=>o.jsxs(ve.RowLink,{to:r.scheduleLink(i.id),LinkComponent:s,children:[o.jsx(ve.NameCell,{children:i.workflowId??i.agentId}),o.jsx(ve.Cell,{height:"compact",className:"min-w-0",children:o.jsx("span",{className:"block truncate font-mono text-ui-smd text-neutral3",title:i.id,children:i.id})}),o.jsx(ve.Cell,{height:"compact",children:o.jsxs("span",{className:"inline-flex items-center gap-2 whitespace-nowrap",children:[o.jsx("code",{className:"font-mono text-ui-sm",children:i.cron}),i.timezone?o.jsx("span",{className:"text-neutral4 text-ui-xs",children:i.timezone}):null]})}),o.jsx(ve.Cell,{height:"compact",children:o.jsx(yFt,{status:i.status})}),o.jsx(ve.Cell,{height:"compact",children:o.jsx("span",{className:"whitespace-nowrap",title:Uj(i.nextFireAt),children:pP(i.nextFireAt)})}),o.jsx(ve.Cell,{height:"compact",children:i.lastRun?o.jsxs("span",{className:"inline-flex items-center gap-2 whitespace-nowrap",children:[o.jsx(bFt,{status:i.lastRun.status}),o.jsx("span",{className:"text-neutral4 text-ui-sm",title:Uj(i.lastFireAt),children:i.lastFireAt?pP(i.lastFireAt):""})]}):i.lastFireAt?o.jsx("span",{className:"whitespace-nowrap",title:Uj(i.lastFireAt),children:pP(i.lastFireAt)}):o.jsx("span",{className:"text-neutral4",children:"Never"})})]},i.id))]})}function Ros({workflowId:e}={}){const{data:t,isLoading:n,error:r}=w0e(e?{workflowId:e}:{}),[s,a]=g.useState("");return r?o.jsx(Bi,{title:"Failed to load schedules",message:r.message}):o.jsxs("div",{className:"grid grid-rows-[auto_1fr] gap-4 h-full overflow-hidden",children:[o.jsx("div",{className:"max-w-120",children:o.jsx(Nf,{onSearch:a,label:"Filter schedules",placeholder:"Filter by id or workflow"})}),o.jsx("div",{className:"overflow-y-auto",children:o.jsx(Aos,{schedules:t??[],isLoading:n,search:s})})]})}function Pos(){const[e]=va(),t=e.get("workflowId")??void 0,{error:n}=w0e(t?{workflowId:t}:{});return n&&gs(n)?o.jsx(lr,{children:o.jsx(Ws,{})}):n&&ys(n)?o.jsx(lr,{children:o.jsx(Ls,{resource:"schedules"})}):o.jsx(zt,{children:o.jsx("div",{className:"h-full",children:o.jsx(Ros,{workflowId:t})})})}function $os({stepGraph:e,open:t,workflowName:n}){const{nodes:r,edges:s}=J1e({stepGraph:e}),[a,i]=g.useState(!1),[l,c,u]=k1t(r),[d]=O1t(s),{edgeTypes:f,nodeTypes:p,styledEdges:h}=e$t({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:"w-full h-full relative bg-surface1",children:a?o.jsxs(S1t,{nodes:l,edges:h,edgeTypes:f,fitView:!0,fitViewOptions:{maxZoom:1},minZoom:.01,maxZoom:1,nodeTypes:p,onNodesChange:u,children:[o.jsx(vCe,{position:"bottom-left"}),o.jsx(C1t,{variant:ty.Lines,gap:12,size:.5})]}):o.jsx("div",{className:"w-full h-full flex items-center justify-center",children:o.jsx(Qt,{})})})}function Mos(){const{stepDetail:e,closeStepDetail:t}=sH();return e?o.jsxs("div",{className:"flex flex-col h-full","data-testid":"workflow-step-detail-panel",children:[o.jsxs("div",{className:"flex items-center justify-between px-4 py-3 border-b border-border1 bg-surface1",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[e.type==="map-config"&&o.jsx(xfe,{className:"w-4 h-4",style:{color:Nu.map}}),e.type==="nested-graph"&&o.jsx(Pd,{className:"w-4 h-4",style:{color:Nu.workflow}}),o.jsxs("div",{className:"flex flex-col",children:[o.jsx(ye,{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(ye,{variant:"ui-xs",className:"text-neutral3",children:e.stepId})]})]}),o.jsx("button",{onClick:t,className:"p-1 hover:bg-surface3 rounded transition-colors","aria-label":"Close",children:o.jsx(vs,{className:"w-4 h-4 text-neutral3"})})]}),o.jsxs("div",{className:"flex-1 overflow-auto",children:[e.type==="map-config"&&e.mapConfig&&o.jsx(lP,{data:e.mapConfig}),e.type==="nested-graph"&&e.nestedGraph&&o.jsx("div",{className:"h-full min-h-[400px]",children:o.jsx(K1e,{children:o.jsx($os,{stepGraph:e.nestedGraph.stepGraph,open:!0,workflowName:e.nestedGraph.fullStep})},`nested-graph-${e.nestedGraph.fullStep}`)})]})]}):null}function Dos(e){const t=new Blob([JSON.stringify(e??null)]).size;return t<1024?`${t} B`:`${(t/1024).toFixed(1)} KB`}function Los(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 zos({suspendedSteps:e,workflow:t,isStreaming:n,onResume:r}){return n||e.length===0?null:o.jsxs("div",{className:"space-y-5 rounded-lg border border-border1 bg-surface4 p-5","data-testid":"workflow-suspended-steps",children:[o.jsxs("div",{className:"flex items-center justify-between gap-3",children:[o.jsxs(ye,{as:"p",variant:"ui-md",className:"flex items-center gap-2 text-neutral6 font-semibold",children:[o.jsx(Ue,{children:o.jsx(yq,{})}),"Step suspended"]}),o.jsx(dn,{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?um(lm(vx(i.resumeSchema))):cp(dr(),uT());return o.jsx(Fos,{step:s,stepSchema:l,description:i.description,isStreaming:n,onResume:r},`${s.runId}-${s.stepId}-${a}`)})]})}function Fos({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(ye,{as:"p",variant:"ui-md",className:"text-neutral6 font-medium truncate",children:e.stepId}),n&&o.jsx(ye,{as:"p",variant:"ui-sm",className:"text-neutral3",children:n})]}),e.suspendPayload&&o.jsxs("div",{className:"space-y-2",children:[o.jsxs(ye,{as:"p",variant:"ui-sm",className:"flex items-center gap-2 text-neutral3",children:[o.jsx(Ue,{children:o.jsx(vpn,{})}),"The step is asking"]}),o.jsxs(kf,{open:a,onOpenChange:i,children:[o.jsxs(Nd,{className:"flex w-full items-center justify-between gap-2 rounded-lg border border-border1 bg-surface3 px-3 py-2.5",children:[o.jsxs("span",{className:"flex items-center gap-2 min-w-0",children:[o.jsx(Ue,{children:o.jsx(ua,{className:K("transition-transform text-neutral3",{"transform rotate-90":a})})}),o.jsx(ye,{as:"span",variant:"ui-md",className:"text-neutral6 truncate",children:Los(e.suspendPayload,e.stepId)})]}),o.jsx(ye,{as:"span",variant:"ui-sm",className:"text-neutral3 shrink-0",children:Dos(e.suspendPayload)})]}),o.jsx(Id,{children:o.jsx("div",{"data-testid":"suspended-payload",className:"pt-2",children:o.jsx(Yr,{data:e.suspendPayload,className:"w-full overflow-x-auto p-2",showCopyButton:!1})})})]})]}),o.jsxs("div",{className:"space-y-3",children:[o.jsxs(ye,{as:"p",variant:"ui-sm",className:"flex items-center gap-2 text-neutral3",children:[o.jsx(Ue,{children:o.jsx(xpn,{})}),"Your response"]}),o.jsx("div",{className:"-mx-5",children:o.jsx(G7,{schema:t,isSubmitLoading:r,submitButtonLabel:"Resume",submitButtonIcon:o.jsx(zp,{}),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 Bos(){const{result:e,runSnapshot:t,workflow:n,runId:r,isStreamingWorkflow:s}=g.useContext(Ml),{runId:a}=ur(),i=R1t(e,r??""),l=MQn(),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:"absolute top-2 right-2 z-20 w-[380px] max-w-[calc(100%-1rem)] max-h-[calc(100%-1rem)] overflow-y-auto rounded-lg shadow-lg animate-in fade-in-0 slide-in-from-top-2 zoom-in-95 duration-300",children:o.jsx(zos,{suspendedSteps:i,workflow:n,isStreaming:s,onResume:l})},r)}const Uos=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"})]}),qos=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"})]}),Vos=e=>e.includes("."),Hos=e=>e==="input"||e.endsWith(".input"),Wos=1;function Zos(e){return`${Number((e/1e3).toPrecision(3))}s`}function Gos(e,t){const n=Object.entries(e).filter(([i])=>!Hos(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,Wos);return{stepId:i,step:l,status:l.status,offsetPct:f,widthPct:p,durationMs:d,isRunning:c,isNestedEntry:Vos(i)}})}const Qos=({status:e})=>o.jsxs(Ue,{children:[e==="success"&&o.jsx(Uos,{className:"text-accent1"}),e==="failed"&&o.jsx(qos,{className:"text-accent2"}),e==="suspended"&&o.jsx(yq,{className:"text-accent3"}),e==="waiting"&&o.jsx(bfe,{className:"text-accent5"}),e==="skipped"&&o.jsx(bfe,{className:"text-icon3"}),e==="running"&&o.jsx(ta,{className:"text-accent6 animate-spin"})]}),Yos={success:"bg-accent1",failed:"bg-accent2",suspended:"bg-accent3",waiting:"bg-accent5",skipped:"bg-border1",running:"bg-accent6"};function xFt(e){return e.split(/[-_.\s]+/).filter(Boolean).map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(" ")}const LYe=e=>e&&typeof e=="object"&&!Array.isArray(e)?e:{value:e},Xos=e=>{const t=e;return HPt({duration:t.duration,date:t.date,isForEach:t.isForEach,mapConfig:t.mapConfig,canSuspend:t.canSuspend,isParallel:t.isParallel,stepGraph:t.stepGraph})},Kos=({row:e,index:t,isSelected:n,isHovered:r,onSelectStep:s,onHoverStep:a,onOpenInput:i,onOpenOutput:l})=>{const c=Xos(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(Qos,{status:e.status})}),o.jsx("div",{className:"flex justify-center",children:o.jsx(ce,{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(Shn,{})})}),o.jsx("div",{className:"flex overflow-hidden",children:o.jsx(SU,{indicators:c,className:"shrink-0"})}),o.jsx(ye,{as:"span",variant:"ui-sm",className:"block min-w-0 max-w-full justify-self-stretch overflow-hidden text-ellipsis whitespace-nowrap text-left text-neutral6",children:xFt(e.stepId)}),o.jsx("div",{className:"relative h-2 min-w-0 rounded bg-surface4",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 ${Yos[e.status]}`,style:{left:`${e.offsetPct}%`,width:`${e.widthPct}%`}})}),o.jsx("div",{className:"flex justify-center",children:o.jsx(ce,{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(xhn,{})})}),o.jsx(ye,{as:"span",variant:"ui-sm",className:"w-20 justify-self-end text-right text-neutral3 tabular-nums",children:Zos(e.durationMs)})]},`timeline-item-${e.stepId}-${t}`)};function Jos(){const{steps:e}=h4(),{selectedStepId:t,hoverStepId:n,setSelectedStepId:r,setHoverStepId:s}=mV(),[a,i]=g.useState(()=>Date.now()),[l,c]=g.useState(!1),[u,d]=g.useState(null),f=g.useRef(null);T0e(f,{enabled:!l});const p=Gos(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:"pointer-events-auto flex max-h-64 w-full min-w-0 flex-col gap-3 overflow-hidden rounded-studio-panel border border-border1/50 bg-surface3 p-4 shadow-lg",children:[o.jsxs("div",{className:"flex shrink-0 items-center justify-between gap-3",children:[o.jsx(ye,{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:"rounded-md p-1 text-neutral3 transition-colors hover:bg-surface4 hover:text-neutral6",children:o.jsx(Ra,{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(Kos,{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:LYe(y.step.input)}),onOpenOutput:y=>d({type:"output",stepId:y.stepId,data:LYe(y.step.output)})},`timeline-item-${m.stepId}-${v}`))})]})}),o.jsx(br,{open:!!u,onOpenChange:m=>!m&&d(null),children:u&&o.jsx($1t,{data:u.data,title:`${xFt(u.stepId)} ${u.type==="input"?"input":"output"}`})})]})}const els=({workflowId:e,workflow:t,isLoading:n})=>{const{stepDetail:r}=sH();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(l$t,{workflowId:e,workflow:t,isLoading:n}),o.jsx(Bos,{}),o.jsx(Jos,{})]})}),r&&o.jsx("div",{className:"w-[420px] min-h-0 overflow-hidden border-l border-border1",children:o.jsx(Mos,{})})]})},zYe=()=>{const{workflowId:e}=ur(),{data:t,isLoading:n,error:r}=_3(e);return r&&gs(r)?o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Ws,{})}):r&&ys(r)?o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Ls,{resource:"workflows"})}):o.jsx(gSe,{children:o.jsx(els,{workflowId:e,workflow:t??void 0,isLoading:n})})};function tls(e,t){if(e==null)return{};var n,r,s=zxt(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 mye(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 nls(e){if(Array.isArray(e))return mye(e)}function rls(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function sls(e,t){if(e){if(typeof e=="string")return mye(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)?mye(e,t):void 0}}function als(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
|
|
725
|
+
]`})]})]})}function ers({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 border-accent2/30 rounded-md p-3",children:[o.jsxs("div",{className:"flex items-center gap-2 text-accent2 mb-2",children:[o.jsx(Ue,{children:o.jsx(Tp,{className:"w-4 h-4"})}),o.jsxs("span",{className:"font-medium text-sm",children:[e.length," validation error",e.length!==1?"s":""]})]}),o.jsx("ul",{className:"text-sm text-accent2/80 space-y-1",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-xs text-accent2/60 mt-2",children:["+",r," more error",r!==1?"s":""]})]})}function trs({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}=Ets(),{batchInsertItems:b}=Ei(),S=g.useCallback(async I=>{try{const A=await m(I);l(A),a("preview")}catch{}},[m]),w=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&&De.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,E=()=>{switch(s){case"upload":return o.jsx(Jns,{onFileSelect:S,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(ers,{errors:i.errors}),o.jsx("div",{className:"text-sm text-neutral4",children:"Please fix the errors in your JSON file and try again."})]}):o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"text-sm text-neutral4",children:["Found ",i.items.length," valid item",i.items.length!==1?"s":""," to import."]}),o.jsx(Kns,{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-lg font-medium text-neutral1",children:"Importing items..."}),o.jsxs("div",{className:"text-sm text-neutral4 mt-1",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-lg font-medium text-neutral1",children:"Import Complete"}),o.jsxs("div",{className:"text-sm text-neutral4 mt-1",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":"",")"]})]})]})]})}},j=()=>{switch(s){case"upload":return o.jsx(ce,{onClick:_,children:"Cancel"});case"preview":return o.jsxs(o.Fragment,{children:[o.jsx(ce,{onClick:()=>a("upload"),children:"Back"}),o.jsxs(ce,{variant:"primary",onClick:w,disabled:!C,children:["Import ",i?.items.length??0," Item",i?.items.length!==1?"s":""]})]});case"importing":return null;case"complete":return o.jsx(ce,{variant:"primary",onClick:k,children:"Done"})}},T={upload:"Import JSON",preview:"Preview Data",importing:"Importing",complete:"Import Complete"};return o.jsx(br,{open:t,onOpenChange:_,children:o.jsxs(xr,{className:"max-w-2xl max-h-[90vh]",children:[o.jsxs(wr,{children:[o.jsx(gr,{children:T[s]}),o.jsx(Xs,{children:"Import dataset items from a JSON file."})]}),o.jsx($r,{className:"min-h-[200px] max-h-[50vh] overflow-y-auto",children:E()}),o.jsx(Cc,{className:"px-6 pt-4 flex justify-end gap-2",children:j()})]})})}const HTe=e=>{const t=We(),{data:n}=rD(e),r=n?.experiments;return St({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:""}))}catch{return[]}}))).flat(),enabled:!!e&&!!r&&r.length>0,refetchOnWindowFocus:!1})},nrs=e=>{const t=We(),{data:n}=rD(e),r=n?.experiments;return St({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:""}))}catch{return[]}}))).flat(),enabled:!!e&&!!r&&r.length>0,refetchOnWindowFocus:!1})};function rrs(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 tFt({datasetId:e,experimentId:t,featuredItemId:n}){const r=We(),{data:s}=Wx(e),{data:a,isLoading:i}=HTe(e),{data:l,isLoading:c}=nrs(e),u=g.useMemo(()=>t?(a??[]).filter(Te=>Te.experimentId===t):a,[a,t]),d=g.useMemo(()=>t?(l??[]).filter(Te=>Te.experimentId===t):l,[l,t]),{updateExperimentResult:f}=Ei(),[p,h]=g.useState(n??null);g.useEffect(()=>{n!==void 0&&h(n)},[n]);const[m,v]=g.useState(null),[y,b]=g.useState(new Set),[S,w]=g.useState(!1),[k,_]=g.useState(!1),[C,E]=g.useState(!1),[j,T]=g.useState(""),[I,A]=g.useState(""),[P,L]=g.useState(""),[D,q]=g.useState([]),[H,z]=g.useState(!1),[B,V]=g.useState(null),M=g.useMemo(()=>B??u??[],[B,u]);g.useEffect(()=>{V(null)},[e,t]),g.useEffect(()=>{u&&B===null&&V(u)},[u,B]);const Q=g.useMemo(()=>{const Te=new Set;if(s?.tags)for(const Ce of s.tags)Te.add(Ce);for(const Ce of M)for(const Ee of Ce.tags)Te.add(Ee);return[...Te].sort()},[s,M]),U=g.useCallback(Te=>{!s||!e||(s.tags??[]).includes(Te)},[s,e]),$=g.useMemo(()=>m?m==="__untagged__"?M.filter(Te=>Te.tags.length===0):M.filter(Te=>Te.tags.includes(m)):M,[M,m]),F=g.useMemo(()=>{const Te=new Map;for(const Ce of M)for(const Ee of Ce.tags)Te.set(Ee,(Te.get(Ee)??0)+1);return[...Te.entries()].sort((Ce,Ee)=>Ee[1]-Ce[1])},[M]),Z=g.useMemo(()=>M.filter(Te=>Te.tags.length===0).length,[M]),X=g.useMemo(()=>{let Te=0;return m&&Te++,S&&Te++,Te},[m,S]),te=g.useCallback((Te,Ce)=>{V(Oe=>(Oe??[]).map(Re=>Re.id===Te?{...Re,tags:Ce}:Re));const Ee=M.find(Oe=>Oe.id===Te);Ee?.experimentId&&Ee?.datasetId&&f.mutate({datasetId:Ee.datasetId,experimentId:Ee.experimentId,resultId:Ee.id,tags:Ce})},[M,f]),ee=g.useCallback((Te,Ce)=>{const Ee=M.find(Oe=>Oe.id===Te);Ee?.traceId&&Ce!==void 0&&r.createFeedback({feedback:{traceId:Ee.traceId,source:"studio",feedbackSource:"studio",feedbackType:"rating",value:Ce==="positive"?1:-1,experimentId:Ee.experimentId??void 0,sourceId:Ee.id}}).catch(()=>{}),V(Oe=>(Oe??[]).map(Re=>Re.id===Te?{...Re,rating:Ce}:Re))},[M,r]),J=g.useCallback((Te,Ce)=>{const Ee=M.find(Oe=>Oe.id===Te);Ee?.traceId&&r.createFeedback({feedback:{traceId:Ee.traceId,source:"studio",feedbackSource:"studio",feedbackType:"comment",value:Ce,comment:Ce,experimentId:Ee.experimentId??void 0,sourceId:Ee.id}}).catch(()=>{}),V(Oe=>(Oe??[]).map(Re=>Re.id===Te?{...Re,comment:Ce}:Re))},[M,r]),ae=g.useCallback(Te=>{const Ce=M.find(Ee=>Ee.id===Te);V(Ee=>(Ee??[]).filter(Oe=>Oe.id!==Te)),b(Ee=>{const Oe=new Set(Ee);return Oe.delete(Te),Oe}),p===Te&&h(null),Ce?.experimentId&&Ce?.datasetId&&f.mutate({datasetId:Ce.datasetId,experimentId:Ce.experimentId,resultId:Ce.id,status:null})},[M,f,p]),pe=g.useCallback(Te=>{const Ce=M.find(Ee=>Ee.id===Te);V(Ee=>(Ee??[]).filter(Oe=>Oe.id!==Te)),b(Ee=>{const Oe=new Set(Ee);return Oe.delete(Te),Oe}),p===Te&&h(null),Ce?.experimentId&&Ce?.datasetId&&f.mutate({datasetId:Ce.datasetId,experimentId:Ce.experimentId,resultId:Ce.id,status:"complete"})},[M,f,p]),Y=g.useMemo(()=>{const Te=S?d??[]:$;return!S||!m?Te:m==="__untagged__"?Te.filter(Ce=>Ce.tags.length===0):Te.filter(Ce=>Ce.tags.includes(m))},[S,d,$,m]),ne=S?c:!1,ue=g.useMemo(()=>new Set(Y.map(Te=>Te.id)),[Y]),fe=g.useMemo(()=>[...y].filter(Te=>ue.has(Te)).length,[y,ue]),oe=Y.length>0&&fe===Y.length,me=fe>0&&!oe,be=g.useCallback(Te=>{b(Ce=>{const Ee=new Set(Ce);return Ee.has(Te)?Ee.delete(Te):Ee.add(Te),Ee})},[]),we=g.useCallback(()=>{b(oe?new Set:new Set(Y.map(Te=>Te.id)))},[oe,Y]),je=g.useCallback(Te=>{for(const Ce of y){const Ee=M.find(Oe=>Oe.id===Ce);Ee&&!Ee.tags.includes(Te)&&te(Ce,[...Ee.tags,Te])}},[M,y,te]),ke=g.useCallback(Te=>{for(const Ce of y){const Ee=M.find(Oe=>Oe.id===Ce);Ee&&Ee.tags.includes(Te)&&te(Ce,Ee.tags.filter(Oe=>Oe!==Te))}},[M,y,te]),Ae=g.useCallback(()=>{for(const Te of y)pe(Te);b(new Set)},[y,pe]),Fe=g.useCallback(()=>{for(const Te of y)ae(Te);b(new Set)},[y,ae]),le=g.useCallback(()=>{T(""),E(!0)},[]),re=g.useCallback(async()=>{if(!(!I||!P)){_(!0),E(!1);try{const Te=M.filter(Ee=>y.has(Ee.id));if(Te.length===0){_(!1);return}const Ce=await r.clusterFailures({modelId:`${I}/${P}`,items:Te.map(Ee=>({id:Ee.id,input:Ee.input,output:Ee.output??void 0,error:typeof Ee.error=="string"?Ee.error:Ee.error?String(Ee.error):void 0,scores:Ee.scores,existingTags:Ee.tags.length>0?Ee.tags:void 0})),availableTags:Q.length>0?Q:void 0,prompt:j||void 0});Ce.proposedTags&&Ce.proposedTags.length>0&&(q(Ce.proposedTags.map(Ee=>({...Ee,accepted:!0}))),z(!0))}catch(Te){console.error("Analysis failed:",Te)}finally{_(!1)}}},[I,P,M,y,r,Q,j]),se=g.useCallback(()=>{for(const Te of D){if(!Te.accepted)continue;const Ce=M.find(Ee=>Ee.id===Te.itemId);if(Ce){const Ee=[...new Set([...Ce.tags,...Te.tags])];te(Ce.id,Ee)}}z(!1)},[D,M,te]),he=g.useCallback(Te=>{h(Ce=>Ce===Te?null:Te)},[]),xe=g.useMemo(()=>p?Y.find(Te=>Te.id===p)??null:null,[p,Y]),Ne=p?Y.findIndex(Te=>Te.id===p):-1,Pe=Ne>0?()=>h(Y[Ne-1].id):void 0,Ye=Ne>=0&&Ne<Y.length-1?()=>h(Y[Ne+1].id):void 0,Ze="auto minmax(15rem,1fr) 10rem 8rem 6rem 6rem";return i?o.jsx("div",{className:"flex-1 flex items-center justify-center",children:o.jsx(Qt,{className:"w-6 h-6"})}):o.jsxs("div",{className:"flex flex-1 min-h-0 overflow-hidden",children:[o.jsx(br,{open:C,onOpenChange:E,children:o.jsxs(xr,{children:[o.jsxs(wr,{children:[o.jsx(gr,{children:"Analyze Items"}),o.jsx(Xs,{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:"text-xs mb-1 block",children:"Provider"}),o.jsx(Ly,{value:I,onValueChange:A})]}),o.jsxs("div",{children:[o.jsx($t,{className:"text-xs mb-1 block",children:"Model"}),o.jsx(zy,{llmId:I,value:P,onValueChange:L})]})]}),o.jsxs(ye,{variant:"ui-xs",className:"text-neutral3",children:[y.size," item",y.size!==1?"s":""," will be analyzed"]}),o.jsxs("div",{children:[o.jsx($t,{className:"text-xs",children:"Instructions (optional)"}),o.jsx(Jl,{value:j,onChange:Te=>T(Te.target.value),placeholder:"E.g., Focus on safety issues and factual errors...",rows:3,className:"text-xs mt-1"})]})]}),o.jsxs(Cc,{children:[o.jsx(ce,{variant:"outline",onClick:()=>E(!1),children:"Cancel"}),o.jsxs(ce,{onClick:re,disabled:!I||!P||k,children:[k?o.jsx(Qt,{className:"w-4 h-4 mr-1"}):null,"Analyze"]})]})]})}),o.jsx(br,{open:H,onOpenChange:z,children:o.jsxs(xr,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[o.jsxs(wr,{children:[o.jsx(gr,{children:"Review Proposed Tags"}),o.jsxs(Xs,{children:[D.filter(Te=>Te.accepted).length," of ",D.length," proposals selected"]})]}),o.jsx("div",{className:"space-y-3 py-2",children:D.map((Te,Ce)=>{const Ee=M.find(Oe=>Oe.id===Te.itemId);return o.jsx("div",{className:K("p-3 border rounded-lg",!Te.accepted&&"opacity-50"),children:o.jsxs("div",{className:"flex items-start gap-2",children:[o.jsx(Do,{checked:Te.accepted,onCheckedChange:Oe=>q(Re=>Re.map((qe,Xe)=>Xe===Ce?{...qe,accepted:!!Oe}:qe))}),o.jsxs("div",{className:"flex-1 min-w-0",children:[o.jsx(ye,{variant:"ui-xs",className:"text-neutral4 truncate block",children:Ee?typeof Ee.input=="string"?Ee.input.slice(0,100):JSON.stringify(Ee.input).slice(0,100):Te.itemId}),o.jsx("div",{className:"flex gap-1 flex-wrap mt-1.5",children:Te.tags.map((Oe,Re)=>o.jsx(Azt,{tag:Oe,onRename:qe=>q(Xe=>Xe.map((tt,Pt)=>Pt===Ce?{...tt,tags:tt.tags.map((ot,Ut)=>Ut===Re?qe:ot)}:tt)),onRemove:()=>q(qe=>qe.map((Xe,tt)=>tt===Ce?{...Xe,tags:Xe.tags.filter((Pt,ot)=>ot!==Re)}:Xe))},`${Oe}-${Re}`))}),Te.reason&&o.jsx(ye,{variant:"ui-xs",className:"text-neutral3 mt-1 block italic",children:Te.reason})]})]})},Te.itemId)})}),o.jsxs(Cc,{children:[o.jsx(ce,{variant:"outline",onClick:()=>z(!1),children:"Cancel"}),o.jsxs(ce,{onClick:se,disabled:D.filter(Te=>Te.accepted).length===0,children:["Accept ",D.filter(Te=>Te.accepted).length," proposals"]})]})]})}),o.jsxs("div",{className:K("grid w-full h-full grid-cols-1 gap-4 overflow-y-auto",xe&&"grid-cols-[1fr_1fr]"),children:[o.jsxs("div",{className:"grid gap-8 content-start w-full overflow-y-auto",children:[o.jsxs("div",{className:"flex items-center justify-between w-full flex-wrap gap-4 gap-x-6",children:[o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsxs(dt,{children:[o.jsx(dt.Trigger,{asChild:!0,children:o.jsxs(ce,{variant:"outline",size:"md",children:[o.jsx(Uct,{}),"Filter",X>0&&o.jsx("span",{className:K("ml-0.5 inline-flex items-center justify-center rounded-full bg-accent1/50 text-neutral5 text-ui-sm w-5 h-5"),children:X})]})}),o.jsxs(dt.Content,{align:"start",className:K("min-w-48"),children:[o.jsxs(dt.Sub,{children:[o.jsxs(dt.SubTrigger,{children:["Status",S&&o.jsx("span",{className:K("ml-auto text-ui-sm text-accent1"),children:"1"})]}),o.jsxs(dt.SubContent,{children:[o.jsx(dt.CheckboxItem,{checked:!S,onCheckedChange:()=>{w(!1),h(null)},onSelect:Te=>Te.preventDefault(),children:"Review Queue"}),o.jsx(dt.CheckboxItem,{checked:S,onCheckedChange:()=>{w(!0),h(null)},onSelect:Te=>Te.preventDefault(),children:"Completed"})]})]}),o.jsxs(dt.Sub,{children:[o.jsxs(dt.SubTrigger,{children:["Tags",m&&o.jsx("span",{className:K("ml-auto text-ui-sm text-accent1"),children:"1"})]}),o.jsxs(dt.SubContent,{children:[o.jsx(dt.CheckboxItem,{checked:!m,onCheckedChange:()=>v(null),onSelect:Te=>Te.preventDefault(),children:"All"}),Z>0&&o.jsx(dt.CheckboxItem,{checked:m==="__untagged__",onCheckedChange:()=>v(m==="__untagged__"?null:"__untagged__"),onSelect:Te=>Te.preventDefault(),children:"Untagged"}),F.length>0&&o.jsx(dt.Separator,{}),F.map(([Te])=>o.jsx(dt.CheckboxItem,{checked:m===Te,onCheckedChange:()=>v(m===Te?null:Te),onSelect:Ce=>Ce.preventDefault(),children:Te},Te))]})]}),X>0&&o.jsxs(o.Fragment,{children:[o.jsx(dt.Separator,{}),o.jsxs(dt.Item,{onSelect:()=>{v(null),w(!1),h(null)},children:[o.jsx(vs,{}),"Clear all filters"]})]})]})]}),X>0&&o.jsxs(ce,{variant:"outline",size:"md",onClick:()=>{v(null),w(!1),h(null)},children:[o.jsx(vs,{}),"Reset"]})]}),!S&&y.size>0&&o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(Izt,{selectedCount:y.size,vocabulary:Q,onApplyTag:je,onRemoveTag:ke,onNewTag:Te=>je(Te)}),o.jsxs(dt,{children:[o.jsx(dt.Trigger,{asChild:!0,children:o.jsxs(ce,{disabled:k,children:[k?o.jsx(Qt,{className:"w-4 h-4"}):o.jsx(Ue,{size:"sm",children:o.jsx(Ra,{})}),"Actions"]})}),o.jsxs(dt.Content,{align:"end",children:[o.jsxs(dt.Item,{onSelect:Ae,children:[o.jsx(Ue,{size:"sm",children:o.jsx(cO,{})}),"Complete"]}),o.jsxs(dt.Item,{onSelect:Fe,children:[o.jsx(Ue,{size:"sm",children:o.jsx(uu,{})}),"Remove"]}),o.jsx(dt.Separator,{}),o.jsxs(dt.Item,{onSelect:le,children:[o.jsx(Ue,{size:"sm",children:o.jsx(Og,{})}),"Analyze"]})]})]})]})]}),ne?o.jsx("div",{className:"flex-1 flex items-center justify-center",children:o.jsx(Qt,{className:"w-6 h-6"})}):Y.length===0?o.jsx("div",{className:"flex-1 flex items-center justify-center",children:o.jsxs("div",{className:"text-center px-8",children:[o.jsx(ye,{variant:"ui-sm",className:"text-neutral3 block",children:S?"No completed reviews yet":"No items to review"}),o.jsx(ye,{variant:"ui-xs",className:"text-neutral3 mt-2 block",children:S?"Items marked as complete will appear here for auditing.":"When experiment results are flagged for review, they will appear here."})]})}):o.jsxs(ve,{columns:Ze,className:"min-w-0",children:[o.jsxs(ve.Top,{hasLeadingCell:!0,children:[S?o.jsx(ve.TopCell,{children:" "}):o.jsx(ve.TopSelectCell,{checked:oe?!0:me?"indeterminate":!1,onToggle:()=>we(),"aria-label":"Select all"}),o.jsxs(ve.TopCells,{colStart:2,children:[o.jsx(ve.TopCell,{children:"Input"}),o.jsx(ve.TopCell,{children:"Comment"}),o.jsx(ve.TopCell,{children:"Tags"}),o.jsx(ve.TopCell,{children:"Rating"}),o.jsx(ve.TopCell,{children:"Scores"})]})]}),Y.map(Te=>{const Ce=Te.scores?Object.entries(Te.scores):[],Ee=p===Te.id,Oe=o.jsxs(o.Fragment,{children:[o.jsx(ve.Cell,{height:"compact",className:"min-w-0 text-neutral4",children:o.jsx("span",{className:"block truncate",children:rrs(Te.input,200)})}),o.jsx(ve.Cell,{height:"compact",className:"min-w-0",children:Te.comment?o.jsx(ye,{variant:"ui-xs",className:"text-neutral3 truncate",children:Te.comment}):o.jsx(ye,{variant:"ui-xs",className:"text-neutral2",children:"—"})}),o.jsx(ve.Cell,{height:"compact",className:"min-w-0",children:Te.tags.length>0?o.jsx(ye,{variant:"ui-xs",className:"text-neutral4 truncate",children:Te.tags.join(", ")}):o.jsx(ye,{variant:"ui-xs",className:"text-neutral2",children:"—"})}),o.jsxs(ve.Cell,{height:"compact",children:[Te.rating==="positive"&&o.jsx(Ue,{size:"sm",className:"text-positive1",children:o.jsx(Lbe,{})}),Te.rating==="negative"&&o.jsx(Ue,{size:"sm",className:"text-negative1",children:o.jsx(Dbe,{})}),!Te.rating&&o.jsx(ye,{variant:"ui-xs",className:"text-neutral2",children:"—"})]}),o.jsx(ve.Cell,{height:"compact",children:Ce.length>0?o.jsxs("div",{className:"flex items-center gap-1",children:[o.jsx(Ue,{size:"sm",className:"text-neutral3",children:o.jsx(sm,{})}),o.jsx(ye,{variant:"ui-xs",className:"text-neutral4 font-mono",children:Ce[0][1].toFixed(2)}),Ce.length>1&&o.jsxs(dn,{variant:"default",children:["+",Ce.length-1]})]}):o.jsx(ye,{variant:"ui-xs",className:"text-neutral2",children:"—"})})]});return o.jsxs(ve.RowWrapper,{children:[S?o.jsx(ve.Cell,{height:"compact",className:"justify-items-center px-4",children:o.jsx("div",{role:"img","aria-label":Te.error?"Error":"Success",title:Te.error?"Error":"Success",className:K("w-2 h-2 rounded-full",Te.error?"bg-red-700":"bg-green-600")})}):o.jsx(ve.SelectCell,{checked:y.has(Te.id),onToggle:()=>be(Te.id),"aria-label":`Select item ${Te.id}`}),o.jsx(ve.RowButton,{flushLeft:!0,colStart:2,featured:Ee,onClick:()=>he(Te.id),children:Oe})]},Te.id)})]})]}),xe&&o.jsx(Nzt,{item:xe,isCompleted:S,tagVocabulary:Q,onRate:Te=>ee(xe.id,Te),onSetTags:Te=>{te(xe.id,Te);for(const Ce of Te)Q.includes(Ce)||U(Ce)},onComment:Te=>J(xe.id,Te),onRemove:()=>ae(xe.id),onComplete:S?void 0:()=>pe(xe.id),onPrevious:Pe,onNext:Ye,onClose:()=>h(null)})]})]})}function srs({datasetId:e,onAddItemClick:t,onNavigateToDataset:n}){const{navigate:r}=yn(),[s,a]=va(),{tab:i,activeVersion:l,handleTabChange:c}=qTe(s,a),[u,d]=g.useState(!1),[f,p]=g.useState(!1),[h,m]=g.useState(!1),[v,y]=g.useState([]),[b,S]=g.useState(!1),[w,k]=g.useState([]),[_,C]=g.useState(!1),[E,j]=g.useState([]),[T,I]=g.useState(0),[A,P]=g.useState(null),[L,D]=g.useState(""),[q]=twe(L,300),{data:H}=Wx(e),{data:z=[],total:B,isLoading:V,setEndOfListElement:M,isFetchingNextPage:Q,hasNextPage:U}=E1(e,q||void 0,l),{total:$}=E1(e,void 0,l),[F,Z]=g.useState({}),{data:X,isLoading:te}=rD(e,void 0,F),{data:ee}=rD(e),{deleteItems:J}=Ei(),ae=X?.experiments??[],pe=ee?.experiments??[],Y=ans({hasSearchQuery:!!q,filteredItemsLength:z.length,unfilteredItemsTotal:$,itemsTotal:B}),{data:ne}=HTe(e),ue=ne?.length??0,fe=se=>{P(se)},oe=()=>{P(null)},me=se=>{y(se),m(!0)},be=se=>{k(se),S(!0)},we=se=>{S(se),se||(k([]),I(he=>he+1))},je=se=>{r(`/datasets/${e}/items?items=${se.join(",")}`)},ke=se=>{r(`/datasets/${e}/versions?ids=${se.join(",")}`)},Ae=se=>{j(se),C(!0)},Fe=async()=>{await J.mutateAsync({datasetId:e,itemIds:E}),De.success(`Deleted ${E.length} items`),C(!1),j([]),I(se=>se+1)},le=se=>{m(!1),y([]),I(he=>he+1),n?.(se)},re=se=>{m(se),se||(y([]),I(he=>he+1))};return o.jsxs(o.Fragment,{children:[o.jsxs(Ac,{defaultTab:"items",value:i,onValueChange:c,className:"grid grid-rows-[auto_1fr] h-full",children:[o.jsxs(Ic,{children:[o.jsxs(Ar,{value:"items",children:["Items ",o.jsx(ea,{color:"gray",children:Y})]}),o.jsxs(Ar,{value:"experiments",children:["Experiments",o.jsx(ea,{color:"gray",children:ae.length})]}),o.jsxs(Ar,{value:"review",children:["Review",ue>0&&o.jsx(ea,{color:"orange",children:ue})]})]}),o.jsx(Xr,{value:"items",className:"grid overflow-auto mt-5 pb-0",children:o.jsx(Xns,{datasetId:e,items:z,isLoading:V,featuredItemId:A,onItemSelect:fe,onItemClose:oe,onAddClick:t??(()=>{}),onImportClick:()=>d(!0),onImportJsonClick:()=>p(!0),onBulkDeleteClick:Ae,onCreateDatasetClick:me,onAddToDatasetClick:be,onCompareItemsClick:je,datasetName:H?.name,clearSelectionTrigger:T,setEndOfListElement:M,isFetchingNextPage:Q,hasNextPage:U,searchQuery:L,activeSearchQuery:q,onSearchChange:D,currentDatasetVersion:H?.version,onCompareVersionsClick:ke})}),o.jsx(Xr,{value:"experiments",className:"grid overflow-auto mt-5 pb-0",children:o.jsx(Sns,{experiments:ae,allExperiments:pe,isLoading:te,datasetId:e,filters:F,onFiltersChange:Z})}),o.jsx(Xr,{value:"review",className:"overflow-auto mt-2 pb-0",children:o.jsx(tFt,{datasetId:e})})]}),o.jsx(hns,{datasetId:e,open:u,onOpenChange:d}),o.jsx(trs,{datasetId:e,open:f,onOpenChange:p}),o.jsx(Vts,{open:h,onOpenChange:re,items:v,onSuccess:le}),o.jsx(Hts,{open:b,onOpenChange:we,items:w,currentDatasetId:e}),o.jsx(It,{open:_,onOpenChange:C,children:o.jsxs(It.Content,{children:[o.jsxs(It.Header,{children:[o.jsx(It.Title,{children:"Delete Items"}),o.jsxs(It.Description,{children:["Are you sure you want to delete ",E.length," item",E.length!==1?"s":"","? This action cannot be undone."]})]}),o.jsxs(It.Footer,{children:[o.jsx(It.Cancel,{children:"Cancel"}),o.jsx(It.Action,{onClick:Fe,children:J.isPending?"Deleting...":"Delete"})]})]})})]})}function ars(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 bse({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-xs text-destructive",children:[o.jsxs("code",{className:"bg-destructive/10 px-1 rounded",children:[e,n.path!=="/"?n.path:""]}),": ",n.message]},r))}):null}function irs({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(""),[m,v]=g.useState(null),{addItem:y}=Ei(),b=async C=>{C.preventDefault();let E;try{E=JSON.parse(s)}catch{De.error("Input must be valid JSON");return}let j;if(i.trim())try{j=JSON.parse(i)}catch{De.error("Ground Truth must be valid JSON");return}let T;if(c.trim())try{T=JSON.parse(c)}catch{De.error("Expected Trajectory must be valid JSON");return}let I;if(d.trim())try{const P=JSON.parse(d);if(!Array.isArray(P)){De.error("Tool Mocks must be a JSON array");return}I=P}catch{De.error("Tool Mocks must be valid JSON");return}let A;if(p.trim())try{A=JSON.parse(p)}catch{De.error("Request Context must be valid JSON");return}try{await y.mutateAsync({datasetId:e,input:E,groundTruth:j,expectedTrajectory:T,toolMocks:I,requestContext:A}),De.success("Item added successfully"),v(null),a("{}"),l(""),u(""),f(""),h(""),n(!1),r?.()}catch(P){const L=ars(P);L?v(L):De.error(`Failed to add item: ${P instanceof Error?P.message:"Unknown error"}`)}},S=C=>{a(C),m?.field==="input"&&v(null)},w=C=>{l(C),m?.field==="groundTruth"&&v(null)},k=C=>{f(C),m?.field==="toolMocks"&&v(null)},_=()=>{a("{}"),l(""),u(""),f(""),h(""),v(null),n(!1)};return o.jsx(br,{open:t,onOpenChange:n,children:o.jsxs(xr,{className:"max-w-lg",children:[o.jsx(wr,{children:o.jsx(gr,{children:"Add Item"})}),o.jsx($r,{children:o.jsxs("form",{onSubmit:b,className:"space-y-4",children:[o.jsxs("div",{className:"space-y-2",children:[o.jsx($t,{htmlFor:"item-input",children:"Input (JSON) *"}),o.jsx(Yr,{value:s,onChange:S,showCopyButton:!1,className:"min-h-[120px]"}),m?.field==="input"&&o.jsx(bse,{field:"input",errors:m.errors})]}),o.jsxs("div",{className:"space-y-2",children:[o.jsx($t,{htmlFor:"item-ground-truth",children:"Ground Truth (JSON, optional)"}),o.jsx(Yr,{value:i,onChange:w,showCopyButton:!1,className:"min-h-[80px]"}),m?.field==="groundTruth"&&o.jsx(bse,{field:"groundTruth",errors:m.errors})]}),o.jsxs("div",{className:"space-y-2",children:[o.jsx($t,{htmlFor:"item-trajectory",children:"Expected Trajectory (JSON, optional)"}),o.jsx(Yr,{value:c,onChange:u,showCopyButton:!1,className:"min-h-[80px]"})]}),o.jsxs("div",{className:"space-y-2",children:[o.jsx($t,{htmlFor:"item-tool-mocks",children:"Tool Mocks (JSON array, optional)"}),o.jsx(Yr,{value:d,onChange:k,showCopyButton:!1,className:"min-h-[80px]"}),m?.field==="toolMocks"&&o.jsx(bse,{field:"toolMocks",errors:m.errors})]}),o.jsxs("div",{className:"space-y-2",children:[o.jsx($t,{htmlFor:"item-request-context",children:"Request Context (JSON, optional)"}),o.jsx(Yr,{value:p,onChange:h,showCopyButton:!1,className:"min-h-[80px]"})]}),o.jsxs("div",{className:"flex justify-end gap-2 pt-4",children:[o.jsx(ce,{type:"button",onClick:_,children:"Cancel"}),o.jsx(ce,{type:"submit",variant:"primary",disabled:y.isPending,children:y.isPending?"Adding...":"Add Item"})]})]})})]})})}function ors({item:e}){return o.jsx(fa,{withMargins:!1,children:o.jsxs(fa.Column,{children:[o.jsxs(fa.Title,{size:"smaller",children:[o.jsx(xN,{}),o.jsx("span",{className:"truncate",children:e.id}),o.jsx(Oa,{content:e.id,tooltip:`Copy item ID: ${e.id}`})]}),o.jsxs(fa.Description,{children:[o.jsxs(Al,{children:[o.jsx(Rct,{})," Created ",tr(new Date(e.createdAt),"MMM d, yyyy h:mm aaa")]}),e.datasetVersion!=null&&o.jsxs(Al,{children:[o.jsx(d_,{})," Version v",e.datasetVersion]})]})]})})}function WTe({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(pTe,{children:[o.jsx(Ps.CodeSection,{title:"Input",icon:o.jsx(uO,{}),codeStr:t}),o.jsx(Ps.CodeSection,{title:"Ground Truth",icon:o.jsx(bg,{}),codeStr:n}),s&&o.jsx(Ps.CodeSection,{title:"Expected Trajectory",icon:o.jsx(Pbe,{}),codeStr:s}),o.jsx(Ps.CodeSection,{title:"Metadata",icon:o.jsx(kN,{}),codeStr:r})]})}function lrs({selectedScorers:e,setSelectedScorers:t,disabled:n=!1,container:r}){const{data:s,isLoading:a}=ah(),i=g.useMemo(()=>s?Object.entries(s).map(([l,c])=>({value:l,label:c.scorer?.config?.name||l,description:c.scorer?.config?.description||""})):[],[s]);return o.jsxs("div",{className:"grid gap-2",children:[o.jsx($t,{children:"Scorers (Optional)"}),o.jsx(tc,{multiple:!0,options:i,value:e,onValueChange:t,placeholder:"Select scorers...",searchPlaceholder:"Search scorers...",emptyText:"No scorers available",disabled:n||a,container:r})]})}const crs=[{value:"agent",label:"Agent"},{value:"workflow",label:"Workflow"},{value:"scorer",label:"Scorer"}];function urs({targetType:e,setTargetType:t,targetId:n,setTargetId:r,container:s}){const{data:a,isLoading:i}=Om(),{data:l,isLoading:c}=Fy(),{data:u,isLoading:d}=ah(),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(tc,{options:crs,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(tc,{options:f,value:n,onValueChange:r,placeholder:`Select ${e}`,searchPlaceholder:"Search...",emptyText:"No targets available",disabled:p,container:s})]})]})}function drs({requestContextSchema:e,onChange:t}){const n=g.useMemo(()=>{try{return um(lm(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(l3,{schema:n,onValuesChange:t,className:"[&_button[type=submit]]:hidden"})]}):o.jsx("p",{className:"text-sm text-destructive",children:"Failed to parse request context schema"})}function frs({datasetId:e,version:t,requestContextSchema:n,open:r,onOpenChange:s,onSuccess:a}){const i=g.useRef(null),[l,c]=g.useState(""),[u,d]=g.useState(""),[f,p]=g.useState([]),[h,m]=g.useState({}),[v,y]=g.useState(""),{triggerExperiment:b}=Ei(),S=!!(n&&Object.keys(n).length>0),w=l&&u,k=b.isPending,_=()=>{c(""),d(""),p([]),m({}),y("")},C=()=>{if(S){const T=Object.entries(h).filter(([,I])=>I!==void 0&&I!=="");return T.length>0?Object.fromEntries(T):void 0}if(v.trim()){let T;try{T=JSON.parse(v)}catch{throw new Error("Request Context must be valid JSON")}if(!T||typeof T!="object"||Array.isArray(T))throw new Error("Request Context must be a JSON object");return T}},E=async()=>{if(!w)return;let T;try{T=C()}catch(I){const A=I instanceof Error?I.message:"Request Context must be valid JSON";su.error(A);return}try{const I=await b.mutateAsync({datasetId:e,targetType:l,targetId:u,scorerIds:f.length>0?f:void 0,version:t,requestContext:T});su.success("Experiment triggered successfully"),s(!1),a?.(I.experimentId),_()}catch(I){const A=I instanceof Error?I.message:"Failed to trigger experiment";su.error(A)}},j=()=>{k||(s(!1),_())};return o.jsx(br,{open:r,onOpenChange:j,children:o.jsxs(xr,{ref:i,children:[o.jsxs(wr,{children:[o.jsx(gr,{children:"Run Experiment"}),o.jsx(Xs,{children:t?`Execute items from ${tr(new Date(t),"MMM d, yyyy")} version against a target.`:"Execute all items in this dataset against a target."})]}),o.jsxs($r,{className:"grid gap-6",children:[o.jsx(urs,{targetType:l,setTargetType:c,targetId:u,setTargetId:d,container:i}),l&&l!=="scorer"&&o.jsx(lrs,{selectedScorers:f,setSelectedScorers:p,disabled:k,container:i}),S?o.jsx(drs,{requestContextSchema:n,onChange:m}):o.jsxs("div",{className:"space-y-2",children:[o.jsx($t,{children:"Request Context (JSON, optional)"}),o.jsx(Yr,{value:v,onChange:y,showCopyButton:!1,className:"min-h-[80px]"})]})]}),o.jsxs(Cc,{className:"px-6 pt-4",children:[o.jsx(ce,{onClick:j,disabled:k,children:"Cancel"}),o.jsx(ce,{variant:"primary",onClick:E,disabled:!w||k,children:k?o.jsxs(o.Fragment,{children:[o.jsx(Qt,{className:"w-4 h-4"}),"Running..."]}):"Run"})]})]})})}const prs=e=>{const t=We();return St({queryKey:["experiment-trace-light",e],queryFn:async()=>{if(!e)throw new Error("Trace ID is required");return t.getTraceLight(e)},enabled:!!e})},ZTe=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 xse(e){try{return JSON.stringify(e??{})}catch{return String(e)}}function hrs({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(bn.SectionHeading,{icon:o.jsx(Fp,{}),className:"mb-2",children:"Tool Mocks"}),s&&o.jsx(In,{variant:"destructive",title:"Mock mismatch",children:o.jsxs(In.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: ",xse(s.args)]}),n.length>0&&o.jsxs("span",{className:"mt-1 block font-mono text-xs",children:["Unconsumed mocks: ",n.map(i=>xse(i.args)).join(", ")]})]})}),o.jsx("div",{className:"rounded border border-border1 divide-y divide-border1 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:"font-mono text-neutral4",children:i.toolName}),o.jsx("span",{className:"ml-2 font-mono text-xs text-neutral3",children:xse(i.args)})]}),o.jsx("span",{className:`shrink-0 text-xs px-2 py-0.5 rounded ${mrs(i.outcome)}`,children:i.outcome})]},`${i.outcome}-${i.toolName}-${l}`))})]})}function mrs(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 grs({result:e,scores:t,onPrevious:n,onNext:r,onClose:s,onShowTrace:a,onOpenInReview:i,onScoreClick:l,featuredScoreId:c,onFlagForReview:u,collapsed:d,onCollapsedChange:f}){const[p,h]=g.useState(!1),m=d??p,v=f??h,y=!!e?.error,b=az(e?.input),S=az(e?.output),w=az(e?.groundTruth),k=u&&e.status!=="needs-review"&&e.status!=="complete",_=Array.isArray(e.tags)?e.tags:[];return o.jsxs(bn,{collapsed:m,children:[o.jsxs(bn.Header,{children:[o.jsxs(bn.Heading,{children:["Result ",o.jsxs("b",{children:["# ",e.id.length>12?`${e.id.slice(0,12)}…`:e.id]})]}),o.jsxs(Dr,{className:"ml-auto shrink-0",children:[f&&o.jsx(ce,{size:"md",tooltip:m?"Expand panel":"Collapse panel",onClick:()=>v(!m),children:m?o.jsx(Dct,{}):o.jsx(Mct,{})}),o.jsx(bn.NextPrevNav,{onPrevious:n,onNext:r,previousLabel:"Previous result",nextLabel:"Next result"}),o.jsxs(ce,{size:"md",onClick:a,disabled:!e.traceId,children:[o.jsx(ZTe,{}),"Trace"]}),o.jsx(bn.CloseButton,{onClick:s,tooltip:"Close result panel"})]})]}),!m&&o.jsxs(bn.Content,{children:[o.jsxs("div",{className:"grid gap-4 mb-6",children:[o.jsxs(qt,{children:[o.jsx(qt.Key,{children:"Item Id"}),o.jsx(qt.ValueWithCopyBtn,{copyTooltip:"Copy Item Id to clipboard",copyValue:e.itemId,children:e.itemId}),o.jsx(qt.Key,{children:"Created"}),o.jsx(qt.Value,{children:tr(new Date(e.createdAt),"MMM d, yyyy 'at' h:mm a")})]}),y&&o.jsx(In,{variant:"destructive",title:"Error",children:o.jsx(In.Message,{children:az(e?.error&&typeof e.error=="object"?e.error.message:e?.error)})}),t&&t.length>0&&o.jsxs(ve,{columns:"1fr 1fr",children:[o.jsxs(ve.Top,{children:[o.jsx(ve.TopCell,{children:"Scorer"}),o.jsx(ve.TopCell,{children:"Score"})]}),t.map(C=>o.jsxs(ve.RowButton,{featured:c===C.id,onClick:()=>l?.(C.id),children:[o.jsx(ve.Cell,{height:"compact",children:C.scorerId}),o.jsx(ve.MonoCell,{children:C.score.toFixed(3)})]},C.id))]}),e.toolMockReport&&o.jsx(hrs,{report:e.toolMockReport}),(e.status||_.length>0||k)&&o.jsxs("div",{className:"grid gap-2",children:[o.jsx(bn.SectionHeading,{icon:o.jsx(kN,{}),className:"mb-2",children:"Review"}),(e.status||_.length>0)&&o.jsxs("div",{className:"flex flex-wrap gap-2 items-center",children:[e.status&&o.jsx("span",{className:`text-xs px-2 py-0.5 rounded-full 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}),_.map(C=>o.jsx("span",{className:"text-xs px-2 py-0.5 rounded bg-surface4 text-neutral4",children:C},C))]}),k&&o.jsx("div",{children:o.jsxs(ce,{size:"sm",onClick:()=>u(e.id),children:[o.jsx(bq,{}),"Flag for Review"]})}),e.status==="needs-review"&&i&&o.jsx("div",{children:o.jsxs(ce,{size:"sm",onClick:i,children:[o.jsx(_a,{}),"Review"]})})]})]}),o.jsxs("div",{className:"grid gap-3",children:[o.jsx(bn.CodeSection,{title:"Input",icon:o.jsx(xN,{}),codeStr:b}),o.jsx(bn.CodeSection,{title:"Output",icon:o.jsx(bg,{}),codeStr:S}),o.jsx(bn.CodeSection,{title:"Ground Truth",icon:o.jsx(Mbe,{}),codeStr:w})]})]})]})}function az(e){return e==null?"-":typeof e=="string"?e:JSON.stringify(e,null,2)}function vrs({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 p=!!(d&&f),h=[p?"auto":"",...s.map(v=>v.size)].filter(Boolean).join(" "),m=s.some(v=>v.name==="input");return t?o.jsx(rl,{columns:h}):o.jsxs(ve,{columns:h,className:"min-w-0",children:[o.jsxs(ve.Top,{hasLeadingCell:p,children:[p&&o.jsx(ve.TopCell,{children:" "}),p?o.jsx(ve.TopCells,{colStart:2,children:s.map(v=>o.jsx(ve.TopCell,{children:v.label},v.name))}):s.map(v=>o.jsx(ve.TopCell,{children:v.label},v.name))]}),e.length===0?o.jsx(ve.NoMatch,{message:"No results yet"}):o.jsxs(o.Fragment,{children:[e.map(v=>{const y=!!v.error,b=v.id===n,S=o.jsxs(o.Fragment,{children:[o.jsx(ve.IdCell,{id:v.itemId}),o.jsx(ve.Cell,{height:"compact",children:o.jsxs(Un,{children:[o.jsx(Dn,{asChild:!0,children:o.jsx("div",{className:"flex items-center justify-center w-10 relative bg-transparent h-full",children:o.jsx("div",{role:"img","aria-label":y?"Error":"Success",className:K("w-2 h-2 rounded-full",y?"bg-red-700":"bg-green-600")})})}),o.jsx(Ln,{children:y?"Error":"Success"})]})}),m&&o.jsx(ve.MonoCell,{children:brs(yrs(v.input),200)}),i?.map(w=>{const _=a?.[v.itemId]?.find(C=>C.scorerId===w);return o.jsx(ve.Cell,{height:"compact",className:"font-mono text-neutral3 text-ui-smd",children:_!=null?_.score.toFixed(3):"-"},w)})]});return p?o.jsxs(ve.RowWrapper,{children:[o.jsx(ve.SelectCell,{checked:d.has(v.id),onToggle:()=>f(v.id),"aria-label":`Select result ${v.itemId}`}),o.jsx(ve.RowButton,{flushLeft:!0,colStart:2,featured:b,onClick:()=>r(v.id),children:S})]},v.id):o.jsx(ve.RowButton,{featured:b,onClick:()=>r(v.id),children:S},v.id)}),o.jsx(ve.NextPageLoading,{isLoading:c,hasMore:u,setEndOfListElement:l})]})]})}function yrs(e){return e==null?"-":typeof e=="string"?e:JSON.stringify(e,null,2)}function brs(e,t){return e.length<=t?e:e.slice(0,t-1)+"..."}function xrs(e){const t=e.scorer;return t?.hasJudge===!1?!0:t?.hasJudge===!0?!1:!e.preprocessPrompt&&!e.analyzePrompt&&!e.generateScorePrompt&&!e.generateReasonPrompt}function wrs({score:e,onNext:t,onPrevious:n,onClose:r,onShowTrace:s,collapsed:a,onCollapsedChange:i}){const[l,c]=g.useState(!1),u=a??l,d=i??c,f=xrs(e),p=f?"N/A — code-based scorer":"N/A — step not configured";return o.jsxs(bn,{collapsed:u,children:[o.jsxs(bn.Header,{children:[o.jsxs(bn.Heading,{children:["Score ",o.jsx("b",{children:e.scorerId})]}),o.jsxs(Dr,{className:"ml-auto shrink-0",children:[i&&o.jsx(ce,{size:"md",tooltip:u?"Expand panel":"Collapse panel",onClick:()=>d(!u),children:u?o.jsx(Dct,{}):o.jsx(Mct,{})}),(n||t)&&o.jsx(bn.NextPrevNav,{onPrevious:n,onNext:t,previousLabel:"Previous score",nextLabel:"Next score"}),s&&o.jsxs(ce,{size:"md",onClick:s,disabled:!e.traceId,children:[o.jsx(ZTe,{}),"Trace"]}),o.jsx(bn.CloseButton,{onClick:r,tooltip:"Close score panel"})]})]}),!u&&o.jsx(bn.Content,{children:o.jsxs("div",{className:"grid gap-3",children:[o.jsx(bn.CodeSection,{title:`Score: ${e.score}`,icon:o.jsx(sm,{}),codeStr:e.reason||p,simplified:!0}),!f&&o.jsxs(o.Fragment,{children:[o.jsx(bn.CodeSection,{title:"Preprocess Prompt",icon:o.jsx(kh,{}),codeStr:e.preprocessPrompt||p,simplified:!0}),o.jsx(bn.CodeSection,{title:"Analyze Prompt",icon:o.jsx(kh,{}),codeStr:e.analyzePrompt||p,simplified:!0}),o.jsx(bn.CodeSection,{title:"Generate Score Prompt",icon:o.jsx(kh,{}),codeStr:e.generateScorePrompt||p,simplified:!0}),o.jsx(bn.CodeSection,{title:"Generate Reason Prompt",icon:o.jsx(kh,{}),codeStr:e.generateReasonPrompt||p,simplified:!0})]})]})})]})}const wYe=[{name:"scorer",label:"Scorer",size:"1fr"},{name:"avg",label:"Avg Score",size:"1fr"},{name:"count",label:"Items Scored",size:"1fr"}];function Srs({scoresByItemId:e,experimentStatus:t}){const n=g.useMemo(()=>{if(!e)return[];const r={};for(const s of Object.values(e))for(const a of s)r[a.scorerId]||(r[a.scorerId]={sum:0,count:0}),r[a.scorerId].sum+=a.score,r[a.scorerId].count++;return Object.entries(r).map(([s,{sum:a,count:i}])=>({scorerId:s,avg:a/i,count:i})).sort((s,a)=>s.scorerId.localeCompare(a.scorerId))},[e]);if(n.length===0){const r=t==="running"||t==="pending",s=e!==void 0;let a,i;return r?(a="Experiment in progress",i="Summary metrics will appear here once the experiment completes."):s?(a="No scorers configured",i="Add scorers when triggering an experiment to evaluate results and see summary metrics here."):(a="Loading scores",i="Fetching scorer results…"),o.jsx("div",{className:"flex h-full items-center justify-center py-12",children:o.jsx(Cr,{iconSlot:o.jsx(sm,{className:"w-8 h-8 text-neutral3"}),titleSlot:a,descriptionSlot:i})})}return o.jsxs(gn,{children:[o.jsxs(gn.Header,{columns:wYe,children:[o.jsx(gn.HeaderCol,{children:"Scorer"}),o.jsx(gn.HeaderCol,{children:"Avg Score"}),o.jsx(gn.HeaderCol,{children:"Items Scored"})]}),o.jsx(gn.Scroller,{children:o.jsx(gn.Items,{children:n.map(({scorerId:r,avg:s,count:a})=>o.jsxs(gn.Row,{columns:wYe,children:[o.jsx(gn.TextCell,{children:r}),o.jsx(gn.TextCell,{className:"font-mono",children:s.toFixed(3)}),o.jsx(gn.TextCell,{className:"font-mono",children:a})]},r))})})]})}function nFt({experimentId:e,datasetId:t,experimentStatus:n,results:r,isLoading:s,setEndOfListElement:a,isFetchingNextPage:i,hasNextPage:l}){const[c,u]=g.useState(null),[d,f]=g.useState(null),[p,h]=g.useState(void 0),[m,v]=g.useState(null),[y,b]=g.useState(new Set),[S,w]=g.useState(!1),[k,_]=g.useState(!1),[C,E]=g.useState(!1),[j,T]=g.useState(!1),{updateExperimentResult:I}=Ei(),A=g.useCallback(re=>{b(se=>{const he=new Set(se);return he.has(re)?he.delete(re):he.add(re),he})},[]),P=g.useCallback(()=>b(new Set),[]),L=g.useCallback(()=>{const re=r.filter(se=>!!se.error).map(se=>se.id);b(new Set(re))},[r]),D=g.useCallback(async re=>{if(S||re.length===0)return;w(!0);let se=0;const he=new Set;try{for(const xe of re)try{await I.mutateAsync({datasetId:t,experimentId:e,resultId:xe,status:"needs-review"}),se++,he.add(xe)}catch{}}finally{w(!1)}he.size>0&&b(xe=>{const Ne=new Set(xe);for(const Pe of he)Ne.delete(Pe);return Ne}),se>0&&De(`${se} result${se>1?"s":""} flagged for review`)},[t,e,S,I]),q=r.find(re=>re.id===c)??null,[H,z]=g.useState("summary"),[B,V]=g.useState(null),M=re=>{z(re),re!=="reviews"&&V(null)},{data:Q}=HTe(t),U=(Q??[]).filter(re=>re.experimentId===e).length,{data:$}=Czt(e,n),F=g.useMemo(()=>{if(!$)return[];const re=new Set;for(const se of Object.values($))for(const he of se)re.add(he.scorerId);return[...re].sort()},[$]),Z=re=>{u(re),f(null),h(void 0),v(null)},X=re=>{Z(re===c?null:re)},te=()=>{Z(null)},ee=()=>{if(!q)return;const re=r.findIndex(se=>se.id===q.id);if(re>=0&&re<r.length-1)return()=>Z(r[re+1].id)},J=()=>{if(!q)return;const re=r.findIndex(se=>se.id===q.id);if(re>0)return()=>Z(r[re-1].id)},ae=q?$?.[q.itemId]:void 0,pe=ae?.find(re=>re.id===m)??null,Y=re=>{v(re===m?null:re),f(null),h(void 0)},ne=()=>{if(!m||!ae)return;const re=ae.findIndex(se=>se.id===m);if(re>=0&&re<ae.length-1)return()=>v(ae[re+1].id)},ue=()=>{if(!m||!ae)return;const re=ae.findIndex(se=>se.id===m);if(re>0)return()=>v(ae[re-1].id)},{data:fe,isLoading:oe}=prs(d),me=fe?.spans,{data:be,isLoading:we}=ZN(d,p),je=be?.span,{handlePreviousSpan:ke,handleNextSpan:Ae}=gH(me,p??null,h),Fe=(()=>{const re=[],se=!!pe,he=!!d;return re.push(k?"auto":se||he?"2fr":"1fr"),se&&re.push(j?"auto":"3fr"),he&&re.push(C?"auto":"3fr"),he&&p&&re.push("3fr"),re.join(" ")})(),le=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(re=>({name:re,label:re,size:"12rem"}))],[F]);return o.jsxs(Ac,{defaultTab:"summary",value:H,onValueChange:M,className:"grid grid-rows-[auto_1fr] h-full overflow-hidden",children:[o.jsxs(Ic,{children:[o.jsx(Ar,{value:"summary",children:"Summary"}),o.jsx(Ar,{value:"results",children:"Results"}),o.jsxs(Ar,{value:"reviews",children:["Reviews",U>0&&o.jsx(ea,{color:"orange",children:U})]})]}),o.jsx(Xr,{value:"summary",className:"overflow-y-auto mt-5",children:o.jsx(Srs,{scoresByItemId:$,experimentStatus:n})}),o.jsx(Xr,{value:"reviews",className:"overflow-auto mt-2 pb-0",children:o.jsx(tFt,{datasetId:t,experimentId:e,featuredItemId:B})}),o.jsxs(Xr,{value:"results",className:"grid grid-rows-[auto_1fr] overflow-hidden mt-2",children:[o.jsxs("div",{className:"mb-4",children:[y.size>0&&o.jsxs("div",{className:"flex items-center gap-2 px-4 py-2 bg-surface3",children:[o.jsxs(ye,{variant:"ui-xs",className:"text-neutral5 font-medium",children:[y.size," selected"]}),o.jsx("div",{className:"flex-1"}),o.jsxs(ce,{variant:"outline",size:"sm",disabled:S,onClick:()=>D([...y]),children:[o.jsx(Ue,{size:"sm",children:o.jsx(bq,{})}),"Flag for Review"]}),o.jsx(ce,{variant:"ghost",size:"sm",onClick:P,children:"Clear"})]}),r.length>0&&y.size===0&&!s&&o.jsx("div",{className:"flex items-center gap-2 px-4 py-2",children:o.jsx(ce,{variant:"ghost",size:"sm",onClick:L,children:"Select loaded failures"})})]}),o.jsxs("div",{className:K("grid w-full h-full grid-cols-1 gap-4 overflow-y-auto",q&&"grid-cols-[1fr_1fr]"),children:[o.jsx("div",{className:"flex overflow-y-auto w-full",children:o.jsx("div",{className:"grid gap-8 content-start w-full overflow-y-auto",children:o.jsx(vrs,{results:r,isLoading:s,featuredResultId:c,onResultClick:X,columns:le,scoresByItemId:$,scorerIds:F,setEndOfListElement:a,isFetchingNextPage:i,hasNextPage:l,selectedIds:y,onToggleSelect:A})})}),q&&o.jsxs("div",{className:"grid gap-4 max-h-full min-h-0 overflow-auto content-start",style:{gridTemplateRows:Fe},children:[o.jsx(grs,{result:q,scores:ae,onPrevious:J(),onNext:ee(),onClose:te,onScoreClick:Y,featuredScoreId:m,onShowTrace:()=>{q.traceId&&(f(q.traceId),h(void 0),v(null),_(!0),E(!1))},onOpenInReview:()=>{V(q.id),z("reviews")},onFlagForReview:re=>D([re]),collapsed:k,onCollapsedChange:_}),pe&&o.jsx(wrs,{score:pe,onNext:ne(),onPrevious:ue(),onClose:()=>v(null),onShowTrace:()=>{pe.traceId&&(f(pe.traceId),h(void 0),_(!0),T(!0),E(!1))},collapsed:j,onCollapsedChange:T}),d&&o.jsxs(o.Fragment,{children:[o.jsx($Te,{traceId:d,spans:me,isLoading:oe,onClose:()=>{f(null),h(void 0),_(!1),T(!1)},onSpanSelect:h,initialSpanId:p??null,placement:"traces-list",showUnavailableFeaturesMsg:!1,collapsed:C,onCollapsedChange:E,LinkComponent:qD,traceHref:`/traces/${d}`}),p&&o.jsx(hH,{traceId:d,spanId:p,span:je,isLoading:we,onPrevious:ke,onNext:Ae,onClose:()=>h(void 0)})]})]})]})]})]})}const krs={pending:o.jsx(Xj,{}),running:o.jsx(wfe,{}),completed:o.jsx(ra,{}),failed:o.jsx(vs,{})};function Ors({experiment:e,className:t}){const n=e.status,r=e.totalItems-e.succeededCount-e.failedCount;return o.jsxs("div",{className:K("grid justify-items-end gap-3",t),children:[o.jsxs("div",{className:"flex p-1 px-3 text-ui-lg capitalize text-neutral4 gap-2 items-center bg-surface5 rounded-lg ",children:[o.jsx("span",{className:K("w-5 h-5 flex items-center justify-center rounded-full text-black","[&>svg]:w-4 [&>svg]:h-4",{"bg-green-700":n==="completed","bg-red-700":n==="failed","bg-cyan-600":n==="running","bg-yellow-600":n==="pending"}),children:krs[n]}),e.status]}),o.jsxs("div",{className:K("flex items-center gap-3 text-neutral3 text-ui-md ","[&>span]:flex [&>span]:gap-1 [&>span]:items-center ","[&_b]:text-neutral4 [&_b]:font-semibold"),children:[o.jsxs("span",{children:["Total: ",o.jsx("b",{children:e.totalItems})]}),o.jsxs("span",{children:["Succeeded: ",o.jsx("b",{children:e.succeededCount})]}),o.jsxs("span",{children:["Failed: ",o.jsx("b",{children:e.failedCount})]}),(n==="pending"||n==="running")&&o.jsxs("span",{children:["Pending: ",o.jsx("b",{children:r})]})]})]})}function _rs({onPrevious:e,onNext:t,previousAriaLabel:n="Previous",nextAriaLabel:r="Next"}){return o.jsxs(Dr,{spacing:"close",children:[o.jsxs(ce,{onClick:e,disabled:!e,"aria-label":n,children:[o.jsx(sV,{})," Prev"]}),o.jsxs(ce,{onClick:t,disabled:!t,"aria-label":r,children:["Next",o.jsx(VD,{})]})]})}function GTe({delta:e}){const t=e>0?o.jsx(ea,{size:"small",color:"green",intensity:"muted",children:o.jsx(gD,{})}):e<0?o.jsx(ea,{size:"small",color:"red",intensity:"muted",children:o.jsx(gun,{})}):null;return o.jsxs("span",{className:K("font-mono text-sm text-neutral4 min-w-20"),children:[o.jsx("span",{className:"w-3 inline-block",children:e>0?"+ ":e<0?"- ":""}),Math.abs(e).toFixed(2)," ",t]})}function iz(e){return e==null?"-":typeof e=="string"?e:JSON.stringify(e,null,2)}function Crs({item:e,baselineId:t,contenderId:n,baselineVersion:r,contenderVersion:s,onPrevious:a,onNext:i,onClose:l}){const c=e.results[t],u=e.results[n],d=!!(c&&u),f=new Set;if(c)for(const h of Object.keys(c.scores))f.add(h);if(u)for(const h of Object.keys(u.scores))f.add(h);const p=[...f].sort();return o.jsxs(Qr,{withLeftSeparator:!0,children:[o.jsxs(Qr.Toolbar,{children:[o.jsx(_rs,{onPrevious:a,onNext:i,previousAriaLabel:"Previous comparison item",nextAriaLabel:"Next comparison item"}),o.jsx(Dr,{children:o.jsx(ce,{onClick:l,"aria-label":"Close comparison detail panel",children:o.jsx(vs,{})})})]}),o.jsxs(Qr.Content,{className:"pb-6",children:[o.jsx(fa,{withMargins:!1,children:o.jsx(fa.Column,{children:o.jsxs(fa.Title,{size:"smaller",children:[o.jsx(xN,{})," ",e.itemId]})})}),d?o.jsx(o.Fragment,{children:o.jsxs(pTe,{children:[p.length>0&&o.jsxs("div",{className:"grid gap-3",children:[o.jsx("h4",{className:"text-sm font-medium text-neutral5",children:"Scores"}),o.jsx("div",{className:"grid gap-2",children:p.map(h=>{const m=c?.scores[h]??null,v=u?.scores[h]??null,y=m!=null&&v!=null?v-m:null;return o.jsxs("div",{className:"flex items-center justify-between gap-4 px-3 py-2 rounded-lg bg-surface2",children:[o.jsx("span",{className:"text-sm text-neutral5 font-medium",children:h}),o.jsxs("div",{className:"flex items-center gap-4",children:[o.jsxs("span",{className:"text-sm text-neutral3",children:[m!=null?m.toFixed(3):"-"," →"," ",v!=null?v.toFixed(3):"-"]}),y!=null&&o.jsx(GTe,{delta:y})]})]},h)})})]}),o.jsx(Ps.CodeSection,{title:o.jsxs(o.Fragment,{children:[o.jsx(ea,{color:"purple",children:"Baseline "})," Experiment Output"]}),icon:o.jsx(bg,{}),codeStr:iz(c?.output)}),o.jsx(Ps.CodeSection,{title:o.jsxs(o.Fragment,{children:[o.jsx(ea,{color:"cyan",children:"Contender "})," Experiment Output"]}),icon:o.jsx(bg,{}),codeStr:iz(u?.output)}),o.jsx(Ps.CodeSection,{title:"Item Input",icon:o.jsx(uO,{}),codeStr:iz(e.input)}),o.jsx(Ps.CodeSection,{title:"Item Ground Truth",icon:o.jsx(Mbe,{}),codeStr:iz(e.groundTruth)})]})}):o.jsx(In,{variant:"warning",title:"Comparison not available",children:o.jsx(In.Message,{children:(()=>{const h=c?"Contender":"Baseline",m=c?s:r;return o.jsxs(o.Fragment,{children:["The ",h," experiment was run against dataset",m!=null?` v. ${m}`:"",", which does not contain this item."]})})()})})]})]})}function Ers({items:e,baselineId:t,contenderId:n,scorerIds:r,featuredItemId:s,columns:a,onItemClick:i}){return o.jsx(Qr,{children:o.jsxs(gn,{children:[o.jsxs(gn.Header,{columns:a,children:[o.jsx(gn.HeaderCol,{children:"Item ID"}),!s&&r.map(l=>o.jsx(gn.HeaderCol,{className:"flex justify-center",children:l},l))]}),o.jsx(gn.Scroller,{children:o.jsx(gn.Items,{children:e.map(l=>{const c=l.results[t],u=l.results[n],d=!!(c&&u);return o.jsx(gn.Row,{children:o.jsxs(gn.RowButton,{item:{id:l.itemId},columns:a,isFeatured:s===l.itemId,onClick:i,children:[o.jsx(gn.IdCell,{id:l.itemId,className:d?"":"text-neutral1"}),!s&&o.jsx(o.Fragment,{children:r.map(f=>{const p=c?.scores[f]??null,h=u?.scores[f]??null,m=p!=null&&h!=null?h-p:null;return o.jsx(gn.Cell,{className:"flex items-center gap-5 justify-center font-mono",children:m!=null?o.jsxs(o.Fragment,{children:[o.jsxs("span",{className:"flex items-center text-neutral2 min-w-24",children:[p?.toFixed(2)," → ",h?.toFixed(2)]}),o.jsx(GTe,{delta:m})]}):o.jsx("span",{className:"text-neutral1",children:"-"})},f)})})]})},l.itemId)})})})]})})}const jrs={baseline:{label:"Baseline",color:"purple",customStyle:"items-end justify-items-end [&>div]:justify-end border-r-0 rounded-r-none"},contender:{label:"Contender",color:"cyan",customStyle:"items-start justify-items-start [&>div]:justify-start border-l-0 rounded-l-none"}};function SYe({datasetId:e,experiment:t,type:n}){const{Link:r}=yn(),{label:s,color:a,customStyle:i}=jrs[n];if(!t)return null;const l=t.createdAt?new Date(t.createdAt):null;return o.jsxs("div",{className:`grid border-2 border-border1 rounded-lg p-5 gap-3 ${i}`,children:[o.jsxs("div",{className:"flex items-center gap-3 w-full overflow-clip",children:[n==="contender"&&o.jsxs(ea,{size:"small",color:a,children:[s,o.jsx(vm,{})]}),o.jsx(ce,{as:r,href:`/datasets/${e}/experiments/${t.id}`,children:o.jsx("span",{className:"truncate min-w-0",children:t.id})}),n==="baseline"&&o.jsxs(ea,{size:"small",color:a,children:[o.jsx(Nc,{})," ",s]})]}),o.jsxs("div",{className:"flex flex-wrap gap-x-4 gap-y-1 text-ui-sm text-neutral3",children:[o.jsxs(Al,{children:[o.jsx(Mbe,{})," ",t.targetType," / ",t.targetId]}),o.jsxs(Al,{children:[o.jsx(Sq,{})," v",t.datasetVersion??"—"]}),l&&o.jsxs(Al,{children:[o.jsx(Pct,{})," ",tr(l,"MMM d, yyyy HH:mm")]})]})]})}function Trs({datasetId:e,experimentIdA:t,experimentIdB:n,onSwap:r}){const[s,a]=g.useState(null),{data:i,isLoading:l,error:c}=vts(e,t,n),{data:u}=GU(e,t),{data:d}=GU(e,n),f=u&&d&&u.datasetVersion!==d.datasetVersion,p=g.useMemo(()=>{if(!i)return[];const E=new Set;for(const j of i.items)for(const T of Object.values(j.results))if(T)for(const I of Object.keys(T.scores))E.add(I);return[...E].sort()},[i]),h=g.useMemo(()=>{if(!i||p.length===0)return[];const E=i.baselineId,j=t===E?n:t;return p.map(T=>{let I=0,A=0,P=0,L=0;for(const z of i.items){const B=z.results[E]?.scores[T],V=z.results[j]?.scores[T];B!=null&&(I+=B,P++),V!=null&&(A+=V,L++)}const D=P>0?I/P:null,q=L>0?A/L:null,H=D!=null&&q!=null?q-D:null;return{scorerId:T,avgA:D,avgB:q,delta:H}})},[i,p,t,n]),m=[{name:"scorer",label:"Scorer",size:"1fr"},{name:"baselineAvg",label:"Baseline Avg",size:"1fr"},{name:"comparisonAvg",label:"Comparison Avg",size:"1fr"},{name:"delta",label:"Delta",size:"1fr"}],v=g.useMemo(()=>[{name:"itemId",label:"Item ID",size:"8rem"},...s?[]:p.map(E=>({name:E,label:E,size:"1fr"}))],[p,s]),y=i?.items.find(E=>E.itemId===s)??null,b=E=>{a(E===s?null:E)},S=()=>{a(null)},w=()=>{if(!i||!s)return;const E=i.items.findIndex(j=>j.itemId===s);if(E>=0&&E<i.items.length-1)return()=>a(i.items[E+1].itemId)},k=()=>{if(!i||!s)return;const E=i.items.findIndex(j=>j.itemId===s);if(E>0)return()=>a(i.items[E-1].itemId)};if(l)return o.jsx("div",{className:"flex items-center justify-center h-64",children:o.jsx(Qt,{})});if(c)return o.jsx(In,{variant:"warning",title:"Error loading comparison",children:o.jsx(In.Message,{children:c instanceof Error?c.message:"Unknown error"})});if(!i||i.items.length===0)return o.jsx("div",{className:"text-neutral4 text-sm text-center py-8",children:"No comparison data"});const _=i.baselineId,C=t===_?n:t;return o.jsxs("div",{className:"grid gap-10",children:[u&&d&&o.jsxs("div",{className:K("relative grid xl:grid-cols-[1fr_auto_1fr] gap-4 xl:gap-0"),children:[o.jsx(SYe,{datasetId:e,experiment:u,type:"baseline"}),o.jsx("div",{className:"relative flex items-center justify-center px-[2vw] before:absolute before:inset-y-0 before:left-1/2 before:-translate-x-1/2 before:w-[2px] before:bg-border1",children:o.jsx("div",{className:"relative z-1 bg-surface2 rounded-lg p-2",children:o.jsxs(Un,{children:[o.jsx(Dn,{asChild:!0,children:o.jsx(ce,{onClick:r,children:"VS"})}),o.jsx(Ln,{children:"Switch the order"})]})})}),o.jsx(SYe,{datasetId:e,experiment:d,type:"contender"})]}),f&&o.jsx(In,{variant:"warning",title:"Version mismatch",children:o.jsxs(In.Message,{children:["These experiments used different dataset versions (v",u.datasetVersion," vs v",d.datasetVersion,"). Results may not be directly comparable."]})}),h.length>0&&o.jsxs(gn,{children:[o.jsxs(gn.Header,{columns:m,children:[o.jsx(gn.HeaderCol,{children:"Scorer"}),o.jsx(gn.HeaderCol,{className:"flex justify-center",children:o.jsxs(_Qe,{children:[o.jsx(ea,{color:"purple",size:"small",intensity:"muted",children:"Baseline"}),o.jsx(ea,{color:"purple",size:"small",children:"Avg"})]})}),o.jsx(gn.HeaderCol,{className:"flex justify-center",children:o.jsxs(_Qe,{children:[o.jsx(ea,{color:"cyan",size:"small",intensity:"muted",children:"Contender"}),o.jsx(ea,{color:"cyan",size:"small",children:"Avg"})]})}),o.jsx(gn.HeaderCol,{className:"flex justify-center",children:"Delta"})]}),o.jsx(gn.Scroller,{children:o.jsx(gn.Items,{children:h.map(({scorerId:E,avgA:j,avgB:T,delta:I})=>o.jsxs(gn.Row,{columns:m,children:[o.jsx(gn.TextCell,{children:E}),o.jsx(gn.TextCell,{className:"text-center font-mono",children:j!=null?j.toFixed(3):"-"}),o.jsx(gn.TextCell,{className:"text-center font-mono",children:T!=null?T.toFixed(3):"-"}),o.jsx(gn.TextCell,{className:"flex justify-center",children:I!=null?o.jsx(GTe,{delta:I}):"-"})]},E))})})]}),o.jsxs(ay,{className:K({"grid-cols-[1fr_2fr]":!!y}),children:[o.jsx(Ers,{items:i.items,baselineId:_,contenderId:C,scorerIds:p,featuredItemId:s,columns:v,onItemClick:b}),!!y&&o.jsx(Crs,{item:y,baselineId:_,contenderId:C,baselineVersion:u?.datasetVersion,contenderVersion:d?.datasetVersion,onPrevious:k(),onNext:w(),onClose:S})]})]})}function Nrs({datasetId:e,itemId:t,onVersionSelect:n,onCompareVersionsClick:r,activeVersion:s}){const{data:a,isLoading:i}=UTe(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(S=>{const w=new Set(S);if(w.has(b))w.delete(b);else if(w.size>=2){const[k]=Array.from(w);return new Set([k,b])}else w.add(b);return w})},m=()=>{c(!1),d(new Set)},v=()=>{c(!0)},y=()=>{u.size===2&&r?.([...u])};return o.jsxs(Qr,{className:"min-w-56",children:[l?o.jsx(Qr.Toolbar,{className:"grid justify-stretch gap-3 w-full",children:o.jsxs(Dr,{children:[o.jsx(ce,{onClick:m,children:"Cancel"}),o.jsx(ce,{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(Qr.Toolbar,{children:o.jsxs(ce,{onClick:v,className:"w-full",children:[o.jsx(Jw,{})," Compare Ver."]})})}),i?o.jsx(Irs,{}):o.jsxs(gn,{children:[o.jsx(gn.Header,{children:o.jsx(gn.HeaderCol,{children:"Item Version History"})}),o.jsx(gn.Scroller,{children:o.jsx(gn.Items,{children:a?.map(b=>{const S=String(b.datasetVersion),w=typeof b.updatedAt=="string"?new Date(b.updatedAt):b.updatedAt;return o.jsxs(gn.Row,{isSelected:l&&u.has(S),children:[l&&o.jsx(gn.LabelCell,{children:o.jsx(Do,{checked:u.has(S),disabled:b.isDeleted,onCheckedChange:()=>{},onClick:k=>{k.stopPropagation(),b.isDeleted||h(S)},"aria-label":`Select version ${b.datasetVersion}`})}),o.jsx(gn.RowButton,{item:b,columns:[{name:"version",label:"Item Version History",size:"1fr"}],isFeatured:p(b),onClick:()=>f(b),className:"py-2",children:o.jsx(gn.VersionCell,{version:b.datasetVersion,date:w,isLatest:b.isLatest,isDeleted:b.isDeleted})})]},String(b.datasetVersion))})})})]})]})}function Irs(){return o.jsxs(gn,{children:[o.jsx(gn.Header,{columns:[{name:"version",label:"Item Version History",size:"1fr"}],children:o.jsx(gn.HeaderCol,{children:"Item Version History"})}),o.jsx(gn.Items,{children:Array.from({length:3}).map((e,t)=>o.jsx(gn.Row,{children:o.jsx(gn.RowButton,{columns:[{name:"version",label:"Item Version History",size:"1fr"}],children:o.jsx(gn.TextCell,{isLoading:!0,children:"Loading..."})})},t))})]})}function Ars(e,t){if(t){const n=typeof t=="string"?new Date(t):t;return`v${e} ${tr(n,"MMM dd 'at' H:mm:ss a")}`}return`v${e}`}function Rrs({datasetId:e,versionA:t,versionB:n,onVersionChange:r}){const{data:s}=ETe(e),a=(s??[]).map(i=>({value:String(i.version),label:`${Ars(i.version,i.createdAt)}${i.isCurrent?" (current)":""}`}));return o.jsxs(Qr.Toolbar,{className:"grid grid-cols-[1fr_1fr_1fr_10rem] gap-4 w-full",children:[o.jsx("div",{}),o.jsx(Sc,{label:"Version A",labelIsHidden:!0,name:"version-a",placeholder:"Select version",options:a,value:t??"",onValueChange:i=>r?.(i,n??"")}),o.jsx(Sc,{label:"Version B",labelIsHidden:!0,name:"version-b",options:a,value:n??"",onValueChange:i=>r?.(t??"",i)}),o.jsx("div",{})]})}const Prs=[{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"}],$rs={added:{color:"blue",borderColor:"border-blue-900",icon:o.jsx(Hr,{}),tooltip:"Added in this version"},changed:{color:"orange",borderColor:"border-yellow-900",icon:o.jsx(Jct,{}),tooltip:"Changed in this version"},same:{color:"green",borderColor:"border-green-900",icon:o.jsx(Bdn,{}),tooltip:"Same in both versions"}};function wse({red:e=!1,tooltip:t}){return o.jsxs(Un,{children:[o.jsx(Dn,{asChild:!0,children:o.jsx(Cun,{className:K("text-neutral3/40 w-5 h-5 ",{"text-red-900":e})})}),t&&o.jsx(Ln,{children:t})]})}function QS({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}=$rs[e];return o.jsxs(Un,{children:[o.jsx(Dn,{asChild:!0,children:o.jsxs("div",{className:"grid grid-cols-[1fr_auto]",children:[t!==void 0&&o.jsxs("span",{className:"pr-3 text-ui-md text-neutral4 min-w-16 flex justify-end",children:["v. ",t]}),o.jsx(ea,{color:n,size:"small",children:r})]})}),o.jsx(Ln,{children:s})]})}function Mrs(e,t){return e&&t&&e.datasetVersion===t.datasetVersion?"same":e&&t&&e.datasetVersion!==t.datasetVersion?"changed":e?"added":"removed"}function Drs({datasetId:e,versionA:t,versionB:n,allItems:r,itemsAMap:s,itemsBMap:a}){const{Link:i}=yn(),l=t>n;return o.jsx(gn,{children:o.jsx(gn.Scroller,{children:o.jsx(gn.Items,{children:r.map(({id:c})=>{const u=s.get(c),d=a.get(c),f=Mrs(u,d);return o.jsxs(gn.Row,{columns:Prs,children:[o.jsx(gn.IdCell,{id:c,isShortened:!1}),f!=="same"?o.jsxs(o.Fragment,{children:[u?.datasetVersion?o.jsx(gn.LinkCell,{LinkComponent:i,href:`/datasets/${e}/items/${c}`,className:"gap-2",children:!d&&l?o.jsx(QS,{variant:"added",version:u.datasetVersion}):f==="changed"&&l?o.jsx(QS,{variant:"changed",version:u.datasetVersion}):o.jsx(QS,{version:u.datasetVersion})}):o.jsx(gn.Cell,{className:"justify-center flex items-center",children:o.jsx(wse,{red:l,tooltip:l?"Deleted in this version":"Not present in this version"})}),d?.datasetVersion?o.jsx(gn.LinkCell,{LinkComponent:i,href:`/datasets/${e}/items/${c}`,className:"gap-2",children:!u&&!l?o.jsx(QS,{variant:"added",version:d.datasetVersion}):f==="changed"&&!l?o.jsx(QS,{variant:"changed",version:d.datasetVersion}):o.jsx(QS,{version:d.datasetVersion})}):o.jsx(gn.Cell,{className:"justify-center flex items-center",children:o.jsx(wse,{red:!l,tooltip:l?"Not present in this version":"Deleted in this version"})})]}):o.jsx(gn.LinkCell,{LinkComponent:i,href:`/datasets/${e}/items/${c}`,className:"col-span-2 gap-2",children:o.jsx(QS,{variant:"same",version:d?.datasetVersion})}),f==="changed"?o.jsx(gn.LinkCell,{LinkComponent:i,href:`/datasets/${e}/items/${c}/versions?ids=${u?.datasetVersion},${d?.datasetVersion}`,children:"Compare"}):o.jsx(gn.Cell,{children:o.jsx(wse,{tooltip:o.jsxs(o.Fragment,{children:["Comparing is available",o.jsx("br",{})," only for changed items"]})})})]},c)})})})})}const kYe={needsReview:"#facc15",complete:"#22c55e"},Lrs=[{label:"Needs Review",color:kYe.needsReview},{label:"Reviewed",color:kYe.complete}];function zrs({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,S=b?`${b} · ${m.experimentId.slice(0,8)}`:m.experimentId.slice(0,8);h.push({name:S,values:[m.needsReview,m.complete]})}return{data:h,maxVal:f,totalInPipeline:p}},[e,t,n]),c=a.length>0;return o.jsxs(Vt,{children:[o.jsxs(Vt.TopBar,{children:[o.jsx(Vt.TitleAndDescription,{title:"Review Pipeline",description:"Items in review across experiments."}),c&&o.jsx(Vt.Summary,{value:String(l),label:"Items in pipeline"})]}),r?o.jsx(Vt.Loading,{}):s?o.jsx(Vt.Error,{message:"Failed to load review data"}):o.jsx(Vt.Content,{children:c?o.jsx(dN,{data:a,segments:Lrs,maxVal:i,fmt:u=>String(u)}):o.jsx(Vt.NoData,{message:"No items have been sent to review yet"})})]})}function QTe(){const e=We();return St({queryKey:["experiment-review-summary"],queryFn:()=>e.getExperimentReviewSummary()})}function rFt(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 Frs(e,t){const n=new Map,r=rFt(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 Brs(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 Urs=10;function qrs(){const[e,t]=g.useState(!1),[n,r]=g.useState(""),[s,a]=g.useState("all"),[i,l]=g.useState("all"),[c,u]=g.useState("all"),[d,f]=g.useState(0),{data:p,isLoading:h,error:m}=Dg({page:d,perPage:Urs}),{data:v,isLoading:y,error:b}=fG(),{data:S}=QTe(),w=g.useMemo(()=>p?.datasets??[],[p?.datasets]),k=p?.pagination?.hasMore??!1,_=g.useMemo(()=>v?.experiments??[],[v?.experiments]),C=g.useMemo(()=>$ts(w),[w]),E=g.useMemo(()=>Frs(S,_),[S,_]),j=h||y,T=m||b,I=()=>t(!0),A=g.useCallback(()=>f(V=>V+1),[]),P=g.useCallback(()=>f(V=>Math.max(0,V-1)),[]),L=g.useCallback(V=>{r(V),f(0)},[]),D=g.useCallback(V=>{a(V),f(0)},[]),q=g.useCallback(V=>{l(V),f(0)},[]),H=g.useCallback(V=>{u(V),f(0)},[]);if(T&&gs(T))return o.jsx(lr,{children:o.jsx(Ws,{})});if(T&&ys(T))return o.jsx(lr,{children:o.jsx(Ls,{resource:"datasets"})});if(T)return o.jsx(lr,{children:o.jsx(Bi,{title:"Failed to load datasets",message:T.message})});if(w.length===0&&!j&&d===0)return o.jsxs(o.Fragment,{children:[o.jsx(lr,{children:o.jsx(Fts,{onCreateClick:I})}),o.jsx(aye,{open:e,onOpenChange:t})]});const z=s!=="all"||i!=="all"||c!=="all"||n!=="",B=()=>{r(""),a("all"),l("all"),u("all"),f(0)};return o.jsxs(zt,{children:[o.jsx(zt.TopArea,{children:o.jsx(qts,{search:n,onSearchChange:L,targetFilter:s,onTargetFilterChange:D,experimentFilter:i,onExperimentFilterChange:q,tagFilter:c,onTagFilterChange:H,tagOptions:C,onReset:B,hasActiveFilters:z,onCreateClick:I})}),o.jsx(zts,{datasets:w,experiments:_,reviewByDataset:E,isLoading:j,search:n,targetFilter:s,experimentFilter:i,tagFilter:c,currentPage:d,hasMore:k,onNextPage:A,onPrevPage:P}),o.jsx(aye,{open:e,onOpenChange:t})]})}function oz({children:e}){return o.jsxs(zt,{height:"full",children:[o.jsx("div",{}),o.jsx(zt.MainArea,{isCentered:!0,children:e})]})}function Vrs(){const{datasetId:e}=ur(),t=bs(),[n,r]=va(),{activeVersion:s}=qTe(n,r),[a,i]=g.useState(!1),[l,c]=g.useState(!1),[u,d]=g.useState(!1),[f,p]=g.useState(!1),[h,m]=g.useState(!1),{data:v,error:y,isLoading:b}=Wx(e),{data:S=[],isLoading:w}=E1(e,void 0,s),k=!w&&S.length===0;if(b)return null;if(y&&gs(y))return o.jsx(oz,{children:o.jsx(Ws,{})});if(y&&ys(y))return o.jsx(oz,{children:o.jsx(Ls,{resource:"datasets"})});if(y&&JSe(y)||!b&&!y&&!v)return o.jsx(oz,{children:o.jsx(Cr,{iconSlot:o.jsx(oy,{}),titleSlot:"Dataset not found",descriptionSlot:`No dataset with id "${e}".`,actionSlot:o.jsxs(ce,{as:Da,to:"/datasets",children:[o.jsx(Nc,{}),"Back to Datasets"]})})});if(y)return o.jsx(oz,{children:o.jsx(Bi,{title:"Failed to load dataset",message:y instanceof Error?y.message:"An unexpected error occurred. Please try again."})});const _=E=>{t(`/datasets/${e}/experiments/${E}`)},C=()=>{t("/datasets")};return o.jsxs(o.Fragment,{children:[o.jsxs(zt,{height:"full",children:[o.jsx(zt.TopArea,{children:o.jsxs(zt.Row,{children:[o.jsxs(zt.Column,{children:[v?.description&&o.jsx("p",{className:"text-ui-smd text-neutral3 mb-1",children:v.description}),o.jsxs(qt,{numOfCol:2,children:[o.jsx(qt.Key,{children:"Created at"}),o.jsx(qt.Value,{children:v?.createdAt?tr(new Date(v.createdAt),"MMM d, yyyy"):""}),o.jsx(qt.Key,{children:"Latest version"}),o.jsxs(qt.Value,{children:["v",v?.version??""]})]})]}),o.jsx(zt.Column,{children:o.jsxs(Dr,{children:[k?o.jsxs(Un,{children:[o.jsx(Dn,{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(ce,{variant:"primary",children:[o.jsx(zp,{}),s!=null?`Run on v${s}`:"Run Experiment"]})})})}),o.jsx(Ln,{children:"Add items to the dataset before running an experiment"})]}):o.jsxs(ce,{variant:"primary",onClick:()=>i(!0),children:[o.jsx(zp,{}),s!=null?`Run on v${s}`:"Run Experiment"]}),o.jsxs(dt,{children:[o.jsx(dt.Trigger,{asChild:!0,children:o.jsx(ce,{size:"lg","aria-label":"Dataset actions menu",children:o.jsx(yD,{})})}),o.jsxs(dt.Content,{align:"end",className:"w-48",children:[o.jsxs(dt.Item,{onSelect:()=>d(!0),children:[o.jsx(am,{})," Edit Dataset"]}),o.jsxs(dt.Item,{onSelect:()=>m(!0),children:[o.jsx(rm,{})," Duplicate Dataset"]}),o.jsxs(dt.Item,{onSelect:()=>p(!0),className:"text-red-500 focus:text-red-400",children:[o.jsx(uu,{})," Delete Dataset"]})]})]})]})})]})}),o.jsx(zt.MainArea,{children:o.jsx(srs,{datasetId:e,onAddItemClick:()=>c(!0)})})]}),o.jsx(frs,{datasetId:e,version:s??void 0,requestContextSchema:v?.requestContextSchema,open:a,onOpenChange:i,onSuccess:_}),o.jsx(irs,{datasetId:e,open:l,onOpenChange:c}),v&&o.jsx(Qts,{open:u,onOpenChange:d,dataset:{id:v.id,name:v.name,description:v?.description||"",targetType:v.targetType,inputSchema:v.inputSchema,groundTruthSchema:v.groundTruthSchema,requestContextSchema:v.requestContextSchema}}),v&&o.jsx(Wts,{open:h,onOpenChange:m,sourceDatasetId:v.id,sourceDatasetName:v.name,sourceDatasetDescription:v.description,sourceDatasetTargetType:v.targetType}),v&&o.jsx(Xts,{open:f,onOpenChange:p,datasetId:v.id,datasetName:v.name,onSuccess:C})]})}function sFt({experiment:e}){const{Link:t,paths:n}=yn(),{data:r}=Om(),{data:s}=Fy(),{data:a}=ah(),i=()=>{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"#"}},l=()=>{const u=e.targetId;if(!u)return u;switch(e.targetType){case"agent":return r?.[u]?.name??u;case"workflow":return s?.[u]?.name??u;case"scorer":return a?.[u]?.scorer?.config?.name??u;default:return u}},c=e.agentVersion&&e.targetType==="agent"&&e.targetId?`${n.agentLink(e.targetId)}/editor?version=${encodeURIComponent(e.agentVersion)}`:null;return o.jsx(zt.TopArea,{children:o.jsxs(zt.Row,{children:[o.jsx(zt.Column,{children:o.jsxs(qt,{numOfCol:2,children:[o.jsx(qt.Key,{children:"Created at"}),o.jsx(qt.Value,{children:tr(new Date(e.createdAt),"MMM d, yyyy 'at' h:mm a")}),e.completedAt&&o.jsxs(o.Fragment,{children:[o.jsx(qt.Key,{children:"Completed at"}),o.jsx(qt.Value,{children:tr(new Date(e.completedAt),"MMM d, yyyy 'at' h:mm a")})]}),o.jsx(qt.Key,{children:"Target"}),o.jsx(qt.ValueLink,{href:i(),as:t,children:l()}),e.agentVersion&&o.jsxs(o.Fragment,{children:[o.jsx(qt.Key,{children:"Version"}),c?o.jsx(qt.ValueLink,{href:c,as:t,children:e.agentVersion}):o.jsx(qt.Value,{children:e.agentVersion})]})]})}),o.jsx(zt.Column,{children:o.jsx(Ors,{experiment:e})})]})})}function lz({children:e}){return o.jsxs(zt,{height:"full",children:[o.jsx("div",{}),o.jsx(zt.MainArea,{isCentered:!0,children:e})]})}function Hrs(){const{datasetId:e,experimentId:t}=ur(),{data:n,isLoading:r,error:s}=GU(e,t),{data:a,isLoading:i,setEndOfListElement:l,isFetchingNextPage:c,hasNextPage:u}=cG({datasetId:e,experimentId:t,experimentStatus:n?.status});return!e||!t||r?null:s&&gs(s)?o.jsx(lz,{children:o.jsx(Ws,{})}):s&&ys(s)?o.jsx(lz,{children:o.jsx(Ls,{resource:"datasets"})}):s&&JSe(s)||!r&&!s&&!n?o.jsx(lz,{children:o.jsx(Cr,{iconSlot:o.jsx(Ebe,{}),titleSlot:"Experiment not found",descriptionSlot:`No experiment with id "${t}".`,actionSlot:o.jsxs(ce,{as:Da,to:`/datasets/${e}?tab=experiments`,children:[o.jsx(Nc,{}),"Back to Dataset"]})})}):s?o.jsx(lz,{children:o.jsx(Bi,{title:"Failed to load experiment",message:s instanceof Error?s.message:"An unexpected error occurred. Please try again."})}):o.jsxs(zt,{height:"full",children:[o.jsx(sFt,{experiment:n}),o.jsx(zt.MainArea,{children:o.jsx(nFt,{experimentId:t,datasetId:e,experimentStatus:n.status,results:a??[],isLoading:i,setEndOfListElement:l,isFetchingNextPage:c,hasNextPage:u})})]})}function Wrs(){const{datasetId:e}=ur(),[t,n]=va(),{error:r}=Wx(e??""),s=t.get("baseline")??"",a=t.get("contender")??"";return r&&gs(r)?o.jsx(cs,{children:o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Ws,{})})}):r&&ys(r)?o.jsx(cs,{children:o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Ls,{resource:"datasets"})})}):!e||!s||!a?o.jsx(cs,{children:o.jsx(Sy,{children:o.jsxs("div",{className:"text-neutral4 text-center py-8",children:[o.jsx("p",{children:"Select two experiments to compare."}),o.jsxs("p",{className:"text-sm mt-2",children:["Use the URL format: /datasets/","{datasetId}","/experiments?baseline=","{experimentIdA}","&contender=","{experimentIdB}"]})]})})}):o.jsx(cs,{children:o.jsx(Sy,{children:o.jsxs("div",{className:"max-w-[100rem] w-full px-12 mx-auto grid content-start ",children:[o.jsxs(fa,{children:[o.jsxs(fa.Column,{children:[o.jsxs(fa.Title,{children:[o.jsx(Jw,{})," Dataset Experiments Comparison"]}),o.jsxs(fa.Description,{children:["Comparing"," ",o.jsx(Da,{to:`/datasets/${e}/experiments/${s}`,children:s.slice(0,8)})," vs"," ",o.jsx(Da,{to:`/datasets/${e}/experiments/${a}`,children:a.slice(0,8)})]})]}),o.jsx(fa.Column,{children:o.jsxs(ce,{as:Da,to:`/datasets/${e}`,children:[o.jsx(Nc,{}),"Back to Dataset"]})})]}),o.jsx(Trs,{datasetId:e,experimentIdA:s,experimentIdB:a,onSwap:()=>{n({baseline:a,contender:s})}})]})})})}function Zrs(){const{datasetId:e,itemId:t}=ur(),{Link:n}=yn(),r=bs(),{data:s,isLoading:a,error:i}=UTe(e??"",t??""),{updateItem:l,deleteItem:c}=Ei(),{data:u}=Wx(e??""),d=s?.[0]??null,f=d?.isDeleted??!1,[p,h]=g.useState(null),m=g.useMemo(()=>!d||f?{input:"",groundTruth:"",metadata:"",trajectory:"",toolMocks:"",requestContext:""}:{input:JSON.stringify(d.input,null,2),groundTruth:d.groundTruth?JSON.stringify(d.groundTruth,null,2):"",metadata:d.metadata?JSON.stringify(d.metadata,null,2):"",trajectory:d.expectedTrajectory!=null?JSON.stringify(d.expectedTrajectory,null,2):"",toolMocks:d.toolMocks?.length?JSON.stringify(d.toolMocks,null,2):"",requestContext:d.requestContext?JSON.stringify(d.requestContext,null,2):""},[d,f]),v=d?.datasetVersion??0,[y,b]=g.useState(!1),[S,w]=g.useState(m.input),[k,_]=g.useState(m.groundTruth),[C,E]=g.useState(m.metadata),[j,T]=g.useState(m.trajectory),[I,A]=g.useState(m.toolMocks),[P,L]=g.useState(m.requestContext),[D,q]=g.useState(v);v!==D&&(q(v),w(m.input),_(m.groundTruth),E(m.metadata),T(m.trajectory),A(m.toolMocks),L(m.requestContext));const[H,z]=g.useState(!1),B=ee=>{h(f?ee:ee.isLatest?null:ee)},V=()=>{h(null)},M=!f&&p!=null,Q=()=>{M||b(!0)},U=()=>{M||z(!0)},$=async()=>{if(!e||!t)return;let ee;try{ee=JSON.parse(S)}catch{De.error("Input must be valid JSON");return}let J;if(k.trim())try{J=JSON.parse(k)}catch{De.error("Ground Truth must be valid JSON");return}let ae;if(C.trim())try{ae=JSON.parse(C)}catch{De.error("Metadata must be valid JSON");return}let pe;const Y=j!==m.trajectory;if(Y&&j.trim())try{pe=JSON.parse(j)}catch{De.error("Expected Trajectory must be valid JSON");return}let ne;const ue=I!==m.toolMocks;if(ue&&I.trim())try{const me=JSON.parse(I);if(!Array.isArray(me)){De.error("Tool Mocks must be a JSON array");return}ne=me}catch{De.error("Tool Mocks must be valid JSON");return}let fe;const oe=P!==m.requestContext;if(oe&&P.trim())try{fe=JSON.parse(P)}catch{De.error("Request Context must be valid JSON");return}try{await l.mutateAsync({datasetId:e,itemId:t,input:ee,groundTruth:J,metadata:ae,...Y?{expectedTrajectory:pe??null}:{},...ue?{toolMocks:ne??[]}:{},...oe?{requestContext:fe}:{}}),De.success("Item updated successfully"),b(!1)}catch(me){De.error(`Failed to update item: ${me instanceof Error?me.message:"Unknown error"}`)}},F=()=>{d&&(w(JSON.stringify(d.input,null,2)),_(d.groundTruth?JSON.stringify(d.groundTruth,null,2):""),E(d.metadata?JSON.stringify(d.metadata,null,2):""),T(d.expectedTrajectory!=null?JSON.stringify(d.expectedTrajectory,null,2):""),A(d.toolMocks?.length?JSON.stringify(d.toolMocks,null,2):""),L(d.requestContext?JSON.stringify(d.requestContext,null,2):"")),b(!1)},Z=async()=>{if(!(!e||!t))try{await c.mutateAsync({datasetId:e,itemId:t}),De.success("Item deleted successfully"),z(!1),r(`/datasets/${e}`)}catch(ee){De.error(`Failed to delete item: ${ee instanceof Error?ee.message:"Unknown error"}`)}},X=p??d,te=X?{id:t??"",datasetId:e??"",datasetVersion:X.datasetVersion,input:X.input,groundTruth:X.groundTruth,expectedTrajectory:X.expectedTrajectory,metadata:X.metadata,createdAt:X.createdAt,updatedAt:X.updatedAt}:null;return i&&gs(i)?o.jsx(cs,{children:o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Ws,{})})}):i&&ys(i)?o.jsx(cs,{children:o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Ls,{resource:"datasets"})})}):a?null:!e||!t||!s||s.length===0?o.jsx(cs,{children:o.jsx(Sy,{children:o.jsx("div",{className:"text-neutral3 p-4",children:"Item not found"})})}):o.jsxs(o.Fragment,{children:[o.jsx(cs,{children:o.jsx("div",{className:"h-full overflow-hidden px-6 pb-4",children:o.jsxs("div",{className:"grid gap-6 max-w-[60rem] mx-auto grid-rows-[auto_1fr] h-full",children:[o.jsxs(fa,{children:[o.jsxs(fa.Column,{children:[o.jsxs(fa.Title,{children:[o.jsx(xN,{}),t," ",o.jsx(Oa,{content:t})]}),o.jsx(fa.Description,{children:o.jsxs(Al,{children:["Item of ",o.jsx(oy,{})," ",u?.name]})}),o.jsxs(fa.Description,{children:[o.jsxs(Al,{children:[o.jsx(Rct,{})," Created at"," ",d?.createdAt?tr(new Date(d.createdAt),"MMM d, yyyy"):""]}),o.jsxs(Al,{children:[o.jsx(d_,{})," Latest version v",d?.datasetVersion??""]})]})]}),o.jsx(fa.Column,{children:!y&&!f&&o.jsxs(Dr,{children:[o.jsxs(ce,{onClick:Q,disabled:M,title:M?"Return to latest version to edit":void 0,children:[o.jsx(Jct,{})," Edit"]}),o.jsxs(ce,{onClick:U,disabled:M,title:M?"Return to latest version to delete":void 0,children:[o.jsx(uu,{})," Delete"]})]})})]}),o.jsxs(ay,{className:y?"grid-cols-1":"grid-cols-[1fr_auto]",children:[o.jsxs(Qr,{withRightSeparator:!y,children:[f&&d&&o.jsx(In,{variant:"destructive",title:"Item deleted",children:o.jsxs(In.Message,{children:["This item was deleted at version v",d.datasetVersion]})}),!f&&M&&p&&o.jsx(In,{variant:"warning",title:"Previous version",action:o.jsxs(In.Button,{onClick:V,children:[o.jsx(jct,{})," Return to the latest version"]}),children:o.jsxs(In.Message,{children:["Viewing version v",p.datasetVersion]})}),y?o.jsx(Jzt,{inputValue:S,setInputValue:w,groundTruthValue:k,setGroundTruthValue:_,metadataValue:C,setMetadataValue:E,trajectoryValue:j,setTrajectoryValue:T,toolMocksValue:I,setToolMocksValue:A,requestContextValue:P,setRequestContextValue:L,validationErrors:null,onSave:$,onCancel:F,isSaving:l.isPending}):te?o.jsx(WTe,{item:te,Link:n}):o.jsx("div",{className:"text-neutral4 text-sm",children:"Item data not available"})]}),!y&&o.jsx(Qr,{children:o.jsx(Nrs,{datasetId:e,itemId:t,onClose:()=>{},onVersionSelect:B,onCompareVersionsClick:ee=>{r(`/datasets/${e}/items/${t}/versions?ids=${ee.join(",")}`)},activeVersion:p?.datasetVersion??null})})]})]})})}),o.jsx(It,{open:H,onOpenChange:z,children:o.jsxs(It.Content,{children:[o.jsxs(It.Header,{children:[o.jsx(It.Title,{children:"Delete Item"}),o.jsx(It.Description,{children:"Are you sure you want to delete this item? This action cannot be undone."})]}),o.jsxs(It.Footer,{children:[o.jsx(It.Cancel,{children:"Cancel"}),o.jsx(It.Action,{onClick:Z,children:c.isPending?"Deleting...":"Delete"})]})]})})]})}function OYe(e){return JSON.stringify({input:e.input??null,groundTruth:e.groundTruth??null,metadata:e.metadata??null},null,2)}function Grs(){const{datasetId:e}=ur(),[t,n]=va(),r=t.get("items")?.split(",").filter(Boolean)??[],{data:s,error:a}=Wx(e??""),{Link:i}=yn(),[l,c]=g.useState(!1),{data:u}=QU(e??"",r[0]??""),{data:d}=QU(e??"",r[1]??"");return a&&gs(a)?o.jsx(cs,{children:o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Ws,{})})}):a&&ys(a)?o.jsx(cs,{children:o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Ls,{resource:"datasets"})})}):!e||r.length<2?o.jsx(cs,{children:o.jsx(Sy,{children:o.jsx("div",{className:"text-neutral4 text-center py-8",children:o.jsx("p",{children:"Select at least two items to compare."})})})}):o.jsxs(cs,{children:[o.jsx(Iy,{owner:"dataset-items-compare",children:o.jsxs(ce,{as:Da,to:`/datasets/${e}`,variant:"outline",children:[o.jsx(Nc,{}),"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]":l}),children:[o.jsxs(fa,{children:[o.jsxs(fa.Column,{children:[o.jsxs(fa.Title,{children:[o.jsx(Jw,{}),"Compare Dataset Items"]}),o.jsx(fa.Description,{children:o.jsxs(Al,{children:["Comparing ",r.length," items of"," ",o.jsx(Da,{to:`/datasets/${e}`,className:"text-info1 hover:underline",children:s?.name||e?.slice(0,8)})]})})]}),o.jsx(fa.Column,{children:o.jsx(Dr,{children:o.jsx(ce,{variant:"primary",onClick:()=>c(f=>!f),children:l?o.jsxs(o.Fragment,{children:[o.jsx(Fct,{})," Default View"]}):o.jsxs(o.Fragment,{children:[o.jsx(Rdn,{})," Diff View"]})})})})]}),o.jsx(ay,{className:"grid-cols-[1fr_3vw_1fr]",children:r.map((f,p)=>o.jsxs(g.Fragment,{children:[o.jsx(Qrs,{datasetId:e,itemId:f,Link:i,idx:p,itemIds:r,showContent:!l,onItemChange:h=>{const m=[...r];m[p]=h,n({items:m.join(",")})}}),p==0&&o.jsx("div",{className:K("bg-surface5 w-[3px] shrink-0 mx-[1.5vw]")})]},f))}),l&&u&&d&&o.jsx(aCe,{codeA:OYe(u),codeB:OYe(d)})]})})]})}function Qrs({datasetId:e,itemId:t,Link:n,idx:r,itemIds:s,onItemChange:a,showContent:i=!0}){const{data:l,isLoading:c}=QU(e,t),{data:u}=E1(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(Qr,{children:[o.jsxs(Qr.Toolbar,{className:"flex gap-4",children:[o.jsxs(pa,{name:`compare-item-${r}`,value:t,onValueChange:a,children:[o.jsx(ma,{"aria-label":"Item",children:o.jsx(ha,{placeholder:"Select item"})}),o.jsx(ga,{children:f.map(p=>o.jsx(zr,{value:p.value,disabled:p.disabled,children:p.label},p.value))})]}),o.jsxs(ce,{as:n,to:`/datasets/${e}/items/${t}`,children:[o.jsx(d_,{}),"Versions"]})]}),i&&o.jsx(Qr.Content,{children:c?o.jsx("div",{className:"text-neutral4 text-sm",children:"Loading..."}):l?o.jsxs(o.Fragment,{children:[o.jsx(ors,{item:l}),o.jsx(WTe,{item:l,Link:n})]}):o.jsxs("div",{className:"text-neutral4 text-sm",children:["Item ",t.slice(0,8)," not found"]})})]})}function _Ye(e){return JSON.stringify({input:e.input??null,groundTruth:e.groundTruth??null,metadata:e.metadata??null},null,2)}function Yrs(){const{datasetId:e,itemId:t}=ur(),[n,r]=va(),[s,a]=g.useState(!1),i=n.get("ids")?.split(",").map(Number).filter(h=>!isNaN(h)&&h>0)??[],{data:l,error:c}=Wx(e??""),{Link:u}=yn(),{data:d}=UTe(e??"",t??""),{data:f}=oye(e??"",t??"",i[0]??0,l?.version),{data:p}=oye(e??"",t??"",i[1]??0,l?.version);return c&&gs(c)?o.jsx(cs,{children:o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Ws,{})})}):c&&ys(c)?o.jsx(cs,{children:o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Ls,{resource:"datasets"})})}):!e||!t||i.length<2?o.jsx(cs,{children:o.jsx(Sy,{children:o.jsx("div",{className:"text-neutral4 text-center py-8",children:o.jsx("p",{children:"Select at least two versions to compare."})})})}):o.jsxs(cs,{children:[o.jsx(Iy,{owner:"dataset-item-versions-compare",children:o.jsxs(ce,{as:Da,to:`/datasets/${e}/items/${t}`,variant:"outline",children:[o.jsx(Nc,{}),"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(fa,{children:[o.jsxs(fa.Column,{children:[o.jsxs(fa.Title,{children:[o.jsx(Jw,{}),"Compare Dataset Item Versions"]}),o.jsx(fa.Description,{children:o.jsxs(Al,{children:["Comparing ",i.length," versions of"," ",o.jsx(Da,{to:`/datasets/${e}/items/${t}`,className:"text-info1 hover:underline",children:t})]})})]}),o.jsx(fa.Column,{children:o.jsx(Dr,{children:o.jsx(ce,{variant:"primary",onClick:()=>a(h=>!h),children:s?o.jsxs(o.Fragment,{children:[o.jsx(Fct,{})," Default View"]}):o.jsxs(o.Fragment,{children:[o.jsx(yfn,{})," Diff View"]})})})})]}),o.jsx(ay,{className:"grid-cols-[1fr_3vw_1fr]",children:i.map((h,m)=>o.jsxs(g.Fragment,{children:[o.jsx(Xrs,{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(aCe,{codeA:_Ye(f),codeB:_Ye(p)})]})})]})}function Xrs({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}=oye(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]})," - ",tr(y,"MMM d, yyyy h:mm a"),v.isLatest?o.jsx(ea,{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,metadata:d.metadata,createdAt:d.createdAt,updatedAt:d.updatedAt}:null;return o.jsxs(Qr,{children:[o.jsxs(Qr.Toolbar,{className:"grid gap-4 grid-cols-[auto_1fr]",children:[o.jsx(d_,{className:"w-6 h-6 opacity-50"}),o.jsxs(pa,{name:`compare-version-${l}`,value:String(n),onValueChange:v=>u(Number(v)),children:[o.jsx(ma,{"aria-label":"Version",className:"w-full",children:o.jsx(ha,{placeholder:"Select version"})}),o.jsx(ga,{children:h.map(v=>o.jsx(zr,{value:v.value,disabled:v.disabled,children:v.label},v.value))})]})]}),c&&o.jsx(Qr.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(WTe,{item:m,Link:i})})]})}function Krs(){const{datasetId:e}=ur(),[t]=va(),n=t.get("ids")?.split(",").map(Number).filter(v=>!isNaN(v)&&v>0)??[],r=bs(),{data:s,error:a}=Wx(e??""),i=E1(e??"",void 0,n[0]??null),l=E1(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&&gs(a))return o.jsx(cs,{children:o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Ws,{})})});if(a&&ys(a))return o.jsx(cs,{children:o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Ls,{resource:"datasets"})})});if(!e||n.length<2)return o.jsx(cs,{children:o.jsx(Sy,{children:o.jsx("div",{className:"text-neutral4 text-center py-8",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(cs,{children:o.jsx("div",{className:"h-full overflow-hidden px-[3vw] pb-4",children:o.jsxs("div",{className:"grid gap-6 max-w-[140rem] mx-auto grid-rows-[auto_1fr] h-full",children:[o.jsxs(fa,{children:[o.jsxs(fa.Column,{children:[o.jsxs(fa.Title,{children:[o.jsx(ihn,{})," Compare Dataset Versions"]}),o.jsx(fa.Description,{children:o.jsxs(Al,{children:[o.jsx(d_,{})," Comparing ",n.length," versions of"," ",s?.name||e?.slice(0,8)]})})]}),o.jsx(fa.Column,{children:o.jsxs(ce,{as:Da,to:`/datasets/${e}`,children:[o.jsx(Nc,{}),"Back to Dataset"]})})]}),o.jsx(ay,{children:o.jsxs(Qr,{children:[o.jsx(Rrs,{datasetId:e,versionA:String(n[0]),versionB:String(n[1]),onVersionChange:m}),o.jsx(Drs,{datasetId:e,versionA:n[0],versionB:n[1],allItems:d,itemsAMap:f,itemsBMap:p,onItemClick:h})]})})]})})})}function cye({children:e,className:t}){return o.jsx("div",{className:K("flex flex-wrap gap-8",t),children:e})}function Jrs(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 ess({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=Jrs(n);return o.jsxs(o.Fragment,{children:[o.jsxs(Jr,{children:[o.jsx(Jr.Label,{children:"Total Scorers"}),i?o.jsx(Jr.Loading,{}):f!=null?o.jsxs(o.Fragment,{children:[o.jsx(Jr.Value,{children:String(f)}),o.jsx(Jr.NoChange,{message:"Static count"})]}):o.jsx(Jr.NoData,{})]}),o.jsxs(Jr,{children:[o.jsx(Jr.Label,{children:"Total Datasets"}),l?o.jsx(Jr.Loading,{}):p!=null?o.jsxs(o.Fragment,{children:[o.jsx(Jr.Value,{children:String(p)}),o.jsx(Jr.NoChange,{message:"Static count"})]}):o.jsx(Jr.NoData,{})]}),o.jsxs(Jr,{children:[o.jsx(Jr.Label,{children:"Avg Score"}),u?o.jsx(Jr.Loading,{}):r!=null?o.jsxs(o.Fragment,{children:[o.jsx(Jr.Value,{children:String(r)}),m?o.jsx(Jr.Change,{changePct:m.changePct,prevValue:m.prevValue}):o.jsx(Jr.NoChange,{})]}):o.jsx(Jr.NoData,{})]}),o.jsxs(Jr,{children:[o.jsx(Jr.Label,{children:"Total Experiments"}),c?o.jsx(Jr.Loading,{}):h!=null?o.jsxs(o.Fragment,{children:[o.jsx(Jr.Value,{children:String(h)}),v?o.jsx(Jr.Change,{changePct:v.changePct,prevValue:v.prevValue}):o.jsx(Jr.NoChange,{})]}):o.jsx(Jr.NoData,{})]}),o.jsxs(Jr,{children:[o.jsx(Jr.Label,{children:"Needs Review"}),d?o.jsx(Jr.Loading,{}):a!=null?o.jsxs(o.Fragment,{children:[o.jsx(Jr.Value,{children:String(a)}),a>0?o.jsx(Jr.NoChange,{message:"items pending review"}):o.jsx(Jr.NoChange,{message:"All caught up"})]}):o.jsx(Jr.NoData,{})]})]})}const CYe="auto 1fr auto auto auto auto auto auto auto";function tss(e){return e?(typeof e=="string"?new Date(e):e).toLocaleDateString("en-US",{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"}):"—"}const nss={completed:"success",running:"warning",failed:"error",pending:"neutral"};function rss({experiments:e,datasets:t,reviewByExperiment:n,isLoading:r,search:s="",statusFilter:a="all",datasetFilter:i="all"}){const{paths:l,Link:c}=yn(),u=g.useMemo(()=>{const p=new Map;return t?.forEach(h=>p.set(h.id,h.name)),p},[t]),d=g.useMemo(()=>[...e].sort((p,h)=>{const m=p.createdAt?new Date(p.createdAt).getTime():0;return(h.createdAt?new Date(h.createdAt).getTime():0)-m}),[e]),f=g.useMemo(()=>{const p=s.toLowerCase();return d.filter(h=>{const m=h.datasetId?u.get(h.datasetId)??"":"",v=!p||h.id.toLowerCase().includes(p)||m.toLowerCase().includes(p)||(h.targetId??"").toLowerCase().includes(p),y=a==="all"||h.status===a,b=i==="all"||h.datasetId===i;return v&&y&&b})},[d,s,u,a,i]);return r?o.jsx(rl,{columns:CYe}):o.jsxs(ve,{columns:CYe,variant:"striped",children:[o.jsxs(ve.Top,{children:[o.jsx(ve.TopCell,{children:"Experiment"}),o.jsx(ve.TopCell,{children:"Dataset"}),o.jsx(ve.TopCell,{children:"Target"}),o.jsx(ve.TopCell,{children:"Status"}),o.jsx(ve.TopCell,{className:"text-center",children:"Items"}),o.jsx(ve.TopCell,{className:"text-center",children:"Succeeded"}),o.jsx(ve.TopCell,{className:"text-center",children:"Failed"}),o.jsx(ve.TopCell,{className:"text-center",children:"Review"}),o.jsx(ve.TopCell,{children:"Date"})]}),f.map(p=>{const h=p.datasetId?u.get(p.datasetId)??p.datasetId.slice(0,8):"—",m=p.status??"pending",v=p.succeededCount??0,y=p.failedCount??0,b=p.totalItems??0,S=b>0?Math.round(v/b*100):0;return o.jsxs(ve.RowLink,{to:l.experimentLink(p.id),LinkComponent:c,children:[o.jsx(ve.NameCell,{className:"font-mono",children:p.id.slice(0,8)}),o.jsx(ve.TextCell,{children:h}),o.jsx(ve.Cell,{children:o.jsxs("span",{className:"truncate",children:[p.targetType," ",p.targetId]})}),o.jsx(ve.Cell,{children:o.jsx(mg,{variant:nss[m]??"neutral",withDot:!0,children:m})}),o.jsx(ve.TextCell,{className:"text-center",children:b}),o.jsx(ve.TextCell,{className:"text-center",children:o.jsxs("span",{className:v>0?"text-accent1":"",children:[v," (",S,"%)"]})}),o.jsx(ve.TextCell,{className:"text-center",children:o.jsx("span",{className:y>0?"text-accent2":"",children:y})}),o.jsx(ve.Cell,{className:"text-center",children:(()=>{const w=n?.get(p.id);if(!w)return o.jsx("span",{className:"text-neutral2",children:"—"});const k=w.needsReview+w.complete;return k===0?o.jsx("span",{className:"text-neutral2",children:"—"}):w.needsReview>0?o.jsxs(ea,{size:"small",color:"yellow",children:[w.needsReview," pending"]}):o.jsxs(ea,{size:"small",color:"green",children:[w.complete,"/",k," reviewed"]})})()}),o.jsx(ve.TextCell,{children:tss(p.createdAt)})]},p.id)})]})}const sss=[{value:"all",label:"All statuses"},{value:"completed",label:"Completed"},{value:"running",label:"Running"},{value:"failed",label:"Failed"},{value:"pending",label:"Pending"}];function ass(e){return[{value:"all",label:"All datasets"},...(e??[]).map(t=>({value:t.id,label:t.name}))]}const cz={completed:"#22c55e",running:"#facc15",pending:"#fb923c",failed:"#f87171"},iss=[{label:"Completed",color:cz.completed},{label:"Running",color:cz.running},{label:"Pending",color:cz.pending},{label:"Failed",color:cz.failed}];function oss({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(Vt,{children:[o.jsxs(Vt.TopBar,{children:[o.jsx(Vt.TitleAndDescription,{title:"Experiments by Dataset",description:"Experiment status breakdown per dataset."}),i&&o.jsx(Vt.Summary,{value:String(e?.length??0),label:"Total experiments"})]}),n?o.jsx(Vt.Loading,{}):r?o.jsx(Vt.Error,{message:"Failed to load experiments data"}):o.jsx(Vt.Content,{children:i?o.jsx(dN,{data:s,segments:iss,maxVal:a,fmt:l=>String(l)}):o.jsx(Vt.NoData,{message:"No experiments have been run yet"})})]})}const lss=()=>o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Cr,{iconSlot:o.jsx(Ef,{}),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.jsx("div",{className:"flex flex-col items-center gap-2",children:o.jsxs(ce,{variant:"ghost",as:"a",href:"https://mastra.ai/en/docs/evals/datasets/running-experiments",target:"_blank",rel:"noopener noreferrer",children:["Experiments Documentation ",o.jsx(_a,{})]})})})});function css({search:e,onSearchChange:t,statusFilter:n,onStatusFilterChange:r,datasetFilter:s,onDatasetFilterChange:a,datasetOptions:i,onReset:l,hasActiveFilters:c}){return o.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[o.jsx(Nf,{label:"Search experiments",placeholder:"Filter by experiment, dataset, or target",value:e,onSearch:t}),o.jsxs(Dr,{children:[o.jsx(Sc,{label:"Status",labelIsHidden:!0,name:"filter-status",options:[...sss],value:n,onValueChange:r,className:"whitespace-nowrap"}),o.jsx(Sc,{label:"Dataset",labelIsHidden:!0,name:"filter-dataset",options:i,value:s,onValueChange:a,className:"whitespace-nowrap"}),l&&c&&o.jsxs(ce,{onClick:l,size:"sm",variant:"default",children:[o.jsx(vs,{className:"size-3"})," Reset"]})]})]})}function uss(){const{data:e,isLoading:t,error:n}=ah(),{data:r,isLoading:s,error:a}=Dg(),{data:i,isLoading:l,error:c}=fG(),{data:u,isLoading:d,isError:f,error:p}=lQr(),{data:h,isLoading:m,isError:v,error:y}=QTe(),b=r?.datasets,S=i?.experiments,w=g.useMemo(()=>Brs(h),[h]),k=n||a||c||p||y;return k&&gs(k)?o.jsx(lr,{children:o.jsx(Ws,{})}):k&&ys(k)?o.jsx(lr,{children:o.jsx(Ls,{resource:"evaluation"})}):k?o.jsx(lr,{children:o.jsx(Bi,{title:"Failed to load evaluation data",message:k.message})}):o.jsx(zt,{width:"wide",height:"full",children:o.jsxs("div",{className:"flex flex-col gap-6",children:[o.jsx(cye,{children:o.jsx(ess,{scorers:e,datasets:b,experiments:S,avgScore:u?.avgScore??null,prevAvgScore:u?.prevAvgScore??null,totalNeedsReview:w.needsReview,isLoadingScorers:t,isLoadingDatasets:s,isLoadingExperiments:l,isLoadingScores:d,isLoadingReview:m})}),o.jsx(xGr,{summaryData:u?.summaryData??[],overTimeData:u?.overTimeData??[],scorerNames:u?.scorerNames??[],avgScore:u?.avgScore??null,isLoading:d,isError:f}),o.jsxs("div",{className:"grid grid-cols-1 gap-6 lg:grid-cols-2",children:[o.jsx(Uts,{experiments:S,isLoading:l,isError:!!c}),o.jsx(oss,{experiments:S,datasets:b,isLoading:l,isError:!!c})]}),o.jsx(zrs,{reviewSummary:h,experiments:S,datasets:b,isLoading:m,isError:!!v})]})})}function dss(){const[e,t]=g.useState(""),[n,r]=g.useState("all"),[s,a]=g.useState("all"),{data:i,isLoading:l,error:c}=Dg(),{data:u,isLoading:d,error:f}=fG(),{data:p}=QTe(),h=g.useMemo(()=>i?.datasets??[],[i?.datasets]),m=g.useMemo(()=>u?.experiments??[],[u?.experiments]),v=g.useMemo(()=>ass(h),[h]),y=g.useMemo(()=>rFt(p),[p]),b=l||d,S=f||c;if(S&&gs(S))return o.jsx(lr,{children:o.jsx(Ws,{})});if(f&&ys(f))return o.jsx(lr,{children:o.jsx(Ls,{resource:"experiments"})});if(c&&ys(c))return o.jsx(lr,{children:o.jsx(Ls,{resource:"datasets"})});if(S)return o.jsx(lr,{children:o.jsx(Bi,{title:"Failed to load experiments",message:S.message})});if(m.length===0&&!b)return o.jsx(lr,{children:o.jsx(lss,{})});const w=n!=="all"||s!=="all"||e!=="",k=()=>{t(""),r("all"),a("all")};return o.jsxs(zt,{children:[o.jsx(zt.TopArea,{children:o.jsx(css,{search:e,onSearchChange:t,statusFilter:n,onStatusFilterChange:r,datasetFilter:s,onDatasetFilterChange:a,datasetOptions:v,onReset:k,hasActiveFilters:w})}),o.jsx(rss,{experiments:m,datasets:h,reviewByExperiment:y,isLoading:b,search:e,statusFilter:n,datasetFilter:s})]})}function uz({children:e}){return o.jsxs(zt,{height:"full",children:[o.jsx("div",{}),o.jsx(zt.MainArea,{isCentered:!0,children:e})]})}function fss(){const{experimentId:e}=ur(),{data:t,isLoading:n}=fG(),s=t?.experiments?.find(h=>h.id===e)?.datasetId??"",{data:a,isLoading:i,error:l}=GU(s,e??""),{data:c,isLoading:u,setEndOfListElement:d,isFetchingNextPage:f,hasNextPage:p}=cG({datasetId:s,experimentId:e??"",experimentStatus:a?.status});return!e||n||i?null:l&&gs(l)?o.jsx(uz,{children:o.jsx(Ws,{})}):l&&ys(l)?o.jsx(uz,{children:o.jsx(Ls,{resource:"datasets"})}):l&&JSe(l)||!n&&!s||!i&&!l&&!a?o.jsx(uz,{children:o.jsx(Cr,{iconSlot:o.jsx(Ebe,{}),titleSlot:"Experiment not found",descriptionSlot:`No experiment with id "${e}".`,actionSlot:o.jsxs(ce,{as:Da,to:"/experiments",children:[o.jsx(Nc,{}),"Back to Experiments"]})})}):l?o.jsx(uz,{children:o.jsx(Bi,{title:"Failed to load experiment",message:l instanceof Error?l.message:"An unexpected error occurred. Please try again."})}):o.jsxs(zt,{height:"full",children:[o.jsx(sFt,{experiment:a}),o.jsx(zt.MainArea,{children:o.jsx(nFt,{experimentId:e,datasetId:s,experimentStatus:a.status,results:c??[],isLoading:u,setEndOfListElement:d,isFetchingNextPage:f,hasNextPage:p})})]})}function pss({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 aFt({connections:e,isAdmin:t,disconnectPending:n,onDisconnect:r}){return o.jsx("ul",{className:"space-y-1",children:e.map(s=>o.jsx(pss,{connection:s,isAdmin:t,disconnectPending:n,onDisconnect:()=>r(s.connectionId)},s.connectionId))})}function hss({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(aFt,{connections:a,isAdmin:t,disconnectPending:n,onDisconnect:r})]},s))})}function mss({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(hss,{groups:r,isAdmin:s,disconnectPending:l,onDisconnect:u}):o.jsx(aFt,{connections:n,isAdmin:s,disconnectPending:l,onDisconnect:u}),c?o.jsx("p",{className:"text-red-600",children:String(c)}):null]})}function gss({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 EYe=e=>e.authorId?.trim()||"shared",vss=(e,t)=>{if(!t||new Set(e.map(EYe)).size<=1)return null;const r=new Map;for(const a of e){const i=EYe(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},yss=["*","tool-providers:*","tool-providers:admin"];function bss(){const{data:e}=km();return e?.permissions?.some(t=>yss.includes(t))??!1}function xss(){const[e,t]=g.useState(""),[n,r]=g.useState(""),[s,a]=g.useState(""),i=XN(),l=IH(e||null),c=FEt(e||null,n||null),u=zEt(),d=MEt(),f=bss(),p=i.data?.providers??[],h=l.data?.data??[],m=g.useMemo(()=>c.data?.items??[],[c.data?.items]),v=g.useMemo(()=>vss(m,f),[m,f]),y=w=>{t(w),r("")},b=()=>{!e||!n||u.mutate({providerId:e,toolkit:n,label:s.trim()||null},{onSuccess:()=>{a(""),c.refetch()}})},S=w=>{d.mutate({providerId:e,connectionId:w})};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(gss,{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(mss,{providerId:e,toolkit:n,connections:m,groupedByAuthor:v,isAdmin:f,isLoading:c.isLoading,error:c.error,disconnectPending:d.isPending,disconnectError:d.error,onDisconnect:S})]})}function wss({title:e,description:t,errorBanner:n,children:r}){return o.jsx("div",{"data-testid":"login-page",className:"flex min-h-screen items-center justify-center bg-surface1",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(Qh,{className:"h-10 w-10"}),o.jsx("h1",{className:"text-xl font-semibold text-neutral6",children:e})]}),t,n,r]})})}function iFt({redirectUri:e,onSuccess:t,initialMode:n="signin",errorMessage:r}){const{data:s,isLoading:a}=oc(),{mutate:i,isPending:l,error:c}=War(),{mutate:u,isPending:d,error:f}=Gar(),{mutate:p,isPending:h}=cCt(),[m,v]=g.useState(n),[y,b]=g.useState(""),[S,w]=g.useState(""),[k,_]=g.useState("");if(a)return o.jsx("div",{className:"flex min-h-screen items-center justify-center bg-surface1",children:o.jsx("div",{className:"text-neutral3",children:"Loading..."})});if(!s?.enabled||!s?.login)return o.jsx("div",{className:"flex min-h-screen items-center justify-center bg-surface1",children:o.jsx("div",{className:"text-neutral3",children:"Authentication is not configured"})});const{login:C}=s,E=C.type==="sso"||C.type==="both",j=C.type==="credentials"||C.type==="both",T=C.sso,I=C.signUpEnabled!==!1,A=m==="signin"||!I,P=A?l:d,L=A?c:f,D=()=>{t?t():e?window.location.href=e:window.location.href="/"},q=M=>{M.preventDefault(),A?i({email:S,password:k},{onSuccess:D}):u({email:S,password:k,name:y||void 0},{onSuccess:D})},H=()=>{p({redirectUri:e},{onSuccess:M=>{window.location.href=M.url}})},z=()=>{v(A?"signup":"signin")},B=C.description?o.jsxs("div",{className:"flex items-start gap-2.5 rounded-md border border-border1 bg-surface1 p-3",children:[o.jsx(Sf,{className:"mt-0.5 h-4 w-4 shrink-0 text-neutral4"}),o.jsx("p",{className:"text-sm text-neutral3",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(wss,{title:A?"Sign in to Mastra Studio":"Create your account",description:B,errorBanner:V,children:[j&&o.jsxs("form",{onSubmit:q,className:"space-y-4",children:[!A&&o.jsxs("div",{className:"space-y-2",children:[o.jsx("label",{htmlFor:"name",className:"block text-sm text-neutral4",children:"Name"}),o.jsx(kn,{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:"block text-sm text-neutral4",children:"Email"}),o.jsx(kn,{id:"email",type:"email",value:S,onChange:M=>w(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:"block text-sm text-neutral4",children:"Password"}),o.jsx(kn,{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(ce,{type:"submit",disabled:P,className:"w-full",size:"lg",children:P?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:z,className:"text-neutral6 hover:underline",children:A?"Sign up":"Sign in"})]})]}),E&&j&&o.jsxs("div",{className:"relative",children:[o.jsx("div",{className:"absolute inset-0 flex items-center",children:o.jsx("div",{className:"w-full border-t border-border1"})}),o.jsx("div",{className:"relative flex justify-center text-sm",children:o.jsx("span",{className:"bg-surface1 px-2 text-neutral3",children:"or continue with"})})]}),E&&T&&o.jsxs(ce,{onClick:H,disabled:h,className:"w-full",size:"lg",variant:"outline",children:[T.icon&&o.jsx("span",{className:"mr-2",children:T.icon}),h?"Redirecting...":T.text||"Sign in"]})]})}function Sss(){const[e]=va(),t=bs(),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(iFt,{redirectUri:n,onSuccess:i,initialMode:s,errorMessage:a})}const ep=Mi.KeyValueList;function kss(e){return e instanceof Date?e:new Date(e)}function Oss({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=kss(e.timestamp),h=e.traceId,m=e.spanId;return o.jsxs(Mi,{collapsed:d,children:[o.jsxs(Mi.Header,{children:[o.jsxs(Mi.Heading,{children:["Log ",o.jsx("b",{children:tr(p,"MMM dd, HH:mm:ss.SSS")})]}),o.jsxs(Dr,{className:"ml-auto shrink-0",children:[l&&o.jsx(ce,{size:"md",tooltip:d?"Expand panel":"Collapse panel",onClick:()=>f(!d),children:d?o.jsx(aV,{}):o.jsx(i0e,{})}),o.jsxs(Dr,{spacing:"close",children:[o.jsx(ce,{size:"md",tooltip:"Previous log",onClick:s,disabled:!s,children:o.jsx(sV,{})}),o.jsx(ce,{size:"md",tooltip:"Next log",onClick:a,disabled:!a,children:o.jsx(VD,{})})]}),o.jsx(Mi.CloseButton,{onClick:t})]})]}),!d&&o.jsxs(Mi.Content,{children:[o.jsx("p",{className:"font-mono text-ui-md wrap-break-word whitespace-pre-wrap text-neutral4",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(Dr,{spacing:"close",className:"w-full min-w-0",children:[o.jsxs(ce,{size:"md",className:"min-w-0 flex-1 overflow-hidden",onClick:()=>n?.(h),children:[o.jsx(U8,{}),o.jsx("span",{children:"Trace"}),o.jsxs("span",{className:" ml-auto min-w-0 truncate text-ui-sm text-neutral2",children:["# ",h]})]}),o.jsx(Oa,{content:h,size:"md",tooltip:"Copy Trace ID to clipboard"})]}),m&&o.jsxs(Dr,{spacing:"close",className:"w-full min-w-0",children:[o.jsxs(ce,{size:"md",className:"min-w-0 flex-1 overflow-hidden",disabled:!h||!r,onClick:()=>h&&r?.(h,m),children:[o.jsx(U8,{}),o.jsx("span",{children:"Span"}),o.jsxs("span",{className:" ml-auto min-w-0 truncate text-ui-sm text-neutral2",children:["# ",m]})]}),o.jsx(Oa,{content:m,size:"md",tooltip:"Copy Span ID to clipboard"})]})]}),o.jsxs(ep,{className:"mb-6",children:[e.entityType&&o.jsxs(o.Fragment,{children:[o.jsx(ep.Key,{children:"Entity Type"}),o.jsx(ep.Value,{children:e.entityType})]}),e.entityName&&o.jsxs(o.Fragment,{children:[o.jsx(ep.Key,{children:"Entity Name"}),o.jsx(ep.Value,{children:e.entityName})]}),e.serviceName&&o.jsxs(o.Fragment,{children:[o.jsx(ep.Key,{children:"Service"}),o.jsx(ep.Value,{children:e.serviceName})]}),e.environment&&o.jsxs(o.Fragment,{children:[o.jsx(ep.Key,{children:"Environment"}),o.jsx(ep.Value,{children:e.environment})]}),e.source&&o.jsxs(o.Fragment,{children:[o.jsx(ep.Key,{children:"Source"}),o.jsx(ep.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(ep.Key,{children:v}),o.jsx(ep.Value,{children:String(y)})]},v))})]}),e.data&&Object.keys(e.data).length>0&&o.jsx(Mi.CodeSection,{title:"Data",codeStr:JSON.stringify(e.data,null,2),className:"mt-6"})]})]})}function _ss({error:e,resource:t,errorTitle:n}){if(gs(e))return o.jsx(Ws,{});if(ys(e))return o.jsx(Ls,{resource:t});if(r_t(e,"logs"))return o.jsx(Cr,{iconSlot:o.jsx(iV,{}),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(Bi,{title:n,message:r??"Unknown error"})}function Css({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 Ess={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 jss({level:e}){const t=Ess[e];return o.jsx(Oo,{height:"compact",children:o.jsx("span",{className:"text-ui-sm font-semibold uppercase",style:{color:t.color},children:t.label})})}function Tss({entityType:e,className:t}){const n=K("size-3.5 shrink-0 text-neutral2",t);switch(e.toLowerCase()){case Os.AGENT:return o.jsx(il,{className:n,"aria-hidden":!0});case"workflow":case Os.WORKFLOW_RUN:return o.jsx(Pd,{className:n,"aria-hidden":!0});case Os.TOOL:return o.jsx(Of,{className:n,"aria-hidden":!0});default:return null}}function Nss({entityType:e,entityName:t}){const n=e??"";return o.jsxs(Oo,{height:"compact",className:"flex min-w-0 items-center gap-2",children:[o.jsx(Tss,{entityType:n}),t?o.jsx("span",{className:"min-w-0 truncate text-ui-smd",children:t}):"-"]})}function Iss({message:e}){return o.jsx(Oo,{height:"compact",className:"min-w-0 truncate font-mono text-ui-smd text-neutral4",children:e})}function Ass({data:e}){if(!e||Object.keys(e).length===0)return o.jsx(Oo,{height:"compact",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(SSe,{children:t})}const ql=Object.assign(C3,{Top:uH,TopCell:M_,TopCellWithTooltip:dH,TopCellSmart:tkt,RowWrapper:ESe,RowButton:E3,RowLink:nkt,Spacer:CSe,NoMatch:cH,DateCell:kSe,TimeCell:OSe,LevelCell:jss,EntityCell:Nss,MessageCell:Iss,DataCell:Ass,NextPageLoading:lH}),jYe="6rem 9rem 5rem 10rem minmax(8rem,1fr) minmax(8rem,1fr)",Rss=36,Pss=8;function $ss({logs:e,isLoading:t,isFetchingNextPage:n,hasNextPage:r,setEndOfListElement:s,logIdMap:a,featuredLogId:i,onLogClick:l}){const c=g.useRef(null),u=Bzt({count:e.length,getScrollElement:()=>c.current,estimateSize:()=>Rss,overscan:Pss}),d=g.useRef(t);if(g.useEffect(()=>{d.current&&!t&&c.current?.dispatchEvent(new Event("scroll")),d.current=t},[t]),t)return o.jsx(rl,{columns:jYe});const f=u.getVirtualItems(),p=u.getTotalSize(),h=f[0]?.start??0,m=f.length>0?Math.max(0,p-(f[f.length-1]?.end??0)):0;return o.jsxs(ql,{columns:jYe,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:h}),f.map(v=>{const y=e[v.index];if(!y)return null;const b=a.get(y);if(!b)return null;const S=b===i;return o.jsxs(ql.RowButton,{ref:u.measureElement,"data-index":v.index,onClick:()=>l(y),featured:S,variant:y.level==="error"||y.level==="fatal"?"error":"default",children:[o.jsx(ql.DateCell,{timestamp:y.timestamp}),o.jsx(ql.TimeCell,{timestamp:y.timestamp}),o.jsx(ql.LevelCell,{level:y.level}),o.jsx(ql.EntityCell,{entityType:y.entityType,entityName:y.entityName}),o.jsx(ql.MessageCell,{message:y.message}),o.jsx(ql.DataCell,{data:y.data})]},b)}),o.jsx(ql.Spacer,{height:m})]}),o.jsx(ql.NextPageLoading,{isLoading:n,hasMore:r,setEndOfListElement:s})]})}function Mss({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=>Dss(f,a));return o.jsxs("div",{className:K("grid grid-cols-[1fr_auto] items-start gap-3"),children:[o.jsx(RTe,{fields:a,tokens:i,onTokensChange:l,disabled:s,autoFocusFieldId:c}),u&&o.jsx(ITe,{disabled:s,onClear:d?e:void 0,onRemoveAll:t,onSave:n,onRemoveSaved:r})]})}function Dss(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 Lss={"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"},Sse="MMM d, yyyy HH:mm",kse="Pick a wider range or lower the logging level — verbose entries (debug, info) may be filtered out.";function zss({datePreset:e,dateFrom:t,dateTo:n}){return e&&e!=="all"&&e!=="custom"?{title:`No logs for ${Lss[e]}`,description:kse}:t&&n?{title:`No logs between ${tr(t,Sse)} and ${tr(n,Sse)}`,description:kse}:t?{title:`No logs since ${tr(t,Sse)}`,description:kse}:{title:"No logs yet",description:"Logs will appear here once agents, workflows, or tools are executed."}}const Fss=({datePreset:e,dateFrom:t,dateTo:n}={})=>{const{title:r,description:s}=zss({datePreset:e,dateFrom:t,dateTo:n});return o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Cr,{iconSlot:o.jsx(iV,{}),titleSlot:r,descriptionSlot:s,actionSlot:o.jsxs(ce,{variant:"ghost",as:"a",href:"https://mastra.ai/en/docs/observability/logging",target:"_blank",rel:"noopener noreferrer",children:["Logging Documentation ",o.jsx(o0e,{})]})})})},Bss=20,Uss=1e4;function qss(e,t,n){if(e?.pagination?.hasMore)return n+1}function Vss(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 Hss(e){return r_t(e.state.error,"logs")?!1:Uss}const Wss=({filters:e}={})=>{const t=We(),{inView:n,setRef:r}=R_(),s=$1({queryKey:["logs",e],queryFn:({pageParam:p})=>t.listLogsVNext({pagination:{page:p,perPage:Bss},filters:e,orderBy:{field:"timestamp",direction:"DESC"}}),initialPageParam:0,getNextPageParam:qss,select:Vss,retry:!1,refetchInterval:Hss}),{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}},dz={AGENT:Os.AGENT,WORKFLOW:Os.WORKFLOW_RUN,SCORER:Os.SCORER,INGEST:Os.RAG_INGESTION},oFt=[{label:"Agent",entityType:dz.AGENT},{label:"Workflow",entityType:dz.WORKFLOW},{label:"Scorer",entityType:dz.SCORER},{label:"Ingest",entityType:dz.INGEST}],Zss=[{label:"Debug",value:"debug"},{label:"Info",value:"info"},{label:"Warn",value:"warn"},{label:"Error",value:"error"},{label:"Fatal",value:"fatal"}],Mx="rootEntityType",qb="datePreset",Vb="dateFrom",Hb="dateTo",Gss=new Set(["all","last-24h","last-3d","last-7d","last-14d","last-30d","custom"]),Cl={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"},t5=Object.keys(Cl),YTe=new Set(["tags"]),XTe="mastra:logs:saved-filters";function Qss(e,t=XTe){const n=eas(e),r=e.get(qb);r&&n.set(qb,r);const s=e.get(Vb);s&&n.set(Vb,s);const a=e.get(Hb);a&&n.set(Hb,a);try{localStorage.setItem(t,n.toString())}catch{}}function Yss(e=XTe){try{localStorage.removeItem(e)}catch{}}function TYe(e=XTe){try{const t=localStorage.getItem(e);if(!t)return null;const n=new URLSearchParams(t);return n.toString()?n:null}catch{return null}}function Xss(e){if(e.has(qb)||e.has(Vb)||e.has(Hb)||e.has(Mx))return!0;for(const t of t5)if(e.has(Cl[t]))return!0;return!1}function Kss({availableTags:e,availableRootEntityNames:t,availableServiceNames:n,availableEnvironments:r,loading:s}){const a=[{id:"rootEntityType",label:"Primitive Type",kind:"pick-multi",searchable:!1,options:oFt.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:Zss.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 Jss(e){const t=[],n=new Map([[Mx,"rootEntityType"]]);for(const s of t5)n.set(Cl[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),YTe.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 eas(e){const t=new URLSearchParams,n=e.get(Mx);n&&t.set(Mx,n);for(const r of t5){const s=Cl[r];if(YTe.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 tas(e,t){e.delete(Mx);for(const n of t5)e.delete(Cl[n]);for(const n of t){if(n.fieldId==="rootEntityType"&&typeof n.value=="string"){e.set(Mx,n.value);continue}const r=Cl[n.fieldId];if(r){if(YTe.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 nas({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 ras(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 sas="Filters setting for Logs saved",aas="Filters setting for Logs cleared up";function ias(e,t,n){const{storageKey:r,messages:s,skipHydration:a}={},[i,l]=g.useState(()=>TYe(r)!==null),c=g.useCallback(()=>{Qss(e,r),l(!0);const f=s?.saved??sas;f!==!1&&De.success(f)},[e,r,s?.saved]),u=g.useCallback(()=>{Yss(r),l(!1);const f=s?.cleared??aas;f!==!1&&De.success(f)},[r,s?.cleared]),d=g.useRef(!1);return g.useEffect(()=>{if(a||d.current||(d.current=!0,Xss(e)))return;const f=TYe(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 oas(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 las(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,oas(`${r}${n.message??""}${n.data?JSON.stringify(n.data):""}`))}return t}function cas(e,t,n,r){const s=g.useMemo(()=>las(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 uye="logId",dye="traceId",fye="spanId",DR=1440*60*1e3,uas={"last-24h":DR,"last-3d":3*DR,"last-7d":7*DR,"last-14d":14*DR,"last-30d":30*DR};function fz(e){e.delete(uye),e.delete(dye),e.delete(fye)}function das(e,t,n){const{onRemoveAll:r}={},s=g.useMemo(()=>{const _=e.get(qb);return _&&Gss.has(_)?_:"last-24h"},[e]),a=e.get(Vb),i=e.get(Hb),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 _=uas[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(uye),f=e.get(dye),p=e.get(fye),h=g.useMemo(()=>oFt.find(_=>_.entityType===e.get(Mx)),[e]),m=g.useMemo(()=>Jss(e),[e]),v=g.useCallback(_=>{t(C=>{const E=new URLSearchParams(C);for(const[j,T]of Object.entries(_)){const I=j==="logId"?uye:j==="traceId"?dye:fye;T?E.set(I,T):E.delete(I)}return E},{replace:!0})},[t]),y=g.useCallback(_=>{t(C=>{const E=new URLSearchParams(C);return tas(E,_),fz(E),E},{replace:!0})},[t]),b=y,S=g.useCallback((_,C)=>{if(u.current!=="custom")return;const E=C==="from"?Vb:Hb;t(j=>{const T=new URLSearchParams(j);return _?T.set(E,_.toISOString()):T.delete(E),fz(T),T},{replace:!0})},[t]),w=g.useCallback(_=>{u.current=_,t(C=>{const E=new URLSearchParams(C);return _==="last-24h"?(E.delete(qb),E.delete(Vb),E.delete(Hb)):_==="custom"?E.set(qb,"custom"):(E.set(qb,_),E.delete(Vb),E.delete(Hb)),fz(E),E},{replace:!0})},[t]),k=g.useCallback(()=>{t(_=>{const C=new URLSearchParams(_);C.delete(Mx);for(const E of t5)C.delete(Cl[E]);return C.delete(qb),C.delete(Vb),C.delete(Hb),fz(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:S,handleDatePresetChange:w,handleRemoveAll:k,applyFilterTokens:y}),[e,t,s,l,c,u,d,f,p,h,m,v,b,S,w,k,y])}const xb=Mi.KeyValueList;function fas({spanId:e,span:t,isLoading:n,onClose:r}){const s=t?.startedAt&&t?.endedAt?new Date(t.endedAt).getTime()-new Date(t.startedAt).getTime():null;return o.jsxs(Mi,{children:[o.jsxs(Mi.Header,{children:[o.jsxs(Mi.Heading,{children:["Span ",o.jsxs("b",{children:["# ",e]})]}),o.jsx(Mi.CloseButton,{onClick:r})]}),n?o.jsx(Mi.LoadingData,{children:"Loading span..."}):t?o.jsxs(Mi.Content,{children:[o.jsxs(xb,{children:[t.spanType&&o.jsxs(o.Fragment,{children:[o.jsx(xb.Key,{children:"Type"}),o.jsx(xb.Value,{children:t.spanType})]}),t.startedAt&&o.jsxs(o.Fragment,{children:[o.jsx(xb.Key,{children:"Started"}),o.jsx(xb.Value,{children:tr(new Date(t.startedAt),"MMM dd, HH:mm:ss.SSS")})]}),t.endedAt&&o.jsxs(o.Fragment,{children:[o.jsx(xb.Key,{children:"Ended"}),o.jsx(xb.Value,{children:tr(new Date(t.endedAt),"MMM dd, HH:mm:ss.SSS")})]}),s!=null&&o.jsxs(o.Fragment,{children:[o.jsx(xb.Key,{children:"Duration"}),o.jsx(xb.Value,{children:s<1e3?`${s}ms`:`${(s/1e3).toFixed(2)}s`})]})]}),o.jsx("br",{}),o.jsx(Mi.CodeSection,{title:"Input",icon:o.jsx(rpe,{}),codeStr:JSON.stringify(t.input??null,null,2)}),o.jsx(Mi.CodeSection,{title:"Output",icon:o.jsx(spe,{}),codeStr:JSON.stringify(t.output??null,null,2)}),o.jsx(Mi.CodeSection,{title:"Metadata",icon:o.jsx(mw,{}),codeStr:JSON.stringify(t.metadata??null,null,2)}),o.jsx(Mi.CodeSection,{title:"Attributes",icon:o.jsx(mw,{}),codeStr:JSON.stringify(t.attributes??null,null,2)})]}):o.jsx(Mi.NoData,{children:"Span not found."})]})}function pas(){const[e,t]=va(),n=das(e,t),r=ias(e,t),[s,a]=g.useState(),[i,l]=g.useState(!1),{data:c=[],isPending:u}=BTe(),{data:d=[],isPending:f}=LTe({entityType:n.selectedEntityOption?.entityType,rootOnly:!0}),{data:p=[],isPending:h}=zTe(),{data:m=[],isPending:v}=FTe(),y=g.useMemo(()=>Kss({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(()=>nas({rootEntityType:n.selectedEntityOption?.entityType,dateFrom:n.selectedDateFrom,dateTo:n.selectedDateTo,tokens:n.filterTokens}),[n.filterTokens,n.selectedDateFrom,n.selectedDateTo,n.selectedEntityOption]),{data:S=[],isLoading:w,error:k,isFetchingNextPage:_,hasNextPage:C,setEndOfListElement:E}=Wss({filters:b}),{logIdMap:j,featuredLog:T,handleLogClick:I,handlePreviousLog:A,handleNextLog:P}=cas(S,n.featuredLogId,n.handleFeaturedChange,n.featuredTraceId),{data:L,isLoading:D}=mH(n.featuredTraceId??null),{data:q,isLoading:H}=ZN(n.featuredTraceId??"",n.featuredSpanId??""),z=g.useCallback(()=>n.applyFilterTokens(ras(y,n.filterTokens)),[y,n]),B=g.useCallback(()=>n.handleFeaturedChange({logId:null}),[n]),V=g.useCallback(X=>n.handleFeaturedChange({traceId:X,spanId:null}),[n]),M=g.useCallback((X,te)=>n.handleFeaturedChange({traceId:X,spanId:te}),[n]),Q=g.useCallback(()=>{n.handleFeaturedChange({traceId:null,spanId:null}),l(!1)},[n]),U=g.useCallback(()=>n.handleFeaturedChange({spanId:null}),[n]),$=g.useCallback(X=>n.handleFeaturedChange({spanId:X??null}),[n]),F=o.jsxs(zt.TopArea,{children:[o.jsx(zt.Row,{children:o.jsxs(zt.Column,{className:"flex flex-wrap items-start justify-start gap-2",children:[o.jsx(NTe,{preset:n.datePreset,onPresetChange:n.handleDatePresetChange,dateFrom:n.selectedDateFrom,dateTo:n.selectedDateTo,onDateChange:n.handleDateChange,disabled:w,presets:["last-24h","last-3d","last-7d","last-14d","last-30d","custom"]}),o.jsx(PTe,{fields:y,tokens:n.filterTokens,onTokensChange:n.handleFilterTokensChange,disabled:w,onStartTextFilter:a})]})}),o.jsx(Mss,{isLoading:w,filterFields:y,filterTokens:n.filterTokens,onFilterTokensChange:n.handleFilterTokensChange,onClear:z,onRemoveAll:n.handleRemoveAll,onSave:r.handleSave,onRemoveSaved:r.hasSavedFilters?r.handleRemoveSaved:void 0,autoFocusFilterFieldId:s})]});if(k)return o.jsxs(zt,{width:"wide",height:"full",children:[F,o.jsx(zt.MainArea,{isCentered:!0,children:o.jsx(_ss,{error:k,resource:"logs",errorTitle:"Failed to load logs"})})]});const Z=!!n.selectedEntityOption||n.filterTokens.length>0;return S.length===0&&!w&&!Z?o.jsxs(zt,{width:"wide",height:"full",children:[F,o.jsx(zt.MainArea,{isCentered:!0,children:o.jsx(Fss,{datePreset:n.datePreset,dateFrom:n.selectedDateFrom,dateTo:n.selectedDateTo})})]}):o.jsxs(zt,{width:"wide",height:"full",children:[F,o.jsx(Css,{logCollapsed:i,listSlot:o.jsx($ss,{logs:S,isLoading:w,isFetchingNextPage:_,hasNextPage:C,setEndOfListElement:E,logIdMap:j,featuredLogId:n.featuredLogId,onLogClick:I}),logPanelSlot:T?o.jsx(Oss,{log:T,onClose:B,onTraceClick:V,onSpanClick:M,onPrevious:A,onNext:P,collapsed:i,onCollapsedChange:l}):null,tracePanelSlot:n.featuredTraceId?o.jsx(_kt,{traceId:n.featuredTraceId,spans:L?.spans,isLoading:D,onClose:Q,onSpanSelect:$,selectedSpanId:n.featuredSpanId}):null,spanPanelSlot:n.featuredTraceId&&n.featuredSpanId?o.jsx(fas,{spanId:n.featuredSpanId,span:q?.span,isLoading:H,onClose:U}):null})]})}function has({server:e}){const{paths:t,Link:n}=yn(),s=We().options.baseUrl,a=s?`${s}/api/mcp/${e.id}/sse`:"",{data:i}=r6t(e),l=Object.values(i||{}),c=l.length,u=l.filter(p=>p.toolType==="agent").length,d=l.filter(p=>p.toolType==="workflow").length,f=fm(e.name,50);return o.jsxs(ve.RowLink,{to:t.mcpServerLink(e.id),LinkComponent:n,children:[o.jsx(ve.NameCell,{children:f}),o.jsx(ve.DescriptionCell,{children:a}),o.jsx(ve.TextCell,{className:"text-center",children:u||""}),o.jsx(ve.TextCell,{className:"text-center",children:c||""}),o.jsx(ve.TextCell,{className:"text-center",children:d||""})]})}function mas({mcpServers:e,isLoading:t,search:n=""}){const r=g.useMemo(()=>{const s=n.toLowerCase();return e.filter(a=>a.name?.toLowerCase().includes(s)||a.id?.toLowerCase().includes(s))},[e,n]);return t?o.jsx(rl,{columns:"auto 1fr auto auto auto"}):o.jsxs(ve,{columns:"auto 1fr auto auto auto",variant:"striped",children:[o.jsxs(ve.Top,{children:[o.jsx(ve.TopCell,{children:"Name"}),o.jsx(ve.TopCell,{children:"URL"}),o.jsx(ve.TopCellSmart,{long:"Agents",short:o.jsx(il,{}),tooltip:"Agent Tools",className:"text-center"}),o.jsx(ve.TopCellSmart,{long:"Tools",short:o.jsx(Of,{}),tooltip:"Tools",className:"text-center"}),o.jsx(ve.TopCellSmart,{long:"Workflows",short:o.jsx(Pd,{}),tooltip:"Workflow Tools",className:"text-center"})]}),r.length===0&&n?o.jsx(ve.NoMatch,{message:"No MCP Servers match your search"}):null,r.map(s=>o.jsx(has,{server:s},s.id))]})}const gas=()=>o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Cr,{iconSlot:o.jsx(Ef,{}),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(ce,{variant:"ghost",as:"a",href:"https://mastra.ai/docs/tools-mcp/mcp-overview",target:"_blank",rel:"noopener noreferrer",children:["MCP Documentation ",o.jsx(_a,{})]})})}),vas=()=>{const{data:e=[],isLoading:t,error:n}=QZ(),[r,s]=g.useState("");return n&&gs(n)?o.jsx(lr,{children:o.jsx(Ws,{})}):n&&ys(n)?o.jsx(lr,{children:o.jsx(Ls,{resource:"MCP servers"})}):n?o.jsx(lr,{children:o.jsx(Bi,{title:"Failed to load MCP servers",message:n.message})}):e.length===0&&!t?o.jsx(lr,{children:o.jsx(gas,{})}):o.jsxs(zt,{children:[o.jsx(zt.TopArea,{children:o.jsx("div",{className:"max-w-120",children:o.jsx(Nf,{onSearch:s,label:"Filter MCP servers",placeholder:"Filter by name"})})}),o.jsx(mas,{mcpServers:e,isLoading:t,search:r})]})},yas=(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 bas({tools:e,agents:t,isLoading:n,search:r=""}){const{paths:s,Link:a}=yn(),i=g.useMemo(()=>yas(e,t),[e,t]),l=g.useMemo(()=>i.filter(c=>c.id.toLowerCase().includes(r.toLowerCase())),[i,r]);return n?o.jsx(rl,{columns:"auto 1fr auto"}):o.jsxs(ve,{columns:"auto 1fr auto",variant:"striped",children:[o.jsxs(ve.Top,{children:[o.jsx(ve.TopCell,{children:"Name"}),o.jsx(ve.TopCell,{children:"Description"}),o.jsx(ve.TopCellSmart,{long:"Agents",short:o.jsx(il,{}),tooltip:"Attached Agents",className:"text-center"})]}),l.length===0&&r?o.jsx(ve.NoMatch,{message:"No Tools match your search"}):null,l.map(c=>{const u=fm(c.id,50),d=fm(c.description??"",200),f=c.agents.length;return o.jsxs(ve.RowLink,{to:s.toolLink(c.id),LinkComponent:a,children:[o.jsx(ve.NameCell,{children:u}),o.jsx(ve.DescriptionCell,{children:d}),o.jsx(ve.TextCell,{className:"text-center",children:f||""})]},c.id)})]})}const xas=()=>o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Cr,{iconSlot:o.jsx(Ef,{}),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(ce,{variant:"ghost",as:"a",href:"https://mastra.ai/docs/agents/using-tools-and-mcp",target:"_blank",rel:"noopener noreferrer",children:["Tools Documentation ",o.jsx(_a,{})]})})}),was=()=>{const e=We();return Rn({mutationFn:async({toolId:t,input:n,requestContext:r})=>{const s=new l_;Object.entries(r??{}).forEach(([a,i])=>{s.set(a,i)});try{return await e.getTool(t).execute({data:n,requestContext:s})}catch(a){throw De.error("Error executing dev tool"),console.error("Error executing dev tool:",a),a}}})},Sas=({toolId:e})=>{const{canExecute:t}=ol(),n=t("tools"),{data:r={}}=Om(),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}=Tsr(e,{enabled:!s}),c=s||a,{mutateAsync:u,isPending:d,data:f}=was(),{requestContext:p}=_s();g.useEffect(()=>{if(l){const v=l instanceof Error?l.message:"Failed to load tool";De.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?um(lm(vx(c?.inputSchema))):Ss({});return i?o.jsxs("div",{className:"p-6",children:[o.jsx(xt,{className:"h-8 w-48 mb-4"}),o.jsx(xt,{className:"h-32 w-full"})]}):l?null:c?n?o.jsx(gTe,{executionResult:f,isExecutingTool:d,zodInputSchema:m,handleExecuteTool:h,toolDescription:c.description,toolId:c.id,requestContextSchema:c.requestContextSchema}):o.jsx("div",{className:"py-12 text-center px-6",children:o.jsx(ye,{variant:"ui-sm",className:"text-neutral3",children:"You don't have permission to execute tools."})}):o.jsx("div",{className:"py-12 text-center px-6",children:o.jsx(ye,{variant:"header-md",className:"text-neutral3",children:"Tool not found"})})};function kas({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}=QN(),{data:p={},isLoading:h,isError:m,error:v}=Om(),{navigate:y,paths:b}=yn();g.useEffect(()=>{if(d){const _=f instanceof Error?f.message:"Failed to load tools";De.error(`Error loading tools: ${_}`)}},[d,f]),g.useEffect(()=>{if(m){const _=v instanceof Error?v.message:"Failed to load agents";De.error(`Error loading agents: ${_}`)}},[m,v]);const S=new Map;Object.values(p).forEach(_=>{_.tools&&Object.values(_.tools).forEach(C=>{S.has(C.id)||S.set(C.id,C)})}),Object.values(c).forEach(_=>{S.has(_.id)||S.set(_.id,_)});const w=Array.from(S.values()).map(_=>({label:_.id,value:_.id})),k=_=>{t?t(_):_&&_!==e&&y(b.toolLink(_))};return o.jsx(tc,{options:w,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 Oas=({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(Sy,{children:o.jsx(ye,{as:"h1",variant:"header-md",className:"text-neutral3 font-medium py-20 text-center",children:"Server not found"})});const a=`npx -y mcp-remote ${n}`;return o.jsxs(Sy,{isDivided:!0,children:[o.jsxs("div",{className:"px-8 py-12 mx-auto max-w-2xl w-full",children:[o.jsx(ye,{as:"h1",variant:"header-md",className:"text-neutral6 font-medium pb-4",children:t.name}),o.jsxs("div",{className:"flex items-center gap-1 pb-6",children:[o.jsx(dn,{icon:o.jsx(mkt,{className:"text-neutral6"}),className:"rounded-r-sm text-neutral4!",children:"Version"}),o.jsx(dn,{className:"rounded-l-sm text-neutral4!",children:t.version_detail.version})]}),o.jsx(ye,{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:"rounded-lg border border-border1 bg-surface3 p-4",children:[o.jsx(dn,{icon:o.jsx("span",{className:"font-mono w-6 text-accent1 font-medium mr-1",children:"HTTP"}),children:"Regular HTTP Endpoint"}),o.jsx(ye,{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(ye,{className:"px-2 py-1 bg-surface4 rounded-lg",children:r}),o.jsx("div",{className:"pt-1",children:o.jsx(Oa,{tooltip:"Copy HTTP Stream URL",content:r})})]})]}),o.jsxs("div",{className:"rounded-lg border border-border1 bg-surface3 p-4",children:[o.jsx(dn,{icon:o.jsx("span",{className:"font-mono w-6 text-accent1 font-medium mr-1",children:"SSE"}),children:"Server-Sent Events"}),o.jsx(ye,{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(ye,{className:"px-2 py-1 bg-surface4 rounded-lg",children:n}),o.jsx("div",{className:"pt-1",children:o.jsx(Oa,{tooltip:"Copy SSE URL",content:n})})]})]}),o.jsxs("div",{className:"rounded-lg border border-border1 bg-surface3 p-4",children:[o.jsx(dn,{icon:o.jsx("span",{className:"font-mono w-6 text-accent1 font-medium mr-1",children:"CLI"}),children:"Command Line"}),o.jsx(ye,{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(ye,{className:"px-2 py-1 bg-surface4 rounded-lg",children:a}),o.jsx("div",{className:"pt-1",children:o.jsx(Oa,{tooltip:"Copy Command Line Config",content:a})})]})]})]})]}),o.jsx("div",{className:"h-full overflow-y-scroll border-l border-border1",children:o.jsx(_as,{server:t})})]})},_as=({server:e})=>{const{data:t={},isLoading:n}=r6t(e);if(n)return null;const r=Object.keys(t);return o.jsxs("div",{className:"p-5 overflow-y-scroll",children:[o.jsxs("div",{className:"text-neutral6 flex gap-2 items-center",children:[o.jsx(Ue,{size:"lg",className:"bg-surface4 rounded-md p-1",children:o.jsx(D_,{})}),o.jsx(ye,{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(Eas,{tool:a,serverId:e.id},s)})})]})};function Cas(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 Eas=({tool:e,serverId:t})=>{const n=g.useRef(null),{Link:r,paths:s}=yn(),a=N9t[e.toolType||"tool"],i=Cas(e._meta);return o.jsxs(Af,{onClick:()=>n.current?.click(),children:[o.jsx(LEt,{children:o.jsx(a,{className:"group-hover/entity:text-accent6"})}),o.jsxs(Pf,{children:[o.jsx(Rf,{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(dn,{className:"text-[10px] py-0",children:"App"})]})}),o.jsx(Jp,{children:e.description})]})]})},jas=()=>{const{serverId:e}=ur(),{data:t=[],isLoading:n}=QZ(),r=t.find(s=>s.id===e);return o.jsx("div",{className:"h-full w-full overflow-hidden",children:o.jsx(Oas,{isLoading:n,server:r})})};function Tas(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 Nas=({toolId:e,serverId:t})=>{const{canExecute:n}=ol(),r=n("tools"),s=We(),{data:a,isLoading:i,error:l}=Fje(t,e),{mutateAsync:c,isPending:u,data:d}=$Ur(t,e),f=a?Tas(a._meta):void 0,{data:p}=St({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";De.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(xt,{className:"h-8 w-48 mb-4"}),o.jsx(xt,{className:"h-32 w-full"})]});if(l)return null;if(!a)return o.jsx("div",{className:"py-12 text-center px-6",children:o.jsx(ye,{variant:"header-md",className:"text-neutral3",children:"Tool not found"})});if(!r)return o.jsx("div",{className:"py-12 text-center px-6",children:o.jsx(ye,{variant:"ui-sm",className:"text-neutral3",children:"You don't have permission to execute tools."})});let v;try{v=um(lm(a.inputSchema))}catch(y){console.error("Error processing input schema:",y),De.error("Failed to process tool input schema."),v=Ss({})}return o.jsxs("div",{className:"flex flex-col gap-4",children:[p&&o.jsx("div",{className:"border-b border-border1 p-4",children:o.jsx(n6t,{html:p,toolName:a.name??a.id,onToolCall:h})}),o.jsx(gTe,{executionResult:d,isExecutingTool:u,zodInputSchema:v,handleExecuteTool:m,toolDescription:a.description||"",toolId:a.id})]})},Ias=()=>{const{serverId:e,toolId:t}=ur(),{data:n,isLoading:r}=Fje(e,t);return r||!n?null:o.jsx("div",{className:"h-full w-full overflow-y-auto",children:o.jsx(Nas,{toolId:t,serverId:e})})},lFt=[{label:"Agent",entityType:Os.AGENT},{label:"Workflow",entityType:Os.WORKFLOW_RUN},{label:"Scorer",entityType:Os.SCORER},{label:"Ingest",entityType:Os.RAG_INGESTION}],fN="rootEntityType",pN={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"},pG=Object.keys(pN),KTe="mastra:metrics:saved-filters";function Aas(e){const t=Das(e);try{localStorage.setItem(KTe,t.toString())}catch{}}function Ras(){try{localStorage.removeItem(KTe)}catch{}}function cFt(){try{const e=localStorage.getItem(KTe);if(!e)return null;const t=new URLSearchParams(e);return t.toString()?t:null}catch{return null}}function Pas(e){if(e.has(fN))return!0;for(const t of pG)if(e.has(pN[t]))return!0;return!1}function $as({availableTags:e,availableEntityNames:t,availableServiceNames:n,availableEnvironments:r,loading:s}){const a=[{id:"rootEntityType",label:"Primitive Type",kind:"pick-multi",searchable:!1,options:lFt.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 Mas(e){const t=[],n=new Map([[fN,"rootEntityType"]]);for(const s of pG)n.set(pN[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 Das(e){const t=new URLSearchParams,n=e.getAll(fN);for(const r of n)t.append(fN,r);for(const r of pG){const s=pN[r],a=e.getAll(s);for(const i of a)t.append(s,i)}return t}function Las(e,t){e.delete(fN);for(const n of pG)e.delete(pN[n]);for(const n of t){const r=n.fieldId==="rootEntityType"?fN:pN[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 zas="Any";function NYe(e){const t=e.trim();return t===""||t===zas}const Fas=new Set(lFt.map(e=>e.entityType));function IYe(e){const t=e.trim();return Fas.has(t)?t:void 0}function Bas(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=>!NYe(a));if(s.length===0)continue;if(r==="tags")t.tags=s;else if(r==="rootEntityType"){const a=s[0],i=a!==void 0?IYe(a):void 0;i&&(t.rootEntityType=i)}else t[r]=s[0]}else if(typeof n.value=="string"){if(NYe(n.value))continue;const s=n.value.trim();if(r==="rootEntityType"){const a=IYe(s);a&&(t.rootEntityType=a)}else t[r]=s}}return t}const uFt=[{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"}],Uas=new Set(uFt.map(e=>e.value));function qas(e){return typeof e=="string"&&(Uas.has(e)||e==="custom")}const dFt=g.createContext({datePreset:"24h",setDatePreset:()=>{},customRange:void 0,setCustomRange:()=>{},dateRangeLabel:"Last 24 hours",filterTokens:[],setFilterTokens:()=>{},dimensionalFilter:{},dimensionalFilterKey:"{}",tracesBasePath:void 0,logsBasePath:void 0});function hG(){return g.useContext(dFt)}function Vas(e,t){return e!=="custom"?uFt.find(n=>n.value===e)?.label??e:t?.from?t.to?`${tr(t.from,"MMM d, yyyy")} – ${tr(t.to,"MMM d, yyyy")}`:tr(t.from,"MMM d, yyyy"):"Custom range"}function Has({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(()=>Bas(d),[d]),p=g.useMemo(()=>JSON.stringify(f),[f]),h=Vas(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(dFt.Provider,{value:m,children:e})}const Was=["last-24h","last-3d","last-7d","last-14d","last-30d","custom"];function Zas(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 Gas(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 Qas(){const{datePreset:e,setDatePreset:t,customRange:n,setCustomRange:r}=hG(),s=g.useRef(e);s.current=e;const a=g.useRef(n);return a.current=n,o.jsx(NTe,{preset:Zas(e),onPresetChange:i=>{const l=Gas(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:Was})}const pye=1440*60*1e3,Yas={"24h":pye,"3d":4320*60*1e3,"7d":10080*60*1e3,"14d":336*60*60*1e3,"30d":720*60*60*1e3};function Xas(e,t,n){if(e!=="custom"){const r=Yas[e]??pye;return{start:new Date(n-r),end:new Date(n)}}return{start:t?.from??new Date(n-pye),end:t?.to??new Date(n)}}function Tm(){const{datePreset:e,customRange:t,dimensionalFilter:n,dimensionalFilterKey:r}=hG(),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(()=>Xas(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 fFt(){const e=We(),{filters:t,filterKey:n}=Tm();return St({queryKey:["metrics","agent-runs-kpi",n],queryFn:()=>e.getMetricAggregate({name:["mastra_agent_duration_ms"],aggregation:"count",filters:t,comparePeriod:"previous_period"})})}function n5({href:e,LinkComponent:t="a"}){return o.jsx(ce,{as:t,href:e,variant:"ghost",size:"icon-md",tooltip:"View in Traces","aria-label":"View in Traces",children:o.jsx(q_n,{})})}function Kas({href:e,LinkComponent:t="a"}){return o.jsx(ce,{as:t,href:e,variant:"ghost",size:"icon-md",tooltip:"View errors in Logs","aria-label":"View errors in Logs",children:o.jsx(_Cn,{})})}const Jas=[{dataKey:"p50",label:"p50",color:Mp.blue,aggregate:e=>({value:e.length>0?`${Math.round(e.reduce((t,n)=>t+n.p50,0)/e.length)}`:"0",suffix:"avg ms"})},{dataKey:"p95",label:"p95",color:Mp.yellow,aggregate:e=>({value:e.length>0?`${Math.round(e.reduce((t,n)=>t+n.p95,0)/e.length)}`:"0",suffix:"avg ms"})}];function eis(e){return e==="agents"||e==="workflows"||e==="tools"}function Ose({data:e,onPointClick:t}){return e.length===0?o.jsx(Vt.NoData,{message:"No latency data yet"}):o.jsx(WU,{data:e,series:Jas,onPointClick:t?n=>{const r=n;typeof r?.tsMs=="number"&&Number.isFinite(r.tsMs)&&t(r)}:void 0})}function tis({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,S)=>b+S,0)/v.length)}ms`:"—";return o.jsxs(Vt,{children:[o.jsxs(Vt.TopBar,{children:[o.jsx(Vt.TitleAndDescription,{title:"Latency",description:"Hourly p50 and p95 latency."}),m&&o.jsx(Vt.Summary,{value:y,label:"Avg p50"}),h?o.jsx(Vt.Actions,{children:h}):null]}),t?o.jsx(Vt.Loading,{}):n?o.jsx(Vt.Error,{message:"Failed to load latency data"}):o.jsx(Vt.Content,{children:m?o.jsxs(Ac,{value:p,onValueChange:b=>{eis(b)&&c[b]&&f(b)},defaultTab:u,className:"overflow-visible",children:[o.jsxs(Ic,{children:[o.jsx(Ar,{value:"agents",disabled:!a,disabledTooltip:"No agent latency data for this period",children:"Agents"}),o.jsx(Ar,{value:"workflows",disabled:!i,disabledTooltip:"No workflow latency data for this period",children:"Workflows"}),o.jsx(Ar,{value:"tools",disabled:!l,disabledTooltip:"No tool latency data for this period",children:"Tools"})]}),o.jsx(Xr,{value:"agents",children:o.jsx(Ose,{data:e.agentData,onPointClick:r?b=>r("agents",b):void 0})}),o.jsx(Xr,{value:"workflows",children:o.jsx(Ose,{data:e.workflowData,onPointClick:r?b=>r("workflows",b):void 0})}),o.jsx(Xr,{value:"tools",children:o.jsx(Ose,{data:e.toolData,onPointClick:r?b=>r("tools",b):void 0})})]}):o.jsx(Vt.NoData,{message:"No latency data yet"})})]})}function nis(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 ris(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 pFt(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=nis(s);l&&e.set(t,l)}function No(e,t,n){typeof n=="string"&&n.length>0&&e.set(t,n)}function hFt(e,t,n){if(!(!Array.isArray(n)||n.length===0))for(const r of n)r&&e.append(t,r)}function AYe({preset:e,customRange:t,dashboardFilter:n,scope:r,tracesBasePath:s="/observability"}){const a=new URLSearchParams;a.set(ww,"branches"),pFt(a,Sw,kw,Ow,e,t,r.window);const i=r.rootEntityType??n.rootEntityType;i&&a.set(Px,i),r.status&&a.set($x,r.status),No(a,_l.entityName,r.entityName??n.entityName),No(a,_l.threadId,r.threadId??n.threadId),No(a,_l.resourceId,r.resourceId??n.resourceId),No(a,_l.entityId,n.entityId),No(a,_l.runId,n.runId),No(a,_l.sessionId,n.sessionId),No(a,_l.requestId,n.requestId),No(a,_l.userId,n.userId),No(a,_l.organizationId,n.organizationId),No(a,_l.experimentId,n.experimentId),No(a,_l.serviceName,n.serviceName),No(a,_l.environment,n.environment),hFt(a,_l.tags,n.tags);const l=a.toString();return l?`${s}?${l}`:s}function sis({preset:e,customRange:t,dashboardFilter:n,scope:r,logsBasePath:s="/logs"}){const a=new URLSearchParams;pFt(a,qb,Vb,Hb,e,t,r.window);const i=r.rootEntityType??n.rootEntityType;i&&a.set(Mx,i),No(a,Cl.entityName,r.entityName??n.entityName),No(a,Cl.threadId,r.threadId??n.threadId),No(a,Cl.resourceId,r.resourceId??n.resourceId),No(a,Cl.runId,n.runId),No(a,Cl.sessionId,n.sessionId),No(a,Cl.requestId,n.requestId),No(a,Cl.userId,n.userId),No(a,Cl.organizationId,n.organizationId),No(a,Cl.experimentId,n.experimentId),No(a,Cl.serviceName,n.serviceName),No(a,Cl.environment,n.environment),hFt(a,Cl.tags,n.tags),r.status==="error"&&a.append(Cl.level,"error");const l=a.toString();return l?`${s}?${l}`:s}function EI(){const{datePreset:e,customRange:t,dimensionalFilter:n,tracesBasePath:r,logsBasePath:s}=hG(),a=g.useCallback((c={})=>AYe({preset:e,customRange:t,dashboardFilter:n,scope:c,tracesBasePath:r}),[e,t,n,r]),i=g.useCallback((c={})=>sis({preset:e,customRange:t,dashboardFilter:n,scope:c,logsBasePath:s}),[e,t,n,s]),l=g.useCallback((c,u,d)=>{const f=ris(u,d);return AYe({preset:e,customRange:t,dashboardFilter:n,scope:{...c,window:f},tracesBasePath:r})},[e,t,n,r]);return{getTracesHref:a,getLogsHref:i,getBucketTracesHref:l}}const mFt="1h";async function _se(e,t,n){const r=await e.getMetricPercentiles({name:t,percentiles:[.5,.95],interval:mFt,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 ais(){const e=We(),{filters:t,filterKey:n}=Tm();return St({queryKey:["metrics","latency",n],queryFn:async()=>{const[r,s,a]=await Promise.all([_se(e,"mastra_agent_duration_ms",t),_se(e,"mastra_workflow_duration_ms",t),_se(e,"mastra_tool_duration_ms",t)]);return{agentData:r,workflowData:s,toolData:a,interval:mFt}}})}const RYe={agents:Os.AGENT,workflows:Os.WORKFLOW_RUN,tools:Os.TOOL};function iis(){const{data:e,isLoading:t,isError:n}=ais(),{getTracesHref:r,getBucketTracesHref:s}=EI(),{Link:a}=yn(),i=bs();return o.jsx(tis,{data:e,isLoading:t,isError:n,onPointClick:(l,c)=>{Number.isFinite(c.tsMs)&&i(s({rootEntityType:RYe[l]},c.tsMs,"1h"))},actions:l=>o.jsx(n5,{href:r({rootEntityType:RYe[l]}),LinkComponent:a})})}function ois(e){return e==="threads"||e==="resources"}function Cse(e){return e.length<=12?e:`${e.slice(0,6)}…${e.slice(-4)}`}function lis({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(Vt,{children:[o.jsxs(Vt.TopBar,{children:[o.jsx(Vt.TitleAndDescription,{title:"Memory",description:"Resource and Thread consumption"}),i==="threads"&&d&&o.jsx(Vt.Summary,{value:p.toLocaleString(),label:"Total runs"}),i==="resources"&&f&&o.jsx(Vt.Summary,{value:h.toLocaleString(),label:"Total threads"}),v?o.jsx(Vt.Actions,{children:v}):null]}),m.isLoading?o.jsx(Vt.Loading,{}):m.isError?o.jsx(Vt.Error,{message:"Failed to load memory data"}):o.jsx(Vt.Content,{children:o.jsxs(Ac,{defaultTab:"threads",value:i,onValueChange:y=>{ois(y)&&l(y)},className:"grid h-full grid-rows-[auto_1fr] overflow-y-auto",children:[o.jsxs(Ic,{children:[o.jsx(Ar,{value:"threads",children:"Threads"}),o.jsx(Ar,{value:"resources",children:"Resources"})]}),o.jsx(Xr,{value:"threads",children:d?o.jsxs(ve,{columns:"auto auto auto auto auto",...lye,children:[o.jsxs(ve.Top,{children:[o.jsx(ve.TopCell,{sticky:"start",children:"Thread ID"}),o.jsx(ve.TopCell,{className:"justify-end text-right",children:"Resource ID"}),o.jsx(ve.TopCell,{className:"justify-end text-right",children:"Runs"}),o.jsx(ve.TopCell,{className:"justify-end text-right",children:"Tokens"}),o.jsx(ve.TopCell,{className:"justify-end text-right",children:"Cost"})]}),c.map(y=>{const b=n?.(y),S=o.jsxs(o.Fragment,{children:[o.jsx(ve.RowHeaderCell,{height:"compact",className:"text-ui-sm",children:Cse(y.threadId)}),o.jsx(ve.NumberCell,{children:y.resourceId?Cse(y.resourceId):"—"}),o.jsx(ve.NumberCell,{highlight:!0,children:y.runs.toLocaleString()}),o.jsx(ve.NumberCell,{children:y.tokens>0?wc(y.tokens):"—"}),o.jsx(ve.NumberCell,{children:y.cost!=null?Sg(y.cost,y.costUnit):"—"})]});return b?o.jsx(ve.RowLink,{to:b,LinkComponent:a,children:S},y.key):o.jsx(ve.RowStatic,{children:S},y.key)})]}):o.jsx(Vt.NoData,{message:"No thread activity yet"})}),o.jsx(Xr,{value:"resources",children:f?o.jsxs(ve,{columns:"auto auto auto auto",...lye,children:[o.jsxs(ve.Top,{children:[o.jsx(ve.TopCell,{sticky:"start",children:"Resource ID"}),o.jsx(ve.TopCell,{className:"justify-end text-right",children:"Threads"}),o.jsx(ve.TopCell,{className:"justify-end text-right",children:"Tokens"}),o.jsx(ve.TopCell,{className:"justify-end text-right",children:"Cost"})]}),u.map(y=>{const b=r?.(y),S=o.jsxs(o.Fragment,{children:[o.jsx(ve.RowHeaderCell,{height:"compact",className:"text-ui-sm",children:Cse(y.resourceId)}),o.jsx(ve.NumberCell,{highlight:!0,children:y.threadCount.toLocaleString()}),o.jsx(ve.NumberCell,{children:y.tokens>0?wc(y.tokens):"—"}),o.jsx(ve.NumberCell,{children:y.cost!=null?Sg(y.cost,y.costUnit):"—"})]});return b?o.jsx(ve.RowLink,{to:b,LinkComponent:a,children:S},y.key):o.jsx(ve.RowStatic,{children:S},y.key)})]}):o.jsx(Vt.NoData,{message:"No resource activity yet"})})]})})]})}function r5(e,t,n){const r=e.get(t);if(r!==void 0)return r;const s=n();return e.set(t,s),s}const Ese=20;function cis(){const e=We(),{filters:t,filterKey:n}=Tm();return St({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:Ese}),e.getMetricBreakdown({...r,name:["mastra_model_total_input_tokens"],aggregation:"sum",limit:Ese}),e.getMetricBreakdown({...r,name:["mastra_model_total_output_tokens"],aggregation:"sum",limit:Ese})]),l=new Map,c=d=>r5(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 jse=20;function uis(){const e=We(),{filters:t,filterKey:n}=Tm();return St({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:jse}),e.getMetricBreakdown({...r,name:["mastra_model_total_input_tokens"],aggregation:"sum",limit:jse}),e.getMetricBreakdown({...r,name:["mastra_model_total_output_tokens"],aggregation:"sum",limit:jse})]),l=new Map,c=d=>r5(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 dis(){const e=cis(),t=uis(),{getTracesHref:n}=EI(),{Link:r}=yn();return o.jsx(lis,{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 s5({label:e,value:t,prevValue:n,changePct:r,isLoading:s,isError:a}){const i=t!=null;return o.jsxs(Jr,{children:[o.jsx(Jr.Label,{children:e}),o.jsx(Jr.Value,{className:i?void 0:"invisible",children:i?t:"—"}),a?o.jsx(Jr.Error,{}):s?o.jsx(Jr.Loading,{}):i?r!=null?o.jsx(Jr.Change,{changePct:r,prevValue:n}):o.jsx(Jr.NoChange,{}):o.jsx(Jr.NoData,{})]})}function fis(){const e=We(),{filters:t,filterKey:n}=Tm();return St({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 pis(){const e=We(),{filters:t,filterKey:n}=Tm();return St({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 his(){const e=We(),{filters:t,filterKey:n}=Tm();return St({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 mis(){const e=We(),{filters:t,filterKey:n}=Tm();return St({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 gis(){const{data:e,isLoading:t,isError:n}=fFt();return o.jsx(s5,{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 vis(){const{data:e,isLoading:t,isError:n}=his();return o.jsx(s5,{label:"Total Model Cost",value:e?.cost!=null?Sg(e.cost,e.costUnit):null,prevValue:e?.previousCost!=null?Sg(e.previousCost,e.costUnit):void 0,changePct:e?.costChangePercent??null,isLoading:t,isError:n})}function yis(){const{data:e,isLoading:t,isError:n}=mis();return o.jsx(s5,{label:"Total Tokens",value:e?.value!=null?wc(e.value):null,prevValue:e?.previousValue!=null?wc(e.previousValue):void 0,changePct:e?.changePercent??null,isLoading:t,isError:n})}function bis(){const{data:e,isLoading:t,isError:n}=pis();return o.jsx(s5,{label:"Total Threads",value:e?.value!=null?wc(e.value):null,prevValue:e?.previousValue!=null?wc(e.previousValue):void 0,changePct:e?.changePercent??null,isLoading:t,isError:n})}function xis(){const{data:e,isLoading:t,isError:n}=fis();return o.jsx(s5,{label:"Total Resources",value:e?.value!=null?wc(e.value):null,prevValue:e?.previousValue!=null?wc(e.previousValue):void 0,changePct:e?.changePercent??null,isLoading:t,isError:n})}function wis({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=>Sis(f,a));return o.jsxs("div",{className:K("grid grid-cols-[1fr_auto] gap-3 items-start"),children:[o.jsx(RTe,{fields:a,tokens:i,onTokensChange:l,disabled:s,autoFocusFieldId:c}),u&&o.jsx(ITe,{disabled:s,onClear:d?e:void 0,onRemoveAll:t,onSave:n,onRemoveSaved:r})]})}function Sis(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 kis({rows:e,isLoading:t,isError:n,getRowHref:r,actions:s,LinkComponent:a}){const i=!!e&&e.length>0;return o.jsxs(Vt,{children:[o.jsxs(Vt.TopBar,{children:[o.jsx(Vt.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?Sg(l):"—":c.size===1?u=l>0?Sg(l,[...c][0]):"—":u="Mixed",o.jsx(Vt.Summary,{value:u,label:"Total cost"})})(),s?o.jsx(Vt.Actions,{children:s}):null]}),t?o.jsx(Vt.Loading,{}):n?o.jsx(Vt.Error,{message:"Failed to load model usage data"}):o.jsx(Vt.Content,{children:i?o.jsxs(ve,{columns:"auto auto auto auto auto auto",...lye,children:[o.jsxs(ve.Top,{children:[o.jsx(ve.TopCell,{sticky:"start",children:"Model"}),o.jsx(ve.TopCell,{className:"justify-end text-right",children:"Input"}),o.jsx(ve.TopCell,{className:"justify-end text-right",children:"Output"}),o.jsx(ve.TopCell,{className:"justify-end text-right",children:"Cache Read"}),o.jsx(ve.TopCell,{className:"justify-end text-right",children:"Cache Write"}),o.jsx(ve.TopCell,{className:"justify-end text-right",children:"Cost"})]}),e.map(l=>{const c=r?.(l),u=o.jsxs(o.Fragment,{children:[o.jsx(ve.RowHeaderCell,{height:"compact",className:"text-ui-sm",children:l.model}),o.jsx(ve.NumberCell,{children:l.input}),o.jsx(ve.NumberCell,{children:l.output}),o.jsx(ve.NumberCell,{children:l.cacheRead}),o.jsx(ve.NumberCell,{children:l.cacheWrite}),o.jsx(ve.NumberCell,{highlight:!0,children:l.cost!=null?Sg(l.cost,l.costUnit):"—"})]});return c?o.jsx(ve.RowLink,{to:c,LinkComponent:a,children:u},l.model):o.jsx(ve.RowStatic,{children:u},l.model)})]}):o.jsx(Vt.NoData,{message:"No model usage data yet"})})]})}function Ois(){const e=We(),{filters:t,filterKey:n}=Tm();return St({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=>r5(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:wc(f.input),output:wc(f.output),cacheRead:wc(f.cacheRead),cacheWrite:wc(f.cacheWrite),cost:f.cost,costUnit:f.costUnit})).sort((d,f)=>d.model.localeCompare(f.model))}})}function _is(){const{data:e,isLoading:t,isError:n}=Ois(),{getTracesHref:r}=EI(),{Link:s}=yn();return o.jsx(kis,{rows:e,isLoading:t,isError:n,LinkComponent:s,getRowHref:()=>r({rootEntityType:Os.AGENT}),actions:o.jsx(n5,{href:r({rootEntityType:Os.AGENT}),LinkComponent:s})})}function Cis(e){return e==="tokens"||e==="cost"}function Eis({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,S)=>b+S.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,S)=>b+(S.cost??0),0):0,y=h&&v>0;return o.jsxs(Vt,{children:[o.jsxs(Vt.TopBar,{children:[o.jsx(Vt.TitleAndDescription,{title:"Token Usage by Agent",description:"Token consumption grouped by agent."}),u&&(i==="cost"&&y?o.jsx(Vt.Summary,{value:Sg(v,m),label:"Total cost"}):o.jsx(Vt.Summary,{value:wc(d),label:"Total tokens"})),u&&s?o.jsx(Vt.Actions,{children:s}):null]}),t?o.jsx(Vt.Loading,{}):n?o.jsx(Vt.Error,{message:"Failed to load token usage data"}):o.jsx(Vt.Content,{children:u?o.jsxs(Ac,{defaultTab:"tokens",value:i,onValueChange:b=>{Cis(b)&&l(b)},className:"grid h-full grid-rows-[auto_1fr] overflow-y-auto",children:[o.jsxs(Ic,{children:[o.jsx(Ar,{value:"tokens",children:"Tokens"}),o.jsx(Ar,{value:"cost",children:"Cost"})]}),o.jsx(Xr,{value:"tokens",children:o.jsx(dN,{LinkComponent:a,data:c.map(b=>({name:b.name,values:[b.input,b.output],href:r?.(b)})),segments:[{label:"Input",color:Mp.blueDark},{label:"Output",color:Mp.blue}],maxVal:Math.max(...c.map(b=>b.input+b.output)),fmt:wc})}),o.jsx(Xr,{value:"cost",children:y?o.jsx(dN,{LinkComponent:a,data:f.slice().sort((b,S)=>(S.cost??0)-(b.cost??0)).map(b=>({name:b.name,values:[b.cost],href:r?.(b)})),segments:[{label:"Cost",color:Mp.purple}],maxVal:Math.max(...f.map(b=>b.cost??0)),fmt:b=>Sg(b,m)}):o.jsx(Vt.NoData,{message:"No cost data yet"})})]}):o.jsx(Vt.NoData,{message:"No token usage data yet"})})]})}function jis(){const e=We(),{filters:t,filterKey:n}=Tm();return St({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=>r5(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 Tis(){const{data:e,isLoading:t,isError:n}=jis(),{getTracesHref:r}=EI(),{Link:s}=yn();return o.jsx(Eis,{data:e,isLoading:t,isError:n,LinkComponent:s,getRowHref:a=>r({rootEntityType:Os.AGENT,entityName:a.name}),actions:o.jsx(n5,{href:r({rootEntityType:Os.AGENT}),LinkComponent:s})})}function hye(e,t=wc){return n=>({value:t(n.reduce((r,s)=>r+(typeof s[e]=="number"?s[e]:0),0))})}const Nis=[{dataKey:"input",label:"Input tokens",color:Mp.blue,aggregate:hye("input")},{dataKey:"output",label:"Output tokens",color:Mp.yellow,aggregate:hye("output")}];function Iis(e){return e==="tokens"||e==="cost"}function Ais({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,S=t==="1h"?"Input and output tokens per hour.":"Input and output tokens per day.",w=[{dataKey:"cost",label:"Cost",color:Mp.purple,aggregate:hye("cost",k=>Sg(k,v))}];return o.jsxs(Vt,{children:[o.jsxs(Vt.TopBar,{children:[o.jsx(Vt.TitleAndDescription,{title:"Token usage over time",description:S}),u&&(a==="cost"&&b?o.jsx(Vt.Summary,{value:Sg(y,v),label:"Total cost"}):o.jsx(Vt.Summary,{value:wc(d),label:"Total tokens"})),u&&s?o.jsx(Vt.Actions,{children:s}):null]}),n?o.jsx(Vt.Loading,{}):r?o.jsx(Vt.Error,{message:"Failed to load token usage timeline"}):o.jsx(Vt.Content,{children:u?o.jsxs(Ac,{defaultTab:"tokens",value:a,onValueChange:k=>{Iis(k)&&i(k)},className:"overflow-visible",children:[o.jsxs(Ic,{children:[o.jsx(Ar,{value:"tokens",children:"Tokens"}),o.jsx(Ar,{value:"cost",children:"Cost"})]}),o.jsx(Xr,{value:"tokens",children:o.jsx(WU,{data:c,series:Nis})}),o.jsx(Xr,{value:"cost",children:b?o.jsx(WU,{data:p,series:w}):o.jsx(Vt.NoData,{message:"No cost data yet"})})]}):o.jsx(Vt.NoData,{message:"No token usage data yet"})})]})}function Ris(e){return e==="24h"?"1h":"1d"}function Pis(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 PYe(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 $is(e){return e.cost==null||e.hasUnknownCostUnit||e.costUnits.size!==1?null:[...e.costUnits][0]??null}function Mis(){const e=We(),{datePreset:t,filters:n,filterKey:r}=Tm(),s=Ris(t);return St({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 PYe(l,a.series[0],"input"),PYe(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:Pis(d,s),tsMs:u.tsMs,input:u.input,output:u.output,total:u.input+u.output,cost:u.cost,costUnit:$is(u)}}),interval:s}}})}function Dis(){const{data:e,isLoading:t,isError:n}=Mis(),{getTracesHref:r}=EI(),{Link:s}=yn();return o.jsx(Ais,{data:e?.data,interval:e?.interval,isLoading:t,isError:n,actions:o.jsx(n5,{href:r(),LinkComponent:s})})}function Tse({data:e,rowHrefs:t,errorHrefs:n,LinkComponent:r}){return o.jsx(dN,{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:Mp.blueDark},{label:"Errors",color:Mp.pink}],maxVal:Math.max(...e.map(s=>s.completed+s.errors)),fmt:wc})}function Lis({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(Vt,{children:[o.jsxs(Vt.TopBar,{children:[o.jsx(Vt.TitleAndDescription,{title:"Trace Volume",description:"Runs and call counts."}),d&&o.jsx(Vt.Summary,{value:wc(f),label:"Total runs"}),u?o.jsx(Vt.Actions,{children:u}):null]}),t?o.jsx(Vt.Loading,{}):n?o.jsx(Vt.Error,{message:"Failed to load trace volume data"}):o.jsx(Vt.Content,{children:d?o.jsxs(Ac,{value:l,onValueChange:c,defaultTab:"agents",className:"grid h-full grid-rows-[auto_1fr] overflow-y-auto",children:[o.jsxs(Ic,{children:[o.jsx(Ar,{value:"agents",children:"Agents"}),o.jsx(Ar,{value:"workflows",children:"Workflows"}),o.jsx(Ar,{value:"tools",children:"Tools"})]}),o.jsx(Xr,{value:"agents",children:e.agentData.length>0?o.jsx(Tse,{data:e.agentData,rowHrefs:p("agents"),errorHrefs:h("agents"),LinkComponent:i}):o.jsx(Vt.NoData,{message:"No agent data yet"})}),o.jsx(Xr,{value:"workflows",children:e.workflowData.length>0?o.jsx(Tse,{data:e.workflowData,rowHrefs:p("workflows"),errorHrefs:h("workflows"),LinkComponent:i}):o.jsx(Vt.NoData,{message:"No workflow data yet"})}),o.jsx(Xr,{value:"tools",children:e.toolData.length>0?o.jsx(Tse,{data:e.toolData,rowHrefs:p("tools"),errorHrefs:h("tools"),LinkComponent:i}):o.jsx(Vt.NoData,{message:"No tool data yet"})})]}):o.jsx(Vt.NoData,{message:"No trace volume data yet"})})]})}async function Nse(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=r5(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 zis(){const e=We(),{filters:t,filterKey:n}=Tm();return St({queryKey:["metrics","trace-volume",n],queryFn:async()=>{const[r,s,a]=await Promise.all([Nse(e,"mastra_agent_duration_ms",t),Nse(e,"mastra_workflow_duration_ms",t),Nse(e,"mastra_tool_duration_ms",t)]);return{agentData:r,workflowData:s,toolData:a}}})}const pz={agents:Os.AGENT,workflows:Os.WORKFLOW_RUN,tools:Os.TOOL};function Fis(){const{data:e,isLoading:t,isError:n}=zis(),{getTracesHref:r,getLogsHref:s}=EI(),{Link:a}=yn();return o.jsx(Lis,{data:e,isLoading:t,isError:n,LinkComponent:a,getRowHref:(i,l)=>r({rootEntityType:pz[i],entityName:l.name}),getErrorSegmentHref:(i,l)=>l.errors>0?s({rootEntityType:pz[i],entityName:l.name,status:"error"}):void 0,actions:i=>o.jsxs(o.Fragment,{children:[o.jsx(n5,{href:r({rootEntityType:pz[i]}),LinkComponent:a}),o.jsx(Kas,{href:s({rootEntityType:pz[i],status:"error"}),LinkComponent:a})]})})}const Bis=new Set(["ObservabilityStorageClickhouseVNext","ObservabilityStorageDuckDB","ObservabilityInMemory","ObservabilitySpanner","ObservabilityStoragePostgresVNext"]),Ise="period",hz="dateFrom",mz="dateTo";function Uis(){const[e,t]=va(),n=e.get(Ise),r=qas(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(hz)),p=d(e.get(mz));if(!(!f&&!p))return{from:f,to:p}},[r,e.toString()]),a=g.useMemo(()=>Mas(e),[e.toString()]),i=g.useCallback(d=>{t(f=>{const p=new URLSearchParams(f);return d==="24h"?p.delete(Ise):p.set(Ise,d),d!=="custom"&&(p.delete(hz),p.delete(mz)),p},{replace:!0})},[t]),l=g.useCallback(d=>{t(f=>{const p=new URLSearchParams(f);return d?.from?p.set(hz,d.from.toISOString()):p.delete(hz),d?.to?p.set(mz,d.to.toISOString()):p.delete(mz),p},{replace:!0})},[t]),c=g.useCallback(d=>{t(f=>{const p=new URLSearchParams(f);return Las(p,d),p},{replace:!0})},[t]),u=g.useRef(!1);return g.useEffect(()=>{if(u.current||(u.current=!0,Pas(e)))return;const d=cFt();d&&t(f=>{const p=new URLSearchParams(f);for(const[h,m]of d)p.append(h,m);return p},{replace:!0})},[]),o.jsx(Has,{preset:r,filterTokens:a,onPresetChange:i,onFilterTokensChange:c,customRange:s,onCustomRangeChange:l,children:o.jsx(qis,{})})}function qis(){const[e]=va(),{error:t,isLoading:n}=fFt(),{filterTokens:r,setFilterTokens:s}=hG(),[a,i]=g.useState(),{data:l,isLoading:c}=U3(),u=l?.observabilityStorageType,d=u?Bis.has(u):!1,f=u==="ObservabilityInMemory",{data:p,isLoading:h}=BTe(),{data:m,isLoading:v}=LTe(),{data:y,isLoading:b}=FTe(),{data:S,isLoading:w}=zTe(),k=g.useMemo(()=>$as({availableTags:p??[],availableEntityNames:m??[],availableServiceNames:y??[],availableEnvironments:S??[],loading:{tags:h,entityNames:v,serviceNames:b,environments:w}}),[p,m,y,S,h,v,b,w]),[_,C]=g.useState(()=>cFt()!==null),E=g.useCallback(()=>{Aas(e),C(!0),De.success("Filters setting for Metrics saved")},[e]),j=g.useCallback(()=>{Ras(),C(!1),De.success("Filters setting for Metrics cleared up")},[]),T=g.useCallback(()=>{s([])},[s]),I=g.useCallback(()=>{const A=r.map(P=>{const L=k.find(D=>D.id===P.fieldId);return L?L.kind==="text"?{fieldId:P.fieldId,value:""}:L.kind==="pick-multi"?L.multi?{fieldId:P.fieldId,value:[]}:{fieldId:P.fieldId,value:"Any"}:L.kind==="multi-select"?{fieldId:P.fieldId,value:[]}:P:P});s(A)},[k,r,s]);return t&&gs(t)?o.jsx(lr,{children:o.jsx(Ws,{})}):t&&ys(t)?o.jsx(lr,{children:o.jsx(Ls,{resource:"metrics"})}):t?o.jsx(lr,{children:o.jsx(Bi,{title:"Failed to load metrics",message:t.message})}):o.jsxs(zt,{width:"wide",height:"full",children:[o.jsxs(zt.TopArea,{children:[o.jsx(zt.Row,{children:o.jsxs(zt.Column,{className:"flex flex-wrap items-start justify-start gap-2",children:[o.jsx(Qas,{}),o.jsx(PTe,{fields:k,tokens:r,onTokensChange:s,disabled:n,onStartTextFilter:i})]})}),o.jsx(wis,{isLoading:n,filterFields:k,filterTokens:r,onFilterTokensChange:s,onClear:I,onRemoveAll:T,onSave:E,onRemoveSaved:_?j:void 0,autoFocusFilterFieldId:a})]}),c?null:d?o.jsxs("div",{className:"grid gap-8 content-start pb-10",children:[f&&o.jsx(In,{variant:"info",title:"Metrics are not persisted",children:o.jsx(In.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(cye,{children:[o.jsx(gis,{}),o.jsx(vis,{}),o.jsx(yis,{}),o.jsx(bis,{}),o.jsx(xis,{})]}),o.jsxs(cye,{children:[o.jsx(_is,{}),o.jsx(Tis,{}),o.jsx(Dis,{}),o.jsx(dis,{}),o.jsx(Fis,{}),o.jsx(iis,{})]})]}):o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Cr,{iconSlot:o.jsx(Ef,{}),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(ce,{variant:"ghost",as:"a",href:"https://mastra.ai/docs/observability/metrics/overview",target:"_blank",rel:"noopener noreferrer",children:["Metrics Documentation ",o.jsx(_a,{})]})})})]})}function Vis(){const{paths:e}=yn(),{data:t,isLoading:n,error:r}=A9t(),{isCmsAvailable:s}=G1(),[a,i]=g.useState(""),l=t?.promptBlocks??[];return r&&gs(r)?o.jsx(lr,{children:o.jsx(Ws,{})}):r&&ys(r)?o.jsx(lr,{children:o.jsx(Ls,{resource:"prompt blocks"})}):r?o.jsx(lr,{children:o.jsx(Bi,{title:"Failed to load prompt blocks",message:r.message})}):l.length===0&&!n?o.jsx(lr,{children:o.jsx(fYr,{})}):o.jsxs(zt,{children:[o.jsx(zt.TopArea,{children:o.jsxs(zt.Row,{align:"center",stack:"responsive",children:[o.jsx("div",{className:"max-w-120 flex-1",children:o.jsx(Nf,{onSearch:i,label:"Filter prompts",placeholder:"Filter by name or description"})}),s&&o.jsxs(ce,{as:Da,to:e.cmsPromptBlockCreateLink(),variant:"primary",className:"shrink-0",children:[o.jsx(Hr,{}),"Create Prompt"]})]})}),o.jsx(dYr,{promptBlocks:l,isLoading:n,search:a})]})}function His(){return o.jsx(zt,{width:"narrow",children:o.jsx(zt.MainArea,{children:o.jsx(dqr,{children:o.jsx($ve,{})})})})}const Wis=[{title:"Mastra APIs",description:"Explore and test the available REST API endpoints with the interactive Swagger UI.",icon:Ldn,href:"/swagger-ui",external:!1},{title:"Documentation",description:"Read the official Mastra documentation for guides, references, and tutorials.",icon:Ict,href:"https://mastra.ai/en/docs",external:!0},{title:"Github",description:"Browse the source code, report issues, and contribute to the Mastra project.",icon:_a,href:"https://github.com/mastra-ai/mastra",external:!0},{title:"Community",description:"Join the Mastra Discord community for help, discussion, and collaboration.",icon:Kj,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:zct,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:Act,href:"https://mastra.ai/contact?ref=studio",external:!0}];function Zis(){return o.jsx(zt,{width:"narrow",children:o.jsx(zt.MainArea,{children:o.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4 max-w-3xl",children:Wis.map(e=>o.jsxs("a",{href:e.href,...e.external?{target:"_blank",rel:"noreferrer"}:{},className:"group flex flex-col gap-3 rounded-lg border border-border1 bg-surface2 p-5 transition-colors hover:border-accent1 hover:bg-surface3",children:[o.jsxs("div",{className:"flex items-center gap-2.5",children:[o.jsx(e.icon,{className:"h-5 w-5 text-icon3 group-hover:text-accent1 transition-colors"}),o.jsx("span",{className:"text-ui-md font-medium text-text1",children:e.title}),e.external&&o.jsx(_a,{className:"h-3.5 w-3.5 text-icon3 ml-auto opacity-0 group-hover:opacity-100 transition-opacity"})]}),o.jsx("p",{className:"text-ui-sm text-text3 leading-relaxed",children:e.description})]},e.href))})})})}function Gis(){const{data:e={},isLoading:t,error:n}=ah(),[r,s]=g.useState(""),[a,i]=g.useState("all");if(n&&gs(n))return o.jsx(lr,{children:o.jsx(Ws,{})});if(n&&ys(n))return o.jsx(lr,{children:o.jsx(Ls,{resource:"scorers"})});if(n)return o.jsx(lr,{children:o.jsx(Bi,{title:"Failed to load scorers",message:n.message})});if(Object.keys(e).length===0&&!t)return o.jsx(lr,{children:o.jsx(_Gr,{})});const l=a!=="all"||r!=="",c=()=>{s(""),i("all")};return o.jsxs(zt,{children:[o.jsx(zt.TopArea,{children:o.jsx(EGr,{search:r,onSearchChange:s,sourceFilter:a,onSourceFilterChange:i,onReset:c,hasActiveFilters:l})}),o.jsx(OGr,{scorers:e,isLoading:t,search:r,sourceFilter:a})]})}function Qis(){const{scorerId:e}=ur(),[t,n]=va(),r=t.get("scoreId")??void 0,[s,a]=g.useState(r),[i,l]=g.useState({value:"all",label:"All Entities",type:"ALL"}),{scorer:c,error:u}=tGr(e),{data:d={},isLoading:f,error:p}=Om(),{isLoading:h,error:m}=Fy(),{data:v=[],isLoading:y,error:b,isFetchingNextPage:S,hasNextPage:w,setEndOfListElement:k}=eGr({scorerId:e,entityId:i?.value==="all"?void 0:i?.value,entityType:i?.type==="ALL"?void 0:i?.type}),_=g.useMemo(()=>c?.agentIds?.filter(V=>d[V]).map(V=>({value:V,label:d[V].name,type:"AGENT"}))||[],[c?.agentIds,d]),C=g.useMemo(()=>c?.workflowIds?.map(V=>({value:V,label:V,type:"WORKFLOW"}))||[],[c?.workflowIds]),E=g.useMemo(()=>[{value:"all",label:"All Entities",type:"ALL"},..._,...C],[_,C]),j=t.get("entity")??"all",T=E.find(V=>V.value===j);T&&T.value!==i?.value&&l(T),g.useEffect(()=>{if(u){const V=u instanceof Error?u.message:"Failed to load scorer";De.error(`Error loading scorer: ${V}`)}},[u]),g.useEffect(()=>{if(p){const V=p instanceof Error?p.message:"Failed to load agents";De.error(`Error loading agents: ${V}`)}},[p]),g.useEffect(()=>{if(m){const V=m instanceof Error?m.message:"Failed to load workflows";De.error(`Error loading workflows: ${V}`)}},[m]);const I=V=>{V?.value&&n(M=>{const Q=new URLSearchParams(M);return Q.set("entity",V.value),Q})};g.useEffect(()=>{const V=t.get("scoreId")??void 0;if(V===s)return;if(!V){a(void 0);return}v.find(Q=>Q.id===V)&&a(V)},[t,v]);const A=g.useCallback(V=>{a(V||void 0),n(M=>{const Q=new URLSearchParams(M);return V?Q.set("scoreId",V):Q.delete("scoreId"),Q})},[n]);if(!c)return null;const P=gs(u)||gs(p)||gs(m),L=u&&ys(u),D=!P&&!L&&(u||p||m),q=!y&&v.length===0,H=i?.value!=="all",z=c?.scorer?.source==="stored"?o.jsx(Iy,{owner:"scorer-detail",children:o.jsxs(ce,{variant:"default",as:Da,to:`/cms/scorers/${e}/edit`,size:"sm",children:[o.jsx(am,{})," Edit"]})}):null;if(P||L||D||q&&!H){const V=(u instanceof Error?u.message:void 0)??(p instanceof Error?p.message:void 0)??(m instanceof Error?m.message:void 0)??"An unexpected error occurred";return o.jsxs(zt,{width:"wide",height:"full",children:[z,o.jsx(zt.MainArea,{isCentered:!0,children:P?o.jsx(Ws,{}):L?o.jsx(Ls,{resource:"scorers"}):D?o.jsx(Bi,{title:"Failed to load scorer",message:V}):o.jsx(QZr,{})})]})}return o.jsxs(zt,{width:"wide",children:[z,o.jsx(zt.TopArea,{children:o.jsx(YZr,{selectedEntity:i,entityOptions:E,onEntityChange:I,onReset:()=>{n(V=>{const M=new URLSearchParams(V);return M.set("entity","all"),M})},isLoading:y||f||h})}),o.jsx(GZr,{scores:v,isLoading:y,selectedScoreId:s,isFetchingNextPage:S,hasNextPage:w,setEndOfListElement:k,onScoreClick:A,errorMsg:b?.message})]})}function Yis({label:e,description:t,htmlFor:n,className:r,children:s}){return o.jsxs("div",{className:K("flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",r),"data-slot":"settings-row",children:[o.jsxs("div",{children:[n?o.jsx($t,{htmlFor:n,className:"text-sm font-medium",children:e}):o.jsx("p",{className:"text-sm font-medium",children:e}),t&&o.jsx("p",{className:"text-sm text-neutral3",children:t})]}),s]})}const gFt=[{value:"dark",label:"Dark",Icon:mpn},{value:"light",label:"Light",Icon:jhn},{value:"system",label:"System",Icon:Qct}],Xis=e=>gFt.some(t=>t.value===e);function Kis({option:e}){const{Icon:t}=e;return o.jsxs("span",{className:"inline-flex min-w-0 max-w-full 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 Jis=()=>{const{baseUrl:e,headers:t,apiPrefix:n}=lV(),{theme:r,setTheme:s}=j_();return o.jsx(zt,{width:"narrow",children:o.jsxs(zt.MainArea,{className:"flex flex-col gap-5 mt-6",children:[o.jsx(xge,{title:"Theme",description:"Customize the appearance of the studio.",children:o.jsx(Yis,{label:"Theme mode",htmlFor:"theme",children:o.jsxs(pa,{value:r,onValueChange:a=>{Xis(a)&&s(a)},children:[o.jsx(ma,{id:"theme",className:"w-full sm:w-48",children:o.jsx(ha,{className:"inline-flex min-w-0 max-w-full items-center"})}),o.jsx(ga,{children:gFt.map(a=>o.jsx(zr,{value:a.value,children:o.jsx(Kis,{option:a})},a.value))})]})})}),o.jsx(xge,{title:"Mastra Connection",description:"Configure the Mastra instance URL, API prefix, and request headers used by the studio.",children:o.jsx(Kjt,{initialConfig:{baseUrl:e,headers:t,apiPrefix:n}})})]})})};function eos(){const[e]=va(),t=bs(),n=e.get("redirect")||"/",r=()=>{n.startsWith("http")?window.location.href=n:t(n,{replace:!0})};return o.jsx(iFt,{redirectUri:n,onSuccess:r,initialMode:"signup"})}const vFt=e=>o.jsxs("svg",{width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:[o.jsx("g",{clipPath:"url(#clip0_21999_22095)",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"})}),o.jsx("defs",{children:o.jsx("clipPath",{id:"clip0_21999_22095",children:o.jsx("rect",{width:"14",height:"14",fill:"currentColor",transform:"translate(0.5 0.75)"})})})]});function tos(e){return e.replace(/\/$/,"").split("/").pop()}function mG({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 nos({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:"h-16 bg-surface3 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:"w-full h-full bg-cover thumb transition-scale 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:"hidden 2xl:flex text-neutral3 text-ui-md flex-wrap items-center gap-4 mt-3",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(il,{})," ",a.agents.length]}),a?.tools&&a.tools.length>0&&o.jsxs("li",{children:[o.jsx(Of,{})," ",a.tools.length]}),a?.networks&&a.networks.length>0&&o.jsxs("li",{children:[o.jsx(Yct,{})," ",a.networks.length]}),a?.workflows&&a.workflows.length>0&&o.jsxs("li",{children:[o.jsx(xD,{})," ",a.workflows.length]}),a?.mcp&&a.mcp.length>0&&o.jsxs("li",{children:[o.jsx(D_,{})," ",a.mcp.length]})]}),i&&a.supportedProviders&&o.jsx("small",{children:"|"}),o.jsx("div",{className:"flex items-center text-neutral3 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:"flex items-center gap-2 px-2 py-1 rounded bg-surface1 group-hover:bg-surface2 text-neutral3 transition-colors group-hover:text-neutral5",children:[o.jsx(vFt,{})," ",tos(a.githubUrl)]})})]},a.slug)})})}function ros({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(NT,{name:"search-templates",label:"Search templates",labelIsHidden:!0,value:i,onChange:f=>l?.(f.target.value),placeholder:"Search Template"}),o.jsx(Sc,{label:"Filter by tag",labelIsHidden:!0,name:"filter-tag",value:t,onValueChange:s,options:e}),o.jsx(Sc,{label:"Filter by provider",labelIsHidden:!0,name:"filter-provider",value:r,onValueChange:a,options:n}),c&&o.jsxs(ce,{onClick:c,children:["Reset ",o.jsx(vs,{})]})]})}function sos(){const{data:e,isLoading:t}=yKn(),{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(S=>{f.push({value:S,label:S})});const p=[{value:"all",label:"Any provider"}];(s||[]).forEach(S=>{p.push({value:S,label:S})});const h=(S,w)=>{w==="tag"?i(S):w==="provider"&&c(S)},m=S=>{d(S)},v=()=>{i("all"),c("all"),d("")},y=n.filter(S=>!(u&&!S.title.toLowerCase().includes(u)&&!S.description.toLowerCase().includes(u)||a!=="all"&&!S.tags.includes(a)||l!=="all"&&!S.supportedProviders.includes(l))),b=u||a!=="all"||l!=="all";return o.jsxs(cs,{children:[o.jsx(k0e,{children:o.jsxs(Vht,{children:[o.jsx(Ue,{children:o.jsx(Gv,{})}),"Templates"]})}),o.jsxs("div",{className:K("overflow-y-auto w-full h-full px-8 pb-12 z-10"),children:[o.jsx(ros,{selectedTag:a,onTagChange:S=>h(S,"tag"),tagOptions:f,selectedProvider:l,onProviderChange:S=>h(S,"provider"),providerOptions:p,searchTerm:u,onSearchChange:m,onReset:b?v:void 0,className:"max-w-[80rem]",isLoading:t}),o.jsx(nos,{templates:y,linkComponent:Da,className:"max-w-[80rem] mx-auto",isLoading:t})]})]})}const aos="1.51.0-alpha.9";function ios({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(Tp,{className:"text-yellow-500"}),title:"Template Installed with Warnings"}:{icon:o.jsx(pfn,{}),title:"Template Installation Failed"},{icon:l,title:c}=i();return o.jsxs(mG,{className:"space-y-4 text-neutral3 mb-8 content-center",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:"text-center space-y-2",children:[o.jsx("p",{className:"text-ui-md font-medium text-neutral5",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:"cursor-pointer text-neutral3 hover:text-neutral4 select-none text-center",children:["Show Validation Issues (",t.length,")"]}),o.jsx("div",{className:"mt-4 p-3 bg-gray-100 dark:bg-gray-800 rounded text-xs overflow-auto max-h-60 text-left space-y-2",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:"text-xs font-mono text-gray-700 dark:text-gray-300 mt-1 whitespace-pre-wrap wrap-break-word",children:u.message})]},d))})]}),n&&!s&&o.jsxs("details",{className:"text-xs",children:[o.jsx("summary",{className:"cursor-pointer text-neutral3 hover:text-neutral4 select-none text-center",children:"Show Details"}),o.jsx("div",{className:"mt-4 p-3 bg-gray-100 dark:bg-gray-800 rounded text-xs font-mono overflow-auto max-h-60 text-left",children:o.jsx("div",{className:"whitespace-pre-wrap wrap-break-word",children:n})})]})]})}function oos({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(mG,{children:o.jsxs("div",{className:"max-w-[40rem] my-4 p-4 lg:p-8 mx-auto gap-8 grid",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(Xct,{})]}),o.jsx(Sc,{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] gap-4 items-start",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(gO,{name:`env-${p}`,labelIsHidden:!0,label:"Key",value:p,disabled:!0,className:"w-full"}),o.jsx(gO,{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-t border-border1 pt-12 mt-3.5 relative",children:[o.jsx("div",{className:"absolute w-8 h-8 rounded-full bg-surface2 top-0 left-1/2 -translate-x-1/2 -translate-y-4 text-ui-sm text-neutral3 flex items-center justify-center",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(c9t,{defaultProvider:u||"",defaultModel:d||"",updateModel:f||(()=>Promise.resolve({message:"Updated"})),closeEditor:()=>{},autoSave:!0,selectProviderPlaceholder:"Provider"})]})]}),t&&!l&&o.jsx(ce,{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:"w-4 h-4"})," Installing..."]}):o.jsxs(o.Fragment,{children:["Install ",o.jsx(vm,{})]})})]})})}function los({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(Gv,{}),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 lg:grid-cols-[1fr_1fr] gap-x-24",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:"shrink-0 mt-0.5",children:o.jsx(zx,{className:"w-[1.1em] h-[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(Nbe,{className:"w-[1em] h-[1em] text-neutral4"}),o.jsx("span",{className:"text-ui-md font-medium text-neutral5",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 px-1.5 py-0.5 rounded text-ui-sm 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:"flex items-center gap-2 mt-auto text-neutral3 text-ui-md hover:text-neutral5",children:[o.jsx(vFt,{}),n?.split("/")?.pop()]})]}),s&&o.jsx(fTe,{data:s,labelsAreHidden:!0,isLoading:r})]})]})}function cos(e){switch(e){case"running":return o.jsx(Qt,{});case"success":return o.jsx(gx,{});case"failed":return o.jsx(Hu,{});default:return null}}function uos({stepId:e,step:t,isActive:n,position:r}){const s=a=>a.charAt(0).toUpperCase()+a.slice(1).replace(/-/g," ");return o.jsxs("div",{className:K("grid grid-cols-[1fr_auto] gap-6 rounded-lg px-4 py-3",ms.all,{"border border-dashed border-neutral2 bg-surface3":n}),children:[o.jsxs("div",{className:"grid grid-cols-[auto_1fr] gap-2",children:[o.jsxs("span",{className:K("flex min-w-6 justify-end text-ui-md",ms.colors,{"text-neutral5":n||t.status==="success","text-neutral3":!n&&t.status!=="success"}),children:[r,"."]}),o.jsxs("div",{children:[o.jsx("h4",{className:K("text-ui-md",ms.colors,{"text-neutral5":n||t.status==="success","text-neutral3":!n&&t.status!=="success"}),children:s(e)}),t.description&&o.jsx("p",{className:"-mt-0.5 text-ui-md text-neutral2",children:t.description})]})]}),o.jsx("div",{className:K("flex size-[1.75rem] items-center justify-center self-center rounded-full",ms.all,{"border border-neutral2 border-dashed":t.status==="pending","[&>svg]:text-white [&>svg]:w-4 [&>svg]:h-4":t.status!=="running","w-[1.75rem] h-[1.75rem]":t.status==="running","bg-accent1Dark shadow-glow-accent1":t.status==="success","bg-accent2Dark shadow-glow-accent2":t.status==="failed","scale-110":t.status==="success"||t.status==="failed"}),children:cos(t.status)})]})}function dos({currentStep:e,steps:t=[],className:n}){return o.jsx("div",{className:K(n),children:t.map((r,s)=>o.jsx(uos,{stepId:r.id,step:r,isActive:e?.id===r.id,position:s+1},r.id))})}function fos({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",ms.colors,{"bg-accent1Dark":r.status==="success"&&e?.[s-1]?.status==="success"}),children:o.jsx("div",{className:K("absolute right-0 z-10 flex size-[2rem] translate-x-[50%] items-center justify-center self-center rounded-full bg-surface3 text-ui-sm font-bold text-neutral3",ms.all,{"border border-neutral2 border-dashed":r.status==="pending","[&>svg]:text-surface1 [&>svg]:w-[1.1rem] [&>svg]:h-[1.1rem]":r.status!=="running","bg-accent1Dark text-white shadow-glow-accent1 scale-110":r.status==="success","bg-accent2Dark text-white 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",ms.colors),children:[n," of ",t," steps completed"]})]})}function pos({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(mG,{className:"space-y-6 text-neutral3 mb-8 content-center",children:[o.jsxs("div",{className:"text-center",children:[o.jsx("h3",{className:"text-lg font-semibold text-neutral5",children:h()}),(t?.runId||n)&&o.jsxs("div",{className:"mt-2 text-ui-sm text-neutral3",children:["Run ID: ",t?.runId??n]})]}),u&&p>0&&!["error"].includes(s)&&o.jsx("div",{className:"max-w-[30rem] w-full mx-auto px-6",children:o.jsx(fos,{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(_pn,{}),l||"Something went wrong"]}),u&&o.jsx(dos,{steps:m,currentStep:i,className:"pb-4"}),!u&&s==="initializing"&&o.jsxs("div",{className:"text-center text-sm text-neutral3 grid gap-4 justify-items-center",children:[o.jsx(Qt,{}),o.jsx("p",{children:"This may take some time..."})]})]})}function hos({name:e,installedEntities:t}){return o.jsxs(mG,{className:K("grid items-center justify-items-center gap-4 content-center","[&>svg]:w-8 [&>svg]:h-8"),children:[o.jsx(Xct,{}),o.jsx("h2",{className:"text-header-md",children:"Done!"}),o.jsxs("p",{className:"text-ui-md text-center text-neutral3 ",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(fTe,{data:t})]})}function mos(){const{templateSlug:e}=ur(),[t,n]=va(),[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,S]=g.useState(""),[w,k]=g.useState(!1),[_,C]=g.useState(!1),[E,j]=g.useState([]),{data:T,isLoading:I}=bKn({repoOrSlug:e,owner:"mastra-ai"}),P=aos?.includes("beta")??!1?"beta":"main",{data:L,isLoading:D}=xKn({repo:T?.githubUrl?new URL(T.githubUrl).pathname.split("/")[2]:`template-${e}`,owner:"mastra-ai",branch:P}),{data:q,isLoading:H}=wKn(),{mutateAsync:z,isPending:B}=SKn(),{mutateAsync:V}=kKn(),{streamInstall:M,streamResult:Q,isStreaming:U}=_Kn(q),{observeInstall:$,streamResult:F,isStreaming:Z}=CKn(q);g.useEffect(()=>{const ne=t.get("runId");ne&&!v&&!h&&!U&&!Z&&(console.info("🔄 Checking completed run after hot reload:",{runId:ne}),S(ne),V({runId:ne}).then(ue=>{const fe=ue.snapshot;if(fe?.status==="success"&&fe?.result?.success)y(!0);else if(fe?.result?.success===!1)if(fe?.result?.validationResults&&!fe?.result?.validationResults?.valid&&fe?.result?.validationResults?.remainingErrors>0){const{remainingErrors:me,errors:be}=fe.result.validationResults,we=`Template installation completed but ${me} validation issue${me>1?"s":""} remain unresolved.`;m(we),j(be||[])}else{const me=fe?.result?.message||fe?.result?.error||"Template installation failed";m(typeof me=="string"?me:String(me))}}).catch(ue=>{console.error("❌ Failed to fetch run details:",ue),m("Failed to retrieve installation status after reload")}))},[t,v,h,U,Z,V]),g.useEffect(()=>{const ne=t.get("runId"),ue=t.get("resume"),fe=t.get("provider");if(ne&&ue==="true"&&fe&&!U&&!Z&&!w&&!_&&q){S(ne),k(!0);try{V({runId:ne}).then(oe=>{if(oe.snapshot?.status==="running")return $.mutateAsync({runId:ne})}).then(()=>{n(oe=>{const me=new URLSearchParams(oe);return me.delete("resume"),me})}).catch(oe=>{console.error("❌ Failed to resume template installation:",oe),oe.message?.includes("404")||oe.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(oe){console.error("❌ Auto-resume failed with error:",oe),m("Failed to resume template installation. Please refresh and try again.")}}},[t,e,U,Z,w,_,q,V,$,n]);const X=[{value:"openai",label:"OpenAI"},{value:"anthropic",label:"Anthropic"},{value:"groq",label:"Groq"},{value:"google",label:"Google"}],te=[{key:"tools",label:"Tools",value:T?.tools?.length?T.tools.map(ne=>ne).join(", "):"n/a",icon:o.jsx(Of,{})},{key:"agents",label:"Agents",value:T?.agents?.length?T.agents.map(ne=>ne).join(", "):"n/a",icon:o.jsx(il,{})},{key:"workflows",label:"Workflows",value:T?.workflows?.length?T.workflows.map(ne=>ne).join(", "):"n/a",icon:o.jsx(xD,{})},{key:"providers",label:"Providers",value:T?.supportedProviders?.length?T.supportedProviders.join(", "):"n/a",icon:o.jsx(Pv,{})},{key:"tags",label:"Tags",value:T?.tags?.length?T.tags.join(", "):"n/a",icon:o.jsx(kN,{})}],ee=[{...te[0]},{...te[1]},{...te[2]}].filter(ne=>ne.value!=="n/a");g.useEffect(()=>{L&&d(L)},[L]),g.useEffect(()=>{const ne=Q||F;ne?.phase==="error"&&ne?.error&&m(typeof ne.error=="string"?ne.error:String(ne.error))},[Q?.phase,Q?.error,F?.phase,F?.error]);const J=ne=>{s(ne)},ae=async ne=>(i(ne.provider),c(ne.modelId),{message:"Model updated successfully"}),pe=async()=>{const ne=Object.entries(u).reduce((ue,[fe,oe])=>(oe===""&&ue.push(fe),ue),[]);if(ne.length>0){p(ne);return}if(T){m(null),y(!1),S(""),C(!0);try{const fe={repo:T.githubUrl||`https://github.com/mastra-ai/template-${T.slug}`,ref:P,slug:T.slug,variables:u},{runId:oe}=await z({});S(oe),n(me=>{const be=new URLSearchParams(me);return be.set("runId",oe),be.set("resume","true"),be.set("provider",r||"openai"),be}),await M.mutateAsync({inputData:fe,selectedModel:{provider:a,modelId:l},runId:oe})}catch(ue){C(!1),m(ue?.message||"Template installation failed"),console.error("Template installation failed",ue)}}},Y=ne=>{const{name:ue,value:fe}=ne.target;fe.trim()===""?p(oe=>[...oe,ue]):p(oe=>oe.filter(me=>me!==ue)),d(oe=>({...oe,[ue]:fe}))};return o.jsx(cs,{children:o.jsx("div",{className:K("w-full lg:px-12 h-full overflow-y-scroll"),children:o.jsxs("div",{className:"p-6 w-full max-w-[80rem] mx-auto grid gap-y-4",children:[o.jsx(los,{isLoading:I,title:T?.title,description:T?.longDescription,imageURL:T?.imageURL,githubUrl:T?.githubUrl,infoData:te,templateSlug:e}),T&&o.jsxs(o.Fragment,{children:[(U||Z)&&o.jsx(pos,{name:T.title,streamResult:Z?F:Q,runId:b,workflowInfo:q}),v&&o.jsx(hos,{name:T.title,installedEntities:ee,linkComponent:Da}),h&&o.jsx(ios,{errorMsg:h,validationErrors:E.length>0?E:Q?.validationResults?.errors||F?.validationResults?.errors}),!U&&!Z&&!v&&!h&&o.jsx(oos,{providerOptions:X,selectedProvider:r,onProviderChange:J,variables:u,setVariables:d,errors:f,setErrors:p,handleInstallTemplate:pe,handleVariableChange:Y,isLoadingEnvVars:D||H,isInstalling:B,defaultModelProvider:a,defaultModelId:l,onModelUpdate:ae})]})]})})})}const gos=()=>{const{toolId:e,agentId:t}=ur();return o.jsx("div",{className:"h-full w-full overflow-y-auto",children:o.jsx(TQr,{toolId:e,agentId:t})})},vos=()=>{const{toolId:e}=ur();return o.jsx("div",{className:"h-full w-full overflow-y-hidden",children:o.jsx(Sas,{toolId:e})})};function yos(){const{traceId:e}=ur(),[t,n]=va(),r=bs(),s=t.get("spanId")||void 0,a=t.get("tab"),i=a==="scoring"?"scoring":a==="feedback"?"feedback":"details",l=t.get("scoreId")||void 0,[c,u]=g.useState(s??null),[d,f]=g.useState(),[p,h]=g.useState(i),[m,v]=g.useState(0),[y,b]=g.useState(!1),{data:S,isLoading:w,error:k}=mH(e),_=g.useMemo(()=>S?.spans??[],[S?.spans]),C=g.useMemo(()=>_.find(ae=>ae.parentSpanId==null),[_]),{data:E,isLoading:j}=ZN(e,c??"");g.useEffect(()=>v(0),[e,c]);const{data:T,isLoading:I}=ah(),{data:A,isLoading:P}=E9t({traceId:e,spanId:c??void 0,page:m}),[L,D]=g.useState(0);g.useEffect(()=>D(0),[e,c]);const{data:q,isLoading:H}=Qzt({traceId:e,page:L});g.useEffect(()=>{if(l&&A?.scores&&!d){const ae=A.scores.find(pe=>pe.id===l);ae&&f(ae)}},[l,A?.scores,d]);const z=g.useCallback(ae=>{const pe=new URLSearchParams(t);for(const[Y,ne]of Object.entries(ae))ne===null||ne===""?pe.delete(Y):pe.set(Y,ne);n(pe,{replace:!0})},[t,n]),B=g.useCallback(ae=>{const pe=ae??null,Y=pe===c;u(pe),Y||(f(void 0),h("details"),z({spanId:pe,tab:null,scoreId:null}))},[c,z]),V=g.useCallback(()=>{u(null),f(void 0),h("details"),z({spanId:null,tab:null,scoreId:null})},[z]),M=g.useCallback(ae=>{u(ae),f(void 0),h("details"),z({spanId:ae,tab:null,scoreId:null})},[z]),{handlePreviousSpan:Q,handleNextSpan:U}=gH(_,c,M),$=g.useCallback(ae=>{const pe=ae;h(pe),f(void 0),z({tab:pe==="details"?null:pe,scoreId:null})},[z]),F=g.useCallback(ae=>{f(ae),z({scoreId:ae.id})},[z]),Z=g.useCallback(()=>{f(void 0),z({scoreId:null})},[z]),X=g.useCallback(()=>{r("/observability")},[r]),te=g.useCallback(()=>{h("scoring"),C&&c!==C.spanId?(u(C.spanId),f(void 0),z({spanId:C.spanId,tab:"scoring",scoreId:null})):z({tab:"scoring"})},[C,c,z]),ee=C?o.jsx(Iy,{owner:"trace-detail",children:o.jsxs(Dr,{children:[o.jsxs(ce,{tooltip:"Evaluate Trace","aria-label":"Evaluate Trace",onClick:te,children:[o.jsx(sdn,{}),"Evaluate"]}),o.jsxs(ce,{tooltip:"Save as Dataset Item","aria-label":"Save as Dataset Item",onClick:()=>b(!0),children:[o.jsx(kd,{}),"Save"]})]})}):null,J=C?o.jsx(zt.Row,{children:o.jsx(zt.Column,{children:o.jsx(Lzt,{rootSpan:C,numOfCol:3})})}):null;return k?o.jsxs(zt,{height:"full",children:[ee,J&&o.jsx(zt.TopArea,{children:J}),o.jsx(zt.MainArea,{isCentered:!0,children:o.jsx(zzt,{error:k,resource:"traces",errorTitle:"Failed to load trace"})})]}):o.jsxs(zt,{children:[ee,J&&o.jsx(zt.TopArea,{children:J}),o.jsx(Vzt,{rootSpanId:C?.spanId,traceId:e,isOpen:y,onClose:()=>b(!1)}),o.jsxs("div",{className:K("grid h-full min-h-0 gap-4 overflow-hidden items-start mt-4",c?"grid-cols-[2fr_3fr]":"grid-cols-[1fr]"),children:[o.jsx($Te,{traceId:e,spans:_,isLoading:w,onClose:X,onSpanSelect:B,onEvaluateTrace:te,initialSpanId:c,placement:"trace-page",timelineChartWidth:c?"default":"wide"}),c&&!w&&o.jsxs("div",{className:K("grid gap-4 max-h-full min-h-0 overflow-auto",d?"grid-rows-[1fr_1fr]":"grid-rows-[1fr]"),children:[o.jsx(hH,{traceId:e,spanId:c,span:E?.span,isLoading:j,onClose:V,onPrevious:Q,onNext:U,activeTab:p,onTabChange:$,feedbackTabBadge:q?.pagination?.total??void 0,feedbackTabSlot:()=>o.jsx(Wzt,{feedbackData:q,onPageChange:D,isLoadingFeedbackData:H}),scoringTabBadge:A?.pagination?.total??void 0,scoringTabSlot:({span:ae,traceId:pe,spanId:Y})=>o.jsxs("div",{className:"grid gap-6",children:[o.jsx(Gzt,{traceId:pe,isTopLevelSpan:!ae.parentSpanId,spanId:Y,entityType:ae.attributes?.agentId||ae.entityType===Os.AGENT?"Agent":ae.attributes?.workflowId||ae.entityType===Os.WORKFLOW_RUN?"Workflow":void 0,scorers:T,isLoadingScorers:I}),o.jsx(Zzt,{scoresData:A,onPageChange:v,isLoadingScoresData:P,onScoreSelect:F})]})}),d&&o.jsx(dTe,{score:d,onClose:Z})]})]})]})}function bos(){const{data:e,isLoading:t,error:n}=Fy(),[r,s]=g.useState("");return n&&gs(n)?o.jsx(lr,{children:o.jsx(Ws,{})}):n&&ys(n)?o.jsx(lr,{children:o.jsx(Ls,{resource:"workflows"})}):n?o.jsx(lr,{children:o.jsx(Bi,{title:"Failed to load workflows",message:n.message})}):Object.keys(e||{}).length===0&&!t?o.jsx(lr,{children:o.jsx(L4r,{})}):o.jsxs(zt,{children:[o.jsx(zt.TopArea,{children:o.jsxs(zt.Row,{align:"center",stack:"responsive",children:[o.jsx("div",{className:"max-w-120 flex-1",children:o.jsx(Nf,{onSearch:s,label:"Filter workflows",placeholder:"Filter by name or description"})}),o.jsxs(ce,{as:Da,to:"/workflows/schedules",variant:"primary",className:"shrink-0",children:[o.jsx(vD,{}),"Schedules"]})]})}),o.jsx(D4r,{workflows:e||{},isLoading:t,search:r})]})}const xos={active:"bg-accent1",paused:"bg-accent3"},wos={active:"text-accent1",paused:"text-accent3"},yFt=({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 ${xos[e]}`,"aria-hidden":!0}),o.jsx("span",{className:`text-ui-sm ${wos[e]}`,children:e})]}),Uj=e=>!e||e<=0?"—":new Date(e).toLocaleString(),pP=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 bFt({status:e}){const{icon:t,color:n}=Sos(e);return o.jsxs("span",{className:`inline-flex items-center gap-1.5 whitespace-nowrap text-ui-sm ${n}`,children:[o.jsx("span",{className:"inline-flex shrink-0 items-center","aria-hidden":!0,children:t}),o.jsx("span",{children:e})]})}function Sos(e){switch(e){case"success":return{icon:o.jsx(ra,{size:14}),color:"text-accent1"};case"failed":return{icon:o.jsx(vs,{size:14}),color:"text-accent2"};case"running":return{icon:o.jsx(Qt,{}),color:"text-neutral3"};case"suspended":return{icon:o.jsx(yq,{size:14}),color:"text-accent3"};case"canceled":return{icon:o.jsx(Ef,{size:14}),color:"text-neutral3"};case"pending":case"waiting":return{icon:o.jsx(Xj,{size:14}),color:"text-neutral3"};default:return{icon:null,color:"text-neutral3"}}}const $Ye="auto auto auto auto 1fr";function kos(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 Oos(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 _os=3e4,Cos=5*6e4;function Eos({triggers:e,isLoading:t,workflowId:n,hasNextPage:r,isFetchingNextPage:s,setEndOfListElement:a}){const{Link:i,paths:l}=yn();return t?o.jsx(rl,{columns:$Ye}):e.length===0?o.jsx(ye,{variant:"ui-md",className:"text-neutral4 p-4",children:"No trigger history yet."}):o.jsxs(ve,{columns:$Ye,className:"min-w-0",children:[o.jsxs(ve.Top,{children:[o.jsx(ve.TopCell,{children:"Run"}),o.jsx(ve.TopCell,{children:"Status"}),o.jsx(ve.TopCell,{children:"Started"}),o.jsx(ve.TopCell,{children:"Duration"}),o.jsx(ve.TopCell,{children:" "})]}),e.map(c=>{const u=c.actualFireAt-c.scheduledFireAt,d=Oos(u),f=`Scheduled ${Uj(c.scheduledFireAt)} — published ${Uj(c.actualFireAt)} (drift ${d})`,p=c.outcome==="failed",h=p?c.error:c.run?.error,m=Math.abs(u),v=!p&&m>_os&&m<=Cos,y=`${c.scheduleId}-${c.runId}-${c.actualFireAt}`,b=!!(n&&c.runId&&!p),S=o.jsx("span",{className:b?"text-accent1 font-mono text-ui-sm whitespace-nowrap":"text-neutral3 font-mono text-ui-sm whitespace-nowrap",children:c.runId}),w=o.jsxs(o.Fragment,{children:[o.jsx(ve.Cell,{height:"compact",children:S}),o.jsx(ve.Cell,{height:"compact",children:o.jsxs("span",{className:"inline-flex items-center gap-2",children:[p?o.jsxs("span",{className:"inline-flex items-center gap-1.5 whitespace-nowrap text-ui-sm text-accent2",children:[o.jsx(Tp,{size:14}),"publish failed"]}):c.run?o.jsx(bFt,{status:c.run.status}):o.jsx("span",{className:"inline-flex items-center gap-1.5 whitespace-nowrap text-ui-sm text-neutral3",children:"pending"}),h?o.jsxs(Un,{children:[o.jsx(Dn,{asChild:!0,children:o.jsx("span",{className:"text-accent2 inline-flex",children:o.jsx(Tp,{size:14})})}),o.jsx(Ln,{children:h})]}):null]})}),o.jsx(ve.Cell,{height:"compact",children:o.jsxs("span",{className:"inline-flex items-center gap-2 whitespace-nowrap",children:[o.jsx("span",{title:f,children:pP(c.actualFireAt)}),v?o.jsxs(Un,{children:[o.jsx(Dn,{asChild:!0,children:o.jsx("span",{className:"text-accent3 inline-flex",children:o.jsx(Tp,{size:14})})}),o.jsxs(Ln,{children:["Published ",d," after the scheduled fire time"]})]}):null]})}),o.jsx(ve.Cell,{height:"compact",children:c.run?o.jsx("span",{children:kos(c.run.durationMs)}):o.jsx("span",{className:"text-neutral4",children:"—"})}),o.jsx(ve.Cell,{height:"compact",children:" "})]});return b?o.jsx(ve.RowLink,{to:l.workflowRunLink(n,c.runId),LinkComponent:i,children:w},y):o.jsx(ve.RowStatic,{children:w},y)}),o.jsx(ve.NextPageLoading,{isLoading:s,hasMore:r,setEndOfListElement:a})]})}const jos=e=>{const t=We();return St({queryKey:["schedule",e],enabled:!!e,queryFn:async()=>{if(!e)throw new Error("scheduleId is required");return t.getSchedule(e)}})},MYe=25,Tos=e=>{const t=We(),{inView:n,setRef:r}=R_(),s=$1({queryKey:["schedule-triggers",e],enabled:!!e,initialPageParam:void 0,queryFn:async({pageParam:u})=>e?t.listScheduleTriggers(e,{limit:MYe,toActualFireAt:u}):{triggers:[]},getNextPageParam:u=>{if(!(!u?.triggers?.length||u.triggers.length<MYe))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}},Nos=e=>{const t=We(),n=Br();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"]}),De.success(s==="pause"?"Schedule paused":"Schedule resumed")},onError:r=>{De.error(r.message)}})};function gz({label:e,children:t}){return o.jsxs("div",{className:"flex flex-col gap-1",children:[o.jsx(ye,{variant:"ui-xs",className:"text-neutral4 uppercase tracking-wide",children:e}),o.jsx("div",{className:"text-ui-md",children:t})]})}function Ios(){const{scheduleId:e}=ur(),{paths:t}=yn(),{data:n,error:r}=jos(e),{data:s,isLoading:a,error:i,hasNextPage:l,isFetchingNextPage:c,setEndOfListElement:u}=Tos(e),d=Nos(e);if(r&&gs(r))return o.jsx(lr,{children:o.jsx(Ws,{})});if(r&&ys(r))return o.jsx(lr,{children:o.jsx(Ls,{resource:"schedules"})});if(r)return o.jsx(lr,{children:o.jsx(Bi,{title:"Failed to load schedule",message:r.message})});const f=n?.workflowId,p=n?.agentId;return o.jsxs(zt,{children:[o.jsx(zt.TopArea,{children:o.jsx(zt.Row,{className:"justify-end",children:o.jsxs(zt.Column,{className:"flex justify-end gap-2",children:[o.jsxs(ce,{as:Da,to:t.schedulesLink(),variant:"ghost",children:[o.jsx(Nc,{}),"Back to schedules"]}),f?o.jsx(ce,{as:Da,to:t.workflowLink(f),variant:"ghost",children:"Open workflow"}):null,n?o.jsx(ce,{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(Kct,{}),"Pause"]}):o.jsxs(o.Fragment,{children:[o.jsx(zp,{}),"Resume"]})}):null]})})}),n?o.jsxs("div",{className:"grid gap-6 h-full overflow-hidden grid-cols-[minmax(0,20rem)_1fr]",children:[o.jsxs("div",{className:"flex flex-col gap-4 border border-border1 rounded-md p-4 h-fit",children:[o.jsx(gz,{label:p?"Agent":"Workflow",children:f?o.jsx(Da,{to:t.workflowLink(f),className:"text-accent1 hover:underline",children:f}):p?o.jsx(Da,{to:t.agentLink(p),className:"text-accent1 hover:underline",children:p}):"—"}),o.jsxs(gz,{label:"Cron",children:[o.jsx("code",{className:"font-mono text-ui-md",children:n.cron}),n.timezone?o.jsx("span",{className:"text-neutral4 ml-2 text-ui-sm",children:n.timezone}):null]}),o.jsx(gz,{label:"Status",children:o.jsx(yFt,{status:n.status})}),o.jsx(gz,{label:"Next fire",children:o.jsx("span",{title:Uj(n.nextFireAt),children:pP(n.nextFireAt)})})]}),o.jsxs("div",{className:"overflow-y-auto","data-testid":"schedule-triggers-panel",children:[o.jsx(ye,{variant:"ui-md",className:"mb-3",children:"Trigger history"}),i?o.jsx(Bi,{title:"Failed to load trigger history",message:i.message}):o.jsx(Eos,{triggers:s??[],isLoading:a,workflowId:f,hasNextPage:l,isFetchingNextPage:c,setEndOfListElement:u})]})]}):null]})}const DYe="minmax(0, 1.2fr) minmax(0, 1.4fr) minmax(0, 1fr) auto auto auto";function Aos({schedules:e,isLoading:t,search:n=""}){const{paths:r,Link:s}=yn(),a=g.useMemo(()=>{const i=n.toLowerCase();return i?e.filter(l=>l.id.toLowerCase().includes(i)||(l.workflowId??l.agentId??"").toLowerCase().includes(i)):e},[e,n]);return t?o.jsx(rl,{columns:DYe}):o.jsxs(ve,{columns:DYe,variant:"striped",className:"min-w-0",children:[o.jsxs(ve.Top,{children:[o.jsx(ve.TopCell,{children:"Target"}),o.jsx(ve.TopCell,{children:"Schedule ID"}),o.jsx(ve.TopCell,{children:"Cron"}),o.jsx(ve.TopCell,{children:"Status"}),o.jsx(ve.TopCell,{children:"Next fire"}),o.jsx(ve.TopCell,{children:"Last run"})]}),a.length===0&&n?o.jsx(ve.NoMatch,{message:"No schedules match your search"}):null,a.length===0&&!n?o.jsx(ve.NoMatch,{message:"No schedules configured"}):null,a.map(i=>o.jsxs(ve.RowLink,{to:r.scheduleLink(i.id),LinkComponent:s,children:[o.jsx(ve.NameCell,{children:i.workflowId??i.agentId}),o.jsx(ve.Cell,{height:"compact",className:"min-w-0",children:o.jsx("span",{className:"block truncate font-mono text-ui-smd text-neutral3",title:i.id,children:i.id})}),o.jsx(ve.Cell,{height:"compact",children:o.jsxs("span",{className:"inline-flex items-center gap-2 whitespace-nowrap",children:[o.jsx("code",{className:"font-mono text-ui-sm",children:i.cron}),i.timezone?o.jsx("span",{className:"text-neutral4 text-ui-xs",children:i.timezone}):null]})}),o.jsx(ve.Cell,{height:"compact",children:o.jsx(yFt,{status:i.status})}),o.jsx(ve.Cell,{height:"compact",children:o.jsx("span",{className:"whitespace-nowrap",title:Uj(i.nextFireAt),children:pP(i.nextFireAt)})}),o.jsx(ve.Cell,{height:"compact",children:i.lastRun?o.jsxs("span",{className:"inline-flex items-center gap-2 whitespace-nowrap",children:[o.jsx(bFt,{status:i.lastRun.status}),o.jsx("span",{className:"text-neutral4 text-ui-sm",title:Uj(i.lastFireAt),children:i.lastFireAt?pP(i.lastFireAt):""})]}):i.lastFireAt?o.jsx("span",{className:"whitespace-nowrap",title:Uj(i.lastFireAt),children:pP(i.lastFireAt)}):o.jsx("span",{className:"text-neutral4",children:"Never"})})]},i.id))]})}function Ros({workflowId:e}={}){const{data:t,isLoading:n,error:r}=w0e(e?{workflowId:e}:{}),[s,a]=g.useState("");return r?o.jsx(Bi,{title:"Failed to load schedules",message:r.message}):o.jsxs("div",{className:"grid grid-rows-[auto_1fr] gap-4 h-full overflow-hidden",children:[o.jsx("div",{className:"max-w-120",children:o.jsx(Nf,{onSearch:a,label:"Filter schedules",placeholder:"Filter by id or workflow"})}),o.jsx("div",{className:"overflow-y-auto",children:o.jsx(Aos,{schedules:t??[],isLoading:n,search:s})})]})}function Pos(){const[e]=va(),t=e.get("workflowId")??void 0,{error:n}=w0e(t?{workflowId:t}:{});return n&&gs(n)?o.jsx(lr,{children:o.jsx(Ws,{})}):n&&ys(n)?o.jsx(lr,{children:o.jsx(Ls,{resource:"schedules"})}):o.jsx(zt,{children:o.jsx("div",{className:"h-full",children:o.jsx(Ros,{workflowId:t})})})}function $os({stepGraph:e,open:t,workflowName:n}){const{nodes:r,edges:s}=J1e({stepGraph:e}),[a,i]=g.useState(!1),[l,c,u]=k1t(r),[d]=O1t(s),{edgeTypes:f,nodeTypes:p,styledEdges:h}=e$t({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:"w-full h-full relative bg-surface1",children:a?o.jsxs(S1t,{nodes:l,edges:h,edgeTypes:f,fitView:!0,fitViewOptions:{maxZoom:1},minZoom:.01,maxZoom:1,nodeTypes:p,onNodesChange:u,children:[o.jsx(vCe,{position:"bottom-left"}),o.jsx(C1t,{variant:ty.Lines,gap:12,size:.5})]}):o.jsx("div",{className:"w-full h-full flex items-center justify-center",children:o.jsx(Qt,{})})})}function Mos(){const{stepDetail:e,closeStepDetail:t}=sH();return e?o.jsxs("div",{className:"flex flex-col h-full","data-testid":"workflow-step-detail-panel",children:[o.jsxs("div",{className:"flex items-center justify-between px-4 py-3 border-b border-border1 bg-surface1",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[e.type==="map-config"&&o.jsx(xfe,{className:"w-4 h-4",style:{color:Nu.map}}),e.type==="nested-graph"&&o.jsx(Pd,{className:"w-4 h-4",style:{color:Nu.workflow}}),o.jsxs("div",{className:"flex flex-col",children:[o.jsx(ye,{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(ye,{variant:"ui-xs",className:"text-neutral3",children:e.stepId})]})]}),o.jsx("button",{onClick:t,className:"p-1 hover:bg-surface3 rounded transition-colors","aria-label":"Close",children:o.jsx(vs,{className:"w-4 h-4 text-neutral3"})})]}),o.jsxs("div",{className:"flex-1 overflow-auto",children:[e.type==="map-config"&&e.mapConfig&&o.jsx(lP,{data:e.mapConfig}),e.type==="nested-graph"&&e.nestedGraph&&o.jsx("div",{className:"h-full min-h-[400px]",children:o.jsx(K1e,{children:o.jsx($os,{stepGraph:e.nestedGraph.stepGraph,open:!0,workflowName:e.nestedGraph.fullStep})},`nested-graph-${e.nestedGraph.fullStep}`)})]})]}):null}function Dos(e){const t=new Blob([JSON.stringify(e??null)]).size;return t<1024?`${t} B`:`${(t/1024).toFixed(1)} KB`}function Los(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 zos({suspendedSteps:e,workflow:t,isStreaming:n,onResume:r}){return n||e.length===0?null:o.jsxs("div",{className:"space-y-5 rounded-lg border border-border1 bg-surface4 p-5","data-testid":"workflow-suspended-steps",children:[o.jsxs("div",{className:"flex items-center justify-between gap-3",children:[o.jsxs(ye,{as:"p",variant:"ui-md",className:"flex items-center gap-2 text-neutral6 font-semibold",children:[o.jsx(Ue,{children:o.jsx(yq,{})}),"Step suspended"]}),o.jsx(dn,{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?um(lm(vx(i.resumeSchema))):cp(dr(),uT());return o.jsx(Fos,{step:s,stepSchema:l,description:i.description,isStreaming:n,onResume:r},`${s.runId}-${s.stepId}-${a}`)})]})}function Fos({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(ye,{as:"p",variant:"ui-md",className:"text-neutral6 font-medium truncate",children:e.stepId}),n&&o.jsx(ye,{as:"p",variant:"ui-sm",className:"text-neutral3",children:n})]}),e.suspendPayload&&o.jsxs("div",{className:"space-y-2",children:[o.jsxs(ye,{as:"p",variant:"ui-sm",className:"flex items-center gap-2 text-neutral3",children:[o.jsx(Ue,{children:o.jsx(vpn,{})}),"The step is asking"]}),o.jsxs(kf,{open:a,onOpenChange:i,children:[o.jsxs(Nd,{className:"flex w-full items-center justify-between gap-2 rounded-lg border border-border1 bg-surface3 px-3 py-2.5",children:[o.jsxs("span",{className:"flex items-center gap-2 min-w-0",children:[o.jsx(Ue,{children:o.jsx(ua,{className:K("transition-transform text-neutral3",{"transform rotate-90":a})})}),o.jsx(ye,{as:"span",variant:"ui-md",className:"text-neutral6 truncate",children:Los(e.suspendPayload,e.stepId)})]}),o.jsx(ye,{as:"span",variant:"ui-sm",className:"text-neutral3 shrink-0",children:Dos(e.suspendPayload)})]}),o.jsx(Id,{children:o.jsx("div",{"data-testid":"suspended-payload",className:"pt-2",children:o.jsx(Yr,{data:e.suspendPayload,className:"w-full overflow-x-auto p-2",showCopyButton:!1})})})]})]}),o.jsxs("div",{className:"space-y-3",children:[o.jsxs(ye,{as:"p",variant:"ui-sm",className:"flex items-center gap-2 text-neutral3",children:[o.jsx(Ue,{children:o.jsx(xpn,{})}),"Your response"]}),o.jsx("div",{className:"-mx-5",children:o.jsx(G7,{schema:t,isSubmitLoading:r,submitButtonLabel:"Resume",submitButtonIcon:o.jsx(zp,{}),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 Bos(){const{result:e,runSnapshot:t,workflow:n,runId:r,isStreamingWorkflow:s}=g.useContext(Ml),{runId:a}=ur(),i=R1t(e,r??""),l=MQn(),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:"absolute top-2 right-2 z-20 w-[380px] max-w-[calc(100%-1rem)] max-h-[calc(100%-1rem)] overflow-y-auto rounded-lg shadow-lg animate-in fade-in-0 slide-in-from-top-2 zoom-in-95 duration-300",children:o.jsx(zos,{suspendedSteps:i,workflow:n,isStreaming:s,onResume:l})},r)}const Uos=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"})]}),qos=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"})]}),Vos=e=>e.includes("."),Hos=e=>e==="input"||e.endsWith(".input"),Wos=1;function Zos(e){return`${Number((e/1e3).toPrecision(3))}s`}function Gos(e,t){const n=Object.entries(e).filter(([i])=>!Hos(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,Wos);return{stepId:i,step:l,status:l.status,offsetPct:f,widthPct:p,durationMs:d,isRunning:c,isNestedEntry:Vos(i)}})}const Qos=({status:e})=>o.jsxs(Ue,{children:[e==="success"&&o.jsx(Uos,{className:"text-accent1"}),e==="failed"&&o.jsx(qos,{className:"text-accent2"}),e==="suspended"&&o.jsx(yq,{className:"text-accent3"}),e==="waiting"&&o.jsx(bfe,{className:"text-accent5"}),e==="skipped"&&o.jsx(bfe,{className:"text-icon3"}),e==="running"&&o.jsx(ta,{className:"text-accent6 animate-spin"})]}),Yos={success:"bg-accent1",failed:"bg-accent2",suspended:"bg-accent3",waiting:"bg-accent5",skipped:"bg-border1",running:"bg-accent6"};function xFt(e){return e.split(/[-_.\s]+/).filter(Boolean).map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(" ")}const LYe=e=>e&&typeof e=="object"&&!Array.isArray(e)?e:{value:e},Xos=e=>{const t=e;return HPt({duration:t.duration,date:t.date,isForEach:t.isForEach,mapConfig:t.mapConfig,canSuspend:t.canSuspend,isParallel:t.isParallel,stepGraph:t.stepGraph})},Kos=({row:e,index:t,isSelected:n,isHovered:r,onSelectStep:s,onHoverStep:a,onOpenInput:i,onOpenOutput:l})=>{const c=Xos(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(Qos,{status:e.status})}),o.jsx("div",{className:"flex justify-center",children:o.jsx(ce,{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(Shn,{})})}),o.jsx("div",{className:"flex overflow-hidden",children:o.jsx(SU,{indicators:c,className:"shrink-0"})}),o.jsx(ye,{as:"span",variant:"ui-sm",className:"block min-w-0 max-w-full justify-self-stretch overflow-hidden text-ellipsis whitespace-nowrap text-left text-neutral6",children:xFt(e.stepId)}),o.jsx("div",{className:"relative h-2 min-w-0 rounded bg-surface4",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 ${Yos[e.status]}`,style:{left:`${e.offsetPct}%`,width:`${e.widthPct}%`}})}),o.jsx("div",{className:"flex justify-center",children:o.jsx(ce,{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(xhn,{})})}),o.jsx(ye,{as:"span",variant:"ui-sm",className:"w-20 justify-self-end text-right text-neutral3 tabular-nums",children:Zos(e.durationMs)})]},`timeline-item-${e.stepId}-${t}`)};function Jos(){const{steps:e}=h4(),{selectedStepId:t,hoverStepId:n,setSelectedStepId:r,setHoverStepId:s}=mV(),[a,i]=g.useState(()=>Date.now()),[l,c]=g.useState(!1),[u,d]=g.useState(null),f=g.useRef(null);T0e(f,{enabled:!l});const p=Gos(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:"pointer-events-auto flex max-h-64 w-full min-w-0 flex-col gap-3 overflow-hidden rounded-studio-panel border border-border1/50 bg-surface3 p-4 shadow-lg",children:[o.jsxs("div",{className:"flex shrink-0 items-center justify-between gap-3",children:[o.jsx(ye,{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:"rounded-md p-1 text-neutral3 transition-colors hover:bg-surface4 hover:text-neutral6",children:o.jsx(Ra,{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(Kos,{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:LYe(y.step.input)}),onOpenOutput:y=>d({type:"output",stepId:y.stepId,data:LYe(y.step.output)})},`timeline-item-${m.stepId}-${v}`))})]})}),o.jsx(br,{open:!!u,onOpenChange:m=>!m&&d(null),children:u&&o.jsx($1t,{data:u.data,title:`${xFt(u.stepId)} ${u.type==="input"?"input":"output"}`})})]})}const els=({workflowId:e,workflow:t,isLoading:n})=>{const{stepDetail:r}=sH();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(l$t,{workflowId:e,workflow:t,isLoading:n}),o.jsx(Bos,{}),o.jsx(Jos,{})]})}),r&&o.jsx("div",{className:"w-[420px] min-h-0 overflow-hidden border-l border-border1",children:o.jsx(Mos,{})})]})},zYe=()=>{const{workflowId:e}=ur(),{data:t,isLoading:n,error:r}=_3(e);return r&&gs(r)?o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Ws,{})}):r&&ys(r)?o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Ls,{resource:"workflows"})}):o.jsx(gSe,{children:o.jsx(els,{workflowId:e,workflow:t??void 0,isLoading:n})})};function tls(e,t){if(e==null)return{};var n,r,s=zxt(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 mye(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 nls(e){if(Array.isArray(e))return mye(e)}function rls(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function sls(e,t){if(e){if(typeof e=="string")return mye(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)?mye(e,t):void 0}}function als(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
|
|
726
726
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function gye(e){return nls(e)||rls(e)||sls(e)||als()}function aD(e){"@babel/helpers - typeof";return aD=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},aD(e)}function ils(e,t){if(aD(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(aD(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function ols(e){var t=ils(e,"string");return aD(t)=="symbol"?t:t+""}function wFt(e,t,n){return(t=ols(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function FYe(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 oj(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?FYe(Object(n),!0).forEach(function(r){wFt(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):FYe(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function lls(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 Ase={};function cls(e){if(e.length===0||e.length===1)return e;var t=e.join(".");return Ase[t]||(Ase[t]=lls(e)),Ase[t]}function uls(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=cls(r);return s.reduce(function(a,i){return oj(oj({},a),n[i])},t)}function BYe(e){return e.join(" ")}function dls(e,t){var n=0;return function(r){return n+=1,r.map(function(s,a){return SFt({node:s,stylesheet:e,useInlineStyles:t,key:"code-segment-".concat(n,"-").concat(a)})})}}function SFt(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=dls(n,a),p;if(!a)p=oj(oj({},l),{},{className:BYe(l.className)});else{var h=Object.keys(n).reduce(function(b,S){return S.split(".").forEach(function(w){b.includes(w)||b.push(w)}),b},[]),m=l.className&&l.className.includes("token")?["token"]:[],v=l.className&&m.concat(l.className.filter(function(b){return!h.includes(b)}));p=oj(oj({},l),{},{className:BYe(v)||void 0,style:uls(l.className,Object.assign({},l.style,s),n)})}var y=f(t.children);return Le.createElement(u,AO({key:i},p),y)}}const fls=(function(e,t){var n=e.listLanguages();return n.indexOf(t)!==-1});var pls=["language","children","style","customStyle","codeTagProps","useInlineStyles","showLineNumbers","showInlineLineNumbers","startingLineNumber","lineNumberContainerStyle","lineNumberStyle","wrapLines","wrapLongLines","lineProps","renderer","PreTag","CodeTag","code","astGenerator"];function UYe(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 _w(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?UYe(Object(n),!0).forEach(function(r){wFt(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):UYe(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}var hls=/\n/g;function mls(e){return e.match(hls)}function gls(e){var t=e.lines,n=e.startingLineNumber,r=e.style;return t.map(function(s,a){var i=a+n;return Le.createElement("span",{key:"line-".concat(a),className:"react-syntax-highlighter-line-number",style:typeof r=="function"?r(i):r},"".concat(i,`
|
|
727
727
|
`))})}function vls(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 Le.createElement("code",{style:Object.assign({},n,s)},gls({lines:t.replace(/\n$/,"").split(`
|
|
728
728
|
`),style:i,startingLineNumber:l}))}function yls(e){return"".concat(e.toString().length,".25em")}function kFt(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 OFt(e,t,n){var r={display:"inline-block",minWidth:yls(n),paddingRight:"1em",textAlign:"right",userSelect:"none"},s=typeof e=="function"?e(t):e,a=_w(_w({},r),s);return a}function $F(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?_w({},typeof l=="function"?l(n):l):{};if(m.className=m.className?[].concat(gye(m.className.trim().split(/\s+/)),gye(u)):u,n&&a){var v=OFt(r,n,s);t.unshift(kFt(n,v))}return f&d&&(m.style=_w({display:"flex"},m.style)),{type:"element",tagName:"span",properties:m,children:t}}function _Ft(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($F({children:[s],className:gye(new Set(t))}));else if(s.children){var a=t.concat(s.properties.className);_Ft(s.children,a).forEach(function(i){return n.push(i)})}}return n}function bls(e,t,n,r,s,a,i,l,c){var u,d=_Ft(e.value),f=[],p=-1,h=0;function m(_,C){var E=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[];return $F({children:_,lineNumber:C,lineNumberStyle:l,largestLineNumber:i,showInlineLineNumbers:s,lineProps:n,className:E,showLineNumbers:r,wrapLongLines:c,wrapLines:t})}function v(_,C){if(r&&C&&s){var E=OFt(l,C,i);_.unshift(kFt(C,E))}return _}function y(_,C){var E=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[];return t||E.length>0?m(_,C,E):v(_,C)}for(var b=function(){var C=d[h],E=C.children[0].value,j=mls(E);if(j){var T=E.split(`
|