@mastra/deployer-cloud 1.56.0-alpha.4 → 1.56.0-alpha.5
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-BTgqVtGn.js → core-Bgol4Bk3.js} +1 -1
- package/dist/studio/assets/{index-BmTyd9Wa.js → index-DyhGAWFT.js} +2 -2
- package/dist/studio/assets/{main-97-NJ4f3.js → main-PgQBhAWC.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-Bgol4Bk3.js","./engine-compile-BkERmzkH.js","./preload-helper-PPVm8Dsz.js","./engine-javascript-CSIo_1eZ.js"])))=>i.map(i=>d[i]);
|
|
2
2
|
import{_ as mo}from"./preload-helper-PPVm8Dsz.js";function gqt(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 uT=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Fl(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var wK={exports:{}},VA={};var j2e;function vqt(){if(j2e)return VA;j2e=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 VA.Fragment=t,VA.jsx=n,VA.jsxs=n,VA}var T2e;function yqt(){return T2e||(T2e=1,wK.exports=vqt()),wK.exports}var o=yqt(),SK={exports:{}},qr={},N2e;function bqt(){if(N2e)return qr;N2e=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(q){return q===null||typeof q!="object"?null:(q=h&&q[h]||q["@@iterator"],typeof q=="function"?q:null)}var g={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},y=Object.assign,b={};function x(q,$,U){this.props=q,this.context=$,this.refs=b,this.updater=U||g}x.prototype.isReactComponent={},x.prototype.setState=function(q,$){if(typeof q!="object"&&typeof q!="function"&&q!=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,q,$,"setState")},x.prototype.forceUpdate=function(q){this.updater.enqueueForceUpdate(this,q,"forceUpdate")};function w(){}w.prototype=x.prototype;function k(q,$,U){this.props=q,this.context=$,this.refs=b,this.updater=U||g}var _=k.prototype=new w;_.constructor=k,y(_,x.prototype),_.isPureReactComponent=!0;var C=Array.isArray;function j(){}var E={H:null,A:null,T:null,S:null},N=Object.prototype.hasOwnProperty;function I(q,$,U){var Z=U.ref;return{$$typeof:t,type:q,key:$,ref:Z!==void 0?Z:null,props:U}}function A(q,$){return I(q.type,$,q.props)}function R(q){return typeof q=="object"&&q!==null&&q.$$typeof===t}function L(q){var $={"=":"=0",":":"=2"};return"$"+q.replace(/[=:]/g,function(U){return $[U]})}var D=/\/+/g;function B(q,$){return typeof q=="object"&&q!==null&&q.key!=null?L(""+q.key):$.toString(36)}function H(q){switch(q.status){case"fulfilled":return q.value;case"rejected":throw q.reason;default:switch(typeof q.status=="string"?q.then(j,j):(q.status="pending",q.then(function($){q.status==="pending"&&(q.status="fulfilled",q.value=$)},function($){q.status==="pending"&&(q.status="rejected",q.reason=$)})),q.status){case"fulfilled":return q.value;case"rejected":throw q.reason}}throw q}function F(q,$,U,Z,K){var te=typeof q;(te==="undefined"||te==="boolean")&&(q=null);var ne=!1;if(q===null)ne=!0;else switch(te){case"bigint":case"string":case"number":ne=!0;break;case"object":switch(q.$$typeof){case t:case n:ne=!0;break;case f:return ne=q._init,F(ne(q._payload),$,U,Z,K)}}if(ne)return K=K(q),ne=Z===""?"."+B(q,0):Z,C(K)?(U="",ne!=null&&(U=ne.replace(D,"$&/")+"/"),F(K,$,U,"",function(ie){return ie})):K!=null&&(R(K)&&(K=A(K,U+(K.key==null||q&&q.key===K.key?"":(""+K.key).replace(D,"$&/")+"/")+ne)),$.push(K)),1;ne=0;var J=Z===""?".":Z+":";if(C(q))for(var se=0;se<q.length;se++)Z=q[se],te=J+B(Z,se),ne+=F(Z,$,U,te,K);else if(se=m(q),typeof se=="function")for(q=se.call(q),se=0;!(Z=q.next()).done;)Z=Z.value,te=J+B(Z,se++),ne+=F(Z,$,U,te,K);else if(te==="object"){if(typeof q.then=="function")return F(H(q),$,U,Z,K);throw $=String(q),Error("Objects are not valid as a React child (found: "+($==="[object Object]"?"object with keys {"+Object.keys(q).join(", ")+"}":$)+"). If you meant to render a collection of children, use an array instead.")}return ne}function z(q,$,U){if(q==null)return q;var Z=[],K=0;return F(q,Z,"","",function(te){return $.call(U,te,K++)}),Z}function V(q){if(q._status===-1){var $=q._result;$=$(),$.then(function(U){(q._status===0||q._status===-1)&&(q._status=1,q._result=U)},function(U){(q._status===0||q._status===-1)&&(q._status=2,q._result=U)}),q._status===-1&&(q._status=0,q._result=$)}if(q._status===1)return q._result.default;throw q._result}var M=typeof reportError=="function"?reportError:function(q){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var $=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof q=="object"&&q!==null&&typeof q.message=="string"?String(q.message):String(q),error:q});if(!window.dispatchEvent($))return}else if(typeof e=="object"&&typeof e.emit=="function"){e.emit("uncaughtException",q);return}console.error(q)},Q={map:z,forEach:function(q,$,U){z(q,function(){$.apply(this,arguments)},U)},count:function(q){var $=0;return z(q,function(){$++}),$},toArray:function(q){return z(q,function($){return $})||[]},only:function(q){if(!R(q))throw Error("React.Children.only expected to receive a single React element child.");return q}};return qr.Activity=p,qr.Children=Q,qr.Component=x,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=E,qr.__COMPILER_RUNTIME={__proto__:null,c:function(q){return E.H.useMemoCache(q)}},qr.cache=function(q){return function(){return q.apply(null,arguments)}},qr.cacheSignal=function(){return null},qr.cloneElement=function(q,$,U){if(q==null)throw Error("The argument must be a React element, but you passed "+q+".");var Z=y({},q.props),K=q.key;if($!=null)for(te in $.key!==void 0&&(K=""+$.key),$)!N.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=U;else if(1<te){for(var ne=Array(te),J=0;J<te;J++)ne[J]=arguments[J+2];Z.children=ne}return I(q.type,K,Z)},qr.createContext=function(q){return q={$$typeof:l,_currentValue:q,_currentValue2:q,_threadCount:0,Provider:null,Consumer:null},q.Provider=q,q.Consumer={$$typeof:i,_context:q},q},qr.createElement=function(q,$,U){var Z,K={},te=null;if($!=null)for(Z in $.key!==void 0&&(te=""+$.key),$)N.call($,Z)&&Z!=="key"&&Z!=="__self"&&Z!=="__source"&&(K[Z]=$[Z]);var ne=arguments.length-2;if(ne===1)K.children=U;else if(1<ne){for(var J=Array(ne),se=0;se<ne;se++)J[se]=arguments[se+2];K.children=J}if(q&&q.defaultProps)for(Z in ne=q.defaultProps,ne)K[Z]===void 0&&(K[Z]=ne[Z]);return I(q,te,K)},qr.createRef=function(){return{current:null}},qr.forwardRef=function(q){return{$$typeof:c,render:q}},qr.isValidElement=R,qr.lazy=function(q){return{$$typeof:f,_payload:{_status:-1,_result:q},_init:V}},qr.memo=function(q,$){return{$$typeof:d,type:q,compare:$===void 0?null:$}},qr.startTransition=function(q){var $=E.T,U={};E.T=U;try{var Z=q(),K=E.S;K!==null&&K(U,Z),typeof Z=="object"&&Z!==null&&typeof Z.then=="function"&&Z.then(j,M)}catch(te){M(te)}finally{$!==null&&U.types!==null&&($.types=U.types),E.T=$}},qr.unstable_useCacheRefresh=function(){return E.H.useCacheRefresh()},qr.use=function(q){return E.H.use(q)},qr.useActionState=function(q,$,U){return E.H.useActionState(q,$,U)},qr.useCallback=function(q,$){return E.H.useCallback(q,$)},qr.useContext=function(q){return E.H.useContext(q)},qr.useDebugValue=function(){},qr.useDeferredValue=function(q,$){return E.H.useDeferredValue(q,$)},qr.useEffect=function(q,$){return E.H.useEffect(q,$)},qr.useEffectEvent=function(q){return E.H.useEffectEvent(q)},qr.useId=function(){return E.H.useId()},qr.useImperativeHandle=function(q,$,U){return E.H.useImperativeHandle(q,$,U)},qr.useInsertionEffect=function(q,$){return E.H.useInsertionEffect(q,$)},qr.useLayoutEffect=function(q,$){return E.H.useLayoutEffect(q,$)},qr.useMemo=function(q,$){return E.H.useMemo(q,$)},qr.useOptimistic=function(q,$){return E.H.useOptimistic(q,$)},qr.useReducer=function(q,$,U){return E.H.useReducer(q,$,U)},qr.useRef=function(q){return E.H.useRef(q)},qr.useState=function(q){return E.H.useState(q)},qr.useSyncExternalStore=function(q,$,U){return E.H.useSyncExternalStore(q,$,U)},qr.useTransition=function(){return E.H.useTransition()},qr.version="19.2.7",qr}var I2e;function FN(){return I2e||(I2e=1,SK.exports=bqt()),SK.exports}var v=FN();const Fe=Fl(v),v_=gqt({__proto__:null,default:Fe},[v]);var kK={exports:{}},qA={},OK={exports:{}},_K={};var A2e;function xqt(){return A2e||(A2e=1,(function(e){function t(H,F){var z=H.length;H.push(F);e:for(;0<z;){var V=z-1>>>1,M=H[V];if(0<s(M,F))H[V]=F,H[z]=M,z=V;else break e}}function n(H){return H.length===0?null:H[0]}function r(H){if(H.length===0)return null;var F=H[0],z=H.pop();if(z!==F){H[0]=z;e:for(var V=0,M=H.length,Q=M>>>1;V<Q;){var q=2*(V+1)-1,$=H[q],U=q+1,Z=H[U];if(0>s($,z))U<M&&0>s(Z,$)?(H[V]=Z,H[U]=z,V=U):(H[V]=$,H[q]=z,V=q);else if(U<M&&0>s(Z,z))H[V]=Z,H[U]=z,V=U;else break e}}return F}function s(H,F){var z=H.sortIndex-F.sortIndex;return z!==0?z:H.id-F.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,g=!1,y=!1,b=typeof setTimeout=="function"?setTimeout:null,x=typeof clearTimeout=="function"?clearTimeout:null,w=typeof setImmediate<"u"?setImmediate:null;function k(H){for(var F=n(u);F!==null;){if(F.callback===null)r(u);else if(F.startTime<=H)r(u),F.sortIndex=F.expirationTime,t(c,F);else break;F=n(u)}}function _(H){if(g=!1,k(H),!m)if(n(c)!==null)m=!0,C||(C=!0,R());else{var F=n(u);F!==null&&B(_,F.startTime-H)}}var C=!1,j=-1,E=5,N=-1;function I(){return y?!0:!(e.unstable_now()-N<E)}function A(){if(y=!1,C){var H=e.unstable_now();N=H;var F=!0;try{e:{m=!1,g&&(g=!1,x(j),j=-1),h=!0;var z=p;try{t:{for(k(H),f=n(c);f!==null&&!(f.expirationTime>H&&I());){var V=f.callback;if(typeof V=="function"){f.callback=null,p=f.priorityLevel;var M=V(f.expirationTime<=H);if(H=e.unstable_now(),typeof M=="function"){f.callback=M,k(H),F=!0;break t}f===n(c)&&r(c),k(H)}else r(c);f=n(c)}if(f!==null)F=!0;else{var Q=n(u);Q!==null&&B(_,Q.startTime-H),F=!1}}break e}finally{f=null,p=z,h=!1}F=void 0}}finally{F?R():C=!1}}}var R;if(typeof w=="function")R=function(){w(A)};else if(typeof MessageChannel<"u"){var L=new MessageChannel,D=L.port2;L.port1.onmessage=A,R=function(){D.postMessage(null)}}else R=function(){b(A,0)};function B(H,F){j=b(function(){H(e.unstable_now())},F)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(H){H.callback=null},e.unstable_forceFrameRate=function(H){0>H||125<H?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):E=0<H?Math.floor(1e3/H):5},e.unstable_getCurrentPriorityLevel=function(){return p},e.unstable_next=function(H){switch(p){case 1:case 2:case 3:var F=3;break;default:F=p}var z=p;p=F;try{return H()}finally{p=z}},e.unstable_requestPaint=function(){y=!0},e.unstable_runWithPriority=function(H,F){switch(H){case 1:case 2:case 3:case 4:case 5:break;default:H=3}var z=p;p=H;try{return F()}finally{p=z}},e.unstable_scheduleCallback=function(H,F,z){var V=e.unstable_now();switch(typeof z=="object"&&z!==null?(z=z.delay,z=typeof z=="number"&&0<z?V+z:V):z=V,H){case 1:var M=-1;break;case 2:M=250;break;case 5:M=1073741823;break;case 4:M=1e4;break;default:M=5e3}return M=z+M,H={id:d++,callback:F,priorityLevel:H,startTime:z,expirationTime:M,sortIndex:-1},z>V?(H.sortIndex=z,t(u,H),n(c)===null&&H===n(u)&&(g?(x(j),j=-1):g=!0,B(_,z-V))):(H.sortIndex=M,t(c,H),m||h||(m=!0,C||(C=!0,R()))),H},e.unstable_shouldYield=I,e.unstable_wrapCallback=function(H){var F=p;return function(){var z=p;p=F;try{return H.apply(this,arguments)}finally{p=z}}}})(_K)),_K}var R2e;function wqt(){return R2e||(R2e=1,OK.exports=xqt()),OK.exports}var CK={exports:{}},xu={};var P2e;function Sqt(){if(P2e)return xu;P2e=1;var e=FN();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 xu.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=r,xu.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)},xu.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()}},xu.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))},xu.prefetchDNS=function(c){typeof c=="string"&&r.d.D(c)},xu.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})}},xu.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)},xu.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})}},xu.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)},xu.requestFormReset=function(c){r.d.r(c)},xu.unstable_batchedUpdates=function(c,u){return c(u)},xu.useFormState=function(c,u,d){return i.H.useFormState(c,u,d)},xu.useFormStatus=function(){return i.H.useHostTransitionStatus()},xu.version="19.2.7",xu}var $2e;function iit(){if($2e)return CK.exports;$2e=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(),CK.exports=Sqt(),CK.exports}var M2e;function kqt(){if(M2e)return qA;M2e=1;var e={env:{}};var t=wqt(),n=FN(),r=iit();function s(S){var O="https://react.dev/errors/"+S;if(1<arguments.length){O+="?args[]="+encodeURIComponent(arguments[1]);for(var T=2;T<arguments.length;T++)O+="&args[]="+encodeURIComponent(arguments[T])}return"Minified React error #"+S+"; visit "+O+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function a(S){return!(!S||S.nodeType!==1&&S.nodeType!==9&&S.nodeType!==11)}function i(S){var O=S,T=S;if(S.alternate)for(;O.return;)O=O.return;else{S=O;do O=S,(O.flags&4098)!==0&&(T=O.return),S=O.return;while(S)}return O.tag===3?T:null}function l(S){if(S.tag===13){var O=S.memoizedState;if(O===null&&(S=S.alternate,S!==null&&(O=S.memoizedState)),O!==null)return O.dehydrated}return null}function c(S){if(S.tag===31){var O=S.memoizedState;if(O===null&&(S=S.alternate,S!==null&&(O=S.memoizedState)),O!==null)return O.dehydrated}return null}function u(S){if(i(S)!==S)throw Error(s(188))}function d(S){var O=S.alternate;if(!O){if(O=i(S),O===null)throw Error(s(188));return O!==S?null:S}for(var T=S,P=O;;){var W=T.return;if(W===null)break;var G=W.alternate;if(G===null){if(P=W.return,P!==null){T=P;continue}break}if(W.child===G.child){for(G=W.child;G;){if(G===T)return u(W),S;if(G===P)return u(W),O;G=G.sibling}throw Error(s(188))}if(T.return!==P.return)T=W,P=G;else{for(var oe=!1,Se=W.child;Se;){if(Se===T){oe=!0,T=W,P=G;break}if(Se===P){oe=!0,P=W,T=G;break}Se=Se.sibling}if(!oe){for(Se=G.child;Se;){if(Se===T){oe=!0,T=G,P=W;break}if(Se===P){oe=!0,P=G,T=W;break}Se=Se.sibling}if(!oe)throw Error(s(189))}}if(T.alternate!==P)throw Error(s(190))}if(T.tag!==3)throw Error(s(188));return T.stateNode.current===T?S:O}function f(S){var O=S.tag;if(O===5||O===26||O===27||O===6)return S;for(S=S.child;S!==null;){if(O=f(S),O!==null)return O;S=S.sibling}return null}var p=Object.assign,h=Symbol.for("react.element"),m=Symbol.for("react.transitional.element"),g=Symbol.for("react.portal"),y=Symbol.for("react.fragment"),b=Symbol.for("react.strict_mode"),x=Symbol.for("react.profiler"),w=Symbol.for("react.consumer"),k=Symbol.for("react.context"),_=Symbol.for("react.forward_ref"),C=Symbol.for("react.suspense"),j=Symbol.for("react.suspense_list"),E=Symbol.for("react.memo"),N=Symbol.for("react.lazy"),I=Symbol.for("react.activity"),A=Symbol.for("react.memo_cache_sentinel"),R=Symbol.iterator;function L(S){return S===null||typeof S!="object"?null:(S=R&&S[R]||S["@@iterator"],typeof S=="function"?S:null)}var D=Symbol.for("react.client.reference");function B(S){if(S==null)return null;if(typeof S=="function")return S.$$typeof===D?null:S.displayName||S.name||null;if(typeof S=="string")return S;switch(S){case y:return"Fragment";case x:return"Profiler";case b:return"StrictMode";case C:return"Suspense";case j:return"SuspenseList";case I:return"Activity"}if(typeof S=="object")switch(S.$$typeof){case g:return"Portal";case k:return S.displayName||"Context";case w:return(S._context.displayName||"Context")+".Consumer";case _:var O=S.render;return S=S.displayName,S||(S=O.displayName||O.name||"",S=S!==""?"ForwardRef("+S+")":"ForwardRef"),S;case E:return O=S.displayName||null,O!==null?O:B(S.type)||"Memo";case N:O=S._payload,S=S._init;try{return B(S(O))}catch{}}return null}var H=Array.isArray,F=n.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,z=r.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,V={pending:!1,data:null,method:null,action:null},M=[],Q=-1;function q(S){return{current:S}}function $(S){0>Q||(S.current=M[Q],M[Q]=null,Q--)}function U(S,O){Q++,M[Q]=S.current,S.current=O}var Z=q(null),K=q(null),te=q(null),ne=q(null);function J(S,O){switch(U(te,O),U(K,S),U(Z,null),O.nodeType){case 9:case 11:S=(S=O.documentElement)&&(S=S.namespaceURI)?KPe(S):0;break;default:if(S=O.tagName,O=O.namespaceURI)O=KPe(O),S=XPe(O,S);else switch(S){case"svg":S=1;break;case"math":S=2;break;default:S=0}}$(Z),U(Z,S)}function se(){$(Z),$(K),$(te)}function ie(S){S.memoizedState!==null&&U(ne,S);var O=Z.current,T=XPe(O,S.type);O!==T&&(U(K,S),U(Z,T))}function Y(S){K.current===S&&($(Z),$(K)),ne.current===S&&($(ne),FA._currentValue=V)}var ee,ue;function pe(S){if(ee===void 0)try{throw Error()}catch(T){var O=T.stack.trim().match(/\n( *(at )?)/);ee=O&&O[1]||"",ue=-1<T.stack.indexOf(`
|
|
3
3
|
at`)?" (<anonymous>)":-1<T.stack.indexOf("@")?"@unknown:0:0":""}return`
|
|
4
4
|
`+ee+S+ue}var le=!1;function fe(S,O){if(!S||le)return"";le=!0;var T=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var P={DetermineComponentFrameRoot:function(){try{if(O){var jt=function(){throw Error()};if(Object.defineProperty(jt.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(jt,[])}catch(ft){var ot=ft}Reflect.construct(S,[],jt)}else{try{jt.call()}catch(ft){ot=ft}S.call(jt.prototype)}}else{try{throw Error()}catch(ft){ot=ft}(jt=S())&&typeof jt.catch=="function"&&jt.catch(function(){})}}catch(ft){if(ft&&ot&&typeof ft.stack=="string")return[ft.stack,ot.stack]}return[null,null]}};P.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var W=Object.getOwnPropertyDescriptor(P.DetermineComponentFrameRoot,"name");W&&W.configurable&&Object.defineProperty(P.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var G=P.DetermineComponentFrameRoot(),oe=G[0],Se=G[1];if(oe&&Se){var Be=oe.split(`
|
|
@@ -334,7 +334,7 @@ attempted value: ${i}
|
|
|
334
334
|
\${}
|
|
335
335
|
}
|
|
336
336
|
}`,{label:"class",detail:"definition",type:"keyword"}),nf('import {${names}} from "${module}"\n${}',{label:"import",detail:"named",type:"keyword"}),nf('import ${name} from "${module}"\n${}',{label:"import",detail:"default",type:"keyword"})],twt=ASe.concat([nf("interface ${name} {\n ${}\n}",{label:"interface",detail:"definition",type:"keyword"}),nf("type ${name} = ${type}",{label:"type",detail:"definition",type:"keyword"}),nf("enum ${name} {\n ${}\n}",{label:"enum",detail:"definition",type:"keyword"})]),ize=new abt,nwt=new Set(["Script","Block","FunctionExpression","FunctionDeclaration","ArrowFunction","MethodDeclaration","ForStatement"]);function vR(e){return(t,n)=>{let r=t.node.getChild("VariableDefinition");return r&&n(r,e),!0}}const l7n=["FunctionDeclaration"],c7n={FunctionDeclaration:vR("function"),ClassDeclaration:vR("class"),ClassExpression:()=>!0,EnumDeclaration:vR("constant"),TypeAliasDeclaration:vR("type"),NamespaceDeclaration:vR("namespace"),VariableDefinition(e,t){e.matchContext(l7n)||t(e,"variable")},TypeDefinition(e,t){t(e,"type")},__proto__:null};function rwt(e,t){let n=ize.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(La.IncludeAnonymous).iterate(i=>{if(s)s=!1;else if(i.name){let l=c7n[i.name];if(l&&l(i,a)||nwt.has(i.name))return!1}else if(i.to-i.from>8192){for(let l of rwt(e,i.node))r.push(l);return!1}}),ize.set(t,r),r}const pB=/^[\w$\xa1-\uffff][\w$\d\xa1-\uffff]*$/,RSe=["TemplateString","String","RegExp","LineComment","BlockComment","VariableDefinition","TypeDefinition","Label","PropertyDefinition","PropertyName","PrivatePropertyDefinition","PrivatePropertyName","JSXText","JSXAttributeValue","JSXOpenTag","JSXCloseTag","JSXSelfClosingTag",".","?."];function swt(e){let t=gi(e.state).resolveInner(e.pos,-1);if(RSe.indexOf(t.name)>-1)return null;let n=t.name=="VariableName"||t.to-t.from<20&&pB.test(e.state.sliceDoc(t.from,t.to));if(!n&&!e.explicit)return null;let r=[];for(let s=t;s;s=s.parent)nwt.has(s.name)&&(r=r.concat(rwt(e.state.doc,s)));return{options:r,from:n?t.from:e.pos,validFor:pB}}function YJ(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 awt(e){let t=r=>e.state.doc.sliceString(r.from,r.to),n=gi(e.state).resolveInner(e.pos,-1);return n.name=="PropertyName"?YJ(t,n.parent,t(n)):(n.name=="."||n.name=="?.")&&n.parent.name=="MemberExpression"?YJ(t,n.parent,""):RSe.indexOf(n.name)>-1?null:n.name=="VariableName"||n.to-n.from<20&&pB.test(t(n))?{path:[],name:t(n)}:n.name=="MemberExpression"?YJ(t,n,""):e.explicit?{path:[],name:""}:null}function u7n(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 d7n(e){let t=new Map;return n=>{let r=awt(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=u7n(s,!r.path.length)),{from:n.pos-r.name.length,options:a,validFor:pB}}}const Kh=MO.define({name:"javascript",parser:o7n.configure({props:[H_.add({IfStatement:Vj({except:/^\s*({|else\b)/}),TryStatement:Vj({except:/^\s*({|catch\b|finally\b)/}),LabeledStatement:aFn,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:sFn({closing:"}"}),ArrowFunction:e=>e.baseIndent+e.unit,"TemplateString BlockComment":()=>null,"Statement Property":Vj({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}}),W_.add({"Block ClassBody SwitchBody EnumBody ObjectExpression ArrayExpression ObjectType":fSe,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:"$"}}),iwt={test:e=>/^JSX/.test(e.name),facet:kH({commentTokens:{block:{open:"{/*",close:"*/}"}}})},PSe=Kh.configure({dialect:"ts"},"typescript"),$Se=Kh.configure({dialect:"jsx",props:[cSe.add(e=>e.isTop?[iwt]:void 0)]}),MSe=Kh.configure({dialect:"jsx ts",props:[cSe.add(e=>e.isTop?[iwt]:void 0)]},"typescript");let owt=e=>({label:e,type:"keyword"});const lwt="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(owt),f7n=lwt.concat(["declare","implements","private","protected","public"].map(owt));function hB(e={}){let t=e.jsx?e.typescript?MSe:$Se:e.typescript?PSe:Kh,n=e.typescript?twt.concat(f7n):ASe.concat(lwt);return new LO(t,[Kh.data.of({autocomplete:qFn(RSe,i0t(n))}),Kh.data.of({autocomplete:swt}),e.jsx?cwt:[]])}function p7n(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 oze(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 h7n=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent),cwt=Nt.inputHandler.of((e,t,n,r,s)=>{if((h7n?e.composing:e.compositionStarted)||e.state.readOnly||t!=n||r!=">"&&r!="/"||!Kh.isActiveAt(e.state,t,-1))return!1;let a=s(),{state:i}=a,l=i.changeByRange(c=>{var u;let{head:d}=c,f=gi(i).resolveInner(d-1,-1),p;if(f.name=="JSXStartTag"&&(f=f.parent),!(i.doc.sliceString(d-1,d)!=r||f.name=="JSXAttributeValue"&&f.to>d)){if(r==">"&&f.name=="JSXFragmentTag")return{range:c,changes:{from:d,insert:"</>"}};if(r=="/"&&f.name=="JSXStartCloseTag"){let h=f.parent,m=h.parent;if(m&&h.from==d-2&&((p=oze(i.doc,m.firstChild,d))||((u=m.firstChild)===null||u===void 0?void 0:u.name)=="JSXFragmentTag")){let g=`${p}>`;return{range:vt.cursor(d+g.length,-1),changes:{from:d,insert:g}}}}else if(r==">"){let h=p7n(f);if(h&&h.name=="JSXOpenTag"&&!/^\/?>|^<\//.test(i.doc.sliceString(d,d+2))&&(p=oze(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 m7n(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 Kh.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(g7n(u,r.doc,c))}return s}}function lze(e,t,n,r){return n.line(e+r.line).from+t+(e==1?r.col-1:-1)}function g7n(e,t,n){let r=lze(e.line,e.column,t,n),s={from:r,to:e.endLine!=null&&e.endColumn!=1?lze(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 Y6=Object.freeze(Object.defineProperty({__proto__:null,autoCloseTags:cwt,completionPath:awt,esLint:m7n,javascript:hB,javascriptLanguage:Kh,jsxLanguage:$Se,localCompletionSource:swt,scopeCompletionSource:d7n,snippets:ASe,tsxLanguage:MSe,typescriptLanguage:PSe,typescriptSnippets:twt},Symbol.toStringTag,{value:"Module"})),yR=["_blank","_self","_top","_parent"],KJ=["ascii","utf-8","utf-16","latin1","latin1"],XJ=["get","post","put","delete"],JJ=["application/x-www-form-urlencoded","multipart/form-data","text/plain"],sp=["true","false"],er={},v7n={a:{attrs:{href:null,ping:null,type:null,media:null,target:yR,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:yR}},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:JJ,formmethod:XJ,formnovalidate:["novalidate"],formtarget:yR,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":KJ,autocomplete:["on","off"],enctype:JJ,method:XJ,novalidate:["novalidate"],target:yR}},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:JJ,formmethod:XJ,formnovalidate:["novalidate"],formtarget:yR,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:KJ,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:KJ}},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},uwt={accesskey:null,class:null,contenteditable:sp,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:sp,autocorrect:sp,autocapitalize:sp,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":sp,"aria-autocomplete":["inline","list","both","none"],"aria-busy":sp,"aria-checked":["true","false","mixed","undefined"],"aria-controls":null,"aria-describedby":null,"aria-disabled":sp,"aria-dropeffect":null,"aria-expanded":["true","false","undefined"],"aria-flowto":null,"aria-grabbed":["true","false","undefined"],"aria-haspopup":sp,"aria-hidden":sp,"aria-invalid":["true","false","grammar","spelling"],"aria-label":null,"aria-labelledby":null,"aria-level":null,"aria-live":["off","polite","assertive"],"aria-multiline":sp,"aria-multiselectable":sp,"aria-owns":null,"aria-posinset":null,"aria-pressed":["true","false","mixed","undefined"],"aria-readonly":sp,"aria-relevant":null,"aria-required":sp,"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},dwt="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 dwt)uwt[e]=null;class SM{constructor(t,n){this.tags={...v7n,...t},this.globalAttrs={...uwt,...n},this.allTags=Object.keys(this.tags),this.globalAttrNames=Object.keys(this.globalAttrs)}}SM.default=new SM;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 UT(e,t=!1){for(;e;e=e.parent)if(e.name=="Element")if(t)t=!1;else return e;return null}function fwt(e,t,n){let r=n.tags[BT(e,UT(t))];return r?.children||n.allTags}function DSe(e,t){let n=[];for(let r=UT(t);r&&!r.type.isTop;r=UT(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 pwt=/^[:\-\.\w\u00b7-\uffff]*$/;function cze(e,t,n,r,s){let a=/\s*>/.test(e.sliceDoc(s,s+5))?"":">",i=UT(n,n.name=="StartTag"||n.name=="TagName");return{from:r,to:s,options:fwt(e.doc,i,t).map(l=>({label:l,type:"type"})).concat(DSe(e.doc,n).map((l,c)=>({label:"/"+l,apply:"/"+l+a,type:"type",boost:99-c}))),validFor:/^\/?[:\-\.\w\u00b7-\uffff]*$/}}function uze(e,t,n,r){let s=/\s*>/.test(e.sliceDoc(r,r+5))?"":">";return{from:n,to:r,options:DSe(e.doc,t).map((a,i)=>({label:a,apply:a+s,type:"type",boost:99-i})),validFor:pwt}}function y7n(e,t,n,r){let s=[],a=0;for(let i of fwt(e.doc,n,t))s.push({label:"<"+i,type:"type"});for(let i of DSe(e.doc,n))s.push({label:"</"+i+">",type:"type",boost:99-a++});return{from:r,to:r,options:s,validFor:/^<\/?[:\-\.\w\u00b7-\uffff]*$/}}function b7n(e,t,n,r,s){let a=UT(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:pwt}}function x7n(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=UT(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 hwt(e,t){let{state:n,pos:r}=t,s=gi(n).resolveInner(r,-1),a=s.resolve(r);for(let i=r,l;a==s&&(l=s.childBefore(i));){let c=l.lastChild;if(!c||!c.type.isError||c.from<c.to)break;a=s=l,i=c.from}return s.name=="TagName"?s.parent&&/CloseTag$/.test(s.parent.name)?uze(n,s,s.from,r):cze(n,e,s,s.from,r):s.name=="StartTag"||s.name=="IncompleteTag"?cze(n,e,s,r,r):s.name=="StartCloseTag"||s.name=="IncompleteCloseTag"?uze(n,s,r,r):s.name=="OpenTag"||s.name=="SelfClosingTag"||s.name=="AttributeName"?b7n(n,e,s,s.name=="AttributeName"?s.from:r,r):s.name=="Is"||s.name=="AttributeValue"||s.name=="UnquotedAttributeValue"?x7n(n,e,s,s.name=="Is"?r:s.from,r):t.explicit&&(a.name=="Element"||a.name=="Text"||a.name=="Document")?y7n(n,e,s,r):null}function w7n(e){return hwt(SM.default,e)}function S7n(e){let{extraTags:t,extraGlobalAttributes:n}=e,r=n||t?new SM(t,n):SM.default;return s=>hwt(r,s)}const k7n=Kh.parser.configure({top:"SingleExpression"}),mwt=[{tag:"script",attrs:e=>e.type=="text/typescript"||e.lang=="ts",parser:PSe.parser},{tag:"script",attrs:e=>e.type=="text/babel"||e.type=="text/jsx",parser:$Se.parser},{tag:"script",attrs:e=>e.type=="text/typescript-jsx",parser:MSe.parser},{tag:"script",attrs(e){return/^(importmap|speculationrules|application\/(.+\+)?json)$/i.test(e.type)},parser:k7n},{tag:"script",attrs(e){return!e.type||/^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^module$|^$/i.test(e.type)},parser:Kh.parser},{tag:"style",attrs(e){return(!e.lang||e.lang=="css")&&(!e.type||/^(text\/)?(x-)?(stylesheet|css)$/i.test(e.type))},parser:fB.parser}],gwt=[{name:"style",parser:fB.parser.configure({top:"Styles"})}].concat(dwt.map(e=>({name:e,parser:Kh.parser}))),vwt=MO.define({name:"html",parser:G8n.configure({props:[H_.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}}),W_.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}}}),Jxt.add({"OpenTag CloseTag":e=>e.getChild("TagName")})]}),languageData:{commentTokens:{block:{open:"<!--",close:"-->"}},indentOnInput:/^\s*<\/\w+\W$/,wordChars:"-_"}}),N8=vwt.configure({wrap:G0t(mwt,gwt)});function O7n(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=G0t((e.nestedLanguages||[]).concat(mwt),(e.nestedAttributes||[]).concat(gwt)));let r=n?vwt.configure({wrap:n,dialect:t}):t?N8.configure({dialect:t}):N8;return new LO(r,[N8.data.of({autocomplete:S7n(e)}),e.autoCloseTags!==!1?_7n:[],hB().support,N9n().support])}const dze=new Set("area base br col command embed frame hr img input keygen link meta param source track wbr menuitem".split(" ")),_7n=Nt.inputHandler.of((e,t,n,r,s)=>{if(e.composing||e.state.readOnly||t!=n||r!=">"&&r!="/"||!N8.isActiveAt(e.state,t,-1))return!1;let a=s(),{state:i}=a,l=i.changeByRange(c=>{var u,d,f;let p=i.doc.sliceString(c.from-1,c.to)==r,{head:h}=c,m=gi(i).resolveInner(h,-1),g;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"&&(g=BT(i.doc,y.parent,h))&&!dze.has(g)){let b=h+(i.doc.sliceString(h,h+1)===">"?1:0),x=`</${g}>`;return{range:c,changes:{from:h,to:b,insert:x}}}}else if(p&&r=="/"&&m.name=="IncompleteCloseTag"){let y=m.parent;if(m.from==h-2&&((f=y.lastChild)===null||f===void 0?void 0:f.name)!="CloseTag"&&(g=BT(i.doc,y,h))&&!dze.has(g)){let b=h+(i.doc.sliceString(h,h+1)===">"?1:0),x=`${g}>`;return{range:vt.cursor(h+x.length,-1),changes:{from:h,to:b,insert:x}}}}return{range:c}});return l.changes.empty?!1:(e.dispatch([a,i.update(l,{userEvent:"input.complete",scrollIntoView:!0})]),!0)}),ywt=kH({commentTokens:{block:{open:"<!--",close:"-->"}}}),bwt=new Dr,xwt=Yzn.configure({props:[W_.add(e=>!e.is("Block")||e.is("Document")||Gme(e)!=null||C7n(e)?void 0:(t,n)=>({from:n.doc.lineAt(t.from).to,to:t.to})),bwt.add(Gme),H_.add({Document:()=>null}),ww.add({Document:ywt})]});function Gme(e){let t=/^(?:ATX|Setext)Heading(\d)$/.exec(e.name);return t?+t[1]:void 0}function C7n(e){return e.name=="OrderedList"||e.name=="BulletList"}function E7n(e,t){let n=e;for(;;){let r=n.nextSibling,s;if(!r||(s=Gme(r.type))!=null&&s<=t)break;n=r}return n.to}const j7n=Bxt.of((e,t,n)=>{for(let r=gi(e).resolveInner(n,-1);r&&!(r.from<t);r=r.parent){let s=r.type.prop(bwt);if(s==null)continue;let a=E7n(r,s);if(a>n)return{from:n,to:a}}return null});function LSe(e){return new Ep(ywt,e,[],"markdown")}const wwt=LSe(xwt),T7n=xwt.configure([o8n,c8n,l8n,u8n,{props:[W_.add({Table:(e,t)=>({from:t.doc.lineAt(e.from).to,to:e.to})})]}]),BO=LSe(T7n);function N7n(e,t){return n=>{if(n&&e){let r=null;if(n=/\S*/.exec(n)[0],typeof e=="function"?r=e(n):r=sg.matchLanguageName(e,n,!0),r instanceof sg)return r.support?r.support.language.parser:DO.getSkippingParser(r.load());if(r)return r.parser}return t?t.parser:null}}class eee{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(+kwt(this.item,t)[2]+n):"";return this.spaceBefore+r+this.type+this.spaceAfter}}function Swt(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 eee(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 eee(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 eee(a.parent,c,c+d,i[1],u,f,a))}}return r}function kwt(e,t){return/^(\s*)(\d+)(?=[.)])/.exec(t.sliceString(e.from,e.from+10))}function tee(e,t,n,r=0){for(let s=-1,a=e;;){if(a.name=="ListItem"){let l=kwt(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 FSe(e,t){let n=/^[ \t]*/.exec(e)[0].length;if(!n||t.facet(lI)!=" ")return e;let r=Mg(e,4,n),s="";for(let a=r;a>0;)a>=4?(s+=" ",a-=4):(s+=" ",a--);return s+e.slice(n)}const Owt=(e={})=>({state:t,dispatch:n})=>{let r=gi(t),{doc:s}=t,a=null,i=t.changeByRange(l=>{if(!l.empty||!BO.isActiveAt(t,l.from,-1)&&!BO.isActiveAt(t,l.from,1))return a={range:l};let c=l.from,u=s.lineAt(c),d=Swt(r.resolveInner(c,-1),s);for(;d.length&&d[d.length-1].from>c-u.from;)d.pop();if(!d.length)return a={range:l};let f=d[d.length-1];if(f.to-f.spaceAfter.length>c-u.from)return a={range:l};let p=c>=f.to-f.spaceAfter.length&&!/\S/.test(u.text.slice(f.to));if(f.item&&p){let b=f.node.firstChild,x=f.node.getChild("ListItem","ListItem");if(b.to>=c||x&&x.to<c||u.from>0&&!/[^\s>]/.test(s.lineAt(u.from-1).text)||e.nonTightLists===!1){let 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"&&tee(f.item,s,C,-2),w&&w.node.name=="OrderedList"&&tee(w.item,s,C),{range:vt.cursor(k+_.length),changes:C}}else{let w=pze(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),x=/>\s*$/.exec(b.text);if(x&&x.index==f.from){let w=t.changes([{from:b.from+x.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"&&tee(f.item,s,h);let m=f.item&&f.item.from<u.from,g="";if(!m||/^[\s\d.)\-+*>]*/.exec(u.text)[0].length>=f.to)for(let b=0,x=d.length-1;b<=x;b++)g+=b==x&&!m?d[b].marker(s,1):d[b].blank(b<x?Mg(u.text,4,d[b+1].from)-g.length:null);let y=c;for(;y>u.from&&/\s/.test(u.text.charAt(y-u.from-1));)y--;return g=FSe(g,t),I7n(f.node,t.doc)&&(g=pze(d,t,u)+t.lineBreak+g),h.push({from:y,to:c,insert:t.lineBreak+g}),{range:vt.cursor(y+g.length+1),changes:h}});return a?!1:(n(t.update(i,{scrollIntoView:!0,userEvent:"input"})),!0)},_wt=Owt();function fze(e){return e.name=="QuoteMark"||e.name=="ListMark"}function I7n(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 pze(e,t,n){let r="";for(let s=0,a=e.length-2;s<=a;s++)r+=e[s].blank(s<a?Mg(n.text,4,e[s+1].from)-r.length:null,s<a);return FSe(r,t)}function A7n(e,t){let n=e.resolveInner(t,-1),r=t;fze(n)&&(r=n.from,n=n.parent);for(let s;s=n.childBefore(r);)if(fze(s))r=s.from;else if(s.name=="OrderedList"||s.name=="BulletList")n=s.lastChild,r=n.to;else break;return n}const Cwt=({state:e,dispatch:t})=>{let n=gi(e),r=null,s=e.changeByRange(a=>{let i=a.from,{doc:l}=e;if(a.empty&&BO.isActiveAt(e,a.from)){let c=l.lineAt(i),u=Swt(A7n(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(Mg(c.text,4,d.to)-Mg(c.text,4,d.from));return p==c.from&&(h=FSe(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)},Ewt=[{key:"Enter",run:_wt},{key:"Backspace",run:Cwt}],jwt=O7n({matchClosingTags:!1});function zSe(e={}){let{codeLanguages:t,defaultCodeLanguage:n,addKeymap:r=!0,base:{parser:s}=wwt,completeHTMLTags:a=!0,pasteURLAsLink:i=!0,htmlTagLanguage:l=jwt}=e;if(!(s instanceof EH))throw new RangeError("Base parser provided to `markdown` should be a Markdown parser");let c=e.extensions?[e.extensions]:[],u=[l.support,j7n],d;i&&u.push(Twt),n instanceof LO?(u.push(n.support),d=n.language):n&&(d=n);let f=t||d?N7n(t,d):void 0;c.push(Xzn({codeParser:f,htmlParser:l.language.parser})),r&&u.push(eh.high(oI.of(Ewt)));let p=LSe(s.configure(c));return a&&u.push(p.data.of({autocomplete:R7n})),new LO(p,u)}function R7n(e){let{state:t,pos:n}=e,r=/<[:\-\.\w\u00b7-\uffff]*$/.exec(t.sliceDoc(n-25,n));if(!r)return null;let s=gi(t).resolveInner(n,-1);for(;s&&!s.type.isTop;){if(s.name=="CodeBlock"||s.name=="FencedCode"||s.name=="ProcessingInstructionBlock"||s.name=="CommentBlock"||s.name=="Link"||s.name=="Image")return null;s=s.parent}return{from:n-r[0].length,to:n,options:P7n(),validFor:/^<[:\-\.\w\u00b7-\uffff]*$/}}let nee=null;function P7n(){if(nee)return nee;let e=w7n(new gSe(cs.create({extensions:jwt}),0,!0));return nee=e?e.options:[]}const $7n=/code|horizontalrule|html|link|comment|processing|escape|entity|image|mark|url/i,Twt=Nt.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),!BO.isActiveAt(t.state,r.from,1)))return!1;let a=gi(t.state),i=!1;return a.iterate({from:r.from,to:r.to,enter:l=>{(l.from>r.from||$7n.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)}}),M7n=Object.freeze(Object.defineProperty({__proto__:null,commonmarkLanguage:wwt,deleteMarkupBackward:Cwt,insertNewlineContinueMarkup:_wt,insertNewlineContinueMarkupCommand:Owt,markdown:zSe,markdownKeymap:Ewt,markdownLanguage:BO,pasteURLAsLink:Twt},Symbol.toStringTag,{value:"Module"}));function UO(){return UO=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},UO.apply(null,arguments)}var D7n=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=Nt.theme(i,{dark:t==="dark"}),d=qg.define(a),f=[u,U1(d)];return f},L7n={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)"},F7n=[{tag:he.comment,color:"#6272a4"},{tag:he.string,color:"#f1fa8c"},{tag:he.atom,color:"#bd93f9"},{tag:he.meta,color:"#f8f8f2"},{tag:[he.keyword,he.operator,he.tagName],color:"#ff79c6"},{tag:[he.function(he.propertyName),he.propertyName],color:"#66d9ef"},{tag:[he.definition(he.variableName),he.function(he.variableName),he.className,he.attributeName],color:"#50fa7b"},{tag:he.atom,color:"#bd93f9"}],uI=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 D7n({theme:r,settings:UO({},L7n,a),styles:[...F7n,...l]})};uI();function Nwt(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 z7n=e=>{let{state:t}=e,n=t.doc.lineAt(t.selection.main.from),r=USe(e.state,n.from);return r.line?B7n(e):r.block?V7n(e):!1};function BSe(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 B7n=BSe(W7n,0),U7n=BSe(Iwt,0),V7n=BSe((e,t)=>Iwt(e,t,H7n(t)),0);function USe(e,t){let n=e.languageDataAt("commentTokens",t,1);return n.length?n[0]:{}}const bR=50;function q7n(e,{open:t,close:n},r,s){let a=e.sliceDoc(r-bR,r),i=e.sliceDoc(s,s+bR),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*bR?d=f=e.sliceDoc(r,s):(d=e.sliceDoc(r,r+bR),f=e.sliceDoc(s-bR,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 H7n(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 Iwt(e,t,n=t.selection.ranges){let r=n.map(a=>USe(t,a.from).block);if(!r.every(a=>a))return null;let s=n.map((a,i)=>q7n(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 W7n(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=USe(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 Qme=By.define(),Z7n=By.define(),G7n=On.define(),Awt=On.define({combine(e){return Uy(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)})}}),Rwt=wl.define({create(){return Wv.empty},update(e,t){let n=t.state.facet(Awt),r=t.annotation(Qme);if(r){let c=mf.fromTransaction(t,r.selection),u=r.side,d=u==0?e.undone:e.done;return c?d=mB(d,d.length,n.minDepth,c):d=Mwt(d,t.startState.selection),new Wv(u==0?r.rest:d,u==0?d:r.rest)}let s=t.annotation(Z7n);if((s=="full"||s=="before")&&(e=e.isolate()),t.annotation(Pl.addToHistory)===!1)return t.changes.empty?e:e.addMapping(t.changes.desc);let a=mf.fromTransaction(t),i=t.annotation(Pl.time),l=t.annotation(Pl.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 Wv(e.done.map(mf.fromJSON),e.undone.map(mf.fromJSON))}});function Q7n(e={}){return[Rwt,Awt.of(e),Nt.domEventHandlers({beforeinput(t,n){let r=t.inputType=="historyUndo"?Pwt:t.inputType=="historyRedo"?Yme:null;return r?(t.preventDefault(),r(n)):!1}})]}function jH(e,t){return function({state:n,dispatch:r}){if(!t&&n.readOnly)return!1;let s=n.field(Rwt,!1);if(!s)return!1;let a=s.pop(e,n,t);return a?(r(a),!0):!1}}const Pwt=jH(0,!1),Yme=jH(1,!1),Y7n=jH(0,!0),K7n=jH(1,!0);class mf{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 mf(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 mf(t.changes&&Al.fromJSON(t.changes),[],t.mapped&&sy.fromJSON(t.mapped),t.startSelection&&vt.fromJSON(t.startSelection),t.selectionsAfter.map(vt.fromJSON))}static fromTransaction(t,n){let r=Uh;for(let s of t.startState.facet(G7n)){let a=s(t);a.length&&(r=r.concat(a))}return!r.length&&t.changes.empty?null:new mf(t.changes.invert(t.startState.doc),r,void 0,n||t.startState.selection,Uh)}static selection(t){return new mf(void 0,Uh,void 0,void 0,t)}}function mB(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 X7n(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 J7n(e,t){return e.ranges.length==t.ranges.length&&e.ranges.filter((n,r)=>n.empty!=t.ranges[r].empty).length===0}function $wt(e,t){return e.length?t.length?e.concat(t):e:t}const Uh=[],eBn=200;function Mwt(e,t){if(e.length){let n=e[e.length-1],r=n.selectionsAfter.slice(Math.max(0,n.selectionsAfter.length-eBn));return r.length&&r[r.length-1].eq(t)?e:(r.push(t),mB(e,e.length-1,1e9,n.setSelAfter(r)))}else return[mf.selection([t])]}function tBn(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 ree(e,t){if(!e.length)return e;let n=e.length,r=Uh;for(;n;){let s=nBn(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?[mf.selection(r)]:Uh}function nBn(e,t,n){let r=$wt(e.selectionsAfter.length?e.selectionsAfter.map(l=>l.map(t)):Uh,n);if(!e.changes)return mf.selection(r);let s=e.changes.map(t),a=t.mapDesc(e.changes,!0),i=e.mapped?e.mapped.composeDesc(a):a;return new mf(s,vr.mapEffects(e.effects,t),i,e.startSelection.map(a),r)}const rBn=/^(input\.type|delete)($|\.)/;class Wv{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 Wv(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||rBn.test(r))&&(!l.selectionsAfter.length&&n-this.prevTime<s.newGroupDelay&&s.joinToEvent(a,X7n(l.changes,t.changes))||r=="input.type.compose")?i=mB(i,i.length-1,s.minDepth,new mf(t.changes.compose(l.changes),$wt(vr.mapEffects(t.effects,l.changes),l.effects),l.mapped,l.startSelection,Uh)):i=mB(i,i.length,s.minDepth,t),new Wv(i,Uh,n,r)}addSelection(t,n,r,s){let a=this.done.length?this.done[this.done.length-1].selectionsAfter:Uh;return a.length>0&&n-this.prevTime<s&&r==this.prevUserEvent&&r&&/^select($|\.)/.test(r)&&J7n(a[a.length-1],t)?this:new Wv(Mwt(this.done,t),this.undone,n,r)}addMapping(t){return new Wv(ree(this.done,t),ree(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:Qme.of({side:t,rest:tBn(s),selection:i}),userEvent:t==0?"select.undo":"select.redo",scrollIntoView:!0});if(a.changes){let l=s.length==1?Uh:s.slice(0,s.length-1);return a.mapped&&(l=ree(l,a.mapped)),n.update({changes:a.changes,selection:a.startSelection,effects:a.effects,annotations:Qme.of({side:t,rest:l,selection:i}),filter:!1,userEvent:t==0?"undo":"redo",scrollIntoView:!0})}else return null}}Wv.empty=new Wv(Uh,Uh);const sBn=[{key:"Mod-z",run:Pwt,preventDefault:!0},{key:"Mod-y",mac:"Mod-Shift-z",run:Yme,preventDefault:!0},{linux:"Ctrl-Shift-z",run:Yme,preventDefault:!0},{key:"Mod-u",run:Y7n,preventDefault:!0},{key:"Alt-u",mac:"Mod-Shift-u",run:K7n,preventDefault:!0}];function dI(e,t){return vt.create(e.ranges.map(t),e.mainIndex)}function Hg(e,t){return e.update({selection:t,scrollIntoView:!0,userEvent:"select"})}function Wg({state:e,dispatch:t},n){let r=dI(e.selection,n);return r.eq(e.selection,!0)?!1:(t(Hg(e,r)),!0)}function TH(e,t){return vt.cursor(t?e.to:e.from)}function Dwt(e,t){return Wg(e,n=>n.empty?e.moveByChar(n,t):TH(n,t))}function nd(e){return e.textDirectionAt(e.state.selection.main.head)==Oi.LTR}const Lwt=e=>Dwt(e,!nd(e)),Fwt=e=>Dwt(e,nd(e));function zwt(e,t){return Wg(e,n=>n.empty?e.moveByGroup(n,t):TH(n,t))}const aBn=e=>zwt(e,!nd(e)),iBn=e=>zwt(e,nd(e));function oBn(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 NH(e,t,n){let r=gi(e).resolveInner(t.head),s=n?Dr.closedBy:Dr.openedBy;for(let c=t.head;;){let u=n?r.childAfter(c):r.childBefore(c);if(!u)break;oBn(e,u,s)?r=u:c=n?u.to:u.from}let a=r.type.prop(s),i,l;return a&&(i=n?Hv(e,r.from,1):Hv(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 lBn=e=>Wg(e,t=>NH(e.state,t,!nd(e))),cBn=e=>Wg(e,t=>NH(e.state,t,nd(e)));function Bwt(e,t){return Wg(e,n=>{if(!n.empty)return TH(n,t);let r=e.moveVertically(n,t);return r.head!=n.head?r:e.moveToLineBoundary(n,t)})}const Uwt=e=>Bwt(e,!1),Vwt=e=>Bwt(e,!0);function qwt(e){let t=e.scrollDOM.clientHeight<e.scrollDOM.scrollHeight-2,n=0,r=0,s;if(t){for(let a of e.state.facet(Nt.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 Hwt(e,t){let n=qwt(e),{state:r}=e,s=dI(r.selection,i=>i.empty?e.moveVertically(i,t,n.height):TH(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=Nt.scrollIntoView(s.main.head,{y:"start",yMargin:i.top-c}))}return e.dispatch(Hg(r,s),{effects:a}),!0}const hze=e=>Hwt(e,!1),Kme=e=>Hwt(e,!0);function V1(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 uBn=e=>Wg(e,t=>V1(e,t,!0)),dBn=e=>Wg(e,t=>V1(e,t,!1)),fBn=e=>Wg(e,t=>V1(e,t,!nd(e))),pBn=e=>Wg(e,t=>V1(e,t,nd(e))),hBn=e=>Wg(e,t=>vt.cursor(e.lineBlockAt(t.head).from,1)),mBn=e=>Wg(e,t=>vt.cursor(e.lineBlockAt(t.head).to,-1));function gBn(e,t,n){let r=!1,s=dI(e.selection,a=>{let i=Hv(e,a.head,-1)||Hv(e,a.head,1)||a.head>0&&Hv(e,a.head-1,1)||a.head<e.doc.length&&Hv(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(Hg(e,s)),!0):!1}const vBn=({state:e,dispatch:t})=>gBn(e,t);function Cm(e,t,n){let r=dI(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(Hg(e.state,r)),!0)}function Wwt(e,t){return Cm(e,t,n=>e.moveByChar(n,t))}const Zwt=e=>Wwt(e,!nd(e)),Gwt=e=>Wwt(e,nd(e));function Qwt(e,t){return Cm(e,t,n=>e.moveByGroup(n,t))}const yBn=e=>Qwt(e,!nd(e)),bBn=e=>Qwt(e,nd(e)),xBn=e=>{let t=!nd(e);return Cm(e,t,n=>NH(e.state,n,t))},wBn=e=>{let t=nd(e);return Cm(e,t,n=>NH(e.state,n,t))};function Ywt(e,t){return Cm(e,t,n=>e.moveVertically(n,t))}const Kwt=e=>Ywt(e,!1),Xwt=e=>Ywt(e,!0);function Jwt(e,t){return Cm(e,t,n=>e.moveVertically(n,t,qwt(e).height))}const mze=e=>Jwt(e,!1),gze=e=>Jwt(e,!0),SBn=e=>Cm(e,!0,t=>V1(e,t,!0)),kBn=e=>Cm(e,!1,t=>V1(e,t,!1)),OBn=e=>{let t=!nd(e);return Cm(e,t,n=>V1(e,n,t))},_Bn=e=>{let t=nd(e);return Cm(e,t,n=>V1(e,n,t))},CBn=e=>Cm(e,!1,t=>vt.cursor(e.lineBlockAt(t.head).from)),EBn=e=>Cm(e,!0,t=>vt.cursor(e.lineBlockAt(t.head).to)),vze=({state:e,dispatch:t})=>(t(Hg(e,{anchor:0})),!0),yze=({state:e,dispatch:t})=>(t(Hg(e,{anchor:e.doc.length})),!0),bze=({state:e,dispatch:t})=>(t(Hg(e,{anchor:e.selection.main.anchor,head:0})),!0),xze=({state:e,dispatch:t})=>(t(Hg(e,{anchor:e.selection.main.anchor,head:e.doc.length})),!0),jBn=({state:e,dispatch:t})=>(t(e.update({selection:{anchor:0,head:e.doc.length},userEvent:"select"})),!0),TBn=({state:e,dispatch:t})=>{let n=IH(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},NBn=({state:e,dispatch:t})=>{let n=dI(e.selection,r=>{let s=gi(e),a=s.resolveStack(r.from,1);if(r.empty){let i=s.resolveStack(r.from,-1);i.node.from>=a.node.from&&i.node.to<=a.node.to&&(a=i)}for(let i=a;i;i=i.next){let{node:l}=i;if((l.from<r.from&&l.to>=r.to||l.to>r.to&&l.from<=r.from)&&i.next)return vt.range(l.to,l.from)}return r});return n.eq(e.selection)?!1:(t(Hg(e,n)),!0)};function e1t(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(Hg(n,vt.create(s,s.length-1))),!0)}const IBn=e=>e1t(e,!1),ABn=e=>e1t(e,!0),RBn=({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(Hg(e,r)),!0):!1};function D3(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"?Nt.announce.of(r.phrase("Selection deleted")):void 0})),!0)}function K6(e,t,n){if(e instanceof Nt)for(let r of e.state.facet(Nt.atomicRanges).map(s=>s(e)))r.between(t,t,(s,a)=>{s<t&&a>t&&(t=n?a:s)});return t}const t1t=(e,t,n)=>D3(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=Mg(l,a.tabSize),d=u%FO(a)||FO(a);for(let f=0;f<d&&l[l.length-1-f]==" ";f++)s--;c=s}else c=kc(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=kc(i.text,c-i.from,!1,!1)+i.from);return c}),Xme=e=>t1t(e,!1,!0),n1t=e=>t1t(e,!0,!1),r1t=(e,t)=>D3(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=kc(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}),s1t=e=>r1t(e,!1),PBn=e=>r1t(e,!0),$Bn=e=>D3(e,t=>{let n=e.lineBlockAt(t.head).to;return t.head<n?n:Math.min(e.state.doc.length,t.head+1)}),MBn=e=>D3(e,t=>{let n=e.moveToLineBoundary(t,!1).head;return t.head>n?n:Math.max(0,t.head-1)}),DBn=e=>D3(e,t=>{let n=e.moveToLineBoundary(t,!0).head;return t.head<n?n:Math.min(e.state.doc.length,t.head+1)}),LBn=({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=e.changeByRange(r=>({changes:{from:r.from,to:r.to,insert:wa.of(["",""])},range:vt.cursor(r.from)}));return t(e.update(n,{scrollIntoView:!0,userEvent:"input"})),!0},FBn=({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:kc(a.text,s-a.from,!1)+a.from,l=s==a.to?s+1:kc(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 IH(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 a1t(e,t,n){if(e.readOnly)return!1;let r=[],s=[];for(let a of IH(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 zBn=({state:e,dispatch:t})=>a1t(e,t,!1),BBn=({state:e,dispatch:t})=>a1t(e,t,!0);function i1t(e,t,n){if(e.readOnly)return!1;let r=[];for(let a of IH(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 UBn=({state:e,dispatch:t})=>i1t(e,t,!1),VBn=({state:e,dispatch:t})=>i1t(e,t,!0),qBn=e=>{if(e.state.readOnly)return!1;let{state:t}=e,n=t.changes(IH(t).map(({from:s,to:a})=>(s>0?s--:a<t.doc.length&&a++,{from:s,to:a}))),r=dI(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 HBn(e,t){if(/\(\)|\[\]|\{\}/.test(e.sliceDoc(t-1,t+1)))return{from:t,to:t};let n=gi(e).resolveInner(t),r=n.childBefore(t),s=n.childAfter(t),a;return r&&s&&r.to<=t&&s.from>=t&&(a=r.type.prop(Dr.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 wze=o1t(!1),WBn=o1t(!0);function o1t(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&&HBn(t,a);e&&(a=i=(i<=l.to?l:t.doc.lineAt(i)).to);let u=new OH(t,{simulateBreak:a,simulateDoubleBreak:!!c}),d=uSe(u,a);for(d==null&&(d=Mg(/^\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=["",hM(t,d)];return c&&f.push(hM(t,u.lineIndent(l.from,-1))),{changes:{from:a,to:i,insert:wa.of(f)},range:vt.cursor(a+1+f[1].length)}});return n(t.update(r,{scrollIntoView:!0,userEvent:"input"})),!0}}function VSe(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 ZBn=({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=Object.create(null),r=new OH(e,{overrideIndentation:a=>{let i=n[a];return i??-1}}),s=VSe(e,(a,i,l)=>{let c=uSe(r,a.from);if(c==null)return;/\S/.test(a.text)||(c=0);let u=/^\s*/.exec(a.text)[0],d=hM(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},l1t=({state:e,dispatch:t})=>e.readOnly?!1:(t(e.update(VSe(e,(n,r)=>{r.push({from:n.from,insert:e.facet(lI)})}),{userEvent:"input.indent"})),!0),c1t=({state:e,dispatch:t})=>e.readOnly?!1:(t(e.update(VSe(e,(n,r)=>{let s=/^\s*/.exec(n.text)[0];if(!s)return;let a=Mg(s,e.tabSize),i=0,l=hM(e,Math.max(0,a-FO(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),GBn=e=>(e.setTabFocusMode(),!0),QBn=[{key:"Ctrl-b",run:Lwt,shift:Zwt,preventDefault:!0},{key:"Ctrl-f",run:Fwt,shift:Gwt},{key:"Ctrl-p",run:Uwt,shift:Kwt},{key:"Ctrl-n",run:Vwt,shift:Xwt},{key:"Ctrl-a",run:hBn,shift:CBn},{key:"Ctrl-e",run:mBn,shift:EBn},{key:"Ctrl-d",run:n1t},{key:"Ctrl-h",run:Xme},{key:"Ctrl-k",run:$Bn},{key:"Ctrl-Alt-h",run:s1t},{key:"Ctrl-o",run:LBn},{key:"Ctrl-t",run:FBn},{key:"Ctrl-v",run:Kme}],YBn=[{key:"ArrowLeft",run:Lwt,shift:Zwt,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:aBn,shift:yBn,preventDefault:!0},{mac:"Cmd-ArrowLeft",run:fBn,shift:OBn,preventDefault:!0},{key:"ArrowRight",run:Fwt,shift:Gwt,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:iBn,shift:bBn,preventDefault:!0},{mac:"Cmd-ArrowRight",run:pBn,shift:_Bn,preventDefault:!0},{key:"ArrowUp",run:Uwt,shift:Kwt,preventDefault:!0},{mac:"Cmd-ArrowUp",run:vze,shift:bze},{mac:"Ctrl-ArrowUp",run:hze,shift:mze},{key:"ArrowDown",run:Vwt,shift:Xwt,preventDefault:!0},{mac:"Cmd-ArrowDown",run:yze,shift:xze},{mac:"Ctrl-ArrowDown",run:Kme,shift:gze},{key:"PageUp",run:hze,shift:mze},{key:"PageDown",run:Kme,shift:gze},{key:"Home",run:dBn,shift:kBn,preventDefault:!0},{key:"Mod-Home",run:vze,shift:bze},{key:"End",run:uBn,shift:SBn,preventDefault:!0},{key:"Mod-End",run:yze,shift:xze},{key:"Enter",run:wze,shift:wze},{key:"Mod-a",run:jBn},{key:"Backspace",run:Xme,shift:Xme,preventDefault:!0},{key:"Delete",run:n1t,preventDefault:!0},{key:"Mod-Backspace",mac:"Alt-Backspace",run:s1t,preventDefault:!0},{key:"Mod-Delete",mac:"Alt-Delete",run:PBn,preventDefault:!0},{mac:"Mod-Backspace",run:MBn,preventDefault:!0},{mac:"Mod-Delete",run:DBn,preventDefault:!0}].concat(QBn.map(e=>({mac:e.key,run:e.run,shift:e.shift}))),KBn=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:lBn,shift:xBn},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:cBn,shift:wBn},{key:"Alt-ArrowUp",run:zBn},{key:"Shift-Alt-ArrowUp",run:UBn},{key:"Alt-ArrowDown",run:BBn},{key:"Shift-Alt-ArrowDown",run:VBn},{key:"Mod-Alt-ArrowUp",run:IBn},{key:"Mod-Alt-ArrowDown",run:ABn},{key:"Escape",run:RBn},{key:"Mod-Enter",run:WBn},{key:"Alt-l",mac:"Ctrl-l",run:TBn},{key:"Mod-i",run:NBn,preventDefault:!0},{key:"Mod-[",run:c1t},{key:"Mod-]",run:l1t},{key:"Mod-Alt-\\",run:ZBn},{key:"Shift-Mod-k",run:qBn},{key:"Shift-Mod-\\",run:vBn},{key:"Mod-/",run:z7n},{key:"Alt-A",run:U7n},{key:"Ctrl-m",mac:"Shift-Alt-m",run:GBn}].concat(YBn),XBn={key:"Tab",run:l1t,shift:c1t},Sze=typeof String.prototype.normalize=="function"?e=>e.normalize("NFKD"):e=>e;class Nx{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(Sze(l)):Sze,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 of(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=H1e(t),r=this.bufferStart+this.bufferPos;this.bufferPos+=Pv(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"&&(Nx.prototype[Symbol.iterator]=function(){return this});const u1t={from:-1,to:-1,match:/.*/.exec(""),precise:!0},qSe="gm"+(/x/.unicode==null?"":"u");class d1t{constructor(t,n,r,s=0,a=t.length){if(this.text=t,this.to=a,this.curLine="",this.done=!1,this.value=u1t,/\\[sWDnr]|\n|\r|\[\^/.test(n))return new f1t(t,n,r,s,a);this.re=new RegExp(n,qSe+(r?.ignoreCase?"i":"")),this.test=r?.test,this.iter=t.iter();let i=t.lineAt(s);this.curLineStart=i.from,this.matchPos=gB(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=gB(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 see=new WeakMap;class Hj{constructor(t,n){this.from=t,this.text=n}get to(){return this.from+this.text.length}static get(t,n,r){let s=see.get(t);if(!s||s.from>=r||s.to<=n){let l=new Hj(n,t.sliceString(n,r));return see.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)),see.set(t,new Hj(i,a)),new Hj(n,a.slice(n-i,r-i))}}class f1t{constructor(t,n,r,s,a){this.text=t,this.to=a,this.done=!1,this.value=u1t,this.matchPos=gB(t,s),this.re=new RegExp(n,qSe+(r?.ignoreCase?"i":"")),this.test=r?.test,this.flat=Hj.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=gB(this.text,s+(r==s?1:0)),this}if(this.flat.to==this.to)return this.done=!0,this;this.flat=Hj.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+this.flat.text.length*2))}}}typeof Symbol<"u"&&(d1t.prototype[Symbol.iterator]=f1t.prototype[Symbol.iterator]=function(){return this});function JBn(e){try{return new RegExp(e,qSe),!0}catch{return!1}}function gB(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 eUn=e=>{let{state:t}=e,n=String(t.doc.lineAt(e.state.selection.main.head).number),{close:r,result:s}=$6n(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))),g=vt.cursor(m.from+Math.max(0,Math.min(p,m.length)));e.dispatch({effects:[r,Nt.scrollIntoView(g.from,{y:"center"})],selection:g})}),!0},tUn={highlightWordAroundCursor:!1,minSelectionLength:1,maxMatches:100,wholeWords:!1},nUn=On.define({combine(e){return Uy(e,tUn,{highlightWordAroundCursor:(t,n)=>t||n,minSelectionLength:Math.min,maxMatches:Math.min})}});function rUn(e){return[lUn,oUn]}const sUn=jn.mark({class:"cm-selectionMatch"}),aUn=jn.mark({class:"cm-selectionMatch cm-selectionMatch-main"});function kze(e,t,n,r){return(n==0||e(t.sliceDoc(n-1,n))!=wo.Word)&&(r==t.doc.length||e(t.sliceDoc(r,r+1))!=wo.Word)}function iUn(e,t,n,r){return e(t.sliceDoc(n,n+1))==wo.Word&&e(t.sliceDoc(r-1,r))==wo.Word}const oUn=Co.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(nUn),{state:n}=e,r=n.selection;if(r.ranges.length>1)return jn.none;let s=r.main,a,i=null;if(s.empty){if(!t.highlightWordAroundCursor)return jn.none;let c=n.wordAt(s.head);if(!c)return jn.none;i=n.charCategorizer(s.head),a=n.sliceDoc(c.from,c.to)}else{let c=s.to-s.from;if(c<t.minSelectionLength||c>200)return jn.none;if(t.wholeWords){if(a=n.sliceDoc(s.from,s.to),i=n.charCategorizer(s.head),!(kze(i,n,s.from,s.to)&&iUn(i,n,s.from,s.to)))return jn.none}else if(a=n.sliceDoc(s.from,s.to),!a)return jn.none}let l=[];for(let c of e.visibleRanges){let u=new Nx(n.doc,a,c.from,c.to);for(;!u.next().done;){let{from:d,to:f}=u.value;if((!i||kze(i,n,d,f))&&(s.empty&&d<=s.from&&f>=s.to?l.push(aUn.range(d,f)):(d>=s.to||f<=s.from)&&l.push(sUn.range(d,f)),l.length>t.maxMatches))return jn.none}}return jn.set(l)}},{decorations:e=>e.decorations}),lUn=Nt.baseTheme({".cm-selectionMatch":{backgroundColor:"#99ff7780"},".cm-searchMatch .cm-selectionMatch":{backgroundColor:"transparent"}}),cUn=({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 uUn(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 Nx(e.doc,t,r[r.length-1].to);;)if(l.next(),l.done){if(i)return null;l=new Nx(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 dUn=({state:e,dispatch:t})=>{let{ranges:n}=e.selection;if(n.some(a=>a.from===a.to))return cUn({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=uUn(e,r);return s?(t(e.update({selection:e.selection.addRange(vt.range(s.from,s.to),!1),effects:Nt.scrollIntoView(s.to)})),!0):!1},fI=On.define({combine(e){return Uy(e,{top:!1,caseSensitive:!1,literal:!1,regexp:!1,wholeWord:!1,createPanel:t=>new _Un(t),scrollToMatch:t=>Nt.scrollIntoView(t)})}});class p1t{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||JBn(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"?`
|
|
337
|
-
`: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 vUn(this):new hUn(this)}getCursor(t,n=0,r){let s=t.doc?t:cs.create({doc:t});return r==null&&(r=s.doc.length),this.regexp?UE(this,s,n,r):BE(this,s,n,r)}}class h1t{constructor(t){this.spec=t}}function fUn(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 BE(e,t,n,r){let s;return e.wholeWord&&(s=pUn(t.doc,t.charCategorizer(t.selection.main.head))),e.test&&(s=fUn(e.test,t,s)),new Nx(t.doc,e.unquoted,n,r,e.caseSensitive?void 0:a=>a.toLowerCase(),s)}function pUn(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(vB(s,n-a))!=wo.Word||t(yB(s,n-a))!=wo.Word)&&(t(yB(s,r-a))!=wo.Word||t(vB(s,r-a))!=wo.Word))}class hUn extends h1t{constructor(t){super(t)}nextMatch(t,n,r){let s=BE(this.spec,t,r,t.doc.length).nextOverlapping();if(s.done){let a=Math.min(t.doc.length,n+this.spec.unquoted.length);s=BE(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=BE(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=BE(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=BE(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 mUn(e,t,n){return(r,s,a)=>(!n||n(r,s,a))&&e(a[0],t,r,s)}function UE(e,t,n,r){let s;return e.wholeWord&&(s=gUn(t.charCategorizer(t.selection.main.head))),e.test&&(s=mUn(e.test,t,s)),new d1t(t.doc,e.search,{ignoreCase:!e.caseSensitive,test:s},n,r)}function vB(e,t){return e.slice(kc(e,t,!1),t)}function yB(e,t){return e.slice(t,kc(e,t))}function gUn(e){return(t,n,r)=>!r[0].length||(e(vB(r.input,r.index))!=wo.Word||e(yB(r.input,r.index))!=wo.Word)&&(e(yB(r.input,r.index+r[0].length))!=wo.Word||e(vB(r.input,r.index+r[0].length))!=wo.Word)}class vUn extends h1t{nextMatch(t,n,r){let s=UE(this.spec,t,r,t.doc.length).next();return s.done&&(s=UE(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=UE(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=UE(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=UE(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 kM=vr.define(),HSe=vr.define(),Fw=wl.define({create(e){return new aee(Jme(e).create(),null)},update(e,t){for(let n of t.effects)n.is(kM)?e=new aee(n.value.create(),e.panel):n.is(HSe)&&(e=new aee(e.query,n.value?WSe:null));return e},provide:e=>pM.from(e,t=>t.panel)});class aee{constructor(t,n){this.query=t,this.panel=n}}const yUn=jn.mark({class:"cm-searchMatch"}),bUn=jn.mark({class:"cm-searchMatch cm-searchMatch-selected"}),xUn=Co.fromClass(class{constructor(e){this.view=e,this.decorations=this.highlight(e.state.field(Fw))}update(e){let t=e.state.field(Fw);(t!=e.startState.field(Fw)||e.docChanged||e.selectionSet||e.viewportChanged)&&(this.decorations=this.highlight(t))}highlight({query:e,panel:t}){if(!t||!e.spec.valid)return jn.none;let{view:n}=this,r=new Dd;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?bUn:yUn)})}return r.finish()}},{decorations:e=>e.decorations});function L3(e){return t=>{let n=t.state.field(Fw,!1);return n&&n.query.spec.valid?e(t,n):v1t(t)}}const bB=L3((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(fI);return e.dispatch({selection:s,effects:[ZSe(e,r),a.scrollToMatch(s.main,e)],userEvent:"select.search"}),g1t(e),!0}),xB=L3((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(fI);return e.dispatch({selection:a,effects:[ZSe(e,s),i.scrollToMatch(a.main,e)],userEvent:"select.search"}),g1t(e),!0}),wUn=L3((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)}),SUn=({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 Nx(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},Oze=L3((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(Nt.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(ZSe(e,i)),d.push(n.facet(fI).scrollToMatch(c.main,e))),e.dispatch({changes:f,selection:c,effects:d,userEvent:"input.replace"}),!0}),kUn=L3((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:Nt.announce.of(r),userEvent:"input.replace.all"}),!0});function WSe(e){return e.state.facet(fI).createPanel(e)}function Jme(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(fI);return new p1t({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 m1t(e){let t=lSe(e,WSe);return t&&t.dom.querySelector("[main-field]")}function g1t(e){let t=m1t(e);t&&t==e.root.activeElement&&t.select()}const v1t=e=>{let t=e.state.field(Fw,!1);if(t&&t.panel){let n=m1t(e);if(n&&n!=e.root.activeElement){let r=Jme(e.state,t.query.spec);r.valid&&e.dispatch({effects:kM.of(r)}),n.focus(),n.select()}}else e.dispatch({effects:[HSe.of(!0),t?kM.of(Jme(e.state,t.query.spec)):vr.appendConfig.of(EUn)]});return!0},y1t=e=>{let t=e.state.field(Fw,!1);if(!t||!t.panel)return!1;let n=lSe(e,WSe);return n&&n.dom.contains(e.root.activeElement)&&e.focus(),e.dispatch({effects:HSe.of(!1)}),!0},OUn=[{key:"Mod-f",run:v1t,scope:"editor search-panel"},{key:"F3",run:bB,shift:xB,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:bB,shift:xB,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:y1t,scope:"editor search-panel"},{key:"Mod-Shift-l",run:SUn},{key:"Mod-Alt-g",run:eUn},{key:"Mod-d",run:dUn,preventDefault:!0}];class _Un{constructor(t){this.view=t;let n=this.query=t.state.field(Fw).query.spec;this.commit=this.commit.bind(this),this.searchField=di("input",{value:n.search,placeholder:ap(t,"Find"),"aria-label":ap(t,"Find"),class:"cm-textfield",name:"search",form:"","main-field":"true",onchange:this.commit,onkeyup:this.commit}),this.replaceField=di("input",{value:n.replace,placeholder:ap(t,"Replace"),"aria-label":ap(t,"Replace"),class:"cm-textfield",name:"replace",form:"",onchange:this.commit,onkeyup:this.commit}),this.caseField=di("input",{type:"checkbox",name:"case",form:"",checked:n.caseSensitive,onchange:this.commit}),this.reField=di("input",{type:"checkbox",name:"re",form:"",checked:n.regexp,onchange:this.commit}),this.wordField=di("input",{type:"checkbox",name:"word",form:"",checked:n.wholeWord,onchange:this.commit});function r(s,a,i){return di("button",{class:"cm-button",name:s,onclick:a,type:"button"},i)}this.dom=di("div",{onkeydown:s=>this.keydown(s),class:"cm-search"},[this.searchField,r("next",()=>bB(t),[ap(t,"next")]),r("prev",()=>xB(t),[ap(t,"previous")]),r("select",()=>wUn(t),[ap(t,"all")]),di("label",null,[this.caseField,ap(t,"match case")]),di("label",null,[this.reField,ap(t,"regexp")]),di("label",null,[this.wordField,ap(t,"by word")]),...t.state.readOnly?[]:[di("br"),this.replaceField,r("replace",()=>Oze(t),[ap(t,"replace")]),r("replaceAll",()=>kUn(t),[ap(t,"replace all")])],di("button",{name:"close",onclick:()=>y1t(t),"aria-label":ap(t,"close"),type:"button"},["×"])])}commit(){let t=new p1t({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:kM.of(t)}))}keydown(t){H5n(this.view,t,"search-panel")?t.preventDefault():t.keyCode==13&&t.target==this.searchField?(t.preventDefault(),(t.shiftKey?xB:bB)(this.view)):t.keyCode==13&&t.target==this.replaceField&&(t.preventDefault(),Oze(this.view))}update(t){for(let n of t.transactions)for(let r of n.effects)r.is(kM)&&!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(fI).top}}function ap(e,t){return e.state.phrase(t)}const X6=30,J6=/[\s\.,:;?!]/;function ZSe(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-X6),i=Math.min(s,n+X6),l=e.state.sliceDoc(a,i);if(a!=r.from){for(let c=0;c<X6;c++)if(!J6.test(l[c+1])&&J6.test(l[c])){l=l.slice(c);break}}if(i!=s){for(let c=l.length-1;c>l.length-X6;c--)if(!J6.test(l[c-1])&&J6.test(l[c])){l=l.slice(0,c);break}}return Nt.announce.of(`${e.state.phrase("current match")}. ${l} ${e.state.phrase("on line")} ${r.number}.`)}const CUn=Nt.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"}}),EUn=[Fw,eh.low(xUn),CUn];class _ze{constructor(t,n,r){this.from=t,this.to=n,this.diagnostic=r}}class bk{constructor(t,n,r){this.diagnostics=t,this.panel=n,this.selected=r}static init(t,n,r){let s=r.facet(OM).markerFilter;s&&(t=s(t,r));let a=t.slice().sort((d,f)=>d.from-f.from||d.to-f.to),i=new Dd,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((g,y)=>Math.min(g,y.to),f&&f.from>p?f.from:1e8)):(p=f.from,h=f.to,l.push(f),d++);d<a.length;){let g=a[d];if(g.from==p&&(g.to>g.from||g.to==p))l.push(g),d++,h=Math.min(g.to,h);else{h=Math.min(g.from,h);break}}let m=zUn(l);if(l.some(g=>g.from==g.to||g.from==g.to-1&&r.doc.lineAt(g.from).to==g.from))i.add(p,p,jn.widget({widget:new MUn(m),diagnostics:l.slice()}));else{let g=l.reduce((y,b)=>b.markClass?y+" "+b.markClass:y,"");i.add(p,h,jn.mark({class:"cm-lintRange cm-lintRange-"+m+g,diagnostics:l.slice(),inclusiveEnd:l.some(y=>y.to>h)}))}c=h;for(let g=0;g<l.length;g++)l[g].to<=c&&l.splice(g--,1)}let u=i.finish();return new bk(u,n,VT(u))}}function VT(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 _ze(s,a,t||i.diagnostics[0]);else{if(i.diagnostics.indexOf(r.diagnostic)<0)return!1;r=new _ze(r.from,a,r.diagnostic)}}),r}function jUn(e,t){let n=t.pos,r=t.end||n,s=e.state.facet(OM).hideOn(e,n,r);if(s!=null)return s;let a=e.startState.doc.lineAt(t.pos);return!!(e.effects.some(i=>i.is(b1t))||e.changes.touchesRange(a.from,Math.max(a.to,r)))}function TUn(e,t){return e.field(jp,!1)?t:t.concat(vr.appendConfig.of(BUn))}const b1t=vr.define(),GSe=vr.define(),x1t=vr.define(),jp=wl.define({create(){return new bk(jn.none,null,null)},update(e,t){if(t.docChanged&&e.diagnostics.size){let n=e.diagnostics.map(t.changes),r=null,s=e.panel;if(e.selected){let a=t.changes.mapPos(e.selected.from,1);r=VT(n,e.selected.diagnostic,a)||VT(n,null,a)}!n.size&&s&&t.state.facet(OM).autoPanel&&(s=null),e=new bk(n,s,r)}for(let n of t.effects)if(n.is(b1t)){let r=t.state.facet(OM).autoPanel?n.value.length?_M.open:null:e.panel;e=bk.init(n.value,r,t.state)}else n.is(GSe)?e=new bk(e.diagnostics,n.value?_M.open:null,e.selected):n.is(x1t)&&(e=new bk(e.diagnostics,e.panel,n.value));return e},provide:e=>[pM.from(e,t=>t.panel),Nt.decorations.from(e,t=>t.diagnostics)]}),NUn=jn.mark({class:"cm-lintRange cm-lintRange-active"});function IUn(e,t,n){let{diagnostics:r}=e.state.field(jp),s,a=-1,i=-1;r.between(t-(n<0?1:0),t+(n>0?1:0),(c,u,{spec:d})=>{if(t>=c&&t<=u&&(c==u||(t>c||n>0)&&(t<u||n<0)))return s=d.diagnostics,a=c,i=u,!1});let l=e.state.facet(OM).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:AUn(e,s)}}}:null}function AUn(e,t){return di("ul",{class:"cm-tooltip-lint"},t.map(n=>S1t(e,n,!1)))}const RUn=e=>{let t=e.state.field(jp,!1);(!t||!t.panel)&&e.dispatch({effects:TUn(e.state,[GSe.of(!0)])});let n=lSe(e,_M.open);return n&&n.dom.querySelector(".cm-panel-lint ul").focus(),!0},Cze=e=>{let t=e.state.field(jp,!1);return!t||!t.panel?!1:(e.dispatch({effects:GSe.of(!1)}),!0)},PUn=e=>{let t=e.state.field(jp,!1);if(!t)return!1;let n=e.state.selection.main,r=t.diagnostics.iter(n.to+1);return!r.value&&(r=t.diagnostics.iter(0),!r.value||r.from==n.from&&r.to==n.to)?!1:(e.dispatch({selection:{anchor:r.from,head:r.to},scrollIntoView:!0}),!0)},$Un=[{key:"Mod-Shift-m",run:RUn,preventDefault:!0},{key:"F8",run:PUn}],OM=On.define({combine(e){return{sources:e.map(t=>t.source).filter(t=>t!=null),...Uy(e.map(t=>t.config),{delay:750,markerFilter:null,tooltipFilter:null,needsRefresh:null,hideOn:()=>null},{delay:Math.max,markerFilter:Eze,tooltipFilter:Eze,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 Eze(e,t){return e?t?(n,r)=>t(e(n,r),r):e:t}function w1t(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 S1t(e,t,n){var r;let s=n?w1t(t.actions):[];return di("li",{class:"cm-diagnostic cm-diagnostic-"+t.severity},di("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=VT(e.state.field(jp).diagnostics,t);m&&a.apply(e,m.from,m.to)},{name:u}=a,d=s[i]?u.indexOf(s[i]):-1,f=d<0?u:[u.slice(0,d),di("u",u.slice(d,d+1)),u.slice(d+1)],p=a.markClass?" "+a.markClass:"";return di("button",{type:"button",class:"cm-diagnosticAction"+p,onclick:c,onmousedown:c,"aria-label":` Action: ${u}${d<0?"":` (access key "${s[i]})"`}.`},f)}),t.source&&di("div",{class:"cm-diagnosticSource"},t.source))}class MUn extends th{constructor(t){super(),this.sev=t}eq(t){return t.sev==this.sev}toDOM(){return di("span",{class:"cm-lintPoint cm-lintPoint-"+this.sev})}}class jze{constructor(t,n){this.diagnostic=n,this.id="item_"+Math.floor(Math.random()*4294967295).toString(16),this.dom=S1t(t,n,!0),this.dom.id=this.id,this.dom.setAttribute("role","option")}}class _M{constructor(t){this.view=t,this.items=[];let n=s=>{if(s.keyCode==27)Cze(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=w1t(a.actions);for(let l=0;l<i.length;l++)if(i[l].toUpperCase().charCodeAt(0)==s.keyCode){let c=VT(this.view.state.field(jp).diagnostics,a);c&&a.actions[l].apply(t,c.from,c.to)}}else return;s.preventDefault()},r=s=>{for(let a=0;a<this.items.length;a++)this.items[a].dom.contains(s.target)&&this.moveSelection(a)};this.list=di("ul",{tabIndex:0,role:"listbox","aria-label":this.view.state.phrase("Diagnostics"),onkeydown:n,onclick:r}),this.dom=di("div",{class:"cm-panel-lint"},this.list,di("button",{type:"button",name:"close","aria-label":this.view.state.phrase("close"),onclick:()=>Cze(this.view)},"×")),this.update()}get selectedIndex(){let t=this.view.state.field(jp).selected;if(!t)return-1;for(let n=0;n<this.items.length;n++)if(this.items[n].diagnostic==t.diagnostic)return n;return-1}update(){let{diagnostics:t,selected:n}=this.view.state.field(jp),r=0,s=!1,a=null,i=new Set;for(t.between(0,this.view.state.doc.length,(l,c,{spec:u})=>{for(let d of u.diagnostics){if(i.has(d))continue;i.add(d);let f=-1,p;for(let h=r;h<this.items.length;h++)if(this.items[h].diagnostic==d){f=h;break}f<0?(p=new jze(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 jze(this.view,{from:-1,to:-1,severity:"info",message:this.view.state.phrase("No diagnostics")})),s=!0),a?(this.list.setAttribute("aria-activedescendant",a.id),this.view.requestMeasure({key:this,read:()=>({sel:a.dom.getBoundingClientRect(),panel:this.list.getBoundingClientRect()}),write:({sel:l,panel:c})=>{let u=c.height/this.list.offsetHeight;l.top<c.top?this.list.scrollTop-=(c.top-l.top)/u:l.bottom>c.bottom&&(this.list.scrollTop+=(l.bottom-c.bottom)/u)}})):this.selectedIndex<0&&this.list.removeAttribute("aria-activedescendant"),s&&this.sync()}sync(){let t=this.list.firstChild;function n(){let r=t;t=r.nextSibling,r.remove()}for(let r of this.items)if(r.dom.parentNode==this.list){for(;t!=r.dom;)n();t=r.dom.nextSibling}else this.list.insertBefore(r.dom,t);for(;t;)n()}moveSelection(t){if(this.selectedIndex<0)return;let n=this.view.state.field(jp),r=VT(n.diagnostics,this.items[t].diagnostic);r&&this.view.dispatch({selection:{anchor:r.from,head:r.to},scrollIntoView:!0,effects:x1t.of(r)})}static open(t){return new _M(t)}}function DUn(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 eF(e){return DUn(`<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 LUn=Nt.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:eF("#d11")},".cm-lintRange-warning":{backgroundImage:eF("orange")},".cm-lintRange-info":{backgroundImage:eF("#999")},".cm-lintRange-hint":{backgroundImage:eF("#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 FUn(e){return e=="error"?4:e=="warning"?3:e=="info"?2:1}function zUn(e){let t="hint",n=1;for(let r of e){let s=FUn(r.severity);s>n&&(n=s,t=r.severity)}return t}const BUn=[jp,Nt.decorations.compute([jp],e=>{let{selected:t,panel:n}=e.field(jp);return!t||!n||t.from==t.to?jn.none:jn.set([NUn.range(t.from,t.to)])}),R6n(IUn,{hideOn:jUn}),LUn];var Tze=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(Nzn)),t.defaultKeymap!==!1&&(a=a.concat(KBn)),t.searchKeymap!==!1&&(a=a.concat(OUn)),t.historyKeymap!==!1&&(a=a.concat(sBn)),t.foldKeymap!==!1&&(a=a.concat(mFn)),t.completionKeymap!==!1&&(a=a.concat(g0t)),t.lintKeymap!==!1&&(a=a.concat($Un));var i=[];return t.lineNumbers!==!1&&i.push(H6n()),t.highlightActiveLineGutter!==!1&&i.push(G6n()),t.highlightSpecialChars!==!1&&i.push(o6n()),t.history!==!1&&i.push(Q7n()),t.foldGutter!==!1&&i.push(bFn()),t.drawSelection!==!1&&i.push(K5n()),t.dropCursor!==!1&&i.push(n6n()),t.allowMultipleSelections!==!1&&i.push(cs.allowMultipleSelections.of(!0)),t.indentOnInput!==!1&&i.push(oFn()),t.syntaxHighlighting!==!1&&i.push(U1(kFn,{fallback:!0})),t.bracketMatching!==!1&&i.push(NFn()),t.closeBrackets!==!1&&i.push(Czn()),t.autocompletion!==!1&&i.push(m0t()),t.rectangularSelection!==!1&&i.push(w6n()),s!==!1&&i.push(O6n()),t.highlightActiveLine!==!1&&i.push(p6n()),t.highlightSelectionMatches!==!1&&i.push(rUn()),t.tabSize&&typeof t.tabSize=="number"&&i.push(lI.of(" ".repeat(t.tabSize))),i.concat([oI.of(a.flat())]).filter(Boolean)};const UUn="#e5c07b",Nze="#e06c75",VUn="#56b6c2",qUn="#ffffff",I8="#abb2bf",ege="#7d8799",HUn="#61afef",WUn="#98c379",Ize="#d19a66",ZUn="#c678dd",GUn="#21252b",Aze="#2c313a",Rze="#282c34",iee="#353a42",QUn="#3E4451",Pze="#528bff",YUn=Nt.theme({"&":{color:I8,backgroundColor:Rze},".cm-content":{caretColor:Pze},".cm-cursor, .cm-dropCursor":{borderLeftColor:Pze},"&.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection":{backgroundColor:QUn},".cm-panels":{backgroundColor:GUn,color:I8},".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:Rze,color:ege,border:"none"},".cm-activeLineGutter":{backgroundColor:Aze},".cm-foldPlaceholder":{backgroundColor:"transparent",border:"none",color:"#ddd"},".cm-tooltip":{border:"none",backgroundColor:iee},".cm-tooltip .cm-tooltip-arrow:before":{borderTopColor:"transparent",borderBottomColor:"transparent"},".cm-tooltip .cm-tooltip-arrow:after":{borderTopColor:iee,borderBottomColor:iee},".cm-tooltip-autocomplete":{"& > ul > li[aria-selected]":{backgroundColor:Aze,color:I8}}},{dark:!0}),KUn=qg.define([{tag:he.keyword,color:ZUn},{tag:[he.name,he.deleted,he.character,he.propertyName,he.macroName],color:Nze},{tag:[he.function(he.variableName),he.labelName],color:HUn},{tag:[he.color,he.constant(he.name),he.standard(he.name)],color:Ize},{tag:[he.definition(he.name),he.separator],color:I8},{tag:[he.typeName,he.className,he.number,he.changed,he.annotation,he.modifier,he.self,he.namespace],color:UUn},{tag:[he.operator,he.operatorKeyword,he.url,he.escape,he.regexp,he.link,he.special(he.string)],color:VUn},{tag:[he.meta,he.comment],color:ege},{tag:he.strong,fontWeight:"bold"},{tag:he.emphasis,fontStyle:"italic"},{tag:he.strikethrough,textDecoration:"line-through"},{tag:he.link,color:ege,textDecoration:"underline"},{tag:he.heading,fontWeight:"bold",color:Nze},{tag:[he.atom,he.bool,he.special(he.variableName)],color:Ize},{tag:[he.processingInstruction,he.string,he.inserted],color:WUn},{tag:he.invalid,color:qUn}]),XUn=[YUn,U1(KUn)];var JUn=Nt.theme({"&":{backgroundColor:"#fff"}},{dark:!1}),eVn=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,g=[];switch(s&&g.unshift(oI.of([XBn])),m&&(typeof m=="boolean"?g.unshift(Tze()):g.unshift(Tze(m))),p&&g.unshift(v6n(p)),d){case"light":g.push(JUn);break;case"dark":g.push(XUn);break;case"none":break;default:g.push(d);break}return i===!1&&g.push(Nt.editable.of(!1)),c&&g.push(cs.readOnly.of(!0)),[...g]},tVn=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 nVn{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 $ze{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 oee=null,rVn=()=>typeof window>"u"?new $ze:(oee||(oee=new $ze),oee),sVn=Nt.theme({"& .cm-scroller":{height:"100% !important"}}),Mze=null,lee=null;function aVn(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===Mze||(Mze=i,lee=Nt.theme({"&":{height:e,minHeight:t,maxHeight:n,width:r,minWidth:s,maxWidth:a}})),lee}var Dze=By.define(),iVn=200,oVn=[];function lVn(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?oVn: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,g=m===void 0?null:m,y=e.maxHeight,b=y===void 0?null:y,x=e.width,w=x===void 0?null:x,k=e.minWidth,_=k===void 0?null:k,C=e.maxWidth,j=C===void 0?null:C,E=e.placeholder,N=E===void 0?"":E,I=e.editable,A=I===void 0?!0:I,R=e.readOnly,L=R===void 0?!1:R,D=e.indentWithTab,B=D===void 0?!0:D,H=e.basicSetup,F=H===void 0?!0:H,z=e.root,V=e.initialState,M=v.useState(),Q=M[0],q=M[1],$=v.useState(),U=$[0],Z=$[1],K=v.useState(),te=K[0],ne=K[1],J=v.useState(()=>({current:null}))[0],se=v.useState(()=>({current:null}))[0],ie=aVn(h,g,b,w,_,j),Y=Nt.updateListener.of(pe=>{if(pe.docChanged&&typeof r=="function"&&!pe.transactions.some(be=>be.annotation(Dze))){J.current?J.current.reset():(J.current=new nVn(()=>{if(se.current){var be=se.current;se.current=null,be()}J.current=null},iVn),rVn().add(J.current));var le=pe.state.doc,fe=le.toString();r(fe,pe)}s&&s(tVn(pe))}),ee=eVn({theme:f,editable:A,readOnly:L,placeholder:N,indentWithTab:B,basicSetup:F}),ue=[Y,...ie?[ie]:[],sVn,...ee];return i&&typeof i=="function"&&ue.push(Nt.updateListener.of(i)),ue=ue.concat(c),v.useLayoutEffect(()=>{if(Q&&!te){var pe={doc:t,selection:n,extensions:ue},le=V?cs.fromJSON(V.json,pe,V.fields):cs.create(pe);if(ne(le),!U){var fe=new Nt({state:le,parent:Q,root:z});Z(fe),a&&a(fe,le)}}return()=>{U&&(ne(void 0),Z(void 0))}},[Q,te]),v.useEffect(()=>{e.container&&q(e.container)},[e.container]),v.useEffect(()=>()=>{U&&(U.destroy(),Z(void 0)),J.current&&(J.current.cancel(),J.current=null)},[U]),v.useEffect(()=>{u&&U&&U.focus()},[u,U]),v.useEffect(()=>{U&&U.dispatch({effects:vr.reconfigure.of(ue)})},[f,c,h,g,b,w,_,j,N,A,L,B,F,r,i]),v.useEffect(()=>{if(t!==void 0){var pe=U?U.state.doc.toString():"";if(U&&t!==pe){var le=J.current&&!J.current.isDone,fe=()=>{U&&t!==U.state.doc.toString()&&U.dispatch({changes:{from:0,to:U.state.doc.toString().length,insert:t||""},annotations:[Dze.of(!0)]})};le?se.current=fe:fe()}}},[t,U]),{state:te,setState:ne,view:U,setView:Z,container:Q,setContainer:q}}var cVn=["className","value","selection","extensions","onChange","onStatistics","onCreateEditor","onUpdate","autoFocus","theme","height","minHeight","maxHeight","width","minWidth","maxWidth","basicSetup","placeholder","indentWithTab","editable","readOnly","root","initialState"],Xu=v.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,g=e.height,y=e.minHeight,b=e.maxHeight,x=e.width,w=e.minWidth,k=e.maxWidth,_=e.basicSetup,C=e.placeholder,j=e.indentWithTab,E=e.editable,N=e.readOnly,I=e.root,A=e.initialState,R=Nwt(e,cVn),L=v.useRef(null),D=lVn({root:I,value:s,autoFocus:p,theme:m,height:g,minHeight:y,maxHeight:b,width:x,minWidth:w,maxWidth:k,basicSetup:_,placeholder:C,indentWithTab:j,editable:E,readOnly:N,selection:a,onChange:c,onStatistics:u,onCreateEditor:d,onUpdate:f,extensions:l,initialState:A}),B=D.state,H=D.view,F=D.container,z=D.setContainer;v.useImperativeHandle(t,()=>({editor:L.current,state:B,view:H}),[L,F,B,H]);var V=v.useCallback(Q=>{L.current=Q,z(Q)},[z]);if(typeof s!="string")throw new Error("value must be typeof string but got "+typeof s);var M=typeof m=="string"?"cm-theme-"+m:"cm-theme";return o.jsx("div",UO({ref:V,className:""+M+(n?" "+n:"")},R))});Xu.displayName="CodeMirror";const uVn={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 cee=null;function dVn(){return cee||(cee=(async()=>{const[{createHighlighterCore:e},{createJavaScriptRegexEngine:t}]=await Promise.all([mo(()=>import("./core-BTgqVtGn.js"),__vite__mapDeps([0,1,2]),import.meta.url),mo(()=>import("./engine-javascript-CSIo_1eZ.js"),__vite__mapDeps([3,1]),import.meta.url)]);return e({themes:[mo(()=>import("./github-light-DAi9KRSo.js"),[],import.meta.url),mo(()=>import("./github-dark-DHJKELXO.js"),[],import.meta.url)],langs:[mo(()=>import("./javascript-ySlJ1b_l.js"),[],import.meta.url),mo(()=>import("./typescript-Dj6nwHGl.js"),[],import.meta.url),mo(()=>import("./tsx-B6W0miNI.js"),[],import.meta.url),mo(()=>import("./jsx-BAng5TT0.js"),[],import.meta.url),mo(()=>import("./json-BQoSv7ci.js"),[],import.meta.url),mo(()=>import("./bash-atvbtKCR.js"),[],import.meta.url),mo(()=>import("./markdown-UIAJJxZW.js"),[],import.meta.url),mo(()=>import("./python-DhUJRlN_.js"),[],import.meta.url)],engine:t()})})()),cee}async function fVn(e,t){const n=uVn[t?.toLowerCase()];if(!n)return null;const r=await dVn(),{tokens:s}=r.codeToTokens(e,{lang:n,defaultColor:!1,themes:{light:"github-light",dark:"github-dark"}});return s}function pVn(e){return new LO(pSe.define(e))}const k1t=[sg.of({name:"JavaScript",alias:["ecmascript","js","node"],extensions:["js","mjs","cjs"],load(){return mo(()=>Promise.resolve().then(()=>Y6),void 0,import.meta.url).then(e=>e.javascript())}}),sg.of({name:"JSON",alias:["json5"],extensions:["json","map"],load(){return mo(()=>Promise.resolve().then(()=>UFn),void 0,import.meta.url).then(e=>e.json())}}),sg.of({name:"JSX",extensions:["jsx"],load(){return mo(()=>Promise.resolve().then(()=>Y6),void 0,import.meta.url).then(e=>e.javascript({jsx:!0}))}}),sg.of({name:"Markdown",extensions:["md","markdown","mkd"],load(){return mo(()=>Promise.resolve().then(()=>M7n),void 0,import.meta.url).then(e=>e.markdown())}}),sg.of({name:"TSX",extensions:["tsx"],load(){return mo(()=>Promise.resolve().then(()=>Y6),void 0,import.meta.url).then(e=>e.javascript({jsx:!0,typescript:!0}))}}),sg.of({name:"TypeScript",alias:["ts"],extensions:["ts","mts","cts"],load(){return mo(()=>Promise.resolve().then(()=>Y6),void 0,import.meta.url).then(e=>e.javascript({typescript:!0}))}}),sg.of({name:"Shell",alias:["bash","sh","zsh"],extensions:["sh","ksh","bash"],filename:/^PKGBUILD$/,load(){return mo(()=>import("./shell-CjFT_Tl9.js"),[],import.meta.url).then(e=>pVn(e.shell))}})];function hVn(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 mVn(e){const t=hVn(e);return m0t({override:[gVn(t)],defaultKeymap:!0,closeOnBlur:!0,icons:!1})}function gVn(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 g=u.state.sliceDoc(p,p+2)==="}}"?d.label:`${d.label}}}`;u.dispatch({changes:{from:f,to:p,insert:g},selection:{anchor:f+g.length}})}}));return{from:a,options:l,validFor:/^[a-zA-Z0-9_.\[\]]*$/}}}const vVn=/\{\{([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)*)\}\}/g,yVn=jn.mark({class:"cm-variable-highlight"}),Lze=new Txt({regexp:vVn,decoration:()=>yVn}),bVn=Co.fromClass(class{decorations;constructor(e){this.decorations=Lze.createDeco(e)}update(e){this.decorations=Lze.updateDeco(e,this.decorations)}},{decorations:e=>e.decorations}),xVn=bVn;function wVn(){const e=uI({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:[he.className,he.propertyName],color:"var(--neutral6)"},{tag:he.heading,color:"var(--accent3)",fontWeight:"bold"},{tag:[he.heading1,he.heading2,he.heading3,he.heading4,he.heading5,he.heading6],color:"var(--accent3)",fontWeight:"bold"},{tag:he.emphasis,fontStyle:"italic",color:"var(--neutral6)"},{tag:he.strong,fontWeight:"bold",color:"var(--neutral6)"},{tag:he.link,color:"var(--accent3)",textDecoration:"underline"},{tag:he.url,color:"var(--accent3)"},{tag:he.monospace,color:"var(--neutral6)"},{tag:he.strikethrough,textDecoration:"line-through"},{tag:he.quote,fontStyle:"italic",color:"var(--neutral2)"}]}),t=Nt.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 SVn(){const e=Nt.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=qg.define([{tag:[he.comment,he.bracket],color:"var(--neutral2)"},{tag:[he.string,he.meta,he.regexp],color:"var(--accent1)"},{tag:[he.atom,he.bool,he.special(he.variableName)],color:"var(--accent6)"},{tag:[he.keyword,he.operator,he.tagName],color:"var(--accent2)"},{tag:[he.function(he.propertyName),he.propertyName],color:"var(--accent5)"},{tag:[he.definition(he.variableName),he.function(he.variableName),he.className,he.attributeName],color:"var(--accent3)"},{tag:[he.variableName,he.number],color:"var(--accent5)"},{tag:[he.name,he.quote],color:"var(--accent1)"},{tag:he.heading,color:"var(--accent3)",fontWeight:"bold"},{tag:[he.heading1,he.heading2,he.heading3,he.heading4,he.heading5,he.heading6],color:"var(--accent3)",fontWeight:"bold"},{tag:[he.emphasis],fontStyle:"italic",color:"var(--neutral6)"},{tag:[he.strong],fontWeight:"bold",color:"var(--neutral6)"},{tag:he.link,color:"var(--accent3)",textDecoration:"underline"},{tag:he.url,color:"var(--accent3)"},{tag:he.monospace,color:"var(--neutral6)"},{tag:he.strikethrough,textDecoration:"line-through"},{tag:[he.deleted],color:"var(--accent2)"},{tag:he.invalid,color:"var(--error)"},{tag:[he.standard(he.tagName)],color:"var(--accent1)"}]);return[e,U1(t)]}const Jx=()=>{const e=U_().resolvedTheme==="dark";return v.useMemo(()=>e?wVn():SVn(),[e])},kVn=co(X("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"}}),OVn=eh.highest(Nt.editorAttributes.of({style:"outline: none"})),_Vn=eh.highest(Nt.theme({"&":{outline:"none"},"&.cm-focused":{outline:"none"},".cm-scroller":{outline:"none"},".cm-content":{outline:"none"},".cm-content:focus":{outline:"none"}})),CVn=[OVn,_Vn],Wr=v.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},g)=>{const y=Jx(),b=e?JSON.stringify(e,null,2):t??"",x=v.useMemo(()=>{const w=[...CVn];return f&&w.push(Nt.lineWrapping),a==="json"?w.push($p):a==="markdown"&&w.push(zSe({base:BO,codeLanguages:k1t})),i&&a==="markdown"&&w.push(xVn),c&&a==="markdown"&&w.push(mVn(c)),p===!1&&w.push(cs.readOnly.of(!0)),w},[a,i,c,p,f]);return o.jsxs("div",{className:X(kVn({variant:h}),s),...m,children:[r&&o.jsx(Pa,{content:b,className:"absolute top-2 right-2 z-20"}),o.jsx(Xu,{ref:g,value:b,theme:y,extensions:x,onChange:n,editable:p,"aria-label":"Code editor",placeholder:l,height:"100%",style:{height:"100%"},autoFocus:u,basicSetup:{lineNumbers:d}})]})}),EVn=e=>{try{return JSON.stringify(e??{},null,2)}catch{return"{}"}},jVn=({editorClassName:e="h-[240px] max-h-[40vh]",onSaved:t})=>{const n=Jx(),{settings:r,setSettings:s}=sH(),a=r?.tracingOptions,i=v.useMemo(()=>EVn(a),[a]),[l,c]=v.useState(()=>i),u=v.useRef(!1);v.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(Xu,{value:l,onChange:d,theme:n,extensions:[$p],className:X("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"})})]})},TVn=()=>{const[e,t]=v.useState(!1);return o.jsxs(o.Fragment,{children:[o.jsxs(Pn,{children:[o.jsx(An,{asChild:!0,children:o.jsx(ce,{type:"button",variant:"ghost",size:"icon-md","aria-label":"Run Options",onClick:()=>t(!0),children:o.jsx(qe,{children:o.jsx(QV,{})})})}),o.jsx(Rn,{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(Ks,{children:"Configure tracing and debug options for this workflow run"})]}),o.jsx($r,{children:o.jsx(jVn,{onSaved:()=>t(!1)})})]})})]})};function NVn({status:e}){switch(e){case"running":return o.jsx(Xt,{});case"failed":return o.jsx(bs,{className:"text-accent2"});case"canceled":return o.jsx(Rf,{className:"text-neutral3"});case"pending":case"waiting":return o.jsx(fT,{className:"text-neutral3"});case"suspended":return o.jsx(qV,{className:"text-accent3"});case"success":return o.jsx(fa,{className:"text-accent1"});default:return o.jsx(fT,{className:"text-neutral3"})}}function O1t({status:e}){return o.jsxs(Pn,{children:[o.jsx(An,{asChild:!0,children:o.jsx(qe,{"aria-label":e,className:"shrink-0",children:o.jsx(NVn,{status:e})})}),o.jsx(Rn,{children:e})]})}var uee,Fze;function QSe(){if(Fze)return uee;Fze=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([g,y]){d(g)&&f.setNode(g,y)}),Object.values(this._edgeObjs).forEach(function(g){f.hasNode(g.v)&&f.hasNode(g.w)&&f.setEdge(g,p.edge(g))});var h={};function m(g){var y=p.parent(g);return y===void 0||f.hasNode(y)?(h[g]=y,y):y in h?h[y]:m(y)}return this._isCompound&&f.nodes().forEach(g=>f.setParent(g,m(g))),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,g){return h.length>1?p.setEdge(m,g,f):p.setEdge(m,g),g}),this}setEdge(){var d,f,p,h,m=!1,g=arguments[0];typeof g=="object"&&g!==null&&"v"in g?(d=g.v,f=g.w,p=g.name,arguments.length===2&&(h=arguments[1],m=!0)):(d=g,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 g=h;h=m,m=g}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 g=h;h=m,m=g}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 uee=r,uee}var dee,zze;function IVn(){return zze||(zze=1,dee="2.2.4"),dee}var fee,Bze;function AVn(){return Bze||(Bze=1,fee={Graph:QSe(),version:IVn()}),fee}var pee,Uze;function RVn(){if(Uze)return pee;Uze=1;var e=QSe();pee={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 pee}var hee,Vze;function PVn(){if(Vze)return hee;Vze=1,hee=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 hee}var mee,qze;function _1t(){if(qze)return mee;qze=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 mee=e,mee}var gee,Hze;function C1t(){if(Hze)return gee;Hze=1;var e=_1t();gee=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,g=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<g.distance&&(g.distance=b,g.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 gee}var vee,Wze;function $Vn(){if(Wze)return vee;Wze=1;var e=C1t();vee=t;function t(n,r,s){return n.nodes().reduce(function(a,i){return a[i]=e(n,i,r,s),a},{})}return vee}var yee,Zze;function E1t(){if(Zze)return yee;Zze=1,yee=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 yee}var bee,Gze;function MVn(){if(Gze)return bee;Gze=1;var e=E1t();bee=t;function t(n){return e(n).filter(function(r){return r.length>1||r.length===1&&n.hasEdge(r[0],r[0])})}return bee}var xee,Qze;function DVn(){if(Qze)return xee;Qze=1,xee=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],g=f[p],y=h.distance+m.distance;y<g.distance&&(g.distance=y,g.predecessor=m.predecessor)})})}),i}return xee}var wee,Yze;function j1t(){if(Yze)return wee;Yze=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 wee=e,e.CycleException=t,wee}var See,Kze;function LVn(){if(Kze)return See;Kze=1;var e=j1t();See=t;function t(n){try{e(n)}catch(r){if(r instanceof e.CycleException)return!1;throw r}return!0}return See}var kee,Xze;function T1t(){if(Xze)return kee;Xze=1,kee=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 kee}var Oee,Jze;function FVn(){if(Jze)return Oee;Jze=1;var e=T1t();Oee=t;function t(n,r){return e(n,r,"post")}return Oee}var _ee,e8e;function zVn(){if(e8e)return _ee;e8e=1;var e=T1t();_ee=t;function t(n,r){return e(n,r,"pre")}return _ee}var Cee,t8e;function BVn(){if(t8e)return Cee;t8e=1;var e=QSe(),t=_1t();Cee=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 Cee}var Eee,n8e;function UVn(){return n8e||(n8e=1,Eee={components:PVn(),dijkstra:C1t(),dijkstraAll:$Vn(),findCycles:MVn(),floydWarshall:DVn(),isAcyclic:LVn(),postorder:FVn(),preorder:zVn(),prim:BVn(),tarjan:E1t(),topsort:j1t()}),Eee}var jee,r8e;function Lg(){if(r8e)return jee;r8e=1;var e=AVn();return jee={Graph:e.Graph,json:RVn(),alg:UVn(),version:e.version},jee}var Tee,s8e;function VVn(){if(s8e)return Tee;s8e=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 Tee=e,Tee}var Nee,a8e;function qVn(){if(a8e)return Nee;a8e=1;let e=Lg().Graph,t=VVn();Nee=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],g;for(;u.nodeCount();){for(;g=m.dequeue();)a(u,d,f,g);for(;g=h.dequeue();)a(u,d,f,g);if(u.nodeCount()){for(let y=d.length-2;y>0;--y)if(g=d[y].dequeue(),g){p=p.concat(a(u,d,f,g,!0));break}}}return p}function a(u,d,f,p,h){let m=h?[]:void 0;return u.inEdges(p.v).forEach(g=>{let y=u.edge(g),b=u.node(g.v);h&&m.push({v:g.v,w:g.w}),b.out-=y,l(d,f,b)}),u.outEdges(p.v).forEach(g=>{let y=u.edge(g),b=g.w,x=u.node(b);x.in-=y,l(d,f,x)}),u.removeNode(p.v),m}function i(u,d){let f=new e,p=0,h=0;u.nodes().forEach(y=>{f.setNode(y,{v:y,in:0,out:0})}),u.edges().forEach(y=>{let b=f.edge(y.v,y.w)||0,x=d(y),w=b+x;f.setEdge(y.v,y.w,w),h=Math.max(h,f.node(y.v).out+=x),p=Math.max(p,f.node(y.w).in+=x)});let m=c(h+p+3).map(()=>new t),g=p+1;return f.nodes().forEach(y=>{l(m,g,f.node(y))}),{graph:f,buckets:m,zeroIdx:g}}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 Nee}var Iee,i8e;function Ml(){if(i8e)return Iee;i8e=1;let e=Lg().Graph;Iee={addBorderNode:d,addDummyNode:t,applyWithChunking:h,asNonCompoundGraph:r,buildLayerMatrix:l,intersectRect:i,mapValues:C,maxRank:m,normalizeRanks:c,notime:b,partition:g,pick:_,predecessorWeights:a,range:k,removeEmptyRanks:u,simplify:n,successorWeights:s,time:y,uniqueId:w,zipObject:j};function t(E,N,I,A){for(var R=A;E.hasNode(R);)R=w(A);return I.dummy=N,E.setNode(R,I),R}function n(E){let N=new e().setGraph(E.graph());return E.nodes().forEach(I=>N.setNode(I,E.node(I))),E.edges().forEach(I=>{let A=N.edge(I.v,I.w)||{weight:0,minlen:1},R=E.edge(I);N.setEdge(I.v,I.w,{weight:A.weight+R.weight,minlen:Math.max(A.minlen,R.minlen)})}),N}function r(E){let N=new e({multigraph:E.isMultigraph()}).setGraph(E.graph());return E.nodes().forEach(I=>{E.children(I).length||N.setNode(I,E.node(I))}),E.edges().forEach(I=>{N.setEdge(I,E.edge(I))}),N}function s(E){let N=E.nodes().map(I=>{let A={};return E.outEdges(I).forEach(R=>{A[R.w]=(A[R.w]||0)+E.edge(R).weight}),A});return j(E.nodes(),N)}function a(E){let N=E.nodes().map(I=>{let A={};return E.inEdges(I).forEach(R=>{A[R.v]=(A[R.v]||0)+E.edge(R).weight}),A});return j(E.nodes(),N)}function i(E,N){let I=E.x,A=E.y,R=N.x-I,L=N.y-A,D=E.width/2,B=E.height/2;if(!R&&!L)throw new Error("Not possible to find intersection inside of the rectangle");let H,F;return Math.abs(L)*D>Math.abs(R)*B?(L<0&&(B=-B),H=B*R/L,F=B):(R<0&&(D=-D),H=D,F=D*L/R),{x:I+H,y:A+F}}function l(E){let N=k(m(E)+1).map(()=>[]);return E.nodes().forEach(I=>{let A=E.node(I),R=A.rank;R!==void 0&&(N[R][A.order]=I)}),N}function c(E){let N=E.nodes().map(A=>{let R=E.node(A).rank;return R===void 0?Number.MAX_VALUE:R}),I=h(Math.min,N);E.nodes().forEach(A=>{let R=E.node(A);Object.hasOwn(R,"rank")&&(R.rank-=I)})}function u(E){let N=E.nodes().map(D=>E.node(D).rank),I=h(Math.min,N),A=[];E.nodes().forEach(D=>{let B=E.node(D).rank-I;A[B]||(A[B]=[]),A[B].push(D)});let R=0,L=E.graph().nodeRankFactor;Array.from(A).forEach((D,B)=>{D===void 0&&B%L!==0?--R:D!==void 0&&R&&D.forEach(H=>E.node(H).rank+=R)})}function d(E,N,I,A){let R={width:0,height:0};return arguments.length>=4&&(R.rank=I,R.order=A),t(E,"border",R,N)}function f(E,N=p){const I=[];for(let A=0;A<E.length;A+=N){const R=E.slice(A,A+N);I.push(R)}return I}const p=65535;function h(E,N){if(N.length>p){const I=f(N);return E.apply(null,I.map(A=>E.apply(null,A)))}else return E.apply(null,N)}function m(E){const I=E.nodes().map(A=>{let R=E.node(A).rank;return R===void 0?Number.MIN_VALUE:R});return h(Math.max,I)}function g(E,N){let I={lhs:[],rhs:[]};return E.forEach(A=>{N(A)?I.lhs.push(A):I.rhs.push(A)}),I}function y(E,N){let I=Date.now();try{return N()}finally{console.log(E+" time: "+(Date.now()-I)+"ms")}}function b(E,N){return N()}let x=0;function w(E){var N=++x;return E+(""+N)}function k(E,N,I=1){N==null&&(N=E,E=0);let A=L=>L<N;I<0&&(A=L=>N<L);const R=[];for(let L=E;A(L);L+=I)R.push(L);return R}function _(E,N){const I={};for(const A of N)E[A]!==void 0&&(I[A]=E[A]);return I}function C(E,N){let I=N;return typeof N=="string"&&(I=A=>A[N]),Object.entries(E).reduce((A,[R,L])=>(A[R]=I(L,R),A),{})}function j(E,N){return E.reduce((I,A,R)=>(I[A]=N[R],I),{})}return Iee}var Aee,o8e;function HVn(){if(o8e)return Aee;o8e=1;let e=qVn(),t=Ml().uniqueId;Aee={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 Aee}var Ree,l8e;function WVn(){if(l8e)return Ree;l8e=1;let e=Ml();Ree={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,g;for(g=0,++l;l<u;++g,++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),g===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 Ree}var Pee,c8e;function wB(){if(c8e)return Pee;c8e=1;const{applyWithChunking:e}=Ml();Pee={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 Pee}var $ee,u8e;function N1t(){if(u8e)return $ee;u8e=1;var e=Lg().Graph,t=wB().slack;$ee=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 $ee}var Mee,d8e;function ZVn(){if(d8e)return Mee;d8e=1;var e=N1t(),t=wB().slack,n=wB().longestPath,r=Lg().alg.preorder,s=Lg().alg.postorder,a=Ml().simplify;Mee=i,i.initLowLimValues=d,i.initCutValues=l,i.calcCutValue=u,i.leaveEdge=p,i.enterEdge=h,i.exchangeEdges=m;function i(x){x=a(x),n(x);var w=e(x);d(w),l(w,x);for(var k,_;k=p(w);)_=h(w,x,k),m(w,x,k,_)}function l(x,w){var k=s(x,x.nodes());k=k.slice(0,k.length-1),k.forEach(_=>c(x,w,_))}function c(x,w,k){var _=x.node(k),C=_.parent;x.edge(k,C).cutvalue=u(x,w,k)}function u(x,w,k){var _=x.node(k),C=_.parent,j=!0,E=w.edge(k,C),N=0;return E||(j=!1,E=w.edge(C,k)),N=E.weight,w.nodeEdges(k).forEach(I=>{var A=I.v===k,R=A?I.w:I.v;if(R!==C){var L=A===j,D=w.edge(I).weight;if(N+=L?D:-D,y(x,k,R)){var B=x.edge(k,R).cutvalue;N+=L?-B:B}}}),N}function d(x,w){arguments.length<2&&(w=x.nodes()[0]),f(x,{},1,w)}function f(x,w,k,_,C){var j=k,E=x.node(_);return w[_]=!0,x.neighbors(_).forEach(N=>{Object.hasOwn(w,N)||(k=f(x,w,k,N,_))}),E.low=j,E.lim=k++,C?E.parent=C:delete E.parent,k}function p(x){return x.edges().find(w=>x.edge(w).cutvalue<0)}function h(x,w,k){var _=k.v,C=k.w;w.hasEdge(_,C)||(_=k.w,C=k.v);var j=x.node(_),E=x.node(C),N=j,I=!1;j.lim>E.lim&&(N=E,I=!0);var A=w.edges().filter(R=>I===b(x,x.node(R.v),N)&&I!==b(x,x.node(R.w),N));return A.reduce((R,L)=>t(w,L)<t(w,R)?L:R)}function m(x,w,k,_){var C=k.v,j=k.w;x.removeEdge(C,j),x.setEdge(_.v,_.w,{}),d(x),l(x,w),g(x,w)}function g(x,w){var k=x.nodes().find(C=>!w.node(C).parent),_=r(x,k);_=_.slice(1),_.forEach(C=>{var j=x.node(C).parent,E=w.edge(C,j),N=!1;E||(E=w.edge(j,C),N=!0),w.node(C).rank=w.node(j).rank+(N?E.minlen:-E.minlen)})}function y(x,w,k){return x.hasEdge(w,k)}function b(x,w,k){return k.low<=w.lim&&w.lim<=k.lim}return Mee}var Dee,f8e;function GVn(){if(f8e)return Dee;f8e=1;var e=wB(),t=e.longestPath,n=N1t(),r=ZVn();Dee=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 Dee}var Lee,p8e;function QVn(){if(p8e)return Lee;p8e=1,Lee=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 Lee}var Fee,h8e;function YVn(){if(h8e)return Fee;h8e=1;let e=Ml();Fee={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"),g=e.addBorderNode(i,"_bb"),y=i.node(p);i.setParent(m,p),y.borderTop=m,i.setParent(g,p),y.borderBottom=g,h.forEach(b=>{n(i,l,c,u,d,f,b);let x=i.node(b),w=x.borderTop?x.borderTop:b,k=x.borderBottom?x.borderBottom:b,_=x.borderTop?u:2*u,C=w!==k?1:d-f[p]+1;i.setEdge(m,w,{weight:_,minlen:C,nestingEdge:!0}),i.setEdge(k,g,{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 Fee}var zee,m8e;function KVn(){if(m8e)return zee;m8e=1;let e=Ml();zee=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 zee}var Bee,g8e;function XVn(){if(g8e)return Bee;g8e=1,Bee={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 Bee}var Uee,v8e;function JVn(){if(v8e)return Uee;v8e=1;let e=Ml();Uee=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 Uee}var Vee,y8e;function eqn(){if(y8e)return Vee;y8e=1;let e=Ml().zipObject;Vee=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 Vee}var qee,b8e;function tqn(){if(b8e)return qee;b8e=1,qee=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 qee}var Hee,x8e;function nqn(){if(x8e)return Hee;x8e=1;let e=Ml();Hee=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 Hee}var Wee,w8e;function rqn(){if(w8e)return Wee;w8e=1;let e=Ml();Wee=t;function t(s,a){let i=e.partition(s,m=>Object.hasOwn(m,"barycenter")),l=i.lhs,c=i.rhs.sort((m,g)=>g.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 Wee}var Zee,S8e;function sqn(){if(S8e)return Zee;S8e=1;let e=tqn(),t=nqn(),n=rqn();Zee=r;function r(i,l,c,u){let d=i.children(l),f=i.node(l),p=f?f.borderLeft:void 0,h=f?f.borderRight:void 0,m={};p&&(d=d.filter(x=>x!==p&&x!==h));let g=e(i,d);g.forEach(x=>{if(i.children(x.v).length){let w=r(i,x.v,c,u);m[x.v]=w,Object.hasOwn(w,"barycenter")&&a(x,w)}});let y=t(g,c);s(y,m);let b=n(y,u);if(p&&(b.vs=[p,b.vs,h].flat(!0),i.predecessors(p).length)){let x=i.node(i.predecessors(p)[0]),w=i.node(i.predecessors(h)[0]);Object.hasOwn(b,"barycenter")||(b.barycenter=0,b.weight=0),b.barycenter=(b.barycenter*b.weight+x.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 Zee}var Gee,k8e;function aqn(){if(k8e)return Gee;k8e=1;let e=Lg().Graph,t=Ml();Gee=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,g=u.edge(m,d),y=g!==void 0?g.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 Gee}var Qee,O8e;function iqn(){if(O8e)return Qee;O8e=1,Qee=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 Qee}var Yee,_8e;function oqn(){if(_8e)return Yee;_8e=1;let e=JVn(),t=eqn(),n=sqn(),r=aqn(),s=iqn(),a=Lg().Graph,i=Ml();Yee=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"),g=c(f,i.range(h-1,-1,-1),"outEdges"),y=e(f);if(d(f,y),p&&p.disableOptimalOrderHeuristic)return;let b=Number.POSITIVE_INFINITY,x;for(let w=0,k=0;k<4;++w,++k){u(w%2?m:g,w%4>=2),y=i.buildLayerMatrix(f);let _=t(f,y);_<b&&(k=0,x=Object.assign({},y),b=_)}d(f,x)}function c(f,p,h){const m=new Map,g=(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"&&g(b.rank,y),typeof b.minRank=="number"&&typeof b.maxRank=="number")for(let x=b.minRank;x<=b.maxRank;x++)x!==b.rank&&g(x,y)}return p.map(function(y){return r(f,y,h,m.get(y)||[])})}function u(f,p){let h=new a;f.forEach(function(m){let g=m.graph().root,y=n(m,g,h,p);y.vs.forEach((b,x)=>m.node(b).order=x),s(m,h,y.vs)})}function d(f,p){Object.values(p).forEach(h=>h.forEach((m,g)=>f.node(m).order=g))}return Yee}var Kee,C8e;function lqn(){if(C8e)return Kee;C8e=1;let e=Lg().Graph,t=Ml();Kee={positionX:h,findType1Conflicts:n,findType2Conflicts:r,addConflict:a,hasConflict:i,verticalAlignment:l,horizontalCompaction:c,alignCoordinates:f,findSmallestWidthAlignment:d,balance:p};function n(y,b){let x={};function w(k,_){let C=0,j=0,E=k.length,N=_[_.length-1];return _.forEach((I,A)=>{let R=s(y,I),L=R?y.node(R).order:E;(R||I===N)&&(_.slice(j,A+1).forEach(D=>{y.predecessors(D).forEach(B=>{let H=y.node(B),F=H.order;(F<C||L<F)&&!(H.dummy&&y.node(D).dummy)&&a(x,B,D)})}),j=A+1,C=L)}),_}return b.length&&b.reduce(w),x}function r(y,b){let x={};function w(_,C,j,E,N){let I;t.range(C,j).forEach(A=>{I=_[A],y.node(I).dummy&&y.predecessors(I).forEach(R=>{let L=y.node(R);L.dummy&&(L.order<E||L.order>N)&&a(x,R,I)})})}function k(_,C){let j=-1,E,N=0;return C.forEach((I,A)=>{if(y.node(I).dummy==="border"){let R=y.predecessors(I);R.length&&(E=y.node(R[0]).order,w(C,N,A,j,E),N=A,j=E)}w(C,N,C.length,E,_.length)}),C}return b.length&&b.reduce(k),x}function s(y,b){if(y.node(b).dummy)return y.predecessors(b).find(x=>y.node(x).dummy)}function a(y,b,x){if(b>x){let k=b;b=x,x=k}let w=y[b];w||(y[b]=w={}),w[x]=!0}function i(y,b,x){if(b>x){let w=b;b=x,x=w}return!!y[b]&&Object.hasOwn(y[b],x)}function l(y,b,x,w){let k={},_={},C={};return b.forEach(j=>{j.forEach((E,N)=>{k[E]=E,_[E]=E,C[E]=N})}),b.forEach(j=>{let E=-1;j.forEach(N=>{let I=w(N);if(I.length){I=I.sort((R,L)=>C[R]-C[L]);let A=(I.length-1)/2;for(let R=Math.floor(A),L=Math.ceil(A);R<=L;++R){let D=I[R];_[N]===N&&E<C[D]&&!i(x,N,D)&&(_[D]=N,_[N]=k[N]=k[D],E=C[D])}}})}),{root:k,align:_}}function c(y,b,x,w,k){let _={},C=u(y,b,x,k),j=k?"borderLeft":"borderRight";function E(A,R){let L=C.nodes(),D=L.pop(),B={};for(;D;)B[D]?A(D):(B[D]=!0,L.push(D),L=L.concat(R(D))),D=L.pop()}function N(A){_[A]=C.inEdges(A).reduce((R,L)=>Math.max(R,_[L.v]+C.edge(L)),0)}function I(A){let R=C.outEdges(A).reduce((D,B)=>Math.min(D,_[B.w]-C.edge(B)),Number.POSITIVE_INFINITY),L=y.node(A);R!==Number.POSITIVE_INFINITY&&L.borderType!==j&&(_[A]=Math.max(_[A],R))}return E(N,C.predecessors.bind(C)),E(I,C.successors.bind(C)),Object.keys(w).forEach(A=>_[A]=_[x[A]]),_}function u(y,b,x,w){let k=new e,_=y.graph(),C=m(_.nodesep,_.edgesep,w);return b.forEach(j=>{let E;j.forEach(N=>{let I=x[N];if(k.setNode(I),E){var A=x[E],R=k.edge(A,I);k.setEdge(A,I,Math.max(C(y,N,E),R||0))}E=N})}),k}function d(y,b){return Object.values(b).reduce((x,w)=>{let k=Number.NEGATIVE_INFINITY,_=Number.POSITIVE_INFINITY;Object.entries(w).forEach(([j,E])=>{let N=g(y,j)/2;k=Math.max(E+N,k),_=Math.min(E-N,_)});const C=k-_;return C<x[0]&&(x=[C,w]),x},[Number.POSITIVE_INFINITY,null])[1]}function f(y,b){let x=Object.values(b),w=t.applyWithChunking(Math.min,x),k=t.applyWithChunking(Math.max,x);["u","d"].forEach(_=>{["l","r"].forEach(C=>{let j=_+C,E=y[j];if(E===b)return;let N=Object.values(E),I=w-t.applyWithChunking(Math.min,N);C!=="l"&&(I=k-t.applyWithChunking(Math.max,N)),I&&(y[j]=t.mapValues(E,A=>A+I))})})}function p(y,b){return t.mapValues(y.ul,(x,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),x=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(j=>{j==="r"&&(k=k.map(A=>Object.values(A).reverse()));let E=(C==="u"?y.predecessors:y.successors).bind(y),N=l(y,k,x,E),I=c(y,k,N.root,N.align,j==="r");j==="r"&&(I=t.mapValues(I,A=>-A)),w[C+j]=I})});let _=d(y,w);return f(w,_),p(w,y.graph().align)}function m(y,b,x){return(w,k,_)=>{let C=w.node(k),j=w.node(_),E=0,N;if(E+=C.width/2,Object.hasOwn(C,"labelpos"))switch(C.labelpos.toLowerCase()){case"l":N=-C.width/2;break;case"r":N=C.width/2;break}if(N&&(E+=x?N:-N),N=0,E+=(C.dummy?b:y)/2,E+=(j.dummy?b:y)/2,E+=j.width/2,Object.hasOwn(j,"labelpos"))switch(j.labelpos.toLowerCase()){case"l":N=j.width/2;break;case"r":N=-j.width/2;break}return N&&(E+=x?N:-N),N=0,E}}function g(y,b){return y.node(b).width}return Kee}var Xee,E8e;function cqn(){if(E8e)return Xee;E8e=1;let e=Ml(),t=lqn().positionX;Xee=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 Xee}var Jee,j8e;function uqn(){if(j8e)return Jee;j8e=1;let e=HVn(),t=WVn(),n=GVn(),r=Ml().normalizeRanks,s=QVn(),a=Ml().removeEmptyRanks,i=YVn(),l=KVn(),c=XVn(),u=oqn(),d=cqn(),f=Ml(),p=Lg().Graph;Jee=h;function h($,U){let Z=U&&U.debugTiming?f.time:f.notime;Z("layout",()=>{let K=Z(" buildLayoutGraph",()=>E($));Z(" runLayout",()=>m(K,Z,U)),Z(" updateInputGraph",()=>g($,K))})}function m($,U,Z){U(" makeSpaceForEdgeLabels",()=>N($)),U(" removeSelfEdges",()=>z($)),U(" acyclic",()=>e.run($)),U(" nestingGraph.run",()=>i.run($)),U(" rank",()=>n(f.asNonCompoundGraph($))),U(" injectEdgeLabelProxies",()=>I($)),U(" removeEmptyRanks",()=>a($)),U(" nestingGraph.cleanup",()=>i.cleanup($)),U(" normalizeRanks",()=>r($)),U(" assignRankMinMax",()=>A($)),U(" removeEdgeLabelProxies",()=>R($)),U(" normalize.run",()=>t.run($)),U(" parentDummyChains",()=>s($)),U(" addBorderSegments",()=>l($)),U(" order",()=>u($,Z)),U(" insertSelfEdges",()=>V($)),U(" adjustCoordinateSystem",()=>c.adjust($)),U(" position",()=>d($)),U(" positionSelfEdges",()=>M($)),U(" removeBorderNodes",()=>F($)),U(" normalize.undo",()=>t.undo($)),U(" fixupEdgeLabelCoords",()=>B($)),U(" undoCoordinateSystem",()=>c.undo($)),U(" translateGraph",()=>L($)),U(" assignNodeIntersects",()=>D($)),U(" reversePoints",()=>H($)),U(" acyclic.undo",()=>e.undo($))}function g($,U){$.nodes().forEach(Z=>{let K=$.node(Z),te=U.node(Z);K&&(K.x=te.x,K.y=te.y,K.rank=te.rank,U.children(Z).length&&(K.width=te.width,K.height=te.height))}),$.edges().forEach(Z=>{let K=$.edge(Z),te=U.edge(Z);K.points=te.points,Object.hasOwn(te,"x")&&(K.x=te.x,K.y=te.y)}),$.graph().width=U.graph().width,$.graph().height=U.graph().height}let y=["nodesep","edgesep","ranksep","marginx","marginy"],b={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},x=["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"},j=["labelpos"];function E($){let U=new p({multigraph:!0,compound:!0}),Z=q($.graph());return U.setGraph(Object.assign({},b,Q(Z,y),f.pick(Z,x))),$.nodes().forEach(K=>{let te=q($.node(K));const ne=Q(te,w);Object.keys(k).forEach(J=>{ne[J]===void 0&&(ne[J]=k[J])}),U.setNode(K,ne),U.setParent(K,$.parent(K))}),$.edges().forEach(K=>{let te=q($.edge(K));U.setEdge(K,Object.assign({},C,Q(te,_),f.pick(te,j)))}),U}function N($){let U=$.graph();U.ranksep/=2,$.edges().forEach(Z=>{let K=$.edge(Z);K.minlen*=2,K.labelpos.toLowerCase()!=="c"&&(U.rankdir==="TB"||U.rankdir==="BT"?K.width+=K.labeloffset:K.height+=K.labeloffset)})}function I($){$.edges().forEach(U=>{let Z=$.edge(U);if(Z.width&&Z.height){let K=$.node(U.v),ne={rank:($.node(U.w).rank-K.rank)/2+K.rank,e:U};f.addDummyNode($,"edge-proxy",ne,"_ep")}})}function A($){let U=0;$.nodes().forEach(Z=>{let K=$.node(Z);K.borderTop&&(K.minRank=$.node(K.borderTop).rank,K.maxRank=$.node(K.borderBottom).rank,U=Math.max(U,K.maxRank))}),$.graph().maxRank=U}function R($){$.nodes().forEach(U=>{let Z=$.node(U);Z.dummy==="edge-proxy"&&($.edge(Z.e).labelRank=Z.rank,$.removeNode(U))})}function L($){let U=Number.POSITIVE_INFINITY,Z=0,K=Number.POSITIVE_INFINITY,te=0,ne=$.graph(),J=ne.marginx||0,se=ne.marginy||0;function ie(Y){let ee=Y.x,ue=Y.y,pe=Y.width,le=Y.height;U=Math.min(U,ee-pe/2),Z=Math.max(Z,ee+pe/2),K=Math.min(K,ue-le/2),te=Math.max(te,ue+le/2)}$.nodes().forEach(Y=>ie($.node(Y))),$.edges().forEach(Y=>{let ee=$.edge(Y);Object.hasOwn(ee,"x")&&ie(ee)}),U-=J,K-=se,$.nodes().forEach(Y=>{let ee=$.node(Y);ee.x-=U,ee.y-=K}),$.edges().forEach(Y=>{let ee=$.edge(Y);ee.points.forEach(ue=>{ue.x-=U,ue.y-=K}),Object.hasOwn(ee,"x")&&(ee.x-=U),Object.hasOwn(ee,"y")&&(ee.y-=K)}),ne.width=Z-U+J,ne.height=te-K+se}function D($){$.edges().forEach(U=>{let Z=$.edge(U),K=$.node(U.v),te=$.node(U.w),ne,J;Z.points?(ne=Z.points[0],J=Z.points[Z.points.length-1]):(Z.points=[],ne=te,J=K),Z.points.unshift(f.intersectRect(K,ne)),Z.points.push(f.intersectRect(te,J))})}function B($){$.edges().forEach(U=>{let Z=$.edge(U);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(U=>{let Z=$.edge(U);Z.reversed&&Z.points.reverse()})}function F($){$.nodes().forEach(U=>{if($.children(U).length){let Z=$.node(U),K=$.node(Z.borderTop),te=$.node(Z.borderBottom),ne=$.node(Z.borderLeft[Z.borderLeft.length-1]),J=$.node(Z.borderRight[Z.borderRight.length-1]);Z.width=Math.abs(J.x-ne.x),Z.height=Math.abs(te.y-K.y),Z.x=ne.x+Z.width/2,Z.y=K.y+Z.height/2}}),$.nodes().forEach(U=>{$.node(U).dummy==="border"&&$.removeNode(U)})}function z($){$.edges().forEach(U=>{if(U.v===U.w){var Z=$.node(U.v);Z.selfEdges||(Z.selfEdges=[]),Z.selfEdges.push({e:U,label:$.edge(U)}),$.removeEdge(U)}})}function V($){var U=f.buildLayerMatrix($);U.forEach(Z=>{var K=0;Z.forEach((te,ne)=>{var J=$.node(te);J.order=ne+K,(J.selfEdges||[]).forEach(se=>{f.addDummyNode($,"selfedge",{width:se.label.width,height:se.label.height,rank:J.rank,order:ne+ ++K,e:se.e,label:se.label},"_se")}),delete J.selfEdges})})}function M($){$.nodes().forEach(U=>{var Z=$.node(U);if(Z.dummy==="selfedge"){var K=$.node(Z.e.v),te=K.x+K.width/2,ne=K.y,J=Z.x-te,se=K.height/2;$.setEdge(Z.e,Z.label),$.removeNode(U),Z.label.points=[{x:te+2*J/3,y:ne-se},{x:te+5*J/6,y:ne-se},{x:te+J,y:ne},{x:te+5*J/6,y:ne+se},{x:te+2*J/3,y:ne+se}],Z.label.x=Z.x,Z.label.y=Z.y}})}function Q($,U){return f.mapValues(f.pick($,U),Number)}function q($){var U={};return $&&Object.entries($).forEach(([Z,K])=>{typeof Z=="string"&&(Z=Z.toLowerCase()),U[Z]=K}),U}return Jee}var ete,T8e;function dqn(){if(T8e)return ete;T8e=1;let e=Ml(),t=Lg().Graph;ete={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 ete}var tte,N8e;function fqn(){return N8e||(N8e=1,tte="1.1.8"),tte}var nte,I8e;function pqn(){return I8e||(I8e=1,nte={graphlib:Lg(),layout:uqn(),debug:dqn(),util:{time:Ml().time,notime:Ml().notime},version:fqn()}),nte}var hqn=pqn();const A8e=Fl(hqn);function Ul(e){if(typeof e=="string"||typeof e=="number")return""+e;let t="";if(Array.isArray(e))for(let n=0,r;n<e.length;n++)(r=Ul(e[n]))!==""&&(t+=(t&&" ")+r);else for(let n in e)e[n]&&(t+=(t&&" ")+n);return t}var mqn={value:()=>{}};function AH(){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 A8(n)}function A8(e){this._=e}function gqn(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}})}A8.prototype=AH.prototype={constructor:A8,on:function(e,t){var n=this._,r=gqn(e+"",n),s,a=-1,i=r.length;if(arguments.length<2){for(;++a<i;)if((s=(e=r[a]).type)&&(s=vqn(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]=R8e(n[s],e.name,t);else if(t==null)for(s in n)n[s]=R8e(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 A8(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 vqn(e,t){for(var n=0,r=e.length,s;n<r;++n)if((s=e[n]).name===t)return s.value}function R8e(e,t,n){for(var r=0,s=e.length;r<s;++r)if(e[r].name===t){e[r]=mqn,e=e.slice(0,r).concat(e.slice(r+1));break}return n!=null&&e.push({name:t,value:n}),e}var tge="http://www.w3.org/1999/xhtml";const P8e={svg:"http://www.w3.org/2000/svg",xhtml:tge,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function RH(e){var t=e+="",n=t.indexOf(":");return n>=0&&(t=e.slice(0,n))!=="xmlns"&&(e=e.slice(n+1)),P8e.hasOwnProperty(t)?{space:P8e[t],local:e}:e}function yqn(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===tge&&t.documentElement.namespaceURI===tge?t.createElement(e):t.createElementNS(n,e)}}function bqn(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function I1t(e){var t=RH(e);return(t.local?bqn:yqn)(t)}function xqn(){}function YSe(e){return e==null?xqn:function(){return this.querySelector(e)}}function wqn(e){typeof e!="function"&&(e=YSe(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 Zp(r,this._parents)}function Sqn(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function kqn(){return[]}function A1t(e){return e==null?kqn:function(){return this.querySelectorAll(e)}}function Oqn(e){return function(){return Sqn(e.apply(this,arguments))}}function _qn(e){typeof e=="function"?e=Oqn(e):e=A1t(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 Zp(r,s)}function R1t(e){return function(){return this.matches(e)}}function P1t(e){return function(t){return t.matches(e)}}var Cqn=Array.prototype.find;function Eqn(e){return function(){return Cqn.call(this.children,e)}}function jqn(){return this.firstElementChild}function Tqn(e){return this.select(e==null?jqn:Eqn(typeof e=="function"?e:P1t(e)))}var Nqn=Array.prototype.filter;function Iqn(){return Array.from(this.children)}function Aqn(e){return function(){return Nqn.call(this.children,e)}}function Rqn(e){return this.selectAll(e==null?Iqn:Aqn(typeof e=="function"?e:P1t(e)))}function Pqn(e){typeof e!="function"&&(e=R1t(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 Zp(r,this._parents)}function $1t(e){return new Array(e.length)}function $qn(){return new Zp(this._enter||this._groups.map($1t),this._parents)}function SB(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}SB.prototype={constructor:SB,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 Mqn(e){return function(){return e}}function Dqn(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 SB(e,a[i]);for(;i<c;++i)(l=t[i])&&(s[i]=l)}function Lqn(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 SB(e,a[l]);for(l=0;l<d;++l)(c=t[l])&&u.get(p[l])===c&&(s[l]=c)}function Fqn(e){return e.__data__}function zqn(e,t){if(!arguments.length)return Array.from(this,Fqn);var n=t?Lqn:Dqn,r=this._parents,s=this._groups;typeof e!="function"&&(e=Mqn(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=Bqn(e.call(d,d&&d.__data__,u,r)),m=h.length,g=l[u]=new Array(m),y=i[u]=new Array(m),b=c[u]=new Array(p);n(d,f,g,y,b,h,t);for(var x=0,w=0,k,_;x<m;++x)if(k=g[x]){for(x>=w&&(w=x+1);!(_=y[w])&&++w<m;);k._next=_||null}}return i=new Zp(i,r),i._enter=l,i._exit=c,i}function Bqn(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function Uqn(){return new Zp(this._exit||this._groups.map($1t),this._parents)}function Vqn(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 qqn(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 Zp(l,this._parents)}function Hqn(){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 Wqn(e){e||(e=Zqn);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 Zp(s,this._parents).order()}function Zqn(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 Qqn(){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 Kqn(){let e=0;for(const t of this)++e;return e}function Xqn(){return!this.node()}function Jqn(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 eHn(e){return function(){this.removeAttribute(e)}}function tHn(e){return function(){this.removeAttributeNS(e.space,e.local)}}function nHn(e,t){return function(){this.setAttribute(e,t)}}function rHn(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function sHn(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}}function aHn(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 iHn(e,t){var n=RH(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?tHn:eHn:typeof t=="function"?n.local?aHn:sHn:n.local?rHn:nHn)(n,t))}function M1t(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function oHn(e){return function(){this.style.removeProperty(e)}}function lHn(e,t,n){return function(){this.style.setProperty(e,t,n)}}function cHn(e,t,n){return function(){var r=t.apply(this,arguments);r==null?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function uHn(e,t,n){return arguments.length>1?this.each((t==null?oHn:typeof t=="function"?cHn:lHn)(e,t,n??"")):qT(this.node(),e)}function qT(e,t){return e.style.getPropertyValue(t)||M1t(e).getComputedStyle(e,null).getPropertyValue(t)}function dHn(e){return function(){delete this[e]}}function fHn(e,t){return function(){this[e]=t}}function pHn(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function hHn(e,t){return arguments.length>1?this.each((t==null?dHn:typeof t=="function"?pHn:fHn)(e,t)):this.node()[e]}function D1t(e){return e.trim().split(/^|\s+/)}function KSe(e){return e.classList||new L1t(e)}function L1t(e){this._node=e,this._names=D1t(e.getAttribute("class")||"")}L1t.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 F1t(e,t){for(var n=KSe(e),r=-1,s=t.length;++r<s;)n.add(t[r])}function z1t(e,t){for(var n=KSe(e),r=-1,s=t.length;++r<s;)n.remove(t[r])}function mHn(e){return function(){F1t(this,e)}}function gHn(e){return function(){z1t(this,e)}}function vHn(e,t){return function(){(t.apply(this,arguments)?F1t:z1t)(this,e)}}function yHn(e,t){var n=D1t(e+"");if(arguments.length<2){for(var r=KSe(this.node()),s=-1,a=n.length;++s<a;)if(!r.contains(n[s]))return!1;return!0}return this.each((typeof t=="function"?vHn:t?mHn:gHn)(n,t))}function bHn(){this.textContent=""}function xHn(e){return function(){this.textContent=e}}function wHn(e){return function(){var t=e.apply(this,arguments);this.textContent=t??""}}function SHn(e){return arguments.length?this.each(e==null?bHn:(typeof e=="function"?wHn:xHn)(e)):this.node().textContent}function kHn(){this.innerHTML=""}function OHn(e){return function(){this.innerHTML=e}}function _Hn(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??""}}function CHn(e){return arguments.length?this.each(e==null?kHn:(typeof e=="function"?_Hn:OHn)(e)):this.node().innerHTML}function EHn(){this.nextSibling&&this.parentNode.appendChild(this)}function jHn(){return this.each(EHn)}function THn(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function NHn(){return this.each(THn)}function IHn(e){var t=typeof e=="function"?e:I1t(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function AHn(){return null}function RHn(e,t){var n=typeof e=="function"?e:I1t(e),r=t==null?AHn:typeof t=="function"?t:YSe(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})}function PHn(){var e=this.parentNode;e&&e.removeChild(this)}function $Hn(){return this.each(PHn)}function MHn(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function DHn(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function LHn(e){return this.select(e?DHn:MHn)}function FHn(e){return arguments.length?this.property("__data__",e):this.node().__data__}function zHn(e){return function(t){e.call(this,t,this.__data__)}}function BHn(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 UHn(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 VHn(e,t,n){return function(){var r=this.__on,s,a=zHn(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 qHn(e,t,n){var r=BHn(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?VHn:UHn,s=0;s<a;++s)this.each(l(r[s],t,n));return this}function B1t(e,t,n){var r=M1t(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 HHn(e,t){return function(){return B1t(this,e,t)}}function WHn(e,t){return function(){return B1t(this,e,t.apply(this,arguments))}}function ZHn(e,t){return this.each((typeof t=="function"?WHn:HHn)(e,t))}function*GHn(){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 U1t=[null];function Zp(e,t){this._groups=e,this._parents=t}function F3(){return new Zp([[document.documentElement]],U1t)}function QHn(){return this}Zp.prototype=F3.prototype={constructor:Zp,select:wqn,selectAll:_qn,selectChild:Tqn,selectChildren:Rqn,filter:Pqn,data:zqn,enter:$qn,exit:Uqn,join:Vqn,merge:qqn,selection:QHn,order:Hqn,sort:Wqn,call:Gqn,nodes:Qqn,node:Yqn,size:Kqn,empty:Xqn,each:Jqn,attr:iHn,style:uHn,property:hHn,classed:yHn,text:SHn,html:CHn,raise:jHn,lower:NHn,append:IHn,insert:RHn,remove:$Hn,clone:LHn,datum:FHn,on:qHn,dispatch:ZHn,[Symbol.iterator]:GHn};function Op(e){return typeof e=="string"?new Zp([[document.querySelector(e)]],[document.documentElement]):new Zp([[e]],U1t)}function YHn(e){let t;for(;t=e.sourceEvent;)e=t;return e}function ag(e,t){if(e=YHn(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 KHn={passive:!1},CM={capture:!0,passive:!1};function rte(e){e.stopImmediatePropagation()}function Wj(e){e.preventDefault(),e.stopImmediatePropagation()}function V1t(e){var t=e.document.documentElement,n=Op(e).on("dragstart.drag",Wj,CM);"onselectstart"in t?n.on("selectstart.drag",Wj,CM):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect="none")}function q1t(e,t){var n=e.document.documentElement,r=Op(e).on("dragstart.drag",null);t&&(r.on("click.drag",Wj,CM),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 tF=e=>()=>e;function nge(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}})}nge.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function XHn(e){return!e.ctrlKey&&!e.button}function JHn(){return this.parentNode}function eWn(e,t){return t??{x:e.x,y:e.y}}function tWn(){return navigator.maxTouchPoints||"ontouchstart"in this}function H1t(){var e=XHn,t=JHn,n=eWn,r=tWn,s={},a=AH("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,KHn).on("touchend.drag touchcancel.drag",x).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function h(k,_){if(!(d||!e.call(this,k,_))){var C=w(this,t.call(this,k,_),k,_,"mouse");C&&(Op(k.view).on("mousemove.drag",m,CM).on("mouseup.drag",g,CM),V1t(k.view),rte(k),u=!1,l=k.clientX,c=k.clientY,C("start",k))}}function m(k){if(Wj(k),!u){var _=k.clientX-l,C=k.clientY-c;u=_*_+C*C>f}s.mouse("drag",k)}function g(k){Op(k.view).on("mousemove.drag mouseup.drag",null),q1t(k.view,u),Wj(k),s.mouse("end",k)}function y(k,_){if(e.call(this,k,_)){var C=k.changedTouches,j=t.call(this,k,_),E=C.length,N,I;for(N=0;N<E;++N)(I=w(this,j,k,_,C[N].identifier,C[N]))&&(rte(k),I("start",k,C[N]))}}function b(k){var _=k.changedTouches,C=_.length,j,E;for(j=0;j<C;++j)(E=s[_[j].identifier])&&(Wj(k),E("drag",k,_[j]))}function x(k){var _=k.changedTouches,C=_.length,j,E;for(d&&clearTimeout(d),d=setTimeout(function(){d=null},500),j=0;j<C;++j)(E=s[_[j].identifier])&&(rte(k),E("end",k,_[j]))}function w(k,_,C,j,E,N){var I=a.copy(),A=ag(N||C,_),R,L,D;if((D=n.call(k,new nge("beforestart",{sourceEvent:C,target:p,identifier:E,active:i,x:A[0],y:A[1],dx:0,dy:0,dispatch:I}),j))!=null)return R=D.x-A[0]||0,L=D.y-A[1]||0,function B(H,F,z){var V=A,M;switch(H){case"start":s[E]=B,M=i++;break;case"end":delete s[E],--i;case"drag":A=ag(z||F,_),M=i;break}I.call(H,k,new nge(H,{sourceEvent:F,subject:D,target:p,identifier:E,active:M,x:A[0]+R,y:A[1]+L,dx:A[0]-V[0],dy:A[1]-V[1],dispatch:I}),j)}}return p.filter=function(k){return arguments.length?(e=typeof k=="function"?k:tF(!!k),p):e},p.container=function(k){return arguments.length?(t=typeof k=="function"?k:tF(k),p):t},p.subject=function(k){return arguments.length?(n=typeof k=="function"?k:tF(k),p):n},p.touchable=function(k){return arguments.length?(r=typeof k=="function"?k:tF(!!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 XSe(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function W1t(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function z3(){}var EM=.7,kB=1/EM,Zj="\\s*([+-]?\\d+)\\s*",jM="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",ay="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",nWn=/^#([0-9a-f]{3,8})$/,rWn=new RegExp(`^rgb\\(${Zj},${Zj},${Zj}\\)$`),sWn=new RegExp(`^rgb\\(${ay},${ay},${ay}\\)$`),aWn=new RegExp(`^rgba\\(${Zj},${Zj},${Zj},${jM}\\)$`),iWn=new RegExp(`^rgba\\(${ay},${ay},${ay},${jM}\\)$`),oWn=new RegExp(`^hsl\\(${jM},${ay},${ay}\\)$`),lWn=new RegExp(`^hsla\\(${jM},${ay},${ay},${jM}\\)$`),$8e={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};XSe(z3,VO,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:M8e,formatHex:M8e,formatHex8:cWn,formatHsl:uWn,formatRgb:D8e,toString:D8e});function M8e(){return this.rgb().formatHex()}function cWn(){return this.rgb().formatHex8()}function uWn(){return Z1t(this).formatHsl()}function D8e(){return this.rgb().formatRgb()}function VO(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=nWn.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?L8e(t):n===3?new gf(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?nF(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?nF(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=rWn.exec(e))?new gf(t[1],t[2],t[3],1):(t=sWn.exec(e))?new gf(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=aWn.exec(e))?nF(t[1],t[2],t[3],t[4]):(t=iWn.exec(e))?nF(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=oWn.exec(e))?B8e(t[1],t[2]/100,t[3]/100,1):(t=lWn.exec(e))?B8e(t[1],t[2]/100,t[3]/100,t[4]):$8e.hasOwnProperty(e)?L8e($8e[e]):e==="transparent"?new gf(NaN,NaN,NaN,0):null}function L8e(e){return new gf(e>>16&255,e>>8&255,e&255,1)}function nF(e,t,n,r){return r<=0&&(e=t=n=NaN),new gf(e,t,n,r)}function dWn(e){return e instanceof z3||(e=VO(e)),e?(e=e.rgb(),new gf(e.r,e.g,e.b,e.opacity)):new gf}function rge(e,t,n,r){return arguments.length===1?dWn(e):new gf(e,t,n,r??1)}function gf(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}XSe(gf,rge,W1t(z3,{brighter(e){return e=e==null?kB:Math.pow(kB,e),new gf(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?EM:Math.pow(EM,e),new gf(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new gf(Kk(this.r),Kk(this.g),Kk(this.b),OB(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:F8e,formatHex:F8e,formatHex8:fWn,formatRgb:z8e,toString:z8e}));function F8e(){return`#${Ak(this.r)}${Ak(this.g)}${Ak(this.b)}`}function fWn(){return`#${Ak(this.r)}${Ak(this.g)}${Ak(this.b)}${Ak((isNaN(this.opacity)?1:this.opacity)*255)}`}function z8e(){const e=OB(this.opacity);return`${e===1?"rgb(":"rgba("}${Kk(this.r)}, ${Kk(this.g)}, ${Kk(this.b)}${e===1?")":`, ${e})`}`}function OB(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Kk(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Ak(e){return e=Kk(e),(e<16?"0":"")+e.toString(16)}function B8e(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new fg(e,t,n,r)}function Z1t(e){if(e instanceof fg)return new fg(e.h,e.s,e.l,e.opacity);if(e instanceof z3||(e=VO(e)),!e)return new fg;if(e instanceof fg)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 fg(i,l,c,e.opacity)}function pWn(e,t,n,r){return arguments.length===1?Z1t(e):new fg(e,t,n,r??1)}function fg(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}XSe(fg,pWn,W1t(z3,{brighter(e){return e=e==null?kB:Math.pow(kB,e),new fg(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?EM:Math.pow(EM,e),new fg(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 gf(ste(e>=240?e-240:e+120,s,r),ste(e,s,r),ste(e<120?e+240:e-120,s,r),this.opacity)},clamp(){return new fg(U8e(this.h),rF(this.s),rF(this.l),OB(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=OB(this.opacity);return`${e===1?"hsl(":"hsla("}${U8e(this.h)}, ${rF(this.s)*100}%, ${rF(this.l)*100}%${e===1?")":`, ${e})`}`}}));function U8e(e){return e=(e||0)%360,e<0?e+360:e}function rF(e){return Math.max(0,Math.min(1,e||0))}function ste(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 JSe=e=>()=>e;function hWn(e,t){return function(n){return e+n*t}}function mWn(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 gWn(e){return(e=+e)==1?G1t:function(t,n){return n-t?mWn(t,n,e):JSe(isNaN(t)?n:t)}}function G1t(e,t){var n=t-e;return n?hWn(e,n):JSe(isNaN(e)?t:e)}const _B=(function e(t){var n=gWn(t);function r(s,a){var i=n((s=rge(s)).r,(a=rge(a)).r),l=n(s.g,a.g),c=n(s.b,a.b),u=G1t(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 vWn(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 yWn(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function bWn(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]=dx(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 xWn(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function og(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function wWn(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]=dx(e[s],t[s]):r[s]=t[s];return function(a){for(s in n)r[s]=n[s](a);return r}}var sge=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,ate=new RegExp(sge.source,"g");function SWn(e){return function(){return e}}function kWn(e){return function(t){return e(t)+""}}function Q1t(e,t){var n=sge.lastIndex=ate.lastIndex=0,r,s,a,i=-1,l=[],c=[];for(e=e+"",t=t+"";(r=sge.exec(e))&&(s=ate.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:og(r,s)})),n=ate.lastIndex;return n<t.length&&(a=t.slice(n),l[i]?l[i]+=a:l[++i]=a),l.length<2?c[0]?kWn(c[0].x):SWn(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 dx(e,t){var n=typeof t,r;return t==null||n==="boolean"?JSe(t):(n==="number"?og:n==="string"?(r=VO(t))?(t=r,_B):Q1t:t instanceof VO?_B:t instanceof Date?xWn:yWn(t)?vWn:Array.isArray(t)?bWn:typeof t.valueOf!="function"&&typeof t.toString!="function"||isNaN(t)?wWn:og)(e,t)}function eke(e,t){return e=+e,t=+t,function(n){return Math.round(e*(1-n)+t*n)}}var V8e=180/Math.PI,age={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Y1t(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)*V8e,skewX:Math.atan(c)*V8e,scaleX:i,scaleY:l}}var sF;function OWn(e){const t=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?age:Y1t(t.a,t.b,t.c,t.d,t.e,t.f)}function _Wn(e){return e==null||(sF||(sF=document.createElementNS("http://www.w3.org/2000/svg","g")),sF.setAttribute("transform",e),!(e=sF.transform.baseVal.consolidate()))?age:(e=e.matrix,Y1t(e.a,e.b,e.c,e.d,e.e,e.f))}function K1t(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 g=h.push("translate(",null,t,null,n);m.push({i:g-4,x:og(u,f)},{i:g-2,x:og(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:og(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:og(u,d)}):d&&f.push(s(f)+"skewX("+d+r)}function c(u,d,f,p,h,m){if(u!==f||d!==p){var g=h.push(s(h)+"scale(",null,",",null,")");m.push({i:g-4,x:og(u,f)},{i:g-2,x:og(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,g=p.length,y;++m<g;)f[(y=p[m]).i]=y.x(h);return f.join("")}}}var CWn=K1t(OWn,"px, ","px)","deg)"),EWn=K1t(_Wn,", ",")",")"),jWn=1e-12;function q8e(e){return((e=Math.exp(e))+1/e)/2}function TWn(e){return((e=Math.exp(e))-1/e)/2}function NWn(e){return((e=Math.exp(2*e))-1)/(e+1)}const R8=(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,g=h*h+m*m,y,b;if(g<jWn)b=Math.log(p/u)/t,y=function(j){return[l+j*h,c+j*m,u*Math.exp(t*j*b)]};else{var x=Math.sqrt(g),w=(p*p-u*u+r*g)/(2*u*n*x),k=(p*p-u*u-r*g)/(2*p*n*x),_=Math.log(Math.sqrt(w*w+1)-w),C=Math.log(Math.sqrt(k*k+1)-k);b=(C-_)/t,y=function(j){var E=j*b,N=q8e(_),I=u/(n*x)*(N*NWn(t*E+_)-TWn(_));return[l+I*h,c+I*m,u*N/q8e(t*E+_)]}}return y.duration=b*1e3*t/Math.SQRT2,y}return s.rho=function(a){var i=Math.max(.001,+a),l=i*i,c=l*l;return e(i,l,c)},s})(Math.SQRT2,2,4);function IWn(e,t){t===void 0&&(t=e,e=dx);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 HT=0,DP=0,xR=0,X1t=1e3,CB,LP,EB=0,qO=0,PH=0,TM=typeof performance=="object"&&performance.now?performance:Date,J1t=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function tke(){return qO||(J1t(AWn),qO=TM.now()+PH)}function AWn(){qO=0}function jB(){this._call=this._time=this._next=null}jB.prototype=eSt.prototype={constructor:jB,restart:function(e,t,n){if(typeof e!="function")throw new TypeError("callback is not a function");n=(n==null?tke():+n)+(t==null?0:+t),!this._next&&LP!==this&&(LP?LP._next=this:CB=this,LP=this),this._call=e,this._time=n,ige()},stop:function(){this._call&&(this._call=null,this._time=1/0,ige())}};function eSt(e,t,n){var r=new jB;return r.restart(e,t,n),r}function RWn(){tke(),++HT;for(var e=CB,t;e;)(t=qO-e._time)>=0&&e._call.call(void 0,t),e=e._next;--HT}function H8e(){qO=(EB=TM.now())+PH,HT=DP=0;try{RWn()}finally{HT=0,$Wn(),qO=0}}function PWn(){var e=TM.now(),t=e-EB;t>X1t&&(PH-=t,EB=e)}function $Wn(){for(var e,t=CB,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:CB=n);LP=e,ige(r)}function ige(e){if(!HT){DP&&(DP=clearTimeout(DP));var t=e-qO;t>24?(e<1/0&&(DP=setTimeout(H8e,e-TM.now()-PH)),xR&&(xR=clearInterval(xR))):(xR||(EB=TM.now(),xR=setInterval(PWn,X1t)),HT=1,J1t(H8e))}}function W8e(e,t,n){var r=new jB;return t=t==null?0:+t,r.restart(s=>{r.stop(),e(s+t)},t,n),r}var MWn=AH("start","end","cancel","interrupt"),DWn=[],tSt=0,Z8e=1,oge=2,P8=3,G8e=4,lge=5,$8=6;function $H(e,t,n,r,s,a){var i=e.__transition;if(!i)e.__transition={};else if(n in i)return;LWn(e,n,{name:t,index:r,group:s,on:MWn,tween:DWn,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:tSt})}function nke(e,t){var n=Zg(e,t);if(n.state>tSt)throw new Error("too late; already scheduled");return n}function Vy(e,t){var n=Zg(e,t);if(n.state>P8)throw new Error("too late; already running");return n}function Zg(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function LWn(e,t,n){var r=e.__transition,s;r[t]=n,n.timer=eSt(a,0,n.time);function a(u){n.state=Z8e,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!==Z8e)return c();for(d in r)if(h=r[d],h.name===n.name){if(h.state===P8)return W8e(i);h.state===G8e?(h.state=$8,h.timer.stop(),h.on.call("interrupt",e,e.__data__,h.index,h.group),delete r[d]):+d<t&&(h.state=$8,h.timer.stop(),h.on.call("cancel",e,e.__data__,h.index,h.group),delete r[d])}if(W8e(function(){n.state===P8&&(n.state=G8e,n.timer.restart(l,n.delay,n.time),l(u))}),n.state=oge,n.on.call("start",e,e.__data__,n.index,n.group),n.state===oge){for(n.state=P8,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=lge,1),f=-1,p=s.length;++f<p;)s[f].call(e,d);n.state===lge&&(n.on.call("end",e,e.__data__,n.index,n.group),c())}function c(){n.state=$8,n.timer.stop(),delete r[t];for(var u in r)return;delete e.__transition}}function M8(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>oge&&r.state<lge,r.state=$8,r.timer.stop(),r.on.call(s?"interrupt":"cancel",e,e.__data__,r.index,r.group),delete n[i]}a&&delete e.__transition}}function FWn(e){return this.each(function(){M8(this,e)})}function zWn(e,t){var n,r;return function(){var s=Vy(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 BWn(e,t,n){var r,s;if(typeof n!="function")throw new Error;return function(){var a=Vy(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 UWn(e,t){var n=this._id;if(e+="",arguments.length<2){for(var r=Zg(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?zWn:BWn)(n,e,t))}function rke(e,t,n){var r=e._id;return e.each(function(){var s=Vy(this,r);(s.value||(s.value={}))[t]=n.apply(this,arguments)}),function(s){return Zg(s,r).value[t]}}function nSt(e,t){var n;return(typeof t=="number"?og:t instanceof VO?_B:(n=VO(t))?(t=n,_B):Q1t)(e,t)}function VWn(e){return function(){this.removeAttribute(e)}}function qWn(e){return function(){this.removeAttributeNS(e.space,e.local)}}function HWn(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 WWn(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 ZWn(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 GWn(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 QWn(e,t){var n=RH(e),r=n==="transform"?EWn:nSt;return this.attrTween(e,typeof t=="function"?(n.local?GWn:ZWn)(n,r,rke(this,"attr."+e,t)):t==null?(n.local?qWn:VWn)(n):(n.local?WWn:HWn)(n,r,t))}function YWn(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function KWn(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function XWn(e,t){var n,r;function s(){var a=t.apply(this,arguments);return a!==r&&(n=(r=a)&&KWn(e,a)),n}return s._value=t,s}function JWn(e,t){var n,r;function s(){var a=t.apply(this,arguments);return a!==r&&(n=(r=a)&&YWn(e,a)),n}return s._value=t,s}function eZn(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=RH(e);return this.tween(n,(r.local?XWn:JWn)(r,t))}function tZn(e,t){return function(){nke(this,e).delay=+t.apply(this,arguments)}}function nZn(e,t){return t=+t,function(){nke(this,e).delay=t}}function rZn(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?tZn:nZn)(t,e)):Zg(this.node(),t).delay}function sZn(e,t){return function(){Vy(this,e).duration=+t.apply(this,arguments)}}function aZn(e,t){return t=+t,function(){Vy(this,e).duration=t}}function iZn(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?sZn:aZn)(t,e)):Zg(this.node(),t).duration}function oZn(e,t){if(typeof t!="function")throw new Error;return function(){Vy(this,e).ease=t}}function lZn(e){var t=this._id;return arguments.length?this.each(oZn(t,e)):Zg(this.node(),t).ease}function cZn(e,t){return function(){var n=t.apply(this,arguments);if(typeof n!="function")throw new Error;Vy(this,e).ease=n}}function uZn(e){if(typeof e!="function")throw new Error;return this.each(cZn(this._id,e))}function dZn(e){typeof e!="function"&&(e=R1t(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 Ix(r,this._parents,this._name,this._id)}function fZn(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 Ix(i,this._parents,this._name,this._id)}function pZn(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 hZn(e,t,n){var r,s,a=pZn(t)?nke:Vy;return function(){var i=a(this,e),l=i.on;l!==r&&(s=(r=l).copy()).on(t,n),i.on=s}}function mZn(e,t){var n=this._id;return arguments.length<2?Zg(this.node(),n).on.on(e):this.each(hZn(n,e,t))}function gZn(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function vZn(){return this.on("end.remove",gZn(this._id))}function yZn(e){var t=this._name,n=this._id;typeof e!="function"&&(e=YSe(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,$H(u[p],t,n,p,u,Zg(d,n)));return new Ix(a,this._parents,t,n)}function bZn(e){var t=this._name,n=this._id;typeof e!="function"&&(e=A1t(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=Zg(d,n),g=0,y=p.length;g<y;++g)(h=p[g])&&$H(h,t,n,g,p,m);a.push(p),i.push(d)}return new Ix(a,i,t,n)}var xZn=F3.prototype.constructor;function wZn(){return new xZn(this._groups,this._parents)}function SZn(e,t){var n,r,s;return function(){var a=qT(this,e),i=(this.style.removeProperty(e),qT(this,e));return a===i?null:a===n&&i===r?s:s=t(n=a,r=i)}}function rSt(e){return function(){this.style.removeProperty(e)}}function kZn(e,t,n){var r,s=n+"",a;return function(){var i=qT(this,e);return i===s?null:i===r?a:a=t(r=i,n)}}function OZn(e,t,n){var r,s,a;return function(){var i=qT(this,e),l=n(this),c=l+"";return l==null&&(c=l=(this.style.removeProperty(e),qT(this,e))),i===c?null:i===r&&c===s?a:(s=c,a=t(r=i,l))}}function _Zn(e,t){var n,r,s,a="style."+t,i="end."+a,l;return function(){var c=Vy(this,e),u=c.on,d=c.value[a]==null?l||(l=rSt(t)):void 0;(u!==n||s!==d)&&(r=(n=u).copy()).on(i,s=d),c.on=r}}function CZn(e,t,n){var r=(e+="")=="transform"?CWn:nSt;return t==null?this.styleTween(e,SZn(e,r)).on("end.style."+e,rSt(e)):typeof t=="function"?this.styleTween(e,OZn(e,r,rke(this,"style."+e,t))).each(_Zn(this._id,e)):this.styleTween(e,kZn(e,r,t),n).on("end.style."+e,null)}function EZn(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}function jZn(e,t,n){var r,s;function a(){var i=t.apply(this,arguments);return i!==s&&(r=(s=i)&&EZn(e,i,n)),r}return a._value=t,a}function TZn(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,jZn(e,t,n??""))}function NZn(e){return function(){this.textContent=e}}function IZn(e){return function(){var t=e(this);this.textContent=t??""}}function AZn(e){return this.tween("text",typeof e=="function"?IZn(rke(this,"text",e)):NZn(e==null?"":e+""))}function RZn(e){return function(t){this.textContent=e.call(this,t)}}function PZn(e){var t,n;function r(){var s=e.apply(this,arguments);return s!==n&&(t=(n=s)&&RZn(s)),t}return r._value=e,r}function $Zn(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,PZn(e))}function MZn(){for(var e=this._name,t=this._id,n=sSt(),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=Zg(c,t);$H(c,e,n,u,i,{time:d.time+d.delay+d.duration,delay:0,duration:d.duration,ease:d.ease})}return new Ix(r,this._parents,e,n)}function DZn(){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=Vy(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 LZn=0;function Ix(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}function sSt(){return++LZn}var wb=F3.prototype;Ix.prototype={constructor:Ix,select:yZn,selectAll:bZn,selectChild:wb.selectChild,selectChildren:wb.selectChildren,filter:dZn,merge:fZn,selection:wZn,transition:MZn,call:wb.call,nodes:wb.nodes,node:wb.node,size:wb.size,empty:wb.empty,each:wb.each,on:mZn,attr:QWn,attrTween:eZn,style:CZn,styleTween:TZn,text:AZn,textTween:$Zn,remove:vZn,tween:UWn,delay:rZn,duration:iZn,ease:lZn,easeVarying:uZn,end:DZn,[Symbol.iterator]:wb[Symbol.iterator]};function FZn(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var zZn={time:null,delay:0,duration:250,ease:FZn};function BZn(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 UZn(e){var t,n;e instanceof Ix?(t=e._id,e=e._name):(t=sSt(),(n=zZn).time=tke(),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])&&$H(c,e,t,u,i,n||BZn(c,t));return new Ix(r,this._parents,e,t)}F3.prototype.interrupt=FWn;F3.prototype.transition=UZn;const aF=e=>()=>e;function VZn(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 ex(e,t,n){this.k=e,this.x=t,this.y=n}ex.prototype={constructor:ex,scale:function(e){return e===1?this:new ex(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new ex(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 MH=new ex(1,0,0);aSt.prototype=ex.prototype;function aSt(e){for(;!e.__zoom;)if(!(e=e.parentNode))return MH;return e.__zoom}function ite(e){e.stopImmediatePropagation()}function wR(e){e.preventDefault(),e.stopImmediatePropagation()}function qZn(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function HZn(){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 Q8e(){return this.__zoom||MH}function WZn(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function ZZn(){return navigator.maxTouchPoints||"ontouchstart"in this}function GZn(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 iSt(){var e=qZn,t=HZn,n=GZn,r=WZn,s=ZZn,a=[0,1/0],i=[[-1/0,-1/0],[1/0,1/0]],l=250,c=R8,u=AH("start","zoom","end"),d,f,p,h=500,m=150,g=0,y=10;function b(D){D.property("__zoom",Q8e).on("wheel.zoom",E,{passive:!1}).on("mousedown.zoom",N).on("dblclick.zoom",I).filter(s).on("touchstart.zoom",A).on("touchmove.zoom",R).on("touchend.zoom touchcancel.zoom",L).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}b.transform=function(D,B,H,F){var z=D.selection?D.selection():D;z.property("__zoom",Q8e),D!==z?_(D,B,H,F):z.interrupt().each(function(){C(this,arguments).event(F).start().zoom(null,typeof B=="function"?B.apply(this,arguments):B).end()})},b.scaleBy=function(D,B,H,F){b.scaleTo(D,function(){var z=this.__zoom.k,V=typeof B=="function"?B.apply(this,arguments):B;return z*V},H,F)},b.scaleTo=function(D,B,H,F){b.transform(D,function(){var z=t.apply(this,arguments),V=this.__zoom,M=H==null?k(z):typeof H=="function"?H.apply(this,arguments):H,Q=V.invert(M),q=typeof B=="function"?B.apply(this,arguments):B;return n(w(x(V,q),M,Q),z,i)},H,F)},b.translateBy=function(D,B,H,F){b.transform(D,function(){return n(this.__zoom.translate(typeof B=="function"?B.apply(this,arguments):B,typeof H=="function"?H.apply(this,arguments):H),t.apply(this,arguments),i)},null,F)},b.translateTo=function(D,B,H,F,z){b.transform(D,function(){var V=t.apply(this,arguments),M=this.__zoom,Q=F==null?k(V):typeof F=="function"?F.apply(this,arguments):F;return n(MH.translate(Q[0],Q[1]).scale(M.k).translate(typeof B=="function"?-B.apply(this,arguments):-B,typeof H=="function"?-H.apply(this,arguments):-H),V,i)},F,z)};function x(D,B){return B=Math.max(a[0],Math.min(a[1],B)),B===D.k?D:new ex(B,D.x,D.y)}function w(D,B,H){var F=B[0]-H[0]*D.k,z=B[1]-H[1]*D.k;return F===D.x&&z===D.y?D:new ex(D.k,F,z)}function k(D){return[(+D[0][0]+ +D[1][0])/2,(+D[0][1]+ +D[1][1])/2]}function _(D,B,H,F){D.on("start.zoom",function(){C(this,arguments).event(F).start()}).on("interrupt.zoom end.zoom",function(){C(this,arguments).event(F).end()}).tween("zoom",function(){var z=this,V=arguments,M=C(z,V).event(F),Q=t.apply(z,V),q=H==null?k(Q):typeof H=="function"?H.apply(z,V):H,$=Math.max(Q[1][0]-Q[0][0],Q[1][1]-Q[0][1]),U=z.__zoom,Z=typeof B=="function"?B.apply(z,V):B,K=c(U.invert(q).concat($/U.k),Z.invert(q).concat($/Z.k));return function(te){if(te===1)te=Z;else{var ne=K(te),J=$/ne[2];te=new ex(J,q[0]-ne[0]*J,q[1]-ne[1]*J)}M.zoom(null,te)}})}function C(D,B,H){return!H&&D.__zooming||new j(D,B)}function j(D,B){this.that=D,this.args=B,this.active=0,this.sourceEvent=null,this.extent=t.apply(D,B),this.taps=0}j.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,B){return this.mouse&&D!=="mouse"&&(this.mouse[1]=B.invert(this.mouse[0])),this.touch0&&D!=="touch"&&(this.touch0[1]=B.invert(this.touch0[0])),this.touch1&&D!=="touch"&&(this.touch1[1]=B.invert(this.touch1[0])),this.that.__zoom=B,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(D){var B=Op(this.that).datum();u.call(D,this.that,new VZn(D,{sourceEvent:this.sourceEvent,target:b,transform:this.that.__zoom,dispatch:u}),B)}};function E(D,...B){if(!e.apply(this,arguments))return;var H=C(this,B).event(D),F=this.__zoom,z=Math.max(a[0],Math.min(a[1],F.k*Math.pow(2,r.apply(this,arguments)))),V=ag(D);if(H.wheel)(H.mouse[0][0]!==V[0]||H.mouse[0][1]!==V[1])&&(H.mouse[1]=F.invert(H.mouse[0]=V)),clearTimeout(H.wheel);else{if(F.k===z)return;H.mouse=[V,F.invert(V)],M8(this),H.start()}wR(D),H.wheel=setTimeout(M,m),H.zoom("mouse",n(w(x(F,z),H.mouse[0],H.mouse[1]),H.extent,i));function M(){H.wheel=null,H.end()}}function N(D,...B){if(p||!e.apply(this,arguments))return;var H=D.currentTarget,F=C(this,B,!0).event(D),z=Op(D.view).on("mousemove.zoom",q,!0).on("mouseup.zoom",$,!0),V=ag(D,H),M=D.clientX,Q=D.clientY;V1t(D.view),ite(D),F.mouse=[V,this.__zoom.invert(V)],M8(this),F.start();function q(U){if(wR(U),!F.moved){var Z=U.clientX-M,K=U.clientY-Q;F.moved=Z*Z+K*K>g}F.event(U).zoom("mouse",n(w(F.that.__zoom,F.mouse[0]=ag(U,H),F.mouse[1]),F.extent,i))}function $(U){z.on("mousemove.zoom mouseup.zoom",null),q1t(U.view,F.moved),wR(U),F.event(U).end()}}function I(D,...B){if(e.apply(this,arguments)){var H=this.__zoom,F=ag(D.changedTouches?D.changedTouches[0]:D,this),z=H.invert(F),V=H.k*(D.shiftKey?.5:2),M=n(w(x(H,V),F,z),t.apply(this,B),i);wR(D),l>0?Op(this).transition().duration(l).call(_,M,F,D):Op(this).call(b.transform,M,F,D)}}function A(D,...B){if(e.apply(this,arguments)){var H=D.touches,F=H.length,z=C(this,B,D.changedTouches.length===F).event(D),V,M,Q,q;for(ite(D),M=0;M<F;++M)Q=H[M],q=ag(Q,this),q=[q,this.__zoom.invert(q),Q.identifier],z.touch0?!z.touch1&&z.touch0[2]!==q[2]&&(z.touch1=q,z.taps=0):(z.touch0=q,V=!0,z.taps=1+!!d);d&&(d=clearTimeout(d)),V&&(z.taps<2&&(f=q[0],d=setTimeout(function(){d=null},h)),M8(this),z.start())}}function R(D,...B){if(this.__zooming){var H=C(this,B).event(D),F=D.changedTouches,z=F.length,V,M,Q,q;for(wR(D),V=0;V<z;++V)M=F[V],Q=ag(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],U=H.touch0[1],Z=H.touch1[0],K=H.touch1[1],te=(te=Z[0]-$[0])*te+(te=Z[1]-$[1])*te,ne=(ne=K[0]-U[0])*ne+(ne=K[1]-U[1])*ne;M=x(M,Math.sqrt(te/ne)),Q=[($[0]+Z[0])/2,($[1]+Z[1])/2],q=[(U[0]+K[0])/2,(U[1]+K[1])/2]}else if(H.touch0)Q=H.touch0[0],q=H.touch0[1];else return;H.zoom("touch",n(w(M,Q,q),H.extent,i))}}function L(D,...B){if(this.__zooming){var H=C(this,B).event(D),F=D.changedTouches,z=F.length,V,M;for(ite(D),p&&clearTimeout(p),p=setTimeout(function(){p=null},h),V=0;V<z;++V)M=F[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=ag(M,this),Math.hypot(f[0]-M[0],f[1]-M[1])<y)){var Q=Op(this).on("dblclick.zoom");Q&&Q.apply(this,arguments)}}}return b.wheelDelta=function(D){return arguments.length?(r=typeof D=="function"?D:aF(+D),b):r},b.filter=function(D){return arguments.length?(e=typeof D=="function"?D:aF(!!D),b):e},b.touchable=function(D){return arguments.length?(s=typeof D=="function"?D:aF(!!D),b):s},b.extent=function(D){return arguments.length?(t=typeof D=="function"?D:aF([[+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?(g=(D=+D)*D,b):Math.sqrt(g)},b.tapDistance=function(D){return arguments.length?(y=+D,b):y},b}const Sy={error001:()=>"[React Flow]: Seems like you have not used zustand provider as an ancestor. Help: https://reactflow.dev/error#001",error002:()=>"It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.",error003:e=>`Node type "${e}" not found. Using fallback type "default".`,error004:()=>"The React Flow parent container needs a width and a height to render the graph.",error005:()=>"Only child nodes can use a parent extent.",error006:()=>"Can't create edge. An edge needs a source and a target.",error007:e=>`The old edge with id=${e} does not exist.`,error009:e=>`Marker type "${e}" doesn't exist.`,error008:(e,{id:t,sourceHandle:n,targetHandle:r})=>`Couldn't create edge for ${e} handle id: "${e==="source"?n:r}", edge id: ${t}.`,error010:()=>"Handle: No node id found. Make sure to only use a Handle inside a custom Node.",error011:e=>`Edge type "${e}" not found. Using fallback type "default".`,error012:e=>`Node with id "${e}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`,error013:(e="react")=>`It seems that you haven't loaded the styles. Please import '@xyflow/${e}/dist/style.css' or base.css to make sure everything is working properly.`,error014:()=>"useNodeConnections: No node ID found. Call useNodeConnections inside a custom Node or provide a node ID.",error015:()=>"It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs."},NM=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],oSt=["Enter"," ","Escape"],lSt={"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 WT;(function(e){e.Strict="strict",e.Loose="loose"})(WT||(WT={}));var Xk;(function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"})(Xk||(Xk={}));var IM;(function(e){e.Partial="partial",e.Full="full"})(IM||(IM={}));const cSt={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null};var fw;(function(e){e.Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier"})(fw||(fw={}));var AM;(function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"})(AM||(AM={}));var sr;(function(e){e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom"})(sr||(sr={}));const Y8e={[sr.Left]:sr.Right,[sr.Right]:sr.Left,[sr.Top]:sr.Bottom,[sr.Bottom]:sr.Top};function uSt(e){return e===null?null:e?"valid":"invalid"}const dSt=e=>"id"in e&&"source"in e&&"target"in e,QZn=e=>"id"in e&&"position"in e&&!("source"in e)&&!("target"in e),ske=e=>"id"in e&&"internals"in e&&!("source"in e)&&!("target"in e),B3=(e,t=[0,0])=>{const{width:n,height:r}=e0(e),s=e.origin??t,a=n*s[0],i=r*s[1];return{x:e.position.x-a,y:e.position.y-i}},YZn=(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):ske(s)?s:t.nodeLookup.get(s.id));const l=i?TB(i,t.nodeOrigin):{x:0,y:0,x2:0,y2:0};return DH(r,l)},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return LH(n)},U3=(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=DH(n,TB(s)),r=!0)}),r?LH(n):{x:0,y:0,width:0,height:0}},ake=(e,t,[n,r,s]=[0,0,1],a=!1,i=!1)=>{const l={...q3(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,g=RM(l,GT(u)),y=(h??0)*(m??0),b=a&&g>0;(!u.internals.handleBounds||b||g>=y||u.dragging)&&c.push(u)}return c},KZn=(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 XZn(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 JZn({nodes:e,width:t,height:n,panZoom:r,minZoom:s,maxZoom:a},i){if(e.size===0)return Promise.resolve(!0);const l=XZn(e,i),c=U3(l),u=ike(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 fSt({nodeId:e,nextPosition:t,nodeLookup:n,nodeOrigin:r=[0,0],nodeExtent:s,onError:a}){const i=n.get(e),l=i.parentId?n.get(i.parentId):void 0,{x:c,y:u}=l?l.internals.positionAbsolute:{x:0,y:0},d=i.origin??r;let f=i.extent||s;if(i.extent==="parent"&&!i.expandParent)if(!l)a?.("005",Sy.error005());else{const h=l.measured.width,m=l.measured.height;h&&m&&(f=[[c,u],[c+h,u+m]])}else l&&QT(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=QT(f)?HO(t,f,i.measured):t;return(i.measured.width===void 0||i.measured.height===void 0)&&a?.("015",Sy.error015()),{position:{x:p.x-c+(i.measured.width??0)*d[0],y:p.y-u+(i.measured.height??0)*d[1]},positionAbsolute:p}}async function eGn({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(g=>g.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=KZn(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 ZT=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),HO=(e={x:0,y:0},t,n)=>({x:ZT(e.x,t[0][0],t[1][0]-(n?.width??0)),y:ZT(e.y,t[0][1],t[1][1]-(n?.height??0))});function pSt(e,t,n){const{width:r,height:s}=e0(n),{x:a,y:i}=n.internals.positionAbsolute;return HO(e,[[a,i],[a+r,i+s]],t)}const K8e=(e,t,n)=>e<t?ZT(Math.abs(e-t),1,t)/t:e>n?-ZT(Math.abs(e-n),1,t)/t:0,hSt=(e,t,n=15,r=40)=>{const s=K8e(e.x,r,t.width-r)*n,a=K8e(e.y,r,t.height-r)*n;return[s,a]},DH=(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)}),cge=({x:e,y:t,width:n,height:r})=>({x:e,y:t,x2:e+n,y2:t+r}),LH=({x:e,y:t,x2:n,y2:r})=>({x:e,y:t,width:n-e,height:r-t}),GT=(e,t=[0,0])=>{const{x:n,y:r}=ske(e)?e.internals.positionAbsolute:B3(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}},TB=(e,t=[0,0])=>{const{x:n,y:r}=ske(e)?e.internals.positionAbsolute:B3(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)}},mSt=(e,t)=>LH(DH(cge(e),cge(t))),RM=(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)},X8e=e=>yg(e.width)&&yg(e.height)&&yg(e.x)&&yg(e.y),yg=e=>!isNaN(e)&&isFinite(e),tGn=(e,t)=>{},V3=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),q3=({x:e,y:t},[n,r,s],a=!1,i=[1,1])=>{const l={x:(e-n)/s,y:(t-r)/s};return a?V3(l,i):l},NB=({x:e,y:t},[n,r,s])=>({x:e*s+n,y:t*s+r});function oE(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 nGn(e,t,n){if(typeof e=="string"||typeof e=="number"){const r=oE(e,n),s=oE(e,t);return{top:r,right:s,bottom:r,left:s,x:s*2,y:r*2}}if(typeof e=="object"){const r=oE(e.top??e.y??0,n),s=oE(e.bottom??e.y??0,n),a=oE(e.left??e.x??0,t),i=oE(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 rGn(e,t,n,r,s,a){const{x:i,y:l}=NB(e,[t,n,r]),{x:c,y:u}=NB({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 ike=(e,t,n,r,s,a)=>{const i=nGn(a,t,n),l=(t-i.x)/e.width,c=(n-i.y)/e.height,u=Math.min(l,c),d=ZT(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,g=rGn(e,h,m,d,t,n),y={left:Math.min(g.left-i.left,0),top:Math.min(g.top-i.top,0),right:Math.min(g.right-i.right,0),bottom:Math.min(g.bottom-i.bottom,0)};return{x:h-y.left+y.right,y:m-y.top+y.bottom,zoom:d}},PM=()=>typeof navigator<"u"&&navigator?.userAgent?.indexOf("Mac")>=0;function QT(e){return e!=null&&e!=="parent"}function e0(e){return{width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}}function gSt(e){return(e.measured?.width??e.width??e.initialWidth)!==void 0&&(e.measured?.height??e.height??e.initialHeight)!==void 0}function vSt(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 J8e(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function sGn(){let e,t;return{promise:new Promise((r,s)=>{e=r,t=s}),resolve:e,reject:t}}function aGn(e){return{...lSt,...e||{}}}function v2(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:r,containerBounds:s}){const{x:a,y:i}=bg(e),l=q3({x:a-(s?.left??0),y:i-(s?.top??0)},r),{x:c,y:u}=n?V3(l,t):l;return{xSnapped:c,ySnapped:u,...l}}const oke=e=>({width:e.offsetWidth,height:e.offsetHeight}),ySt=e=>e?.getRootNode?.()||window?.document,iGn=["INPUT","SELECT","TEXTAREA"];function bSt(e){const t=e.composedPath?.()?.[0]||e.target;return t?.nodeType!==1?!1:iGn.includes(t.nodeName)||t.hasAttribute("contenteditable")||!!t.closest(".nokey")}const xSt=e=>"clientX"in e,bg=(e,t)=>{const n=xSt(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)}},e9e=(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,...oke(i)}})};function wSt({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 iF(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function t9e({pos:e,x1:t,y1:n,x2:r,y2:s,c:a}){switch(e){case sr.Left:return[t-iF(t-r,a),n];case sr.Right:return[t+iF(r-t,a),n];case sr.Top:return[t,n-iF(n-s,a)];case sr.Bottom:return[t,n+iF(s-n,a)]}}function lke({sourceX:e,sourceY:t,sourcePosition:n=sr.Bottom,targetX:r,targetY:s,targetPosition:a=sr.Top,curvature:i=.25}){const[l,c]=t9e({pos:n,x1:e,y1:t,x2:r,y2:s,c:i}),[u,d]=t9e({pos:a,x1:r,y1:s,x2:e,y2:t,c:i}),[f,p,h,m]=wSt({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 SSt({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 oGn({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 lGn({sourceNode:e,targetNode:t,width:n,height:r,transform:s}){const a=DH(TB(e),TB(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 RM(i,LH(a))>0}const cGn=({source:e,sourceHandle:t,target:n,targetHandle:r})=>`xy-edge__${e}${t||""}-${n}${r||""}`,uGn=(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)),dGn=(e,t,n={})=>{if(!e.source||!e.target)return t;const r=n.getEdgeId||cGn;let s;return dSt(e)?s={...e}:s={...e,id:r(e)},uGn(s,t)?t:(s.sourceHandle===null&&delete s.sourceHandle,s.targetHandle===null&&delete s.targetHandle,t.concat(s))};function kSt({sourceX:e,sourceY:t,targetX:n,targetY:r}){const[s,a,i,l]=SSt({sourceX:e,sourceY:t,targetX:n,targetY:r});return[`M ${e},${t}L ${n},${r}`,s,a,i,l]}const n9e={[sr.Left]:{x:-1,y:0},[sr.Right]:{x:1,y:0},[sr.Top]:{x:0,y:-1},[sr.Bottom]:{x:0,y:1}},fGn=({source:e,sourcePosition:t=sr.Bottom,target:n})=>t===sr.Left||t===sr.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},r9e=(e,t)=>Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2));function pGn({source:e,sourcePosition:t=sr.Bottom,target:n,targetPosition:r=sr.Top,center:s,offset:a,stepPosition:i}){const l=n9e[t],c=n9e[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=fGn({source:u,sourcePosition:t,target:d}),p=f.x!==0?"x":"y",h=f[p];let m=[],g,y;const b={x:0,y:0},x={x:0,y:0},[,,w,k]=SSt({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(l[p]*c[p]===-1){p==="x"?(g=s.x??u.x+(d.x-u.x)*i,y=s.y??(u.y+d.y)/2):(g=s.x??(u.x+d.x)/2,y=s.y??u.y+(d.y-u.y)*i);const E=[{x:g,y:u.y},{x:g,y:d.y}],N=[{x:u.x,y},{x:d.x,y}];l[p]===h?m=p==="x"?E:N:m=p==="x"?N:E}else{const E=[{x:u.x,y:d.y}],N=[{x:d.x,y:u.y}];if(p==="x"?m=l.x===h?N:E:m=l.y===h?E:N,t===r){const D=Math.abs(e[p]-n[p]);if(D<=a){const B=Math.min(a-1,a-D);l[p]===h?b[p]=(u[p]>e[p]?-1:1)*B:x[p]=(d[p]>n[p]?-1:1)*B}}if(t!==r){const D=p==="x"?"y":"x",B=l[p]===c[D],H=u[D]>d[D],F=u[D]<d[D];(l[p]===1&&(!B&&H||B&&F)||l[p]!==1&&(!B&&F||B&&H))&&(m=p==="x"?E:N)}const I={x:u.x+b.x,y:u.y+b.y},A={x:d.x+x.x,y:d.y+x.y},R=Math.max(Math.abs(I.x-m[0].x),Math.abs(A.x-m[0].x)),L=Math.max(Math.abs(I.y-m[0].y),Math.abs(A.y-m[0].y));R>=L?(g=(I.x+A.x)/2,y=m[0].y):(g=m[0].x,y=(I.y+A.y)/2)}const _={x:u.x+b.x,y:u.y+b.y},C={x:d.x+x.x,y:d.y+x.y};return[[e,..._.x!==m[0].x||_.y!==m[0].y?[_]:[],...m,...C.x!==m[m.length-1].x||C.y!==m[m.length-1].y?[C]:[],n],g,y,w,k]}function hGn(e,t,n,r){const s=Math.min(r9e(e,t)/2,r9e(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 uge({sourceX:e,sourceY:t,sourcePosition:n=sr.Bottom,targetX:r,targetY:s,targetPosition:a=sr.Top,borderRadius:i=5,centerX:l,centerY:c,offset:u=20,stepPosition:d=.5}){const[f,p,h,m,g]=pGn({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+=hGn(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,g]}function s9e(e){return e&&!!(e.internals.handleBounds||e.handles?.length)&&!!(e.measured.width||e.width||e.initialWidth)}function mGn(e){const{sourceNode:t,targetNode:n}=e;if(!s9e(t)||!s9e(n))return null;const r=t.internals.handleBounds||a9e(t.handles),s=n.internals.handleBounds||a9e(n.handles),a=i9e(r?.source??[],e.sourceHandle),i=i9e(e.connectionMode===WT.Strict?s?.target??[]:(s?.target??[]).concat(s?.source??[]),e.targetHandle);if(!a||!i)return e.onError?.("008",Sy.error008(a?"target":"source",{id:e.id,sourceHandle:e.sourceHandle,targetHandle:e.targetHandle})),null;const l=a?.position||sr.Bottom,c=i?.position||sr.Top,u=WO(t,a,l),d=WO(n,i,c);return{sourceX:u.x,sourceY:u.y,targetX:d.x,targetY:d.y,sourcePosition:l,targetPosition:c}}function a9e(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 WO(e,t,n=sr.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??e0(e);if(r)return{x:s+i/2,y:a+l/2};switch(t?.position??n){case sr.Top:return{x:s+i/2,y:a};case sr.Right:return{x:s+i,y:a+l/2};case sr.Bottom:return{x:s+i/2,y:a+l};case sr.Left:return{x:s,y:a+l/2}}}function i9e(e,t){return e&&(t?e.find(n=>n.id===t):e[0])||null}function dge(e,t){return e?typeof e=="string"?e:`${t?`${t}__`:""}${Object.keys(e).sort().map(r=>`${r}=${e[r]}`).join("&")}`:""}function gGn(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=dge(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 OSt=1e3,vGn=10,cke={nodeOrigin:[0,0],nodeExtent:NM,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},yGn={...cke,checkEquality:!0};function uke(e,t){const n={...e};for(const r in t)t[r]!==void 0&&(n[r]=t[r]);return n}function bGn(e,t,n){const r=uke(cke,n);for(const s of e.values())if(s.parentId)fke(s,e,t,r);else{const a=B3(s,r.nodeOrigin),i=QT(s.extent)?s.extent:r.nodeExtent,l=HO(a,i,e0(s));s.internals.positionAbsolute=l}}function xGn(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 dke(e){return e==="manual"}function fge(e,t,n,r={}){const s=uke(yGn,r),a={i:0},i=new Map(t),l=s?.elevateNodesOnSelect&&!dke(s.zIndexMode)?OSt: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=B3(d,s.nodeOrigin),h=QT(d.extent)?d.extent:s.nodeExtent,m=HO(p,h,e0(d));f={...s.defaults,...d,measured:{width:d.measured?.width,height:d.measured?.height},internals:{positionAbsolute:m,handleBounds:xGn(d,f),z:_St(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&&fke(f,t,n,r,a),u||=d.selected??!1}return{nodesInitialized:c,hasSelectedNodes:u}}function wGn(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 fke(e,t,n,r,s){const{elevateNodesOnSelect:a,nodeOrigin:i,nodeExtent:l,zIndexMode:c}=uke(cke,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}wGn(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*vGn),s&&d.internals.rootParentIndex!==void 0&&(s.i=d.internals.rootParentIndex);const f=a&&!dke(c)?OSt:0,{x:p,y:h,z:m}=SGn(e,d,i,l,f,c),{positionAbsolute:g}=e.internals,y=p!==g.x||h!==g.y;(y||m!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:y?{x:p,y:h}:g,z:m}})}function _St(e,t,n){const r=yg(e.zIndex)?e.zIndex:0;return dke(n)?r:r+(e.selected?t:0)}function SGn(e,t,n,r,s,a){const{x:i,y:l}=t.internals.positionAbsolute,c=e0(e),u=B3(e,n),d=QT(e.extent)?HO(u,e.extent,c):u;let f=HO({x:i+d.x,y:l+d.y},r,c);e.extent==="parent"&&(f=pSt(f,c,t));const p=_St(e,s,a),h=t.internals.z??0;return{x:f.x,y:f.y,z:h>=p?h+1:p}}function pke(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??GT(l),u=mSt(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=e0(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)),g=Math.max(d.height,Math.round(i.height)),y=(m-d.width)*f[0],b=(g-d.height)*f[1];(p>0||h>0||y||b)&&(s.push({id:c,type:"position",position:{x:l.position.x-p+y,y:l.position.y-h+b}}),n.get(c)?.forEach(x=>{e.some(w=>w.id===x.id)||s.push({id:x.id,type:"position",position:{x:x.position.x+p,y:x.position.y+h}})})),(d.width<i.width||d.height<i.height||p||h)&&s.push({id:c,type:"dimensions",setAttributes:!0,dimensions:{width:m+(p?f[0]*p-y:0),height:g+(h?f[1]*h-b:0)}})}),s}function kGn(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 g=oke(h.nodeElement),y=m.measured.width!==g.width||m.measured.height!==g.height;if(!!(g.width&&g.height&&(y||!m.internals.handleBounds||h.force))){const x=h.nodeElement.getBoundingClientRect(),w=QT(m.extent)?m.extent:a;let{positionAbsolute:k}=m.internals;m.parentId&&m.extent==="parent"?k=pSt(k,g,t.get(m.parentId)):w&&(k=HO(k,w,g));const _={...m,measured:g,internals:{...m.internals,positionAbsolute:k,handleBounds:{source:e9e("source",h.nodeElement,x,f,m.id),target:e9e("target",h.nodeElement,x,f,m.id)}}};t.set(m.id,_),m.parentId&&fke(_,t,n,{nodeOrigin:s,zIndexMode:i}),c=!0,y&&(u.push({id:m.id,type:"dimensions",dimensions:g}),m.expandParent&&m.parentId&&p.push({id:m.id,parentId:m.parentId,rect:GT(_,s)}))}}if(p.length>0){const h=pke(p,t,n,s);u.push(...h)}return{changes:u,updatedInternals:c}}async function OGn({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 o9e(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 CSt(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}`;o9e("source",c,d,e,s,i),o9e("target",c,u,e,a,l),t.set(r.id,r)}}function ESt(e,t){if(!e.parentId)return!1;const n=t.get(e.parentId);return n?n.selected?!0:ESt(n,t):!1}function l9e(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 _Gn(e,t,n,r){const s=new Map;for(const[a,i]of e)if((i.selected||i.id===r)&&(!i.parentId||!ESt(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 ote({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 CGn({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=V3(a,t);return{x:i.x-a.x,y:i.y-a.y}}function EGn({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,g=null;function y({noDragClassName:x,handleSelector:w,domNode:k,isSelectable:_,nodeId:C,nodeClickDistance:j=0}){p=Op(k);function E({x:R,y:L}){const{nodeLookup:D,nodeExtent:B,snapGrid:H,snapToGrid:F,nodeOrigin:z,onNodeDrag:V,onSelectionDrag:M,onError:Q,updateNodePositions:q}=t();a={x:R,y:L};let $=!1;const U=l.size>1,Z=U&&B?cge(U3(l)):null,K=U&&F?CGn({dragItems:l,snapGrid:H,x:R,y:L}):null;for(const[te,ne]of l){if(!D.has(te))continue;let J={x:R-ne.distance.x,y:L-ne.distance.y};F&&(J=K?{x:Math.round(J.x+K.x),y:Math.round(J.y+K.y)}:V3(J,H));let se=null;if(U&&B&&!ne.extent&&Z){const{positionAbsolute:ee}=ne.internals,ue=ee.x-Z.x+B[0][0],pe=ee.x+ne.measured.width-Z.x2+B[1][0],le=ee.y-Z.y+B[0][1],fe=ee.y+ne.measured.height-Z.y2+B[1][1];se=[[ue,le],[pe,fe]]}const{position:ie,positionAbsolute:Y}=fSt({nodeId:te,nextPosition:J,nodeLookup:D,nodeExtent:se||B,nodeOrigin:z,onError:Q});$=$||ne.position.x!==ie.x||ne.position.y!==ie.y,ne.position=ie,ne.internals.positionAbsolute=Y}if(m=m||$,!!$&&(q(l,!0),g&&(r||V||!C&&M))){const[te,ne]=ote({nodeId:C,dragItems:l,nodeLookup:D});r?.(g,l,te,ne),V?.(g,te,ne),C||M?.(g,ne)}}async function N(){if(!d)return;const{transform:R,panBy:L,autoPanSpeed:D,autoPanOnNodeDrag:B}=t();if(!B){c=!1,cancelAnimationFrame(i);return}const[H,F]=hSt(u,d,D);(H!==0||F!==0)&&(a.x=(a.x??0)-H/R[2],a.y=(a.y??0)-F/R[2],await L({x:H,y:F})&&E(a)),i=requestAnimationFrame(N)}function I(R){const{nodeLookup:L,multiSelectionActive:D,nodesDraggable:B,transform:H,snapGrid:F,snapToGrid:z,selectNodesOnDrag:V,onNodeDragStart:M,onSelectionDragStart:Q,unselectNodesAndEdges:q}=t();f=!0,(!V||!_)&&!D&&C&&(L.get(C)?.selected||q()),_&&V&&C&&e?.(C);const $=v2(R.sourceEvent,{transform:H,snapGrid:F,snapToGrid:z,containerBounds:d});if(a=$,l=_Gn(L,B,$,C),l.size>0&&(n||M||!C&&Q)){const[U,Z]=ote({nodeId:C,dragItems:l,nodeLookup:L});n?.(R.sourceEvent,l,U,Z),M?.(R.sourceEvent,U,Z),C||Q?.(R.sourceEvent,Z)}}const A=H1t().clickDistance(j).on("start",R=>{const{domNode:L,nodeDragThreshold:D,transform:B,snapGrid:H,snapToGrid:F}=t();d=L?.getBoundingClientRect()||null,h=!1,m=!1,g=R.sourceEvent,D===0&&I(R),a=v2(R.sourceEvent,{transform:B,snapGrid:H,snapToGrid:F,containerBounds:d}),u=bg(R.sourceEvent,d)}).on("drag",R=>{const{autoPanOnNodeDrag:L,transform:D,snapGrid:B,snapToGrid:H,nodeDragThreshold:F,nodeLookup:z}=t(),V=v2(R.sourceEvent,{transform:D,snapGrid:B,snapToGrid:H,containerBounds:d});if(g=R.sourceEvent,(R.sourceEvent.type==="touchmove"&&R.sourceEvent.touches.length>1||C&&!z.has(C))&&(h=!0),!h){if(!c&&L&&f&&(c=!0,N()),!f){const M=bg(R.sourceEvent,d),Q=M.x-u.x,q=M.y-u.y;Math.sqrt(Q*Q+q*q)>F&&I(R)}(a.x!==V.xSnapped||a.y!==V.ySnapped)&&l&&f&&(u=bg(R.sourceEvent,d),E(V))}}).on("end",R=>{if(!(!f||h)&&(c=!1,f=!1,cancelAnimationFrame(i),l.size>0)){const{nodeLookup:L,updateNodePositions:D,onNodeDragStop:B,onSelectionDragStop:H}=t();if(m&&(D(l,!1),m=!1),s||B||!C&&H){const[F,z]=ote({nodeId:C,dragItems:l,nodeLookup:L,dragging:!1});s?.(R.sourceEvent,l,F,z),B?.(R.sourceEvent,F,z),C||H?.(R.sourceEvent,z)}}}).filter(R=>{const L=R.target;return!R.button&&(!x||!l9e(L,`.${x}`,k))&&(!w||l9e(L,w,k))});p.call(A)}function b(){p?.on(".drag",null)}return{update:y,destroy:b}}function jGn(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())RM(s,GT(a))>0&&r.push(a);return r}const TGn=250;function NGn(e,t,n,r){let s=[],a=1/0;const i=jGn(e,n,t+TGn);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}=WO(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 jSt(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,...WO(i,c,c.position,!0)}:c}function TSt(e,t){return e||(t?.classList.contains("target")?"target":t?.classList.contains("source")?"source":null)}function IGn(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}const NSt=()=>!0;function AGn(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:g,onConnectEnd:y,isValidConnection:b=NSt,onReconnectEnd:x,updateConnection:w,getTransform:k,getFromHandle:_,autoPanSpeed:C,dragThreshold:j=1,handleDomNode:E}){const N=ySt(e.target);let I=0,A;const{x:R,y:L}=bg(e),D=TSt(a,E),B=l?.getBoundingClientRect();let H=!1;if(!B||!D)return;const F=jSt(s,D,r,c,t);if(!F)return;let z=bg(e,B),V=!1,M=null,Q=!1,q=null;function $(){if(!d||!B)return;const[ie,Y]=hSt(z,B,C);p({x:ie,y:Y}),I=requestAnimationFrame($)}const U={...F,nodeId:s,type:D,position:F.position},Z=c.get(s);let te={inProgress:!0,isValid:null,from:WO(Z,U,sr.Left,!0),fromHandle:U,fromPosition:U.position,fromNode:Z,to:z,toHandle:null,toPosition:Y8e[U.position],toNode:null,pointer:z};function ne(){H=!0,w(te),m?.(e,{nodeId:s,handleId:r,handleType:D})}j===0&&ne();function J(ie){if(!H){const{x:fe,y:be}=bg(ie),xe=fe-R,je=be-L;if(!(xe*xe+je*je>j*j))return;ne()}if(!_()||!U){se(ie);return}const Y=k();z=bg(ie,B),A=NGn(q3(z,Y,!1,[1,1]),n,c,U),V||($(),V=!0);const ee=ISt(ie,{handle:A,connectionMode:t,fromNodeId:s,fromHandleId:r,fromType:i?"target":"source",isValidConnection:b,doc:N,lib:u,flowId:f,nodeLookup:c});q=ee.handleDomNode,M=ee.connection,Q=IGn(!!A,ee.isValid);const ue=c.get(s),pe=ue?WO(ue,U,sr.Left,!0):te.from,le={...te,from:pe,isValid:Q,to:ee.toHandle&&Q?NB({x:ee.toHandle.x,y:ee.toHandle.y},Y):z,toHandle:ee.toHandle,toPosition:Q&&ee.toHandle?ee.toHandle.position:Y8e[U.position],toNode:ee.toHandle?c.get(ee.toHandle.nodeId):null,pointer:z};w(le),te=le}function se(ie){if(!("touches"in ie&&ie.touches.length>0)){if(H){(A||q)&&M&&Q&&g?.(M);const{inProgress:Y,...ee}=te,ue={...ee,toPosition:te.toHandle?te.toPosition:null};y?.(ie,ue),a&&x?.(ie,ue)}h(),cancelAnimationFrame(I),V=!1,Q=!1,M=null,q=null,N.removeEventListener("mousemove",J),N.removeEventListener("mouseup",se),N.removeEventListener("touchmove",J),N.removeEventListener("touchend",se)}}N.addEventListener("mousemove",J),N.addEventListener("mouseup",se),N.addEventListener("touchmove",J),N.addEventListener("touchend",se)}function ISt(e,{handle:t,connectionMode:n,fromNodeId:r,fromHandleId:s,fromType:a,doc:i,lib:l,flowId:c,isValidConnection:u=NSt,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}=bg(e),g=i.elementFromPoint(h,m),y=g?.classList.contains(`${l}-flow__handle`)?g:p,b={handleDomNode:y,isValid:!1,connection:null,toHandle:null};if(y){const x=TSt(void 0,y),w=y.getAttribute("data-nodeid"),k=y.getAttribute("data-handleid"),_=y.classList.contains("connectable"),C=y.classList.contains("connectableend");if(!w||!x)return b;const j={source:f?w:r,sourceHandle:f?k:s,target:f?r:w,targetHandle:f?s:k};b.connection=j;const N=_&&C&&(n===WT.Strict?f&&x==="source"||!f&&x==="target":w!==r||k!==s);b.isValid=N&&u(j),b.toHandle=jSt(w,x,k,d,n,!0)}return b}const pge={onPointerDown:AGn,isValid:ISt};function RGn({domNode:e,panZoom:t,getTransform:n,getViewScale:r}){const s=Op(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&&PM()?10:1,C=-w.sourceEvent.deltaY*(w.sourceEvent.deltaMode===1?.05:w.sourceEvent.deltaMode?1:.002)*d,j=k[2]*Math.pow(2,C*_);t.scaleTo(j)};let g=[0,0];const y=w=>{(w.sourceEvent.type==="mousedown"||w.sourceEvent.type==="touchstart")&&(g=[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]-g[0],_[1]-g[1]];g=_;const j=r()*Math.max(k[2],Math.log(k[2]))*(h?-1:1),E={x:k[0]-C[0]*j,y:k[1]-C[1]*j},N=[[0,0],[c,u]];t.setViewportConstrained({x:E.x,y:E.y,zoom:k[2]},N,l)},x=iSt().on("start",y).on("zoom",f?b:null).on("zoom.wheel",p?m:null);s.call(x,{})}function i(){s.on("zoom",null)}return{update:a,destroy:i,pointer:ag}}const FH=e=>({x:e.x,y:e.y,zoom:e.k}),lte=({x:e,y:t,zoom:n})=>MH.translate(e,t).scale(n),uj=(e,t)=>e.target.closest(`.${t}`),ASt=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),PGn=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,cte=(e,t=0,n=PGn,r=()=>{})=>{const s=typeof t=="number"&&t>0;return s||r(),s?e.transition().duration(t).ease(n).on("end",r):e},RSt=e=>{const t=e.ctrlKey&&PM()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function $Gn({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:r,panOnScrollMode:s,panOnScrollSpeed:a,zoomOnPinch:i,onPanZoomStart:l,onPanZoom:c,onPanZoomEnd:u}){return d=>{if(uj(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=ag(d),b=RSt(d),x=f*Math.pow(2,b);r.scaleTo(n,x,y,d);return}const p=d.deltaMode===1?20:1;let h=s===Xk.Vertical?0:d.deltaX*p,m=s===Xk.Horizontal?0:d.deltaY*p;!PM()&&d.shiftKey&&s!==Xk.Vertical&&(h=d.deltaY*p,m=0),r.translateBy(n,-(h/f)*a,-(m/f)*a,{internal:!0});const g=FH(n.property("__zoom"));clearTimeout(e.panScrollTimeout),e.isPanScrolling?(c?.(d,g),e.panScrollTimeout=setTimeout(()=>{u?.(d,g),e.isPanScrolling=!1},150)):(e.isPanScrolling=!0,l?.(d,g))}}function MGn({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(r,s){const a=r.type==="wheel",i=!t&&a&&!r.ctrlKey,l=uj(r,e);if(r.ctrlKey&&a&&l&&r.preventDefault(),i||l)return null;r.preventDefault(),n.call(this,r,s)}}function DGn({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return r=>{if(r.sourceEvent?.internal)return;const s=FH(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 LGn({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:r,onPanZoom:s}){return a=>{e.usedRightMouseButton=!!(n&&ASt(t,e.mouseButton??0)),a.sourceEvent?.sync||r([a.transform.x,a.transform.y,a.transform.k]),s&&!a.sourceEvent?.internal&&s?.(a.sourceEvent,FH(a.transform))}}function FGn({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:r,onPanZoomEnd:s,onPaneContextMenu:a}){return i=>{if(!i.sourceEvent?.internal&&(e.isZoomingOrPanning=!1,a&&ASt(t,e.mouseButton??0)&&!e.usedRightMouseButton&&i.sourceEvent&&a(i.sourceEvent),e.usedRightMouseButton=!1,r(!1),s)){const l=FH(i.transform);e.prevViewport=l,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{s?.(i.sourceEvent,l)},n?150:0)}}}function zGn({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"&&(uj(f,`${u}-flow__node`)||uj(f,`${u}-flow__edge`)))return!0;if(!r&&!p&&!s&&!a&&!n||i||d&&!m||uj(f,l)&&m||uj(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 g=Array.isArray(r)&&r.includes(f.button)||!f.button||f.button<=1;return(!f.ctrlKey||m)&&g}}function BGn({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=iSt().scaleExtent([t,n]).translateExtent(r),p=Op(e).call(f);x({x:s.x,y:s.y,zoom:ZT(s.zoom,t,n)},[[0,0],[d.width,d.height]],r);const h=p.on("wheel.zoom"),m=p.on("dblclick.zoom");f.wheelDelta(RSt);function g(A,R){return p?new Promise(L=>{f?.interpolate(R?.interpolate==="linear"?dx:R8).transform(cte(p,R?.duration,R?.ease,()=>L(!0)),A)}):Promise.resolve(!1)}function y({noWheelClassName:A,noPanClassName:R,onPaneContextMenu:L,userSelectionActive:D,panOnScroll:B,panOnDrag:H,panOnScrollMode:F,panOnScrollSpeed:z,preventScrolling:V,zoomOnPinch:M,zoomOnScroll:Q,zoomOnDoubleClick:q,zoomActivationKeyPressed:$,lib:U,onTransformChange:Z,connectionInProgress:K,paneClickDistance:te,selectionOnDrag:ne}){D&&!u.isZoomingOrPanning&&b();const J=B&&!$&&!D;f.clickDistance(ne?1/0:!yg(te)||te<0?0:te);const se=J?$Gn({zoomPanValues:u,noWheelClassName:A,d3Selection:p,d3Zoom:f,panOnScrollMode:F,panOnScrollSpeed:z,zoomOnPinch:M,onPanZoomStart:i,onPanZoom:a,onPanZoomEnd:l}):MGn({noWheelClassName:A,preventScrolling:V,d3ZoomHandler:h});if(p.on("wheel.zoom",se,{passive:!1}),!D){const Y=DGn({zoomPanValues:u,onDraggingChange:c,onPanZoomStart:i});f.on("start",Y);const ee=LGn({zoomPanValues:u,panOnDrag:H,onPaneContextMenu:!!L,onPanZoom:a,onTransformChange:Z});f.on("zoom",ee);const ue=FGn({zoomPanValues:u,panOnDrag:H,panOnScroll:B,onPaneContextMenu:L,onPanZoomEnd:l,onDraggingChange:c});f.on("end",ue)}const ie=zGn({zoomActivationKeyPressed:$,panOnDrag:H,zoomOnScroll:Q,panOnScroll:B,zoomOnDoubleClick:q,zoomOnPinch:M,userSelectionActive:D,noPanClassName:R,noWheelClassName:A,lib:U,connectionInProgress:K});f.filter(ie),q?p.on("dblclick.zoom",m):p.on("dblclick.zoom",null)}function b(){f.on("zoom",null)}async function x(A,R,L){const D=lte(A),B=f?.constrain()(D,R,L);return B&&await g(B),new Promise(H=>H(B))}async function w(A,R){const L=lte(A);return await g(L,R),new Promise(D=>D(L))}function k(A){if(p){const R=lte(A),L=p.property("__zoom");(L.k!==A.zoom||L.x!==A.x||L.y!==A.y)&&f?.transform(p,R,null,{sync:!0})}}function _(){const A=p?aSt(p.node()):{x:0,y:0,k:1};return{x:A.x,y:A.y,zoom:A.k}}function C(A,R){return p?new Promise(L=>{f?.interpolate(R?.interpolate==="linear"?dx:R8).scaleTo(cte(p,R?.duration,R?.ease,()=>L(!0)),A)}):Promise.resolve(!1)}function j(A,R){return p?new Promise(L=>{f?.interpolate(R?.interpolate==="linear"?dx:R8).scaleBy(cte(p,R?.duration,R?.ease,()=>L(!0)),A)}):Promise.resolve(!1)}function E(A){f?.scaleExtent(A)}function N(A){f?.translateExtent(A)}function I(A){const R=!yg(A)||A<0?0:A;f?.clickDistance(R)}return{update:y,destroy:b,setViewport:w,setViewportConstrained:x,getViewport:_,scaleTo:C,scaleBy:j,setScaleExtent:E,setTranslateExtent:N,syncViewport:k,setClickDistance:I}}var YT;(function(e){e.Line="line",e.Handle="handle"})(YT||(YT={}));function UGn({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 c9e(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 H0(e,t){return Math.max(0,t-e)}function W0(e,t){return Math.max(0,e-t)}function oF(e,t,n){return Math.max(0,t-e,e-n)}function u9e(e,t){return e?!t:t}function VGn(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:g,maxWidth:y,minHeight:b,maxHeight:x}=r,{x:w,y:k,width:_,height:C,aspectRatio:j}=e;let E=Math.floor(d?h-e.pointerX:0),N=Math.floor(f?m-e.pointerY:0);const I=_+(c?-E:E),A=C+(u?-N:N),R=-a[0]*_,L=-a[1]*C;let D=oF(I,g,y),B=oF(A,b,x);if(i){let z=0,V=0;c&&E<0?z=H0(w+E+R,i[0][0]):!c&&E>0&&(z=W0(w+I+R,i[1][0])),u&&N<0?V=H0(k+N+L,i[0][1]):!u&&N>0&&(V=W0(k+A+L,i[1][1])),D=Math.max(D,z),B=Math.max(B,V)}if(l){let z=0,V=0;c&&E>0?z=W0(w+E,l[0][0]):!c&&E<0&&(z=H0(w+I,l[1][0])),u&&N>0?V=W0(k+N,l[0][1]):!u&&N<0&&(V=H0(k+A,l[1][1])),D=Math.max(D,z),B=Math.max(B,V)}if(s){if(d){const z=oF(I/j,b,x)*j;if(D=Math.max(D,z),i){let V=0;!c&&!u||c&&!u&&p?V=W0(k+L+I/j,i[1][1])*j:V=H0(k+L+(c?E:-E)/j,i[0][1])*j,D=Math.max(D,V)}if(l){let V=0;!c&&!u||c&&!u&&p?V=H0(k+I/j,l[1][1])*j:V=W0(k+(c?E:-E)/j,l[0][1])*j,D=Math.max(D,V)}}if(f){const z=oF(A*j,g,y)/j;if(B=Math.max(B,z),i){let V=0;!c&&!u||u&&!c&&p?V=W0(w+A*j+R,i[1][0])/j:V=H0(w+(u?N:-N)*j+R,i[0][0])/j,B=Math.max(B,V)}if(l){let V=0;!c&&!u||u&&!c&&p?V=H0(w+A*j,l[1][0])/j:V=W0(w+(u?N:-N)*j,l[0][0])/j,B=Math.max(B,V)}}}N=N+(N<0?B:-B),E=E+(E<0?D:-D),s&&(p?I>A*j?N=(u9e(c,u)?-E:E)/j:E=(u9e(c,u)?-N:N)*j:d?(N=E/j,u=c):(E=N*j,c=u));const H=c?w+E:w,F=u?k+N:k;return{width:_+(c?-E:E),height:C+(u?-N:N),x:a[0]*E*(c?-1:1)+H,y:a[1]*N*(u?-1:1)+F}}const PSt={width:0,height:0,x:0,y:0},qGn={...PSt,pointerX:0,pointerY:0,aspectRatio:1};function HGn(e){return[[0,0],[e.measured.width,e.measured.height]]}function WGn(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 ZGn({domNode:e,nodeId:t,getStoreItems:n,onChange:r,onEnd:s}){const a=Op(e);let i={controlDirection:c9e("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:g,shouldResize:y}){let b={...PSt},x={...qGn};i={boundaries:d,resizeDirection:p,keepAspectRatio:f,controlDirection:c9e(u)};let w,k=null,_=[],C,j,E,N=!1;const I=H1t().on("start",A=>{const{nodeLookup:R,transform:L,snapGrid:D,snapToGrid:B,nodeOrigin:H,paneDomNode:F}=n();if(w=R.get(t),!w)return;k=F?.getBoundingClientRect()??null;const{xSnapped:z,ySnapped:V}=v2(A.sourceEvent,{transform:L,snapGrid:D,snapToGrid:B,containerBounds:k});b={width:w.measured.width??0,height:w.measured.height??0,x:w.position.x??0,y:w.position.y??0},x={...b,pointerX:z,pointerY:V,aspectRatio:b.width/b.height},C=void 0,w.parentId&&(w.extent==="parent"||w.expandParent)&&(C=R.get(w.parentId),j=C&&w.extent==="parent"?HGn(C):void 0),_=[],E=void 0;for(const[M,Q]of R)if(Q.parentId===t&&(_.push({id:M,position:{...Q.position},extent:Q.extent}),Q.extent==="parent"||Q.expandParent)){const q=WGn(Q,w,Q.origin??H);E?E=[[Math.min(q[0][0],E[0][0]),Math.min(q[0][1],E[0][1])],[Math.max(q[1][0],E[1][0]),Math.max(q[1][1],E[1][1])]]:E=q}h?.(A,{...b})}).on("drag",A=>{const{transform:R,snapGrid:L,snapToGrid:D,nodeOrigin:B}=n(),H=v2(A.sourceEvent,{transform:R,snapGrid:L,snapToGrid:D,containerBounds:k}),F=[];if(!w)return;const{x:z,y:V,width:M,height:Q}=b,q={},$=w.origin??B,{width:U,height:Z,x:K,y:te}=VGn(x,i.controlDirection,H,i.boundaries,i.keepAspectRatio,$,j,E),ne=U!==M,J=Z!==Q,se=K!==z&&ne,ie=te!==V&&J;if(!se&&!ie&&!ne&&!J)return;if((se||ie||$[0]===1||$[1]===1)&&(q.x=se?K:b.x,q.y=ie?te:b.y,b.x=q.x,b.y=q.y,_.length>0)){const pe=K-z,le=te-V;for(const fe of _)fe.position={x:fe.position.x-pe+$[0]*(U-M),y:fe.position.y-le+$[1]*(Z-Q)},F.push(fe)}if((ne||J)&&(q.width=ne&&(!i.resizeDirection||i.resizeDirection==="horizontal")?U:b.width,q.height=J&&(!i.resizeDirection||i.resizeDirection==="vertical")?Z:b.height,b.width=q.width,b.height=q.height),C&&w.expandParent){const pe=$[0]*(q.width??0);q.x&&q.x<pe&&(b.x=pe,x.x=x.x-(q.x-pe));const le=$[1]*(q.height??0);q.y&&q.y<le&&(b.y=le,x.y=x.y-(q.y-le))}const Y=UGn({width:b.width,prevWidth:M,height:b.height,prevHeight:Q,affectsX:i.controlDirection.affectsX,affectsY:i.controlDirection.affectsY}),ee={...b,direction:Y};y?.(A,ee)!==!1&&(N=!0,m?.(A,ee),r(q,F))}).on("end",A=>{N&&(g?.(A,{...b}),s?.({...b}),N=!1)});a.call(I)}function c(){a.on(".drag",null)}return{update:l,destroy:c}}const GGn={},d9e=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:()=>{(GGn?"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},QGn=e=>e?d9e(e):d9e,{useDebugValue:YGn}=Fe,{useSyncExternalStoreWithSelector:KGn}=hOn,XGn=e=>e;function $St(e,t=XGn,n){const r=KGn(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return YGn(r),r}const f9e=(e,t)=>{const n=QGn(e),r=(s,a=t)=>$St(n,s,a);return Object.assign(r,n),r},JGn=(e,t)=>e?f9e(e,t):f9e;function io(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 zH=v.createContext(null),eQn=zH.Provider,MSt=Sy.error001();function Bs(e,t){const n=v.useContext(zH);if(n===null)throw new Error(MSt);return $St(n,e,t)}function jo(){const e=v.useContext(zH);if(e===null)throw new Error(MSt);return v.useMemo(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}const p9e={display:"none"},tQn={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},DSt="react-flow__node-desc",LSt="react-flow__edge-desc",nQn="react-flow__aria-live",rQn=e=>e.ariaLiveMessage,sQn=e=>e.ariaLabelConfig;function aQn({rfId:e}){const t=Bs(rQn);return o.jsx("div",{id:`${nQn}-${e}`,"aria-live":"assertive","aria-atomic":"true",style:tQn,children:t})}function iQn({rfId:e,disableKeyboardA11y:t}){const n=Bs(sQn);return o.jsxs(o.Fragment,{children:[o.jsx("div",{id:`${DSt}-${e}`,style:p9e,children:t?n["node.a11yDescription.default"]:n["node.a11yDescription.keyboardDisabled"]}),o.jsx("div",{id:`${LSt}-${e}`,style:p9e,children:n["edge.a11yDescription.default"]}),!t&&o.jsx(aQn,{rfId:e})]})}const H3=v.forwardRef(({position:e="top-left",children:t,className:n,style:r,...s},a)=>{const i=`${e}`.split("-");return o.jsx("div",{className:Ul(["react-flow__panel",n,...i]),style:r,ref:a,...s,children:t})});H3.displayName="Panel";function oQn({proOptions:e,position:t="bottom-right"}){return e?.hideAttribution?null:o.jsx(H3,{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 lQn=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}},lF=e=>e.id;function cQn(e,t){return io(e.selectedNodes.map(lF),t.selectedNodes.map(lF))&&io(e.selectedEdges.map(lF),t.selectedEdges.map(lF))}function uQn({onSelectionChange:e}){const t=jo(),{selectedNodes:n,selectedEdges:r}=Bs(lQn,cQn);return v.useEffect(()=>{const s={nodes:n,edges:r};e?.(s),t.getState().onSelectionChangeHandlers.forEach(a=>a(s))},[n,r,e]),null}const dQn=e=>!!e.onSelectionChangeHandlers;function fQn({onSelectionChange:e}){const t=Bs(dQn);return e||t?o.jsx(uQn,{onSelectionChange:e}):null}const hge=typeof window<"u"?v.useLayoutEffect:v.useEffect,FSt=[0,0],pQn={x:0,y:0,zoom:1},hQn=["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"],h9e=[...hQn,"rfId"],mQn=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}),m9e={translateExtent:NM,nodeOrigin:FSt,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:"nopan",rfId:"1"};function gQn(e){const{setNodes:t,setEdges:n,setMinZoom:r,setMaxZoom:s,setTranslateExtent:a,setNodeExtent:i,reset:l,setDefaultNodesAndEdges:c}=Bs(mQn,io),u=jo();hge(()=>(c(e.defaultNodes,e.defaultEdges),()=>{d.current=m9e,l()}),[]);const d=v.useRef(m9e);return hge(()=>{for(const f of h9e){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:aGn(p)}):f==="fitView"?u.setState({fitViewQueued:p}):f==="fitViewOptions"?u.setState({fitViewOptions:p}):u.setState({[f]:p})))}d.current=e},h9e.map(f=>e[f])),null}function g9e(){return typeof window>"u"||!window.matchMedia?null:window.matchMedia("(prefers-color-scheme: dark)")}function vQn(e){const[t,n]=v.useState(e==="system"?null:e);return v.useEffect(()=>{if(e!=="system"){n(e);return}const r=g9e(),s=()=>n(r?.matches?"dark":"light");return s(),r?.addEventListener("change",s),()=>{r?.removeEventListener("change",s)}},[e]),t!==null?t:g9e()?.matches?"dark":"light"}const v9e=typeof document<"u"?document:null;function $M(e=null,t={target:v9e,actInsideInputWithModifier:!0}){const[n,r]=v.useState(!1),s=v.useRef(!1),a=v.useRef(new Set([])),[i,l]=v.useMemo(()=>{if(e!==null){const u=(Array.isArray(e)?e:[e]).filter(f=>typeof f=="string").map(f=>f.replace("+",`
|
|
337
|
+
`: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 vUn(this):new hUn(this)}getCursor(t,n=0,r){let s=t.doc?t:cs.create({doc:t});return r==null&&(r=s.doc.length),this.regexp?UE(this,s,n,r):BE(this,s,n,r)}}class h1t{constructor(t){this.spec=t}}function fUn(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 BE(e,t,n,r){let s;return e.wholeWord&&(s=pUn(t.doc,t.charCategorizer(t.selection.main.head))),e.test&&(s=fUn(e.test,t,s)),new Nx(t.doc,e.unquoted,n,r,e.caseSensitive?void 0:a=>a.toLowerCase(),s)}function pUn(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(vB(s,n-a))!=wo.Word||t(yB(s,n-a))!=wo.Word)&&(t(yB(s,r-a))!=wo.Word||t(vB(s,r-a))!=wo.Word))}class hUn extends h1t{constructor(t){super(t)}nextMatch(t,n,r){let s=BE(this.spec,t,r,t.doc.length).nextOverlapping();if(s.done){let a=Math.min(t.doc.length,n+this.spec.unquoted.length);s=BE(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=BE(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=BE(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=BE(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 mUn(e,t,n){return(r,s,a)=>(!n||n(r,s,a))&&e(a[0],t,r,s)}function UE(e,t,n,r){let s;return e.wholeWord&&(s=gUn(t.charCategorizer(t.selection.main.head))),e.test&&(s=mUn(e.test,t,s)),new d1t(t.doc,e.search,{ignoreCase:!e.caseSensitive,test:s},n,r)}function vB(e,t){return e.slice(kc(e,t,!1),t)}function yB(e,t){return e.slice(t,kc(e,t))}function gUn(e){return(t,n,r)=>!r[0].length||(e(vB(r.input,r.index))!=wo.Word||e(yB(r.input,r.index))!=wo.Word)&&(e(yB(r.input,r.index+r[0].length))!=wo.Word||e(vB(r.input,r.index+r[0].length))!=wo.Word)}class vUn extends h1t{nextMatch(t,n,r){let s=UE(this.spec,t,r,t.doc.length).next();return s.done&&(s=UE(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=UE(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=UE(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=UE(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 kM=vr.define(),HSe=vr.define(),Fw=wl.define({create(e){return new aee(Jme(e).create(),null)},update(e,t){for(let n of t.effects)n.is(kM)?e=new aee(n.value.create(),e.panel):n.is(HSe)&&(e=new aee(e.query,n.value?WSe:null));return e},provide:e=>pM.from(e,t=>t.panel)});class aee{constructor(t,n){this.query=t,this.panel=n}}const yUn=jn.mark({class:"cm-searchMatch"}),bUn=jn.mark({class:"cm-searchMatch cm-searchMatch-selected"}),xUn=Co.fromClass(class{constructor(e){this.view=e,this.decorations=this.highlight(e.state.field(Fw))}update(e){let t=e.state.field(Fw);(t!=e.startState.field(Fw)||e.docChanged||e.selectionSet||e.viewportChanged)&&(this.decorations=this.highlight(t))}highlight({query:e,panel:t}){if(!t||!e.spec.valid)return jn.none;let{view:n}=this,r=new Dd;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?bUn:yUn)})}return r.finish()}},{decorations:e=>e.decorations});function L3(e){return t=>{let n=t.state.field(Fw,!1);return n&&n.query.spec.valid?e(t,n):v1t(t)}}const bB=L3((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(fI);return e.dispatch({selection:s,effects:[ZSe(e,r),a.scrollToMatch(s.main,e)],userEvent:"select.search"}),g1t(e),!0}),xB=L3((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(fI);return e.dispatch({selection:a,effects:[ZSe(e,s),i.scrollToMatch(a.main,e)],userEvent:"select.search"}),g1t(e),!0}),wUn=L3((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)}),SUn=({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 Nx(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},Oze=L3((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(Nt.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(ZSe(e,i)),d.push(n.facet(fI).scrollToMatch(c.main,e))),e.dispatch({changes:f,selection:c,effects:d,userEvent:"input.replace"}),!0}),kUn=L3((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:Nt.announce.of(r),userEvent:"input.replace.all"}),!0});function WSe(e){return e.state.facet(fI).createPanel(e)}function Jme(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(fI);return new p1t({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 m1t(e){let t=lSe(e,WSe);return t&&t.dom.querySelector("[main-field]")}function g1t(e){let t=m1t(e);t&&t==e.root.activeElement&&t.select()}const v1t=e=>{let t=e.state.field(Fw,!1);if(t&&t.panel){let n=m1t(e);if(n&&n!=e.root.activeElement){let r=Jme(e.state,t.query.spec);r.valid&&e.dispatch({effects:kM.of(r)}),n.focus(),n.select()}}else e.dispatch({effects:[HSe.of(!0),t?kM.of(Jme(e.state,t.query.spec)):vr.appendConfig.of(EUn)]});return!0},y1t=e=>{let t=e.state.field(Fw,!1);if(!t||!t.panel)return!1;let n=lSe(e,WSe);return n&&n.dom.contains(e.root.activeElement)&&e.focus(),e.dispatch({effects:HSe.of(!1)}),!0},OUn=[{key:"Mod-f",run:v1t,scope:"editor search-panel"},{key:"F3",run:bB,shift:xB,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:bB,shift:xB,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:y1t,scope:"editor search-panel"},{key:"Mod-Shift-l",run:SUn},{key:"Mod-Alt-g",run:eUn},{key:"Mod-d",run:dUn,preventDefault:!0}];class _Un{constructor(t){this.view=t;let n=this.query=t.state.field(Fw).query.spec;this.commit=this.commit.bind(this),this.searchField=di("input",{value:n.search,placeholder:ap(t,"Find"),"aria-label":ap(t,"Find"),class:"cm-textfield",name:"search",form:"","main-field":"true",onchange:this.commit,onkeyup:this.commit}),this.replaceField=di("input",{value:n.replace,placeholder:ap(t,"Replace"),"aria-label":ap(t,"Replace"),class:"cm-textfield",name:"replace",form:"",onchange:this.commit,onkeyup:this.commit}),this.caseField=di("input",{type:"checkbox",name:"case",form:"",checked:n.caseSensitive,onchange:this.commit}),this.reField=di("input",{type:"checkbox",name:"re",form:"",checked:n.regexp,onchange:this.commit}),this.wordField=di("input",{type:"checkbox",name:"word",form:"",checked:n.wholeWord,onchange:this.commit});function r(s,a,i){return di("button",{class:"cm-button",name:s,onclick:a,type:"button"},i)}this.dom=di("div",{onkeydown:s=>this.keydown(s),class:"cm-search"},[this.searchField,r("next",()=>bB(t),[ap(t,"next")]),r("prev",()=>xB(t),[ap(t,"previous")]),r("select",()=>wUn(t),[ap(t,"all")]),di("label",null,[this.caseField,ap(t,"match case")]),di("label",null,[this.reField,ap(t,"regexp")]),di("label",null,[this.wordField,ap(t,"by word")]),...t.state.readOnly?[]:[di("br"),this.replaceField,r("replace",()=>Oze(t),[ap(t,"replace")]),r("replaceAll",()=>kUn(t),[ap(t,"replace all")])],di("button",{name:"close",onclick:()=>y1t(t),"aria-label":ap(t,"close"),type:"button"},["×"])])}commit(){let t=new p1t({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:kM.of(t)}))}keydown(t){H5n(this.view,t,"search-panel")?t.preventDefault():t.keyCode==13&&t.target==this.searchField?(t.preventDefault(),(t.shiftKey?xB:bB)(this.view)):t.keyCode==13&&t.target==this.replaceField&&(t.preventDefault(),Oze(this.view))}update(t){for(let n of t.transactions)for(let r of n.effects)r.is(kM)&&!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(fI).top}}function ap(e,t){return e.state.phrase(t)}const X6=30,J6=/[\s\.,:;?!]/;function ZSe(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-X6),i=Math.min(s,n+X6),l=e.state.sliceDoc(a,i);if(a!=r.from){for(let c=0;c<X6;c++)if(!J6.test(l[c+1])&&J6.test(l[c])){l=l.slice(c);break}}if(i!=s){for(let c=l.length-1;c>l.length-X6;c--)if(!J6.test(l[c-1])&&J6.test(l[c])){l=l.slice(0,c);break}}return Nt.announce.of(`${e.state.phrase("current match")}. ${l} ${e.state.phrase("on line")} ${r.number}.`)}const CUn=Nt.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"}}),EUn=[Fw,eh.low(xUn),CUn];class _ze{constructor(t,n,r){this.from=t,this.to=n,this.diagnostic=r}}class bk{constructor(t,n,r){this.diagnostics=t,this.panel=n,this.selected=r}static init(t,n,r){let s=r.facet(OM).markerFilter;s&&(t=s(t,r));let a=t.slice().sort((d,f)=>d.from-f.from||d.to-f.to),i=new Dd,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((g,y)=>Math.min(g,y.to),f&&f.from>p?f.from:1e8)):(p=f.from,h=f.to,l.push(f),d++);d<a.length;){let g=a[d];if(g.from==p&&(g.to>g.from||g.to==p))l.push(g),d++,h=Math.min(g.to,h);else{h=Math.min(g.from,h);break}}let m=zUn(l);if(l.some(g=>g.from==g.to||g.from==g.to-1&&r.doc.lineAt(g.from).to==g.from))i.add(p,p,jn.widget({widget:new MUn(m),diagnostics:l.slice()}));else{let g=l.reduce((y,b)=>b.markClass?y+" "+b.markClass:y,"");i.add(p,h,jn.mark({class:"cm-lintRange cm-lintRange-"+m+g,diagnostics:l.slice(),inclusiveEnd:l.some(y=>y.to>h)}))}c=h;for(let g=0;g<l.length;g++)l[g].to<=c&&l.splice(g--,1)}let u=i.finish();return new bk(u,n,VT(u))}}function VT(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 _ze(s,a,t||i.diagnostics[0]);else{if(i.diagnostics.indexOf(r.diagnostic)<0)return!1;r=new _ze(r.from,a,r.diagnostic)}}),r}function jUn(e,t){let n=t.pos,r=t.end||n,s=e.state.facet(OM).hideOn(e,n,r);if(s!=null)return s;let a=e.startState.doc.lineAt(t.pos);return!!(e.effects.some(i=>i.is(b1t))||e.changes.touchesRange(a.from,Math.max(a.to,r)))}function TUn(e,t){return e.field(jp,!1)?t:t.concat(vr.appendConfig.of(BUn))}const b1t=vr.define(),GSe=vr.define(),x1t=vr.define(),jp=wl.define({create(){return new bk(jn.none,null,null)},update(e,t){if(t.docChanged&&e.diagnostics.size){let n=e.diagnostics.map(t.changes),r=null,s=e.panel;if(e.selected){let a=t.changes.mapPos(e.selected.from,1);r=VT(n,e.selected.diagnostic,a)||VT(n,null,a)}!n.size&&s&&t.state.facet(OM).autoPanel&&(s=null),e=new bk(n,s,r)}for(let n of t.effects)if(n.is(b1t)){let r=t.state.facet(OM).autoPanel?n.value.length?_M.open:null:e.panel;e=bk.init(n.value,r,t.state)}else n.is(GSe)?e=new bk(e.diagnostics,n.value?_M.open:null,e.selected):n.is(x1t)&&(e=new bk(e.diagnostics,e.panel,n.value));return e},provide:e=>[pM.from(e,t=>t.panel),Nt.decorations.from(e,t=>t.diagnostics)]}),NUn=jn.mark({class:"cm-lintRange cm-lintRange-active"});function IUn(e,t,n){let{diagnostics:r}=e.state.field(jp),s,a=-1,i=-1;r.between(t-(n<0?1:0),t+(n>0?1:0),(c,u,{spec:d})=>{if(t>=c&&t<=u&&(c==u||(t>c||n>0)&&(t<u||n<0)))return s=d.diagnostics,a=c,i=u,!1});let l=e.state.facet(OM).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:AUn(e,s)}}}:null}function AUn(e,t){return di("ul",{class:"cm-tooltip-lint"},t.map(n=>S1t(e,n,!1)))}const RUn=e=>{let t=e.state.field(jp,!1);(!t||!t.panel)&&e.dispatch({effects:TUn(e.state,[GSe.of(!0)])});let n=lSe(e,_M.open);return n&&n.dom.querySelector(".cm-panel-lint ul").focus(),!0},Cze=e=>{let t=e.state.field(jp,!1);return!t||!t.panel?!1:(e.dispatch({effects:GSe.of(!1)}),!0)},PUn=e=>{let t=e.state.field(jp,!1);if(!t)return!1;let n=e.state.selection.main,r=t.diagnostics.iter(n.to+1);return!r.value&&(r=t.diagnostics.iter(0),!r.value||r.from==n.from&&r.to==n.to)?!1:(e.dispatch({selection:{anchor:r.from,head:r.to},scrollIntoView:!0}),!0)},$Un=[{key:"Mod-Shift-m",run:RUn,preventDefault:!0},{key:"F8",run:PUn}],OM=On.define({combine(e){return{sources:e.map(t=>t.source).filter(t=>t!=null),...Uy(e.map(t=>t.config),{delay:750,markerFilter:null,tooltipFilter:null,needsRefresh:null,hideOn:()=>null},{delay:Math.max,markerFilter:Eze,tooltipFilter:Eze,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 Eze(e,t){return e?t?(n,r)=>t(e(n,r),r):e:t}function w1t(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 S1t(e,t,n){var r;let s=n?w1t(t.actions):[];return di("li",{class:"cm-diagnostic cm-diagnostic-"+t.severity},di("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=VT(e.state.field(jp).diagnostics,t);m&&a.apply(e,m.from,m.to)},{name:u}=a,d=s[i]?u.indexOf(s[i]):-1,f=d<0?u:[u.slice(0,d),di("u",u.slice(d,d+1)),u.slice(d+1)],p=a.markClass?" "+a.markClass:"";return di("button",{type:"button",class:"cm-diagnosticAction"+p,onclick:c,onmousedown:c,"aria-label":` Action: ${u}${d<0?"":` (access key "${s[i]})"`}.`},f)}),t.source&&di("div",{class:"cm-diagnosticSource"},t.source))}class MUn extends th{constructor(t){super(),this.sev=t}eq(t){return t.sev==this.sev}toDOM(){return di("span",{class:"cm-lintPoint cm-lintPoint-"+this.sev})}}class jze{constructor(t,n){this.diagnostic=n,this.id="item_"+Math.floor(Math.random()*4294967295).toString(16),this.dom=S1t(t,n,!0),this.dom.id=this.id,this.dom.setAttribute("role","option")}}class _M{constructor(t){this.view=t,this.items=[];let n=s=>{if(s.keyCode==27)Cze(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=w1t(a.actions);for(let l=0;l<i.length;l++)if(i[l].toUpperCase().charCodeAt(0)==s.keyCode){let c=VT(this.view.state.field(jp).diagnostics,a);c&&a.actions[l].apply(t,c.from,c.to)}}else return;s.preventDefault()},r=s=>{for(let a=0;a<this.items.length;a++)this.items[a].dom.contains(s.target)&&this.moveSelection(a)};this.list=di("ul",{tabIndex:0,role:"listbox","aria-label":this.view.state.phrase("Diagnostics"),onkeydown:n,onclick:r}),this.dom=di("div",{class:"cm-panel-lint"},this.list,di("button",{type:"button",name:"close","aria-label":this.view.state.phrase("close"),onclick:()=>Cze(this.view)},"×")),this.update()}get selectedIndex(){let t=this.view.state.field(jp).selected;if(!t)return-1;for(let n=0;n<this.items.length;n++)if(this.items[n].diagnostic==t.diagnostic)return n;return-1}update(){let{diagnostics:t,selected:n}=this.view.state.field(jp),r=0,s=!1,a=null,i=new Set;for(t.between(0,this.view.state.doc.length,(l,c,{spec:u})=>{for(let d of u.diagnostics){if(i.has(d))continue;i.add(d);let f=-1,p;for(let h=r;h<this.items.length;h++)if(this.items[h].diagnostic==d){f=h;break}f<0?(p=new jze(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 jze(this.view,{from:-1,to:-1,severity:"info",message:this.view.state.phrase("No diagnostics")})),s=!0),a?(this.list.setAttribute("aria-activedescendant",a.id),this.view.requestMeasure({key:this,read:()=>({sel:a.dom.getBoundingClientRect(),panel:this.list.getBoundingClientRect()}),write:({sel:l,panel:c})=>{let u=c.height/this.list.offsetHeight;l.top<c.top?this.list.scrollTop-=(c.top-l.top)/u:l.bottom>c.bottom&&(this.list.scrollTop+=(l.bottom-c.bottom)/u)}})):this.selectedIndex<0&&this.list.removeAttribute("aria-activedescendant"),s&&this.sync()}sync(){let t=this.list.firstChild;function n(){let r=t;t=r.nextSibling,r.remove()}for(let r of this.items)if(r.dom.parentNode==this.list){for(;t!=r.dom;)n();t=r.dom.nextSibling}else this.list.insertBefore(r.dom,t);for(;t;)n()}moveSelection(t){if(this.selectedIndex<0)return;let n=this.view.state.field(jp),r=VT(n.diagnostics,this.items[t].diagnostic);r&&this.view.dispatch({selection:{anchor:r.from,head:r.to},scrollIntoView:!0,effects:x1t.of(r)})}static open(t){return new _M(t)}}function DUn(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 eF(e){return DUn(`<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 LUn=Nt.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:eF("#d11")},".cm-lintRange-warning":{backgroundImage:eF("orange")},".cm-lintRange-info":{backgroundImage:eF("#999")},".cm-lintRange-hint":{backgroundImage:eF("#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 FUn(e){return e=="error"?4:e=="warning"?3:e=="info"?2:1}function zUn(e){let t="hint",n=1;for(let r of e){let s=FUn(r.severity);s>n&&(n=s,t=r.severity)}return t}const BUn=[jp,Nt.decorations.compute([jp],e=>{let{selected:t,panel:n}=e.field(jp);return!t||!n||t.from==t.to?jn.none:jn.set([NUn.range(t.from,t.to)])}),R6n(IUn,{hideOn:jUn}),LUn];var Tze=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(Nzn)),t.defaultKeymap!==!1&&(a=a.concat(KBn)),t.searchKeymap!==!1&&(a=a.concat(OUn)),t.historyKeymap!==!1&&(a=a.concat(sBn)),t.foldKeymap!==!1&&(a=a.concat(mFn)),t.completionKeymap!==!1&&(a=a.concat(g0t)),t.lintKeymap!==!1&&(a=a.concat($Un));var i=[];return t.lineNumbers!==!1&&i.push(H6n()),t.highlightActiveLineGutter!==!1&&i.push(G6n()),t.highlightSpecialChars!==!1&&i.push(o6n()),t.history!==!1&&i.push(Q7n()),t.foldGutter!==!1&&i.push(bFn()),t.drawSelection!==!1&&i.push(K5n()),t.dropCursor!==!1&&i.push(n6n()),t.allowMultipleSelections!==!1&&i.push(cs.allowMultipleSelections.of(!0)),t.indentOnInput!==!1&&i.push(oFn()),t.syntaxHighlighting!==!1&&i.push(U1(kFn,{fallback:!0})),t.bracketMatching!==!1&&i.push(NFn()),t.closeBrackets!==!1&&i.push(Czn()),t.autocompletion!==!1&&i.push(m0t()),t.rectangularSelection!==!1&&i.push(w6n()),s!==!1&&i.push(O6n()),t.highlightActiveLine!==!1&&i.push(p6n()),t.highlightSelectionMatches!==!1&&i.push(rUn()),t.tabSize&&typeof t.tabSize=="number"&&i.push(lI.of(" ".repeat(t.tabSize))),i.concat([oI.of(a.flat())]).filter(Boolean)};const UUn="#e5c07b",Nze="#e06c75",VUn="#56b6c2",qUn="#ffffff",I8="#abb2bf",ege="#7d8799",HUn="#61afef",WUn="#98c379",Ize="#d19a66",ZUn="#c678dd",GUn="#21252b",Aze="#2c313a",Rze="#282c34",iee="#353a42",QUn="#3E4451",Pze="#528bff",YUn=Nt.theme({"&":{color:I8,backgroundColor:Rze},".cm-content":{caretColor:Pze},".cm-cursor, .cm-dropCursor":{borderLeftColor:Pze},"&.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection":{backgroundColor:QUn},".cm-panels":{backgroundColor:GUn,color:I8},".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:Rze,color:ege,border:"none"},".cm-activeLineGutter":{backgroundColor:Aze},".cm-foldPlaceholder":{backgroundColor:"transparent",border:"none",color:"#ddd"},".cm-tooltip":{border:"none",backgroundColor:iee},".cm-tooltip .cm-tooltip-arrow:before":{borderTopColor:"transparent",borderBottomColor:"transparent"},".cm-tooltip .cm-tooltip-arrow:after":{borderTopColor:iee,borderBottomColor:iee},".cm-tooltip-autocomplete":{"& > ul > li[aria-selected]":{backgroundColor:Aze,color:I8}}},{dark:!0}),KUn=qg.define([{tag:he.keyword,color:ZUn},{tag:[he.name,he.deleted,he.character,he.propertyName,he.macroName],color:Nze},{tag:[he.function(he.variableName),he.labelName],color:HUn},{tag:[he.color,he.constant(he.name),he.standard(he.name)],color:Ize},{tag:[he.definition(he.name),he.separator],color:I8},{tag:[he.typeName,he.className,he.number,he.changed,he.annotation,he.modifier,he.self,he.namespace],color:UUn},{tag:[he.operator,he.operatorKeyword,he.url,he.escape,he.regexp,he.link,he.special(he.string)],color:VUn},{tag:[he.meta,he.comment],color:ege},{tag:he.strong,fontWeight:"bold"},{tag:he.emphasis,fontStyle:"italic"},{tag:he.strikethrough,textDecoration:"line-through"},{tag:he.link,color:ege,textDecoration:"underline"},{tag:he.heading,fontWeight:"bold",color:Nze},{tag:[he.atom,he.bool,he.special(he.variableName)],color:Ize},{tag:[he.processingInstruction,he.string,he.inserted],color:WUn},{tag:he.invalid,color:qUn}]),XUn=[YUn,U1(KUn)];var JUn=Nt.theme({"&":{backgroundColor:"#fff"}},{dark:!1}),eVn=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,g=[];switch(s&&g.unshift(oI.of([XBn])),m&&(typeof m=="boolean"?g.unshift(Tze()):g.unshift(Tze(m))),p&&g.unshift(v6n(p)),d){case"light":g.push(JUn);break;case"dark":g.push(XUn);break;case"none":break;default:g.push(d);break}return i===!1&&g.push(Nt.editable.of(!1)),c&&g.push(cs.readOnly.of(!0)),[...g]},tVn=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 nVn{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 $ze{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 oee=null,rVn=()=>typeof window>"u"?new $ze:(oee||(oee=new $ze),oee),sVn=Nt.theme({"& .cm-scroller":{height:"100% !important"}}),Mze=null,lee=null;function aVn(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===Mze||(Mze=i,lee=Nt.theme({"&":{height:e,minHeight:t,maxHeight:n,width:r,minWidth:s,maxWidth:a}})),lee}var Dze=By.define(),iVn=200,oVn=[];function lVn(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?oVn: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,g=m===void 0?null:m,y=e.maxHeight,b=y===void 0?null:y,x=e.width,w=x===void 0?null:x,k=e.minWidth,_=k===void 0?null:k,C=e.maxWidth,j=C===void 0?null:C,E=e.placeholder,N=E===void 0?"":E,I=e.editable,A=I===void 0?!0:I,R=e.readOnly,L=R===void 0?!1:R,D=e.indentWithTab,B=D===void 0?!0:D,H=e.basicSetup,F=H===void 0?!0:H,z=e.root,V=e.initialState,M=v.useState(),Q=M[0],q=M[1],$=v.useState(),U=$[0],Z=$[1],K=v.useState(),te=K[0],ne=K[1],J=v.useState(()=>({current:null}))[0],se=v.useState(()=>({current:null}))[0],ie=aVn(h,g,b,w,_,j),Y=Nt.updateListener.of(pe=>{if(pe.docChanged&&typeof r=="function"&&!pe.transactions.some(be=>be.annotation(Dze))){J.current?J.current.reset():(J.current=new nVn(()=>{if(se.current){var be=se.current;se.current=null,be()}J.current=null},iVn),rVn().add(J.current));var le=pe.state.doc,fe=le.toString();r(fe,pe)}s&&s(tVn(pe))}),ee=eVn({theme:f,editable:A,readOnly:L,placeholder:N,indentWithTab:B,basicSetup:F}),ue=[Y,...ie?[ie]:[],sVn,...ee];return i&&typeof i=="function"&&ue.push(Nt.updateListener.of(i)),ue=ue.concat(c),v.useLayoutEffect(()=>{if(Q&&!te){var pe={doc:t,selection:n,extensions:ue},le=V?cs.fromJSON(V.json,pe,V.fields):cs.create(pe);if(ne(le),!U){var fe=new Nt({state:le,parent:Q,root:z});Z(fe),a&&a(fe,le)}}return()=>{U&&(ne(void 0),Z(void 0))}},[Q,te]),v.useEffect(()=>{e.container&&q(e.container)},[e.container]),v.useEffect(()=>()=>{U&&(U.destroy(),Z(void 0)),J.current&&(J.current.cancel(),J.current=null)},[U]),v.useEffect(()=>{u&&U&&U.focus()},[u,U]),v.useEffect(()=>{U&&U.dispatch({effects:vr.reconfigure.of(ue)})},[f,c,h,g,b,w,_,j,N,A,L,B,F,r,i]),v.useEffect(()=>{if(t!==void 0){var pe=U?U.state.doc.toString():"";if(U&&t!==pe){var le=J.current&&!J.current.isDone,fe=()=>{U&&t!==U.state.doc.toString()&&U.dispatch({changes:{from:0,to:U.state.doc.toString().length,insert:t||""},annotations:[Dze.of(!0)]})};le?se.current=fe:fe()}}},[t,U]),{state:te,setState:ne,view:U,setView:Z,container:Q,setContainer:q}}var cVn=["className","value","selection","extensions","onChange","onStatistics","onCreateEditor","onUpdate","autoFocus","theme","height","minHeight","maxHeight","width","minWidth","maxWidth","basicSetup","placeholder","indentWithTab","editable","readOnly","root","initialState"],Xu=v.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,g=e.height,y=e.minHeight,b=e.maxHeight,x=e.width,w=e.minWidth,k=e.maxWidth,_=e.basicSetup,C=e.placeholder,j=e.indentWithTab,E=e.editable,N=e.readOnly,I=e.root,A=e.initialState,R=Nwt(e,cVn),L=v.useRef(null),D=lVn({root:I,value:s,autoFocus:p,theme:m,height:g,minHeight:y,maxHeight:b,width:x,minWidth:w,maxWidth:k,basicSetup:_,placeholder:C,indentWithTab:j,editable:E,readOnly:N,selection:a,onChange:c,onStatistics:u,onCreateEditor:d,onUpdate:f,extensions:l,initialState:A}),B=D.state,H=D.view,F=D.container,z=D.setContainer;v.useImperativeHandle(t,()=>({editor:L.current,state:B,view:H}),[L,F,B,H]);var V=v.useCallback(Q=>{L.current=Q,z(Q)},[z]);if(typeof s!="string")throw new Error("value must be typeof string but got "+typeof s);var M=typeof m=="string"?"cm-theme-"+m:"cm-theme";return o.jsx("div",UO({ref:V,className:""+M+(n?" "+n:"")},R))});Xu.displayName="CodeMirror";const uVn={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 cee=null;function dVn(){return cee||(cee=(async()=>{const[{createHighlighterCore:e},{createJavaScriptRegexEngine:t}]=await Promise.all([mo(()=>import("./core-Bgol4Bk3.js"),__vite__mapDeps([0,1,2]),import.meta.url),mo(()=>import("./engine-javascript-CSIo_1eZ.js"),__vite__mapDeps([3,1]),import.meta.url)]);return e({themes:[mo(()=>import("./github-light-DAi9KRSo.js"),[],import.meta.url),mo(()=>import("./github-dark-DHJKELXO.js"),[],import.meta.url)],langs:[mo(()=>import("./javascript-ySlJ1b_l.js"),[],import.meta.url),mo(()=>import("./typescript-Dj6nwHGl.js"),[],import.meta.url),mo(()=>import("./tsx-B6W0miNI.js"),[],import.meta.url),mo(()=>import("./jsx-BAng5TT0.js"),[],import.meta.url),mo(()=>import("./json-BQoSv7ci.js"),[],import.meta.url),mo(()=>import("./bash-atvbtKCR.js"),[],import.meta.url),mo(()=>import("./markdown-UIAJJxZW.js"),[],import.meta.url),mo(()=>import("./python-DhUJRlN_.js"),[],import.meta.url)],engine:t()})})()),cee}async function fVn(e,t){const n=uVn[t?.toLowerCase()];if(!n)return null;const r=await dVn(),{tokens:s}=r.codeToTokens(e,{lang:n,defaultColor:!1,themes:{light:"github-light",dark:"github-dark"}});return s}function pVn(e){return new LO(pSe.define(e))}const k1t=[sg.of({name:"JavaScript",alias:["ecmascript","js","node"],extensions:["js","mjs","cjs"],load(){return mo(()=>Promise.resolve().then(()=>Y6),void 0,import.meta.url).then(e=>e.javascript())}}),sg.of({name:"JSON",alias:["json5"],extensions:["json","map"],load(){return mo(()=>Promise.resolve().then(()=>UFn),void 0,import.meta.url).then(e=>e.json())}}),sg.of({name:"JSX",extensions:["jsx"],load(){return mo(()=>Promise.resolve().then(()=>Y6),void 0,import.meta.url).then(e=>e.javascript({jsx:!0}))}}),sg.of({name:"Markdown",extensions:["md","markdown","mkd"],load(){return mo(()=>Promise.resolve().then(()=>M7n),void 0,import.meta.url).then(e=>e.markdown())}}),sg.of({name:"TSX",extensions:["tsx"],load(){return mo(()=>Promise.resolve().then(()=>Y6),void 0,import.meta.url).then(e=>e.javascript({jsx:!0,typescript:!0}))}}),sg.of({name:"TypeScript",alias:["ts"],extensions:["ts","mts","cts"],load(){return mo(()=>Promise.resolve().then(()=>Y6),void 0,import.meta.url).then(e=>e.javascript({typescript:!0}))}}),sg.of({name:"Shell",alias:["bash","sh","zsh"],extensions:["sh","ksh","bash"],filename:/^PKGBUILD$/,load(){return mo(()=>import("./shell-CjFT_Tl9.js"),[],import.meta.url).then(e=>pVn(e.shell))}})];function hVn(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 mVn(e){const t=hVn(e);return m0t({override:[gVn(t)],defaultKeymap:!0,closeOnBlur:!0,icons:!1})}function gVn(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 g=u.state.sliceDoc(p,p+2)==="}}"?d.label:`${d.label}}}`;u.dispatch({changes:{from:f,to:p,insert:g},selection:{anchor:f+g.length}})}}));return{from:a,options:l,validFor:/^[a-zA-Z0-9_.\[\]]*$/}}}const vVn=/\{\{([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)*)\}\}/g,yVn=jn.mark({class:"cm-variable-highlight"}),Lze=new Txt({regexp:vVn,decoration:()=>yVn}),bVn=Co.fromClass(class{decorations;constructor(e){this.decorations=Lze.createDeco(e)}update(e){this.decorations=Lze.updateDeco(e,this.decorations)}},{decorations:e=>e.decorations}),xVn=bVn;function wVn(){const e=uI({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:[he.className,he.propertyName],color:"var(--neutral6)"},{tag:he.heading,color:"var(--accent3)",fontWeight:"bold"},{tag:[he.heading1,he.heading2,he.heading3,he.heading4,he.heading5,he.heading6],color:"var(--accent3)",fontWeight:"bold"},{tag:he.emphasis,fontStyle:"italic",color:"var(--neutral6)"},{tag:he.strong,fontWeight:"bold",color:"var(--neutral6)"},{tag:he.link,color:"var(--accent3)",textDecoration:"underline"},{tag:he.url,color:"var(--accent3)"},{tag:he.monospace,color:"var(--neutral6)"},{tag:he.strikethrough,textDecoration:"line-through"},{tag:he.quote,fontStyle:"italic",color:"var(--neutral2)"}]}),t=Nt.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 SVn(){const e=Nt.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=qg.define([{tag:[he.comment,he.bracket],color:"var(--neutral2)"},{tag:[he.string,he.meta,he.regexp],color:"var(--accent1)"},{tag:[he.atom,he.bool,he.special(he.variableName)],color:"var(--accent6)"},{tag:[he.keyword,he.operator,he.tagName],color:"var(--accent2)"},{tag:[he.function(he.propertyName),he.propertyName],color:"var(--accent5)"},{tag:[he.definition(he.variableName),he.function(he.variableName),he.className,he.attributeName],color:"var(--accent3)"},{tag:[he.variableName,he.number],color:"var(--accent5)"},{tag:[he.name,he.quote],color:"var(--accent1)"},{tag:he.heading,color:"var(--accent3)",fontWeight:"bold"},{tag:[he.heading1,he.heading2,he.heading3,he.heading4,he.heading5,he.heading6],color:"var(--accent3)",fontWeight:"bold"},{tag:[he.emphasis],fontStyle:"italic",color:"var(--neutral6)"},{tag:[he.strong],fontWeight:"bold",color:"var(--neutral6)"},{tag:he.link,color:"var(--accent3)",textDecoration:"underline"},{tag:he.url,color:"var(--accent3)"},{tag:he.monospace,color:"var(--neutral6)"},{tag:he.strikethrough,textDecoration:"line-through"},{tag:[he.deleted],color:"var(--accent2)"},{tag:he.invalid,color:"var(--error)"},{tag:[he.standard(he.tagName)],color:"var(--accent1)"}]);return[e,U1(t)]}const Jx=()=>{const e=U_().resolvedTheme==="dark";return v.useMemo(()=>e?wVn():SVn(),[e])},kVn=co(X("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"}}),OVn=eh.highest(Nt.editorAttributes.of({style:"outline: none"})),_Vn=eh.highest(Nt.theme({"&":{outline:"none"},"&.cm-focused":{outline:"none"},".cm-scroller":{outline:"none"},".cm-content":{outline:"none"},".cm-content:focus":{outline:"none"}})),CVn=[OVn,_Vn],Wr=v.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},g)=>{const y=Jx(),b=e?JSON.stringify(e,null,2):t??"",x=v.useMemo(()=>{const w=[...CVn];return f&&w.push(Nt.lineWrapping),a==="json"?w.push($p):a==="markdown"&&w.push(zSe({base:BO,codeLanguages:k1t})),i&&a==="markdown"&&w.push(xVn),c&&a==="markdown"&&w.push(mVn(c)),p===!1&&w.push(cs.readOnly.of(!0)),w},[a,i,c,p,f]);return o.jsxs("div",{className:X(kVn({variant:h}),s),...m,children:[r&&o.jsx(Pa,{content:b,className:"absolute top-2 right-2 z-20"}),o.jsx(Xu,{ref:g,value:b,theme:y,extensions:x,onChange:n,editable:p,"aria-label":"Code editor",placeholder:l,height:"100%",style:{height:"100%"},autoFocus:u,basicSetup:{lineNumbers:d}})]})}),EVn=e=>{try{return JSON.stringify(e??{},null,2)}catch{return"{}"}},jVn=({editorClassName:e="h-[240px] max-h-[40vh]",onSaved:t})=>{const n=Jx(),{settings:r,setSettings:s}=sH(),a=r?.tracingOptions,i=v.useMemo(()=>EVn(a),[a]),[l,c]=v.useState(()=>i),u=v.useRef(!1);v.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(Xu,{value:l,onChange:d,theme:n,extensions:[$p],className:X("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"})})]})},TVn=()=>{const[e,t]=v.useState(!1);return o.jsxs(o.Fragment,{children:[o.jsxs(Pn,{children:[o.jsx(An,{asChild:!0,children:o.jsx(ce,{type:"button",variant:"ghost",size:"icon-md","aria-label":"Run Options",onClick:()=>t(!0),children:o.jsx(qe,{children:o.jsx(QV,{})})})}),o.jsx(Rn,{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(Ks,{children:"Configure tracing and debug options for this workflow run"})]}),o.jsx($r,{children:o.jsx(jVn,{onSaved:()=>t(!1)})})]})})]})};function NVn({status:e}){switch(e){case"running":return o.jsx(Xt,{});case"failed":return o.jsx(bs,{className:"text-accent2"});case"canceled":return o.jsx(Rf,{className:"text-neutral3"});case"pending":case"waiting":return o.jsx(fT,{className:"text-neutral3"});case"suspended":return o.jsx(qV,{className:"text-accent3"});case"success":return o.jsx(fa,{className:"text-accent1"});default:return o.jsx(fT,{className:"text-neutral3"})}}function O1t({status:e}){return o.jsxs(Pn,{children:[o.jsx(An,{asChild:!0,children:o.jsx(qe,{"aria-label":e,className:"shrink-0",children:o.jsx(NVn,{status:e})})}),o.jsx(Rn,{children:e})]})}var uee,Fze;function QSe(){if(Fze)return uee;Fze=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([g,y]){d(g)&&f.setNode(g,y)}),Object.values(this._edgeObjs).forEach(function(g){f.hasNode(g.v)&&f.hasNode(g.w)&&f.setEdge(g,p.edge(g))});var h={};function m(g){var y=p.parent(g);return y===void 0||f.hasNode(y)?(h[g]=y,y):y in h?h[y]:m(y)}return this._isCompound&&f.nodes().forEach(g=>f.setParent(g,m(g))),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,g){return h.length>1?p.setEdge(m,g,f):p.setEdge(m,g),g}),this}setEdge(){var d,f,p,h,m=!1,g=arguments[0];typeof g=="object"&&g!==null&&"v"in g?(d=g.v,f=g.w,p=g.name,arguments.length===2&&(h=arguments[1],m=!0)):(d=g,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 g=h;h=m,m=g}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 g=h;h=m,m=g}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 uee=r,uee}var dee,zze;function IVn(){return zze||(zze=1,dee="2.2.4"),dee}var fee,Bze;function AVn(){return Bze||(Bze=1,fee={Graph:QSe(),version:IVn()}),fee}var pee,Uze;function RVn(){if(Uze)return pee;Uze=1;var e=QSe();pee={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 pee}var hee,Vze;function PVn(){if(Vze)return hee;Vze=1,hee=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 hee}var mee,qze;function _1t(){if(qze)return mee;qze=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 mee=e,mee}var gee,Hze;function C1t(){if(Hze)return gee;Hze=1;var e=_1t();gee=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,g=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<g.distance&&(g.distance=b,g.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 gee}var vee,Wze;function $Vn(){if(Wze)return vee;Wze=1;var e=C1t();vee=t;function t(n,r,s){return n.nodes().reduce(function(a,i){return a[i]=e(n,i,r,s),a},{})}return vee}var yee,Zze;function E1t(){if(Zze)return yee;Zze=1,yee=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 yee}var bee,Gze;function MVn(){if(Gze)return bee;Gze=1;var e=E1t();bee=t;function t(n){return e(n).filter(function(r){return r.length>1||r.length===1&&n.hasEdge(r[0],r[0])})}return bee}var xee,Qze;function DVn(){if(Qze)return xee;Qze=1,xee=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],g=f[p],y=h.distance+m.distance;y<g.distance&&(g.distance=y,g.predecessor=m.predecessor)})})}),i}return xee}var wee,Yze;function j1t(){if(Yze)return wee;Yze=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 wee=e,e.CycleException=t,wee}var See,Kze;function LVn(){if(Kze)return See;Kze=1;var e=j1t();See=t;function t(n){try{e(n)}catch(r){if(r instanceof e.CycleException)return!1;throw r}return!0}return See}var kee,Xze;function T1t(){if(Xze)return kee;Xze=1,kee=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 kee}var Oee,Jze;function FVn(){if(Jze)return Oee;Jze=1;var e=T1t();Oee=t;function t(n,r){return e(n,r,"post")}return Oee}var _ee,e8e;function zVn(){if(e8e)return _ee;e8e=1;var e=T1t();_ee=t;function t(n,r){return e(n,r,"pre")}return _ee}var Cee,t8e;function BVn(){if(t8e)return Cee;t8e=1;var e=QSe(),t=_1t();Cee=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 Cee}var Eee,n8e;function UVn(){return n8e||(n8e=1,Eee={components:PVn(),dijkstra:C1t(),dijkstraAll:$Vn(),findCycles:MVn(),floydWarshall:DVn(),isAcyclic:LVn(),postorder:FVn(),preorder:zVn(),prim:BVn(),tarjan:E1t(),topsort:j1t()}),Eee}var jee,r8e;function Lg(){if(r8e)return jee;r8e=1;var e=AVn();return jee={Graph:e.Graph,json:RVn(),alg:UVn(),version:e.version},jee}var Tee,s8e;function VVn(){if(s8e)return Tee;s8e=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 Tee=e,Tee}var Nee,a8e;function qVn(){if(a8e)return Nee;a8e=1;let e=Lg().Graph,t=VVn();Nee=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],g;for(;u.nodeCount();){for(;g=m.dequeue();)a(u,d,f,g);for(;g=h.dequeue();)a(u,d,f,g);if(u.nodeCount()){for(let y=d.length-2;y>0;--y)if(g=d[y].dequeue(),g){p=p.concat(a(u,d,f,g,!0));break}}}return p}function a(u,d,f,p,h){let m=h?[]:void 0;return u.inEdges(p.v).forEach(g=>{let y=u.edge(g),b=u.node(g.v);h&&m.push({v:g.v,w:g.w}),b.out-=y,l(d,f,b)}),u.outEdges(p.v).forEach(g=>{let y=u.edge(g),b=g.w,x=u.node(b);x.in-=y,l(d,f,x)}),u.removeNode(p.v),m}function i(u,d){let f=new e,p=0,h=0;u.nodes().forEach(y=>{f.setNode(y,{v:y,in:0,out:0})}),u.edges().forEach(y=>{let b=f.edge(y.v,y.w)||0,x=d(y),w=b+x;f.setEdge(y.v,y.w,w),h=Math.max(h,f.node(y.v).out+=x),p=Math.max(p,f.node(y.w).in+=x)});let m=c(h+p+3).map(()=>new t),g=p+1;return f.nodes().forEach(y=>{l(m,g,f.node(y))}),{graph:f,buckets:m,zeroIdx:g}}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 Nee}var Iee,i8e;function Ml(){if(i8e)return Iee;i8e=1;let e=Lg().Graph;Iee={addBorderNode:d,addDummyNode:t,applyWithChunking:h,asNonCompoundGraph:r,buildLayerMatrix:l,intersectRect:i,mapValues:C,maxRank:m,normalizeRanks:c,notime:b,partition:g,pick:_,predecessorWeights:a,range:k,removeEmptyRanks:u,simplify:n,successorWeights:s,time:y,uniqueId:w,zipObject:j};function t(E,N,I,A){for(var R=A;E.hasNode(R);)R=w(A);return I.dummy=N,E.setNode(R,I),R}function n(E){let N=new e().setGraph(E.graph());return E.nodes().forEach(I=>N.setNode(I,E.node(I))),E.edges().forEach(I=>{let A=N.edge(I.v,I.w)||{weight:0,minlen:1},R=E.edge(I);N.setEdge(I.v,I.w,{weight:A.weight+R.weight,minlen:Math.max(A.minlen,R.minlen)})}),N}function r(E){let N=new e({multigraph:E.isMultigraph()}).setGraph(E.graph());return E.nodes().forEach(I=>{E.children(I).length||N.setNode(I,E.node(I))}),E.edges().forEach(I=>{N.setEdge(I,E.edge(I))}),N}function s(E){let N=E.nodes().map(I=>{let A={};return E.outEdges(I).forEach(R=>{A[R.w]=(A[R.w]||0)+E.edge(R).weight}),A});return j(E.nodes(),N)}function a(E){let N=E.nodes().map(I=>{let A={};return E.inEdges(I).forEach(R=>{A[R.v]=(A[R.v]||0)+E.edge(R).weight}),A});return j(E.nodes(),N)}function i(E,N){let I=E.x,A=E.y,R=N.x-I,L=N.y-A,D=E.width/2,B=E.height/2;if(!R&&!L)throw new Error("Not possible to find intersection inside of the rectangle");let H,F;return Math.abs(L)*D>Math.abs(R)*B?(L<0&&(B=-B),H=B*R/L,F=B):(R<0&&(D=-D),H=D,F=D*L/R),{x:I+H,y:A+F}}function l(E){let N=k(m(E)+1).map(()=>[]);return E.nodes().forEach(I=>{let A=E.node(I),R=A.rank;R!==void 0&&(N[R][A.order]=I)}),N}function c(E){let N=E.nodes().map(A=>{let R=E.node(A).rank;return R===void 0?Number.MAX_VALUE:R}),I=h(Math.min,N);E.nodes().forEach(A=>{let R=E.node(A);Object.hasOwn(R,"rank")&&(R.rank-=I)})}function u(E){let N=E.nodes().map(D=>E.node(D).rank),I=h(Math.min,N),A=[];E.nodes().forEach(D=>{let B=E.node(D).rank-I;A[B]||(A[B]=[]),A[B].push(D)});let R=0,L=E.graph().nodeRankFactor;Array.from(A).forEach((D,B)=>{D===void 0&&B%L!==0?--R:D!==void 0&&R&&D.forEach(H=>E.node(H).rank+=R)})}function d(E,N,I,A){let R={width:0,height:0};return arguments.length>=4&&(R.rank=I,R.order=A),t(E,"border",R,N)}function f(E,N=p){const I=[];for(let A=0;A<E.length;A+=N){const R=E.slice(A,A+N);I.push(R)}return I}const p=65535;function h(E,N){if(N.length>p){const I=f(N);return E.apply(null,I.map(A=>E.apply(null,A)))}else return E.apply(null,N)}function m(E){const I=E.nodes().map(A=>{let R=E.node(A).rank;return R===void 0?Number.MIN_VALUE:R});return h(Math.max,I)}function g(E,N){let I={lhs:[],rhs:[]};return E.forEach(A=>{N(A)?I.lhs.push(A):I.rhs.push(A)}),I}function y(E,N){let I=Date.now();try{return N()}finally{console.log(E+" time: "+(Date.now()-I)+"ms")}}function b(E,N){return N()}let x=0;function w(E){var N=++x;return E+(""+N)}function k(E,N,I=1){N==null&&(N=E,E=0);let A=L=>L<N;I<0&&(A=L=>N<L);const R=[];for(let L=E;A(L);L+=I)R.push(L);return R}function _(E,N){const I={};for(const A of N)E[A]!==void 0&&(I[A]=E[A]);return I}function C(E,N){let I=N;return typeof N=="string"&&(I=A=>A[N]),Object.entries(E).reduce((A,[R,L])=>(A[R]=I(L,R),A),{})}function j(E,N){return E.reduce((I,A,R)=>(I[A]=N[R],I),{})}return Iee}var Aee,o8e;function HVn(){if(o8e)return Aee;o8e=1;let e=qVn(),t=Ml().uniqueId;Aee={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 Aee}var Ree,l8e;function WVn(){if(l8e)return Ree;l8e=1;let e=Ml();Ree={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,g;for(g=0,++l;l<u;++g,++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),g===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 Ree}var Pee,c8e;function wB(){if(c8e)return Pee;c8e=1;const{applyWithChunking:e}=Ml();Pee={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 Pee}var $ee,u8e;function N1t(){if(u8e)return $ee;u8e=1;var e=Lg().Graph,t=wB().slack;$ee=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 $ee}var Mee,d8e;function ZVn(){if(d8e)return Mee;d8e=1;var e=N1t(),t=wB().slack,n=wB().longestPath,r=Lg().alg.preorder,s=Lg().alg.postorder,a=Ml().simplify;Mee=i,i.initLowLimValues=d,i.initCutValues=l,i.calcCutValue=u,i.leaveEdge=p,i.enterEdge=h,i.exchangeEdges=m;function i(x){x=a(x),n(x);var w=e(x);d(w),l(w,x);for(var k,_;k=p(w);)_=h(w,x,k),m(w,x,k,_)}function l(x,w){var k=s(x,x.nodes());k=k.slice(0,k.length-1),k.forEach(_=>c(x,w,_))}function c(x,w,k){var _=x.node(k),C=_.parent;x.edge(k,C).cutvalue=u(x,w,k)}function u(x,w,k){var _=x.node(k),C=_.parent,j=!0,E=w.edge(k,C),N=0;return E||(j=!1,E=w.edge(C,k)),N=E.weight,w.nodeEdges(k).forEach(I=>{var A=I.v===k,R=A?I.w:I.v;if(R!==C){var L=A===j,D=w.edge(I).weight;if(N+=L?D:-D,y(x,k,R)){var B=x.edge(k,R).cutvalue;N+=L?-B:B}}}),N}function d(x,w){arguments.length<2&&(w=x.nodes()[0]),f(x,{},1,w)}function f(x,w,k,_,C){var j=k,E=x.node(_);return w[_]=!0,x.neighbors(_).forEach(N=>{Object.hasOwn(w,N)||(k=f(x,w,k,N,_))}),E.low=j,E.lim=k++,C?E.parent=C:delete E.parent,k}function p(x){return x.edges().find(w=>x.edge(w).cutvalue<0)}function h(x,w,k){var _=k.v,C=k.w;w.hasEdge(_,C)||(_=k.w,C=k.v);var j=x.node(_),E=x.node(C),N=j,I=!1;j.lim>E.lim&&(N=E,I=!0);var A=w.edges().filter(R=>I===b(x,x.node(R.v),N)&&I!==b(x,x.node(R.w),N));return A.reduce((R,L)=>t(w,L)<t(w,R)?L:R)}function m(x,w,k,_){var C=k.v,j=k.w;x.removeEdge(C,j),x.setEdge(_.v,_.w,{}),d(x),l(x,w),g(x,w)}function g(x,w){var k=x.nodes().find(C=>!w.node(C).parent),_=r(x,k);_=_.slice(1),_.forEach(C=>{var j=x.node(C).parent,E=w.edge(C,j),N=!1;E||(E=w.edge(j,C),N=!0),w.node(C).rank=w.node(j).rank+(N?E.minlen:-E.minlen)})}function y(x,w,k){return x.hasEdge(w,k)}function b(x,w,k){return k.low<=w.lim&&w.lim<=k.lim}return Mee}var Dee,f8e;function GVn(){if(f8e)return Dee;f8e=1;var e=wB(),t=e.longestPath,n=N1t(),r=ZVn();Dee=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 Dee}var Lee,p8e;function QVn(){if(p8e)return Lee;p8e=1,Lee=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 Lee}var Fee,h8e;function YVn(){if(h8e)return Fee;h8e=1;let e=Ml();Fee={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"),g=e.addBorderNode(i,"_bb"),y=i.node(p);i.setParent(m,p),y.borderTop=m,i.setParent(g,p),y.borderBottom=g,h.forEach(b=>{n(i,l,c,u,d,f,b);let x=i.node(b),w=x.borderTop?x.borderTop:b,k=x.borderBottom?x.borderBottom:b,_=x.borderTop?u:2*u,C=w!==k?1:d-f[p]+1;i.setEdge(m,w,{weight:_,minlen:C,nestingEdge:!0}),i.setEdge(k,g,{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 Fee}var zee,m8e;function KVn(){if(m8e)return zee;m8e=1;let e=Ml();zee=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 zee}var Bee,g8e;function XVn(){if(g8e)return Bee;g8e=1,Bee={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 Bee}var Uee,v8e;function JVn(){if(v8e)return Uee;v8e=1;let e=Ml();Uee=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 Uee}var Vee,y8e;function eqn(){if(y8e)return Vee;y8e=1;let e=Ml().zipObject;Vee=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 Vee}var qee,b8e;function tqn(){if(b8e)return qee;b8e=1,qee=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 qee}var Hee,x8e;function nqn(){if(x8e)return Hee;x8e=1;let e=Ml();Hee=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 Hee}var Wee,w8e;function rqn(){if(w8e)return Wee;w8e=1;let e=Ml();Wee=t;function t(s,a){let i=e.partition(s,m=>Object.hasOwn(m,"barycenter")),l=i.lhs,c=i.rhs.sort((m,g)=>g.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 Wee}var Zee,S8e;function sqn(){if(S8e)return Zee;S8e=1;let e=tqn(),t=nqn(),n=rqn();Zee=r;function r(i,l,c,u){let d=i.children(l),f=i.node(l),p=f?f.borderLeft:void 0,h=f?f.borderRight:void 0,m={};p&&(d=d.filter(x=>x!==p&&x!==h));let g=e(i,d);g.forEach(x=>{if(i.children(x.v).length){let w=r(i,x.v,c,u);m[x.v]=w,Object.hasOwn(w,"barycenter")&&a(x,w)}});let y=t(g,c);s(y,m);let b=n(y,u);if(p&&(b.vs=[p,b.vs,h].flat(!0),i.predecessors(p).length)){let x=i.node(i.predecessors(p)[0]),w=i.node(i.predecessors(h)[0]);Object.hasOwn(b,"barycenter")||(b.barycenter=0,b.weight=0),b.barycenter=(b.barycenter*b.weight+x.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 Zee}var Gee,k8e;function aqn(){if(k8e)return Gee;k8e=1;let e=Lg().Graph,t=Ml();Gee=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,g=u.edge(m,d),y=g!==void 0?g.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 Gee}var Qee,O8e;function iqn(){if(O8e)return Qee;O8e=1,Qee=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 Qee}var Yee,_8e;function oqn(){if(_8e)return Yee;_8e=1;let e=JVn(),t=eqn(),n=sqn(),r=aqn(),s=iqn(),a=Lg().Graph,i=Ml();Yee=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"),g=c(f,i.range(h-1,-1,-1),"outEdges"),y=e(f);if(d(f,y),p&&p.disableOptimalOrderHeuristic)return;let b=Number.POSITIVE_INFINITY,x;for(let w=0,k=0;k<4;++w,++k){u(w%2?m:g,w%4>=2),y=i.buildLayerMatrix(f);let _=t(f,y);_<b&&(k=0,x=Object.assign({},y),b=_)}d(f,x)}function c(f,p,h){const m=new Map,g=(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"&&g(b.rank,y),typeof b.minRank=="number"&&typeof b.maxRank=="number")for(let x=b.minRank;x<=b.maxRank;x++)x!==b.rank&&g(x,y)}return p.map(function(y){return r(f,y,h,m.get(y)||[])})}function u(f,p){let h=new a;f.forEach(function(m){let g=m.graph().root,y=n(m,g,h,p);y.vs.forEach((b,x)=>m.node(b).order=x),s(m,h,y.vs)})}function d(f,p){Object.values(p).forEach(h=>h.forEach((m,g)=>f.node(m).order=g))}return Yee}var Kee,C8e;function lqn(){if(C8e)return Kee;C8e=1;let e=Lg().Graph,t=Ml();Kee={positionX:h,findType1Conflicts:n,findType2Conflicts:r,addConflict:a,hasConflict:i,verticalAlignment:l,horizontalCompaction:c,alignCoordinates:f,findSmallestWidthAlignment:d,balance:p};function n(y,b){let x={};function w(k,_){let C=0,j=0,E=k.length,N=_[_.length-1];return _.forEach((I,A)=>{let R=s(y,I),L=R?y.node(R).order:E;(R||I===N)&&(_.slice(j,A+1).forEach(D=>{y.predecessors(D).forEach(B=>{let H=y.node(B),F=H.order;(F<C||L<F)&&!(H.dummy&&y.node(D).dummy)&&a(x,B,D)})}),j=A+1,C=L)}),_}return b.length&&b.reduce(w),x}function r(y,b){let x={};function w(_,C,j,E,N){let I;t.range(C,j).forEach(A=>{I=_[A],y.node(I).dummy&&y.predecessors(I).forEach(R=>{let L=y.node(R);L.dummy&&(L.order<E||L.order>N)&&a(x,R,I)})})}function k(_,C){let j=-1,E,N=0;return C.forEach((I,A)=>{if(y.node(I).dummy==="border"){let R=y.predecessors(I);R.length&&(E=y.node(R[0]).order,w(C,N,A,j,E),N=A,j=E)}w(C,N,C.length,E,_.length)}),C}return b.length&&b.reduce(k),x}function s(y,b){if(y.node(b).dummy)return y.predecessors(b).find(x=>y.node(x).dummy)}function a(y,b,x){if(b>x){let k=b;b=x,x=k}let w=y[b];w||(y[b]=w={}),w[x]=!0}function i(y,b,x){if(b>x){let w=b;b=x,x=w}return!!y[b]&&Object.hasOwn(y[b],x)}function l(y,b,x,w){let k={},_={},C={};return b.forEach(j=>{j.forEach((E,N)=>{k[E]=E,_[E]=E,C[E]=N})}),b.forEach(j=>{let E=-1;j.forEach(N=>{let I=w(N);if(I.length){I=I.sort((R,L)=>C[R]-C[L]);let A=(I.length-1)/2;for(let R=Math.floor(A),L=Math.ceil(A);R<=L;++R){let D=I[R];_[N]===N&&E<C[D]&&!i(x,N,D)&&(_[D]=N,_[N]=k[N]=k[D],E=C[D])}}})}),{root:k,align:_}}function c(y,b,x,w,k){let _={},C=u(y,b,x,k),j=k?"borderLeft":"borderRight";function E(A,R){let L=C.nodes(),D=L.pop(),B={};for(;D;)B[D]?A(D):(B[D]=!0,L.push(D),L=L.concat(R(D))),D=L.pop()}function N(A){_[A]=C.inEdges(A).reduce((R,L)=>Math.max(R,_[L.v]+C.edge(L)),0)}function I(A){let R=C.outEdges(A).reduce((D,B)=>Math.min(D,_[B.w]-C.edge(B)),Number.POSITIVE_INFINITY),L=y.node(A);R!==Number.POSITIVE_INFINITY&&L.borderType!==j&&(_[A]=Math.max(_[A],R))}return E(N,C.predecessors.bind(C)),E(I,C.successors.bind(C)),Object.keys(w).forEach(A=>_[A]=_[x[A]]),_}function u(y,b,x,w){let k=new e,_=y.graph(),C=m(_.nodesep,_.edgesep,w);return b.forEach(j=>{let E;j.forEach(N=>{let I=x[N];if(k.setNode(I),E){var A=x[E],R=k.edge(A,I);k.setEdge(A,I,Math.max(C(y,N,E),R||0))}E=N})}),k}function d(y,b){return Object.values(b).reduce((x,w)=>{let k=Number.NEGATIVE_INFINITY,_=Number.POSITIVE_INFINITY;Object.entries(w).forEach(([j,E])=>{let N=g(y,j)/2;k=Math.max(E+N,k),_=Math.min(E-N,_)});const C=k-_;return C<x[0]&&(x=[C,w]),x},[Number.POSITIVE_INFINITY,null])[1]}function f(y,b){let x=Object.values(b),w=t.applyWithChunking(Math.min,x),k=t.applyWithChunking(Math.max,x);["u","d"].forEach(_=>{["l","r"].forEach(C=>{let j=_+C,E=y[j];if(E===b)return;let N=Object.values(E),I=w-t.applyWithChunking(Math.min,N);C!=="l"&&(I=k-t.applyWithChunking(Math.max,N)),I&&(y[j]=t.mapValues(E,A=>A+I))})})}function p(y,b){return t.mapValues(y.ul,(x,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),x=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(j=>{j==="r"&&(k=k.map(A=>Object.values(A).reverse()));let E=(C==="u"?y.predecessors:y.successors).bind(y),N=l(y,k,x,E),I=c(y,k,N.root,N.align,j==="r");j==="r"&&(I=t.mapValues(I,A=>-A)),w[C+j]=I})});let _=d(y,w);return f(w,_),p(w,y.graph().align)}function m(y,b,x){return(w,k,_)=>{let C=w.node(k),j=w.node(_),E=0,N;if(E+=C.width/2,Object.hasOwn(C,"labelpos"))switch(C.labelpos.toLowerCase()){case"l":N=-C.width/2;break;case"r":N=C.width/2;break}if(N&&(E+=x?N:-N),N=0,E+=(C.dummy?b:y)/2,E+=(j.dummy?b:y)/2,E+=j.width/2,Object.hasOwn(j,"labelpos"))switch(j.labelpos.toLowerCase()){case"l":N=j.width/2;break;case"r":N=-j.width/2;break}return N&&(E+=x?N:-N),N=0,E}}function g(y,b){return y.node(b).width}return Kee}var Xee,E8e;function cqn(){if(E8e)return Xee;E8e=1;let e=Ml(),t=lqn().positionX;Xee=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 Xee}var Jee,j8e;function uqn(){if(j8e)return Jee;j8e=1;let e=HVn(),t=WVn(),n=GVn(),r=Ml().normalizeRanks,s=QVn(),a=Ml().removeEmptyRanks,i=YVn(),l=KVn(),c=XVn(),u=oqn(),d=cqn(),f=Ml(),p=Lg().Graph;Jee=h;function h($,U){let Z=U&&U.debugTiming?f.time:f.notime;Z("layout",()=>{let K=Z(" buildLayoutGraph",()=>E($));Z(" runLayout",()=>m(K,Z,U)),Z(" updateInputGraph",()=>g($,K))})}function m($,U,Z){U(" makeSpaceForEdgeLabels",()=>N($)),U(" removeSelfEdges",()=>z($)),U(" acyclic",()=>e.run($)),U(" nestingGraph.run",()=>i.run($)),U(" rank",()=>n(f.asNonCompoundGraph($))),U(" injectEdgeLabelProxies",()=>I($)),U(" removeEmptyRanks",()=>a($)),U(" nestingGraph.cleanup",()=>i.cleanup($)),U(" normalizeRanks",()=>r($)),U(" assignRankMinMax",()=>A($)),U(" removeEdgeLabelProxies",()=>R($)),U(" normalize.run",()=>t.run($)),U(" parentDummyChains",()=>s($)),U(" addBorderSegments",()=>l($)),U(" order",()=>u($,Z)),U(" insertSelfEdges",()=>V($)),U(" adjustCoordinateSystem",()=>c.adjust($)),U(" position",()=>d($)),U(" positionSelfEdges",()=>M($)),U(" removeBorderNodes",()=>F($)),U(" normalize.undo",()=>t.undo($)),U(" fixupEdgeLabelCoords",()=>B($)),U(" undoCoordinateSystem",()=>c.undo($)),U(" translateGraph",()=>L($)),U(" assignNodeIntersects",()=>D($)),U(" reversePoints",()=>H($)),U(" acyclic.undo",()=>e.undo($))}function g($,U){$.nodes().forEach(Z=>{let K=$.node(Z),te=U.node(Z);K&&(K.x=te.x,K.y=te.y,K.rank=te.rank,U.children(Z).length&&(K.width=te.width,K.height=te.height))}),$.edges().forEach(Z=>{let K=$.edge(Z),te=U.edge(Z);K.points=te.points,Object.hasOwn(te,"x")&&(K.x=te.x,K.y=te.y)}),$.graph().width=U.graph().width,$.graph().height=U.graph().height}let y=["nodesep","edgesep","ranksep","marginx","marginy"],b={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},x=["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"},j=["labelpos"];function E($){let U=new p({multigraph:!0,compound:!0}),Z=q($.graph());return U.setGraph(Object.assign({},b,Q(Z,y),f.pick(Z,x))),$.nodes().forEach(K=>{let te=q($.node(K));const ne=Q(te,w);Object.keys(k).forEach(J=>{ne[J]===void 0&&(ne[J]=k[J])}),U.setNode(K,ne),U.setParent(K,$.parent(K))}),$.edges().forEach(K=>{let te=q($.edge(K));U.setEdge(K,Object.assign({},C,Q(te,_),f.pick(te,j)))}),U}function N($){let U=$.graph();U.ranksep/=2,$.edges().forEach(Z=>{let K=$.edge(Z);K.minlen*=2,K.labelpos.toLowerCase()!=="c"&&(U.rankdir==="TB"||U.rankdir==="BT"?K.width+=K.labeloffset:K.height+=K.labeloffset)})}function I($){$.edges().forEach(U=>{let Z=$.edge(U);if(Z.width&&Z.height){let K=$.node(U.v),ne={rank:($.node(U.w).rank-K.rank)/2+K.rank,e:U};f.addDummyNode($,"edge-proxy",ne,"_ep")}})}function A($){let U=0;$.nodes().forEach(Z=>{let K=$.node(Z);K.borderTop&&(K.minRank=$.node(K.borderTop).rank,K.maxRank=$.node(K.borderBottom).rank,U=Math.max(U,K.maxRank))}),$.graph().maxRank=U}function R($){$.nodes().forEach(U=>{let Z=$.node(U);Z.dummy==="edge-proxy"&&($.edge(Z.e).labelRank=Z.rank,$.removeNode(U))})}function L($){let U=Number.POSITIVE_INFINITY,Z=0,K=Number.POSITIVE_INFINITY,te=0,ne=$.graph(),J=ne.marginx||0,se=ne.marginy||0;function ie(Y){let ee=Y.x,ue=Y.y,pe=Y.width,le=Y.height;U=Math.min(U,ee-pe/2),Z=Math.max(Z,ee+pe/2),K=Math.min(K,ue-le/2),te=Math.max(te,ue+le/2)}$.nodes().forEach(Y=>ie($.node(Y))),$.edges().forEach(Y=>{let ee=$.edge(Y);Object.hasOwn(ee,"x")&&ie(ee)}),U-=J,K-=se,$.nodes().forEach(Y=>{let ee=$.node(Y);ee.x-=U,ee.y-=K}),$.edges().forEach(Y=>{let ee=$.edge(Y);ee.points.forEach(ue=>{ue.x-=U,ue.y-=K}),Object.hasOwn(ee,"x")&&(ee.x-=U),Object.hasOwn(ee,"y")&&(ee.y-=K)}),ne.width=Z-U+J,ne.height=te-K+se}function D($){$.edges().forEach(U=>{let Z=$.edge(U),K=$.node(U.v),te=$.node(U.w),ne,J;Z.points?(ne=Z.points[0],J=Z.points[Z.points.length-1]):(Z.points=[],ne=te,J=K),Z.points.unshift(f.intersectRect(K,ne)),Z.points.push(f.intersectRect(te,J))})}function B($){$.edges().forEach(U=>{let Z=$.edge(U);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(U=>{let Z=$.edge(U);Z.reversed&&Z.points.reverse()})}function F($){$.nodes().forEach(U=>{if($.children(U).length){let Z=$.node(U),K=$.node(Z.borderTop),te=$.node(Z.borderBottom),ne=$.node(Z.borderLeft[Z.borderLeft.length-1]),J=$.node(Z.borderRight[Z.borderRight.length-1]);Z.width=Math.abs(J.x-ne.x),Z.height=Math.abs(te.y-K.y),Z.x=ne.x+Z.width/2,Z.y=K.y+Z.height/2}}),$.nodes().forEach(U=>{$.node(U).dummy==="border"&&$.removeNode(U)})}function z($){$.edges().forEach(U=>{if(U.v===U.w){var Z=$.node(U.v);Z.selfEdges||(Z.selfEdges=[]),Z.selfEdges.push({e:U,label:$.edge(U)}),$.removeEdge(U)}})}function V($){var U=f.buildLayerMatrix($);U.forEach(Z=>{var K=0;Z.forEach((te,ne)=>{var J=$.node(te);J.order=ne+K,(J.selfEdges||[]).forEach(se=>{f.addDummyNode($,"selfedge",{width:se.label.width,height:se.label.height,rank:J.rank,order:ne+ ++K,e:se.e,label:se.label},"_se")}),delete J.selfEdges})})}function M($){$.nodes().forEach(U=>{var Z=$.node(U);if(Z.dummy==="selfedge"){var K=$.node(Z.e.v),te=K.x+K.width/2,ne=K.y,J=Z.x-te,se=K.height/2;$.setEdge(Z.e,Z.label),$.removeNode(U),Z.label.points=[{x:te+2*J/3,y:ne-se},{x:te+5*J/6,y:ne-se},{x:te+J,y:ne},{x:te+5*J/6,y:ne+se},{x:te+2*J/3,y:ne+se}],Z.label.x=Z.x,Z.label.y=Z.y}})}function Q($,U){return f.mapValues(f.pick($,U),Number)}function q($){var U={};return $&&Object.entries($).forEach(([Z,K])=>{typeof Z=="string"&&(Z=Z.toLowerCase()),U[Z]=K}),U}return Jee}var ete,T8e;function dqn(){if(T8e)return ete;T8e=1;let e=Ml(),t=Lg().Graph;ete={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 ete}var tte,N8e;function fqn(){return N8e||(N8e=1,tte="1.1.8"),tte}var nte,I8e;function pqn(){return I8e||(I8e=1,nte={graphlib:Lg(),layout:uqn(),debug:dqn(),util:{time:Ml().time,notime:Ml().notime},version:fqn()}),nte}var hqn=pqn();const A8e=Fl(hqn);function Ul(e){if(typeof e=="string"||typeof e=="number")return""+e;let t="";if(Array.isArray(e))for(let n=0,r;n<e.length;n++)(r=Ul(e[n]))!==""&&(t+=(t&&" ")+r);else for(let n in e)e[n]&&(t+=(t&&" ")+n);return t}var mqn={value:()=>{}};function AH(){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 A8(n)}function A8(e){this._=e}function gqn(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}})}A8.prototype=AH.prototype={constructor:A8,on:function(e,t){var n=this._,r=gqn(e+"",n),s,a=-1,i=r.length;if(arguments.length<2){for(;++a<i;)if((s=(e=r[a]).type)&&(s=vqn(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]=R8e(n[s],e.name,t);else if(t==null)for(s in n)n[s]=R8e(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 A8(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 vqn(e,t){for(var n=0,r=e.length,s;n<r;++n)if((s=e[n]).name===t)return s.value}function R8e(e,t,n){for(var r=0,s=e.length;r<s;++r)if(e[r].name===t){e[r]=mqn,e=e.slice(0,r).concat(e.slice(r+1));break}return n!=null&&e.push({name:t,value:n}),e}var tge="http://www.w3.org/1999/xhtml";const P8e={svg:"http://www.w3.org/2000/svg",xhtml:tge,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function RH(e){var t=e+="",n=t.indexOf(":");return n>=0&&(t=e.slice(0,n))!=="xmlns"&&(e=e.slice(n+1)),P8e.hasOwnProperty(t)?{space:P8e[t],local:e}:e}function yqn(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===tge&&t.documentElement.namespaceURI===tge?t.createElement(e):t.createElementNS(n,e)}}function bqn(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function I1t(e){var t=RH(e);return(t.local?bqn:yqn)(t)}function xqn(){}function YSe(e){return e==null?xqn:function(){return this.querySelector(e)}}function wqn(e){typeof e!="function"&&(e=YSe(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 Zp(r,this._parents)}function Sqn(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function kqn(){return[]}function A1t(e){return e==null?kqn:function(){return this.querySelectorAll(e)}}function Oqn(e){return function(){return Sqn(e.apply(this,arguments))}}function _qn(e){typeof e=="function"?e=Oqn(e):e=A1t(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 Zp(r,s)}function R1t(e){return function(){return this.matches(e)}}function P1t(e){return function(t){return t.matches(e)}}var Cqn=Array.prototype.find;function Eqn(e){return function(){return Cqn.call(this.children,e)}}function jqn(){return this.firstElementChild}function Tqn(e){return this.select(e==null?jqn:Eqn(typeof e=="function"?e:P1t(e)))}var Nqn=Array.prototype.filter;function Iqn(){return Array.from(this.children)}function Aqn(e){return function(){return Nqn.call(this.children,e)}}function Rqn(e){return this.selectAll(e==null?Iqn:Aqn(typeof e=="function"?e:P1t(e)))}function Pqn(e){typeof e!="function"&&(e=R1t(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 Zp(r,this._parents)}function $1t(e){return new Array(e.length)}function $qn(){return new Zp(this._enter||this._groups.map($1t),this._parents)}function SB(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}SB.prototype={constructor:SB,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 Mqn(e){return function(){return e}}function Dqn(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 SB(e,a[i]);for(;i<c;++i)(l=t[i])&&(s[i]=l)}function Lqn(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 SB(e,a[l]);for(l=0;l<d;++l)(c=t[l])&&u.get(p[l])===c&&(s[l]=c)}function Fqn(e){return e.__data__}function zqn(e,t){if(!arguments.length)return Array.from(this,Fqn);var n=t?Lqn:Dqn,r=this._parents,s=this._groups;typeof e!="function"&&(e=Mqn(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=Bqn(e.call(d,d&&d.__data__,u,r)),m=h.length,g=l[u]=new Array(m),y=i[u]=new Array(m),b=c[u]=new Array(p);n(d,f,g,y,b,h,t);for(var x=0,w=0,k,_;x<m;++x)if(k=g[x]){for(x>=w&&(w=x+1);!(_=y[w])&&++w<m;);k._next=_||null}}return i=new Zp(i,r),i._enter=l,i._exit=c,i}function Bqn(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function Uqn(){return new Zp(this._exit||this._groups.map($1t),this._parents)}function Vqn(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 qqn(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 Zp(l,this._parents)}function Hqn(){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 Wqn(e){e||(e=Zqn);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 Zp(s,this._parents).order()}function Zqn(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 Qqn(){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 Kqn(){let e=0;for(const t of this)++e;return e}function Xqn(){return!this.node()}function Jqn(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 eHn(e){return function(){this.removeAttribute(e)}}function tHn(e){return function(){this.removeAttributeNS(e.space,e.local)}}function nHn(e,t){return function(){this.setAttribute(e,t)}}function rHn(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function sHn(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}}function aHn(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 iHn(e,t){var n=RH(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?tHn:eHn:typeof t=="function"?n.local?aHn:sHn:n.local?rHn:nHn)(n,t))}function M1t(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function oHn(e){return function(){this.style.removeProperty(e)}}function lHn(e,t,n){return function(){this.style.setProperty(e,t,n)}}function cHn(e,t,n){return function(){var r=t.apply(this,arguments);r==null?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function uHn(e,t,n){return arguments.length>1?this.each((t==null?oHn:typeof t=="function"?cHn:lHn)(e,t,n??"")):qT(this.node(),e)}function qT(e,t){return e.style.getPropertyValue(t)||M1t(e).getComputedStyle(e,null).getPropertyValue(t)}function dHn(e){return function(){delete this[e]}}function fHn(e,t){return function(){this[e]=t}}function pHn(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function hHn(e,t){return arguments.length>1?this.each((t==null?dHn:typeof t=="function"?pHn:fHn)(e,t)):this.node()[e]}function D1t(e){return e.trim().split(/^|\s+/)}function KSe(e){return e.classList||new L1t(e)}function L1t(e){this._node=e,this._names=D1t(e.getAttribute("class")||"")}L1t.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 F1t(e,t){for(var n=KSe(e),r=-1,s=t.length;++r<s;)n.add(t[r])}function z1t(e,t){for(var n=KSe(e),r=-1,s=t.length;++r<s;)n.remove(t[r])}function mHn(e){return function(){F1t(this,e)}}function gHn(e){return function(){z1t(this,e)}}function vHn(e,t){return function(){(t.apply(this,arguments)?F1t:z1t)(this,e)}}function yHn(e,t){var n=D1t(e+"");if(arguments.length<2){for(var r=KSe(this.node()),s=-1,a=n.length;++s<a;)if(!r.contains(n[s]))return!1;return!0}return this.each((typeof t=="function"?vHn:t?mHn:gHn)(n,t))}function bHn(){this.textContent=""}function xHn(e){return function(){this.textContent=e}}function wHn(e){return function(){var t=e.apply(this,arguments);this.textContent=t??""}}function SHn(e){return arguments.length?this.each(e==null?bHn:(typeof e=="function"?wHn:xHn)(e)):this.node().textContent}function kHn(){this.innerHTML=""}function OHn(e){return function(){this.innerHTML=e}}function _Hn(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??""}}function CHn(e){return arguments.length?this.each(e==null?kHn:(typeof e=="function"?_Hn:OHn)(e)):this.node().innerHTML}function EHn(){this.nextSibling&&this.parentNode.appendChild(this)}function jHn(){return this.each(EHn)}function THn(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function NHn(){return this.each(THn)}function IHn(e){var t=typeof e=="function"?e:I1t(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function AHn(){return null}function RHn(e,t){var n=typeof e=="function"?e:I1t(e),r=t==null?AHn:typeof t=="function"?t:YSe(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})}function PHn(){var e=this.parentNode;e&&e.removeChild(this)}function $Hn(){return this.each(PHn)}function MHn(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function DHn(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function LHn(e){return this.select(e?DHn:MHn)}function FHn(e){return arguments.length?this.property("__data__",e):this.node().__data__}function zHn(e){return function(t){e.call(this,t,this.__data__)}}function BHn(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 UHn(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 VHn(e,t,n){return function(){var r=this.__on,s,a=zHn(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 qHn(e,t,n){var r=BHn(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?VHn:UHn,s=0;s<a;++s)this.each(l(r[s],t,n));return this}function B1t(e,t,n){var r=M1t(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 HHn(e,t){return function(){return B1t(this,e,t)}}function WHn(e,t){return function(){return B1t(this,e,t.apply(this,arguments))}}function ZHn(e,t){return this.each((typeof t=="function"?WHn:HHn)(e,t))}function*GHn(){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 U1t=[null];function Zp(e,t){this._groups=e,this._parents=t}function F3(){return new Zp([[document.documentElement]],U1t)}function QHn(){return this}Zp.prototype=F3.prototype={constructor:Zp,select:wqn,selectAll:_qn,selectChild:Tqn,selectChildren:Rqn,filter:Pqn,data:zqn,enter:$qn,exit:Uqn,join:Vqn,merge:qqn,selection:QHn,order:Hqn,sort:Wqn,call:Gqn,nodes:Qqn,node:Yqn,size:Kqn,empty:Xqn,each:Jqn,attr:iHn,style:uHn,property:hHn,classed:yHn,text:SHn,html:CHn,raise:jHn,lower:NHn,append:IHn,insert:RHn,remove:$Hn,clone:LHn,datum:FHn,on:qHn,dispatch:ZHn,[Symbol.iterator]:GHn};function Op(e){return typeof e=="string"?new Zp([[document.querySelector(e)]],[document.documentElement]):new Zp([[e]],U1t)}function YHn(e){let t;for(;t=e.sourceEvent;)e=t;return e}function ag(e,t){if(e=YHn(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 KHn={passive:!1},CM={capture:!0,passive:!1};function rte(e){e.stopImmediatePropagation()}function Wj(e){e.preventDefault(),e.stopImmediatePropagation()}function V1t(e){var t=e.document.documentElement,n=Op(e).on("dragstart.drag",Wj,CM);"onselectstart"in t?n.on("selectstart.drag",Wj,CM):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect="none")}function q1t(e,t){var n=e.document.documentElement,r=Op(e).on("dragstart.drag",null);t&&(r.on("click.drag",Wj,CM),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 tF=e=>()=>e;function nge(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}})}nge.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function XHn(e){return!e.ctrlKey&&!e.button}function JHn(){return this.parentNode}function eWn(e,t){return t??{x:e.x,y:e.y}}function tWn(){return navigator.maxTouchPoints||"ontouchstart"in this}function H1t(){var e=XHn,t=JHn,n=eWn,r=tWn,s={},a=AH("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,KHn).on("touchend.drag touchcancel.drag",x).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function h(k,_){if(!(d||!e.call(this,k,_))){var C=w(this,t.call(this,k,_),k,_,"mouse");C&&(Op(k.view).on("mousemove.drag",m,CM).on("mouseup.drag",g,CM),V1t(k.view),rte(k),u=!1,l=k.clientX,c=k.clientY,C("start",k))}}function m(k){if(Wj(k),!u){var _=k.clientX-l,C=k.clientY-c;u=_*_+C*C>f}s.mouse("drag",k)}function g(k){Op(k.view).on("mousemove.drag mouseup.drag",null),q1t(k.view,u),Wj(k),s.mouse("end",k)}function y(k,_){if(e.call(this,k,_)){var C=k.changedTouches,j=t.call(this,k,_),E=C.length,N,I;for(N=0;N<E;++N)(I=w(this,j,k,_,C[N].identifier,C[N]))&&(rte(k),I("start",k,C[N]))}}function b(k){var _=k.changedTouches,C=_.length,j,E;for(j=0;j<C;++j)(E=s[_[j].identifier])&&(Wj(k),E("drag",k,_[j]))}function x(k){var _=k.changedTouches,C=_.length,j,E;for(d&&clearTimeout(d),d=setTimeout(function(){d=null},500),j=0;j<C;++j)(E=s[_[j].identifier])&&(rte(k),E("end",k,_[j]))}function w(k,_,C,j,E,N){var I=a.copy(),A=ag(N||C,_),R,L,D;if((D=n.call(k,new nge("beforestart",{sourceEvent:C,target:p,identifier:E,active:i,x:A[0],y:A[1],dx:0,dy:0,dispatch:I}),j))!=null)return R=D.x-A[0]||0,L=D.y-A[1]||0,function B(H,F,z){var V=A,M;switch(H){case"start":s[E]=B,M=i++;break;case"end":delete s[E],--i;case"drag":A=ag(z||F,_),M=i;break}I.call(H,k,new nge(H,{sourceEvent:F,subject:D,target:p,identifier:E,active:M,x:A[0]+R,y:A[1]+L,dx:A[0]-V[0],dy:A[1]-V[1],dispatch:I}),j)}}return p.filter=function(k){return arguments.length?(e=typeof k=="function"?k:tF(!!k),p):e},p.container=function(k){return arguments.length?(t=typeof k=="function"?k:tF(k),p):t},p.subject=function(k){return arguments.length?(n=typeof k=="function"?k:tF(k),p):n},p.touchable=function(k){return arguments.length?(r=typeof k=="function"?k:tF(!!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 XSe(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function W1t(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function z3(){}var EM=.7,kB=1/EM,Zj="\\s*([+-]?\\d+)\\s*",jM="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",ay="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",nWn=/^#([0-9a-f]{3,8})$/,rWn=new RegExp(`^rgb\\(${Zj},${Zj},${Zj}\\)$`),sWn=new RegExp(`^rgb\\(${ay},${ay},${ay}\\)$`),aWn=new RegExp(`^rgba\\(${Zj},${Zj},${Zj},${jM}\\)$`),iWn=new RegExp(`^rgba\\(${ay},${ay},${ay},${jM}\\)$`),oWn=new RegExp(`^hsl\\(${jM},${ay},${ay}\\)$`),lWn=new RegExp(`^hsla\\(${jM},${ay},${ay},${jM}\\)$`),$8e={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};XSe(z3,VO,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:M8e,formatHex:M8e,formatHex8:cWn,formatHsl:uWn,formatRgb:D8e,toString:D8e});function M8e(){return this.rgb().formatHex()}function cWn(){return this.rgb().formatHex8()}function uWn(){return Z1t(this).formatHsl()}function D8e(){return this.rgb().formatRgb()}function VO(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=nWn.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?L8e(t):n===3?new gf(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?nF(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?nF(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=rWn.exec(e))?new gf(t[1],t[2],t[3],1):(t=sWn.exec(e))?new gf(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=aWn.exec(e))?nF(t[1],t[2],t[3],t[4]):(t=iWn.exec(e))?nF(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=oWn.exec(e))?B8e(t[1],t[2]/100,t[3]/100,1):(t=lWn.exec(e))?B8e(t[1],t[2]/100,t[3]/100,t[4]):$8e.hasOwnProperty(e)?L8e($8e[e]):e==="transparent"?new gf(NaN,NaN,NaN,0):null}function L8e(e){return new gf(e>>16&255,e>>8&255,e&255,1)}function nF(e,t,n,r){return r<=0&&(e=t=n=NaN),new gf(e,t,n,r)}function dWn(e){return e instanceof z3||(e=VO(e)),e?(e=e.rgb(),new gf(e.r,e.g,e.b,e.opacity)):new gf}function rge(e,t,n,r){return arguments.length===1?dWn(e):new gf(e,t,n,r??1)}function gf(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}XSe(gf,rge,W1t(z3,{brighter(e){return e=e==null?kB:Math.pow(kB,e),new gf(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?EM:Math.pow(EM,e),new gf(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new gf(Kk(this.r),Kk(this.g),Kk(this.b),OB(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:F8e,formatHex:F8e,formatHex8:fWn,formatRgb:z8e,toString:z8e}));function F8e(){return`#${Ak(this.r)}${Ak(this.g)}${Ak(this.b)}`}function fWn(){return`#${Ak(this.r)}${Ak(this.g)}${Ak(this.b)}${Ak((isNaN(this.opacity)?1:this.opacity)*255)}`}function z8e(){const e=OB(this.opacity);return`${e===1?"rgb(":"rgba("}${Kk(this.r)}, ${Kk(this.g)}, ${Kk(this.b)}${e===1?")":`, ${e})`}`}function OB(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Kk(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Ak(e){return e=Kk(e),(e<16?"0":"")+e.toString(16)}function B8e(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new fg(e,t,n,r)}function Z1t(e){if(e instanceof fg)return new fg(e.h,e.s,e.l,e.opacity);if(e instanceof z3||(e=VO(e)),!e)return new fg;if(e instanceof fg)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 fg(i,l,c,e.opacity)}function pWn(e,t,n,r){return arguments.length===1?Z1t(e):new fg(e,t,n,r??1)}function fg(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}XSe(fg,pWn,W1t(z3,{brighter(e){return e=e==null?kB:Math.pow(kB,e),new fg(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?EM:Math.pow(EM,e),new fg(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 gf(ste(e>=240?e-240:e+120,s,r),ste(e,s,r),ste(e<120?e+240:e-120,s,r),this.opacity)},clamp(){return new fg(U8e(this.h),rF(this.s),rF(this.l),OB(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=OB(this.opacity);return`${e===1?"hsl(":"hsla("}${U8e(this.h)}, ${rF(this.s)*100}%, ${rF(this.l)*100}%${e===1?")":`, ${e})`}`}}));function U8e(e){return e=(e||0)%360,e<0?e+360:e}function rF(e){return Math.max(0,Math.min(1,e||0))}function ste(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 JSe=e=>()=>e;function hWn(e,t){return function(n){return e+n*t}}function mWn(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 gWn(e){return(e=+e)==1?G1t:function(t,n){return n-t?mWn(t,n,e):JSe(isNaN(t)?n:t)}}function G1t(e,t){var n=t-e;return n?hWn(e,n):JSe(isNaN(e)?t:e)}const _B=(function e(t){var n=gWn(t);function r(s,a){var i=n((s=rge(s)).r,(a=rge(a)).r),l=n(s.g,a.g),c=n(s.b,a.b),u=G1t(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 vWn(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 yWn(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function bWn(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]=dx(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 xWn(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function og(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function wWn(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]=dx(e[s],t[s]):r[s]=t[s];return function(a){for(s in n)r[s]=n[s](a);return r}}var sge=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,ate=new RegExp(sge.source,"g");function SWn(e){return function(){return e}}function kWn(e){return function(t){return e(t)+""}}function Q1t(e,t){var n=sge.lastIndex=ate.lastIndex=0,r,s,a,i=-1,l=[],c=[];for(e=e+"",t=t+"";(r=sge.exec(e))&&(s=ate.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:og(r,s)})),n=ate.lastIndex;return n<t.length&&(a=t.slice(n),l[i]?l[i]+=a:l[++i]=a),l.length<2?c[0]?kWn(c[0].x):SWn(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 dx(e,t){var n=typeof t,r;return t==null||n==="boolean"?JSe(t):(n==="number"?og:n==="string"?(r=VO(t))?(t=r,_B):Q1t:t instanceof VO?_B:t instanceof Date?xWn:yWn(t)?vWn:Array.isArray(t)?bWn:typeof t.valueOf!="function"&&typeof t.toString!="function"||isNaN(t)?wWn:og)(e,t)}function eke(e,t){return e=+e,t=+t,function(n){return Math.round(e*(1-n)+t*n)}}var V8e=180/Math.PI,age={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Y1t(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)*V8e,skewX:Math.atan(c)*V8e,scaleX:i,scaleY:l}}var sF;function OWn(e){const t=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?age:Y1t(t.a,t.b,t.c,t.d,t.e,t.f)}function _Wn(e){return e==null||(sF||(sF=document.createElementNS("http://www.w3.org/2000/svg","g")),sF.setAttribute("transform",e),!(e=sF.transform.baseVal.consolidate()))?age:(e=e.matrix,Y1t(e.a,e.b,e.c,e.d,e.e,e.f))}function K1t(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 g=h.push("translate(",null,t,null,n);m.push({i:g-4,x:og(u,f)},{i:g-2,x:og(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:og(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:og(u,d)}):d&&f.push(s(f)+"skewX("+d+r)}function c(u,d,f,p,h,m){if(u!==f||d!==p){var g=h.push(s(h)+"scale(",null,",",null,")");m.push({i:g-4,x:og(u,f)},{i:g-2,x:og(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,g=p.length,y;++m<g;)f[(y=p[m]).i]=y.x(h);return f.join("")}}}var CWn=K1t(OWn,"px, ","px)","deg)"),EWn=K1t(_Wn,", ",")",")"),jWn=1e-12;function q8e(e){return((e=Math.exp(e))+1/e)/2}function TWn(e){return((e=Math.exp(e))-1/e)/2}function NWn(e){return((e=Math.exp(2*e))-1)/(e+1)}const R8=(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,g=h*h+m*m,y,b;if(g<jWn)b=Math.log(p/u)/t,y=function(j){return[l+j*h,c+j*m,u*Math.exp(t*j*b)]};else{var x=Math.sqrt(g),w=(p*p-u*u+r*g)/(2*u*n*x),k=(p*p-u*u-r*g)/(2*p*n*x),_=Math.log(Math.sqrt(w*w+1)-w),C=Math.log(Math.sqrt(k*k+1)-k);b=(C-_)/t,y=function(j){var E=j*b,N=q8e(_),I=u/(n*x)*(N*NWn(t*E+_)-TWn(_));return[l+I*h,c+I*m,u*N/q8e(t*E+_)]}}return y.duration=b*1e3*t/Math.SQRT2,y}return s.rho=function(a){var i=Math.max(.001,+a),l=i*i,c=l*l;return e(i,l,c)},s})(Math.SQRT2,2,4);function IWn(e,t){t===void 0&&(t=e,e=dx);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 HT=0,DP=0,xR=0,X1t=1e3,CB,LP,EB=0,qO=0,PH=0,TM=typeof performance=="object"&&performance.now?performance:Date,J1t=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function tke(){return qO||(J1t(AWn),qO=TM.now()+PH)}function AWn(){qO=0}function jB(){this._call=this._time=this._next=null}jB.prototype=eSt.prototype={constructor:jB,restart:function(e,t,n){if(typeof e!="function")throw new TypeError("callback is not a function");n=(n==null?tke():+n)+(t==null?0:+t),!this._next&&LP!==this&&(LP?LP._next=this:CB=this,LP=this),this._call=e,this._time=n,ige()},stop:function(){this._call&&(this._call=null,this._time=1/0,ige())}};function eSt(e,t,n){var r=new jB;return r.restart(e,t,n),r}function RWn(){tke(),++HT;for(var e=CB,t;e;)(t=qO-e._time)>=0&&e._call.call(void 0,t),e=e._next;--HT}function H8e(){qO=(EB=TM.now())+PH,HT=DP=0;try{RWn()}finally{HT=0,$Wn(),qO=0}}function PWn(){var e=TM.now(),t=e-EB;t>X1t&&(PH-=t,EB=e)}function $Wn(){for(var e,t=CB,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:CB=n);LP=e,ige(r)}function ige(e){if(!HT){DP&&(DP=clearTimeout(DP));var t=e-qO;t>24?(e<1/0&&(DP=setTimeout(H8e,e-TM.now()-PH)),xR&&(xR=clearInterval(xR))):(xR||(EB=TM.now(),xR=setInterval(PWn,X1t)),HT=1,J1t(H8e))}}function W8e(e,t,n){var r=new jB;return t=t==null?0:+t,r.restart(s=>{r.stop(),e(s+t)},t,n),r}var MWn=AH("start","end","cancel","interrupt"),DWn=[],tSt=0,Z8e=1,oge=2,P8=3,G8e=4,lge=5,$8=6;function $H(e,t,n,r,s,a){var i=e.__transition;if(!i)e.__transition={};else if(n in i)return;LWn(e,n,{name:t,index:r,group:s,on:MWn,tween:DWn,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:tSt})}function nke(e,t){var n=Zg(e,t);if(n.state>tSt)throw new Error("too late; already scheduled");return n}function Vy(e,t){var n=Zg(e,t);if(n.state>P8)throw new Error("too late; already running");return n}function Zg(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function LWn(e,t,n){var r=e.__transition,s;r[t]=n,n.timer=eSt(a,0,n.time);function a(u){n.state=Z8e,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!==Z8e)return c();for(d in r)if(h=r[d],h.name===n.name){if(h.state===P8)return W8e(i);h.state===G8e?(h.state=$8,h.timer.stop(),h.on.call("interrupt",e,e.__data__,h.index,h.group),delete r[d]):+d<t&&(h.state=$8,h.timer.stop(),h.on.call("cancel",e,e.__data__,h.index,h.group),delete r[d])}if(W8e(function(){n.state===P8&&(n.state=G8e,n.timer.restart(l,n.delay,n.time),l(u))}),n.state=oge,n.on.call("start",e,e.__data__,n.index,n.group),n.state===oge){for(n.state=P8,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=lge,1),f=-1,p=s.length;++f<p;)s[f].call(e,d);n.state===lge&&(n.on.call("end",e,e.__data__,n.index,n.group),c())}function c(){n.state=$8,n.timer.stop(),delete r[t];for(var u in r)return;delete e.__transition}}function M8(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>oge&&r.state<lge,r.state=$8,r.timer.stop(),r.on.call(s?"interrupt":"cancel",e,e.__data__,r.index,r.group),delete n[i]}a&&delete e.__transition}}function FWn(e){return this.each(function(){M8(this,e)})}function zWn(e,t){var n,r;return function(){var s=Vy(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 BWn(e,t,n){var r,s;if(typeof n!="function")throw new Error;return function(){var a=Vy(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 UWn(e,t){var n=this._id;if(e+="",arguments.length<2){for(var r=Zg(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?zWn:BWn)(n,e,t))}function rke(e,t,n){var r=e._id;return e.each(function(){var s=Vy(this,r);(s.value||(s.value={}))[t]=n.apply(this,arguments)}),function(s){return Zg(s,r).value[t]}}function nSt(e,t){var n;return(typeof t=="number"?og:t instanceof VO?_B:(n=VO(t))?(t=n,_B):Q1t)(e,t)}function VWn(e){return function(){this.removeAttribute(e)}}function qWn(e){return function(){this.removeAttributeNS(e.space,e.local)}}function HWn(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 WWn(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 ZWn(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 GWn(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 QWn(e,t){var n=RH(e),r=n==="transform"?EWn:nSt;return this.attrTween(e,typeof t=="function"?(n.local?GWn:ZWn)(n,r,rke(this,"attr."+e,t)):t==null?(n.local?qWn:VWn)(n):(n.local?WWn:HWn)(n,r,t))}function YWn(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function KWn(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function XWn(e,t){var n,r;function s(){var a=t.apply(this,arguments);return a!==r&&(n=(r=a)&&KWn(e,a)),n}return s._value=t,s}function JWn(e,t){var n,r;function s(){var a=t.apply(this,arguments);return a!==r&&(n=(r=a)&&YWn(e,a)),n}return s._value=t,s}function eZn(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=RH(e);return this.tween(n,(r.local?XWn:JWn)(r,t))}function tZn(e,t){return function(){nke(this,e).delay=+t.apply(this,arguments)}}function nZn(e,t){return t=+t,function(){nke(this,e).delay=t}}function rZn(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?tZn:nZn)(t,e)):Zg(this.node(),t).delay}function sZn(e,t){return function(){Vy(this,e).duration=+t.apply(this,arguments)}}function aZn(e,t){return t=+t,function(){Vy(this,e).duration=t}}function iZn(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?sZn:aZn)(t,e)):Zg(this.node(),t).duration}function oZn(e,t){if(typeof t!="function")throw new Error;return function(){Vy(this,e).ease=t}}function lZn(e){var t=this._id;return arguments.length?this.each(oZn(t,e)):Zg(this.node(),t).ease}function cZn(e,t){return function(){var n=t.apply(this,arguments);if(typeof n!="function")throw new Error;Vy(this,e).ease=n}}function uZn(e){if(typeof e!="function")throw new Error;return this.each(cZn(this._id,e))}function dZn(e){typeof e!="function"&&(e=R1t(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 Ix(r,this._parents,this._name,this._id)}function fZn(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 Ix(i,this._parents,this._name,this._id)}function pZn(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 hZn(e,t,n){var r,s,a=pZn(t)?nke:Vy;return function(){var i=a(this,e),l=i.on;l!==r&&(s=(r=l).copy()).on(t,n),i.on=s}}function mZn(e,t){var n=this._id;return arguments.length<2?Zg(this.node(),n).on.on(e):this.each(hZn(n,e,t))}function gZn(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function vZn(){return this.on("end.remove",gZn(this._id))}function yZn(e){var t=this._name,n=this._id;typeof e!="function"&&(e=YSe(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,$H(u[p],t,n,p,u,Zg(d,n)));return new Ix(a,this._parents,t,n)}function bZn(e){var t=this._name,n=this._id;typeof e!="function"&&(e=A1t(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=Zg(d,n),g=0,y=p.length;g<y;++g)(h=p[g])&&$H(h,t,n,g,p,m);a.push(p),i.push(d)}return new Ix(a,i,t,n)}var xZn=F3.prototype.constructor;function wZn(){return new xZn(this._groups,this._parents)}function SZn(e,t){var n,r,s;return function(){var a=qT(this,e),i=(this.style.removeProperty(e),qT(this,e));return a===i?null:a===n&&i===r?s:s=t(n=a,r=i)}}function rSt(e){return function(){this.style.removeProperty(e)}}function kZn(e,t,n){var r,s=n+"",a;return function(){var i=qT(this,e);return i===s?null:i===r?a:a=t(r=i,n)}}function OZn(e,t,n){var r,s,a;return function(){var i=qT(this,e),l=n(this),c=l+"";return l==null&&(c=l=(this.style.removeProperty(e),qT(this,e))),i===c?null:i===r&&c===s?a:(s=c,a=t(r=i,l))}}function _Zn(e,t){var n,r,s,a="style."+t,i="end."+a,l;return function(){var c=Vy(this,e),u=c.on,d=c.value[a]==null?l||(l=rSt(t)):void 0;(u!==n||s!==d)&&(r=(n=u).copy()).on(i,s=d),c.on=r}}function CZn(e,t,n){var r=(e+="")=="transform"?CWn:nSt;return t==null?this.styleTween(e,SZn(e,r)).on("end.style."+e,rSt(e)):typeof t=="function"?this.styleTween(e,OZn(e,r,rke(this,"style."+e,t))).each(_Zn(this._id,e)):this.styleTween(e,kZn(e,r,t),n).on("end.style."+e,null)}function EZn(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}function jZn(e,t,n){var r,s;function a(){var i=t.apply(this,arguments);return i!==s&&(r=(s=i)&&EZn(e,i,n)),r}return a._value=t,a}function TZn(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,jZn(e,t,n??""))}function NZn(e){return function(){this.textContent=e}}function IZn(e){return function(){var t=e(this);this.textContent=t??""}}function AZn(e){return this.tween("text",typeof e=="function"?IZn(rke(this,"text",e)):NZn(e==null?"":e+""))}function RZn(e){return function(t){this.textContent=e.call(this,t)}}function PZn(e){var t,n;function r(){var s=e.apply(this,arguments);return s!==n&&(t=(n=s)&&RZn(s)),t}return r._value=e,r}function $Zn(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,PZn(e))}function MZn(){for(var e=this._name,t=this._id,n=sSt(),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=Zg(c,t);$H(c,e,n,u,i,{time:d.time+d.delay+d.duration,delay:0,duration:d.duration,ease:d.ease})}return new Ix(r,this._parents,e,n)}function DZn(){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=Vy(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 LZn=0;function Ix(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}function sSt(){return++LZn}var wb=F3.prototype;Ix.prototype={constructor:Ix,select:yZn,selectAll:bZn,selectChild:wb.selectChild,selectChildren:wb.selectChildren,filter:dZn,merge:fZn,selection:wZn,transition:MZn,call:wb.call,nodes:wb.nodes,node:wb.node,size:wb.size,empty:wb.empty,each:wb.each,on:mZn,attr:QWn,attrTween:eZn,style:CZn,styleTween:TZn,text:AZn,textTween:$Zn,remove:vZn,tween:UWn,delay:rZn,duration:iZn,ease:lZn,easeVarying:uZn,end:DZn,[Symbol.iterator]:wb[Symbol.iterator]};function FZn(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var zZn={time:null,delay:0,duration:250,ease:FZn};function BZn(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 UZn(e){var t,n;e instanceof Ix?(t=e._id,e=e._name):(t=sSt(),(n=zZn).time=tke(),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])&&$H(c,e,t,u,i,n||BZn(c,t));return new Ix(r,this._parents,e,t)}F3.prototype.interrupt=FWn;F3.prototype.transition=UZn;const aF=e=>()=>e;function VZn(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 ex(e,t,n){this.k=e,this.x=t,this.y=n}ex.prototype={constructor:ex,scale:function(e){return e===1?this:new ex(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new ex(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 MH=new ex(1,0,0);aSt.prototype=ex.prototype;function aSt(e){for(;!e.__zoom;)if(!(e=e.parentNode))return MH;return e.__zoom}function ite(e){e.stopImmediatePropagation()}function wR(e){e.preventDefault(),e.stopImmediatePropagation()}function qZn(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function HZn(){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 Q8e(){return this.__zoom||MH}function WZn(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function ZZn(){return navigator.maxTouchPoints||"ontouchstart"in this}function GZn(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 iSt(){var e=qZn,t=HZn,n=GZn,r=WZn,s=ZZn,a=[0,1/0],i=[[-1/0,-1/0],[1/0,1/0]],l=250,c=R8,u=AH("start","zoom","end"),d,f,p,h=500,m=150,g=0,y=10;function b(D){D.property("__zoom",Q8e).on("wheel.zoom",E,{passive:!1}).on("mousedown.zoom",N).on("dblclick.zoom",I).filter(s).on("touchstart.zoom",A).on("touchmove.zoom",R).on("touchend.zoom touchcancel.zoom",L).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}b.transform=function(D,B,H,F){var z=D.selection?D.selection():D;z.property("__zoom",Q8e),D!==z?_(D,B,H,F):z.interrupt().each(function(){C(this,arguments).event(F).start().zoom(null,typeof B=="function"?B.apply(this,arguments):B).end()})},b.scaleBy=function(D,B,H,F){b.scaleTo(D,function(){var z=this.__zoom.k,V=typeof B=="function"?B.apply(this,arguments):B;return z*V},H,F)},b.scaleTo=function(D,B,H,F){b.transform(D,function(){var z=t.apply(this,arguments),V=this.__zoom,M=H==null?k(z):typeof H=="function"?H.apply(this,arguments):H,Q=V.invert(M),q=typeof B=="function"?B.apply(this,arguments):B;return n(w(x(V,q),M,Q),z,i)},H,F)},b.translateBy=function(D,B,H,F){b.transform(D,function(){return n(this.__zoom.translate(typeof B=="function"?B.apply(this,arguments):B,typeof H=="function"?H.apply(this,arguments):H),t.apply(this,arguments),i)},null,F)},b.translateTo=function(D,B,H,F,z){b.transform(D,function(){var V=t.apply(this,arguments),M=this.__zoom,Q=F==null?k(V):typeof F=="function"?F.apply(this,arguments):F;return n(MH.translate(Q[0],Q[1]).scale(M.k).translate(typeof B=="function"?-B.apply(this,arguments):-B,typeof H=="function"?-H.apply(this,arguments):-H),V,i)},F,z)};function x(D,B){return B=Math.max(a[0],Math.min(a[1],B)),B===D.k?D:new ex(B,D.x,D.y)}function w(D,B,H){var F=B[0]-H[0]*D.k,z=B[1]-H[1]*D.k;return F===D.x&&z===D.y?D:new ex(D.k,F,z)}function k(D){return[(+D[0][0]+ +D[1][0])/2,(+D[0][1]+ +D[1][1])/2]}function _(D,B,H,F){D.on("start.zoom",function(){C(this,arguments).event(F).start()}).on("interrupt.zoom end.zoom",function(){C(this,arguments).event(F).end()}).tween("zoom",function(){var z=this,V=arguments,M=C(z,V).event(F),Q=t.apply(z,V),q=H==null?k(Q):typeof H=="function"?H.apply(z,V):H,$=Math.max(Q[1][0]-Q[0][0],Q[1][1]-Q[0][1]),U=z.__zoom,Z=typeof B=="function"?B.apply(z,V):B,K=c(U.invert(q).concat($/U.k),Z.invert(q).concat($/Z.k));return function(te){if(te===1)te=Z;else{var ne=K(te),J=$/ne[2];te=new ex(J,q[0]-ne[0]*J,q[1]-ne[1]*J)}M.zoom(null,te)}})}function C(D,B,H){return!H&&D.__zooming||new j(D,B)}function j(D,B){this.that=D,this.args=B,this.active=0,this.sourceEvent=null,this.extent=t.apply(D,B),this.taps=0}j.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,B){return this.mouse&&D!=="mouse"&&(this.mouse[1]=B.invert(this.mouse[0])),this.touch0&&D!=="touch"&&(this.touch0[1]=B.invert(this.touch0[0])),this.touch1&&D!=="touch"&&(this.touch1[1]=B.invert(this.touch1[0])),this.that.__zoom=B,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(D){var B=Op(this.that).datum();u.call(D,this.that,new VZn(D,{sourceEvent:this.sourceEvent,target:b,transform:this.that.__zoom,dispatch:u}),B)}};function E(D,...B){if(!e.apply(this,arguments))return;var H=C(this,B).event(D),F=this.__zoom,z=Math.max(a[0],Math.min(a[1],F.k*Math.pow(2,r.apply(this,arguments)))),V=ag(D);if(H.wheel)(H.mouse[0][0]!==V[0]||H.mouse[0][1]!==V[1])&&(H.mouse[1]=F.invert(H.mouse[0]=V)),clearTimeout(H.wheel);else{if(F.k===z)return;H.mouse=[V,F.invert(V)],M8(this),H.start()}wR(D),H.wheel=setTimeout(M,m),H.zoom("mouse",n(w(x(F,z),H.mouse[0],H.mouse[1]),H.extent,i));function M(){H.wheel=null,H.end()}}function N(D,...B){if(p||!e.apply(this,arguments))return;var H=D.currentTarget,F=C(this,B,!0).event(D),z=Op(D.view).on("mousemove.zoom",q,!0).on("mouseup.zoom",$,!0),V=ag(D,H),M=D.clientX,Q=D.clientY;V1t(D.view),ite(D),F.mouse=[V,this.__zoom.invert(V)],M8(this),F.start();function q(U){if(wR(U),!F.moved){var Z=U.clientX-M,K=U.clientY-Q;F.moved=Z*Z+K*K>g}F.event(U).zoom("mouse",n(w(F.that.__zoom,F.mouse[0]=ag(U,H),F.mouse[1]),F.extent,i))}function $(U){z.on("mousemove.zoom mouseup.zoom",null),q1t(U.view,F.moved),wR(U),F.event(U).end()}}function I(D,...B){if(e.apply(this,arguments)){var H=this.__zoom,F=ag(D.changedTouches?D.changedTouches[0]:D,this),z=H.invert(F),V=H.k*(D.shiftKey?.5:2),M=n(w(x(H,V),F,z),t.apply(this,B),i);wR(D),l>0?Op(this).transition().duration(l).call(_,M,F,D):Op(this).call(b.transform,M,F,D)}}function A(D,...B){if(e.apply(this,arguments)){var H=D.touches,F=H.length,z=C(this,B,D.changedTouches.length===F).event(D),V,M,Q,q;for(ite(D),M=0;M<F;++M)Q=H[M],q=ag(Q,this),q=[q,this.__zoom.invert(q),Q.identifier],z.touch0?!z.touch1&&z.touch0[2]!==q[2]&&(z.touch1=q,z.taps=0):(z.touch0=q,V=!0,z.taps=1+!!d);d&&(d=clearTimeout(d)),V&&(z.taps<2&&(f=q[0],d=setTimeout(function(){d=null},h)),M8(this),z.start())}}function R(D,...B){if(this.__zooming){var H=C(this,B).event(D),F=D.changedTouches,z=F.length,V,M,Q,q;for(wR(D),V=0;V<z;++V)M=F[V],Q=ag(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],U=H.touch0[1],Z=H.touch1[0],K=H.touch1[1],te=(te=Z[0]-$[0])*te+(te=Z[1]-$[1])*te,ne=(ne=K[0]-U[0])*ne+(ne=K[1]-U[1])*ne;M=x(M,Math.sqrt(te/ne)),Q=[($[0]+Z[0])/2,($[1]+Z[1])/2],q=[(U[0]+K[0])/2,(U[1]+K[1])/2]}else if(H.touch0)Q=H.touch0[0],q=H.touch0[1];else return;H.zoom("touch",n(w(M,Q,q),H.extent,i))}}function L(D,...B){if(this.__zooming){var H=C(this,B).event(D),F=D.changedTouches,z=F.length,V,M;for(ite(D),p&&clearTimeout(p),p=setTimeout(function(){p=null},h),V=0;V<z;++V)M=F[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=ag(M,this),Math.hypot(f[0]-M[0],f[1]-M[1])<y)){var Q=Op(this).on("dblclick.zoom");Q&&Q.apply(this,arguments)}}}return b.wheelDelta=function(D){return arguments.length?(r=typeof D=="function"?D:aF(+D),b):r},b.filter=function(D){return arguments.length?(e=typeof D=="function"?D:aF(!!D),b):e},b.touchable=function(D){return arguments.length?(s=typeof D=="function"?D:aF(!!D),b):s},b.extent=function(D){return arguments.length?(t=typeof D=="function"?D:aF([[+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?(g=(D=+D)*D,b):Math.sqrt(g)},b.tapDistance=function(D){return arguments.length?(y=+D,b):y},b}const Sy={error001:()=>"[React Flow]: Seems like you have not used zustand provider as an ancestor. Help: https://reactflow.dev/error#001",error002:()=>"It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.",error003:e=>`Node type "${e}" not found. Using fallback type "default".`,error004:()=>"The React Flow parent container needs a width and a height to render the graph.",error005:()=>"Only child nodes can use a parent extent.",error006:()=>"Can't create edge. An edge needs a source and a target.",error007:e=>`The old edge with id=${e} does not exist.`,error009:e=>`Marker type "${e}" doesn't exist.`,error008:(e,{id:t,sourceHandle:n,targetHandle:r})=>`Couldn't create edge for ${e} handle id: "${e==="source"?n:r}", edge id: ${t}.`,error010:()=>"Handle: No node id found. Make sure to only use a Handle inside a custom Node.",error011:e=>`Edge type "${e}" not found. Using fallback type "default".`,error012:e=>`Node with id "${e}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`,error013:(e="react")=>`It seems that you haven't loaded the styles. Please import '@xyflow/${e}/dist/style.css' or base.css to make sure everything is working properly.`,error014:()=>"useNodeConnections: No node ID found. Call useNodeConnections inside a custom Node or provide a node ID.",error015:()=>"It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs."},NM=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],oSt=["Enter"," ","Escape"],lSt={"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 WT;(function(e){e.Strict="strict",e.Loose="loose"})(WT||(WT={}));var Xk;(function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"})(Xk||(Xk={}));var IM;(function(e){e.Partial="partial",e.Full="full"})(IM||(IM={}));const cSt={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null};var fw;(function(e){e.Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier"})(fw||(fw={}));var AM;(function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"})(AM||(AM={}));var sr;(function(e){e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom"})(sr||(sr={}));const Y8e={[sr.Left]:sr.Right,[sr.Right]:sr.Left,[sr.Top]:sr.Bottom,[sr.Bottom]:sr.Top};function uSt(e){return e===null?null:e?"valid":"invalid"}const dSt=e=>"id"in e&&"source"in e&&"target"in e,QZn=e=>"id"in e&&"position"in e&&!("source"in e)&&!("target"in e),ske=e=>"id"in e&&"internals"in e&&!("source"in e)&&!("target"in e),B3=(e,t=[0,0])=>{const{width:n,height:r}=e0(e),s=e.origin??t,a=n*s[0],i=r*s[1];return{x:e.position.x-a,y:e.position.y-i}},YZn=(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):ske(s)?s:t.nodeLookup.get(s.id));const l=i?TB(i,t.nodeOrigin):{x:0,y:0,x2:0,y2:0};return DH(r,l)},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return LH(n)},U3=(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=DH(n,TB(s)),r=!0)}),r?LH(n):{x:0,y:0,width:0,height:0}},ake=(e,t,[n,r,s]=[0,0,1],a=!1,i=!1)=>{const l={...q3(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,g=RM(l,GT(u)),y=(h??0)*(m??0),b=a&&g>0;(!u.internals.handleBounds||b||g>=y||u.dragging)&&c.push(u)}return c},KZn=(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 XZn(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 JZn({nodes:e,width:t,height:n,panZoom:r,minZoom:s,maxZoom:a},i){if(e.size===0)return Promise.resolve(!0);const l=XZn(e,i),c=U3(l),u=ike(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 fSt({nodeId:e,nextPosition:t,nodeLookup:n,nodeOrigin:r=[0,0],nodeExtent:s,onError:a}){const i=n.get(e),l=i.parentId?n.get(i.parentId):void 0,{x:c,y:u}=l?l.internals.positionAbsolute:{x:0,y:0},d=i.origin??r;let f=i.extent||s;if(i.extent==="parent"&&!i.expandParent)if(!l)a?.("005",Sy.error005());else{const h=l.measured.width,m=l.measured.height;h&&m&&(f=[[c,u],[c+h,u+m]])}else l&&QT(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=QT(f)?HO(t,f,i.measured):t;return(i.measured.width===void 0||i.measured.height===void 0)&&a?.("015",Sy.error015()),{position:{x:p.x-c+(i.measured.width??0)*d[0],y:p.y-u+(i.measured.height??0)*d[1]},positionAbsolute:p}}async function eGn({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(g=>g.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=KZn(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 ZT=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),HO=(e={x:0,y:0},t,n)=>({x:ZT(e.x,t[0][0],t[1][0]-(n?.width??0)),y:ZT(e.y,t[0][1],t[1][1]-(n?.height??0))});function pSt(e,t,n){const{width:r,height:s}=e0(n),{x:a,y:i}=n.internals.positionAbsolute;return HO(e,[[a,i],[a+r,i+s]],t)}const K8e=(e,t,n)=>e<t?ZT(Math.abs(e-t),1,t)/t:e>n?-ZT(Math.abs(e-n),1,t)/t:0,hSt=(e,t,n=15,r=40)=>{const s=K8e(e.x,r,t.width-r)*n,a=K8e(e.y,r,t.height-r)*n;return[s,a]},DH=(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)}),cge=({x:e,y:t,width:n,height:r})=>({x:e,y:t,x2:e+n,y2:t+r}),LH=({x:e,y:t,x2:n,y2:r})=>({x:e,y:t,width:n-e,height:r-t}),GT=(e,t=[0,0])=>{const{x:n,y:r}=ske(e)?e.internals.positionAbsolute:B3(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}},TB=(e,t=[0,0])=>{const{x:n,y:r}=ske(e)?e.internals.positionAbsolute:B3(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)}},mSt=(e,t)=>LH(DH(cge(e),cge(t))),RM=(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)},X8e=e=>yg(e.width)&&yg(e.height)&&yg(e.x)&&yg(e.y),yg=e=>!isNaN(e)&&isFinite(e),tGn=(e,t)=>{},V3=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),q3=({x:e,y:t},[n,r,s],a=!1,i=[1,1])=>{const l={x:(e-n)/s,y:(t-r)/s};return a?V3(l,i):l},NB=({x:e,y:t},[n,r,s])=>({x:e*s+n,y:t*s+r});function oE(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 nGn(e,t,n){if(typeof e=="string"||typeof e=="number"){const r=oE(e,n),s=oE(e,t);return{top:r,right:s,bottom:r,left:s,x:s*2,y:r*2}}if(typeof e=="object"){const r=oE(e.top??e.y??0,n),s=oE(e.bottom??e.y??0,n),a=oE(e.left??e.x??0,t),i=oE(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 rGn(e,t,n,r,s,a){const{x:i,y:l}=NB(e,[t,n,r]),{x:c,y:u}=NB({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 ike=(e,t,n,r,s,a)=>{const i=nGn(a,t,n),l=(t-i.x)/e.width,c=(n-i.y)/e.height,u=Math.min(l,c),d=ZT(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,g=rGn(e,h,m,d,t,n),y={left:Math.min(g.left-i.left,0),top:Math.min(g.top-i.top,0),right:Math.min(g.right-i.right,0),bottom:Math.min(g.bottom-i.bottom,0)};return{x:h-y.left+y.right,y:m-y.top+y.bottom,zoom:d}},PM=()=>typeof navigator<"u"&&navigator?.userAgent?.indexOf("Mac")>=0;function QT(e){return e!=null&&e!=="parent"}function e0(e){return{width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}}function gSt(e){return(e.measured?.width??e.width??e.initialWidth)!==void 0&&(e.measured?.height??e.height??e.initialHeight)!==void 0}function vSt(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 J8e(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function sGn(){let e,t;return{promise:new Promise((r,s)=>{e=r,t=s}),resolve:e,reject:t}}function aGn(e){return{...lSt,...e||{}}}function v2(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:r,containerBounds:s}){const{x:a,y:i}=bg(e),l=q3({x:a-(s?.left??0),y:i-(s?.top??0)},r),{x:c,y:u}=n?V3(l,t):l;return{xSnapped:c,ySnapped:u,...l}}const oke=e=>({width:e.offsetWidth,height:e.offsetHeight}),ySt=e=>e?.getRootNode?.()||window?.document,iGn=["INPUT","SELECT","TEXTAREA"];function bSt(e){const t=e.composedPath?.()?.[0]||e.target;return t?.nodeType!==1?!1:iGn.includes(t.nodeName)||t.hasAttribute("contenteditable")||!!t.closest(".nokey")}const xSt=e=>"clientX"in e,bg=(e,t)=>{const n=xSt(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)}},e9e=(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,...oke(i)}})};function wSt({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 iF(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function t9e({pos:e,x1:t,y1:n,x2:r,y2:s,c:a}){switch(e){case sr.Left:return[t-iF(t-r,a),n];case sr.Right:return[t+iF(r-t,a),n];case sr.Top:return[t,n-iF(n-s,a)];case sr.Bottom:return[t,n+iF(s-n,a)]}}function lke({sourceX:e,sourceY:t,sourcePosition:n=sr.Bottom,targetX:r,targetY:s,targetPosition:a=sr.Top,curvature:i=.25}){const[l,c]=t9e({pos:n,x1:e,y1:t,x2:r,y2:s,c:i}),[u,d]=t9e({pos:a,x1:r,y1:s,x2:e,y2:t,c:i}),[f,p,h,m]=wSt({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 SSt({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 oGn({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 lGn({sourceNode:e,targetNode:t,width:n,height:r,transform:s}){const a=DH(TB(e),TB(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 RM(i,LH(a))>0}const cGn=({source:e,sourceHandle:t,target:n,targetHandle:r})=>`xy-edge__${e}${t||""}-${n}${r||""}`,uGn=(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)),dGn=(e,t,n={})=>{if(!e.source||!e.target)return t;const r=n.getEdgeId||cGn;let s;return dSt(e)?s={...e}:s={...e,id:r(e)},uGn(s,t)?t:(s.sourceHandle===null&&delete s.sourceHandle,s.targetHandle===null&&delete s.targetHandle,t.concat(s))};function kSt({sourceX:e,sourceY:t,targetX:n,targetY:r}){const[s,a,i,l]=SSt({sourceX:e,sourceY:t,targetX:n,targetY:r});return[`M ${e},${t}L ${n},${r}`,s,a,i,l]}const n9e={[sr.Left]:{x:-1,y:0},[sr.Right]:{x:1,y:0},[sr.Top]:{x:0,y:-1},[sr.Bottom]:{x:0,y:1}},fGn=({source:e,sourcePosition:t=sr.Bottom,target:n})=>t===sr.Left||t===sr.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},r9e=(e,t)=>Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2));function pGn({source:e,sourcePosition:t=sr.Bottom,target:n,targetPosition:r=sr.Top,center:s,offset:a,stepPosition:i}){const l=n9e[t],c=n9e[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=fGn({source:u,sourcePosition:t,target:d}),p=f.x!==0?"x":"y",h=f[p];let m=[],g,y;const b={x:0,y:0},x={x:0,y:0},[,,w,k]=SSt({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(l[p]*c[p]===-1){p==="x"?(g=s.x??u.x+(d.x-u.x)*i,y=s.y??(u.y+d.y)/2):(g=s.x??(u.x+d.x)/2,y=s.y??u.y+(d.y-u.y)*i);const E=[{x:g,y:u.y},{x:g,y:d.y}],N=[{x:u.x,y},{x:d.x,y}];l[p]===h?m=p==="x"?E:N:m=p==="x"?N:E}else{const E=[{x:u.x,y:d.y}],N=[{x:d.x,y:u.y}];if(p==="x"?m=l.x===h?N:E:m=l.y===h?E:N,t===r){const D=Math.abs(e[p]-n[p]);if(D<=a){const B=Math.min(a-1,a-D);l[p]===h?b[p]=(u[p]>e[p]?-1:1)*B:x[p]=(d[p]>n[p]?-1:1)*B}}if(t!==r){const D=p==="x"?"y":"x",B=l[p]===c[D],H=u[D]>d[D],F=u[D]<d[D];(l[p]===1&&(!B&&H||B&&F)||l[p]!==1&&(!B&&F||B&&H))&&(m=p==="x"?E:N)}const I={x:u.x+b.x,y:u.y+b.y},A={x:d.x+x.x,y:d.y+x.y},R=Math.max(Math.abs(I.x-m[0].x),Math.abs(A.x-m[0].x)),L=Math.max(Math.abs(I.y-m[0].y),Math.abs(A.y-m[0].y));R>=L?(g=(I.x+A.x)/2,y=m[0].y):(g=m[0].x,y=(I.y+A.y)/2)}const _={x:u.x+b.x,y:u.y+b.y},C={x:d.x+x.x,y:d.y+x.y};return[[e,..._.x!==m[0].x||_.y!==m[0].y?[_]:[],...m,...C.x!==m[m.length-1].x||C.y!==m[m.length-1].y?[C]:[],n],g,y,w,k]}function hGn(e,t,n,r){const s=Math.min(r9e(e,t)/2,r9e(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 uge({sourceX:e,sourceY:t,sourcePosition:n=sr.Bottom,targetX:r,targetY:s,targetPosition:a=sr.Top,borderRadius:i=5,centerX:l,centerY:c,offset:u=20,stepPosition:d=.5}){const[f,p,h,m,g]=pGn({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+=hGn(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,g]}function s9e(e){return e&&!!(e.internals.handleBounds||e.handles?.length)&&!!(e.measured.width||e.width||e.initialWidth)}function mGn(e){const{sourceNode:t,targetNode:n}=e;if(!s9e(t)||!s9e(n))return null;const r=t.internals.handleBounds||a9e(t.handles),s=n.internals.handleBounds||a9e(n.handles),a=i9e(r?.source??[],e.sourceHandle),i=i9e(e.connectionMode===WT.Strict?s?.target??[]:(s?.target??[]).concat(s?.source??[]),e.targetHandle);if(!a||!i)return e.onError?.("008",Sy.error008(a?"target":"source",{id:e.id,sourceHandle:e.sourceHandle,targetHandle:e.targetHandle})),null;const l=a?.position||sr.Bottom,c=i?.position||sr.Top,u=WO(t,a,l),d=WO(n,i,c);return{sourceX:u.x,sourceY:u.y,targetX:d.x,targetY:d.y,sourcePosition:l,targetPosition:c}}function a9e(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 WO(e,t,n=sr.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??e0(e);if(r)return{x:s+i/2,y:a+l/2};switch(t?.position??n){case sr.Top:return{x:s+i/2,y:a};case sr.Right:return{x:s+i,y:a+l/2};case sr.Bottom:return{x:s+i/2,y:a+l};case sr.Left:return{x:s,y:a+l/2}}}function i9e(e,t){return e&&(t?e.find(n=>n.id===t):e[0])||null}function dge(e,t){return e?typeof e=="string"?e:`${t?`${t}__`:""}${Object.keys(e).sort().map(r=>`${r}=${e[r]}`).join("&")}`:""}function gGn(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=dge(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 OSt=1e3,vGn=10,cke={nodeOrigin:[0,0],nodeExtent:NM,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},yGn={...cke,checkEquality:!0};function uke(e,t){const n={...e};for(const r in t)t[r]!==void 0&&(n[r]=t[r]);return n}function bGn(e,t,n){const r=uke(cke,n);for(const s of e.values())if(s.parentId)fke(s,e,t,r);else{const a=B3(s,r.nodeOrigin),i=QT(s.extent)?s.extent:r.nodeExtent,l=HO(a,i,e0(s));s.internals.positionAbsolute=l}}function xGn(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 dke(e){return e==="manual"}function fge(e,t,n,r={}){const s=uke(yGn,r),a={i:0},i=new Map(t),l=s?.elevateNodesOnSelect&&!dke(s.zIndexMode)?OSt: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=B3(d,s.nodeOrigin),h=QT(d.extent)?d.extent:s.nodeExtent,m=HO(p,h,e0(d));f={...s.defaults,...d,measured:{width:d.measured?.width,height:d.measured?.height},internals:{positionAbsolute:m,handleBounds:xGn(d,f),z:_St(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&&fke(f,t,n,r,a),u||=d.selected??!1}return{nodesInitialized:c,hasSelectedNodes:u}}function wGn(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 fke(e,t,n,r,s){const{elevateNodesOnSelect:a,nodeOrigin:i,nodeExtent:l,zIndexMode:c}=uke(cke,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}wGn(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*vGn),s&&d.internals.rootParentIndex!==void 0&&(s.i=d.internals.rootParentIndex);const f=a&&!dke(c)?OSt:0,{x:p,y:h,z:m}=SGn(e,d,i,l,f,c),{positionAbsolute:g}=e.internals,y=p!==g.x||h!==g.y;(y||m!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:y?{x:p,y:h}:g,z:m}})}function _St(e,t,n){const r=yg(e.zIndex)?e.zIndex:0;return dke(n)?r:r+(e.selected?t:0)}function SGn(e,t,n,r,s,a){const{x:i,y:l}=t.internals.positionAbsolute,c=e0(e),u=B3(e,n),d=QT(e.extent)?HO(u,e.extent,c):u;let f=HO({x:i+d.x,y:l+d.y},r,c);e.extent==="parent"&&(f=pSt(f,c,t));const p=_St(e,s,a),h=t.internals.z??0;return{x:f.x,y:f.y,z:h>=p?h+1:p}}function pke(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??GT(l),u=mSt(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=e0(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)),g=Math.max(d.height,Math.round(i.height)),y=(m-d.width)*f[0],b=(g-d.height)*f[1];(p>0||h>0||y||b)&&(s.push({id:c,type:"position",position:{x:l.position.x-p+y,y:l.position.y-h+b}}),n.get(c)?.forEach(x=>{e.some(w=>w.id===x.id)||s.push({id:x.id,type:"position",position:{x:x.position.x+p,y:x.position.y+h}})})),(d.width<i.width||d.height<i.height||p||h)&&s.push({id:c,type:"dimensions",setAttributes:!0,dimensions:{width:m+(p?f[0]*p-y:0),height:g+(h?f[1]*h-b:0)}})}),s}function kGn(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 g=oke(h.nodeElement),y=m.measured.width!==g.width||m.measured.height!==g.height;if(!!(g.width&&g.height&&(y||!m.internals.handleBounds||h.force))){const x=h.nodeElement.getBoundingClientRect(),w=QT(m.extent)?m.extent:a;let{positionAbsolute:k}=m.internals;m.parentId&&m.extent==="parent"?k=pSt(k,g,t.get(m.parentId)):w&&(k=HO(k,w,g));const _={...m,measured:g,internals:{...m.internals,positionAbsolute:k,handleBounds:{source:e9e("source",h.nodeElement,x,f,m.id),target:e9e("target",h.nodeElement,x,f,m.id)}}};t.set(m.id,_),m.parentId&&fke(_,t,n,{nodeOrigin:s,zIndexMode:i}),c=!0,y&&(u.push({id:m.id,type:"dimensions",dimensions:g}),m.expandParent&&m.parentId&&p.push({id:m.id,parentId:m.parentId,rect:GT(_,s)}))}}if(p.length>0){const h=pke(p,t,n,s);u.push(...h)}return{changes:u,updatedInternals:c}}async function OGn({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 o9e(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 CSt(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}`;o9e("source",c,d,e,s,i),o9e("target",c,u,e,a,l),t.set(r.id,r)}}function ESt(e,t){if(!e.parentId)return!1;const n=t.get(e.parentId);return n?n.selected?!0:ESt(n,t):!1}function l9e(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 _Gn(e,t,n,r){const s=new Map;for(const[a,i]of e)if((i.selected||i.id===r)&&(!i.parentId||!ESt(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 ote({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 CGn({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=V3(a,t);return{x:i.x-a.x,y:i.y-a.y}}function EGn({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,g=null;function y({noDragClassName:x,handleSelector:w,domNode:k,isSelectable:_,nodeId:C,nodeClickDistance:j=0}){p=Op(k);function E({x:R,y:L}){const{nodeLookup:D,nodeExtent:B,snapGrid:H,snapToGrid:F,nodeOrigin:z,onNodeDrag:V,onSelectionDrag:M,onError:Q,updateNodePositions:q}=t();a={x:R,y:L};let $=!1;const U=l.size>1,Z=U&&B?cge(U3(l)):null,K=U&&F?CGn({dragItems:l,snapGrid:H,x:R,y:L}):null;for(const[te,ne]of l){if(!D.has(te))continue;let J={x:R-ne.distance.x,y:L-ne.distance.y};F&&(J=K?{x:Math.round(J.x+K.x),y:Math.round(J.y+K.y)}:V3(J,H));let se=null;if(U&&B&&!ne.extent&&Z){const{positionAbsolute:ee}=ne.internals,ue=ee.x-Z.x+B[0][0],pe=ee.x+ne.measured.width-Z.x2+B[1][0],le=ee.y-Z.y+B[0][1],fe=ee.y+ne.measured.height-Z.y2+B[1][1];se=[[ue,le],[pe,fe]]}const{position:ie,positionAbsolute:Y}=fSt({nodeId:te,nextPosition:J,nodeLookup:D,nodeExtent:se||B,nodeOrigin:z,onError:Q});$=$||ne.position.x!==ie.x||ne.position.y!==ie.y,ne.position=ie,ne.internals.positionAbsolute=Y}if(m=m||$,!!$&&(q(l,!0),g&&(r||V||!C&&M))){const[te,ne]=ote({nodeId:C,dragItems:l,nodeLookup:D});r?.(g,l,te,ne),V?.(g,te,ne),C||M?.(g,ne)}}async function N(){if(!d)return;const{transform:R,panBy:L,autoPanSpeed:D,autoPanOnNodeDrag:B}=t();if(!B){c=!1,cancelAnimationFrame(i);return}const[H,F]=hSt(u,d,D);(H!==0||F!==0)&&(a.x=(a.x??0)-H/R[2],a.y=(a.y??0)-F/R[2],await L({x:H,y:F})&&E(a)),i=requestAnimationFrame(N)}function I(R){const{nodeLookup:L,multiSelectionActive:D,nodesDraggable:B,transform:H,snapGrid:F,snapToGrid:z,selectNodesOnDrag:V,onNodeDragStart:M,onSelectionDragStart:Q,unselectNodesAndEdges:q}=t();f=!0,(!V||!_)&&!D&&C&&(L.get(C)?.selected||q()),_&&V&&C&&e?.(C);const $=v2(R.sourceEvent,{transform:H,snapGrid:F,snapToGrid:z,containerBounds:d});if(a=$,l=_Gn(L,B,$,C),l.size>0&&(n||M||!C&&Q)){const[U,Z]=ote({nodeId:C,dragItems:l,nodeLookup:L});n?.(R.sourceEvent,l,U,Z),M?.(R.sourceEvent,U,Z),C||Q?.(R.sourceEvent,Z)}}const A=H1t().clickDistance(j).on("start",R=>{const{domNode:L,nodeDragThreshold:D,transform:B,snapGrid:H,snapToGrid:F}=t();d=L?.getBoundingClientRect()||null,h=!1,m=!1,g=R.sourceEvent,D===0&&I(R),a=v2(R.sourceEvent,{transform:B,snapGrid:H,snapToGrid:F,containerBounds:d}),u=bg(R.sourceEvent,d)}).on("drag",R=>{const{autoPanOnNodeDrag:L,transform:D,snapGrid:B,snapToGrid:H,nodeDragThreshold:F,nodeLookup:z}=t(),V=v2(R.sourceEvent,{transform:D,snapGrid:B,snapToGrid:H,containerBounds:d});if(g=R.sourceEvent,(R.sourceEvent.type==="touchmove"&&R.sourceEvent.touches.length>1||C&&!z.has(C))&&(h=!0),!h){if(!c&&L&&f&&(c=!0,N()),!f){const M=bg(R.sourceEvent,d),Q=M.x-u.x,q=M.y-u.y;Math.sqrt(Q*Q+q*q)>F&&I(R)}(a.x!==V.xSnapped||a.y!==V.ySnapped)&&l&&f&&(u=bg(R.sourceEvent,d),E(V))}}).on("end",R=>{if(!(!f||h)&&(c=!1,f=!1,cancelAnimationFrame(i),l.size>0)){const{nodeLookup:L,updateNodePositions:D,onNodeDragStop:B,onSelectionDragStop:H}=t();if(m&&(D(l,!1),m=!1),s||B||!C&&H){const[F,z]=ote({nodeId:C,dragItems:l,nodeLookup:L,dragging:!1});s?.(R.sourceEvent,l,F,z),B?.(R.sourceEvent,F,z),C||H?.(R.sourceEvent,z)}}}).filter(R=>{const L=R.target;return!R.button&&(!x||!l9e(L,`.${x}`,k))&&(!w||l9e(L,w,k))});p.call(A)}function b(){p?.on(".drag",null)}return{update:y,destroy:b}}function jGn(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())RM(s,GT(a))>0&&r.push(a);return r}const TGn=250;function NGn(e,t,n,r){let s=[],a=1/0;const i=jGn(e,n,t+TGn);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}=WO(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 jSt(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,...WO(i,c,c.position,!0)}:c}function TSt(e,t){return e||(t?.classList.contains("target")?"target":t?.classList.contains("source")?"source":null)}function IGn(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}const NSt=()=>!0;function AGn(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:g,onConnectEnd:y,isValidConnection:b=NSt,onReconnectEnd:x,updateConnection:w,getTransform:k,getFromHandle:_,autoPanSpeed:C,dragThreshold:j=1,handleDomNode:E}){const N=ySt(e.target);let I=0,A;const{x:R,y:L}=bg(e),D=TSt(a,E),B=l?.getBoundingClientRect();let H=!1;if(!B||!D)return;const F=jSt(s,D,r,c,t);if(!F)return;let z=bg(e,B),V=!1,M=null,Q=!1,q=null;function $(){if(!d||!B)return;const[ie,Y]=hSt(z,B,C);p({x:ie,y:Y}),I=requestAnimationFrame($)}const U={...F,nodeId:s,type:D,position:F.position},Z=c.get(s);let te={inProgress:!0,isValid:null,from:WO(Z,U,sr.Left,!0),fromHandle:U,fromPosition:U.position,fromNode:Z,to:z,toHandle:null,toPosition:Y8e[U.position],toNode:null,pointer:z};function ne(){H=!0,w(te),m?.(e,{nodeId:s,handleId:r,handleType:D})}j===0&&ne();function J(ie){if(!H){const{x:fe,y:be}=bg(ie),xe=fe-R,je=be-L;if(!(xe*xe+je*je>j*j))return;ne()}if(!_()||!U){se(ie);return}const Y=k();z=bg(ie,B),A=NGn(q3(z,Y,!1,[1,1]),n,c,U),V||($(),V=!0);const ee=ISt(ie,{handle:A,connectionMode:t,fromNodeId:s,fromHandleId:r,fromType:i?"target":"source",isValidConnection:b,doc:N,lib:u,flowId:f,nodeLookup:c});q=ee.handleDomNode,M=ee.connection,Q=IGn(!!A,ee.isValid);const ue=c.get(s),pe=ue?WO(ue,U,sr.Left,!0):te.from,le={...te,from:pe,isValid:Q,to:ee.toHandle&&Q?NB({x:ee.toHandle.x,y:ee.toHandle.y},Y):z,toHandle:ee.toHandle,toPosition:Q&&ee.toHandle?ee.toHandle.position:Y8e[U.position],toNode:ee.toHandle?c.get(ee.toHandle.nodeId):null,pointer:z};w(le),te=le}function se(ie){if(!("touches"in ie&&ie.touches.length>0)){if(H){(A||q)&&M&&Q&&g?.(M);const{inProgress:Y,...ee}=te,ue={...ee,toPosition:te.toHandle?te.toPosition:null};y?.(ie,ue),a&&x?.(ie,ue)}h(),cancelAnimationFrame(I),V=!1,Q=!1,M=null,q=null,N.removeEventListener("mousemove",J),N.removeEventListener("mouseup",se),N.removeEventListener("touchmove",J),N.removeEventListener("touchend",se)}}N.addEventListener("mousemove",J),N.addEventListener("mouseup",se),N.addEventListener("touchmove",J),N.addEventListener("touchend",se)}function ISt(e,{handle:t,connectionMode:n,fromNodeId:r,fromHandleId:s,fromType:a,doc:i,lib:l,flowId:c,isValidConnection:u=NSt,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}=bg(e),g=i.elementFromPoint(h,m),y=g?.classList.contains(`${l}-flow__handle`)?g:p,b={handleDomNode:y,isValid:!1,connection:null,toHandle:null};if(y){const x=TSt(void 0,y),w=y.getAttribute("data-nodeid"),k=y.getAttribute("data-handleid"),_=y.classList.contains("connectable"),C=y.classList.contains("connectableend");if(!w||!x)return b;const j={source:f?w:r,sourceHandle:f?k:s,target:f?r:w,targetHandle:f?s:k};b.connection=j;const N=_&&C&&(n===WT.Strict?f&&x==="source"||!f&&x==="target":w!==r||k!==s);b.isValid=N&&u(j),b.toHandle=jSt(w,x,k,d,n,!0)}return b}const pge={onPointerDown:AGn,isValid:ISt};function RGn({domNode:e,panZoom:t,getTransform:n,getViewScale:r}){const s=Op(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&&PM()?10:1,C=-w.sourceEvent.deltaY*(w.sourceEvent.deltaMode===1?.05:w.sourceEvent.deltaMode?1:.002)*d,j=k[2]*Math.pow(2,C*_);t.scaleTo(j)};let g=[0,0];const y=w=>{(w.sourceEvent.type==="mousedown"||w.sourceEvent.type==="touchstart")&&(g=[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]-g[0],_[1]-g[1]];g=_;const j=r()*Math.max(k[2],Math.log(k[2]))*(h?-1:1),E={x:k[0]-C[0]*j,y:k[1]-C[1]*j},N=[[0,0],[c,u]];t.setViewportConstrained({x:E.x,y:E.y,zoom:k[2]},N,l)},x=iSt().on("start",y).on("zoom",f?b:null).on("zoom.wheel",p?m:null);s.call(x,{})}function i(){s.on("zoom",null)}return{update:a,destroy:i,pointer:ag}}const FH=e=>({x:e.x,y:e.y,zoom:e.k}),lte=({x:e,y:t,zoom:n})=>MH.translate(e,t).scale(n),uj=(e,t)=>e.target.closest(`.${t}`),ASt=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),PGn=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,cte=(e,t=0,n=PGn,r=()=>{})=>{const s=typeof t=="number"&&t>0;return s||r(),s?e.transition().duration(t).ease(n).on("end",r):e},RSt=e=>{const t=e.ctrlKey&&PM()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function $Gn({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:r,panOnScrollMode:s,panOnScrollSpeed:a,zoomOnPinch:i,onPanZoomStart:l,onPanZoom:c,onPanZoomEnd:u}){return d=>{if(uj(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=ag(d),b=RSt(d),x=f*Math.pow(2,b);r.scaleTo(n,x,y,d);return}const p=d.deltaMode===1?20:1;let h=s===Xk.Vertical?0:d.deltaX*p,m=s===Xk.Horizontal?0:d.deltaY*p;!PM()&&d.shiftKey&&s!==Xk.Vertical&&(h=d.deltaY*p,m=0),r.translateBy(n,-(h/f)*a,-(m/f)*a,{internal:!0});const g=FH(n.property("__zoom"));clearTimeout(e.panScrollTimeout),e.isPanScrolling?(c?.(d,g),e.panScrollTimeout=setTimeout(()=>{u?.(d,g),e.isPanScrolling=!1},150)):(e.isPanScrolling=!0,l?.(d,g))}}function MGn({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(r,s){const a=r.type==="wheel",i=!t&&a&&!r.ctrlKey,l=uj(r,e);if(r.ctrlKey&&a&&l&&r.preventDefault(),i||l)return null;r.preventDefault(),n.call(this,r,s)}}function DGn({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return r=>{if(r.sourceEvent?.internal)return;const s=FH(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 LGn({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:r,onPanZoom:s}){return a=>{e.usedRightMouseButton=!!(n&&ASt(t,e.mouseButton??0)),a.sourceEvent?.sync||r([a.transform.x,a.transform.y,a.transform.k]),s&&!a.sourceEvent?.internal&&s?.(a.sourceEvent,FH(a.transform))}}function FGn({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:r,onPanZoomEnd:s,onPaneContextMenu:a}){return i=>{if(!i.sourceEvent?.internal&&(e.isZoomingOrPanning=!1,a&&ASt(t,e.mouseButton??0)&&!e.usedRightMouseButton&&i.sourceEvent&&a(i.sourceEvent),e.usedRightMouseButton=!1,r(!1),s)){const l=FH(i.transform);e.prevViewport=l,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{s?.(i.sourceEvent,l)},n?150:0)}}}function zGn({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"&&(uj(f,`${u}-flow__node`)||uj(f,`${u}-flow__edge`)))return!0;if(!r&&!p&&!s&&!a&&!n||i||d&&!m||uj(f,l)&&m||uj(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 g=Array.isArray(r)&&r.includes(f.button)||!f.button||f.button<=1;return(!f.ctrlKey||m)&&g}}function BGn({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=iSt().scaleExtent([t,n]).translateExtent(r),p=Op(e).call(f);x({x:s.x,y:s.y,zoom:ZT(s.zoom,t,n)},[[0,0],[d.width,d.height]],r);const h=p.on("wheel.zoom"),m=p.on("dblclick.zoom");f.wheelDelta(RSt);function g(A,R){return p?new Promise(L=>{f?.interpolate(R?.interpolate==="linear"?dx:R8).transform(cte(p,R?.duration,R?.ease,()=>L(!0)),A)}):Promise.resolve(!1)}function y({noWheelClassName:A,noPanClassName:R,onPaneContextMenu:L,userSelectionActive:D,panOnScroll:B,panOnDrag:H,panOnScrollMode:F,panOnScrollSpeed:z,preventScrolling:V,zoomOnPinch:M,zoomOnScroll:Q,zoomOnDoubleClick:q,zoomActivationKeyPressed:$,lib:U,onTransformChange:Z,connectionInProgress:K,paneClickDistance:te,selectionOnDrag:ne}){D&&!u.isZoomingOrPanning&&b();const J=B&&!$&&!D;f.clickDistance(ne?1/0:!yg(te)||te<0?0:te);const se=J?$Gn({zoomPanValues:u,noWheelClassName:A,d3Selection:p,d3Zoom:f,panOnScrollMode:F,panOnScrollSpeed:z,zoomOnPinch:M,onPanZoomStart:i,onPanZoom:a,onPanZoomEnd:l}):MGn({noWheelClassName:A,preventScrolling:V,d3ZoomHandler:h});if(p.on("wheel.zoom",se,{passive:!1}),!D){const Y=DGn({zoomPanValues:u,onDraggingChange:c,onPanZoomStart:i});f.on("start",Y);const ee=LGn({zoomPanValues:u,panOnDrag:H,onPaneContextMenu:!!L,onPanZoom:a,onTransformChange:Z});f.on("zoom",ee);const ue=FGn({zoomPanValues:u,panOnDrag:H,panOnScroll:B,onPaneContextMenu:L,onPanZoomEnd:l,onDraggingChange:c});f.on("end",ue)}const ie=zGn({zoomActivationKeyPressed:$,panOnDrag:H,zoomOnScroll:Q,panOnScroll:B,zoomOnDoubleClick:q,zoomOnPinch:M,userSelectionActive:D,noPanClassName:R,noWheelClassName:A,lib:U,connectionInProgress:K});f.filter(ie),q?p.on("dblclick.zoom",m):p.on("dblclick.zoom",null)}function b(){f.on("zoom",null)}async function x(A,R,L){const D=lte(A),B=f?.constrain()(D,R,L);return B&&await g(B),new Promise(H=>H(B))}async function w(A,R){const L=lte(A);return await g(L,R),new Promise(D=>D(L))}function k(A){if(p){const R=lte(A),L=p.property("__zoom");(L.k!==A.zoom||L.x!==A.x||L.y!==A.y)&&f?.transform(p,R,null,{sync:!0})}}function _(){const A=p?aSt(p.node()):{x:0,y:0,k:1};return{x:A.x,y:A.y,zoom:A.k}}function C(A,R){return p?new Promise(L=>{f?.interpolate(R?.interpolate==="linear"?dx:R8).scaleTo(cte(p,R?.duration,R?.ease,()=>L(!0)),A)}):Promise.resolve(!1)}function j(A,R){return p?new Promise(L=>{f?.interpolate(R?.interpolate==="linear"?dx:R8).scaleBy(cte(p,R?.duration,R?.ease,()=>L(!0)),A)}):Promise.resolve(!1)}function E(A){f?.scaleExtent(A)}function N(A){f?.translateExtent(A)}function I(A){const R=!yg(A)||A<0?0:A;f?.clickDistance(R)}return{update:y,destroy:b,setViewport:w,setViewportConstrained:x,getViewport:_,scaleTo:C,scaleBy:j,setScaleExtent:E,setTranslateExtent:N,syncViewport:k,setClickDistance:I}}var YT;(function(e){e.Line="line",e.Handle="handle"})(YT||(YT={}));function UGn({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 c9e(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 H0(e,t){return Math.max(0,t-e)}function W0(e,t){return Math.max(0,e-t)}function oF(e,t,n){return Math.max(0,t-e,e-n)}function u9e(e,t){return e?!t:t}function VGn(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:g,maxWidth:y,minHeight:b,maxHeight:x}=r,{x:w,y:k,width:_,height:C,aspectRatio:j}=e;let E=Math.floor(d?h-e.pointerX:0),N=Math.floor(f?m-e.pointerY:0);const I=_+(c?-E:E),A=C+(u?-N:N),R=-a[0]*_,L=-a[1]*C;let D=oF(I,g,y),B=oF(A,b,x);if(i){let z=0,V=0;c&&E<0?z=H0(w+E+R,i[0][0]):!c&&E>0&&(z=W0(w+I+R,i[1][0])),u&&N<0?V=H0(k+N+L,i[0][1]):!u&&N>0&&(V=W0(k+A+L,i[1][1])),D=Math.max(D,z),B=Math.max(B,V)}if(l){let z=0,V=0;c&&E>0?z=W0(w+E,l[0][0]):!c&&E<0&&(z=H0(w+I,l[1][0])),u&&N>0?V=W0(k+N,l[0][1]):!u&&N<0&&(V=H0(k+A,l[1][1])),D=Math.max(D,z),B=Math.max(B,V)}if(s){if(d){const z=oF(I/j,b,x)*j;if(D=Math.max(D,z),i){let V=0;!c&&!u||c&&!u&&p?V=W0(k+L+I/j,i[1][1])*j:V=H0(k+L+(c?E:-E)/j,i[0][1])*j,D=Math.max(D,V)}if(l){let V=0;!c&&!u||c&&!u&&p?V=H0(k+I/j,l[1][1])*j:V=W0(k+(c?E:-E)/j,l[0][1])*j,D=Math.max(D,V)}}if(f){const z=oF(A*j,g,y)/j;if(B=Math.max(B,z),i){let V=0;!c&&!u||u&&!c&&p?V=W0(w+A*j+R,i[1][0])/j:V=H0(w+(u?N:-N)*j+R,i[0][0])/j,B=Math.max(B,V)}if(l){let V=0;!c&&!u||u&&!c&&p?V=H0(w+A*j,l[1][0])/j:V=W0(w+(u?N:-N)*j,l[0][0])/j,B=Math.max(B,V)}}}N=N+(N<0?B:-B),E=E+(E<0?D:-D),s&&(p?I>A*j?N=(u9e(c,u)?-E:E)/j:E=(u9e(c,u)?-N:N)*j:d?(N=E/j,u=c):(E=N*j,c=u));const H=c?w+E:w,F=u?k+N:k;return{width:_+(c?-E:E),height:C+(u?-N:N),x:a[0]*E*(c?-1:1)+H,y:a[1]*N*(u?-1:1)+F}}const PSt={width:0,height:0,x:0,y:0},qGn={...PSt,pointerX:0,pointerY:0,aspectRatio:1};function HGn(e){return[[0,0],[e.measured.width,e.measured.height]]}function WGn(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 ZGn({domNode:e,nodeId:t,getStoreItems:n,onChange:r,onEnd:s}){const a=Op(e);let i={controlDirection:c9e("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:g,shouldResize:y}){let b={...PSt},x={...qGn};i={boundaries:d,resizeDirection:p,keepAspectRatio:f,controlDirection:c9e(u)};let w,k=null,_=[],C,j,E,N=!1;const I=H1t().on("start",A=>{const{nodeLookup:R,transform:L,snapGrid:D,snapToGrid:B,nodeOrigin:H,paneDomNode:F}=n();if(w=R.get(t),!w)return;k=F?.getBoundingClientRect()??null;const{xSnapped:z,ySnapped:V}=v2(A.sourceEvent,{transform:L,snapGrid:D,snapToGrid:B,containerBounds:k});b={width:w.measured.width??0,height:w.measured.height??0,x:w.position.x??0,y:w.position.y??0},x={...b,pointerX:z,pointerY:V,aspectRatio:b.width/b.height},C=void 0,w.parentId&&(w.extent==="parent"||w.expandParent)&&(C=R.get(w.parentId),j=C&&w.extent==="parent"?HGn(C):void 0),_=[],E=void 0;for(const[M,Q]of R)if(Q.parentId===t&&(_.push({id:M,position:{...Q.position},extent:Q.extent}),Q.extent==="parent"||Q.expandParent)){const q=WGn(Q,w,Q.origin??H);E?E=[[Math.min(q[0][0],E[0][0]),Math.min(q[0][1],E[0][1])],[Math.max(q[1][0],E[1][0]),Math.max(q[1][1],E[1][1])]]:E=q}h?.(A,{...b})}).on("drag",A=>{const{transform:R,snapGrid:L,snapToGrid:D,nodeOrigin:B}=n(),H=v2(A.sourceEvent,{transform:R,snapGrid:L,snapToGrid:D,containerBounds:k}),F=[];if(!w)return;const{x:z,y:V,width:M,height:Q}=b,q={},$=w.origin??B,{width:U,height:Z,x:K,y:te}=VGn(x,i.controlDirection,H,i.boundaries,i.keepAspectRatio,$,j,E),ne=U!==M,J=Z!==Q,se=K!==z&&ne,ie=te!==V&&J;if(!se&&!ie&&!ne&&!J)return;if((se||ie||$[0]===1||$[1]===1)&&(q.x=se?K:b.x,q.y=ie?te:b.y,b.x=q.x,b.y=q.y,_.length>0)){const pe=K-z,le=te-V;for(const fe of _)fe.position={x:fe.position.x-pe+$[0]*(U-M),y:fe.position.y-le+$[1]*(Z-Q)},F.push(fe)}if((ne||J)&&(q.width=ne&&(!i.resizeDirection||i.resizeDirection==="horizontal")?U:b.width,q.height=J&&(!i.resizeDirection||i.resizeDirection==="vertical")?Z:b.height,b.width=q.width,b.height=q.height),C&&w.expandParent){const pe=$[0]*(q.width??0);q.x&&q.x<pe&&(b.x=pe,x.x=x.x-(q.x-pe));const le=$[1]*(q.height??0);q.y&&q.y<le&&(b.y=le,x.y=x.y-(q.y-le))}const Y=UGn({width:b.width,prevWidth:M,height:b.height,prevHeight:Q,affectsX:i.controlDirection.affectsX,affectsY:i.controlDirection.affectsY}),ee={...b,direction:Y};y?.(A,ee)!==!1&&(N=!0,m?.(A,ee),r(q,F))}).on("end",A=>{N&&(g?.(A,{...b}),s?.({...b}),N=!1)});a.call(I)}function c(){a.on(".drag",null)}return{update:l,destroy:c}}const GGn={},d9e=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:()=>{(GGn?"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},QGn=e=>e?d9e(e):d9e,{useDebugValue:YGn}=Fe,{useSyncExternalStoreWithSelector:KGn}=hOn,XGn=e=>e;function $St(e,t=XGn,n){const r=KGn(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return YGn(r),r}const f9e=(e,t)=>{const n=QGn(e),r=(s,a=t)=>$St(n,s,a);return Object.assign(r,n),r},JGn=(e,t)=>e?f9e(e,t):f9e;function io(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 zH=v.createContext(null),eQn=zH.Provider,MSt=Sy.error001();function Bs(e,t){const n=v.useContext(zH);if(n===null)throw new Error(MSt);return $St(n,e,t)}function jo(){const e=v.useContext(zH);if(e===null)throw new Error(MSt);return v.useMemo(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}const p9e={display:"none"},tQn={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},DSt="react-flow__node-desc",LSt="react-flow__edge-desc",nQn="react-flow__aria-live",rQn=e=>e.ariaLiveMessage,sQn=e=>e.ariaLabelConfig;function aQn({rfId:e}){const t=Bs(rQn);return o.jsx("div",{id:`${nQn}-${e}`,"aria-live":"assertive","aria-atomic":"true",style:tQn,children:t})}function iQn({rfId:e,disableKeyboardA11y:t}){const n=Bs(sQn);return o.jsxs(o.Fragment,{children:[o.jsx("div",{id:`${DSt}-${e}`,style:p9e,children:t?n["node.a11yDescription.default"]:n["node.a11yDescription.keyboardDisabled"]}),o.jsx("div",{id:`${LSt}-${e}`,style:p9e,children:n["edge.a11yDescription.default"]}),!t&&o.jsx(aQn,{rfId:e})]})}const H3=v.forwardRef(({position:e="top-left",children:t,className:n,style:r,...s},a)=>{const i=`${e}`.split("-");return o.jsx("div",{className:Ul(["react-flow__panel",n,...i]),style:r,ref:a,...s,children:t})});H3.displayName="Panel";function oQn({proOptions:e,position:t="bottom-right"}){return e?.hideAttribution?null:o.jsx(H3,{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 lQn=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}},lF=e=>e.id;function cQn(e,t){return io(e.selectedNodes.map(lF),t.selectedNodes.map(lF))&&io(e.selectedEdges.map(lF),t.selectedEdges.map(lF))}function uQn({onSelectionChange:e}){const t=jo(),{selectedNodes:n,selectedEdges:r}=Bs(lQn,cQn);return v.useEffect(()=>{const s={nodes:n,edges:r};e?.(s),t.getState().onSelectionChangeHandlers.forEach(a=>a(s))},[n,r,e]),null}const dQn=e=>!!e.onSelectionChangeHandlers;function fQn({onSelectionChange:e}){const t=Bs(dQn);return e||t?o.jsx(uQn,{onSelectionChange:e}):null}const hge=typeof window<"u"?v.useLayoutEffect:v.useEffect,FSt=[0,0],pQn={x:0,y:0,zoom:1},hQn=["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"],h9e=[...hQn,"rfId"],mQn=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}),m9e={translateExtent:NM,nodeOrigin:FSt,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:"nopan",rfId:"1"};function gQn(e){const{setNodes:t,setEdges:n,setMinZoom:r,setMaxZoom:s,setTranslateExtent:a,setNodeExtent:i,reset:l,setDefaultNodesAndEdges:c}=Bs(mQn,io),u=jo();hge(()=>(c(e.defaultNodes,e.defaultEdges),()=>{d.current=m9e,l()}),[]);const d=v.useRef(m9e);return hge(()=>{for(const f of h9e){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:aGn(p)}):f==="fitView"?u.setState({fitViewQueued:p}):f==="fitViewOptions"?u.setState({fitViewOptions:p}):u.setState({[f]:p})))}d.current=e},h9e.map(f=>e[f])),null}function g9e(){return typeof window>"u"||!window.matchMedia?null:window.matchMedia("(prefers-color-scheme: dark)")}function vQn(e){const[t,n]=v.useState(e==="system"?null:e);return v.useEffect(()=>{if(e!=="system"){n(e);return}const r=g9e(),s=()=>n(r?.matches?"dark":"light");return s(),r?.addEventListener("change",s),()=>{r?.removeEventListener("change",s)}},[e]),t!==null?t:g9e()?.matches?"dark":"light"}const v9e=typeof document<"u"?document:null;function $M(e=null,t={target:v9e,actInsideInputWithModifier:!0}){const[n,r]=v.useState(!1),s=v.useRef(!1),a=v.useRef(new Set([])),[i,l]=v.useMemo(()=>{if(e!==null){const u=(Array.isArray(e)?e:[e]).filter(f=>typeof f=="string").map(f=>f.replace("+",`
|
|
338
338
|
`).replace(`
|
|
339
339
|
|
|
340
340
|
`,`
|
|
@@ -718,7 +718,7 @@ Token usage: ${n} input + ${r} output = ${s} total`:`The model stopped generatin
|
|
|
718
718
|
}
|
|
719
719
|
]`})]})]})}function zis({errors:e,maxErrors:t=5}){if(e.length===0)return null;const n=e.slice(0,t),r=e.length-t;return o.jsxs("div",{className:"bg-accent2/10 border-accent2/30 rounded-md border p-3",children:[o.jsxs("div",{className:"text-accent2 mb-2 flex items-center gap-2",children:[o.jsx(qe,{children:o.jsx(wf,{className:"h-4 w-4"})}),o.jsxs("span",{className:"text-sm font-medium",children:[e.length," validation error",e.length!==1?"s":""]})]}),o.jsx("ul",{className:"text-accent2/80 space-y-1 text-sm",children:n.map((s,a)=>o.jsxs("li",{className:"flex gap-2",children:[o.jsx("span",{className:"shrink-0",children:"•"}),o.jsx("span",{children:s.message})]},a))}),r>0&&o.jsxs("div",{className:"text-accent2/60 mt-2 text-xs",children:["+",r," more error",r!==1?"s":""]})]})}function Bis({datasetId:e,open:t,onOpenChange:n,onSuccess:r}){const[s,a]=v.useState("upload"),[i,l]=v.useState(null),[c,u]=v.useState({current:0,total:0}),[d,f]=v.useState(null),[p,h]=v.useState(!1),{parseFile:m,isParsing:g,error:y}=pas(),{batchInsertItems:b}=Ni(),x=v.useCallback(async I=>{try{const A=await m(I);l(A),a("preview")}catch{}},[m]),w=v.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=v.useCallback(()=>{n(!1),r?.(),d&&d.success>0&&Le.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]),_=v.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,j=()=>{switch(s){case"upload":return o.jsx(Fis,{onFileSelect:x,isParsing:g,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(zis,{errors:i.errors}),o.jsx("div",{className:"text-neutral4 text-sm",children:"Please fix the errors in your JSON file and try again."})]}):o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"text-neutral4 text-sm",children:["Found ",i.items.length," valid item",i.items.length!==1?"s":""," to import."]}),o.jsx(Lis,{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(Xt,{}),o.jsxs("div",{className:"text-center",children:[o.jsx("div",{className:"text-neutral1 text-lg font-medium",children:"Importing items..."}),o.jsxs("div",{className:"text-neutral4 mt-1 text-sm",children:[c.current," of ",c.total]})]})]});case"complete":return o.jsxs("div",{className:"flex flex-col items-center gap-4 py-8",children:[o.jsx("div",{className:"text-4xl",children:d&&d.errors===0?"✓":"⚠"}),o.jsxs("div",{className:"text-center",children:[o.jsx("div",{className:"text-neutral1 text-lg font-medium",children:"Import Complete"}),o.jsxs("div",{className:"text-neutral4 mt-1 text-sm",children:[d?.success??0," item",d?.success!==1?"s":""," imported",d&&d.errors>0&&o.jsxs("span",{className:"text-accent2",children:[" ","(",d.errors," error",d.errors!==1?"s":"",")"]})]})]})]})}},E=()=>{switch(s){case"upload":return o.jsx(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"})}},N={upload:"Import JSON",preview:"Preview Data",importing:"Importing",complete:"Import Complete"};return o.jsx(br,{open:t,onOpenChange:_,children:o.jsxs(xr,{className:"max-h-[90vh] max-w-2xl",children:[o.jsxs(wr,{children:[o.jsx(gr,{children:N[s]}),o.jsx(Ks,{children:"Import dataset items from a JSON file."})]}),o.jsx($r,{className:"max-h-[50vh] min-h-[200px] overflow-y-auto",children:j()}),o.jsx(Tc,{className:"flex justify-end gap-2 px-6 pt-4",children:E()})]})})}const xIe=e=>{const t=We(),{data:n}=CD(e),r=n?.experiments;return mt({queryKey:["dataset-review-items",e,r?.map(s=>s.id)],queryFn:async()=>!r||r.length===0?[]:(await Promise.all(r.map(async a=>{if(!a.datasetId)return[];try{const{results:i}=await t.listDatasetExperimentResults(a.datasetId,a.id);return i.filter(l=>l.status==="needs-review").map(l=>({id:l.id,input:l.input,output:l.output,error:l.error,itemId:l.itemId,experimentId:l.experimentId,datasetId:a.datasetId??void 0,traceId:l.traceId??void 0,scores:l.scores?Object.fromEntries(l.scores.map(c=>[c.scorerId,c.score??0])):{},tags:l.tags??[],comment:l.comment??""}))}catch{return[]}}))).flat(),enabled:!!e&&!!r&&r.length>0,refetchOnWindowFocus:!1})},Uis=e=>{const t=We(),{data:n}=CD(e),r=n?.experiments;return mt({queryKey:["dataset-completed-items",e,r?.map(s=>s.id)],queryFn:async()=>!r||r.length===0?[]:(await Promise.all(r.map(async a=>{if(!a.datasetId)return[];try{const{results:i}=await t.listDatasetExperimentResults(a.datasetId,a.id);return i.filter(l=>l.status==="complete").map(l=>({id:l.id,input:l.input,output:l.output,error:l.error,itemId:l.itemId,experimentId:l.experimentId,datasetId:a.datasetId??void 0,traceId:l.traceId??void 0,scores:l.scores?Object.fromEntries(l.scores.map(c=>[c.scorerId,c.score??0])):{},tags:l.tags??[],comment:l.comment??""}))}catch{return[]}}))).flat(),enabled:!!e&&!!r&&r.length>0,refetchOnWindowFocus:!1})};function Vis(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 S7t({datasetId:e,experimentId:t,featuredItemId:n}){const r=We(),{data:s}=Kx(e),{data:a,isLoading:i}=xIe(e),{data:l,isLoading:c}=Uis(e),u=v.useMemo(()=>t?(a??[]).filter(Te=>Te.experimentId===t):a,[a,t]),d=v.useMemo(()=>t?(l??[]).filter(Te=>Te.experimentId===t):l,[l,t]),{updateExperimentResult:f}=Ni(),[p,h]=v.useState(n??null);v.useEffect(()=>{n!==void 0&&h(n)},[n]);const[m,g]=v.useState(null),[y,b]=v.useState(new Set),[x,w]=v.useState(!1),[k,_]=v.useState(!1),[C,j]=v.useState(!1),[E,N]=v.useState(""),[I,A]=v.useState(""),[R,L]=v.useState(""),[D,B]=v.useState([]),[H,F]=v.useState(!1),[z,V]=v.useState(null),M=v.useMemo(()=>z??u??[],[z,u]);v.useEffect(()=>{V(null)},[e,t]),v.useEffect(()=>{u&&z===null&&V(u)},[u,z]);const Q=v.useMemo(()=>{const Te=new Set;if(s?.tags)for(const Ee of s.tags)Te.add(Ee);for(const Ee of M)for(const _e of Ee.tags)Te.add(_e);return[...Te].sort()},[s,M]),q=v.useCallback(Te=>{!s||!e||(s.tags??[]).includes(Te)},[s,e]),$=v.useMemo(()=>m?m==="__untagged__"?M.filter(Te=>Te.tags.length===0):M.filter(Te=>Te.tags.includes(m)):M,[M,m]),U=v.useMemo(()=>{const Te=new Map;for(const Ee of M)for(const _e of Ee.tags)Te.set(_e,(Te.get(_e)??0)+1);return[...Te.entries()].sort((Ee,_e)=>_e[1]-Ee[1])},[M]),Z=v.useMemo(()=>M.filter(Te=>Te.tags.length===0).length,[M]),K=v.useMemo(()=>{let Te=0;return m&&Te++,x&&Te++,Te},[m,x]),te=v.useCallback((Te,Ee)=>{V(Oe=>(Oe??[]).map(Pe=>Pe.id===Te?{...Pe,tags:Ee}:Pe));const _e=M.find(Oe=>Oe.id===Te);_e?.experimentId&&_e?.datasetId&&f.mutate({datasetId:_e.datasetId,experimentId:_e.experimentId,resultId:_e.id,tags:Ee})},[M,f]),ne=v.useCallback((Te,Ee)=>{const _e=M.find(Oe=>Oe.id===Te);_e?.traceId&&Ee!==void 0&&r.createFeedback({feedback:{traceId:_e.traceId,source:"studio",feedbackSource:"studio",feedbackType:"rating",value:Ee==="positive"?1:-1,experimentId:_e.experimentId??void 0,sourceId:_e.id}}).catch(()=>{}),V(Oe=>(Oe??[]).map(Pe=>Pe.id===Te?{...Pe,rating:Ee}:Pe))},[M,r]),J=v.useCallback((Te,Ee)=>{const _e=M.find(Oe=>Oe.id===Te);_e?.experimentId&&_e?.datasetId&&f.mutate({datasetId:_e.datasetId,experimentId:_e.experimentId,resultId:_e.id,comment:Ee}),_e?.traceId&&r.createFeedback({feedback:{traceId:_e.traceId,source:"studio",feedbackSource:"studio",feedbackType:"comment",value:Ee,comment:Ee,experimentId:_e.experimentId??void 0,sourceId:_e.id}}).catch(()=>{}),V(Oe=>(Oe??[]).map(Pe=>Pe.id===Te?{...Pe,comment:Ee}:Pe))},[M,r,f]),se=v.useCallback(Te=>{const Ee=M.find(_e=>_e.id===Te);V(_e=>(_e??[]).filter(Oe=>Oe.id!==Te)),b(_e=>{const Oe=new Set(_e);return Oe.delete(Te),Oe}),p===Te&&h(null),Ee?.experimentId&&Ee?.datasetId&&f.mutate({datasetId:Ee.datasetId,experimentId:Ee.experimentId,resultId:Ee.id,status:null})},[M,f,p]),ie=v.useCallback(Te=>{const Ee=M.find(_e=>_e.id===Te);V(_e=>(_e??[]).filter(Oe=>Oe.id!==Te)),b(_e=>{const Oe=new Set(_e);return Oe.delete(Te),Oe}),p===Te&&h(null),Ee?.experimentId&&Ee?.datasetId&&f.mutate({datasetId:Ee.datasetId,experimentId:Ee.experimentId,resultId:Ee.id,status:"complete"})},[M,f,p]),Y=v.useMemo(()=>{const Te=x?d??[]:$;return!x||!m?Te:m==="__untagged__"?Te.filter(Ee=>Ee.tags.length===0):Te.filter(Ee=>Ee.tags.includes(m))},[x,d,$,m]),ee=x?c:!1,ue=v.useMemo(()=>new Set(Y.map(Te=>Te.id)),[Y]),pe=v.useMemo(()=>[...y].filter(Te=>ue.has(Te)).length,[y,ue]),le=Y.length>0&&pe===Y.length,fe=pe>0&&!le,be=v.useCallback(Te=>{b(Ee=>{const _e=new Set(Ee);return _e.has(Te)?_e.delete(Te):_e.add(Te),_e})},[]),xe=v.useCallback(()=>{b(le?new Set:new Set(Y.map(Te=>Te.id)))},[le,Y]),je=v.useCallback(Te=>{for(const Ee of y){const _e=M.find(Oe=>Oe.id===Ee);_e&&!_e.tags.includes(Te)&&te(Ee,[..._e.tags,Te])}},[M,y,te]),ke=v.useCallback(Te=>{for(const Ee of y){const _e=M.find(Oe=>Oe.id===Ee);_e&&_e.tags.includes(Te)&&te(Ee,_e.tags.filter(Oe=>Oe!==Te))}},[M,y,te]),Ae=v.useCallback(()=>{for(const Te of y)ie(Te);b(new Set)},[y,ie]),Me=v.useCallback(()=>{for(const Te of y)se(Te);b(new Set)},[y,se]),de=v.useCallback(()=>{N(""),j(!0)},[]),re=v.useCallback(async()=>{if(!(!I||!R)){_(!0),j(!1);try{const Te=M.filter(_e=>y.has(_e.id));if(Te.length===0){_(!1);return}const Ee=await r.clusterFailures({modelId:`${I}/${R}`,items:Te.map(_e=>({id:_e.id,input:_e.input,output:_e.output??void 0,error:typeof _e.error=="string"?_e.error:_e.error?String(_e.error):void 0,scores:_e.scores,existingTags:_e.tags.length>0?_e.tags:void 0})),availableTags:Q.length>0?Q:void 0,prompt:E||void 0});Ee.proposedTags&&Ee.proposedTags.length>0&&(B(Ee.proposedTags.map(_e=>({..._e,accepted:!0}))),F(!0))}catch(Te){console.error("Analysis failed:",Te)}finally{_(!1)}}},[I,R,M,y,r,Q,E]),ae=v.useCallback(()=>{for(const Te of D){if(!Te.accepted)continue;const Ee=M.find(_e=>_e.id===Te.itemId);if(Ee){const _e=[...new Set([...Ee.tags,...Te.tags])];te(Ee.id,_e)}}F(!1)},[D,M,te]),me=v.useCallback(Te=>{h(Ee=>Ee===Te?null:Te)},[]),we=v.useMemo(()=>p?Y.find(Te=>Te.id===p)??null:null,[p,Y]),Ne=p?Y.findIndex(Te=>Te.id===p):-1,Re=Ne>0?()=>h(Y[Ne-1].id):void 0,Qe=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 flex-1 items-center justify-center",children:o.jsx(Xt,{className:"h-6 w-6"})}):o.jsxs("div",{className:"flex min-h-0 flex-1 overflow-hidden",children:[o.jsx(br,{open:C,onOpenChange:j,children:o.jsxs(xr,{children:[o.jsxs(wr,{children:[o.jsx(gr,{children:"Analyze Items"}),o.jsx(Ks,{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(Dt,{className:"mb-1 block text-xs",children:"Provider"}),o.jsx(Wy,{value:I,onValueChange:A})]}),o.jsxs("div",{children:[o.jsx(Dt,{className:"mb-1 block text-xs",children:"Model"}),o.jsx(Zy,{llmId:I,value:R,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(Dt,{className:"text-xs",children:"Instructions (optional)"}),o.jsx($l,{value:E,onChange:Te=>N(Te.target.value),placeholder:"E.g., Focus on safety issues and factual errors...",rows:3,className:"mt-1 text-xs"})]})]}),o.jsxs(Tc,{children:[o.jsx(ce,{variant:"outline",onClick:()=>j(!1),children:"Cancel"}),o.jsxs(ce,{onClick:re,disabled:!I||!R||k,children:[k?o.jsx(Xt,{className:"mr-1 h-4 w-4"}):null,"Analyze"]})]})]})}),o.jsx(br,{open:H,onOpenChange:F,children:o.jsxs(xr,{className:"max-h-[80vh] max-w-2xl overflow-y-auto",children:[o.jsxs(wr,{children:[o.jsx(gr,{children:"Review Proposed Tags"}),o.jsxs(Ks,{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,Ee)=>{const _e=M.find(Oe=>Oe.id===Te.itemId);return o.jsx("div",{className:X("p-3 border rounded-lg",!Te.accepted&&"opacity-50"),children:o.jsxs("div",{className:"flex items-start gap-2",children:[o.jsx(zo,{checked:Te.accepted,onCheckedChange:Oe=>B(Pe=>Pe.map((Ue,Ke)=>Ke===Ee?{...Ue,accepted:!!Oe}:Ue))}),o.jsxs("div",{className:"min-w-0 flex-1",children:[o.jsx(ye,{variant:"ui-xs",className:"text-neutral4 block truncate",children:_e?typeof _e.input=="string"?_e.input.slice(0,100):JSON.stringify(_e.input).slice(0,100):Te.itemId}),o.jsx("div",{className:"mt-1.5 flex flex-wrap gap-1",children:Te.tags.map((Oe,Pe)=>o.jsx(u9t,{tag:Oe,onRename:Ue=>B(Ke=>Ke.map((tt,Pt)=>Pt===Ee?{...tt,tags:tt.tags.map((Ot,St)=>St===Pe?Ue:Ot)}:tt)),onRemove:()=>B(Ue=>Ue.map((Ke,tt)=>tt===Ee?{...Ke,tags:Ke.tags.filter((Pt,Ot)=>Ot!==Pe)}:Ke))},`${Oe}-${Pe}`))}),Te.reason&&o.jsx(ye,{variant:"ui-xs",className:"text-neutral3 mt-1 block italic",children:Te.reason})]})]})},Te.itemId)})}),o.jsxs(Tc,{children:[o.jsx(ce,{variant:"outline",onClick:()=>F(!1),children:"Cancel"}),o.jsxs(ce,{onClick:ae,disabled:D.filter(Te=>Te.accepted).length===0,children:["Accept ",D.filter(Te=>Te.accepted).length," proposals"]})]})]})}),o.jsxs("div",{className:X("grid w-full h-full grid-cols-1 gap-4 overflow-y-auto",we&&"grid-cols-[1fr_1fr]"),children:[o.jsxs("div",{className:"grid w-full content-start gap-8 overflow-y-auto",children:[o.jsxs("div",{className:"flex w-full flex-wrap items-center justify-between 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(Sit,{}),"Filter",K>0&&o.jsx("span",{className:X("ml-0.5 inline-flex items-center justify-center rounded-full bg-accent1/50 text-neutral5 text-ui-sm w-5 h-5"),children:K})]})}),o.jsxs(dt.Content,{align:"start",className:X("min-w-48"),children:[o.jsxs(dt.Sub,{children:[o.jsxs(dt.SubTrigger,{children:["Status",x&&o.jsx("span",{className:X("ml-auto text-ui-sm text-accent1"),children:"1"})]}),o.jsxs(dt.SubContent,{children:[o.jsx(dt.CheckboxItem,{checked:!x,onCheckedChange:()=>{w(!1),h(null)},onSelect:Te=>Te.preventDefault(),children:"Review Queue"}),o.jsx(dt.CheckboxItem,{checked:x,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:X("ml-auto text-ui-sm text-accent1"),children:"1"})]}),o.jsxs(dt.SubContent,{children:[o.jsx(dt.CheckboxItem,{checked:!m,onCheckedChange:()=>g(null),onSelect:Te=>Te.preventDefault(),children:"All"}),Z>0&&o.jsx(dt.CheckboxItem,{checked:m==="__untagged__",onCheckedChange:()=>g(m==="__untagged__"?null:"__untagged__"),onSelect:Te=>Te.preventDefault(),children:"Untagged"}),U.length>0&&o.jsx(dt.Separator,{}),U.map(([Te])=>o.jsx(dt.CheckboxItem,{checked:m===Te,onCheckedChange:()=>g(m===Te?null:Te),onSelect:Ee=>Ee.preventDefault(),children:Te},Te))]})]}),K>0&&o.jsxs(o.Fragment,{children:[o.jsx(dt.Separator,{}),o.jsxs(dt.Item,{onSelect:()=>{g(null),w(!1),h(null)},children:[o.jsx(bs,{}),"Clear all filters"]})]})]})]}),K>0&&o.jsxs(ce,{variant:"outline",size:"md",onClick:()=>{g(null),w(!1),h(null)},children:[o.jsx(bs,{}),"Reset"]})]}),!x&&y.size>0&&o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(c9t,{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(Xt,{className:"h-4 w-4"}):o.jsx(qe,{size:"sm",children:o.jsx(Na,{})}),"Actions"]})}),o.jsxs(dt.Content,{align:"end",children:[o.jsxs(dt.Item,{onSelect:Ae,children:[o.jsx(qe,{size:"sm",children:o.jsx(lO,{})}),"Complete"]}),o.jsxs(dt.Item,{onSelect:Me,children:[o.jsx(qe,{size:"sm",children:o.jsx(pu,{})}),"Remove"]}),o.jsx(dt.Separator,{}),o.jsxs(dt.Item,{onSelect:de,children:[o.jsx(qe,{size:"sm",children:o.jsx(Tg,{})}),"Analyze"]})]})]})]})]}),ee?o.jsx("div",{className:"flex flex-1 items-center justify-center",children:o.jsx(Xt,{className:"h-6 w-6"})}):Y.length===0?o.jsx("div",{className:"flex flex-1 items-center justify-center",children:o.jsxs("div",{className:"px-8 text-center",children:[o.jsx(ye,{variant:"ui-sm",className:"text-neutral3 block",children:x?"No completed reviews yet":"No items to review"}),o.jsx(ye,{variant:"ui-xs",className:"text-neutral3 mt-2 block",children:x?"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:[x?o.jsx(ve.TopCell,{children:" "}):o.jsx(ve.TopSelectCell,{checked:le?!0:fe?"indeterminate":!1,onToggle:()=>xe(),"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 Ee=Te.scores?Object.entries(Te.scores):[],_e=p===Te.id,Oe=o.jsxs(o.Fragment,{children:[o.jsx(ve.Cell,{height:"compact",className:"text-neutral4 min-w-0",children:o.jsx("span",{className:"block truncate",children:Vis(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(qe,{size:"sm",className:"text-positive1",children:o.jsx(Kbe,{})}),Te.rating==="negative"&&o.jsx(qe,{size:"sm",className:"text-negative1",children:o.jsx(Ybe,{})}),!Te.rating&&o.jsx(ye,{variant:"ui-xs",className:"text-neutral2",children:"—"})]}),o.jsx(ve.Cell,{height:"compact",children:Ee.length>0?o.jsxs("div",{className:"flex items-center gap-1",children:[o.jsx(qe,{size:"sm",className:"text-neutral3",children:o.jsx(sm,{})}),o.jsx(ye,{variant:"ui-xs",className:"text-neutral4 font-mono",children:Ee[0][1].toFixed(2)}),Ee.length>1&&o.jsxs(cn,{variant:"default",children:["+",Ee.length-1]})]}):o.jsx(ye,{variant:"ui-xs",className:"text-neutral2",children:"—"})})]});return o.jsxs(ve.RowWrapper,{children:[x?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:X("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:_e,onClick:()=>me(Te.id),children:Oe})]},Te.id)})]})]}),we&&o.jsx(l9t,{item:we,isCompleted:x,tagVocabulary:Q,onRate:Te=>ne(we.id,Te),onSetTags:Te=>{te(we.id,Te);for(const Ee of Te)Q.includes(Ee)||q(Ee)},onComment:Te=>J(we.id,Te),onRemove:()=>se(we.id),onComplete:x?void 0:()=>ie(we.id),onPrevious:Re,onNext:Qe,onClose:()=>h(null)})]})]})}function qis({datasetId:e,onAddItemClick:t,onNavigateToDataset:n}){const{navigate:r}=yn(),[s,a]=Ri(),{tab:i,activeVersion:l,handleTabChange:c}=yIe(s,a),[u,d]=v.useState(!1),[f,p]=v.useState(!1),[h,m]=v.useState(!1),[g,y]=v.useState([]),[b,x]=v.useState(!1),[w,k]=v.useState([]),[_,C]=v.useState(!1),[j,E]=v.useState([]),[N,I]=v.useState(0),[A,R]=v.useState(null),[L,D]=v.useState(""),[B]=y1e(L,300),{data:H}=Kx(e),{data:F=[],total:z,isLoading:V,setEndOfListElement:M,isFetchingNextPage:Q,hasNextPage:q}=j1(e,B||void 0,l),{total:$}=j1(e,void 0,l),[U,Z]=v.useState({}),{data:K,isLoading:te}=CD(e,void 0,U),{data:ne}=CD(e),{deleteItems:J}=Ni(),se=K?.experiments??[],ie=ne?.experiments??[],Y=Has({hasSearchQuery:!!B,filteredItemsLength:F.length,unfilteredItemsTotal:$,itemsTotal:z}),{data:ee}=xIe(e),ue=ee?.length??0,pe=ae=>{R(ae)},le=()=>{R(null)},fe=ae=>{y(ae),m(!0)},be=ae=>{k(ae),x(!0)},xe=ae=>{x(ae),ae||(k([]),I(me=>me+1))},je=ae=>{r(`/datasets/${e}/items?items=${ae.join(",")}`)},ke=ae=>{r(`/datasets/${e}/versions?ids=${ae.join(",")}`)},Ae=ae=>{E(ae),C(!0)},Me=async()=>{await J.mutateAsync({datasetId:e,itemIds:j}),Le.success(`Deleted ${j.length} items`),C(!1),E([]),I(ae=>ae+1)},de=ae=>{m(!1),y([]),I(me=>me+1),n?.(ae)},re=ae=>{m(ae),ae||(y([]),I(me=>me+1))};return o.jsxs(o.Fragment,{children:[o.jsxs(Dc,{defaultTab:"items",value:i,onValueChange:c,className:"grid h-full grid-rows-[auto_1fr]",children:[o.jsxs(Mc,{children:[o.jsxs(Rr,{value:"items",children:["Items ",o.jsx(Js,{color:"gray",children:Y})]}),o.jsxs(Rr,{value:"experiments",children:["Experiments",o.jsx(Js,{color:"gray",children:se.length})]}),o.jsxs(Rr,{value:"review",children:["Review",ue>0&&o.jsx(Js,{color:"orange",children:ue})]})]}),o.jsx(Xr,{value:"items",className:"mt-5 grid overflow-auto pb-0",children:o.jsx(Dis,{datasetId:e,items:F,isLoading:V,featuredItemId:A,onItemSelect:pe,onItemClose:le,onAddClick:t??(()=>{}),onImportClick:()=>d(!0),onImportJsonClick:()=>p(!0),onBulkDeleteClick:Ae,onCreateDatasetClick:fe,onAddToDatasetClick:be,onCompareItemsClick:je,datasetName:H?.name,clearSelectionTrigger:N,setEndOfListElement:M,isFetchingNextPage:Q,hasNextPage:q,searchQuery:L,activeSearchQuery:B,onSearchChange:D,currentDatasetVersion:H?.version,onCompareVersionsClick:ke})}),o.jsx(Xr,{value:"experiments",className:"mt-5 grid overflow-auto pb-0",children:o.jsx(lis,{experiments:se,allExperiments:ie,isLoading:te,datasetId:e,filters:U,onFiltersChange:Z})}),o.jsx(Xr,{value:"review",className:"mt-2 overflow-auto pb-0",children:o.jsx(S7t,{datasetId:e})})]}),o.jsx(eis,{datasetId:e,open:u,onOpenChange:d}),o.jsx(Bis,{datasetId:e,open:f,onOpenChange:p}),o.jsx(Nas,{open:h,onOpenChange:re,items:g,onSuccess:de}),o.jsx(Ias,{open:b,onOpenChange:xe,items:w,currentDatasetId:e}),o.jsx(At,{open:_,onOpenChange:C,children:o.jsxs(At.Content,{children:[o.jsxs(At.Header,{children:[o.jsx(At.Title,{children:"Delete Items"}),o.jsxs(At.Description,{children:["Are you sure you want to delete ",j.length," item",j.length!==1?"s":"","? This action cannot be undone."]})]}),o.jsxs(At.Footer,{children:[o.jsx(At.Cancel,{children:"Cancel"}),o.jsx(At.Action,{onClick:Me,children:J.isPending?"Deleting...":"Delete"})]})]})})]})}function His(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 Eae({field:e,errors:t}){return t.length?o.jsx("div",{className:"mt-2 space-y-1",children:t.map((n,r)=>o.jsxs("p",{className:"text-destructive text-xs",children:[o.jsxs("code",{className:"bg-destructive/10 rounded px-1",children:[e,n.path!=="/"?n.path:""]}),": ",n.message]},r))}):null}function Wis({datasetId:e,open:t,onOpenChange:n,onSuccess:r}){const[s,a]=v.useState("{}"),[i,l]=v.useState(""),[c,u]=v.useState(""),[d,f]=v.useState(""),[p,h]=v.useState(""),[m,g]=v.useState(null),{addItem:y}=Ni(),b=async C=>{C.preventDefault();let j;try{j=JSON.parse(s)}catch{Le.error("Input must be valid JSON");return}let E;if(i.trim())try{E=JSON.parse(i)}catch{Le.error("Ground Truth must be valid JSON");return}let N;if(c.trim())try{N=JSON.parse(c)}catch{Le.error("Expected Trajectory must be valid JSON");return}let I;if(d.trim())try{const R=JSON.parse(d);if(!Array.isArray(R)){Le.error("Tool Mocks must be a JSON array");return}I=R}catch{Le.error("Tool Mocks must be valid JSON");return}let A;if(p.trim())try{A=JSON.parse(p)}catch{Le.error("Request Context must be valid JSON");return}try{await y.mutateAsync({datasetId:e,input:j,groundTruth:E,expectedTrajectory:N,toolMocks:I,requestContext:A}),Le.success("Item added successfully"),g(null),a("{}"),l(""),u(""),f(""),h(""),n(!1),r?.()}catch(R){const L=His(R);L?g(L):Le.error(`Failed to add item: ${R instanceof Error?R.message:"Unknown error"}`)}},x=C=>{a(C),m?.field==="input"&&g(null)},w=C=>{l(C),m?.field==="groundTruth"&&g(null)},k=C=>{f(C),m?.field==="toolMocks"&&g(null)},_=()=>{a("{}"),l(""),u(""),f(""),h(""),g(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(Dt,{htmlFor:"item-input",children:"Input (JSON) *"}),o.jsx(Wr,{value:s,onChange:x,showCopyButton:!1,className:"min-h-[120px]"}),m?.field==="input"&&o.jsx(Eae,{field:"input",errors:m.errors})]}),o.jsxs("div",{className:"space-y-2",children:[o.jsx(Dt,{htmlFor:"item-ground-truth",children:"Ground Truth (JSON, optional)"}),o.jsx(Wr,{value:i,onChange:w,showCopyButton:!1,className:"min-h-[80px]"}),m?.field==="groundTruth"&&o.jsx(Eae,{field:"groundTruth",errors:m.errors})]}),o.jsxs("div",{className:"space-y-2",children:[o.jsx(Dt,{htmlFor:"item-trajectory",children:"Expected Trajectory (JSON, optional)"}),o.jsx(Wr,{value:c,onChange:u,showCopyButton:!1,className:"min-h-[80px]"})]}),o.jsxs("div",{className:"space-y-2",children:[o.jsx(Dt,{htmlFor:"item-tool-mocks",children:"Tool Mocks (JSON array, optional)"}),o.jsx(Wr,{value:d,onChange:k,showCopyButton:!1,className:"min-h-[80px]"}),m?.field==="toolMocks"&&o.jsx(Eae,{field:"toolMocks",errors:m.errors})]}),o.jsxs("div",{className:"space-y-2",children:[o.jsx(Dt,{htmlFor:"item-request-context",children:"Request Context (JSON, optional)"}),o.jsx(Wr,{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 Zis({item:e}){return o.jsx(ma,{withMargins:!1,children:o.jsxs(ma.Column,{children:[o.jsxs(ma.Title,{size:"smaller",children:[o.jsx(zN,{}),o.jsx("span",{className:"truncate",children:e.id}),o.jsx(Pa,{content:e.id,tooltip:`Copy item ID: ${e.id}`})]}),o.jsxs(ma.Description,{children:[o.jsxs(ko,{children:[o.jsx(hit,{})," Created ",nr(new Date(e.createdAt),"MMM d, yyyy h:mm aaa")]}),e.datasetVersion!=null&&o.jsxs(ko,{children:[o.jsx(b_,{})," Version v",e.datasetVersion]})]})]})})}function wIe({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(TNe,{children:[o.jsx(As.CodeSection,{title:"Input",icon:o.jsx(cO,{}),codeStr:t}),o.jsx(As.CodeSection,{title:"Ground Truth",icon:o.jsx(Og,{}),codeStr:n}),s&&o.jsx(As.CodeSection,{title:"Expected Trajectory",icon:o.jsx(Zbe,{}),codeStr:s}),o.jsx(As.CodeSection,{title:"Metadata",icon:o.jsx(VN,{}),codeStr:r})]})}function Gis({selectedScorers:e,setSelectedScorers:t,disabled:n=!1,container:r}){const{data:s,isLoading:a}=lh(),i=v.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(Dt,{children:"Scorers (Optional)"}),o.jsx(ac,{multiple:!0,options:i,value:e,onValueChange:t,placeholder:"Select scorers...",searchPlaceholder:"Search scorers...",emptyText:"No scorers available",disabled:n||a,container:r})]})}const Qis=[{value:"agent",label:"Agent"},{value:"workflow",label:"Workflow"},{value:"scorer",label:"Scorer"}];function Yis({targetType:e,setTargetType:t,targetId:n,setTargetId:r,container:s}){const{data:a,isLoading:i}=Tm(),{data:l,isLoading:c}=Gy(),{data:u,isLoading:d}=lh(),f=e==="agent"?Object.entries(a??{}).map(([g,y])=>({value:g,label:y.name??g})):e==="workflow"?Object.entries(l??{}).map(([g,y])=>({value:g,label:y.name??g})):e==="scorer"?Object.entries(u??{}).map(([g,y])=>({value:g,label:y.scorer?.config?.name??g})):[],p=e==="agent"&&i||e==="workflow"&&c||e==="scorer"&&d,h=g=>{t(g),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(Dt,{children:"Target Type"}),o.jsx(ac,{options:Qis,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(Dt,{children:m}),o.jsx(ac,{options:f,value:n,onValueChange:r,placeholder:`Select ${e}`,searchPlaceholder:"Search...",emptyText:"No targets available",disabled:p,container:s})]})]})}function Kis({requestContextSchema:e,onChange:t}){const n=v.useMemo(()=>{try{return hm(fm(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(Dt,{children:"Request Context"}),o.jsx(I3,{schema:n,onValuesChange:t,className:"[&_button[type=submit]]:hidden"})]}):o.jsx("p",{className:"text-destructive text-sm",children:"Failed to parse request context schema"})}function Xis({datasetId:e,version:t,requestContextSchema:n,open:r,onOpenChange:s,onSuccess:a}){const i=v.useRef(null),[l,c]=v.useState(""),[u,d]=v.useState(""),[f,p]=v.useState([]),[h,m]=v.useState({}),[g,y]=v.useState(""),{triggerExperiment:b}=Ni(),x=!!(n&&Object.keys(n).length>0),w=l&&u,k=b.isPending,_=()=>{c(""),d(""),p([]),m({}),y("")},C=()=>{if(x){const N=Object.entries(h).filter(([,I])=>I!==void 0&&I!=="");return N.length>0?Object.fromEntries(N):void 0}if(g.trim()){let N;try{N=JSON.parse(g)}catch{throw new Error("Request Context must be valid JSON")}if(!N||typeof N!="object"||Array.isArray(N))throw new Error("Request Context must be a JSON object");return N}},j=async()=>{if(!w)return;let N;try{N=C()}catch(I){const A=I instanceof Error?I.message:"Request Context must be valid JSON";au.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:N});au.success("Experiment triggered successfully"),s(!1),a?.(I.experimentId),_()}catch(I){const A=I instanceof Error?I.message:"Failed to trigger experiment";au.error(A)}},E=()=>{k||(s(!1),_())};return o.jsx(br,{open:r,onOpenChange:E,children:o.jsxs(xr,{ref:i,children:[o.jsxs(wr,{children:[o.jsx(gr,{children:"Run Experiment"}),o.jsx(Ks,{children:t?`Execute items from ${nr(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(Yis,{targetType:l,setTargetType:c,targetId:u,setTargetId:d,container:i}),l&&l!=="scorer"&&o.jsx(Gis,{selectedScorers:f,setSelectedScorers:p,disabled:k,container:i}),x?o.jsx(Kis,{requestContextSchema:n,onChange:m}):o.jsxs("div",{className:"space-y-2",children:[o.jsx(Dt,{children:"Request Context (JSON, optional)"}),o.jsx(Wr,{value:g,onChange:y,showCopyButton:!1,className:"min-h-[80px]"})]})]}),o.jsxs(Tc,{className:"px-6 pt-4",children:[o.jsx(ce,{onClick:E,disabled:k,children:"Cancel"}),o.jsx(ce,{variant:"primary",onClick:j,disabled:!w||k,children:k?o.jsxs(o.Fragment,{children:[o.jsx(Xt,{className:"h-4 w-4"}),"Running..."]}):"Run"})]})]})})}const Jis=e=>{const t=We();return mt({queryKey:["experiment-trace-light",e],queryFn:async()=>{if(!e)throw new Error("Trace ID is required");return t.getTraceLight(e)},enabled:!!e})},SIe=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 jae(e){try{return JSON.stringify(e??{})}catch{return String(e)}}function eos({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(xn.SectionHeading,{icon:o.jsx(Up,{}),className:"mb-2",children:"Tool Mocks"}),s&&o.jsx(Cn,{variant:"destructive",title:"Mock mismatch",children:o.jsxs(Cn.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: ",jae(s.args)]}),n.length>0&&o.jsxs("span",{className:"mt-1 block font-mono text-xs",children:["Unconsumed mocks: ",n.map(i=>jae(i.args)).join(", ")]})]})}),o.jsx("div",{className:"border-border1 divide-border1 divide-y rounded border text-sm",children:a.map((i,l)=>o.jsxs("div",{className:"flex items-center justify-between gap-2 px-3 py-1.5",children:[o.jsxs("span",{className:"min-w-0 truncate",children:[o.jsx("span",{className:"text-neutral4 font-mono",children:i.toolName}),o.jsx("span",{className:"text-neutral3 ml-2 font-mono text-xs",children:jae(i.args)})]}),o.jsx("span",{className:`shrink-0 rounded px-2 py-0.5 text-xs ${tos(i.outcome)}`,children:i.outcome})]},`${i.outcome}-${i.toolName}-${l}`))})]})}function tos(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 nos({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]=v.useState(!1),m=d??p,g=f??h,y=!!e?.error,b=Rz(e?.input),x=Rz(e?.output),w=Rz(e?.groundTruth),k=u&&e.status!=="needs-review"&&e.status!=="complete",_=Array.isArray(e.tags)?e.tags:[];return o.jsxs(xn,{collapsed:m,children:[o.jsxs(xn.Header,{children:[o.jsxs(xn.Heading,{children:["Result ",o.jsxs("b",{children:["# ",e.id.length>12?`${e.id.slice(0,12)}…`:e.id]})]}),o.jsxs(Mr,{className:"ml-auto shrink-0",children:[f&&o.jsx(ce,{size:"md",tooltip:m?"Expand panel":"Collapse panel",onClick:()=>g(!m),children:m?o.jsx(yit,{}):o.jsx(vit,{})}),o.jsx(xn.NextPrevNav,{onPrevious:n,onNext:r,previousLabel:"Previous result",nextLabel:"Next result"}),o.jsxs(ce,{size:"md",onClick:a,disabled:!e.traceId,children:[o.jsx(SIe,{}),"Trace"]}),o.jsx(xn.CloseButton,{onClick:s,tooltip:"Close result panel"})]})]}),!m&&o.jsxs(xn.Content,{children:[o.jsxs("div",{className:"mb-6 grid gap-4",children:[o.jsxs(Ut,{children:[o.jsx(Ut.Key,{children:"Item Id"}),o.jsx(Ut.ValueWithCopyBtn,{copyTooltip:"Copy Item Id to clipboard",copyValue:e.itemId,children:e.itemId}),o.jsx(Ut.Key,{children:"Created"}),o.jsx(Ut.Value,{children:nr(new Date(e.createdAt),"MMM d, yyyy 'at' h:mm a")})]}),y&&o.jsx(Cn,{variant:"destructive",title:"Error",children:o.jsx(Cn.Message,{children:Rz(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(eos,{report:e.toolMockReport}),(e.status||_.length>0||k)&&o.jsxs("div",{className:"grid gap-2",children:[o.jsx(xn.SectionHeading,{icon:o.jsx(VN,{}),className:"mb-2",children:"Review"}),(e.status||_.length>0)&&o.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.status&&o.jsx("span",{className:`rounded-full px-2 py-0.5 text-xs font-medium ${e.status==="needs-review"?"bg-orange-500/10 text-orange-400":e.status==="complete"?"bg-accent1/10 text-accent1":"bg-neutral3/10 text-neutral4"}`,children:e.status}),_.map(C=>o.jsx("span",{className:"bg-surface4 text-neutral4 rounded px-2 py-0.5 text-xs",children:C},C))]}),k&&o.jsx("div",{children:o.jsxs(ce,{size:"sm",onClick:()=>u(e.id),children:[o.jsx(HV,{}),"Flag for Review"]})}),e.status==="needs-review"&&i&&o.jsx("div",{children:o.jsxs(ce,{size:"sm",onClick:i,children:[o.jsx(Sa,{}),"Review"]})})]})]}),o.jsxs("div",{className:"grid gap-3",children:[o.jsx(xn.CodeSection,{title:"Input",icon:o.jsx(zN,{}),codeStr:b}),o.jsx(xn.CodeSection,{title:"Output",icon:o.jsx(Og,{}),codeStr:x}),o.jsx(xn.CodeSection,{title:"Ground Truth",icon:o.jsx(Qbe,{}),codeStr:w})]})]})]})}function Rz(e){return e==null?"-":typeof e=="string"?e:JSON.stringify(e,null,2)}function ros({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(g=>g.size)].filter(Boolean).join(" "),m=s.some(g=>g.name==="input");return t?o.jsx(ol,{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(g=>o.jsx(ve.TopCell,{children:g.label},g.name))}):s.map(g=>o.jsx(ve.TopCell,{children:g.label},g.name))]}),e.length===0?o.jsx(ve.NoMatch,{message:"No results yet"}):o.jsxs(o.Fragment,{children:[e.map(g=>{const y=!!g.error,b=g.id===n,x=o.jsxs(o.Fragment,{children:[o.jsx(ve.IdCell,{id:g.itemId}),o.jsx(ve.Cell,{height:"compact",children:o.jsxs(Pn,{children:[o.jsx(An,{asChild:!0,children:o.jsx("div",{className:"relative flex h-full w-10 items-center justify-center bg-transparent",children:o.jsx("div",{role:"img","aria-label":y?"Error":"Success",className:X("w-2 h-2 rounded-full",y?"bg-red-700":"bg-green-600")})})}),o.jsx(Rn,{children:y?"Error":"Success"})]})}),m&&o.jsx(ve.MonoCell,{children:aos(sos(g.input),200)}),i?.map(w=>{const _=a?.[g.itemId]?.find(C=>C.scorerId===w);return o.jsx(ve.Cell,{height:"compact",className:"text-neutral3 text-ui-smd font-mono",children:_!=null?_.score.toFixed(3):"-"},w)})]});return p?o.jsxs(ve.RowWrapper,{children:[o.jsx(ve.SelectCell,{checked:d.has(g.id),onToggle:()=>f(g.id),"aria-label":`Select result ${g.itemId}`}),o.jsx(ve.RowButton,{flushLeft:!0,colStart:2,featured:b,onClick:()=>r(g.id),children:x})]},g.id):o.jsx(ve.RowButton,{featured:b,onClick:()=>r(g.id),children:x},g.id)}),o.jsx(ve.NextPageLoading,{isLoading:c,hasMore:u,setEndOfListElement:l})]})]})}function sos(e){return e==null?"-":typeof e=="string"?e:JSON.stringify(e,null,2)}function aos(e,t){return e.length<=t?e:e.slice(0,t-1)+"..."}function ios(e){const t=e.scorer;return t?.hasJudge===!1?!0:t?.hasJudge===!0?!1:!e.preprocessPrompt&&!e.analyzePrompt&&!e.generateScorePrompt&&!e.generateReasonPrompt}function oos({score:e,onNext:t,onPrevious:n,onClose:r,onShowTrace:s,collapsed:a,onCollapsedChange:i}){const[l,c]=v.useState(!1),u=a??l,d=i??c,f=ios(e),p=f?"N/A — code-based scorer":"N/A — step not configured";return o.jsxs(xn,{collapsed:u,children:[o.jsxs(xn.Header,{children:[o.jsxs(xn.Heading,{children:["Score ",o.jsx("b",{children:e.scorerId})]}),o.jsxs(Mr,{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(yit,{}):o.jsx(vit,{})}),(n||t)&&o.jsx(xn.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(SIe,{}),"Trace"]}),o.jsx(xn.CloseButton,{onClick:r,tooltip:"Close score panel"})]})]}),!u&&o.jsx(xn.Content,{children:o.jsxs("div",{className:"grid gap-3",children:[o.jsx(xn.CodeSection,{title:`Score: ${e.score}`,icon:o.jsx(sm,{}),codeStr:e.reason||p,simplified:!0}),!f&&o.jsxs(o.Fragment,{children:[o.jsx(xn.CodeSection,{title:"Preprocess Prompt",icon:o.jsx(Eh,{}),codeStr:e.preprocessPrompt||p,simplified:!0}),o.jsx(xn.CodeSection,{title:"Analyze Prompt",icon:o.jsx(Eh,{}),codeStr:e.analyzePrompt||p,simplified:!0}),o.jsx(xn.CodeSection,{title:"Generate Score Prompt",icon:o.jsx(Eh,{}),codeStr:e.generateScorePrompt||p,simplified:!0}),o.jsx(xn.CodeSection,{title:"Generate Reason Prompt",icon:o.jsx(Eh,{}),codeStr:e.generateReasonPrompt||p,simplified:!0})]})]})})]})}const SXe=[{name:"scorer",label:"Scorer",size:"1fr"},{name:"avg",label:"Avg Score",size:"1fr"},{name:"count",label:"Items Scored",size:"1fr"}];function los({scoresByItemId:e,experimentStatus:t}){const n=v.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(Lr,{iconSlot:o.jsx(sm,{className:"text-neutral3 h-8 w-8"}),titleSlot:a,descriptionSlot:i})})}return o.jsxs(vn,{children:[o.jsxs(vn.Header,{columns:SXe,children:[o.jsx(vn.HeaderCol,{children:"Scorer"}),o.jsx(vn.HeaderCol,{children:"Avg Score"}),o.jsx(vn.HeaderCol,{children:"Items Scored"})]}),o.jsx(vn.Scroller,{children:o.jsx(vn.Items,{children:n.map(({scorerId:r,avg:s,count:a})=>o.jsxs(vn.Row,{columns:SXe,children:[o.jsx(vn.TextCell,{children:r}),o.jsx(vn.TextCell,{className:"font-mono",children:s.toFixed(3)}),o.jsx(vn.TextCell,{className:"font-mono",children:a})]},r))})})]})}function k7t({experimentId:e,datasetId:t,experimentStatus:n,results:r,isLoading:s,setEndOfListElement:a,isFetchingNextPage:i,hasNextPage:l}){const[c,u]=v.useState(null),[d,f]=v.useState(null),[p,h]=v.useState(void 0),[m,g]=v.useState(null),[y,b]=v.useState(new Set),[x,w]=v.useState(!1),[k,_]=v.useState(!1),[C,j]=v.useState(!1),[E,N]=v.useState(!1),{updateExperimentResult:I}=Ni(),A=v.useCallback(re=>{b(ae=>{const me=new Set(ae);return me.has(re)?me.delete(re):me.add(re),me})},[]),R=v.useCallback(()=>b(new Set),[]),L=v.useCallback(()=>{const re=r.filter(ae=>!!ae.error).map(ae=>ae.id);b(new Set(re))},[r]),D=v.useCallback(async re=>{if(x||re.length===0)return;w(!0);let ae=0;const me=new Set;try{for(const we of re)try{await I.mutateAsync({datasetId:t,experimentId:e,resultId:we,status:"needs-review"}),ae++,me.add(we)}catch{}}finally{w(!1)}me.size>0&&b(we=>{const Ne=new Set(we);for(const Re of me)Ne.delete(Re);return Ne}),ae>0&&Le(`${ae} result${ae>1?"s":""} flagged for review`)},[t,e,x,I]),B=r.find(re=>re.id===c)??null,[H,F]=v.useState("summary"),[z,V]=v.useState(null),M=re=>{F(re),re!=="reviews"&&V(null)},{data:Q}=xIe(t),q=(Q??[]).filter(re=>re.experimentId===e).length,{data:$}=s9t(e,n),U=v.useMemo(()=>{if(!$)return[];const re=new Set;for(const ae of Object.values($))for(const me of ae)re.add(me.scorerId);return[...re].sort()},[$]),Z=re=>{u(re),f(null),h(void 0),g(null)},K=re=>{Z(re===c?null:re)},te=()=>{Z(null)},ne=()=>{if(!B)return;const re=r.findIndex(ae=>ae.id===B.id);if(re>=0&&re<r.length-1)return()=>Z(r[re+1].id)},J=()=>{if(!B)return;const re=r.findIndex(ae=>ae.id===B.id);if(re>0)return()=>Z(r[re-1].id)},se=B?$?.[B.itemId]:void 0,ie=se?.find(re=>re.id===m)??null,Y=re=>{g(re===m?null:re),f(null),h(void 0)},ee=()=>{if(!m||!se)return;const re=se.findIndex(ae=>ae.id===m);if(re>=0&&re<se.length-1)return()=>g(se[re+1].id)},ue=()=>{if(!m||!se)return;const re=se.findIndex(ae=>ae.id===m);if(re>0)return()=>g(se[re-1].id)},{data:pe,isLoading:le}=Jis(d),fe=pe?.spans,{data:be,isLoading:xe}=jL(d,p),je=be?.span,{handlePreviousSpan:ke,handleNextSpan:Ae}=gIe(fe,p??null,h),Me=(()=>{const re=[],ae=!!ie,me=!!d;return re.push(k?"auto":ae||me?"2fr":"1fr"),ae&&re.push(E?"auto":"3fr"),me&&re.push(C?"auto":"3fr"),me&&p&&re.push("3fr"),re.join(" ")})(),de=v.useMemo(()=>[{name:"itemId",label:"Item ID",size:"7rem"},{name:"status",label:"Status",size:"5rem"},{name:"input",label:"Input",size:"minmax(15rem,1fr)"},...U.map(re=>({name:re,label:re,size:"12rem"}))],[U]);return o.jsxs(Dc,{defaultTab:"summary",value:H,onValueChange:M,className:"grid h-full grid-rows-[auto_1fr] overflow-hidden",children:[o.jsxs(Mc,{children:[o.jsx(Rr,{value:"summary",children:"Summary"}),o.jsx(Rr,{value:"results",children:"Results"}),o.jsxs(Rr,{value:"reviews",children:["Reviews",q>0&&o.jsx(Js,{color:"orange",children:q})]})]}),o.jsx(Xr,{value:"summary",className:"mt-5 overflow-y-auto",children:o.jsx(los,{scoresByItemId:$,experimentStatus:n})}),o.jsx(Xr,{value:"reviews",className:"mt-2 overflow-auto pb-0",children:o.jsx(S7t,{datasetId:t,experimentId:e,featuredItemId:z})}),o.jsxs(Xr,{value:"results",className:"mt-2 grid grid-rows-[auto_1fr] overflow-hidden",children:[o.jsxs("div",{className:"mb-4",children:[y.size>0&&o.jsxs("div",{className:"bg-surface3 flex items-center gap-2 px-4 py-2",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:x,onClick:()=>D([...y]),children:[o.jsx(qe,{size:"sm",children:o.jsx(HV,{})}),"Flag for Review"]}),o.jsx(ce,{variant:"ghost",size:"sm",onClick:R,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:X("grid w-full h-full grid-cols-1 gap-4 overflow-y-auto",B&&"grid-cols-[1fr_1fr]"),children:[o.jsx("div",{className:"flex w-full overflow-y-auto",children:o.jsx("div",{className:"grid w-full content-start gap-8 overflow-y-auto",children:o.jsx(ros,{results:r,isLoading:s,featuredResultId:c,onResultClick:K,columns:de,scoresByItemId:$,scorerIds:U,setEndOfListElement:a,isFetchingNextPage:i,hasNextPage:l,selectedIds:y,onToggleSelect:A})})}),B&&o.jsxs("div",{className:"grid max-h-full min-h-0 content-start gap-4 overflow-auto",style:{gridTemplateRows:Me},children:[o.jsx(nos,{result:B,scores:se,onPrevious:J(),onNext:ne(),onClose:te,onScoreClick:Y,featuredScoreId:m,onShowTrace:()=>{B.traceId&&(f(B.traceId),h(void 0),g(null),_(!0),j(!1))},onOpenInReview:()=>{V(B.id),F("reviews")},onFlagForReview:re=>D([re]),collapsed:k,onCollapsedChange:_}),ie&&o.jsx(oos,{score:ie,onNext:ee(),onPrevious:ue(),onClose:()=>g(null),onShowTrace:()=>{ie.traceId&&(f(ie.traceId),h(void 0),_(!0),N(!0),j(!1))},collapsed:E,onCollapsedChange:N}),d&&o.jsxs(o.Fragment,{children:[o.jsx(lIe,{traceId:d,spans:fe,isLoading:le,onClose:()=>{f(null),h(void 0),_(!1),N(!1)},onSpanSelect:h,initialSpanId:p??null,placement:"traces-list",showUnavailableFeaturesMsg:!1,collapsed:C,onCollapsedChange:j,LinkComponent:gy,traceHref:`/traces/${d}`}),p&&o.jsx(aIe,{traceId:d,spanId:p,span:je,isLoading:xe,onPrevious:ke,onNext:Ae,onClose:()=>h(void 0)})]})]})]})]})]})}const cos={pending:o.jsx(fT,{}),running:o.jsx(Ife,{}),completed:o.jsx(fa,{}),failed:o.jsx(bs,{})};function uos({experiment:e,className:t}){const n=e.status,r=e.totalItems-e.succeededCount-e.failedCount;return o.jsxs("div",{className:X("grid justify-items-end gap-3",t),children:[o.jsxs("div",{className:"text-ui-lg text-neutral4 bg-surface5 flex items-center gap-2 rounded-lg p-1 px-3 capitalize",children:[o.jsx("span",{className:X("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:cos[n]}),e.status]}),o.jsxs("div",{className:X("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 dos({onPrevious:e,onNext:t,previousAriaLabel:n="Previous",nextAriaLabel:r="Next"}){return o.jsxs(Mr,{spacing:"close",children:[o.jsxs(ce,{onClick:e,disabled:!e,"aria-label":n,children:[o.jsx(Kq,{})," Prev"]}),o.jsxs(ce,{onClick:t,disabled:!t,"aria-label":r,children:["Next",o.jsx(p3,{})]})]})}function kIe({delta:e}){const t=e>0?o.jsx(Js,{size:"small",color:"green",intensity:"muted",children:o.jsx(ID,{})}):e<0?o.jsx(Js,{size:"small",color:"red",intensity:"muted",children:o.jsx($qt,{})}):null;return o.jsxs("span",{className:X("font-mono text-sm text-neutral4 min-w-20"),children:[o.jsx("span",{className:"inline-block w-3",children:e>0?"+ ":e<0?"- ":""}),Math.abs(e).toFixed(2)," ",t]})}function Pz(e){return e==null?"-":typeof e=="string"?e:JSON.stringify(e,null,2)}function fos({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(Yr,{withLeftSeparator:!0,children:[o.jsxs(Yr.Toolbar,{children:[o.jsx(dos,{onPrevious:a,onNext:i,previousAriaLabel:"Previous comparison item",nextAriaLabel:"Next comparison item"}),o.jsx(Mr,{children:o.jsx(ce,{onClick:l,"aria-label":"Close comparison detail panel",children:o.jsx(bs,{})})})]}),o.jsxs(Yr.Content,{className:"pb-6",children:[o.jsx(ma,{withMargins:!1,children:o.jsx(ma.Column,{children:o.jsxs(ma.Title,{size:"smaller",children:[o.jsx(zN,{})," ",e.itemId]})})}),d?o.jsx(o.Fragment,{children:o.jsxs(TNe,{children:[p.length>0&&o.jsxs("div",{className:"grid gap-3",children:[o.jsx("h4",{className:"text-neutral5 text-sm font-medium",children:"Scores"}),o.jsx("div",{className:"grid gap-2",children:p.map(h=>{const m=c?.scores[h]??null,g=u?.scores[h]??null,y=m!=null&&g!=null?g-m:null;return o.jsxs("div",{className:"bg-surface2 flex items-center justify-between gap-4 rounded-lg px-3 py-2",children:[o.jsx("span",{className:"text-neutral5 text-sm font-medium",children:h}),o.jsxs("div",{className:"flex items-center gap-4",children:[o.jsxs("span",{className:"text-neutral3 text-sm",children:[m!=null?m.toFixed(3):"-"," →"," ",g!=null?g.toFixed(3):"-"]}),y!=null&&o.jsx(kIe,{delta:y})]})]},h)})})]}),o.jsx(As.CodeSection,{title:o.jsxs(o.Fragment,{children:[o.jsx(Js,{color:"purple",children:"Baseline "})," Experiment Output"]}),icon:o.jsx(Og,{}),codeStr:Pz(c?.output)}),o.jsx(As.CodeSection,{title:o.jsxs(o.Fragment,{children:[o.jsx(Js,{color:"cyan",children:"Contender "})," Experiment Output"]}),icon:o.jsx(Og,{}),codeStr:Pz(u?.output)}),o.jsx(As.CodeSection,{title:"Item Input",icon:o.jsx(cO,{}),codeStr:Pz(e.input)}),o.jsx(As.CodeSection,{title:"Item Ground Truth",icon:o.jsx(Qbe,{}),codeStr:Pz(e.groundTruth)})]})}):o.jsx(Cn,{variant:"warning",title:"Comparison not available",children:o.jsx(Cn.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 pos({items:e,baselineId:t,contenderId:n,scorerIds:r,featuredItemId:s,columns:a,onItemClick:i}){return o.jsx(Yr,{children:o.jsxs(vn,{children:[o.jsxs(vn.Header,{columns:a,children:[o.jsx(vn.HeaderCol,{children:"Item ID"}),!s&&r.map(l=>o.jsx(vn.HeaderCol,{className:"flex justify-center",children:l},l))]}),o.jsx(vn.Scroller,{children:o.jsx(vn.Items,{children:e.map(l=>{const c=l.results[t],u=l.results[n],d=!!(c&&u);return o.jsx(vn.Row,{children:o.jsxs(vn.RowButton,{item:{id:l.itemId},columns:a,isFeatured:s===l.itemId,onClick:i,children:[o.jsx(vn.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(vn.Cell,{className:"flex items-center justify-center gap-5 font-mono",children:m!=null?o.jsxs(o.Fragment,{children:[o.jsxs("span",{className:"text-neutral2 flex min-w-24 items-center",children:[p?.toFixed(2)," → ",h?.toFixed(2)]}),o.jsx(kIe,{delta:m})]}):o.jsx("span",{className:"text-neutral1",children:"-"})},f)})})]})},l.itemId)})})})]})})}const hos={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 kXe({datasetId:e,experiment:t,type:n}){const{Link:r}=yn(),{label:s,color:a,customStyle:i}=hos[n];if(!t)return null;const l=t.createdAt?new Date(t.createdAt):null,c=Y1(t.id)??t.id,u=t.name||c,d=o.jsx(ce,{as:r,href:`/datasets/${e}/experiments/${t.id}`,children:o.jsx("span",{className:"min-w-0 truncate",children:u})});return o.jsxs("div",{className:`border-border1 grid gap-3 rounded-lg border-2 p-5 ${i}`,children:[o.jsxs("div",{className:"flex w-full items-center gap-3 overflow-clip",children:[n==="contender"&&o.jsxs(Js,{size:"small",color:a,children:[s,o.jsx(xm,{})]}),t.description?o.jsxs(Pn,{children:[o.jsx(An,{asChild:!0,children:d}),o.jsx(Rn,{children:t.description})]}):d,n==="baseline"&&o.jsxs(Js,{size:"small",color:a,children:[o.jsx(Ac,{})," ",s]})]}),o.jsxs("div",{className:"text-ui-sm text-neutral3 flex flex-wrap gap-x-4 gap-y-1",children:[t.name&&o.jsxs(ko,{children:[o.jsx(Tfe,{})," ",c]}),o.jsxs(ko,{children:[o.jsx(Qbe,{})," ",t.targetType," / ",t.targetId]}),o.jsxs(ko,{children:[o.jsx(ZV,{})," v",t.datasetVersion??"—"]}),l&&o.jsxs(ko,{children:[o.jsx(mit,{})," ",nr(l,"MMM d, yyyy HH:mm")]})]})]})}function mos({datasetId:e,experimentIdA:t,experimentIdB:n,onSwap:r}){const[s,a]=v.useState(null),{data:i,isLoading:l,error:c}=ras(e,t,n),{data:u}=MV(e,t),{data:d}=MV(e,n),f=u&&d&&u.datasetVersion!==d.datasetVersion,p=v.useMemo(()=>{if(!i)return[];const j=new Set;for(const E of i.items)for(const N of Object.values(E.results))if(N)for(const I of Object.keys(N.scores))j.add(I);return[...j].sort()},[i]),h=v.useMemo(()=>{if(!i||p.length===0)return[];const j=i.baselineId,E=t===j?n:t;return p.map(N=>{let I=0,A=0,R=0,L=0;for(const F of i.items){const z=F.results[j]?.scores[N],V=F.results[E]?.scores[N];z!=null&&(I+=z,R++),V!=null&&(A+=V,L++)}const D=R>0?I/R:null,B=L>0?A/L:null,H=D!=null&&B!=null?B-D:null;return{scorerId:N,avgA:D,avgB:B,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"}],g=v.useMemo(()=>[{name:"itemId",label:"Item ID",size:"8rem"},...s?[]:p.map(j=>({name:j,label:j,size:"1fr"}))],[p,s]),y=i?.items.find(j=>j.itemId===s)??null,b=j=>{a(j===s?null:j)},x=()=>{a(null)},w=()=>{if(!i||!s)return;const j=i.items.findIndex(E=>E.itemId===s);if(j>=0&&j<i.items.length-1)return()=>a(i.items[j+1].itemId)},k=()=>{if(!i||!s)return;const j=i.items.findIndex(E=>E.itemId===s);if(j>0)return()=>a(i.items[j-1].itemId)};if(l)return o.jsx("div",{className:"flex h-64 items-center justify-center",children:o.jsx(Xt,{})});if(c)return o.jsx(Cn,{variant:"warning",title:"Error loading comparison",children:o.jsx(Cn.Message,{children:c instanceof Error?c.message:"Unknown error"})});if(!i||i.items.length===0)return o.jsx("div",{className:"text-neutral4 py-8 text-center text-sm",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:X("relative grid xl:grid-cols-[1fr_auto_1fr] gap-4 xl:gap-0"),children:[o.jsx(kXe,{datasetId:e,experiment:u,type:"baseline"}),o.jsx("div",{className:"before:bg-border1 relative flex items-center justify-center px-[2vw] before:absolute before:inset-y-0 before:left-1/2 before:w-[2px] before:-translate-x-1/2",children:o.jsx("div",{className:"bg-surface2 relative z-1 rounded-lg p-2",children:o.jsxs(Pn,{children:[o.jsx(An,{asChild:!0,children:o.jsx(ce,{onClick:r,children:"VS"})}),o.jsx(Rn,{children:"Switch the order"})]})})}),o.jsx(kXe,{datasetId:e,experiment:d,type:"contender"})]}),f&&o.jsx(Cn,{variant:"warning",title:"Version mismatch",children:o.jsxs(Cn.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(vn,{children:[o.jsxs(vn.Header,{columns:m,children:[o.jsx(vn.HeaderCol,{children:"Scorer"}),o.jsx(vn.HeaderCol,{className:"flex justify-center",children:o.jsxs(SKe,{children:[o.jsx(Js,{color:"purple",size:"small",intensity:"muted",children:"Baseline"}),o.jsx(Js,{color:"purple",size:"small",children:"Avg"})]})}),o.jsx(vn.HeaderCol,{className:"flex justify-center",children:o.jsxs(SKe,{children:[o.jsx(Js,{color:"cyan",size:"small",intensity:"muted",children:"Contender"}),o.jsx(Js,{color:"cyan",size:"small",children:"Avg"})]})}),o.jsx(vn.HeaderCol,{className:"flex justify-center",children:"Delta"})]}),o.jsx(vn.Scroller,{children:o.jsx(vn.Items,{children:h.map(({scorerId:j,avgA:E,avgB:N,delta:I})=>o.jsxs(vn.Row,{columns:m,children:[o.jsx(vn.TextCell,{children:j}),o.jsx(vn.TextCell,{className:"text-center font-mono",children:E!=null?E.toFixed(3):"-"}),o.jsx(vn.TextCell,{className:"text-center font-mono",children:N!=null?N.toFixed(3):"-"}),o.jsx(vn.TextCell,{className:"flex justify-center",children:I!=null?o.jsx(kIe,{delta:I}):"-"})]},j))})})]}),o.jsxs(uy,{className:X({"grid-cols-[1fr_2fr]":!!y}),children:[o.jsx(pos,{items:i.items,baselineId:_,contenderId:C,scorerIds:p,featuredItemId:s,columns:g,onItemClick:b}),!!y&&o.jsx(fos,{item:y,baselineId:_,contenderId:C,baselineVersion:u?.datasetVersion,contenderVersion:d?.datasetVersion,onPrevious:k(),onNext:w(),onClose:x})]})]})}function gos({datasetId:e,itemId:t,onVersionSelect:n,onCompareVersionsClick:r,activeVersion:s}){const{data:a,isLoading:i}=vIe(e,t),[l,c]=v.useState(!1),[u,d]=v.useState(new Set),f=b=>{n?.(b)},p=b=>s==null?b.isLatest:b.datasetVersion===s,h=b=>{d(x=>{const w=new Set(x);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)},g=()=>{c(!0)},y=()=>{u.size===2&&r?.([...u])};return o.jsxs(Yr,{className:"min-w-56",children:[l?o.jsx(Yr.Toolbar,{className:"grid w-full justify-stretch gap-3",children:o.jsxs(Mr,{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(Yr.Toolbar,{children:o.jsxs(ce,{onClick:g,className:"w-full",children:[o.jsx(Ww,{})," Compare Ver."]})})}),i?o.jsx(vos,{}):o.jsxs(vn,{children:[o.jsx(vn.Header,{children:o.jsx(vn.HeaderCol,{children:"Item Version History"})}),o.jsx(vn.Scroller,{children:o.jsx(vn.Items,{children:a?.map(b=>{const x=String(b.datasetVersion),w=typeof b.updatedAt=="string"?new Date(b.updatedAt):b.updatedAt;return o.jsxs(vn.Row,{isSelected:l&&u.has(x),children:[l&&o.jsx(vn.LabelCell,{children:o.jsx(zo,{checked:u.has(x),disabled:b.isDeleted,onCheckedChange:()=>{},onClick:k=>{k.stopPropagation(),b.isDeleted||h(x)},"aria-label":`Select version ${b.datasetVersion}`})}),o.jsx(vn.RowButton,{item:b,columns:[{name:"version",label:"Item Version History",size:"1fr"}],isFeatured:p(b),onClick:()=>f(b),className:"py-2",children:o.jsx(vn.VersionCell,{version:b.datasetVersion,date:w,isLatest:b.isLatest,isDeleted:b.isDeleted})})]},String(b.datasetVersion))})})})]})]})}function vos(){return o.jsxs(vn,{children:[o.jsx(vn.Header,{columns:[{name:"version",label:"Item Version History",size:"1fr"}],children:o.jsx(vn.HeaderCol,{children:"Item Version History"})}),o.jsx(vn.Items,{children:Array.from({length:3}).map((e,t)=>o.jsx(vn.Row,{children:o.jsx(vn.RowButton,{columns:[{name:"version",label:"Item Version History",size:"1fr"}],children:o.jsx(vn.TextCell,{isLoading:!0,children:"Loading..."})})},t))})]})}function yos(e,t){if(t){const n=typeof t=="string"?new Date(t):t;return`v${e} ${nr(n,"MMM dd 'at' H:mm:ss a")}`}return`v${e}`}function bos({datasetId:e,versionA:t,versionB:n,onVersionChange:r}){const{data:s}=VNe(e),a=(s??[]).map(i=>({value:String(i.version),label:`${yos(i.version,i.createdAt)}${i.isCurrent?" (current)":""}`}));return o.jsxs(Yr.Toolbar,{className:"grid w-full grid-cols-[1fr_1fr_1fr_10rem] gap-4",children:[o.jsx("div",{}),o.jsx(Cc,{label:"Version A",labelIsHidden:!0,name:"version-a",placeholder:"Select version",options:a,value:t??"",onValueChange:i=>r?.(i,n??"")}),o.jsx(Cc,{label:"Version B",labelIsHidden:!0,name:"version-b",options:a,value:n??"",onValueChange:i=>r?.(t??"",i)}),o.jsx("div",{})]})}const xos=[{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"}],wos={added:{color:"blue",borderColor:"border-blue-900",icon:o.jsx(Zr,{}),tooltip:"Added in this version"},changed:{color:"orange",borderColor:"border-yellow-900",icon:o.jsx(Nit,{}),tooltip:"Changed in this version"},same:{color:"green",borderColor:"border-green-900",icon:o.jsx(sWt,{}),tooltip:"Same in both versions"}};function Tae({red:e=!1,tooltip:t}){return o.jsxs(Pn,{children:[o.jsx(An,{asChild:!0,children:o.jsx(Hqt,{className:X("text-neutral3/40 w-5 h-5 ",{"text-red-900":e})})}),t&&o.jsx(Rn,{children:t})]})}function JS({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}=wos[e];return o.jsxs(Pn,{children:[o.jsx(An,{asChild:!0,children:o.jsxs("div",{className:"grid grid-cols-[1fr_auto]",children:[t!==void 0&&o.jsxs("span",{className:"text-ui-md text-neutral4 flex min-w-16 justify-end pr-3",children:["v. ",t]}),o.jsx(Js,{color:n,size:"small",children:r})]})}),o.jsx(Rn,{children:s})]})}function Sos(e,t){return e&&t&&e.datasetVersion===t.datasetVersion?"same":e&&t&&e.datasetVersion!==t.datasetVersion?"changed":e?"added":"removed"}function kos({datasetId:e,versionA:t,versionB:n,allItems:r,itemsAMap:s,itemsBMap:a}){const{Link:i}=yn(),l=t>n;return o.jsx(vn,{children:o.jsx(vn.Scroller,{children:o.jsx(vn.Items,{children:r.map(({id:c})=>{const u=s.get(c),d=a.get(c),f=Sos(u,d);return o.jsxs(vn.Row,{columns:xos,children:[o.jsx(vn.IdCell,{id:c,isShortened:!1}),f!=="same"?o.jsxs(o.Fragment,{children:[u?.datasetVersion?o.jsx(vn.LinkCell,{LinkComponent:i,href:`/datasets/${e}/items/${c}`,className:"gap-2",children:!d&&l?o.jsx(JS,{variant:"added",version:u.datasetVersion}):f==="changed"&&l?o.jsx(JS,{variant:"changed",version:u.datasetVersion}):o.jsx(JS,{version:u.datasetVersion})}):o.jsx(vn.Cell,{className:"flex items-center justify-center",children:o.jsx(Tae,{red:l,tooltip:l?"Deleted in this version":"Not present in this version"})}),d?.datasetVersion?o.jsx(vn.LinkCell,{LinkComponent:i,href:`/datasets/${e}/items/${c}`,className:"gap-2",children:!u&&!l?o.jsx(JS,{variant:"added",version:d.datasetVersion}):f==="changed"&&!l?o.jsx(JS,{variant:"changed",version:d.datasetVersion}):o.jsx(JS,{version:d.datasetVersion})}):o.jsx(vn.Cell,{className:"flex items-center justify-center",children:o.jsx(Tae,{red:!l,tooltip:l?"Not present in this version":"Deleted in this version"})})]}):o.jsx(vn.LinkCell,{LinkComponent:i,href:`/datasets/${e}/items/${c}`,className:"col-span-2 gap-2",children:o.jsx(JS,{variant:"same",version:d?.datasetVersion})}),f==="changed"?o.jsx(vn.LinkCell,{LinkComponent:i,href:`/datasets/${e}/items/${c}/versions?ids=${u?.datasetVersion},${d?.datasetVersion}`,children:"Compare"}):o.jsx(vn.Cell,{children:o.jsx(Tae,{tooltip:o.jsxs(o.Fragment,{children:["Comparing is available",o.jsx("br",{})," only for changed items"]})})})]},c)})})})})}const OXe={needsReview:"#facc15",complete:"#22c55e"},Oos=[{label:"Needs Review",color:OXe.needsReview},{label:"Reviewed",color:OXe.complete}];function _os({reviewSummary:e,experiments:t,datasets:n,isLoading:r,isError:s}){const{data:a,maxVal:i,totalInPipeline:l}=v.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 g=m.needsReview+m.complete;if(g===0)continue;p+=g,g>f&&(f=g);const y=u.get(m.experimentId),b=y?.datasetId?d.get(y.datasetId):void 0,x=b?`${b} · ${m.experimentId.slice(0,8)}`:m.experimentId.slice(0,8);h.push({name:x,values:[m.needsReview,m.complete]})}return{data:h,maxVal:f,totalInPipeline:p}},[e,t,n]),c=a.length>0;return o.jsxs(Ht,{children:[o.jsxs(Ht.TopBar,{children:[o.jsx(Ht.TitleAndDescription,{title:"Review Pipeline",description:"Items in review across experiments."}),c&&o.jsx(Ht.Summary,{value:String(l),label:"Items in pipeline"})]}),r?o.jsx(Ht.Loading,{}):s?o.jsx(Ht.Error,{message:"Failed to load review data"}):o.jsx(Ht.Content,{children:c?o.jsx(PN,{data:a,segments:Oos,maxVal:i,fmt:u=>String(u)}):o.jsx(Ht.NoData,{message:"No items have been sent to review yet"})})]})}function OIe(){const e=We();return mt({queryKey:["experiment-review-summary"],queryFn:()=>e.getExperimentReviewSummary()})}function O7t(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 Cos(e,t){const n=new Map,r=O7t(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 Eos(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 jos=10;function Tos(){const[e,t]=v.useState(!1),[n,r]=v.useState(""),[s,a]=v.useState("all"),[i,l]=v.useState("all"),[c,u]=v.useState("all"),[d,f]=v.useState(0),{data:p,isLoading:h,error:m}=Vg({page:d,perPage:jos}),{data:g,isLoading:y,error:b}=lQ(),{data:x}=OIe(),w=v.useMemo(()=>p?.datasets??[],[p?.datasets]),k=p?.pagination?.hasMore??!1,_=v.useMemo(()=>g?.experiments??[],[g?.experiments]),C=v.useMemo(()=>was(w),[w]),j=v.useMemo(()=>Cos(x,_),[x,_]),E=h||y,N=m||b,I=()=>t(!0),A=v.useCallback(()=>f(V=>V+1),[]),R=v.useCallback(()=>f(V=>Math.max(0,V-1)),[]),L=v.useCallback(V=>{r(V),f(0)},[]),D=v.useCallback(V=>{a(V),f(0)},[]),B=v.useCallback(V=>{l(V),f(0)},[]),H=v.useCallback(V=>{u(V),f(0)},[]);if(N&&ys(N))return o.jsx(lr,{children:o.jsx(Hs,{})});if(N&&xs(N))return o.jsx(lr,{children:o.jsx(Ms,{resource:"datasets"})});if(N)return o.jsx(lr,{children:o.jsx(qi,{title:"Failed to load datasets",message:N.message})});if(w.length===0&&!E&&d===0)return o.jsxs(o.Fragment,{children:[o.jsx(lr,{children:o.jsx(Cas,{onCreateClick:I})}),o.jsx(vbe,{open:e,onOpenChange:t})]});const F=s!=="all"||i!=="all"||c!=="all"||n!=="",z=()=>{r(""),a("all"),l("all"),u("all"),f(0)};return o.jsxs(Ft,{children:[o.jsx(Ft.TopArea,{children:o.jsx(Tas,{search:n,onSearchChange:L,targetFilter:s,onTargetFilterChange:D,experimentFilter:i,onExperimentFilterChange:B,tagFilter:c,onTagFilterChange:H,tagOptions:C,onReset:z,hasActiveFilters:F,onCreateClick:I})}),o.jsx(_as,{datasets:w,experiments:_,reviewByDataset:j,isLoading:E,search:n,targetFilter:s,experimentFilter:i,tagFilter:c,currentPage:d,hasMore:k,onNextPage:A,onPrevPage:R}),o.jsx(vbe,{open:e,onOpenChange:t})]})}function $z({children:e}){return o.jsxs(Ft,{height:"full",children:[o.jsx("div",{}),o.jsx(Ft.MainArea,{isCentered:!0,children:e})]})}function Nos(){const{datasetId:e}=Sr(),t=qs(),[n,r]=Ri(),{activeVersion:s}=yIe(n,r),[a,i]=v.useState(!1),[l,c]=v.useState(!1),[u,d]=v.useState(!1),[f,p]=v.useState(!1),[h,m]=v.useState(!1),{data:g,error:y,isLoading:b}=Kx(e),{data:x=[],isLoading:w}=j1(e,void 0,s),k=!w&&x.length===0;if(b)return null;if(y&&ys(y))return o.jsx($z,{children:o.jsx(Hs,{})});if(y&&xs(y))return o.jsx($z,{children:o.jsx(Ms,{resource:"datasets"})});if(y&&_Ce(y)||!b&&!y&&!g)return o.jsx($z,{children:o.jsx(Lr,{iconSlot:o.jsx(dy,{}),titleSlot:"Dataset not found",descriptionSlot:`No dataset with id "${e}".`,actionSlot:o.jsxs(ce,{as:Fa,to:"/datasets",children:[o.jsx(Ac,{}),"Back to Datasets"]})})});if(y)return o.jsx($z,{children:o.jsx(qi,{title:"Failed to load dataset",message:y instanceof Error?y.message:"An unexpected error occurred. Please try again."})});const _=j=>{t(`/datasets/${e}/experiments/${j}`)},C=()=>{t("/datasets")};return o.jsxs(o.Fragment,{children:[o.jsxs(Ft,{height:"full",children:[o.jsx(Ft.TopArea,{children:o.jsxs(Ft.Row,{children:[o.jsxs(Ft.Column,{children:[g?.description&&o.jsx("p",{className:"text-ui-smd text-neutral3 mb-1",children:g.description}),o.jsxs(Ut,{numOfCol:2,children:[o.jsx(Ut.Key,{children:"Created at"}),o.jsx(Ut.Value,{children:g?.createdAt?nr(new Date(g.createdAt),"MMM d, yyyy"):""}),o.jsx(Ut.Key,{children:"Latest version"}),o.jsxs(Ut.Value,{children:["v",g?.version??""]})]})]}),o.jsx(Ft.Column,{children:o.jsxs(Mr,{children:[k?o.jsxs(Pn,{children:[o.jsx(An,{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(Ef,{}),s!=null?`Run on v${s}`:"Run Experiment"]})})})}),o.jsx(Rn,{children:"Add items to the dataset before running an experiment"})]}):o.jsxs(ce,{variant:"primary",onClick:()=>i(!0),children:[o.jsx(Ef,{}),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(RD,{})})}),o.jsxs(dt.Content,{align:"end",className:"w-48",children:[o.jsxs(dt.Item,{onSelect:()=>d(!0),children:[o.jsx(am,{})," Edit Dataset"]}),o.jsxs(dt.Item,{onSelect:()=>m(!0),children:[o.jsx(rm,{})," Duplicate Dataset"]}),o.jsxs(dt.Item,{onSelect:()=>p(!0),className:"text-red-500 focus:text-red-400",children:[o.jsx(pu,{})," Delete Dataset"]})]})]})]})})]})}),o.jsx(Ft.MainArea,{children:o.jsx(qis,{datasetId:e,onAddItemClick:()=>c(!0)})})]}),o.jsx(Xis,{datasetId:e,version:s??void 0,requestContextSchema:g?.requestContextSchema,open:a,onOpenChange:i,onSuccess:_}),o.jsx(Wis,{datasetId:e,open:l,onOpenChange:c}),g&&o.jsx($as,{open:u,onOpenChange:d,dataset:{id:g.id,name:g.name,description:g?.description||"",targetType:g.targetType,inputSchema:g.inputSchema,groundTruthSchema:g.groundTruthSchema,requestContextSchema:g.requestContextSchema}}),g&&o.jsx(Aas,{open:h,onOpenChange:m,sourceDatasetId:g.id,sourceDatasetName:g.name,sourceDatasetDescription:g.description,sourceDatasetTargetType:g.targetType}),g&&o.jsx(Das,{open:f,onOpenChange:p,datasetId:g.id,datasetName:g.name,onSuccess:C})]})}function _7t({experiment:e}){const{Link:t,paths:n}=yn(),{data:r}=Tm(),{data:s}=Gy(),{data:a}=lh(),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(Ft.TopArea,{children:o.jsxs(Ft.Row,{children:[o.jsx(Ft.Column,{children:o.jsxs(Ut,{numOfCol:2,children:[e.name&&o.jsxs(o.Fragment,{children:[o.jsx(Ut.Key,{children:"Name"}),o.jsx(Ut.Value,{children:e.name})]}),e.description&&o.jsxs(o.Fragment,{children:[o.jsx(Ut.Key,{children:"Description"}),o.jsx(Ut.Value,{children:e.description})]}),o.jsx(Ut.Key,{children:"Created at"}),o.jsx(Ut.Value,{children:nr(new Date(e.createdAt),"MMM d, yyyy 'at' h:mm a")}),e.completedAt&&o.jsxs(o.Fragment,{children:[o.jsx(Ut.Key,{children:"Completed at"}),o.jsx(Ut.Value,{children:nr(new Date(e.completedAt),"MMM d, yyyy 'at' h:mm a")})]}),o.jsx(Ut.Key,{children:"Target"}),o.jsx(Ut.ValueLink,{href:i(),as:t,children:l()}),e.agentVersion&&o.jsxs(o.Fragment,{children:[o.jsx(Ut.Key,{children:"Version"}),c?o.jsx(Ut.ValueLink,{href:c,as:t,children:e.agentVersion}):o.jsx(Ut.Value,{children:e.agentVersion})]})]})}),o.jsx(Ft.Column,{children:o.jsx(uos,{experiment:e})})]})})}function Mz({children:e}){return o.jsxs(Ft,{height:"full",children:[o.jsx("div",{}),o.jsx(Ft.MainArea,{isCentered:!0,children:e})]})}function Ios(){const{datasetId:e,experimentId:t}=Sr(),{data:n,isLoading:r,error:s}=MV(e,t),{data:a,isLoading:i,setEndOfListElement:l,isFetchingNextPage:c,hasNextPage:u}=qG({datasetId:e,experimentId:t,experimentStatus:n?.status});return!e||!t||r?null:s&&ys(s)?o.jsx(Mz,{children:o.jsx(Hs,{})}):s&&xs(s)?o.jsx(Mz,{children:o.jsx(Ms,{resource:"datasets"})}):s&&_Ce(s)||!r&&!s&&!n?o.jsx(Mz,{children:o.jsx(Lr,{iconSlot:o.jsx(Lbe,{}),titleSlot:"Experiment not found",descriptionSlot:`No experiment with id "${t}".`,actionSlot:o.jsxs(ce,{as:Fa,to:`/datasets/${e}?tab=experiments`,children:[o.jsx(Ac,{}),"Back to Dataset"]})})}):s?o.jsx(Mz,{children:o.jsx(qi,{title:"Failed to load experiment",message:s instanceof Error?s.message:"An unexpected error occurred. Please try again."})}):o.jsxs(Ft,{height:"full",children:[o.jsx(_7t,{experiment:n}),o.jsx(Ft.MainArea,{children:o.jsx(k7t,{experimentId:t,datasetId:e,experimentStatus:n.status,results:a??[],isLoading:i,setEndOfListElement:l,isFetchingNextPage:c,hasNextPage:u})})]})}function Aos(){const{datasetId:e}=Sr(),[t,n]=Ri(),{error:r}=Kx(e??""),s=t.get("baseline")??"",a=t.get("contender")??"";return r&&ys(r)?o.jsx(ds,{children:o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Hs,{})})}):r&&xs(r)?o.jsx(ds,{children:o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Ms,{resource:"datasets"})})}):!e||!s||!a?o.jsx(ds,{children:o.jsx(Ey,{children:o.jsxs("div",{className:"text-neutral4 py-8 text-center",children:[o.jsx("p",{children:"Select two experiments to compare."}),o.jsxs("p",{className:"mt-2 text-sm",children:["Use the URL format: /datasets/","{datasetId}","/experiments?baseline=","{experimentIdA}","&contender=","{experimentIdB}"]})]})})}):o.jsx(ds,{children:o.jsx(Ey,{children:o.jsxs("div",{className:"mx-auto grid w-full max-w-[100rem] content-start px-12",children:[o.jsxs(ma,{children:[o.jsxs(ma.Column,{children:[o.jsxs(ma.Title,{children:[o.jsx(Ww,{})," Dataset Experiments Comparison"]}),o.jsxs(ma.Description,{children:["Comparing"," ",o.jsx(Fa,{to:`/datasets/${e}/experiments/${s}`,children:s.slice(0,8)})," vs"," ",o.jsx(Fa,{to:`/datasets/${e}/experiments/${a}`,children:a.slice(0,8)})]})]}),o.jsx(ma.Column,{children:o.jsxs(ce,{as:Fa,to:`/datasets/${e}`,children:[o.jsx(Ac,{}),"Back to Dataset"]})})]}),o.jsx(mos,{datasetId:e,experimentIdA:s,experimentIdB:a,onSwap:()=>{n({baseline:a,contender:s})}})]})})})}function Ros(){const{datasetId:e,itemId:t}=Sr(),{Link:n}=yn(),r=qs(),{data:s,isLoading:a,error:i}=vIe(e??"",t??""),{updateItem:l,deleteItem:c}=Ni(),{data:u}=Kx(e??""),d=s?.[0]??null,f=d?.isDeleted??!1,[p,h]=v.useState(null),m=v.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]),g=d?.datasetVersion??0,[y,b]=v.useState(!1),[x,w]=v.useState(m.input),[k,_]=v.useState(m.groundTruth),[C,j]=v.useState(m.metadata),[E,N]=v.useState(m.trajectory),[I,A]=v.useState(m.toolMocks),[R,L]=v.useState(m.requestContext),[D,B]=v.useState(g);g!==D&&(B(g),w(m.input),_(m.groundTruth),j(m.metadata),N(m.trajectory),A(m.toolMocks),L(m.requestContext));const[H,F]=v.useState(!1),z=ne=>{h(f?ne:ne.isLatest?null:ne)},V=()=>{h(null)},M=!f&&p!=null,Q=()=>{M||b(!0)},q=()=>{M||F(!0)},$=async()=>{if(!e||!t)return;let ne;try{ne=JSON.parse(x)}catch{Le.error("Input must be valid JSON");return}let J;if(k.trim())try{J=JSON.parse(k)}catch{Le.error("Ground Truth must be valid JSON");return}let se;if(C.trim())try{se=JSON.parse(C)}catch{Le.error("Metadata must be valid JSON");return}let ie;const Y=E!==m.trajectory;if(Y&&E.trim())try{ie=JSON.parse(E)}catch{Le.error("Expected Trajectory must be valid JSON");return}let ee;const ue=I!==m.toolMocks;if(ue&&I.trim())try{const fe=JSON.parse(I);if(!Array.isArray(fe)){Le.error("Tool Mocks must be a JSON array");return}ee=fe}catch{Le.error("Tool Mocks must be valid JSON");return}let pe;const le=R!==m.requestContext;if(le&&R.trim())try{pe=JSON.parse(R)}catch{Le.error("Request Context must be valid JSON");return}try{await l.mutateAsync({datasetId:e,itemId:t,input:ne,groundTruth:J,metadata:se,...Y?{expectedTrajectory:ie??null}:{},...ue?{toolMocks:ee??[]}:{},...le?{requestContext:pe}:{}}),Le.success("Item updated successfully"),b(!1)}catch(fe){Le.error(`Failed to update item: ${fe instanceof Error?fe.message:"Unknown error"}`)}},U=()=>{d&&(w(JSON.stringify(d.input,null,2)),_(d.groundTruth?JSON.stringify(d.groundTruth,null,2):""),j(d.metadata?JSON.stringify(d.metadata,null,2):""),N(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}),Le.success("Item deleted successfully"),F(!1),r(`/datasets/${e}`)}catch(ne){Le.error(`Failed to delete item: ${ne instanceof Error?ne.message:"Unknown error"}`)}},K=p??d,te=K?{id:t??"",datasetId:e??"",datasetVersion:K.datasetVersion,input:K.input,groundTruth:K.groundTruth,expectedTrajectory:K.expectedTrajectory,metadata:K.metadata,createdAt:K.createdAt,updatedAt:K.updatedAt}:null;return i&&ys(i)?o.jsx(ds,{children:o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Hs,{})})}):i&&xs(i)?o.jsx(ds,{children:o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Ms,{resource:"datasets"})})}):a?null:!e||!t||!s||s.length===0?o.jsx(ds,{children:o.jsx(Ey,{children:o.jsx("div",{className:"text-neutral3 p-4",children:"Item not found"})})}):o.jsxs(o.Fragment,{children:[o.jsx(ds,{children:o.jsx("div",{className:"h-full overflow-hidden px-6 pb-4",children:o.jsxs("div",{className:"mx-auto grid h-full max-w-[60rem] grid-rows-[auto_1fr] gap-6",children:[o.jsxs(ma,{children:[o.jsxs(ma.Column,{children:[o.jsxs(ma.Title,{children:[o.jsx(zN,{}),t," ",o.jsx(Pa,{content:t})]}),o.jsx(ma.Description,{children:o.jsxs(ko,{children:["Item of ",o.jsx(dy,{})," ",u?.name]})}),o.jsxs(ma.Description,{children:[o.jsxs(ko,{children:[o.jsx(hit,{})," Created at"," ",d?.createdAt?nr(new Date(d.createdAt),"MMM d, yyyy"):""]}),o.jsxs(ko,{children:[o.jsx(b_,{})," Latest version v",d?.datasetVersion??""]})]})]}),o.jsx(ma.Column,{children:!y&&!f&&o.jsxs(Mr,{children:[o.jsxs(ce,{onClick:Q,disabled:M,title:M?"Return to latest version to edit":void 0,children:[o.jsx(Nit,{})," Edit"]}),o.jsxs(ce,{onClick:q,disabled:M,title:M?"Return to latest version to delete":void 0,children:[o.jsx(pu,{})," Delete"]})]})})]}),o.jsxs(uy,{className:y?"grid-cols-1":"grid-cols-[1fr_auto]",children:[o.jsxs(Yr,{withRightSeparator:!y,children:[f&&d&&o.jsx(Cn,{variant:"destructive",title:"Item deleted",children:o.jsxs(Cn.Message,{children:["This item was deleted at version v",d.datasetVersion]})}),!f&&M&&p&&o.jsx(Cn,{variant:"warning",title:"Previous version",action:o.jsxs(Cn.Button,{onClick:V,children:[o.jsx(cit,{})," Return to the latest version"]}),children:o.jsxs(Cn.Message,{children:["Viewing version v",p.datasetVersion]})}),y?o.jsx(x7t,{inputValue:x,setInputValue:w,groundTruthValue:k,setGroundTruthValue:_,metadataValue:C,setMetadataValue:j,trajectoryValue:E,setTrajectoryValue:N,toolMocksValue:I,setToolMocksValue:A,requestContextValue:R,setRequestContextValue:L,validationErrors:null,onSave:$,onCancel:U,isSaving:l.isPending}):te?o.jsx(wIe,{item:te,Link:n}):o.jsx("div",{className:"text-neutral4 text-sm",children:"Item data not available"})]}),!y&&o.jsx(Yr,{children:o.jsx(gos,{datasetId:e,itemId:t,onClose:()=>{},onVersionSelect:z,onCompareVersionsClick:ne=>{r(`/datasets/${e}/items/${t}/versions?ids=${ne.join(",")}`)},activeVersion:p?.datasetVersion??null})})]})]})})}),o.jsx(At,{open:H,onOpenChange:F,children:o.jsxs(At.Content,{children:[o.jsxs(At.Header,{children:[o.jsx(At.Title,{children:"Delete Item"}),o.jsx(At.Description,{children:"Are you sure you want to delete this item? This action cannot be undone."})]}),o.jsxs(At.Footer,{children:[o.jsx(At.Cancel,{children:"Cancel"}),o.jsx(At.Action,{onClick:Z,children:c.isPending?"Deleting...":"Delete"})]})]})})]})}function _Xe(e){return JSON.stringify({input:e.input??null,groundTruth:e.groundTruth??null,metadata:e.metadata??null},null,2)}function Pos(){const{datasetId:e}=Sr(),[t,n]=Ri(),r=t.get("items")?.split(",").filter(Boolean)??[],{data:s,error:a}=Kx(e??""),{Link:i}=yn(),[l,c]=v.useState(!1),{data:u}=DV(e??"",r[0]??""),{data:d}=DV(e??"",r[1]??"");return a&&ys(a)?o.jsx(ds,{children:o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Hs,{})})}):a&&xs(a)?o.jsx(ds,{children:o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Ms,{resource:"datasets"})})}):!e||r.length<2?o.jsx(ds,{children:o.jsx(Ey,{children:o.jsx("div",{className:"text-neutral4 py-8 text-center",children:o.jsx("p",{children:"Select at least two items to compare."})})})}):o.jsxs(ds,{children:[o.jsx(Ly,{owner:"dataset-items-compare",children:o.jsxs(ce,{as:Fa,to:`/datasets/${e}`,variant:"outline",children:[o.jsx(Ac,{}),"Back to Dataset"]})}),o.jsx("div",{className:"h-full overflow-hidden px-[3vw] pb-4",children:o.jsxs("div",{className:X("grid gap-6 max-w-[140rem] mx-auto grid-rows-[auto_1fr] h-full",{"grid-rows-[auto_auto_1fr]":l}),children:[o.jsxs(ma,{children:[o.jsxs(ma.Column,{children:[o.jsxs(ma.Title,{children:[o.jsx(Ww,{}),"Compare Dataset Items"]}),o.jsx(ma.Description,{children:o.jsxs(ko,{children:["Comparing ",r.length," items of"," ",o.jsx(Fa,{to:`/datasets/${e}`,className:"text-info1 hover:underline",children:s?.name||e?.slice(0,8)})]})})]}),o.jsx(ma.Column,{children:o.jsx(Mr,{children:o.jsx(ce,{variant:"primary",onClick:()=>c(f=>!f),children:l?o.jsxs(o.Fragment,{children:[o.jsx(Fbe,{})," Default View"]}):o.jsxs(o.Fragment,{children:[o.jsx(YHt,{})," Diff View"]})})})})]}),o.jsx(uy,{className:"grid-cols-[1fr_3vw_1fr]",children:r.map((f,p)=>o.jsxs(v.Fragment,{children:[o.jsx($os,{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:X("bg-surface5 w-[3px] shrink-0 mx-[1.5vw]")})]},f))}),l&&u&&d&&o.jsx(qEe,{codeA:_Xe(u),codeB:_Xe(d)})]})})]})}function $os({datasetId:e,itemId:t,Link:n,idx:r,itemIds:s,onItemChange:a,showContent:i=!0}){const{data:l,isLoading:c}=DV(e,t),{data:u}=j1(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(Yr,{children:[o.jsxs(Yr.Toolbar,{className:"flex gap-4",children:[o.jsxs(oa,{name:`compare-item-${r}`,value:t,onValueChange:a,children:[o.jsx(ca,{"aria-label":"Item",children:o.jsx(la,{placeholder:"Select item"})}),o.jsx(ua,{children:f.map(p=>o.jsx(Ar,{value:p.value,disabled:p.disabled,children:p.label},p.value))})]}),o.jsxs(ce,{as:n,to:`/datasets/${e}/items/${t}`,children:[o.jsx(b_,{}),"Versions"]})]}),i&&o.jsx(Yr.Content,{children:c?o.jsx("div",{className:"text-neutral4 text-sm",children:"Loading..."}):l?o.jsxs(o.Fragment,{children:[o.jsx(Zis,{item:l}),o.jsx(wIe,{item:l,Link:n})]}):o.jsxs("div",{className:"text-neutral4 text-sm",children:["Item ",t.slice(0,8)," not found"]})})]})}function CXe(e){return JSON.stringify({input:e.input??null,groundTruth:e.groundTruth??null,metadata:e.metadata??null},null,2)}function Mos(){const{datasetId:e,itemId:t}=Sr(),[n,r]=Ri(),[s,a]=v.useState(!1),i=n.get("ids")?.split(",").map(Number).filter(h=>!isNaN(h)&&h>0)??[],{data:l,error:c}=Kx(e??""),{Link:u}=yn(),{data:d}=vIe(e??"",t??""),{data:f}=bbe(e??"",t??"",i[0]??0,l?.version),{data:p}=bbe(e??"",t??"",i[1]??0,l?.version);return c&&ys(c)?o.jsx(ds,{children:o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Hs,{})})}):c&&xs(c)?o.jsx(ds,{children:o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Ms,{resource:"datasets"})})}):!e||!t||i.length<2?o.jsx(ds,{children:o.jsx(Ey,{children:o.jsx("div",{className:"text-neutral4 py-8 text-center",children:o.jsx("p",{children:"Select at least two versions to compare."})})})}):o.jsxs(ds,{children:[o.jsx(Ly,{owner:"dataset-item-versions-compare",children:o.jsxs(ce,{as:Fa,to:`/datasets/${e}/items/${t}`,variant:"outline",children:[o.jsx(Ac,{}),"Back to Item"]})}),o.jsx("div",{className:"h-full overflow-hidden px-[3vw] pb-4",children:o.jsxs("div",{className:X("grid gap-6 max-w-[140rem] mx-auto grid-rows-[auto_1fr] h-full",{"grid-rows-[auto_auto_1fr]":s}),children:[o.jsxs(ma,{children:[o.jsxs(ma.Column,{children:[o.jsxs(ma.Title,{children:[o.jsx(Ww,{}),"Compare Dataset Item Versions"]}),o.jsx(ma.Description,{children:o.jsxs(ko,{children:["Comparing ",i.length," versions of"," ",o.jsx(Fa,{to:`/datasets/${e}/items/${t}`,className:"text-info1 hover:underline",children:t})]})})]}),o.jsx(ma.Column,{children:o.jsx(Mr,{children:o.jsx(ce,{variant:"primary",onClick:()=>a(h=>!h),children:s?o.jsxs(o.Fragment,{children:[o.jsx(Fbe,{})," Default View"]}):o.jsxs(o.Fragment,{children:[o.jsx($Wt,{})," Diff View"]})})})})]}),o.jsx(uy,{className:"grid-cols-[1fr_3vw_1fr]",children:i.map((h,m)=>o.jsxs(v.Fragment,{children:[o.jsx(Dos,{datasetId:e,itemId:t,datasetVersion:h,latestVersion:l?.version,allVersions:d??[],versionNumbers:i,Link:u,idx:m,showContent:!s,onVersionChange:g=>{const y=[...i];y[m]=g,r({ids:y.join(",")})}}),m===0&&o.jsx("div",{className:X("bg-surface5 w-[3px] shrink-0 mx-[1.5vw]")})]},h))}),s&&f&&p&&o.jsx(qEe,{codeA:CXe(f),codeB:CXe(p)})]})})]})}function Dos({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}=bbe(e,t,n,r),p=new Set(a.filter((g,y)=>y!==l)),h=s.map(g=>{const y=typeof g.updatedAt=="string"?new Date(g.updatedAt):g.updatedAt;return{value:String(g.datasetVersion),label:o.jsxs(o.Fragment,{children:[o.jsxs("b",{children:["v. ",g.datasetVersion]})," - ",nr(y,"MMM d, yyyy h:mm a"),g.isLatest?o.jsx(Js,{color:"blue",size:"small",children:"Latest"}):null]}),disabled:p.has(g.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(Yr,{children:[o.jsxs(Yr.Toolbar,{className:"grid grid-cols-[auto_1fr] gap-4",children:[o.jsx(b_,{className:"h-6 w-6 opacity-50"}),o.jsxs(oa,{name:`compare-version-${l}`,value:String(n),onValueChange:g=>u(Number(g)),children:[o.jsx(ca,{"aria-label":"Version",className:"w-full",children:o.jsx(la,{placeholder:"Select version"})}),o.jsx(ua,{children:h.map(g=>o.jsx(Ar,{value:g.value,disabled:g.disabled,children:g.label},g.value))})]})]}),c&&o.jsx(Yr.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(wIe,{item:m,Link:i})})]})}function Los(){const{datasetId:e}=Sr(),[t]=Ri(),n=t.get("ids")?.split(",").map(Number).filter(g=>!isNaN(g)&&g>0)??[],r=qs(),{data:s,error:a}=Kx(e??""),i=j1(e??"",void 0,n[0]??null),l=j1(e??"",void 0,n[1]??null),c=v.useMemo(()=>i.data??[],[i.data]),u=v.useMemo(()=>l.data??[],[l.data]),d=v.useMemo(()=>{const g=new Map;for(const y of[...c,...u])g.has(y.id)||g.set(y.id,{id:y.id,createdAt:new Date(y.createdAt)});return[...g.values()].sort((y,b)=>b.createdAt.getTime()-y.createdAt.getTime())},[c,u]),f=v.useMemo(()=>new Map(c.map(g=>[g.id,g])),[c]),p=v.useMemo(()=>new Map(u.map(g=>[g.id,g])),[u]);if(a&&ys(a))return o.jsx(ds,{children:o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Hs,{})})});if(a&&xs(a))return o.jsx(ds,{children:o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Ms,{resource:"datasets"})})});if(!e||n.length<2)return o.jsx(ds,{children:o.jsx(Ey,{children:o.jsx("div",{className:"text-neutral4 py-8 text-center",children:o.jsx("p",{children:"Select at least two versions to compare."})})})});const h=(g,y,b)=>{r(`/datasets/${e}/items/${g}/versions?ids=${y?.datasetVersion??""},${b?.datasetVersion??""}`)},m=(g,y)=>{r(`/datasets/${e}/versions?ids=${g},${y}`,{replace:!0})};return o.jsx(ds,{children:o.jsx("div",{className:"h-full overflow-hidden px-[3vw] pb-4",children:o.jsxs("div",{className:"mx-auto grid h-full max-w-[140rem] grid-rows-[auto_1fr] gap-6",children:[o.jsxs(ma,{children:[o.jsxs(ma.Column,{children:[o.jsxs(ma.Title,{children:[o.jsx(_Gt,{})," Compare Dataset Versions"]}),o.jsx(ma.Description,{children:o.jsxs(ko,{children:[o.jsx(b_,{})," Comparing ",n.length," versions of"," ",s?.name||e?.slice(0,8)]})})]}),o.jsx(ma.Column,{children:o.jsxs(ce,{as:Fa,to:`/datasets/${e}`,children:[o.jsx(Ac,{}),"Back to Dataset"]})})]}),o.jsx(uy,{children:o.jsxs(Yr,{children:[o.jsx(bos,{datasetId:e,versionA:String(n[0]),versionB:String(n[1]),onVersionChange:m}),o.jsx(kos,{datasetId:e,versionA:n[0],versionB:n[1],allItems:d,itemsAMap:f,itemsBMap:p,onItemClick:h})]})})]})})})}function wbe({children:e,className:t}){return o.jsx("div",{className:X("flex flex-wrap gap-8",t),children:e})}function Fos(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 zos({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,g=Fos(n);return o.jsxs(o.Fragment,{children:[o.jsxs(es,{children:[o.jsx(es.Label,{children:"Total Scorers"}),i?o.jsx(es.Loading,{}):f!=null?o.jsxs(o.Fragment,{children:[o.jsx(es.Value,{children:String(f)}),o.jsx(es.NoChange,{message:"Static count"})]}):o.jsx(es.NoData,{})]}),o.jsxs(es,{children:[o.jsx(es.Label,{children:"Total Datasets"}),l?o.jsx(es.Loading,{}):p!=null?o.jsxs(o.Fragment,{children:[o.jsx(es.Value,{children:String(p)}),o.jsx(es.NoChange,{message:"Static count"})]}):o.jsx(es.NoData,{})]}),o.jsxs(es,{children:[o.jsx(es.Label,{children:"Avg Score"}),u?o.jsx(es.Loading,{}):r!=null?o.jsxs(o.Fragment,{children:[o.jsx(es.Value,{children:String(r)}),m?o.jsx(es.Change,{changePct:m.changePct,prevValue:m.prevValue}):o.jsx(es.NoChange,{})]}):o.jsx(es.NoData,{})]}),o.jsxs(es,{children:[o.jsx(es.Label,{children:"Total Experiments"}),c?o.jsx(es.Loading,{}):h!=null?o.jsxs(o.Fragment,{children:[o.jsx(es.Value,{children:String(h)}),g?o.jsx(es.Change,{changePct:g.changePct,prevValue:g.prevValue}):o.jsx(es.NoChange,{})]}):o.jsx(es.NoData,{})]}),o.jsxs(es,{children:[o.jsx(es.Label,{children:"Needs Review"}),d?o.jsx(es.Loading,{}):a!=null?o.jsxs(o.Fragment,{children:[o.jsx(es.Value,{children:String(a)}),a>0?o.jsx(es.NoChange,{message:"items pending review"}):o.jsx(es.NoChange,{message:"All caught up"})]}):o.jsx(es.NoData,{})]})]})}const EXe="minmax(9rem,1fr) 1fr auto auto auto auto auto auto auto";function Bos(e){return e?(typeof e=="string"?new Date(e):e).toLocaleDateString("en-US",{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"}):"—"}const Uos={completed:"success",running:"warning",failed:"error",pending:"neutral"};function Vos({experiments:e,datasets:t,reviewByExperiment:n,isLoading:r,search:s="",statusFilter:a="all",datasetFilter:i="all"}){const{paths:l,Link:c}=yn(),u=v.useMemo(()=>{const p=new Map;return t?.forEach(h=>p.set(h.id,h.name)),p},[t]),d=v.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=v.useMemo(()=>{const p=s.toLowerCase();return d.filter(h=>{const m=h.datasetId?u.get(h.datasetId)??"":"",g=!p||h.id.toLowerCase().includes(p)||(h.name??"").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 g&&y&&b})},[d,s,u,a,i]);return r?o.jsx(ol,{columns:EXe}):o.jsxs(ve,{columns:EXe,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)??Y1(p.datasetId)??p.datasetId:"—",m=p.status??"pending",g=p.succeededCount??0,y=p.failedCount??0,b=p.totalItems??0,x=b>0?Math.round(g/b*100):0;return o.jsxs(ve.RowLink,{to:l.experimentLink(p.id),LinkComponent:c,children:[o.jsx(ve.Cell,{children:o.jsx(b7t,{experiment:p})}),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(wg,{variant:Uos[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:g>0?"text-accent1":"",children:[g," (",x,"%)"]})}),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(Js,{size:"small",color:"yellow",children:[w.needsReview," pending"]}):o.jsxs(Js,{size:"small",color:"green",children:[w.complete,"/",k," reviewed"]})})()}),o.jsx(ve.TextCell,{children:Bos(p.createdAt)})]},p.id)})]})}const qos=[{value:"all",label:"All statuses"},{value:"completed",label:"Completed"},{value:"running",label:"Running"},{value:"failed",label:"Failed"},{value:"pending",label:"Pending"}];function Hos(e){return[{value:"all",label:"All datasets"},...(e??[]).map(t=>({value:t.id,label:t.name}))]}const Dz={completed:"#22c55e",running:"#facc15",pending:"#fb923c",failed:"#f87171"},Wos=[{label:"Completed",color:Dz.completed},{label:"Running",color:Dz.running},{label:"Pending",color:Dz.pending},{label:"Failed",color:Dz.failed}];function Zos({experiments:e,datasets:t,isLoading:n,isError:r}){const{data:s,maxVal:a}=v.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(Ht,{children:[o.jsxs(Ht.TopBar,{children:[o.jsx(Ht.TitleAndDescription,{title:"Experiments by Dataset",description:"Experiment status breakdown per dataset."}),i&&o.jsx(Ht.Summary,{value:String(e?.length??0),label:"Total experiments"})]}),n?o.jsx(Ht.Loading,{}):r?o.jsx(Ht.Error,{message:"Failed to load experiments data"}):o.jsx(Ht.Content,{children:i?o.jsx(PN,{data:s,segments:Wos,maxVal:a,fmt:l=>String(l)}):o.jsx(Ht.NoData,{message:"No experiments have been run yet"})})]})}const Gos=()=>o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Lr,{iconSlot:o.jsx(Rf,{}),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(Sa,{})]})})})});function Qos({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(Lf,{label:"Search experiments",placeholder:"Filter by experiment, dataset, or target",value:e,onSearch:t}),o.jsxs(Mr,{children:[o.jsx(Cc,{label:"Status",labelIsHidden:!0,name:"filter-status",options:[...qos],value:n,onValueChange:r,className:"whitespace-nowrap"}),o.jsx(Cc,{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(bs,{className:"size-3"})," Reset"]})]})]})}function Yos(){const[e,t]=v.useState("all"),[n,r]=v.useState({}),{data:s,isLoading:a,error:i}=lh(),{data:l,isLoading:c,error:u}=Vg(),{data:d,isLoading:f,error:p}=lQ(),{data:h,isLoading:m,isError:g,error:y}=tXr(n),{data:b,isLoading:x,isError:w,error:k}=OIe(),_=l?.datasets,C=d?.experiments,j=v.useMemo(()=>Eos(b),[b]),E=i||u||p||y||k;return E&&ys(E)?o.jsx(lr,{children:o.jsx(Hs,{})}):E&&xs(E)?o.jsx(lr,{children:o.jsx(Ms,{resource:"evaluation"})}):E?o.jsx(lr,{children:o.jsx(qi,{title:"Failed to load evaluation data",message:E.message})}):o.jsxs(Ft,{width:"wide",height:"full",children:[o.jsx(Ft.TopArea,{children:o.jsx(Ft.Row,{children:o.jsx(Ft.Column,{children:o.jsx(K3,{preset:e,onPresetChange:t,dateFrom:n.start,dateTo:n.end,onDateChange:(N,I)=>r(A=>I==="from"?{...A,start:N}:{...A,end:N})})})})}),o.jsxs("div",{className:"flex flex-col gap-6",children:[o.jsx(wbe,{children:o.jsx(zos,{scorers:s,datasets:_,experiments:C,avgScore:h?.avgScore??null,prevAvgScore:h?.prevAvgScore??null,totalNeedsReview:j.needsReview,isLoadingScorers:a,isLoadingDatasets:c,isLoadingExperiments:f,isLoadingScores:m,isLoadingReview:x})}),o.jsx(dKr,{summaryData:h?.summaryData??[],overTimeData:h?.overTimeData??[],scorerNames:h?.scorerNames??[],avgScore:h?.avgScore??null,isLoading:m,isError:g}),o.jsxs("div",{className:"grid grid-cols-1 gap-6 lg:grid-cols-2",children:[o.jsx(jas,{experiments:C,isLoading:f,isError:!!p}),o.jsx(Zos,{experiments:C,datasets:_,isLoading:f,isError:!!p})]}),o.jsx(_os,{reviewSummary:b,experiments:C,datasets:_,isLoading:x,isError:!!w})]})]})}function Kos(){const[e,t]=v.useState(""),[n,r]=v.useState("all"),[s,a]=v.useState("all"),{data:i,isLoading:l,error:c}=Vg(),{data:u,isLoading:d,error:f}=lQ(),{data:p}=OIe(),h=v.useMemo(()=>i?.datasets??[],[i?.datasets]),m=v.useMemo(()=>u?.experiments??[],[u?.experiments]),g=v.useMemo(()=>Hos(h),[h]),y=v.useMemo(()=>O7t(p),[p]),b=l||d,x=f||c;if(x&&ys(x))return o.jsx(lr,{children:o.jsx(Hs,{})});if(f&&xs(f))return o.jsx(lr,{children:o.jsx(Ms,{resource:"experiments"})});if(c&&xs(c))return o.jsx(lr,{children:o.jsx(Ms,{resource:"datasets"})});if(x)return o.jsx(lr,{children:o.jsx(qi,{title:"Failed to load experiments",message:x.message})});if(m.length===0&&!b)return o.jsx(lr,{children:o.jsx(Gos,{})});const w=n!=="all"||s!=="all"||e!=="",k=()=>{t(""),r("all"),a("all")};return o.jsxs(Ft,{children:[o.jsx(Ft.TopArea,{children:o.jsx(Qos,{search:e,onSearchChange:t,statusFilter:n,onStatusFilterChange:r,datasetFilter:s,onDatasetFilterChange:a,datasetOptions:g,onReset:k,hasActiveFilters:w})}),o.jsx(Vos,{experiments:m,datasets:h,reviewByExperiment:y,isLoading:b,search:e,statusFilter:n,datasetFilter:s})]})}function Lz({children:e}){return o.jsxs(Ft,{height:"full",children:[o.jsx("div",{}),o.jsx(Ft.MainArea,{isCentered:!0,children:e})]})}function Xos(){const{experimentId:e}=Sr(),{data:t,isLoading:n}=lQ(),s=t?.experiments?.find(h=>h.id===e)?.datasetId??"",{data:a,isLoading:i,error:l}=MV(s,e??""),{data:c,isLoading:u,setEndOfListElement:d,isFetchingNextPage:f,hasNextPage:p}=qG({datasetId:s,experimentId:e??"",experimentStatus:a?.status});return!e||n||i?null:l&&ys(l)?o.jsx(Lz,{children:o.jsx(Hs,{})}):l&&xs(l)?o.jsx(Lz,{children:o.jsx(Ms,{resource:"datasets"})}):l&&_Ce(l)||!n&&!s||!i&&!l&&!a?o.jsx(Lz,{children:o.jsx(Lr,{iconSlot:o.jsx(Lbe,{}),titleSlot:"Experiment not found",descriptionSlot:`No experiment with id "${e}".`,actionSlot:o.jsxs(ce,{as:Fa,to:"/experiments",children:[o.jsx(Ac,{}),"Back to Experiments"]})})}):l?o.jsx(Lz,{children:o.jsx(qi,{title:"Failed to load experiment",message:l instanceof Error?l.message:"An unexpected error occurred. Please try again."})}):o.jsxs(Ft,{height:"full",children:[o.jsx(_7t,{experiment:a}),o.jsx(Ft.MainArea,{children:o.jsx(k7t,{experimentId:e,datasetId:s,experimentStatus:a.status,results:c??[],isLoading:u,setEndOfListElement:d,isFetchingNextPage:f,hasNextPage:p})})]})}function Jos({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 C7t({connections:e,isAdmin:t,disconnectPending:n,onDisconnect:r}){return o.jsx("ul",{className:"space-y-1",children:e.map(s=>o.jsx(Jos,{connection:s,isAdmin:t,disconnectPending:n,onDisconnect:()=>r(s.connectionId)},s.connectionId))})}function els({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(C7t,{connections:a,isAdmin:t,disconnectPending:n,onDisconnect:r})]},s))})}function tls({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(els,{groups:r,isAdmin:s,disconnectPending:l,onDisconnect:u}):o.jsx(C7t,{connections:n,isAdmin:s,disconnectPending:l,onDisconnect:u}),c?o.jsx("p",{className:"text-red-600",children:String(c)}):null]})}function nls({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:g}){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:g,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 jXe=e=>e.authorId?.trim()||"shared",rls=(e,t)=>{if(!t||new Set(e.map(jXe)).size<=1)return null;const r=new Map;for(const a of e){const i=jXe(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},sls=["*","tool-providers:*","tool-providers:admin"];function als(){const{data:e}=jm();return e?.permissions?.some(t=>sls.includes(t))??!1}function ils(){const[e,t]=v.useState(""),[n,r]=v.useState(""),[s,a]=v.useState(""),i=MI(),l=mZ(e||null),c=s$t(e||null,n||null),u=r$t(),d=e$t(),f=als(),p=i.data?.providers??[],h=l.data?.data??[],m=v.useMemo(()=>c.data?.items??[],[c.data?.items]),g=v.useMemo(()=>rls(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()}})},x=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(nls,{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(tls,{providerId:e,toolkit:n,connections:m,groupedByAuthor:g,isAdmin:f,isLoading:c.isLoading,error:c.error,disconnectPending:d.isPending,disconnectError:d.error,onDisconnect:x})]})}function ols({title:e,description:t,errorBanner:n,children:r}){return o.jsx("div",{"data-testid":"login-page",className:"bg-surface1 flex min-h-screen items-center justify-center",children:o.jsxs("div",{className:"w-full max-w-sm space-y-6",children:[o.jsxs("div",{className:"flex flex-col items-center space-y-2",children:[o.jsx(em,{className:"h-10 w-10"}),o.jsx("h1",{className:"text-neutral6 text-xl font-semibold",children:e})]}),t,n,r]})})}function E7t({redirectUri:e,onSuccess:t,initialMode:n="signin",errorMessage:r}){const{data:s,isLoading:a}=uc(),{mutate:i,isPending:l,error:c}=cTr(),{mutate:u,isPending:d,error:f}=dTr(),{mutate:p,isPending:h}=kPt(),[m,g]=v.useState(n),[y,b]=v.useState(""),[x,w]=v.useState(""),[k,_]=v.useState("");if(a)return o.jsx("div",{className:"bg-surface1 flex min-h-screen items-center justify-center",children:o.jsx("div",{className:"text-neutral3",children:"Loading..."})});if(!s?.enabled||!s?.login)return o.jsx("div",{className:"bg-surface1 flex min-h-screen items-center justify-center",children:o.jsx("div",{className:"text-neutral3",children:"Authentication is not configured"})});const{login:C}=s,j=C.type==="sso"||C.type==="both",E=C.type==="credentials"||C.type==="both",N=C.sso,I=C.signUpEnabled!==!1,A=m==="signin"||!I,R=A?l:d,L=A?c:f,D=()=>{t?t():e?window.location.href=e:window.location.href=WG("/")},B=M=>{M.preventDefault(),A?i({email:x,password:k},{onSuccess:D}):u({email:x,password:k,name:y||void 0},{onSuccess:D})},H=()=>{p({redirectUri:e},{onSuccess:M=>{window.location.href=M.url}})},F=()=>{g(A?"signup":"signin")},z=C.description?o.jsxs("div",{className:"border-border1 bg-surface1 flex items-start gap-2.5 rounded-md border p-3",children:[o.jsx(Cf,{className:"text-neutral4 mt-0.5 h-4 w-4 shrink-0"}),o.jsx("p",{className:"text-neutral3 text-sm",children:C.description})]}):null,V=r?o.jsx("div",{className:"rounded-md bg-red-500/10 p-3 text-sm text-red-400",children:r}):null;return o.jsxs(ols,{title:A?"Sign in to Mastra Studio":"Create your account",description:z,errorBanner:V,children:[E&&o.jsxs("form",{onSubmit:B,className:"space-y-4",children:[!A&&o.jsxs("div",{className:"space-y-2",children:[o.jsx("label",{htmlFor:"name",className:"text-neutral4 block text-sm",children:"Name"}),o.jsx(En,{id:"name",type:"text",value:y,onChange:M=>b(M.target.value),placeholder:"Your name",variant:"default",size:"lg"})]}),o.jsxs("div",{className:"space-y-2",children:[o.jsx("label",{htmlFor:"email",className:"text-neutral4 block text-sm",children:"Email"}),o.jsx(En,{id:"email",type:"email",value:x,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:"text-neutral4 block text-sm",children:"Password"}),o.jsx(En,{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:R,className:"w-full",size:"lg",children:R?A?"Signing in...":"Creating account...":A?"Sign in":"Create account"}),I&&o.jsxs("div",{className:"text-center text-sm",children:[o.jsx("span",{className:"text-neutral3",children:A?"Don't have an account? ":"Already have an account? "}),o.jsx("button",{type:"button",onClick:F,className:"text-neutral6 hover:underline",children:A?"Sign up":"Sign in"})]})]}),j&&E&&o.jsxs("div",{className:"relative",children:[o.jsx("div",{className:"absolute inset-0 flex items-center",children:o.jsx("div",{className:"border-border1 w-full border-t"})}),o.jsx("div",{className:"relative flex justify-center text-sm",children:o.jsx("span",{className:"bg-surface1 text-neutral3 px-2",children:"or continue with"})})]}),j&&N&&o.jsxs(ce,{onClick:H,disabled:h,className:"w-full",size:"lg",variant:"outline",children:[N.icon&&o.jsx("span",{className:"mr-2",children:N.icon}),h?"Redirecting...":N.text||"Sign in"]})]})}function lls(){const[e]=Ri(),t=qs(),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(E7t,{redirectUri:n,onSuccess:i,initialMode:s,errorMessage:a})}function cls({collapsed:e,children:t}){return o.jsx("section",{className:X("flex flex-col overflow-hidden rounded-xl border border-border1 bg-surface2",e?"h-auto":"h-full"),children:t})}function uls({onClick:e,tooltip:t="Close panel",className:n}){return o.jsx(ce,{size:"md",onClick:e,"aria-label":"Close Panel",tooltip:t,className:n,children:o.jsx(Qu,{})})}function dls(){return uI({settings:{fontFamily:"var(--font-mono)",fontSize:"0.75rem",lineHighlight:"transparent",gutterBackground:"transparent",gutterForeground:"#939393",background:"transparent"},styles:[{tag:[he.className,he.propertyName]}]})}function fls(){const e=Nt.theme({"&":{backgroundColor:"transparent",color:"var(--neutral6)",fontSize:"0.75rem"},"&.cm-editor .cm-scroller":{fontFamily:"var(--font-mono)"},".cm-gutters":{backgroundColor:"transparent",color:"var(--neutral2)",borderRight:"none"},".cm-content":{color:"var(--neutral6)",caretColor:"var(--neutral6)"},".cm-activeLine":{backgroundColor:"transparent"},".cm-activeLineGutter":{backgroundColor:"transparent"},".cm-cursor, .cm-dropCursor":{borderLeftColor:"var(--neutral6)"}}),t=qg.define([{tag:[he.comment,he.bracket],color:"var(--neutral2)"},{tag:[he.string,he.meta,he.regexp],color:"var(--accent1)"},{tag:[he.atom,he.bool,he.special(he.variableName)],color:"var(--accent6)"},{tag:[he.keyword,he.operator,he.tagName],color:"var(--accent2)"},{tag:[he.function(he.propertyName),he.propertyName],color:"var(--accent5)"},{tag:[he.definition(he.variableName),he.function(he.variableName),he.className,he.attributeName],color:"var(--accent3)"},{tag:[he.variableName,he.number],color:"var(--accent5)"},{tag:[he.name,he.quote],color:"var(--accent1)"}]);return[e,U1(t)]}const pls=()=>{const e=U_().resolvedTheme==="dark";return v.useMemo(()=>e?dls():fls(),[e])};function hls({codeStr:e="",title:t,icon:n,simplified:r=!1,className:s}){const a=pls(),[i,l]=v.useState(!1),c=v.useMemo(()=>{try{const f=JSON.parse(e);return Sbe(f||"")}catch{return!1}},[e]),u=i?e?.replace(/\\n/g,`
|
|
720
720
|
`):e,d=r||i;return!e||e==="null"?null:o.jsxs("div",{className:X("flex flex-col gap-2",s),children:[o.jsxs("div",{className:"flex items-center justify-between",children:[o.jsxs("div",{className:X("flex items-center gap-1.5 text-ui-xs tracking-widest text-neutral2 uppercase","[&>svg]:size-3.5"),children:[n,t]}),o.jsxs(Mr,{children:[o.jsx(Pa,{content:e||"No content",size:"sm"}),c&&o.jsx(ce,{size:"sm","aria-label":i?"Show escaped newlines":"Show multiline text",onClick:()=>l(f=>!f),children:i?o.jsx(I$,{}):o.jsx(k7,{})})]})]}),o.jsx("div",{className:"border-border1 bg-surface3 text-ui-sm text-neutral4 max-h-[30vh] overflow-hidden overflow-y-auto rounded-lg border p-3 break-all dark:border-white/10 dark:bg-black/20",children:d?o.jsx("div",{className:"text-neutral4 font-mono break-all",children:o.jsx("pre",{className:"text-wrap",children:u})}):o.jsx(Xu,{extensions:[FT(),Nt.lineWrapping],theme:a,value:e,editable:!1})})]})}function Sbe(e){if(typeof e=="string"){const t=e.indexOf(`
|
|
721
|
-
`);return t!==-1&&t!==e.length-1}else{if(Array.isArray(e))return e.some(t=>Sbe(t));if(e&&typeof e=="object")return Object.values(e).some(t=>Sbe(t))}return!1}function mls({children:e}){return o.jsx("div",{className:"flex-1 overflow-y-auto p-4",children:e})}function gls({className:e,children:t}){return o.jsx("div",{className:X("mx-4 flex items-center justify-between gap-2 border-b border-border1 py-3",e),children:t})}function vls({className:e,children:t}){return o.jsx("h3",{className:X("flex gap-2 text-ui-md text-neutral3 [&>b]:font-normal [&>b]:text-neutral2",e),children:t})}function yls({className:e,children:t}){return o.jsx("dl",{className:X("grid grid-cols-[auto_1fr] gap-x-4 gap-y-1.5",e),children:t})}function bls({className:e,children:t}){return o.jsx("dt",{className:X("shrink-0 py-0.5 text-ui-smd text-neutral2",e),children:t})}function xls({className:e,children:t}){return o.jsx("dd",{className:X("min-w-0 truncate py-0.5 text-ui-smd text-neutral3",e),children:t})}function wls({className:e,children:t}){return o.jsx("dt",{className:X("col-span-2 py-3 text-ui-sm tracking-widest text-neutral2 uppercase",e),children:t})}const Sls=Object.assign(yls,{Key:bls,Value:xls,Header:wls});function kls({children:e}){return o.jsxs("div",{className:"text-ui-sm text-neutral3 flex items-center justify-center gap-2 px-4 py-6",children:[o.jsx(Xt,{size:"sm",variant:"pulse",className:"text-neutral3"})," ",e??"Loading..."]})}function Ols({children:e}){return o.jsx("p",{className:"text-ui-sm text-neutral2 px-4 py-6",children:e??"No data found."})}const zi=Object.assign(cls,{Header:gls,Heading:vls,CloseButton:uls,LoadingData:kls,NoData:Ols,Content:mls,KeyValueList:Sls,CodeSection:hls}),cp=zi.KeyValueList;function _ls(e){return e instanceof Date?e:new Date(e)}function Cls({log:e,onClose:t,onTraceClick:n,onSpanClick:r,onPrevious:s,onNext:a,collapsed:i,onCollapsedChange:l}){const[c,u]=v.useState(!1),d=i??c,f=l??u,p=_ls(e.timestamp),h=e.traceId,m=e.spanId;return o.jsxs(zi,{collapsed:d,children:[o.jsxs(zi.Header,{children:[o.jsxs(zi.Heading,{children:["Log ",o.jsx("b",{children:nr(p,"MMM dd, HH:mm:ss.SSS")})]}),o.jsxs(Mr,{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(Xq,{}):o.jsx(kwe,{})}),o.jsxs(Mr,{spacing:"close",children:[o.jsx(ce,{size:"md",tooltip:"Previous log",onClick:s,disabled:!s,children:o.jsx(Kq,{})}),o.jsx(ce,{size:"md",tooltip:"Next log",onClick:a,disabled:!a,children:o.jsx(p3,{})})]}),o.jsx(zi.CloseButton,{onClick:t})]})]}),!d&&o.jsxs(zi.Content,{children:[o.jsx("p",{className:"text-ui-md text-neutral4 font-mono wrap-break-word whitespace-pre-wrap",children:e.message}),(h||m)&&o.jsxs("div",{className:X("my-8 grid gap-2","[&>button]:justify-between [&>button]:overflow-hidden"),children:[h&&o.jsxs(Mr,{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(O7,{}),o.jsx("span",{children:"Trace"}),o.jsxs("span",{className:"text-ui-sm text-neutral2 ml-auto min-w-0 truncate",children:["# ",h]})]}),o.jsx(Pa,{content:h,size:"md",tooltip:"Copy Trace ID to clipboard"})]}),m&&o.jsxs(Mr,{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(O7,{}),o.jsx("span",{children:"Span"}),o.jsxs("span",{className:"text-ui-sm text-neutral2 ml-auto min-w-0 truncate",children:["# ",m]})]}),o.jsx(Pa,{content:m,size:"md",tooltip:"Copy Span ID to clipboard"})]})]}),o.jsxs(cp,{className:"mb-6",children:[e.entityType&&o.jsxs(o.Fragment,{children:[o.jsx(cp.Key,{children:"Entity Type"}),o.jsx(cp.Value,{children:e.entityType})]}),e.entityName&&o.jsxs(o.Fragment,{children:[o.jsx(cp.Key,{children:"Entity Name"}),o.jsx(cp.Value,{children:e.entityName})]}),e.serviceName&&o.jsxs(o.Fragment,{children:[o.jsx(cp.Key,{children:"Service"}),o.jsx(cp.Value,{children:e.serviceName})]}),e.environment&&o.jsxs(o.Fragment,{children:[o.jsx(cp.Key,{children:"Environment"}),o.jsx(cp.Value,{children:e.environment})]}),e.source&&o.jsxs(o.Fragment,{children:[o.jsx(cp.Key,{children:"Source"}),o.jsx(cp.Value,{children:e.source})]}),e.metadata&&Object.keys(e.metadata).length>0&&o.jsx(o.Fragment,{children:Object.entries(e.metadata).map(([g,y])=>o.jsxs(v.Fragment,{children:[o.jsx(cp.Key,{children:g}),o.jsx(cp.Value,{children:String(y)})]},g))})]}),e.data&&Object.keys(e.data).length>0&&o.jsx(zi.CodeSection,{title:"Data",codeStr:JSON.stringify(e.data,null,2),className:"mt-6"})]})]})}function Els({error:e,resource:t,errorTitle:n}){if(ys(e))return o.jsx(Hs,{});if(xs(e))return o.jsx(Ms,{resource:t});if(O4(e))return o.jsx(Lr,{iconSlot:o.jsx(_7,{}),titleSlot:"Observability storage is not available",descriptionSlot:"The observability storage domain is disabled or not configured. Enable it in your storage configuration to view logs in Studio."});if(k4(e,"logs"))return o.jsx(Lr,{iconSlot:o.jsx(_7,{}),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(qi,{title:n,message:r??"Unknown error"})}function jls({listSlot:e,logPanelSlot:t,tracePanelSlot:n,spanPanelSlot:r,logCollapsed:s}){const a=!!t;return o.jsxs("div",{className:X("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:X("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 Tls={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 Nls({level:e}){const t=Tls[e];return o.jsx(To,{height:"compact",children:o.jsx("span",{className:"text-ui-sm font-semibold uppercase",style:{color:t.color},children:t.label})})}function Ils({entityType:e,className:t}){const n=X("size-3.5 shrink-0 text-neutral2",t);switch(e.toLowerCase()){case"agent":return o.jsx(Uo,{className:n,"aria-hidden":!0});case"workflow":case"workflow_run":return o.jsx(td,{className:n,"aria-hidden":!0});case"tool":return o.jsx(Ud,{className:n,"aria-hidden":!0});default:return null}}function Als({entityType:e,entityName:t}){const n=e??"";return o.jsxs(To,{height:"compact",className:"flex min-w-0 items-center gap-2",children:[o.jsx(Ils,{entityType:n}),t?o.jsx("span",{className:"text-ui-smd min-w-0 truncate",children:t}):"-"]})}function Rls({message:e}){return o.jsx(To,{height:"compact",className:"text-ui-smd text-neutral4 min-w-0 truncate font-mono",children:e})}function Pls({data:e}){if(!e||Object.keys(e).length===0)return o.jsx(To,{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(gEe,{children:t})}const Gl=Object.assign(R4,{Top:SZ,TopCell:iC,TopCellWithTooltip:kZ,TopCellSmart:q$t,RowWrapper:wEe,RowButton:P4,RowLink:H$t,Spacer:xEe,NoMatch:wZ,DateCell:vEe,TimeCell:yEe,LevelCell:Nls,EntityCell:Als,MessageCell:Rls,DataCell:Pls,NextPageLoading:xZ}),TXe="6rem 9rem 5rem 10rem minmax(8rem,1fr) minmax(8rem,1fr)",$ls=36,Mls=8;function Dls({logs:e,isLoading:t,isFetchingNextPage:n,hasNextPage:r,setEndOfListElement:s,logIdMap:a,featuredLogId:i,onLogClick:l}){const c=v.useRef(null),u=o7t({count:e.length,getScrollElement:()=>c.current,estimateSize:()=>$ls,overscan:Mls}),d=v.useRef(t);if(v.useEffect(()=>{d.current&&!t&&c.current?.dispatchEvent(new Event("scroll")),d.current=t},[t]),t)return o.jsx(ol,{columns:TXe});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(Gl,{columns:TXe,variant:"striped",scrollRef:c,className:"min-w-0",children:[o.jsxs(Gl.Top,{children:[o.jsx(Gl.TopCell,{children:"Date"}),o.jsx(Gl.TopCell,{children:"Time"}),o.jsx(Gl.TopCell,{children:"Level"}),o.jsx(Gl.TopCell,{children:"Entity"}),o.jsx(Gl.TopCell,{children:"Message"}),o.jsx(Gl.TopCell,{children:"Data"})]}),e.length===0?o.jsx(Gl.NoMatch,{message:"No logs match your search"}):o.jsxs(o.Fragment,{children:[o.jsx(Gl.Spacer,{height:h}),f.map(g=>{const y=e[g.index];if(!y)return null;const b=a.get(y);if(!b)return null;const x=b===i;return o.jsxs(Gl.RowButton,{ref:u.measureElement,"data-index":g.index,onClick:()=>l(y),featured:x,variant:y.level==="error"||y.level==="fatal"?"error":"default",children:[o.jsx(Gl.DateCell,{timestamp:y.timestamp}),o.jsx(Gl.TimeCell,{timestamp:y.timestamp}),o.jsx(Gl.LevelCell,{level:y.level}),o.jsx(Gl.EntityCell,{entityType:y.entityType,entityName:y.entityName}),o.jsx(Gl.MessageCell,{message:y.message}),o.jsx(Gl.DataCell,{data:y.data})]},b)}),o.jsx(Gl.Spacer,{height:m})]}),o.jsx(Gl.NextPageLoading,{isLoading:n,hasMore:r,setEndOfListElement:s})]})}function Lls({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=>Fls(f,a));return o.jsxs("div",{className:X("grid grid-cols-[1fr_auto] items-start gap-3"),children:[o.jsx(rIe,{fields:a,tokens:i,onTokensChange:l,disabled:s,autoFocusFieldId:c}),u&&o.jsx(tIe,{disabled:s,onClear:d?e:void 0,onRemoveAll:t,onSave:n,onRemoveSaved:r})]})}function Fls(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 zls={"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"},Nae="MMM d, yyyy HH:mm",Iae="Pick a wider range or lower the logging level — verbose entries (debug, info) may be filtered out.";function Bls({datePreset:e,dateFrom:t,dateTo:n}){return e&&e!=="all"&&e!=="custom"?{title:`No logs for ${zls[e]}`,description:Iae}:t&&n?{title:`No logs between ${nr(t,Nae)} and ${nr(n,Nae)}`,description:Iae}:t?{title:`No logs since ${nr(t,Nae)}`,description:Iae}:{title:"No logs yet",description:"Logs will appear here once agents, workflows, or tools are executed."}}const Uls=({datePreset:e,dateFrom:t,dateTo:n}={})=>{const{title:r,description:s}=Bls({datePreset:e,dateFrom:t,dateTo:n});return o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Lr,{iconSlot:o.jsx(_7,{}),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(Owe,{})]})})})},Vls=20,qls=1e4;function Hls(e,t,n){if(e?.pagination?.hasMore)return n+1}function Wls(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 Zls(e){return k4(e.state.error,"logs")||O4(e.state.error)?!1:qls}const Gls=({filters:e}={})=>{const t=We(),{inView:n,setRef:r}=Z_(),s=M1({queryKey:["logs",e],queryFn:({pageParam:p})=>t.listLogsVNext({pagination:{page:p,perPage:Vls},filters:e,orderBy:{field:"timestamp",direction:"DESC"}}),initialPageParam:0,getNextPageParam:Hls,select:Wls,retry:!1,refetchInterval:Zls}),{hasNextPage:a,isFetchingNextPage:i,fetchNextPage:l,data:c,isLoading:u,isError:d,error:f}=s;return v.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}},Fz={AGENT:"agent",WORKFLOW:"workflow_run",SCORER:"scorer",INGEST:"rag_ingestion"},j7t=[{label:"Agent",entityType:Fz.AGENT},{label:"Workflow",entityType:Fz.WORKFLOW},{label:"Scorer",entityType:Fz.SCORER},{label:"Ingest",entityType:Fz.INGEST}],Qls=[{label:"Debug",value:"debug"},{label:"Info",value:"info"},{label:"Warn",value:"warn"},{label:"Error",value:"error"},{label:"Fatal",value:"fatal"}],Ux="rootEntityType",Kb="datePreset",Xb="dateFrom",Jb="dateTo",Yls=new Set(["all","last-24h","last-3d","last-7d","last-14d","last-30d","custom"]),Nl={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"},TL=Object.keys(Nl),_Ie=new Set(["tags"]),CIe="mastra:logs:saved-filters";function Kls(e,t=CIe){const n=ncs(e),r=e.get(Kb);r&&n.set(Kb,r);const s=e.get(Xb);s&&n.set(Xb,s);const a=e.get(Jb);a&&n.set(Jb,a);try{localStorage.setItem(t,n.toString())}catch{}}function Xls(e=CIe){try{localStorage.removeItem(e)}catch{}}function NXe(e=CIe){try{const t=localStorage.getItem(e);if(!t)return null;const n=new URLSearchParams(t);return n.toString()?n:null}catch{return null}}function Jls(e){if(e.has(Kb)||e.has(Xb)||e.has(Jb)||e.has(Ux))return!0;for(const t of TL)if(e.has(Nl[t]))return!0;return!1}function ecs({availableTags:e,availableRootEntityNames:t,availableServiceNames:n,availableEnvironments:r,loading:s}){const a=[{id:"rootEntityType",label:"Primitive Type",kind:"pick-multi",searchable:!1,options:j7t.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:Qls.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 tcs(e){const t=[],n=new Map([[Ux,"rootEntityType"]]);for(const s of TL)n.set(Nl[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),_Ie.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 ncs(e){const t=new URLSearchParams,n=e.get(Ux);n&&t.set(Ux,n);for(const r of TL){const s=Nl[r];if(_Ie.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 rcs(e,t){e.delete(Ux);for(const n of TL)e.delete(Nl[n]);for(const n of t){if(n.fieldId==="rootEntityType"&&typeof n.value=="string"){e.set(Ux,n.value);continue}const r=Nl[n.fieldId];if(r){if(_Ie.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 scs({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 acs(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 ics="Filters setting for Logs saved",ocs="Filters setting for Logs cleared up";function lcs(e,t,n){const{storageKey:r,messages:s,skipHydration:a}={},[i,l]=v.useState(()=>NXe(r)!==null),c=v.useCallback(()=>{Kls(e,r),l(!0);const f=s?.saved??ics;f!==!1&&Le.success(f)},[e,r,s?.saved]),u=v.useCallback(()=>{Xls(r),l(!1);const f=s?.cleared??ocs;f!==!1&&Le.success(f)},[r,s?.cleared]),d=v.useRef(!1);return v.useEffect(()=>{if(a||d.current||(d.current=!0,Jls(e)))return;const f=NXe(r);f&&t(p=>{const h=new URLSearchParams(p);for(const[m,g]of f)h.append(m,g);return h},{replace:!0})},[]),{hasSavedFilters:i,handleSave:c,handleRemoveSaved:u}}function ccs(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 ucs(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,ccs(`${r}${n.message??""}${n.data?JSON.stringify(n.data):""}`))}return t}function dcs(e,t,n,r){const s=v.useMemo(()=>ucs(e),[e]),a=v.useMemo(()=>{const h=new Map;for(const[m,g]of e.entries()){const y=s.get(g);y&&h.set(y,{log:g,idx:m})}return h},[e,s]),l=(t?a.get(t):void 0)?.idx??-1,c=l>=0?e[l]??null:null,u=v.useCallback(h=>s.get(h),[s]),d=v.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 kbe="logId",Obe="traceId",_be="spanId",cP=1440*60*1e3,fcs={"last-24h":cP,"last-3d":3*cP,"last-7d":7*cP,"last-14d":14*cP,"last-30d":30*cP};function zz(e){e.delete(kbe),e.delete(Obe),e.delete(_be)}function pcs(e,t,n){const{onRemoveAll:r}={},s=v.useMemo(()=>{const _=e.get(Kb);return _&&Yls.has(_)?_:"last-24h"},[e]),a=e.get(Xb),i=e.get(Jb),l=v.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 _=fcs[s];return _?new Date(Date.now()-_):void 0},[s,a]),c=v.useMemo(()=>{if(s!=="custom"||!i)return;const _=new Date(i);return Number.isNaN(_.getTime())?void 0:_},[s,i]),u=v.useRef(s);u.current=s;const d=e.get(kbe),f=e.get(Obe),p=e.get(_be),h=v.useMemo(()=>j7t.find(_=>_.entityType===e.get(Ux)),[e]),m=v.useMemo(()=>tcs(e),[e]),g=v.useCallback(_=>{t(C=>{const j=new URLSearchParams(C);for(const[E,N]of Object.entries(_)){const I=E==="logId"?kbe:E==="traceId"?Obe:_be;N?j.set(I,N):j.delete(I)}return j},{replace:!0})},[t]),y=v.useCallback(_=>{t(C=>{const j=new URLSearchParams(C);return rcs(j,_),zz(j),j},{replace:!0})},[t]),b=y,x=v.useCallback((_,C)=>{if(u.current!=="custom")return;const j=C==="from"?Xb:Jb;t(E=>{const N=new URLSearchParams(E);return _?N.set(j,_.toISOString()):N.delete(j),zz(N),N},{replace:!0})},[t]),w=v.useCallback(_=>{u.current=_,t(C=>{const j=new URLSearchParams(C);return _==="last-24h"?(j.delete(Kb),j.delete(Xb),j.delete(Jb)):_==="custom"?j.set(Kb,"custom"):(j.set(Kb,_),j.delete(Xb),j.delete(Jb)),zz(j),j},{replace:!0})},[t]),k=v.useCallback(()=>{t(_=>{const C=new URLSearchParams(_);C.delete(Ux);for(const j of TL)C.delete(Nl[j]);return C.delete(Kb),C.delete(Xb),C.delete(Jb),zz(C),C},{replace:!0}),r?.()},[t,r]);return v.useMemo(()=>({searchParams:e,setSearchParams:t,datePreset:s,selectedDateFrom:l,selectedDateTo:c,datePresetRef:u,featuredLogId:d,featuredTraceId:f,featuredSpanId:p,selectedEntityOption:h,filterTokens:m,handleFeaturedChange:g,handleFilterTokensChange:b,handleDateChange:x,handleDatePresetChange:w,handleRemoveAll:k,applyFilterTokens:y}),[e,t,s,l,c,u,d,f,p,h,m,g,b,x,w,k,y])}const Cb=zi.KeyValueList;function hcs({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(zi,{children:[o.jsxs(zi.Header,{children:[o.jsxs(zi.Heading,{children:["Span ",o.jsxs("b",{children:["# ",e]})]}),o.jsx(zi.CloseButton,{onClick:r})]}),n?o.jsx(zi.LoadingData,{children:"Loading span..."}):t?o.jsxs(zi.Content,{children:[o.jsxs(Cb,{children:[t.spanType&&o.jsxs(o.Fragment,{children:[o.jsx(Cb.Key,{children:"Type"}),o.jsx(Cb.Value,{children:t.spanType})]}),t.startedAt&&o.jsxs(o.Fragment,{children:[o.jsx(Cb.Key,{children:"Started"}),o.jsx(Cb.Value,{children:nr(new Date(t.startedAt),"MMM dd, HH:mm:ss.SSS")})]}),t.endedAt&&o.jsxs(o.Fragment,{children:[o.jsx(Cb.Key,{children:"Ended"}),o.jsx(Cb.Value,{children:nr(new Date(t.endedAt),"MMM dd, HH:mm:ss.SSS")})]}),s!=null&&o.jsxs(o.Fragment,{children:[o.jsx(Cb.Key,{children:"Duration"}),o.jsx(Cb.Value,{children:s<1e3?`${s}ms`:`${(s/1e3).toFixed(2)}s`})]})]}),o.jsx("br",{}),o.jsx(zi.CodeSection,{title:"Input",icon:o.jsx(ghe,{}),codeStr:JSON.stringify(t.input??null,null,2)}),o.jsx(zi.CodeSection,{title:"Output",icon:o.jsx(vhe,{}),codeStr:JSON.stringify(t.output??null,null,2)}),o.jsx(zi.CodeSection,{title:"Metadata",icon:o.jsx(yw,{}),codeStr:JSON.stringify(t.metadata??null,null,2)}),o.jsx(zi.CodeSection,{title:"Attributes",icon:o.jsx(yw,{}),codeStr:JSON.stringify(t.attributes??null,null,2)})]}):o.jsx(zi.NoData,{children:"Span not found."})]})}function mcs({traceId:e,spans:t,isLoading:n,onClose:r,onSpanSelect:s,selectedSpanId:a}){const i=v.useMemo(()=>oIe(t??[]),[t]),[l,c]=v.useState([]);v.useEffect(()=>{i.length>0&&c(iIe(i))},[i]);const u=d=>{s?.(a===d?void 0:d)};return o.jsxs(zi,{children:[o.jsxs(zi.Header,{children:[o.jsxs(zi.Heading,{children:["Trace ",o.jsxs("b",{children:["# ",e]})]}),o.jsx(zi.CloseButton,{onClick:r})]}),n?o.jsx(zi.LoadingData,{children:"Loading trace..."}):i.length===0?o.jsx(zi.NoData,{children:"No spans found for this trace."}):o.jsx(zi.Content,{children:o.jsx(s7t,{hierarchicalSpans:i,onSpanClick:u,selectedSpanId:a??void 0,expandedSpanIds:l,setExpandedSpanIds:c})})]})}function gcs(){const[e,t]=Ri(),n=pcs(e,t),r=lcs(e,t),[s,a]=v.useState(),[i,l]=v.useState(!1),{data:c=[],isPending:u}=hIe(),{data:d=[],isPending:f}=dIe({entityType:n.selectedEntityOption?.entityType,rootOnly:!0}),{data:p=[],isPending:h}=fIe(),{data:m=[],isPending:g}=pIe(),y=v.useMemo(()=>ecs({availableTags:c,availableRootEntityNames:d,availableServiceNames:m,availableEnvironments:p,loading:{tags:u,entityNames:f,serviceNames:g,environments:h}}),[c,d,m,p,u,f,g,h]),b=v.useMemo(()=>scs({rootEntityType:n.selectedEntityOption?.entityType,dateFrom:n.selectedDateFrom,dateTo:n.selectedDateTo,tokens:n.filterTokens}),[n.filterTokens,n.selectedDateFrom,n.selectedDateTo,n.selectedEntityOption]),{data:x=[],isLoading:w,error:k,isFetchingNextPage:_,hasNextPage:C,setEndOfListElement:j}=Gls({filters:b}),{logIdMap:E,featuredLog:N,handleLogClick:I,handlePreviousLog:A,handleNextLog:R}=dcs(x,n.featuredLogId,n.handleFeaturedChange,n.featuredTraceId),{data:L,isLoading:D}=mIe(n.featuredTraceId??null),{data:B,isLoading:H}=jL(n.featuredTraceId??"",n.featuredSpanId??""),F=v.useCallback(()=>n.applyFilterTokens(acs(y,n.filterTokens)),[y,n]),z=v.useCallback(()=>n.handleFeaturedChange({logId:null}),[n]),V=v.useCallback(K=>n.handleFeaturedChange({traceId:K,spanId:null}),[n]),M=v.useCallback((K,te)=>n.handleFeaturedChange({traceId:K,spanId:te}),[n]),Q=v.useCallback(()=>{n.handleFeaturedChange({traceId:null,spanId:null}),l(!1)},[n]),q=v.useCallback(()=>n.handleFeaturedChange({spanId:null}),[n]),$=v.useCallback(K=>n.handleFeaturedChange({spanId:K??null}),[n]),U=o.jsxs(Ft.TopArea,{children:[o.jsx(Ft.Row,{children:o.jsxs(Ft.Column,{className:"flex flex-wrap items-start justify-start gap-2",children:[o.jsx(K3,{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(sIe,{fields:y,tokens:n.filterTokens,onTokensChange:n.handleFilterTokensChange,disabled:w,onStartTextFilter:a})]})}),o.jsx(Lls,{isLoading:w,filterFields:y,filterTokens:n.filterTokens,onFilterTokensChange:n.handleFilterTokensChange,onClear:F,onRemoveAll:n.handleRemoveAll,onSave:r.handleSave,onRemoveSaved:r.hasSavedFilters?r.handleRemoveSaved:void 0,autoFocusFilterFieldId:s})]});if(k)return o.jsxs(Ft,{width:"wide",height:"full",children:[U,o.jsx(Ft.MainArea,{isCentered:!0,children:o.jsx(Els,{error:k,resource:"logs",errorTitle:"Failed to load logs"})})]});const Z=!!n.selectedEntityOption||n.filterTokens.length>0;return x.length===0&&!w&&!Z?o.jsxs(Ft,{width:"wide",height:"full",children:[U,o.jsx(Ft.MainArea,{isCentered:!0,children:o.jsx(Uls,{datePreset:n.datePreset,dateFrom:n.selectedDateFrom,dateTo:n.selectedDateTo})})]}):o.jsxs(Ft,{width:"wide",height:"full",children:[U,o.jsx(jls,{logCollapsed:i,listSlot:o.jsx(Dls,{logs:x,isLoading:w,isFetchingNextPage:_,hasNextPage:C,setEndOfListElement:j,logIdMap:E,featuredLogId:n.featuredLogId,onLogClick:I}),logPanelSlot:N?o.jsx(Cls,{log:N,onClose:z,onTraceClick:V,onSpanClick:M,onPrevious:A,onNext:R,collapsed:i,onCollapsedChange:l}):null,tracePanelSlot:n.featuredTraceId?o.jsx(mcs,{traceId:n.featuredTraceId,spans:L?.spans,isLoading:D,onClose:Q,onSpanSelect:$,selectedSpanId:n.featuredSpanId}):null,spanPanelSlot:n.featuredTraceId&&n.featuredSpanId?o.jsx(hcs,{spanId:n.featuredSpanId,span:B?.span,isLoading:H,onClose:q}):null})]})}function vcs({server:e}){const{paths:t,Link:n}=yn(),s=We().options.baseUrl,a=s?`${s}/api/mcp/${e.id}/sse`:"",{data:i}=Mzt(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=Cy(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 ycs({mcpServers:e,isLoading:t,search:n=""}){const r=v.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(ol,{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(Uo,{}),tooltip:"Agent Tools",className:"text-center"}),o.jsx(ve.TopCellSmart,{long:"Tools",short:o.jsx(Ud,{}),tooltip:"Tools",className:"text-center"}),o.jsx(ve.TopCellSmart,{long:"Workflows",short:o.jsx(td,{}),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(vcs,{server:s},s.id))]})}const bcs=()=>o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Lr,{iconSlot:o.jsx(Rf,{}),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(Sa,{})]})})}),xcs=()=>{const{data:e=[],isLoading:t,error:n}=DG(),[r,s]=v.useState("");return n&&ys(n)?o.jsx(lr,{children:o.jsx(Hs,{})}):n&&xs(n)?o.jsx(lr,{children:o.jsx(Ms,{resource:"MCP servers"})}):n?o.jsx(lr,{children:o.jsx(qi,{title:"Failed to load MCP servers",message:n.message})}):e.length===0&&!t?o.jsx(lr,{children:o.jsx(bcs,{})}):o.jsxs(Ft,{children:[o.jsx(Ft.TopArea,{children:o.jsx("div",{className:"max-w-120",children:o.jsx(Lf,{onSearch:s,label:"Filter MCP servers",placeholder:"Filter by name"})})}),o.jsx(ycs,{mcpServers:e,isLoading:t,search:r})]})},wcs=(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 Scs({tools:e,agents:t,isLoading:n,search:r=""}){const{paths:s,Link:a}=yn(),i=v.useMemo(()=>wcs(e,t),[e,t]),l=v.useMemo(()=>i.filter(c=>c.id.toLowerCase().includes(r.toLowerCase())),[i,r]);return n?o.jsx(ol,{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(Uo,{}),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=Cy(c.id,50),d=Cy(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 kcs=()=>o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Lr,{iconSlot:o.jsx(Rf,{}),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(Sa,{})]})})}),Ocs=()=>{const e=We();return Mn({mutationFn:async({toolId:t,input:n,requestContext:r})=>{const s=new E_;Object.entries(r??{}).forEach(([a,i])=>{s.set(a,i)});try{return await e.getTool(t).execute({data:n,requestContext:s})}catch(a){throw Le.error("Error executing dev tool"),console.error("Error executing dev tool:",a),a}}})},_cs=({toolId:e})=>{const{canExecute:t}=ul(),n=t("tools"),{data:r={}}=Tm(),s=v.useMemo(()=>{for(const g of Object.values(r))if(g.tools){const y=Object.values(g.tools).find(b=>b.id===e);if(y)return y}return null},[r,e]),{data:a,isLoading:i,error:l}=ljr(e,{enabled:!s}),c=s||a,{mutateAsync:u,isPending:d,data:f}=Ocs(),{requestContext:p}=_s();v.useEffect(()=>{if(l){const g=l instanceof Error?l.message:"Failed to load tool";Le.error(`Error loading tool: ${g}`)}},[l]);const h=async(g,y)=>{if(!c)return;const b={...p??{},...y??{}};return u({toolId:c.id,input:g,requestContext:b})},m=c?.inputSchema?hm(fm(Ox(c?.inputSchema))):ks({});return i?o.jsxs("div",{className:"p-6",children:[o.jsx(xt,{className:"mb-4 h-8 w-48"}),o.jsx(xt,{className:"h-32 w-full"})]}):l?null:c?n?o.jsx(ANe,{executionResult:f,isExecutingTool:d,zodInputSchema:m,handleExecuteTool:h,toolDescription:c.description,toolId:c.id,requestContextSchema:c.requestContextSchema}):o.jsx("div",{className:"px-6 py-12 text-center",children:o.jsx(ye,{variant:"ui-sm",className:"text-neutral3",children:"You don't have permission to execute tools."})}):o.jsx("div",{className:"px-6 py-12 text-center",children:o.jsx(ye,{variant:"header-md",className:"text-neutral3",children:"Tool not found"})})};function Ccs({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}=PI(),{data:p={},isLoading:h,isError:m,error:g}=Tm(),{navigate:y,paths:b}=yn();v.useEffect(()=>{if(d){const _=f instanceof Error?f.message:"Failed to load tools";Le.error(`Error loading tools: ${_}`)}},[d,f]),v.useEffect(()=>{if(m){const _=g instanceof Error?g.message:"Failed to load agents";Le.error(`Error loading agents: ${_}`)}},[m,g]);const x=new Map;Object.values(p).forEach(_=>{_.tools&&Object.values(_.tools).forEach(C=>{x.has(C.id)||x.set(C.id,C)})}),Object.values(c).forEach(_=>{x.has(_.id)||x.set(_.id,_)});const w=Array.from(x.values()).map(_=>({label:_.id,value:_.id})),k=_=>{t?t(_):_&&_!==e&&y(b.toolLink(_))};return o.jsx(ac,{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 Ecs=({isLoading:e,server:t})=>{const[{sseUrl:n,httpStreamUrl:r},s]=v.useState({sseUrl:"",httpStreamUrl:""});if(v.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(Ey,{children:o.jsx(ye,{as:"h1",variant:"header-md",className:"text-neutral3 py-20 text-center font-medium",children:"Server not found"})});const a=`npx -y mcp-remote ${n}`;return o.jsxs(Ey,{isDivided:!0,children:[o.jsxs("div",{className:"mx-auto w-full max-w-2xl px-8 py-12",children:[o.jsx(ye,{as:"h1",variant:"header-md",className:"text-neutral6 pb-4 font-medium",children:t.name}),o.jsxs("div",{className:"flex items-center gap-1 pb-6",children:[o.jsx(cn,{icon:o.jsx(t7t,{className:"text-neutral6"}),className:"text-neutral4! rounded-r-sm",children:"Version"}),o.jsx(cn,{className:"text-neutral4! rounded-l-sm",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:"border-border1 bg-surface3 rounded-lg border p-4",children:[o.jsx(cn,{icon:o.jsx("span",{className:"text-accent1 mr-1 w-6 font-mono font-medium",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:"bg-surface4 rounded-lg px-2 py-1",children:r}),o.jsx("div",{className:"pt-1",children:o.jsx(Pa,{tooltip:"Copy HTTP Stream URL",content:r})})]})]}),o.jsxs("div",{className:"border-border1 bg-surface3 rounded-lg border p-4",children:[o.jsx(cn,{icon:o.jsx("span",{className:"text-accent1 mr-1 w-6 font-mono font-medium",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:"bg-surface4 rounded-lg px-2 py-1",children:n}),o.jsx("div",{className:"pt-1",children:o.jsx(Pa,{tooltip:"Copy SSE URL",content:n})})]})]}),o.jsxs("div",{className:"border-border1 bg-surface3 rounded-lg border p-4",children:[o.jsx(cn,{icon:o.jsx("span",{className:"text-accent1 mr-1 w-6 font-mono font-medium",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:"bg-surface4 rounded-lg px-2 py-1",children:a}),o.jsx("div",{className:"pt-1",children:o.jsx(Pa,{tooltip:"Copy Command Line Config",content:a})})]})]})]})]}),o.jsx("div",{className:"border-border1 h-full overflow-y-scroll border-l",children:o.jsx(jcs,{server:t})})]})},jcs=({server:e})=>{const{data:t={},isLoading:n}=Mzt(e);if(n)return null;const r=Object.keys(t);return o.jsxs("div",{className:"overflow-y-scroll p-5",children:[o.jsxs("div",{className:"text-neutral6 flex items-center gap-2",children:[o.jsx(qe,{size:"lg",className:"bg-surface4 rounded-md p-1",children:o.jsx(mC,{})}),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(Ncs,{tool:a,serverId:e.id},s)})})]})};function Tcs(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 Ncs=({tool:e,serverId:t})=>{const n=v.useRef(null),{Link:r,paths:s}=yn(),a=l8t[e.toolType||"tool"],i=Tcs(e._meta);return o.jsxs(zf,{onClick:()=>n.current?.click(),children:[o.jsx(n$t,{children:o.jsx(a,{className:"group-hover/entity:text-accent6"})}),o.jsxs(Uf,{children:[o.jsx(Bf,{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(cn,{className:"py-0 text-[10px]",children:"App"})]})}),o.jsx(rh,{children:e.description})]})]})},Ics=()=>{const{serverId:e}=Sr(),{data:t=[],isLoading:n}=DG(),r=t.find(s=>s.id===e);return o.jsx("div",{className:"h-full w-full overflow-hidden",children:o.jsx(Ecs,{isLoading:n,server:r})})};function Acs(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 Rcs=({toolId:e,serverId:t})=>{const{canExecute:n}=ul(),r=n("tools"),s=We(),{data:a,isLoading:i,error:l}=_Ne(t,e),{mutateAsync:c,isPending:u,data:d}=rQr(t,e),f=a?Acs(a._meta):void 0,{data:p}=mt({queryKey:["mcp-app-resource",t,f],queryFn:async()=>f?(await s.readMcpServerResource(t,f)).contents[0]?.text??null:null,enabled:!!f}),h=v.useCallback(async(y,b)=>await c(b),[c]);v.useEffect(()=>{if(l){const y=l instanceof Error?l.message:"Failed to load tool";Le.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:"mb-4 h-8 w-48"}),o.jsx(xt,{className:"h-32 w-full"})]});if(l)return null;if(!a)return o.jsx("div",{className:"px-6 py-12 text-center",children:o.jsx(ye,{variant:"header-md",className:"text-neutral3",children:"Tool not found"})});if(!r)return o.jsx("div",{className:"px-6 py-12 text-center",children:o.jsx(ye,{variant:"ui-sm",className:"text-neutral3",children:"You don't have permission to execute tools."})});let g;try{g=hm(fm(a.inputSchema))}catch(y){console.error("Error processing input schema:",y),Le.error("Failed to process tool input schema."),g=ks({})}return o.jsxs("div",{className:"flex flex-col gap-4",children:[p&&o.jsx("div",{className:"border-border1 border-b p-4",children:o.jsx($zt,{html:p,toolName:a.name??a.id,onToolCall:h})}),o.jsx(ANe,{executionResult:d,isExecutingTool:u,zodInputSchema:g,handleExecuteTool:m,toolDescription:a.description||"",toolId:a.id})]})},Pcs=()=>{const{serverId:e,toolId:t}=Sr(),{data:n,isLoading:r}=_Ne(e,t);return r||!n?null:o.jsx("div",{className:"h-full w-full overflow-y-auto",children:o.jsx(Rcs,{toolId:t,serverId:e})})},T7t=[{label:"Agent",entityType:"agent"},{label:"Workflow",entityType:"workflow_run"},{label:"Scorer",entityType:"scorer"},{label:"Ingest",entityType:"rag_ingestion"}],$N="rootEntityType",MN={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"},cQ=Object.keys(MN),EIe="mastra:metrics:saved-filters";function $cs(e){const t=zcs(e);try{localStorage.setItem(EIe,t.toString())}catch{}}function Mcs(){try{localStorage.removeItem(EIe)}catch{}}function N7t(){try{const e=localStorage.getItem(EIe);if(!e)return null;const t=new URLSearchParams(e);return t.toString()?t:null}catch{return null}}function Dcs(e){if(e.has($N))return!0;for(const t of cQ)if(e.has(MN[t]))return!0;return!1}function Lcs({availableTags:e,availableEntityNames:t,availableServiceNames:n,availableEnvironments:r,loading:s}){const a=[{id:"rootEntityType",label:"Primitive Type",kind:"pick-multi",searchable:!1,options:T7t.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 Fcs(e){const t=[],n=new Map([[$N,"rootEntityType"]]);for(const s of cQ)n.set(MN[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 zcs(e){const t=new URLSearchParams,n=e.getAll($N);for(const r of n)t.append($N,r);for(const r of cQ){const s=MN[r],a=e.getAll(s);for(const i of a)t.append(s,i)}return t}function Bcs(e,t){e.delete($N);for(const n of cQ)e.delete(MN[n]);for(const n of t){const r=n.fieldId==="rootEntityType"?$N:MN[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 Ucs="Any";function IXe(e){const t=e.trim();return t===""||t===Ucs}const Vcs=new Set(T7t.map(e=>e.entityType));function AXe(e){const t=e.trim();return Vcs.has(t)?t:void 0}function qcs(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=>!IXe(a));if(s.length===0)continue;if(r==="tags")t.tags=s;else if(r==="rootEntityType"){const a=s[0],i=a!==void 0?AXe(a):void 0;i&&(t.rootEntityType=i)}else t[r]=s[0]}else if(typeof n.value=="string"){if(IXe(n.value))continue;const s=n.value.trim();if(r==="rootEntityType"){const a=AXe(s);a&&(t.rootEntityType=a)}else t[r]=s}}return t}const I7t=[{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"}],Hcs=new Set(I7t.map(e=>e.value));function Wcs(e){return typeof e=="string"&&(Hcs.has(e)||e==="custom")}const A7t=v.createContext({datePreset:"24h",setDatePreset:()=>{},customRange:void 0,setCustomRange:()=>{},dateRangeLabel:"Last 24 hours",filterTokens:[],setFilterTokens:()=>{},dimensionalFilter:{},dimensionalFilterKey:"{}",tracesBasePath:void 0,logsBasePath:void 0});function uQ(){return v.useContext(A7t)}function Zcs(e,t){return e!=="custom"?I7t.find(n=>n.value===e)?.label??e:t?.from?t.to?`${nr(t.from,"MMM d, yyyy")} – ${nr(t.to,"MMM d, yyyy")}`:nr(t.from,"MMM d, yyyy"):"Custom range"}function Gcs({children:e,preset:t,filterTokens:n,onPresetChange:r,onFilterTokensChange:s,customRange:a,onCustomRangeChange:i,tracesBasePath:l,logsBasePath:c}){const u=v.useMemo(()=>JSON.stringify(n),[n]),d=v.useMemo(()=>n,[u]),f=v.useMemo(()=>qcs(d),[d]),p=v.useMemo(()=>JSON.stringify(f),[f]),h=Zcs(t,a),m=v.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(A7t.Provider,{value:m,children:e})}const Qcs=["last-24h","last-3d","last-7d","last-14d","last-30d","custom"];function Ycs(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 Kcs(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 Xcs(){const{datePreset:e,setDatePreset:t,customRange:n,setCustomRange:r}=uQ(),s=v.useRef(e);s.current=e;const a=v.useRef(n);return a.current=n,o.jsx(K3,{preset:Ycs(e),onPresetChange:i=>{const l=Kcs(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:Qcs})}const Cbe=1440*60*1e3,Jcs={"24h":Cbe,"3d":4320*60*1e3,"7d":10080*60*1e3,"14d":336*60*60*1e3,"30d":720*60*60*1e3};function eus(e,t,n){if(e!=="custom"){const r=Jcs[e]??Cbe;return{start:new Date(n-r),end:new Date(n)}}return{start:t?.from??new Date(n-Cbe),end:t?.to??new Date(n)}}function Rm(){const{datePreset:e,customRange:t,dimensionalFilter:n,dimensionalFilterKey:r}=uQ(),s=v.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=v.useMemo(()=>eus(e,t,i),[e,t,i]),c=v.useMemo(()=>({timestamp:l,...n}),[l,r]),u=v.useMemo(()=>`${a}|${r}`,[a,r]);return{datePreset:e,customRange:t,timestamp:l,filters:c,dimensionalFilter:n,filterKey:u}}function R7t(){const e=We(),{filters:t,filterKey:n}=Rm();return mt({queryKey:["metrics","agent-runs-kpi",n],queryFn:()=>e.getMetricAggregate({name:["mastra_agent_duration_ms"],aggregation:"count",filters:t,comparePeriod:"previous_period"})})}const tus=new Set(["ObservabilityStorageClickhouseVNext","ObservabilityStorageDuckDB","ObservabilityInMemory","ObservabilitySpanner","ObservabilityStoragePostgresVNext"]),nus=()=>{const{data:e,isLoading:t}=M4(),n=e?.observabilityStorageType;return{supportsMetrics:e?.observabilityStorageCapabilities?.metrics??(n?tus.has(n):!1),isInMemory:n==="ObservabilityInMemory",isLoading:t}};function NL({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(AEn,{})})}function rus({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(hjn,{})})}const sus=[{dataKey:"p50",label:"p50",color:Bp.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:Bp.yellow,aggregate:e=>({value:e.length>0?`${Math.round(e.reduce((t,n)=>t+n.p95,0)/e.length)}`:"0",suffix:"avg ms"})}];function aus(e){return e==="agents"||e==="workflows"||e==="tools"}function Aae({data:e,onPointClick:t}){return e.length===0?o.jsx(Ht.NoData,{message:"No latency data yet"}):o.jsx(PV,{data:e,series:sus,onPointClick:t?n=>{const r=n;typeof r?.tsMs=="number"&&Number.isFinite(r.tsMs)&&t(r)}:void 0})}function ius({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]=v.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),g=e?Object.values(e).filter(Array.isArray).flat().map(b=>b.p50).filter(b=>typeof b=="number"):[],y=g.length>0?`${Math.round(g.reduce((b,x)=>b+x,0)/g.length)}ms`:"—";return o.jsxs(Ht,{children:[o.jsxs(Ht.TopBar,{children:[o.jsx(Ht.TitleAndDescription,{title:"Latency",description:"Hourly p50 and p95 latency."}),m&&o.jsx(Ht.Summary,{value:y,label:"Avg p50"}),h?o.jsx(Ht.Actions,{children:h}):null]}),t?o.jsx(Ht.Loading,{}):n?o.jsx(Ht.Error,{message:"Failed to load latency data"}):o.jsx(Ht.Content,{children:m?o.jsxs(Dc,{value:p,onValueChange:b=>{aus(b)&&c[b]&&f(b)},defaultTab:u,className:"overflow-visible",children:[o.jsxs(Mc,{children:[o.jsx(Rr,{value:"agents",disabled:!a,disabledTooltip:"No agent latency data for this period",children:"Agents"}),o.jsx(Rr,{value:"workflows",disabled:!i,disabledTooltip:"No workflow latency data for this period",children:"Workflows"}),o.jsx(Rr,{value:"tools",disabled:!l,disabledTooltip:"No tool latency data for this period",children:"Tools"})]}),o.jsx(Xr,{value:"agents",children:o.jsx(Aae,{data:e.agentData,onPointClick:r?b=>r("agents",b):void 0})}),o.jsx(Xr,{value:"workflows",children:o.jsx(Aae,{data:e.workflowData,onPointClick:r?b=>r("workflows",b):void 0})}),o.jsx(Xr,{value:"tools",children:o.jsx(Aae,{data:e.toolData,onPointClick:r?b=>r("tools",b):void 0})})]}):o.jsx(Ht.NoData,{message:"No latency data yet"})})]})}function ous(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 lus(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 P7t(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=ous(s);l&&e.set(t,l)}function Po(e,t,n){typeof n=="string"&&n.length>0&&e.set(t,n)}function $7t(e,t,n){if(!(!Array.isArray(n)||n.length===0))for(const r of n)r&&e.append(t,r)}function RXe({preset:e,customRange:t,dashboardFilter:n,scope:r,tracesBasePath:s="/observability"}){const a=new URLSearchParams;a.set(Ow,"branches"),P7t(a,_w,Cw,Ew,e,t,r.window);const i=r.rootEntityType??n.rootEntityType;i&&a.set(zx,i),r.status&&a.set(Bx,r.status),Po(a,Tl.entityName,r.entityName??n.entityName),Po(a,Tl.threadId,r.threadId??n.threadId),Po(a,Tl.resourceId,r.resourceId??n.resourceId),Po(a,Tl.entityId,n.entityId),Po(a,Tl.runId,n.runId),Po(a,Tl.sessionId,n.sessionId),Po(a,Tl.requestId,n.requestId),Po(a,Tl.userId,n.userId),Po(a,Tl.organizationId,n.organizationId),Po(a,Tl.experimentId,n.experimentId),Po(a,Tl.serviceName,n.serviceName),Po(a,Tl.environment,n.environment),$7t(a,Tl.tags,n.tags);const l=a.toString();return l?`${s}?${l}`:s}function cus({preset:e,customRange:t,dashboardFilter:n,scope:r,logsBasePath:s="/logs"}){const a=new URLSearchParams;P7t(a,Kb,Xb,Jb,e,t,r.window);const i=r.rootEntityType??n.rootEntityType;i&&a.set(Ux,i),Po(a,Nl.entityName,r.entityName??n.entityName),Po(a,Nl.threadId,r.threadId??n.threadId),Po(a,Nl.resourceId,r.resourceId??n.resourceId),Po(a,Nl.runId,n.runId),Po(a,Nl.sessionId,n.sessionId),Po(a,Nl.requestId,n.requestId),Po(a,Nl.userId,n.userId),Po(a,Nl.organizationId,n.organizationId),Po(a,Nl.experimentId,n.experimentId),Po(a,Nl.serviceName,n.serviceName),Po(a,Nl.environment,n.environment),$7t(a,Nl.tags,n.tags),r.status==="error"&&a.append(Nl.level,"error");const l=a.toString();return l?`${s}?${l}`:s}function XI(){const{datePreset:e,customRange:t,dimensionalFilter:n,tracesBasePath:r,logsBasePath:s}=uQ(),a=v.useCallback((c={})=>RXe({preset:e,customRange:t,dashboardFilter:n,scope:c,tracesBasePath:r}),[e,t,n,r]),i=v.useCallback((c={})=>cus({preset:e,customRange:t,dashboardFilter:n,scope:c,logsBasePath:s}),[e,t,n,s]),l=v.useCallback((c,u,d)=>{const f=lus(u,d);return RXe({preset:e,customRange:t,dashboardFilter:n,scope:{...c,window:f},tracesBasePath:r})},[e,t,n,r]);return{getTracesHref:a,getLogsHref:i,getBucketTracesHref:l}}const M7t="1h";async function Rae(e,t,n){const r=await e.getMetricPercentiles({name:t,percentiles:[.5,.95],interval:M7t,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 uus(){const e=We(),{filters:t,filterKey:n}=Rm();return mt({queryKey:["metrics","latency",n],queryFn:async()=>{const[r,s,a]=await Promise.all([Rae(e,"mastra_agent_duration_ms",t),Rae(e,"mastra_workflow_duration_ms",t),Rae(e,"mastra_tool_duration_ms",t)]);return{agentData:r,workflowData:s,toolData:a,interval:M7t}}})}const PXe={agents:lu.AGENT,workflows:lu.WORKFLOW_RUN,tools:lu.TOOL};function dus(){const{data:e,isLoading:t,isError:n}=uus(),{getTracesHref:r,getBucketTracesHref:s}=XI(),{Link:a}=yn(),i=qs();return o.jsx(ius,{data:e,isLoading:t,isError:n,onPointClick:(l,c)=>{Number.isFinite(c.tsMs)&&i(s({rootEntityType:PXe[l]},c.tsMs,"1h"))},actions:l=>o.jsx(NL,{href:r({rootEntityType:PXe[l]}),LinkComponent:a})})}function fus(e){return e==="threads"||e==="resources"}function Pae(e){return e.length<=12?e:`${e.slice(0,6)}…${e.slice(-4)}`}function pus({threads:e,resources:t,getThreadRowHref:n,getResourceRowHref:r,actions:s,LinkComponent:a}){const[i,l]=v.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,g=typeof s=="function"?s(i):s;return o.jsxs(Ht,{children:[o.jsxs(Ht.TopBar,{children:[o.jsx(Ht.TitleAndDescription,{title:"Memory",description:"Resource and Thread consumption"}),i==="threads"&&d&&o.jsx(Ht.Summary,{value:p.toLocaleString(),label:"Total runs"}),i==="resources"&&f&&o.jsx(Ht.Summary,{value:h.toLocaleString(),label:"Total threads"}),g?o.jsx(Ht.Actions,{children:g}):null]}),m.isLoading?o.jsx(Ht.Loading,{}):m.isError?o.jsx(Ht.Error,{message:"Failed to load memory data"}):o.jsx(Ht.Content,{children:o.jsxs(Dc,{defaultTab:"threads",value:i,onValueChange:y=>{fus(y)&&l(y)},className:"grid h-full grid-rows-[auto_1fr] overflow-y-auto",children:[o.jsxs(Mc,{children:[o.jsx(Rr,{value:"threads",children:"Threads"}),o.jsx(Rr,{value:"resources",children:"Resources"})]}),o.jsx(Xr,{value:"threads",children:d?o.jsxs(ve,{columns:"auto auto auto auto auto",...xbe,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),x=o.jsxs(o.Fragment,{children:[o.jsx(ve.RowHeaderCell,{height:"compact",className:"text-ui-sm",children:Pae(y.threadId)}),o.jsx(ve.NumberCell,{children:y.resourceId?Pae(y.resourceId):"—"}),o.jsx(ve.NumberCell,{highlight:!0,children:y.runs.toLocaleString()}),o.jsx(ve.NumberCell,{children:y.tokens>0?Oc(y.tokens):"—"}),o.jsx(ve.NumberCell,{children:y.cost!=null?jg(y.cost,y.costUnit):"—"})]});return b?o.jsx(ve.RowLink,{to:b,LinkComponent:a,children:x},y.key):o.jsx(ve.RowStatic,{children:x},y.key)})]}):o.jsx(Ht.NoData,{message:"No thread activity yet"})}),o.jsx(Xr,{value:"resources",children:f?o.jsxs(ve,{columns:"auto auto auto auto",...xbe,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),x=o.jsxs(o.Fragment,{children:[o.jsx(ve.RowHeaderCell,{height:"compact",className:"text-ui-sm",children:Pae(y.resourceId)}),o.jsx(ve.NumberCell,{highlight:!0,children:y.threadCount.toLocaleString()}),o.jsx(ve.NumberCell,{children:y.tokens>0?Oc(y.tokens):"—"}),o.jsx(ve.NumberCell,{children:y.cost!=null?jg(y.cost,y.costUnit):"—"})]});return b?o.jsx(ve.RowLink,{to:b,LinkComponent:a,children:x},y.key):o.jsx(ve.RowStatic,{children:x},y.key)})]}):o.jsx(Ht.NoData,{message:"No resource activity yet"})})]})})]})}function IL(e,t,n){const r=e.get(t);if(r!==void 0)return r;const s=n();return e.set(t,s),s}const $ae=20;function hus(){const e=We(),{filters:t,filterKey:n}=Rm();return mt({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:$ae}),e.getMetricBreakdown({...r,name:["mastra_model_total_input_tokens"],aggregation:"sum",limit:$ae}),e.getMetricBreakdown({...r,name:["mastra_model_total_output_tokens"],aggregation:"sum",limit:$ae})]),l=new Map,c=d=>IL(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 Mae=20;function mus(){const e=We(),{filters:t,filterKey:n}=Rm();return mt({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:Mae}),e.getMetricBreakdown({...r,name:["mastra_model_total_input_tokens"],aggregation:"sum",limit:Mae}),e.getMetricBreakdown({...r,name:["mastra_model_total_output_tokens"],aggregation:"sum",limit:Mae})]),l=new Map,c=d=>IL(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 gus(){const e=hus(),t=mus(),{getTracesHref:n}=XI(),{Link:r}=yn();return o.jsx(pus,{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 AL({label:e,value:t,prevValue:n,changePct:r,isLoading:s,isError:a}){const i=t!=null;return o.jsxs(es,{children:[o.jsx(es.Label,{children:e}),o.jsx(es.Value,{className:i?void 0:"invisible",children:i?t:"—"}),a?o.jsx(es.Error,{}):s?o.jsx(es.Loading,{}):i?r!=null?o.jsx(es.Change,{changePct:r,prevValue:n}):o.jsx(es.NoChange,{}):o.jsx(es.NoData,{})]})}function vus(){const e=We(),{filters:t,filterKey:n}=Rm();return mt({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 yus(){const e=We(),{filters:t,filterKey:n}=Rm();return mt({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 bus(){const e=We(),{filters:t,filterKey:n}=Rm();return mt({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 xus(){const e=We(),{filters:t,filterKey:n}=Rm();return mt({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 wus(){const{data:e,isLoading:t,isError:n}=R7t();return o.jsx(AL,{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 Sus(){const{data:e,isLoading:t,isError:n}=bus();return o.jsx(AL,{label:"Total Model Cost",value:e?.cost!=null?jg(e.cost,e.costUnit):null,prevValue:e?.previousCost!=null?jg(e.previousCost,e.costUnit):void 0,changePct:e?.costChangePercent??null,isLoading:t,isError:n})}function kus(){const{data:e,isLoading:t,isError:n}=xus();return o.jsx(AL,{label:"Total Tokens",value:e?.value!=null?Oc(e.value):null,prevValue:e?.previousValue!=null?Oc(e.previousValue):void 0,changePct:e?.changePercent??null,isLoading:t,isError:n})}function Ous(){const{data:e,isLoading:t,isError:n}=yus();return o.jsx(AL,{label:"Total Threads",value:e?.value!=null?Oc(e.value):null,prevValue:e?.previousValue!=null?Oc(e.previousValue):void 0,changePct:e?.changePercent??null,isLoading:t,isError:n})}function _us(){const{data:e,isLoading:t,isError:n}=vus();return o.jsx(AL,{label:"Total Resources",value:e?.value!=null?Oc(e.value):null,prevValue:e?.previousValue!=null?Oc(e.previousValue):void 0,changePct:e?.changePercent??null,isLoading:t,isError:n})}function Cus({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=>Eus(f,a));return o.jsxs("div",{className:X("grid grid-cols-[1fr_auto] gap-3 items-start"),children:[o.jsx(rIe,{fields:a,tokens:i,onTokensChange:l,disabled:s,autoFocusFieldId:c}),u&&o.jsx(tIe,{disabled:s,onClear:d?e:void 0,onRemoveAll:t,onSave:n,onRemoveSaved:r})]})}function Eus(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 jus({rows:e,isLoading:t,isError:n,getRowHref:r,actions:s,LinkComponent:a}){const i=!!e&&e.length>0;return o.jsxs(Ht,{children:[o.jsxs(Ht.TopBar,{children:[o.jsx(Ht.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?jg(l):"—":c.size===1?u=l>0?jg(l,[...c][0]):"—":u="Mixed",o.jsx(Ht.Summary,{value:u,label:"Total cost"})})(),s?o.jsx(Ht.Actions,{children:s}):null]}),t?o.jsx(Ht.Loading,{}):n?o.jsx(Ht.Error,{message:"Failed to load model usage data"}):o.jsx(Ht.Content,{children:i?o.jsxs(ve,{columns:"auto auto auto auto auto auto",...xbe,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?jg(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(Ht.NoData,{message:"No model usage data yet"})})]})}function Tus(){const e=We(),{filters:t,filterKey:n}=Rm();return mt({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=>IL(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:Oc(f.input),output:Oc(f.output),cacheRead:Oc(f.cacheRead),cacheWrite:Oc(f.cacheWrite),cost:f.cost,costUnit:f.costUnit})).sort((d,f)=>d.model.localeCompare(f.model))}})}function Nus(){const{data:e,isLoading:t,isError:n}=Tus(),{getTracesHref:r}=XI(),{Link:s}=yn();return o.jsx(jus,{rows:e,isLoading:t,isError:n,LinkComponent:s,getRowHref:()=>r({rootEntityType:lu.AGENT}),actions:o.jsx(NL,{href:r({rootEntityType:lu.AGENT}),LinkComponent:s})})}function Ius(e){return e==="tokens"||e==="cost"}function Aus({data:e,isLoading:t,isError:n,getRowHref:r,actions:s,LinkComponent:a}){const[i,l]=v.useState("tokens"),c=e??[],u=c.length>0,d=c.reduce((b,x)=>b+x.total,0),f=c.filter(b=>b.cost!=null&&b.cost>0),p=new Set(f.map(b=>b.costUnit??"usd")),h=p.size<=1,m=h?[...p][0]??"usd":null,g=h?f.reduce((b,x)=>b+(x.cost??0),0):0,y=h&&g>0;return o.jsxs(Ht,{children:[o.jsxs(Ht.TopBar,{children:[o.jsx(Ht.TitleAndDescription,{title:"Token Usage by Agent",description:"Token consumption grouped by agent."}),u&&(i==="cost"&&y?o.jsx(Ht.Summary,{value:jg(g,m),label:"Total cost"}):o.jsx(Ht.Summary,{value:Oc(d),label:"Total tokens"})),u&&s?o.jsx(Ht.Actions,{children:s}):null]}),t?o.jsx(Ht.Loading,{}):n?o.jsx(Ht.Error,{message:"Failed to load token usage data"}):o.jsx(Ht.Content,{children:u?o.jsxs(Dc,{defaultTab:"tokens",value:i,onValueChange:b=>{Ius(b)&&l(b)},className:"grid h-full grid-rows-[auto_1fr] overflow-y-auto",children:[o.jsxs(Mc,{children:[o.jsx(Rr,{value:"tokens",children:"Tokens"}),o.jsx(Rr,{value:"cost",children:"Cost"})]}),o.jsx(Xr,{value:"tokens",children:o.jsx(PN,{LinkComponent:a,data:c.map(b=>({name:b.name,values:[b.input,b.output],href:r?.(b)})),segments:[{label:"Input",color:Bp.blueDark},{label:"Output",color:Bp.blue}],maxVal:Math.max(...c.map(b=>b.input+b.output)),fmt:Oc})}),o.jsx(Xr,{value:"cost",children:y?o.jsx(PN,{LinkComponent:a,data:f.slice().sort((b,x)=>(x.cost??0)-(b.cost??0)).map(b=>({name:b.name,values:[b.cost],href:r?.(b)})),segments:[{label:"Cost",color:Bp.purple}],maxVal:Math.max(...f.map(b=>b.cost??0)),fmt:b=>jg(b,m)}):o.jsx(Ht.NoData,{message:"No cost data yet"})})]}):o.jsx(Ht.NoData,{message:"No token usage data yet"})})]})}function Rus(){const e=We(),{filters:t,filterKey:n}=Rm();return mt({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=>IL(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 Pus(){const{data:e,isLoading:t,isError:n}=Rus(),{getTracesHref:r}=XI(),{Link:s}=yn();return o.jsx(Aus,{data:e,isLoading:t,isError:n,LinkComponent:s,getRowHref:a=>r({rootEntityType:lu.AGENT,entityName:a.name}),actions:o.jsx(NL,{href:r({rootEntityType:lu.AGENT}),LinkComponent:s})})}function Ebe(e,t=Oc){return n=>({value:t(n.reduce((r,s)=>r+(typeof s[e]=="number"?s[e]:0),0))})}const $us=[{dataKey:"input",label:"Input tokens",color:Bp.blue,aggregate:Ebe("input")},{dataKey:"output",label:"Output tokens",color:Bp.yellow,aggregate:Ebe("output")}];function Mus(e){return e==="tokens"||e==="cost"}function Dus({data:e,interval:t="1d",isLoading:n,isError:r,actions:s}){const[a,i]=v.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),g=m?[...h][0]??null:null,y=m?f.reduce((k,_)=>k+(_.cost??0),0):0,b=m&&y>0,x=t==="1h"?"Input and output tokens per hour.":"Input and output tokens per day.",w=[{dataKey:"cost",label:"Cost",color:Bp.purple,aggregate:Ebe("cost",k=>jg(k,g))}];return o.jsxs(Ht,{children:[o.jsxs(Ht.TopBar,{children:[o.jsx(Ht.TitleAndDescription,{title:"Token usage over time",description:x}),u&&(a==="cost"&&b?o.jsx(Ht.Summary,{value:jg(y,g),label:"Total cost"}):o.jsx(Ht.Summary,{value:Oc(d),label:"Total tokens"})),u&&s?o.jsx(Ht.Actions,{children:s}):null]}),n?o.jsx(Ht.Loading,{}):r?o.jsx(Ht.Error,{message:"Failed to load token usage timeline"}):o.jsx(Ht.Content,{children:u?o.jsxs(Dc,{defaultTab:"tokens",value:a,onValueChange:k=>{Mus(k)&&i(k)},className:"overflow-visible",children:[o.jsxs(Mc,{children:[o.jsx(Rr,{value:"tokens",children:"Tokens"}),o.jsx(Rr,{value:"cost",children:"Cost"})]}),o.jsx(Xr,{value:"tokens",children:o.jsx(PV,{data:c,series:$us})}),o.jsx(Xr,{value:"cost",children:b?o.jsx(PV,{data:p,series:w}):o.jsx(Ht.NoData,{message:"No cost data yet"})})]}):o.jsx(Ht.NoData,{message:"No token usage data yet"})})]})}function Lus(e){return e==="24h"?"1h":"1d"}function Fus(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 $Xe(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 zus(e){return e.cost==null||e.hasUnknownCostUnit||e.costUnits.size!==1?null:[...e.costUnits][0]??null}function Bus(){const e=We(),{datePreset:t,filters:n,filterKey:r}=Rm(),s=Lus(t);return mt({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 $Xe(l,a.series[0],"input"),$Xe(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:Fus(d,s),tsMs:u.tsMs,input:u.input,output:u.output,total:u.input+u.output,cost:u.cost,costUnit:zus(u)}}),interval:s}}})}function Uus(){const{data:e,isLoading:t,isError:n}=Bus(),{getTracesHref:r}=XI(),{Link:s}=yn();return o.jsx(Dus,{data:e?.data,interval:e?.interval,isLoading:t,isError:n,actions:o.jsx(NL,{href:r(),LinkComponent:s})})}function Dae({data:e,rowHrefs:t,errorHrefs:n,LinkComponent:r}){return o.jsx(PN,{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:Bp.blueDark},{label:"Errors",color:Bp.pink}],maxVal:Math.max(...e.map(s=>s.completed+s.errors)),fmt:Oc})}function Vus({data:e,isLoading:t,isError:n,getRowHref:r,getErrorSegmentHref:s,actions:a,LinkComponent:i}){const[l,c]=v.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,g)=>m+g.completed+g.errors,0):0,p=m=>r?g=>r(m,g):void 0,h=m=>s?g=>s(m,g):void 0;return o.jsxs(Ht,{children:[o.jsxs(Ht.TopBar,{children:[o.jsx(Ht.TitleAndDescription,{title:"Trace Volume",description:"Runs and call counts."}),d&&o.jsx(Ht.Summary,{value:Oc(f),label:"Total runs"}),u?o.jsx(Ht.Actions,{children:u}):null]}),t?o.jsx(Ht.Loading,{}):n?o.jsx(Ht.Error,{message:"Failed to load trace volume data"}):o.jsx(Ht.Content,{children:d?o.jsxs(Dc,{value:l,onValueChange:c,defaultTab:"agents",className:"grid h-full grid-rows-[auto_1fr] overflow-y-auto",children:[o.jsxs(Mc,{children:[o.jsx(Rr,{value:"agents",children:"Agents"}),o.jsx(Rr,{value:"workflows",children:"Workflows"}),o.jsx(Rr,{value:"tools",children:"Tools"})]}),o.jsx(Xr,{value:"agents",children:e.agentData.length>0?o.jsx(Dae,{data:e.agentData,rowHrefs:p("agents"),errorHrefs:h("agents"),LinkComponent:i}):o.jsx(Ht.NoData,{message:"No agent data yet"})}),o.jsx(Xr,{value:"workflows",children:e.workflowData.length>0?o.jsx(Dae,{data:e.workflowData,rowHrefs:p("workflows"),errorHrefs:h("workflows"),LinkComponent:i}):o.jsx(Ht.NoData,{message:"No workflow data yet"})}),o.jsx(Xr,{value:"tools",children:e.toolData.length>0?o.jsx(Dae,{data:e.toolData,rowHrefs:p("tools"),errorHrefs:h("tools"),LinkComponent:i}):o.jsx(Ht.NoData,{message:"No tool data yet"})})]}):o.jsx(Ht.NoData,{message:"No trace volume data yet"})})]})}async function Lae(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=IL(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 qus(){const e=We(),{filters:t,filterKey:n}=Rm();return mt({queryKey:["metrics","trace-volume",n],queryFn:async()=>{const[r,s,a]=await Promise.all([Lae(e,"mastra_agent_duration_ms",t),Lae(e,"mastra_workflow_duration_ms",t),Lae(e,"mastra_tool_duration_ms",t)]);return{agentData:r,workflowData:s,toolData:a}}})}const Bz={agents:lu.AGENT,workflows:lu.WORKFLOW_RUN,tools:lu.TOOL};function Hus(){const{data:e,isLoading:t,isError:n}=qus(),{getTracesHref:r,getLogsHref:s}=XI(),{Link:a}=yn();return o.jsx(Vus,{data:e,isLoading:t,isError:n,LinkComponent:a,getRowHref:(i,l)=>r({rootEntityType:Bz[i],entityName:l.name}),getErrorSegmentHref:(i,l)=>l.errors>0?s({rootEntityType:Bz[i],entityName:l.name,status:"error"}):void 0,actions:i=>o.jsxs(o.Fragment,{children:[o.jsx(NL,{href:r({rootEntityType:Bz[i]}),LinkComponent:a}),o.jsx(rus,{href:s({rootEntityType:Bz[i],status:"error"}),LinkComponent:a})]})})}const Fae="period",Uz="dateFrom",Vz="dateTo";function Wus(){const[e,t]=Ri(),n=e.get(Fae),r=Wcs(n)?n:"24h",s=v.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(Uz)),p=d(e.get(Vz));if(!(!f&&!p))return{from:f,to:p}},[r,e.toString()]),a=v.useMemo(()=>Fcs(e),[e.toString()]),i=v.useCallback(d=>{t(f=>{const p=new URLSearchParams(f);return d==="24h"?p.delete(Fae):p.set(Fae,d),d!=="custom"&&(p.delete(Uz),p.delete(Vz)),p},{replace:!0})},[t]),l=v.useCallback(d=>{t(f=>{const p=new URLSearchParams(f);return d?.from?p.set(Uz,d.from.toISOString()):p.delete(Uz),d?.to?p.set(Vz,d.to.toISOString()):p.delete(Vz),p},{replace:!0})},[t]),c=v.useCallback(d=>{t(f=>{const p=new URLSearchParams(f);return Bcs(p,d),p},{replace:!0})},[t]),u=v.useRef(!1);return v.useEffect(()=>{if(u.current||(u.current=!0,Dcs(e)))return;const d=N7t();d&&t(f=>{const p=new URLSearchParams(f);for(const[h,m]of d)p.append(h,m);return p},{replace:!0})},[]),o.jsx(Gcs,{preset:r,filterTokens:a,onPresetChange:i,onFilterTokensChange:c,customRange:s,onCustomRangeChange:l,children:o.jsx(Zus,{})})}function Zus(){const[e]=Ri(),{error:t,isLoading:n}=R7t(),{filterTokens:r,setFilterTokens:s}=uQ(),[a,i]=v.useState(),{supportsMetrics:l,isInMemory:c,isLoading:u}=nus(),{data:d,isLoading:f}=hIe(),{data:p,isLoading:h}=dIe(),{data:m,isLoading:g}=pIe(),{data:y,isLoading:b}=fIe(),x=v.useMemo(()=>Lcs({availableTags:d??[],availableEntityNames:p??[],availableServiceNames:m??[],availableEnvironments:y??[],loading:{tags:f,entityNames:h,serviceNames:g,environments:b}}),[d,p,m,y,f,h,g,b]),[w,k]=v.useState(()=>N7t()!==null),_=v.useCallback(()=>{$cs(e),k(!0),Le.success("Filters setting for Metrics saved")},[e]),C=v.useCallback(()=>{Mcs(),k(!1),Le.success("Filters setting for Metrics cleared up")},[]),j=v.useCallback(()=>{s([])},[s]),E=v.useCallback(()=>{const N=r.map(I=>{const A=x.find(R=>R.id===I.fieldId);return A?A.kind==="text"?{fieldId:I.fieldId,value:""}:A.kind==="pick-multi"?A.multi?{fieldId:I.fieldId,value:[]}:{fieldId:I.fieldId,value:"Any"}:A.kind==="multi-select"?{fieldId:I.fieldId,value:[]}:I:I});s(N)},[x,r,s]);return t&&ys(t)?o.jsx(lr,{children:o.jsx(Hs,{})}):t&&xs(t)?o.jsx(lr,{children:o.jsx(Ms,{resource:"metrics"})}):t?o.jsx(lr,{children:o.jsx(qi,{title:"Failed to load metrics",message:t.message})}):o.jsxs(Ft,{width:"wide",height:"full",children:[o.jsxs(Ft.TopArea,{children:[o.jsx(Ft.Row,{children:o.jsxs(Ft.Column,{className:"flex flex-wrap items-start justify-start gap-2",children:[o.jsx(Xcs,{}),o.jsx(sIe,{fields:x,tokens:r,onTokensChange:s,disabled:n,onStartTextFilter:i})]})}),o.jsx(Cus,{isLoading:n,filterFields:x,filterTokens:r,onFilterTokensChange:s,onClear:E,onRemoveAll:j,onSave:_,onRemoveSaved:w?C:void 0,autoFocusFilterFieldId:a})]}),u?null:l?o.jsxs("div",{className:"grid content-start gap-8 pb-10",children:[c&&o.jsx(Cn,{variant:"info",title:"Metrics are not persisted",children:o.jsx(Cn.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(wbe,{children:[o.jsx(wus,{}),o.jsx(Sus,{}),o.jsx(kus,{}),o.jsx(Ous,{}),o.jsx(_us,{})]}),o.jsxs(wbe,{children:[o.jsx(Nus,{}),o.jsx(Pus,{}),o.jsx(Uus,{}),o.jsx(gus,{}),o.jsx(Hus,{}),o.jsx(dus,{})]})]}):o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Lr,{iconSlot:o.jsx(Rf,{}),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(Sa,{})]})})})]})}const Gus=50;function Qus(){const{paths:e}=yn(),{isCmsAvailable:t}=X1(),[n,r]=v.useState(""),[s,a]=v.useState(0),{data:i,isLoading:l,error:c,isPlaceholderData:u}=u8t({page:s,perPage:Gus}),d=i?.promptBlocks??[],f=i?.hasMore??!1,p=v.useCallback(()=>{u||a(g=>g+1)},[u]),h=v.useCallback(()=>{u||a(g=>Math.max(0,g-1))},[u]),m=v.useCallback(g=>{r(g),a(0)},[]);return c&&ys(c)?o.jsx(lr,{children:o.jsx(Hs,{})}):c&&xs(c)?o.jsx(lr,{children:o.jsx(Ms,{resource:"prompt blocks"})}):c?o.jsx(lr,{children:o.jsx(qi,{title:"Failed to load prompt blocks",message:c.message})}):d.length===0&&!l&&s===0?o.jsx(lr,{children:o.jsx(cJr,{})}):o.jsxs(Ft,{children:[o.jsx(Ft.TopArea,{children:o.jsxs(Ft.Row,{align:"center",stack:"responsive",children:[o.jsx("div",{className:"max-w-120 flex-1",children:o.jsx(Lf,{onSearch:m,label:"Filter prompts",placeholder:"Filter by name or description"})}),t&&o.jsxs(ce,{as:Fa,to:e.cmsPromptBlockCreateLink(),variant:"primary",className:"shrink-0",children:[o.jsx(Zr,{}),"Create Prompt"]})]})}),o.jsx(lJr,{promptBlocks:d,isLoading:l,search:n,currentPage:s,hasMore:f,onNextPage:p,onPrevPage:h})]})}function Yus(){return o.jsx(Ft,{width:"narrow",children:o.jsx(Ft.MainArea,{children:o.jsx(BQr,{children:o.jsx(Kye,{})})})})}const Kus=[{title:"Mastra APIs",description:"Explore and test the available REST API endpoints with the interactive Swagger UI.",icon:tWt,href:"/swagger-ui",external:!1},{title:"Documentation",description:"Read the official Mastra documentation for guides, references, and tutorials.",icon:fit,href:"https://mastra.ai/en/docs",external:!0},{title:"Github",description:"Browse the source code, report issues, and contribute to the Mastra project.",icon:Sa,href:"https://github.com/mastra-ai/mastra",external:!0},{title:"Community",description:"Join the Mastra Discord community for help, discussion, and collaboration.",icon:pT,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:xit,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:pit,href:"https://mastra.ai/contact?ref=studio",external:!0}];function Xus(){return o.jsx(Ft,{width:"narrow",children:o.jsx(Ft.MainArea,{children:o.jsx("div",{className:"grid max-w-3xl grid-cols-1 gap-4 sm:grid-cols-2",children:Kus.map(e=>o.jsxs("a",{href:e.href,...e.external?{target:"_blank",rel:"noreferrer"}:{},className:"group border-border1 bg-surface2 hover:border-accent1 hover:bg-surface3 flex flex-col gap-3 rounded-lg border p-5 transition-colors",children:[o.jsxs("div",{className:"flex items-center gap-2.5",children:[o.jsx(e.icon,{className:"text-icon3 group-hover:text-accent1 h-5 w-5 transition-colors"}),o.jsx("span",{className:"text-ui-md text-text1 font-medium",children:e.title}),e.external&&o.jsx(Sa,{className:"text-icon3 ml-auto h-3.5 w-3.5 opacity-0 transition-opacity group-hover:opacity-100"})]}),o.jsx("p",{className:"text-ui-sm text-text3 leading-relaxed",children:e.description})]},e.href))})})})}function Jus(){const{data:e={},isLoading:t,error:n}=lh(),[r,s]=v.useState(""),[a,i]=v.useState("all");if(n&&ys(n))return o.jsx(lr,{children:o.jsx(Hs,{})});if(n&&xs(n))return o.jsx(lr,{children:o.jsx(Ms,{resource:"scorers"})});if(n)return o.jsx(lr,{children:o.jsx(qi,{title:"Failed to load scorers",message:n.message})});if(Object.keys(e).length===0&&!t)return o.jsx(lr,{children:o.jsx(gKr,{})});const l=a!=="all"||r!=="",c=()=>{s(""),i("all")};return o.jsxs(Ft,{children:[o.jsx(Ft.TopArea,{children:o.jsx(yKr,{search:r,onSearchChange:s,sourceFilter:a,onSourceFilterChange:i,onReset:c,hasActiveFilters:l})}),o.jsx(mKr,{scorers:e,isLoading:t,search:r,sourceFilter:a})]})}function eds(){const{scorerId:e}=Sr(),[t,n]=Ri(),r=t.get("scoreId")??void 0,[s,a]=v.useState(r),[i,l]=v.useState({value:"all",label:"All Entities",type:"ALL"}),{scorer:c,error:u}=WYr(e),{data:d={},isLoading:f,error:p}=Tm(),{isLoading:h,error:m}=Gy(),{data:g=[],isLoading:y,error:b,isFetchingNextPage:x,hasNextPage:w,setEndOfListElement:k}=HYr({scorerId:e,entityId:i?.value==="all"?void 0:i?.value,entityType:i?.type==="ALL"?void 0:i?.type}),_=v.useMemo(()=>c?.agentIds?.filter(V=>d[V]).map(V=>({value:V,label:d[V].name,type:"AGENT"}))||[],[c?.agentIds,d]),C=v.useMemo(()=>c?.workflowIds?.map(V=>({value:V,label:V,type:"WORKFLOW"}))||[],[c?.workflowIds]),j=v.useMemo(()=>[{value:"all",label:"All Entities",type:"ALL"},..._,...C],[_,C]),E=t.get("entity")??"all",N=j.find(V=>V.value===E);N&&N.value!==i?.value&&l(N),v.useEffect(()=>{if(u){const V=u instanceof Error?u.message:"Failed to load scorer";Le.error(`Error loading scorer: ${V}`)}},[u]),v.useEffect(()=>{if(p){const V=p instanceof Error?p.message:"Failed to load agents";Le.error(`Error loading agents: ${V}`)}},[p]),v.useEffect(()=>{if(m){const V=m instanceof Error?m.message:"Failed to load workflows";Le.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})};v.useEffect(()=>{const V=t.get("scoreId")??void 0;if(V===s)return;if(!V){a(void 0);return}g.find(Q=>Q.id===V)&&a(V)},[t,g]);const A=v.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 R=ys(u)||ys(p)||ys(m),L=u&&xs(u),D=!R&&!L&&(u||p||m),B=!y&&g.length===0,H=i?.value!=="all",F=c?.scorer?.source==="stored"?o.jsx(Ly,{owner:"scorer-detail",children:o.jsxs(ce,{variant:"default",as:Fa,to:`/cms/scorers/${e}/edit`,size:"sm",children:[o.jsx(am,{})," Edit"]})}):null;if(R||L||D||B&&!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(Ft,{width:"wide",height:"full",children:[F,o.jsx(Ft.MainArea,{isCentered:!0,children:R?o.jsx(Hs,{}):L?o.jsx(Ms,{resource:"scorers"}):D?o.jsx(qi,{title:"Failed to load scorer",message:V}):o.jsx(LYr,{})})]})}return o.jsxs(Ft,{width:"wide",children:[F,o.jsx(Ft.TopArea,{children:o.jsx(FYr,{selectedEntity:i,entityOptions:j,onEntityChange:I,onReset:()=>{n(V=>{const M=new URLSearchParams(V);return M.set("entity","all"),M})},isLoading:y||f||h})}),o.jsx(DYr,{scores:g,isLoading:y,selectedScoreId:s,isFetchingNextPage:x,hasNextPage:w,setEndOfListElement:k,onScoreClick:A,errorMsg:b?.message})]})}function tds({label:e,description:t,htmlFor:n,className:r,children:s}){return o.jsxs("div",{className:X("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(Dt,{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-neutral3 text-sm",children:t})]}),s]})}const D7t=[{value:"dark",label:"Dark",Icon:PZt},{value:"light",label:"Light",Icon:WGt},{value:"system",label:"System",Icon:Eit}],nds=e=>D7t.some(t=>t.value===e);function rds({option:e}){const{Icon:t}=e;return o.jsxs("span",{className:"inline-flex max-w-full min-w-0 items-center gap-2",children:[o.jsx(t,{"aria-hidden":"true",className:"h-4 w-4 shrink-0 opacity-70"}),o.jsx("span",{className:"min-w-0 truncate",children:e.label})]})}const sds=()=>{const{baseUrl:e,headers:t,apiPrefix:n}=eH(),{theme:r,setTheme:s}=U_();return o.jsx(Ft,{width:"narrow",children:o.jsxs(Ft.MainArea,{className:"mt-6 flex flex-col gap-5",children:[o.jsx(Pye,{title:"Theme",description:"Customize the appearance of the studio.",children:o.jsx(tds,{label:"Theme mode",htmlFor:"theme",children:o.jsxs(oa,{value:r,onValueChange:a=>{nds(a)&&s(a)},children:[o.jsx(ca,{id:"theme",className:"w-full sm:w-48",children:o.jsx(la,{className:"inline-flex max-w-full min-w-0 items-center"})}),o.jsx(ua,{children:D7t.map(a=>o.jsx(Ar,{value:a.value,children:o.jsx(rds,{option:a})},a.value))})]})})}),o.jsx(Pye,{title:"Mastra Connection",description:"Configure the Mastra instance URL, API prefix, and request headers used by the studio.",children:o.jsx(J$t,{initialConfig:{baseUrl:e,headers:t,apiPrefix:n}})})]})})};function ads(){const[e]=Ri(),t=qs(),n=e.get("redirect")||"/",r=()=>{n.startsWith("http")?window.location.href=n:t(n,{replace:!0})};return o.jsx(E7t,{redirectUri:n,onSuccess:r,initialMode:"signup"})}const L7t=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 ids(e){return e.replace(/\/$/,"").split("/").pop()}function dQ({children:e,className:t}){return o.jsx("div",{className:X("border border-border1 rounded-lg mt-12 py-8 lg:min-h-[25rem] transition-height px-4 lg:px-12",t),children:e})}function ods({templates:e,linkComponent:t,className:n,isLoading:r}){const s=t||"a";return r?o.jsx("div",{className:X("grid gap-y-4",n),children:Array.from({length:5}).map((a,i)=>o.jsx("div",{className:"bg-surface3 h-16 animate-pulse rounded-lg"},i))}):o.jsx("div",{className:X("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:X("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:X("grid [&:hover_p]:text-neutral5",{"grid-cols-[8rem_1fr] lg:grid-cols-[12rem_1fr]":a.imageURL}),children:[a.imageURL&&o.jsx("div",{className:X("overflow-hidden"),children:o.jsx("div",{className:"thumb transition-scale h-full w-full bg-cover duration-150",style:{backgroundImage:`url(${a.imageURL})`}})}),o.jsxs("div",{className:X("grid py-3 px-6 w-full gap-0.5","[&_svg]:w-[1em] [&_svg]:h-[1em] [&_svg]:text-neutral3"),children:[o.jsx("h2",{className:"text-ui-lg text-neutral5",children:a.title}),o.jsx("p",{className:"text-ui-md text-neutral4 transition-colors duration-500",children:a.description}),o.jsxs("div",{className:"text-neutral3 text-ui-md mt-3 hidden flex-wrap items-center gap-4 2xl:flex",children:[i&&o.jsxs("ul",{className:X("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(Uo,{})," ",a.agents.length]}),a?.tools&&a.tools.length>0&&o.jsxs("li",{children:[o.jsx(Ud,{})," ",a.tools.length]}),a?.networks&&a.networks.length>0&&o.jsxs("li",{children:[o.jsx(jit,{})," ",a.networks.length]}),a?.workflows&&a.workflows.length>0&&o.jsxs("li",{children:[o.jsx(MD,{})," ",a.workflows.length]}),a?.mcp&&a.mcp.length>0&&o.jsxs("li",{children:[o.jsx(mC,{})," ",a.mcp.length]})]}),i&&a.supportedProviders&&o.jsx("small",{children:"|"}),o.jsx("div",{className:"text-neutral3 flex items-center gap-4",children:a.supportedProviders.map(l=>o.jsx("span",{className:"",children:l},l))})]})]})]}),o.jsx("a",{href:a.githubUrl,className:X("group items-center gap-2 text-ui-md ml-auto pr-4 hidden","lg:flex"),target:"_blank",rel:"noopener noreferrer",children:o.jsxs("span",{className:"bg-surface1 group-hover:bg-surface2 text-neutral3 group-hover:text-neutral5 flex items-center gap-2 rounded px-2 py-1 transition-colors",children:[o.jsx(L7t,{})," ",ids(a.githubUrl)]})})]},a.slug)})})}function lds({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:X("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:X("flex flex-wrap mx-auto sticky top-0 gap-4 bg-surface2 py-8",u),children:[o.jsx(bN,{name:"search-templates",label:"Search templates",labelIsHidden:!0,value:i,onChange:f=>l?.(f.target.value),placeholder:"Search Template"}),o.jsx(Cc,{label:"Filter by tag",labelIsHidden:!0,name:"filter-tag",value:t,onValueChange:s,options:e}),o.jsx(Cc,{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(bs,{})]})]})}function cds(){const{data:e,isLoading:t}=oer(),{templates:n,tags:r,providers:s}=e??{templates:[],tags:[],providers:[]},[a,i]=v.useState("all"),[l,c]=v.useState("all"),[u,d]=v.useState(""),f=[{value:"all",label:"Any tag"}];(r||[]).forEach(x=>{f.push({value:x,label:x})});const p=[{value:"all",label:"Any provider"}];(s||[]).forEach(x=>{p.push({value:x,label:x})});const h=(x,w)=>{w==="tag"?i(x):w==="provider"&&c(x)},m=x=>{d(x)},g=()=>{i("all"),c("all"),d("")},y=n.filter(x=>!(u&&!x.title.toLowerCase().includes(u)&&!x.description.toLowerCase().includes(u)||a!=="all"&&!x.tags.includes(a)||l!=="all"&&!x.supportedProviders.includes(l))),b=u||a!=="all"||l!=="all";return o.jsxs(ds,{children:[o.jsx(zwe,{children:o.jsxs(Mgt,{children:[o.jsx(qe,{children:o.jsx(Jv,{})}),"Templates"]})}),o.jsxs("div",{className:X("overflow-y-auto w-full h-full px-8 pb-12 z-10"),children:[o.jsx(lds,{selectedTag:a,onTagChange:x=>h(x,"tag"),tagOptions:f,selectedProvider:l,onProviderChange:x=>h(x,"provider"),providerOptions:p,searchTerm:u,onSearchChange:m,onReset:b?g:void 0,className:"max-w-[80rem]",isLoading:t}),o.jsx(ods,{templates:y,linkComponent:Fa,className:"mx-auto max-w-[80rem]",isLoading:t})]})]})}const uds="1.56.0-alpha.4";function dds({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(wf,{className:"text-yellow-500"}),title:"Template Installed with Warnings"}:{icon:o.jsx(NWt,{}),title:"Template Installation Failed"},{icon:l,title:c}=i();return o.jsxs(dQ,{className:"text-neutral3 mb-8 content-center space-y-4",children:[o.jsxs("div",{className:X("grid items-center justify-items-center gap-4 content-center","[&>svg]:w-8 [&>svg]:h-8"),children:[l,o.jsxs("div",{className:"space-y-2 text-center",children:[o.jsx("p",{className:"text-ui-md text-neutral5 font-medium",children:c}),o.jsx("p",{className:"text-ui-md text-neutral3",children:a()})]})]}),t&&t.length>0&&o.jsxs("details",{className:"text-xs",children:[o.jsxs("summary",{className:"text-neutral3 hover:text-neutral4 cursor-pointer text-center select-none",children:["Show Validation Issues (",t.length,")"]}),o.jsx("div",{className:"mt-4 max-h-60 space-y-2 overflow-auto rounded bg-gray-100 p-3 text-left text-xs dark:bg-gray-800",children:t.map((u,d)=>o.jsxs("div",{className:"border-l-2 border-red-400 pl-2",children:[o.jsx("div",{className:"font-medium text-red-600 dark:text-red-400",children:u.type==="typescript"?"🔴 TypeScript Error":"⚠️ Lint Error"}),o.jsx("div",{className:"mt-1 font-mono text-xs wrap-break-word whitespace-pre-wrap text-gray-700 dark:text-gray-300",children:u.message})]},d))})]}),n&&!s&&o.jsxs("details",{className:"text-xs",children:[o.jsx("summary",{className:"text-neutral3 hover:text-neutral4 cursor-pointer text-center select-none",children:"Show Details"}),o.jsx("div",{className:"mt-4 max-h-60 overflow-auto rounded bg-gray-100 p-3 text-left font-mono text-xs dark:bg-gray-800",children:o.jsx("div",{className:"wrap-break-word whitespace-pre-wrap",children:n})})]})]})}function fds({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(dQ,{children:o.jsxs("div",{className:"mx-auto my-4 grid max-w-[40rem] gap-8 p-4 lg:p-8",children:[o.jsxs("h2",{className:X("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(Tit,{})]}),o.jsx(Cc,{name:"template-provider",options:e,label:"Template AI Model Provider",onValueChange:n,value:t,placeholder:"Select",layout:"horizontal"}),t&&Object.entries(r||{}).length>0&&o.jsxs(o.Fragment,{children:[o.jsx("h3",{className:"text-neutral3 text-ui-md",children:"Set required Environmental Variables"}),o.jsx("div",{className:"grid grid-cols-[1fr_1fr] items-start gap-4",children:l?o.jsxs("div",{className:X("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(Xt,{})," Loading variables..."]}):Object.entries(r).map(([p,h])=>o.jsxs(v.Fragment,{children:[o.jsx(CO,{name:`env-${p}`,labelIsHidden:!0,label:"Key",value:p,disabled:!0,className:"w-full"}),o.jsx(CO,{name:p,labelIsHidden:!0,label:"Value",value:h,onChange:i,errorMsg:s.includes(p)?"Value is required.":"",autoComplete:"off",className:"w-full"})]},p))}),o.jsxs("div",{className:"border-border1 relative mt-3.5 border-t pt-12",children:[o.jsx("div",{className:"bg-surface2 text-ui-sm text-neutral3 absolute top-0 left-1/2 flex h-8 w-8 -translate-x-1/2 -translate-y-4 items-center justify-center rounded-full",children:"And"}),o.jsx("h3",{className:"text-neutral4 text-ui-lg",children:"Set AI Model for Template Installation"}),o.jsx("p",{className:"text-neutral3 text-ui-md mt-2 mb-8",children:"This model will be used by the workflow to process and install the template"}),o.jsx(zzt,{defaultProvider:u||"",defaultModel:d||"",updateModel:f||(()=>Promise.resolve({message:"Updated"})),closeEditor:()=>{},autoSave:!0,selectProviderPlaceholder:"Provider"})]})]}),t&&!l&&o.jsx(ce,{className:X("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(Xt,{className:"h-4 w-4"})," Installing..."]}):o.jsxs(o.Fragment,{children:["Install ",o.jsx(xm,{})]})})]})})}function pds({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:X("grid mt-8 items-center"),children:o.jsxs("div",{className:X("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(Jv,{}),o.jsx("h2",{className:X({"bg-surface4 flex rounded-lg min-w-[50%]":r}),children:r?o.jsx(o.Fragment,{children:" "}):e})]})}),o.jsxs("div",{className:"grid gap-x-24 lg:grid-cols-[1fr_1fr]",children:[o.jsxs("div",{className:"grid",children:[o.jsx("p",{className:X("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:X("bg-surface2 border border-surface4 rounded-lg p-4 mb-4","flex items-start gap-3"),children:[o.jsx("div",{className:"mt-0.5 shrink-0",children:o.jsx(qx,{className:"h-[1.1em] w-[1.1em] text-blue-500"})}),o.jsxs("div",{className:"flex-1 space-y-2",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(Ube,{className:"text-neutral4 h-[1em] w-[1em]"}),o.jsx("span",{className:"text-ui-md text-neutral5 font-medium",children:"A new Git branch will be created"})]}),o.jsxs("div",{className:"text-ui-sm text-neutral4 space-y-1",children:[o.jsxs("div",{children:[o.jsx("span",{className:"font-medium",children:"Branch name:"})," ",o.jsx("code",{className:"bg-surface3 text-ui-sm rounded px-1.5 py-0.5 font-mono",children:i})]}),o.jsx("div",{children:"This ensures safe installation with easy rollback if needed. Your main branch remains unchanged."})]})]})]}),n&&o.jsxs("a",{href:n,target:"_blank",rel:"noopener noreferrer",className:"text-neutral3 text-ui-md hover:text-neutral5 mt-auto flex items-center gap-2",children:[o.jsx(L7t,{}),n?.split("/")?.pop()]})]}),s&&o.jsx(jNe,{data:s,labelsAreHidden:!0,isLoading:r})]})]})}function hds(e){switch(e){case"running":return o.jsx(Xt,{});case"success":return o.jsx(kx,{});case"failed":return o.jsx(Qu,{});default:return null}}function mds({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:X("grid grid-cols-[1fr_auto] gap-6 rounded-lg px-4 py-3",vs.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:X("flex min-w-6 justify-end text-ui-md",vs.colors,{"text-neutral5":n||t.status==="success","text-neutral3":!n&&t.status!=="success"}),children:[r,"."]}),o.jsxs("div",{children:[o.jsx("h4",{className:X("text-ui-md",vs.colors,{"text-neutral5":n||t.status==="success","text-neutral3":!n&&t.status!=="success"}),children:s(e)}),t.description&&o.jsx("p",{className:"text-ui-md text-neutral2 -mt-0.5",children:t.description})]})]}),o.jsx("div",{className:X("flex size-[1.75rem] items-center justify-center self-center rounded-full",vs.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:hds(t.status)})]})}function gds({currentStep:e,steps:t=[],className:n}){return o.jsx("div",{className:X(n),children:t.map((r,s)=>o.jsx(mds,{stepId:r.id,step:r,isActive:e?.id===r.id,position:s+1},r.id))})}function vds({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:X("relative flex h-8 items-center justify-end",vs.colors,{"bg-accent1Dark":r.status==="success"&&e?.[s-1]?.status==="success"}),children:o.jsx("div",{className:X("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",vs.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(Xt,{}):s+1})},r.id))}),o.jsxs("div",{className:X("text-center text-xs text-neutral3",vs.colors),children:[n," of ",t," steps completed"]})]})}function yds({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=g=>g==="input"||g.endsWith(".input")||g.startsWith("Mapping_")&&/[0-9a-f]{8}/.test(g)||/[0-9a-f]{8,}/.test(g)?!1:r?.allSteps?g in r.allSteps:!0,f=Object.entries(c).filter(([g,y])=>d(g)),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(([g,y])=>({id:g,status:y?.status,description:y?.description,title:g.charAt(0).toUpperCase()+g.slice(1).replace(/-/g," "),isActive:i?.id===g}));return o.jsxs(dQ,{className:"text-neutral3 mb-8 content-center space-y-6",children:[o.jsxs("div",{className:"text-center",children:[o.jsx("h3",{className:"text-neutral5 text-lg font-semibold",children:h()}),(t?.runId||n)&&o.jsxs("div",{className:"text-ui-sm text-neutral3 mt-2",children:["Run ID: ",t?.runId??n]})]}),u&&p>0&&!["error"].includes(s)&&o.jsx("div",{className:"mx-auto w-full max-w-[30rem] px-6",children:o.jsx(vds,{steps:m})}),l&&s==="error"&&o.jsxs("div",{className:X("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(qZt,{}),l||"Something went wrong"]}),u&&o.jsx(gds,{steps:m,currentStep:i,className:"pb-4"}),!u&&s==="initializing"&&o.jsxs("div",{className:"text-neutral3 grid justify-items-center gap-4 text-center text-sm",children:[o.jsx(Xt,{}),o.jsx("p",{children:"This may take some time..."})]})]})}function bds({name:e,installedEntities:t}){return o.jsxs(dQ,{className:X("grid items-center justify-items-center gap-4 content-center","[&>svg]:w-8 [&>svg]:h-8"),children:[o.jsx(Tit,{}),o.jsx("h2",{className:"text-header-md",children:"Done!"}),o.jsxs("p",{className:"text-ui-md text-neutral3 text-center",children:["The ",o.jsx("b",{className:"text-neutral4",children:e})," template has been successfully installed.",t&&t.length>0&&o.jsxs(o.Fragment,{children:[o.jsx("br",{})," Installed entities are listed below."]})]}),t&&t.length>0&&o.jsx(jNe,{data:t})]})}function xds(){const{templateSlug:e}=Sr(),[t,n]=Ri(),[r,s]=v.useState(""),[a,i]=v.useState(""),[l,c]=v.useState(""),[u,d]=v.useState({}),[f,p]=v.useState([]),[h,m]=v.useState(null),[g,y]=v.useState(!1),[b,x]=v.useState(""),[w,k]=v.useState(!1),[_,C]=v.useState(!1),[j,E]=v.useState([]),{data:N,isLoading:I}=ler({repoOrSlug:e,owner:"mastra-ai"}),R=uds?.includes("beta")??!1?"beta":"main",{data:L,isLoading:D}=cer({repo:N?.githubUrl?new URL(N.githubUrl).pathname.split("/")[2]:`template-${e}`,owner:"mastra-ai",branch:R}),{data:B,isLoading:H}=uer(),{mutateAsync:F,isPending:z}=der(),{mutateAsync:V}=fer(),{streamInstall:M,streamResult:Q,isStreaming:q}=her(B),{observeInstall:$,streamResult:U,isStreaming:Z}=mer(B);v.useEffect(()=>{const ee=t.get("runId");ee&&!g&&!h&&!q&&!Z&&(console.info("🔄 Checking completed run after hot reload:",{runId:ee}),x(ee),V({runId:ee}).then(ue=>{const pe=ue.snapshot;if(pe?.status==="success"&&pe?.result?.success)y(!0);else if(pe?.result?.success===!1)if(pe?.result?.validationResults&&!pe?.result?.validationResults?.valid&&pe?.result?.validationResults?.remainingErrors>0){const{remainingErrors:fe,errors:be}=pe.result.validationResults,xe=`Template installation completed but ${fe} validation issue${fe>1?"s":""} remain unresolved.`;m(xe),E(be||[])}else{const fe=pe?.result?.message||pe?.result?.error||"Template installation failed";m(typeof fe=="string"?fe:String(fe))}}).catch(ue=>{console.error("❌ Failed to fetch run details:",ue),m("Failed to retrieve installation status after reload")}))},[t,g,h,q,Z,V]),v.useEffect(()=>{const ee=t.get("runId"),ue=t.get("resume"),pe=t.get("provider");if(ee&&ue==="true"&&pe&&!q&&!Z&&!w&&!_&&B){x(ee),k(!0);try{V({runId:ee}).then(le=>{if(le.snapshot?.status==="running")return $.mutateAsync({runId:ee})}).then(()=>{n(le=>{const fe=new URLSearchParams(le);return fe.delete("resume"),fe})}).catch(le=>{console.error("❌ Failed to resume template installation:",le),le.message?.includes("404")||le.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(le){console.error("❌ Auto-resume failed with error:",le),m("Failed to resume template installation. Please refresh and try again.")}}},[t,e,q,Z,w,_,B,V,$,n]);const K=[{value:"openai",label:"OpenAI"},{value:"anthropic",label:"Anthropic"},{value:"groq",label:"Groq"},{value:"google",label:"Google"}],te=[{key:"tools",label:"Tools",value:N?.tools?.length?N.tools.map(ee=>ee).join(", "):"n/a",icon:o.jsx(Ud,{})},{key:"agents",label:"Agents",value:N?.agents?.length?N.agents.map(ee=>ee).join(", "):"n/a",icon:o.jsx(Uo,{})},{key:"workflows",label:"Workflows",value:N?.workflows?.length?N.workflows.map(ee=>ee).join(", "):"n/a",icon:o.jsx(MD,{})},{key:"providers",label:"Providers",value:N?.supportedProviders?.length?N.supportedProviders.join(", "):"n/a",icon:o.jsx(Lv,{})},{key:"tags",label:"Tags",value:N?.tags?.length?N.tags.join(", "):"n/a",icon:o.jsx(VN,{})}],ne=[{...te[0]},{...te[1]},{...te[2]}].filter(ee=>ee.value!=="n/a");v.useEffect(()=>{L&&d(L)},[L]),v.useEffect(()=>{const ee=Q||U;ee?.phase==="error"&&ee?.error&&m(typeof ee.error=="string"?ee.error:String(ee.error))},[Q?.phase,Q?.error,U?.phase,U?.error]);const J=ee=>{s(ee)},se=async ee=>(i(ee.provider),c(ee.modelId),{message:"Model updated successfully"}),ie=async()=>{const ee=Object.entries(u).reduce((ue,[pe,le])=>(le===""&&ue.push(pe),ue),[]);if(ee.length>0){p(ee);return}if(N){m(null),y(!1),x(""),C(!0);try{const pe={repo:N.githubUrl||`https://github.com/mastra-ai/template-${N.slug}`,ref:R,slug:N.slug,variables:u},{runId:le}=await F({});x(le),n(fe=>{const be=new URLSearchParams(fe);return be.set("runId",le),be.set("resume","true"),be.set("provider",r||"openai"),be}),await M.mutateAsync({inputData:pe,selectedModel:{provider:a,modelId:l},runId:le})}catch(ue){C(!1),m(ue?.message||"Template installation failed"),console.error("Template installation failed",ue)}}},Y=ee=>{const{name:ue,value:pe}=ee.target;pe.trim()===""?p(le=>[...le,ue]):p(le=>le.filter(fe=>fe!==ue)),d(le=>({...le,[ue]:pe}))};return o.jsx(ds,{children:o.jsx("div",{className:X("w-full lg:px-12 h-full overflow-y-scroll"),children:o.jsxs("div",{className:"mx-auto grid w-full max-w-[80rem] gap-y-4 p-6",children:[o.jsx(pds,{isLoading:I,title:N?.title,description:N?.longDescription,imageURL:N?.imageURL,githubUrl:N?.githubUrl,infoData:te,templateSlug:e}),N&&o.jsxs(o.Fragment,{children:[(q||Z)&&o.jsx(yds,{name:N.title,streamResult:Z?U:Q,runId:b,workflowInfo:B}),g&&o.jsx(bds,{name:N.title,installedEntities:ne,linkComponent:Fa}),h&&o.jsx(dds,{errorMsg:h,validationErrors:j.length>0?j:Q?.validationResults?.errors||U?.validationResults?.errors}),!q&&!Z&&!g&&!h&&o.jsx(fds,{providerOptions:K,selectedProvider:r,onProviderChange:J,variables:u,setVariables:d,errors:f,setErrors:p,handleInstallTemplate:ie,handleVariableChange:Y,isLoadingEnvVars:D||H,isInstalling:z,defaultModelProvider:a,defaultModelId:l,onModelUpdate:se})]})]})})})}const wds=()=>{const{toolId:e,agentId:t}=Sr();return o.jsx("div",{className:"h-full w-full overflow-y-auto",children:o.jsx(CXr,{toolId:e,agentId:t})})},Sds=()=>{const{toolId:e}=Sr();return o.jsx("div",{className:"h-full w-full overflow-y-hidden",children:o.jsx(_cs,{toolId:e})})};function kds(){const{traceId:e}=Sr(),[t,n]=Ri(),r=qs(),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]=v.useState(s??null),[d,f]=v.useState(),[p,h]=v.useState(i),[m,g]=v.useState(0),[y,b]=v.useState(!1),{data:x,isLoading:w,error:k}=mIe(e),_=v.useMemo(()=>x?.spans??[],[x?.spans]),C=v.useMemo(()=>_.find(se=>se.parentSpanId==null),[_]),{data:j,isLoading:E}=jL(e,c??"");v.useEffect(()=>g(0),[e,c]);const{data:N,isLoading:I}=lh(),{data:A,isLoading:R}=a8t({traceId:e,spanId:c??void 0,page:m}),[L,D]=v.useState(0);v.useEffect(()=>D(0),[e,c]);const{data:B,isLoading:H}=m7t({traceId:e,page:L});v.useEffect(()=>{if(l&&A?.scores&&!d){const se=A.scores.find(ie=>ie.id===l);se&&f(se)}},[l,A?.scores,d]);const F=v.useCallback(se=>{const ie=new URLSearchParams(t);for(const[Y,ee]of Object.entries(se))ee===null||ee===""?ie.delete(Y):ie.set(Y,ee);n(ie,{replace:!0})},[t,n]),z=v.useCallback(se=>{const ie=se??null,Y=ie===c;u(ie),Y||(f(void 0),h("details"),F({spanId:ie,tab:null,scoreId:null}))},[c,F]),V=v.useCallback(()=>{u(null),f(void 0),h("details"),F({spanId:null,tab:null,scoreId:null})},[F]),M=v.useCallback(se=>{u(se),f(void 0),h("details"),F({spanId:se,tab:null,scoreId:null})},[F]),{handlePreviousSpan:Q,handleNextSpan:q}=gIe(_,c,M),$=v.useCallback(se=>{const ie=se;h(ie),f(void 0),F({tab:ie==="details"?null:ie,scoreId:null})},[F]),U=v.useCallback(se=>{f(se),F({scoreId:se.id})},[F]),Z=v.useCallback(()=>{f(void 0),F({scoreId:null})},[F]),K=v.useCallback(()=>{r("/observability")},[r]),te=v.useCallback(()=>{h("scoring"),C&&c!==C.spanId?(u(C.spanId),f(void 0),F({spanId:C.spanId,tab:"scoring",scoreId:null})):F({tab:"scoring"})},[C,c,F]),ne=C?o.jsx(Ly,{owner:"trace-detail",children:o.jsxs(Mr,{children:[o.jsxs(ce,{tooltip:"Evaluate Trace","aria-label":"Evaluate Trace",onClick:te,children:[o.jsx(kHt,{}),"Evaluate"]}),o.jsxs(ce,{tooltip:"Save as Dataset Item","aria-label":"Save as Dataset Item",onClick:()=>b(!0),children:[o.jsx(Ad,{}),"Save"]})]})}):null,J=C?o.jsx(Ft.Row,{children:o.jsx(Ft.Column,{children:o.jsx(e7t,{rootSpan:C,numOfCol:3})})}):null;return k?o.jsxs(Ft,{height:"full",children:[ne,J&&o.jsx(Ft.TopArea,{children:J}),o.jsx(Ft.MainArea,{isCentered:!0,children:o.jsx(a7t,{error:k,resource:"traces",errorTitle:"Failed to load trace"})})]}):o.jsxs(Ft,{height:"full",className:"grid-rows-[auto_minmax(0,1fr)] content-normal",children:[ne,J&&o.jsx(Ft.TopArea,{children:J}),o.jsx(u7t,{rootSpanId:C?.spanId,traceId:e,isOpen:y,onClose:()=>b(!1)}),o.jsxs("div",{className:X("mt-4 grid min-h-0 items-stretch gap-4 overflow-hidden",c?"grid-cols-[2fr_3fr]":"grid-cols-[1fr]"),children:[o.jsx(lIe,{traceId:e,spans:_,isLoading:w,onClose:K,onSpanSelect:z,onEvaluateTrace:te,initialSpanId:c,placement:"trace-page",timelineChartWidth:c?"default":"wide"}),c&&!w&&o.jsxs("div",{className:X("grid h-full max-h-full min-h-0 gap-4 overflow-auto",d?"grid-rows-[1fr_1fr]":"grid-rows-[1fr]"),children:[o.jsx(aIe,{traceId:e,spanId:c,span:j?.span,isLoading:E,onClose:V,onPrevious:Q,onNext:q,activeTab:p,onTabChange:$,feedbackTabBadge:B?.pagination?.total??void 0,feedbackTabSlot:()=>o.jsx(f7t,{feedbackData:B,onPageChange:D,isLoadingFeedbackData:H}),scoringTabBadge:A?.pagination?.total??void 0,scoringTabSlot:({span:se,traceId:ie,spanId:Y})=>o.jsxs("div",{className:"grid gap-6",children:[o.jsx(h7t,{traceId:ie,isTopLevelSpan:!se.parentSpanId,spanId:Y,entityType:se.attributes?.agentId||se.entityType===lu.AGENT?"Agent":se.attributes?.workflowId||se.entityType===lu.WORKFLOW_RUN?"Workflow":void 0,scorers:N,isLoadingScorers:I}),o.jsx(p7t,{scoresData:A,onPageChange:g,isLoadingScoresData:R,onScoreSelect:U})]})}),d&&o.jsx(ENe,{score:d,onClose:Z})]})]})]})}function Ods(){const{data:e,isLoading:t,error:n}=Gy(),[r,s]=v.useState("");return n&&ys(n)?o.jsx(lr,{children:o.jsx(Hs,{})}):n&&xs(n)?o.jsx(lr,{children:o.jsx(Ms,{resource:"workflows"})}):n?o.jsx(lr,{children:o.jsx(qi,{title:"Failed to load workflows",message:n.message})}):Object.keys(e||{}).length===0&&!t?o.jsx(lr,{children:o.jsx(i9r,{})}):o.jsxs(Ft,{children:[o.jsx(Ft.TopArea,{children:o.jsxs(Ft.Row,{align:"center",stack:"responsive",children:[o.jsx("div",{className:"max-w-120 flex-1",children:o.jsx(Lf,{onSearch:s,label:"Filter workflows",placeholder:"Filter by name or description"})}),o.jsxs(ce,{as:Fa,to:"/workflows/schedules",variant:"primary",className:"shrink-0",children:[o.jsx(AD,{}),"Schedules"]})]})}),o.jsx(a9r,{workflows:e||{},isLoading:t,search:r})]})}const _ds={active:"bg-accent1",paused:"bg-accent3"},Cds={active:"text-accent1",paused:"text-accent3"},F7t=({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 ${_ds[e]}`,"aria-hidden":!0}),o.jsx("span",{className:`text-ui-sm ${Cds[e]}`,children:e})]}),lT=e=>!e||e<=0?"—":new Date(e).toLocaleString(),L2=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 z7t({status:e}){const{icon:t,color:n}=Eds(e);return o.jsxs("span",{className:`text-ui-sm inline-flex items-center gap-1.5 whitespace-nowrap ${n}`,children:[o.jsx("span",{className:"inline-flex shrink-0 items-center","aria-hidden":!0,children:t}),o.jsx("span",{children:e})]})}function Eds(e){switch(e){case"success":return{icon:o.jsx(fa,{size:14}),color:"text-accent1"};case"failed":return{icon:o.jsx(bs,{size:14}),color:"text-accent2"};case"running":return{icon:o.jsx(Xt,{}),color:"text-neutral3"};case"suspended":return{icon:o.jsx(qV,{size:14}),color:"text-accent3"};case"canceled":return{icon:o.jsx(Rf,{size:14}),color:"text-neutral3"};case"pending":case"waiting":return{icon:o.jsx(fT,{size:14}),color:"text-neutral3"};default:return{icon:null,color:"text-neutral3"}}}const MXe="auto auto auto auto 1fr";function jds(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 Tds(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 Nds=3e4,Ids=5*6e4;function Ads({triggers:e,isLoading:t,workflowId:n,hasNextPage:r,isFetchingNextPage:s,setEndOfListElement:a}){const{Link:i,paths:l}=yn();return t?o.jsx(ol,{columns:MXe}):e.length===0?o.jsx(ye,{variant:"ui-md",className:"text-neutral4 p-4",children:"No trigger history yet."}):o.jsxs(ve,{columns:MXe,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=Tds(u),f=`Scheduled ${lT(c.scheduledFireAt)} — published ${lT(c.actualFireAt)} (drift ${d})`,p=c.outcome==="failed",h=p?c.error:c.run?.error,m=Math.abs(u),g=!p&&m>Nds&&m<=Ids,y=`${c.scheduleId}-${c.runId}-${c.actualFireAt}`,b=!!(n&&c.runId&&!p),x=o.jsx("span",{className:b?"text-accent1 text-ui-sm font-mono whitespace-nowrap":"text-neutral3 text-ui-sm font-mono whitespace-nowrap",children:c.runId}),w=o.jsxs(o.Fragment,{children:[o.jsx(ve.Cell,{height:"compact",children:x}),o.jsx(ve.Cell,{height:"compact",children:o.jsxs("span",{className:"inline-flex items-center gap-2",children:[p?o.jsxs("span",{className:"text-ui-sm text-accent2 inline-flex items-center gap-1.5 whitespace-nowrap",children:[o.jsx(wf,{size:14}),"publish failed"]}):c.run?o.jsx(z7t,{status:c.run.status}):o.jsx("span",{className:"text-ui-sm text-neutral3 inline-flex items-center gap-1.5 whitespace-nowrap",children:"pending"}),h?o.jsxs(Pn,{children:[o.jsx(An,{asChild:!0,children:o.jsx("span",{className:"text-accent2 inline-flex",children:o.jsx(wf,{size:14})})}),o.jsx(Rn,{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:L2(c.actualFireAt)}),g?o.jsxs(Pn,{children:[o.jsx(An,{asChild:!0,children:o.jsx("span",{className:"text-accent3 inline-flex",children:o.jsx(wf,{size:14})})}),o.jsxs(Rn,{children:["Published ",d," after the scheduled fire time"]})]}):null]})}),o.jsx(ve.Cell,{height:"compact",children:c.run?o.jsx("span",{children:jds(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 Rds=e=>{const t=We();return mt({queryKey:["schedule",e],enabled:!!e,queryFn:async()=>{if(!e)throw new Error("scheduleId is required");return t.getSchedule(e)}})},DXe=25,Pds=e=>{const t=We(),{inView:n,setRef:r}=Z_(),s=M1({queryKey:["schedule-triggers",e],enabled:!!e,initialPageParam:void 0,queryFn:async({pageParam:u})=>e?t.listScheduleTriggers(e,{limit:DXe,toActualFireAt:u}):{triggers:[]},getNextPageParam:u=>{if(!(!u?.triggers?.length||u.triggers.length<DXe))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 v.useEffect(()=>{n&&i&&!l&&c()},[n,i,l,c]),{...s,data:a,setEndOfListElement:r}},$ds=e=>{const t=We(),n=Ur();return Mn({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"]}),Le.success(s==="pause"?"Schedule paused":"Schedule resumed")},onError:r=>{Le.error(r.message)}})};function qz({label:e,children:t}){return o.jsxs("div",{className:"flex flex-col gap-1",children:[o.jsx(ye,{variant:"ui-xs",className:"text-neutral4 tracking-wide uppercase",children:e}),o.jsx("div",{className:"text-ui-md",children:t})]})}function Mds(){const{scheduleId:e}=Sr(),{paths:t}=yn(),{data:n,error:r}=Rds(e),{data:s,isLoading:a,error:i,hasNextPage:l,isFetchingNextPage:c,setEndOfListElement:u}=Pds(e),d=$ds(e);if(r&&ys(r))return o.jsx(lr,{children:o.jsx(Hs,{})});if(r&&xs(r))return o.jsx(lr,{children:o.jsx(Ms,{resource:"schedules"})});if(r)return o.jsx(lr,{children:o.jsx(qi,{title:"Failed to load schedule",message:r.message})});const f=n?.workflowId,p=n?.agentId;return o.jsxs(Ft,{children:[o.jsx(Ft.TopArea,{children:o.jsx(Ft.Row,{className:"justify-end",children:o.jsxs(Ft.Column,{className:"flex justify-end gap-2",children:[o.jsxs(ce,{as:Fa,to:t.schedulesLink(),variant:"ghost",children:[o.jsx(Ac,{}),"Back to schedules"]}),f?o.jsx(ce,{as:Fa,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(Hbe,{}),"Pause"]}):o.jsxs(o.Fragment,{children:[o.jsx(Ef,{}),"Resume"]})}):null]})})}),n?o.jsxs("div",{className:"grid h-full grid-cols-[minmax(0,20rem)_1fr] gap-6 overflow-hidden",children:[o.jsxs("div",{className:"border-border1 flex h-fit flex-col gap-4 rounded-md border p-4",children:[o.jsx(qz,{label:p?"Agent":"Workflow",children:f?o.jsx(Fa,{to:t.workflowLink(f),className:"text-accent1 hover:underline",children:f}):p?o.jsx(Fa,{to:t.agentLink(p),className:"text-accent1 hover:underline",children:p}):"—"}),o.jsxs(qz,{label:"Cron",children:[o.jsx("code",{className:"text-ui-md font-mono",children:n.cron}),n.timezone?o.jsx("span",{className:"text-neutral4 text-ui-sm ml-2",children:n.timezone}):null]}),o.jsx(qz,{label:"Status",children:o.jsx(F7t,{status:n.status})}),o.jsx(qz,{label:"Next fire",children:o.jsx("span",{title:lT(n.nextFireAt),children:L2(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(qi,{title:"Failed to load trigger history",message:i.message}):o.jsx(Ads,{triggers:s??[],isLoading:a,workflowId:f,hasNextPage:l,isFetchingNextPage:c,setEndOfListElement:u})]})]}):null]})}const LXe="minmax(0, 1.2fr) minmax(0, 1.4fr) minmax(0, 1fr) auto auto auto";function Dds({schedules:e,isLoading:t,search:n=""}){const{paths:r,Link:s}=yn(),a=v.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(ol,{columns:LXe}):o.jsxs(ve,{columns:LXe,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:"text-ui-smd text-neutral3 block truncate font-mono",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:"text-ui-sm font-mono",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(F7t,{status:i.status})}),o.jsx(ve.Cell,{height:"compact",children:o.jsx("span",{className:"whitespace-nowrap",title:lT(i.nextFireAt),children:L2(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(z7t,{status:i.lastRun.status}),o.jsx("span",{className:"text-neutral4 text-ui-sm",title:lT(i.lastFireAt),children:i.lastFireAt?L2(i.lastFireAt):""})]}):i.lastFireAt?o.jsx("span",{className:"whitespace-nowrap",title:lT(i.lastFireAt),children:L2(i.lastFireAt)}):o.jsx("span",{className:"text-neutral4",children:"Never"})})]},i.id))]})}function Lds({workflowId:e}={}){const{data:t,isLoading:n,error:r}=Lwe(e?{workflowId:e}:{}),[s,a]=v.useState("");return r?o.jsx(qi,{title:"Failed to load schedules",message:r.message}):o.jsxs("div",{className:"grid h-full grid-rows-[auto_1fr] gap-4 overflow-hidden",children:[o.jsx("div",{className:"max-w-120",children:o.jsx(Lf,{onSearch:a,label:"Filter schedules",placeholder:"Filter by id or workflow"})}),o.jsx("div",{className:"overflow-y-auto",children:o.jsx(Dds,{schedules:t??[],isLoading:n,search:s})})]})}function Fds(){const[e]=Ri(),t=e.get("workflowId")??void 0,{error:n}=Lwe(t?{workflowId:t}:{});return n&&ys(n)?o.jsx(lr,{children:o.jsx(Hs,{})}):n&&xs(n)?o.jsx(lr,{children:o.jsx(Ms,{resource:"schedules"})}):o.jsx(Ft,{children:o.jsx("div",{className:"h-full",children:o.jsx(Lds,{workflowId:t})})})}function zds({stepGraph:e,open:t,workflowName:n}){const{nodes:r,edges:s}=gke({stepGraph:e}),[a,i]=v.useState(!1),[l,c,u]=hkt(r),[d]=mkt(s),{edgeTypes:f,nodeTypes:p,styledEdges:h}=zDt({edges:d,workflowName:n,stepGraph:e});return v.useEffect(()=>{if(t){const m=setTimeout(()=>{i(!0)},500);return()=>clearTimeout(m)}},[t]),o.jsx("div",{className:"bg-surface1 relative h-full w-full",children:a?o.jsxs(pkt,{nodes:l,edges:h,edgeTypes:f,fitView:!0,fitViewOptions:{maxZoom:1},minZoom:.01,maxZoom:1,nodeTypes:p,onNodesChange:u,children:[o.jsx(nje,{position:"bottom-left"}),o.jsx(vkt,{variant:iy.Lines,gap:12,size:.5})]}):o.jsx("div",{className:"flex h-full w-full items-center justify-center",children:o.jsx(Xt,{})})})}function Bds(){const{stepDetail:e,closeStepDetail:t}=QH();return e?o.jsxs("div",{className:"flex h-full flex-col","data-testid":"workflow-step-detail-panel",children:[o.jsxs("div",{className:"border-border1 bg-surface1 flex items-center justify-between border-b px-4 py-3",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[e.type==="map-config"&&o.jsx(h9,{className:"h-4 w-4",style:{color:Iu.map}}),e.type==="nested-graph"&&o.jsx(td,{className:"h-4 w-4",style:{color:Iu.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:"hover:bg-surface3 rounded p-1 transition-colors","aria-label":"Close",children:o.jsx(bs,{className:"text-neutral3 h-4 w-4"})})]}),o.jsxs("div",{className:"flex-1 overflow-auto",children:[e.type==="map-config"&&e.mapConfig&&o.jsx(M2,{data:e.mapConfig}),e.type==="nested-graph"&&e.nestedGraph&&o.jsx("div",{className:"h-full min-h-[400px]",children:o.jsx(mke,{children:o.jsx(zds,{stepGraph:e.nestedGraph.stepGraph,open:!0,workflowName:e.nestedGraph.fullStep})},`nested-graph-${e.nestedGraph.fullStep}`)})]})]}):null}function Uds(e){const t=new Blob([JSON.stringify(e??null)]).size;return t<1024?`${t} B`:`${(t/1024).toFixed(1)} KB`}function Vds(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 qds({suspendedSteps:e,workflow:t,isStreaming:n,onResume:r}){return n||e.length===0?null:o.jsxs("div",{className:"border-border1 bg-surface4 space-y-5 rounded-lg border p-5","data-testid":"workflow-suspended-steps",children:[o.jsxs("div",{className:"flex items-center justify-between gap-3",children:[o.jsxs(ye,{as:"p",variant:"ui-md",className:"text-neutral6 flex items-center gap-2 font-semibold",children:[o.jsx(qe,{children:o.jsx(qV,{})}),"Step suspended"]}),o.jsx(cn,{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?hm(fm(Ox(i.resumeSchema))):gp(ur(),AT());return o.jsx(Hds,{step:s,stepSchema:l,description:i.description,isStreaming:n,onResume:r},`${s.runId}-${s.stepId}-${a}`)})]})}function Hds({step:e,stepSchema:t,description:n,isStreaming:r,onResume:s}){const[a,i]=v.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 truncate font-medium",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:"text-neutral3 flex items-center gap-2",children:[o.jsx(qe,{children:o.jsx(MZt,{})}),"The step is asking"]}),o.jsxs(Af,{open:a,onOpenChange:i,children:[o.jsxs(Fd,{className:"border-border1 bg-surface3 flex w-full items-center justify-between gap-2 rounded-lg border px-3 py-2.5",children:[o.jsxs("span",{className:"flex min-w-0 items-center gap-2",children:[o.jsx(qe,{children:o.jsx(pa,{className:X("transition-transform text-neutral3",{"transform rotate-90":a})})}),o.jsx(ye,{as:"span",variant:"ui-md",className:"text-neutral6 truncate",children:Vds(e.suspendPayload,e.stepId)})]}),o.jsx(ye,{as:"span",variant:"ui-sm",className:"text-neutral3 shrink-0",children:Uds(e.suspendPayload)})]}),o.jsx(zd,{children:o.jsx("div",{"data-testid":"suspended-payload",className:"pt-2",children:o.jsx(Wr,{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:"text-neutral3 flex items-center gap-2",children:[o.jsx(qe,{children:o.jsx(FZt,{})}),"Your response"]}),o.jsx("div",{className:"-mx-5",children:o.jsx(RB,{schema:t,isSubmitLoading:r,submitButtonLabel:"Resume",submitButtonIcon:o.jsx(Ef,{}),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 Wds(){const{result:e,runSnapshot:t,workflow:n,runId:r,isStreamingWorkflow:s}=v.useContext(Bl),{runId:a}=Sr(),i=Okt(e,r??""),l=kKn(),c=!!a,u=t?.status==="suspended",f=!!(a&&r&&a===r)&&e?.status==="suspended";return s||!n||i.length===0||c&&!u&&!f?null:o.jsx("div",{"data-testid":"workflow-suspended-overlay",className:"animate-in fade-in-0 slide-in-from-top-2 zoom-in-95 absolute top-2 right-2 z-20 max-h-[calc(100%-1rem)] w-[380px] max-w-[calc(100%-1rem)] overflow-y-auto rounded-lg shadow-lg duration-300",children:o.jsx(qds,{suspendedSteps:i,workflow:n,isStreaming:s,onResume:l})},r)}const Zds=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"})]}),Gds=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"})]}),Qds=e=>e.includes("."),Yds=e=>e==="input"||e.endsWith(".input"),Kds=1;function Xds(e){return`${Number((e/1e3).toPrecision(3))}s`}function Jds(e,t){const n=Object.entries(e).filter(([i])=>!Yds(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,Kds);return{stepId:i,step:l,status:l.status,offsetPct:f,widthPct:p,durationMs:d,isRunning:c,isNestedEntry:Qds(i)}})}const efs=({status:e})=>o.jsxs(qe,{children:[e==="success"&&o.jsx(Zds,{className:"text-accent1"}),e==="failed"&&o.jsx(Gds,{className:"text-accent2"}),e==="suspended"&&o.jsx(qV,{className:"text-accent3"}),e==="waiting"&&o.jsx(Nfe,{className:"text-accent5"}),e==="skipped"&&o.jsx(Nfe,{className:"text-icon3"}),e==="running"&&o.jsx(ia,{className:"text-accent6 animate-spin"})]}),tfs={success:"bg-accent1",failed:"bg-accent2",suspended:"bg-accent3",waiting:"bg-accent5",skipped:"bg-border1",running:"bg-accent6"};function B7t(e){return e.split(/[-_.\s]+/).filter(Boolean).map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(" ")}const FXe=e=>e&&typeof e=="object"&&!Array.isArray(e)?e:{value:e},nfs=e=>{const t=e;return IDt({duration:t.duration,date:t.date,isForEach:t.isForEach,mapConfig:t.mapConfig,canSuspend:t.canSuspend,isParallel:t.isParallel,stepGraph:t.stepGraph})},rfs=({row:e,index:t,isSelected:n,isHovered:r,onSelectStep:s,onHoverStep:a,onOpenInput:i,onOpenOutput:l})=>{const c=nfs(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:X("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(efs,{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(zGt,{})})}),o.jsx("div",{className:"flex overflow-hidden",children:o.jsx(vV,{indicators:c,className:"shrink-0"})}),o.jsx(ye,{as:"span",variant:"ui-sm",className:"text-neutral6 block max-w-full min-w-0 justify-self-stretch overflow-hidden text-left text-ellipsis whitespace-nowrap",children:B7t(e.stepId)}),o.jsx("div",{className:"bg-surface4 relative h-2 min-w-0 rounded",children:o.jsx("div",{"data-testid":"workflow-timeline-bar","data-offset":String(e.offsetPct),"data-width":String(e.widthPct),className:`absolute top-0 h-full rounded ${tfs[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(LGt,{})})}),o.jsx(ye,{as:"span",variant:"ui-sm",className:"text-neutral3 w-20 justify-self-end text-right tabular-nums",children:Xds(e.durationMs)})]},`timeline-item-${e.stepId}-${t}`)};function sfs(){const{steps:e}=B4(),{selectedStepId:t,hoverStepId:n,setSelectedStepId:r,setHoverStepId:s}=oH(),[a,i]=v.useState(()=>Date.now()),[l,c]=v.useState(!1),[u,d]=v.useState(null),f=v.useRef(null);Wwe(f,{enabled:!l});const p=Jds(e,a),h=p.some(m=>m.isRunning);return v.useEffect(()=>{if(!h)return;const m=setInterval(()=>i(Date.now()),100);return()=>clearInterval(m)},[h]),v.useEffect(()=>{if(l||p.length===0)return;const m=f.current;m&&(m.scrollTop=m.scrollHeight)},[l,p.length]),p.length===0?null:o.jsxs(o.Fragment,{children:[o.jsx("div",{"data-testid":"workflow-timeline",className:"pointer-events-none absolute right-0 bottom-0 z-20 px-2 pb-2",style:{left:"var(--workflow-left-panel-width, 0px)"},children:o.jsxs("div",{className:"rounded-studio-panel border-border1/50 bg-surface3 pointer-events-auto flex max-h-64 w-full min-w-0 flex-col gap-3 overflow-hidden border p-4 shadow-lg",children:[o.jsxs("div",{className:"flex shrink-0 items-center justify-between gap-3",children:[o.jsx(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:"text-neutral3 hover:bg-surface4 hover:text-neutral6 rounded-md p-1 transition-colors",children:o.jsx(Na,{className:X("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,g)=>o.jsx(rfs,{row:m,index:g,isSelected:t===m.stepId,isHovered:n===m.stepId,onSelectStep:r,onHoverStep:s,onOpenInput:y=>d({type:"input",stepId:y.stepId,data:FXe(y.step.input)}),onOpenOutput:y=>d({type:"output",stepId:y.stepId,data:FXe(y.step.output)})},`timeline-item-${m.stepId}-${g}`))})]})}),o.jsx(br,{open:!!u,onOpenChange:m=>!m&&d(null),children:u&&o.jsx(Ckt,{data:u.data,title:`${B7t(u.stepId)} ${u.type==="input"?"input":"output"}`})})]})}const afs=({workflowId:e,workflow:t,isLoading:n})=>{const{stepDetail:r}=QH();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(BDt,{workflowId:e,workflow:t,isLoading:n}),o.jsx(Wds,{}),o.jsx(sfs,{})]})}),r&&o.jsx("div",{className:"border-border1 min-h-0 w-[420px] overflow-hidden border-l",children:o.jsx(Bds,{})})]})},zXe=()=>{const{workflowId:e}=Sr(),{data:t,isLoading:n,error:r}=G3(e);return r&&ys(r)?o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Hs,{})}):r&&xs(r)?o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Ms,{resource:"workflows"})}):o.jsx(Pke,{children:o.jsx(afs,{workflowId:e,workflow:t??void 0,isLoading:n})})};function ifs(e,t){if(e==null)return{};var n,r,s=Nwt(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 jbe(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 ofs(e){if(Array.isArray(e))return jbe(e)}function lfs(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function cfs(e,t){if(e){if(typeof e=="string")return jbe(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)?jbe(e,t):void 0}}function ufs(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
|
|
721
|
+
`);return t!==-1&&t!==e.length-1}else{if(Array.isArray(e))return e.some(t=>Sbe(t));if(e&&typeof e=="object")return Object.values(e).some(t=>Sbe(t))}return!1}function mls({children:e}){return o.jsx("div",{className:"flex-1 overflow-y-auto p-4",children:e})}function gls({className:e,children:t}){return o.jsx("div",{className:X("mx-4 flex items-center justify-between gap-2 border-b border-border1 py-3",e),children:t})}function vls({className:e,children:t}){return o.jsx("h3",{className:X("flex gap-2 text-ui-md text-neutral3 [&>b]:font-normal [&>b]:text-neutral2",e),children:t})}function yls({className:e,children:t}){return o.jsx("dl",{className:X("grid grid-cols-[auto_1fr] gap-x-4 gap-y-1.5",e),children:t})}function bls({className:e,children:t}){return o.jsx("dt",{className:X("shrink-0 py-0.5 text-ui-smd text-neutral2",e),children:t})}function xls({className:e,children:t}){return o.jsx("dd",{className:X("min-w-0 truncate py-0.5 text-ui-smd text-neutral3",e),children:t})}function wls({className:e,children:t}){return o.jsx("dt",{className:X("col-span-2 py-3 text-ui-sm tracking-widest text-neutral2 uppercase",e),children:t})}const Sls=Object.assign(yls,{Key:bls,Value:xls,Header:wls});function kls({children:e}){return o.jsxs("div",{className:"text-ui-sm text-neutral3 flex items-center justify-center gap-2 px-4 py-6",children:[o.jsx(Xt,{size:"sm",variant:"pulse",className:"text-neutral3"})," ",e??"Loading..."]})}function Ols({children:e}){return o.jsx("p",{className:"text-ui-sm text-neutral2 px-4 py-6",children:e??"No data found."})}const zi=Object.assign(cls,{Header:gls,Heading:vls,CloseButton:uls,LoadingData:kls,NoData:Ols,Content:mls,KeyValueList:Sls,CodeSection:hls}),cp=zi.KeyValueList;function _ls(e){return e instanceof Date?e:new Date(e)}function Cls({log:e,onClose:t,onTraceClick:n,onSpanClick:r,onPrevious:s,onNext:a,collapsed:i,onCollapsedChange:l}){const[c,u]=v.useState(!1),d=i??c,f=l??u,p=_ls(e.timestamp),h=e.traceId,m=e.spanId;return o.jsxs(zi,{collapsed:d,children:[o.jsxs(zi.Header,{children:[o.jsxs(zi.Heading,{children:["Log ",o.jsx("b",{children:nr(p,"MMM dd, HH:mm:ss.SSS")})]}),o.jsxs(Mr,{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(Xq,{}):o.jsx(kwe,{})}),o.jsxs(Mr,{spacing:"close",children:[o.jsx(ce,{size:"md",tooltip:"Previous log",onClick:s,disabled:!s,children:o.jsx(Kq,{})}),o.jsx(ce,{size:"md",tooltip:"Next log",onClick:a,disabled:!a,children:o.jsx(p3,{})})]}),o.jsx(zi.CloseButton,{onClick:t})]})]}),!d&&o.jsxs(zi.Content,{children:[o.jsx("p",{className:"text-ui-md text-neutral4 font-mono wrap-break-word whitespace-pre-wrap",children:e.message}),(h||m)&&o.jsxs("div",{className:X("my-8 grid gap-2","[&>button]:justify-between [&>button]:overflow-hidden"),children:[h&&o.jsxs(Mr,{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(O7,{}),o.jsx("span",{children:"Trace"}),o.jsxs("span",{className:"text-ui-sm text-neutral2 ml-auto min-w-0 truncate",children:["# ",h]})]}),o.jsx(Pa,{content:h,size:"md",tooltip:"Copy Trace ID to clipboard"})]}),m&&o.jsxs(Mr,{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(O7,{}),o.jsx("span",{children:"Span"}),o.jsxs("span",{className:"text-ui-sm text-neutral2 ml-auto min-w-0 truncate",children:["# ",m]})]}),o.jsx(Pa,{content:m,size:"md",tooltip:"Copy Span ID to clipboard"})]})]}),o.jsxs(cp,{className:"mb-6",children:[e.entityType&&o.jsxs(o.Fragment,{children:[o.jsx(cp.Key,{children:"Entity Type"}),o.jsx(cp.Value,{children:e.entityType})]}),e.entityName&&o.jsxs(o.Fragment,{children:[o.jsx(cp.Key,{children:"Entity Name"}),o.jsx(cp.Value,{children:e.entityName})]}),e.serviceName&&o.jsxs(o.Fragment,{children:[o.jsx(cp.Key,{children:"Service"}),o.jsx(cp.Value,{children:e.serviceName})]}),e.environment&&o.jsxs(o.Fragment,{children:[o.jsx(cp.Key,{children:"Environment"}),o.jsx(cp.Value,{children:e.environment})]}),e.source&&o.jsxs(o.Fragment,{children:[o.jsx(cp.Key,{children:"Source"}),o.jsx(cp.Value,{children:e.source})]}),e.metadata&&Object.keys(e.metadata).length>0&&o.jsx(o.Fragment,{children:Object.entries(e.metadata).map(([g,y])=>o.jsxs(v.Fragment,{children:[o.jsx(cp.Key,{children:g}),o.jsx(cp.Value,{children:String(y)})]},g))})]}),e.data&&Object.keys(e.data).length>0&&o.jsx(zi.CodeSection,{title:"Data",codeStr:JSON.stringify(e.data,null,2),className:"mt-6"})]})]})}function Els({error:e,resource:t,errorTitle:n}){if(ys(e))return o.jsx(Hs,{});if(xs(e))return o.jsx(Ms,{resource:t});if(O4(e))return o.jsx(Lr,{iconSlot:o.jsx(_7,{}),titleSlot:"Observability storage is not available",descriptionSlot:"The observability storage domain is disabled or not configured. Enable it in your storage configuration to view logs in Studio."});if(k4(e,"logs"))return o.jsx(Lr,{iconSlot:o.jsx(_7,{}),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(qi,{title:n,message:r??"Unknown error"})}function jls({listSlot:e,logPanelSlot:t,tracePanelSlot:n,spanPanelSlot:r,logCollapsed:s}){const a=!!t;return o.jsxs("div",{className:X("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:X("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 Tls={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 Nls({level:e}){const t=Tls[e];return o.jsx(To,{height:"compact",children:o.jsx("span",{className:"text-ui-sm font-semibold uppercase",style:{color:t.color},children:t.label})})}function Ils({entityType:e,className:t}){const n=X("size-3.5 shrink-0 text-neutral2",t);switch(e.toLowerCase()){case"agent":return o.jsx(Uo,{className:n,"aria-hidden":!0});case"workflow":case"workflow_run":return o.jsx(td,{className:n,"aria-hidden":!0});case"tool":return o.jsx(Ud,{className:n,"aria-hidden":!0});default:return null}}function Als({entityType:e,entityName:t}){const n=e??"";return o.jsxs(To,{height:"compact",className:"flex min-w-0 items-center gap-2",children:[o.jsx(Ils,{entityType:n}),t?o.jsx("span",{className:"text-ui-smd min-w-0 truncate",children:t}):"-"]})}function Rls({message:e}){return o.jsx(To,{height:"compact",className:"text-ui-smd text-neutral4 min-w-0 truncate font-mono",children:e})}function Pls({data:e}){if(!e||Object.keys(e).length===0)return o.jsx(To,{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(gEe,{children:t})}const Gl=Object.assign(R4,{Top:SZ,TopCell:iC,TopCellWithTooltip:kZ,TopCellSmart:q$t,RowWrapper:wEe,RowButton:P4,RowLink:H$t,Spacer:xEe,NoMatch:wZ,DateCell:vEe,TimeCell:yEe,LevelCell:Nls,EntityCell:Als,MessageCell:Rls,DataCell:Pls,NextPageLoading:xZ}),TXe="6rem 9rem 5rem 10rem minmax(8rem,1fr) minmax(8rem,1fr)",$ls=36,Mls=8;function Dls({logs:e,isLoading:t,isFetchingNextPage:n,hasNextPage:r,setEndOfListElement:s,logIdMap:a,featuredLogId:i,onLogClick:l}){const c=v.useRef(null),u=o7t({count:e.length,getScrollElement:()=>c.current,estimateSize:()=>$ls,overscan:Mls}),d=v.useRef(t);if(v.useEffect(()=>{d.current&&!t&&c.current?.dispatchEvent(new Event("scroll")),d.current=t},[t]),t)return o.jsx(ol,{columns:TXe});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(Gl,{columns:TXe,variant:"striped",scrollRef:c,className:"min-w-0",children:[o.jsxs(Gl.Top,{children:[o.jsx(Gl.TopCell,{children:"Date"}),o.jsx(Gl.TopCell,{children:"Time"}),o.jsx(Gl.TopCell,{children:"Level"}),o.jsx(Gl.TopCell,{children:"Entity"}),o.jsx(Gl.TopCell,{children:"Message"}),o.jsx(Gl.TopCell,{children:"Data"})]}),e.length===0?o.jsx(Gl.NoMatch,{message:"No logs match your search"}):o.jsxs(o.Fragment,{children:[o.jsx(Gl.Spacer,{height:h}),f.map(g=>{const y=e[g.index];if(!y)return null;const b=a.get(y);if(!b)return null;const x=b===i;return o.jsxs(Gl.RowButton,{ref:u.measureElement,"data-index":g.index,onClick:()=>l(y),featured:x,variant:y.level==="error"||y.level==="fatal"?"error":"default",children:[o.jsx(Gl.DateCell,{timestamp:y.timestamp}),o.jsx(Gl.TimeCell,{timestamp:y.timestamp}),o.jsx(Gl.LevelCell,{level:y.level}),o.jsx(Gl.EntityCell,{entityType:y.entityType,entityName:y.entityName}),o.jsx(Gl.MessageCell,{message:y.message}),o.jsx(Gl.DataCell,{data:y.data})]},b)}),o.jsx(Gl.Spacer,{height:m})]}),o.jsx(Gl.NextPageLoading,{isLoading:n,hasMore:r,setEndOfListElement:s})]})}function Lls({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=>Fls(f,a));return o.jsxs("div",{className:X("grid grid-cols-[1fr_auto] items-start gap-3"),children:[o.jsx(rIe,{fields:a,tokens:i,onTokensChange:l,disabled:s,autoFocusFieldId:c}),u&&o.jsx(tIe,{disabled:s,onClear:d?e:void 0,onRemoveAll:t,onSave:n,onRemoveSaved:r})]})}function Fls(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 zls={"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"},Nae="MMM d, yyyy HH:mm",Iae="Pick a wider range or lower the logging level — verbose entries (debug, info) may be filtered out.";function Bls({datePreset:e,dateFrom:t,dateTo:n}){return e&&e!=="all"&&e!=="custom"?{title:`No logs for ${zls[e]}`,description:Iae}:t&&n?{title:`No logs between ${nr(t,Nae)} and ${nr(n,Nae)}`,description:Iae}:t?{title:`No logs since ${nr(t,Nae)}`,description:Iae}:{title:"No logs yet",description:"Logs will appear here once agents, workflows, or tools are executed."}}const Uls=({datePreset:e,dateFrom:t,dateTo:n}={})=>{const{title:r,description:s}=Bls({datePreset:e,dateFrom:t,dateTo:n});return o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Lr,{iconSlot:o.jsx(_7,{}),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(Owe,{})]})})})},Vls=20,qls=1e4;function Hls(e,t,n){if(e?.pagination?.hasMore)return n+1}function Wls(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 Zls(e){return k4(e.state.error,"logs")||O4(e.state.error)?!1:qls}const Gls=({filters:e}={})=>{const t=We(),{inView:n,setRef:r}=Z_(),s=M1({queryKey:["logs",e],queryFn:({pageParam:p})=>t.listLogsVNext({pagination:{page:p,perPage:Vls},filters:e,orderBy:{field:"timestamp",direction:"DESC"}}),initialPageParam:0,getNextPageParam:Hls,select:Wls,retry:!1,refetchInterval:Zls}),{hasNextPage:a,isFetchingNextPage:i,fetchNextPage:l,data:c,isLoading:u,isError:d,error:f}=s;return v.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}},Fz={AGENT:"agent",WORKFLOW:"workflow_run",SCORER:"scorer",INGEST:"rag_ingestion"},j7t=[{label:"Agent",entityType:Fz.AGENT},{label:"Workflow",entityType:Fz.WORKFLOW},{label:"Scorer",entityType:Fz.SCORER},{label:"Ingest",entityType:Fz.INGEST}],Qls=[{label:"Debug",value:"debug"},{label:"Info",value:"info"},{label:"Warn",value:"warn"},{label:"Error",value:"error"},{label:"Fatal",value:"fatal"}],Ux="rootEntityType",Kb="datePreset",Xb="dateFrom",Jb="dateTo",Yls=new Set(["all","last-24h","last-3d","last-7d","last-14d","last-30d","custom"]),Nl={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"},TL=Object.keys(Nl),_Ie=new Set(["tags"]),CIe="mastra:logs:saved-filters";function Kls(e,t=CIe){const n=ncs(e),r=e.get(Kb);r&&n.set(Kb,r);const s=e.get(Xb);s&&n.set(Xb,s);const a=e.get(Jb);a&&n.set(Jb,a);try{localStorage.setItem(t,n.toString())}catch{}}function Xls(e=CIe){try{localStorage.removeItem(e)}catch{}}function NXe(e=CIe){try{const t=localStorage.getItem(e);if(!t)return null;const n=new URLSearchParams(t);return n.toString()?n:null}catch{return null}}function Jls(e){if(e.has(Kb)||e.has(Xb)||e.has(Jb)||e.has(Ux))return!0;for(const t of TL)if(e.has(Nl[t]))return!0;return!1}function ecs({availableTags:e,availableRootEntityNames:t,availableServiceNames:n,availableEnvironments:r,loading:s}){const a=[{id:"rootEntityType",label:"Primitive Type",kind:"pick-multi",searchable:!1,options:j7t.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:Qls.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 tcs(e){const t=[],n=new Map([[Ux,"rootEntityType"]]);for(const s of TL)n.set(Nl[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),_Ie.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 ncs(e){const t=new URLSearchParams,n=e.get(Ux);n&&t.set(Ux,n);for(const r of TL){const s=Nl[r];if(_Ie.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 rcs(e,t){e.delete(Ux);for(const n of TL)e.delete(Nl[n]);for(const n of t){if(n.fieldId==="rootEntityType"&&typeof n.value=="string"){e.set(Ux,n.value);continue}const r=Nl[n.fieldId];if(r){if(_Ie.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 scs({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 acs(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 ics="Filters setting for Logs saved",ocs="Filters setting for Logs cleared up";function lcs(e,t,n){const{storageKey:r,messages:s,skipHydration:a}={},[i,l]=v.useState(()=>NXe(r)!==null),c=v.useCallback(()=>{Kls(e,r),l(!0);const f=s?.saved??ics;f!==!1&&Le.success(f)},[e,r,s?.saved]),u=v.useCallback(()=>{Xls(r),l(!1);const f=s?.cleared??ocs;f!==!1&&Le.success(f)},[r,s?.cleared]),d=v.useRef(!1);return v.useEffect(()=>{if(a||d.current||(d.current=!0,Jls(e)))return;const f=NXe(r);f&&t(p=>{const h=new URLSearchParams(p);for(const[m,g]of f)h.append(m,g);return h},{replace:!0})},[]),{hasSavedFilters:i,handleSave:c,handleRemoveSaved:u}}function ccs(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 ucs(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,ccs(`${r}${n.message??""}${n.data?JSON.stringify(n.data):""}`))}return t}function dcs(e,t,n,r){const s=v.useMemo(()=>ucs(e),[e]),a=v.useMemo(()=>{const h=new Map;for(const[m,g]of e.entries()){const y=s.get(g);y&&h.set(y,{log:g,idx:m})}return h},[e,s]),l=(t?a.get(t):void 0)?.idx??-1,c=l>=0?e[l]??null:null,u=v.useCallback(h=>s.get(h),[s]),d=v.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 kbe="logId",Obe="traceId",_be="spanId",cP=1440*60*1e3,fcs={"last-24h":cP,"last-3d":3*cP,"last-7d":7*cP,"last-14d":14*cP,"last-30d":30*cP};function zz(e){e.delete(kbe),e.delete(Obe),e.delete(_be)}function pcs(e,t,n){const{onRemoveAll:r}={},s=v.useMemo(()=>{const _=e.get(Kb);return _&&Yls.has(_)?_:"last-24h"},[e]),a=e.get(Xb),i=e.get(Jb),l=v.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 _=fcs[s];return _?new Date(Date.now()-_):void 0},[s,a]),c=v.useMemo(()=>{if(s!=="custom"||!i)return;const _=new Date(i);return Number.isNaN(_.getTime())?void 0:_},[s,i]),u=v.useRef(s);u.current=s;const d=e.get(kbe),f=e.get(Obe),p=e.get(_be),h=v.useMemo(()=>j7t.find(_=>_.entityType===e.get(Ux)),[e]),m=v.useMemo(()=>tcs(e),[e]),g=v.useCallback(_=>{t(C=>{const j=new URLSearchParams(C);for(const[E,N]of Object.entries(_)){const I=E==="logId"?kbe:E==="traceId"?Obe:_be;N?j.set(I,N):j.delete(I)}return j},{replace:!0})},[t]),y=v.useCallback(_=>{t(C=>{const j=new URLSearchParams(C);return rcs(j,_),zz(j),j},{replace:!0})},[t]),b=y,x=v.useCallback((_,C)=>{if(u.current!=="custom")return;const j=C==="from"?Xb:Jb;t(E=>{const N=new URLSearchParams(E);return _?N.set(j,_.toISOString()):N.delete(j),zz(N),N},{replace:!0})},[t]),w=v.useCallback(_=>{u.current=_,t(C=>{const j=new URLSearchParams(C);return _==="last-24h"?(j.delete(Kb),j.delete(Xb),j.delete(Jb)):_==="custom"?j.set(Kb,"custom"):(j.set(Kb,_),j.delete(Xb),j.delete(Jb)),zz(j),j},{replace:!0})},[t]),k=v.useCallback(()=>{t(_=>{const C=new URLSearchParams(_);C.delete(Ux);for(const j of TL)C.delete(Nl[j]);return C.delete(Kb),C.delete(Xb),C.delete(Jb),zz(C),C},{replace:!0}),r?.()},[t,r]);return v.useMemo(()=>({searchParams:e,setSearchParams:t,datePreset:s,selectedDateFrom:l,selectedDateTo:c,datePresetRef:u,featuredLogId:d,featuredTraceId:f,featuredSpanId:p,selectedEntityOption:h,filterTokens:m,handleFeaturedChange:g,handleFilterTokensChange:b,handleDateChange:x,handleDatePresetChange:w,handleRemoveAll:k,applyFilterTokens:y}),[e,t,s,l,c,u,d,f,p,h,m,g,b,x,w,k,y])}const Cb=zi.KeyValueList;function hcs({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(zi,{children:[o.jsxs(zi.Header,{children:[o.jsxs(zi.Heading,{children:["Span ",o.jsxs("b",{children:["# ",e]})]}),o.jsx(zi.CloseButton,{onClick:r})]}),n?o.jsx(zi.LoadingData,{children:"Loading span..."}):t?o.jsxs(zi.Content,{children:[o.jsxs(Cb,{children:[t.spanType&&o.jsxs(o.Fragment,{children:[o.jsx(Cb.Key,{children:"Type"}),o.jsx(Cb.Value,{children:t.spanType})]}),t.startedAt&&o.jsxs(o.Fragment,{children:[o.jsx(Cb.Key,{children:"Started"}),o.jsx(Cb.Value,{children:nr(new Date(t.startedAt),"MMM dd, HH:mm:ss.SSS")})]}),t.endedAt&&o.jsxs(o.Fragment,{children:[o.jsx(Cb.Key,{children:"Ended"}),o.jsx(Cb.Value,{children:nr(new Date(t.endedAt),"MMM dd, HH:mm:ss.SSS")})]}),s!=null&&o.jsxs(o.Fragment,{children:[o.jsx(Cb.Key,{children:"Duration"}),o.jsx(Cb.Value,{children:s<1e3?`${s}ms`:`${(s/1e3).toFixed(2)}s`})]})]}),o.jsx("br",{}),o.jsx(zi.CodeSection,{title:"Input",icon:o.jsx(ghe,{}),codeStr:JSON.stringify(t.input??null,null,2)}),o.jsx(zi.CodeSection,{title:"Output",icon:o.jsx(vhe,{}),codeStr:JSON.stringify(t.output??null,null,2)}),o.jsx(zi.CodeSection,{title:"Metadata",icon:o.jsx(yw,{}),codeStr:JSON.stringify(t.metadata??null,null,2)}),o.jsx(zi.CodeSection,{title:"Attributes",icon:o.jsx(yw,{}),codeStr:JSON.stringify(t.attributes??null,null,2)})]}):o.jsx(zi.NoData,{children:"Span not found."})]})}function mcs({traceId:e,spans:t,isLoading:n,onClose:r,onSpanSelect:s,selectedSpanId:a}){const i=v.useMemo(()=>oIe(t??[]),[t]),[l,c]=v.useState([]);v.useEffect(()=>{i.length>0&&c(iIe(i))},[i]);const u=d=>{s?.(a===d?void 0:d)};return o.jsxs(zi,{children:[o.jsxs(zi.Header,{children:[o.jsxs(zi.Heading,{children:["Trace ",o.jsxs("b",{children:["# ",e]})]}),o.jsx(zi.CloseButton,{onClick:r})]}),n?o.jsx(zi.LoadingData,{children:"Loading trace..."}):i.length===0?o.jsx(zi.NoData,{children:"No spans found for this trace."}):o.jsx(zi.Content,{children:o.jsx(s7t,{hierarchicalSpans:i,onSpanClick:u,selectedSpanId:a??void 0,expandedSpanIds:l,setExpandedSpanIds:c})})]})}function gcs(){const[e,t]=Ri(),n=pcs(e,t),r=lcs(e,t),[s,a]=v.useState(),[i,l]=v.useState(!1),{data:c=[],isPending:u}=hIe(),{data:d=[],isPending:f}=dIe({entityType:n.selectedEntityOption?.entityType,rootOnly:!0}),{data:p=[],isPending:h}=fIe(),{data:m=[],isPending:g}=pIe(),y=v.useMemo(()=>ecs({availableTags:c,availableRootEntityNames:d,availableServiceNames:m,availableEnvironments:p,loading:{tags:u,entityNames:f,serviceNames:g,environments:h}}),[c,d,m,p,u,f,g,h]),b=v.useMemo(()=>scs({rootEntityType:n.selectedEntityOption?.entityType,dateFrom:n.selectedDateFrom,dateTo:n.selectedDateTo,tokens:n.filterTokens}),[n.filterTokens,n.selectedDateFrom,n.selectedDateTo,n.selectedEntityOption]),{data:x=[],isLoading:w,error:k,isFetchingNextPage:_,hasNextPage:C,setEndOfListElement:j}=Gls({filters:b}),{logIdMap:E,featuredLog:N,handleLogClick:I,handlePreviousLog:A,handleNextLog:R}=dcs(x,n.featuredLogId,n.handleFeaturedChange,n.featuredTraceId),{data:L,isLoading:D}=mIe(n.featuredTraceId??null),{data:B,isLoading:H}=jL(n.featuredTraceId??"",n.featuredSpanId??""),F=v.useCallback(()=>n.applyFilterTokens(acs(y,n.filterTokens)),[y,n]),z=v.useCallback(()=>n.handleFeaturedChange({logId:null}),[n]),V=v.useCallback(K=>n.handleFeaturedChange({traceId:K,spanId:null}),[n]),M=v.useCallback((K,te)=>n.handleFeaturedChange({traceId:K,spanId:te}),[n]),Q=v.useCallback(()=>{n.handleFeaturedChange({traceId:null,spanId:null}),l(!1)},[n]),q=v.useCallback(()=>n.handleFeaturedChange({spanId:null}),[n]),$=v.useCallback(K=>n.handleFeaturedChange({spanId:K??null}),[n]),U=o.jsxs(Ft.TopArea,{children:[o.jsx(Ft.Row,{children:o.jsxs(Ft.Column,{className:"flex flex-wrap items-start justify-start gap-2",children:[o.jsx(K3,{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(sIe,{fields:y,tokens:n.filterTokens,onTokensChange:n.handleFilterTokensChange,disabled:w,onStartTextFilter:a})]})}),o.jsx(Lls,{isLoading:w,filterFields:y,filterTokens:n.filterTokens,onFilterTokensChange:n.handleFilterTokensChange,onClear:F,onRemoveAll:n.handleRemoveAll,onSave:r.handleSave,onRemoveSaved:r.hasSavedFilters?r.handleRemoveSaved:void 0,autoFocusFilterFieldId:s})]});if(k)return o.jsxs(Ft,{width:"wide",height:"full",children:[U,o.jsx(Ft.MainArea,{isCentered:!0,children:o.jsx(Els,{error:k,resource:"logs",errorTitle:"Failed to load logs"})})]});const Z=!!n.selectedEntityOption||n.filterTokens.length>0;return x.length===0&&!w&&!Z?o.jsxs(Ft,{width:"wide",height:"full",children:[U,o.jsx(Ft.MainArea,{isCentered:!0,children:o.jsx(Uls,{datePreset:n.datePreset,dateFrom:n.selectedDateFrom,dateTo:n.selectedDateTo})})]}):o.jsxs(Ft,{width:"wide",height:"full",children:[U,o.jsx(jls,{logCollapsed:i,listSlot:o.jsx(Dls,{logs:x,isLoading:w,isFetchingNextPage:_,hasNextPage:C,setEndOfListElement:j,logIdMap:E,featuredLogId:n.featuredLogId,onLogClick:I}),logPanelSlot:N?o.jsx(Cls,{log:N,onClose:z,onTraceClick:V,onSpanClick:M,onPrevious:A,onNext:R,collapsed:i,onCollapsedChange:l}):null,tracePanelSlot:n.featuredTraceId?o.jsx(mcs,{traceId:n.featuredTraceId,spans:L?.spans,isLoading:D,onClose:Q,onSpanSelect:$,selectedSpanId:n.featuredSpanId}):null,spanPanelSlot:n.featuredTraceId&&n.featuredSpanId?o.jsx(hcs,{spanId:n.featuredSpanId,span:B?.span,isLoading:H,onClose:q}):null})]})}function vcs({server:e}){const{paths:t,Link:n}=yn(),s=We().options.baseUrl,a=s?`${s}/api/mcp/${e.id}/sse`:"",{data:i}=Mzt(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=Cy(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 ycs({mcpServers:e,isLoading:t,search:n=""}){const r=v.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(ol,{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(Uo,{}),tooltip:"Agent Tools",className:"text-center"}),o.jsx(ve.TopCellSmart,{long:"Tools",short:o.jsx(Ud,{}),tooltip:"Tools",className:"text-center"}),o.jsx(ve.TopCellSmart,{long:"Workflows",short:o.jsx(td,{}),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(vcs,{server:s},s.id))]})}const bcs=()=>o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Lr,{iconSlot:o.jsx(Rf,{}),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(Sa,{})]})})}),xcs=()=>{const{data:e=[],isLoading:t,error:n}=DG(),[r,s]=v.useState("");return n&&ys(n)?o.jsx(lr,{children:o.jsx(Hs,{})}):n&&xs(n)?o.jsx(lr,{children:o.jsx(Ms,{resource:"MCP servers"})}):n?o.jsx(lr,{children:o.jsx(qi,{title:"Failed to load MCP servers",message:n.message})}):e.length===0&&!t?o.jsx(lr,{children:o.jsx(bcs,{})}):o.jsxs(Ft,{children:[o.jsx(Ft.TopArea,{children:o.jsx("div",{className:"max-w-120",children:o.jsx(Lf,{onSearch:s,label:"Filter MCP servers",placeholder:"Filter by name"})})}),o.jsx(ycs,{mcpServers:e,isLoading:t,search:r})]})},wcs=(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 Scs({tools:e,agents:t,isLoading:n,search:r=""}){const{paths:s,Link:a}=yn(),i=v.useMemo(()=>wcs(e,t),[e,t]),l=v.useMemo(()=>i.filter(c=>c.id.toLowerCase().includes(r.toLowerCase())),[i,r]);return n?o.jsx(ol,{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(Uo,{}),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=Cy(c.id,50),d=Cy(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 kcs=()=>o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Lr,{iconSlot:o.jsx(Rf,{}),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(Sa,{})]})})}),Ocs=()=>{const e=We();return Mn({mutationFn:async({toolId:t,input:n,requestContext:r})=>{const s=new E_;Object.entries(r??{}).forEach(([a,i])=>{s.set(a,i)});try{return await e.getTool(t).execute({data:n,requestContext:s})}catch(a){throw Le.error("Error executing dev tool"),console.error("Error executing dev tool:",a),a}}})},_cs=({toolId:e})=>{const{canExecute:t}=ul(),n=t("tools"),{data:r={}}=Tm(),s=v.useMemo(()=>{for(const g of Object.values(r))if(g.tools){const y=Object.values(g.tools).find(b=>b.id===e);if(y)return y}return null},[r,e]),{data:a,isLoading:i,error:l}=ljr(e,{enabled:!s}),c=s||a,{mutateAsync:u,isPending:d,data:f}=Ocs(),{requestContext:p}=_s();v.useEffect(()=>{if(l){const g=l instanceof Error?l.message:"Failed to load tool";Le.error(`Error loading tool: ${g}`)}},[l]);const h=async(g,y)=>{if(!c)return;const b={...p??{},...y??{}};return u({toolId:c.id,input:g,requestContext:b})},m=c?.inputSchema?hm(fm(Ox(c?.inputSchema))):ks({});return i?o.jsxs("div",{className:"p-6",children:[o.jsx(xt,{className:"mb-4 h-8 w-48"}),o.jsx(xt,{className:"h-32 w-full"})]}):l?null:c?n?o.jsx(ANe,{executionResult:f,isExecutingTool:d,zodInputSchema:m,handleExecuteTool:h,toolDescription:c.description,toolId:c.id,requestContextSchema:c.requestContextSchema}):o.jsx("div",{className:"px-6 py-12 text-center",children:o.jsx(ye,{variant:"ui-sm",className:"text-neutral3",children:"You don't have permission to execute tools."})}):o.jsx("div",{className:"px-6 py-12 text-center",children:o.jsx(ye,{variant:"header-md",className:"text-neutral3",children:"Tool not found"})})};function Ccs({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}=PI(),{data:p={},isLoading:h,isError:m,error:g}=Tm(),{navigate:y,paths:b}=yn();v.useEffect(()=>{if(d){const _=f instanceof Error?f.message:"Failed to load tools";Le.error(`Error loading tools: ${_}`)}},[d,f]),v.useEffect(()=>{if(m){const _=g instanceof Error?g.message:"Failed to load agents";Le.error(`Error loading agents: ${_}`)}},[m,g]);const x=new Map;Object.values(p).forEach(_=>{_.tools&&Object.values(_.tools).forEach(C=>{x.has(C.id)||x.set(C.id,C)})}),Object.values(c).forEach(_=>{x.has(_.id)||x.set(_.id,_)});const w=Array.from(x.values()).map(_=>({label:_.id,value:_.id})),k=_=>{t?t(_):_&&_!==e&&y(b.toolLink(_))};return o.jsx(ac,{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 Ecs=({isLoading:e,server:t})=>{const[{sseUrl:n,httpStreamUrl:r},s]=v.useState({sseUrl:"",httpStreamUrl:""});if(v.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(Ey,{children:o.jsx(ye,{as:"h1",variant:"header-md",className:"text-neutral3 py-20 text-center font-medium",children:"Server not found"})});const a=`npx -y mcp-remote ${n}`;return o.jsxs(Ey,{isDivided:!0,children:[o.jsxs("div",{className:"mx-auto w-full max-w-2xl px-8 py-12",children:[o.jsx(ye,{as:"h1",variant:"header-md",className:"text-neutral6 pb-4 font-medium",children:t.name}),o.jsxs("div",{className:"flex items-center gap-1 pb-6",children:[o.jsx(cn,{icon:o.jsx(t7t,{className:"text-neutral6"}),className:"text-neutral4! rounded-r-sm",children:"Version"}),o.jsx(cn,{className:"text-neutral4! rounded-l-sm",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:"border-border1 bg-surface3 rounded-lg border p-4",children:[o.jsx(cn,{icon:o.jsx("span",{className:"text-accent1 mr-1 w-6 font-mono font-medium",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:"bg-surface4 rounded-lg px-2 py-1",children:r}),o.jsx("div",{className:"pt-1",children:o.jsx(Pa,{tooltip:"Copy HTTP Stream URL",content:r})})]})]}),o.jsxs("div",{className:"border-border1 bg-surface3 rounded-lg border p-4",children:[o.jsx(cn,{icon:o.jsx("span",{className:"text-accent1 mr-1 w-6 font-mono font-medium",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:"bg-surface4 rounded-lg px-2 py-1",children:n}),o.jsx("div",{className:"pt-1",children:o.jsx(Pa,{tooltip:"Copy SSE URL",content:n})})]})]}),o.jsxs("div",{className:"border-border1 bg-surface3 rounded-lg border p-4",children:[o.jsx(cn,{icon:o.jsx("span",{className:"text-accent1 mr-1 w-6 font-mono font-medium",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:"bg-surface4 rounded-lg px-2 py-1",children:a}),o.jsx("div",{className:"pt-1",children:o.jsx(Pa,{tooltip:"Copy Command Line Config",content:a})})]})]})]})]}),o.jsx("div",{className:"border-border1 h-full overflow-y-scroll border-l",children:o.jsx(jcs,{server:t})})]})},jcs=({server:e})=>{const{data:t={},isLoading:n}=Mzt(e);if(n)return null;const r=Object.keys(t);return o.jsxs("div",{className:"overflow-y-scroll p-5",children:[o.jsxs("div",{className:"text-neutral6 flex items-center gap-2",children:[o.jsx(qe,{size:"lg",className:"bg-surface4 rounded-md p-1",children:o.jsx(mC,{})}),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(Ncs,{tool:a,serverId:e.id},s)})})]})};function Tcs(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 Ncs=({tool:e,serverId:t})=>{const n=v.useRef(null),{Link:r,paths:s}=yn(),a=l8t[e.toolType||"tool"],i=Tcs(e._meta);return o.jsxs(zf,{onClick:()=>n.current?.click(),children:[o.jsx(n$t,{children:o.jsx(a,{className:"group-hover/entity:text-accent6"})}),o.jsxs(Uf,{children:[o.jsx(Bf,{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(cn,{className:"py-0 text-[10px]",children:"App"})]})}),o.jsx(rh,{children:e.description})]})]})},Ics=()=>{const{serverId:e}=Sr(),{data:t=[],isLoading:n}=DG(),r=t.find(s=>s.id===e);return o.jsx("div",{className:"h-full w-full overflow-hidden",children:o.jsx(Ecs,{isLoading:n,server:r})})};function Acs(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 Rcs=({toolId:e,serverId:t})=>{const{canExecute:n}=ul(),r=n("tools"),s=We(),{data:a,isLoading:i,error:l}=_Ne(t,e),{mutateAsync:c,isPending:u,data:d}=rQr(t,e),f=a?Acs(a._meta):void 0,{data:p}=mt({queryKey:["mcp-app-resource",t,f],queryFn:async()=>f?(await s.readMcpServerResource(t,f)).contents[0]?.text??null:null,enabled:!!f}),h=v.useCallback(async(y,b)=>await c(b),[c]);v.useEffect(()=>{if(l){const y=l instanceof Error?l.message:"Failed to load tool";Le.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:"mb-4 h-8 w-48"}),o.jsx(xt,{className:"h-32 w-full"})]});if(l)return null;if(!a)return o.jsx("div",{className:"px-6 py-12 text-center",children:o.jsx(ye,{variant:"header-md",className:"text-neutral3",children:"Tool not found"})});if(!r)return o.jsx("div",{className:"px-6 py-12 text-center",children:o.jsx(ye,{variant:"ui-sm",className:"text-neutral3",children:"You don't have permission to execute tools."})});let g;try{g=hm(fm(a.inputSchema))}catch(y){console.error("Error processing input schema:",y),Le.error("Failed to process tool input schema."),g=ks({})}return o.jsxs("div",{className:"flex flex-col gap-4",children:[p&&o.jsx("div",{className:"border-border1 border-b p-4",children:o.jsx($zt,{html:p,toolName:a.name??a.id,onToolCall:h})}),o.jsx(ANe,{executionResult:d,isExecutingTool:u,zodInputSchema:g,handleExecuteTool:m,toolDescription:a.description||"",toolId:a.id})]})},Pcs=()=>{const{serverId:e,toolId:t}=Sr(),{data:n,isLoading:r}=_Ne(e,t);return r||!n?null:o.jsx("div",{className:"h-full w-full overflow-y-auto",children:o.jsx(Rcs,{toolId:t,serverId:e})})},T7t=[{label:"Agent",entityType:"agent"},{label:"Workflow",entityType:"workflow_run"},{label:"Scorer",entityType:"scorer"},{label:"Ingest",entityType:"rag_ingestion"}],$N="rootEntityType",MN={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"},cQ=Object.keys(MN),EIe="mastra:metrics:saved-filters";function $cs(e){const t=zcs(e);try{localStorage.setItem(EIe,t.toString())}catch{}}function Mcs(){try{localStorage.removeItem(EIe)}catch{}}function N7t(){try{const e=localStorage.getItem(EIe);if(!e)return null;const t=new URLSearchParams(e);return t.toString()?t:null}catch{return null}}function Dcs(e){if(e.has($N))return!0;for(const t of cQ)if(e.has(MN[t]))return!0;return!1}function Lcs({availableTags:e,availableEntityNames:t,availableServiceNames:n,availableEnvironments:r,loading:s}){const a=[{id:"rootEntityType",label:"Primitive Type",kind:"pick-multi",searchable:!1,options:T7t.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 Fcs(e){const t=[],n=new Map([[$N,"rootEntityType"]]);for(const s of cQ)n.set(MN[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 zcs(e){const t=new URLSearchParams,n=e.getAll($N);for(const r of n)t.append($N,r);for(const r of cQ){const s=MN[r],a=e.getAll(s);for(const i of a)t.append(s,i)}return t}function Bcs(e,t){e.delete($N);for(const n of cQ)e.delete(MN[n]);for(const n of t){const r=n.fieldId==="rootEntityType"?$N:MN[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 Ucs="Any";function IXe(e){const t=e.trim();return t===""||t===Ucs}const Vcs=new Set(T7t.map(e=>e.entityType));function AXe(e){const t=e.trim();return Vcs.has(t)?t:void 0}function qcs(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=>!IXe(a));if(s.length===0)continue;if(r==="tags")t.tags=s;else if(r==="rootEntityType"){const a=s[0],i=a!==void 0?AXe(a):void 0;i&&(t.rootEntityType=i)}else t[r]=s[0]}else if(typeof n.value=="string"){if(IXe(n.value))continue;const s=n.value.trim();if(r==="rootEntityType"){const a=AXe(s);a&&(t.rootEntityType=a)}else t[r]=s}}return t}const I7t=[{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"}],Hcs=new Set(I7t.map(e=>e.value));function Wcs(e){return typeof e=="string"&&(Hcs.has(e)||e==="custom")}const A7t=v.createContext({datePreset:"24h",setDatePreset:()=>{},customRange:void 0,setCustomRange:()=>{},dateRangeLabel:"Last 24 hours",filterTokens:[],setFilterTokens:()=>{},dimensionalFilter:{},dimensionalFilterKey:"{}",tracesBasePath:void 0,logsBasePath:void 0});function uQ(){return v.useContext(A7t)}function Zcs(e,t){return e!=="custom"?I7t.find(n=>n.value===e)?.label??e:t?.from?t.to?`${nr(t.from,"MMM d, yyyy")} – ${nr(t.to,"MMM d, yyyy")}`:nr(t.from,"MMM d, yyyy"):"Custom range"}function Gcs({children:e,preset:t,filterTokens:n,onPresetChange:r,onFilterTokensChange:s,customRange:a,onCustomRangeChange:i,tracesBasePath:l,logsBasePath:c}){const u=v.useMemo(()=>JSON.stringify(n),[n]),d=v.useMemo(()=>n,[u]),f=v.useMemo(()=>qcs(d),[d]),p=v.useMemo(()=>JSON.stringify(f),[f]),h=Zcs(t,a),m=v.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(A7t.Provider,{value:m,children:e})}const Qcs=["last-24h","last-3d","last-7d","last-14d","last-30d","custom"];function Ycs(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 Kcs(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 Xcs(){const{datePreset:e,setDatePreset:t,customRange:n,setCustomRange:r}=uQ(),s=v.useRef(e);s.current=e;const a=v.useRef(n);return a.current=n,o.jsx(K3,{preset:Ycs(e),onPresetChange:i=>{const l=Kcs(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:Qcs})}const Cbe=1440*60*1e3,Jcs={"24h":Cbe,"3d":4320*60*1e3,"7d":10080*60*1e3,"14d":336*60*60*1e3,"30d":720*60*60*1e3};function eus(e,t,n){if(e!=="custom"){const r=Jcs[e]??Cbe;return{start:new Date(n-r),end:new Date(n)}}return{start:t?.from??new Date(n-Cbe),end:t?.to??new Date(n)}}function Rm(){const{datePreset:e,customRange:t,dimensionalFilter:n,dimensionalFilterKey:r}=uQ(),s=v.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=v.useMemo(()=>eus(e,t,i),[e,t,i]),c=v.useMemo(()=>({timestamp:l,...n}),[l,r]),u=v.useMemo(()=>`${a}|${r}`,[a,r]);return{datePreset:e,customRange:t,timestamp:l,filters:c,dimensionalFilter:n,filterKey:u}}function R7t(){const e=We(),{filters:t,filterKey:n}=Rm();return mt({queryKey:["metrics","agent-runs-kpi",n],queryFn:()=>e.getMetricAggregate({name:["mastra_agent_duration_ms"],aggregation:"count",filters:t,comparePeriod:"previous_period"})})}const tus=new Set(["ObservabilityStorageClickhouseVNext","ObservabilityStorageDuckDB","ObservabilityInMemory","ObservabilitySpanner","ObservabilityStoragePostgresVNext"]),nus=()=>{const{data:e,isLoading:t}=M4(),n=e?.observabilityStorageType;return{supportsMetrics:e?.observabilityStorageCapabilities?.metrics??(n?tus.has(n):!1),isInMemory:n==="ObservabilityInMemory",isLoading:t}};function NL({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(AEn,{})})}function rus({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(hjn,{})})}const sus=[{dataKey:"p50",label:"p50",color:Bp.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:Bp.yellow,aggregate:e=>({value:e.length>0?`${Math.round(e.reduce((t,n)=>t+n.p95,0)/e.length)}`:"0",suffix:"avg ms"})}];function aus(e){return e==="agents"||e==="workflows"||e==="tools"}function Aae({data:e,onPointClick:t}){return e.length===0?o.jsx(Ht.NoData,{message:"No latency data yet"}):o.jsx(PV,{data:e,series:sus,onPointClick:t?n=>{const r=n;typeof r?.tsMs=="number"&&Number.isFinite(r.tsMs)&&t(r)}:void 0})}function ius({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]=v.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),g=e?Object.values(e).filter(Array.isArray).flat().map(b=>b.p50).filter(b=>typeof b=="number"):[],y=g.length>0?`${Math.round(g.reduce((b,x)=>b+x,0)/g.length)}ms`:"—";return o.jsxs(Ht,{children:[o.jsxs(Ht.TopBar,{children:[o.jsx(Ht.TitleAndDescription,{title:"Latency",description:"Hourly p50 and p95 latency."}),m&&o.jsx(Ht.Summary,{value:y,label:"Avg p50"}),h?o.jsx(Ht.Actions,{children:h}):null]}),t?o.jsx(Ht.Loading,{}):n?o.jsx(Ht.Error,{message:"Failed to load latency data"}):o.jsx(Ht.Content,{children:m?o.jsxs(Dc,{value:p,onValueChange:b=>{aus(b)&&c[b]&&f(b)},defaultTab:u,className:"overflow-visible",children:[o.jsxs(Mc,{children:[o.jsx(Rr,{value:"agents",disabled:!a,disabledTooltip:"No agent latency data for this period",children:"Agents"}),o.jsx(Rr,{value:"workflows",disabled:!i,disabledTooltip:"No workflow latency data for this period",children:"Workflows"}),o.jsx(Rr,{value:"tools",disabled:!l,disabledTooltip:"No tool latency data for this period",children:"Tools"})]}),o.jsx(Xr,{value:"agents",children:o.jsx(Aae,{data:e.agentData,onPointClick:r?b=>r("agents",b):void 0})}),o.jsx(Xr,{value:"workflows",children:o.jsx(Aae,{data:e.workflowData,onPointClick:r?b=>r("workflows",b):void 0})}),o.jsx(Xr,{value:"tools",children:o.jsx(Aae,{data:e.toolData,onPointClick:r?b=>r("tools",b):void 0})})]}):o.jsx(Ht.NoData,{message:"No latency data yet"})})]})}function ous(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 lus(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 P7t(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=ous(s);l&&e.set(t,l)}function Po(e,t,n){typeof n=="string"&&n.length>0&&e.set(t,n)}function $7t(e,t,n){if(!(!Array.isArray(n)||n.length===0))for(const r of n)r&&e.append(t,r)}function RXe({preset:e,customRange:t,dashboardFilter:n,scope:r,tracesBasePath:s="/observability"}){const a=new URLSearchParams;a.set(Ow,"branches"),P7t(a,_w,Cw,Ew,e,t,r.window);const i=r.rootEntityType??n.rootEntityType;i&&a.set(zx,i),r.status&&a.set(Bx,r.status),Po(a,Tl.entityName,r.entityName??n.entityName),Po(a,Tl.threadId,r.threadId??n.threadId),Po(a,Tl.resourceId,r.resourceId??n.resourceId),Po(a,Tl.entityId,n.entityId),Po(a,Tl.runId,n.runId),Po(a,Tl.sessionId,n.sessionId),Po(a,Tl.requestId,n.requestId),Po(a,Tl.userId,n.userId),Po(a,Tl.organizationId,n.organizationId),Po(a,Tl.experimentId,n.experimentId),Po(a,Tl.serviceName,n.serviceName),Po(a,Tl.environment,n.environment),$7t(a,Tl.tags,n.tags);const l=a.toString();return l?`${s}?${l}`:s}function cus({preset:e,customRange:t,dashboardFilter:n,scope:r,logsBasePath:s="/logs"}){const a=new URLSearchParams;P7t(a,Kb,Xb,Jb,e,t,r.window);const i=r.rootEntityType??n.rootEntityType;i&&a.set(Ux,i),Po(a,Nl.entityName,r.entityName??n.entityName),Po(a,Nl.threadId,r.threadId??n.threadId),Po(a,Nl.resourceId,r.resourceId??n.resourceId),Po(a,Nl.runId,n.runId),Po(a,Nl.sessionId,n.sessionId),Po(a,Nl.requestId,n.requestId),Po(a,Nl.userId,n.userId),Po(a,Nl.organizationId,n.organizationId),Po(a,Nl.experimentId,n.experimentId),Po(a,Nl.serviceName,n.serviceName),Po(a,Nl.environment,n.environment),$7t(a,Nl.tags,n.tags),r.status==="error"&&a.append(Nl.level,"error");const l=a.toString();return l?`${s}?${l}`:s}function XI(){const{datePreset:e,customRange:t,dimensionalFilter:n,tracesBasePath:r,logsBasePath:s}=uQ(),a=v.useCallback((c={})=>RXe({preset:e,customRange:t,dashboardFilter:n,scope:c,tracesBasePath:r}),[e,t,n,r]),i=v.useCallback((c={})=>cus({preset:e,customRange:t,dashboardFilter:n,scope:c,logsBasePath:s}),[e,t,n,s]),l=v.useCallback((c,u,d)=>{const f=lus(u,d);return RXe({preset:e,customRange:t,dashboardFilter:n,scope:{...c,window:f},tracesBasePath:r})},[e,t,n,r]);return{getTracesHref:a,getLogsHref:i,getBucketTracesHref:l}}const M7t="1h";async function Rae(e,t,n){const r=await e.getMetricPercentiles({name:t,percentiles:[.5,.95],interval:M7t,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 uus(){const e=We(),{filters:t,filterKey:n}=Rm();return mt({queryKey:["metrics","latency",n],queryFn:async()=>{const[r,s,a]=await Promise.all([Rae(e,"mastra_agent_duration_ms",t),Rae(e,"mastra_workflow_duration_ms",t),Rae(e,"mastra_tool_duration_ms",t)]);return{agentData:r,workflowData:s,toolData:a,interval:M7t}}})}const PXe={agents:lu.AGENT,workflows:lu.WORKFLOW_RUN,tools:lu.TOOL};function dus(){const{data:e,isLoading:t,isError:n}=uus(),{getTracesHref:r,getBucketTracesHref:s}=XI(),{Link:a}=yn(),i=qs();return o.jsx(ius,{data:e,isLoading:t,isError:n,onPointClick:(l,c)=>{Number.isFinite(c.tsMs)&&i(s({rootEntityType:PXe[l]},c.tsMs,"1h"))},actions:l=>o.jsx(NL,{href:r({rootEntityType:PXe[l]}),LinkComponent:a})})}function fus(e){return e==="threads"||e==="resources"}function Pae(e){return e.length<=12?e:`${e.slice(0,6)}…${e.slice(-4)}`}function pus({threads:e,resources:t,getThreadRowHref:n,getResourceRowHref:r,actions:s,LinkComponent:a}){const[i,l]=v.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,g=typeof s=="function"?s(i):s;return o.jsxs(Ht,{children:[o.jsxs(Ht.TopBar,{children:[o.jsx(Ht.TitleAndDescription,{title:"Memory",description:"Resource and Thread consumption"}),i==="threads"&&d&&o.jsx(Ht.Summary,{value:p.toLocaleString(),label:"Total runs"}),i==="resources"&&f&&o.jsx(Ht.Summary,{value:h.toLocaleString(),label:"Total threads"}),g?o.jsx(Ht.Actions,{children:g}):null]}),m.isLoading?o.jsx(Ht.Loading,{}):m.isError?o.jsx(Ht.Error,{message:"Failed to load memory data"}):o.jsx(Ht.Content,{children:o.jsxs(Dc,{defaultTab:"threads",value:i,onValueChange:y=>{fus(y)&&l(y)},className:"grid h-full grid-rows-[auto_1fr] overflow-y-auto",children:[o.jsxs(Mc,{children:[o.jsx(Rr,{value:"threads",children:"Threads"}),o.jsx(Rr,{value:"resources",children:"Resources"})]}),o.jsx(Xr,{value:"threads",children:d?o.jsxs(ve,{columns:"auto auto auto auto auto",...xbe,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),x=o.jsxs(o.Fragment,{children:[o.jsx(ve.RowHeaderCell,{height:"compact",className:"text-ui-sm",children:Pae(y.threadId)}),o.jsx(ve.NumberCell,{children:y.resourceId?Pae(y.resourceId):"—"}),o.jsx(ve.NumberCell,{highlight:!0,children:y.runs.toLocaleString()}),o.jsx(ve.NumberCell,{children:y.tokens>0?Oc(y.tokens):"—"}),o.jsx(ve.NumberCell,{children:y.cost!=null?jg(y.cost,y.costUnit):"—"})]});return b?o.jsx(ve.RowLink,{to:b,LinkComponent:a,children:x},y.key):o.jsx(ve.RowStatic,{children:x},y.key)})]}):o.jsx(Ht.NoData,{message:"No thread activity yet"})}),o.jsx(Xr,{value:"resources",children:f?o.jsxs(ve,{columns:"auto auto auto auto",...xbe,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),x=o.jsxs(o.Fragment,{children:[o.jsx(ve.RowHeaderCell,{height:"compact",className:"text-ui-sm",children:Pae(y.resourceId)}),o.jsx(ve.NumberCell,{highlight:!0,children:y.threadCount.toLocaleString()}),o.jsx(ve.NumberCell,{children:y.tokens>0?Oc(y.tokens):"—"}),o.jsx(ve.NumberCell,{children:y.cost!=null?jg(y.cost,y.costUnit):"—"})]});return b?o.jsx(ve.RowLink,{to:b,LinkComponent:a,children:x},y.key):o.jsx(ve.RowStatic,{children:x},y.key)})]}):o.jsx(Ht.NoData,{message:"No resource activity yet"})})]})})]})}function IL(e,t,n){const r=e.get(t);if(r!==void 0)return r;const s=n();return e.set(t,s),s}const $ae=20;function hus(){const e=We(),{filters:t,filterKey:n}=Rm();return mt({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:$ae}),e.getMetricBreakdown({...r,name:["mastra_model_total_input_tokens"],aggregation:"sum",limit:$ae}),e.getMetricBreakdown({...r,name:["mastra_model_total_output_tokens"],aggregation:"sum",limit:$ae})]),l=new Map,c=d=>IL(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 Mae=20;function mus(){const e=We(),{filters:t,filterKey:n}=Rm();return mt({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:Mae}),e.getMetricBreakdown({...r,name:["mastra_model_total_input_tokens"],aggregation:"sum",limit:Mae}),e.getMetricBreakdown({...r,name:["mastra_model_total_output_tokens"],aggregation:"sum",limit:Mae})]),l=new Map,c=d=>IL(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 gus(){const e=hus(),t=mus(),{getTracesHref:n}=XI(),{Link:r}=yn();return o.jsx(pus,{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 AL({label:e,value:t,prevValue:n,changePct:r,isLoading:s,isError:a}){const i=t!=null;return o.jsxs(es,{children:[o.jsx(es.Label,{children:e}),o.jsx(es.Value,{className:i?void 0:"invisible",children:i?t:"—"}),a?o.jsx(es.Error,{}):s?o.jsx(es.Loading,{}):i?r!=null?o.jsx(es.Change,{changePct:r,prevValue:n}):o.jsx(es.NoChange,{}):o.jsx(es.NoData,{})]})}function vus(){const e=We(),{filters:t,filterKey:n}=Rm();return mt({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 yus(){const e=We(),{filters:t,filterKey:n}=Rm();return mt({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 bus(){const e=We(),{filters:t,filterKey:n}=Rm();return mt({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 xus(){const e=We(),{filters:t,filterKey:n}=Rm();return mt({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 wus(){const{data:e,isLoading:t,isError:n}=R7t();return o.jsx(AL,{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 Sus(){const{data:e,isLoading:t,isError:n}=bus();return o.jsx(AL,{label:"Total Model Cost",value:e?.cost!=null?jg(e.cost,e.costUnit):null,prevValue:e?.previousCost!=null?jg(e.previousCost,e.costUnit):void 0,changePct:e?.costChangePercent??null,isLoading:t,isError:n})}function kus(){const{data:e,isLoading:t,isError:n}=xus();return o.jsx(AL,{label:"Total Tokens",value:e?.value!=null?Oc(e.value):null,prevValue:e?.previousValue!=null?Oc(e.previousValue):void 0,changePct:e?.changePercent??null,isLoading:t,isError:n})}function Ous(){const{data:e,isLoading:t,isError:n}=yus();return o.jsx(AL,{label:"Total Threads",value:e?.value!=null?Oc(e.value):null,prevValue:e?.previousValue!=null?Oc(e.previousValue):void 0,changePct:e?.changePercent??null,isLoading:t,isError:n})}function _us(){const{data:e,isLoading:t,isError:n}=vus();return o.jsx(AL,{label:"Total Resources",value:e?.value!=null?Oc(e.value):null,prevValue:e?.previousValue!=null?Oc(e.previousValue):void 0,changePct:e?.changePercent??null,isLoading:t,isError:n})}function Cus({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=>Eus(f,a));return o.jsxs("div",{className:X("grid grid-cols-[1fr_auto] gap-3 items-start"),children:[o.jsx(rIe,{fields:a,tokens:i,onTokensChange:l,disabled:s,autoFocusFieldId:c}),u&&o.jsx(tIe,{disabled:s,onClear:d?e:void 0,onRemoveAll:t,onSave:n,onRemoveSaved:r})]})}function Eus(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 jus({rows:e,isLoading:t,isError:n,getRowHref:r,actions:s,LinkComponent:a}){const i=!!e&&e.length>0;return o.jsxs(Ht,{children:[o.jsxs(Ht.TopBar,{children:[o.jsx(Ht.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?jg(l):"—":c.size===1?u=l>0?jg(l,[...c][0]):"—":u="Mixed",o.jsx(Ht.Summary,{value:u,label:"Total cost"})})(),s?o.jsx(Ht.Actions,{children:s}):null]}),t?o.jsx(Ht.Loading,{}):n?o.jsx(Ht.Error,{message:"Failed to load model usage data"}):o.jsx(Ht.Content,{children:i?o.jsxs(ve,{columns:"auto auto auto auto auto auto",...xbe,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?jg(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(Ht.NoData,{message:"No model usage data yet"})})]})}function Tus(){const e=We(),{filters:t,filterKey:n}=Rm();return mt({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=>IL(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:Oc(f.input),output:Oc(f.output),cacheRead:Oc(f.cacheRead),cacheWrite:Oc(f.cacheWrite),cost:f.cost,costUnit:f.costUnit})).sort((d,f)=>d.model.localeCompare(f.model))}})}function Nus(){const{data:e,isLoading:t,isError:n}=Tus(),{getTracesHref:r}=XI(),{Link:s}=yn();return o.jsx(jus,{rows:e,isLoading:t,isError:n,LinkComponent:s,getRowHref:()=>r({rootEntityType:lu.AGENT}),actions:o.jsx(NL,{href:r({rootEntityType:lu.AGENT}),LinkComponent:s})})}function Ius(e){return e==="tokens"||e==="cost"}function Aus({data:e,isLoading:t,isError:n,getRowHref:r,actions:s,LinkComponent:a}){const[i,l]=v.useState("tokens"),c=e??[],u=c.length>0,d=c.reduce((b,x)=>b+x.total,0),f=c.filter(b=>b.cost!=null&&b.cost>0),p=new Set(f.map(b=>b.costUnit??"usd")),h=p.size<=1,m=h?[...p][0]??"usd":null,g=h?f.reduce((b,x)=>b+(x.cost??0),0):0,y=h&&g>0;return o.jsxs(Ht,{children:[o.jsxs(Ht.TopBar,{children:[o.jsx(Ht.TitleAndDescription,{title:"Token Usage by Agent",description:"Token consumption grouped by agent."}),u&&(i==="cost"&&y?o.jsx(Ht.Summary,{value:jg(g,m),label:"Total cost"}):o.jsx(Ht.Summary,{value:Oc(d),label:"Total tokens"})),u&&s?o.jsx(Ht.Actions,{children:s}):null]}),t?o.jsx(Ht.Loading,{}):n?o.jsx(Ht.Error,{message:"Failed to load token usage data"}):o.jsx(Ht.Content,{children:u?o.jsxs(Dc,{defaultTab:"tokens",value:i,onValueChange:b=>{Ius(b)&&l(b)},className:"grid h-full grid-rows-[auto_1fr] overflow-y-auto",children:[o.jsxs(Mc,{children:[o.jsx(Rr,{value:"tokens",children:"Tokens"}),o.jsx(Rr,{value:"cost",children:"Cost"})]}),o.jsx(Xr,{value:"tokens",children:o.jsx(PN,{LinkComponent:a,data:c.map(b=>({name:b.name,values:[b.input,b.output],href:r?.(b)})),segments:[{label:"Input",color:Bp.blueDark},{label:"Output",color:Bp.blue}],maxVal:Math.max(...c.map(b=>b.input+b.output)),fmt:Oc})}),o.jsx(Xr,{value:"cost",children:y?o.jsx(PN,{LinkComponent:a,data:f.slice().sort((b,x)=>(x.cost??0)-(b.cost??0)).map(b=>({name:b.name,values:[b.cost],href:r?.(b)})),segments:[{label:"Cost",color:Bp.purple}],maxVal:Math.max(...f.map(b=>b.cost??0)),fmt:b=>jg(b,m)}):o.jsx(Ht.NoData,{message:"No cost data yet"})})]}):o.jsx(Ht.NoData,{message:"No token usage data yet"})})]})}function Rus(){const e=We(),{filters:t,filterKey:n}=Rm();return mt({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=>IL(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 Pus(){const{data:e,isLoading:t,isError:n}=Rus(),{getTracesHref:r}=XI(),{Link:s}=yn();return o.jsx(Aus,{data:e,isLoading:t,isError:n,LinkComponent:s,getRowHref:a=>r({rootEntityType:lu.AGENT,entityName:a.name}),actions:o.jsx(NL,{href:r({rootEntityType:lu.AGENT}),LinkComponent:s})})}function Ebe(e,t=Oc){return n=>({value:t(n.reduce((r,s)=>r+(typeof s[e]=="number"?s[e]:0),0))})}const $us=[{dataKey:"input",label:"Input tokens",color:Bp.blue,aggregate:Ebe("input")},{dataKey:"output",label:"Output tokens",color:Bp.yellow,aggregate:Ebe("output")}];function Mus(e){return e==="tokens"||e==="cost"}function Dus({data:e,interval:t="1d",isLoading:n,isError:r,actions:s}){const[a,i]=v.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),g=m?[...h][0]??null:null,y=m?f.reduce((k,_)=>k+(_.cost??0),0):0,b=m&&y>0,x=t==="1h"?"Input and output tokens per hour.":"Input and output tokens per day.",w=[{dataKey:"cost",label:"Cost",color:Bp.purple,aggregate:Ebe("cost",k=>jg(k,g))}];return o.jsxs(Ht,{children:[o.jsxs(Ht.TopBar,{children:[o.jsx(Ht.TitleAndDescription,{title:"Token usage over time",description:x}),u&&(a==="cost"&&b?o.jsx(Ht.Summary,{value:jg(y,g),label:"Total cost"}):o.jsx(Ht.Summary,{value:Oc(d),label:"Total tokens"})),u&&s?o.jsx(Ht.Actions,{children:s}):null]}),n?o.jsx(Ht.Loading,{}):r?o.jsx(Ht.Error,{message:"Failed to load token usage timeline"}):o.jsx(Ht.Content,{children:u?o.jsxs(Dc,{defaultTab:"tokens",value:a,onValueChange:k=>{Mus(k)&&i(k)},className:"overflow-visible",children:[o.jsxs(Mc,{children:[o.jsx(Rr,{value:"tokens",children:"Tokens"}),o.jsx(Rr,{value:"cost",children:"Cost"})]}),o.jsx(Xr,{value:"tokens",children:o.jsx(PV,{data:c,series:$us})}),o.jsx(Xr,{value:"cost",children:b?o.jsx(PV,{data:p,series:w}):o.jsx(Ht.NoData,{message:"No cost data yet"})})]}):o.jsx(Ht.NoData,{message:"No token usage data yet"})})]})}function Lus(e){return e==="24h"?"1h":"1d"}function Fus(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 $Xe(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 zus(e){return e.cost==null||e.hasUnknownCostUnit||e.costUnits.size!==1?null:[...e.costUnits][0]??null}function Bus(){const e=We(),{datePreset:t,filters:n,filterKey:r}=Rm(),s=Lus(t);return mt({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 $Xe(l,a.series[0],"input"),$Xe(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:Fus(d,s),tsMs:u.tsMs,input:u.input,output:u.output,total:u.input+u.output,cost:u.cost,costUnit:zus(u)}}),interval:s}}})}function Uus(){const{data:e,isLoading:t,isError:n}=Bus(),{getTracesHref:r}=XI(),{Link:s}=yn();return o.jsx(Dus,{data:e?.data,interval:e?.interval,isLoading:t,isError:n,actions:o.jsx(NL,{href:r(),LinkComponent:s})})}function Dae({data:e,rowHrefs:t,errorHrefs:n,LinkComponent:r}){return o.jsx(PN,{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:Bp.blueDark},{label:"Errors",color:Bp.pink}],maxVal:Math.max(...e.map(s=>s.completed+s.errors)),fmt:Oc})}function Vus({data:e,isLoading:t,isError:n,getRowHref:r,getErrorSegmentHref:s,actions:a,LinkComponent:i}){const[l,c]=v.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,g)=>m+g.completed+g.errors,0):0,p=m=>r?g=>r(m,g):void 0,h=m=>s?g=>s(m,g):void 0;return o.jsxs(Ht,{children:[o.jsxs(Ht.TopBar,{children:[o.jsx(Ht.TitleAndDescription,{title:"Trace Volume",description:"Runs and call counts."}),d&&o.jsx(Ht.Summary,{value:Oc(f),label:"Total runs"}),u?o.jsx(Ht.Actions,{children:u}):null]}),t?o.jsx(Ht.Loading,{}):n?o.jsx(Ht.Error,{message:"Failed to load trace volume data"}):o.jsx(Ht.Content,{children:d?o.jsxs(Dc,{value:l,onValueChange:c,defaultTab:"agents",className:"grid h-full grid-rows-[auto_1fr] overflow-y-auto",children:[o.jsxs(Mc,{children:[o.jsx(Rr,{value:"agents",children:"Agents"}),o.jsx(Rr,{value:"workflows",children:"Workflows"}),o.jsx(Rr,{value:"tools",children:"Tools"})]}),o.jsx(Xr,{value:"agents",children:e.agentData.length>0?o.jsx(Dae,{data:e.agentData,rowHrefs:p("agents"),errorHrefs:h("agents"),LinkComponent:i}):o.jsx(Ht.NoData,{message:"No agent data yet"})}),o.jsx(Xr,{value:"workflows",children:e.workflowData.length>0?o.jsx(Dae,{data:e.workflowData,rowHrefs:p("workflows"),errorHrefs:h("workflows"),LinkComponent:i}):o.jsx(Ht.NoData,{message:"No workflow data yet"})}),o.jsx(Xr,{value:"tools",children:e.toolData.length>0?o.jsx(Dae,{data:e.toolData,rowHrefs:p("tools"),errorHrefs:h("tools"),LinkComponent:i}):o.jsx(Ht.NoData,{message:"No tool data yet"})})]}):o.jsx(Ht.NoData,{message:"No trace volume data yet"})})]})}async function Lae(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=IL(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 qus(){const e=We(),{filters:t,filterKey:n}=Rm();return mt({queryKey:["metrics","trace-volume",n],queryFn:async()=>{const[r,s,a]=await Promise.all([Lae(e,"mastra_agent_duration_ms",t),Lae(e,"mastra_workflow_duration_ms",t),Lae(e,"mastra_tool_duration_ms",t)]);return{agentData:r,workflowData:s,toolData:a}}})}const Bz={agents:lu.AGENT,workflows:lu.WORKFLOW_RUN,tools:lu.TOOL};function Hus(){const{data:e,isLoading:t,isError:n}=qus(),{getTracesHref:r,getLogsHref:s}=XI(),{Link:a}=yn();return o.jsx(Vus,{data:e,isLoading:t,isError:n,LinkComponent:a,getRowHref:(i,l)=>r({rootEntityType:Bz[i],entityName:l.name}),getErrorSegmentHref:(i,l)=>l.errors>0?s({rootEntityType:Bz[i],entityName:l.name,status:"error"}):void 0,actions:i=>o.jsxs(o.Fragment,{children:[o.jsx(NL,{href:r({rootEntityType:Bz[i]}),LinkComponent:a}),o.jsx(rus,{href:s({rootEntityType:Bz[i],status:"error"}),LinkComponent:a})]})})}const Fae="period",Uz="dateFrom",Vz="dateTo";function Wus(){const[e,t]=Ri(),n=e.get(Fae),r=Wcs(n)?n:"24h",s=v.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(Uz)),p=d(e.get(Vz));if(!(!f&&!p))return{from:f,to:p}},[r,e.toString()]),a=v.useMemo(()=>Fcs(e),[e.toString()]),i=v.useCallback(d=>{t(f=>{const p=new URLSearchParams(f);return d==="24h"?p.delete(Fae):p.set(Fae,d),d!=="custom"&&(p.delete(Uz),p.delete(Vz)),p},{replace:!0})},[t]),l=v.useCallback(d=>{t(f=>{const p=new URLSearchParams(f);return d?.from?p.set(Uz,d.from.toISOString()):p.delete(Uz),d?.to?p.set(Vz,d.to.toISOString()):p.delete(Vz),p},{replace:!0})},[t]),c=v.useCallback(d=>{t(f=>{const p=new URLSearchParams(f);return Bcs(p,d),p},{replace:!0})},[t]),u=v.useRef(!1);return v.useEffect(()=>{if(u.current||(u.current=!0,Dcs(e)))return;const d=N7t();d&&t(f=>{const p=new URLSearchParams(f);for(const[h,m]of d)p.append(h,m);return p},{replace:!0})},[]),o.jsx(Gcs,{preset:r,filterTokens:a,onPresetChange:i,onFilterTokensChange:c,customRange:s,onCustomRangeChange:l,children:o.jsx(Zus,{})})}function Zus(){const[e]=Ri(),{error:t,isLoading:n}=R7t(),{filterTokens:r,setFilterTokens:s}=uQ(),[a,i]=v.useState(),{supportsMetrics:l,isInMemory:c,isLoading:u}=nus(),{data:d,isLoading:f}=hIe(),{data:p,isLoading:h}=dIe(),{data:m,isLoading:g}=pIe(),{data:y,isLoading:b}=fIe(),x=v.useMemo(()=>Lcs({availableTags:d??[],availableEntityNames:p??[],availableServiceNames:m??[],availableEnvironments:y??[],loading:{tags:f,entityNames:h,serviceNames:g,environments:b}}),[d,p,m,y,f,h,g,b]),[w,k]=v.useState(()=>N7t()!==null),_=v.useCallback(()=>{$cs(e),k(!0),Le.success("Filters setting for Metrics saved")},[e]),C=v.useCallback(()=>{Mcs(),k(!1),Le.success("Filters setting for Metrics cleared up")},[]),j=v.useCallback(()=>{s([])},[s]),E=v.useCallback(()=>{const N=r.map(I=>{const A=x.find(R=>R.id===I.fieldId);return A?A.kind==="text"?{fieldId:I.fieldId,value:""}:A.kind==="pick-multi"?A.multi?{fieldId:I.fieldId,value:[]}:{fieldId:I.fieldId,value:"Any"}:A.kind==="multi-select"?{fieldId:I.fieldId,value:[]}:I:I});s(N)},[x,r,s]);return t&&ys(t)?o.jsx(lr,{children:o.jsx(Hs,{})}):t&&xs(t)?o.jsx(lr,{children:o.jsx(Ms,{resource:"metrics"})}):t?o.jsx(lr,{children:o.jsx(qi,{title:"Failed to load metrics",message:t.message})}):o.jsxs(Ft,{width:"wide",height:"full",children:[o.jsxs(Ft.TopArea,{children:[o.jsx(Ft.Row,{children:o.jsxs(Ft.Column,{className:"flex flex-wrap items-start justify-start gap-2",children:[o.jsx(Xcs,{}),o.jsx(sIe,{fields:x,tokens:r,onTokensChange:s,disabled:n,onStartTextFilter:i})]})}),o.jsx(Cus,{isLoading:n,filterFields:x,filterTokens:r,onFilterTokensChange:s,onClear:E,onRemoveAll:j,onSave:_,onRemoveSaved:w?C:void 0,autoFocusFilterFieldId:a})]}),u?null:l?o.jsxs("div",{className:"grid content-start gap-8 pb-10",children:[c&&o.jsx(Cn,{variant:"info",title:"Metrics are not persisted",children:o.jsx(Cn.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(wbe,{children:[o.jsx(wus,{}),o.jsx(Sus,{}),o.jsx(kus,{}),o.jsx(Ous,{}),o.jsx(_us,{})]}),o.jsxs(wbe,{children:[o.jsx(Nus,{}),o.jsx(Pus,{}),o.jsx(Uus,{}),o.jsx(gus,{}),o.jsx(Hus,{}),o.jsx(dus,{})]})]}):o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Lr,{iconSlot:o.jsx(Rf,{}),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(Sa,{})]})})})]})}const Gus=50;function Qus(){const{paths:e}=yn(),{isCmsAvailable:t}=X1(),[n,r]=v.useState(""),[s,a]=v.useState(0),{data:i,isLoading:l,error:c,isPlaceholderData:u}=u8t({page:s,perPage:Gus}),d=i?.promptBlocks??[],f=i?.hasMore??!1,p=v.useCallback(()=>{u||a(g=>g+1)},[u]),h=v.useCallback(()=>{u||a(g=>Math.max(0,g-1))},[u]),m=v.useCallback(g=>{r(g),a(0)},[]);return c&&ys(c)?o.jsx(lr,{children:o.jsx(Hs,{})}):c&&xs(c)?o.jsx(lr,{children:o.jsx(Ms,{resource:"prompt blocks"})}):c?o.jsx(lr,{children:o.jsx(qi,{title:"Failed to load prompt blocks",message:c.message})}):d.length===0&&!l&&s===0?o.jsx(lr,{children:o.jsx(cJr,{})}):o.jsxs(Ft,{children:[o.jsx(Ft.TopArea,{children:o.jsxs(Ft.Row,{align:"center",stack:"responsive",children:[o.jsx("div",{className:"max-w-120 flex-1",children:o.jsx(Lf,{onSearch:m,label:"Filter prompts",placeholder:"Filter by name or description"})}),t&&o.jsxs(ce,{as:Fa,to:e.cmsPromptBlockCreateLink(),variant:"primary",className:"shrink-0",children:[o.jsx(Zr,{}),"Create Prompt"]})]})}),o.jsx(lJr,{promptBlocks:d,isLoading:l,search:n,currentPage:s,hasMore:f,onNextPage:p,onPrevPage:h})]})}function Yus(){return o.jsx(Ft,{width:"narrow",children:o.jsx(Ft.MainArea,{children:o.jsx(BQr,{children:o.jsx(Kye,{})})})})}const Kus=[{title:"Mastra APIs",description:"Explore and test the available REST API endpoints with the interactive Swagger UI.",icon:tWt,href:"/swagger-ui",external:!1},{title:"Documentation",description:"Read the official Mastra documentation for guides, references, and tutorials.",icon:fit,href:"https://mastra.ai/en/docs",external:!0},{title:"Github",description:"Browse the source code, report issues, and contribute to the Mastra project.",icon:Sa,href:"https://github.com/mastra-ai/mastra",external:!0},{title:"Community",description:"Join the Mastra Discord community for help, discussion, and collaboration.",icon:pT,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:xit,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:pit,href:"https://mastra.ai/contact?ref=studio",external:!0}];function Xus(){return o.jsx(Ft,{width:"narrow",children:o.jsx(Ft.MainArea,{children:o.jsx("div",{className:"grid max-w-3xl grid-cols-1 gap-4 sm:grid-cols-2",children:Kus.map(e=>o.jsxs("a",{href:e.href,...e.external?{target:"_blank",rel:"noreferrer"}:{},className:"group border-border1 bg-surface2 hover:border-accent1 hover:bg-surface3 flex flex-col gap-3 rounded-lg border p-5 transition-colors",children:[o.jsxs("div",{className:"flex items-center gap-2.5",children:[o.jsx(e.icon,{className:"text-icon3 group-hover:text-accent1 h-5 w-5 transition-colors"}),o.jsx("span",{className:"text-ui-md text-text1 font-medium",children:e.title}),e.external&&o.jsx(Sa,{className:"text-icon3 ml-auto h-3.5 w-3.5 opacity-0 transition-opacity group-hover:opacity-100"})]}),o.jsx("p",{className:"text-ui-sm text-text3 leading-relaxed",children:e.description})]},e.href))})})})}function Jus(){const{data:e={},isLoading:t,error:n}=lh(),[r,s]=v.useState(""),[a,i]=v.useState("all");if(n&&ys(n))return o.jsx(lr,{children:o.jsx(Hs,{})});if(n&&xs(n))return o.jsx(lr,{children:o.jsx(Ms,{resource:"scorers"})});if(n)return o.jsx(lr,{children:o.jsx(qi,{title:"Failed to load scorers",message:n.message})});if(Object.keys(e).length===0&&!t)return o.jsx(lr,{children:o.jsx(gKr,{})});const l=a!=="all"||r!=="",c=()=>{s(""),i("all")};return o.jsxs(Ft,{children:[o.jsx(Ft.TopArea,{children:o.jsx(yKr,{search:r,onSearchChange:s,sourceFilter:a,onSourceFilterChange:i,onReset:c,hasActiveFilters:l})}),o.jsx(mKr,{scorers:e,isLoading:t,search:r,sourceFilter:a})]})}function eds(){const{scorerId:e}=Sr(),[t,n]=Ri(),r=t.get("scoreId")??void 0,[s,a]=v.useState(r),[i,l]=v.useState({value:"all",label:"All Entities",type:"ALL"}),{scorer:c,error:u}=WYr(e),{data:d={},isLoading:f,error:p}=Tm(),{isLoading:h,error:m}=Gy(),{data:g=[],isLoading:y,error:b,isFetchingNextPage:x,hasNextPage:w,setEndOfListElement:k}=HYr({scorerId:e,entityId:i?.value==="all"?void 0:i?.value,entityType:i?.type==="ALL"?void 0:i?.type}),_=v.useMemo(()=>c?.agentIds?.filter(V=>d[V]).map(V=>({value:V,label:d[V].name,type:"AGENT"}))||[],[c?.agentIds,d]),C=v.useMemo(()=>c?.workflowIds?.map(V=>({value:V,label:V,type:"WORKFLOW"}))||[],[c?.workflowIds]),j=v.useMemo(()=>[{value:"all",label:"All Entities",type:"ALL"},..._,...C],[_,C]),E=t.get("entity")??"all",N=j.find(V=>V.value===E);N&&N.value!==i?.value&&l(N),v.useEffect(()=>{if(u){const V=u instanceof Error?u.message:"Failed to load scorer";Le.error(`Error loading scorer: ${V}`)}},[u]),v.useEffect(()=>{if(p){const V=p instanceof Error?p.message:"Failed to load agents";Le.error(`Error loading agents: ${V}`)}},[p]),v.useEffect(()=>{if(m){const V=m instanceof Error?m.message:"Failed to load workflows";Le.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})};v.useEffect(()=>{const V=t.get("scoreId")??void 0;if(V===s)return;if(!V){a(void 0);return}g.find(Q=>Q.id===V)&&a(V)},[t,g]);const A=v.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 R=ys(u)||ys(p)||ys(m),L=u&&xs(u),D=!R&&!L&&(u||p||m),B=!y&&g.length===0,H=i?.value!=="all",F=c?.scorer?.source==="stored"?o.jsx(Ly,{owner:"scorer-detail",children:o.jsxs(ce,{variant:"default",as:Fa,to:`/cms/scorers/${e}/edit`,size:"sm",children:[o.jsx(am,{})," Edit"]})}):null;if(R||L||D||B&&!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(Ft,{width:"wide",height:"full",children:[F,o.jsx(Ft.MainArea,{isCentered:!0,children:R?o.jsx(Hs,{}):L?o.jsx(Ms,{resource:"scorers"}):D?o.jsx(qi,{title:"Failed to load scorer",message:V}):o.jsx(LYr,{})})]})}return o.jsxs(Ft,{width:"wide",children:[F,o.jsx(Ft.TopArea,{children:o.jsx(FYr,{selectedEntity:i,entityOptions:j,onEntityChange:I,onReset:()=>{n(V=>{const M=new URLSearchParams(V);return M.set("entity","all"),M})},isLoading:y||f||h})}),o.jsx(DYr,{scores:g,isLoading:y,selectedScoreId:s,isFetchingNextPage:x,hasNextPage:w,setEndOfListElement:k,onScoreClick:A,errorMsg:b?.message})]})}function tds({label:e,description:t,htmlFor:n,className:r,children:s}){return o.jsxs("div",{className:X("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(Dt,{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-neutral3 text-sm",children:t})]}),s]})}const D7t=[{value:"dark",label:"Dark",Icon:PZt},{value:"light",label:"Light",Icon:WGt},{value:"system",label:"System",Icon:Eit}],nds=e=>D7t.some(t=>t.value===e);function rds({option:e}){const{Icon:t}=e;return o.jsxs("span",{className:"inline-flex max-w-full min-w-0 items-center gap-2",children:[o.jsx(t,{"aria-hidden":"true",className:"h-4 w-4 shrink-0 opacity-70"}),o.jsx("span",{className:"min-w-0 truncate",children:e.label})]})}const sds=()=>{const{baseUrl:e,headers:t,apiPrefix:n}=eH(),{theme:r,setTheme:s}=U_();return o.jsx(Ft,{width:"narrow",children:o.jsxs(Ft.MainArea,{className:"mt-6 flex flex-col gap-5",children:[o.jsx(Pye,{title:"Theme",description:"Customize the appearance of the studio.",children:o.jsx(tds,{label:"Theme mode",htmlFor:"theme",children:o.jsxs(oa,{value:r,onValueChange:a=>{nds(a)&&s(a)},children:[o.jsx(ca,{id:"theme",className:"w-full sm:w-48",children:o.jsx(la,{className:"inline-flex max-w-full min-w-0 items-center"})}),o.jsx(ua,{children:D7t.map(a=>o.jsx(Ar,{value:a.value,children:o.jsx(rds,{option:a})},a.value))})]})})}),o.jsx(Pye,{title:"Mastra Connection",description:"Configure the Mastra instance URL, API prefix, and request headers used by the studio.",children:o.jsx(J$t,{initialConfig:{baseUrl:e,headers:t,apiPrefix:n}})})]})})};function ads(){const[e]=Ri(),t=qs(),n=e.get("redirect")||"/",r=()=>{n.startsWith("http")?window.location.href=n:t(n,{replace:!0})};return o.jsx(E7t,{redirectUri:n,onSuccess:r,initialMode:"signup"})}const L7t=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 ids(e){return e.replace(/\/$/,"").split("/").pop()}function dQ({children:e,className:t}){return o.jsx("div",{className:X("border border-border1 rounded-lg mt-12 py-8 lg:min-h-[25rem] transition-height px-4 lg:px-12",t),children:e})}function ods({templates:e,linkComponent:t,className:n,isLoading:r}){const s=t||"a";return r?o.jsx("div",{className:X("grid gap-y-4",n),children:Array.from({length:5}).map((a,i)=>o.jsx("div",{className:"bg-surface3 h-16 animate-pulse rounded-lg"},i))}):o.jsx("div",{className:X("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:X("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:X("grid [&:hover_p]:text-neutral5",{"grid-cols-[8rem_1fr] lg:grid-cols-[12rem_1fr]":a.imageURL}),children:[a.imageURL&&o.jsx("div",{className:X("overflow-hidden"),children:o.jsx("div",{className:"thumb transition-scale h-full w-full bg-cover duration-150",style:{backgroundImage:`url(${a.imageURL})`}})}),o.jsxs("div",{className:X("grid py-3 px-6 w-full gap-0.5","[&_svg]:w-[1em] [&_svg]:h-[1em] [&_svg]:text-neutral3"),children:[o.jsx("h2",{className:"text-ui-lg text-neutral5",children:a.title}),o.jsx("p",{className:"text-ui-md text-neutral4 transition-colors duration-500",children:a.description}),o.jsxs("div",{className:"text-neutral3 text-ui-md mt-3 hidden flex-wrap items-center gap-4 2xl:flex",children:[i&&o.jsxs("ul",{className:X("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(Uo,{})," ",a.agents.length]}),a?.tools&&a.tools.length>0&&o.jsxs("li",{children:[o.jsx(Ud,{})," ",a.tools.length]}),a?.networks&&a.networks.length>0&&o.jsxs("li",{children:[o.jsx(jit,{})," ",a.networks.length]}),a?.workflows&&a.workflows.length>0&&o.jsxs("li",{children:[o.jsx(MD,{})," ",a.workflows.length]}),a?.mcp&&a.mcp.length>0&&o.jsxs("li",{children:[o.jsx(mC,{})," ",a.mcp.length]})]}),i&&a.supportedProviders&&o.jsx("small",{children:"|"}),o.jsx("div",{className:"text-neutral3 flex items-center gap-4",children:a.supportedProviders.map(l=>o.jsx("span",{className:"",children:l},l))})]})]})]}),o.jsx("a",{href:a.githubUrl,className:X("group items-center gap-2 text-ui-md ml-auto pr-4 hidden","lg:flex"),target:"_blank",rel:"noopener noreferrer",children:o.jsxs("span",{className:"bg-surface1 group-hover:bg-surface2 text-neutral3 group-hover:text-neutral5 flex items-center gap-2 rounded px-2 py-1 transition-colors",children:[o.jsx(L7t,{})," ",ids(a.githubUrl)]})})]},a.slug)})})}function lds({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:X("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:X("flex flex-wrap mx-auto sticky top-0 gap-4 bg-surface2 py-8",u),children:[o.jsx(bN,{name:"search-templates",label:"Search templates",labelIsHidden:!0,value:i,onChange:f=>l?.(f.target.value),placeholder:"Search Template"}),o.jsx(Cc,{label:"Filter by tag",labelIsHidden:!0,name:"filter-tag",value:t,onValueChange:s,options:e}),o.jsx(Cc,{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(bs,{})]})]})}function cds(){const{data:e,isLoading:t}=oer(),{templates:n,tags:r,providers:s}=e??{templates:[],tags:[],providers:[]},[a,i]=v.useState("all"),[l,c]=v.useState("all"),[u,d]=v.useState(""),f=[{value:"all",label:"Any tag"}];(r||[]).forEach(x=>{f.push({value:x,label:x})});const p=[{value:"all",label:"Any provider"}];(s||[]).forEach(x=>{p.push({value:x,label:x})});const h=(x,w)=>{w==="tag"?i(x):w==="provider"&&c(x)},m=x=>{d(x)},g=()=>{i("all"),c("all"),d("")},y=n.filter(x=>!(u&&!x.title.toLowerCase().includes(u)&&!x.description.toLowerCase().includes(u)||a!=="all"&&!x.tags.includes(a)||l!=="all"&&!x.supportedProviders.includes(l))),b=u||a!=="all"||l!=="all";return o.jsxs(ds,{children:[o.jsx(zwe,{children:o.jsxs(Mgt,{children:[o.jsx(qe,{children:o.jsx(Jv,{})}),"Templates"]})}),o.jsxs("div",{className:X("overflow-y-auto w-full h-full px-8 pb-12 z-10"),children:[o.jsx(lds,{selectedTag:a,onTagChange:x=>h(x,"tag"),tagOptions:f,selectedProvider:l,onProviderChange:x=>h(x,"provider"),providerOptions:p,searchTerm:u,onSearchChange:m,onReset:b?g:void 0,className:"max-w-[80rem]",isLoading:t}),o.jsx(ods,{templates:y,linkComponent:Fa,className:"mx-auto max-w-[80rem]",isLoading:t})]})]})}const uds="1.56.0-alpha.5";function dds({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(wf,{className:"text-yellow-500"}),title:"Template Installed with Warnings"}:{icon:o.jsx(NWt,{}),title:"Template Installation Failed"},{icon:l,title:c}=i();return o.jsxs(dQ,{className:"text-neutral3 mb-8 content-center space-y-4",children:[o.jsxs("div",{className:X("grid items-center justify-items-center gap-4 content-center","[&>svg]:w-8 [&>svg]:h-8"),children:[l,o.jsxs("div",{className:"space-y-2 text-center",children:[o.jsx("p",{className:"text-ui-md text-neutral5 font-medium",children:c}),o.jsx("p",{className:"text-ui-md text-neutral3",children:a()})]})]}),t&&t.length>0&&o.jsxs("details",{className:"text-xs",children:[o.jsxs("summary",{className:"text-neutral3 hover:text-neutral4 cursor-pointer text-center select-none",children:["Show Validation Issues (",t.length,")"]}),o.jsx("div",{className:"mt-4 max-h-60 space-y-2 overflow-auto rounded bg-gray-100 p-3 text-left text-xs dark:bg-gray-800",children:t.map((u,d)=>o.jsxs("div",{className:"border-l-2 border-red-400 pl-2",children:[o.jsx("div",{className:"font-medium text-red-600 dark:text-red-400",children:u.type==="typescript"?"🔴 TypeScript Error":"⚠️ Lint Error"}),o.jsx("div",{className:"mt-1 font-mono text-xs wrap-break-word whitespace-pre-wrap text-gray-700 dark:text-gray-300",children:u.message})]},d))})]}),n&&!s&&o.jsxs("details",{className:"text-xs",children:[o.jsx("summary",{className:"text-neutral3 hover:text-neutral4 cursor-pointer text-center select-none",children:"Show Details"}),o.jsx("div",{className:"mt-4 max-h-60 overflow-auto rounded bg-gray-100 p-3 text-left font-mono text-xs dark:bg-gray-800",children:o.jsx("div",{className:"wrap-break-word whitespace-pre-wrap",children:n})})]})]})}function fds({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(dQ,{children:o.jsxs("div",{className:"mx-auto my-4 grid max-w-[40rem] gap-8 p-4 lg:p-8",children:[o.jsxs("h2",{className:X("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(Tit,{})]}),o.jsx(Cc,{name:"template-provider",options:e,label:"Template AI Model Provider",onValueChange:n,value:t,placeholder:"Select",layout:"horizontal"}),t&&Object.entries(r||{}).length>0&&o.jsxs(o.Fragment,{children:[o.jsx("h3",{className:"text-neutral3 text-ui-md",children:"Set required Environmental Variables"}),o.jsx("div",{className:"grid grid-cols-[1fr_1fr] items-start gap-4",children:l?o.jsxs("div",{className:X("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(Xt,{})," Loading variables..."]}):Object.entries(r).map(([p,h])=>o.jsxs(v.Fragment,{children:[o.jsx(CO,{name:`env-${p}`,labelIsHidden:!0,label:"Key",value:p,disabled:!0,className:"w-full"}),o.jsx(CO,{name:p,labelIsHidden:!0,label:"Value",value:h,onChange:i,errorMsg:s.includes(p)?"Value is required.":"",autoComplete:"off",className:"w-full"})]},p))}),o.jsxs("div",{className:"border-border1 relative mt-3.5 border-t pt-12",children:[o.jsx("div",{className:"bg-surface2 text-ui-sm text-neutral3 absolute top-0 left-1/2 flex h-8 w-8 -translate-x-1/2 -translate-y-4 items-center justify-center rounded-full",children:"And"}),o.jsx("h3",{className:"text-neutral4 text-ui-lg",children:"Set AI Model for Template Installation"}),o.jsx("p",{className:"text-neutral3 text-ui-md mt-2 mb-8",children:"This model will be used by the workflow to process and install the template"}),o.jsx(zzt,{defaultProvider:u||"",defaultModel:d||"",updateModel:f||(()=>Promise.resolve({message:"Updated"})),closeEditor:()=>{},autoSave:!0,selectProviderPlaceholder:"Provider"})]})]}),t&&!l&&o.jsx(ce,{className:X("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(Xt,{className:"h-4 w-4"})," Installing..."]}):o.jsxs(o.Fragment,{children:["Install ",o.jsx(xm,{})]})})]})})}function pds({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:X("grid mt-8 items-center"),children:o.jsxs("div",{className:X("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(Jv,{}),o.jsx("h2",{className:X({"bg-surface4 flex rounded-lg min-w-[50%]":r}),children:r?o.jsx(o.Fragment,{children:" "}):e})]})}),o.jsxs("div",{className:"grid gap-x-24 lg:grid-cols-[1fr_1fr]",children:[o.jsxs("div",{className:"grid",children:[o.jsx("p",{className:X("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:X("bg-surface2 border border-surface4 rounded-lg p-4 mb-4","flex items-start gap-3"),children:[o.jsx("div",{className:"mt-0.5 shrink-0",children:o.jsx(qx,{className:"h-[1.1em] w-[1.1em] text-blue-500"})}),o.jsxs("div",{className:"flex-1 space-y-2",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(Ube,{className:"text-neutral4 h-[1em] w-[1em]"}),o.jsx("span",{className:"text-ui-md text-neutral5 font-medium",children:"A new Git branch will be created"})]}),o.jsxs("div",{className:"text-ui-sm text-neutral4 space-y-1",children:[o.jsxs("div",{children:[o.jsx("span",{className:"font-medium",children:"Branch name:"})," ",o.jsx("code",{className:"bg-surface3 text-ui-sm rounded px-1.5 py-0.5 font-mono",children:i})]}),o.jsx("div",{children:"This ensures safe installation with easy rollback if needed. Your main branch remains unchanged."})]})]})]}),n&&o.jsxs("a",{href:n,target:"_blank",rel:"noopener noreferrer",className:"text-neutral3 text-ui-md hover:text-neutral5 mt-auto flex items-center gap-2",children:[o.jsx(L7t,{}),n?.split("/")?.pop()]})]}),s&&o.jsx(jNe,{data:s,labelsAreHidden:!0,isLoading:r})]})]})}function hds(e){switch(e){case"running":return o.jsx(Xt,{});case"success":return o.jsx(kx,{});case"failed":return o.jsx(Qu,{});default:return null}}function mds({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:X("grid grid-cols-[1fr_auto] gap-6 rounded-lg px-4 py-3",vs.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:X("flex min-w-6 justify-end text-ui-md",vs.colors,{"text-neutral5":n||t.status==="success","text-neutral3":!n&&t.status!=="success"}),children:[r,"."]}),o.jsxs("div",{children:[o.jsx("h4",{className:X("text-ui-md",vs.colors,{"text-neutral5":n||t.status==="success","text-neutral3":!n&&t.status!=="success"}),children:s(e)}),t.description&&o.jsx("p",{className:"text-ui-md text-neutral2 -mt-0.5",children:t.description})]})]}),o.jsx("div",{className:X("flex size-[1.75rem] items-center justify-center self-center rounded-full",vs.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:hds(t.status)})]})}function gds({currentStep:e,steps:t=[],className:n}){return o.jsx("div",{className:X(n),children:t.map((r,s)=>o.jsx(mds,{stepId:r.id,step:r,isActive:e?.id===r.id,position:s+1},r.id))})}function vds({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:X("relative flex h-8 items-center justify-end",vs.colors,{"bg-accent1Dark":r.status==="success"&&e?.[s-1]?.status==="success"}),children:o.jsx("div",{className:X("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",vs.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(Xt,{}):s+1})},r.id))}),o.jsxs("div",{className:X("text-center text-xs text-neutral3",vs.colors),children:[n," of ",t," steps completed"]})]})}function yds({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=g=>g==="input"||g.endsWith(".input")||g.startsWith("Mapping_")&&/[0-9a-f]{8}/.test(g)||/[0-9a-f]{8,}/.test(g)?!1:r?.allSteps?g in r.allSteps:!0,f=Object.entries(c).filter(([g,y])=>d(g)),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(([g,y])=>({id:g,status:y?.status,description:y?.description,title:g.charAt(0).toUpperCase()+g.slice(1).replace(/-/g," "),isActive:i?.id===g}));return o.jsxs(dQ,{className:"text-neutral3 mb-8 content-center space-y-6",children:[o.jsxs("div",{className:"text-center",children:[o.jsx("h3",{className:"text-neutral5 text-lg font-semibold",children:h()}),(t?.runId||n)&&o.jsxs("div",{className:"text-ui-sm text-neutral3 mt-2",children:["Run ID: ",t?.runId??n]})]}),u&&p>0&&!["error"].includes(s)&&o.jsx("div",{className:"mx-auto w-full max-w-[30rem] px-6",children:o.jsx(vds,{steps:m})}),l&&s==="error"&&o.jsxs("div",{className:X("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(qZt,{}),l||"Something went wrong"]}),u&&o.jsx(gds,{steps:m,currentStep:i,className:"pb-4"}),!u&&s==="initializing"&&o.jsxs("div",{className:"text-neutral3 grid justify-items-center gap-4 text-center text-sm",children:[o.jsx(Xt,{}),o.jsx("p",{children:"This may take some time..."})]})]})}function bds({name:e,installedEntities:t}){return o.jsxs(dQ,{className:X("grid items-center justify-items-center gap-4 content-center","[&>svg]:w-8 [&>svg]:h-8"),children:[o.jsx(Tit,{}),o.jsx("h2",{className:"text-header-md",children:"Done!"}),o.jsxs("p",{className:"text-ui-md text-neutral3 text-center",children:["The ",o.jsx("b",{className:"text-neutral4",children:e})," template has been successfully installed.",t&&t.length>0&&o.jsxs(o.Fragment,{children:[o.jsx("br",{})," Installed entities are listed below."]})]}),t&&t.length>0&&o.jsx(jNe,{data:t})]})}function xds(){const{templateSlug:e}=Sr(),[t,n]=Ri(),[r,s]=v.useState(""),[a,i]=v.useState(""),[l,c]=v.useState(""),[u,d]=v.useState({}),[f,p]=v.useState([]),[h,m]=v.useState(null),[g,y]=v.useState(!1),[b,x]=v.useState(""),[w,k]=v.useState(!1),[_,C]=v.useState(!1),[j,E]=v.useState([]),{data:N,isLoading:I}=ler({repoOrSlug:e,owner:"mastra-ai"}),R=uds?.includes("beta")??!1?"beta":"main",{data:L,isLoading:D}=cer({repo:N?.githubUrl?new URL(N.githubUrl).pathname.split("/")[2]:`template-${e}`,owner:"mastra-ai",branch:R}),{data:B,isLoading:H}=uer(),{mutateAsync:F,isPending:z}=der(),{mutateAsync:V}=fer(),{streamInstall:M,streamResult:Q,isStreaming:q}=her(B),{observeInstall:$,streamResult:U,isStreaming:Z}=mer(B);v.useEffect(()=>{const ee=t.get("runId");ee&&!g&&!h&&!q&&!Z&&(console.info("🔄 Checking completed run after hot reload:",{runId:ee}),x(ee),V({runId:ee}).then(ue=>{const pe=ue.snapshot;if(pe?.status==="success"&&pe?.result?.success)y(!0);else if(pe?.result?.success===!1)if(pe?.result?.validationResults&&!pe?.result?.validationResults?.valid&&pe?.result?.validationResults?.remainingErrors>0){const{remainingErrors:fe,errors:be}=pe.result.validationResults,xe=`Template installation completed but ${fe} validation issue${fe>1?"s":""} remain unresolved.`;m(xe),E(be||[])}else{const fe=pe?.result?.message||pe?.result?.error||"Template installation failed";m(typeof fe=="string"?fe:String(fe))}}).catch(ue=>{console.error("❌ Failed to fetch run details:",ue),m("Failed to retrieve installation status after reload")}))},[t,g,h,q,Z,V]),v.useEffect(()=>{const ee=t.get("runId"),ue=t.get("resume"),pe=t.get("provider");if(ee&&ue==="true"&&pe&&!q&&!Z&&!w&&!_&&B){x(ee),k(!0);try{V({runId:ee}).then(le=>{if(le.snapshot?.status==="running")return $.mutateAsync({runId:ee})}).then(()=>{n(le=>{const fe=new URLSearchParams(le);return fe.delete("resume"),fe})}).catch(le=>{console.error("❌ Failed to resume template installation:",le),le.message?.includes("404")||le.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(le){console.error("❌ Auto-resume failed with error:",le),m("Failed to resume template installation. Please refresh and try again.")}}},[t,e,q,Z,w,_,B,V,$,n]);const K=[{value:"openai",label:"OpenAI"},{value:"anthropic",label:"Anthropic"},{value:"groq",label:"Groq"},{value:"google",label:"Google"}],te=[{key:"tools",label:"Tools",value:N?.tools?.length?N.tools.map(ee=>ee).join(", "):"n/a",icon:o.jsx(Ud,{})},{key:"agents",label:"Agents",value:N?.agents?.length?N.agents.map(ee=>ee).join(", "):"n/a",icon:o.jsx(Uo,{})},{key:"workflows",label:"Workflows",value:N?.workflows?.length?N.workflows.map(ee=>ee).join(", "):"n/a",icon:o.jsx(MD,{})},{key:"providers",label:"Providers",value:N?.supportedProviders?.length?N.supportedProviders.join(", "):"n/a",icon:o.jsx(Lv,{})},{key:"tags",label:"Tags",value:N?.tags?.length?N.tags.join(", "):"n/a",icon:o.jsx(VN,{})}],ne=[{...te[0]},{...te[1]},{...te[2]}].filter(ee=>ee.value!=="n/a");v.useEffect(()=>{L&&d(L)},[L]),v.useEffect(()=>{const ee=Q||U;ee?.phase==="error"&&ee?.error&&m(typeof ee.error=="string"?ee.error:String(ee.error))},[Q?.phase,Q?.error,U?.phase,U?.error]);const J=ee=>{s(ee)},se=async ee=>(i(ee.provider),c(ee.modelId),{message:"Model updated successfully"}),ie=async()=>{const ee=Object.entries(u).reduce((ue,[pe,le])=>(le===""&&ue.push(pe),ue),[]);if(ee.length>0){p(ee);return}if(N){m(null),y(!1),x(""),C(!0);try{const pe={repo:N.githubUrl||`https://github.com/mastra-ai/template-${N.slug}`,ref:R,slug:N.slug,variables:u},{runId:le}=await F({});x(le),n(fe=>{const be=new URLSearchParams(fe);return be.set("runId",le),be.set("resume","true"),be.set("provider",r||"openai"),be}),await M.mutateAsync({inputData:pe,selectedModel:{provider:a,modelId:l},runId:le})}catch(ue){C(!1),m(ue?.message||"Template installation failed"),console.error("Template installation failed",ue)}}},Y=ee=>{const{name:ue,value:pe}=ee.target;pe.trim()===""?p(le=>[...le,ue]):p(le=>le.filter(fe=>fe!==ue)),d(le=>({...le,[ue]:pe}))};return o.jsx(ds,{children:o.jsx("div",{className:X("w-full lg:px-12 h-full overflow-y-scroll"),children:o.jsxs("div",{className:"mx-auto grid w-full max-w-[80rem] gap-y-4 p-6",children:[o.jsx(pds,{isLoading:I,title:N?.title,description:N?.longDescription,imageURL:N?.imageURL,githubUrl:N?.githubUrl,infoData:te,templateSlug:e}),N&&o.jsxs(o.Fragment,{children:[(q||Z)&&o.jsx(yds,{name:N.title,streamResult:Z?U:Q,runId:b,workflowInfo:B}),g&&o.jsx(bds,{name:N.title,installedEntities:ne,linkComponent:Fa}),h&&o.jsx(dds,{errorMsg:h,validationErrors:j.length>0?j:Q?.validationResults?.errors||U?.validationResults?.errors}),!q&&!Z&&!g&&!h&&o.jsx(fds,{providerOptions:K,selectedProvider:r,onProviderChange:J,variables:u,setVariables:d,errors:f,setErrors:p,handleInstallTemplate:ie,handleVariableChange:Y,isLoadingEnvVars:D||H,isInstalling:z,defaultModelProvider:a,defaultModelId:l,onModelUpdate:se})]})]})})})}const wds=()=>{const{toolId:e,agentId:t}=Sr();return o.jsx("div",{className:"h-full w-full overflow-y-auto",children:o.jsx(CXr,{toolId:e,agentId:t})})},Sds=()=>{const{toolId:e}=Sr();return o.jsx("div",{className:"h-full w-full overflow-y-hidden",children:o.jsx(_cs,{toolId:e})})};function kds(){const{traceId:e}=Sr(),[t,n]=Ri(),r=qs(),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]=v.useState(s??null),[d,f]=v.useState(),[p,h]=v.useState(i),[m,g]=v.useState(0),[y,b]=v.useState(!1),{data:x,isLoading:w,error:k}=mIe(e),_=v.useMemo(()=>x?.spans??[],[x?.spans]),C=v.useMemo(()=>_.find(se=>se.parentSpanId==null),[_]),{data:j,isLoading:E}=jL(e,c??"");v.useEffect(()=>g(0),[e,c]);const{data:N,isLoading:I}=lh(),{data:A,isLoading:R}=a8t({traceId:e,spanId:c??void 0,page:m}),[L,D]=v.useState(0);v.useEffect(()=>D(0),[e,c]);const{data:B,isLoading:H}=m7t({traceId:e,page:L});v.useEffect(()=>{if(l&&A?.scores&&!d){const se=A.scores.find(ie=>ie.id===l);se&&f(se)}},[l,A?.scores,d]);const F=v.useCallback(se=>{const ie=new URLSearchParams(t);for(const[Y,ee]of Object.entries(se))ee===null||ee===""?ie.delete(Y):ie.set(Y,ee);n(ie,{replace:!0})},[t,n]),z=v.useCallback(se=>{const ie=se??null,Y=ie===c;u(ie),Y||(f(void 0),h("details"),F({spanId:ie,tab:null,scoreId:null}))},[c,F]),V=v.useCallback(()=>{u(null),f(void 0),h("details"),F({spanId:null,tab:null,scoreId:null})},[F]),M=v.useCallback(se=>{u(se),f(void 0),h("details"),F({spanId:se,tab:null,scoreId:null})},[F]),{handlePreviousSpan:Q,handleNextSpan:q}=gIe(_,c,M),$=v.useCallback(se=>{const ie=se;h(ie),f(void 0),F({tab:ie==="details"?null:ie,scoreId:null})},[F]),U=v.useCallback(se=>{f(se),F({scoreId:se.id})},[F]),Z=v.useCallback(()=>{f(void 0),F({scoreId:null})},[F]),K=v.useCallback(()=>{r("/observability")},[r]),te=v.useCallback(()=>{h("scoring"),C&&c!==C.spanId?(u(C.spanId),f(void 0),F({spanId:C.spanId,tab:"scoring",scoreId:null})):F({tab:"scoring"})},[C,c,F]),ne=C?o.jsx(Ly,{owner:"trace-detail",children:o.jsxs(Mr,{children:[o.jsxs(ce,{tooltip:"Evaluate Trace","aria-label":"Evaluate Trace",onClick:te,children:[o.jsx(kHt,{}),"Evaluate"]}),o.jsxs(ce,{tooltip:"Save as Dataset Item","aria-label":"Save as Dataset Item",onClick:()=>b(!0),children:[o.jsx(Ad,{}),"Save"]})]})}):null,J=C?o.jsx(Ft.Row,{children:o.jsx(Ft.Column,{children:o.jsx(e7t,{rootSpan:C,numOfCol:3})})}):null;return k?o.jsxs(Ft,{height:"full",children:[ne,J&&o.jsx(Ft.TopArea,{children:J}),o.jsx(Ft.MainArea,{isCentered:!0,children:o.jsx(a7t,{error:k,resource:"traces",errorTitle:"Failed to load trace"})})]}):o.jsxs(Ft,{height:"full",className:"grid-rows-[auto_minmax(0,1fr)] content-normal",children:[ne,J&&o.jsx(Ft.TopArea,{children:J}),o.jsx(u7t,{rootSpanId:C?.spanId,traceId:e,isOpen:y,onClose:()=>b(!1)}),o.jsxs("div",{className:X("mt-4 grid min-h-0 items-stretch gap-4 overflow-hidden",c?"grid-cols-[2fr_3fr]":"grid-cols-[1fr]"),children:[o.jsx(lIe,{traceId:e,spans:_,isLoading:w,onClose:K,onSpanSelect:z,onEvaluateTrace:te,initialSpanId:c,placement:"trace-page",timelineChartWidth:c?"default":"wide"}),c&&!w&&o.jsxs("div",{className:X("grid h-full max-h-full min-h-0 gap-4 overflow-auto",d?"grid-rows-[1fr_1fr]":"grid-rows-[1fr]"),children:[o.jsx(aIe,{traceId:e,spanId:c,span:j?.span,isLoading:E,onClose:V,onPrevious:Q,onNext:q,activeTab:p,onTabChange:$,feedbackTabBadge:B?.pagination?.total??void 0,feedbackTabSlot:()=>o.jsx(f7t,{feedbackData:B,onPageChange:D,isLoadingFeedbackData:H}),scoringTabBadge:A?.pagination?.total??void 0,scoringTabSlot:({span:se,traceId:ie,spanId:Y})=>o.jsxs("div",{className:"grid gap-6",children:[o.jsx(h7t,{traceId:ie,isTopLevelSpan:!se.parentSpanId,spanId:Y,entityType:se.attributes?.agentId||se.entityType===lu.AGENT?"Agent":se.attributes?.workflowId||se.entityType===lu.WORKFLOW_RUN?"Workflow":void 0,scorers:N,isLoadingScorers:I}),o.jsx(p7t,{scoresData:A,onPageChange:g,isLoadingScoresData:R,onScoreSelect:U})]})}),d&&o.jsx(ENe,{score:d,onClose:Z})]})]})]})}function Ods(){const{data:e,isLoading:t,error:n}=Gy(),[r,s]=v.useState("");return n&&ys(n)?o.jsx(lr,{children:o.jsx(Hs,{})}):n&&xs(n)?o.jsx(lr,{children:o.jsx(Ms,{resource:"workflows"})}):n?o.jsx(lr,{children:o.jsx(qi,{title:"Failed to load workflows",message:n.message})}):Object.keys(e||{}).length===0&&!t?o.jsx(lr,{children:o.jsx(i9r,{})}):o.jsxs(Ft,{children:[o.jsx(Ft.TopArea,{children:o.jsxs(Ft.Row,{align:"center",stack:"responsive",children:[o.jsx("div",{className:"max-w-120 flex-1",children:o.jsx(Lf,{onSearch:s,label:"Filter workflows",placeholder:"Filter by name or description"})}),o.jsxs(ce,{as:Fa,to:"/workflows/schedules",variant:"primary",className:"shrink-0",children:[o.jsx(AD,{}),"Schedules"]})]})}),o.jsx(a9r,{workflows:e||{},isLoading:t,search:r})]})}const _ds={active:"bg-accent1",paused:"bg-accent3"},Cds={active:"text-accent1",paused:"text-accent3"},F7t=({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 ${_ds[e]}`,"aria-hidden":!0}),o.jsx("span",{className:`text-ui-sm ${Cds[e]}`,children:e})]}),lT=e=>!e||e<=0?"—":new Date(e).toLocaleString(),L2=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 z7t({status:e}){const{icon:t,color:n}=Eds(e);return o.jsxs("span",{className:`text-ui-sm inline-flex items-center gap-1.5 whitespace-nowrap ${n}`,children:[o.jsx("span",{className:"inline-flex shrink-0 items-center","aria-hidden":!0,children:t}),o.jsx("span",{children:e})]})}function Eds(e){switch(e){case"success":return{icon:o.jsx(fa,{size:14}),color:"text-accent1"};case"failed":return{icon:o.jsx(bs,{size:14}),color:"text-accent2"};case"running":return{icon:o.jsx(Xt,{}),color:"text-neutral3"};case"suspended":return{icon:o.jsx(qV,{size:14}),color:"text-accent3"};case"canceled":return{icon:o.jsx(Rf,{size:14}),color:"text-neutral3"};case"pending":case"waiting":return{icon:o.jsx(fT,{size:14}),color:"text-neutral3"};default:return{icon:null,color:"text-neutral3"}}}const MXe="auto auto auto auto 1fr";function jds(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 Tds(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 Nds=3e4,Ids=5*6e4;function Ads({triggers:e,isLoading:t,workflowId:n,hasNextPage:r,isFetchingNextPage:s,setEndOfListElement:a}){const{Link:i,paths:l}=yn();return t?o.jsx(ol,{columns:MXe}):e.length===0?o.jsx(ye,{variant:"ui-md",className:"text-neutral4 p-4",children:"No trigger history yet."}):o.jsxs(ve,{columns:MXe,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=Tds(u),f=`Scheduled ${lT(c.scheduledFireAt)} — published ${lT(c.actualFireAt)} (drift ${d})`,p=c.outcome==="failed",h=p?c.error:c.run?.error,m=Math.abs(u),g=!p&&m>Nds&&m<=Ids,y=`${c.scheduleId}-${c.runId}-${c.actualFireAt}`,b=!!(n&&c.runId&&!p),x=o.jsx("span",{className:b?"text-accent1 text-ui-sm font-mono whitespace-nowrap":"text-neutral3 text-ui-sm font-mono whitespace-nowrap",children:c.runId}),w=o.jsxs(o.Fragment,{children:[o.jsx(ve.Cell,{height:"compact",children:x}),o.jsx(ve.Cell,{height:"compact",children:o.jsxs("span",{className:"inline-flex items-center gap-2",children:[p?o.jsxs("span",{className:"text-ui-sm text-accent2 inline-flex items-center gap-1.5 whitespace-nowrap",children:[o.jsx(wf,{size:14}),"publish failed"]}):c.run?o.jsx(z7t,{status:c.run.status}):o.jsx("span",{className:"text-ui-sm text-neutral3 inline-flex items-center gap-1.5 whitespace-nowrap",children:"pending"}),h?o.jsxs(Pn,{children:[o.jsx(An,{asChild:!0,children:o.jsx("span",{className:"text-accent2 inline-flex",children:o.jsx(wf,{size:14})})}),o.jsx(Rn,{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:L2(c.actualFireAt)}),g?o.jsxs(Pn,{children:[o.jsx(An,{asChild:!0,children:o.jsx("span",{className:"text-accent3 inline-flex",children:o.jsx(wf,{size:14})})}),o.jsxs(Rn,{children:["Published ",d," after the scheduled fire time"]})]}):null]})}),o.jsx(ve.Cell,{height:"compact",children:c.run?o.jsx("span",{children:jds(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 Rds=e=>{const t=We();return mt({queryKey:["schedule",e],enabled:!!e,queryFn:async()=>{if(!e)throw new Error("scheduleId is required");return t.getSchedule(e)}})},DXe=25,Pds=e=>{const t=We(),{inView:n,setRef:r}=Z_(),s=M1({queryKey:["schedule-triggers",e],enabled:!!e,initialPageParam:void 0,queryFn:async({pageParam:u})=>e?t.listScheduleTriggers(e,{limit:DXe,toActualFireAt:u}):{triggers:[]},getNextPageParam:u=>{if(!(!u?.triggers?.length||u.triggers.length<DXe))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 v.useEffect(()=>{n&&i&&!l&&c()},[n,i,l,c]),{...s,data:a,setEndOfListElement:r}},$ds=e=>{const t=We(),n=Ur();return Mn({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"]}),Le.success(s==="pause"?"Schedule paused":"Schedule resumed")},onError:r=>{Le.error(r.message)}})};function qz({label:e,children:t}){return o.jsxs("div",{className:"flex flex-col gap-1",children:[o.jsx(ye,{variant:"ui-xs",className:"text-neutral4 tracking-wide uppercase",children:e}),o.jsx("div",{className:"text-ui-md",children:t})]})}function Mds(){const{scheduleId:e}=Sr(),{paths:t}=yn(),{data:n,error:r}=Rds(e),{data:s,isLoading:a,error:i,hasNextPage:l,isFetchingNextPage:c,setEndOfListElement:u}=Pds(e),d=$ds(e);if(r&&ys(r))return o.jsx(lr,{children:o.jsx(Hs,{})});if(r&&xs(r))return o.jsx(lr,{children:o.jsx(Ms,{resource:"schedules"})});if(r)return o.jsx(lr,{children:o.jsx(qi,{title:"Failed to load schedule",message:r.message})});const f=n?.workflowId,p=n?.agentId;return o.jsxs(Ft,{children:[o.jsx(Ft.TopArea,{children:o.jsx(Ft.Row,{className:"justify-end",children:o.jsxs(Ft.Column,{className:"flex justify-end gap-2",children:[o.jsxs(ce,{as:Fa,to:t.schedulesLink(),variant:"ghost",children:[o.jsx(Ac,{}),"Back to schedules"]}),f?o.jsx(ce,{as:Fa,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(Hbe,{}),"Pause"]}):o.jsxs(o.Fragment,{children:[o.jsx(Ef,{}),"Resume"]})}):null]})})}),n?o.jsxs("div",{className:"grid h-full grid-cols-[minmax(0,20rem)_1fr] gap-6 overflow-hidden",children:[o.jsxs("div",{className:"border-border1 flex h-fit flex-col gap-4 rounded-md border p-4",children:[o.jsx(qz,{label:p?"Agent":"Workflow",children:f?o.jsx(Fa,{to:t.workflowLink(f),className:"text-accent1 hover:underline",children:f}):p?o.jsx(Fa,{to:t.agentLink(p),className:"text-accent1 hover:underline",children:p}):"—"}),o.jsxs(qz,{label:"Cron",children:[o.jsx("code",{className:"text-ui-md font-mono",children:n.cron}),n.timezone?o.jsx("span",{className:"text-neutral4 text-ui-sm ml-2",children:n.timezone}):null]}),o.jsx(qz,{label:"Status",children:o.jsx(F7t,{status:n.status})}),o.jsx(qz,{label:"Next fire",children:o.jsx("span",{title:lT(n.nextFireAt),children:L2(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(qi,{title:"Failed to load trigger history",message:i.message}):o.jsx(Ads,{triggers:s??[],isLoading:a,workflowId:f,hasNextPage:l,isFetchingNextPage:c,setEndOfListElement:u})]})]}):null]})}const LXe="minmax(0, 1.2fr) minmax(0, 1.4fr) minmax(0, 1fr) auto auto auto";function Dds({schedules:e,isLoading:t,search:n=""}){const{paths:r,Link:s}=yn(),a=v.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(ol,{columns:LXe}):o.jsxs(ve,{columns:LXe,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:"text-ui-smd text-neutral3 block truncate font-mono",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:"text-ui-sm font-mono",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(F7t,{status:i.status})}),o.jsx(ve.Cell,{height:"compact",children:o.jsx("span",{className:"whitespace-nowrap",title:lT(i.nextFireAt),children:L2(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(z7t,{status:i.lastRun.status}),o.jsx("span",{className:"text-neutral4 text-ui-sm",title:lT(i.lastFireAt),children:i.lastFireAt?L2(i.lastFireAt):""})]}):i.lastFireAt?o.jsx("span",{className:"whitespace-nowrap",title:lT(i.lastFireAt),children:L2(i.lastFireAt)}):o.jsx("span",{className:"text-neutral4",children:"Never"})})]},i.id))]})}function Lds({workflowId:e}={}){const{data:t,isLoading:n,error:r}=Lwe(e?{workflowId:e}:{}),[s,a]=v.useState("");return r?o.jsx(qi,{title:"Failed to load schedules",message:r.message}):o.jsxs("div",{className:"grid h-full grid-rows-[auto_1fr] gap-4 overflow-hidden",children:[o.jsx("div",{className:"max-w-120",children:o.jsx(Lf,{onSearch:a,label:"Filter schedules",placeholder:"Filter by id or workflow"})}),o.jsx("div",{className:"overflow-y-auto",children:o.jsx(Dds,{schedules:t??[],isLoading:n,search:s})})]})}function Fds(){const[e]=Ri(),t=e.get("workflowId")??void 0,{error:n}=Lwe(t?{workflowId:t}:{});return n&&ys(n)?o.jsx(lr,{children:o.jsx(Hs,{})}):n&&xs(n)?o.jsx(lr,{children:o.jsx(Ms,{resource:"schedules"})}):o.jsx(Ft,{children:o.jsx("div",{className:"h-full",children:o.jsx(Lds,{workflowId:t})})})}function zds({stepGraph:e,open:t,workflowName:n}){const{nodes:r,edges:s}=gke({stepGraph:e}),[a,i]=v.useState(!1),[l,c,u]=hkt(r),[d]=mkt(s),{edgeTypes:f,nodeTypes:p,styledEdges:h}=zDt({edges:d,workflowName:n,stepGraph:e});return v.useEffect(()=>{if(t){const m=setTimeout(()=>{i(!0)},500);return()=>clearTimeout(m)}},[t]),o.jsx("div",{className:"bg-surface1 relative h-full w-full",children:a?o.jsxs(pkt,{nodes:l,edges:h,edgeTypes:f,fitView:!0,fitViewOptions:{maxZoom:1},minZoom:.01,maxZoom:1,nodeTypes:p,onNodesChange:u,children:[o.jsx(nje,{position:"bottom-left"}),o.jsx(vkt,{variant:iy.Lines,gap:12,size:.5})]}):o.jsx("div",{className:"flex h-full w-full items-center justify-center",children:o.jsx(Xt,{})})})}function Bds(){const{stepDetail:e,closeStepDetail:t}=QH();return e?o.jsxs("div",{className:"flex h-full flex-col","data-testid":"workflow-step-detail-panel",children:[o.jsxs("div",{className:"border-border1 bg-surface1 flex items-center justify-between border-b px-4 py-3",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[e.type==="map-config"&&o.jsx(h9,{className:"h-4 w-4",style:{color:Iu.map}}),e.type==="nested-graph"&&o.jsx(td,{className:"h-4 w-4",style:{color:Iu.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:"hover:bg-surface3 rounded p-1 transition-colors","aria-label":"Close",children:o.jsx(bs,{className:"text-neutral3 h-4 w-4"})})]}),o.jsxs("div",{className:"flex-1 overflow-auto",children:[e.type==="map-config"&&e.mapConfig&&o.jsx(M2,{data:e.mapConfig}),e.type==="nested-graph"&&e.nestedGraph&&o.jsx("div",{className:"h-full min-h-[400px]",children:o.jsx(mke,{children:o.jsx(zds,{stepGraph:e.nestedGraph.stepGraph,open:!0,workflowName:e.nestedGraph.fullStep})},`nested-graph-${e.nestedGraph.fullStep}`)})]})]}):null}function Uds(e){const t=new Blob([JSON.stringify(e??null)]).size;return t<1024?`${t} B`:`${(t/1024).toFixed(1)} KB`}function Vds(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 qds({suspendedSteps:e,workflow:t,isStreaming:n,onResume:r}){return n||e.length===0?null:o.jsxs("div",{className:"border-border1 bg-surface4 space-y-5 rounded-lg border p-5","data-testid":"workflow-suspended-steps",children:[o.jsxs("div",{className:"flex items-center justify-between gap-3",children:[o.jsxs(ye,{as:"p",variant:"ui-md",className:"text-neutral6 flex items-center gap-2 font-semibold",children:[o.jsx(qe,{children:o.jsx(qV,{})}),"Step suspended"]}),o.jsx(cn,{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?hm(fm(Ox(i.resumeSchema))):gp(ur(),AT());return o.jsx(Hds,{step:s,stepSchema:l,description:i.description,isStreaming:n,onResume:r},`${s.runId}-${s.stepId}-${a}`)})]})}function Hds({step:e,stepSchema:t,description:n,isStreaming:r,onResume:s}){const[a,i]=v.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 truncate font-medium",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:"text-neutral3 flex items-center gap-2",children:[o.jsx(qe,{children:o.jsx(MZt,{})}),"The step is asking"]}),o.jsxs(Af,{open:a,onOpenChange:i,children:[o.jsxs(Fd,{className:"border-border1 bg-surface3 flex w-full items-center justify-between gap-2 rounded-lg border px-3 py-2.5",children:[o.jsxs("span",{className:"flex min-w-0 items-center gap-2",children:[o.jsx(qe,{children:o.jsx(pa,{className:X("transition-transform text-neutral3",{"transform rotate-90":a})})}),o.jsx(ye,{as:"span",variant:"ui-md",className:"text-neutral6 truncate",children:Vds(e.suspendPayload,e.stepId)})]}),o.jsx(ye,{as:"span",variant:"ui-sm",className:"text-neutral3 shrink-0",children:Uds(e.suspendPayload)})]}),o.jsx(zd,{children:o.jsx("div",{"data-testid":"suspended-payload",className:"pt-2",children:o.jsx(Wr,{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:"text-neutral3 flex items-center gap-2",children:[o.jsx(qe,{children:o.jsx(FZt,{})}),"Your response"]}),o.jsx("div",{className:"-mx-5",children:o.jsx(RB,{schema:t,isSubmitLoading:r,submitButtonLabel:"Resume",submitButtonIcon:o.jsx(Ef,{}),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 Wds(){const{result:e,runSnapshot:t,workflow:n,runId:r,isStreamingWorkflow:s}=v.useContext(Bl),{runId:a}=Sr(),i=Okt(e,r??""),l=kKn(),c=!!a,u=t?.status==="suspended",f=!!(a&&r&&a===r)&&e?.status==="suspended";return s||!n||i.length===0||c&&!u&&!f?null:o.jsx("div",{"data-testid":"workflow-suspended-overlay",className:"animate-in fade-in-0 slide-in-from-top-2 zoom-in-95 absolute top-2 right-2 z-20 max-h-[calc(100%-1rem)] w-[380px] max-w-[calc(100%-1rem)] overflow-y-auto rounded-lg shadow-lg duration-300",children:o.jsx(qds,{suspendedSteps:i,workflow:n,isStreaming:s,onResume:l})},r)}const Zds=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"})]}),Gds=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"})]}),Qds=e=>e.includes("."),Yds=e=>e==="input"||e.endsWith(".input"),Kds=1;function Xds(e){return`${Number((e/1e3).toPrecision(3))}s`}function Jds(e,t){const n=Object.entries(e).filter(([i])=>!Yds(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,Kds);return{stepId:i,step:l,status:l.status,offsetPct:f,widthPct:p,durationMs:d,isRunning:c,isNestedEntry:Qds(i)}})}const efs=({status:e})=>o.jsxs(qe,{children:[e==="success"&&o.jsx(Zds,{className:"text-accent1"}),e==="failed"&&o.jsx(Gds,{className:"text-accent2"}),e==="suspended"&&o.jsx(qV,{className:"text-accent3"}),e==="waiting"&&o.jsx(Nfe,{className:"text-accent5"}),e==="skipped"&&o.jsx(Nfe,{className:"text-icon3"}),e==="running"&&o.jsx(ia,{className:"text-accent6 animate-spin"})]}),tfs={success:"bg-accent1",failed:"bg-accent2",suspended:"bg-accent3",waiting:"bg-accent5",skipped:"bg-border1",running:"bg-accent6"};function B7t(e){return e.split(/[-_.\s]+/).filter(Boolean).map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(" ")}const FXe=e=>e&&typeof e=="object"&&!Array.isArray(e)?e:{value:e},nfs=e=>{const t=e;return IDt({duration:t.duration,date:t.date,isForEach:t.isForEach,mapConfig:t.mapConfig,canSuspend:t.canSuspend,isParallel:t.isParallel,stepGraph:t.stepGraph})},rfs=({row:e,index:t,isSelected:n,isHovered:r,onSelectStep:s,onHoverStep:a,onOpenInput:i,onOpenOutput:l})=>{const c=nfs(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:X("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(efs,{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(zGt,{})})}),o.jsx("div",{className:"flex overflow-hidden",children:o.jsx(vV,{indicators:c,className:"shrink-0"})}),o.jsx(ye,{as:"span",variant:"ui-sm",className:"text-neutral6 block max-w-full min-w-0 justify-self-stretch overflow-hidden text-left text-ellipsis whitespace-nowrap",children:B7t(e.stepId)}),o.jsx("div",{className:"bg-surface4 relative h-2 min-w-0 rounded",children:o.jsx("div",{"data-testid":"workflow-timeline-bar","data-offset":String(e.offsetPct),"data-width":String(e.widthPct),className:`absolute top-0 h-full rounded ${tfs[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(LGt,{})})}),o.jsx(ye,{as:"span",variant:"ui-sm",className:"text-neutral3 w-20 justify-self-end text-right tabular-nums",children:Xds(e.durationMs)})]},`timeline-item-${e.stepId}-${t}`)};function sfs(){const{steps:e}=B4(),{selectedStepId:t,hoverStepId:n,setSelectedStepId:r,setHoverStepId:s}=oH(),[a,i]=v.useState(()=>Date.now()),[l,c]=v.useState(!1),[u,d]=v.useState(null),f=v.useRef(null);Wwe(f,{enabled:!l});const p=Jds(e,a),h=p.some(m=>m.isRunning);return v.useEffect(()=>{if(!h)return;const m=setInterval(()=>i(Date.now()),100);return()=>clearInterval(m)},[h]),v.useEffect(()=>{if(l||p.length===0)return;const m=f.current;m&&(m.scrollTop=m.scrollHeight)},[l,p.length]),p.length===0?null:o.jsxs(o.Fragment,{children:[o.jsx("div",{"data-testid":"workflow-timeline",className:"pointer-events-none absolute right-0 bottom-0 z-20 px-2 pb-2",style:{left:"var(--workflow-left-panel-width, 0px)"},children:o.jsxs("div",{className:"rounded-studio-panel border-border1/50 bg-surface3 pointer-events-auto flex max-h-64 w-full min-w-0 flex-col gap-3 overflow-hidden border p-4 shadow-lg",children:[o.jsxs("div",{className:"flex shrink-0 items-center justify-between gap-3",children:[o.jsx(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:"text-neutral3 hover:bg-surface4 hover:text-neutral6 rounded-md p-1 transition-colors",children:o.jsx(Na,{className:X("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,g)=>o.jsx(rfs,{row:m,index:g,isSelected:t===m.stepId,isHovered:n===m.stepId,onSelectStep:r,onHoverStep:s,onOpenInput:y=>d({type:"input",stepId:y.stepId,data:FXe(y.step.input)}),onOpenOutput:y=>d({type:"output",stepId:y.stepId,data:FXe(y.step.output)})},`timeline-item-${m.stepId}-${g}`))})]})}),o.jsx(br,{open:!!u,onOpenChange:m=>!m&&d(null),children:u&&o.jsx(Ckt,{data:u.data,title:`${B7t(u.stepId)} ${u.type==="input"?"input":"output"}`})})]})}const afs=({workflowId:e,workflow:t,isLoading:n})=>{const{stepDetail:r}=QH();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(BDt,{workflowId:e,workflow:t,isLoading:n}),o.jsx(Wds,{}),o.jsx(sfs,{})]})}),r&&o.jsx("div",{className:"border-border1 min-h-0 w-[420px] overflow-hidden border-l",children:o.jsx(Bds,{})})]})},zXe=()=>{const{workflowId:e}=Sr(),{data:t,isLoading:n,error:r}=G3(e);return r&&ys(r)?o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Hs,{})}):r&&xs(r)?o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Ms,{resource:"workflows"})}):o.jsx(Pke,{children:o.jsx(afs,{workflowId:e,workflow:t??void 0,isLoading:n})})};function ifs(e,t){if(e==null)return{};var n,r,s=Nwt(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 jbe(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 ofs(e){if(Array.isArray(e))return jbe(e)}function lfs(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function cfs(e,t){if(e){if(typeof e=="string")return jbe(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)?jbe(e,t):void 0}}function ufs(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
|
|
722
722
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Tbe(e){return ofs(e)||lfs(e)||cfs(e)||ufs()}function jD(e){"@babel/helpers - typeof";return jD=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},jD(e)}function dfs(e,t){if(jD(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(jD(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function ffs(e){var t=dfs(e,"string");return jD(t)=="symbol"?t:t+""}function U7t(e,t,n){return(t=ffs(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function BXe(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 Sj(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?BXe(Object(n),!0).forEach(function(r){U7t(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):BXe(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function pfs(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 zae={};function hfs(e){if(e.length===0||e.length===1)return e;var t=e.join(".");return zae[t]||(zae[t]=pfs(e)),zae[t]}function mfs(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=hfs(r);return s.reduce(function(a,i){return Sj(Sj({},a),n[i])},t)}function UXe(e){return e.join(" ")}function gfs(e,t){var n=0;return function(r){return n+=1,r.map(function(s,a){return V7t({node:s,stylesheet:e,useInlineStyles:t,key:"code-segment-".concat(n,"-").concat(a)})})}}function V7t(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=gfs(n,a),p;if(!a)p=Sj(Sj({},l),{},{className:UXe(l.className)});else{var h=Object.keys(n).reduce(function(b,x){return x.split(".").forEach(function(w){b.includes(w)||b.push(w)}),b},[]),m=l.className&&l.className.includes("token")?["token"]:[],g=l.className&&m.concat(l.className.filter(function(b){return!h.includes(b)}));p=Sj(Sj({},l),{},{className:UXe(g)||void 0,style:mfs(l.className,Object.assign({},l.style,s),n)})}var y=f(t.children);return Fe.createElement(u,UO({key:i},p),y)}}const vfs=(function(e,t){var n=e.listLanguages();return n.indexOf(t)!==-1});var yfs=["language","children","style","customStyle","codeTagProps","useInlineStyles","showLineNumbers","showInlineLineNumbers","startingLineNumber","lineNumberContainerStyle","lineNumberStyle","wrapLines","wrapLongLines","lineProps","renderer","PreTag","CodeTag","code","astGenerator"];function VXe(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 jw(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?VXe(Object(n),!0).forEach(function(r){U7t(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):VXe(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}var bfs=/\n/g;function xfs(e){return e.match(bfs)}function wfs(e){var t=e.lines,n=e.startingLineNumber,r=e.style;return t.map(function(s,a){var i=a+n;return Fe.createElement("span",{key:"line-".concat(a),className:"react-syntax-highlighter-line-number",style:typeof r=="function"?r(i):r},"".concat(i,`
|
|
723
723
|
`))})}function Sfs(e){var t=e.codeString,n=e.codeStyle,r=e.containerStyle,s=r===void 0?{float:"left",paddingRight:"10px"}:r,a=e.numberStyle,i=a===void 0?{}:a,l=e.startingLineNumber;return Fe.createElement("code",{style:Object.assign({},n,s)},wfs({lines:t.replace(/\n$/,"").split(`
|
|
724
724
|
`),style:i,startingLineNumber:l}))}function kfs(e){return"".concat(e.toString().length,".25em")}function q7t(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 H7t(e,t,n){var r={display:"inline-block",minWidth:kfs(n),paddingRight:"1em",textAlign:"right",userSelect:"none"},s=typeof e=="function"?e(t):e,a=jw(jw({},r),s);return a}function u9(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?jw({},typeof l=="function"?l(n):l):{};if(m.className=m.className?[].concat(Tbe(m.className.trim().split(/\s+/)),Tbe(u)):u,n&&a){var g=H7t(r,n,s);t.unshift(q7t(n,g))}return f&d&&(m.style=jw({display:"flex"},m.style)),{type:"element",tagName:"span",properties:m,children:t}}function W7t(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(u9({children:[s],className:Tbe(new Set(t))}));else if(s.children){var a=t.concat(s.properties.className);W7t(s.children,a).forEach(function(i){return n.push(i)})}}return n}function Ofs(e,t,n,r,s,a,i,l,c){var u,d=W7t(e.value),f=[],p=-1,h=0;function m(_,C){var j=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[];return u9({children:_,lineNumber:C,lineNumberStyle:l,largestLineNumber:i,showInlineLineNumbers:s,lineProps:n,className:j,showLineNumbers:r,wrapLongLines:c,wrapLines:t})}function g(_,C){if(r&&C&&s){var j=H7t(l,C,i);_.unshift(q7t(C,j))}return _}function y(_,C){var j=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[];return t||j.length>0?m(_,C,j):g(_,C)}for(var b=function(){var C=d[h],j=C.children[0].value,E=xfs(j);if(E){var N=j.split(`
|