@mastra/deployer-cloud 1.51.1-alpha.1 → 1.52.0-alpha.2
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-BwcEFywr.js → core-CljSJVwM.js} +1 -1
- package/dist/studio/assets/{index-B67Uj37q.js → index-B0a8y3A3.js} +2 -2
- package/dist/studio/assets/{main-BVLcy-vX.js → main-DDwpMSXk.js} +3 -3
- package/dist/studio/index.html +1 -1
- package/package.json +5 -5
|
@@ -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-CljSJVwM.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 sUt(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 jY={exports:{}},yA={};var s2e;function aUt(){if(s2e)return yA;s2e=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 a2e;function iUt(){return a2e||(a2e=1,jY.exports=aUt()),jY.exports}var o=iUt(),TY={exports:{}},qr={},i2e;function oUt(){if(i2e)return qr;i2e=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 o2e;function gN(){return o2e||(o2e=1,TY.exports=oUt()),TY.exports}var g=gN();const Le=Tc(g),a_=sUt({__proto__:null,default:Le},[g]);var NY={exports:{}},bA={},IY={exports:{}},AY={};var l2e;function lUt(){return l2e||(l2e=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}}}})(AY)),AY}var c2e;function cUt(){return c2e||(c2e=1,IY.exports=lUt()),IY.exports}var RY={exports:{}},vu={};var u2e;function uUt(){if(u2e)return vu;u2e=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 vu.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=r,vu.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)},vu.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()}},vu.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))},vu.prefetchDNS=function(c){typeof c=="string"&&r.d.D(c)},vu.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})}},vu.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)},vu.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})}},vu.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)},vu.requestFormReset=function(c){r.d.r(c)},vu.unstable_batchedUpdates=function(c,u){return c(u)},vu.useFormState=function(c,u,d){return i.H.useFormState(c,u,d)},vu.useFormStatus=function(){return i.H.useHostTransitionStatus()},vu.version="19.2.7",vu}var d2e;function fst(){if(d2e)return RY.exports;d2e=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(),RY.exports=uUt(),RY.exports}var f2e;function dUt(){if(f2e)return bA;f2e=1;var e={env:{}};var t=cUt(),n=gN(),r=fst();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)?ERe(x):0;break;default:if(x=O.tagName,O=O.namespaceURI)O=ERe(O),x=jRe(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=jRe(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"}),Hd('import {${names}} from "${module}"\n${}',{label:"import",detail:"named",type:"keyword"}),Hd('import ${name} from "${module}"\n${}',{label:"import",detail:"default",type:"keyword"})],hxt=w1e.concat([Hd("interface ${name} {\n ${}\n}",{label:"interface",detail:"definition",type:"keyword"}),Hd("type ${name} = ${type}",{label:"type",detail:"definition",type:"keyword"}),Hd("enum ${name} {\n ${}\n}",{label:"enum",detail:"definition",type:"keyword"})]),B6e=new yvt,mxt=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 NFn=["FunctionDeclaration"],IFn={FunctionDeclaration:WA("function"),ClassDeclaration:WA("class"),ClassExpression:()=>!0,EnumDeclaration:WA("constant"),TypeAliasDeclaration:WA("type"),NamespaceDeclaration:WA("namespace"),VariableDefinition(e,t){e.matchContext(NFn)||t(e,"variable")},TypeDefinition(e,t){t(e,"type")},__proto__:null};function gxt(e,t){let n=B6e.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=IFn[i.name];if(l&&l(i,a)||mxt.has(i.name))return!1}else if(i.to-i.from>8192){for(let l of gxt(e,i.node))r.push(l);return!1}}),B6e.set(t,r),r}const T7=/^[\w$\xa1-\uffff][\w$\d\xa1-\uffff]*$/,S1e=["TemplateString","String","RegExp","LineComment","BlockComment","VariableDefinition","TypeDefinition","Label","PropertyDefinition","PropertyName","PrivatePropertyDefinition","PrivatePropertyName","JSXText","JSXAttributeValue","JSXOpenTag","JSXCloseTag","JSXSelfClosingTag",".","?."];function vxt(e){let t=hi(e.state).resolveInner(e.pos,-1);if(S1e.indexOf(t.name)>-1)return null;let n=t.name=="VariableName"||t.to-t.from<20&&T7.test(e.state.sliceDoc(t.from,t.to));if(!n&&!e.explicit)return null;let r=[];for(let s=t;s;s=s.parent)mxt.has(s.name)&&(r=r.concat(gxt(e.state.doc,s)));return{options:r,from:n?t.from:e.pos,validFor:T7}}function rJ(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 yxt(e){let t=r=>e.state.doc.sliceString(r.from,r.to),n=hi(e.state).resolveInner(e.pos,-1);return n.name=="PropertyName"?rJ(t,n.parent,t(n)):(n.name=="."||n.name=="?.")&&n.parent.name=="MemberExpression"?rJ(t,n.parent,""):S1e.indexOf(n.name)>-1?null:n.name=="VariableName"||n.to-n.from<20&&T7.test(t(n))?{path:[],name:t(n)}:n.name=="MemberExpression"?rJ(t,n,""):e.explicit?{path:[],name:""}:null}function AFn(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 RFn(e){let t=new Map;return n=>{let r=yxt(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=AFn(s,!r.path.length)),{from:n.pos-r.name.length,options:a,validFor:T7}}}const Gh=CO.define({name:"javascript",parser:TFn.configure({props:[I_.add({IfStatement:_j({except:/^\s*({|else\b)/}),TryStatement:_j({except:/^\s*({|catch\b|finally\b)/}),LabeledStatement:ELn,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:CLn({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":t1e,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:"$"}}),bxt={test:e=>/^JSX/.test(e.name),facet:RV({commentTokens:{block:{open:"{/*",close:"*/}"}}})},k1e=Gh.configure({dialect:"ts"},"typescript"),O1e=Gh.configure({dialect:"jsx",props:[Kwe.add(e=>e.isTop?[bxt]:void 0)]}),_1e=Gh.configure({dialect:"jsx ts",props:[Kwe.add(e=>e.isTop?[bxt]:void 0)]},"typescript");let xxt=e=>({label:e,type:"keyword"});const wxt="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(xxt),PFn=wxt.concat(["declare","implements","private","protected","public"].map(xxt));function N7(e={}){let t=e.jsx?e.typescript?_1e:O1e:e.typescript?k1e:Gh,n=e.typescript?hxt.concat(PFn):w1e.concat(wxt);return new jO(t,[Gh.data.of({autocomplete:f6n(S1e,bbt(n))}),Gh.data.of({autocomplete:vxt}),e.jsx?Sxt:[]])}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 U6e(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 MFn=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent),Sxt=Tt.inputHandler.of((e,t,n,r,s)=>{if((MFn?e.composing:e.compositionStarted)||e.state.readOnly||t!=n||r!=">"&&r!="/"||!Gh.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=U6e(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=U6e(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 DFn(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 Gh.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(LFn(u,r.doc,c))}return s}}function q6e(e,t,n,r){return n.line(e+r.line).from+t+(e==1?r.col-1:-1)}function LFn(e,t,n){let r=q6e(e.line,e.column,t,n),s={from:r,to:e.endLine!=null&&e.endColumn!=1?q6e(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:Sxt,completionPath:yxt,esLint:DFn,javascript:N7,javascriptLanguage:Gh,jsxLanguage:O1e,localCompletionSource:vxt,scopeCompletionSource:RFn,snippets:w1e,tsxLanguage:_1e,typescriptLanguage:k1e,typescriptSnippets:hxt},Symbol.toStringTag,{value:"Module"})),ZA=["_blank","_self","_top","_parent"],sJ=["ascii","utf-8","utf-16","latin1","latin1"],aJ=["get","post","put","delete"],iJ=["application/x-www-form-urlencoded","multipart/form-data","text/plain"],Yf=["true","false"],er={},zFn={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:iJ,formmethod:aJ,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":sJ,autocomplete:["on","off"],enctype:iJ,method:aJ,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:iJ,formmethod:aJ,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:sJ,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:sJ}},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},kxt={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},Oxt="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 Oxt)kxt[e]=null;class J${constructor(t,n){this.tags={...zFn,...t},this.globalAttrs={...kxt,...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 _xt(e,t,n){let r=n.tags[bT(e,xT(t))];return r?.children||n.allTags}function C1e(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 Cxt=/^[:\-\.\w\u00b7-\uffff]*$/;function V6e(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:_xt(e.doc,i,t).map(l=>({label:l,type:"type"})).concat(C1e(e.doc,n).map((l,c)=>({label:"/"+l,apply:"/"+l+a,type:"type",boost:99-c}))),validFor:/^\/?[:\-\.\w\u00b7-\uffff]*$/}}function H6e(e,t,n,r){let s=/\s*>/.test(e.sliceDoc(r,r+5))?"":">";return{from:n,to:r,options:C1e(e.doc,t).map((a,i)=>({label:a,apply:a+s,type:"type",boost:99-i})),validFor:Cxt}}function FFn(e,t,n,r){let s=[],a=0;for(let i of _xt(e.doc,n,t))s.push({label:"<"+i,type:"type"});for(let i of C1e(e.doc,n))s.push({label:"</"+i+">",type:"type",boost:99-a++});return{from:r,to:r,options:s,validFor:/^<\/?[:\-\.\w\u00b7-\uffff]*$/}}function BFn(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:Cxt}}function UFn(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 Ext(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)?H6e(n,s,s.from,r):V6e(n,e,s,s.from,r):s.name=="StartTag"||s.name=="IncompleteTag"?V6e(n,e,s,r,r):s.name=="StartCloseTag"||s.name=="IncompleteCloseTag"?H6e(n,s,r,r):s.name=="OpenTag"||s.name=="SelfClosingTag"||s.name=="AttributeName"?BFn(n,e,s,s.name=="AttributeName"?s.from:r,r):s.name=="Is"||s.name=="AttributeValue"||s.name=="UnquotedAttributeValue"?UFn(n,e,s,s.name=="Is"?r:s.from,r):t.explicit&&(a.name=="Element"||a.name=="Text"||a.name=="Document")?FFn(n,e,s,r):null}function qFn(e){return Ext(J$.default,e)}function VFn(e){let{extraTags:t,extraGlobalAttributes:n}=e,r=n||t?new J$(t,n):J$.default;return s=>Ext(r,s)}const HFn=Gh.parser.configure({top:"SingleExpression"}),jxt=[{tag:"script",attrs:e=>e.type=="text/typescript"||e.lang=="ts",parser:k1e.parser},{tag:"script",attrs:e=>e.type=="text/babel"||e.type=="text/jsx",parser:O1e.parser},{tag:"script",attrs:e=>e.type=="text/typescript-jsx",parser:_1e.parser},{tag:"script",attrs(e){return/^(importmap|speculationrules|application\/(.+\+)?json)$/i.test(e.type)},parser:HFn},{tag:"script",attrs(e){return!e.type||/^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^module$|^$/i.test(e.type)},parser:Gh.parser},{tag:"style",attrs(e){return(!e.lang||e.lang=="css")&&(!e.type||/^(text\/)?(x-)?(stylesheet|css)$/i.test(e.type))},parser:j7.parser}],Txt=[{name:"style",parser:j7.parser.configure({top:"Styles"})}].concat(Oxt.map(e=>({name:e,parser:Gh.parser}))),Nxt=CO.define({name:"html",parser:gzn.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}}}),fbt.add({"OpenTag CloseTag":e=>e.getChild("TagName")})]}),languageData:{commentTokens:{block:{open:"<!--",close:"-->"}},indentOnInput:/^\s*<\/\w+\W$/,wordChars:"-_"}}),nF=Nxt.configure({wrap:oxt(jxt,Txt)});function WFn(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=oxt((e.nestedLanguages||[]).concat(jxt),(e.nestedAttributes||[]).concat(Txt)));let r=n?Nxt.configure({wrap:n,dialect:t}):t?nF.configure({dialect:t}):nF;return new jO(r,[nF.data.of({autocomplete:VFn(e)}),e.autoCloseTags!==!1?ZFn:[],N7().support,Kzn().support])}const W6e=new Set("area base br col command embed frame hr img input keygen link meta param source track wbr menuitem".split(" ")),ZFn=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))&&!W6e.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))&&!W6e.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)}),Ixt=RV({commentTokens:{block:{open:"<!--",close:"-->"}}}),Axt=new Mr,Rxt=y9n.configure({props:[A_.add(e=>!e.is("Block")||e.is("Document")||Fhe(e)!=null||GFn(e)?void 0:(t,n)=>({from:n.doc.lineAt(t.from).to,to:t.to})),Axt.add(Fhe),I_.add({Document:()=>null}),yw.add({Document:Ixt})]});function Fhe(e){let t=/^(?:ATX|Setext)Heading(\d)$/.exec(e.name);return t?+t[1]:void 0}function GFn(e){return e.name=="OrderedList"||e.name=="BulletList"}function QFn(e,t){let n=e;for(;;){let r=n.nextSibling,s;if(!r||(s=Fhe(r.type))!=null&&s<=t)break;n=r}return n.to}const YFn=ebt.of((e,t,n)=>{for(let r=hi(e).resolveInner(n,-1);r&&!(r.from<t);r=r.parent){let s=r.type.prop(Axt);if(s==null)continue;let a=QFn(r,s);if(a>n)return{from:n,to:a}}return null});function E1e(e){return new wp(Ixt,e,[],"markdown")}const Pxt=E1e(Rxt),XFn=Rxt.configure([T9n,I9n,N9n,A9n,{props:[A_.add({Table:(e,t)=>({from:t.doc.lineAt(e.from).to,to:e.to})})]}]),IO=E1e(XFn);function KFn(e,t){return n=>{if(n&&e){let r=null;if(n=/\S*/.exec(n)[0],typeof e=="function"?r=e(n):r=tg.matchLanguageName(e,n,!0),r instanceof tg)return r.support?r.support.language.parser:EO.getSkippingParser(r.load());if(r)return r.parser}return t?t.parser:null}}class oJ{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(+Mxt(this.item,t)[2]+n):"";return this.spaceBefore+r+this.type+this.spaceAfter}}function $xt(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 oJ(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 oJ(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 oJ(a.parent,c,c+d,i[1],u,f,a))}}return r}function Mxt(e,t){return/^(\s*)(\d+)(?=[.)])/.exec(t.sliceString(e.from,e.from+10))}function lJ(e,t,n,r=0){for(let s=-1,a=e;;){if(a.name=="ListItem"){let l=Mxt(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 j1e(e,t){let n=/^[ \t]*/.exec(e)[0].length;if(!n||t.facet(BN)!=" ")return e;let r=Ig(e,4,n),s="";for(let a=r;a>0;)a>=4?(s+=" ",a-=4):(s+=" ",a--);return s+e.slice(n)}const Dxt=(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=$xt(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"&&lJ(f.item,s,C,-2),w&&w.node.name=="OrderedList"&&lJ(w.item,s,C),{range:vt.cursor(k+_.length),changes:C}}else{let w=G6e(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"&&lJ(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?Ig(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=j1e(v,t),JFn(f.node,t.doc)&&(v=G6e(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)},Lxt=Dxt();function Z6e(e){return e.name=="QuoteMark"||e.name=="ListMark"}function JFn(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 G6e(e,t,n){let r="";for(let s=0,a=e.length-2;s<=a;s++)r+=e[s].blank(s<a?Ig(n.text,4,e[s+1].from)-r.length:null,s<a);return j1e(r,t)}function e8n(e,t){let n=e.resolveInner(t,-1),r=t;Z6e(n)&&(r=n.from,n=n.parent);for(let s;s=n.childBefore(r);)if(Z6e(s))r=s.from;else if(s.name=="OrderedList"||s.name=="BulletList")n=s.lastChild,r=n.to;else break;return n}const zxt=({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=$xt(e8n(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(Ig(c.text,4,d.to)-Ig(c.text,4,d.from));return p==c.from&&(h=j1e(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)},Fxt=[{key:"Enter",run:Lxt},{key:"Backspace",run:zxt}],Bxt=WFn({matchClosingTags:!1});function T1e(e={}){let{codeLanguages:t,defaultCodeLanguage:n,addKeymap:r=!0,base:{parser:s}=Pxt,completeHTMLTags:a=!0,pasteURLAsLink:i=!0,htmlTagLanguage:l=Bxt}=e;if(!(s instanceof DV))throw new RangeError("Base parser provided to `markdown` should be a Markdown parser");let c=e.extensions?[e.extensions]:[],u=[l.support,YFn],d;i&&u.push(Uxt),n instanceof jO?(u.push(n.support),d=n.language):n&&(d=n);let f=t||d?KFn(t,d):void 0;c.push(x9n({codeParser:f,htmlParser:l.language.parser})),r&&u.push(Xp.high(FN.of(Fxt)));let p=E1e(s.configure(c));return a&&u.push(p.data.of({autocomplete:t8n})),new jO(p,u)}function t8n(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:n8n(),validFor:/^<[:\-\.\w\u00b7-\uffff]*$/}}let cJ=null;function n8n(){if(cJ)return cJ;let e=qFn(new a1e(os.create({extensions:Bxt}),0,!0));return cJ=e?e.options:[]}const r8n=/code|horizontalrule|html|link|comment|processing|escape|entity|image|mark|url/i,Uxt=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||r8n.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)}}),s8n=Object.freeze(Object.defineProperty({__proto__:null,commonmarkLanguage:Pxt,deleteMarkupBackward:zxt,insertNewlineContinueMarkup:Lxt,insertNewlineContinueMarkupCommand:Dxt,markdown:T1e,markdownKeymap:Fxt,markdownLanguage:IO,pasteURLAsLink:Uxt},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 a8n=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=zg.define(a),f=[u,B1(d)];return f},i8n={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)"},o8n=[{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 a8n({theme:r,settings:AO({},i8n,a),styles:[...o8n,...l]})};qN();function qxt(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 l8n=e=>{let{state:t}=e,n=t.doc.lineAt(t.selection.main.from),r=I1e(e.state,n.from);return r.line?c8n(e):r.block?d8n(e):!1};function N1e(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 c8n=N1e(h8n,0),u8n=N1e(Vxt,0),d8n=N1e((e,t)=>Vxt(e,t,p8n(t)),0);function I1e(e,t){let n=e.languageDataAt("commentTokens",t,1);return n.length?n[0]:{}}const GA=50;function f8n(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 p8n(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 Vxt(e,t,n=t.selection.ranges){let r=n.map(a=>I1e(t,a.from).block);if(!r.every(a=>a))return null;let s=n.map((a,i)=>f8n(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 h8n(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=I1e(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 Bhe=Py.define(),m8n=Py.define(),g8n=kn.define(),Hxt=kn.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)})}}),Wxt=vl.define({create(){return Bv.empty},update(e,t){let n=t.state.facet(Hxt),r=t.annotation(Bhe);if(r){let c=sf.fromTransaction(t,r.selection),u=r.side,d=u==0?e.undone:e.done;return c?d=I7(d,d.length,n.minDepth,c):d=Qxt(d,t.startState.selection),new Bv(u==0?r.rest:d,u==0?d:r.rest)}let s=t.annotation(m8n);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=sf.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(sf.fromJSON),e.undone.map(sf.fromJSON))}});function v8n(e={}){return[Wxt,Hxt.of(e),Tt.domEventHandlers({beforeinput(t,n){let r=t.inputType=="historyUndo"?Zxt:t.inputType=="historyRedo"?Uhe:null;return r?(t.preventDefault(),r(n)):!1}})]}function LV(e,t){return function({state:n,dispatch:r}){if(!t&&n.readOnly)return!1;let s=n.field(Wxt,!1);if(!s)return!1;let a=s.pop(e,n,t);return a?(r(a),!0):!1}}const Zxt=LV(0,!1),Uhe=LV(1,!1),y8n=LV(0,!0),b8n=LV(1,!0);class sf{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 sf(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 sf(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=zh;for(let s of t.startState.facet(g8n)){let a=s(t);a.length&&(r=r.concat(a))}return!r.length&&t.changes.empty?null:new sf(t.changes.invert(t.startState.doc),r,void 0,n||t.startState.selection,zh)}static selection(t){return new sf(void 0,zh,void 0,void 0,t)}}function I7(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 x8n(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 w8n(e,t){return e.ranges.length==t.ranges.length&&e.ranges.filter((n,r)=>n.empty!=t.ranges[r].empty).length===0}function Gxt(e,t){return e.length?t.length?e.concat(t):e:t}const zh=[],S8n=200;function Qxt(e,t){if(e.length){let n=e[e.length-1],r=n.selectionsAfter.slice(Math.max(0,n.selectionsAfter.length-S8n));return r.length&&r[r.length-1].eq(t)?e:(r.push(t),I7(e,e.length-1,1e9,n.setSelAfter(r)))}else return[sf.selection([t])]}function k8n(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 uJ(e,t){if(!e.length)return e;let n=e.length,r=zh;for(;n;){let s=O8n(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?[sf.selection(r)]:zh}function O8n(e,t,n){let r=Gxt(e.selectionsAfter.length?e.selectionsAfter.map(l=>l.map(t)):zh,n);if(!e.changes)return sf.selection(r);let s=e.changes.map(t),a=t.mapDesc(e.changes,!0),i=e.mapped?e.mapped.composeDesc(a):a;return new sf(s,vr.mapEffects(e.effects,t),i,e.startSelection.map(a),r)}const _8n=/^(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||_8n.test(r))&&(!l.selectionsAfter.length&&n-this.prevTime<s.newGroupDelay&&s.joinToEvent(a,x8n(l.changes,t.changes))||r=="input.type.compose")?i=I7(i,i.length-1,s.minDepth,new sf(t.changes.compose(l.changes),Gxt(vr.mapEffects(t.effects,l.changes),l.effects),l.mapped,l.startSelection,zh)):i=I7(i,i.length,s.minDepth,t),new Bv(i,zh,n,r)}addSelection(t,n,r,s){let a=this.done.length?this.done[this.done.length-1].selectionsAfter:zh;return a.length>0&&n-this.prevTime<s&&r==this.prevUserEvent&&r&&/^select($|\.)/.test(r)&&w8n(a[a.length-1],t)?this:new Bv(Qxt(this.done,t),this.undone,n,r)}addMapping(t){return new Bv(uJ(this.done,t),uJ(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:Bhe.of({side:t,rest:k8n(s),selection:i}),userEvent:t==0?"select.undo":"select.redo",scrollIntoView:!0});if(a.changes){let l=s.length==1?zh:s.slice(0,s.length-1);return a.mapped&&(l=uJ(l,a.mapped)),n.update({changes:a.changes,selection:a.startSelection,effects:a.effects,annotations:Bhe.of({side:t,rest:l,selection:i}),filter:!1,userEvent:t==0?"undo":"redo",scrollIntoView:!0})}else return null}}Bv.empty=new Bv(zh,zh);const C8n=[{key:"Mod-z",run:Zxt,preventDefault:!0},{key:"Mod-y",mac:"Mod-Shift-z",run:Uhe,preventDefault:!0},{linux:"Ctrl-Shift-z",run:Uhe,preventDefault:!0},{key:"Mod-u",run:y8n,preventDefault:!0},{key:"Alt-u",mac:"Mod-Shift-u",run:b8n,preventDefault:!0}];function VN(e,t){return vt.create(e.ranges.map(t),e.mainIndex)}function Fg(e,t){return e.update({selection:t,scrollIntoView:!0,userEvent:"select"})}function Bg({state:e,dispatch:t},n){let r=VN(e.selection,n);return r.eq(e.selection,!0)?!1:(t(Fg(e,r)),!0)}function zV(e,t){return vt.cursor(t?e.to:e.from)}function Yxt(e,t){return Bg(e,n=>n.empty?e.moveByChar(n,t):zV(n,t))}function Qu(e){return e.textDirectionAt(e.state.selection.main.head)==Si.LTR}const Xxt=e=>Yxt(e,!Qu(e)),Kxt=e=>Yxt(e,Qu(e));function Jxt(e,t){return Bg(e,n=>n.empty?e.moveByGroup(n,t):zV(n,t))}const E8n=e=>Jxt(e,!Qu(e)),j8n=e=>Jxt(e,Qu(e));function T8n(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 FV(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;T8n(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 N8n=e=>Bg(e,t=>FV(e.state,t,!Qu(e))),I8n=e=>Bg(e,t=>FV(e.state,t,Qu(e)));function e0t(e,t){return Bg(e,n=>{if(!n.empty)return zV(n,t);let r=e.moveVertically(n,t);return r.head!=n.head?r:e.moveToLineBoundary(n,t)})}const t0t=e=>e0t(e,!1),n0t=e=>e0t(e,!0);function r0t(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 s0t(e,t){let n=r0t(e),{state:r}=e,s=VN(r.selection,i=>i.empty?e.moveVertically(i,t,n.height):zV(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(Fg(r,s),{effects:a}),!0}const Q6e=e=>s0t(e,!1),qhe=e=>s0t(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 A8n=e=>Bg(e,t=>U1(e,t,!0)),R8n=e=>Bg(e,t=>U1(e,t,!1)),P8n=e=>Bg(e,t=>U1(e,t,!Qu(e))),$8n=e=>Bg(e,t=>U1(e,t,Qu(e))),M8n=e=>Bg(e,t=>vt.cursor(e.lineBlockAt(t.head).from,1)),D8n=e=>Bg(e,t=>vt.cursor(e.lineBlockAt(t.head).to,-1));function L8n(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(Fg(e,s)),!0):!1}const z8n=({state:e,dispatch:t})=>L8n(e,t);function km(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(Fg(e.state,r)),!0)}function a0t(e,t){return km(e,t,n=>e.moveByChar(n,t))}const i0t=e=>a0t(e,!Qu(e)),o0t=e=>a0t(e,Qu(e));function l0t(e,t){return km(e,t,n=>e.moveByGroup(n,t))}const F8n=e=>l0t(e,!Qu(e)),B8n=e=>l0t(e,Qu(e)),U8n=e=>{let t=!Qu(e);return km(e,t,n=>FV(e.state,n,t))},q8n=e=>{let t=Qu(e);return km(e,t,n=>FV(e.state,n,t))};function c0t(e,t){return km(e,t,n=>e.moveVertically(n,t))}const u0t=e=>c0t(e,!1),d0t=e=>c0t(e,!0);function f0t(e,t){return km(e,t,n=>e.moveVertically(n,t,r0t(e).height))}const Y6e=e=>f0t(e,!1),X6e=e=>f0t(e,!0),V8n=e=>km(e,!0,t=>U1(e,t,!0)),H8n=e=>km(e,!1,t=>U1(e,t,!1)),W8n=e=>{let t=!Qu(e);return km(e,t,n=>U1(e,n,t))},Z8n=e=>{let t=Qu(e);return km(e,t,n=>U1(e,n,t))},G8n=e=>km(e,!1,t=>vt.cursor(e.lineBlockAt(t.head).from)),Q8n=e=>km(e,!0,t=>vt.cursor(e.lineBlockAt(t.head).to)),K6e=({state:e,dispatch:t})=>(t(Fg(e,{anchor:0})),!0),J6e=({state:e,dispatch:t})=>(t(Fg(e,{anchor:e.doc.length})),!0),e9e=({state:e,dispatch:t})=>(t(Fg(e,{anchor:e.selection.main.anchor,head:0})),!0),t9e=({state:e,dispatch:t})=>(t(Fg(e,{anchor:e.selection.main.anchor,head:e.doc.length})),!0),Y8n=({state:e,dispatch:t})=>(t(e.update({selection:{anchor:0,head:e.doc.length},userEvent:"select"})),!0),X8n=({state:e,dispatch:t})=>{let n=BV(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},K8n=({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(Fg(e,n)),!0)};function p0t(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(Fg(n,vt.create(s,s.length-1))),!0)}const J8n=e=>p0t(e,!1),e7n=e=>p0t(e,!0),t7n=({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(Fg(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 h0t=(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=Ig(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}),Vhe=e=>h0t(e,!1,!0),m0t=e=>h0t(e,!0,!1),g0t=(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}),v0t=e=>g0t(e,!1),n7n=e=>g0t(e,!0),r7n=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)}),s7n=e=>h3(e,t=>{let n=e.moveToLineBoundary(t,!1).head;return t.head>n?n:Math.max(0,t.head-1)}),a7n=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)}),i7n=({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},o7n=({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 BV(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 y0t(e,t,n){if(e.readOnly)return!1;let r=[],s=[];for(let a of BV(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 l7n=({state:e,dispatch:t})=>y0t(e,t,!1),c7n=({state:e,dispatch:t})=>y0t(e,t,!0);function b0t(e,t,n){if(e.readOnly)return!1;let r=[];for(let a of BV(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 u7n=({state:e,dispatch:t})=>b0t(e,t,!1),d7n=({state:e,dispatch:t})=>b0t(e,t,!0),f7n=e=>{if(e.state.readOnly)return!1;let{state:t}=e,n=t.changes(BV(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 p7n(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 n9e=x0t(!1),h7n=x0t(!0);function x0t(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&&p7n(t,a);e&&(a=i=(i<=l.to?l:t.doc.lineAt(i)).to);let u=new PV(t,{simulateBreak:a,simulateDoubleBreak:!!c}),d=Jwe(u,a);for(d==null&&(d=Ig(/^\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 A1e(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 m7n=({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=Object.create(null),r=new PV(e,{overrideIndentation:a=>{let i=n[a];return i??-1}}),s=A1e(e,(a,i,l)=>{let c=Jwe(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},w0t=({state:e,dispatch:t})=>e.readOnly?!1:(t(e.update(A1e(e,(n,r)=>{r.push({from:n.from,insert:e.facet(BN)})}),{userEvent:"input.indent"})),!0),S0t=({state:e,dispatch:t})=>e.readOnly?!1:(t(e.update(A1e(e,(n,r)=>{let s=/^\s*/.exec(n.text)[0];if(!s)return;let a=Ig(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),g7n=e=>(e.setTabFocusMode(),!0),v7n=[{key:"Ctrl-b",run:Xxt,shift:i0t,preventDefault:!0},{key:"Ctrl-f",run:Kxt,shift:o0t},{key:"Ctrl-p",run:t0t,shift:u0t},{key:"Ctrl-n",run:n0t,shift:d0t},{key:"Ctrl-a",run:M8n,shift:G8n},{key:"Ctrl-e",run:D8n,shift:Q8n},{key:"Ctrl-d",run:m0t},{key:"Ctrl-h",run:Vhe},{key:"Ctrl-k",run:r7n},{key:"Ctrl-Alt-h",run:v0t},{key:"Ctrl-o",run:i7n},{key:"Ctrl-t",run:o7n},{key:"Ctrl-v",run:qhe}],y7n=[{key:"ArrowLeft",run:Xxt,shift:i0t,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:E8n,shift:F8n,preventDefault:!0},{mac:"Cmd-ArrowLeft",run:P8n,shift:W8n,preventDefault:!0},{key:"ArrowRight",run:Kxt,shift:o0t,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:j8n,shift:B8n,preventDefault:!0},{mac:"Cmd-ArrowRight",run:$8n,shift:Z8n,preventDefault:!0},{key:"ArrowUp",run:t0t,shift:u0t,preventDefault:!0},{mac:"Cmd-ArrowUp",run:K6e,shift:e9e},{mac:"Ctrl-ArrowUp",run:Q6e,shift:Y6e},{key:"ArrowDown",run:n0t,shift:d0t,preventDefault:!0},{mac:"Cmd-ArrowDown",run:J6e,shift:t9e},{mac:"Ctrl-ArrowDown",run:qhe,shift:X6e},{key:"PageUp",run:Q6e,shift:Y6e},{key:"PageDown",run:qhe,shift:X6e},{key:"Home",run:R8n,shift:H8n,preventDefault:!0},{key:"Mod-Home",run:K6e,shift:e9e},{key:"End",run:A8n,shift:V8n,preventDefault:!0},{key:"Mod-End",run:J6e,shift:t9e},{key:"Enter",run:n9e,shift:n9e},{key:"Mod-a",run:Y8n},{key:"Backspace",run:Vhe,shift:Vhe,preventDefault:!0},{key:"Delete",run:m0t,preventDefault:!0},{key:"Mod-Backspace",mac:"Alt-Backspace",run:v0t,preventDefault:!0},{key:"Mod-Delete",mac:"Alt-Delete",run:n7n,preventDefault:!0},{mac:"Mod-Backspace",run:s7n,preventDefault:!0},{mac:"Mod-Delete",run:a7n,preventDefault:!0}].concat(v7n.map(e=>({mac:e.key,run:e.run,shift:e.shift}))),b7n=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:N8n,shift:U8n},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:I8n,shift:q8n},{key:"Alt-ArrowUp",run:l7n},{key:"Shift-Alt-ArrowUp",run:u7n},{key:"Alt-ArrowDown",run:c7n},{key:"Shift-Alt-ArrowDown",run:d7n},{key:"Mod-Alt-ArrowUp",run:J8n},{key:"Mod-Alt-ArrowDown",run:e7n},{key:"Escape",run:t7n},{key:"Mod-Enter",run:h7n},{key:"Alt-l",mac:"Ctrl-l",run:X8n},{key:"Mod-i",run:K8n,preventDefault:!0},{key:"Mod-[",run:S0t},{key:"Mod-]",run:w0t},{key:"Mod-Alt-\\",run:m7n},{key:"Shift-Mod-k",run:f7n},{key:"Shift-Mod-\\",run:z8n},{key:"Mod-/",run:l8n},{key:"Alt-A",run:u8n},{key:"Ctrl-m",mac:"Shift-Alt-m",run:g7n}].concat(y7n),x7n={key:"Tab",run:w0t,shift:S0t},r9e=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(r9e(l)):r9e,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 Yd(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=Pwe(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 k0t={from:-1,to:-1,match:/.*/.exec(""),precise:!0},R1e="gm"+(/x/.unicode==null?"":"u");class O0t{constructor(t,n,r,s=0,a=t.length){if(this.text=t,this.to=a,this.curLine="",this.done=!1,this.value=k0t,/\\[sWDnr]|\n|\r|\[\^/.test(n))return new _0t(t,n,r,s,a);this.re=new RegExp(n,R1e+(r?.ignoreCase?"i":"")),this.test=r?.test,this.iter=t.iter();let i=t.lineAt(s);this.curLineStart=i.from,this.matchPos=A7(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=A7(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 dJ=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=dJ.get(t);if(!s||s.from>=r||s.to<=n){let l=new Ej(n,t.sliceString(n,r));return dJ.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)),dJ.set(t,new Ej(i,a)),new Ej(n,a.slice(n-i,r-i))}}class _0t{constructor(t,n,r,s,a){this.text=t,this.to=a,this.done=!1,this.value=k0t,this.matchPos=A7(t,s),this.re=new RegExp(n,R1e+(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=A7(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"&&(O0t.prototype[Symbol.iterator]=_0t.prototype[Symbol.iterator]=function(){return this});function w7n(e){try{return new RegExp(e,R1e),!0}catch{return!1}}function A7(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 S7n=e=>{let{state:t}=e,n=String(t.doc.lineAt(e.state.selection.main.head).number),{close:r,result:s}=rLn(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},k7n={highlightWordAroundCursor:!1,minSelectionLength:1,maxMatches:100,wholeWords:!1},O7n=kn.define({combine(e){return $y(e,k7n,{highlightWordAroundCursor:(t,n)=>t||n,minSelectionLength:Math.min,maxMatches:Math.min})}});function _7n(e){return[N7n,T7n]}const C7n=En.mark({class:"cm-selectionMatch"}),E7n=En.mark({class:"cm-selectionMatch cm-selectionMatch-main"});function s9e(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 j7n(e,t,n,r){return e(t.sliceDoc(n,n+1))==mo.Word&&e(t.sliceDoc(r-1,r))==mo.Word}const T7n=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(O7n),{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),!(s9e(i,n,s.from,s.to)&&j7n(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||s9e(i,n,d,f))&&(s.empty&&d<=s.from&&f>=s.to?l.push(E7n.range(d,f)):(d>=s.to||f<=s.from)&&l.push(C7n.range(d,f)),l.length>t.maxMatches))return En.none}}return En.set(l)}},{decorations:e=>e.decorations}),N7n=Tt.baseTheme({".cm-selectionMatch":{backgroundColor:"#99ff7780"},".cm-searchMatch .cm-selectionMatch":{backgroundColor:"transparent"}}),I7n=({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 A7n(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 R7n=({state:e,dispatch:t})=>{let{ranges:n}=e.selection;if(n.some(a=>a.from===a.to))return I7n({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=A7n(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=kn.define({combine(e){return $y(e,{top:!1,caseSensitive:!1,literal:!1,regexp:!1,wholeWord:!1,createPanel:t=>new Z7n(t),scrollToMatch:t=>Tt.scrollIntoView(t)})}});class C0t{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||w7n(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 z7n(this):new M7n(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 E0t{constructor(t){this.spec=t}}function P7n(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=P7n(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(R7(s,n-a))!=mo.Word||t(P7(s,n-a))!=mo.Word)&&(t(P7(s,r-a))!=mo.Word||t(R7(s,r-a))!=mo.Word))}class M7n extends E0t{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 D7n(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=L7n(t.charCategorizer(t.selection.main.head))),e.test&&(s=D7n(e.test,t,s)),new O0t(t.doc,e.search,{ignoreCase:!e.caseSensitive,test:s},n,r)}function R7(e,t){return e.slice(xc(e,t,!1),t)}function P7(e,t){return e.slice(t,xc(e,t))}function L7n(e){return(t,n,r)=>!r[0].length||(e(R7(r.input,r.index))!=mo.Word||e(P7(r.input,r.index))!=mo.Word)&&(e(P7(r.input,r.index+r[0].length))!=mo.Word||e(R7(r.input,r.index+r[0].length))!=mo.Word)}class z7n extends E0t{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(),P1e=vr.define(),Mw=vl.define({create(e){return new fJ(Hhe(e).create(),null)},update(e,t){for(let n of t.effects)n.is(eM)?e=new fJ(n.value.create(),e.panel):n.is(P1e)&&(e=new fJ(e.query,n.value?$1e:null));return e},provide:e=>V$.from(e,t=>t.panel)});class fJ{constructor(t,n){this.query=t,this.panel=n}}const F7n=En.mark({class:"cm-searchMatch"}),B7n=En.mark({class:"cm-searchMatch cm-searchMatch-selected"}),U7n=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 Cd;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?B7n:F7n)})}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):N0t(t)}}const $7=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:[M1e(e,r),a.scrollToMatch(s.main,e)],userEvent:"select.search"}),T0t(e),!0}),M7=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:[M1e(e,s),i.scrollToMatch(a.main,e)],userEvent:"select.search"}),T0t(e),!0}),q7n=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)}),V7n=({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},a9e=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(M1e(e,i)),d.push(n.facet(HN).scrollToMatch(c.main,e))),e.dispatch({changes:f,selection:c,effects:d,userEvent:"input.replace"}),!0}),H7n=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 $1e(e){return e.state.facet(HN).createPanel(e)}function Hhe(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 C0t({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 j0t(e){let t=Xwe(e,$1e);return t&&t.dom.querySelector("[main-field]")}function T0t(e){let t=j0t(e);t&&t==e.root.activeElement&&t.select()}const N0t=e=>{let t=e.state.field(Mw,!1);if(t&&t.panel){let n=j0t(e);if(n&&n!=e.root.activeElement){let r=Hhe(e.state,t.query.spec);r.valid&&e.dispatch({effects:eM.of(r)}),n.focus(),n.select()}}else e.dispatch({effects:[P1e.of(!0),t?eM.of(Hhe(e.state,t.query.spec)):vr.appendConfig.of(Q7n)]});return!0},I0t=e=>{let t=e.state.field(Mw,!1);if(!t||!t.panel)return!1;let n=Xwe(e,$1e);return n&&n.dom.contains(e.root.activeElement)&&e.focus(),e.dispatch({effects:P1e.of(!1)}),!0},W7n=[{key:"Mod-f",run:N0t,scope:"editor search-panel"},{key:"F3",run:$7,shift:M7,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:$7,shift:M7,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:I0t,scope:"editor search-panel"},{key:"Mod-Shift-l",run:V7n},{key:"Mod-Alt-g",run:S7n},{key:"Mod-d",run:R7n,preventDefault:!0}];class Z7n{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",()=>$7(t),[Xf(t,"next")]),r("prev",()=>M7(t),[Xf(t,"previous")]),r("select",()=>q7n(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",()=>a9e(t),[Xf(t,"replace")]),r("replaceAll",()=>H7n(t),[Xf(t,"replace all")])],ui("button",{name:"close",onclick:()=>I0t(t),"aria-label":Xf(t,"close"),type:"button"},["×"])])}commit(){let t=new C0t({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){p5n(this.view,t,"search-panel")?t.preventDefault():t.keyCode==13&&t.target==this.searchField?(t.preventDefault(),(t.shiftKey?M7:$7)(this.view)):t.keyCode==13&&t.target==this.replaceField&&(t.preventDefault(),a9e(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 M1e(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 G7n=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"}}),Q7n=[Mw,Xp.low(U7n),G7n];class i9e{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 Cd,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=lBn(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 sBn(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 i9e(s,a,t||i.diagnostics[0]);else{if(i.diagnostics.indexOf(r.diagnostic)<0)return!1;r=new i9e(r.from,a,r.diagnostic)}}),r}function Y7n(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(A0t))||e.changes.touchesRange(a.from,Math.max(a.to,r)))}function X7n(e,t){return e.field(Sp,!1)?t:t.concat(vr.appendConfig.of(cBn))}const A0t=vr.define(),D1e=vr.define(),R0t=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(A0t)){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(D1e)?e=new hk(e.diagnostics,n.value?nM.open:null,e.selected):n.is(R0t)&&(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)]}),K7n=En.mark({class:"cm-lintRange cm-lintRange-active"});function J7n(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:eBn(e,s)}}}:null}function eBn(e,t){return ui("ul",{class:"cm-tooltip-lint"},t.map(n=>$0t(e,n,!1)))}const tBn=e=>{let t=e.state.field(Sp,!1);(!t||!t.panel)&&e.dispatch({effects:X7n(e.state,[D1e.of(!0)])});let n=Xwe(e,nM.open);return n&&n.dom.querySelector(".cm-panel-lint ul").focus(),!0},o9e=e=>{let t=e.state.field(Sp,!1);return!t||!t.panel?!1:(e.dispatch({effects:D1e.of(!1)}),!0)},nBn=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)},rBn=[{key:"Mod-Shift-m",run:tBn,preventDefault:!0},{key:"F8",run:nBn}],tM=kn.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:l9e,tooltipFilter:l9e,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 l9e(e,t){return e?t?(n,r)=>t(e(n,r),r):e:t}function P0t(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 $0t(e,t,n){var r;let s=n?P0t(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 sBn 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 c9e{constructor(t,n){this.diagnostic=n,this.id="item_"+Math.floor(Math.random()*4294967295).toString(16),this.dom=$0t(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)o9e(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=P0t(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:()=>o9e(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 c9e(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 c9e(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:R0t.of(r)})}static open(t){return new nM(t)}}function aBn(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 aBn(`<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 iBn=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 oBn(e){return e=="error"?4:e=="warning"?3:e=="info"?2:1}function lBn(e){let t="hint",n=1;for(let r of e){let s=oBn(r.severity);s>n&&(n=s,t=r.severity)}return t}const cBn=[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([K7n.range(t.from,t.to)])}),tLn(J7n,{hideOn:Y7n}),iBn];var u9e=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(K6n)),t.defaultKeymap!==!1&&(a=a.concat(b7n)),t.searchKeymap!==!1&&(a=a.concat(W7n)),t.historyKeymap!==!1&&(a=a.concat(C8n)),t.foldKeymap!==!1&&(a=a.concat(DLn)),t.completionKeymap!==!1&&(a=a.concat(Tbt)),t.lintKeymap!==!1&&(a=a.concat(rBn));var i=[];return t.lineNumbers!==!1&&i.push(pLn()),t.highlightActiveLineGutter!==!1&&i.push(gLn()),t.highlightSpecialChars!==!1&&i.push(T5n()),t.history!==!1&&i.push(v8n()),t.foldGutter!==!1&&i.push(BLn()),t.drawSelection!==!1&&i.push(b5n()),t.dropCursor!==!1&&i.push(O5n()),t.allowMultipleSelections!==!1&&i.push(os.allowMultipleSelections.of(!0)),t.indentOnInput!==!1&&i.push(TLn()),t.syntaxHighlighting!==!1&&i.push(B1(HLn,{fallback:!0})),t.bracketMatching!==!1&&i.push(KLn()),t.closeBrackets!==!1&&i.push(G6n()),t.autocompletion!==!1&&i.push(jbt()),t.rectangularSelection!==!1&&i.push(q5n()),s!==!1&&i.push(W5n()),t.highlightActiveLine!==!1&&i.push($5n()),t.highlightSelectionMatches!==!1&&i.push(_7n()),t.tabSize&&typeof t.tabSize=="number"&&i.push(BN.of(" ".repeat(t.tabSize))),i.concat([FN.of(a.flat())]).filter(Boolean)};const uBn="#e5c07b",d9e="#e06c75",dBn="#56b6c2",fBn="#ffffff",rF="#abb2bf",Whe="#7d8799",pBn="#61afef",hBn="#98c379",f9e="#d19a66",mBn="#c678dd",gBn="#21252b",p9e="#2c313a",h9e="#282c34",pJ="#353a42",vBn="#3E4451",m9e="#528bff",yBn=Tt.theme({"&":{color:rF,backgroundColor:h9e},".cm-content":{caretColor:m9e},".cm-cursor, .cm-dropCursor":{borderLeftColor:m9e},"&.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection":{backgroundColor:vBn},".cm-panels":{backgroundColor:gBn,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:h9e,color:Whe,border:"none"},".cm-activeLineGutter":{backgroundColor:p9e},".cm-foldPlaceholder":{backgroundColor:"transparent",border:"none",color:"#ddd"},".cm-tooltip":{border:"none",backgroundColor:pJ},".cm-tooltip .cm-tooltip-arrow:before":{borderTopColor:"transparent",borderBottomColor:"transparent"},".cm-tooltip .cm-tooltip-arrow:after":{borderTopColor:pJ,borderBottomColor:pJ},".cm-tooltip-autocomplete":{"& > ul > li[aria-selected]":{backgroundColor:p9e,color:rF}}},{dark:!0}),bBn=zg.define([{tag:de.keyword,color:mBn},{tag:[de.name,de.deleted,de.character,de.propertyName,de.macroName],color:d9e},{tag:[de.function(de.variableName),de.labelName],color:pBn},{tag:[de.color,de.constant(de.name),de.standard(de.name)],color:f9e},{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:uBn},{tag:[de.operator,de.operatorKeyword,de.url,de.escape,de.regexp,de.link,de.special(de.string)],color:dBn},{tag:[de.meta,de.comment],color:Whe},{tag:de.strong,fontWeight:"bold"},{tag:de.emphasis,fontStyle:"italic"},{tag:de.strikethrough,textDecoration:"line-through"},{tag:de.link,color:Whe,textDecoration:"underline"},{tag:de.heading,fontWeight:"bold",color:d9e},{tag:[de.atom,de.bool,de.special(de.variableName)],color:f9e},{tag:[de.processingInstruction,de.string,de.inserted],color:hBn},{tag:de.invalid,color:fBn}]),xBn=[yBn,B1(bBn)];var wBn=Tt.theme({"&":{backgroundColor:"#fff"}},{dark:!1}),SBn=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([x7n])),m&&(typeof m=="boolean"?v.unshift(u9e()):v.unshift(u9e(m))),p&&v.unshift(z5n(p)),d){case"light":v.push(wBn);break;case"dark":v.push(xBn);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]},kBn=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 OBn{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 g9e{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 hJ=null,_Bn=()=>typeof window>"u"?new g9e:(hJ||(hJ=new g9e),hJ),CBn=Tt.theme({"& .cm-scroller":{height:"100% !important"}}),v9e=null,mJ=null;function EBn(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===v9e||(v9e=i,mJ=Tt.theme({"&":{height:e,minHeight:t,maxHeight:n,width:r,minWidth:s,maxWidth:a}})),mJ}var y9e=Py.define(),jBn=200,TBn=[];function NBn(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?TBn: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=EBn(h,v,b,w,_,E),Y=Tt.updateListener.of(fe=>{if(fe.docChanged&&typeof r=="function"&&!fe.transactions.some(be=>be.annotation(y9e))){J.current?J.current.reset():(J.current=new OBn(()=>{if(ae.current){var be=ae.current;ae.current=null,be()}J.current=null},jBn),_Bn().add(J.current));var oe=fe.state.doc,me=oe.toString();r(me,fe)}s&&s(kBn(fe))}),ne=SBn({theme:f,editable:A,readOnly:L,placeholder:T,indentWithTab:q,basicSetup:z}),ue=[Y,...pe?[pe]:[],CBn,...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:[y9e.of(!0)]})};oe?ae.current=me:me()}}},[t,F]),{state:te,setState:ee,view:F,setView:Z,container:Q,setContainer:U}}var IBn=["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=qxt(e,IBn),L=g.useRef(null),D=NBn({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 ABn={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 gJ=null;function RBn(){return gJ||(gJ=(async()=>{const[{createHighlighterCore:e},{createJavaScriptRegexEngine:t}]=await Promise.all([uo(()=>import("./core-BwcEFywr.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()})})()),gJ}async function PBn(e,t){const n=ABn[t?.toLowerCase()];if(!n)return null;const r=await RBn(),{tokens:s}=r.codeToTokens(e,{lang:n,defaultColor:!1,themes:{light:"github-light",dark:"github-dark"}});return s}function $Bn(e){return new jO(n1e.define(e))}const M0t=[tg.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())}}),tg.of({name:"JSON",alias:["json5"],extensions:["json","map"],load(){return uo(()=>Promise.resolve().then(()=>u6n),void 0,import.meta.url).then(e=>e.json())}}),tg.of({name:"JSX",extensions:["jsx"],load(){return uo(()=>Promise.resolve().then(()=>S6),void 0,import.meta.url).then(e=>e.javascript({jsx:!0}))}}),tg.of({name:"Markdown",extensions:["md","markdown","mkd"],load(){return uo(()=>Promise.resolve().then(()=>s8n),void 0,import.meta.url).then(e=>e.markdown())}}),tg.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}))}}),tg.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}))}}),tg.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 MBn(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 DBn(e){const t=MBn(e);return jbt({override:[LBn(t)],defaultKeymap:!0,closeOnBlur:!0,icons:!1})}function LBn(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 zBn=/\{\{([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)*)\}\}/g,FBn=En.mark({class:"cm-variable-highlight"}),b9e=new Uyt({regexp:zBn,decoration:()=>FBn}),BBn=xo.fromClass(class{decorations;constructor(e){this.decorations=b9e.createDeco(e)}update(e){this.decorations=b9e.updateDeco(e,this.decorations)}},{decorations:e=>e.decorations}),UBn=BBn;function qBn(){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 VBn(){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=zg.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?qBn():VBn(),[e])},HBn=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"}}),WBn=Xp.highest(Tt.editorAttributes.of({style:"outline: none"})),ZBn=Xp.highest(Tt.theme({"&":{outline:"none"},"&.cm-focused":{outline:"none"},".cm-scroller":{outline:"none"},".cm-content":{outline:"none"},".cm-content:focus":{outline:"none"}})),GBn=[WBn,ZBn],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=[...GBn];return f&&w.push(Tt.lineWrapping),a==="json"?w.push(mf):a==="markdown"&&w.push(T1e({base:IO,codeLanguages:M0t})),i&&a==="markdown"&&w.push(UBn),c&&a==="markdown"&&w.push(DBn(c)),p===!1&&w.push(os.readOnly.of(!0)),w},[a,i,c,p,f]);return o.jsxs("div",{className:K(HBn({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}})]})}),QBn=e=>{try{return JSON.stringify(e??{},null,2)}catch{return"{}"}},YBn=({editorClassName:e="h-[240px] max-h-[40vh]",onSaved:t})=>{const n=My(),{settings:r,setSettings:s}=hV(),a=r?.tracingOptions,i=g.useMemo(()=>QBn(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:[mf],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"})})]})},XBn=()=>{const[e,t]=g.useState(!1);return o.jsxs(o.Fragment,{children:[o.jsxs(Ln,{children:[o.jsx(Pn,{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(Cq,{})})})}),o.jsx($n,{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(YBn,{onSaved:()=>t(!1)})})]})})]})};function KBn({status:e}){switch(e){case"running":return o.jsx(Qt,{});case"failed":return o.jsx(vs,{className:"text-accent2"});case"canceled":return o.jsx(Cf,{className:"text-neutral3"});case"pending":case"waiting":return o.jsx(Xj,{className:"text-neutral3"});case"suspended":return o.jsx(xq,{className:"text-accent3"});case"success":return o.jsx(ra,{className:"text-accent1"});default:return o.jsx(Xj,{className:"text-neutral3"})}}function D0t({status:e}){return o.jsxs(Ln,{children:[o.jsx(Pn,{asChild:!0,children:o.jsx(Ue,{"aria-label":e,className:"shrink-0",children:o.jsx(KBn,{status:e})})}),o.jsx($n,{children:e})]})}var vJ,x9e;function L1e(){if(x9e)return vJ;x9e=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 vJ=r,vJ}var yJ,w9e;function JBn(){return w9e||(w9e=1,yJ="2.2.4"),yJ}var bJ,S9e;function eUn(){return S9e||(S9e=1,bJ={Graph:L1e(),version:JBn()}),bJ}var xJ,k9e;function tUn(){if(k9e)return xJ;k9e=1;var e=L1e();xJ={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 xJ}var wJ,O9e;function nUn(){if(O9e)return wJ;O9e=1,wJ=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 wJ}var SJ,_9e;function L0t(){if(_9e)return SJ;_9e=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 SJ=e,SJ}var kJ,C9e;function z0t(){if(C9e)return kJ;C9e=1;var e=L0t();kJ=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 kJ}var OJ,E9e;function rUn(){if(E9e)return OJ;E9e=1;var e=z0t();OJ=t;function t(n,r,s){return n.nodes().reduce(function(a,i){return a[i]=e(n,i,r,s),a},{})}return OJ}var _J,j9e;function F0t(){if(j9e)return _J;j9e=1,_J=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 _J}var CJ,T9e;function sUn(){if(T9e)return CJ;T9e=1;var e=F0t();CJ=t;function t(n){return e(n).filter(function(r){return r.length>1||r.length===1&&n.hasEdge(r[0],r[0])})}return CJ}var EJ,N9e;function aUn(){if(N9e)return EJ;N9e=1,EJ=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 EJ}var jJ,I9e;function B0t(){if(I9e)return jJ;I9e=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 jJ=e,e.CycleException=t,jJ}var TJ,A9e;function iUn(){if(A9e)return TJ;A9e=1;var e=B0t();TJ=t;function t(n){try{e(n)}catch(r){if(r instanceof e.CycleException)return!1;throw r}return!0}return TJ}var NJ,R9e;function U0t(){if(R9e)return NJ;R9e=1,NJ=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 NJ}var IJ,P9e;function oUn(){if(P9e)return IJ;P9e=1;var e=U0t();IJ=t;function t(n,r){return e(n,r,"post")}return IJ}var AJ,$9e;function lUn(){if($9e)return AJ;$9e=1;var e=U0t();AJ=t;function t(n,r){return e(n,r,"pre")}return AJ}var RJ,M9e;function cUn(){if(M9e)return RJ;M9e=1;var e=L1e(),t=L0t();RJ=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 RJ}var PJ,D9e;function uUn(){return D9e||(D9e=1,PJ={components:nUn(),dijkstra:z0t(),dijkstraAll:rUn(),findCycles:sUn(),floydWarshall:aUn(),isAcyclic:iUn(),postorder:oUn(),preorder:lUn(),prim:cUn(),tarjan:F0t(),topsort:B0t()}),PJ}var $J,L9e;function Rg(){if(L9e)return $J;L9e=1;var e=eUn();return $J={Graph:e.Graph,json:tUn(),alg:uUn(),version:e.version},$J}var MJ,z9e;function dUn(){if(z9e)return MJ;z9e=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 MJ=e,MJ}var DJ,F9e;function fUn(){if(F9e)return DJ;F9e=1;let e=Rg().Graph,t=dUn();DJ=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 DJ}var LJ,B9e;function Al(){if(B9e)return LJ;B9e=1;let e=Rg().Graph;LJ={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 LJ}var zJ,U9e;function pUn(){if(U9e)return zJ;U9e=1;let e=fUn(),t=Al().uniqueId;zJ={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 zJ}var FJ,q9e;function hUn(){if(q9e)return FJ;q9e=1;let e=Al();FJ={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 FJ}var BJ,V9e;function D7(){if(V9e)return BJ;V9e=1;const{applyWithChunking:e}=Al();BJ={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 BJ}var UJ,H9e;function q0t(){if(H9e)return UJ;H9e=1;var e=Rg().Graph,t=D7().slack;UJ=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 UJ}var qJ,W9e;function mUn(){if(W9e)return qJ;W9e=1;var e=q0t(),t=D7().slack,n=D7().longestPath,r=Rg().alg.preorder,s=Rg().alg.postorder,a=Al().simplify;qJ=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 qJ}var VJ,Z9e;function gUn(){if(Z9e)return VJ;Z9e=1;var e=D7(),t=e.longestPath,n=q0t(),r=mUn();VJ=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 VJ}var HJ,G9e;function vUn(){if(G9e)return HJ;G9e=1,HJ=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 HJ}var WJ,Q9e;function yUn(){if(Q9e)return WJ;Q9e=1;let e=Al();WJ={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 WJ}var ZJ,Y9e;function bUn(){if(Y9e)return ZJ;Y9e=1;let e=Al();ZJ=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 ZJ}var GJ,X9e;function xUn(){if(X9e)return GJ;X9e=1,GJ={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 GJ}var QJ,K9e;function wUn(){if(K9e)return QJ;K9e=1;let e=Al();QJ=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 QJ}var YJ,J9e;function SUn(){if(J9e)return YJ;J9e=1;let e=Al().zipObject;YJ=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 YJ}var XJ,eze;function kUn(){if(eze)return XJ;eze=1,XJ=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 XJ}var KJ,tze;function OUn(){if(tze)return KJ;tze=1;let e=Al();KJ=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 KJ}var JJ,nze;function _Un(){if(nze)return JJ;nze=1;let e=Al();JJ=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 JJ}var eee,rze;function CUn(){if(rze)return eee;rze=1;let e=kUn(),t=OUn(),n=_Un();eee=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 eee}var tee,sze;function EUn(){if(sze)return tee;sze=1;let e=Rg().Graph,t=Al();tee=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 tee}var nee,aze;function jUn(){if(aze)return nee;aze=1,nee=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 nee}var ree,ize;function TUn(){if(ize)return ree;ize=1;let e=wUn(),t=SUn(),n=CUn(),r=EUn(),s=jUn(),a=Rg().Graph,i=Al();ree=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 ree}var see,oze;function NUn(){if(oze)return see;oze=1;let e=Rg().Graph,t=Al();see={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 see}var aee,lze;function IUn(){if(lze)return aee;lze=1;let e=Al(),t=NUn().positionX;aee=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 aee}var iee,cze;function AUn(){if(cze)return iee;cze=1;let e=pUn(),t=hUn(),n=gUn(),r=Al().normalizeRanks,s=vUn(),a=Al().removeEmptyRanks,i=yUn(),l=bUn(),c=xUn(),u=TUn(),d=IUn(),f=Al(),p=Rg().Graph;iee=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 iee}var oee,uze;function RUn(){if(uze)return oee;uze=1;let e=Al(),t=Rg().Graph;oee={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 oee}var lee,dze;function PUn(){return dze||(dze=1,lee="1.1.8"),lee}var cee,fze;function $Un(){return fze||(fze=1,cee={graphlib:Rg(),layout:AUn(),debug:RUn(),util:{time:Al().time,notime:Al().notime},version:PUn()}),cee}var MUn=$Un();const pze=Tc(MUn);function Ll(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=Ll(e[n]))!==""&&(t+=(t&&" ")+r);else for(let n in e)e[n]&&(t+=(t&&" ")+n);return t}var DUn={value:()=>{}};function UV(){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 LUn(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=UV.prototype={constructor:sF,on:function(e,t){var n=this._,r=LUn(e+"",n),s,a=-1,i=r.length;if(arguments.length<2){for(;++a<i;)if((s=(e=r[a]).type)&&(s=zUn(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]=hze(n[s],e.name,t);else if(t==null)for(s in n)n[s]=hze(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 zUn(e,t){for(var n=0,r=e.length,s;n<r;++n)if((s=e[n]).name===t)return s.value}function hze(e,t,n){for(var r=0,s=e.length;r<s;++r)if(e[r].name===t){e[r]=DUn,e=e.slice(0,r).concat(e.slice(r+1));break}return n!=null&&e.push({name:t,value:n}),e}var Zhe="http://www.w3.org/1999/xhtml";const mze={svg:"http://www.w3.org/2000/svg",xhtml:Zhe,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function qV(e){var t=e+="",n=t.indexOf(":");return n>=0&&(t=e.slice(0,n))!=="xmlns"&&(e=e.slice(n+1)),mze.hasOwnProperty(t)?{space:mze[t],local:e}:e}function FUn(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===Zhe&&t.documentElement.namespaceURI===Zhe?t.createElement(e):t.createElementNS(n,e)}}function BUn(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function V0t(e){var t=qV(e);return(t.local?BUn:FUn)(t)}function UUn(){}function z1e(e){return e==null?UUn:function(){return this.querySelector(e)}}function qUn(e){typeof e!="function"&&(e=z1e(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 VUn(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function HUn(){return[]}function H0t(e){return e==null?HUn:function(){return this.querySelectorAll(e)}}function WUn(e){return function(){return VUn(e.apply(this,arguments))}}function ZUn(e){typeof e=="function"?e=WUn(e):e=H0t(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 W0t(e){return function(){return this.matches(e)}}function Z0t(e){return function(t){return t.matches(e)}}var GUn=Array.prototype.find;function QUn(e){return function(){return GUn.call(this.children,e)}}function YUn(){return this.firstElementChild}function XUn(e){return this.select(e==null?YUn:QUn(typeof e=="function"?e:Z0t(e)))}var KUn=Array.prototype.filter;function JUn(){return Array.from(this.children)}function eqn(e){return function(){return KUn.call(this.children,e)}}function tqn(e){return this.selectAll(e==null?JUn:eqn(typeof e=="function"?e:Z0t(e)))}function nqn(e){typeof e!="function"&&(e=W0t(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 G0t(e){return new Array(e.length)}function rqn(){return new qp(this._enter||this._groups.map(G0t),this._parents)}function L7(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}L7.prototype={constructor:L7,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 sqn(e){return function(){return e}}function aqn(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 L7(e,a[i]);for(;i<c;++i)(l=t[i])&&(s[i]=l)}function iqn(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 L7(e,a[l]);for(l=0;l<d;++l)(c=t[l])&&u.get(p[l])===c&&(s[l]=c)}function oqn(e){return e.__data__}function lqn(e,t){if(!arguments.length)return Array.from(this,oqn);var n=t?iqn:aqn,r=this._parents,s=this._groups;typeof e!="function"&&(e=sqn(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=cqn(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 cqn(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function uqn(){return new qp(this._exit||this._groups.map(G0t),this._parents)}function dqn(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 fqn(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 pqn(){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 hqn(e){e||(e=mqn);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 mqn(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function gqn(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function vqn(){return Array.from(this)}function yqn(){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 bqn(){let e=0;for(const t of this)++e;return e}function xqn(){return!this.node()}function wqn(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 Sqn(e){return function(){this.removeAttribute(e)}}function kqn(e){return function(){this.removeAttributeNS(e.space,e.local)}}function Oqn(e,t){return function(){this.setAttribute(e,t)}}function _qn(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function Cqn(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}}function Eqn(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 jqn(e,t){var n=qV(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?kqn:Sqn:typeof t=="function"?n.local?Eqn:Cqn:n.local?_qn:Oqn)(n,t))}function Q0t(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function Tqn(e){return function(){this.style.removeProperty(e)}}function Nqn(e,t,n){return function(){this.style.setProperty(e,t,n)}}function Iqn(e,t,n){return function(){var r=t.apply(this,arguments);r==null?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function Aqn(e,t,n){return arguments.length>1?this.each((t==null?Tqn:typeof t=="function"?Iqn:Nqn)(e,t,n??"")):ST(this.node(),e)}function ST(e,t){return e.style.getPropertyValue(t)||Q0t(e).getComputedStyle(e,null).getPropertyValue(t)}function Rqn(e){return function(){delete this[e]}}function Pqn(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 Mqn(e,t){return arguments.length>1?this.each((t==null?Rqn:typeof t=="function"?$qn:Pqn)(e,t)):this.node()[e]}function Y0t(e){return e.trim().split(/^|\s+/)}function F1e(e){return e.classList||new X0t(e)}function X0t(e){this._node=e,this._names=Y0t(e.getAttribute("class")||"")}X0t.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 K0t(e,t){for(var n=F1e(e),r=-1,s=t.length;++r<s;)n.add(t[r])}function J0t(e,t){for(var n=F1e(e),r=-1,s=t.length;++r<s;)n.remove(t[r])}function Dqn(e){return function(){K0t(this,e)}}function Lqn(e){return function(){J0t(this,e)}}function zqn(e,t){return function(){(t.apply(this,arguments)?K0t:J0t)(this,e)}}function Fqn(e,t){var n=Y0t(e+"");if(arguments.length<2){for(var r=F1e(this.node()),s=-1,a=n.length;++s<a;)if(!r.contains(n[s]))return!1;return!0}return this.each((typeof t=="function"?zqn:t?Dqn:Lqn)(n,t))}function Bqn(){this.textContent=""}function Uqn(e){return function(){this.textContent=e}}function qqn(e){return function(){var t=e.apply(this,arguments);this.textContent=t??""}}function Vqn(e){return arguments.length?this.each(e==null?Bqn:(typeof e=="function"?qqn:Uqn)(e)):this.node().textContent}function Hqn(){this.innerHTML=""}function Wqn(e){return function(){this.innerHTML=e}}function Zqn(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??""}}function Gqn(e){return arguments.length?this.each(e==null?Hqn:(typeof e=="function"?Zqn:Wqn)(e)):this.node().innerHTML}function Qqn(){this.nextSibling&&this.parentNode.appendChild(this)}function Yqn(){return this.each(Qqn)}function Xqn(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function Kqn(){return this.each(Xqn)}function Jqn(e){var t=typeof e=="function"?e:V0t(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function eVn(){return null}function tVn(e,t){var n=typeof e=="function"?e:V0t(e),r=t==null?eVn:typeof t=="function"?t:z1e(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})}function nVn(){var e=this.parentNode;e&&e.removeChild(this)}function rVn(){return this.each(nVn)}function sVn(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function aVn(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function iVn(e){return this.select(e?aVn:sVn)}function oVn(e){return arguments.length?this.property("__data__",e):this.node().__data__}function lVn(e){return function(t){e.call(this,t,this.__data__)}}function cVn(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 uVn(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 dVn(e,t,n){return function(){var r=this.__on,s,a=lVn(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 fVn(e,t,n){var r=cVn(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?dVn:uVn,s=0;s<a;++s)this.each(l(r[s],t,n));return this}function ewt(e,t,n){var r=Q0t(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 pVn(e,t){return function(){return ewt(this,e,t)}}function hVn(e,t){return function(){return ewt(this,e,t.apply(this,arguments))}}function mVn(e,t){return this.each((typeof t=="function"?hVn:pVn)(e,t))}function*gVn(){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 twt=[null];function qp(e,t){this._groups=e,this._parents=t}function g3(){return new qp([[document.documentElement]],twt)}function vVn(){return this}qp.prototype=g3.prototype={constructor:qp,select:qUn,selectAll:ZUn,selectChild:XUn,selectChildren:tqn,filter:nqn,data:lqn,enter:rqn,exit:uqn,join:dqn,merge:fqn,selection:vVn,order:pqn,sort:hqn,call:gqn,nodes:vqn,node:yqn,size:bqn,empty:xqn,each:wqn,attr:jqn,style:Aqn,property:Mqn,classed:Fqn,text:Vqn,html:Gqn,raise:Yqn,lower:Kqn,append:Jqn,insert:tVn,remove:rVn,clone:iVn,datum:oVn,on:fVn,dispatch:mVn,[Symbol.iterator]:gVn};function yp(e){return typeof e=="string"?new qp([[document.querySelector(e)]],[document.documentElement]):new qp([[e]],twt)}function yVn(e){let t;for(;t=e.sourceEvent;)e=t;return e}function ng(e,t){if(e=yVn(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 bVn={passive:!1},rM={capture:!0,passive:!1};function uee(e){e.stopImmediatePropagation()}function jj(e){e.preventDefault(),e.stopImmediatePropagation()}function nwt(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 rwt(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 Ghe(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}})}Ghe.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function xVn(e){return!e.ctrlKey&&!e.button}function wVn(){return this.parentNode}function SVn(e,t){return t??{x:e.x,y:e.y}}function kVn(){return navigator.maxTouchPoints||"ontouchstart"in this}function swt(){var e=xVn,t=wVn,n=SVn,r=kVn,s={},a=UV("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,bVn).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),nwt(k.view),uee(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),rwt(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]))&&(uee(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])&&(uee(k),j("end",k,_[E]))}function w(k,_,C,E,j,T){var I=a.copy(),A=ng(T||C,_),P,L,D;if((D=n.call(k,new Ghe("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=ng(B||z,_),M=i;break}I.call(H,k,new Ghe(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 B1e(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function awt(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function v3(){}var sM=.7,z7=1/sM,Tj="\\s*([+-]?\\d+)\\s*",aM="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",ey="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",OVn=/^#([0-9a-f]{3,8})$/,_Vn=new RegExp(`^rgb\\(${Tj},${Tj},${Tj}\\)$`),CVn=new RegExp(`^rgb\\(${ey},${ey},${ey}\\)$`),EVn=new RegExp(`^rgba\\(${Tj},${Tj},${Tj},${aM}\\)$`),jVn=new RegExp(`^rgba\\(${ey},${ey},${ey},${aM}\\)$`),TVn=new RegExp(`^hsl\\(${aM},${ey},${ey}\\)$`),NVn=new RegExp(`^hsla\\(${aM},${ey},${ey},${aM}\\)$`),gze={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};B1e(v3,RO,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:vze,formatHex:vze,formatHex8:IVn,formatHsl:AVn,formatRgb:yze,toString:yze});function vze(){return this.rgb().formatHex()}function IVn(){return this.rgb().formatHex8()}function AVn(){return iwt(this).formatHsl()}function yze(){return this.rgb().formatRgb()}function RO(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=OVn.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?bze(t):n===3?new af(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=_Vn.exec(e))?new af(t[1],t[2],t[3],1):(t=CVn.exec(e))?new af(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=EVn.exec(e))?j6(t[1],t[2],t[3],t[4]):(t=jVn.exec(e))?j6(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=TVn.exec(e))?Sze(t[1],t[2]/100,t[3]/100,1):(t=NVn.exec(e))?Sze(t[1],t[2]/100,t[3]/100,t[4]):gze.hasOwnProperty(e)?bze(gze[e]):e==="transparent"?new af(NaN,NaN,NaN,0):null}function bze(e){return new af(e>>16&255,e>>8&255,e&255,1)}function j6(e,t,n,r){return r<=0&&(e=t=n=NaN),new af(e,t,n,r)}function RVn(e){return e instanceof v3||(e=RO(e)),e?(e=e.rgb(),new af(e.r,e.g,e.b,e.opacity)):new af}function Qhe(e,t,n,r){return arguments.length===1?RVn(e):new af(e,t,n,r??1)}function af(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}B1e(af,Qhe,awt(v3,{brighter(e){return e=e==null?z7:Math.pow(z7,e),new af(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?sM:Math.pow(sM,e),new af(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new af(Hk(this.r),Hk(this.g),Hk(this.b),F7(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:xze,formatHex:xze,formatHex8:PVn,formatRgb:wze,toString:wze}));function xze(){return`#${Tk(this.r)}${Tk(this.g)}${Tk(this.b)}`}function PVn(){return`#${Tk(this.r)}${Tk(this.g)}${Tk(this.b)}${Tk((isNaN(this.opacity)?1:this.opacity)*255)}`}function wze(){const e=F7(this.opacity);return`${e===1?"rgb(":"rgba("}${Hk(this.r)}, ${Hk(this.g)}, ${Hk(this.b)}${e===1?")":`, ${e})`}`}function F7(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 Sze(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new lg(e,t,n,r)}function iwt(e){if(e instanceof lg)return new lg(e.h,e.s,e.l,e.opacity);if(e instanceof v3||(e=RO(e)),!e)return new lg;if(e instanceof lg)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 lg(i,l,c,e.opacity)}function $Vn(e,t,n,r){return arguments.length===1?iwt(e):new lg(e,t,n,r??1)}function lg(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}B1e(lg,$Vn,awt(v3,{brighter(e){return e=e==null?z7:Math.pow(z7,e),new lg(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?sM:Math.pow(sM,e),new lg(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 af(dee(e>=240?e-240:e+120,s,r),dee(e,s,r),dee(e<120?e+240:e-120,s,r),this.opacity)},clamp(){return new lg(kze(this.h),T6(this.s),T6(this.l),F7(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=F7(this.opacity);return`${e===1?"hsl(":"hsla("}${kze(this.h)}, ${T6(this.s)*100}%, ${T6(this.l)*100}%${e===1?")":`, ${e})`}`}}));function kze(e){return e=(e||0)%360,e<0?e+360:e}function T6(e){return Math.max(0,Math.min(1,e||0))}function dee(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 U1e=e=>()=>e;function MVn(e,t){return function(n){return e+n*t}}function DVn(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 LVn(e){return(e=+e)==1?owt:function(t,n){return n-t?DVn(t,n,e):U1e(isNaN(t)?n:t)}}function owt(e,t){var n=t-e;return n?MVn(e,n):U1e(isNaN(e)?t:e)}const B7=(function e(t){var n=LVn(t);function r(s,a){var i=n((s=Qhe(s)).r,(a=Qhe(a)).r),l=n(s.g,a.g),c=n(s.b,a.b),u=owt(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 zVn(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 FVn(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function BVn(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 UVn(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function sg(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function qVn(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 Yhe=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,fee=new RegExp(Yhe.source,"g");function VVn(e){return function(){return e}}function HVn(e){return function(t){return e(t)+""}}function lwt(e,t){var n=Yhe.lastIndex=fee.lastIndex=0,r,s,a,i=-1,l=[],c=[];for(e=e+"",t=t+"";(r=Yhe.exec(e))&&(s=fee.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:sg(r,s)})),n=fee.lastIndex;return n<t.length&&(a=t.slice(n),l[i]?l[i]+=a:l[++i]=a),l.length<2?c[0]?HVn(c[0].x):VVn(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"?U1e(t):(n==="number"?sg:n==="string"?(r=RO(t))?(t=r,B7):lwt:t instanceof RO?B7:t instanceof Date?UVn:FVn(t)?zVn:Array.isArray(t)?BVn:typeof t.valueOf!="function"&&typeof t.toString!="function"||isNaN(t)?qVn:sg)(e,t)}function q1e(e,t){return e=+e,t=+t,function(n){return Math.round(e*(1-n)+t*n)}}var Oze=180/Math.PI,Xhe={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function cwt(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)*Oze,skewX:Math.atan(c)*Oze,scaleX:i,scaleY:l}}var N6;function WVn(e){const t=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?Xhe:cwt(t.a,t.b,t.c,t.d,t.e,t.f)}function ZVn(e){return e==null||(N6||(N6=document.createElementNS("http://www.w3.org/2000/svg","g")),N6.setAttribute("transform",e),!(e=N6.transform.baseVal.consolidate()))?Xhe:(e=e.matrix,cwt(e.a,e.b,e.c,e.d,e.e,e.f))}function uwt(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:sg(u,f)},{i:v-2,x:sg(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:sg(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:sg(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:sg(u,f)},{i:v-2,x:sg(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 GVn=uwt(WVn,"px, ","px)","deg)"),QVn=uwt(ZVn,", ",")",")"),YVn=1e-12;function _ze(e){return((e=Math.exp(e))+1/e)/2}function XVn(e){return((e=Math.exp(e))-1/e)/2}function KVn(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<YVn)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=_ze(_),I=u/(n*S)*(T*KVn(t*j+_)-XVn(_));return[l+I*h,c+I*m,u*T/_ze(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 JVn(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,dwt=1e3,U7,f2,q7=0,PO=0,VV=0,iM=typeof performance=="object"&&performance.now?performance:Date,fwt=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function V1e(){return PO||(fwt(eHn),PO=iM.now()+VV)}function eHn(){PO=0}function V7(){this._call=this._time=this._next=null}V7.prototype=pwt.prototype={constructor:V7,restart:function(e,t,n){if(typeof e!="function")throw new TypeError("callback is not a function");n=(n==null?V1e():+n)+(t==null?0:+t),!this._next&&f2!==this&&(f2?f2._next=this:U7=this,f2=this),this._call=e,this._time=n,Khe()},stop:function(){this._call&&(this._call=null,this._time=1/0,Khe())}};function pwt(e,t,n){var r=new V7;return r.restart(e,t,n),r}function tHn(){V1e(),++kT;for(var e=U7,t;e;)(t=PO-e._time)>=0&&e._call.call(void 0,t),e=e._next;--kT}function Cze(){PO=(q7=iM.now())+VV,kT=d2=0;try{tHn()}finally{kT=0,rHn(),PO=0}}function nHn(){var e=iM.now(),t=e-q7;t>dwt&&(VV-=t,q7=e)}function rHn(){for(var e,t=U7,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:U7=n);f2=e,Khe(r)}function Khe(e){if(!kT){d2&&(d2=clearTimeout(d2));var t=e-PO;t>24?(e<1/0&&(d2=setTimeout(Cze,e-iM.now()-VV)),QA&&(QA=clearInterval(QA))):(QA||(q7=iM.now(),QA=setInterval(nHn,dwt)),kT=1,fwt(Cze))}}function Eze(e,t,n){var r=new V7;return t=t==null?0:+t,r.restart(s=>{r.stop(),e(s+t)},t,n),r}var sHn=UV("start","end","cancel","interrupt"),aHn=[],hwt=0,jze=1,Jhe=2,iF=3,Tze=4,eme=5,oF=6;function HV(e,t,n,r,s,a){var i=e.__transition;if(!i)e.__transition={};else if(n in i)return;iHn(e,n,{name:t,index:r,group:s,on:sHn,tween:aHn,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:hwt})}function H1e(e,t){var n=Ug(e,t);if(n.state>hwt)throw new Error("too late; already scheduled");return n}function Dy(e,t){var n=Ug(e,t);if(n.state>iF)throw new Error("too late; already running");return n}function Ug(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function iHn(e,t,n){var r=e.__transition,s;r[t]=n,n.timer=pwt(a,0,n.time);function a(u){n.state=jze,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!==jze)return c();for(d in r)if(h=r[d],h.name===n.name){if(h.state===iF)return Eze(i);h.state===Tze?(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(Eze(function(){n.state===iF&&(n.state=Tze,n.timer.restart(l,n.delay,n.time),l(u))}),n.state=Jhe,n.on.call("start",e,e.__data__,n.index,n.group),n.state===Jhe){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=eme,1),f=-1,p=s.length;++f<p;)s[f].call(e,d);n.state===eme&&(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>Jhe&&r.state<eme,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 oHn(e){return this.each(function(){lF(this,e)})}function lHn(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 cHn(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 uHn(e,t){var n=this._id;if(e+="",arguments.length<2){for(var r=Ug(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?lHn:cHn)(n,e,t))}function W1e(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 Ug(s,r).value[t]}}function mwt(e,t){var n;return(typeof t=="number"?sg:t instanceof RO?B7:(n=RO(t))?(t=n,B7):lwt)(e,t)}function dHn(e){return function(){this.removeAttribute(e)}}function fHn(e){return function(){this.removeAttributeNS(e.space,e.local)}}function pHn(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 hHn(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 mHn(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 gHn(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 vHn(e,t){var n=qV(e),r=n==="transform"?QVn:mwt;return this.attrTween(e,typeof t=="function"?(n.local?gHn:mHn)(n,r,W1e(this,"attr."+e,t)):t==null?(n.local?fHn:dHn)(n):(n.local?hHn:pHn)(n,r,t))}function yHn(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function bHn(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function xHn(e,t){var n,r;function s(){var a=t.apply(this,arguments);return a!==r&&(n=(r=a)&&bHn(e,a)),n}return s._value=t,s}function wHn(e,t){var n,r;function s(){var a=t.apply(this,arguments);return a!==r&&(n=(r=a)&&yHn(e,a)),n}return s._value=t,s}function SHn(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=qV(e);return this.tween(n,(r.local?xHn:wHn)(r,t))}function kHn(e,t){return function(){H1e(this,e).delay=+t.apply(this,arguments)}}function OHn(e,t){return t=+t,function(){H1e(this,e).delay=t}}function _Hn(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?kHn:OHn)(t,e)):Ug(this.node(),t).delay}function CHn(e,t){return function(){Dy(this,e).duration=+t.apply(this,arguments)}}function EHn(e,t){return t=+t,function(){Dy(this,e).duration=t}}function jHn(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?CHn:EHn)(t,e)):Ug(this.node(),t).duration}function THn(e,t){if(typeof t!="function")throw new Error;return function(){Dy(this,e).ease=t}}function NHn(e){var t=this._id;return arguments.length?this.each(THn(t,e)):Ug(this.node(),t).ease}function IHn(e,t){return function(){var n=t.apply(this,arguments);if(typeof n!="function")throw new Error;Dy(this,e).ease=n}}function AHn(e){if(typeof e!="function")throw new Error;return this.each(IHn(this._id,e))}function RHn(e){typeof e!="function"&&(e=W0t(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 PHn(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 MHn(e,t,n){var r,s,a=$Hn(t)?H1e:Dy;return function(){var i=a(this,e),l=i.on;l!==r&&(s=(r=l).copy()).on(t,n),i.on=s}}function DHn(e,t){var n=this._id;return arguments.length<2?Ug(this.node(),n).on.on(e):this.each(MHn(n,e,t))}function LHn(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function zHn(){return this.on("end.remove",LHn(this._id))}function FHn(e){var t=this._name,n=this._id;typeof e!="function"&&(e=z1e(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,HV(u[p],t,n,p,u,Ug(d,n)));return new _x(a,this._parents,t,n)}function BHn(e){var t=this._name,n=this._id;typeof e!="function"&&(e=H0t(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=Ug(d,n),v=0,y=p.length;v<y;++v)(h=p[v])&&HV(h,t,n,v,p,m);a.push(p),i.push(d)}return new _x(a,i,t,n)}var UHn=g3.prototype.constructor;function qHn(){return new UHn(this._groups,this._parents)}function VHn(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 gwt(e){return function(){this.style.removeProperty(e)}}function HHn(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 WHn(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 ZHn(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=gwt(t)):void 0;(u!==n||s!==d)&&(r=(n=u).copy()).on(i,s=d),c.on=r}}function GHn(e,t,n){var r=(e+="")=="transform"?GVn:mwt;return t==null?this.styleTween(e,VHn(e,r)).on("end.style."+e,gwt(e)):typeof t=="function"?this.styleTween(e,WHn(e,r,W1e(this,"style."+e,t))).each(ZHn(this._id,e)):this.styleTween(e,HHn(e,r,t),n).on("end.style."+e,null)}function QHn(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}function YHn(e,t,n){var r,s;function a(){var i=t.apply(this,arguments);return i!==s&&(r=(s=i)&&QHn(e,i,n)),r}return a._value=t,a}function XHn(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,YHn(e,t,n??""))}function KHn(e){return function(){this.textContent=e}}function JHn(e){return function(){var t=e(this);this.textContent=t??""}}function eWn(e){return this.tween("text",typeof e=="function"?JHn(W1e(this,"text",e)):KHn(e==null?"":e+""))}function tWn(e){return function(t){this.textContent=e.call(this,t)}}function nWn(e){var t,n;function r(){var s=e.apply(this,arguments);return s!==n&&(t=(n=s)&&tWn(s)),t}return r._value=e,r}function rWn(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,nWn(e))}function sWn(){for(var e=this._name,t=this._id,n=vwt(),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=Ug(c,t);HV(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 aWn(){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 iWn=0;function _x(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}function vwt(){return++iWn}var mb=g3.prototype;_x.prototype={constructor:_x,select:FHn,selectAll:BHn,selectChild:mb.selectChild,selectChildren:mb.selectChildren,filter:RHn,merge:PHn,selection:qHn,transition:sWn,call:mb.call,nodes:mb.nodes,node:mb.node,size:mb.size,empty:mb.empty,each:mb.each,on:DHn,attr:vHn,attrTween:SHn,style:GHn,styleTween:XHn,text:eWn,textTween:rWn,remove:zHn,tween:uHn,delay:_Hn,duration:jHn,ease:NHn,easeVarying:AHn,end:aWn,[Symbol.iterator]:mb[Symbol.iterator]};function oWn(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var lWn={time:null,delay:0,duration:250,ease:oWn};function cWn(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 uWn(e){var t,n;e instanceof _x?(t=e._id,e=e._name):(t=vwt(),(n=lWn).time=V1e(),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])&&HV(c,e,t,u,i,n||cWn(c,t));return new _x(r,this._parents,e,t)}g3.prototype.interrupt=oHn;g3.prototype.transition=uWn;const I6=e=>()=>e;function dWn(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 WV=new Wb(1,0,0);ywt.prototype=Wb.prototype;function ywt(e){for(;!e.__zoom;)if(!(e=e.parentNode))return WV;return e.__zoom}function pee(e){e.stopImmediatePropagation()}function YA(e){e.preventDefault(),e.stopImmediatePropagation()}function fWn(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function pWn(){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 Nze(){return this.__zoom||WV}function hWn(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function mWn(){return navigator.maxTouchPoints||"ontouchstart"in this}function gWn(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 bwt(){var e=fWn,t=pWn,n=gWn,r=hWn,s=mWn,a=[0,1/0],i=[[-1/0,-1/0],[1/0,1/0]],l=250,c=aF,u=UV("start","zoom","end"),d,f,p,h=500,m=150,v=0,y=10;function b(D){D.property("__zoom",Nze).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",Nze),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(WV.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 dWn(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=ng(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=ng(D,H),M=D.clientX,Q=D.clientY;nwt(D.view),pee(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]=ng(F,H),z.mouse[1]),z.extent,i))}function $(F){B.on("mousemove.zoom mouseup.zoom",null),rwt(F.view,z.moved),YA(F),z.event(F).end()}}function I(D,...q){if(e.apply(this,arguments)){var H=this.__zoom,z=ng(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(pee(D),M=0;M<z;++M)Q=H[M],U=ng(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=ng(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(pee(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=ng(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]],xwt=["Enter"," ","Escape"],wwt={"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 Swt={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 Ize={[rr.Left]:rr.Right,[rr.Right]:rr.Left,[rr.Top]:rr.Bottom,[rr.Bottom]:rr.Top};function kwt(e){return e===null?null:e?"valid":"invalid"}const Owt=e=>"id"in e&&"source"in e&&"target"in e,vWn=e=>"id"in e&&"position"in e&&!("source"in e)&&!("target"in e),Z1e=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}},yWn=(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):Z1e(s)?s:t.nodeLookup.get(s.id));const l=i?H7(i,t.nodeOrigin):{x:0,y:0,x2:0,y2:0};return ZV(r,l)},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return GV(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=ZV(n,H7(s)),r=!0)}),r?GV(n):{x:0,y:0,width:0,height:0}},G1e=(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},bWn=(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 xWn(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 wWn({nodes:e,width:t,height:n,panZoom:r,minZoom:s,maxZoom:a},i){if(e.size===0)return Promise.resolve(!0);const l=xWn(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 _wt({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 SWn({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=bWn(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 Cwt(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 Aze=(e,t,n)=>e<t?_T(Math.abs(e-t),1,t)/t:e>n?-_T(Math.abs(e-n),1,t)/t:0,Ewt=(e,t,n=15,r=40)=>{const s=Aze(e.x,r,t.width-r)*n,a=Aze(e.y,r,t.height-r)*n;return[s,a]},ZV=(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)}),tme=({x:e,y:t,width:n,height:r})=>({x:e,y:t,x2:e+n,y2:t+r}),GV=({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}=Z1e(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}},H7=(e,t=[0,0])=>{const{x:n,y:r}=Z1e(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)}},jwt=(e,t)=>GV(ZV(tme(e),tme(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)},Rze=e=>hg(e.width)&&hg(e.height)&&hg(e.x)&&hg(e.y),hg=e=>!isNaN(e)&&isFinite(e),kWn=(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},W7=({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 OWn(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 _Wn(e,t,n,r,s,a){const{x:i,y:l}=W7(e,[t,n,r]),{x:c,y:u}=W7({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=OWn(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=_Wn(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 Twt(e){return(e.measured?.width??e.width??e.initialWidth)!==void 0&&(e.measured?.height??e.height??e.initialHeight)!==void 0}function Nwt(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 Pze(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function CWn(){let e,t;return{promise:new Promise((r,s)=>{e=r,t=s}),resolve:e,reject:t}}function EWn(e){return{...wwt,...e||{}}}function W2(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:r,containerBounds:s}){const{x:a,y:i}=mg(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 Y1e=e=>({width:e.offsetWidth,height:e.offsetHeight}),Iwt=e=>e?.getRootNode?.()||window?.document,jWn=["INPUT","SELECT","TEXTAREA"];function Awt(e){const t=e.composedPath?.()?.[0]||e.target;return t?.nodeType!==1?!1:jWn.includes(t.nodeName)||t.hasAttribute("contenteditable")||!!t.closest(".nokey")}const Rwt=e=>"clientX"in e,mg=(e,t)=>{const n=Rwt(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)}},$ze=(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,...Y1e(i)}})};function Pwt({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 Mze({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 X1e({sourceX:e,sourceY:t,sourcePosition:n=rr.Bottom,targetX:r,targetY:s,targetPosition:a=rr.Top,curvature:i=.25}){const[l,c]=Mze({pos:n,x1:e,y1:t,x2:r,y2:s,c:i}),[u,d]=Mze({pos:a,x1:r,y1:s,x2:e,y2:t,c:i}),[f,p,h,m]=Pwt({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 $wt({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 TWn({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 NWn({sourceNode:e,targetNode:t,width:n,height:r,transform:s}){const a=ZV(H7(e),H7(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,GV(a))>0}const IWn=({source:e,sourceHandle:t,target:n,targetHandle:r})=>`xy-edge__${e}${t||""}-${n}${r||""}`,AWn=(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)),RWn=(e,t,n={})=>{if(!e.source||!e.target)return t;const r=n.getEdgeId||IWn;let s;return Owt(e)?s={...e}:s={...e,id:r(e)},AWn(s,t)?t:(s.sourceHandle===null&&delete s.sourceHandle,s.targetHandle===null&&delete s.targetHandle,t.concat(s))};function Mwt({sourceX:e,sourceY:t,targetX:n,targetY:r}){const[s,a,i,l]=$wt({sourceX:e,sourceY:t,targetX:n,targetY:r});return[`M ${e},${t}L ${n},${r}`,s,a,i,l]}const Dze={[rr.Left]:{x:-1,y:0},[rr.Right]:{x:1,y:0},[rr.Top]:{x:0,y:-1},[rr.Bottom]:{x:0,y:1}},PWn=({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},Lze=(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=Dze[t],c=Dze[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=PWn({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]=$wt({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 MWn(e,t,n,r){const s=Math.min(Lze(e,t)/2,Lze(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 nme({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+=MWn(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 zze(e){return e&&!!(e.internals.handleBounds||e.handles?.length)&&!!(e.measured.width||e.width||e.initialWidth)}function DWn(e){const{sourceNode:t,targetNode:n}=e;if(!zze(t)||!zze(n))return null;const r=t.internals.handleBounds||Fze(t.handles),s=n.internals.handleBounds||Fze(n.handles),a=Bze(r?.source??[],e.sourceHandle),i=Bze(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 Fze(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 Bze(e,t){return e&&(t?e.find(n=>n.id===t):e[0])||null}function rme(e,t){return e?typeof e=="string"?e:`${t?`${t}__`:""}${Object.keys(e).sort().map(r=>`${r}=${e[r]}`).join("&")}`:""}function LWn(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=rme(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 Dwt=1e3,zWn=10,K1e={nodeOrigin:[0,0],nodeExtent:oM,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},FWn={...K1e,checkEquality:!0};function J1e(e,t){const n={...e};for(const r in t)t[r]!==void 0&&(n[r]=t[r]);return n}function BWn(e,t,n){const r=J1e(K1e,n);for(const s of e.values())if(s.parentId)tSe(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 UWn(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 eSe(e){return e==="manual"}function sme(e,t,n,r={}){const s=J1e(FWn,r),a={i:0},i=new Map(t),l=s?.elevateNodesOnSelect&&!eSe(s.zIndexMode)?Dwt: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:UWn(d,f),z:Lwt(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&&tSe(f,t,n,r,a),u||=d.selected??!1}return{nodesInitialized:c,hasSelectedNodes:u}}function qWn(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 tSe(e,t,n,r,s){const{elevateNodesOnSelect:a,nodeOrigin:i,nodeExtent:l,zIndexMode:c}=J1e(K1e,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}qWn(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*zWn),s&&d.internals.rootParentIndex!==void 0&&(s.i=d.internals.rootParentIndex);const f=a&&!eSe(c)?Dwt:0,{x:p,y:h,z:m}=VWn(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 Lwt(e,t,n){const r=hg(e.zIndex)?e.zIndex:0;return eSe(n)?r:r+(e.selected?t:0)}function VWn(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=Cwt(f,c,t));const p=Lwt(e,s,a),h=t.internals.z??0;return{x:f.x,y:f.y,z:h>=p?h+1:p}}function nSe(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=jwt(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 HWn(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=Y1e(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=Cwt(k,v,t.get(m.parentId)):w&&(k=$O(k,w,v));const _={...m,measured:v,internals:{...m.internals,positionAbsolute:k,handleBounds:{source:$ze("source",h.nodeElement,S,f,m.id),target:$ze("target",h.nodeElement,S,f,m.id)}}};t.set(m.id,_),m.parentId&&tSe(_,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=nSe(p,t,n,s);u.push(...h)}return{changes:u,updatedInternals:c}}async function WWn({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 Uze(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 zwt(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}`;Uze("source",c,d,e,s,i),Uze("target",c,u,e,a,l),t.set(r.id,r)}}function Fwt(e,t){if(!e.parentId)return!1;const n=t.get(e.parentId);return n?n.selected?!0:Fwt(n,t):!1}function qze(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 ZWn(e,t,n,r){const s=new Map;for(const[a,i]of e)if((i.selected||i.id===r)&&(!i.parentId||!Fwt(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 hee({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 GWn({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 QWn({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?tme(b3(l)):null,X=F&&z?GWn({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}=_wt({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]=hee({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]=Ewt(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=ZWn(L,q,$,C),l.size>0&&(n||M||!C&&Q)){const[F,Z]=hee({nodeId:C,dragItems:l,nodeLookup:L});n?.(P.sourceEvent,l,F,Z),M?.(P.sourceEvent,F,Z),C||Q?.(P.sourceEvent,Z)}}const A=swt().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=mg(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=mg(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=mg(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]=hee({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||!qze(L,`.${S}`,k))&&(!w||qze(L,w,k))});p.call(A)}function b(){p?.on(".drag",null)}return{update:y,destroy:b}}function YWn(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 XWn=250;function KWn(e,t,n,r){let s=[],a=1/0;const i=YWn(e,n,t+XWn);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 Bwt(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 Uwt(e,t){return e||(t?.classList.contains("target")?"target":t?.classList.contains("source")?"source":null)}function JWn(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}const qwt=()=>!0;function eZn(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=qwt,onReconnectEnd:S,updateConnection:w,getTransform:k,getFromHandle:_,autoPanSpeed:C,dragThreshold:E=1,handleDomNode:j}){const T=Iwt(e.target);let I=0,A;const{x:P,y:L}=mg(e),D=Uwt(a,j),q=l?.getBoundingClientRect();let H=!1;if(!q||!D)return;const z=Bwt(s,D,r,c,t);if(!z)return;let B=mg(e,q),V=!1,M=null,Q=!1,U=null;function $(){if(!d||!q)return;const[pe,Y]=Ewt(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:Ize[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}=mg(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=mg(pe,q),A=KWn(w3(B,Y,!1,[1,1]),n,c,F),V||($(),V=!0);const ne=Vwt(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=JWn(!!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?W7({x:ne.toHandle.x,y:ne.toHandle.y},Y):B,toHandle:ne.toHandle,toPosition:Q&&ne.toHandle?ne.toHandle.position:Ize[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 Vwt(e,{handle:t,connectionMode:n,fromNodeId:r,fromHandleId:s,fromType:a,doc:i,lib:l,flowId:c,isValidConnection:u=qwt,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}=mg(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=Uwt(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=Bwt(w,S,k,d,n,!0)}return b}const ame={onPointerDown:eZn,isValid:Vwt};function tZn({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=bwt().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:ng}}const QV=e=>({x:e.x,y:e.y,zoom:e.k}),mee=({x:e,y:t,zoom:n})=>WV.translate(e,t).scale(n),GE=(e,t)=>e.target.closest(`.${t}`),Hwt=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),nZn=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,gee=(e,t=0,n=nZn,r=()=>{})=>{const s=typeof t=="number"&&t>0;return s||r(),s?e.transition().duration(t).ease(n).on("end",r):e},Wwt=e=>{const t=e.ctrlKey&&dM()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function rZn({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=ng(d),b=Wwt(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=QV(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 sZn({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 aZn({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return r=>{if(r.sourceEvent?.internal)return;const s=QV(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 iZn({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:r,onPanZoom:s}){return a=>{e.usedRightMouseButton=!!(n&&Hwt(t,e.mouseButton??0)),a.sourceEvent?.sync||r([a.transform.x,a.transform.y,a.transform.k]),s&&!a.sourceEvent?.internal&&s?.(a.sourceEvent,QV(a.transform))}}function oZn({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:r,onPanZoomEnd:s,onPaneContextMenu:a}){return i=>{if(!i.sourceEvent?.internal&&(e.isZoomingOrPanning=!1,a&&Hwt(t,e.mouseButton??0)&&!e.usedRightMouseButton&&i.sourceEvent&&a(i.sourceEvent),e.usedRightMouseButton=!1,r(!1),s)){const l=QV(i.transform);e.prevViewport=l,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{s?.(i.sourceEvent,l)},n?150:0)}}}function lZn({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 cZn({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=bwt().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(Wwt);function v(A,P){return p?new Promise(L=>{f?.interpolate(P?.interpolate==="linear"?sx:aF).transform(gee(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:!hg(te)||te<0?0:te);const ae=J?rZn({zoomPanValues:u,noWheelClassName:A,d3Selection:p,d3Zoom:f,panOnScrollMode:z,panOnScrollSpeed:B,zoomOnPinch:M,onPanZoomStart:i,onPanZoom:a,onPanZoomEnd:l}):sZn({noWheelClassName:A,preventScrolling:V,d3ZoomHandler:h});if(p.on("wheel.zoom",ae,{passive:!1}),!D){const Y=aZn({zoomPanValues:u,onDraggingChange:c,onPanZoomStart:i});f.on("start",Y);const ne=iZn({zoomPanValues:u,panOnDrag:H,onPaneContextMenu:!!L,onPanZoom:a,onTransformChange:Z});f.on("zoom",ne);const ue=oZn({zoomPanValues:u,panOnDrag:H,panOnScroll:q,onPaneContextMenu:L,onPanZoomEnd:l,onDraggingChange:c});f.on("end",ue)}const pe=lZn({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=mee(A),q=f?.constrain()(D,P,L);return q&&await v(q),new Promise(H=>H(q))}async function w(A,P){const L=mee(A);return await v(L,P),new Promise(D=>D(L))}function k(A){if(p){const P=mee(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?ywt(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(gee(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(gee(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=!hg(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 uZn({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 Vze(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 Hze(e,t){return e?!t:t}function dZn(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=(Hze(c,u)?-j:j)/E:j=(Hze(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 Zwt={width:0,height:0,x:0,y:0},fZn={...Zwt,pointerX:0,pointerY:0,aspectRatio:1};function pZn(e){return[[0,0],[e.measured.width,e.measured.height]]}function hZn(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 mZn({domNode:e,nodeId:t,getStoreItems:n,onChange:r,onEnd:s}){const a=yp(e);let i={controlDirection:Vze("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={...Zwt},S={...fZn};i={boundaries:d,resizeDirection:p,keepAspectRatio:f,controlDirection:Vze(u)};let w,k=null,_=[],C,E,j,T=!1;const I=swt().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"?pZn(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=hZn(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}=dZn(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=uZn({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 gZn={},Wze=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:()=>{(gZn?"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},vZn=e=>e?Wze(e):Wze,{useDebugValue:yZn}=Le,{useSyncExternalStoreWithSelector:bZn}=$Sn,xZn=e=>e;function Gwt(e,t=xZn,n){const r=bZn(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return yZn(r),r}const Zze=(e,t)=>{const n=vZn(e),r=(s,a=t)=>Gwt(n,s,a);return Object.assign(r,n),r},wZn=(e,t)=>e?Zze(e,t):Zze;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 YV=g.createContext(null),SZn=YV.Provider,Qwt=my.error001();function qs(e,t){const n=g.useContext(YV);if(n===null)throw new Error(Qwt);return Gwt(n,e,t)}function ko(){const e=g.useContext(YV);if(e===null)throw new Error(Qwt);return g.useMemo(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}const Gze={display:"none"},kZn={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},Ywt="react-flow__node-desc",Xwt="react-flow__edge-desc",OZn="react-flow__aria-live",_Zn=e=>e.ariaLiveMessage,CZn=e=>e.ariaLabelConfig;function EZn({rfId:e}){const t=qs(_Zn);return o.jsx("div",{id:`${OZn}-${e}`,"aria-live":"assertive","aria-atomic":"true",style:kZn,children:t})}function jZn({rfId:e,disableKeyboardA11y:t}){const n=qs(CZn);return o.jsxs(o.Fragment,{children:[o.jsx("div",{id:`${Ywt}-${e}`,style:Gze,children:t?n["node.a11yDescription.default"]:n["node.a11yDescription.keyboardDisabled"]}),o.jsx("div",{id:`${Xwt}-${e}`,style:Gze,children:n["edge.a11yDescription.default"]}),!t&&o.jsx(EZn,{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:Ll(["react-flow__panel",n,...i]),style:r,ref:a,...s,children:t})});S3.displayName="Panel";function TZn({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 NZn=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 IZn(e,t){return so(e.selectedNodes.map(P6),t.selectedNodes.map(P6))&&so(e.selectedEdges.map(P6),t.selectedEdges.map(P6))}function AZn({onSelectionChange:e}){const t=ko(),{selectedNodes:n,selectedEdges:r}=qs(NZn,IZn);return g.useEffect(()=>{const s={nodes:n,edges:r};e?.(s),t.getState().onSelectionChangeHandlers.forEach(a=>a(s))},[n,r,e]),null}const RZn=e=>!!e.onSelectionChangeHandlers;function PZn({onSelectionChange:e}){const t=qs(RZn);return e||t?o.jsx(AZn,{onSelectionChange:e}):null}const ime=typeof window<"u"?g.useLayoutEffect:g.useEffect,Kwt=[0,0],$Zn={x:0,y:0,zoom:1},MZn=["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"],Qze=[...MZn,"rfId"],DZn=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}),Yze={translateExtent:oM,nodeOrigin:Kwt,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:"nopan",rfId:"1"};function LZn(e){const{setNodes:t,setEdges:n,setMinZoom:r,setMaxZoom:s,setTranslateExtent:a,setNodeExtent:i,reset:l,setDefaultNodesAndEdges:c}=qs(DZn,so),u=ko();ime(()=>(c(e.defaultNodes,e.defaultEdges),()=>{d.current=Yze,l()}),[]);const d=g.useRef(Yze);return ime(()=>{for(const f of Qze){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:EWn(p)}):f==="fitView"?u.setState({fitViewQueued:p}):f==="fitViewOptions"?u.setState({fitViewOptions:p}):u.setState({[f]:p})))}d.current=e},Qze.map(f=>e[f])),null}function Xze(){return typeof window>"u"||!window.matchMedia?null:window.matchMedia("(prefers-color-scheme: dark)")}function zZn(e){const[t,n]=g.useState(e==="system"?null:e);return g.useEffect(()=>{if(e!=="system"){n(e);return}const r=Xze(),s=()=>n(r?.matches?"dark":"light");return s(),r?.addEventListener("change",s),()=>{r?.removeEventListener("change",s)}},[e]),t!==null?t:Xze()?.matches?"dark":"light"}const Kze=typeof document<"u"?document:null;function fM(e=null,t={target:Kze,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 z7n(this):new M7n(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 E0t{constructor(t){this.spec=t}}function P7n(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=P7n(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(R7(s,n-a))!=mo.Word||t(P7(s,n-a))!=mo.Word)&&(t(P7(s,r-a))!=mo.Word||t(R7(s,r-a))!=mo.Word))}class M7n extends E0t{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 D7n(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=L7n(t.charCategorizer(t.selection.main.head))),e.test&&(s=D7n(e.test,t,s)),new O0t(t.doc,e.search,{ignoreCase:!e.caseSensitive,test:s},n,r)}function R7(e,t){return e.slice(xc(e,t,!1),t)}function P7(e,t){return e.slice(t,xc(e,t))}function L7n(e){return(t,n,r)=>!r[0].length||(e(R7(r.input,r.index))!=mo.Word||e(P7(r.input,r.index))!=mo.Word)&&(e(P7(r.input,r.index+r[0].length))!=mo.Word||e(R7(r.input,r.index+r[0].length))!=mo.Word)}class z7n extends E0t{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(),P1e=vr.define(),Mw=vl.define({create(e){return new fJ(Hhe(e).create(),null)},update(e,t){for(let n of t.effects)n.is(eM)?e=new fJ(n.value.create(),e.panel):n.is(P1e)&&(e=new fJ(e.query,n.value?$1e:null));return e},provide:e=>V$.from(e,t=>t.panel)});class fJ{constructor(t,n){this.query=t,this.panel=n}}const F7n=En.mark({class:"cm-searchMatch"}),B7n=En.mark({class:"cm-searchMatch cm-searchMatch-selected"}),U7n=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 Cd;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?B7n:F7n)})}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):N0t(t)}}const $7=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:[M1e(e,r),a.scrollToMatch(s.main,e)],userEvent:"select.search"}),T0t(e),!0}),M7=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:[M1e(e,s),i.scrollToMatch(a.main,e)],userEvent:"select.search"}),T0t(e),!0}),q7n=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)}),V7n=({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},a9e=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(M1e(e,i)),d.push(n.facet(HN).scrollToMatch(c.main,e))),e.dispatch({changes:f,selection:c,effects:d,userEvent:"input.replace"}),!0}),H7n=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 $1e(e){return e.state.facet(HN).createPanel(e)}function Hhe(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 C0t({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 j0t(e){let t=Xwe(e,$1e);return t&&t.dom.querySelector("[main-field]")}function T0t(e){let t=j0t(e);t&&t==e.root.activeElement&&t.select()}const N0t=e=>{let t=e.state.field(Mw,!1);if(t&&t.panel){let n=j0t(e);if(n&&n!=e.root.activeElement){let r=Hhe(e.state,t.query.spec);r.valid&&e.dispatch({effects:eM.of(r)}),n.focus(),n.select()}}else e.dispatch({effects:[P1e.of(!0),t?eM.of(Hhe(e.state,t.query.spec)):vr.appendConfig.of(Q7n)]});return!0},I0t=e=>{let t=e.state.field(Mw,!1);if(!t||!t.panel)return!1;let n=Xwe(e,$1e);return n&&n.dom.contains(e.root.activeElement)&&e.focus(),e.dispatch({effects:P1e.of(!1)}),!0},W7n=[{key:"Mod-f",run:N0t,scope:"editor search-panel"},{key:"F3",run:$7,shift:M7,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:$7,shift:M7,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:I0t,scope:"editor search-panel"},{key:"Mod-Shift-l",run:V7n},{key:"Mod-Alt-g",run:S7n},{key:"Mod-d",run:R7n,preventDefault:!0}];class Z7n{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",()=>$7(t),[Xf(t,"next")]),r("prev",()=>M7(t),[Xf(t,"previous")]),r("select",()=>q7n(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",()=>a9e(t),[Xf(t,"replace")]),r("replaceAll",()=>H7n(t),[Xf(t,"replace all")])],ui("button",{name:"close",onclick:()=>I0t(t),"aria-label":Xf(t,"close"),type:"button"},["×"])])}commit(){let t=new C0t({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){p5n(this.view,t,"search-panel")?t.preventDefault():t.keyCode==13&&t.target==this.searchField?(t.preventDefault(),(t.shiftKey?M7:$7)(this.view)):t.keyCode==13&&t.target==this.replaceField&&(t.preventDefault(),a9e(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 M1e(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 G7n=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"}}),Q7n=[Mw,Xp.low(U7n),G7n];class i9e{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 Cd,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=lBn(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 sBn(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 i9e(s,a,t||i.diagnostics[0]);else{if(i.diagnostics.indexOf(r.diagnostic)<0)return!1;r=new i9e(r.from,a,r.diagnostic)}}),r}function Y7n(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(A0t))||e.changes.touchesRange(a.from,Math.max(a.to,r)))}function X7n(e,t){return e.field(Sp,!1)?t:t.concat(vr.appendConfig.of(cBn))}const A0t=vr.define(),D1e=vr.define(),R0t=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(A0t)){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(D1e)?e=new hk(e.diagnostics,n.value?nM.open:null,e.selected):n.is(R0t)&&(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)]}),K7n=En.mark({class:"cm-lintRange cm-lintRange-active"});function J7n(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:eBn(e,s)}}}:null}function eBn(e,t){return ui("ul",{class:"cm-tooltip-lint"},t.map(n=>$0t(e,n,!1)))}const tBn=e=>{let t=e.state.field(Sp,!1);(!t||!t.panel)&&e.dispatch({effects:X7n(e.state,[D1e.of(!0)])});let n=Xwe(e,nM.open);return n&&n.dom.querySelector(".cm-panel-lint ul").focus(),!0},o9e=e=>{let t=e.state.field(Sp,!1);return!t||!t.panel?!1:(e.dispatch({effects:D1e.of(!1)}),!0)},nBn=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)},rBn=[{key:"Mod-Shift-m",run:tBn,preventDefault:!0},{key:"F8",run:nBn}],tM=kn.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:l9e,tooltipFilter:l9e,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 l9e(e,t){return e?t?(n,r)=>t(e(n,r),r):e:t}function P0t(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 $0t(e,t,n){var r;let s=n?P0t(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 sBn 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 c9e{constructor(t,n){this.diagnostic=n,this.id="item_"+Math.floor(Math.random()*4294967295).toString(16),this.dom=$0t(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)o9e(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=P0t(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:()=>o9e(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 c9e(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 c9e(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:R0t.of(r)})}static open(t){return new nM(t)}}function aBn(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 aBn(`<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 iBn=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 oBn(e){return e=="error"?4:e=="warning"?3:e=="info"?2:1}function lBn(e){let t="hint",n=1;for(let r of e){let s=oBn(r.severity);s>n&&(n=s,t=r.severity)}return t}const cBn=[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([K7n.range(t.from,t.to)])}),tLn(J7n,{hideOn:Y7n}),iBn];var u9e=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(K6n)),t.defaultKeymap!==!1&&(a=a.concat(b7n)),t.searchKeymap!==!1&&(a=a.concat(W7n)),t.historyKeymap!==!1&&(a=a.concat(C8n)),t.foldKeymap!==!1&&(a=a.concat(DLn)),t.completionKeymap!==!1&&(a=a.concat(Tbt)),t.lintKeymap!==!1&&(a=a.concat(rBn));var i=[];return t.lineNumbers!==!1&&i.push(pLn()),t.highlightActiveLineGutter!==!1&&i.push(gLn()),t.highlightSpecialChars!==!1&&i.push(T5n()),t.history!==!1&&i.push(v8n()),t.foldGutter!==!1&&i.push(BLn()),t.drawSelection!==!1&&i.push(b5n()),t.dropCursor!==!1&&i.push(O5n()),t.allowMultipleSelections!==!1&&i.push(os.allowMultipleSelections.of(!0)),t.indentOnInput!==!1&&i.push(TLn()),t.syntaxHighlighting!==!1&&i.push(B1(HLn,{fallback:!0})),t.bracketMatching!==!1&&i.push(KLn()),t.closeBrackets!==!1&&i.push(G6n()),t.autocompletion!==!1&&i.push(jbt()),t.rectangularSelection!==!1&&i.push(q5n()),s!==!1&&i.push(W5n()),t.highlightActiveLine!==!1&&i.push($5n()),t.highlightSelectionMatches!==!1&&i.push(_7n()),t.tabSize&&typeof t.tabSize=="number"&&i.push(BN.of(" ".repeat(t.tabSize))),i.concat([FN.of(a.flat())]).filter(Boolean)};const uBn="#e5c07b",d9e="#e06c75",dBn="#56b6c2",fBn="#ffffff",rF="#abb2bf",Whe="#7d8799",pBn="#61afef",hBn="#98c379",f9e="#d19a66",mBn="#c678dd",gBn="#21252b",p9e="#2c313a",h9e="#282c34",pJ="#353a42",vBn="#3E4451",m9e="#528bff",yBn=Tt.theme({"&":{color:rF,backgroundColor:h9e},".cm-content":{caretColor:m9e},".cm-cursor, .cm-dropCursor":{borderLeftColor:m9e},"&.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection":{backgroundColor:vBn},".cm-panels":{backgroundColor:gBn,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:h9e,color:Whe,border:"none"},".cm-activeLineGutter":{backgroundColor:p9e},".cm-foldPlaceholder":{backgroundColor:"transparent",border:"none",color:"#ddd"},".cm-tooltip":{border:"none",backgroundColor:pJ},".cm-tooltip .cm-tooltip-arrow:before":{borderTopColor:"transparent",borderBottomColor:"transparent"},".cm-tooltip .cm-tooltip-arrow:after":{borderTopColor:pJ,borderBottomColor:pJ},".cm-tooltip-autocomplete":{"& > ul > li[aria-selected]":{backgroundColor:p9e,color:rF}}},{dark:!0}),bBn=zg.define([{tag:de.keyword,color:mBn},{tag:[de.name,de.deleted,de.character,de.propertyName,de.macroName],color:d9e},{tag:[de.function(de.variableName),de.labelName],color:pBn},{tag:[de.color,de.constant(de.name),de.standard(de.name)],color:f9e},{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:uBn},{tag:[de.operator,de.operatorKeyword,de.url,de.escape,de.regexp,de.link,de.special(de.string)],color:dBn},{tag:[de.meta,de.comment],color:Whe},{tag:de.strong,fontWeight:"bold"},{tag:de.emphasis,fontStyle:"italic"},{tag:de.strikethrough,textDecoration:"line-through"},{tag:de.link,color:Whe,textDecoration:"underline"},{tag:de.heading,fontWeight:"bold",color:d9e},{tag:[de.atom,de.bool,de.special(de.variableName)],color:f9e},{tag:[de.processingInstruction,de.string,de.inserted],color:hBn},{tag:de.invalid,color:fBn}]),xBn=[yBn,B1(bBn)];var wBn=Tt.theme({"&":{backgroundColor:"#fff"}},{dark:!1}),SBn=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([x7n])),m&&(typeof m=="boolean"?v.unshift(u9e()):v.unshift(u9e(m))),p&&v.unshift(z5n(p)),d){case"light":v.push(wBn);break;case"dark":v.push(xBn);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]},kBn=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 OBn{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 g9e{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 hJ=null,_Bn=()=>typeof window>"u"?new g9e:(hJ||(hJ=new g9e),hJ),CBn=Tt.theme({"& .cm-scroller":{height:"100% !important"}}),v9e=null,mJ=null;function EBn(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===v9e||(v9e=i,mJ=Tt.theme({"&":{height:e,minHeight:t,maxHeight:n,width:r,minWidth:s,maxWidth:a}})),mJ}var y9e=Py.define(),jBn=200,TBn=[];function NBn(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?TBn: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=EBn(h,v,b,w,_,E),Y=Tt.updateListener.of(fe=>{if(fe.docChanged&&typeof r=="function"&&!fe.transactions.some(be=>be.annotation(y9e))){J.current?J.current.reset():(J.current=new OBn(()=>{if(ae.current){var be=ae.current;ae.current=null,be()}J.current=null},jBn),_Bn().add(J.current));var oe=fe.state.doc,me=oe.toString();r(me,fe)}s&&s(kBn(fe))}),ne=SBn({theme:f,editable:A,readOnly:L,placeholder:T,indentWithTab:q,basicSetup:z}),ue=[Y,...pe?[pe]:[],CBn,...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:[y9e.of(!0)]})};oe?ae.current=me:me()}}},[t,F]),{state:te,setState:ee,view:F,setView:Z,container:Q,setContainer:U}}var IBn=["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=qxt(e,IBn),L=g.useRef(null),D=NBn({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 ABn={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 gJ=null;function RBn(){return gJ||(gJ=(async()=>{const[{createHighlighterCore:e},{createJavaScriptRegexEngine:t}]=await Promise.all([uo(()=>import("./core-CljSJVwM.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()})})()),gJ}async function PBn(e,t){const n=ABn[t?.toLowerCase()];if(!n)return null;const r=await RBn(),{tokens:s}=r.codeToTokens(e,{lang:n,defaultColor:!1,themes:{light:"github-light",dark:"github-dark"}});return s}function $Bn(e){return new jO(n1e.define(e))}const M0t=[tg.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())}}),tg.of({name:"JSON",alias:["json5"],extensions:["json","map"],load(){return uo(()=>Promise.resolve().then(()=>u6n),void 0,import.meta.url).then(e=>e.json())}}),tg.of({name:"JSX",extensions:["jsx"],load(){return uo(()=>Promise.resolve().then(()=>S6),void 0,import.meta.url).then(e=>e.javascript({jsx:!0}))}}),tg.of({name:"Markdown",extensions:["md","markdown","mkd"],load(){return uo(()=>Promise.resolve().then(()=>s8n),void 0,import.meta.url).then(e=>e.markdown())}}),tg.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}))}}),tg.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}))}}),tg.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 MBn(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 DBn(e){const t=MBn(e);return jbt({override:[LBn(t)],defaultKeymap:!0,closeOnBlur:!0,icons:!1})}function LBn(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 zBn=/\{\{([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)*)\}\}/g,FBn=En.mark({class:"cm-variable-highlight"}),b9e=new Uyt({regexp:zBn,decoration:()=>FBn}),BBn=xo.fromClass(class{decorations;constructor(e){this.decorations=b9e.createDeco(e)}update(e){this.decorations=b9e.updateDeco(e,this.decorations)}},{decorations:e=>e.decorations}),UBn=BBn;function qBn(){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 VBn(){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=zg.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?qBn():VBn(),[e])},HBn=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"}}),WBn=Xp.highest(Tt.editorAttributes.of({style:"outline: none"})),ZBn=Xp.highest(Tt.theme({"&":{outline:"none"},"&.cm-focused":{outline:"none"},".cm-scroller":{outline:"none"},".cm-content":{outline:"none"},".cm-content:focus":{outline:"none"}})),GBn=[WBn,ZBn],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=[...GBn];return f&&w.push(Tt.lineWrapping),a==="json"?w.push(mf):a==="markdown"&&w.push(T1e({base:IO,codeLanguages:M0t})),i&&a==="markdown"&&w.push(UBn),c&&a==="markdown"&&w.push(DBn(c)),p===!1&&w.push(os.readOnly.of(!0)),w},[a,i,c,p,f]);return o.jsxs("div",{className:K(HBn({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}})]})}),QBn=e=>{try{return JSON.stringify(e??{},null,2)}catch{return"{}"}},YBn=({editorClassName:e="h-[240px] max-h-[40vh]",onSaved:t})=>{const n=My(),{settings:r,setSettings:s}=hV(),a=r?.tracingOptions,i=g.useMemo(()=>QBn(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:[mf],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"})})]})},XBn=()=>{const[e,t]=g.useState(!1);return o.jsxs(o.Fragment,{children:[o.jsxs(Ln,{children:[o.jsx(Pn,{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(Cq,{})})})}),o.jsx($n,{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(YBn,{onSaved:()=>t(!1)})})]})})]})};function KBn({status:e}){switch(e){case"running":return o.jsx(Qt,{});case"failed":return o.jsx(vs,{className:"text-accent2"});case"canceled":return o.jsx(Cf,{className:"text-neutral3"});case"pending":case"waiting":return o.jsx(Xj,{className:"text-neutral3"});case"suspended":return o.jsx(xq,{className:"text-accent3"});case"success":return o.jsx(ra,{className:"text-accent1"});default:return o.jsx(Xj,{className:"text-neutral3"})}}function D0t({status:e}){return o.jsxs(Ln,{children:[o.jsx(Pn,{asChild:!0,children:o.jsx(Ue,{"aria-label":e,className:"shrink-0",children:o.jsx(KBn,{status:e})})}),o.jsx($n,{children:e})]})}var vJ,x9e;function L1e(){if(x9e)return vJ;x9e=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 vJ=r,vJ}var yJ,w9e;function JBn(){return w9e||(w9e=1,yJ="2.2.4"),yJ}var bJ,S9e;function eUn(){return S9e||(S9e=1,bJ={Graph:L1e(),version:JBn()}),bJ}var xJ,k9e;function tUn(){if(k9e)return xJ;k9e=1;var e=L1e();xJ={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 xJ}var wJ,O9e;function nUn(){if(O9e)return wJ;O9e=1,wJ=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 wJ}var SJ,_9e;function L0t(){if(_9e)return SJ;_9e=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 SJ=e,SJ}var kJ,C9e;function z0t(){if(C9e)return kJ;C9e=1;var e=L0t();kJ=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 kJ}var OJ,E9e;function rUn(){if(E9e)return OJ;E9e=1;var e=z0t();OJ=t;function t(n,r,s){return n.nodes().reduce(function(a,i){return a[i]=e(n,i,r,s),a},{})}return OJ}var _J,j9e;function F0t(){if(j9e)return _J;j9e=1,_J=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 _J}var CJ,T9e;function sUn(){if(T9e)return CJ;T9e=1;var e=F0t();CJ=t;function t(n){return e(n).filter(function(r){return r.length>1||r.length===1&&n.hasEdge(r[0],r[0])})}return CJ}var EJ,N9e;function aUn(){if(N9e)return EJ;N9e=1,EJ=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 EJ}var jJ,I9e;function B0t(){if(I9e)return jJ;I9e=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 jJ=e,e.CycleException=t,jJ}var TJ,A9e;function iUn(){if(A9e)return TJ;A9e=1;var e=B0t();TJ=t;function t(n){try{e(n)}catch(r){if(r instanceof e.CycleException)return!1;throw r}return!0}return TJ}var NJ,R9e;function U0t(){if(R9e)return NJ;R9e=1,NJ=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 NJ}var IJ,P9e;function oUn(){if(P9e)return IJ;P9e=1;var e=U0t();IJ=t;function t(n,r){return e(n,r,"post")}return IJ}var AJ,$9e;function lUn(){if($9e)return AJ;$9e=1;var e=U0t();AJ=t;function t(n,r){return e(n,r,"pre")}return AJ}var RJ,M9e;function cUn(){if(M9e)return RJ;M9e=1;var e=L1e(),t=L0t();RJ=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 RJ}var PJ,D9e;function uUn(){return D9e||(D9e=1,PJ={components:nUn(),dijkstra:z0t(),dijkstraAll:rUn(),findCycles:sUn(),floydWarshall:aUn(),isAcyclic:iUn(),postorder:oUn(),preorder:lUn(),prim:cUn(),tarjan:F0t(),topsort:B0t()}),PJ}var $J,L9e;function Rg(){if(L9e)return $J;L9e=1;var e=eUn();return $J={Graph:e.Graph,json:tUn(),alg:uUn(),version:e.version},$J}var MJ,z9e;function dUn(){if(z9e)return MJ;z9e=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 MJ=e,MJ}var DJ,F9e;function fUn(){if(F9e)return DJ;F9e=1;let e=Rg().Graph,t=dUn();DJ=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 DJ}var LJ,B9e;function Al(){if(B9e)return LJ;B9e=1;let e=Rg().Graph;LJ={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 LJ}var zJ,U9e;function pUn(){if(U9e)return zJ;U9e=1;let e=fUn(),t=Al().uniqueId;zJ={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 zJ}var FJ,q9e;function hUn(){if(q9e)return FJ;q9e=1;let e=Al();FJ={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 FJ}var BJ,V9e;function D7(){if(V9e)return BJ;V9e=1;const{applyWithChunking:e}=Al();BJ={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 BJ}var UJ,H9e;function q0t(){if(H9e)return UJ;H9e=1;var e=Rg().Graph,t=D7().slack;UJ=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 UJ}var qJ,W9e;function mUn(){if(W9e)return qJ;W9e=1;var e=q0t(),t=D7().slack,n=D7().longestPath,r=Rg().alg.preorder,s=Rg().alg.postorder,a=Al().simplify;qJ=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 qJ}var VJ,Z9e;function gUn(){if(Z9e)return VJ;Z9e=1;var e=D7(),t=e.longestPath,n=q0t(),r=mUn();VJ=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 VJ}var HJ,G9e;function vUn(){if(G9e)return HJ;G9e=1,HJ=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 HJ}var WJ,Q9e;function yUn(){if(Q9e)return WJ;Q9e=1;let e=Al();WJ={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 WJ}var ZJ,Y9e;function bUn(){if(Y9e)return ZJ;Y9e=1;let e=Al();ZJ=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 ZJ}var GJ,X9e;function xUn(){if(X9e)return GJ;X9e=1,GJ={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 GJ}var QJ,K9e;function wUn(){if(K9e)return QJ;K9e=1;let e=Al();QJ=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 QJ}var YJ,J9e;function SUn(){if(J9e)return YJ;J9e=1;let e=Al().zipObject;YJ=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 YJ}var XJ,eze;function kUn(){if(eze)return XJ;eze=1,XJ=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 XJ}var KJ,tze;function OUn(){if(tze)return KJ;tze=1;let e=Al();KJ=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 KJ}var JJ,nze;function _Un(){if(nze)return JJ;nze=1;let e=Al();JJ=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 JJ}var eee,rze;function CUn(){if(rze)return eee;rze=1;let e=kUn(),t=OUn(),n=_Un();eee=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 eee}var tee,sze;function EUn(){if(sze)return tee;sze=1;let e=Rg().Graph,t=Al();tee=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 tee}var nee,aze;function jUn(){if(aze)return nee;aze=1,nee=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 nee}var ree,ize;function TUn(){if(ize)return ree;ize=1;let e=wUn(),t=SUn(),n=CUn(),r=EUn(),s=jUn(),a=Rg().Graph,i=Al();ree=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 ree}var see,oze;function NUn(){if(oze)return see;oze=1;let e=Rg().Graph,t=Al();see={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 see}var aee,lze;function IUn(){if(lze)return aee;lze=1;let e=Al(),t=NUn().positionX;aee=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 aee}var iee,cze;function AUn(){if(cze)return iee;cze=1;let e=pUn(),t=hUn(),n=gUn(),r=Al().normalizeRanks,s=vUn(),a=Al().removeEmptyRanks,i=yUn(),l=bUn(),c=xUn(),u=TUn(),d=IUn(),f=Al(),p=Rg().Graph;iee=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 iee}var oee,uze;function RUn(){if(uze)return oee;uze=1;let e=Al(),t=Rg().Graph;oee={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 oee}var lee,dze;function PUn(){return dze||(dze=1,lee="1.1.8"),lee}var cee,fze;function $Un(){return fze||(fze=1,cee={graphlib:Rg(),layout:AUn(),debug:RUn(),util:{time:Al().time,notime:Al().notime},version:PUn()}),cee}var MUn=$Un();const pze=Tc(MUn);function Ll(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=Ll(e[n]))!==""&&(t+=(t&&" ")+r);else for(let n in e)e[n]&&(t+=(t&&" ")+n);return t}var DUn={value:()=>{}};function UV(){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 LUn(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=UV.prototype={constructor:sF,on:function(e,t){var n=this._,r=LUn(e+"",n),s,a=-1,i=r.length;if(arguments.length<2){for(;++a<i;)if((s=(e=r[a]).type)&&(s=zUn(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]=hze(n[s],e.name,t);else if(t==null)for(s in n)n[s]=hze(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 zUn(e,t){for(var n=0,r=e.length,s;n<r;++n)if((s=e[n]).name===t)return s.value}function hze(e,t,n){for(var r=0,s=e.length;r<s;++r)if(e[r].name===t){e[r]=DUn,e=e.slice(0,r).concat(e.slice(r+1));break}return n!=null&&e.push({name:t,value:n}),e}var Zhe="http://www.w3.org/1999/xhtml";const mze={svg:"http://www.w3.org/2000/svg",xhtml:Zhe,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function qV(e){var t=e+="",n=t.indexOf(":");return n>=0&&(t=e.slice(0,n))!=="xmlns"&&(e=e.slice(n+1)),mze.hasOwnProperty(t)?{space:mze[t],local:e}:e}function FUn(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===Zhe&&t.documentElement.namespaceURI===Zhe?t.createElement(e):t.createElementNS(n,e)}}function BUn(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function V0t(e){var t=qV(e);return(t.local?BUn:FUn)(t)}function UUn(){}function z1e(e){return e==null?UUn:function(){return this.querySelector(e)}}function qUn(e){typeof e!="function"&&(e=z1e(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 VUn(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function HUn(){return[]}function H0t(e){return e==null?HUn:function(){return this.querySelectorAll(e)}}function WUn(e){return function(){return VUn(e.apply(this,arguments))}}function ZUn(e){typeof e=="function"?e=WUn(e):e=H0t(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 W0t(e){return function(){return this.matches(e)}}function Z0t(e){return function(t){return t.matches(e)}}var GUn=Array.prototype.find;function QUn(e){return function(){return GUn.call(this.children,e)}}function YUn(){return this.firstElementChild}function XUn(e){return this.select(e==null?YUn:QUn(typeof e=="function"?e:Z0t(e)))}var KUn=Array.prototype.filter;function JUn(){return Array.from(this.children)}function eqn(e){return function(){return KUn.call(this.children,e)}}function tqn(e){return this.selectAll(e==null?JUn:eqn(typeof e=="function"?e:Z0t(e)))}function nqn(e){typeof e!="function"&&(e=W0t(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 G0t(e){return new Array(e.length)}function rqn(){return new qp(this._enter||this._groups.map(G0t),this._parents)}function L7(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}L7.prototype={constructor:L7,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 sqn(e){return function(){return e}}function aqn(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 L7(e,a[i]);for(;i<c;++i)(l=t[i])&&(s[i]=l)}function iqn(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 L7(e,a[l]);for(l=0;l<d;++l)(c=t[l])&&u.get(p[l])===c&&(s[l]=c)}function oqn(e){return e.__data__}function lqn(e,t){if(!arguments.length)return Array.from(this,oqn);var n=t?iqn:aqn,r=this._parents,s=this._groups;typeof e!="function"&&(e=sqn(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=cqn(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 cqn(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function uqn(){return new qp(this._exit||this._groups.map(G0t),this._parents)}function dqn(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 fqn(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 pqn(){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 hqn(e){e||(e=mqn);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 mqn(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function gqn(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function vqn(){return Array.from(this)}function yqn(){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 bqn(){let e=0;for(const t of this)++e;return e}function xqn(){return!this.node()}function wqn(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 Sqn(e){return function(){this.removeAttribute(e)}}function kqn(e){return function(){this.removeAttributeNS(e.space,e.local)}}function Oqn(e,t){return function(){this.setAttribute(e,t)}}function _qn(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function Cqn(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}}function Eqn(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 jqn(e,t){var n=qV(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?kqn:Sqn:typeof t=="function"?n.local?Eqn:Cqn:n.local?_qn:Oqn)(n,t))}function Q0t(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function Tqn(e){return function(){this.style.removeProperty(e)}}function Nqn(e,t,n){return function(){this.style.setProperty(e,t,n)}}function Iqn(e,t,n){return function(){var r=t.apply(this,arguments);r==null?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function Aqn(e,t,n){return arguments.length>1?this.each((t==null?Tqn:typeof t=="function"?Iqn:Nqn)(e,t,n??"")):ST(this.node(),e)}function ST(e,t){return e.style.getPropertyValue(t)||Q0t(e).getComputedStyle(e,null).getPropertyValue(t)}function Rqn(e){return function(){delete this[e]}}function Pqn(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 Mqn(e,t){return arguments.length>1?this.each((t==null?Rqn:typeof t=="function"?$qn:Pqn)(e,t)):this.node()[e]}function Y0t(e){return e.trim().split(/^|\s+/)}function F1e(e){return e.classList||new X0t(e)}function X0t(e){this._node=e,this._names=Y0t(e.getAttribute("class")||"")}X0t.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 K0t(e,t){for(var n=F1e(e),r=-1,s=t.length;++r<s;)n.add(t[r])}function J0t(e,t){for(var n=F1e(e),r=-1,s=t.length;++r<s;)n.remove(t[r])}function Dqn(e){return function(){K0t(this,e)}}function Lqn(e){return function(){J0t(this,e)}}function zqn(e,t){return function(){(t.apply(this,arguments)?K0t:J0t)(this,e)}}function Fqn(e,t){var n=Y0t(e+"");if(arguments.length<2){for(var r=F1e(this.node()),s=-1,a=n.length;++s<a;)if(!r.contains(n[s]))return!1;return!0}return this.each((typeof t=="function"?zqn:t?Dqn:Lqn)(n,t))}function Bqn(){this.textContent=""}function Uqn(e){return function(){this.textContent=e}}function qqn(e){return function(){var t=e.apply(this,arguments);this.textContent=t??""}}function Vqn(e){return arguments.length?this.each(e==null?Bqn:(typeof e=="function"?qqn:Uqn)(e)):this.node().textContent}function Hqn(){this.innerHTML=""}function Wqn(e){return function(){this.innerHTML=e}}function Zqn(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??""}}function Gqn(e){return arguments.length?this.each(e==null?Hqn:(typeof e=="function"?Zqn:Wqn)(e)):this.node().innerHTML}function Qqn(){this.nextSibling&&this.parentNode.appendChild(this)}function Yqn(){return this.each(Qqn)}function Xqn(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function Kqn(){return this.each(Xqn)}function Jqn(e){var t=typeof e=="function"?e:V0t(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function eVn(){return null}function tVn(e,t){var n=typeof e=="function"?e:V0t(e),r=t==null?eVn:typeof t=="function"?t:z1e(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})}function nVn(){var e=this.parentNode;e&&e.removeChild(this)}function rVn(){return this.each(nVn)}function sVn(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function aVn(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function iVn(e){return this.select(e?aVn:sVn)}function oVn(e){return arguments.length?this.property("__data__",e):this.node().__data__}function lVn(e){return function(t){e.call(this,t,this.__data__)}}function cVn(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 uVn(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 dVn(e,t,n){return function(){var r=this.__on,s,a=lVn(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 fVn(e,t,n){var r=cVn(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?dVn:uVn,s=0;s<a;++s)this.each(l(r[s],t,n));return this}function ewt(e,t,n){var r=Q0t(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 pVn(e,t){return function(){return ewt(this,e,t)}}function hVn(e,t){return function(){return ewt(this,e,t.apply(this,arguments))}}function mVn(e,t){return this.each((typeof t=="function"?hVn:pVn)(e,t))}function*gVn(){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 twt=[null];function qp(e,t){this._groups=e,this._parents=t}function g3(){return new qp([[document.documentElement]],twt)}function vVn(){return this}qp.prototype=g3.prototype={constructor:qp,select:qUn,selectAll:ZUn,selectChild:XUn,selectChildren:tqn,filter:nqn,data:lqn,enter:rqn,exit:uqn,join:dqn,merge:fqn,selection:vVn,order:pqn,sort:hqn,call:gqn,nodes:vqn,node:yqn,size:bqn,empty:xqn,each:wqn,attr:jqn,style:Aqn,property:Mqn,classed:Fqn,text:Vqn,html:Gqn,raise:Yqn,lower:Kqn,append:Jqn,insert:tVn,remove:rVn,clone:iVn,datum:oVn,on:fVn,dispatch:mVn,[Symbol.iterator]:gVn};function yp(e){return typeof e=="string"?new qp([[document.querySelector(e)]],[document.documentElement]):new qp([[e]],twt)}function yVn(e){let t;for(;t=e.sourceEvent;)e=t;return e}function ng(e,t){if(e=yVn(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 bVn={passive:!1},rM={capture:!0,passive:!1};function uee(e){e.stopImmediatePropagation()}function jj(e){e.preventDefault(),e.stopImmediatePropagation()}function nwt(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 rwt(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 Ghe(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}})}Ghe.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function xVn(e){return!e.ctrlKey&&!e.button}function wVn(){return this.parentNode}function SVn(e,t){return t??{x:e.x,y:e.y}}function kVn(){return navigator.maxTouchPoints||"ontouchstart"in this}function swt(){var e=xVn,t=wVn,n=SVn,r=kVn,s={},a=UV("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,bVn).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),nwt(k.view),uee(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),rwt(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]))&&(uee(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])&&(uee(k),j("end",k,_[E]))}function w(k,_,C,E,j,T){var I=a.copy(),A=ng(T||C,_),P,L,D;if((D=n.call(k,new Ghe("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=ng(B||z,_),M=i;break}I.call(H,k,new Ghe(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 B1e(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function awt(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function v3(){}var sM=.7,z7=1/sM,Tj="\\s*([+-]?\\d+)\\s*",aM="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",ey="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",OVn=/^#([0-9a-f]{3,8})$/,_Vn=new RegExp(`^rgb\\(${Tj},${Tj},${Tj}\\)$`),CVn=new RegExp(`^rgb\\(${ey},${ey},${ey}\\)$`),EVn=new RegExp(`^rgba\\(${Tj},${Tj},${Tj},${aM}\\)$`),jVn=new RegExp(`^rgba\\(${ey},${ey},${ey},${aM}\\)$`),TVn=new RegExp(`^hsl\\(${aM},${ey},${ey}\\)$`),NVn=new RegExp(`^hsla\\(${aM},${ey},${ey},${aM}\\)$`),gze={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};B1e(v3,RO,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:vze,formatHex:vze,formatHex8:IVn,formatHsl:AVn,formatRgb:yze,toString:yze});function vze(){return this.rgb().formatHex()}function IVn(){return this.rgb().formatHex8()}function AVn(){return iwt(this).formatHsl()}function yze(){return this.rgb().formatRgb()}function RO(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=OVn.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?bze(t):n===3?new af(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=_Vn.exec(e))?new af(t[1],t[2],t[3],1):(t=CVn.exec(e))?new af(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=EVn.exec(e))?j6(t[1],t[2],t[3],t[4]):(t=jVn.exec(e))?j6(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=TVn.exec(e))?Sze(t[1],t[2]/100,t[3]/100,1):(t=NVn.exec(e))?Sze(t[1],t[2]/100,t[3]/100,t[4]):gze.hasOwnProperty(e)?bze(gze[e]):e==="transparent"?new af(NaN,NaN,NaN,0):null}function bze(e){return new af(e>>16&255,e>>8&255,e&255,1)}function j6(e,t,n,r){return r<=0&&(e=t=n=NaN),new af(e,t,n,r)}function RVn(e){return e instanceof v3||(e=RO(e)),e?(e=e.rgb(),new af(e.r,e.g,e.b,e.opacity)):new af}function Qhe(e,t,n,r){return arguments.length===1?RVn(e):new af(e,t,n,r??1)}function af(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}B1e(af,Qhe,awt(v3,{brighter(e){return e=e==null?z7:Math.pow(z7,e),new af(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?sM:Math.pow(sM,e),new af(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new af(Hk(this.r),Hk(this.g),Hk(this.b),F7(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:xze,formatHex:xze,formatHex8:PVn,formatRgb:wze,toString:wze}));function xze(){return`#${Tk(this.r)}${Tk(this.g)}${Tk(this.b)}`}function PVn(){return`#${Tk(this.r)}${Tk(this.g)}${Tk(this.b)}${Tk((isNaN(this.opacity)?1:this.opacity)*255)}`}function wze(){const e=F7(this.opacity);return`${e===1?"rgb(":"rgba("}${Hk(this.r)}, ${Hk(this.g)}, ${Hk(this.b)}${e===1?")":`, ${e})`}`}function F7(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 Sze(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new lg(e,t,n,r)}function iwt(e){if(e instanceof lg)return new lg(e.h,e.s,e.l,e.opacity);if(e instanceof v3||(e=RO(e)),!e)return new lg;if(e instanceof lg)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 lg(i,l,c,e.opacity)}function $Vn(e,t,n,r){return arguments.length===1?iwt(e):new lg(e,t,n,r??1)}function lg(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}B1e(lg,$Vn,awt(v3,{brighter(e){return e=e==null?z7:Math.pow(z7,e),new lg(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?sM:Math.pow(sM,e),new lg(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 af(dee(e>=240?e-240:e+120,s,r),dee(e,s,r),dee(e<120?e+240:e-120,s,r),this.opacity)},clamp(){return new lg(kze(this.h),T6(this.s),T6(this.l),F7(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=F7(this.opacity);return`${e===1?"hsl(":"hsla("}${kze(this.h)}, ${T6(this.s)*100}%, ${T6(this.l)*100}%${e===1?")":`, ${e})`}`}}));function kze(e){return e=(e||0)%360,e<0?e+360:e}function T6(e){return Math.max(0,Math.min(1,e||0))}function dee(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 U1e=e=>()=>e;function MVn(e,t){return function(n){return e+n*t}}function DVn(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 LVn(e){return(e=+e)==1?owt:function(t,n){return n-t?DVn(t,n,e):U1e(isNaN(t)?n:t)}}function owt(e,t){var n=t-e;return n?MVn(e,n):U1e(isNaN(e)?t:e)}const B7=(function e(t){var n=LVn(t);function r(s,a){var i=n((s=Qhe(s)).r,(a=Qhe(a)).r),l=n(s.g,a.g),c=n(s.b,a.b),u=owt(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 zVn(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 FVn(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function BVn(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 UVn(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function sg(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function qVn(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 Yhe=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,fee=new RegExp(Yhe.source,"g");function VVn(e){return function(){return e}}function HVn(e){return function(t){return e(t)+""}}function lwt(e,t){var n=Yhe.lastIndex=fee.lastIndex=0,r,s,a,i=-1,l=[],c=[];for(e=e+"",t=t+"";(r=Yhe.exec(e))&&(s=fee.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:sg(r,s)})),n=fee.lastIndex;return n<t.length&&(a=t.slice(n),l[i]?l[i]+=a:l[++i]=a),l.length<2?c[0]?HVn(c[0].x):VVn(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"?U1e(t):(n==="number"?sg:n==="string"?(r=RO(t))?(t=r,B7):lwt:t instanceof RO?B7:t instanceof Date?UVn:FVn(t)?zVn:Array.isArray(t)?BVn:typeof t.valueOf!="function"&&typeof t.toString!="function"||isNaN(t)?qVn:sg)(e,t)}function q1e(e,t){return e=+e,t=+t,function(n){return Math.round(e*(1-n)+t*n)}}var Oze=180/Math.PI,Xhe={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function cwt(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)*Oze,skewX:Math.atan(c)*Oze,scaleX:i,scaleY:l}}var N6;function WVn(e){const t=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?Xhe:cwt(t.a,t.b,t.c,t.d,t.e,t.f)}function ZVn(e){return e==null||(N6||(N6=document.createElementNS("http://www.w3.org/2000/svg","g")),N6.setAttribute("transform",e),!(e=N6.transform.baseVal.consolidate()))?Xhe:(e=e.matrix,cwt(e.a,e.b,e.c,e.d,e.e,e.f))}function uwt(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:sg(u,f)},{i:v-2,x:sg(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:sg(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:sg(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:sg(u,f)},{i:v-2,x:sg(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 GVn=uwt(WVn,"px, ","px)","deg)"),QVn=uwt(ZVn,", ",")",")"),YVn=1e-12;function _ze(e){return((e=Math.exp(e))+1/e)/2}function XVn(e){return((e=Math.exp(e))-1/e)/2}function KVn(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<YVn)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=_ze(_),I=u/(n*S)*(T*KVn(t*j+_)-XVn(_));return[l+I*h,c+I*m,u*T/_ze(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 JVn(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,dwt=1e3,U7,f2,q7=0,PO=0,VV=0,iM=typeof performance=="object"&&performance.now?performance:Date,fwt=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function V1e(){return PO||(fwt(eHn),PO=iM.now()+VV)}function eHn(){PO=0}function V7(){this._call=this._time=this._next=null}V7.prototype=pwt.prototype={constructor:V7,restart:function(e,t,n){if(typeof e!="function")throw new TypeError("callback is not a function");n=(n==null?V1e():+n)+(t==null?0:+t),!this._next&&f2!==this&&(f2?f2._next=this:U7=this,f2=this),this._call=e,this._time=n,Khe()},stop:function(){this._call&&(this._call=null,this._time=1/0,Khe())}};function pwt(e,t,n){var r=new V7;return r.restart(e,t,n),r}function tHn(){V1e(),++kT;for(var e=U7,t;e;)(t=PO-e._time)>=0&&e._call.call(void 0,t),e=e._next;--kT}function Cze(){PO=(q7=iM.now())+VV,kT=d2=0;try{tHn()}finally{kT=0,rHn(),PO=0}}function nHn(){var e=iM.now(),t=e-q7;t>dwt&&(VV-=t,q7=e)}function rHn(){for(var e,t=U7,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:U7=n);f2=e,Khe(r)}function Khe(e){if(!kT){d2&&(d2=clearTimeout(d2));var t=e-PO;t>24?(e<1/0&&(d2=setTimeout(Cze,e-iM.now()-VV)),QA&&(QA=clearInterval(QA))):(QA||(q7=iM.now(),QA=setInterval(nHn,dwt)),kT=1,fwt(Cze))}}function Eze(e,t,n){var r=new V7;return t=t==null?0:+t,r.restart(s=>{r.stop(),e(s+t)},t,n),r}var sHn=UV("start","end","cancel","interrupt"),aHn=[],hwt=0,jze=1,Jhe=2,iF=3,Tze=4,eme=5,oF=6;function HV(e,t,n,r,s,a){var i=e.__transition;if(!i)e.__transition={};else if(n in i)return;iHn(e,n,{name:t,index:r,group:s,on:sHn,tween:aHn,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:hwt})}function H1e(e,t){var n=Ug(e,t);if(n.state>hwt)throw new Error("too late; already scheduled");return n}function Dy(e,t){var n=Ug(e,t);if(n.state>iF)throw new Error("too late; already running");return n}function Ug(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function iHn(e,t,n){var r=e.__transition,s;r[t]=n,n.timer=pwt(a,0,n.time);function a(u){n.state=jze,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!==jze)return c();for(d in r)if(h=r[d],h.name===n.name){if(h.state===iF)return Eze(i);h.state===Tze?(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(Eze(function(){n.state===iF&&(n.state=Tze,n.timer.restart(l,n.delay,n.time),l(u))}),n.state=Jhe,n.on.call("start",e,e.__data__,n.index,n.group),n.state===Jhe){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=eme,1),f=-1,p=s.length;++f<p;)s[f].call(e,d);n.state===eme&&(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>Jhe&&r.state<eme,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 oHn(e){return this.each(function(){lF(this,e)})}function lHn(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 cHn(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 uHn(e,t){var n=this._id;if(e+="",arguments.length<2){for(var r=Ug(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?lHn:cHn)(n,e,t))}function W1e(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 Ug(s,r).value[t]}}function mwt(e,t){var n;return(typeof t=="number"?sg:t instanceof RO?B7:(n=RO(t))?(t=n,B7):lwt)(e,t)}function dHn(e){return function(){this.removeAttribute(e)}}function fHn(e){return function(){this.removeAttributeNS(e.space,e.local)}}function pHn(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 hHn(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 mHn(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 gHn(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 vHn(e,t){var n=qV(e),r=n==="transform"?QVn:mwt;return this.attrTween(e,typeof t=="function"?(n.local?gHn:mHn)(n,r,W1e(this,"attr."+e,t)):t==null?(n.local?fHn:dHn)(n):(n.local?hHn:pHn)(n,r,t))}function yHn(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function bHn(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function xHn(e,t){var n,r;function s(){var a=t.apply(this,arguments);return a!==r&&(n=(r=a)&&bHn(e,a)),n}return s._value=t,s}function wHn(e,t){var n,r;function s(){var a=t.apply(this,arguments);return a!==r&&(n=(r=a)&&yHn(e,a)),n}return s._value=t,s}function SHn(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=qV(e);return this.tween(n,(r.local?xHn:wHn)(r,t))}function kHn(e,t){return function(){H1e(this,e).delay=+t.apply(this,arguments)}}function OHn(e,t){return t=+t,function(){H1e(this,e).delay=t}}function _Hn(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?kHn:OHn)(t,e)):Ug(this.node(),t).delay}function CHn(e,t){return function(){Dy(this,e).duration=+t.apply(this,arguments)}}function EHn(e,t){return t=+t,function(){Dy(this,e).duration=t}}function jHn(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?CHn:EHn)(t,e)):Ug(this.node(),t).duration}function THn(e,t){if(typeof t!="function")throw new Error;return function(){Dy(this,e).ease=t}}function NHn(e){var t=this._id;return arguments.length?this.each(THn(t,e)):Ug(this.node(),t).ease}function IHn(e,t){return function(){var n=t.apply(this,arguments);if(typeof n!="function")throw new Error;Dy(this,e).ease=n}}function AHn(e){if(typeof e!="function")throw new Error;return this.each(IHn(this._id,e))}function RHn(e){typeof e!="function"&&(e=W0t(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 PHn(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 MHn(e,t,n){var r,s,a=$Hn(t)?H1e:Dy;return function(){var i=a(this,e),l=i.on;l!==r&&(s=(r=l).copy()).on(t,n),i.on=s}}function DHn(e,t){var n=this._id;return arguments.length<2?Ug(this.node(),n).on.on(e):this.each(MHn(n,e,t))}function LHn(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function zHn(){return this.on("end.remove",LHn(this._id))}function FHn(e){var t=this._name,n=this._id;typeof e!="function"&&(e=z1e(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,HV(u[p],t,n,p,u,Ug(d,n)));return new _x(a,this._parents,t,n)}function BHn(e){var t=this._name,n=this._id;typeof e!="function"&&(e=H0t(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=Ug(d,n),v=0,y=p.length;v<y;++v)(h=p[v])&&HV(h,t,n,v,p,m);a.push(p),i.push(d)}return new _x(a,i,t,n)}var UHn=g3.prototype.constructor;function qHn(){return new UHn(this._groups,this._parents)}function VHn(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 gwt(e){return function(){this.style.removeProperty(e)}}function HHn(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 WHn(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 ZHn(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=gwt(t)):void 0;(u!==n||s!==d)&&(r=(n=u).copy()).on(i,s=d),c.on=r}}function GHn(e,t,n){var r=(e+="")=="transform"?GVn:mwt;return t==null?this.styleTween(e,VHn(e,r)).on("end.style."+e,gwt(e)):typeof t=="function"?this.styleTween(e,WHn(e,r,W1e(this,"style."+e,t))).each(ZHn(this._id,e)):this.styleTween(e,HHn(e,r,t),n).on("end.style."+e,null)}function QHn(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}function YHn(e,t,n){var r,s;function a(){var i=t.apply(this,arguments);return i!==s&&(r=(s=i)&&QHn(e,i,n)),r}return a._value=t,a}function XHn(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,YHn(e,t,n??""))}function KHn(e){return function(){this.textContent=e}}function JHn(e){return function(){var t=e(this);this.textContent=t??""}}function eWn(e){return this.tween("text",typeof e=="function"?JHn(W1e(this,"text",e)):KHn(e==null?"":e+""))}function tWn(e){return function(t){this.textContent=e.call(this,t)}}function nWn(e){var t,n;function r(){var s=e.apply(this,arguments);return s!==n&&(t=(n=s)&&tWn(s)),t}return r._value=e,r}function rWn(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,nWn(e))}function sWn(){for(var e=this._name,t=this._id,n=vwt(),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=Ug(c,t);HV(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 aWn(){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 iWn=0;function _x(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}function vwt(){return++iWn}var mb=g3.prototype;_x.prototype={constructor:_x,select:FHn,selectAll:BHn,selectChild:mb.selectChild,selectChildren:mb.selectChildren,filter:RHn,merge:PHn,selection:qHn,transition:sWn,call:mb.call,nodes:mb.nodes,node:mb.node,size:mb.size,empty:mb.empty,each:mb.each,on:DHn,attr:vHn,attrTween:SHn,style:GHn,styleTween:XHn,text:eWn,textTween:rWn,remove:zHn,tween:uHn,delay:_Hn,duration:jHn,ease:NHn,easeVarying:AHn,end:aWn,[Symbol.iterator]:mb[Symbol.iterator]};function oWn(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var lWn={time:null,delay:0,duration:250,ease:oWn};function cWn(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 uWn(e){var t,n;e instanceof _x?(t=e._id,e=e._name):(t=vwt(),(n=lWn).time=V1e(),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])&&HV(c,e,t,u,i,n||cWn(c,t));return new _x(r,this._parents,e,t)}g3.prototype.interrupt=oHn;g3.prototype.transition=uWn;const I6=e=>()=>e;function dWn(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 WV=new Wb(1,0,0);ywt.prototype=Wb.prototype;function ywt(e){for(;!e.__zoom;)if(!(e=e.parentNode))return WV;return e.__zoom}function pee(e){e.stopImmediatePropagation()}function YA(e){e.preventDefault(),e.stopImmediatePropagation()}function fWn(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function pWn(){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 Nze(){return this.__zoom||WV}function hWn(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function mWn(){return navigator.maxTouchPoints||"ontouchstart"in this}function gWn(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 bwt(){var e=fWn,t=pWn,n=gWn,r=hWn,s=mWn,a=[0,1/0],i=[[-1/0,-1/0],[1/0,1/0]],l=250,c=aF,u=UV("start","zoom","end"),d,f,p,h=500,m=150,v=0,y=10;function b(D){D.property("__zoom",Nze).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",Nze),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(WV.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 dWn(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=ng(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=ng(D,H),M=D.clientX,Q=D.clientY;nwt(D.view),pee(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]=ng(F,H),z.mouse[1]),z.extent,i))}function $(F){B.on("mousemove.zoom mouseup.zoom",null),rwt(F.view,z.moved),YA(F),z.event(F).end()}}function I(D,...q){if(e.apply(this,arguments)){var H=this.__zoom,z=ng(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(pee(D),M=0;M<z;++M)Q=H[M],U=ng(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=ng(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(pee(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=ng(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]],xwt=["Enter"," ","Escape"],wwt={"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 Swt={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 Ize={[rr.Left]:rr.Right,[rr.Right]:rr.Left,[rr.Top]:rr.Bottom,[rr.Bottom]:rr.Top};function kwt(e){return e===null?null:e?"valid":"invalid"}const Owt=e=>"id"in e&&"source"in e&&"target"in e,vWn=e=>"id"in e&&"position"in e&&!("source"in e)&&!("target"in e),Z1e=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}},yWn=(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):Z1e(s)?s:t.nodeLookup.get(s.id));const l=i?H7(i,t.nodeOrigin):{x:0,y:0,x2:0,y2:0};return ZV(r,l)},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return GV(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=ZV(n,H7(s)),r=!0)}),r?GV(n):{x:0,y:0,width:0,height:0}},G1e=(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},bWn=(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 xWn(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 wWn({nodes:e,width:t,height:n,panZoom:r,minZoom:s,maxZoom:a},i){if(e.size===0)return Promise.resolve(!0);const l=xWn(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 _wt({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 SWn({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=bWn(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 Cwt(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 Aze=(e,t,n)=>e<t?_T(Math.abs(e-t),1,t)/t:e>n?-_T(Math.abs(e-n),1,t)/t:0,Ewt=(e,t,n=15,r=40)=>{const s=Aze(e.x,r,t.width-r)*n,a=Aze(e.y,r,t.height-r)*n;return[s,a]},ZV=(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)}),tme=({x:e,y:t,width:n,height:r})=>({x:e,y:t,x2:e+n,y2:t+r}),GV=({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}=Z1e(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}},H7=(e,t=[0,0])=>{const{x:n,y:r}=Z1e(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)}},jwt=(e,t)=>GV(ZV(tme(e),tme(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)},Rze=e=>hg(e.width)&&hg(e.height)&&hg(e.x)&&hg(e.y),hg=e=>!isNaN(e)&&isFinite(e),kWn=(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},W7=({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 OWn(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 _Wn(e,t,n,r,s,a){const{x:i,y:l}=W7(e,[t,n,r]),{x:c,y:u}=W7({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=OWn(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=_Wn(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 Twt(e){return(e.measured?.width??e.width??e.initialWidth)!==void 0&&(e.measured?.height??e.height??e.initialHeight)!==void 0}function Nwt(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 Pze(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function CWn(){let e,t;return{promise:new Promise((r,s)=>{e=r,t=s}),resolve:e,reject:t}}function EWn(e){return{...wwt,...e||{}}}function W2(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:r,containerBounds:s}){const{x:a,y:i}=mg(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 Y1e=e=>({width:e.offsetWidth,height:e.offsetHeight}),Iwt=e=>e?.getRootNode?.()||window?.document,jWn=["INPUT","SELECT","TEXTAREA"];function Awt(e){const t=e.composedPath?.()?.[0]||e.target;return t?.nodeType!==1?!1:jWn.includes(t.nodeName)||t.hasAttribute("contenteditable")||!!t.closest(".nokey")}const Rwt=e=>"clientX"in e,mg=(e,t)=>{const n=Rwt(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)}},$ze=(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,...Y1e(i)}})};function Pwt({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 Mze({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 X1e({sourceX:e,sourceY:t,sourcePosition:n=rr.Bottom,targetX:r,targetY:s,targetPosition:a=rr.Top,curvature:i=.25}){const[l,c]=Mze({pos:n,x1:e,y1:t,x2:r,y2:s,c:i}),[u,d]=Mze({pos:a,x1:r,y1:s,x2:e,y2:t,c:i}),[f,p,h,m]=Pwt({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 $wt({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 TWn({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 NWn({sourceNode:e,targetNode:t,width:n,height:r,transform:s}){const a=ZV(H7(e),H7(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,GV(a))>0}const IWn=({source:e,sourceHandle:t,target:n,targetHandle:r})=>`xy-edge__${e}${t||""}-${n}${r||""}`,AWn=(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)),RWn=(e,t,n={})=>{if(!e.source||!e.target)return t;const r=n.getEdgeId||IWn;let s;return Owt(e)?s={...e}:s={...e,id:r(e)},AWn(s,t)?t:(s.sourceHandle===null&&delete s.sourceHandle,s.targetHandle===null&&delete s.targetHandle,t.concat(s))};function Mwt({sourceX:e,sourceY:t,targetX:n,targetY:r}){const[s,a,i,l]=$wt({sourceX:e,sourceY:t,targetX:n,targetY:r});return[`M ${e},${t}L ${n},${r}`,s,a,i,l]}const Dze={[rr.Left]:{x:-1,y:0},[rr.Right]:{x:1,y:0},[rr.Top]:{x:0,y:-1},[rr.Bottom]:{x:0,y:1}},PWn=({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},Lze=(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=Dze[t],c=Dze[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=PWn({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]=$wt({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 MWn(e,t,n,r){const s=Math.min(Lze(e,t)/2,Lze(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 nme({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+=MWn(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 zze(e){return e&&!!(e.internals.handleBounds||e.handles?.length)&&!!(e.measured.width||e.width||e.initialWidth)}function DWn(e){const{sourceNode:t,targetNode:n}=e;if(!zze(t)||!zze(n))return null;const r=t.internals.handleBounds||Fze(t.handles),s=n.internals.handleBounds||Fze(n.handles),a=Bze(r?.source??[],e.sourceHandle),i=Bze(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 Fze(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 Bze(e,t){return e&&(t?e.find(n=>n.id===t):e[0])||null}function rme(e,t){return e?typeof e=="string"?e:`${t?`${t}__`:""}${Object.keys(e).sort().map(r=>`${r}=${e[r]}`).join("&")}`:""}function LWn(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=rme(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 Dwt=1e3,zWn=10,K1e={nodeOrigin:[0,0],nodeExtent:oM,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},FWn={...K1e,checkEquality:!0};function J1e(e,t){const n={...e};for(const r in t)t[r]!==void 0&&(n[r]=t[r]);return n}function BWn(e,t,n){const r=J1e(K1e,n);for(const s of e.values())if(s.parentId)tSe(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 UWn(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 eSe(e){return e==="manual"}function sme(e,t,n,r={}){const s=J1e(FWn,r),a={i:0},i=new Map(t),l=s?.elevateNodesOnSelect&&!eSe(s.zIndexMode)?Dwt: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:UWn(d,f),z:Lwt(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&&tSe(f,t,n,r,a),u||=d.selected??!1}return{nodesInitialized:c,hasSelectedNodes:u}}function qWn(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 tSe(e,t,n,r,s){const{elevateNodesOnSelect:a,nodeOrigin:i,nodeExtent:l,zIndexMode:c}=J1e(K1e,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}qWn(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*zWn),s&&d.internals.rootParentIndex!==void 0&&(s.i=d.internals.rootParentIndex);const f=a&&!eSe(c)?Dwt:0,{x:p,y:h,z:m}=VWn(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 Lwt(e,t,n){const r=hg(e.zIndex)?e.zIndex:0;return eSe(n)?r:r+(e.selected?t:0)}function VWn(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=Cwt(f,c,t));const p=Lwt(e,s,a),h=t.internals.z??0;return{x:f.x,y:f.y,z:h>=p?h+1:p}}function nSe(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=jwt(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 HWn(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=Y1e(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=Cwt(k,v,t.get(m.parentId)):w&&(k=$O(k,w,v));const _={...m,measured:v,internals:{...m.internals,positionAbsolute:k,handleBounds:{source:$ze("source",h.nodeElement,S,f,m.id),target:$ze("target",h.nodeElement,S,f,m.id)}}};t.set(m.id,_),m.parentId&&tSe(_,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=nSe(p,t,n,s);u.push(...h)}return{changes:u,updatedInternals:c}}async function WWn({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 Uze(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 zwt(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}`;Uze("source",c,d,e,s,i),Uze("target",c,u,e,a,l),t.set(r.id,r)}}function Fwt(e,t){if(!e.parentId)return!1;const n=t.get(e.parentId);return n?n.selected?!0:Fwt(n,t):!1}function qze(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 ZWn(e,t,n,r){const s=new Map;for(const[a,i]of e)if((i.selected||i.id===r)&&(!i.parentId||!Fwt(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 hee({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 GWn({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 QWn({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?tme(b3(l)):null,X=F&&z?GWn({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}=_wt({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]=hee({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]=Ewt(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=ZWn(L,q,$,C),l.size>0&&(n||M||!C&&Q)){const[F,Z]=hee({nodeId:C,dragItems:l,nodeLookup:L});n?.(P.sourceEvent,l,F,Z),M?.(P.sourceEvent,F,Z),C||Q?.(P.sourceEvent,Z)}}const A=swt().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=mg(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=mg(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=mg(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]=hee({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||!qze(L,`.${S}`,k))&&(!w||qze(L,w,k))});p.call(A)}function b(){p?.on(".drag",null)}return{update:y,destroy:b}}function YWn(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 XWn=250;function KWn(e,t,n,r){let s=[],a=1/0;const i=YWn(e,n,t+XWn);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 Bwt(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 Uwt(e,t){return e||(t?.classList.contains("target")?"target":t?.classList.contains("source")?"source":null)}function JWn(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}const qwt=()=>!0;function eZn(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=qwt,onReconnectEnd:S,updateConnection:w,getTransform:k,getFromHandle:_,autoPanSpeed:C,dragThreshold:E=1,handleDomNode:j}){const T=Iwt(e.target);let I=0,A;const{x:P,y:L}=mg(e),D=Uwt(a,j),q=l?.getBoundingClientRect();let H=!1;if(!q||!D)return;const z=Bwt(s,D,r,c,t);if(!z)return;let B=mg(e,q),V=!1,M=null,Q=!1,U=null;function $(){if(!d||!q)return;const[pe,Y]=Ewt(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:Ize[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}=mg(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=mg(pe,q),A=KWn(w3(B,Y,!1,[1,1]),n,c,F),V||($(),V=!0);const ne=Vwt(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=JWn(!!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?W7({x:ne.toHandle.x,y:ne.toHandle.y},Y):B,toHandle:ne.toHandle,toPosition:Q&&ne.toHandle?ne.toHandle.position:Ize[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 Vwt(e,{handle:t,connectionMode:n,fromNodeId:r,fromHandleId:s,fromType:a,doc:i,lib:l,flowId:c,isValidConnection:u=qwt,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}=mg(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=Uwt(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=Bwt(w,S,k,d,n,!0)}return b}const ame={onPointerDown:eZn,isValid:Vwt};function tZn({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=bwt().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:ng}}const QV=e=>({x:e.x,y:e.y,zoom:e.k}),mee=({x:e,y:t,zoom:n})=>WV.translate(e,t).scale(n),GE=(e,t)=>e.target.closest(`.${t}`),Hwt=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),nZn=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,gee=(e,t=0,n=nZn,r=()=>{})=>{const s=typeof t=="number"&&t>0;return s||r(),s?e.transition().duration(t).ease(n).on("end",r):e},Wwt=e=>{const t=e.ctrlKey&&dM()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function rZn({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=ng(d),b=Wwt(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=QV(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 sZn({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 aZn({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return r=>{if(r.sourceEvent?.internal)return;const s=QV(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 iZn({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:r,onPanZoom:s}){return a=>{e.usedRightMouseButton=!!(n&&Hwt(t,e.mouseButton??0)),a.sourceEvent?.sync||r([a.transform.x,a.transform.y,a.transform.k]),s&&!a.sourceEvent?.internal&&s?.(a.sourceEvent,QV(a.transform))}}function oZn({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:r,onPanZoomEnd:s,onPaneContextMenu:a}){return i=>{if(!i.sourceEvent?.internal&&(e.isZoomingOrPanning=!1,a&&Hwt(t,e.mouseButton??0)&&!e.usedRightMouseButton&&i.sourceEvent&&a(i.sourceEvent),e.usedRightMouseButton=!1,r(!1),s)){const l=QV(i.transform);e.prevViewport=l,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{s?.(i.sourceEvent,l)},n?150:0)}}}function lZn({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 cZn({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=bwt().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(Wwt);function v(A,P){return p?new Promise(L=>{f?.interpolate(P?.interpolate==="linear"?sx:aF).transform(gee(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:!hg(te)||te<0?0:te);const ae=J?rZn({zoomPanValues:u,noWheelClassName:A,d3Selection:p,d3Zoom:f,panOnScrollMode:z,panOnScrollSpeed:B,zoomOnPinch:M,onPanZoomStart:i,onPanZoom:a,onPanZoomEnd:l}):sZn({noWheelClassName:A,preventScrolling:V,d3ZoomHandler:h});if(p.on("wheel.zoom",ae,{passive:!1}),!D){const Y=aZn({zoomPanValues:u,onDraggingChange:c,onPanZoomStart:i});f.on("start",Y);const ne=iZn({zoomPanValues:u,panOnDrag:H,onPaneContextMenu:!!L,onPanZoom:a,onTransformChange:Z});f.on("zoom",ne);const ue=oZn({zoomPanValues:u,panOnDrag:H,panOnScroll:q,onPaneContextMenu:L,onPanZoomEnd:l,onDraggingChange:c});f.on("end",ue)}const pe=lZn({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=mee(A),q=f?.constrain()(D,P,L);return q&&await v(q),new Promise(H=>H(q))}async function w(A,P){const L=mee(A);return await v(L,P),new Promise(D=>D(L))}function k(A){if(p){const P=mee(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?ywt(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(gee(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(gee(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=!hg(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 uZn({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 Vze(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 Hze(e,t){return e?!t:t}function dZn(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=(Hze(c,u)?-j:j)/E:j=(Hze(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 Zwt={width:0,height:0,x:0,y:0},fZn={...Zwt,pointerX:0,pointerY:0,aspectRatio:1};function pZn(e){return[[0,0],[e.measured.width,e.measured.height]]}function hZn(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 mZn({domNode:e,nodeId:t,getStoreItems:n,onChange:r,onEnd:s}){const a=yp(e);let i={controlDirection:Vze("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={...Zwt},S={...fZn};i={boundaries:d,resizeDirection:p,keepAspectRatio:f,controlDirection:Vze(u)};let w,k=null,_=[],C,E,j,T=!1;const I=swt().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"?pZn(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=hZn(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}=dZn(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=uZn({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 gZn={},Wze=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:()=>{(gZn?"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},vZn=e=>e?Wze(e):Wze,{useDebugValue:yZn}=Le,{useSyncExternalStoreWithSelector:bZn}=$Sn,xZn=e=>e;function Gwt(e,t=xZn,n){const r=bZn(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return yZn(r),r}const Zze=(e,t)=>{const n=vZn(e),r=(s,a=t)=>Gwt(n,s,a);return Object.assign(r,n),r},wZn=(e,t)=>e?Zze(e,t):Zze;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 YV=g.createContext(null),SZn=YV.Provider,Qwt=my.error001();function qs(e,t){const n=g.useContext(YV);if(n===null)throw new Error(Qwt);return Gwt(n,e,t)}function ko(){const e=g.useContext(YV);if(e===null)throw new Error(Qwt);return g.useMemo(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}const Gze={display:"none"},kZn={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},Ywt="react-flow__node-desc",Xwt="react-flow__edge-desc",OZn="react-flow__aria-live",_Zn=e=>e.ariaLiveMessage,CZn=e=>e.ariaLabelConfig;function EZn({rfId:e}){const t=qs(_Zn);return o.jsx("div",{id:`${OZn}-${e}`,"aria-live":"assertive","aria-atomic":"true",style:kZn,children:t})}function jZn({rfId:e,disableKeyboardA11y:t}){const n=qs(CZn);return o.jsxs(o.Fragment,{children:[o.jsx("div",{id:`${Ywt}-${e}`,style:Gze,children:t?n["node.a11yDescription.default"]:n["node.a11yDescription.keyboardDisabled"]}),o.jsx("div",{id:`${Xwt}-${e}`,style:Gze,children:n["edge.a11yDescription.default"]}),!t&&o.jsx(EZn,{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:Ll(["react-flow__panel",n,...i]),style:r,ref:a,...s,children:t})});S3.displayName="Panel";function TZn({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 NZn=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 IZn(e,t){return so(e.selectedNodes.map(P6),t.selectedNodes.map(P6))&&so(e.selectedEdges.map(P6),t.selectedEdges.map(P6))}function AZn({onSelectionChange:e}){const t=ko(),{selectedNodes:n,selectedEdges:r}=qs(NZn,IZn);return g.useEffect(()=>{const s={nodes:n,edges:r};e?.(s),t.getState().onSelectionChangeHandlers.forEach(a=>a(s))},[n,r,e]),null}const RZn=e=>!!e.onSelectionChangeHandlers;function PZn({onSelectionChange:e}){const t=qs(RZn);return e||t?o.jsx(AZn,{onSelectionChange:e}):null}const ime=typeof window<"u"?g.useLayoutEffect:g.useEffect,Kwt=[0,0],$Zn={x:0,y:0,zoom:1},MZn=["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"],Qze=[...MZn,"rfId"],DZn=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}),Yze={translateExtent:oM,nodeOrigin:Kwt,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:"nopan",rfId:"1"};function LZn(e){const{setNodes:t,setEdges:n,setMinZoom:r,setMaxZoom:s,setTranslateExtent:a,setNodeExtent:i,reset:l,setDefaultNodesAndEdges:c}=qs(DZn,so),u=ko();ime(()=>(c(e.defaultNodes,e.defaultEdges),()=>{d.current=Yze,l()}),[]);const d=g.useRef(Yze);return ime(()=>{for(const f of Qze){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:EWn(p)}):f==="fitView"?u.setState({fitViewQueued:p}):f==="fitViewOptions"?u.setState({fitViewOptions:p}):u.setState({[f]:p})))}d.current=e},Qze.map(f=>e[f])),null}function Xze(){return typeof window>"u"||!window.matchMedia?null:window.matchMedia("(prefers-color-scheme: dark)")}function zZn(e){const[t,n]=g.useState(e==="system"?null:e);return g.useEffect(()=>{if(e!=="system"){n(e);return}const r=Xze(),s=()=>n(r?.matches?"dark":"light");return s(),r?.addEventListener("change",s),()=>{r?.removeEventListener("change",s)}},[e]),t!==null?t:Xze()?.matches?"dark":"light"}const Kze=typeof document<"u"?document:null;function fM(e=null,t={target:Kze,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 crs({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 urs({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}=Mts(),{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(lrs,{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(crs,{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(ors,{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 XTe=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})},drs=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 frs(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 uFt({datasetId:e,experimentId:t,featuredItemId:n}){const r=We(),{data:s}=Wx(e),{data:a,isLoading:i}=XTe(e),{data:l,isLoading:c}=drs(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(Il,{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(Bzt,{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(Gct,{}),"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(Fzt,{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(_g,{})}),"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:frs(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(Ube,{})}),Te.rating==="negative"&&o.jsx(Ue,{size:"sm",className:"text-negative1",children:o.jsx(Bbe,{})}),!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(am,{})}),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(zzt,{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 prs({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]=owe(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=hns({hasSearchQuery:!!q,filteredItemsLength:z.length,unfilteredItemsTotal:$,itemsTotal:B}),{data:ne}=XTe(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(irs,{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(Ins,{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(uFt,{datasetId:e})})]}),o.jsx(kns,{datasetId:e,open:u,onOpenChange:d}),o.jsx(urs,{datasetId:e,open:f,onOpenChange:p}),o.jsx(Jts,{open:h,onOpenChange:re,items:v,onSuccess:le}),o.jsx(ens,{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 hrs(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 wse({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 mrs({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=hrs(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(wse,{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(wse,{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(wse,{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 grs({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(Rl,{children:[o.jsx(zct,{})," Created ",tr(new Date(e.createdAt),"MMM d, yyyy h:mm aaa")]}),e.datasetVersion!=null&&o.jsxs(Rl,{children:[o.jsx(d_,{})," Version v",e.datasetVersion]})]})]})})}function KTe({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(bTe,{children:[o.jsx(Ps.CodeSection,{title:"Input",icon:o.jsx(uO,{}),codeStr:t}),o.jsx(Ps.CodeSection,{title:"Ground Truth",icon:o.jsx(xg,{}),codeStr:n}),s&&o.jsx(Ps.CodeSection,{title:"Expected Trajectory",icon:o.jsx(Lbe,{}),codeStr:s}),o.jsx(Ps.CodeSection,{title:"Metadata",icon:o.jsx(kN,{}),codeStr:r})]})}function vrs({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 yrs=[{value:"agent",label:"Agent"},{value:"workflow",label:"Workflow"},{value:"scorer",label:"Scorer"}];function brs({targetType:e,setTargetType:t,targetId:n,setTargetId:r,container:s}){const{data:a,isLoading:i}=_m(),{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:yrs,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 xrs({requestContextSchema:e,onChange:t}){const n=g.useMemo(()=>{try{return dm(cm(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 wrs({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(brs,{targetType:l,setTargetType:c,targetId:u,setTargetId:d,container:i}),l&&l!=="scorer"&&o.jsx(vrs,{selectedScorers:f,setSelectedScorers:p,disabled:k,container:i}),S?o.jsx(xrs,{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 Srs=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})},JTe=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 Sse(e){try{return JSON.stringify(e??{})}catch{return String(e)}}function krs({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: ",Sse(s.args)]}),n.length>0&&o.jsxs("span",{className:"mt-1 block font-mono text-xs",children:["Unconsumed mocks: ",n.map(i=>Sse(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:Sse(i.args)})]}),o.jsx("span",{className:`shrink-0 text-xs px-2 py-0.5 rounded ${Ors(i.outcome)}`,children:i.outcome})]},`${i.outcome}-${i.toolName}-${l}`))})]})}function Ors(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 _rs({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(qct,{}):o.jsx(Uct,{})}),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(JTe,{}),"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(krs,{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(wq,{}),"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(xg,{}),codeStr:S}),o.jsx(bn.CodeSection,{title:"Ground Truth",icon:o.jsx(Fbe,{}),codeStr:w})]})]})]})}function az(e){return e==null?"-":typeof e=="string"?e:JSON.stringify(e,null,2)}function Crs({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(Ln,{children:[o.jsx(Pn,{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($n,{children:y?"Error":"Success"})]})}),m&&o.jsx(ve.MonoCell,{children:jrs(Ers(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 Ers(e){return e==null?"-":typeof e=="string"?e:JSON.stringify(e,null,2)}function jrs(e,t){return e.length<=t?e:e.slice(0,t-1)+"..."}function Trs(e){const t=e.scorer;return t?.hasJudge===!1?!0:t?.hasJudge===!0?!1:!e.preprocessPrompt&&!e.analyzePrompt&&!e.generateScorePrompt&&!e.generateReasonPrompt}function Nrs({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=Trs(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(qct,{}):o.jsx(Uct,{})}),(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(JTe,{}),"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(am,{}),codeStr:e.reason||p,simplified:!0}),!f&&o.jsxs(o.Fragment,{children:[o.jsx(bn.CodeSection,{title:"Preprocess Prompt",icon:o.jsx(Oh,{}),codeStr:e.preprocessPrompt||p,simplified:!0}),o.jsx(bn.CodeSection,{title:"Analyze Prompt",icon:o.jsx(Oh,{}),codeStr:e.analyzePrompt||p,simplified:!0}),o.jsx(bn.CodeSection,{title:"Generate Score Prompt",icon:o.jsx(Oh,{}),codeStr:e.generateScorePrompt||p,simplified:!0}),o.jsx(bn.CodeSection,{title:"Generate Reason Prompt",icon:o.jsx(Oh,{}),codeStr:e.generateReasonPrompt||p,simplified:!0})]})]})})]})}const jYe=[{name:"scorer",label:"Scorer",size:"1fr"},{name:"avg",label:"Avg Score",size:"1fr"},{name:"count",label:"Items Scored",size:"1fr"}];function Irs({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(am,{className:"w-8 h-8 text-neutral3"}),titleSlot:a,descriptionSlot:i})})}return o.jsxs(gn,{children:[o.jsxs(gn.Header,{columns:jYe,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:jYe,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 dFt({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}=XTe(t),U=(Q??[]).filter(re=>re.experimentId===e).length,{data:$}=$zt(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}=Srs(d),me=fe?.spans,{data:be,isLoading:we}=ZN(d,p),je=be?.span,{handlePreviousSpan:ke,handleNextSpan:Ae}=yH(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(Irs,{scoresByItemId:$,experimentStatus:n})}),o.jsx(Xr,{value:"reviews",className:"overflow-auto mt-2 pb-0",children:o.jsx(uFt,{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(wq,{})}),"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(Crs,{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(_rs,{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(Nrs,{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(BTe,{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(gH,{traceId:d,spanId:p,span:je,isLoading:we,onPrevious:ke,onNext:Ae,onClose:()=>h(void 0)})]})]})]})]})]})}const Ars={pending:o.jsx(Xj,{}),running:o.jsx(_fe,{}),completed:o.jsx(ra,{}),failed:o.jsx(vs,{})};function Rrs({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:Ars[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 Prs({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(iV,{})," Prev"]}),o.jsxs(ce,{onClick:t,disabled:!t,"aria-label":r,children:["Next",o.jsx(VD,{})]})]})}function eNe({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(_un,{})}):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 $rs({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(Prs,{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(bTe,{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(eNe,{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(xg,{}),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(xg,{}),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(Fbe,{}),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 Mrs({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(eNe,{delta:m})]}):o.jsx("span",{className:"text-neutral1",children:"-"})},f)})})]})},l.itemId)})})})]})})}const Drs={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 TYe({datasetId:e,experiment:t,type:n}){const{Link:r}=yn(),{label:s,color:a,customStyle:i}=Drs[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(ym,{})]}),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(Rl,{children:[o.jsx(Fbe,{})," ",t.targetType," / ",t.targetId]}),o.jsxs(Rl,{children:[o.jsx(Oq,{})," v",t.datasetVersion??"—"]}),l&&o.jsxs(Rl,{children:[o.jsx(Fct,{})," ",tr(l,"MMM d, yyyy HH:mm")]})]})]})}function Lrs({datasetId:e,experimentIdA:t,experimentIdB:n,onSwap:r}){const[s,a]=g.useState(null),{data:i,isLoading:l,error:c}=Cts(e,t,n),{data:u}=QU(e,t),{data:d}=QU(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(TYe,{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(Ln,{children:[o.jsx(Pn,{asChild:!0,children:o.jsx(ce,{onClick:r,children:"VS"})}),o.jsx($n,{children:"Switch the order"})]})})}),o.jsx(TYe,{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(AQe,{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(AQe,{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(eNe,{delta:I}):"-"})]},E))})})]}),o.jsxs(ay,{className:K({"grid-cols-[1fr_2fr]":!!y}),children:[o.jsx(Mrs,{items:i.items,baselineId:_,contenderId:C,scorerIds:p,featuredItemId:s,columns:v,onItemClick:b}),!!y&&o.jsx($rs,{item:y,baselineId:_,contenderId:C,baselineVersion:u?.datasetVersion,contenderVersion:d?.datasetVersion,onPrevious:k(),onNext:w(),onClose:S})]})]})}function zrs({datasetId:e,itemId:t,onVersionSelect:n,onCompareVersionsClick:r,activeVersion:s}){const{data:a,isLoading:i}=GTe(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(Frs,{}):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 Frs(){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 Brs(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 Urs({datasetId:e,versionA:t,versionB:n,onVersionChange:r}){const{data:s}=RTe(e),a=(s??[]).map(i=>({value:String(i.version),label:`${Brs(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 qrs=[{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"}],Vrs={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(aut,{}),tooltip:"Changed in this version"},same:{color:"green",borderColor:"border-green-900",icon:o.jsx(Ydn,{}),tooltip:"Same in both versions"}};function kse({red:e=!1,tooltip:t}){return o.jsxs(Ln,{children:[o.jsx(Pn,{asChild:!0,children:o.jsx($un,{className:K("text-neutral3/40 w-5 h-5 ",{"text-red-900":e})})}),t&&o.jsx($n,{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}=Vrs[e];return o.jsxs(Ln,{children:[o.jsx(Pn,{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($n,{children:s})]})}function Hrs(e,t){return e&&t&&e.datasetVersion===t.datasetVersion?"same":e&&t&&e.datasetVersion!==t.datasetVersion?"changed":e?"added":"removed"}function Wrs({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=Hrs(u,d);return o.jsxs(gn.Row,{columns:qrs,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(kse,{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(kse,{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(kse,{tooltip:o.jsxs(o.Fragment,{children:["Comparing is available",o.jsx("br",{})," only for changed items"]})})})]},c)})})})})}const NYe={needsReview:"#facc15",complete:"#22c55e"},Zrs=[{label:"Needs Review",color:NYe.needsReview},{label:"Reviewed",color:NYe.complete}];function Grs({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:Zrs,maxVal:i,fmt:u=>String(u)}):o.jsx(Vt.NoData,{message:"No items have been sent to review yet"})})]})}function tNe(){const e=We();return St({queryKey:["experiment-review-summary"],queryFn:()=>e.getExperimentReviewSummary()})}function fFt(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 Qrs(e,t){const n=new Map,r=fFt(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 Yrs(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 Xrs=10;function Krs(){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}=Lg({page:d,perPage:Xrs}),{data:v,isLoading:y,error:b}=hG(),{data:S}=tNe(),w=g.useMemo(()=>p?.datasets??[],[p?.datasets]),k=p?.pagination?.hasMore??!1,_=g.useMemo(()=>v?.experiments??[],[v?.experiments]),C=g.useMemo(()=>Vts(w),[w]),E=g.useMemo(()=>Qrs(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(Qts,{onCreateClick:I})}),o.jsx(cye,{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(Kts,{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(Gts,{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(cye,{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 Jrs(){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&&ake(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(Ln,{children:[o.jsx(Pn,{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($n,{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(im,{})," Edit Dataset"]}),o.jsxs(dt.Item,{onSelect:()=>m(!0),children:[o.jsx(sm,{})," 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(prs,{datasetId:e,onAddItemClick:()=>c(!0)})})]}),o.jsx(wrs,{datasetId:e,version:s??void 0,requestContextSchema:v?.requestContextSchema,open:a,onOpenChange:i,onSuccess:_}),o.jsx(mrs,{datasetId:e,open:l,onOpenChange:c}),v&&o.jsx(sns,{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(tns,{open:h,onOpenChange:m,sourceDatasetId:v.id,sourceDatasetName:v.name,sourceDatasetDescription:v.description,sourceDatasetTargetType:v.targetType}),v&&o.jsx(ins,{open:f,onOpenChange:p,datasetId:v.id,datasetName:v.name,onSuccess:C})]})}function pFt({experiment:e}){const{Link:t,paths:n}=yn(),{data:r}=_m(),{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(Rrs,{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 ess(){const{datasetId:e,experimentId:t}=ur(),{data:n,isLoading:r,error:s}=QU(e,t),{data:a,isLoading:i,setEndOfListElement:l,isFetchingNextPage:c,hasNextPage:u}=dG({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&&ake(s)||!r&&!s&&!n?o.jsx(lz,{children:o.jsx(Cr,{iconSlot:o.jsx(Ibe,{}),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(pFt,{experiment:n}),o.jsx(zt.MainArea,{children:o.jsx(dFt,{experimentId:t,datasetId:e,experimentStatus:n.status,results:a??[],isLoading:i,setEndOfListElement:l,isFetchingNextPage:c,hasNextPage:u})})]})}function tss(){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(Lrs,{datasetId:e,experimentIdA:s,experimentIdB:a,onSwap:()=>{n({baseline:a,contender:s})}})]})})})}function nss(){const{datasetId:e,itemId:t}=ur(),{Link:n}=yn(),r=bs(),{data:s,isLoading:a,error:i}=GTe(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(Rl,{children:["Item of ",o.jsx(oy,{})," ",u?.name]})}),o.jsxs(fa.Description,{children:[o.jsxs(Rl,{children:[o.jsx(zct,{})," Created at"," ",d?.createdAt?tr(new Date(d.createdAt),"MMM d, yyyy"):""]}),o.jsxs(Rl,{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(aut,{})," 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(Pct,{})," Return to the latest version"]}),children:o.jsxs(In.Message,{children:["Viewing version v",p.datasetVersion]})}),y?o.jsx(lFt,{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(KTe,{item:te,Link:n}):o.jsx("div",{className:"text-neutral4 text-sm",children:"Item data not available"})]}),!y&&o.jsx(Qr,{children:o.jsx(zrs,{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 IYe(e){return JSON.stringify({input:e.input??null,groundTruth:e.groundTruth??null,metadata:e.metadata??null},null,2)}function rss(){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}=YU(e??"",r[0]??""),{data:d}=YU(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(Rl,{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(Wct,{})," Default View"]}):o.jsxs(o.Fragment,{children:[o.jsx(Udn,{})," Diff View"]})})})})]}),o.jsx(ay,{className:"grid-cols-[1fr_3vw_1fr]",children:r.map((f,p)=>o.jsxs(g.Fragment,{children:[o.jsx(sss,{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(dCe,{codeA:IYe(u),codeB:IYe(d)})]})})]})}function sss({datasetId:e,itemId:t,Link:n,idx:r,itemIds:s,onItemChange:a,showContent:i=!0}){const{data:l,isLoading:c}=YU(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(grs,{item:l}),o.jsx(KTe,{item:l,Link:n})]}):o.jsxs("div",{className:"text-neutral4 text-sm",children:["Item ",t.slice(0,8)," not found"]})})]})}function AYe(e){return JSON.stringify({input:e.input??null,groundTruth:e.groundTruth??null,metadata:e.metadata??null},null,2)}function ass(){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}=GTe(e??"",t??""),{data:f}=dye(e??"",t??"",i[0]??0,l?.version),{data:p}=dye(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(Rl,{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(Wct,{})," Default View"]}):o.jsxs(o.Fragment,{children:[o.jsx(Efn,{})," Diff View"]})})})})]}),o.jsx(ay,{className:"grid-cols-[1fr_3vw_1fr]",children:i.map((h,m)=>o.jsxs(g.Fragment,{children:[o.jsx(iss,{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(dCe,{codeA:AYe(f),codeB:AYe(p)})]})})]})}function iss({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}=dye(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(KTe,{item:m,Link:i})})]})}function oss(){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(mhn,{})," Compare Dataset Versions"]}),o.jsx(fa.Description,{children:o.jsxs(Rl,{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(Urs,{datasetId:e,versionA:String(n[0]),versionB:String(n[1]),onVersionChange:m}),o.jsx(Wrs,{datasetId:e,versionA:n[0],versionB:n[1],allItems:d,itemsAMap:f,itemsBMap:p,onItemClick:h})]})})]})})})}function pye({children:e,className:t}){return o.jsx("div",{className:K("flex flex-wrap gap-8",t),children:e})}function lss(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 css({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=lss(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 RYe="auto 1fr auto auto auto auto auto auto auto";function uss(e){return e?(typeof e=="string"?new Date(e):e).toLocaleDateString("en-US",{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"}):"—"}const dss={completed:"success",running:"warning",failed:"error",pending:"neutral"};function fss({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:RYe}):o.jsxs(ve,{columns:RYe,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(gg,{variant:dss[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:uss(p.createdAt)})]},p.id)})]})}const pss=[{value:"all",label:"All statuses"},{value:"completed",label:"Completed"},{value:"running",label:"Running"},{value:"failed",label:"Failed"},{value:"pending",label:"Pending"}];function hss(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"},mss=[{label:"Completed",color:cz.completed},{label:"Running",color:cz.running},{label:"Pending",color:cz.pending},{label:"Failed",color:cz.failed}];function gss({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:mss,maxVal:a,fmt:l=>String(l)}):o.jsx(Vt.NoData,{message:"No experiments have been run yet"})})]})}const vss=()=>o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Cr,{iconSlot:o.jsx(Cf,{}),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 yss({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:[...pss],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 bss(){const{data:e,isLoading:t,error:n}=ah(),{data:r,isLoading:s,error:a}=Lg(),{data:i,isLoading:l,error:c}=hG(),{data:u,isLoading:d,isError:f,error:p}=yQr(),{data:h,isLoading:m,isError:v,error:y}=tNe(),b=r?.datasets,S=i?.experiments,w=g.useMemo(()=>Yrs(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(pye,{children:o.jsx(css,{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(NGr,{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(Xts,{experiments:S,isLoading:l,isError:!!c}),o.jsx(gss,{experiments:S,datasets:b,isLoading:l,isError:!!c})]}),o.jsx(Grs,{reviewSummary:h,experiments:S,datasets:b,isLoading:m,isError:!!v})]})})}function xss(){const[e,t]=g.useState(""),[n,r]=g.useState("all"),[s,a]=g.useState("all"),{data:i,isLoading:l,error:c}=Lg(),{data:u,isLoading:d,error:f}=hG(),{data:p}=tNe(),h=g.useMemo(()=>i?.datasets??[],[i?.datasets]),m=g.useMemo(()=>u?.experiments??[],[u?.experiments]),v=g.useMemo(()=>hss(h),[h]),y=g.useMemo(()=>fFt(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(vss,{})});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(yss,{search:e,onSearchChange:t,statusFilter:n,onStatusFilterChange:r,datasetFilter:s,onDatasetFilterChange:a,datasetOptions:v,onReset:k,hasActiveFilters:w})}),o.jsx(fss,{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 wss(){const{experimentId:e}=ur(),{data:t,isLoading:n}=hG(),s=t?.experiments?.find(h=>h.id===e)?.datasetId??"",{data:a,isLoading:i,error:l}=QU(s,e??""),{data:c,isLoading:u,setEndOfListElement:d,isFetchingNextPage:f,hasNextPage:p}=dG({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&&ake(l)||!n&&!s||!i&&!l&&!a?o.jsx(uz,{children:o.jsx(Cr,{iconSlot:o.jsx(Ibe,{}),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(pFt,{experiment:a}),o.jsx(zt.MainArea,{children:o.jsx(dFt,{experimentId:e,datasetId:s,experimentStatus:a.status,results:c??[],isLoading:u,setEndOfListElement:d,isFetchingNextPage:f,hasNextPage:p})})]})}function Sss({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 hFt({connections:e,isAdmin:t,disconnectPending:n,onDisconnect:r}){return o.jsx("ul",{className:"space-y-1",children:e.map(s=>o.jsx(Sss,{connection:s,isAdmin:t,disconnectPending:n,onDisconnect:()=>r(s.connectionId)},s.connectionId))})}function kss({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(hFt,{connections:a,isAdmin:t,disconnectPending:n,onDisconnect:r})]},s))})}function Oss({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(kss,{groups:r,isAdmin:s,disconnectPending:l,onDisconnect:u}):o.jsx(hFt,{connections:n,isAdmin:s,disconnectPending:l,onDisconnect:u}),c?o.jsx("p",{className:"text-red-600",children:String(c)}):null]})}function _ss({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 PYe=e=>e.authorId?.trim()||"shared",Css=(e,t)=>{if(!t||new Set(e.map(PYe)).size<=1)return null;const r=new Map;for(const a of e){const i=PYe(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},Ess=["*","tool-providers:*","tool-providers:admin"];function jss(){const{data:e}=Om();return e?.permissions?.some(t=>Ess.includes(t))??!1}function Tss(){const[e,t]=g.useState(""),[n,r]=g.useState(""),[s,a]=g.useState(""),i=XN(),l=RH(e||null),c=VEt(e||null,n||null),u=qEt(),d=FEt(),f=jss(),p=i.data?.providers??[],h=l.data?.data??[],m=g.useMemo(()=>c.data?.items??[],[c.data?.items]),v=g.useMemo(()=>Css(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(_ss,{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(Oss,{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 Nss({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(Yh,{className:"h-10 w-10"}),o.jsx("h1",{className:"text-xl font-semibold text-neutral6",children:e})]}),t,n,r]})})}function mFt({redirectUri:e,onSuccess:t,initialMode:n="signin",errorMessage:r}){const{data:s,isLoading:a}=oc(),{mutate:i,isPending:l,error:c}=tir(),{mutate:u,isPending:d,error:f}=rir(),{mutate:p,isPending:h}=pCt(),[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(wf,{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(Nss,{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(_n,{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(_n,{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(_n,{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 Iss(){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(mFt,{redirectUri:n,onSuccess:i,initialMode:s,errorMessage:a})}const ep=Mi.KeyValueList;function Ass(e){return e instanceof Date?e:new Date(e)}function Rss({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=Ass(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(oV,{}):o.jsx(f0e,{})}),o.jsxs(Dr,{spacing:"close",children:[o.jsx(ce,{size:"md",tooltip:"Previous log",onClick:s,disabled:!s,children:o.jsx(iV,{})}),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(q8,{}),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(q8,{}),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 Pss({error:e,resource:t,errorTitle:n}){if(gs(e))return o.jsx(Ws,{});if(ys(e))return o.jsx(Ls,{resource:t});if(o_t(e,"logs"))return o.jsx(Cr,{iconSlot:o.jsx(lV,{}),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 $ss({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 Mss={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 Dss({level:e}){const t=Mss[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 Lss({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(Ad,{className:n,"aria-hidden":!0});case Os.TOOL:return o.jsx(kf,{className:n,"aria-hidden":!0});default:return null}}function zss({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(Lss,{entityType:n}),t?o.jsx("span",{className:"min-w-0 truncate text-ui-smd",children:t}):"-"]})}function Fss({message:e}){return o.jsx(Oo,{height:"compact",className:"min-w-0 truncate font-mono text-ui-smd text-neutral4",children:e})}function Bss({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(jSe,{children:t})}const Vl=Object.assign(C3,{Top:fH,TopCell:M_,TopCellWithTooltip:pH,TopCellSmart:akt,RowWrapper:RSe,RowButton:E3,RowLink:ikt,Spacer:ASe,NoMatch:dH,DateCell:TSe,TimeCell:NSe,LevelCell:Dss,EntityCell:zss,MessageCell:Fss,DataCell:Bss,NextPageLoading:uH}),$Ye="6rem 9rem 5rem 10rem minmax(8rem,1fr) minmax(8rem,1fr)",Uss=36,qss=8;function Vss({logs:e,isLoading:t,isFetchingNextPage:n,hasNextPage:r,setEndOfListElement:s,logIdMap:a,featuredLogId:i,onLogClick:l}){const c=g.useRef(null),u=Yzt({count:e.length,getScrollElement:()=>c.current,estimateSize:()=>Uss,overscan:qss}),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:$Ye});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(Vl,{columns:$Ye,variant:"striped",scrollRef:c,className:"min-w-0",children:[o.jsxs(Vl.Top,{children:[o.jsx(Vl.TopCell,{children:"Date"}),o.jsx(Vl.TopCell,{children:"Time"}),o.jsx(Vl.TopCell,{children:"Level"}),o.jsx(Vl.TopCell,{children:"Entity"}),o.jsx(Vl.TopCell,{children:"Message"}),o.jsx(Vl.TopCell,{children:"Data"})]}),e.length===0?o.jsx(Vl.NoMatch,{message:"No logs match your search"}):o.jsxs(o.Fragment,{children:[o.jsx(Vl.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(Vl.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(Vl.DateCell,{timestamp:y.timestamp}),o.jsx(Vl.TimeCell,{timestamp:y.timestamp}),o.jsx(Vl.LevelCell,{level:y.level}),o.jsx(Vl.EntityCell,{entityType:y.entityType,entityName:y.entityName}),o.jsx(Vl.MessageCell,{message:y.message}),o.jsx(Vl.DataCell,{data:y.data})]},b)}),o.jsx(Vl.Spacer,{height:m})]}),o.jsx(Vl.NextPageLoading,{isLoading:n,hasMore:r,setEndOfListElement:s})]})}function Hss({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=>Wss(f,a));return o.jsxs("div",{className:K("grid grid-cols-[1fr_auto] items-start gap-3"),children:[o.jsx(zTe,{fields:a,tokens:i,onTokensChange:l,disabled:s,autoFocusFieldId:c}),u&&o.jsx(DTe,{disabled:s,onClear:d?e:void 0,onRemoveAll:t,onSave:n,onRemoveSaved:r})]})}function Wss(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 Zss={"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"},Ose="MMM d, yyyy HH:mm",_se="Pick a wider range or lower the logging level — verbose entries (debug, info) may be filtered out.";function Gss({datePreset:e,dateFrom:t,dateTo:n}){return e&&e!=="all"&&e!=="custom"?{title:`No logs for ${Zss[e]}`,description:_se}:t&&n?{title:`No logs between ${tr(t,Ose)} and ${tr(n,Ose)}`,description:_se}:t?{title:`No logs since ${tr(t,Ose)}`,description:_se}:{title:"No logs yet",description:"Logs will appear here once agents, workflows, or tools are executed."}}const Qss=({datePreset:e,dateFrom:t,dateTo:n}={})=>{const{title:r,description:s}=Gss({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(lV,{}),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(p0e,{})]})})})},Yss=20,Xss=1e4;function Kss(e,t,n){if(e?.pagination?.hasMore)return n+1}function Jss(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 eas(e){return o_t(e.state.error,"logs")?!1:Xss}const tas=({filters:e}={})=>{const t=We(),{inView:n,setRef:r}=R_(),s=$1({queryKey:["logs",e],queryFn:({pageParam:p})=>t.listLogsVNext({pagination:{page:p,perPage:Yss},filters:e,orderBy:{field:"timestamp",direction:"DESC"}}),initialPageParam:0,getNextPageParam:Kss,select:Jss,retry:!1,refetchInterval:eas}),{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},gFt=[{label:"Agent",entityType:dz.AGENT},{label:"Workflow",entityType:dz.WORKFLOW},{label:"Scorer",entityType:dz.SCORER},{label:"Ingest",entityType:dz.INGEST}],nas=[{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",ras=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),nNe=new Set(["tags"]),rNe="mastra:logs:saved-filters";function sas(e,t=rNe){const n=cas(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 aas(e=rNe){try{localStorage.removeItem(e)}catch{}}function MYe(e=rNe){try{const t=localStorage.getItem(e);if(!t)return null;const n=new URLSearchParams(t);return n.toString()?n:null}catch{return null}}function ias(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 oas({availableTags:e,availableRootEntityNames:t,availableServiceNames:n,availableEnvironments:r,loading:s}){const a=[{id:"rootEntityType",label:"Primitive Type",kind:"pick-multi",searchable:!1,options:gFt.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:nas.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 las(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),nNe.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 cas(e){const t=new URLSearchParams,n=e.get(Mx);n&&t.set(Mx,n);for(const r of t5){const s=Cl[r];if(nNe.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 uas(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(nNe.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 das({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 fas(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 pas="Filters setting for Logs saved",has="Filters setting for Logs cleared up";function mas(e,t,n){const{storageKey:r,messages:s,skipHydration:a}={},[i,l]=g.useState(()=>MYe(r)!==null),c=g.useCallback(()=>{sas(e,r),l(!0);const f=s?.saved??pas;f!==!1&&De.success(f)},[e,r,s?.saved]),u=g.useCallback(()=>{aas(r),l(!1);const f=s?.cleared??has;f!==!1&&De.success(f)},[r,s?.cleared]),d=g.useRef(!1);return g.useEffect(()=>{if(a||d.current||(d.current=!0,ias(e)))return;const f=MYe(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 gas(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 vas(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,gas(`${r}${n.message??""}${n.data?JSON.stringify(n.data):""}`))}return t}function yas(e,t,n,r){const s=g.useMemo(()=>vas(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 hye="logId",mye="traceId",gye="spanId",DR=1440*60*1e3,bas={"last-24h":DR,"last-3d":3*DR,"last-7d":7*DR,"last-14d":14*DR,"last-30d":30*DR};function fz(e){e.delete(hye),e.delete(mye),e.delete(gye)}function xas(e,t,n){const{onRemoveAll:r}={},s=g.useMemo(()=>{const _=e.get(qb);return _&&ras.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 _=bas[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(hye),f=e.get(mye),p=e.get(gye),h=g.useMemo(()=>gFt.find(_=>_.entityType===e.get(Mx)),[e]),m=g.useMemo(()=>las(e),[e]),v=g.useCallback(_=>{t(C=>{const E=new URLSearchParams(C);for(const[j,T]of Object.entries(_)){const I=j==="logId"?hye:j==="traceId"?mye:gye;T?E.set(I,T):E.delete(I)}return E},{replace:!0})},[t]),y=g.useCallback(_=>{t(C=>{const E=new URLSearchParams(C);return uas(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 was({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(ope,{}),codeStr:JSON.stringify(t.input??null,null,2)}),o.jsx(Mi.CodeSection,{title:"Output",icon:o.jsx(lpe,{}),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 Sas(){const[e,t]=va(),n=xas(e,t),r=mas(e,t),[s,a]=g.useState(),[i,l]=g.useState(!1),{data:c=[],isPending:u}=ZTe(),{data:d=[],isPending:f}=VTe({entityType:n.selectedEntityOption?.entityType,rootOnly:!0}),{data:p=[],isPending:h}=HTe(),{data:m=[],isPending:v}=WTe(),y=g.useMemo(()=>oas({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(()=>das({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}=tas({filters:b}),{logIdMap:j,featuredLog:T,handleLogClick:I,handlePreviousLog:A,handleNextLog:P}=yas(S,n.featuredLogId,n.handleFeaturedChange,n.featuredTraceId),{data:L,isLoading:D}=vH(n.featuredTraceId??null),{data:q,isLoading:H}=ZN(n.featuredTraceId??"",n.featuredSpanId??""),z=g.useCallback(()=>n.applyFilterTokens(fas(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(MTe,{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(FTe,{fields:y,tokens:n.filterTokens,onTokensChange:n.handleFilterTokensChange,disabled:w,onStartTextFilter:a})]})}),o.jsx(Hss,{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(Pss,{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(Qss,{datePreset:n.datePreset,dateFrom:n.selectedDateFrom,dateTo:n.selectedDateTo})})]}):o.jsxs(zt,{width:"wide",height:"full",children:[F,o.jsx($ss,{logCollapsed:i,listSlot:o.jsx(Vss,{logs:S,isLoading:w,isFetchingNextPage:_,hasNextPage:C,setEndOfListElement:E,logIdMap:j,featuredLogId:n.featuredLogId,onLogClick:I}),logPanelSlot:T?o.jsx(Rss,{log:T,onClose:B,onTraceClick:V,onSpanClick:M,onPrevious:A,onNext:P,collapsed:i,onCollapsedChange:l}):null,tracePanelSlot:n.featuredTraceId?o.jsx(Tkt,{traceId:n.featuredTraceId,spans:L?.spans,isLoading:D,onClose:Q,onSpanSelect:$,selectedSpanId:n.featuredSpanId}):null,spanPanelSlot:n.featuredTraceId&&n.featuredSpanId?o.jsx(was,{spanId:n.featuredSpanId,span:q?.span,isLoading:H,onClose:U}):null})]})}function kas({server:e}){const{paths:t,Link:n}=yn(),s=We().options.baseUrl,a=s?`${s}/api/mcp/${e.id}/sse`:"",{data:i}=f6t(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=pm(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 Oas({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(kf,{}),tooltip:"Tools",className:"text-center"}),o.jsx(ve.TopCellSmart,{long:"Workflows",short:o.jsx(Ad,{}),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(kas,{server:s},s.id))]})}const _as=()=>o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Cr,{iconSlot:o.jsx(Cf,{}),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,{})]})})}),Cas=()=>{const{data:e=[],isLoading:t,error:n}=XZ(),[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(_as,{})}):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(Oas,{mcpServers:e,isLoading:t,search:r})]})},Eas=(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 jas({tools:e,agents:t,isLoading:n,search:r=""}){const{paths:s,Link:a}=yn(),i=g.useMemo(()=>Eas(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=pm(c.id,50),d=pm(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 Tas=()=>o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Cr,{iconSlot:o.jsx(Cf,{}),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,{})]})})}),Nas=()=>{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}}})},Ias=({toolId:e})=>{const{canExecute:t}=ol(),n=t("tools"),{data:r={}}=_m(),s=g.useMemo(()=>{for(const v of Object.values(r))if(v.tools){const y=Object.values(v.tools).find(b=>b.id===e);if(y)return y}return null},[r,e]),{data:a,isLoading:i,error:l}=Lsr(e,{enabled:!s}),c=s||a,{mutateAsync:u,isPending:d,data:f}=Nas(),{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?dm(cm(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(STe,{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 Aas({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}=_m(),{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 Ras=({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(bkt,{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(Pas,{server:t})})]})},Pas=({server:e})=>{const{data:t={},isLoading:n}=f6t(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(Mas,{tool:a,serverId:e.id},s)})})]})};function $as(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 Mas=({tool:e,serverId:t})=>{const n=g.useRef(null),{Link:r,paths:s}=yn(),a=z9t[e.toolType||"tool"],i=$as(e._meta);return o.jsxs(Af,{onClick:()=>n.current?.click(),children:[o.jsx(UEt,{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})]})]})},Das=()=>{const{serverId:e}=ur(),{data:t=[],isLoading:n}=XZ(),r=t.find(s=>s.id===e);return o.jsx("div",{className:"h-full w-full overflow-hidden",children:o.jsx(Ras,{isLoading:n,server:r})})};function Las(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 zas=({toolId:e,serverId:t})=>{const{canExecute:n}=ol(),r=n("tools"),s=We(),{data:a,isLoading:i,error:l}=Wje(t,e),{mutateAsync:c,isPending:u,data:d}=HUr(t,e),f=a?Las(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=dm(cm(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(d6t,{html:p,toolName:a.name??a.id,onToolCall:h})}),o.jsx(STe,{executionResult:d,isExecutingTool:u,zodInputSchema:v,handleExecuteTool:m,toolDescription:a.description||"",toolId:a.id})]})},Fas=()=>{const{serverId:e,toolId:t}=ur(),{data:n,isLoading:r}=Wje(e,t);return r||!n?null:o.jsx("div",{className:"h-full w-full overflow-y-auto",children:o.jsx(zas,{toolId:t,serverId:e})})},vFt=[{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"},mG=Object.keys(pN),sNe="mastra:metrics:saved-filters";function Bas(e){const t=Was(e);try{localStorage.setItem(sNe,t.toString())}catch{}}function Uas(){try{localStorage.removeItem(sNe)}catch{}}function yFt(){try{const e=localStorage.getItem(sNe);if(!e)return null;const t=new URLSearchParams(e);return t.toString()?t:null}catch{return null}}function qas(e){if(e.has(fN))return!0;for(const t of mG)if(e.has(pN[t]))return!0;return!1}function Vas({availableTags:e,availableEntityNames:t,availableServiceNames:n,availableEnvironments:r,loading:s}){const a=[{id:"rootEntityType",label:"Primitive Type",kind:"pick-multi",searchable:!1,options:vFt.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 Has(e){const t=[],n=new Map([[fN,"rootEntityType"]]);for(const s of mG)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 Was(e){const t=new URLSearchParams,n=e.getAll(fN);for(const r of n)t.append(fN,r);for(const r of mG){const s=pN[r],a=e.getAll(s);for(const i of a)t.append(s,i)}return t}function Zas(e,t){e.delete(fN);for(const n of mG)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 Gas="Any";function DYe(e){const t=e.trim();return t===""||t===Gas}const Qas=new Set(vFt.map(e=>e.entityType));function LYe(e){const t=e.trim();return Qas.has(t)?t:void 0}function Yas(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=>!DYe(a));if(s.length===0)continue;if(r==="tags")t.tags=s;else if(r==="rootEntityType"){const a=s[0],i=a!==void 0?LYe(a):void 0;i&&(t.rootEntityType=i)}else t[r]=s[0]}else if(typeof n.value=="string"){if(DYe(n.value))continue;const s=n.value.trim();if(r==="rootEntityType"){const a=LYe(s);a&&(t.rootEntityType=a)}else t[r]=s}}return t}const bFt=[{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"}],Xas=new Set(bFt.map(e=>e.value));function Kas(e){return typeof e=="string"&&(Xas.has(e)||e==="custom")}const xFt=g.createContext({datePreset:"24h",setDatePreset:()=>{},customRange:void 0,setCustomRange:()=>{},dateRangeLabel:"Last 24 hours",filterTokens:[],setFilterTokens:()=>{},dimensionalFilter:{},dimensionalFilterKey:"{}",tracesBasePath:void 0,logsBasePath:void 0});function gG(){return g.useContext(xFt)}function Jas(e,t){return e!=="custom"?bFt.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 eis({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(()=>Yas(d),[d]),p=g.useMemo(()=>JSON.stringify(f),[f]),h=Jas(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(xFt.Provider,{value:m,children:e})}const tis=["last-24h","last-3d","last-7d","last-14d","last-30d","custom"];function nis(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 ris(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 sis(){const{datePreset:e,setDatePreset:t,customRange:n,setCustomRange:r}=gG(),s=g.useRef(e);s.current=e;const a=g.useRef(n);return a.current=n,o.jsx(MTe,{preset:nis(e),onPresetChange:i=>{const l=ris(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:tis})}const vye=1440*60*1e3,ais={"24h":vye,"3d":4320*60*1e3,"7d":10080*60*1e3,"14d":336*60*60*1e3,"30d":720*60*60*1e3};function iis(e,t,n){if(e!=="custom"){const r=ais[e]??vye;return{start:new Date(n-r),end:new Date(n)}}return{start:t?.from??new Date(n-vye),end:t?.to??new Date(n)}}function Nm(){const{datePreset:e,customRange:t,dimensionalFilter:n,dimensionalFilterKey:r}=gG(),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(()=>iis(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 wFt(){const e=We(),{filters:t,filterKey:n}=Nm();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(K_n,{})})}function ois({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(PCn,{})})}const lis=[{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 cis(e){return e==="agents"||e==="workflows"||e==="tools"}function Cse({data:e,onPointClick:t}){return e.length===0?o.jsx(Vt.NoData,{message:"No latency data yet"}):o.jsx(ZU,{data:e,series:lis,onPointClick:t?n=>{const r=n;typeof r?.tsMs=="number"&&Number.isFinite(r.tsMs)&&t(r)}:void 0})}function uis({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=>{cis(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(Cse,{data:e.agentData,onPointClick:r?b=>r("agents",b):void 0})}),o.jsx(Xr,{value:"workflows",children:o.jsx(Cse,{data:e.workflowData,onPointClick:r?b=>r("workflows",b):void 0})}),o.jsx(Xr,{value:"tools",children:o.jsx(Cse,{data:e.toolData,onPointClick:r?b=>r("tools",b):void 0})})]}):o.jsx(Vt.NoData,{message:"No latency data yet"})})]})}function dis(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 fis(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 SFt(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=dis(s);l&&e.set(t,l)}function No(e,t,n){typeof n=="string"&&n.length>0&&e.set(t,n)}function kFt(e,t,n){if(!(!Array.isArray(n)||n.length===0))for(const r of n)r&&e.append(t,r)}function zYe({preset:e,customRange:t,dashboardFilter:n,scope:r,tracesBasePath:s="/observability"}){const a=new URLSearchParams;a.set(ww,"branches"),SFt(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),kFt(a,_l.tags,n.tags);const l=a.toString();return l?`${s}?${l}`:s}function pis({preset:e,customRange:t,dashboardFilter:n,scope:r,logsBasePath:s="/logs"}){const a=new URLSearchParams;SFt(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),kFt(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}=gG(),a=g.useCallback((c={})=>zYe({preset:e,customRange:t,dashboardFilter:n,scope:c,tracesBasePath:r}),[e,t,n,r]),i=g.useCallback((c={})=>pis({preset:e,customRange:t,dashboardFilter:n,scope:c,logsBasePath:s}),[e,t,n,s]),l=g.useCallback((c,u,d)=>{const f=fis(u,d);return zYe({preset:e,customRange:t,dashboardFilter:n,scope:{...c,window:f},tracesBasePath:r})},[e,t,n,r]);return{getTracesHref:a,getLogsHref:i,getBucketTracesHref:l}}const OFt="1h";async function Ese(e,t,n){const r=await e.getMetricPercentiles({name:t,percentiles:[.5,.95],interval:OFt,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 his(){const e=We(),{filters:t,filterKey:n}=Nm();return St({queryKey:["metrics","latency",n],queryFn:async()=>{const[r,s,a]=await Promise.all([Ese(e,"mastra_agent_duration_ms",t),Ese(e,"mastra_workflow_duration_ms",t),Ese(e,"mastra_tool_duration_ms",t)]);return{agentData:r,workflowData:s,toolData:a,interval:OFt}}})}const FYe={agents:Os.AGENT,workflows:Os.WORKFLOW_RUN,tools:Os.TOOL};function mis(){const{data:e,isLoading:t,isError:n}=his(),{getTracesHref:r,getBucketTracesHref:s}=EI(),{Link:a}=yn(),i=bs();return o.jsx(uis,{data:e,isLoading:t,isError:n,onPointClick:(l,c)=>{Number.isFinite(c.tsMs)&&i(s({rootEntityType:FYe[l]},c.tsMs,"1h"))},actions:l=>o.jsx(n5,{href:r({rootEntityType:FYe[l]}),LinkComponent:a})})}function gis(e){return e==="threads"||e==="resources"}function jse(e){return e.length<=12?e:`${e.slice(0,6)}…${e.slice(-4)}`}function vis({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=>{gis(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",...fye,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:jse(y.threadId)}),o.jsx(ve.NumberCell,{children:y.resourceId?jse(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?kg(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",...fye,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:jse(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?kg(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 Tse=20;function yis(){const e=We(),{filters:t,filterKey:n}=Nm();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:Tse}),e.getMetricBreakdown({...r,name:["mastra_model_total_input_tokens"],aggregation:"sum",limit:Tse}),e.getMetricBreakdown({...r,name:["mastra_model_total_output_tokens"],aggregation:"sum",limit:Tse})]),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 Nse=20;function bis(){const e=We(),{filters:t,filterKey:n}=Nm();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:Nse}),e.getMetricBreakdown({...r,name:["mastra_model_total_input_tokens"],aggregation:"sum",limit:Nse}),e.getMetricBreakdown({...r,name:["mastra_model_total_output_tokens"],aggregation:"sum",limit:Nse})]),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 xis(){const e=yis(),t=bis(),{getTracesHref:n}=EI(),{Link:r}=yn();return o.jsx(vis,{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 wis(){const e=We(),{filters:t,filterKey:n}=Nm();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 Sis(){const e=We(),{filters:t,filterKey:n}=Nm();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 kis(){const e=We(),{filters:t,filterKey:n}=Nm();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 Ois(){const e=We(),{filters:t,filterKey:n}=Nm();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 _is(){const{data:e,isLoading:t,isError:n}=wFt();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 Cis(){const{data:e,isLoading:t,isError:n}=kis();return o.jsx(s5,{label:"Total Model Cost",value:e?.cost!=null?kg(e.cost,e.costUnit):null,prevValue:e?.previousCost!=null?kg(e.previousCost,e.costUnit):void 0,changePct:e?.costChangePercent??null,isLoading:t,isError:n})}function Eis(){const{data:e,isLoading:t,isError:n}=Ois();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 jis(){const{data:e,isLoading:t,isError:n}=Sis();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 Tis(){const{data:e,isLoading:t,isError:n}=wis();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 Nis({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=>Iis(f,a));return o.jsxs("div",{className:K("grid grid-cols-[1fr_auto] gap-3 items-start"),children:[o.jsx(zTe,{fields:a,tokens:i,onTokensChange:l,disabled:s,autoFocusFieldId:c}),u&&o.jsx(DTe,{disabled:s,onClear:d?e:void 0,onRemoveAll:t,onSave:n,onRemoveSaved:r})]})}function Iis(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 Ais({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?kg(l):"—":c.size===1?u=l>0?kg(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",...fye,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?kg(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 Ris(){const e=We(),{filters:t,filterKey:n}=Nm();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 Pis(){const{data:e,isLoading:t,isError:n}=Ris(),{getTracesHref:r}=EI(),{Link:s}=yn();return o.jsx(Ais,{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 $is(e){return e==="tokens"||e==="cost"}function Mis({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:kg(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=>{$is(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=>kg(b,m)}):o.jsx(Vt.NoData,{message:"No cost data yet"})})]}):o.jsx(Vt.NoData,{message:"No token usage data yet"})})]})}function Dis(){const e=We(),{filters:t,filterKey:n}=Nm();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 Lis(){const{data:e,isLoading:t,isError:n}=Dis(),{getTracesHref:r}=EI(),{Link:s}=yn();return o.jsx(Mis,{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 yye(e,t=wc){return n=>({value:t(n.reduce((r,s)=>r+(typeof s[e]=="number"?s[e]:0),0))})}const zis=[{dataKey:"input",label:"Input tokens",color:Mp.blue,aggregate:yye("input")},{dataKey:"output",label:"Output tokens",color:Mp.yellow,aggregate:yye("output")}];function Fis(e){return e==="tokens"||e==="cost"}function Bis({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:yye("cost",k=>kg(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:kg(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=>{Fis(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(ZU,{data:c,series:zis})}),o.jsx(Xr,{value:"cost",children:b?o.jsx(ZU,{data:p,series:w}):o.jsx(Vt.NoData,{message:"No cost data yet"})})]}):o.jsx(Vt.NoData,{message:"No token usage data yet"})})]})}function Uis(e){return e==="24h"?"1h":"1d"}function qis(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 BYe(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 Vis(e){return e.cost==null||e.hasUnknownCostUnit||e.costUnits.size!==1?null:[...e.costUnits][0]??null}function His(){const e=We(),{datePreset:t,filters:n,filterKey:r}=Nm(),s=Uis(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 BYe(l,a.series[0],"input"),BYe(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:qis(d,s),tsMs:u.tsMs,input:u.input,output:u.output,total:u.input+u.output,cost:u.cost,costUnit:Vis(u)}}),interval:s}}})}function Wis(){const{data:e,isLoading:t,isError:n}=His(),{getTracesHref:r}=EI(),{Link:s}=yn();return o.jsx(Bis,{data:e?.data,interval:e?.interval,isLoading:t,isError:n,actions:o.jsx(n5,{href:r(),LinkComponent:s})})}function Ise({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 Zis({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(Ise,{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(Ise,{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(Ise,{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 Ase(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 Gis(){const e=We(),{filters:t,filterKey:n}=Nm();return St({queryKey:["metrics","trace-volume",n],queryFn:async()=>{const[r,s,a]=await Promise.all([Ase(e,"mastra_agent_duration_ms",t),Ase(e,"mastra_workflow_duration_ms",t),Ase(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 Qis(){const{data:e,isLoading:t,isError:n}=Gis(),{getTracesHref:r,getLogsHref:s}=EI(),{Link:a}=yn();return o.jsx(Zis,{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(ois,{href:s({rootEntityType:pz[i],status:"error"}),LinkComponent:a})]})})}const Yis=new Set(["ObservabilityStorageClickhouseVNext","ObservabilityStorageDuckDB","ObservabilityInMemory","ObservabilitySpanner","ObservabilityStoragePostgresVNext"]),Rse="period",hz="dateFrom",mz="dateTo";function Xis(){const[e,t]=va(),n=e.get(Rse),r=Kas(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(()=>Has(e),[e.toString()]),i=g.useCallback(d=>{t(f=>{const p=new URLSearchParams(f);return d==="24h"?p.delete(Rse):p.set(Rse,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 Zas(p,d),p},{replace:!0})},[t]),u=g.useRef(!1);return g.useEffect(()=>{if(u.current||(u.current=!0,qas(e)))return;const d=yFt();d&&t(f=>{const p=new URLSearchParams(f);for(const[h,m]of d)p.append(h,m);return p},{replace:!0})},[]),o.jsx(eis,{preset:r,filterTokens:a,onPresetChange:i,onFilterTokensChange:c,customRange:s,onCustomRangeChange:l,children:o.jsx(Kis,{})})}function Kis(){const[e]=va(),{error:t,isLoading:n}=wFt(),{filterTokens:r,setFilterTokens:s}=gG(),[a,i]=g.useState(),{data:l,isLoading:c}=U3(),u=l?.observabilityStorageType,d=u?Yis.has(u):!1,f=u==="ObservabilityInMemory",{data:p,isLoading:h}=ZTe(),{data:m,isLoading:v}=VTe(),{data:y,isLoading:b}=WTe(),{data:S,isLoading:w}=HTe(),k=g.useMemo(()=>Vas({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(()=>yFt()!==null),E=g.useCallback(()=>{Bas(e),C(!0),De.success("Filters setting for Metrics saved")},[e]),j=g.useCallback(()=>{Uas(),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(sis,{}),o.jsx(FTe,{fields:k,tokens:r,onTokensChange:s,disabled:n,onStartTextFilter:i})]})}),o.jsx(Nis,{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(pye,{children:[o.jsx(_is,{}),o.jsx(Cis,{}),o.jsx(Eis,{}),o.jsx(jis,{}),o.jsx(Tis,{})]}),o.jsxs(pye,{children:[o.jsx(Pis,{}),o.jsx(Lis,{}),o.jsx(Wis,{}),o.jsx(xis,{}),o.jsx(Qis,{}),o.jsx(mis,{})]})]}):o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Cr,{iconSlot:o.jsx(Cf,{}),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 Jis(){const{paths:e}=yn(),{data:t,isLoading:n,error:r}=B9t(),{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(SYr,{})}):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(wYr,{promptBlocks:l,isLoading:n,search:a})]})}function eos(){return o.jsx(zt,{width:"narrow",children:o.jsx(zt.MainArea,{children:o.jsx(wqr,{children:o.jsx(zve,{})})})})}const tos=[{title:"Mastra APIs",description:"Explore and test the available REST API endpoints with the interactive Swagger UI.",icon:Zdn,href:"/swagger-ui",external:!1},{title:"Documentation",description:"Read the official Mastra documentation for guides, references, and tutorials.",icon:Dct,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:Hct,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:Lct,href:"https://mastra.ai/contact?ref=studio",external:!0}];function nos(){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:tos.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 ros(){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(DGr,{search:r,onSearchChange:s,sourceFilter:a,onSourceFilterChange:i,onReset:c,hasActiveFilters:l})}),o.jsx(PGr,{scorers:e,isLoading:t,search:r,sourceFilter:a})]})}function sos(){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}=dGr(e),{data:d={},isLoading:f,error:p}=_m(),{isLoading:h,error:m}=Fy(),{data:v=[],isLoading:y,error:b,isFetchingNextPage:S,hasNextPage:w,setEndOfListElement:k}=uGr({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(im,{})," 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(aGr,{})})]})}return o.jsxs(zt,{width:"wide",children:[z,o.jsx(zt.TopArea,{children:o.jsx(iGr,{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(sGr,{scores:v,isLoading:y,selectedScoreId:s,isFetchingNextPage:S,hasNextPage:w,setEndOfListElement:k,onScoreClick:A,errorMsg:b?.message})]})}function aos({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 _Ft=[{value:"dark",label:"Dark",Icon:Opn},{value:"light",label:"Light",Icon:Dhn},{value:"system",label:"System",Icon:tut}],ios=e=>_Ft.some(t=>t.value===e);function oos({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 los=()=>{const{baseUrl:e,headers:t,apiPrefix:n}=uV(),{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(Oge,{title:"Theme",description:"Customize the appearance of the studio.",children:o.jsx(aos,{label:"Theme mode",htmlFor:"theme",children:o.jsxs(pa,{value:r,onValueChange:a=>{ios(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:_Ft.map(a=>o.jsx(zr,{value:a.value,children:o.jsx(oos,{option:a})},a.value))})]})})}),o.jsx(Oge,{title:"Mastra Connection",description:"Configure the Mastra instance URL, API prefix, and request headers used by the studio.",children:o.jsx(nTt,{initialConfig:{baseUrl:e,headers:t,apiPrefix:n}})})]})})};function cos(){const[e]=va(),t=bs(),n=e.get("redirect")||"/",r=()=>{n.startsWith("http")?window.location.href=n:t(n,{replace:!0})};return o.jsx(mFt,{redirectUri:n,onSuccess:r,initialMode:"signup"})}const CFt=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 uos(e){return e.replace(/\/$/,"").split("/").pop()}function vG({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 dos({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(kf,{})," ",a.tools.length]}),a?.networks&&a.networks.length>0&&o.jsxs("li",{children:[o.jsx(nut,{})," ",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(CFt,{})," ",uos(a.githubUrl)]})})]},a.slug)})})}function fos({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 pos(){const{data:e,isLoading:t}=jKn(),{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(T0e,{children:o.jsxs(Qht,{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(fos,{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(dos,{templates:y,linkComponent:Da,className:"max-w-[80rem] mx-auto",isLoading:t})]})]})}const hos="1.51.1-alpha.1";function mos({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(Sfn,{}),title:"Template Installation Failed"},{icon:l,title:c}=i();return o.jsxs(vG,{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 gos({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(vG,{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(rut,{})]}),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(y9t,{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(ym,{})]})})]})})}function vos({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(Pbe,{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(CFt,{}),n?.split("/")?.pop()]})]}),s&&o.jsx(yTe,{data:s,labelsAreHidden:!0,isLoading:r})]})]})}function yos(e){switch(e){case"running":return o.jsx(Qt,{});case"success":return o.jsx(gx,{});case"failed":return o.jsx(qu,{});default:return null}}function bos({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:yos(t.status)})]})}function xos({currentStep:e,steps:t=[],className:n}){return o.jsx("div",{className:K(n),children:t.map((r,s)=>o.jsx(bos,{stepId:r.id,step:r,isActive:e?.id===r.id,position:s+1},r.id))})}function wos({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 Sos({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(vG,{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(wos,{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(Ppn,{}),l||"Something went wrong"]}),u&&o.jsx(xos,{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 kos({name:e,installedEntities:t}){return o.jsxs(vG,{className:K("grid items-center justify-items-center gap-4 content-center","[&>svg]:w-8 [&>svg]:h-8"),children:[o.jsx(rut,{}),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(yTe,{data:t})]})}function Oos(){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}=TKn({repoOrSlug:e,owner:"mastra-ai"}),P=hos?.includes("beta")??!1?"beta":"main",{data:L,isLoading:D}=NKn({repo:T?.githubUrl?new URL(T.githubUrl).pathname.split("/")[2]:`template-${e}`,owner:"mastra-ai",branch:P}),{data:q,isLoading:H}=IKn(),{mutateAsync:z,isPending:B}=AKn(),{mutateAsync:V}=RKn(),{streamInstall:M,streamResult:Q,isStreaming:U}=$Kn(q),{observeInstall:$,streamResult:F,isStreaming:Z}=MKn(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(kf,{})},{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(vos,{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(Sos,{name:T.title,streamResult:Z?F:Q,runId:b,workflowInfo:q}),v&&o.jsx(kos,{name:T.title,installedEntities:ee,linkComponent:Da}),h&&o.jsx(mos,{errorMsg:h,validationErrors:E.length>0?E:Q?.validationResults?.errors||F?.validationResults?.errors}),!U&&!Z&&!v&&!h&&o.jsx(gos,{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 _os=()=>{const{toolId:e,agentId:t}=ur();return o.jsx("div",{className:"h-full w-full overflow-y-auto",children:o.jsx(zQr,{toolId:e,agentId:t})})},Cos=()=>{const{toolId:e}=ur();return o.jsx("div",{className:"h-full w-full overflow-y-hidden",children:o.jsx(Ias,{toolId:e})})};function Eos(){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}=vH(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}=M9t({traceId:e,spanId:c??void 0,page:m}),[L,D]=g.useState(0);g.useEffect(()=>D(0),[e,c]);const{data:q,isLoading:H}=sFt({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}=yH(_,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(pdn,{}),"Evaluate"]}),o.jsxs(ce,{tooltip:"Save as Dataset Item","aria-label":"Save as Dataset Item",onClick:()=>b(!0),children:[o.jsx(wd,{}),"Save"]})]})}):null,J=C?o.jsx(zt.Row,{children:o.jsx(zt.Column,{children:o.jsx(Zzt,{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(Gzt,{error:k,resource:"traces",errorTitle:"Failed to load trace"})})]}):o.jsxs(zt,{height:"full",className:"grid-rows-[auto_minmax(0,1fr)] content-normal",children:[ee,J&&o.jsx(zt.TopArea,{children:J}),o.jsx(Jzt,{rootSpanId:C?.spanId,traceId:e,isOpen:y,onClose:()=>b(!1)}),o.jsxs("div",{className:K("mt-4 grid min-h-0 items-stretch gap-4 overflow-hidden",c?"grid-cols-[2fr_3fr]":"grid-cols-[1fr]"),children:[o.jsx(BTe,{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 h-full max-h-full min-h-0 gap-4 overflow-auto",d?"grid-rows-[1fr_1fr]":"grid-rows-[1fr]"),children:[o.jsx(gH,{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(tFt,{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(rFt,{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(nFt,{scoresData:A,onPageChange:v,isLoadingScoresData:P,onScoreSelect:F})]})}),d&&o.jsx(vTe,{score:d,onClose:Z})]})]})]})}function jos(){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(G4r,{})}):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(Z4r,{workflows:e||{},isLoading:t,search:r})]})}const Tos={active:"bg-accent1",paused:"bg-accent3"},Nos={active:"text-accent1",paused:"text-accent3"},EFt=({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 ${Tos[e]}`,"aria-hidden":!0}),o.jsx("span",{className:`text-ui-sm ${Nos[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 jFt({status:e}){const{icon:t,color:n}=Ios(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 Ios(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(xq,{size:14}),color:"text-accent3"};case"canceled":return{icon:o.jsx(Cf,{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 UYe="auto auto auto auto 1fr";function Aos(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 Ros(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 Pos=3e4,$os=5*6e4;function Mos({triggers:e,isLoading:t,workflowId:n,hasNextPage:r,isFetchingNextPage:s,setEndOfListElement:a}){const{Link:i,paths:l}=yn();return t?o.jsx(rl,{columns:UYe}):e.length===0?o.jsx(ye,{variant:"ui-md",className:"text-neutral4 p-4",children:"No trigger history yet."}):o.jsxs(ve,{columns:UYe,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=Ros(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>Pos&&m<=$os,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(jFt,{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(Ln,{children:[o.jsx(Pn,{asChild:!0,children:o.jsx("span",{className:"text-accent2 inline-flex",children:o.jsx(Tp,{size:14})})}),o.jsx($n,{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(Ln,{children:[o.jsx(Pn,{asChild:!0,children:o.jsx("span",{className:"text-accent3 inline-flex",children:o.jsx(Tp,{size:14})})}),o.jsxs($n,{children:["Published ",d," after the scheduled fire time"]})]}):null]})}),o.jsx(ve.Cell,{height:"compact",children:c.run?o.jsx("span",{children:Aos(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 Dos=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)}})},qYe=25,Los=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:qYe,toActualFireAt:u}):{triggers:[]},getNextPageParam:u=>{if(!(!u?.triggers?.length||u.triggers.length<qYe))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}},zos=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 Fos(){const{scheduleId:e}=ur(),{paths:t}=yn(),{data:n,error:r}=Dos(e),{data:s,isLoading:a,error:i,hasNextPage:l,isFetchingNextPage:c,setEndOfListElement:u}=Los(e),d=zos(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(sut,{}),"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(EFt,{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(Mos,{triggers:s??[],isLoading:a,workflowId:f,hasNextPage:l,isFetchingNextPage:c,setEndOfListElement:u})]})]}):null]})}const VYe="minmax(0, 1.2fr) minmax(0, 1.4fr) minmax(0, 1fr) auto auto auto";function Bos({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:VYe}):o.jsxs(ve,{columns:VYe,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(EFt,{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(jFt,{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 Uos({workflowId:e}={}){const{data:t,isLoading:n,error:r}=E0e(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(Bos,{schedules:t??[],isLoading:n,search:s})})]})}function qos(){const[e]=va(),t=e.get("workflowId")??void 0,{error:n}=E0e(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(Uos,{workflowId:t})})})}function Vos({stepGraph:e,open:t,workflowName:n}){const{nodes:r,edges:s}=aSe({stepGraph:e}),[a,i]=g.useState(!1),[l,c,u]=E1t(r),[d]=j1t(s),{edgeTypes:f,nodeTypes:p,styledEdges:h}=c$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(C1t,{nodes:l,edges:h,edgeTypes:f,fitView:!0,fitViewOptions:{maxZoom:1},minZoom:.01,maxZoom:1,nodeTypes:p,onNodesChange:u,children:[o.jsx(kCe,{position:"bottom-left"}),o.jsx(N1t,{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 Hos(){const{stepDetail:e,closeStepDetail:t}=iH();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(Ofe,{className:"w-4 h-4",style:{color:ju.map}}),e.type==="nested-graph"&&o.jsx(Ad,{className:"w-4 h-4",style:{color:ju.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(sSe,{children:o.jsx(Vos,{stepGraph:e.nestedGraph.stepGraph,open:!0,workflowName:e.nestedGraph.fullStep})},`nested-graph-${e.nestedGraph.fullStep}`)})]})]}):null}function Wos(e){const t=new Blob([JSON.stringify(e??null)]).size;return t<1024?`${t} B`:`${(t/1024).toFixed(1)} KB`}function Zos(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 Gos({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(xq,{})}),"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?dm(cm(vx(i.resumeSchema))):cp(dr(),uT());return o.jsx(Qos,{step:s,stepSchema:l,description:i.description,isStreaming:n,onResume:r},`${s.runId}-${s.stepId}-${a}`)})]})}function Qos({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(Cpn,{})}),"The step is asking"]}),o.jsxs(Sf,{open:a,onOpenChange:i,children:[o.jsxs(jd,{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:Zos(e.suspendPayload,e.stepId)})]}),o.jsx(ye,{as:"span",variant:"ui-sm",className:"text-neutral3 shrink-0",children:Wos(e.suspendPayload)})]}),o.jsx(Td,{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(Tpn,{})}),"Your response"]}),o.jsx("div",{className:"-mx-5",children:o.jsx(Q7,{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 Yos(){const{result:e,runSnapshot:t,workflow:n,runId:r,isStreamingWorkflow:s}=g.useContext(Dl),{runId:a}=ur(),i=D1t(e,r??""),l=WQn(),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(Gos,{suspendedSteps:i,workflow:n,isStreaming:s,onResume:l})},r)}const Xos=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"})]}),Kos=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"})]}),Jos=e=>e.includes("."),els=e=>e==="input"||e.endsWith(".input"),tls=1;function nls(e){return`${Number((e/1e3).toPrecision(3))}s`}function rls(e,t){const n=Object.entries(e).filter(([i])=>!els(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,tls);return{stepId:i,step:l,status:l.status,offsetPct:f,widthPct:p,durationMs:d,isRunning:c,isNestedEntry:Jos(i)}})}const sls=({status:e})=>o.jsxs(Ue,{children:[e==="success"&&o.jsx(Xos,{className:"text-accent1"}),e==="failed"&&o.jsx(Kos,{className:"text-accent2"}),e==="suspended"&&o.jsx(xq,{className:"text-accent3"}),e==="waiting"&&o.jsx(kfe,{className:"text-accent5"}),e==="skipped"&&o.jsx(kfe,{className:"text-icon3"}),e==="running"&&o.jsx(ta,{className:"text-accent6 animate-spin"})]}),als={success:"bg-accent1",failed:"bg-accent2",suspended:"bg-accent3",waiting:"bg-accent5",skipped:"bg-border1",running:"bg-accent6"};function TFt(e){return e.split(/[-_.\s]+/).filter(Boolean).map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(" ")}const HYe=e=>e&&typeof e=="object"&&!Array.isArray(e)?e:{value:e},ils=e=>{const t=e;return e$t({duration:t.duration,date:t.date,isForEach:t.isForEach,mapConfig:t.mapConfig,canSuspend:t.canSuspend,isParallel:t.isParallel,stepGraph:t.stepGraph})},ols=({row:e,index:t,isSelected:n,isHovered:r,onSelectStep:s,onHoverStep:a,onOpenInput:i,onOpenOutput:l})=>{const c=ils(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(sls,{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(Ihn,{})})}),o.jsx("div",{className:"flex overflow-hidden",children:o.jsx(kU,{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:TFt(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 ${als[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(Thn,{})})}),o.jsx(ye,{as:"span",variant:"ui-sm",className:"w-20 justify-self-end text-right text-neutral3 tabular-nums",children:nls(e.durationMs)})]},`timeline-item-${e.stepId}-${t}`)};function lls(){const{steps:e}=h4(),{selectedStepId:t,hoverStepId:n,setSelectedStepId:r,setHoverStepId:s}=vV(),[a,i]=g.useState(()=>Date.now()),[l,c]=g.useState(!1),[u,d]=g.useState(null),f=g.useRef(null);$0e(f,{enabled:!l});const p=rls(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(ols,{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:HYe(y.step.input)}),onOpenOutput:y=>d({type:"output",stepId:y.stepId,data:HYe(y.step.output)})},`timeline-item-${m.stepId}-${v}`))})]})}),o.jsx(br,{open:!!u,onOpenChange:m=>!m&&d(null),children:u&&o.jsx(z1t,{data:u.data,title:`${TFt(u.stepId)} ${u.type==="input"?"input":"output"}`})})]})}const cls=({workflowId:e,workflow:t,isLoading:n})=>{const{stepDetail:r}=iH();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(v$t,{workflowId:e,workflow:t,isLoading:n}),o.jsx(Yos,{}),o.jsx(lls,{})]})}),r&&o.jsx("div",{className:"w-[420px] min-h-0 overflow-hidden border-l border-border1",children:o.jsx(Hos,{})})]})},WYe=()=>{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(SSe,{children:o.jsx(cls,{workflowId:e,workflow:t??void 0,isLoading:n})})};function uls(e,t){if(e==null)return{};var n,r,s=qxt(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 bye(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 dls(e){if(Array.isArray(e))return bye(e)}function fls(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function pls(e,t){if(e){if(typeof e=="string")return bye(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)?bye(e,t):void 0}}function hls(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
|
|
725
|
+
]`})]})]})}function crs({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 urs({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}=Mts(),{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(lrs,{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(crs,{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(ors,{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 XTe=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})},drs=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 frs(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 uFt({datasetId:e,experimentId:t,featuredItemId:n}){const r=We(),{data:s}=Wx(e),{data:a,isLoading:i}=XTe(e),{data:l,isLoading:c}=drs(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(Il,{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(Bzt,{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(Gct,{}),"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(Fzt,{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(_g,{})}),"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:frs(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(Ube,{})}),Te.rating==="negative"&&o.jsx(Ue,{size:"sm",className:"text-negative1",children:o.jsx(Bbe,{})}),!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(am,{})}),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(zzt,{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 prs({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]=owe(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=hns({hasSearchQuery:!!q,filteredItemsLength:z.length,unfilteredItemsTotal:$,itemsTotal:B}),{data:ne}=XTe(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(irs,{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(Ins,{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(uFt,{datasetId:e})})]}),o.jsx(kns,{datasetId:e,open:u,onOpenChange:d}),o.jsx(urs,{datasetId:e,open:f,onOpenChange:p}),o.jsx(Jts,{open:h,onOpenChange:re,items:v,onSuccess:le}),o.jsx(ens,{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 hrs(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 wse({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 mrs({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=hrs(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(wse,{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(wse,{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(wse,{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 grs({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(Rl,{children:[o.jsx(zct,{})," Created ",tr(new Date(e.createdAt),"MMM d, yyyy h:mm aaa")]}),e.datasetVersion!=null&&o.jsxs(Rl,{children:[o.jsx(d_,{})," Version v",e.datasetVersion]})]})]})})}function KTe({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(bTe,{children:[o.jsx(Ps.CodeSection,{title:"Input",icon:o.jsx(uO,{}),codeStr:t}),o.jsx(Ps.CodeSection,{title:"Ground Truth",icon:o.jsx(xg,{}),codeStr:n}),s&&o.jsx(Ps.CodeSection,{title:"Expected Trajectory",icon:o.jsx(Lbe,{}),codeStr:s}),o.jsx(Ps.CodeSection,{title:"Metadata",icon:o.jsx(kN,{}),codeStr:r})]})}function vrs({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 yrs=[{value:"agent",label:"Agent"},{value:"workflow",label:"Workflow"},{value:"scorer",label:"Scorer"}];function brs({targetType:e,setTargetType:t,targetId:n,setTargetId:r,container:s}){const{data:a,isLoading:i}=_m(),{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:yrs,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 xrs({requestContextSchema:e,onChange:t}){const n=g.useMemo(()=>{try{return dm(cm(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 wrs({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(brs,{targetType:l,setTargetType:c,targetId:u,setTargetId:d,container:i}),l&&l!=="scorer"&&o.jsx(vrs,{selectedScorers:f,setSelectedScorers:p,disabled:k,container:i}),S?o.jsx(xrs,{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 Srs=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})},JTe=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 Sse(e){try{return JSON.stringify(e??{})}catch{return String(e)}}function krs({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: ",Sse(s.args)]}),n.length>0&&o.jsxs("span",{className:"mt-1 block font-mono text-xs",children:["Unconsumed mocks: ",n.map(i=>Sse(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:Sse(i.args)})]}),o.jsx("span",{className:`shrink-0 text-xs px-2 py-0.5 rounded ${Ors(i.outcome)}`,children:i.outcome})]},`${i.outcome}-${i.toolName}-${l}`))})]})}function Ors(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 _rs({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(qct,{}):o.jsx(Uct,{})}),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(JTe,{}),"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(krs,{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(wq,{}),"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(xg,{}),codeStr:S}),o.jsx(bn.CodeSection,{title:"Ground Truth",icon:o.jsx(Fbe,{}),codeStr:w})]})]})]})}function az(e){return e==null?"-":typeof e=="string"?e:JSON.stringify(e,null,2)}function Crs({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(Ln,{children:[o.jsx(Pn,{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($n,{children:y?"Error":"Success"})]})}),m&&o.jsx(ve.MonoCell,{children:jrs(Ers(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 Ers(e){return e==null?"-":typeof e=="string"?e:JSON.stringify(e,null,2)}function jrs(e,t){return e.length<=t?e:e.slice(0,t-1)+"..."}function Trs(e){const t=e.scorer;return t?.hasJudge===!1?!0:t?.hasJudge===!0?!1:!e.preprocessPrompt&&!e.analyzePrompt&&!e.generateScorePrompt&&!e.generateReasonPrompt}function Nrs({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=Trs(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(qct,{}):o.jsx(Uct,{})}),(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(JTe,{}),"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(am,{}),codeStr:e.reason||p,simplified:!0}),!f&&o.jsxs(o.Fragment,{children:[o.jsx(bn.CodeSection,{title:"Preprocess Prompt",icon:o.jsx(Oh,{}),codeStr:e.preprocessPrompt||p,simplified:!0}),o.jsx(bn.CodeSection,{title:"Analyze Prompt",icon:o.jsx(Oh,{}),codeStr:e.analyzePrompt||p,simplified:!0}),o.jsx(bn.CodeSection,{title:"Generate Score Prompt",icon:o.jsx(Oh,{}),codeStr:e.generateScorePrompt||p,simplified:!0}),o.jsx(bn.CodeSection,{title:"Generate Reason Prompt",icon:o.jsx(Oh,{}),codeStr:e.generateReasonPrompt||p,simplified:!0})]})]})})]})}const jYe=[{name:"scorer",label:"Scorer",size:"1fr"},{name:"avg",label:"Avg Score",size:"1fr"},{name:"count",label:"Items Scored",size:"1fr"}];function Irs({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(am,{className:"w-8 h-8 text-neutral3"}),titleSlot:a,descriptionSlot:i})})}return o.jsxs(gn,{children:[o.jsxs(gn.Header,{columns:jYe,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:jYe,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 dFt({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}=XTe(t),U=(Q??[]).filter(re=>re.experimentId===e).length,{data:$}=$zt(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}=Srs(d),me=fe?.spans,{data:be,isLoading:we}=ZN(d,p),je=be?.span,{handlePreviousSpan:ke,handleNextSpan:Ae}=yH(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(Irs,{scoresByItemId:$,experimentStatus:n})}),o.jsx(Xr,{value:"reviews",className:"overflow-auto mt-2 pb-0",children:o.jsx(uFt,{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(wq,{})}),"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(Crs,{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(_rs,{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(Nrs,{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(BTe,{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(gH,{traceId:d,spanId:p,span:je,isLoading:we,onPrevious:ke,onNext:Ae,onClose:()=>h(void 0)})]})]})]})]})]})}const Ars={pending:o.jsx(Xj,{}),running:o.jsx(_fe,{}),completed:o.jsx(ra,{}),failed:o.jsx(vs,{})};function Rrs({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:Ars[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 Prs({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(iV,{})," Prev"]}),o.jsxs(ce,{onClick:t,disabled:!t,"aria-label":r,children:["Next",o.jsx(VD,{})]})]})}function eNe({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(_un,{})}):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 $rs({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(Prs,{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(bTe,{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(eNe,{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(xg,{}),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(xg,{}),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(Fbe,{}),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 Mrs({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(eNe,{delta:m})]}):o.jsx("span",{className:"text-neutral1",children:"-"})},f)})})]})},l.itemId)})})})]})})}const Drs={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 TYe({datasetId:e,experiment:t,type:n}){const{Link:r}=yn(),{label:s,color:a,customStyle:i}=Drs[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(ym,{})]}),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(Rl,{children:[o.jsx(Fbe,{})," ",t.targetType," / ",t.targetId]}),o.jsxs(Rl,{children:[o.jsx(Oq,{})," v",t.datasetVersion??"—"]}),l&&o.jsxs(Rl,{children:[o.jsx(Fct,{})," ",tr(l,"MMM d, yyyy HH:mm")]})]})]})}function Lrs({datasetId:e,experimentIdA:t,experimentIdB:n,onSwap:r}){const[s,a]=g.useState(null),{data:i,isLoading:l,error:c}=Cts(e,t,n),{data:u}=QU(e,t),{data:d}=QU(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(TYe,{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(Ln,{children:[o.jsx(Pn,{asChild:!0,children:o.jsx(ce,{onClick:r,children:"VS"})}),o.jsx($n,{children:"Switch the order"})]})})}),o.jsx(TYe,{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(AQe,{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(AQe,{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(eNe,{delta:I}):"-"})]},E))})})]}),o.jsxs(ay,{className:K({"grid-cols-[1fr_2fr]":!!y}),children:[o.jsx(Mrs,{items:i.items,baselineId:_,contenderId:C,scorerIds:p,featuredItemId:s,columns:v,onItemClick:b}),!!y&&o.jsx($rs,{item:y,baselineId:_,contenderId:C,baselineVersion:u?.datasetVersion,contenderVersion:d?.datasetVersion,onPrevious:k(),onNext:w(),onClose:S})]})]})}function zrs({datasetId:e,itemId:t,onVersionSelect:n,onCompareVersionsClick:r,activeVersion:s}){const{data:a,isLoading:i}=GTe(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(Frs,{}):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 Frs(){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 Brs(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 Urs({datasetId:e,versionA:t,versionB:n,onVersionChange:r}){const{data:s}=RTe(e),a=(s??[]).map(i=>({value:String(i.version),label:`${Brs(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 qrs=[{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"}],Vrs={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(aut,{}),tooltip:"Changed in this version"},same:{color:"green",borderColor:"border-green-900",icon:o.jsx(Ydn,{}),tooltip:"Same in both versions"}};function kse({red:e=!1,tooltip:t}){return o.jsxs(Ln,{children:[o.jsx(Pn,{asChild:!0,children:o.jsx($un,{className:K("text-neutral3/40 w-5 h-5 ",{"text-red-900":e})})}),t&&o.jsx($n,{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}=Vrs[e];return o.jsxs(Ln,{children:[o.jsx(Pn,{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($n,{children:s})]})}function Hrs(e,t){return e&&t&&e.datasetVersion===t.datasetVersion?"same":e&&t&&e.datasetVersion!==t.datasetVersion?"changed":e?"added":"removed"}function Wrs({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=Hrs(u,d);return o.jsxs(gn.Row,{columns:qrs,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(kse,{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(kse,{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(kse,{tooltip:o.jsxs(o.Fragment,{children:["Comparing is available",o.jsx("br",{})," only for changed items"]})})})]},c)})})})})}const NYe={needsReview:"#facc15",complete:"#22c55e"},Zrs=[{label:"Needs Review",color:NYe.needsReview},{label:"Reviewed",color:NYe.complete}];function Grs({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:Zrs,maxVal:i,fmt:u=>String(u)}):o.jsx(Vt.NoData,{message:"No items have been sent to review yet"})})]})}function tNe(){const e=We();return St({queryKey:["experiment-review-summary"],queryFn:()=>e.getExperimentReviewSummary()})}function fFt(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 Qrs(e,t){const n=new Map,r=fFt(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 Yrs(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 Xrs=10;function Krs(){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}=Lg({page:d,perPage:Xrs}),{data:v,isLoading:y,error:b}=hG(),{data:S}=tNe(),w=g.useMemo(()=>p?.datasets??[],[p?.datasets]),k=p?.pagination?.hasMore??!1,_=g.useMemo(()=>v?.experiments??[],[v?.experiments]),C=g.useMemo(()=>Vts(w),[w]),E=g.useMemo(()=>Qrs(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(Qts,{onCreateClick:I})}),o.jsx(cye,{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(Kts,{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(Gts,{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(cye,{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 Jrs(){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&&ake(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(Ln,{children:[o.jsx(Pn,{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($n,{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(im,{})," Edit Dataset"]}),o.jsxs(dt.Item,{onSelect:()=>m(!0),children:[o.jsx(sm,{})," 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(prs,{datasetId:e,onAddItemClick:()=>c(!0)})})]}),o.jsx(wrs,{datasetId:e,version:s??void 0,requestContextSchema:v?.requestContextSchema,open:a,onOpenChange:i,onSuccess:_}),o.jsx(mrs,{datasetId:e,open:l,onOpenChange:c}),v&&o.jsx(sns,{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(tns,{open:h,onOpenChange:m,sourceDatasetId:v.id,sourceDatasetName:v.name,sourceDatasetDescription:v.description,sourceDatasetTargetType:v.targetType}),v&&o.jsx(ins,{open:f,onOpenChange:p,datasetId:v.id,datasetName:v.name,onSuccess:C})]})}function pFt({experiment:e}){const{Link:t,paths:n}=yn(),{data:r}=_m(),{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(Rrs,{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 ess(){const{datasetId:e,experimentId:t}=ur(),{data:n,isLoading:r,error:s}=QU(e,t),{data:a,isLoading:i,setEndOfListElement:l,isFetchingNextPage:c,hasNextPage:u}=dG({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&&ake(s)||!r&&!s&&!n?o.jsx(lz,{children:o.jsx(Cr,{iconSlot:o.jsx(Ibe,{}),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(pFt,{experiment:n}),o.jsx(zt.MainArea,{children:o.jsx(dFt,{experimentId:t,datasetId:e,experimentStatus:n.status,results:a??[],isLoading:i,setEndOfListElement:l,isFetchingNextPage:c,hasNextPage:u})})]})}function tss(){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(Lrs,{datasetId:e,experimentIdA:s,experimentIdB:a,onSwap:()=>{n({baseline:a,contender:s})}})]})})})}function nss(){const{datasetId:e,itemId:t}=ur(),{Link:n}=yn(),r=bs(),{data:s,isLoading:a,error:i}=GTe(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(Rl,{children:["Item of ",o.jsx(oy,{})," ",u?.name]})}),o.jsxs(fa.Description,{children:[o.jsxs(Rl,{children:[o.jsx(zct,{})," Created at"," ",d?.createdAt?tr(new Date(d.createdAt),"MMM d, yyyy"):""]}),o.jsxs(Rl,{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(aut,{})," 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(Pct,{})," Return to the latest version"]}),children:o.jsxs(In.Message,{children:["Viewing version v",p.datasetVersion]})}),y?o.jsx(lFt,{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(KTe,{item:te,Link:n}):o.jsx("div",{className:"text-neutral4 text-sm",children:"Item data not available"})]}),!y&&o.jsx(Qr,{children:o.jsx(zrs,{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 IYe(e){return JSON.stringify({input:e.input??null,groundTruth:e.groundTruth??null,metadata:e.metadata??null},null,2)}function rss(){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}=YU(e??"",r[0]??""),{data:d}=YU(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(Rl,{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(Wct,{})," Default View"]}):o.jsxs(o.Fragment,{children:[o.jsx(Udn,{})," Diff View"]})})})})]}),o.jsx(ay,{className:"grid-cols-[1fr_3vw_1fr]",children:r.map((f,p)=>o.jsxs(g.Fragment,{children:[o.jsx(sss,{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(dCe,{codeA:IYe(u),codeB:IYe(d)})]})})]})}function sss({datasetId:e,itemId:t,Link:n,idx:r,itemIds:s,onItemChange:a,showContent:i=!0}){const{data:l,isLoading:c}=YU(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(grs,{item:l}),o.jsx(KTe,{item:l,Link:n})]}):o.jsxs("div",{className:"text-neutral4 text-sm",children:["Item ",t.slice(0,8)," not found"]})})]})}function AYe(e){return JSON.stringify({input:e.input??null,groundTruth:e.groundTruth??null,metadata:e.metadata??null},null,2)}function ass(){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}=GTe(e??"",t??""),{data:f}=dye(e??"",t??"",i[0]??0,l?.version),{data:p}=dye(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(Rl,{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(Wct,{})," Default View"]}):o.jsxs(o.Fragment,{children:[o.jsx(Efn,{})," Diff View"]})})})})]}),o.jsx(ay,{className:"grid-cols-[1fr_3vw_1fr]",children:i.map((h,m)=>o.jsxs(g.Fragment,{children:[o.jsx(iss,{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(dCe,{codeA:AYe(f),codeB:AYe(p)})]})})]})}function iss({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}=dye(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(KTe,{item:m,Link:i})})]})}function oss(){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(mhn,{})," Compare Dataset Versions"]}),o.jsx(fa.Description,{children:o.jsxs(Rl,{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(Urs,{datasetId:e,versionA:String(n[0]),versionB:String(n[1]),onVersionChange:m}),o.jsx(Wrs,{datasetId:e,versionA:n[0],versionB:n[1],allItems:d,itemsAMap:f,itemsBMap:p,onItemClick:h})]})})]})})})}function pye({children:e,className:t}){return o.jsx("div",{className:K("flex flex-wrap gap-8",t),children:e})}function lss(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 css({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=lss(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 RYe="auto 1fr auto auto auto auto auto auto auto";function uss(e){return e?(typeof e=="string"?new Date(e):e).toLocaleDateString("en-US",{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"}):"—"}const dss={completed:"success",running:"warning",failed:"error",pending:"neutral"};function fss({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:RYe}):o.jsxs(ve,{columns:RYe,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(gg,{variant:dss[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:uss(p.createdAt)})]},p.id)})]})}const pss=[{value:"all",label:"All statuses"},{value:"completed",label:"Completed"},{value:"running",label:"Running"},{value:"failed",label:"Failed"},{value:"pending",label:"Pending"}];function hss(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"},mss=[{label:"Completed",color:cz.completed},{label:"Running",color:cz.running},{label:"Pending",color:cz.pending},{label:"Failed",color:cz.failed}];function gss({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:mss,maxVal:a,fmt:l=>String(l)}):o.jsx(Vt.NoData,{message:"No experiments have been run yet"})})]})}const vss=()=>o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Cr,{iconSlot:o.jsx(Cf,{}),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 yss({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:[...pss],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 bss(){const{data:e,isLoading:t,error:n}=ah(),{data:r,isLoading:s,error:a}=Lg(),{data:i,isLoading:l,error:c}=hG(),{data:u,isLoading:d,isError:f,error:p}=yQr(),{data:h,isLoading:m,isError:v,error:y}=tNe(),b=r?.datasets,S=i?.experiments,w=g.useMemo(()=>Yrs(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(pye,{children:o.jsx(css,{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(NGr,{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(Xts,{experiments:S,isLoading:l,isError:!!c}),o.jsx(gss,{experiments:S,datasets:b,isLoading:l,isError:!!c})]}),o.jsx(Grs,{reviewSummary:h,experiments:S,datasets:b,isLoading:m,isError:!!v})]})})}function xss(){const[e,t]=g.useState(""),[n,r]=g.useState("all"),[s,a]=g.useState("all"),{data:i,isLoading:l,error:c}=Lg(),{data:u,isLoading:d,error:f}=hG(),{data:p}=tNe(),h=g.useMemo(()=>i?.datasets??[],[i?.datasets]),m=g.useMemo(()=>u?.experiments??[],[u?.experiments]),v=g.useMemo(()=>hss(h),[h]),y=g.useMemo(()=>fFt(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(vss,{})});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(yss,{search:e,onSearchChange:t,statusFilter:n,onStatusFilterChange:r,datasetFilter:s,onDatasetFilterChange:a,datasetOptions:v,onReset:k,hasActiveFilters:w})}),o.jsx(fss,{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 wss(){const{experimentId:e}=ur(),{data:t,isLoading:n}=hG(),s=t?.experiments?.find(h=>h.id===e)?.datasetId??"",{data:a,isLoading:i,error:l}=QU(s,e??""),{data:c,isLoading:u,setEndOfListElement:d,isFetchingNextPage:f,hasNextPage:p}=dG({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&&ake(l)||!n&&!s||!i&&!l&&!a?o.jsx(uz,{children:o.jsx(Cr,{iconSlot:o.jsx(Ibe,{}),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(pFt,{experiment:a}),o.jsx(zt.MainArea,{children:o.jsx(dFt,{experimentId:e,datasetId:s,experimentStatus:a.status,results:c??[],isLoading:u,setEndOfListElement:d,isFetchingNextPage:f,hasNextPage:p})})]})}function Sss({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 hFt({connections:e,isAdmin:t,disconnectPending:n,onDisconnect:r}){return o.jsx("ul",{className:"space-y-1",children:e.map(s=>o.jsx(Sss,{connection:s,isAdmin:t,disconnectPending:n,onDisconnect:()=>r(s.connectionId)},s.connectionId))})}function kss({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(hFt,{connections:a,isAdmin:t,disconnectPending:n,onDisconnect:r})]},s))})}function Oss({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(kss,{groups:r,isAdmin:s,disconnectPending:l,onDisconnect:u}):o.jsx(hFt,{connections:n,isAdmin:s,disconnectPending:l,onDisconnect:u}),c?o.jsx("p",{className:"text-red-600",children:String(c)}):null]})}function _ss({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 PYe=e=>e.authorId?.trim()||"shared",Css=(e,t)=>{if(!t||new Set(e.map(PYe)).size<=1)return null;const r=new Map;for(const a of e){const i=PYe(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},Ess=["*","tool-providers:*","tool-providers:admin"];function jss(){const{data:e}=Om();return e?.permissions?.some(t=>Ess.includes(t))??!1}function Tss(){const[e,t]=g.useState(""),[n,r]=g.useState(""),[s,a]=g.useState(""),i=XN(),l=RH(e||null),c=VEt(e||null,n||null),u=qEt(),d=FEt(),f=jss(),p=i.data?.providers??[],h=l.data?.data??[],m=g.useMemo(()=>c.data?.items??[],[c.data?.items]),v=g.useMemo(()=>Css(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(_ss,{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(Oss,{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 Nss({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(Yh,{className:"h-10 w-10"}),o.jsx("h1",{className:"text-xl font-semibold text-neutral6",children:e})]}),t,n,r]})})}function mFt({redirectUri:e,onSuccess:t,initialMode:n="signin",errorMessage:r}){const{data:s,isLoading:a}=oc(),{mutate:i,isPending:l,error:c}=tir(),{mutate:u,isPending:d,error:f}=rir(),{mutate:p,isPending:h}=pCt(),[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(wf,{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(Nss,{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(_n,{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(_n,{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(_n,{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 Iss(){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(mFt,{redirectUri:n,onSuccess:i,initialMode:s,errorMessage:a})}const ep=Mi.KeyValueList;function Ass(e){return e instanceof Date?e:new Date(e)}function Rss({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=Ass(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(oV,{}):o.jsx(f0e,{})}),o.jsxs(Dr,{spacing:"close",children:[o.jsx(ce,{size:"md",tooltip:"Previous log",onClick:s,disabled:!s,children:o.jsx(iV,{})}),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(q8,{}),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(q8,{}),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 Pss({error:e,resource:t,errorTitle:n}){if(gs(e))return o.jsx(Ws,{});if(ys(e))return o.jsx(Ls,{resource:t});if(o_t(e,"logs"))return o.jsx(Cr,{iconSlot:o.jsx(lV,{}),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 $ss({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 Mss={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 Dss({level:e}){const t=Mss[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 Lss({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(Ad,{className:n,"aria-hidden":!0});case Os.TOOL:return o.jsx(kf,{className:n,"aria-hidden":!0});default:return null}}function zss({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(Lss,{entityType:n}),t?o.jsx("span",{className:"min-w-0 truncate text-ui-smd",children:t}):"-"]})}function Fss({message:e}){return o.jsx(Oo,{height:"compact",className:"min-w-0 truncate font-mono text-ui-smd text-neutral4",children:e})}function Bss({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(jSe,{children:t})}const Vl=Object.assign(C3,{Top:fH,TopCell:M_,TopCellWithTooltip:pH,TopCellSmart:akt,RowWrapper:RSe,RowButton:E3,RowLink:ikt,Spacer:ASe,NoMatch:dH,DateCell:TSe,TimeCell:NSe,LevelCell:Dss,EntityCell:zss,MessageCell:Fss,DataCell:Bss,NextPageLoading:uH}),$Ye="6rem 9rem 5rem 10rem minmax(8rem,1fr) minmax(8rem,1fr)",Uss=36,qss=8;function Vss({logs:e,isLoading:t,isFetchingNextPage:n,hasNextPage:r,setEndOfListElement:s,logIdMap:a,featuredLogId:i,onLogClick:l}){const c=g.useRef(null),u=Yzt({count:e.length,getScrollElement:()=>c.current,estimateSize:()=>Uss,overscan:qss}),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:$Ye});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(Vl,{columns:$Ye,variant:"striped",scrollRef:c,className:"min-w-0",children:[o.jsxs(Vl.Top,{children:[o.jsx(Vl.TopCell,{children:"Date"}),o.jsx(Vl.TopCell,{children:"Time"}),o.jsx(Vl.TopCell,{children:"Level"}),o.jsx(Vl.TopCell,{children:"Entity"}),o.jsx(Vl.TopCell,{children:"Message"}),o.jsx(Vl.TopCell,{children:"Data"})]}),e.length===0?o.jsx(Vl.NoMatch,{message:"No logs match your search"}):o.jsxs(o.Fragment,{children:[o.jsx(Vl.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(Vl.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(Vl.DateCell,{timestamp:y.timestamp}),o.jsx(Vl.TimeCell,{timestamp:y.timestamp}),o.jsx(Vl.LevelCell,{level:y.level}),o.jsx(Vl.EntityCell,{entityType:y.entityType,entityName:y.entityName}),o.jsx(Vl.MessageCell,{message:y.message}),o.jsx(Vl.DataCell,{data:y.data})]},b)}),o.jsx(Vl.Spacer,{height:m})]}),o.jsx(Vl.NextPageLoading,{isLoading:n,hasMore:r,setEndOfListElement:s})]})}function Hss({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=>Wss(f,a));return o.jsxs("div",{className:K("grid grid-cols-[1fr_auto] items-start gap-3"),children:[o.jsx(zTe,{fields:a,tokens:i,onTokensChange:l,disabled:s,autoFocusFieldId:c}),u&&o.jsx(DTe,{disabled:s,onClear:d?e:void 0,onRemoveAll:t,onSave:n,onRemoveSaved:r})]})}function Wss(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 Zss={"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"},Ose="MMM d, yyyy HH:mm",_se="Pick a wider range or lower the logging level — verbose entries (debug, info) may be filtered out.";function Gss({datePreset:e,dateFrom:t,dateTo:n}){return e&&e!=="all"&&e!=="custom"?{title:`No logs for ${Zss[e]}`,description:_se}:t&&n?{title:`No logs between ${tr(t,Ose)} and ${tr(n,Ose)}`,description:_se}:t?{title:`No logs since ${tr(t,Ose)}`,description:_se}:{title:"No logs yet",description:"Logs will appear here once agents, workflows, or tools are executed."}}const Qss=({datePreset:e,dateFrom:t,dateTo:n}={})=>{const{title:r,description:s}=Gss({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(lV,{}),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(p0e,{})]})})})},Yss=20,Xss=1e4;function Kss(e,t,n){if(e?.pagination?.hasMore)return n+1}function Jss(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 eas(e){return o_t(e.state.error,"logs")?!1:Xss}const tas=({filters:e}={})=>{const t=We(),{inView:n,setRef:r}=R_(),s=$1({queryKey:["logs",e],queryFn:({pageParam:p})=>t.listLogsVNext({pagination:{page:p,perPage:Yss},filters:e,orderBy:{field:"timestamp",direction:"DESC"}}),initialPageParam:0,getNextPageParam:Kss,select:Jss,retry:!1,refetchInterval:eas}),{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},gFt=[{label:"Agent",entityType:dz.AGENT},{label:"Workflow",entityType:dz.WORKFLOW},{label:"Scorer",entityType:dz.SCORER},{label:"Ingest",entityType:dz.INGEST}],nas=[{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",ras=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),nNe=new Set(["tags"]),rNe="mastra:logs:saved-filters";function sas(e,t=rNe){const n=cas(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 aas(e=rNe){try{localStorage.removeItem(e)}catch{}}function MYe(e=rNe){try{const t=localStorage.getItem(e);if(!t)return null;const n=new URLSearchParams(t);return n.toString()?n:null}catch{return null}}function ias(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 oas({availableTags:e,availableRootEntityNames:t,availableServiceNames:n,availableEnvironments:r,loading:s}){const a=[{id:"rootEntityType",label:"Primitive Type",kind:"pick-multi",searchable:!1,options:gFt.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:nas.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 las(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),nNe.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 cas(e){const t=new URLSearchParams,n=e.get(Mx);n&&t.set(Mx,n);for(const r of t5){const s=Cl[r];if(nNe.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 uas(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(nNe.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 das({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 fas(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 pas="Filters setting for Logs saved",has="Filters setting for Logs cleared up";function mas(e,t,n){const{storageKey:r,messages:s,skipHydration:a}={},[i,l]=g.useState(()=>MYe(r)!==null),c=g.useCallback(()=>{sas(e,r),l(!0);const f=s?.saved??pas;f!==!1&&De.success(f)},[e,r,s?.saved]),u=g.useCallback(()=>{aas(r),l(!1);const f=s?.cleared??has;f!==!1&&De.success(f)},[r,s?.cleared]),d=g.useRef(!1);return g.useEffect(()=>{if(a||d.current||(d.current=!0,ias(e)))return;const f=MYe(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 gas(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 vas(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,gas(`${r}${n.message??""}${n.data?JSON.stringify(n.data):""}`))}return t}function yas(e,t,n,r){const s=g.useMemo(()=>vas(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 hye="logId",mye="traceId",gye="spanId",DR=1440*60*1e3,bas={"last-24h":DR,"last-3d":3*DR,"last-7d":7*DR,"last-14d":14*DR,"last-30d":30*DR};function fz(e){e.delete(hye),e.delete(mye),e.delete(gye)}function xas(e,t,n){const{onRemoveAll:r}={},s=g.useMemo(()=>{const _=e.get(qb);return _&&ras.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 _=bas[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(hye),f=e.get(mye),p=e.get(gye),h=g.useMemo(()=>gFt.find(_=>_.entityType===e.get(Mx)),[e]),m=g.useMemo(()=>las(e),[e]),v=g.useCallback(_=>{t(C=>{const E=new URLSearchParams(C);for(const[j,T]of Object.entries(_)){const I=j==="logId"?hye:j==="traceId"?mye:gye;T?E.set(I,T):E.delete(I)}return E},{replace:!0})},[t]),y=g.useCallback(_=>{t(C=>{const E=new URLSearchParams(C);return uas(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 was({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(ope,{}),codeStr:JSON.stringify(t.input??null,null,2)}),o.jsx(Mi.CodeSection,{title:"Output",icon:o.jsx(lpe,{}),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 Sas(){const[e,t]=va(),n=xas(e,t),r=mas(e,t),[s,a]=g.useState(),[i,l]=g.useState(!1),{data:c=[],isPending:u}=ZTe(),{data:d=[],isPending:f}=VTe({entityType:n.selectedEntityOption?.entityType,rootOnly:!0}),{data:p=[],isPending:h}=HTe(),{data:m=[],isPending:v}=WTe(),y=g.useMemo(()=>oas({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(()=>das({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}=tas({filters:b}),{logIdMap:j,featuredLog:T,handleLogClick:I,handlePreviousLog:A,handleNextLog:P}=yas(S,n.featuredLogId,n.handleFeaturedChange,n.featuredTraceId),{data:L,isLoading:D}=vH(n.featuredTraceId??null),{data:q,isLoading:H}=ZN(n.featuredTraceId??"",n.featuredSpanId??""),z=g.useCallback(()=>n.applyFilterTokens(fas(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(MTe,{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(FTe,{fields:y,tokens:n.filterTokens,onTokensChange:n.handleFilterTokensChange,disabled:w,onStartTextFilter:a})]})}),o.jsx(Hss,{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(Pss,{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(Qss,{datePreset:n.datePreset,dateFrom:n.selectedDateFrom,dateTo:n.selectedDateTo})})]}):o.jsxs(zt,{width:"wide",height:"full",children:[F,o.jsx($ss,{logCollapsed:i,listSlot:o.jsx(Vss,{logs:S,isLoading:w,isFetchingNextPage:_,hasNextPage:C,setEndOfListElement:E,logIdMap:j,featuredLogId:n.featuredLogId,onLogClick:I}),logPanelSlot:T?o.jsx(Rss,{log:T,onClose:B,onTraceClick:V,onSpanClick:M,onPrevious:A,onNext:P,collapsed:i,onCollapsedChange:l}):null,tracePanelSlot:n.featuredTraceId?o.jsx(Tkt,{traceId:n.featuredTraceId,spans:L?.spans,isLoading:D,onClose:Q,onSpanSelect:$,selectedSpanId:n.featuredSpanId}):null,spanPanelSlot:n.featuredTraceId&&n.featuredSpanId?o.jsx(was,{spanId:n.featuredSpanId,span:q?.span,isLoading:H,onClose:U}):null})]})}function kas({server:e}){const{paths:t,Link:n}=yn(),s=We().options.baseUrl,a=s?`${s}/api/mcp/${e.id}/sse`:"",{data:i}=f6t(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=pm(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 Oas({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(kf,{}),tooltip:"Tools",className:"text-center"}),o.jsx(ve.TopCellSmart,{long:"Workflows",short:o.jsx(Ad,{}),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(kas,{server:s},s.id))]})}const _as=()=>o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Cr,{iconSlot:o.jsx(Cf,{}),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,{})]})})}),Cas=()=>{const{data:e=[],isLoading:t,error:n}=XZ(),[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(_as,{})}):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(Oas,{mcpServers:e,isLoading:t,search:r})]})},Eas=(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 jas({tools:e,agents:t,isLoading:n,search:r=""}){const{paths:s,Link:a}=yn(),i=g.useMemo(()=>Eas(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=pm(c.id,50),d=pm(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 Tas=()=>o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Cr,{iconSlot:o.jsx(Cf,{}),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,{})]})})}),Nas=()=>{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}}})},Ias=({toolId:e})=>{const{canExecute:t}=ol(),n=t("tools"),{data:r={}}=_m(),s=g.useMemo(()=>{for(const v of Object.values(r))if(v.tools){const y=Object.values(v.tools).find(b=>b.id===e);if(y)return y}return null},[r,e]),{data:a,isLoading:i,error:l}=Lsr(e,{enabled:!s}),c=s||a,{mutateAsync:u,isPending:d,data:f}=Nas(),{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?dm(cm(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(STe,{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 Aas({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}=_m(),{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 Ras=({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(bkt,{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(Pas,{server:t})})]})},Pas=({server:e})=>{const{data:t={},isLoading:n}=f6t(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(Mas,{tool:a,serverId:e.id},s)})})]})};function $as(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 Mas=({tool:e,serverId:t})=>{const n=g.useRef(null),{Link:r,paths:s}=yn(),a=z9t[e.toolType||"tool"],i=$as(e._meta);return o.jsxs(Af,{onClick:()=>n.current?.click(),children:[o.jsx(UEt,{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})]})]})},Das=()=>{const{serverId:e}=ur(),{data:t=[],isLoading:n}=XZ(),r=t.find(s=>s.id===e);return o.jsx("div",{className:"h-full w-full overflow-hidden",children:o.jsx(Ras,{isLoading:n,server:r})})};function Las(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 zas=({toolId:e,serverId:t})=>{const{canExecute:n}=ol(),r=n("tools"),s=We(),{data:a,isLoading:i,error:l}=Wje(t,e),{mutateAsync:c,isPending:u,data:d}=HUr(t,e),f=a?Las(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=dm(cm(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(d6t,{html:p,toolName:a.name??a.id,onToolCall:h})}),o.jsx(STe,{executionResult:d,isExecutingTool:u,zodInputSchema:v,handleExecuteTool:m,toolDescription:a.description||"",toolId:a.id})]})},Fas=()=>{const{serverId:e,toolId:t}=ur(),{data:n,isLoading:r}=Wje(e,t);return r||!n?null:o.jsx("div",{className:"h-full w-full overflow-y-auto",children:o.jsx(zas,{toolId:t,serverId:e})})},vFt=[{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"},mG=Object.keys(pN),sNe="mastra:metrics:saved-filters";function Bas(e){const t=Was(e);try{localStorage.setItem(sNe,t.toString())}catch{}}function Uas(){try{localStorage.removeItem(sNe)}catch{}}function yFt(){try{const e=localStorage.getItem(sNe);if(!e)return null;const t=new URLSearchParams(e);return t.toString()?t:null}catch{return null}}function qas(e){if(e.has(fN))return!0;for(const t of mG)if(e.has(pN[t]))return!0;return!1}function Vas({availableTags:e,availableEntityNames:t,availableServiceNames:n,availableEnvironments:r,loading:s}){const a=[{id:"rootEntityType",label:"Primitive Type",kind:"pick-multi",searchable:!1,options:vFt.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 Has(e){const t=[],n=new Map([[fN,"rootEntityType"]]);for(const s of mG)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 Was(e){const t=new URLSearchParams,n=e.getAll(fN);for(const r of n)t.append(fN,r);for(const r of mG){const s=pN[r],a=e.getAll(s);for(const i of a)t.append(s,i)}return t}function Zas(e,t){e.delete(fN);for(const n of mG)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 Gas="Any";function DYe(e){const t=e.trim();return t===""||t===Gas}const Qas=new Set(vFt.map(e=>e.entityType));function LYe(e){const t=e.trim();return Qas.has(t)?t:void 0}function Yas(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=>!DYe(a));if(s.length===0)continue;if(r==="tags")t.tags=s;else if(r==="rootEntityType"){const a=s[0],i=a!==void 0?LYe(a):void 0;i&&(t.rootEntityType=i)}else t[r]=s[0]}else if(typeof n.value=="string"){if(DYe(n.value))continue;const s=n.value.trim();if(r==="rootEntityType"){const a=LYe(s);a&&(t.rootEntityType=a)}else t[r]=s}}return t}const bFt=[{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"}],Xas=new Set(bFt.map(e=>e.value));function Kas(e){return typeof e=="string"&&(Xas.has(e)||e==="custom")}const xFt=g.createContext({datePreset:"24h",setDatePreset:()=>{},customRange:void 0,setCustomRange:()=>{},dateRangeLabel:"Last 24 hours",filterTokens:[],setFilterTokens:()=>{},dimensionalFilter:{},dimensionalFilterKey:"{}",tracesBasePath:void 0,logsBasePath:void 0});function gG(){return g.useContext(xFt)}function Jas(e,t){return e!=="custom"?bFt.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 eis({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(()=>Yas(d),[d]),p=g.useMemo(()=>JSON.stringify(f),[f]),h=Jas(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(xFt.Provider,{value:m,children:e})}const tis=["last-24h","last-3d","last-7d","last-14d","last-30d","custom"];function nis(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 ris(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 sis(){const{datePreset:e,setDatePreset:t,customRange:n,setCustomRange:r}=gG(),s=g.useRef(e);s.current=e;const a=g.useRef(n);return a.current=n,o.jsx(MTe,{preset:nis(e),onPresetChange:i=>{const l=ris(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:tis})}const vye=1440*60*1e3,ais={"24h":vye,"3d":4320*60*1e3,"7d":10080*60*1e3,"14d":336*60*60*1e3,"30d":720*60*60*1e3};function iis(e,t,n){if(e!=="custom"){const r=ais[e]??vye;return{start:new Date(n-r),end:new Date(n)}}return{start:t?.from??new Date(n-vye),end:t?.to??new Date(n)}}function Nm(){const{datePreset:e,customRange:t,dimensionalFilter:n,dimensionalFilterKey:r}=gG(),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(()=>iis(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 wFt(){const e=We(),{filters:t,filterKey:n}=Nm();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(K_n,{})})}function ois({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(PCn,{})})}const lis=[{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 cis(e){return e==="agents"||e==="workflows"||e==="tools"}function Cse({data:e,onPointClick:t}){return e.length===0?o.jsx(Vt.NoData,{message:"No latency data yet"}):o.jsx(ZU,{data:e,series:lis,onPointClick:t?n=>{const r=n;typeof r?.tsMs=="number"&&Number.isFinite(r.tsMs)&&t(r)}:void 0})}function uis({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=>{cis(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(Cse,{data:e.agentData,onPointClick:r?b=>r("agents",b):void 0})}),o.jsx(Xr,{value:"workflows",children:o.jsx(Cse,{data:e.workflowData,onPointClick:r?b=>r("workflows",b):void 0})}),o.jsx(Xr,{value:"tools",children:o.jsx(Cse,{data:e.toolData,onPointClick:r?b=>r("tools",b):void 0})})]}):o.jsx(Vt.NoData,{message:"No latency data yet"})})]})}function dis(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 fis(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 SFt(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=dis(s);l&&e.set(t,l)}function No(e,t,n){typeof n=="string"&&n.length>0&&e.set(t,n)}function kFt(e,t,n){if(!(!Array.isArray(n)||n.length===0))for(const r of n)r&&e.append(t,r)}function zYe({preset:e,customRange:t,dashboardFilter:n,scope:r,tracesBasePath:s="/observability"}){const a=new URLSearchParams;a.set(ww,"branches"),SFt(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),kFt(a,_l.tags,n.tags);const l=a.toString();return l?`${s}?${l}`:s}function pis({preset:e,customRange:t,dashboardFilter:n,scope:r,logsBasePath:s="/logs"}){const a=new URLSearchParams;SFt(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),kFt(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}=gG(),a=g.useCallback((c={})=>zYe({preset:e,customRange:t,dashboardFilter:n,scope:c,tracesBasePath:r}),[e,t,n,r]),i=g.useCallback((c={})=>pis({preset:e,customRange:t,dashboardFilter:n,scope:c,logsBasePath:s}),[e,t,n,s]),l=g.useCallback((c,u,d)=>{const f=fis(u,d);return zYe({preset:e,customRange:t,dashboardFilter:n,scope:{...c,window:f},tracesBasePath:r})},[e,t,n,r]);return{getTracesHref:a,getLogsHref:i,getBucketTracesHref:l}}const OFt="1h";async function Ese(e,t,n){const r=await e.getMetricPercentiles({name:t,percentiles:[.5,.95],interval:OFt,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 his(){const e=We(),{filters:t,filterKey:n}=Nm();return St({queryKey:["metrics","latency",n],queryFn:async()=>{const[r,s,a]=await Promise.all([Ese(e,"mastra_agent_duration_ms",t),Ese(e,"mastra_workflow_duration_ms",t),Ese(e,"mastra_tool_duration_ms",t)]);return{agentData:r,workflowData:s,toolData:a,interval:OFt}}})}const FYe={agents:Os.AGENT,workflows:Os.WORKFLOW_RUN,tools:Os.TOOL};function mis(){const{data:e,isLoading:t,isError:n}=his(),{getTracesHref:r,getBucketTracesHref:s}=EI(),{Link:a}=yn(),i=bs();return o.jsx(uis,{data:e,isLoading:t,isError:n,onPointClick:(l,c)=>{Number.isFinite(c.tsMs)&&i(s({rootEntityType:FYe[l]},c.tsMs,"1h"))},actions:l=>o.jsx(n5,{href:r({rootEntityType:FYe[l]}),LinkComponent:a})})}function gis(e){return e==="threads"||e==="resources"}function jse(e){return e.length<=12?e:`${e.slice(0,6)}…${e.slice(-4)}`}function vis({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=>{gis(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",...fye,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:jse(y.threadId)}),o.jsx(ve.NumberCell,{children:y.resourceId?jse(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?kg(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",...fye,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:jse(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?kg(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 Tse=20;function yis(){const e=We(),{filters:t,filterKey:n}=Nm();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:Tse}),e.getMetricBreakdown({...r,name:["mastra_model_total_input_tokens"],aggregation:"sum",limit:Tse}),e.getMetricBreakdown({...r,name:["mastra_model_total_output_tokens"],aggregation:"sum",limit:Tse})]),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 Nse=20;function bis(){const e=We(),{filters:t,filterKey:n}=Nm();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:Nse}),e.getMetricBreakdown({...r,name:["mastra_model_total_input_tokens"],aggregation:"sum",limit:Nse}),e.getMetricBreakdown({...r,name:["mastra_model_total_output_tokens"],aggregation:"sum",limit:Nse})]),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 xis(){const e=yis(),t=bis(),{getTracesHref:n}=EI(),{Link:r}=yn();return o.jsx(vis,{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 wis(){const e=We(),{filters:t,filterKey:n}=Nm();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 Sis(){const e=We(),{filters:t,filterKey:n}=Nm();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 kis(){const e=We(),{filters:t,filterKey:n}=Nm();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 Ois(){const e=We(),{filters:t,filterKey:n}=Nm();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 _is(){const{data:e,isLoading:t,isError:n}=wFt();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 Cis(){const{data:e,isLoading:t,isError:n}=kis();return o.jsx(s5,{label:"Total Model Cost",value:e?.cost!=null?kg(e.cost,e.costUnit):null,prevValue:e?.previousCost!=null?kg(e.previousCost,e.costUnit):void 0,changePct:e?.costChangePercent??null,isLoading:t,isError:n})}function Eis(){const{data:e,isLoading:t,isError:n}=Ois();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 jis(){const{data:e,isLoading:t,isError:n}=Sis();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 Tis(){const{data:e,isLoading:t,isError:n}=wis();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 Nis({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=>Iis(f,a));return o.jsxs("div",{className:K("grid grid-cols-[1fr_auto] gap-3 items-start"),children:[o.jsx(zTe,{fields:a,tokens:i,onTokensChange:l,disabled:s,autoFocusFieldId:c}),u&&o.jsx(DTe,{disabled:s,onClear:d?e:void 0,onRemoveAll:t,onSave:n,onRemoveSaved:r})]})}function Iis(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 Ais({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?kg(l):"—":c.size===1?u=l>0?kg(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",...fye,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?kg(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 Ris(){const e=We(),{filters:t,filterKey:n}=Nm();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 Pis(){const{data:e,isLoading:t,isError:n}=Ris(),{getTracesHref:r}=EI(),{Link:s}=yn();return o.jsx(Ais,{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 $is(e){return e==="tokens"||e==="cost"}function Mis({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:kg(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=>{$is(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=>kg(b,m)}):o.jsx(Vt.NoData,{message:"No cost data yet"})})]}):o.jsx(Vt.NoData,{message:"No token usage data yet"})})]})}function Dis(){const e=We(),{filters:t,filterKey:n}=Nm();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 Lis(){const{data:e,isLoading:t,isError:n}=Dis(),{getTracesHref:r}=EI(),{Link:s}=yn();return o.jsx(Mis,{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 yye(e,t=wc){return n=>({value:t(n.reduce((r,s)=>r+(typeof s[e]=="number"?s[e]:0),0))})}const zis=[{dataKey:"input",label:"Input tokens",color:Mp.blue,aggregate:yye("input")},{dataKey:"output",label:"Output tokens",color:Mp.yellow,aggregate:yye("output")}];function Fis(e){return e==="tokens"||e==="cost"}function Bis({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:yye("cost",k=>kg(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:kg(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=>{Fis(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(ZU,{data:c,series:zis})}),o.jsx(Xr,{value:"cost",children:b?o.jsx(ZU,{data:p,series:w}):o.jsx(Vt.NoData,{message:"No cost data yet"})})]}):o.jsx(Vt.NoData,{message:"No token usage data yet"})})]})}function Uis(e){return e==="24h"?"1h":"1d"}function qis(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 BYe(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 Vis(e){return e.cost==null||e.hasUnknownCostUnit||e.costUnits.size!==1?null:[...e.costUnits][0]??null}function His(){const e=We(),{datePreset:t,filters:n,filterKey:r}=Nm(),s=Uis(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 BYe(l,a.series[0],"input"),BYe(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:qis(d,s),tsMs:u.tsMs,input:u.input,output:u.output,total:u.input+u.output,cost:u.cost,costUnit:Vis(u)}}),interval:s}}})}function Wis(){const{data:e,isLoading:t,isError:n}=His(),{getTracesHref:r}=EI(),{Link:s}=yn();return o.jsx(Bis,{data:e?.data,interval:e?.interval,isLoading:t,isError:n,actions:o.jsx(n5,{href:r(),LinkComponent:s})})}function Ise({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 Zis({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(Ise,{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(Ise,{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(Ise,{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 Ase(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 Gis(){const e=We(),{filters:t,filterKey:n}=Nm();return St({queryKey:["metrics","trace-volume",n],queryFn:async()=>{const[r,s,a]=await Promise.all([Ase(e,"mastra_agent_duration_ms",t),Ase(e,"mastra_workflow_duration_ms",t),Ase(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 Qis(){const{data:e,isLoading:t,isError:n}=Gis(),{getTracesHref:r,getLogsHref:s}=EI(),{Link:a}=yn();return o.jsx(Zis,{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(ois,{href:s({rootEntityType:pz[i],status:"error"}),LinkComponent:a})]})})}const Yis=new Set(["ObservabilityStorageClickhouseVNext","ObservabilityStorageDuckDB","ObservabilityInMemory","ObservabilitySpanner","ObservabilityStoragePostgresVNext"]),Rse="period",hz="dateFrom",mz="dateTo";function Xis(){const[e,t]=va(),n=e.get(Rse),r=Kas(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(()=>Has(e),[e.toString()]),i=g.useCallback(d=>{t(f=>{const p=new URLSearchParams(f);return d==="24h"?p.delete(Rse):p.set(Rse,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 Zas(p,d),p},{replace:!0})},[t]),u=g.useRef(!1);return g.useEffect(()=>{if(u.current||(u.current=!0,qas(e)))return;const d=yFt();d&&t(f=>{const p=new URLSearchParams(f);for(const[h,m]of d)p.append(h,m);return p},{replace:!0})},[]),o.jsx(eis,{preset:r,filterTokens:a,onPresetChange:i,onFilterTokensChange:c,customRange:s,onCustomRangeChange:l,children:o.jsx(Kis,{})})}function Kis(){const[e]=va(),{error:t,isLoading:n}=wFt(),{filterTokens:r,setFilterTokens:s}=gG(),[a,i]=g.useState(),{data:l,isLoading:c}=U3(),u=l?.observabilityStorageType,d=u?Yis.has(u):!1,f=u==="ObservabilityInMemory",{data:p,isLoading:h}=ZTe(),{data:m,isLoading:v}=VTe(),{data:y,isLoading:b}=WTe(),{data:S,isLoading:w}=HTe(),k=g.useMemo(()=>Vas({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(()=>yFt()!==null),E=g.useCallback(()=>{Bas(e),C(!0),De.success("Filters setting for Metrics saved")},[e]),j=g.useCallback(()=>{Uas(),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(sis,{}),o.jsx(FTe,{fields:k,tokens:r,onTokensChange:s,disabled:n,onStartTextFilter:i})]})}),o.jsx(Nis,{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(pye,{children:[o.jsx(_is,{}),o.jsx(Cis,{}),o.jsx(Eis,{}),o.jsx(jis,{}),o.jsx(Tis,{})]}),o.jsxs(pye,{children:[o.jsx(Pis,{}),o.jsx(Lis,{}),o.jsx(Wis,{}),o.jsx(xis,{}),o.jsx(Qis,{}),o.jsx(mis,{})]})]}):o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Cr,{iconSlot:o.jsx(Cf,{}),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 Jis(){const{paths:e}=yn(),{data:t,isLoading:n,error:r}=B9t(),{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(SYr,{})}):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(wYr,{promptBlocks:l,isLoading:n,search:a})]})}function eos(){return o.jsx(zt,{width:"narrow",children:o.jsx(zt.MainArea,{children:o.jsx(wqr,{children:o.jsx(zve,{})})})})}const tos=[{title:"Mastra APIs",description:"Explore and test the available REST API endpoints with the interactive Swagger UI.",icon:Zdn,href:"/swagger-ui",external:!1},{title:"Documentation",description:"Read the official Mastra documentation for guides, references, and tutorials.",icon:Dct,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:Hct,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:Lct,href:"https://mastra.ai/contact?ref=studio",external:!0}];function nos(){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:tos.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 ros(){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(DGr,{search:r,onSearchChange:s,sourceFilter:a,onSourceFilterChange:i,onReset:c,hasActiveFilters:l})}),o.jsx(PGr,{scorers:e,isLoading:t,search:r,sourceFilter:a})]})}function sos(){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}=dGr(e),{data:d={},isLoading:f,error:p}=_m(),{isLoading:h,error:m}=Fy(),{data:v=[],isLoading:y,error:b,isFetchingNextPage:S,hasNextPage:w,setEndOfListElement:k}=uGr({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(im,{})," 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(aGr,{})})]})}return o.jsxs(zt,{width:"wide",children:[z,o.jsx(zt.TopArea,{children:o.jsx(iGr,{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(sGr,{scores:v,isLoading:y,selectedScoreId:s,isFetchingNextPage:S,hasNextPage:w,setEndOfListElement:k,onScoreClick:A,errorMsg:b?.message})]})}function aos({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 _Ft=[{value:"dark",label:"Dark",Icon:Opn},{value:"light",label:"Light",Icon:Dhn},{value:"system",label:"System",Icon:tut}],ios=e=>_Ft.some(t=>t.value===e);function oos({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 los=()=>{const{baseUrl:e,headers:t,apiPrefix:n}=uV(),{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(Oge,{title:"Theme",description:"Customize the appearance of the studio.",children:o.jsx(aos,{label:"Theme mode",htmlFor:"theme",children:o.jsxs(pa,{value:r,onValueChange:a=>{ios(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:_Ft.map(a=>o.jsx(zr,{value:a.value,children:o.jsx(oos,{option:a})},a.value))})]})})}),o.jsx(Oge,{title:"Mastra Connection",description:"Configure the Mastra instance URL, API prefix, and request headers used by the studio.",children:o.jsx(nTt,{initialConfig:{baseUrl:e,headers:t,apiPrefix:n}})})]})})};function cos(){const[e]=va(),t=bs(),n=e.get("redirect")||"/",r=()=>{n.startsWith("http")?window.location.href=n:t(n,{replace:!0})};return o.jsx(mFt,{redirectUri:n,onSuccess:r,initialMode:"signup"})}const CFt=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 uos(e){return e.replace(/\/$/,"").split("/").pop()}function vG({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 dos({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(kf,{})," ",a.tools.length]}),a?.networks&&a.networks.length>0&&o.jsxs("li",{children:[o.jsx(nut,{})," ",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(CFt,{})," ",uos(a.githubUrl)]})})]},a.slug)})})}function fos({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 pos(){const{data:e,isLoading:t}=jKn(),{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(T0e,{children:o.jsxs(Qht,{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(fos,{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(dos,{templates:y,linkComponent:Da,className:"max-w-[80rem] mx-auto",isLoading:t})]})]})}const hos="1.52.0-alpha.2";function mos({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(Sfn,{}),title:"Template Installation Failed"},{icon:l,title:c}=i();return o.jsxs(vG,{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 gos({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(vG,{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(rut,{})]}),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(y9t,{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(ym,{})]})})]})})}function vos({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(Pbe,{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(CFt,{}),n?.split("/")?.pop()]})]}),s&&o.jsx(yTe,{data:s,labelsAreHidden:!0,isLoading:r})]})]})}function yos(e){switch(e){case"running":return o.jsx(Qt,{});case"success":return o.jsx(gx,{});case"failed":return o.jsx(qu,{});default:return null}}function bos({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:yos(t.status)})]})}function xos({currentStep:e,steps:t=[],className:n}){return o.jsx("div",{className:K(n),children:t.map((r,s)=>o.jsx(bos,{stepId:r.id,step:r,isActive:e?.id===r.id,position:s+1},r.id))})}function wos({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 Sos({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(vG,{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(wos,{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(Ppn,{}),l||"Something went wrong"]}),u&&o.jsx(xos,{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 kos({name:e,installedEntities:t}){return o.jsxs(vG,{className:K("grid items-center justify-items-center gap-4 content-center","[&>svg]:w-8 [&>svg]:h-8"),children:[o.jsx(rut,{}),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(yTe,{data:t})]})}function Oos(){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}=TKn({repoOrSlug:e,owner:"mastra-ai"}),P=hos?.includes("beta")??!1?"beta":"main",{data:L,isLoading:D}=NKn({repo:T?.githubUrl?new URL(T.githubUrl).pathname.split("/")[2]:`template-${e}`,owner:"mastra-ai",branch:P}),{data:q,isLoading:H}=IKn(),{mutateAsync:z,isPending:B}=AKn(),{mutateAsync:V}=RKn(),{streamInstall:M,streamResult:Q,isStreaming:U}=$Kn(q),{observeInstall:$,streamResult:F,isStreaming:Z}=MKn(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(kf,{})},{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(vos,{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(Sos,{name:T.title,streamResult:Z?F:Q,runId:b,workflowInfo:q}),v&&o.jsx(kos,{name:T.title,installedEntities:ee,linkComponent:Da}),h&&o.jsx(mos,{errorMsg:h,validationErrors:E.length>0?E:Q?.validationResults?.errors||F?.validationResults?.errors}),!U&&!Z&&!v&&!h&&o.jsx(gos,{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 _os=()=>{const{toolId:e,agentId:t}=ur();return o.jsx("div",{className:"h-full w-full overflow-y-auto",children:o.jsx(zQr,{toolId:e,agentId:t})})},Cos=()=>{const{toolId:e}=ur();return o.jsx("div",{className:"h-full w-full overflow-y-hidden",children:o.jsx(Ias,{toolId:e})})};function Eos(){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}=vH(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}=M9t({traceId:e,spanId:c??void 0,page:m}),[L,D]=g.useState(0);g.useEffect(()=>D(0),[e,c]);const{data:q,isLoading:H}=sFt({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}=yH(_,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(pdn,{}),"Evaluate"]}),o.jsxs(ce,{tooltip:"Save as Dataset Item","aria-label":"Save as Dataset Item",onClick:()=>b(!0),children:[o.jsx(wd,{}),"Save"]})]})}):null,J=C?o.jsx(zt.Row,{children:o.jsx(zt.Column,{children:o.jsx(Zzt,{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(Gzt,{error:k,resource:"traces",errorTitle:"Failed to load trace"})})]}):o.jsxs(zt,{height:"full",className:"grid-rows-[auto_minmax(0,1fr)] content-normal",children:[ee,J&&o.jsx(zt.TopArea,{children:J}),o.jsx(Jzt,{rootSpanId:C?.spanId,traceId:e,isOpen:y,onClose:()=>b(!1)}),o.jsxs("div",{className:K("mt-4 grid min-h-0 items-stretch gap-4 overflow-hidden",c?"grid-cols-[2fr_3fr]":"grid-cols-[1fr]"),children:[o.jsx(BTe,{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 h-full max-h-full min-h-0 gap-4 overflow-auto",d?"grid-rows-[1fr_1fr]":"grid-rows-[1fr]"),children:[o.jsx(gH,{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(tFt,{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(rFt,{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(nFt,{scoresData:A,onPageChange:v,isLoadingScoresData:P,onScoreSelect:F})]})}),d&&o.jsx(vTe,{score:d,onClose:Z})]})]})]})}function jos(){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(G4r,{})}):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(Z4r,{workflows:e||{},isLoading:t,search:r})]})}const Tos={active:"bg-accent1",paused:"bg-accent3"},Nos={active:"text-accent1",paused:"text-accent3"},EFt=({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 ${Tos[e]}`,"aria-hidden":!0}),o.jsx("span",{className:`text-ui-sm ${Nos[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 jFt({status:e}){const{icon:t,color:n}=Ios(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 Ios(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(xq,{size:14}),color:"text-accent3"};case"canceled":return{icon:o.jsx(Cf,{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 UYe="auto auto auto auto 1fr";function Aos(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 Ros(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 Pos=3e4,$os=5*6e4;function Mos({triggers:e,isLoading:t,workflowId:n,hasNextPage:r,isFetchingNextPage:s,setEndOfListElement:a}){const{Link:i,paths:l}=yn();return t?o.jsx(rl,{columns:UYe}):e.length===0?o.jsx(ye,{variant:"ui-md",className:"text-neutral4 p-4",children:"No trigger history yet."}):o.jsxs(ve,{columns:UYe,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=Ros(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>Pos&&m<=$os,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(jFt,{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(Ln,{children:[o.jsx(Pn,{asChild:!0,children:o.jsx("span",{className:"text-accent2 inline-flex",children:o.jsx(Tp,{size:14})})}),o.jsx($n,{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(Ln,{children:[o.jsx(Pn,{asChild:!0,children:o.jsx("span",{className:"text-accent3 inline-flex",children:o.jsx(Tp,{size:14})})}),o.jsxs($n,{children:["Published ",d," after the scheduled fire time"]})]}):null]})}),o.jsx(ve.Cell,{height:"compact",children:c.run?o.jsx("span",{children:Aos(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 Dos=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)}})},qYe=25,Los=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:qYe,toActualFireAt:u}):{triggers:[]},getNextPageParam:u=>{if(!(!u?.triggers?.length||u.triggers.length<qYe))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}},zos=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 Fos(){const{scheduleId:e}=ur(),{paths:t}=yn(),{data:n,error:r}=Dos(e),{data:s,isLoading:a,error:i,hasNextPage:l,isFetchingNextPage:c,setEndOfListElement:u}=Los(e),d=zos(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(sut,{}),"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(EFt,{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(Mos,{triggers:s??[],isLoading:a,workflowId:f,hasNextPage:l,isFetchingNextPage:c,setEndOfListElement:u})]})]}):null]})}const VYe="minmax(0, 1.2fr) minmax(0, 1.4fr) minmax(0, 1fr) auto auto auto";function Bos({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:VYe}):o.jsxs(ve,{columns:VYe,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(EFt,{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(jFt,{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 Uos({workflowId:e}={}){const{data:t,isLoading:n,error:r}=E0e(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(Bos,{schedules:t??[],isLoading:n,search:s})})]})}function qos(){const[e]=va(),t=e.get("workflowId")??void 0,{error:n}=E0e(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(Uos,{workflowId:t})})})}function Vos({stepGraph:e,open:t,workflowName:n}){const{nodes:r,edges:s}=aSe({stepGraph:e}),[a,i]=g.useState(!1),[l,c,u]=E1t(r),[d]=j1t(s),{edgeTypes:f,nodeTypes:p,styledEdges:h}=c$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(C1t,{nodes:l,edges:h,edgeTypes:f,fitView:!0,fitViewOptions:{maxZoom:1},minZoom:.01,maxZoom:1,nodeTypes:p,onNodesChange:u,children:[o.jsx(kCe,{position:"bottom-left"}),o.jsx(N1t,{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 Hos(){const{stepDetail:e,closeStepDetail:t}=iH();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(Ofe,{className:"w-4 h-4",style:{color:ju.map}}),e.type==="nested-graph"&&o.jsx(Ad,{className:"w-4 h-4",style:{color:ju.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(sSe,{children:o.jsx(Vos,{stepGraph:e.nestedGraph.stepGraph,open:!0,workflowName:e.nestedGraph.fullStep})},`nested-graph-${e.nestedGraph.fullStep}`)})]})]}):null}function Wos(e){const t=new Blob([JSON.stringify(e??null)]).size;return t<1024?`${t} B`:`${(t/1024).toFixed(1)} KB`}function Zos(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 Gos({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(xq,{})}),"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?dm(cm(vx(i.resumeSchema))):cp(dr(),uT());return o.jsx(Qos,{step:s,stepSchema:l,description:i.description,isStreaming:n,onResume:r},`${s.runId}-${s.stepId}-${a}`)})]})}function Qos({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(Cpn,{})}),"The step is asking"]}),o.jsxs(Sf,{open:a,onOpenChange:i,children:[o.jsxs(jd,{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:Zos(e.suspendPayload,e.stepId)})]}),o.jsx(ye,{as:"span",variant:"ui-sm",className:"text-neutral3 shrink-0",children:Wos(e.suspendPayload)})]}),o.jsx(Td,{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(Tpn,{})}),"Your response"]}),o.jsx("div",{className:"-mx-5",children:o.jsx(Q7,{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 Yos(){const{result:e,runSnapshot:t,workflow:n,runId:r,isStreamingWorkflow:s}=g.useContext(Dl),{runId:a}=ur(),i=D1t(e,r??""),l=WQn(),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(Gos,{suspendedSteps:i,workflow:n,isStreaming:s,onResume:l})},r)}const Xos=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"})]}),Kos=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"})]}),Jos=e=>e.includes("."),els=e=>e==="input"||e.endsWith(".input"),tls=1;function nls(e){return`${Number((e/1e3).toPrecision(3))}s`}function rls(e,t){const n=Object.entries(e).filter(([i])=>!els(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,tls);return{stepId:i,step:l,status:l.status,offsetPct:f,widthPct:p,durationMs:d,isRunning:c,isNestedEntry:Jos(i)}})}const sls=({status:e})=>o.jsxs(Ue,{children:[e==="success"&&o.jsx(Xos,{className:"text-accent1"}),e==="failed"&&o.jsx(Kos,{className:"text-accent2"}),e==="suspended"&&o.jsx(xq,{className:"text-accent3"}),e==="waiting"&&o.jsx(kfe,{className:"text-accent5"}),e==="skipped"&&o.jsx(kfe,{className:"text-icon3"}),e==="running"&&o.jsx(ta,{className:"text-accent6 animate-spin"})]}),als={success:"bg-accent1",failed:"bg-accent2",suspended:"bg-accent3",waiting:"bg-accent5",skipped:"bg-border1",running:"bg-accent6"};function TFt(e){return e.split(/[-_.\s]+/).filter(Boolean).map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(" ")}const HYe=e=>e&&typeof e=="object"&&!Array.isArray(e)?e:{value:e},ils=e=>{const t=e;return e$t({duration:t.duration,date:t.date,isForEach:t.isForEach,mapConfig:t.mapConfig,canSuspend:t.canSuspend,isParallel:t.isParallel,stepGraph:t.stepGraph})},ols=({row:e,index:t,isSelected:n,isHovered:r,onSelectStep:s,onHoverStep:a,onOpenInput:i,onOpenOutput:l})=>{const c=ils(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(sls,{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(Ihn,{})})}),o.jsx("div",{className:"flex overflow-hidden",children:o.jsx(kU,{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:TFt(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 ${als[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(Thn,{})})}),o.jsx(ye,{as:"span",variant:"ui-sm",className:"w-20 justify-self-end text-right text-neutral3 tabular-nums",children:nls(e.durationMs)})]},`timeline-item-${e.stepId}-${t}`)};function lls(){const{steps:e}=h4(),{selectedStepId:t,hoverStepId:n,setSelectedStepId:r,setHoverStepId:s}=vV(),[a,i]=g.useState(()=>Date.now()),[l,c]=g.useState(!1),[u,d]=g.useState(null),f=g.useRef(null);$0e(f,{enabled:!l});const p=rls(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(ols,{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:HYe(y.step.input)}),onOpenOutput:y=>d({type:"output",stepId:y.stepId,data:HYe(y.step.output)})},`timeline-item-${m.stepId}-${v}`))})]})}),o.jsx(br,{open:!!u,onOpenChange:m=>!m&&d(null),children:u&&o.jsx(z1t,{data:u.data,title:`${TFt(u.stepId)} ${u.type==="input"?"input":"output"}`})})]})}const cls=({workflowId:e,workflow:t,isLoading:n})=>{const{stepDetail:r}=iH();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(v$t,{workflowId:e,workflow:t,isLoading:n}),o.jsx(Yos,{}),o.jsx(lls,{})]})}),r&&o.jsx("div",{className:"w-[420px] min-h-0 overflow-hidden border-l border-border1",children:o.jsx(Hos,{})})]})},WYe=()=>{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(SSe,{children:o.jsx(cls,{workflowId:e,workflow:t??void 0,isLoading:n})})};function uls(e,t){if(e==null)return{};var n,r,s=qxt(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 bye(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 dls(e){if(Array.isArray(e))return bye(e)}function fls(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function pls(e,t){if(e){if(typeof e=="string")return bye(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)?bye(e,t):void 0}}function hls(){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 xye(e){return dls(e)||fls(e)||pls(e)||hls()}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 mls(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 gls(e){var t=mls(e,"string");return aD(t)=="symbol"?t:t+""}function NFt(e,t,n){return(t=gls(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ZYe(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?ZYe(Object(n),!0).forEach(function(r){NFt(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ZYe(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function vls(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 Pse={};function yls(e){if(e.length===0||e.length===1)return e;var t=e.join(".");return Pse[t]||(Pse[t]=vls(e)),Pse[t]}function bls(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=yls(r);return s.reduce(function(a,i){return oj(oj({},a),n[i])},t)}function GYe(e){return e.join(" ")}function xls(e,t){var n=0;return function(r){return n+=1,r.map(function(s,a){return IFt({node:s,stylesheet:e,useInlineStyles:t,key:"code-segment-".concat(n,"-").concat(a)})})}}function IFt(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=xls(n,a),p;if(!a)p=oj(oj({},l),{},{className:GYe(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:GYe(v)||void 0,style:bls(l.className,Object.assign({},l.style,s),n)})}var y=f(t.children);return Le.createElement(u,AO({key:i},p),y)}}const wls=(function(e,t){var n=e.listLanguages();return n.indexOf(t)!==-1});var Sls=["language","children","style","customStyle","codeTagProps","useInlineStyles","showLineNumbers","showInlineLineNumbers","startingLineNumber","lineNumberContainerStyle","lineNumberStyle","wrapLines","wrapLongLines","lineProps","renderer","PreTag","CodeTag","code","astGenerator"];function QYe(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?QYe(Object(n),!0).forEach(function(r){NFt(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):QYe(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}var kls=/\n/g;function Ols(e){return e.match(kls)}function _ls(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 Cls(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)},_ls({lines:t.replace(/\n$/,"").split(`
|
|
728
728
|
`),style:i,startingLineNumber:l}))}function Els(e){return"".concat(e.toString().length,".25em")}function AFt(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 RFt(e,t,n){var r={display:"inline-block",minWidth:Els(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(xye(m.className.trim().split(/\s+/)),xye(u)):u,n&&a){var v=RFt(r,n,s);t.unshift(AFt(n,v))}return f&d&&(m.style=_w({display:"flex"},m.style)),{type:"element",tagName:"span",properties:m,children:t}}function PFt(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:xye(new Set(t))}));else if(s.children){var a=t.concat(s.properties.className);PFt(s.children,a).forEach(function(i){return n.push(i)})}}return n}function jls(e,t,n,r,s,a,i,l,c){var u,d=PFt(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=RFt(l,C,i);_.unshift(AFt(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=Ols(E);if(j){var T=E.split(`
|