@mastra/deployer-cloud 1.64.0-alpha.9 → 1.64.0
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/dist/studio/assets/{core-B0-Cyy2m.js → core-0ibpKsHV.js} +1 -1
- package/dist/studio/assets/{index-Cmpn0OZn.js → index-CwXXJDPM.js} +2 -2
- package/dist/studio/assets/{main-O8y31E3s.js → main-Ce5WLEh0.js} +3 -3
- package/dist/studio/index.html +1 -1
- package/package.json +7 -7
- package/versions.json +1 -1
|
@@ -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-0ibpKsHV.js","./engine-compile-BkERmzkH.js","./preload-helper-PPVm8Dsz.js","./engine-javascript-CSIo_1eZ.js","./html-C2L_23MC.js","./javascript-ySlJ1b_l.js","./css-BPhBrDlE.js"])))=>i.map(i=>d[i]);
|
|
2
2
|
import{_ as La}from"./preload-helper-PPVm8Dsz.js";function PGt(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 Tj=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Vl(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var hX={exports:{}},cR={};var iMe;function $Gt(){if(iMe)return cR;iMe=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 cR.Fragment=t,cR.jsx=n,cR.jsxs=n,cR}var oMe;function MGt(){return oMe||(oMe=1,hX.exports=$Gt()),hX.exports}var o=MGt(),mX={exports:{}},Gr={},lMe;function DGt(){if(lMe)return Gr;lMe=1;var e={env:{}};var t=Symbol.for("react.transitional.element"),n=Symbol.for("react.portal"),r=Symbol.for("react.fragment"),s=Symbol.for("react.strict_mode"),a=Symbol.for("react.profiler"),i=Symbol.for("react.consumer"),l=Symbol.for("react.context"),c=Symbol.for("react.forward_ref"),u=Symbol.for("react.suspense"),d=Symbol.for("react.memo"),f=Symbol.for("react.lazy"),p=Symbol.for("react.activity"),h=Symbol.iterator;function m(U){return U===null||typeof U!="object"?null:(U=h&&U[h]||U["@@iterator"],typeof U=="function"?U:null)}var v={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},y=Object.assign,b={};function x(U,P,q){this.props=U,this.context=P,this.refs=b,this.updater=q||v}x.prototype.isReactComponent={},x.prototype.setState=function(U,P){if(typeof U!="object"&&typeof U!="function"&&U!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,U,P,"setState")},x.prototype.forceUpdate=function(U){this.updater.enqueueForceUpdate(this,U,"forceUpdate")};function S(){}S.prototype=x.prototype;function k(U,P,q){this.props=U,this.context=P,this.refs=b,this.updater=q||v}var _=k.prototype=new S;_.constructor=k,y(_,x.prototype),_.isPureReactComponent=!0;var C=Array.isArray;function T(){}var E={H:null,A:null,T:null,S:null},N=Object.prototype.hasOwnProperty;function I(U,P,q){var G=q.ref;return{$$typeof:t,type:U,key:P,ref:G!==void 0?G:null,props:q}}function A(U,P){return I(U.type,P,U.props)}function R(U){return typeof U=="object"&&U!==null&&U.$$typeof===t}function L(U){var P={"=":"=0",":":"=2"};return"$"+U.replace(/[=:]/g,function(q){return P[q]})}var M=/\/+/g;function z(U,P){return typeof U=="object"&&U!==null&&U.key!=null?L(""+U.key):P.toString(36)}function H(U){switch(U.status){case"fulfilled":return U.value;case"rejected":throw U.reason;default:switch(typeof U.status=="string"?U.then(T,T):(U.status="pending",U.then(function(P){U.status==="pending"&&(U.status="fulfilled",U.value=P)},function(P){U.status==="pending"&&(U.status="rejected",U.reason=P)})),U.status){case"fulfilled":return U.value;case"rejected":throw U.reason}}throw U}function F(U,P,q,G,K){var ne=typeof U;(ne==="undefined"||ne==="boolean")&&(U=null);var J=!1;if(U===null)J=!0;else switch(ne){case"bigint":case"string":case"number":J=!0;break;case"object":switch(U.$$typeof){case t:case n:J=!0;break;case f:return J=U._init,F(J(U._payload),P,q,G,K)}}if(J)return K=K(U),J=G===""?"."+z(U,0):G,C(K)?(q="",J!=null&&(q=J.replace(M,"$&/")+"/"),F(K,P,q,"",function(le){return le})):K!=null&&(R(K)&&(K=A(K,q+(K.key==null||U&&U.key===K.key?"":(""+K.key).replace(M,"$&/")+"/")+J)),P.push(K)),1;J=0;var ee=G===""?".":G+":";if(C(U))for(var re=0;re<U.length;re++)G=U[re],ne=ee+z(G,re),J+=F(G,P,q,ne,K);else if(re=m(U),typeof re=="function")for(U=re.call(U),re=0;!(G=U.next()).done;)G=G.value,ne=ee+z(G,re++),J+=F(G,P,q,ne,K);else if(ne==="object"){if(typeof U.then=="function")return F(H(U),P,q,G,K);throw P=String(U),Error("Objects are not valid as a React child (found: "+(P==="[object Object]"?"object with keys {"+Object.keys(U).join(", ")+"}":P)+"). If you meant to render a collection of children, use an array instead.")}return J}function B(U,P,q){if(U==null)return U;var G=[],K=0;return F(U,G,"","",function(ne){return P.call(q,ne,K++)}),G}function V(U){if(U._status===-1){var P=U._result;P=P(),P.then(function(q){(U._status===0||U._status===-1)&&(U._status=1,U._result=q)},function(q){(U._status===0||U._status===-1)&&(U._status=2,U._result=q)}),U._status===-1&&(U._status=0,U._result=P)}if(U._status===1)return U._result.default;throw U._result}var D=typeof reportError=="function"?reportError:function(U){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var P=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof U=="object"&&U!==null&&typeof U.message=="string"?String(U.message):String(U),error:U});if(!window.dispatchEvent(P))return}else if(typeof e=="object"&&typeof e.emit=="function"){e.emit("uncaughtException",U);return}console.error(U)},Z={map:B,forEach:function(U,P,q){B(U,function(){P.apply(this,arguments)},q)},count:function(U){var P=0;return B(U,function(){P++}),P},toArray:function(U){return B(U,function(P){return P})||[]},only:function(U){if(!R(U))throw Error("React.Children.only expected to receive a single React element child.");return U}};return Gr.Activity=p,Gr.Children=Z,Gr.Component=x,Gr.Fragment=r,Gr.Profiler=a,Gr.PureComponent=k,Gr.StrictMode=s,Gr.Suspense=u,Gr.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=E,Gr.__COMPILER_RUNTIME={__proto__:null,c:function(U){return E.H.useMemoCache(U)}},Gr.cache=function(U){return function(){return U.apply(null,arguments)}},Gr.cacheSignal=function(){return null},Gr.cloneElement=function(U,P,q){if(U==null)throw Error("The argument must be a React element, but you passed "+U+".");var G=y({},U.props),K=U.key;if(P!=null)for(ne in P.key!==void 0&&(K=""+P.key),P)!N.call(P,ne)||ne==="key"||ne==="__self"||ne==="__source"||ne==="ref"&&P.ref===void 0||(G[ne]=P[ne]);var ne=arguments.length-2;if(ne===1)G.children=q;else if(1<ne){for(var J=Array(ne),ee=0;ee<ne;ee++)J[ee]=arguments[ee+2];G.children=J}return I(U.type,K,G)},Gr.createContext=function(U){return U={$$typeof:l,_currentValue:U,_currentValue2:U,_threadCount:0,Provider:null,Consumer:null},U.Provider=U,U.Consumer={$$typeof:i,_context:U},U},Gr.createElement=function(U,P,q){var G,K={},ne=null;if(P!=null)for(G in P.key!==void 0&&(ne=""+P.key),P)N.call(P,G)&&G!=="key"&&G!=="__self"&&G!=="__source"&&(K[G]=P[G]);var J=arguments.length-2;if(J===1)K.children=q;else if(1<J){for(var ee=Array(J),re=0;re<J;re++)ee[re]=arguments[re+2];K.children=ee}if(U&&U.defaultProps)for(G in J=U.defaultProps,J)K[G]===void 0&&(K[G]=J[G]);return I(U,ne,K)},Gr.createRef=function(){return{current:null}},Gr.forwardRef=function(U){return{$$typeof:c,render:U}},Gr.isValidElement=R,Gr.lazy=function(U){return{$$typeof:f,_payload:{_status:-1,_result:U},_init:V}},Gr.memo=function(U,P){return{$$typeof:d,type:U,compare:P===void 0?null:P}},Gr.startTransition=function(U){var P=E.T,q={};E.T=q;try{var G=U(),K=E.S;K!==null&&K(q,G),typeof G=="object"&&G!==null&&typeof G.then=="function"&&G.then(T,D)}catch(ne){D(ne)}finally{P!==null&&q.types!==null&&(P.types=q.types),E.T=P}},Gr.unstable_useCacheRefresh=function(){return E.H.useCacheRefresh()},Gr.use=function(U){return E.H.use(U)},Gr.useActionState=function(U,P,q){return E.H.useActionState(U,P,q)},Gr.useCallback=function(U,P){return E.H.useCallback(U,P)},Gr.useContext=function(U){return E.H.useContext(U)},Gr.useDebugValue=function(){},Gr.useDeferredValue=function(U,P){return E.H.useDeferredValue(U,P)},Gr.useEffect=function(U,P){return E.H.useEffect(U,P)},Gr.useEffectEvent=function(U){return E.H.useEffectEvent(U)},Gr.useId=function(){return E.H.useId()},Gr.useImperativeHandle=function(U,P,q){return E.H.useImperativeHandle(U,P,q)},Gr.useInsertionEffect=function(U,P){return E.H.useInsertionEffect(U,P)},Gr.useLayoutEffect=function(U,P){return E.H.useLayoutEffect(U,P)},Gr.useMemo=function(U,P){return E.H.useMemo(U,P)},Gr.useOptimistic=function(U,P){return E.H.useOptimistic(U,P)},Gr.useReducer=function(U,P,q){return E.H.useReducer(U,P,q)},Gr.useRef=function(U){return E.H.useRef(U)},Gr.useState=function(U){return E.H.useState(U)},Gr.useSyncExternalStore=function(U,P,q){return E.H.useSyncExternalStore(U,P,q)},Gr.useTransition=function(){return E.H.useTransition()},Gr.version="19.2.7",Gr}var cMe;function tI(){return cMe||(cMe=1,mX.exports=DGt()),mX.exports}var g=tI();const Fe=Vl(g),nI=PGt({__proto__:null,default:Fe},[g]);var gX={exports:{}},uR={},vX={exports:{}},yX={};var uMe;function LGt(){return uMe||(uMe=1,(function(e){function t(H,F){var B=H.length;H.push(F);e:for(;0<B;){var V=B-1>>>1,D=H[V];if(0<s(D,F))H[V]=F,H[B]=D,B=V;else break e}}function n(H){return H.length===0?null:H[0]}function r(H){if(H.length===0)return null;var F=H[0],B=H.pop();if(B!==F){H[0]=B;e:for(var V=0,D=H.length,Z=D>>>1;V<Z;){var U=2*(V+1)-1,P=H[U],q=U+1,G=H[q];if(0>s(P,B))q<D&&0>s(G,P)?(H[V]=G,H[q]=B,V=q):(H[V]=P,H[U]=B,V=U);else if(q<D&&0>s(G,B))H[V]=G,H[q]=B,V=q;else break e}}return F}function s(H,F){var B=H.sortIndex-F.sortIndex;return B!==0?B: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,v=!1,y=!1,b=typeof setTimeout=="function"?setTimeout:null,x=typeof clearTimeout=="function"?clearTimeout:null,S=typeof setImmediate<"u"?setImmediate:null;function k(H){for(var 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(v=!1,k(H),!m)if(n(c)!==null)m=!0,C||(C=!0,R());else{var F=n(u);F!==null&&z(_,F.startTime-H)}}var C=!1,T=-1,E=5,N=-1;function I(){return y?!0:!(e.unstable_now()-N<E)}function A(){if(y=!1,C){var H=e.unstable_now();N=H;var F=!0;try{e:{m=!1,v&&(v=!1,x(T),T=-1),h=!0;var B=p;try{t:{for(k(H),f=n(c);f!==null&&!(f.expirationTime>H&&I());){var V=f.callback;if(typeof V=="function"){f.callback=null,p=f.priorityLevel;var D=V(f.expirationTime<=H);if(H=e.unstable_now(),typeof D=="function"){f.callback=D,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 Z=n(u);Z!==null&&z(_,Z.startTime-H),F=!1}}break e}finally{f=null,p=B,h=!1}F=void 0}}finally{F?R():C=!1}}}var R;if(typeof S=="function")R=function(){S(A)};else if(typeof MessageChannel<"u"){var L=new MessageChannel,M=L.port2;L.port1.onmessage=A,R=function(){M.postMessage(null)}}else R=function(){b(A,0)};function z(H,F){T=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 B=p;p=F;try{return H()}finally{p=B}},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 B=p;p=H;try{return F()}finally{p=B}},e.unstable_scheduleCallback=function(H,F,B){var V=e.unstable_now();switch(typeof B=="object"&&B!==null?(B=B.delay,B=typeof B=="number"&&0<B?V+B:V):B=V,H){case 1:var D=-1;break;case 2:D=250;break;case 5:D=1073741823;break;case 4:D=1e4;break;default:D=5e3}return D=B+D,H={id:d++,callback:F,priorityLevel:H,startTime:B,expirationTime:D,sortIndex:-1},B>V?(H.sortIndex=B,t(u,H),n(c)===null&&H===n(u)&&(v?(x(T),T=-1):v=!0,z(_,B-V))):(H.sortIndex=D,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 B=p;p=F;try{return H.apply(this,arguments)}finally{p=B}}}})(yX)),yX}var dMe;function FGt(){return dMe||(dMe=1,vX.exports=LGt()),vX.exports}var bX={exports:{}},Iu={};var fMe;function zGt(){if(fMe)return Iu;fMe=1;var e=tI();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 Iu.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=r,Iu.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)},Iu.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()}},Iu.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))},Iu.prefetchDNS=function(c){typeof c=="string"&&r.d.D(c)},Iu.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})}},Iu.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)},Iu.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})}},Iu.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)},Iu.requestFormReset=function(c){r.d.r(c)},Iu.unstable_batchedUpdates=function(c,u){return c(u)},Iu.useFormState=function(c,u,d){return i.H.useFormState(c,u,d)},Iu.useFormStatus=function(){return i.H.useHostTransitionStatus()},Iu.version="19.2.7",Iu}var pMe;function Zlt(){if(pMe)return bX.exports;pMe=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(),bX.exports=zGt(),bX.exports}var hMe;function BGt(){if(hMe)return uR;hMe=1;var e={env:{}};var t=FGt(),n=tI(),r=Zlt();function s(w){var O="https://react.dev/errors/"+w;if(1<arguments.length){O+="?args[]="+encodeURIComponent(arguments[1]);for(var j=2;j<arguments.length;j++)O+="&args[]="+encodeURIComponent(arguments[j])}return"Minified React error #"+w+"; visit "+O+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function a(w){return!(!w||w.nodeType!==1&&w.nodeType!==9&&w.nodeType!==11)}function i(w){var O=w,j=w;if(w.alternate)for(;O.return;)O=O.return;else{w=O;do O=w,(O.flags&4098)!==0&&(j=O.return),w=O.return;while(w)}return O.tag===3?j:null}function l(w){if(w.tag===13){var O=w.memoizedState;if(O===null&&(w=w.alternate,w!==null&&(O=w.memoizedState)),O!==null)return O.dehydrated}return null}function c(w){if(w.tag===31){var O=w.memoizedState;if(O===null&&(w=w.alternate,w!==null&&(O=w.memoizedState)),O!==null)return O.dehydrated}return null}function u(w){if(i(w)!==w)throw Error(s(188))}function d(w){var O=w.alternate;if(!O){if(O=i(w),O===null)throw Error(s(188));return O!==w?null:w}for(var j=w,$=O;;){var W=j.return;if(W===null)break;var Q=W.alternate;if(Q===null){if($=W.return,$!==null){j=$;continue}break}if(W.child===Q.child){for(Q=W.child;Q;){if(Q===j)return u(W),w;if(Q===$)return u(W),O;Q=Q.sibling}throw Error(s(188))}if(j.return!==$.return)j=W,$=Q;else{for(var ie=!1,Oe=W.child;Oe;){if(Oe===j){ie=!0,j=W,$=Q;break}if(Oe===$){ie=!0,$=W,j=Q;break}Oe=Oe.sibling}if(!ie){for(Oe=Q.child;Oe;){if(Oe===j){ie=!0,j=Q,$=W;break}if(Oe===$){ie=!0,$=Q,j=W;break}Oe=Oe.sibling}if(!ie)throw Error(s(189))}}if(j.alternate!==$)throw Error(s(190))}if(j.tag!==3)throw Error(s(188));return j.stateNode.current===j?w:O}function f(w){var O=w.tag;if(O===5||O===26||O===27||O===6)return w;for(w=w.child;w!==null;){if(O=f(w),O!==null)return O;w=w.sibling}return null}var p=Object.assign,h=Symbol.for("react.element"),m=Symbol.for("react.transitional.element"),v=Symbol.for("react.portal"),y=Symbol.for("react.fragment"),b=Symbol.for("react.strict_mode"),x=Symbol.for("react.profiler"),S=Symbol.for("react.consumer"),k=Symbol.for("react.context"),_=Symbol.for("react.forward_ref"),C=Symbol.for("react.suspense"),T=Symbol.for("react.suspense_list"),E=Symbol.for("react.memo"),N=Symbol.for("react.lazy"),I=Symbol.for("react.activity"),A=Symbol.for("react.memo_cache_sentinel"),R=Symbol.iterator;function L(w){return w===null||typeof w!="object"?null:(w=R&&w[R]||w["@@iterator"],typeof w=="function"?w:null)}var M=Symbol.for("react.client.reference");function z(w){if(w==null)return null;if(typeof w=="function")return w.$$typeof===M?null:w.displayName||w.name||null;if(typeof w=="string")return w;switch(w){case y:return"Fragment";case x:return"Profiler";case b:return"StrictMode";case C:return"Suspense";case T:return"SuspenseList";case I:return"Activity"}if(typeof w=="object")switch(w.$$typeof){case v:return"Portal";case k:return w.displayName||"Context";case S:return(w._context.displayName||"Context")+".Consumer";case _:var O=w.render;return w=w.displayName,w||(w=O.displayName||O.name||"",w=w!==""?"ForwardRef("+w+")":"ForwardRef"),w;case E:return O=w.displayName||null,O!==null?O:z(w.type)||"Memo";case N:O=w._payload,w=w._init;try{return z(w(O))}catch{}}return null}var H=Array.isArray,F=n.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,B=r.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,V={pending:!1,data:null,method:null,action:null},D=[],Z=-1;function U(w){return{current:w}}function P(w){0>Z||(w.current=D[Z],D[Z]=null,Z--)}function q(w,O){Z++,D[Z]=w.current,w.current=O}var G=U(null),K=U(null),ne=U(null),J=U(null);function ee(w,O){switch(q(ne,O),q(K,w),q(G,null),O.nodeType){case 9:case 11:w=(w=O.documentElement)&&(w=w.namespaceURI)?j2e(w):0;break;default:if(w=O.tagName,O=O.namespaceURI)O=j2e(O),w=N2e(O,w);else switch(w){case"svg":w=1;break;case"math":w=2;break;default:w=0}}P(G),q(G,w)}function re(){P(G),P(K),P(ne)}function le(w){w.memoizedState!==null&&q(J,w);var O=G.current,j=N2e(O,w.type);O!==j&&(q(K,w),q(G,j))}function X(w){K.current===w&&(P(G),P(K)),J.current===w&&(P(J),aR._currentValue=V)}var te,se;function fe(w){if(te===void 0)try{throw Error()}catch(j){var O=j.stack.trim().match(/\n( *(at )?)/);te=O&&O[1]||"",se=-1<j.stack.indexOf(`
|
|
3
3
|
at`)?" (<anonymous>)":-1<j.stack.indexOf("@")?"@unknown:0:0":""}return`
|
|
4
4
|
`+te+w+se}var ce=!1;function we(w,O){if(!w||ce)return"";ce=!0;var j=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var $={DetermineComponentFrameRoot:function(){try{if(O){var At=function(){throw Error()};if(Object.defineProperty(At.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(At,[])}catch(mt){var lt=mt}Reflect.construct(w,[],At)}else{try{At.call()}catch(mt){lt=mt}w.call(At.prototype)}}else{try{throw Error()}catch(mt){lt=mt}(At=w())&&typeof At.catch=="function"&&At.catch(function(){})}}catch(mt){if(mt&<&&typeof mt.stack=="string")return[mt.stack,lt.stack]}return[null,null]}};$.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var W=Object.getOwnPropertyDescriptor($.DetermineComponentFrameRoot,"name");W&&W.configurable&&Object.defineProperty($.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var Q=$.DetermineComponentFrameRoot(),ie=Q[0],Oe=Q[1];if(ie&&Oe){var qe=ie.split(`
|
|
@@ -231,7 +231,7 @@ attempted value: ${i}
|
|
|
231
231
|
\${}
|
|
232
232
|
}
|
|
233
233
|
}`,{label:"class",detail:"definition",type:"keyword"}),df('import {${names}} from "${module}"\n${}',{label:"import",detail:"named",type:"keyword"}),df('import ${name} from "${module}"\n${}',{label:"import",detail:"default",type:"keyword"})],MSt=sOe.concat([df("interface ${name} {\n ${}\n}",{label:"interface",detail:"definition",type:"keyword"}),df("type ${name} = ${type}",{label:"type",detail:"definition",type:"keyword"}),df("enum ${name} {\n ${}\n}",{label:"enum",detail:"definition",type:"keyword"})]),a9e=new z0t,DSt=new Set(["Script","Block","FunctionExpression","FunctionDeclaration","ArrowFunction","MethodDeclaration","ForStatement"]);function MR(e){return(t,n)=>{let r=t.node.getChild("VariableDefinition");return r&&n(r,e),!0}}const FUn=["FunctionDeclaration"],zUn={FunctionDeclaration:MR("function"),ClassDeclaration:MR("class"),ClassExpression:()=>!0,EnumDeclaration:MR("constant"),TypeAliasDeclaration:MR("type"),NamespaceDeclaration:MR("namespace"),VariableDefinition(e,t){e.matchContext(FUn)||t(e,"variable")},TypeDefinition(e,t){t(e,"type")},__proto__:null};function LSt(e,t){let n=a9e.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(Fa.IncludeAnonymous).iterate(i=>{if(s)s=!1;else if(i.name){let l=zUn[i.name];if(l&&l(i,a)||DSt.has(i.name))return!1}else if(i.to-i.from>8192){for(let l of LSt(e,i.node))r.push(l);return!1}}),a9e.set(t,r),r}const ZB=/^[\w$\xa1-\uffff][\w$\d\xa1-\uffff]*$/,aOe=["TemplateString","String","RegExp","LineComment","BlockComment","VariableDefinition","TypeDefinition","Label","PropertyDefinition","PropertyName","PrivatePropertyDefinition","PrivatePropertyName","JSXText","JSXAttributeValue","JSXOpenTag","JSXCloseTag","JSXSelfClosingTag",".","?."];function FSt(e){let t=yi(e.state).resolveInner(e.pos,-1);if(aOe.indexOf(t.name)>-1)return null;let n=t.name=="VariableName"||t.to-t.from<20&&ZB.test(e.state.sliceDoc(t.from,t.to));if(!n&&!e.explicit)return null;let r=[];for(let s=t;s;s=s.parent)DSt.has(s.name)&&(r=r.concat(LSt(e.state.doc,s)));return{options:r,from:n?t.from:e.pos,validFor:ZB}}function ste(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 zSt(e){let t=r=>e.state.doc.sliceString(r.from,r.to),n=yi(e.state).resolveInner(e.pos,-1);return n.name=="PropertyName"?ste(t,n.parent,t(n)):(n.name=="."||n.name=="?.")&&n.parent.name=="MemberExpression"?ste(t,n.parent,""):aOe.indexOf(n.name)>-1?null:n.name=="VariableName"||n.to-n.from<20&&ZB.test(t(n))?{path:[],name:t(n)}:n.name=="MemberExpression"?ste(t,n,""):e.explicit?{path:[],name:""}:null}function BUn(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 UUn(e){let t=new Map;return n=>{let r=zSt(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=BUn(s,!r.path.length)),{from:n.pos-r.name.length,options:a,validFor:ZB}}}const am=WO.define({name:"javascript",parser:LUn.configure({props:[sC.add({IfStatement:oj({except:/^\s*({|else\b)/}),TryStatement:oj({except:/^\s*({|catch\b|finally\b)/}),LabeledStatement:M8n,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:$8n({closing:"}"}),ArrowFunction:e=>e.baseIndent+e.unit,"TemplateString BlockComment":()=>null,"Statement Property":oj({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}}),aC.add({"Block ClassBody SwitchBody EnumBody ObjectExpression ArrayExpression ObjectType":Lke,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:"$"}}),BSt={test:e=>/^JSX/.test(e.name),facet:oW({commentTokens:{block:{open:"{/*",close:"*/}"}}})},iOe=am.configure({dialect:"ts"},"typescript"),oOe=am.configure({dialect:"jsx",props:[$ke.add(e=>e.isTop?[BSt]:void 0)]}),lOe=am.configure({dialect:"jsx ts",props:[$ke.add(e=>e.isTop?[BSt]:void 0)]},"typescript");let USt=e=>({label:e,type:"keyword"});const qSt="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(USt),qUn=qSt.concat(["declare","implements","private","protected","public"].map(USt));function GB(e={}){let t=e.jsx?e.typescript?lOe:oOe:e.typescript?iOe:am,n=e.typescript?MSt.concat(qUn):sOe.concat(qSt);return new GO(t,[am.data.of({autocomplete:w9n(aOe,B1t(n))}),am.data.of({autocomplete:FSt}),e.jsx?VSt:[]])}function VUn(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 i9e(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 HUn=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent),VSt=Pt.inputHandler.of((e,t,n,r,s)=>{if((HUn?e.composing:e.compositionStarted)||e.state.readOnly||t!=n||r!=">"&&r!="/"||!am.isActiveAt(e.state,t,-1))return!1;let a=s(),{state:i}=a,l=i.changeByRange(c=>{var u;let{head:d}=c,f=yi(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=i9e(i.doc,m.firstChild,d))||((u=m.firstChild)===null||u===void 0?void 0:u.name)=="JSXFragmentTag")){let v=`${p}>`;return{range:St.cursor(d+v.length,-1),changes:{from:d,insert:v}}}}else if(r==">"){let h=VUn(f);if(h&&h.name=="JSXOpenTag"&&!/^\/?>|^<\//.test(i.doc.sliceString(d,d+2))&&(p=i9e(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 WUn(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 am.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(ZUn(u,r.doc,c))}return s}}function o9e(e,t,n,r){return n.line(e+r.line).from+t+(e==1?r.col-1:-1)}function ZUn(e,t,n){let r=o9e(e.line,e.column,t,n),s={from:r,to:e.endLine!=null&&e.endColumn!=1?o9e(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 xF=Object.freeze(Object.defineProperty({__proto__:null,autoCloseTags:VSt,completionPath:zSt,esLint:WUn,javascript:GB,javascriptLanguage:am,jsxLanguage:oOe,localCompletionSource:FSt,scopeCompletionSource:UUn,snippets:sOe,tsxLanguage:lOe,typescriptLanguage:iOe,typescriptSnippets:MSt},Symbol.toStringTag,{value:"Module"})),DR=["_blank","_self","_top","_parent"],ate=["ascii","utf-8","utf-16","latin1","latin1"],ite=["get","post","put","delete"],ote=["application/x-www-form-urlencoded","multipart/form-data","text/plain"],up=["true","false"],Xn={},GUn={a:{attrs:{href:null,ping:null,type:null,media:null,target:DR,hreflang:null}},abbr:Xn,address:Xn,area:{attrs:{alt:null,coords:null,href:null,target:null,ping:null,media:null,hreflang:null,type:null,shape:["default","rect","circle","poly"]}},article:Xn,aside:Xn,audio:{attrs:{src:null,mediagroup:null,crossorigin:["anonymous","use-credentials"],preload:["none","metadata","auto"],autoplay:["autoplay"],loop:["loop"],controls:["controls"]}},b:Xn,base:{attrs:{href:null,target:DR}},bdi:Xn,bdo:Xn,blockquote:{attrs:{cite:null}},body:Xn,br:Xn,button:{attrs:{form:null,formaction:null,name:null,value:null,autofocus:["autofocus"],disabled:["autofocus"],formenctype:ote,formmethod:ite,formnovalidate:["novalidate"],formtarget:DR,type:["submit","reset","button"]}},canvas:{attrs:{width:null,height:null}},caption:Xn,center:Xn,cite:Xn,code:Xn,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:Xn,del:{attrs:{cite:null,datetime:null}},details:{attrs:{open:["open"]}},dfn:Xn,div:Xn,dl:Xn,dt:Xn,em:Xn,embed:{attrs:{src:null,type:null,width:null,height:null}},eventsource:{attrs:{src:null}},fieldset:{attrs:{disabled:["disabled"],form:null,name:null}},figcaption:Xn,figure:Xn,footer:Xn,form:{attrs:{action:null,name:null,"accept-charset":ate,autocomplete:["on","off"],enctype:ote,method:ite,novalidate:["novalidate"],target:DR}},h1:Xn,h2:Xn,h3:Xn,h4:Xn,h5:Xn,h6:Xn,head:{children:["title","base","link","style","meta","script","noscript","command"]},header:Xn,hgroup:Xn,hr:Xn,html:{attrs:{manifest:null}},i:Xn,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:ote,formmethod:ite,formnovalidate:["novalidate"],formtarget:DR,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:Xn,keygen:{attrs:{challenge:null,form:null,name:null,autofocus:["autofocus"],disabled:["disabled"],keytype:["RSA"]}},label:{attrs:{for:null,form:null}},legend:Xn,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:Xn,menu:{attrs:{label:null,type:["list","context","toolbar"]}},meta:{attrs:{content:null,charset:ate,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:Xn,noscript:Xn,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:Xn,param:{attrs:{name:null,value:null}},pre:Xn,progress:{attrs:{value:null,max:null}},q:{attrs:{cite:null}},rp:Xn,rt:Xn,ruby:Xn,samp:Xn,script:{attrs:{type:["text/javascript"],src:null,async:["async"],defer:["defer"],charset:ate}},section:Xn,select:{attrs:{form:null,name:null,size:null,autofocus:["autofocus"],disabled:["disabled"],multiple:["multiple"]}},slot:{attrs:{name:null}},small:Xn,source:{attrs:{src:null,type:null,media:null}},span:Xn,strong:Xn,style:{attrs:{type:["text/css"],media:null,scoped:null}},sub:Xn,summary:Xn,sup:Xn,table:Xn,tbody:Xn,td:{attrs:{colspan:null,rowspan:null,headers:null}},template:Xn,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:Xn,th:{attrs:{colspan:null,rowspan:null,headers:null,scope:["row","col","rowgroup","colgroup"]}},thead:Xn,time:{attrs:{datetime:null}},title:Xn,tr:Xn,track:{attrs:{src:null,label:null,default:null,kind:["subtitles","captions","descriptions","chapters","metadata"],srclang:null}},ul:{children:["li","script","template","ul","ol"]},var:Xn,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:Xn},HSt={accesskey:null,class:null,contenteditable:up,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:up,autocorrect:up,autocapitalize:up,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":up,"aria-autocomplete":["inline","list","both","none"],"aria-busy":up,"aria-checked":["true","false","mixed","undefined"],"aria-controls":null,"aria-describedby":null,"aria-disabled":up,"aria-dropeffect":null,"aria-expanded":["true","false","undefined"],"aria-flowto":null,"aria-grabbed":["true","false","undefined"],"aria-haspopup":up,"aria-hidden":up,"aria-invalid":["true","false","grammar","spelling"],"aria-label":null,"aria-labelledby":null,"aria-level":null,"aria-live":["off","polite","assertive"],"aria-multiline":up,"aria-multiselectable":up,"aria-owns":null,"aria-posinset":null,"aria-pressed":["true","false","mixed","undefined"],"aria-readonly":up,"aria-relevant":null,"aria-required":up,"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},WSt="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 WSt)HSt[e]=null;class $M{constructor(t,n){this.tags={...GUn,...t},this.globalAttrs={...HSt,...n},this.allTags=Object.keys(this.tags),this.globalAttrNames=Object.keys(this.globalAttrs)}}$M.default=new $M;function sN(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 aN(e,t=!1){for(;e;e=e.parent)if(e.name=="Element")if(t)t=!1;else return e;return null}function ZSt(e,t,n){let r=n.tags[sN(e,aN(t))];return r?.children||n.allTags}function cOe(e,t){let n=[];for(let r=aN(t);r&&!r.type.isTop;r=aN(r.parent)){let s=sN(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 GSt=/^[:\-\.\w\u00b7-\uffff]*$/;function l9e(e,t,n,r,s){let a=/\s*>/.test(e.sliceDoc(s,s+5))?"":">",i=aN(n,n.name=="StartTag"||n.name=="TagName");return{from:r,to:s,options:ZSt(e.doc,i,t).map(l=>({label:l,type:"type"})).concat(cOe(e.doc,n).map((l,c)=>({label:"/"+l,apply:"/"+l+a,type:"type",boost:99-c}))),validFor:/^\/?[:\-\.\w\u00b7-\uffff]*$/}}function c9e(e,t,n,r){let s=/\s*>/.test(e.sliceDoc(r,r+5))?"":">";return{from:n,to:r,options:cOe(e.doc,t).map((a,i)=>({label:a,apply:a+s,type:"type",boost:99-i})),validFor:GSt}}function QUn(e,t,n,r){let s=[],a=0;for(let i of ZSt(e.doc,n,t))s.push({label:"<"+i,type:"type"});for(let i of cOe(e.doc,n))s.push({label:"</"+i+">",type:"type",boost:99-a++});return{from:r,to:r,options:s,validFor:/^<\/?[:\-\.\w\u00b7-\uffff]*$/}}function YUn(e,t,n,r,s){let a=aN(n),i=a?t.tags[sN(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:GSt}}function KUn(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=aN(n),p=f?t.tags[sN(e.doc,f)]:null;d=p?.attrs&&p.attrs[u]}if(d){let f=e.sliceDoc(r,s).toLowerCase(),p='"',h='"';/^['"]/.test(f)?(c=f[0]=='"'?/^[^"]*$/:/^[^']*$/,p="",h=e.sliceDoc(s,s+1)==f[0]?"":f[0],f=f.slice(1),r++):c=/^[^\s<>='"]*$/;for(let m of d)l.push({label:m,apply:p+m+h,type:"constant"})}}return{from:r,to:s,options:l,validFor:c}}function QSt(e,t){let{state:n,pos:r}=t,s=yi(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)?c9e(n,s,s.from,r):l9e(n,e,s,s.from,r):s.name=="StartTag"||s.name=="IncompleteTag"?l9e(n,e,s,r,r):s.name=="StartCloseTag"||s.name=="IncompleteCloseTag"?c9e(n,s,r,r):s.name=="OpenTag"||s.name=="SelfClosingTag"||s.name=="AttributeName"?YUn(n,e,s,s.name=="AttributeName"?s.from:r,r):s.name=="Is"||s.name=="AttributeValue"||s.name=="UnquotedAttributeValue"?KUn(n,e,s,s.name=="Is"?r:s.from,r):t.explicit&&(a.name=="Element"||a.name=="Text"||a.name=="Document")?QUn(n,e,s,r):null}function XUn(e){return QSt($M.default,e)}function JUn(e){let{extraTags:t,extraGlobalAttributes:n}=e,r=n||t?new $M(t,n):$M.default;return s=>QSt(r,s)}const eqn=am.parser.configure({top:"SingleExpression"}),YSt=[{tag:"script",attrs:e=>e.type=="text/typescript"||e.lang=="ts",parser:iOe.parser},{tag:"script",attrs:e=>e.type=="text/babel"||e.type=="text/jsx",parser:oOe.parser},{tag:"script",attrs:e=>e.type=="text/typescript-jsx",parser:lOe.parser},{tag:"script",attrs(e){return/^(importmap|speculationrules|application\/(.+\+)?json)$/i.test(e.type)},parser:eqn},{tag:"script",attrs(e){return!e.type||/^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^module$|^$/i.test(e.type)},parser:am.parser},{tag:"style",attrs(e){return(!e.lang||e.lang=="css")&&(!e.type||/^(text\/)?(x-)?(stylesheet|css)$/i.test(e.type))},parser:WB.parser}],KSt=[{name:"style",parser:WB.parser.configure({top:"Styles"})}].concat(WSt.map(e=>({name:e,parser:am.parser}))),XSt=WO.define({name:"html",parser:_Bn.configure({props:[sC.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}}),aC.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}}}),P1t.add({"OpenTag CloseTag":e=>e.getChild("TagName")})]}),languageData:{commentTokens:{block:{open:"<!--",close:"-->"}},indentOnInput:/^\s*<\/\w+\W$/,wordChars:"-_"}}),J8=XSt.configure({wrap:jSt(YSt,KSt)});function tqn(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=jSt((e.nestedLanguages||[]).concat(YSt),(e.nestedAttributes||[]).concat(KSt)));let r=n?XSt.configure({wrap:n,dialect:t}):t?J8.configure({dialect:t}):J8;return new GO(r,[J8.data.of({autocomplete:JUn(e)}),e.autoCloseTags!==!1?nqn:[],GB().support,oUn().support])}const u9e=new Set("area base br col command embed frame hr img input keygen link meta param source track wbr menuitem".split(" ")),nqn=Pt.inputHandler.of((e,t,n,r,s)=>{if(e.composing||e.state.readOnly||t!=n||r!=">"&&r!="/"||!J8.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=yi(i).resolveInner(h,-1),v;if(p&&r==">"&&m.name=="EndTag"){let y=m.parent;if(((d=(u=y.parent)===null||u===void 0?void 0:u.lastChild)===null||d===void 0?void 0:d.name)!="CloseTag"&&(v=sN(i.doc,y.parent,h))&&!u9e.has(v)){let b=h+(i.doc.sliceString(h,h+1)===">"?1:0),x=`</${v}>`;return{range:c,changes:{from:h,to:b,insert:x}}}}else if(p&&r=="/"&&m.name=="IncompleteCloseTag"){let y=m.parent;if(m.from==h-2&&((f=y.lastChild)===null||f===void 0?void 0:f.name)!="CloseTag"&&(v=sN(i.doc,y,h))&&!u9e.has(v)){let b=h+(i.doc.sliceString(h,h+1)===">"?1:0),x=`${v}>`;return{range:St.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)}),JSt=oW({commentTokens:{block:{open:"<!--",close:"-->"}}}),ekt=new Mr,tkt=E7n.configure({props:[aC.add(e=>!e.is("Block")||e.is("Document")||hve(e)!=null||rqn(e)?void 0:(t,n)=>({from:n.doc.lineAt(t.from).to,to:t.to})),ekt.add(hve),sC.add({Document:()=>null}),Nw.add({Document:JSt})]});function hve(e){let t=/^(?:ATX|Setext)Heading(\d)$/.exec(e.name);return t?+t[1]:void 0}function rqn(e){return e.name=="OrderedList"||e.name=="BulletList"}function sqn(e,t){let n=e;for(;;){let r=n.nextSibling,s;if(!r||(s=hve(r.type))!=null&&s<=t)break;n=r}return n.to}const aqn=S1t.of((e,t,n)=>{for(let r=yi(e).resolveInner(n,-1);r&&!(r.from<t);r=r.parent){let s=r.type.prop(ekt);if(s==null)continue;let a=sqn(r,s);if(a>n)return{from:n,to:a}}return null});function uOe(e){return new Np(JSt,e,[],"markdown")}const nkt=uOe(tkt),iqn=tkt.configure([L7n,z7n,F7n,B7n,{props:[aC.add({Table:(e,t)=>({from:t.doc.lineAt(e.from).to,to:e.to})})]}]),KO=uOe(iqn);function oqn(e,t){return n=>{if(n&&e){let r=null;if(n=/\S*/.exec(n)[0],typeof e=="function"?r=e(n):r=hg.matchLanguageName(e,n,!0),r instanceof hg)return r.support?r.support.language.parser:ZO.getSkippingParser(r.load());if(r)return r.parser}return t?t.parser:null}}class lte{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(+skt(this.item,t)[2]+n):"";return this.spaceBefore+r+this.type+this.spaceAfter}}function rkt(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 lte(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 lte(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 lte(a.parent,c,c+d,i[1],u,f,a))}}return r}function skt(e,t){return/^(\s*)(\d+)(?=[.)])/.exec(t.sliceString(e.from,e.from+10))}function cte(e,t,n,r=0){for(let s=-1,a=e;;){if(a.name=="ListItem"){let l=skt(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 dOe(e,t){let n=/^[ \t]*/.exec(e)[0].length;if(!n||t.facet(EI)!=" ")return e;let r=qg(e,4,n),s="";for(let a=r;a>0;)a>=4?(s+=" ",a-=4):(s+=" ",a--);return s+e.slice(n)}const akt=(e={})=>({state:t,dispatch:n})=>{let r=yi(t),{doc:s}=t,a=null,i=t.changeByRange(l=>{if(!l.empty||!KO.isActiveAt(t,l.from,-1)&&!KO.isActiveAt(t,l.from,1))return a={range:l};let c=l.from,u=s.lineAt(c),d=rkt(r.resolveInner(c,-1),s);for(;d.length&&d[d.length-1].from>c-u.from;)d.pop();if(!d.length)return a={range:l};let f=d[d.length-1];if(f.to-f.spaceAfter.length>c-u.from)return a={range:l};let p=c>=f.to-f.spaceAfter.length&&!/\S/.test(u.text.slice(f.to));if(f.item&&p){let b=f.node.firstChild,x=f.node.getChild("ListItem","ListItem");if(b.to>=c||x&&x.to<c||u.from>0&&!/[^\s>]/.test(s.lineAt(u.from-1).text)||e.nonTightLists===!1){let S=d.length>1?d[d.length-2]:null,k,_="";S&&S.item?(k=u.from+S.from,_=S.marker(s,1)):k=u.from+(S?S.to:0);let C=[{from:k,to:c,insert:_}];return f.node.name=="OrderedList"&&cte(f.item,s,C,-2),S&&S.node.name=="OrderedList"&&cte(S.item,s,C),{range:St.cursor(k+_.length),changes:C}}else{let S=f9e(d,t,u);return{range:St.cursor(c+S.length+1),changes:{from:u.from,insert:S+t.lineBreak}}}}if(f.node.name=="Blockquote"&&p&&u.from){let b=s.lineAt(u.from-1),x=/>\s*$/.exec(b.text);if(x&&x.index==f.from){let S=t.changes([{from:b.from+x.index,to:b.to},{from:u.from+f.from,to:u.to}]);return{range:l.map(S),changes:S}}}let h=[];f.node.name=="OrderedList"&&cte(f.item,s,h);let m=f.item&&f.item.from<u.from,v="";if(!m||/^[\s\d.)\-+*>]*/.exec(u.text)[0].length>=f.to)for(let b=0,x=d.length-1;b<=x;b++)v+=b==x&&!m?d[b].marker(s,1):d[b].blank(b<x?qg(u.text,4,d[b+1].from)-v.length:null);let y=c;for(;y>u.from&&/\s/.test(u.text.charAt(y-u.from-1));)y--;return v=dOe(v,t),lqn(f.node,t.doc)&&(v=f9e(d,t,u)+t.lineBreak+v),h.push({from:y,to:c,insert:t.lineBreak+v}),{range:St.cursor(y+v.length+1),changes:h}});return a?!1:(n(t.update(i,{scrollIntoView:!0,userEvent:"input"})),!0)},ikt=akt();function d9e(e){return e.name=="QuoteMark"||e.name=="ListMark"}function lqn(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 f9e(e,t,n){let r="";for(let s=0,a=e.length-2;s<=a;s++)r+=e[s].blank(s<a?qg(n.text,4,e[s+1].from)-r.length:null,s<a);return dOe(r,t)}function cqn(e,t){let n=e.resolveInner(t,-1),r=t;d9e(n)&&(r=n.from,n=n.parent);for(let s;s=n.childBefore(r);)if(d9e(s))r=s.from;else if(s.name=="OrderedList"||s.name=="BulletList")n=s.lastChild,r=n.to;else break;return n}const okt=({state:e,dispatch:t})=>{let n=yi(e),r=null,s=e.changeByRange(a=>{let i=a.from,{doc:l}=e;if(a.empty&&KO.isActiveAt(e,a.from)){let c=l.lineAt(i),u=rkt(cqn(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:St.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(qg(c.text,4,d.to)-qg(c.text,4,d.from));return p==c.from&&(h=dOe(h,e)),{range:St.cursor(p+h.length),changes:{from:p,to:c.from+d.to,insert:h}}}if(p<i)return{range:St.cursor(p),changes:{from:p,to:i}}}}}return r={range:a}});return r?!1:(t(e.update(s,{scrollIntoView:!0,userEvent:"delete"})),!0)},lkt=[{key:"Enter",run:ikt},{key:"Backspace",run:okt}],ckt=tqn({matchClosingTags:!1});function fOe(e={}){let{codeLanguages:t,defaultCodeLanguage:n,addKeymap:r=!0,base:{parser:s}=nkt,completeHTMLTags:a=!0,pasteURLAsLink:i=!0,htmlTagLanguage:l=ckt}=e;if(!(s instanceof dW))throw new RangeError("Base parser provided to `markdown` should be a Markdown parser");let c=e.extensions?[e.extensions]:[],u=[l.support,aqn],d;i&&u.push(ukt),n instanceof GO?(u.push(n.support),d=n.language):n&&(d=n);let f=t||d?oqn(t,d):void 0;c.push(j7n({codeParser:f,htmlParser:l.language.parser})),r&&u.push(sh.high(CI.of(lkt)));let p=uOe(s.configure(c));return a&&u.push(p.data.of({autocomplete:uqn})),new GO(p,u)}function uqn(e){let{state:t,pos:n}=e,r=/<[:\-\.\w\u00b7-\uffff]*$/.exec(t.sliceDoc(n-25,n));if(!r)return null;let s=yi(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:dqn(),validFor:/^<[:\-\.\w\u00b7-\uffff]*$/}}let ute=null;function dqn(){if(ute)return ute;let e=XUn(new Uke(ms.create({extensions:ckt}),0,!0));return ute=e?e.options:[]}const fqn=/code|horizontalrule|html|link|comment|processing|escape|entity|image|mark|url/i,ukt=Pt.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),!KO.isActiveAt(t.state,r.from,1)))return!1;let a=yi(t.state),i=!1;return a.iterate({from:r.from,to:r.to,enter:l=>{(l.from>r.from||fqn.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)}}),pqn=Object.freeze(Object.defineProperty({__proto__:null,commonmarkLanguage:nkt,deleteMarkupBackward:okt,insertNewlineContinueMarkup:ikt,insertNewlineContinueMarkupCommand:akt,markdown:fOe,markdownKeymap:lkt,markdownLanguage:KO,pasteURLAsLink:ukt},Symbol.toStringTag,{value:"Module"}));function XO(){return XO=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},XO.apply(null,arguments)}var hqn=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=Pt.theme(i,{dark:t==="dark"}),d=Yg.define(a),f=[u,aS(d)];return f},mqn={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)"},gqn=[{tag:de.comment,color:"#6272a4"},{tag:de.string,color:"#f1fa8c"},{tag:de.atom,color:"#bd93f9"},{tag:de.meta,color:"#f8f8f2"},{tag:[de.keyword,de.operator,de.tagName],color:"#ff79c6"},{tag:[de.function(de.propertyName),de.propertyName],color:"#66d9ef"},{tag:[de.definition(de.variableName),de.function(de.variableName),de.className,de.attributeName],color:"#50fa7b"},{tag:de.atom,color:"#bd93f9"}],jI=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 hqn({theme:r,settings:XO({},mqn,a),styles:[...gqn,...l]})};jI();function dkt(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 vqn=e=>{let{state:t}=e,n=t.doc.lineAt(t.selection.main.from),r=hOe(e.state,n.from);return r.line?yqn(e):r.block?xqn(e):!1};function pOe(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 yqn=pOe(kqn,0),bqn=pOe(fkt,0),xqn=pOe((e,t)=>fkt(e,t,Sqn(t)),0);function hOe(e,t){let n=e.languageDataAt("commentTokens",t,1);return n.length?n[0]:{}}const LR=50;function wqn(e,{open:t,close:n},r,s){let a=e.sliceDoc(r-LR,r),i=e.sliceDoc(s,s+LR),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*LR?d=f=e.sliceDoc(r,s):(d=e.sliceDoc(r,r+LR),f=e.sliceDoc(s-LR,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 Sqn(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 fkt(e,t,n=t.selection.ranges){let r=n.map(a=>hOe(t,a.from).block);if(!r.every(a=>a))return null;let s=n.map((a,i)=>wqn(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 kqn(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=hOe(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 mve=Ly.define(),Oqn=Ly.define(),_qn=wn.define(),pkt=wn.define({combine(e){return Fy(e,{minDepth:100,newGroupDelay:500,joinToEvent:(t,n)=>n},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(t,n)=>(r,s)=>t(r,s)||n(r,s)})}}),hkt=bl.define({create(){return Xv.empty},update(e,t){let n=t.state.facet(pkt),r=t.annotation(mve);if(r){let c=Ef.fromTransaction(t,r.selection),u=r.side,d=u==0?e.undone:e.done;return c?d=QB(d,d.length,n.minDepth,c):d=vkt(d,t.startState.selection),new Xv(u==0?r.rest:d,u==0?d:r.rest)}let s=t.annotation(Oqn);if((s=="full"||s=="before")&&(e=e.isolate()),t.annotation(Al.addToHistory)===!1)return t.changes.empty?e:e.addMapping(t.changes.desc);let a=Ef.fromTransaction(t),i=t.annotation(Al.time),l=t.annotation(Al.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 Xv(e.done.map(Ef.fromJSON),e.undone.map(Ef.fromJSON))}});function Cqn(e={}){return[hkt,pkt.of(e),Pt.domEventHandlers({beforeinput(t,n){let r=t.inputType=="historyUndo"?mkt:t.inputType=="historyRedo"?gve:null;return r?(t.preventDefault(),r(n)):!1}})]}function fW(e,t){return function({state:n,dispatch:r}){if(!t&&n.readOnly)return!1;let s=n.field(hkt,!1);if(!s)return!1;let a=s.pop(e,n,t);return a?(r(a),!0):!1}}const mkt=fW(0,!1),gve=fW(1,!1),Eqn=fW(0,!0),Tqn=fW(1,!0);class Ef{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 Ef(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 Ef(t.changes&&Nl.fromJSON(t.changes),[],t.mapped&&ly.fromJSON(t.mapped),t.startSelection&&St.fromJSON(t.startSelection),t.selectionsAfter.map(St.fromJSON))}static fromTransaction(t,n){let r=Zh;for(let s of t.startState.facet(_qn)){let a=s(t);a.length&&(r=r.concat(a))}return!r.length&&t.changes.empty?null:new Ef(t.changes.invert(t.startState.doc),r,void 0,n||t.startState.selection,Zh)}static selection(t){return new Ef(void 0,Zh,void 0,void 0,t)}}function QB(e,t,n,r){let s=t+1>n+20?t-n-1:0,a=e.slice(s,t);return a.push(r),a}function jqn(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 Nqn(e,t){return e.ranges.length==t.ranges.length&&e.ranges.filter((n,r)=>n.empty!=t.ranges[r].empty).length===0}function gkt(e,t){return e.length?t.length?e.concat(t):e:t}const Zh=[],Iqn=200;function vkt(e,t){if(e.length){let n=e[e.length-1],r=n.selectionsAfter.slice(Math.max(0,n.selectionsAfter.length-Iqn));return r.length&&r[r.length-1].eq(t)?e:(r.push(t),QB(e,e.length-1,1e9,n.setSelAfter(r)))}else return[Ef.selection([t])]}function Aqn(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 dte(e,t){if(!e.length)return e;let n=e.length,r=Zh;for(;n;){let s=Rqn(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?[Ef.selection(r)]:Zh}function Rqn(e,t,n){let r=gkt(e.selectionsAfter.length?e.selectionsAfter.map(l=>l.map(t)):Zh,n);if(!e.changes)return Ef.selection(r);let s=e.changes.map(t),a=t.mapDesc(e.changes,!0),i=e.mapped?e.mapped.composeDesc(a):a;return new Ef(s,pr.mapEffects(e.effects,t),i,e.startSelection.map(a),r)}const Pqn=/^(input\.type|delete)($|\.)/;class Xv{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 Xv(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||Pqn.test(r))&&(!l.selectionsAfter.length&&n-this.prevTime<s.newGroupDelay&&s.joinToEvent(a,jqn(l.changes,t.changes))||r=="input.type.compose")?i=QB(i,i.length-1,s.minDepth,new Ef(t.changes.compose(l.changes),gkt(pr.mapEffects(t.effects,l.changes),l.effects),l.mapped,l.startSelection,Zh)):i=QB(i,i.length,s.minDepth,t),new Xv(i,Zh,n,r)}addSelection(t,n,r,s){let a=this.done.length?this.done[this.done.length-1].selectionsAfter:Zh;return a.length>0&&n-this.prevTime<s&&r==this.prevUserEvent&&r&&/^select($|\.)/.test(r)&&Nqn(a[a.length-1],t)?this:new Xv(vkt(this.done,t),this.undone,n,r)}addMapping(t){return new Xv(dte(this.done,t),dte(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:mve.of({side:t,rest:Aqn(s),selection:i}),userEvent:t==0?"select.undo":"select.redo",scrollIntoView:!0});if(a.changes){let l=s.length==1?Zh:s.slice(0,s.length-1);return a.mapped&&(l=dte(l,a.mapped)),n.update({changes:a.changes,selection:a.startSelection,effects:a.effects,annotations:mve.of({side:t,rest:l,selection:i}),filter:!1,userEvent:t==0?"undo":"redo",scrollIntoView:!0})}else return null}}Xv.empty=new Xv(Zh,Zh);const $qn=[{key:"Mod-z",run:mkt,preventDefault:!0},{key:"Mod-y",mac:"Mod-Shift-z",run:gve,preventDefault:!0},{linux:"Ctrl-Shift-z",run:gve,preventDefault:!0},{key:"Mod-u",run:Eqn,preventDefault:!0},{key:"Alt-u",mac:"Mod-Shift-u",run:Tqn,preventDefault:!0}];function NI(e,t){return St.create(e.ranges.map(t),e.mainIndex)}function Kg(e,t){return e.update({selection:t,scrollIntoView:!0,userEvent:"select"})}function Xg({state:e,dispatch:t},n){let r=NI(e.selection,n);return r.eq(e.selection,!0)?!1:(t(Kg(e,r)),!0)}function pW(e,t){return St.cursor(t?e.to:e.from)}function ykt(e,t){return Xg(e,n=>n.empty?e.moveByChar(n,t):pW(n,t))}function ad(e){return e.textDirectionAt(e.state.selection.main.head)==_i.LTR}const bkt=e=>ykt(e,!ad(e)),xkt=e=>ykt(e,ad(e));function wkt(e,t){return Xg(e,n=>n.empty?e.moveByGroup(n,t):pW(n,t))}const Mqn=e=>wkt(e,!ad(e)),Dqn=e=>wkt(e,ad(e));function Lqn(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 hW(e,t,n){let r=yi(e).resolveInner(t.head),s=n?Mr.closedBy:Mr.openedBy;for(let c=t.head;;){let u=n?r.childAfter(c):r.childBefore(c);if(!u)break;Lqn(e,u,s)?r=u:c=n?u.to:u.from}let a=r.type.prop(s),i,l;return a&&(i=n?Kv(e,r.from,1):Kv(e,r.to,-1))&&i.matched?l=n?i.end.to:i.end.from:l=n?r.to:r.from,St.cursor(l,n?-1:1)}const Fqn=e=>Xg(e,t=>hW(e.state,t,!ad(e))),zqn=e=>Xg(e,t=>hW(e.state,t,ad(e)));function Skt(e,t){return Xg(e,n=>{if(!n.empty)return pW(n,t);let r=e.moveVertically(n,t);return r.head!=n.head?r:e.moveToLineBoundary(n,t)})}const kkt=e=>Skt(e,!1),Okt=e=>Skt(e,!0);function _kt(e){let t=e.scrollDOM.clientHeight<e.scrollDOM.scrollHeight-2,n=0,r=0,s;if(t){for(let a of e.state.facet(Pt.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 Ckt(e,t){let n=_kt(e),{state:r}=e,s=NI(r.selection,i=>i.empty?e.moveVertically(i,t,n.height):pW(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=Pt.scrollIntoView(s.main.head,{y:"start",yMargin:i.top-c}))}return e.dispatch(Kg(r,s),{effects:a}),!0}const p9e=e=>Ckt(e,!1),vve=e=>Ckt(e,!0);function iS(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=St.cursor(r.from+a))}return s}const Bqn=e=>Xg(e,t=>iS(e,t,!0)),Uqn=e=>Xg(e,t=>iS(e,t,!1)),qqn=e=>Xg(e,t=>iS(e,t,!ad(e))),Vqn=e=>Xg(e,t=>iS(e,t,ad(e))),Hqn=e=>Xg(e,t=>St.cursor(e.lineBlockAt(t.head).from,1)),Wqn=e=>Xg(e,t=>St.cursor(e.lineBlockAt(t.head).to,-1));function Zqn(e,t,n){let r=!1,s=NI(e.selection,a=>{let i=Kv(e,a.head,-1)||Kv(e,a.head,1)||a.head>0&&Kv(e,a.head-1,1)||a.head<e.doc.length&&Kv(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 St.cursor(l)});return r?(t(Kg(e,s)),!0):!1}const Gqn=({state:e,dispatch:t})=>Zqn(e,t);function Dm(e,t,n){let r=NI(e.state.selection,s=>{s.undirectional&&s.head>=s.anchor!=t&&(s=St.range(s.head,s.anchor));let a=n(s);return St.range(s.anchor,a.head,a.goalColumn,a.bidiLevel||void 0,a.assoc)});return r.eq(e.state.selection)?!1:(e.dispatch(Kg(e.state,r)),!0)}function Ekt(e,t){return Dm(e,t,n=>e.moveByChar(n,t))}const Tkt=e=>Ekt(e,!ad(e)),jkt=e=>Ekt(e,ad(e));function Nkt(e,t){return Dm(e,t,n=>e.moveByGroup(n,t))}const Qqn=e=>Nkt(e,!ad(e)),Yqn=e=>Nkt(e,ad(e)),Kqn=e=>{let t=!ad(e);return Dm(e,t,n=>hW(e.state,n,t))},Xqn=e=>{let t=ad(e);return Dm(e,t,n=>hW(e.state,n,t))};function Ikt(e,t){return Dm(e,t,n=>e.moveVertically(n,t))}const Akt=e=>Ikt(e,!1),Rkt=e=>Ikt(e,!0);function Pkt(e,t){return Dm(e,t,n=>e.moveVertically(n,t,_kt(e).height))}const h9e=e=>Pkt(e,!1),m9e=e=>Pkt(e,!0),Jqn=e=>Dm(e,!0,t=>iS(e,t,!0)),eVn=e=>Dm(e,!1,t=>iS(e,t,!1)),tVn=e=>{let t=!ad(e);return Dm(e,t,n=>iS(e,n,t))},nVn=e=>{let t=ad(e);return Dm(e,t,n=>iS(e,n,t))},rVn=e=>Dm(e,!1,t=>St.cursor(e.lineBlockAt(t.head).from)),sVn=e=>Dm(e,!0,t=>St.cursor(e.lineBlockAt(t.head).to)),g9e=({state:e,dispatch:t})=>(t(Kg(e,{anchor:0})),!0),v9e=({state:e,dispatch:t})=>(t(Kg(e,{anchor:e.doc.length})),!0),y9e=({state:e,dispatch:t})=>(t(Kg(e,{anchor:e.selection.main.anchor,head:0})),!0),b9e=({state:e,dispatch:t})=>(t(Kg(e,{anchor:e.selection.main.anchor,head:e.doc.length})),!0),aVn=({state:e,dispatch:t})=>(t(e.update({selection:{anchor:0,head:e.doc.length},userEvent:"select"})),!0),iVn=({state:e,dispatch:t})=>{let n=mW(e).map(({from:r,to:s})=>St.range(r,Math.min(s+1,e.doc.length)));return t(e.update({selection:St.create(n),userEvent:"select"})),!0},oVn=({state:e,dispatch:t})=>{let n=NI(e.selection,r=>{let s=yi(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 St.range(l.to,l.from)}return r});return n.eq(e.selection)?!1:(t(Kg(e,n)),!0)};function $kt(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(Kg(n,St.create(s,s.length-1))),!0)}const lVn=e=>$kt(e,!1),cVn=e=>$kt(e,!0),uVn=({state:e,dispatch:t})=>{let n=e.selection,r=null;return n.ranges.length>1?r=St.create([n.main]):n.main.empty||(r=St.create([St.cursor(n.main.head)])),r?(t(Kg(e,r)),!0):!1};function r4(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=wF(e,c,!1)):c>i&&(n="delete.forward",c=wF(e,c,!0)),i=Math.min(i,c),l=Math.max(l,c)}else i=wF(e,i,!1),l=wF(e,l,!0);return i==l?{range:a}:{changes:{from:i,to:l},range:St.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"?Pt.announce.of(r.phrase("Selection deleted")):void 0})),!0)}function wF(e,t,n){if(e instanceof Pt)for(let r of e.state.facet(Pt.atomicRanges).map(s=>s(e)))r.between(t,t,(s,a)=>{s<t&&a>t&&(t=n?a:s)});return t}const Mkt=(e,t,n)=>r4(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=qg(l,a.tabSize),d=u%QO(a)||QO(a);for(let f=0;f<d&&l[l.length-1-f]==" ";f++)s--;c=s}else c=Rc(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=Rc(i.text,c-i.from,!1,!1)+i.from);return c}),yve=e=>Mkt(e,!1,!0),Dkt=e=>Mkt(e,!0,!1),Lkt=(e,t)=>r4(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=Rc(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}),Fkt=e=>Lkt(e,!1),dVn=e=>Lkt(e,!0),fVn=e=>r4(e,t=>{let n=e.lineBlockAt(t.head).to;return t.head<n?n:Math.min(e.state.doc.length,t.head+1)}),pVn=e=>r4(e,t=>{let n=e.moveToLineBoundary(t,!1).head;return t.head>n?n:Math.max(0,t.head-1)}),hVn=e=>r4(e,t=>{let n=e.moveToLineBoundary(t,!0).head;return t.head<n?n:Math.min(e.state.doc.length,t.head+1)}),mVn=({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:St.cursor(r.from)}));return t(e.update(n,{scrollIntoView:!0,userEvent:"input"})),!0},gVn=({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:Rc(a.text,s-a.from,!1)+a.from,l=s==a.to?s+1:Rc(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:St.cursor(l)}});return n.changes.empty?!1:(t(e.update(n,{scrollIntoView:!0,userEvent:"move.character"})),!0)};function mW(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 zkt(e,t,n){if(e.readOnly)return!1;let r=[],s=[];for(let a of mW(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(St.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(St.range(c.anchor-l,c.head-l))}}return r.length?(t(e.update({changes:r,scrollIntoView:!0,selection:St.create(s,e.selection.mainIndex),userEvent:"move.line"})),!0):!1}const vVn=({state:e,dispatch:t})=>zkt(e,t,!1),yVn=({state:e,dispatch:t})=>zkt(e,t,!0);function Bkt(e,t,n){if(e.readOnly)return!1;let r=[];for(let a of mW(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 bVn=({state:e,dispatch:t})=>Bkt(e,t,!1),xVn=({state:e,dispatch:t})=>Bkt(e,t,!0),wVn=e=>{if(e.state.readOnly)return!1;let{state:t}=e,n=t.changes(mW(t).map(({from:s,to:a})=>(s>0?s--:a<t.doc.length&&a++,{from:s,to:a}))),r=NI(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 SVn(e,t){if(/\(\)|\[\]|\{\}/.test(e.sliceDoc(t-1,t+1)))return{from:t,to:t};let n=yi(e).resolveInner(t),r=n.childBefore(t),s=n.childAfter(t),a;return r&&s&&r.to<=t&&s.from>=t&&(a=r.type.prop(Mr.closedBy))&&a.indexOf(s.name)>-1&&e.doc.lineAt(r.to).from==e.doc.lineAt(s.from).from&&!/\S/.test(e.sliceDoc(r.to,s.from))?{from:r.to,to:s.from}:null}const x9e=Ukt(!1),kVn=Ukt(!0);function Ukt(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&&SVn(t,a);e&&(a=i=(i<=l.to?l:t.doc.lineAt(i)).to);let u=new lW(t,{simulateBreak:a,simulateDoubleBreak:!!c}),d=Mke(u,a);for(d==null&&(d=qg(/^\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=["",EM(t,d)];return c&&f.push(EM(t,u.lineIndent(l.from,-1))),{changes:{from:a,to:i,insert:wa.of(f)},range:St.cursor(a+1+f[1].length)}});return n(t.update(r,{scrollIntoView:!0,userEvent:"input"})),!0}}function mOe(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:St.range(a.mapPos(r.anchor,1),a.mapPos(r.head,1))}})}const OVn=({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=Object.create(null),r=new lW(e,{overrideIndentation:a=>{let i=n[a];return i??-1}}),s=mOe(e,(a,i,l)=>{let c=Mke(r,a.from);if(c==null)return;/\S/.test(a.text)||(c=0);let u=/^\s*/.exec(a.text)[0],d=EM(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},qkt=({state:e,dispatch:t})=>e.readOnly?!1:(t(e.update(mOe(e,(n,r)=>{r.push({from:n.from,insert:e.facet(EI)})}),{userEvent:"input.indent"})),!0),Vkt=({state:e,dispatch:t})=>e.readOnly?!1:(t(e.update(mOe(e,(n,r)=>{let s=/^\s*/.exec(n.text)[0];if(!s)return;let a=qg(s,e.tabSize),i=0,l=EM(e,Math.max(0,a-QO(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),_Vn=e=>(e.setTabFocusMode(),!0),CVn=[{key:"Ctrl-b",run:bkt,shift:Tkt,preventDefault:!0},{key:"Ctrl-f",run:xkt,shift:jkt},{key:"Ctrl-p",run:kkt,shift:Akt},{key:"Ctrl-n",run:Okt,shift:Rkt},{key:"Ctrl-a",run:Hqn,shift:rVn},{key:"Ctrl-e",run:Wqn,shift:sVn},{key:"Ctrl-d",run:Dkt},{key:"Ctrl-h",run:yve},{key:"Ctrl-k",run:fVn},{key:"Ctrl-Alt-h",run:Fkt},{key:"Ctrl-o",run:mVn},{key:"Ctrl-t",run:gVn},{key:"Ctrl-v",run:vve}],EVn=[{key:"ArrowLeft",run:bkt,shift:Tkt,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:Mqn,shift:Qqn,preventDefault:!0},{mac:"Cmd-ArrowLeft",run:qqn,shift:tVn,preventDefault:!0},{key:"ArrowRight",run:xkt,shift:jkt,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:Dqn,shift:Yqn,preventDefault:!0},{mac:"Cmd-ArrowRight",run:Vqn,shift:nVn,preventDefault:!0},{key:"ArrowUp",run:kkt,shift:Akt,preventDefault:!0},{mac:"Cmd-ArrowUp",run:g9e,shift:y9e},{mac:"Ctrl-ArrowUp",run:p9e,shift:h9e},{key:"ArrowDown",run:Okt,shift:Rkt,preventDefault:!0},{mac:"Cmd-ArrowDown",run:v9e,shift:b9e},{mac:"Ctrl-ArrowDown",run:vve,shift:m9e},{key:"PageUp",run:p9e,shift:h9e},{key:"PageDown",run:vve,shift:m9e},{key:"Home",run:Uqn,shift:eVn,preventDefault:!0},{key:"Mod-Home",run:g9e,shift:y9e},{key:"End",run:Bqn,shift:Jqn,preventDefault:!0},{key:"Mod-End",run:v9e,shift:b9e},{key:"Enter",run:x9e,shift:x9e},{key:"Mod-a",run:aVn},{key:"Backspace",run:yve,shift:yve,preventDefault:!0},{key:"Delete",run:Dkt,preventDefault:!0},{key:"Mod-Backspace",mac:"Alt-Backspace",run:Fkt,preventDefault:!0},{key:"Mod-Delete",mac:"Alt-Delete",run:dVn,preventDefault:!0},{mac:"Mod-Backspace",run:pVn,preventDefault:!0},{mac:"Mod-Delete",run:hVn,preventDefault:!0}].concat(CVn.map(e=>({mac:e.key,run:e.run,shift:e.shift}))),TVn=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:Fqn,shift:Kqn},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:zqn,shift:Xqn},{key:"Alt-ArrowUp",run:vVn},{key:"Shift-Alt-ArrowUp",run:bVn},{key:"Alt-ArrowDown",run:yVn},{key:"Shift-Alt-ArrowDown",run:xVn},{key:"Mod-Alt-ArrowUp",run:lVn},{key:"Mod-Alt-ArrowDown",run:cVn},{key:"Escape",run:uVn},{key:"Mod-Enter",run:kVn},{key:"Alt-l",mac:"Ctrl-l",run:iVn},{key:"Mod-i",run:oVn,preventDefault:!0},{key:"Mod-[",run:Vkt},{key:"Mod-]",run:qkt},{key:"Mod-Alt-\\",run:OVn},{key:"Shift-Mod-k",run:wVn},{key:"Shift-Mod-\\",run:Gqn},{key:"Mod-/",run:vqn},{key:"Alt-A",run:bqn},{key:"Ctrl-m",mac:"Shift-Alt-m",run:_Vn}].concat(EVn),jVn={key:"Tab",run:qkt,shift:Vkt},w9e=typeof String.prototype.normalize=="function"?e=>e.normalize("NFKD"):e=>e;class $x{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(w9e(l)):w9e,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 vf(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=vke(t),r=this.bufferStart+this.bufferPos;this.bufferPos+=Bv(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"&&($x.prototype[Symbol.iterator]=function(){return this});const Hkt={from:-1,to:-1,match:/.*/.exec(""),precise:!0},gOe="gm"+(/x/.unicode==null?"":"u");class Wkt{constructor(t,n,r,s=0,a=t.length){if(this.text=t,this.to=a,this.curLine="",this.done=!1,this.value=Hkt,/\\[sWDnr]|\n|\r|\[\^/.test(n))return new Zkt(t,n,r,s,a);this.re=new RegExp(n,gOe+(r?.ignoreCase?"i":"")),this.test=r?.test,this.iter=t.iter();let i=t.lineAt(s);this.curLineStart=i.from,this.matchPos=YB(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=YB(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 fte=new WeakMap;class cj{constructor(t,n){this.from=t,this.text=n}get to(){return this.from+this.text.length}static get(t,n,r){let s=fte.get(t);if(!s||s.from>=r||s.to<=n){let l=new cj(n,t.sliceString(n,r));return fte.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)),fte.set(t,new cj(i,a)),new cj(n,a.slice(n-i,r-i))}}class Zkt{constructor(t,n,r,s,a){this.text=t,this.to=a,this.done=!1,this.value=Hkt,this.matchPos=YB(t,s),this.re=new RegExp(n,gOe+(r?.ignoreCase?"i":"")),this.test=r?.test,this.flat=cj.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=YB(this.text,s+(r==s?1:0)),this}if(this.flat.to==this.to)return this.done=!0,this;this.flat=cj.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+this.flat.text.length*2))}}}typeof Symbol<"u"&&(Wkt.prototype[Symbol.iterator]=Zkt.prototype[Symbol.iterator]=function(){return this});function NVn(e){try{return new RegExp(e,gOe),!0}catch{return!1}}function YB(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 IVn=e=>{let{state:t}=e,n=String(t.doc.lineAt(e.state.selection.main.head).number),{close:r,result:s}=f8n(e,{label:t.phrase("Go to line"),input:{type:"text",name:"line",value:n},focus:!0,submitLabel:t.phrase("go")});return s.then(a=>{let i=a&&/^([+-])?(\d+)?(:\d+)?(%)?$/.exec(a.elements.line.value);if(!i){e.dispatch({effects:r});return}let l=t.doc.lineAt(t.selection.main.head),[,c,u,d,f]=i,p=d?+d.slice(1):0,h=u?+u:l.number;if(u&&f){let y=h/100;c&&(y=y*(c=="-"?-1:1)+l.number/t.doc.lines),h=Math.round(t.doc.lines*y)}else u&&c&&(h=h*(c=="-"?-1:1)+l.number);let m=t.doc.line(Math.max(1,Math.min(t.doc.lines,h))),v=St.cursor(m.from+Math.max(0,Math.min(p,m.length)));e.dispatch({effects:[r,Pt.scrollIntoView(v.from,{y:"center"})],selection:v})}),!0},AVn={highlightWordAroundCursor:!1,minSelectionLength:1,maxMatches:100,wholeWords:!1},RVn=wn.define({combine(e){return Fy(e,AVn,{highlightWordAroundCursor:(t,n)=>t||n,minSelectionLength:Math.min,maxMatches:Math.min})}});function PVn(e){return[FVn,LVn]}const $Vn=jn.mark({class:"cm-selectionMatch"}),MVn=jn.mark({class:"cm-selectionMatch cm-selectionMatch-main"});function S9e(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 DVn(e,t,n,r){return e(t.sliceDoc(n,n+1))==wo.Word&&e(t.sliceDoc(r-1,r))==wo.Word}const LVn=_o.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(RVn),{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),!(S9e(i,n,s.from,s.to)&&DVn(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 $x(n.doc,a,c.from,c.to);for(;!u.next().done;){let{from:d,to:f}=u.value;if((!i||S9e(i,n,d,f))&&(s.empty&&d<=s.from&&f>=s.to?l.push(MVn.range(d,f)):(d>=s.to||f<=s.from)&&l.push($Vn.range(d,f)),l.length>t.maxMatches))return jn.none}}return jn.set(l)}},{decorations:e=>e.decorations}),FVn=Pt.baseTheme({".cm-selectionMatch":{backgroundColor:"#99ff7780"},".cm-searchMatch .cm-selectionMatch":{backgroundColor:"transparent"}}),zVn=({state:e,dispatch:t})=>{let{selection:n}=e,r=St.create(n.ranges.map(s=>e.wordAt(s.head)||St.cursor(s.head)),n.mainIndex);return r.eq(n)?!1:(t(e.update({selection:r})),!0)};function BVn(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 $x(e.doc,t,r[r.length-1].to);;)if(l.next(),l.done){if(i)return null;l=new $x(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 UVn=({state:e,dispatch:t})=>{let{ranges:n}=e.selection;if(n.some(a=>a.from===a.to))return zVn({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=BVn(e,r);return s?(t(e.update({selection:e.selection.addRange(St.range(s.from,s.to),!1),effects:Pt.scrollIntoView(s.to)})),!0):!1},II=wn.define({combine(e){return Fy(e,{top:!1,caseSensitive:!1,literal:!1,regexp:!1,wholeWord:!1,createPanel:t=>new nHn(t),scrollToMatch:t=>Pt.scrollIntoView(t)})}});class Gkt{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||NVn(this.search)),this.unquoted=this.unquote(this.search),this.wholeWord=!!t.wholeWord,this.test=t.test}unquote(t){return this.literal?t:t.replace(/\\([nrt\\])/g,(n,r)=>r=="n"?`
|
|
234
|
-
`:r=="r"?"\r":r=="t"?" ":"\\")}eq(t){return this.search==t.search&&this.replace==t.replace&&this.caseSensitive==t.caseSensitive&&this.regexp==t.regexp&&this.wholeWord==t.wholeWord&&this.test==t.test}create(){return this.regexp?new GVn(this):new HVn(this)}getCursor(t,n=0,r){let s=t.doc?t:ms.create({doc:t});return r==null&&(r=s.doc.length),this.regexp?sT(this,s,n,r):rT(this,s,n,r)}}class Qkt{constructor(t){this.spec=t}}function qVn(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 rT(e,t,n,r){let s;return e.wholeWord&&(s=VVn(t.doc,t.charCategorizer(t.selection.main.head))),e.test&&(s=qVn(e.test,t,s)),new $x(t.doc,e.unquoted,n,r,e.caseSensitive?void 0:a=>a.toLowerCase(),s)}function VVn(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(KB(s,n-a))!=wo.Word||t(XB(s,n-a))!=wo.Word)&&(t(XB(s,r-a))!=wo.Word||t(KB(s,r-a))!=wo.Word))}class HVn extends Qkt{constructor(t){super(t)}nextMatch(t,n,r){let s=rT(this.spec,t,r,t.doc.length).nextOverlapping();if(s.done){let a=Math.min(t.doc.length,n+this.spec.unquoted.length);s=rT(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=rT(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=rT(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=rT(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 WVn(e,t,n){return(r,s,a)=>(!n||n(r,s,a))&&e(a[0],t,r,s)}function sT(e,t,n,r){let s;return e.wholeWord&&(s=ZVn(t.charCategorizer(t.selection.main.head))),e.test&&(s=WVn(e.test,t,s)),new Wkt(t.doc,e.search,{ignoreCase:!e.caseSensitive,test:s},n,r)}function KB(e,t){return e.slice(Rc(e,t,!1),t)}function XB(e,t){return e.slice(t,Rc(e,t))}function ZVn(e){return(t,n,r)=>!r[0].length||(e(KB(r.input,r.index))!=wo.Word||e(XB(r.input,r.index))!=wo.Word)&&(e(XB(r.input,r.index+r[0].length))!=wo.Word||e(KB(r.input,r.index+r[0].length))!=wo.Word)}class GVn extends Qkt{nextMatch(t,n,r){let s=sT(this.spec,t,r,t.doc.length).next();return s.done&&(s=sT(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=sT(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=sT(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=sT(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 MM=pr.define(),vOe=pr.define(),Qw=bl.define({create(e){return new pte(bve(e).create(),null)},update(e,t){for(let n of t.effects)n.is(MM)?e=new pte(n.value.create(),e.panel):n.is(vOe)&&(e=new pte(e.query,n.value?yOe:null));return e},provide:e=>CM.from(e,t=>t.panel)});class pte{constructor(t,n){this.query=t,this.panel=n}}const QVn=jn.mark({class:"cm-searchMatch"}),YVn=jn.mark({class:"cm-searchMatch cm-searchMatch-selected"}),KVn=_o.fromClass(class{constructor(e){this.view=e,this.decorations=this.highlight(e.state.field(Qw))}update(e){let t=e.state.field(Qw);(t!=e.startState.field(Qw)||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 Wd;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?YVn:QVn)})}return r.finish()}},{decorations:e=>e.decorations});function s4(e){return t=>{let n=t.state.field(Qw,!1);return n&&n.query.spec.valid?e(t,n):Xkt(t)}}const JB=s4((e,{query:t})=>{let{to:n}=e.state.selection.main,r=t.nextMatch(e.state,n,n);if(!r)return!1;let s=St.single(r.from,r.to),a=e.state.facet(II);return e.dispatch({selection:s,effects:[bOe(e,r),a.scrollToMatch(s.main,e)],userEvent:"select.search"}),Kkt(e),!0}),eU=s4((e,{query:t})=>{let{state:n}=e,{from:r}=n.selection.main,s=t.prevMatch(n,r,r);if(!s)return!1;let a=St.single(s.from,s.to),i=e.state.facet(II);return e.dispatch({selection:a,effects:[bOe(e,s),i.scrollToMatch(a.main,e)],userEvent:"select.search"}),Kkt(e),!0}),XVn=s4((e,{query:t})=>{let n=t.matchAll(e.state,1e3);return!n||!n.length?!1:(e.dispatch({selection:St.create(n.map(r=>St.range(r.from,r.to))),userEvent:"select.search.matches"}),!0)}),JVn=({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 $x(e.doc,e.sliceDoc(r,s));!l.next().done;){if(a.length>1e3)return!1;l.value.from==r&&(i=a.length),a.push(St.range(l.value.from,l.value.to))}return t(e.update({selection:St.create(a,i),userEvent:"select.search.matches"})),!0},k9e=s4((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(Pt.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=St.single(i.from,i.to).map(f),d.push(bOe(e,i)),d.push(n.facet(II).scrollToMatch(c.main,e))),e.dispatch({changes:f,selection:c,effects:d,userEvent:"input.replace"}),!0}),eHn=s4((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:Pt.announce.of(r),userEvent:"input.replace.all"}),!0});function yOe(e){return e.state.facet(II).createPanel(e)}function bve(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(II);return new Gkt({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 Ykt(e){let t=Pke(e,yOe);return t&&t.dom.querySelector("[main-field]")}function Kkt(e){let t=Ykt(e);t&&t==e.root.activeElement&&t.select()}const Xkt=e=>{let t=e.state.field(Qw,!1);if(t&&t.panel){let n=Ykt(e);if(n&&n!=e.root.activeElement){let r=bve(e.state,t.query.spec);r.valid&&e.dispatch({effects:MM.of(r)}),n.focus(),n.select()}}else e.dispatch({effects:[vOe.of(!0),t?MM.of(bve(e.state,t.query.spec)):pr.appendConfig.of(sHn)]});return!0},Jkt=e=>{let t=e.state.field(Qw,!1);if(!t||!t.panel)return!1;let n=Pke(e,yOe);return n&&n.dom.contains(e.root.activeElement)&&e.focus(),e.dispatch({effects:vOe.of(!1)}),!0},tHn=[{key:"Mod-f",run:Xkt,scope:"editor search-panel"},{key:"F3",run:JB,shift:eU,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:JB,shift:eU,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:Jkt,scope:"editor search-panel"},{key:"Mod-Shift-l",run:JVn},{key:"Mod-Alt-g",run:IVn},{key:"Mod-d",run:UVn,preventDefault:!0}];class nHn{constructor(t){this.view=t;let n=this.query=t.state.field(Qw).query.spec;this.commit=this.commit.bind(this),this.searchField=fi("input",{value:n.search,placeholder:dp(t,"Find"),"aria-label":dp(t,"Find"),class:"cm-textfield",name:"search",form:"","main-field":"true",onchange:this.commit,onkeyup:this.commit}),this.replaceField=fi("input",{value:n.replace,placeholder:dp(t,"Replace"),"aria-label":dp(t,"Replace"),class:"cm-textfield",name:"replace",form:"",onchange:this.commit,onkeyup:this.commit}),this.caseField=fi("input",{type:"checkbox",name:"case",form:"",checked:n.caseSensitive,onchange:this.commit}),this.reField=fi("input",{type:"checkbox",name:"re",form:"",checked:n.regexp,onchange:this.commit}),this.wordField=fi("input",{type:"checkbox",name:"word",form:"",checked:n.wholeWord,onchange:this.commit});function r(s,a,i){return fi("button",{class:"cm-button",name:s,onclick:a,type:"button"},i)}this.dom=fi("div",{onkeydown:s=>this.keydown(s),class:"cm-search"},[this.searchField,r("next",()=>JB(t),[dp(t,"next")]),r("prev",()=>eU(t),[dp(t,"previous")]),r("select",()=>XVn(t),[dp(t,"all")]),fi("label",null,[this.caseField,dp(t,"match case")]),fi("label",null,[this.reField,dp(t,"regexp")]),fi("label",null,[this.wordField,dp(t,"by word")]),...t.state.readOnly?[]:[fi("br"),this.replaceField,r("replace",()=>k9e(t),[dp(t,"replace")]),r("replaceAll",()=>eHn(t),[dp(t,"replace all")])],fi("button",{name:"close",onclick:()=>Jkt(t),"aria-label":dp(t,"close"),type:"button"},["×"])])}commit(){let t=new Gkt({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:MM.of(t)}))}keydown(t){Szn(this.view,t,"search-panel")?t.preventDefault():t.keyCode==13&&t.target==this.searchField?(t.preventDefault(),(t.shiftKey?eU:JB)(this.view)):t.keyCode==13&&t.target==this.replaceField&&(t.preventDefault(),k9e(this.view))}update(t){for(let n of t.transactions)for(let r of n.effects)r.is(MM)&&!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(II).top}}function dp(e,t){return e.state.phrase(t)}const SF=30,kF=/[\s\.,:;?!]/;function bOe(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-SF),i=Math.min(s,n+SF),l=e.state.sliceDoc(a,i);if(a!=r.from){for(let c=0;c<SF;c++)if(!kF.test(l[c+1])&&kF.test(l[c])){l=l.slice(c);break}}if(i!=s){for(let c=l.length-1;c>l.length-SF;c--)if(!kF.test(l[c-1])&&kF.test(l[c])){l=l.slice(0,c);break}}return Pt.announce.of(`${e.state.phrase("current match")}. ${l} ${e.state.phrase("on line")} ${r.number}.`)}const rHn=Pt.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"}}),sHn=[Qw,sh.low(KVn),rHn];class O9e{constructor(t,n,r){this.from=t,this.to=n,this.diagnostic=r}}class Tk{constructor(t,n,r){this.diagnostics=t,this.panel=n,this.selected=r}static init(t,n,r){let s=r.facet(DM).markerFilter;s&&(t=s(t,r));let a=t.slice().sort((d,f)=>d.from-f.from||d.to-f.to),i=new Wd,l=[],c=0;for(let d=0;;){let f=d==a.length?null:a[d];if(!f&&!l.length)break;let p,h;for(l.length?(p=c,h=l.reduce((v,y)=>Math.min(v,y.to),f&&f.from>p?f.from:1e8)):(p=f.from,h=f.to,l.push(f),d++);d<a.length;){let v=a[d];if(v.from==p&&(v.to>v.from||v.to==p))l.push(v),d++,h=Math.min(v.to,h);else{h=Math.min(v.from,h);break}}let m=vHn(l);if(l.some(v=>v.from==v.to||v.from==v.to-1&&r.doc.lineAt(v.from).to==v.from))i.add(p,p,jn.widget({widget:new pHn(m),diagnostics:l.slice()}));else{let v=l.reduce((y,b)=>b.markClass?y+" "+b.markClass:y,"");i.add(p,h,jn.mark({class:"cm-lintRange cm-lintRange-"+m+v,diagnostics:l.slice(),inclusiveEnd:l.some(y=>y.to>h)}))}c=h;for(let v=0;v<l.length;v++)l[v].to<=c&&l.splice(v--,1)}let u=i.finish();return new Tk(u,n,iN(u))}}function iN(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 O9e(s,a,t||i.diagnostics[0]);else{if(i.diagnostics.indexOf(r.diagnostic)<0)return!1;r=new O9e(r.from,a,r.diagnostic)}}),r}function aHn(e,t){let n=t.pos,r=t.end||n,s=e.state.facet(DM).hideOn(e,n,r);if(s!=null)return s;let a=e.startState.doc.lineAt(t.pos);return!!(e.effects.some(i=>i.is(eOt))||e.changes.touchesRange(a.from,Math.max(a.to,r)))}function iHn(e,t){return e.field(Ip,!1)?t:t.concat(pr.appendConfig.of(yHn))}const eOt=pr.define(),xOe=pr.define(),tOt=pr.define(),Ip=bl.define({create(){return new Tk(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=iN(n,e.selected.diagnostic,a)||iN(n,null,a)}!n.size&&s&&t.state.facet(DM).autoPanel&&(s=null),e=new Tk(n,s,r)}for(let n of t.effects)if(n.is(eOt)){let r=t.state.facet(DM).autoPanel?n.value.length?LM.open:null:e.panel;e=Tk.init(n.value,r,t.state)}else n.is(xOe)?e=new Tk(e.diagnostics,n.value?LM.open:null,e.selected):n.is(tOt)&&(e=new Tk(e.diagnostics,e.panel,n.value));return e},provide:e=>[CM.from(e,t=>t.panel),Pt.decorations.from(e,t=>t.diagnostics)]}),oHn=jn.mark({class:"cm-lintRange cm-lintRange-active"});function lHn(e,t,n){let{diagnostics:r}=e.state.field(Ip),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(DM).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:cHn(e,s)}}}:null}function cHn(e,t){return fi("ul",{class:"cm-tooltip-lint"},t.map(n=>rOt(e,n,!1)))}const uHn=e=>{let t=e.state.field(Ip,!1);(!t||!t.panel)&&e.dispatch({effects:iHn(e.state,[xOe.of(!0)])});let n=Pke(e,LM.open);return n&&n.dom.querySelector(".cm-panel-lint ul").focus(),!0},_9e=e=>{let t=e.state.field(Ip,!1);return!t||!t.panel?!1:(e.dispatch({effects:xOe.of(!1)}),!0)},dHn=e=>{let t=e.state.field(Ip,!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)},fHn=[{key:"Mod-Shift-m",run:uHn,preventDefault:!0},{key:"F8",run:dHn}],DM=wn.define({combine(e){return{sources:e.map(t=>t.source).filter(t=>t!=null),...Fy(e.map(t=>t.config),{delay:750,markerFilter:null,tooltipFilter:null,needsRefresh:null,hideOn:()=>null},{delay:Math.max,markerFilter:C9e,tooltipFilter:C9e,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 C9e(e,t){return e?t?(n,r)=>t(e(n,r),r):e:t}function nOt(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 rOt(e,t,n){var r;let s=n?nOt(t.actions):[];return fi("li",{class:"cm-diagnostic cm-diagnostic-"+t.severity},fi("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=iN(e.state.field(Ip).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),fi("u",u.slice(d,d+1)),u.slice(d+1)],p=a.markClass?" "+a.markClass:"";return fi("button",{type:"button",class:"cm-diagnosticAction"+p,onclick:c,onmousedown:c,"aria-label":` Action: ${u}${d<0?"":` (access key "${s[i]})"`}.`},f)}),t.source&&fi("div",{class:"cm-diagnosticSource"},t.source))}class pHn extends ah{constructor(t){super(),this.sev=t}eq(t){return t.sev==this.sev}toDOM(){return fi("span",{class:"cm-lintPoint cm-lintPoint-"+this.sev})}}class E9e{constructor(t,n){this.diagnostic=n,this.id="item_"+Math.floor(Math.random()*4294967295).toString(16),this.dom=rOt(t,n,!0),this.dom.id=this.id,this.dom.setAttribute("role","option")}}class LM{constructor(t){this.view=t,this.items=[];let n=s=>{if(s.keyCode==27)_9e(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=nOt(a.actions);for(let l=0;l<i.length;l++)if(i[l].toUpperCase().charCodeAt(0)==s.keyCode){let c=iN(this.view.state.field(Ip).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=fi("ul",{tabIndex:0,role:"listbox","aria-label":this.view.state.phrase("Diagnostics"),onkeydown:n,onclick:r}),this.dom=fi("div",{class:"cm-panel-lint"},this.list,fi("button",{type:"button",name:"close","aria-label":this.view.state.phrase("close"),onclick:()=>_9e(this.view)},"×")),this.update()}get selectedIndex(){let t=this.view.state.field(Ip).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(Ip),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 E9e(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 E9e(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(Ip),r=iN(n.diagnostics,this.items[t].diagnostic);r&&this.view.dispatch({selection:{anchor:r.from,head:r.to},scrollIntoView:!0,effects:tOt.of(r)})}static open(t){return new LM(t)}}function hHn(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 OF(e){return hHn(`<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 mHn=Pt.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:OF("#d11")},".cm-lintRange-warning":{backgroundImage:OF("orange")},".cm-lintRange-info":{backgroundImage:OF("#999")},".cm-lintRange-hint":{backgroundImage:OF("#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 gHn(e){return e=="error"?4:e=="warning"?3:e=="info"?2:1}function vHn(e){let t="hint",n=1;for(let r of e){let s=gHn(r.severity);s>n&&(n=s,t=r.severity)}return t}const yHn=[Ip,Pt.decorations.compute([Ip],e=>{let{selected:t,panel:n}=e.field(Ip);return!t||!n||t.from==t.to?jn.none:jn.set([oHn.range(t.from,t.to)])}),u8n(lHn,{hideOn:aHn}),mHn];var T9e=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(o7n)),t.defaultKeymap!==!1&&(a=a.concat(TVn)),t.searchKeymap!==!1&&(a=a.concat(tHn)),t.historyKeymap!==!1&&(a=a.concat($qn)),t.foldKeymap!==!1&&(a=a.concat(W8n)),t.completionKeymap!==!1&&(a=a.concat(K1t)),t.lintKeymap!==!1&&(a=a.concat(fHn));var i=[];return t.lineNumbers!==!1&&i.push(S8n()),t.highlightActiveLineGutter!==!1&&i.push(_8n()),t.highlightSpecialChars!==!1&&i.push(Lzn()),t.history!==!1&&i.push(Cqn()),t.foldGutter!==!1&&i.push(Y8n()),t.drawSelection!==!1&&i.push(Tzn()),t.dropCursor!==!1&&i.push(Rzn()),t.allowMultipleSelections!==!1&&i.push(ms.allowMultipleSelections.of(!0)),t.indentOnInput!==!1&&i.push(L8n()),t.syntaxHighlighting!==!1&&i.push(aS(e9n,{fallback:!0})),t.bracketMatching!==!1&&i.push(o9n()),t.closeBrackets!==!1&&i.push(r7n()),t.autocompletion!==!1&&i.push(Y1t()),t.rectangularSelection!==!1&&i.push(Xzn()),s!==!1&&i.push(t8n()),t.highlightActiveLine!==!1&&i.push(Vzn()),t.highlightSelectionMatches!==!1&&i.push(PVn()),t.tabSize&&typeof t.tabSize=="number"&&i.push(EI.of(" ".repeat(t.tabSize))),i.concat([CI.of(a.flat())]).filter(Boolean)};const bHn="#e5c07b",j9e="#e06c75",xHn="#56b6c2",wHn="#ffffff",e9="#abb2bf",xve="#7d8799",SHn="#61afef",kHn="#98c379",N9e="#d19a66",OHn="#c678dd",_Hn="#21252b",I9e="#2c313a",A9e="#282c34",hte="#353a42",CHn="#3E4451",R9e="#528bff",EHn=Pt.theme({"&":{color:e9,backgroundColor:A9e},".cm-content":{caretColor:R9e},".cm-cursor, .cm-dropCursor":{borderLeftColor:R9e},"&.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection":{backgroundColor:CHn},".cm-panels":{backgroundColor:_Hn,color:e9},".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:A9e,color:xve,border:"none"},".cm-activeLineGutter":{backgroundColor:I9e},".cm-foldPlaceholder":{backgroundColor:"transparent",border:"none",color:"#ddd"},".cm-tooltip":{border:"none",backgroundColor:hte},".cm-tooltip .cm-tooltip-arrow:before":{borderTopColor:"transparent",borderBottomColor:"transparent"},".cm-tooltip .cm-tooltip-arrow:after":{borderTopColor:hte,borderBottomColor:hte},".cm-tooltip-autocomplete":{"& > ul > li[aria-selected]":{backgroundColor:I9e,color:e9}}},{dark:!0}),THn=Yg.define([{tag:de.keyword,color:OHn},{tag:[de.name,de.deleted,de.character,de.propertyName,de.macroName],color:j9e},{tag:[de.function(de.variableName),de.labelName],color:SHn},{tag:[de.color,de.constant(de.name),de.standard(de.name)],color:N9e},{tag:[de.definition(de.name),de.separator],color:e9},{tag:[de.typeName,de.className,de.number,de.changed,de.annotation,de.modifier,de.self,de.namespace],color:bHn},{tag:[de.operator,de.operatorKeyword,de.url,de.escape,de.regexp,de.link,de.special(de.string)],color:xHn},{tag:[de.meta,de.comment],color:xve},{tag:de.strong,fontWeight:"bold"},{tag:de.emphasis,fontStyle:"italic"},{tag:de.strikethrough,textDecoration:"line-through"},{tag:de.link,color:xve,textDecoration:"underline"},{tag:de.heading,fontWeight:"bold",color:j9e},{tag:[de.atom,de.bool,de.special(de.variableName)],color:N9e},{tag:[de.processingInstruction,de.string,de.inserted],color:kHn},{tag:de.invalid,color:wHn}]),jHn=[EHn,aS(THn)];var NHn=Pt.theme({"&":{backgroundColor:"#fff"}},{dark:!1}),IHn=function(t){t===void 0&&(t={});var n=t,r=n.indentWithTab,s=r===void 0?!0:r,a=n.editable,i=a===void 0?!0:a,l=n.readOnly,c=l===void 0?!1:l,u=n.theme,d=u===void 0?"light":u,f=n.placeholder,p=f===void 0?"":f,h=n.basicSetup,m=h===void 0?!0:h,v=[];switch(s&&v.unshift(CI.of([jVn])),m&&(typeof m=="boolean"?v.unshift(T9e()):v.unshift(T9e(m))),p&&v.unshift(Gzn(p)),d){case"light":v.push(NHn);break;case"dark":v.push(jHn);break;case"none":break;default:v.push(d);break}return i===!1&&v.push(Pt.editable.of(!1)),c&&v.push(ms.readOnly.of(!0)),[...v]},AHn=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 RHn{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 P9e{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 mte=null,PHn=()=>typeof window>"u"?new P9e:(mte||(mte=new P9e),mte),$Hn=Pt.theme({"& .cm-scroller":{height:"100% !important"}}),$9e=null,gte=null;function MHn(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===$9e||($9e=i,gte=Pt.theme({"&":{height:e,minHeight:t,maxHeight:n,width:r,minWidth:s,maxWidth:a}})),gte}var M9e=Ly.define(),DHn=200,LHn=[];function FHn(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?LHn:l,u=e.autoFocus,d=e.theme,f=d===void 0?"light":d,p=e.height,h=p===void 0?null:p,m=e.minHeight,v=m===void 0?null:m,y=e.maxHeight,b=y===void 0?null:y,x=e.width,S=x===void 0?null:x,k=e.minWidth,_=k===void 0?null:k,C=e.maxWidth,T=C===void 0?null:C,E=e.placeholder,N=E===void 0?"":E,I=e.editable,A=I===void 0?!0:I,R=e.readOnly,L=R===void 0?!1:R,M=e.indentWithTab,z=M===void 0?!0:M,H=e.basicSetup,F=H===void 0?!0:H,B=e.root,V=e.initialState,D=g.useState(),Z=D[0],U=D[1],P=g.useState(),q=P[0],G=P[1],K=g.useState(),ne=K[0],J=K[1],ee=g.useState(()=>({current:null}))[0],re=g.useState(()=>({current:null}))[0],le=MHn(h,v,b,S,_,T),X=Pt.updateListener.of(fe=>{if(fe.docChanged&&typeof r=="function"&&!fe.transactions.some(pe=>pe.annotation(M9e))){ee.current?ee.current.reset():(ee.current=new RHn(()=>{if(re.current){var pe=re.current;re.current=null,pe()}ee.current=null},DHn),PHn().add(ee.current));var ce=fe.state.doc,we=ce.toString();r(we,fe)}s&&s(AHn(fe))}),te=IHn({theme:f,editable:A,readOnly:L,placeholder:N,indentWithTab:z,basicSetup:F}),se=[X,...le?[le]:[],$Hn,...te];return i&&typeof i=="function"&&se.push(Pt.updateListener.of(i)),se=se.concat(c),g.useLayoutEffect(()=>{if(Z&&!ne){var fe={doc:t,selection:n,extensions:se},ce=V?ms.fromJSON(V.json,fe,V.fields):ms.create(fe);if(J(ce),!q){var we=new Pt({state:ce,parent:Z,root:B});G(we),a&&a(we,ce)}}return()=>{q&&(J(void 0),G(void 0))}},[Z,ne]),g.useEffect(()=>{e.container&&U(e.container)},[e.container]),g.useEffect(()=>()=>{q&&(q.destroy(),G(void 0)),ee.current&&(ee.current.cancel(),ee.current=null)},[q]),g.useEffect(()=>{u&&q&&q.focus()},[u,q]),g.useEffect(()=>{q&&q.dispatch({effects:pr.reconfigure.of(se)})},[f,c,h,v,b,S,_,T,N,A,L,z,F,r,i]),g.useEffect(()=>{if(t!==void 0){var fe=q?q.state.doc.toString():"";if(q&&t!==fe){var ce=ee.current&&!ee.current.isDone,we=()=>{q&&t!==q.state.doc.toString()&&q.dispatch({changes:{from:0,to:q.state.doc.toString().length,insert:t||""},annotations:[M9e.of(!0)]})};ce?re.current=we:we()}}},[t,q]),{state:ne,setState:J,view:q,setView:G,container:Z,setContainer:U}}var zHn=["className","value","selection","extensions","onChange","onStatistics","onCreateEditor","onUpdate","autoFocus","theme","height","minHeight","maxHeight","width","minWidth","maxWidth","basicSetup","placeholder","indentWithTab","editable","readOnly","root","initialState"],nd=g.forwardRef((e,t)=>{var n=e.className,r=e.value,s=r===void 0?"":r,a=e.selection,i=e.extensions,l=i===void 0?[]:i,c=e.onChange,u=e.onStatistics,d=e.onCreateEditor,f=e.onUpdate,p=e.autoFocus,h=e.theme,m=h===void 0?"light":h,v=e.height,y=e.minHeight,b=e.maxHeight,x=e.width,S=e.minWidth,k=e.maxWidth,_=e.basicSetup,C=e.placeholder,T=e.indentWithTab,E=e.editable,N=e.readOnly,I=e.root,A=e.initialState,R=dkt(e,zHn),L=g.useRef(null),M=FHn({root:I,value:s,autoFocus:p,theme:m,height:v,minHeight:y,maxHeight:b,width:x,minWidth:S,maxWidth:k,basicSetup:_,placeholder:C,indentWithTab:T,editable:E,readOnly:N,selection:a,onChange:c,onStatistics:u,onCreateEditor:d,onUpdate:f,extensions:l,initialState:A}),z=M.state,H=M.view,F=M.container,B=M.setContainer;g.useImperativeHandle(t,()=>({editor:L.current,state:z,view:H}),[L,F,z,H]);var V=g.useCallback(Z=>{L.current=Z,B(Z)},[B]);if(typeof s!="string")throw new Error("value must be typeof string but got "+typeof s);var D=typeof m=="string"?"cm-theme-"+m:"cm-theme";return o.jsx("div",XO({ref:V,className:""+D+(n?" "+n:"")},R))});nd.displayName="CodeMirror";const BHn={js:"javascript",javascript:"javascript",mjs:"javascript",cjs:"javascript",node:"javascript",ts:"typescript",typescript:"typescript",mts:"typescript",cts:"typescript",tsx:"tsx",jsx:"jsx",json:"json",json5:"json",md:"markdown",markdown:"markdown",py:"python",python:"python",sh:"bash",bash:"bash",shell:"bash",zsh:"bash",yml:"yaml",yaml:"yaml",diff:"diff",patch:"diff",css:"css",scss:"css",html:"html",htm:"html",xml:"xml",svg:"xml",sql:"sql"};let vte=null;function UHn(){return vte||(vte=(async()=>{const[{createHighlighterCore:e},{createJavaScriptRegexEngine:t}]=await Promise.all([La(()=>import("./core-B0-Cyy2m.js"),__vite__mapDeps([0,1,2]),import.meta.url),La(()=>import("./engine-javascript-CSIo_1eZ.js"),__vite__mapDeps([3,1]),import.meta.url)]);return e({themes:[La(()=>import("./github-light-DAi9KRSo.js"),[],import.meta.url),La(()=>import("./github-dark-DHJKELXO.js"),[],import.meta.url)],langs:[La(()=>import("./javascript-ySlJ1b_l.js"),[],import.meta.url),La(()=>import("./typescript-Dj6nwHGl.js"),[],import.meta.url),La(()=>import("./tsx-B6W0miNI.js"),[],import.meta.url),La(()=>import("./jsx-BAng5TT0.js"),[],import.meta.url),La(()=>import("./json-BQoSv7ci.js"),[],import.meta.url),La(()=>import("./bash-atvbtKCR.js"),[],import.meta.url),La(()=>import("./markdown-UIAJJxZW.js"),[],import.meta.url),La(()=>import("./python-DhUJRlN_.js"),[],import.meta.url),La(()=>import("./yaml-CVw76BM1.js"),[],import.meta.url),La(()=>import("./diff-BgYniUM_.js"),[],import.meta.url),La(()=>import("./css-BPhBrDlE.js"),[],import.meta.url),La(()=>import("./html-C2L_23MC.js"),__vite__mapDeps([4,5,6]),import.meta.url),La(()=>import("./xml-DGRTSKzu.js"),[],import.meta.url),La(()=>import("./sql-COK4E0Yg.js"),[],import.meta.url)],engine:t()})})()),vte}async function qHn(e,t){const n=BHn[t?.toLowerCase()];if(!n)return null;const r=await UHn(),{tokens:s}=r.codeToTokens(e,{lang:n,defaultColor:!1,themes:{light:"github-light",dark:"github-dark"}});return s}function VHn(e){return new GO(Fke.define(e))}const sOt=[hg.of({name:"JavaScript",alias:["ecmascript","js","node"],extensions:["js","mjs","cjs"],load(){return La(()=>Promise.resolve().then(()=>xF),void 0,import.meta.url).then(e=>e.javascript())}}),hg.of({name:"JSON",alias:["json5"],extensions:["json","map"],load(){return La(()=>Promise.resolve().then(()=>b9n),void 0,import.meta.url).then(e=>e.json())}}),hg.of({name:"JSX",extensions:["jsx"],load(){return La(()=>Promise.resolve().then(()=>xF),void 0,import.meta.url).then(e=>e.javascript({jsx:!0}))}}),hg.of({name:"Markdown",extensions:["md","markdown","mkd"],load(){return La(()=>Promise.resolve().then(()=>pqn),void 0,import.meta.url).then(e=>e.markdown())}}),hg.of({name:"TSX",extensions:["tsx"],load(){return La(()=>Promise.resolve().then(()=>xF),void 0,import.meta.url).then(e=>e.javascript({jsx:!0,typescript:!0}))}}),hg.of({name:"TypeScript",alias:["ts"],extensions:["ts","mts","cts"],load(){return La(()=>Promise.resolve().then(()=>xF),void 0,import.meta.url).then(e=>e.javascript({typescript:!0}))}}),hg.of({name:"Shell",alias:["bash","sh","zsh"],extensions:["sh","ksh","bash"],filename:/^PKGBUILD$/,load(){return La(()=>import("./shell-CjFT_Tl9.js"),[],import.meta.url).then(e=>VHn(e.shell))}})];function HHn(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 WHn(e){const t=HHn(e);return Y1t({override:[ZHn(t)],defaultKeymap:!0,closeOnBlur:!0,icons:!1})}function ZHn(e){return t=>{const r=t.state.sliceDoc(Math.max(0,t.pos-50),t.pos).match(/\{\{([a-zA-Z0-9_.\[\]]*)?$/);if(!r)return null;const s=r[1]??"",a=t.pos-s.length,i=s?e.filter(c=>c.path.toLowerCase().startsWith(s.toLowerCase())):e;if(i.length===0)return null;const l=i.map(c=>({label:c.path,displayLabel:c.path,detail:c.type,info:c.description,apply:(u,d,f,p)=>{const v=u.state.sliceDoc(p,p+2)==="}}"?d.label:`${d.label}}}`;u.dispatch({changes:{from:f,to:p,insert:v},selection:{anchor:f+v.length}})}}));return{from:a,options:l,validFor:/^[a-zA-Z0-9_.\[\]]*$/}}}const GHn=/\{\{([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)*)\}\}/g,QHn=jn.mark({class:"cm-variable-highlight"}),D9e=new u1t({regexp:GHn,decoration:()=>QHn}),YHn=_o.fromClass(class{decorations;constructor(e){this.decorations=D9e.createDeco(e)}update(e){this.decorations=D9e.updateDeco(e,this.decorations)}},{decorations:e=>e.decorations}),KHn=YHn;function XHn(){const e=jI({settings:{fontFamily:"var(--font-mono)",fontSize:"0.8rem",lineHighlight:"transparent",gutterBackground:"transparent",gutterForeground:"var(--neutral2)",background:"transparent",foreground:"var(--neutral6)",caret:"var(--neutral6)"},styles:[{tag:[de.className,de.propertyName],color:"var(--neutral6)"},{tag:de.heading,color:"var(--accent3)",fontWeight:"bold"},{tag:[de.heading1,de.heading2,de.heading3,de.heading4,de.heading5,de.heading6],color:"var(--accent3)",fontWeight:"bold"},{tag:de.emphasis,fontStyle:"italic",color:"var(--neutral6)"},{tag:de.strong,fontWeight:"bold",color:"var(--neutral6)"},{tag:de.link,color:"var(--accent3)",textDecoration:"underline"},{tag:de.url,color:"var(--accent3)"},{tag:de.monospace,color:"var(--neutral6)"},{tag:de.strikethrough,textDecoration:"line-through"},{tag:de.quote,fontStyle:"italic",color:"var(--neutral2)"}]}),t=Pt.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 JHn(){const e=Pt.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=Yg.define([{tag:[de.comment,de.bracket],color:"var(--neutral2)"},{tag:[de.string,de.meta,de.regexp],color:"var(--accent1)"},{tag:[de.atom,de.bool,de.special(de.variableName)],color:"var(--accent6)"},{tag:[de.keyword,de.operator,de.tagName],color:"var(--accent2)"},{tag:[de.function(de.propertyName),de.propertyName],color:"var(--accent5)"},{tag:[de.definition(de.variableName),de.function(de.variableName),de.className,de.attributeName],color:"var(--accent3)"},{tag:[de.variableName,de.number],color:"var(--accent5)"},{tag:[de.name,de.quote],color:"var(--accent1)"},{tag:de.heading,color:"var(--accent3)",fontWeight:"bold"},{tag:[de.heading1,de.heading2,de.heading3,de.heading4,de.heading5,de.heading6],color:"var(--accent3)",fontWeight:"bold"},{tag:[de.emphasis],fontStyle:"italic",color:"var(--neutral6)"},{tag:[de.strong],fontWeight:"bold",color:"var(--neutral6)"},{tag:de.link,color:"var(--accent3)",textDecoration:"underline"},{tag:de.url,color:"var(--accent3)"},{tag:de.monospace,color:"var(--neutral6)"},{tag:de.strikethrough,textDecoration:"line-through"},{tag:[de.deleted],color:"var(--accent2)"},{tag:de.invalid,color:"var(--error)"},{tag:[de.standard(de.tagName)],color:"var(--accent1)"}]);return[e,aS(t)]}const r0=()=>{const e=nC().resolvedTheme==="dark";return g.useMemo(()=>e?XHn():JHn(),[e])},eWn=$i(Y("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"}}),tWn=sh.highest(Pt.editorAttributes.of({style:"outline: none"})),nWn=sh.highest(Pt.theme({"&":{outline:"none"},"&.cm-focused":{outline:"none"},".cm-scroller":{outline:"none"},".cm-content":{outline:"none"},".cm-content:focus":{outline:"none"}})),rWn=[tWn,nWn],Qr=g.forwardRef(({data:e,value:t,onChange:n,showCopyButton:r=!0,className:s,language:a="json",highlightVariables:i=!1,placeholder:l,schema:c,autoFocus:u,lineNumbers:d=!0,lineWrapping:f=!0,editable:p,variant:h,...m},v)=>{const y=r0(),b=e?JSON.stringify(e,null,2):t??"",x=g.useMemo(()=>{const S=[...rWn];return f&&S.push(Pt.lineWrapping),a==="json"?S.push(Lp):a==="markdown"&&S.push(fOe({base:KO,codeLanguages:sOt})),i&&a==="markdown"&&S.push(KHn),c&&a==="markdown"&&S.push(WHn(c)),p===!1&&S.push(ms.readOnly.of(!0)),S},[a,i,c,p,f]);return o.jsxs("div",{className:Y(eWn({variant:h}),s),...m,children:[r&&o.jsx(ka,{content:b,className:"absolute top-2 right-2 z-20"}),o.jsx(nd,{ref:v,value:b,theme:y,extensions:x,onChange:n,editable:p,"aria-label":"Code editor",placeholder:l,height:"100%",style:{height:"100%"},autoFocus:u,basicSetup:{lineNumbers:d}})]})}),sWn=e=>{try{return JSON.stringify(e??{},null,2)}catch{return"{}"}},aWn=({editorClassName:e="h-[240px] max-h-[40vh]",onSaved:t})=>{const n=r0(),{settings:r,setSettings:s}=BH(),a=r?.tracingOptions,i=g.useMemo(()=>sWn(a),[a]),[l,c]=g.useState(()=>i),u=g.useRef(!1);g.useEffect(()=>{u.current||c(i)},[i]);const d=p=>{u.current=!0,c(p)},f=()=>{if(!l){s({...r,tracingOptions:void 0}),t?.();return}try{const p=JSON.parse(l);typeof p=="object"&&p!==null&&s({...r,tracingOptions:p})}catch{return}t?.()};return o.jsxs("div",{className:"space-y-2 px-5 py-2",children:[o.jsx(ve,{as:"h3",variant:"ui-md",className:"text-neutral3",children:"Tracing Options"}),o.jsx(nd,{value:l,onChange:d,theme:n,extensions:[Lp],className:Y("overflow-y-scroll bg-surface3 rounded-lg overflow-hidden p-3",e)}),o.jsx("div",{className:"flex items-center justify-end",children:o.jsx(oe,{type:"button",onClick:f,children:"Save"})})]})},iWn=()=>{const[e,t]=g.useState(!1);return o.jsxs(o.Fragment,{children:[o.jsxs(yn,{children:[o.jsx(gn,{asChild:!0,children:o.jsx(oe,{type:"button",variant:"ghost",size:"icon-md","aria-label":"Run Options",onClick:()=>t(!0),children:o.jsx(We,{children:o.jsx(j0e,{})})})}),o.jsx(vn,{children:"Run Options"})]}),o.jsx(gr,{open:e,onOpenChange:t,children:o.jsxs(vr,{children:[o.jsxs(yr,{children:[o.jsx(fr,{children:"Run Options"}),o.jsx(_s,{children:"Configure tracing and debug options for this workflow run"})]}),o.jsx(Rr,{children:o.jsx(aWn,{onSaved:()=>t(!1)})})]})})]})};function oWn({status:e}){switch(e){case"running":return o.jsx(qt,{});case"failed":return o.jsx(or,{className:"text-accent2"});case"canceled":return o.jsx(Dc,{className:"text-neutral3"});case"pending":case"waiting":return o.jsx(s1,{className:"text-neutral3"});case"suspended":return o.jsx(_V,{className:"text-accent3"});case"success":return o.jsx(qr,{className:"text-accent1"});default:return o.jsx(s1,{className:"text-neutral3"})}}function aOt({status:e}){return o.jsxs(yn,{children:[o.jsx(gn,{asChild:!0,children:o.jsx(We,{"aria-label":e,className:"shrink-0",children:o.jsx(oWn,{status:e})})}),o.jsx(vn,{children:e})]})}var yte,L9e;function wOe(){if(L9e)return yte;L9e=1;var e="\0",t="\0",n="";class r{_isDirected=!0;_isMultigraph=!1;_isCompound=!1;_label;_defaultNodeLabelFn=()=>{};_defaultEdgeLabelFn=()=>{};_nodes={};_in={};_preds={};_out={};_sucs={};_edgeObjs={};_edgeLabels={};_nodeCount=0;_edgeCount=0;_parent;_children;constructor(d){d&&(this._isDirected=Object.hasOwn(d,"directed")?d.directed:!0,this._isMultigraph=Object.hasOwn(d,"multigraph")?d.multigraph:!1,this._isCompound=Object.hasOwn(d,"compound")?d.compound:!1),this._isCompound&&(this._parent={},this._children={},this._children[t]={})}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(d){return this._label=d,this}graph(){return this._label}setDefaultNodeLabel(d){return this._defaultNodeLabelFn=d,typeof d!="function"&&(this._defaultNodeLabelFn=()=>d),this}nodeCount(){return this._nodeCount}nodes(){return Object.keys(this._nodes)}sources(){var d=this;return this.nodes().filter(f=>Object.keys(d._in[f]).length===0)}sinks(){var d=this;return this.nodes().filter(f=>Object.keys(d._out[f]).length===0)}setNodes(d,f){var p=arguments,h=this;return d.forEach(function(m){p.length>1?h.setNode(m,f):h.setNode(m)}),this}setNode(d,f){return Object.hasOwn(this._nodes,d)?(arguments.length>1&&(this._nodes[d]=f),this):(this._nodes[d]=arguments.length>1?f:this._defaultNodeLabelFn(d),this._isCompound&&(this._parent[d]=t,this._children[d]={},this._children[t][d]=!0),this._in[d]={},this._preds[d]={},this._out[d]={},this._sucs[d]={},++this._nodeCount,this)}node(d){return this._nodes[d]}hasNode(d){return Object.hasOwn(this._nodes,d)}removeNode(d){var f=this;if(Object.hasOwn(this._nodes,d)){var p=h=>f.removeEdge(f._edgeObjs[h]);delete this._nodes[d],this._isCompound&&(this._removeFromParentsChildList(d),delete this._parent[d],this.children(d).forEach(function(h){f.setParent(h)}),delete this._children[d]),Object.keys(this._in[d]).forEach(p),delete this._in[d],delete this._preds[d],Object.keys(this._out[d]).forEach(p),delete this._out[d],delete this._sucs[d],--this._nodeCount}return this}setParent(d,f){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(f===void 0)f=t;else{f+="";for(var p=f;p!==void 0;p=this.parent(p))if(p===d)throw new Error("Setting "+f+" as parent of "+d+" would create a cycle");this.setNode(f)}return this.setNode(d),this._removeFromParentsChildList(d),this._parent[d]=f,this._children[f][d]=!0,this}_removeFromParentsChildList(d){delete this._children[this._parent[d]][d]}parent(d){if(this._isCompound){var f=this._parent[d];if(f!==t)return f}}children(d=t){if(this._isCompound){var f=this._children[d];if(f)return Object.keys(f)}else{if(d===t)return this.nodes();if(this.hasNode(d))return[]}}predecessors(d){var f=this._preds[d];if(f)return Object.keys(f)}successors(d){var f=this._sucs[d];if(f)return Object.keys(f)}neighbors(d){var f=this.predecessors(d);if(f){const h=new Set(f);for(var p of this.successors(d))h.add(p);return Array.from(h.values())}}isLeaf(d){var f;return this.isDirected()?f=this.successors(d):f=this.neighbors(d),f.length===0}filterNodes(d){var f=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});f.setGraph(this.graph());var p=this;Object.entries(this._nodes).forEach(function([v,y]){d(v)&&f.setNode(v,y)}),Object.values(this._edgeObjs).forEach(function(v){f.hasNode(v.v)&&f.hasNode(v.w)&&f.setEdge(v,p.edge(v))});var h={};function m(v){var y=p.parent(v);return y===void 0||f.hasNode(y)?(h[v]=y,y):y in h?h[y]:m(y)}return this._isCompound&&f.nodes().forEach(v=>f.setParent(v,m(v))),f}setDefaultEdgeLabel(d){return this._defaultEdgeLabelFn=d,typeof d!="function"&&(this._defaultEdgeLabelFn=()=>d),this}edgeCount(){return this._edgeCount}edges(){return Object.values(this._edgeObjs)}setPath(d,f){var p=this,h=arguments;return d.reduce(function(m,v){return h.length>1?p.setEdge(m,v,f):p.setEdge(m,v),v}),this}setEdge(){var d,f,p,h,m=!1,v=arguments[0];typeof v=="object"&&v!==null&&"v"in v?(d=v.v,f=v.w,p=v.name,arguments.length===2&&(h=arguments[1],m=!0)):(d=v,f=arguments[1],p=arguments[3],arguments.length>2&&(h=arguments[2],m=!0)),d=""+d,f=""+f,p!==void 0&&(p=""+p);var y=i(this._isDirected,d,f,p);if(Object.hasOwn(this._edgeLabels,y))return m&&(this._edgeLabels[y]=h),this;if(p!==void 0&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(d),this.setNode(f),this._edgeLabels[y]=m?h:this._defaultEdgeLabelFn(d,f,p);var b=l(this._isDirected,d,f,p);return d=b.v,f=b.w,Object.freeze(b),this._edgeObjs[y]=b,s(this._preds[f],d),s(this._sucs[d],f),this._in[f][y]=b,this._out[d][y]=b,this._edgeCount++,this}edge(d,f,p){var h=arguments.length===1?c(this._isDirected,arguments[0]):i(this._isDirected,d,f,p);return this._edgeLabels[h]}edgeAsObj(){const d=this.edge(...arguments);return typeof d!="object"?{label:d}:d}hasEdge(d,f,p){var h=arguments.length===1?c(this._isDirected,arguments[0]):i(this._isDirected,d,f,p);return Object.hasOwn(this._edgeLabels,h)}removeEdge(d,f,p){var h=arguments.length===1?c(this._isDirected,arguments[0]):i(this._isDirected,d,f,p),m=this._edgeObjs[h];return m&&(d=m.v,f=m.w,delete this._edgeLabels[h],delete this._edgeObjs[h],a(this._preds[f],d),a(this._sucs[d],f),delete this._in[f][h],delete this._out[d][h],this._edgeCount--),this}inEdges(d,f){var p=this._in[d];if(p){var h=Object.values(p);return f?h.filter(m=>m.v===f):h}}outEdges(d,f){var p=this._out[d];if(p){var h=Object.values(p);return f?h.filter(m=>m.w===f):h}}nodeEdges(d,f){var p=this.inEdges(d,f);if(p)return p.concat(this.outEdges(d,f))}}function s(u,d){u[d]?u[d]++:u[d]=1}function a(u,d){--u[d]||delete u[d]}function i(u,d,f,p){var h=""+d,m=""+f;if(!u&&h>m){var v=h;h=m,m=v}return h+n+m+n+(p===void 0?e:p)}function l(u,d,f,p){var h=""+d,m=""+f;if(!u&&h>m){var v=h;h=m,m=v}var y={v:h,w:m};return p&&(y.name=p),y}function c(u,d){return i(u,d.v,d.w,d.name)}return yte=r,yte}var bte,F9e;function lWn(){return F9e||(F9e=1,bte="2.2.4"),bte}var xte,z9e;function cWn(){return z9e||(z9e=1,xte={Graph:wOe(),version:lWn()}),xte}var wte,B9e;function uWn(){if(B9e)return wte;B9e=1;var e=wOe();wte={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 wte}var Ste,U9e;function dWn(){if(U9e)return Ste;U9e=1,Ste=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 Ste}var kte,q9e;function iOt(){if(q9e)return kte;q9e=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 kte=e,kte}var Ote,V9e;function oOt(){if(V9e)return Ote;V9e=1;var e=iOt();Ote=n;var t=()=>1;function n(s,a,i,l){return r(s,String(a),i||t,l||function(c){return s.outEdges(c)})}function r(s,a,i,l){var c={},u=new e,d,f,p=function(h){var m=h.v!==d?h.v:h.w,v=c[m],y=i(h),b=f.distance+y;if(y<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+h+" Weight: "+y);b<v.distance&&(v.distance=b,v.predecessor=d,u.decrease(m,b))};for(s.nodes().forEach(function(h){var m=h===a?0:Number.POSITIVE_INFINITY;c[h]={distance:m},u.add(h,m)});u.size()>0&&(d=u.removeMin(),f=c[d],f.distance!==Number.POSITIVE_INFINITY);)l(d).forEach(p);return c}return Ote}var _te,H9e;function fWn(){if(H9e)return _te;H9e=1;var e=oOt();_te=t;function t(n,r,s){return n.nodes().reduce(function(a,i){return a[i]=e(n,i,r,s),a},{})}return _te}var Cte,W9e;function lOt(){if(W9e)return Cte;W9e=1,Cte=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 Cte}var Ete,Z9e;function pWn(){if(Z9e)return Ete;Z9e=1;var e=lOt();Ete=t;function t(n){return e(n).filter(function(r){return r.length>1||r.length===1&&n.hasEdge(r[0],r[0])})}return Ete}var Tte,G9e;function hWn(){if(G9e)return Tte;G9e=1,Tte=t;var e=()=>1;function t(r,s,a){return n(r,s||e,a||function(i){return r.outEdges(i)})}function n(r,s,a){var i={},l=r.nodes();return l.forEach(function(c){i[c]={},i[c][c]={distance:0},l.forEach(function(u){c!==u&&(i[c][u]={distance:Number.POSITIVE_INFINITY})}),a(c).forEach(function(u){var d=u.v===c?u.w:u.v,f=s(u);i[c][d]={distance:f,predecessor:c}})}),l.forEach(function(c){var u=i[c];l.forEach(function(d){var f=i[d];l.forEach(function(p){var h=f[c],m=u[p],v=f[p],y=h.distance+m.distance;y<v.distance&&(v.distance=y,v.predecessor=m.predecessor)})})}),i}return Tte}var jte,Q9e;function cOt(){if(Q9e)return jte;Q9e=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 jte=e,e.CycleException=t,jte}var Nte,Y9e;function mWn(){if(Y9e)return Nte;Y9e=1;var e=cOt();Nte=t;function t(n){try{e(n)}catch(r){if(r instanceof e.CycleException)return!1;throw r}return!0}return Nte}var Ite,K9e;function uOt(){if(K9e)return Ite;K9e=1,Ite=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 Ite}var Ate,X9e;function gWn(){if(X9e)return Ate;X9e=1;var e=uOt();Ate=t;function t(n,r){return e(n,r,"post")}return Ate}var Rte,J9e;function vWn(){if(J9e)return Rte;J9e=1;var e=uOt();Rte=t;function t(n,r){return e(n,r,"pre")}return Rte}var Pte,e7e;function yWn(){if(e7e)return Pte;e7e=1;var e=wOe(),t=iOt();Pte=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 Pte}var $te,t7e;function bWn(){return t7e||(t7e=1,$te={components:dWn(),dijkstra:oOt(),dijkstraAll:fWn(),findCycles:pWn(),floydWarshall:hWn(),isAcyclic:mWn(),postorder:gWn(),preorder:vWn(),prim:yWn(),tarjan:lOt(),topsort:cOt()}),$te}var Mte,n7e;function Hg(){if(n7e)return Mte;n7e=1;var e=cWn();return Mte={Graph:e.Graph,json:uWn(),alg:bWn(),version:e.version},Mte}var Dte,r7e;function xWn(){if(r7e)return Dte;r7e=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 Dte=e,Dte}var Lte,s7e;function wWn(){if(s7e)return Lte;s7e=1;let e=Hg().Graph,t=xWn();Lte=r;let n=()=>1;function r(u,d){if(u.nodeCount()<=1)return[];let f=i(u,d||n);return s(f.graph,f.buckets,f.zeroIdx).flatMap(h=>u.outEdges(h.v,h.w))}function s(u,d,f){let p=[],h=d[d.length-1],m=d[0],v;for(;u.nodeCount();){for(;v=m.dequeue();)a(u,d,f,v);for(;v=h.dequeue();)a(u,d,f,v);if(u.nodeCount()){for(let y=d.length-2;y>0;--y)if(v=d[y].dequeue(),v){p=p.concat(a(u,d,f,v,!0));break}}}return p}function a(u,d,f,p,h){let m=h?[]:void 0;return u.inEdges(p.v).forEach(v=>{let y=u.edge(v),b=u.node(v.v);h&&m.push({v:v.v,w:v.w}),b.out-=y,l(d,f,b)}),u.outEdges(p.v).forEach(v=>{let y=u.edge(v),b=v.w,x=u.node(b);x.in-=y,l(d,f,x)}),u.removeNode(p.v),m}function i(u,d){let f=new e,p=0,h=0;u.nodes().forEach(y=>{f.setNode(y,{v:y,in:0,out:0})}),u.edges().forEach(y=>{let b=f.edge(y.v,y.w)||0,x=d(y),S=b+x;f.setEdge(y.v,y.w,S),h=Math.max(h,f.node(y.v).out+=x),p=Math.max(p,f.node(y.w).in+=x)});let m=c(h+p+3).map(()=>new t),v=p+1;return f.nodes().forEach(y=>{l(m,v,f.node(y))}),{graph:f,buckets:m,zeroIdx:v}}function l(u,d,f){f.out?f.in?u[f.out-f.in+d].enqueue(f):u[u.length-1].enqueue(f):u[0].enqueue(f)}function c(u){const d=[];for(let f=0;f<u;f++)d.push(f);return d}return Lte}var Fte,a7e;function Pl(){if(a7e)return Fte;a7e=1;let e=Hg().Graph;Fte={addBorderNode:d,addDummyNode:t,applyWithChunking:h,asNonCompoundGraph:r,buildLayerMatrix:l,intersectRect:i,mapValues:C,maxRank:m,normalizeRanks:c,notime:b,partition:v,pick:_,predecessorWeights:a,range:k,removeEmptyRanks:u,simplify:n,successorWeights:s,time:y,uniqueId:S,zipObject:T};function t(E,N,I,A){for(var R=A;E.hasNode(R);)R=S(A);return I.dummy=N,E.setNode(R,I),R}function n(E){let N=new e().setGraph(E.graph());return E.nodes().forEach(I=>N.setNode(I,E.node(I))),E.edges().forEach(I=>{let A=N.edge(I.v,I.w)||{weight:0,minlen:1},R=E.edge(I);N.setEdge(I.v,I.w,{weight:A.weight+R.weight,minlen:Math.max(A.minlen,R.minlen)})}),N}function r(E){let N=new e({multigraph:E.isMultigraph()}).setGraph(E.graph());return E.nodes().forEach(I=>{E.children(I).length||N.setNode(I,E.node(I))}),E.edges().forEach(I=>{N.setEdge(I,E.edge(I))}),N}function s(E){let N=E.nodes().map(I=>{let A={};return E.outEdges(I).forEach(R=>{A[R.w]=(A[R.w]||0)+E.edge(R).weight}),A});return T(E.nodes(),N)}function a(E){let N=E.nodes().map(I=>{let A={};return E.inEdges(I).forEach(R=>{A[R.v]=(A[R.v]||0)+E.edge(R).weight}),A});return T(E.nodes(),N)}function i(E,N){let I=E.x,A=E.y,R=N.x-I,L=N.y-A,M=E.width/2,z=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)*M>Math.abs(R)*z?(L<0&&(z=-z),H=z*R/L,F=z):(R<0&&(M=-M),H=M,F=M*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(M=>E.node(M).rank),I=h(Math.min,N),A=[];E.nodes().forEach(M=>{let z=E.node(M).rank-I;A[z]||(A[z]=[]),A[z].push(M)});let R=0,L=E.graph().nodeRankFactor;Array.from(A).forEach((M,z)=>{M===void 0&&z%L!==0?--R:M!==void 0&&R&&M.forEach(H=>E.node(H).rank+=R)})}function d(E,N,I,A){let R={width:0,height:0};return arguments.length>=4&&(R.rank=I,R.order=A),t(E,"border",R,N)}function f(E,N=p){const I=[];for(let A=0;A<E.length;A+=N){const R=E.slice(A,A+N);I.push(R)}return I}const p=65535;function h(E,N){if(N.length>p){const I=f(N);return E.apply(null,I.map(A=>E.apply(null,A)))}else return E.apply(null,N)}function m(E){const I=E.nodes().map(A=>{let R=E.node(A).rank;return R===void 0?Number.MIN_VALUE:R});return h(Math.max,I)}function v(E,N){let I={lhs:[],rhs:[]};return E.forEach(A=>{N(A)?I.lhs.push(A):I.rhs.push(A)}),I}function y(E,N){let I=Date.now();try{return N()}finally{console.log(E+" time: "+(Date.now()-I)+"ms")}}function b(E,N){return N()}let x=0;function S(E){var N=++x;return E+(""+N)}function k(E,N,I=1){N==null&&(N=E,E=0);let A=L=>L<N;I<0&&(A=L=>N<L);const R=[];for(let L=E;A(L);L+=I)R.push(L);return R}function _(E,N){const I={};for(const A of N)E[A]!==void 0&&(I[A]=E[A]);return I}function C(E,N){let I=N;return typeof N=="string"&&(I=A=>A[N]),Object.entries(E).reduce((A,[R,L])=>(A[R]=I(L,R),A),{})}function T(E,N){return E.reduce((I,A,R)=>(I[A]=N[R],I),{})}return Fte}var zte,i7e;function SWn(){if(i7e)return zte;i7e=1;let e=wWn(),t=Pl().uniqueId;zte={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 zte}var Bte,o7e;function kWn(){if(o7e)return Bte;o7e=1;let e=Pl();Bte={run:t,undo:r};function t(s){s.graph().dummyChains=[],s.edges().forEach(a=>n(s,a))}function n(s,a){let i=a.v,l=s.node(i).rank,c=a.w,u=s.node(c).rank,d=a.name,f=s.edge(a),p=f.labelRank;if(u===l+1)return;s.removeEdge(a);let h,m,v;for(v=0,++l;l<u;++v,++l)f.points=[],m={width:0,height:0,edgeLabel:f,edgeObj:a,rank:l},h=e.addDummyNode(s,"edge",m,"_d"),l===p&&(m.width=f.width,m.height=f.height,m.dummy="edge-label",m.labelpos=f.labelpos),s.setEdge(i,h,{weight:f.weight},d),v===0&&s.graph().dummyChains.push(h),i=h;s.setEdge(i,c,{weight:f.weight},d)}function r(s){s.graph().dummyChains.forEach(a=>{let i=s.node(a),l=i.edgeLabel,c;for(s.setEdge(i.edgeObj,l);i.dummy;)c=s.successors(a)[0],s.removeNode(a),l.points.push({x:i.x,y:i.y}),i.dummy==="edge-label"&&(l.x=i.x,l.y=i.y,l.width=i.width,l.height=i.height),a=c,i=s.node(a)})}return Bte}var Ute,l7e;function tU(){if(l7e)return Ute;l7e=1;const{applyWithChunking:e}=Pl();Ute={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 Ute}var qte,c7e;function dOt(){if(c7e)return qte;c7e=1;var e=Hg().Graph,t=tU().slack;qte=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 qte}var Vte,u7e;function OWn(){if(u7e)return Vte;u7e=1;var e=dOt(),t=tU().slack,n=tU().longestPath,r=Hg().alg.preorder,s=Hg().alg.postorder,a=Pl().simplify;Vte=i,i.initLowLimValues=d,i.initCutValues=l,i.calcCutValue=u,i.leaveEdge=p,i.enterEdge=h,i.exchangeEdges=m;function i(x){x=a(x),n(x);var S=e(x);d(S),l(S,x);for(var k,_;k=p(S);)_=h(S,x,k),m(S,x,k,_)}function l(x,S){var k=s(x,x.nodes());k=k.slice(0,k.length-1),k.forEach(_=>c(x,S,_))}function c(x,S,k){var _=x.node(k),C=_.parent;x.edge(k,C).cutvalue=u(x,S,k)}function u(x,S,k){var _=x.node(k),C=_.parent,T=!0,E=S.edge(k,C),N=0;return E||(T=!1,E=S.edge(C,k)),N=E.weight,S.nodeEdges(k).forEach(I=>{var A=I.v===k,R=A?I.w:I.v;if(R!==C){var L=A===T,M=S.edge(I).weight;if(N+=L?M:-M,y(x,k,R)){var z=x.edge(k,R).cutvalue;N+=L?-z:z}}}),N}function d(x,S){arguments.length<2&&(S=x.nodes()[0]),f(x,{},1,S)}function f(x,S,k,_,C){var T=k,E=x.node(_);return S[_]=!0,x.neighbors(_).forEach(N=>{Object.hasOwn(S,N)||(k=f(x,S,k,N,_))}),E.low=T,E.lim=k++,C?E.parent=C:delete E.parent,k}function p(x){return x.edges().find(S=>x.edge(S).cutvalue<0)}function h(x,S,k){var _=k.v,C=k.w;S.hasEdge(_,C)||(_=k.w,C=k.v);var T=x.node(_),E=x.node(C),N=T,I=!1;T.lim>E.lim&&(N=E,I=!0);var A=S.edges().filter(R=>I===b(x,x.node(R.v),N)&&I!==b(x,x.node(R.w),N));return A.reduce((R,L)=>t(S,L)<t(S,R)?L:R)}function m(x,S,k,_){var C=k.v,T=k.w;x.removeEdge(C,T),x.setEdge(_.v,_.w,{}),d(x),l(x,S),v(x,S)}function v(x,S){var k=x.nodes().find(C=>!S.node(C).parent),_=r(x,k);_=_.slice(1),_.forEach(C=>{var T=x.node(C).parent,E=S.edge(C,T),N=!1;E||(E=S.edge(T,C),N=!0),S.node(C).rank=S.node(T).rank+(N?E.minlen:-E.minlen)})}function y(x,S,k){return x.hasEdge(S,k)}function b(x,S,k){return k.low<=S.lim&&S.lim<=k.lim}return Vte}var Hte,d7e;function _Wn(){if(d7e)return Hte;d7e=1;var e=tU(),t=e.longestPath,n=dOt(),r=OWn();Hte=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 Hte}var Wte,f7e;function CWn(){if(f7e)return Wte;f7e=1,Wte=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 Wte}var Zte,p7e;function EWn(){if(p7e)return Zte;p7e=1;let e=Pl();Zte={run:t,cleanup:a};function t(i){let l=e.addDummyNode(i,"root",{},"_root"),c=r(i),u=Object.values(c),d=e.applyWithChunking(Math.max,u)-1,f=2*d+1;i.graph().nestingRoot=l,i.edges().forEach(h=>i.edge(h).minlen*=f);let p=s(i)+1;i.children().forEach(h=>n(i,l,f,p,d,c,h)),i.graph().nodeRankFactor=f}function n(i,l,c,u,d,f,p){let h=i.children(p);if(!h.length){p!==l&&i.setEdge(l,p,{weight:0,minlen:c});return}let m=e.addBorderNode(i,"_bt"),v=e.addBorderNode(i,"_bb"),y=i.node(p);i.setParent(m,p),y.borderTop=m,i.setParent(v,p),y.borderBottom=v,h.forEach(b=>{n(i,l,c,u,d,f,b);let x=i.node(b),S=x.borderTop?x.borderTop:b,k=x.borderBottom?x.borderBottom:b,_=x.borderTop?u:2*u,C=S!==k?1:d-f[p]+1;i.setEdge(m,S,{weight:_,minlen:C,nestingEdge:!0}),i.setEdge(k,v,{weight:_,minlen:C,nestingEdge:!0})}),i.parent(p)||i.setEdge(l,m,{weight:0,minlen:d+f[p]})}function r(i){var l={};function c(u,d){var f=i.children(u);f&&f.length&&f.forEach(p=>c(p,d+1)),l[u]=d}return i.children().forEach(u=>c(u,1)),l}function s(i){return i.edges().reduce((l,c)=>l+i.edge(c).weight,0)}function a(i){var l=i.graph();i.removeNode(l.nestingRoot),delete l.nestingRoot,i.edges().forEach(c=>{var u=i.edge(c);u.nestingEdge&&i.removeEdge(c)})}return Zte}var Gte,h7e;function TWn(){if(h7e)return Gte;h7e=1;let e=Pl();Gte=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 Gte}var Qte,m7e;function jWn(){if(m7e)return Qte;m7e=1,Qte={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 Qte}var Yte,g7e;function NWn(){if(g7e)return Yte;g7e=1;let e=Pl();Yte=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 Yte}var Kte,v7e;function IWn(){if(v7e)return Kte;v7e=1;let e=Pl().zipObject;Kte=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 Kte}var Xte,y7e;function AWn(){if(y7e)return Xte;y7e=1,Xte=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 Xte}var Jte,b7e;function RWn(){if(b7e)return Jte;b7e=1;let e=Pl();Jte=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 Jte}var ene,x7e;function PWn(){if(x7e)return ene;x7e=1;let e=Pl();ene=t;function t(s,a){let i=e.partition(s,m=>Object.hasOwn(m,"barycenter")),l=i.lhs,c=i.rhs.sort((m,v)=>v.i-m.i),u=[],d=0,f=0,p=0;l.sort(r(!!a)),p=n(u,c,p),l.forEach(m=>{p+=m.vs.length,u.push(m.vs),d+=m.barycenter*m.weight,f+=m.weight,p=n(u,c,p)});let h={vs:u.flat(!0)};return f&&(h.barycenter=d/f,h.weight=f),h}function n(s,a,i){let l;for(;a.length&&(l=a[a.length-1]).i<=i;)a.pop(),s.push(l.vs),i++;return i}function r(s){return(a,i)=>a.barycenter<i.barycenter?-1:a.barycenter>i.barycenter?1:s?i.i-a.i:a.i-i.i}return ene}var tne,w7e;function $Wn(){if(w7e)return tne;w7e=1;let e=AWn(),t=RWn(),n=PWn();tne=r;function r(i,l,c,u){let d=i.children(l),f=i.node(l),p=f?f.borderLeft:void 0,h=f?f.borderRight:void 0,m={};p&&(d=d.filter(x=>x!==p&&x!==h));let v=e(i,d);v.forEach(x=>{if(i.children(x.v).length){let S=r(i,x.v,c,u);m[x.v]=S,Object.hasOwn(S,"barycenter")&&a(x,S)}});let y=t(v,c);s(y,m);let b=n(y,u);if(p&&(b.vs=[p,b.vs,h].flat(!0),i.predecessors(p).length)){let x=i.node(i.predecessors(p)[0]),S=i.node(i.predecessors(h)[0]);Object.hasOwn(b,"barycenter")||(b.barycenter=0,b.weight=0),b.barycenter=(b.barycenter*b.weight+x.order+S.order)/(b.weight+2),b.weight+=2}return b}function s(i,l){i.forEach(c=>{c.vs=c.vs.flatMap(u=>l[u]?l[u].vs:u)})}function a(i,l){i.barycenter!==void 0?(i.barycenter=(i.barycenter*i.weight+l.barycenter*l.weight)/(i.weight+l.weight),i.weight+=l.weight):(i.barycenter=l.barycenter,i.weight=l.weight)}return tne}var nne,S7e;function MWn(){if(S7e)return nne;S7e=1;let e=Hg().Graph,t=Pl();nne=n;function n(s,a,i,l){l||(l=s.nodes());let c=r(s),u=new e({compound:!0}).setGraph({root:c}).setDefaultNodeLabel(d=>s.node(d));return l.forEach(d=>{let f=s.node(d),p=s.parent(d);(f.rank===a||f.minRank<=a&&a<=f.maxRank)&&(u.setNode(d),u.setParent(d,p||c),s[i](d).forEach(h=>{let m=h.v===d?h.w:h.v,v=u.edge(m,d),y=v!==void 0?v.weight:0;u.setEdge(m,d,{weight:s.edge(h).weight+y})}),Object.hasOwn(f,"minRank")&&u.setNode(d,{borderLeft:f.borderLeft[a],borderRight:f.borderRight[a]}))}),u}function r(s){for(var a;s.hasNode(a=t.uniqueId("_root")););return a}return nne}var rne,k7e;function DWn(){if(k7e)return rne;k7e=1,rne=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 rne}var sne,O7e;function LWn(){if(O7e)return sne;O7e=1;let e=NWn(),t=IWn(),n=$Wn(),r=MWn(),s=DWn(),a=Hg().Graph,i=Pl();sne=l;function l(f,p){if(p&&typeof p.customOrder=="function"){p.customOrder(f,l);return}let h=i.maxRank(f),m=c(f,i.range(1,h+1),"inEdges"),v=c(f,i.range(h-1,-1,-1),"outEdges"),y=e(f);if(d(f,y),p&&p.disableOptimalOrderHeuristic)return;let b=Number.POSITIVE_INFINITY,x;for(let S=0,k=0;k<4;++S,++k){u(S%2?m:v,S%4>=2),y=i.buildLayerMatrix(f);let _=t(f,y);_<b&&(k=0,x=Object.assign({},y),b=_)}d(f,x)}function c(f,p,h){const m=new Map,v=(y,b)=>{m.has(y)||m.set(y,[]),m.get(y).push(b)};for(const y of f.nodes()){const b=f.node(y);if(typeof b.rank=="number"&&v(b.rank,y),typeof b.minRank=="number"&&typeof b.maxRank=="number")for(let x=b.minRank;x<=b.maxRank;x++)x!==b.rank&&v(x,y)}return p.map(function(y){return r(f,y,h,m.get(y)||[])})}function u(f,p){let h=new a;f.forEach(function(m){let v=m.graph().root,y=n(m,v,h,p);y.vs.forEach((b,x)=>m.node(b).order=x),s(m,h,y.vs)})}function d(f,p){Object.values(p).forEach(h=>h.forEach((m,v)=>f.node(m).order=v))}return sne}var ane,_7e;function FWn(){if(_7e)return ane;_7e=1;let e=Hg().Graph,t=Pl();ane={positionX:h,findType1Conflicts:n,findType2Conflicts:r,addConflict:a,hasConflict:i,verticalAlignment:l,horizontalCompaction:c,alignCoordinates:f,findSmallestWidthAlignment:d,balance:p};function n(y,b){let x={};function S(k,_){let C=0,T=0,E=k.length,N=_[_.length-1];return _.forEach((I,A)=>{let R=s(y,I),L=R?y.node(R).order:E;(R||I===N)&&(_.slice(T,A+1).forEach(M=>{y.predecessors(M).forEach(z=>{let H=y.node(z),F=H.order;(F<C||L<F)&&!(H.dummy&&y.node(M).dummy)&&a(x,z,M)})}),T=A+1,C=L)}),_}return b.length&&b.reduce(S),x}function r(y,b){let x={};function S(_,C,T,E,N){let I;t.range(C,T).forEach(A=>{I=_[A],y.node(I).dummy&&y.predecessors(I).forEach(R=>{let L=y.node(R);L.dummy&&(L.order<E||L.order>N)&&a(x,R,I)})})}function k(_,C){let T=-1,E,N=0;return C.forEach((I,A)=>{if(y.node(I).dummy==="border"){let R=y.predecessors(I);R.length&&(E=y.node(R[0]).order,S(C,N,A,T,E),N=A,T=E)}S(C,N,C.length,E,_.length)}),C}return b.length&&b.reduce(k),x}function s(y,b){if(y.node(b).dummy)return y.predecessors(b).find(x=>y.node(x).dummy)}function a(y,b,x){if(b>x){let k=b;b=x,x=k}let S=y[b];S||(y[b]=S={}),S[x]=!0}function i(y,b,x){if(b>x){let S=b;b=x,x=S}return!!y[b]&&Object.hasOwn(y[b],x)}function l(y,b,x,S){let k={},_={},C={};return b.forEach(T=>{T.forEach((E,N)=>{k[E]=E,_[E]=E,C[E]=N})}),b.forEach(T=>{let E=-1;T.forEach(N=>{let I=S(N);if(I.length){I=I.sort((R,L)=>C[R]-C[L]);let A=(I.length-1)/2;for(let R=Math.floor(A),L=Math.ceil(A);R<=L;++R){let M=I[R];_[N]===N&&E<C[M]&&!i(x,N,M)&&(_[M]=N,_[N]=k[N]=k[M],E=C[M])}}})}),{root:k,align:_}}function c(y,b,x,S,k){let _={},C=u(y,b,x,k),T=k?"borderLeft":"borderRight";function E(A,R){let L=C.nodes(),M=L.pop(),z={};for(;M;)z[M]?A(M):(z[M]=!0,L.push(M),L=L.concat(R(M))),M=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((M,z)=>Math.min(M,_[z.w]-C.edge(z)),Number.POSITIVE_INFINITY),L=y.node(A);R!==Number.POSITIVE_INFINITY&&L.borderType!==T&&(_[A]=Math.max(_[A],R))}return E(N,C.predecessors.bind(C)),E(I,C.successors.bind(C)),Object.keys(S).forEach(A=>_[A]=_[x[A]]),_}function u(y,b,x,S){let k=new e,_=y.graph(),C=m(_.nodesep,_.edgesep,S);return b.forEach(T=>{let E;T.forEach(N=>{let I=x[N];if(k.setNode(I),E){var A=x[E],R=k.edge(A,I);k.setEdge(A,I,Math.max(C(y,N,E),R||0))}E=N})}),k}function d(y,b){return Object.values(b).reduce((x,S)=>{let k=Number.NEGATIVE_INFINITY,_=Number.POSITIVE_INFINITY;Object.entries(S).forEach(([T,E])=>{let N=v(y,T)/2;k=Math.max(E+N,k),_=Math.min(E-N,_)});const C=k-_;return C<x[0]&&(x=[C,S]),x},[Number.POSITIVE_INFINITY,null])[1]}function f(y,b){let x=Object.values(b),S=t.applyWithChunking(Math.min,x),k=t.applyWithChunking(Math.max,x);["u","d"].forEach(_=>{["l","r"].forEach(C=>{let T=_+C,E=y[T];if(E===b)return;let N=Object.values(E),I=S-t.applyWithChunking(Math.min,N);C!=="l"&&(I=k-t.applyWithChunking(Math.max,N)),I&&(y[T]=t.mapValues(E,A=>A+I))})})}function p(y,b){return t.mapValues(y.ul,(x,S)=>{if(b)return y[b.toLowerCase()][S];{let k=Object.values(y).map(_=>_[S]).sort((_,C)=>_-C);return(k[1]+k[2])/2}})}function h(y){let b=t.buildLayerMatrix(y),x=Object.assign(n(y,b),r(y,b)),S={},k;["u","d"].forEach(C=>{k=C==="u"?b:Object.values(b).reverse(),["l","r"].forEach(T=>{T==="r"&&(k=k.map(A=>Object.values(A).reverse()));let E=(C==="u"?y.predecessors:y.successors).bind(y),N=l(y,k,x,E),I=c(y,k,N.root,N.align,T==="r");T==="r"&&(I=t.mapValues(I,A=>-A)),S[C+T]=I})});let _=d(y,S);return f(S,_),p(S,y.graph().align)}function m(y,b,x){return(S,k,_)=>{let C=S.node(k),T=S.node(_),E=0,N;if(E+=C.width/2,Object.hasOwn(C,"labelpos"))switch(C.labelpos.toLowerCase()){case"l":N=-C.width/2;break;case"r":N=C.width/2;break}if(N&&(E+=x?N:-N),N=0,E+=(C.dummy?b:y)/2,E+=(T.dummy?b:y)/2,E+=T.width/2,Object.hasOwn(T,"labelpos"))switch(T.labelpos.toLowerCase()){case"l":N=T.width/2;break;case"r":N=-T.width/2;break}return N&&(E+=x?N:-N),N=0,E}}function v(y,b){return y.node(b).width}return ane}var ine,C7e;function zWn(){if(C7e)return ine;C7e=1;let e=Pl(),t=FWn().positionX;ine=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 ine}var one,E7e;function BWn(){if(E7e)return one;E7e=1;let e=SWn(),t=kWn(),n=_Wn(),r=Pl().normalizeRanks,s=CWn(),a=Pl().removeEmptyRanks,i=EWn(),l=TWn(),c=jWn(),u=LWn(),d=zWn(),f=Pl(),p=Hg().Graph;one=h;function h(P,q){let G=q&&q.debugTiming?f.time:f.notime;G("layout",()=>{let K=G(" buildLayoutGraph",()=>E(P));G(" runLayout",()=>m(K,G,q)),G(" updateInputGraph",()=>v(P,K))})}function m(P,q,G){q(" makeSpaceForEdgeLabels",()=>N(P)),q(" removeSelfEdges",()=>B(P)),q(" acyclic",()=>e.run(P)),q(" nestingGraph.run",()=>i.run(P)),q(" rank",()=>n(f.asNonCompoundGraph(P))),q(" injectEdgeLabelProxies",()=>I(P)),q(" removeEmptyRanks",()=>a(P)),q(" nestingGraph.cleanup",()=>i.cleanup(P)),q(" normalizeRanks",()=>r(P)),q(" assignRankMinMax",()=>A(P)),q(" removeEdgeLabelProxies",()=>R(P)),q(" normalize.run",()=>t.run(P)),q(" parentDummyChains",()=>s(P)),q(" addBorderSegments",()=>l(P)),q(" order",()=>u(P,G)),q(" insertSelfEdges",()=>V(P)),q(" adjustCoordinateSystem",()=>c.adjust(P)),q(" position",()=>d(P)),q(" positionSelfEdges",()=>D(P)),q(" removeBorderNodes",()=>F(P)),q(" normalize.undo",()=>t.undo(P)),q(" fixupEdgeLabelCoords",()=>z(P)),q(" undoCoordinateSystem",()=>c.undo(P)),q(" translateGraph",()=>L(P)),q(" assignNodeIntersects",()=>M(P)),q(" reversePoints",()=>H(P)),q(" acyclic.undo",()=>e.undo(P))}function v(P,q){P.nodes().forEach(G=>{let K=P.node(G),ne=q.node(G);K&&(K.x=ne.x,K.y=ne.y,K.rank=ne.rank,q.children(G).length&&(K.width=ne.width,K.height=ne.height))}),P.edges().forEach(G=>{let K=P.edge(G),ne=q.edge(G);K.points=ne.points,Object.hasOwn(ne,"x")&&(K.x=ne.x,K.y=ne.y)}),P.graph().width=q.graph().width,P.graph().height=q.graph().height}let y=["nodesep","edgesep","ranksep","marginx","marginy"],b={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},x=["acyclicer","ranker","rankdir","align"],S=["width","height","rank"],k={width:0,height:0},_=["minlen","weight","width","height","labeloffset"],C={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},T=["labelpos"];function E(P){let q=new p({multigraph:!0,compound:!0}),G=U(P.graph());return q.setGraph(Object.assign({},b,Z(G,y),f.pick(G,x))),P.nodes().forEach(K=>{let ne=U(P.node(K));const J=Z(ne,S);Object.keys(k).forEach(ee=>{J[ee]===void 0&&(J[ee]=k[ee])}),q.setNode(K,J),q.setParent(K,P.parent(K))}),P.edges().forEach(K=>{let ne=U(P.edge(K));q.setEdge(K,Object.assign({},C,Z(ne,_),f.pick(ne,T)))}),q}function N(P){let q=P.graph();q.ranksep/=2,P.edges().forEach(G=>{let K=P.edge(G);K.minlen*=2,K.labelpos.toLowerCase()!=="c"&&(q.rankdir==="TB"||q.rankdir==="BT"?K.width+=K.labeloffset:K.height+=K.labeloffset)})}function I(P){P.edges().forEach(q=>{let G=P.edge(q);if(G.width&&G.height){let K=P.node(q.v),J={rank:(P.node(q.w).rank-K.rank)/2+K.rank,e:q};f.addDummyNode(P,"edge-proxy",J,"_ep")}})}function A(P){let q=0;P.nodes().forEach(G=>{let K=P.node(G);K.borderTop&&(K.minRank=P.node(K.borderTop).rank,K.maxRank=P.node(K.borderBottom).rank,q=Math.max(q,K.maxRank))}),P.graph().maxRank=q}function R(P){P.nodes().forEach(q=>{let G=P.node(q);G.dummy==="edge-proxy"&&(P.edge(G.e).labelRank=G.rank,P.removeNode(q))})}function L(P){let q=Number.POSITIVE_INFINITY,G=0,K=Number.POSITIVE_INFINITY,ne=0,J=P.graph(),ee=J.marginx||0,re=J.marginy||0;function le(X){let te=X.x,se=X.y,fe=X.width,ce=X.height;q=Math.min(q,te-fe/2),G=Math.max(G,te+fe/2),K=Math.min(K,se-ce/2),ne=Math.max(ne,se+ce/2)}P.nodes().forEach(X=>le(P.node(X))),P.edges().forEach(X=>{let te=P.edge(X);Object.hasOwn(te,"x")&&le(te)}),q-=ee,K-=re,P.nodes().forEach(X=>{let te=P.node(X);te.x-=q,te.y-=K}),P.edges().forEach(X=>{let te=P.edge(X);te.points.forEach(se=>{se.x-=q,se.y-=K}),Object.hasOwn(te,"x")&&(te.x-=q),Object.hasOwn(te,"y")&&(te.y-=K)}),J.width=G-q+ee,J.height=ne-K+re}function M(P){P.edges().forEach(q=>{let G=P.edge(q),K=P.node(q.v),ne=P.node(q.w),J,ee;G.points?(J=G.points[0],ee=G.points[G.points.length-1]):(G.points=[],J=ne,ee=K),G.points.unshift(f.intersectRect(K,J)),G.points.push(f.intersectRect(ne,ee))})}function z(P){P.edges().forEach(q=>{let G=P.edge(q);if(Object.hasOwn(G,"x"))switch((G.labelpos==="l"||G.labelpos==="r")&&(G.width-=G.labeloffset),G.labelpos){case"l":G.x-=G.width/2+G.labeloffset;break;case"r":G.x+=G.width/2+G.labeloffset;break}})}function H(P){P.edges().forEach(q=>{let G=P.edge(q);G.reversed&&G.points.reverse()})}function F(P){P.nodes().forEach(q=>{if(P.children(q).length){let G=P.node(q),K=P.node(G.borderTop),ne=P.node(G.borderBottom),J=P.node(G.borderLeft[G.borderLeft.length-1]),ee=P.node(G.borderRight[G.borderRight.length-1]);G.width=Math.abs(ee.x-J.x),G.height=Math.abs(ne.y-K.y),G.x=J.x+G.width/2,G.y=K.y+G.height/2}}),P.nodes().forEach(q=>{P.node(q).dummy==="border"&&P.removeNode(q)})}function B(P){P.edges().forEach(q=>{if(q.v===q.w){var G=P.node(q.v);G.selfEdges||(G.selfEdges=[]),G.selfEdges.push({e:q,label:P.edge(q)}),P.removeEdge(q)}})}function V(P){var q=f.buildLayerMatrix(P);q.forEach(G=>{var K=0;G.forEach((ne,J)=>{var ee=P.node(ne);ee.order=J+K,(ee.selfEdges||[]).forEach(re=>{f.addDummyNode(P,"selfedge",{width:re.label.width,height:re.label.height,rank:ee.rank,order:J+ ++K,e:re.e,label:re.label},"_se")}),delete ee.selfEdges})})}function D(P){P.nodes().forEach(q=>{var G=P.node(q);if(G.dummy==="selfedge"){var K=P.node(G.e.v),ne=K.x+K.width/2,J=K.y,ee=G.x-ne,re=K.height/2;P.setEdge(G.e,G.label),P.removeNode(q),G.label.points=[{x:ne+2*ee/3,y:J-re},{x:ne+5*ee/6,y:J-re},{x:ne+ee,y:J},{x:ne+5*ee/6,y:J+re},{x:ne+2*ee/3,y:J+re}],G.label.x=G.x,G.label.y=G.y}})}function Z(P,q){return f.mapValues(f.pick(P,q),Number)}function U(P){var q={};return P&&Object.entries(P).forEach(([G,K])=>{typeof G=="string"&&(G=G.toLowerCase()),q[G]=K}),q}return one}var lne,T7e;function UWn(){if(T7e)return lne;T7e=1;let e=Pl(),t=Hg().Graph;lne={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 lne}var cne,j7e;function qWn(){return j7e||(j7e=1,cne="1.1.8"),cne}var une,N7e;function VWn(){return N7e||(N7e=1,une={graphlib:Hg(),layout:BWn(),debug:UWn(),util:{time:Pl().time,notime:Pl().notime},version:qWn()}),une}var HWn=VWn();const I7e=Vl(HWn);function Gl(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=Gl(e[n]))!==""&&(t+=(t&&" ")+r);else for(let n in e)e[n]&&(t+=(t&&" ")+n);return t}var WWn={value:()=>{}};function gW(){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 t9(n)}function t9(e){this._=e}function ZWn(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}})}t9.prototype=gW.prototype={constructor:t9,on:function(e,t){var n=this._,r=ZWn(e+"",n),s,a=-1,i=r.length;if(arguments.length<2){for(;++a<i;)if((s=(e=r[a]).type)&&(s=GWn(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]=A7e(n[s],e.name,t);else if(t==null)for(s in n)n[s]=A7e(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 t9(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 GWn(e,t){for(var n=0,r=e.length,s;n<r;++n)if((s=e[n]).name===t)return s.value}function A7e(e,t,n){for(var r=0,s=e.length;r<s;++r)if(e[r].name===t){e[r]=WWn,e=e.slice(0,r).concat(e.slice(r+1));break}return n!=null&&e.push({name:t,value:n}),e}var wve="http://www.w3.org/1999/xhtml";const R7e={svg:"http://www.w3.org/2000/svg",xhtml:wve,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function vW(e){var t=e+="",n=t.indexOf(":");return n>=0&&(t=e.slice(0,n))!=="xmlns"&&(e=e.slice(n+1)),R7e.hasOwnProperty(t)?{space:R7e[t],local:e}:e}function QWn(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===wve&&t.documentElement.namespaceURI===wve?t.createElement(e):t.createElementNS(n,e)}}function YWn(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function fOt(e){var t=vW(e);return(t.local?YWn:QWn)(t)}function KWn(){}function SOe(e){return e==null?KWn:function(){return this.querySelector(e)}}function XWn(e){typeof e!="function"&&(e=SOe(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 Xp(r,this._parents)}function JWn(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function eZn(){return[]}function pOt(e){return e==null?eZn:function(){return this.querySelectorAll(e)}}function tZn(e){return function(){return JWn(e.apply(this,arguments))}}function nZn(e){typeof e=="function"?e=tZn(e):e=pOt(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 Xp(r,s)}function hOt(e){return function(){return this.matches(e)}}function mOt(e){return function(t){return t.matches(e)}}var rZn=Array.prototype.find;function sZn(e){return function(){return rZn.call(this.children,e)}}function aZn(){return this.firstElementChild}function iZn(e){return this.select(e==null?aZn:sZn(typeof e=="function"?e:mOt(e)))}var oZn=Array.prototype.filter;function lZn(){return Array.from(this.children)}function cZn(e){return function(){return oZn.call(this.children,e)}}function uZn(e){return this.selectAll(e==null?lZn:cZn(typeof e=="function"?e:mOt(e)))}function dZn(e){typeof e!="function"&&(e=hOt(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 Xp(r,this._parents)}function gOt(e){return new Array(e.length)}function fZn(){return new Xp(this._enter||this._groups.map(gOt),this._parents)}function nU(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}nU.prototype={constructor:nU,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 pZn(e){return function(){return e}}function hZn(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 nU(e,a[i]);for(;i<c;++i)(l=t[i])&&(s[i]=l)}function mZn(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 nU(e,a[l]);for(l=0;l<d;++l)(c=t[l])&&u.get(p[l])===c&&(s[l]=c)}function gZn(e){return e.__data__}function vZn(e,t){if(!arguments.length)return Array.from(this,gZn);var n=t?mZn:hZn,r=this._parents,s=this._groups;typeof e!="function"&&(e=pZn(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=yZn(e.call(d,d&&d.__data__,u,r)),m=h.length,v=l[u]=new Array(m),y=i[u]=new Array(m),b=c[u]=new Array(p);n(d,f,v,y,b,h,t);for(var x=0,S=0,k,_;x<m;++x)if(k=v[x]){for(x>=S&&(S=x+1);!(_=y[S])&&++S<m;);k._next=_||null}}return i=new Xp(i,r),i._enter=l,i._exit=c,i}function yZn(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function bZn(){return new Xp(this._exit||this._groups.map(gOt),this._parents)}function xZn(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 wZn(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 Xp(l,this._parents)}function SZn(){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 kZn(e){e||(e=OZn);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 Xp(s,this._parents).order()}function OZn(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function _Zn(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function CZn(){return Array.from(this)}function EZn(){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 TZn(){let e=0;for(const t of this)++e;return e}function jZn(){return!this.node()}function NZn(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 IZn(e){return function(){this.removeAttribute(e)}}function AZn(e){return function(){this.removeAttributeNS(e.space,e.local)}}function RZn(e,t){return function(){this.setAttribute(e,t)}}function PZn(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function $Zn(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}}function MZn(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 DZn(e,t){var n=vW(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?AZn:IZn:typeof t=="function"?n.local?MZn:$Zn:n.local?PZn:RZn)(n,t))}function vOt(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function LZn(e){return function(){this.style.removeProperty(e)}}function FZn(e,t,n){return function(){this.style.setProperty(e,t,n)}}function zZn(e,t,n){return function(){var r=t.apply(this,arguments);r==null?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function BZn(e,t,n){return arguments.length>1?this.each((t==null?LZn:typeof t=="function"?zZn:FZn)(e,t,n??"")):oN(this.node(),e)}function oN(e,t){return e.style.getPropertyValue(t)||vOt(e).getComputedStyle(e,null).getPropertyValue(t)}function UZn(e){return function(){delete this[e]}}function qZn(e,t){return function(){this[e]=t}}function VZn(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function HZn(e,t){return arguments.length>1?this.each((t==null?UZn:typeof t=="function"?VZn:qZn)(e,t)):this.node()[e]}function yOt(e){return e.trim().split(/^|\s+/)}function kOe(e){return e.classList||new bOt(e)}function bOt(e){this._node=e,this._names=yOt(e.getAttribute("class")||"")}bOt.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 xOt(e,t){for(var n=kOe(e),r=-1,s=t.length;++r<s;)n.add(t[r])}function wOt(e,t){for(var n=kOe(e),r=-1,s=t.length;++r<s;)n.remove(t[r])}function WZn(e){return function(){xOt(this,e)}}function ZZn(e){return function(){wOt(this,e)}}function GZn(e,t){return function(){(t.apply(this,arguments)?xOt:wOt)(this,e)}}function QZn(e,t){var n=yOt(e+"");if(arguments.length<2){for(var r=kOe(this.node()),s=-1,a=n.length;++s<a;)if(!r.contains(n[s]))return!1;return!0}return this.each((typeof t=="function"?GZn:t?WZn:ZZn)(n,t))}function YZn(){this.textContent=""}function KZn(e){return function(){this.textContent=e}}function XZn(e){return function(){var t=e.apply(this,arguments);this.textContent=t??""}}function JZn(e){return arguments.length?this.each(e==null?YZn:(typeof e=="function"?XZn:KZn)(e)):this.node().textContent}function eGn(){this.innerHTML=""}function tGn(e){return function(){this.innerHTML=e}}function nGn(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??""}}function rGn(e){return arguments.length?this.each(e==null?eGn:(typeof e=="function"?nGn:tGn)(e)):this.node().innerHTML}function sGn(){this.nextSibling&&this.parentNode.appendChild(this)}function aGn(){return this.each(sGn)}function iGn(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function oGn(){return this.each(iGn)}function lGn(e){var t=typeof e=="function"?e:fOt(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function cGn(){return null}function uGn(e,t){var n=typeof e=="function"?e:fOt(e),r=t==null?cGn:typeof t=="function"?t:SOe(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})}function dGn(){var e=this.parentNode;e&&e.removeChild(this)}function fGn(){return this.each(dGn)}function pGn(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function hGn(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function mGn(e){return this.select(e?hGn:pGn)}function gGn(e){return arguments.length?this.property("__data__",e):this.node().__data__}function vGn(e){return function(t){e.call(this,t,this.__data__)}}function yGn(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 bGn(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 xGn(e,t,n){return function(){var r=this.__on,s,a=vGn(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 wGn(e,t,n){var r=yGn(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?xGn:bGn,s=0;s<a;++s)this.each(l(r[s],t,n));return this}function SOt(e,t,n){var r=vOt(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 SGn(e,t){return function(){return SOt(this,e,t)}}function kGn(e,t){return function(){return SOt(this,e,t.apply(this,arguments))}}function OGn(e,t){return this.each((typeof t=="function"?kGn:SGn)(e,t))}function*_Gn(){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 kOt=[null];function Xp(e,t){this._groups=e,this._parents=t}function a4(){return new Xp([[document.documentElement]],kOt)}function CGn(){return this}Xp.prototype=a4.prototype={constructor:Xp,select:XWn,selectAll:nZn,selectChild:iZn,selectChildren:uZn,filter:dZn,data:vZn,enter:fZn,exit:bZn,join:xZn,merge:wZn,selection:CGn,order:SZn,sort:kZn,call:_Zn,nodes:CZn,node:EZn,size:TZn,empty:jZn,each:NZn,attr:DZn,style:BZn,property:HZn,classed:QZn,text:JZn,html:rGn,raise:aGn,lower:oGn,append:lGn,insert:uGn,remove:fGn,clone:mGn,datum:gGn,on:wGn,dispatch:OGn,[Symbol.iterator]:_Gn};function Ep(e){return typeof e=="string"?new Xp([[document.querySelector(e)]],[document.documentElement]):new Xp([[e]],kOt)}function EGn(e){let t;for(;t=e.sourceEvent;)e=t;return e}function mg(e,t){if(e=EGn(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 TGn={passive:!1},FM={capture:!0,passive:!1};function dne(e){e.stopImmediatePropagation()}function uj(e){e.preventDefault(),e.stopImmediatePropagation()}function OOt(e){var t=e.document.documentElement,n=Ep(e).on("dragstart.drag",uj,FM);"onselectstart"in t?n.on("selectstart.drag",uj,FM):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect="none")}function _Ot(e,t){var n=e.document.documentElement,r=Ep(e).on("dragstart.drag",null);t&&(r.on("click.drag",uj,FM),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 _F=e=>()=>e;function Sve(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}})}Sve.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function jGn(e){return!e.ctrlKey&&!e.button}function NGn(){return this.parentNode}function IGn(e,t){return t??{x:e.x,y:e.y}}function AGn(){return navigator.maxTouchPoints||"ontouchstart"in this}function COt(){var e=jGn,t=NGn,n=IGn,r=AGn,s={},a=gW("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,TGn).on("touchend.drag touchcancel.drag",x).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function h(k,_){if(!(d||!e.call(this,k,_))){var C=S(this,t.call(this,k,_),k,_,"mouse");C&&(Ep(k.view).on("mousemove.drag",m,FM).on("mouseup.drag",v,FM),OOt(k.view),dne(k),u=!1,l=k.clientX,c=k.clientY,C("start",k))}}function m(k){if(uj(k),!u){var _=k.clientX-l,C=k.clientY-c;u=_*_+C*C>f}s.mouse("drag",k)}function v(k){Ep(k.view).on("mousemove.drag mouseup.drag",null),_Ot(k.view,u),uj(k),s.mouse("end",k)}function y(k,_){if(e.call(this,k,_)){var C=k.changedTouches,T=t.call(this,k,_),E=C.length,N,I;for(N=0;N<E;++N)(I=S(this,T,k,_,C[N].identifier,C[N]))&&(dne(k),I("start",k,C[N]))}}function b(k){var _=k.changedTouches,C=_.length,T,E;for(T=0;T<C;++T)(E=s[_[T].identifier])&&(uj(k),E("drag",k,_[T]))}function x(k){var _=k.changedTouches,C=_.length,T,E;for(d&&clearTimeout(d),d=setTimeout(function(){d=null},500),T=0;T<C;++T)(E=s[_[T].identifier])&&(dne(k),E("end",k,_[T]))}function S(k,_,C,T,E,N){var I=a.copy(),A=mg(N||C,_),R,L,M;if((M=n.call(k,new Sve("beforestart",{sourceEvent:C,target:p,identifier:E,active:i,x:A[0],y:A[1],dx:0,dy:0,dispatch:I}),T))!=null)return R=M.x-A[0]||0,L=M.y-A[1]||0,function z(H,F,B){var V=A,D;switch(H){case"start":s[E]=z,D=i++;break;case"end":delete s[E],--i;case"drag":A=mg(B||F,_),D=i;break}I.call(H,k,new Sve(H,{sourceEvent:F,subject:M,target:p,identifier:E,active:D,x:A[0]+R,y:A[1]+L,dx:A[0]-V[0],dy:A[1]-V[1],dispatch:I}),T)}}return p.filter=function(k){return arguments.length?(e=typeof k=="function"?k:_F(!!k),p):e},p.container=function(k){return arguments.length?(t=typeof k=="function"?k:_F(k),p):t},p.subject=function(k){return arguments.length?(n=typeof k=="function"?k:_F(k),p):n},p.touchable=function(k){return arguments.length?(r=typeof k=="function"?k:_F(!!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 OOe(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function EOt(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function i4(){}var zM=.7,rU=1/zM,dj="\\s*([+-]?\\d+)\\s*",BM="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",cy="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",RGn=/^#([0-9a-f]{3,8})$/,PGn=new RegExp(`^rgb\\(${dj},${dj},${dj}\\)$`),$Gn=new RegExp(`^rgb\\(${cy},${cy},${cy}\\)$`),MGn=new RegExp(`^rgba\\(${dj},${dj},${dj},${BM}\\)$`),DGn=new RegExp(`^rgba\\(${cy},${cy},${cy},${BM}\\)$`),LGn=new RegExp(`^hsl\\(${BM},${cy},${cy}\\)$`),FGn=new RegExp(`^hsla\\(${BM},${cy},${cy},${BM}\\)$`),P7e={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};OOe(i4,JO,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:$7e,formatHex:$7e,formatHex8:zGn,formatHsl:BGn,formatRgb:M7e,toString:M7e});function $7e(){return this.rgb().formatHex()}function zGn(){return this.rgb().formatHex8()}function BGn(){return TOt(this).formatHsl()}function M7e(){return this.rgb().formatRgb()}function JO(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=RGn.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?D7e(t):n===3?new Tf(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?CF(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?CF(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=PGn.exec(e))?new Tf(t[1],t[2],t[3],1):(t=$Gn.exec(e))?new Tf(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=MGn.exec(e))?CF(t[1],t[2],t[3],t[4]):(t=DGn.exec(e))?CF(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=LGn.exec(e))?z7e(t[1],t[2]/100,t[3]/100,1):(t=FGn.exec(e))?z7e(t[1],t[2]/100,t[3]/100,t[4]):P7e.hasOwnProperty(e)?D7e(P7e[e]):e==="transparent"?new Tf(NaN,NaN,NaN,0):null}function D7e(e){return new Tf(e>>16&255,e>>8&255,e&255,1)}function CF(e,t,n,r){return r<=0&&(e=t=n=NaN),new Tf(e,t,n,r)}function UGn(e){return e instanceof i4||(e=JO(e)),e?(e=e.rgb(),new Tf(e.r,e.g,e.b,e.opacity)):new Tf}function kve(e,t,n,r){return arguments.length===1?UGn(e):new Tf(e,t,n,r??1)}function Tf(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}OOe(Tf,kve,EOt(i4,{brighter(e){return e=e==null?rU:Math.pow(rU,e),new Tf(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?zM:Math.pow(zM,e),new Tf(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Tf(iO(this.r),iO(this.g),iO(this.b),sU(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:L7e,formatHex:L7e,formatHex8:qGn,formatRgb:F7e,toString:F7e}));function L7e(){return`#${Fk(this.r)}${Fk(this.g)}${Fk(this.b)}`}function qGn(){return`#${Fk(this.r)}${Fk(this.g)}${Fk(this.b)}${Fk((isNaN(this.opacity)?1:this.opacity)*255)}`}function F7e(){const e=sU(this.opacity);return`${e===1?"rgb(":"rgba("}${iO(this.r)}, ${iO(this.g)}, ${iO(this.b)}${e===1?")":`, ${e})`}`}function sU(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function iO(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Fk(e){return e=iO(e),(e<16?"0":"")+e.toString(16)}function z7e(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new Sg(e,t,n,r)}function TOt(e){if(e instanceof Sg)return new Sg(e.h,e.s,e.l,e.opacity);if(e instanceof i4||(e=JO(e)),!e)return new Sg;if(e instanceof Sg)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 Sg(i,l,c,e.opacity)}function VGn(e,t,n,r){return arguments.length===1?TOt(e):new Sg(e,t,n,r??1)}function Sg(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}OOe(Sg,VGn,EOt(i4,{brighter(e){return e=e==null?rU:Math.pow(rU,e),new Sg(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?zM:Math.pow(zM,e),new Sg(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 Tf(fne(e>=240?e-240:e+120,s,r),fne(e,s,r),fne(e<120?e+240:e-120,s,r),this.opacity)},clamp(){return new Sg(B7e(this.h),EF(this.s),EF(this.l),sU(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=sU(this.opacity);return`${e===1?"hsl(":"hsla("}${B7e(this.h)}, ${EF(this.s)*100}%, ${EF(this.l)*100}%${e===1?")":`, ${e})`}`}}));function B7e(e){return e=(e||0)%360,e<0?e+360:e}function EF(e){return Math.max(0,Math.min(1,e||0))}function fne(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 _Oe=e=>()=>e;function HGn(e,t){return function(n){return e+n*t}}function WGn(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 ZGn(e){return(e=+e)==1?jOt:function(t,n){return n-t?WGn(t,n,e):_Oe(isNaN(t)?n:t)}}function jOt(e,t){var n=t-e;return n?HGn(e,n):_Oe(isNaN(e)?t:e)}const aU=(function e(t){var n=ZGn(t);function r(s,a){var i=n((s=kve(s)).r,(a=kve(a)).r),l=n(s.g,a.g),c=n(s.b,a.b),u=jOt(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 GGn(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 QGn(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function YGn(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]=mx(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 KGn(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function vg(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function XGn(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]=mx(e[s],t[s]):r[s]=t[s];return function(a){for(s in n)r[s]=n[s](a);return r}}var Ove=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,pne=new RegExp(Ove.source,"g");function JGn(e){return function(){return e}}function eQn(e){return function(t){return e(t)+""}}function NOt(e,t){var n=Ove.lastIndex=pne.lastIndex=0,r,s,a,i=-1,l=[],c=[];for(e=e+"",t=t+"";(r=Ove.exec(e))&&(s=pne.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:vg(r,s)})),n=pne.lastIndex;return n<t.length&&(a=t.slice(n),l[i]?l[i]+=a:l[++i]=a),l.length<2?c[0]?eQn(c[0].x):JGn(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 mx(e,t){var n=typeof t,r;return t==null||n==="boolean"?_Oe(t):(n==="number"?vg:n==="string"?(r=JO(t))?(t=r,aU):NOt:t instanceof JO?aU:t instanceof Date?KGn:QGn(t)?GGn:Array.isArray(t)?YGn:typeof t.valueOf!="function"&&typeof t.toString!="function"||isNaN(t)?XGn:vg)(e,t)}function COe(e,t){return e=+e,t=+t,function(n){return Math.round(e*(1-n)+t*n)}}var U7e=180/Math.PI,_ve={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function IOt(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)*U7e,skewX:Math.atan(c)*U7e,scaleX:i,scaleY:l}}var TF;function tQn(e){const t=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?_ve:IOt(t.a,t.b,t.c,t.d,t.e,t.f)}function nQn(e){return e==null||(TF||(TF=document.createElementNS("http://www.w3.org/2000/svg","g")),TF.setAttribute("transform",e),!(e=TF.transform.baseVal.consolidate()))?_ve:(e=e.matrix,IOt(e.a,e.b,e.c,e.d,e.e,e.f))}function AOt(e,t,n,r){function s(u){return u.length?u.pop()+" ":""}function a(u,d,f,p,h,m){if(u!==f||d!==p){var v=h.push("translate(",null,t,null,n);m.push({i:v-4,x:vg(u,f)},{i:v-2,x:vg(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:vg(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:vg(u,d)}):d&&f.push(s(f)+"skewX("+d+r)}function c(u,d,f,p,h,m){if(u!==f||d!==p){var v=h.push(s(h)+"scale(",null,",",null,")");m.push({i:v-4,x:vg(u,f)},{i:v-2,x:vg(d,p)})}else(f!==1||p!==1)&&h.push(s(h)+"scale("+f+","+p+")")}return function(u,d){var f=[],p=[];return u=e(u),d=e(d),a(u.translateX,u.translateY,d.translateX,d.translateY,f,p),i(u.rotate,d.rotate,f,p),l(u.skewX,d.skewX,f,p),c(u.scaleX,u.scaleY,d.scaleX,d.scaleY,f,p),u=d=null,function(h){for(var m=-1,v=p.length,y;++m<v;)f[(y=p[m]).i]=y.x(h);return f.join("")}}}var rQn=AOt(tQn,"px, ","px)","deg)"),sQn=AOt(nQn,", ",")",")"),aQn=1e-12;function q7e(e){return((e=Math.exp(e))+1/e)/2}function iQn(e){return((e=Math.exp(e))-1/e)/2}function oQn(e){return((e=Math.exp(2*e))-1)/(e+1)}const n9=(function e(t,n,r){function s(a,i){var l=a[0],c=a[1],u=a[2],d=i[0],f=i[1],p=i[2],h=d-l,m=f-c,v=h*h+m*m,y,b;if(v<aQn)b=Math.log(p/u)/t,y=function(T){return[l+T*h,c+T*m,u*Math.exp(t*T*b)]};else{var x=Math.sqrt(v),S=(p*p-u*u+r*v)/(2*u*n*x),k=(p*p-u*u-r*v)/(2*p*n*x),_=Math.log(Math.sqrt(S*S+1)-S),C=Math.log(Math.sqrt(k*k+1)-k);b=(C-_)/t,y=function(T){var E=T*b,N=q7e(_),I=u/(n*x)*(N*oQn(t*E+_)-iQn(_));return[l+I*h,c+I*m,u*N/q7e(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 lQn(e,t){t===void 0&&(t=e,e=mx);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 lN=0,t$=0,FR=0,ROt=1e3,iU,n$,oU=0,e_=0,yW=0,UM=typeof performance=="object"&&performance.now?performance:Date,POt=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function EOe(){return e_||(POt(cQn),e_=UM.now()+yW)}function cQn(){e_=0}function lU(){this._call=this._time=this._next=null}lU.prototype=$Ot.prototype={constructor:lU,restart:function(e,t,n){if(typeof e!="function")throw new TypeError("callback is not a function");n=(n==null?EOe():+n)+(t==null?0:+t),!this._next&&n$!==this&&(n$?n$._next=this:iU=this,n$=this),this._call=e,this._time=n,Cve()},stop:function(){this._call&&(this._call=null,this._time=1/0,Cve())}};function $Ot(e,t,n){var r=new lU;return r.restart(e,t,n),r}function uQn(){EOe(),++lN;for(var e=iU,t;e;)(t=e_-e._time)>=0&&e._call.call(void 0,t),e=e._next;--lN}function V7e(){e_=(oU=UM.now())+yW,lN=t$=0;try{uQn()}finally{lN=0,fQn(),e_=0}}function dQn(){var e=UM.now(),t=e-oU;t>ROt&&(yW-=t,oU=e)}function fQn(){for(var e,t=iU,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:iU=n);n$=e,Cve(r)}function Cve(e){if(!lN){t$&&(t$=clearTimeout(t$));var t=e-e_;t>24?(e<1/0&&(t$=setTimeout(V7e,e-UM.now()-yW)),FR&&(FR=clearInterval(FR))):(FR||(oU=UM.now(),FR=setInterval(dQn,ROt)),lN=1,POt(V7e))}}function H7e(e,t,n){var r=new lU;return t=t==null?0:+t,r.restart(s=>{r.stop(),e(s+t)},t,n),r}var pQn=gW("start","end","cancel","interrupt"),hQn=[],MOt=0,W7e=1,Eve=2,r9=3,Z7e=4,Tve=5,s9=6;function bW(e,t,n,r,s,a){var i=e.__transition;if(!i)e.__transition={};else if(n in i)return;mQn(e,n,{name:t,index:r,group:s,on:pQn,tween:hQn,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:MOt})}function TOe(e,t){var n=Jg(e,t);if(n.state>MOt)throw new Error("too late; already scheduled");return n}function zy(e,t){var n=Jg(e,t);if(n.state>r9)throw new Error("too late; already running");return n}function Jg(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function mQn(e,t,n){var r=e.__transition,s;r[t]=n,n.timer=$Ot(a,0,n.time);function a(u){n.state=W7e,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!==W7e)return c();for(d in r)if(h=r[d],h.name===n.name){if(h.state===r9)return H7e(i);h.state===Z7e?(h.state=s9,h.timer.stop(),h.on.call("interrupt",e,e.__data__,h.index,h.group),delete r[d]):+d<t&&(h.state=s9,h.timer.stop(),h.on.call("cancel",e,e.__data__,h.index,h.group),delete r[d])}if(H7e(function(){n.state===r9&&(n.state=Z7e,n.timer.restart(l,n.delay,n.time),l(u))}),n.state=Eve,n.on.call("start",e,e.__data__,n.index,n.group),n.state===Eve){for(n.state=r9,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=Tve,1),f=-1,p=s.length;++f<p;)s[f].call(e,d);n.state===Tve&&(n.on.call("end",e,e.__data__,n.index,n.group),c())}function c(){n.state=s9,n.timer.stop(),delete r[t];for(var u in r)return;delete e.__transition}}function a9(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>Eve&&r.state<Tve,r.state=s9,r.timer.stop(),r.on.call(s?"interrupt":"cancel",e,e.__data__,r.index,r.group),delete n[i]}a&&delete e.__transition}}function gQn(e){return this.each(function(){a9(this,e)})}function vQn(e,t){var n,r;return function(){var s=zy(this,e),a=s.tween;if(a!==n){r=n=a;for(var i=0,l=r.length;i<l;++i)if(r[i].name===t){r=r.slice(),r.splice(i,1);break}}s.tween=r}}function yQn(e,t,n){var r,s;if(typeof n!="function")throw new Error;return function(){var a=zy(this,e),i=a.tween;if(i!==r){s=(r=i).slice();for(var l={name:t,value:n},c=0,u=s.length;c<u;++c)if(s[c].name===t){s[c]=l;break}c===u&&s.push(l)}a.tween=s}}function bQn(e,t){var n=this._id;if(e+="",arguments.length<2){for(var r=Jg(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?vQn:yQn)(n,e,t))}function jOe(e,t,n){var r=e._id;return e.each(function(){var s=zy(this,r);(s.value||(s.value={}))[t]=n.apply(this,arguments)}),function(s){return Jg(s,r).value[t]}}function DOt(e,t){var n;return(typeof t=="number"?vg:t instanceof JO?aU:(n=JO(t))?(t=n,aU):NOt)(e,t)}function xQn(e){return function(){this.removeAttribute(e)}}function wQn(e){return function(){this.removeAttributeNS(e.space,e.local)}}function SQn(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 kQn(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 OQn(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 _Qn(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 CQn(e,t){var n=vW(e),r=n==="transform"?sQn:DOt;return this.attrTween(e,typeof t=="function"?(n.local?_Qn:OQn)(n,r,jOe(this,"attr."+e,t)):t==null?(n.local?wQn:xQn)(n):(n.local?kQn:SQn)(n,r,t))}function EQn(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function TQn(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function jQn(e,t){var n,r;function s(){var a=t.apply(this,arguments);return a!==r&&(n=(r=a)&&TQn(e,a)),n}return s._value=t,s}function NQn(e,t){var n,r;function s(){var a=t.apply(this,arguments);return a!==r&&(n=(r=a)&&EQn(e,a)),n}return s._value=t,s}function IQn(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=vW(e);return this.tween(n,(r.local?jQn:NQn)(r,t))}function AQn(e,t){return function(){TOe(this,e).delay=+t.apply(this,arguments)}}function RQn(e,t){return t=+t,function(){TOe(this,e).delay=t}}function PQn(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?AQn:RQn)(t,e)):Jg(this.node(),t).delay}function $Qn(e,t){return function(){zy(this,e).duration=+t.apply(this,arguments)}}function MQn(e,t){return t=+t,function(){zy(this,e).duration=t}}function DQn(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?$Qn:MQn)(t,e)):Jg(this.node(),t).duration}function LQn(e,t){if(typeof t!="function")throw new Error;return function(){zy(this,e).ease=t}}function FQn(e){var t=this._id;return arguments.length?this.each(LQn(t,e)):Jg(this.node(),t).ease}function zQn(e,t){return function(){var n=t.apply(this,arguments);if(typeof n!="function")throw new Error;zy(this,e).ease=n}}function BQn(e){if(typeof e!="function")throw new Error;return this.each(zQn(this._id,e))}function UQn(e){typeof e!="function"&&(e=hOt(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 Mx(r,this._parents,this._name,this._id)}function qQn(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 Mx(i,this._parents,this._name,this._id)}function VQn(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 HQn(e,t,n){var r,s,a=VQn(t)?TOe:zy;return function(){var i=a(this,e),l=i.on;l!==r&&(s=(r=l).copy()).on(t,n),i.on=s}}function WQn(e,t){var n=this._id;return arguments.length<2?Jg(this.node(),n).on.on(e):this.each(HQn(n,e,t))}function ZQn(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function GQn(){return this.on("end.remove",ZQn(this._id))}function QQn(e){var t=this._name,n=this._id;typeof e!="function"&&(e=SOe(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,bW(u[p],t,n,p,u,Jg(d,n)));return new Mx(a,this._parents,t,n)}function YQn(e){var t=this._name,n=this._id;typeof e!="function"&&(e=pOt(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=Jg(d,n),v=0,y=p.length;v<y;++v)(h=p[v])&&bW(h,t,n,v,p,m);a.push(p),i.push(d)}return new Mx(a,i,t,n)}var KQn=a4.prototype.constructor;function XQn(){return new KQn(this._groups,this._parents)}function JQn(e,t){var n,r,s;return function(){var a=oN(this,e),i=(this.style.removeProperty(e),oN(this,e));return a===i?null:a===n&&i===r?s:s=t(n=a,r=i)}}function LOt(e){return function(){this.style.removeProperty(e)}}function eYn(e,t,n){var r,s=n+"",a;return function(){var i=oN(this,e);return i===s?null:i===r?a:a=t(r=i,n)}}function tYn(e,t,n){var r,s,a;return function(){var i=oN(this,e),l=n(this),c=l+"";return l==null&&(c=l=(this.style.removeProperty(e),oN(this,e))),i===c?null:i===r&&c===s?a:(s=c,a=t(r=i,l))}}function nYn(e,t){var n,r,s,a="style."+t,i="end."+a,l;return function(){var c=zy(this,e),u=c.on,d=c.value[a]==null?l||(l=LOt(t)):void 0;(u!==n||s!==d)&&(r=(n=u).copy()).on(i,s=d),c.on=r}}function rYn(e,t,n){var r=(e+="")=="transform"?rQn:DOt;return t==null?this.styleTween(e,JQn(e,r)).on("end.style."+e,LOt(e)):typeof t=="function"?this.styleTween(e,tYn(e,r,jOe(this,"style."+e,t))).each(nYn(this._id,e)):this.styleTween(e,eYn(e,r,t),n).on("end.style."+e,null)}function sYn(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}function aYn(e,t,n){var r,s;function a(){var i=t.apply(this,arguments);return i!==s&&(r=(s=i)&&sYn(e,i,n)),r}return a._value=t,a}function iYn(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,aYn(e,t,n??""))}function oYn(e){return function(){this.textContent=e}}function lYn(e){return function(){var t=e(this);this.textContent=t??""}}function cYn(e){return this.tween("text",typeof e=="function"?lYn(jOe(this,"text",e)):oYn(e==null?"":e+""))}function uYn(e){return function(t){this.textContent=e.call(this,t)}}function dYn(e){var t,n;function r(){var s=e.apply(this,arguments);return s!==n&&(t=(n=s)&&uYn(s)),t}return r._value=e,r}function fYn(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,dYn(e))}function pYn(){for(var e=this._name,t=this._id,n=FOt(),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=Jg(c,t);bW(c,e,n,u,i,{time:d.time+d.delay+d.duration,delay:0,duration:d.duration,ease:d.ease})}return new Mx(r,this._parents,e,n)}function hYn(){var e,t,n=this,r=n._id,s=n.size();return new Promise(function(a,i){var l={value:i},c={value:function(){--s===0&&a()}};n.each(function(){var u=zy(this,r),d=u.on;d!==e&&(t=(e=d).copy(),t._.cancel.push(l),t._.interrupt.push(l),t._.end.push(c)),u.on=t}),s===0&&a()})}var mYn=0;function Mx(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}function FOt(){return++mYn}var Sb=a4.prototype;Mx.prototype={constructor:Mx,select:QQn,selectAll:YQn,selectChild:Sb.selectChild,selectChildren:Sb.selectChildren,filter:UQn,merge:qQn,selection:XQn,transition:pYn,call:Sb.call,nodes:Sb.nodes,node:Sb.node,size:Sb.size,empty:Sb.empty,each:Sb.each,on:WQn,attr:CQn,attrTween:IQn,style:rYn,styleTween:iYn,text:cYn,textTween:fYn,remove:GQn,tween:bQn,delay:PQn,duration:DQn,ease:FQn,easeVarying:BQn,end:hYn,[Symbol.iterator]:Sb[Symbol.iterator]};function gYn(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var vYn={time:null,delay:0,duration:250,ease:gYn};function yYn(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 bYn(e){var t,n;e instanceof Mx?(t=e._id,e=e._name):(t=FOt(),(n=vYn).time=EOe(),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])&&bW(c,e,t,u,i,n||yYn(c,t));return new Mx(r,this._parents,e,t)}a4.prototype.interrupt=gQn;a4.prototype.transition=bYn;const jF=e=>()=>e;function xYn(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 rx(e,t,n){this.k=e,this.x=t,this.y=n}rx.prototype={constructor:rx,scale:function(e){return e===1?this:new rx(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new rx(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 xW=new rx(1,0,0);zOt.prototype=rx.prototype;function zOt(e){for(;!e.__zoom;)if(!(e=e.parentNode))return xW;return e.__zoom}function hne(e){e.stopImmediatePropagation()}function zR(e){e.preventDefault(),e.stopImmediatePropagation()}function wYn(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function SYn(){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 G7e(){return this.__zoom||xW}function kYn(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function OYn(){return navigator.maxTouchPoints||"ontouchstart"in this}function _Yn(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 BOt(){var e=wYn,t=SYn,n=_Yn,r=kYn,s=OYn,a=[0,1/0],i=[[-1/0,-1/0],[1/0,1/0]],l=250,c=n9,u=gW("start","zoom","end"),d,f,p,h=500,m=150,v=0,y=10;function b(M){M.property("__zoom",G7e).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(M,z,H,F){var B=M.selection?M.selection():M;B.property("__zoom",G7e),M!==B?_(M,z,H,F):B.interrupt().each(function(){C(this,arguments).event(F).start().zoom(null,typeof z=="function"?z.apply(this,arguments):z).end()})},b.scaleBy=function(M,z,H,F){b.scaleTo(M,function(){var B=this.__zoom.k,V=typeof z=="function"?z.apply(this,arguments):z;return B*V},H,F)},b.scaleTo=function(M,z,H,F){b.transform(M,function(){var B=t.apply(this,arguments),V=this.__zoom,D=H==null?k(B):typeof H=="function"?H.apply(this,arguments):H,Z=V.invert(D),U=typeof z=="function"?z.apply(this,arguments):z;return n(S(x(V,U),D,Z),B,i)},H,F)},b.translateBy=function(M,z,H,F){b.transform(M,function(){return n(this.__zoom.translate(typeof z=="function"?z.apply(this,arguments):z,typeof H=="function"?H.apply(this,arguments):H),t.apply(this,arguments),i)},null,F)},b.translateTo=function(M,z,H,F,B){b.transform(M,function(){var V=t.apply(this,arguments),D=this.__zoom,Z=F==null?k(V):typeof F=="function"?F.apply(this,arguments):F;return n(xW.translate(Z[0],Z[1]).scale(D.k).translate(typeof z=="function"?-z.apply(this,arguments):-z,typeof H=="function"?-H.apply(this,arguments):-H),V,i)},F,B)};function x(M,z){return z=Math.max(a[0],Math.min(a[1],z)),z===M.k?M:new rx(z,M.x,M.y)}function S(M,z,H){var F=z[0]-H[0]*M.k,B=z[1]-H[1]*M.k;return F===M.x&&B===M.y?M:new rx(M.k,F,B)}function k(M){return[(+M[0][0]+ +M[1][0])/2,(+M[0][1]+ +M[1][1])/2]}function _(M,z,H,F){M.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 B=this,V=arguments,D=C(B,V).event(F),Z=t.apply(B,V),U=H==null?k(Z):typeof H=="function"?H.apply(B,V):H,P=Math.max(Z[1][0]-Z[0][0],Z[1][1]-Z[0][1]),q=B.__zoom,G=typeof z=="function"?z.apply(B,V):z,K=c(q.invert(U).concat(P/q.k),G.invert(U).concat(P/G.k));return function(ne){if(ne===1)ne=G;else{var J=K(ne),ee=P/J[2];ne=new rx(ee,U[0]-J[0]*ee,U[1]-J[1]*ee)}D.zoom(null,ne)}})}function C(M,z,H){return!H&&M.__zooming||new T(M,z)}function T(M,z){this.that=M,this.args=z,this.active=0,this.sourceEvent=null,this.extent=t.apply(M,z),this.taps=0}T.prototype={event:function(M){return M&&(this.sourceEvent=M),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(M,z){return this.mouse&&M!=="mouse"&&(this.mouse[1]=z.invert(this.mouse[0])),this.touch0&&M!=="touch"&&(this.touch0[1]=z.invert(this.touch0[0])),this.touch1&&M!=="touch"&&(this.touch1[1]=z.invert(this.touch1[0])),this.that.__zoom=z,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(M){var z=Ep(this.that).datum();u.call(M,this.that,new xYn(M,{sourceEvent:this.sourceEvent,target:b,transform:this.that.__zoom,dispatch:u}),z)}};function E(M,...z){if(!e.apply(this,arguments))return;var H=C(this,z).event(M),F=this.__zoom,B=Math.max(a[0],Math.min(a[1],F.k*Math.pow(2,r.apply(this,arguments)))),V=mg(M);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===B)return;H.mouse=[V,F.invert(V)],a9(this),H.start()}zR(M),H.wheel=setTimeout(D,m),H.zoom("mouse",n(S(x(F,B),H.mouse[0],H.mouse[1]),H.extent,i));function D(){H.wheel=null,H.end()}}function N(M,...z){if(p||!e.apply(this,arguments))return;var H=M.currentTarget,F=C(this,z,!0).event(M),B=Ep(M.view).on("mousemove.zoom",U,!0).on("mouseup.zoom",P,!0),V=mg(M,H),D=M.clientX,Z=M.clientY;OOt(M.view),hne(M),F.mouse=[V,this.__zoom.invert(V)],a9(this),F.start();function U(q){if(zR(q),!F.moved){var G=q.clientX-D,K=q.clientY-Z;F.moved=G*G+K*K>v}F.event(q).zoom("mouse",n(S(F.that.__zoom,F.mouse[0]=mg(q,H),F.mouse[1]),F.extent,i))}function P(q){B.on("mousemove.zoom mouseup.zoom",null),_Ot(q.view,F.moved),zR(q),F.event(q).end()}}function I(M,...z){if(e.apply(this,arguments)){var H=this.__zoom,F=mg(M.changedTouches?M.changedTouches[0]:M,this),B=H.invert(F),V=H.k*(M.shiftKey?.5:2),D=n(S(x(H,V),F,B),t.apply(this,z),i);zR(M),l>0?Ep(this).transition().duration(l).call(_,D,F,M):Ep(this).call(b.transform,D,F,M)}}function A(M,...z){if(e.apply(this,arguments)){var H=M.touches,F=H.length,B=C(this,z,M.changedTouches.length===F).event(M),V,D,Z,U;for(hne(M),D=0;D<F;++D)Z=H[D],U=mg(Z,this),U=[U,this.__zoom.invert(U),Z.identifier],B.touch0?!B.touch1&&B.touch0[2]!==U[2]&&(B.touch1=U,B.taps=0):(B.touch0=U,V=!0,B.taps=1+!!d);d&&(d=clearTimeout(d)),V&&(B.taps<2&&(f=U[0],d=setTimeout(function(){d=null},h)),a9(this),B.start())}}function R(M,...z){if(this.__zooming){var H=C(this,z).event(M),F=M.changedTouches,B=F.length,V,D,Z,U;for(zR(M),V=0;V<B;++V)D=F[V],Z=mg(D,this),H.touch0&&H.touch0[2]===D.identifier?H.touch0[0]=Z:H.touch1&&H.touch1[2]===D.identifier&&(H.touch1[0]=Z);if(D=H.that.__zoom,H.touch1){var P=H.touch0[0],q=H.touch0[1],G=H.touch1[0],K=H.touch1[1],ne=(ne=G[0]-P[0])*ne+(ne=G[1]-P[1])*ne,J=(J=K[0]-q[0])*J+(J=K[1]-q[1])*J;D=x(D,Math.sqrt(ne/J)),Z=[(P[0]+G[0])/2,(P[1]+G[1])/2],U=[(q[0]+K[0])/2,(q[1]+K[1])/2]}else if(H.touch0)Z=H.touch0[0],U=H.touch0[1];else return;H.zoom("touch",n(S(D,Z,U),H.extent,i))}}function L(M,...z){if(this.__zooming){var H=C(this,z).event(M),F=M.changedTouches,B=F.length,V,D;for(hne(M),p&&clearTimeout(p),p=setTimeout(function(){p=null},h),V=0;V<B;++V)D=F[V],H.touch0&&H.touch0[2]===D.identifier?delete H.touch0:H.touch1&&H.touch1[2]===D.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&&(D=mg(D,this),Math.hypot(f[0]-D[0],f[1]-D[1])<y)){var Z=Ep(this).on("dblclick.zoom");Z&&Z.apply(this,arguments)}}}return b.wheelDelta=function(M){return arguments.length?(r=typeof M=="function"?M:jF(+M),b):r},b.filter=function(M){return arguments.length?(e=typeof M=="function"?M:jF(!!M),b):e},b.touchable=function(M){return arguments.length?(s=typeof M=="function"?M:jF(!!M),b):s},b.extent=function(M){return arguments.length?(t=typeof M=="function"?M:jF([[+M[0][0],+M[0][1]],[+M[1][0],+M[1][1]]]),b):t},b.scaleExtent=function(M){return arguments.length?(a[0]=+M[0],a[1]=+M[1],b):[a[0],a[1]]},b.translateExtent=function(M){return arguments.length?(i[0][0]=+M[0][0],i[1][0]=+M[1][0],i[0][1]=+M[0][1],i[1][1]=+M[1][1],b):[[i[0][0],i[0][1]],[i[1][0],i[1][1]]]},b.constrain=function(M){return arguments.length?(n=M,b):n},b.duration=function(M){return arguments.length?(l=+M,b):l},b.interpolate=function(M){return arguments.length?(c=M,b):c},b.on=function(){var M=u.on.apply(u,arguments);return M===u?b:M},b.clickDistance=function(M){return arguments.length?(v=(M=+M)*M,b):Math.sqrt(v)},b.tapDistance=function(M){return arguments.length?(y=+M,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."},qM=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],UOt=["Enter"," ","Escape"],qOt={"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 cN;(function(e){e.Strict="strict",e.Loose="loose"})(cN||(cN={}));var oO;(function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"})(oO||(oO={}));var VM;(function(e){e.Partial="partial",e.Full="full"})(VM||(VM={}));const VOt={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null};var Sw;(function(e){e.Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier"})(Sw||(Sw={}));var HM;(function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"})(HM||(HM={}));var nr;(function(e){e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom"})(nr||(nr={}));const Q7e={[nr.Left]:nr.Right,[nr.Right]:nr.Left,[nr.Top]:nr.Bottom,[nr.Bottom]:nr.Top};function HOt(e){return e===null?null:e?"valid":"invalid"}const WOt=e=>"id"in e&&"source"in e&&"target"in e,CYn=e=>"id"in e&&"position"in e&&!("source"in e)&&!("target"in e),NOe=e=>"id"in e&&"internals"in e&&!("source"in e)&&!("target"in e),o4=(e,t=[0,0])=>{const{width:n,height:r}=s0(e),s=e.origin??t,a=n*s[0],i=r*s[1];return{x:e.position.x-a,y:e.position.y-i}},EYn=(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):NOe(s)?s:t.nodeLookup.get(s.id));const l=i?cU(i,t.nodeOrigin):{x:0,y:0,x2:0,y2:0};return wW(r,l)},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return SW(n)},l4=(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=wW(n,cU(s)),r=!0)}),r?SW(n):{x:0,y:0,width:0,height:0}},IOe=(e,t,[n,r,s]=[0,0,1],a=!1,i=!1)=>{const l={...u4(t,[n,r,s]),width:t.width/s,height:t.height/s},c=[];for(const u of e.values()){const{measured:d,selectable:f=!0,hidden:p=!1}=u;if(i&&!f||p)continue;const h=d.width??u.width??u.initialWidth??null,m=d.height??u.height??u.initialHeight??null,v=WM(l,dN(u)),y=(h??0)*(m??0),b=a&&v>0;(!u.internals.handleBounds||b||v>=y||u.dragging)&&c.push(u)}return c},TYn=(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 jYn(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 NYn({nodes:e,width:t,height:n,panZoom:r,minZoom:s,maxZoom:a},i){if(e.size===0)return Promise.resolve(!0);const l=jYn(e,i),c=l4(l),u=AOe(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 ZOt({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&&fN(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=fN(f)?t_(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 IYn({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:r,onBeforeDelete:s}){const a=new Set(e.map(p=>p.id)),i=[];for(const p of n){if(p.deletable===!1)continue;const h=a.has(p.id),m=!h&&p.parentId&&i.find(v=>v.id===p.parentId);(h||m)&&i.push(p)}const l=new Set(t.map(p=>p.id)),c=r.filter(p=>p.deletable!==!1),d=TYn(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 uN=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),t_=(e={x:0,y:0},t,n)=>({x:uN(e.x,t[0][0],t[1][0]-(n?.width??0)),y:uN(e.y,t[0][1],t[1][1]-(n?.height??0))});function GOt(e,t,n){const{width:r,height:s}=s0(n),{x:a,y:i}=n.internals.positionAbsolute;return t_(e,[[a,i],[a+r,i+s]],t)}const Y7e=(e,t,n)=>e<t?uN(Math.abs(e-t),1,t)/t:e>n?-uN(Math.abs(e-n),1,t)/t:0,QOt=(e,t,n=15,r=40)=>{const s=Y7e(e.x,r,t.width-r)*n,a=Y7e(e.y,r,t.height-r)*n;return[s,a]},wW=(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)}),jve=({x:e,y:t,width:n,height:r})=>({x:e,y:t,x2:e+n,y2:t+r}),SW=({x:e,y:t,x2:n,y2:r})=>({x:e,y:t,width:n-e,height:r-t}),dN=(e,t=[0,0])=>{const{x:n,y:r}=NOe(e)?e.internals.positionAbsolute:o4(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}},cU=(e,t=[0,0])=>{const{x:n,y:r}=NOe(e)?e.internals.positionAbsolute:o4(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)}},YOt=(e,t)=>SW(wW(jve(e),jve(t))),WM=(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)},K7e=e=>Tg(e.width)&&Tg(e.height)&&Tg(e.x)&&Tg(e.y),Tg=e=>!isNaN(e)&&isFinite(e),AYn=(e,t)=>{},c4=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),u4=({x:e,y:t},[n,r,s],a=!1,i=[1,1])=>{const l={x:(e-n)/s,y:(t-r)/s};return a?c4(l,i):l},uU=({x:e,y:t},[n,r,s])=>({x:e*s+n,y:t*s+r});function xE(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 RYn(e,t,n){if(typeof e=="string"||typeof e=="number"){const r=xE(e,n),s=xE(e,t);return{top:r,right:s,bottom:r,left:s,x:s*2,y:r*2}}if(typeof e=="object"){const r=xE(e.top??e.y??0,n),s=xE(e.bottom??e.y??0,n),a=xE(e.left??e.x??0,t),i=xE(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 PYn(e,t,n,r,s,a){const{x:i,y:l}=uU(e,[t,n,r]),{x:c,y:u}=uU({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 AOe=(e,t,n,r,s,a)=>{const i=RYn(a,t,n),l=(t-i.x)/e.width,c=(n-i.y)/e.height,u=Math.min(l,c),d=uN(u,r,s),f=e.x+e.width/2,p=e.y+e.height/2,h=t/2-f*d,m=n/2-p*d,v=PYn(e,h,m,d,t,n),y={left:Math.min(v.left-i.left,0),top:Math.min(v.top-i.top,0),right:Math.min(v.right-i.right,0),bottom:Math.min(v.bottom-i.bottom,0)};return{x:h-y.left+y.right,y:m-y.top+y.bottom,zoom:d}},ZM=()=>typeof navigator<"u"&&navigator?.userAgent?.indexOf("Mac")>=0;function fN(e){return e!=null&&e!=="parent"}function s0(e){return{width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}}function KOt(e){return(e.measured?.width??e.width??e.initialWidth)!==void 0&&(e.measured?.height??e.height??e.initialHeight)!==void 0}function XOt(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 X7e(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function $Yn(){let e,t;return{promise:new Promise((r,s)=>{e=r,t=s}),resolve:e,reject:t}}function MYn(e){return{...qOt,...e||{}}}function U$(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:r,containerBounds:s}){const{x:a,y:i}=jg(e),l=u4({x:a-(s?.left??0),y:i-(s?.top??0)},r),{x:c,y:u}=n?c4(l,t):l;return{xSnapped:c,ySnapped:u,...l}}const ROe=e=>({width:e.offsetWidth,height:e.offsetHeight}),JOt=e=>e?.getRootNode?.()||window?.document,DYn=["INPUT","SELECT","TEXTAREA"];function e_t(e){const t=e.composedPath?.()?.[0]||e.target;return t?.nodeType!==1?!1:DYn.includes(t.nodeName)||t.hasAttribute("contenteditable")||!!t.closest(".nokey")}const t_t=e=>"clientX"in e,jg=(e,t)=>{const n=t_t(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)}},J7e=(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,...ROe(i)}})};function n_t({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 NF(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function eBe({pos:e,x1:t,y1:n,x2:r,y2:s,c:a}){switch(e){case nr.Left:return[t-NF(t-r,a),n];case nr.Right:return[t+NF(r-t,a),n];case nr.Top:return[t,n-NF(n-s,a)];case nr.Bottom:return[t,n+NF(s-n,a)]}}function POe({sourceX:e,sourceY:t,sourcePosition:n=nr.Bottom,targetX:r,targetY:s,targetPosition:a=nr.Top,curvature:i=.25}){const[l,c]=eBe({pos:n,x1:e,y1:t,x2:r,y2:s,c:i}),[u,d]=eBe({pos:a,x1:r,y1:s,x2:e,y2:t,c:i}),[f,p,h,m]=n_t({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 r_t({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 LYn({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 FYn({sourceNode:e,targetNode:t,width:n,height:r,transform:s}){const a=wW(cU(e),cU(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 WM(i,SW(a))>0}const zYn=({source:e,sourceHandle:t,target:n,targetHandle:r})=>`xy-edge__${e}${t||""}-${n}${r||""}`,BYn=(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)),UYn=(e,t,n={})=>{if(!e.source||!e.target)return t;const r=n.getEdgeId||zYn;let s;return WOt(e)?s={...e}:s={...e,id:r(e)},BYn(s,t)?t:(s.sourceHandle===null&&delete s.sourceHandle,s.targetHandle===null&&delete s.targetHandle,t.concat(s))};function s_t({sourceX:e,sourceY:t,targetX:n,targetY:r}){const[s,a,i,l]=r_t({sourceX:e,sourceY:t,targetX:n,targetY:r});return[`M ${e},${t}L ${n},${r}`,s,a,i,l]}const tBe={[nr.Left]:{x:-1,y:0},[nr.Right]:{x:1,y:0},[nr.Top]:{x:0,y:-1},[nr.Bottom]:{x:0,y:1}},qYn=({source:e,sourcePosition:t=nr.Bottom,target:n})=>t===nr.Left||t===nr.Right?e.x<n.x?{x:1,y:0}:{x:-1,y:0}:e.y<n.y?{x:0,y:1}:{x:0,y:-1},nBe=(e,t)=>Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2));function VYn({source:e,sourcePosition:t=nr.Bottom,target:n,targetPosition:r=nr.Top,center:s,offset:a,stepPosition:i}){const l=tBe[t],c=tBe[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=qYn({source:u,sourcePosition:t,target:d}),p=f.x!==0?"x":"y",h=f[p];let m=[],v,y;const b={x:0,y:0},x={x:0,y:0},[,,S,k]=r_t({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(l[p]*c[p]===-1){p==="x"?(v=s.x??u.x+(d.x-u.x)*i,y=s.y??(u.y+d.y)/2):(v=s.x??(u.x+d.x)/2,y=s.y??u.y+(d.y-u.y)*i);const E=[{x:v,y:u.y},{x:v,y:d.y}],N=[{x:u.x,y},{x:d.x,y}];l[p]===h?m=p==="x"?E:N:m=p==="x"?N:E}else{const E=[{x:u.x,y:d.y}],N=[{x:d.x,y:u.y}];if(p==="x"?m=l.x===h?N:E:m=l.y===h?E:N,t===r){const M=Math.abs(e[p]-n[p]);if(M<=a){const z=Math.min(a-1,a-M);l[p]===h?b[p]=(u[p]>e[p]?-1:1)*z:x[p]=(d[p]>n[p]?-1:1)*z}}if(t!==r){const M=p==="x"?"y":"x",z=l[p]===c[M],H=u[M]>d[M],F=u[M]<d[M];(l[p]===1&&(!z&&H||z&&F)||l[p]!==1&&(!z&&F||z&&H))&&(m=p==="x"?E:N)}const I={x:u.x+b.x,y:u.y+b.y},A={x:d.x+x.x,y:d.y+x.y},R=Math.max(Math.abs(I.x-m[0].x),Math.abs(A.x-m[0].x)),L=Math.max(Math.abs(I.y-m[0].y),Math.abs(A.y-m[0].y));R>=L?(v=(I.x+A.x)/2,y=m[0].y):(v=m[0].x,y=(I.y+A.y)/2)}const _={x:u.x+b.x,y:u.y+b.y},C={x:d.x+x.x,y:d.y+x.y};return[[e,..._.x!==m[0].x||_.y!==m[0].y?[_]:[],...m,...C.x!==m[m.length-1].x||C.y!==m[m.length-1].y?[C]:[],n],v,y,S,k]}function HYn(e,t,n,r){const s=Math.min(nBe(e,t)/2,nBe(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 Nve({sourceX:e,sourceY:t,sourcePosition:n=nr.Bottom,targetX:r,targetY:s,targetPosition:a=nr.Top,borderRadius:i=5,centerX:l,centerY:c,offset:u=20,stepPosition:d=.5}){const[f,p,h,m,v]=VYn({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+=HYn(f[b-1],f[b],f[b+1],i);return y+=`L${f[f.length-1].x} ${f[f.length-1].y}`,[y,p,h,m,v]}function rBe(e){return e&&!!(e.internals.handleBounds||e.handles?.length)&&!!(e.measured.width||e.width||e.initialWidth)}function WYn(e){const{sourceNode:t,targetNode:n}=e;if(!rBe(t)||!rBe(n))return null;const r=t.internals.handleBounds||sBe(t.handles),s=n.internals.handleBounds||sBe(n.handles),a=aBe(r?.source??[],e.sourceHandle),i=aBe(e.connectionMode===cN.Strict?s?.target??[]:(s?.target??[]).concat(s?.source??[]),e.targetHandle);if(!a||!i)return e.onError?.("008",Sy.error008(a?"target":"source",{id:e.id,sourceHandle:e.sourceHandle,targetHandle:e.targetHandle})),null;const l=a?.position||nr.Bottom,c=i?.position||nr.Top,u=n_(t,a,l),d=n_(n,i,c);return{sourceX:u.x,sourceY:u.y,targetX:d.x,targetY:d.y,sourcePosition:l,targetPosition:c}}function sBe(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 n_(e,t,n=nr.Left,r=!1){const s=(t?.x??0)+e.internals.positionAbsolute.x,a=(t?.y??0)+e.internals.positionAbsolute.y,{width:i,height:l}=t??s0(e);if(r)return{x:s+i/2,y:a+l/2};switch(t?.position??n){case nr.Top:return{x:s+i/2,y:a};case nr.Right:return{x:s+i,y:a+l/2};case nr.Bottom:return{x:s+i/2,y:a+l};case nr.Left:return{x:s,y:a+l/2}}}function aBe(e,t){return e&&(t?e.find(n=>n.id===t):e[0])||null}function Ive(e,t){return e?typeof e=="string"?e:`${t?`${t}__`:""}${Object.keys(e).sort().map(r=>`${r}=${e[r]}`).join("&")}`:""}function ZYn(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=Ive(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 a_t=1e3,GYn=10,$Oe={nodeOrigin:[0,0],nodeExtent:qM,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},QYn={...$Oe,checkEquality:!0};function MOe(e,t){const n={...e};for(const r in t)t[r]!==void 0&&(n[r]=t[r]);return n}function YYn(e,t,n){const r=MOe($Oe,n);for(const s of e.values())if(s.parentId)LOe(s,e,t,r);else{const a=o4(s,r.nodeOrigin),i=fN(s.extent)?s.extent:r.nodeExtent,l=t_(a,i,s0(s));s.internals.positionAbsolute=l}}function KYn(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 DOe(e){return e==="manual"}function Ave(e,t,n,r={}){const s=MOe(QYn,r),a={i:0},i=new Map(t),l=s?.elevateNodesOnSelect&&!DOe(s.zIndexMode)?a_t: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=o4(d,s.nodeOrigin),h=fN(d.extent)?d.extent:s.nodeExtent,m=t_(p,h,s0(d));f={...s.defaults,...d,measured:{width:d.measured?.width,height:d.measured?.height},internals:{positionAbsolute:m,handleBounds:KYn(d,f),z:i_t(d,l,s.zIndexMode),userNode:d}},t.set(d.id,f)}(f.measured===void 0||f.measured.width===void 0||f.measured.height===void 0)&&!f.hidden&&(c=!1),d.parentId&&LOe(f,t,n,r,a),u||=d.selected??!1}return{nodesInitialized:c,hasSelectedNodes:u}}function XYn(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 LOe(e,t,n,r,s){const{elevateNodesOnSelect:a,nodeOrigin:i,nodeExtent:l,zIndexMode:c}=MOe($Oe,r),u=e.parentId,d=t.get(u);if(!d){console.warn(`Parent node ${u} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);return}XYn(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*GYn),s&&d.internals.rootParentIndex!==void 0&&(s.i=d.internals.rootParentIndex);const f=a&&!DOe(c)?a_t:0,{x:p,y:h,z:m}=JYn(e,d,i,l,f,c),{positionAbsolute:v}=e.internals,y=p!==v.x||h!==v.y;(y||m!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:y?{x:p,y:h}:v,z:m}})}function i_t(e,t,n){const r=Tg(e.zIndex)?e.zIndex:0;return DOe(n)?r:r+(e.selected?t:0)}function JYn(e,t,n,r,s,a){const{x:i,y:l}=t.internals.positionAbsolute,c=s0(e),u=o4(e,n),d=fN(e.extent)?t_(u,e.extent,c):u;let f=t_({x:i+d.x,y:l+d.y},r,c);e.extent==="parent"&&(f=GOt(f,c,t));const p=i_t(e,s,a),h=t.internals.z??0;return{x:f.x,y:f.y,z:h>=p?h+1:p}}function FOe(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??dN(l),u=YOt(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=s0(l),f=l.origin??r,p=i.x<u.x?Math.round(Math.abs(u.x-i.x)):0,h=i.y<u.y?Math.round(Math.abs(u.y-i.y)):0,m=Math.max(d.width,Math.round(i.width)),v=Math.max(d.height,Math.round(i.height)),y=(m-d.width)*f[0],b=(v-d.height)*f[1];(p>0||h>0||y||b)&&(s.push({id:c,type:"position",position:{x:l.position.x-p+y,y:l.position.y-h+b}}),n.get(c)?.forEach(x=>{e.some(S=>S.id===x.id)||s.push({id:x.id,type:"position",position:{x:x.position.x+p,y:x.position.y+h}})})),(d.width<i.width||d.height<i.height||p||h)&&s.push({id:c,type:"dimensions",setAttributes:!0,dimensions:{width:m+(p?f[0]*p-y:0),height:v+(h?f[1]*h-b:0)}})}),s}function eKn(e,t,n,r,s,a,i){const l=r?.querySelector(".xyflow__viewport");let c=!1;if(!l)return{changes:[],updatedInternals:c};const u=[],d=window.getComputedStyle(l),{m22:f}=new window.DOMMatrixReadOnly(d.transform),p=[];for(const h of e.values()){const m=t.get(h.id);if(!m)continue;if(m.hidden){t.set(m.id,{...m,internals:{...m.internals,handleBounds:void 0}}),c=!0;continue}const v=ROe(h.nodeElement),y=m.measured.width!==v.width||m.measured.height!==v.height;if(!!(v.width&&v.height&&(y||!m.internals.handleBounds||h.force))){const x=h.nodeElement.getBoundingClientRect(),S=fN(m.extent)?m.extent:a;let{positionAbsolute:k}=m.internals;m.parentId&&m.extent==="parent"?k=GOt(k,v,t.get(m.parentId)):S&&(k=t_(k,S,v));const _={...m,measured:v,internals:{...m.internals,positionAbsolute:k,handleBounds:{source:J7e("source",h.nodeElement,x,f,m.id),target:J7e("target",h.nodeElement,x,f,m.id)}}};t.set(m.id,_),m.parentId&&LOe(_,t,n,{nodeOrigin:s,zIndexMode:i}),c=!0,y&&(u.push({id:m.id,type:"dimensions",dimensions:v}),m.expandParent&&m.parentId&&p.push({id:m.id,parentId:m.parentId,rect:dN(_,s)}))}}if(p.length>0){const h=FOe(p,t,n,s);u.push(...h)}return{changes:u,updatedInternals:c}}async function tKn({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 iBe(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 o_t(e,t,n){e.clear(),t.clear();for(const r of n){const{source:s,target:a,sourceHandle:i=null,targetHandle:l=null}=r,c={edgeId:r.id,source:s,target:a,sourceHandle:i,targetHandle:l},u=`${s}-${i}--${a}-${l}`,d=`${a}-${l}--${s}-${i}`;iBe("source",c,d,e,s,i),iBe("target",c,u,e,a,l),t.set(r.id,r)}}function l_t(e,t){if(!e.parentId)return!1;const n=t.get(e.parentId);return n?n.selected?!0:l_t(n,t):!1}function oBe(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 nKn(e,t,n,r){const s=new Map;for(const[a,i]of e)if((i.selected||i.id===r)&&(!i.parentId||!l_t(i,e))&&(i.draggable||t&&typeof i.draggable>"u")){const l=e.get(a);l&&s.set(a,{id:a,position:l.position||{x:0,y:0},distance:{x:n.x-l.internals.positionAbsolute.x,y:n.y-l.internals.positionAbsolute.y},extent:l.extent,parentId:l.parentId,origin:l.origin,expandParent:l.expandParent,internals:{positionAbsolute:l.internals.positionAbsolute||{x:0,y:0}},measured:{width:l.measured.width??0,height:l.measured.height??0}})}return s}function mne({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 rKn({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=c4(a,t);return{x:i.x-a.x,y:i.y-a.y}}function sKn({onNodeMouseDown:e,getStoreItems:t,onDragStart:n,onDrag:r,onDragStop:s}){let a={x:null,y:null},i=0,l=new Map,c=!1,u={x:0,y:0},d=null,f=!1,p=null,h=!1,m=!1,v=null;function y({noDragClassName:x,handleSelector:S,domNode:k,isSelectable:_,nodeId:C,nodeClickDistance:T=0}){p=Ep(k);function E({x:R,y:L}){const{nodeLookup:M,nodeExtent:z,snapGrid:H,snapToGrid:F,nodeOrigin:B,onNodeDrag:V,onSelectionDrag:D,onError:Z,updateNodePositions:U}=t();a={x:R,y:L};let P=!1;const q=l.size>1,G=q&&z?jve(l4(l)):null,K=q&&F?rKn({dragItems:l,snapGrid:H,x:R,y:L}):null;for(const[ne,J]of l){if(!M.has(ne))continue;let ee={x:R-J.distance.x,y:L-J.distance.y};F&&(ee=K?{x:Math.round(ee.x+K.x),y:Math.round(ee.y+K.y)}:c4(ee,H));let re=null;if(q&&z&&!J.extent&&G){const{positionAbsolute:te}=J.internals,se=te.x-G.x+z[0][0],fe=te.x+J.measured.width-G.x2+z[1][0],ce=te.y-G.y+z[0][1],we=te.y+J.measured.height-G.y2+z[1][1];re=[[se,ce],[fe,we]]}const{position:le,positionAbsolute:X}=ZOt({nodeId:ne,nextPosition:ee,nodeLookup:M,nodeExtent:re||z,nodeOrigin:B,onError:Z});P=P||J.position.x!==le.x||J.position.y!==le.y,J.position=le,J.internals.positionAbsolute=X}if(m=m||P,!!P&&(U(l,!0),v&&(r||V||!C&&D))){const[ne,J]=mne({nodeId:C,dragItems:l,nodeLookup:M});r?.(v,l,ne,J),V?.(v,ne,J),C||D?.(v,J)}}async function N(){if(!d)return;const{transform:R,panBy:L,autoPanSpeed:M,autoPanOnNodeDrag:z}=t();if(!z){c=!1,cancelAnimationFrame(i);return}const[H,F]=QOt(u,d,M);(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:M,nodesDraggable:z,transform:H,snapGrid:F,snapToGrid:B,selectNodesOnDrag:V,onNodeDragStart:D,onSelectionDragStart:Z,unselectNodesAndEdges:U}=t();f=!0,(!V||!_)&&!M&&C&&(L.get(C)?.selected||U()),_&&V&&C&&e?.(C);const P=U$(R.sourceEvent,{transform:H,snapGrid:F,snapToGrid:B,containerBounds:d});if(a=P,l=nKn(L,z,P,C),l.size>0&&(n||D||!C&&Z)){const[q,G]=mne({nodeId:C,dragItems:l,nodeLookup:L});n?.(R.sourceEvent,l,q,G),D?.(R.sourceEvent,q,G),C||Z?.(R.sourceEvent,G)}}const A=COt().clickDistance(T).on("start",R=>{const{domNode:L,nodeDragThreshold:M,transform:z,snapGrid:H,snapToGrid:F}=t();d=L?.getBoundingClientRect()||null,h=!1,m=!1,v=R.sourceEvent,M===0&&I(R),a=U$(R.sourceEvent,{transform:z,snapGrid:H,snapToGrid:F,containerBounds:d}),u=jg(R.sourceEvent,d)}).on("drag",R=>{const{autoPanOnNodeDrag:L,transform:M,snapGrid:z,snapToGrid:H,nodeDragThreshold:F,nodeLookup:B}=t(),V=U$(R.sourceEvent,{transform:M,snapGrid:z,snapToGrid:H,containerBounds:d});if(v=R.sourceEvent,(R.sourceEvent.type==="touchmove"&&R.sourceEvent.touches.length>1||C&&!B.has(C))&&(h=!0),!h){if(!c&&L&&f&&(c=!0,N()),!f){const D=jg(R.sourceEvent,d),Z=D.x-u.x,U=D.y-u.y;Math.sqrt(Z*Z+U*U)>F&&I(R)}(a.x!==V.xSnapped||a.y!==V.ySnapped)&&l&&f&&(u=jg(R.sourceEvent,d),E(V))}}).on("end",R=>{if(!(!f||h)&&(c=!1,f=!1,cancelAnimationFrame(i),l.size>0)){const{nodeLookup:L,updateNodePositions:M,onNodeDragStop:z,onSelectionDragStop:H}=t();if(m&&(M(l,!1),m=!1),s||z||!C&&H){const[F,B]=mne({nodeId:C,dragItems:l,nodeLookup:L,dragging:!1});s?.(R.sourceEvent,l,F,B),z?.(R.sourceEvent,F,B),C||H?.(R.sourceEvent,B)}}}).filter(R=>{const L=R.target;return!R.button&&(!x||!oBe(L,`.${x}`,k))&&(!S||oBe(L,S,k))});p.call(A)}function b(){p?.on(".drag",null)}return{update:y,destroy:b}}function aKn(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())WM(s,dN(a))>0&&r.push(a);return r}const iKn=250;function oKn(e,t,n,r){let s=[],a=1/0;const i=aKn(e,n,t+iKn);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}=n_(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 c_t(e,t,n,r,s,a=!1){const i=r.get(e);if(!i)return null;const l=s==="strict"?i.internals.handleBounds?.[t]:[...i.internals.handleBounds?.source??[],...i.internals.handleBounds?.target??[]],c=(n?l?.find(u=>u.id===n):l?.[0])??null;return c&&a?{...c,...n_(i,c,c.position,!0)}:c}function u_t(e,t){return e||(t?.classList.contains("target")?"target":t?.classList.contains("source")?"source":null)}function lKn(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}const d_t=()=>!0;function cKn(e,{connectionMode:t,connectionRadius:n,handleId:r,nodeId:s,edgeUpdaterType:a,isTarget:i,domNode:l,nodeLookup:c,lib:u,autoPanOnConnect:d,flowId:f,panBy:p,cancelConnection:h,onConnectStart:m,onConnect:v,onConnectEnd:y,isValidConnection:b=d_t,onReconnectEnd:x,updateConnection:S,getTransform:k,getFromHandle:_,autoPanSpeed:C,dragThreshold:T=1,handleDomNode:E}){const N=JOt(e.target);let I=0,A;const{x:R,y:L}=jg(e),M=u_t(a,E),z=l?.getBoundingClientRect();let H=!1;if(!z||!M)return;const F=c_t(s,M,r,c,t);if(!F)return;let B=jg(e,z),V=!1,D=null,Z=!1,U=null;function P(){if(!d||!z)return;const[le,X]=QOt(B,z,C);p({x:le,y:X}),I=requestAnimationFrame(P)}const q={...F,nodeId:s,type:M,position:F.position},G=c.get(s);let ne={inProgress:!0,isValid:null,from:n_(G,q,nr.Left,!0),fromHandle:q,fromPosition:q.position,fromNode:G,to:B,toHandle:null,toPosition:Q7e[q.position],toNode:null,pointer:B};function J(){H=!0,S(ne),m?.(e,{nodeId:s,handleId:r,handleType:M})}T===0&&J();function ee(le){if(!H){const{x:we,y:pe}=jg(le),ke=we-R,Ne=pe-L;if(!(ke*ke+Ne*Ne>T*T))return;J()}if(!_()||!q){re(le);return}const X=k();B=jg(le,z),A=oKn(u4(B,X,!1,[1,1]),n,c,q),V||(P(),V=!0);const te=f_t(le,{handle:A,connectionMode:t,fromNodeId:s,fromHandleId:r,fromType:i?"target":"source",isValidConnection:b,doc:N,lib:u,flowId:f,nodeLookup:c});U=te.handleDomNode,D=te.connection,Z=lKn(!!A,te.isValid);const se=c.get(s),fe=se?n_(se,q,nr.Left,!0):ne.from,ce={...ne,from:fe,isValid:Z,to:te.toHandle&&Z?uU({x:te.toHandle.x,y:te.toHandle.y},X):B,toHandle:te.toHandle,toPosition:Z&&te.toHandle?te.toHandle.position:Q7e[q.position],toNode:te.toHandle?c.get(te.toHandle.nodeId):null,pointer:B};S(ce),ne=ce}function re(le){if(!("touches"in le&&le.touches.length>0)){if(H){(A||U)&&D&&Z&&v?.(D);const{inProgress:X,...te}=ne,se={...te,toPosition:ne.toHandle?ne.toPosition:null};y?.(le,se),a&&x?.(le,se)}h(),cancelAnimationFrame(I),V=!1,Z=!1,D=null,U=null,N.removeEventListener("mousemove",ee),N.removeEventListener("mouseup",re),N.removeEventListener("touchmove",ee),N.removeEventListener("touchend",re)}}N.addEventListener("mousemove",ee),N.addEventListener("mouseup",re),N.addEventListener("touchmove",ee),N.addEventListener("touchend",re)}function f_t(e,{handle:t,connectionMode:n,fromNodeId:r,fromHandleId:s,fromType:a,doc:i,lib:l,flowId:c,isValidConnection:u=d_t,nodeLookup:d}){const f=a==="target",p=t?i.querySelector(`.${l}-flow__handle[data-id="${c}-${t?.nodeId}-${t?.id}-${t?.type}"]`):null,{x:h,y:m}=jg(e),v=i.elementFromPoint(h,m),y=v?.classList.contains(`${l}-flow__handle`)?v:p,b={handleDomNode:y,isValid:!1,connection:null,toHandle:null};if(y){const x=u_t(void 0,y),S=y.getAttribute("data-nodeid"),k=y.getAttribute("data-handleid"),_=y.classList.contains("connectable"),C=y.classList.contains("connectableend");if(!S||!x)return b;const T={source:f?S:r,sourceHandle:f?k:s,target:f?r:S,targetHandle:f?s:k};b.connection=T;const N=_&&C&&(n===cN.Strict?f&&x==="source"||!f&&x==="target":S!==r||k!==s);b.isValid=N&&u(T),b.toHandle=c_t(S,x,k,d,n,!0)}return b}const Rve={onPointerDown:cKn,isValid:f_t};function uKn({domNode:e,panZoom:t,getTransform:n,getViewScale:r}){const s=Ep(e);function a({translateExtent:l,width:c,height:u,zoomStep:d=1,pannable:f=!0,zoomable:p=!0,inversePan:h=!1}){const m=S=>{if(S.sourceEvent.type!=="wheel"||!t)return;const k=n(),_=S.sourceEvent.ctrlKey&&ZM()?10:1,C=-S.sourceEvent.deltaY*(S.sourceEvent.deltaMode===1?.05:S.sourceEvent.deltaMode?1:.002)*d,T=k[2]*Math.pow(2,C*_);t.scaleTo(T)};let v=[0,0];const y=S=>{(S.sourceEvent.type==="mousedown"||S.sourceEvent.type==="touchstart")&&(v=[S.sourceEvent.clientX??S.sourceEvent.touches[0].clientX,S.sourceEvent.clientY??S.sourceEvent.touches[0].clientY])},b=S=>{const k=n();if(S.sourceEvent.type!=="mousemove"&&S.sourceEvent.type!=="touchmove"||!t)return;const _=[S.sourceEvent.clientX??S.sourceEvent.touches[0].clientX,S.sourceEvent.clientY??S.sourceEvent.touches[0].clientY],C=[_[0]-v[0],_[1]-v[1]];v=_;const T=r()*Math.max(k[2],Math.log(k[2]))*(h?-1:1),E={x:k[0]-C[0]*T,y:k[1]-C[1]*T},N=[[0,0],[c,u]];t.setViewportConstrained({x:E.x,y:E.y,zoom:k[2]},N,l)},x=BOt().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:mg}}const kW=e=>({x:e.x,y:e.y,zoom:e.k}),gne=({x:e,y:t,zoom:n})=>xW.translate(e,t).scale(n),_T=(e,t)=>e.target.closest(`.${t}`),p_t=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),dKn=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,vne=(e,t=0,n=dKn,r=()=>{})=>{const s=typeof t=="number"&&t>0;return s||r(),s?e.transition().duration(t).ease(n).on("end",r):e},h_t=e=>{const t=e.ctrlKey&&ZM()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function fKn({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:r,panOnScrollMode:s,panOnScrollSpeed:a,zoomOnPinch:i,onPanZoomStart:l,onPanZoom:c,onPanZoomEnd:u}){return d=>{if(_T(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=mg(d),b=h_t(d),x=f*Math.pow(2,b);r.scaleTo(n,x,y,d);return}const p=d.deltaMode===1?20:1;let h=s===oO.Vertical?0:d.deltaX*p,m=s===oO.Horizontal?0:d.deltaY*p;!ZM()&&d.shiftKey&&s!==oO.Vertical&&(h=d.deltaY*p,m=0),r.translateBy(n,-(h/f)*a,-(m/f)*a,{internal:!0});const v=kW(n.property("__zoom"));clearTimeout(e.panScrollTimeout),e.isPanScrolling?(c?.(d,v),e.panScrollTimeout=setTimeout(()=>{u?.(d,v),e.isPanScrolling=!1},150)):(e.isPanScrolling=!0,l?.(d,v))}}function pKn({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(r,s){const a=r.type==="wheel",i=!t&&a&&!r.ctrlKey,l=_T(r,e);if(r.ctrlKey&&a&&l&&r.preventDefault(),i||l)return null;r.preventDefault(),n.call(this,r,s)}}function hKn({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return r=>{if(r.sourceEvent?.internal)return;const s=kW(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 mKn({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:r,onPanZoom:s}){return a=>{e.usedRightMouseButton=!!(n&&p_t(t,e.mouseButton??0)),a.sourceEvent?.sync||r([a.transform.x,a.transform.y,a.transform.k]),s&&!a.sourceEvent?.internal&&s?.(a.sourceEvent,kW(a.transform))}}function gKn({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:r,onPanZoomEnd:s,onPaneContextMenu:a}){return i=>{if(!i.sourceEvent?.internal&&(e.isZoomingOrPanning=!1,a&&p_t(t,e.mouseButton??0)&&!e.usedRightMouseButton&&i.sourceEvent&&a(i.sourceEvent),e.usedRightMouseButton=!1,r(!1),s)){const l=kW(i.transform);e.prevViewport=l,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{s?.(i.sourceEvent,l)},n?150:0)}}}function vKn({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"&&(_T(f,`${u}-flow__node`)||_T(f,`${u}-flow__edge`)))return!0;if(!r&&!p&&!s&&!a&&!n||i||d&&!m||_T(f,l)&&m||_T(f,c)&&(!m||s&&m&&!e)||!n&&f.ctrlKey&&m)return!1;if(!n&&f.type==="touchstart"&&f.touches?.length>1)return f.preventDefault(),!1;if(!p&&!s&&!h&&m||!r&&(f.type==="mousedown"||f.type==="touchstart")||Array.isArray(r)&&!r.includes(f.button)&&f.type==="mousedown")return!1;const v=Array.isArray(r)&&r.includes(f.button)||!f.button||f.button<=1;return(!f.ctrlKey||m)&&v}}function yKn({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=BOt().scaleExtent([t,n]).translateExtent(r),p=Ep(e).call(f);x({x:s.x,y:s.y,zoom:uN(s.zoom,t,n)},[[0,0],[d.width,d.height]],r);const h=p.on("wheel.zoom"),m=p.on("dblclick.zoom");f.wheelDelta(h_t);function v(A,R){return p?new Promise(L=>{f?.interpolate(R?.interpolate==="linear"?mx:n9).transform(vne(p,R?.duration,R?.ease,()=>L(!0)),A)}):Promise.resolve(!1)}function y({noWheelClassName:A,noPanClassName:R,onPaneContextMenu:L,userSelectionActive:M,panOnScroll:z,panOnDrag:H,panOnScrollMode:F,panOnScrollSpeed:B,preventScrolling:V,zoomOnPinch:D,zoomOnScroll:Z,zoomOnDoubleClick:U,zoomActivationKeyPressed:P,lib:q,onTransformChange:G,connectionInProgress:K,paneClickDistance:ne,selectionOnDrag:J}){M&&!u.isZoomingOrPanning&&b();const ee=z&&!P&&!M;f.clickDistance(J?1/0:!Tg(ne)||ne<0?0:ne);const re=ee?fKn({zoomPanValues:u,noWheelClassName:A,d3Selection:p,d3Zoom:f,panOnScrollMode:F,panOnScrollSpeed:B,zoomOnPinch:D,onPanZoomStart:i,onPanZoom:a,onPanZoomEnd:l}):pKn({noWheelClassName:A,preventScrolling:V,d3ZoomHandler:h});if(p.on("wheel.zoom",re,{passive:!1}),!M){const X=hKn({zoomPanValues:u,onDraggingChange:c,onPanZoomStart:i});f.on("start",X);const te=mKn({zoomPanValues:u,panOnDrag:H,onPaneContextMenu:!!L,onPanZoom:a,onTransformChange:G});f.on("zoom",te);const se=gKn({zoomPanValues:u,panOnDrag:H,panOnScroll:z,onPaneContextMenu:L,onPanZoomEnd:l,onDraggingChange:c});f.on("end",se)}const le=vKn({zoomActivationKeyPressed:P,panOnDrag:H,zoomOnScroll:Z,panOnScroll:z,zoomOnDoubleClick:U,zoomOnPinch:D,userSelectionActive:M,noPanClassName:R,noWheelClassName:A,lib:q,connectionInProgress:K});f.filter(le),U?p.on("dblclick.zoom",m):p.on("dblclick.zoom",null)}function b(){f.on("zoom",null)}async function x(A,R,L){const M=gne(A),z=f?.constrain()(M,R,L);return z&&await v(z),new Promise(H=>H(z))}async function S(A,R){const L=gne(A);return await v(L,R),new Promise(M=>M(L))}function k(A){if(p){const R=gne(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?zOt(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"?mx:n9).scaleTo(vne(p,R?.duration,R?.ease,()=>L(!0)),A)}):Promise.resolve(!1)}function T(A,R){return p?new Promise(L=>{f?.interpolate(R?.interpolate==="linear"?mx:n9).scaleBy(vne(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=!Tg(A)||A<0?0:A;f?.clickDistance(R)}return{update:y,destroy:b,setViewport:S,setViewportConstrained:x,getViewport:_,scaleTo:C,scaleBy:T,setScaleExtent:E,setTranslateExtent:N,syncViewport:k,setClickDistance:I}}var pN;(function(e){e.Line="line",e.Handle="handle"})(pN||(pN={}));function bKn({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 lBe(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 K0(e,t){return Math.max(0,t-e)}function X0(e,t){return Math.max(0,e-t)}function IF(e,t,n){return Math.max(0,t-e,e-n)}function cBe(e,t){return e?!t:t}function xKn(e,t,n,r,s,a,i,l){let{affectsX:c,affectsY:u}=t;const{isHorizontal:d,isVertical:f}=t,p=d&&f,{xSnapped:h,ySnapped:m}=n,{minWidth:v,maxWidth:y,minHeight:b,maxHeight:x}=r,{x:S,y:k,width:_,height:C,aspectRatio:T}=e;let E=Math.floor(d?h-e.pointerX:0),N=Math.floor(f?m-e.pointerY:0);const I=_+(c?-E:E),A=C+(u?-N:N),R=-a[0]*_,L=-a[1]*C;let M=IF(I,v,y),z=IF(A,b,x);if(i){let B=0,V=0;c&&E<0?B=K0(S+E+R,i[0][0]):!c&&E>0&&(B=X0(S+I+R,i[1][0])),u&&N<0?V=K0(k+N+L,i[0][1]):!u&&N>0&&(V=X0(k+A+L,i[1][1])),M=Math.max(M,B),z=Math.max(z,V)}if(l){let B=0,V=0;c&&E>0?B=X0(S+E,l[0][0]):!c&&E<0&&(B=K0(S+I,l[1][0])),u&&N>0?V=X0(k+N,l[0][1]):!u&&N<0&&(V=K0(k+A,l[1][1])),M=Math.max(M,B),z=Math.max(z,V)}if(s){if(d){const B=IF(I/T,b,x)*T;if(M=Math.max(M,B),i){let V=0;!c&&!u||c&&!u&&p?V=X0(k+L+I/T,i[1][1])*T:V=K0(k+L+(c?E:-E)/T,i[0][1])*T,M=Math.max(M,V)}if(l){let V=0;!c&&!u||c&&!u&&p?V=K0(k+I/T,l[1][1])*T:V=X0(k+(c?E:-E)/T,l[0][1])*T,M=Math.max(M,V)}}if(f){const B=IF(A*T,v,y)/T;if(z=Math.max(z,B),i){let V=0;!c&&!u||u&&!c&&p?V=X0(S+A*T+R,i[1][0])/T:V=K0(S+(u?N:-N)*T+R,i[0][0])/T,z=Math.max(z,V)}if(l){let V=0;!c&&!u||u&&!c&&p?V=K0(S+A*T,l[1][0])/T:V=X0(S+(u?N:-N)*T,l[0][0])/T,z=Math.max(z,V)}}}N=N+(N<0?z:-z),E=E+(E<0?M:-M),s&&(p?I>A*T?N=(cBe(c,u)?-E:E)/T:E=(cBe(c,u)?-N:N)*T:d?(N=E/T,u=c):(E=N*T,c=u));const H=c?S+E:S,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 m_t={width:0,height:0,x:0,y:0},wKn={...m_t,pointerX:0,pointerY:0,aspectRatio:1};function SKn(e){return[[0,0],[e.measured.width,e.measured.height]]}function kKn(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 OKn({domNode:e,nodeId:t,getStoreItems:n,onChange:r,onEnd:s}){const a=Ep(e);let i={controlDirection:lBe("bottom-right"),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};function l({controlPosition:u,boundaries:d,keepAspectRatio:f,resizeDirection:p,onResizeStart:h,onResize:m,onResizeEnd:v,shouldResize:y}){let b={...m_t},x={...wKn};i={boundaries:d,resizeDirection:p,keepAspectRatio:f,controlDirection:lBe(u)};let S,k=null,_=[],C,T,E,N=!1;const I=COt().on("start",A=>{const{nodeLookup:R,transform:L,snapGrid:M,snapToGrid:z,nodeOrigin:H,paneDomNode:F}=n();if(S=R.get(t),!S)return;k=F?.getBoundingClientRect()??null;const{xSnapped:B,ySnapped:V}=U$(A.sourceEvent,{transform:L,snapGrid:M,snapToGrid:z,containerBounds:k});b={width:S.measured.width??0,height:S.measured.height??0,x:S.position.x??0,y:S.position.y??0},x={...b,pointerX:B,pointerY:V,aspectRatio:b.width/b.height},C=void 0,S.parentId&&(S.extent==="parent"||S.expandParent)&&(C=R.get(S.parentId),T=C&&S.extent==="parent"?SKn(C):void 0),_=[],E=void 0;for(const[D,Z]of R)if(Z.parentId===t&&(_.push({id:D,position:{...Z.position},extent:Z.extent}),Z.extent==="parent"||Z.expandParent)){const U=kKn(Z,S,Z.origin??H);E?E=[[Math.min(U[0][0],E[0][0]),Math.min(U[0][1],E[0][1])],[Math.max(U[1][0],E[1][0]),Math.max(U[1][1],E[1][1])]]:E=U}h?.(A,{...b})}).on("drag",A=>{const{transform:R,snapGrid:L,snapToGrid:M,nodeOrigin:z}=n(),H=U$(A.sourceEvent,{transform:R,snapGrid:L,snapToGrid:M,containerBounds:k}),F=[];if(!S)return;const{x:B,y:V,width:D,height:Z}=b,U={},P=S.origin??z,{width:q,height:G,x:K,y:ne}=xKn(x,i.controlDirection,H,i.boundaries,i.keepAspectRatio,P,T,E),J=q!==D,ee=G!==Z,re=K!==B&&J,le=ne!==V&ⅇif(!re&&!le&&!J&&!ee)return;if((re||le||P[0]===1||P[1]===1)&&(U.x=re?K:b.x,U.y=le?ne:b.y,b.x=U.x,b.y=U.y,_.length>0)){const fe=K-B,ce=ne-V;for(const we of _)we.position={x:we.position.x-fe+P[0]*(q-D),y:we.position.y-ce+P[1]*(G-Z)},F.push(we)}if((J||ee)&&(U.width=J&&(!i.resizeDirection||i.resizeDirection==="horizontal")?q:b.width,U.height=ee&&(!i.resizeDirection||i.resizeDirection==="vertical")?G:b.height,b.width=U.width,b.height=U.height),C&&S.expandParent){const fe=P[0]*(U.width??0);U.x&&U.x<fe&&(b.x=fe,x.x=x.x-(U.x-fe));const ce=P[1]*(U.height??0);U.y&&U.y<ce&&(b.y=ce,x.y=x.y-(U.y-ce))}const X=bKn({width:b.width,prevWidth:D,height:b.height,prevHeight:Z,affectsX:i.controlDirection.affectsX,affectsY:i.controlDirection.affectsY}),te={...b,direction:X};y?.(A,te)!==!1&&(N=!0,m?.(A,te),r(U,F))}).on("end",A=>{N&&(v?.(A,{...b}),s?.({...b}),N=!1)});a.call(I)}function c(){a.on(".drag",null)}return{update:l,destroy:c}}const _Kn={},uBe=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:()=>{(_Kn?"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},CKn=e=>e?uBe(e):uBe,{useDebugValue:EKn}=Fe,{useSyncExternalStoreWithSelector:TKn}=Xjn,jKn=e=>e;function g_t(e,t=jKn,n){const r=TKn(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return EKn(r),r}const dBe=(e,t)=>{const n=CKn(e),r=(s,a=t)=>g_t(n,s,a);return Object.assign(r,n),r},NKn=(e,t)=>e?dBe(e,t):dBe;function oo(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 OW=g.createContext(null),IKn=OW.Provider,v_t=Sy.error001();function Ws(e,t){const n=g.useContext(OW);if(n===null)throw new Error(v_t);return g_t(n,e,t)}function To(){const e=g.useContext(OW);if(e===null)throw new Error(v_t);return g.useMemo(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}const fBe={display:"none"},AKn={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},y_t="react-flow__node-desc",b_t="react-flow__edge-desc",RKn="react-flow__aria-live",PKn=e=>e.ariaLiveMessage,$Kn=e=>e.ariaLabelConfig;function MKn({rfId:e}){const t=Ws(PKn);return o.jsx("div",{id:`${RKn}-${e}`,"aria-live":"assertive","aria-atomic":"true",style:AKn,children:t})}function DKn({rfId:e,disableKeyboardA11y:t}){const n=Ws($Kn);return o.jsxs(o.Fragment,{children:[o.jsx("div",{id:`${y_t}-${e}`,style:fBe,children:t?n["node.a11yDescription.default"]:n["node.a11yDescription.keyboardDisabled"]}),o.jsx("div",{id:`${b_t}-${e}`,style:fBe,children:n["edge.a11yDescription.default"]}),!t&&o.jsx(MKn,{rfId:e})]})}const d4=g.forwardRef(({position:e="top-left",children:t,className:n,style:r,...s},a)=>{const i=`${e}`.split("-");return o.jsx("div",{className:Gl(["react-flow__panel",n,...i]),style:r,ref:a,...s,children:t})});d4.displayName="Panel";function LKn({proOptions:e,position:t="bottom-right"}){return e?.hideAttribution?null:o.jsx(d4,{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 FKn=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}},AF=e=>e.id;function zKn(e,t){return oo(e.selectedNodes.map(AF),t.selectedNodes.map(AF))&&oo(e.selectedEdges.map(AF),t.selectedEdges.map(AF))}function BKn({onSelectionChange:e}){const t=To(),{selectedNodes:n,selectedEdges:r}=Ws(FKn,zKn);return g.useEffect(()=>{const s={nodes:n,edges:r};e?.(s),t.getState().onSelectionChangeHandlers.forEach(a=>a(s))},[n,r,e]),null}const UKn=e=>!!e.onSelectionChangeHandlers;function qKn({onSelectionChange:e}){const t=Ws(UKn);return e||t?o.jsx(BKn,{onSelectionChange:e}):null}const Pve=typeof window<"u"?g.useLayoutEffect:g.useEffect,x_t=[0,0],VKn={x:0,y:0,zoom:1},HKn=["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"],pBe=[...HKn,"rfId"],WKn=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}),hBe={translateExtent:qM,nodeOrigin:x_t,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:"nopan",rfId:"1"};function ZKn(e){const{setNodes:t,setEdges:n,setMinZoom:r,setMaxZoom:s,setTranslateExtent:a,setNodeExtent:i,reset:l,setDefaultNodesAndEdges:c}=Ws(WKn,oo),u=To();Pve(()=>(c(e.defaultNodes,e.defaultEdges),()=>{d.current=hBe,l()}),[]);const d=g.useRef(hBe);return Pve(()=>{for(const f of pBe){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:MYn(p)}):f==="fitView"?u.setState({fitViewQueued:p}):f==="fitViewOptions"?u.setState({fitViewOptions:p}):u.setState({[f]:p})))}d.current=e},pBe.map(f=>e[f])),null}function mBe(){return typeof window>"u"||!window.matchMedia?null:window.matchMedia("(prefers-color-scheme: dark)")}function GKn(e){const[t,n]=g.useState(e==="system"?null:e);return g.useEffect(()=>{if(e!=="system"){n(e);return}const r=mBe(),s=()=>n(r?.matches?"dark":"light");return s(),r?.addEventListener("change",s),()=>{r?.removeEventListener("change",s)}},[e]),t!==null?t:mBe()?.matches?"dark":"light"}const gBe=typeof document<"u"?document:null;function GM(e=null,t={target:gBe,actInsideInputWithModifier:!0}){const[n,r]=g.useState(!1),s=g.useRef(!1),a=g.useRef(new Set([])),[i,l]=g.useMemo(()=>{if(e!==null){const u=(Array.isArray(e)?e:[e]).filter(f=>typeof f=="string").map(f=>f.replace("+",`
|
|
234
|
+
`:r=="r"?"\r":r=="t"?" ":"\\")}eq(t){return this.search==t.search&&this.replace==t.replace&&this.caseSensitive==t.caseSensitive&&this.regexp==t.regexp&&this.wholeWord==t.wholeWord&&this.test==t.test}create(){return this.regexp?new GVn(this):new HVn(this)}getCursor(t,n=0,r){let s=t.doc?t:ms.create({doc:t});return r==null&&(r=s.doc.length),this.regexp?sT(this,s,n,r):rT(this,s,n,r)}}class Qkt{constructor(t){this.spec=t}}function qVn(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 rT(e,t,n,r){let s;return e.wholeWord&&(s=VVn(t.doc,t.charCategorizer(t.selection.main.head))),e.test&&(s=qVn(e.test,t,s)),new $x(t.doc,e.unquoted,n,r,e.caseSensitive?void 0:a=>a.toLowerCase(),s)}function VVn(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(KB(s,n-a))!=wo.Word||t(XB(s,n-a))!=wo.Word)&&(t(XB(s,r-a))!=wo.Word||t(KB(s,r-a))!=wo.Word))}class HVn extends Qkt{constructor(t){super(t)}nextMatch(t,n,r){let s=rT(this.spec,t,r,t.doc.length).nextOverlapping();if(s.done){let a=Math.min(t.doc.length,n+this.spec.unquoted.length);s=rT(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=rT(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=rT(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=rT(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 WVn(e,t,n){return(r,s,a)=>(!n||n(r,s,a))&&e(a[0],t,r,s)}function sT(e,t,n,r){let s;return e.wholeWord&&(s=ZVn(t.charCategorizer(t.selection.main.head))),e.test&&(s=WVn(e.test,t,s)),new Wkt(t.doc,e.search,{ignoreCase:!e.caseSensitive,test:s},n,r)}function KB(e,t){return e.slice(Rc(e,t,!1),t)}function XB(e,t){return e.slice(t,Rc(e,t))}function ZVn(e){return(t,n,r)=>!r[0].length||(e(KB(r.input,r.index))!=wo.Word||e(XB(r.input,r.index))!=wo.Word)&&(e(XB(r.input,r.index+r[0].length))!=wo.Word||e(KB(r.input,r.index+r[0].length))!=wo.Word)}class GVn extends Qkt{nextMatch(t,n,r){let s=sT(this.spec,t,r,t.doc.length).next();return s.done&&(s=sT(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=sT(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=sT(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=sT(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 MM=pr.define(),vOe=pr.define(),Qw=bl.define({create(e){return new pte(bve(e).create(),null)},update(e,t){for(let n of t.effects)n.is(MM)?e=new pte(n.value.create(),e.panel):n.is(vOe)&&(e=new pte(e.query,n.value?yOe:null));return e},provide:e=>CM.from(e,t=>t.panel)});class pte{constructor(t,n){this.query=t,this.panel=n}}const QVn=jn.mark({class:"cm-searchMatch"}),YVn=jn.mark({class:"cm-searchMatch cm-searchMatch-selected"}),KVn=_o.fromClass(class{constructor(e){this.view=e,this.decorations=this.highlight(e.state.field(Qw))}update(e){let t=e.state.field(Qw);(t!=e.startState.field(Qw)||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 Wd;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?YVn:QVn)})}return r.finish()}},{decorations:e=>e.decorations});function s4(e){return t=>{let n=t.state.field(Qw,!1);return n&&n.query.spec.valid?e(t,n):Xkt(t)}}const JB=s4((e,{query:t})=>{let{to:n}=e.state.selection.main,r=t.nextMatch(e.state,n,n);if(!r)return!1;let s=St.single(r.from,r.to),a=e.state.facet(II);return e.dispatch({selection:s,effects:[bOe(e,r),a.scrollToMatch(s.main,e)],userEvent:"select.search"}),Kkt(e),!0}),eU=s4((e,{query:t})=>{let{state:n}=e,{from:r}=n.selection.main,s=t.prevMatch(n,r,r);if(!s)return!1;let a=St.single(s.from,s.to),i=e.state.facet(II);return e.dispatch({selection:a,effects:[bOe(e,s),i.scrollToMatch(a.main,e)],userEvent:"select.search"}),Kkt(e),!0}),XVn=s4((e,{query:t})=>{let n=t.matchAll(e.state,1e3);return!n||!n.length?!1:(e.dispatch({selection:St.create(n.map(r=>St.range(r.from,r.to))),userEvent:"select.search.matches"}),!0)}),JVn=({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 $x(e.doc,e.sliceDoc(r,s));!l.next().done;){if(a.length>1e3)return!1;l.value.from==r&&(i=a.length),a.push(St.range(l.value.from,l.value.to))}return t(e.update({selection:St.create(a,i),userEvent:"select.search.matches"})),!0},k9e=s4((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(Pt.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=St.single(i.from,i.to).map(f),d.push(bOe(e,i)),d.push(n.facet(II).scrollToMatch(c.main,e))),e.dispatch({changes:f,selection:c,effects:d,userEvent:"input.replace"}),!0}),eHn=s4((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:Pt.announce.of(r),userEvent:"input.replace.all"}),!0});function yOe(e){return e.state.facet(II).createPanel(e)}function bve(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(II);return new Gkt({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 Ykt(e){let t=Pke(e,yOe);return t&&t.dom.querySelector("[main-field]")}function Kkt(e){let t=Ykt(e);t&&t==e.root.activeElement&&t.select()}const Xkt=e=>{let t=e.state.field(Qw,!1);if(t&&t.panel){let n=Ykt(e);if(n&&n!=e.root.activeElement){let r=bve(e.state,t.query.spec);r.valid&&e.dispatch({effects:MM.of(r)}),n.focus(),n.select()}}else e.dispatch({effects:[vOe.of(!0),t?MM.of(bve(e.state,t.query.spec)):pr.appendConfig.of(sHn)]});return!0},Jkt=e=>{let t=e.state.field(Qw,!1);if(!t||!t.panel)return!1;let n=Pke(e,yOe);return n&&n.dom.contains(e.root.activeElement)&&e.focus(),e.dispatch({effects:vOe.of(!1)}),!0},tHn=[{key:"Mod-f",run:Xkt,scope:"editor search-panel"},{key:"F3",run:JB,shift:eU,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:JB,shift:eU,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:Jkt,scope:"editor search-panel"},{key:"Mod-Shift-l",run:JVn},{key:"Mod-Alt-g",run:IVn},{key:"Mod-d",run:UVn,preventDefault:!0}];class nHn{constructor(t){this.view=t;let n=this.query=t.state.field(Qw).query.spec;this.commit=this.commit.bind(this),this.searchField=fi("input",{value:n.search,placeholder:dp(t,"Find"),"aria-label":dp(t,"Find"),class:"cm-textfield",name:"search",form:"","main-field":"true",onchange:this.commit,onkeyup:this.commit}),this.replaceField=fi("input",{value:n.replace,placeholder:dp(t,"Replace"),"aria-label":dp(t,"Replace"),class:"cm-textfield",name:"replace",form:"",onchange:this.commit,onkeyup:this.commit}),this.caseField=fi("input",{type:"checkbox",name:"case",form:"",checked:n.caseSensitive,onchange:this.commit}),this.reField=fi("input",{type:"checkbox",name:"re",form:"",checked:n.regexp,onchange:this.commit}),this.wordField=fi("input",{type:"checkbox",name:"word",form:"",checked:n.wholeWord,onchange:this.commit});function r(s,a,i){return fi("button",{class:"cm-button",name:s,onclick:a,type:"button"},i)}this.dom=fi("div",{onkeydown:s=>this.keydown(s),class:"cm-search"},[this.searchField,r("next",()=>JB(t),[dp(t,"next")]),r("prev",()=>eU(t),[dp(t,"previous")]),r("select",()=>XVn(t),[dp(t,"all")]),fi("label",null,[this.caseField,dp(t,"match case")]),fi("label",null,[this.reField,dp(t,"regexp")]),fi("label",null,[this.wordField,dp(t,"by word")]),...t.state.readOnly?[]:[fi("br"),this.replaceField,r("replace",()=>k9e(t),[dp(t,"replace")]),r("replaceAll",()=>eHn(t),[dp(t,"replace all")])],fi("button",{name:"close",onclick:()=>Jkt(t),"aria-label":dp(t,"close"),type:"button"},["×"])])}commit(){let t=new Gkt({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:MM.of(t)}))}keydown(t){Szn(this.view,t,"search-panel")?t.preventDefault():t.keyCode==13&&t.target==this.searchField?(t.preventDefault(),(t.shiftKey?eU:JB)(this.view)):t.keyCode==13&&t.target==this.replaceField&&(t.preventDefault(),k9e(this.view))}update(t){for(let n of t.transactions)for(let r of n.effects)r.is(MM)&&!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(II).top}}function dp(e,t){return e.state.phrase(t)}const SF=30,kF=/[\s\.,:;?!]/;function bOe(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-SF),i=Math.min(s,n+SF),l=e.state.sliceDoc(a,i);if(a!=r.from){for(let c=0;c<SF;c++)if(!kF.test(l[c+1])&&kF.test(l[c])){l=l.slice(c);break}}if(i!=s){for(let c=l.length-1;c>l.length-SF;c--)if(!kF.test(l[c-1])&&kF.test(l[c])){l=l.slice(0,c);break}}return Pt.announce.of(`${e.state.phrase("current match")}. ${l} ${e.state.phrase("on line")} ${r.number}.`)}const rHn=Pt.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"}}),sHn=[Qw,sh.low(KVn),rHn];class O9e{constructor(t,n,r){this.from=t,this.to=n,this.diagnostic=r}}class Tk{constructor(t,n,r){this.diagnostics=t,this.panel=n,this.selected=r}static init(t,n,r){let s=r.facet(DM).markerFilter;s&&(t=s(t,r));let a=t.slice().sort((d,f)=>d.from-f.from||d.to-f.to),i=new Wd,l=[],c=0;for(let d=0;;){let f=d==a.length?null:a[d];if(!f&&!l.length)break;let p,h;for(l.length?(p=c,h=l.reduce((v,y)=>Math.min(v,y.to),f&&f.from>p?f.from:1e8)):(p=f.from,h=f.to,l.push(f),d++);d<a.length;){let v=a[d];if(v.from==p&&(v.to>v.from||v.to==p))l.push(v),d++,h=Math.min(v.to,h);else{h=Math.min(v.from,h);break}}let m=vHn(l);if(l.some(v=>v.from==v.to||v.from==v.to-1&&r.doc.lineAt(v.from).to==v.from))i.add(p,p,jn.widget({widget:new pHn(m),diagnostics:l.slice()}));else{let v=l.reduce((y,b)=>b.markClass?y+" "+b.markClass:y,"");i.add(p,h,jn.mark({class:"cm-lintRange cm-lintRange-"+m+v,diagnostics:l.slice(),inclusiveEnd:l.some(y=>y.to>h)}))}c=h;for(let v=0;v<l.length;v++)l[v].to<=c&&l.splice(v--,1)}let u=i.finish();return new Tk(u,n,iN(u))}}function iN(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 O9e(s,a,t||i.diagnostics[0]);else{if(i.diagnostics.indexOf(r.diagnostic)<0)return!1;r=new O9e(r.from,a,r.diagnostic)}}),r}function aHn(e,t){let n=t.pos,r=t.end||n,s=e.state.facet(DM).hideOn(e,n,r);if(s!=null)return s;let a=e.startState.doc.lineAt(t.pos);return!!(e.effects.some(i=>i.is(eOt))||e.changes.touchesRange(a.from,Math.max(a.to,r)))}function iHn(e,t){return e.field(Ip,!1)?t:t.concat(pr.appendConfig.of(yHn))}const eOt=pr.define(),xOe=pr.define(),tOt=pr.define(),Ip=bl.define({create(){return new Tk(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=iN(n,e.selected.diagnostic,a)||iN(n,null,a)}!n.size&&s&&t.state.facet(DM).autoPanel&&(s=null),e=new Tk(n,s,r)}for(let n of t.effects)if(n.is(eOt)){let r=t.state.facet(DM).autoPanel?n.value.length?LM.open:null:e.panel;e=Tk.init(n.value,r,t.state)}else n.is(xOe)?e=new Tk(e.diagnostics,n.value?LM.open:null,e.selected):n.is(tOt)&&(e=new Tk(e.diagnostics,e.panel,n.value));return e},provide:e=>[CM.from(e,t=>t.panel),Pt.decorations.from(e,t=>t.diagnostics)]}),oHn=jn.mark({class:"cm-lintRange cm-lintRange-active"});function lHn(e,t,n){let{diagnostics:r}=e.state.field(Ip),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(DM).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:cHn(e,s)}}}:null}function cHn(e,t){return fi("ul",{class:"cm-tooltip-lint"},t.map(n=>rOt(e,n,!1)))}const uHn=e=>{let t=e.state.field(Ip,!1);(!t||!t.panel)&&e.dispatch({effects:iHn(e.state,[xOe.of(!0)])});let n=Pke(e,LM.open);return n&&n.dom.querySelector(".cm-panel-lint ul").focus(),!0},_9e=e=>{let t=e.state.field(Ip,!1);return!t||!t.panel?!1:(e.dispatch({effects:xOe.of(!1)}),!0)},dHn=e=>{let t=e.state.field(Ip,!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)},fHn=[{key:"Mod-Shift-m",run:uHn,preventDefault:!0},{key:"F8",run:dHn}],DM=wn.define({combine(e){return{sources:e.map(t=>t.source).filter(t=>t!=null),...Fy(e.map(t=>t.config),{delay:750,markerFilter:null,tooltipFilter:null,needsRefresh:null,hideOn:()=>null},{delay:Math.max,markerFilter:C9e,tooltipFilter:C9e,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 C9e(e,t){return e?t?(n,r)=>t(e(n,r),r):e:t}function nOt(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 rOt(e,t,n){var r;let s=n?nOt(t.actions):[];return fi("li",{class:"cm-diagnostic cm-diagnostic-"+t.severity},fi("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=iN(e.state.field(Ip).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),fi("u",u.slice(d,d+1)),u.slice(d+1)],p=a.markClass?" "+a.markClass:"";return fi("button",{type:"button",class:"cm-diagnosticAction"+p,onclick:c,onmousedown:c,"aria-label":` Action: ${u}${d<0?"":` (access key "${s[i]})"`}.`},f)}),t.source&&fi("div",{class:"cm-diagnosticSource"},t.source))}class pHn extends ah{constructor(t){super(),this.sev=t}eq(t){return t.sev==this.sev}toDOM(){return fi("span",{class:"cm-lintPoint cm-lintPoint-"+this.sev})}}class E9e{constructor(t,n){this.diagnostic=n,this.id="item_"+Math.floor(Math.random()*4294967295).toString(16),this.dom=rOt(t,n,!0),this.dom.id=this.id,this.dom.setAttribute("role","option")}}class LM{constructor(t){this.view=t,this.items=[];let n=s=>{if(s.keyCode==27)_9e(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=nOt(a.actions);for(let l=0;l<i.length;l++)if(i[l].toUpperCase().charCodeAt(0)==s.keyCode){let c=iN(this.view.state.field(Ip).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=fi("ul",{tabIndex:0,role:"listbox","aria-label":this.view.state.phrase("Diagnostics"),onkeydown:n,onclick:r}),this.dom=fi("div",{class:"cm-panel-lint"},this.list,fi("button",{type:"button",name:"close","aria-label":this.view.state.phrase("close"),onclick:()=>_9e(this.view)},"×")),this.update()}get selectedIndex(){let t=this.view.state.field(Ip).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(Ip),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 E9e(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 E9e(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(Ip),r=iN(n.diagnostics,this.items[t].diagnostic);r&&this.view.dispatch({selection:{anchor:r.from,head:r.to},scrollIntoView:!0,effects:tOt.of(r)})}static open(t){return new LM(t)}}function hHn(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 OF(e){return hHn(`<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 mHn=Pt.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:OF("#d11")},".cm-lintRange-warning":{backgroundImage:OF("orange")},".cm-lintRange-info":{backgroundImage:OF("#999")},".cm-lintRange-hint":{backgroundImage:OF("#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 gHn(e){return e=="error"?4:e=="warning"?3:e=="info"?2:1}function vHn(e){let t="hint",n=1;for(let r of e){let s=gHn(r.severity);s>n&&(n=s,t=r.severity)}return t}const yHn=[Ip,Pt.decorations.compute([Ip],e=>{let{selected:t,panel:n}=e.field(Ip);return!t||!n||t.from==t.to?jn.none:jn.set([oHn.range(t.from,t.to)])}),u8n(lHn,{hideOn:aHn}),mHn];var T9e=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(o7n)),t.defaultKeymap!==!1&&(a=a.concat(TVn)),t.searchKeymap!==!1&&(a=a.concat(tHn)),t.historyKeymap!==!1&&(a=a.concat($qn)),t.foldKeymap!==!1&&(a=a.concat(W8n)),t.completionKeymap!==!1&&(a=a.concat(K1t)),t.lintKeymap!==!1&&(a=a.concat(fHn));var i=[];return t.lineNumbers!==!1&&i.push(S8n()),t.highlightActiveLineGutter!==!1&&i.push(_8n()),t.highlightSpecialChars!==!1&&i.push(Lzn()),t.history!==!1&&i.push(Cqn()),t.foldGutter!==!1&&i.push(Y8n()),t.drawSelection!==!1&&i.push(Tzn()),t.dropCursor!==!1&&i.push(Rzn()),t.allowMultipleSelections!==!1&&i.push(ms.allowMultipleSelections.of(!0)),t.indentOnInput!==!1&&i.push(L8n()),t.syntaxHighlighting!==!1&&i.push(aS(e9n,{fallback:!0})),t.bracketMatching!==!1&&i.push(o9n()),t.closeBrackets!==!1&&i.push(r7n()),t.autocompletion!==!1&&i.push(Y1t()),t.rectangularSelection!==!1&&i.push(Xzn()),s!==!1&&i.push(t8n()),t.highlightActiveLine!==!1&&i.push(Vzn()),t.highlightSelectionMatches!==!1&&i.push(PVn()),t.tabSize&&typeof t.tabSize=="number"&&i.push(EI.of(" ".repeat(t.tabSize))),i.concat([CI.of(a.flat())]).filter(Boolean)};const bHn="#e5c07b",j9e="#e06c75",xHn="#56b6c2",wHn="#ffffff",e9="#abb2bf",xve="#7d8799",SHn="#61afef",kHn="#98c379",N9e="#d19a66",OHn="#c678dd",_Hn="#21252b",I9e="#2c313a",A9e="#282c34",hte="#353a42",CHn="#3E4451",R9e="#528bff",EHn=Pt.theme({"&":{color:e9,backgroundColor:A9e},".cm-content":{caretColor:R9e},".cm-cursor, .cm-dropCursor":{borderLeftColor:R9e},"&.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection":{backgroundColor:CHn},".cm-panels":{backgroundColor:_Hn,color:e9},".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:A9e,color:xve,border:"none"},".cm-activeLineGutter":{backgroundColor:I9e},".cm-foldPlaceholder":{backgroundColor:"transparent",border:"none",color:"#ddd"},".cm-tooltip":{border:"none",backgroundColor:hte},".cm-tooltip .cm-tooltip-arrow:before":{borderTopColor:"transparent",borderBottomColor:"transparent"},".cm-tooltip .cm-tooltip-arrow:after":{borderTopColor:hte,borderBottomColor:hte},".cm-tooltip-autocomplete":{"& > ul > li[aria-selected]":{backgroundColor:I9e,color:e9}}},{dark:!0}),THn=Yg.define([{tag:de.keyword,color:OHn},{tag:[de.name,de.deleted,de.character,de.propertyName,de.macroName],color:j9e},{tag:[de.function(de.variableName),de.labelName],color:SHn},{tag:[de.color,de.constant(de.name),de.standard(de.name)],color:N9e},{tag:[de.definition(de.name),de.separator],color:e9},{tag:[de.typeName,de.className,de.number,de.changed,de.annotation,de.modifier,de.self,de.namespace],color:bHn},{tag:[de.operator,de.operatorKeyword,de.url,de.escape,de.regexp,de.link,de.special(de.string)],color:xHn},{tag:[de.meta,de.comment],color:xve},{tag:de.strong,fontWeight:"bold"},{tag:de.emphasis,fontStyle:"italic"},{tag:de.strikethrough,textDecoration:"line-through"},{tag:de.link,color:xve,textDecoration:"underline"},{tag:de.heading,fontWeight:"bold",color:j9e},{tag:[de.atom,de.bool,de.special(de.variableName)],color:N9e},{tag:[de.processingInstruction,de.string,de.inserted],color:kHn},{tag:de.invalid,color:wHn}]),jHn=[EHn,aS(THn)];var NHn=Pt.theme({"&":{backgroundColor:"#fff"}},{dark:!1}),IHn=function(t){t===void 0&&(t={});var n=t,r=n.indentWithTab,s=r===void 0?!0:r,a=n.editable,i=a===void 0?!0:a,l=n.readOnly,c=l===void 0?!1:l,u=n.theme,d=u===void 0?"light":u,f=n.placeholder,p=f===void 0?"":f,h=n.basicSetup,m=h===void 0?!0:h,v=[];switch(s&&v.unshift(CI.of([jVn])),m&&(typeof m=="boolean"?v.unshift(T9e()):v.unshift(T9e(m))),p&&v.unshift(Gzn(p)),d){case"light":v.push(NHn);break;case"dark":v.push(jHn);break;case"none":break;default:v.push(d);break}return i===!1&&v.push(Pt.editable.of(!1)),c&&v.push(ms.readOnly.of(!0)),[...v]},AHn=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 RHn{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 P9e{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 mte=null,PHn=()=>typeof window>"u"?new P9e:(mte||(mte=new P9e),mte),$Hn=Pt.theme({"& .cm-scroller":{height:"100% !important"}}),$9e=null,gte=null;function MHn(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===$9e||($9e=i,gte=Pt.theme({"&":{height:e,minHeight:t,maxHeight:n,width:r,minWidth:s,maxWidth:a}})),gte}var M9e=Ly.define(),DHn=200,LHn=[];function FHn(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?LHn:l,u=e.autoFocus,d=e.theme,f=d===void 0?"light":d,p=e.height,h=p===void 0?null:p,m=e.minHeight,v=m===void 0?null:m,y=e.maxHeight,b=y===void 0?null:y,x=e.width,S=x===void 0?null:x,k=e.minWidth,_=k===void 0?null:k,C=e.maxWidth,T=C===void 0?null:C,E=e.placeholder,N=E===void 0?"":E,I=e.editable,A=I===void 0?!0:I,R=e.readOnly,L=R===void 0?!1:R,M=e.indentWithTab,z=M===void 0?!0:M,H=e.basicSetup,F=H===void 0?!0:H,B=e.root,V=e.initialState,D=g.useState(),Z=D[0],U=D[1],P=g.useState(),q=P[0],G=P[1],K=g.useState(),ne=K[0],J=K[1],ee=g.useState(()=>({current:null}))[0],re=g.useState(()=>({current:null}))[0],le=MHn(h,v,b,S,_,T),X=Pt.updateListener.of(fe=>{if(fe.docChanged&&typeof r=="function"&&!fe.transactions.some(pe=>pe.annotation(M9e))){ee.current?ee.current.reset():(ee.current=new RHn(()=>{if(re.current){var pe=re.current;re.current=null,pe()}ee.current=null},DHn),PHn().add(ee.current));var ce=fe.state.doc,we=ce.toString();r(we,fe)}s&&s(AHn(fe))}),te=IHn({theme:f,editable:A,readOnly:L,placeholder:N,indentWithTab:z,basicSetup:F}),se=[X,...le?[le]:[],$Hn,...te];return i&&typeof i=="function"&&se.push(Pt.updateListener.of(i)),se=se.concat(c),g.useLayoutEffect(()=>{if(Z&&!ne){var fe={doc:t,selection:n,extensions:se},ce=V?ms.fromJSON(V.json,fe,V.fields):ms.create(fe);if(J(ce),!q){var we=new Pt({state:ce,parent:Z,root:B});G(we),a&&a(we,ce)}}return()=>{q&&(J(void 0),G(void 0))}},[Z,ne]),g.useEffect(()=>{e.container&&U(e.container)},[e.container]),g.useEffect(()=>()=>{q&&(q.destroy(),G(void 0)),ee.current&&(ee.current.cancel(),ee.current=null)},[q]),g.useEffect(()=>{u&&q&&q.focus()},[u,q]),g.useEffect(()=>{q&&q.dispatch({effects:pr.reconfigure.of(se)})},[f,c,h,v,b,S,_,T,N,A,L,z,F,r,i]),g.useEffect(()=>{if(t!==void 0){var fe=q?q.state.doc.toString():"";if(q&&t!==fe){var ce=ee.current&&!ee.current.isDone,we=()=>{q&&t!==q.state.doc.toString()&&q.dispatch({changes:{from:0,to:q.state.doc.toString().length,insert:t||""},annotations:[M9e.of(!0)]})};ce?re.current=we:we()}}},[t,q]),{state:ne,setState:J,view:q,setView:G,container:Z,setContainer:U}}var zHn=["className","value","selection","extensions","onChange","onStatistics","onCreateEditor","onUpdate","autoFocus","theme","height","minHeight","maxHeight","width","minWidth","maxWidth","basicSetup","placeholder","indentWithTab","editable","readOnly","root","initialState"],nd=g.forwardRef((e,t)=>{var n=e.className,r=e.value,s=r===void 0?"":r,a=e.selection,i=e.extensions,l=i===void 0?[]:i,c=e.onChange,u=e.onStatistics,d=e.onCreateEditor,f=e.onUpdate,p=e.autoFocus,h=e.theme,m=h===void 0?"light":h,v=e.height,y=e.minHeight,b=e.maxHeight,x=e.width,S=e.minWidth,k=e.maxWidth,_=e.basicSetup,C=e.placeholder,T=e.indentWithTab,E=e.editable,N=e.readOnly,I=e.root,A=e.initialState,R=dkt(e,zHn),L=g.useRef(null),M=FHn({root:I,value:s,autoFocus:p,theme:m,height:v,minHeight:y,maxHeight:b,width:x,minWidth:S,maxWidth:k,basicSetup:_,placeholder:C,indentWithTab:T,editable:E,readOnly:N,selection:a,onChange:c,onStatistics:u,onCreateEditor:d,onUpdate:f,extensions:l,initialState:A}),z=M.state,H=M.view,F=M.container,B=M.setContainer;g.useImperativeHandle(t,()=>({editor:L.current,state:z,view:H}),[L,F,z,H]);var V=g.useCallback(Z=>{L.current=Z,B(Z)},[B]);if(typeof s!="string")throw new Error("value must be typeof string but got "+typeof s);var D=typeof m=="string"?"cm-theme-"+m:"cm-theme";return o.jsx("div",XO({ref:V,className:""+D+(n?" "+n:"")},R))});nd.displayName="CodeMirror";const BHn={js:"javascript",javascript:"javascript",mjs:"javascript",cjs:"javascript",node:"javascript",ts:"typescript",typescript:"typescript",mts:"typescript",cts:"typescript",tsx:"tsx",jsx:"jsx",json:"json",json5:"json",md:"markdown",markdown:"markdown",py:"python",python:"python",sh:"bash",bash:"bash",shell:"bash",zsh:"bash",yml:"yaml",yaml:"yaml",diff:"diff",patch:"diff",css:"css",scss:"css",html:"html",htm:"html",xml:"xml",svg:"xml",sql:"sql"};let vte=null;function UHn(){return vte||(vte=(async()=>{const[{createHighlighterCore:e},{createJavaScriptRegexEngine:t}]=await Promise.all([La(()=>import("./core-0ibpKsHV.js"),__vite__mapDeps([0,1,2]),import.meta.url),La(()=>import("./engine-javascript-CSIo_1eZ.js"),__vite__mapDeps([3,1]),import.meta.url)]);return e({themes:[La(()=>import("./github-light-DAi9KRSo.js"),[],import.meta.url),La(()=>import("./github-dark-DHJKELXO.js"),[],import.meta.url)],langs:[La(()=>import("./javascript-ySlJ1b_l.js"),[],import.meta.url),La(()=>import("./typescript-Dj6nwHGl.js"),[],import.meta.url),La(()=>import("./tsx-B6W0miNI.js"),[],import.meta.url),La(()=>import("./jsx-BAng5TT0.js"),[],import.meta.url),La(()=>import("./json-BQoSv7ci.js"),[],import.meta.url),La(()=>import("./bash-atvbtKCR.js"),[],import.meta.url),La(()=>import("./markdown-UIAJJxZW.js"),[],import.meta.url),La(()=>import("./python-DhUJRlN_.js"),[],import.meta.url),La(()=>import("./yaml-CVw76BM1.js"),[],import.meta.url),La(()=>import("./diff-BgYniUM_.js"),[],import.meta.url),La(()=>import("./css-BPhBrDlE.js"),[],import.meta.url),La(()=>import("./html-C2L_23MC.js"),__vite__mapDeps([4,5,6]),import.meta.url),La(()=>import("./xml-DGRTSKzu.js"),[],import.meta.url),La(()=>import("./sql-COK4E0Yg.js"),[],import.meta.url)],engine:t()})})()),vte}async function qHn(e,t){const n=BHn[t?.toLowerCase()];if(!n)return null;const r=await UHn(),{tokens:s}=r.codeToTokens(e,{lang:n,defaultColor:!1,themes:{light:"github-light",dark:"github-dark"}});return s}function VHn(e){return new GO(Fke.define(e))}const sOt=[hg.of({name:"JavaScript",alias:["ecmascript","js","node"],extensions:["js","mjs","cjs"],load(){return La(()=>Promise.resolve().then(()=>xF),void 0,import.meta.url).then(e=>e.javascript())}}),hg.of({name:"JSON",alias:["json5"],extensions:["json","map"],load(){return La(()=>Promise.resolve().then(()=>b9n),void 0,import.meta.url).then(e=>e.json())}}),hg.of({name:"JSX",extensions:["jsx"],load(){return La(()=>Promise.resolve().then(()=>xF),void 0,import.meta.url).then(e=>e.javascript({jsx:!0}))}}),hg.of({name:"Markdown",extensions:["md","markdown","mkd"],load(){return La(()=>Promise.resolve().then(()=>pqn),void 0,import.meta.url).then(e=>e.markdown())}}),hg.of({name:"TSX",extensions:["tsx"],load(){return La(()=>Promise.resolve().then(()=>xF),void 0,import.meta.url).then(e=>e.javascript({jsx:!0,typescript:!0}))}}),hg.of({name:"TypeScript",alias:["ts"],extensions:["ts","mts","cts"],load(){return La(()=>Promise.resolve().then(()=>xF),void 0,import.meta.url).then(e=>e.javascript({typescript:!0}))}}),hg.of({name:"Shell",alias:["bash","sh","zsh"],extensions:["sh","ksh","bash"],filename:/^PKGBUILD$/,load(){return La(()=>import("./shell-CjFT_Tl9.js"),[],import.meta.url).then(e=>VHn(e.shell))}})];function HHn(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 WHn(e){const t=HHn(e);return Y1t({override:[ZHn(t)],defaultKeymap:!0,closeOnBlur:!0,icons:!1})}function ZHn(e){return t=>{const r=t.state.sliceDoc(Math.max(0,t.pos-50),t.pos).match(/\{\{([a-zA-Z0-9_.\[\]]*)?$/);if(!r)return null;const s=r[1]??"",a=t.pos-s.length,i=s?e.filter(c=>c.path.toLowerCase().startsWith(s.toLowerCase())):e;if(i.length===0)return null;const l=i.map(c=>({label:c.path,displayLabel:c.path,detail:c.type,info:c.description,apply:(u,d,f,p)=>{const v=u.state.sliceDoc(p,p+2)==="}}"?d.label:`${d.label}}}`;u.dispatch({changes:{from:f,to:p,insert:v},selection:{anchor:f+v.length}})}}));return{from:a,options:l,validFor:/^[a-zA-Z0-9_.\[\]]*$/}}}const GHn=/\{\{([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)*)\}\}/g,QHn=jn.mark({class:"cm-variable-highlight"}),D9e=new u1t({regexp:GHn,decoration:()=>QHn}),YHn=_o.fromClass(class{decorations;constructor(e){this.decorations=D9e.createDeco(e)}update(e){this.decorations=D9e.updateDeco(e,this.decorations)}},{decorations:e=>e.decorations}),KHn=YHn;function XHn(){const e=jI({settings:{fontFamily:"var(--font-mono)",fontSize:"0.8rem",lineHighlight:"transparent",gutterBackground:"transparent",gutterForeground:"var(--neutral2)",background:"transparent",foreground:"var(--neutral6)",caret:"var(--neutral6)"},styles:[{tag:[de.className,de.propertyName],color:"var(--neutral6)"},{tag:de.heading,color:"var(--accent3)",fontWeight:"bold"},{tag:[de.heading1,de.heading2,de.heading3,de.heading4,de.heading5,de.heading6],color:"var(--accent3)",fontWeight:"bold"},{tag:de.emphasis,fontStyle:"italic",color:"var(--neutral6)"},{tag:de.strong,fontWeight:"bold",color:"var(--neutral6)"},{tag:de.link,color:"var(--accent3)",textDecoration:"underline"},{tag:de.url,color:"var(--accent3)"},{tag:de.monospace,color:"var(--neutral6)"},{tag:de.strikethrough,textDecoration:"line-through"},{tag:de.quote,fontStyle:"italic",color:"var(--neutral2)"}]}),t=Pt.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 JHn(){const e=Pt.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=Yg.define([{tag:[de.comment,de.bracket],color:"var(--neutral2)"},{tag:[de.string,de.meta,de.regexp],color:"var(--accent1)"},{tag:[de.atom,de.bool,de.special(de.variableName)],color:"var(--accent6)"},{tag:[de.keyword,de.operator,de.tagName],color:"var(--accent2)"},{tag:[de.function(de.propertyName),de.propertyName],color:"var(--accent5)"},{tag:[de.definition(de.variableName),de.function(de.variableName),de.className,de.attributeName],color:"var(--accent3)"},{tag:[de.variableName,de.number],color:"var(--accent5)"},{tag:[de.name,de.quote],color:"var(--accent1)"},{tag:de.heading,color:"var(--accent3)",fontWeight:"bold"},{tag:[de.heading1,de.heading2,de.heading3,de.heading4,de.heading5,de.heading6],color:"var(--accent3)",fontWeight:"bold"},{tag:[de.emphasis],fontStyle:"italic",color:"var(--neutral6)"},{tag:[de.strong],fontWeight:"bold",color:"var(--neutral6)"},{tag:de.link,color:"var(--accent3)",textDecoration:"underline"},{tag:de.url,color:"var(--accent3)"},{tag:de.monospace,color:"var(--neutral6)"},{tag:de.strikethrough,textDecoration:"line-through"},{tag:[de.deleted],color:"var(--accent2)"},{tag:de.invalid,color:"var(--error)"},{tag:[de.standard(de.tagName)],color:"var(--accent1)"}]);return[e,aS(t)]}const r0=()=>{const e=nC().resolvedTheme==="dark";return g.useMemo(()=>e?XHn():JHn(),[e])},eWn=$i(Y("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"}}),tWn=sh.highest(Pt.editorAttributes.of({style:"outline: none"})),nWn=sh.highest(Pt.theme({"&":{outline:"none"},"&.cm-focused":{outline:"none"},".cm-scroller":{outline:"none"},".cm-content":{outline:"none"},".cm-content:focus":{outline:"none"}})),rWn=[tWn,nWn],Qr=g.forwardRef(({data:e,value:t,onChange:n,showCopyButton:r=!0,className:s,language:a="json",highlightVariables:i=!1,placeholder:l,schema:c,autoFocus:u,lineNumbers:d=!0,lineWrapping:f=!0,editable:p,variant:h,...m},v)=>{const y=r0(),b=e?JSON.stringify(e,null,2):t??"",x=g.useMemo(()=>{const S=[...rWn];return f&&S.push(Pt.lineWrapping),a==="json"?S.push(Lp):a==="markdown"&&S.push(fOe({base:KO,codeLanguages:sOt})),i&&a==="markdown"&&S.push(KHn),c&&a==="markdown"&&S.push(WHn(c)),p===!1&&S.push(ms.readOnly.of(!0)),S},[a,i,c,p,f]);return o.jsxs("div",{className:Y(eWn({variant:h}),s),...m,children:[r&&o.jsx(ka,{content:b,className:"absolute top-2 right-2 z-20"}),o.jsx(nd,{ref:v,value:b,theme:y,extensions:x,onChange:n,editable:p,"aria-label":"Code editor",placeholder:l,height:"100%",style:{height:"100%"},autoFocus:u,basicSetup:{lineNumbers:d}})]})}),sWn=e=>{try{return JSON.stringify(e??{},null,2)}catch{return"{}"}},aWn=({editorClassName:e="h-[240px] max-h-[40vh]",onSaved:t})=>{const n=r0(),{settings:r,setSettings:s}=BH(),a=r?.tracingOptions,i=g.useMemo(()=>sWn(a),[a]),[l,c]=g.useState(()=>i),u=g.useRef(!1);g.useEffect(()=>{u.current||c(i)},[i]);const d=p=>{u.current=!0,c(p)},f=()=>{if(!l){s({...r,tracingOptions:void 0}),t?.();return}try{const p=JSON.parse(l);typeof p=="object"&&p!==null&&s({...r,tracingOptions:p})}catch{return}t?.()};return o.jsxs("div",{className:"space-y-2 px-5 py-2",children:[o.jsx(ve,{as:"h3",variant:"ui-md",className:"text-neutral3",children:"Tracing Options"}),o.jsx(nd,{value:l,onChange:d,theme:n,extensions:[Lp],className:Y("overflow-y-scroll bg-surface3 rounded-lg overflow-hidden p-3",e)}),o.jsx("div",{className:"flex items-center justify-end",children:o.jsx(oe,{type:"button",onClick:f,children:"Save"})})]})},iWn=()=>{const[e,t]=g.useState(!1);return o.jsxs(o.Fragment,{children:[o.jsxs(yn,{children:[o.jsx(gn,{asChild:!0,children:o.jsx(oe,{type:"button",variant:"ghost",size:"icon-md","aria-label":"Run Options",onClick:()=>t(!0),children:o.jsx(We,{children:o.jsx(j0e,{})})})}),o.jsx(vn,{children:"Run Options"})]}),o.jsx(gr,{open:e,onOpenChange:t,children:o.jsxs(vr,{children:[o.jsxs(yr,{children:[o.jsx(fr,{children:"Run Options"}),o.jsx(_s,{children:"Configure tracing and debug options for this workflow run"})]}),o.jsx(Rr,{children:o.jsx(aWn,{onSaved:()=>t(!1)})})]})})]})};function oWn({status:e}){switch(e){case"running":return o.jsx(qt,{});case"failed":return o.jsx(or,{className:"text-accent2"});case"canceled":return o.jsx(Dc,{className:"text-neutral3"});case"pending":case"waiting":return o.jsx(s1,{className:"text-neutral3"});case"suspended":return o.jsx(_V,{className:"text-accent3"});case"success":return o.jsx(qr,{className:"text-accent1"});default:return o.jsx(s1,{className:"text-neutral3"})}}function aOt({status:e}){return o.jsxs(yn,{children:[o.jsx(gn,{asChild:!0,children:o.jsx(We,{"aria-label":e,className:"shrink-0",children:o.jsx(oWn,{status:e})})}),o.jsx(vn,{children:e})]})}var yte,L9e;function wOe(){if(L9e)return yte;L9e=1;var e="\0",t="\0",n="";class r{_isDirected=!0;_isMultigraph=!1;_isCompound=!1;_label;_defaultNodeLabelFn=()=>{};_defaultEdgeLabelFn=()=>{};_nodes={};_in={};_preds={};_out={};_sucs={};_edgeObjs={};_edgeLabels={};_nodeCount=0;_edgeCount=0;_parent;_children;constructor(d){d&&(this._isDirected=Object.hasOwn(d,"directed")?d.directed:!0,this._isMultigraph=Object.hasOwn(d,"multigraph")?d.multigraph:!1,this._isCompound=Object.hasOwn(d,"compound")?d.compound:!1),this._isCompound&&(this._parent={},this._children={},this._children[t]={})}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(d){return this._label=d,this}graph(){return this._label}setDefaultNodeLabel(d){return this._defaultNodeLabelFn=d,typeof d!="function"&&(this._defaultNodeLabelFn=()=>d),this}nodeCount(){return this._nodeCount}nodes(){return Object.keys(this._nodes)}sources(){var d=this;return this.nodes().filter(f=>Object.keys(d._in[f]).length===0)}sinks(){var d=this;return this.nodes().filter(f=>Object.keys(d._out[f]).length===0)}setNodes(d,f){var p=arguments,h=this;return d.forEach(function(m){p.length>1?h.setNode(m,f):h.setNode(m)}),this}setNode(d,f){return Object.hasOwn(this._nodes,d)?(arguments.length>1&&(this._nodes[d]=f),this):(this._nodes[d]=arguments.length>1?f:this._defaultNodeLabelFn(d),this._isCompound&&(this._parent[d]=t,this._children[d]={},this._children[t][d]=!0),this._in[d]={},this._preds[d]={},this._out[d]={},this._sucs[d]={},++this._nodeCount,this)}node(d){return this._nodes[d]}hasNode(d){return Object.hasOwn(this._nodes,d)}removeNode(d){var f=this;if(Object.hasOwn(this._nodes,d)){var p=h=>f.removeEdge(f._edgeObjs[h]);delete this._nodes[d],this._isCompound&&(this._removeFromParentsChildList(d),delete this._parent[d],this.children(d).forEach(function(h){f.setParent(h)}),delete this._children[d]),Object.keys(this._in[d]).forEach(p),delete this._in[d],delete this._preds[d],Object.keys(this._out[d]).forEach(p),delete this._out[d],delete this._sucs[d],--this._nodeCount}return this}setParent(d,f){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(f===void 0)f=t;else{f+="";for(var p=f;p!==void 0;p=this.parent(p))if(p===d)throw new Error("Setting "+f+" as parent of "+d+" would create a cycle");this.setNode(f)}return this.setNode(d),this._removeFromParentsChildList(d),this._parent[d]=f,this._children[f][d]=!0,this}_removeFromParentsChildList(d){delete this._children[this._parent[d]][d]}parent(d){if(this._isCompound){var f=this._parent[d];if(f!==t)return f}}children(d=t){if(this._isCompound){var f=this._children[d];if(f)return Object.keys(f)}else{if(d===t)return this.nodes();if(this.hasNode(d))return[]}}predecessors(d){var f=this._preds[d];if(f)return Object.keys(f)}successors(d){var f=this._sucs[d];if(f)return Object.keys(f)}neighbors(d){var f=this.predecessors(d);if(f){const h=new Set(f);for(var p of this.successors(d))h.add(p);return Array.from(h.values())}}isLeaf(d){var f;return this.isDirected()?f=this.successors(d):f=this.neighbors(d),f.length===0}filterNodes(d){var f=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});f.setGraph(this.graph());var p=this;Object.entries(this._nodes).forEach(function([v,y]){d(v)&&f.setNode(v,y)}),Object.values(this._edgeObjs).forEach(function(v){f.hasNode(v.v)&&f.hasNode(v.w)&&f.setEdge(v,p.edge(v))});var h={};function m(v){var y=p.parent(v);return y===void 0||f.hasNode(y)?(h[v]=y,y):y in h?h[y]:m(y)}return this._isCompound&&f.nodes().forEach(v=>f.setParent(v,m(v))),f}setDefaultEdgeLabel(d){return this._defaultEdgeLabelFn=d,typeof d!="function"&&(this._defaultEdgeLabelFn=()=>d),this}edgeCount(){return this._edgeCount}edges(){return Object.values(this._edgeObjs)}setPath(d,f){var p=this,h=arguments;return d.reduce(function(m,v){return h.length>1?p.setEdge(m,v,f):p.setEdge(m,v),v}),this}setEdge(){var d,f,p,h,m=!1,v=arguments[0];typeof v=="object"&&v!==null&&"v"in v?(d=v.v,f=v.w,p=v.name,arguments.length===2&&(h=arguments[1],m=!0)):(d=v,f=arguments[1],p=arguments[3],arguments.length>2&&(h=arguments[2],m=!0)),d=""+d,f=""+f,p!==void 0&&(p=""+p);var y=i(this._isDirected,d,f,p);if(Object.hasOwn(this._edgeLabels,y))return m&&(this._edgeLabels[y]=h),this;if(p!==void 0&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(d),this.setNode(f),this._edgeLabels[y]=m?h:this._defaultEdgeLabelFn(d,f,p);var b=l(this._isDirected,d,f,p);return d=b.v,f=b.w,Object.freeze(b),this._edgeObjs[y]=b,s(this._preds[f],d),s(this._sucs[d],f),this._in[f][y]=b,this._out[d][y]=b,this._edgeCount++,this}edge(d,f,p){var h=arguments.length===1?c(this._isDirected,arguments[0]):i(this._isDirected,d,f,p);return this._edgeLabels[h]}edgeAsObj(){const d=this.edge(...arguments);return typeof d!="object"?{label:d}:d}hasEdge(d,f,p){var h=arguments.length===1?c(this._isDirected,arguments[0]):i(this._isDirected,d,f,p);return Object.hasOwn(this._edgeLabels,h)}removeEdge(d,f,p){var h=arguments.length===1?c(this._isDirected,arguments[0]):i(this._isDirected,d,f,p),m=this._edgeObjs[h];return m&&(d=m.v,f=m.w,delete this._edgeLabels[h],delete this._edgeObjs[h],a(this._preds[f],d),a(this._sucs[d],f),delete this._in[f][h],delete this._out[d][h],this._edgeCount--),this}inEdges(d,f){var p=this._in[d];if(p){var h=Object.values(p);return f?h.filter(m=>m.v===f):h}}outEdges(d,f){var p=this._out[d];if(p){var h=Object.values(p);return f?h.filter(m=>m.w===f):h}}nodeEdges(d,f){var p=this.inEdges(d,f);if(p)return p.concat(this.outEdges(d,f))}}function s(u,d){u[d]?u[d]++:u[d]=1}function a(u,d){--u[d]||delete u[d]}function i(u,d,f,p){var h=""+d,m=""+f;if(!u&&h>m){var v=h;h=m,m=v}return h+n+m+n+(p===void 0?e:p)}function l(u,d,f,p){var h=""+d,m=""+f;if(!u&&h>m){var v=h;h=m,m=v}var y={v:h,w:m};return p&&(y.name=p),y}function c(u,d){return i(u,d.v,d.w,d.name)}return yte=r,yte}var bte,F9e;function lWn(){return F9e||(F9e=1,bte="2.2.4"),bte}var xte,z9e;function cWn(){return z9e||(z9e=1,xte={Graph:wOe(),version:lWn()}),xte}var wte,B9e;function uWn(){if(B9e)return wte;B9e=1;var e=wOe();wte={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 wte}var Ste,U9e;function dWn(){if(U9e)return Ste;U9e=1,Ste=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 Ste}var kte,q9e;function iOt(){if(q9e)return kte;q9e=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 kte=e,kte}var Ote,V9e;function oOt(){if(V9e)return Ote;V9e=1;var e=iOt();Ote=n;var t=()=>1;function n(s,a,i,l){return r(s,String(a),i||t,l||function(c){return s.outEdges(c)})}function r(s,a,i,l){var c={},u=new e,d,f,p=function(h){var m=h.v!==d?h.v:h.w,v=c[m],y=i(h),b=f.distance+y;if(y<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+h+" Weight: "+y);b<v.distance&&(v.distance=b,v.predecessor=d,u.decrease(m,b))};for(s.nodes().forEach(function(h){var m=h===a?0:Number.POSITIVE_INFINITY;c[h]={distance:m},u.add(h,m)});u.size()>0&&(d=u.removeMin(),f=c[d],f.distance!==Number.POSITIVE_INFINITY);)l(d).forEach(p);return c}return Ote}var _te,H9e;function fWn(){if(H9e)return _te;H9e=1;var e=oOt();_te=t;function t(n,r,s){return n.nodes().reduce(function(a,i){return a[i]=e(n,i,r,s),a},{})}return _te}var Cte,W9e;function lOt(){if(W9e)return Cte;W9e=1,Cte=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 Cte}var Ete,Z9e;function pWn(){if(Z9e)return Ete;Z9e=1;var e=lOt();Ete=t;function t(n){return e(n).filter(function(r){return r.length>1||r.length===1&&n.hasEdge(r[0],r[0])})}return Ete}var Tte,G9e;function hWn(){if(G9e)return Tte;G9e=1,Tte=t;var e=()=>1;function t(r,s,a){return n(r,s||e,a||function(i){return r.outEdges(i)})}function n(r,s,a){var i={},l=r.nodes();return l.forEach(function(c){i[c]={},i[c][c]={distance:0},l.forEach(function(u){c!==u&&(i[c][u]={distance:Number.POSITIVE_INFINITY})}),a(c).forEach(function(u){var d=u.v===c?u.w:u.v,f=s(u);i[c][d]={distance:f,predecessor:c}})}),l.forEach(function(c){var u=i[c];l.forEach(function(d){var f=i[d];l.forEach(function(p){var h=f[c],m=u[p],v=f[p],y=h.distance+m.distance;y<v.distance&&(v.distance=y,v.predecessor=m.predecessor)})})}),i}return Tte}var jte,Q9e;function cOt(){if(Q9e)return jte;Q9e=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 jte=e,e.CycleException=t,jte}var Nte,Y9e;function mWn(){if(Y9e)return Nte;Y9e=1;var e=cOt();Nte=t;function t(n){try{e(n)}catch(r){if(r instanceof e.CycleException)return!1;throw r}return!0}return Nte}var Ite,K9e;function uOt(){if(K9e)return Ite;K9e=1,Ite=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 Ite}var Ate,X9e;function gWn(){if(X9e)return Ate;X9e=1;var e=uOt();Ate=t;function t(n,r){return e(n,r,"post")}return Ate}var Rte,J9e;function vWn(){if(J9e)return Rte;J9e=1;var e=uOt();Rte=t;function t(n,r){return e(n,r,"pre")}return Rte}var Pte,e7e;function yWn(){if(e7e)return Pte;e7e=1;var e=wOe(),t=iOt();Pte=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 Pte}var $te,t7e;function bWn(){return t7e||(t7e=1,$te={components:dWn(),dijkstra:oOt(),dijkstraAll:fWn(),findCycles:pWn(),floydWarshall:hWn(),isAcyclic:mWn(),postorder:gWn(),preorder:vWn(),prim:yWn(),tarjan:lOt(),topsort:cOt()}),$te}var Mte,n7e;function Hg(){if(n7e)return Mte;n7e=1;var e=cWn();return Mte={Graph:e.Graph,json:uWn(),alg:bWn(),version:e.version},Mte}var Dte,r7e;function xWn(){if(r7e)return Dte;r7e=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 Dte=e,Dte}var Lte,s7e;function wWn(){if(s7e)return Lte;s7e=1;let e=Hg().Graph,t=xWn();Lte=r;let n=()=>1;function r(u,d){if(u.nodeCount()<=1)return[];let f=i(u,d||n);return s(f.graph,f.buckets,f.zeroIdx).flatMap(h=>u.outEdges(h.v,h.w))}function s(u,d,f){let p=[],h=d[d.length-1],m=d[0],v;for(;u.nodeCount();){for(;v=m.dequeue();)a(u,d,f,v);for(;v=h.dequeue();)a(u,d,f,v);if(u.nodeCount()){for(let y=d.length-2;y>0;--y)if(v=d[y].dequeue(),v){p=p.concat(a(u,d,f,v,!0));break}}}return p}function a(u,d,f,p,h){let m=h?[]:void 0;return u.inEdges(p.v).forEach(v=>{let y=u.edge(v),b=u.node(v.v);h&&m.push({v:v.v,w:v.w}),b.out-=y,l(d,f,b)}),u.outEdges(p.v).forEach(v=>{let y=u.edge(v),b=v.w,x=u.node(b);x.in-=y,l(d,f,x)}),u.removeNode(p.v),m}function i(u,d){let f=new e,p=0,h=0;u.nodes().forEach(y=>{f.setNode(y,{v:y,in:0,out:0})}),u.edges().forEach(y=>{let b=f.edge(y.v,y.w)||0,x=d(y),S=b+x;f.setEdge(y.v,y.w,S),h=Math.max(h,f.node(y.v).out+=x),p=Math.max(p,f.node(y.w).in+=x)});let m=c(h+p+3).map(()=>new t),v=p+1;return f.nodes().forEach(y=>{l(m,v,f.node(y))}),{graph:f,buckets:m,zeroIdx:v}}function l(u,d,f){f.out?f.in?u[f.out-f.in+d].enqueue(f):u[u.length-1].enqueue(f):u[0].enqueue(f)}function c(u){const d=[];for(let f=0;f<u;f++)d.push(f);return d}return Lte}var Fte,a7e;function Pl(){if(a7e)return Fte;a7e=1;let e=Hg().Graph;Fte={addBorderNode:d,addDummyNode:t,applyWithChunking:h,asNonCompoundGraph:r,buildLayerMatrix:l,intersectRect:i,mapValues:C,maxRank:m,normalizeRanks:c,notime:b,partition:v,pick:_,predecessorWeights:a,range:k,removeEmptyRanks:u,simplify:n,successorWeights:s,time:y,uniqueId:S,zipObject:T};function t(E,N,I,A){for(var R=A;E.hasNode(R);)R=S(A);return I.dummy=N,E.setNode(R,I),R}function n(E){let N=new e().setGraph(E.graph());return E.nodes().forEach(I=>N.setNode(I,E.node(I))),E.edges().forEach(I=>{let A=N.edge(I.v,I.w)||{weight:0,minlen:1},R=E.edge(I);N.setEdge(I.v,I.w,{weight:A.weight+R.weight,minlen:Math.max(A.minlen,R.minlen)})}),N}function r(E){let N=new e({multigraph:E.isMultigraph()}).setGraph(E.graph());return E.nodes().forEach(I=>{E.children(I).length||N.setNode(I,E.node(I))}),E.edges().forEach(I=>{N.setEdge(I,E.edge(I))}),N}function s(E){let N=E.nodes().map(I=>{let A={};return E.outEdges(I).forEach(R=>{A[R.w]=(A[R.w]||0)+E.edge(R).weight}),A});return T(E.nodes(),N)}function a(E){let N=E.nodes().map(I=>{let A={};return E.inEdges(I).forEach(R=>{A[R.v]=(A[R.v]||0)+E.edge(R).weight}),A});return T(E.nodes(),N)}function i(E,N){let I=E.x,A=E.y,R=N.x-I,L=N.y-A,M=E.width/2,z=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)*M>Math.abs(R)*z?(L<0&&(z=-z),H=z*R/L,F=z):(R<0&&(M=-M),H=M,F=M*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(M=>E.node(M).rank),I=h(Math.min,N),A=[];E.nodes().forEach(M=>{let z=E.node(M).rank-I;A[z]||(A[z]=[]),A[z].push(M)});let R=0,L=E.graph().nodeRankFactor;Array.from(A).forEach((M,z)=>{M===void 0&&z%L!==0?--R:M!==void 0&&R&&M.forEach(H=>E.node(H).rank+=R)})}function d(E,N,I,A){let R={width:0,height:0};return arguments.length>=4&&(R.rank=I,R.order=A),t(E,"border",R,N)}function f(E,N=p){const I=[];for(let A=0;A<E.length;A+=N){const R=E.slice(A,A+N);I.push(R)}return I}const p=65535;function h(E,N){if(N.length>p){const I=f(N);return E.apply(null,I.map(A=>E.apply(null,A)))}else return E.apply(null,N)}function m(E){const I=E.nodes().map(A=>{let R=E.node(A).rank;return R===void 0?Number.MIN_VALUE:R});return h(Math.max,I)}function v(E,N){let I={lhs:[],rhs:[]};return E.forEach(A=>{N(A)?I.lhs.push(A):I.rhs.push(A)}),I}function y(E,N){let I=Date.now();try{return N()}finally{console.log(E+" time: "+(Date.now()-I)+"ms")}}function b(E,N){return N()}let x=0;function S(E){var N=++x;return E+(""+N)}function k(E,N,I=1){N==null&&(N=E,E=0);let A=L=>L<N;I<0&&(A=L=>N<L);const R=[];for(let L=E;A(L);L+=I)R.push(L);return R}function _(E,N){const I={};for(const A of N)E[A]!==void 0&&(I[A]=E[A]);return I}function C(E,N){let I=N;return typeof N=="string"&&(I=A=>A[N]),Object.entries(E).reduce((A,[R,L])=>(A[R]=I(L,R),A),{})}function T(E,N){return E.reduce((I,A,R)=>(I[A]=N[R],I),{})}return Fte}var zte,i7e;function SWn(){if(i7e)return zte;i7e=1;let e=wWn(),t=Pl().uniqueId;zte={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 zte}var Bte,o7e;function kWn(){if(o7e)return Bte;o7e=1;let e=Pl();Bte={run:t,undo:r};function t(s){s.graph().dummyChains=[],s.edges().forEach(a=>n(s,a))}function n(s,a){let i=a.v,l=s.node(i).rank,c=a.w,u=s.node(c).rank,d=a.name,f=s.edge(a),p=f.labelRank;if(u===l+1)return;s.removeEdge(a);let h,m,v;for(v=0,++l;l<u;++v,++l)f.points=[],m={width:0,height:0,edgeLabel:f,edgeObj:a,rank:l},h=e.addDummyNode(s,"edge",m,"_d"),l===p&&(m.width=f.width,m.height=f.height,m.dummy="edge-label",m.labelpos=f.labelpos),s.setEdge(i,h,{weight:f.weight},d),v===0&&s.graph().dummyChains.push(h),i=h;s.setEdge(i,c,{weight:f.weight},d)}function r(s){s.graph().dummyChains.forEach(a=>{let i=s.node(a),l=i.edgeLabel,c;for(s.setEdge(i.edgeObj,l);i.dummy;)c=s.successors(a)[0],s.removeNode(a),l.points.push({x:i.x,y:i.y}),i.dummy==="edge-label"&&(l.x=i.x,l.y=i.y,l.width=i.width,l.height=i.height),a=c,i=s.node(a)})}return Bte}var Ute,l7e;function tU(){if(l7e)return Ute;l7e=1;const{applyWithChunking:e}=Pl();Ute={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 Ute}var qte,c7e;function dOt(){if(c7e)return qte;c7e=1;var e=Hg().Graph,t=tU().slack;qte=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 qte}var Vte,u7e;function OWn(){if(u7e)return Vte;u7e=1;var e=dOt(),t=tU().slack,n=tU().longestPath,r=Hg().alg.preorder,s=Hg().alg.postorder,a=Pl().simplify;Vte=i,i.initLowLimValues=d,i.initCutValues=l,i.calcCutValue=u,i.leaveEdge=p,i.enterEdge=h,i.exchangeEdges=m;function i(x){x=a(x),n(x);var S=e(x);d(S),l(S,x);for(var k,_;k=p(S);)_=h(S,x,k),m(S,x,k,_)}function l(x,S){var k=s(x,x.nodes());k=k.slice(0,k.length-1),k.forEach(_=>c(x,S,_))}function c(x,S,k){var _=x.node(k),C=_.parent;x.edge(k,C).cutvalue=u(x,S,k)}function u(x,S,k){var _=x.node(k),C=_.parent,T=!0,E=S.edge(k,C),N=0;return E||(T=!1,E=S.edge(C,k)),N=E.weight,S.nodeEdges(k).forEach(I=>{var A=I.v===k,R=A?I.w:I.v;if(R!==C){var L=A===T,M=S.edge(I).weight;if(N+=L?M:-M,y(x,k,R)){var z=x.edge(k,R).cutvalue;N+=L?-z:z}}}),N}function d(x,S){arguments.length<2&&(S=x.nodes()[0]),f(x,{},1,S)}function f(x,S,k,_,C){var T=k,E=x.node(_);return S[_]=!0,x.neighbors(_).forEach(N=>{Object.hasOwn(S,N)||(k=f(x,S,k,N,_))}),E.low=T,E.lim=k++,C?E.parent=C:delete E.parent,k}function p(x){return x.edges().find(S=>x.edge(S).cutvalue<0)}function h(x,S,k){var _=k.v,C=k.w;S.hasEdge(_,C)||(_=k.w,C=k.v);var T=x.node(_),E=x.node(C),N=T,I=!1;T.lim>E.lim&&(N=E,I=!0);var A=S.edges().filter(R=>I===b(x,x.node(R.v),N)&&I!==b(x,x.node(R.w),N));return A.reduce((R,L)=>t(S,L)<t(S,R)?L:R)}function m(x,S,k,_){var C=k.v,T=k.w;x.removeEdge(C,T),x.setEdge(_.v,_.w,{}),d(x),l(x,S),v(x,S)}function v(x,S){var k=x.nodes().find(C=>!S.node(C).parent),_=r(x,k);_=_.slice(1),_.forEach(C=>{var T=x.node(C).parent,E=S.edge(C,T),N=!1;E||(E=S.edge(T,C),N=!0),S.node(C).rank=S.node(T).rank+(N?E.minlen:-E.minlen)})}function y(x,S,k){return x.hasEdge(S,k)}function b(x,S,k){return k.low<=S.lim&&S.lim<=k.lim}return Vte}var Hte,d7e;function _Wn(){if(d7e)return Hte;d7e=1;var e=tU(),t=e.longestPath,n=dOt(),r=OWn();Hte=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 Hte}var Wte,f7e;function CWn(){if(f7e)return Wte;f7e=1,Wte=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 Wte}var Zte,p7e;function EWn(){if(p7e)return Zte;p7e=1;let e=Pl();Zte={run:t,cleanup:a};function t(i){let l=e.addDummyNode(i,"root",{},"_root"),c=r(i),u=Object.values(c),d=e.applyWithChunking(Math.max,u)-1,f=2*d+1;i.graph().nestingRoot=l,i.edges().forEach(h=>i.edge(h).minlen*=f);let p=s(i)+1;i.children().forEach(h=>n(i,l,f,p,d,c,h)),i.graph().nodeRankFactor=f}function n(i,l,c,u,d,f,p){let h=i.children(p);if(!h.length){p!==l&&i.setEdge(l,p,{weight:0,minlen:c});return}let m=e.addBorderNode(i,"_bt"),v=e.addBorderNode(i,"_bb"),y=i.node(p);i.setParent(m,p),y.borderTop=m,i.setParent(v,p),y.borderBottom=v,h.forEach(b=>{n(i,l,c,u,d,f,b);let x=i.node(b),S=x.borderTop?x.borderTop:b,k=x.borderBottom?x.borderBottom:b,_=x.borderTop?u:2*u,C=S!==k?1:d-f[p]+1;i.setEdge(m,S,{weight:_,minlen:C,nestingEdge:!0}),i.setEdge(k,v,{weight:_,minlen:C,nestingEdge:!0})}),i.parent(p)||i.setEdge(l,m,{weight:0,minlen:d+f[p]})}function r(i){var l={};function c(u,d){var f=i.children(u);f&&f.length&&f.forEach(p=>c(p,d+1)),l[u]=d}return i.children().forEach(u=>c(u,1)),l}function s(i){return i.edges().reduce((l,c)=>l+i.edge(c).weight,0)}function a(i){var l=i.graph();i.removeNode(l.nestingRoot),delete l.nestingRoot,i.edges().forEach(c=>{var u=i.edge(c);u.nestingEdge&&i.removeEdge(c)})}return Zte}var Gte,h7e;function TWn(){if(h7e)return Gte;h7e=1;let e=Pl();Gte=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 Gte}var Qte,m7e;function jWn(){if(m7e)return Qte;m7e=1,Qte={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 Qte}var Yte,g7e;function NWn(){if(g7e)return Yte;g7e=1;let e=Pl();Yte=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 Yte}var Kte,v7e;function IWn(){if(v7e)return Kte;v7e=1;let e=Pl().zipObject;Kte=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 Kte}var Xte,y7e;function AWn(){if(y7e)return Xte;y7e=1,Xte=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 Xte}var Jte,b7e;function RWn(){if(b7e)return Jte;b7e=1;let e=Pl();Jte=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 Jte}var ene,x7e;function PWn(){if(x7e)return ene;x7e=1;let e=Pl();ene=t;function t(s,a){let i=e.partition(s,m=>Object.hasOwn(m,"barycenter")),l=i.lhs,c=i.rhs.sort((m,v)=>v.i-m.i),u=[],d=0,f=0,p=0;l.sort(r(!!a)),p=n(u,c,p),l.forEach(m=>{p+=m.vs.length,u.push(m.vs),d+=m.barycenter*m.weight,f+=m.weight,p=n(u,c,p)});let h={vs:u.flat(!0)};return f&&(h.barycenter=d/f,h.weight=f),h}function n(s,a,i){let l;for(;a.length&&(l=a[a.length-1]).i<=i;)a.pop(),s.push(l.vs),i++;return i}function r(s){return(a,i)=>a.barycenter<i.barycenter?-1:a.barycenter>i.barycenter?1:s?i.i-a.i:a.i-i.i}return ene}var tne,w7e;function $Wn(){if(w7e)return tne;w7e=1;let e=AWn(),t=RWn(),n=PWn();tne=r;function r(i,l,c,u){let d=i.children(l),f=i.node(l),p=f?f.borderLeft:void 0,h=f?f.borderRight:void 0,m={};p&&(d=d.filter(x=>x!==p&&x!==h));let v=e(i,d);v.forEach(x=>{if(i.children(x.v).length){let S=r(i,x.v,c,u);m[x.v]=S,Object.hasOwn(S,"barycenter")&&a(x,S)}});let y=t(v,c);s(y,m);let b=n(y,u);if(p&&(b.vs=[p,b.vs,h].flat(!0),i.predecessors(p).length)){let x=i.node(i.predecessors(p)[0]),S=i.node(i.predecessors(h)[0]);Object.hasOwn(b,"barycenter")||(b.barycenter=0,b.weight=0),b.barycenter=(b.barycenter*b.weight+x.order+S.order)/(b.weight+2),b.weight+=2}return b}function s(i,l){i.forEach(c=>{c.vs=c.vs.flatMap(u=>l[u]?l[u].vs:u)})}function a(i,l){i.barycenter!==void 0?(i.barycenter=(i.barycenter*i.weight+l.barycenter*l.weight)/(i.weight+l.weight),i.weight+=l.weight):(i.barycenter=l.barycenter,i.weight=l.weight)}return tne}var nne,S7e;function MWn(){if(S7e)return nne;S7e=1;let e=Hg().Graph,t=Pl();nne=n;function n(s,a,i,l){l||(l=s.nodes());let c=r(s),u=new e({compound:!0}).setGraph({root:c}).setDefaultNodeLabel(d=>s.node(d));return l.forEach(d=>{let f=s.node(d),p=s.parent(d);(f.rank===a||f.minRank<=a&&a<=f.maxRank)&&(u.setNode(d),u.setParent(d,p||c),s[i](d).forEach(h=>{let m=h.v===d?h.w:h.v,v=u.edge(m,d),y=v!==void 0?v.weight:0;u.setEdge(m,d,{weight:s.edge(h).weight+y})}),Object.hasOwn(f,"minRank")&&u.setNode(d,{borderLeft:f.borderLeft[a],borderRight:f.borderRight[a]}))}),u}function r(s){for(var a;s.hasNode(a=t.uniqueId("_root")););return a}return nne}var rne,k7e;function DWn(){if(k7e)return rne;k7e=1,rne=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 rne}var sne,O7e;function LWn(){if(O7e)return sne;O7e=1;let e=NWn(),t=IWn(),n=$Wn(),r=MWn(),s=DWn(),a=Hg().Graph,i=Pl();sne=l;function l(f,p){if(p&&typeof p.customOrder=="function"){p.customOrder(f,l);return}let h=i.maxRank(f),m=c(f,i.range(1,h+1),"inEdges"),v=c(f,i.range(h-1,-1,-1),"outEdges"),y=e(f);if(d(f,y),p&&p.disableOptimalOrderHeuristic)return;let b=Number.POSITIVE_INFINITY,x;for(let S=0,k=0;k<4;++S,++k){u(S%2?m:v,S%4>=2),y=i.buildLayerMatrix(f);let _=t(f,y);_<b&&(k=0,x=Object.assign({},y),b=_)}d(f,x)}function c(f,p,h){const m=new Map,v=(y,b)=>{m.has(y)||m.set(y,[]),m.get(y).push(b)};for(const y of f.nodes()){const b=f.node(y);if(typeof b.rank=="number"&&v(b.rank,y),typeof b.minRank=="number"&&typeof b.maxRank=="number")for(let x=b.minRank;x<=b.maxRank;x++)x!==b.rank&&v(x,y)}return p.map(function(y){return r(f,y,h,m.get(y)||[])})}function u(f,p){let h=new a;f.forEach(function(m){let v=m.graph().root,y=n(m,v,h,p);y.vs.forEach((b,x)=>m.node(b).order=x),s(m,h,y.vs)})}function d(f,p){Object.values(p).forEach(h=>h.forEach((m,v)=>f.node(m).order=v))}return sne}var ane,_7e;function FWn(){if(_7e)return ane;_7e=1;let e=Hg().Graph,t=Pl();ane={positionX:h,findType1Conflicts:n,findType2Conflicts:r,addConflict:a,hasConflict:i,verticalAlignment:l,horizontalCompaction:c,alignCoordinates:f,findSmallestWidthAlignment:d,balance:p};function n(y,b){let x={};function S(k,_){let C=0,T=0,E=k.length,N=_[_.length-1];return _.forEach((I,A)=>{let R=s(y,I),L=R?y.node(R).order:E;(R||I===N)&&(_.slice(T,A+1).forEach(M=>{y.predecessors(M).forEach(z=>{let H=y.node(z),F=H.order;(F<C||L<F)&&!(H.dummy&&y.node(M).dummy)&&a(x,z,M)})}),T=A+1,C=L)}),_}return b.length&&b.reduce(S),x}function r(y,b){let x={};function S(_,C,T,E,N){let I;t.range(C,T).forEach(A=>{I=_[A],y.node(I).dummy&&y.predecessors(I).forEach(R=>{let L=y.node(R);L.dummy&&(L.order<E||L.order>N)&&a(x,R,I)})})}function k(_,C){let T=-1,E,N=0;return C.forEach((I,A)=>{if(y.node(I).dummy==="border"){let R=y.predecessors(I);R.length&&(E=y.node(R[0]).order,S(C,N,A,T,E),N=A,T=E)}S(C,N,C.length,E,_.length)}),C}return b.length&&b.reduce(k),x}function s(y,b){if(y.node(b).dummy)return y.predecessors(b).find(x=>y.node(x).dummy)}function a(y,b,x){if(b>x){let k=b;b=x,x=k}let S=y[b];S||(y[b]=S={}),S[x]=!0}function i(y,b,x){if(b>x){let S=b;b=x,x=S}return!!y[b]&&Object.hasOwn(y[b],x)}function l(y,b,x,S){let k={},_={},C={};return b.forEach(T=>{T.forEach((E,N)=>{k[E]=E,_[E]=E,C[E]=N})}),b.forEach(T=>{let E=-1;T.forEach(N=>{let I=S(N);if(I.length){I=I.sort((R,L)=>C[R]-C[L]);let A=(I.length-1)/2;for(let R=Math.floor(A),L=Math.ceil(A);R<=L;++R){let M=I[R];_[N]===N&&E<C[M]&&!i(x,N,M)&&(_[M]=N,_[N]=k[N]=k[M],E=C[M])}}})}),{root:k,align:_}}function c(y,b,x,S,k){let _={},C=u(y,b,x,k),T=k?"borderLeft":"borderRight";function E(A,R){let L=C.nodes(),M=L.pop(),z={};for(;M;)z[M]?A(M):(z[M]=!0,L.push(M),L=L.concat(R(M))),M=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((M,z)=>Math.min(M,_[z.w]-C.edge(z)),Number.POSITIVE_INFINITY),L=y.node(A);R!==Number.POSITIVE_INFINITY&&L.borderType!==T&&(_[A]=Math.max(_[A],R))}return E(N,C.predecessors.bind(C)),E(I,C.successors.bind(C)),Object.keys(S).forEach(A=>_[A]=_[x[A]]),_}function u(y,b,x,S){let k=new e,_=y.graph(),C=m(_.nodesep,_.edgesep,S);return b.forEach(T=>{let E;T.forEach(N=>{let I=x[N];if(k.setNode(I),E){var A=x[E],R=k.edge(A,I);k.setEdge(A,I,Math.max(C(y,N,E),R||0))}E=N})}),k}function d(y,b){return Object.values(b).reduce((x,S)=>{let k=Number.NEGATIVE_INFINITY,_=Number.POSITIVE_INFINITY;Object.entries(S).forEach(([T,E])=>{let N=v(y,T)/2;k=Math.max(E+N,k),_=Math.min(E-N,_)});const C=k-_;return C<x[0]&&(x=[C,S]),x},[Number.POSITIVE_INFINITY,null])[1]}function f(y,b){let x=Object.values(b),S=t.applyWithChunking(Math.min,x),k=t.applyWithChunking(Math.max,x);["u","d"].forEach(_=>{["l","r"].forEach(C=>{let T=_+C,E=y[T];if(E===b)return;let N=Object.values(E),I=S-t.applyWithChunking(Math.min,N);C!=="l"&&(I=k-t.applyWithChunking(Math.max,N)),I&&(y[T]=t.mapValues(E,A=>A+I))})})}function p(y,b){return t.mapValues(y.ul,(x,S)=>{if(b)return y[b.toLowerCase()][S];{let k=Object.values(y).map(_=>_[S]).sort((_,C)=>_-C);return(k[1]+k[2])/2}})}function h(y){let b=t.buildLayerMatrix(y),x=Object.assign(n(y,b),r(y,b)),S={},k;["u","d"].forEach(C=>{k=C==="u"?b:Object.values(b).reverse(),["l","r"].forEach(T=>{T==="r"&&(k=k.map(A=>Object.values(A).reverse()));let E=(C==="u"?y.predecessors:y.successors).bind(y),N=l(y,k,x,E),I=c(y,k,N.root,N.align,T==="r");T==="r"&&(I=t.mapValues(I,A=>-A)),S[C+T]=I})});let _=d(y,S);return f(S,_),p(S,y.graph().align)}function m(y,b,x){return(S,k,_)=>{let C=S.node(k),T=S.node(_),E=0,N;if(E+=C.width/2,Object.hasOwn(C,"labelpos"))switch(C.labelpos.toLowerCase()){case"l":N=-C.width/2;break;case"r":N=C.width/2;break}if(N&&(E+=x?N:-N),N=0,E+=(C.dummy?b:y)/2,E+=(T.dummy?b:y)/2,E+=T.width/2,Object.hasOwn(T,"labelpos"))switch(T.labelpos.toLowerCase()){case"l":N=T.width/2;break;case"r":N=-T.width/2;break}return N&&(E+=x?N:-N),N=0,E}}function v(y,b){return y.node(b).width}return ane}var ine,C7e;function zWn(){if(C7e)return ine;C7e=1;let e=Pl(),t=FWn().positionX;ine=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 ine}var one,E7e;function BWn(){if(E7e)return one;E7e=1;let e=SWn(),t=kWn(),n=_Wn(),r=Pl().normalizeRanks,s=CWn(),a=Pl().removeEmptyRanks,i=EWn(),l=TWn(),c=jWn(),u=LWn(),d=zWn(),f=Pl(),p=Hg().Graph;one=h;function h(P,q){let G=q&&q.debugTiming?f.time:f.notime;G("layout",()=>{let K=G(" buildLayoutGraph",()=>E(P));G(" runLayout",()=>m(K,G,q)),G(" updateInputGraph",()=>v(P,K))})}function m(P,q,G){q(" makeSpaceForEdgeLabels",()=>N(P)),q(" removeSelfEdges",()=>B(P)),q(" acyclic",()=>e.run(P)),q(" nestingGraph.run",()=>i.run(P)),q(" rank",()=>n(f.asNonCompoundGraph(P))),q(" injectEdgeLabelProxies",()=>I(P)),q(" removeEmptyRanks",()=>a(P)),q(" nestingGraph.cleanup",()=>i.cleanup(P)),q(" normalizeRanks",()=>r(P)),q(" assignRankMinMax",()=>A(P)),q(" removeEdgeLabelProxies",()=>R(P)),q(" normalize.run",()=>t.run(P)),q(" parentDummyChains",()=>s(P)),q(" addBorderSegments",()=>l(P)),q(" order",()=>u(P,G)),q(" insertSelfEdges",()=>V(P)),q(" adjustCoordinateSystem",()=>c.adjust(P)),q(" position",()=>d(P)),q(" positionSelfEdges",()=>D(P)),q(" removeBorderNodes",()=>F(P)),q(" normalize.undo",()=>t.undo(P)),q(" fixupEdgeLabelCoords",()=>z(P)),q(" undoCoordinateSystem",()=>c.undo(P)),q(" translateGraph",()=>L(P)),q(" assignNodeIntersects",()=>M(P)),q(" reversePoints",()=>H(P)),q(" acyclic.undo",()=>e.undo(P))}function v(P,q){P.nodes().forEach(G=>{let K=P.node(G),ne=q.node(G);K&&(K.x=ne.x,K.y=ne.y,K.rank=ne.rank,q.children(G).length&&(K.width=ne.width,K.height=ne.height))}),P.edges().forEach(G=>{let K=P.edge(G),ne=q.edge(G);K.points=ne.points,Object.hasOwn(ne,"x")&&(K.x=ne.x,K.y=ne.y)}),P.graph().width=q.graph().width,P.graph().height=q.graph().height}let y=["nodesep","edgesep","ranksep","marginx","marginy"],b={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},x=["acyclicer","ranker","rankdir","align"],S=["width","height","rank"],k={width:0,height:0},_=["minlen","weight","width","height","labeloffset"],C={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},T=["labelpos"];function E(P){let q=new p({multigraph:!0,compound:!0}),G=U(P.graph());return q.setGraph(Object.assign({},b,Z(G,y),f.pick(G,x))),P.nodes().forEach(K=>{let ne=U(P.node(K));const J=Z(ne,S);Object.keys(k).forEach(ee=>{J[ee]===void 0&&(J[ee]=k[ee])}),q.setNode(K,J),q.setParent(K,P.parent(K))}),P.edges().forEach(K=>{let ne=U(P.edge(K));q.setEdge(K,Object.assign({},C,Z(ne,_),f.pick(ne,T)))}),q}function N(P){let q=P.graph();q.ranksep/=2,P.edges().forEach(G=>{let K=P.edge(G);K.minlen*=2,K.labelpos.toLowerCase()!=="c"&&(q.rankdir==="TB"||q.rankdir==="BT"?K.width+=K.labeloffset:K.height+=K.labeloffset)})}function I(P){P.edges().forEach(q=>{let G=P.edge(q);if(G.width&&G.height){let K=P.node(q.v),J={rank:(P.node(q.w).rank-K.rank)/2+K.rank,e:q};f.addDummyNode(P,"edge-proxy",J,"_ep")}})}function A(P){let q=0;P.nodes().forEach(G=>{let K=P.node(G);K.borderTop&&(K.minRank=P.node(K.borderTop).rank,K.maxRank=P.node(K.borderBottom).rank,q=Math.max(q,K.maxRank))}),P.graph().maxRank=q}function R(P){P.nodes().forEach(q=>{let G=P.node(q);G.dummy==="edge-proxy"&&(P.edge(G.e).labelRank=G.rank,P.removeNode(q))})}function L(P){let q=Number.POSITIVE_INFINITY,G=0,K=Number.POSITIVE_INFINITY,ne=0,J=P.graph(),ee=J.marginx||0,re=J.marginy||0;function le(X){let te=X.x,se=X.y,fe=X.width,ce=X.height;q=Math.min(q,te-fe/2),G=Math.max(G,te+fe/2),K=Math.min(K,se-ce/2),ne=Math.max(ne,se+ce/2)}P.nodes().forEach(X=>le(P.node(X))),P.edges().forEach(X=>{let te=P.edge(X);Object.hasOwn(te,"x")&&le(te)}),q-=ee,K-=re,P.nodes().forEach(X=>{let te=P.node(X);te.x-=q,te.y-=K}),P.edges().forEach(X=>{let te=P.edge(X);te.points.forEach(se=>{se.x-=q,se.y-=K}),Object.hasOwn(te,"x")&&(te.x-=q),Object.hasOwn(te,"y")&&(te.y-=K)}),J.width=G-q+ee,J.height=ne-K+re}function M(P){P.edges().forEach(q=>{let G=P.edge(q),K=P.node(q.v),ne=P.node(q.w),J,ee;G.points?(J=G.points[0],ee=G.points[G.points.length-1]):(G.points=[],J=ne,ee=K),G.points.unshift(f.intersectRect(K,J)),G.points.push(f.intersectRect(ne,ee))})}function z(P){P.edges().forEach(q=>{let G=P.edge(q);if(Object.hasOwn(G,"x"))switch((G.labelpos==="l"||G.labelpos==="r")&&(G.width-=G.labeloffset),G.labelpos){case"l":G.x-=G.width/2+G.labeloffset;break;case"r":G.x+=G.width/2+G.labeloffset;break}})}function H(P){P.edges().forEach(q=>{let G=P.edge(q);G.reversed&&G.points.reverse()})}function F(P){P.nodes().forEach(q=>{if(P.children(q).length){let G=P.node(q),K=P.node(G.borderTop),ne=P.node(G.borderBottom),J=P.node(G.borderLeft[G.borderLeft.length-1]),ee=P.node(G.borderRight[G.borderRight.length-1]);G.width=Math.abs(ee.x-J.x),G.height=Math.abs(ne.y-K.y),G.x=J.x+G.width/2,G.y=K.y+G.height/2}}),P.nodes().forEach(q=>{P.node(q).dummy==="border"&&P.removeNode(q)})}function B(P){P.edges().forEach(q=>{if(q.v===q.w){var G=P.node(q.v);G.selfEdges||(G.selfEdges=[]),G.selfEdges.push({e:q,label:P.edge(q)}),P.removeEdge(q)}})}function V(P){var q=f.buildLayerMatrix(P);q.forEach(G=>{var K=0;G.forEach((ne,J)=>{var ee=P.node(ne);ee.order=J+K,(ee.selfEdges||[]).forEach(re=>{f.addDummyNode(P,"selfedge",{width:re.label.width,height:re.label.height,rank:ee.rank,order:J+ ++K,e:re.e,label:re.label},"_se")}),delete ee.selfEdges})})}function D(P){P.nodes().forEach(q=>{var G=P.node(q);if(G.dummy==="selfedge"){var K=P.node(G.e.v),ne=K.x+K.width/2,J=K.y,ee=G.x-ne,re=K.height/2;P.setEdge(G.e,G.label),P.removeNode(q),G.label.points=[{x:ne+2*ee/3,y:J-re},{x:ne+5*ee/6,y:J-re},{x:ne+ee,y:J},{x:ne+5*ee/6,y:J+re},{x:ne+2*ee/3,y:J+re}],G.label.x=G.x,G.label.y=G.y}})}function Z(P,q){return f.mapValues(f.pick(P,q),Number)}function U(P){var q={};return P&&Object.entries(P).forEach(([G,K])=>{typeof G=="string"&&(G=G.toLowerCase()),q[G]=K}),q}return one}var lne,T7e;function UWn(){if(T7e)return lne;T7e=1;let e=Pl(),t=Hg().Graph;lne={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 lne}var cne,j7e;function qWn(){return j7e||(j7e=1,cne="1.1.8"),cne}var une,N7e;function VWn(){return N7e||(N7e=1,une={graphlib:Hg(),layout:BWn(),debug:UWn(),util:{time:Pl().time,notime:Pl().notime},version:qWn()}),une}var HWn=VWn();const I7e=Vl(HWn);function Gl(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=Gl(e[n]))!==""&&(t+=(t&&" ")+r);else for(let n in e)e[n]&&(t+=(t&&" ")+n);return t}var WWn={value:()=>{}};function gW(){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 t9(n)}function t9(e){this._=e}function ZWn(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}})}t9.prototype=gW.prototype={constructor:t9,on:function(e,t){var n=this._,r=ZWn(e+"",n),s,a=-1,i=r.length;if(arguments.length<2){for(;++a<i;)if((s=(e=r[a]).type)&&(s=GWn(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]=A7e(n[s],e.name,t);else if(t==null)for(s in n)n[s]=A7e(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 t9(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 GWn(e,t){for(var n=0,r=e.length,s;n<r;++n)if((s=e[n]).name===t)return s.value}function A7e(e,t,n){for(var r=0,s=e.length;r<s;++r)if(e[r].name===t){e[r]=WWn,e=e.slice(0,r).concat(e.slice(r+1));break}return n!=null&&e.push({name:t,value:n}),e}var wve="http://www.w3.org/1999/xhtml";const R7e={svg:"http://www.w3.org/2000/svg",xhtml:wve,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function vW(e){var t=e+="",n=t.indexOf(":");return n>=0&&(t=e.slice(0,n))!=="xmlns"&&(e=e.slice(n+1)),R7e.hasOwnProperty(t)?{space:R7e[t],local:e}:e}function QWn(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===wve&&t.documentElement.namespaceURI===wve?t.createElement(e):t.createElementNS(n,e)}}function YWn(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function fOt(e){var t=vW(e);return(t.local?YWn:QWn)(t)}function KWn(){}function SOe(e){return e==null?KWn:function(){return this.querySelector(e)}}function XWn(e){typeof e!="function"&&(e=SOe(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 Xp(r,this._parents)}function JWn(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function eZn(){return[]}function pOt(e){return e==null?eZn:function(){return this.querySelectorAll(e)}}function tZn(e){return function(){return JWn(e.apply(this,arguments))}}function nZn(e){typeof e=="function"?e=tZn(e):e=pOt(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 Xp(r,s)}function hOt(e){return function(){return this.matches(e)}}function mOt(e){return function(t){return t.matches(e)}}var rZn=Array.prototype.find;function sZn(e){return function(){return rZn.call(this.children,e)}}function aZn(){return this.firstElementChild}function iZn(e){return this.select(e==null?aZn:sZn(typeof e=="function"?e:mOt(e)))}var oZn=Array.prototype.filter;function lZn(){return Array.from(this.children)}function cZn(e){return function(){return oZn.call(this.children,e)}}function uZn(e){return this.selectAll(e==null?lZn:cZn(typeof e=="function"?e:mOt(e)))}function dZn(e){typeof e!="function"&&(e=hOt(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 Xp(r,this._parents)}function gOt(e){return new Array(e.length)}function fZn(){return new Xp(this._enter||this._groups.map(gOt),this._parents)}function nU(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}nU.prototype={constructor:nU,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 pZn(e){return function(){return e}}function hZn(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 nU(e,a[i]);for(;i<c;++i)(l=t[i])&&(s[i]=l)}function mZn(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 nU(e,a[l]);for(l=0;l<d;++l)(c=t[l])&&u.get(p[l])===c&&(s[l]=c)}function gZn(e){return e.__data__}function vZn(e,t){if(!arguments.length)return Array.from(this,gZn);var n=t?mZn:hZn,r=this._parents,s=this._groups;typeof e!="function"&&(e=pZn(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=yZn(e.call(d,d&&d.__data__,u,r)),m=h.length,v=l[u]=new Array(m),y=i[u]=new Array(m),b=c[u]=new Array(p);n(d,f,v,y,b,h,t);for(var x=0,S=0,k,_;x<m;++x)if(k=v[x]){for(x>=S&&(S=x+1);!(_=y[S])&&++S<m;);k._next=_||null}}return i=new Xp(i,r),i._enter=l,i._exit=c,i}function yZn(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function bZn(){return new Xp(this._exit||this._groups.map(gOt),this._parents)}function xZn(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 wZn(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 Xp(l,this._parents)}function SZn(){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 kZn(e){e||(e=OZn);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 Xp(s,this._parents).order()}function OZn(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function _Zn(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function CZn(){return Array.from(this)}function EZn(){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 TZn(){let e=0;for(const t of this)++e;return e}function jZn(){return!this.node()}function NZn(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 IZn(e){return function(){this.removeAttribute(e)}}function AZn(e){return function(){this.removeAttributeNS(e.space,e.local)}}function RZn(e,t){return function(){this.setAttribute(e,t)}}function PZn(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function $Zn(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}}function MZn(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 DZn(e,t){var n=vW(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?AZn:IZn:typeof t=="function"?n.local?MZn:$Zn:n.local?PZn:RZn)(n,t))}function vOt(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function LZn(e){return function(){this.style.removeProperty(e)}}function FZn(e,t,n){return function(){this.style.setProperty(e,t,n)}}function zZn(e,t,n){return function(){var r=t.apply(this,arguments);r==null?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function BZn(e,t,n){return arguments.length>1?this.each((t==null?LZn:typeof t=="function"?zZn:FZn)(e,t,n??"")):oN(this.node(),e)}function oN(e,t){return e.style.getPropertyValue(t)||vOt(e).getComputedStyle(e,null).getPropertyValue(t)}function UZn(e){return function(){delete this[e]}}function qZn(e,t){return function(){this[e]=t}}function VZn(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function HZn(e,t){return arguments.length>1?this.each((t==null?UZn:typeof t=="function"?VZn:qZn)(e,t)):this.node()[e]}function yOt(e){return e.trim().split(/^|\s+/)}function kOe(e){return e.classList||new bOt(e)}function bOt(e){this._node=e,this._names=yOt(e.getAttribute("class")||"")}bOt.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 xOt(e,t){for(var n=kOe(e),r=-1,s=t.length;++r<s;)n.add(t[r])}function wOt(e,t){for(var n=kOe(e),r=-1,s=t.length;++r<s;)n.remove(t[r])}function WZn(e){return function(){xOt(this,e)}}function ZZn(e){return function(){wOt(this,e)}}function GZn(e,t){return function(){(t.apply(this,arguments)?xOt:wOt)(this,e)}}function QZn(e,t){var n=yOt(e+"");if(arguments.length<2){for(var r=kOe(this.node()),s=-1,a=n.length;++s<a;)if(!r.contains(n[s]))return!1;return!0}return this.each((typeof t=="function"?GZn:t?WZn:ZZn)(n,t))}function YZn(){this.textContent=""}function KZn(e){return function(){this.textContent=e}}function XZn(e){return function(){var t=e.apply(this,arguments);this.textContent=t??""}}function JZn(e){return arguments.length?this.each(e==null?YZn:(typeof e=="function"?XZn:KZn)(e)):this.node().textContent}function eGn(){this.innerHTML=""}function tGn(e){return function(){this.innerHTML=e}}function nGn(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??""}}function rGn(e){return arguments.length?this.each(e==null?eGn:(typeof e=="function"?nGn:tGn)(e)):this.node().innerHTML}function sGn(){this.nextSibling&&this.parentNode.appendChild(this)}function aGn(){return this.each(sGn)}function iGn(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function oGn(){return this.each(iGn)}function lGn(e){var t=typeof e=="function"?e:fOt(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function cGn(){return null}function uGn(e,t){var n=typeof e=="function"?e:fOt(e),r=t==null?cGn:typeof t=="function"?t:SOe(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})}function dGn(){var e=this.parentNode;e&&e.removeChild(this)}function fGn(){return this.each(dGn)}function pGn(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function hGn(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function mGn(e){return this.select(e?hGn:pGn)}function gGn(e){return arguments.length?this.property("__data__",e):this.node().__data__}function vGn(e){return function(t){e.call(this,t,this.__data__)}}function yGn(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 bGn(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 xGn(e,t,n){return function(){var r=this.__on,s,a=vGn(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 wGn(e,t,n){var r=yGn(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?xGn:bGn,s=0;s<a;++s)this.each(l(r[s],t,n));return this}function SOt(e,t,n){var r=vOt(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 SGn(e,t){return function(){return SOt(this,e,t)}}function kGn(e,t){return function(){return SOt(this,e,t.apply(this,arguments))}}function OGn(e,t){return this.each((typeof t=="function"?kGn:SGn)(e,t))}function*_Gn(){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 kOt=[null];function Xp(e,t){this._groups=e,this._parents=t}function a4(){return new Xp([[document.documentElement]],kOt)}function CGn(){return this}Xp.prototype=a4.prototype={constructor:Xp,select:XWn,selectAll:nZn,selectChild:iZn,selectChildren:uZn,filter:dZn,data:vZn,enter:fZn,exit:bZn,join:xZn,merge:wZn,selection:CGn,order:SZn,sort:kZn,call:_Zn,nodes:CZn,node:EZn,size:TZn,empty:jZn,each:NZn,attr:DZn,style:BZn,property:HZn,classed:QZn,text:JZn,html:rGn,raise:aGn,lower:oGn,append:lGn,insert:uGn,remove:fGn,clone:mGn,datum:gGn,on:wGn,dispatch:OGn,[Symbol.iterator]:_Gn};function Ep(e){return typeof e=="string"?new Xp([[document.querySelector(e)]],[document.documentElement]):new Xp([[e]],kOt)}function EGn(e){let t;for(;t=e.sourceEvent;)e=t;return e}function mg(e,t){if(e=EGn(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 TGn={passive:!1},FM={capture:!0,passive:!1};function dne(e){e.stopImmediatePropagation()}function uj(e){e.preventDefault(),e.stopImmediatePropagation()}function OOt(e){var t=e.document.documentElement,n=Ep(e).on("dragstart.drag",uj,FM);"onselectstart"in t?n.on("selectstart.drag",uj,FM):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect="none")}function _Ot(e,t){var n=e.document.documentElement,r=Ep(e).on("dragstart.drag",null);t&&(r.on("click.drag",uj,FM),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 _F=e=>()=>e;function Sve(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}})}Sve.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function jGn(e){return!e.ctrlKey&&!e.button}function NGn(){return this.parentNode}function IGn(e,t){return t??{x:e.x,y:e.y}}function AGn(){return navigator.maxTouchPoints||"ontouchstart"in this}function COt(){var e=jGn,t=NGn,n=IGn,r=AGn,s={},a=gW("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,TGn).on("touchend.drag touchcancel.drag",x).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function h(k,_){if(!(d||!e.call(this,k,_))){var C=S(this,t.call(this,k,_),k,_,"mouse");C&&(Ep(k.view).on("mousemove.drag",m,FM).on("mouseup.drag",v,FM),OOt(k.view),dne(k),u=!1,l=k.clientX,c=k.clientY,C("start",k))}}function m(k){if(uj(k),!u){var _=k.clientX-l,C=k.clientY-c;u=_*_+C*C>f}s.mouse("drag",k)}function v(k){Ep(k.view).on("mousemove.drag mouseup.drag",null),_Ot(k.view,u),uj(k),s.mouse("end",k)}function y(k,_){if(e.call(this,k,_)){var C=k.changedTouches,T=t.call(this,k,_),E=C.length,N,I;for(N=0;N<E;++N)(I=S(this,T,k,_,C[N].identifier,C[N]))&&(dne(k),I("start",k,C[N]))}}function b(k){var _=k.changedTouches,C=_.length,T,E;for(T=0;T<C;++T)(E=s[_[T].identifier])&&(uj(k),E("drag",k,_[T]))}function x(k){var _=k.changedTouches,C=_.length,T,E;for(d&&clearTimeout(d),d=setTimeout(function(){d=null},500),T=0;T<C;++T)(E=s[_[T].identifier])&&(dne(k),E("end",k,_[T]))}function S(k,_,C,T,E,N){var I=a.copy(),A=mg(N||C,_),R,L,M;if((M=n.call(k,new Sve("beforestart",{sourceEvent:C,target:p,identifier:E,active:i,x:A[0],y:A[1],dx:0,dy:0,dispatch:I}),T))!=null)return R=M.x-A[0]||0,L=M.y-A[1]||0,function z(H,F,B){var V=A,D;switch(H){case"start":s[E]=z,D=i++;break;case"end":delete s[E],--i;case"drag":A=mg(B||F,_),D=i;break}I.call(H,k,new Sve(H,{sourceEvent:F,subject:M,target:p,identifier:E,active:D,x:A[0]+R,y:A[1]+L,dx:A[0]-V[0],dy:A[1]-V[1],dispatch:I}),T)}}return p.filter=function(k){return arguments.length?(e=typeof k=="function"?k:_F(!!k),p):e},p.container=function(k){return arguments.length?(t=typeof k=="function"?k:_F(k),p):t},p.subject=function(k){return arguments.length?(n=typeof k=="function"?k:_F(k),p):n},p.touchable=function(k){return arguments.length?(r=typeof k=="function"?k:_F(!!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 OOe(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function EOt(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function i4(){}var zM=.7,rU=1/zM,dj="\\s*([+-]?\\d+)\\s*",BM="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",cy="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",RGn=/^#([0-9a-f]{3,8})$/,PGn=new RegExp(`^rgb\\(${dj},${dj},${dj}\\)$`),$Gn=new RegExp(`^rgb\\(${cy},${cy},${cy}\\)$`),MGn=new RegExp(`^rgba\\(${dj},${dj},${dj},${BM}\\)$`),DGn=new RegExp(`^rgba\\(${cy},${cy},${cy},${BM}\\)$`),LGn=new RegExp(`^hsl\\(${BM},${cy},${cy}\\)$`),FGn=new RegExp(`^hsla\\(${BM},${cy},${cy},${BM}\\)$`),P7e={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};OOe(i4,JO,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:$7e,formatHex:$7e,formatHex8:zGn,formatHsl:BGn,formatRgb:M7e,toString:M7e});function $7e(){return this.rgb().formatHex()}function zGn(){return this.rgb().formatHex8()}function BGn(){return TOt(this).formatHsl()}function M7e(){return this.rgb().formatRgb()}function JO(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=RGn.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?D7e(t):n===3?new Tf(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?CF(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?CF(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=PGn.exec(e))?new Tf(t[1],t[2],t[3],1):(t=$Gn.exec(e))?new Tf(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=MGn.exec(e))?CF(t[1],t[2],t[3],t[4]):(t=DGn.exec(e))?CF(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=LGn.exec(e))?z7e(t[1],t[2]/100,t[3]/100,1):(t=FGn.exec(e))?z7e(t[1],t[2]/100,t[3]/100,t[4]):P7e.hasOwnProperty(e)?D7e(P7e[e]):e==="transparent"?new Tf(NaN,NaN,NaN,0):null}function D7e(e){return new Tf(e>>16&255,e>>8&255,e&255,1)}function CF(e,t,n,r){return r<=0&&(e=t=n=NaN),new Tf(e,t,n,r)}function UGn(e){return e instanceof i4||(e=JO(e)),e?(e=e.rgb(),new Tf(e.r,e.g,e.b,e.opacity)):new Tf}function kve(e,t,n,r){return arguments.length===1?UGn(e):new Tf(e,t,n,r??1)}function Tf(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}OOe(Tf,kve,EOt(i4,{brighter(e){return e=e==null?rU:Math.pow(rU,e),new Tf(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?zM:Math.pow(zM,e),new Tf(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Tf(iO(this.r),iO(this.g),iO(this.b),sU(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:L7e,formatHex:L7e,formatHex8:qGn,formatRgb:F7e,toString:F7e}));function L7e(){return`#${Fk(this.r)}${Fk(this.g)}${Fk(this.b)}`}function qGn(){return`#${Fk(this.r)}${Fk(this.g)}${Fk(this.b)}${Fk((isNaN(this.opacity)?1:this.opacity)*255)}`}function F7e(){const e=sU(this.opacity);return`${e===1?"rgb(":"rgba("}${iO(this.r)}, ${iO(this.g)}, ${iO(this.b)}${e===1?")":`, ${e})`}`}function sU(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function iO(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Fk(e){return e=iO(e),(e<16?"0":"")+e.toString(16)}function z7e(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new Sg(e,t,n,r)}function TOt(e){if(e instanceof Sg)return new Sg(e.h,e.s,e.l,e.opacity);if(e instanceof i4||(e=JO(e)),!e)return new Sg;if(e instanceof Sg)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 Sg(i,l,c,e.opacity)}function VGn(e,t,n,r){return arguments.length===1?TOt(e):new Sg(e,t,n,r??1)}function Sg(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}OOe(Sg,VGn,EOt(i4,{brighter(e){return e=e==null?rU:Math.pow(rU,e),new Sg(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?zM:Math.pow(zM,e),new Sg(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 Tf(fne(e>=240?e-240:e+120,s,r),fne(e,s,r),fne(e<120?e+240:e-120,s,r),this.opacity)},clamp(){return new Sg(B7e(this.h),EF(this.s),EF(this.l),sU(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=sU(this.opacity);return`${e===1?"hsl(":"hsla("}${B7e(this.h)}, ${EF(this.s)*100}%, ${EF(this.l)*100}%${e===1?")":`, ${e})`}`}}));function B7e(e){return e=(e||0)%360,e<0?e+360:e}function EF(e){return Math.max(0,Math.min(1,e||0))}function fne(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 _Oe=e=>()=>e;function HGn(e,t){return function(n){return e+n*t}}function WGn(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 ZGn(e){return(e=+e)==1?jOt:function(t,n){return n-t?WGn(t,n,e):_Oe(isNaN(t)?n:t)}}function jOt(e,t){var n=t-e;return n?HGn(e,n):_Oe(isNaN(e)?t:e)}const aU=(function e(t){var n=ZGn(t);function r(s,a){var i=n((s=kve(s)).r,(a=kve(a)).r),l=n(s.g,a.g),c=n(s.b,a.b),u=jOt(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 GGn(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 QGn(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function YGn(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]=mx(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 KGn(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function vg(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function XGn(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]=mx(e[s],t[s]):r[s]=t[s];return function(a){for(s in n)r[s]=n[s](a);return r}}var Ove=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,pne=new RegExp(Ove.source,"g");function JGn(e){return function(){return e}}function eQn(e){return function(t){return e(t)+""}}function NOt(e,t){var n=Ove.lastIndex=pne.lastIndex=0,r,s,a,i=-1,l=[],c=[];for(e=e+"",t=t+"";(r=Ove.exec(e))&&(s=pne.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:vg(r,s)})),n=pne.lastIndex;return n<t.length&&(a=t.slice(n),l[i]?l[i]+=a:l[++i]=a),l.length<2?c[0]?eQn(c[0].x):JGn(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 mx(e,t){var n=typeof t,r;return t==null||n==="boolean"?_Oe(t):(n==="number"?vg:n==="string"?(r=JO(t))?(t=r,aU):NOt:t instanceof JO?aU:t instanceof Date?KGn:QGn(t)?GGn:Array.isArray(t)?YGn:typeof t.valueOf!="function"&&typeof t.toString!="function"||isNaN(t)?XGn:vg)(e,t)}function COe(e,t){return e=+e,t=+t,function(n){return Math.round(e*(1-n)+t*n)}}var U7e=180/Math.PI,_ve={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function IOt(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)*U7e,skewX:Math.atan(c)*U7e,scaleX:i,scaleY:l}}var TF;function tQn(e){const t=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?_ve:IOt(t.a,t.b,t.c,t.d,t.e,t.f)}function nQn(e){return e==null||(TF||(TF=document.createElementNS("http://www.w3.org/2000/svg","g")),TF.setAttribute("transform",e),!(e=TF.transform.baseVal.consolidate()))?_ve:(e=e.matrix,IOt(e.a,e.b,e.c,e.d,e.e,e.f))}function AOt(e,t,n,r){function s(u){return u.length?u.pop()+" ":""}function a(u,d,f,p,h,m){if(u!==f||d!==p){var v=h.push("translate(",null,t,null,n);m.push({i:v-4,x:vg(u,f)},{i:v-2,x:vg(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:vg(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:vg(u,d)}):d&&f.push(s(f)+"skewX("+d+r)}function c(u,d,f,p,h,m){if(u!==f||d!==p){var v=h.push(s(h)+"scale(",null,",",null,")");m.push({i:v-4,x:vg(u,f)},{i:v-2,x:vg(d,p)})}else(f!==1||p!==1)&&h.push(s(h)+"scale("+f+","+p+")")}return function(u,d){var f=[],p=[];return u=e(u),d=e(d),a(u.translateX,u.translateY,d.translateX,d.translateY,f,p),i(u.rotate,d.rotate,f,p),l(u.skewX,d.skewX,f,p),c(u.scaleX,u.scaleY,d.scaleX,d.scaleY,f,p),u=d=null,function(h){for(var m=-1,v=p.length,y;++m<v;)f[(y=p[m]).i]=y.x(h);return f.join("")}}}var rQn=AOt(tQn,"px, ","px)","deg)"),sQn=AOt(nQn,", ",")",")"),aQn=1e-12;function q7e(e){return((e=Math.exp(e))+1/e)/2}function iQn(e){return((e=Math.exp(e))-1/e)/2}function oQn(e){return((e=Math.exp(2*e))-1)/(e+1)}const n9=(function e(t,n,r){function s(a,i){var l=a[0],c=a[1],u=a[2],d=i[0],f=i[1],p=i[2],h=d-l,m=f-c,v=h*h+m*m,y,b;if(v<aQn)b=Math.log(p/u)/t,y=function(T){return[l+T*h,c+T*m,u*Math.exp(t*T*b)]};else{var x=Math.sqrt(v),S=(p*p-u*u+r*v)/(2*u*n*x),k=(p*p-u*u-r*v)/(2*p*n*x),_=Math.log(Math.sqrt(S*S+1)-S),C=Math.log(Math.sqrt(k*k+1)-k);b=(C-_)/t,y=function(T){var E=T*b,N=q7e(_),I=u/(n*x)*(N*oQn(t*E+_)-iQn(_));return[l+I*h,c+I*m,u*N/q7e(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 lQn(e,t){t===void 0&&(t=e,e=mx);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 lN=0,t$=0,FR=0,ROt=1e3,iU,n$,oU=0,e_=0,yW=0,UM=typeof performance=="object"&&performance.now?performance:Date,POt=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function EOe(){return e_||(POt(cQn),e_=UM.now()+yW)}function cQn(){e_=0}function lU(){this._call=this._time=this._next=null}lU.prototype=$Ot.prototype={constructor:lU,restart:function(e,t,n){if(typeof e!="function")throw new TypeError("callback is not a function");n=(n==null?EOe():+n)+(t==null?0:+t),!this._next&&n$!==this&&(n$?n$._next=this:iU=this,n$=this),this._call=e,this._time=n,Cve()},stop:function(){this._call&&(this._call=null,this._time=1/0,Cve())}};function $Ot(e,t,n){var r=new lU;return r.restart(e,t,n),r}function uQn(){EOe(),++lN;for(var e=iU,t;e;)(t=e_-e._time)>=0&&e._call.call(void 0,t),e=e._next;--lN}function V7e(){e_=(oU=UM.now())+yW,lN=t$=0;try{uQn()}finally{lN=0,fQn(),e_=0}}function dQn(){var e=UM.now(),t=e-oU;t>ROt&&(yW-=t,oU=e)}function fQn(){for(var e,t=iU,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:iU=n);n$=e,Cve(r)}function Cve(e){if(!lN){t$&&(t$=clearTimeout(t$));var t=e-e_;t>24?(e<1/0&&(t$=setTimeout(V7e,e-UM.now()-yW)),FR&&(FR=clearInterval(FR))):(FR||(oU=UM.now(),FR=setInterval(dQn,ROt)),lN=1,POt(V7e))}}function H7e(e,t,n){var r=new lU;return t=t==null?0:+t,r.restart(s=>{r.stop(),e(s+t)},t,n),r}var pQn=gW("start","end","cancel","interrupt"),hQn=[],MOt=0,W7e=1,Eve=2,r9=3,Z7e=4,Tve=5,s9=6;function bW(e,t,n,r,s,a){var i=e.__transition;if(!i)e.__transition={};else if(n in i)return;mQn(e,n,{name:t,index:r,group:s,on:pQn,tween:hQn,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:MOt})}function TOe(e,t){var n=Jg(e,t);if(n.state>MOt)throw new Error("too late; already scheduled");return n}function zy(e,t){var n=Jg(e,t);if(n.state>r9)throw new Error("too late; already running");return n}function Jg(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function mQn(e,t,n){var r=e.__transition,s;r[t]=n,n.timer=$Ot(a,0,n.time);function a(u){n.state=W7e,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!==W7e)return c();for(d in r)if(h=r[d],h.name===n.name){if(h.state===r9)return H7e(i);h.state===Z7e?(h.state=s9,h.timer.stop(),h.on.call("interrupt",e,e.__data__,h.index,h.group),delete r[d]):+d<t&&(h.state=s9,h.timer.stop(),h.on.call("cancel",e,e.__data__,h.index,h.group),delete r[d])}if(H7e(function(){n.state===r9&&(n.state=Z7e,n.timer.restart(l,n.delay,n.time),l(u))}),n.state=Eve,n.on.call("start",e,e.__data__,n.index,n.group),n.state===Eve){for(n.state=r9,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=Tve,1),f=-1,p=s.length;++f<p;)s[f].call(e,d);n.state===Tve&&(n.on.call("end",e,e.__data__,n.index,n.group),c())}function c(){n.state=s9,n.timer.stop(),delete r[t];for(var u in r)return;delete e.__transition}}function a9(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>Eve&&r.state<Tve,r.state=s9,r.timer.stop(),r.on.call(s?"interrupt":"cancel",e,e.__data__,r.index,r.group),delete n[i]}a&&delete e.__transition}}function gQn(e){return this.each(function(){a9(this,e)})}function vQn(e,t){var n,r;return function(){var s=zy(this,e),a=s.tween;if(a!==n){r=n=a;for(var i=0,l=r.length;i<l;++i)if(r[i].name===t){r=r.slice(),r.splice(i,1);break}}s.tween=r}}function yQn(e,t,n){var r,s;if(typeof n!="function")throw new Error;return function(){var a=zy(this,e),i=a.tween;if(i!==r){s=(r=i).slice();for(var l={name:t,value:n},c=0,u=s.length;c<u;++c)if(s[c].name===t){s[c]=l;break}c===u&&s.push(l)}a.tween=s}}function bQn(e,t){var n=this._id;if(e+="",arguments.length<2){for(var r=Jg(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?vQn:yQn)(n,e,t))}function jOe(e,t,n){var r=e._id;return e.each(function(){var s=zy(this,r);(s.value||(s.value={}))[t]=n.apply(this,arguments)}),function(s){return Jg(s,r).value[t]}}function DOt(e,t){var n;return(typeof t=="number"?vg:t instanceof JO?aU:(n=JO(t))?(t=n,aU):NOt)(e,t)}function xQn(e){return function(){this.removeAttribute(e)}}function wQn(e){return function(){this.removeAttributeNS(e.space,e.local)}}function SQn(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 kQn(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 OQn(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 _Qn(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 CQn(e,t){var n=vW(e),r=n==="transform"?sQn:DOt;return this.attrTween(e,typeof t=="function"?(n.local?_Qn:OQn)(n,r,jOe(this,"attr."+e,t)):t==null?(n.local?wQn:xQn)(n):(n.local?kQn:SQn)(n,r,t))}function EQn(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function TQn(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function jQn(e,t){var n,r;function s(){var a=t.apply(this,arguments);return a!==r&&(n=(r=a)&&TQn(e,a)),n}return s._value=t,s}function NQn(e,t){var n,r;function s(){var a=t.apply(this,arguments);return a!==r&&(n=(r=a)&&EQn(e,a)),n}return s._value=t,s}function IQn(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=vW(e);return this.tween(n,(r.local?jQn:NQn)(r,t))}function AQn(e,t){return function(){TOe(this,e).delay=+t.apply(this,arguments)}}function RQn(e,t){return t=+t,function(){TOe(this,e).delay=t}}function PQn(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?AQn:RQn)(t,e)):Jg(this.node(),t).delay}function $Qn(e,t){return function(){zy(this,e).duration=+t.apply(this,arguments)}}function MQn(e,t){return t=+t,function(){zy(this,e).duration=t}}function DQn(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?$Qn:MQn)(t,e)):Jg(this.node(),t).duration}function LQn(e,t){if(typeof t!="function")throw new Error;return function(){zy(this,e).ease=t}}function FQn(e){var t=this._id;return arguments.length?this.each(LQn(t,e)):Jg(this.node(),t).ease}function zQn(e,t){return function(){var n=t.apply(this,arguments);if(typeof n!="function")throw new Error;zy(this,e).ease=n}}function BQn(e){if(typeof e!="function")throw new Error;return this.each(zQn(this._id,e))}function UQn(e){typeof e!="function"&&(e=hOt(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 Mx(r,this._parents,this._name,this._id)}function qQn(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 Mx(i,this._parents,this._name,this._id)}function VQn(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 HQn(e,t,n){var r,s,a=VQn(t)?TOe:zy;return function(){var i=a(this,e),l=i.on;l!==r&&(s=(r=l).copy()).on(t,n),i.on=s}}function WQn(e,t){var n=this._id;return arguments.length<2?Jg(this.node(),n).on.on(e):this.each(HQn(n,e,t))}function ZQn(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function GQn(){return this.on("end.remove",ZQn(this._id))}function QQn(e){var t=this._name,n=this._id;typeof e!="function"&&(e=SOe(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,bW(u[p],t,n,p,u,Jg(d,n)));return new Mx(a,this._parents,t,n)}function YQn(e){var t=this._name,n=this._id;typeof e!="function"&&(e=pOt(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=Jg(d,n),v=0,y=p.length;v<y;++v)(h=p[v])&&bW(h,t,n,v,p,m);a.push(p),i.push(d)}return new Mx(a,i,t,n)}var KQn=a4.prototype.constructor;function XQn(){return new KQn(this._groups,this._parents)}function JQn(e,t){var n,r,s;return function(){var a=oN(this,e),i=(this.style.removeProperty(e),oN(this,e));return a===i?null:a===n&&i===r?s:s=t(n=a,r=i)}}function LOt(e){return function(){this.style.removeProperty(e)}}function eYn(e,t,n){var r,s=n+"",a;return function(){var i=oN(this,e);return i===s?null:i===r?a:a=t(r=i,n)}}function tYn(e,t,n){var r,s,a;return function(){var i=oN(this,e),l=n(this),c=l+"";return l==null&&(c=l=(this.style.removeProperty(e),oN(this,e))),i===c?null:i===r&&c===s?a:(s=c,a=t(r=i,l))}}function nYn(e,t){var n,r,s,a="style."+t,i="end."+a,l;return function(){var c=zy(this,e),u=c.on,d=c.value[a]==null?l||(l=LOt(t)):void 0;(u!==n||s!==d)&&(r=(n=u).copy()).on(i,s=d),c.on=r}}function rYn(e,t,n){var r=(e+="")=="transform"?rQn:DOt;return t==null?this.styleTween(e,JQn(e,r)).on("end.style."+e,LOt(e)):typeof t=="function"?this.styleTween(e,tYn(e,r,jOe(this,"style."+e,t))).each(nYn(this._id,e)):this.styleTween(e,eYn(e,r,t),n).on("end.style."+e,null)}function sYn(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}function aYn(e,t,n){var r,s;function a(){var i=t.apply(this,arguments);return i!==s&&(r=(s=i)&&sYn(e,i,n)),r}return a._value=t,a}function iYn(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,aYn(e,t,n??""))}function oYn(e){return function(){this.textContent=e}}function lYn(e){return function(){var t=e(this);this.textContent=t??""}}function cYn(e){return this.tween("text",typeof e=="function"?lYn(jOe(this,"text",e)):oYn(e==null?"":e+""))}function uYn(e){return function(t){this.textContent=e.call(this,t)}}function dYn(e){var t,n;function r(){var s=e.apply(this,arguments);return s!==n&&(t=(n=s)&&uYn(s)),t}return r._value=e,r}function fYn(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,dYn(e))}function pYn(){for(var e=this._name,t=this._id,n=FOt(),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=Jg(c,t);bW(c,e,n,u,i,{time:d.time+d.delay+d.duration,delay:0,duration:d.duration,ease:d.ease})}return new Mx(r,this._parents,e,n)}function hYn(){var e,t,n=this,r=n._id,s=n.size();return new Promise(function(a,i){var l={value:i},c={value:function(){--s===0&&a()}};n.each(function(){var u=zy(this,r),d=u.on;d!==e&&(t=(e=d).copy(),t._.cancel.push(l),t._.interrupt.push(l),t._.end.push(c)),u.on=t}),s===0&&a()})}var mYn=0;function Mx(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}function FOt(){return++mYn}var Sb=a4.prototype;Mx.prototype={constructor:Mx,select:QQn,selectAll:YQn,selectChild:Sb.selectChild,selectChildren:Sb.selectChildren,filter:UQn,merge:qQn,selection:XQn,transition:pYn,call:Sb.call,nodes:Sb.nodes,node:Sb.node,size:Sb.size,empty:Sb.empty,each:Sb.each,on:WQn,attr:CQn,attrTween:IQn,style:rYn,styleTween:iYn,text:cYn,textTween:fYn,remove:GQn,tween:bQn,delay:PQn,duration:DQn,ease:FQn,easeVarying:BQn,end:hYn,[Symbol.iterator]:Sb[Symbol.iterator]};function gYn(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var vYn={time:null,delay:0,duration:250,ease:gYn};function yYn(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 bYn(e){var t,n;e instanceof Mx?(t=e._id,e=e._name):(t=FOt(),(n=vYn).time=EOe(),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])&&bW(c,e,t,u,i,n||yYn(c,t));return new Mx(r,this._parents,e,t)}a4.prototype.interrupt=gQn;a4.prototype.transition=bYn;const jF=e=>()=>e;function xYn(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 rx(e,t,n){this.k=e,this.x=t,this.y=n}rx.prototype={constructor:rx,scale:function(e){return e===1?this:new rx(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new rx(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 xW=new rx(1,0,0);zOt.prototype=rx.prototype;function zOt(e){for(;!e.__zoom;)if(!(e=e.parentNode))return xW;return e.__zoom}function hne(e){e.stopImmediatePropagation()}function zR(e){e.preventDefault(),e.stopImmediatePropagation()}function wYn(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function SYn(){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 G7e(){return this.__zoom||xW}function kYn(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function OYn(){return navigator.maxTouchPoints||"ontouchstart"in this}function _Yn(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 BOt(){var e=wYn,t=SYn,n=_Yn,r=kYn,s=OYn,a=[0,1/0],i=[[-1/0,-1/0],[1/0,1/0]],l=250,c=n9,u=gW("start","zoom","end"),d,f,p,h=500,m=150,v=0,y=10;function b(M){M.property("__zoom",G7e).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(M,z,H,F){var B=M.selection?M.selection():M;B.property("__zoom",G7e),M!==B?_(M,z,H,F):B.interrupt().each(function(){C(this,arguments).event(F).start().zoom(null,typeof z=="function"?z.apply(this,arguments):z).end()})},b.scaleBy=function(M,z,H,F){b.scaleTo(M,function(){var B=this.__zoom.k,V=typeof z=="function"?z.apply(this,arguments):z;return B*V},H,F)},b.scaleTo=function(M,z,H,F){b.transform(M,function(){var B=t.apply(this,arguments),V=this.__zoom,D=H==null?k(B):typeof H=="function"?H.apply(this,arguments):H,Z=V.invert(D),U=typeof z=="function"?z.apply(this,arguments):z;return n(S(x(V,U),D,Z),B,i)},H,F)},b.translateBy=function(M,z,H,F){b.transform(M,function(){return n(this.__zoom.translate(typeof z=="function"?z.apply(this,arguments):z,typeof H=="function"?H.apply(this,arguments):H),t.apply(this,arguments),i)},null,F)},b.translateTo=function(M,z,H,F,B){b.transform(M,function(){var V=t.apply(this,arguments),D=this.__zoom,Z=F==null?k(V):typeof F=="function"?F.apply(this,arguments):F;return n(xW.translate(Z[0],Z[1]).scale(D.k).translate(typeof z=="function"?-z.apply(this,arguments):-z,typeof H=="function"?-H.apply(this,arguments):-H),V,i)},F,B)};function x(M,z){return z=Math.max(a[0],Math.min(a[1],z)),z===M.k?M:new rx(z,M.x,M.y)}function S(M,z,H){var F=z[0]-H[0]*M.k,B=z[1]-H[1]*M.k;return F===M.x&&B===M.y?M:new rx(M.k,F,B)}function k(M){return[(+M[0][0]+ +M[1][0])/2,(+M[0][1]+ +M[1][1])/2]}function _(M,z,H,F){M.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 B=this,V=arguments,D=C(B,V).event(F),Z=t.apply(B,V),U=H==null?k(Z):typeof H=="function"?H.apply(B,V):H,P=Math.max(Z[1][0]-Z[0][0],Z[1][1]-Z[0][1]),q=B.__zoom,G=typeof z=="function"?z.apply(B,V):z,K=c(q.invert(U).concat(P/q.k),G.invert(U).concat(P/G.k));return function(ne){if(ne===1)ne=G;else{var J=K(ne),ee=P/J[2];ne=new rx(ee,U[0]-J[0]*ee,U[1]-J[1]*ee)}D.zoom(null,ne)}})}function C(M,z,H){return!H&&M.__zooming||new T(M,z)}function T(M,z){this.that=M,this.args=z,this.active=0,this.sourceEvent=null,this.extent=t.apply(M,z),this.taps=0}T.prototype={event:function(M){return M&&(this.sourceEvent=M),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(M,z){return this.mouse&&M!=="mouse"&&(this.mouse[1]=z.invert(this.mouse[0])),this.touch0&&M!=="touch"&&(this.touch0[1]=z.invert(this.touch0[0])),this.touch1&&M!=="touch"&&(this.touch1[1]=z.invert(this.touch1[0])),this.that.__zoom=z,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(M){var z=Ep(this.that).datum();u.call(M,this.that,new xYn(M,{sourceEvent:this.sourceEvent,target:b,transform:this.that.__zoom,dispatch:u}),z)}};function E(M,...z){if(!e.apply(this,arguments))return;var H=C(this,z).event(M),F=this.__zoom,B=Math.max(a[0],Math.min(a[1],F.k*Math.pow(2,r.apply(this,arguments)))),V=mg(M);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===B)return;H.mouse=[V,F.invert(V)],a9(this),H.start()}zR(M),H.wheel=setTimeout(D,m),H.zoom("mouse",n(S(x(F,B),H.mouse[0],H.mouse[1]),H.extent,i));function D(){H.wheel=null,H.end()}}function N(M,...z){if(p||!e.apply(this,arguments))return;var H=M.currentTarget,F=C(this,z,!0).event(M),B=Ep(M.view).on("mousemove.zoom",U,!0).on("mouseup.zoom",P,!0),V=mg(M,H),D=M.clientX,Z=M.clientY;OOt(M.view),hne(M),F.mouse=[V,this.__zoom.invert(V)],a9(this),F.start();function U(q){if(zR(q),!F.moved){var G=q.clientX-D,K=q.clientY-Z;F.moved=G*G+K*K>v}F.event(q).zoom("mouse",n(S(F.that.__zoom,F.mouse[0]=mg(q,H),F.mouse[1]),F.extent,i))}function P(q){B.on("mousemove.zoom mouseup.zoom",null),_Ot(q.view,F.moved),zR(q),F.event(q).end()}}function I(M,...z){if(e.apply(this,arguments)){var H=this.__zoom,F=mg(M.changedTouches?M.changedTouches[0]:M,this),B=H.invert(F),V=H.k*(M.shiftKey?.5:2),D=n(S(x(H,V),F,B),t.apply(this,z),i);zR(M),l>0?Ep(this).transition().duration(l).call(_,D,F,M):Ep(this).call(b.transform,D,F,M)}}function A(M,...z){if(e.apply(this,arguments)){var H=M.touches,F=H.length,B=C(this,z,M.changedTouches.length===F).event(M),V,D,Z,U;for(hne(M),D=0;D<F;++D)Z=H[D],U=mg(Z,this),U=[U,this.__zoom.invert(U),Z.identifier],B.touch0?!B.touch1&&B.touch0[2]!==U[2]&&(B.touch1=U,B.taps=0):(B.touch0=U,V=!0,B.taps=1+!!d);d&&(d=clearTimeout(d)),V&&(B.taps<2&&(f=U[0],d=setTimeout(function(){d=null},h)),a9(this),B.start())}}function R(M,...z){if(this.__zooming){var H=C(this,z).event(M),F=M.changedTouches,B=F.length,V,D,Z,U;for(zR(M),V=0;V<B;++V)D=F[V],Z=mg(D,this),H.touch0&&H.touch0[2]===D.identifier?H.touch0[0]=Z:H.touch1&&H.touch1[2]===D.identifier&&(H.touch1[0]=Z);if(D=H.that.__zoom,H.touch1){var P=H.touch0[0],q=H.touch0[1],G=H.touch1[0],K=H.touch1[1],ne=(ne=G[0]-P[0])*ne+(ne=G[1]-P[1])*ne,J=(J=K[0]-q[0])*J+(J=K[1]-q[1])*J;D=x(D,Math.sqrt(ne/J)),Z=[(P[0]+G[0])/2,(P[1]+G[1])/2],U=[(q[0]+K[0])/2,(q[1]+K[1])/2]}else if(H.touch0)Z=H.touch0[0],U=H.touch0[1];else return;H.zoom("touch",n(S(D,Z,U),H.extent,i))}}function L(M,...z){if(this.__zooming){var H=C(this,z).event(M),F=M.changedTouches,B=F.length,V,D;for(hne(M),p&&clearTimeout(p),p=setTimeout(function(){p=null},h),V=0;V<B;++V)D=F[V],H.touch0&&H.touch0[2]===D.identifier?delete H.touch0:H.touch1&&H.touch1[2]===D.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&&(D=mg(D,this),Math.hypot(f[0]-D[0],f[1]-D[1])<y)){var Z=Ep(this).on("dblclick.zoom");Z&&Z.apply(this,arguments)}}}return b.wheelDelta=function(M){return arguments.length?(r=typeof M=="function"?M:jF(+M),b):r},b.filter=function(M){return arguments.length?(e=typeof M=="function"?M:jF(!!M),b):e},b.touchable=function(M){return arguments.length?(s=typeof M=="function"?M:jF(!!M),b):s},b.extent=function(M){return arguments.length?(t=typeof M=="function"?M:jF([[+M[0][0],+M[0][1]],[+M[1][0],+M[1][1]]]),b):t},b.scaleExtent=function(M){return arguments.length?(a[0]=+M[0],a[1]=+M[1],b):[a[0],a[1]]},b.translateExtent=function(M){return arguments.length?(i[0][0]=+M[0][0],i[1][0]=+M[1][0],i[0][1]=+M[0][1],i[1][1]=+M[1][1],b):[[i[0][0],i[0][1]],[i[1][0],i[1][1]]]},b.constrain=function(M){return arguments.length?(n=M,b):n},b.duration=function(M){return arguments.length?(l=+M,b):l},b.interpolate=function(M){return arguments.length?(c=M,b):c},b.on=function(){var M=u.on.apply(u,arguments);return M===u?b:M},b.clickDistance=function(M){return arguments.length?(v=(M=+M)*M,b):Math.sqrt(v)},b.tapDistance=function(M){return arguments.length?(y=+M,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."},qM=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],UOt=["Enter"," ","Escape"],qOt={"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 cN;(function(e){e.Strict="strict",e.Loose="loose"})(cN||(cN={}));var oO;(function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"})(oO||(oO={}));var VM;(function(e){e.Partial="partial",e.Full="full"})(VM||(VM={}));const VOt={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null};var Sw;(function(e){e.Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier"})(Sw||(Sw={}));var HM;(function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"})(HM||(HM={}));var nr;(function(e){e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom"})(nr||(nr={}));const Q7e={[nr.Left]:nr.Right,[nr.Right]:nr.Left,[nr.Top]:nr.Bottom,[nr.Bottom]:nr.Top};function HOt(e){return e===null?null:e?"valid":"invalid"}const WOt=e=>"id"in e&&"source"in e&&"target"in e,CYn=e=>"id"in e&&"position"in e&&!("source"in e)&&!("target"in e),NOe=e=>"id"in e&&"internals"in e&&!("source"in e)&&!("target"in e),o4=(e,t=[0,0])=>{const{width:n,height:r}=s0(e),s=e.origin??t,a=n*s[0],i=r*s[1];return{x:e.position.x-a,y:e.position.y-i}},EYn=(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):NOe(s)?s:t.nodeLookup.get(s.id));const l=i?cU(i,t.nodeOrigin):{x:0,y:0,x2:0,y2:0};return wW(r,l)},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return SW(n)},l4=(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=wW(n,cU(s)),r=!0)}),r?SW(n):{x:0,y:0,width:0,height:0}},IOe=(e,t,[n,r,s]=[0,0,1],a=!1,i=!1)=>{const l={...u4(t,[n,r,s]),width:t.width/s,height:t.height/s},c=[];for(const u of e.values()){const{measured:d,selectable:f=!0,hidden:p=!1}=u;if(i&&!f||p)continue;const h=d.width??u.width??u.initialWidth??null,m=d.height??u.height??u.initialHeight??null,v=WM(l,dN(u)),y=(h??0)*(m??0),b=a&&v>0;(!u.internals.handleBounds||b||v>=y||u.dragging)&&c.push(u)}return c},TYn=(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 jYn(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 NYn({nodes:e,width:t,height:n,panZoom:r,minZoom:s,maxZoom:a},i){if(e.size===0)return Promise.resolve(!0);const l=jYn(e,i),c=l4(l),u=AOe(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 ZOt({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&&fN(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=fN(f)?t_(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 IYn({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:r,onBeforeDelete:s}){const a=new Set(e.map(p=>p.id)),i=[];for(const p of n){if(p.deletable===!1)continue;const h=a.has(p.id),m=!h&&p.parentId&&i.find(v=>v.id===p.parentId);(h||m)&&i.push(p)}const l=new Set(t.map(p=>p.id)),c=r.filter(p=>p.deletable!==!1),d=TYn(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 uN=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),t_=(e={x:0,y:0},t,n)=>({x:uN(e.x,t[0][0],t[1][0]-(n?.width??0)),y:uN(e.y,t[0][1],t[1][1]-(n?.height??0))});function GOt(e,t,n){const{width:r,height:s}=s0(n),{x:a,y:i}=n.internals.positionAbsolute;return t_(e,[[a,i],[a+r,i+s]],t)}const Y7e=(e,t,n)=>e<t?uN(Math.abs(e-t),1,t)/t:e>n?-uN(Math.abs(e-n),1,t)/t:0,QOt=(e,t,n=15,r=40)=>{const s=Y7e(e.x,r,t.width-r)*n,a=Y7e(e.y,r,t.height-r)*n;return[s,a]},wW=(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)}),jve=({x:e,y:t,width:n,height:r})=>({x:e,y:t,x2:e+n,y2:t+r}),SW=({x:e,y:t,x2:n,y2:r})=>({x:e,y:t,width:n-e,height:r-t}),dN=(e,t=[0,0])=>{const{x:n,y:r}=NOe(e)?e.internals.positionAbsolute:o4(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}},cU=(e,t=[0,0])=>{const{x:n,y:r}=NOe(e)?e.internals.positionAbsolute:o4(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)}},YOt=(e,t)=>SW(wW(jve(e),jve(t))),WM=(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)},K7e=e=>Tg(e.width)&&Tg(e.height)&&Tg(e.x)&&Tg(e.y),Tg=e=>!isNaN(e)&&isFinite(e),AYn=(e,t)=>{},c4=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),u4=({x:e,y:t},[n,r,s],a=!1,i=[1,1])=>{const l={x:(e-n)/s,y:(t-r)/s};return a?c4(l,i):l},uU=({x:e,y:t},[n,r,s])=>({x:e*s+n,y:t*s+r});function xE(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 RYn(e,t,n){if(typeof e=="string"||typeof e=="number"){const r=xE(e,n),s=xE(e,t);return{top:r,right:s,bottom:r,left:s,x:s*2,y:r*2}}if(typeof e=="object"){const r=xE(e.top??e.y??0,n),s=xE(e.bottom??e.y??0,n),a=xE(e.left??e.x??0,t),i=xE(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 PYn(e,t,n,r,s,a){const{x:i,y:l}=uU(e,[t,n,r]),{x:c,y:u}=uU({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 AOe=(e,t,n,r,s,a)=>{const i=RYn(a,t,n),l=(t-i.x)/e.width,c=(n-i.y)/e.height,u=Math.min(l,c),d=uN(u,r,s),f=e.x+e.width/2,p=e.y+e.height/2,h=t/2-f*d,m=n/2-p*d,v=PYn(e,h,m,d,t,n),y={left:Math.min(v.left-i.left,0),top:Math.min(v.top-i.top,0),right:Math.min(v.right-i.right,0),bottom:Math.min(v.bottom-i.bottom,0)};return{x:h-y.left+y.right,y:m-y.top+y.bottom,zoom:d}},ZM=()=>typeof navigator<"u"&&navigator?.userAgent?.indexOf("Mac")>=0;function fN(e){return e!=null&&e!=="parent"}function s0(e){return{width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}}function KOt(e){return(e.measured?.width??e.width??e.initialWidth)!==void 0&&(e.measured?.height??e.height??e.initialHeight)!==void 0}function XOt(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 X7e(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function $Yn(){let e,t;return{promise:new Promise((r,s)=>{e=r,t=s}),resolve:e,reject:t}}function MYn(e){return{...qOt,...e||{}}}function U$(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:r,containerBounds:s}){const{x:a,y:i}=jg(e),l=u4({x:a-(s?.left??0),y:i-(s?.top??0)},r),{x:c,y:u}=n?c4(l,t):l;return{xSnapped:c,ySnapped:u,...l}}const ROe=e=>({width:e.offsetWidth,height:e.offsetHeight}),JOt=e=>e?.getRootNode?.()||window?.document,DYn=["INPUT","SELECT","TEXTAREA"];function e_t(e){const t=e.composedPath?.()?.[0]||e.target;return t?.nodeType!==1?!1:DYn.includes(t.nodeName)||t.hasAttribute("contenteditable")||!!t.closest(".nokey")}const t_t=e=>"clientX"in e,jg=(e,t)=>{const n=t_t(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)}},J7e=(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,...ROe(i)}})};function n_t({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 NF(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function eBe({pos:e,x1:t,y1:n,x2:r,y2:s,c:a}){switch(e){case nr.Left:return[t-NF(t-r,a),n];case nr.Right:return[t+NF(r-t,a),n];case nr.Top:return[t,n-NF(n-s,a)];case nr.Bottom:return[t,n+NF(s-n,a)]}}function POe({sourceX:e,sourceY:t,sourcePosition:n=nr.Bottom,targetX:r,targetY:s,targetPosition:a=nr.Top,curvature:i=.25}){const[l,c]=eBe({pos:n,x1:e,y1:t,x2:r,y2:s,c:i}),[u,d]=eBe({pos:a,x1:r,y1:s,x2:e,y2:t,c:i}),[f,p,h,m]=n_t({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 r_t({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 LYn({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 FYn({sourceNode:e,targetNode:t,width:n,height:r,transform:s}){const a=wW(cU(e),cU(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 WM(i,SW(a))>0}const zYn=({source:e,sourceHandle:t,target:n,targetHandle:r})=>`xy-edge__${e}${t||""}-${n}${r||""}`,BYn=(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)),UYn=(e,t,n={})=>{if(!e.source||!e.target)return t;const r=n.getEdgeId||zYn;let s;return WOt(e)?s={...e}:s={...e,id:r(e)},BYn(s,t)?t:(s.sourceHandle===null&&delete s.sourceHandle,s.targetHandle===null&&delete s.targetHandle,t.concat(s))};function s_t({sourceX:e,sourceY:t,targetX:n,targetY:r}){const[s,a,i,l]=r_t({sourceX:e,sourceY:t,targetX:n,targetY:r});return[`M ${e},${t}L ${n},${r}`,s,a,i,l]}const tBe={[nr.Left]:{x:-1,y:0},[nr.Right]:{x:1,y:0},[nr.Top]:{x:0,y:-1},[nr.Bottom]:{x:0,y:1}},qYn=({source:e,sourcePosition:t=nr.Bottom,target:n})=>t===nr.Left||t===nr.Right?e.x<n.x?{x:1,y:0}:{x:-1,y:0}:e.y<n.y?{x:0,y:1}:{x:0,y:-1},nBe=(e,t)=>Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2));function VYn({source:e,sourcePosition:t=nr.Bottom,target:n,targetPosition:r=nr.Top,center:s,offset:a,stepPosition:i}){const l=tBe[t],c=tBe[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=qYn({source:u,sourcePosition:t,target:d}),p=f.x!==0?"x":"y",h=f[p];let m=[],v,y;const b={x:0,y:0},x={x:0,y:0},[,,S,k]=r_t({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(l[p]*c[p]===-1){p==="x"?(v=s.x??u.x+(d.x-u.x)*i,y=s.y??(u.y+d.y)/2):(v=s.x??(u.x+d.x)/2,y=s.y??u.y+(d.y-u.y)*i);const E=[{x:v,y:u.y},{x:v,y:d.y}],N=[{x:u.x,y},{x:d.x,y}];l[p]===h?m=p==="x"?E:N:m=p==="x"?N:E}else{const E=[{x:u.x,y:d.y}],N=[{x:d.x,y:u.y}];if(p==="x"?m=l.x===h?N:E:m=l.y===h?E:N,t===r){const M=Math.abs(e[p]-n[p]);if(M<=a){const z=Math.min(a-1,a-M);l[p]===h?b[p]=(u[p]>e[p]?-1:1)*z:x[p]=(d[p]>n[p]?-1:1)*z}}if(t!==r){const M=p==="x"?"y":"x",z=l[p]===c[M],H=u[M]>d[M],F=u[M]<d[M];(l[p]===1&&(!z&&H||z&&F)||l[p]!==1&&(!z&&F||z&&H))&&(m=p==="x"?E:N)}const I={x:u.x+b.x,y:u.y+b.y},A={x:d.x+x.x,y:d.y+x.y},R=Math.max(Math.abs(I.x-m[0].x),Math.abs(A.x-m[0].x)),L=Math.max(Math.abs(I.y-m[0].y),Math.abs(A.y-m[0].y));R>=L?(v=(I.x+A.x)/2,y=m[0].y):(v=m[0].x,y=(I.y+A.y)/2)}const _={x:u.x+b.x,y:u.y+b.y},C={x:d.x+x.x,y:d.y+x.y};return[[e,..._.x!==m[0].x||_.y!==m[0].y?[_]:[],...m,...C.x!==m[m.length-1].x||C.y!==m[m.length-1].y?[C]:[],n],v,y,S,k]}function HYn(e,t,n,r){const s=Math.min(nBe(e,t)/2,nBe(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 Nve({sourceX:e,sourceY:t,sourcePosition:n=nr.Bottom,targetX:r,targetY:s,targetPosition:a=nr.Top,borderRadius:i=5,centerX:l,centerY:c,offset:u=20,stepPosition:d=.5}){const[f,p,h,m,v]=VYn({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+=HYn(f[b-1],f[b],f[b+1],i);return y+=`L${f[f.length-1].x} ${f[f.length-1].y}`,[y,p,h,m,v]}function rBe(e){return e&&!!(e.internals.handleBounds||e.handles?.length)&&!!(e.measured.width||e.width||e.initialWidth)}function WYn(e){const{sourceNode:t,targetNode:n}=e;if(!rBe(t)||!rBe(n))return null;const r=t.internals.handleBounds||sBe(t.handles),s=n.internals.handleBounds||sBe(n.handles),a=aBe(r?.source??[],e.sourceHandle),i=aBe(e.connectionMode===cN.Strict?s?.target??[]:(s?.target??[]).concat(s?.source??[]),e.targetHandle);if(!a||!i)return e.onError?.("008",Sy.error008(a?"target":"source",{id:e.id,sourceHandle:e.sourceHandle,targetHandle:e.targetHandle})),null;const l=a?.position||nr.Bottom,c=i?.position||nr.Top,u=n_(t,a,l),d=n_(n,i,c);return{sourceX:u.x,sourceY:u.y,targetX:d.x,targetY:d.y,sourcePosition:l,targetPosition:c}}function sBe(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 n_(e,t,n=nr.Left,r=!1){const s=(t?.x??0)+e.internals.positionAbsolute.x,a=(t?.y??0)+e.internals.positionAbsolute.y,{width:i,height:l}=t??s0(e);if(r)return{x:s+i/2,y:a+l/2};switch(t?.position??n){case nr.Top:return{x:s+i/2,y:a};case nr.Right:return{x:s+i,y:a+l/2};case nr.Bottom:return{x:s+i/2,y:a+l};case nr.Left:return{x:s,y:a+l/2}}}function aBe(e,t){return e&&(t?e.find(n=>n.id===t):e[0])||null}function Ive(e,t){return e?typeof e=="string"?e:`${t?`${t}__`:""}${Object.keys(e).sort().map(r=>`${r}=${e[r]}`).join("&")}`:""}function ZYn(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=Ive(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 a_t=1e3,GYn=10,$Oe={nodeOrigin:[0,0],nodeExtent:qM,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},QYn={...$Oe,checkEquality:!0};function MOe(e,t){const n={...e};for(const r in t)t[r]!==void 0&&(n[r]=t[r]);return n}function YYn(e,t,n){const r=MOe($Oe,n);for(const s of e.values())if(s.parentId)LOe(s,e,t,r);else{const a=o4(s,r.nodeOrigin),i=fN(s.extent)?s.extent:r.nodeExtent,l=t_(a,i,s0(s));s.internals.positionAbsolute=l}}function KYn(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 DOe(e){return e==="manual"}function Ave(e,t,n,r={}){const s=MOe(QYn,r),a={i:0},i=new Map(t),l=s?.elevateNodesOnSelect&&!DOe(s.zIndexMode)?a_t: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=o4(d,s.nodeOrigin),h=fN(d.extent)?d.extent:s.nodeExtent,m=t_(p,h,s0(d));f={...s.defaults,...d,measured:{width:d.measured?.width,height:d.measured?.height},internals:{positionAbsolute:m,handleBounds:KYn(d,f),z:i_t(d,l,s.zIndexMode),userNode:d}},t.set(d.id,f)}(f.measured===void 0||f.measured.width===void 0||f.measured.height===void 0)&&!f.hidden&&(c=!1),d.parentId&&LOe(f,t,n,r,a),u||=d.selected??!1}return{nodesInitialized:c,hasSelectedNodes:u}}function XYn(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 LOe(e,t,n,r,s){const{elevateNodesOnSelect:a,nodeOrigin:i,nodeExtent:l,zIndexMode:c}=MOe($Oe,r),u=e.parentId,d=t.get(u);if(!d){console.warn(`Parent node ${u} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);return}XYn(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*GYn),s&&d.internals.rootParentIndex!==void 0&&(s.i=d.internals.rootParentIndex);const f=a&&!DOe(c)?a_t:0,{x:p,y:h,z:m}=JYn(e,d,i,l,f,c),{positionAbsolute:v}=e.internals,y=p!==v.x||h!==v.y;(y||m!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:y?{x:p,y:h}:v,z:m}})}function i_t(e,t,n){const r=Tg(e.zIndex)?e.zIndex:0;return DOe(n)?r:r+(e.selected?t:0)}function JYn(e,t,n,r,s,a){const{x:i,y:l}=t.internals.positionAbsolute,c=s0(e),u=o4(e,n),d=fN(e.extent)?t_(u,e.extent,c):u;let f=t_({x:i+d.x,y:l+d.y},r,c);e.extent==="parent"&&(f=GOt(f,c,t));const p=i_t(e,s,a),h=t.internals.z??0;return{x:f.x,y:f.y,z:h>=p?h+1:p}}function FOe(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??dN(l),u=YOt(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=s0(l),f=l.origin??r,p=i.x<u.x?Math.round(Math.abs(u.x-i.x)):0,h=i.y<u.y?Math.round(Math.abs(u.y-i.y)):0,m=Math.max(d.width,Math.round(i.width)),v=Math.max(d.height,Math.round(i.height)),y=(m-d.width)*f[0],b=(v-d.height)*f[1];(p>0||h>0||y||b)&&(s.push({id:c,type:"position",position:{x:l.position.x-p+y,y:l.position.y-h+b}}),n.get(c)?.forEach(x=>{e.some(S=>S.id===x.id)||s.push({id:x.id,type:"position",position:{x:x.position.x+p,y:x.position.y+h}})})),(d.width<i.width||d.height<i.height||p||h)&&s.push({id:c,type:"dimensions",setAttributes:!0,dimensions:{width:m+(p?f[0]*p-y:0),height:v+(h?f[1]*h-b:0)}})}),s}function eKn(e,t,n,r,s,a,i){const l=r?.querySelector(".xyflow__viewport");let c=!1;if(!l)return{changes:[],updatedInternals:c};const u=[],d=window.getComputedStyle(l),{m22:f}=new window.DOMMatrixReadOnly(d.transform),p=[];for(const h of e.values()){const m=t.get(h.id);if(!m)continue;if(m.hidden){t.set(m.id,{...m,internals:{...m.internals,handleBounds:void 0}}),c=!0;continue}const v=ROe(h.nodeElement),y=m.measured.width!==v.width||m.measured.height!==v.height;if(!!(v.width&&v.height&&(y||!m.internals.handleBounds||h.force))){const x=h.nodeElement.getBoundingClientRect(),S=fN(m.extent)?m.extent:a;let{positionAbsolute:k}=m.internals;m.parentId&&m.extent==="parent"?k=GOt(k,v,t.get(m.parentId)):S&&(k=t_(k,S,v));const _={...m,measured:v,internals:{...m.internals,positionAbsolute:k,handleBounds:{source:J7e("source",h.nodeElement,x,f,m.id),target:J7e("target",h.nodeElement,x,f,m.id)}}};t.set(m.id,_),m.parentId&&LOe(_,t,n,{nodeOrigin:s,zIndexMode:i}),c=!0,y&&(u.push({id:m.id,type:"dimensions",dimensions:v}),m.expandParent&&m.parentId&&p.push({id:m.id,parentId:m.parentId,rect:dN(_,s)}))}}if(p.length>0){const h=FOe(p,t,n,s);u.push(...h)}return{changes:u,updatedInternals:c}}async function tKn({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 iBe(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 o_t(e,t,n){e.clear(),t.clear();for(const r of n){const{source:s,target:a,sourceHandle:i=null,targetHandle:l=null}=r,c={edgeId:r.id,source:s,target:a,sourceHandle:i,targetHandle:l},u=`${s}-${i}--${a}-${l}`,d=`${a}-${l}--${s}-${i}`;iBe("source",c,d,e,s,i),iBe("target",c,u,e,a,l),t.set(r.id,r)}}function l_t(e,t){if(!e.parentId)return!1;const n=t.get(e.parentId);return n?n.selected?!0:l_t(n,t):!1}function oBe(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 nKn(e,t,n,r){const s=new Map;for(const[a,i]of e)if((i.selected||i.id===r)&&(!i.parentId||!l_t(i,e))&&(i.draggable||t&&typeof i.draggable>"u")){const l=e.get(a);l&&s.set(a,{id:a,position:l.position||{x:0,y:0},distance:{x:n.x-l.internals.positionAbsolute.x,y:n.y-l.internals.positionAbsolute.y},extent:l.extent,parentId:l.parentId,origin:l.origin,expandParent:l.expandParent,internals:{positionAbsolute:l.internals.positionAbsolute||{x:0,y:0}},measured:{width:l.measured.width??0,height:l.measured.height??0}})}return s}function mne({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 rKn({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=c4(a,t);return{x:i.x-a.x,y:i.y-a.y}}function sKn({onNodeMouseDown:e,getStoreItems:t,onDragStart:n,onDrag:r,onDragStop:s}){let a={x:null,y:null},i=0,l=new Map,c=!1,u={x:0,y:0},d=null,f=!1,p=null,h=!1,m=!1,v=null;function y({noDragClassName:x,handleSelector:S,domNode:k,isSelectable:_,nodeId:C,nodeClickDistance:T=0}){p=Ep(k);function E({x:R,y:L}){const{nodeLookup:M,nodeExtent:z,snapGrid:H,snapToGrid:F,nodeOrigin:B,onNodeDrag:V,onSelectionDrag:D,onError:Z,updateNodePositions:U}=t();a={x:R,y:L};let P=!1;const q=l.size>1,G=q&&z?jve(l4(l)):null,K=q&&F?rKn({dragItems:l,snapGrid:H,x:R,y:L}):null;for(const[ne,J]of l){if(!M.has(ne))continue;let ee={x:R-J.distance.x,y:L-J.distance.y};F&&(ee=K?{x:Math.round(ee.x+K.x),y:Math.round(ee.y+K.y)}:c4(ee,H));let re=null;if(q&&z&&!J.extent&&G){const{positionAbsolute:te}=J.internals,se=te.x-G.x+z[0][0],fe=te.x+J.measured.width-G.x2+z[1][0],ce=te.y-G.y+z[0][1],we=te.y+J.measured.height-G.y2+z[1][1];re=[[se,ce],[fe,we]]}const{position:le,positionAbsolute:X}=ZOt({nodeId:ne,nextPosition:ee,nodeLookup:M,nodeExtent:re||z,nodeOrigin:B,onError:Z});P=P||J.position.x!==le.x||J.position.y!==le.y,J.position=le,J.internals.positionAbsolute=X}if(m=m||P,!!P&&(U(l,!0),v&&(r||V||!C&&D))){const[ne,J]=mne({nodeId:C,dragItems:l,nodeLookup:M});r?.(v,l,ne,J),V?.(v,ne,J),C||D?.(v,J)}}async function N(){if(!d)return;const{transform:R,panBy:L,autoPanSpeed:M,autoPanOnNodeDrag:z}=t();if(!z){c=!1,cancelAnimationFrame(i);return}const[H,F]=QOt(u,d,M);(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:M,nodesDraggable:z,transform:H,snapGrid:F,snapToGrid:B,selectNodesOnDrag:V,onNodeDragStart:D,onSelectionDragStart:Z,unselectNodesAndEdges:U}=t();f=!0,(!V||!_)&&!M&&C&&(L.get(C)?.selected||U()),_&&V&&C&&e?.(C);const P=U$(R.sourceEvent,{transform:H,snapGrid:F,snapToGrid:B,containerBounds:d});if(a=P,l=nKn(L,z,P,C),l.size>0&&(n||D||!C&&Z)){const[q,G]=mne({nodeId:C,dragItems:l,nodeLookup:L});n?.(R.sourceEvent,l,q,G),D?.(R.sourceEvent,q,G),C||Z?.(R.sourceEvent,G)}}const A=COt().clickDistance(T).on("start",R=>{const{domNode:L,nodeDragThreshold:M,transform:z,snapGrid:H,snapToGrid:F}=t();d=L?.getBoundingClientRect()||null,h=!1,m=!1,v=R.sourceEvent,M===0&&I(R),a=U$(R.sourceEvent,{transform:z,snapGrid:H,snapToGrid:F,containerBounds:d}),u=jg(R.sourceEvent,d)}).on("drag",R=>{const{autoPanOnNodeDrag:L,transform:M,snapGrid:z,snapToGrid:H,nodeDragThreshold:F,nodeLookup:B}=t(),V=U$(R.sourceEvent,{transform:M,snapGrid:z,snapToGrid:H,containerBounds:d});if(v=R.sourceEvent,(R.sourceEvent.type==="touchmove"&&R.sourceEvent.touches.length>1||C&&!B.has(C))&&(h=!0),!h){if(!c&&L&&f&&(c=!0,N()),!f){const D=jg(R.sourceEvent,d),Z=D.x-u.x,U=D.y-u.y;Math.sqrt(Z*Z+U*U)>F&&I(R)}(a.x!==V.xSnapped||a.y!==V.ySnapped)&&l&&f&&(u=jg(R.sourceEvent,d),E(V))}}).on("end",R=>{if(!(!f||h)&&(c=!1,f=!1,cancelAnimationFrame(i),l.size>0)){const{nodeLookup:L,updateNodePositions:M,onNodeDragStop:z,onSelectionDragStop:H}=t();if(m&&(M(l,!1),m=!1),s||z||!C&&H){const[F,B]=mne({nodeId:C,dragItems:l,nodeLookup:L,dragging:!1});s?.(R.sourceEvent,l,F,B),z?.(R.sourceEvent,F,B),C||H?.(R.sourceEvent,B)}}}).filter(R=>{const L=R.target;return!R.button&&(!x||!oBe(L,`.${x}`,k))&&(!S||oBe(L,S,k))});p.call(A)}function b(){p?.on(".drag",null)}return{update:y,destroy:b}}function aKn(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())WM(s,dN(a))>0&&r.push(a);return r}const iKn=250;function oKn(e,t,n,r){let s=[],a=1/0;const i=aKn(e,n,t+iKn);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}=n_(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 c_t(e,t,n,r,s,a=!1){const i=r.get(e);if(!i)return null;const l=s==="strict"?i.internals.handleBounds?.[t]:[...i.internals.handleBounds?.source??[],...i.internals.handleBounds?.target??[]],c=(n?l?.find(u=>u.id===n):l?.[0])??null;return c&&a?{...c,...n_(i,c,c.position,!0)}:c}function u_t(e,t){return e||(t?.classList.contains("target")?"target":t?.classList.contains("source")?"source":null)}function lKn(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}const d_t=()=>!0;function cKn(e,{connectionMode:t,connectionRadius:n,handleId:r,nodeId:s,edgeUpdaterType:a,isTarget:i,domNode:l,nodeLookup:c,lib:u,autoPanOnConnect:d,flowId:f,panBy:p,cancelConnection:h,onConnectStart:m,onConnect:v,onConnectEnd:y,isValidConnection:b=d_t,onReconnectEnd:x,updateConnection:S,getTransform:k,getFromHandle:_,autoPanSpeed:C,dragThreshold:T=1,handleDomNode:E}){const N=JOt(e.target);let I=0,A;const{x:R,y:L}=jg(e),M=u_t(a,E),z=l?.getBoundingClientRect();let H=!1;if(!z||!M)return;const F=c_t(s,M,r,c,t);if(!F)return;let B=jg(e,z),V=!1,D=null,Z=!1,U=null;function P(){if(!d||!z)return;const[le,X]=QOt(B,z,C);p({x:le,y:X}),I=requestAnimationFrame(P)}const q={...F,nodeId:s,type:M,position:F.position},G=c.get(s);let ne={inProgress:!0,isValid:null,from:n_(G,q,nr.Left,!0),fromHandle:q,fromPosition:q.position,fromNode:G,to:B,toHandle:null,toPosition:Q7e[q.position],toNode:null,pointer:B};function J(){H=!0,S(ne),m?.(e,{nodeId:s,handleId:r,handleType:M})}T===0&&J();function ee(le){if(!H){const{x:we,y:pe}=jg(le),ke=we-R,Ne=pe-L;if(!(ke*ke+Ne*Ne>T*T))return;J()}if(!_()||!q){re(le);return}const X=k();B=jg(le,z),A=oKn(u4(B,X,!1,[1,1]),n,c,q),V||(P(),V=!0);const te=f_t(le,{handle:A,connectionMode:t,fromNodeId:s,fromHandleId:r,fromType:i?"target":"source",isValidConnection:b,doc:N,lib:u,flowId:f,nodeLookup:c});U=te.handleDomNode,D=te.connection,Z=lKn(!!A,te.isValid);const se=c.get(s),fe=se?n_(se,q,nr.Left,!0):ne.from,ce={...ne,from:fe,isValid:Z,to:te.toHandle&&Z?uU({x:te.toHandle.x,y:te.toHandle.y},X):B,toHandle:te.toHandle,toPosition:Z&&te.toHandle?te.toHandle.position:Q7e[q.position],toNode:te.toHandle?c.get(te.toHandle.nodeId):null,pointer:B};S(ce),ne=ce}function re(le){if(!("touches"in le&&le.touches.length>0)){if(H){(A||U)&&D&&Z&&v?.(D);const{inProgress:X,...te}=ne,se={...te,toPosition:ne.toHandle?ne.toPosition:null};y?.(le,se),a&&x?.(le,se)}h(),cancelAnimationFrame(I),V=!1,Z=!1,D=null,U=null,N.removeEventListener("mousemove",ee),N.removeEventListener("mouseup",re),N.removeEventListener("touchmove",ee),N.removeEventListener("touchend",re)}}N.addEventListener("mousemove",ee),N.addEventListener("mouseup",re),N.addEventListener("touchmove",ee),N.addEventListener("touchend",re)}function f_t(e,{handle:t,connectionMode:n,fromNodeId:r,fromHandleId:s,fromType:a,doc:i,lib:l,flowId:c,isValidConnection:u=d_t,nodeLookup:d}){const f=a==="target",p=t?i.querySelector(`.${l}-flow__handle[data-id="${c}-${t?.nodeId}-${t?.id}-${t?.type}"]`):null,{x:h,y:m}=jg(e),v=i.elementFromPoint(h,m),y=v?.classList.contains(`${l}-flow__handle`)?v:p,b={handleDomNode:y,isValid:!1,connection:null,toHandle:null};if(y){const x=u_t(void 0,y),S=y.getAttribute("data-nodeid"),k=y.getAttribute("data-handleid"),_=y.classList.contains("connectable"),C=y.classList.contains("connectableend");if(!S||!x)return b;const T={source:f?S:r,sourceHandle:f?k:s,target:f?r:S,targetHandle:f?s:k};b.connection=T;const N=_&&C&&(n===cN.Strict?f&&x==="source"||!f&&x==="target":S!==r||k!==s);b.isValid=N&&u(T),b.toHandle=c_t(S,x,k,d,n,!0)}return b}const Rve={onPointerDown:cKn,isValid:f_t};function uKn({domNode:e,panZoom:t,getTransform:n,getViewScale:r}){const s=Ep(e);function a({translateExtent:l,width:c,height:u,zoomStep:d=1,pannable:f=!0,zoomable:p=!0,inversePan:h=!1}){const m=S=>{if(S.sourceEvent.type!=="wheel"||!t)return;const k=n(),_=S.sourceEvent.ctrlKey&&ZM()?10:1,C=-S.sourceEvent.deltaY*(S.sourceEvent.deltaMode===1?.05:S.sourceEvent.deltaMode?1:.002)*d,T=k[2]*Math.pow(2,C*_);t.scaleTo(T)};let v=[0,0];const y=S=>{(S.sourceEvent.type==="mousedown"||S.sourceEvent.type==="touchstart")&&(v=[S.sourceEvent.clientX??S.sourceEvent.touches[0].clientX,S.sourceEvent.clientY??S.sourceEvent.touches[0].clientY])},b=S=>{const k=n();if(S.sourceEvent.type!=="mousemove"&&S.sourceEvent.type!=="touchmove"||!t)return;const _=[S.sourceEvent.clientX??S.sourceEvent.touches[0].clientX,S.sourceEvent.clientY??S.sourceEvent.touches[0].clientY],C=[_[0]-v[0],_[1]-v[1]];v=_;const T=r()*Math.max(k[2],Math.log(k[2]))*(h?-1:1),E={x:k[0]-C[0]*T,y:k[1]-C[1]*T},N=[[0,0],[c,u]];t.setViewportConstrained({x:E.x,y:E.y,zoom:k[2]},N,l)},x=BOt().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:mg}}const kW=e=>({x:e.x,y:e.y,zoom:e.k}),gne=({x:e,y:t,zoom:n})=>xW.translate(e,t).scale(n),_T=(e,t)=>e.target.closest(`.${t}`),p_t=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),dKn=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,vne=(e,t=0,n=dKn,r=()=>{})=>{const s=typeof t=="number"&&t>0;return s||r(),s?e.transition().duration(t).ease(n).on("end",r):e},h_t=e=>{const t=e.ctrlKey&&ZM()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function fKn({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:r,panOnScrollMode:s,panOnScrollSpeed:a,zoomOnPinch:i,onPanZoomStart:l,onPanZoom:c,onPanZoomEnd:u}){return d=>{if(_T(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=mg(d),b=h_t(d),x=f*Math.pow(2,b);r.scaleTo(n,x,y,d);return}const p=d.deltaMode===1?20:1;let h=s===oO.Vertical?0:d.deltaX*p,m=s===oO.Horizontal?0:d.deltaY*p;!ZM()&&d.shiftKey&&s!==oO.Vertical&&(h=d.deltaY*p,m=0),r.translateBy(n,-(h/f)*a,-(m/f)*a,{internal:!0});const v=kW(n.property("__zoom"));clearTimeout(e.panScrollTimeout),e.isPanScrolling?(c?.(d,v),e.panScrollTimeout=setTimeout(()=>{u?.(d,v),e.isPanScrolling=!1},150)):(e.isPanScrolling=!0,l?.(d,v))}}function pKn({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(r,s){const a=r.type==="wheel",i=!t&&a&&!r.ctrlKey,l=_T(r,e);if(r.ctrlKey&&a&&l&&r.preventDefault(),i||l)return null;r.preventDefault(),n.call(this,r,s)}}function hKn({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return r=>{if(r.sourceEvent?.internal)return;const s=kW(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 mKn({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:r,onPanZoom:s}){return a=>{e.usedRightMouseButton=!!(n&&p_t(t,e.mouseButton??0)),a.sourceEvent?.sync||r([a.transform.x,a.transform.y,a.transform.k]),s&&!a.sourceEvent?.internal&&s?.(a.sourceEvent,kW(a.transform))}}function gKn({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:r,onPanZoomEnd:s,onPaneContextMenu:a}){return i=>{if(!i.sourceEvent?.internal&&(e.isZoomingOrPanning=!1,a&&p_t(t,e.mouseButton??0)&&!e.usedRightMouseButton&&i.sourceEvent&&a(i.sourceEvent),e.usedRightMouseButton=!1,r(!1),s)){const l=kW(i.transform);e.prevViewport=l,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{s?.(i.sourceEvent,l)},n?150:0)}}}function vKn({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"&&(_T(f,`${u}-flow__node`)||_T(f,`${u}-flow__edge`)))return!0;if(!r&&!p&&!s&&!a&&!n||i||d&&!m||_T(f,l)&&m||_T(f,c)&&(!m||s&&m&&!e)||!n&&f.ctrlKey&&m)return!1;if(!n&&f.type==="touchstart"&&f.touches?.length>1)return f.preventDefault(),!1;if(!p&&!s&&!h&&m||!r&&(f.type==="mousedown"||f.type==="touchstart")||Array.isArray(r)&&!r.includes(f.button)&&f.type==="mousedown")return!1;const v=Array.isArray(r)&&r.includes(f.button)||!f.button||f.button<=1;return(!f.ctrlKey||m)&&v}}function yKn({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=BOt().scaleExtent([t,n]).translateExtent(r),p=Ep(e).call(f);x({x:s.x,y:s.y,zoom:uN(s.zoom,t,n)},[[0,0],[d.width,d.height]],r);const h=p.on("wheel.zoom"),m=p.on("dblclick.zoom");f.wheelDelta(h_t);function v(A,R){return p?new Promise(L=>{f?.interpolate(R?.interpolate==="linear"?mx:n9).transform(vne(p,R?.duration,R?.ease,()=>L(!0)),A)}):Promise.resolve(!1)}function y({noWheelClassName:A,noPanClassName:R,onPaneContextMenu:L,userSelectionActive:M,panOnScroll:z,panOnDrag:H,panOnScrollMode:F,panOnScrollSpeed:B,preventScrolling:V,zoomOnPinch:D,zoomOnScroll:Z,zoomOnDoubleClick:U,zoomActivationKeyPressed:P,lib:q,onTransformChange:G,connectionInProgress:K,paneClickDistance:ne,selectionOnDrag:J}){M&&!u.isZoomingOrPanning&&b();const ee=z&&!P&&!M;f.clickDistance(J?1/0:!Tg(ne)||ne<0?0:ne);const re=ee?fKn({zoomPanValues:u,noWheelClassName:A,d3Selection:p,d3Zoom:f,panOnScrollMode:F,panOnScrollSpeed:B,zoomOnPinch:D,onPanZoomStart:i,onPanZoom:a,onPanZoomEnd:l}):pKn({noWheelClassName:A,preventScrolling:V,d3ZoomHandler:h});if(p.on("wheel.zoom",re,{passive:!1}),!M){const X=hKn({zoomPanValues:u,onDraggingChange:c,onPanZoomStart:i});f.on("start",X);const te=mKn({zoomPanValues:u,panOnDrag:H,onPaneContextMenu:!!L,onPanZoom:a,onTransformChange:G});f.on("zoom",te);const se=gKn({zoomPanValues:u,panOnDrag:H,panOnScroll:z,onPaneContextMenu:L,onPanZoomEnd:l,onDraggingChange:c});f.on("end",se)}const le=vKn({zoomActivationKeyPressed:P,panOnDrag:H,zoomOnScroll:Z,panOnScroll:z,zoomOnDoubleClick:U,zoomOnPinch:D,userSelectionActive:M,noPanClassName:R,noWheelClassName:A,lib:q,connectionInProgress:K});f.filter(le),U?p.on("dblclick.zoom",m):p.on("dblclick.zoom",null)}function b(){f.on("zoom",null)}async function x(A,R,L){const M=gne(A),z=f?.constrain()(M,R,L);return z&&await v(z),new Promise(H=>H(z))}async function S(A,R){const L=gne(A);return await v(L,R),new Promise(M=>M(L))}function k(A){if(p){const R=gne(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?zOt(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"?mx:n9).scaleTo(vne(p,R?.duration,R?.ease,()=>L(!0)),A)}):Promise.resolve(!1)}function T(A,R){return p?new Promise(L=>{f?.interpolate(R?.interpolate==="linear"?mx:n9).scaleBy(vne(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=!Tg(A)||A<0?0:A;f?.clickDistance(R)}return{update:y,destroy:b,setViewport:S,setViewportConstrained:x,getViewport:_,scaleTo:C,scaleBy:T,setScaleExtent:E,setTranslateExtent:N,syncViewport:k,setClickDistance:I}}var pN;(function(e){e.Line="line",e.Handle="handle"})(pN||(pN={}));function bKn({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 lBe(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 K0(e,t){return Math.max(0,t-e)}function X0(e,t){return Math.max(0,e-t)}function IF(e,t,n){return Math.max(0,t-e,e-n)}function cBe(e,t){return e?!t:t}function xKn(e,t,n,r,s,a,i,l){let{affectsX:c,affectsY:u}=t;const{isHorizontal:d,isVertical:f}=t,p=d&&f,{xSnapped:h,ySnapped:m}=n,{minWidth:v,maxWidth:y,minHeight:b,maxHeight:x}=r,{x:S,y:k,width:_,height:C,aspectRatio:T}=e;let E=Math.floor(d?h-e.pointerX:0),N=Math.floor(f?m-e.pointerY:0);const I=_+(c?-E:E),A=C+(u?-N:N),R=-a[0]*_,L=-a[1]*C;let M=IF(I,v,y),z=IF(A,b,x);if(i){let B=0,V=0;c&&E<0?B=K0(S+E+R,i[0][0]):!c&&E>0&&(B=X0(S+I+R,i[1][0])),u&&N<0?V=K0(k+N+L,i[0][1]):!u&&N>0&&(V=X0(k+A+L,i[1][1])),M=Math.max(M,B),z=Math.max(z,V)}if(l){let B=0,V=0;c&&E>0?B=X0(S+E,l[0][0]):!c&&E<0&&(B=K0(S+I,l[1][0])),u&&N>0?V=X0(k+N,l[0][1]):!u&&N<0&&(V=K0(k+A,l[1][1])),M=Math.max(M,B),z=Math.max(z,V)}if(s){if(d){const B=IF(I/T,b,x)*T;if(M=Math.max(M,B),i){let V=0;!c&&!u||c&&!u&&p?V=X0(k+L+I/T,i[1][1])*T:V=K0(k+L+(c?E:-E)/T,i[0][1])*T,M=Math.max(M,V)}if(l){let V=0;!c&&!u||c&&!u&&p?V=K0(k+I/T,l[1][1])*T:V=X0(k+(c?E:-E)/T,l[0][1])*T,M=Math.max(M,V)}}if(f){const B=IF(A*T,v,y)/T;if(z=Math.max(z,B),i){let V=0;!c&&!u||u&&!c&&p?V=X0(S+A*T+R,i[1][0])/T:V=K0(S+(u?N:-N)*T+R,i[0][0])/T,z=Math.max(z,V)}if(l){let V=0;!c&&!u||u&&!c&&p?V=K0(S+A*T,l[1][0])/T:V=X0(S+(u?N:-N)*T,l[0][0])/T,z=Math.max(z,V)}}}N=N+(N<0?z:-z),E=E+(E<0?M:-M),s&&(p?I>A*T?N=(cBe(c,u)?-E:E)/T:E=(cBe(c,u)?-N:N)*T:d?(N=E/T,u=c):(E=N*T,c=u));const H=c?S+E:S,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 m_t={width:0,height:0,x:0,y:0},wKn={...m_t,pointerX:0,pointerY:0,aspectRatio:1};function SKn(e){return[[0,0],[e.measured.width,e.measured.height]]}function kKn(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 OKn({domNode:e,nodeId:t,getStoreItems:n,onChange:r,onEnd:s}){const a=Ep(e);let i={controlDirection:lBe("bottom-right"),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};function l({controlPosition:u,boundaries:d,keepAspectRatio:f,resizeDirection:p,onResizeStart:h,onResize:m,onResizeEnd:v,shouldResize:y}){let b={...m_t},x={...wKn};i={boundaries:d,resizeDirection:p,keepAspectRatio:f,controlDirection:lBe(u)};let S,k=null,_=[],C,T,E,N=!1;const I=COt().on("start",A=>{const{nodeLookup:R,transform:L,snapGrid:M,snapToGrid:z,nodeOrigin:H,paneDomNode:F}=n();if(S=R.get(t),!S)return;k=F?.getBoundingClientRect()??null;const{xSnapped:B,ySnapped:V}=U$(A.sourceEvent,{transform:L,snapGrid:M,snapToGrid:z,containerBounds:k});b={width:S.measured.width??0,height:S.measured.height??0,x:S.position.x??0,y:S.position.y??0},x={...b,pointerX:B,pointerY:V,aspectRatio:b.width/b.height},C=void 0,S.parentId&&(S.extent==="parent"||S.expandParent)&&(C=R.get(S.parentId),T=C&&S.extent==="parent"?SKn(C):void 0),_=[],E=void 0;for(const[D,Z]of R)if(Z.parentId===t&&(_.push({id:D,position:{...Z.position},extent:Z.extent}),Z.extent==="parent"||Z.expandParent)){const U=kKn(Z,S,Z.origin??H);E?E=[[Math.min(U[0][0],E[0][0]),Math.min(U[0][1],E[0][1])],[Math.max(U[1][0],E[1][0]),Math.max(U[1][1],E[1][1])]]:E=U}h?.(A,{...b})}).on("drag",A=>{const{transform:R,snapGrid:L,snapToGrid:M,nodeOrigin:z}=n(),H=U$(A.sourceEvent,{transform:R,snapGrid:L,snapToGrid:M,containerBounds:k}),F=[];if(!S)return;const{x:B,y:V,width:D,height:Z}=b,U={},P=S.origin??z,{width:q,height:G,x:K,y:ne}=xKn(x,i.controlDirection,H,i.boundaries,i.keepAspectRatio,P,T,E),J=q!==D,ee=G!==Z,re=K!==B&&J,le=ne!==V&ⅇif(!re&&!le&&!J&&!ee)return;if((re||le||P[0]===1||P[1]===1)&&(U.x=re?K:b.x,U.y=le?ne:b.y,b.x=U.x,b.y=U.y,_.length>0)){const fe=K-B,ce=ne-V;for(const we of _)we.position={x:we.position.x-fe+P[0]*(q-D),y:we.position.y-ce+P[1]*(G-Z)},F.push(we)}if((J||ee)&&(U.width=J&&(!i.resizeDirection||i.resizeDirection==="horizontal")?q:b.width,U.height=ee&&(!i.resizeDirection||i.resizeDirection==="vertical")?G:b.height,b.width=U.width,b.height=U.height),C&&S.expandParent){const fe=P[0]*(U.width??0);U.x&&U.x<fe&&(b.x=fe,x.x=x.x-(U.x-fe));const ce=P[1]*(U.height??0);U.y&&U.y<ce&&(b.y=ce,x.y=x.y-(U.y-ce))}const X=bKn({width:b.width,prevWidth:D,height:b.height,prevHeight:Z,affectsX:i.controlDirection.affectsX,affectsY:i.controlDirection.affectsY}),te={...b,direction:X};y?.(A,te)!==!1&&(N=!0,m?.(A,te),r(U,F))}).on("end",A=>{N&&(v?.(A,{...b}),s?.({...b}),N=!1)});a.call(I)}function c(){a.on(".drag",null)}return{update:l,destroy:c}}const _Kn={},uBe=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:()=>{(_Kn?"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},CKn=e=>e?uBe(e):uBe,{useDebugValue:EKn}=Fe,{useSyncExternalStoreWithSelector:TKn}=Xjn,jKn=e=>e;function g_t(e,t=jKn,n){const r=TKn(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return EKn(r),r}const dBe=(e,t)=>{const n=CKn(e),r=(s,a=t)=>g_t(n,s,a);return Object.assign(r,n),r},NKn=(e,t)=>e?dBe(e,t):dBe;function oo(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 OW=g.createContext(null),IKn=OW.Provider,v_t=Sy.error001();function Ws(e,t){const n=g.useContext(OW);if(n===null)throw new Error(v_t);return g_t(n,e,t)}function To(){const e=g.useContext(OW);if(e===null)throw new Error(v_t);return g.useMemo(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}const fBe={display:"none"},AKn={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},y_t="react-flow__node-desc",b_t="react-flow__edge-desc",RKn="react-flow__aria-live",PKn=e=>e.ariaLiveMessage,$Kn=e=>e.ariaLabelConfig;function MKn({rfId:e}){const t=Ws(PKn);return o.jsx("div",{id:`${RKn}-${e}`,"aria-live":"assertive","aria-atomic":"true",style:AKn,children:t})}function DKn({rfId:e,disableKeyboardA11y:t}){const n=Ws($Kn);return o.jsxs(o.Fragment,{children:[o.jsx("div",{id:`${y_t}-${e}`,style:fBe,children:t?n["node.a11yDescription.default"]:n["node.a11yDescription.keyboardDisabled"]}),o.jsx("div",{id:`${b_t}-${e}`,style:fBe,children:n["edge.a11yDescription.default"]}),!t&&o.jsx(MKn,{rfId:e})]})}const d4=g.forwardRef(({position:e="top-left",children:t,className:n,style:r,...s},a)=>{const i=`${e}`.split("-");return o.jsx("div",{className:Gl(["react-flow__panel",n,...i]),style:r,ref:a,...s,children:t})});d4.displayName="Panel";function LKn({proOptions:e,position:t="bottom-right"}){return e?.hideAttribution?null:o.jsx(d4,{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 FKn=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}},AF=e=>e.id;function zKn(e,t){return oo(e.selectedNodes.map(AF),t.selectedNodes.map(AF))&&oo(e.selectedEdges.map(AF),t.selectedEdges.map(AF))}function BKn({onSelectionChange:e}){const t=To(),{selectedNodes:n,selectedEdges:r}=Ws(FKn,zKn);return g.useEffect(()=>{const s={nodes:n,edges:r};e?.(s),t.getState().onSelectionChangeHandlers.forEach(a=>a(s))},[n,r,e]),null}const UKn=e=>!!e.onSelectionChangeHandlers;function qKn({onSelectionChange:e}){const t=Ws(UKn);return e||t?o.jsx(BKn,{onSelectionChange:e}):null}const Pve=typeof window<"u"?g.useLayoutEffect:g.useEffect,x_t=[0,0],VKn={x:0,y:0,zoom:1},HKn=["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"],pBe=[...HKn,"rfId"],WKn=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}),hBe={translateExtent:qM,nodeOrigin:x_t,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:"nopan",rfId:"1"};function ZKn(e){const{setNodes:t,setEdges:n,setMinZoom:r,setMaxZoom:s,setTranslateExtent:a,setNodeExtent:i,reset:l,setDefaultNodesAndEdges:c}=Ws(WKn,oo),u=To();Pve(()=>(c(e.defaultNodes,e.defaultEdges),()=>{d.current=hBe,l()}),[]);const d=g.useRef(hBe);return Pve(()=>{for(const f of pBe){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:MYn(p)}):f==="fitView"?u.setState({fitViewQueued:p}):f==="fitViewOptions"?u.setState({fitViewOptions:p}):u.setState({[f]:p})))}d.current=e},pBe.map(f=>e[f])),null}function mBe(){return typeof window>"u"||!window.matchMedia?null:window.matchMedia("(prefers-color-scheme: dark)")}function GKn(e){const[t,n]=g.useState(e==="system"?null:e);return g.useEffect(()=>{if(e!=="system"){n(e);return}const r=mBe(),s=()=>n(r?.matches?"dark":"light");return s(),r?.addEventListener("change",s),()=>{r?.removeEventListener("change",s)}},[e]),t!==null?t:mBe()?.matches?"dark":"light"}const gBe=typeof document<"u"?document:null;function GM(e=null,t={target:gBe,actInsideInputWithModifier:!0}){const[n,r]=g.useState(!1),s=g.useRef(!1),a=g.useRef(new Set([])),[i,l]=g.useMemo(()=>{if(e!==null){const u=(Array.isArray(e)?e:[e]).filter(f=>typeof f=="string").map(f=>f.replace("+",`
|
|
235
235
|
`).replace(`
|
|
236
236
|
|
|
237
237
|
`,`
|
|
@@ -642,7 +642,7 @@ Token usage: ${n} input + ${r} output = ${s} total`:`The model stopped generatin
|
|
|
642
642
|
"groundTruth": "Expected result (optional)",
|
|
643
643
|
"metadata": { "key": "value" } // optional
|
|
644
644
|
}
|
|
645
|
-
]`})]})]})}function yms({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(We,{children:o.jsx(uc,{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 bms({datasetId:e,open:t,onOpenChange:n,onSuccess:r}){const[s,a]=g.useState("upload"),[i,l]=g.useState(null),[c,u]=g.useState({current:0,total:0}),[d,f]=g.useState(null),[p,h]=g.useState(!1),{parseFile:m,isParsing:v,error:y}=hhs(),{batchInsertItems:b}=Ai(),x=g.useCallback(async I=>{try{const A=await m(I);l(A),a("preview")}catch{}},[m]),S=g.useCallback(async()=>{if(!i||i.items.length===0)return;a("importing"),h(!0);const{items:I}=i;u({current:0,total:I.length});try{await b.mutateAsync({datasetId:e,items:I.map(A=>({input:A.input,groundTruth:A.groundTruth,metadata:A.metadata}))}),f({success:I.length,errors:0})}catch{f({success:0,errors:I.length})}u({current:I.length,total:I.length}),h(!1),a("complete")},[i,b,e]),k=g.useCallback(()=>{n(!1),r?.(),d&&d.success>0&&ze.success(`Imported ${d.success} item${d.success!==1?"s":""}`),setTimeout(()=>{a("upload"),l(null),u({current:0,total:0}),f(null)},150)},[n,r,d]),_=g.useCallback(()=>{p||(n(!1),setTimeout(()=>{a("upload"),l(null),u({current:0,total:0}),f(null)},150))},[p,n]),C=i&&i.items.length>0&&i.errors.length===0,T=()=>{switch(s){case"upload":return o.jsx(vms,{onFileSelect:x,isParsing:v,error:y?.message});case"preview":return i?o.jsx("div",{className:"flex flex-col gap-4",children:i.errors.length>0?o.jsxs(o.Fragment,{children:[o.jsx(yms,{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(gms,{items:i.items,maxRows:5})]})}):null;case"importing":return o.jsxs("div",{className:"flex flex-col items-center gap-4 py-8",children:[o.jsx(qt,{}),o.jsxs("div",{className:"text-center",children:[o.jsx("div",{className:"text-neutral1 text-lg font-medium",children:"Importing items..."}),o.jsxs("div",{className:"text-neutral4 mt-1 text-sm",children:[c.current," of ",c.total]})]})]});case"complete":return o.jsxs("div",{className:"flex flex-col items-center gap-4 py-8",children:[o.jsx("div",{className:"text-4xl",children:d&&d.errors===0?"✓":"⚠"}),o.jsxs("div",{className:"text-center",children:[o.jsx("div",{className:"text-neutral1 text-lg font-medium",children:"Import Complete"}),o.jsxs("div",{className:"text-neutral4 mt-1 text-sm",children:[d?.success??0," item",d?.success!==1?"s":""," imported",d&&d.errors>0&&o.jsxs("span",{className:"text-accent2",children:[" ","(",d.errors," error",d.errors!==1?"s":"",")"]})]})]})]})}},E=()=>{switch(s){case"upload":return o.jsx(oe,{onClick:_,children:"Cancel"});case"preview":return o.jsxs(o.Fragment,{children:[o.jsx(oe,{onClick:()=>a("upload"),children:"Back"}),o.jsxs(oe,{variant:"primary",onClick:S,disabled:!C,children:["Import ",i?.items.length??0," Item",i?.items.length!==1?"s":""]})]});case"importing":return null;case"complete":return o.jsx(oe,{variant:"primary",onClick:k,children:"Done"})}},N={upload:"Import JSON",preview:"Preview Data",importing:"Importing",complete:"Import Complete"};return o.jsx(gr,{open:t,onOpenChange:_,children:o.jsxs(vr,{className:"max-h-[90vh] max-w-2xl",children:[o.jsxs(yr,{children:[o.jsx(fr,{children:N[s]}),o.jsx(_s,{children:"Import dataset items from a JSON file."})]}),o.jsx(Rr,{className:"max-h-[50vh] min-h-[200px] overflow-y-auto",children:T()}),o.jsx(Ul,{className:"flex justify-end gap-2 px-6 pt-4",children:E()})]})})}function xms(e){if(!(e instanceof HTMLElement))return!1;if(e.isContentEditable)return!0;const t=e.tagName;return t==="INPUT"||t==="TEXTAREA"||t==="SELECT"?!0:!!e.closest('[role="dialog"]:not([data-item-panel])')}function RVt({active:e,onPrevious:t,onNext:n,onClose:r}){g.useEffect(()=>{if(!e)return;const s=a=>{a.defaultPrevented||xms(a.target)||(a.key==="PageUp"?(a.preventDefault(),t?.()):a.key==="PageDown"?(a.preventDefault(),n?.()):a.key==="Escape"&&(a.preventDefault(),r()))};return window.addEventListener("keydown",s),()=>window.removeEventListener("keydown",s)},[e,t,n,r])}const PVt=g.createContext(null);function wms({datasetId:e,items:t,isLoadingItems:n,children:r}){const s=Vr(),i=Lgt("/datasets/:datasetId/items/:itemId")?.params.itemId,l=g.useCallback(h=>{s(`/datasets/${e}/items/${encodeURIComponent(h)}`)},[s,e]),c=g.useCallback(()=>{s(`/datasets/${e}`)},[s,e]),u=g.useMemo(()=>i?t.findIndex(h=>h.id===i):-1,[t,i]),d=g.useMemo(()=>{if(u<=0)return;const h=t[u-1].id;return()=>l(h)},[u,t,l]),f=g.useMemo(()=>{if(u<0||u>=t.length-1)return;const h=t[u+1].id;return()=>l(h)},[u,t,l]);RVt({active:!!i,onPrevious:d,onNext:f,onClose:c});const p=g.useMemo(()=>({datasetId:e,items:t,isLoadingItems:n,currentItemId:i,openItem:l,close:c,goToPreviousItem:d,goToNextItem:f}),[e,t,n,i,l,c,d,f]);return o.jsx(PVt.Provider,{value:p,children:r})}function $Vt(){const e=g.useContext(PVt);if(!e)throw new Error("useDatasetItemPanel must be used within a DatasetItemPanelProvider");return e}function Sms({datasetId:e,onAddItemClick:t,onNavigateToDataset:n,leftSlot:r,rightSlot:s}){const[a,i]=$a(),{activeVersion:l}=iRe(a,i),[c,u]=g.useState(!1),[d,f]=g.useState(!1),[p,h]=g.useState(!1),[m,v]=g.useState([]),[y,b]=g.useState(!1),[x,S]=g.useState([]),[k,_]=g.useState(!1),[C,T]=g.useState([]),[E,N]=g.useState(0),[I,A]=g.useState(""),[R]=ZH(I,300),{data:L}=Py(e),{data:M=[],isLoading:z,setEndOfListElement:H,isFetchingNextPage:F,hasNextPage:B}=V1(e,R||void 0,l),{deleteItems:V}=Ai(),{currentItemId:D,openItem:Z,close:U}=$Vt(),P=le=>{D===le?U():Z(le)},q=le=>{v(le),h(!0)},G=le=>{S(le),b(!0)},K=le=>{b(le),le||(S([]),N(X=>X+1))},ne=le=>{T(le),_(!0)},J=async()=>{await V.mutateAsync({datasetId:e,itemIds:C}),ze.success(`Deleted ${C.length} items`),_(!1),T([]),N(le=>le+1)},ee=le=>{h(!1),v([]),N(X=>X+1),n?.(le)},re=le=>{h(le),le||(v([]),N(X=>X+1))};return o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"grid h-full overflow-auto",children:o.jsx(mms,{items:M,leftSlot:r,rightSlot:s,isLoading:z,onItemClick:P,featuredItemId:D,onAddClick:t??(()=>{}),onImportClick:()=>u(!0),onImportJsonClick:()=>f(!0),onBulkDeleteClick:ne,onCreateDatasetClick:q,onAddToDatasetClick:G,datasetName:L?.name,clearSelectionTrigger:E,setEndOfListElement:H,isFetchingNextPage:F,hasNextPage:B,searchQuery:I,activeSearchQuery:R,onSearchChange:A,currentDatasetVersion:L?.version})}),o.jsx(ums,{datasetId:e,open:c,onOpenChange:u}),o.jsx(bms,{datasetId:e,open:d,onOpenChange:f}),o.jsx(Vhs,{open:p,onOpenChange:re,items:m,onSuccess:ee}),o.jsx(Hhs,{open:y,onOpenChange:K,items:x,currentDatasetId:e}),o.jsx($t,{open:k,onOpenChange:_,children:o.jsxs($t.Content,{children:[o.jsxs($t.Header,{children:[o.jsx($t.Title,{children:"Delete Items"}),o.jsxs($t.Description,{children:["Are you sure you want to delete ",C.length," item",C.length!==1?"s":"","? This action cannot be undone."]})]}),o.jsxs($t.Footer,{children:[o.jsx($t.Cancel,{children:"Cancel"}),o.jsx($t.Action,{onClick:J,children:V.isPending?"Deleting...":"Delete"})]})]})})]})}function MVt({selectedScorers:e,setSelectedScorers:t,disabled:n=!1,container:r,label:s="Scorers (Optional)",helperText:a}){const{data:i,isLoading:l}=lh(),c=Object.entries(i??{}).filter(([,u])=>u.isRegistered).map(([u,d])=>({value:u,label:d.scorer?.config?.name||u,description:d.scorer?.config?.description||""}));return o.jsxs("div",{className:"grid gap-2",children:[o.jsx(Dt,{children:s}),a?o.jsx("p",{className:"text-muted-foreground text-xs",children:a}):null,o.jsx(zl,{multiple:!0,options:c,value:e,onValueChange:t,placeholder:"Select scorers...",searchPlaceholder:"Search scorers...",emptyText:"No scorers available",disabled:n||l,container:r})]})}function DVt({overrideEnabled:e,onOverrideEnabledChange:t,selectedScorerIds:n,onSelectedScorerIdsChange:r,disabled:s=!1}){return o.jsxs("div",{className:"grid gap-3",children:[o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsx(Bl,{id:"override-dataset-scorers",checked:e,onCheckedChange:t,disabled:s}),o.jsx(Dt,{htmlFor:"override-dataset-scorers",children:"Override dataset scorers"})]}),o.jsx("p",{className:"text-muted-foreground text-xs",children:e?"Only selected scorers run for this item. Leave empty to run no scorers.":"Use scorers attached to the dataset."}),e?o.jsx(MVt,{selectedScorers:n,setSelectedScorers:r,disabled:s,label:"Item scorers",helperText:"Choose from scorers that can be resolved by this Mastra instance."}):null]})}function kms(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 Lie({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 Oms({datasetId:e,open:t,onOpenChange:n,onSuccess:r}){const[s,a]=g.useState("{}"),[i,l]=g.useState(""),[c,u]=g.useState(""),[d,f]=g.useState(""),[p,h]=g.useState(!1),[m,v]=g.useState([]),[y,b]=g.useState(""),[x,S]=g.useState(null),{addItem:k}=Ai(),_=()=>{a("{}"),l(""),u(""),f(""),h(!1),v([]),b(""),S(null)},C=R=>{_(),n(R)},T=async R=>{R.preventDefault();let L;try{L=JSON.parse(s)}catch{ze.error("Input must be valid JSON");return}let M;if(i.trim())try{M=JSON.parse(i)}catch{ze.error("Ground Truth must be valid JSON");return}let z;if(c.trim())try{z=JSON.parse(c)}catch{ze.error("Expected Trajectory must be valid JSON");return}let H;if(d.trim())try{const B=JSON.parse(d);if(!Array.isArray(B)){ze.error("Tool Mocks must be a JSON array");return}H=B}catch{ze.error("Tool Mocks must be valid JSON");return}let F;if(y.trim())try{F=JSON.parse(y)}catch{ze.error("Request Context must be valid JSON");return}try{await k.mutateAsync({datasetId:e,input:L,groundTruth:M,expectedTrajectory:z,toolMocks:H,scorerIds:p?m:void 0,requestContext:F}),ze.success("Item added successfully"),C(!1),r?.()}catch(B){const V=kms(B);V?S(V):ze.error(`Failed to add item: ${B instanceof Error?B.message:"Unknown error"}`)}},E=R=>{a(R),x?.field==="input"&&S(null)},N=R=>{l(R),x?.field==="groundTruth"&&S(null)},I=R=>{f(R),x?.field==="toolMocks"&&S(null)},A=()=>{C(!1)};return o.jsxs(Sa,{dialogTitle:"Add Item",dialogDescription:"Create a new dataset item",isOpen:t,onClose:A,level:1,children:[o.jsx(Sa.Top,{children:"Add Item"}),o.jsxs(Sa.Content,{children:[o.jsx(Sa.Header,{children:o.jsx(Sa.Heading,{children:"Add Item"})}),o.jsxs("form",{onSubmit:T,className:"grid gap-6",children:[o.jsxs("div",{className:"grid gap-2",children:[o.jsx(Dt,{htmlFor:"item-input",children:"Input (JSON) *"}),o.jsx(Qr,{value:s,onChange:E,showCopyButton:!1,className:"min-h-[240px]"}),x?.field==="input"&&o.jsx(Lie,{field:"input",errors:x.errors})]}),o.jsxs("div",{className:"grid gap-2",children:[o.jsx(Dt,{htmlFor:"item-ground-truth",children:"Ground Truth (JSON, optional)"}),o.jsx(Qr,{value:i,onChange:N,showCopyButton:!1,className:"min-h-[200px]"}),x?.field==="groundTruth"&&o.jsx(Lie,{field:"groundTruth",errors:x.errors})]}),o.jsxs("div",{className:"grid gap-2",children:[o.jsx(Dt,{htmlFor:"item-trajectory",children:"Expected Trajectory (JSON, optional)"}),o.jsx(Qr,{value:c,onChange:u,showCopyButton:!1,className:"min-h-[200px]"})]}),o.jsxs("div",{className:"grid gap-2",children:[o.jsx(Dt,{htmlFor:"item-tool-mocks",children:"Tool Mocks (JSON array, optional)"}),o.jsx(Qr,{value:d,onChange:I,showCopyButton:!1,className:"min-h-[200px]"}),x?.field==="toolMocks"&&o.jsx(Lie,{field:"toolMocks",errors:x.errors})]}),o.jsx(DVt,{overrideEnabled:p,onOverrideEnabledChange:h,selectedScorerIds:m,onSelectedScorerIdsChange:v,disabled:k.isPending}),o.jsxs("div",{className:"grid gap-2",children:[o.jsx(Dt,{htmlFor:"item-request-context",children:"Request Context (JSON, optional)"}),o.jsx(Qr,{value:y,onChange:b,showCopyButton:!1,className:"min-h-[200px]"})]}),o.jsxs("div",{className:"flex justify-end gap-2 pt-4",children:[o.jsx(oe,{type:"button",onClick:A,children:"Cancel"}),o.jsx(oe,{type:"submit",variant:"primary",disabled:k.isPending,children:k.isPending?"Adding...":"Add Item"})]})]})]})]})}function _ms({item:e}){return o.jsx(Aa,{withMargins:!1,children:o.jsxs(Aa.Column,{children:[o.jsxs(Aa.Title,{size:"smaller",children:[o.jsx(TV,{}),o.jsx("span",{className:"truncate",children:e.id}),o.jsx(ka,{content:e.id,tooltip:`Copy item ID: ${e.id}`})]}),o.jsxs(Aa.Description,{children:[o.jsxs(Rl,{children:[o.jsx(NQt,{})," Created ",ur(new Date(e.createdAt),"MMM d, yyyy h:mm aaa")]}),e.datasetVersion!=null&&o.jsxs(Rl,{children:[o.jsx(cI,{})," Version v",e.datasetVersion]})]})]})})}function oRe({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(q7r,{children:[o.jsx(Sa.CodeSection,{title:"Input",icon:o.jsx(xx,{}),codeStr:t}),o.jsx(Sa.CodeSection,{title:"Ground Truth",icon:o.jsx(tm,{}),codeStr:n}),s&&o.jsx(Sa.CodeSection,{title:"Expected Trajectory",icon:o.jsx(C0e,{}),codeStr:s}),o.jsx(Sa.CodeSection,{title:"Scorers",icon:o.jsx(AV,{}),codeStr:e.scorerIds===void 0?"Inherited from dataset":JSON.stringify(e.scorerIds,null,2)}),o.jsx(Sa.CodeSection,{title:"Metadata",icon:o.jsx(uI,{}),codeStr:r})]})}function Fie({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 Cms({inputValue:e,setInputValue:t,groundTruthValue:n,setGroundTruthValue:r,metadataValue:s,setMetadataValue:a,trajectoryValue:i,setTrajectoryValue:l,toolMocksValue:c,setToolMocksValue:u,scorerOverrideEnabled:d,setScorerOverrideEnabled:f,selectedScorerIds:p,setSelectedScorerIds:h,requestContextValue:m,setRequestContextValue:v,validationErrors:y,onSave:b,onCancel:x,isSaving:S}){return o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"mb-4",children:o.jsxs("h3",{className:"flex items-center gap-2 text-lg font-medium",children:[o.jsx(pm,{className:"h-5 w-5"})," Edit Item"]})}),o.jsxs("div",{className:"space-y-6",children:[o.jsxs("div",{className:"space-y-2",children:[o.jsx(Dt,{children:"Input (JSON) *"}),o.jsx(Qr,{value:e,onChange:t,showCopyButton:!1,className:"min-h-[120px]"}),y?.field==="input"&&o.jsx(Fie,{field:"input",errors:y.errors})]}),o.jsxs("div",{className:"space-y-2",children:[o.jsx(Dt,{children:"Ground Truth (JSON, optional)"}),o.jsx(Qr,{value:n,onChange:r,showCopyButton:!1,className:"min-h-[100px]"}),y?.field==="groundTruth"&&o.jsx(Fie,{field:"groundTruth",errors:y.errors})]}),o.jsxs("div",{className:"space-y-2",children:[o.jsx(Dt,{children:"Expected Trajectory (JSON, optional)"}),o.jsx(Qr,{value:i,onChange:l,showCopyButton:!1,className:"min-h-[80px]"})]}),o.jsxs("div",{className:"space-y-2",children:[o.jsx(Dt,{children:"Tool Mocks (JSON array, optional)"}),o.jsxs("p",{className:"text-muted-foreground text-xs",children:["Ordered static mocks served in place of executing the tool. Each entry is"," ",o.jsx("code",{children:'{ "toolName", "args", "output" }'}),". Calling a mocked tool with non-matching args fails the item; unmocked tools run live."]}),o.jsx(Qr,{value:c,onChange:u,showCopyButton:!1,className:"min-h-[100px]"}),y?.field==="toolMocks"&&o.jsx(Fie,{field:"toolMocks",errors:y.errors})]}),o.jsx(DVt,{overrideEnabled:d,onOverrideEnabledChange:f,selectedScorerIds:p,onSelectedScorerIdsChange:h,disabled:S}),o.jsxs("div",{className:"space-y-2",children:[o.jsx(Dt,{children:"Request Context (JSON, optional)"}),o.jsx(Qr,{value:m,onChange:v,showCopyButton:!1,className:"min-h-[80px]"})]}),o.jsxs("div",{className:"space-y-2",children:[o.jsx(Dt,{children:"Metadata (JSON, optional)"}),o.jsx(Qr,{value:s,onChange:a,showCopyButton:!1,className:"min-h-[80px]"})]}),o.jsxs("div",{className:"flex gap-2 pt-4",children:[o.jsx(oe,{variant:"primary",onClick:b,disabled:S,children:S?"Saving...":"Save Changes"}),o.jsx(oe,{onClick:x,disabled:S,children:"Cancel"})]})]})]})}const Ems=[{value:"agent",label:"Agent"},{value:"workflow",label:"Workflow"},{value:"scorer",label:"Scorer"}];function Tms({targetType:e,setTargetType:t,targetId:n,setTargetId:r,container:s}){const{data:a,isLoading:i}=zm(),{data:l,isLoading:c}=Wy(),{data:u,isLoading:d}=lh(),f=e==="agent"?Object.entries(a??{}).map(([v,y])=>({value:v,label:y.name??v})):e==="workflow"?Object.entries(l??{}).map(([v,y])=>({value:v,label:y.name??v})):e==="scorer"?Object.entries(u??{}).map(([v,y])=>({value:v,label:y.scorer?.config?.name??v})):[],p=e==="agent"&&i||e==="workflow"&&c||e==="scorer"&&d,h=v=>{t(v),r("")},m=e==="agent"?"Agent":e==="workflow"?"Workflow":"Scorer";return o.jsxs("div",{className:"grid gap-6",children:[o.jsxs("div",{className:"grid gap-2",children:[o.jsx(Dt,{children:"Target Type"}),o.jsx(zl,{options:Ems,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(zl,{options:f,value:n,onValueChange:r,placeholder:`Select ${e}`,searchPlaceholder:"Search...",emptyText:"No targets available",disabled:p,container:s})]})]})}function jms({requestContextSchema:e,onChange:t}){const n=g.useMemo(()=>{try{return xm(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(K3,{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 nY({initialDatasetId:e,initialDatasetVersion:t,initialScorerIds:n,initialTargetType:r,initialTargetId:s,open:a,onOpenChange:i,onSuccess:l}){const c=g.useRef(null),[u,d]=g.useState(e??""),[f,p]=g.useState(t??null),[h,m]=g.useState(r??""),[v,y]=g.useState(s??""),[b,x]=g.useState(n??[]),[S,k]=g.useState({}),[_,C]=g.useState(""),{triggerExperiment:T}=Ai(),{data:E}=Py(u),N=E?.requestContextSchema,I=!!(N&&Object.keys(N).length>0),A=u&&h&&v,R=T.isPending,L=B=>{d(B),p(null),k({})},M=()=>{d(e??""),p(t??null),m(r??""),y(s??""),x(n??[]),k({}),C("")},z=()=>{if(I){const B=Object.entries(S).filter(([,V])=>V!==void 0&&V!=="");return B.length>0?Object.fromEntries(B):void 0}if(_.trim()){let B;try{B=JSON.parse(_)}catch{throw new Error("Request Context must be valid JSON")}if(!B||typeof B!="object"||Array.isArray(B))throw new Error("Request Context must be a JSON object");return B}},H=async()=>{if(!A)return;let B;try{B=z()}catch(V){const D=V instanceof Error?V.message:"Request Context must be valid JSON";gu.error(D);return}try{const V=await T.mutateAsync({datasetId:u,targetType:h,targetId:v,scorerIds:b.length>0?b:void 0,version:f??void 0,requestContext:B});gu.success("Experiment triggered successfully"),i(!1),l?.(V.experimentId),M()}catch(V){const D=V instanceof Error?V.message:"Failed to trigger experiment";gu.error(D)}},F=()=>{R||(i(!1),M())};return o.jsx(gr,{open:a,onOpenChange:F,children:o.jsxs(vr,{ref:c,children:[o.jsxs(yr,{children:[o.jsx(fr,{children:"Run Experiment"}),o.jsx(_s,{children:f!=null?`Execute items from version v${f} of the dataset against a target.`:"Execute dataset items against a target."})]}),o.jsxs(Rr,{className:"grid gap-6",children:[o.jsxs("div",{className:"grid gap-6",children:[o.jsxs("div",{className:"grid gap-2",children:[o.jsx(Dt,{children:"Dataset"}),o.jsx(Khs,{value:u,onValueChange:L,container:c})]}),u&&o.jsxs("div",{className:"grid gap-2",children:[o.jsx(Dt,{children:"Version"}),o.jsx(IVt,{datasetId:u,value:f,onValueChange:p,container:c})]})]}),o.jsx(Tms,{targetType:h,setTargetType:m,targetId:v,setTargetId:y,container:c}),o.jsx(MVt,{selectedScorers:b,setSelectedScorers:x,disabled:R,container:c}),I?o.jsx(jms,{requestContextSchema:N,onChange:k}):o.jsxs("div",{className:"space-y-2",children:[o.jsx(Dt,{children:"Request Context (JSON, optional)"}),o.jsx(Qr,{value:_,onChange:C,showCopyButton:!1,className:"min-h-[80px]"})]})]}),o.jsxs(Ul,{className:"px-6 pt-4",children:[o.jsx(oe,{onClick:F,disabled:R,children:"Cancel"}),o.jsx(oe,{variant:"primary",onClick:H,disabled:!A||R,children:R?o.jsxs(o.Fragment,{children:[o.jsx(qt,{className:"h-4 w-4"}),"Running..."]}):"Run"})]})]})})}const LVt=g.createContext(null);function Nms({experimentId:e,datasetId:t,experimentStatus:n,results:r,isLoadingResults:s,hasNextPage:a,children:i}){const l=Vr(),u=Lgt("/experiments/:experimentId/items/:itemId")?.params.itemId,d=g.useCallback(b=>{l(`/experiments/${e}/items/${encodeURIComponent(b)}`)},[l,e]),f=g.useCallback(()=>{l(`/experiments/${e}`)},[l,e]),p=g.useCallback(b=>{l(`/experiments/${e}?review=${encodeURIComponent(b)}`)},[l,e]),h=g.useMemo(()=>u?r.findIndex(b=>b.itemId===u):-1,[r,u]),m=g.useMemo(()=>{if(h<=0)return;const b=r[h-1].itemId;return()=>d(b)},[h,r,d]),v=g.useMemo(()=>{if(h<0||h>=r.length-1)return;const b=r[h+1].itemId;return()=>d(b)},[h,r,d]);RVt({active:!!u,onPrevious:m,onNext:v,onClose:f});const y=g.useMemo(()=>({experimentId:e,datasetId:t,experimentStatus:n,results:r,isLoadingResults:s,hasNextPage:a,currentItemId:u,openItem:d,close:f,openInReview:p,goToPreviousItem:m,goToNextItem:v}),[e,t,n,r,s,a,u,d,f,p,m,v]);return o.jsx(LVt.Provider,{value:y,children:i})}function FVt(){const e=g.useContext(LVt);if(!e)throw new Error("useExperimentItemPanel must be used within an ExperimentItemPanelProvider");return e}function Ims({results:e,isLoading:t,featuredResultId:n,onResultClick:r,columns:s,scoresByItemId:a,scorerIds:i,setEndOfListElement:l,isFetchingNextPage:c,hasNextPage:u,selectedIds:d,onToggleSelect:f}){const{Link:p,paths:h}=un(),m=!!(d&&f),v=[m?"auto":"",...s.map(k=>k.size)].filter(Boolean).join(" "),y=s.some(k=>k.name==="input"),{containerRef:b,getRowProps:x}=ao({count:e.length}),S=k=>i?.includes(k.name)?o.jsx(he.TopCell,{children:o.jsxs(p,{href:h.scorerLink(k.name),className:"flex min-w-0 items-center gap-1.5 hover:underline [&>svg]:size-3.5 [&>svg]:shrink-0",children:[o.jsx(AC,{}),o.jsx("span",{className:"min-w-0 truncate",children:k.label})]})},k.name):o.jsx(he.TopCell,{children:k.label},k.name);return t?o.jsx(Fo,{columns:v}):o.jsxs(he,{columns:v,className:"min-w-0",scrollRef:b,children:[o.jsxs(he.Top,{hasLeadingCell:m,children:[m&&o.jsx(he.TopCell,{children:" "}),m?o.jsx(he.TopCells,{colStart:2,children:s.map(S)}):s.map(S)]}),e.length===0?o.jsx(he.NoMatch,{message:"No results yet"}):o.jsxs(o.Fragment,{children:[e.map((k,_)=>{const C=!!k.error,T=k.id===n,E=o.jsxs(o.Fragment,{children:[o.jsxs(he.Cell,{className:"text-ui-smd text-neutral3 flex items-center gap-1.5 tracking-wide",children:[o.jsx("span",{children:k.itemId?.slice(0,8)??""}),C&&o.jsxs(yn,{children:[o.jsx(gn,{render:o.jsx(yO,{role:"img","aria-label":"Error",className:"text-error size-3.5"})}),o.jsx(vn,{children:k.error?.message||"Error"})]})]}),y&&o.jsx(he.TextCell,{font:"mono",children:Rms(Ams(k.input),200)}),i?.map(N=>{const A=a?.[k.itemId]?.find(R=>R.scorerId===N);return o.jsx(he.Cell,{className:"text-neutral3 text-ui-smd font-mono",children:A!=null?A.score.toFixed(3):"-"},N)})]});return m?o.jsxs(he.RowWrapper,{children:[o.jsx(he.SelectCell,{checked:d.has(k.id),onToggle:()=>f(k.id),"aria-label":`Select result ${k.itemId}`}),o.jsx(he.RowButton,{colStart:2,featured:T,"data-selected":T||void 0,onClick:()=>r(k.id),...x(_),children:E})]},k.id):o.jsx(he.RowButton,{featured:T,"data-selected":T||void 0,onClick:()=>r(k.id),...x(_),children:E},k.id)}),o.jsx(he.NextPageLoading,{isLoading:c,hasMore:u,setEndOfListElement:l})]})]})}function Ams(e){return e==null?"-":typeof e=="string"?e:JSON.stringify(e,null,2)}function Rms(e,t){return e.length<=t?e:e.slice(0,t-1)+"..."}function Pms({scoresByItemId:e,experimentStatus:t}){const{Link:n,paths:r}=un(),{data:s}=lh(),a=g.useMemo(()=>{if(!e)return[];const i={};for(const l of Object.values(e))for(const c of l)i[c.scorerId]||(i[c.scorerId]={sum:0,count:0}),i[c.scorerId].sum+=c.score,i[c.scorerId].count++;return Object.entries(i).map(([l,{sum:c,count:u}])=>({scorerId:l,avg:c/u})).sort((l,c)=>l.scorerId.localeCompare(c.scorerId))},[e]);if(a.length===0){const i=t==="running"||t==="pending",l=e!==void 0;let c,u;return i?(c="Experiment in progress",u="Summary metrics will appear here once the experiment completes."):l?(c="No scorers configured",u="Add scorers when triggering an experiment to evaluate results and see summary metrics here."):(c="Loading scores",u="Fetching scorer results…"),o.jsxs("div",{className:"text-ui-sm text-neutral3 flex items-center gap-2",children:[o.jsx(Zp,{className:"text-neutral3 size-4 shrink-0"}),o.jsx("span",{className:"text-neutral4",children:c}),o.jsx("span",{className:"truncate",children:u})]})}return o.jsx("div",{className:"flex items-stretch gap-2 overflow-x-auto pb-1",children:a.map(({scorerId:i,avg:l})=>{const c=s?.[i]?.scorer?.config?.name??i;return o.jsxs(Xr,{className:"w-52 min-w-0 flex-none p-3",children:[o.jsxs(n,{href:r.scorerLink(i),className:"text-ui-sm text-neutral3 [&>svg]:text-neutral3 flex min-w-0 items-center gap-1.5 hover:underline [&>svg]:size-3 [&>svg]:shrink-0",children:[o.jsxs(yn,{children:[o.jsx(gn,{render:o.jsx(AC,{role:"img","aria-label":"Scorer"})}),o.jsx(vn,{children:"Scorer"})]}),o.jsx("span",{className:"truncate",children:c})]}),o.jsxs("strong",{className:"text-ui-lg text-neutral4 font-semibold",children:[l.toFixed(3),o.jsx("span",{className:"text-ui-sm text-neutral3 ml-1.5 font-normal",children:"avg score"})]})]},i)})})}const zVt=e=>{const t=Ge(),{data:n}=hAe(e),r=n?.experiments;return ht({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})},$ms=e=>{const t=Ge(),{data:n}=hAe(e),r=n?.experiments;return ht({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 rY({label:e,wide:t=!1,children:n}){return o.jsxs("div",{className:Y("pointer-events-none absolute inset-0 z-30","grid transition-[grid-template-columns] duration-300 ease-in-out",t?"grid-cols-[1fr_4fr]":"grid-cols-[1fr_1fr]"),children:[o.jsx("div",{className:"pointer-events-none"}),o.jsx("div",{role:"dialog","data-item-panel":!0,"aria-label":e,className:"pointer-events-auto h-full min-h-0 min-w-0 overflow-y-auto",children:n})]})}function Mms(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 Dms({datasetId:e,experimentId:t,featuredItemId:n,detailPanelVariant:r="inline"}){const s=Ge(),{data:a}=Py(e),{data:i,isLoading:l}=zVt(e),{data:c,isLoading:u}=$ms(e),d=g.useMemo(()=>t?i?.filter(Pe=>Pe.experimentId===t):i,[i,t]),f=g.useMemo(()=>t?c?.filter(Pe=>Pe.experimentId===t):c,[c,t]),{updateExperimentResult:p}=Ai(),[h,m]=g.useState(n??null);g.useEffect(()=>{n!==void 0&&m(n)},[n]);const[v,y]=g.useState(null),[b,x]=g.useState(new Set),[S,k]=g.useState(!1),[_,C]=g.useState(!1),[T,E]=g.useState(!1),[N,I]=g.useState(""),[A,R]=g.useState(""),[L,M]=g.useState(""),[z,H]=g.useState([]),[F,B]=g.useState(!1),[V,D]=g.useState(null),Z=g.useMemo(()=>V??d??[],[V,d]);g.useEffect(()=>{D(null)},[e,t]),g.useEffect(()=>{d&&V===null&&D(d)},[d,V]);const U=g.useMemo(()=>{const Pe=new Set;if(a?.tags)for(const be of a.tags)Pe.add(be);for(const be of Z)for(const Se of be.tags)Pe.add(Se);return[...Pe].sort()},[a,Z]),P=g.useCallback(Pe=>{!a||!e||(a.tags??[]).includes(Pe)},[a,e]),q=g.useMemo(()=>v?v==="__untagged__"?Z.filter(Pe=>Pe.tags.length===0):Z.filter(Pe=>Pe.tags.includes(v)):Z,[Z,v]),G=g.useMemo(()=>{const Pe=new Map;for(const be of Z)for(const Se of be.tags)Pe.set(Se,(Pe.get(Se)??0)+1);return[...Pe.entries()].sort((be,Se)=>Se[1]-be[1])},[Z]),K=g.useMemo(()=>Z.filter(Pe=>Pe.tags.length===0).length,[Z]),ne=g.useMemo(()=>{let Pe=0;return v&&Pe++,S&&Pe++,Pe},[v,S]),J=g.useCallback((Pe,be)=>{D(Re=>(Re??[]).map(Be=>Be.id===Pe?{...Be,tags:be}:Be));const Se=Z.find(Re=>Re.id===Pe);Se?.experimentId&&Se?.datasetId&&p.mutate({datasetId:Se.datasetId,experimentId:Se.experimentId,resultId:Se.id,tags:be})},[Z,p]),ee=g.useCallback((Pe,be)=>{const Se=Z.find(Re=>Re.id===Pe);Se?.traceId&&be!==void 0&&s.createFeedback({feedback:{traceId:Se.traceId,source:"studio",feedbackSource:"studio",feedbackType:"rating",value:be==="positive"?1:-1,reviewStatus:"reviewed",experimentId:Se.experimentId??void 0,sourceId:Se.id}}).catch(()=>{}),D(Re=>(Re??[]).map(Be=>Be.id===Pe?{...Be,rating:be}:Be))},[Z,s]),re=g.useCallback((Pe,be)=>{const Se=Z.find(Re=>Re.id===Pe);Se?.experimentId&&Se?.datasetId&&p.mutate({datasetId:Se.datasetId,experimentId:Se.experimentId,resultId:Se.id,comment:be}),Se?.traceId&&s.createFeedback({feedback:{traceId:Se.traceId,source:"studio",feedbackSource:"studio",feedbackType:"comment",value:be,comment:be,reviewStatus:"reviewed",experimentId:Se.experimentId??void 0,sourceId:Se.id}}).catch(()=>{}),D(Re=>(Re??[]).map(Be=>Be.id===Pe?{...Be,comment:be}:Be))},[Z,s,p]),le=g.useCallback(Pe=>{const be=Z.find(Se=>Se.id===Pe);D(Se=>(Se??[]).filter(Re=>Re.id!==Pe)),x(Se=>{const Re=new Set(Se);return Re.delete(Pe),Re}),h===Pe&&m(null),be?.experimentId&&be?.datasetId&&p.mutate({datasetId:be.datasetId,experimentId:be.experimentId,resultId:be.id,status:null})},[Z,p,h]),X=g.useCallback(Pe=>{const be=Z.find(Se=>Se.id===Pe);D(Se=>(Se??[]).filter(Re=>Re.id!==Pe)),x(Se=>{const Re=new Set(Se);return Re.delete(Pe),Re}),h===Pe&&m(null),be?.experimentId&&be?.datasetId&&p.mutate({datasetId:be.datasetId,experimentId:be.experimentId,resultId:be.id,status:"complete"})},[Z,p,h]),te=g.useMemo(()=>{const Pe=S?f??[]:q;return!S||!v?Pe:v==="__untagged__"?Pe.filter(be=>be.tags.length===0):Pe.filter(be=>be.tags.includes(v))},[S,f,q,v]),se=S?u:!1,fe=g.useMemo(()=>new Set(te.map(Pe=>Pe.id)),[te]),ce=g.useMemo(()=>[...b].filter(Pe=>fe.has(Pe)).length,[b,fe]),we=te.length>0&&ce===te.length,pe=ce>0&&!we,ke=g.useCallback(Pe=>{x(be=>{const Se=new Set(be);return Se.has(Pe)?Se.delete(Pe):Se.add(Pe),Se})},[]),Ne=g.useCallback(()=>{x(we?new Set:new Set(te.map(Pe=>Pe.id)))},[we,te]),$e=g.useCallback(Pe=>{for(const be of b){const Se=Z.find(Re=>Re.id===be);Se&&!Se.tags.includes(Pe)&&J(be,[...Se.tags,Pe])}},[Z,b,J]),Ae=g.useCallback(Pe=>{for(const be of b){const Se=Z.find(Re=>Re.id===be);Se&&Se.tags.includes(Pe)&&J(be,Se.tags.filter(Re=>Re!==Pe))}},[Z,b,J]),Ie=g.useCallback(()=>{for(const Pe of b)X(Pe);x(new Set)},[b,X]),ae=g.useCallback(()=>{for(const Pe of b)le(Pe);x(new Set)},[b,le]),me=g.useCallback(()=>{I(""),E(!0)},[]),ue=g.useCallback(async()=>{if(!(!A||!L)){C(!0),E(!1);try{const Pe=Z.filter(Se=>b.has(Se.id));if(Pe.length===0){C(!1);return}const be=await s.clusterFailures({modelId:`${A}/${L}`,items:Pe.map(Se=>({id:Se.id,input:Se.input,output:Se.output??void 0,error:typeof Se.error=="string"?Se.error:Se.error?String(Se.error):void 0,scores:Se.scores,existingTags:Se.tags.length>0?Se.tags:void 0})),availableTags:U.length>0?U:void 0,prompt:N||void 0});be.proposedTags&&be.proposedTags.length>0&&(H(be.proposedTags.map(Se=>({...Se,accepted:!0}))),B(!0))}catch(Pe){console.error("Analysis failed:",Pe)}finally{C(!1)}}},[A,L,Z,b,s,U,N]),xe=g.useCallback(()=>{for(const Pe of z){if(!Pe.accepted)continue;const be=Z.find(Se=>Se.id===Pe.itemId);if(be){const Se=[...new Set([...be.tags,...Pe.tags])];J(be.id,Se)}}B(!1)},[z,Z,J]),Ee=g.useCallback(Pe=>{m(be=>be===Pe?null:Pe)},[]),ye=g.useMemo(()=>h?te.find(Pe=>Pe.id===h)??null:null,[h,te]),Ce=h?te.findIndex(Pe=>Pe.id===h):-1,Ue=Ce>0?()=>m(te[Ce-1].id):void 0,Le=Ce>=0&&Ce<te.length-1?()=>m(te[Ce+1].id):void 0,He="auto minmax(15rem,1fr) 10rem 8rem 6rem 6rem",{containerRef:Je,getRowProps:ot}=ao({count:te.length});if(l)return o.jsx("div",{className:"flex flex-1 items-center justify-center",children:o.jsx(qt,{className:"h-6 w-6"})});const gt=ye?o.jsx(NUt,{className:"h-full",item:ye,isCompleted:S,tagVocabulary:U,onRate:Pe=>ee(ye.id,Pe),onSetTags:Pe=>{J(ye.id,Pe);for(const be of Pe)U.includes(be)||P(be)},onComment:Pe=>re(ye.id,Pe),onRemove:()=>le(ye.id),onComplete:S?void 0:()=>X(ye.id),onPrevious:Ue,onNext:Le,onClose:()=>m(null)}):null;return o.jsxs("div",{className:Y("flex h-full min-h-0 flex-1",r==="overlay"?"overflow-visible":"overflow-hidden"),children:[o.jsx(gr,{open:T,onOpenChange:E,children:o.jsxs(vr,{children:[o.jsxs(yr,{children:[o.jsx(fr,{children:"Analyze Items"}),o.jsx(_s,{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(Vy,{value:A,onValueChange:R})]}),o.jsxs("div",{children:[o.jsx(Dt,{className:"mb-1 block text-xs",children:"Model"}),o.jsx(Hy,{llmId:A,value:L,onValueChange:M})]})]}),o.jsxs(ve,{variant:"ui-xs",className:"text-neutral3",children:[b.size," item",b.size!==1?"s":""," will be analyzed"]}),o.jsxs("div",{children:[o.jsx(Dt,{className:"text-xs",children:"Instructions (optional)"}),o.jsx(il,{value:N,onChange:Pe=>I(Pe.target.value),placeholder:"E.g., Focus on safety issues and factual errors...",rows:3,className:"mt-1 text-xs"})]})]}),o.jsxs(Ul,{children:[o.jsx(oe,{variant:"outline",onClick:()=>E(!1),children:"Cancel"}),o.jsxs(oe,{onClick:ue,disabled:!A||!L||_,children:[_?o.jsx(qt,{className:"mr-1 h-4 w-4"}):null,"Analyze"]})]})]})}),o.jsx(gr,{open:F,onOpenChange:B,children:o.jsxs(vr,{className:"max-h-[80vh] max-w-2xl overflow-y-auto",children:[o.jsxs(yr,{children:[o.jsx(fr,{children:"Review Proposed Tags"}),o.jsxs(_s,{children:[z.filter(Pe=>Pe.accepted).length," of ",z.length," proposals selected"]})]}),o.jsx("div",{className:"space-y-3 py-2",children:z.map((Pe,be)=>{const Se=Z.find(Re=>Re.id===Pe.itemId);return o.jsx("div",{className:Y("p-3 border rounded-lg",!Pe.accepted&&"opacity-50"),children:o.jsxs("div",{className:"flex items-start gap-2",children:[o.jsx(Oo,{checked:Pe.accepted,onCheckedChange:Re=>H(Be=>Be.map((Ke,Tt)=>Tt===be?{...Ke,accepted:!!Re}:Ke))}),o.jsxs("div",{className:"min-w-0 flex-1",children:[o.jsx(ve,{variant:"ui-xs",className:"text-neutral4 block truncate",children:Se?typeof Se.input=="string"?Se.input.slice(0,100):JSON.stringify(Se.input).slice(0,100):Pe.itemId}),o.jsx("div",{className:"mt-1.5 flex flex-wrap gap-1",children:Pe.tags.map((Re,Be)=>o.jsx(AUt,{tag:Re,onRename:Ke=>H(Tt=>Tt.map((Te,Xe)=>Xe===be?{...Te,tags:Te.tags.map((dt,Ut)=>Ut===Be?Ke:dt)}:Te)),onRemove:()=>H(Ke=>Ke.map((Tt,Te)=>Te===be?{...Tt,tags:Tt.tags.filter((Xe,dt)=>dt!==Be)}:Tt))},`${Re}-${Be}`))}),Pe.reason&&o.jsx(ve,{variant:"ui-xs",className:"text-neutral3 mt-1 block italic",children:Pe.reason})]})]})},Pe.itemId)})}),o.jsxs(Ul,{children:[o.jsx(oe,{variant:"outline",onClick:()=>B(!1),children:"Cancel"}),o.jsxs(oe,{onClick:xe,disabled:z.filter(Pe=>Pe.accepted).length===0,children:["Accept ",z.filter(Pe=>Pe.accepted).length," proposals"]})]})]})}),o.jsxs("div",{className:Y("grid h-full min-h-0 w-full grid-cols-1 gap-4",r==="overlay"?"overflow-visible":"overflow-hidden",ye&&r==="inline"&&"grid-cols-[1fr_1fr]"),children:[o.jsxs("div",{className:"grid min-h-0 w-full grid-rows-[auto_1fr] gap-3 overflow-hidden pt-3",children:[(Z.length>0||ne>0)&&o.jsxs("div",{className:"flex w-full flex-wrap items-center justify-start gap-3",children:[o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsxs(rt,{children:[o.jsx(rt.Trigger,{asChild:!0,children:o.jsxs(oe,{size:"sm",children:[o.jsx(b0e,{}),"Filter",ne>0&&o.jsx(wt,{size:"xs",children:ne})]})}),o.jsxs(rt.Content,{align:"start",className:Y("min-w-48"),children:[o.jsxs(rt.Sub,{children:[o.jsxs(rt.SubTrigger,{children:["Status",S&&o.jsx("span",{className:Y("ml-auto text-ui-sm text-accent1"),children:"1"})]}),o.jsxs(rt.SubContent,{children:[o.jsx(rt.CheckboxItem,{checked:!S,onCheckedChange:()=>{k(!1),m(null)},onSelect:Pe=>Pe.preventDefault(),children:"Review Queue"}),o.jsx(rt.CheckboxItem,{checked:S,onCheckedChange:()=>{k(!0),m(null)},onSelect:Pe=>Pe.preventDefault(),children:"Completed"})]})]}),o.jsxs(rt.Sub,{children:[o.jsxs(rt.SubTrigger,{children:["Tags",v&&o.jsx("span",{className:Y("ml-auto text-ui-sm text-accent1"),children:"1"})]}),o.jsxs(rt.SubContent,{children:[o.jsx(rt.CheckboxItem,{checked:!v,onCheckedChange:()=>y(null),onSelect:Pe=>Pe.preventDefault(),children:"All"}),K>0&&o.jsx(rt.CheckboxItem,{checked:v==="__untagged__",onCheckedChange:()=>y(v==="__untagged__"?null:"__untagged__"),onSelect:Pe=>Pe.preventDefault(),children:"Untagged"}),G.length>0&&o.jsx(rt.Separator,{}),G.map(([Pe])=>o.jsx(rt.CheckboxItem,{checked:v===Pe,onCheckedChange:()=>y(v===Pe?null:Pe),onSelect:be=>be.preventDefault(),children:Pe},Pe))]})]}),ne>0&&o.jsxs(o.Fragment,{children:[o.jsx(rt.Separator,{}),o.jsxs(rt.Item,{onSelect:()=>{y(null),k(!1),m(null)},children:[o.jsx(or,{}),"Clear all filters"]})]})]})]}),ne>0&&o.jsxs(oe,{size:"sm",onClick:()=>{y(null),k(!1),m(null)},children:[o.jsx(or,{}),"Reset"]})]}),!S&&b.size>0&&o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(IUt,{selectedCount:b.size,vocabulary:U,onApplyTag:$e,onRemoveTag:Ae,onNewTag:Pe=>$e(Pe)}),o.jsxs(rt,{children:[o.jsx(rt.Trigger,{asChild:!0,children:o.jsxs(oe,{size:"sm",disabled:_,children:[_?o.jsx(qt,{className:"h-4 w-4"}):o.jsx(We,{size:"sm",children:o.jsx(Xs,{})}),"Actions"]})}),o.jsxs(rt.Content,{align:"end",children:[o.jsxs(rt.Item,{onSelect:Ie,children:[o.jsx(We,{size:"sm",children:o.jsx(bO,{})}),"Complete"]}),o.jsxs(rt.Item,{onSelect:ae,children:[o.jsx(We,{size:"sm",children:o.jsx(Ll,{})}),"Remove"]}),o.jsx(rt.Separator,{}),o.jsxs(rt.Item,{onSelect:me,children:[o.jsx(We,{size:"sm",children:o.jsx(Mg,{})}),"Analyze"]})]})]})]})]}),se?o.jsx("div",{className:"flex flex-1 items-center justify-center",children:o.jsx(qt,{className:"h-6 w-6"})}):te.length===0?o.jsx("div",{className:"flex h-full items-center justify-center py-12",children:o.jsx(br,{iconSlot:o.jsx(wO,{className:"text-neutral3 h-8 w-8"}),titleSlot:S?"No completed reviews yet":"No items to review",descriptionSlot:S?"Items marked as complete will appear here for auditing.":"When experiment results are flagged for review, they will appear here."})}):o.jsxs(he,{columns:He,className:"min-w-0",scrollRef:Je,children:[o.jsxs(he.Top,{hasLeadingCell:!0,children:[S?o.jsx(he.TopCell,{children:" "}):o.jsx(he.TopSelectCell,{checked:we?!0:pe?"indeterminate":!1,onToggle:()=>Ne(),"aria-label":"Select all"}),o.jsxs(he.TopCells,{colStart:2,children:[o.jsx(he.TopCell,{children:"Input"}),o.jsx(he.TopCell,{children:"Comment"}),o.jsx(he.TopCell,{children:"Tags"}),o.jsx(he.TopCell,{children:"Rating"}),o.jsx(he.TopCell,{children:"Scores"})]})]}),te.map((Pe,be)=>{const Se=Pe.scores?Object.entries(Pe.scores):[],Re=h===Pe.id,Be=o.jsxs(o.Fragment,{children:[o.jsx(he.Cell,{className:"text-neutral4 min-w-0",children:o.jsx("span",{className:"block truncate",children:Mms(Pe.input,200)})}),o.jsx(he.Cell,{className:"min-w-0",children:Pe.comment?o.jsx(ve,{variant:"ui-xs",className:"text-neutral3 truncate",children:Pe.comment}):o.jsx(ve,{variant:"ui-xs",className:"text-neutral2",children:"—"})}),o.jsx(he.Cell,{className:"min-w-0",children:Pe.tags.length>0?o.jsx(ve,{variant:"ui-xs",className:"text-neutral4 truncate",children:Pe.tags.join(", ")}):o.jsx(ve,{variant:"ui-xs",className:"text-neutral2",children:"—"})}),o.jsxs(he.Cell,{children:[Pe.rating==="positive"&&o.jsx(We,{size:"sm",className:"text-positive1",children:o.jsx(I0e,{})}),Pe.rating==="negative"&&o.jsx(We,{size:"sm",className:"text-negative1",children:o.jsx(N0e,{})}),!Pe.rating&&o.jsx(ve,{variant:"ui-xs",className:"text-neutral2",children:"—"})]}),o.jsx(he.Cell,{children:Se.length>0?o.jsxs("div",{className:"flex items-center gap-1",children:[o.jsx(We,{size:"sm",className:"text-neutral3",children:o.jsx(Zp,{})}),o.jsx(ve,{variant:"ui-xs",className:"text-neutral4 font-mono",children:Se[0][1].toFixed(2)}),Se.length>1&&o.jsxs(wt,{children:["+",Se.length-1]})]}):o.jsx(ve,{variant:"ui-xs",className:"text-neutral2",children:"—"})})]});return o.jsxs(he.RowWrapper,{children:[S?o.jsx(he.Cell,{className:"justify-items-center px-4",children:o.jsx("div",{role:"img","aria-label":Pe.error?"Error":"Success",title:Pe.error?"Error":"Success",className:Y("w-2 h-2 rounded-full",Pe.error?"bg-red-700":"bg-green-600")})}):o.jsx(he.SelectCell,{checked:b.has(Pe.id),onToggle:()=>ke(Pe.id),"aria-label":`Select item ${Pe.id}`}),o.jsx(he.RowButton,{colStart:2,featured:Re,onClick:()=>Ee(Pe.id),...ot(be),children:Be})]},Pe.id)})]})]}),gt&&(r==="overlay"?o.jsx(rY,{label:`Review item ${ye?.id??""}`,children:gt}):gt)]})]})}function Lms({experimentId:e,datasetId:t,experimentStatus:n,results:r,isLoading:s,setEndOfListElement:a,isFetchingNextPage:i,hasNextPage:l}){const{currentItemId:c,openItem:u,close:d}=FVt(),[f,p]=g.useState(new Set),[h,m]=g.useState(!1),{updateExperimentResult:v}=Ai(),y=g.useCallback(F=>{p(B=>{const V=new Set(B);return V.has(F)?V.delete(F):V.add(F),V})},[]),b=g.useCallback(()=>p(new Set),[]),x=g.useCallback(async F=>{if(h||F.length===0)return;m(!0);let B=0;const V=new Set;try{for(const D of F)try{await v.mutateAsync({datasetId:t,experimentId:e,resultId:D,status:"needs-review"}),B++,V.add(D)}catch{}}finally{m(!1)}V.size>0&&p(D=>{const Z=new Set(D);for(const U of V)Z.delete(U);return Z}),B>0&&ze(`${B} result${B>1?"s":""} flagged for review`)},[t,e,h,v]),S=g.useMemo(()=>c?r.find(F=>F.itemId===c)?.id??null:null,[r,c]),[k,_]=g.useState("results"),[C,T]=$a(),E=C.get("review"),N=c?"results":E?"reviews":k,I=F=>{_(F),F!=="results"&&c&&d(),F!=="reviews"&&E&&T(B=>{const V=new URLSearchParams(B);return V.delete("review"),V},{replace:!0})},{data:A}=zVt(t),R=(A??[]).filter(F=>F.experimentId===e).length,{data:L}=__(e,n),M=g.useMemo(()=>{if(!L)return[];const F=new Set;for(const B of Object.values(L))for(const V of B)F.add(V.scorerId);return[...F].sort()},[L]),z=g.useCallback(F=>{const B=r.find(V=>V.id===F);B&&(B.itemId===c?d():u(B.itemId))},[r,c,d,u]),H=g.useMemo(()=>[{name:"itemId",label:"Item ID",size:"7rem"},{name:"input",label:"Input",size:"minmax(15rem,1fr)"},...M.map(F=>({name:F,label:F,size:"12rem"}))],[M]);return o.jsxs(wc,{defaultTab:"results",value:N,onValueChange:I,className:"grid h-full grid-rows-[auto_1fr] overflow-visible",children:[o.jsxs(xc,{variant:"pill-ghost",children:[o.jsxs(Pr,{value:"results",className:"px-3 py-2.5",children:[o.jsx(We,{size:"sm",children:o.jsx(wx,{})}),o.jsx(ve,{variant:"ui-sm",className:"text-inherit",children:"Results"})]}),o.jsxs(Pr,{value:"reviews",className:"px-3 py-2.5",children:[o.jsx(We,{size:"sm",children:o.jsx(wO,{})}),o.jsx(ve,{variant:"ui-sm",className:"text-inherit",children:"Reviews"}),R>0&&o.jsx(wt,{size:"xs",children:R})]})]}),o.jsx(fs,{value:"reviews",className:"h-full min-h-0 overflow-visible py-0",children:o.jsx(Dms,{datasetId:t,experimentId:e,featuredItemId:E,detailPanelVariant:"overlay"})}),o.jsxs(fs,{value:"results",className:Y("grid gap-3 overflow-hidden pt-3",f.size>0?"grid-rows-[auto_auto_1fr]":"grid-rows-[auto_1fr]"),children:[o.jsx(Pms,{scoresByItemId:L,experimentStatus:n}),f.size>0&&o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsxs(oe,{variant:"outline",size:"sm",disabled:h,onClick:()=>x([...f]),children:[o.jsx(We,{size:"sm",children:o.jsx(wO,{})}),"Flag ",f.size," to review"]}),o.jsx(oe,{variant:"ghost",size:"sm",onClick:b,children:"Clear"})]}),o.jsx("div",{className:"min-h-0 overflow-y-auto",children:o.jsx(Ims,{results:r,isLoading:s,featuredResultId:S,onResultClick:z,columns:H,scoresByItemId:L,scorerIds:M,setEndOfListElement:a,isFetchingNextPage:i,hasNextPage:l,selectedIds:f,onToggleSelect:y})})]})]})}const ntt={pending:{icon:o.jsx(s1,{className:"text-warning1 size-4"}),label:"Pending"},running:{icon:o.jsx(qt,{size:"sm"}),label:"Running"},completed:{icon:o.jsx(t3,{className:"text-neutral3 size-4"}),label:"Completed"},failed:{icon:o.jsx(xO,{className:"text-error size-4"}),label:"Failed"}};function Fms({status:e,className:t}){const n=ntt[e]??ntt.pending;return o.jsxs(yn,{children:[o.jsx(gn,{render:o.jsx("span",{tabIndex:0,className:Y("flex shrink-0 items-center",t),children:n.icon})}),o.jsx(vn,{children:n.label})]})}const zms=e=>{const t=Ge();return ht({queryKey:["experiment-trace-light",e],queryFn:async()=>{if(!e)throw new Error("Trace ID is required");return t.getTraceLight(e)},select:TAe,enabled:!!e})};function BVt({children:e,className:t}){return o.jsx("div",{className:Y("",t),children:e})}function Bms({date:e,className:t,withTime:n=!1}){const r=e?Cxt(new Date(e)):!1,s=e?V3(new Date(e))?"Today":ur(new Date(e),"MMM dd"):"",a=e&&!r?ur(new Date(e),"yyyy"):"",i=e&&n?`${ur(new Date(e),"'at' h:mm aaa")}`:"";return o.jsxs("div",{className:Y("truncate text-ui-md text-neutral2",t),children:[s," ",a," ",i]})}function lRe(e){return!e||e.length===0?"":e?.map(t=>t.size).join(" ")}function Ums({columns:e,isSelectionActive:t,children:n}){return o.jsx("div",{className:Y("sticky top-0 z-10 mb-4 rounded-lg bg-surface3 px-4"),children:o.jsx("div",{className:Y("grid items-center gap-4 text-left text-ui-xs tracking-widest text-neutral3 uppercase",{"pl-12 [&>label]:absolute [&>label]:left-0":t}),style:{gridTemplateColumns:lRe(e)},children:n})})}function qms({children:e,className:t}){return o.jsx("span",{className:Y("py-3",t),children:e})}function Vms({id:e,className:t,isShortened:n=!0}){const r=n?e.slice(0,8):e;return o.jsx("div",{className:Y("truncate py-[0.6rem] text-ui-md text-neutral2",t),children:r})}function Hms({children:e}){return o.jsx("ul",{className:"grid content-start",children:e})}function Wms({children:e}){const t=g.useRef(null);return o.jsx("div",{ref:t,className:Y("overflow-y-auto"),children:e})}function Zms({children:e,className:t}){return o.jsx("label",{className:Y("flex h-full w-14 items-center justify-center rounded-lg hover:bg-surface5",t),children:e})}function Gms({children:e,href:t,className:n,LinkComponent:r,tooltip:s}){const a=o.jsx(r,{href:t,className:Y("flex w-full items-center justify-center gap-6 rounded-lg px-3 py-[0.6rem] text-left","hover:bg-surface4",Yr.colors,L3.visible,n),children:e});return s==null?a:o.jsxs(yn,{children:[o.jsx(gn,{render:a}),o.jsx(vn,{children:s})]})}function Qms({children:e,message:t,className:n,type:r}){return!e&&!t?null:o.jsx("div",{className:Y("grid border-t border-border1",n),children:t?o.jsxs("p",{className:Y("grid justify-center justify-items-center gap-2 p-8 text-center text-ui-md text-neutral3","[&>svg]:size-[1.5em] [&>svg]:opacity-75",{"[&>svg]:text-red-500":r==="error"}),children:[r==="error"?o.jsx(uc,{}):o.jsx(Cm,{})," ",t]}):e})}function Yms({isLoading:e,hasMore:t,setEndOfListElement:n,loadingText:r="Loading more data...",noMoreDataText:s="No more data to load"}){return n?o.jsxs("div",{ref:n,className:"text-ui-md text-neutral3 mt-8 flex justify-center opacity-50",children:[e&&r,!t&&!e&&s]}):null}function Kms({currentPage:e,hasMore:t,onNextPage:n,onPrevPage:r}){const s=typeof e=="number"&&e>0||t;return o.jsxs("div",{className:Y("flex items-center justify-center gap-8 pt-6 text-ui-md text-neutral3"),children:[o.jsxs("span",{children:["Page ",o.jsx("b",{children:e?e+1:"1"})]}),s&&o.jsxs("div",{className:Y("flex gap-4","[&>button]:flex [&>button]:items-center [&>button]:gap-2 [&>button]:rounded-md [&>button]:border [&>button]:border-border1 [&>button]:p-1 [&>button]:px-2 [&>button]:text-neutral4 [&>button]:transition-colors [&>button:hover]:text-neutral5","[&_svg]:size-[1em] [&_svg]:text-neutral3"),children:[typeof e=="number"&&e>0&&o.jsxs("button",{onClick:r,children:[o.jsx(yl,{}),"Previous"]}),t&&o.jsxs("button",{onClick:n,children:["Next",o.jsx(zd,{})]})]})]})}function Xms({children:e,className:t}){return o.jsx("div",{className:Y("grid grid-rows-[auto_1fr] overflow-y-auto",t),children:e})}function Jms({isSelected:e,children:t,columns:n}){return o.jsx("li",{className:Y("flex overflow-hidden rounded-lg border border-transparent border-t-border1 py-[3px] pb-[2px] text-ui-md text-neutral5 first:border-t-transparent","[&:last-child>button]:rounded-b-lg","[&.selected-row]:border [&.selected-row]:border-dashed [&.selected-row]:border-white/50 [&.selected-row]:pr-[3px] [&.selected-row]:first:border-t","[&:has(+.selected-row)]:rounded-b-none [&:has(+.selected-row)]:border-b-transparent","[.selected-row+&]:rounded-t-none",Yr.colors,{"selected-row":e,"grid px-4 gap-4 ":n}),style:{gridTemplateColumns:lRe(n)},children:t})}function egs({item:e,isFeatured:t,onClick:n,children:r,columns:s,className:a,disabled:i,tooltip:l,...c}){const u=()=>{n?.(e?.id)},d=o.jsx("button",{...c,onClick:u,className:Y("grid w-full items-center gap-4 rounded-lg px-4 text-left",Yr.colors,L3.visible,{"bg-surface4":t,"hover:bg-surface4":e&&!t&&!i},a),style:{gridTemplateColumns:lRe(s)},disabled:i,children:r});return l==null?d:o.jsxs(yn,{children:[o.jsx(gn,{render:d}),o.jsx(vn,{children:l})]})}function tgs(e){return e.charAt(0).toUpperCase()+e.slice(1)}function ngs({status:e}){return e?o.jsxs(yn,{children:[o.jsx(gn,{asChild:!0,children:o.jsx("div",{className:Y("relative flex h-full w-10 items-center justify-center bg-transparent"),children:o.jsx("div",{className:Y("size-2 rounded-full",{"bg-green-600":["success","completed"].includes(e),"bg-red-700":["error","failed"].includes(e),"bg-yellow-500":["pending","running"].includes(e)})})})}),o.jsx(vn,{children:tgs(e)})]}):null}function rgs({children:e,isLoading:t,className:n}){return o.jsx("div",{className:Y("truncate py-[0.6rem] text-ui-md text-neutral4",n),children:t?o.jsx("div",{className:"bg-surface4 h-4 animate-pulse rounded-md text-transparent select-none"}):e})}const wV={latest:"Latest version",deleted:"Deleted in this version"};function sgs({isLatest:e,isDeleted:t}){const n=[];return e&&n.push(wV.latest),t&&n.push(wV.deleted),n.length>0?n.join(" · "):void 0}function ags({version:e,date:t,isLatest:n,isDeleted:r}){return o.jsxs(BVt,{className:Y("grid grid-cols-[1fr_auto] pl-1"),children:[o.jsxs("div",{className:Y("grid gap-1 leading-none text-neutral3",{"text-neutral4":n}),children:[o.jsxs("strong",{className:"font-normal",children:["v. ",e]}),o.jsx("em",{className:Y("text-ui-sm","font-normal","text-neutral2"),children:t?ur(new Date(t),"MMM d, yyyy HH:mm"):null})]}),(n||r)&&o.jsxs("div",{className:"flex items-center gap-1",children:[n&&o.jsx("span",{className:"inline-flex",role:"img","aria-label":wV.latest,children:o.jsx(wt,{variant:"blue",size:"sm",icon:o.jsx(s1,{})})}),r&&o.jsx("span",{className:"inline-flex",role:"img","aria-label":wV.deleted,children:o.jsx(wt,{variant:"red",size:"sm",icon:o.jsx(m0e,{})})})]})]})}const pi=Object.assign(Xms,{Header:Ums,HeaderCol:qms,Items:Hms,Scroller:Wms,Row:Jms,RowButton:egs,Message:Qms,NextPageLoading:Yms,Pagination:Kms,Cell:BVt,TextCell:rgs,StatusCell:ngs,VersionCell:ags,IdCell:Vms,DateCell:Bms,LinkCell:Gms,LabelCell:Zms});function igs({datasetId:e,itemId:t,onVersionSelect:n,onCompareVersionsClick:r,activeVersion:s}){const{data:a,isLoading:i}=sRe(e,t),[l,c]=g.useState(!1),[u,d]=g.useState(new Set),f=b=>{n?.(b)},p=b=>s==null?b.isLatest:b.datasetVersion===s,h=b=>{d(x=>{const S=new Set(x);if(S.has(b))S.delete(b);else if(S.size>=2){const[k]=Array.from(S);return new Set([k,b])}else S.add(b);return S})},m=()=>{c(!1),d(new Set)},v=()=>{c(!0)},y=()=>{u.size===2&&r?.([...u])};return o.jsxs(pa,{className:"min-w-56",children:[l?o.jsx(pa.Toolbar,{className:"grid w-full justify-stretch gap-3",children:o.jsxs(es,{children:[o.jsx(oe,{onClick:m,children:"Cancel"}),o.jsx(oe,{variant:"primary",disabled:u.size!==2,onClick:y,tooltip:u.size!==2?"Check 2 versions to compare":void 0,className:"grow",children:"Compare"})]})}):o.jsx(o.Fragment,{children:(a||[]).length>1&&o.jsx(pa.Toolbar,{children:o.jsxs(oe,{onClick:v,className:"w-full",children:[o.jsx(jj,{})," Compare Ver."]})})}),i?o.jsx(ogs,{}):o.jsxs(pi,{children:[o.jsx(pi.Header,{children:o.jsx(pi.HeaderCol,{children:"Item Version History"})}),o.jsx(pi.Scroller,{children:o.jsx(pi.Items,{children:a?.map(b=>{const x=String(b.datasetVersion),S=typeof b.updatedAt=="string"?new Date(b.updatedAt):b.updatedAt;return o.jsxs(pi.Row,{isSelected:l&&u.has(x),children:[l&&o.jsx(pi.LabelCell,{children:o.jsx(Oo,{checked:u.has(x),disabled:b.isDeleted,onCheckedChange:()=>{},onClick:k=>{k.stopPropagation(),b.isDeleted||h(x)},"aria-label":`Select version ${b.datasetVersion}`})}),o.jsx(pi.RowButton,{item:b,columns:[{name:"version",label:"Item Version History",size:"1fr"}],isFeatured:p(b),onClick:()=>f(b),className:"py-2",tooltip:sgs({isLatest:b.isLatest,isDeleted:b.isDeleted}),children:o.jsx(pi.VersionCell,{version:b.datasetVersion,date:S,isLatest:b.isLatest,isDeleted:b.isDeleted})})]},String(b.datasetVersion))})})})]})]})}function ogs(){return o.jsxs(pi,{children:[o.jsx(pi.Header,{columns:[{name:"version",label:"Item Version History",size:"1fr"}],children:o.jsx(pi.HeaderCol,{children:"Item Version History"})}),o.jsx(pi.Items,{children:Array.from({length:3}).map((e,t)=>o.jsx(pi.Row,{children:o.jsx(pi.RowButton,{columns:[{name:"version",label:"Item Version History",size:"1fr"}],children:o.jsx(pi.TextCell,{isLoading:!0,children:"Loading..."})})},t))})]})}function lgs(e,t){if(t){const n=typeof t=="string"?new Date(t):t;return`v${e} ${ur(n,"MMM dd 'at' H:mm:ss a")}`}return`v${e}`}function cgs({datasetId:e,versionA:t,versionB:n,onVersionChange:r}){const{data:s}=gAe(e),a=(s??[]).map(i=>({value:String(i.version),label:`${lgs(i.version,i.createdAt)}${i.isCurrent?" (current)":""}`}));return o.jsxs(pa.Toolbar,{className:"grid w-full grid-cols-[1fr_1fr_1fr_10rem] gap-4",children:[o.jsx("div",{}),o.jsx(Ld,{label:"Version A",labelIsHidden:!0,name:"version-a",placeholder:"Select version",options:a,value:t??"",onValueChange:i=>r?.(i,n??"")}),o.jsx(Ld,{label:"Version B",labelIsHidden:!0,name:"version-b",options:a,value:n??"",onValueChange:i=>r?.(t??"",i)}),o.jsx("div",{})]})}const ugs=[{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"}],M9={added:{badgeVariant:"blue",borderColor:"border-blue-900",icon:o.jsx(Cr,{}),tooltip:"Added in this version"},changed:{badgeVariant:"yellow",borderColor:"border-yellow-900",icon:o.jsx(sJt,{}),tooltip:"Changed in this version"},same:{badgeVariant:"green",borderColor:"border-green-900",icon:o.jsx(ict,{}),tooltip:"Same in both versions"}};function zie({red:e=!1,tooltip:t}){return o.jsxs(yn,{children:[o.jsx(gn,{render:o.jsx("span",{}),role:"img",tabIndex:0,"aria-label":t,className:"focus-visible:outline-neutral5/55 rounded focus-visible:outline-1 focus-visible:outline-offset-2 focus-visible:outline-solid",children:o.jsx(m0e,{className:Y("text-neutral3/40 w-5 h-5 ",{"text-red-900":e})})}),o.jsx(vn,{children:t})]})}function Bie({variant:e,version:t}){if(!e)return o.jsxs("span",{className:"text-ui-md text-neutral4",children:["v. ",t]});const{badgeVariant:n,icon:r,tooltip:s}=M9[e];return 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("span",{className:"inline-flex",role:"img","aria-label":s,children:o.jsx(wt,{variant:n,size:"xs",icon:r})})]})}function dgs(e,t){return e&&t&&e.datasetVersion===t.datasetVersion?"same":e&&t&&e.datasetVersion!==t.datasetVersion?"changed":e?"added":"removed"}function rtt({otherVersionExists:e,status:t,isNewer:n}){if(!e&&n)return"added";if(t==="changed"&&n)return"changed"}function fgs({datasetId:e,versionA:t,versionB:n,allItems:r,itemsAMap:s,itemsBMap:a}){const{Link:i}=un(),l=t>n;return o.jsx(pi,{children:o.jsx(pi.Scroller,{children:o.jsx(pi.Items,{children:r.map(({id:c})=>{const u=s.get(c),d=a.get(c),f=dgs(u,d),p=rtt({otherVersionExists:d!==void 0,status:f,isNewer:l}),h=rtt({otherVersionExists:u!==void 0,status:f,isNewer:!l});return o.jsxs(pi.Row,{columns:ugs,children:[o.jsx(pi.IdCell,{id:c,isShortened:!1}),f!=="same"?o.jsxs(o.Fragment,{children:[u?.datasetVersion?o.jsx(pi.LinkCell,{LinkComponent:i,href:`/datasets/${e}/items/${c}`,className:"gap-2",tooltip:p?M9[p].tooltip:void 0,children:o.jsx(Bie,{variant:p,version:u.datasetVersion})}):o.jsx(pi.Cell,{className:"flex items-center justify-center",children:o.jsx(zie,{red:l,tooltip:l?"Deleted in this version":"Not present in this version"})}),d?.datasetVersion?o.jsx(pi.LinkCell,{LinkComponent:i,href:`/datasets/${e}/items/${c}`,className:"gap-2",tooltip:h?M9[h].tooltip:void 0,children:o.jsx(Bie,{variant:h,version:d.datasetVersion})}):o.jsx(pi.Cell,{className:"flex items-center justify-center",children:o.jsx(zie,{red:!l,tooltip:l?"Not present in this version":"Deleted in this version"})})]}):o.jsx(pi.LinkCell,{LinkComponent:i,href:`/datasets/${e}/items/${c}`,className:"col-span-2 gap-2",tooltip:M9.same.tooltip,children:o.jsx(Bie,{variant:"same",version:d?.datasetVersion})}),f==="changed"?o.jsx(pi.LinkCell,{LinkComponent:i,href:`/datasets/${e}/items/${c}/versions?ids=${u?.datasetVersion},${d?.datasetVersion}`,children:"Compare"}):o.jsx(pi.Cell,{children:o.jsx(zie,{tooltip:"Comparing is available only for changed items"})})]},c)})})})})}const pgs=10;function hgs(){const e=Vr(),[t,n]=g.useState(""),[r,s]=g.useState("all"),[a,i]=g.useState("all"),[l,c]=g.useState("all"),[u,d]=g.useState(0),{data:f,isLoading:p,error:h}=Pm({page:u,perPage:pgs}),{data:m,isLoading:v,error:y}=aRe(),b=g.useMemo(()=>f?.datasets??[],[f?.datasets]),x=f?.pagination?.hasMore??!1,S=g.useMemo(()=>m?.experiments??[],[m?.experiments]),k=g.useMemo(()=>khs(b),[b]),_=p||v,C=h||y,T=()=>{e("/datasets/new")},E=g.useCallback(()=>d(H=>H+1),[]),N=g.useCallback(()=>d(H=>Math.max(0,H-1)),[]),I=g.useCallback(H=>{n(H),d(0)},[]),A=g.useCallback(H=>{s(H),d(0)},[]),R=g.useCallback(H=>{i(H),d(0)},[]),L=g.useCallback(H=>{c(H),d(0)},[]);if(C&&vs(C))return o.jsx(Jn,{children:o.jsx(Fs,{})});if(C&&ys(C))return o.jsx(Jn,{children:o.jsx(Es,{resource:"datasets"})});if(C)return o.jsx(Jn,{children:o.jsx(qa,{title:"Failed to load datasets",message:C.message})});if(b.length===0&&!_&&u===0)return o.jsx(Jn,{children:o.jsx(Ths,{onCreateClick:T})});const M=r!=="all"||a!=="all"||l!=="all"||t!=="",z=()=>{n(""),s("all"),i("all"),c("all"),d(0)};return o.jsxs(Bt,{children:[o.jsx(Bt.TopArea,{children:o.jsx(Ihs,{search:t,onSearchChange:I,targetFilter:r,onTargetFilterChange:A,experimentFilter:a,onExperimentFilterChange:R,tagFilter:l,onTagFilterChange:L,tagOptions:k,onReset:z,hasActiveFilters:M,onCreateClick:T})}),o.jsx(Ehs,{datasets:b,experiments:S,isLoading:_,search:t,targetFilter:r,experimentFilter:a,tagFilter:l,currentPage:u,hasMore:x,onNextPage:E,onPrevPage:N})]})}function t8({children:e}){return o.jsxs(Bt,{height:"full",children:[o.jsx("div",{}),o.jsx(Bt.MainArea,{isCentered:!0,children:e})]})}function mgs(){const{datasetId:e}=hr(),t=Vr(),[n,r]=$a(),{activeVersion:s,handleVersionChange:a}=iRe(n,r),[i,l]=g.useState(!1),[c,u]=g.useState(!1),[d,f]=g.useState(!1),[p,h]=g.useState(!1),{data:m,error:v,isLoading:y}=Py(e),{data:b=[],isLoading:x}=V1(e,void 0,s),S=!x&&b.length===0;if(y)return null;if(v&&vs(v))return o.jsx(t8,{children:o.jsx(Fs,{})});if(v&&ys(v))return o.jsx(t8,{children:o.jsx(Es,{resource:"datasets"})});if(v&&zEe(v)||!y&&!v&&!m)return o.jsx(t8,{children:o.jsx(br,{iconSlot:o.jsx(fm,{}),titleSlot:"Dataset not found",descriptionSlot:`No dataset with id "${e}".`,actionSlot:o.jsxs(oe,{as:za,to:"/datasets",children:[o.jsx(yl,{}),"Back to Datasets"]})})});if(v)return o.jsx(t8,{children:o.jsx(qa,{title:"Failed to load dataset",message:v instanceof Error?v.message:"An unexpected error occurred. Please try again."})});const k=C=>{t(`/experiments/${C}`)},_=()=>{t("/datasets")};return o.jsxs(wms,{datasetId:e,items:b,isLoadingItems:x,children:[o.jsxs("div",{className:"relative h-full overflow-hidden",children:[o.jsx(Bt,{height:"full",className:"grid-rows-[1fr] p-0",children:o.jsx(Bt.MainArea,{children:o.jsx(Sms,{datasetId:e,onAddItemClick:()=>u(!0),leftSlot:o.jsx("span",{className:"text-ui-sm text-neutral3 mr-3 whitespace-nowrap",children:m?.createdAt?`Created ${ur(new Date(m.createdAt),"MMM d")}`:""}),rightSlot:o.jsxs(es,{children:[o.jsxs(oe,{as:za,to:`/experiments?dataset=${e}`,children:[o.jsx(y0e,{}),"View experiments"]}),o.jsx(IVt,{datasetId:e,value:s,onValueChange:a,currentVersion:m?.version,className:"w-36"}),S?o.jsxs(yn,{children:[o.jsx(gn,{asChild:!0,children:o.jsx("span",{className:"cursor-not-allowed",children:o.jsx("div",{className:"pointer-events-none opacity-50",inert:!0,"aria-disabled":"true",children:o.jsxs(oe,{variant:"primary",children:[o.jsx(Lc,{}),"Run Experiment"]})})})}),o.jsx(vn,{children:"Add items to the dataset before running an experiment"})]}):o.jsxs(oe,{variant:"primary",onClick:()=>l(!0),children:[o.jsx(Lc,{}),"Run Experiment"]}),o.jsxs(rt,{children:[o.jsx(rt.Trigger,{asChild:!0,children:o.jsx(oe,{size:"lg","aria-label":"Dataset actions menu",children:o.jsx(aI,{})})}),o.jsxs(rt.Content,{align:"end",className:"w-48",children:[o.jsxs(rt.Item,{onSelect:()=>{t(`/datasets/${e}/edit`)},children:[o.jsx(pm,{})," Edit Dataset"]}),o.jsxs(rt.Item,{onSelect:()=>h(!0),children:[o.jsx(Bd,{})," Duplicate Dataset"]}),o.jsxs(rt.Item,{onSelect:()=>f(!0),className:"text-red-500 focus:text-red-400",children:[o.jsx(Ll,{})," Delete Dataset"]})]})]})]})})})}),o.jsx(zg,{})]}),o.jsx(nY,{initialDatasetId:e,initialDatasetVersion:s??void 0,open:i,onOpenChange:l,onSuccess:k},`${e}:${s??"latest"}`),o.jsx(Oms,{datasetId:e,open:c,onOpenChange:u}),m&&o.jsx(Whs,{open:p,onOpenChange:h,sourceDatasetId:m.id,sourceDatasetName:m.name,sourceDatasetDescription:m.description,sourceDatasetTargetType:m.targetType}),m&&o.jsx(Yhs,{open:d,onOpenChange:f,datasetId:m.id,datasetName:m.name,onSuccess:_})]})}function Uie({children:e}){return o.jsxs(Bt,{height:"full",children:[o.jsx("div",{}),o.jsx(Bt.MainArea,{isCentered:!0,children:e})]})}function ggs(){const{datasetId:e}=hr(),t=Vr(),{data:n,error:r,isLoading:s}=Py(e),a=()=>{t(`/datasets/${e}`)};return s?null:r&&vs(r)?o.jsx(Uie,{children:o.jsx(Fs,{})}):r&&ys(r)?o.jsx(Uie,{children:o.jsx(Es,{resource:"datasets"})}):r||!n?o.jsx(Uie,{children:o.jsx(qa,{title:"Failed to load dataset",message:r instanceof Error?r.message:"An unexpected error occurred. Please try again."})}):o.jsxs(Bt,{height:"full",children:[o.jsx("div",{}),o.jsx(Bt.MainArea,{isCentered:!0,children:o.jsxs("div",{className:"w-full max-w-2xl overflow-y-auto px-6 py-8",children:[o.jsx(Aa,{className:"mb-6 p-0",children:o.jsxs(Aa.Column,{children:[o.jsxs(Aa.Title,{children:[o.jsx(fm,{})," Edit dataset"]}),o.jsx(Aa.Description,{children:n.name})]})}),o.jsx(Yu,{className:"p-6",children:o.jsx(Qhs,{dataset:{id:n.id,name:n.name,description:n.description||"",targetType:n.targetType,inputSchema:n.inputSchema,groundTruthSchema:n.groundTruthSchema,requestContextSchema:n.requestContextSchema},onSuccess:a,onCancel:a})})]})})]})}const n8=()=>{},vgs=new Set,ygs=[{name:"id",label:"ID",size:"7rem"},{name:"input",label:"Input",size:"minmax(10rem,1fr)"},{name:"groundTruth",label:"Ground Truth",size:"minmax(10rem,1fr)"},{name:"trajectory",label:"Trajectory",size:"8rem"},{name:"createdAt",label:"Created",size:"10rem"}];function bgs({datasetId:e,currentItemId:t,open:n,onOpenChange:r}){const{navigate:s,paths:a}=un(),[i,l]=g.useState(""),[c]=ZH(i,300),{data:u,isLoading:d,setEndOfListElement:f,isFetchingNextPage:p,hasNextPage:h}=V1(e,c||void 0),m=u.filter(y=>y.id!==t),v=y=>{r(!1),s(a.datasetItemCompareLink(e,t,y))};return o.jsx(gr,{open:n,onOpenChange:r,children:o.jsxs(vr,{className:"sm:max-w-[min(72rem,calc(100%-4rem))]",children:[o.jsxs(yr,{children:[o.jsx(fr,{children:"Compare with…"}),o.jsx(_s,{children:"Pick an item to compare with the current one."})]}),o.jsxs(Rr,{className:"grid max-h-[70vh] min-h-[24rem] grid-rows-[auto_1fr] gap-3",children:[o.jsx(v_,{name:"compare-with-dialog-search",label:"Search items to compare",labelIsHidden:!0,value:i,onChange:y=>l(y.target.value),placeholder:"Search items..."}),o.jsx("div",{className:"min-h-0 overflow-y-auto",children:o.jsx(AVt,{items:m,isLoading:d,onItemClick:v,selectOnNavigate:!1,columns:ygs,searchQuery:c||" ",setEndOfListElement:f,isFetchingNextPage:p,hasNextPage:h,isSelectionActive:!1,selectedIds:vgs,onToggleSelection:n8,onSelectAll:n8,onClearSelection:n8,onAddClick:n8})})]})]})})}function xgs(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 wgs({datasetId:e,item:t,items:n,onItemChange:r,onClose:s}){const{Link:a}=un(),{updateItem:i,deleteItem:l}=Ai(),[c,u]=g.useState(!1),[d,f]=g.useState(""),[p,h]=g.useState(""),[m,v]=g.useState(""),[y,b]=g.useState(""),[x,S]=g.useState(""),[k,_]=g.useState(t.scorerIds!==void 0),[C,T]=g.useState(t.scorerIds??[]),[E,N]=g.useState(""),[I,A]=g.useState(null),[R,L]=g.useState(!1),[M,z]=g.useState(!1);g.useEffect(()=>{t&&(f(JSON.stringify(t.input,null,2)),h(t.groundTruth?JSON.stringify(t.groundTruth,null,2):""),v(t.metadata?JSON.stringify(t.metadata,null,2):""),b(t.expectedTrajectory?JSON.stringify(t.expectedTrajectory,null,2):""),S(t.toolMocks?.length?JSON.stringify(t.toolMocks,null,2):""),_(t.scorerIds!==void 0),T(t.scorerIds??[]),N(t.requestContext?JSON.stringify(t.requestContext,null,2):""),u(!1),L(!1),A(null))},[t?.id]);const H=n.findIndex(q=>q.id===t.id),F=H>0?()=>r(n[H-1].id):void 0,B=H>=0&&H<n.length-1?()=>r(n[H+1].id):void 0,V=async()=>{let q;try{q=JSON.parse(d)}catch{ze.error("Input must be valid JSON");return}let G;if(p.trim())try{G=JSON.parse(p)}catch{ze.error("Ground Truth must be valid JSON");return}let K;if(m.trim())try{K=JSON.parse(m)}catch{ze.error("Metadata must be valid JSON");return}let ne=null;if(y.trim())try{ne=JSON.parse(y)}catch{ze.error("Expected Trajectory must be valid JSON");return}let J;if(x.trim())try{const le=JSON.parse(x);if(!Array.isArray(le)){ze.error("Tool Mocks must be a JSON array");return}J=le}catch{ze.error("Tool Mocks must be valid JSON");return}else J=[];let ee;if(E.trim())try{ee=JSON.parse(E)}catch{ze.error("Request Context must be valid JSON");return}let re;k?re=C:t.scorerIds!==void 0&&(re=null);try{const le=await i.mutateAsync({datasetId:e,itemId:t.id,input:q,groundTruth:G,metadata:K,expectedTrajectory:ne,toolMocks:J,scorerIds:re,requestContext:ee});ze.success("Item updated successfully"),_(le.scorerIds!==void 0),T(le.scorerIds??[]),u(!1),A(null)}catch(le){const X=xgs(le);X?A(X):ze.error(`Failed to update item: ${le instanceof Error?le.message:"Unknown error"}`)}},D=()=>{f(JSON.stringify(t.input,null,2)),h(t.groundTruth?JSON.stringify(t.groundTruth,null,2):""),v(t.metadata?JSON.stringify(t.metadata,null,2):""),b(t.expectedTrajectory?JSON.stringify(t.expectedTrajectory,null,2):""),S(t.toolMocks?.length?JSON.stringify(t.toolMocks,null,2):""),_(t.scorerIds!==void 0),T(t.scorerIds??[]),N(t.requestContext?JSON.stringify(t.requestContext,null,2):""),u(!1),A(null)},Z=q=>{f(q),I?.field==="input"&&A(null)},U=q=>{h(q),I?.field==="groundTruth"&&A(null)},P=async()=>{try{await l.mutateAsync({datasetId:e,itemId:t.id}),ze.success("Item deleted successfully"),L(!1),s()}catch(q){ze.error(`Failed to delete item: ${q instanceof Error?q.message:"Unknown error"}`)}};return o.jsxs(o.Fragment,{children:[o.jsxs(on,{children:[o.jsxs(on.Header,{children:[o.jsxs(on.Heading,{children:["Item ",o.jsxs("b",{children:["# ",t.id.length>12?`${t.id.slice(0,12)}…`:t.id]})]}),o.jsxs(es,{className:"ml-auto shrink-0",children:[o.jsx(on.NextPrevNav,{onPrevious:F,onNext:B,previousLabel:"Previous item",nextLabel:"Next item"}),!c&&o.jsxs(o.Fragment,{children:[o.jsx(oe,{as:a,href:`/datasets/${e}/items/${t.id}/versions`,size:"md",tooltip:"Go to item versions history","aria-label":"Go to item versions history",children:o.jsx(cI,{})}),o.jsxs(rt,{children:[o.jsx(rt.Trigger,{asChild:!0,children:o.jsx(oe,{size:"md","aria-label":"Actions menu",children:o.jsx(aI,{})})}),o.jsxs(rt.Content,{align:"end",className:"w-48",children:[o.jsxs(rt.Item,{onSelect:()=>u(!0),children:[o.jsx(pm,{}),"Edit"]}),o.jsxs(rt.Item,{onSelect:()=>z(!0),children:[o.jsx(jj,{}),"Compare with…"]}),o.jsxs(rt.Item,{onSelect:()=>L(!0),className:"text-red-500 focus:text-red-400",children:[o.jsx(Ll,{}),"Delete Item"]})]})]})]}),o.jsx(on.CloseButton,{onClick:s,tooltip:"Close detail panel"})]})]}),o.jsx(on.Content,{children:c?o.jsx(Cms,{inputValue:d,setInputValue:Z,groundTruthValue:p,setGroundTruthValue:U,metadataValue:m,setMetadataValue:v,trajectoryValue:y,setTrajectoryValue:b,toolMocksValue:x,setToolMocksValue:S,scorerOverrideEnabled:k,setScorerOverrideEnabled:_,selectedScorerIds:C,setSelectedScorerIds:T,requestContextValue:E,setRequestContextValue:N,validationErrors:I,onSave:V,onCancel:D,isSaving:i.isPending}):o.jsxs(o.Fragment,{children:[o.jsxs(Cn,{children:[o.jsx(Cn.Key,{children:"Dataset Id"}),o.jsx(Cn.ValueWithCopyBtn,{copyTooltip:"Copy Dataset Id to clipboard",copyValue:t.datasetId,children:t.datasetId}),o.jsx(Cn.Key,{children:"Version"}),o.jsxs(Cn.Value,{children:["v",t.datasetVersion]}),o.jsx(Cn.Key,{children:"Created"}),o.jsx(Cn.Value,{children:ur(new Date(t.createdAt),"MMM d, yyyy h:mm aaa")}),t.updatedAt&&new Date(t.updatedAt).getTime()!==new Date(t.createdAt).getTime()&&o.jsxs(o.Fragment,{children:[o.jsx(Cn.Key,{children:"Updated"}),o.jsx(Cn.Value,{children:ur(new Date(t.updatedAt),"MMM d, yyyy h:mm aaa")})]})]}),o.jsxs("div",{className:"mt-3 grid gap-3",children:[o.jsx(on.CodeSection,{title:"Input",icon:o.jsx(xx,{}),codeStr:JSON.stringify(t.input??null,null,2)}),o.jsx(on.CodeSection,{title:"Ground Truth",icon:o.jsx(tm,{}),codeStr:JSON.stringify(t.groundTruth??null,null,2)}),t.expectedTrajectory!=null&&o.jsx(on.CodeSection,{title:"Expected Trajectory",icon:o.jsx(C0e,{}),codeStr:JSON.stringify(t.expectedTrajectory,null,2)}),o.jsx(on.CodeSection,{title:"Tool Mocks",icon:o.jsx(qd,{}),codeStr:JSON.stringify(t.toolMocks??[],null,2)}),o.jsx(on.CodeSection,{title:"Scorers",icon:o.jsx(AV,{}),codeStr:t.scorerIds===void 0?"Inherited from dataset":JSON.stringify(t.scorerIds,null,2)}),t.requestContext!=null&&o.jsx(on.CodeSection,{title:"Request Context",icon:o.jsx(sc,{}),codeStr:JSON.stringify(t.requestContext,null,2)}),o.jsx(on.CodeSection,{title:"Metadata",icon:o.jsx(uI,{}),codeStr:JSON.stringify(t.metadata??null,null,2)})]})]})})]}),o.jsx(bgs,{datasetId:e,currentItemId:t.id,open:M,onOpenChange:z}),o.jsx($t,{open:R,onOpenChange:L,children:o.jsxs($t.Content,{children:[o.jsxs($t.Header,{children:[o.jsx($t.Title,{children:"Delete Item"}),o.jsx($t.Description,{children:"Are you sure you want to delete this item? This action cannot be undone."})]}),o.jsxs($t.Footer,{children:[o.jsx($t.Cancel,{children:"Cancel"}),o.jsx($t.Action,{onClick:P,children:l.isPending?"Deleting...":"Yes, Delete"})]})]})})]})}function Sgs(){const{itemId:e}=hr(),{datasetId:t,items:n,isLoadingItems:r,openItem:s,close:a}=$Vt(),i=g.useMemo(()=>n.find(d=>d.id===e)??null,[n,e]),{data:l,isLoading:c}=GD(i?"":t,!i&&e?e:""),u=i??l??null;return e?o.jsx(rY,{label:`Dataset item ${e}`,children:u?o.jsx("div",{className:"[&>section]:bg-surface3 flex min-h-full flex-col p-3 [&>section]:min-h-0 [&>section]:flex-1 [&>section]:rounded-lg [&>section]:shadow-lg",children:o.jsx(wgs,{datasetId:t,item:u,items:n,onItemChange:s,onClose:a})}):r||c?o.jsx("div",{className:"h-full p-3",children:o.jsx("div",{className:"border-border1 bg-surface3 flex h-full items-center justify-center rounded-lg border shadow-lg",children:o.jsx(qt,{})})}):o.jsx("div",{className:"h-full p-3",children:o.jsx("div",{className:"border-border1 bg-surface3 flex h-full items-center justify-center rounded-lg border shadow-lg",children:o.jsx(br,{iconSlot:o.jsx(fm,{}),titleSlot:"Item not found",descriptionSlot:`No loaded item "${e}".`,actionSlot:o.jsx(oe,{onClick:a,children:"Close"})})})})}):null}function stt(e){return JSON.stringify({input:e.input??null,groundTruth:e.groundTruth??null,metadata:e.metadata??null},null,2)}function kgs(){const{datasetId:e,itemId:t,secondItemId:n}=hr(),r=Vr(),s=[t,n].filter(h=>!!h),{data:a,error:i}=Py(e??""),{Link:l,paths:c}=un(),[u,d]=g.useState(!1),{data:f}=GD(e??"",s[0]??""),{data:p}=GD(e??"",s[1]??"");return i&&vs(i)?o.jsx(gs,{children:o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Fs,{})})}):i&&ys(i)?o.jsx(gs,{children:o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Es,{resource:"datasets"})})}):!e||s.length<2?o.jsx(gs,{children:o.jsx(py,{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(gs,{children:[o.jsx($y,{owner:"dataset-items-compare",children:o.jsxs(oe,{as:za,to:`/datasets/${e}`,variant:"outline",children:[o.jsx(yl,{}),"Back to Dataset"]})}),o.jsx("div",{className:"h-full overflow-hidden px-[3vw] pb-4",children:o.jsxs("div",{className:Y("grid gap-6 max-w-[140rem] mx-auto grid-rows-[auto_1fr] h-full",{"grid-rows-[auto_auto_1fr]":u}),children:[o.jsxs(Aa,{children:[o.jsxs(Aa.Column,{children:[o.jsxs(Aa.Title,{children:[o.jsx(jj,{}),"Compare Dataset Items"]}),o.jsx(Aa.Description,{children:o.jsxs(Rl,{children:["Comparing ",s.length," items of"," ",o.jsx(za,{to:`/datasets/${e}`,className:"text-info1 hover:underline",children:a?.name||e?.slice(0,8)})]})})]}),o.jsx(Aa.Column,{children:o.jsx(es,{children:o.jsx(oe,{variant:"primary",onClick:()=>d(h=>!h),children:u?o.jsxs(o.Fragment,{children:[o.jsx(CV,{})," Default View"]}):o.jsxs(o.Fragment,{children:[o.jsx(jYt,{})," Diff View"]})})})})]}),o.jsx(n1,{className:"grid-cols-[1fr_3vw_1fr]",children:s.map((h,m)=>o.jsxs(g.Fragment,{children:[o.jsx(Ogs,{datasetId:e,itemId:h,Link:l,idx:m,itemIds:s,showContent:!u,onItemChange:v=>{const y=[...s];y[m]=v,r(c.datasetItemCompareLink(e,y[0],y[1]))}}),m==0&&o.jsx("div",{className:Y("bg-surface5 w-[3px] shrink-0 mx-[1.5vw]")})]},h))}),u&&f&&p&&o.jsx(CAe,{codeA:stt(f),codeB:stt(p)})]})})]})}function Ogs({datasetId:e,itemId:t,Link:n,idx:r,itemIds:s,onItemChange:a,showContent:i=!0}){const{data:l,isLoading:c}=GD(e,t),{data:u}=V1(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(pa,{children:[o.jsxs(pa.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(xr,{value:p.value,disabled:p.disabled,children:p.label},p.value))})]}),o.jsxs(oe,{as:n,to:`/datasets/${e}/items/${t}`,children:[o.jsx(cI,{}),"Versions"]})]}),i&&o.jsx(pa.Content,{children:c?o.jsx("div",{className:"text-neutral4 text-sm",children:"Loading..."}):l?o.jsxs(o.Fragment,{children:[o.jsx(_ms,{item:l}),o.jsx(oRe,{item:l,Link:n})]}):o.jsxs("div",{className:"text-neutral4 text-sm",children:["Item ",t.slice(0,8)," not found"]})})]})}function att(e){return JSON.stringify({input:e.input??null,groundTruth:e.groundTruth??null,scorerIds:e.scorerIds??null,metadata:e.metadata??null},null,2)}function _gs(){const{datasetId:e,itemId:t}=hr(),[n,r]=$a(),[s,a]=g.useState(!1),i=n.get("ids")?.split(",").map(Number).filter(h=>!isNaN(h)&&h>0)??[],{data:l,error:c}=Py(e??""),{Link:u}=un(),{data:d}=sRe(e??"",t??""),{data:f}=Yxe(e??"",t??"",i[0]??0,l?.version),{data:p}=Yxe(e??"",t??"",i[1]??0,l?.version);return c&&vs(c)?o.jsx(gs,{children:o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Fs,{})})}):c&&ys(c)?o.jsx(gs,{children:o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Es,{resource:"datasets"})})}):!e||!t?o.jsx(gs,{children:o.jsx(py,{children:o.jsx("div",{className:"text-neutral4 py-8 text-center",children:o.jsx("p",{children:"Item not found."})})})}):i.length<2?o.jsx(Cgs,{datasetId:e,itemId:t,Link:u,onCompare:h=>r({ids:h.join(",")})}):o.jsxs(gs,{children:[o.jsx($y,{owner:"dataset-item-versions-compare",children:o.jsxs(oe,{as:za,to:`/datasets/${e}/items/${t}`,variant:"outline",children:[o.jsx(yl,{}),"Back to Item"]})}),o.jsx("div",{className:"h-full overflow-hidden px-[3vw] pb-4",children:o.jsxs("div",{className:Y("grid gap-6 max-w-[140rem] mx-auto grid-rows-[auto_1fr] h-full",{"grid-rows-[auto_auto_1fr]":s}),children:[o.jsxs(Aa,{children:[o.jsxs(Aa.Column,{children:[o.jsxs(Aa.Title,{children:[o.jsx(jj,{}),"Compare Dataset Item Versions"]}),o.jsx(Aa.Description,{children:o.jsxs(Rl,{children:["Comparing ",i.length," versions of"," ",o.jsx(za,{to:`/datasets/${e}/items/${t}`,className:"text-info1 hover:underline",children:t})]})})]}),o.jsx(Aa.Column,{children:o.jsx(es,{children:o.jsx(oe,{variant:"primary",onClick:()=>a(h=>!h),children:s?o.jsxs(o.Fragment,{children:[o.jsx(CV,{})," Default View"]}):o.jsxs(o.Fragment,{children:[o.jsx(OKt,{})," Diff View"]})})})})]}),o.jsx(n1,{className:"grid-cols-[1fr_3vw_1fr]",children:i.map((h,m)=>o.jsxs(g.Fragment,{children:[o.jsx(Egs,{datasetId:e,itemId:t,datasetVersion:h,latestVersion:l?.version,allVersions:d??[],versionNumbers:i,Link:u,idx:m,showContent:!s,onVersionChange:v=>{const y=[...i];y[m]=v,r({ids:y.join(",")})}}),m===0&&o.jsx("div",{className:Y("bg-surface5 w-[3px] shrink-0 mx-[1.5vw]")})]},h))}),s&&f&&p&&o.jsx(CAe,{codeA:att(f),codeB:att(p)})]})})]})}function Cgs({datasetId:e,itemId:t,Link:n,onCompare:r}){const[s,a]=g.useState(null),{data:i,isLoading:l}=sRe(e,t),c=(s!=null?i?.find(d=>d.datasetVersion===s):void 0)??i?.[0],u=c?{id:c.id,datasetId:e,datasetVersion:c.datasetVersion,input:c.input,groundTruth:c.groundTruth,scorerIds:c.scorerIds,metadata:c.metadata,createdAt:c.createdAt,updatedAt:c.updatedAt}:null;return o.jsxs(gs,{children:[o.jsx($y,{owner:"dataset-item-versions-history",children:o.jsxs(oe,{as:za,to:`/datasets/${e}/items/${t}`,variant:"outline",children:[o.jsx(yl,{}),"Back to Item"]})}),o.jsx("div",{className:"h-full overflow-hidden px-[3vw] pb-4",children:o.jsxs("div",{className:"mx-auto grid h-full max-w-[140rem] grid-rows-[auto_1fr] gap-6",children:[o.jsx(Aa,{children:o.jsxs(Aa.Column,{children:[o.jsxs(Aa.Title,{children:[o.jsx(cI,{}),"Item Version History"]}),o.jsx(Aa.Description,{children:o.jsxs(Rl,{children:["Versions of ",t]})})]})}),o.jsxs(n1,{className:"grid-cols-[1fr_auto]",children:[o.jsx(pa,{children:o.jsx(pa.Content,{children:l?o.jsx("div",{className:"text-neutral4 text-sm",children:"Loading..."}):u?o.jsx(oRe,{item:u,Link:n}):o.jsx("div",{className:"text-neutral4 text-sm",children:"Item data not available"})})}),o.jsx(igs,{datasetId:e,itemId:t,onClose:()=>{},onVersionSelect:d=>a(d.datasetVersion),onCompareVersionsClick:r,activeVersion:s})]})]})})]})}function Egs({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}=Yxe(e,t,n,r),p=new Set(a.filter((v,y)=>y!==l)),h=s.map(v=>{const y=typeof v.updatedAt=="string"?new Date(v.updatedAt):v.updatedAt;return{value:String(v.datasetVersion),label:o.jsxs(o.Fragment,{children:[o.jsxs("b",{children:["v. ",v.datasetVersion]})," - ",ur(y,"MMM d, yyyy h:mm a"),v.isLatest?o.jsx(wt,{variant:"blue",size:"xs",children:"Latest"}):null]}),disabled:p.has(v.datasetVersion)}}),m=d?{id:d.id,datasetId:e,datasetVersion:d.datasetVersion,input:d.input,groundTruth:d.groundTruth,scorerIds:d.scorerIds,metadata:d.metadata,createdAt:d.createdAt,updatedAt:d.updatedAt}:null;return o.jsxs(pa,{children:[o.jsxs(pa.Toolbar,{className:"grid grid-cols-[auto_1fr] gap-4",children:[o.jsx(cI,{className:"h-6 w-6 opacity-50"}),o.jsxs(oa,{name:`compare-version-${l}`,value:String(n),onValueChange:v=>u(Number(v)),children:[o.jsx(ca,{"aria-label":"Version",className:"w-full",children:o.jsx(la,{placeholder:"Select version"})}),o.jsx(ua,{children:h.map(v=>o.jsx(xr,{value:v.value,disabled:v.disabled,children:v.label},v.value))})]})]}),c&&o.jsx(pa.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(oRe,{item:m,Link:i})})]})}function Tgs(){const{datasetId:e}=hr(),[t]=$a(),n=t.get("ids")?.split(",").map(Number).filter(v=>!isNaN(v)&&v>0)??[],r=Vr(),{data:s,error:a}=Py(e??""),i=V1(e??"",void 0,n[0]??null),l=V1(e??"",void 0,n[1]??null),c=g.useMemo(()=>i.data??[],[i.data]),u=g.useMemo(()=>l.data??[],[l.data]),d=g.useMemo(()=>{const v=new Map;for(const y of[...c,...u])v.has(y.id)||v.set(y.id,{id:y.id,createdAt:new Date(y.createdAt)});return[...v.values()].sort((y,b)=>b.createdAt.getTime()-y.createdAt.getTime())},[c,u]),f=g.useMemo(()=>new Map(c.map(v=>[v.id,v])),[c]),p=g.useMemo(()=>new Map(u.map(v=>[v.id,v])),[u]);if(a&&vs(a))return o.jsx(gs,{children:o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Fs,{})})});if(a&&ys(a))return o.jsx(gs,{children:o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Es,{resource:"datasets"})})});if(!e||n.length<2)return o.jsx(gs,{children:o.jsx(py,{children:o.jsx("div",{className:"text-neutral4 py-8 text-center",children:o.jsx("p",{children:"Select at least two versions to compare."})})})});const h=(v,y,b)=>{r(`/datasets/${e}/items/${v}/versions?ids=${y?.datasetVersion??""},${b?.datasetVersion??""}`)},m=(v,y)=>{r(`/datasets/${e}/versions?ids=${v},${y}`,{replace:!0})};return o.jsx(gs,{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(Aa,{children:[o.jsxs(Aa.Column,{children:[o.jsxs(Aa.Title,{children:[o.jsx(RJt,{})," Compare Dataset Versions"]}),o.jsx(Aa.Description,{children:o.jsxs(Rl,{children:[o.jsx(cI,{})," Comparing ",n.length," versions of"," ",s?.name||e?.slice(0,8)]})})]}),o.jsx(Aa.Column,{children:o.jsxs(oe,{as:za,to:`/datasets/${e}`,children:[o.jsx(yl,{}),"Back to Dataset"]})})]}),o.jsx(n1,{children:o.jsxs(pa,{children:[o.jsx(cgs,{datasetId:e,versionA:String(n[0]),versionB:String(n[1]),onVersionChange:m}),o.jsx(fgs,{datasetId:e,versionA:n[0],versionB:n[1],allItems:d,itemsAMap:f,itemsBMap:p,onItemClick:h})]})})]})})})}function jgs(){const e=Vr(),[t]=$a(),n=t.get("targetType"),r=YD(n)?n:void 0,s=t.get("targetIds"),a=r&&s?s.split(",").map(i=>i.trim()).filter(Boolean):void 0;return o.jsxs(Bt,{height:"full",children:[o.jsx("div",{}),o.jsx(Bt.MainArea,{isCentered:!0,children:o.jsxs("div",{className:"w-full max-w-2xl overflow-y-auto px-6 py-8",children:[o.jsx(Aa,{className:"mb-6 p-0",children:o.jsxs(Aa.Column,{children:[o.jsxs(Aa.Title,{children:[o.jsx(fm,{})," Create new dataset"]}),o.jsx(Aa.Description,{children:"Datasets group test cases used to evaluate your agents and workflows."})]})}),o.jsx(Yu,{className:"p-6",children:o.jsx(qhs,{targetType:r,targetIds:a,onSuccess:i=>{e(`/datasets/${i}`)},onCancel:()=>{e(-1)}})})]})})]})}function Jxe({children:e,className:t}){return o.jsx("div",{className:Y("flex flex-wrap gap-8",t),children:e})}function Ngs(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 Igs({scorers:e,datasets:t,experiments:n,avgScore:r,prevAvgScore:s,totalNeedsReview:a,isLoadingScorers:i,isLoadingDatasets:l,isLoadingExperiments:c,isLoadingScores:u,isLoadingReview:d}){const f=e?Object.keys(e).length:void 0,p=t?.length,h=n?.length,m=r!=null&&s!=null&&s!==0?{changePct:Math.round((r-s)/s*100*10)/10,prevValue:String(s)}:null,v=Ngs(n);return o.jsxs(o.Fragment,{children:[o.jsxs(Xr,{children:[o.jsx(Xr.Label,{children:"Total Scorers"}),i?o.jsx(Xr.Loading,{}):f!=null?o.jsxs(o.Fragment,{children:[o.jsx(Xr.Value,{children:String(f)}),o.jsx(Xr.NoChange,{message:"Static count"})]}):o.jsx(Xr.NoData,{})]}),o.jsxs(Xr,{children:[o.jsx(Xr.Label,{children:"Total Datasets"}),l?o.jsx(Xr.Loading,{}):p!=null?o.jsxs(o.Fragment,{children:[o.jsx(Xr.Value,{children:String(p)}),o.jsx(Xr.NoChange,{message:"Static count"})]}):o.jsx(Xr.NoData,{})]}),o.jsxs(Xr,{children:[o.jsx(Xr.Label,{children:"Avg Score"}),u?o.jsx(Xr.Loading,{}):r!=null?o.jsxs(o.Fragment,{children:[o.jsx(Xr.Value,{children:String(r)}),m?o.jsx(Xr.Change,{changePct:m.changePct,prevValue:m.prevValue}):o.jsx(Xr.NoChange,{})]}):o.jsx(Xr.NoData,{})]}),o.jsxs(Xr,{children:[o.jsx(Xr.Label,{children:"Total Experiments"}),c?o.jsx(Xr.Loading,{}):h!=null?o.jsxs(o.Fragment,{children:[o.jsx(Xr.Value,{children:String(h)}),v?o.jsx(Xr.Change,{changePct:v.changePct,prevValue:v.prevValue}):o.jsx(Xr.NoChange,{})]}):o.jsx(Xr.NoData,{})]}),o.jsxs(Xr,{children:[o.jsx(Xr.Label,{children:"Needs Review"}),d?o.jsx(Xr.Loading,{}):a!=null?o.jsxs(o.Fragment,{children:[o.jsx(Xr.Value,{children:String(a)}),a>0?o.jsx(Xr.NoChange,{message:"items pending review"}):o.jsx(Xr.NoChange,{message:"All caught up"})]}):o.jsx(Xr.NoData,{})]})]})}const Ags=60;function Rgs({experiment:e}){const t=hS(e.id)??e.id,n=e.name||`Experiment #${t}`,r=e.description||Pgs(e),s=o.jsxs("span",{className:"flex min-w-0 flex-col gap-0.5 py-0.5 text-left",children:[o.jsx("span",{className:"text-neutral4 block truncate",children:n}),r&&o.jsx("span",{className:"text-ui-sm text-neutral2 block truncate",children:r})]});return!e.description||e.description.length<=Ags?s:o.jsxs(yn,{children:[o.jsx(gn,{asChild:!0,children:s}),o.jsx(vn,{children:e.description})]})}function Pgs(e){const t=[];e.datasetVersion!=null&&t.push(`v${e.datasetVersion}`);const n=e.scorerIds?.length??0;return n>0&&t.push(`${n} scorer${n>1?"s":""}`),t.length?t.join(" · "):null}const sY=()=>{const{requestContext:e}=bs(),t=Ge();return ht({queryKey:["processors"],queryFn:()=>t.listProcessors(e)})},UVt=(e,t)=>{const n=Ge(),{requestContext:r}=bs();return ht({queryKey:["processor",e],queryFn:()=>n.getProcessor(e).details(r),enabled:!!e})},$gs=()=>{const e=Ge(),{requestContext:t}=bs();return kn({mutationFn:async({processorId:n,phase:r,messages:s,agentId:a})=>e.getProcessor(n).execute({phase:r,messages:s,agentId:a,requestContext:t})})};function qVt(){const{data:e}=zm(),{data:t}=Wy(),{data:n}=lh(),{data:r}=sY();return{agents:e,workflows:t,scorers:n,processors:r}}const VVt={agent:Ii,workflow:qc,scorer:AC,processor:ID},HVt={agent:"Agent",workflow:"Workflow",scorer:"Scorer",processor:"Processor"},Mgs="External (caller-run)";function WVt(e,{agents:t,workflows:n,scorers:r,processors:s}){const{targetType:a,targetId:i}=e;if(!i)return Mgs;switch(a){case"agent":return t?.[i]?.name??i;case"workflow":return n?.[i]?.name??i;case"scorer":return r?.[i]?.scorer?.config?.name??i;case"processor":return s?.[i]?.name??i;default:return i}}function Dgs({experiment:e,datasetName:t,review:n}){const r=e.status??"pending",s=e.succeededCount??0,a=e.failedCount??0,i=e.totalItems??0;return o.jsxs(o.Fragment,{children:[o.jsx(he.Cell,{children:o.jsx(Rgs,{experiment:e})}),t!==void 0&&o.jsx(he.TextCell,{children:t}),o.jsx(he.Cell,{children:o.jsx(Lgs,{experiment:e})}),o.jsx(he.Cell,{children:o.jsx(wt,{variant:EUt[r]??"neutral",indicator:"dot",children:LT[r]??r})}),o.jsx(he.TextCell,{className:"text-center",children:i}),o.jsx(he.TextCell,{className:"text-center",children:s}),o.jsx(he.TextCell,{className:"text-center",children:o.jsx("span",{className:a>0?"text-accent2":"",children:a})}),o.jsx(he.Cell,{className:"text-center",children:o.jsx(Fgs,{review:n})}),o.jsx(he.TextCell,{children:Eos(e.createdAt)})]})}function Lgs({experiment:e}){const t=qVt(),n=WVt(e,t),r=e.targetId?e.targetType:null,s=r?VVt[r]:null;return o.jsxs("span",{className:"flex min-w-0 items-center gap-1.5 [&_svg]:size-3.5 [&_svg]:shrink-0",children:[s&&o.jsx("span",{className:"text-neutral3 flex",role:"img","aria-label":HVt[r],children:o.jsx(s,{})}),o.jsx("span",{className:r?"truncate":"text-neutral2 truncate",children:n})]})}function Fgs({review:e}){if(!e)return o.jsx("span",{className:"text-neutral2",children:"—"});const t=e.needsReview+e.complete;return t===0?o.jsx("span",{className:"text-neutral2",children:"—"}):e.needsReview>0?o.jsxs(wt,{size:"xs",variant:"yellow",children:[e.needsReview," pending"]}):o.jsxs(wt,{size:"xs",variant:"green",children:[e.complete,"/",t," reviewed"]})}const qie=`${Oos} ${_os} ${Cos}`,zgs=[{label:Eb.experiment},{label:Eb.dataset},{label:Eb.target},{label:Eb.status},{label:Eb.items,className:"text-center"},{label:Eb.succeeded,className:"text-center"},{label:Eb.failed,className:"text-center"},{label:Eb.review,className:"text-center"},{label:Eb.date}];function Bgs({experiments:e,datasets:t,reviewByExperiment:n,isLoading:r,search:s="",statusFilter:a="all",datasetFilter:i="all",selection:l}){const c=l!==void 0,{paths:u,Link:d}=un(),f=g.useMemo(()=>{const x=new Map;return t?.forEach(S=>x.set(S.id,S.name)),x},[t]),p=g.useMemo(()=>[...e].sort((x,S)=>{const k=x.createdAt?new Date(x.createdAt).getTime():0;return(S.createdAt?new Date(S.createdAt).getTime():0)-k}),[e]),h=g.useMemo(()=>{const x=s.toLowerCase();return p.filter(S=>{const k=S.datasetId?f.get(S.datasetId)??"":"",_=!x||S.id.toLowerCase().includes(x)||(S.name??"").toLowerCase().includes(x)||k.toLowerCase().includes(x)||(S.targetId??"").toLowerCase().includes(x),C=a==="all"||S.status===a,T=i==="all"||S.datasetId===i;return _&&C&&T})},[p,s,f,a,i]),{containerRef:m,getRowProps:v}=ao({count:h.length});if(r)return o.jsx(Fo,{columns:qie});const y=c?`auto ${qie}`:qie,b=zgs.map(x=>o.jsx(he.TopCell,{className:x.className,children:x.label},x.label));return o.jsxs(he,{columns:y,variant:"striped",scrollRef:m,children:[o.jsx(he.Top,{hasLeadingCell:c,children:c?o.jsxs(o.Fragment,{children:[o.jsx(he.TopCell,{children:" "}),o.jsx(he.TopCells,{colStart:2,children:b})]}):b}),h.map((x,S)=>{const k=x.datasetId?f.get(x.datasetId)??hS(x.datasetId)??x.datasetId:"—",_=o.jsx(Dgs,{experiment:x,datasetName:k,review:n?.get(x.id)});if(!l)return o.jsx(he.RowLink,{to:u.experimentLink(x.id),LinkComponent:d,...v(S),children:_},x.id);const C=l.selectedExperimentIds.includes(x.id),T=()=>l.onToggleSelection(x.id);return o.jsxs(he.RowWrapper,{children:[o.jsx(he.SelectCell,{checked:C,onToggle:T,"aria-label":`Select experiment ${x.id}`}),o.jsx(he.RowButton,{colStart:2,featured:C,onClick:T,...v(S),children:_})]},x.id)})]})}const Ugs=[{value:"all",label:"All statuses"},{value:"completed",label:"Completed"},{value:"running",label:"Running"},{value:"failed",label:"Failed"},{value:"pending",label:"Pending"}];function qgs(e){return[{value:"all",label:"All datasets"},...(e??[]).map(t=>({value:t.id,label:t.name}))]}const r8={completed:L7.neutral3,running:"#facc15",pending:"#fb923c",failed:"#f87171"},Vgs=[{label:"Completed",color:r8.completed},{label:"Running",color:r8.running},{label:"Pending",color:r8.pending},{label:"Failed",color:r8.failed}];function Hgs({experiments:e,datasets:t,isLoading:n,isError:r}){const{data:s,maxVal:a}=g.useMemo(()=>{if(!e||e.length===0)return{data:[],maxVal:0};const l=new Map;if(t)for(const f of t)l.set(f.id,f.name);const c=new Map;for(const f of e){const p=f.datasetId??"unknown";c.has(p)||c.set(p,{completed:0,running:0,pending:0,failed:0});const h=c.get(p),m=f.status;m in h&&h[m]++}let u=0;return{data:Array.from(c.entries()).map(([f,p])=>{const h=p.completed+p.running+p.pending+p.failed;return h>u&&(u=h),{name:l.get(f)??f.slice(0,12),values:[p.completed,p.running,p.pending,p.failed]}}),maxVal:u}},[e,t]),i=s.length>0;return o.jsxs(Vt,{children:[o.jsxs(Vt.TopBar,{children:[o.jsx(Vt.TitleAndDescription,{title:"Experiments by Dataset",description:"Experiment status breakdown per dataset."}),i&&o.jsx(Vt.Summary,{value:String(e?.length??0),label:"Total experiments"})]}),n?o.jsx(Vt.Loading,{}):r?o.jsx(Vt.Error,{message:"Failed to load experiments data"}):o.jsx(Vt.Content,{children:i?o.jsx(YN,{data:s,segments:Vgs,maxVal:a,fmt:l=>String(l)}):o.jsx(Vt.NoData,{message:"No experiments have been run yet"})})]})}const Wgs=({onRunExperiment:e})=>o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(br,{iconSlot:o.jsx(Dc,{}),titleSlot:"No Experiments yet",descriptionSlot:o.jsxs(o.Fragment,{children:["Run an experiment from a dataset to evaluate ",o.jsx("br",{}),"your agents and workflows."]}),actionSlot:o.jsxs("div",{className:"flex flex-col items-center gap-2",children:[e&&o.jsxs(oe,{variant:"primary",onClick:e,children:[o.jsx(Lc,{}),"Run Experiment"]}),o.jsxs(oe,{variant:"ghost",as:"a",href:"https://mastra.ai/docs/evals/experiments",target:"_blank",rel:"noopener noreferrer",children:["Experiments Documentation ",o.jsx(ea,{})]})]})})});function Zgs({search:e,onSearchChange:t,statusFilter:n,onStatusFilterChange:r,datasetFilter:s,onDatasetFilterChange:a,datasetOptions:i,onReset:l,hasActiveFilters:c,onRunClick:u,runTooltip:d="Run an experiment",onCompareClick:f,selection:p}){if(p){const{selectedCount:h,onExecuteCompare:m,onCancelSelection:v,compareDisabledReason:y}=p,b=h===2&&!y;return o.jsx("div",{className:"flex w-full items-center justify-end gap-4",children:o.jsxs("div",{className:"flex items-center gap-5",children:[o.jsxs("div",{className:"text-neutral3 flex items-center gap-2 pl-6 text-sm",children:[o.jsx(wt,{size:"md",variant:h<2?"red":"green",children:h}),o.jsx("span",{children:"of 2 experiments selected"}),y&&o.jsxs("span",{className:"text-accent2",children:["— ",y]}),o.jsx(mct,{})]}),o.jsxs(es,{children:[o.jsxs(oe,{variant:"primary",disabled:!b,onClick:m,children:[o.jsx(jj,{className:"h-4 w-4"}),"Compare Experiments"]}),o.jsx(oe,{onClick:v,children:"Cancel"})]})]})})}return o.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[o.jsx("div",{className:"max-w-120 min-w-64 flex-1",children:o.jsx(od,{label:"Search experiments",placeholder:"Filter by experiment, dataset, or target",value:e,onSearch:t})}),o.jsxs(es,{children:[o.jsx(Ld,{label:"Status",labelIsHidden:!0,name:"filter-status",options:[...Ugs],value:n,onValueChange:r,className:"whitespace-nowrap"}),o.jsx(Ld,{label:"Dataset",labelIsHidden:!0,name:"filter-dataset",options:i,value:s,onValueChange:a,className:"whitespace-nowrap"}),l&&c&&o.jsxs(oe,{onClick:l,size:"sm",variant:"default",children:[o.jsx(or,{className:"size-3"})," Reset"]})]}),o.jsxs(es,{className:"ml-auto shrink-0",children:[f&&o.jsxs(oe,{onClick:f,tooltip:"Select two experiments of the same dataset to compare",children:[o.jsx(jj,{}),"Compare"]}),u&&o.jsxs(oe,{onClick:u,tooltip:d,variant:"primary",children:[o.jsx(Lc,{}),"Run Experiment"]})]})]})}const Ggs={present:!1,output:null,metadata:null,comment:null,error:null,startedAt:null,completedAt:null,scores:[]},itt=e=>e?e instanceof Date?e.toISOString():e:null,ott=e=>{const t=new Map;for(const n of e??[])t.set(n.itemId,n);return t},ltt=(e,t,n)=>{if(!e)return Ggs;const r=new Map;for(const s of n??[])r.set(s.scorerId,s.reason??null);return{present:!0,output:e.output,metadata:t?.metadata??null,comment:t?.comment??null,error:t?.error??null,startedAt:itt(t?.startedAt),completedAt:itt(t?.completedAt),scores:Object.entries(e.scores).map(([s,a])=>({scorerId:s,value:a,reason:r.get(s)??null})).sort((s,a)=>s.scorerId.localeCompare(a.scorerId))}},Qgs=({comparison:e,baselineId:t,contenderId:n,baselineResults:r,contenderResults:s,baselineScores:a,contenderScores:i})=>{if(!e)return[];const l=ott(r),c=ott(s);return e.items.map(u=>{const d=ltt(u.results[t],l.get(u.itemId),a?.[u.itemId]),f=ltt(u.results[n],c.get(u.itemId),i?.[u.itemId]),p={};for(const h of new Set([...d.scores,...f.scores].map(m=>m.scorerId))){const m=d.scores.find(y=>y.scorerId===h)?.value??null,v=f.scores.find(y=>y.scorerId===h)?.value??null;p[h]=m!=null&&v!=null?v-m:null}return{itemId:u.itemId,input:u.input,groundTruth:u.groundTruth,baseline:d,contender:f,deltas:p}})};function Ik({title:e,actions:t,tone:n="default",defaultOpen:r=!0,children:s}){return o.jsxs(zc,{defaultOpen:r,className:"grid gap-2",children:[o.jsxs("div",{className:"flex min-h-6 items-center justify-between gap-2",children:[o.jsxs(fc,{className:Y("text-ui-md flex items-center gap-1.5 font-semibold [&>svg]:size-4",n==="negative"?"text-negative1":"text-neutral5"),children:[o.jsx(Ur,{}),e]}),t]}),o.jsx(pc,{role:"region","aria-label":e,children:s})]})}function ctt({label:e,value:t}){return t==null?null:o.jsx(Ik,{title:e,defaultOpen:!1,children:o.jsx("pre",{className:"text-ui-sm text-neutral4 bg-surface3 max-h-40 overflow-auto rounded-md p-3 whitespace-pre-wrap",children:typeof t=="string"?t:JSON.stringify(t,null,2)})})}function ZVt({delta:e}){const t=e>0?"text-positive1":e<0?"text-negative1":"text-neutral3";return o.jsxs("span",{className:Y("inline-flex min-w-20 items-center gap-1 font-mono text-sm",t),children:[o.jsx("span",{className:"inline-block w-3",children:e>0?"+":e<0?"-":""}),Math.abs(e).toFixed(2),e>0?o.jsx(oQt,{className:"size-3.5"}):e<0?o.jsx(KGt,{className:"size-3.5"}):null]})}function GVt({scorerId:e,value:t,delta:n,reason:r}){const{Link:s,paths:a}=un();return o.jsxs("div",{className:"bg-surface2 grid gap-1 rounded-lg px-3 py-2",children:[o.jsxs("div",{className:"flex items-center justify-between gap-4",children:[o.jsxs(s,{href:a.scorerLink(e),"aria-label":`Open ${e}`,className:"text-neutral5 flex min-w-0 items-center gap-1.5 text-sm font-medium hover:underline [&>svg]:size-3.5 [&>svg]:shrink-0",children:[o.jsx(AC,{}),o.jsx("span",{className:"min-w-0 truncate",children:e})]}),o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsx("span",{className:"text-neutral3 font-mono text-sm",children:t!=null?t.toFixed(2):"-"}),n!=null&&o.jsx(ZVt,{delta:n})]})]}),r&&o.jsx("p",{className:"text-neutral3 text-sm",children:r})]})}function utt(e){return e==null?"-":typeof e=="string"?e:JSON.stringify(e,null,2)}function Ygs(e){if(!e.startedAt||!e.completedAt)return null;const t=new Date(e.completedAt).getTime()-new Date(e.startedAt).getTime();return Number.isFinite(t)?`${(t/1e3).toFixed(2)}s`:null}const Kgs="border-border1 bg-surface3 text-ui-md text-neutral4 max-h-[30vh] overflow-y-auto rounded-xl border p-4 font-mono break-all whitespace-pre-wrap dark:border-white/10 dark:bg-black/20";function dtt({side:e,row:t,showDeltas:n,isLoading:r}){const s=t[e],a=Ygs(s);if(r)return o.jsx("div",{className:"flex h-32 items-center justify-center",children:o.jsx(qt,{})});if(!s.present)return o.jsx("p",{className:"text-neutral3 py-8 text-center text-sm",children:"Not present in this experiment"});const i=utt(s.output);return o.jsxs("div",{className:"grid content-start gap-5",children:[a&&o.jsxs(yn,{children:[o.jsx(gn,{render:o.jsxs("p",{className:"text-neutral3 flex items-center justify-end gap-1.5 text-sm [&>svg]:size-3.5",children:[o.jsx(s1,{}),a]})}),o.jsx(vn,{children:"Run duration"})]}),s.error?o.jsx(Ik,{title:"Error",tone:"negative",actions:o.jsx(ka,{content:s.error.message}),children:o.jsx("p",{className:"border-negative1/40 bg-negative1/5 text-ui-md text-neutral4 rounded-xl border p-4 break-words",children:s.error.message})}):o.jsx(Ik,{title:"Output",actions:o.jsx(ka,{content:i}),children:o.jsx("pre",{className:Kgs,children:i})}),s.scores.length>0&&o.jsx(Ik,{title:"Scores",children:o.jsx("div",{className:"grid gap-2",children:s.scores.map(l=>o.jsx(GVt,{scorerId:l.scorerId,value:l.value,delta:n?t.deltas[l.scorerId]:null,reason:l.reason},l.scorerId))})}),s.comment&&o.jsx(Ik,{title:"Comment",defaultOpen:!1,children:o.jsx("p",{className:"text-neutral3 text-sm",children:s.comment})}),s.metadata&&Object.keys(s.metadata).length>0&&o.jsx(Ik,{title:"Metadata",defaultOpen:!1,children:o.jsx("dl",{className:"grid gap-1",children:Object.entries(s.metadata).map(([l,c])=>o.jsxs("div",{className:"flex items-start justify-between gap-4 text-sm",children:[o.jsx("dt",{className:"text-neutral3",children:l}),o.jsx("dd",{className:"text-neutral5 font-mono break-all",children:utt(c)})]},l))})})]})}const Xgs={baseline:"Baseline",contender:"Contender"},Jgs={baseline:"purple",contender:"blue"},evs="flex min-w-0 items-center gap-1.5 hover:underline [&>svg]:size-3.5 [&>svg]:shrink-0";function ftt({side:e,experiment:t,summary:n,showDeltas:r,versionMismatch:s}){const{Link:a,paths:i}=un(),l=Xgs[e],c=t?hS(t.id)??t.id:null,u=t?.createdAt?new Date(t.createdAt):null,d=n??[];return o.jsxs("div",{className:"grid content-start gap-3",children:[o.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[o.jsx(wt,{variant:Jgs[e],size:"xs",children:l}),t&&o.jsx(oe,{as:a,size:"xs",href:`/experiments/${t.id}`,"aria-label":`Open experiment ${t.name||c}`,children:o.jsx("span",{className:"min-w-0 truncate",children:t.name||c})})]}),t&&o.jsxs("div",{className:"text-ui-sm text-neutral3 flex flex-wrap gap-x-4 gap-y-1",children:[t.name&&o.jsxs(Rl,{children:[o.jsx(NV,{})," ",c]}),t.targetType==="agent"&&t.targetId?o.jsxs(a,{href:i.agentLink(t.targetId),className:evs,children:[o.jsx(Ii,{}),o.jsx("span",{className:"min-w-0 truncate",children:t.targetId})]}):o.jsxs(Rl,{children:[o.jsx(kct,{})," ",t.targetId]}),o.jsx("span",{className:Y(s&&"text-accent6"),children:o.jsxs(Rl,{children:[o.jsx(IV,{})," v",t.datasetVersion??"—",s&&" · different dataset version"]})}),u&&o.jsxs(Rl,{children:[o.jsx(B9,{})," ",ur(u,"MMM d, yyyy HH:mm")]})]}),d.length>0&&o.jsx(Ik,{title:"Overall score",children:o.jsx("div",{className:"grid gap-2",children:d.map(({scorerId:f,average:p,delta:h})=>o.jsx(GVt,{scorerId:f,value:p,delta:r?h:null},f))})})]})}const qE="min-w-0 px-4 py-3";function tvs({datasetId:e,experimentIdA:t,experimentIdB:n}){const{Link:r,paths:s}=un(),{data:a,isLoading:i,error:l}=shs(e,t,n),{data:c}=WD(e,t),{data:u}=WD(e,n),d=c&&u&&c.datasetVersion!==u.datasetVersion,f=a?.baselineId??t,p=t===f?n:t,h=c?.id===f?c:u,m=c?.id===p?c:u,{data:v,isLoading:y}=ZD({datasetId:e,experimentId:f,experimentStatus:h?.status}),{data:b,isLoading:x}=ZD({datasetId:e,experimentId:p,experimentStatus:m?.status}),{data:S}=__(f,h?.status),{data:k}=__(p,m?.status),_=g.useMemo(()=>Qgs({comparison:a,baselineId:f,contenderId:p,baselineResults:v,contenderResults:b,baselineScores:S,contenderScores:k}),[a,f,p,v,b,S,k]),C=g.useMemo(()=>[...new Set(_.flatMap(E=>Object.keys(E.deltas)))].sort(),[_]),T=g.useMemo(()=>{const E=(A,R)=>{const L=_.map(M=>M[A].scores.find(z=>z.scorerId===R)?.value).filter(M=>M!=null);return L.length>0?L.reduce((M,z)=>M+z,0)/L.length:null},N=C.map(A=>({scorerId:A,average:E("baseline",A),delta:null})),I=C.map(A=>{const R=E("baseline",A),L=E("contender",A);return{scorerId:A,average:L,delta:R!=null&&L!=null?L-R:null}});return{baseline:N,contender:I}},[_,C]);return i?o.jsx("div",{className:"flex h-64 items-center justify-center",children:o.jsx(qt,{})}):l?o.jsx(An,{variant:"warning",title:"Error loading comparison",children:o.jsx(An.Message,{children:l instanceof Error?l.message:"Unknown error"})}):!a||a.items.length===0?o.jsx("div",{className:"text-neutral4 py-8 text-center text-sm",children:"No comparison data"}):o.jsx("div",{className:"grid gap-4",children:o.jsxs("div",{role:"table","aria-label":"Experiments comparison",className:"grid",children:[o.jsxs("div",{role:"row",className:"border-border1 grid border-y xl:grid-cols-[minmax(20rem,24rem)_1fr_1fr] xl:divide-x xl:divide-[var(--border1)]",children:[o.jsx("div",{role:"columnheader","aria-label":"Items",className:`${qE} text-neutral3 text-ui-sm uppercase`,children:"Items"}),o.jsx("div",{role:"columnheader","aria-label":"Baseline",className:qE,children:o.jsx(ftt,{side:"baseline",experiment:h,summary:T.baseline,versionMismatch:d})}),o.jsx("div",{role:"columnheader","aria-label":"Contender",className:qE,children:o.jsx(ftt,{side:"contender",experiment:m,summary:T.contender,versionMismatch:d,showDeltas:!0})})]}),_.map(E=>{const N=Object.entries(E.deltas).filter(([,I])=>I!=null&&I!==0);return o.jsxs("div",{role:"row","aria-label":E.itemId,className:"border-border1 grid border-b xl:grid-cols-[minmax(20rem,24rem)_1fr_1fr] xl:divide-x xl:divide-[var(--border1)]",children:[o.jsxs("div",{role:"cell",className:`${qE} grid content-start gap-1`,children:[o.jsx(r,{href:s.datasetItemLink(e,E.itemId),"aria-label":`Open item ${E.itemId}`,className:Y("text-ui-sm flex items-start gap-1.5 font-mono break-all hover:underline [&>svg]:mt-0.5 [&>svg]:size-3.5 [&>svg]:shrink-0",E.baseline.present&&E.contender.present?"text-neutral4":"text-neutral1"),children:o.jsx("span",{className:"min-w-0",children:E.itemId})}),N.length>0&&o.jsx("span",{className:"flex flex-wrap items-center gap-2",children:N.map(([I,A])=>o.jsx(ZVt,{delta:A},I))}),o.jsxs("div",{className:"grid pt-3",children:[o.jsx(ctt,{label:"Input",value:E.input}),o.jsx(ctt,{label:"Ground truth",value:E.groundTruth})]})]}),o.jsx("div",{role:"cell","aria-label":"Baseline",className:qE,children:o.jsx(dtt,{side:"baseline",row:E,isLoading:y})}),o.jsx("div",{role:"cell","aria-label":"Contender",className:qE,children:o.jsx(dtt,{side:"contender",row:E,isLoading:x,showDeltas:!0})})]},E.itemId)})]})})}const ptt={needsReview:"#facc15",complete:"#22c55e"},nvs=[{label:"Needs Review",color:ptt.needsReview},{label:"Reviewed",color:ptt.complete}];function rvs({reviewSummary:e,experiments:t,datasets:n,isLoading:r,isError:s}){const{data:a,maxVal:i,totalInPipeline:l}=g.useMemo(()=>{if(!e?.counts||!t)return{data:[],maxVal:0,totalInPipeline:0};const u=new Map;for(const m of t)u.set(m.id,m);const d=new Map;if(n)for(const m of n)d.set(m.id,m.name);let f=0,p=0;const h=[];for(const m of e.counts){const v=m.needsReview+m.complete;if(v===0)continue;p+=v,v>f&&(f=v);const y=u.get(m.experimentId),b=y?.datasetId?d.get(y.datasetId):void 0,x=b?`${b} · ${m.experimentId.slice(0,8)}`:m.experimentId.slice(0,8);h.push({name:x,values:[m.needsReview,m.complete]})}return{data:h,maxVal:f,totalInPipeline:p}},[e,t,n]),c=a.length>0;return o.jsxs(Vt,{children:[o.jsxs(Vt.TopBar,{children:[o.jsx(Vt.TitleAndDescription,{title:"Review Pipeline",description:"Items in review across experiments."}),c&&o.jsx(Vt.Summary,{value:String(l),label:"Items in pipeline"})]}),r?o.jsx(Vt.Loading,{}):s?o.jsx(Vt.Error,{message:"Failed to load review data"}):o.jsx(Vt.Content,{children:c?o.jsx(YN,{data:a,segments:nvs,maxVal:i,fmt:u=>String(u)}):o.jsx(Vt.NoData,{message:"No items have been sent to review yet"})})]})}function QVt(){const e=Ge();return ht({queryKey:["experiment-review-summary"],queryFn:()=>e.getExperimentReviewSummary()})}function svs(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 avs(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}}function ivs(){const[e,t]=g.useState("all"),[n,r]=g.useState({}),{data:s,isLoading:a,error:i}=lh(),{data:l,isLoading:c,error:u}=Pm(),{data:d,isLoading:f,error:p}=aRe(),{data:h,isLoading:m,isError:v,error:y}=sUr(n),{data:b,isLoading:x,isError:S,error:k}=QVt(),_=l?.datasets,C=d?.experiments,T=g.useMemo(()=>avs(b),[b]),E=i||u||p||y||k;return E&&vs(E)?o.jsx(Jn,{children:o.jsx(Fs,{})}):E&&ys(E)?o.jsx(Jn,{children:o.jsx(Es,{resource:"evaluation"})}):E?o.jsx(Jn,{children:o.jsx(qa,{title:"Failed to load evaluation data",message:E.message})}):o.jsxs(Bt,{width:"wide",height:"full",children:[o.jsx(Bt.TopArea,{children:o.jsx(Bt.Row,{children:o.jsx(Bt.Column,{children:o.jsx(H4,{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(Jxe,{children:o.jsx(Igs,{scorers:s,datasets:_,experiments:C,avgScore:h?.avgScore??null,prevAvgScore:h?.prevAvgScore??null,totalNeedsReview:T.needsReview,isLoadingScorers:a,isLoadingDatasets:c,isLoadingExperiments:f,isLoadingScores:m,isLoadingReview:x})}),o.jsx(gBr,{summaryData:h?.summaryData??[],overTimeData:h?.overTimeData??[],scorerNames:h?.scorerNames??[],avgScore:h?.avgScore??null,isLoading:m,isError:v}),o.jsxs("div",{className:"grid grid-cols-1 gap-6 lg:grid-cols-2",children:[o.jsx(Nhs,{experiments:C,isLoading:f,isError:!!p}),o.jsx(Hgs,{experiments:C,datasets:_,isLoading:f,isError:!!p})]}),o.jsx(rvs,{reviewSummary:b,experiments:C,datasets:_,isLoading:x,isError:!!S})]})]})}const ovs=100;function lvs(e){const t=Ge(),n={perPage:ovs};return ht({queryKey:e?["dataset-experiments",e,n]:["experiments",n],queryFn:()=>e?t.listDatasetExperiments(e,n):t.listExperiments(n)})}function cvs(){const[e,t]=g.useState(""),[n,r]=g.useState("all"),[s,a]=g.useState(!1),[i,l]=g.useState(!1),[c,u]=g.useState([]),d=Vr(),[f,p]=$a(),h=f.get("dataset")??"all",m=g.useCallback(Z=>{p(U=>{const P=new URLSearchParams(U);return Z==="all"?P.delete("dataset"):P.set("dataset",Z),P},{replace:!0})},[p]),{data:v,isLoading:y,error:b}=Pm(),{data:x,isLoading:S,error:k}=lvs(h==="all"?void 0:h),{data:_}=QVt(),C=g.useMemo(()=>v?.datasets??[],[v?.datasets]),T=g.useMemo(()=>x?.experiments??[],[x?.experiments]),E=g.useMemo(()=>qgs(C),[C]),N=g.useMemo(()=>svs(_),[_]),I=y||S,A=k||b,R=Z=>{u(U=>U.includes(Z)?U.filter(P=>P!==Z):U.length>=2?[U[0],Z]:[...U,Z])},L=()=>{u([]),l(!1)},{selectedIds:M,selectedDatasetIds:z}=g.useMemo(()=>{const Z=new Map(T.map(P=>[P.id,P.datasetId])),U=c.filter(P=>Z.has(P));return{selectedIds:U,selectedDatasetIds:new Set(U.map(P=>Z.get(P)))}},[T,c]),H=M.length===2&&z.size!==1?"experiments must belong to the same dataset":void 0,F=()=>{if(M.length!==2||H)return;const[Z,U]=M,[P]=z;if(!P)return;const q=new URLSearchParams({dataset:P,baseline:Z,contender:U});d(`/experiments/compare?${q.toString()}`)};if(A&&vs(A))return o.jsx(Jn,{children:o.jsx(Fs,{})});if(k&&ys(k))return o.jsx(Jn,{children:o.jsx(Es,{resource:"experiments"})});if(b&&ys(b))return o.jsx(Jn,{children:o.jsx(Es,{resource:"datasets"})});if(A)return o.jsx(Jn,{children:o.jsx(qa,{title:"Failed to load experiments",message:A.message})});const B=o.jsx(nY,{open:s,onOpenChange:a,onSuccess:Z=>{d(`/experiments/${Z}`)}});if(T.length===0&&!I&&h==="all")return o.jsxs(Jn,{children:[o.jsx(Wgs,{onRunExperiment:()=>a(!0)}),B]});const V=n!=="all"||h!=="all"||e!=="",D=()=>{t(""),r("all"),m("all")};return o.jsxs(Bt,{children:[o.jsx(Bt.TopArea,{children:o.jsx(Zgs,{search:e,onSearchChange:t,statusFilter:n,onStatusFilterChange:r,datasetFilter:h,onDatasetFilterChange:m,datasetOptions:E,onReset:D,hasActiveFilters:V,onRunClick:()=>a(!0),onCompareClick:()=>l(!0),selection:i?{selectedCount:M.length,onExecuteCompare:F,onCancelSelection:L,compareDisabledReason:H}:void 0})}),o.jsx(Bgs,{experiments:T,datasets:C,reviewByExperiment:N,isLoading:I,search:e,statusFilter:n,datasetFilter:h,selection:i?{selectedExperimentIds:M,onToggleSelection:R}:void 0}),B]})}function s8({experimentId:e}){const{Link:t,paths:n}=un();return o.jsx(oe,{as:t,href:n.experimentLink(e),size:"sm","aria-label":`Open experiment ${e}`,children:e.slice(0,8)})}function uvs(){const[e,t]=$a(),n=e.get("dataset")??"",r=e.get("baseline")??"",s=e.get("contender")??"",a=WD(n,r),i=WD(n,s),l=a.isLoading||i.isLoading,c=a.error??i.error;return c&&vs(c)?o.jsx(gs,{children:o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Fs,{})})}):c&&ys(c)?o.jsx(gs,{children:o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Es,{resource:"experiments"})})}):!n||!r||!s?o.jsx(gs,{children:o.jsx(py,{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: /experiments/compare?dataset=","{datasetId}","&baseline=","{experimentIdA}","&contender=","{experimentIdB}"]})]})})}):l?null:c&&!zEe(c)?o.jsx(gs,{children:o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(qa,{title:"Failed to load experiments",message:c.message})})}):c||!a.data||!i.data?o.jsx(gs,{children:o.jsx(py,{children:o.jsxs("div",{className:"text-neutral4 py-8 text-center",children:[o.jsxs("p",{children:["Experiments must belong to the same dataset (",n,") to be compared."]}),o.jsxs("p",{className:"mt-2 flex items-center justify-center gap-2 text-sm",children:["One of",o.jsx(s8,{experimentId:r}),"and",o.jsx(s8,{experimentId:s}),"was not found in it."]})]})})}):o.jsx(gs,{children:o.jsx(py,{children:o.jsxs("div",{className:"grid w-full content-start",children:[o.jsxs("div",{className:"flex items-center justify-between gap-4 px-6 py-3",children:[o.jsxs("div",{className:"flex min-w-0 items-center gap-3",children:[o.jsx(ve,{as:"h1",variant:"ui-lg",className:"text-neutral6 font-medium",children:"Experiments comparison"}),o.jsxs("p",{className:"text-ui-sm text-neutral4 flex items-center gap-2",children:[o.jsx(s8,{experimentId:r}),"and",o.jsx(s8,{experimentId:s})]})]}),o.jsxs(yn,{children:[o.jsx(gn,{asChild:!0,children:o.jsxs(oe,{onClick:()=>t({dataset:n,baseline:s,contender:r}),children:[o.jsx(Qlt,{}),"Swap sides"]})}),o.jsx(vn,{children:"Switch baseline and contender"})]})]}),o.jsx(tvs,{datasetId:n,experimentIdA:r,experimentIdB:s})]})})})}const YVt=e=>o.jsx("svg",{width:"16",height:"16",viewBox:"0 0 8.64637 9.45103",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:o.jsx("path",{d:"M7.80735 5.87241C7.63209 5.97219 7.43696 6.06166 7.22844 6.13866C6.46456 6.42068 5.43714 6.58649 4.32296 6.58649C3.20873 6.58649 2.18135 6.4207 1.41747 6.13866C1.20889 6.06164 1.01385 5.97223 0.838558 5.87241V7.59003C0.838558 7.62341 0.855765 7.70759 1.00172 7.83512C1.14707 7.96201 1.38219 8.09563 1.70829 8.21605C2.3572 8.45563 3.28149 8.61268 4.32296 8.61269C5.36456 8.61269 6.28937 8.45568 6.9383 8.21605C7.26428 8.09566 7.49888 7.96198 7.64419 7.83512C7.79024 7.70754 7.80735 7.62342 7.80735 7.59003V5.87241ZM7.80735 3.00789C7.63214 3.10763 7.4369 3.19647 7.22844 3.27345C6.46455 3.55549 5.43719 3.72129 4.32296 3.72129C3.20868 3.72128 2.18136 3.55552 1.41747 3.27345C1.20896 3.19645 1.01381 3.10766 0.838558 3.00789V4.72551C0.838558 4.7589 0.855657 4.84301 1.00172 4.97059C1.14707 5.09749 1.38219 5.23111 1.70829 5.35153C2.3572 5.59109 3.28154 5.74747 4.32296 5.74748C5.36456 5.74748 6.28937 5.59116 6.9383 5.35153C7.26432 5.23112 7.49887 5.09747 7.64419 4.97059C7.7536 4.87505 7.79089 4.80404 7.80257 4.76033L7.80735 4.72551V3.00789ZM7.80735 1.86099C7.80735 1.82758 7.79045 1.74291 7.64419 1.61522C7.49887 1.48838 7.26421 1.35534 6.9383 1.23497C6.28937 0.995339 5.36456 0.838331 4.32296 0.838331C3.28149 0.83834 2.3572 0.995383 1.70829 1.23497C1.38219 1.35539 1.14707 1.48832 1.00172 1.61522C0.855475 1.7429 0.838558 1.82758 0.838558 1.86099C0.838673 1.89462 0.855968 1.97882 1.00172 2.10607C1.14707 2.23297 1.38219 2.3659 1.70829 2.48632C2.3572 2.7259 3.28149 2.88295 4.32296 2.88296C5.36456 2.88296 6.28937 2.72595 6.9383 2.48632C7.26421 2.36595 7.49887 2.23291 7.64419 2.10607C7.78996 1.97881 7.80724 1.89462 7.80735 1.86099ZM8.64637 7.59003C8.64637 7.95465 8.44458 8.25006 8.1958 8.46728C7.94608 8.68529 7.60876 8.86274 7.22844 9.00318C6.46455 9.28522 5.43718 9.45102 4.32296 9.45102C3.20869 9.45101 2.18135 9.28525 1.41747 9.00318C1.03715 8.86274 0.699831 8.68529 0.450113 8.46728C0.201377 8.25007 0.000227451 7.9546 0.000227451 7.59003V1.86099C0.000227451 1.49643 0.201388 1.20095 0.450113 0.983742C0.699831 0.765728 1.03715 0.588275 1.41747 0.447838C2.18136 0.165769 3.20868 8.74396e-06 4.32296 0C5.43719 0 6.46455 0.165797 7.22844 0.447838C7.60876 0.588275 7.94608 0.765728 8.1958 0.983742C8.44457 1.20096 8.64637 1.49638 8.64637 1.86099V7.59003Z",fill:"currentColor"})});function KVt(e){const{data:t}=__(e.id,e.status);return g.useMemo(()=>{if(e.scorerIds?.length)return e.scorerIds;if(!t)return[];const n=new Set;for(const r of Object.values(t))for(const s of r)n.add(s.scorerId);return[...n].sort()},[e.scorerIds,t])}function Vie({icon:e,typeLabel:t,children:n}){return o.jsxs("div",{className:"text-ui-sm text-neutral5 flex flex-none items-center gap-1.5 [&_svg]:size-3.5 [&_svg]:shrink-0",children:[o.jsxs(yn,{children:[o.jsx(gn,{render:o.jsx("span",{className:"text-neutral3 flex",role:"img","aria-label":t}),children:e}),o.jsx(vn,{children:t})]}),n]})}function Hie({label:e}){return o.jsxs("div",{className:"text-neutral2 text-ui-xs flex flex-none items-center gap-1.5",children:[o.jsx("span",{className:"whitespace-nowrap",children:e}),o.jsx(zd,{className:"size-3.5 shrink-0","aria-hidden":!0})]})}const htt="text-neutral5 inline-flex items-center gap-1.5 hover:underline";function dvs({experiment:e,className:t}){const{Link:n,paths:r}=un(),s=qVt(),{scorers:a}=s,{data:i,isLoading:l}=Py(e.datasetId??""),c=KVt(e),u=c.map(b=>a?.[b]?.scorer?.config?.name??b),d=e.targetType,f=e.targetId,p=()=>WVt(e,s),h=()=>{if(!f)return null;switch(d){case"agent":return r.agentLink(f);case"workflow":return r.workflowLink(f);case"scorer":return r.scorerLink(f);default:return null}},m=d&&VVt[d]||Ii,v=d&&HVt[d]||"Evaluation target",y=h();return o.jsxs("div",{className:Y("flex items-center gap-3 overflow-x-auto",t),children:[o.jsx(Vie,{icon:o.jsx(YVt,{}),typeLabel:"Dataset",children:e.datasetId?o.jsxs(n,{href:r.datasetLink(e.datasetId),className:htt,children:[l?o.jsx(Ct,{className:"h-4 w-28"}):i?.name??e.datasetId,e.datasetVersion!=null&&o.jsxs("span",{className:"text-neutral3",children:["(v",e.datasetVersion,")"]})]}):o.jsx("span",{className:"text-neutral3",children:"No dataset"})}),o.jsx(Hie,{label:"each item"}),o.jsx(Vie,{icon:o.jsx(m,{}),typeLabel:v,children:y?o.jsx(n,{href:y,className:htt,children:p()}):o.jsx("span",{className:"text-neutral3",children:p()})}),o.jsx(Hie,{label:"output"}),o.jsxs(yn,{children:[o.jsx(gn,{render:o.jsx("div",{tabIndex:0,className:"flex outline-offset-4",children:o.jsx(Vie,{icon:o.jsx(AC,{}),typeLabel:"Scorers",children:c.length===0?"Scorers":`${c.length} scorer${c.length===1?"":"s"}`})})}),o.jsx(vn,{children:u.length>0?u.join(", "):"No scorer has produced a score yet"})]}),o.jsx(Hie,{label:"comparing ground truth"}),o.jsx("div",{className:"text-ui-sm text-neutral5 flex-none whitespace-nowrap",children:"Score"})]})}function a8({label:e,children:t}){return o.jsxs("div",{className:"min-w-0 flex-1 px-6 py-3",children:[o.jsx("div",{className:"text-ui-sm text-neutral2 tracking-widest uppercase",children:e}),o.jsx("div",{className:"text-ui-md text-neutral5 mt-1 flex flex-wrap items-baseline gap-x-1.5",children:t})]})}function fvs(e){if(e<1e3)return`${e}ms`;if(e<6e4)return`${(e/1e3).toFixed(1).replace(/\.0$/,"")}s`;const t=Math.floor(e/6e4),n=Math.round(e%6e4/1e3);if(t<60)return n>0?`${t}m ${n}s`:`${t}m`;const r=Math.floor(t/60),s=t%60;return s>0?`${r}h ${s}m`:`${r}h`}function pvs({experiment:e,className:t}){const{data:n}=__(e.id,e.status),r=g.useMemo(()=>{if(!n)return;const l=Object.values(n).flat();if(l.length!==0)return l.reduce((c,u)=>c+u.score,0)/l.length},[n]),s=e.startedAt??e.createdAt,a=s?new Date(s):null,i=(()=>{if(e.status==="running")return"Running…";if(!e.startedAt||!e.completedAt)return"—";const l=new Date(e.completedAt).getTime()-new Date(e.startedAt).getTime();return l<0?"—":fvs(l)})();return o.jsxs("div",{className:Y("flex w-full items-stretch divide-x divide-border1 border-y border-border1",t),children:[o.jsx(a8,{label:"Avg score",children:r===void 0?o.jsx("span",{className:"text-neutral3",children:"—"}):o.jsxs(o.Fragment,{children:[o.jsx("span",{children:r.toFixed(3)}),(e.status==="running"||e.status==="pending")&&o.jsx("span",{className:"text-neutral3",children:"· so far"})]})}),o.jsx(a8,{label:"Items",children:e.status==="running"||e.status==="pending"?o.jsxs("span",{className:"text-neutral3",children:[(e.succeededCount??0)+(e.failedCount??0),"/",e.totalItems," items processed"]}):o.jsxs(o.Fragment,{children:[o.jsxs("span",{children:[e.totalItems," item",e.totalItems===1?"":"s"]}),(e.failedCount??0)>0&&o.jsxs("span",{className:"text-error",children:["· ",e.failedCount," errored"]})]})}),o.jsx(a8,{label:"Started",children:a?o.jsxs(o.Fragment,{children:[o.jsx("span",{children:ur(a,"MMM d, h:mm a")}),o.jsxs("span",{className:"text-neutral3",children:["· ",F2n(a,{addSuffix:!0})]})]}):o.jsx("span",{children:"—"})}),o.jsx(a8,{label:"Duration",children:o.jsx("span",{children:i})})]})}const hvs=["agent","workflow","scorer"];function mvs({experiment:e}){const[t,n]=g.useState(!1),r=Vr(),{paths:s}=un(),a=KVt(e),i=hvs.find(l=>l===e.targetType);return!e.datasetId||!i||!e.targetId?null:o.jsxs(o.Fragment,{children:[o.jsxs(oe,{variant:"primary",onClick:()=>n(!0),tooltip:"Run this experiment again with the same configuration",children:[o.jsx(Lc,{}),"Rerun"]}),t&&o.jsx(nY,{open:!0,onOpenChange:n,initialDatasetId:e.datasetId,initialDatasetVersion:e.datasetVersion??void 0,initialTargetType:i,initialTargetId:e.targetId,initialScorerIds:a,onSuccess:l=>{r(s.experimentLink(l))}},a.join(","))]})}function gvs({experiment:e}){const{Link:t,paths:n}=un(),r=e.agentVersion&&e.targetType==="agent"&&e.targetId?`${n.agentLink(e.targetId)}/editor?version=${encodeURIComponent(e.agentVersion)}`:null;return o.jsxs(Bt.TopArea,{children:[o.jsxs(Bt.Row,{children:[o.jsx(Bt.Column,{className:"justify-items-start gap-3",children:o.jsxs("div",{className:"flex items-start gap-3",children:[o.jsx(Fms,{status:e.status,className:"h-7"}),o.jsxs(Ml,{children:[o.jsxs(Ml.Title,{children:["Experiment #",e.id.slice(0,8)]}),e.description&&o.jsx(Ml.Description,{children:e.description}),o.jsx(dvs,{experiment:e,className:"mt-2"})]})]})}),o.jsxs(Bt.Column,{className:"justify-items-end gap-3",children:[o.jsx(mvs,{experiment:e}),e.agentVersion&&o.jsxs(Cn,{numOfCol:1,children:[o.jsx(Cn.Key,{children:"Version"}),r?o.jsx(Cn.ValueLink,{href:r,as:t,children:e.agentVersion}):o.jsx(Cn.Value,{children:e.agentVersion})]})]})]}),o.jsx(pvs,{experiment:e,className:"-mx-6 w-auto"})]})}function i8({children:e}){return o.jsxs(Bt,{height:"full",children:[o.jsx("div",{}),o.jsx(Bt.MainArea,{isCentered:!0,children:e})]})}function vvs(){const{experimentId:e}=hr(),{data:t,isLoading:n}=aRe(),s=t?.experiments?.find(h=>h.id===e)?.datasetId??"",{data:a,isLoading:i,error:l}=WD(s,e??""),{data:c,isLoading:u,setEndOfListElement:d,isFetchingNextPage:f,hasNextPage:p}=ZD({datasetId:s,experimentId:e??"",experimentStatus:a?.status});return!e||n||i?null:l&&vs(l)?o.jsx(i8,{children:o.jsx(Fs,{})}):l&&ys(l)?o.jsx(i8,{children:o.jsx(Es,{resource:"datasets"})}):l&&zEe(l)||!n&&!s||!i&&!l&&!a?o.jsx(i8,{children:o.jsx(br,{iconSlot:o.jsx(g0e,{}),titleSlot:"Experiment not found",descriptionSlot:`No experiment with id "${e}".`,actionSlot:o.jsxs(oe,{as:za,to:"/experiments",children:[o.jsx(yl,{}),"Back to Experiments"]})})}):l?o.jsx(i8,{children:o.jsx(qa,{title:"Failed to load experiment",message:l instanceof Error?l.message:"An unexpected error occurred. Please try again."})}):o.jsx(Nms,{experimentId:e,datasetId:s,experimentStatus:a.status,results:c??[],isLoadingResults:u,hasNextPage:p,children:o.jsxs("div",{className:"relative h-full overflow-hidden",children:[o.jsxs(Bt,{height:"full",children:[o.jsx(gvs,{experiment:a}),o.jsx(Bt.MainArea,{className:"overflow-visible",children:o.jsx(Lms,{experimentId:e,datasetId:s,experimentStatus:a.status,results:c??[],isLoading:u,setEndOfListElement:d,isFetchingNextPage:f,hasNextPage:p})})]}),o.jsx(zg,{})]})})}const cRe=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 Wie(e){try{return JSON.stringify(e??{})}catch{return String(e)}}function yvs({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(on.SectionHeading,{icon:o.jsx(qd,{}),className:"mb-2",children:"Tool Mocks"}),s&&o.jsx(An,{variant:"destructive",title:"Mock mismatch",children:o.jsxs(An.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: ",Wie(s.args)]}),n.length>0&&o.jsxs("span",{className:"mt-1 block font-mono text-xs",children:["Unconsumed mocks: ",n.map(i=>Wie(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:Wie(i.args)})]}),o.jsx("span",{className:`shrink-0 rounded px-2 py-0.5 text-xs ${bvs(i.outcome)}`,children:i.outcome})]},`${i.outcome}-${i.toolName}-${l}`))})]})}function bvs(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 xvs({result:e,scores:t,onPrevious:n,onNext:r,onClose:s,onShowTrace:a,onOpenInReview:i,onScoreClick:l,featuredScoreId:c,onFlagForReview:u,collapsed:d=!1,scorePanelSlot:f}){const p=!!e?.error,h=o8(e?.input),m=o8(e?.output),v=o8(e?.groundTruth),y=u&&e.status!=="needs-review"&&e.status!=="complete",b=Array.isArray(e.tags)?e.tags:[];return o.jsxs(on,{collapsed:d,children:[o.jsxs(on.Header,{children:[o.jsxs(on.Heading,{children:["Result ",o.jsxs("b",{children:["# ",e.id.length>12?`${e.id.slice(0,12)}…`:e.id]})]}),o.jsxs(es,{className:"ml-auto shrink-0",children:[o.jsx(on.NextPrevNav,{onPrevious:n,onNext:r,previousLabel:"Previous result",nextLabel:"Next result"}),e.traceId&&o.jsxs(oe,{size:"md",onClick:a,children:[o.jsx(cRe,{}),"Trace"]}),y&&o.jsxs(oe,{size:"md",variant:"primary",onClick:()=>u(e.id),children:[o.jsx(wO,{}),"Flag for Review"]}),e.status==="needs-review"&&i&&o.jsxs(oe,{size:"md",variant:"primary",onClick:i,children:[o.jsx(ea,{}),"Review"]}),o.jsx(on.CloseButton,{onClick:s,tooltip:"Close result panel"})]})]}),!d&&o.jsx(wvs,{scorePanelSlot:f,children:o.jsxs(on.Content,{children:[o.jsxs("div",{className:"mb-6 grid gap-4",children:[o.jsxs(Cn,{children:[o.jsx(Cn.Key,{children:"Item Id"}),o.jsx(Cn.ValueWithCopyBtn,{copyTooltip:"Copy Item Id to clipboard",copyValue:e.itemId,children:e.itemId}),o.jsx(Cn.Key,{children:"Created"}),o.jsx(Cn.Value,{children:ur(new Date(e.createdAt),"MMM d, yyyy 'at' h:mm a")})]}),p&&o.jsx(An,{variant:"destructive",title:"Error",children:o.jsx(An.Message,{children:o8(e?.error&&typeof e.error=="object"?e.error.message:e?.error)})}),t&&t.length>0&&o.jsxs(he,{columns:"1fr 1fr",children:[o.jsxs(he.Top,{children:[o.jsx(he.TopCell,{children:"Scorer"}),o.jsx(he.TopCell,{children:"Score"})]}),t.map(x=>o.jsxs(he.RowButton,{featured:c===x.id,onClick:()=>l?.(x.id),children:[o.jsx(he.Cell,{children:x.scorerId}),o.jsx(he.TextCell,{font:"mono",children:x.score.toFixed(3)})]},x.id))]}),e.toolMockReport&&o.jsx(yvs,{report:e.toolMockReport}),(e.status||b.length>0)&&o.jsxs("div",{className:"grid gap-2",children:[o.jsx(on.SectionHeading,{icon:o.jsx(uI,{}),className:"mb-2",children:"Review"}),o.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.status&&o.jsx("span",{className:`rounded-full px-2 py-0.5 text-xs font-medium ${e.status==="needs-review"?"bg-orange-500/10 text-orange-400":e.status==="complete"?"bg-accent1/10 text-accent1":"bg-neutral3/10 text-neutral4"}`,children:e.status}),b.map(x=>o.jsx("span",{className:"bg-surface4 text-neutral4 rounded px-2 py-0.5 text-xs",children:x},x))]})]})]}),o.jsxs("div",{className:"grid gap-3",children:[o.jsx(on.CodeSection,{title:"Input",icon:o.jsx(TV,{}),codeStr:h}),o.jsx(on.CodeSection,{title:"Output",icon:o.jsx(tm,{}),codeStr:m}),o.jsx(on.CodeSection,{title:"Ground Truth",icon:o.jsx(kct,{}),codeStr:v})]})]})})]})}function wvs({scorePanelSlot:e,children:t}){return e?o.jsxs("div",{className:"grid min-h-0 flex-1 grid-cols-[1fr_1fr]",children:[o.jsx("div",{className:"flex min-h-0 flex-col overflow-hidden",children:t}),o.jsx("div",{className:"animate-in border-border1 fade-in-0 flex min-h-0 flex-col overflow-hidden border-l duration-300",children:e})]}):o.jsx(o.Fragment,{children:t})}function o8(e){return e==null?"-":typeof e=="string"?e:JSON.stringify(e,null,2)}function Svs(e){const t=e.scorer;return t?.hasJudge===!1?!0:t?.hasJudge===!0?!1:!e.preprocessPrompt&&!e.analyzePrompt&&!e.generateScorePrompt&&!e.generateReasonPrompt}function kvs({score:e,onNext:t,onPrevious:n,onClose:r,onShowTrace:s,collapsed:a,onCollapsedChange:i,className:l}){const[c,u]=g.useState(!1),d=a??c,f=i??u,p=Svs(e),h=p?"N/A — code-based scorer":"N/A — step not configured";return o.jsxs(on,{collapsed:d,className:l,children:[o.jsxs(on.Header,{children:[o.jsxs(on.Heading,{children:["Score ",o.jsx("b",{children:e.scorerId})]}),o.jsxs(es,{className:"ml-auto shrink-0",children:[i&&o.jsx(oe,{size:"md",tooltip:d?"Expand panel":"Collapse panel",onClick:()=>f(!d),children:d?o.jsx(sI,{}):o.jsx(OV,{})}),(n||t)&&o.jsx(on.NextPrevNav,{onPrevious:n,onNext:t,previousLabel:"Previous score",nextLabel:"Next score"}),s&&e.traceId&&o.jsxs(oe,{size:"md",onClick:s,children:[o.jsx(cRe,{}),"Trace"]}),o.jsx(on.CloseButton,{onClick:r,tooltip:"Close score panel"})]})]}),!d&&o.jsx(on.Content,{children:o.jsxs("div",{className:"grid gap-3",children:[o.jsx(on.CodeSection,{title:`Score: ${e.score}`,icon:o.jsx(Zp,{}),codeStr:e.reason||h,simplified:!0}),!p&&o.jsxs(o.Fragment,{children:[o.jsx(on.CodeSection,{title:"Preprocess Prompt",icon:o.jsx(Rh,{}),codeStr:e.preprocessPrompt||h,simplified:!0}),o.jsx(on.CodeSection,{title:"Analyze Prompt",icon:o.jsx(Rh,{}),codeStr:e.analyzePrompt||h,simplified:!0}),o.jsx(on.CodeSection,{title:"Generate Score Prompt",icon:o.jsx(Rh,{}),codeStr:e.generateScorePrompt||h,simplified:!0}),o.jsx(on.CodeSection,{title:"Generate Reason Prompt",icon:o.jsx(Rh,{}),codeStr:e.generateReasonPrompt||h,simplified:!0})]})]})})]})}function Ovs(){const{itemId:e}=hr();return e?o.jsx(_vs,{itemId:e},e):null}function _vs({itemId:e}){const{experimentId:t,datasetId:n,experimentStatus:r,results:s,isLoadingResults:a,hasNextPage:i,close:l,openInReview:c,goToPreviousItem:u,goToNextItem:d}=FVt(),f=g.useMemo(()=>s.find(P=>P.itemId===e)??null,[s,e]),{data:p}=__(t,r),{updateExperimentResult:h}=Ai(),m=g.useCallback(async P=>{try{await h.mutateAsync({datasetId:n,experimentId:t,resultId:P,status:"needs-review"}),ze("Result flagged for review")}catch{ze.error("Failed to flag result for review")}},[n,t,h]),v=f?p?.[f.itemId]:void 0,[y,b]=g.useState(null),[x,S]=g.useState(void 0),[k,_]=g.useState(null),[C,T]=g.useState(!1),[E,N]=g.useState(!1),I=v?.find(P=>P.id===k)??null,A=g.useCallback(P=>{_(q=>P===q?null:P),b(null),S(void 0)},[]),R=()=>{if(!k||!v)return;const P=v.findIndex(q=>q.id===k);if(P>=0&&P<v.length-1)return()=>_(v[P+1].id)},L=()=>{if(!k||!v)return;const P=v.findIndex(q=>q.id===k);if(P>0)return()=>_(v[P-1].id)},{data:M,isLoading:z}=zms(y),H=M?.spans,F=H?.find(P=>!P.parentSpanId),B=F?.entityType==="agent"?"Agent":F?.entityType==="workflow_run"?"Workflow":void 0,{data:V}=eRe({traceId:y??void 0}),{data:D}=tRe({traceId:y??void 0,spanId:x}),{data:Z}=cje({traceId:y??void 0,spanId:F?.spanId,page:0}),U=(()=>{const P=[],q=!!y;return P.push(C?"auto":q?"2fr":"1fr"),q&&P.push(E?"auto":"3fr"),P.join(" ")})();return o.jsx(rY,{label:`Experiment item ${e}`,wide:!!x||!!I&&!C,children:f?o.jsxs("div",{className:"[&>section]:bg-surface3 grid h-full min-h-0 content-start gap-4 p-3 [&>section]:rounded-lg [&>section]:shadow-lg",style:{gridTemplateRows:U},children:[o.jsx(xvs,{result:f,scores:v,onPrevious:u,onNext:d,onClose:l,onScoreClick:A,featuredScoreId:k,onShowTrace:()=>{f.traceId&&(b(f.traceId),S(void 0),_(null),T(!0),N(!1))},onOpenInReview:()=>c(f.id),onFlagForReview:()=>{m(f.id)},collapsed:C,scorePanelSlot:I?o.jsx(kvs,{score:I,onNext:R(),onPrevious:L(),onClose:()=>_(null),onShowTrace:()=>{I.traceId&&(b(I.traceId),S(void 0),T(!0),N(!1))},className:"rounded-none border-0 bg-transparent"}):null}),y&&o.jsx(KQ,{traceId:y,spans:H,isLoadingSpans:z,selectedSpanId:x??null,onClose:()=>{b(null),S(void 0),T(!1)},onSpanSelect:S,showUnavailableFeaturesMsg:!1,collapsed:E,onCollapsedChange:N,traceHref:`/traces?traceId=${encodeURIComponent(y)}`,anchorSpanId:F?.spanId,feedbackTabBadge:V?.pagination?.total??void 0,feedbackTabSlot:({traceId:P})=>o.jsx(rRe,{traceId:P}),scoresTabBadge:Z?.pagination?.total??void 0,scoresTabSlot:({traceId:P,rootSpanId:q})=>q?o.jsx(EVt,{traceId:P,spanId:q,isTopLevelSpan:!F?.parentSpanId,entityType:B,onScoreSelect:G=>{v?.some(K=>K.id===G)&&(_(G),T(!1))}}):null,spanFeedbackTabBadge:D?.pagination?.total??void 0,spanFeedbackTabSlot:({traceId:P,spanId:q})=>P&&q?o.jsx(nRe,{traceId:P,spanId:q},`${P}:${q}`):null,spanPanelClassName:"rounded-none border-0 bg-transparent"})]}):a||i?o.jsx("div",{className:"h-full p-3",children:o.jsx("div",{className:"border-border1 bg-surface3 flex h-full items-center justify-center rounded-lg border shadow-lg",children:o.jsx(qt,{})})}):o.jsx("div",{className:"h-full p-3",children:o.jsx("div",{className:"border-border1 bg-surface3 flex h-full items-center justify-center rounded-lg border shadow-lg",children:o.jsx(br,{iconSlot:o.jsx(g0e,{}),titleSlot:"Item not found",descriptionSlot:`No loaded result for item "${e}".`,actionSlot:o.jsx(oe,{onClick:l,children:"Close"})})})})})}const Cvs=20;function Evs({reviewStatus:e}){const t=Ge(),n=Xx({queryKey:["feedback","list",e],queryFn:({pageParam:r})=>t.listFeedback({filters:{reviewStatus:e},pagination:{page:r,perPage:Cvs},orderBy:{field:"timestamp",direction:"DESC"}}),initialPageParam:0,getNextPageParam:r=>r.pagination?.hasMore?r.pagination.page+1:void 0});return{...n,items:n.data?.pages.flatMap(r=>r.feedback)??[],total:n.data?.pages[0]?.pagination?.total}}function Tvs({enabled:e}){const t=Ge();return ht({queryKey:["feedback","inbox-count"],queryFn:()=>t.listFeedback({filters:{reviewStatus:"needs-review"},pagination:{page:0,perPage:1},orderBy:{field:"timestamp",direction:"DESC"}}),enabled:e,refetchInterval:3e3})}function jvs(){const e=Ge(),t=Nr();return kn({mutationFn:({feedbackId:n,reviewStatus:r})=>e.updateFeedbackReviewStatus({feedbackId:n,reviewStatus:r}),onSuccess:()=>t.invalidateQueries({queryKey:["feedback"]})})}const mtt="minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) auto";function Nvs({items:e,isLoading:t,error:n}){const r=Vr(),[s,a]=g.useState(""),i=s.trim().toLowerCase(),l=i?e.filter(d=>[d.itemId,d.experimentId,d.datasetId,d.traceId??""].some(f=>f.toLowerCase().includes(i))):e,{containerRef:c,getRowProps:u}=ao({count:l.length});return t?o.jsx(Fo,{columns:mtt}):n?o.jsx(qa,{title:"Failed to load dataset items",message:n.message}):e.length===0?o.jsx(br,{iconSlot:o.jsx(S0e,{className:"text-neutral3 h-8 w-8"}),titleSlot:"Nothing to review",descriptionSlot:"Experiment results that need review will show up here."}):o.jsxs("div",{className:"grid h-full min-h-0 grid-rows-[auto_1fr] gap-4",children:[o.jsx("div",{className:"max-w-120",children:o.jsx(od,{onSearch:a,label:"Filter dataset items",placeholder:"Filter by item, experiment, dataset or trace",shortcutDisabled:!0})}),o.jsx("div",{className:"min-h-0 overflow-hidden",children:o.jsxs(he,{columns:mtt,variant:"striped",fit:"container",scrollRef:c,children:[o.jsxs(he.Top,{children:[o.jsx(he.TopCell,{children:"Item"}),o.jsx(he.TopCell,{children:"Experiment"}),o.jsx(he.TopCell,{children:"Dataset"}),o.jsx(he.TopCell,{children:"Trace"}),o.jsx(he.TopCell,{children:" "})]}),l.length===0?o.jsx(he.NoMatch,{message:"No dataset items match your search"}):l.map((d,f)=>{const p=`/experiments/${encodeURIComponent(d.experimentId)}?review=${encodeURIComponent(d.id)}`;return o.jsxs(he.RowWrapper,{children:[o.jsxs(he.RowButton,{colEnd:-2,onClick:()=>r(p),...u(f),children:[o.jsx(he.TextCell,{font:"mono",children:d.itemId}),o.jsx(he.TextCell,{font:"mono",children:d.experimentId}),o.jsx(he.TextCell,{font:"mono",children:d.datasetId}),o.jsx(he.TextCell,{font:"mono",children:d.traceId??"—"})]}),o.jsx(he.ActionsCell,{className:"pl-2",children:d.traceId?o.jsx(oe,{as:za,to:`/traces?traceId=${encodeURIComponent(d.traceId)}`,variant:"ghost",size:"sm",children:"Open trace"}):null})]},d.id)})]})})]})}function Ivs(){return o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(br,{iconSlot:o.jsx(S0e,{}),titleSlot:"Your inbox is empty",descriptionSlot:o.jsxs(o.Fragment,{children:["Feedback left on traces and experiment results flagged for review ",o.jsx("br",{}),"will show up here until you mark them reviewed."]}),actionSlot:o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(oe,{as:za,to:"/experiments",variant:"outline",children:"Go to experiments"}),o.jsx(oe,{as:za,to:"/traces",variant:"outline",children:"Go to traces"})]})})})}function e0e(e){return e.comment?e.comment:typeof e.value=="string"?e.value:e.feedbackType==="thumbs"?e.value===1?"Thumbs up":"Thumbs down":JSON.stringify(e.value)??String(e.value)}const gtt="minmax(0, 2fr) auto minmax(0, 1fr) auto auto";function Avs({items:e,isLoading:t,error:n,hasNextPage:r,isFetchingNextPage:s,fetchNextPage:a,onMarkReviewed:i,pendingFeedbackId:l,onSelect:c,selectedFeedbackId:u}){const[d,f]=g.useState(""),p=d.trim().toLowerCase(),h=p?e.filter(x=>e0e(x).toLowerCase().includes(p)||(x.traceId??"").toLowerCase().includes(p)||(x.feedbackSource??"").toLowerCase().includes(p)):e,{containerRef:m,getRowProps:v}=ao({count:h.length}),{inView:y,setRef:b}=oS({root:m});return g.useEffect(()=>{y&&r&&!s&&a()},[y,r,s,a]),t?o.jsx(Fo,{columns:gtt}):n?o.jsx(qa,{title:"Failed to load feedback",message:n.message}):o.jsxs("div",{className:"grid h-full min-h-0 grid-rows-[auto_1fr] gap-4",children:[o.jsx("div",{className:"max-w-120",children:o.jsx(od,{onSearch:f,label:"Filter feedback",placeholder:"Filter loaded feedback by text, trace or source"})}),o.jsx("div",{className:"min-h-0 overflow-hidden",children:o.jsxs(he,{columns:gtt,variant:"striped",fit:"container",scrollRef:m,children:[o.jsxs(he.Top,{children:[o.jsx(he.TopCell,{children:"Feedback"}),o.jsx(he.TopCell,{children:"Source"}),o.jsx(he.TopCell,{children:"Trace"}),o.jsx(he.TopCell,{children:"Date"}),o.jsx(he.TopCell,{children:" "})]}),h.length===0?o.jsx(he.NoMatch,{message:p?"No feedback matches your search":"No feedback needs review"}):h.map((x,S)=>{const k=x.feedbackId;return o.jsxs(he.RowWrapper,{children:[o.jsxs(he.RowButton,{colEnd:-2,disabled:!x.traceId,featured:k!==void 0&&k===u,onClick:()=>c(x),...v(S),children:[o.jsx(he.TextCell,{className:"min-w-0",children:o.jsx("span",{className:"block truncate",children:e0e(x)})}),o.jsx(he.Cell,{children:o.jsx(wt,{size:"sm",children:x.feedbackSource})}),o.jsx(he.TextCell,{font:"mono",className:"min-w-0",children:o.jsx("span",{className:"block truncate",children:x.traceId??"—"})}),o.jsx(he.TextCell,{children:ur(x.timestamp,"MMM d, h:mm a")})]}),o.jsx(he.ActionsCell,{className:"pl-2",children:k?o.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>i(k),disabled:l===k,children:"Mark reviewed"}):null})]},k??`${String(x.timestamp)}-${x.traceId}`)}),o.jsx(he.NextPageLoading,{isLoading:s,hasMore:r,setEndOfListElement:b})]})})]})}function Rvs({feedback:e,traceId:t,initialSpanId:n,onClose:r,onPrevious:s,onNext:a,onMarkReviewed:i,isMarkingReviewed:l}){const[c,u]=g.useState(n),{spans:d,isLoading:f}=NAe({traceId:t,anchorSpanId:null,listMode:"traces"});return o.jsx(rY,{label:`Review feedback for trace ${t}`,wide:!!c,children:o.jsxs("div",{className:"[&>*]:bg-surface3 grid h-full min-h-0 grid-rows-[auto_minmax(0,1fr)] gap-4 p-3 [&>*]:rounded-lg [&>*]:shadow-lg",children:[o.jsxs(on,{className:"max-h-[33vh]",children:[o.jsxs(on.Header,{className:"items-start",children:[o.jsxs("div",{className:"flex min-w-0 flex-col gap-1",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(on.Heading,{children:"Feedback"}),o.jsx(wt,{variant:"neutral",emphasis:"muted",children:e.feedbackType}),e.feedbackSource&&o.jsx(wt,{variant:"neutral",emphasis:"muted",children:e.feedbackSource})]}),o.jsxs(ve,{as:"p",variant:"ui-sm",className:"text-neutral3",children:[ur(new Date(e.timestamp),"MMM dd, yyyy HH:mm:ss"),e.feedbackUserId?` · ${e.feedbackUserId}`:null]})]}),o.jsx(es,{className:"ml-auto shrink-0",children:o.jsxs(oe,{variant:"primary",size:"sm",onClick:i,disabled:l,children:[o.jsx(We,{children:o.jsx(qr,{})}),"Mark as reviewed"]})})]}),o.jsx(on.Content,{children:o.jsx(ve,{as:"p",variant:"ui-md",className:"text-neutral5 whitespace-pre-wrap",children:e0e(e)})})]}),o.jsx("section",{className:"min-h-0 overflow-hidden",children:o.jsx(KQ,{className:"h-full rounded-none border-0 bg-transparent",spanPanelClassName:"rounded-none border-0 bg-transparent",traceId:t,spans:d,isLoadingSpans:f,selectedSpanId:c??null,initialSpanId:n,onSpanSelect:u,onClose:r,onPrevious:s,onNext:a,traceHref:`/traces?traceId=${encodeURIComponent(t)}`,feedbackTabSlot:({traceId:p})=>o.jsx(rRe,{traceId:p}),spanFeedbackTabSlot:({traceId:p,spanId:h})=>p&&h?o.jsx(nRe,{traceId:p,spanId:h},`${p}:${h}`):null})})]})})}const XVt=100;async function Pvs(e){const t=[];let n=0,r=!0;for(;r;){const s=await e.listExperiments({page:n,perPage:XVt});t.push(...s.experiments),r=s.pagination.hasMore,n+=1}return t}async function $vs(e,t,n){const r=[];let s=0,a=!0;for(;a;){const i=await e.listDatasetExperimentResults(t,n,{page:s,perPage:XVt});r.push(...i.results),a=i.pagination.hasMore,s+=1}return r}function Mvs(){const e=Ge();return ht({queryKey:["inbox-dataset-review-items"],queryFn:async()=>{const t=await Pvs(e);return(await Promise.all(t.map(async r=>{const s=r.datasetId;return s?(await $vs(e,s,r.id)).filter(i=>i.status==="needs-review").map(i=>({id:i.id,datasetId:s,experimentId:r.id,itemId:i.itemId,traceId:i.traceId??void 0,input:i.input,output:i.output})):[]}))).flat()},refetchInterval:3e3,refetchOnWindowFocus:!1})}function Dvs({enabled:e}){const t=Ge();return ht({queryKey:["inbox-dataset-review-count"],queryFn:async()=>{const{counts:n}=await t.getExperimentReviewSummary();return n.reduce((r,s)=>r+s.needsReview,0)},enabled:e,refetchInterval:3e3})}function Lvs(e){return e==="dataset"||e==="feedback"}function Fvs(){const[e,t]=$a(),n=e.get("tab"),r=Lvs(n)?n:"feedback",s=Evs({reviewStatus:"needs-review"}),a=jvs(),i=Mvs(),l=i.data??[],c=s.total??0,u=!s.isLoading&&!i.isLoading&&!s.error&&!i.error&&s.items.length===0&&l.length===0,d=e.get("feedbackId")??void 0,f=e.get("traceId")??void 0,p=e.get("spanId")??void 0,h=T=>{t(E=>{const N=new URLSearchParams(E);for(const I of["feedbackId","traceId","spanId"]){const A=T[I];A?N.set(I,A):N.delete(I)}return N},{replace:!0})},m=()=>h({}),v=T=>h({feedbackId:T.feedbackId??void 0,traceId:T.traceId??void 0,spanId:T.spanId??void 0}),y=s.items.findIndex(T=>T.feedbackId===d),b=y>=0?s.items[y]:void 0,x=y>0?s.items[y-1]:void 0,S=y>=0&&y<s.items.length-1?s.items[y+1]:void 0,k=!!f&&!!d,_=T=>{a.mutate({feedbackId:T,reviewStatus:"reviewed"},{onSuccess:()=>T===d&&m()})},C=T=>{t(E=>{const N=new URLSearchParams(E);return N.set("tab",T),N},{replace:!0})};return o.jsxs("div",{className:"relative h-full overflow-hidden",children:[o.jsxs(Bt,{height:"full",children:[o.jsx(Bt.TopArea,{children:o.jsxs(Ml,{children:[o.jsx(Ml.Title,{children:"Inbox"}),o.jsx(Ml.Description,{children:"Items waiting for review"})]})}),o.jsx(Bt.MainArea,{className:"min-h-0 overflow-hidden",children:u?o.jsx(Ivs,{}):o.jsxs(wc,{defaultTab:"feedback",value:r,onValueChange:C,className:"grid h-full min-h-0 grid-rows-[auto_1fr]",children:[o.jsxs(xc,{variant:"pill-ghost",children:[o.jsxs(Pr,{value:"feedback",className:"px-3 py-2.5",children:[o.jsx(We,{size:"sm",children:o.jsx(RV,{})}),o.jsx(ve,{variant:"ui-sm",className:"text-inherit",children:"Feedback"}),c>0&&o.jsx(wt,{variant:"yellow",size:"sm",children:c})]}),o.jsxs(Pr,{value:"dataset",className:"px-3 py-2.5",children:[o.jsx(We,{size:"sm",children:o.jsx(wO,{})}),o.jsx(ve,{variant:"ui-sm",className:"text-inherit",children:"Dataset items"}),l.length>0&&o.jsx(wt,{variant:"yellow",size:"sm",children:l.length})]})]}),o.jsx(fs,{value:"feedback",className:"h-full min-h-0 pt-4",children:o.jsx(Avs,{items:s.items,isLoading:s.isLoading,error:s.error??void 0,hasNextPage:s.hasNextPage,isFetchingNextPage:s.isFetchingNextPage,fetchNextPage:s.fetchNextPage,onMarkReviewed:_,pendingFeedbackId:a.isPending?a.variables?.feedbackId:void 0,onSelect:v,selectedFeedbackId:d})}),o.jsx(fs,{value:"dataset",className:"h-full min-h-0 pt-4",children:o.jsx(Nvs,{items:l,isLoading:i.isLoading,error:i.error??void 0})})]})})]}),k&&f&&b&&o.jsx(Rvs,{feedback:b,traceId:f,initialSpanId:p,onClose:m,onPrevious:x?()=>v(x):void 0,onNext:S?()=>v(S):void 0,onMarkReviewed:()=>d&&_(d),isMarkingReviewed:a.isPending},`${d}:${f}`)]})}function zvs({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 JVt({connections:e,isAdmin:t,disconnectPending:n,onDisconnect:r}){return o.jsx("ul",{className:"space-y-1",children:e.map(s=>o.jsx(zvs,{connection:s,isAdmin:t,disconnectPending:n,onDisconnect:()=>r(s.connectionId)},s.connectionId))})}function Bvs({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(JVt,{connections:a,isAdmin:t,disconnectPending:n,onDisconnect:r})]},s))})}function Uvs({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(Bvs,{groups:r,isAdmin:s,disconnectPending:l,onDisconnect:u}):o.jsx(JVt,{connections:n,isAdmin:s,disconnectPending:l,onDisconnect:u}),c?o.jsx("p",{className:"text-red-600",children:String(c)}):null]})}function qvs({providers:e,toolkits:t,providerId:n,toolkit:r,label:s,providersLoading:a,providersError:i,toolkitsLoading:l,toolkitsError:c,authorizePending:u,authorizeError:d,authorizedConnection:f,onProviderChange:p,onToolkitChange:h,onLabelChange:m,onConnect:v}){return o.jsxs("div",{className:"space-y-4 border rounded p-4",children:[o.jsxs("div",{className:"space-y-1",children:[o.jsx("label",{className:"block font-medium",htmlFor:"provider-select",children:"Provider"}),o.jsxs("select",{id:"provider-select",className:"border rounded px-2 py-1 w-full",value:n,onChange:y=>p(y.target.value),disabled:a,children:[o.jsx("option",{value:"",children:"— select provider —"}),e.map(y=>o.jsxs("option",{value:y.id,children:[y.displayName??y.name," (",y.id,")"]},y.id))]}),a&&o.jsx("span",{className:"text-gray-500",children:"Loading providers…"}),i?o.jsx("span",{className:"text-red-600",children:String(i)}):null]}),o.jsxs("div",{className:"space-y-1",children:[o.jsx("label",{className:"block font-medium",htmlFor:"toolkit-select",children:"Toolkit"}),o.jsxs("select",{id:"toolkit-select",className:"border rounded px-2 py-1 w-full",value:r,onChange:y=>h(y.target.value),disabled:!n||l,children:[o.jsx("option",{value:"",children:"— select toolkit —"}),t.map(y=>o.jsxs("option",{value:y.slug,children:[y.name," (",y.slug,")"]},y.slug))]}),l&&o.jsx("span",{className:"text-gray-500",children:"Loading toolkits…"}),c?o.jsx("span",{className:"text-red-600",children:String(c)}):null]}),o.jsxs("div",{className:"space-y-1",children:[o.jsx("label",{className:"block font-medium",htmlFor:"label-input",children:"Label (optional)"}),o.jsx("input",{id:"label-input",type:"text",className:"border rounded px-2 py-1 w-full",placeholder:"My personal Gmail",value:s,onChange:y=>m(y.target.value),disabled:!n||!r})]}),o.jsx("button",{type:"button",className:"bg-blue-600 text-white rounded px-4 py-2 disabled:opacity-50",onClick:v,disabled:!n||!r||u,children:u?"Authorizing…":"Connect"}),d?o.jsx("p",{className:"text-red-600",children:String(d)}):null,f&&o.jsxs("p",{className:"text-green-700",children:["Authorized: ",f.connectionId," (status: ",f.status,")"]})]})}const vtt=e=>e.authorId?.trim()||"shared",Vvs=(e,t)=>{if(!t||new Set(e.map(vtt)).size<=1)return null;const r=new Map;for(const a of e){const i=vtt(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},Hvs=["*","tool-providers:*","tool-providers:admin"];function Wvs(){const{data:e}=Fm();return e?.permissions?.some(t=>Hvs.includes(t))??!1}function Zvs(){const[e,t]=g.useState(""),[n,r]=g.useState(""),[s,a]=g.useState(""),i=tA(),l=iG(e||null),c=S3t(e||null,n||null),u=w3t(),d=y3t(),f=Wvs(),p=i.data?.providers??[],h=l.data?.data??[],m=g.useMemo(()=>c.data?.items??[],[c.data?.items]),v=g.useMemo(()=>Vvs(m,f),[m,f]),y=S=>{t(S),r("")},b=()=>{!e||!n||u.mutate({providerId:e,toolkit:n,label:s.trim()||null},{onSuccess:()=>{a(""),c.refetch()}})},x=S=>{d.mutate({providerId:e,connectionId:S})};return o.jsxs("div",{className:"p-6 max-w-3xl space-y-6 text-sm",children:[o.jsx("h1",{className:"text-2xl font-semibold",children:"Integrations"}),o.jsx("p",{className:"text-gray-500",children:"Minimal page to verify the ToolProvider backend. Pick a provider and toolkit, then connect."}),o.jsx(qvs,{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(Uvs,{providerId:e,toolkit:n,connections:m,groupedByAuthor:v,isAdmin:f,isLoading:c.isLoading,error:c.error,disconnectPending:d.isPending,disconnectError:d.error,onDisconnect:x})]})}function Gvs({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(Vp,{className:"h-10 w-10"}),o.jsx("h1",{className:"text-neutral6 text-xl font-semibold",children:e})]}),t,n,r]})})}function eHt({redirectUri:e,onSuccess:t,initialMode:n="signin",errorMessage:r}){const{data:s,isLoading:a}=mc(),{mutate:i,isPending:l,error:c}=GRr(),{mutate:u,isPending:d,error:f}=YRr(),{mutate:p,isPending:h}=kMt(),[m,v]=g.useState(n),[y,b]=g.useState(""),[x,S]=g.useState(""),[k,_]=g.useState("");if(a)return o.jsx("div",{className:"bg-surface1 flex min-h-screen items-center justify-center",children:o.jsx("div",{className:"text-neutral3",children:"Loading..."})});if(!s?.enabled||!s?.login)return o.jsx("div",{className:"bg-surface1 flex min-h-screen items-center justify-center",children:o.jsx("div",{className:"text-neutral3",children:"Authentication is not configured"})});const{login:C}=s,T=C.type==="sso"||C.type==="both",E=C.type==="credentials"||C.type==="both",N=C.sso,I=C.signUpEnabled!==!1,A=m==="signin"||!I,R=A?l:d,L=A?c:f,M=()=>{t?t():e?window.location.href=e:window.location.href=mG("/")},z=D=>{D.preventDefault(),A?i({email:x,password:k},{onSuccess:M}):u({email:x,password:k,name:y||void 0},{onSuccess:M})},H=()=>{p({redirectUri:e},{onSuccess:D=>{window.location.href=D.url}})},F=()=>{v(A?"signup":"signin")},B=C.description?o.jsxs("div",{className:"border-border1 bg-surface1 flex items-start gap-2.5 rounded-md border p-3",children:[o.jsx(Ud,{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(Gvs,{title:A?"Sign in to Mastra Studio":"Create your account",description:B,errorBanner:V,children:[E&&o.jsxs("form",{onSubmit:z,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(Rn,{id:"name",type:"text",value:y,onChange:D=>b(D.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(Rn,{id:"email",type:"email",value:x,onChange:D=>S(D.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(Rn,{id:"password",type:"password",value:k,onChange:D=>_(D.target.value),placeholder:A?"Enter your password":"Create a password",required:!0,variant:"default",size:"lg"})]}),L&&o.jsx("div",{className:"rounded-md bg-red-500/10 p-3 text-sm text-red-400",children:L.message}),o.jsx(oe,{type:"submit",disabled:R,className:"w-full",size:"lg",children:R?A?"Signing in...":"Creating account...":A?"Sign in":"Create account"}),I&&o.jsxs("div",{className:"text-center text-sm",children:[o.jsx("span",{className:"text-neutral3",children:A?"Don't have an account? ":"Already have an account? "}),o.jsx("button",{type:"button",onClick:F,className:"text-neutral6 hover:underline",children:A?"Sign up":"Sign in"})]})]}),T&&E&&o.jsxs("div",{className:"relative",children:[o.jsx("div",{className:"absolute inset-0 flex items-center",children:o.jsx("div",{className:"border-border1 w-full border-t"})}),o.jsx("div",{className:"relative flex justify-center text-sm",children:o.jsx("span",{className:"bg-surface1 text-neutral3 px-2",children:"or continue with"})})]}),T&&N&&o.jsxs(oe,{onClick:H,disabled:h,className:"w-full",size:"lg",variant:"outline",children:[N.icon&&o.jsx("span",{className:"mr-2",children:N.icon}),h?"Redirecting...":N.text||"Sign in"]})]})}function Qvs(){const[e]=$a(),t=Vr(),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(eHt,{redirectUri:n,onSuccess:i,initialMode:s,errorMessage:a})}const mp=Na.KeyValueList;function Yvs(e){return e instanceof Date?e:new Date(e)}function Kvs({log:e,onClose:t,onTraceClick:n,onSpanClick:r,onPrevious:s,onNext:a,collapsed:i,onCollapsedChange:l}){const[c,u]=g.useState(!1),d=i??c,f=l??u,p=Yvs(e.timestamp),h=e.traceId,m=e.spanId;return o.jsxs(Na,{collapsed:d,children:[o.jsxs(Na.Header,{children:[o.jsxs(Na.Heading,{children:["Log ",o.jsx("b",{children:ur(p,"MMM dd, HH:mm:ss.SSS")})]}),o.jsxs(es,{className:"ml-auto shrink-0",children:[l&&o.jsx(oe,{size:"md",tooltip:d?"Expand panel":"Collapse panel",onClick:()=>f(!d),children:d?o.jsx(sI,{}):o.jsx(OV,{})}),o.jsxs(es,{spacing:"close",children:[o.jsx(oe,{size:"md",tooltip:"Previous log",onClick:s,disabled:!s,children:o.jsx(W1,{})}),o.jsx(oe,{size:"md",tooltip:"Next log",onClick:a,disabled:!a,children:o.jsx(kV,{})})]}),o.jsx(Na.CloseButton,{onClick:t})]})]}),!d&&o.jsxs(Na.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:Y("my-8 grid gap-2","[&>button]:justify-between [&>button]:overflow-hidden"),children:[h&&o.jsxs(es,{spacing:"close",className:"w-full min-w-0",children:[o.jsxs(oe,{size:"md",className:"min-w-0 flex-1 overflow-hidden",onClick:()=>n?.(h),children:[o.jsx(zd,{}),o.jsx("span",{children:"Trace"}),o.jsxs("span",{className:"text-ui-sm text-neutral2 ml-auto min-w-0 truncate",children:["# ",h]})]}),o.jsx(ka,{content:h,size:"md",tooltip:"Copy Trace ID to clipboard"})]}),m&&o.jsxs(es,{spacing:"close",className:"w-full min-w-0",children:[o.jsxs(oe,{size:"md",className:"min-w-0 flex-1 overflow-hidden",disabled:!h||!r,onClick:()=>h&&r?.(h,m),children:[o.jsx(zd,{}),o.jsx("span",{children:"Span"}),o.jsxs("span",{className:"text-ui-sm text-neutral2 ml-auto min-w-0 truncate",children:["# ",m]})]}),o.jsx(ka,{content:m,size:"md",tooltip:"Copy Span ID to clipboard"})]})]}),o.jsxs(mp,{className:"mb-6",children:[e.entityType&&o.jsxs(o.Fragment,{children:[o.jsx(mp.Key,{children:"Entity Type"}),o.jsx(mp.Value,{children:e.entityType})]}),e.entityName&&o.jsxs(o.Fragment,{children:[o.jsx(mp.Key,{children:"Entity Name"}),o.jsx(mp.Value,{children:e.entityName})]}),e.serviceName&&o.jsxs(o.Fragment,{children:[o.jsx(mp.Key,{children:"Service"}),o.jsx(mp.Value,{children:e.serviceName})]}),e.environment&&o.jsxs(o.Fragment,{children:[o.jsx(mp.Key,{children:"Environment"}),o.jsx(mp.Value,{children:e.environment})]}),e.source&&o.jsxs(o.Fragment,{children:[o.jsx(mp.Key,{children:"Source"}),o.jsx(mp.Value,{children:e.source})]}),e.metadata&&Object.keys(e.metadata).length>0&&o.jsx(o.Fragment,{children:Object.entries(e.metadata).map(([v,y])=>o.jsxs(g.Fragment,{children:[o.jsx(mp.Key,{children:v}),o.jsx(mp.Value,{children:String(y)})]},v))})]}),e.data&&Object.keys(e.data).length>0&&o.jsx(Na.CodeSection,{title:"Data",codeStr:JSON.stringify(e.data,null,2),className:"mt-6"})]})]})}function Xvs({error:e,resource:t,errorTitle:n}){if(vs(e))return o.jsx(Fs,{});if(ys(e))return o.jsx(Es,{resource:t});if(q4(e))return o.jsx(br,{iconSlot:o.jsx(Dc,{}),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(U4(e,"logs"))return o.jsx(br,{iconSlot:o.jsx(Dc,{}),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(qa,{title:n,message:r??"Unknown error"})}function Jvs({listSlot:e,logPanelSlot:t,tracePanelSlot:n,spanPanelSlot:r,logCollapsed:s}){const a=!!t;return o.jsxs("div",{className:Y("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:Y("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 eys={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 tys({level:e}){const t=eys[e];return o.jsx(fo,{children:o.jsx("span",{className:"text-ui-sm font-semibold uppercase",style:{color:t.color},children:t.label})})}function nys({entityType:e,className:t}){const n=Y("size-3.5 shrink-0 text-neutral2",t);switch(e.toLowerCase()){case"agent":return o.jsx(Ii,{className:n,"aria-hidden":!0});case"workflow":case"workflow_run":return o.jsx(qc,{className:n,"aria-hidden":!0});case"tool":return o.jsx(zf,{className:n,"aria-hidden":!0});default:return null}}function rys({entityType:e,entityName:t}){const n=e??"";return o.jsxs(fo,{className:"flex min-w-0 items-center gap-2",children:[o.jsx(nys,{entityType:n}),t?o.jsx("span",{className:"text-ui-smd min-w-0 truncate",children:t}):"-"]})}function sys({message:e}){return o.jsx(fo,{className:"text-ui-smd text-neutral4 min-w-0 truncate font-mono",children:e})}function ays({data:e}){if(!e||Object.keys(e).length===0)return o.jsx(fo,{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(PEe,{font:"mono",children:t})}const ec=Object.assign(z4,{Top:HZ,TopCell:pC,TopCellWithTooltip:WZ,TopCellSmart:jPt,RowWrapper:DEe,RowButton:B4,RowLink:TPt,Spacer:LEe,NoMatch:VZ,DateCell:_Pt,TimeCell:CPt,LevelCell:tys,EntityCell:rys,MessageCell:sys,DataCell:ays,NextPageLoading:qZ}),ytt="6rem 9rem 5rem 10rem minmax(8rem,1fr) minmax(8rem,1fr)",iys=36,oys=8;function lys({logs:e,isLoading:t,isFetchingNextPage:n,hasNextPage:r,setEndOfListElement:s,logIdMap:a,featuredLogId:i,onLogClick:l}){const c=g.useRef(null),u=uqt({count:e.length,getScrollElement:()=>c.current,estimateSize:()=>iys,overscan:oys}),{getRowProps:d}=ao({count:e.length,containerRef:c,onNavigate:y=>u.scrollToIndex(y)}),f=g.useRef(t);if(g.useEffect(()=>{f.current&&!t&&c.current?.dispatchEvent(new Event("scroll")),f.current=t},[t]),t)return o.jsx(Fo,{columns:ytt});const p=u.getVirtualItems(),h=u.getTotalSize(),m=p[0]?.start??0,v=p.length>0?Math.max(0,h-(p[p.length-1]?.end??0)):0;return o.jsxs(ec,{columns:ytt,variant:"striped",scrollRef:c,className:"min-w-0",children:[o.jsxs(ec.Top,{children:[o.jsx(ec.TopCell,{children:"Date"}),o.jsx(ec.TopCell,{children:"Time"}),o.jsx(ec.TopCell,{children:"Level"}),o.jsx(ec.TopCell,{children:"Entity"}),o.jsx(ec.TopCell,{children:"Message"}),o.jsx(ec.TopCell,{children:"Data"})]}),e.length===0?o.jsx(ec.NoMatch,{message:"No logs match your search"}):o.jsxs(o.Fragment,{children:[o.jsx(ec.Spacer,{height:m}),p.map(y=>{const b=e[y.index];if(!b)return null;const x=a.get(b);if(!x)return null;const S=x===i;return o.jsxs(ec.RowButton,{ref:u.measureElement,"data-index":y.index,...d(y.index),onClick:()=>l(b),featured:S,variant:b.level==="error"||b.level==="fatal"?"error":"default",children:[o.jsx(ec.DateCell,{timestamp:b.timestamp}),o.jsx(ec.TimeCell,{timestamp:b.timestamp}),o.jsx(ec.LevelCell,{level:b.level}),o.jsx(ec.EntityCell,{entityType:b.entityType,entityName:b.entityName}),o.jsx(ec.MessageCell,{message:b.message}),o.jsx(ec.DataCell,{data:b.data})]},x)}),o.jsx(ec.Spacer,{height:v})]}),o.jsx(ec.NextPageLoading,{isLoading:n,hasMore:r,setEndOfListElement:s})]})}function cys({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=>uys(f,a));return o.jsxs("div",{className:Y("grid grid-cols-[1fr_auto] items-start gap-3"),children:[o.jsx(WAe,{fields:a,tokens:i,onTokensChange:l,disabled:s,autoFocusFieldId:c}),u&&o.jsx(VAe,{disabled:s,onClear:d?e:void 0,onRemoveAll:t,onSave:n,onRemoveSaved:r})]})}function uys(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 dys={"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"},Zie="MMM d, yyyy HH:mm",Gie="Pick a wider range or lower the logging level — verbose entries (debug, info) may be filtered out.";function fys({datePreset:e,dateFrom:t,dateTo:n}){return e&&e!=="all"&&e!=="custom"?{title:`No logs for ${dys[e]}`,description:Gie}:t&&n?{title:`No logs between ${ur(t,Zie)} and ${ur(n,Zie)}`,description:Gie}:t?{title:`No logs since ${ur(t,Zie)}`,description:Gie}:{title:"No logs yet",description:"Logs will appear here once agents, workflows, or tools are executed."}}const pys=({datePreset:e,dateFrom:t,dateTo:n}={})=>{const{title:r,description:s}=fys({datePreset:e,dateFrom:t,dateTo:n});return o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(br,{iconSlot:o.jsx(Dc,{}),titleSlot:r,descriptionSlot:s,actionSlot:o.jsxs(oe,{variant:"ghost",as:"a",href:"https://mastra.ai/en/docs/observability/logging",target:"_blank",rel:"noopener noreferrer",children:["Logging Documentation ",o.jsx(ea,{})]})})})},hys=20,mys=1e4;function gys(e,t,n){if(e?.pagination?.hasMore)return n+1}function vys(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 yys(e){return U4(e.state.error,"logs")||q4(e.state.error)?!1:mys}const bys=({filters:e}={})=>{const t=Ge(),{inView:n,setRef:r}=oS(),s=Xx({queryKey:["logs",e],queryFn:({pageParam:p})=>t.listLogsVNext({pagination:{page:p,perPage:hys},filters:e,orderBy:{field:"timestamp",direction:"DESC"}}),initialPageParam:0,getNextPageParam:gys,select:vys,retry:!1,refetchInterval:yys}),{hasNextPage:a,isFetchingNextPage:i,fetchNextPage:l,data:c,isLoading:u,isError:d,error:f}=s;return g.useEffect(()=>{n&&a&&!i&&l()},[n,a,i,l]),{data:c,hasNextPage:a,isFetchingNextPage:i,fetchNextPage:l,isLoading:u,isError:d,error:f,setEndOfListElement:r}},l8={AGENT:"agent",WORKFLOW:"workflow_run",SCORER:"scorer",INGEST:"rag_ingestion"},tHt=[{label:"Agent",entityType:l8.AGENT},{label:"Workflow",entityType:l8.WORKFLOW},{label:"Scorer",entityType:l8.SCORER},{label:"Ingest",entityType:l8.INGEST}],xys=[{label:"Debug",value:"debug"},{label:"Info",value:"info"},{label:"Warn",value:"warn"},{label:"Error",value:"error"},{label:"Fatal",value:"fatal"}],Gx="rootEntityType",ex="datePreset",tx="dateFrom",nx="dateTo",wys=new Set(["all","last-24h","last-3d","last-7d","last-14d","last-30d","custom"]),Tl={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"},KL=Object.keys(Tl),uRe=new Set(["tags"]),dRe="mastra:logs:saved-filters";function Sys(e,t=dRe){const n=Eys(e),r=e.get(ex);r&&n.set(ex,r);const s=e.get(tx);s&&n.set(tx,s);const a=e.get(nx);a&&n.set(nx,a);try{localStorage.setItem(t,n.toString())}catch{}}function kys(e=dRe){try{localStorage.removeItem(e)}catch{}}function btt(e=dRe){try{const t=localStorage.getItem(e);if(!t)return null;const n=new URLSearchParams(t);return n.toString()?n:null}catch{return null}}function Oys(e){if(e.has(ex)||e.has(tx)||e.has(nx)||e.has(Gx))return!0;for(const t of KL)if(e.has(Tl[t]))return!0;return!1}function _ys({availableTags:e,availableRootEntityNames:t,availableServiceNames:n,availableEnvironments:r,loading:s}){const a=[{id:"rootEntityType",label:"Primitive Type",kind:"pick-multi",searchable:!1,options:tHt.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:xys.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 Cys(e){const t=[],n=new Map([[Gx,"rootEntityType"]]);for(const s of KL)n.set(Tl[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),uRe.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 Eys(e){const t=new URLSearchParams,n=e.get(Gx);n&&t.set(Gx,n);for(const r of KL){const s=Tl[r];if(uRe.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 Tys(e,t){e.delete(Gx);for(const n of KL)e.delete(Tl[n]);for(const n of t){if(n.fieldId==="rootEntityType"&&typeof n.value=="string"){e.set(Gx,n.value);continue}const r=Tl[n.fieldId];if(r){if(uRe.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 jys({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 Nys(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 Iys="Filters setting for Logs saved",Ays="Filters setting for Logs cleared up";function Rys(e,t,n){const{storageKey:r,messages:s,skipHydration:a}={},[i,l]=g.useState(()=>btt(r)!==null),c=g.useCallback(()=>{Sys(e,r),l(!0);const f=s?.saved??Iys;f!==!1&&ze.success(f)},[e,r,s?.saved]),u=g.useCallback(()=>{kys(r),l(!1);const f=s?.cleared??Ays;f!==!1&&ze.success(f)},[r,s?.cleared]),d=g.useRef(!1);return g.useEffect(()=>{if(a||d.current||(d.current=!0,Oys(e)))return;const f=btt(r);f&&t(p=>{const h=new URLSearchParams(p);for(const[m,v]of f)h.append(m,v);return h},{replace:!0})},[]),{hasSavedFilters:i,handleSave:c,handleRemoveSaved:u}}function Pys(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 $ys(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,Pys(`${r}${n.message??""}${n.data?JSON.stringify(n.data):""}`))}return t}function Mys(e,t,n,r){const s=g.useMemo(()=>$ys(e),[e]),a=g.useMemo(()=>{const h=new Map;for(const[m,v]of e.entries()){const y=s.get(v);y&&h.set(y,{log:v,idx:m})}return h},[e,s]),l=(t?a.get(t):void 0)?.idx??-1,c=l>=0?e[l]??null:null,u=g.useCallback(h=>s.get(h),[s]),d=g.useCallback(h=>{const m=s.get(h);if(m){if(t===m){n({logId:null});return}n(r?{logId:m,traceId:h.traceId??null,spanId:null}:{logId:m})}},[s,t,r,n]),f=l>0?()=>{const h=e[l-1];if(!h)return;const m=s.get(h);m&&n(r?{logId:m,traceId:h.traceId??null,spanId:null}:{logId:m})}:void 0,p=l>=0&&l<e.length-1?()=>{const h=e[l+1];if(!h)return;const m=s.get(h);m&&n(r?{logId:m,traceId:h.traceId??null,spanId:null}:{logId:m})}:void 0;return{logIdMap:s,getLogId:u,featuredLog:c,handleLogClick:d,handlePreviousLog:f,handleNextLog:p}}const t0e="logId",n0e="traceId",r0e="spanId",jP=1440*60*1e3,Dys={"last-24h":jP,"last-3d":3*jP,"last-7d":7*jP,"last-14d":14*jP,"last-30d":30*jP};function c8(e){e.delete(t0e),e.delete(n0e),e.delete(r0e)}function Lys(e,t,n){const{onRemoveAll:r}={},s=g.useMemo(()=>{const _=e.get(ex);return _&&wys.has(_)?_:"last-24h"},[e]),a=e.get(tx),i=e.get(nx),l=g.useMemo(()=>{if(s==="custom"){if(!a)return;const C=new Date(a);return Number.isNaN(C.getTime())?void 0:C}if(s==="all")return;const _=Dys[s];return _?new Date(Date.now()-_):void 0},[s,a]),c=g.useMemo(()=>{if(s!=="custom"||!i)return;const _=new Date(i);return Number.isNaN(_.getTime())?void 0:_},[s,i]),u=g.useRef(s);u.current=s;const d=e.get(t0e),f=e.get(n0e),p=e.get(r0e),h=g.useMemo(()=>tHt.find(_=>_.entityType===e.get(Gx)),[e]),m=g.useMemo(()=>Cys(e),[e]),v=g.useCallback(_=>{t(C=>{const T=new URLSearchParams(C);for(const[E,N]of Object.entries(_)){const I=E==="logId"?t0e:E==="traceId"?n0e:r0e;N?T.set(I,N):T.delete(I)}return T},{replace:!0})},[t]),y=g.useCallback(_=>{t(C=>{const T=new URLSearchParams(C);return Tys(T,_),c8(T),T},{replace:!0})},[t]),b=y,x=g.useCallback((_,C)=>{if(u.current!=="custom")return;const T=C==="from"?tx:nx;t(E=>{const N=new URLSearchParams(E);return _?N.set(T,_.toISOString()):N.delete(T),c8(N),N},{replace:!0})},[t]),S=g.useCallback(_=>{u.current=_,t(C=>{const T=new URLSearchParams(C);return _==="last-24h"?(T.delete(ex),T.delete(tx),T.delete(nx)):_==="custom"?T.set(ex,"custom"):(T.set(ex,_),T.delete(tx),T.delete(nx)),c8(T),T},{replace:!0})},[t]),k=g.useCallback(()=>{t(_=>{const C=new URLSearchParams(_);C.delete(Gx);for(const T of KL)C.delete(Tl[T]);return C.delete(ex),C.delete(tx),C.delete(nx),c8(C),C},{replace:!0}),r?.()},[t,r]);return g.useMemo(()=>({searchParams:e,setSearchParams:t,datePreset:s,selectedDateFrom:l,selectedDateTo:c,datePresetRef:u,featuredLogId:d,featuredTraceId:f,featuredSpanId:p,selectedEntityOption:h,filterTokens:m,handleFeaturedChange:v,handleFilterTokensChange:b,handleDateChange:x,handleDatePresetChange:S,handleRemoveAll:k,applyFilterTokens:y}),[e,t,s,l,c,u,d,f,p,h,m,v,b,x,S,k,y])}const Tb=Na.KeyValueList;function Fys({spanId:e,span:t,isLoading:n,onClose:r}){const s=$Q(t?.startedAt,t?.endedAt),a=gV(t?.startedAt),i=gV(t?.endedAt);return o.jsxs(Na,{children:[o.jsxs(Na.Header,{children:[o.jsxs(Na.Heading,{children:["Span ",o.jsxs("b",{children:["# ",e]})]}),o.jsx(Na.CloseButton,{onClick:r})]}),n?o.jsx(Na.LoadingData,{children:"Loading span..."}):t?o.jsxs(Na.Content,{children:[o.jsxs(Tb,{children:[t.spanType&&o.jsxs(o.Fragment,{children:[o.jsx(Tb.Key,{children:"Type"}),o.jsx(Tb.Value,{children:t.spanType})]}),a&&o.jsxs(o.Fragment,{children:[o.jsx(Tb.Key,{children:"Started"}),o.jsx(Tb.Value,{children:a})]}),i&&o.jsxs(o.Fragment,{children:[o.jsx(Tb.Key,{children:"Ended"}),o.jsx(Tb.Value,{children:i})]}),s&&o.jsxs(o.Fragment,{children:[o.jsx(Tb.Key,{children:"Duration"}),o.jsx(Tb.Value,{children:s})]})]}),o.jsx("br",{}),o.jsx(Na.CodeSection,{title:"Input",icon:o.jsx(xx,{}),codeStr:JSON.stringify(t.input??null,null,2)}),o.jsx(Na.CodeSection,{title:"Output",icon:o.jsx(tm,{}),codeStr:JSON.stringify(t.output??null,null,2)}),o.jsx(Na.CodeSection,{title:"Metadata",icon:o.jsx(sc,{}),codeStr:JSON.stringify(t.metadata??null,null,2)}),o.jsx(Na.CodeSection,{title:"Attributes",icon:o.jsx(sc,{}),codeStr:JSON.stringify(t.attributes??null,null,2)})]}):o.jsx(Na.NoData,{children:"Span not found."})]})}function zys({traceId:e,spans:t,isLoading:n,onClose:r,onSpanSelect:s,selectedSpanId:a}){const i=g.useMemo(()=>YQ(t??[]),[t]),[l,c]=g.useState([]);g.useEffect(()=>{i.length>0&&c(UAe(i))},[i]);const u=d=>{s?.(a===d?void 0:d)};return o.jsxs(Na,{children:[o.jsxs(Na.Header,{children:[o.jsxs(Na.Heading,{children:["Trace ",o.jsxs("b",{children:["# ",e]})]}),o.jsx(Na.CloseButton,{onClick:r})]}),n?o.jsx(Na.LoadingData,{children:"Loading trace..."}):i.length===0?o.jsx(Na.NoData,{children:"No spans found for this trace."}):o.jsx(Na.Content,{children:o.jsx(aVt,{hierarchicalSpans:i,onSpanClick:u,selectedSpanId:a??void 0,expandedSpanIds:l,setExpandedSpanIds:c})})]})}function Bys(){const[e,t]=$a(),n=Lys(e,t),r=Rys(e,t),[s,a]=g.useState(),[i,l]=g.useState(!1),{data:c=[],isPending:u}=JAe(),{data:d=[],isPending:f}=YAe({entityType:n.selectedEntityOption?.entityType,rootOnly:!0}),{data:p=[],isPending:h}=KAe(),{data:m=[],isPending:v}=XAe(),y=g.useMemo(()=>_ys({availableTags:c,availableRootEntityNames:d,availableServiceNames:m,availableEnvironments:p,loading:{tags:u,entityNames:f,serviceNames:v,environments:h}}),[c,d,m,p,u,f,v,h]),b=g.useMemo(()=>jys({rootEntityType:n.selectedEntityOption?.entityType,dateFrom:n.selectedDateFrom,dateTo:n.selectedDateTo,tokens:n.filterTokens}),[n.filterTokens,n.selectedDateFrom,n.selectedDateTo,n.selectedEntityOption]),{data:x=[],isLoading:S,error:k,isFetchingNextPage:_,hasNextPage:C,setEndOfListElement:T}=bys({filters:b}),{logIdMap:E,featuredLog:N,handleLogClick:I,handlePreviousLog:A,handleNextLog:R}=Mys(x,n.featuredLogId,n.handleFeaturedChange,n.featuredTraceId),{data:L,isLoading:M}=jAe(n.featuredTraceId??null),{data:z,isLoading:H}=BAe(n.featuredTraceId??"",n.featuredSpanId??""),F=g.useCallback(()=>n.applyFilterTokens(Nys(y,n.filterTokens)),[y,n]),B=g.useCallback(()=>n.handleFeaturedChange({logId:null}),[n]),V=g.useCallback(K=>n.handleFeaturedChange({traceId:K,spanId:null}),[n]),D=g.useCallback((K,ne)=>n.handleFeaturedChange({traceId:K,spanId:ne}),[n]),Z=g.useCallback(()=>{n.handleFeaturedChange({traceId:null,spanId:null}),l(!1)},[n]),U=g.useCallback(()=>n.handleFeaturedChange({spanId:null}),[n]),P=g.useCallback(K=>n.handleFeaturedChange({spanId:K??null}),[n]),q=o.jsxs(Bt.TopArea,{children:[o.jsx(Bt.Row,{children:o.jsxs(Bt.Column,{className:"flex flex-wrap items-start justify-start gap-2",children:[o.jsx(H4,{preset:n.datePreset,onPresetChange:n.handleDatePresetChange,dateFrom:n.selectedDateFrom,dateTo:n.selectedDateTo,onDateChange:n.handleDateChange,disabled:S,presets:["last-24h","last-3d","last-7d","last-14d","last-30d","custom"]}),o.jsx(ZAe,{fields:y,tokens:n.filterTokens,onTokensChange:n.handleFilterTokensChange,disabled:S,onStartTextFilter:a})]})}),o.jsx(cys,{isLoading:S,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(Bt,{width:"wide",height:"full",children:[q,o.jsx(Bt.MainArea,{isCentered:!0,children:o.jsx(Xvs,{error:k,resource:"logs",errorTitle:"Failed to load logs"})})]});const G=!!n.selectedEntityOption||n.filterTokens.length>0;return x.length===0&&!S&&!G?o.jsxs(Bt,{width:"wide",height:"full",children:[q,o.jsx(Bt.MainArea,{isCentered:!0,children:o.jsx(pys,{datePreset:n.datePreset,dateFrom:n.selectedDateFrom,dateTo:n.selectedDateTo})})]}):o.jsxs(Bt,{width:"wide",height:"full",children:[q,o.jsx(Jvs,{logCollapsed:i,listSlot:o.jsx(lys,{logs:x,isLoading:S,isFetchingNextPage:_,hasNextPage:C,setEndOfListElement:T,logIdMap:E,featuredLogId:n.featuredLogId,onLogClick:I}),logPanelSlot:N?o.jsx(Kvs,{log:N,onClose:B,onTraceClick:V,onSpanClick:D,onPrevious:A,onNext:R,collapsed:i,onCollapsedChange:l}):null,tracePanelSlot:n.featuredTraceId?o.jsx(zys,{traceId:n.featuredTraceId,spans:L?.spans,isLoading:M,onClose:Z,onSpanSelect:P,selectedSpanId:n.featuredSpanId}):null,spanPanelSlot:n.featuredTraceId&&n.featuredSpanId?o.jsx(Fys,{spanId:n.featuredSpanId,span:z?.span,isLoading:H,onClose:U}):null})]})}function Uys({server:e,rowProps:t}){const{paths:n,Link:r}=un(),a=Ge().options.baseUrl,i=a?`${a}/api/mcp/${e.id}/sse`:"",{data:l}=kBt(e),c=Object.values(l||{}),u=c.length,d=c.filter(h=>h.toolType==="agent").length,f=c.filter(h=>h.toolType==="workflow").length,p=Jh(e.name,50);return o.jsxs(he.RowLink,{to:n.mcpServerLink(e.id),LinkComponent:r,...t,children:[o.jsx(he.NameCell,{children:p}),o.jsx(he.DescriptionCell,{children:i}),o.jsx(he.TextCell,{className:"text-center",children:d||""}),o.jsx(he.TextCell,{className:"text-center",children:u||""}),o.jsx(he.TextCell,{className:"text-center",children:f||""})]})}function qys({mcpServers:e,isLoading:t,search:n=""}){const r=g.useMemo(()=>{const i=n.toLowerCase();return e.filter(l=>l.name?.toLowerCase().includes(i)||l.id?.toLowerCase().includes(i))},[e,n]),{containerRef:s,getRowProps:a}=ao({count:r.length});return t?o.jsx(Fo,{columns:"auto 1fr auto auto auto"}):o.jsxs(he,{columns:"auto 1fr auto auto auto",variant:"striped",scrollRef:s,children:[o.jsxs(he.Top,{children:[o.jsx(he.TopCell,{children:"Name"}),o.jsx(he.TopCell,{children:"URL"}),o.jsx(he.TopCellSmart,{long:"Agents",short:o.jsx(Ii,{}),tooltip:"Agent Tools",className:"text-center"}),o.jsx(he.TopCellSmart,{long:"Tools",short:o.jsx(zf,{}),tooltip:"Tools",className:"text-center"}),o.jsx(he.TopCellSmart,{long:"Workflows",short:o.jsx(qc,{}),tooltip:"Workflow Tools",className:"text-center"})]}),r.length===0&&n?o.jsx(he.NoMatch,{message:"No MCP Servers match your search"}):null,r.map((i,l)=>o.jsx(Uys,{server:i,rowProps:a(l)},i.id))]})}const Vys=()=>o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(br,{iconSlot:o.jsx(Dc,{}),titleSlot:"No MCP Servers yet",descriptionSlot:o.jsxs(o.Fragment,{children:["MCP servers are not configured yet. ",o.jsx("br",{}),"More information in the documentation."]}),actionSlot:o.jsxs(oe,{variant:"ghost",as:"a",href:"https://mastra.ai/docs/tools-mcp/mcp-overview",target:"_blank",rel:"noopener noreferrer",children:["MCP Documentation ",o.jsx(ea,{})]})})}),Hys=()=>{const{data:e=[],isLoading:t,error:n}=CQ(),[r,s]=g.useState("");return n&&vs(n)?o.jsx(Jn,{children:o.jsx(Fs,{})}):n&&ys(n)?o.jsx(Jn,{children:o.jsx(Es,{resource:"MCP servers"})}):n?o.jsx(Jn,{children:o.jsx(qa,{title:"Failed to load MCP servers",message:n.message})}):e.length===0&&!t?o.jsx(Jn,{children:o.jsx(Vys,{})}):o.jsxs(Bt,{children:[o.jsx(Bt.TopArea,{children:o.jsx("div",{className:"max-w-120",children:o.jsx(od,{onSearch:s,label:"Filter MCP servers",placeholder:"Filter by name"})})}),o.jsx(qys,{mcpServers:e,isLoading:t,search:r})]})},Wys=(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 Zys({tools:e,agents:t,isLoading:n,search:r=""}){const{paths:s,Link:a}=un(),i=g.useMemo(()=>Wys(e,t),[e,t]),l=g.useMemo(()=>i.filter(d=>d.id.toLowerCase().includes(r.toLowerCase())),[i,r]),{containerRef:c,getRowProps:u}=ao({count:l.length});return n?o.jsx(Fo,{columns:"auto 1fr auto"}):o.jsxs(he,{columns:"auto 1fr auto",variant:"striped",scrollRef:c,children:[o.jsxs(he.Top,{children:[o.jsx(he.TopCell,{children:"Name"}),o.jsx(he.TopCell,{children:"Description"}),o.jsx(he.TopCellSmart,{long:"Agents",short:o.jsx(Ii,{}),tooltip:"Attached Agents",className:"text-center"})]}),l.length===0&&r?o.jsx(he.NoMatch,{message:"No Tools match your search"}):null,l.map((d,f)=>{const p=Jh(d.id,50),h=Jh(d.description??"",200),m=d.agents.length;return o.jsxs(he.RowLink,{to:s.toolLink(d.id),LinkComponent:a,...u(f),children:[o.jsx(he.NameCell,{children:p}),o.jsx(he.DescriptionCell,{children:h}),o.jsx(he.TextCell,{className:"text-center",children:m||""})]},d.id)})]})}const Gys=()=>o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(br,{iconSlot:o.jsx(Dc,{}),titleSlot:"No Tools yet",descriptionSlot:o.jsxs(o.Fragment,{children:["Mastra tools are not configured yet. ",o.jsx("br",{}),"More information in the documentation."]}),actionSlot:o.jsxs(oe,{variant:"ghost",as:"a",href:"https://mastra.ai/docs/agents/using-tools-and-mcp",target:"_blank",rel:"noopener noreferrer",children:["Tools Documentation ",o.jsx(ea,{})]})})}),Qys=()=>{const e=Ge();return kn({mutationFn:async({toolId:t,input:n,requestContext:r})=>{const s=new M_;Object.entries(r??{}).forEach(([a,i])=>{s.set(a,i)});try{return await e.getTool(t).execute({data:n,requestContext:s})}catch(a){throw ze.error("Error executing dev tool"),console.error("Error executing dev tool:",a),a}}})},Yys=({toolId:e})=>{const{canExecute:t}=Eo(),n=t("tools"),{data:r={}}=zm(),s=g.useMemo(()=>{for(const v of Object.values(r))if(v.tools){const y=Object.values(v.tools).find(b=>b.id===e);if(y)return y}return null},[r,e]),{data:a,isLoading:i,error:l}=lRr(e,{enabled:!s}),c=s||a,{mutateAsync:u,isPending:d,data:f}=Qys(),{requestContext:p}=bs();g.useEffect(()=>{if(l){const v=l instanceof Error?l.message:"Failed to load tool";ze.error(`Error loading tool: ${v}`)}},[l]);const h=async(v,y)=>{if(!c)return;const b={...p??{},...y??{}};return u({toolId:c.id,input:v,requestContext:b})},m=c?.inputSchema?xm(Tx(c?.inputSchema)):Ss({});return i?o.jsxs("div",{className:"p-6",children:[o.jsx(Ct,{className:"mb-4 h-8 w-48"}),o.jsx(Ct,{className:"h-32 w-full"})]}):l?null:c?n?o.jsx(rAe,{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(ve,{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(ve,{variant:"header-md",className:"text-neutral3",children:"Tool not found"})})};function Kys({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}=JI(),{data:p={},isLoading:h,isError:m,error:v}=zm(),{navigate:y,paths:b}=un();g.useEffect(()=>{if(d){const _=f instanceof Error?f.message:"Failed to load tools";ze.error(`Error loading tools: ${_}`)}},[d,f]),g.useEffect(()=>{if(m){const _=v instanceof Error?v.message:"Failed to load agents";ze.error(`Error loading agents: ${_}`)}},[m,v]);const x=new Map;Object.values(p).forEach(_=>{_.tools&&Object.values(_.tools).forEach(C=>{x.has(C.id)||x.set(C.id,C)})}),Object.values(c).forEach(_=>{x.has(_.id)||x.set(_.id,_)});const S=Array.from(x.values()).map(_=>({label:_.id,value:_.id})),k=_=>{t?t(_):_&&_!==e&&y(b.toolLink(_))};return o.jsx(zl,{options:S,value:e,onValueChange:k,placeholder:u||h?"Loading tools...":n,searchPlaceholder:r,emptyText:s,className:a,disabled:i||u||h||d||m,variant:l})}const Xys=({isLoading:e,server:t})=>{const[{sseUrl:n,httpStreamUrl:r},s]=g.useState({sseUrl:"",httpStreamUrl:""});if(g.useEffect(()=>{if(!t)return;const i=window.MASTRA_SERVER_HOST,l=window.MASTRA_SERVER_PORT;let c=null;i&&l&&(c=`http://${i}:${l}`);const u=c||"http://localhost:4111",d=`${u}/api/mcp/${t.id}/sse`,f=`${u}/api/mcp/${t.id}/mcp`;s({sseUrl:d,httpStreamUrl:f})},[t]),e)return null;if(!t)return o.jsx(py,{children:o.jsx(ve,{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(py,{isDivided:!0,children:[o.jsxs("div",{className:"mx-auto w-full max-w-2xl px-8 py-12",children:[o.jsx(ve,{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(wt,{icon:o.jsx(nVt,{}),size:"sm",children:"Version"}),o.jsx(wt,{size:"sm",children:t.version_detail.version})]}),o.jsx(ve,{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(wt,{icon:o.jsx("span",{className:"text-accent1 mr-1 w-6 font-mono font-medium",children:"HTTP"}),children:"Regular HTTP Endpoint"}),o.jsx(ve,{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(ve,{className:"bg-surface4 rounded-lg px-2 py-1",children:r}),o.jsx("div",{className:"pt-1",children:o.jsx(ka,{tooltip:"Copy HTTP Stream URL",content:r})})]})]}),o.jsxs("div",{className:"border-border1 bg-surface3 rounded-lg border p-4",children:[o.jsx(wt,{icon:o.jsx("span",{className:"text-accent1 mr-1 w-6 font-mono font-medium",children:"SSE"}),children:"Server-Sent Events"}),o.jsx(ve,{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(ve,{className:"bg-surface4 rounded-lg px-2 py-1",children:n}),o.jsx("div",{className:"pt-1",children:o.jsx(ka,{tooltip:"Copy SSE URL",content:n})})]})]}),o.jsxs("div",{className:"border-border1 bg-surface3 rounded-lg border p-4",children:[o.jsx(wt,{icon:o.jsx("span",{className:"text-accent1 mr-1 w-6 font-mono font-medium",children:"CLI"}),children:"Command Line"}),o.jsx(ve,{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(ve,{className:"bg-surface4 rounded-lg px-2 py-1",children:a}),o.jsx("div",{className:"pt-1",children:o.jsx(ka,{tooltip:"Copy Command Line Config",content:a})})]})]})]})]}),o.jsx("div",{className:"border-border1 h-full overflow-y-scroll border-l",children:o.jsx(Jys,{server:t})})]})},Jys=({server:e})=>{const{data:t={},isLoading:n}=kBt(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(We,{size:"lg",className:"bg-surface4 rounded-md p-1",children:o.jsx(TC,{})}),o.jsx(ve,{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(tbs,{tool:a,serverId:e.id},s)})})]})};function ebs(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 tbs=({tool:e,serverId:t})=>{const n=g.useRef(null),{Link:r,paths:s}=un(),a=NBt[e.toolType||"tool"],i=ebs(e._meta);return o.jsxs(Hf,{onClick:()=>n.current?.click(),children:[o.jsx(x3t,{children:o.jsx(a,{className:"group-hover/entity:text-accent6"})}),o.jsxs(Zf,{children:[o.jsx(Wf,{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(wt,{size:"xs",children:"App"})]})}),o.jsx(oh,{children:e.description})]})]})},nbs=()=>{const{serverId:e}=hr(),{data:t=[],isLoading:n}=CQ(),r=t.find(s=>s.id===e);return o.jsx("div",{className:"h-full w-full overflow-hidden",children:o.jsx(Xys,{isLoading:n,server:r})})};function rbs(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 sbs=({toolId:e,serverId:t})=>{const{canExecute:n}=Eo(),r=n("tools"),s=Ge(),{data:a,isLoading:i,error:l}=eAe(t,e),{mutateAsync:c,isPending:u,data:d}=_rs(t,e),f=a?rbs(a._meta):void 0,{data:p}=ht({queryKey:["mcp-app-resource",t,f],queryFn:async()=>f?(await s.readMcpServerResource(t,f)).contents[0]?.text??null:null,enabled:!!f}),h=g.useCallback(async(y,b)=>await c(b),[c]);g.useEffect(()=>{if(l){const y=l instanceof Error?l.message:"Failed to load tool";ze.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(Ct,{className:"mb-4 h-8 w-48"}),o.jsx(Ct,{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(ve,{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(ve,{variant:"ui-sm",className:"text-neutral3",children:"You don't have permission to execute tools."})});let v;try{v=xm(a.inputSchema)}catch(y){console.error("Error processing input schema:",y),ze.error("Failed to process tool input schema."),v=Ss({})}return o.jsxs("div",{className:"flex flex-col gap-4",children:[p&&o.jsx("div",{className:"border-border1 border-b p-4",children:o.jsx(SBt,{html:p,toolName:a.name??a.id,onToolCall:h})}),o.jsx(rAe,{executionResult:d,isExecutingTool:u,zodInputSchema:v,handleExecuteTool:m,toolDescription:a.description||"",toolId:a.id})]})},abs=()=>{const{serverId:e,toolId:t}=hr(),{data:n,isLoading:r}=eAe(e,t);return r||!n?null:o.jsx("div",{className:"h-full w-full overflow-y-auto",children:o.jsx(sbs,{toolId:t,serverId:e})})},nHt=[{label:"Agent",entityType:"agent"},{label:"Workflow",entityType:"workflow_run"},{label:"Scorer",entityType:"scorer"},{label:"Ingest",entityType:"rag_ingestion"}],KN="rootEntityType",XN={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"},aY=Object.keys(XN),fRe="mastra:metrics:saved-filters";function ibs(e){const t=dbs(e);try{localStorage.setItem(fRe,t.toString())}catch{}}function obs(){try{localStorage.removeItem(fRe)}catch{}}function rHt(){try{const e=localStorage.getItem(fRe);if(!e)return null;const t=new URLSearchParams(e);return t.toString()?t:null}catch{return null}}function lbs(e){if(e.has(KN))return!0;for(const t of aY)if(e.has(XN[t]))return!0;return!1}function cbs({availableTags:e,availableEntityNames:t,availableServiceNames:n,availableEnvironments:r,loading:s}){const a=[{id:"rootEntityType",label:"Primitive Type",kind:"pick-multi",searchable:!1,options:nHt.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 ubs(e){const t=[],n=new Map([[KN,"rootEntityType"]]);for(const s of aY)n.set(XN[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 dbs(e){const t=new URLSearchParams,n=e.getAll(KN);for(const r of n)t.append(KN,r);for(const r of aY){const s=XN[r],a=e.getAll(s);for(const i of a)t.append(s,i)}return t}function fbs(e,t){e.delete(KN);for(const n of aY)e.delete(XN[n]);for(const n of t){const r=n.fieldId==="rootEntityType"?KN:XN[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 pbs="Any";function xtt(e){const t=e.trim();return t===""||t===pbs}const hbs=new Set(nHt.map(e=>e.entityType));function wtt(e){const t=e.trim();return hbs.has(t)?t:void 0}function mbs(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=>!xtt(a));if(s.length===0)continue;if(r==="tags")t.tags=s;else if(r==="rootEntityType"){const a=s[0],i=a!==void 0?wtt(a):void 0;i&&(t.rootEntityType=i)}else t[r]=s[0]}else if(typeof n.value=="string"){if(xtt(n.value))continue;const s=n.value.trim();if(r==="rootEntityType"){const a=wtt(s);a&&(t.rootEntityType=a)}else t[r]=s}}return t}const sHt=[{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"}],gbs=new Set(sHt.map(e=>e.value));function vbs(e){return typeof e=="string"&&(gbs.has(e)||e==="custom")}const aHt=g.createContext({datePreset:"24h",setDatePreset:()=>{},customRange:void 0,setCustomRange:()=>{},dateRangeLabel:"Last 24 hours",filterTokens:[],setFilterTokens:()=>{},dimensionalFilter:{},dimensionalFilterKey:"{}",tracesBasePath:void 0,logsBasePath:void 0});function iY(){return g.useContext(aHt)}function ybs(e,t){return e!=="custom"?sHt.find(n=>n.value===e)?.label??e:t?.from?t.to?`${ur(t.from,"MMM d, yyyy")} – ${ur(t.to,"MMM d, yyyy")}`:ur(t.from,"MMM d, yyyy"):"Custom range"}function bbs({children:e,preset:t,filterTokens:n,onPresetChange:r,onFilterTokensChange:s,customRange:a,onCustomRangeChange:i,tracesBasePath:l,logsBasePath:c}){const u=g.useMemo(()=>JSON.stringify(n),[n]),d=g.useMemo(()=>n,[u]),f=g.useMemo(()=>mbs(d),[d]),p=g.useMemo(()=>JSON.stringify(f),[f]),h=ybs(t,a),m=g.useMemo(()=>({datePreset:t,setDatePreset:r,customRange:a,setCustomRange:i??(()=>{}),dateRangeLabel:h,filterTokens:d,setFilterTokens:s,dimensionalFilter:f,dimensionalFilterKey:p,tracesBasePath:l,logsBasePath:c}),[t,r,a,i,h,d,s,f,p,l,c]);return o.jsx(aHt.Provider,{value:m,children:e})}const xbs=["last-24h","last-3d","last-7d","last-14d","last-30d","custom"];function wbs(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 Sbs(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 kbs(){const{datePreset:e,setDatePreset:t,customRange:n,setCustomRange:r}=iY(),s=g.useRef(e);s.current=e;const a=g.useRef(n);return a.current=n,o.jsx(H4,{preset:wbs(e),onPresetChange:i=>{const l=Sbs(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:xbs})}const s0e=1440*60*1e3,Obs={"24h":s0e,"3d":4320*60*1e3,"7d":10080*60*1e3,"14d":336*60*60*1e3,"30d":720*60*60*1e3};function _bs(e,t,n){if(e!=="custom"){const r=Obs[e]??s0e;return{start:new Date(n-r),end:new Date(n)}}return{start:t?.from??new Date(n-s0e),end:t?.to??new Date(n)}}function Vm(){const{datePreset:e,customRange:t,dimensionalFilter:n,dimensionalFilterKey:r}=iY(),s=g.useRef(null),a=e==="custom"?`custom:${t?.from?.getTime()??""}:${t?.to?.getTime()??""}`:`preset:${e}`;(!s.current||s.current.key!==a)&&(s.current={key:a,anchor:Date.now()});const i=s.current.anchor,l=g.useMemo(()=>_bs(e,t,i),[e,t,i]),c=g.useMemo(()=>({timestamp:l,...n}),[l,r]),u=g.useMemo(()=>`${a}|${r}`,[a,r]);return{datePreset:e,customRange:t,timestamp:l,filters:c,dimensionalFilter:n,filterKey:u}}function iHt(){const e=Ge(),{filters:t,filterKey:n}=Vm();return ht({queryKey:["metrics","agent-runs-kpi",n],queryFn:()=>e.getMetricAggregate({name:["mastra_agent_duration_ms"],aggregation:"count",filters:t,comparePeriod:"previous_period"})})}function XL({href:e,LinkComponent:t="a"}){return o.jsx(oe,{as:t,href:e,variant:"ghost",size:"icon-md",tooltip:"View in Traces","aria-label":"View in Traces",children:o.jsx(ac,{})})}function Cbs({href:e,LinkComponent:t="a"}){return o.jsx(oe,{as:t,href:e,variant:"ghost",size:"icon-md",tooltip:"View errors in Logs","aria-label":"View errors in Logs",children:o.jsx(mXt,{})})}function Ebs(e){return e==="agents"||e==="workflows"||e==="tools"}function Stt(e,t){if(e.length===0)return"0";const n=e.reduce((r,s)=>{const a=s[t];return r+(typeof a=="number"&&Number.isFinite(a)?a:0)},0);return`${Math.round(n/e.length)}`}function Tbs(e){const t=e;return typeof t?.tsMs=="number"&&Number.isFinite(t.tsMs)}const jbs=[{dataKey:"p50",label:"p50",color:Wp.blue,aggregate:e=>({value:Stt(e,"p50"),suffix:"avg ms"})},{dataKey:"p95",label:"p95",color:Wp.yellow,aggregate:e=>({value:Stt(e,"p95"),suffix:"avg ms"})}];function Qie({data:e,onPointClick:t}){return e.length===0?o.jsx(Vt.NoData,{message:"No latency data yet"}):o.jsx(RD,{data:e,series:jbs,onPointClick:t?n=>Tbs(n)?t(n):void 0:void 0})}function Nbs({data:e,isLoading:t,isError:n,onPointClick:r,actions:s}){const a=(e?.agentData.length??0)>0,i=(e?.workflowData.length??0)>0,l=(e?.toolData.length??0)>0,c={agents:a,workflows:i,tools:l},u=a?"agents":i?"workflows":l?"tools":"agents",[d,f]=g.useState("agents"),p=c[d]?d:u,h=typeof s=="function"?s(p):s,m=!!e&&(e.agentData.length>0||e.workflowData.length>0||e.toolData.length>0),v=e?Object.values(e).filter(Array.isArray).flat().map(b=>b.p50).filter(b=>typeof b=="number"):[],y=v.length>0?`${Math.round(v.reduce((b,x)=>b+x,0)/v.length)}ms`:"—";return o.jsxs(Vt,{children:[o.jsxs(Vt.TopBar,{children:[o.jsx(Vt.TitleAndDescription,{title:"Latency",description:"Hourly p50 and p95 latency."}),m&&o.jsx(Vt.Summary,{value:y,label:"Avg p50"}),h?o.jsx(Vt.Actions,{children:h}):null]}),t?o.jsx(Vt.Loading,{}):n?o.jsx(Vt.Error,{message:"Failed to load latency data"}):o.jsx(Vt.Content,{children:m?o.jsxs(wc,{value:p,onValueChange:b=>{Ebs(b)&&c[b]&&f(b)},defaultTab:u,className:"overflow-visible",children:[o.jsxs(xc,{children:[o.jsx(Pr,{value:"agents",disabled:!a,disabledTooltip:"No agent latency data for this period",children:"Agents"}),o.jsx(Pr,{value:"workflows",disabled:!i,disabledTooltip:"No workflow latency data for this period",children:"Workflows"}),o.jsx(Pr,{value:"tools",disabled:!l,disabledTooltip:"No tool latency data for this period",children:"Tools"})]}),o.jsx(fs,{value:"agents",children:o.jsx(Qie,{data:e.agentData,onPointClick:r?b=>r("agents",b):void 0})}),o.jsx(fs,{value:"workflows",children:o.jsx(Qie,{data:e.workflowData,onPointClick:r?b=>r("workflows",b):void 0})}),o.jsx(fs,{value:"tools",children:o.jsx(Qie,{data:e.toolData,onPointClick:r?b=>r("tools",b):void 0})})]}):o.jsx(Vt.NoData,{message:"No latency data yet"})})]})}function Ibs(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 Abs(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 oHt(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=Ibs(s);l&&e.set(t,l)}function $o(e,t,n){typeof n=="string"&&n.length>0&&e.set(t,n)}function lHt(e,t,n){if(!(!Array.isArray(n)||n.length===0))for(const r of n)r&&e.append(t,r)}function ktt({preset:e,customRange:t,dashboardFilter:n,scope:r,tracesBasePath:s="/traces"}){const a=new URLSearchParams;a.set($w,"branches"),oHt(a,Mw,Dw,Lw,e,t,r.window);const i=r.rootEntityType??n.rootEntityType;i&&a.set(Wx,i),r.status&&a.set(Zx,r.status),$o(a,El.entityName,r.entityName??n.entityName),$o(a,El.threadId,r.threadId??n.threadId),$o(a,El.resourceId,r.resourceId??n.resourceId),$o(a,El.entityId,n.entityId),$o(a,El.runId,n.runId),$o(a,El.sessionId,n.sessionId),$o(a,El.requestId,n.requestId),$o(a,El.userId,n.userId),$o(a,El.organizationId,n.organizationId),$o(a,El.experimentId,n.experimentId),$o(a,El.serviceName,n.serviceName),$o(a,El.environment,n.environment),lHt(a,El.tags,n.tags);const l=a.toString();return l?`${s}?${l}`:s}function Rbs({preset:e,customRange:t,dashboardFilter:n,scope:r,logsBasePath:s="/logs"}){const a=new URLSearchParams;oHt(a,ex,tx,nx,e,t,r.window);const i=r.rootEntityType??n.rootEntityType;i&&a.set(Gx,i),$o(a,Tl.entityName,r.entityName??n.entityName),$o(a,Tl.threadId,r.threadId??n.threadId),$o(a,Tl.resourceId,r.resourceId??n.resourceId),$o(a,Tl.runId,n.runId),$o(a,Tl.sessionId,n.sessionId),$o(a,Tl.requestId,n.requestId),$o(a,Tl.userId,n.userId),$o(a,Tl.organizationId,n.organizationId),$o(a,Tl.experimentId,n.experimentId),$o(a,Tl.serviceName,n.serviceName),$o(a,Tl.environment,n.environment),lHt(a,Tl.tags,n.tags),r.status==="error"&&a.append(Tl.level,"error");const l=a.toString();return l?`${s}?${l}`:s}function vA(){const{datePreset:e,customRange:t,dimensionalFilter:n,tracesBasePath:r,logsBasePath:s}=iY(),a=g.useCallback((c={})=>ktt({preset:e,customRange:t,dashboardFilter:n,scope:c,tracesBasePath:r}),[e,t,n,r]),i=g.useCallback((c={})=>Rbs({preset:e,customRange:t,dashboardFilter:n,scope:c,logsBasePath:s}),[e,t,n,s]),l=g.useCallback((c,u,d)=>{const f=Abs(u,d);return ktt({preset:e,customRange:t,dashboardFilter:n,scope:{...c,window:f},tracesBasePath:r})},[e,t,n,r]);return{getTracesHref:a,getLogsHref:i,getBucketTracesHref:l}}const cHt="1h";async function Yie(e,t,n){const r=await e.getMetricPercentiles({name:t,percentiles:[.5,.95],interval:cHt,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 Pbs(){const e=Ge(),{filters:t,filterKey:n}=Vm();return ht({queryKey:["metrics","latency",n],queryFn:async()=>{const[r,s,a]=await Promise.all([Yie(e,"mastra_agent_duration_ms",t),Yie(e,"mastra_workflow_duration_ms",t),Yie(e,"mastra_tool_duration_ms",t)]);return{agentData:r,workflowData:s,toolData:a,interval:cHt}}})}const Ott={agents:Ku.AGENT,workflows:Ku.WORKFLOW_RUN,tools:Ku.TOOL};function $bs(){const{data:e,isLoading:t,isError:n}=Pbs(),{getTracesHref:r,getBucketTracesHref:s}=vA(),{Link:a}=un(),i=Vr();return o.jsx(Nbs,{data:e,isLoading:t,isError:n,onPointClick:(l,c)=>{Number.isFinite(c.tsMs)&&i(s({rootEntityType:Ott[l]},c.tsMs,"1h"))},actions:l=>o.jsx(XL,{href:r({rootEntityType:Ott[l]}),LinkComponent:a})})}function Mbs(e){return e==="threads"||e==="resources"}function Kie(e){return e.length<=12?e:`${e.slice(0,6)}…${e.slice(-4)}`}function Dbs({threads:e,resources:t,getThreadRowHref:n,getResourceRowHref:r,actions:s,LinkComponent:a}){const[i,l]=g.useState("threads"),c=e.data?.map(y=>({...y,key:y.threadId}))??[],u=t.data?.map(y=>({...y,key:y.resourceId}))??[],d=c.length>0,f=u.length>0,p=e.data?.reduce((y,b)=>y+b.runs,0)??0,h=t.data?.reduce((y,b)=>y+b.threadCount,0)??0,m=i==="threads"?e:t,v=typeof s=="function"?s(i):s;return o.jsxs(Vt,{children:[o.jsxs(Vt.TopBar,{children:[o.jsx(Vt.TitleAndDescription,{title:"Memory",description:"Resource and Thread consumption"}),i==="threads"&&d&&o.jsx(Vt.Summary,{value:p.toLocaleString(),label:"Total runs"}),i==="resources"&&f&&o.jsx(Vt.Summary,{value:h.toLocaleString(),label:"Total threads"}),v?o.jsx(Vt.Actions,{children:v}):null]}),m.isLoading?o.jsx(Vt.Loading,{}):m.isError?o.jsx(Vt.Error,{message:"Failed to load memory data"}):o.jsx(Vt.Content,{children:o.jsxs(wc,{defaultTab:"threads",value:i,onValueChange:y=>{Mbs(y)&&l(y)},className:"grid h-full grid-rows-[auto_1fr] overflow-y-auto",children:[o.jsxs(xc,{children:[o.jsx(Pr,{value:"threads",children:"Threads"}),o.jsx(Pr,{value:"resources",children:"Resources"})]}),o.jsx(fs,{value:"threads",children:d?o.jsxs(he,{columns:"auto auto auto auto auto",...Zxe,children:[o.jsxs(he.Top,{children:[o.jsx(he.TopCell,{sticky:"start",children:"Thread ID"}),o.jsx(he.TopCell,{className:"justify-end text-right",children:"Resource ID"}),o.jsx(he.TopCell,{className:"justify-end text-right",children:"Runs"}),o.jsx(he.TopCell,{className:"justify-end text-right",children:"Tokens"}),o.jsx(he.TopCell,{className:"justify-end text-right",children:"Cost"})]}),c.map(y=>{const b=n?.(y),x=o.jsxs(o.Fragment,{children:[o.jsx(he.RowHeaderCell,{className:"text-ui-sm",children:Kie(y.threadId)}),o.jsx(he.NumberCell,{children:y.resourceId?Kie(y.resourceId):"—"}),o.jsx(he.NumberCell,{highlight:!0,children:y.runs.toLocaleString()}),o.jsx(he.NumberCell,{children:y.tokens>0?al(y.tokens):"—"}),o.jsx(he.NumberCell,{children:y.cost!=null?Hp(y.cost,y.costUnit):"—"})]});return b?o.jsx(he.RowLink,{to:b,LinkComponent:a,children:x},y.key):o.jsx(he.RowStatic,{children:x},y.key)})]}):o.jsx(Vt.NoData,{message:"No thread activity yet"})}),o.jsx(fs,{value:"resources",children:f?o.jsxs(he,{columns:"auto auto auto auto",...Zxe,children:[o.jsxs(he.Top,{children:[o.jsx(he.TopCell,{sticky:"start",children:"Resource ID"}),o.jsx(he.TopCell,{className:"justify-end text-right",children:"Threads"}),o.jsx(he.TopCell,{className:"justify-end text-right",children:"Tokens"}),o.jsx(he.TopCell,{className:"justify-end text-right",children:"Cost"})]}),u.map(y=>{const b=r?.(y),x=o.jsxs(o.Fragment,{children:[o.jsx(he.RowHeaderCell,{className:"text-ui-sm",children:Kie(y.resourceId)}),o.jsx(he.NumberCell,{highlight:!0,children:y.threadCount.toLocaleString()}),o.jsx(he.NumberCell,{children:y.tokens>0?al(y.tokens):"—"}),o.jsx(he.NumberCell,{children:y.cost!=null?Hp(y.cost,y.costUnit):"—"})]});return b?o.jsx(he.RowLink,{to:b,LinkComponent:a,children:x},y.key):o.jsx(he.RowStatic,{children:x},y.key)})]}):o.jsx(Vt.NoData,{message:"No resource activity yet"})})]})})]})}const Xie=20;function Lbs(){const e=Ge(),{filters:t,filterKey:n}=Vm();return ht({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:Xie}),e.getMetricBreakdown({...r,name:["mastra_model_total_input_tokens"],aggregation:"sum",limit:Xie}),e.getMetricBreakdown({...r,name:["mastra_model_total_output_tokens"],aggregation:"sum",limit:Xie})]),l=new Map,c=d=>gA(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 Jie=20;function Fbs(){const e=Ge(),{filters:t,filterKey:n}=Vm();return ht({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:Jie}),e.getMetricBreakdown({...r,name:["mastra_model_total_input_tokens"],aggregation:"sum",limit:Jie}),e.getMetricBreakdown({...r,name:["mastra_model_total_output_tokens"],aggregation:"sum",limit:Jie})]),l=new Map,c=d=>gA(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 zbs(){const e=Lbs(),t=Fbs(),{getTracesHref:n}=vA(),{Link:r}=un();return o.jsx(Dbs,{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 JL({label:e,value:t,prevValue:n,changePct:r,isLoading:s,isError:a}){const i=t!=null;return o.jsxs(Xr,{children:[o.jsx(Xr.Label,{children:e}),o.jsx(Xr.Value,{className:i?void 0:"invisible",children:i?t:"—"}),a?o.jsx(Xr.Error,{}):s?o.jsx(Xr.Loading,{}):i?r!=null?o.jsx(Xr.Change,{changePct:r,prevValue:n}):o.jsx(Xr.NoChange,{}):o.jsx(Xr.NoData,{})]})}function Bbs(){const e=Ge(),{filters:t,filterKey:n}=Vm();return ht({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 Ubs(){const e=Ge(),{filters:t,filterKey:n}=Vm();return ht({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 qbs(){const e=Ge(),{filters:t,filterKey:n}=Vm();return ht({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 Vbs(){const e=Ge(),{filters:t,filterKey:n}=Vm();return ht({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 Hbs(){const{data:e,isLoading:t,isError:n}=iHt();return o.jsx(JL,{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 Wbs(){const{data:e,isLoading:t,isError:n}=qbs();return o.jsx(JL,{label:"Total Model Cost",value:e?.cost!=null?Hp(e.cost,e.costUnit):null,prevValue:e?.previousCost!=null?Hp(e.previousCost,e.costUnit):void 0,changePct:e?.costChangePercent??null,isLoading:t,isError:n})}function Zbs(){const{data:e,isLoading:t,isError:n}=Vbs();return o.jsx(JL,{label:"Total Tokens",value:e?.value!=null?al(e.value):null,prevValue:e?.previousValue!=null?al(e.previousValue):void 0,changePct:e?.changePercent??null,isLoading:t,isError:n})}function Gbs(){const{data:e,isLoading:t,isError:n}=Ubs();return o.jsx(JL,{label:"Total Threads",value:e?.value!=null?al(e.value):null,prevValue:e?.previousValue!=null?al(e.previousValue):void 0,changePct:e?.changePercent??null,isLoading:t,isError:n})}function Qbs(){const{data:e,isLoading:t,isError:n}=Bbs();return o.jsx(JL,{label:"Total Resources",value:e?.value!=null?al(e.value):null,prevValue:e?.previousValue!=null?al(e.previousValue):void 0,changePct:e?.changePercent??null,isLoading:t,isError:n})}function Ybs({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=>Kbs(f,a));return o.jsxs("div",{className:Y("grid grid-cols-[1fr_auto] gap-3 items-start"),children:[o.jsx(WAe,{fields:a,tokens:i,onTokensChange:l,disabled:s,autoFocusFieldId:c}),u&&o.jsx(VAe,{disabled:s,onClear:d?e:void 0,onRemoveAll:t,onSave:n,onRemoveSaved:r})]})}function Kbs(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 Xbs({rows:e,isLoading:t,isError:n,getRowHref:r,actions:s,LinkComponent:a}){const i=!!e&&e.length>0;return o.jsxs(Vt,{children:[o.jsxs(Vt.TopBar,{children:[o.jsx(Vt.TitleAndDescription,{title:"Model Usage & Cost",description:"Token consumption by model."}),i&&(()=>{const l=e.reduce((d,f)=>d+(f.cost??0),0),c=new Set;for(const d of e)d.cost!=null&&d.costUnit&&c.add(d.costUnit);let u;return c.size===0?u=l>0?Hp(l):"—":c.size===1?u=l>0?Hp(l,[...c][0]):"—":u="Mixed",o.jsx(Vt.Summary,{value:u,label:"Total cost"})})(),s?o.jsx(Vt.Actions,{children:s}):null]}),t?o.jsx(Vt.Loading,{}):n?o.jsx(Vt.Error,{message:"Failed to load model usage data"}):o.jsx(Vt.Content,{children:i?o.jsxs(he,{columns:"auto auto auto auto auto auto",...Zxe,children:[o.jsxs(he.Top,{children:[o.jsx(he.TopCell,{sticky:"start",children:"Model"}),o.jsx(he.TopCell,{className:"justify-end text-right",children:"Input"}),o.jsx(he.TopCell,{className:"justify-end text-right",children:"Output"}),o.jsx(he.TopCell,{className:"justify-end text-right",children:"Cache Read"}),o.jsx(he.TopCell,{className:"justify-end text-right",children:"Cache Write"}),o.jsx(he.TopCell,{className:"justify-end text-right",children:"Cost"})]}),e.map(l=>{const c=r?.(l),u=o.jsxs(o.Fragment,{children:[o.jsx(he.RowHeaderCell,{className:"text-ui-sm",children:l.model}),o.jsx(he.NumberCell,{children:l.input}),o.jsx(he.NumberCell,{children:l.output}),o.jsx(he.NumberCell,{children:l.cacheRead}),o.jsx(he.NumberCell,{children:l.cacheWrite}),o.jsx(he.NumberCell,{highlight:!0,children:l.cost!=null?Hp(l.cost,l.costUnit):"—"})]});return c?o.jsx(he.RowLink,{to:c,LinkComponent:a,children:u},l.model):o.jsx(he.RowStatic,{children:u},l.model)})]}):o.jsx(Vt.NoData,{message:"No model usage data yet"})})]})}function Jbs(){const e=Ge(),{filters:t,filterKey:n}=Vm();return ht({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=>gA(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:al(f.input),output:al(f.output),cacheRead:al(f.cacheRead),cacheWrite:al(f.cacheWrite),cost:f.cost,costUnit:f.costUnit})).sort((d,f)=>d.model.localeCompare(f.model))}})}function exs(){const{data:e,isLoading:t,isError:n}=Jbs(),{getTracesHref:r}=vA(),{Link:s}=un();return o.jsx(Xbs,{rows:e,isLoading:t,isError:n,LinkComponent:s,getRowHref:()=>r({rootEntityType:Ku.AGENT}),actions:o.jsx(XL,{href:r({rootEntityType:Ku.AGENT}),LinkComponent:s})})}function txs(e){return e==="tokens"||e==="cost"}function nxs({data:e,isLoading:t,isError:n,getRowHref:r,actions:s,LinkComponent:a}){const[i,l]=g.useState("tokens"),c=e??[],u=c.length>0,d=c.reduce((b,x)=>b+x.total,0),f=c.filter(b=>b.cost!=null&&b.cost>0),p=new Set(f.map(b=>b.costUnit??"usd")),h=p.size<=1,m=h?[...p][0]??"usd":null,v=h?f.reduce((b,x)=>b+(x.cost??0),0):0,y=h&&v>0;return o.jsxs(Vt,{children:[o.jsxs(Vt.TopBar,{children:[o.jsx(Vt.TitleAndDescription,{title:"Token Usage by Agent",description:"Token consumption grouped by agent."}),u&&(i==="cost"&&y?o.jsx(Vt.Summary,{value:Hp(v,m),label:"Total cost"}):o.jsx(Vt.Summary,{value:al(d),label:"Total tokens"})),u&&s?o.jsx(Vt.Actions,{children:s}):null]}),t?o.jsx(Vt.Loading,{}):n?o.jsx(Vt.Error,{message:"Failed to load token usage data"}):o.jsx(Vt.Content,{children:u?o.jsxs(wc,{defaultTab:"tokens",value:i,onValueChange:b=>{txs(b)&&l(b)},className:"grid h-full grid-rows-[auto_1fr] overflow-y-auto",children:[o.jsxs(xc,{children:[o.jsx(Pr,{value:"tokens",children:"Tokens"}),o.jsx(Pr,{value:"cost",children:"Cost"})]}),o.jsx(fs,{value:"tokens",children:o.jsx(YN,{LinkComponent:a,data:c.map(b=>({name:b.name,values:[b.input,b.output],href:r?.(b)})),segments:[{label:"Input",color:Wp.blueDark},{label:"Output",color:Wp.blue}],maxVal:Math.max(...c.map(b=>b.input+b.output)),fmt:al})}),o.jsx(fs,{value:"cost",children:y?o.jsx(YN,{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:Wp.purple}],maxVal:Math.max(...f.map(b=>b.cost??0)),fmt:b=>Hp(b,m)}):o.jsx(Vt.NoData,{message:"No cost data yet"})})]}):o.jsx(Vt.NoData,{message:"No token usage data yet"})})]})}function rxs(){const e=Ge(),{filters:t,filterKey:n}=Vm();return ht({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=>gA(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 sxs(){const{data:e,isLoading:t,isError:n}=rxs(),{getTracesHref:r}=vA(),{Link:s}=un();return o.jsx(nxs,{data:e,isLoading:t,isError:n,LinkComponent:s,getRowHref:a=>r({rootEntityType:Ku.AGENT,entityName:a.name}),actions:o.jsx(XL,{href:r({rootEntityType:Ku.AGENT}),LinkComponent:s})})}function a0e(e,t=al){return n=>({value:t(n.reduce((r,s)=>r+(typeof s[e]=="number"?s[e]:0),0))})}const axs=[{dataKey:"input",label:"Input tokens",color:Wp.blue,aggregate:a0e("input")},{dataKey:"output",label:"Output tokens",color:Wp.yellow,aggregate:a0e("output")}];function ixs(e){return e==="tokens"||e==="cost"}function oxs({data:e,interval:t="1d",isLoading:n,isError:r,actions:s}){const[a,i]=g.useState("tokens"),l=e??[],c=l.map(k=>({...k})),u=l.length>0,d=l.reduce((k,_)=>k+_.total,0),f=l.filter(k=>k.cost!=null&&k.cost>0),p=f.map(k=>({...k})),h=new Set(f.map(k=>k.costUnit).filter(k=>!!k)),m=h.size===1&&f.every(k=>k.costUnit!=null),v=m?[...h][0]??null:null,y=m?f.reduce((k,_)=>k+(_.cost??0),0):0,b=m&&y>0,x=t==="1h"?"Input and output tokens per hour.":"Input and output tokens per day.",S=[{dataKey:"cost",label:"Cost",color:Wp.purple,aggregate:a0e("cost",k=>Hp(k,v))}];return o.jsxs(Vt,{children:[o.jsxs(Vt.TopBar,{children:[o.jsx(Vt.TitleAndDescription,{title:"Token usage over time",description:x}),u&&(a==="cost"&&b?o.jsx(Vt.Summary,{value:Hp(y,v),label:"Total cost"}):o.jsx(Vt.Summary,{value:al(d),label:"Total tokens"})),u&&s?o.jsx(Vt.Actions,{children:s}):null]}),n?o.jsx(Vt.Loading,{}):r?o.jsx(Vt.Error,{message:"Failed to load token usage timeline"}):o.jsx(Vt.Content,{children:u?o.jsxs(wc,{defaultTab:"tokens",value:a,onValueChange:k=>{ixs(k)&&i(k)},className:"overflow-visible",children:[o.jsxs(xc,{children:[o.jsx(Pr,{value:"tokens",children:"Tokens"}),o.jsx(Pr,{value:"cost",children:"Cost"})]}),o.jsx(fs,{value:"tokens",children:o.jsx(RD,{data:c,series:axs})}),o.jsx(fs,{value:"cost",children:b?o.jsx(RD,{data:p,series:S}):o.jsx(Vt.NoData,{message:"No cost data yet"})})]}):o.jsx(Vt.NoData,{message:"No token usage data yet"})})]})}function lxs(e){return e==="24h"?"1h":"1d"}function cxs(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 _tt(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 uxs(e){return e.cost==null||e.hasUnknownCostUnit||e.costUnits.size!==1?null:[...e.costUnits][0]??null}function dxs(){const e=Ge(),{datePreset:t,filters:n,filterKey:r}=Vm(),s=lxs(t);return ht({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 _tt(l,a.series[0],"input"),_tt(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:cxs(d,s),tsMs:u.tsMs,input:u.input,output:u.output,total:u.input+u.output,cost:u.cost,costUnit:uxs(u)}}),interval:s}}})}function fxs(){const{data:e,isLoading:t,isError:n}=dxs(),{getTracesHref:r}=vA(),{Link:s}=un();return o.jsx(oxs,{data:e?.data,interval:e?.interval,isLoading:t,isError:n,actions:o.jsx(XL,{href:r(),LinkComponent:s})})}function eoe({data:e,rowHrefs:t,errorHrefs:n,LinkComponent:r}){return o.jsx(YN,{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:Wp.blueDark},{label:"Errors",color:Wp.pink}],maxVal:Math.max(...e.map(s=>s.completed+s.errors)),fmt:al})}function pxs({data:e,isLoading:t,isError:n,getRowHref:r,getErrorSegmentHref:s,actions:a,LinkComponent:i}){const[l,c]=g.useState("agents"),u=typeof a=="function"?a(l):a,d=!!e&&(e.agentData.length>0||e.workflowData.length>0||e.toolData.length>0),f=e?[...e.agentData,...e.workflowData,...e.toolData].reduce((m,v)=>m+v.completed+v.errors,0):0,p=m=>r?v=>r(m,v):void 0,h=m=>s?v=>s(m,v):void 0;return o.jsxs(Vt,{children:[o.jsxs(Vt.TopBar,{children:[o.jsx(Vt.TitleAndDescription,{title:"Trace Volume",description:"Runs and call counts."}),d&&o.jsx(Vt.Summary,{value:al(f),label:"Total runs"}),u?o.jsx(Vt.Actions,{children:u}):null]}),t?o.jsx(Vt.Loading,{}):n?o.jsx(Vt.Error,{message:"Failed to load trace volume data"}):o.jsx(Vt.Content,{children:d?o.jsxs(wc,{value:l,onValueChange:c,defaultTab:"agents",className:"grid h-full grid-rows-[auto_1fr] overflow-y-auto",children:[o.jsxs(xc,{children:[o.jsx(Pr,{value:"agents",children:"Agents"}),o.jsx(Pr,{value:"workflows",children:"Workflows"}),o.jsx(Pr,{value:"tools",children:"Tools"})]}),o.jsx(fs,{value:"agents",children:e.agentData.length>0?o.jsx(eoe,{data:e.agentData,rowHrefs:p("agents"),errorHrefs:h("agents"),LinkComponent:i}):o.jsx(Vt.NoData,{message:"No agent data yet"})}),o.jsx(fs,{value:"workflows",children:e.workflowData.length>0?o.jsx(eoe,{data:e.workflowData,rowHrefs:p("workflows"),errorHrefs:h("workflows"),LinkComponent:i}):o.jsx(Vt.NoData,{message:"No workflow data yet"})}),o.jsx(fs,{value:"tools",children:e.toolData.length>0?o.jsx(eoe,{data:e.toolData,rowHrefs:p("tools"),errorHrefs:h("tools"),LinkComponent:i}):o.jsx(Vt.NoData,{message:"No tool data yet"})})]}):o.jsx(Vt.NoData,{message:"No trace volume data yet"})})]})}async function toe(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=gA(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 hxs(){const e=Ge(),{filters:t,filterKey:n}=Vm();return ht({queryKey:["metrics","trace-volume",n],queryFn:async()=>{const[r,s,a]=await Promise.all([toe(e,"mastra_agent_duration_ms",t),toe(e,"mastra_workflow_duration_ms",t),toe(e,"mastra_tool_duration_ms",t)]);return{agentData:r,workflowData:s,toolData:a}}})}const u8={agents:Ku.AGENT,workflows:Ku.WORKFLOW_RUN,tools:Ku.TOOL};function mxs(){const{data:e,isLoading:t,isError:n}=hxs(),{getTracesHref:r,getLogsHref:s}=vA(),{Link:a}=un();return o.jsx(pxs,{data:e,isLoading:t,isError:n,LinkComponent:a,getRowHref:(i,l)=>r({rootEntityType:u8[i],entityName:l.name}),getErrorSegmentHref:(i,l)=>l.errors>0?s({rootEntityType:u8[i],entityName:l.name,status:"error"}):void 0,actions:i=>o.jsxs(o.Fragment,{children:[o.jsx(XL,{href:r({rootEntityType:u8[i]}),LinkComponent:a}),o.jsx(Cbs,{href:s({rootEntityType:u8[i],status:"error"}),LinkComponent:a})]})})}const noe="period",d8="dateFrom",f8="dateTo";function gxs(){const[e,t]=$a(),n=e.get(noe),r=vbs(n)?n:"24h",s=g.useMemo(()=>{if(r!=="custom")return;const d=h=>{if(!h)return;const m=new Date(h);return Number.isNaN(m.getTime())?void 0:m},f=d(e.get(d8)),p=d(e.get(f8));if(!(!f&&!p))return{from:f,to:p}},[r,e.toString()]),a=g.useMemo(()=>ubs(e),[e.toString()]),i=g.useCallback(d=>{t(f=>{const p=new URLSearchParams(f);return d==="24h"?p.delete(noe):p.set(noe,d),d!=="custom"&&(p.delete(d8),p.delete(f8)),p},{replace:!0})},[t]),l=g.useCallback(d=>{t(f=>{const p=new URLSearchParams(f);return d?.from?p.set(d8,d.from.toISOString()):p.delete(d8),d?.to?p.set(f8,d.to.toISOString()):p.delete(f8),p},{replace:!0})},[t]),c=g.useCallback(d=>{t(f=>{const p=new URLSearchParams(f);return fbs(p,d),p},{replace:!0})},[t]),u=g.useRef(!1);return g.useEffect(()=>{if(u.current||(u.current=!0,lbs(e)))return;const d=rHt();d&&t(f=>{const p=new URLSearchParams(f);for(const[h,m]of d)p.append(h,m);return p},{replace:!0})},[]),o.jsx(bbs,{preset:r,filterTokens:a,onPresetChange:i,onFilterTokensChange:c,customRange:s,onCustomRangeChange:l,children:o.jsx(vxs,{})})}function vxs(){const[e]=$a(),{error:t,isLoading:n}=iHt(),{filterTokens:r,setFilterTokens:s}=iY(),[a,i]=g.useState(),{supportsMetrics:l,isInMemory:c,isLoading:u}=dVt(),{data:d,isLoading:f}=JAe(),{data:p,isLoading:h}=YAe(),{data:m,isLoading:v}=XAe(),{data:y,isLoading:b}=KAe(),x=g.useMemo(()=>cbs({availableTags:d??[],availableEntityNames:p??[],availableServiceNames:m??[],availableEnvironments:y??[],loading:{tags:f,entityNames:h,serviceNames:v,environments:b}}),[d,p,m,y,f,h,v,b]),[S,k]=g.useState(()=>rHt()!==null),_=g.useCallback(()=>{ibs(e),k(!0),ze.success("Filters setting for Metrics saved")},[e]),C=g.useCallback(()=>{obs(),k(!1),ze.success("Filters setting for Metrics cleared up")},[]),T=g.useCallback(()=>{s([])},[s]),E=g.useCallback(()=>{const N=r.map(I=>{const A=x.find(R=>R.id===I.fieldId);return A?A.kind==="text"?{fieldId:I.fieldId,value:""}:A.kind==="pick-multi"?A.multi?{fieldId:I.fieldId,value:[]}:{fieldId:I.fieldId,value:"Any"}:A.kind==="multi-select"?{fieldId:I.fieldId,value:[]}:I:I});s(N)},[x,r,s]);return t&&vs(t)?o.jsx(Jn,{children:o.jsx(Fs,{})}):t&&ys(t)?o.jsx(Jn,{children:o.jsx(Es,{resource:"metrics"})}):t?o.jsx(Jn,{children:o.jsx(qa,{title:"Failed to load metrics",message:t.message})}):o.jsxs(Bt,{width:"wide",height:"full",children:[o.jsxs(Bt.TopArea,{children:[o.jsx(Bt.Row,{children:o.jsxs(Bt.Column,{className:"flex flex-wrap items-start justify-start gap-2",children:[o.jsx(kbs,{}),o.jsx(ZAe,{fields:x,tokens:r,onTokensChange:s,disabled:n,onStartTextFilter:i})]})}),o.jsx(Ybs,{isLoading:n,filterFields:x,filterTokens:r,onFilterTokensChange:s,onClear:E,onRemoveAll:T,onSave:_,onRemoveSaved:S?C:void 0,autoFocusFilterFieldId:a})]}),u?null:l?o.jsxs("div",{className:"grid content-start gap-8 pb-10",children:[c&&o.jsx(An,{variant:"info",title:"Metrics are not persisted",children:o.jsx(An.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(Jxe,{children:[o.jsx(Hbs,{}),o.jsx(Wbs,{}),o.jsx(Zbs,{}),o.jsx(Gbs,{}),o.jsx(Qbs,{})]}),o.jsxs(Jxe,{children:[o.jsx(exs,{}),o.jsx(sxs,{}),o.jsx(fxs,{}),o.jsx(zbs,{}),o.jsx(mxs,{}),o.jsx($bs,{})]})]}):o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(br,{iconSlot:o.jsx(Dc,{}),titleSlot:"Metrics are not available with your current storage",descriptionSlot:"Metrics require ClickHouse, DuckDB, Postgres v-next, Spanner, or in-memory storage for observability. Other relational databases (LibSQL, MSSQL) and document stores (MongoDB) do not support metrics collection. To enable metrics on an existing project, switch the observability storage in the Mastra configuration.",actionSlot:o.jsxs(oe,{variant:"ghost",as:"a",href:"https://mastra.ai/docs/observability/metrics/overview",target:"_blank",rel:"noopener noreferrer",children:["Metrics Documentation ",o.jsx(ea,{})]})})})]})}const yxs=50;function bxs(){const{paths:e}=un(),{isCmsAvailable:t}=vS(),[n,r]=g.useState(""),[s,a]=g.useState(0),{data:i,isLoading:l,error:c,isPlaceholderData:u}=PBt({page:s,perPage:yxs}),d=i?.promptBlocks??[],f=i?.hasMore??!1,p=g.useCallback(()=>{u||a(v=>v+1)},[u]),h=g.useCallback(()=>{u||a(v=>Math.max(0,v-1))},[u]),m=g.useCallback(v=>{r(v),a(0)},[]);return c&&vs(c)?o.jsx(Jn,{children:o.jsx(Fs,{})}):c&&ys(c)?o.jsx(Jn,{children:o.jsx(Es,{resource:"prompt blocks"})}):c?o.jsx(Jn,{children:o.jsx(qa,{title:"Failed to load prompt blocks",message:c.message})}):d.length===0&&!l&&s===0?o.jsx(Jn,{children:o.jsx(Nas,{})}):o.jsxs(Bt,{children:[o.jsx(Bt.TopArea,{children:o.jsxs(Bt.Row,{align:"center",stack:"responsive",children:[o.jsx("div",{className:"max-w-120 flex-1",children:o.jsx(od,{onSearch:m,label:"Filter prompts",placeholder:"Filter by name or description"})}),t&&o.jsxs(oe,{as:za,to:e.cmsPromptBlockCreateLink(),variant:"primary",className:"shrink-0",children:[o.jsx(Cr,{}),"Create Prompt"]})]})}),o.jsx(jas,{promptBlocks:d,isLoading:l,search:n,currentPage:s,hasMore:f,onNextPage:p,onPrevPage:h})]})}function xxs(){return o.jsx(Bt,{width:"narrow",children:o.jsx(Bt.MainArea,{children:o.jsx(mss,{children:o.jsx(Ixe,{})})})})}const wxs=[{title:"Mastra APIs",description:"Explore and test the available REST API endpoints with the interactive Swagger UI.",icon:PYt,href:"/swagger-ui",external:!1},{title:"Documentation",description:"Read the official Mastra documentation for guides, references, and tutorials.",icon:Klt,href:"https://mastra.ai/en/docs",external:!0},{title:"Github",description:"Browse the source code, report issues, and contribute to the Mastra project.",icon:ea,href:"https://github.com/mastra-ai/mastra",external:!0},{title:"Community",description:"Join the Mastra Discord community for help, discussion, and collaboration.",icon:RV,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:rct,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:Xlt,href:"https://mastra.ai/contact?ref=studio",external:!0}];function Sxs(){return o.jsx(Bt,{width:"narrow",children:o.jsx(Bt.MainArea,{children:o.jsx("div",{className:"grid max-w-3xl grid-cols-1 gap-4 sm:grid-cols-2",children:wxs.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(ea,{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 kxs(){const{data:e={},isLoading:t,error:n}=lh(),[r,s]=g.useState(""),[a,i]=g.useState("all");if(n&&vs(n))return o.jsx(Jn,{children:o.jsx(Fs,{})});if(n&&ys(n))return o.jsx(Jn,{children:o.jsx(Es,{resource:"scorers"})});if(n)return o.jsx(Jn,{children:o.jsx(qa,{title:"Failed to load scorers",message:n.message})});if(Object.keys(e).length===0&&!t)return o.jsx(Jn,{children:o.jsx(yBr,{})});const l=a!=="all"||r!=="",c=()=>{s(""),i("all")};return o.jsxs(Bt,{children:[o.jsx(Bt.TopArea,{children:o.jsx(xBr,{search:r,onSearchChange:s,sourceFilter:a,onSourceFilterChange:i,onReset:c,hasActiveFilters:l})}),o.jsx(vBr,{scorers:e,isLoading:t,search:r,sourceFilter:a})]})}function Oxs(){const{scorerId:e}=hr(),[t,n]=$a(),r=t.get("scoreId")??void 0,[s,a]=g.useState(r),[i,l]=g.useState(!1),c=Vr(),[u,d]=g.useState({value:"all",label:"All Entities",type:"ALL"}),{scorer:f,error:p}=K7r(e),{data:h={},isLoading:m,error:v}=zm(),{isLoading:y,error:b}=Wy(),{data:x=[],isLoading:S,error:k,isFetchingNextPage:_,hasNextPage:C,setEndOfListElement:T}=Y7r({scorerId:e,entityId:u?.value==="all"?void 0:u?.value,entityType:u?.type==="ALL"?void 0:u?.type}),E=g.useMemo(()=>f?.agentIds?.filter(P=>h[P]).map(P=>({value:P,label:h[P].name,type:"AGENT"}))||[],[f?.agentIds,h]),N=g.useMemo(()=>f?.workflowIds?.map(P=>({value:P,label:P,type:"WORKFLOW"}))||[],[f?.workflowIds]),I=g.useMemo(()=>[{value:"all",label:"All Entities",type:"ALL"},...E,...N],[E,N]),A=t.get("entity")??"all",R=I.find(P=>P.value===A);R&&R.value!==u?.value&&d(R),g.useEffect(()=>{if(p){const P=p instanceof Error?p.message:"Failed to load scorer";ze.error(`Error loading scorer: ${P}`)}},[p]),g.useEffect(()=>{if(v){const P=v instanceof Error?v.message:"Failed to load agents";ze.error(`Error loading agents: ${P}`)}},[v]),g.useEffect(()=>{if(b){const P=b instanceof Error?b.message:"Failed to load workflows";ze.error(`Error loading workflows: ${P}`)}},[b]);const L=P=>{P?.value&&n(q=>{const G=new URLSearchParams(q);return G.set("entity",P.value),G})};g.useEffect(()=>{const P=t.get("scoreId")??void 0;if(P===s)return;if(!P){a(void 0);return}x.find(G=>G.id===P)&&a(P)},[t,x]);const M=g.useCallback(P=>{a(P||void 0),n(q=>{const G=new URLSearchParams(q);return P?G.set("scoreId",P):G.delete("scoreId"),G})},[n]);if(!f)return null;const z=vs(p)||vs(v)||vs(b),H=p&&ys(p),F=!z&&!H&&(p||v||b),B=!S&&x.length===0,V=u?.value!=="all",D=f?.scorer?.source==="stored"?o.jsx($y,{owner:"scorer-detail",children:o.jsxs(oe,{variant:"default",as:za,to:`/cms/scorers/${e}/edit`,size:"sm",children:[o.jsx(pm,{})," Edit"]})}):null,Z=e?o.jsx(nY,{open:i,onOpenChange:l,initialScorerIds:[e],onSuccess:P=>{c(`/experiments/${P}`)}}):null;if(z||H||F||B&&!V){const P=(p instanceof Error?p.message:void 0)??(v instanceof Error?v.message:void 0)??(b instanceof Error?b.message:void 0)??"An unexpected error occurred";return o.jsxs(Bt,{width:"wide",height:"full",className:"grid-rows-[1fr]",children:[D,o.jsx(Bt.MainArea,{isCentered:!0,children:z?o.jsx(Fs,{}):H?o.jsx(Es,{resource:"scorers"}):F?o.jsx(qa,{title:"Failed to load scorer",message:P}):o.jsx(U7r,{onRunExperiment:()=>l(!0)})}),Z]})}return o.jsxs(Bt,{width:"wide",height:"full",children:[D,o.jsx(Bt.TopArea,{children:o.jsxs("div",{className:"flex items-center justify-between gap-3",children:[o.jsx(V7r,{selectedEntity:u,entityOptions:I,onEntityChange:L,onReset:()=>{n(P=>{const q=new URLSearchParams(P);return q.set("entity","all"),q})},isLoading:S||m||y}),o.jsxs(oe,{variant:"primary",onClick:()=>l(!0),children:[o.jsx(Lc,{}),"Run Experiment"]})]})}),o.jsx(B7r,{scores:x,isLoading:S,selectedScoreId:s,isFetchingNextPage:_,hasNextPage:C,setEndOfListElement:T,onScoreClick:M,errorMsg:k?.message}),Z]})}const _xs=$i("flex min-w-0 flex-col",{variants:{variant:{default:"gap-3 sm:flex-row sm:items-center sm:justify-between",factory:"gap-2 px-4 py-3 lg:flex-row lg:items-center lg:justify-between lg:gap-4"}},defaultVariants:{variant:"default"}}),Cxs=$i("flex min-w-0 flex-col",{variants:{variant:{default:"",factory:"gap-0.5"}},defaultVariants:{variant:"default"}}),Ctt=$i("",{variants:{variant:{default:"text-sm font-medium",factory:"text-ui-md leading-ui-md text-neutral5"}},defaultVariants:{variant:"default"}}),Exs=$i("flex flex-col gap-0.5",{variants:{variant:{default:"text-sm text-neutral3",factory:"text-ui-sm text-neutral3"}},defaultVariants:{variant:"default"}});function Txs({label:e,description:t,htmlFor:n,variant:r,className:s,children:a}){return o.jsxs("div",{className:Y(_xs({variant:r}),s),"data-slot":"settings-row",children:[o.jsxs("div",{className:Cxs({variant:r}),children:[n?o.jsx(Dt,{htmlFor:n,className:Ctt({variant:r}),children:e}):o.jsx("span",{className:Ctt({variant:r}),children:e}),t&&o.jsx("div",{className:Exs({variant:r}),children:t})]}),a]})}const uHt=[{value:"dark",label:"Dark",Icon:PXt},{value:"light",label:"Light",Icon:sen},{value:"system",label:"System",Icon:hct}],jxs=e=>uHt.some(t=>t.value===e);function Nxs({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 Ixs=()=>{const{baseUrl:e,headers:t,apiPrefix:n}=RH(),{theme:r,setTheme:s}=nC();return o.jsx(Bt,{width:"narrow",children:o.jsxs(Bt.MainArea,{className:"mt-6 flex flex-col gap-5",children:[o.jsx(sxe,{title:"Theme",description:"Customize the appearance of the studio.",children:o.jsx(Txs,{label:"Theme mode",htmlFor:"theme",children:o.jsxs(oa,{value:r,onValueChange:a=>{jxs(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:uHt.map(a=>o.jsx(xr,{value:a.value,children:o.jsx(Nxs,{option:a})},a.value))})]})})}),o.jsx(sxe,{title:"Mastra Connection",description:"Configure the Mastra instance URL, API prefix, and request headers used by the studio.",children:o.jsx(u4t,{initialConfig:{baseUrl:e,headers:t,apiPrefix:n}})})]})})};function Axs(){const[e]=$a(),t=Vr(),n=e.get("redirect")||"/",r=()=>{n.startsWith("http")?window.location.href=n:t(n,{replace:!0})};return o.jsx(eHt,{redirectUri:n,onSuccess:r,initialMode:"signup"})}function Rxs(e){return e.replace(/\/$/,"").split("/").pop()}function oY({children:e,className:t}){return o.jsx("div",{className:Y("border border-border1 rounded-lg mt-12 py-8 lg:min-h-[25rem] transition-height px-4 lg:px-12",t),children:e})}function Pxs({templates:e,linkComponent:t,className:n,isLoading:r}){const s=t||"a";return r?o.jsx("div",{className:Y("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:Y("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:Y("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:Y("grid [&:hover_p]:text-neutral5",{"grid-cols-[8rem_1fr] lg:grid-cols-[12rem_1fr]":a.imageURL}),children:[a.imageURL&&o.jsx("div",{className:Y("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:Y("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:Y("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(Ii,{})," ",a.agents.length]}),a?.tools&&a.tools.length>0&&o.jsxs("li",{children:[o.jsx(zf,{})," ",a.tools.length]}),a?.networks&&a.networks.length>0&&o.jsxs("li",{children:[o.jsx(gct,{})," ",a.networks.length]}),a?.workflows&&a.workflows.length>0&&o.jsxs("li",{children:[o.jsx(dI,{})," ",a.workflows.length]}),a?.mcp&&a.mcp.length>0&&o.jsxs("li",{children:[o.jsx(TC,{})," ",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:Y("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(cG,{})," ",Rxs(a.githubUrl)]})})]},a.slug)})})}function $xs({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:Y("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:Y("flex flex-wrap mx-auto sticky top-0 gap-4 bg-surface2 py-8",u),children:[o.jsx(v_,{name:"search-templates",label:"Search templates",labelIsHidden:!0,value:i,onChange:f=>l?.(f.target.value),placeholder:"Search Template"}),o.jsx(Ld,{label:"Filter by tag",labelIsHidden:!0,name:"filter-tag",value:t,onValueChange:s,options:e}),o.jsx(Ld,{label:"Filter by provider",labelIsHidden:!0,name:"filter-provider",value:r,onValueChange:a,options:n}),c&&o.jsxs(oe,{onClick:c,children:["Reset ",o.jsx(or,{})]})]})}function Mxs(){const{data:e,isLoading:t}=znr(),{templates:n,tags:r,providers:s}=e??{templates:[],tags:[],providers:[]},[a,i]=g.useState("all"),[l,c]=g.useState("all"),[u,d]=g.useState(""),f=[{value:"all",label:"Any tag"}];(r||[]).forEach(x=>{f.push({value:x,label:x})});const p=[{value:"all",label:"Any provider"}];(s||[]).forEach(x=>{p.push({value:x,label:x})});const h=(x,S)=>{S==="tag"?i(x):S==="provider"&&c(x)},m=x=>{d(x)},v=()=>{i("all"),c("all"),d("")},y=n.filter(x=>!(u&&!x.title.toLowerCase().includes(u)&&!x.description.toLowerCase().includes(u)||a!=="all"&&!x.tags.includes(a)||l!=="all"&&!x.supportedProviders.includes(l))),b=u||a!=="all"||l!=="all";return o.jsxs(gs,{children:[o.jsx(bSe,{children:o.jsxs(kbt,{children:[o.jsx(We,{children:o.jsx(iy,{})}),"Templates"]})}),o.jsxs("div",{className:Y("overflow-y-auto w-full h-full px-8 pb-12 z-10"),children:[o.jsx($xs,{selectedTag:a,onTagChange:x=>h(x,"tag"),tagOptions:f,selectedProvider:l,onProviderChange:x=>h(x,"provider"),providerOptions:p,searchTerm:u,onSearchChange:m,onReset:b?v:void 0,className:"max-w-[80rem]",isLoading:t}),o.jsx(Pxs,{templates:y,linkComponent:za,className:"mx-auto max-w-[80rem]",isLoading:t})]})]})}const Dxs="1.64.0-alpha.9";function Lxs({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(uc,{className:"text-yellow-500"}),title:"Template Installed with Warnings"}:{icon:o.jsx(GYt,{}),title:"Template Installation Failed"},{icon:l,title:c}=i();return o.jsxs(oY,{className:"text-neutral3 mb-8 content-center space-y-4",children:[o.jsxs("div",{className:Y("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 Fxs({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(oY,{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:Y("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(vct,{})]}),o.jsx(Ld,{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:Y("flex items-center justify-center col-span-2 text-neutral3 text-ui-sm gap-4","[&_svg]:opacity-50 [&_svg]:w-[1.1em] [&_svg]:h-[1.1em]","animate-in fade-in duration-300"),children:[o.jsx(qt,{})," Loading variables..."]}):Object.entries(r).map(([p,h])=>o.jsxs(g.Fragment,{children:[o.jsx(Kp,{name:`env-${p}`,labelIsHidden:!0,label:"Key",value:p,disabled:!0,className:"w-full"}),o.jsx(Kp,{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(c4t,{defaultProvider:u||"",defaultModel:d||"",updateModel:f||(()=>Promise.resolve({message:"Updated"})),closeEditor:()=>{},autoSave:!0,selectProviderPlaceholder:"Provider"})]})]}),t&&!l&&o.jsx(oe,{className:Y("flex items-center gap-2 mt-4 justify-center text-ui-md w-full bg-surface5 min-h-10 rounded-lg text-neutral5 hover:bg-surface6 transition-colors","[&>svg]:w-[1.1em] [&_svg]:h-[1.1em] [&_svg]:text-neutral5"),onClick:a,disabled:!t||!u||!d||s.length>0||c,children:c?o.jsxs(o.Fragment,{children:[o.jsx(qt,{className:"h-4 w-4"})," Installing..."]}):o.jsxs(o.Fragment,{children:["Install ",o.jsx(zd,{})]})})]})})}function zxs({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:Y("grid mt-8 items-center"),children:o.jsxs("div",{className:Y("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(iy,{}),o.jsx("h2",{className:Y({"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:Y("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:Y("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(Cm,{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(x0e,{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(cG,{}),n?.split("/")?.pop()]})]}),s&&o.jsx(ije,{data:s,labelsAreHidden:!0,isLoading:r})]})]})}function Ett(e){switch(e){case"running":return o.jsx(qt,{size:"sm","aria-hidden":!0});case"success":return o.jsx(qr,{"aria-hidden":!0});case"failed":return o.jsx(or,{"aria-hidden":!0});default:return null}}function Bxs(){return o.jsx("svg",{viewBox:"0 0 24 24",className:"text-neutral2","aria-hidden":!0,children:o.jsx("circle",{cx:"12",cy:"12",r:"8.5",pathLength:"48",fill:"none",stroke:"currentcolor",strokeWidth:"2.8",strokeLinecap:"round",strokeDasharray:"3 3"})})}function Uxs({status:e,variant:t}){return t==="plain"?o.jsx("span",{className:Y("flex size-4 items-center justify-center self-center [&>svg]:size-4",Yr.colors,{"[&>svg]:text-positive1":e==="success","[&>svg]:text-negative1":e==="failed"}),children:e==="pending"?o.jsx(Bxs,{}):Ett(e)}):o.jsx("span",{className:Y("flex size-7 items-center justify-center self-center rounded-full motion-reduce:transition-none",Yr.colors,Yr.transform,Yr.shadow,{"[&>svg]:text-notice-success-fg":e==="success","[&>svg]:text-notice-destructive-fg":e==="failed","border border-dashed border-neutral2":e==="pending","[&>svg]:size-4":e!=="running","bg-accent1Dark shadow-glow-accent1":e==="success","bg-accent2Dark shadow-glow-accent2":e==="failed","scale-110":e==="success"||e==="failed"}),children:Ett(e)})}function qxs({step:e,isActive:t,position:n,variant:r="default"}){return o.jsxs("div",{className:Y("grid grid-cols-[1fr_auto] gap-6 rounded-lg px-4 py-3 motion-reduce:transition-none",Yr.colors,{"border border-transparent":r==="default","border-dashed border-neutral2 bg-surface3":t&&r==="default"}),children:[o.jsxs("div",{className:"grid min-w-0 grid-cols-[auto_1fr] gap-2",children:[o.jsxs("span",{className:Y("flex min-w-6 justify-end text-ui-md",Yr.colors,{"text-neutral5":t||e.status==="success","text-neutral3":!t&&e.status!=="success"}),children:[n,"."]}),o.jsxs("div",{className:"min-w-0",children:[o.jsx("h4",{className:Y("text-ui-md",Yr.colors,{"text-neutral5":t||e.status==="success","text-neutral3":!t&&e.status!=="success"}),children:e.title}),e.description&&o.jsx("p",{className:Y("-mt-0.5 text-ui-md text-neutral2",{truncate:r==="plain"}),children:e.description})]})]}),o.jsx(Uxs,{status:e.status,variant:r})]})}function Vxs({currentStep:e,steps:t=[],className:n}){return o.jsx("div",{className:Y(n),children:t.map((r,s)=>o.jsx(qxs,{step:r,isActive:e?.id===r.id,position:s+1},r.id))})}function Hxs({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:Y("relative flex h-8 items-center justify-end",Yr.colors,{"bg-accent1Dark":r.status==="success"&&e?.[s-1]?.status==="success"}),children:o.jsx("div",{className:Y("absolute right-0 z-10 flex size-8 translate-x-1/2 items-center justify-center self-center rounded-full bg-surface3 text-ui-sm font-bold text-neutral3 motion-reduce:transition-none",Yr.colors,Yr.transform,Yr.shadow,{"border border-dashed border-neutral2":r.status==="pending","bg-accent1Dark text-notice-success-fg shadow-glow-accent1 scale-110":r.status==="success","bg-accent2Dark text-notice-destructive-fg shadow-glow-accent2 scale-110":r.status==="failed"}),children:r.status==="running"?o.jsx(qt,{}):s+1})},r.id))}),o.jsxs("div",{className:Y("text-center text-xs text-neutral3",Yr.colors),children:[n," of ",t," steps completed"]})]})}function Wxs({name:e,streamResult:t,runId:n,workflowInfo:r}){const s=t?.phase||"initializing",a=t?.payload?.workflowState,i=t?.payload?.currentStep,l=t?.error,c=a?.steps||{},u=Object.keys(c).length>0,d=v=>v==="input"||v.endsWith(".input")||v.startsWith("Mapping_")&&/[0-9a-f]{8}/.test(v)||/[0-9a-f]{8,}/.test(v)?!1:r?.allSteps?v in r.allSteps:!0,f=Object.entries(c).filter(([v,y])=>d(v)),p=f.length,h=()=>{switch(s){case"initializing":return"Preparing template installation...";case"processing":return`Installing ${e} template`;case"completed":return"Template installation completed!";case"error":return"Template installation failed";default:return"Installing template..."}},m=f.map(([v,y])=>({id:v,status:y?.status,description:y?.description,title:v.charAt(0).toUpperCase()+v.slice(1).replace(/-/g," "),isActive:i?.id===v}));return o.jsxs(oY,{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(Hxs,{steps:m})}),l&&s==="error"&&o.jsxs("div",{className:Y("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(WXt,{}),l||"Something went wrong"]}),u&&o.jsx(Vxs,{steps:m,currentStep:i,className:"pb-4"}),!u&&s==="initializing"&&o.jsxs("div",{className:"text-neutral3 grid justify-items-center gap-4 text-center text-sm",children:[o.jsx(qt,{}),o.jsx("p",{children:"This may take some time..."})]})]})}function Zxs({name:e,installedEntities:t}){return o.jsxs(oY,{className:Y("grid items-center justify-items-center gap-4 content-center","[&>svg]:w-8 [&>svg]:h-8"),children:[o.jsx(vct,{}),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(ije,{data:t})]})}function Gxs(){const{templateSlug:e}=hr(),[t,n]=$a(),[r,s]=g.useState(""),[a,i]=g.useState(""),[l,c]=g.useState(""),[u,d]=g.useState({}),[f,p]=g.useState([]),[h,m]=g.useState(null),[v,y]=g.useState(!1),[b,x]=g.useState(""),[S,k]=g.useState(!1),[_,C]=g.useState(!1),[T,E]=g.useState([]),{data:N,isLoading:I}=Bnr({repoOrSlug:e,owner:"mastra-ai"}),R=Dxs?.includes("beta")??!1?"beta":"main",{data:L,isLoading:M}=Unr({repo:N?.githubUrl?new URL(N.githubUrl).pathname.split("/")[2]:`template-${e}`,owner:"mastra-ai",branch:R}),{data:z,isLoading:H}=qnr(),{mutateAsync:F,isPending:B}=Vnr(),{mutateAsync:V}=Hnr(),{streamInstall:D,streamResult:Z,isStreaming:U}=Znr(z),{observeInstall:P,streamResult:q,isStreaming:G}=Gnr(z);g.useEffect(()=>{const te=t.get("runId");te&&!v&&!h&&!U&&!G&&(console.info("🔄 Checking completed run after hot reload:",{runId:te}),x(te),V({runId:te}).then(se=>{const fe=se.snapshot;if(fe?.status==="success"&&fe?.result?.success)y(!0);else if(fe?.result?.success===!1)if(fe?.result?.validationResults&&!fe?.result?.validationResults?.valid&&fe?.result?.validationResults?.remainingErrors>0){const{remainingErrors:we,errors:pe}=fe.result.validationResults,ke=`Template installation completed but ${we} validation issue${we>1?"s":""} remain unresolved.`;m(ke),E(pe||[])}else{const we=fe?.result?.message||fe?.result?.error||"Template installation failed";m(typeof we=="string"?we:String(we))}}).catch(se=>{console.error("❌ Failed to fetch run details:",se),m("Failed to retrieve installation status after reload")}))},[t,v,h,U,G,V]),g.useEffect(()=>{const te=t.get("runId"),se=t.get("resume"),fe=t.get("provider");if(te&&se==="true"&&fe&&!U&&!G&&!S&&!_&&z){x(te),k(!0);try{V({runId:te}).then(ce=>{if(ce.snapshot?.status==="running")return P.mutateAsync({runId:te})}).then(()=>{n(ce=>{const we=new URLSearchParams(ce);return we.delete("resume"),we})}).catch(ce=>{console.error("❌ Failed to resume template installation:",ce),ce.message?.includes("404")||ce.message?.includes("not found")?m("Template installation run not found. It may have expired or been completed."):m("Failed to resume template installation. Please try again.")})}catch(ce){console.error("❌ Auto-resume failed with error:",ce),m("Failed to resume template installation. Please refresh and try again.")}}},[t,e,U,G,S,_,z,V,P,n]);const K=[{value:"openai",label:"OpenAI"},{value:"anthropic",label:"Anthropic"},{value:"groq",label:"Groq"},{value:"google",label:"Google"}],ne=[{key:"tools",label:"Tools",value:N?.tools?.length?N.tools.map(te=>te).join(", "):"n/a",icon:o.jsx(zf,{})},{key:"agents",label:"Agents",value:N?.agents?.length?N.agents.map(te=>te).join(", "):"n/a",icon:o.jsx(Ii,{})},{key:"workflows",label:"Workflows",value:N?.workflows?.length?N.workflows.map(te=>te).join(", "):"n/a",icon:o.jsx(dI,{})},{key:"providers",label:"Providers",value:N?.supportedProviders?.length?N.supportedProviders.join(", "):"n/a",icon:o.jsx(Cg,{})},{key:"tags",label:"Tags",value:N?.tags?.length?N.tags.join(", "):"n/a",icon:o.jsx(uI,{})}],J=[{...ne[0]},{...ne[1]},{...ne[2]}].filter(te=>te.value!=="n/a");g.useEffect(()=>{L&&d(L)},[L]),g.useEffect(()=>{const te=Z||q;te?.phase==="error"&&te?.error&&m(typeof te.error=="string"?te.error:String(te.error))},[Z?.phase,Z?.error,q?.phase,q?.error]);const ee=te=>{s(te)},re=async te=>(i(te.provider),c(te.modelId),{message:"Model updated successfully"}),le=async()=>{const te=Object.entries(u).reduce((se,[fe,ce])=>(ce===""&&se.push(fe),se),[]);if(te.length>0){p(te);return}if(N){m(null),y(!1),x(""),C(!0);try{const fe={repo:N.githubUrl||`https://github.com/mastra-ai/template-${N.slug}`,ref:R,slug:N.slug,variables:u},{runId:ce}=await F({});x(ce),n(we=>{const pe=new URLSearchParams(we);return pe.set("runId",ce),pe.set("resume","true"),pe.set("provider",r||"openai"),pe}),await D.mutateAsync({inputData:fe,selectedModel:{provider:a,modelId:l},runId:ce})}catch(se){C(!1),m(se?.message||"Template installation failed"),console.error("Template installation failed",se)}}},X=te=>{const{name:se,value:fe}=te.target;fe.trim()===""?p(ce=>[...ce,se]):p(ce=>ce.filter(we=>we!==se)),d(ce=>({...ce,[se]:fe}))};return o.jsx(gs,{children:o.jsx("div",{className:Y("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(zxs,{isLoading:I,title:N?.title,description:N?.longDescription,imageURL:N?.imageURL,githubUrl:N?.githubUrl,infoData:ne,templateSlug:e}),N&&o.jsxs(o.Fragment,{children:[(U||G)&&o.jsx(Wxs,{name:N.title,streamResult:G?q:Z,runId:b,workflowInfo:z}),v&&o.jsx(Zxs,{name:N.title,installedEntities:J,linkComponent:za}),h&&o.jsx(Lxs,{errorMsg:h,validationErrors:T.length>0?T:Z?.validationResults?.errors||q?.validationResults?.errors}),!U&&!G&&!v&&!h&&o.jsx(Fxs,{providerOptions:K,selectedProvider:r,onProviderChange:ee,variables:u,setVariables:d,errors:f,setErrors:p,handleInstallTemplate:le,handleVariableChange:X,isLoadingEnvVars:M||H,isInstalling:B,defaultModelProvider:a,defaultModelId:l,onModelUpdate:re})]})]})})})}const Qxs=()=>{const{toolId:e,agentId:t}=hr();return o.jsx("div",{className:"h-full w-full overflow-y-auto",children:o.jsx(Ass,{toolId:e,agentId:t})})},Yxs=()=>{const{toolId:e}=hr();return o.jsx("div",{className:"h-full w-full overflow-y-hidden",children:o.jsx(Yys,{toolId:e})})};function Kxs(){const{data:e,isLoading:t,error:n}=Wy(),[r,s]=g.useState("");return n&&vs(n)?o.jsx(Jn,{children:o.jsx(Fs,{})}):n&&ys(n)?o.jsx(Jn,{children:o.jsx(Es,{resource:"workflows"})}):n?o.jsx(Jn,{children:o.jsx(qa,{title:"Failed to load workflows",message:n.message})}):Object.keys(e||{}).length===0&&!t?o.jsx(Jn,{children:o.jsx(xZr,{})}):o.jsxs(Bt,{children:[o.jsx(Bt.TopArea,{children:o.jsxs(Bt.Row,{align:"center",stack:"responsive",children:[o.jsx("div",{className:"max-w-120 flex-1",children:o.jsx(od,{onSearch:s,label:"Filter workflows",placeholder:"Filter by name or description"})}),o.jsxs(oe,{as:za,to:"/workflows/schedules",variant:"primary",className:"shrink-0",children:[o.jsx(rI,{}),"Schedules"]})]})}),o.jsx(bZr,{workflows:e||{},isLoading:t,search:r})]})}const Xxs={active:"bg-accent1",paused:"bg-accent3"},Jxs={active:"text-accent1",paused:"text-accent3"},dHt=({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 ${Xxs[e]}`,"aria-hidden":!0}),o.jsx("span",{className:`text-ui-sm ${Jxs[e]}`,children:e})]}),Cj=e=>!e||e<=0?"—":new Date(e).toLocaleString(),d2=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 fHt({status:e}){const{icon:t,color:n}=e0s(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 e0s(e){switch(e){case"success":return{icon:o.jsx(qr,{size:14}),color:"text-accent1"};case"failed":return{icon:o.jsx(or,{size:14}),color:"text-accent2"};case"running":return{icon:o.jsx(qt,{}),color:"text-neutral3"};case"suspended":return{icon:o.jsx(_V,{size:14}),color:"text-accent3"};case"canceled":return{icon:o.jsx(Dc,{size:14}),color:"text-neutral3"};case"pending":case"waiting":return{icon:o.jsx(s1,{size:14}),color:"text-neutral3"};default:return{icon:null,color:"text-neutral3"}}}const Ttt="auto auto auto auto 1fr";function t0s(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 n0s(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 r0s=3e4,s0s=5*6e4;function a0s({triggers:e,isLoading:t,workflowId:n,hasNextPage:r,isFetchingNextPage:s,setEndOfListElement:a}){const{Link:i,paths:l}=un(),c=h=>!!(n&&h.runId&&h.outcome!=="failed"),u=e.filter(c).length,{containerRef:d,getRowProps:f}=ao({count:u});let p=-1;return t?o.jsx(Fo,{columns:Ttt}):e.length===0?o.jsx(ve,{variant:"ui-md",className:"text-neutral4 p-4",children:"No trigger history yet."}):o.jsxs(he,{columns:Ttt,className:"min-w-0",scrollRef:d,children:[o.jsxs(he.Top,{children:[o.jsx(he.TopCell,{children:"Run"}),o.jsx(he.TopCell,{children:"Status"}),o.jsx(he.TopCell,{children:"Started"}),o.jsx(he.TopCell,{children:"Duration"}),o.jsx(he.TopCell,{children:" "})]}),e.map(h=>{const m=h.actualFireAt-h.scheduledFireAt,v=n0s(m),y=`Scheduled ${Cj(h.scheduledFireAt)} — published ${Cj(h.actualFireAt)} (drift ${v})`,b=h.outcome==="failed",x=b?h.error:h.run?.error,S=Math.abs(m),k=!b&&S>r0s&&S<=s0s,_=`${h.scheduleId}-${h.runId}-${h.actualFireAt}`,C=c(h);C&&(p+=1);const T=o.jsx("span",{className:C?"text-accent1 text-ui-sm font-mono whitespace-nowrap":"text-neutral3 text-ui-sm font-mono whitespace-nowrap",children:h.runId}),E=o.jsxs(o.Fragment,{children:[o.jsx(he.Cell,{children:T}),o.jsx(he.Cell,{children:o.jsxs("span",{className:"inline-flex items-center gap-2",children:[b?o.jsxs("span",{className:"text-ui-sm text-accent2 inline-flex items-center gap-1.5 whitespace-nowrap",children:[o.jsx(uc,{size:14}),"publish failed"]}):h.run?o.jsx(fHt,{status:h.run.status}):o.jsx("span",{className:"text-ui-sm text-neutral3 inline-flex items-center gap-1.5 whitespace-nowrap",children:"pending"}),x?o.jsxs(yn,{children:[o.jsx(gn,{asChild:!0,children:o.jsx("span",{className:"text-accent2 inline-flex",children:o.jsx(uc,{size:14})})}),o.jsx(vn,{children:x})]}):null]})}),o.jsx(he.Cell,{children:o.jsxs("span",{className:"inline-flex items-center gap-2 whitespace-nowrap",children:[o.jsx("span",{title:y,children:d2(h.actualFireAt)}),k?o.jsxs(yn,{children:[o.jsx(gn,{asChild:!0,children:o.jsx("span",{className:"text-accent3 inline-flex",children:o.jsx(uc,{size:14})})}),o.jsxs(vn,{children:["Published ",v," after the scheduled fire time"]})]}):null]})}),o.jsx(he.Cell,{children:h.run?o.jsx("span",{children:t0s(h.run.durationMs)}):o.jsx("span",{className:"text-neutral4",children:"—"})}),o.jsx(he.Cell,{children:" "})]});return C?o.jsx(he.RowLink,{to:l.workflowRunLink(n,h.runId),LinkComponent:i,...f(p),children:E},_):o.jsx(he.RowStatic,{children:E},_)}),o.jsx(he.NextPageLoading,{isLoading:s,hasMore:r,setEndOfListElement:a})]})}const i0s=e=>{const t=Ge();return ht({queryKey:["schedule",e],enabled:!!e,queryFn:async()=>{if(!e)throw new Error("scheduleId is required");return t.getSchedule(e)}})},jtt=25,o0s=e=>{const t=Ge(),{inView:n,setRef:r}=oS(),s=Xx({queryKey:["schedule-triggers",e],enabled:!!e,initialPageParam:void 0,queryFn:async({pageParam:u})=>e?t.listScheduleTriggers(e,{limit:jtt,toActualFireAt:u}):{triggers:[]},getNextPageParam:u=>{if(!(!u?.triggers?.length||u.triggers.length<jtt))return u.triggers[u.triggers.length-1].actualFireAt},refetchInterval:u=>(u.state.data?.pages.flatMap(p=>p.triggers)??[]).some(p=>p.run?p.run.status==="pending"||p.run.status==="running"||p.run.status==="waiting":p.outcome==="published")?5e3:!1}),a=s.data?.pages.flatMap(u=>u?.triggers??[])??[],{hasNextPage:i,isFetchingNextPage:l,fetchNextPage:c}=s;return g.useEffect(()=>{n&&i&&!l&&c()},[n,i,l,c]),{...s,data:a,setEndOfListElement:r}},l0s=e=>{const t=Ge(),n=Nr();return kn({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"]}),ze.success(s==="pause"?"Schedule paused":"Schedule resumed")},onError:r=>{ze.error(r.message)}})};function p8({label:e,children:t}){return o.jsxs("div",{className:"flex flex-col gap-1",children:[o.jsx(ve,{variant:"ui-xs",className:"text-neutral4 tracking-wide uppercase",children:e}),o.jsx("div",{className:"text-ui-md",children:t})]})}function c0s(){const{scheduleId:e}=hr(),{paths:t}=un(),{data:n,error:r}=i0s(e),{data:s,isLoading:a,error:i,hasNextPage:l,isFetchingNextPage:c,setEndOfListElement:u}=o0s(e),d=l0s(e);if(r&&vs(r))return o.jsx(Jn,{children:o.jsx(Fs,{})});if(r&&ys(r))return o.jsx(Jn,{children:o.jsx(Es,{resource:"schedules"})});if(r)return o.jsx(Jn,{children:o.jsx(qa,{title:"Failed to load schedule",message:r.message})});const f=n?.workflowId,p=n?.agentId;return o.jsxs(Bt,{children:[o.jsx(Bt.TopArea,{children:o.jsx(Bt.Row,{className:"justify-end",children:o.jsxs(Bt.Column,{className:"flex justify-end gap-2",children:[o.jsxs(oe,{as:za,to:t.schedulesLink(),variant:"ghost",children:[o.jsx(yl,{}),"Back to schedules"]}),f?o.jsx(oe,{as:za,to:t.workflowLink(f),variant:"ghost",children:"Open workflow"}):null,n?o.jsx(oe,{onClick:()=>d.mutate(n.status==="active"?"pause":"resume"),disabled:d.isPending,"data-testid":"schedule-toggle-button",children:n.status==="active"?o.jsxs(o.Fragment,{children:[o.jsx(PV,{}),"Pause"]}):o.jsxs(o.Fragment,{children:[o.jsx(Lc,{}),"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(p8,{label:p?"Agent":"Workflow",children:f?o.jsx(za,{to:t.workflowLink(f),className:"text-accent1 hover:underline",children:f}):p?o.jsx(za,{to:t.agentLink(p),className:"text-accent1 hover:underline",children:p}):"—"}),o.jsxs(p8,{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(p8,{label:"Status",children:o.jsx(dHt,{status:n.status})}),o.jsx(p8,{label:"Next fire",children:o.jsx("span",{title:Cj(n.nextFireAt),children:d2(n.nextFireAt)})})]}),o.jsxs("div",{className:"overflow-y-auto","data-testid":"schedule-triggers-panel",children:[o.jsx(ve,{variant:"ui-md",className:"mb-3",children:"Trigger history"}),i?o.jsx(qa,{title:"Failed to load trigger history",message:i.message}):o.jsx(a0s,{triggers:s??[],isLoading:a,workflowId:f,hasNextPage:l,isFetchingNextPage:c,setEndOfListElement:u})]})]}):null]})}const Ntt="minmax(0, 1.2fr) minmax(0, 1.4fr) minmax(0, 1fr) auto auto auto";function u0s({schedules:e,isLoading:t,search:n=""}){const{paths:r,Link:s}=un(),a=g.useMemo(()=>{const c=n.toLowerCase();return c?e.filter(u=>u.id.toLowerCase().includes(c)||(u.workflowId??u.agentId??"").toLowerCase().includes(c)):e},[e,n]),{containerRef:i,getRowProps:l}=ao({count:a.length});return t?o.jsx(Fo,{columns:Ntt}):o.jsxs(he,{columns:Ntt,variant:"striped",className:"min-w-0",scrollRef:i,children:[o.jsxs(he.Top,{children:[o.jsx(he.TopCell,{children:"Target"}),o.jsx(he.TopCell,{children:"Schedule ID"}),o.jsx(he.TopCell,{children:"Cron"}),o.jsx(he.TopCell,{children:"Status"}),o.jsx(he.TopCell,{children:"Next fire"}),o.jsx(he.TopCell,{children:"Last run"})]}),a.length===0&&n?o.jsx(he.NoMatch,{message:"No schedules match your search"}):null,a.length===0&&!n?o.jsx(he.NoMatch,{message:"No schedules configured"}):null,a.map((c,u)=>o.jsxs(he.RowLink,{to:r.scheduleLink(c.id),LinkComponent:s,...l(u),children:[o.jsx(he.NameCell,{children:c.workflowId??c.agentId}),o.jsx(he.Cell,{className:"min-w-0",children:o.jsx("span",{className:"text-ui-smd text-neutral3 block truncate font-mono",title:c.id,children:c.id})}),o.jsx(he.Cell,{children:o.jsxs("span",{className:"inline-flex items-center gap-2 whitespace-nowrap",children:[o.jsx("code",{className:"text-ui-sm font-mono",children:c.cron}),c.timezone?o.jsx("span",{className:"text-neutral4 text-ui-xs",children:c.timezone}):null]})}),o.jsx(he.Cell,{children:o.jsx(dHt,{status:c.status})}),o.jsx(he.Cell,{children:o.jsx("span",{className:"whitespace-nowrap",title:Cj(c.nextFireAt),children:d2(c.nextFireAt)})}),o.jsx(he.Cell,{children:c.lastRun?o.jsxs("span",{className:"inline-flex items-center gap-2 whitespace-nowrap",children:[o.jsx(fHt,{status:c.lastRun.status}),o.jsx("span",{className:"text-neutral4 text-ui-sm",title:Cj(c.lastFireAt),children:c.lastFireAt?d2(c.lastFireAt):""})]}):c.lastFireAt?o.jsx("span",{className:"whitespace-nowrap",title:Cj(c.lastFireAt),children:d2(c.lastFireAt)}):o.jsx("span",{className:"text-neutral4",children:"Never"})})]},c.id))]})}function d0s({workflowId:e}={}){const{data:t,isLoading:n,error:r}=vSe(e?{workflowId:e}:{}),[s,a]=g.useState("");return r?o.jsx(qa,{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(od,{onSearch:a,label:"Filter schedules",placeholder:"Filter by id or workflow"})}),o.jsx("div",{className:"overflow-y-auto",children:o.jsx(u0s,{schedules:t??[],isLoading:n,search:s})})]})}function f0s(){const[e]=$a(),t=e.get("workflowId")??void 0,{error:n}=vSe(t?{workflowId:t}:{});return n&&vs(n)?o.jsx(Jn,{children:o.jsx(Fs,{})}):n&&ys(n)?o.jsx(Jn,{children:o.jsx(Es,{resource:"schedules"})}):o.jsx(Bt,{children:o.jsx("div",{className:"h-full",children:o.jsx(d0s,{workflowId:t})})})}function p0s({stepGraph:e,open:t,workflowName:n}){const{nodes:r,edges:s}=UOe({stepGraph:e}),[a,i]=g.useState(!1),[l,c,u]=Q_t(r),[d]=Y_t(s),{edgeTypes:f,nodeTypes:p,styledEdges:h}=a5t({edges:d,workflowName:n,stepGraph:e});return g.useEffect(()=>{if(t){const m=setTimeout(()=>{i(!0)},500);return()=>clearTimeout(m)}},[t]),o.jsx("div",{className:"bg-surface1 relative h-full w-full",children:a?o.jsxs(G_t,{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(X_t,{variant:uy.Lines,gap:12,size:.5})]}):o.jsx("div",{className:"flex h-full w-full items-center justify-center",children:o.jsx(qt,{})})})}function h0s(){const{stepDetail:e,closeStepDetail:t}=RW();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(wx,{className:"h-4 w-4",style:{color:zu.map}}),e.type==="nested-graph"&&o.jsx(qc,{className:"h-4 w-4",style:{color:zu.workflow}}),o.jsxs("div",{className:"flex flex-col",children:[o.jsx(ve,{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(ve,{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(or,{className:"text-neutral3 h-4 w-4"})})]}),o.jsxs("div",{className:"flex-1 overflow-auto",children:[e.type==="map-config"&&e.mapConfig&&o.jsx(o2,{data:e.mapConfig}),e.type==="nested-graph"&&e.nestedGraph&&o.jsx("div",{className:"h-full min-h-[400px]",children:o.jsx(BOe,{children:o.jsx(p0s,{stepGraph:e.nestedGraph.stepGraph,open:!0,workflowName:e.nestedGraph.fullStep})},`nested-graph-${e.nestedGraph.fullStep}`)})]})]}):null}function m0s(e){const t=new Blob([JSON.stringify(e??null)]).size;return t<1024?`${t} B`:`${(t/1024).toFixed(1)} KB`}function g0s(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 v0s({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(ve,{as:"p",variant:"ui-md",className:"text-neutral6 flex items-center gap-2 font-semibold",children:[o.jsx(We,{children:o.jsx(_V,{})}),"Step suspended"]}),o.jsx(wt,{variant:"yellow",children:"Needs input"})]}),e.map((s,a)=>{const i=t.allSteps[s.stepId];if(!i||i.isWorkflow)return null;const l=i?.resumeSchema?xm(Tx(i.resumeSchema)):mf(cr(),_f());return o.jsx(y0s,{step:s,stepSchema:l,description:i.description,isStreaming:n,onResume:r},`${s.runId}-${s.stepId}-${a}`)})]})}function y0s({step:e,stepSchema:t,description:n,isStreaming:r,onResume:s}){const[a,i]=g.useState(!1);return o.jsxs("div",{className:"space-y-5",children:[o.jsxs("div",{className:"space-y-2",children:[o.jsx(ve,{as:"p",variant:"ui-md",className:"text-neutral6 truncate font-medium",children:e.stepId}),n&&o.jsx(ve,{as:"p",variant:"ui-sm",className:"text-neutral3",children:n})]}),e.suspendPayload&&o.jsxs("div",{className:"space-y-2",children:[o.jsxs(ve,{as:"p",variant:"ui-sm",className:"text-neutral3 flex items-center gap-2",children:[o.jsx(We,{children:o.jsx(MXt,{})}),"The step is asking"]}),o.jsxs(zc,{open:a,onOpenChange:i,children:[o.jsxs(fc,{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(We,{children:o.jsx(Ur,{className:Y("transition-transform text-neutral3",{"transform rotate-90":a})})}),o.jsx(ve,{as:"span",variant:"ui-md",className:"text-neutral6 truncate",children:g0s(e.suspendPayload,e.stepId)})]}),o.jsx(ve,{as:"span",variant:"ui-sm",className:"text-neutral3 shrink-0",children:m0s(e.suspendPayload)})]}),o.jsx(pc,{children:o.jsx("div",{"data-testid":"suspended-payload",className:"pt-2",children:o.jsx(Qr,{data:e.suspendPayload,className:"w-full overflow-x-auto p-2",showCopyButton:!1})})})]})]}),o.jsxs("div",{className:"space-y-3",children:[o.jsxs(ve,{as:"p",variant:"ui-sm",className:"text-neutral3 flex items-center gap-2",children:[o.jsx(We,{children:o.jsx(FXt,{})}),"Your response"]}),o.jsx("div",{className:"-mx-5",children:o.jsx(pU,{schema:t,isSubmitLoading:r,submitButtonLabel:"Resume",submitButtonIcon:o.jsx(Lc,{}),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 b0s(){const{result:e,runSnapshot:t,workflow:n,runId:r,isStreamingWorkflow:s}=g.useContext(Zl),{runId:a}=hr(),i=aCt(e,r??""),l=eer(),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(v0s,{suspendedSteps:i,workflow:n,isStreaming:s,onResume:l})},r)}const x0s=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"})]}),w0s=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"})]}),S0s=e=>e.includes("."),k0s=e=>e==="input"||e.endsWith(".input"),O0s=1;function _0s(e){return`${Number((e/1e3).toPrecision(3))}s`}function C0s(e,t){const n=Object.entries(e).filter(([i])=>!k0s(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,O0s);return{stepId:i,step:l,status:l.status,offsetPct:f,widthPct:p,durationMs:d,isRunning:c,isNestedEntry:S0s(i)}})}const E0s=({status:e})=>o.jsxs(We,{children:[e==="success"&&o.jsx(x0s,{className:"text-accent1"}),e==="failed"&&o.jsx(w0s,{className:"text-accent2"}),e==="suspended"&&o.jsx(_V,{className:"text-accent3"}),e==="waiting"&&o.jsx(Hpe,{className:"text-accent5"}),e==="skipped"&&o.jsx(Hpe,{className:"text-icon3"}),e==="running"&&o.jsx(Vs,{className:"text-accent6 animate-spin"})]}),T0s={success:"bg-accent1",failed:"bg-accent2",suspended:"bg-accent3",waiting:"bg-accent5",skipped:"bg-border1",running:"bg-accent6"};function pHt(e){return e.split(/[-_.\s]+/).filter(Boolean).map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(" ")}const Itt=e=>e&&typeof e=="object"&&!Array.isArray(e)?e:{value:e},j0s=e=>{const t=e;return YLt({duration:t.duration,date:t.date,isForEach:t.isForEach,mapConfig:t.mapConfig,canSuspend:t.canSuspend,isParallel:t.isParallel,stepGraph:t.stepGraph})},N0s=({row:e,index:t,isSelected:n,isHovered:r,onSelectStep:s,onHoverStep:a,onOpenInput:i,onOpenOutput:l})=>{const c=j0s(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:Y("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(E0s,{status:e.status})}),o.jsx("div",{className:"flex justify-center",children:o.jsx(oe,{type:"button",variant:"ghost",size:"icon-sm",tooltip:"View step input",disabled:u,className:"text-neutral3 hover:text-neutral6 disabled:cursor-not-allowed disabled:opacity-40",onClick:f=>{f.stopPropagation(),u||i(e)},children:o.jsx(XJt,{})})}),o.jsx("div",{className:"flex overflow-hidden",children:o.jsx(Xq,{indicators:c,className:"shrink-0"})}),o.jsx(ve,{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:pHt(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 ${T0s[e.status]}`,style:{left:`${e.offsetPct}%`,width:`${e.widthPct}%`}})}),o.jsx("div",{className:"flex justify-center",children:o.jsx(oe,{type:"button",variant:"ghost",size:"icon-sm",tooltip:"View step output",disabled:u,className:"text-neutral3 hover:text-neutral6 disabled:cursor-not-allowed disabled:opacity-40",onClick:f=>{f.stopPropagation(),u||l(e)},children:o.jsx(YJt,{})})}),o.jsx(ve,{as:"span",variant:"ui-sm",className:"text-neutral3 w-20 justify-self-end text-right tabular-nums",children:_0s(e.durationMs)})]},`timeline-item-${e.stepId}-${t}`)};function I0s(){const{steps:e}=oL(),{selectedStepId:t,hoverStepId:n,setSelectedStepId:r,setHoverStepId:s}=qH(),[a,i]=g.useState(()=>Date.now()),[l,c]=g.useState(!1),[u,d]=g.useState(null),f=g.useRef(null);Mbt(f,{enabled:!l});const p=C0s(e,a),h=p.some(m=>m.isRunning);return g.useEffect(()=>{if(!h)return;const m=setInterval(()=>i(Date.now()),100);return()=>clearInterval(m)},[h]),g.useEffect(()=>{if(l||p.length===0)return;const m=f.current;m&&(m.scrollTop=m.scrollHeight)},[l,p.length]),p.length===0?null:o.jsxs(o.Fragment,{children:[o.jsx("div",{"data-testid":"workflow-timeline",className:"pointer-events-none absolute right-0 bottom-0 z-20 px-2 pb-2",style:{left:"var(--workflow-left-panel-width, 0px)"},children:o.jsxs("div",{className:"rounded-studio-panel border-border1/50 bg-surface3 pointer-events-auto flex max-h-64 w-full min-w-0 flex-col gap-3 overflow-hidden border p-4 shadow-lg",children:[o.jsxs("div",{className:"flex shrink-0 items-center justify-between gap-3",children:[o.jsx(ve,{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(Xs,{className:Y("h-4 w-4 transition-transform",l&&"-rotate-90")})})]}),!l&&o.jsx("div",{ref:f,"data-testid":"workflow-timeline-list",className:"flex min-h-0 flex-col gap-2 overflow-y-auto",children:p.map((m,v)=>o.jsx(N0s,{row:m,index:v,isSelected:t===m.stepId,isHovered:n===m.stepId,onSelectStep:r,onHoverStep:s,onOpenInput:y=>d({type:"input",stepId:y.stepId,data:Itt(y.step.input)}),onOpenOutput:y=>d({type:"output",stepId:y.stepId,data:Itt(y.step.output)})},`timeline-item-${m.stepId}-${v}`))})]})}),o.jsx(gr,{open:!!u,onOpenChange:m=>!m&&d(null),children:u&&o.jsx(oCt,{data:u.data,title:`${pHt(u.stepId)} ${u.type==="input"?"input":"output"}`})})]})}const A0s=({workflowId:e,workflow:t,isLoading:n})=>{const{stepDetail:r}=RW();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(f5t,{workflowId:e,workflow:t,isLoading:n}),o.jsx(b0s,{}),o.jsx(I0s,{})]})}),r&&o.jsx("div",{className:"border-border1 min-h-0 w-[420px] overflow-hidden border-l",children:o.jsx(h0s,{})})]})},Att=()=>{const{workflowId:e}=hr(),{data:t,isLoading:n,error:r}=h4(e);return r&&vs(r)?o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Fs,{})}):r&&ys(r)?o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Es,{resource:"workflows"})}):o.jsx(i_e,{children:o.jsx(A0s,{workflowId:e,workflow:t??void 0,isLoading:n})})};function R0s(e,t){if(e==null)return{};var n,r,s=dkt(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 i0e(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 P0s(e){if(Array.isArray(e))return i0e(e)}function $0s(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function M0s(e,t){if(e){if(typeof e=="string")return i0e(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)?i0e(e,t):void 0}}function D0s(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
|
|
645
|
+
]`})]})]})}function yms({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(We,{children:o.jsx(uc,{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 bms({datasetId:e,open:t,onOpenChange:n,onSuccess:r}){const[s,a]=g.useState("upload"),[i,l]=g.useState(null),[c,u]=g.useState({current:0,total:0}),[d,f]=g.useState(null),[p,h]=g.useState(!1),{parseFile:m,isParsing:v,error:y}=hhs(),{batchInsertItems:b}=Ai(),x=g.useCallback(async I=>{try{const A=await m(I);l(A),a("preview")}catch{}},[m]),S=g.useCallback(async()=>{if(!i||i.items.length===0)return;a("importing"),h(!0);const{items:I}=i;u({current:0,total:I.length});try{await b.mutateAsync({datasetId:e,items:I.map(A=>({input:A.input,groundTruth:A.groundTruth,metadata:A.metadata}))}),f({success:I.length,errors:0})}catch{f({success:0,errors:I.length})}u({current:I.length,total:I.length}),h(!1),a("complete")},[i,b,e]),k=g.useCallback(()=>{n(!1),r?.(),d&&d.success>0&&ze.success(`Imported ${d.success} item${d.success!==1?"s":""}`),setTimeout(()=>{a("upload"),l(null),u({current:0,total:0}),f(null)},150)},[n,r,d]),_=g.useCallback(()=>{p||(n(!1),setTimeout(()=>{a("upload"),l(null),u({current:0,total:0}),f(null)},150))},[p,n]),C=i&&i.items.length>0&&i.errors.length===0,T=()=>{switch(s){case"upload":return o.jsx(vms,{onFileSelect:x,isParsing:v,error:y?.message});case"preview":return i?o.jsx("div",{className:"flex flex-col gap-4",children:i.errors.length>0?o.jsxs(o.Fragment,{children:[o.jsx(yms,{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(gms,{items:i.items,maxRows:5})]})}):null;case"importing":return o.jsxs("div",{className:"flex flex-col items-center gap-4 py-8",children:[o.jsx(qt,{}),o.jsxs("div",{className:"text-center",children:[o.jsx("div",{className:"text-neutral1 text-lg font-medium",children:"Importing items..."}),o.jsxs("div",{className:"text-neutral4 mt-1 text-sm",children:[c.current," of ",c.total]})]})]});case"complete":return o.jsxs("div",{className:"flex flex-col items-center gap-4 py-8",children:[o.jsx("div",{className:"text-4xl",children:d&&d.errors===0?"✓":"⚠"}),o.jsxs("div",{className:"text-center",children:[o.jsx("div",{className:"text-neutral1 text-lg font-medium",children:"Import Complete"}),o.jsxs("div",{className:"text-neutral4 mt-1 text-sm",children:[d?.success??0," item",d?.success!==1?"s":""," imported",d&&d.errors>0&&o.jsxs("span",{className:"text-accent2",children:[" ","(",d.errors," error",d.errors!==1?"s":"",")"]})]})]})]})}},E=()=>{switch(s){case"upload":return o.jsx(oe,{onClick:_,children:"Cancel"});case"preview":return o.jsxs(o.Fragment,{children:[o.jsx(oe,{onClick:()=>a("upload"),children:"Back"}),o.jsxs(oe,{variant:"primary",onClick:S,disabled:!C,children:["Import ",i?.items.length??0," Item",i?.items.length!==1?"s":""]})]});case"importing":return null;case"complete":return o.jsx(oe,{variant:"primary",onClick:k,children:"Done"})}},N={upload:"Import JSON",preview:"Preview Data",importing:"Importing",complete:"Import Complete"};return o.jsx(gr,{open:t,onOpenChange:_,children:o.jsxs(vr,{className:"max-h-[90vh] max-w-2xl",children:[o.jsxs(yr,{children:[o.jsx(fr,{children:N[s]}),o.jsx(_s,{children:"Import dataset items from a JSON file."})]}),o.jsx(Rr,{className:"max-h-[50vh] min-h-[200px] overflow-y-auto",children:T()}),o.jsx(Ul,{className:"flex justify-end gap-2 px-6 pt-4",children:E()})]})})}function xms(e){if(!(e instanceof HTMLElement))return!1;if(e.isContentEditable)return!0;const t=e.tagName;return t==="INPUT"||t==="TEXTAREA"||t==="SELECT"?!0:!!e.closest('[role="dialog"]:not([data-item-panel])')}function RVt({active:e,onPrevious:t,onNext:n,onClose:r}){g.useEffect(()=>{if(!e)return;const s=a=>{a.defaultPrevented||xms(a.target)||(a.key==="PageUp"?(a.preventDefault(),t?.()):a.key==="PageDown"?(a.preventDefault(),n?.()):a.key==="Escape"&&(a.preventDefault(),r()))};return window.addEventListener("keydown",s),()=>window.removeEventListener("keydown",s)},[e,t,n,r])}const PVt=g.createContext(null);function wms({datasetId:e,items:t,isLoadingItems:n,children:r}){const s=Vr(),i=Lgt("/datasets/:datasetId/items/:itemId")?.params.itemId,l=g.useCallback(h=>{s(`/datasets/${e}/items/${encodeURIComponent(h)}`)},[s,e]),c=g.useCallback(()=>{s(`/datasets/${e}`)},[s,e]),u=g.useMemo(()=>i?t.findIndex(h=>h.id===i):-1,[t,i]),d=g.useMemo(()=>{if(u<=0)return;const h=t[u-1].id;return()=>l(h)},[u,t,l]),f=g.useMemo(()=>{if(u<0||u>=t.length-1)return;const h=t[u+1].id;return()=>l(h)},[u,t,l]);RVt({active:!!i,onPrevious:d,onNext:f,onClose:c});const p=g.useMemo(()=>({datasetId:e,items:t,isLoadingItems:n,currentItemId:i,openItem:l,close:c,goToPreviousItem:d,goToNextItem:f}),[e,t,n,i,l,c,d,f]);return o.jsx(PVt.Provider,{value:p,children:r})}function $Vt(){const e=g.useContext(PVt);if(!e)throw new Error("useDatasetItemPanel must be used within a DatasetItemPanelProvider");return e}function Sms({datasetId:e,onAddItemClick:t,onNavigateToDataset:n,leftSlot:r,rightSlot:s}){const[a,i]=$a(),{activeVersion:l}=iRe(a,i),[c,u]=g.useState(!1),[d,f]=g.useState(!1),[p,h]=g.useState(!1),[m,v]=g.useState([]),[y,b]=g.useState(!1),[x,S]=g.useState([]),[k,_]=g.useState(!1),[C,T]=g.useState([]),[E,N]=g.useState(0),[I,A]=g.useState(""),[R]=ZH(I,300),{data:L}=Py(e),{data:M=[],isLoading:z,setEndOfListElement:H,isFetchingNextPage:F,hasNextPage:B}=V1(e,R||void 0,l),{deleteItems:V}=Ai(),{currentItemId:D,openItem:Z,close:U}=$Vt(),P=le=>{D===le?U():Z(le)},q=le=>{v(le),h(!0)},G=le=>{S(le),b(!0)},K=le=>{b(le),le||(S([]),N(X=>X+1))},ne=le=>{T(le),_(!0)},J=async()=>{await V.mutateAsync({datasetId:e,itemIds:C}),ze.success(`Deleted ${C.length} items`),_(!1),T([]),N(le=>le+1)},ee=le=>{h(!1),v([]),N(X=>X+1),n?.(le)},re=le=>{h(le),le||(v([]),N(X=>X+1))};return o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"grid h-full overflow-auto",children:o.jsx(mms,{items:M,leftSlot:r,rightSlot:s,isLoading:z,onItemClick:P,featuredItemId:D,onAddClick:t??(()=>{}),onImportClick:()=>u(!0),onImportJsonClick:()=>f(!0),onBulkDeleteClick:ne,onCreateDatasetClick:q,onAddToDatasetClick:G,datasetName:L?.name,clearSelectionTrigger:E,setEndOfListElement:H,isFetchingNextPage:F,hasNextPage:B,searchQuery:I,activeSearchQuery:R,onSearchChange:A,currentDatasetVersion:L?.version})}),o.jsx(ums,{datasetId:e,open:c,onOpenChange:u}),o.jsx(bms,{datasetId:e,open:d,onOpenChange:f}),o.jsx(Vhs,{open:p,onOpenChange:re,items:m,onSuccess:ee}),o.jsx(Hhs,{open:y,onOpenChange:K,items:x,currentDatasetId:e}),o.jsx($t,{open:k,onOpenChange:_,children:o.jsxs($t.Content,{children:[o.jsxs($t.Header,{children:[o.jsx($t.Title,{children:"Delete Items"}),o.jsxs($t.Description,{children:["Are you sure you want to delete ",C.length," item",C.length!==1?"s":"","? This action cannot be undone."]})]}),o.jsxs($t.Footer,{children:[o.jsx($t.Cancel,{children:"Cancel"}),o.jsx($t.Action,{onClick:J,children:V.isPending?"Deleting...":"Delete"})]})]})})]})}function MVt({selectedScorers:e,setSelectedScorers:t,disabled:n=!1,container:r,label:s="Scorers (Optional)",helperText:a}){const{data:i,isLoading:l}=lh(),c=Object.entries(i??{}).filter(([,u])=>u.isRegistered).map(([u,d])=>({value:u,label:d.scorer?.config?.name||u,description:d.scorer?.config?.description||""}));return o.jsxs("div",{className:"grid gap-2",children:[o.jsx(Dt,{children:s}),a?o.jsx("p",{className:"text-muted-foreground text-xs",children:a}):null,o.jsx(zl,{multiple:!0,options:c,value:e,onValueChange:t,placeholder:"Select scorers...",searchPlaceholder:"Search scorers...",emptyText:"No scorers available",disabled:n||l,container:r})]})}function DVt({overrideEnabled:e,onOverrideEnabledChange:t,selectedScorerIds:n,onSelectedScorerIdsChange:r,disabled:s=!1}){return o.jsxs("div",{className:"grid gap-3",children:[o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsx(Bl,{id:"override-dataset-scorers",checked:e,onCheckedChange:t,disabled:s}),o.jsx(Dt,{htmlFor:"override-dataset-scorers",children:"Override dataset scorers"})]}),o.jsx("p",{className:"text-muted-foreground text-xs",children:e?"Only selected scorers run for this item. Leave empty to run no scorers.":"Use scorers attached to the dataset."}),e?o.jsx(MVt,{selectedScorers:n,setSelectedScorers:r,disabled:s,label:"Item scorers",helperText:"Choose from scorers that can be resolved by this Mastra instance."}):null]})}function kms(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 Lie({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 Oms({datasetId:e,open:t,onOpenChange:n,onSuccess:r}){const[s,a]=g.useState("{}"),[i,l]=g.useState(""),[c,u]=g.useState(""),[d,f]=g.useState(""),[p,h]=g.useState(!1),[m,v]=g.useState([]),[y,b]=g.useState(""),[x,S]=g.useState(null),{addItem:k}=Ai(),_=()=>{a("{}"),l(""),u(""),f(""),h(!1),v([]),b(""),S(null)},C=R=>{_(),n(R)},T=async R=>{R.preventDefault();let L;try{L=JSON.parse(s)}catch{ze.error("Input must be valid JSON");return}let M;if(i.trim())try{M=JSON.parse(i)}catch{ze.error("Ground Truth must be valid JSON");return}let z;if(c.trim())try{z=JSON.parse(c)}catch{ze.error("Expected Trajectory must be valid JSON");return}let H;if(d.trim())try{const B=JSON.parse(d);if(!Array.isArray(B)){ze.error("Tool Mocks must be a JSON array");return}H=B}catch{ze.error("Tool Mocks must be valid JSON");return}let F;if(y.trim())try{F=JSON.parse(y)}catch{ze.error("Request Context must be valid JSON");return}try{await k.mutateAsync({datasetId:e,input:L,groundTruth:M,expectedTrajectory:z,toolMocks:H,scorerIds:p?m:void 0,requestContext:F}),ze.success("Item added successfully"),C(!1),r?.()}catch(B){const V=kms(B);V?S(V):ze.error(`Failed to add item: ${B instanceof Error?B.message:"Unknown error"}`)}},E=R=>{a(R),x?.field==="input"&&S(null)},N=R=>{l(R),x?.field==="groundTruth"&&S(null)},I=R=>{f(R),x?.field==="toolMocks"&&S(null)},A=()=>{C(!1)};return o.jsxs(Sa,{dialogTitle:"Add Item",dialogDescription:"Create a new dataset item",isOpen:t,onClose:A,level:1,children:[o.jsx(Sa.Top,{children:"Add Item"}),o.jsxs(Sa.Content,{children:[o.jsx(Sa.Header,{children:o.jsx(Sa.Heading,{children:"Add Item"})}),o.jsxs("form",{onSubmit:T,className:"grid gap-6",children:[o.jsxs("div",{className:"grid gap-2",children:[o.jsx(Dt,{htmlFor:"item-input",children:"Input (JSON) *"}),o.jsx(Qr,{value:s,onChange:E,showCopyButton:!1,className:"min-h-[240px]"}),x?.field==="input"&&o.jsx(Lie,{field:"input",errors:x.errors})]}),o.jsxs("div",{className:"grid gap-2",children:[o.jsx(Dt,{htmlFor:"item-ground-truth",children:"Ground Truth (JSON, optional)"}),o.jsx(Qr,{value:i,onChange:N,showCopyButton:!1,className:"min-h-[200px]"}),x?.field==="groundTruth"&&o.jsx(Lie,{field:"groundTruth",errors:x.errors})]}),o.jsxs("div",{className:"grid gap-2",children:[o.jsx(Dt,{htmlFor:"item-trajectory",children:"Expected Trajectory (JSON, optional)"}),o.jsx(Qr,{value:c,onChange:u,showCopyButton:!1,className:"min-h-[200px]"})]}),o.jsxs("div",{className:"grid gap-2",children:[o.jsx(Dt,{htmlFor:"item-tool-mocks",children:"Tool Mocks (JSON array, optional)"}),o.jsx(Qr,{value:d,onChange:I,showCopyButton:!1,className:"min-h-[200px]"}),x?.field==="toolMocks"&&o.jsx(Lie,{field:"toolMocks",errors:x.errors})]}),o.jsx(DVt,{overrideEnabled:p,onOverrideEnabledChange:h,selectedScorerIds:m,onSelectedScorerIdsChange:v,disabled:k.isPending}),o.jsxs("div",{className:"grid gap-2",children:[o.jsx(Dt,{htmlFor:"item-request-context",children:"Request Context (JSON, optional)"}),o.jsx(Qr,{value:y,onChange:b,showCopyButton:!1,className:"min-h-[200px]"})]}),o.jsxs("div",{className:"flex justify-end gap-2 pt-4",children:[o.jsx(oe,{type:"button",onClick:A,children:"Cancel"}),o.jsx(oe,{type:"submit",variant:"primary",disabled:k.isPending,children:k.isPending?"Adding...":"Add Item"})]})]})]})]})}function _ms({item:e}){return o.jsx(Aa,{withMargins:!1,children:o.jsxs(Aa.Column,{children:[o.jsxs(Aa.Title,{size:"smaller",children:[o.jsx(TV,{}),o.jsx("span",{className:"truncate",children:e.id}),o.jsx(ka,{content:e.id,tooltip:`Copy item ID: ${e.id}`})]}),o.jsxs(Aa.Description,{children:[o.jsxs(Rl,{children:[o.jsx(NQt,{})," Created ",ur(new Date(e.createdAt),"MMM d, yyyy h:mm aaa")]}),e.datasetVersion!=null&&o.jsxs(Rl,{children:[o.jsx(cI,{})," Version v",e.datasetVersion]})]})]})})}function oRe({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(q7r,{children:[o.jsx(Sa.CodeSection,{title:"Input",icon:o.jsx(xx,{}),codeStr:t}),o.jsx(Sa.CodeSection,{title:"Ground Truth",icon:o.jsx(tm,{}),codeStr:n}),s&&o.jsx(Sa.CodeSection,{title:"Expected Trajectory",icon:o.jsx(C0e,{}),codeStr:s}),o.jsx(Sa.CodeSection,{title:"Scorers",icon:o.jsx(AV,{}),codeStr:e.scorerIds===void 0?"Inherited from dataset":JSON.stringify(e.scorerIds,null,2)}),o.jsx(Sa.CodeSection,{title:"Metadata",icon:o.jsx(uI,{}),codeStr:r})]})}function Fie({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 Cms({inputValue:e,setInputValue:t,groundTruthValue:n,setGroundTruthValue:r,metadataValue:s,setMetadataValue:a,trajectoryValue:i,setTrajectoryValue:l,toolMocksValue:c,setToolMocksValue:u,scorerOverrideEnabled:d,setScorerOverrideEnabled:f,selectedScorerIds:p,setSelectedScorerIds:h,requestContextValue:m,setRequestContextValue:v,validationErrors:y,onSave:b,onCancel:x,isSaving:S}){return o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"mb-4",children:o.jsxs("h3",{className:"flex items-center gap-2 text-lg font-medium",children:[o.jsx(pm,{className:"h-5 w-5"})," Edit Item"]})}),o.jsxs("div",{className:"space-y-6",children:[o.jsxs("div",{className:"space-y-2",children:[o.jsx(Dt,{children:"Input (JSON) *"}),o.jsx(Qr,{value:e,onChange:t,showCopyButton:!1,className:"min-h-[120px]"}),y?.field==="input"&&o.jsx(Fie,{field:"input",errors:y.errors})]}),o.jsxs("div",{className:"space-y-2",children:[o.jsx(Dt,{children:"Ground Truth (JSON, optional)"}),o.jsx(Qr,{value:n,onChange:r,showCopyButton:!1,className:"min-h-[100px]"}),y?.field==="groundTruth"&&o.jsx(Fie,{field:"groundTruth",errors:y.errors})]}),o.jsxs("div",{className:"space-y-2",children:[o.jsx(Dt,{children:"Expected Trajectory (JSON, optional)"}),o.jsx(Qr,{value:i,onChange:l,showCopyButton:!1,className:"min-h-[80px]"})]}),o.jsxs("div",{className:"space-y-2",children:[o.jsx(Dt,{children:"Tool Mocks (JSON array, optional)"}),o.jsxs("p",{className:"text-muted-foreground text-xs",children:["Ordered static mocks served in place of executing the tool. Each entry is"," ",o.jsx("code",{children:'{ "toolName", "args", "output" }'}),". Calling a mocked tool with non-matching args fails the item; unmocked tools run live."]}),o.jsx(Qr,{value:c,onChange:u,showCopyButton:!1,className:"min-h-[100px]"}),y?.field==="toolMocks"&&o.jsx(Fie,{field:"toolMocks",errors:y.errors})]}),o.jsx(DVt,{overrideEnabled:d,onOverrideEnabledChange:f,selectedScorerIds:p,onSelectedScorerIdsChange:h,disabled:S}),o.jsxs("div",{className:"space-y-2",children:[o.jsx(Dt,{children:"Request Context (JSON, optional)"}),o.jsx(Qr,{value:m,onChange:v,showCopyButton:!1,className:"min-h-[80px]"})]}),o.jsxs("div",{className:"space-y-2",children:[o.jsx(Dt,{children:"Metadata (JSON, optional)"}),o.jsx(Qr,{value:s,onChange:a,showCopyButton:!1,className:"min-h-[80px]"})]}),o.jsxs("div",{className:"flex gap-2 pt-4",children:[o.jsx(oe,{variant:"primary",onClick:b,disabled:S,children:S?"Saving...":"Save Changes"}),o.jsx(oe,{onClick:x,disabled:S,children:"Cancel"})]})]})]})}const Ems=[{value:"agent",label:"Agent"},{value:"workflow",label:"Workflow"},{value:"scorer",label:"Scorer"}];function Tms({targetType:e,setTargetType:t,targetId:n,setTargetId:r,container:s}){const{data:a,isLoading:i}=zm(),{data:l,isLoading:c}=Wy(),{data:u,isLoading:d}=lh(),f=e==="agent"?Object.entries(a??{}).map(([v,y])=>({value:v,label:y.name??v})):e==="workflow"?Object.entries(l??{}).map(([v,y])=>({value:v,label:y.name??v})):e==="scorer"?Object.entries(u??{}).map(([v,y])=>({value:v,label:y.scorer?.config?.name??v})):[],p=e==="agent"&&i||e==="workflow"&&c||e==="scorer"&&d,h=v=>{t(v),r("")},m=e==="agent"?"Agent":e==="workflow"?"Workflow":"Scorer";return o.jsxs("div",{className:"grid gap-6",children:[o.jsxs("div",{className:"grid gap-2",children:[o.jsx(Dt,{children:"Target Type"}),o.jsx(zl,{options:Ems,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(zl,{options:f,value:n,onValueChange:r,placeholder:`Select ${e}`,searchPlaceholder:"Search...",emptyText:"No targets available",disabled:p,container:s})]})]})}function jms({requestContextSchema:e,onChange:t}){const n=g.useMemo(()=>{try{return xm(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(K3,{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 nY({initialDatasetId:e,initialDatasetVersion:t,initialScorerIds:n,initialTargetType:r,initialTargetId:s,open:a,onOpenChange:i,onSuccess:l}){const c=g.useRef(null),[u,d]=g.useState(e??""),[f,p]=g.useState(t??null),[h,m]=g.useState(r??""),[v,y]=g.useState(s??""),[b,x]=g.useState(n??[]),[S,k]=g.useState({}),[_,C]=g.useState(""),{triggerExperiment:T}=Ai(),{data:E}=Py(u),N=E?.requestContextSchema,I=!!(N&&Object.keys(N).length>0),A=u&&h&&v,R=T.isPending,L=B=>{d(B),p(null),k({})},M=()=>{d(e??""),p(t??null),m(r??""),y(s??""),x(n??[]),k({}),C("")},z=()=>{if(I){const B=Object.entries(S).filter(([,V])=>V!==void 0&&V!=="");return B.length>0?Object.fromEntries(B):void 0}if(_.trim()){let B;try{B=JSON.parse(_)}catch{throw new Error("Request Context must be valid JSON")}if(!B||typeof B!="object"||Array.isArray(B))throw new Error("Request Context must be a JSON object");return B}},H=async()=>{if(!A)return;let B;try{B=z()}catch(V){const D=V instanceof Error?V.message:"Request Context must be valid JSON";gu.error(D);return}try{const V=await T.mutateAsync({datasetId:u,targetType:h,targetId:v,scorerIds:b.length>0?b:void 0,version:f??void 0,requestContext:B});gu.success("Experiment triggered successfully"),i(!1),l?.(V.experimentId),M()}catch(V){const D=V instanceof Error?V.message:"Failed to trigger experiment";gu.error(D)}},F=()=>{R||(i(!1),M())};return o.jsx(gr,{open:a,onOpenChange:F,children:o.jsxs(vr,{ref:c,children:[o.jsxs(yr,{children:[o.jsx(fr,{children:"Run Experiment"}),o.jsx(_s,{children:f!=null?`Execute items from version v${f} of the dataset against a target.`:"Execute dataset items against a target."})]}),o.jsxs(Rr,{className:"grid gap-6",children:[o.jsxs("div",{className:"grid gap-6",children:[o.jsxs("div",{className:"grid gap-2",children:[o.jsx(Dt,{children:"Dataset"}),o.jsx(Khs,{value:u,onValueChange:L,container:c})]}),u&&o.jsxs("div",{className:"grid gap-2",children:[o.jsx(Dt,{children:"Version"}),o.jsx(IVt,{datasetId:u,value:f,onValueChange:p,container:c})]})]}),o.jsx(Tms,{targetType:h,setTargetType:m,targetId:v,setTargetId:y,container:c}),o.jsx(MVt,{selectedScorers:b,setSelectedScorers:x,disabled:R,container:c}),I?o.jsx(jms,{requestContextSchema:N,onChange:k}):o.jsxs("div",{className:"space-y-2",children:[o.jsx(Dt,{children:"Request Context (JSON, optional)"}),o.jsx(Qr,{value:_,onChange:C,showCopyButton:!1,className:"min-h-[80px]"})]})]}),o.jsxs(Ul,{className:"px-6 pt-4",children:[o.jsx(oe,{onClick:F,disabled:R,children:"Cancel"}),o.jsx(oe,{variant:"primary",onClick:H,disabled:!A||R,children:R?o.jsxs(o.Fragment,{children:[o.jsx(qt,{className:"h-4 w-4"}),"Running..."]}):"Run"})]})]})})}const LVt=g.createContext(null);function Nms({experimentId:e,datasetId:t,experimentStatus:n,results:r,isLoadingResults:s,hasNextPage:a,children:i}){const l=Vr(),u=Lgt("/experiments/:experimentId/items/:itemId")?.params.itemId,d=g.useCallback(b=>{l(`/experiments/${e}/items/${encodeURIComponent(b)}`)},[l,e]),f=g.useCallback(()=>{l(`/experiments/${e}`)},[l,e]),p=g.useCallback(b=>{l(`/experiments/${e}?review=${encodeURIComponent(b)}`)},[l,e]),h=g.useMemo(()=>u?r.findIndex(b=>b.itemId===u):-1,[r,u]),m=g.useMemo(()=>{if(h<=0)return;const b=r[h-1].itemId;return()=>d(b)},[h,r,d]),v=g.useMemo(()=>{if(h<0||h>=r.length-1)return;const b=r[h+1].itemId;return()=>d(b)},[h,r,d]);RVt({active:!!u,onPrevious:m,onNext:v,onClose:f});const y=g.useMemo(()=>({experimentId:e,datasetId:t,experimentStatus:n,results:r,isLoadingResults:s,hasNextPage:a,currentItemId:u,openItem:d,close:f,openInReview:p,goToPreviousItem:m,goToNextItem:v}),[e,t,n,r,s,a,u,d,f,p,m,v]);return o.jsx(LVt.Provider,{value:y,children:i})}function FVt(){const e=g.useContext(LVt);if(!e)throw new Error("useExperimentItemPanel must be used within an ExperimentItemPanelProvider");return e}function Ims({results:e,isLoading:t,featuredResultId:n,onResultClick:r,columns:s,scoresByItemId:a,scorerIds:i,setEndOfListElement:l,isFetchingNextPage:c,hasNextPage:u,selectedIds:d,onToggleSelect:f}){const{Link:p,paths:h}=un(),m=!!(d&&f),v=[m?"auto":"",...s.map(k=>k.size)].filter(Boolean).join(" "),y=s.some(k=>k.name==="input"),{containerRef:b,getRowProps:x}=ao({count:e.length}),S=k=>i?.includes(k.name)?o.jsx(he.TopCell,{children:o.jsxs(p,{href:h.scorerLink(k.name),className:"flex min-w-0 items-center gap-1.5 hover:underline [&>svg]:size-3.5 [&>svg]:shrink-0",children:[o.jsx(AC,{}),o.jsx("span",{className:"min-w-0 truncate",children:k.label})]})},k.name):o.jsx(he.TopCell,{children:k.label},k.name);return t?o.jsx(Fo,{columns:v}):o.jsxs(he,{columns:v,className:"min-w-0",scrollRef:b,children:[o.jsxs(he.Top,{hasLeadingCell:m,children:[m&&o.jsx(he.TopCell,{children:" "}),m?o.jsx(he.TopCells,{colStart:2,children:s.map(S)}):s.map(S)]}),e.length===0?o.jsx(he.NoMatch,{message:"No results yet"}):o.jsxs(o.Fragment,{children:[e.map((k,_)=>{const C=!!k.error,T=k.id===n,E=o.jsxs(o.Fragment,{children:[o.jsxs(he.Cell,{className:"text-ui-smd text-neutral3 flex items-center gap-1.5 tracking-wide",children:[o.jsx("span",{children:k.itemId?.slice(0,8)??""}),C&&o.jsxs(yn,{children:[o.jsx(gn,{render:o.jsx(yO,{role:"img","aria-label":"Error",className:"text-error size-3.5"})}),o.jsx(vn,{children:k.error?.message||"Error"})]})]}),y&&o.jsx(he.TextCell,{font:"mono",children:Rms(Ams(k.input),200)}),i?.map(N=>{const A=a?.[k.itemId]?.find(R=>R.scorerId===N);return o.jsx(he.Cell,{className:"text-neutral3 text-ui-smd font-mono",children:A!=null?A.score.toFixed(3):"-"},N)})]});return m?o.jsxs(he.RowWrapper,{children:[o.jsx(he.SelectCell,{checked:d.has(k.id),onToggle:()=>f(k.id),"aria-label":`Select result ${k.itemId}`}),o.jsx(he.RowButton,{colStart:2,featured:T,"data-selected":T||void 0,onClick:()=>r(k.id),...x(_),children:E})]},k.id):o.jsx(he.RowButton,{featured:T,"data-selected":T||void 0,onClick:()=>r(k.id),...x(_),children:E},k.id)}),o.jsx(he.NextPageLoading,{isLoading:c,hasMore:u,setEndOfListElement:l})]})]})}function Ams(e){return e==null?"-":typeof e=="string"?e:JSON.stringify(e,null,2)}function Rms(e,t){return e.length<=t?e:e.slice(0,t-1)+"..."}function Pms({scoresByItemId:e,experimentStatus:t}){const{Link:n,paths:r}=un(),{data:s}=lh(),a=g.useMemo(()=>{if(!e)return[];const i={};for(const l of Object.values(e))for(const c of l)i[c.scorerId]||(i[c.scorerId]={sum:0,count:0}),i[c.scorerId].sum+=c.score,i[c.scorerId].count++;return Object.entries(i).map(([l,{sum:c,count:u}])=>({scorerId:l,avg:c/u})).sort((l,c)=>l.scorerId.localeCompare(c.scorerId))},[e]);if(a.length===0){const i=t==="running"||t==="pending",l=e!==void 0;let c,u;return i?(c="Experiment in progress",u="Summary metrics will appear here once the experiment completes."):l?(c="No scorers configured",u="Add scorers when triggering an experiment to evaluate results and see summary metrics here."):(c="Loading scores",u="Fetching scorer results…"),o.jsxs("div",{className:"text-ui-sm text-neutral3 flex items-center gap-2",children:[o.jsx(Zp,{className:"text-neutral3 size-4 shrink-0"}),o.jsx("span",{className:"text-neutral4",children:c}),o.jsx("span",{className:"truncate",children:u})]})}return o.jsx("div",{className:"flex items-stretch gap-2 overflow-x-auto pb-1",children:a.map(({scorerId:i,avg:l})=>{const c=s?.[i]?.scorer?.config?.name??i;return o.jsxs(Xr,{className:"w-52 min-w-0 flex-none p-3",children:[o.jsxs(n,{href:r.scorerLink(i),className:"text-ui-sm text-neutral3 [&>svg]:text-neutral3 flex min-w-0 items-center gap-1.5 hover:underline [&>svg]:size-3 [&>svg]:shrink-0",children:[o.jsxs(yn,{children:[o.jsx(gn,{render:o.jsx(AC,{role:"img","aria-label":"Scorer"})}),o.jsx(vn,{children:"Scorer"})]}),o.jsx("span",{className:"truncate",children:c})]}),o.jsxs("strong",{className:"text-ui-lg text-neutral4 font-semibold",children:[l.toFixed(3),o.jsx("span",{className:"text-ui-sm text-neutral3 ml-1.5 font-normal",children:"avg score"})]})]},i)})})}const zVt=e=>{const t=Ge(),{data:n}=hAe(e),r=n?.experiments;return ht({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})},$ms=e=>{const t=Ge(),{data:n}=hAe(e),r=n?.experiments;return ht({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 rY({label:e,wide:t=!1,children:n}){return o.jsxs("div",{className:Y("pointer-events-none absolute inset-0 z-30","grid transition-[grid-template-columns] duration-300 ease-in-out",t?"grid-cols-[1fr_4fr]":"grid-cols-[1fr_1fr]"),children:[o.jsx("div",{className:"pointer-events-none"}),o.jsx("div",{role:"dialog","data-item-panel":!0,"aria-label":e,className:"pointer-events-auto h-full min-h-0 min-w-0 overflow-y-auto",children:n})]})}function Mms(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 Dms({datasetId:e,experimentId:t,featuredItemId:n,detailPanelVariant:r="inline"}){const s=Ge(),{data:a}=Py(e),{data:i,isLoading:l}=zVt(e),{data:c,isLoading:u}=$ms(e),d=g.useMemo(()=>t?i?.filter(Pe=>Pe.experimentId===t):i,[i,t]),f=g.useMemo(()=>t?c?.filter(Pe=>Pe.experimentId===t):c,[c,t]),{updateExperimentResult:p}=Ai(),[h,m]=g.useState(n??null);g.useEffect(()=>{n!==void 0&&m(n)},[n]);const[v,y]=g.useState(null),[b,x]=g.useState(new Set),[S,k]=g.useState(!1),[_,C]=g.useState(!1),[T,E]=g.useState(!1),[N,I]=g.useState(""),[A,R]=g.useState(""),[L,M]=g.useState(""),[z,H]=g.useState([]),[F,B]=g.useState(!1),[V,D]=g.useState(null),Z=g.useMemo(()=>V??d??[],[V,d]);g.useEffect(()=>{D(null)},[e,t]),g.useEffect(()=>{d&&V===null&&D(d)},[d,V]);const U=g.useMemo(()=>{const Pe=new Set;if(a?.tags)for(const be of a.tags)Pe.add(be);for(const be of Z)for(const Se of be.tags)Pe.add(Se);return[...Pe].sort()},[a,Z]),P=g.useCallback(Pe=>{!a||!e||(a.tags??[]).includes(Pe)},[a,e]),q=g.useMemo(()=>v?v==="__untagged__"?Z.filter(Pe=>Pe.tags.length===0):Z.filter(Pe=>Pe.tags.includes(v)):Z,[Z,v]),G=g.useMemo(()=>{const Pe=new Map;for(const be of Z)for(const Se of be.tags)Pe.set(Se,(Pe.get(Se)??0)+1);return[...Pe.entries()].sort((be,Se)=>Se[1]-be[1])},[Z]),K=g.useMemo(()=>Z.filter(Pe=>Pe.tags.length===0).length,[Z]),ne=g.useMemo(()=>{let Pe=0;return v&&Pe++,S&&Pe++,Pe},[v,S]),J=g.useCallback((Pe,be)=>{D(Re=>(Re??[]).map(Be=>Be.id===Pe?{...Be,tags:be}:Be));const Se=Z.find(Re=>Re.id===Pe);Se?.experimentId&&Se?.datasetId&&p.mutate({datasetId:Se.datasetId,experimentId:Se.experimentId,resultId:Se.id,tags:be})},[Z,p]),ee=g.useCallback((Pe,be)=>{const Se=Z.find(Re=>Re.id===Pe);Se?.traceId&&be!==void 0&&s.createFeedback({feedback:{traceId:Se.traceId,source:"studio",feedbackSource:"studio",feedbackType:"rating",value:be==="positive"?1:-1,reviewStatus:"reviewed",experimentId:Se.experimentId??void 0,sourceId:Se.id}}).catch(()=>{}),D(Re=>(Re??[]).map(Be=>Be.id===Pe?{...Be,rating:be}:Be))},[Z,s]),re=g.useCallback((Pe,be)=>{const Se=Z.find(Re=>Re.id===Pe);Se?.experimentId&&Se?.datasetId&&p.mutate({datasetId:Se.datasetId,experimentId:Se.experimentId,resultId:Se.id,comment:be}),Se?.traceId&&s.createFeedback({feedback:{traceId:Se.traceId,source:"studio",feedbackSource:"studio",feedbackType:"comment",value:be,comment:be,reviewStatus:"reviewed",experimentId:Se.experimentId??void 0,sourceId:Se.id}}).catch(()=>{}),D(Re=>(Re??[]).map(Be=>Be.id===Pe?{...Be,comment:be}:Be))},[Z,s,p]),le=g.useCallback(Pe=>{const be=Z.find(Se=>Se.id===Pe);D(Se=>(Se??[]).filter(Re=>Re.id!==Pe)),x(Se=>{const Re=new Set(Se);return Re.delete(Pe),Re}),h===Pe&&m(null),be?.experimentId&&be?.datasetId&&p.mutate({datasetId:be.datasetId,experimentId:be.experimentId,resultId:be.id,status:null})},[Z,p,h]),X=g.useCallback(Pe=>{const be=Z.find(Se=>Se.id===Pe);D(Se=>(Se??[]).filter(Re=>Re.id!==Pe)),x(Se=>{const Re=new Set(Se);return Re.delete(Pe),Re}),h===Pe&&m(null),be?.experimentId&&be?.datasetId&&p.mutate({datasetId:be.datasetId,experimentId:be.experimentId,resultId:be.id,status:"complete"})},[Z,p,h]),te=g.useMemo(()=>{const Pe=S?f??[]:q;return!S||!v?Pe:v==="__untagged__"?Pe.filter(be=>be.tags.length===0):Pe.filter(be=>be.tags.includes(v))},[S,f,q,v]),se=S?u:!1,fe=g.useMemo(()=>new Set(te.map(Pe=>Pe.id)),[te]),ce=g.useMemo(()=>[...b].filter(Pe=>fe.has(Pe)).length,[b,fe]),we=te.length>0&&ce===te.length,pe=ce>0&&!we,ke=g.useCallback(Pe=>{x(be=>{const Se=new Set(be);return Se.has(Pe)?Se.delete(Pe):Se.add(Pe),Se})},[]),Ne=g.useCallback(()=>{x(we?new Set:new Set(te.map(Pe=>Pe.id)))},[we,te]),$e=g.useCallback(Pe=>{for(const be of b){const Se=Z.find(Re=>Re.id===be);Se&&!Se.tags.includes(Pe)&&J(be,[...Se.tags,Pe])}},[Z,b,J]),Ae=g.useCallback(Pe=>{for(const be of b){const Se=Z.find(Re=>Re.id===be);Se&&Se.tags.includes(Pe)&&J(be,Se.tags.filter(Re=>Re!==Pe))}},[Z,b,J]),Ie=g.useCallback(()=>{for(const Pe of b)X(Pe);x(new Set)},[b,X]),ae=g.useCallback(()=>{for(const Pe of b)le(Pe);x(new Set)},[b,le]),me=g.useCallback(()=>{I(""),E(!0)},[]),ue=g.useCallback(async()=>{if(!(!A||!L)){C(!0),E(!1);try{const Pe=Z.filter(Se=>b.has(Se.id));if(Pe.length===0){C(!1);return}const be=await s.clusterFailures({modelId:`${A}/${L}`,items:Pe.map(Se=>({id:Se.id,input:Se.input,output:Se.output??void 0,error:typeof Se.error=="string"?Se.error:Se.error?String(Se.error):void 0,scores:Se.scores,existingTags:Se.tags.length>0?Se.tags:void 0})),availableTags:U.length>0?U:void 0,prompt:N||void 0});be.proposedTags&&be.proposedTags.length>0&&(H(be.proposedTags.map(Se=>({...Se,accepted:!0}))),B(!0))}catch(Pe){console.error("Analysis failed:",Pe)}finally{C(!1)}}},[A,L,Z,b,s,U,N]),xe=g.useCallback(()=>{for(const Pe of z){if(!Pe.accepted)continue;const be=Z.find(Se=>Se.id===Pe.itemId);if(be){const Se=[...new Set([...be.tags,...Pe.tags])];J(be.id,Se)}}B(!1)},[z,Z,J]),Ee=g.useCallback(Pe=>{m(be=>be===Pe?null:Pe)},[]),ye=g.useMemo(()=>h?te.find(Pe=>Pe.id===h)??null:null,[h,te]),Ce=h?te.findIndex(Pe=>Pe.id===h):-1,Ue=Ce>0?()=>m(te[Ce-1].id):void 0,Le=Ce>=0&&Ce<te.length-1?()=>m(te[Ce+1].id):void 0,He="auto minmax(15rem,1fr) 10rem 8rem 6rem 6rem",{containerRef:Je,getRowProps:ot}=ao({count:te.length});if(l)return o.jsx("div",{className:"flex flex-1 items-center justify-center",children:o.jsx(qt,{className:"h-6 w-6"})});const gt=ye?o.jsx(NUt,{className:"h-full",item:ye,isCompleted:S,tagVocabulary:U,onRate:Pe=>ee(ye.id,Pe),onSetTags:Pe=>{J(ye.id,Pe);for(const be of Pe)U.includes(be)||P(be)},onComment:Pe=>re(ye.id,Pe),onRemove:()=>le(ye.id),onComplete:S?void 0:()=>X(ye.id),onPrevious:Ue,onNext:Le,onClose:()=>m(null)}):null;return o.jsxs("div",{className:Y("flex h-full min-h-0 flex-1",r==="overlay"?"overflow-visible":"overflow-hidden"),children:[o.jsx(gr,{open:T,onOpenChange:E,children:o.jsxs(vr,{children:[o.jsxs(yr,{children:[o.jsx(fr,{children:"Analyze Items"}),o.jsx(_s,{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(Vy,{value:A,onValueChange:R})]}),o.jsxs("div",{children:[o.jsx(Dt,{className:"mb-1 block text-xs",children:"Model"}),o.jsx(Hy,{llmId:A,value:L,onValueChange:M})]})]}),o.jsxs(ve,{variant:"ui-xs",className:"text-neutral3",children:[b.size," item",b.size!==1?"s":""," will be analyzed"]}),o.jsxs("div",{children:[o.jsx(Dt,{className:"text-xs",children:"Instructions (optional)"}),o.jsx(il,{value:N,onChange:Pe=>I(Pe.target.value),placeholder:"E.g., Focus on safety issues and factual errors...",rows:3,className:"mt-1 text-xs"})]})]}),o.jsxs(Ul,{children:[o.jsx(oe,{variant:"outline",onClick:()=>E(!1),children:"Cancel"}),o.jsxs(oe,{onClick:ue,disabled:!A||!L||_,children:[_?o.jsx(qt,{className:"mr-1 h-4 w-4"}):null,"Analyze"]})]})]})}),o.jsx(gr,{open:F,onOpenChange:B,children:o.jsxs(vr,{className:"max-h-[80vh] max-w-2xl overflow-y-auto",children:[o.jsxs(yr,{children:[o.jsx(fr,{children:"Review Proposed Tags"}),o.jsxs(_s,{children:[z.filter(Pe=>Pe.accepted).length," of ",z.length," proposals selected"]})]}),o.jsx("div",{className:"space-y-3 py-2",children:z.map((Pe,be)=>{const Se=Z.find(Re=>Re.id===Pe.itemId);return o.jsx("div",{className:Y("p-3 border rounded-lg",!Pe.accepted&&"opacity-50"),children:o.jsxs("div",{className:"flex items-start gap-2",children:[o.jsx(Oo,{checked:Pe.accepted,onCheckedChange:Re=>H(Be=>Be.map((Ke,Tt)=>Tt===be?{...Ke,accepted:!!Re}:Ke))}),o.jsxs("div",{className:"min-w-0 flex-1",children:[o.jsx(ve,{variant:"ui-xs",className:"text-neutral4 block truncate",children:Se?typeof Se.input=="string"?Se.input.slice(0,100):JSON.stringify(Se.input).slice(0,100):Pe.itemId}),o.jsx("div",{className:"mt-1.5 flex flex-wrap gap-1",children:Pe.tags.map((Re,Be)=>o.jsx(AUt,{tag:Re,onRename:Ke=>H(Tt=>Tt.map((Te,Xe)=>Xe===be?{...Te,tags:Te.tags.map((dt,Ut)=>Ut===Be?Ke:dt)}:Te)),onRemove:()=>H(Ke=>Ke.map((Tt,Te)=>Te===be?{...Tt,tags:Tt.tags.filter((Xe,dt)=>dt!==Be)}:Tt))},`${Re}-${Be}`))}),Pe.reason&&o.jsx(ve,{variant:"ui-xs",className:"text-neutral3 mt-1 block italic",children:Pe.reason})]})]})},Pe.itemId)})}),o.jsxs(Ul,{children:[o.jsx(oe,{variant:"outline",onClick:()=>B(!1),children:"Cancel"}),o.jsxs(oe,{onClick:xe,disabled:z.filter(Pe=>Pe.accepted).length===0,children:["Accept ",z.filter(Pe=>Pe.accepted).length," proposals"]})]})]})}),o.jsxs("div",{className:Y("grid h-full min-h-0 w-full grid-cols-1 gap-4",r==="overlay"?"overflow-visible":"overflow-hidden",ye&&r==="inline"&&"grid-cols-[1fr_1fr]"),children:[o.jsxs("div",{className:"grid min-h-0 w-full grid-rows-[auto_1fr] gap-3 overflow-hidden pt-3",children:[(Z.length>0||ne>0)&&o.jsxs("div",{className:"flex w-full flex-wrap items-center justify-start gap-3",children:[o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsxs(rt,{children:[o.jsx(rt.Trigger,{asChild:!0,children:o.jsxs(oe,{size:"sm",children:[o.jsx(b0e,{}),"Filter",ne>0&&o.jsx(wt,{size:"xs",children:ne})]})}),o.jsxs(rt.Content,{align:"start",className:Y("min-w-48"),children:[o.jsxs(rt.Sub,{children:[o.jsxs(rt.SubTrigger,{children:["Status",S&&o.jsx("span",{className:Y("ml-auto text-ui-sm text-accent1"),children:"1"})]}),o.jsxs(rt.SubContent,{children:[o.jsx(rt.CheckboxItem,{checked:!S,onCheckedChange:()=>{k(!1),m(null)},onSelect:Pe=>Pe.preventDefault(),children:"Review Queue"}),o.jsx(rt.CheckboxItem,{checked:S,onCheckedChange:()=>{k(!0),m(null)},onSelect:Pe=>Pe.preventDefault(),children:"Completed"})]})]}),o.jsxs(rt.Sub,{children:[o.jsxs(rt.SubTrigger,{children:["Tags",v&&o.jsx("span",{className:Y("ml-auto text-ui-sm text-accent1"),children:"1"})]}),o.jsxs(rt.SubContent,{children:[o.jsx(rt.CheckboxItem,{checked:!v,onCheckedChange:()=>y(null),onSelect:Pe=>Pe.preventDefault(),children:"All"}),K>0&&o.jsx(rt.CheckboxItem,{checked:v==="__untagged__",onCheckedChange:()=>y(v==="__untagged__"?null:"__untagged__"),onSelect:Pe=>Pe.preventDefault(),children:"Untagged"}),G.length>0&&o.jsx(rt.Separator,{}),G.map(([Pe])=>o.jsx(rt.CheckboxItem,{checked:v===Pe,onCheckedChange:()=>y(v===Pe?null:Pe),onSelect:be=>be.preventDefault(),children:Pe},Pe))]})]}),ne>0&&o.jsxs(o.Fragment,{children:[o.jsx(rt.Separator,{}),o.jsxs(rt.Item,{onSelect:()=>{y(null),k(!1),m(null)},children:[o.jsx(or,{}),"Clear all filters"]})]})]})]}),ne>0&&o.jsxs(oe,{size:"sm",onClick:()=>{y(null),k(!1),m(null)},children:[o.jsx(or,{}),"Reset"]})]}),!S&&b.size>0&&o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(IUt,{selectedCount:b.size,vocabulary:U,onApplyTag:$e,onRemoveTag:Ae,onNewTag:Pe=>$e(Pe)}),o.jsxs(rt,{children:[o.jsx(rt.Trigger,{asChild:!0,children:o.jsxs(oe,{size:"sm",disabled:_,children:[_?o.jsx(qt,{className:"h-4 w-4"}):o.jsx(We,{size:"sm",children:o.jsx(Xs,{})}),"Actions"]})}),o.jsxs(rt.Content,{align:"end",children:[o.jsxs(rt.Item,{onSelect:Ie,children:[o.jsx(We,{size:"sm",children:o.jsx(bO,{})}),"Complete"]}),o.jsxs(rt.Item,{onSelect:ae,children:[o.jsx(We,{size:"sm",children:o.jsx(Ll,{})}),"Remove"]}),o.jsx(rt.Separator,{}),o.jsxs(rt.Item,{onSelect:me,children:[o.jsx(We,{size:"sm",children:o.jsx(Mg,{})}),"Analyze"]})]})]})]})]}),se?o.jsx("div",{className:"flex flex-1 items-center justify-center",children:o.jsx(qt,{className:"h-6 w-6"})}):te.length===0?o.jsx("div",{className:"flex h-full items-center justify-center py-12",children:o.jsx(br,{iconSlot:o.jsx(wO,{className:"text-neutral3 h-8 w-8"}),titleSlot:S?"No completed reviews yet":"No items to review",descriptionSlot:S?"Items marked as complete will appear here for auditing.":"When experiment results are flagged for review, they will appear here."})}):o.jsxs(he,{columns:He,className:"min-w-0",scrollRef:Je,children:[o.jsxs(he.Top,{hasLeadingCell:!0,children:[S?o.jsx(he.TopCell,{children:" "}):o.jsx(he.TopSelectCell,{checked:we?!0:pe?"indeterminate":!1,onToggle:()=>Ne(),"aria-label":"Select all"}),o.jsxs(he.TopCells,{colStart:2,children:[o.jsx(he.TopCell,{children:"Input"}),o.jsx(he.TopCell,{children:"Comment"}),o.jsx(he.TopCell,{children:"Tags"}),o.jsx(he.TopCell,{children:"Rating"}),o.jsx(he.TopCell,{children:"Scores"})]})]}),te.map((Pe,be)=>{const Se=Pe.scores?Object.entries(Pe.scores):[],Re=h===Pe.id,Be=o.jsxs(o.Fragment,{children:[o.jsx(he.Cell,{className:"text-neutral4 min-w-0",children:o.jsx("span",{className:"block truncate",children:Mms(Pe.input,200)})}),o.jsx(he.Cell,{className:"min-w-0",children:Pe.comment?o.jsx(ve,{variant:"ui-xs",className:"text-neutral3 truncate",children:Pe.comment}):o.jsx(ve,{variant:"ui-xs",className:"text-neutral2",children:"—"})}),o.jsx(he.Cell,{className:"min-w-0",children:Pe.tags.length>0?o.jsx(ve,{variant:"ui-xs",className:"text-neutral4 truncate",children:Pe.tags.join(", ")}):o.jsx(ve,{variant:"ui-xs",className:"text-neutral2",children:"—"})}),o.jsxs(he.Cell,{children:[Pe.rating==="positive"&&o.jsx(We,{size:"sm",className:"text-positive1",children:o.jsx(I0e,{})}),Pe.rating==="negative"&&o.jsx(We,{size:"sm",className:"text-negative1",children:o.jsx(N0e,{})}),!Pe.rating&&o.jsx(ve,{variant:"ui-xs",className:"text-neutral2",children:"—"})]}),o.jsx(he.Cell,{children:Se.length>0?o.jsxs("div",{className:"flex items-center gap-1",children:[o.jsx(We,{size:"sm",className:"text-neutral3",children:o.jsx(Zp,{})}),o.jsx(ve,{variant:"ui-xs",className:"text-neutral4 font-mono",children:Se[0][1].toFixed(2)}),Se.length>1&&o.jsxs(wt,{children:["+",Se.length-1]})]}):o.jsx(ve,{variant:"ui-xs",className:"text-neutral2",children:"—"})})]});return o.jsxs(he.RowWrapper,{children:[S?o.jsx(he.Cell,{className:"justify-items-center px-4",children:o.jsx("div",{role:"img","aria-label":Pe.error?"Error":"Success",title:Pe.error?"Error":"Success",className:Y("w-2 h-2 rounded-full",Pe.error?"bg-red-700":"bg-green-600")})}):o.jsx(he.SelectCell,{checked:b.has(Pe.id),onToggle:()=>ke(Pe.id),"aria-label":`Select item ${Pe.id}`}),o.jsx(he.RowButton,{colStart:2,featured:Re,onClick:()=>Ee(Pe.id),...ot(be),children:Be})]},Pe.id)})]})]}),gt&&(r==="overlay"?o.jsx(rY,{label:`Review item ${ye?.id??""}`,children:gt}):gt)]})]})}function Lms({experimentId:e,datasetId:t,experimentStatus:n,results:r,isLoading:s,setEndOfListElement:a,isFetchingNextPage:i,hasNextPage:l}){const{currentItemId:c,openItem:u,close:d}=FVt(),[f,p]=g.useState(new Set),[h,m]=g.useState(!1),{updateExperimentResult:v}=Ai(),y=g.useCallback(F=>{p(B=>{const V=new Set(B);return V.has(F)?V.delete(F):V.add(F),V})},[]),b=g.useCallback(()=>p(new Set),[]),x=g.useCallback(async F=>{if(h||F.length===0)return;m(!0);let B=0;const V=new Set;try{for(const D of F)try{await v.mutateAsync({datasetId:t,experimentId:e,resultId:D,status:"needs-review"}),B++,V.add(D)}catch{}}finally{m(!1)}V.size>0&&p(D=>{const Z=new Set(D);for(const U of V)Z.delete(U);return Z}),B>0&&ze(`${B} result${B>1?"s":""} flagged for review`)},[t,e,h,v]),S=g.useMemo(()=>c?r.find(F=>F.itemId===c)?.id??null:null,[r,c]),[k,_]=g.useState("results"),[C,T]=$a(),E=C.get("review"),N=c?"results":E?"reviews":k,I=F=>{_(F),F!=="results"&&c&&d(),F!=="reviews"&&E&&T(B=>{const V=new URLSearchParams(B);return V.delete("review"),V},{replace:!0})},{data:A}=zVt(t),R=(A??[]).filter(F=>F.experimentId===e).length,{data:L}=__(e,n),M=g.useMemo(()=>{if(!L)return[];const F=new Set;for(const B of Object.values(L))for(const V of B)F.add(V.scorerId);return[...F].sort()},[L]),z=g.useCallback(F=>{const B=r.find(V=>V.id===F);B&&(B.itemId===c?d():u(B.itemId))},[r,c,d,u]),H=g.useMemo(()=>[{name:"itemId",label:"Item ID",size:"7rem"},{name:"input",label:"Input",size:"minmax(15rem,1fr)"},...M.map(F=>({name:F,label:F,size:"12rem"}))],[M]);return o.jsxs(wc,{defaultTab:"results",value:N,onValueChange:I,className:"grid h-full grid-rows-[auto_1fr] overflow-visible",children:[o.jsxs(xc,{variant:"pill-ghost",children:[o.jsxs(Pr,{value:"results",className:"px-3 py-2.5",children:[o.jsx(We,{size:"sm",children:o.jsx(wx,{})}),o.jsx(ve,{variant:"ui-sm",className:"text-inherit",children:"Results"})]}),o.jsxs(Pr,{value:"reviews",className:"px-3 py-2.5",children:[o.jsx(We,{size:"sm",children:o.jsx(wO,{})}),o.jsx(ve,{variant:"ui-sm",className:"text-inherit",children:"Reviews"}),R>0&&o.jsx(wt,{size:"xs",children:R})]})]}),o.jsx(fs,{value:"reviews",className:"h-full min-h-0 overflow-visible py-0",children:o.jsx(Dms,{datasetId:t,experimentId:e,featuredItemId:E,detailPanelVariant:"overlay"})}),o.jsxs(fs,{value:"results",className:Y("grid gap-3 overflow-hidden pt-3",f.size>0?"grid-rows-[auto_auto_1fr]":"grid-rows-[auto_1fr]"),children:[o.jsx(Pms,{scoresByItemId:L,experimentStatus:n}),f.size>0&&o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsxs(oe,{variant:"outline",size:"sm",disabled:h,onClick:()=>x([...f]),children:[o.jsx(We,{size:"sm",children:o.jsx(wO,{})}),"Flag ",f.size," to review"]}),o.jsx(oe,{variant:"ghost",size:"sm",onClick:b,children:"Clear"})]}),o.jsx("div",{className:"min-h-0 overflow-y-auto",children:o.jsx(Ims,{results:r,isLoading:s,featuredResultId:S,onResultClick:z,columns:H,scoresByItemId:L,scorerIds:M,setEndOfListElement:a,isFetchingNextPage:i,hasNextPage:l,selectedIds:f,onToggleSelect:y})})]})]})}const ntt={pending:{icon:o.jsx(s1,{className:"text-warning1 size-4"}),label:"Pending"},running:{icon:o.jsx(qt,{size:"sm"}),label:"Running"},completed:{icon:o.jsx(t3,{className:"text-neutral3 size-4"}),label:"Completed"},failed:{icon:o.jsx(xO,{className:"text-error size-4"}),label:"Failed"}};function Fms({status:e,className:t}){const n=ntt[e]??ntt.pending;return o.jsxs(yn,{children:[o.jsx(gn,{render:o.jsx("span",{tabIndex:0,className:Y("flex shrink-0 items-center",t),children:n.icon})}),o.jsx(vn,{children:n.label})]})}const zms=e=>{const t=Ge();return ht({queryKey:["experiment-trace-light",e],queryFn:async()=>{if(!e)throw new Error("Trace ID is required");return t.getTraceLight(e)},select:TAe,enabled:!!e})};function BVt({children:e,className:t}){return o.jsx("div",{className:Y("",t),children:e})}function Bms({date:e,className:t,withTime:n=!1}){const r=e?Cxt(new Date(e)):!1,s=e?V3(new Date(e))?"Today":ur(new Date(e),"MMM dd"):"",a=e&&!r?ur(new Date(e),"yyyy"):"",i=e&&n?`${ur(new Date(e),"'at' h:mm aaa")}`:"";return o.jsxs("div",{className:Y("truncate text-ui-md text-neutral2",t),children:[s," ",a," ",i]})}function lRe(e){return!e||e.length===0?"":e?.map(t=>t.size).join(" ")}function Ums({columns:e,isSelectionActive:t,children:n}){return o.jsx("div",{className:Y("sticky top-0 z-10 mb-4 rounded-lg bg-surface3 px-4"),children:o.jsx("div",{className:Y("grid items-center gap-4 text-left text-ui-xs tracking-widest text-neutral3 uppercase",{"pl-12 [&>label]:absolute [&>label]:left-0":t}),style:{gridTemplateColumns:lRe(e)},children:n})})}function qms({children:e,className:t}){return o.jsx("span",{className:Y("py-3",t),children:e})}function Vms({id:e,className:t,isShortened:n=!0}){const r=n?e.slice(0,8):e;return o.jsx("div",{className:Y("truncate py-[0.6rem] text-ui-md text-neutral2",t),children:r})}function Hms({children:e}){return o.jsx("ul",{className:"grid content-start",children:e})}function Wms({children:e}){const t=g.useRef(null);return o.jsx("div",{ref:t,className:Y("overflow-y-auto"),children:e})}function Zms({children:e,className:t}){return o.jsx("label",{className:Y("flex h-full w-14 items-center justify-center rounded-lg hover:bg-surface5",t),children:e})}function Gms({children:e,href:t,className:n,LinkComponent:r,tooltip:s}){const a=o.jsx(r,{href:t,className:Y("flex w-full items-center justify-center gap-6 rounded-lg px-3 py-[0.6rem] text-left","hover:bg-surface4",Yr.colors,L3.visible,n),children:e});return s==null?a:o.jsxs(yn,{children:[o.jsx(gn,{render:a}),o.jsx(vn,{children:s})]})}function Qms({children:e,message:t,className:n,type:r}){return!e&&!t?null:o.jsx("div",{className:Y("grid border-t border-border1",n),children:t?o.jsxs("p",{className:Y("grid justify-center justify-items-center gap-2 p-8 text-center text-ui-md text-neutral3","[&>svg]:size-[1.5em] [&>svg]:opacity-75",{"[&>svg]:text-red-500":r==="error"}),children:[r==="error"?o.jsx(uc,{}):o.jsx(Cm,{})," ",t]}):e})}function Yms({isLoading:e,hasMore:t,setEndOfListElement:n,loadingText:r="Loading more data...",noMoreDataText:s="No more data to load"}){return n?o.jsxs("div",{ref:n,className:"text-ui-md text-neutral3 mt-8 flex justify-center opacity-50",children:[e&&r,!t&&!e&&s]}):null}function Kms({currentPage:e,hasMore:t,onNextPage:n,onPrevPage:r}){const s=typeof e=="number"&&e>0||t;return o.jsxs("div",{className:Y("flex items-center justify-center gap-8 pt-6 text-ui-md text-neutral3"),children:[o.jsxs("span",{children:["Page ",o.jsx("b",{children:e?e+1:"1"})]}),s&&o.jsxs("div",{className:Y("flex gap-4","[&>button]:flex [&>button]:items-center [&>button]:gap-2 [&>button]:rounded-md [&>button]:border [&>button]:border-border1 [&>button]:p-1 [&>button]:px-2 [&>button]:text-neutral4 [&>button]:transition-colors [&>button:hover]:text-neutral5","[&_svg]:size-[1em] [&_svg]:text-neutral3"),children:[typeof e=="number"&&e>0&&o.jsxs("button",{onClick:r,children:[o.jsx(yl,{}),"Previous"]}),t&&o.jsxs("button",{onClick:n,children:["Next",o.jsx(zd,{})]})]})]})}function Xms({children:e,className:t}){return o.jsx("div",{className:Y("grid grid-rows-[auto_1fr] overflow-y-auto",t),children:e})}function Jms({isSelected:e,children:t,columns:n}){return o.jsx("li",{className:Y("flex overflow-hidden rounded-lg border border-transparent border-t-border1 py-[3px] pb-[2px] text-ui-md text-neutral5 first:border-t-transparent","[&:last-child>button]:rounded-b-lg","[&.selected-row]:border [&.selected-row]:border-dashed [&.selected-row]:border-white/50 [&.selected-row]:pr-[3px] [&.selected-row]:first:border-t","[&:has(+.selected-row)]:rounded-b-none [&:has(+.selected-row)]:border-b-transparent","[.selected-row+&]:rounded-t-none",Yr.colors,{"selected-row":e,"grid px-4 gap-4 ":n}),style:{gridTemplateColumns:lRe(n)},children:t})}function egs({item:e,isFeatured:t,onClick:n,children:r,columns:s,className:a,disabled:i,tooltip:l,...c}){const u=()=>{n?.(e?.id)},d=o.jsx("button",{...c,onClick:u,className:Y("grid w-full items-center gap-4 rounded-lg px-4 text-left",Yr.colors,L3.visible,{"bg-surface4":t,"hover:bg-surface4":e&&!t&&!i},a),style:{gridTemplateColumns:lRe(s)},disabled:i,children:r});return l==null?d:o.jsxs(yn,{children:[o.jsx(gn,{render:d}),o.jsx(vn,{children:l})]})}function tgs(e){return e.charAt(0).toUpperCase()+e.slice(1)}function ngs({status:e}){return e?o.jsxs(yn,{children:[o.jsx(gn,{asChild:!0,children:o.jsx("div",{className:Y("relative flex h-full w-10 items-center justify-center bg-transparent"),children:o.jsx("div",{className:Y("size-2 rounded-full",{"bg-green-600":["success","completed"].includes(e),"bg-red-700":["error","failed"].includes(e),"bg-yellow-500":["pending","running"].includes(e)})})})}),o.jsx(vn,{children:tgs(e)})]}):null}function rgs({children:e,isLoading:t,className:n}){return o.jsx("div",{className:Y("truncate py-[0.6rem] text-ui-md text-neutral4",n),children:t?o.jsx("div",{className:"bg-surface4 h-4 animate-pulse rounded-md text-transparent select-none"}):e})}const wV={latest:"Latest version",deleted:"Deleted in this version"};function sgs({isLatest:e,isDeleted:t}){const n=[];return e&&n.push(wV.latest),t&&n.push(wV.deleted),n.length>0?n.join(" · "):void 0}function ags({version:e,date:t,isLatest:n,isDeleted:r}){return o.jsxs(BVt,{className:Y("grid grid-cols-[1fr_auto] pl-1"),children:[o.jsxs("div",{className:Y("grid gap-1 leading-none text-neutral3",{"text-neutral4":n}),children:[o.jsxs("strong",{className:"font-normal",children:["v. ",e]}),o.jsx("em",{className:Y("text-ui-sm","font-normal","text-neutral2"),children:t?ur(new Date(t),"MMM d, yyyy HH:mm"):null})]}),(n||r)&&o.jsxs("div",{className:"flex items-center gap-1",children:[n&&o.jsx("span",{className:"inline-flex",role:"img","aria-label":wV.latest,children:o.jsx(wt,{variant:"blue",size:"sm",icon:o.jsx(s1,{})})}),r&&o.jsx("span",{className:"inline-flex",role:"img","aria-label":wV.deleted,children:o.jsx(wt,{variant:"red",size:"sm",icon:o.jsx(m0e,{})})})]})]})}const pi=Object.assign(Xms,{Header:Ums,HeaderCol:qms,Items:Hms,Scroller:Wms,Row:Jms,RowButton:egs,Message:Qms,NextPageLoading:Yms,Pagination:Kms,Cell:BVt,TextCell:rgs,StatusCell:ngs,VersionCell:ags,IdCell:Vms,DateCell:Bms,LinkCell:Gms,LabelCell:Zms});function igs({datasetId:e,itemId:t,onVersionSelect:n,onCompareVersionsClick:r,activeVersion:s}){const{data:a,isLoading:i}=sRe(e,t),[l,c]=g.useState(!1),[u,d]=g.useState(new Set),f=b=>{n?.(b)},p=b=>s==null?b.isLatest:b.datasetVersion===s,h=b=>{d(x=>{const S=new Set(x);if(S.has(b))S.delete(b);else if(S.size>=2){const[k]=Array.from(S);return new Set([k,b])}else S.add(b);return S})},m=()=>{c(!1),d(new Set)},v=()=>{c(!0)},y=()=>{u.size===2&&r?.([...u])};return o.jsxs(pa,{className:"min-w-56",children:[l?o.jsx(pa.Toolbar,{className:"grid w-full justify-stretch gap-3",children:o.jsxs(es,{children:[o.jsx(oe,{onClick:m,children:"Cancel"}),o.jsx(oe,{variant:"primary",disabled:u.size!==2,onClick:y,tooltip:u.size!==2?"Check 2 versions to compare":void 0,className:"grow",children:"Compare"})]})}):o.jsx(o.Fragment,{children:(a||[]).length>1&&o.jsx(pa.Toolbar,{children:o.jsxs(oe,{onClick:v,className:"w-full",children:[o.jsx(jj,{})," Compare Ver."]})})}),i?o.jsx(ogs,{}):o.jsxs(pi,{children:[o.jsx(pi.Header,{children:o.jsx(pi.HeaderCol,{children:"Item Version History"})}),o.jsx(pi.Scroller,{children:o.jsx(pi.Items,{children:a?.map(b=>{const x=String(b.datasetVersion),S=typeof b.updatedAt=="string"?new Date(b.updatedAt):b.updatedAt;return o.jsxs(pi.Row,{isSelected:l&&u.has(x),children:[l&&o.jsx(pi.LabelCell,{children:o.jsx(Oo,{checked:u.has(x),disabled:b.isDeleted,onCheckedChange:()=>{},onClick:k=>{k.stopPropagation(),b.isDeleted||h(x)},"aria-label":`Select version ${b.datasetVersion}`})}),o.jsx(pi.RowButton,{item:b,columns:[{name:"version",label:"Item Version History",size:"1fr"}],isFeatured:p(b),onClick:()=>f(b),className:"py-2",tooltip:sgs({isLatest:b.isLatest,isDeleted:b.isDeleted}),children:o.jsx(pi.VersionCell,{version:b.datasetVersion,date:S,isLatest:b.isLatest,isDeleted:b.isDeleted})})]},String(b.datasetVersion))})})})]})]})}function ogs(){return o.jsxs(pi,{children:[o.jsx(pi.Header,{columns:[{name:"version",label:"Item Version History",size:"1fr"}],children:o.jsx(pi.HeaderCol,{children:"Item Version History"})}),o.jsx(pi.Items,{children:Array.from({length:3}).map((e,t)=>o.jsx(pi.Row,{children:o.jsx(pi.RowButton,{columns:[{name:"version",label:"Item Version History",size:"1fr"}],children:o.jsx(pi.TextCell,{isLoading:!0,children:"Loading..."})})},t))})]})}function lgs(e,t){if(t){const n=typeof t=="string"?new Date(t):t;return`v${e} ${ur(n,"MMM dd 'at' H:mm:ss a")}`}return`v${e}`}function cgs({datasetId:e,versionA:t,versionB:n,onVersionChange:r}){const{data:s}=gAe(e),a=(s??[]).map(i=>({value:String(i.version),label:`${lgs(i.version,i.createdAt)}${i.isCurrent?" (current)":""}`}));return o.jsxs(pa.Toolbar,{className:"grid w-full grid-cols-[1fr_1fr_1fr_10rem] gap-4",children:[o.jsx("div",{}),o.jsx(Ld,{label:"Version A",labelIsHidden:!0,name:"version-a",placeholder:"Select version",options:a,value:t??"",onValueChange:i=>r?.(i,n??"")}),o.jsx(Ld,{label:"Version B",labelIsHidden:!0,name:"version-b",options:a,value:n??"",onValueChange:i=>r?.(t??"",i)}),o.jsx("div",{})]})}const ugs=[{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"}],M9={added:{badgeVariant:"blue",borderColor:"border-blue-900",icon:o.jsx(Cr,{}),tooltip:"Added in this version"},changed:{badgeVariant:"yellow",borderColor:"border-yellow-900",icon:o.jsx(sJt,{}),tooltip:"Changed in this version"},same:{badgeVariant:"green",borderColor:"border-green-900",icon:o.jsx(ict,{}),tooltip:"Same in both versions"}};function zie({red:e=!1,tooltip:t}){return o.jsxs(yn,{children:[o.jsx(gn,{render:o.jsx("span",{}),role:"img",tabIndex:0,"aria-label":t,className:"focus-visible:outline-neutral5/55 rounded focus-visible:outline-1 focus-visible:outline-offset-2 focus-visible:outline-solid",children:o.jsx(m0e,{className:Y("text-neutral3/40 w-5 h-5 ",{"text-red-900":e})})}),o.jsx(vn,{children:t})]})}function Bie({variant:e,version:t}){if(!e)return o.jsxs("span",{className:"text-ui-md text-neutral4",children:["v. ",t]});const{badgeVariant:n,icon:r,tooltip:s}=M9[e];return 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("span",{className:"inline-flex",role:"img","aria-label":s,children:o.jsx(wt,{variant:n,size:"xs",icon:r})})]})}function dgs(e,t){return e&&t&&e.datasetVersion===t.datasetVersion?"same":e&&t&&e.datasetVersion!==t.datasetVersion?"changed":e?"added":"removed"}function rtt({otherVersionExists:e,status:t,isNewer:n}){if(!e&&n)return"added";if(t==="changed"&&n)return"changed"}function fgs({datasetId:e,versionA:t,versionB:n,allItems:r,itemsAMap:s,itemsBMap:a}){const{Link:i}=un(),l=t>n;return o.jsx(pi,{children:o.jsx(pi.Scroller,{children:o.jsx(pi.Items,{children:r.map(({id:c})=>{const u=s.get(c),d=a.get(c),f=dgs(u,d),p=rtt({otherVersionExists:d!==void 0,status:f,isNewer:l}),h=rtt({otherVersionExists:u!==void 0,status:f,isNewer:!l});return o.jsxs(pi.Row,{columns:ugs,children:[o.jsx(pi.IdCell,{id:c,isShortened:!1}),f!=="same"?o.jsxs(o.Fragment,{children:[u?.datasetVersion?o.jsx(pi.LinkCell,{LinkComponent:i,href:`/datasets/${e}/items/${c}`,className:"gap-2",tooltip:p?M9[p].tooltip:void 0,children:o.jsx(Bie,{variant:p,version:u.datasetVersion})}):o.jsx(pi.Cell,{className:"flex items-center justify-center",children:o.jsx(zie,{red:l,tooltip:l?"Deleted in this version":"Not present in this version"})}),d?.datasetVersion?o.jsx(pi.LinkCell,{LinkComponent:i,href:`/datasets/${e}/items/${c}`,className:"gap-2",tooltip:h?M9[h].tooltip:void 0,children:o.jsx(Bie,{variant:h,version:d.datasetVersion})}):o.jsx(pi.Cell,{className:"flex items-center justify-center",children:o.jsx(zie,{red:!l,tooltip:l?"Not present in this version":"Deleted in this version"})})]}):o.jsx(pi.LinkCell,{LinkComponent:i,href:`/datasets/${e}/items/${c}`,className:"col-span-2 gap-2",tooltip:M9.same.tooltip,children:o.jsx(Bie,{variant:"same",version:d?.datasetVersion})}),f==="changed"?o.jsx(pi.LinkCell,{LinkComponent:i,href:`/datasets/${e}/items/${c}/versions?ids=${u?.datasetVersion},${d?.datasetVersion}`,children:"Compare"}):o.jsx(pi.Cell,{children:o.jsx(zie,{tooltip:"Comparing is available only for changed items"})})]},c)})})})})}const pgs=10;function hgs(){const e=Vr(),[t,n]=g.useState(""),[r,s]=g.useState("all"),[a,i]=g.useState("all"),[l,c]=g.useState("all"),[u,d]=g.useState(0),{data:f,isLoading:p,error:h}=Pm({page:u,perPage:pgs}),{data:m,isLoading:v,error:y}=aRe(),b=g.useMemo(()=>f?.datasets??[],[f?.datasets]),x=f?.pagination?.hasMore??!1,S=g.useMemo(()=>m?.experiments??[],[m?.experiments]),k=g.useMemo(()=>khs(b),[b]),_=p||v,C=h||y,T=()=>{e("/datasets/new")},E=g.useCallback(()=>d(H=>H+1),[]),N=g.useCallback(()=>d(H=>Math.max(0,H-1)),[]),I=g.useCallback(H=>{n(H),d(0)},[]),A=g.useCallback(H=>{s(H),d(0)},[]),R=g.useCallback(H=>{i(H),d(0)},[]),L=g.useCallback(H=>{c(H),d(0)},[]);if(C&&vs(C))return o.jsx(Jn,{children:o.jsx(Fs,{})});if(C&&ys(C))return o.jsx(Jn,{children:o.jsx(Es,{resource:"datasets"})});if(C)return o.jsx(Jn,{children:o.jsx(qa,{title:"Failed to load datasets",message:C.message})});if(b.length===0&&!_&&u===0)return o.jsx(Jn,{children:o.jsx(Ths,{onCreateClick:T})});const M=r!=="all"||a!=="all"||l!=="all"||t!=="",z=()=>{n(""),s("all"),i("all"),c("all"),d(0)};return o.jsxs(Bt,{children:[o.jsx(Bt.TopArea,{children:o.jsx(Ihs,{search:t,onSearchChange:I,targetFilter:r,onTargetFilterChange:A,experimentFilter:a,onExperimentFilterChange:R,tagFilter:l,onTagFilterChange:L,tagOptions:k,onReset:z,hasActiveFilters:M,onCreateClick:T})}),o.jsx(Ehs,{datasets:b,experiments:S,isLoading:_,search:t,targetFilter:r,experimentFilter:a,tagFilter:l,currentPage:u,hasMore:x,onNextPage:E,onPrevPage:N})]})}function t8({children:e}){return o.jsxs(Bt,{height:"full",children:[o.jsx("div",{}),o.jsx(Bt.MainArea,{isCentered:!0,children:e})]})}function mgs(){const{datasetId:e}=hr(),t=Vr(),[n,r]=$a(),{activeVersion:s,handleVersionChange:a}=iRe(n,r),[i,l]=g.useState(!1),[c,u]=g.useState(!1),[d,f]=g.useState(!1),[p,h]=g.useState(!1),{data:m,error:v,isLoading:y}=Py(e),{data:b=[],isLoading:x}=V1(e,void 0,s),S=!x&&b.length===0;if(y)return null;if(v&&vs(v))return o.jsx(t8,{children:o.jsx(Fs,{})});if(v&&ys(v))return o.jsx(t8,{children:o.jsx(Es,{resource:"datasets"})});if(v&&zEe(v)||!y&&!v&&!m)return o.jsx(t8,{children:o.jsx(br,{iconSlot:o.jsx(fm,{}),titleSlot:"Dataset not found",descriptionSlot:`No dataset with id "${e}".`,actionSlot:o.jsxs(oe,{as:za,to:"/datasets",children:[o.jsx(yl,{}),"Back to Datasets"]})})});if(v)return o.jsx(t8,{children:o.jsx(qa,{title:"Failed to load dataset",message:v instanceof Error?v.message:"An unexpected error occurred. Please try again."})});const k=C=>{t(`/experiments/${C}`)},_=()=>{t("/datasets")};return o.jsxs(wms,{datasetId:e,items:b,isLoadingItems:x,children:[o.jsxs("div",{className:"relative h-full overflow-hidden",children:[o.jsx(Bt,{height:"full",className:"grid-rows-[1fr] p-0",children:o.jsx(Bt.MainArea,{children:o.jsx(Sms,{datasetId:e,onAddItemClick:()=>u(!0),leftSlot:o.jsx("span",{className:"text-ui-sm text-neutral3 mr-3 whitespace-nowrap",children:m?.createdAt?`Created ${ur(new Date(m.createdAt),"MMM d")}`:""}),rightSlot:o.jsxs(es,{children:[o.jsxs(oe,{as:za,to:`/experiments?dataset=${e}`,children:[o.jsx(y0e,{}),"View experiments"]}),o.jsx(IVt,{datasetId:e,value:s,onValueChange:a,currentVersion:m?.version,className:"w-36"}),S?o.jsxs(yn,{children:[o.jsx(gn,{asChild:!0,children:o.jsx("span",{className:"cursor-not-allowed",children:o.jsx("div",{className:"pointer-events-none opacity-50",inert:!0,"aria-disabled":"true",children:o.jsxs(oe,{variant:"primary",children:[o.jsx(Lc,{}),"Run Experiment"]})})})}),o.jsx(vn,{children:"Add items to the dataset before running an experiment"})]}):o.jsxs(oe,{variant:"primary",onClick:()=>l(!0),children:[o.jsx(Lc,{}),"Run Experiment"]}),o.jsxs(rt,{children:[o.jsx(rt.Trigger,{asChild:!0,children:o.jsx(oe,{size:"lg","aria-label":"Dataset actions menu",children:o.jsx(aI,{})})}),o.jsxs(rt.Content,{align:"end",className:"w-48",children:[o.jsxs(rt.Item,{onSelect:()=>{t(`/datasets/${e}/edit`)},children:[o.jsx(pm,{})," Edit Dataset"]}),o.jsxs(rt.Item,{onSelect:()=>h(!0),children:[o.jsx(Bd,{})," Duplicate Dataset"]}),o.jsxs(rt.Item,{onSelect:()=>f(!0),className:"text-red-500 focus:text-red-400",children:[o.jsx(Ll,{})," Delete Dataset"]})]})]})]})})})}),o.jsx(zg,{})]}),o.jsx(nY,{initialDatasetId:e,initialDatasetVersion:s??void 0,open:i,onOpenChange:l,onSuccess:k},`${e}:${s??"latest"}`),o.jsx(Oms,{datasetId:e,open:c,onOpenChange:u}),m&&o.jsx(Whs,{open:p,onOpenChange:h,sourceDatasetId:m.id,sourceDatasetName:m.name,sourceDatasetDescription:m.description,sourceDatasetTargetType:m.targetType}),m&&o.jsx(Yhs,{open:d,onOpenChange:f,datasetId:m.id,datasetName:m.name,onSuccess:_})]})}function Uie({children:e}){return o.jsxs(Bt,{height:"full",children:[o.jsx("div",{}),o.jsx(Bt.MainArea,{isCentered:!0,children:e})]})}function ggs(){const{datasetId:e}=hr(),t=Vr(),{data:n,error:r,isLoading:s}=Py(e),a=()=>{t(`/datasets/${e}`)};return s?null:r&&vs(r)?o.jsx(Uie,{children:o.jsx(Fs,{})}):r&&ys(r)?o.jsx(Uie,{children:o.jsx(Es,{resource:"datasets"})}):r||!n?o.jsx(Uie,{children:o.jsx(qa,{title:"Failed to load dataset",message:r instanceof Error?r.message:"An unexpected error occurred. Please try again."})}):o.jsxs(Bt,{height:"full",children:[o.jsx("div",{}),o.jsx(Bt.MainArea,{isCentered:!0,children:o.jsxs("div",{className:"w-full max-w-2xl overflow-y-auto px-6 py-8",children:[o.jsx(Aa,{className:"mb-6 p-0",children:o.jsxs(Aa.Column,{children:[o.jsxs(Aa.Title,{children:[o.jsx(fm,{})," Edit dataset"]}),o.jsx(Aa.Description,{children:n.name})]})}),o.jsx(Yu,{className:"p-6",children:o.jsx(Qhs,{dataset:{id:n.id,name:n.name,description:n.description||"",targetType:n.targetType,inputSchema:n.inputSchema,groundTruthSchema:n.groundTruthSchema,requestContextSchema:n.requestContextSchema},onSuccess:a,onCancel:a})})]})})]})}const n8=()=>{},vgs=new Set,ygs=[{name:"id",label:"ID",size:"7rem"},{name:"input",label:"Input",size:"minmax(10rem,1fr)"},{name:"groundTruth",label:"Ground Truth",size:"minmax(10rem,1fr)"},{name:"trajectory",label:"Trajectory",size:"8rem"},{name:"createdAt",label:"Created",size:"10rem"}];function bgs({datasetId:e,currentItemId:t,open:n,onOpenChange:r}){const{navigate:s,paths:a}=un(),[i,l]=g.useState(""),[c]=ZH(i,300),{data:u,isLoading:d,setEndOfListElement:f,isFetchingNextPage:p,hasNextPage:h}=V1(e,c||void 0),m=u.filter(y=>y.id!==t),v=y=>{r(!1),s(a.datasetItemCompareLink(e,t,y))};return o.jsx(gr,{open:n,onOpenChange:r,children:o.jsxs(vr,{className:"sm:max-w-[min(72rem,calc(100%-4rem))]",children:[o.jsxs(yr,{children:[o.jsx(fr,{children:"Compare with…"}),o.jsx(_s,{children:"Pick an item to compare with the current one."})]}),o.jsxs(Rr,{className:"grid max-h-[70vh] min-h-[24rem] grid-rows-[auto_1fr] gap-3",children:[o.jsx(v_,{name:"compare-with-dialog-search",label:"Search items to compare",labelIsHidden:!0,value:i,onChange:y=>l(y.target.value),placeholder:"Search items..."}),o.jsx("div",{className:"min-h-0 overflow-y-auto",children:o.jsx(AVt,{items:m,isLoading:d,onItemClick:v,selectOnNavigate:!1,columns:ygs,searchQuery:c||" ",setEndOfListElement:f,isFetchingNextPage:p,hasNextPage:h,isSelectionActive:!1,selectedIds:vgs,onToggleSelection:n8,onSelectAll:n8,onClearSelection:n8,onAddClick:n8})})]})]})})}function xgs(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 wgs({datasetId:e,item:t,items:n,onItemChange:r,onClose:s}){const{Link:a}=un(),{updateItem:i,deleteItem:l}=Ai(),[c,u]=g.useState(!1),[d,f]=g.useState(""),[p,h]=g.useState(""),[m,v]=g.useState(""),[y,b]=g.useState(""),[x,S]=g.useState(""),[k,_]=g.useState(t.scorerIds!==void 0),[C,T]=g.useState(t.scorerIds??[]),[E,N]=g.useState(""),[I,A]=g.useState(null),[R,L]=g.useState(!1),[M,z]=g.useState(!1);g.useEffect(()=>{t&&(f(JSON.stringify(t.input,null,2)),h(t.groundTruth?JSON.stringify(t.groundTruth,null,2):""),v(t.metadata?JSON.stringify(t.metadata,null,2):""),b(t.expectedTrajectory?JSON.stringify(t.expectedTrajectory,null,2):""),S(t.toolMocks?.length?JSON.stringify(t.toolMocks,null,2):""),_(t.scorerIds!==void 0),T(t.scorerIds??[]),N(t.requestContext?JSON.stringify(t.requestContext,null,2):""),u(!1),L(!1),A(null))},[t?.id]);const H=n.findIndex(q=>q.id===t.id),F=H>0?()=>r(n[H-1].id):void 0,B=H>=0&&H<n.length-1?()=>r(n[H+1].id):void 0,V=async()=>{let q;try{q=JSON.parse(d)}catch{ze.error("Input must be valid JSON");return}let G;if(p.trim())try{G=JSON.parse(p)}catch{ze.error("Ground Truth must be valid JSON");return}let K;if(m.trim())try{K=JSON.parse(m)}catch{ze.error("Metadata must be valid JSON");return}let ne=null;if(y.trim())try{ne=JSON.parse(y)}catch{ze.error("Expected Trajectory must be valid JSON");return}let J;if(x.trim())try{const le=JSON.parse(x);if(!Array.isArray(le)){ze.error("Tool Mocks must be a JSON array");return}J=le}catch{ze.error("Tool Mocks must be valid JSON");return}else J=[];let ee;if(E.trim())try{ee=JSON.parse(E)}catch{ze.error("Request Context must be valid JSON");return}let re;k?re=C:t.scorerIds!==void 0&&(re=null);try{const le=await i.mutateAsync({datasetId:e,itemId:t.id,input:q,groundTruth:G,metadata:K,expectedTrajectory:ne,toolMocks:J,scorerIds:re,requestContext:ee});ze.success("Item updated successfully"),_(le.scorerIds!==void 0),T(le.scorerIds??[]),u(!1),A(null)}catch(le){const X=xgs(le);X?A(X):ze.error(`Failed to update item: ${le instanceof Error?le.message:"Unknown error"}`)}},D=()=>{f(JSON.stringify(t.input,null,2)),h(t.groundTruth?JSON.stringify(t.groundTruth,null,2):""),v(t.metadata?JSON.stringify(t.metadata,null,2):""),b(t.expectedTrajectory?JSON.stringify(t.expectedTrajectory,null,2):""),S(t.toolMocks?.length?JSON.stringify(t.toolMocks,null,2):""),_(t.scorerIds!==void 0),T(t.scorerIds??[]),N(t.requestContext?JSON.stringify(t.requestContext,null,2):""),u(!1),A(null)},Z=q=>{f(q),I?.field==="input"&&A(null)},U=q=>{h(q),I?.field==="groundTruth"&&A(null)},P=async()=>{try{await l.mutateAsync({datasetId:e,itemId:t.id}),ze.success("Item deleted successfully"),L(!1),s()}catch(q){ze.error(`Failed to delete item: ${q instanceof Error?q.message:"Unknown error"}`)}};return o.jsxs(o.Fragment,{children:[o.jsxs(on,{children:[o.jsxs(on.Header,{children:[o.jsxs(on.Heading,{children:["Item ",o.jsxs("b",{children:["# ",t.id.length>12?`${t.id.slice(0,12)}…`:t.id]})]}),o.jsxs(es,{className:"ml-auto shrink-0",children:[o.jsx(on.NextPrevNav,{onPrevious:F,onNext:B,previousLabel:"Previous item",nextLabel:"Next item"}),!c&&o.jsxs(o.Fragment,{children:[o.jsx(oe,{as:a,href:`/datasets/${e}/items/${t.id}/versions`,size:"md",tooltip:"Go to item versions history","aria-label":"Go to item versions history",children:o.jsx(cI,{})}),o.jsxs(rt,{children:[o.jsx(rt.Trigger,{asChild:!0,children:o.jsx(oe,{size:"md","aria-label":"Actions menu",children:o.jsx(aI,{})})}),o.jsxs(rt.Content,{align:"end",className:"w-48",children:[o.jsxs(rt.Item,{onSelect:()=>u(!0),children:[o.jsx(pm,{}),"Edit"]}),o.jsxs(rt.Item,{onSelect:()=>z(!0),children:[o.jsx(jj,{}),"Compare with…"]}),o.jsxs(rt.Item,{onSelect:()=>L(!0),className:"text-red-500 focus:text-red-400",children:[o.jsx(Ll,{}),"Delete Item"]})]})]})]}),o.jsx(on.CloseButton,{onClick:s,tooltip:"Close detail panel"})]})]}),o.jsx(on.Content,{children:c?o.jsx(Cms,{inputValue:d,setInputValue:Z,groundTruthValue:p,setGroundTruthValue:U,metadataValue:m,setMetadataValue:v,trajectoryValue:y,setTrajectoryValue:b,toolMocksValue:x,setToolMocksValue:S,scorerOverrideEnabled:k,setScorerOverrideEnabled:_,selectedScorerIds:C,setSelectedScorerIds:T,requestContextValue:E,setRequestContextValue:N,validationErrors:I,onSave:V,onCancel:D,isSaving:i.isPending}):o.jsxs(o.Fragment,{children:[o.jsxs(Cn,{children:[o.jsx(Cn.Key,{children:"Dataset Id"}),o.jsx(Cn.ValueWithCopyBtn,{copyTooltip:"Copy Dataset Id to clipboard",copyValue:t.datasetId,children:t.datasetId}),o.jsx(Cn.Key,{children:"Version"}),o.jsxs(Cn.Value,{children:["v",t.datasetVersion]}),o.jsx(Cn.Key,{children:"Created"}),o.jsx(Cn.Value,{children:ur(new Date(t.createdAt),"MMM d, yyyy h:mm aaa")}),t.updatedAt&&new Date(t.updatedAt).getTime()!==new Date(t.createdAt).getTime()&&o.jsxs(o.Fragment,{children:[o.jsx(Cn.Key,{children:"Updated"}),o.jsx(Cn.Value,{children:ur(new Date(t.updatedAt),"MMM d, yyyy h:mm aaa")})]})]}),o.jsxs("div",{className:"mt-3 grid gap-3",children:[o.jsx(on.CodeSection,{title:"Input",icon:o.jsx(xx,{}),codeStr:JSON.stringify(t.input??null,null,2)}),o.jsx(on.CodeSection,{title:"Ground Truth",icon:o.jsx(tm,{}),codeStr:JSON.stringify(t.groundTruth??null,null,2)}),t.expectedTrajectory!=null&&o.jsx(on.CodeSection,{title:"Expected Trajectory",icon:o.jsx(C0e,{}),codeStr:JSON.stringify(t.expectedTrajectory,null,2)}),o.jsx(on.CodeSection,{title:"Tool Mocks",icon:o.jsx(qd,{}),codeStr:JSON.stringify(t.toolMocks??[],null,2)}),o.jsx(on.CodeSection,{title:"Scorers",icon:o.jsx(AV,{}),codeStr:t.scorerIds===void 0?"Inherited from dataset":JSON.stringify(t.scorerIds,null,2)}),t.requestContext!=null&&o.jsx(on.CodeSection,{title:"Request Context",icon:o.jsx(sc,{}),codeStr:JSON.stringify(t.requestContext,null,2)}),o.jsx(on.CodeSection,{title:"Metadata",icon:o.jsx(uI,{}),codeStr:JSON.stringify(t.metadata??null,null,2)})]})]})})]}),o.jsx(bgs,{datasetId:e,currentItemId:t.id,open:M,onOpenChange:z}),o.jsx($t,{open:R,onOpenChange:L,children:o.jsxs($t.Content,{children:[o.jsxs($t.Header,{children:[o.jsx($t.Title,{children:"Delete Item"}),o.jsx($t.Description,{children:"Are you sure you want to delete this item? This action cannot be undone."})]}),o.jsxs($t.Footer,{children:[o.jsx($t.Cancel,{children:"Cancel"}),o.jsx($t.Action,{onClick:P,children:l.isPending?"Deleting...":"Yes, Delete"})]})]})})]})}function Sgs(){const{itemId:e}=hr(),{datasetId:t,items:n,isLoadingItems:r,openItem:s,close:a}=$Vt(),i=g.useMemo(()=>n.find(d=>d.id===e)??null,[n,e]),{data:l,isLoading:c}=GD(i?"":t,!i&&e?e:""),u=i??l??null;return e?o.jsx(rY,{label:`Dataset item ${e}`,children:u?o.jsx("div",{className:"[&>section]:bg-surface3 flex min-h-full flex-col p-3 [&>section]:min-h-0 [&>section]:flex-1 [&>section]:rounded-lg [&>section]:shadow-lg",children:o.jsx(wgs,{datasetId:t,item:u,items:n,onItemChange:s,onClose:a})}):r||c?o.jsx("div",{className:"h-full p-3",children:o.jsx("div",{className:"border-border1 bg-surface3 flex h-full items-center justify-center rounded-lg border shadow-lg",children:o.jsx(qt,{})})}):o.jsx("div",{className:"h-full p-3",children:o.jsx("div",{className:"border-border1 bg-surface3 flex h-full items-center justify-center rounded-lg border shadow-lg",children:o.jsx(br,{iconSlot:o.jsx(fm,{}),titleSlot:"Item not found",descriptionSlot:`No loaded item "${e}".`,actionSlot:o.jsx(oe,{onClick:a,children:"Close"})})})})}):null}function stt(e){return JSON.stringify({input:e.input??null,groundTruth:e.groundTruth??null,metadata:e.metadata??null},null,2)}function kgs(){const{datasetId:e,itemId:t,secondItemId:n}=hr(),r=Vr(),s=[t,n].filter(h=>!!h),{data:a,error:i}=Py(e??""),{Link:l,paths:c}=un(),[u,d]=g.useState(!1),{data:f}=GD(e??"",s[0]??""),{data:p}=GD(e??"",s[1]??"");return i&&vs(i)?o.jsx(gs,{children:o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Fs,{})})}):i&&ys(i)?o.jsx(gs,{children:o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Es,{resource:"datasets"})})}):!e||s.length<2?o.jsx(gs,{children:o.jsx(py,{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(gs,{children:[o.jsx($y,{owner:"dataset-items-compare",children:o.jsxs(oe,{as:za,to:`/datasets/${e}`,variant:"outline",children:[o.jsx(yl,{}),"Back to Dataset"]})}),o.jsx("div",{className:"h-full overflow-hidden px-[3vw] pb-4",children:o.jsxs("div",{className:Y("grid gap-6 max-w-[140rem] mx-auto grid-rows-[auto_1fr] h-full",{"grid-rows-[auto_auto_1fr]":u}),children:[o.jsxs(Aa,{children:[o.jsxs(Aa.Column,{children:[o.jsxs(Aa.Title,{children:[o.jsx(jj,{}),"Compare Dataset Items"]}),o.jsx(Aa.Description,{children:o.jsxs(Rl,{children:["Comparing ",s.length," items of"," ",o.jsx(za,{to:`/datasets/${e}`,className:"text-info1 hover:underline",children:a?.name||e?.slice(0,8)})]})})]}),o.jsx(Aa.Column,{children:o.jsx(es,{children:o.jsx(oe,{variant:"primary",onClick:()=>d(h=>!h),children:u?o.jsxs(o.Fragment,{children:[o.jsx(CV,{})," Default View"]}):o.jsxs(o.Fragment,{children:[o.jsx(jYt,{})," Diff View"]})})})})]}),o.jsx(n1,{className:"grid-cols-[1fr_3vw_1fr]",children:s.map((h,m)=>o.jsxs(g.Fragment,{children:[o.jsx(Ogs,{datasetId:e,itemId:h,Link:l,idx:m,itemIds:s,showContent:!u,onItemChange:v=>{const y=[...s];y[m]=v,r(c.datasetItemCompareLink(e,y[0],y[1]))}}),m==0&&o.jsx("div",{className:Y("bg-surface5 w-[3px] shrink-0 mx-[1.5vw]")})]},h))}),u&&f&&p&&o.jsx(CAe,{codeA:stt(f),codeB:stt(p)})]})})]})}function Ogs({datasetId:e,itemId:t,Link:n,idx:r,itemIds:s,onItemChange:a,showContent:i=!0}){const{data:l,isLoading:c}=GD(e,t),{data:u}=V1(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(pa,{children:[o.jsxs(pa.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(xr,{value:p.value,disabled:p.disabled,children:p.label},p.value))})]}),o.jsxs(oe,{as:n,to:`/datasets/${e}/items/${t}`,children:[o.jsx(cI,{}),"Versions"]})]}),i&&o.jsx(pa.Content,{children:c?o.jsx("div",{className:"text-neutral4 text-sm",children:"Loading..."}):l?o.jsxs(o.Fragment,{children:[o.jsx(_ms,{item:l}),o.jsx(oRe,{item:l,Link:n})]}):o.jsxs("div",{className:"text-neutral4 text-sm",children:["Item ",t.slice(0,8)," not found"]})})]})}function att(e){return JSON.stringify({input:e.input??null,groundTruth:e.groundTruth??null,scorerIds:e.scorerIds??null,metadata:e.metadata??null},null,2)}function _gs(){const{datasetId:e,itemId:t}=hr(),[n,r]=$a(),[s,a]=g.useState(!1),i=n.get("ids")?.split(",").map(Number).filter(h=>!isNaN(h)&&h>0)??[],{data:l,error:c}=Py(e??""),{Link:u}=un(),{data:d}=sRe(e??"",t??""),{data:f}=Yxe(e??"",t??"",i[0]??0,l?.version),{data:p}=Yxe(e??"",t??"",i[1]??0,l?.version);return c&&vs(c)?o.jsx(gs,{children:o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Fs,{})})}):c&&ys(c)?o.jsx(gs,{children:o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Es,{resource:"datasets"})})}):!e||!t?o.jsx(gs,{children:o.jsx(py,{children:o.jsx("div",{className:"text-neutral4 py-8 text-center",children:o.jsx("p",{children:"Item not found."})})})}):i.length<2?o.jsx(Cgs,{datasetId:e,itemId:t,Link:u,onCompare:h=>r({ids:h.join(",")})}):o.jsxs(gs,{children:[o.jsx($y,{owner:"dataset-item-versions-compare",children:o.jsxs(oe,{as:za,to:`/datasets/${e}/items/${t}`,variant:"outline",children:[o.jsx(yl,{}),"Back to Item"]})}),o.jsx("div",{className:"h-full overflow-hidden px-[3vw] pb-4",children:o.jsxs("div",{className:Y("grid gap-6 max-w-[140rem] mx-auto grid-rows-[auto_1fr] h-full",{"grid-rows-[auto_auto_1fr]":s}),children:[o.jsxs(Aa,{children:[o.jsxs(Aa.Column,{children:[o.jsxs(Aa.Title,{children:[o.jsx(jj,{}),"Compare Dataset Item Versions"]}),o.jsx(Aa.Description,{children:o.jsxs(Rl,{children:["Comparing ",i.length," versions of"," ",o.jsx(za,{to:`/datasets/${e}/items/${t}`,className:"text-info1 hover:underline",children:t})]})})]}),o.jsx(Aa.Column,{children:o.jsx(es,{children:o.jsx(oe,{variant:"primary",onClick:()=>a(h=>!h),children:s?o.jsxs(o.Fragment,{children:[o.jsx(CV,{})," Default View"]}):o.jsxs(o.Fragment,{children:[o.jsx(OKt,{})," Diff View"]})})})})]}),o.jsx(n1,{className:"grid-cols-[1fr_3vw_1fr]",children:i.map((h,m)=>o.jsxs(g.Fragment,{children:[o.jsx(Egs,{datasetId:e,itemId:t,datasetVersion:h,latestVersion:l?.version,allVersions:d??[],versionNumbers:i,Link:u,idx:m,showContent:!s,onVersionChange:v=>{const y=[...i];y[m]=v,r({ids:y.join(",")})}}),m===0&&o.jsx("div",{className:Y("bg-surface5 w-[3px] shrink-0 mx-[1.5vw]")})]},h))}),s&&f&&p&&o.jsx(CAe,{codeA:att(f),codeB:att(p)})]})})]})}function Cgs({datasetId:e,itemId:t,Link:n,onCompare:r}){const[s,a]=g.useState(null),{data:i,isLoading:l}=sRe(e,t),c=(s!=null?i?.find(d=>d.datasetVersion===s):void 0)??i?.[0],u=c?{id:c.id,datasetId:e,datasetVersion:c.datasetVersion,input:c.input,groundTruth:c.groundTruth,scorerIds:c.scorerIds,metadata:c.metadata,createdAt:c.createdAt,updatedAt:c.updatedAt}:null;return o.jsxs(gs,{children:[o.jsx($y,{owner:"dataset-item-versions-history",children:o.jsxs(oe,{as:za,to:`/datasets/${e}/items/${t}`,variant:"outline",children:[o.jsx(yl,{}),"Back to Item"]})}),o.jsx("div",{className:"h-full overflow-hidden px-[3vw] pb-4",children:o.jsxs("div",{className:"mx-auto grid h-full max-w-[140rem] grid-rows-[auto_1fr] gap-6",children:[o.jsx(Aa,{children:o.jsxs(Aa.Column,{children:[o.jsxs(Aa.Title,{children:[o.jsx(cI,{}),"Item Version History"]}),o.jsx(Aa.Description,{children:o.jsxs(Rl,{children:["Versions of ",t]})})]})}),o.jsxs(n1,{className:"grid-cols-[1fr_auto]",children:[o.jsx(pa,{children:o.jsx(pa.Content,{children:l?o.jsx("div",{className:"text-neutral4 text-sm",children:"Loading..."}):u?o.jsx(oRe,{item:u,Link:n}):o.jsx("div",{className:"text-neutral4 text-sm",children:"Item data not available"})})}),o.jsx(igs,{datasetId:e,itemId:t,onClose:()=>{},onVersionSelect:d=>a(d.datasetVersion),onCompareVersionsClick:r,activeVersion:s})]})]})})]})}function Egs({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}=Yxe(e,t,n,r),p=new Set(a.filter((v,y)=>y!==l)),h=s.map(v=>{const y=typeof v.updatedAt=="string"?new Date(v.updatedAt):v.updatedAt;return{value:String(v.datasetVersion),label:o.jsxs(o.Fragment,{children:[o.jsxs("b",{children:["v. ",v.datasetVersion]})," - ",ur(y,"MMM d, yyyy h:mm a"),v.isLatest?o.jsx(wt,{variant:"blue",size:"xs",children:"Latest"}):null]}),disabled:p.has(v.datasetVersion)}}),m=d?{id:d.id,datasetId:e,datasetVersion:d.datasetVersion,input:d.input,groundTruth:d.groundTruth,scorerIds:d.scorerIds,metadata:d.metadata,createdAt:d.createdAt,updatedAt:d.updatedAt}:null;return o.jsxs(pa,{children:[o.jsxs(pa.Toolbar,{className:"grid grid-cols-[auto_1fr] gap-4",children:[o.jsx(cI,{className:"h-6 w-6 opacity-50"}),o.jsxs(oa,{name:`compare-version-${l}`,value:String(n),onValueChange:v=>u(Number(v)),children:[o.jsx(ca,{"aria-label":"Version",className:"w-full",children:o.jsx(la,{placeholder:"Select version"})}),o.jsx(ua,{children:h.map(v=>o.jsx(xr,{value:v.value,disabled:v.disabled,children:v.label},v.value))})]})]}),c&&o.jsx(pa.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(oRe,{item:m,Link:i})})]})}function Tgs(){const{datasetId:e}=hr(),[t]=$a(),n=t.get("ids")?.split(",").map(Number).filter(v=>!isNaN(v)&&v>0)??[],r=Vr(),{data:s,error:a}=Py(e??""),i=V1(e??"",void 0,n[0]??null),l=V1(e??"",void 0,n[1]??null),c=g.useMemo(()=>i.data??[],[i.data]),u=g.useMemo(()=>l.data??[],[l.data]),d=g.useMemo(()=>{const v=new Map;for(const y of[...c,...u])v.has(y.id)||v.set(y.id,{id:y.id,createdAt:new Date(y.createdAt)});return[...v.values()].sort((y,b)=>b.createdAt.getTime()-y.createdAt.getTime())},[c,u]),f=g.useMemo(()=>new Map(c.map(v=>[v.id,v])),[c]),p=g.useMemo(()=>new Map(u.map(v=>[v.id,v])),[u]);if(a&&vs(a))return o.jsx(gs,{children:o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Fs,{})})});if(a&&ys(a))return o.jsx(gs,{children:o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Es,{resource:"datasets"})})});if(!e||n.length<2)return o.jsx(gs,{children:o.jsx(py,{children:o.jsx("div",{className:"text-neutral4 py-8 text-center",children:o.jsx("p",{children:"Select at least two versions to compare."})})})});const h=(v,y,b)=>{r(`/datasets/${e}/items/${v}/versions?ids=${y?.datasetVersion??""},${b?.datasetVersion??""}`)},m=(v,y)=>{r(`/datasets/${e}/versions?ids=${v},${y}`,{replace:!0})};return o.jsx(gs,{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(Aa,{children:[o.jsxs(Aa.Column,{children:[o.jsxs(Aa.Title,{children:[o.jsx(RJt,{})," Compare Dataset Versions"]}),o.jsx(Aa.Description,{children:o.jsxs(Rl,{children:[o.jsx(cI,{})," Comparing ",n.length," versions of"," ",s?.name||e?.slice(0,8)]})})]}),o.jsx(Aa.Column,{children:o.jsxs(oe,{as:za,to:`/datasets/${e}`,children:[o.jsx(yl,{}),"Back to Dataset"]})})]}),o.jsx(n1,{children:o.jsxs(pa,{children:[o.jsx(cgs,{datasetId:e,versionA:String(n[0]),versionB:String(n[1]),onVersionChange:m}),o.jsx(fgs,{datasetId:e,versionA:n[0],versionB:n[1],allItems:d,itemsAMap:f,itemsBMap:p,onItemClick:h})]})})]})})})}function jgs(){const e=Vr(),[t]=$a(),n=t.get("targetType"),r=YD(n)?n:void 0,s=t.get("targetIds"),a=r&&s?s.split(",").map(i=>i.trim()).filter(Boolean):void 0;return o.jsxs(Bt,{height:"full",children:[o.jsx("div",{}),o.jsx(Bt.MainArea,{isCentered:!0,children:o.jsxs("div",{className:"w-full max-w-2xl overflow-y-auto px-6 py-8",children:[o.jsx(Aa,{className:"mb-6 p-0",children:o.jsxs(Aa.Column,{children:[o.jsxs(Aa.Title,{children:[o.jsx(fm,{})," Create new dataset"]}),o.jsx(Aa.Description,{children:"Datasets group test cases used to evaluate your agents and workflows."})]})}),o.jsx(Yu,{className:"p-6",children:o.jsx(qhs,{targetType:r,targetIds:a,onSuccess:i=>{e(`/datasets/${i}`)},onCancel:()=>{e(-1)}})})]})})]})}function Jxe({children:e,className:t}){return o.jsx("div",{className:Y("flex flex-wrap gap-8",t),children:e})}function Ngs(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 Igs({scorers:e,datasets:t,experiments:n,avgScore:r,prevAvgScore:s,totalNeedsReview:a,isLoadingScorers:i,isLoadingDatasets:l,isLoadingExperiments:c,isLoadingScores:u,isLoadingReview:d}){const f=e?Object.keys(e).length:void 0,p=t?.length,h=n?.length,m=r!=null&&s!=null&&s!==0?{changePct:Math.round((r-s)/s*100*10)/10,prevValue:String(s)}:null,v=Ngs(n);return o.jsxs(o.Fragment,{children:[o.jsxs(Xr,{children:[o.jsx(Xr.Label,{children:"Total Scorers"}),i?o.jsx(Xr.Loading,{}):f!=null?o.jsxs(o.Fragment,{children:[o.jsx(Xr.Value,{children:String(f)}),o.jsx(Xr.NoChange,{message:"Static count"})]}):o.jsx(Xr.NoData,{})]}),o.jsxs(Xr,{children:[o.jsx(Xr.Label,{children:"Total Datasets"}),l?o.jsx(Xr.Loading,{}):p!=null?o.jsxs(o.Fragment,{children:[o.jsx(Xr.Value,{children:String(p)}),o.jsx(Xr.NoChange,{message:"Static count"})]}):o.jsx(Xr.NoData,{})]}),o.jsxs(Xr,{children:[o.jsx(Xr.Label,{children:"Avg Score"}),u?o.jsx(Xr.Loading,{}):r!=null?o.jsxs(o.Fragment,{children:[o.jsx(Xr.Value,{children:String(r)}),m?o.jsx(Xr.Change,{changePct:m.changePct,prevValue:m.prevValue}):o.jsx(Xr.NoChange,{})]}):o.jsx(Xr.NoData,{})]}),o.jsxs(Xr,{children:[o.jsx(Xr.Label,{children:"Total Experiments"}),c?o.jsx(Xr.Loading,{}):h!=null?o.jsxs(o.Fragment,{children:[o.jsx(Xr.Value,{children:String(h)}),v?o.jsx(Xr.Change,{changePct:v.changePct,prevValue:v.prevValue}):o.jsx(Xr.NoChange,{})]}):o.jsx(Xr.NoData,{})]}),o.jsxs(Xr,{children:[o.jsx(Xr.Label,{children:"Needs Review"}),d?o.jsx(Xr.Loading,{}):a!=null?o.jsxs(o.Fragment,{children:[o.jsx(Xr.Value,{children:String(a)}),a>0?o.jsx(Xr.NoChange,{message:"items pending review"}):o.jsx(Xr.NoChange,{message:"All caught up"})]}):o.jsx(Xr.NoData,{})]})]})}const Ags=60;function Rgs({experiment:e}){const t=hS(e.id)??e.id,n=e.name||`Experiment #${t}`,r=e.description||Pgs(e),s=o.jsxs("span",{className:"flex min-w-0 flex-col gap-0.5 py-0.5 text-left",children:[o.jsx("span",{className:"text-neutral4 block truncate",children:n}),r&&o.jsx("span",{className:"text-ui-sm text-neutral2 block truncate",children:r})]});return!e.description||e.description.length<=Ags?s:o.jsxs(yn,{children:[o.jsx(gn,{asChild:!0,children:s}),o.jsx(vn,{children:e.description})]})}function Pgs(e){const t=[];e.datasetVersion!=null&&t.push(`v${e.datasetVersion}`);const n=e.scorerIds?.length??0;return n>0&&t.push(`${n} scorer${n>1?"s":""}`),t.length?t.join(" · "):null}const sY=()=>{const{requestContext:e}=bs(),t=Ge();return ht({queryKey:["processors"],queryFn:()=>t.listProcessors(e)})},UVt=(e,t)=>{const n=Ge(),{requestContext:r}=bs();return ht({queryKey:["processor",e],queryFn:()=>n.getProcessor(e).details(r),enabled:!!e})},$gs=()=>{const e=Ge(),{requestContext:t}=bs();return kn({mutationFn:async({processorId:n,phase:r,messages:s,agentId:a})=>e.getProcessor(n).execute({phase:r,messages:s,agentId:a,requestContext:t})})};function qVt(){const{data:e}=zm(),{data:t}=Wy(),{data:n}=lh(),{data:r}=sY();return{agents:e,workflows:t,scorers:n,processors:r}}const VVt={agent:Ii,workflow:qc,scorer:AC,processor:ID},HVt={agent:"Agent",workflow:"Workflow",scorer:"Scorer",processor:"Processor"},Mgs="External (caller-run)";function WVt(e,{agents:t,workflows:n,scorers:r,processors:s}){const{targetType:a,targetId:i}=e;if(!i)return Mgs;switch(a){case"agent":return t?.[i]?.name??i;case"workflow":return n?.[i]?.name??i;case"scorer":return r?.[i]?.scorer?.config?.name??i;case"processor":return s?.[i]?.name??i;default:return i}}function Dgs({experiment:e,datasetName:t,review:n}){const r=e.status??"pending",s=e.succeededCount??0,a=e.failedCount??0,i=e.totalItems??0;return o.jsxs(o.Fragment,{children:[o.jsx(he.Cell,{children:o.jsx(Rgs,{experiment:e})}),t!==void 0&&o.jsx(he.TextCell,{children:t}),o.jsx(he.Cell,{children:o.jsx(Lgs,{experiment:e})}),o.jsx(he.Cell,{children:o.jsx(wt,{variant:EUt[r]??"neutral",indicator:"dot",children:LT[r]??r})}),o.jsx(he.TextCell,{className:"text-center",children:i}),o.jsx(he.TextCell,{className:"text-center",children:s}),o.jsx(he.TextCell,{className:"text-center",children:o.jsx("span",{className:a>0?"text-accent2":"",children:a})}),o.jsx(he.Cell,{className:"text-center",children:o.jsx(Fgs,{review:n})}),o.jsx(he.TextCell,{children:Eos(e.createdAt)})]})}function Lgs({experiment:e}){const t=qVt(),n=WVt(e,t),r=e.targetId?e.targetType:null,s=r?VVt[r]:null;return o.jsxs("span",{className:"flex min-w-0 items-center gap-1.5 [&_svg]:size-3.5 [&_svg]:shrink-0",children:[s&&o.jsx("span",{className:"text-neutral3 flex",role:"img","aria-label":HVt[r],children:o.jsx(s,{})}),o.jsx("span",{className:r?"truncate":"text-neutral2 truncate",children:n})]})}function Fgs({review:e}){if(!e)return o.jsx("span",{className:"text-neutral2",children:"—"});const t=e.needsReview+e.complete;return t===0?o.jsx("span",{className:"text-neutral2",children:"—"}):e.needsReview>0?o.jsxs(wt,{size:"xs",variant:"yellow",children:[e.needsReview," pending"]}):o.jsxs(wt,{size:"xs",variant:"green",children:[e.complete,"/",t," reviewed"]})}const qie=`${Oos} ${_os} ${Cos}`,zgs=[{label:Eb.experiment},{label:Eb.dataset},{label:Eb.target},{label:Eb.status},{label:Eb.items,className:"text-center"},{label:Eb.succeeded,className:"text-center"},{label:Eb.failed,className:"text-center"},{label:Eb.review,className:"text-center"},{label:Eb.date}];function Bgs({experiments:e,datasets:t,reviewByExperiment:n,isLoading:r,search:s="",statusFilter:a="all",datasetFilter:i="all",selection:l}){const c=l!==void 0,{paths:u,Link:d}=un(),f=g.useMemo(()=>{const x=new Map;return t?.forEach(S=>x.set(S.id,S.name)),x},[t]),p=g.useMemo(()=>[...e].sort((x,S)=>{const k=x.createdAt?new Date(x.createdAt).getTime():0;return(S.createdAt?new Date(S.createdAt).getTime():0)-k}),[e]),h=g.useMemo(()=>{const x=s.toLowerCase();return p.filter(S=>{const k=S.datasetId?f.get(S.datasetId)??"":"",_=!x||S.id.toLowerCase().includes(x)||(S.name??"").toLowerCase().includes(x)||k.toLowerCase().includes(x)||(S.targetId??"").toLowerCase().includes(x),C=a==="all"||S.status===a,T=i==="all"||S.datasetId===i;return _&&C&&T})},[p,s,f,a,i]),{containerRef:m,getRowProps:v}=ao({count:h.length});if(r)return o.jsx(Fo,{columns:qie});const y=c?`auto ${qie}`:qie,b=zgs.map(x=>o.jsx(he.TopCell,{className:x.className,children:x.label},x.label));return o.jsxs(he,{columns:y,variant:"striped",scrollRef:m,children:[o.jsx(he.Top,{hasLeadingCell:c,children:c?o.jsxs(o.Fragment,{children:[o.jsx(he.TopCell,{children:" "}),o.jsx(he.TopCells,{colStart:2,children:b})]}):b}),h.map((x,S)=>{const k=x.datasetId?f.get(x.datasetId)??hS(x.datasetId)??x.datasetId:"—",_=o.jsx(Dgs,{experiment:x,datasetName:k,review:n?.get(x.id)});if(!l)return o.jsx(he.RowLink,{to:u.experimentLink(x.id),LinkComponent:d,...v(S),children:_},x.id);const C=l.selectedExperimentIds.includes(x.id),T=()=>l.onToggleSelection(x.id);return o.jsxs(he.RowWrapper,{children:[o.jsx(he.SelectCell,{checked:C,onToggle:T,"aria-label":`Select experiment ${x.id}`}),o.jsx(he.RowButton,{colStart:2,featured:C,onClick:T,...v(S),children:_})]},x.id)})]})}const Ugs=[{value:"all",label:"All statuses"},{value:"completed",label:"Completed"},{value:"running",label:"Running"},{value:"failed",label:"Failed"},{value:"pending",label:"Pending"}];function qgs(e){return[{value:"all",label:"All datasets"},...(e??[]).map(t=>({value:t.id,label:t.name}))]}const r8={completed:L7.neutral3,running:"#facc15",pending:"#fb923c",failed:"#f87171"},Vgs=[{label:"Completed",color:r8.completed},{label:"Running",color:r8.running},{label:"Pending",color:r8.pending},{label:"Failed",color:r8.failed}];function Hgs({experiments:e,datasets:t,isLoading:n,isError:r}){const{data:s,maxVal:a}=g.useMemo(()=>{if(!e||e.length===0)return{data:[],maxVal:0};const l=new Map;if(t)for(const f of t)l.set(f.id,f.name);const c=new Map;for(const f of e){const p=f.datasetId??"unknown";c.has(p)||c.set(p,{completed:0,running:0,pending:0,failed:0});const h=c.get(p),m=f.status;m in h&&h[m]++}let u=0;return{data:Array.from(c.entries()).map(([f,p])=>{const h=p.completed+p.running+p.pending+p.failed;return h>u&&(u=h),{name:l.get(f)??f.slice(0,12),values:[p.completed,p.running,p.pending,p.failed]}}),maxVal:u}},[e,t]),i=s.length>0;return o.jsxs(Vt,{children:[o.jsxs(Vt.TopBar,{children:[o.jsx(Vt.TitleAndDescription,{title:"Experiments by Dataset",description:"Experiment status breakdown per dataset."}),i&&o.jsx(Vt.Summary,{value:String(e?.length??0),label:"Total experiments"})]}),n?o.jsx(Vt.Loading,{}):r?o.jsx(Vt.Error,{message:"Failed to load experiments data"}):o.jsx(Vt.Content,{children:i?o.jsx(YN,{data:s,segments:Vgs,maxVal:a,fmt:l=>String(l)}):o.jsx(Vt.NoData,{message:"No experiments have been run yet"})})]})}const Wgs=({onRunExperiment:e})=>o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(br,{iconSlot:o.jsx(Dc,{}),titleSlot:"No Experiments yet",descriptionSlot:o.jsxs(o.Fragment,{children:["Run an experiment from a dataset to evaluate ",o.jsx("br",{}),"your agents and workflows."]}),actionSlot:o.jsxs("div",{className:"flex flex-col items-center gap-2",children:[e&&o.jsxs(oe,{variant:"primary",onClick:e,children:[o.jsx(Lc,{}),"Run Experiment"]}),o.jsxs(oe,{variant:"ghost",as:"a",href:"https://mastra.ai/docs/evals/experiments",target:"_blank",rel:"noopener noreferrer",children:["Experiments Documentation ",o.jsx(ea,{})]})]})})});function Zgs({search:e,onSearchChange:t,statusFilter:n,onStatusFilterChange:r,datasetFilter:s,onDatasetFilterChange:a,datasetOptions:i,onReset:l,hasActiveFilters:c,onRunClick:u,runTooltip:d="Run an experiment",onCompareClick:f,selection:p}){if(p){const{selectedCount:h,onExecuteCompare:m,onCancelSelection:v,compareDisabledReason:y}=p,b=h===2&&!y;return o.jsx("div",{className:"flex w-full items-center justify-end gap-4",children:o.jsxs("div",{className:"flex items-center gap-5",children:[o.jsxs("div",{className:"text-neutral3 flex items-center gap-2 pl-6 text-sm",children:[o.jsx(wt,{size:"md",variant:h<2?"red":"green",children:h}),o.jsx("span",{children:"of 2 experiments selected"}),y&&o.jsxs("span",{className:"text-accent2",children:["— ",y]}),o.jsx(mct,{})]}),o.jsxs(es,{children:[o.jsxs(oe,{variant:"primary",disabled:!b,onClick:m,children:[o.jsx(jj,{className:"h-4 w-4"}),"Compare Experiments"]}),o.jsx(oe,{onClick:v,children:"Cancel"})]})]})})}return o.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[o.jsx("div",{className:"max-w-120 min-w-64 flex-1",children:o.jsx(od,{label:"Search experiments",placeholder:"Filter by experiment, dataset, or target",value:e,onSearch:t})}),o.jsxs(es,{children:[o.jsx(Ld,{label:"Status",labelIsHidden:!0,name:"filter-status",options:[...Ugs],value:n,onValueChange:r,className:"whitespace-nowrap"}),o.jsx(Ld,{label:"Dataset",labelIsHidden:!0,name:"filter-dataset",options:i,value:s,onValueChange:a,className:"whitespace-nowrap"}),l&&c&&o.jsxs(oe,{onClick:l,size:"sm",variant:"default",children:[o.jsx(or,{className:"size-3"})," Reset"]})]}),o.jsxs(es,{className:"ml-auto shrink-0",children:[f&&o.jsxs(oe,{onClick:f,tooltip:"Select two experiments of the same dataset to compare",children:[o.jsx(jj,{}),"Compare"]}),u&&o.jsxs(oe,{onClick:u,tooltip:d,variant:"primary",children:[o.jsx(Lc,{}),"Run Experiment"]})]})]})}const Ggs={present:!1,output:null,metadata:null,comment:null,error:null,startedAt:null,completedAt:null,scores:[]},itt=e=>e?e instanceof Date?e.toISOString():e:null,ott=e=>{const t=new Map;for(const n of e??[])t.set(n.itemId,n);return t},ltt=(e,t,n)=>{if(!e)return Ggs;const r=new Map;for(const s of n??[])r.set(s.scorerId,s.reason??null);return{present:!0,output:e.output,metadata:t?.metadata??null,comment:t?.comment??null,error:t?.error??null,startedAt:itt(t?.startedAt),completedAt:itt(t?.completedAt),scores:Object.entries(e.scores).map(([s,a])=>({scorerId:s,value:a,reason:r.get(s)??null})).sort((s,a)=>s.scorerId.localeCompare(a.scorerId))}},Qgs=({comparison:e,baselineId:t,contenderId:n,baselineResults:r,contenderResults:s,baselineScores:a,contenderScores:i})=>{if(!e)return[];const l=ott(r),c=ott(s);return e.items.map(u=>{const d=ltt(u.results[t],l.get(u.itemId),a?.[u.itemId]),f=ltt(u.results[n],c.get(u.itemId),i?.[u.itemId]),p={};for(const h of new Set([...d.scores,...f.scores].map(m=>m.scorerId))){const m=d.scores.find(y=>y.scorerId===h)?.value??null,v=f.scores.find(y=>y.scorerId===h)?.value??null;p[h]=m!=null&&v!=null?v-m:null}return{itemId:u.itemId,input:u.input,groundTruth:u.groundTruth,baseline:d,contender:f,deltas:p}})};function Ik({title:e,actions:t,tone:n="default",defaultOpen:r=!0,children:s}){return o.jsxs(zc,{defaultOpen:r,className:"grid gap-2",children:[o.jsxs("div",{className:"flex min-h-6 items-center justify-between gap-2",children:[o.jsxs(fc,{className:Y("text-ui-md flex items-center gap-1.5 font-semibold [&>svg]:size-4",n==="negative"?"text-negative1":"text-neutral5"),children:[o.jsx(Ur,{}),e]}),t]}),o.jsx(pc,{role:"region","aria-label":e,children:s})]})}function ctt({label:e,value:t}){return t==null?null:o.jsx(Ik,{title:e,defaultOpen:!1,children:o.jsx("pre",{className:"text-ui-sm text-neutral4 bg-surface3 max-h-40 overflow-auto rounded-md p-3 whitespace-pre-wrap",children:typeof t=="string"?t:JSON.stringify(t,null,2)})})}function ZVt({delta:e}){const t=e>0?"text-positive1":e<0?"text-negative1":"text-neutral3";return o.jsxs("span",{className:Y("inline-flex min-w-20 items-center gap-1 font-mono text-sm",t),children:[o.jsx("span",{className:"inline-block w-3",children:e>0?"+":e<0?"-":""}),Math.abs(e).toFixed(2),e>0?o.jsx(oQt,{className:"size-3.5"}):e<0?o.jsx(KGt,{className:"size-3.5"}):null]})}function GVt({scorerId:e,value:t,delta:n,reason:r}){const{Link:s,paths:a}=un();return o.jsxs("div",{className:"bg-surface2 grid gap-1 rounded-lg px-3 py-2",children:[o.jsxs("div",{className:"flex items-center justify-between gap-4",children:[o.jsxs(s,{href:a.scorerLink(e),"aria-label":`Open ${e}`,className:"text-neutral5 flex min-w-0 items-center gap-1.5 text-sm font-medium hover:underline [&>svg]:size-3.5 [&>svg]:shrink-0",children:[o.jsx(AC,{}),o.jsx("span",{className:"min-w-0 truncate",children:e})]}),o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsx("span",{className:"text-neutral3 font-mono text-sm",children:t!=null?t.toFixed(2):"-"}),n!=null&&o.jsx(ZVt,{delta:n})]})]}),r&&o.jsx("p",{className:"text-neutral3 text-sm",children:r})]})}function utt(e){return e==null?"-":typeof e=="string"?e:JSON.stringify(e,null,2)}function Ygs(e){if(!e.startedAt||!e.completedAt)return null;const t=new Date(e.completedAt).getTime()-new Date(e.startedAt).getTime();return Number.isFinite(t)?`${(t/1e3).toFixed(2)}s`:null}const Kgs="border-border1 bg-surface3 text-ui-md text-neutral4 max-h-[30vh] overflow-y-auto rounded-xl border p-4 font-mono break-all whitespace-pre-wrap dark:border-white/10 dark:bg-black/20";function dtt({side:e,row:t,showDeltas:n,isLoading:r}){const s=t[e],a=Ygs(s);if(r)return o.jsx("div",{className:"flex h-32 items-center justify-center",children:o.jsx(qt,{})});if(!s.present)return o.jsx("p",{className:"text-neutral3 py-8 text-center text-sm",children:"Not present in this experiment"});const i=utt(s.output);return o.jsxs("div",{className:"grid content-start gap-5",children:[a&&o.jsxs(yn,{children:[o.jsx(gn,{render:o.jsxs("p",{className:"text-neutral3 flex items-center justify-end gap-1.5 text-sm [&>svg]:size-3.5",children:[o.jsx(s1,{}),a]})}),o.jsx(vn,{children:"Run duration"})]}),s.error?o.jsx(Ik,{title:"Error",tone:"negative",actions:o.jsx(ka,{content:s.error.message}),children:o.jsx("p",{className:"border-negative1/40 bg-negative1/5 text-ui-md text-neutral4 rounded-xl border p-4 break-words",children:s.error.message})}):o.jsx(Ik,{title:"Output",actions:o.jsx(ka,{content:i}),children:o.jsx("pre",{className:Kgs,children:i})}),s.scores.length>0&&o.jsx(Ik,{title:"Scores",children:o.jsx("div",{className:"grid gap-2",children:s.scores.map(l=>o.jsx(GVt,{scorerId:l.scorerId,value:l.value,delta:n?t.deltas[l.scorerId]:null,reason:l.reason},l.scorerId))})}),s.comment&&o.jsx(Ik,{title:"Comment",defaultOpen:!1,children:o.jsx("p",{className:"text-neutral3 text-sm",children:s.comment})}),s.metadata&&Object.keys(s.metadata).length>0&&o.jsx(Ik,{title:"Metadata",defaultOpen:!1,children:o.jsx("dl",{className:"grid gap-1",children:Object.entries(s.metadata).map(([l,c])=>o.jsxs("div",{className:"flex items-start justify-between gap-4 text-sm",children:[o.jsx("dt",{className:"text-neutral3",children:l}),o.jsx("dd",{className:"text-neutral5 font-mono break-all",children:utt(c)})]},l))})})]})}const Xgs={baseline:"Baseline",contender:"Contender"},Jgs={baseline:"purple",contender:"blue"},evs="flex min-w-0 items-center gap-1.5 hover:underline [&>svg]:size-3.5 [&>svg]:shrink-0";function ftt({side:e,experiment:t,summary:n,showDeltas:r,versionMismatch:s}){const{Link:a,paths:i}=un(),l=Xgs[e],c=t?hS(t.id)??t.id:null,u=t?.createdAt?new Date(t.createdAt):null,d=n??[];return o.jsxs("div",{className:"grid content-start gap-3",children:[o.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[o.jsx(wt,{variant:Jgs[e],size:"xs",children:l}),t&&o.jsx(oe,{as:a,size:"xs",href:`/experiments/${t.id}`,"aria-label":`Open experiment ${t.name||c}`,children:o.jsx("span",{className:"min-w-0 truncate",children:t.name||c})})]}),t&&o.jsxs("div",{className:"text-ui-sm text-neutral3 flex flex-wrap gap-x-4 gap-y-1",children:[t.name&&o.jsxs(Rl,{children:[o.jsx(NV,{})," ",c]}),t.targetType==="agent"&&t.targetId?o.jsxs(a,{href:i.agentLink(t.targetId),className:evs,children:[o.jsx(Ii,{}),o.jsx("span",{className:"min-w-0 truncate",children:t.targetId})]}):o.jsxs(Rl,{children:[o.jsx(kct,{})," ",t.targetId]}),o.jsx("span",{className:Y(s&&"text-accent6"),children:o.jsxs(Rl,{children:[o.jsx(IV,{})," v",t.datasetVersion??"—",s&&" · different dataset version"]})}),u&&o.jsxs(Rl,{children:[o.jsx(B9,{})," ",ur(u,"MMM d, yyyy HH:mm")]})]}),d.length>0&&o.jsx(Ik,{title:"Overall score",children:o.jsx("div",{className:"grid gap-2",children:d.map(({scorerId:f,average:p,delta:h})=>o.jsx(GVt,{scorerId:f,value:p,delta:r?h:null},f))})})]})}const qE="min-w-0 px-4 py-3";function tvs({datasetId:e,experimentIdA:t,experimentIdB:n}){const{Link:r,paths:s}=un(),{data:a,isLoading:i,error:l}=shs(e,t,n),{data:c}=WD(e,t),{data:u}=WD(e,n),d=c&&u&&c.datasetVersion!==u.datasetVersion,f=a?.baselineId??t,p=t===f?n:t,h=c?.id===f?c:u,m=c?.id===p?c:u,{data:v,isLoading:y}=ZD({datasetId:e,experimentId:f,experimentStatus:h?.status}),{data:b,isLoading:x}=ZD({datasetId:e,experimentId:p,experimentStatus:m?.status}),{data:S}=__(f,h?.status),{data:k}=__(p,m?.status),_=g.useMemo(()=>Qgs({comparison:a,baselineId:f,contenderId:p,baselineResults:v,contenderResults:b,baselineScores:S,contenderScores:k}),[a,f,p,v,b,S,k]),C=g.useMemo(()=>[...new Set(_.flatMap(E=>Object.keys(E.deltas)))].sort(),[_]),T=g.useMemo(()=>{const E=(A,R)=>{const L=_.map(M=>M[A].scores.find(z=>z.scorerId===R)?.value).filter(M=>M!=null);return L.length>0?L.reduce((M,z)=>M+z,0)/L.length:null},N=C.map(A=>({scorerId:A,average:E("baseline",A),delta:null})),I=C.map(A=>{const R=E("baseline",A),L=E("contender",A);return{scorerId:A,average:L,delta:R!=null&&L!=null?L-R:null}});return{baseline:N,contender:I}},[_,C]);return i?o.jsx("div",{className:"flex h-64 items-center justify-center",children:o.jsx(qt,{})}):l?o.jsx(An,{variant:"warning",title:"Error loading comparison",children:o.jsx(An.Message,{children:l instanceof Error?l.message:"Unknown error"})}):!a||a.items.length===0?o.jsx("div",{className:"text-neutral4 py-8 text-center text-sm",children:"No comparison data"}):o.jsx("div",{className:"grid gap-4",children:o.jsxs("div",{role:"table","aria-label":"Experiments comparison",className:"grid",children:[o.jsxs("div",{role:"row",className:"border-border1 grid border-y xl:grid-cols-[minmax(20rem,24rem)_1fr_1fr] xl:divide-x xl:divide-[var(--border1)]",children:[o.jsx("div",{role:"columnheader","aria-label":"Items",className:`${qE} text-neutral3 text-ui-sm uppercase`,children:"Items"}),o.jsx("div",{role:"columnheader","aria-label":"Baseline",className:qE,children:o.jsx(ftt,{side:"baseline",experiment:h,summary:T.baseline,versionMismatch:d})}),o.jsx("div",{role:"columnheader","aria-label":"Contender",className:qE,children:o.jsx(ftt,{side:"contender",experiment:m,summary:T.contender,versionMismatch:d,showDeltas:!0})})]}),_.map(E=>{const N=Object.entries(E.deltas).filter(([,I])=>I!=null&&I!==0);return o.jsxs("div",{role:"row","aria-label":E.itemId,className:"border-border1 grid border-b xl:grid-cols-[minmax(20rem,24rem)_1fr_1fr] xl:divide-x xl:divide-[var(--border1)]",children:[o.jsxs("div",{role:"cell",className:`${qE} grid content-start gap-1`,children:[o.jsx(r,{href:s.datasetItemLink(e,E.itemId),"aria-label":`Open item ${E.itemId}`,className:Y("text-ui-sm flex items-start gap-1.5 font-mono break-all hover:underline [&>svg]:mt-0.5 [&>svg]:size-3.5 [&>svg]:shrink-0",E.baseline.present&&E.contender.present?"text-neutral4":"text-neutral1"),children:o.jsx("span",{className:"min-w-0",children:E.itemId})}),N.length>0&&o.jsx("span",{className:"flex flex-wrap items-center gap-2",children:N.map(([I,A])=>o.jsx(ZVt,{delta:A},I))}),o.jsxs("div",{className:"grid pt-3",children:[o.jsx(ctt,{label:"Input",value:E.input}),o.jsx(ctt,{label:"Ground truth",value:E.groundTruth})]})]}),o.jsx("div",{role:"cell","aria-label":"Baseline",className:qE,children:o.jsx(dtt,{side:"baseline",row:E,isLoading:y})}),o.jsx("div",{role:"cell","aria-label":"Contender",className:qE,children:o.jsx(dtt,{side:"contender",row:E,isLoading:x,showDeltas:!0})})]},E.itemId)})]})})}const ptt={needsReview:"#facc15",complete:"#22c55e"},nvs=[{label:"Needs Review",color:ptt.needsReview},{label:"Reviewed",color:ptt.complete}];function rvs({reviewSummary:e,experiments:t,datasets:n,isLoading:r,isError:s}){const{data:a,maxVal:i,totalInPipeline:l}=g.useMemo(()=>{if(!e?.counts||!t)return{data:[],maxVal:0,totalInPipeline:0};const u=new Map;for(const m of t)u.set(m.id,m);const d=new Map;if(n)for(const m of n)d.set(m.id,m.name);let f=0,p=0;const h=[];for(const m of e.counts){const v=m.needsReview+m.complete;if(v===0)continue;p+=v,v>f&&(f=v);const y=u.get(m.experimentId),b=y?.datasetId?d.get(y.datasetId):void 0,x=b?`${b} · ${m.experimentId.slice(0,8)}`:m.experimentId.slice(0,8);h.push({name:x,values:[m.needsReview,m.complete]})}return{data:h,maxVal:f,totalInPipeline:p}},[e,t,n]),c=a.length>0;return o.jsxs(Vt,{children:[o.jsxs(Vt.TopBar,{children:[o.jsx(Vt.TitleAndDescription,{title:"Review Pipeline",description:"Items in review across experiments."}),c&&o.jsx(Vt.Summary,{value:String(l),label:"Items in pipeline"})]}),r?o.jsx(Vt.Loading,{}):s?o.jsx(Vt.Error,{message:"Failed to load review data"}):o.jsx(Vt.Content,{children:c?o.jsx(YN,{data:a,segments:nvs,maxVal:i,fmt:u=>String(u)}):o.jsx(Vt.NoData,{message:"No items have been sent to review yet"})})]})}function QVt(){const e=Ge();return ht({queryKey:["experiment-review-summary"],queryFn:()=>e.getExperimentReviewSummary()})}function svs(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 avs(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}}function ivs(){const[e,t]=g.useState("all"),[n,r]=g.useState({}),{data:s,isLoading:a,error:i}=lh(),{data:l,isLoading:c,error:u}=Pm(),{data:d,isLoading:f,error:p}=aRe(),{data:h,isLoading:m,isError:v,error:y}=sUr(n),{data:b,isLoading:x,isError:S,error:k}=QVt(),_=l?.datasets,C=d?.experiments,T=g.useMemo(()=>avs(b),[b]),E=i||u||p||y||k;return E&&vs(E)?o.jsx(Jn,{children:o.jsx(Fs,{})}):E&&ys(E)?o.jsx(Jn,{children:o.jsx(Es,{resource:"evaluation"})}):E?o.jsx(Jn,{children:o.jsx(qa,{title:"Failed to load evaluation data",message:E.message})}):o.jsxs(Bt,{width:"wide",height:"full",children:[o.jsx(Bt.TopArea,{children:o.jsx(Bt.Row,{children:o.jsx(Bt.Column,{children:o.jsx(H4,{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(Jxe,{children:o.jsx(Igs,{scorers:s,datasets:_,experiments:C,avgScore:h?.avgScore??null,prevAvgScore:h?.prevAvgScore??null,totalNeedsReview:T.needsReview,isLoadingScorers:a,isLoadingDatasets:c,isLoadingExperiments:f,isLoadingScores:m,isLoadingReview:x})}),o.jsx(gBr,{summaryData:h?.summaryData??[],overTimeData:h?.overTimeData??[],scorerNames:h?.scorerNames??[],avgScore:h?.avgScore??null,isLoading:m,isError:v}),o.jsxs("div",{className:"grid grid-cols-1 gap-6 lg:grid-cols-2",children:[o.jsx(Nhs,{experiments:C,isLoading:f,isError:!!p}),o.jsx(Hgs,{experiments:C,datasets:_,isLoading:f,isError:!!p})]}),o.jsx(rvs,{reviewSummary:b,experiments:C,datasets:_,isLoading:x,isError:!!S})]})]})}const ovs=100;function lvs(e){const t=Ge(),n={perPage:ovs};return ht({queryKey:e?["dataset-experiments",e,n]:["experiments",n],queryFn:()=>e?t.listDatasetExperiments(e,n):t.listExperiments(n)})}function cvs(){const[e,t]=g.useState(""),[n,r]=g.useState("all"),[s,a]=g.useState(!1),[i,l]=g.useState(!1),[c,u]=g.useState([]),d=Vr(),[f,p]=$a(),h=f.get("dataset")??"all",m=g.useCallback(Z=>{p(U=>{const P=new URLSearchParams(U);return Z==="all"?P.delete("dataset"):P.set("dataset",Z),P},{replace:!0})},[p]),{data:v,isLoading:y,error:b}=Pm(),{data:x,isLoading:S,error:k}=lvs(h==="all"?void 0:h),{data:_}=QVt(),C=g.useMemo(()=>v?.datasets??[],[v?.datasets]),T=g.useMemo(()=>x?.experiments??[],[x?.experiments]),E=g.useMemo(()=>qgs(C),[C]),N=g.useMemo(()=>svs(_),[_]),I=y||S,A=k||b,R=Z=>{u(U=>U.includes(Z)?U.filter(P=>P!==Z):U.length>=2?[U[0],Z]:[...U,Z])},L=()=>{u([]),l(!1)},{selectedIds:M,selectedDatasetIds:z}=g.useMemo(()=>{const Z=new Map(T.map(P=>[P.id,P.datasetId])),U=c.filter(P=>Z.has(P));return{selectedIds:U,selectedDatasetIds:new Set(U.map(P=>Z.get(P)))}},[T,c]),H=M.length===2&&z.size!==1?"experiments must belong to the same dataset":void 0,F=()=>{if(M.length!==2||H)return;const[Z,U]=M,[P]=z;if(!P)return;const q=new URLSearchParams({dataset:P,baseline:Z,contender:U});d(`/experiments/compare?${q.toString()}`)};if(A&&vs(A))return o.jsx(Jn,{children:o.jsx(Fs,{})});if(k&&ys(k))return o.jsx(Jn,{children:o.jsx(Es,{resource:"experiments"})});if(b&&ys(b))return o.jsx(Jn,{children:o.jsx(Es,{resource:"datasets"})});if(A)return o.jsx(Jn,{children:o.jsx(qa,{title:"Failed to load experiments",message:A.message})});const B=o.jsx(nY,{open:s,onOpenChange:a,onSuccess:Z=>{d(`/experiments/${Z}`)}});if(T.length===0&&!I&&h==="all")return o.jsxs(Jn,{children:[o.jsx(Wgs,{onRunExperiment:()=>a(!0)}),B]});const V=n!=="all"||h!=="all"||e!=="",D=()=>{t(""),r("all"),m("all")};return o.jsxs(Bt,{children:[o.jsx(Bt.TopArea,{children:o.jsx(Zgs,{search:e,onSearchChange:t,statusFilter:n,onStatusFilterChange:r,datasetFilter:h,onDatasetFilterChange:m,datasetOptions:E,onReset:D,hasActiveFilters:V,onRunClick:()=>a(!0),onCompareClick:()=>l(!0),selection:i?{selectedCount:M.length,onExecuteCompare:F,onCancelSelection:L,compareDisabledReason:H}:void 0})}),o.jsx(Bgs,{experiments:T,datasets:C,reviewByExperiment:N,isLoading:I,search:e,statusFilter:n,datasetFilter:h,selection:i?{selectedExperimentIds:M,onToggleSelection:R}:void 0}),B]})}function s8({experimentId:e}){const{Link:t,paths:n}=un();return o.jsx(oe,{as:t,href:n.experimentLink(e),size:"sm","aria-label":`Open experiment ${e}`,children:e.slice(0,8)})}function uvs(){const[e,t]=$a(),n=e.get("dataset")??"",r=e.get("baseline")??"",s=e.get("contender")??"",a=WD(n,r),i=WD(n,s),l=a.isLoading||i.isLoading,c=a.error??i.error;return c&&vs(c)?o.jsx(gs,{children:o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Fs,{})})}):c&&ys(c)?o.jsx(gs,{children:o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Es,{resource:"experiments"})})}):!n||!r||!s?o.jsx(gs,{children:o.jsx(py,{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: /experiments/compare?dataset=","{datasetId}","&baseline=","{experimentIdA}","&contender=","{experimentIdB}"]})]})})}):l?null:c&&!zEe(c)?o.jsx(gs,{children:o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(qa,{title:"Failed to load experiments",message:c.message})})}):c||!a.data||!i.data?o.jsx(gs,{children:o.jsx(py,{children:o.jsxs("div",{className:"text-neutral4 py-8 text-center",children:[o.jsxs("p",{children:["Experiments must belong to the same dataset (",n,") to be compared."]}),o.jsxs("p",{className:"mt-2 flex items-center justify-center gap-2 text-sm",children:["One of",o.jsx(s8,{experimentId:r}),"and",o.jsx(s8,{experimentId:s}),"was not found in it."]})]})})}):o.jsx(gs,{children:o.jsx(py,{children:o.jsxs("div",{className:"grid w-full content-start",children:[o.jsxs("div",{className:"flex items-center justify-between gap-4 px-6 py-3",children:[o.jsxs("div",{className:"flex min-w-0 items-center gap-3",children:[o.jsx(ve,{as:"h1",variant:"ui-lg",className:"text-neutral6 font-medium",children:"Experiments comparison"}),o.jsxs("p",{className:"text-ui-sm text-neutral4 flex items-center gap-2",children:[o.jsx(s8,{experimentId:r}),"and",o.jsx(s8,{experimentId:s})]})]}),o.jsxs(yn,{children:[o.jsx(gn,{asChild:!0,children:o.jsxs(oe,{onClick:()=>t({dataset:n,baseline:s,contender:r}),children:[o.jsx(Qlt,{}),"Swap sides"]})}),o.jsx(vn,{children:"Switch baseline and contender"})]})]}),o.jsx(tvs,{datasetId:n,experimentIdA:r,experimentIdB:s})]})})})}const YVt=e=>o.jsx("svg",{width:"16",height:"16",viewBox:"0 0 8.64637 9.45103",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:o.jsx("path",{d:"M7.80735 5.87241C7.63209 5.97219 7.43696 6.06166 7.22844 6.13866C6.46456 6.42068 5.43714 6.58649 4.32296 6.58649C3.20873 6.58649 2.18135 6.4207 1.41747 6.13866C1.20889 6.06164 1.01385 5.97223 0.838558 5.87241V7.59003C0.838558 7.62341 0.855765 7.70759 1.00172 7.83512C1.14707 7.96201 1.38219 8.09563 1.70829 8.21605C2.3572 8.45563 3.28149 8.61268 4.32296 8.61269C5.36456 8.61269 6.28937 8.45568 6.9383 8.21605C7.26428 8.09566 7.49888 7.96198 7.64419 7.83512C7.79024 7.70754 7.80735 7.62342 7.80735 7.59003V5.87241ZM7.80735 3.00789C7.63214 3.10763 7.4369 3.19647 7.22844 3.27345C6.46455 3.55549 5.43719 3.72129 4.32296 3.72129C3.20868 3.72128 2.18136 3.55552 1.41747 3.27345C1.20896 3.19645 1.01381 3.10766 0.838558 3.00789V4.72551C0.838558 4.7589 0.855657 4.84301 1.00172 4.97059C1.14707 5.09749 1.38219 5.23111 1.70829 5.35153C2.3572 5.59109 3.28154 5.74747 4.32296 5.74748C5.36456 5.74748 6.28937 5.59116 6.9383 5.35153C7.26432 5.23112 7.49887 5.09747 7.64419 4.97059C7.7536 4.87505 7.79089 4.80404 7.80257 4.76033L7.80735 4.72551V3.00789ZM7.80735 1.86099C7.80735 1.82758 7.79045 1.74291 7.64419 1.61522C7.49887 1.48838 7.26421 1.35534 6.9383 1.23497C6.28937 0.995339 5.36456 0.838331 4.32296 0.838331C3.28149 0.83834 2.3572 0.995383 1.70829 1.23497C1.38219 1.35539 1.14707 1.48832 1.00172 1.61522C0.855475 1.7429 0.838558 1.82758 0.838558 1.86099C0.838673 1.89462 0.855968 1.97882 1.00172 2.10607C1.14707 2.23297 1.38219 2.3659 1.70829 2.48632C2.3572 2.7259 3.28149 2.88295 4.32296 2.88296C5.36456 2.88296 6.28937 2.72595 6.9383 2.48632C7.26421 2.36595 7.49887 2.23291 7.64419 2.10607C7.78996 1.97881 7.80724 1.89462 7.80735 1.86099ZM8.64637 7.59003C8.64637 7.95465 8.44458 8.25006 8.1958 8.46728C7.94608 8.68529 7.60876 8.86274 7.22844 9.00318C6.46455 9.28522 5.43718 9.45102 4.32296 9.45102C3.20869 9.45101 2.18135 9.28525 1.41747 9.00318C1.03715 8.86274 0.699831 8.68529 0.450113 8.46728C0.201377 8.25007 0.000227451 7.9546 0.000227451 7.59003V1.86099C0.000227451 1.49643 0.201388 1.20095 0.450113 0.983742C0.699831 0.765728 1.03715 0.588275 1.41747 0.447838C2.18136 0.165769 3.20868 8.74396e-06 4.32296 0C5.43719 0 6.46455 0.165797 7.22844 0.447838C7.60876 0.588275 7.94608 0.765728 8.1958 0.983742C8.44457 1.20096 8.64637 1.49638 8.64637 1.86099V7.59003Z",fill:"currentColor"})});function KVt(e){const{data:t}=__(e.id,e.status);return g.useMemo(()=>{if(e.scorerIds?.length)return e.scorerIds;if(!t)return[];const n=new Set;for(const r of Object.values(t))for(const s of r)n.add(s.scorerId);return[...n].sort()},[e.scorerIds,t])}function Vie({icon:e,typeLabel:t,children:n}){return o.jsxs("div",{className:"text-ui-sm text-neutral5 flex flex-none items-center gap-1.5 [&_svg]:size-3.5 [&_svg]:shrink-0",children:[o.jsxs(yn,{children:[o.jsx(gn,{render:o.jsx("span",{className:"text-neutral3 flex",role:"img","aria-label":t}),children:e}),o.jsx(vn,{children:t})]}),n]})}function Hie({label:e}){return o.jsxs("div",{className:"text-neutral2 text-ui-xs flex flex-none items-center gap-1.5",children:[o.jsx("span",{className:"whitespace-nowrap",children:e}),o.jsx(zd,{className:"size-3.5 shrink-0","aria-hidden":!0})]})}const htt="text-neutral5 inline-flex items-center gap-1.5 hover:underline";function dvs({experiment:e,className:t}){const{Link:n,paths:r}=un(),s=qVt(),{scorers:a}=s,{data:i,isLoading:l}=Py(e.datasetId??""),c=KVt(e),u=c.map(b=>a?.[b]?.scorer?.config?.name??b),d=e.targetType,f=e.targetId,p=()=>WVt(e,s),h=()=>{if(!f)return null;switch(d){case"agent":return r.agentLink(f);case"workflow":return r.workflowLink(f);case"scorer":return r.scorerLink(f);default:return null}},m=d&&VVt[d]||Ii,v=d&&HVt[d]||"Evaluation target",y=h();return o.jsxs("div",{className:Y("flex items-center gap-3 overflow-x-auto",t),children:[o.jsx(Vie,{icon:o.jsx(YVt,{}),typeLabel:"Dataset",children:e.datasetId?o.jsxs(n,{href:r.datasetLink(e.datasetId),className:htt,children:[l?o.jsx(Ct,{className:"h-4 w-28"}):i?.name??e.datasetId,e.datasetVersion!=null&&o.jsxs("span",{className:"text-neutral3",children:["(v",e.datasetVersion,")"]})]}):o.jsx("span",{className:"text-neutral3",children:"No dataset"})}),o.jsx(Hie,{label:"each item"}),o.jsx(Vie,{icon:o.jsx(m,{}),typeLabel:v,children:y?o.jsx(n,{href:y,className:htt,children:p()}):o.jsx("span",{className:"text-neutral3",children:p()})}),o.jsx(Hie,{label:"output"}),o.jsxs(yn,{children:[o.jsx(gn,{render:o.jsx("div",{tabIndex:0,className:"flex outline-offset-4",children:o.jsx(Vie,{icon:o.jsx(AC,{}),typeLabel:"Scorers",children:c.length===0?"Scorers":`${c.length} scorer${c.length===1?"":"s"}`})})}),o.jsx(vn,{children:u.length>0?u.join(", "):"No scorer has produced a score yet"})]}),o.jsx(Hie,{label:"comparing ground truth"}),o.jsx("div",{className:"text-ui-sm text-neutral5 flex-none whitespace-nowrap",children:"Score"})]})}function a8({label:e,children:t}){return o.jsxs("div",{className:"min-w-0 flex-1 px-6 py-3",children:[o.jsx("div",{className:"text-ui-sm text-neutral2 tracking-widest uppercase",children:e}),o.jsx("div",{className:"text-ui-md text-neutral5 mt-1 flex flex-wrap items-baseline gap-x-1.5",children:t})]})}function fvs(e){if(e<1e3)return`${e}ms`;if(e<6e4)return`${(e/1e3).toFixed(1).replace(/\.0$/,"")}s`;const t=Math.floor(e/6e4),n=Math.round(e%6e4/1e3);if(t<60)return n>0?`${t}m ${n}s`:`${t}m`;const r=Math.floor(t/60),s=t%60;return s>0?`${r}h ${s}m`:`${r}h`}function pvs({experiment:e,className:t}){const{data:n}=__(e.id,e.status),r=g.useMemo(()=>{if(!n)return;const l=Object.values(n).flat();if(l.length!==0)return l.reduce((c,u)=>c+u.score,0)/l.length},[n]),s=e.startedAt??e.createdAt,a=s?new Date(s):null,i=(()=>{if(e.status==="running")return"Running…";if(!e.startedAt||!e.completedAt)return"—";const l=new Date(e.completedAt).getTime()-new Date(e.startedAt).getTime();return l<0?"—":fvs(l)})();return o.jsxs("div",{className:Y("flex w-full items-stretch divide-x divide-border1 border-y border-border1",t),children:[o.jsx(a8,{label:"Avg score",children:r===void 0?o.jsx("span",{className:"text-neutral3",children:"—"}):o.jsxs(o.Fragment,{children:[o.jsx("span",{children:r.toFixed(3)}),(e.status==="running"||e.status==="pending")&&o.jsx("span",{className:"text-neutral3",children:"· so far"})]})}),o.jsx(a8,{label:"Items",children:e.status==="running"||e.status==="pending"?o.jsxs("span",{className:"text-neutral3",children:[(e.succeededCount??0)+(e.failedCount??0),"/",e.totalItems," items processed"]}):o.jsxs(o.Fragment,{children:[o.jsxs("span",{children:[e.totalItems," item",e.totalItems===1?"":"s"]}),(e.failedCount??0)>0&&o.jsxs("span",{className:"text-error",children:["· ",e.failedCount," errored"]})]})}),o.jsx(a8,{label:"Started",children:a?o.jsxs(o.Fragment,{children:[o.jsx("span",{children:ur(a,"MMM d, h:mm a")}),o.jsxs("span",{className:"text-neutral3",children:["· ",F2n(a,{addSuffix:!0})]})]}):o.jsx("span",{children:"—"})}),o.jsx(a8,{label:"Duration",children:o.jsx("span",{children:i})})]})}const hvs=["agent","workflow","scorer"];function mvs({experiment:e}){const[t,n]=g.useState(!1),r=Vr(),{paths:s}=un(),a=KVt(e),i=hvs.find(l=>l===e.targetType);return!e.datasetId||!i||!e.targetId?null:o.jsxs(o.Fragment,{children:[o.jsxs(oe,{variant:"primary",onClick:()=>n(!0),tooltip:"Run this experiment again with the same configuration",children:[o.jsx(Lc,{}),"Rerun"]}),t&&o.jsx(nY,{open:!0,onOpenChange:n,initialDatasetId:e.datasetId,initialDatasetVersion:e.datasetVersion??void 0,initialTargetType:i,initialTargetId:e.targetId,initialScorerIds:a,onSuccess:l=>{r(s.experimentLink(l))}},a.join(","))]})}function gvs({experiment:e}){const{Link:t,paths:n}=un(),r=e.agentVersion&&e.targetType==="agent"&&e.targetId?`${n.agentLink(e.targetId)}/editor?version=${encodeURIComponent(e.agentVersion)}`:null;return o.jsxs(Bt.TopArea,{children:[o.jsxs(Bt.Row,{children:[o.jsx(Bt.Column,{className:"justify-items-start gap-3",children:o.jsxs("div",{className:"flex items-start gap-3",children:[o.jsx(Fms,{status:e.status,className:"h-7"}),o.jsxs(Ml,{children:[o.jsxs(Ml.Title,{children:["Experiment #",e.id.slice(0,8)]}),e.description&&o.jsx(Ml.Description,{children:e.description}),o.jsx(dvs,{experiment:e,className:"mt-2"})]})]})}),o.jsxs(Bt.Column,{className:"justify-items-end gap-3",children:[o.jsx(mvs,{experiment:e}),e.agentVersion&&o.jsxs(Cn,{numOfCol:1,children:[o.jsx(Cn.Key,{children:"Version"}),r?o.jsx(Cn.ValueLink,{href:r,as:t,children:e.agentVersion}):o.jsx(Cn.Value,{children:e.agentVersion})]})]})]}),o.jsx(pvs,{experiment:e,className:"-mx-6 w-auto"})]})}function i8({children:e}){return o.jsxs(Bt,{height:"full",children:[o.jsx("div",{}),o.jsx(Bt.MainArea,{isCentered:!0,children:e})]})}function vvs(){const{experimentId:e}=hr(),{data:t,isLoading:n}=aRe(),s=t?.experiments?.find(h=>h.id===e)?.datasetId??"",{data:a,isLoading:i,error:l}=WD(s,e??""),{data:c,isLoading:u,setEndOfListElement:d,isFetchingNextPage:f,hasNextPage:p}=ZD({datasetId:s,experimentId:e??"",experimentStatus:a?.status});return!e||n||i?null:l&&vs(l)?o.jsx(i8,{children:o.jsx(Fs,{})}):l&&ys(l)?o.jsx(i8,{children:o.jsx(Es,{resource:"datasets"})}):l&&zEe(l)||!n&&!s||!i&&!l&&!a?o.jsx(i8,{children:o.jsx(br,{iconSlot:o.jsx(g0e,{}),titleSlot:"Experiment not found",descriptionSlot:`No experiment with id "${e}".`,actionSlot:o.jsxs(oe,{as:za,to:"/experiments",children:[o.jsx(yl,{}),"Back to Experiments"]})})}):l?o.jsx(i8,{children:o.jsx(qa,{title:"Failed to load experiment",message:l instanceof Error?l.message:"An unexpected error occurred. Please try again."})}):o.jsx(Nms,{experimentId:e,datasetId:s,experimentStatus:a.status,results:c??[],isLoadingResults:u,hasNextPage:p,children:o.jsxs("div",{className:"relative h-full overflow-hidden",children:[o.jsxs(Bt,{height:"full",children:[o.jsx(gvs,{experiment:a}),o.jsx(Bt.MainArea,{className:"overflow-visible",children:o.jsx(Lms,{experimentId:e,datasetId:s,experimentStatus:a.status,results:c??[],isLoading:u,setEndOfListElement:d,isFetchingNextPage:f,hasNextPage:p})})]}),o.jsx(zg,{})]})})}const cRe=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 Wie(e){try{return JSON.stringify(e??{})}catch{return String(e)}}function yvs({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(on.SectionHeading,{icon:o.jsx(qd,{}),className:"mb-2",children:"Tool Mocks"}),s&&o.jsx(An,{variant:"destructive",title:"Mock mismatch",children:o.jsxs(An.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: ",Wie(s.args)]}),n.length>0&&o.jsxs("span",{className:"mt-1 block font-mono text-xs",children:["Unconsumed mocks: ",n.map(i=>Wie(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:Wie(i.args)})]}),o.jsx("span",{className:`shrink-0 rounded px-2 py-0.5 text-xs ${bvs(i.outcome)}`,children:i.outcome})]},`${i.outcome}-${i.toolName}-${l}`))})]})}function bvs(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 xvs({result:e,scores:t,onPrevious:n,onNext:r,onClose:s,onShowTrace:a,onOpenInReview:i,onScoreClick:l,featuredScoreId:c,onFlagForReview:u,collapsed:d=!1,scorePanelSlot:f}){const p=!!e?.error,h=o8(e?.input),m=o8(e?.output),v=o8(e?.groundTruth),y=u&&e.status!=="needs-review"&&e.status!=="complete",b=Array.isArray(e.tags)?e.tags:[];return o.jsxs(on,{collapsed:d,children:[o.jsxs(on.Header,{children:[o.jsxs(on.Heading,{children:["Result ",o.jsxs("b",{children:["# ",e.id.length>12?`${e.id.slice(0,12)}…`:e.id]})]}),o.jsxs(es,{className:"ml-auto shrink-0",children:[o.jsx(on.NextPrevNav,{onPrevious:n,onNext:r,previousLabel:"Previous result",nextLabel:"Next result"}),e.traceId&&o.jsxs(oe,{size:"md",onClick:a,children:[o.jsx(cRe,{}),"Trace"]}),y&&o.jsxs(oe,{size:"md",variant:"primary",onClick:()=>u(e.id),children:[o.jsx(wO,{}),"Flag for Review"]}),e.status==="needs-review"&&i&&o.jsxs(oe,{size:"md",variant:"primary",onClick:i,children:[o.jsx(ea,{}),"Review"]}),o.jsx(on.CloseButton,{onClick:s,tooltip:"Close result panel"})]})]}),!d&&o.jsx(wvs,{scorePanelSlot:f,children:o.jsxs(on.Content,{children:[o.jsxs("div",{className:"mb-6 grid gap-4",children:[o.jsxs(Cn,{children:[o.jsx(Cn.Key,{children:"Item Id"}),o.jsx(Cn.ValueWithCopyBtn,{copyTooltip:"Copy Item Id to clipboard",copyValue:e.itemId,children:e.itemId}),o.jsx(Cn.Key,{children:"Created"}),o.jsx(Cn.Value,{children:ur(new Date(e.createdAt),"MMM d, yyyy 'at' h:mm a")})]}),p&&o.jsx(An,{variant:"destructive",title:"Error",children:o.jsx(An.Message,{children:o8(e?.error&&typeof e.error=="object"?e.error.message:e?.error)})}),t&&t.length>0&&o.jsxs(he,{columns:"1fr 1fr",children:[o.jsxs(he.Top,{children:[o.jsx(he.TopCell,{children:"Scorer"}),o.jsx(he.TopCell,{children:"Score"})]}),t.map(x=>o.jsxs(he.RowButton,{featured:c===x.id,onClick:()=>l?.(x.id),children:[o.jsx(he.Cell,{children:x.scorerId}),o.jsx(he.TextCell,{font:"mono",children:x.score.toFixed(3)})]},x.id))]}),e.toolMockReport&&o.jsx(yvs,{report:e.toolMockReport}),(e.status||b.length>0)&&o.jsxs("div",{className:"grid gap-2",children:[o.jsx(on.SectionHeading,{icon:o.jsx(uI,{}),className:"mb-2",children:"Review"}),o.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.status&&o.jsx("span",{className:`rounded-full px-2 py-0.5 text-xs font-medium ${e.status==="needs-review"?"bg-orange-500/10 text-orange-400":e.status==="complete"?"bg-accent1/10 text-accent1":"bg-neutral3/10 text-neutral4"}`,children:e.status}),b.map(x=>o.jsx("span",{className:"bg-surface4 text-neutral4 rounded px-2 py-0.5 text-xs",children:x},x))]})]})]}),o.jsxs("div",{className:"grid gap-3",children:[o.jsx(on.CodeSection,{title:"Input",icon:o.jsx(TV,{}),codeStr:h}),o.jsx(on.CodeSection,{title:"Output",icon:o.jsx(tm,{}),codeStr:m}),o.jsx(on.CodeSection,{title:"Ground Truth",icon:o.jsx(kct,{}),codeStr:v})]})]})})]})}function wvs({scorePanelSlot:e,children:t}){return e?o.jsxs("div",{className:"grid min-h-0 flex-1 grid-cols-[1fr_1fr]",children:[o.jsx("div",{className:"flex min-h-0 flex-col overflow-hidden",children:t}),o.jsx("div",{className:"animate-in border-border1 fade-in-0 flex min-h-0 flex-col overflow-hidden border-l duration-300",children:e})]}):o.jsx(o.Fragment,{children:t})}function o8(e){return e==null?"-":typeof e=="string"?e:JSON.stringify(e,null,2)}function Svs(e){const t=e.scorer;return t?.hasJudge===!1?!0:t?.hasJudge===!0?!1:!e.preprocessPrompt&&!e.analyzePrompt&&!e.generateScorePrompt&&!e.generateReasonPrompt}function kvs({score:e,onNext:t,onPrevious:n,onClose:r,onShowTrace:s,collapsed:a,onCollapsedChange:i,className:l}){const[c,u]=g.useState(!1),d=a??c,f=i??u,p=Svs(e),h=p?"N/A — code-based scorer":"N/A — step not configured";return o.jsxs(on,{collapsed:d,className:l,children:[o.jsxs(on.Header,{children:[o.jsxs(on.Heading,{children:["Score ",o.jsx("b",{children:e.scorerId})]}),o.jsxs(es,{className:"ml-auto shrink-0",children:[i&&o.jsx(oe,{size:"md",tooltip:d?"Expand panel":"Collapse panel",onClick:()=>f(!d),children:d?o.jsx(sI,{}):o.jsx(OV,{})}),(n||t)&&o.jsx(on.NextPrevNav,{onPrevious:n,onNext:t,previousLabel:"Previous score",nextLabel:"Next score"}),s&&e.traceId&&o.jsxs(oe,{size:"md",onClick:s,children:[o.jsx(cRe,{}),"Trace"]}),o.jsx(on.CloseButton,{onClick:r,tooltip:"Close score panel"})]})]}),!d&&o.jsx(on.Content,{children:o.jsxs("div",{className:"grid gap-3",children:[o.jsx(on.CodeSection,{title:`Score: ${e.score}`,icon:o.jsx(Zp,{}),codeStr:e.reason||h,simplified:!0}),!p&&o.jsxs(o.Fragment,{children:[o.jsx(on.CodeSection,{title:"Preprocess Prompt",icon:o.jsx(Rh,{}),codeStr:e.preprocessPrompt||h,simplified:!0}),o.jsx(on.CodeSection,{title:"Analyze Prompt",icon:o.jsx(Rh,{}),codeStr:e.analyzePrompt||h,simplified:!0}),o.jsx(on.CodeSection,{title:"Generate Score Prompt",icon:o.jsx(Rh,{}),codeStr:e.generateScorePrompt||h,simplified:!0}),o.jsx(on.CodeSection,{title:"Generate Reason Prompt",icon:o.jsx(Rh,{}),codeStr:e.generateReasonPrompt||h,simplified:!0})]})]})})]})}function Ovs(){const{itemId:e}=hr();return e?o.jsx(_vs,{itemId:e},e):null}function _vs({itemId:e}){const{experimentId:t,datasetId:n,experimentStatus:r,results:s,isLoadingResults:a,hasNextPage:i,close:l,openInReview:c,goToPreviousItem:u,goToNextItem:d}=FVt(),f=g.useMemo(()=>s.find(P=>P.itemId===e)??null,[s,e]),{data:p}=__(t,r),{updateExperimentResult:h}=Ai(),m=g.useCallback(async P=>{try{await h.mutateAsync({datasetId:n,experimentId:t,resultId:P,status:"needs-review"}),ze("Result flagged for review")}catch{ze.error("Failed to flag result for review")}},[n,t,h]),v=f?p?.[f.itemId]:void 0,[y,b]=g.useState(null),[x,S]=g.useState(void 0),[k,_]=g.useState(null),[C,T]=g.useState(!1),[E,N]=g.useState(!1),I=v?.find(P=>P.id===k)??null,A=g.useCallback(P=>{_(q=>P===q?null:P),b(null),S(void 0)},[]),R=()=>{if(!k||!v)return;const P=v.findIndex(q=>q.id===k);if(P>=0&&P<v.length-1)return()=>_(v[P+1].id)},L=()=>{if(!k||!v)return;const P=v.findIndex(q=>q.id===k);if(P>0)return()=>_(v[P-1].id)},{data:M,isLoading:z}=zms(y),H=M?.spans,F=H?.find(P=>!P.parentSpanId),B=F?.entityType==="agent"?"Agent":F?.entityType==="workflow_run"?"Workflow":void 0,{data:V}=eRe({traceId:y??void 0}),{data:D}=tRe({traceId:y??void 0,spanId:x}),{data:Z}=cje({traceId:y??void 0,spanId:F?.spanId,page:0}),U=(()=>{const P=[],q=!!y;return P.push(C?"auto":q?"2fr":"1fr"),q&&P.push(E?"auto":"3fr"),P.join(" ")})();return o.jsx(rY,{label:`Experiment item ${e}`,wide:!!x||!!I&&!C,children:f?o.jsxs("div",{className:"[&>section]:bg-surface3 grid h-full min-h-0 content-start gap-4 p-3 [&>section]:rounded-lg [&>section]:shadow-lg",style:{gridTemplateRows:U},children:[o.jsx(xvs,{result:f,scores:v,onPrevious:u,onNext:d,onClose:l,onScoreClick:A,featuredScoreId:k,onShowTrace:()=>{f.traceId&&(b(f.traceId),S(void 0),_(null),T(!0),N(!1))},onOpenInReview:()=>c(f.id),onFlagForReview:()=>{m(f.id)},collapsed:C,scorePanelSlot:I?o.jsx(kvs,{score:I,onNext:R(),onPrevious:L(),onClose:()=>_(null),onShowTrace:()=>{I.traceId&&(b(I.traceId),S(void 0),T(!0),N(!1))},className:"rounded-none border-0 bg-transparent"}):null}),y&&o.jsx(KQ,{traceId:y,spans:H,isLoadingSpans:z,selectedSpanId:x??null,onClose:()=>{b(null),S(void 0),T(!1)},onSpanSelect:S,showUnavailableFeaturesMsg:!1,collapsed:E,onCollapsedChange:N,traceHref:`/traces?traceId=${encodeURIComponent(y)}`,anchorSpanId:F?.spanId,feedbackTabBadge:V?.pagination?.total??void 0,feedbackTabSlot:({traceId:P})=>o.jsx(rRe,{traceId:P}),scoresTabBadge:Z?.pagination?.total??void 0,scoresTabSlot:({traceId:P,rootSpanId:q})=>q?o.jsx(EVt,{traceId:P,spanId:q,isTopLevelSpan:!F?.parentSpanId,entityType:B,onScoreSelect:G=>{v?.some(K=>K.id===G)&&(_(G),T(!1))}}):null,spanFeedbackTabBadge:D?.pagination?.total??void 0,spanFeedbackTabSlot:({traceId:P,spanId:q})=>P&&q?o.jsx(nRe,{traceId:P,spanId:q},`${P}:${q}`):null,spanPanelClassName:"rounded-none border-0 bg-transparent"})]}):a||i?o.jsx("div",{className:"h-full p-3",children:o.jsx("div",{className:"border-border1 bg-surface3 flex h-full items-center justify-center rounded-lg border shadow-lg",children:o.jsx(qt,{})})}):o.jsx("div",{className:"h-full p-3",children:o.jsx("div",{className:"border-border1 bg-surface3 flex h-full items-center justify-center rounded-lg border shadow-lg",children:o.jsx(br,{iconSlot:o.jsx(g0e,{}),titleSlot:"Item not found",descriptionSlot:`No loaded result for item "${e}".`,actionSlot:o.jsx(oe,{onClick:l,children:"Close"})})})})})}const Cvs=20;function Evs({reviewStatus:e}){const t=Ge(),n=Xx({queryKey:["feedback","list",e],queryFn:({pageParam:r})=>t.listFeedback({filters:{reviewStatus:e},pagination:{page:r,perPage:Cvs},orderBy:{field:"timestamp",direction:"DESC"}}),initialPageParam:0,getNextPageParam:r=>r.pagination?.hasMore?r.pagination.page+1:void 0});return{...n,items:n.data?.pages.flatMap(r=>r.feedback)??[],total:n.data?.pages[0]?.pagination?.total}}function Tvs({enabled:e}){const t=Ge();return ht({queryKey:["feedback","inbox-count"],queryFn:()=>t.listFeedback({filters:{reviewStatus:"needs-review"},pagination:{page:0,perPage:1},orderBy:{field:"timestamp",direction:"DESC"}}),enabled:e,refetchInterval:3e3})}function jvs(){const e=Ge(),t=Nr();return kn({mutationFn:({feedbackId:n,reviewStatus:r})=>e.updateFeedbackReviewStatus({feedbackId:n,reviewStatus:r}),onSuccess:()=>t.invalidateQueries({queryKey:["feedback"]})})}const mtt="minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) auto";function Nvs({items:e,isLoading:t,error:n}){const r=Vr(),[s,a]=g.useState(""),i=s.trim().toLowerCase(),l=i?e.filter(d=>[d.itemId,d.experimentId,d.datasetId,d.traceId??""].some(f=>f.toLowerCase().includes(i))):e,{containerRef:c,getRowProps:u}=ao({count:l.length});return t?o.jsx(Fo,{columns:mtt}):n?o.jsx(qa,{title:"Failed to load dataset items",message:n.message}):e.length===0?o.jsx(br,{iconSlot:o.jsx(S0e,{className:"text-neutral3 h-8 w-8"}),titleSlot:"Nothing to review",descriptionSlot:"Experiment results that need review will show up here."}):o.jsxs("div",{className:"grid h-full min-h-0 grid-rows-[auto_1fr] gap-4",children:[o.jsx("div",{className:"max-w-120",children:o.jsx(od,{onSearch:a,label:"Filter dataset items",placeholder:"Filter by item, experiment, dataset or trace",shortcutDisabled:!0})}),o.jsx("div",{className:"min-h-0 overflow-hidden",children:o.jsxs(he,{columns:mtt,variant:"striped",fit:"container",scrollRef:c,children:[o.jsxs(he.Top,{children:[o.jsx(he.TopCell,{children:"Item"}),o.jsx(he.TopCell,{children:"Experiment"}),o.jsx(he.TopCell,{children:"Dataset"}),o.jsx(he.TopCell,{children:"Trace"}),o.jsx(he.TopCell,{children:" "})]}),l.length===0?o.jsx(he.NoMatch,{message:"No dataset items match your search"}):l.map((d,f)=>{const p=`/experiments/${encodeURIComponent(d.experimentId)}?review=${encodeURIComponent(d.id)}`;return o.jsxs(he.RowWrapper,{children:[o.jsxs(he.RowButton,{colEnd:-2,onClick:()=>r(p),...u(f),children:[o.jsx(he.TextCell,{font:"mono",children:d.itemId}),o.jsx(he.TextCell,{font:"mono",children:d.experimentId}),o.jsx(he.TextCell,{font:"mono",children:d.datasetId}),o.jsx(he.TextCell,{font:"mono",children:d.traceId??"—"})]}),o.jsx(he.ActionsCell,{className:"pl-2",children:d.traceId?o.jsx(oe,{as:za,to:`/traces?traceId=${encodeURIComponent(d.traceId)}`,variant:"ghost",size:"sm",children:"Open trace"}):null})]},d.id)})]})})]})}function Ivs(){return o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(br,{iconSlot:o.jsx(S0e,{}),titleSlot:"Your inbox is empty",descriptionSlot:o.jsxs(o.Fragment,{children:["Feedback left on traces and experiment results flagged for review ",o.jsx("br",{}),"will show up here until you mark them reviewed."]}),actionSlot:o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(oe,{as:za,to:"/experiments",variant:"outline",children:"Go to experiments"}),o.jsx(oe,{as:za,to:"/traces",variant:"outline",children:"Go to traces"})]})})})}function e0e(e){return e.comment?e.comment:typeof e.value=="string"?e.value:e.feedbackType==="thumbs"?e.value===1?"Thumbs up":"Thumbs down":JSON.stringify(e.value)??String(e.value)}const gtt="minmax(0, 2fr) auto minmax(0, 1fr) auto auto";function Avs({items:e,isLoading:t,error:n,hasNextPage:r,isFetchingNextPage:s,fetchNextPage:a,onMarkReviewed:i,pendingFeedbackId:l,onSelect:c,selectedFeedbackId:u}){const[d,f]=g.useState(""),p=d.trim().toLowerCase(),h=p?e.filter(x=>e0e(x).toLowerCase().includes(p)||(x.traceId??"").toLowerCase().includes(p)||(x.feedbackSource??"").toLowerCase().includes(p)):e,{containerRef:m,getRowProps:v}=ao({count:h.length}),{inView:y,setRef:b}=oS({root:m});return g.useEffect(()=>{y&&r&&!s&&a()},[y,r,s,a]),t?o.jsx(Fo,{columns:gtt}):n?o.jsx(qa,{title:"Failed to load feedback",message:n.message}):o.jsxs("div",{className:"grid h-full min-h-0 grid-rows-[auto_1fr] gap-4",children:[o.jsx("div",{className:"max-w-120",children:o.jsx(od,{onSearch:f,label:"Filter feedback",placeholder:"Filter loaded feedback by text, trace or source"})}),o.jsx("div",{className:"min-h-0 overflow-hidden",children:o.jsxs(he,{columns:gtt,variant:"striped",fit:"container",scrollRef:m,children:[o.jsxs(he.Top,{children:[o.jsx(he.TopCell,{children:"Feedback"}),o.jsx(he.TopCell,{children:"Source"}),o.jsx(he.TopCell,{children:"Trace"}),o.jsx(he.TopCell,{children:"Date"}),o.jsx(he.TopCell,{children:" "})]}),h.length===0?o.jsx(he.NoMatch,{message:p?"No feedback matches your search":"No feedback needs review"}):h.map((x,S)=>{const k=x.feedbackId;return o.jsxs(he.RowWrapper,{children:[o.jsxs(he.RowButton,{colEnd:-2,disabled:!x.traceId,featured:k!==void 0&&k===u,onClick:()=>c(x),...v(S),children:[o.jsx(he.TextCell,{className:"min-w-0",children:o.jsx("span",{className:"block truncate",children:e0e(x)})}),o.jsx(he.Cell,{children:o.jsx(wt,{size:"sm",children:x.feedbackSource})}),o.jsx(he.TextCell,{font:"mono",className:"min-w-0",children:o.jsx("span",{className:"block truncate",children:x.traceId??"—"})}),o.jsx(he.TextCell,{children:ur(x.timestamp,"MMM d, h:mm a")})]}),o.jsx(he.ActionsCell,{className:"pl-2",children:k?o.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>i(k),disabled:l===k,children:"Mark reviewed"}):null})]},k??`${String(x.timestamp)}-${x.traceId}`)}),o.jsx(he.NextPageLoading,{isLoading:s,hasMore:r,setEndOfListElement:b})]})})]})}function Rvs({feedback:e,traceId:t,initialSpanId:n,onClose:r,onPrevious:s,onNext:a,onMarkReviewed:i,isMarkingReviewed:l}){const[c,u]=g.useState(n),{spans:d,isLoading:f}=NAe({traceId:t,anchorSpanId:null,listMode:"traces"});return o.jsx(rY,{label:`Review feedback for trace ${t}`,wide:!!c,children:o.jsxs("div",{className:"[&>*]:bg-surface3 grid h-full min-h-0 grid-rows-[auto_minmax(0,1fr)] gap-4 p-3 [&>*]:rounded-lg [&>*]:shadow-lg",children:[o.jsxs(on,{className:"max-h-[33vh]",children:[o.jsxs(on.Header,{className:"items-start",children:[o.jsxs("div",{className:"flex min-w-0 flex-col gap-1",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(on.Heading,{children:"Feedback"}),o.jsx(wt,{variant:"neutral",emphasis:"muted",children:e.feedbackType}),e.feedbackSource&&o.jsx(wt,{variant:"neutral",emphasis:"muted",children:e.feedbackSource})]}),o.jsxs(ve,{as:"p",variant:"ui-sm",className:"text-neutral3",children:[ur(new Date(e.timestamp),"MMM dd, yyyy HH:mm:ss"),e.feedbackUserId?` · ${e.feedbackUserId}`:null]})]}),o.jsx(es,{className:"ml-auto shrink-0",children:o.jsxs(oe,{variant:"primary",size:"sm",onClick:i,disabled:l,children:[o.jsx(We,{children:o.jsx(qr,{})}),"Mark as reviewed"]})})]}),o.jsx(on.Content,{children:o.jsx(ve,{as:"p",variant:"ui-md",className:"text-neutral5 whitespace-pre-wrap",children:e0e(e)})})]}),o.jsx("section",{className:"min-h-0 overflow-hidden",children:o.jsx(KQ,{className:"h-full rounded-none border-0 bg-transparent",spanPanelClassName:"rounded-none border-0 bg-transparent",traceId:t,spans:d,isLoadingSpans:f,selectedSpanId:c??null,initialSpanId:n,onSpanSelect:u,onClose:r,onPrevious:s,onNext:a,traceHref:`/traces?traceId=${encodeURIComponent(t)}`,feedbackTabSlot:({traceId:p})=>o.jsx(rRe,{traceId:p}),spanFeedbackTabSlot:({traceId:p,spanId:h})=>p&&h?o.jsx(nRe,{traceId:p,spanId:h},`${p}:${h}`):null})})]})})}const XVt=100;async function Pvs(e){const t=[];let n=0,r=!0;for(;r;){const s=await e.listExperiments({page:n,perPage:XVt});t.push(...s.experiments),r=s.pagination.hasMore,n+=1}return t}async function $vs(e,t,n){const r=[];let s=0,a=!0;for(;a;){const i=await e.listDatasetExperimentResults(t,n,{page:s,perPage:XVt});r.push(...i.results),a=i.pagination.hasMore,s+=1}return r}function Mvs(){const e=Ge();return ht({queryKey:["inbox-dataset-review-items"],queryFn:async()=>{const t=await Pvs(e);return(await Promise.all(t.map(async r=>{const s=r.datasetId;return s?(await $vs(e,s,r.id)).filter(i=>i.status==="needs-review").map(i=>({id:i.id,datasetId:s,experimentId:r.id,itemId:i.itemId,traceId:i.traceId??void 0,input:i.input,output:i.output})):[]}))).flat()},refetchInterval:3e3,refetchOnWindowFocus:!1})}function Dvs({enabled:e}){const t=Ge();return ht({queryKey:["inbox-dataset-review-count"],queryFn:async()=>{const{counts:n}=await t.getExperimentReviewSummary();return n.reduce((r,s)=>r+s.needsReview,0)},enabled:e,refetchInterval:3e3})}function Lvs(e){return e==="dataset"||e==="feedback"}function Fvs(){const[e,t]=$a(),n=e.get("tab"),r=Lvs(n)?n:"feedback",s=Evs({reviewStatus:"needs-review"}),a=jvs(),i=Mvs(),l=i.data??[],c=s.total??0,u=!s.isLoading&&!i.isLoading&&!s.error&&!i.error&&s.items.length===0&&l.length===0,d=e.get("feedbackId")??void 0,f=e.get("traceId")??void 0,p=e.get("spanId")??void 0,h=T=>{t(E=>{const N=new URLSearchParams(E);for(const I of["feedbackId","traceId","spanId"]){const A=T[I];A?N.set(I,A):N.delete(I)}return N},{replace:!0})},m=()=>h({}),v=T=>h({feedbackId:T.feedbackId??void 0,traceId:T.traceId??void 0,spanId:T.spanId??void 0}),y=s.items.findIndex(T=>T.feedbackId===d),b=y>=0?s.items[y]:void 0,x=y>0?s.items[y-1]:void 0,S=y>=0&&y<s.items.length-1?s.items[y+1]:void 0,k=!!f&&!!d,_=T=>{a.mutate({feedbackId:T,reviewStatus:"reviewed"},{onSuccess:()=>T===d&&m()})},C=T=>{t(E=>{const N=new URLSearchParams(E);return N.set("tab",T),N},{replace:!0})};return o.jsxs("div",{className:"relative h-full overflow-hidden",children:[o.jsxs(Bt,{height:"full",children:[o.jsx(Bt.TopArea,{children:o.jsxs(Ml,{children:[o.jsx(Ml.Title,{children:"Inbox"}),o.jsx(Ml.Description,{children:"Items waiting for review"})]})}),o.jsx(Bt.MainArea,{className:"min-h-0 overflow-hidden",children:u?o.jsx(Ivs,{}):o.jsxs(wc,{defaultTab:"feedback",value:r,onValueChange:C,className:"grid h-full min-h-0 grid-rows-[auto_1fr]",children:[o.jsxs(xc,{variant:"pill-ghost",children:[o.jsxs(Pr,{value:"feedback",className:"px-3 py-2.5",children:[o.jsx(We,{size:"sm",children:o.jsx(RV,{})}),o.jsx(ve,{variant:"ui-sm",className:"text-inherit",children:"Feedback"}),c>0&&o.jsx(wt,{variant:"yellow",size:"sm",children:c})]}),o.jsxs(Pr,{value:"dataset",className:"px-3 py-2.5",children:[o.jsx(We,{size:"sm",children:o.jsx(wO,{})}),o.jsx(ve,{variant:"ui-sm",className:"text-inherit",children:"Dataset items"}),l.length>0&&o.jsx(wt,{variant:"yellow",size:"sm",children:l.length})]})]}),o.jsx(fs,{value:"feedback",className:"h-full min-h-0 pt-4",children:o.jsx(Avs,{items:s.items,isLoading:s.isLoading,error:s.error??void 0,hasNextPage:s.hasNextPage,isFetchingNextPage:s.isFetchingNextPage,fetchNextPage:s.fetchNextPage,onMarkReviewed:_,pendingFeedbackId:a.isPending?a.variables?.feedbackId:void 0,onSelect:v,selectedFeedbackId:d})}),o.jsx(fs,{value:"dataset",className:"h-full min-h-0 pt-4",children:o.jsx(Nvs,{items:l,isLoading:i.isLoading,error:i.error??void 0})})]})})]}),k&&f&&b&&o.jsx(Rvs,{feedback:b,traceId:f,initialSpanId:p,onClose:m,onPrevious:x?()=>v(x):void 0,onNext:S?()=>v(S):void 0,onMarkReviewed:()=>d&&_(d),isMarkingReviewed:a.isPending},`${d}:${f}`)]})}function zvs({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 JVt({connections:e,isAdmin:t,disconnectPending:n,onDisconnect:r}){return o.jsx("ul",{className:"space-y-1",children:e.map(s=>o.jsx(zvs,{connection:s,isAdmin:t,disconnectPending:n,onDisconnect:()=>r(s.connectionId)},s.connectionId))})}function Bvs({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(JVt,{connections:a,isAdmin:t,disconnectPending:n,onDisconnect:r})]},s))})}function Uvs({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(Bvs,{groups:r,isAdmin:s,disconnectPending:l,onDisconnect:u}):o.jsx(JVt,{connections:n,isAdmin:s,disconnectPending:l,onDisconnect:u}),c?o.jsx("p",{className:"text-red-600",children:String(c)}):null]})}function qvs({providers:e,toolkits:t,providerId:n,toolkit:r,label:s,providersLoading:a,providersError:i,toolkitsLoading:l,toolkitsError:c,authorizePending:u,authorizeError:d,authorizedConnection:f,onProviderChange:p,onToolkitChange:h,onLabelChange:m,onConnect:v}){return o.jsxs("div",{className:"space-y-4 border rounded p-4",children:[o.jsxs("div",{className:"space-y-1",children:[o.jsx("label",{className:"block font-medium",htmlFor:"provider-select",children:"Provider"}),o.jsxs("select",{id:"provider-select",className:"border rounded px-2 py-1 w-full",value:n,onChange:y=>p(y.target.value),disabled:a,children:[o.jsx("option",{value:"",children:"— select provider —"}),e.map(y=>o.jsxs("option",{value:y.id,children:[y.displayName??y.name," (",y.id,")"]},y.id))]}),a&&o.jsx("span",{className:"text-gray-500",children:"Loading providers…"}),i?o.jsx("span",{className:"text-red-600",children:String(i)}):null]}),o.jsxs("div",{className:"space-y-1",children:[o.jsx("label",{className:"block font-medium",htmlFor:"toolkit-select",children:"Toolkit"}),o.jsxs("select",{id:"toolkit-select",className:"border rounded px-2 py-1 w-full",value:r,onChange:y=>h(y.target.value),disabled:!n||l,children:[o.jsx("option",{value:"",children:"— select toolkit —"}),t.map(y=>o.jsxs("option",{value:y.slug,children:[y.name," (",y.slug,")"]},y.slug))]}),l&&o.jsx("span",{className:"text-gray-500",children:"Loading toolkits…"}),c?o.jsx("span",{className:"text-red-600",children:String(c)}):null]}),o.jsxs("div",{className:"space-y-1",children:[o.jsx("label",{className:"block font-medium",htmlFor:"label-input",children:"Label (optional)"}),o.jsx("input",{id:"label-input",type:"text",className:"border rounded px-2 py-1 w-full",placeholder:"My personal Gmail",value:s,onChange:y=>m(y.target.value),disabled:!n||!r})]}),o.jsx("button",{type:"button",className:"bg-blue-600 text-white rounded px-4 py-2 disabled:opacity-50",onClick:v,disabled:!n||!r||u,children:u?"Authorizing…":"Connect"}),d?o.jsx("p",{className:"text-red-600",children:String(d)}):null,f&&o.jsxs("p",{className:"text-green-700",children:["Authorized: ",f.connectionId," (status: ",f.status,")"]})]})}const vtt=e=>e.authorId?.trim()||"shared",Vvs=(e,t)=>{if(!t||new Set(e.map(vtt)).size<=1)return null;const r=new Map;for(const a of e){const i=vtt(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},Hvs=["*","tool-providers:*","tool-providers:admin"];function Wvs(){const{data:e}=Fm();return e?.permissions?.some(t=>Hvs.includes(t))??!1}function Zvs(){const[e,t]=g.useState(""),[n,r]=g.useState(""),[s,a]=g.useState(""),i=tA(),l=iG(e||null),c=S3t(e||null,n||null),u=w3t(),d=y3t(),f=Wvs(),p=i.data?.providers??[],h=l.data?.data??[],m=g.useMemo(()=>c.data?.items??[],[c.data?.items]),v=g.useMemo(()=>Vvs(m,f),[m,f]),y=S=>{t(S),r("")},b=()=>{!e||!n||u.mutate({providerId:e,toolkit:n,label:s.trim()||null},{onSuccess:()=>{a(""),c.refetch()}})},x=S=>{d.mutate({providerId:e,connectionId:S})};return o.jsxs("div",{className:"p-6 max-w-3xl space-y-6 text-sm",children:[o.jsx("h1",{className:"text-2xl font-semibold",children:"Integrations"}),o.jsx("p",{className:"text-gray-500",children:"Minimal page to verify the ToolProvider backend. Pick a provider and toolkit, then connect."}),o.jsx(qvs,{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(Uvs,{providerId:e,toolkit:n,connections:m,groupedByAuthor:v,isAdmin:f,isLoading:c.isLoading,error:c.error,disconnectPending:d.isPending,disconnectError:d.error,onDisconnect:x})]})}function Gvs({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(Vp,{className:"h-10 w-10"}),o.jsx("h1",{className:"text-neutral6 text-xl font-semibold",children:e})]}),t,n,r]})})}function eHt({redirectUri:e,onSuccess:t,initialMode:n="signin",errorMessage:r}){const{data:s,isLoading:a}=mc(),{mutate:i,isPending:l,error:c}=GRr(),{mutate:u,isPending:d,error:f}=YRr(),{mutate:p,isPending:h}=kMt(),[m,v]=g.useState(n),[y,b]=g.useState(""),[x,S]=g.useState(""),[k,_]=g.useState("");if(a)return o.jsx("div",{className:"bg-surface1 flex min-h-screen items-center justify-center",children:o.jsx("div",{className:"text-neutral3",children:"Loading..."})});if(!s?.enabled||!s?.login)return o.jsx("div",{className:"bg-surface1 flex min-h-screen items-center justify-center",children:o.jsx("div",{className:"text-neutral3",children:"Authentication is not configured"})});const{login:C}=s,T=C.type==="sso"||C.type==="both",E=C.type==="credentials"||C.type==="both",N=C.sso,I=C.signUpEnabled!==!1,A=m==="signin"||!I,R=A?l:d,L=A?c:f,M=()=>{t?t():e?window.location.href=e:window.location.href=mG("/")},z=D=>{D.preventDefault(),A?i({email:x,password:k},{onSuccess:M}):u({email:x,password:k,name:y||void 0},{onSuccess:M})},H=()=>{p({redirectUri:e},{onSuccess:D=>{window.location.href=D.url}})},F=()=>{v(A?"signup":"signin")},B=C.description?o.jsxs("div",{className:"border-border1 bg-surface1 flex items-start gap-2.5 rounded-md border p-3",children:[o.jsx(Ud,{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(Gvs,{title:A?"Sign in to Mastra Studio":"Create your account",description:B,errorBanner:V,children:[E&&o.jsxs("form",{onSubmit:z,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(Rn,{id:"name",type:"text",value:y,onChange:D=>b(D.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(Rn,{id:"email",type:"email",value:x,onChange:D=>S(D.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(Rn,{id:"password",type:"password",value:k,onChange:D=>_(D.target.value),placeholder:A?"Enter your password":"Create a password",required:!0,variant:"default",size:"lg"})]}),L&&o.jsx("div",{className:"rounded-md bg-red-500/10 p-3 text-sm text-red-400",children:L.message}),o.jsx(oe,{type:"submit",disabled:R,className:"w-full",size:"lg",children:R?A?"Signing in...":"Creating account...":A?"Sign in":"Create account"}),I&&o.jsxs("div",{className:"text-center text-sm",children:[o.jsx("span",{className:"text-neutral3",children:A?"Don't have an account? ":"Already have an account? "}),o.jsx("button",{type:"button",onClick:F,className:"text-neutral6 hover:underline",children:A?"Sign up":"Sign in"})]})]}),T&&E&&o.jsxs("div",{className:"relative",children:[o.jsx("div",{className:"absolute inset-0 flex items-center",children:o.jsx("div",{className:"border-border1 w-full border-t"})}),o.jsx("div",{className:"relative flex justify-center text-sm",children:o.jsx("span",{className:"bg-surface1 text-neutral3 px-2",children:"or continue with"})})]}),T&&N&&o.jsxs(oe,{onClick:H,disabled:h,className:"w-full",size:"lg",variant:"outline",children:[N.icon&&o.jsx("span",{className:"mr-2",children:N.icon}),h?"Redirecting...":N.text||"Sign in"]})]})}function Qvs(){const[e]=$a(),t=Vr(),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(eHt,{redirectUri:n,onSuccess:i,initialMode:s,errorMessage:a})}const mp=Na.KeyValueList;function Yvs(e){return e instanceof Date?e:new Date(e)}function Kvs({log:e,onClose:t,onTraceClick:n,onSpanClick:r,onPrevious:s,onNext:a,collapsed:i,onCollapsedChange:l}){const[c,u]=g.useState(!1),d=i??c,f=l??u,p=Yvs(e.timestamp),h=e.traceId,m=e.spanId;return o.jsxs(Na,{collapsed:d,children:[o.jsxs(Na.Header,{children:[o.jsxs(Na.Heading,{children:["Log ",o.jsx("b",{children:ur(p,"MMM dd, HH:mm:ss.SSS")})]}),o.jsxs(es,{className:"ml-auto shrink-0",children:[l&&o.jsx(oe,{size:"md",tooltip:d?"Expand panel":"Collapse panel",onClick:()=>f(!d),children:d?o.jsx(sI,{}):o.jsx(OV,{})}),o.jsxs(es,{spacing:"close",children:[o.jsx(oe,{size:"md",tooltip:"Previous log",onClick:s,disabled:!s,children:o.jsx(W1,{})}),o.jsx(oe,{size:"md",tooltip:"Next log",onClick:a,disabled:!a,children:o.jsx(kV,{})})]}),o.jsx(Na.CloseButton,{onClick:t})]})]}),!d&&o.jsxs(Na.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:Y("my-8 grid gap-2","[&>button]:justify-between [&>button]:overflow-hidden"),children:[h&&o.jsxs(es,{spacing:"close",className:"w-full min-w-0",children:[o.jsxs(oe,{size:"md",className:"min-w-0 flex-1 overflow-hidden",onClick:()=>n?.(h),children:[o.jsx(zd,{}),o.jsx("span",{children:"Trace"}),o.jsxs("span",{className:"text-ui-sm text-neutral2 ml-auto min-w-0 truncate",children:["# ",h]})]}),o.jsx(ka,{content:h,size:"md",tooltip:"Copy Trace ID to clipboard"})]}),m&&o.jsxs(es,{spacing:"close",className:"w-full min-w-0",children:[o.jsxs(oe,{size:"md",className:"min-w-0 flex-1 overflow-hidden",disabled:!h||!r,onClick:()=>h&&r?.(h,m),children:[o.jsx(zd,{}),o.jsx("span",{children:"Span"}),o.jsxs("span",{className:"text-ui-sm text-neutral2 ml-auto min-w-0 truncate",children:["# ",m]})]}),o.jsx(ka,{content:m,size:"md",tooltip:"Copy Span ID to clipboard"})]})]}),o.jsxs(mp,{className:"mb-6",children:[e.entityType&&o.jsxs(o.Fragment,{children:[o.jsx(mp.Key,{children:"Entity Type"}),o.jsx(mp.Value,{children:e.entityType})]}),e.entityName&&o.jsxs(o.Fragment,{children:[o.jsx(mp.Key,{children:"Entity Name"}),o.jsx(mp.Value,{children:e.entityName})]}),e.serviceName&&o.jsxs(o.Fragment,{children:[o.jsx(mp.Key,{children:"Service"}),o.jsx(mp.Value,{children:e.serviceName})]}),e.environment&&o.jsxs(o.Fragment,{children:[o.jsx(mp.Key,{children:"Environment"}),o.jsx(mp.Value,{children:e.environment})]}),e.source&&o.jsxs(o.Fragment,{children:[o.jsx(mp.Key,{children:"Source"}),o.jsx(mp.Value,{children:e.source})]}),e.metadata&&Object.keys(e.metadata).length>0&&o.jsx(o.Fragment,{children:Object.entries(e.metadata).map(([v,y])=>o.jsxs(g.Fragment,{children:[o.jsx(mp.Key,{children:v}),o.jsx(mp.Value,{children:String(y)})]},v))})]}),e.data&&Object.keys(e.data).length>0&&o.jsx(Na.CodeSection,{title:"Data",codeStr:JSON.stringify(e.data,null,2),className:"mt-6"})]})]})}function Xvs({error:e,resource:t,errorTitle:n}){if(vs(e))return o.jsx(Fs,{});if(ys(e))return o.jsx(Es,{resource:t});if(q4(e))return o.jsx(br,{iconSlot:o.jsx(Dc,{}),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(U4(e,"logs"))return o.jsx(br,{iconSlot:o.jsx(Dc,{}),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(qa,{title:n,message:r??"Unknown error"})}function Jvs({listSlot:e,logPanelSlot:t,tracePanelSlot:n,spanPanelSlot:r,logCollapsed:s}){const a=!!t;return o.jsxs("div",{className:Y("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:Y("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 eys={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 tys({level:e}){const t=eys[e];return o.jsx(fo,{children:o.jsx("span",{className:"text-ui-sm font-semibold uppercase",style:{color:t.color},children:t.label})})}function nys({entityType:e,className:t}){const n=Y("size-3.5 shrink-0 text-neutral2",t);switch(e.toLowerCase()){case"agent":return o.jsx(Ii,{className:n,"aria-hidden":!0});case"workflow":case"workflow_run":return o.jsx(qc,{className:n,"aria-hidden":!0});case"tool":return o.jsx(zf,{className:n,"aria-hidden":!0});default:return null}}function rys({entityType:e,entityName:t}){const n=e??"";return o.jsxs(fo,{className:"flex min-w-0 items-center gap-2",children:[o.jsx(nys,{entityType:n}),t?o.jsx("span",{className:"text-ui-smd min-w-0 truncate",children:t}):"-"]})}function sys({message:e}){return o.jsx(fo,{className:"text-ui-smd text-neutral4 min-w-0 truncate font-mono",children:e})}function ays({data:e}){if(!e||Object.keys(e).length===0)return o.jsx(fo,{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(PEe,{font:"mono",children:t})}const ec=Object.assign(z4,{Top:HZ,TopCell:pC,TopCellWithTooltip:WZ,TopCellSmart:jPt,RowWrapper:DEe,RowButton:B4,RowLink:TPt,Spacer:LEe,NoMatch:VZ,DateCell:_Pt,TimeCell:CPt,LevelCell:tys,EntityCell:rys,MessageCell:sys,DataCell:ays,NextPageLoading:qZ}),ytt="6rem 9rem 5rem 10rem minmax(8rem,1fr) minmax(8rem,1fr)",iys=36,oys=8;function lys({logs:e,isLoading:t,isFetchingNextPage:n,hasNextPage:r,setEndOfListElement:s,logIdMap:a,featuredLogId:i,onLogClick:l}){const c=g.useRef(null),u=uqt({count:e.length,getScrollElement:()=>c.current,estimateSize:()=>iys,overscan:oys}),{getRowProps:d}=ao({count:e.length,containerRef:c,onNavigate:y=>u.scrollToIndex(y)}),f=g.useRef(t);if(g.useEffect(()=>{f.current&&!t&&c.current?.dispatchEvent(new Event("scroll")),f.current=t},[t]),t)return o.jsx(Fo,{columns:ytt});const p=u.getVirtualItems(),h=u.getTotalSize(),m=p[0]?.start??0,v=p.length>0?Math.max(0,h-(p[p.length-1]?.end??0)):0;return o.jsxs(ec,{columns:ytt,variant:"striped",scrollRef:c,className:"min-w-0",children:[o.jsxs(ec.Top,{children:[o.jsx(ec.TopCell,{children:"Date"}),o.jsx(ec.TopCell,{children:"Time"}),o.jsx(ec.TopCell,{children:"Level"}),o.jsx(ec.TopCell,{children:"Entity"}),o.jsx(ec.TopCell,{children:"Message"}),o.jsx(ec.TopCell,{children:"Data"})]}),e.length===0?o.jsx(ec.NoMatch,{message:"No logs match your search"}):o.jsxs(o.Fragment,{children:[o.jsx(ec.Spacer,{height:m}),p.map(y=>{const b=e[y.index];if(!b)return null;const x=a.get(b);if(!x)return null;const S=x===i;return o.jsxs(ec.RowButton,{ref:u.measureElement,"data-index":y.index,...d(y.index),onClick:()=>l(b),featured:S,variant:b.level==="error"||b.level==="fatal"?"error":"default",children:[o.jsx(ec.DateCell,{timestamp:b.timestamp}),o.jsx(ec.TimeCell,{timestamp:b.timestamp}),o.jsx(ec.LevelCell,{level:b.level}),o.jsx(ec.EntityCell,{entityType:b.entityType,entityName:b.entityName}),o.jsx(ec.MessageCell,{message:b.message}),o.jsx(ec.DataCell,{data:b.data})]},x)}),o.jsx(ec.Spacer,{height:v})]}),o.jsx(ec.NextPageLoading,{isLoading:n,hasMore:r,setEndOfListElement:s})]})}function cys({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=>uys(f,a));return o.jsxs("div",{className:Y("grid grid-cols-[1fr_auto] items-start gap-3"),children:[o.jsx(WAe,{fields:a,tokens:i,onTokensChange:l,disabled:s,autoFocusFieldId:c}),u&&o.jsx(VAe,{disabled:s,onClear:d?e:void 0,onRemoveAll:t,onSave:n,onRemoveSaved:r})]})}function uys(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 dys={"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"},Zie="MMM d, yyyy HH:mm",Gie="Pick a wider range or lower the logging level — verbose entries (debug, info) may be filtered out.";function fys({datePreset:e,dateFrom:t,dateTo:n}){return e&&e!=="all"&&e!=="custom"?{title:`No logs for ${dys[e]}`,description:Gie}:t&&n?{title:`No logs between ${ur(t,Zie)} and ${ur(n,Zie)}`,description:Gie}:t?{title:`No logs since ${ur(t,Zie)}`,description:Gie}:{title:"No logs yet",description:"Logs will appear here once agents, workflows, or tools are executed."}}const pys=({datePreset:e,dateFrom:t,dateTo:n}={})=>{const{title:r,description:s}=fys({datePreset:e,dateFrom:t,dateTo:n});return o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(br,{iconSlot:o.jsx(Dc,{}),titleSlot:r,descriptionSlot:s,actionSlot:o.jsxs(oe,{variant:"ghost",as:"a",href:"https://mastra.ai/en/docs/observability/logging",target:"_blank",rel:"noopener noreferrer",children:["Logging Documentation ",o.jsx(ea,{})]})})})},hys=20,mys=1e4;function gys(e,t,n){if(e?.pagination?.hasMore)return n+1}function vys(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 yys(e){return U4(e.state.error,"logs")||q4(e.state.error)?!1:mys}const bys=({filters:e}={})=>{const t=Ge(),{inView:n,setRef:r}=oS(),s=Xx({queryKey:["logs",e],queryFn:({pageParam:p})=>t.listLogsVNext({pagination:{page:p,perPage:hys},filters:e,orderBy:{field:"timestamp",direction:"DESC"}}),initialPageParam:0,getNextPageParam:gys,select:vys,retry:!1,refetchInterval:yys}),{hasNextPage:a,isFetchingNextPage:i,fetchNextPage:l,data:c,isLoading:u,isError:d,error:f}=s;return g.useEffect(()=>{n&&a&&!i&&l()},[n,a,i,l]),{data:c,hasNextPage:a,isFetchingNextPage:i,fetchNextPage:l,isLoading:u,isError:d,error:f,setEndOfListElement:r}},l8={AGENT:"agent",WORKFLOW:"workflow_run",SCORER:"scorer",INGEST:"rag_ingestion"},tHt=[{label:"Agent",entityType:l8.AGENT},{label:"Workflow",entityType:l8.WORKFLOW},{label:"Scorer",entityType:l8.SCORER},{label:"Ingest",entityType:l8.INGEST}],xys=[{label:"Debug",value:"debug"},{label:"Info",value:"info"},{label:"Warn",value:"warn"},{label:"Error",value:"error"},{label:"Fatal",value:"fatal"}],Gx="rootEntityType",ex="datePreset",tx="dateFrom",nx="dateTo",wys=new Set(["all","last-24h","last-3d","last-7d","last-14d","last-30d","custom"]),Tl={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"},KL=Object.keys(Tl),uRe=new Set(["tags"]),dRe="mastra:logs:saved-filters";function Sys(e,t=dRe){const n=Eys(e),r=e.get(ex);r&&n.set(ex,r);const s=e.get(tx);s&&n.set(tx,s);const a=e.get(nx);a&&n.set(nx,a);try{localStorage.setItem(t,n.toString())}catch{}}function kys(e=dRe){try{localStorage.removeItem(e)}catch{}}function btt(e=dRe){try{const t=localStorage.getItem(e);if(!t)return null;const n=new URLSearchParams(t);return n.toString()?n:null}catch{return null}}function Oys(e){if(e.has(ex)||e.has(tx)||e.has(nx)||e.has(Gx))return!0;for(const t of KL)if(e.has(Tl[t]))return!0;return!1}function _ys({availableTags:e,availableRootEntityNames:t,availableServiceNames:n,availableEnvironments:r,loading:s}){const a=[{id:"rootEntityType",label:"Primitive Type",kind:"pick-multi",searchable:!1,options:tHt.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:xys.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 Cys(e){const t=[],n=new Map([[Gx,"rootEntityType"]]);for(const s of KL)n.set(Tl[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),uRe.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 Eys(e){const t=new URLSearchParams,n=e.get(Gx);n&&t.set(Gx,n);for(const r of KL){const s=Tl[r];if(uRe.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 Tys(e,t){e.delete(Gx);for(const n of KL)e.delete(Tl[n]);for(const n of t){if(n.fieldId==="rootEntityType"&&typeof n.value=="string"){e.set(Gx,n.value);continue}const r=Tl[n.fieldId];if(r){if(uRe.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 jys({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 Nys(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 Iys="Filters setting for Logs saved",Ays="Filters setting for Logs cleared up";function Rys(e,t,n){const{storageKey:r,messages:s,skipHydration:a}={},[i,l]=g.useState(()=>btt(r)!==null),c=g.useCallback(()=>{Sys(e,r),l(!0);const f=s?.saved??Iys;f!==!1&&ze.success(f)},[e,r,s?.saved]),u=g.useCallback(()=>{kys(r),l(!1);const f=s?.cleared??Ays;f!==!1&&ze.success(f)},[r,s?.cleared]),d=g.useRef(!1);return g.useEffect(()=>{if(a||d.current||(d.current=!0,Oys(e)))return;const f=btt(r);f&&t(p=>{const h=new URLSearchParams(p);for(const[m,v]of f)h.append(m,v);return h},{replace:!0})},[]),{hasSavedFilters:i,handleSave:c,handleRemoveSaved:u}}function Pys(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 $ys(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,Pys(`${r}${n.message??""}${n.data?JSON.stringify(n.data):""}`))}return t}function Mys(e,t,n,r){const s=g.useMemo(()=>$ys(e),[e]),a=g.useMemo(()=>{const h=new Map;for(const[m,v]of e.entries()){const y=s.get(v);y&&h.set(y,{log:v,idx:m})}return h},[e,s]),l=(t?a.get(t):void 0)?.idx??-1,c=l>=0?e[l]??null:null,u=g.useCallback(h=>s.get(h),[s]),d=g.useCallback(h=>{const m=s.get(h);if(m){if(t===m){n({logId:null});return}n(r?{logId:m,traceId:h.traceId??null,spanId:null}:{logId:m})}},[s,t,r,n]),f=l>0?()=>{const h=e[l-1];if(!h)return;const m=s.get(h);m&&n(r?{logId:m,traceId:h.traceId??null,spanId:null}:{logId:m})}:void 0,p=l>=0&&l<e.length-1?()=>{const h=e[l+1];if(!h)return;const m=s.get(h);m&&n(r?{logId:m,traceId:h.traceId??null,spanId:null}:{logId:m})}:void 0;return{logIdMap:s,getLogId:u,featuredLog:c,handleLogClick:d,handlePreviousLog:f,handleNextLog:p}}const t0e="logId",n0e="traceId",r0e="spanId",jP=1440*60*1e3,Dys={"last-24h":jP,"last-3d":3*jP,"last-7d":7*jP,"last-14d":14*jP,"last-30d":30*jP};function c8(e){e.delete(t0e),e.delete(n0e),e.delete(r0e)}function Lys(e,t,n){const{onRemoveAll:r}={},s=g.useMemo(()=>{const _=e.get(ex);return _&&wys.has(_)?_:"last-24h"},[e]),a=e.get(tx),i=e.get(nx),l=g.useMemo(()=>{if(s==="custom"){if(!a)return;const C=new Date(a);return Number.isNaN(C.getTime())?void 0:C}if(s==="all")return;const _=Dys[s];return _?new Date(Date.now()-_):void 0},[s,a]),c=g.useMemo(()=>{if(s!=="custom"||!i)return;const _=new Date(i);return Number.isNaN(_.getTime())?void 0:_},[s,i]),u=g.useRef(s);u.current=s;const d=e.get(t0e),f=e.get(n0e),p=e.get(r0e),h=g.useMemo(()=>tHt.find(_=>_.entityType===e.get(Gx)),[e]),m=g.useMemo(()=>Cys(e),[e]),v=g.useCallback(_=>{t(C=>{const T=new URLSearchParams(C);for(const[E,N]of Object.entries(_)){const I=E==="logId"?t0e:E==="traceId"?n0e:r0e;N?T.set(I,N):T.delete(I)}return T},{replace:!0})},[t]),y=g.useCallback(_=>{t(C=>{const T=new URLSearchParams(C);return Tys(T,_),c8(T),T},{replace:!0})},[t]),b=y,x=g.useCallback((_,C)=>{if(u.current!=="custom")return;const T=C==="from"?tx:nx;t(E=>{const N=new URLSearchParams(E);return _?N.set(T,_.toISOString()):N.delete(T),c8(N),N},{replace:!0})},[t]),S=g.useCallback(_=>{u.current=_,t(C=>{const T=new URLSearchParams(C);return _==="last-24h"?(T.delete(ex),T.delete(tx),T.delete(nx)):_==="custom"?T.set(ex,"custom"):(T.set(ex,_),T.delete(tx),T.delete(nx)),c8(T),T},{replace:!0})},[t]),k=g.useCallback(()=>{t(_=>{const C=new URLSearchParams(_);C.delete(Gx);for(const T of KL)C.delete(Tl[T]);return C.delete(ex),C.delete(tx),C.delete(nx),c8(C),C},{replace:!0}),r?.()},[t,r]);return g.useMemo(()=>({searchParams:e,setSearchParams:t,datePreset:s,selectedDateFrom:l,selectedDateTo:c,datePresetRef:u,featuredLogId:d,featuredTraceId:f,featuredSpanId:p,selectedEntityOption:h,filterTokens:m,handleFeaturedChange:v,handleFilterTokensChange:b,handleDateChange:x,handleDatePresetChange:S,handleRemoveAll:k,applyFilterTokens:y}),[e,t,s,l,c,u,d,f,p,h,m,v,b,x,S,k,y])}const Tb=Na.KeyValueList;function Fys({spanId:e,span:t,isLoading:n,onClose:r}){const s=$Q(t?.startedAt,t?.endedAt),a=gV(t?.startedAt),i=gV(t?.endedAt);return o.jsxs(Na,{children:[o.jsxs(Na.Header,{children:[o.jsxs(Na.Heading,{children:["Span ",o.jsxs("b",{children:["# ",e]})]}),o.jsx(Na.CloseButton,{onClick:r})]}),n?o.jsx(Na.LoadingData,{children:"Loading span..."}):t?o.jsxs(Na.Content,{children:[o.jsxs(Tb,{children:[t.spanType&&o.jsxs(o.Fragment,{children:[o.jsx(Tb.Key,{children:"Type"}),o.jsx(Tb.Value,{children:t.spanType})]}),a&&o.jsxs(o.Fragment,{children:[o.jsx(Tb.Key,{children:"Started"}),o.jsx(Tb.Value,{children:a})]}),i&&o.jsxs(o.Fragment,{children:[o.jsx(Tb.Key,{children:"Ended"}),o.jsx(Tb.Value,{children:i})]}),s&&o.jsxs(o.Fragment,{children:[o.jsx(Tb.Key,{children:"Duration"}),o.jsx(Tb.Value,{children:s})]})]}),o.jsx("br",{}),o.jsx(Na.CodeSection,{title:"Input",icon:o.jsx(xx,{}),codeStr:JSON.stringify(t.input??null,null,2)}),o.jsx(Na.CodeSection,{title:"Output",icon:o.jsx(tm,{}),codeStr:JSON.stringify(t.output??null,null,2)}),o.jsx(Na.CodeSection,{title:"Metadata",icon:o.jsx(sc,{}),codeStr:JSON.stringify(t.metadata??null,null,2)}),o.jsx(Na.CodeSection,{title:"Attributes",icon:o.jsx(sc,{}),codeStr:JSON.stringify(t.attributes??null,null,2)})]}):o.jsx(Na.NoData,{children:"Span not found."})]})}function zys({traceId:e,spans:t,isLoading:n,onClose:r,onSpanSelect:s,selectedSpanId:a}){const i=g.useMemo(()=>YQ(t??[]),[t]),[l,c]=g.useState([]);g.useEffect(()=>{i.length>0&&c(UAe(i))},[i]);const u=d=>{s?.(a===d?void 0:d)};return o.jsxs(Na,{children:[o.jsxs(Na.Header,{children:[o.jsxs(Na.Heading,{children:["Trace ",o.jsxs("b",{children:["# ",e]})]}),o.jsx(Na.CloseButton,{onClick:r})]}),n?o.jsx(Na.LoadingData,{children:"Loading trace..."}):i.length===0?o.jsx(Na.NoData,{children:"No spans found for this trace."}):o.jsx(Na.Content,{children:o.jsx(aVt,{hierarchicalSpans:i,onSpanClick:u,selectedSpanId:a??void 0,expandedSpanIds:l,setExpandedSpanIds:c})})]})}function Bys(){const[e,t]=$a(),n=Lys(e,t),r=Rys(e,t),[s,a]=g.useState(),[i,l]=g.useState(!1),{data:c=[],isPending:u}=JAe(),{data:d=[],isPending:f}=YAe({entityType:n.selectedEntityOption?.entityType,rootOnly:!0}),{data:p=[],isPending:h}=KAe(),{data:m=[],isPending:v}=XAe(),y=g.useMemo(()=>_ys({availableTags:c,availableRootEntityNames:d,availableServiceNames:m,availableEnvironments:p,loading:{tags:u,entityNames:f,serviceNames:v,environments:h}}),[c,d,m,p,u,f,v,h]),b=g.useMemo(()=>jys({rootEntityType:n.selectedEntityOption?.entityType,dateFrom:n.selectedDateFrom,dateTo:n.selectedDateTo,tokens:n.filterTokens}),[n.filterTokens,n.selectedDateFrom,n.selectedDateTo,n.selectedEntityOption]),{data:x=[],isLoading:S,error:k,isFetchingNextPage:_,hasNextPage:C,setEndOfListElement:T}=bys({filters:b}),{logIdMap:E,featuredLog:N,handleLogClick:I,handlePreviousLog:A,handleNextLog:R}=Mys(x,n.featuredLogId,n.handleFeaturedChange,n.featuredTraceId),{data:L,isLoading:M}=jAe(n.featuredTraceId??null),{data:z,isLoading:H}=BAe(n.featuredTraceId??"",n.featuredSpanId??""),F=g.useCallback(()=>n.applyFilterTokens(Nys(y,n.filterTokens)),[y,n]),B=g.useCallback(()=>n.handleFeaturedChange({logId:null}),[n]),V=g.useCallback(K=>n.handleFeaturedChange({traceId:K,spanId:null}),[n]),D=g.useCallback((K,ne)=>n.handleFeaturedChange({traceId:K,spanId:ne}),[n]),Z=g.useCallback(()=>{n.handleFeaturedChange({traceId:null,spanId:null}),l(!1)},[n]),U=g.useCallback(()=>n.handleFeaturedChange({spanId:null}),[n]),P=g.useCallback(K=>n.handleFeaturedChange({spanId:K??null}),[n]),q=o.jsxs(Bt.TopArea,{children:[o.jsx(Bt.Row,{children:o.jsxs(Bt.Column,{className:"flex flex-wrap items-start justify-start gap-2",children:[o.jsx(H4,{preset:n.datePreset,onPresetChange:n.handleDatePresetChange,dateFrom:n.selectedDateFrom,dateTo:n.selectedDateTo,onDateChange:n.handleDateChange,disabled:S,presets:["last-24h","last-3d","last-7d","last-14d","last-30d","custom"]}),o.jsx(ZAe,{fields:y,tokens:n.filterTokens,onTokensChange:n.handleFilterTokensChange,disabled:S,onStartTextFilter:a})]})}),o.jsx(cys,{isLoading:S,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(Bt,{width:"wide",height:"full",children:[q,o.jsx(Bt.MainArea,{isCentered:!0,children:o.jsx(Xvs,{error:k,resource:"logs",errorTitle:"Failed to load logs"})})]});const G=!!n.selectedEntityOption||n.filterTokens.length>0;return x.length===0&&!S&&!G?o.jsxs(Bt,{width:"wide",height:"full",children:[q,o.jsx(Bt.MainArea,{isCentered:!0,children:o.jsx(pys,{datePreset:n.datePreset,dateFrom:n.selectedDateFrom,dateTo:n.selectedDateTo})})]}):o.jsxs(Bt,{width:"wide",height:"full",children:[q,o.jsx(Jvs,{logCollapsed:i,listSlot:o.jsx(lys,{logs:x,isLoading:S,isFetchingNextPage:_,hasNextPage:C,setEndOfListElement:T,logIdMap:E,featuredLogId:n.featuredLogId,onLogClick:I}),logPanelSlot:N?o.jsx(Kvs,{log:N,onClose:B,onTraceClick:V,onSpanClick:D,onPrevious:A,onNext:R,collapsed:i,onCollapsedChange:l}):null,tracePanelSlot:n.featuredTraceId?o.jsx(zys,{traceId:n.featuredTraceId,spans:L?.spans,isLoading:M,onClose:Z,onSpanSelect:P,selectedSpanId:n.featuredSpanId}):null,spanPanelSlot:n.featuredTraceId&&n.featuredSpanId?o.jsx(Fys,{spanId:n.featuredSpanId,span:z?.span,isLoading:H,onClose:U}):null})]})}function Uys({server:e,rowProps:t}){const{paths:n,Link:r}=un(),a=Ge().options.baseUrl,i=a?`${a}/api/mcp/${e.id}/sse`:"",{data:l}=kBt(e),c=Object.values(l||{}),u=c.length,d=c.filter(h=>h.toolType==="agent").length,f=c.filter(h=>h.toolType==="workflow").length,p=Jh(e.name,50);return o.jsxs(he.RowLink,{to:n.mcpServerLink(e.id),LinkComponent:r,...t,children:[o.jsx(he.NameCell,{children:p}),o.jsx(he.DescriptionCell,{children:i}),o.jsx(he.TextCell,{className:"text-center",children:d||""}),o.jsx(he.TextCell,{className:"text-center",children:u||""}),o.jsx(he.TextCell,{className:"text-center",children:f||""})]})}function qys({mcpServers:e,isLoading:t,search:n=""}){const r=g.useMemo(()=>{const i=n.toLowerCase();return e.filter(l=>l.name?.toLowerCase().includes(i)||l.id?.toLowerCase().includes(i))},[e,n]),{containerRef:s,getRowProps:a}=ao({count:r.length});return t?o.jsx(Fo,{columns:"auto 1fr auto auto auto"}):o.jsxs(he,{columns:"auto 1fr auto auto auto",variant:"striped",scrollRef:s,children:[o.jsxs(he.Top,{children:[o.jsx(he.TopCell,{children:"Name"}),o.jsx(he.TopCell,{children:"URL"}),o.jsx(he.TopCellSmart,{long:"Agents",short:o.jsx(Ii,{}),tooltip:"Agent Tools",className:"text-center"}),o.jsx(he.TopCellSmart,{long:"Tools",short:o.jsx(zf,{}),tooltip:"Tools",className:"text-center"}),o.jsx(he.TopCellSmart,{long:"Workflows",short:o.jsx(qc,{}),tooltip:"Workflow Tools",className:"text-center"})]}),r.length===0&&n?o.jsx(he.NoMatch,{message:"No MCP Servers match your search"}):null,r.map((i,l)=>o.jsx(Uys,{server:i,rowProps:a(l)},i.id))]})}const Vys=()=>o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(br,{iconSlot:o.jsx(Dc,{}),titleSlot:"No MCP Servers yet",descriptionSlot:o.jsxs(o.Fragment,{children:["MCP servers are not configured yet. ",o.jsx("br",{}),"More information in the documentation."]}),actionSlot:o.jsxs(oe,{variant:"ghost",as:"a",href:"https://mastra.ai/docs/tools-mcp/mcp-overview",target:"_blank",rel:"noopener noreferrer",children:["MCP Documentation ",o.jsx(ea,{})]})})}),Hys=()=>{const{data:e=[],isLoading:t,error:n}=CQ(),[r,s]=g.useState("");return n&&vs(n)?o.jsx(Jn,{children:o.jsx(Fs,{})}):n&&ys(n)?o.jsx(Jn,{children:o.jsx(Es,{resource:"MCP servers"})}):n?o.jsx(Jn,{children:o.jsx(qa,{title:"Failed to load MCP servers",message:n.message})}):e.length===0&&!t?o.jsx(Jn,{children:o.jsx(Vys,{})}):o.jsxs(Bt,{children:[o.jsx(Bt.TopArea,{children:o.jsx("div",{className:"max-w-120",children:o.jsx(od,{onSearch:s,label:"Filter MCP servers",placeholder:"Filter by name"})})}),o.jsx(qys,{mcpServers:e,isLoading:t,search:r})]})},Wys=(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 Zys({tools:e,agents:t,isLoading:n,search:r=""}){const{paths:s,Link:a}=un(),i=g.useMemo(()=>Wys(e,t),[e,t]),l=g.useMemo(()=>i.filter(d=>d.id.toLowerCase().includes(r.toLowerCase())),[i,r]),{containerRef:c,getRowProps:u}=ao({count:l.length});return n?o.jsx(Fo,{columns:"auto 1fr auto"}):o.jsxs(he,{columns:"auto 1fr auto",variant:"striped",scrollRef:c,children:[o.jsxs(he.Top,{children:[o.jsx(he.TopCell,{children:"Name"}),o.jsx(he.TopCell,{children:"Description"}),o.jsx(he.TopCellSmart,{long:"Agents",short:o.jsx(Ii,{}),tooltip:"Attached Agents",className:"text-center"})]}),l.length===0&&r?o.jsx(he.NoMatch,{message:"No Tools match your search"}):null,l.map((d,f)=>{const p=Jh(d.id,50),h=Jh(d.description??"",200),m=d.agents.length;return o.jsxs(he.RowLink,{to:s.toolLink(d.id),LinkComponent:a,...u(f),children:[o.jsx(he.NameCell,{children:p}),o.jsx(he.DescriptionCell,{children:h}),o.jsx(he.TextCell,{className:"text-center",children:m||""})]},d.id)})]})}const Gys=()=>o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(br,{iconSlot:o.jsx(Dc,{}),titleSlot:"No Tools yet",descriptionSlot:o.jsxs(o.Fragment,{children:["Mastra tools are not configured yet. ",o.jsx("br",{}),"More information in the documentation."]}),actionSlot:o.jsxs(oe,{variant:"ghost",as:"a",href:"https://mastra.ai/docs/agents/using-tools-and-mcp",target:"_blank",rel:"noopener noreferrer",children:["Tools Documentation ",o.jsx(ea,{})]})})}),Qys=()=>{const e=Ge();return kn({mutationFn:async({toolId:t,input:n,requestContext:r})=>{const s=new M_;Object.entries(r??{}).forEach(([a,i])=>{s.set(a,i)});try{return await e.getTool(t).execute({data:n,requestContext:s})}catch(a){throw ze.error("Error executing dev tool"),console.error("Error executing dev tool:",a),a}}})},Yys=({toolId:e})=>{const{canExecute:t}=Eo(),n=t("tools"),{data:r={}}=zm(),s=g.useMemo(()=>{for(const v of Object.values(r))if(v.tools){const y=Object.values(v.tools).find(b=>b.id===e);if(y)return y}return null},[r,e]),{data:a,isLoading:i,error:l}=lRr(e,{enabled:!s}),c=s||a,{mutateAsync:u,isPending:d,data:f}=Qys(),{requestContext:p}=bs();g.useEffect(()=>{if(l){const v=l instanceof Error?l.message:"Failed to load tool";ze.error(`Error loading tool: ${v}`)}},[l]);const h=async(v,y)=>{if(!c)return;const b={...p??{},...y??{}};return u({toolId:c.id,input:v,requestContext:b})},m=c?.inputSchema?xm(Tx(c?.inputSchema)):Ss({});return i?o.jsxs("div",{className:"p-6",children:[o.jsx(Ct,{className:"mb-4 h-8 w-48"}),o.jsx(Ct,{className:"h-32 w-full"})]}):l?null:c?n?o.jsx(rAe,{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(ve,{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(ve,{variant:"header-md",className:"text-neutral3",children:"Tool not found"})})};function Kys({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}=JI(),{data:p={},isLoading:h,isError:m,error:v}=zm(),{navigate:y,paths:b}=un();g.useEffect(()=>{if(d){const _=f instanceof Error?f.message:"Failed to load tools";ze.error(`Error loading tools: ${_}`)}},[d,f]),g.useEffect(()=>{if(m){const _=v instanceof Error?v.message:"Failed to load agents";ze.error(`Error loading agents: ${_}`)}},[m,v]);const x=new Map;Object.values(p).forEach(_=>{_.tools&&Object.values(_.tools).forEach(C=>{x.has(C.id)||x.set(C.id,C)})}),Object.values(c).forEach(_=>{x.has(_.id)||x.set(_.id,_)});const S=Array.from(x.values()).map(_=>({label:_.id,value:_.id})),k=_=>{t?t(_):_&&_!==e&&y(b.toolLink(_))};return o.jsx(zl,{options:S,value:e,onValueChange:k,placeholder:u||h?"Loading tools...":n,searchPlaceholder:r,emptyText:s,className:a,disabled:i||u||h||d||m,variant:l})}const Xys=({isLoading:e,server:t})=>{const[{sseUrl:n,httpStreamUrl:r},s]=g.useState({sseUrl:"",httpStreamUrl:""});if(g.useEffect(()=>{if(!t)return;const i=window.MASTRA_SERVER_HOST,l=window.MASTRA_SERVER_PORT;let c=null;i&&l&&(c=`http://${i}:${l}`);const u=c||"http://localhost:4111",d=`${u}/api/mcp/${t.id}/sse`,f=`${u}/api/mcp/${t.id}/mcp`;s({sseUrl:d,httpStreamUrl:f})},[t]),e)return null;if(!t)return o.jsx(py,{children:o.jsx(ve,{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(py,{isDivided:!0,children:[o.jsxs("div",{className:"mx-auto w-full max-w-2xl px-8 py-12",children:[o.jsx(ve,{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(wt,{icon:o.jsx(nVt,{}),size:"sm",children:"Version"}),o.jsx(wt,{size:"sm",children:t.version_detail.version})]}),o.jsx(ve,{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(wt,{icon:o.jsx("span",{className:"text-accent1 mr-1 w-6 font-mono font-medium",children:"HTTP"}),children:"Regular HTTP Endpoint"}),o.jsx(ve,{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(ve,{className:"bg-surface4 rounded-lg px-2 py-1",children:r}),o.jsx("div",{className:"pt-1",children:o.jsx(ka,{tooltip:"Copy HTTP Stream URL",content:r})})]})]}),o.jsxs("div",{className:"border-border1 bg-surface3 rounded-lg border p-4",children:[o.jsx(wt,{icon:o.jsx("span",{className:"text-accent1 mr-1 w-6 font-mono font-medium",children:"SSE"}),children:"Server-Sent Events"}),o.jsx(ve,{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(ve,{className:"bg-surface4 rounded-lg px-2 py-1",children:n}),o.jsx("div",{className:"pt-1",children:o.jsx(ka,{tooltip:"Copy SSE URL",content:n})})]})]}),o.jsxs("div",{className:"border-border1 bg-surface3 rounded-lg border p-4",children:[o.jsx(wt,{icon:o.jsx("span",{className:"text-accent1 mr-1 w-6 font-mono font-medium",children:"CLI"}),children:"Command Line"}),o.jsx(ve,{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(ve,{className:"bg-surface4 rounded-lg px-2 py-1",children:a}),o.jsx("div",{className:"pt-1",children:o.jsx(ka,{tooltip:"Copy Command Line Config",content:a})})]})]})]})]}),o.jsx("div",{className:"border-border1 h-full overflow-y-scroll border-l",children:o.jsx(Jys,{server:t})})]})},Jys=({server:e})=>{const{data:t={},isLoading:n}=kBt(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(We,{size:"lg",className:"bg-surface4 rounded-md p-1",children:o.jsx(TC,{})}),o.jsx(ve,{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(tbs,{tool:a,serverId:e.id},s)})})]})};function ebs(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 tbs=({tool:e,serverId:t})=>{const n=g.useRef(null),{Link:r,paths:s}=un(),a=NBt[e.toolType||"tool"],i=ebs(e._meta);return o.jsxs(Hf,{onClick:()=>n.current?.click(),children:[o.jsx(x3t,{children:o.jsx(a,{className:"group-hover/entity:text-accent6"})}),o.jsxs(Zf,{children:[o.jsx(Wf,{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(wt,{size:"xs",children:"App"})]})}),o.jsx(oh,{children:e.description})]})]})},nbs=()=>{const{serverId:e}=hr(),{data:t=[],isLoading:n}=CQ(),r=t.find(s=>s.id===e);return o.jsx("div",{className:"h-full w-full overflow-hidden",children:o.jsx(Xys,{isLoading:n,server:r})})};function rbs(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 sbs=({toolId:e,serverId:t})=>{const{canExecute:n}=Eo(),r=n("tools"),s=Ge(),{data:a,isLoading:i,error:l}=eAe(t,e),{mutateAsync:c,isPending:u,data:d}=_rs(t,e),f=a?rbs(a._meta):void 0,{data:p}=ht({queryKey:["mcp-app-resource",t,f],queryFn:async()=>f?(await s.readMcpServerResource(t,f)).contents[0]?.text??null:null,enabled:!!f}),h=g.useCallback(async(y,b)=>await c(b),[c]);g.useEffect(()=>{if(l){const y=l instanceof Error?l.message:"Failed to load tool";ze.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(Ct,{className:"mb-4 h-8 w-48"}),o.jsx(Ct,{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(ve,{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(ve,{variant:"ui-sm",className:"text-neutral3",children:"You don't have permission to execute tools."})});let v;try{v=xm(a.inputSchema)}catch(y){console.error("Error processing input schema:",y),ze.error("Failed to process tool input schema."),v=Ss({})}return o.jsxs("div",{className:"flex flex-col gap-4",children:[p&&o.jsx("div",{className:"border-border1 border-b p-4",children:o.jsx(SBt,{html:p,toolName:a.name??a.id,onToolCall:h})}),o.jsx(rAe,{executionResult:d,isExecutingTool:u,zodInputSchema:v,handleExecuteTool:m,toolDescription:a.description||"",toolId:a.id})]})},abs=()=>{const{serverId:e,toolId:t}=hr(),{data:n,isLoading:r}=eAe(e,t);return r||!n?null:o.jsx("div",{className:"h-full w-full overflow-y-auto",children:o.jsx(sbs,{toolId:t,serverId:e})})},nHt=[{label:"Agent",entityType:"agent"},{label:"Workflow",entityType:"workflow_run"},{label:"Scorer",entityType:"scorer"},{label:"Ingest",entityType:"rag_ingestion"}],KN="rootEntityType",XN={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"},aY=Object.keys(XN),fRe="mastra:metrics:saved-filters";function ibs(e){const t=dbs(e);try{localStorage.setItem(fRe,t.toString())}catch{}}function obs(){try{localStorage.removeItem(fRe)}catch{}}function rHt(){try{const e=localStorage.getItem(fRe);if(!e)return null;const t=new URLSearchParams(e);return t.toString()?t:null}catch{return null}}function lbs(e){if(e.has(KN))return!0;for(const t of aY)if(e.has(XN[t]))return!0;return!1}function cbs({availableTags:e,availableEntityNames:t,availableServiceNames:n,availableEnvironments:r,loading:s}){const a=[{id:"rootEntityType",label:"Primitive Type",kind:"pick-multi",searchable:!1,options:nHt.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 ubs(e){const t=[],n=new Map([[KN,"rootEntityType"]]);for(const s of aY)n.set(XN[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 dbs(e){const t=new URLSearchParams,n=e.getAll(KN);for(const r of n)t.append(KN,r);for(const r of aY){const s=XN[r],a=e.getAll(s);for(const i of a)t.append(s,i)}return t}function fbs(e,t){e.delete(KN);for(const n of aY)e.delete(XN[n]);for(const n of t){const r=n.fieldId==="rootEntityType"?KN:XN[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 pbs="Any";function xtt(e){const t=e.trim();return t===""||t===pbs}const hbs=new Set(nHt.map(e=>e.entityType));function wtt(e){const t=e.trim();return hbs.has(t)?t:void 0}function mbs(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=>!xtt(a));if(s.length===0)continue;if(r==="tags")t.tags=s;else if(r==="rootEntityType"){const a=s[0],i=a!==void 0?wtt(a):void 0;i&&(t.rootEntityType=i)}else t[r]=s[0]}else if(typeof n.value=="string"){if(xtt(n.value))continue;const s=n.value.trim();if(r==="rootEntityType"){const a=wtt(s);a&&(t.rootEntityType=a)}else t[r]=s}}return t}const sHt=[{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"}],gbs=new Set(sHt.map(e=>e.value));function vbs(e){return typeof e=="string"&&(gbs.has(e)||e==="custom")}const aHt=g.createContext({datePreset:"24h",setDatePreset:()=>{},customRange:void 0,setCustomRange:()=>{},dateRangeLabel:"Last 24 hours",filterTokens:[],setFilterTokens:()=>{},dimensionalFilter:{},dimensionalFilterKey:"{}",tracesBasePath:void 0,logsBasePath:void 0});function iY(){return g.useContext(aHt)}function ybs(e,t){return e!=="custom"?sHt.find(n=>n.value===e)?.label??e:t?.from?t.to?`${ur(t.from,"MMM d, yyyy")} – ${ur(t.to,"MMM d, yyyy")}`:ur(t.from,"MMM d, yyyy"):"Custom range"}function bbs({children:e,preset:t,filterTokens:n,onPresetChange:r,onFilterTokensChange:s,customRange:a,onCustomRangeChange:i,tracesBasePath:l,logsBasePath:c}){const u=g.useMemo(()=>JSON.stringify(n),[n]),d=g.useMemo(()=>n,[u]),f=g.useMemo(()=>mbs(d),[d]),p=g.useMemo(()=>JSON.stringify(f),[f]),h=ybs(t,a),m=g.useMemo(()=>({datePreset:t,setDatePreset:r,customRange:a,setCustomRange:i??(()=>{}),dateRangeLabel:h,filterTokens:d,setFilterTokens:s,dimensionalFilter:f,dimensionalFilterKey:p,tracesBasePath:l,logsBasePath:c}),[t,r,a,i,h,d,s,f,p,l,c]);return o.jsx(aHt.Provider,{value:m,children:e})}const xbs=["last-24h","last-3d","last-7d","last-14d","last-30d","custom"];function wbs(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 Sbs(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 kbs(){const{datePreset:e,setDatePreset:t,customRange:n,setCustomRange:r}=iY(),s=g.useRef(e);s.current=e;const a=g.useRef(n);return a.current=n,o.jsx(H4,{preset:wbs(e),onPresetChange:i=>{const l=Sbs(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:xbs})}const s0e=1440*60*1e3,Obs={"24h":s0e,"3d":4320*60*1e3,"7d":10080*60*1e3,"14d":336*60*60*1e3,"30d":720*60*60*1e3};function _bs(e,t,n){if(e!=="custom"){const r=Obs[e]??s0e;return{start:new Date(n-r),end:new Date(n)}}return{start:t?.from??new Date(n-s0e),end:t?.to??new Date(n)}}function Vm(){const{datePreset:e,customRange:t,dimensionalFilter:n,dimensionalFilterKey:r}=iY(),s=g.useRef(null),a=e==="custom"?`custom:${t?.from?.getTime()??""}:${t?.to?.getTime()??""}`:`preset:${e}`;(!s.current||s.current.key!==a)&&(s.current={key:a,anchor:Date.now()});const i=s.current.anchor,l=g.useMemo(()=>_bs(e,t,i),[e,t,i]),c=g.useMemo(()=>({timestamp:l,...n}),[l,r]),u=g.useMemo(()=>`${a}|${r}`,[a,r]);return{datePreset:e,customRange:t,timestamp:l,filters:c,dimensionalFilter:n,filterKey:u}}function iHt(){const e=Ge(),{filters:t,filterKey:n}=Vm();return ht({queryKey:["metrics","agent-runs-kpi",n],queryFn:()=>e.getMetricAggregate({name:["mastra_agent_duration_ms"],aggregation:"count",filters:t,comparePeriod:"previous_period"})})}function XL({href:e,LinkComponent:t="a"}){return o.jsx(oe,{as:t,href:e,variant:"ghost",size:"icon-md",tooltip:"View in Traces","aria-label":"View in Traces",children:o.jsx(ac,{})})}function Cbs({href:e,LinkComponent:t="a"}){return o.jsx(oe,{as:t,href:e,variant:"ghost",size:"icon-md",tooltip:"View errors in Logs","aria-label":"View errors in Logs",children:o.jsx(mXt,{})})}function Ebs(e){return e==="agents"||e==="workflows"||e==="tools"}function Stt(e,t){if(e.length===0)return"0";const n=e.reduce((r,s)=>{const a=s[t];return r+(typeof a=="number"&&Number.isFinite(a)?a:0)},0);return`${Math.round(n/e.length)}`}function Tbs(e){const t=e;return typeof t?.tsMs=="number"&&Number.isFinite(t.tsMs)}const jbs=[{dataKey:"p50",label:"p50",color:Wp.blue,aggregate:e=>({value:Stt(e,"p50"),suffix:"avg ms"})},{dataKey:"p95",label:"p95",color:Wp.yellow,aggregate:e=>({value:Stt(e,"p95"),suffix:"avg ms"})}];function Qie({data:e,onPointClick:t}){return e.length===0?o.jsx(Vt.NoData,{message:"No latency data yet"}):o.jsx(RD,{data:e,series:jbs,onPointClick:t?n=>Tbs(n)?t(n):void 0:void 0})}function Nbs({data:e,isLoading:t,isError:n,onPointClick:r,actions:s}){const a=(e?.agentData.length??0)>0,i=(e?.workflowData.length??0)>0,l=(e?.toolData.length??0)>0,c={agents:a,workflows:i,tools:l},u=a?"agents":i?"workflows":l?"tools":"agents",[d,f]=g.useState("agents"),p=c[d]?d:u,h=typeof s=="function"?s(p):s,m=!!e&&(e.agentData.length>0||e.workflowData.length>0||e.toolData.length>0),v=e?Object.values(e).filter(Array.isArray).flat().map(b=>b.p50).filter(b=>typeof b=="number"):[],y=v.length>0?`${Math.round(v.reduce((b,x)=>b+x,0)/v.length)}ms`:"—";return o.jsxs(Vt,{children:[o.jsxs(Vt.TopBar,{children:[o.jsx(Vt.TitleAndDescription,{title:"Latency",description:"Hourly p50 and p95 latency."}),m&&o.jsx(Vt.Summary,{value:y,label:"Avg p50"}),h?o.jsx(Vt.Actions,{children:h}):null]}),t?o.jsx(Vt.Loading,{}):n?o.jsx(Vt.Error,{message:"Failed to load latency data"}):o.jsx(Vt.Content,{children:m?o.jsxs(wc,{value:p,onValueChange:b=>{Ebs(b)&&c[b]&&f(b)},defaultTab:u,className:"overflow-visible",children:[o.jsxs(xc,{children:[o.jsx(Pr,{value:"agents",disabled:!a,disabledTooltip:"No agent latency data for this period",children:"Agents"}),o.jsx(Pr,{value:"workflows",disabled:!i,disabledTooltip:"No workflow latency data for this period",children:"Workflows"}),o.jsx(Pr,{value:"tools",disabled:!l,disabledTooltip:"No tool latency data for this period",children:"Tools"})]}),o.jsx(fs,{value:"agents",children:o.jsx(Qie,{data:e.agentData,onPointClick:r?b=>r("agents",b):void 0})}),o.jsx(fs,{value:"workflows",children:o.jsx(Qie,{data:e.workflowData,onPointClick:r?b=>r("workflows",b):void 0})}),o.jsx(fs,{value:"tools",children:o.jsx(Qie,{data:e.toolData,onPointClick:r?b=>r("tools",b):void 0})})]}):o.jsx(Vt.NoData,{message:"No latency data yet"})})]})}function Ibs(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 Abs(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 oHt(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=Ibs(s);l&&e.set(t,l)}function $o(e,t,n){typeof n=="string"&&n.length>0&&e.set(t,n)}function lHt(e,t,n){if(!(!Array.isArray(n)||n.length===0))for(const r of n)r&&e.append(t,r)}function ktt({preset:e,customRange:t,dashboardFilter:n,scope:r,tracesBasePath:s="/traces"}){const a=new URLSearchParams;a.set($w,"branches"),oHt(a,Mw,Dw,Lw,e,t,r.window);const i=r.rootEntityType??n.rootEntityType;i&&a.set(Wx,i),r.status&&a.set(Zx,r.status),$o(a,El.entityName,r.entityName??n.entityName),$o(a,El.threadId,r.threadId??n.threadId),$o(a,El.resourceId,r.resourceId??n.resourceId),$o(a,El.entityId,n.entityId),$o(a,El.runId,n.runId),$o(a,El.sessionId,n.sessionId),$o(a,El.requestId,n.requestId),$o(a,El.userId,n.userId),$o(a,El.organizationId,n.organizationId),$o(a,El.experimentId,n.experimentId),$o(a,El.serviceName,n.serviceName),$o(a,El.environment,n.environment),lHt(a,El.tags,n.tags);const l=a.toString();return l?`${s}?${l}`:s}function Rbs({preset:e,customRange:t,dashboardFilter:n,scope:r,logsBasePath:s="/logs"}){const a=new URLSearchParams;oHt(a,ex,tx,nx,e,t,r.window);const i=r.rootEntityType??n.rootEntityType;i&&a.set(Gx,i),$o(a,Tl.entityName,r.entityName??n.entityName),$o(a,Tl.threadId,r.threadId??n.threadId),$o(a,Tl.resourceId,r.resourceId??n.resourceId),$o(a,Tl.runId,n.runId),$o(a,Tl.sessionId,n.sessionId),$o(a,Tl.requestId,n.requestId),$o(a,Tl.userId,n.userId),$o(a,Tl.organizationId,n.organizationId),$o(a,Tl.experimentId,n.experimentId),$o(a,Tl.serviceName,n.serviceName),$o(a,Tl.environment,n.environment),lHt(a,Tl.tags,n.tags),r.status==="error"&&a.append(Tl.level,"error");const l=a.toString();return l?`${s}?${l}`:s}function vA(){const{datePreset:e,customRange:t,dimensionalFilter:n,tracesBasePath:r,logsBasePath:s}=iY(),a=g.useCallback((c={})=>ktt({preset:e,customRange:t,dashboardFilter:n,scope:c,tracesBasePath:r}),[e,t,n,r]),i=g.useCallback((c={})=>Rbs({preset:e,customRange:t,dashboardFilter:n,scope:c,logsBasePath:s}),[e,t,n,s]),l=g.useCallback((c,u,d)=>{const f=Abs(u,d);return ktt({preset:e,customRange:t,dashboardFilter:n,scope:{...c,window:f},tracesBasePath:r})},[e,t,n,r]);return{getTracesHref:a,getLogsHref:i,getBucketTracesHref:l}}const cHt="1h";async function Yie(e,t,n){const r=await e.getMetricPercentiles({name:t,percentiles:[.5,.95],interval:cHt,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 Pbs(){const e=Ge(),{filters:t,filterKey:n}=Vm();return ht({queryKey:["metrics","latency",n],queryFn:async()=>{const[r,s,a]=await Promise.all([Yie(e,"mastra_agent_duration_ms",t),Yie(e,"mastra_workflow_duration_ms",t),Yie(e,"mastra_tool_duration_ms",t)]);return{agentData:r,workflowData:s,toolData:a,interval:cHt}}})}const Ott={agents:Ku.AGENT,workflows:Ku.WORKFLOW_RUN,tools:Ku.TOOL};function $bs(){const{data:e,isLoading:t,isError:n}=Pbs(),{getTracesHref:r,getBucketTracesHref:s}=vA(),{Link:a}=un(),i=Vr();return o.jsx(Nbs,{data:e,isLoading:t,isError:n,onPointClick:(l,c)=>{Number.isFinite(c.tsMs)&&i(s({rootEntityType:Ott[l]},c.tsMs,"1h"))},actions:l=>o.jsx(XL,{href:r({rootEntityType:Ott[l]}),LinkComponent:a})})}function Mbs(e){return e==="threads"||e==="resources"}function Kie(e){return e.length<=12?e:`${e.slice(0,6)}…${e.slice(-4)}`}function Dbs({threads:e,resources:t,getThreadRowHref:n,getResourceRowHref:r,actions:s,LinkComponent:a}){const[i,l]=g.useState("threads"),c=e.data?.map(y=>({...y,key:y.threadId}))??[],u=t.data?.map(y=>({...y,key:y.resourceId}))??[],d=c.length>0,f=u.length>0,p=e.data?.reduce((y,b)=>y+b.runs,0)??0,h=t.data?.reduce((y,b)=>y+b.threadCount,0)??0,m=i==="threads"?e:t,v=typeof s=="function"?s(i):s;return o.jsxs(Vt,{children:[o.jsxs(Vt.TopBar,{children:[o.jsx(Vt.TitleAndDescription,{title:"Memory",description:"Resource and Thread consumption"}),i==="threads"&&d&&o.jsx(Vt.Summary,{value:p.toLocaleString(),label:"Total runs"}),i==="resources"&&f&&o.jsx(Vt.Summary,{value:h.toLocaleString(),label:"Total threads"}),v?o.jsx(Vt.Actions,{children:v}):null]}),m.isLoading?o.jsx(Vt.Loading,{}):m.isError?o.jsx(Vt.Error,{message:"Failed to load memory data"}):o.jsx(Vt.Content,{children:o.jsxs(wc,{defaultTab:"threads",value:i,onValueChange:y=>{Mbs(y)&&l(y)},className:"grid h-full grid-rows-[auto_1fr] overflow-y-auto",children:[o.jsxs(xc,{children:[o.jsx(Pr,{value:"threads",children:"Threads"}),o.jsx(Pr,{value:"resources",children:"Resources"})]}),o.jsx(fs,{value:"threads",children:d?o.jsxs(he,{columns:"auto auto auto auto auto",...Zxe,children:[o.jsxs(he.Top,{children:[o.jsx(he.TopCell,{sticky:"start",children:"Thread ID"}),o.jsx(he.TopCell,{className:"justify-end text-right",children:"Resource ID"}),o.jsx(he.TopCell,{className:"justify-end text-right",children:"Runs"}),o.jsx(he.TopCell,{className:"justify-end text-right",children:"Tokens"}),o.jsx(he.TopCell,{className:"justify-end text-right",children:"Cost"})]}),c.map(y=>{const b=n?.(y),x=o.jsxs(o.Fragment,{children:[o.jsx(he.RowHeaderCell,{className:"text-ui-sm",children:Kie(y.threadId)}),o.jsx(he.NumberCell,{children:y.resourceId?Kie(y.resourceId):"—"}),o.jsx(he.NumberCell,{highlight:!0,children:y.runs.toLocaleString()}),o.jsx(he.NumberCell,{children:y.tokens>0?al(y.tokens):"—"}),o.jsx(he.NumberCell,{children:y.cost!=null?Hp(y.cost,y.costUnit):"—"})]});return b?o.jsx(he.RowLink,{to:b,LinkComponent:a,children:x},y.key):o.jsx(he.RowStatic,{children:x},y.key)})]}):o.jsx(Vt.NoData,{message:"No thread activity yet"})}),o.jsx(fs,{value:"resources",children:f?o.jsxs(he,{columns:"auto auto auto auto",...Zxe,children:[o.jsxs(he.Top,{children:[o.jsx(he.TopCell,{sticky:"start",children:"Resource ID"}),o.jsx(he.TopCell,{className:"justify-end text-right",children:"Threads"}),o.jsx(he.TopCell,{className:"justify-end text-right",children:"Tokens"}),o.jsx(he.TopCell,{className:"justify-end text-right",children:"Cost"})]}),u.map(y=>{const b=r?.(y),x=o.jsxs(o.Fragment,{children:[o.jsx(he.RowHeaderCell,{className:"text-ui-sm",children:Kie(y.resourceId)}),o.jsx(he.NumberCell,{highlight:!0,children:y.threadCount.toLocaleString()}),o.jsx(he.NumberCell,{children:y.tokens>0?al(y.tokens):"—"}),o.jsx(he.NumberCell,{children:y.cost!=null?Hp(y.cost,y.costUnit):"—"})]});return b?o.jsx(he.RowLink,{to:b,LinkComponent:a,children:x},y.key):o.jsx(he.RowStatic,{children:x},y.key)})]}):o.jsx(Vt.NoData,{message:"No resource activity yet"})})]})})]})}const Xie=20;function Lbs(){const e=Ge(),{filters:t,filterKey:n}=Vm();return ht({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:Xie}),e.getMetricBreakdown({...r,name:["mastra_model_total_input_tokens"],aggregation:"sum",limit:Xie}),e.getMetricBreakdown({...r,name:["mastra_model_total_output_tokens"],aggregation:"sum",limit:Xie})]),l=new Map,c=d=>gA(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 Jie=20;function Fbs(){const e=Ge(),{filters:t,filterKey:n}=Vm();return ht({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:Jie}),e.getMetricBreakdown({...r,name:["mastra_model_total_input_tokens"],aggregation:"sum",limit:Jie}),e.getMetricBreakdown({...r,name:["mastra_model_total_output_tokens"],aggregation:"sum",limit:Jie})]),l=new Map,c=d=>gA(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 zbs(){const e=Lbs(),t=Fbs(),{getTracesHref:n}=vA(),{Link:r}=un();return o.jsx(Dbs,{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 JL({label:e,value:t,prevValue:n,changePct:r,isLoading:s,isError:a}){const i=t!=null;return o.jsxs(Xr,{children:[o.jsx(Xr.Label,{children:e}),o.jsx(Xr.Value,{className:i?void 0:"invisible",children:i?t:"—"}),a?o.jsx(Xr.Error,{}):s?o.jsx(Xr.Loading,{}):i?r!=null?o.jsx(Xr.Change,{changePct:r,prevValue:n}):o.jsx(Xr.NoChange,{}):o.jsx(Xr.NoData,{})]})}function Bbs(){const e=Ge(),{filters:t,filterKey:n}=Vm();return ht({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 Ubs(){const e=Ge(),{filters:t,filterKey:n}=Vm();return ht({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 qbs(){const e=Ge(),{filters:t,filterKey:n}=Vm();return ht({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 Vbs(){const e=Ge(),{filters:t,filterKey:n}=Vm();return ht({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 Hbs(){const{data:e,isLoading:t,isError:n}=iHt();return o.jsx(JL,{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 Wbs(){const{data:e,isLoading:t,isError:n}=qbs();return o.jsx(JL,{label:"Total Model Cost",value:e?.cost!=null?Hp(e.cost,e.costUnit):null,prevValue:e?.previousCost!=null?Hp(e.previousCost,e.costUnit):void 0,changePct:e?.costChangePercent??null,isLoading:t,isError:n})}function Zbs(){const{data:e,isLoading:t,isError:n}=Vbs();return o.jsx(JL,{label:"Total Tokens",value:e?.value!=null?al(e.value):null,prevValue:e?.previousValue!=null?al(e.previousValue):void 0,changePct:e?.changePercent??null,isLoading:t,isError:n})}function Gbs(){const{data:e,isLoading:t,isError:n}=Ubs();return o.jsx(JL,{label:"Total Threads",value:e?.value!=null?al(e.value):null,prevValue:e?.previousValue!=null?al(e.previousValue):void 0,changePct:e?.changePercent??null,isLoading:t,isError:n})}function Qbs(){const{data:e,isLoading:t,isError:n}=Bbs();return o.jsx(JL,{label:"Total Resources",value:e?.value!=null?al(e.value):null,prevValue:e?.previousValue!=null?al(e.previousValue):void 0,changePct:e?.changePercent??null,isLoading:t,isError:n})}function Ybs({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=>Kbs(f,a));return o.jsxs("div",{className:Y("grid grid-cols-[1fr_auto] gap-3 items-start"),children:[o.jsx(WAe,{fields:a,tokens:i,onTokensChange:l,disabled:s,autoFocusFieldId:c}),u&&o.jsx(VAe,{disabled:s,onClear:d?e:void 0,onRemoveAll:t,onSave:n,onRemoveSaved:r})]})}function Kbs(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 Xbs({rows:e,isLoading:t,isError:n,getRowHref:r,actions:s,LinkComponent:a}){const i=!!e&&e.length>0;return o.jsxs(Vt,{children:[o.jsxs(Vt.TopBar,{children:[o.jsx(Vt.TitleAndDescription,{title:"Model Usage & Cost",description:"Token consumption by model."}),i&&(()=>{const l=e.reduce((d,f)=>d+(f.cost??0),0),c=new Set;for(const d of e)d.cost!=null&&d.costUnit&&c.add(d.costUnit);let u;return c.size===0?u=l>0?Hp(l):"—":c.size===1?u=l>0?Hp(l,[...c][0]):"—":u="Mixed",o.jsx(Vt.Summary,{value:u,label:"Total cost"})})(),s?o.jsx(Vt.Actions,{children:s}):null]}),t?o.jsx(Vt.Loading,{}):n?o.jsx(Vt.Error,{message:"Failed to load model usage data"}):o.jsx(Vt.Content,{children:i?o.jsxs(he,{columns:"auto auto auto auto auto auto",...Zxe,children:[o.jsxs(he.Top,{children:[o.jsx(he.TopCell,{sticky:"start",children:"Model"}),o.jsx(he.TopCell,{className:"justify-end text-right",children:"Input"}),o.jsx(he.TopCell,{className:"justify-end text-right",children:"Output"}),o.jsx(he.TopCell,{className:"justify-end text-right",children:"Cache Read"}),o.jsx(he.TopCell,{className:"justify-end text-right",children:"Cache Write"}),o.jsx(he.TopCell,{className:"justify-end text-right",children:"Cost"})]}),e.map(l=>{const c=r?.(l),u=o.jsxs(o.Fragment,{children:[o.jsx(he.RowHeaderCell,{className:"text-ui-sm",children:l.model}),o.jsx(he.NumberCell,{children:l.input}),o.jsx(he.NumberCell,{children:l.output}),o.jsx(he.NumberCell,{children:l.cacheRead}),o.jsx(he.NumberCell,{children:l.cacheWrite}),o.jsx(he.NumberCell,{highlight:!0,children:l.cost!=null?Hp(l.cost,l.costUnit):"—"})]});return c?o.jsx(he.RowLink,{to:c,LinkComponent:a,children:u},l.model):o.jsx(he.RowStatic,{children:u},l.model)})]}):o.jsx(Vt.NoData,{message:"No model usage data yet"})})]})}function Jbs(){const e=Ge(),{filters:t,filterKey:n}=Vm();return ht({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=>gA(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:al(f.input),output:al(f.output),cacheRead:al(f.cacheRead),cacheWrite:al(f.cacheWrite),cost:f.cost,costUnit:f.costUnit})).sort((d,f)=>d.model.localeCompare(f.model))}})}function exs(){const{data:e,isLoading:t,isError:n}=Jbs(),{getTracesHref:r}=vA(),{Link:s}=un();return o.jsx(Xbs,{rows:e,isLoading:t,isError:n,LinkComponent:s,getRowHref:()=>r({rootEntityType:Ku.AGENT}),actions:o.jsx(XL,{href:r({rootEntityType:Ku.AGENT}),LinkComponent:s})})}function txs(e){return e==="tokens"||e==="cost"}function nxs({data:e,isLoading:t,isError:n,getRowHref:r,actions:s,LinkComponent:a}){const[i,l]=g.useState("tokens"),c=e??[],u=c.length>0,d=c.reduce((b,x)=>b+x.total,0),f=c.filter(b=>b.cost!=null&&b.cost>0),p=new Set(f.map(b=>b.costUnit??"usd")),h=p.size<=1,m=h?[...p][0]??"usd":null,v=h?f.reduce((b,x)=>b+(x.cost??0),0):0,y=h&&v>0;return o.jsxs(Vt,{children:[o.jsxs(Vt.TopBar,{children:[o.jsx(Vt.TitleAndDescription,{title:"Token Usage by Agent",description:"Token consumption grouped by agent."}),u&&(i==="cost"&&y?o.jsx(Vt.Summary,{value:Hp(v,m),label:"Total cost"}):o.jsx(Vt.Summary,{value:al(d),label:"Total tokens"})),u&&s?o.jsx(Vt.Actions,{children:s}):null]}),t?o.jsx(Vt.Loading,{}):n?o.jsx(Vt.Error,{message:"Failed to load token usage data"}):o.jsx(Vt.Content,{children:u?o.jsxs(wc,{defaultTab:"tokens",value:i,onValueChange:b=>{txs(b)&&l(b)},className:"grid h-full grid-rows-[auto_1fr] overflow-y-auto",children:[o.jsxs(xc,{children:[o.jsx(Pr,{value:"tokens",children:"Tokens"}),o.jsx(Pr,{value:"cost",children:"Cost"})]}),o.jsx(fs,{value:"tokens",children:o.jsx(YN,{LinkComponent:a,data:c.map(b=>({name:b.name,values:[b.input,b.output],href:r?.(b)})),segments:[{label:"Input",color:Wp.blueDark},{label:"Output",color:Wp.blue}],maxVal:Math.max(...c.map(b=>b.input+b.output)),fmt:al})}),o.jsx(fs,{value:"cost",children:y?o.jsx(YN,{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:Wp.purple}],maxVal:Math.max(...f.map(b=>b.cost??0)),fmt:b=>Hp(b,m)}):o.jsx(Vt.NoData,{message:"No cost data yet"})})]}):o.jsx(Vt.NoData,{message:"No token usage data yet"})})]})}function rxs(){const e=Ge(),{filters:t,filterKey:n}=Vm();return ht({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=>gA(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 sxs(){const{data:e,isLoading:t,isError:n}=rxs(),{getTracesHref:r}=vA(),{Link:s}=un();return o.jsx(nxs,{data:e,isLoading:t,isError:n,LinkComponent:s,getRowHref:a=>r({rootEntityType:Ku.AGENT,entityName:a.name}),actions:o.jsx(XL,{href:r({rootEntityType:Ku.AGENT}),LinkComponent:s})})}function a0e(e,t=al){return n=>({value:t(n.reduce((r,s)=>r+(typeof s[e]=="number"?s[e]:0),0))})}const axs=[{dataKey:"input",label:"Input tokens",color:Wp.blue,aggregate:a0e("input")},{dataKey:"output",label:"Output tokens",color:Wp.yellow,aggregate:a0e("output")}];function ixs(e){return e==="tokens"||e==="cost"}function oxs({data:e,interval:t="1d",isLoading:n,isError:r,actions:s}){const[a,i]=g.useState("tokens"),l=e??[],c=l.map(k=>({...k})),u=l.length>0,d=l.reduce((k,_)=>k+_.total,0),f=l.filter(k=>k.cost!=null&&k.cost>0),p=f.map(k=>({...k})),h=new Set(f.map(k=>k.costUnit).filter(k=>!!k)),m=h.size===1&&f.every(k=>k.costUnit!=null),v=m?[...h][0]??null:null,y=m?f.reduce((k,_)=>k+(_.cost??0),0):0,b=m&&y>0,x=t==="1h"?"Input and output tokens per hour.":"Input and output tokens per day.",S=[{dataKey:"cost",label:"Cost",color:Wp.purple,aggregate:a0e("cost",k=>Hp(k,v))}];return o.jsxs(Vt,{children:[o.jsxs(Vt.TopBar,{children:[o.jsx(Vt.TitleAndDescription,{title:"Token usage over time",description:x}),u&&(a==="cost"&&b?o.jsx(Vt.Summary,{value:Hp(y,v),label:"Total cost"}):o.jsx(Vt.Summary,{value:al(d),label:"Total tokens"})),u&&s?o.jsx(Vt.Actions,{children:s}):null]}),n?o.jsx(Vt.Loading,{}):r?o.jsx(Vt.Error,{message:"Failed to load token usage timeline"}):o.jsx(Vt.Content,{children:u?o.jsxs(wc,{defaultTab:"tokens",value:a,onValueChange:k=>{ixs(k)&&i(k)},className:"overflow-visible",children:[o.jsxs(xc,{children:[o.jsx(Pr,{value:"tokens",children:"Tokens"}),o.jsx(Pr,{value:"cost",children:"Cost"})]}),o.jsx(fs,{value:"tokens",children:o.jsx(RD,{data:c,series:axs})}),o.jsx(fs,{value:"cost",children:b?o.jsx(RD,{data:p,series:S}):o.jsx(Vt.NoData,{message:"No cost data yet"})})]}):o.jsx(Vt.NoData,{message:"No token usage data yet"})})]})}function lxs(e){return e==="24h"?"1h":"1d"}function cxs(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 _tt(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 uxs(e){return e.cost==null||e.hasUnknownCostUnit||e.costUnits.size!==1?null:[...e.costUnits][0]??null}function dxs(){const e=Ge(),{datePreset:t,filters:n,filterKey:r}=Vm(),s=lxs(t);return ht({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 _tt(l,a.series[0],"input"),_tt(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:cxs(d,s),tsMs:u.tsMs,input:u.input,output:u.output,total:u.input+u.output,cost:u.cost,costUnit:uxs(u)}}),interval:s}}})}function fxs(){const{data:e,isLoading:t,isError:n}=dxs(),{getTracesHref:r}=vA(),{Link:s}=un();return o.jsx(oxs,{data:e?.data,interval:e?.interval,isLoading:t,isError:n,actions:o.jsx(XL,{href:r(),LinkComponent:s})})}function eoe({data:e,rowHrefs:t,errorHrefs:n,LinkComponent:r}){return o.jsx(YN,{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:Wp.blueDark},{label:"Errors",color:Wp.pink}],maxVal:Math.max(...e.map(s=>s.completed+s.errors)),fmt:al})}function pxs({data:e,isLoading:t,isError:n,getRowHref:r,getErrorSegmentHref:s,actions:a,LinkComponent:i}){const[l,c]=g.useState("agents"),u=typeof a=="function"?a(l):a,d=!!e&&(e.agentData.length>0||e.workflowData.length>0||e.toolData.length>0),f=e?[...e.agentData,...e.workflowData,...e.toolData].reduce((m,v)=>m+v.completed+v.errors,0):0,p=m=>r?v=>r(m,v):void 0,h=m=>s?v=>s(m,v):void 0;return o.jsxs(Vt,{children:[o.jsxs(Vt.TopBar,{children:[o.jsx(Vt.TitleAndDescription,{title:"Trace Volume",description:"Runs and call counts."}),d&&o.jsx(Vt.Summary,{value:al(f),label:"Total runs"}),u?o.jsx(Vt.Actions,{children:u}):null]}),t?o.jsx(Vt.Loading,{}):n?o.jsx(Vt.Error,{message:"Failed to load trace volume data"}):o.jsx(Vt.Content,{children:d?o.jsxs(wc,{value:l,onValueChange:c,defaultTab:"agents",className:"grid h-full grid-rows-[auto_1fr] overflow-y-auto",children:[o.jsxs(xc,{children:[o.jsx(Pr,{value:"agents",children:"Agents"}),o.jsx(Pr,{value:"workflows",children:"Workflows"}),o.jsx(Pr,{value:"tools",children:"Tools"})]}),o.jsx(fs,{value:"agents",children:e.agentData.length>0?o.jsx(eoe,{data:e.agentData,rowHrefs:p("agents"),errorHrefs:h("agents"),LinkComponent:i}):o.jsx(Vt.NoData,{message:"No agent data yet"})}),o.jsx(fs,{value:"workflows",children:e.workflowData.length>0?o.jsx(eoe,{data:e.workflowData,rowHrefs:p("workflows"),errorHrefs:h("workflows"),LinkComponent:i}):o.jsx(Vt.NoData,{message:"No workflow data yet"})}),o.jsx(fs,{value:"tools",children:e.toolData.length>0?o.jsx(eoe,{data:e.toolData,rowHrefs:p("tools"),errorHrefs:h("tools"),LinkComponent:i}):o.jsx(Vt.NoData,{message:"No tool data yet"})})]}):o.jsx(Vt.NoData,{message:"No trace volume data yet"})})]})}async function toe(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=gA(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 hxs(){const e=Ge(),{filters:t,filterKey:n}=Vm();return ht({queryKey:["metrics","trace-volume",n],queryFn:async()=>{const[r,s,a]=await Promise.all([toe(e,"mastra_agent_duration_ms",t),toe(e,"mastra_workflow_duration_ms",t),toe(e,"mastra_tool_duration_ms",t)]);return{agentData:r,workflowData:s,toolData:a}}})}const u8={agents:Ku.AGENT,workflows:Ku.WORKFLOW_RUN,tools:Ku.TOOL};function mxs(){const{data:e,isLoading:t,isError:n}=hxs(),{getTracesHref:r,getLogsHref:s}=vA(),{Link:a}=un();return o.jsx(pxs,{data:e,isLoading:t,isError:n,LinkComponent:a,getRowHref:(i,l)=>r({rootEntityType:u8[i],entityName:l.name}),getErrorSegmentHref:(i,l)=>l.errors>0?s({rootEntityType:u8[i],entityName:l.name,status:"error"}):void 0,actions:i=>o.jsxs(o.Fragment,{children:[o.jsx(XL,{href:r({rootEntityType:u8[i]}),LinkComponent:a}),o.jsx(Cbs,{href:s({rootEntityType:u8[i],status:"error"}),LinkComponent:a})]})})}const noe="period",d8="dateFrom",f8="dateTo";function gxs(){const[e,t]=$a(),n=e.get(noe),r=vbs(n)?n:"24h",s=g.useMemo(()=>{if(r!=="custom")return;const d=h=>{if(!h)return;const m=new Date(h);return Number.isNaN(m.getTime())?void 0:m},f=d(e.get(d8)),p=d(e.get(f8));if(!(!f&&!p))return{from:f,to:p}},[r,e.toString()]),a=g.useMemo(()=>ubs(e),[e.toString()]),i=g.useCallback(d=>{t(f=>{const p=new URLSearchParams(f);return d==="24h"?p.delete(noe):p.set(noe,d),d!=="custom"&&(p.delete(d8),p.delete(f8)),p},{replace:!0})},[t]),l=g.useCallback(d=>{t(f=>{const p=new URLSearchParams(f);return d?.from?p.set(d8,d.from.toISOString()):p.delete(d8),d?.to?p.set(f8,d.to.toISOString()):p.delete(f8),p},{replace:!0})},[t]),c=g.useCallback(d=>{t(f=>{const p=new URLSearchParams(f);return fbs(p,d),p},{replace:!0})},[t]),u=g.useRef(!1);return g.useEffect(()=>{if(u.current||(u.current=!0,lbs(e)))return;const d=rHt();d&&t(f=>{const p=new URLSearchParams(f);for(const[h,m]of d)p.append(h,m);return p},{replace:!0})},[]),o.jsx(bbs,{preset:r,filterTokens:a,onPresetChange:i,onFilterTokensChange:c,customRange:s,onCustomRangeChange:l,children:o.jsx(vxs,{})})}function vxs(){const[e]=$a(),{error:t,isLoading:n}=iHt(),{filterTokens:r,setFilterTokens:s}=iY(),[a,i]=g.useState(),{supportsMetrics:l,isInMemory:c,isLoading:u}=dVt(),{data:d,isLoading:f}=JAe(),{data:p,isLoading:h}=YAe(),{data:m,isLoading:v}=XAe(),{data:y,isLoading:b}=KAe(),x=g.useMemo(()=>cbs({availableTags:d??[],availableEntityNames:p??[],availableServiceNames:m??[],availableEnvironments:y??[],loading:{tags:f,entityNames:h,serviceNames:v,environments:b}}),[d,p,m,y,f,h,v,b]),[S,k]=g.useState(()=>rHt()!==null),_=g.useCallback(()=>{ibs(e),k(!0),ze.success("Filters setting for Metrics saved")},[e]),C=g.useCallback(()=>{obs(),k(!1),ze.success("Filters setting for Metrics cleared up")},[]),T=g.useCallback(()=>{s([])},[s]),E=g.useCallback(()=>{const N=r.map(I=>{const A=x.find(R=>R.id===I.fieldId);return A?A.kind==="text"?{fieldId:I.fieldId,value:""}:A.kind==="pick-multi"?A.multi?{fieldId:I.fieldId,value:[]}:{fieldId:I.fieldId,value:"Any"}:A.kind==="multi-select"?{fieldId:I.fieldId,value:[]}:I:I});s(N)},[x,r,s]);return t&&vs(t)?o.jsx(Jn,{children:o.jsx(Fs,{})}):t&&ys(t)?o.jsx(Jn,{children:o.jsx(Es,{resource:"metrics"})}):t?o.jsx(Jn,{children:o.jsx(qa,{title:"Failed to load metrics",message:t.message})}):o.jsxs(Bt,{width:"wide",height:"full",children:[o.jsxs(Bt.TopArea,{children:[o.jsx(Bt.Row,{children:o.jsxs(Bt.Column,{className:"flex flex-wrap items-start justify-start gap-2",children:[o.jsx(kbs,{}),o.jsx(ZAe,{fields:x,tokens:r,onTokensChange:s,disabled:n,onStartTextFilter:i})]})}),o.jsx(Ybs,{isLoading:n,filterFields:x,filterTokens:r,onFilterTokensChange:s,onClear:E,onRemoveAll:T,onSave:_,onRemoveSaved:S?C:void 0,autoFocusFilterFieldId:a})]}),u?null:l?o.jsxs("div",{className:"grid content-start gap-8 pb-10",children:[c&&o.jsx(An,{variant:"info",title:"Metrics are not persisted",children:o.jsx(An.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(Jxe,{children:[o.jsx(Hbs,{}),o.jsx(Wbs,{}),o.jsx(Zbs,{}),o.jsx(Gbs,{}),o.jsx(Qbs,{})]}),o.jsxs(Jxe,{children:[o.jsx(exs,{}),o.jsx(sxs,{}),o.jsx(fxs,{}),o.jsx(zbs,{}),o.jsx(mxs,{}),o.jsx($bs,{})]})]}):o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(br,{iconSlot:o.jsx(Dc,{}),titleSlot:"Metrics are not available with your current storage",descriptionSlot:"Metrics require ClickHouse, DuckDB, Postgres v-next, Spanner, or in-memory storage for observability. Other relational databases (LibSQL, MSSQL) and document stores (MongoDB) do not support metrics collection. To enable metrics on an existing project, switch the observability storage in the Mastra configuration.",actionSlot:o.jsxs(oe,{variant:"ghost",as:"a",href:"https://mastra.ai/docs/observability/metrics/overview",target:"_blank",rel:"noopener noreferrer",children:["Metrics Documentation ",o.jsx(ea,{})]})})})]})}const yxs=50;function bxs(){const{paths:e}=un(),{isCmsAvailable:t}=vS(),[n,r]=g.useState(""),[s,a]=g.useState(0),{data:i,isLoading:l,error:c,isPlaceholderData:u}=PBt({page:s,perPage:yxs}),d=i?.promptBlocks??[],f=i?.hasMore??!1,p=g.useCallback(()=>{u||a(v=>v+1)},[u]),h=g.useCallback(()=>{u||a(v=>Math.max(0,v-1))},[u]),m=g.useCallback(v=>{r(v),a(0)},[]);return c&&vs(c)?o.jsx(Jn,{children:o.jsx(Fs,{})}):c&&ys(c)?o.jsx(Jn,{children:o.jsx(Es,{resource:"prompt blocks"})}):c?o.jsx(Jn,{children:o.jsx(qa,{title:"Failed to load prompt blocks",message:c.message})}):d.length===0&&!l&&s===0?o.jsx(Jn,{children:o.jsx(Nas,{})}):o.jsxs(Bt,{children:[o.jsx(Bt.TopArea,{children:o.jsxs(Bt.Row,{align:"center",stack:"responsive",children:[o.jsx("div",{className:"max-w-120 flex-1",children:o.jsx(od,{onSearch:m,label:"Filter prompts",placeholder:"Filter by name or description"})}),t&&o.jsxs(oe,{as:za,to:e.cmsPromptBlockCreateLink(),variant:"primary",className:"shrink-0",children:[o.jsx(Cr,{}),"Create Prompt"]})]})}),o.jsx(jas,{promptBlocks:d,isLoading:l,search:n,currentPage:s,hasMore:f,onNextPage:p,onPrevPage:h})]})}function xxs(){return o.jsx(Bt,{width:"narrow",children:o.jsx(Bt.MainArea,{children:o.jsx(mss,{children:o.jsx(Ixe,{})})})})}const wxs=[{title:"Mastra APIs",description:"Explore and test the available REST API endpoints with the interactive Swagger UI.",icon:PYt,href:"/swagger-ui",external:!1},{title:"Documentation",description:"Read the official Mastra documentation for guides, references, and tutorials.",icon:Klt,href:"https://mastra.ai/en/docs",external:!0},{title:"Github",description:"Browse the source code, report issues, and contribute to the Mastra project.",icon:ea,href:"https://github.com/mastra-ai/mastra",external:!0},{title:"Community",description:"Join the Mastra Discord community for help, discussion, and collaboration.",icon:RV,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:rct,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:Xlt,href:"https://mastra.ai/contact?ref=studio",external:!0}];function Sxs(){return o.jsx(Bt,{width:"narrow",children:o.jsx(Bt.MainArea,{children:o.jsx("div",{className:"grid max-w-3xl grid-cols-1 gap-4 sm:grid-cols-2",children:wxs.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(ea,{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 kxs(){const{data:e={},isLoading:t,error:n}=lh(),[r,s]=g.useState(""),[a,i]=g.useState("all");if(n&&vs(n))return o.jsx(Jn,{children:o.jsx(Fs,{})});if(n&&ys(n))return o.jsx(Jn,{children:o.jsx(Es,{resource:"scorers"})});if(n)return o.jsx(Jn,{children:o.jsx(qa,{title:"Failed to load scorers",message:n.message})});if(Object.keys(e).length===0&&!t)return o.jsx(Jn,{children:o.jsx(yBr,{})});const l=a!=="all"||r!=="",c=()=>{s(""),i("all")};return o.jsxs(Bt,{children:[o.jsx(Bt.TopArea,{children:o.jsx(xBr,{search:r,onSearchChange:s,sourceFilter:a,onSourceFilterChange:i,onReset:c,hasActiveFilters:l})}),o.jsx(vBr,{scorers:e,isLoading:t,search:r,sourceFilter:a})]})}function Oxs(){const{scorerId:e}=hr(),[t,n]=$a(),r=t.get("scoreId")??void 0,[s,a]=g.useState(r),[i,l]=g.useState(!1),c=Vr(),[u,d]=g.useState({value:"all",label:"All Entities",type:"ALL"}),{scorer:f,error:p}=K7r(e),{data:h={},isLoading:m,error:v}=zm(),{isLoading:y,error:b}=Wy(),{data:x=[],isLoading:S,error:k,isFetchingNextPage:_,hasNextPage:C,setEndOfListElement:T}=Y7r({scorerId:e,entityId:u?.value==="all"?void 0:u?.value,entityType:u?.type==="ALL"?void 0:u?.type}),E=g.useMemo(()=>f?.agentIds?.filter(P=>h[P]).map(P=>({value:P,label:h[P].name,type:"AGENT"}))||[],[f?.agentIds,h]),N=g.useMemo(()=>f?.workflowIds?.map(P=>({value:P,label:P,type:"WORKFLOW"}))||[],[f?.workflowIds]),I=g.useMemo(()=>[{value:"all",label:"All Entities",type:"ALL"},...E,...N],[E,N]),A=t.get("entity")??"all",R=I.find(P=>P.value===A);R&&R.value!==u?.value&&d(R),g.useEffect(()=>{if(p){const P=p instanceof Error?p.message:"Failed to load scorer";ze.error(`Error loading scorer: ${P}`)}},[p]),g.useEffect(()=>{if(v){const P=v instanceof Error?v.message:"Failed to load agents";ze.error(`Error loading agents: ${P}`)}},[v]),g.useEffect(()=>{if(b){const P=b instanceof Error?b.message:"Failed to load workflows";ze.error(`Error loading workflows: ${P}`)}},[b]);const L=P=>{P?.value&&n(q=>{const G=new URLSearchParams(q);return G.set("entity",P.value),G})};g.useEffect(()=>{const P=t.get("scoreId")??void 0;if(P===s)return;if(!P){a(void 0);return}x.find(G=>G.id===P)&&a(P)},[t,x]);const M=g.useCallback(P=>{a(P||void 0),n(q=>{const G=new URLSearchParams(q);return P?G.set("scoreId",P):G.delete("scoreId"),G})},[n]);if(!f)return null;const z=vs(p)||vs(v)||vs(b),H=p&&ys(p),F=!z&&!H&&(p||v||b),B=!S&&x.length===0,V=u?.value!=="all",D=f?.scorer?.source==="stored"?o.jsx($y,{owner:"scorer-detail",children:o.jsxs(oe,{variant:"default",as:za,to:`/cms/scorers/${e}/edit`,size:"sm",children:[o.jsx(pm,{})," Edit"]})}):null,Z=e?o.jsx(nY,{open:i,onOpenChange:l,initialScorerIds:[e],onSuccess:P=>{c(`/experiments/${P}`)}}):null;if(z||H||F||B&&!V){const P=(p instanceof Error?p.message:void 0)??(v instanceof Error?v.message:void 0)??(b instanceof Error?b.message:void 0)??"An unexpected error occurred";return o.jsxs(Bt,{width:"wide",height:"full",className:"grid-rows-[1fr]",children:[D,o.jsx(Bt.MainArea,{isCentered:!0,children:z?o.jsx(Fs,{}):H?o.jsx(Es,{resource:"scorers"}):F?o.jsx(qa,{title:"Failed to load scorer",message:P}):o.jsx(U7r,{onRunExperiment:()=>l(!0)})}),Z]})}return o.jsxs(Bt,{width:"wide",height:"full",children:[D,o.jsx(Bt.TopArea,{children:o.jsxs("div",{className:"flex items-center justify-between gap-3",children:[o.jsx(V7r,{selectedEntity:u,entityOptions:I,onEntityChange:L,onReset:()=>{n(P=>{const q=new URLSearchParams(P);return q.set("entity","all"),q})},isLoading:S||m||y}),o.jsxs(oe,{variant:"primary",onClick:()=>l(!0),children:[o.jsx(Lc,{}),"Run Experiment"]})]})}),o.jsx(B7r,{scores:x,isLoading:S,selectedScoreId:s,isFetchingNextPage:_,hasNextPage:C,setEndOfListElement:T,onScoreClick:M,errorMsg:k?.message}),Z]})}const _xs=$i("flex min-w-0 flex-col",{variants:{variant:{default:"gap-3 sm:flex-row sm:items-center sm:justify-between",factory:"gap-2 px-4 py-3 lg:flex-row lg:items-center lg:justify-between lg:gap-4"}},defaultVariants:{variant:"default"}}),Cxs=$i("flex min-w-0 flex-col",{variants:{variant:{default:"",factory:"gap-0.5"}},defaultVariants:{variant:"default"}}),Ctt=$i("",{variants:{variant:{default:"text-sm font-medium",factory:"text-ui-md leading-ui-md text-neutral5"}},defaultVariants:{variant:"default"}}),Exs=$i("flex flex-col gap-0.5",{variants:{variant:{default:"text-sm text-neutral3",factory:"text-ui-sm text-neutral3"}},defaultVariants:{variant:"default"}});function Txs({label:e,description:t,htmlFor:n,variant:r,className:s,children:a}){return o.jsxs("div",{className:Y(_xs({variant:r}),s),"data-slot":"settings-row",children:[o.jsxs("div",{className:Cxs({variant:r}),children:[n?o.jsx(Dt,{htmlFor:n,className:Ctt({variant:r}),children:e}):o.jsx("span",{className:Ctt({variant:r}),children:e}),t&&o.jsx("div",{className:Exs({variant:r}),children:t})]}),a]})}const uHt=[{value:"dark",label:"Dark",Icon:PXt},{value:"light",label:"Light",Icon:sen},{value:"system",label:"System",Icon:hct}],jxs=e=>uHt.some(t=>t.value===e);function Nxs({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 Ixs=()=>{const{baseUrl:e,headers:t,apiPrefix:n}=RH(),{theme:r,setTheme:s}=nC();return o.jsx(Bt,{width:"narrow",children:o.jsxs(Bt.MainArea,{className:"mt-6 flex flex-col gap-5",children:[o.jsx(sxe,{title:"Theme",description:"Customize the appearance of the studio.",children:o.jsx(Txs,{label:"Theme mode",htmlFor:"theme",children:o.jsxs(oa,{value:r,onValueChange:a=>{jxs(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:uHt.map(a=>o.jsx(xr,{value:a.value,children:o.jsx(Nxs,{option:a})},a.value))})]})})}),o.jsx(sxe,{title:"Mastra Connection",description:"Configure the Mastra instance URL, API prefix, and request headers used by the studio.",children:o.jsx(u4t,{initialConfig:{baseUrl:e,headers:t,apiPrefix:n}})})]})})};function Axs(){const[e]=$a(),t=Vr(),n=e.get("redirect")||"/",r=()=>{n.startsWith("http")?window.location.href=n:t(n,{replace:!0})};return o.jsx(eHt,{redirectUri:n,onSuccess:r,initialMode:"signup"})}function Rxs(e){return e.replace(/\/$/,"").split("/").pop()}function oY({children:e,className:t}){return o.jsx("div",{className:Y("border border-border1 rounded-lg mt-12 py-8 lg:min-h-[25rem] transition-height px-4 lg:px-12",t),children:e})}function Pxs({templates:e,linkComponent:t,className:n,isLoading:r}){const s=t||"a";return r?o.jsx("div",{className:Y("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:Y("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:Y("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:Y("grid [&:hover_p]:text-neutral5",{"grid-cols-[8rem_1fr] lg:grid-cols-[12rem_1fr]":a.imageURL}),children:[a.imageURL&&o.jsx("div",{className:Y("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:Y("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:Y("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(Ii,{})," ",a.agents.length]}),a?.tools&&a.tools.length>0&&o.jsxs("li",{children:[o.jsx(zf,{})," ",a.tools.length]}),a?.networks&&a.networks.length>0&&o.jsxs("li",{children:[o.jsx(gct,{})," ",a.networks.length]}),a?.workflows&&a.workflows.length>0&&o.jsxs("li",{children:[o.jsx(dI,{})," ",a.workflows.length]}),a?.mcp&&a.mcp.length>0&&o.jsxs("li",{children:[o.jsx(TC,{})," ",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:Y("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(cG,{})," ",Rxs(a.githubUrl)]})})]},a.slug)})})}function $xs({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:Y("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:Y("flex flex-wrap mx-auto sticky top-0 gap-4 bg-surface2 py-8",u),children:[o.jsx(v_,{name:"search-templates",label:"Search templates",labelIsHidden:!0,value:i,onChange:f=>l?.(f.target.value),placeholder:"Search Template"}),o.jsx(Ld,{label:"Filter by tag",labelIsHidden:!0,name:"filter-tag",value:t,onValueChange:s,options:e}),o.jsx(Ld,{label:"Filter by provider",labelIsHidden:!0,name:"filter-provider",value:r,onValueChange:a,options:n}),c&&o.jsxs(oe,{onClick:c,children:["Reset ",o.jsx(or,{})]})]})}function Mxs(){const{data:e,isLoading:t}=znr(),{templates:n,tags:r,providers:s}=e??{templates:[],tags:[],providers:[]},[a,i]=g.useState("all"),[l,c]=g.useState("all"),[u,d]=g.useState(""),f=[{value:"all",label:"Any tag"}];(r||[]).forEach(x=>{f.push({value:x,label:x})});const p=[{value:"all",label:"Any provider"}];(s||[]).forEach(x=>{p.push({value:x,label:x})});const h=(x,S)=>{S==="tag"?i(x):S==="provider"&&c(x)},m=x=>{d(x)},v=()=>{i("all"),c("all"),d("")},y=n.filter(x=>!(u&&!x.title.toLowerCase().includes(u)&&!x.description.toLowerCase().includes(u)||a!=="all"&&!x.tags.includes(a)||l!=="all"&&!x.supportedProviders.includes(l))),b=u||a!=="all"||l!=="all";return o.jsxs(gs,{children:[o.jsx(bSe,{children:o.jsxs(kbt,{children:[o.jsx(We,{children:o.jsx(iy,{})}),"Templates"]})}),o.jsxs("div",{className:Y("overflow-y-auto w-full h-full px-8 pb-12 z-10"),children:[o.jsx($xs,{selectedTag:a,onTagChange:x=>h(x,"tag"),tagOptions:f,selectedProvider:l,onProviderChange:x=>h(x,"provider"),providerOptions:p,searchTerm:u,onSearchChange:m,onReset:b?v:void 0,className:"max-w-[80rem]",isLoading:t}),o.jsx(Pxs,{templates:y,linkComponent:za,className:"mx-auto max-w-[80rem]",isLoading:t})]})]})}const Dxs="1.64.0";function Lxs({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(uc,{className:"text-yellow-500"}),title:"Template Installed with Warnings"}:{icon:o.jsx(GYt,{}),title:"Template Installation Failed"},{icon:l,title:c}=i();return o.jsxs(oY,{className:"text-neutral3 mb-8 content-center space-y-4",children:[o.jsxs("div",{className:Y("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 Fxs({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(oY,{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:Y("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(vct,{})]}),o.jsx(Ld,{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:Y("flex items-center justify-center col-span-2 text-neutral3 text-ui-sm gap-4","[&_svg]:opacity-50 [&_svg]:w-[1.1em] [&_svg]:h-[1.1em]","animate-in fade-in duration-300"),children:[o.jsx(qt,{})," Loading variables..."]}):Object.entries(r).map(([p,h])=>o.jsxs(g.Fragment,{children:[o.jsx(Kp,{name:`env-${p}`,labelIsHidden:!0,label:"Key",value:p,disabled:!0,className:"w-full"}),o.jsx(Kp,{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(c4t,{defaultProvider:u||"",defaultModel:d||"",updateModel:f||(()=>Promise.resolve({message:"Updated"})),closeEditor:()=>{},autoSave:!0,selectProviderPlaceholder:"Provider"})]})]}),t&&!l&&o.jsx(oe,{className:Y("flex items-center gap-2 mt-4 justify-center text-ui-md w-full bg-surface5 min-h-10 rounded-lg text-neutral5 hover:bg-surface6 transition-colors","[&>svg]:w-[1.1em] [&_svg]:h-[1.1em] [&_svg]:text-neutral5"),onClick:a,disabled:!t||!u||!d||s.length>0||c,children:c?o.jsxs(o.Fragment,{children:[o.jsx(qt,{className:"h-4 w-4"})," Installing..."]}):o.jsxs(o.Fragment,{children:["Install ",o.jsx(zd,{})]})})]})})}function zxs({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:Y("grid mt-8 items-center"),children:o.jsxs("div",{className:Y("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(iy,{}),o.jsx("h2",{className:Y({"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:Y("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:Y("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(Cm,{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(x0e,{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(cG,{}),n?.split("/")?.pop()]})]}),s&&o.jsx(ije,{data:s,labelsAreHidden:!0,isLoading:r})]})]})}function Ett(e){switch(e){case"running":return o.jsx(qt,{size:"sm","aria-hidden":!0});case"success":return o.jsx(qr,{"aria-hidden":!0});case"failed":return o.jsx(or,{"aria-hidden":!0});default:return null}}function Bxs(){return o.jsx("svg",{viewBox:"0 0 24 24",className:"text-neutral2","aria-hidden":!0,children:o.jsx("circle",{cx:"12",cy:"12",r:"8.5",pathLength:"48",fill:"none",stroke:"currentcolor",strokeWidth:"2.8",strokeLinecap:"round",strokeDasharray:"3 3"})})}function Uxs({status:e,variant:t}){return t==="plain"?o.jsx("span",{className:Y("flex size-4 items-center justify-center self-center [&>svg]:size-4",Yr.colors,{"[&>svg]:text-positive1":e==="success","[&>svg]:text-negative1":e==="failed"}),children:e==="pending"?o.jsx(Bxs,{}):Ett(e)}):o.jsx("span",{className:Y("flex size-7 items-center justify-center self-center rounded-full motion-reduce:transition-none",Yr.colors,Yr.transform,Yr.shadow,{"[&>svg]:text-notice-success-fg":e==="success","[&>svg]:text-notice-destructive-fg":e==="failed","border border-dashed border-neutral2":e==="pending","[&>svg]:size-4":e!=="running","bg-accent1Dark shadow-glow-accent1":e==="success","bg-accent2Dark shadow-glow-accent2":e==="failed","scale-110":e==="success"||e==="failed"}),children:Ett(e)})}function qxs({step:e,isActive:t,position:n,variant:r="default"}){return o.jsxs("div",{className:Y("grid grid-cols-[1fr_auto] gap-6 rounded-lg px-4 py-3 motion-reduce:transition-none",Yr.colors,{"border border-transparent":r==="default","border-dashed border-neutral2 bg-surface3":t&&r==="default"}),children:[o.jsxs("div",{className:"grid min-w-0 grid-cols-[auto_1fr] gap-2",children:[o.jsxs("span",{className:Y("flex min-w-6 justify-end text-ui-md",Yr.colors,{"text-neutral5":t||e.status==="success","text-neutral3":!t&&e.status!=="success"}),children:[n,"."]}),o.jsxs("div",{className:"min-w-0",children:[o.jsx("h4",{className:Y("text-ui-md",Yr.colors,{"text-neutral5":t||e.status==="success","text-neutral3":!t&&e.status!=="success"}),children:e.title}),e.description&&o.jsx("p",{className:Y("-mt-0.5 text-ui-md text-neutral2",{truncate:r==="plain"}),children:e.description})]})]}),o.jsx(Uxs,{status:e.status,variant:r})]})}function Vxs({currentStep:e,steps:t=[],className:n}){return o.jsx("div",{className:Y(n),children:t.map((r,s)=>o.jsx(qxs,{step:r,isActive:e?.id===r.id,position:s+1},r.id))})}function Hxs({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:Y("relative flex h-8 items-center justify-end",Yr.colors,{"bg-accent1Dark":r.status==="success"&&e?.[s-1]?.status==="success"}),children:o.jsx("div",{className:Y("absolute right-0 z-10 flex size-8 translate-x-1/2 items-center justify-center self-center rounded-full bg-surface3 text-ui-sm font-bold text-neutral3 motion-reduce:transition-none",Yr.colors,Yr.transform,Yr.shadow,{"border border-dashed border-neutral2":r.status==="pending","bg-accent1Dark text-notice-success-fg shadow-glow-accent1 scale-110":r.status==="success","bg-accent2Dark text-notice-destructive-fg shadow-glow-accent2 scale-110":r.status==="failed"}),children:r.status==="running"?o.jsx(qt,{}):s+1})},r.id))}),o.jsxs("div",{className:Y("text-center text-xs text-neutral3",Yr.colors),children:[n," of ",t," steps completed"]})]})}function Wxs({name:e,streamResult:t,runId:n,workflowInfo:r}){const s=t?.phase||"initializing",a=t?.payload?.workflowState,i=t?.payload?.currentStep,l=t?.error,c=a?.steps||{},u=Object.keys(c).length>0,d=v=>v==="input"||v.endsWith(".input")||v.startsWith("Mapping_")&&/[0-9a-f]{8}/.test(v)||/[0-9a-f]{8,}/.test(v)?!1:r?.allSteps?v in r.allSteps:!0,f=Object.entries(c).filter(([v,y])=>d(v)),p=f.length,h=()=>{switch(s){case"initializing":return"Preparing template installation...";case"processing":return`Installing ${e} template`;case"completed":return"Template installation completed!";case"error":return"Template installation failed";default:return"Installing template..."}},m=f.map(([v,y])=>({id:v,status:y?.status,description:y?.description,title:v.charAt(0).toUpperCase()+v.slice(1).replace(/-/g," "),isActive:i?.id===v}));return o.jsxs(oY,{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(Hxs,{steps:m})}),l&&s==="error"&&o.jsxs("div",{className:Y("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(WXt,{}),l||"Something went wrong"]}),u&&o.jsx(Vxs,{steps:m,currentStep:i,className:"pb-4"}),!u&&s==="initializing"&&o.jsxs("div",{className:"text-neutral3 grid justify-items-center gap-4 text-center text-sm",children:[o.jsx(qt,{}),o.jsx("p",{children:"This may take some time..."})]})]})}function Zxs({name:e,installedEntities:t}){return o.jsxs(oY,{className:Y("grid items-center justify-items-center gap-4 content-center","[&>svg]:w-8 [&>svg]:h-8"),children:[o.jsx(vct,{}),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(ije,{data:t})]})}function Gxs(){const{templateSlug:e}=hr(),[t,n]=$a(),[r,s]=g.useState(""),[a,i]=g.useState(""),[l,c]=g.useState(""),[u,d]=g.useState({}),[f,p]=g.useState([]),[h,m]=g.useState(null),[v,y]=g.useState(!1),[b,x]=g.useState(""),[S,k]=g.useState(!1),[_,C]=g.useState(!1),[T,E]=g.useState([]),{data:N,isLoading:I}=Bnr({repoOrSlug:e,owner:"mastra-ai"}),R=Dxs?.includes("beta")??!1?"beta":"main",{data:L,isLoading:M}=Unr({repo:N?.githubUrl?new URL(N.githubUrl).pathname.split("/")[2]:`template-${e}`,owner:"mastra-ai",branch:R}),{data:z,isLoading:H}=qnr(),{mutateAsync:F,isPending:B}=Vnr(),{mutateAsync:V}=Hnr(),{streamInstall:D,streamResult:Z,isStreaming:U}=Znr(z),{observeInstall:P,streamResult:q,isStreaming:G}=Gnr(z);g.useEffect(()=>{const te=t.get("runId");te&&!v&&!h&&!U&&!G&&(console.info("🔄 Checking completed run after hot reload:",{runId:te}),x(te),V({runId:te}).then(se=>{const fe=se.snapshot;if(fe?.status==="success"&&fe?.result?.success)y(!0);else if(fe?.result?.success===!1)if(fe?.result?.validationResults&&!fe?.result?.validationResults?.valid&&fe?.result?.validationResults?.remainingErrors>0){const{remainingErrors:we,errors:pe}=fe.result.validationResults,ke=`Template installation completed but ${we} validation issue${we>1?"s":""} remain unresolved.`;m(ke),E(pe||[])}else{const we=fe?.result?.message||fe?.result?.error||"Template installation failed";m(typeof we=="string"?we:String(we))}}).catch(se=>{console.error("❌ Failed to fetch run details:",se),m("Failed to retrieve installation status after reload")}))},[t,v,h,U,G,V]),g.useEffect(()=>{const te=t.get("runId"),se=t.get("resume"),fe=t.get("provider");if(te&&se==="true"&&fe&&!U&&!G&&!S&&!_&&z){x(te),k(!0);try{V({runId:te}).then(ce=>{if(ce.snapshot?.status==="running")return P.mutateAsync({runId:te})}).then(()=>{n(ce=>{const we=new URLSearchParams(ce);return we.delete("resume"),we})}).catch(ce=>{console.error("❌ Failed to resume template installation:",ce),ce.message?.includes("404")||ce.message?.includes("not found")?m("Template installation run not found. It may have expired or been completed."):m("Failed to resume template installation. Please try again.")})}catch(ce){console.error("❌ Auto-resume failed with error:",ce),m("Failed to resume template installation. Please refresh and try again.")}}},[t,e,U,G,S,_,z,V,P,n]);const K=[{value:"openai",label:"OpenAI"},{value:"anthropic",label:"Anthropic"},{value:"groq",label:"Groq"},{value:"google",label:"Google"}],ne=[{key:"tools",label:"Tools",value:N?.tools?.length?N.tools.map(te=>te).join(", "):"n/a",icon:o.jsx(zf,{})},{key:"agents",label:"Agents",value:N?.agents?.length?N.agents.map(te=>te).join(", "):"n/a",icon:o.jsx(Ii,{})},{key:"workflows",label:"Workflows",value:N?.workflows?.length?N.workflows.map(te=>te).join(", "):"n/a",icon:o.jsx(dI,{})},{key:"providers",label:"Providers",value:N?.supportedProviders?.length?N.supportedProviders.join(", "):"n/a",icon:o.jsx(Cg,{})},{key:"tags",label:"Tags",value:N?.tags?.length?N.tags.join(", "):"n/a",icon:o.jsx(uI,{})}],J=[{...ne[0]},{...ne[1]},{...ne[2]}].filter(te=>te.value!=="n/a");g.useEffect(()=>{L&&d(L)},[L]),g.useEffect(()=>{const te=Z||q;te?.phase==="error"&&te?.error&&m(typeof te.error=="string"?te.error:String(te.error))},[Z?.phase,Z?.error,q?.phase,q?.error]);const ee=te=>{s(te)},re=async te=>(i(te.provider),c(te.modelId),{message:"Model updated successfully"}),le=async()=>{const te=Object.entries(u).reduce((se,[fe,ce])=>(ce===""&&se.push(fe),se),[]);if(te.length>0){p(te);return}if(N){m(null),y(!1),x(""),C(!0);try{const fe={repo:N.githubUrl||`https://github.com/mastra-ai/template-${N.slug}`,ref:R,slug:N.slug,variables:u},{runId:ce}=await F({});x(ce),n(we=>{const pe=new URLSearchParams(we);return pe.set("runId",ce),pe.set("resume","true"),pe.set("provider",r||"openai"),pe}),await D.mutateAsync({inputData:fe,selectedModel:{provider:a,modelId:l},runId:ce})}catch(se){C(!1),m(se?.message||"Template installation failed"),console.error("Template installation failed",se)}}},X=te=>{const{name:se,value:fe}=te.target;fe.trim()===""?p(ce=>[...ce,se]):p(ce=>ce.filter(we=>we!==se)),d(ce=>({...ce,[se]:fe}))};return o.jsx(gs,{children:o.jsx("div",{className:Y("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(zxs,{isLoading:I,title:N?.title,description:N?.longDescription,imageURL:N?.imageURL,githubUrl:N?.githubUrl,infoData:ne,templateSlug:e}),N&&o.jsxs(o.Fragment,{children:[(U||G)&&o.jsx(Wxs,{name:N.title,streamResult:G?q:Z,runId:b,workflowInfo:z}),v&&o.jsx(Zxs,{name:N.title,installedEntities:J,linkComponent:za}),h&&o.jsx(Lxs,{errorMsg:h,validationErrors:T.length>0?T:Z?.validationResults?.errors||q?.validationResults?.errors}),!U&&!G&&!v&&!h&&o.jsx(Fxs,{providerOptions:K,selectedProvider:r,onProviderChange:ee,variables:u,setVariables:d,errors:f,setErrors:p,handleInstallTemplate:le,handleVariableChange:X,isLoadingEnvVars:M||H,isInstalling:B,defaultModelProvider:a,defaultModelId:l,onModelUpdate:re})]})]})})})}const Qxs=()=>{const{toolId:e,agentId:t}=hr();return o.jsx("div",{className:"h-full w-full overflow-y-auto",children:o.jsx(Ass,{toolId:e,agentId:t})})},Yxs=()=>{const{toolId:e}=hr();return o.jsx("div",{className:"h-full w-full overflow-y-hidden",children:o.jsx(Yys,{toolId:e})})};function Kxs(){const{data:e,isLoading:t,error:n}=Wy(),[r,s]=g.useState("");return n&&vs(n)?o.jsx(Jn,{children:o.jsx(Fs,{})}):n&&ys(n)?o.jsx(Jn,{children:o.jsx(Es,{resource:"workflows"})}):n?o.jsx(Jn,{children:o.jsx(qa,{title:"Failed to load workflows",message:n.message})}):Object.keys(e||{}).length===0&&!t?o.jsx(Jn,{children:o.jsx(xZr,{})}):o.jsxs(Bt,{children:[o.jsx(Bt.TopArea,{children:o.jsxs(Bt.Row,{align:"center",stack:"responsive",children:[o.jsx("div",{className:"max-w-120 flex-1",children:o.jsx(od,{onSearch:s,label:"Filter workflows",placeholder:"Filter by name or description"})}),o.jsxs(oe,{as:za,to:"/workflows/schedules",variant:"primary",className:"shrink-0",children:[o.jsx(rI,{}),"Schedules"]})]})}),o.jsx(bZr,{workflows:e||{},isLoading:t,search:r})]})}const Xxs={active:"bg-accent1",paused:"bg-accent3"},Jxs={active:"text-accent1",paused:"text-accent3"},dHt=({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 ${Xxs[e]}`,"aria-hidden":!0}),o.jsx("span",{className:`text-ui-sm ${Jxs[e]}`,children:e})]}),Cj=e=>!e||e<=0?"—":new Date(e).toLocaleString(),d2=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 fHt({status:e}){const{icon:t,color:n}=e0s(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 e0s(e){switch(e){case"success":return{icon:o.jsx(qr,{size:14}),color:"text-accent1"};case"failed":return{icon:o.jsx(or,{size:14}),color:"text-accent2"};case"running":return{icon:o.jsx(qt,{}),color:"text-neutral3"};case"suspended":return{icon:o.jsx(_V,{size:14}),color:"text-accent3"};case"canceled":return{icon:o.jsx(Dc,{size:14}),color:"text-neutral3"};case"pending":case"waiting":return{icon:o.jsx(s1,{size:14}),color:"text-neutral3"};default:return{icon:null,color:"text-neutral3"}}}const Ttt="auto auto auto auto 1fr";function t0s(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 n0s(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 r0s=3e4,s0s=5*6e4;function a0s({triggers:e,isLoading:t,workflowId:n,hasNextPage:r,isFetchingNextPage:s,setEndOfListElement:a}){const{Link:i,paths:l}=un(),c=h=>!!(n&&h.runId&&h.outcome!=="failed"),u=e.filter(c).length,{containerRef:d,getRowProps:f}=ao({count:u});let p=-1;return t?o.jsx(Fo,{columns:Ttt}):e.length===0?o.jsx(ve,{variant:"ui-md",className:"text-neutral4 p-4",children:"No trigger history yet."}):o.jsxs(he,{columns:Ttt,className:"min-w-0",scrollRef:d,children:[o.jsxs(he.Top,{children:[o.jsx(he.TopCell,{children:"Run"}),o.jsx(he.TopCell,{children:"Status"}),o.jsx(he.TopCell,{children:"Started"}),o.jsx(he.TopCell,{children:"Duration"}),o.jsx(he.TopCell,{children:" "})]}),e.map(h=>{const m=h.actualFireAt-h.scheduledFireAt,v=n0s(m),y=`Scheduled ${Cj(h.scheduledFireAt)} — published ${Cj(h.actualFireAt)} (drift ${v})`,b=h.outcome==="failed",x=b?h.error:h.run?.error,S=Math.abs(m),k=!b&&S>r0s&&S<=s0s,_=`${h.scheduleId}-${h.runId}-${h.actualFireAt}`,C=c(h);C&&(p+=1);const T=o.jsx("span",{className:C?"text-accent1 text-ui-sm font-mono whitespace-nowrap":"text-neutral3 text-ui-sm font-mono whitespace-nowrap",children:h.runId}),E=o.jsxs(o.Fragment,{children:[o.jsx(he.Cell,{children:T}),o.jsx(he.Cell,{children:o.jsxs("span",{className:"inline-flex items-center gap-2",children:[b?o.jsxs("span",{className:"text-ui-sm text-accent2 inline-flex items-center gap-1.5 whitespace-nowrap",children:[o.jsx(uc,{size:14}),"publish failed"]}):h.run?o.jsx(fHt,{status:h.run.status}):o.jsx("span",{className:"text-ui-sm text-neutral3 inline-flex items-center gap-1.5 whitespace-nowrap",children:"pending"}),x?o.jsxs(yn,{children:[o.jsx(gn,{asChild:!0,children:o.jsx("span",{className:"text-accent2 inline-flex",children:o.jsx(uc,{size:14})})}),o.jsx(vn,{children:x})]}):null]})}),o.jsx(he.Cell,{children:o.jsxs("span",{className:"inline-flex items-center gap-2 whitespace-nowrap",children:[o.jsx("span",{title:y,children:d2(h.actualFireAt)}),k?o.jsxs(yn,{children:[o.jsx(gn,{asChild:!0,children:o.jsx("span",{className:"text-accent3 inline-flex",children:o.jsx(uc,{size:14})})}),o.jsxs(vn,{children:["Published ",v," after the scheduled fire time"]})]}):null]})}),o.jsx(he.Cell,{children:h.run?o.jsx("span",{children:t0s(h.run.durationMs)}):o.jsx("span",{className:"text-neutral4",children:"—"})}),o.jsx(he.Cell,{children:" "})]});return C?o.jsx(he.RowLink,{to:l.workflowRunLink(n,h.runId),LinkComponent:i,...f(p),children:E},_):o.jsx(he.RowStatic,{children:E},_)}),o.jsx(he.NextPageLoading,{isLoading:s,hasMore:r,setEndOfListElement:a})]})}const i0s=e=>{const t=Ge();return ht({queryKey:["schedule",e],enabled:!!e,queryFn:async()=>{if(!e)throw new Error("scheduleId is required");return t.getSchedule(e)}})},jtt=25,o0s=e=>{const t=Ge(),{inView:n,setRef:r}=oS(),s=Xx({queryKey:["schedule-triggers",e],enabled:!!e,initialPageParam:void 0,queryFn:async({pageParam:u})=>e?t.listScheduleTriggers(e,{limit:jtt,toActualFireAt:u}):{triggers:[]},getNextPageParam:u=>{if(!(!u?.triggers?.length||u.triggers.length<jtt))return u.triggers[u.triggers.length-1].actualFireAt},refetchInterval:u=>(u.state.data?.pages.flatMap(p=>p.triggers)??[]).some(p=>p.run?p.run.status==="pending"||p.run.status==="running"||p.run.status==="waiting":p.outcome==="published")?5e3:!1}),a=s.data?.pages.flatMap(u=>u?.triggers??[])??[],{hasNextPage:i,isFetchingNextPage:l,fetchNextPage:c}=s;return g.useEffect(()=>{n&&i&&!l&&c()},[n,i,l,c]),{...s,data:a,setEndOfListElement:r}},l0s=e=>{const t=Ge(),n=Nr();return kn({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"]}),ze.success(s==="pause"?"Schedule paused":"Schedule resumed")},onError:r=>{ze.error(r.message)}})};function p8({label:e,children:t}){return o.jsxs("div",{className:"flex flex-col gap-1",children:[o.jsx(ve,{variant:"ui-xs",className:"text-neutral4 tracking-wide uppercase",children:e}),o.jsx("div",{className:"text-ui-md",children:t})]})}function c0s(){const{scheduleId:e}=hr(),{paths:t}=un(),{data:n,error:r}=i0s(e),{data:s,isLoading:a,error:i,hasNextPage:l,isFetchingNextPage:c,setEndOfListElement:u}=o0s(e),d=l0s(e);if(r&&vs(r))return o.jsx(Jn,{children:o.jsx(Fs,{})});if(r&&ys(r))return o.jsx(Jn,{children:o.jsx(Es,{resource:"schedules"})});if(r)return o.jsx(Jn,{children:o.jsx(qa,{title:"Failed to load schedule",message:r.message})});const f=n?.workflowId,p=n?.agentId;return o.jsxs(Bt,{children:[o.jsx(Bt.TopArea,{children:o.jsx(Bt.Row,{className:"justify-end",children:o.jsxs(Bt.Column,{className:"flex justify-end gap-2",children:[o.jsxs(oe,{as:za,to:t.schedulesLink(),variant:"ghost",children:[o.jsx(yl,{}),"Back to schedules"]}),f?o.jsx(oe,{as:za,to:t.workflowLink(f),variant:"ghost",children:"Open workflow"}):null,n?o.jsx(oe,{onClick:()=>d.mutate(n.status==="active"?"pause":"resume"),disabled:d.isPending,"data-testid":"schedule-toggle-button",children:n.status==="active"?o.jsxs(o.Fragment,{children:[o.jsx(PV,{}),"Pause"]}):o.jsxs(o.Fragment,{children:[o.jsx(Lc,{}),"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(p8,{label:p?"Agent":"Workflow",children:f?o.jsx(za,{to:t.workflowLink(f),className:"text-accent1 hover:underline",children:f}):p?o.jsx(za,{to:t.agentLink(p),className:"text-accent1 hover:underline",children:p}):"—"}),o.jsxs(p8,{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(p8,{label:"Status",children:o.jsx(dHt,{status:n.status})}),o.jsx(p8,{label:"Next fire",children:o.jsx("span",{title:Cj(n.nextFireAt),children:d2(n.nextFireAt)})})]}),o.jsxs("div",{className:"overflow-y-auto","data-testid":"schedule-triggers-panel",children:[o.jsx(ve,{variant:"ui-md",className:"mb-3",children:"Trigger history"}),i?o.jsx(qa,{title:"Failed to load trigger history",message:i.message}):o.jsx(a0s,{triggers:s??[],isLoading:a,workflowId:f,hasNextPage:l,isFetchingNextPage:c,setEndOfListElement:u})]})]}):null]})}const Ntt="minmax(0, 1.2fr) minmax(0, 1.4fr) minmax(0, 1fr) auto auto auto";function u0s({schedules:e,isLoading:t,search:n=""}){const{paths:r,Link:s}=un(),a=g.useMemo(()=>{const c=n.toLowerCase();return c?e.filter(u=>u.id.toLowerCase().includes(c)||(u.workflowId??u.agentId??"").toLowerCase().includes(c)):e},[e,n]),{containerRef:i,getRowProps:l}=ao({count:a.length});return t?o.jsx(Fo,{columns:Ntt}):o.jsxs(he,{columns:Ntt,variant:"striped",className:"min-w-0",scrollRef:i,children:[o.jsxs(he.Top,{children:[o.jsx(he.TopCell,{children:"Target"}),o.jsx(he.TopCell,{children:"Schedule ID"}),o.jsx(he.TopCell,{children:"Cron"}),o.jsx(he.TopCell,{children:"Status"}),o.jsx(he.TopCell,{children:"Next fire"}),o.jsx(he.TopCell,{children:"Last run"})]}),a.length===0&&n?o.jsx(he.NoMatch,{message:"No schedules match your search"}):null,a.length===0&&!n?o.jsx(he.NoMatch,{message:"No schedules configured"}):null,a.map((c,u)=>o.jsxs(he.RowLink,{to:r.scheduleLink(c.id),LinkComponent:s,...l(u),children:[o.jsx(he.NameCell,{children:c.workflowId??c.agentId}),o.jsx(he.Cell,{className:"min-w-0",children:o.jsx("span",{className:"text-ui-smd text-neutral3 block truncate font-mono",title:c.id,children:c.id})}),o.jsx(he.Cell,{children:o.jsxs("span",{className:"inline-flex items-center gap-2 whitespace-nowrap",children:[o.jsx("code",{className:"text-ui-sm font-mono",children:c.cron}),c.timezone?o.jsx("span",{className:"text-neutral4 text-ui-xs",children:c.timezone}):null]})}),o.jsx(he.Cell,{children:o.jsx(dHt,{status:c.status})}),o.jsx(he.Cell,{children:o.jsx("span",{className:"whitespace-nowrap",title:Cj(c.nextFireAt),children:d2(c.nextFireAt)})}),o.jsx(he.Cell,{children:c.lastRun?o.jsxs("span",{className:"inline-flex items-center gap-2 whitespace-nowrap",children:[o.jsx(fHt,{status:c.lastRun.status}),o.jsx("span",{className:"text-neutral4 text-ui-sm",title:Cj(c.lastFireAt),children:c.lastFireAt?d2(c.lastFireAt):""})]}):c.lastFireAt?o.jsx("span",{className:"whitespace-nowrap",title:Cj(c.lastFireAt),children:d2(c.lastFireAt)}):o.jsx("span",{className:"text-neutral4",children:"Never"})})]},c.id))]})}function d0s({workflowId:e}={}){const{data:t,isLoading:n,error:r}=vSe(e?{workflowId:e}:{}),[s,a]=g.useState("");return r?o.jsx(qa,{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(od,{onSearch:a,label:"Filter schedules",placeholder:"Filter by id or workflow"})}),o.jsx("div",{className:"overflow-y-auto",children:o.jsx(u0s,{schedules:t??[],isLoading:n,search:s})})]})}function f0s(){const[e]=$a(),t=e.get("workflowId")??void 0,{error:n}=vSe(t?{workflowId:t}:{});return n&&vs(n)?o.jsx(Jn,{children:o.jsx(Fs,{})}):n&&ys(n)?o.jsx(Jn,{children:o.jsx(Es,{resource:"schedules"})}):o.jsx(Bt,{children:o.jsx("div",{className:"h-full",children:o.jsx(d0s,{workflowId:t})})})}function p0s({stepGraph:e,open:t,workflowName:n}){const{nodes:r,edges:s}=UOe({stepGraph:e}),[a,i]=g.useState(!1),[l,c,u]=Q_t(r),[d]=Y_t(s),{edgeTypes:f,nodeTypes:p,styledEdges:h}=a5t({edges:d,workflowName:n,stepGraph:e});return g.useEffect(()=>{if(t){const m=setTimeout(()=>{i(!0)},500);return()=>clearTimeout(m)}},[t]),o.jsx("div",{className:"bg-surface1 relative h-full w-full",children:a?o.jsxs(G_t,{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(X_t,{variant:uy.Lines,gap:12,size:.5})]}):o.jsx("div",{className:"flex h-full w-full items-center justify-center",children:o.jsx(qt,{})})})}function h0s(){const{stepDetail:e,closeStepDetail:t}=RW();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(wx,{className:"h-4 w-4",style:{color:zu.map}}),e.type==="nested-graph"&&o.jsx(qc,{className:"h-4 w-4",style:{color:zu.workflow}}),o.jsxs("div",{className:"flex flex-col",children:[o.jsx(ve,{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(ve,{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(or,{className:"text-neutral3 h-4 w-4"})})]}),o.jsxs("div",{className:"flex-1 overflow-auto",children:[e.type==="map-config"&&e.mapConfig&&o.jsx(o2,{data:e.mapConfig}),e.type==="nested-graph"&&e.nestedGraph&&o.jsx("div",{className:"h-full min-h-[400px]",children:o.jsx(BOe,{children:o.jsx(p0s,{stepGraph:e.nestedGraph.stepGraph,open:!0,workflowName:e.nestedGraph.fullStep})},`nested-graph-${e.nestedGraph.fullStep}`)})]})]}):null}function m0s(e){const t=new Blob([JSON.stringify(e??null)]).size;return t<1024?`${t} B`:`${(t/1024).toFixed(1)} KB`}function g0s(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 v0s({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(ve,{as:"p",variant:"ui-md",className:"text-neutral6 flex items-center gap-2 font-semibold",children:[o.jsx(We,{children:o.jsx(_V,{})}),"Step suspended"]}),o.jsx(wt,{variant:"yellow",children:"Needs input"})]}),e.map((s,a)=>{const i=t.allSteps[s.stepId];if(!i||i.isWorkflow)return null;const l=i?.resumeSchema?xm(Tx(i.resumeSchema)):mf(cr(),_f());return o.jsx(y0s,{step:s,stepSchema:l,description:i.description,isStreaming:n,onResume:r},`${s.runId}-${s.stepId}-${a}`)})]})}function y0s({step:e,stepSchema:t,description:n,isStreaming:r,onResume:s}){const[a,i]=g.useState(!1);return o.jsxs("div",{className:"space-y-5",children:[o.jsxs("div",{className:"space-y-2",children:[o.jsx(ve,{as:"p",variant:"ui-md",className:"text-neutral6 truncate font-medium",children:e.stepId}),n&&o.jsx(ve,{as:"p",variant:"ui-sm",className:"text-neutral3",children:n})]}),e.suspendPayload&&o.jsxs("div",{className:"space-y-2",children:[o.jsxs(ve,{as:"p",variant:"ui-sm",className:"text-neutral3 flex items-center gap-2",children:[o.jsx(We,{children:o.jsx(MXt,{})}),"The step is asking"]}),o.jsxs(zc,{open:a,onOpenChange:i,children:[o.jsxs(fc,{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(We,{children:o.jsx(Ur,{className:Y("transition-transform text-neutral3",{"transform rotate-90":a})})}),o.jsx(ve,{as:"span",variant:"ui-md",className:"text-neutral6 truncate",children:g0s(e.suspendPayload,e.stepId)})]}),o.jsx(ve,{as:"span",variant:"ui-sm",className:"text-neutral3 shrink-0",children:m0s(e.suspendPayload)})]}),o.jsx(pc,{children:o.jsx("div",{"data-testid":"suspended-payload",className:"pt-2",children:o.jsx(Qr,{data:e.suspendPayload,className:"w-full overflow-x-auto p-2",showCopyButton:!1})})})]})]}),o.jsxs("div",{className:"space-y-3",children:[o.jsxs(ve,{as:"p",variant:"ui-sm",className:"text-neutral3 flex items-center gap-2",children:[o.jsx(We,{children:o.jsx(FXt,{})}),"Your response"]}),o.jsx("div",{className:"-mx-5",children:o.jsx(pU,{schema:t,isSubmitLoading:r,submitButtonLabel:"Resume",submitButtonIcon:o.jsx(Lc,{}),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 b0s(){const{result:e,runSnapshot:t,workflow:n,runId:r,isStreamingWorkflow:s}=g.useContext(Zl),{runId:a}=hr(),i=aCt(e,r??""),l=eer(),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(v0s,{suspendedSteps:i,workflow:n,isStreaming:s,onResume:l})},r)}const x0s=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"})]}),w0s=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"})]}),S0s=e=>e.includes("."),k0s=e=>e==="input"||e.endsWith(".input"),O0s=1;function _0s(e){return`${Number((e/1e3).toPrecision(3))}s`}function C0s(e,t){const n=Object.entries(e).filter(([i])=>!k0s(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,O0s);return{stepId:i,step:l,status:l.status,offsetPct:f,widthPct:p,durationMs:d,isRunning:c,isNestedEntry:S0s(i)}})}const E0s=({status:e})=>o.jsxs(We,{children:[e==="success"&&o.jsx(x0s,{className:"text-accent1"}),e==="failed"&&o.jsx(w0s,{className:"text-accent2"}),e==="suspended"&&o.jsx(_V,{className:"text-accent3"}),e==="waiting"&&o.jsx(Hpe,{className:"text-accent5"}),e==="skipped"&&o.jsx(Hpe,{className:"text-icon3"}),e==="running"&&o.jsx(Vs,{className:"text-accent6 animate-spin"})]}),T0s={success:"bg-accent1",failed:"bg-accent2",suspended:"bg-accent3",waiting:"bg-accent5",skipped:"bg-border1",running:"bg-accent6"};function pHt(e){return e.split(/[-_.\s]+/).filter(Boolean).map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(" ")}const Itt=e=>e&&typeof e=="object"&&!Array.isArray(e)?e:{value:e},j0s=e=>{const t=e;return YLt({duration:t.duration,date:t.date,isForEach:t.isForEach,mapConfig:t.mapConfig,canSuspend:t.canSuspend,isParallel:t.isParallel,stepGraph:t.stepGraph})},N0s=({row:e,index:t,isSelected:n,isHovered:r,onSelectStep:s,onHoverStep:a,onOpenInput:i,onOpenOutput:l})=>{const c=j0s(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:Y("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(E0s,{status:e.status})}),o.jsx("div",{className:"flex justify-center",children:o.jsx(oe,{type:"button",variant:"ghost",size:"icon-sm",tooltip:"View step input",disabled:u,className:"text-neutral3 hover:text-neutral6 disabled:cursor-not-allowed disabled:opacity-40",onClick:f=>{f.stopPropagation(),u||i(e)},children:o.jsx(XJt,{})})}),o.jsx("div",{className:"flex overflow-hidden",children:o.jsx(Xq,{indicators:c,className:"shrink-0"})}),o.jsx(ve,{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:pHt(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 ${T0s[e.status]}`,style:{left:`${e.offsetPct}%`,width:`${e.widthPct}%`}})}),o.jsx("div",{className:"flex justify-center",children:o.jsx(oe,{type:"button",variant:"ghost",size:"icon-sm",tooltip:"View step output",disabled:u,className:"text-neutral3 hover:text-neutral6 disabled:cursor-not-allowed disabled:opacity-40",onClick:f=>{f.stopPropagation(),u||l(e)},children:o.jsx(YJt,{})})}),o.jsx(ve,{as:"span",variant:"ui-sm",className:"text-neutral3 w-20 justify-self-end text-right tabular-nums",children:_0s(e.durationMs)})]},`timeline-item-${e.stepId}-${t}`)};function I0s(){const{steps:e}=oL(),{selectedStepId:t,hoverStepId:n,setSelectedStepId:r,setHoverStepId:s}=qH(),[a,i]=g.useState(()=>Date.now()),[l,c]=g.useState(!1),[u,d]=g.useState(null),f=g.useRef(null);Mbt(f,{enabled:!l});const p=C0s(e,a),h=p.some(m=>m.isRunning);return g.useEffect(()=>{if(!h)return;const m=setInterval(()=>i(Date.now()),100);return()=>clearInterval(m)},[h]),g.useEffect(()=>{if(l||p.length===0)return;const m=f.current;m&&(m.scrollTop=m.scrollHeight)},[l,p.length]),p.length===0?null:o.jsxs(o.Fragment,{children:[o.jsx("div",{"data-testid":"workflow-timeline",className:"pointer-events-none absolute right-0 bottom-0 z-20 px-2 pb-2",style:{left:"var(--workflow-left-panel-width, 0px)"},children:o.jsxs("div",{className:"rounded-studio-panel border-border1/50 bg-surface3 pointer-events-auto flex max-h-64 w-full min-w-0 flex-col gap-3 overflow-hidden border p-4 shadow-lg",children:[o.jsxs("div",{className:"flex shrink-0 items-center justify-between gap-3",children:[o.jsx(ve,{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(Xs,{className:Y("h-4 w-4 transition-transform",l&&"-rotate-90")})})]}),!l&&o.jsx("div",{ref:f,"data-testid":"workflow-timeline-list",className:"flex min-h-0 flex-col gap-2 overflow-y-auto",children:p.map((m,v)=>o.jsx(N0s,{row:m,index:v,isSelected:t===m.stepId,isHovered:n===m.stepId,onSelectStep:r,onHoverStep:s,onOpenInput:y=>d({type:"input",stepId:y.stepId,data:Itt(y.step.input)}),onOpenOutput:y=>d({type:"output",stepId:y.stepId,data:Itt(y.step.output)})},`timeline-item-${m.stepId}-${v}`))})]})}),o.jsx(gr,{open:!!u,onOpenChange:m=>!m&&d(null),children:u&&o.jsx(oCt,{data:u.data,title:`${pHt(u.stepId)} ${u.type==="input"?"input":"output"}`})})]})}const A0s=({workflowId:e,workflow:t,isLoading:n})=>{const{stepDetail:r}=RW();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(f5t,{workflowId:e,workflow:t,isLoading:n}),o.jsx(b0s,{}),o.jsx(I0s,{})]})}),r&&o.jsx("div",{className:"border-border1 min-h-0 w-[420px] overflow-hidden border-l",children:o.jsx(h0s,{})})]})},Att=()=>{const{workflowId:e}=hr(),{data:t,isLoading:n,error:r}=h4(e);return r&&vs(r)?o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Fs,{})}):r&&ys(r)?o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Es,{resource:"workflows"})}):o.jsx(i_e,{children:o.jsx(A0s,{workflowId:e,workflow:t??void 0,isLoading:n})})};function R0s(e,t){if(e==null)return{};var n,r,s=dkt(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 i0e(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 P0s(e){if(Array.isArray(e))return i0e(e)}function $0s(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function M0s(e,t){if(e){if(typeof e=="string")return i0e(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)?i0e(e,t):void 0}}function D0s(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
|
|
646
646
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function o0e(e){return P0s(e)||$0s(e)||M0s(e)||D0s()}function KD(e){"@babel/helpers - typeof";return KD=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},KD(e)}function L0s(e,t){if(KD(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(KD(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function F0s(e){var t=L0s(e,"string");return KD(t)=="symbol"?t:t+""}function hHt(e,t,n){return(t=F0s(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Rtt(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 FT(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?Rtt(Object(n),!0).forEach(function(r){hHt(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Rtt(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function z0s(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 roe={};function B0s(e){if(e.length===0||e.length===1)return e;var t=e.join(".");return roe[t]||(roe[t]=z0s(e)),roe[t]}function U0s(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=B0s(r);return s.reduce(function(a,i){return FT(FT({},a),n[i])},t)}function Ptt(e){return e.join(" ")}function q0s(e,t){var n=0;return function(r){return n+=1,r.map(function(s,a){return mHt({node:s,stylesheet:e,useInlineStyles:t,key:"code-segment-".concat(n,"-").concat(a)})})}}function mHt(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=q0s(n,a),p;if(!a)p=FT(FT({},l),{},{className:Ptt(l.className)});else{var h=Object.keys(n).reduce(function(b,x){return x.split(".").forEach(function(S){b.includes(S)||b.push(S)}),b},[]),m=l.className&&l.className.includes("token")?["token"]:[],v=l.className&&m.concat(l.className.filter(function(b){return!h.includes(b)}));p=FT(FT({},l),{},{className:Ptt(v)||void 0,style:U0s(l.className,Object.assign({},l.style,s),n)})}var y=f(t.children);return Fe.createElement(u,XO({key:i},p),y)}}const V0s=(function(e,t){var n=e.listLanguages();return n.indexOf(t)!==-1});var H0s=["language","children","style","customStyle","codeTagProps","useInlineStyles","showLineNumbers","showInlineLineNumbers","startingLineNumber","lineNumberContainerStyle","lineNumberStyle","wrapLines","wrapLongLines","lineProps","renderer","PreTag","CodeTag","code","astGenerator"];function $tt(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 Fw(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?$tt(Object(n),!0).forEach(function(r){hHt(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):$tt(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}var W0s=/\n/g;function Z0s(e){return e.match(W0s)}function G0s(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,`
|
|
647
647
|
`))})}function Q0s(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)},G0s({lines:t.replace(/\n$/,"").split(`
|
|
648
648
|
`),style:i,startingLineNumber:l}))}function Y0s(e){return"".concat(e.toString().length,".25em")}function gHt(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 vHt(e,t,n){var r={display:"inline-block",minWidth:Y0s(n),paddingRight:"1em",textAlign:"right",userSelect:"none"},s=typeof e=="function"?e(t):e,a=Fw(Fw({},r),s);return a}function D9(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?Fw({},typeof l=="function"?l(n):l):{};if(m.className=m.className?[].concat(o0e(m.className.trim().split(/\s+/)),o0e(u)):u,n&&a){var v=vHt(r,n,s);t.unshift(gHt(n,v))}return f&d&&(m.style=Fw({display:"flex"},m.style)),{type:"element",tagName:"span",properties:m,children:t}}function yHt(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(D9({children:[s],className:o0e(new Set(t))}));else if(s.children){var a=t.concat(s.properties.className);yHt(s.children,a).forEach(function(i){return n.push(i)})}}return n}function K0s(e,t,n,r,s,a,i,l,c){var u,d=yHt(e.value),f=[],p=-1,h=0;function m(_,C){var T=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[];return D9({children:_,lineNumber:C,lineNumberStyle:l,largestLineNumber:i,showInlineLineNumbers:s,lineProps:n,className:T,showLineNumbers:r,wrapLongLines:c,wrapLines:t})}function v(_,C){if(r&&C&&s){var T=vHt(l,C,i);_.unshift(gHt(C,T))}return _}function y(_,C){var T=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[];return t||T.length>0?m(_,C,T):v(_,C)}for(var b=function(){var C=d[h],T=C.children[0].value,E=Z0s(T);if(E){var N=T.split(`
|