@mastra/deployer-cloud 1.55.0-alpha.2 → 1.55.0-alpha.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -0
- package/dist/studio/assets/{core-Dfgl0E7t.js → core-CvByqZyL.js} +1 -1
- package/dist/studio/assets/{index-D_X2t6Tb.js → index-OTo1hBv5.js} +2 -2
- package/dist/studio/assets/{main-BBEpIQZw.js → main-BxDGm4nt.js} +3 -3
- package/dist/studio/index.html +1 -1
- package/package.json +4 -4
|
@@ -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-CvByqZyL.js","./engine-compile-BkERmzkH.js","./preload-helper-PPVm8Dsz.js","./engine-javascript-CSIo_1eZ.js"])))=>i.map(i=>d[i]);
|
|
2
2
|
import{_ as mo}from"./preload-helper-PPVm8Dsz.js";function dqt(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 cT=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Fl(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var gK={exports:{}},UA={};var O2e;function fqt(){if(O2e)return UA;O2e=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 UA.Fragment=t,UA.jsx=n,UA.jsxs=n,UA}var _2e;function pqt(){return _2e||(_2e=1,gK.exports=fqt()),gK.exports}var o=pqt(),vK={exports:{}},qr={},C2e;function hqt(){if(C2e)return qr;C2e=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(V){return V===null||typeof V!="object"?null:(V=h&&V[h]||V["@@iterator"],typeof V=="function"?V:null)}var g={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},y=Object.assign,b={};function x(V,$,U){this.props=V,this.context=$,this.refs=b,this.updater=U||g}x.prototype.isReactComponent={},x.prototype.setState=function(V,$){if(typeof V!="object"&&typeof V!="function"&&V!=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,V,$,"setState")},x.prototype.forceUpdate=function(V){this.updater.enqueueForceUpdate(this,V,"forceUpdate")};function S(){}S.prototype=x.prototype;function k(V,$,U){this.props=V,this.context=$,this.refs=b,this.updater=U||g}var _=k.prototype=new S;_.constructor=k,y(_,x.prototype),_.isPureReactComponent=!0;var C=Array.isArray;function E(){}var j={H:null,A:null,T:null,S:null},N=Object.prototype.hasOwnProperty;function I(V,$,U){var Z=U.ref;return{$$typeof:t,type:V,key:$,ref:Z!==void 0?Z:null,props:U}}function A(V,$){return I(V.type,$,V.props)}function R(V){return typeof V=="object"&&V!==null&&V.$$typeof===t}function L(V){var $={"=":"=0",":":"=2"};return"$"+V.replace(/[=:]/g,function(U){return $[U]})}var D=/\/+/g;function B(V,$){return typeof V=="object"&&V!==null&&V.key!=null?L(""+V.key):$.toString(36)}function H(V){switch(V.status){case"fulfilled":return V.value;case"rejected":throw V.reason;default:switch(typeof V.status=="string"?V.then(E,E):(V.status="pending",V.then(function($){V.status==="pending"&&(V.status="fulfilled",V.value=$)},function($){V.status==="pending"&&(V.status="rejected",V.reason=$)})),V.status){case"fulfilled":return V.value;case"rejected":throw V.reason}}throw V}function F(V,$,U,Z,K){var ee=typeof V;(ee==="undefined"||ee==="boolean")&&(V=null);var te=!1;if(V===null)te=!0;else switch(ee){case"bigint":case"string":case"number":te=!0;break;case"object":switch(V.$$typeof){case t:case n:te=!0;break;case f:return te=V._init,F(te(V._payload),$,U,Z,K)}}if(te)return K=K(V),te=Z===""?"."+B(V,0):Z,C(K)?(U="",te!=null&&(U=te.replace(D,"$&/")+"/"),F(K,$,U,"",function(de){return de})):K!=null&&(R(K)&&(K=A(K,U+(K.key==null||V&&V.key===K.key?"":(""+K.key).replace(D,"$&/")+"/")+te)),$.push(K)),1;te=0;var J=Z===""?".":Z+":";if(C(V))for(var ae=0;ae<V.length;ae++)Z=V[ae],ee=J+B(Z,ae),te+=F(Z,$,U,ee,K);else if(ae=m(V),typeof ae=="function")for(V=ae.call(V),ae=0;!(Z=V.next()).done;)Z=Z.value,ee=J+B(Z,ae++),te+=F(Z,$,U,ee,K);else if(ee==="object"){if(typeof V.then=="function")return F(H(V),$,U,Z,K);throw $=String(V),Error("Objects are not valid as a React child (found: "+($==="[object Object]"?"object with keys {"+Object.keys(V).join(", ")+"}":$)+"). If you meant to render a collection of children, use an array instead.")}return te}function z(V,$,U){if(V==null)return V;var Z=[],K=0;return F(V,Z,"","",function(ee){return $.call(U,ee,K++)}),Z}function q(V){if(V._status===-1){var $=V._result;$=$(),$.then(function(U){(V._status===0||V._status===-1)&&(V._status=1,V._result=U)},function(U){(V._status===0||V._status===-1)&&(V._status=2,V._result=U)}),V._status===-1&&(V._status=0,V._result=$)}if(V._status===1)return V._result.default;throw V._result}var M=typeof reportError=="function"?reportError:function(V){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var $=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof V=="object"&&V!==null&&typeof V.message=="string"?String(V.message):String(V),error:V});if(!window.dispatchEvent($))return}else if(typeof e=="object"&&typeof e.emit=="function"){e.emit("uncaughtException",V);return}console.error(V)},G={map:z,forEach:function(V,$,U){z(V,function(){$.apply(this,arguments)},U)},count:function(V){var $=0;return z(V,function(){$++}),$},toArray:function(V){return z(V,function($){return $})||[]},only:function(V){if(!R(V))throw Error("React.Children.only expected to receive a single React element child.");return V}};return qr.Activity=p,qr.Children=G,qr.Component=x,qr.Fragment=r,qr.Profiler=a,qr.PureComponent=k,qr.StrictMode=s,qr.Suspense=u,qr.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=j,qr.__COMPILER_RUNTIME={__proto__:null,c:function(V){return j.H.useMemoCache(V)}},qr.cache=function(V){return function(){return V.apply(null,arguments)}},qr.cacheSignal=function(){return null},qr.cloneElement=function(V,$,U){if(V==null)throw Error("The argument must be a React element, but you passed "+V+".");var Z=y({},V.props),K=V.key;if($!=null)for(ee in $.key!==void 0&&(K=""+$.key),$)!N.call($,ee)||ee==="key"||ee==="__self"||ee==="__source"||ee==="ref"&&$.ref===void 0||(Z[ee]=$[ee]);var ee=arguments.length-2;if(ee===1)Z.children=U;else if(1<ee){for(var te=Array(ee),J=0;J<ee;J++)te[J]=arguments[J+2];Z.children=te}return I(V.type,K,Z)},qr.createContext=function(V){return V={$$typeof:l,_currentValue:V,_currentValue2:V,_threadCount:0,Provider:null,Consumer:null},V.Provider=V,V.Consumer={$$typeof:i,_context:V},V},qr.createElement=function(V,$,U){var Z,K={},ee=null;if($!=null)for(Z in $.key!==void 0&&(ee=""+$.key),$)N.call($,Z)&&Z!=="key"&&Z!=="__self"&&Z!=="__source"&&(K[Z]=$[Z]);var te=arguments.length-2;if(te===1)K.children=U;else if(1<te){for(var J=Array(te),ae=0;ae<te;ae++)J[ae]=arguments[ae+2];K.children=J}if(V&&V.defaultProps)for(Z in te=V.defaultProps,te)K[Z]===void 0&&(K[Z]=te[Z]);return I(V,ee,K)},qr.createRef=function(){return{current:null}},qr.forwardRef=function(V){return{$$typeof:c,render:V}},qr.isValidElement=R,qr.lazy=function(V){return{$$typeof:f,_payload:{_status:-1,_result:V},_init:q}},qr.memo=function(V,$){return{$$typeof:d,type:V,compare:$===void 0?null:$}},qr.startTransition=function(V){var $=j.T,U={};j.T=U;try{var Z=V(),K=j.S;K!==null&&K(U,Z),typeof Z=="object"&&Z!==null&&typeof Z.then=="function"&&Z.then(E,M)}catch(ee){M(ee)}finally{$!==null&&U.types!==null&&($.types=U.types),j.T=$}},qr.unstable_useCacheRefresh=function(){return j.H.useCacheRefresh()},qr.use=function(V){return j.H.use(V)},qr.useActionState=function(V,$,U){return j.H.useActionState(V,$,U)},qr.useCallback=function(V,$){return j.H.useCallback(V,$)},qr.useContext=function(V){return j.H.useContext(V)},qr.useDebugValue=function(){},qr.useDeferredValue=function(V,$){return j.H.useDeferredValue(V,$)},qr.useEffect=function(V,$){return j.H.useEffect(V,$)},qr.useEffectEvent=function(V){return j.H.useEffectEvent(V)},qr.useId=function(){return j.H.useId()},qr.useImperativeHandle=function(V,$,U){return j.H.useImperativeHandle(V,$,U)},qr.useInsertionEffect=function(V,$){return j.H.useInsertionEffect(V,$)},qr.useLayoutEffect=function(V,$){return j.H.useLayoutEffect(V,$)},qr.useMemo=function(V,$){return j.H.useMemo(V,$)},qr.useOptimistic=function(V,$){return j.H.useOptimistic(V,$)},qr.useReducer=function(V,$,U){return j.H.useReducer(V,$,U)},qr.useRef=function(V){return j.H.useRef(V)},qr.useState=function(V){return j.H.useState(V)},qr.useSyncExternalStore=function(V,$,U){return j.H.useSyncExternalStore(V,$,U)},qr.useTransition=function(){return j.H.useTransition()},qr.version="19.2.7",qr}var E2e;function LN(){return E2e||(E2e=1,vK.exports=hqt()),vK.exports}var v=LN();const Fe=Fl(v),v_=dqt({__proto__:null,default:Fe},[v]);var yK={exports:{}},VA={},bK={exports:{}},xK={};var j2e;function mqt(){return j2e||(j2e=1,(function(e){function t(H,F){var z=H.length;H.push(F);e:for(;0<z;){var q=z-1>>>1,M=H[q];if(0<s(M,F))H[q]=F,H[z]=M,z=q;else break e}}function n(H){return H.length===0?null:H[0]}function r(H){if(H.length===0)return null;var F=H[0],z=H.pop();if(z!==F){H[0]=z;e:for(var q=0,M=H.length,G=M>>>1;q<G;){var V=2*(q+1)-1,$=H[V],U=V+1,Z=H[U];if(0>s($,z))U<M&&0>s(Z,$)?(H[q]=Z,H[U]=z,q=U):(H[q]=$,H[V]=z,q=V);else if(U<M&&0>s(Z,z))H[q]=Z,H[U]=z,q=U;else break e}}return F}function s(H,F){var z=H.sortIndex-F.sortIndex;return z!==0?z:H.id-F.id}if(e.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var a=performance;e.unstable_now=function(){return a.now()}}else{var i=Date,l=i.now();e.unstable_now=function(){return i.now()-l}}var c=[],u=[],d=1,f=null,p=3,h=!1,m=!1,g=!1,y=!1,b=typeof setTimeout=="function"?setTimeout:null,x=typeof clearTimeout=="function"?clearTimeout:null,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(g=!1,k(H),!m)if(n(c)!==null)m=!0,C||(C=!0,R());else{var F=n(u);F!==null&&B(_,F.startTime-H)}}var C=!1,E=-1,j=5,N=-1;function I(){return y?!0:!(e.unstable_now()-N<j)}function A(){if(y=!1,C){var H=e.unstable_now();N=H;var F=!0;try{e:{m=!1,g&&(g=!1,x(E),E=-1),h=!0;var z=p;try{t:{for(k(H),f=n(c);f!==null&&!(f.expirationTime>H&&I());){var q=f.callback;if(typeof q=="function"){f.callback=null,p=f.priorityLevel;var M=q(f.expirationTime<=H);if(H=e.unstable_now(),typeof M=="function"){f.callback=M,k(H),F=!0;break t}f===n(c)&&r(c),k(H)}else r(c);f=n(c)}if(f!==null)F=!0;else{var G=n(u);G!==null&&B(_,G.startTime-H),F=!1}}break e}finally{f=null,p=z,h=!1}F=void 0}}finally{F?R():C=!1}}}var R;if(typeof S=="function")R=function(){S(A)};else if(typeof MessageChannel<"u"){var L=new MessageChannel,D=L.port2;L.port1.onmessage=A,R=function(){D.postMessage(null)}}else R=function(){b(A,0)};function B(H,F){E=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"):j=0<H?Math.floor(1e3/H):5},e.unstable_getCurrentPriorityLevel=function(){return p},e.unstable_next=function(H){switch(p){case 1:case 2:case 3:var F=3;break;default:F=p}var z=p;p=F;try{return H()}finally{p=z}},e.unstable_requestPaint=function(){y=!0},e.unstable_runWithPriority=function(H,F){switch(H){case 1:case 2:case 3:case 4:case 5:break;default:H=3}var z=p;p=H;try{return F()}finally{p=z}},e.unstable_scheduleCallback=function(H,F,z){var q=e.unstable_now();switch(typeof z=="object"&&z!==null?(z=z.delay,z=typeof z=="number"&&0<z?q+z:q):z=q,H){case 1:var M=-1;break;case 2:M=250;break;case 5:M=1073741823;break;case 4:M=1e4;break;default:M=5e3}return M=z+M,H={id:d++,callback:F,priorityLevel:H,startTime:z,expirationTime:M,sortIndex:-1},z>q?(H.sortIndex=z,t(u,H),n(c)===null&&H===n(u)&&(g?(x(E),E=-1):g=!0,B(_,z-q))):(H.sortIndex=M,t(c,H),m||h||(m=!0,C||(C=!0,R()))),H},e.unstable_shouldYield=I,e.unstable_wrapCallback=function(H){var F=p;return function(){var z=p;p=F;try{return H.apply(this,arguments)}finally{p=z}}}})(xK)),xK}var T2e;function gqt(){return T2e||(T2e=1,bK.exports=mqt()),bK.exports}var wK={exports:{}},vu={};var N2e;function vqt(){if(N2e)return vu;N2e=1;var e=LN();function t(c){var u="https://react.dev/errors/"+c;if(1<arguments.length){u+="?args[]="+encodeURIComponent(arguments[1]);for(var d=2;d<arguments.length;d++)u+="&args[]="+encodeURIComponent(arguments[d])}return"Minified React error #"+c+"; visit "+u+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function n(){}var r={d:{f:n,r:function(){throw Error(t(522))},D:n,C:n,L:n,m:n,X:n,S:n,M:n},p:0,findDOMNode:null},s=Symbol.for("react.portal");function a(c,u,d){var f=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:s,key:f==null?null:""+f,children:c,containerInfo:u,implementation:d}}var i=e.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function l(c,u){if(c==="font")return"";if(typeof u=="string")return u==="use-credentials"?u:""}return vu.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=r,vu.createPortal=function(c,u){var d=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!u||u.nodeType!==1&&u.nodeType!==9&&u.nodeType!==11)throw Error(t(299));return a(c,u,null,d)},vu.flushSync=function(c){var u=i.T,d=r.p;try{if(i.T=null,r.p=2,c)return c()}finally{i.T=u,r.p=d,r.d.f()}},vu.preconnect=function(c,u){typeof c=="string"&&(u?(u=u.crossOrigin,u=typeof u=="string"?u==="use-credentials"?u:"":void 0):u=null,r.d.C(c,u))},vu.prefetchDNS=function(c){typeof c=="string"&&r.d.D(c)},vu.preinit=function(c,u){if(typeof c=="string"&&u&&typeof u.as=="string"){var d=u.as,f=l(d,u.crossOrigin),p=typeof u.integrity=="string"?u.integrity:void 0,h=typeof u.fetchPriority=="string"?u.fetchPriority:void 0;d==="style"?r.d.S(c,typeof u.precedence=="string"?u.precedence:void 0,{crossOrigin:f,integrity:p,fetchPriority:h}):d==="script"&&r.d.X(c,{crossOrigin:f,integrity:p,fetchPriority:h,nonce:typeof u.nonce=="string"?u.nonce:void 0})}},vu.preinitModule=function(c,u){if(typeof c=="string")if(typeof u=="object"&&u!==null){if(u.as==null||u.as==="script"){var d=l(u.as,u.crossOrigin);r.d.M(c,{crossOrigin:d,integrity:typeof u.integrity=="string"?u.integrity:void 0,nonce:typeof u.nonce=="string"?u.nonce:void 0})}}else u==null&&r.d.M(c)},vu.preload=function(c,u){if(typeof c=="string"&&typeof u=="object"&&u!==null&&typeof u.as=="string"){var d=u.as,f=l(d,u.crossOrigin);r.d.L(c,d,{crossOrigin:f,integrity:typeof u.integrity=="string"?u.integrity:void 0,nonce:typeof u.nonce=="string"?u.nonce:void 0,type:typeof u.type=="string"?u.type:void 0,fetchPriority:typeof u.fetchPriority=="string"?u.fetchPriority:void 0,referrerPolicy:typeof u.referrerPolicy=="string"?u.referrerPolicy:void 0,imageSrcSet:typeof u.imageSrcSet=="string"?u.imageSrcSet:void 0,imageSizes:typeof u.imageSizes=="string"?u.imageSizes:void 0,media:typeof u.media=="string"?u.media:void 0})}},vu.preloadModule=function(c,u){if(typeof c=="string")if(u){var d=l(u.as,u.crossOrigin);r.d.m(c,{as:typeof u.as=="string"&&u.as!=="script"?u.as:void 0,crossOrigin:d,integrity:typeof u.integrity=="string"?u.integrity:void 0})}else r.d.m(c)},vu.requestFormReset=function(c){r.d.r(c)},vu.unstable_batchedUpdates=function(c,u){return c(u)},vu.useFormState=function(c,u,d){return i.H.useFormState(c,u,d)},vu.useFormStatus=function(){return i.H.useHostTransitionStatus()},vu.version="19.2.7",vu}var I2e;function tit(){if(I2e)return wK.exports;I2e=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(),wK.exports=vqt(),wK.exports}var A2e;function yqt(){if(A2e)return VA;A2e=1;var e={env:{}};var t=gqt(),n=LN(),r=tit();function s(w){var O="https://react.dev/errors/"+w;if(1<arguments.length){O+="?args[]="+encodeURIComponent(arguments[1]);for(var T=2;T<arguments.length;T++)O+="&args[]="+encodeURIComponent(arguments[T])}return"Minified React error #"+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,T=w;if(w.alternate)for(;O.return;)O=O.return;else{w=O;do O=w,(O.flags&4098)!==0&&(T=O.return),w=O.return;while(w)}return O.tag===3?T: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 T=w,P=O;;){var W=T.return;if(W===null)break;var Q=W.alternate;if(Q===null){if(P=W.return,P!==null){T=P;continue}break}if(W.child===Q.child){for(Q=W.child;Q;){if(Q===T)return u(W),w;if(Q===P)return u(W),O;Q=Q.sibling}throw Error(s(188))}if(T.return!==P.return)T=W,P=Q;else{for(var ie=!1,Se=W.child;Se;){if(Se===T){ie=!0,T=W,P=Q;break}if(Se===P){ie=!0,P=W,T=Q;break}Se=Se.sibling}if(!ie){for(Se=Q.child;Se;){if(Se===T){ie=!0,T=Q,P=W;break}if(Se===P){ie=!0,P=Q,T=W;break}Se=Se.sibling}if(!ie)throw Error(s(189))}}if(T.alternate!==P)throw Error(s(190))}if(T.tag!==3)throw Error(s(188));return T.stateNode.current===T?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"),g=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"),E=Symbol.for("react.suspense_list"),j=Symbol.for("react.memo"),N=Symbol.for("react.lazy"),I=Symbol.for("react.activity"),A=Symbol.for("react.memo_cache_sentinel"),R=Symbol.iterator;function L(w){return w===null||typeof w!="object"?null:(w=R&&w[R]||w["@@iterator"],typeof w=="function"?w:null)}var D=Symbol.for("react.client.reference");function B(w){if(w==null)return null;if(typeof w=="function")return w.$$typeof===D?null:w.displayName||w.name||null;if(typeof w=="string")return w;switch(w){case y:return"Fragment";case x:return"Profiler";case b:return"StrictMode";case C:return"Suspense";case E:return"SuspenseList";case I:return"Activity"}if(typeof w=="object")switch(w.$$typeof){case g: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 j:return O=w.displayName||null,O!==null?O:B(w.type)||"Memo";case N:O=w._payload,w=w._init;try{return B(w(O))}catch{}}return null}var H=Array.isArray,F=n.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,z=r.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,q={pending:!1,data:null,method:null,action:null},M=[],G=-1;function V(w){return{current:w}}function $(w){0>G||(w.current=M[G],M[G]=null,G--)}function U(w,O){G++,M[G]=w.current,w.current=O}var Z=V(null),K=V(null),ee=V(null),te=V(null);function J(w,O){switch(U(ee,O),U(K,w),U(Z,null),O.nodeType){case 9:case 11:w=(w=O.documentElement)&&(w=w.namespaceURI)?ZPe(w):0;break;default:if(w=O.tagName,O=O.namespaceURI)O=ZPe(O),w=GPe(O,w);else switch(w){case"svg":w=1;break;case"math":w=2;break;default:w=0}}$(Z),U(Z,w)}function ae(){$(Z),$(K),$(ee)}function de(w){w.memoizedState!==null&&U(te,w);var O=Z.current,T=GPe(O,w.type);O!==T&&(U(K,w),U(Z,T))}function Y(w){K.current===w&&($(Z),$(K)),te.current===w&&($(te),LA._currentValue=q)}var ne,fe;function he(w){if(ne===void 0)try{throw Error()}catch(T){var O=T.stack.trim().match(/\n( *(at )?)/);ne=O&&O[1]||"",fe=-1<T.stack.indexOf(`
|
|
3
3
|
at`)?" (<anonymous>)":-1<T.stack.indexOf("@")?"@unknown:0:0":""}return`
|
|
4
4
|
`+ne+w+fe}var le=!1;function ue(w,O){if(!w||le)return"";le=!0;var T=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var P={DetermineComponentFrameRoot:function(){try{if(O){var jt=function(){throw Error()};if(Object.defineProperty(jt.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(jt,[])}catch(ft){var ot=ft}Reflect.construct(w,[],jt)}else{try{jt.call()}catch(ft){ot=ft}w.call(jt.prototype)}}else{try{throw Error()}catch(ft){ot=ft}(jt=w())&&typeof jt.catch=="function"&&jt.catch(function(){})}}catch(ft){if(ft&&ot&&typeof ft.stack=="string")return[ft.stack,ot.stack]}return[null,null]}};P.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var W=Object.getOwnPropertyDescriptor(P.DetermineComponentFrameRoot,"name");W&&W.configurable&&Object.defineProperty(P.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var Q=P.DetermineComponentFrameRoot(),ie=Q[0],Se=Q[1];if(ie&&Se){var Be=ie.split(`
|
|
@@ -334,7 +334,7 @@ attempted value: ${i}
|
|
|
334
334
|
\${}
|
|
335
335
|
}
|
|
336
336
|
}`,{label:"class",detail:"definition",type:"keyword"}),Xd('import {${names}} from "${module}"\n${}',{label:"import",detail:"named",type:"keyword"}),Xd('import ${name} from "${module}"\n${}',{label:"import",detail:"default",type:"keyword"})],Y0t=ESe.concat([Xd("interface ${name} {\n ${}\n}",{label:"interface",detail:"definition",type:"keyword"}),Xd("type ${name} = ${type}",{label:"type",detail:"definition",type:"keyword"}),Xd("enum ${name} {\n ${}\n}",{label:"enum",detail:"definition",type:"keyword"})]),nze=new ebt,K0t=new Set(["Script","Block","FunctionExpression","FunctionDeclaration","ArrowFunction","MethodDeclaration","ForStatement"]);function gR(e){return(t,n)=>{let r=t.node.getChild("VariableDefinition");return r&&n(r,e),!0}}const e7n=["FunctionDeclaration"],t7n={FunctionDeclaration:gR("function"),ClassDeclaration:gR("class"),ClassExpression:()=>!0,EnumDeclaration:gR("constant"),TypeAliasDeclaration:gR("type"),NamespaceDeclaration:gR("namespace"),VariableDefinition(e,t){e.matchContext(e7n)||t(e,"variable")},TypeDefinition(e,t){t(e,"type")},__proto__:null};function X0t(e,t){let n=nze.get(t);if(n)return n;let r=[],s=!0;function a(i,l){let c=e.sliceString(i.from,i.to);r.push({label:c,type:l})}return t.cursor(La.IncludeAnonymous).iterate(i=>{if(s)s=!1;else if(i.name){let l=t7n[i.name];if(l&&l(i,a)||K0t.has(i.name))return!1}else if(i.to-i.from>8192){for(let l of X0t(e,i.node))r.push(l);return!1}}),nze.set(t,r),r}const dB=/^[\w$\xa1-\uffff][\w$\d\xa1-\uffff]*$/,jSe=["TemplateString","String","RegExp","LineComment","BlockComment","VariableDefinition","TypeDefinition","Label","PropertyDefinition","PropertyName","PrivatePropertyDefinition","PrivatePropertyName","JSXText","JSXAttributeValue","JSXOpenTag","JSXCloseTag","JSXSelfClosingTag",".","?."];function J0t(e){let t=hi(e.state).resolveInner(e.pos,-1);if(jSe.indexOf(t.name)>-1)return null;let n=t.name=="VariableName"||t.to-t.from<20&&dB.test(e.state.sliceDoc(t.from,t.to));if(!n&&!e.explicit)return null;let r=[];for(let s=t;s;s=s.parent)K0t.has(s.name)&&(r=r.concat(X0t(e.state.doc,s)));return{options:r,from:n?t.from:e.pos,validFor:dB}}function HJ(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 ewt(e){let t=r=>e.state.doc.sliceString(r.from,r.to),n=hi(e.state).resolveInner(e.pos,-1);return n.name=="PropertyName"?HJ(t,n.parent,t(n)):(n.name=="."||n.name=="?.")&&n.parent.name=="MemberExpression"?HJ(t,n.parent,""):jSe.indexOf(n.name)>-1?null:n.name=="VariableName"||n.to-n.from<20&&dB.test(t(n))?{path:[],name:t(n)}:n.name=="MemberExpression"?HJ(t,n,""):e.explicit?{path:[],name:""}:null}function n7n(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 r7n(e){let t=new Map;return n=>{let r=ewt(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=n7n(s,!r.path.length)),{from:n.pos-r.name.length,options:a,validFor:dB}}}const Qh=MO.define({name:"javascript",parser:J9n.configure({props:[H_.add({IfStatement:Vj({except:/^\s*({|else\b)/}),TryStatement:Vj({except:/^\s*({|catch\b|finally\b)/}),LabeledStatement:K6n,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:Y6n({closing:"}"}),ArrowFunction:e=>e.baseIndent+e.unit,"TemplateString BlockComment":()=>null,"Statement Property":Vj({except:/^\s*{/}),JSXElement(e){let t=/^\s*<\//.test(e.textAfter);return e.lineIndent(e.node.from)+(t?0:e.unit)},JSXEscape(e){let t=/\s*\}/.test(e.textAfter);return e.lineIndent(e.node.from)+(t?0:e.unit)},"JSXOpenTag JSXSelfClosingTag"(e){return e.column(e.node.from)+e.unit}}),W_.add({"Block ClassBody SwitchBody EnumBody ObjectExpression ArrayExpression ObjectType":oSe,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:"$"}}),twt={test:e=>/^JSX/.test(e.name),facet:wH({commentTokens:{block:{open:"{/*",close:"*/}"}}})},TSe=Qh.configure({dialect:"ts"},"typescript"),NSe=Qh.configure({dialect:"jsx",props:[sSe.add(e=>e.isTop?[twt]:void 0)]}),ISe=Qh.configure({dialect:"jsx ts",props:[sSe.add(e=>e.isTop?[twt]:void 0)]},"typescript");let nwt=e=>({label:e,type:"keyword"});const rwt="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(nwt),s7n=rwt.concat(["declare","implements","private","protected","public"].map(nwt));function fB(e={}){let t=e.jsx?e.typescript?ISe:NSe:e.typescript?TSe:Qh,n=e.typescript?Y0t.concat(s7n):ESe.concat(rwt);return new LO(t,[Qh.data.of({autocomplete:MFn(jSe,t0t(n))}),Qh.data.of({autocomplete:J0t}),e.jsx?swt:[]])}function a7n(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 rze(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 i7n=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent),swt=Nt.inputHandler.of((e,t,n,r,s)=>{if((i7n?e.composing:e.compositionStarted)||e.state.readOnly||t!=n||r!=">"&&r!="/"||!Qh.isActiveAt(e.state,t,-1))return!1;let a=s(),{state:i}=a,l=i.changeByRange(c=>{var u;let{head:d}=c,f=hi(i).resolveInner(d-1,-1),p;if(f.name=="JSXStartTag"&&(f=f.parent),!(i.doc.sliceString(d-1,d)!=r||f.name=="JSXAttributeValue"&&f.to>d)){if(r==">"&&f.name=="JSXFragmentTag")return{range:c,changes:{from:d,insert:"</>"}};if(r=="/"&&f.name=="JSXStartCloseTag"){let h=f.parent,m=h.parent;if(m&&h.from==d-2&&((p=rze(i.doc,m.firstChild,d))||((u=m.firstChild)===null||u===void 0?void 0:u.name)=="JSXFragmentTag")){let g=`${p}>`;return{range:vt.cursor(d+g.length,-1),changes:{from:d,insert:g}}}}else if(r==">"){let h=a7n(f);if(h&&h.name=="JSXOpenTag"&&!/^\/?>|^<\//.test(i.doc.sliceString(d,d+2))&&(p=rze(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 o7n(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 Qh.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(l7n(u,r.doc,c))}return s}}function sze(e,t,n,r){return n.line(e+r.line).from+t+(e==1?r.col-1:-1)}function l7n(e,t,n){let r=sze(e.line,e.column,t,n),s={from:r,to:e.endLine!=null&&e.endColumn!=1?sze(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 G6=Object.freeze(Object.defineProperty({__proto__:null,autoCloseTags:swt,completionPath:ewt,esLint:o7n,javascript:fB,javascriptLanguage:Qh,jsxLanguage:NSe,localCompletionSource:J0t,scopeCompletionSource:r7n,snippets:ESe,tsxLanguage:ISe,typescriptLanguage:TSe,typescriptSnippets:Y0t},Symbol.toStringTag,{value:"Module"})),vR=["_blank","_self","_top","_parent"],WJ=["ascii","utf-8","utf-16","latin1","latin1"],ZJ=["get","post","put","delete"],GJ=["application/x-www-form-urlencoded","multipart/form-data","text/plain"],tp=["true","false"],er={},c7n={a:{attrs:{href:null,ping:null,type:null,media:null,target:vR,hreflang:null}},abbr:er,address:er,area:{attrs:{alt:null,coords:null,href:null,target:null,ping:null,media:null,hreflang:null,type:null,shape:["default","rect","circle","poly"]}},article:er,aside:er,audio:{attrs:{src:null,mediagroup:null,crossorigin:["anonymous","use-credentials"],preload:["none","metadata","auto"],autoplay:["autoplay"],loop:["loop"],controls:["controls"]}},b:er,base:{attrs:{href:null,target:vR}},bdi:er,bdo:er,blockquote:{attrs:{cite:null}},body:er,br:er,button:{attrs:{form:null,formaction:null,name:null,value:null,autofocus:["autofocus"],disabled:["autofocus"],formenctype:GJ,formmethod:ZJ,formnovalidate:["novalidate"],formtarget:vR,type:["submit","reset","button"]}},canvas:{attrs:{width:null,height:null}},caption:er,center:er,cite:er,code:er,col:{attrs:{span:null}},colgroup:{attrs:{span:null}},command:{attrs:{type:["command","checkbox","radio"],label:null,icon:null,radiogroup:null,command:null,title:null,disabled:["disabled"],checked:["checked"]}},data:{attrs:{value:null}},datagrid:{attrs:{disabled:["disabled"],multiple:["multiple"]}},datalist:{attrs:{data:null}},dd:er,del:{attrs:{cite:null,datetime:null}},details:{attrs:{open:["open"]}},dfn:er,div:er,dl:er,dt:er,em:er,embed:{attrs:{src:null,type:null,width:null,height:null}},eventsource:{attrs:{src:null}},fieldset:{attrs:{disabled:["disabled"],form:null,name:null}},figcaption:er,figure:er,footer:er,form:{attrs:{action:null,name:null,"accept-charset":WJ,autocomplete:["on","off"],enctype:GJ,method:ZJ,novalidate:["novalidate"],target:vR}},h1:er,h2:er,h3:er,h4:er,h5:er,h6:er,head:{children:["title","base","link","style","meta","script","noscript","command"]},header:er,hgroup:er,hr:er,html:{attrs:{manifest:null}},i:er,iframe:{attrs:{src:null,srcdoc:null,name:null,width:null,height:null,sandbox:["allow-top-navigation","allow-same-origin","allow-forms","allow-scripts"],seamless:["seamless"]}},img:{attrs:{alt:null,src:null,ismap:null,usemap:null,width:null,height:null,crossorigin:["anonymous","use-credentials"]}},input:{attrs:{alt:null,dirname:null,form:null,formaction:null,height:null,list:null,max:null,maxlength:null,min:null,name:null,pattern:null,placeholder:null,size:null,src:null,step:null,value:null,width:null,accept:["audio/*","video/*","image/*"],autocomplete:["on","off"],autofocus:["autofocus"],checked:["checked"],disabled:["disabled"],formenctype:GJ,formmethod:ZJ,formnovalidate:["novalidate"],formtarget:vR,multiple:["multiple"],readonly:["readonly"],required:["required"],type:["hidden","text","search","tel","url","email","password","datetime","date","month","week","time","datetime-local","number","range","color","checkbox","radio","file","submit","image","reset","button"]}},ins:{attrs:{cite:null,datetime:null}},kbd:er,keygen:{attrs:{challenge:null,form:null,name:null,autofocus:["autofocus"],disabled:["disabled"],keytype:["RSA"]}},label:{attrs:{for:null,form:null}},legend:er,li:{attrs:{value:null}},link:{attrs:{href:null,type:null,hreflang:null,media:null,sizes:["all","16x16","16x16 32x32","16x16 32x32 64x64"]}},map:{attrs:{name:null}},mark:er,menu:{attrs:{label:null,type:["list","context","toolbar"]}},meta:{attrs:{content:null,charset:WJ,name:["viewport","application-name","author","description","generator","keywords"],"http-equiv":["content-language","content-type","default-style","refresh"]}},meter:{attrs:{value:null,min:null,low:null,high:null,max:null,optimum:null}},nav:er,noscript:er,object:{attrs:{data:null,type:null,name:null,usemap:null,form:null,width:null,height:null,typemustmatch:["typemustmatch"]}},ol:{attrs:{reversed:["reversed"],start:null,type:["1","a","A","i","I"]},children:["li","script","template","ul","ol"]},optgroup:{attrs:{disabled:["disabled"],label:null}},option:{attrs:{disabled:["disabled"],label:null,selected:["selected"],value:null}},output:{attrs:{for:null,form:null,name:null}},p:er,param:{attrs:{name:null,value:null}},pre:er,progress:{attrs:{value:null,max:null}},q:{attrs:{cite:null}},rp:er,rt:er,ruby:er,samp:er,script:{attrs:{type:["text/javascript"],src:null,async:["async"],defer:["defer"],charset:WJ}},section:er,select:{attrs:{form:null,name:null,size:null,autofocus:["autofocus"],disabled:["disabled"],multiple:["multiple"]}},slot:{attrs:{name:null}},small:er,source:{attrs:{src:null,type:null,media:null}},span:er,strong:er,style:{attrs:{type:["text/css"],media:null,scoped:null}},sub:er,summary:er,sup:er,table:er,tbody:er,td:{attrs:{colspan:null,rowspan:null,headers:null}},template:er,textarea:{attrs:{dirname:null,form:null,maxlength:null,name:null,placeholder:null,rows:null,cols:null,autofocus:["autofocus"],disabled:["disabled"],readonly:["readonly"],required:["required"],wrap:["soft","hard"]}},tfoot:er,th:{attrs:{colspan:null,rowspan:null,headers:null,scope:["row","col","rowgroup","colgroup"]}},thead:er,time:{attrs:{datetime:null}},title:er,tr:er,track:{attrs:{src:null,label:null,default:null,kind:["subtitles","captions","descriptions","chapters","metadata"],srclang:null}},ul:{children:["li","script","template","ul","ol"]},var:er,video:{attrs:{src:null,poster:null,width:null,height:null,crossorigin:["anonymous","use-credentials"],preload:["auto","metadata","none"],autoplay:["autoplay"],mediagroup:["movie"],muted:["muted"],controls:["controls"]}},wbr:er},awt={accesskey:null,class:null,contenteditable:tp,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:tp,autocorrect:tp,autocapitalize:tp,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":tp,"aria-autocomplete":["inline","list","both","none"],"aria-busy":tp,"aria-checked":["true","false","mixed","undefined"],"aria-controls":null,"aria-describedby":null,"aria-disabled":tp,"aria-dropeffect":null,"aria-expanded":["true","false","undefined"],"aria-flowto":null,"aria-grabbed":["true","false","undefined"],"aria-haspopup":tp,"aria-hidden":tp,"aria-invalid":["true","false","grammar","spelling"],"aria-label":null,"aria-labelledby":null,"aria-level":null,"aria-live":["off","polite","assertive"],"aria-multiline":tp,"aria-multiselectable":tp,"aria-owns":null,"aria-posinset":null,"aria-pressed":["true","false","mixed","undefined"],"aria-readonly":tp,"aria-relevant":null,"aria-required":tp,"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},iwt="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 iwt)awt[e]=null;class bM{constructor(t,n){this.tags={...c7n,...t},this.globalAttrs={...awt,...n},this.allTags=Object.keys(this.tags),this.globalAttrNames=Object.keys(this.globalAttrs)}}bM.default=new bM;function zT(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 BT(e,t=!1){for(;e;e=e.parent)if(e.name=="Element")if(t)t=!1;else return e;return null}function owt(e,t,n){let r=n.tags[zT(e,BT(t))];return r?.children||n.allTags}function ASe(e,t){let n=[];for(let r=BT(t);r&&!r.type.isTop;r=BT(r.parent)){let s=zT(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 lwt=/^[:\-\.\w\u00b7-\uffff]*$/;function aze(e,t,n,r,s){let a=/\s*>/.test(e.sliceDoc(s,s+5))?"":">",i=BT(n,n.name=="StartTag"||n.name=="TagName");return{from:r,to:s,options:owt(e.doc,i,t).map(l=>({label:l,type:"type"})).concat(ASe(e.doc,n).map((l,c)=>({label:"/"+l,apply:"/"+l+a,type:"type",boost:99-c}))),validFor:/^\/?[:\-\.\w\u00b7-\uffff]*$/}}function ize(e,t,n,r){let s=/\s*>/.test(e.sliceDoc(r,r+5))?"":">";return{from:n,to:r,options:ASe(e.doc,t).map((a,i)=>({label:a,apply:a+s,type:"type",boost:99-i})),validFor:lwt}}function u7n(e,t,n,r){let s=[],a=0;for(let i of owt(e.doc,n,t))s.push({label:"<"+i,type:"type"});for(let i of ASe(e.doc,n))s.push({label:"</"+i+">",type:"type",boost:99-a++});return{from:r,to:r,options:s,validFor:/^<\/?[:\-\.\w\u00b7-\uffff]*$/}}function d7n(e,t,n,r,s){let a=BT(n),i=a?t.tags[zT(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:lwt}}function f7n(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=BT(n),p=f?t.tags[zT(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 cwt(e,t){let{state:n,pos:r}=t,s=hi(n).resolveInner(r,-1),a=s.resolve(r);for(let i=r,l;a==s&&(l=s.childBefore(i));){let c=l.lastChild;if(!c||!c.type.isError||c.from<c.to)break;a=s=l,i=c.from}return s.name=="TagName"?s.parent&&/CloseTag$/.test(s.parent.name)?ize(n,s,s.from,r):aze(n,e,s,s.from,r):s.name=="StartTag"||s.name=="IncompleteTag"?aze(n,e,s,r,r):s.name=="StartCloseTag"||s.name=="IncompleteCloseTag"?ize(n,s,r,r):s.name=="OpenTag"||s.name=="SelfClosingTag"||s.name=="AttributeName"?d7n(n,e,s,s.name=="AttributeName"?s.from:r,r):s.name=="Is"||s.name=="AttributeValue"||s.name=="UnquotedAttributeValue"?f7n(n,e,s,s.name=="Is"?r:s.from,r):t.explicit&&(a.name=="Element"||a.name=="Text"||a.name=="Document")?u7n(n,e,s,r):null}function p7n(e){return cwt(bM.default,e)}function h7n(e){let{extraTags:t,extraGlobalAttributes:n}=e,r=n||t?new bM(t,n):bM.default;return s=>cwt(r,s)}const m7n=Qh.parser.configure({top:"SingleExpression"}),uwt=[{tag:"script",attrs:e=>e.type=="text/typescript"||e.lang=="ts",parser:TSe.parser},{tag:"script",attrs:e=>e.type=="text/babel"||e.type=="text/jsx",parser:NSe.parser},{tag:"script",attrs:e=>e.type=="text/typescript-jsx",parser:ISe.parser},{tag:"script",attrs(e){return/^(importmap|speculationrules|application\/(.+\+)?json)$/i.test(e.type)},parser:m7n},{tag:"script",attrs(e){return!e.type||/^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^module$|^$/i.test(e.type)},parser:Qh.parser},{tag:"style",attrs(e){return(!e.lang||e.lang=="css")&&(!e.type||/^(text\/)?(x-)?(stylesheet|css)$/i.test(e.type))},parser:uB.parser}],dwt=[{name:"style",parser:uB.parser.configure({top:"Styles"})}].concat(iwt.map(e=>({name:e,parser:Qh.parser}))),fwt=MO.define({name:"html",parser:z8n.configure({props:[H_.add({Element(e){let t=/^(\s*)(<\/)?/.exec(e.textAfter);return e.node.to<=e.pos+t[0].length?e.continue():e.lineIndent(e.node.from)+(t[2]?0:e.unit)},"OpenTag CloseTag SelfClosingTag"(e){return e.column(e.node.from)+e.unit},Document(e){if(e.pos+/\s*/.exec(e.textAfter)[0].length<e.node.to)return e.continue();let t=null,n;for(let r=e.node;;){let s=r.lastChild;if(!s||s.name!="Element"||s.to!=r.to)break;t=r=s}return t&&!((n=t.lastChild)&&(n.name=="CloseTag"||n.name=="SelfClosingTag"))?e.lineIndent(t.from)+e.unit:null}}),W_.add({Element(e){let t=e.firstChild,n=e.lastChild;return!t||t.name!="OpenTag"?null:{from:t.to,to:n.name=="CloseTag"?n.from:e.to}}}),Gxt.add({"OpenTag CloseTag":e=>e.getChild("TagName")})]}),languageData:{commentTokens:{block:{open:"<!--",close:"-->"}},indentOnInput:/^\s*<\/\w+\W$/,wordChars:"-_"}}),j8=fwt.configure({wrap:V0t(uwt,dwt)});function g7n(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=V0t((e.nestedLanguages||[]).concat(uwt),(e.nestedAttributes||[]).concat(dwt)));let r=n?fwt.configure({wrap:n,dialect:t}):t?j8.configure({dialect:t}):j8;return new LO(r,[j8.data.of({autocomplete:h7n(e)}),e.autoCloseTags!==!1?v7n:[],fB().support,S9n().support])}const oze=new Set("area base br col command embed frame hr img input keygen link meta param source track wbr menuitem".split(" ")),v7n=Nt.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=hi(i).resolveInner(h,-1),g;if(p&&r==">"&&m.name=="EndTag"){let y=m.parent;if(((d=(u=y.parent)===null||u===void 0?void 0:u.lastChild)===null||d===void 0?void 0:d.name)!="CloseTag"&&(g=zT(i.doc,y.parent,h))&&!oze.has(g)){let b=h+(i.doc.sliceString(h,h+1)===">"?1:0),x=`</${g}>`;return{range:c,changes:{from:h,to:b,insert:x}}}}else if(p&&r=="/"&&m.name=="IncompleteCloseTag"){let y=m.parent;if(m.from==h-2&&((f=y.lastChild)===null||f===void 0?void 0:f.name)!="CloseTag"&&(g=zT(i.doc,y,h))&&!oze.has(g)){let b=h+(i.doc.sliceString(h,h+1)===">"?1:0),x=`${g}>`;return{range:vt.cursor(h+x.length,-1),changes:{from:h,to:b,insert:x}}}}return{range:c}});return l.changes.empty?!1:(e.dispatch([a,i.update(l,{userEvent:"input.complete",scrollIntoView:!0})]),!0)}),pwt=wH({commentTokens:{block:{open:"<!--",close:"-->"}}}),hwt=new Dr,mwt=Uzn.configure({props:[W_.add(e=>!e.is("Block")||e.is("Document")||qme(e)!=null||y7n(e)?void 0:(t,n)=>({from:n.doc.lineAt(t.from).to,to:t.to})),hwt.add(qme),H_.add({Document:()=>null}),ww.add({Document:pwt})]});function qme(e){let t=/^(?:ATX|Setext)Heading(\d)$/.exec(e.name);return t?+t[1]:void 0}function y7n(e){return e.name=="OrderedList"||e.name=="BulletList"}function b7n(e,t){let n=e;for(;;){let r=n.nextSibling,s;if(!r||(s=qme(r.type))!=null&&s<=t)break;n=r}return n.to}const x7n=Mxt.of((e,t,n)=>{for(let r=hi(e).resolveInner(n,-1);r&&!(r.from<t);r=r.parent){let s=r.type.prop(hwt);if(s==null)continue;let a=b7n(r,s);if(a>n)return{from:n,to:a}}return null});function RSe(e){return new _p(pwt,e,[],"markdown")}const gwt=RSe(mwt),w7n=mwt.configure([Jzn,t8n,e8n,n8n,{props:[W_.add({Table:(e,t)=>({from:t.doc.lineAt(e.from).to,to:e.to})})]}]),BO=RSe(w7n);function S7n(e,t){return n=>{if(n&&e){let r=null;if(n=/\S*/.exec(n)[0],typeof e=="function"?r=e(n):r=ng.matchLanguageName(e,n,!0),r instanceof ng)return r.support?r.support.language.parser:DO.getSkippingParser(r.load());if(r)return r.parser}return t?t.parser:null}}class QJ{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(+ywt(this.item,t)[2]+n):"";return this.spaceBefore+r+this.type+this.spaceAfter}}function vwt(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 QJ(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 QJ(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 QJ(a.parent,c,c+d,i[1],u,f,a))}}return r}function ywt(e,t){return/^(\s*)(\d+)(?=[.)])/.exec(t.sliceString(e.from,e.from+10))}function YJ(e,t,n,r=0){for(let s=-1,a=e;;){if(a.name=="ListItem"){let l=ywt(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 PSe(e,t){let n=/^[ \t]*/.exec(e)[0].length;if(!n||t.facet(oI)!=" ")return e;let r=Pg(e,4,n),s="";for(let a=r;a>0;)a>=4?(s+=" ",a-=4):(s+=" ",a--);return s+e.slice(n)}const bwt=(e={})=>({state:t,dispatch:n})=>{let r=hi(t),{doc:s}=t,a=null,i=t.changeByRange(l=>{if(!l.empty||!BO.isActiveAt(t,l.from,-1)&&!BO.isActiveAt(t,l.from,1))return a={range:l};let c=l.from,u=s.lineAt(c),d=vwt(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"&&YJ(f.item,s,C,-2),S&&S.node.name=="OrderedList"&&YJ(S.item,s,C),{range:vt.cursor(k+_.length),changes:C}}else{let S=cze(d,t,u);return{range:vt.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"&&YJ(f.item,s,h);let m=f.item&&f.item.from<u.from,g="";if(!m||/^[\s\d.)\-+*>]*/.exec(u.text)[0].length>=f.to)for(let b=0,x=d.length-1;b<=x;b++)g+=b==x&&!m?d[b].marker(s,1):d[b].blank(b<x?Pg(u.text,4,d[b+1].from)-g.length:null);let y=c;for(;y>u.from&&/\s/.test(u.text.charAt(y-u.from-1));)y--;return g=PSe(g,t),k7n(f.node,t.doc)&&(g=cze(d,t,u)+t.lineBreak+g),h.push({from:y,to:c,insert:t.lineBreak+g}),{range:vt.cursor(y+g.length+1),changes:h}});return a?!1:(n(t.update(i,{scrollIntoView:!0,userEvent:"input"})),!0)},xwt=bwt();function lze(e){return e.name=="QuoteMark"||e.name=="ListMark"}function k7n(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 cze(e,t,n){let r="";for(let s=0,a=e.length-2;s<=a;s++)r+=e[s].blank(s<a?Pg(n.text,4,e[s+1].from)-r.length:null,s<a);return PSe(r,t)}function O7n(e,t){let n=e.resolveInner(t,-1),r=t;lze(n)&&(r=n.from,n=n.parent);for(let s;s=n.childBefore(r);)if(lze(s))r=s.from;else if(s.name=="OrderedList"||s.name=="BulletList")n=s.lastChild,r=n.to;else break;return n}const wwt=({state:e,dispatch:t})=>{let n=hi(e),r=null,s=e.changeByRange(a=>{let i=a.from,{doc:l}=e;if(a.empty&&BO.isActiveAt(e,a.from)){let c=l.lineAt(i),u=vwt(O7n(n,i),l);if(u.length){let d=u[u.length-1],f=d.to-d.spaceAfter.length+(d.spaceAfter?1:0);if(i-c.from>f&&!/\S/.test(c.text.slice(f,i-c.from)))return{range:vt.cursor(c.from+f),changes:{from:c.from+f,to:i}};if(i-c.from==f&&(!d.item||c.from<=d.item.from||!/\S/.test(c.text.slice(0,d.to)))){let p=c.from+d.from;if(d.item&&d.node.from<d.item.from&&/\S/.test(c.text.slice(d.from,d.to))){let h=d.blank(Pg(c.text,4,d.to)-Pg(c.text,4,d.from));return p==c.from&&(h=PSe(h,e)),{range:vt.cursor(p+h.length),changes:{from:p,to:c.from+d.to,insert:h}}}if(p<i)return{range:vt.cursor(p),changes:{from:p,to:i}}}}}return r={range:a}});return r?!1:(t(e.update(s,{scrollIntoView:!0,userEvent:"delete"})),!0)},Swt=[{key:"Enter",run:xwt},{key:"Backspace",run:wwt}],kwt=g7n({matchClosingTags:!1});function $Se(e={}){let{codeLanguages:t,defaultCodeLanguage:n,addKeymap:r=!0,base:{parser:s}=gwt,completeHTMLTags:a=!0,pasteURLAsLink:i=!0,htmlTagLanguage:l=kwt}=e;if(!(s instanceof _H))throw new RangeError("Base parser provided to `markdown` should be a Markdown parser");let c=e.extensions?[e.extensions]:[],u=[l.support,x7n],d;i&&u.push(Owt),n instanceof LO?(u.push(n.support),d=n.language):n&&(d=n);let f=t||d?S7n(t,d):void 0;c.push(qzn({codeParser:f,htmlParser:l.language.parser})),r&&u.push(Xp.high(iI.of(Swt)));let p=RSe(s.configure(c));return a&&u.push(p.data.of({autocomplete:_7n})),new LO(p,u)}function _7n(e){let{state:t,pos:n}=e,r=/<[:\-\.\w\u00b7-\uffff]*$/.exec(t.sliceDoc(n-25,n));if(!r)return null;let s=hi(t).resolveInner(n,-1);for(;s&&!s.type.isTop;){if(s.name=="CodeBlock"||s.name=="FencedCode"||s.name=="ProcessingInstructionBlock"||s.name=="CommentBlock"||s.name=="Link"||s.name=="Image")return null;s=s.parent}return{from:n-r[0].length,to:n,options:C7n(),validFor:/^<[:\-\.\w\u00b7-\uffff]*$/}}let KJ=null;function C7n(){if(KJ)return KJ;let e=p7n(new dSe(cs.create({extensions:kwt}),0,!0));return KJ=e?e.options:[]}const E7n=/code|horizontalrule|html|link|comment|processing|escape|entity|image|mark|url/i,Owt=Nt.domEventHandlers({paste:(e,t)=>{var n;let{main:r}=t.state.selection;if(r.empty)return!1;let s=(n=e.clipboardData)===null||n===void 0?void 0:n.getData("text/plain");if(!s||!/^(https?:\/\/|mailto:|xmpp:|www\.)/.test(s)||(/^www\./.test(s)&&(s="https://"+s),!BO.isActiveAt(t.state,r.from,1)))return!1;let a=hi(t.state),i=!1;return a.iterate({from:r.from,to:r.to,enter:l=>{(l.from>r.from||E7n.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)}}),j7n=Object.freeze(Object.defineProperty({__proto__:null,commonmarkLanguage:gwt,deleteMarkupBackward:wwt,insertNewlineContinueMarkup:xwt,insertNewlineContinueMarkupCommand:bwt,markdown:$Se,markdownKeymap:Swt,markdownLanguage:BO,pasteURLAsLink:Owt},Symbol.toStringTag,{value:"Module"}));function UO(){return UO=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},UO.apply(null,arguments)}var T7n=e=>{var t=e.theme,n=e.settings,r=n===void 0?{}:n,s=e.styles,a=s===void 0?[]:s,i={".cm-gutters":{}},l={};r.background&&(l.backgroundColor=r.background),r.backgroundImage&&(l.backgroundImage=r.backgroundImage),r.foreground&&(l.color=r.foreground),r.fontSize&&(l.fontSize=r.fontSize),(r.background||r.foreground)&&(i["&"]=l),r.fontFamily&&(i["&.cm-editor .cm-scroller"]={fontFamily:r.fontFamily}),r.gutterBackground&&(i[".cm-gutters"].backgroundColor=r.gutterBackground),r.gutterForeground&&(i[".cm-gutters"].color=r.gutterForeground),r.gutterBorder&&(i[".cm-gutters"].borderRightColor=r.gutterBorder),r.caret&&(i[".cm-content"]={caretColor:r.caret},i[".cm-cursor, .cm-dropCursor"]={borderLeftColor:r.caret});var c={};r.gutterActiveForeground&&(c.color=r.gutterActiveForeground),r.lineHighlight&&(i[".cm-activeLine"]={backgroundColor:r.lineHighlight},c.backgroundColor=r.lineHighlight),i[".cm-activeLineGutter"]=c,r.selection&&(i["&.cm-focused .cm-selectionBackground, & .cm-line::selection, & .cm-selectionLayer .cm-selectionBackground, .cm-content ::selection"]={background:r.selection+" !important"}),r.selectionMatch&&(i["& .cm-selectionMatch"]={backgroundColor:r.selectionMatch});var u=Nt.theme(i,{dark:t==="dark"}),d=Ug.define(a),f=[u,U1(d)];return f},N7n={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)"},I7n=[{tag:pe.comment,color:"#6272a4"},{tag:pe.string,color:"#f1fa8c"},{tag:pe.atom,color:"#bd93f9"},{tag:pe.meta,color:"#f8f8f2"},{tag:[pe.keyword,pe.operator,pe.tagName],color:"#ff79c6"},{tag:[pe.function(pe.propertyName),pe.propertyName],color:"#66d9ef"},{tag:[pe.definition(pe.variableName),pe.function(pe.variableName),pe.className,pe.attributeName],color:"#50fa7b"},{tag:pe.atom,color:"#bd93f9"}],cI=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 T7n({theme:r,settings:UO({},N7n,a),styles:[...I7n,...l]})};cI();function _wt(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 A7n=e=>{let{state:t}=e,n=t.doc.lineAt(t.selection.main.from),r=DSe(e.state,n.from);return r.line?R7n(e):r.block?$7n(e):!1};function MSe(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 R7n=MSe(L7n,0),P7n=MSe(Cwt,0),$7n=MSe((e,t)=>Cwt(e,t,D7n(t)),0);function DSe(e,t){let n=e.languageDataAt("commentTokens",t,1);return n.length?n[0]:{}}const yR=50;function M7n(e,{open:t,close:n},r,s){let a=e.sliceDoc(r-yR,r),i=e.sliceDoc(s,s+yR),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*yR?d=f=e.sliceDoc(r,s):(d=e.sliceDoc(r,r+yR),f=e.sliceDoc(s-yR,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 D7n(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 Cwt(e,t,n=t.selection.ranges){let r=n.map(a=>DSe(t,a.from).block);if(!r.every(a=>a))return null;let s=n.map((a,i)=>M7n(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 L7n(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=DSe(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 Hme=Fy.define(),F7n=Fy.define(),z7n=On.define(),Ewt=On.define({combine(e){return zy(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)})}}),jwt=wl.define({create(){return Hv.empty},update(e,t){let n=t.state.facet(Ewt),r=t.annotation(Hme);if(r){let c=ff.fromTransaction(t,r.selection),u=r.side,d=u==0?e.undone:e.done;return c?d=pB(d,d.length,n.minDepth,c):d=Iwt(d,t.startState.selection),new Hv(u==0?r.rest:d,u==0?d:r.rest)}let s=t.annotation(F7n);if((s=="full"||s=="before")&&(e=e.isolate()),t.annotation(Pl.addToHistory)===!1)return t.changes.empty?e:e.addMapping(t.changes.desc);let a=ff.fromTransaction(t),i=t.annotation(Pl.time),l=t.annotation(Pl.userEvent);return a?e=e.addChanges(a,i,l,n,t):t.selection&&(e=e.addSelection(t.startState.selection,i,l,n.newGroupDelay)),(s=="full"||s=="after")&&(e=e.isolate()),e},toJSON(e){return{done:e.done.map(t=>t.toJSON()),undone:e.undone.map(t=>t.toJSON())}},fromJSON(e){return new Hv(e.done.map(ff.fromJSON),e.undone.map(ff.fromJSON))}});function B7n(e={}){return[jwt,Ewt.of(e),Nt.domEventHandlers({beforeinput(t,n){let r=t.inputType=="historyUndo"?Twt:t.inputType=="historyRedo"?Wme:null;return r?(t.preventDefault(),r(n)):!1}})]}function CH(e,t){return function({state:n,dispatch:r}){if(!t&&n.readOnly)return!1;let s=n.field(jwt,!1);if(!s)return!1;let a=s.pop(e,n,t);return a?(r(a),!0):!1}}const Twt=CH(0,!1),Wme=CH(1,!1),U7n=CH(0,!0),V7n=CH(1,!0);class ff{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 ff(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 ff(t.changes&&Al.fromJSON(t.changes),[],t.mapped&&ry.fromJSON(t.mapped),t.startSelection&&vt.fromJSON(t.startSelection),t.selectionsAfter.map(vt.fromJSON))}static fromTransaction(t,n){let r=zh;for(let s of t.startState.facet(z7n)){let a=s(t);a.length&&(r=r.concat(a))}return!r.length&&t.changes.empty?null:new ff(t.changes.invert(t.startState.doc),r,void 0,n||t.startState.selection,zh)}static selection(t){return new ff(void 0,zh,void 0,void 0,t)}}function pB(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 q7n(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 H7n(e,t){return e.ranges.length==t.ranges.length&&e.ranges.filter((n,r)=>n.empty!=t.ranges[r].empty).length===0}function Nwt(e,t){return e.length?t.length?e.concat(t):e:t}const zh=[],W7n=200;function Iwt(e,t){if(e.length){let n=e[e.length-1],r=n.selectionsAfter.slice(Math.max(0,n.selectionsAfter.length-W7n));return r.length&&r[r.length-1].eq(t)?e:(r.push(t),pB(e,e.length-1,1e9,n.setSelAfter(r)))}else return[ff.selection([t])]}function Z7n(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 XJ(e,t){if(!e.length)return e;let n=e.length,r=zh;for(;n;){let s=G7n(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?[ff.selection(r)]:zh}function G7n(e,t,n){let r=Nwt(e.selectionsAfter.length?e.selectionsAfter.map(l=>l.map(t)):zh,n);if(!e.changes)return ff.selection(r);let s=e.changes.map(t),a=t.mapDesc(e.changes,!0),i=e.mapped?e.mapped.composeDesc(a):a;return new ff(s,vr.mapEffects(e.effects,t),i,e.startSelection.map(a),r)}const Q7n=/^(input\.type|delete)($|\.)/;class Hv{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 Hv(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||Q7n.test(r))&&(!l.selectionsAfter.length&&n-this.prevTime<s.newGroupDelay&&s.joinToEvent(a,q7n(l.changes,t.changes))||r=="input.type.compose")?i=pB(i,i.length-1,s.minDepth,new ff(t.changes.compose(l.changes),Nwt(vr.mapEffects(t.effects,l.changes),l.effects),l.mapped,l.startSelection,zh)):i=pB(i,i.length,s.minDepth,t),new Hv(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)&&H7n(a[a.length-1],t)?this:new Hv(Iwt(this.done,t),this.undone,n,r)}addMapping(t){return new Hv(XJ(this.done,t),XJ(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:Hme.of({side:t,rest:Z7n(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=XJ(l,a.mapped)),n.update({changes:a.changes,selection:a.startSelection,effects:a.effects,annotations:Hme.of({side:t,rest:l,selection:i}),filter:!1,userEvent:t==0?"undo":"redo",scrollIntoView:!0})}else return null}}Hv.empty=new Hv(zh,zh);const Y7n=[{key:"Mod-z",run:Twt,preventDefault:!0},{key:"Mod-y",mac:"Mod-Shift-z",run:Wme,preventDefault:!0},{linux:"Ctrl-Shift-z",run:Wme,preventDefault:!0},{key:"Mod-u",run:U7n,preventDefault:!0},{key:"Alt-u",mac:"Mod-Shift-u",run:V7n,preventDefault:!0}];function uI(e,t){return vt.create(e.ranges.map(t),e.mainIndex)}function Vg(e,t){return e.update({selection:t,scrollIntoView:!0,userEvent:"select"})}function qg({state:e,dispatch:t},n){let r=uI(e.selection,n);return r.eq(e.selection,!0)?!1:(t(Vg(e,r)),!0)}function EH(e,t){return vt.cursor(t?e.to:e.from)}function Awt(e,t){return qg(e,n=>n.empty?e.moveByChar(n,t):EH(n,t))}function Ju(e){return e.textDirectionAt(e.state.selection.main.head)==Oi.LTR}const Rwt=e=>Awt(e,!Ju(e)),Pwt=e=>Awt(e,Ju(e));function $wt(e,t){return qg(e,n=>n.empty?e.moveByGroup(n,t):EH(n,t))}const K7n=e=>$wt(e,!Ju(e)),X7n=e=>$wt(e,Ju(e));function J7n(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 jH(e,t,n){let r=hi(e).resolveInner(t.head),s=n?Dr.closedBy:Dr.openedBy;for(let c=t.head;;){let u=n?r.childAfter(c):r.childBefore(c);if(!u)break;J7n(e,u,s)?r=u:c=n?u.to:u.from}let a=r.type.prop(s),i,l;return a&&(i=n?qv(e,r.from,1):qv(e,r.to,-1))&&i.matched?l=n?i.end.to:i.end.from:l=n?r.to:r.from,vt.cursor(l,n?-1:1)}const eBn=e=>qg(e,t=>jH(e.state,t,!Ju(e))),tBn=e=>qg(e,t=>jH(e.state,t,Ju(e)));function Mwt(e,t){return qg(e,n=>{if(!n.empty)return EH(n,t);let r=e.moveVertically(n,t);return r.head!=n.head?r:e.moveToLineBoundary(n,t)})}const Dwt=e=>Mwt(e,!1),Lwt=e=>Mwt(e,!0);function Fwt(e){let t=e.scrollDOM.clientHeight<e.scrollDOM.scrollHeight-2,n=0,r=0,s;if(t){for(let a of e.state.facet(Nt.scrollMargins)){let i=a(e);i?.top&&(n=Math.max(i?.top,n)),i?.bottom&&(r=Math.max(i?.bottom,r))}s=e.scrollDOM.clientHeight-n-r}else s=(e.dom.ownerDocument.defaultView||window).innerHeight;return{marginTop:n,marginBottom:r,selfScroll:t,height:Math.max(e.defaultLineHeight,s-5)}}function zwt(e,t){let n=Fwt(e),{state:r}=e,s=uI(r.selection,i=>i.empty?e.moveVertically(i,t,n.height):EH(i,t));if(s.eq(r.selection))return!1;let a;if(n.selfScroll){let i=e.coordsAtPos(r.selection.main.head),l=e.scrollDOM.getBoundingClientRect(),c=l.top+n.marginTop,u=l.bottom-n.marginBottom;i&&i.top>c&&i.bottom<u&&(a=Nt.scrollIntoView(s.main.head,{y:"start",yMargin:i.top-c}))}return e.dispatch(Vg(r,s),{effects:a}),!0}const uze=e=>zwt(e,!1),Zme=e=>zwt(e,!0);function V1(e,t,n){let r=e.lineBlockAt(t.head),s=e.moveToLineBoundary(t,n);if(s.head==t.head&&s.head!=(n?r.to:r.from)&&(s=e.moveToLineBoundary(t,n,!1)),!n&&s.head==r.from&&r.length){let a=/^\s*/.exec(e.state.sliceDoc(r.from,Math.min(r.from+100,r.to)))[0].length;a&&t.head!=r.from+a&&(s=vt.cursor(r.from+a))}return s}const nBn=e=>qg(e,t=>V1(e,t,!0)),rBn=e=>qg(e,t=>V1(e,t,!1)),sBn=e=>qg(e,t=>V1(e,t,!Ju(e))),aBn=e=>qg(e,t=>V1(e,t,Ju(e))),iBn=e=>qg(e,t=>vt.cursor(e.lineBlockAt(t.head).from,1)),oBn=e=>qg(e,t=>vt.cursor(e.lineBlockAt(t.head).to,-1));function lBn(e,t,n){let r=!1,s=uI(e.selection,a=>{let i=qv(e,a.head,-1)||qv(e,a.head,1)||a.head>0&&qv(e,a.head-1,1)||a.head<e.doc.length&&qv(e,a.head+1,-1);if(!i||!i.end)return a;r=!0;let l=i.start.from==a.head?i.end.to:i.end.from;return vt.cursor(l)});return r?(t(Vg(e,s)),!0):!1}const cBn=({state:e,dispatch:t})=>lBn(e,t);function Om(e,t,n){let r=uI(e.state.selection,s=>{s.undirectional&&s.head>=s.anchor!=t&&(s=vt.range(s.head,s.anchor));let a=n(s);return vt.range(s.anchor,a.head,a.goalColumn,a.bidiLevel||void 0,a.assoc)});return r.eq(e.state.selection)?!1:(e.dispatch(Vg(e.state,r)),!0)}function Bwt(e,t){return Om(e,t,n=>e.moveByChar(n,t))}const Uwt=e=>Bwt(e,!Ju(e)),Vwt=e=>Bwt(e,Ju(e));function qwt(e,t){return Om(e,t,n=>e.moveByGroup(n,t))}const uBn=e=>qwt(e,!Ju(e)),dBn=e=>qwt(e,Ju(e)),fBn=e=>{let t=!Ju(e);return Om(e,t,n=>jH(e.state,n,t))},pBn=e=>{let t=Ju(e);return Om(e,t,n=>jH(e.state,n,t))};function Hwt(e,t){return Om(e,t,n=>e.moveVertically(n,t))}const Wwt=e=>Hwt(e,!1),Zwt=e=>Hwt(e,!0);function Gwt(e,t){return Om(e,t,n=>e.moveVertically(n,t,Fwt(e).height))}const dze=e=>Gwt(e,!1),fze=e=>Gwt(e,!0),hBn=e=>Om(e,!0,t=>V1(e,t,!0)),mBn=e=>Om(e,!1,t=>V1(e,t,!1)),gBn=e=>{let t=!Ju(e);return Om(e,t,n=>V1(e,n,t))},vBn=e=>{let t=Ju(e);return Om(e,t,n=>V1(e,n,t))},yBn=e=>Om(e,!1,t=>vt.cursor(e.lineBlockAt(t.head).from)),bBn=e=>Om(e,!0,t=>vt.cursor(e.lineBlockAt(t.head).to)),pze=({state:e,dispatch:t})=>(t(Vg(e,{anchor:0})),!0),hze=({state:e,dispatch:t})=>(t(Vg(e,{anchor:e.doc.length})),!0),mze=({state:e,dispatch:t})=>(t(Vg(e,{anchor:e.selection.main.anchor,head:0})),!0),gze=({state:e,dispatch:t})=>(t(Vg(e,{anchor:e.selection.main.anchor,head:e.doc.length})),!0),xBn=({state:e,dispatch:t})=>(t(e.update({selection:{anchor:0,head:e.doc.length},userEvent:"select"})),!0),wBn=({state:e,dispatch:t})=>{let n=TH(e).map(({from:r,to:s})=>vt.range(r,Math.min(s+1,e.doc.length)));return t(e.update({selection:vt.create(n),userEvent:"select"})),!0},SBn=({state:e,dispatch:t})=>{let n=uI(e.selection,r=>{let s=hi(e),a=s.resolveStack(r.from,1);if(r.empty){let i=s.resolveStack(r.from,-1);i.node.from>=a.node.from&&i.node.to<=a.node.to&&(a=i)}for(let i=a;i;i=i.next){let{node:l}=i;if((l.from<r.from&&l.to>=r.to||l.to>r.to&&l.from<=r.from)&&i.next)return vt.range(l.to,l.from)}return r});return n.eq(e.selection)?!1:(t(Vg(e,n)),!0)};function Qwt(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(Vg(n,vt.create(s,s.length-1))),!0)}const kBn=e=>Qwt(e,!1),OBn=e=>Qwt(e,!0),_Bn=({state:e,dispatch:t})=>{let n=e.selection,r=null;return n.ranges.length>1?r=vt.create([n.main]):n.main.empty||(r=vt.create([vt.cursor(n.main.head)])),r?(t(Vg(e,r)),!0):!1};function P3(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=Q6(e,c,!1)):c>i&&(n="delete.forward",c=Q6(e,c,!0)),i=Math.min(i,c),l=Math.max(l,c)}else i=Q6(e,i,!1),l=Q6(e,l,!0);return i==l?{range:a}:{changes:{from:i,to:l},range:vt.cursor(i,i<a.head?-1:1)}});return s.changes.empty?!1:(e.dispatch(r.update(s,{scrollIntoView:!0,userEvent:n,effects:n=="delete.selection"?Nt.announce.of(r.phrase("Selection deleted")):void 0})),!0)}function Q6(e,t,n){if(e instanceof Nt)for(let r of e.state.facet(Nt.atomicRanges).map(s=>s(e)))r.between(t,t,(s,a)=>{s<t&&a>t&&(t=n?a:s)});return t}const Ywt=(e,t,n)=>P3(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=Pg(l,a.tabSize),d=u%FO(a)||FO(a);for(let f=0;f<d&&l[l.length-1-f]==" ";f++)s--;c=s}else c=kc(i.text,s-i.from,t,t)+i.from,c==s&&i.number!=(t?a.doc.lines:1)?c+=t?1:-1:!t&&/[\ufe00-\ufe0f]/.test(i.text.slice(c-i.from,s-i.from))&&(c=kc(i.text,c-i.from,!1,!1)+i.from);return c}),Gme=e=>Ywt(e,!1,!0),Kwt=e=>Ywt(e,!0,!1),Xwt=(e,t)=>P3(e,n=>{let r=n.head,{state:s}=e,a=s.doc.lineAt(r),i=s.charCategorizer(r);for(let l=null;;){if(r==(t?a.to:a.from)){r==n.head&&a.number!=(t?s.doc.lines:1)&&(r+=t?1:-1);break}let c=kc(a.text,r-a.from,t)+a.from,u=a.text.slice(Math.min(r,c)-a.from,Math.max(r,c)-a.from),d=i(u);if(l!=null&&d!=l)break;(u!=" "||r!=n.head)&&(l=d),r=c}return r}),Jwt=e=>Xwt(e,!1),CBn=e=>Xwt(e,!0),EBn=e=>P3(e,t=>{let n=e.lineBlockAt(t.head).to;return t.head<n?n:Math.min(e.state.doc.length,t.head+1)}),jBn=e=>P3(e,t=>{let n=e.moveToLineBoundary(t,!1).head;return t.head>n?n:Math.max(0,t.head-1)}),TBn=e=>P3(e,t=>{let n=e.moveToLineBoundary(t,!0).head;return t.head<n?n:Math.min(e.state.doc.length,t.head+1)}),NBn=({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=e.changeByRange(r=>({changes:{from:r.from,to:r.to,insert:wa.of(["",""])},range:vt.cursor(r.from)}));return t(e.update(n,{scrollIntoView:!0,userEvent:"input"})),!0},IBn=({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=e.changeByRange(r=>{if(!r.empty||r.from==0||r.from==e.doc.length)return{range:r};let s=r.from,a=e.doc.lineAt(s),i=s==a.from?s-1:kc(a.text,s-a.from,!1)+a.from,l=s==a.to?s+1:kc(a.text,s-a.from,!0)+a.from;return{changes:{from:i,to:l,insert:e.doc.slice(s,l).append(e.doc.slice(i,s))},range:vt.cursor(l)}});return n.changes.empty?!1:(t(e.update(n,{scrollIntoView:!0,userEvent:"move.character"})),!0)};function TH(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 e1t(e,t,n){if(e.readOnly)return!1;let r=[],s=[];for(let a of TH(e)){if(n?a.to==e.doc.length:a.from==0)continue;let i=e.doc.lineAt(n?a.to+1:a.from-1),l=i.length+1;if(n){r.push({from:a.to,to:i.to},{from:a.from,insert:i.text+e.lineBreak});for(let c of a.ranges)s.push(vt.range(Math.min(e.doc.length,c.anchor+l),Math.min(e.doc.length,c.head+l)))}else{r.push({from:i.from,to:a.from},{from:a.to,insert:e.lineBreak+i.text});for(let c of a.ranges)s.push(vt.range(c.anchor-l,c.head-l))}}return r.length?(t(e.update({changes:r,scrollIntoView:!0,selection:vt.create(s,e.selection.mainIndex),userEvent:"move.line"})),!0):!1}const ABn=({state:e,dispatch:t})=>e1t(e,t,!1),RBn=({state:e,dispatch:t})=>e1t(e,t,!0);function t1t(e,t,n){if(e.readOnly)return!1;let r=[];for(let a of TH(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 PBn=({state:e,dispatch:t})=>t1t(e,t,!1),$Bn=({state:e,dispatch:t})=>t1t(e,t,!0),MBn=e=>{if(e.state.readOnly)return!1;let{state:t}=e,n=t.changes(TH(t).map(({from:s,to:a})=>(s>0?s--:a<t.doc.length&&a++,{from:s,to:a}))),r=uI(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 DBn(e,t){if(/\(\)|\[\]|\{\}/.test(e.sliceDoc(t-1,t+1)))return{from:t,to:t};let n=hi(e).resolveInner(t),r=n.childBefore(t),s=n.childAfter(t),a;return r&&s&&r.to<=t&&s.from>=t&&(a=r.type.prop(Dr.closedBy))&&a.indexOf(s.name)>-1&&e.doc.lineAt(r.to).from==e.doc.lineAt(s.from).from&&!/\S/.test(e.sliceDoc(r.to,s.from))?{from:r.to,to:s.from}:null}const vze=n1t(!1),LBn=n1t(!0);function n1t(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&&DBn(t,a);e&&(a=i=(i<=l.to?l:t.doc.lineAt(i)).to);let u=new SH(t,{simulateBreak:a,simulateDoubleBreak:!!c}),d=aSe(u,a);for(d==null&&(d=Pg(/^\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=["",dM(t,d)];return c&&f.push(dM(t,u.lineIndent(l.from,-1))),{changes:{from:a,to:i,insert:wa.of(f)},range:vt.cursor(a+1+f[1].length)}});return n(t.update(r,{scrollIntoView:!0,userEvent:"input"})),!0}}function LSe(e,t){let n=-1;return e.changeByRange(r=>{let s=[];for(let i=r.from;i<=r.to;){let l=e.doc.lineAt(i);l.number>n&&(r.empty||r.to>l.from)&&(t(l,s,r),n=l.number),i=l.to+1}let a=e.changes(s);return{changes:s,range:vt.range(a.mapPos(r.anchor,1),a.mapPos(r.head,1))}})}const FBn=({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=Object.create(null),r=new SH(e,{overrideIndentation:a=>{let i=n[a];return i??-1}}),s=LSe(e,(a,i,l)=>{let c=aSe(r,a.from);if(c==null)return;/\S/.test(a.text)||(c=0);let u=/^\s*/.exec(a.text)[0],d=dM(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},r1t=({state:e,dispatch:t})=>e.readOnly?!1:(t(e.update(LSe(e,(n,r)=>{r.push({from:n.from,insert:e.facet(oI)})}),{userEvent:"input.indent"})),!0),s1t=({state:e,dispatch:t})=>e.readOnly?!1:(t(e.update(LSe(e,(n,r)=>{let s=/^\s*/.exec(n.text)[0];if(!s)return;let a=Pg(s,e.tabSize),i=0,l=dM(e,Math.max(0,a-FO(e)));for(;i<s.length&&i<l.length&&s.charCodeAt(i)==l.charCodeAt(i);)i++;r.push({from:n.from+i,to:n.from+s.length,insert:l.slice(i)})}),{userEvent:"delete.dedent"})),!0),zBn=e=>(e.setTabFocusMode(),!0),BBn=[{key:"Ctrl-b",run:Rwt,shift:Uwt,preventDefault:!0},{key:"Ctrl-f",run:Pwt,shift:Vwt},{key:"Ctrl-p",run:Dwt,shift:Wwt},{key:"Ctrl-n",run:Lwt,shift:Zwt},{key:"Ctrl-a",run:iBn,shift:yBn},{key:"Ctrl-e",run:oBn,shift:bBn},{key:"Ctrl-d",run:Kwt},{key:"Ctrl-h",run:Gme},{key:"Ctrl-k",run:EBn},{key:"Ctrl-Alt-h",run:Jwt},{key:"Ctrl-o",run:NBn},{key:"Ctrl-t",run:IBn},{key:"Ctrl-v",run:Zme}],UBn=[{key:"ArrowLeft",run:Rwt,shift:Uwt,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:K7n,shift:uBn,preventDefault:!0},{mac:"Cmd-ArrowLeft",run:sBn,shift:gBn,preventDefault:!0},{key:"ArrowRight",run:Pwt,shift:Vwt,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:X7n,shift:dBn,preventDefault:!0},{mac:"Cmd-ArrowRight",run:aBn,shift:vBn,preventDefault:!0},{key:"ArrowUp",run:Dwt,shift:Wwt,preventDefault:!0},{mac:"Cmd-ArrowUp",run:pze,shift:mze},{mac:"Ctrl-ArrowUp",run:uze,shift:dze},{key:"ArrowDown",run:Lwt,shift:Zwt,preventDefault:!0},{mac:"Cmd-ArrowDown",run:hze,shift:gze},{mac:"Ctrl-ArrowDown",run:Zme,shift:fze},{key:"PageUp",run:uze,shift:dze},{key:"PageDown",run:Zme,shift:fze},{key:"Home",run:rBn,shift:mBn,preventDefault:!0},{key:"Mod-Home",run:pze,shift:mze},{key:"End",run:nBn,shift:hBn,preventDefault:!0},{key:"Mod-End",run:hze,shift:gze},{key:"Enter",run:vze,shift:vze},{key:"Mod-a",run:xBn},{key:"Backspace",run:Gme,shift:Gme,preventDefault:!0},{key:"Delete",run:Kwt,preventDefault:!0},{key:"Mod-Backspace",mac:"Alt-Backspace",run:Jwt,preventDefault:!0},{key:"Mod-Delete",mac:"Alt-Delete",run:CBn,preventDefault:!0},{mac:"Mod-Backspace",run:jBn,preventDefault:!0},{mac:"Mod-Delete",run:TBn,preventDefault:!0}].concat(BBn.map(e=>({mac:e.key,run:e.run,shift:e.shift}))),VBn=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:eBn,shift:fBn},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:tBn,shift:pBn},{key:"Alt-ArrowUp",run:ABn},{key:"Shift-Alt-ArrowUp",run:PBn},{key:"Alt-ArrowDown",run:RBn},{key:"Shift-Alt-ArrowDown",run:$Bn},{key:"Mod-Alt-ArrowUp",run:kBn},{key:"Mod-Alt-ArrowDown",run:OBn},{key:"Escape",run:_Bn},{key:"Mod-Enter",run:LBn},{key:"Alt-l",mac:"Ctrl-l",run:wBn},{key:"Mod-i",run:SBn,preventDefault:!0},{key:"Mod-[",run:s1t},{key:"Mod-]",run:r1t},{key:"Mod-Alt-\\",run:FBn},{key:"Shift-Mod-k",run:MBn},{key:"Shift-Mod-\\",run:cBn},{key:"Mod-/",run:A7n},{key:"Alt-A",run:P7n},{key:"Ctrl-m",mac:"Shift-Alt-m",run:zBn}].concat(UBn),qBn={key:"Tab",run:r1t,shift:s1t},yze=typeof String.prototype.normalize=="function"?e=>e.normalize("NFKD"):e=>e;class Tx{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(yze(l)):yze,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 rf(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=z1e(t),r=this.bufferStart+this.bufferPos;this.bufferPos+=Rv(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"&&(Tx.prototype[Symbol.iterator]=function(){return this});const a1t={from:-1,to:-1,match:/.*/.exec(""),precise:!0},FSe="gm"+(/x/.unicode==null?"":"u");class i1t{constructor(t,n,r,s=0,a=t.length){if(this.text=t,this.to=a,this.curLine="",this.done=!1,this.value=a1t,/\\[sWDnr]|\n|\r|\[\^/.test(n))return new o1t(t,n,r,s,a);this.re=new RegExp(n,FSe+(r?.ignoreCase?"i":"")),this.test=r?.test,this.iter=t.iter();let i=t.lineAt(s);this.curLineStart=i.from,this.matchPos=hB(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=hB(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 JJ=new WeakMap;class Hj{constructor(t,n){this.from=t,this.text=n}get to(){return this.from+this.text.length}static get(t,n,r){let s=JJ.get(t);if(!s||s.from>=r||s.to<=n){let l=new Hj(n,t.sliceString(n,r));return JJ.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)),JJ.set(t,new Hj(i,a)),new Hj(n,a.slice(n-i,r-i))}}class o1t{constructor(t,n,r,s,a){this.text=t,this.to=a,this.done=!1,this.value=a1t,this.matchPos=hB(t,s),this.re=new RegExp(n,FSe+(r?.ignoreCase?"i":"")),this.test=r?.test,this.flat=Hj.get(t,s,this.chunkEnd(s+5e3))}chunkEnd(t){return t>=this.to?this.to:this.text.lineAt(t).to}next(){for(;;){let t=this.re.lastIndex=this.matchPos-this.flat.from,n=this.re.exec(this.flat.text);if(n&&!n[0]&&n.index==t&&(this.re.lastIndex=t+1,n=this.re.exec(this.flat.text)),n){let r=this.flat.from+n.index,s=r+n[0].length;if((this.flat.to>=this.to||n.index+n[0].length<=this.flat.text.length-10)&&(!this.test||this.test(r,s,n)))return this.value={from:r,to:s,precise:!0,match:n},this.matchPos=hB(this.text,s+(r==s?1:0)),this}if(this.flat.to==this.to)return this.done=!0,this;this.flat=Hj.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+this.flat.text.length*2))}}}typeof Symbol<"u"&&(i1t.prototype[Symbol.iterator]=o1t.prototype[Symbol.iterator]=function(){return this});function HBn(e){try{return new RegExp(e,FSe),!0}catch{return!1}}function hB(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 WBn=e=>{let{state:t}=e,n=String(t.doc.lineAt(e.state.selection.main.head).number),{close:r,result:s}=E6n(e,{label:t.phrase("Go to line"),input:{type:"text",name:"line",value:n},focus:!0,submitLabel:t.phrase("go")});return s.then(a=>{let i=a&&/^([+-])?(\d+)?(:\d+)?(%)?$/.exec(a.elements.line.value);if(!i){e.dispatch({effects:r});return}let l=t.doc.lineAt(t.selection.main.head),[,c,u,d,f]=i,p=d?+d.slice(1):0,h=u?+u:l.number;if(u&&f){let y=h/100;c&&(y=y*(c=="-"?-1:1)+l.number/t.doc.lines),h=Math.round(t.doc.lines*y)}else u&&c&&(h=h*(c=="-"?-1:1)+l.number);let m=t.doc.line(Math.max(1,Math.min(t.doc.lines,h))),g=vt.cursor(m.from+Math.max(0,Math.min(p,m.length)));e.dispatch({effects:[r,Nt.scrollIntoView(g.from,{y:"center"})],selection:g})}),!0},ZBn={highlightWordAroundCursor:!1,minSelectionLength:1,maxMatches:100,wholeWords:!1},GBn=On.define({combine(e){return zy(e,ZBn,{highlightWordAroundCursor:(t,n)=>t||n,minSelectionLength:Math.min,maxMatches:Math.min})}});function QBn(e){return[eUn,JBn]}const YBn=jn.mark({class:"cm-selectionMatch"}),KBn=jn.mark({class:"cm-selectionMatch cm-selectionMatch-main"});function bze(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 XBn(e,t,n,r){return e(t.sliceDoc(n,n+1))==wo.Word&&e(t.sliceDoc(r-1,r))==wo.Word}const JBn=Co.fromClass(class{constructor(e){this.decorations=this.getDeco(e)}update(e){(e.selectionSet||e.docChanged||e.viewportChanged)&&(this.decorations=this.getDeco(e.view))}getDeco(e){let t=e.state.facet(GBn),{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),!(bze(i,n,s.from,s.to)&&XBn(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 Tx(n.doc,a,c.from,c.to);for(;!u.next().done;){let{from:d,to:f}=u.value;if((!i||bze(i,n,d,f))&&(s.empty&&d<=s.from&&f>=s.to?l.push(KBn.range(d,f)):(d>=s.to||f<=s.from)&&l.push(YBn.range(d,f)),l.length>t.maxMatches))return jn.none}}return jn.set(l)}},{decorations:e=>e.decorations}),eUn=Nt.baseTheme({".cm-selectionMatch":{backgroundColor:"#99ff7780"},".cm-searchMatch .cm-selectionMatch":{backgroundColor:"transparent"}}),tUn=({state:e,dispatch:t})=>{let{selection:n}=e,r=vt.create(n.ranges.map(s=>e.wordAt(s.head)||vt.cursor(s.head)),n.mainIndex);return r.eq(n)?!1:(t(e.update({selection:r})),!0)};function nUn(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 Tx(e.doc,t,r[r.length-1].to);;)if(l.next(),l.done){if(i)return null;l=new Tx(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 rUn=({state:e,dispatch:t})=>{let{ranges:n}=e.selection;if(n.some(a=>a.from===a.to))return tUn({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=nUn(e,r);return s?(t(e.update({selection:e.selection.addRange(vt.range(s.from,s.to),!1),effects:Nt.scrollIntoView(s.to)})),!0):!1},dI=On.define({combine(e){return zy(e,{top:!1,caseSensitive:!1,literal:!1,regexp:!1,wholeWord:!1,createPanel:t=>new vUn(t),scrollToMatch:t=>Nt.scrollIntoView(t)})}});class l1t{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||HBn(this.search)),this.unquoted=this.unquote(this.search),this.wholeWord=!!t.wholeWord,this.test=t.test}unquote(t){return this.literal?t:t.replace(/\\([nrt\\])/g,(n,r)=>r=="n"?`
|
|
337
|
-
`:r=="r"?"\r":r=="t"?" ":"\\")}eq(t){return this.search==t.search&&this.replace==t.replace&&this.caseSensitive==t.caseSensitive&&this.regexp==t.regexp&&this.wholeWord==t.wholeWord&&this.test==t.test}create(){return this.regexp?new cUn(this):new iUn(this)}getCursor(t,n=0,r){let s=t.doc?t:cs.create({doc:t});return r==null&&(r=s.doc.length),this.regexp?UE(this,s,n,r):BE(this,s,n,r)}}class c1t{constructor(t){this.spec=t}}function sUn(e,t,n){return(r,s,a,i)=>{if(n&&!n(r,s,a,i))return!1;let l=r>=i&&s<=i+a.length?a.slice(r-i,s-i):t.doc.sliceString(r,s);return e(l,t,r,s)}}function BE(e,t,n,r){let s;return e.wholeWord&&(s=aUn(t.doc,t.charCategorizer(t.selection.main.head))),e.test&&(s=sUn(e.test,t,s)),new Tx(t.doc,e.unquoted,n,r,e.caseSensitive?void 0:a=>a.toLowerCase(),s)}function aUn(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(mB(s,n-a))!=wo.Word||t(gB(s,n-a))!=wo.Word)&&(t(gB(s,r-a))!=wo.Word||t(mB(s,r-a))!=wo.Word))}class iUn extends c1t{constructor(t){super(t)}nextMatch(t,n,r){let s=BE(this.spec,t,r,t.doc.length).nextOverlapping();if(s.done){let a=Math.min(t.doc.length,n+this.spec.unquoted.length);s=BE(this.spec,t,0,a).nextOverlapping()}return s.done||s.value.from==n&&s.value.to==r?null:s.value}prevMatchInRange(t,n,r){for(let s=r;;){let a=Math.max(n,s-1e4-this.spec.unquoted.length),i=BE(this.spec,t,a,s),l=null;for(;!i.nextOverlapping().done;)l=i.value;if(l)return l;if(a==n)return null;s-=1e4}}prevMatch(t,n,r){let s=this.prevMatchInRange(t,0,n);return s||(s=this.prevMatchInRange(t,Math.max(0,r-this.spec.unquoted.length),t.doc.length)),s&&(s.from!=n||s.to!=r)?s:null}getReplacement(t){return this.spec.unquote(this.spec.replace)}matchAll(t,n){let r=BE(this.spec,t,0,t.doc.length),s=[];for(;!r.next().done;){if(s.length>=n)return null;s.push(r.value)}return s}highlight(t,n,r,s){let a=BE(this.spec,t,Math.max(0,n-this.spec.unquoted.length),Math.min(r+this.spec.unquoted.length,t.doc.length));for(;!a.next().done;)s(a.value.from,a.value.to)}}function oUn(e,t,n){return(r,s,a)=>(!n||n(r,s,a))&&e(a[0],t,r,s)}function UE(e,t,n,r){let s;return e.wholeWord&&(s=lUn(t.charCategorizer(t.selection.main.head))),e.test&&(s=oUn(e.test,t,s)),new i1t(t.doc,e.search,{ignoreCase:!e.caseSensitive,test:s},n,r)}function mB(e,t){return e.slice(kc(e,t,!1),t)}function gB(e,t){return e.slice(t,kc(e,t))}function lUn(e){return(t,n,r)=>!r[0].length||(e(mB(r.input,r.index))!=wo.Word||e(gB(r.input,r.index))!=wo.Word)&&(e(gB(r.input,r.index+r[0].length))!=wo.Word||e(mB(r.input,r.index+r[0].length))!=wo.Word)}class cUn extends c1t{nextMatch(t,n,r){let s=UE(this.spec,t,r,t.doc.length).next();return s.done&&(s=UE(this.spec,t,0,n).next()),s.done?null:s.value}prevMatchInRange(t,n,r){for(let s=1;;s++){let a=Math.max(n,r-s*1e4),i=UE(this.spec,t,a,r),l=null;for(;!i.next().done;)l=i.value;if(l&&(a==n||l.from>a+10))return l;if(a==n)return null}}prevMatch(t,n,r){return this.prevMatchInRange(t,0,n)||this.prevMatchInRange(t,r,t.doc.length)}getReplacement(t){return this.spec.unquote(this.spec.replace).replace(/\$([$&]|\d+)/g,(n,r)=>{if(r=="&")return t.match[0];if(r=="$")return"$";for(let s=r.length;s>0;s--){let a=+r.slice(0,s);if(a>0&&a<t.match.length)return t.match[a]+r.slice(s)}return n})}matchAll(t,n){let r=UE(this.spec,t,0,t.doc.length),s=[];for(;!r.next().done;){if(s.length>=n)return null;s.push(r.value)}return s}highlight(t,n,r,s){let a=UE(this.spec,t,Math.max(0,n-250),Math.min(r+250,t.doc.length));for(;!a.next().done;)s(a.value.from,a.value.to)}}const xM=vr.define(),zSe=vr.define(),Fw=wl.define({create(e){return new eee(Qme(e).create(),null)},update(e,t){for(let n of t.effects)n.is(xM)?e=new eee(n.value.create(),e.panel):n.is(zSe)&&(e=new eee(e.query,n.value?BSe:null));return e},provide:e=>uM.from(e,t=>t.panel)});class eee{constructor(t,n){this.query=t,this.panel=n}}const uUn=jn.mark({class:"cm-searchMatch"}),dUn=jn.mark({class:"cm-searchMatch cm-searchMatch-selected"}),fUn=Co.fromClass(class{constructor(e){this.view=e,this.decorations=this.highlight(e.state.field(Fw))}update(e){let t=e.state.field(Fw);(t!=e.startState.field(Fw)||e.docChanged||e.selectionSet||e.viewportChanged)&&(this.decorations=this.highlight(t))}highlight({query:e,panel:t}){if(!t||!e.spec.valid)return jn.none;let{view:n}=this,r=new Rd;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?dUn:uUn)})}return r.finish()}},{decorations:e=>e.decorations});function $3(e){return t=>{let n=t.state.field(Fw,!1);return n&&n.query.spec.valid?e(t,n):f1t(t)}}const vB=$3((e,{query:t})=>{let{to:n}=e.state.selection.main,r=t.nextMatch(e.state,n,n);if(!r)return!1;let s=vt.single(r.from,r.to),a=e.state.facet(dI);return e.dispatch({selection:s,effects:[USe(e,r),a.scrollToMatch(s.main,e)],userEvent:"select.search"}),d1t(e),!0}),yB=$3((e,{query:t})=>{let{state:n}=e,{from:r}=n.selection.main,s=t.prevMatch(n,r,r);if(!s)return!1;let a=vt.single(s.from,s.to),i=e.state.facet(dI);return e.dispatch({selection:a,effects:[USe(e,s),i.scrollToMatch(a.main,e)],userEvent:"select.search"}),d1t(e),!0}),pUn=$3((e,{query:t})=>{let n=t.matchAll(e.state,1e3);return!n||!n.length?!1:(e.dispatch({selection:vt.create(n.map(r=>vt.range(r.from,r.to))),userEvent:"select.search.matches"}),!0)}),hUn=({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 Tx(e.doc,e.sliceDoc(r,s));!l.next().done;){if(a.length>1e3)return!1;l.value.from==r&&(i=a.length),a.push(vt.range(l.value.from,l.value.to))}return t(e.update({selection:vt.create(a,i),userEvent:"select.search.matches"})),!0},xze=$3((e,{query:t})=>{let{state:n}=e,{from:r,to:s}=n.selection.main;if(n.readOnly)return!1;let a=t.nextMatch(n,r,r);if(!a)return!1;let i=a,l=[],c,u,d=[];i.precise?i.from==r&&i.to==s&&(u=n.toText(t.getReplacement(i)),l.push({from:i.from,to:i.to,insert:u}),i=t.nextMatch(n,i.from,i.to),d.push(Nt.announce.of(n.phrase("replaced match on line $",n.doc.lineAt(r).number)+"."))):i=t.nextMatch(n,i.from,i.to);let f=e.state.changes(l);return i&&(c=vt.single(i.from,i.to).map(f),d.push(USe(e,i)),d.push(n.facet(dI).scrollToMatch(c.main,e))),e.dispatch({changes:f,selection:c,effects:d,userEvent:"input.replace"}),!0}),mUn=$3((e,{query:t})=>{if(e.state.readOnly)return!1;let n=[];for(let s of t.matchAll(e.state,1e9)){let{from:a,to:i,precise:l}=s;l&&n.push({from:a,to:i,insert:t.getReplacement(s)})}if(!n.length)return!1;let r=e.state.phrase("replaced $ matches",n.length)+".";return e.dispatch({changes:n,effects:Nt.announce.of(r),userEvent:"input.replace.all"}),!0});function BSe(e){return e.state.facet(dI).createPanel(e)}function Qme(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(dI);return new l1t({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 u1t(e){let t=rSe(e,BSe);return t&&t.dom.querySelector("[main-field]")}function d1t(e){let t=u1t(e);t&&t==e.root.activeElement&&t.select()}const f1t=e=>{let t=e.state.field(Fw,!1);if(t&&t.panel){let n=u1t(e);if(n&&n!=e.root.activeElement){let r=Qme(e.state,t.query.spec);r.valid&&e.dispatch({effects:xM.of(r)}),n.focus(),n.select()}}else e.dispatch({effects:[zSe.of(!0),t?xM.of(Qme(e.state,t.query.spec)):vr.appendConfig.of(bUn)]});return!0},p1t=e=>{let t=e.state.field(Fw,!1);if(!t||!t.panel)return!1;let n=rSe(e,BSe);return n&&n.dom.contains(e.root.activeElement)&&e.focus(),e.dispatch({effects:zSe.of(!1)}),!0},gUn=[{key:"Mod-f",run:f1t,scope:"editor search-panel"},{key:"F3",run:vB,shift:yB,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:vB,shift:yB,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:p1t,scope:"editor search-panel"},{key:"Mod-Shift-l",run:hUn},{key:"Mod-Alt-g",run:WBn},{key:"Mod-d",run:rUn,preventDefault:!0}];class vUn{constructor(t){this.view=t;let n=this.query=t.state.field(Fw).query.spec;this.commit=this.commit.bind(this),this.searchField=ci("input",{value:n.search,placeholder:np(t,"Find"),"aria-label":np(t,"Find"),class:"cm-textfield",name:"search",form:"","main-field":"true",onchange:this.commit,onkeyup:this.commit}),this.replaceField=ci("input",{value:n.replace,placeholder:np(t,"Replace"),"aria-label":np(t,"Replace"),class:"cm-textfield",name:"replace",form:"",onchange:this.commit,onkeyup:this.commit}),this.caseField=ci("input",{type:"checkbox",name:"case",form:"",checked:n.caseSensitive,onchange:this.commit}),this.reField=ci("input",{type:"checkbox",name:"re",form:"",checked:n.regexp,onchange:this.commit}),this.wordField=ci("input",{type:"checkbox",name:"word",form:"",checked:n.wholeWord,onchange:this.commit});function r(s,a,i){return ci("button",{class:"cm-button",name:s,onclick:a,type:"button"},i)}this.dom=ci("div",{onkeydown:s=>this.keydown(s),class:"cm-search"},[this.searchField,r("next",()=>vB(t),[np(t,"next")]),r("prev",()=>yB(t),[np(t,"previous")]),r("select",()=>pUn(t),[np(t,"all")]),ci("label",null,[this.caseField,np(t,"match case")]),ci("label",null,[this.reField,np(t,"regexp")]),ci("label",null,[this.wordField,np(t,"by word")]),...t.state.readOnly?[]:[ci("br"),this.replaceField,r("replace",()=>xze(t),[np(t,"replace")]),r("replaceAll",()=>mUn(t),[np(t,"replace all")])],ci("button",{name:"close",onclick:()=>p1t(t),"aria-label":np(t,"close"),type:"button"},["×"])])}commit(){let t=new l1t({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:xM.of(t)}))}keydown(t){D5n(this.view,t,"search-panel")?t.preventDefault():t.keyCode==13&&t.target==this.searchField?(t.preventDefault(),(t.shiftKey?yB:vB)(this.view)):t.keyCode==13&&t.target==this.replaceField&&(t.preventDefault(),xze(this.view))}update(t){for(let n of t.transactions)for(let r of n.effects)r.is(xM)&&!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(dI).top}}function np(e,t){return e.state.phrase(t)}const Y6=30,K6=/[\s\.,:;?!]/;function USe(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-Y6),i=Math.min(s,n+Y6),l=e.state.sliceDoc(a,i);if(a!=r.from){for(let c=0;c<Y6;c++)if(!K6.test(l[c+1])&&K6.test(l[c])){l=l.slice(c);break}}if(i!=s){for(let c=l.length-1;c>l.length-Y6;c--)if(!K6.test(l[c-1])&&K6.test(l[c])){l=l.slice(0,c);break}}return Nt.announce.of(`${e.state.phrase("current match")}. ${l} ${e.state.phrase("on line")} ${r.number}.`)}const yUn=Nt.baseTheme({".cm-panel.cm-search":{padding:"2px 6px 4px",position:"relative","& [name=close]":{position:"absolute",top:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:0,margin:0},"& input, & button, & label":{margin:".2em .6em .2em 0"},"& input[type=checkbox]":{marginRight:".2em"},"& label":{fontSize:"80%",whiteSpace:"pre"}},"&light .cm-searchMatch":{backgroundColor:"#ffff0054"},"&dark .cm-searchMatch":{backgroundColor:"#00ffff8a"},"&light .cm-searchMatch-selected":{backgroundColor:"#ff6a0054"},"&dark .cm-searchMatch-selected":{backgroundColor:"#ff00ff8a"}}),bUn=[Fw,Xp.low(fUn),yUn];class wze{constructor(t,n,r){this.from=t,this.to=n,this.diagnostic=r}}class bk{constructor(t,n,r){this.diagnostics=t,this.panel=n,this.selected=r}static init(t,n,r){let s=r.facet(wM).markerFilter;s&&(t=s(t,r));let a=t.slice().sort((d,f)=>d.from-f.from||d.to-f.to),i=new Rd,l=[],c=0;for(let d=0;;){let f=d==a.length?null:a[d];if(!f&&!l.length)break;let p,h;for(l.length?(p=c,h=l.reduce((g,y)=>Math.min(g,y.to),f&&f.from>p?f.from:1e8)):(p=f.from,h=f.to,l.push(f),d++);d<a.length;){let g=a[d];if(g.from==p&&(g.to>g.from||g.to==p))l.push(g),d++,h=Math.min(g.to,h);else{h=Math.min(g.from,h);break}}let m=AUn(l);if(l.some(g=>g.from==g.to||g.from==g.to-1&&r.doc.lineAt(g.from).to==g.from))i.add(p,p,jn.widget({widget:new jUn(m),diagnostics:l.slice()}));else{let g=l.reduce((y,b)=>b.markClass?y+" "+b.markClass:y,"");i.add(p,h,jn.mark({class:"cm-lintRange cm-lintRange-"+m+g,diagnostics:l.slice(),inclusiveEnd:l.some(y=>y.to>h)}))}c=h;for(let g=0;g<l.length;g++)l[g].to<=c&&l.splice(g--,1)}let u=i.finish();return new bk(u,n,UT(u))}}function UT(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 wze(s,a,t||i.diagnostics[0]);else{if(i.diagnostics.indexOf(r.diagnostic)<0)return!1;r=new wze(r.from,a,r.diagnostic)}}),r}function xUn(e,t){let n=t.pos,r=t.end||n,s=e.state.facet(wM).hideOn(e,n,r);if(s!=null)return s;let a=e.startState.doc.lineAt(t.pos);return!!(e.effects.some(i=>i.is(h1t))||e.changes.touchesRange(a.from,Math.max(a.to,r)))}function wUn(e,t){return e.field(Cp,!1)?t:t.concat(vr.appendConfig.of(RUn))}const h1t=vr.define(),VSe=vr.define(),m1t=vr.define(),Cp=wl.define({create(){return new bk(jn.none,null,null)},update(e,t){if(t.docChanged&&e.diagnostics.size){let n=e.diagnostics.map(t.changes),r=null,s=e.panel;if(e.selected){let a=t.changes.mapPos(e.selected.from,1);r=UT(n,e.selected.diagnostic,a)||UT(n,null,a)}!n.size&&s&&t.state.facet(wM).autoPanel&&(s=null),e=new bk(n,s,r)}for(let n of t.effects)if(n.is(h1t)){let r=t.state.facet(wM).autoPanel?n.value.length?SM.open:null:e.panel;e=bk.init(n.value,r,t.state)}else n.is(VSe)?e=new bk(e.diagnostics,n.value?SM.open:null,e.selected):n.is(m1t)&&(e=new bk(e.diagnostics,e.panel,n.value));return e},provide:e=>[uM.from(e,t=>t.panel),Nt.decorations.from(e,t=>t.diagnostics)]}),SUn=jn.mark({class:"cm-lintRange cm-lintRange-active"});function kUn(e,t,n){let{diagnostics:r}=e.state.field(Cp),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(wM).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:OUn(e,s)}}}:null}function OUn(e,t){return ci("ul",{class:"cm-tooltip-lint"},t.map(n=>v1t(e,n,!1)))}const _Un=e=>{let t=e.state.field(Cp,!1);(!t||!t.panel)&&e.dispatch({effects:wUn(e.state,[VSe.of(!0)])});let n=rSe(e,SM.open);return n&&n.dom.querySelector(".cm-panel-lint ul").focus(),!0},Sze=e=>{let t=e.state.field(Cp,!1);return!t||!t.panel?!1:(e.dispatch({effects:VSe.of(!1)}),!0)},CUn=e=>{let t=e.state.field(Cp,!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)},EUn=[{key:"Mod-Shift-m",run:_Un,preventDefault:!0},{key:"F8",run:CUn}],wM=On.define({combine(e){return{sources:e.map(t=>t.source).filter(t=>t!=null),...zy(e.map(t=>t.config),{delay:750,markerFilter:null,tooltipFilter:null,needsRefresh:null,hideOn:()=>null},{delay:Math.max,markerFilter:kze,tooltipFilter:kze,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 kze(e,t){return e?t?(n,r)=>t(e(n,r),r):e:t}function g1t(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 v1t(e,t,n){var r;let s=n?g1t(t.actions):[];return ci("li",{class:"cm-diagnostic cm-diagnostic-"+t.severity},ci("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=UT(e.state.field(Cp).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),ci("u",u.slice(d,d+1)),u.slice(d+1)],p=a.markClass?" "+a.markClass:"";return ci("button",{type:"button",class:"cm-diagnosticAction"+p,onclick:c,onmousedown:c,"aria-label":` Action: ${u}${d<0?"":` (access key "${s[i]})"`}.`},f)}),t.source&&ci("div",{class:"cm-diagnosticSource"},t.source))}class jUn extends Jp{constructor(t){super(),this.sev=t}eq(t){return t.sev==this.sev}toDOM(){return ci("span",{class:"cm-lintPoint cm-lintPoint-"+this.sev})}}class Oze{constructor(t,n){this.diagnostic=n,this.id="item_"+Math.floor(Math.random()*4294967295).toString(16),this.dom=v1t(t,n,!0),this.dom.id=this.id,this.dom.setAttribute("role","option")}}class SM{constructor(t){this.view=t,this.items=[];let n=s=>{if(s.keyCode==27)Sze(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=g1t(a.actions);for(let l=0;l<i.length;l++)if(i[l].toUpperCase().charCodeAt(0)==s.keyCode){let c=UT(this.view.state.field(Cp).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=ci("ul",{tabIndex:0,role:"listbox","aria-label":this.view.state.phrase("Diagnostics"),onkeydown:n,onclick:r}),this.dom=ci("div",{class:"cm-panel-lint"},this.list,ci("button",{type:"button",name:"close","aria-label":this.view.state.phrase("close"),onclick:()=>Sze(this.view)},"×")),this.update()}get selectedIndex(){let t=this.view.state.field(Cp).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(Cp),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 Oze(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 Oze(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(Cp),r=UT(n.diagnostics,this.items[t].diagnostic);r&&this.view.dispatch({selection:{anchor:r.from,head:r.to},scrollIntoView:!0,effects:m1t.of(r)})}static open(t){return new SM(t)}}function TUn(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 X6(e){return TUn(`<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 NUn=Nt.baseTheme({".cm-diagnostic":{padding:"3px 6px 3px 8px",marginLeft:"-1px",display:"block",whiteSpace:"pre-wrap"},".cm-diagnostic-error":{borderLeft:"5px solid #d11"},".cm-diagnostic-warning":{borderLeft:"5px solid orange"},".cm-diagnostic-info":{borderLeft:"5px solid #999"},".cm-diagnostic-hint":{borderLeft:"5px solid #66d"},".cm-diagnosticAction":{font:"inherit",border:"none",padding:"2px 4px",backgroundColor:"#444",color:"white",borderRadius:"3px",marginLeft:"8px",cursor:"pointer"},".cm-diagnosticSource":{fontSize:"70%",opacity:.7},".cm-lintRange":{backgroundPosition:"left bottom",backgroundRepeat:"repeat-x",paddingBottom:"0.7px"},".cm-lintRange-error":{backgroundImage:X6("#d11")},".cm-lintRange-warning":{backgroundImage:X6("orange")},".cm-lintRange-info":{backgroundImage:X6("#999")},".cm-lintRange-hint":{backgroundImage:X6("#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 IUn(e){return e=="error"?4:e=="warning"?3:e=="info"?2:1}function AUn(e){let t="hint",n=1;for(let r of e){let s=IUn(r.severity);s>n&&(n=s,t=r.severity)}return t}const RUn=[Cp,Nt.decorations.compute([Cp],e=>{let{selected:t,panel:n}=e.field(Cp);return!t||!n||t.from==t.to?jn.none:jn.set([SUn.range(t.from,t.to)])}),_6n(kUn,{hideOn:xUn}),NUn];var _ze=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(Szn)),t.defaultKeymap!==!1&&(a=a.concat(VBn)),t.searchKeymap!==!1&&(a=a.concat(gUn)),t.historyKeymap!==!1&&(a=a.concat(Y7n)),t.foldKeymap!==!1&&(a=a.concat(oFn)),t.completionKeymap!==!1&&(a=a.concat(d0t)),t.lintKeymap!==!1&&(a=a.concat(EUn));var i=[];return t.lineNumbers!==!1&&i.push(D6n()),t.highlightActiveLineGutter!==!1&&i.push(z6n()),t.highlightSpecialChars!==!1&&i.push(J5n()),t.history!==!1&&i.push(B7n()),t.foldGutter!==!1&&i.push(dFn()),t.drawSelection!==!1&&i.push(V5n()),t.dropCursor!==!1&&i.push(G5n()),t.allowMultipleSelections!==!1&&i.push(cs.allowMultipleSelections.of(!0)),t.indentOnInput!==!1&&i.push(J6n()),t.syntaxHighlighting!==!1&&i.push(U1(mFn,{fallback:!0})),t.bracketMatching!==!1&&i.push(SFn()),t.closeBrackets!==!1&&i.push(yzn()),t.autocompletion!==!1&&i.push(u0t()),t.rectangularSelection!==!1&&i.push(p6n()),s!==!1&&i.push(g6n()),t.highlightActiveLine!==!1&&i.push(a6n()),t.highlightSelectionMatches!==!1&&i.push(QBn()),t.tabSize&&typeof t.tabSize=="number"&&i.push(oI.of(" ".repeat(t.tabSize))),i.concat([iI.of(a.flat())]).filter(Boolean)};const PUn="#e5c07b",Cze="#e06c75",$Un="#56b6c2",MUn="#ffffff",T8="#abb2bf",Yme="#7d8799",DUn="#61afef",LUn="#98c379",Eze="#d19a66",FUn="#c678dd",zUn="#21252b",jze="#2c313a",Tze="#282c34",tee="#353a42",BUn="#3E4451",Nze="#528bff",UUn=Nt.theme({"&":{color:T8,backgroundColor:Tze},".cm-content":{caretColor:Nze},".cm-cursor, .cm-dropCursor":{borderLeftColor:Nze},"&.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection":{backgroundColor:BUn},".cm-panels":{backgroundColor:zUn,color:T8},".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:Tze,color:Yme,border:"none"},".cm-activeLineGutter":{backgroundColor:jze},".cm-foldPlaceholder":{backgroundColor:"transparent",border:"none",color:"#ddd"},".cm-tooltip":{border:"none",backgroundColor:tee},".cm-tooltip .cm-tooltip-arrow:before":{borderTopColor:"transparent",borderBottomColor:"transparent"},".cm-tooltip .cm-tooltip-arrow:after":{borderTopColor:tee,borderBottomColor:tee},".cm-tooltip-autocomplete":{"& > ul > li[aria-selected]":{backgroundColor:jze,color:T8}}},{dark:!0}),VUn=Ug.define([{tag:pe.keyword,color:FUn},{tag:[pe.name,pe.deleted,pe.character,pe.propertyName,pe.macroName],color:Cze},{tag:[pe.function(pe.variableName),pe.labelName],color:DUn},{tag:[pe.color,pe.constant(pe.name),pe.standard(pe.name)],color:Eze},{tag:[pe.definition(pe.name),pe.separator],color:T8},{tag:[pe.typeName,pe.className,pe.number,pe.changed,pe.annotation,pe.modifier,pe.self,pe.namespace],color:PUn},{tag:[pe.operator,pe.operatorKeyword,pe.url,pe.escape,pe.regexp,pe.link,pe.special(pe.string)],color:$Un},{tag:[pe.meta,pe.comment],color:Yme},{tag:pe.strong,fontWeight:"bold"},{tag:pe.emphasis,fontStyle:"italic"},{tag:pe.strikethrough,textDecoration:"line-through"},{tag:pe.link,color:Yme,textDecoration:"underline"},{tag:pe.heading,fontWeight:"bold",color:Cze},{tag:[pe.atom,pe.bool,pe.special(pe.variableName)],color:Eze},{tag:[pe.processingInstruction,pe.string,pe.inserted],color:LUn},{tag:pe.invalid,color:MUn}]),qUn=[UUn,U1(VUn)];var HUn=Nt.theme({"&":{backgroundColor:"#fff"}},{dark:!1}),WUn=function(t){t===void 0&&(t={});var n=t,r=n.indentWithTab,s=r===void 0?!0:r,a=n.editable,i=a===void 0?!0:a,l=n.readOnly,c=l===void 0?!1:l,u=n.theme,d=u===void 0?"light":u,f=n.placeholder,p=f===void 0?"":f,h=n.basicSetup,m=h===void 0?!0:h,g=[];switch(s&&g.unshift(iI.of([qBn])),m&&(typeof m=="boolean"?g.unshift(_ze()):g.unshift(_ze(m))),p&&g.unshift(c6n(p)),d){case"light":g.push(HUn);break;case"dark":g.push(qUn);break;case"none":break;default:g.push(d);break}return i===!1&&g.push(Nt.editable.of(!1)),c&&g.push(cs.readOnly.of(!0)),[...g]},ZUn=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 GUn{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 Ize{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 nee=null,QUn=()=>typeof window>"u"?new Ize:(nee||(nee=new Ize),nee),YUn=Nt.theme({"& .cm-scroller":{height:"100% !important"}}),Aze=null,ree=null;function KUn(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===Aze||(Aze=i,ree=Nt.theme({"&":{height:e,minHeight:t,maxHeight:n,width:r,minWidth:s,maxWidth:a}})),ree}var Rze=Fy.define(),XUn=200,JUn=[];function eVn(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?JUn:l,u=e.autoFocus,d=e.theme,f=d===void 0?"light":d,p=e.height,h=p===void 0?null:p,m=e.minHeight,g=m===void 0?null:m,y=e.maxHeight,b=y===void 0?null:y,x=e.width,S=x===void 0?null:x,k=e.minWidth,_=k===void 0?null:k,C=e.maxWidth,E=C===void 0?null:C,j=e.placeholder,N=j===void 0?"":j,I=e.editable,A=I===void 0?!0:I,R=e.readOnly,L=R===void 0?!1:R,D=e.indentWithTab,B=D===void 0?!0:D,H=e.basicSetup,F=H===void 0?!0:H,z=e.root,q=e.initialState,M=v.useState(),G=M[0],V=M[1],$=v.useState(),U=$[0],Z=$[1],K=v.useState(),ee=K[0],te=K[1],J=v.useState(()=>({current:null}))[0],ae=v.useState(()=>({current:null}))[0],de=KUn(h,g,b,S,_,E),Y=Nt.updateListener.of(he=>{if(he.docChanged&&typeof r=="function"&&!he.transactions.some(be=>be.annotation(Rze))){J.current?J.current.reset():(J.current=new GUn(()=>{if(ae.current){var be=ae.current;ae.current=null,be()}J.current=null},XUn),QUn().add(J.current));var le=he.state.doc,ue=le.toString();r(ue,he)}s&&s(ZUn(he))}),ne=WUn({theme:f,editable:A,readOnly:L,placeholder:N,indentWithTab:B,basicSetup:F}),fe=[Y,...de?[de]:[],YUn,...ne];return i&&typeof i=="function"&&fe.push(Nt.updateListener.of(i)),fe=fe.concat(c),v.useLayoutEffect(()=>{if(G&&!ee){var he={doc:t,selection:n,extensions:fe},le=q?cs.fromJSON(q.json,he,q.fields):cs.create(he);if(te(le),!U){var ue=new Nt({state:le,parent:G,root:z});Z(ue),a&&a(ue,le)}}return()=>{U&&(te(void 0),Z(void 0))}},[G,ee]),v.useEffect(()=>{e.container&&V(e.container)},[e.container]),v.useEffect(()=>()=>{U&&(U.destroy(),Z(void 0)),J.current&&(J.current.cancel(),J.current=null)},[U]),v.useEffect(()=>{u&&U&&U.focus()},[u,U]),v.useEffect(()=>{U&&U.dispatch({effects:vr.reconfigure.of(fe)})},[f,c,h,g,b,S,_,E,N,A,L,B,F,r,i]),v.useEffect(()=>{if(t!==void 0){var he=U?U.state.doc.toString():"";if(U&&t!==he){var le=J.current&&!J.current.isDone,ue=()=>{U&&t!==U.state.doc.toString()&&U.dispatch({changes:{from:0,to:U.state.doc.toString().length,insert:t||""},annotations:[Rze.of(!0)]})};le?ae.current=ue:ue()}}},[t,U]),{state:ee,setState:te,view:U,setView:Z,container:G,setContainer:V}}var tVn=["className","value","selection","extensions","onChange","onStatistics","onCreateEditor","onUpdate","autoFocus","theme","height","minHeight","maxHeight","width","minWidth","maxWidth","basicSetup","placeholder","indentWithTab","editable","readOnly","root","initialState"],Qu=v.forwardRef((e,t)=>{var n=e.className,r=e.value,s=r===void 0?"":r,a=e.selection,i=e.extensions,l=i===void 0?[]:i,c=e.onChange,u=e.onStatistics,d=e.onCreateEditor,f=e.onUpdate,p=e.autoFocus,h=e.theme,m=h===void 0?"light":h,g=e.height,y=e.minHeight,b=e.maxHeight,x=e.width,S=e.minWidth,k=e.maxWidth,_=e.basicSetup,C=e.placeholder,E=e.indentWithTab,j=e.editable,N=e.readOnly,I=e.root,A=e.initialState,R=_wt(e,tVn),L=v.useRef(null),D=eVn({root:I,value:s,autoFocus:p,theme:m,height:g,minHeight:y,maxHeight:b,width:x,minWidth:S,maxWidth:k,basicSetup:_,placeholder:C,indentWithTab:E,editable:j,readOnly:N,selection:a,onChange:c,onStatistics:u,onCreateEditor:d,onUpdate:f,extensions:l,initialState:A}),B=D.state,H=D.view,F=D.container,z=D.setContainer;v.useImperativeHandle(t,()=>({editor:L.current,state:B,view:H}),[L,F,B,H]);var q=v.useCallback(G=>{L.current=G,z(G)},[z]);if(typeof s!="string")throw new Error("value must be typeof string but got "+typeof s);var M=typeof m=="string"?"cm-theme-"+m:"cm-theme";return o.jsx("div",UO({ref:q,className:""+M+(n?" "+n:"")},R))});Qu.displayName="CodeMirror";const nVn={js:"javascript",javascript:"javascript",mjs:"javascript",cjs:"javascript",node:"javascript",ts:"typescript",typescript:"typescript",mts:"typescript",cts:"typescript",tsx:"tsx",jsx:"jsx",json:"json",json5:"json",md:"markdown",markdown:"markdown",py:"python",python:"python",sh:"bash",bash:"bash",shell:"bash",zsh:"bash"};let see=null;function rVn(){return see||(see=(async()=>{const[{createHighlighterCore:e},{createJavaScriptRegexEngine:t}]=await Promise.all([mo(()=>import("./core-Dfgl0E7t.js"),__vite__mapDeps([0,1,2]),import.meta.url),mo(()=>import("./engine-javascript-CSIo_1eZ.js"),__vite__mapDeps([3,1]),import.meta.url)]);return e({themes:[mo(()=>import("./github-light-DAi9KRSo.js"),[],import.meta.url),mo(()=>import("./github-dark-DHJKELXO.js"),[],import.meta.url)],langs:[mo(()=>import("./javascript-ySlJ1b_l.js"),[],import.meta.url),mo(()=>import("./typescript-Dj6nwHGl.js"),[],import.meta.url),mo(()=>import("./tsx-B6W0miNI.js"),[],import.meta.url),mo(()=>import("./jsx-BAng5TT0.js"),[],import.meta.url),mo(()=>import("./json-BQoSv7ci.js"),[],import.meta.url),mo(()=>import("./bash-atvbtKCR.js"),[],import.meta.url),mo(()=>import("./markdown-UIAJJxZW.js"),[],import.meta.url),mo(()=>import("./python-DhUJRlN_.js"),[],import.meta.url)],engine:t()})})()),see}async function sVn(e,t){const n=nVn[t?.toLowerCase()];if(!n)return null;const r=await rVn(),{tokens:s}=r.codeToTokens(e,{lang:n,defaultColor:!1,themes:{light:"github-light",dark:"github-dark"}});return s}function aVn(e){return new LO(lSe.define(e))}const y1t=[ng.of({name:"JavaScript",alias:["ecmascript","js","node"],extensions:["js","mjs","cjs"],load(){return mo(()=>Promise.resolve().then(()=>G6),void 0,import.meta.url).then(e=>e.javascript())}}),ng.of({name:"JSON",alias:["json5"],extensions:["json","map"],load(){return mo(()=>Promise.resolve().then(()=>PFn),void 0,import.meta.url).then(e=>e.json())}}),ng.of({name:"JSX",extensions:["jsx"],load(){return mo(()=>Promise.resolve().then(()=>G6),void 0,import.meta.url).then(e=>e.javascript({jsx:!0}))}}),ng.of({name:"Markdown",extensions:["md","markdown","mkd"],load(){return mo(()=>Promise.resolve().then(()=>j7n),void 0,import.meta.url).then(e=>e.markdown())}}),ng.of({name:"TSX",extensions:["tsx"],load(){return mo(()=>Promise.resolve().then(()=>G6),void 0,import.meta.url).then(e=>e.javascript({jsx:!0,typescript:!0}))}}),ng.of({name:"TypeScript",alias:["ts"],extensions:["ts","mts","cts"],load(){return mo(()=>Promise.resolve().then(()=>G6),void 0,import.meta.url).then(e=>e.javascript({typescript:!0}))}}),ng.of({name:"Shell",alias:["bash","sh","zsh"],extensions:["sh","ksh","bash"],filename:/^PKGBUILD$/,load(){return mo(()=>import("./shell-CjFT_Tl9.js"),[],import.meta.url).then(e=>aVn(e.shell))}})];function iVn(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 oVn(e){const t=iVn(e);return u0t({override:[lVn(t)],defaultKeymap:!0,closeOnBlur:!0,icons:!1})}function lVn(e){return t=>{const r=t.state.sliceDoc(Math.max(0,t.pos-50),t.pos).match(/\{\{([a-zA-Z0-9_.\[\]]*)?$/);if(!r)return null;const s=r[1]??"",a=t.pos-s.length,i=s?e.filter(c=>c.path.toLowerCase().startsWith(s.toLowerCase())):e;if(i.length===0)return null;const l=i.map(c=>({label:c.path,displayLabel:c.path,detail:c.type,info:c.description,apply:(u,d,f,p)=>{const g=u.state.sliceDoc(p,p+2)==="}}"?d.label:`${d.label}}}`;u.dispatch({changes:{from:f,to:p,insert:g},selection:{anchor:f+g.length}})}}));return{from:a,options:l,validFor:/^[a-zA-Z0-9_.\[\]]*$/}}}const cVn=/\{\{([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)*)\}\}/g,uVn=jn.mark({class:"cm-variable-highlight"}),Pze=new Oxt({regexp:cVn,decoration:()=>uVn}),dVn=Co.fromClass(class{decorations;constructor(e){this.decorations=Pze.createDeco(e)}update(e){this.decorations=Pze.updateDeco(e,this.decorations)}},{decorations:e=>e.decorations}),fVn=dVn;function pVn(){const e=cI({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:[pe.className,pe.propertyName],color:"var(--neutral6)"},{tag:pe.heading,color:"var(--accent3)",fontWeight:"bold"},{tag:[pe.heading1,pe.heading2,pe.heading3,pe.heading4,pe.heading5,pe.heading6],color:"var(--accent3)",fontWeight:"bold"},{tag:pe.emphasis,fontStyle:"italic",color:"var(--neutral6)"},{tag:pe.strong,fontWeight:"bold",color:"var(--neutral6)"},{tag:pe.link,color:"var(--accent3)",textDecoration:"underline"},{tag:pe.url,color:"var(--accent3)"},{tag:pe.monospace,color:"var(--neutral6)"},{tag:pe.strikethrough,textDecoration:"line-through"},{tag:pe.quote,fontStyle:"italic",color:"var(--neutral2)"}]}),t=Nt.theme({".cm-editor":{backgroundColor:"transparent"},".cm-content":{color:"var(--neutral6)",caretColor:"var(--neutral6)"},".cm-lineNumbers .cm-gutterElement":{color:"var(--neutral2)"},".cm-activeLineGutter":{color:"var(--neutral3)"},".cm-cursor":{borderLeftColor:"var(--neutral6)"},".cm-selectionBackground, .cm-content ::selection":{backgroundColor:"color-mix(in srgb, var(--accent3) 22%, transparent)"},".cm-tooltip-autocomplete":{backgroundColor:"var(--surface2)",border:"1px solid var(--border1)",borderRadius:"6px",boxShadow:"0 8px 16px rgba(0, 0, 0, 0.2)"},".cm-tooltip-autocomplete > ul":{fontFamily:"var(--font-mono)"},".cm-completionLabel":{color:"var(--neutral6)"},".cm-completionDetail":{color:"var(--neutral3)",fontSize:"0.7rem",marginLeft:"auto",paddingLeft:"12px"},".cm-completionInfo":{backgroundColor:"var(--surface2)",border:"1px solid var(--border1)",color:"var(--neutral3)",padding:"8px 12px"},".cm-completionIcon":{display:"none"},"ul.cm-completionList li[aria-selected]":{backgroundColor:"var(--surface4)",color:"var(--neutral6)"},".cm-line .cm-variable-highlight":{color:"var(--accent6) !important",fontWeight:"500"}});return[e,t]}function hVn(){const e=Nt.theme({"&":{backgroundColor:"transparent",color:"var(--neutral6)",fontSize:"0.8rem"},"&.cm-editor .cm-scroller":{fontFamily:"var(--font-mono)"},".cm-gutters":{backgroundColor:"transparent",color:"var(--neutral2)",borderRight:"none"},".cm-content":{color:"var(--neutral6)",caretColor:"var(--neutral6)"},".cm-activeLine":{backgroundColor:"transparent"},".cm-lineNumbers .cm-gutterElement":{color:"var(--neutral2)"},".cm-activeLineGutter":{backgroundColor:"transparent",color:"var(--neutral3)"},".cm-cursor, .cm-dropCursor":{borderLeftColor:"var(--neutral6)"},"&.cm-focused .cm-selectionBackground, & .cm-line::selection, & .cm-selectionLayer .cm-selectionBackground, .cm-content ::selection":{background:"color-mix(in srgb, var(--accent3) 22%, transparent) !important"},".cm-tooltip-autocomplete":{backgroundColor:"var(--surface2)",border:"1px solid var(--border1)",borderRadius:"6px",boxShadow:"0 8px 16px rgba(0, 0, 0, 0.2)"},".cm-tooltip-autocomplete > ul":{fontFamily:"var(--font-mono)"},".cm-completionLabel":{color:"var(--neutral6)"},".cm-completionDetail":{color:"var(--neutral3)",fontSize:"0.7rem",marginLeft:"auto",paddingLeft:"12px"},".cm-completionInfo":{backgroundColor:"var(--surface2)",border:"1px solid var(--border1)",color:"var(--neutral3)",padding:"8px 12px"},".cm-completionIcon":{display:"none"},"ul.cm-completionList li[aria-selected]":{backgroundColor:"var(--surface4)",color:"var(--neutral6)"},".cm-line .cm-variable-highlight":{color:"var(--accent6) !important",fontWeight:"500"}}),t=Ug.define([{tag:[pe.comment,pe.bracket],color:"var(--neutral2)"},{tag:[pe.string,pe.meta,pe.regexp],color:"var(--accent1)"},{tag:[pe.atom,pe.bool,pe.special(pe.variableName)],color:"var(--accent6)"},{tag:[pe.keyword,pe.operator,pe.tagName],color:"var(--accent2)"},{tag:[pe.function(pe.propertyName),pe.propertyName],color:"var(--accent5)"},{tag:[pe.definition(pe.variableName),pe.function(pe.variableName),pe.className,pe.attributeName],color:"var(--accent3)"},{tag:[pe.variableName,pe.number],color:"var(--accent5)"},{tag:[pe.name,pe.quote],color:"var(--accent1)"},{tag:pe.heading,color:"var(--accent3)",fontWeight:"bold"},{tag:[pe.heading1,pe.heading2,pe.heading3,pe.heading4,pe.heading5,pe.heading6],color:"var(--accent3)",fontWeight:"bold"},{tag:[pe.emphasis],fontStyle:"italic",color:"var(--neutral6)"},{tag:[pe.strong],fontWeight:"bold",color:"var(--neutral6)"},{tag:pe.link,color:"var(--accent3)",textDecoration:"underline"},{tag:pe.url,color:"var(--accent3)"},{tag:pe.monospace,color:"var(--neutral6)"},{tag:pe.strikethrough,textDecoration:"line-through"},{tag:[pe.deleted],color:"var(--accent2)"},{tag:pe.invalid,color:"var(--error)"},{tag:[pe.standard(pe.tagName)],color:"var(--accent1)"}]);return[e,U1(t)]}const Xx=()=>{const e=U_().resolvedTheme==="dark";return v.useMemo(()=>e?pVn():hVn(),[e])},mVn=co(X("relative overflow-hidden font-mono outline-hidden focus-within:outline-hidden focus:outline-hidden","duration-normal transition-colors ease-out-custom"),{variants:{variant:{default:"rounded-md border border-border1 bg-surface3 p-1 focus-within:border-neutral6/20",embedded:"rounded-none border-none bg-transparent p-0"}},defaultVariants:{variant:"default"}}),gVn=Xp.highest(Nt.editorAttributes.of({style:"outline: none"})),vVn=Xp.highest(Nt.theme({"&":{outline:"none"},"&.cm-focused":{outline:"none"},".cm-scroller":{outline:"none"},".cm-content":{outline:"none"},".cm-content:focus":{outline:"none"}})),yVn=[gVn,vVn],Wr=v.forwardRef(({data:e,value:t,onChange:n,showCopyButton:r=!0,className:s,language:a="json",highlightVariables:i=!1,placeholder:l,schema:c,autoFocus:u,lineNumbers:d=!0,lineWrapping:f=!0,editable:p,variant:h,...m},g)=>{const y=Xx(),b=e?JSON.stringify(e,null,2):t??"",x=v.useMemo(()=>{const S=[...yVn];return f&&S.push(Nt.lineWrapping),a==="json"?S.push(Rp):a==="markdown"&&S.push($Se({base:BO,codeLanguages:y1t})),i&&a==="markdown"&&S.push(fVn),c&&a==="markdown"&&S.push(oVn(c)),p===!1&&S.push(cs.readOnly.of(!0)),S},[a,i,c,p,f]);return o.jsxs("div",{className:X(mVn({variant:h}),s),...m,children:[r&&o.jsx(Pa,{content:b,className:"absolute top-2 right-2 z-20"}),o.jsx(Qu,{ref:g,value:b,theme:y,extensions:x,onChange:n,editable:p,"aria-label":"Code editor",placeholder:l,height:"100%",style:{height:"100%"},autoFocus:u,basicSetup:{lineNumbers:d}})]})}),bVn=e=>{try{return JSON.stringify(e??{},null,2)}catch{return"{}"}},xVn=({editorClassName:e="h-[240px] max-h-[40vh]",onSaved:t})=>{const n=Xx(),{settings:r,setSettings:s}=nH(),a=r?.tracingOptions,i=v.useMemo(()=>bVn(a),[a]),[l,c]=v.useState(()=>i),u=v.useRef(!1);v.useEffect(()=>{u.current||c(i)},[i]);const d=p=>{u.current=!0,c(p)},f=()=>{if(!l){s({...r,tracingOptions:void 0}),t?.();return}try{const p=JSON.parse(l);typeof p=="object"&&p!==null&&s({...r,tracingOptions:p})}catch{return}t?.()};return o.jsxs("div",{className:"space-y-2 px-5 py-2",children:[o.jsx(ye,{as:"h3",variant:"ui-md",className:"text-neutral3",children:"Tracing Options"}),o.jsx(Qu,{value:l,onChange:d,theme:n,extensions:[Rp],className:X("overflow-y-scroll bg-surface3 rounded-lg overflow-hidden p-3",e)}),o.jsx("div",{className:"flex items-center justify-end",children:o.jsx(oe,{type:"button",onClick:f,children:"Save"})})]})},wVn=()=>{const[e,t]=v.useState(!1);return o.jsxs(o.Fragment,{children:[o.jsxs(Pn,{children:[o.jsx(An,{asChild:!0,children:o.jsx(oe,{type:"button",variant:"ghost",size:"icon-md","aria-label":"Run Options",onClick:()=>t(!0),children:o.jsx(qe,{children:o.jsx(ZV,{})})})}),o.jsx(Rn,{children:"Run Options"})]}),o.jsx(br,{open:e,onOpenChange:t,children:o.jsxs(xr,{children:[o.jsxs(wr,{children:[o.jsx(gr,{children:"Run Options"}),o.jsx(Ks,{children:"Configure tracing and debug options for this workflow run"})]}),o.jsx($r,{children:o.jsx(xVn,{onSaved:()=>t(!1)})})]})})]})};function SVn({status:e}){switch(e){case"running":return o.jsx(Xt,{});case"failed":return o.jsx(bs,{className:"text-accent2"});case"canceled":return o.jsx(Nf,{className:"text-neutral3"});case"pending":case"waiting":return o.jsx(dT,{className:"text-neutral3"});case"suspended":return o.jsx(UV,{className:"text-accent3"});case"success":return o.jsx(fa,{className:"text-accent1"});default:return o.jsx(dT,{className:"text-neutral3"})}}function b1t({status:e}){return o.jsxs(Pn,{children:[o.jsx(An,{asChild:!0,children:o.jsx(qe,{"aria-label":e,className:"shrink-0",children:o.jsx(SVn,{status:e})})}),o.jsx(Rn,{children:e})]})}var aee,$ze;function qSe(){if($ze)return aee;$ze=1;var e="\0",t="\0",n="";class r{_isDirected=!0;_isMultigraph=!1;_isCompound=!1;_label;_defaultNodeLabelFn=()=>{};_defaultEdgeLabelFn=()=>{};_nodes={};_in={};_preds={};_out={};_sucs={};_edgeObjs={};_edgeLabels={};_nodeCount=0;_edgeCount=0;_parent;_children;constructor(d){d&&(this._isDirected=Object.hasOwn(d,"directed")?d.directed:!0,this._isMultigraph=Object.hasOwn(d,"multigraph")?d.multigraph:!1,this._isCompound=Object.hasOwn(d,"compound")?d.compound:!1),this._isCompound&&(this._parent={},this._children={},this._children[t]={})}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(d){return this._label=d,this}graph(){return this._label}setDefaultNodeLabel(d){return this._defaultNodeLabelFn=d,typeof d!="function"&&(this._defaultNodeLabelFn=()=>d),this}nodeCount(){return this._nodeCount}nodes(){return Object.keys(this._nodes)}sources(){var d=this;return this.nodes().filter(f=>Object.keys(d._in[f]).length===0)}sinks(){var d=this;return this.nodes().filter(f=>Object.keys(d._out[f]).length===0)}setNodes(d,f){var p=arguments,h=this;return d.forEach(function(m){p.length>1?h.setNode(m,f):h.setNode(m)}),this}setNode(d,f){return Object.hasOwn(this._nodes,d)?(arguments.length>1&&(this._nodes[d]=f),this):(this._nodes[d]=arguments.length>1?f:this._defaultNodeLabelFn(d),this._isCompound&&(this._parent[d]=t,this._children[d]={},this._children[t][d]=!0),this._in[d]={},this._preds[d]={},this._out[d]={},this._sucs[d]={},++this._nodeCount,this)}node(d){return this._nodes[d]}hasNode(d){return Object.hasOwn(this._nodes,d)}removeNode(d){var f=this;if(Object.hasOwn(this._nodes,d)){var p=h=>f.removeEdge(f._edgeObjs[h]);delete this._nodes[d],this._isCompound&&(this._removeFromParentsChildList(d),delete this._parent[d],this.children(d).forEach(function(h){f.setParent(h)}),delete this._children[d]),Object.keys(this._in[d]).forEach(p),delete this._in[d],delete this._preds[d],Object.keys(this._out[d]).forEach(p),delete this._out[d],delete this._sucs[d],--this._nodeCount}return this}setParent(d,f){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(f===void 0)f=t;else{f+="";for(var p=f;p!==void 0;p=this.parent(p))if(p===d)throw new Error("Setting "+f+" as parent of "+d+" would create a cycle");this.setNode(f)}return this.setNode(d),this._removeFromParentsChildList(d),this._parent[d]=f,this._children[f][d]=!0,this}_removeFromParentsChildList(d){delete this._children[this._parent[d]][d]}parent(d){if(this._isCompound){var f=this._parent[d];if(f!==t)return f}}children(d=t){if(this._isCompound){var f=this._children[d];if(f)return Object.keys(f)}else{if(d===t)return this.nodes();if(this.hasNode(d))return[]}}predecessors(d){var f=this._preds[d];if(f)return Object.keys(f)}successors(d){var f=this._sucs[d];if(f)return Object.keys(f)}neighbors(d){var f=this.predecessors(d);if(f){const h=new Set(f);for(var p of this.successors(d))h.add(p);return Array.from(h.values())}}isLeaf(d){var f;return this.isDirected()?f=this.successors(d):f=this.neighbors(d),f.length===0}filterNodes(d){var f=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});f.setGraph(this.graph());var p=this;Object.entries(this._nodes).forEach(function([g,y]){d(g)&&f.setNode(g,y)}),Object.values(this._edgeObjs).forEach(function(g){f.hasNode(g.v)&&f.hasNode(g.w)&&f.setEdge(g,p.edge(g))});var h={};function m(g){var y=p.parent(g);return y===void 0||f.hasNode(y)?(h[g]=y,y):y in h?h[y]:m(y)}return this._isCompound&&f.nodes().forEach(g=>f.setParent(g,m(g))),f}setDefaultEdgeLabel(d){return this._defaultEdgeLabelFn=d,typeof d!="function"&&(this._defaultEdgeLabelFn=()=>d),this}edgeCount(){return this._edgeCount}edges(){return Object.values(this._edgeObjs)}setPath(d,f){var p=this,h=arguments;return d.reduce(function(m,g){return h.length>1?p.setEdge(m,g,f):p.setEdge(m,g),g}),this}setEdge(){var d,f,p,h,m=!1,g=arguments[0];typeof g=="object"&&g!==null&&"v"in g?(d=g.v,f=g.w,p=g.name,arguments.length===2&&(h=arguments[1],m=!0)):(d=g,f=arguments[1],p=arguments[3],arguments.length>2&&(h=arguments[2],m=!0)),d=""+d,f=""+f,p!==void 0&&(p=""+p);var y=i(this._isDirected,d,f,p);if(Object.hasOwn(this._edgeLabels,y))return m&&(this._edgeLabels[y]=h),this;if(p!==void 0&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(d),this.setNode(f),this._edgeLabels[y]=m?h:this._defaultEdgeLabelFn(d,f,p);var b=l(this._isDirected,d,f,p);return d=b.v,f=b.w,Object.freeze(b),this._edgeObjs[y]=b,s(this._preds[f],d),s(this._sucs[d],f),this._in[f][y]=b,this._out[d][y]=b,this._edgeCount++,this}edge(d,f,p){var h=arguments.length===1?c(this._isDirected,arguments[0]):i(this._isDirected,d,f,p);return this._edgeLabels[h]}edgeAsObj(){const d=this.edge(...arguments);return typeof d!="object"?{label:d}:d}hasEdge(d,f,p){var h=arguments.length===1?c(this._isDirected,arguments[0]):i(this._isDirected,d,f,p);return Object.hasOwn(this._edgeLabels,h)}removeEdge(d,f,p){var h=arguments.length===1?c(this._isDirected,arguments[0]):i(this._isDirected,d,f,p),m=this._edgeObjs[h];return m&&(d=m.v,f=m.w,delete this._edgeLabels[h],delete this._edgeObjs[h],a(this._preds[f],d),a(this._sucs[d],f),delete this._in[f][h],delete this._out[d][h],this._edgeCount--),this}inEdges(d,f){var p=this._in[d];if(p){var h=Object.values(p);return f?h.filter(m=>m.v===f):h}}outEdges(d,f){var p=this._out[d];if(p){var h=Object.values(p);return f?h.filter(m=>m.w===f):h}}nodeEdges(d,f){var p=this.inEdges(d,f);if(p)return p.concat(this.outEdges(d,f))}}function s(u,d){u[d]?u[d]++:u[d]=1}function a(u,d){--u[d]||delete u[d]}function i(u,d,f,p){var h=""+d,m=""+f;if(!u&&h>m){var g=h;h=m,m=g}return h+n+m+n+(p===void 0?e:p)}function l(u,d,f,p){var h=""+d,m=""+f;if(!u&&h>m){var g=h;h=m,m=g}var y={v:h,w:m};return p&&(y.name=p),y}function c(u,d){return i(u,d.v,d.w,d.name)}return aee=r,aee}var iee,Mze;function kVn(){return Mze||(Mze=1,iee="2.2.4"),iee}var oee,Dze;function OVn(){return Dze||(Dze=1,oee={Graph:qSe(),version:kVn()}),oee}var lee,Lze;function _Vn(){if(Lze)return lee;Lze=1;var e=qSe();lee={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 lee}var cee,Fze;function CVn(){if(Fze)return cee;Fze=1,cee=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 cee}var uee,zze;function x1t(){if(zze)return uee;zze=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 uee=e,uee}var dee,Bze;function w1t(){if(Bze)return dee;Bze=1;var e=x1t();dee=n;var t=()=>1;function n(s,a,i,l){return r(s,String(a),i||t,l||function(c){return s.outEdges(c)})}function r(s,a,i,l){var c={},u=new e,d,f,p=function(h){var m=h.v!==d?h.v:h.w,g=c[m],y=i(h),b=f.distance+y;if(y<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+h+" Weight: "+y);b<g.distance&&(g.distance=b,g.predecessor=d,u.decrease(m,b))};for(s.nodes().forEach(function(h){var m=h===a?0:Number.POSITIVE_INFINITY;c[h]={distance:m},u.add(h,m)});u.size()>0&&(d=u.removeMin(),f=c[d],f.distance!==Number.POSITIVE_INFINITY);)l(d).forEach(p);return c}return dee}var fee,Uze;function EVn(){if(Uze)return fee;Uze=1;var e=w1t();fee=t;function t(n,r,s){return n.nodes().reduce(function(a,i){return a[i]=e(n,i,r,s),a},{})}return fee}var pee,Vze;function S1t(){if(Vze)return pee;Vze=1,pee=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 pee}var hee,qze;function jVn(){if(qze)return hee;qze=1;var e=S1t();hee=t;function t(n){return e(n).filter(function(r){return r.length>1||r.length===1&&n.hasEdge(r[0],r[0])})}return hee}var mee,Hze;function TVn(){if(Hze)return mee;Hze=1,mee=t;var e=()=>1;function t(r,s,a){return n(r,s||e,a||function(i){return r.outEdges(i)})}function n(r,s,a){var i={},l=r.nodes();return l.forEach(function(c){i[c]={},i[c][c]={distance:0},l.forEach(function(u){c!==u&&(i[c][u]={distance:Number.POSITIVE_INFINITY})}),a(c).forEach(function(u){var d=u.v===c?u.w:u.v,f=s(u);i[c][d]={distance:f,predecessor:c}})}),l.forEach(function(c){var u=i[c];l.forEach(function(d){var f=i[d];l.forEach(function(p){var h=f[c],m=u[p],g=f[p],y=h.distance+m.distance;y<g.distance&&(g.distance=y,g.predecessor=m.predecessor)})})}),i}return mee}var gee,Wze;function k1t(){if(Wze)return gee;Wze=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 gee=e,e.CycleException=t,gee}var vee,Zze;function NVn(){if(Zze)return vee;Zze=1;var e=k1t();vee=t;function t(n){try{e(n)}catch(r){if(r instanceof e.CycleException)return!1;throw r}return!0}return vee}var yee,Gze;function O1t(){if(Gze)return yee;Gze=1,yee=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 yee}var bee,Qze;function IVn(){if(Qze)return bee;Qze=1;var e=O1t();bee=t;function t(n,r){return e(n,r,"post")}return bee}var xee,Yze;function AVn(){if(Yze)return xee;Yze=1;var e=O1t();xee=t;function t(n,r){return e(n,r,"pre")}return xee}var wee,Kze;function RVn(){if(Kze)return wee;Kze=1;var e=qSe(),t=x1t();wee=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 wee}var See,Xze;function PVn(){return Xze||(Xze=1,See={components:CVn(),dijkstra:w1t(),dijkstraAll:EVn(),findCycles:jVn(),floydWarshall:TVn(),isAcyclic:NVn(),postorder:IVn(),preorder:AVn(),prim:RVn(),tarjan:S1t(),topsort:k1t()}),See}var kee,Jze;function Mg(){if(Jze)return kee;Jze=1;var e=OVn();return kee={Graph:e.Graph,json:_Vn(),alg:PVn(),version:e.version},kee}var Oee,e8e;function $Vn(){if(e8e)return Oee;e8e=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 Oee=e,Oee}var _ee,t8e;function MVn(){if(t8e)return _ee;t8e=1;let e=Mg().Graph,t=$Vn();_ee=r;let n=()=>1;function r(u,d){if(u.nodeCount()<=1)return[];let f=i(u,d||n);return s(f.graph,f.buckets,f.zeroIdx).flatMap(h=>u.outEdges(h.v,h.w))}function s(u,d,f){let p=[],h=d[d.length-1],m=d[0],g;for(;u.nodeCount();){for(;g=m.dequeue();)a(u,d,f,g);for(;g=h.dequeue();)a(u,d,f,g);if(u.nodeCount()){for(let y=d.length-2;y>0;--y)if(g=d[y].dequeue(),g){p=p.concat(a(u,d,f,g,!0));break}}}return p}function a(u,d,f,p,h){let m=h?[]:void 0;return u.inEdges(p.v).forEach(g=>{let y=u.edge(g),b=u.node(g.v);h&&m.push({v:g.v,w:g.w}),b.out-=y,l(d,f,b)}),u.outEdges(p.v).forEach(g=>{let y=u.edge(g),b=g.w,x=u.node(b);x.in-=y,l(d,f,x)}),u.removeNode(p.v),m}function i(u,d){let f=new e,p=0,h=0;u.nodes().forEach(y=>{f.setNode(y,{v:y,in:0,out:0})}),u.edges().forEach(y=>{let b=f.edge(y.v,y.w)||0,x=d(y),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),g=p+1;return f.nodes().forEach(y=>{l(m,g,f.node(y))}),{graph:f,buckets:m,zeroIdx:g}}function l(u,d,f){f.out?f.in?u[f.out-f.in+d].enqueue(f):u[u.length-1].enqueue(f):u[0].enqueue(f)}function c(u){const d=[];for(let f=0;f<u;f++)d.push(f);return d}return _ee}var Cee,n8e;function Ml(){if(n8e)return Cee;n8e=1;let e=Mg().Graph;Cee={addBorderNode:d,addDummyNode:t,applyWithChunking:h,asNonCompoundGraph:r,buildLayerMatrix:l,intersectRect:i,mapValues:C,maxRank:m,normalizeRanks:c,notime:b,partition:g,pick:_,predecessorWeights:a,range:k,removeEmptyRanks:u,simplify:n,successorWeights:s,time:y,uniqueId:S,zipObject:E};function t(j,N,I,A){for(var R=A;j.hasNode(R);)R=S(A);return I.dummy=N,j.setNode(R,I),R}function n(j){let N=new e().setGraph(j.graph());return j.nodes().forEach(I=>N.setNode(I,j.node(I))),j.edges().forEach(I=>{let A=N.edge(I.v,I.w)||{weight:0,minlen:1},R=j.edge(I);N.setEdge(I.v,I.w,{weight:A.weight+R.weight,minlen:Math.max(A.minlen,R.minlen)})}),N}function r(j){let N=new e({multigraph:j.isMultigraph()}).setGraph(j.graph());return j.nodes().forEach(I=>{j.children(I).length||N.setNode(I,j.node(I))}),j.edges().forEach(I=>{N.setEdge(I,j.edge(I))}),N}function s(j){let N=j.nodes().map(I=>{let A={};return j.outEdges(I).forEach(R=>{A[R.w]=(A[R.w]||0)+j.edge(R).weight}),A});return E(j.nodes(),N)}function a(j){let N=j.nodes().map(I=>{let A={};return j.inEdges(I).forEach(R=>{A[R.v]=(A[R.v]||0)+j.edge(R).weight}),A});return E(j.nodes(),N)}function i(j,N){let I=j.x,A=j.y,R=N.x-I,L=N.y-A,D=j.width/2,B=j.height/2;if(!R&&!L)throw new Error("Not possible to find intersection inside of the rectangle");let H,F;return Math.abs(L)*D>Math.abs(R)*B?(L<0&&(B=-B),H=B*R/L,F=B):(R<0&&(D=-D),H=D,F=D*L/R),{x:I+H,y:A+F}}function l(j){let N=k(m(j)+1).map(()=>[]);return j.nodes().forEach(I=>{let A=j.node(I),R=A.rank;R!==void 0&&(N[R][A.order]=I)}),N}function c(j){let N=j.nodes().map(A=>{let R=j.node(A).rank;return R===void 0?Number.MAX_VALUE:R}),I=h(Math.min,N);j.nodes().forEach(A=>{let R=j.node(A);Object.hasOwn(R,"rank")&&(R.rank-=I)})}function u(j){let N=j.nodes().map(D=>j.node(D).rank),I=h(Math.min,N),A=[];j.nodes().forEach(D=>{let B=j.node(D).rank-I;A[B]||(A[B]=[]),A[B].push(D)});let R=0,L=j.graph().nodeRankFactor;Array.from(A).forEach((D,B)=>{D===void 0&&B%L!==0?--R:D!==void 0&&R&&D.forEach(H=>j.node(H).rank+=R)})}function d(j,N,I,A){let R={width:0,height:0};return arguments.length>=4&&(R.rank=I,R.order=A),t(j,"border",R,N)}function f(j,N=p){const I=[];for(let A=0;A<j.length;A+=N){const R=j.slice(A,A+N);I.push(R)}return I}const p=65535;function h(j,N){if(N.length>p){const I=f(N);return j.apply(null,I.map(A=>j.apply(null,A)))}else return j.apply(null,N)}function m(j){const I=j.nodes().map(A=>{let R=j.node(A).rank;return R===void 0?Number.MIN_VALUE:R});return h(Math.max,I)}function g(j,N){let I={lhs:[],rhs:[]};return j.forEach(A=>{N(A)?I.lhs.push(A):I.rhs.push(A)}),I}function y(j,N){let I=Date.now();try{return N()}finally{console.log(j+" time: "+(Date.now()-I)+"ms")}}function b(j,N){return N()}let x=0;function S(j){var N=++x;return j+(""+N)}function k(j,N,I=1){N==null&&(N=j,j=0);let A=L=>L<N;I<0&&(A=L=>N<L);const R=[];for(let L=j;A(L);L+=I)R.push(L);return R}function _(j,N){const I={};for(const A of N)j[A]!==void 0&&(I[A]=j[A]);return I}function C(j,N){let I=N;return typeof N=="string"&&(I=A=>A[N]),Object.entries(j).reduce((A,[R,L])=>(A[R]=I(L,R),A),{})}function E(j,N){return j.reduce((I,A,R)=>(I[A]=N[R],I),{})}return Cee}var Eee,r8e;function DVn(){if(r8e)return Eee;r8e=1;let e=MVn(),t=Ml().uniqueId;Eee={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 Eee}var jee,s8e;function LVn(){if(s8e)return jee;s8e=1;let e=Ml();jee={run:t,undo:r};function t(s){s.graph().dummyChains=[],s.edges().forEach(a=>n(s,a))}function n(s,a){let i=a.v,l=s.node(i).rank,c=a.w,u=s.node(c).rank,d=a.name,f=s.edge(a),p=f.labelRank;if(u===l+1)return;s.removeEdge(a);let h,m,g;for(g=0,++l;l<u;++g,++l)f.points=[],m={width:0,height:0,edgeLabel:f,edgeObj:a,rank:l},h=e.addDummyNode(s,"edge",m,"_d"),l===p&&(m.width=f.width,m.height=f.height,m.dummy="edge-label",m.labelpos=f.labelpos),s.setEdge(i,h,{weight:f.weight},d),g===0&&s.graph().dummyChains.push(h),i=h;s.setEdge(i,c,{weight:f.weight},d)}function r(s){s.graph().dummyChains.forEach(a=>{let i=s.node(a),l=i.edgeLabel,c;for(s.setEdge(i.edgeObj,l);i.dummy;)c=s.successors(a)[0],s.removeNode(a),l.points.push({x:i.x,y:i.y}),i.dummy==="edge-label"&&(l.x=i.x,l.y=i.y,l.width=i.width,l.height=i.height),a=c,i=s.node(a)})}return jee}var Tee,a8e;function bB(){if(a8e)return Tee;a8e=1;const{applyWithChunking:e}=Ml();Tee={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 Tee}var Nee,i8e;function _1t(){if(i8e)return Nee;i8e=1;var e=Mg().Graph,t=bB().slack;Nee=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 Nee}var Iee,o8e;function FVn(){if(o8e)return Iee;o8e=1;var e=_1t(),t=bB().slack,n=bB().longestPath,r=Mg().alg.preorder,s=Mg().alg.postorder,a=Ml().simplify;Iee=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,E=!0,j=S.edge(k,C),N=0;return j||(E=!1,j=S.edge(C,k)),N=j.weight,S.nodeEdges(k).forEach(I=>{var A=I.v===k,R=A?I.w:I.v;if(R!==C){var L=A===E,D=S.edge(I).weight;if(N+=L?D:-D,y(x,k,R)){var B=x.edge(k,R).cutvalue;N+=L?-B:B}}}),N}function d(x,S){arguments.length<2&&(S=x.nodes()[0]),f(x,{},1,S)}function f(x,S,k,_,C){var E=k,j=x.node(_);return S[_]=!0,x.neighbors(_).forEach(N=>{Object.hasOwn(S,N)||(k=f(x,S,k,N,_))}),j.low=E,j.lim=k++,C?j.parent=C:delete j.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 E=x.node(_),j=x.node(C),N=E,I=!1;E.lim>j.lim&&(N=j,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,E=k.w;x.removeEdge(C,E),x.setEdge(_.v,_.w,{}),d(x),l(x,S),g(x,S)}function g(x,S){var k=x.nodes().find(C=>!S.node(C).parent),_=r(x,k);_=_.slice(1),_.forEach(C=>{var E=x.node(C).parent,j=S.edge(C,E),N=!1;j||(j=S.edge(E,C),N=!0),S.node(C).rank=S.node(E).rank+(N?j.minlen:-j.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 Iee}var Aee,l8e;function zVn(){if(l8e)return Aee;l8e=1;var e=bB(),t=e.longestPath,n=_1t(),r=FVn();Aee=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 Aee}var Ree,c8e;function BVn(){if(c8e)return Ree;c8e=1,Ree=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 Ree}var Pee,u8e;function UVn(){if(u8e)return Pee;u8e=1;let e=Ml();Pee={run:t,cleanup:a};function t(i){let l=e.addDummyNode(i,"root",{},"_root"),c=r(i),u=Object.values(c),d=e.applyWithChunking(Math.max,u)-1,f=2*d+1;i.graph().nestingRoot=l,i.edges().forEach(h=>i.edge(h).minlen*=f);let p=s(i)+1;i.children().forEach(h=>n(i,l,f,p,d,c,h)),i.graph().nodeRankFactor=f}function n(i,l,c,u,d,f,p){let h=i.children(p);if(!h.length){p!==l&&i.setEdge(l,p,{weight:0,minlen:c});return}let m=e.addBorderNode(i,"_bt"),g=e.addBorderNode(i,"_bb"),y=i.node(p);i.setParent(m,p),y.borderTop=m,i.setParent(g,p),y.borderBottom=g,h.forEach(b=>{n(i,l,c,u,d,f,b);let x=i.node(b),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,g,{weight:_,minlen:C,nestingEdge:!0})}),i.parent(p)||i.setEdge(l,m,{weight:0,minlen:d+f[p]})}function r(i){var l={};function c(u,d){var f=i.children(u);f&&f.length&&f.forEach(p=>c(p,d+1)),l[u]=d}return i.children().forEach(u=>c(u,1)),l}function s(i){return i.edges().reduce((l,c)=>l+i.edge(c).weight,0)}function a(i){var l=i.graph();i.removeNode(l.nestingRoot),delete l.nestingRoot,i.edges().forEach(c=>{var u=i.edge(c);u.nestingEdge&&i.removeEdge(c)})}return Pee}var $ee,d8e;function VVn(){if(d8e)return $ee;d8e=1;let e=Ml();$ee=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 $ee}var Mee,f8e;function qVn(){if(f8e)return Mee;f8e=1,Mee={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 Mee}var Dee,p8e;function HVn(){if(p8e)return Dee;p8e=1;let e=Ml();Dee=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 Dee}var Lee,h8e;function WVn(){if(h8e)return Lee;h8e=1;let e=Ml().zipObject;Lee=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 Lee}var Fee,m8e;function ZVn(){if(m8e)return Fee;m8e=1,Fee=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 Fee}var zee,g8e;function GVn(){if(g8e)return zee;g8e=1;let e=Ml();zee=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 zee}var Bee,v8e;function QVn(){if(v8e)return Bee;v8e=1;let e=Ml();Bee=t;function t(s,a){let i=e.partition(s,m=>Object.hasOwn(m,"barycenter")),l=i.lhs,c=i.rhs.sort((m,g)=>g.i-m.i),u=[],d=0,f=0,p=0;l.sort(r(!!a)),p=n(u,c,p),l.forEach(m=>{p+=m.vs.length,u.push(m.vs),d+=m.barycenter*m.weight,f+=m.weight,p=n(u,c,p)});let h={vs:u.flat(!0)};return f&&(h.barycenter=d/f,h.weight=f),h}function n(s,a,i){let l;for(;a.length&&(l=a[a.length-1]).i<=i;)a.pop(),s.push(l.vs),i++;return i}function r(s){return(a,i)=>a.barycenter<i.barycenter?-1:a.barycenter>i.barycenter?1:s?i.i-a.i:a.i-i.i}return Bee}var Uee,y8e;function YVn(){if(y8e)return Uee;y8e=1;let e=ZVn(),t=GVn(),n=QVn();Uee=r;function r(i,l,c,u){let d=i.children(l),f=i.node(l),p=f?f.borderLeft:void 0,h=f?f.borderRight:void 0,m={};p&&(d=d.filter(x=>x!==p&&x!==h));let g=e(i,d);g.forEach(x=>{if(i.children(x.v).length){let S=r(i,x.v,c,u);m[x.v]=S,Object.hasOwn(S,"barycenter")&&a(x,S)}});let y=t(g,c);s(y,m);let b=n(y,u);if(p&&(b.vs=[p,b.vs,h].flat(!0),i.predecessors(p).length)){let x=i.node(i.predecessors(p)[0]),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 Uee}var Vee,b8e;function KVn(){if(b8e)return Vee;b8e=1;let e=Mg().Graph,t=Ml();Vee=n;function n(s,a,i,l){l||(l=s.nodes());let c=r(s),u=new e({compound:!0}).setGraph({root:c}).setDefaultNodeLabel(d=>s.node(d));return l.forEach(d=>{let f=s.node(d),p=s.parent(d);(f.rank===a||f.minRank<=a&&a<=f.maxRank)&&(u.setNode(d),u.setParent(d,p||c),s[i](d).forEach(h=>{let m=h.v===d?h.w:h.v,g=u.edge(m,d),y=g!==void 0?g.weight:0;u.setEdge(m,d,{weight:s.edge(h).weight+y})}),Object.hasOwn(f,"minRank")&&u.setNode(d,{borderLeft:f.borderLeft[a],borderRight:f.borderRight[a]}))}),u}function r(s){for(var a;s.hasNode(a=t.uniqueId("_root")););return a}return Vee}var qee,x8e;function XVn(){if(x8e)return qee;x8e=1,qee=e;function e(t,n,r){let s={},a;r.forEach(i=>{let l=t.parent(i),c,u;for(;l;){if(c=t.parent(l),c?(u=s[c],s[c]=l):(u=a,a=l),u&&u!==l){n.setEdge(u,l);return}l=c}})}return qee}var Hee,w8e;function JVn(){if(w8e)return Hee;w8e=1;let e=HVn(),t=WVn(),n=YVn(),r=KVn(),s=XVn(),a=Mg().Graph,i=Ml();Hee=l;function l(f,p){if(p&&typeof p.customOrder=="function"){p.customOrder(f,l);return}let h=i.maxRank(f),m=c(f,i.range(1,h+1),"inEdges"),g=c(f,i.range(h-1,-1,-1),"outEdges"),y=e(f);if(d(f,y),p&&p.disableOptimalOrderHeuristic)return;let b=Number.POSITIVE_INFINITY,x;for(let S=0,k=0;k<4;++S,++k){u(S%2?m:g,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,g=(y,b)=>{m.has(y)||m.set(y,[]),m.get(y).push(b)};for(const y of f.nodes()){const b=f.node(y);if(typeof b.rank=="number"&&g(b.rank,y),typeof b.minRank=="number"&&typeof b.maxRank=="number")for(let x=b.minRank;x<=b.maxRank;x++)x!==b.rank&&g(x,y)}return p.map(function(y){return r(f,y,h,m.get(y)||[])})}function u(f,p){let h=new a;f.forEach(function(m){let g=m.graph().root,y=n(m,g,h,p);y.vs.forEach((b,x)=>m.node(b).order=x),s(m,h,y.vs)})}function d(f,p){Object.values(p).forEach(h=>h.forEach((m,g)=>f.node(m).order=g))}return Hee}var Wee,S8e;function eqn(){if(S8e)return Wee;S8e=1;let e=Mg().Graph,t=Ml();Wee={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,E=0,j=k.length,N=_[_.length-1];return _.forEach((I,A)=>{let R=s(y,I),L=R?y.node(R).order:j;(R||I===N)&&(_.slice(E,A+1).forEach(D=>{y.predecessors(D).forEach(B=>{let H=y.node(B),F=H.order;(F<C||L<F)&&!(H.dummy&&y.node(D).dummy)&&a(x,B,D)})}),E=A+1,C=L)}),_}return b.length&&b.reduce(S),x}function r(y,b){let x={};function S(_,C,E,j,N){let I;t.range(C,E).forEach(A=>{I=_[A],y.node(I).dummy&&y.predecessors(I).forEach(R=>{let L=y.node(R);L.dummy&&(L.order<j||L.order>N)&&a(x,R,I)})})}function k(_,C){let E=-1,j,N=0;return C.forEach((I,A)=>{if(y.node(I).dummy==="border"){let R=y.predecessors(I);R.length&&(j=y.node(R[0]).order,S(C,N,A,E,j),N=A,E=j)}S(C,N,C.length,j,_.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(E=>{E.forEach((j,N)=>{k[j]=j,_[j]=j,C[j]=N})}),b.forEach(E=>{let j=-1;E.forEach(N=>{let I=S(N);if(I.length){I=I.sort((R,L)=>C[R]-C[L]);let A=(I.length-1)/2;for(let R=Math.floor(A),L=Math.ceil(A);R<=L;++R){let D=I[R];_[N]===N&&j<C[D]&&!i(x,N,D)&&(_[D]=N,_[N]=k[N]=k[D],j=C[D])}}})}),{root:k,align:_}}function c(y,b,x,S,k){let _={},C=u(y,b,x,k),E=k?"borderLeft":"borderRight";function j(A,R){let L=C.nodes(),D=L.pop(),B={};for(;D;)B[D]?A(D):(B[D]=!0,L.push(D),L=L.concat(R(D))),D=L.pop()}function N(A){_[A]=C.inEdges(A).reduce((R,L)=>Math.max(R,_[L.v]+C.edge(L)),0)}function I(A){let R=C.outEdges(A).reduce((D,B)=>Math.min(D,_[B.w]-C.edge(B)),Number.POSITIVE_INFINITY),L=y.node(A);R!==Number.POSITIVE_INFINITY&&L.borderType!==E&&(_[A]=Math.max(_[A],R))}return j(N,C.predecessors.bind(C)),j(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(E=>{let j;E.forEach(N=>{let I=x[N];if(k.setNode(I),j){var A=x[j],R=k.edge(A,I);k.setEdge(A,I,Math.max(C(y,N,j),R||0))}j=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(([E,j])=>{let N=g(y,E)/2;k=Math.max(j+N,k),_=Math.min(j-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 E=_+C,j=y[E];if(j===b)return;let N=Object.values(j),I=S-t.applyWithChunking(Math.min,N);C!=="l"&&(I=k-t.applyWithChunking(Math.max,N)),I&&(y[E]=t.mapValues(j,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(E=>{E==="r"&&(k=k.map(A=>Object.values(A).reverse()));let j=(C==="u"?y.predecessors:y.successors).bind(y),N=l(y,k,x,j),I=c(y,k,N.root,N.align,E==="r");E==="r"&&(I=t.mapValues(I,A=>-A)),S[C+E]=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),E=S.node(_),j=0,N;if(j+=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&&(j+=x?N:-N),N=0,j+=(C.dummy?b:y)/2,j+=(E.dummy?b:y)/2,j+=E.width/2,Object.hasOwn(E,"labelpos"))switch(E.labelpos.toLowerCase()){case"l":N=E.width/2;break;case"r":N=-E.width/2;break}return N&&(j+=x?N:-N),N=0,j}}function g(y,b){return y.node(b).width}return Wee}var Zee,k8e;function tqn(){if(k8e)return Zee;k8e=1;let e=Ml(),t=eqn().positionX;Zee=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 Zee}var Gee,O8e;function nqn(){if(O8e)return Gee;O8e=1;let e=DVn(),t=LVn(),n=zVn(),r=Ml().normalizeRanks,s=BVn(),a=Ml().removeEmptyRanks,i=UVn(),l=VVn(),c=qVn(),u=JVn(),d=tqn(),f=Ml(),p=Mg().Graph;Gee=h;function h($,U){let Z=U&&U.debugTiming?f.time:f.notime;Z("layout",()=>{let K=Z(" buildLayoutGraph",()=>j($));Z(" runLayout",()=>m(K,Z,U)),Z(" updateInputGraph",()=>g($,K))})}function m($,U,Z){U(" makeSpaceForEdgeLabels",()=>N($)),U(" removeSelfEdges",()=>z($)),U(" acyclic",()=>e.run($)),U(" nestingGraph.run",()=>i.run($)),U(" rank",()=>n(f.asNonCompoundGraph($))),U(" injectEdgeLabelProxies",()=>I($)),U(" removeEmptyRanks",()=>a($)),U(" nestingGraph.cleanup",()=>i.cleanup($)),U(" normalizeRanks",()=>r($)),U(" assignRankMinMax",()=>A($)),U(" removeEdgeLabelProxies",()=>R($)),U(" normalize.run",()=>t.run($)),U(" parentDummyChains",()=>s($)),U(" addBorderSegments",()=>l($)),U(" order",()=>u($,Z)),U(" insertSelfEdges",()=>q($)),U(" adjustCoordinateSystem",()=>c.adjust($)),U(" position",()=>d($)),U(" positionSelfEdges",()=>M($)),U(" removeBorderNodes",()=>F($)),U(" normalize.undo",()=>t.undo($)),U(" fixupEdgeLabelCoords",()=>B($)),U(" undoCoordinateSystem",()=>c.undo($)),U(" translateGraph",()=>L($)),U(" assignNodeIntersects",()=>D($)),U(" reversePoints",()=>H($)),U(" acyclic.undo",()=>e.undo($))}function g($,U){$.nodes().forEach(Z=>{let K=$.node(Z),ee=U.node(Z);K&&(K.x=ee.x,K.y=ee.y,K.rank=ee.rank,U.children(Z).length&&(K.width=ee.width,K.height=ee.height))}),$.edges().forEach(Z=>{let K=$.edge(Z),ee=U.edge(Z);K.points=ee.points,Object.hasOwn(ee,"x")&&(K.x=ee.x,K.y=ee.y)}),$.graph().width=U.graph().width,$.graph().height=U.graph().height}let y=["nodesep","edgesep","ranksep","marginx","marginy"],b={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},x=["acyclicer","ranker","rankdir","align"],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"},E=["labelpos"];function j($){let U=new p({multigraph:!0,compound:!0}),Z=V($.graph());return U.setGraph(Object.assign({},b,G(Z,y),f.pick(Z,x))),$.nodes().forEach(K=>{let ee=V($.node(K));const te=G(ee,S);Object.keys(k).forEach(J=>{te[J]===void 0&&(te[J]=k[J])}),U.setNode(K,te),U.setParent(K,$.parent(K))}),$.edges().forEach(K=>{let ee=V($.edge(K));U.setEdge(K,Object.assign({},C,G(ee,_),f.pick(ee,E)))}),U}function N($){let U=$.graph();U.ranksep/=2,$.edges().forEach(Z=>{let K=$.edge(Z);K.minlen*=2,K.labelpos.toLowerCase()!=="c"&&(U.rankdir==="TB"||U.rankdir==="BT"?K.width+=K.labeloffset:K.height+=K.labeloffset)})}function I($){$.edges().forEach(U=>{let Z=$.edge(U);if(Z.width&&Z.height){let K=$.node(U.v),te={rank:($.node(U.w).rank-K.rank)/2+K.rank,e:U};f.addDummyNode($,"edge-proxy",te,"_ep")}})}function A($){let U=0;$.nodes().forEach(Z=>{let K=$.node(Z);K.borderTop&&(K.minRank=$.node(K.borderTop).rank,K.maxRank=$.node(K.borderBottom).rank,U=Math.max(U,K.maxRank))}),$.graph().maxRank=U}function R($){$.nodes().forEach(U=>{let Z=$.node(U);Z.dummy==="edge-proxy"&&($.edge(Z.e).labelRank=Z.rank,$.removeNode(U))})}function L($){let U=Number.POSITIVE_INFINITY,Z=0,K=Number.POSITIVE_INFINITY,ee=0,te=$.graph(),J=te.marginx||0,ae=te.marginy||0;function de(Y){let ne=Y.x,fe=Y.y,he=Y.width,le=Y.height;U=Math.min(U,ne-he/2),Z=Math.max(Z,ne+he/2),K=Math.min(K,fe-le/2),ee=Math.max(ee,fe+le/2)}$.nodes().forEach(Y=>de($.node(Y))),$.edges().forEach(Y=>{let ne=$.edge(Y);Object.hasOwn(ne,"x")&&de(ne)}),U-=J,K-=ae,$.nodes().forEach(Y=>{let ne=$.node(Y);ne.x-=U,ne.y-=K}),$.edges().forEach(Y=>{let ne=$.edge(Y);ne.points.forEach(fe=>{fe.x-=U,fe.y-=K}),Object.hasOwn(ne,"x")&&(ne.x-=U),Object.hasOwn(ne,"y")&&(ne.y-=K)}),te.width=Z-U+J,te.height=ee-K+ae}function D($){$.edges().forEach(U=>{let Z=$.edge(U),K=$.node(U.v),ee=$.node(U.w),te,J;Z.points?(te=Z.points[0],J=Z.points[Z.points.length-1]):(Z.points=[],te=ee,J=K),Z.points.unshift(f.intersectRect(K,te)),Z.points.push(f.intersectRect(ee,J))})}function B($){$.edges().forEach(U=>{let Z=$.edge(U);if(Object.hasOwn(Z,"x"))switch((Z.labelpos==="l"||Z.labelpos==="r")&&(Z.width-=Z.labeloffset),Z.labelpos){case"l":Z.x-=Z.width/2+Z.labeloffset;break;case"r":Z.x+=Z.width/2+Z.labeloffset;break}})}function H($){$.edges().forEach(U=>{let Z=$.edge(U);Z.reversed&&Z.points.reverse()})}function F($){$.nodes().forEach(U=>{if($.children(U).length){let Z=$.node(U),K=$.node(Z.borderTop),ee=$.node(Z.borderBottom),te=$.node(Z.borderLeft[Z.borderLeft.length-1]),J=$.node(Z.borderRight[Z.borderRight.length-1]);Z.width=Math.abs(J.x-te.x),Z.height=Math.abs(ee.y-K.y),Z.x=te.x+Z.width/2,Z.y=K.y+Z.height/2}}),$.nodes().forEach(U=>{$.node(U).dummy==="border"&&$.removeNode(U)})}function z($){$.edges().forEach(U=>{if(U.v===U.w){var Z=$.node(U.v);Z.selfEdges||(Z.selfEdges=[]),Z.selfEdges.push({e:U,label:$.edge(U)}),$.removeEdge(U)}})}function q($){var U=f.buildLayerMatrix($);U.forEach(Z=>{var K=0;Z.forEach((ee,te)=>{var J=$.node(ee);J.order=te+K,(J.selfEdges||[]).forEach(ae=>{f.addDummyNode($,"selfedge",{width:ae.label.width,height:ae.label.height,rank:J.rank,order:te+ ++K,e:ae.e,label:ae.label},"_se")}),delete J.selfEdges})})}function M($){$.nodes().forEach(U=>{var Z=$.node(U);if(Z.dummy==="selfedge"){var K=$.node(Z.e.v),ee=K.x+K.width/2,te=K.y,J=Z.x-ee,ae=K.height/2;$.setEdge(Z.e,Z.label),$.removeNode(U),Z.label.points=[{x:ee+2*J/3,y:te-ae},{x:ee+5*J/6,y:te-ae},{x:ee+J,y:te},{x:ee+5*J/6,y:te+ae},{x:ee+2*J/3,y:te+ae}],Z.label.x=Z.x,Z.label.y=Z.y}})}function G($,U){return f.mapValues(f.pick($,U),Number)}function V($){var U={};return $&&Object.entries($).forEach(([Z,K])=>{typeof Z=="string"&&(Z=Z.toLowerCase()),U[Z]=K}),U}return Gee}var Qee,_8e;function rqn(){if(_8e)return Qee;_8e=1;let e=Ml(),t=Mg().Graph;Qee={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 Qee}var Yee,C8e;function sqn(){return C8e||(C8e=1,Yee="1.1.8"),Yee}var Kee,E8e;function aqn(){return E8e||(E8e=1,Kee={graphlib:Mg(),layout:nqn(),debug:rqn(),util:{time:Ml().time,notime:Ml().notime},version:sqn()}),Kee}var iqn=aqn();const j8e=Fl(iqn);function Ul(e){if(typeof e=="string"||typeof e=="number")return""+e;let t="";if(Array.isArray(e))for(let n=0,r;n<e.length;n++)(r=Ul(e[n]))!==""&&(t+=(t&&" ")+r);else for(let n in e)e[n]&&(t+=(t&&" ")+n);return t}var oqn={value:()=>{}};function NH(){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 N8(n)}function N8(e){this._=e}function lqn(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}})}N8.prototype=NH.prototype={constructor:N8,on:function(e,t){var n=this._,r=lqn(e+"",n),s,a=-1,i=r.length;if(arguments.length<2){for(;++a<i;)if((s=(e=r[a]).type)&&(s=cqn(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]=T8e(n[s],e.name,t);else if(t==null)for(s in n)n[s]=T8e(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 N8(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 cqn(e,t){for(var n=0,r=e.length,s;n<r;++n)if((s=e[n]).name===t)return s.value}function T8e(e,t,n){for(var r=0,s=e.length;r<s;++r)if(e[r].name===t){e[r]=oqn,e=e.slice(0,r).concat(e.slice(r+1));break}return n!=null&&e.push({name:t,value:n}),e}var Kme="http://www.w3.org/1999/xhtml";const N8e={svg:"http://www.w3.org/2000/svg",xhtml:Kme,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function IH(e){var t=e+="",n=t.indexOf(":");return n>=0&&(t=e.slice(0,n))!=="xmlns"&&(e=e.slice(n+1)),N8e.hasOwnProperty(t)?{space:N8e[t],local:e}:e}function uqn(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===Kme&&t.documentElement.namespaceURI===Kme?t.createElement(e):t.createElementNS(n,e)}}function dqn(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function C1t(e){var t=IH(e);return(t.local?dqn:uqn)(t)}function fqn(){}function HSe(e){return e==null?fqn:function(){return this.querySelector(e)}}function pqn(e){typeof e!="function"&&(e=HSe(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 Hp(r,this._parents)}function hqn(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function mqn(){return[]}function E1t(e){return e==null?mqn:function(){return this.querySelectorAll(e)}}function gqn(e){return function(){return hqn(e.apply(this,arguments))}}function vqn(e){typeof e=="function"?e=gqn(e):e=E1t(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 Hp(r,s)}function j1t(e){return function(){return this.matches(e)}}function T1t(e){return function(t){return t.matches(e)}}var yqn=Array.prototype.find;function bqn(e){return function(){return yqn.call(this.children,e)}}function xqn(){return this.firstElementChild}function wqn(e){return this.select(e==null?xqn:bqn(typeof e=="function"?e:T1t(e)))}var Sqn=Array.prototype.filter;function kqn(){return Array.from(this.children)}function Oqn(e){return function(){return Sqn.call(this.children,e)}}function _qn(e){return this.selectAll(e==null?kqn:Oqn(typeof e=="function"?e:T1t(e)))}function Cqn(e){typeof e!="function"&&(e=j1t(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 Hp(r,this._parents)}function N1t(e){return new Array(e.length)}function Eqn(){return new Hp(this._enter||this._groups.map(N1t),this._parents)}function xB(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}xB.prototype={constructor:xB,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 jqn(e){return function(){return e}}function Tqn(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 xB(e,a[i]);for(;i<c;++i)(l=t[i])&&(s[i]=l)}function Nqn(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 xB(e,a[l]);for(l=0;l<d;++l)(c=t[l])&&u.get(p[l])===c&&(s[l]=c)}function Iqn(e){return e.__data__}function Aqn(e,t){if(!arguments.length)return Array.from(this,Iqn);var n=t?Nqn:Tqn,r=this._parents,s=this._groups;typeof e!="function"&&(e=jqn(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=Rqn(e.call(d,d&&d.__data__,u,r)),m=h.length,g=l[u]=new Array(m),y=i[u]=new Array(m),b=c[u]=new Array(p);n(d,f,g,y,b,h,t);for(var x=0,S=0,k,_;x<m;++x)if(k=g[x]){for(x>=S&&(S=x+1);!(_=y[S])&&++S<m;);k._next=_||null}}return i=new Hp(i,r),i._enter=l,i._exit=c,i}function Rqn(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function Pqn(){return new Hp(this._exit||this._groups.map(N1t),this._parents)}function $qn(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 Mqn(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 Hp(l,this._parents)}function Dqn(){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 Lqn(e){e||(e=Fqn);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 Hp(s,this._parents).order()}function Fqn(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function zqn(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function Bqn(){return Array.from(this)}function Uqn(){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 Vqn(){let e=0;for(const t of this)++e;return e}function qqn(){return!this.node()}function Hqn(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 Wqn(e){return function(){this.removeAttribute(e)}}function Zqn(e){return function(){this.removeAttributeNS(e.space,e.local)}}function Gqn(e,t){return function(){this.setAttribute(e,t)}}function Qqn(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function Yqn(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}}function Kqn(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 Xqn(e,t){var n=IH(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?Zqn:Wqn:typeof t=="function"?n.local?Kqn:Yqn:n.local?Qqn:Gqn)(n,t))}function I1t(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function Jqn(e){return function(){this.style.removeProperty(e)}}function eHn(e,t,n){return function(){this.style.setProperty(e,t,n)}}function tHn(e,t,n){return function(){var r=t.apply(this,arguments);r==null?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function nHn(e,t,n){return arguments.length>1?this.each((t==null?Jqn:typeof t=="function"?tHn:eHn)(e,t,n??"")):VT(this.node(),e)}function VT(e,t){return e.style.getPropertyValue(t)||I1t(e).getComputedStyle(e,null).getPropertyValue(t)}function rHn(e){return function(){delete this[e]}}function sHn(e,t){return function(){this[e]=t}}function aHn(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function iHn(e,t){return arguments.length>1?this.each((t==null?rHn:typeof t=="function"?aHn:sHn)(e,t)):this.node()[e]}function A1t(e){return e.trim().split(/^|\s+/)}function WSe(e){return e.classList||new R1t(e)}function R1t(e){this._node=e,this._names=A1t(e.getAttribute("class")||"")}R1t.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 P1t(e,t){for(var n=WSe(e),r=-1,s=t.length;++r<s;)n.add(t[r])}function $1t(e,t){for(var n=WSe(e),r=-1,s=t.length;++r<s;)n.remove(t[r])}function oHn(e){return function(){P1t(this,e)}}function lHn(e){return function(){$1t(this,e)}}function cHn(e,t){return function(){(t.apply(this,arguments)?P1t:$1t)(this,e)}}function uHn(e,t){var n=A1t(e+"");if(arguments.length<2){for(var r=WSe(this.node()),s=-1,a=n.length;++s<a;)if(!r.contains(n[s]))return!1;return!0}return this.each((typeof t=="function"?cHn:t?oHn:lHn)(n,t))}function dHn(){this.textContent=""}function fHn(e){return function(){this.textContent=e}}function pHn(e){return function(){var t=e.apply(this,arguments);this.textContent=t??""}}function hHn(e){return arguments.length?this.each(e==null?dHn:(typeof e=="function"?pHn:fHn)(e)):this.node().textContent}function mHn(){this.innerHTML=""}function gHn(e){return function(){this.innerHTML=e}}function vHn(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??""}}function yHn(e){return arguments.length?this.each(e==null?mHn:(typeof e=="function"?vHn:gHn)(e)):this.node().innerHTML}function bHn(){this.nextSibling&&this.parentNode.appendChild(this)}function xHn(){return this.each(bHn)}function wHn(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function SHn(){return this.each(wHn)}function kHn(e){var t=typeof e=="function"?e:C1t(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function OHn(){return null}function _Hn(e,t){var n=typeof e=="function"?e:C1t(e),r=t==null?OHn:typeof t=="function"?t:HSe(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})}function CHn(){var e=this.parentNode;e&&e.removeChild(this)}function EHn(){return this.each(CHn)}function jHn(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function THn(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function NHn(e){return this.select(e?THn:jHn)}function IHn(e){return arguments.length?this.property("__data__",e):this.node().__data__}function AHn(e){return function(t){e.call(this,t,this.__data__)}}function RHn(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 PHn(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 $Hn(e,t,n){return function(){var r=this.__on,s,a=AHn(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 MHn(e,t,n){var r=RHn(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?$Hn:PHn,s=0;s<a;++s)this.each(l(r[s],t,n));return this}function M1t(e,t,n){var r=I1t(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 DHn(e,t){return function(){return M1t(this,e,t)}}function LHn(e,t){return function(){return M1t(this,e,t.apply(this,arguments))}}function FHn(e,t){return this.each((typeof t=="function"?LHn:DHn)(e,t))}function*zHn(){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 D1t=[null];function Hp(e,t){this._groups=e,this._parents=t}function M3(){return new Hp([[document.documentElement]],D1t)}function BHn(){return this}Hp.prototype=M3.prototype={constructor:Hp,select:pqn,selectAll:vqn,selectChild:wqn,selectChildren:_qn,filter:Cqn,data:Aqn,enter:Eqn,exit:Pqn,join:$qn,merge:Mqn,selection:BHn,order:Dqn,sort:Lqn,call:zqn,nodes:Bqn,node:Uqn,size:Vqn,empty:qqn,each:Hqn,attr:Xqn,style:nHn,property:iHn,classed:uHn,text:hHn,html:yHn,raise:xHn,lower:SHn,append:kHn,insert:_Hn,remove:EHn,clone:NHn,datum:IHn,on:MHn,dispatch:FHn,[Symbol.iterator]:zHn};function Sp(e){return typeof e=="string"?new Hp([[document.querySelector(e)]],[document.documentElement]):new Hp([[e]],D1t)}function UHn(e){let t;for(;t=e.sourceEvent;)e=t;return e}function rg(e,t){if(e=UHn(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 VHn={passive:!1},kM={capture:!0,passive:!1};function Xee(e){e.stopImmediatePropagation()}function Wj(e){e.preventDefault(),e.stopImmediatePropagation()}function L1t(e){var t=e.document.documentElement,n=Sp(e).on("dragstart.drag",Wj,kM);"onselectstart"in t?n.on("selectstart.drag",Wj,kM):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect="none")}function F1t(e,t){var n=e.document.documentElement,r=Sp(e).on("dragstart.drag",null);t&&(r.on("click.drag",Wj,kM),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 J6=e=>()=>e;function Xme(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}})}Xme.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function qHn(e){return!e.ctrlKey&&!e.button}function HHn(){return this.parentNode}function WHn(e,t){return t??{x:e.x,y:e.y}}function ZHn(){return navigator.maxTouchPoints||"ontouchstart"in this}function z1t(){var e=qHn,t=HHn,n=WHn,r=ZHn,s={},a=NH("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,VHn).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&&(Sp(k.view).on("mousemove.drag",m,kM).on("mouseup.drag",g,kM),L1t(k.view),Xee(k),u=!1,l=k.clientX,c=k.clientY,C("start",k))}}function m(k){if(Wj(k),!u){var _=k.clientX-l,C=k.clientY-c;u=_*_+C*C>f}s.mouse("drag",k)}function g(k){Sp(k.view).on("mousemove.drag mouseup.drag",null),F1t(k.view,u),Wj(k),s.mouse("end",k)}function y(k,_){if(e.call(this,k,_)){var C=k.changedTouches,E=t.call(this,k,_),j=C.length,N,I;for(N=0;N<j;++N)(I=S(this,E,k,_,C[N].identifier,C[N]))&&(Xee(k),I("start",k,C[N]))}}function b(k){var _=k.changedTouches,C=_.length,E,j;for(E=0;E<C;++E)(j=s[_[E].identifier])&&(Wj(k),j("drag",k,_[E]))}function x(k){var _=k.changedTouches,C=_.length,E,j;for(d&&clearTimeout(d),d=setTimeout(function(){d=null},500),E=0;E<C;++E)(j=s[_[E].identifier])&&(Xee(k),j("end",k,_[E]))}function S(k,_,C,E,j,N){var I=a.copy(),A=rg(N||C,_),R,L,D;if((D=n.call(k,new Xme("beforestart",{sourceEvent:C,target:p,identifier:j,active:i,x:A[0],y:A[1],dx:0,dy:0,dispatch:I}),E))!=null)return R=D.x-A[0]||0,L=D.y-A[1]||0,function B(H,F,z){var q=A,M;switch(H){case"start":s[j]=B,M=i++;break;case"end":delete s[j],--i;case"drag":A=rg(z||F,_),M=i;break}I.call(H,k,new Xme(H,{sourceEvent:F,subject:D,target:p,identifier:j,active:M,x:A[0]+R,y:A[1]+L,dx:A[0]-q[0],dy:A[1]-q[1],dispatch:I}),E)}}return p.filter=function(k){return arguments.length?(e=typeof k=="function"?k:J6(!!k),p):e},p.container=function(k){return arguments.length?(t=typeof k=="function"?k:J6(k),p):t},p.subject=function(k){return arguments.length?(n=typeof k=="function"?k:J6(k),p):n},p.touchable=function(k){return arguments.length?(r=typeof k=="function"?k:J6(!!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 ZSe(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function B1t(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function D3(){}var OM=.7,wB=1/OM,Zj="\\s*([+-]?\\d+)\\s*",_M="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",sy="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",GHn=/^#([0-9a-f]{3,8})$/,QHn=new RegExp(`^rgb\\(${Zj},${Zj},${Zj}\\)$`),YHn=new RegExp(`^rgb\\(${sy},${sy},${sy}\\)$`),KHn=new RegExp(`^rgba\\(${Zj},${Zj},${Zj},${_M}\\)$`),XHn=new RegExp(`^rgba\\(${sy},${sy},${sy},${_M}\\)$`),JHn=new RegExp(`^hsl\\(${_M},${sy},${sy}\\)$`),eWn=new RegExp(`^hsla\\(${_M},${sy},${sy},${_M}\\)$`),I8e={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};ZSe(D3,VO,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:A8e,formatHex:A8e,formatHex8:tWn,formatHsl:nWn,formatRgb:R8e,toString:R8e});function A8e(){return this.rgb().formatHex()}function tWn(){return this.rgb().formatHex8()}function nWn(){return U1t(this).formatHsl()}function R8e(){return this.rgb().formatRgb()}function VO(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=GHn.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?P8e(t):n===3?new pf(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?eF(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?eF(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=QHn.exec(e))?new pf(t[1],t[2],t[3],1):(t=YHn.exec(e))?new pf(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=KHn.exec(e))?eF(t[1],t[2],t[3],t[4]):(t=XHn.exec(e))?eF(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=JHn.exec(e))?D8e(t[1],t[2]/100,t[3]/100,1):(t=eWn.exec(e))?D8e(t[1],t[2]/100,t[3]/100,t[4]):I8e.hasOwnProperty(e)?P8e(I8e[e]):e==="transparent"?new pf(NaN,NaN,NaN,0):null}function P8e(e){return new pf(e>>16&255,e>>8&255,e&255,1)}function eF(e,t,n,r){return r<=0&&(e=t=n=NaN),new pf(e,t,n,r)}function rWn(e){return e instanceof D3||(e=VO(e)),e?(e=e.rgb(),new pf(e.r,e.g,e.b,e.opacity)):new pf}function Jme(e,t,n,r){return arguments.length===1?rWn(e):new pf(e,t,n,r??1)}function pf(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}ZSe(pf,Jme,B1t(D3,{brighter(e){return e=e==null?wB:Math.pow(wB,e),new pf(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?OM:Math.pow(OM,e),new pf(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new pf(Kk(this.r),Kk(this.g),Kk(this.b),SB(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:$8e,formatHex:$8e,formatHex8:sWn,formatRgb:M8e,toString:M8e}));function $8e(){return`#${Ak(this.r)}${Ak(this.g)}${Ak(this.b)}`}function sWn(){return`#${Ak(this.r)}${Ak(this.g)}${Ak(this.b)}${Ak((isNaN(this.opacity)?1:this.opacity)*255)}`}function M8e(){const e=SB(this.opacity);return`${e===1?"rgb(":"rgba("}${Kk(this.r)}, ${Kk(this.g)}, ${Kk(this.b)}${e===1?")":`, ${e})`}`}function SB(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Kk(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Ak(e){return e=Kk(e),(e<16?"0":"")+e.toString(16)}function D8e(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new ug(e,t,n,r)}function U1t(e){if(e instanceof ug)return new ug(e.h,e.s,e.l,e.opacity);if(e instanceof D3||(e=VO(e)),!e)return new ug;if(e instanceof ug)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 ug(i,l,c,e.opacity)}function aWn(e,t,n,r){return arguments.length===1?U1t(e):new ug(e,t,n,r??1)}function ug(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}ZSe(ug,aWn,B1t(D3,{brighter(e){return e=e==null?wB:Math.pow(wB,e),new ug(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?OM:Math.pow(OM,e),new ug(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 pf(Jee(e>=240?e-240:e+120,s,r),Jee(e,s,r),Jee(e<120?e+240:e-120,s,r),this.opacity)},clamp(){return new ug(L8e(this.h),tF(this.s),tF(this.l),SB(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=SB(this.opacity);return`${e===1?"hsl(":"hsla("}${L8e(this.h)}, ${tF(this.s)*100}%, ${tF(this.l)*100}%${e===1?")":`, ${e})`}`}}));function L8e(e){return e=(e||0)%360,e<0?e+360:e}function tF(e){return Math.max(0,Math.min(1,e||0))}function Jee(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 GSe=e=>()=>e;function iWn(e,t){return function(n){return e+n*t}}function oWn(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 lWn(e){return(e=+e)==1?V1t:function(t,n){return n-t?oWn(t,n,e):GSe(isNaN(t)?n:t)}}function V1t(e,t){var n=t-e;return n?iWn(e,n):GSe(isNaN(e)?t:e)}const kB=(function e(t){var n=lWn(t);function r(s,a){var i=n((s=Jme(s)).r,(a=Jme(a)).r),l=n(s.g,a.g),c=n(s.b,a.b),u=V1t(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 cWn(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 uWn(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function dWn(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]=cx(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 fWn(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function ag(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function pWn(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]=cx(e[s],t[s]):r[s]=t[s];return function(a){for(s in n)r[s]=n[s](a);return r}}var ege=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,ete=new RegExp(ege.source,"g");function hWn(e){return function(){return e}}function mWn(e){return function(t){return e(t)+""}}function q1t(e,t){var n=ege.lastIndex=ete.lastIndex=0,r,s,a,i=-1,l=[],c=[];for(e=e+"",t=t+"";(r=ege.exec(e))&&(s=ete.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:ag(r,s)})),n=ete.lastIndex;return n<t.length&&(a=t.slice(n),l[i]?l[i]+=a:l[++i]=a),l.length<2?c[0]?mWn(c[0].x):hWn(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 cx(e,t){var n=typeof t,r;return t==null||n==="boolean"?GSe(t):(n==="number"?ag:n==="string"?(r=VO(t))?(t=r,kB):q1t:t instanceof VO?kB:t instanceof Date?fWn:uWn(t)?cWn:Array.isArray(t)?dWn:typeof t.valueOf!="function"&&typeof t.toString!="function"||isNaN(t)?pWn:ag)(e,t)}function QSe(e,t){return e=+e,t=+t,function(n){return Math.round(e*(1-n)+t*n)}}var F8e=180/Math.PI,tge={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function H1t(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)*F8e,skewX:Math.atan(c)*F8e,scaleX:i,scaleY:l}}var nF;function gWn(e){const t=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?tge:H1t(t.a,t.b,t.c,t.d,t.e,t.f)}function vWn(e){return e==null||(nF||(nF=document.createElementNS("http://www.w3.org/2000/svg","g")),nF.setAttribute("transform",e),!(e=nF.transform.baseVal.consolidate()))?tge:(e=e.matrix,H1t(e.a,e.b,e.c,e.d,e.e,e.f))}function W1t(e,t,n,r){function s(u){return u.length?u.pop()+" ":""}function a(u,d,f,p,h,m){if(u!==f||d!==p){var g=h.push("translate(",null,t,null,n);m.push({i:g-4,x:ag(u,f)},{i:g-2,x:ag(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:ag(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:ag(u,d)}):d&&f.push(s(f)+"skewX("+d+r)}function c(u,d,f,p,h,m){if(u!==f||d!==p){var g=h.push(s(h)+"scale(",null,",",null,")");m.push({i:g-4,x:ag(u,f)},{i:g-2,x:ag(d,p)})}else(f!==1||p!==1)&&h.push(s(h)+"scale("+f+","+p+")")}return function(u,d){var f=[],p=[];return u=e(u),d=e(d),a(u.translateX,u.translateY,d.translateX,d.translateY,f,p),i(u.rotate,d.rotate,f,p),l(u.skewX,d.skewX,f,p),c(u.scaleX,u.scaleY,d.scaleX,d.scaleY,f,p),u=d=null,function(h){for(var m=-1,g=p.length,y;++m<g;)f[(y=p[m]).i]=y.x(h);return f.join("")}}}var yWn=W1t(gWn,"px, ","px)","deg)"),bWn=W1t(vWn,", ",")",")"),xWn=1e-12;function z8e(e){return((e=Math.exp(e))+1/e)/2}function wWn(e){return((e=Math.exp(e))-1/e)/2}function SWn(e){return((e=Math.exp(2*e))-1)/(e+1)}const I8=(function e(t,n,r){function s(a,i){var l=a[0],c=a[1],u=a[2],d=i[0],f=i[1],p=i[2],h=d-l,m=f-c,g=h*h+m*m,y,b;if(g<xWn)b=Math.log(p/u)/t,y=function(E){return[l+E*h,c+E*m,u*Math.exp(t*E*b)]};else{var x=Math.sqrt(g),S=(p*p-u*u+r*g)/(2*u*n*x),k=(p*p-u*u-r*g)/(2*p*n*x),_=Math.log(Math.sqrt(S*S+1)-S),C=Math.log(Math.sqrt(k*k+1)-k);b=(C-_)/t,y=function(E){var j=E*b,N=z8e(_),I=u/(n*x)*(N*SWn(t*j+_)-wWn(_));return[l+I*h,c+I*m,u*N/z8e(t*j+_)]}}return y.duration=b*1e3*t/Math.SQRT2,y}return s.rho=function(a){var i=Math.max(.001,+a),l=i*i,c=l*l;return e(i,l,c)},s})(Math.SQRT2,2,4);function kWn(e,t){t===void 0&&(t=e,e=cx);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 qT=0,$P=0,bR=0,Z1t=1e3,OB,MP,_B=0,qO=0,AH=0,CM=typeof performance=="object"&&performance.now?performance:Date,G1t=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function YSe(){return qO||(G1t(OWn),qO=CM.now()+AH)}function OWn(){qO=0}function CB(){this._call=this._time=this._next=null}CB.prototype=Q1t.prototype={constructor:CB,restart:function(e,t,n){if(typeof e!="function")throw new TypeError("callback is not a function");n=(n==null?YSe():+n)+(t==null?0:+t),!this._next&&MP!==this&&(MP?MP._next=this:OB=this,MP=this),this._call=e,this._time=n,nge()},stop:function(){this._call&&(this._call=null,this._time=1/0,nge())}};function Q1t(e,t,n){var r=new CB;return r.restart(e,t,n),r}function _Wn(){YSe(),++qT;for(var e=OB,t;e;)(t=qO-e._time)>=0&&e._call.call(void 0,t),e=e._next;--qT}function B8e(){qO=(_B=CM.now())+AH,qT=$P=0;try{_Wn()}finally{qT=0,EWn(),qO=0}}function CWn(){var e=CM.now(),t=e-_B;t>Z1t&&(AH-=t,_B=e)}function EWn(){for(var e,t=OB,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:OB=n);MP=e,nge(r)}function nge(e){if(!qT){$P&&($P=clearTimeout($P));var t=e-qO;t>24?(e<1/0&&($P=setTimeout(B8e,e-CM.now()-AH)),bR&&(bR=clearInterval(bR))):(bR||(_B=CM.now(),bR=setInterval(CWn,Z1t)),qT=1,G1t(B8e))}}function U8e(e,t,n){var r=new CB;return t=t==null?0:+t,r.restart(s=>{r.stop(),e(s+t)},t,n),r}var jWn=NH("start","end","cancel","interrupt"),TWn=[],Y1t=0,V8e=1,rge=2,A8=3,q8e=4,sge=5,R8=6;function RH(e,t,n,r,s,a){var i=e.__transition;if(!i)e.__transition={};else if(n in i)return;NWn(e,n,{name:t,index:r,group:s,on:jWn,tween:TWn,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:Y1t})}function KSe(e,t){var n=Hg(e,t);if(n.state>Y1t)throw new Error("too late; already scheduled");return n}function By(e,t){var n=Hg(e,t);if(n.state>A8)throw new Error("too late; already running");return n}function Hg(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function NWn(e,t,n){var r=e.__transition,s;r[t]=n,n.timer=Q1t(a,0,n.time);function a(u){n.state=V8e,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!==V8e)return c();for(d in r)if(h=r[d],h.name===n.name){if(h.state===A8)return U8e(i);h.state===q8e?(h.state=R8,h.timer.stop(),h.on.call("interrupt",e,e.__data__,h.index,h.group),delete r[d]):+d<t&&(h.state=R8,h.timer.stop(),h.on.call("cancel",e,e.__data__,h.index,h.group),delete r[d])}if(U8e(function(){n.state===A8&&(n.state=q8e,n.timer.restart(l,n.delay,n.time),l(u))}),n.state=rge,n.on.call("start",e,e.__data__,n.index,n.group),n.state===rge){for(n.state=A8,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=sge,1),f=-1,p=s.length;++f<p;)s[f].call(e,d);n.state===sge&&(n.on.call("end",e,e.__data__,n.index,n.group),c())}function c(){n.state=R8,n.timer.stop(),delete r[t];for(var u in r)return;delete e.__transition}}function P8(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>rge&&r.state<sge,r.state=R8,r.timer.stop(),r.on.call(s?"interrupt":"cancel",e,e.__data__,r.index,r.group),delete n[i]}a&&delete e.__transition}}function IWn(e){return this.each(function(){P8(this,e)})}function AWn(e,t){var n,r;return function(){var s=By(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 RWn(e,t,n){var r,s;if(typeof n!="function")throw new Error;return function(){var a=By(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 PWn(e,t){var n=this._id;if(e+="",arguments.length<2){for(var r=Hg(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?AWn:RWn)(n,e,t))}function XSe(e,t,n){var r=e._id;return e.each(function(){var s=By(this,r);(s.value||(s.value={}))[t]=n.apply(this,arguments)}),function(s){return Hg(s,r).value[t]}}function K1t(e,t){var n;return(typeof t=="number"?ag:t instanceof VO?kB:(n=VO(t))?(t=n,kB):q1t)(e,t)}function $Wn(e){return function(){this.removeAttribute(e)}}function MWn(e){return function(){this.removeAttributeNS(e.space,e.local)}}function DWn(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 LWn(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 FWn(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 zWn(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 BWn(e,t){var n=IH(e),r=n==="transform"?bWn:K1t;return this.attrTween(e,typeof t=="function"?(n.local?zWn:FWn)(n,r,XSe(this,"attr."+e,t)):t==null?(n.local?MWn:$Wn)(n):(n.local?LWn:DWn)(n,r,t))}function UWn(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function VWn(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function qWn(e,t){var n,r;function s(){var a=t.apply(this,arguments);return a!==r&&(n=(r=a)&&VWn(e,a)),n}return s._value=t,s}function HWn(e,t){var n,r;function s(){var a=t.apply(this,arguments);return a!==r&&(n=(r=a)&&UWn(e,a)),n}return s._value=t,s}function WWn(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=IH(e);return this.tween(n,(r.local?qWn:HWn)(r,t))}function ZWn(e,t){return function(){KSe(this,e).delay=+t.apply(this,arguments)}}function GWn(e,t){return t=+t,function(){KSe(this,e).delay=t}}function QWn(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?ZWn:GWn)(t,e)):Hg(this.node(),t).delay}function YWn(e,t){return function(){By(this,e).duration=+t.apply(this,arguments)}}function KWn(e,t){return t=+t,function(){By(this,e).duration=t}}function XWn(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?YWn:KWn)(t,e)):Hg(this.node(),t).duration}function JWn(e,t){if(typeof t!="function")throw new Error;return function(){By(this,e).ease=t}}function eZn(e){var t=this._id;return arguments.length?this.each(JWn(t,e)):Hg(this.node(),t).ease}function tZn(e,t){return function(){var n=t.apply(this,arguments);if(typeof n!="function")throw new Error;By(this,e).ease=n}}function nZn(e){if(typeof e!="function")throw new Error;return this.each(tZn(this._id,e))}function rZn(e){typeof e!="function"&&(e=j1t(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 Nx(r,this._parents,this._name,this._id)}function sZn(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 Nx(i,this._parents,this._name,this._id)}function aZn(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 iZn(e,t,n){var r,s,a=aZn(t)?KSe:By;return function(){var i=a(this,e),l=i.on;l!==r&&(s=(r=l).copy()).on(t,n),i.on=s}}function oZn(e,t){var n=this._id;return arguments.length<2?Hg(this.node(),n).on.on(e):this.each(iZn(n,e,t))}function lZn(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function cZn(){return this.on("end.remove",lZn(this._id))}function uZn(e){var t=this._name,n=this._id;typeof e!="function"&&(e=HSe(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,RH(u[p],t,n,p,u,Hg(d,n)));return new Nx(a,this._parents,t,n)}function dZn(e){var t=this._name,n=this._id;typeof e!="function"&&(e=E1t(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=Hg(d,n),g=0,y=p.length;g<y;++g)(h=p[g])&&RH(h,t,n,g,p,m);a.push(p),i.push(d)}return new Nx(a,i,t,n)}var fZn=M3.prototype.constructor;function pZn(){return new fZn(this._groups,this._parents)}function hZn(e,t){var n,r,s;return function(){var a=VT(this,e),i=(this.style.removeProperty(e),VT(this,e));return a===i?null:a===n&&i===r?s:s=t(n=a,r=i)}}function X1t(e){return function(){this.style.removeProperty(e)}}function mZn(e,t,n){var r,s=n+"",a;return function(){var i=VT(this,e);return i===s?null:i===r?a:a=t(r=i,n)}}function gZn(e,t,n){var r,s,a;return function(){var i=VT(this,e),l=n(this),c=l+"";return l==null&&(c=l=(this.style.removeProperty(e),VT(this,e))),i===c?null:i===r&&c===s?a:(s=c,a=t(r=i,l))}}function vZn(e,t){var n,r,s,a="style."+t,i="end."+a,l;return function(){var c=By(this,e),u=c.on,d=c.value[a]==null?l||(l=X1t(t)):void 0;(u!==n||s!==d)&&(r=(n=u).copy()).on(i,s=d),c.on=r}}function yZn(e,t,n){var r=(e+="")=="transform"?yWn:K1t;return t==null?this.styleTween(e,hZn(e,r)).on("end.style."+e,X1t(e)):typeof t=="function"?this.styleTween(e,gZn(e,r,XSe(this,"style."+e,t))).each(vZn(this._id,e)):this.styleTween(e,mZn(e,r,t),n).on("end.style."+e,null)}function bZn(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}function xZn(e,t,n){var r,s;function a(){var i=t.apply(this,arguments);return i!==s&&(r=(s=i)&&bZn(e,i,n)),r}return a._value=t,a}function wZn(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,xZn(e,t,n??""))}function SZn(e){return function(){this.textContent=e}}function kZn(e){return function(){var t=e(this);this.textContent=t??""}}function OZn(e){return this.tween("text",typeof e=="function"?kZn(XSe(this,"text",e)):SZn(e==null?"":e+""))}function _Zn(e){return function(t){this.textContent=e.call(this,t)}}function CZn(e){var t,n;function r(){var s=e.apply(this,arguments);return s!==n&&(t=(n=s)&&_Zn(s)),t}return r._value=e,r}function EZn(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,CZn(e))}function jZn(){for(var e=this._name,t=this._id,n=J1t(),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=Hg(c,t);RH(c,e,n,u,i,{time:d.time+d.delay+d.duration,delay:0,duration:d.duration,ease:d.ease})}return new Nx(r,this._parents,e,n)}function TZn(){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=By(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 NZn=0;function Nx(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}function J1t(){return++NZn}var bb=M3.prototype;Nx.prototype={constructor:Nx,select:uZn,selectAll:dZn,selectChild:bb.selectChild,selectChildren:bb.selectChildren,filter:rZn,merge:sZn,selection:pZn,transition:jZn,call:bb.call,nodes:bb.nodes,node:bb.node,size:bb.size,empty:bb.empty,each:bb.each,on:oZn,attr:BWn,attrTween:WWn,style:yZn,styleTween:wZn,text:OZn,textTween:EZn,remove:cZn,tween:PWn,delay:QWn,duration:XWn,ease:eZn,easeVarying:nZn,end:TZn,[Symbol.iterator]:bb[Symbol.iterator]};function IZn(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var AZn={time:null,delay:0,duration:250,ease:IZn};function RZn(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 PZn(e){var t,n;e instanceof Nx?(t=e._id,e=e._name):(t=J1t(),(n=AZn).time=YSe(),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])&&RH(c,e,t,u,i,n||RZn(c,t));return new Nx(r,this._parents,e,t)}M3.prototype.interrupt=IWn;M3.prototype.transition=PZn;const rF=e=>()=>e;function $Zn(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 Xb(e,t,n){this.k=e,this.x=t,this.y=n}Xb.prototype={constructor:Xb,scale:function(e){return e===1?this:new Xb(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new Xb(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 PH=new Xb(1,0,0);eSt.prototype=Xb.prototype;function eSt(e){for(;!e.__zoom;)if(!(e=e.parentNode))return PH;return e.__zoom}function tte(e){e.stopImmediatePropagation()}function xR(e){e.preventDefault(),e.stopImmediatePropagation()}function MZn(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function DZn(){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 H8e(){return this.__zoom||PH}function LZn(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function FZn(){return navigator.maxTouchPoints||"ontouchstart"in this}function zZn(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 tSt(){var e=MZn,t=DZn,n=zZn,r=LZn,s=FZn,a=[0,1/0],i=[[-1/0,-1/0],[1/0,1/0]],l=250,c=I8,u=NH("start","zoom","end"),d,f,p,h=500,m=150,g=0,y=10;function b(D){D.property("__zoom",H8e).on("wheel.zoom",j,{passive:!1}).on("mousedown.zoom",N).on("dblclick.zoom",I).filter(s).on("touchstart.zoom",A).on("touchmove.zoom",R).on("touchend.zoom touchcancel.zoom",L).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}b.transform=function(D,B,H,F){var z=D.selection?D.selection():D;z.property("__zoom",H8e),D!==z?_(D,B,H,F):z.interrupt().each(function(){C(this,arguments).event(F).start().zoom(null,typeof B=="function"?B.apply(this,arguments):B).end()})},b.scaleBy=function(D,B,H,F){b.scaleTo(D,function(){var z=this.__zoom.k,q=typeof B=="function"?B.apply(this,arguments):B;return z*q},H,F)},b.scaleTo=function(D,B,H,F){b.transform(D,function(){var z=t.apply(this,arguments),q=this.__zoom,M=H==null?k(z):typeof H=="function"?H.apply(this,arguments):H,G=q.invert(M),V=typeof B=="function"?B.apply(this,arguments):B;return n(S(x(q,V),M,G),z,i)},H,F)},b.translateBy=function(D,B,H,F){b.transform(D,function(){return n(this.__zoom.translate(typeof B=="function"?B.apply(this,arguments):B,typeof H=="function"?H.apply(this,arguments):H),t.apply(this,arguments),i)},null,F)},b.translateTo=function(D,B,H,F,z){b.transform(D,function(){var q=t.apply(this,arguments),M=this.__zoom,G=F==null?k(q):typeof F=="function"?F.apply(this,arguments):F;return n(PH.translate(G[0],G[1]).scale(M.k).translate(typeof B=="function"?-B.apply(this,arguments):-B,typeof H=="function"?-H.apply(this,arguments):-H),q,i)},F,z)};function x(D,B){return B=Math.max(a[0],Math.min(a[1],B)),B===D.k?D:new Xb(B,D.x,D.y)}function S(D,B,H){var F=B[0]-H[0]*D.k,z=B[1]-H[1]*D.k;return F===D.x&&z===D.y?D:new Xb(D.k,F,z)}function k(D){return[(+D[0][0]+ +D[1][0])/2,(+D[0][1]+ +D[1][1])/2]}function _(D,B,H,F){D.on("start.zoom",function(){C(this,arguments).event(F).start()}).on("interrupt.zoom end.zoom",function(){C(this,arguments).event(F).end()}).tween("zoom",function(){var z=this,q=arguments,M=C(z,q).event(F),G=t.apply(z,q),V=H==null?k(G):typeof H=="function"?H.apply(z,q):H,$=Math.max(G[1][0]-G[0][0],G[1][1]-G[0][1]),U=z.__zoom,Z=typeof B=="function"?B.apply(z,q):B,K=c(U.invert(V).concat($/U.k),Z.invert(V).concat($/Z.k));return function(ee){if(ee===1)ee=Z;else{var te=K(ee),J=$/te[2];ee=new Xb(J,V[0]-te[0]*J,V[1]-te[1]*J)}M.zoom(null,ee)}})}function C(D,B,H){return!H&&D.__zooming||new E(D,B)}function E(D,B){this.that=D,this.args=B,this.active=0,this.sourceEvent=null,this.extent=t.apply(D,B),this.taps=0}E.prototype={event:function(D){return D&&(this.sourceEvent=D),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(D,B){return this.mouse&&D!=="mouse"&&(this.mouse[1]=B.invert(this.mouse[0])),this.touch0&&D!=="touch"&&(this.touch0[1]=B.invert(this.touch0[0])),this.touch1&&D!=="touch"&&(this.touch1[1]=B.invert(this.touch1[0])),this.that.__zoom=B,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(D){var B=Sp(this.that).datum();u.call(D,this.that,new $Zn(D,{sourceEvent:this.sourceEvent,target:b,transform:this.that.__zoom,dispatch:u}),B)}};function j(D,...B){if(!e.apply(this,arguments))return;var H=C(this,B).event(D),F=this.__zoom,z=Math.max(a[0],Math.min(a[1],F.k*Math.pow(2,r.apply(this,arguments)))),q=rg(D);if(H.wheel)(H.mouse[0][0]!==q[0]||H.mouse[0][1]!==q[1])&&(H.mouse[1]=F.invert(H.mouse[0]=q)),clearTimeout(H.wheel);else{if(F.k===z)return;H.mouse=[q,F.invert(q)],P8(this),H.start()}xR(D),H.wheel=setTimeout(M,m),H.zoom("mouse",n(S(x(F,z),H.mouse[0],H.mouse[1]),H.extent,i));function M(){H.wheel=null,H.end()}}function N(D,...B){if(p||!e.apply(this,arguments))return;var H=D.currentTarget,F=C(this,B,!0).event(D),z=Sp(D.view).on("mousemove.zoom",V,!0).on("mouseup.zoom",$,!0),q=rg(D,H),M=D.clientX,G=D.clientY;L1t(D.view),tte(D),F.mouse=[q,this.__zoom.invert(q)],P8(this),F.start();function V(U){if(xR(U),!F.moved){var Z=U.clientX-M,K=U.clientY-G;F.moved=Z*Z+K*K>g}F.event(U).zoom("mouse",n(S(F.that.__zoom,F.mouse[0]=rg(U,H),F.mouse[1]),F.extent,i))}function $(U){z.on("mousemove.zoom mouseup.zoom",null),F1t(U.view,F.moved),xR(U),F.event(U).end()}}function I(D,...B){if(e.apply(this,arguments)){var H=this.__zoom,F=rg(D.changedTouches?D.changedTouches[0]:D,this),z=H.invert(F),q=H.k*(D.shiftKey?.5:2),M=n(S(x(H,q),F,z),t.apply(this,B),i);xR(D),l>0?Sp(this).transition().duration(l).call(_,M,F,D):Sp(this).call(b.transform,M,F,D)}}function A(D,...B){if(e.apply(this,arguments)){var H=D.touches,F=H.length,z=C(this,B,D.changedTouches.length===F).event(D),q,M,G,V;for(tte(D),M=0;M<F;++M)G=H[M],V=rg(G,this),V=[V,this.__zoom.invert(V),G.identifier],z.touch0?!z.touch1&&z.touch0[2]!==V[2]&&(z.touch1=V,z.taps=0):(z.touch0=V,q=!0,z.taps=1+!!d);d&&(d=clearTimeout(d)),q&&(z.taps<2&&(f=V[0],d=setTimeout(function(){d=null},h)),P8(this),z.start())}}function R(D,...B){if(this.__zooming){var H=C(this,B).event(D),F=D.changedTouches,z=F.length,q,M,G,V;for(xR(D),q=0;q<z;++q)M=F[q],G=rg(M,this),H.touch0&&H.touch0[2]===M.identifier?H.touch0[0]=G:H.touch1&&H.touch1[2]===M.identifier&&(H.touch1[0]=G);if(M=H.that.__zoom,H.touch1){var $=H.touch0[0],U=H.touch0[1],Z=H.touch1[0],K=H.touch1[1],ee=(ee=Z[0]-$[0])*ee+(ee=Z[1]-$[1])*ee,te=(te=K[0]-U[0])*te+(te=K[1]-U[1])*te;M=x(M,Math.sqrt(ee/te)),G=[($[0]+Z[0])/2,($[1]+Z[1])/2],V=[(U[0]+K[0])/2,(U[1]+K[1])/2]}else if(H.touch0)G=H.touch0[0],V=H.touch0[1];else return;H.zoom("touch",n(S(M,G,V),H.extent,i))}}function L(D,...B){if(this.__zooming){var H=C(this,B).event(D),F=D.changedTouches,z=F.length,q,M;for(tte(D),p&&clearTimeout(p),p=setTimeout(function(){p=null},h),q=0;q<z;++q)M=F[q],H.touch0&&H.touch0[2]===M.identifier?delete H.touch0:H.touch1&&H.touch1[2]===M.identifier&&delete H.touch1;if(H.touch1&&!H.touch0&&(H.touch0=H.touch1,delete H.touch1),H.touch0)H.touch0[1]=this.__zoom.invert(H.touch0[0]);else if(H.end(),H.taps===2&&(M=rg(M,this),Math.hypot(f[0]-M[0],f[1]-M[1])<y)){var G=Sp(this).on("dblclick.zoom");G&&G.apply(this,arguments)}}}return b.wheelDelta=function(D){return arguments.length?(r=typeof D=="function"?D:rF(+D),b):r},b.filter=function(D){return arguments.length?(e=typeof D=="function"?D:rF(!!D),b):e},b.touchable=function(D){return arguments.length?(s=typeof D=="function"?D:rF(!!D),b):s},b.extent=function(D){return arguments.length?(t=typeof D=="function"?D:rF([[+D[0][0],+D[0][1]],[+D[1][0],+D[1][1]]]),b):t},b.scaleExtent=function(D){return arguments.length?(a[0]=+D[0],a[1]=+D[1],b):[a[0],a[1]]},b.translateExtent=function(D){return arguments.length?(i[0][0]=+D[0][0],i[1][0]=+D[1][0],i[0][1]=+D[0][1],i[1][1]=+D[1][1],b):[[i[0][0],i[0][1]],[i[1][0],i[1][1]]]},b.constrain=function(D){return arguments.length?(n=D,b):n},b.duration=function(D){return arguments.length?(l=+D,b):l},b.interpolate=function(D){return arguments.length?(c=D,b):c},b.on=function(){var D=u.on.apply(u,arguments);return D===u?b:D},b.clickDistance=function(D){return arguments.length?(g=(D=+D)*D,b):Math.sqrt(g)},b.tapDistance=function(D){return arguments.length?(y=+D,b):y},b}const xy={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."},EM=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],nSt=["Enter"," ","Escape"],rSt={"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 HT;(function(e){e.Strict="strict",e.Loose="loose"})(HT||(HT={}));var Xk;(function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"})(Xk||(Xk={}));var jM;(function(e){e.Partial="partial",e.Full="full"})(jM||(jM={}));const sSt={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null};var dw;(function(e){e.Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier"})(dw||(dw={}));var TM;(function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"})(TM||(TM={}));var sr;(function(e){e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom"})(sr||(sr={}));const W8e={[sr.Left]:sr.Right,[sr.Right]:sr.Left,[sr.Top]:sr.Bottom,[sr.Bottom]:sr.Top};function aSt(e){return e===null?null:e?"valid":"invalid"}const iSt=e=>"id"in e&&"source"in e&&"target"in e,BZn=e=>"id"in e&&"position"in e&&!("source"in e)&&!("target"in e),JSe=e=>"id"in e&&"internals"in e&&!("source"in e)&&!("target"in e),L3=(e,t=[0,0])=>{const{width:n,height:r}=Jx(e),s=e.origin??t,a=n*s[0],i=r*s[1];return{x:e.position.x-a,y:e.position.y-i}},UZn=(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):JSe(s)?s:t.nodeLookup.get(s.id));const l=i?EB(i,t.nodeOrigin):{x:0,y:0,x2:0,y2:0};return $H(r,l)},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return MH(n)},F3=(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=$H(n,EB(s)),r=!0)}),r?MH(n):{x:0,y:0,width:0,height:0}},eke=(e,t,[n,r,s]=[0,0,1],a=!1,i=!1)=>{const l={...B3(t,[n,r,s]),width:t.width/s,height:t.height/s},c=[];for(const u of e.values()){const{measured:d,selectable:f=!0,hidden:p=!1}=u;if(i&&!f||p)continue;const h=d.width??u.width??u.initialWidth??null,m=d.height??u.height??u.initialHeight??null,g=NM(l,ZT(u)),y=(h??0)*(m??0),b=a&&g>0;(!u.internals.handleBounds||b||g>=y||u.dragging)&&c.push(u)}return c},VZn=(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 qZn(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 HZn({nodes:e,width:t,height:n,panZoom:r,minZoom:s,maxZoom:a},i){if(e.size===0)return Promise.resolve(!0);const l=qZn(e,i),c=F3(l),u=tke(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 oSt({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",xy.error005());else{const h=l.measured.width,m=l.measured.height;h&&m&&(f=[[c,u],[c+h,u+m]])}else l&>(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=GT(f)?HO(t,f,i.measured):t;return(i.measured.width===void 0||i.measured.height===void 0)&&a?.("015",xy.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 WZn({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:r,onBeforeDelete:s}){const a=new Set(e.map(p=>p.id)),i=[];for(const p of n){if(p.deletable===!1)continue;const h=a.has(p.id),m=!h&&p.parentId&&i.find(g=>g.id===p.parentId);(h||m)&&i.push(p)}const l=new Set(t.map(p=>p.id)),c=r.filter(p=>p.deletable!==!1),d=VZn(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 WT=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),HO=(e={x:0,y:0},t,n)=>({x:WT(e.x,t[0][0],t[1][0]-(n?.width??0)),y:WT(e.y,t[0][1],t[1][1]-(n?.height??0))});function lSt(e,t,n){const{width:r,height:s}=Jx(n),{x:a,y:i}=n.internals.positionAbsolute;return HO(e,[[a,i],[a+r,i+s]],t)}const Z8e=(e,t,n)=>e<t?WT(Math.abs(e-t),1,t)/t:e>n?-WT(Math.abs(e-n),1,t)/t:0,cSt=(e,t,n=15,r=40)=>{const s=Z8e(e.x,r,t.width-r)*n,a=Z8e(e.y,r,t.height-r)*n;return[s,a]},$H=(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)}),age=({x:e,y:t,width:n,height:r})=>({x:e,y:t,x2:e+n,y2:t+r}),MH=({x:e,y:t,x2:n,y2:r})=>({x:e,y:t,width:n-e,height:r-t}),ZT=(e,t=[0,0])=>{const{x:n,y:r}=JSe(e)?e.internals.positionAbsolute:L3(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}},EB=(e,t=[0,0])=>{const{x:n,y:r}=JSe(e)?e.internals.positionAbsolute:L3(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)}},uSt=(e,t)=>MH($H(age(e),age(t))),NM=(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)},G8e=e=>gg(e.width)&&gg(e.height)&&gg(e.x)&&gg(e.y),gg=e=>!isNaN(e)&&isFinite(e),ZZn=(e,t)=>{},z3=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),B3=({x:e,y:t},[n,r,s],a=!1,i=[1,1])=>{const l={x:(e-n)/s,y:(t-r)/s};return a?z3(l,i):l},jB=({x:e,y:t},[n,r,s])=>({x:e*s+n,y:t*s+r});function oE(e,t){if(typeof e=="number")return Math.floor((t-t/(1+e))*.5);if(typeof e=="string"&&e.endsWith("px")){const n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(n)}if(typeof e=="string"&&e.endsWith("%")){const n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(t*n*.01)}return console.error(`[React Flow] The padding value "${e}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}function GZn(e,t,n){if(typeof e=="string"||typeof e=="number"){const r=oE(e,n),s=oE(e,t);return{top:r,right:s,bottom:r,left:s,x:s*2,y:r*2}}if(typeof e=="object"){const r=oE(e.top??e.y??0,n),s=oE(e.bottom??e.y??0,n),a=oE(e.left??e.x??0,t),i=oE(e.right??e.x??0,t);return{top:r,right:i,bottom:s,left:a,x:a+i,y:r+s}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function QZn(e,t,n,r,s,a){const{x:i,y:l}=jB(e,[t,n,r]),{x:c,y:u}=jB({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 tke=(e,t,n,r,s,a)=>{const i=GZn(a,t,n),l=(t-i.x)/e.width,c=(n-i.y)/e.height,u=Math.min(l,c),d=WT(u,r,s),f=e.x+e.width/2,p=e.y+e.height/2,h=t/2-f*d,m=n/2-p*d,g=QZn(e,h,m,d,t,n),y={left:Math.min(g.left-i.left,0),top:Math.min(g.top-i.top,0),right:Math.min(g.right-i.right,0),bottom:Math.min(g.bottom-i.bottom,0)};return{x:h-y.left+y.right,y:m-y.top+y.bottom,zoom:d}},IM=()=>typeof navigator<"u"&&navigator?.userAgent?.indexOf("Mac")>=0;function GT(e){return e!=null&&e!=="parent"}function Jx(e){return{width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}}function dSt(e){return(e.measured?.width??e.width??e.initialWidth)!==void 0&&(e.measured?.height??e.height??e.initialHeight)!==void 0}function fSt(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 Q8e(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function YZn(){let e,t;return{promise:new Promise((r,s)=>{e=r,t=s}),resolve:e,reject:t}}function KZn(e){return{...rSt,...e||{}}}function h2(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:r,containerBounds:s}){const{x:a,y:i}=vg(e),l=B3({x:a-(s?.left??0),y:i-(s?.top??0)},r),{x:c,y:u}=n?z3(l,t):l;return{xSnapped:c,ySnapped:u,...l}}const nke=e=>({width:e.offsetWidth,height:e.offsetHeight}),pSt=e=>e?.getRootNode?.()||window?.document,XZn=["INPUT","SELECT","TEXTAREA"];function hSt(e){const t=e.composedPath?.()?.[0]||e.target;return t?.nodeType!==1?!1:XZn.includes(t.nodeName)||t.hasAttribute("contenteditable")||!!t.closest(".nokey")}const mSt=e=>"clientX"in e,vg=(e,t)=>{const n=mSt(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)}},Y8e=(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,...nke(i)}})};function gSt({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 sF(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function K8e({pos:e,x1:t,y1:n,x2:r,y2:s,c:a}){switch(e){case sr.Left:return[t-sF(t-r,a),n];case sr.Right:return[t+sF(r-t,a),n];case sr.Top:return[t,n-sF(n-s,a)];case sr.Bottom:return[t,n+sF(s-n,a)]}}function rke({sourceX:e,sourceY:t,sourcePosition:n=sr.Bottom,targetX:r,targetY:s,targetPosition:a=sr.Top,curvature:i=.25}){const[l,c]=K8e({pos:n,x1:e,y1:t,x2:r,y2:s,c:i}),[u,d]=K8e({pos:a,x1:r,y1:s,x2:e,y2:t,c:i}),[f,p,h,m]=gSt({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 vSt({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 JZn({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 eGn({sourceNode:e,targetNode:t,width:n,height:r,transform:s}){const a=$H(EB(e),EB(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 NM(i,MH(a))>0}const tGn=({source:e,sourceHandle:t,target:n,targetHandle:r})=>`xy-edge__${e}${t||""}-${n}${r||""}`,nGn=(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)),rGn=(e,t,n={})=>{if(!e.source||!e.target)return t;const r=n.getEdgeId||tGn;let s;return iSt(e)?s={...e}:s={...e,id:r(e)},nGn(s,t)?t:(s.sourceHandle===null&&delete s.sourceHandle,s.targetHandle===null&&delete s.targetHandle,t.concat(s))};function ySt({sourceX:e,sourceY:t,targetX:n,targetY:r}){const[s,a,i,l]=vSt({sourceX:e,sourceY:t,targetX:n,targetY:r});return[`M ${e},${t}L ${n},${r}`,s,a,i,l]}const X8e={[sr.Left]:{x:-1,y:0},[sr.Right]:{x:1,y:0},[sr.Top]:{x:0,y:-1},[sr.Bottom]:{x:0,y:1}},sGn=({source:e,sourcePosition:t=sr.Bottom,target:n})=>t===sr.Left||t===sr.Right?e.x<n.x?{x:1,y:0}:{x:-1,y:0}:e.y<n.y?{x:0,y:1}:{x:0,y:-1},J8e=(e,t)=>Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2));function aGn({source:e,sourcePosition:t=sr.Bottom,target:n,targetPosition:r=sr.Top,center:s,offset:a,stepPosition:i}){const l=X8e[t],c=X8e[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=sGn({source:u,sourcePosition:t,target:d}),p=f.x!==0?"x":"y",h=f[p];let m=[],g,y;const b={x:0,y:0},x={x:0,y:0},[,,S,k]=vSt({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(l[p]*c[p]===-1){p==="x"?(g=s.x??u.x+(d.x-u.x)*i,y=s.y??(u.y+d.y)/2):(g=s.x??(u.x+d.x)/2,y=s.y??u.y+(d.y-u.y)*i);const j=[{x:g,y:u.y},{x:g,y:d.y}],N=[{x:u.x,y},{x:d.x,y}];l[p]===h?m=p==="x"?j:N:m=p==="x"?N:j}else{const j=[{x:u.x,y:d.y}],N=[{x:d.x,y:u.y}];if(p==="x"?m=l.x===h?N:j:m=l.y===h?j:N,t===r){const D=Math.abs(e[p]-n[p]);if(D<=a){const B=Math.min(a-1,a-D);l[p]===h?b[p]=(u[p]>e[p]?-1:1)*B:x[p]=(d[p]>n[p]?-1:1)*B}}if(t!==r){const D=p==="x"?"y":"x",B=l[p]===c[D],H=u[D]>d[D],F=u[D]<d[D];(l[p]===1&&(!B&&H||B&&F)||l[p]!==1&&(!B&&F||B&&H))&&(m=p==="x"?j:N)}const I={x:u.x+b.x,y:u.y+b.y},A={x:d.x+x.x,y:d.y+x.y},R=Math.max(Math.abs(I.x-m[0].x),Math.abs(A.x-m[0].x)),L=Math.max(Math.abs(I.y-m[0].y),Math.abs(A.y-m[0].y));R>=L?(g=(I.x+A.x)/2,y=m[0].y):(g=m[0].x,y=(I.y+A.y)/2)}const _={x:u.x+b.x,y:u.y+b.y},C={x:d.x+x.x,y:d.y+x.y};return[[e,..._.x!==m[0].x||_.y!==m[0].y?[_]:[],...m,...C.x!==m[m.length-1].x||C.y!==m[m.length-1].y?[C]:[],n],g,y,S,k]}function iGn(e,t,n,r){const s=Math.min(J8e(e,t)/2,J8e(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 ige({sourceX:e,sourceY:t,sourcePosition:n=sr.Bottom,targetX:r,targetY:s,targetPosition:a=sr.Top,borderRadius:i=5,centerX:l,centerY:c,offset:u=20,stepPosition:d=.5}){const[f,p,h,m,g]=aGn({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+=iGn(f[b-1],f[b],f[b+1],i);return y+=`L${f[f.length-1].x} ${f[f.length-1].y}`,[y,p,h,m,g]}function e9e(e){return e&&!!(e.internals.handleBounds||e.handles?.length)&&!!(e.measured.width||e.width||e.initialWidth)}function oGn(e){const{sourceNode:t,targetNode:n}=e;if(!e9e(t)||!e9e(n))return null;const r=t.internals.handleBounds||t9e(t.handles),s=n.internals.handleBounds||t9e(n.handles),a=n9e(r?.source??[],e.sourceHandle),i=n9e(e.connectionMode===HT.Strict?s?.target??[]:(s?.target??[]).concat(s?.source??[]),e.targetHandle);if(!a||!i)return e.onError?.("008",xy.error008(a?"target":"source",{id:e.id,sourceHandle:e.sourceHandle,targetHandle:e.targetHandle})),null;const l=a?.position||sr.Bottom,c=i?.position||sr.Top,u=WO(t,a,l),d=WO(n,i,c);return{sourceX:u.x,sourceY:u.y,targetX:d.x,targetY:d.y,sourcePosition:l,targetPosition:c}}function t9e(e){if(!e)return null;const t=[],n=[];for(const r of e)r.width=r.width??1,r.height=r.height??1,r.type==="source"?t.push(r):r.type==="target"&&n.push(r);return{source:t,target:n}}function WO(e,t,n=sr.Left,r=!1){const s=(t?.x??0)+e.internals.positionAbsolute.x,a=(t?.y??0)+e.internals.positionAbsolute.y,{width:i,height:l}=t??Jx(e);if(r)return{x:s+i/2,y:a+l/2};switch(t?.position??n){case sr.Top:return{x:s+i/2,y:a};case sr.Right:return{x:s+i,y:a+l/2};case sr.Bottom:return{x:s+i/2,y:a+l};case sr.Left:return{x:s,y:a+l/2}}}function n9e(e,t){return e&&(t?e.find(n=>n.id===t):e[0])||null}function oge(e,t){return e?typeof e=="string"?e:`${t?`${t}__`:""}${Object.keys(e).sort().map(r=>`${r}=${e[r]}`).join("&")}`:""}function lGn(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=oge(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 bSt=1e3,cGn=10,ske={nodeOrigin:[0,0],nodeExtent:EM,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},uGn={...ske,checkEquality:!0};function ake(e,t){const n={...e};for(const r in t)t[r]!==void 0&&(n[r]=t[r]);return n}function dGn(e,t,n){const r=ake(ske,n);for(const s of e.values())if(s.parentId)oke(s,e,t,r);else{const a=L3(s,r.nodeOrigin),i=GT(s.extent)?s.extent:r.nodeExtent,l=HO(a,i,Jx(s));s.internals.positionAbsolute=l}}function fGn(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 ike(e){return e==="manual"}function lge(e,t,n,r={}){const s=ake(uGn,r),a={i:0},i=new Map(t),l=s?.elevateNodesOnSelect&&!ike(s.zIndexMode)?bSt: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=L3(d,s.nodeOrigin),h=GT(d.extent)?d.extent:s.nodeExtent,m=HO(p,h,Jx(d));f={...s.defaults,...d,measured:{width:d.measured?.width,height:d.measured?.height},internals:{positionAbsolute:m,handleBounds:fGn(d,f),z:xSt(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&&oke(f,t,n,r,a),u||=d.selected??!1}return{nodesInitialized:c,hasSelectedNodes:u}}function pGn(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 oke(e,t,n,r,s){const{elevateNodesOnSelect:a,nodeOrigin:i,nodeExtent:l,zIndexMode:c}=ake(ske,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}pGn(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*cGn),s&&d.internals.rootParentIndex!==void 0&&(s.i=d.internals.rootParentIndex);const f=a&&!ike(c)?bSt:0,{x:p,y:h,z:m}=hGn(e,d,i,l,f,c),{positionAbsolute:g}=e.internals,y=p!==g.x||h!==g.y;(y||m!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:y?{x:p,y:h}:g,z:m}})}function xSt(e,t,n){const r=gg(e.zIndex)?e.zIndex:0;return ike(n)?r:r+(e.selected?t:0)}function hGn(e,t,n,r,s,a){const{x:i,y:l}=t.internals.positionAbsolute,c=Jx(e),u=L3(e,n),d=GT(e.extent)?HO(u,e.extent,c):u;let f=HO({x:i+d.x,y:l+d.y},r,c);e.extent==="parent"&&(f=lSt(f,c,t));const p=xSt(e,s,a),h=t.internals.z??0;return{x:f.x,y:f.y,z:h>=p?h+1:p}}function lke(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??ZT(l),u=uSt(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=Jx(l),f=l.origin??r,p=i.x<u.x?Math.round(Math.abs(u.x-i.x)):0,h=i.y<u.y?Math.round(Math.abs(u.y-i.y)):0,m=Math.max(d.width,Math.round(i.width)),g=Math.max(d.height,Math.round(i.height)),y=(m-d.width)*f[0],b=(g-d.height)*f[1];(p>0||h>0||y||b)&&(s.push({id:c,type:"position",position:{x:l.position.x-p+y,y:l.position.y-h+b}}),n.get(c)?.forEach(x=>{e.some(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:g+(h?f[1]*h-b:0)}})}),s}function mGn(e,t,n,r,s,a,i){const l=r?.querySelector(".xyflow__viewport");let c=!1;if(!l)return{changes:[],updatedInternals:c};const u=[],d=window.getComputedStyle(l),{m22:f}=new window.DOMMatrixReadOnly(d.transform),p=[];for(const h of e.values()){const m=t.get(h.id);if(!m)continue;if(m.hidden){t.set(m.id,{...m,internals:{...m.internals,handleBounds:void 0}}),c=!0;continue}const g=nke(h.nodeElement),y=m.measured.width!==g.width||m.measured.height!==g.height;if(!!(g.width&&g.height&&(y||!m.internals.handleBounds||h.force))){const x=h.nodeElement.getBoundingClientRect(),S=GT(m.extent)?m.extent:a;let{positionAbsolute:k}=m.internals;m.parentId&&m.extent==="parent"?k=lSt(k,g,t.get(m.parentId)):S&&(k=HO(k,S,g));const _={...m,measured:g,internals:{...m.internals,positionAbsolute:k,handleBounds:{source:Y8e("source",h.nodeElement,x,f,m.id),target:Y8e("target",h.nodeElement,x,f,m.id)}}};t.set(m.id,_),m.parentId&&oke(_,t,n,{nodeOrigin:s,zIndexMode:i}),c=!0,y&&(u.push({id:m.id,type:"dimensions",dimensions:g}),m.expandParent&&m.parentId&&p.push({id:m.id,parentId:m.parentId,rect:ZT(_,s)}))}}if(p.length>0){const h=lke(p,t,n,s);u.push(...h)}return{changes:u,updatedInternals:c}}async function gGn({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 r9e(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 wSt(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}`;r9e("source",c,d,e,s,i),r9e("target",c,u,e,a,l),t.set(r.id,r)}}function SSt(e,t){if(!e.parentId)return!1;const n=t.get(e.parentId);return n?n.selected?!0:SSt(n,t):!1}function s9e(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 vGn(e,t,n,r){const s=new Map;for(const[a,i]of e)if((i.selected||i.id===r)&&(!i.parentId||!SSt(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 nte({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 yGn({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=z3(a,t);return{x:i.x-a.x,y:i.y-a.y}}function bGn({onNodeMouseDown:e,getStoreItems:t,onDragStart:n,onDrag:r,onDragStop:s}){let a={x:null,y:null},i=0,l=new Map,c=!1,u={x:0,y:0},d=null,f=!1,p=null,h=!1,m=!1,g=null;function y({noDragClassName:x,handleSelector:S,domNode:k,isSelectable:_,nodeId:C,nodeClickDistance:E=0}){p=Sp(k);function j({x:R,y:L}){const{nodeLookup:D,nodeExtent:B,snapGrid:H,snapToGrid:F,nodeOrigin:z,onNodeDrag:q,onSelectionDrag:M,onError:G,updateNodePositions:V}=t();a={x:R,y:L};let $=!1;const U=l.size>1,Z=U&&B?age(F3(l)):null,K=U&&F?yGn({dragItems:l,snapGrid:H,x:R,y:L}):null;for(const[ee,te]of l){if(!D.has(ee))continue;let J={x:R-te.distance.x,y:L-te.distance.y};F&&(J=K?{x:Math.round(J.x+K.x),y:Math.round(J.y+K.y)}:z3(J,H));let ae=null;if(U&&B&&!te.extent&&Z){const{positionAbsolute:ne}=te.internals,fe=ne.x-Z.x+B[0][0],he=ne.x+te.measured.width-Z.x2+B[1][0],le=ne.y-Z.y+B[0][1],ue=ne.y+te.measured.height-Z.y2+B[1][1];ae=[[fe,le],[he,ue]]}const{position:de,positionAbsolute:Y}=oSt({nodeId:ee,nextPosition:J,nodeLookup:D,nodeExtent:ae||B,nodeOrigin:z,onError:G});$=$||te.position.x!==de.x||te.position.y!==de.y,te.position=de,te.internals.positionAbsolute=Y}if(m=m||$,!!$&&(V(l,!0),g&&(r||q||!C&&M))){const[ee,te]=nte({nodeId:C,dragItems:l,nodeLookup:D});r?.(g,l,ee,te),q?.(g,ee,te),C||M?.(g,te)}}async function N(){if(!d)return;const{transform:R,panBy:L,autoPanSpeed:D,autoPanOnNodeDrag:B}=t();if(!B){c=!1,cancelAnimationFrame(i);return}const[H,F]=cSt(u,d,D);(H!==0||F!==0)&&(a.x=(a.x??0)-H/R[2],a.y=(a.y??0)-F/R[2],await L({x:H,y:F})&&j(a)),i=requestAnimationFrame(N)}function I(R){const{nodeLookup:L,multiSelectionActive:D,nodesDraggable:B,transform:H,snapGrid:F,snapToGrid:z,selectNodesOnDrag:q,onNodeDragStart:M,onSelectionDragStart:G,unselectNodesAndEdges:V}=t();f=!0,(!q||!_)&&!D&&C&&(L.get(C)?.selected||V()),_&&q&&C&&e?.(C);const $=h2(R.sourceEvent,{transform:H,snapGrid:F,snapToGrid:z,containerBounds:d});if(a=$,l=vGn(L,B,$,C),l.size>0&&(n||M||!C&&G)){const[U,Z]=nte({nodeId:C,dragItems:l,nodeLookup:L});n?.(R.sourceEvent,l,U,Z),M?.(R.sourceEvent,U,Z),C||G?.(R.sourceEvent,Z)}}const A=z1t().clickDistance(E).on("start",R=>{const{domNode:L,nodeDragThreshold:D,transform:B,snapGrid:H,snapToGrid:F}=t();d=L?.getBoundingClientRect()||null,h=!1,m=!1,g=R.sourceEvent,D===0&&I(R),a=h2(R.sourceEvent,{transform:B,snapGrid:H,snapToGrid:F,containerBounds:d}),u=vg(R.sourceEvent,d)}).on("drag",R=>{const{autoPanOnNodeDrag:L,transform:D,snapGrid:B,snapToGrid:H,nodeDragThreshold:F,nodeLookup:z}=t(),q=h2(R.sourceEvent,{transform:D,snapGrid:B,snapToGrid:H,containerBounds:d});if(g=R.sourceEvent,(R.sourceEvent.type==="touchmove"&&R.sourceEvent.touches.length>1||C&&!z.has(C))&&(h=!0),!h){if(!c&&L&&f&&(c=!0,N()),!f){const M=vg(R.sourceEvent,d),G=M.x-u.x,V=M.y-u.y;Math.sqrt(G*G+V*V)>F&&I(R)}(a.x!==q.xSnapped||a.y!==q.ySnapped)&&l&&f&&(u=vg(R.sourceEvent,d),j(q))}}).on("end",R=>{if(!(!f||h)&&(c=!1,f=!1,cancelAnimationFrame(i),l.size>0)){const{nodeLookup:L,updateNodePositions:D,onNodeDragStop:B,onSelectionDragStop:H}=t();if(m&&(D(l,!1),m=!1),s||B||!C&&H){const[F,z]=nte({nodeId:C,dragItems:l,nodeLookup:L,dragging:!1});s?.(R.sourceEvent,l,F,z),B?.(R.sourceEvent,F,z),C||H?.(R.sourceEvent,z)}}}).filter(R=>{const L=R.target;return!R.button&&(!x||!s9e(L,`.${x}`,k))&&(!S||s9e(L,S,k))});p.call(A)}function b(){p?.on(".drag",null)}return{update:y,destroy:b}}function xGn(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())NM(s,ZT(a))>0&&r.push(a);return r}const wGn=250;function SGn(e,t,n,r){let s=[],a=1/0;const i=xGn(e,n,t+wGn);for(const l of i){const c=[...l.internals.handleBounds?.source??[],...l.internals.handleBounds?.target??[]];for(const u of c){if(r.nodeId===u.nodeId&&r.type===u.type&&r.id===u.id)continue;const{x:d,y:f}=WO(l,u,u.position,!0),p=Math.sqrt(Math.pow(d-e.x,2)+Math.pow(f-e.y,2));p>t||(p<a?(s=[{...u,x:d,y:f}],a=p):p===a&&s.push({...u,x:d,y:f}))}}if(!s.length)return null;if(s.length>1){const l=r.type==="source"?"target":"source";return s.find(c=>c.type===l)??s[0]}return s[0]}function kSt(e,t,n,r,s,a=!1){const i=r.get(e);if(!i)return null;const l=s==="strict"?i.internals.handleBounds?.[t]:[...i.internals.handleBounds?.source??[],...i.internals.handleBounds?.target??[]],c=(n?l?.find(u=>u.id===n):l?.[0])??null;return c&&a?{...c,...WO(i,c,c.position,!0)}:c}function OSt(e,t){return e||(t?.classList.contains("target")?"target":t?.classList.contains("source")?"source":null)}function kGn(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}const _St=()=>!0;function OGn(e,{connectionMode:t,connectionRadius:n,handleId:r,nodeId:s,edgeUpdaterType:a,isTarget:i,domNode:l,nodeLookup:c,lib:u,autoPanOnConnect:d,flowId:f,panBy:p,cancelConnection:h,onConnectStart:m,onConnect:g,onConnectEnd:y,isValidConnection:b=_St,onReconnectEnd:x,updateConnection:S,getTransform:k,getFromHandle:_,autoPanSpeed:C,dragThreshold:E=1,handleDomNode:j}){const N=pSt(e.target);let I=0,A;const{x:R,y:L}=vg(e),D=OSt(a,j),B=l?.getBoundingClientRect();let H=!1;if(!B||!D)return;const F=kSt(s,D,r,c,t);if(!F)return;let z=vg(e,B),q=!1,M=null,G=!1,V=null;function $(){if(!d||!B)return;const[de,Y]=cSt(z,B,C);p({x:de,y:Y}),I=requestAnimationFrame($)}const U={...F,nodeId:s,type:D,position:F.position},Z=c.get(s);let ee={inProgress:!0,isValid:null,from:WO(Z,U,sr.Left,!0),fromHandle:U,fromPosition:U.position,fromNode:Z,to:z,toHandle:null,toPosition:W8e[U.position],toNode:null,pointer:z};function te(){H=!0,S(ee),m?.(e,{nodeId:s,handleId:r,handleType:D})}E===0&&te();function J(de){if(!H){const{x:ue,y:be}=vg(de),xe=ue-R,Ce=be-L;if(!(xe*xe+Ce*Ce>E*E))return;te()}if(!_()||!U){ae(de);return}const Y=k();z=vg(de,B),A=SGn(B3(z,Y,!1,[1,1]),n,c,U),q||($(),q=!0);const ne=CSt(de,{handle:A,connectionMode:t,fromNodeId:s,fromHandleId:r,fromType:i?"target":"source",isValidConnection:b,doc:N,lib:u,flowId:f,nodeLookup:c});V=ne.handleDomNode,M=ne.connection,G=kGn(!!A,ne.isValid);const fe=c.get(s),he=fe?WO(fe,U,sr.Left,!0):ee.from,le={...ee,from:he,isValid:G,to:ne.toHandle&&G?jB({x:ne.toHandle.x,y:ne.toHandle.y},Y):z,toHandle:ne.toHandle,toPosition:G&&ne.toHandle?ne.toHandle.position:W8e[U.position],toNode:ne.toHandle?c.get(ne.toHandle.nodeId):null,pointer:z};S(le),ee=le}function ae(de){if(!("touches"in de&&de.touches.length>0)){if(H){(A||V)&&M&&G&&g?.(M);const{inProgress:Y,...ne}=ee,fe={...ne,toPosition:ee.toHandle?ee.toPosition:null};y?.(de,fe),a&&x?.(de,fe)}h(),cancelAnimationFrame(I),q=!1,G=!1,M=null,V=null,N.removeEventListener("mousemove",J),N.removeEventListener("mouseup",ae),N.removeEventListener("touchmove",J),N.removeEventListener("touchend",ae)}}N.addEventListener("mousemove",J),N.addEventListener("mouseup",ae),N.addEventListener("touchmove",J),N.addEventListener("touchend",ae)}function CSt(e,{handle:t,connectionMode:n,fromNodeId:r,fromHandleId:s,fromType:a,doc:i,lib:l,flowId:c,isValidConnection:u=_St,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}=vg(e),g=i.elementFromPoint(h,m),y=g?.classList.contains(`${l}-flow__handle`)?g:p,b={handleDomNode:y,isValid:!1,connection:null,toHandle:null};if(y){const x=OSt(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 E={source:f?S:r,sourceHandle:f?k:s,target:f?r:S,targetHandle:f?s:k};b.connection=E;const N=_&&C&&(n===HT.Strict?f&&x==="source"||!f&&x==="target":S!==r||k!==s);b.isValid=N&&u(E),b.toHandle=kSt(S,x,k,d,n,!0)}return b}const cge={onPointerDown:OGn,isValid:CSt};function _Gn({domNode:e,panZoom:t,getTransform:n,getViewScale:r}){const s=Sp(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&&IM()?10:1,C=-S.sourceEvent.deltaY*(S.sourceEvent.deltaMode===1?.05:S.sourceEvent.deltaMode?1:.002)*d,E=k[2]*Math.pow(2,C*_);t.scaleTo(E)};let g=[0,0];const y=S=>{(S.sourceEvent.type==="mousedown"||S.sourceEvent.type==="touchstart")&&(g=[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]-g[0],_[1]-g[1]];g=_;const E=r()*Math.max(k[2],Math.log(k[2]))*(h?-1:1),j={x:k[0]-C[0]*E,y:k[1]-C[1]*E},N=[[0,0],[c,u]];t.setViewportConstrained({x:j.x,y:j.y,zoom:k[2]},N,l)},x=tSt().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:rg}}const DH=e=>({x:e.x,y:e.y,zoom:e.k}),rte=({x:e,y:t,zoom:n})=>PH.translate(e,t).scale(n),uj=(e,t)=>e.target.closest(`.${t}`),ESt=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),CGn=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,ste=(e,t=0,n=CGn,r=()=>{})=>{const s=typeof t=="number"&&t>0;return s||r(),s?e.transition().duration(t).ease(n).on("end",r):e},jSt=e=>{const t=e.ctrlKey&&IM()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function EGn({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:r,panOnScrollMode:s,panOnScrollSpeed:a,zoomOnPinch:i,onPanZoomStart:l,onPanZoom:c,onPanZoomEnd:u}){return d=>{if(uj(d,t))return d.ctrlKey&&d.preventDefault(),!1;d.preventDefault(),d.stopImmediatePropagation();const f=n.property("__zoom").k||1;if(d.ctrlKey&&i){const y=rg(d),b=jSt(d),x=f*Math.pow(2,b);r.scaleTo(n,x,y,d);return}const p=d.deltaMode===1?20:1;let h=s===Xk.Vertical?0:d.deltaX*p,m=s===Xk.Horizontal?0:d.deltaY*p;!IM()&&d.shiftKey&&s!==Xk.Vertical&&(h=d.deltaY*p,m=0),r.translateBy(n,-(h/f)*a,-(m/f)*a,{internal:!0});const g=DH(n.property("__zoom"));clearTimeout(e.panScrollTimeout),e.isPanScrolling?(c?.(d,g),e.panScrollTimeout=setTimeout(()=>{u?.(d,g),e.isPanScrolling=!1},150)):(e.isPanScrolling=!0,l?.(d,g))}}function jGn({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(r,s){const a=r.type==="wheel",i=!t&&a&&!r.ctrlKey,l=uj(r,e);if(r.ctrlKey&&a&&l&&r.preventDefault(),i||l)return null;r.preventDefault(),n.call(this,r,s)}}function TGn({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return r=>{if(r.sourceEvent?.internal)return;const s=DH(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 NGn({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:r,onPanZoom:s}){return a=>{e.usedRightMouseButton=!!(n&&ESt(t,e.mouseButton??0)),a.sourceEvent?.sync||r([a.transform.x,a.transform.y,a.transform.k]),s&&!a.sourceEvent?.internal&&s?.(a.sourceEvent,DH(a.transform))}}function IGn({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:r,onPanZoomEnd:s,onPaneContextMenu:a}){return i=>{if(!i.sourceEvent?.internal&&(e.isZoomingOrPanning=!1,a&&ESt(t,e.mouseButton??0)&&!e.usedRightMouseButton&&i.sourceEvent&&a(i.sourceEvent),e.usedRightMouseButton=!1,r(!1),s)){const l=DH(i.transform);e.prevViewport=l,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{s?.(i.sourceEvent,l)},n?150:0)}}}function AGn({zoomActivationKeyPressed:e,zoomOnScroll:t,zoomOnPinch:n,panOnDrag:r,panOnScroll:s,zoomOnDoubleClick:a,userSelectionActive:i,noWheelClassName:l,noPanClassName:c,lib:u,connectionInProgress:d}){return f=>{const p=e||t,h=n&&f.ctrlKey,m=f.type==="wheel";if(f.button===1&&f.type==="mousedown"&&(uj(f,`${u}-flow__node`)||uj(f,`${u}-flow__edge`)))return!0;if(!r&&!p&&!s&&!a&&!n||i||d&&!m||uj(f,l)&&m||uj(f,c)&&(!m||s&&m&&!e)||!n&&f.ctrlKey&&m)return!1;if(!n&&f.type==="touchstart"&&f.touches?.length>1)return f.preventDefault(),!1;if(!p&&!s&&!h&&m||!r&&(f.type==="mousedown"||f.type==="touchstart")||Array.isArray(r)&&!r.includes(f.button)&&f.type==="mousedown")return!1;const g=Array.isArray(r)&&r.includes(f.button)||!f.button||f.button<=1;return(!f.ctrlKey||m)&&g}}function RGn({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=tSt().scaleExtent([t,n]).translateExtent(r),p=Sp(e).call(f);x({x:s.x,y:s.y,zoom:WT(s.zoom,t,n)},[[0,0],[d.width,d.height]],r);const h=p.on("wheel.zoom"),m=p.on("dblclick.zoom");f.wheelDelta(jSt);function g(A,R){return p?new Promise(L=>{f?.interpolate(R?.interpolate==="linear"?cx:I8).transform(ste(p,R?.duration,R?.ease,()=>L(!0)),A)}):Promise.resolve(!1)}function y({noWheelClassName:A,noPanClassName:R,onPaneContextMenu:L,userSelectionActive:D,panOnScroll:B,panOnDrag:H,panOnScrollMode:F,panOnScrollSpeed:z,preventScrolling:q,zoomOnPinch:M,zoomOnScroll:G,zoomOnDoubleClick:V,zoomActivationKeyPressed:$,lib:U,onTransformChange:Z,connectionInProgress:K,paneClickDistance:ee,selectionOnDrag:te}){D&&!u.isZoomingOrPanning&&b();const J=B&&!$&&!D;f.clickDistance(te?1/0:!gg(ee)||ee<0?0:ee);const ae=J?EGn({zoomPanValues:u,noWheelClassName:A,d3Selection:p,d3Zoom:f,panOnScrollMode:F,panOnScrollSpeed:z,zoomOnPinch:M,onPanZoomStart:i,onPanZoom:a,onPanZoomEnd:l}):jGn({noWheelClassName:A,preventScrolling:q,d3ZoomHandler:h});if(p.on("wheel.zoom",ae,{passive:!1}),!D){const Y=TGn({zoomPanValues:u,onDraggingChange:c,onPanZoomStart:i});f.on("start",Y);const ne=NGn({zoomPanValues:u,panOnDrag:H,onPaneContextMenu:!!L,onPanZoom:a,onTransformChange:Z});f.on("zoom",ne);const fe=IGn({zoomPanValues:u,panOnDrag:H,panOnScroll:B,onPaneContextMenu:L,onPanZoomEnd:l,onDraggingChange:c});f.on("end",fe)}const de=AGn({zoomActivationKeyPressed:$,panOnDrag:H,zoomOnScroll:G,panOnScroll:B,zoomOnDoubleClick:V,zoomOnPinch:M,userSelectionActive:D,noPanClassName:R,noWheelClassName:A,lib:U,connectionInProgress:K});f.filter(de),V?p.on("dblclick.zoom",m):p.on("dblclick.zoom",null)}function b(){f.on("zoom",null)}async function x(A,R,L){const D=rte(A),B=f?.constrain()(D,R,L);return B&&await g(B),new Promise(H=>H(B))}async function S(A,R){const L=rte(A);return await g(L,R),new Promise(D=>D(L))}function k(A){if(p){const R=rte(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?eSt(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"?cx:I8).scaleTo(ste(p,R?.duration,R?.ease,()=>L(!0)),A)}):Promise.resolve(!1)}function E(A,R){return p?new Promise(L=>{f?.interpolate(R?.interpolate==="linear"?cx:I8).scaleBy(ste(p,R?.duration,R?.ease,()=>L(!0)),A)}):Promise.resolve(!1)}function j(A){f?.scaleExtent(A)}function N(A){f?.translateExtent(A)}function I(A){const R=!gg(A)||A<0?0:A;f?.clickDistance(R)}return{update:y,destroy:b,setViewport:S,setViewportConstrained:x,getViewport:_,scaleTo:C,scaleBy:E,setScaleExtent:j,setTranslateExtent:N,syncViewport:k,setClickDistance:I}}var QT;(function(e){e.Line="line",e.Handle="handle"})(QT||(QT={}));function PGn({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 a9e(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 q0(e,t){return Math.max(0,t-e)}function H0(e,t){return Math.max(0,e-t)}function aF(e,t,n){return Math.max(0,t-e,e-n)}function i9e(e,t){return e?!t:t}function $Gn(e,t,n,r,s,a,i,l){let{affectsX:c,affectsY:u}=t;const{isHorizontal:d,isVertical:f}=t,p=d&&f,{xSnapped:h,ySnapped:m}=n,{minWidth:g,maxWidth:y,minHeight:b,maxHeight:x}=r,{x:S,y:k,width:_,height:C,aspectRatio:E}=e;let j=Math.floor(d?h-e.pointerX:0),N=Math.floor(f?m-e.pointerY:0);const I=_+(c?-j:j),A=C+(u?-N:N),R=-a[0]*_,L=-a[1]*C;let D=aF(I,g,y),B=aF(A,b,x);if(i){let z=0,q=0;c&&j<0?z=q0(S+j+R,i[0][0]):!c&&j>0&&(z=H0(S+I+R,i[1][0])),u&&N<0?q=q0(k+N+L,i[0][1]):!u&&N>0&&(q=H0(k+A+L,i[1][1])),D=Math.max(D,z),B=Math.max(B,q)}if(l){let z=0,q=0;c&&j>0?z=H0(S+j,l[0][0]):!c&&j<0&&(z=q0(S+I,l[1][0])),u&&N>0?q=H0(k+N,l[0][1]):!u&&N<0&&(q=q0(k+A,l[1][1])),D=Math.max(D,z),B=Math.max(B,q)}if(s){if(d){const z=aF(I/E,b,x)*E;if(D=Math.max(D,z),i){let q=0;!c&&!u||c&&!u&&p?q=H0(k+L+I/E,i[1][1])*E:q=q0(k+L+(c?j:-j)/E,i[0][1])*E,D=Math.max(D,q)}if(l){let q=0;!c&&!u||c&&!u&&p?q=q0(k+I/E,l[1][1])*E:q=H0(k+(c?j:-j)/E,l[0][1])*E,D=Math.max(D,q)}}if(f){const z=aF(A*E,g,y)/E;if(B=Math.max(B,z),i){let q=0;!c&&!u||u&&!c&&p?q=H0(S+A*E+R,i[1][0])/E:q=q0(S+(u?N:-N)*E+R,i[0][0])/E,B=Math.max(B,q)}if(l){let q=0;!c&&!u||u&&!c&&p?q=q0(S+A*E,l[1][0])/E:q=H0(S+(u?N:-N)*E,l[0][0])/E,B=Math.max(B,q)}}}N=N+(N<0?B:-B),j=j+(j<0?D:-D),s&&(p?I>A*E?N=(i9e(c,u)?-j:j)/E:j=(i9e(c,u)?-N:N)*E:d?(N=j/E,u=c):(j=N*E,c=u));const H=c?S+j:S,F=u?k+N:k;return{width:_+(c?-j:j),height:C+(u?-N:N),x:a[0]*j*(c?-1:1)+H,y:a[1]*N*(u?-1:1)+F}}const TSt={width:0,height:0,x:0,y:0},MGn={...TSt,pointerX:0,pointerY:0,aspectRatio:1};function DGn(e){return[[0,0],[e.measured.width,e.measured.height]]}function LGn(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 FGn({domNode:e,nodeId:t,getStoreItems:n,onChange:r,onEnd:s}){const a=Sp(e);let i={controlDirection:a9e("bottom-right"),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};function l({controlPosition:u,boundaries:d,keepAspectRatio:f,resizeDirection:p,onResizeStart:h,onResize:m,onResizeEnd:g,shouldResize:y}){let b={...TSt},x={...MGn};i={boundaries:d,resizeDirection:p,keepAspectRatio:f,controlDirection:a9e(u)};let S,k=null,_=[],C,E,j,N=!1;const I=z1t().on("start",A=>{const{nodeLookup:R,transform:L,snapGrid:D,snapToGrid:B,nodeOrigin:H,paneDomNode:F}=n();if(S=R.get(t),!S)return;k=F?.getBoundingClientRect()??null;const{xSnapped:z,ySnapped:q}=h2(A.sourceEvent,{transform:L,snapGrid:D,snapToGrid:B,containerBounds:k});b={width:S.measured.width??0,height:S.measured.height??0,x:S.position.x??0,y:S.position.y??0},x={...b,pointerX:z,pointerY:q,aspectRatio:b.width/b.height},C=void 0,S.parentId&&(S.extent==="parent"||S.expandParent)&&(C=R.get(S.parentId),E=C&&S.extent==="parent"?DGn(C):void 0),_=[],j=void 0;for(const[M,G]of R)if(G.parentId===t&&(_.push({id:M,position:{...G.position},extent:G.extent}),G.extent==="parent"||G.expandParent)){const V=LGn(G,S,G.origin??H);j?j=[[Math.min(V[0][0],j[0][0]),Math.min(V[0][1],j[0][1])],[Math.max(V[1][0],j[1][0]),Math.max(V[1][1],j[1][1])]]:j=V}h?.(A,{...b})}).on("drag",A=>{const{transform:R,snapGrid:L,snapToGrid:D,nodeOrigin:B}=n(),H=h2(A.sourceEvent,{transform:R,snapGrid:L,snapToGrid:D,containerBounds:k}),F=[];if(!S)return;const{x:z,y:q,width:M,height:G}=b,V={},$=S.origin??B,{width:U,height:Z,x:K,y:ee}=$Gn(x,i.controlDirection,H,i.boundaries,i.keepAspectRatio,$,E,j),te=U!==M,J=Z!==G,ae=K!==z&&te,de=ee!==q&&J;if(!ae&&!de&&!te&&!J)return;if((ae||de||$[0]===1||$[1]===1)&&(V.x=ae?K:b.x,V.y=de?ee:b.y,b.x=V.x,b.y=V.y,_.length>0)){const he=K-z,le=ee-q;for(const ue of _)ue.position={x:ue.position.x-he+$[0]*(U-M),y:ue.position.y-le+$[1]*(Z-G)},F.push(ue)}if((te||J)&&(V.width=te&&(!i.resizeDirection||i.resizeDirection==="horizontal")?U:b.width,V.height=J&&(!i.resizeDirection||i.resizeDirection==="vertical")?Z:b.height,b.width=V.width,b.height=V.height),C&&S.expandParent){const he=$[0]*(V.width??0);V.x&&V.x<he&&(b.x=he,x.x=x.x-(V.x-he));const le=$[1]*(V.height??0);V.y&&V.y<le&&(b.y=le,x.y=x.y-(V.y-le))}const Y=PGn({width:b.width,prevWidth:M,height:b.height,prevHeight:G,affectsX:i.controlDirection.affectsX,affectsY:i.controlDirection.affectsY}),ne={...b,direction:Y};y?.(A,ne)!==!1&&(N=!0,m?.(A,ne),r(V,F))}).on("end",A=>{N&&(g?.(A,{...b}),s?.({...b}),N=!1)});a.call(I)}function c(){a.on(".drag",null)}return{update:l,destroy:c}}const zGn={},o9e=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:()=>{(zGn?"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},BGn=e=>e?o9e(e):o9e,{useDebugValue:UGn}=Fe,{useSyncExternalStoreWithSelector:VGn}=iOn,qGn=e=>e;function NSt(e,t=qGn,n){const r=VGn(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return UGn(r),r}const l9e=(e,t)=>{const n=BGn(e),r=(s,a=t)=>NSt(n,s,a);return Object.assign(r,n),r},HGn=(e,t)=>e?l9e(e,t):l9e;function io(e,t){if(Object.is(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(const[r,s]of e)if(!Object.is(s,t.get(r)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const r of e)if(!t.has(r))return!1;return!0}const n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(const r of n)if(!Object.prototype.hasOwnProperty.call(t,r)||!Object.is(e[r],t[r]))return!1;return!0}const LH=v.createContext(null),WGn=LH.Provider,ISt=xy.error001();function Bs(e,t){const n=v.useContext(LH);if(n===null)throw new Error(ISt);return NSt(n,e,t)}function jo(){const e=v.useContext(LH);if(e===null)throw new Error(ISt);return v.useMemo(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}const c9e={display:"none"},ZGn={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},ASt="react-flow__node-desc",RSt="react-flow__edge-desc",GGn="react-flow__aria-live",QGn=e=>e.ariaLiveMessage,YGn=e=>e.ariaLabelConfig;function KGn({rfId:e}){const t=Bs(QGn);return o.jsx("div",{id:`${GGn}-${e}`,"aria-live":"assertive","aria-atomic":"true",style:ZGn,children:t})}function XGn({rfId:e,disableKeyboardA11y:t}){const n=Bs(YGn);return o.jsxs(o.Fragment,{children:[o.jsx("div",{id:`${ASt}-${e}`,style:c9e,children:t?n["node.a11yDescription.default"]:n["node.a11yDescription.keyboardDisabled"]}),o.jsx("div",{id:`${RSt}-${e}`,style:c9e,children:n["edge.a11yDescription.default"]}),!t&&o.jsx(KGn,{rfId:e})]})}const U3=v.forwardRef(({position:e="top-left",children:t,className:n,style:r,...s},a)=>{const i=`${e}`.split("-");return o.jsx("div",{className:Ul(["react-flow__panel",n,...i]),style:r,ref:a,...s,children:t})});U3.displayName="Panel";function JGn({proOptions:e,position:t="bottom-right"}){return e?.hideAttribution?null:o.jsx(U3,{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 eQn=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}},iF=e=>e.id;function tQn(e,t){return io(e.selectedNodes.map(iF),t.selectedNodes.map(iF))&&io(e.selectedEdges.map(iF),t.selectedEdges.map(iF))}function nQn({onSelectionChange:e}){const t=jo(),{selectedNodes:n,selectedEdges:r}=Bs(eQn,tQn);return v.useEffect(()=>{const s={nodes:n,edges:r};e?.(s),t.getState().onSelectionChangeHandlers.forEach(a=>a(s))},[n,r,e]),null}const rQn=e=>!!e.onSelectionChangeHandlers;function sQn({onSelectionChange:e}){const t=Bs(rQn);return e||t?o.jsx(nQn,{onSelectionChange:e}):null}const uge=typeof window<"u"?v.useLayoutEffect:v.useEffect,PSt=[0,0],aQn={x:0,y:0,zoom:1},iQn=["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"],u9e=[...iQn,"rfId"],oQn=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}),d9e={translateExtent:EM,nodeOrigin:PSt,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:"nopan",rfId:"1"};function lQn(e){const{setNodes:t,setEdges:n,setMinZoom:r,setMaxZoom:s,setTranslateExtent:a,setNodeExtent:i,reset:l,setDefaultNodesAndEdges:c}=Bs(oQn,io),u=jo();uge(()=>(c(e.defaultNodes,e.defaultEdges),()=>{d.current=d9e,l()}),[]);const d=v.useRef(d9e);return uge(()=>{for(const f of u9e){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:KZn(p)}):f==="fitView"?u.setState({fitViewQueued:p}):f==="fitViewOptions"?u.setState({fitViewOptions:p}):u.setState({[f]:p})))}d.current=e},u9e.map(f=>e[f])),null}function f9e(){return typeof window>"u"||!window.matchMedia?null:window.matchMedia("(prefers-color-scheme: dark)")}function cQn(e){const[t,n]=v.useState(e==="system"?null:e);return v.useEffect(()=>{if(e!=="system"){n(e);return}const r=f9e(),s=()=>n(r?.matches?"dark":"light");return s(),r?.addEventListener("change",s),()=>{r?.removeEventListener("change",s)}},[e]),t!==null?t:f9e()?.matches?"dark":"light"}const p9e=typeof document<"u"?document:null;function AM(e=null,t={target:p9e,actInsideInputWithModifier:!0}){const[n,r]=v.useState(!1),s=v.useRef(!1),a=v.useRef(new Set([])),[i,l]=v.useMemo(()=>{if(e!==null){const u=(Array.isArray(e)?e:[e]).filter(f=>typeof f=="string").map(f=>f.replace("+",`
|
|
337
|
+
`:r=="r"?"\r":r=="t"?" ":"\\")}eq(t){return this.search==t.search&&this.replace==t.replace&&this.caseSensitive==t.caseSensitive&&this.regexp==t.regexp&&this.wholeWord==t.wholeWord&&this.test==t.test}create(){return this.regexp?new cUn(this):new iUn(this)}getCursor(t,n=0,r){let s=t.doc?t:cs.create({doc:t});return r==null&&(r=s.doc.length),this.regexp?UE(this,s,n,r):BE(this,s,n,r)}}class c1t{constructor(t){this.spec=t}}function sUn(e,t,n){return(r,s,a,i)=>{if(n&&!n(r,s,a,i))return!1;let l=r>=i&&s<=i+a.length?a.slice(r-i,s-i):t.doc.sliceString(r,s);return e(l,t,r,s)}}function BE(e,t,n,r){let s;return e.wholeWord&&(s=aUn(t.doc,t.charCategorizer(t.selection.main.head))),e.test&&(s=sUn(e.test,t,s)),new Tx(t.doc,e.unquoted,n,r,e.caseSensitive?void 0:a=>a.toLowerCase(),s)}function aUn(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(mB(s,n-a))!=wo.Word||t(gB(s,n-a))!=wo.Word)&&(t(gB(s,r-a))!=wo.Word||t(mB(s,r-a))!=wo.Word))}class iUn extends c1t{constructor(t){super(t)}nextMatch(t,n,r){let s=BE(this.spec,t,r,t.doc.length).nextOverlapping();if(s.done){let a=Math.min(t.doc.length,n+this.spec.unquoted.length);s=BE(this.spec,t,0,a).nextOverlapping()}return s.done||s.value.from==n&&s.value.to==r?null:s.value}prevMatchInRange(t,n,r){for(let s=r;;){let a=Math.max(n,s-1e4-this.spec.unquoted.length),i=BE(this.spec,t,a,s),l=null;for(;!i.nextOverlapping().done;)l=i.value;if(l)return l;if(a==n)return null;s-=1e4}}prevMatch(t,n,r){let s=this.prevMatchInRange(t,0,n);return s||(s=this.prevMatchInRange(t,Math.max(0,r-this.spec.unquoted.length),t.doc.length)),s&&(s.from!=n||s.to!=r)?s:null}getReplacement(t){return this.spec.unquote(this.spec.replace)}matchAll(t,n){let r=BE(this.spec,t,0,t.doc.length),s=[];for(;!r.next().done;){if(s.length>=n)return null;s.push(r.value)}return s}highlight(t,n,r,s){let a=BE(this.spec,t,Math.max(0,n-this.spec.unquoted.length),Math.min(r+this.spec.unquoted.length,t.doc.length));for(;!a.next().done;)s(a.value.from,a.value.to)}}function oUn(e,t,n){return(r,s,a)=>(!n||n(r,s,a))&&e(a[0],t,r,s)}function UE(e,t,n,r){let s;return e.wholeWord&&(s=lUn(t.charCategorizer(t.selection.main.head))),e.test&&(s=oUn(e.test,t,s)),new i1t(t.doc,e.search,{ignoreCase:!e.caseSensitive,test:s},n,r)}function mB(e,t){return e.slice(kc(e,t,!1),t)}function gB(e,t){return e.slice(t,kc(e,t))}function lUn(e){return(t,n,r)=>!r[0].length||(e(mB(r.input,r.index))!=wo.Word||e(gB(r.input,r.index))!=wo.Word)&&(e(gB(r.input,r.index+r[0].length))!=wo.Word||e(mB(r.input,r.index+r[0].length))!=wo.Word)}class cUn extends c1t{nextMatch(t,n,r){let s=UE(this.spec,t,r,t.doc.length).next();return s.done&&(s=UE(this.spec,t,0,n).next()),s.done?null:s.value}prevMatchInRange(t,n,r){for(let s=1;;s++){let a=Math.max(n,r-s*1e4),i=UE(this.spec,t,a,r),l=null;for(;!i.next().done;)l=i.value;if(l&&(a==n||l.from>a+10))return l;if(a==n)return null}}prevMatch(t,n,r){return this.prevMatchInRange(t,0,n)||this.prevMatchInRange(t,r,t.doc.length)}getReplacement(t){return this.spec.unquote(this.spec.replace).replace(/\$([$&]|\d+)/g,(n,r)=>{if(r=="&")return t.match[0];if(r=="$")return"$";for(let s=r.length;s>0;s--){let a=+r.slice(0,s);if(a>0&&a<t.match.length)return t.match[a]+r.slice(s)}return n})}matchAll(t,n){let r=UE(this.spec,t,0,t.doc.length),s=[];for(;!r.next().done;){if(s.length>=n)return null;s.push(r.value)}return s}highlight(t,n,r,s){let a=UE(this.spec,t,Math.max(0,n-250),Math.min(r+250,t.doc.length));for(;!a.next().done;)s(a.value.from,a.value.to)}}const xM=vr.define(),zSe=vr.define(),Fw=wl.define({create(e){return new eee(Qme(e).create(),null)},update(e,t){for(let n of t.effects)n.is(xM)?e=new eee(n.value.create(),e.panel):n.is(zSe)&&(e=new eee(e.query,n.value?BSe:null));return e},provide:e=>uM.from(e,t=>t.panel)});class eee{constructor(t,n){this.query=t,this.panel=n}}const uUn=jn.mark({class:"cm-searchMatch"}),dUn=jn.mark({class:"cm-searchMatch cm-searchMatch-selected"}),fUn=Co.fromClass(class{constructor(e){this.view=e,this.decorations=this.highlight(e.state.field(Fw))}update(e){let t=e.state.field(Fw);(t!=e.startState.field(Fw)||e.docChanged||e.selectionSet||e.viewportChanged)&&(this.decorations=this.highlight(t))}highlight({query:e,panel:t}){if(!t||!e.spec.valid)return jn.none;let{view:n}=this,r=new Rd;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?dUn:uUn)})}return r.finish()}},{decorations:e=>e.decorations});function $3(e){return t=>{let n=t.state.field(Fw,!1);return n&&n.query.spec.valid?e(t,n):f1t(t)}}const vB=$3((e,{query:t})=>{let{to:n}=e.state.selection.main,r=t.nextMatch(e.state,n,n);if(!r)return!1;let s=vt.single(r.from,r.to),a=e.state.facet(dI);return e.dispatch({selection:s,effects:[USe(e,r),a.scrollToMatch(s.main,e)],userEvent:"select.search"}),d1t(e),!0}),yB=$3((e,{query:t})=>{let{state:n}=e,{from:r}=n.selection.main,s=t.prevMatch(n,r,r);if(!s)return!1;let a=vt.single(s.from,s.to),i=e.state.facet(dI);return e.dispatch({selection:a,effects:[USe(e,s),i.scrollToMatch(a.main,e)],userEvent:"select.search"}),d1t(e),!0}),pUn=$3((e,{query:t})=>{let n=t.matchAll(e.state,1e3);return!n||!n.length?!1:(e.dispatch({selection:vt.create(n.map(r=>vt.range(r.from,r.to))),userEvent:"select.search.matches"}),!0)}),hUn=({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 Tx(e.doc,e.sliceDoc(r,s));!l.next().done;){if(a.length>1e3)return!1;l.value.from==r&&(i=a.length),a.push(vt.range(l.value.from,l.value.to))}return t(e.update({selection:vt.create(a,i),userEvent:"select.search.matches"})),!0},xze=$3((e,{query:t})=>{let{state:n}=e,{from:r,to:s}=n.selection.main;if(n.readOnly)return!1;let a=t.nextMatch(n,r,r);if(!a)return!1;let i=a,l=[],c,u,d=[];i.precise?i.from==r&&i.to==s&&(u=n.toText(t.getReplacement(i)),l.push({from:i.from,to:i.to,insert:u}),i=t.nextMatch(n,i.from,i.to),d.push(Nt.announce.of(n.phrase("replaced match on line $",n.doc.lineAt(r).number)+"."))):i=t.nextMatch(n,i.from,i.to);let f=e.state.changes(l);return i&&(c=vt.single(i.from,i.to).map(f),d.push(USe(e,i)),d.push(n.facet(dI).scrollToMatch(c.main,e))),e.dispatch({changes:f,selection:c,effects:d,userEvent:"input.replace"}),!0}),mUn=$3((e,{query:t})=>{if(e.state.readOnly)return!1;let n=[];for(let s of t.matchAll(e.state,1e9)){let{from:a,to:i,precise:l}=s;l&&n.push({from:a,to:i,insert:t.getReplacement(s)})}if(!n.length)return!1;let r=e.state.phrase("replaced $ matches",n.length)+".";return e.dispatch({changes:n,effects:Nt.announce.of(r),userEvent:"input.replace.all"}),!0});function BSe(e){return e.state.facet(dI).createPanel(e)}function Qme(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(dI);return new l1t({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 u1t(e){let t=rSe(e,BSe);return t&&t.dom.querySelector("[main-field]")}function d1t(e){let t=u1t(e);t&&t==e.root.activeElement&&t.select()}const f1t=e=>{let t=e.state.field(Fw,!1);if(t&&t.panel){let n=u1t(e);if(n&&n!=e.root.activeElement){let r=Qme(e.state,t.query.spec);r.valid&&e.dispatch({effects:xM.of(r)}),n.focus(),n.select()}}else e.dispatch({effects:[zSe.of(!0),t?xM.of(Qme(e.state,t.query.spec)):vr.appendConfig.of(bUn)]});return!0},p1t=e=>{let t=e.state.field(Fw,!1);if(!t||!t.panel)return!1;let n=rSe(e,BSe);return n&&n.dom.contains(e.root.activeElement)&&e.focus(),e.dispatch({effects:zSe.of(!1)}),!0},gUn=[{key:"Mod-f",run:f1t,scope:"editor search-panel"},{key:"F3",run:vB,shift:yB,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:vB,shift:yB,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:p1t,scope:"editor search-panel"},{key:"Mod-Shift-l",run:hUn},{key:"Mod-Alt-g",run:WBn},{key:"Mod-d",run:rUn,preventDefault:!0}];class vUn{constructor(t){this.view=t;let n=this.query=t.state.field(Fw).query.spec;this.commit=this.commit.bind(this),this.searchField=ci("input",{value:n.search,placeholder:np(t,"Find"),"aria-label":np(t,"Find"),class:"cm-textfield",name:"search",form:"","main-field":"true",onchange:this.commit,onkeyup:this.commit}),this.replaceField=ci("input",{value:n.replace,placeholder:np(t,"Replace"),"aria-label":np(t,"Replace"),class:"cm-textfield",name:"replace",form:"",onchange:this.commit,onkeyup:this.commit}),this.caseField=ci("input",{type:"checkbox",name:"case",form:"",checked:n.caseSensitive,onchange:this.commit}),this.reField=ci("input",{type:"checkbox",name:"re",form:"",checked:n.regexp,onchange:this.commit}),this.wordField=ci("input",{type:"checkbox",name:"word",form:"",checked:n.wholeWord,onchange:this.commit});function r(s,a,i){return ci("button",{class:"cm-button",name:s,onclick:a,type:"button"},i)}this.dom=ci("div",{onkeydown:s=>this.keydown(s),class:"cm-search"},[this.searchField,r("next",()=>vB(t),[np(t,"next")]),r("prev",()=>yB(t),[np(t,"previous")]),r("select",()=>pUn(t),[np(t,"all")]),ci("label",null,[this.caseField,np(t,"match case")]),ci("label",null,[this.reField,np(t,"regexp")]),ci("label",null,[this.wordField,np(t,"by word")]),...t.state.readOnly?[]:[ci("br"),this.replaceField,r("replace",()=>xze(t),[np(t,"replace")]),r("replaceAll",()=>mUn(t),[np(t,"replace all")])],ci("button",{name:"close",onclick:()=>p1t(t),"aria-label":np(t,"close"),type:"button"},["×"])])}commit(){let t=new l1t({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:xM.of(t)}))}keydown(t){D5n(this.view,t,"search-panel")?t.preventDefault():t.keyCode==13&&t.target==this.searchField?(t.preventDefault(),(t.shiftKey?yB:vB)(this.view)):t.keyCode==13&&t.target==this.replaceField&&(t.preventDefault(),xze(this.view))}update(t){for(let n of t.transactions)for(let r of n.effects)r.is(xM)&&!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(dI).top}}function np(e,t){return e.state.phrase(t)}const Y6=30,K6=/[\s\.,:;?!]/;function USe(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-Y6),i=Math.min(s,n+Y6),l=e.state.sliceDoc(a,i);if(a!=r.from){for(let c=0;c<Y6;c++)if(!K6.test(l[c+1])&&K6.test(l[c])){l=l.slice(c);break}}if(i!=s){for(let c=l.length-1;c>l.length-Y6;c--)if(!K6.test(l[c-1])&&K6.test(l[c])){l=l.slice(0,c);break}}return Nt.announce.of(`${e.state.phrase("current match")}. ${l} ${e.state.phrase("on line")} ${r.number}.`)}const yUn=Nt.baseTheme({".cm-panel.cm-search":{padding:"2px 6px 4px",position:"relative","& [name=close]":{position:"absolute",top:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:0,margin:0},"& input, & button, & label":{margin:".2em .6em .2em 0"},"& input[type=checkbox]":{marginRight:".2em"},"& label":{fontSize:"80%",whiteSpace:"pre"}},"&light .cm-searchMatch":{backgroundColor:"#ffff0054"},"&dark .cm-searchMatch":{backgroundColor:"#00ffff8a"},"&light .cm-searchMatch-selected":{backgroundColor:"#ff6a0054"},"&dark .cm-searchMatch-selected":{backgroundColor:"#ff00ff8a"}}),bUn=[Fw,Xp.low(fUn),yUn];class wze{constructor(t,n,r){this.from=t,this.to=n,this.diagnostic=r}}class bk{constructor(t,n,r){this.diagnostics=t,this.panel=n,this.selected=r}static init(t,n,r){let s=r.facet(wM).markerFilter;s&&(t=s(t,r));let a=t.slice().sort((d,f)=>d.from-f.from||d.to-f.to),i=new Rd,l=[],c=0;for(let d=0;;){let f=d==a.length?null:a[d];if(!f&&!l.length)break;let p,h;for(l.length?(p=c,h=l.reduce((g,y)=>Math.min(g,y.to),f&&f.from>p?f.from:1e8)):(p=f.from,h=f.to,l.push(f),d++);d<a.length;){let g=a[d];if(g.from==p&&(g.to>g.from||g.to==p))l.push(g),d++,h=Math.min(g.to,h);else{h=Math.min(g.from,h);break}}let m=AUn(l);if(l.some(g=>g.from==g.to||g.from==g.to-1&&r.doc.lineAt(g.from).to==g.from))i.add(p,p,jn.widget({widget:new jUn(m),diagnostics:l.slice()}));else{let g=l.reduce((y,b)=>b.markClass?y+" "+b.markClass:y,"");i.add(p,h,jn.mark({class:"cm-lintRange cm-lintRange-"+m+g,diagnostics:l.slice(),inclusiveEnd:l.some(y=>y.to>h)}))}c=h;for(let g=0;g<l.length;g++)l[g].to<=c&&l.splice(g--,1)}let u=i.finish();return new bk(u,n,UT(u))}}function UT(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 wze(s,a,t||i.diagnostics[0]);else{if(i.diagnostics.indexOf(r.diagnostic)<0)return!1;r=new wze(r.from,a,r.diagnostic)}}),r}function xUn(e,t){let n=t.pos,r=t.end||n,s=e.state.facet(wM).hideOn(e,n,r);if(s!=null)return s;let a=e.startState.doc.lineAt(t.pos);return!!(e.effects.some(i=>i.is(h1t))||e.changes.touchesRange(a.from,Math.max(a.to,r)))}function wUn(e,t){return e.field(Cp,!1)?t:t.concat(vr.appendConfig.of(RUn))}const h1t=vr.define(),VSe=vr.define(),m1t=vr.define(),Cp=wl.define({create(){return new bk(jn.none,null,null)},update(e,t){if(t.docChanged&&e.diagnostics.size){let n=e.diagnostics.map(t.changes),r=null,s=e.panel;if(e.selected){let a=t.changes.mapPos(e.selected.from,1);r=UT(n,e.selected.diagnostic,a)||UT(n,null,a)}!n.size&&s&&t.state.facet(wM).autoPanel&&(s=null),e=new bk(n,s,r)}for(let n of t.effects)if(n.is(h1t)){let r=t.state.facet(wM).autoPanel?n.value.length?SM.open:null:e.panel;e=bk.init(n.value,r,t.state)}else n.is(VSe)?e=new bk(e.diagnostics,n.value?SM.open:null,e.selected):n.is(m1t)&&(e=new bk(e.diagnostics,e.panel,n.value));return e},provide:e=>[uM.from(e,t=>t.panel),Nt.decorations.from(e,t=>t.diagnostics)]}),SUn=jn.mark({class:"cm-lintRange cm-lintRange-active"});function kUn(e,t,n){let{diagnostics:r}=e.state.field(Cp),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(wM).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:OUn(e,s)}}}:null}function OUn(e,t){return ci("ul",{class:"cm-tooltip-lint"},t.map(n=>v1t(e,n,!1)))}const _Un=e=>{let t=e.state.field(Cp,!1);(!t||!t.panel)&&e.dispatch({effects:wUn(e.state,[VSe.of(!0)])});let n=rSe(e,SM.open);return n&&n.dom.querySelector(".cm-panel-lint ul").focus(),!0},Sze=e=>{let t=e.state.field(Cp,!1);return!t||!t.panel?!1:(e.dispatch({effects:VSe.of(!1)}),!0)},CUn=e=>{let t=e.state.field(Cp,!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)},EUn=[{key:"Mod-Shift-m",run:_Un,preventDefault:!0},{key:"F8",run:CUn}],wM=On.define({combine(e){return{sources:e.map(t=>t.source).filter(t=>t!=null),...zy(e.map(t=>t.config),{delay:750,markerFilter:null,tooltipFilter:null,needsRefresh:null,hideOn:()=>null},{delay:Math.max,markerFilter:kze,tooltipFilter:kze,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 kze(e,t){return e?t?(n,r)=>t(e(n,r),r):e:t}function g1t(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 v1t(e,t,n){var r;let s=n?g1t(t.actions):[];return ci("li",{class:"cm-diagnostic cm-diagnostic-"+t.severity},ci("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=UT(e.state.field(Cp).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),ci("u",u.slice(d,d+1)),u.slice(d+1)],p=a.markClass?" "+a.markClass:"";return ci("button",{type:"button",class:"cm-diagnosticAction"+p,onclick:c,onmousedown:c,"aria-label":` Action: ${u}${d<0?"":` (access key "${s[i]})"`}.`},f)}),t.source&&ci("div",{class:"cm-diagnosticSource"},t.source))}class jUn extends Jp{constructor(t){super(),this.sev=t}eq(t){return t.sev==this.sev}toDOM(){return ci("span",{class:"cm-lintPoint cm-lintPoint-"+this.sev})}}class Oze{constructor(t,n){this.diagnostic=n,this.id="item_"+Math.floor(Math.random()*4294967295).toString(16),this.dom=v1t(t,n,!0),this.dom.id=this.id,this.dom.setAttribute("role","option")}}class SM{constructor(t){this.view=t,this.items=[];let n=s=>{if(s.keyCode==27)Sze(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=g1t(a.actions);for(let l=0;l<i.length;l++)if(i[l].toUpperCase().charCodeAt(0)==s.keyCode){let c=UT(this.view.state.field(Cp).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=ci("ul",{tabIndex:0,role:"listbox","aria-label":this.view.state.phrase("Diagnostics"),onkeydown:n,onclick:r}),this.dom=ci("div",{class:"cm-panel-lint"},this.list,ci("button",{type:"button",name:"close","aria-label":this.view.state.phrase("close"),onclick:()=>Sze(this.view)},"×")),this.update()}get selectedIndex(){let t=this.view.state.field(Cp).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(Cp),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 Oze(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 Oze(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(Cp),r=UT(n.diagnostics,this.items[t].diagnostic);r&&this.view.dispatch({selection:{anchor:r.from,head:r.to},scrollIntoView:!0,effects:m1t.of(r)})}static open(t){return new SM(t)}}function TUn(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 X6(e){return TUn(`<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 NUn=Nt.baseTheme({".cm-diagnostic":{padding:"3px 6px 3px 8px",marginLeft:"-1px",display:"block",whiteSpace:"pre-wrap"},".cm-diagnostic-error":{borderLeft:"5px solid #d11"},".cm-diagnostic-warning":{borderLeft:"5px solid orange"},".cm-diagnostic-info":{borderLeft:"5px solid #999"},".cm-diagnostic-hint":{borderLeft:"5px solid #66d"},".cm-diagnosticAction":{font:"inherit",border:"none",padding:"2px 4px",backgroundColor:"#444",color:"white",borderRadius:"3px",marginLeft:"8px",cursor:"pointer"},".cm-diagnosticSource":{fontSize:"70%",opacity:.7},".cm-lintRange":{backgroundPosition:"left bottom",backgroundRepeat:"repeat-x",paddingBottom:"0.7px"},".cm-lintRange-error":{backgroundImage:X6("#d11")},".cm-lintRange-warning":{backgroundImage:X6("orange")},".cm-lintRange-info":{backgroundImage:X6("#999")},".cm-lintRange-hint":{backgroundImage:X6("#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 IUn(e){return e=="error"?4:e=="warning"?3:e=="info"?2:1}function AUn(e){let t="hint",n=1;for(let r of e){let s=IUn(r.severity);s>n&&(n=s,t=r.severity)}return t}const RUn=[Cp,Nt.decorations.compute([Cp],e=>{let{selected:t,panel:n}=e.field(Cp);return!t||!n||t.from==t.to?jn.none:jn.set([SUn.range(t.from,t.to)])}),_6n(kUn,{hideOn:xUn}),NUn];var _ze=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(Szn)),t.defaultKeymap!==!1&&(a=a.concat(VBn)),t.searchKeymap!==!1&&(a=a.concat(gUn)),t.historyKeymap!==!1&&(a=a.concat(Y7n)),t.foldKeymap!==!1&&(a=a.concat(oFn)),t.completionKeymap!==!1&&(a=a.concat(d0t)),t.lintKeymap!==!1&&(a=a.concat(EUn));var i=[];return t.lineNumbers!==!1&&i.push(D6n()),t.highlightActiveLineGutter!==!1&&i.push(z6n()),t.highlightSpecialChars!==!1&&i.push(J5n()),t.history!==!1&&i.push(B7n()),t.foldGutter!==!1&&i.push(dFn()),t.drawSelection!==!1&&i.push(V5n()),t.dropCursor!==!1&&i.push(G5n()),t.allowMultipleSelections!==!1&&i.push(cs.allowMultipleSelections.of(!0)),t.indentOnInput!==!1&&i.push(J6n()),t.syntaxHighlighting!==!1&&i.push(U1(mFn,{fallback:!0})),t.bracketMatching!==!1&&i.push(SFn()),t.closeBrackets!==!1&&i.push(yzn()),t.autocompletion!==!1&&i.push(u0t()),t.rectangularSelection!==!1&&i.push(p6n()),s!==!1&&i.push(g6n()),t.highlightActiveLine!==!1&&i.push(a6n()),t.highlightSelectionMatches!==!1&&i.push(QBn()),t.tabSize&&typeof t.tabSize=="number"&&i.push(oI.of(" ".repeat(t.tabSize))),i.concat([iI.of(a.flat())]).filter(Boolean)};const PUn="#e5c07b",Cze="#e06c75",$Un="#56b6c2",MUn="#ffffff",T8="#abb2bf",Yme="#7d8799",DUn="#61afef",LUn="#98c379",Eze="#d19a66",FUn="#c678dd",zUn="#21252b",jze="#2c313a",Tze="#282c34",tee="#353a42",BUn="#3E4451",Nze="#528bff",UUn=Nt.theme({"&":{color:T8,backgroundColor:Tze},".cm-content":{caretColor:Nze},".cm-cursor, .cm-dropCursor":{borderLeftColor:Nze},"&.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection":{backgroundColor:BUn},".cm-panels":{backgroundColor:zUn,color:T8},".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:Tze,color:Yme,border:"none"},".cm-activeLineGutter":{backgroundColor:jze},".cm-foldPlaceholder":{backgroundColor:"transparent",border:"none",color:"#ddd"},".cm-tooltip":{border:"none",backgroundColor:tee},".cm-tooltip .cm-tooltip-arrow:before":{borderTopColor:"transparent",borderBottomColor:"transparent"},".cm-tooltip .cm-tooltip-arrow:after":{borderTopColor:tee,borderBottomColor:tee},".cm-tooltip-autocomplete":{"& > ul > li[aria-selected]":{backgroundColor:jze,color:T8}}},{dark:!0}),VUn=Ug.define([{tag:pe.keyword,color:FUn},{tag:[pe.name,pe.deleted,pe.character,pe.propertyName,pe.macroName],color:Cze},{tag:[pe.function(pe.variableName),pe.labelName],color:DUn},{tag:[pe.color,pe.constant(pe.name),pe.standard(pe.name)],color:Eze},{tag:[pe.definition(pe.name),pe.separator],color:T8},{tag:[pe.typeName,pe.className,pe.number,pe.changed,pe.annotation,pe.modifier,pe.self,pe.namespace],color:PUn},{tag:[pe.operator,pe.operatorKeyword,pe.url,pe.escape,pe.regexp,pe.link,pe.special(pe.string)],color:$Un},{tag:[pe.meta,pe.comment],color:Yme},{tag:pe.strong,fontWeight:"bold"},{tag:pe.emphasis,fontStyle:"italic"},{tag:pe.strikethrough,textDecoration:"line-through"},{tag:pe.link,color:Yme,textDecoration:"underline"},{tag:pe.heading,fontWeight:"bold",color:Cze},{tag:[pe.atom,pe.bool,pe.special(pe.variableName)],color:Eze},{tag:[pe.processingInstruction,pe.string,pe.inserted],color:LUn},{tag:pe.invalid,color:MUn}]),qUn=[UUn,U1(VUn)];var HUn=Nt.theme({"&":{backgroundColor:"#fff"}},{dark:!1}),WUn=function(t){t===void 0&&(t={});var n=t,r=n.indentWithTab,s=r===void 0?!0:r,a=n.editable,i=a===void 0?!0:a,l=n.readOnly,c=l===void 0?!1:l,u=n.theme,d=u===void 0?"light":u,f=n.placeholder,p=f===void 0?"":f,h=n.basicSetup,m=h===void 0?!0:h,g=[];switch(s&&g.unshift(iI.of([qBn])),m&&(typeof m=="boolean"?g.unshift(_ze()):g.unshift(_ze(m))),p&&g.unshift(c6n(p)),d){case"light":g.push(HUn);break;case"dark":g.push(qUn);break;case"none":break;default:g.push(d);break}return i===!1&&g.push(Nt.editable.of(!1)),c&&g.push(cs.readOnly.of(!0)),[...g]},ZUn=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 GUn{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 Ize{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 nee=null,QUn=()=>typeof window>"u"?new Ize:(nee||(nee=new Ize),nee),YUn=Nt.theme({"& .cm-scroller":{height:"100% !important"}}),Aze=null,ree=null;function KUn(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===Aze||(Aze=i,ree=Nt.theme({"&":{height:e,minHeight:t,maxHeight:n,width:r,minWidth:s,maxWidth:a}})),ree}var Rze=Fy.define(),XUn=200,JUn=[];function eVn(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?JUn:l,u=e.autoFocus,d=e.theme,f=d===void 0?"light":d,p=e.height,h=p===void 0?null:p,m=e.minHeight,g=m===void 0?null:m,y=e.maxHeight,b=y===void 0?null:y,x=e.width,S=x===void 0?null:x,k=e.minWidth,_=k===void 0?null:k,C=e.maxWidth,E=C===void 0?null:C,j=e.placeholder,N=j===void 0?"":j,I=e.editable,A=I===void 0?!0:I,R=e.readOnly,L=R===void 0?!1:R,D=e.indentWithTab,B=D===void 0?!0:D,H=e.basicSetup,F=H===void 0?!0:H,z=e.root,q=e.initialState,M=v.useState(),G=M[0],V=M[1],$=v.useState(),U=$[0],Z=$[1],K=v.useState(),ee=K[0],te=K[1],J=v.useState(()=>({current:null}))[0],ae=v.useState(()=>({current:null}))[0],de=KUn(h,g,b,S,_,E),Y=Nt.updateListener.of(he=>{if(he.docChanged&&typeof r=="function"&&!he.transactions.some(be=>be.annotation(Rze))){J.current?J.current.reset():(J.current=new GUn(()=>{if(ae.current){var be=ae.current;ae.current=null,be()}J.current=null},XUn),QUn().add(J.current));var le=he.state.doc,ue=le.toString();r(ue,he)}s&&s(ZUn(he))}),ne=WUn({theme:f,editable:A,readOnly:L,placeholder:N,indentWithTab:B,basicSetup:F}),fe=[Y,...de?[de]:[],YUn,...ne];return i&&typeof i=="function"&&fe.push(Nt.updateListener.of(i)),fe=fe.concat(c),v.useLayoutEffect(()=>{if(G&&!ee){var he={doc:t,selection:n,extensions:fe},le=q?cs.fromJSON(q.json,he,q.fields):cs.create(he);if(te(le),!U){var ue=new Nt({state:le,parent:G,root:z});Z(ue),a&&a(ue,le)}}return()=>{U&&(te(void 0),Z(void 0))}},[G,ee]),v.useEffect(()=>{e.container&&V(e.container)},[e.container]),v.useEffect(()=>()=>{U&&(U.destroy(),Z(void 0)),J.current&&(J.current.cancel(),J.current=null)},[U]),v.useEffect(()=>{u&&U&&U.focus()},[u,U]),v.useEffect(()=>{U&&U.dispatch({effects:vr.reconfigure.of(fe)})},[f,c,h,g,b,S,_,E,N,A,L,B,F,r,i]),v.useEffect(()=>{if(t!==void 0){var he=U?U.state.doc.toString():"";if(U&&t!==he){var le=J.current&&!J.current.isDone,ue=()=>{U&&t!==U.state.doc.toString()&&U.dispatch({changes:{from:0,to:U.state.doc.toString().length,insert:t||""},annotations:[Rze.of(!0)]})};le?ae.current=ue:ue()}}},[t,U]),{state:ee,setState:te,view:U,setView:Z,container:G,setContainer:V}}var tVn=["className","value","selection","extensions","onChange","onStatistics","onCreateEditor","onUpdate","autoFocus","theme","height","minHeight","maxHeight","width","minWidth","maxWidth","basicSetup","placeholder","indentWithTab","editable","readOnly","root","initialState"],Qu=v.forwardRef((e,t)=>{var n=e.className,r=e.value,s=r===void 0?"":r,a=e.selection,i=e.extensions,l=i===void 0?[]:i,c=e.onChange,u=e.onStatistics,d=e.onCreateEditor,f=e.onUpdate,p=e.autoFocus,h=e.theme,m=h===void 0?"light":h,g=e.height,y=e.minHeight,b=e.maxHeight,x=e.width,S=e.minWidth,k=e.maxWidth,_=e.basicSetup,C=e.placeholder,E=e.indentWithTab,j=e.editable,N=e.readOnly,I=e.root,A=e.initialState,R=_wt(e,tVn),L=v.useRef(null),D=eVn({root:I,value:s,autoFocus:p,theme:m,height:g,minHeight:y,maxHeight:b,width:x,minWidth:S,maxWidth:k,basicSetup:_,placeholder:C,indentWithTab:E,editable:j,readOnly:N,selection:a,onChange:c,onStatistics:u,onCreateEditor:d,onUpdate:f,extensions:l,initialState:A}),B=D.state,H=D.view,F=D.container,z=D.setContainer;v.useImperativeHandle(t,()=>({editor:L.current,state:B,view:H}),[L,F,B,H]);var q=v.useCallback(G=>{L.current=G,z(G)},[z]);if(typeof s!="string")throw new Error("value must be typeof string but got "+typeof s);var M=typeof m=="string"?"cm-theme-"+m:"cm-theme";return o.jsx("div",UO({ref:q,className:""+M+(n?" "+n:"")},R))});Qu.displayName="CodeMirror";const nVn={js:"javascript",javascript:"javascript",mjs:"javascript",cjs:"javascript",node:"javascript",ts:"typescript",typescript:"typescript",mts:"typescript",cts:"typescript",tsx:"tsx",jsx:"jsx",json:"json",json5:"json",md:"markdown",markdown:"markdown",py:"python",python:"python",sh:"bash",bash:"bash",shell:"bash",zsh:"bash"};let see=null;function rVn(){return see||(see=(async()=>{const[{createHighlighterCore:e},{createJavaScriptRegexEngine:t}]=await Promise.all([mo(()=>import("./core-CvByqZyL.js"),__vite__mapDeps([0,1,2]),import.meta.url),mo(()=>import("./engine-javascript-CSIo_1eZ.js"),__vite__mapDeps([3,1]),import.meta.url)]);return e({themes:[mo(()=>import("./github-light-DAi9KRSo.js"),[],import.meta.url),mo(()=>import("./github-dark-DHJKELXO.js"),[],import.meta.url)],langs:[mo(()=>import("./javascript-ySlJ1b_l.js"),[],import.meta.url),mo(()=>import("./typescript-Dj6nwHGl.js"),[],import.meta.url),mo(()=>import("./tsx-B6W0miNI.js"),[],import.meta.url),mo(()=>import("./jsx-BAng5TT0.js"),[],import.meta.url),mo(()=>import("./json-BQoSv7ci.js"),[],import.meta.url),mo(()=>import("./bash-atvbtKCR.js"),[],import.meta.url),mo(()=>import("./markdown-UIAJJxZW.js"),[],import.meta.url),mo(()=>import("./python-DhUJRlN_.js"),[],import.meta.url)],engine:t()})})()),see}async function sVn(e,t){const n=nVn[t?.toLowerCase()];if(!n)return null;const r=await rVn(),{tokens:s}=r.codeToTokens(e,{lang:n,defaultColor:!1,themes:{light:"github-light",dark:"github-dark"}});return s}function aVn(e){return new LO(lSe.define(e))}const y1t=[ng.of({name:"JavaScript",alias:["ecmascript","js","node"],extensions:["js","mjs","cjs"],load(){return mo(()=>Promise.resolve().then(()=>G6),void 0,import.meta.url).then(e=>e.javascript())}}),ng.of({name:"JSON",alias:["json5"],extensions:["json","map"],load(){return mo(()=>Promise.resolve().then(()=>PFn),void 0,import.meta.url).then(e=>e.json())}}),ng.of({name:"JSX",extensions:["jsx"],load(){return mo(()=>Promise.resolve().then(()=>G6),void 0,import.meta.url).then(e=>e.javascript({jsx:!0}))}}),ng.of({name:"Markdown",extensions:["md","markdown","mkd"],load(){return mo(()=>Promise.resolve().then(()=>j7n),void 0,import.meta.url).then(e=>e.markdown())}}),ng.of({name:"TSX",extensions:["tsx"],load(){return mo(()=>Promise.resolve().then(()=>G6),void 0,import.meta.url).then(e=>e.javascript({jsx:!0,typescript:!0}))}}),ng.of({name:"TypeScript",alias:["ts"],extensions:["ts","mts","cts"],load(){return mo(()=>Promise.resolve().then(()=>G6),void 0,import.meta.url).then(e=>e.javascript({typescript:!0}))}}),ng.of({name:"Shell",alias:["bash","sh","zsh"],extensions:["sh","ksh","bash"],filename:/^PKGBUILD$/,load(){return mo(()=>import("./shell-CjFT_Tl9.js"),[],import.meta.url).then(e=>aVn(e.shell))}})];function iVn(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 oVn(e){const t=iVn(e);return u0t({override:[lVn(t)],defaultKeymap:!0,closeOnBlur:!0,icons:!1})}function lVn(e){return t=>{const r=t.state.sliceDoc(Math.max(0,t.pos-50),t.pos).match(/\{\{([a-zA-Z0-9_.\[\]]*)?$/);if(!r)return null;const s=r[1]??"",a=t.pos-s.length,i=s?e.filter(c=>c.path.toLowerCase().startsWith(s.toLowerCase())):e;if(i.length===0)return null;const l=i.map(c=>({label:c.path,displayLabel:c.path,detail:c.type,info:c.description,apply:(u,d,f,p)=>{const g=u.state.sliceDoc(p,p+2)==="}}"?d.label:`${d.label}}}`;u.dispatch({changes:{from:f,to:p,insert:g},selection:{anchor:f+g.length}})}}));return{from:a,options:l,validFor:/^[a-zA-Z0-9_.\[\]]*$/}}}const cVn=/\{\{([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)*)\}\}/g,uVn=jn.mark({class:"cm-variable-highlight"}),Pze=new Oxt({regexp:cVn,decoration:()=>uVn}),dVn=Co.fromClass(class{decorations;constructor(e){this.decorations=Pze.createDeco(e)}update(e){this.decorations=Pze.updateDeco(e,this.decorations)}},{decorations:e=>e.decorations}),fVn=dVn;function pVn(){const e=cI({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:[pe.className,pe.propertyName],color:"var(--neutral6)"},{tag:pe.heading,color:"var(--accent3)",fontWeight:"bold"},{tag:[pe.heading1,pe.heading2,pe.heading3,pe.heading4,pe.heading5,pe.heading6],color:"var(--accent3)",fontWeight:"bold"},{tag:pe.emphasis,fontStyle:"italic",color:"var(--neutral6)"},{tag:pe.strong,fontWeight:"bold",color:"var(--neutral6)"},{tag:pe.link,color:"var(--accent3)",textDecoration:"underline"},{tag:pe.url,color:"var(--accent3)"},{tag:pe.monospace,color:"var(--neutral6)"},{tag:pe.strikethrough,textDecoration:"line-through"},{tag:pe.quote,fontStyle:"italic",color:"var(--neutral2)"}]}),t=Nt.theme({".cm-editor":{backgroundColor:"transparent"},".cm-content":{color:"var(--neutral6)",caretColor:"var(--neutral6)"},".cm-lineNumbers .cm-gutterElement":{color:"var(--neutral2)"},".cm-activeLineGutter":{color:"var(--neutral3)"},".cm-cursor":{borderLeftColor:"var(--neutral6)"},".cm-selectionBackground, .cm-content ::selection":{backgroundColor:"color-mix(in srgb, var(--accent3) 22%, transparent)"},".cm-tooltip-autocomplete":{backgroundColor:"var(--surface2)",border:"1px solid var(--border1)",borderRadius:"6px",boxShadow:"0 8px 16px rgba(0, 0, 0, 0.2)"},".cm-tooltip-autocomplete > ul":{fontFamily:"var(--font-mono)"},".cm-completionLabel":{color:"var(--neutral6)"},".cm-completionDetail":{color:"var(--neutral3)",fontSize:"0.7rem",marginLeft:"auto",paddingLeft:"12px"},".cm-completionInfo":{backgroundColor:"var(--surface2)",border:"1px solid var(--border1)",color:"var(--neutral3)",padding:"8px 12px"},".cm-completionIcon":{display:"none"},"ul.cm-completionList li[aria-selected]":{backgroundColor:"var(--surface4)",color:"var(--neutral6)"},".cm-line .cm-variable-highlight":{color:"var(--accent6) !important",fontWeight:"500"}});return[e,t]}function hVn(){const e=Nt.theme({"&":{backgroundColor:"transparent",color:"var(--neutral6)",fontSize:"0.8rem"},"&.cm-editor .cm-scroller":{fontFamily:"var(--font-mono)"},".cm-gutters":{backgroundColor:"transparent",color:"var(--neutral2)",borderRight:"none"},".cm-content":{color:"var(--neutral6)",caretColor:"var(--neutral6)"},".cm-activeLine":{backgroundColor:"transparent"},".cm-lineNumbers .cm-gutterElement":{color:"var(--neutral2)"},".cm-activeLineGutter":{backgroundColor:"transparent",color:"var(--neutral3)"},".cm-cursor, .cm-dropCursor":{borderLeftColor:"var(--neutral6)"},"&.cm-focused .cm-selectionBackground, & .cm-line::selection, & .cm-selectionLayer .cm-selectionBackground, .cm-content ::selection":{background:"color-mix(in srgb, var(--accent3) 22%, transparent) !important"},".cm-tooltip-autocomplete":{backgroundColor:"var(--surface2)",border:"1px solid var(--border1)",borderRadius:"6px",boxShadow:"0 8px 16px rgba(0, 0, 0, 0.2)"},".cm-tooltip-autocomplete > ul":{fontFamily:"var(--font-mono)"},".cm-completionLabel":{color:"var(--neutral6)"},".cm-completionDetail":{color:"var(--neutral3)",fontSize:"0.7rem",marginLeft:"auto",paddingLeft:"12px"},".cm-completionInfo":{backgroundColor:"var(--surface2)",border:"1px solid var(--border1)",color:"var(--neutral3)",padding:"8px 12px"},".cm-completionIcon":{display:"none"},"ul.cm-completionList li[aria-selected]":{backgroundColor:"var(--surface4)",color:"var(--neutral6)"},".cm-line .cm-variable-highlight":{color:"var(--accent6) !important",fontWeight:"500"}}),t=Ug.define([{tag:[pe.comment,pe.bracket],color:"var(--neutral2)"},{tag:[pe.string,pe.meta,pe.regexp],color:"var(--accent1)"},{tag:[pe.atom,pe.bool,pe.special(pe.variableName)],color:"var(--accent6)"},{tag:[pe.keyword,pe.operator,pe.tagName],color:"var(--accent2)"},{tag:[pe.function(pe.propertyName),pe.propertyName],color:"var(--accent5)"},{tag:[pe.definition(pe.variableName),pe.function(pe.variableName),pe.className,pe.attributeName],color:"var(--accent3)"},{tag:[pe.variableName,pe.number],color:"var(--accent5)"},{tag:[pe.name,pe.quote],color:"var(--accent1)"},{tag:pe.heading,color:"var(--accent3)",fontWeight:"bold"},{tag:[pe.heading1,pe.heading2,pe.heading3,pe.heading4,pe.heading5,pe.heading6],color:"var(--accent3)",fontWeight:"bold"},{tag:[pe.emphasis],fontStyle:"italic",color:"var(--neutral6)"},{tag:[pe.strong],fontWeight:"bold",color:"var(--neutral6)"},{tag:pe.link,color:"var(--accent3)",textDecoration:"underline"},{tag:pe.url,color:"var(--accent3)"},{tag:pe.monospace,color:"var(--neutral6)"},{tag:pe.strikethrough,textDecoration:"line-through"},{tag:[pe.deleted],color:"var(--accent2)"},{tag:pe.invalid,color:"var(--error)"},{tag:[pe.standard(pe.tagName)],color:"var(--accent1)"}]);return[e,U1(t)]}const Xx=()=>{const e=U_().resolvedTheme==="dark";return v.useMemo(()=>e?pVn():hVn(),[e])},mVn=co(X("relative overflow-hidden font-mono outline-hidden focus-within:outline-hidden focus:outline-hidden","duration-normal transition-colors ease-out-custom"),{variants:{variant:{default:"rounded-md border border-border1 bg-surface3 p-1 focus-within:border-neutral6/20",embedded:"rounded-none border-none bg-transparent p-0"}},defaultVariants:{variant:"default"}}),gVn=Xp.highest(Nt.editorAttributes.of({style:"outline: none"})),vVn=Xp.highest(Nt.theme({"&":{outline:"none"},"&.cm-focused":{outline:"none"},".cm-scroller":{outline:"none"},".cm-content":{outline:"none"},".cm-content:focus":{outline:"none"}})),yVn=[gVn,vVn],Wr=v.forwardRef(({data:e,value:t,onChange:n,showCopyButton:r=!0,className:s,language:a="json",highlightVariables:i=!1,placeholder:l,schema:c,autoFocus:u,lineNumbers:d=!0,lineWrapping:f=!0,editable:p,variant:h,...m},g)=>{const y=Xx(),b=e?JSON.stringify(e,null,2):t??"",x=v.useMemo(()=>{const S=[...yVn];return f&&S.push(Nt.lineWrapping),a==="json"?S.push(Rp):a==="markdown"&&S.push($Se({base:BO,codeLanguages:y1t})),i&&a==="markdown"&&S.push(fVn),c&&a==="markdown"&&S.push(oVn(c)),p===!1&&S.push(cs.readOnly.of(!0)),S},[a,i,c,p,f]);return o.jsxs("div",{className:X(mVn({variant:h}),s),...m,children:[r&&o.jsx(Pa,{content:b,className:"absolute top-2 right-2 z-20"}),o.jsx(Qu,{ref:g,value:b,theme:y,extensions:x,onChange:n,editable:p,"aria-label":"Code editor",placeholder:l,height:"100%",style:{height:"100%"},autoFocus:u,basicSetup:{lineNumbers:d}})]})}),bVn=e=>{try{return JSON.stringify(e??{},null,2)}catch{return"{}"}},xVn=({editorClassName:e="h-[240px] max-h-[40vh]",onSaved:t})=>{const n=Xx(),{settings:r,setSettings:s}=nH(),a=r?.tracingOptions,i=v.useMemo(()=>bVn(a),[a]),[l,c]=v.useState(()=>i),u=v.useRef(!1);v.useEffect(()=>{u.current||c(i)},[i]);const d=p=>{u.current=!0,c(p)},f=()=>{if(!l){s({...r,tracingOptions:void 0}),t?.();return}try{const p=JSON.parse(l);typeof p=="object"&&p!==null&&s({...r,tracingOptions:p})}catch{return}t?.()};return o.jsxs("div",{className:"space-y-2 px-5 py-2",children:[o.jsx(ye,{as:"h3",variant:"ui-md",className:"text-neutral3",children:"Tracing Options"}),o.jsx(Qu,{value:l,onChange:d,theme:n,extensions:[Rp],className:X("overflow-y-scroll bg-surface3 rounded-lg overflow-hidden p-3",e)}),o.jsx("div",{className:"flex items-center justify-end",children:o.jsx(oe,{type:"button",onClick:f,children:"Save"})})]})},wVn=()=>{const[e,t]=v.useState(!1);return o.jsxs(o.Fragment,{children:[o.jsxs(Pn,{children:[o.jsx(An,{asChild:!0,children:o.jsx(oe,{type:"button",variant:"ghost",size:"icon-md","aria-label":"Run Options",onClick:()=>t(!0),children:o.jsx(qe,{children:o.jsx(ZV,{})})})}),o.jsx(Rn,{children:"Run Options"})]}),o.jsx(br,{open:e,onOpenChange:t,children:o.jsxs(xr,{children:[o.jsxs(wr,{children:[o.jsx(gr,{children:"Run Options"}),o.jsx(Ks,{children:"Configure tracing and debug options for this workflow run"})]}),o.jsx($r,{children:o.jsx(xVn,{onSaved:()=>t(!1)})})]})})]})};function SVn({status:e}){switch(e){case"running":return o.jsx(Xt,{});case"failed":return o.jsx(bs,{className:"text-accent2"});case"canceled":return o.jsx(Nf,{className:"text-neutral3"});case"pending":case"waiting":return o.jsx(dT,{className:"text-neutral3"});case"suspended":return o.jsx(UV,{className:"text-accent3"});case"success":return o.jsx(fa,{className:"text-accent1"});default:return o.jsx(dT,{className:"text-neutral3"})}}function b1t({status:e}){return o.jsxs(Pn,{children:[o.jsx(An,{asChild:!0,children:o.jsx(qe,{"aria-label":e,className:"shrink-0",children:o.jsx(SVn,{status:e})})}),o.jsx(Rn,{children:e})]})}var aee,$ze;function qSe(){if($ze)return aee;$ze=1;var e="\0",t="\0",n="";class r{_isDirected=!0;_isMultigraph=!1;_isCompound=!1;_label;_defaultNodeLabelFn=()=>{};_defaultEdgeLabelFn=()=>{};_nodes={};_in={};_preds={};_out={};_sucs={};_edgeObjs={};_edgeLabels={};_nodeCount=0;_edgeCount=0;_parent;_children;constructor(d){d&&(this._isDirected=Object.hasOwn(d,"directed")?d.directed:!0,this._isMultigraph=Object.hasOwn(d,"multigraph")?d.multigraph:!1,this._isCompound=Object.hasOwn(d,"compound")?d.compound:!1),this._isCompound&&(this._parent={},this._children={},this._children[t]={})}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(d){return this._label=d,this}graph(){return this._label}setDefaultNodeLabel(d){return this._defaultNodeLabelFn=d,typeof d!="function"&&(this._defaultNodeLabelFn=()=>d),this}nodeCount(){return this._nodeCount}nodes(){return Object.keys(this._nodes)}sources(){var d=this;return this.nodes().filter(f=>Object.keys(d._in[f]).length===0)}sinks(){var d=this;return this.nodes().filter(f=>Object.keys(d._out[f]).length===0)}setNodes(d,f){var p=arguments,h=this;return d.forEach(function(m){p.length>1?h.setNode(m,f):h.setNode(m)}),this}setNode(d,f){return Object.hasOwn(this._nodes,d)?(arguments.length>1&&(this._nodes[d]=f),this):(this._nodes[d]=arguments.length>1?f:this._defaultNodeLabelFn(d),this._isCompound&&(this._parent[d]=t,this._children[d]={},this._children[t][d]=!0),this._in[d]={},this._preds[d]={},this._out[d]={},this._sucs[d]={},++this._nodeCount,this)}node(d){return this._nodes[d]}hasNode(d){return Object.hasOwn(this._nodes,d)}removeNode(d){var f=this;if(Object.hasOwn(this._nodes,d)){var p=h=>f.removeEdge(f._edgeObjs[h]);delete this._nodes[d],this._isCompound&&(this._removeFromParentsChildList(d),delete this._parent[d],this.children(d).forEach(function(h){f.setParent(h)}),delete this._children[d]),Object.keys(this._in[d]).forEach(p),delete this._in[d],delete this._preds[d],Object.keys(this._out[d]).forEach(p),delete this._out[d],delete this._sucs[d],--this._nodeCount}return this}setParent(d,f){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(f===void 0)f=t;else{f+="";for(var p=f;p!==void 0;p=this.parent(p))if(p===d)throw new Error("Setting "+f+" as parent of "+d+" would create a cycle");this.setNode(f)}return this.setNode(d),this._removeFromParentsChildList(d),this._parent[d]=f,this._children[f][d]=!0,this}_removeFromParentsChildList(d){delete this._children[this._parent[d]][d]}parent(d){if(this._isCompound){var f=this._parent[d];if(f!==t)return f}}children(d=t){if(this._isCompound){var f=this._children[d];if(f)return Object.keys(f)}else{if(d===t)return this.nodes();if(this.hasNode(d))return[]}}predecessors(d){var f=this._preds[d];if(f)return Object.keys(f)}successors(d){var f=this._sucs[d];if(f)return Object.keys(f)}neighbors(d){var f=this.predecessors(d);if(f){const h=new Set(f);for(var p of this.successors(d))h.add(p);return Array.from(h.values())}}isLeaf(d){var f;return this.isDirected()?f=this.successors(d):f=this.neighbors(d),f.length===0}filterNodes(d){var f=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});f.setGraph(this.graph());var p=this;Object.entries(this._nodes).forEach(function([g,y]){d(g)&&f.setNode(g,y)}),Object.values(this._edgeObjs).forEach(function(g){f.hasNode(g.v)&&f.hasNode(g.w)&&f.setEdge(g,p.edge(g))});var h={};function m(g){var y=p.parent(g);return y===void 0||f.hasNode(y)?(h[g]=y,y):y in h?h[y]:m(y)}return this._isCompound&&f.nodes().forEach(g=>f.setParent(g,m(g))),f}setDefaultEdgeLabel(d){return this._defaultEdgeLabelFn=d,typeof d!="function"&&(this._defaultEdgeLabelFn=()=>d),this}edgeCount(){return this._edgeCount}edges(){return Object.values(this._edgeObjs)}setPath(d,f){var p=this,h=arguments;return d.reduce(function(m,g){return h.length>1?p.setEdge(m,g,f):p.setEdge(m,g),g}),this}setEdge(){var d,f,p,h,m=!1,g=arguments[0];typeof g=="object"&&g!==null&&"v"in g?(d=g.v,f=g.w,p=g.name,arguments.length===2&&(h=arguments[1],m=!0)):(d=g,f=arguments[1],p=arguments[3],arguments.length>2&&(h=arguments[2],m=!0)),d=""+d,f=""+f,p!==void 0&&(p=""+p);var y=i(this._isDirected,d,f,p);if(Object.hasOwn(this._edgeLabels,y))return m&&(this._edgeLabels[y]=h),this;if(p!==void 0&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(d),this.setNode(f),this._edgeLabels[y]=m?h:this._defaultEdgeLabelFn(d,f,p);var b=l(this._isDirected,d,f,p);return d=b.v,f=b.w,Object.freeze(b),this._edgeObjs[y]=b,s(this._preds[f],d),s(this._sucs[d],f),this._in[f][y]=b,this._out[d][y]=b,this._edgeCount++,this}edge(d,f,p){var h=arguments.length===1?c(this._isDirected,arguments[0]):i(this._isDirected,d,f,p);return this._edgeLabels[h]}edgeAsObj(){const d=this.edge(...arguments);return typeof d!="object"?{label:d}:d}hasEdge(d,f,p){var h=arguments.length===1?c(this._isDirected,arguments[0]):i(this._isDirected,d,f,p);return Object.hasOwn(this._edgeLabels,h)}removeEdge(d,f,p){var h=arguments.length===1?c(this._isDirected,arguments[0]):i(this._isDirected,d,f,p),m=this._edgeObjs[h];return m&&(d=m.v,f=m.w,delete this._edgeLabels[h],delete this._edgeObjs[h],a(this._preds[f],d),a(this._sucs[d],f),delete this._in[f][h],delete this._out[d][h],this._edgeCount--),this}inEdges(d,f){var p=this._in[d];if(p){var h=Object.values(p);return f?h.filter(m=>m.v===f):h}}outEdges(d,f){var p=this._out[d];if(p){var h=Object.values(p);return f?h.filter(m=>m.w===f):h}}nodeEdges(d,f){var p=this.inEdges(d,f);if(p)return p.concat(this.outEdges(d,f))}}function s(u,d){u[d]?u[d]++:u[d]=1}function a(u,d){--u[d]||delete u[d]}function i(u,d,f,p){var h=""+d,m=""+f;if(!u&&h>m){var g=h;h=m,m=g}return h+n+m+n+(p===void 0?e:p)}function l(u,d,f,p){var h=""+d,m=""+f;if(!u&&h>m){var g=h;h=m,m=g}var y={v:h,w:m};return p&&(y.name=p),y}function c(u,d){return i(u,d.v,d.w,d.name)}return aee=r,aee}var iee,Mze;function kVn(){return Mze||(Mze=1,iee="2.2.4"),iee}var oee,Dze;function OVn(){return Dze||(Dze=1,oee={Graph:qSe(),version:kVn()}),oee}var lee,Lze;function _Vn(){if(Lze)return lee;Lze=1;var e=qSe();lee={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 lee}var cee,Fze;function CVn(){if(Fze)return cee;Fze=1,cee=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 cee}var uee,zze;function x1t(){if(zze)return uee;zze=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 uee=e,uee}var dee,Bze;function w1t(){if(Bze)return dee;Bze=1;var e=x1t();dee=n;var t=()=>1;function n(s,a,i,l){return r(s,String(a),i||t,l||function(c){return s.outEdges(c)})}function r(s,a,i,l){var c={},u=new e,d,f,p=function(h){var m=h.v!==d?h.v:h.w,g=c[m],y=i(h),b=f.distance+y;if(y<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+h+" Weight: "+y);b<g.distance&&(g.distance=b,g.predecessor=d,u.decrease(m,b))};for(s.nodes().forEach(function(h){var m=h===a?0:Number.POSITIVE_INFINITY;c[h]={distance:m},u.add(h,m)});u.size()>0&&(d=u.removeMin(),f=c[d],f.distance!==Number.POSITIVE_INFINITY);)l(d).forEach(p);return c}return dee}var fee,Uze;function EVn(){if(Uze)return fee;Uze=1;var e=w1t();fee=t;function t(n,r,s){return n.nodes().reduce(function(a,i){return a[i]=e(n,i,r,s),a},{})}return fee}var pee,Vze;function S1t(){if(Vze)return pee;Vze=1,pee=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 pee}var hee,qze;function jVn(){if(qze)return hee;qze=1;var e=S1t();hee=t;function t(n){return e(n).filter(function(r){return r.length>1||r.length===1&&n.hasEdge(r[0],r[0])})}return hee}var mee,Hze;function TVn(){if(Hze)return mee;Hze=1,mee=t;var e=()=>1;function t(r,s,a){return n(r,s||e,a||function(i){return r.outEdges(i)})}function n(r,s,a){var i={},l=r.nodes();return l.forEach(function(c){i[c]={},i[c][c]={distance:0},l.forEach(function(u){c!==u&&(i[c][u]={distance:Number.POSITIVE_INFINITY})}),a(c).forEach(function(u){var d=u.v===c?u.w:u.v,f=s(u);i[c][d]={distance:f,predecessor:c}})}),l.forEach(function(c){var u=i[c];l.forEach(function(d){var f=i[d];l.forEach(function(p){var h=f[c],m=u[p],g=f[p],y=h.distance+m.distance;y<g.distance&&(g.distance=y,g.predecessor=m.predecessor)})})}),i}return mee}var gee,Wze;function k1t(){if(Wze)return gee;Wze=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 gee=e,e.CycleException=t,gee}var vee,Zze;function NVn(){if(Zze)return vee;Zze=1;var e=k1t();vee=t;function t(n){try{e(n)}catch(r){if(r instanceof e.CycleException)return!1;throw r}return!0}return vee}var yee,Gze;function O1t(){if(Gze)return yee;Gze=1,yee=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 yee}var bee,Qze;function IVn(){if(Qze)return bee;Qze=1;var e=O1t();bee=t;function t(n,r){return e(n,r,"post")}return bee}var xee,Yze;function AVn(){if(Yze)return xee;Yze=1;var e=O1t();xee=t;function t(n,r){return e(n,r,"pre")}return xee}var wee,Kze;function RVn(){if(Kze)return wee;Kze=1;var e=qSe(),t=x1t();wee=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 wee}var See,Xze;function PVn(){return Xze||(Xze=1,See={components:CVn(),dijkstra:w1t(),dijkstraAll:EVn(),findCycles:jVn(),floydWarshall:TVn(),isAcyclic:NVn(),postorder:IVn(),preorder:AVn(),prim:RVn(),tarjan:S1t(),topsort:k1t()}),See}var kee,Jze;function Mg(){if(Jze)return kee;Jze=1;var e=OVn();return kee={Graph:e.Graph,json:_Vn(),alg:PVn(),version:e.version},kee}var Oee,e8e;function $Vn(){if(e8e)return Oee;e8e=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 Oee=e,Oee}var _ee,t8e;function MVn(){if(t8e)return _ee;t8e=1;let e=Mg().Graph,t=$Vn();_ee=r;let n=()=>1;function r(u,d){if(u.nodeCount()<=1)return[];let f=i(u,d||n);return s(f.graph,f.buckets,f.zeroIdx).flatMap(h=>u.outEdges(h.v,h.w))}function s(u,d,f){let p=[],h=d[d.length-1],m=d[0],g;for(;u.nodeCount();){for(;g=m.dequeue();)a(u,d,f,g);for(;g=h.dequeue();)a(u,d,f,g);if(u.nodeCount()){for(let y=d.length-2;y>0;--y)if(g=d[y].dequeue(),g){p=p.concat(a(u,d,f,g,!0));break}}}return p}function a(u,d,f,p,h){let m=h?[]:void 0;return u.inEdges(p.v).forEach(g=>{let y=u.edge(g),b=u.node(g.v);h&&m.push({v:g.v,w:g.w}),b.out-=y,l(d,f,b)}),u.outEdges(p.v).forEach(g=>{let y=u.edge(g),b=g.w,x=u.node(b);x.in-=y,l(d,f,x)}),u.removeNode(p.v),m}function i(u,d){let f=new e,p=0,h=0;u.nodes().forEach(y=>{f.setNode(y,{v:y,in:0,out:0})}),u.edges().forEach(y=>{let b=f.edge(y.v,y.w)||0,x=d(y),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),g=p+1;return f.nodes().forEach(y=>{l(m,g,f.node(y))}),{graph:f,buckets:m,zeroIdx:g}}function l(u,d,f){f.out?f.in?u[f.out-f.in+d].enqueue(f):u[u.length-1].enqueue(f):u[0].enqueue(f)}function c(u){const d=[];for(let f=0;f<u;f++)d.push(f);return d}return _ee}var Cee,n8e;function Ml(){if(n8e)return Cee;n8e=1;let e=Mg().Graph;Cee={addBorderNode:d,addDummyNode:t,applyWithChunking:h,asNonCompoundGraph:r,buildLayerMatrix:l,intersectRect:i,mapValues:C,maxRank:m,normalizeRanks:c,notime:b,partition:g,pick:_,predecessorWeights:a,range:k,removeEmptyRanks:u,simplify:n,successorWeights:s,time:y,uniqueId:S,zipObject:E};function t(j,N,I,A){for(var R=A;j.hasNode(R);)R=S(A);return I.dummy=N,j.setNode(R,I),R}function n(j){let N=new e().setGraph(j.graph());return j.nodes().forEach(I=>N.setNode(I,j.node(I))),j.edges().forEach(I=>{let A=N.edge(I.v,I.w)||{weight:0,minlen:1},R=j.edge(I);N.setEdge(I.v,I.w,{weight:A.weight+R.weight,minlen:Math.max(A.minlen,R.minlen)})}),N}function r(j){let N=new e({multigraph:j.isMultigraph()}).setGraph(j.graph());return j.nodes().forEach(I=>{j.children(I).length||N.setNode(I,j.node(I))}),j.edges().forEach(I=>{N.setEdge(I,j.edge(I))}),N}function s(j){let N=j.nodes().map(I=>{let A={};return j.outEdges(I).forEach(R=>{A[R.w]=(A[R.w]||0)+j.edge(R).weight}),A});return E(j.nodes(),N)}function a(j){let N=j.nodes().map(I=>{let A={};return j.inEdges(I).forEach(R=>{A[R.v]=(A[R.v]||0)+j.edge(R).weight}),A});return E(j.nodes(),N)}function i(j,N){let I=j.x,A=j.y,R=N.x-I,L=N.y-A,D=j.width/2,B=j.height/2;if(!R&&!L)throw new Error("Not possible to find intersection inside of the rectangle");let H,F;return Math.abs(L)*D>Math.abs(R)*B?(L<0&&(B=-B),H=B*R/L,F=B):(R<0&&(D=-D),H=D,F=D*L/R),{x:I+H,y:A+F}}function l(j){let N=k(m(j)+1).map(()=>[]);return j.nodes().forEach(I=>{let A=j.node(I),R=A.rank;R!==void 0&&(N[R][A.order]=I)}),N}function c(j){let N=j.nodes().map(A=>{let R=j.node(A).rank;return R===void 0?Number.MAX_VALUE:R}),I=h(Math.min,N);j.nodes().forEach(A=>{let R=j.node(A);Object.hasOwn(R,"rank")&&(R.rank-=I)})}function u(j){let N=j.nodes().map(D=>j.node(D).rank),I=h(Math.min,N),A=[];j.nodes().forEach(D=>{let B=j.node(D).rank-I;A[B]||(A[B]=[]),A[B].push(D)});let R=0,L=j.graph().nodeRankFactor;Array.from(A).forEach((D,B)=>{D===void 0&&B%L!==0?--R:D!==void 0&&R&&D.forEach(H=>j.node(H).rank+=R)})}function d(j,N,I,A){let R={width:0,height:0};return arguments.length>=4&&(R.rank=I,R.order=A),t(j,"border",R,N)}function f(j,N=p){const I=[];for(let A=0;A<j.length;A+=N){const R=j.slice(A,A+N);I.push(R)}return I}const p=65535;function h(j,N){if(N.length>p){const I=f(N);return j.apply(null,I.map(A=>j.apply(null,A)))}else return j.apply(null,N)}function m(j){const I=j.nodes().map(A=>{let R=j.node(A).rank;return R===void 0?Number.MIN_VALUE:R});return h(Math.max,I)}function g(j,N){let I={lhs:[],rhs:[]};return j.forEach(A=>{N(A)?I.lhs.push(A):I.rhs.push(A)}),I}function y(j,N){let I=Date.now();try{return N()}finally{console.log(j+" time: "+(Date.now()-I)+"ms")}}function b(j,N){return N()}let x=0;function S(j){var N=++x;return j+(""+N)}function k(j,N,I=1){N==null&&(N=j,j=0);let A=L=>L<N;I<0&&(A=L=>N<L);const R=[];for(let L=j;A(L);L+=I)R.push(L);return R}function _(j,N){const I={};for(const A of N)j[A]!==void 0&&(I[A]=j[A]);return I}function C(j,N){let I=N;return typeof N=="string"&&(I=A=>A[N]),Object.entries(j).reduce((A,[R,L])=>(A[R]=I(L,R),A),{})}function E(j,N){return j.reduce((I,A,R)=>(I[A]=N[R],I),{})}return Cee}var Eee,r8e;function DVn(){if(r8e)return Eee;r8e=1;let e=MVn(),t=Ml().uniqueId;Eee={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 Eee}var jee,s8e;function LVn(){if(s8e)return jee;s8e=1;let e=Ml();jee={run:t,undo:r};function t(s){s.graph().dummyChains=[],s.edges().forEach(a=>n(s,a))}function n(s,a){let i=a.v,l=s.node(i).rank,c=a.w,u=s.node(c).rank,d=a.name,f=s.edge(a),p=f.labelRank;if(u===l+1)return;s.removeEdge(a);let h,m,g;for(g=0,++l;l<u;++g,++l)f.points=[],m={width:0,height:0,edgeLabel:f,edgeObj:a,rank:l},h=e.addDummyNode(s,"edge",m,"_d"),l===p&&(m.width=f.width,m.height=f.height,m.dummy="edge-label",m.labelpos=f.labelpos),s.setEdge(i,h,{weight:f.weight},d),g===0&&s.graph().dummyChains.push(h),i=h;s.setEdge(i,c,{weight:f.weight},d)}function r(s){s.graph().dummyChains.forEach(a=>{let i=s.node(a),l=i.edgeLabel,c;for(s.setEdge(i.edgeObj,l);i.dummy;)c=s.successors(a)[0],s.removeNode(a),l.points.push({x:i.x,y:i.y}),i.dummy==="edge-label"&&(l.x=i.x,l.y=i.y,l.width=i.width,l.height=i.height),a=c,i=s.node(a)})}return jee}var Tee,a8e;function bB(){if(a8e)return Tee;a8e=1;const{applyWithChunking:e}=Ml();Tee={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 Tee}var Nee,i8e;function _1t(){if(i8e)return Nee;i8e=1;var e=Mg().Graph,t=bB().slack;Nee=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 Nee}var Iee,o8e;function FVn(){if(o8e)return Iee;o8e=1;var e=_1t(),t=bB().slack,n=bB().longestPath,r=Mg().alg.preorder,s=Mg().alg.postorder,a=Ml().simplify;Iee=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,E=!0,j=S.edge(k,C),N=0;return j||(E=!1,j=S.edge(C,k)),N=j.weight,S.nodeEdges(k).forEach(I=>{var A=I.v===k,R=A?I.w:I.v;if(R!==C){var L=A===E,D=S.edge(I).weight;if(N+=L?D:-D,y(x,k,R)){var B=x.edge(k,R).cutvalue;N+=L?-B:B}}}),N}function d(x,S){arguments.length<2&&(S=x.nodes()[0]),f(x,{},1,S)}function f(x,S,k,_,C){var E=k,j=x.node(_);return S[_]=!0,x.neighbors(_).forEach(N=>{Object.hasOwn(S,N)||(k=f(x,S,k,N,_))}),j.low=E,j.lim=k++,C?j.parent=C:delete j.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 E=x.node(_),j=x.node(C),N=E,I=!1;E.lim>j.lim&&(N=j,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,E=k.w;x.removeEdge(C,E),x.setEdge(_.v,_.w,{}),d(x),l(x,S),g(x,S)}function g(x,S){var k=x.nodes().find(C=>!S.node(C).parent),_=r(x,k);_=_.slice(1),_.forEach(C=>{var E=x.node(C).parent,j=S.edge(C,E),N=!1;j||(j=S.edge(E,C),N=!0),S.node(C).rank=S.node(E).rank+(N?j.minlen:-j.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 Iee}var Aee,l8e;function zVn(){if(l8e)return Aee;l8e=1;var e=bB(),t=e.longestPath,n=_1t(),r=FVn();Aee=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 Aee}var Ree,c8e;function BVn(){if(c8e)return Ree;c8e=1,Ree=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 Ree}var Pee,u8e;function UVn(){if(u8e)return Pee;u8e=1;let e=Ml();Pee={run:t,cleanup:a};function t(i){let l=e.addDummyNode(i,"root",{},"_root"),c=r(i),u=Object.values(c),d=e.applyWithChunking(Math.max,u)-1,f=2*d+1;i.graph().nestingRoot=l,i.edges().forEach(h=>i.edge(h).minlen*=f);let p=s(i)+1;i.children().forEach(h=>n(i,l,f,p,d,c,h)),i.graph().nodeRankFactor=f}function n(i,l,c,u,d,f,p){let h=i.children(p);if(!h.length){p!==l&&i.setEdge(l,p,{weight:0,minlen:c});return}let m=e.addBorderNode(i,"_bt"),g=e.addBorderNode(i,"_bb"),y=i.node(p);i.setParent(m,p),y.borderTop=m,i.setParent(g,p),y.borderBottom=g,h.forEach(b=>{n(i,l,c,u,d,f,b);let x=i.node(b),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,g,{weight:_,minlen:C,nestingEdge:!0})}),i.parent(p)||i.setEdge(l,m,{weight:0,minlen:d+f[p]})}function r(i){var l={};function c(u,d){var f=i.children(u);f&&f.length&&f.forEach(p=>c(p,d+1)),l[u]=d}return i.children().forEach(u=>c(u,1)),l}function s(i){return i.edges().reduce((l,c)=>l+i.edge(c).weight,0)}function a(i){var l=i.graph();i.removeNode(l.nestingRoot),delete l.nestingRoot,i.edges().forEach(c=>{var u=i.edge(c);u.nestingEdge&&i.removeEdge(c)})}return Pee}var $ee,d8e;function VVn(){if(d8e)return $ee;d8e=1;let e=Ml();$ee=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 $ee}var Mee,f8e;function qVn(){if(f8e)return Mee;f8e=1,Mee={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 Mee}var Dee,p8e;function HVn(){if(p8e)return Dee;p8e=1;let e=Ml();Dee=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 Dee}var Lee,h8e;function WVn(){if(h8e)return Lee;h8e=1;let e=Ml().zipObject;Lee=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 Lee}var Fee,m8e;function ZVn(){if(m8e)return Fee;m8e=1,Fee=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 Fee}var zee,g8e;function GVn(){if(g8e)return zee;g8e=1;let e=Ml();zee=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 zee}var Bee,v8e;function QVn(){if(v8e)return Bee;v8e=1;let e=Ml();Bee=t;function t(s,a){let i=e.partition(s,m=>Object.hasOwn(m,"barycenter")),l=i.lhs,c=i.rhs.sort((m,g)=>g.i-m.i),u=[],d=0,f=0,p=0;l.sort(r(!!a)),p=n(u,c,p),l.forEach(m=>{p+=m.vs.length,u.push(m.vs),d+=m.barycenter*m.weight,f+=m.weight,p=n(u,c,p)});let h={vs:u.flat(!0)};return f&&(h.barycenter=d/f,h.weight=f),h}function n(s,a,i){let l;for(;a.length&&(l=a[a.length-1]).i<=i;)a.pop(),s.push(l.vs),i++;return i}function r(s){return(a,i)=>a.barycenter<i.barycenter?-1:a.barycenter>i.barycenter?1:s?i.i-a.i:a.i-i.i}return Bee}var Uee,y8e;function YVn(){if(y8e)return Uee;y8e=1;let e=ZVn(),t=GVn(),n=QVn();Uee=r;function r(i,l,c,u){let d=i.children(l),f=i.node(l),p=f?f.borderLeft:void 0,h=f?f.borderRight:void 0,m={};p&&(d=d.filter(x=>x!==p&&x!==h));let g=e(i,d);g.forEach(x=>{if(i.children(x.v).length){let S=r(i,x.v,c,u);m[x.v]=S,Object.hasOwn(S,"barycenter")&&a(x,S)}});let y=t(g,c);s(y,m);let b=n(y,u);if(p&&(b.vs=[p,b.vs,h].flat(!0),i.predecessors(p).length)){let x=i.node(i.predecessors(p)[0]),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 Uee}var Vee,b8e;function KVn(){if(b8e)return Vee;b8e=1;let e=Mg().Graph,t=Ml();Vee=n;function n(s,a,i,l){l||(l=s.nodes());let c=r(s),u=new e({compound:!0}).setGraph({root:c}).setDefaultNodeLabel(d=>s.node(d));return l.forEach(d=>{let f=s.node(d),p=s.parent(d);(f.rank===a||f.minRank<=a&&a<=f.maxRank)&&(u.setNode(d),u.setParent(d,p||c),s[i](d).forEach(h=>{let m=h.v===d?h.w:h.v,g=u.edge(m,d),y=g!==void 0?g.weight:0;u.setEdge(m,d,{weight:s.edge(h).weight+y})}),Object.hasOwn(f,"minRank")&&u.setNode(d,{borderLeft:f.borderLeft[a],borderRight:f.borderRight[a]}))}),u}function r(s){for(var a;s.hasNode(a=t.uniqueId("_root")););return a}return Vee}var qee,x8e;function XVn(){if(x8e)return qee;x8e=1,qee=e;function e(t,n,r){let s={},a;r.forEach(i=>{let l=t.parent(i),c,u;for(;l;){if(c=t.parent(l),c?(u=s[c],s[c]=l):(u=a,a=l),u&&u!==l){n.setEdge(u,l);return}l=c}})}return qee}var Hee,w8e;function JVn(){if(w8e)return Hee;w8e=1;let e=HVn(),t=WVn(),n=YVn(),r=KVn(),s=XVn(),a=Mg().Graph,i=Ml();Hee=l;function l(f,p){if(p&&typeof p.customOrder=="function"){p.customOrder(f,l);return}let h=i.maxRank(f),m=c(f,i.range(1,h+1),"inEdges"),g=c(f,i.range(h-1,-1,-1),"outEdges"),y=e(f);if(d(f,y),p&&p.disableOptimalOrderHeuristic)return;let b=Number.POSITIVE_INFINITY,x;for(let S=0,k=0;k<4;++S,++k){u(S%2?m:g,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,g=(y,b)=>{m.has(y)||m.set(y,[]),m.get(y).push(b)};for(const y of f.nodes()){const b=f.node(y);if(typeof b.rank=="number"&&g(b.rank,y),typeof b.minRank=="number"&&typeof b.maxRank=="number")for(let x=b.minRank;x<=b.maxRank;x++)x!==b.rank&&g(x,y)}return p.map(function(y){return r(f,y,h,m.get(y)||[])})}function u(f,p){let h=new a;f.forEach(function(m){let g=m.graph().root,y=n(m,g,h,p);y.vs.forEach((b,x)=>m.node(b).order=x),s(m,h,y.vs)})}function d(f,p){Object.values(p).forEach(h=>h.forEach((m,g)=>f.node(m).order=g))}return Hee}var Wee,S8e;function eqn(){if(S8e)return Wee;S8e=1;let e=Mg().Graph,t=Ml();Wee={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,E=0,j=k.length,N=_[_.length-1];return _.forEach((I,A)=>{let R=s(y,I),L=R?y.node(R).order:j;(R||I===N)&&(_.slice(E,A+1).forEach(D=>{y.predecessors(D).forEach(B=>{let H=y.node(B),F=H.order;(F<C||L<F)&&!(H.dummy&&y.node(D).dummy)&&a(x,B,D)})}),E=A+1,C=L)}),_}return b.length&&b.reduce(S),x}function r(y,b){let x={};function S(_,C,E,j,N){let I;t.range(C,E).forEach(A=>{I=_[A],y.node(I).dummy&&y.predecessors(I).forEach(R=>{let L=y.node(R);L.dummy&&(L.order<j||L.order>N)&&a(x,R,I)})})}function k(_,C){let E=-1,j,N=0;return C.forEach((I,A)=>{if(y.node(I).dummy==="border"){let R=y.predecessors(I);R.length&&(j=y.node(R[0]).order,S(C,N,A,E,j),N=A,E=j)}S(C,N,C.length,j,_.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(E=>{E.forEach((j,N)=>{k[j]=j,_[j]=j,C[j]=N})}),b.forEach(E=>{let j=-1;E.forEach(N=>{let I=S(N);if(I.length){I=I.sort((R,L)=>C[R]-C[L]);let A=(I.length-1)/2;for(let R=Math.floor(A),L=Math.ceil(A);R<=L;++R){let D=I[R];_[N]===N&&j<C[D]&&!i(x,N,D)&&(_[D]=N,_[N]=k[N]=k[D],j=C[D])}}})}),{root:k,align:_}}function c(y,b,x,S,k){let _={},C=u(y,b,x,k),E=k?"borderLeft":"borderRight";function j(A,R){let L=C.nodes(),D=L.pop(),B={};for(;D;)B[D]?A(D):(B[D]=!0,L.push(D),L=L.concat(R(D))),D=L.pop()}function N(A){_[A]=C.inEdges(A).reduce((R,L)=>Math.max(R,_[L.v]+C.edge(L)),0)}function I(A){let R=C.outEdges(A).reduce((D,B)=>Math.min(D,_[B.w]-C.edge(B)),Number.POSITIVE_INFINITY),L=y.node(A);R!==Number.POSITIVE_INFINITY&&L.borderType!==E&&(_[A]=Math.max(_[A],R))}return j(N,C.predecessors.bind(C)),j(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(E=>{let j;E.forEach(N=>{let I=x[N];if(k.setNode(I),j){var A=x[j],R=k.edge(A,I);k.setEdge(A,I,Math.max(C(y,N,j),R||0))}j=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(([E,j])=>{let N=g(y,E)/2;k=Math.max(j+N,k),_=Math.min(j-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 E=_+C,j=y[E];if(j===b)return;let N=Object.values(j),I=S-t.applyWithChunking(Math.min,N);C!=="l"&&(I=k-t.applyWithChunking(Math.max,N)),I&&(y[E]=t.mapValues(j,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(E=>{E==="r"&&(k=k.map(A=>Object.values(A).reverse()));let j=(C==="u"?y.predecessors:y.successors).bind(y),N=l(y,k,x,j),I=c(y,k,N.root,N.align,E==="r");E==="r"&&(I=t.mapValues(I,A=>-A)),S[C+E]=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),E=S.node(_),j=0,N;if(j+=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&&(j+=x?N:-N),N=0,j+=(C.dummy?b:y)/2,j+=(E.dummy?b:y)/2,j+=E.width/2,Object.hasOwn(E,"labelpos"))switch(E.labelpos.toLowerCase()){case"l":N=E.width/2;break;case"r":N=-E.width/2;break}return N&&(j+=x?N:-N),N=0,j}}function g(y,b){return y.node(b).width}return Wee}var Zee,k8e;function tqn(){if(k8e)return Zee;k8e=1;let e=Ml(),t=eqn().positionX;Zee=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 Zee}var Gee,O8e;function nqn(){if(O8e)return Gee;O8e=1;let e=DVn(),t=LVn(),n=zVn(),r=Ml().normalizeRanks,s=BVn(),a=Ml().removeEmptyRanks,i=UVn(),l=VVn(),c=qVn(),u=JVn(),d=tqn(),f=Ml(),p=Mg().Graph;Gee=h;function h($,U){let Z=U&&U.debugTiming?f.time:f.notime;Z("layout",()=>{let K=Z(" buildLayoutGraph",()=>j($));Z(" runLayout",()=>m(K,Z,U)),Z(" updateInputGraph",()=>g($,K))})}function m($,U,Z){U(" makeSpaceForEdgeLabels",()=>N($)),U(" removeSelfEdges",()=>z($)),U(" acyclic",()=>e.run($)),U(" nestingGraph.run",()=>i.run($)),U(" rank",()=>n(f.asNonCompoundGraph($))),U(" injectEdgeLabelProxies",()=>I($)),U(" removeEmptyRanks",()=>a($)),U(" nestingGraph.cleanup",()=>i.cleanup($)),U(" normalizeRanks",()=>r($)),U(" assignRankMinMax",()=>A($)),U(" removeEdgeLabelProxies",()=>R($)),U(" normalize.run",()=>t.run($)),U(" parentDummyChains",()=>s($)),U(" addBorderSegments",()=>l($)),U(" order",()=>u($,Z)),U(" insertSelfEdges",()=>q($)),U(" adjustCoordinateSystem",()=>c.adjust($)),U(" position",()=>d($)),U(" positionSelfEdges",()=>M($)),U(" removeBorderNodes",()=>F($)),U(" normalize.undo",()=>t.undo($)),U(" fixupEdgeLabelCoords",()=>B($)),U(" undoCoordinateSystem",()=>c.undo($)),U(" translateGraph",()=>L($)),U(" assignNodeIntersects",()=>D($)),U(" reversePoints",()=>H($)),U(" acyclic.undo",()=>e.undo($))}function g($,U){$.nodes().forEach(Z=>{let K=$.node(Z),ee=U.node(Z);K&&(K.x=ee.x,K.y=ee.y,K.rank=ee.rank,U.children(Z).length&&(K.width=ee.width,K.height=ee.height))}),$.edges().forEach(Z=>{let K=$.edge(Z),ee=U.edge(Z);K.points=ee.points,Object.hasOwn(ee,"x")&&(K.x=ee.x,K.y=ee.y)}),$.graph().width=U.graph().width,$.graph().height=U.graph().height}let y=["nodesep","edgesep","ranksep","marginx","marginy"],b={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},x=["acyclicer","ranker","rankdir","align"],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"},E=["labelpos"];function j($){let U=new p({multigraph:!0,compound:!0}),Z=V($.graph());return U.setGraph(Object.assign({},b,G(Z,y),f.pick(Z,x))),$.nodes().forEach(K=>{let ee=V($.node(K));const te=G(ee,S);Object.keys(k).forEach(J=>{te[J]===void 0&&(te[J]=k[J])}),U.setNode(K,te),U.setParent(K,$.parent(K))}),$.edges().forEach(K=>{let ee=V($.edge(K));U.setEdge(K,Object.assign({},C,G(ee,_),f.pick(ee,E)))}),U}function N($){let U=$.graph();U.ranksep/=2,$.edges().forEach(Z=>{let K=$.edge(Z);K.minlen*=2,K.labelpos.toLowerCase()!=="c"&&(U.rankdir==="TB"||U.rankdir==="BT"?K.width+=K.labeloffset:K.height+=K.labeloffset)})}function I($){$.edges().forEach(U=>{let Z=$.edge(U);if(Z.width&&Z.height){let K=$.node(U.v),te={rank:($.node(U.w).rank-K.rank)/2+K.rank,e:U};f.addDummyNode($,"edge-proxy",te,"_ep")}})}function A($){let U=0;$.nodes().forEach(Z=>{let K=$.node(Z);K.borderTop&&(K.minRank=$.node(K.borderTop).rank,K.maxRank=$.node(K.borderBottom).rank,U=Math.max(U,K.maxRank))}),$.graph().maxRank=U}function R($){$.nodes().forEach(U=>{let Z=$.node(U);Z.dummy==="edge-proxy"&&($.edge(Z.e).labelRank=Z.rank,$.removeNode(U))})}function L($){let U=Number.POSITIVE_INFINITY,Z=0,K=Number.POSITIVE_INFINITY,ee=0,te=$.graph(),J=te.marginx||0,ae=te.marginy||0;function de(Y){let ne=Y.x,fe=Y.y,he=Y.width,le=Y.height;U=Math.min(U,ne-he/2),Z=Math.max(Z,ne+he/2),K=Math.min(K,fe-le/2),ee=Math.max(ee,fe+le/2)}$.nodes().forEach(Y=>de($.node(Y))),$.edges().forEach(Y=>{let ne=$.edge(Y);Object.hasOwn(ne,"x")&&de(ne)}),U-=J,K-=ae,$.nodes().forEach(Y=>{let ne=$.node(Y);ne.x-=U,ne.y-=K}),$.edges().forEach(Y=>{let ne=$.edge(Y);ne.points.forEach(fe=>{fe.x-=U,fe.y-=K}),Object.hasOwn(ne,"x")&&(ne.x-=U),Object.hasOwn(ne,"y")&&(ne.y-=K)}),te.width=Z-U+J,te.height=ee-K+ae}function D($){$.edges().forEach(U=>{let Z=$.edge(U),K=$.node(U.v),ee=$.node(U.w),te,J;Z.points?(te=Z.points[0],J=Z.points[Z.points.length-1]):(Z.points=[],te=ee,J=K),Z.points.unshift(f.intersectRect(K,te)),Z.points.push(f.intersectRect(ee,J))})}function B($){$.edges().forEach(U=>{let Z=$.edge(U);if(Object.hasOwn(Z,"x"))switch((Z.labelpos==="l"||Z.labelpos==="r")&&(Z.width-=Z.labeloffset),Z.labelpos){case"l":Z.x-=Z.width/2+Z.labeloffset;break;case"r":Z.x+=Z.width/2+Z.labeloffset;break}})}function H($){$.edges().forEach(U=>{let Z=$.edge(U);Z.reversed&&Z.points.reverse()})}function F($){$.nodes().forEach(U=>{if($.children(U).length){let Z=$.node(U),K=$.node(Z.borderTop),ee=$.node(Z.borderBottom),te=$.node(Z.borderLeft[Z.borderLeft.length-1]),J=$.node(Z.borderRight[Z.borderRight.length-1]);Z.width=Math.abs(J.x-te.x),Z.height=Math.abs(ee.y-K.y),Z.x=te.x+Z.width/2,Z.y=K.y+Z.height/2}}),$.nodes().forEach(U=>{$.node(U).dummy==="border"&&$.removeNode(U)})}function z($){$.edges().forEach(U=>{if(U.v===U.w){var Z=$.node(U.v);Z.selfEdges||(Z.selfEdges=[]),Z.selfEdges.push({e:U,label:$.edge(U)}),$.removeEdge(U)}})}function q($){var U=f.buildLayerMatrix($);U.forEach(Z=>{var K=0;Z.forEach((ee,te)=>{var J=$.node(ee);J.order=te+K,(J.selfEdges||[]).forEach(ae=>{f.addDummyNode($,"selfedge",{width:ae.label.width,height:ae.label.height,rank:J.rank,order:te+ ++K,e:ae.e,label:ae.label},"_se")}),delete J.selfEdges})})}function M($){$.nodes().forEach(U=>{var Z=$.node(U);if(Z.dummy==="selfedge"){var K=$.node(Z.e.v),ee=K.x+K.width/2,te=K.y,J=Z.x-ee,ae=K.height/2;$.setEdge(Z.e,Z.label),$.removeNode(U),Z.label.points=[{x:ee+2*J/3,y:te-ae},{x:ee+5*J/6,y:te-ae},{x:ee+J,y:te},{x:ee+5*J/6,y:te+ae},{x:ee+2*J/3,y:te+ae}],Z.label.x=Z.x,Z.label.y=Z.y}})}function G($,U){return f.mapValues(f.pick($,U),Number)}function V($){var U={};return $&&Object.entries($).forEach(([Z,K])=>{typeof Z=="string"&&(Z=Z.toLowerCase()),U[Z]=K}),U}return Gee}var Qee,_8e;function rqn(){if(_8e)return Qee;_8e=1;let e=Ml(),t=Mg().Graph;Qee={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 Qee}var Yee,C8e;function sqn(){return C8e||(C8e=1,Yee="1.1.8"),Yee}var Kee,E8e;function aqn(){return E8e||(E8e=1,Kee={graphlib:Mg(),layout:nqn(),debug:rqn(),util:{time:Ml().time,notime:Ml().notime},version:sqn()}),Kee}var iqn=aqn();const j8e=Fl(iqn);function Ul(e){if(typeof e=="string"||typeof e=="number")return""+e;let t="";if(Array.isArray(e))for(let n=0,r;n<e.length;n++)(r=Ul(e[n]))!==""&&(t+=(t&&" ")+r);else for(let n in e)e[n]&&(t+=(t&&" ")+n);return t}var oqn={value:()=>{}};function NH(){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 N8(n)}function N8(e){this._=e}function lqn(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}})}N8.prototype=NH.prototype={constructor:N8,on:function(e,t){var n=this._,r=lqn(e+"",n),s,a=-1,i=r.length;if(arguments.length<2){for(;++a<i;)if((s=(e=r[a]).type)&&(s=cqn(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]=T8e(n[s],e.name,t);else if(t==null)for(s in n)n[s]=T8e(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 N8(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 cqn(e,t){for(var n=0,r=e.length,s;n<r;++n)if((s=e[n]).name===t)return s.value}function T8e(e,t,n){for(var r=0,s=e.length;r<s;++r)if(e[r].name===t){e[r]=oqn,e=e.slice(0,r).concat(e.slice(r+1));break}return n!=null&&e.push({name:t,value:n}),e}var Kme="http://www.w3.org/1999/xhtml";const N8e={svg:"http://www.w3.org/2000/svg",xhtml:Kme,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function IH(e){var t=e+="",n=t.indexOf(":");return n>=0&&(t=e.slice(0,n))!=="xmlns"&&(e=e.slice(n+1)),N8e.hasOwnProperty(t)?{space:N8e[t],local:e}:e}function uqn(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===Kme&&t.documentElement.namespaceURI===Kme?t.createElement(e):t.createElementNS(n,e)}}function dqn(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function C1t(e){var t=IH(e);return(t.local?dqn:uqn)(t)}function fqn(){}function HSe(e){return e==null?fqn:function(){return this.querySelector(e)}}function pqn(e){typeof e!="function"&&(e=HSe(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 Hp(r,this._parents)}function hqn(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function mqn(){return[]}function E1t(e){return e==null?mqn:function(){return this.querySelectorAll(e)}}function gqn(e){return function(){return hqn(e.apply(this,arguments))}}function vqn(e){typeof e=="function"?e=gqn(e):e=E1t(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 Hp(r,s)}function j1t(e){return function(){return this.matches(e)}}function T1t(e){return function(t){return t.matches(e)}}var yqn=Array.prototype.find;function bqn(e){return function(){return yqn.call(this.children,e)}}function xqn(){return this.firstElementChild}function wqn(e){return this.select(e==null?xqn:bqn(typeof e=="function"?e:T1t(e)))}var Sqn=Array.prototype.filter;function kqn(){return Array.from(this.children)}function Oqn(e){return function(){return Sqn.call(this.children,e)}}function _qn(e){return this.selectAll(e==null?kqn:Oqn(typeof e=="function"?e:T1t(e)))}function Cqn(e){typeof e!="function"&&(e=j1t(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 Hp(r,this._parents)}function N1t(e){return new Array(e.length)}function Eqn(){return new Hp(this._enter||this._groups.map(N1t),this._parents)}function xB(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}xB.prototype={constructor:xB,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 jqn(e){return function(){return e}}function Tqn(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 xB(e,a[i]);for(;i<c;++i)(l=t[i])&&(s[i]=l)}function Nqn(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 xB(e,a[l]);for(l=0;l<d;++l)(c=t[l])&&u.get(p[l])===c&&(s[l]=c)}function Iqn(e){return e.__data__}function Aqn(e,t){if(!arguments.length)return Array.from(this,Iqn);var n=t?Nqn:Tqn,r=this._parents,s=this._groups;typeof e!="function"&&(e=jqn(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=Rqn(e.call(d,d&&d.__data__,u,r)),m=h.length,g=l[u]=new Array(m),y=i[u]=new Array(m),b=c[u]=new Array(p);n(d,f,g,y,b,h,t);for(var x=0,S=0,k,_;x<m;++x)if(k=g[x]){for(x>=S&&(S=x+1);!(_=y[S])&&++S<m;);k._next=_||null}}return i=new Hp(i,r),i._enter=l,i._exit=c,i}function Rqn(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function Pqn(){return new Hp(this._exit||this._groups.map(N1t),this._parents)}function $qn(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 Mqn(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 Hp(l,this._parents)}function Dqn(){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 Lqn(e){e||(e=Fqn);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 Hp(s,this._parents).order()}function Fqn(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function zqn(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function Bqn(){return Array.from(this)}function Uqn(){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 Vqn(){let e=0;for(const t of this)++e;return e}function qqn(){return!this.node()}function Hqn(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 Wqn(e){return function(){this.removeAttribute(e)}}function Zqn(e){return function(){this.removeAttributeNS(e.space,e.local)}}function Gqn(e,t){return function(){this.setAttribute(e,t)}}function Qqn(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function Yqn(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}}function Kqn(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 Xqn(e,t){var n=IH(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?Zqn:Wqn:typeof t=="function"?n.local?Kqn:Yqn:n.local?Qqn:Gqn)(n,t))}function I1t(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function Jqn(e){return function(){this.style.removeProperty(e)}}function eHn(e,t,n){return function(){this.style.setProperty(e,t,n)}}function tHn(e,t,n){return function(){var r=t.apply(this,arguments);r==null?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function nHn(e,t,n){return arguments.length>1?this.each((t==null?Jqn:typeof t=="function"?tHn:eHn)(e,t,n??"")):VT(this.node(),e)}function VT(e,t){return e.style.getPropertyValue(t)||I1t(e).getComputedStyle(e,null).getPropertyValue(t)}function rHn(e){return function(){delete this[e]}}function sHn(e,t){return function(){this[e]=t}}function aHn(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function iHn(e,t){return arguments.length>1?this.each((t==null?rHn:typeof t=="function"?aHn:sHn)(e,t)):this.node()[e]}function A1t(e){return e.trim().split(/^|\s+/)}function WSe(e){return e.classList||new R1t(e)}function R1t(e){this._node=e,this._names=A1t(e.getAttribute("class")||"")}R1t.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 P1t(e,t){for(var n=WSe(e),r=-1,s=t.length;++r<s;)n.add(t[r])}function $1t(e,t){for(var n=WSe(e),r=-1,s=t.length;++r<s;)n.remove(t[r])}function oHn(e){return function(){P1t(this,e)}}function lHn(e){return function(){$1t(this,e)}}function cHn(e,t){return function(){(t.apply(this,arguments)?P1t:$1t)(this,e)}}function uHn(e,t){var n=A1t(e+"");if(arguments.length<2){for(var r=WSe(this.node()),s=-1,a=n.length;++s<a;)if(!r.contains(n[s]))return!1;return!0}return this.each((typeof t=="function"?cHn:t?oHn:lHn)(n,t))}function dHn(){this.textContent=""}function fHn(e){return function(){this.textContent=e}}function pHn(e){return function(){var t=e.apply(this,arguments);this.textContent=t??""}}function hHn(e){return arguments.length?this.each(e==null?dHn:(typeof e=="function"?pHn:fHn)(e)):this.node().textContent}function mHn(){this.innerHTML=""}function gHn(e){return function(){this.innerHTML=e}}function vHn(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??""}}function yHn(e){return arguments.length?this.each(e==null?mHn:(typeof e=="function"?vHn:gHn)(e)):this.node().innerHTML}function bHn(){this.nextSibling&&this.parentNode.appendChild(this)}function xHn(){return this.each(bHn)}function wHn(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function SHn(){return this.each(wHn)}function kHn(e){var t=typeof e=="function"?e:C1t(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function OHn(){return null}function _Hn(e,t){var n=typeof e=="function"?e:C1t(e),r=t==null?OHn:typeof t=="function"?t:HSe(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})}function CHn(){var e=this.parentNode;e&&e.removeChild(this)}function EHn(){return this.each(CHn)}function jHn(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function THn(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function NHn(e){return this.select(e?THn:jHn)}function IHn(e){return arguments.length?this.property("__data__",e):this.node().__data__}function AHn(e){return function(t){e.call(this,t,this.__data__)}}function RHn(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 PHn(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 $Hn(e,t,n){return function(){var r=this.__on,s,a=AHn(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 MHn(e,t,n){var r=RHn(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?$Hn:PHn,s=0;s<a;++s)this.each(l(r[s],t,n));return this}function M1t(e,t,n){var r=I1t(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 DHn(e,t){return function(){return M1t(this,e,t)}}function LHn(e,t){return function(){return M1t(this,e,t.apply(this,arguments))}}function FHn(e,t){return this.each((typeof t=="function"?LHn:DHn)(e,t))}function*zHn(){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 D1t=[null];function Hp(e,t){this._groups=e,this._parents=t}function M3(){return new Hp([[document.documentElement]],D1t)}function BHn(){return this}Hp.prototype=M3.prototype={constructor:Hp,select:pqn,selectAll:vqn,selectChild:wqn,selectChildren:_qn,filter:Cqn,data:Aqn,enter:Eqn,exit:Pqn,join:$qn,merge:Mqn,selection:BHn,order:Dqn,sort:Lqn,call:zqn,nodes:Bqn,node:Uqn,size:Vqn,empty:qqn,each:Hqn,attr:Xqn,style:nHn,property:iHn,classed:uHn,text:hHn,html:yHn,raise:xHn,lower:SHn,append:kHn,insert:_Hn,remove:EHn,clone:NHn,datum:IHn,on:MHn,dispatch:FHn,[Symbol.iterator]:zHn};function Sp(e){return typeof e=="string"?new Hp([[document.querySelector(e)]],[document.documentElement]):new Hp([[e]],D1t)}function UHn(e){let t;for(;t=e.sourceEvent;)e=t;return e}function rg(e,t){if(e=UHn(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 VHn={passive:!1},kM={capture:!0,passive:!1};function Xee(e){e.stopImmediatePropagation()}function Wj(e){e.preventDefault(),e.stopImmediatePropagation()}function L1t(e){var t=e.document.documentElement,n=Sp(e).on("dragstart.drag",Wj,kM);"onselectstart"in t?n.on("selectstart.drag",Wj,kM):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect="none")}function F1t(e,t){var n=e.document.documentElement,r=Sp(e).on("dragstart.drag",null);t&&(r.on("click.drag",Wj,kM),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 J6=e=>()=>e;function Xme(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}})}Xme.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function qHn(e){return!e.ctrlKey&&!e.button}function HHn(){return this.parentNode}function WHn(e,t){return t??{x:e.x,y:e.y}}function ZHn(){return navigator.maxTouchPoints||"ontouchstart"in this}function z1t(){var e=qHn,t=HHn,n=WHn,r=ZHn,s={},a=NH("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,VHn).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&&(Sp(k.view).on("mousemove.drag",m,kM).on("mouseup.drag",g,kM),L1t(k.view),Xee(k),u=!1,l=k.clientX,c=k.clientY,C("start",k))}}function m(k){if(Wj(k),!u){var _=k.clientX-l,C=k.clientY-c;u=_*_+C*C>f}s.mouse("drag",k)}function g(k){Sp(k.view).on("mousemove.drag mouseup.drag",null),F1t(k.view,u),Wj(k),s.mouse("end",k)}function y(k,_){if(e.call(this,k,_)){var C=k.changedTouches,E=t.call(this,k,_),j=C.length,N,I;for(N=0;N<j;++N)(I=S(this,E,k,_,C[N].identifier,C[N]))&&(Xee(k),I("start",k,C[N]))}}function b(k){var _=k.changedTouches,C=_.length,E,j;for(E=0;E<C;++E)(j=s[_[E].identifier])&&(Wj(k),j("drag",k,_[E]))}function x(k){var _=k.changedTouches,C=_.length,E,j;for(d&&clearTimeout(d),d=setTimeout(function(){d=null},500),E=0;E<C;++E)(j=s[_[E].identifier])&&(Xee(k),j("end",k,_[E]))}function S(k,_,C,E,j,N){var I=a.copy(),A=rg(N||C,_),R,L,D;if((D=n.call(k,new Xme("beforestart",{sourceEvent:C,target:p,identifier:j,active:i,x:A[0],y:A[1],dx:0,dy:0,dispatch:I}),E))!=null)return R=D.x-A[0]||0,L=D.y-A[1]||0,function B(H,F,z){var q=A,M;switch(H){case"start":s[j]=B,M=i++;break;case"end":delete s[j],--i;case"drag":A=rg(z||F,_),M=i;break}I.call(H,k,new Xme(H,{sourceEvent:F,subject:D,target:p,identifier:j,active:M,x:A[0]+R,y:A[1]+L,dx:A[0]-q[0],dy:A[1]-q[1],dispatch:I}),E)}}return p.filter=function(k){return arguments.length?(e=typeof k=="function"?k:J6(!!k),p):e},p.container=function(k){return arguments.length?(t=typeof k=="function"?k:J6(k),p):t},p.subject=function(k){return arguments.length?(n=typeof k=="function"?k:J6(k),p):n},p.touchable=function(k){return arguments.length?(r=typeof k=="function"?k:J6(!!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 ZSe(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function B1t(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function D3(){}var OM=.7,wB=1/OM,Zj="\\s*([+-]?\\d+)\\s*",_M="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",sy="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",GHn=/^#([0-9a-f]{3,8})$/,QHn=new RegExp(`^rgb\\(${Zj},${Zj},${Zj}\\)$`),YHn=new RegExp(`^rgb\\(${sy},${sy},${sy}\\)$`),KHn=new RegExp(`^rgba\\(${Zj},${Zj},${Zj},${_M}\\)$`),XHn=new RegExp(`^rgba\\(${sy},${sy},${sy},${_M}\\)$`),JHn=new RegExp(`^hsl\\(${_M},${sy},${sy}\\)$`),eWn=new RegExp(`^hsla\\(${_M},${sy},${sy},${_M}\\)$`),I8e={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};ZSe(D3,VO,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:A8e,formatHex:A8e,formatHex8:tWn,formatHsl:nWn,formatRgb:R8e,toString:R8e});function A8e(){return this.rgb().formatHex()}function tWn(){return this.rgb().formatHex8()}function nWn(){return U1t(this).formatHsl()}function R8e(){return this.rgb().formatRgb()}function VO(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=GHn.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?P8e(t):n===3?new pf(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?eF(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?eF(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=QHn.exec(e))?new pf(t[1],t[2],t[3],1):(t=YHn.exec(e))?new pf(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=KHn.exec(e))?eF(t[1],t[2],t[3],t[4]):(t=XHn.exec(e))?eF(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=JHn.exec(e))?D8e(t[1],t[2]/100,t[3]/100,1):(t=eWn.exec(e))?D8e(t[1],t[2]/100,t[3]/100,t[4]):I8e.hasOwnProperty(e)?P8e(I8e[e]):e==="transparent"?new pf(NaN,NaN,NaN,0):null}function P8e(e){return new pf(e>>16&255,e>>8&255,e&255,1)}function eF(e,t,n,r){return r<=0&&(e=t=n=NaN),new pf(e,t,n,r)}function rWn(e){return e instanceof D3||(e=VO(e)),e?(e=e.rgb(),new pf(e.r,e.g,e.b,e.opacity)):new pf}function Jme(e,t,n,r){return arguments.length===1?rWn(e):new pf(e,t,n,r??1)}function pf(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}ZSe(pf,Jme,B1t(D3,{brighter(e){return e=e==null?wB:Math.pow(wB,e),new pf(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?OM:Math.pow(OM,e),new pf(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new pf(Kk(this.r),Kk(this.g),Kk(this.b),SB(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:$8e,formatHex:$8e,formatHex8:sWn,formatRgb:M8e,toString:M8e}));function $8e(){return`#${Ak(this.r)}${Ak(this.g)}${Ak(this.b)}`}function sWn(){return`#${Ak(this.r)}${Ak(this.g)}${Ak(this.b)}${Ak((isNaN(this.opacity)?1:this.opacity)*255)}`}function M8e(){const e=SB(this.opacity);return`${e===1?"rgb(":"rgba("}${Kk(this.r)}, ${Kk(this.g)}, ${Kk(this.b)}${e===1?")":`, ${e})`}`}function SB(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Kk(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Ak(e){return e=Kk(e),(e<16?"0":"")+e.toString(16)}function D8e(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new ug(e,t,n,r)}function U1t(e){if(e instanceof ug)return new ug(e.h,e.s,e.l,e.opacity);if(e instanceof D3||(e=VO(e)),!e)return new ug;if(e instanceof ug)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 ug(i,l,c,e.opacity)}function aWn(e,t,n,r){return arguments.length===1?U1t(e):new ug(e,t,n,r??1)}function ug(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}ZSe(ug,aWn,B1t(D3,{brighter(e){return e=e==null?wB:Math.pow(wB,e),new ug(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?OM:Math.pow(OM,e),new ug(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 pf(Jee(e>=240?e-240:e+120,s,r),Jee(e,s,r),Jee(e<120?e+240:e-120,s,r),this.opacity)},clamp(){return new ug(L8e(this.h),tF(this.s),tF(this.l),SB(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=SB(this.opacity);return`${e===1?"hsl(":"hsla("}${L8e(this.h)}, ${tF(this.s)*100}%, ${tF(this.l)*100}%${e===1?")":`, ${e})`}`}}));function L8e(e){return e=(e||0)%360,e<0?e+360:e}function tF(e){return Math.max(0,Math.min(1,e||0))}function Jee(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 GSe=e=>()=>e;function iWn(e,t){return function(n){return e+n*t}}function oWn(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 lWn(e){return(e=+e)==1?V1t:function(t,n){return n-t?oWn(t,n,e):GSe(isNaN(t)?n:t)}}function V1t(e,t){var n=t-e;return n?iWn(e,n):GSe(isNaN(e)?t:e)}const kB=(function e(t){var n=lWn(t);function r(s,a){var i=n((s=Jme(s)).r,(a=Jme(a)).r),l=n(s.g,a.g),c=n(s.b,a.b),u=V1t(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 cWn(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 uWn(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function dWn(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]=cx(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 fWn(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function ag(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function pWn(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]=cx(e[s],t[s]):r[s]=t[s];return function(a){for(s in n)r[s]=n[s](a);return r}}var ege=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,ete=new RegExp(ege.source,"g");function hWn(e){return function(){return e}}function mWn(e){return function(t){return e(t)+""}}function q1t(e,t){var n=ege.lastIndex=ete.lastIndex=0,r,s,a,i=-1,l=[],c=[];for(e=e+"",t=t+"";(r=ege.exec(e))&&(s=ete.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:ag(r,s)})),n=ete.lastIndex;return n<t.length&&(a=t.slice(n),l[i]?l[i]+=a:l[++i]=a),l.length<2?c[0]?mWn(c[0].x):hWn(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 cx(e,t){var n=typeof t,r;return t==null||n==="boolean"?GSe(t):(n==="number"?ag:n==="string"?(r=VO(t))?(t=r,kB):q1t:t instanceof VO?kB:t instanceof Date?fWn:uWn(t)?cWn:Array.isArray(t)?dWn:typeof t.valueOf!="function"&&typeof t.toString!="function"||isNaN(t)?pWn:ag)(e,t)}function QSe(e,t){return e=+e,t=+t,function(n){return Math.round(e*(1-n)+t*n)}}var F8e=180/Math.PI,tge={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function H1t(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)*F8e,skewX:Math.atan(c)*F8e,scaleX:i,scaleY:l}}var nF;function gWn(e){const t=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?tge:H1t(t.a,t.b,t.c,t.d,t.e,t.f)}function vWn(e){return e==null||(nF||(nF=document.createElementNS("http://www.w3.org/2000/svg","g")),nF.setAttribute("transform",e),!(e=nF.transform.baseVal.consolidate()))?tge:(e=e.matrix,H1t(e.a,e.b,e.c,e.d,e.e,e.f))}function W1t(e,t,n,r){function s(u){return u.length?u.pop()+" ":""}function a(u,d,f,p,h,m){if(u!==f||d!==p){var g=h.push("translate(",null,t,null,n);m.push({i:g-4,x:ag(u,f)},{i:g-2,x:ag(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:ag(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:ag(u,d)}):d&&f.push(s(f)+"skewX("+d+r)}function c(u,d,f,p,h,m){if(u!==f||d!==p){var g=h.push(s(h)+"scale(",null,",",null,")");m.push({i:g-4,x:ag(u,f)},{i:g-2,x:ag(d,p)})}else(f!==1||p!==1)&&h.push(s(h)+"scale("+f+","+p+")")}return function(u,d){var f=[],p=[];return u=e(u),d=e(d),a(u.translateX,u.translateY,d.translateX,d.translateY,f,p),i(u.rotate,d.rotate,f,p),l(u.skewX,d.skewX,f,p),c(u.scaleX,u.scaleY,d.scaleX,d.scaleY,f,p),u=d=null,function(h){for(var m=-1,g=p.length,y;++m<g;)f[(y=p[m]).i]=y.x(h);return f.join("")}}}var yWn=W1t(gWn,"px, ","px)","deg)"),bWn=W1t(vWn,", ",")",")"),xWn=1e-12;function z8e(e){return((e=Math.exp(e))+1/e)/2}function wWn(e){return((e=Math.exp(e))-1/e)/2}function SWn(e){return((e=Math.exp(2*e))-1)/(e+1)}const I8=(function e(t,n,r){function s(a,i){var l=a[0],c=a[1],u=a[2],d=i[0],f=i[1],p=i[2],h=d-l,m=f-c,g=h*h+m*m,y,b;if(g<xWn)b=Math.log(p/u)/t,y=function(E){return[l+E*h,c+E*m,u*Math.exp(t*E*b)]};else{var x=Math.sqrt(g),S=(p*p-u*u+r*g)/(2*u*n*x),k=(p*p-u*u-r*g)/(2*p*n*x),_=Math.log(Math.sqrt(S*S+1)-S),C=Math.log(Math.sqrt(k*k+1)-k);b=(C-_)/t,y=function(E){var j=E*b,N=z8e(_),I=u/(n*x)*(N*SWn(t*j+_)-wWn(_));return[l+I*h,c+I*m,u*N/z8e(t*j+_)]}}return y.duration=b*1e3*t/Math.SQRT2,y}return s.rho=function(a){var i=Math.max(.001,+a),l=i*i,c=l*l;return e(i,l,c)},s})(Math.SQRT2,2,4);function kWn(e,t){t===void 0&&(t=e,e=cx);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 qT=0,$P=0,bR=0,Z1t=1e3,OB,MP,_B=0,qO=0,AH=0,CM=typeof performance=="object"&&performance.now?performance:Date,G1t=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function YSe(){return qO||(G1t(OWn),qO=CM.now()+AH)}function OWn(){qO=0}function CB(){this._call=this._time=this._next=null}CB.prototype=Q1t.prototype={constructor:CB,restart:function(e,t,n){if(typeof e!="function")throw new TypeError("callback is not a function");n=(n==null?YSe():+n)+(t==null?0:+t),!this._next&&MP!==this&&(MP?MP._next=this:OB=this,MP=this),this._call=e,this._time=n,nge()},stop:function(){this._call&&(this._call=null,this._time=1/0,nge())}};function Q1t(e,t,n){var r=new CB;return r.restart(e,t,n),r}function _Wn(){YSe(),++qT;for(var e=OB,t;e;)(t=qO-e._time)>=0&&e._call.call(void 0,t),e=e._next;--qT}function B8e(){qO=(_B=CM.now())+AH,qT=$P=0;try{_Wn()}finally{qT=0,EWn(),qO=0}}function CWn(){var e=CM.now(),t=e-_B;t>Z1t&&(AH-=t,_B=e)}function EWn(){for(var e,t=OB,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:OB=n);MP=e,nge(r)}function nge(e){if(!qT){$P&&($P=clearTimeout($P));var t=e-qO;t>24?(e<1/0&&($P=setTimeout(B8e,e-CM.now()-AH)),bR&&(bR=clearInterval(bR))):(bR||(_B=CM.now(),bR=setInterval(CWn,Z1t)),qT=1,G1t(B8e))}}function U8e(e,t,n){var r=new CB;return t=t==null?0:+t,r.restart(s=>{r.stop(),e(s+t)},t,n),r}var jWn=NH("start","end","cancel","interrupt"),TWn=[],Y1t=0,V8e=1,rge=2,A8=3,q8e=4,sge=5,R8=6;function RH(e,t,n,r,s,a){var i=e.__transition;if(!i)e.__transition={};else if(n in i)return;NWn(e,n,{name:t,index:r,group:s,on:jWn,tween:TWn,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:Y1t})}function KSe(e,t){var n=Hg(e,t);if(n.state>Y1t)throw new Error("too late; already scheduled");return n}function By(e,t){var n=Hg(e,t);if(n.state>A8)throw new Error("too late; already running");return n}function Hg(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function NWn(e,t,n){var r=e.__transition,s;r[t]=n,n.timer=Q1t(a,0,n.time);function a(u){n.state=V8e,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!==V8e)return c();for(d in r)if(h=r[d],h.name===n.name){if(h.state===A8)return U8e(i);h.state===q8e?(h.state=R8,h.timer.stop(),h.on.call("interrupt",e,e.__data__,h.index,h.group),delete r[d]):+d<t&&(h.state=R8,h.timer.stop(),h.on.call("cancel",e,e.__data__,h.index,h.group),delete r[d])}if(U8e(function(){n.state===A8&&(n.state=q8e,n.timer.restart(l,n.delay,n.time),l(u))}),n.state=rge,n.on.call("start",e,e.__data__,n.index,n.group),n.state===rge){for(n.state=A8,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=sge,1),f=-1,p=s.length;++f<p;)s[f].call(e,d);n.state===sge&&(n.on.call("end",e,e.__data__,n.index,n.group),c())}function c(){n.state=R8,n.timer.stop(),delete r[t];for(var u in r)return;delete e.__transition}}function P8(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>rge&&r.state<sge,r.state=R8,r.timer.stop(),r.on.call(s?"interrupt":"cancel",e,e.__data__,r.index,r.group),delete n[i]}a&&delete e.__transition}}function IWn(e){return this.each(function(){P8(this,e)})}function AWn(e,t){var n,r;return function(){var s=By(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 RWn(e,t,n){var r,s;if(typeof n!="function")throw new Error;return function(){var a=By(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 PWn(e,t){var n=this._id;if(e+="",arguments.length<2){for(var r=Hg(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?AWn:RWn)(n,e,t))}function XSe(e,t,n){var r=e._id;return e.each(function(){var s=By(this,r);(s.value||(s.value={}))[t]=n.apply(this,arguments)}),function(s){return Hg(s,r).value[t]}}function K1t(e,t){var n;return(typeof t=="number"?ag:t instanceof VO?kB:(n=VO(t))?(t=n,kB):q1t)(e,t)}function $Wn(e){return function(){this.removeAttribute(e)}}function MWn(e){return function(){this.removeAttributeNS(e.space,e.local)}}function DWn(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 LWn(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 FWn(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 zWn(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 BWn(e,t){var n=IH(e),r=n==="transform"?bWn:K1t;return this.attrTween(e,typeof t=="function"?(n.local?zWn:FWn)(n,r,XSe(this,"attr."+e,t)):t==null?(n.local?MWn:$Wn)(n):(n.local?LWn:DWn)(n,r,t))}function UWn(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function VWn(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function qWn(e,t){var n,r;function s(){var a=t.apply(this,arguments);return a!==r&&(n=(r=a)&&VWn(e,a)),n}return s._value=t,s}function HWn(e,t){var n,r;function s(){var a=t.apply(this,arguments);return a!==r&&(n=(r=a)&&UWn(e,a)),n}return s._value=t,s}function WWn(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=IH(e);return this.tween(n,(r.local?qWn:HWn)(r,t))}function ZWn(e,t){return function(){KSe(this,e).delay=+t.apply(this,arguments)}}function GWn(e,t){return t=+t,function(){KSe(this,e).delay=t}}function QWn(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?ZWn:GWn)(t,e)):Hg(this.node(),t).delay}function YWn(e,t){return function(){By(this,e).duration=+t.apply(this,arguments)}}function KWn(e,t){return t=+t,function(){By(this,e).duration=t}}function XWn(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?YWn:KWn)(t,e)):Hg(this.node(),t).duration}function JWn(e,t){if(typeof t!="function")throw new Error;return function(){By(this,e).ease=t}}function eZn(e){var t=this._id;return arguments.length?this.each(JWn(t,e)):Hg(this.node(),t).ease}function tZn(e,t){return function(){var n=t.apply(this,arguments);if(typeof n!="function")throw new Error;By(this,e).ease=n}}function nZn(e){if(typeof e!="function")throw new Error;return this.each(tZn(this._id,e))}function rZn(e){typeof e!="function"&&(e=j1t(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 Nx(r,this._parents,this._name,this._id)}function sZn(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 Nx(i,this._parents,this._name,this._id)}function aZn(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 iZn(e,t,n){var r,s,a=aZn(t)?KSe:By;return function(){var i=a(this,e),l=i.on;l!==r&&(s=(r=l).copy()).on(t,n),i.on=s}}function oZn(e,t){var n=this._id;return arguments.length<2?Hg(this.node(),n).on.on(e):this.each(iZn(n,e,t))}function lZn(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function cZn(){return this.on("end.remove",lZn(this._id))}function uZn(e){var t=this._name,n=this._id;typeof e!="function"&&(e=HSe(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,RH(u[p],t,n,p,u,Hg(d,n)));return new Nx(a,this._parents,t,n)}function dZn(e){var t=this._name,n=this._id;typeof e!="function"&&(e=E1t(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=Hg(d,n),g=0,y=p.length;g<y;++g)(h=p[g])&&RH(h,t,n,g,p,m);a.push(p),i.push(d)}return new Nx(a,i,t,n)}var fZn=M3.prototype.constructor;function pZn(){return new fZn(this._groups,this._parents)}function hZn(e,t){var n,r,s;return function(){var a=VT(this,e),i=(this.style.removeProperty(e),VT(this,e));return a===i?null:a===n&&i===r?s:s=t(n=a,r=i)}}function X1t(e){return function(){this.style.removeProperty(e)}}function mZn(e,t,n){var r,s=n+"",a;return function(){var i=VT(this,e);return i===s?null:i===r?a:a=t(r=i,n)}}function gZn(e,t,n){var r,s,a;return function(){var i=VT(this,e),l=n(this),c=l+"";return l==null&&(c=l=(this.style.removeProperty(e),VT(this,e))),i===c?null:i===r&&c===s?a:(s=c,a=t(r=i,l))}}function vZn(e,t){var n,r,s,a="style."+t,i="end."+a,l;return function(){var c=By(this,e),u=c.on,d=c.value[a]==null?l||(l=X1t(t)):void 0;(u!==n||s!==d)&&(r=(n=u).copy()).on(i,s=d),c.on=r}}function yZn(e,t,n){var r=(e+="")=="transform"?yWn:K1t;return t==null?this.styleTween(e,hZn(e,r)).on("end.style."+e,X1t(e)):typeof t=="function"?this.styleTween(e,gZn(e,r,XSe(this,"style."+e,t))).each(vZn(this._id,e)):this.styleTween(e,mZn(e,r,t),n).on("end.style."+e,null)}function bZn(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}function xZn(e,t,n){var r,s;function a(){var i=t.apply(this,arguments);return i!==s&&(r=(s=i)&&bZn(e,i,n)),r}return a._value=t,a}function wZn(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,xZn(e,t,n??""))}function SZn(e){return function(){this.textContent=e}}function kZn(e){return function(){var t=e(this);this.textContent=t??""}}function OZn(e){return this.tween("text",typeof e=="function"?kZn(XSe(this,"text",e)):SZn(e==null?"":e+""))}function _Zn(e){return function(t){this.textContent=e.call(this,t)}}function CZn(e){var t,n;function r(){var s=e.apply(this,arguments);return s!==n&&(t=(n=s)&&_Zn(s)),t}return r._value=e,r}function EZn(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,CZn(e))}function jZn(){for(var e=this._name,t=this._id,n=J1t(),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=Hg(c,t);RH(c,e,n,u,i,{time:d.time+d.delay+d.duration,delay:0,duration:d.duration,ease:d.ease})}return new Nx(r,this._parents,e,n)}function TZn(){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=By(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 NZn=0;function Nx(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}function J1t(){return++NZn}var bb=M3.prototype;Nx.prototype={constructor:Nx,select:uZn,selectAll:dZn,selectChild:bb.selectChild,selectChildren:bb.selectChildren,filter:rZn,merge:sZn,selection:pZn,transition:jZn,call:bb.call,nodes:bb.nodes,node:bb.node,size:bb.size,empty:bb.empty,each:bb.each,on:oZn,attr:BWn,attrTween:WWn,style:yZn,styleTween:wZn,text:OZn,textTween:EZn,remove:cZn,tween:PWn,delay:QWn,duration:XWn,ease:eZn,easeVarying:nZn,end:TZn,[Symbol.iterator]:bb[Symbol.iterator]};function IZn(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var AZn={time:null,delay:0,duration:250,ease:IZn};function RZn(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 PZn(e){var t,n;e instanceof Nx?(t=e._id,e=e._name):(t=J1t(),(n=AZn).time=YSe(),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])&&RH(c,e,t,u,i,n||RZn(c,t));return new Nx(r,this._parents,e,t)}M3.prototype.interrupt=IWn;M3.prototype.transition=PZn;const rF=e=>()=>e;function $Zn(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 Xb(e,t,n){this.k=e,this.x=t,this.y=n}Xb.prototype={constructor:Xb,scale:function(e){return e===1?this:new Xb(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new Xb(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 PH=new Xb(1,0,0);eSt.prototype=Xb.prototype;function eSt(e){for(;!e.__zoom;)if(!(e=e.parentNode))return PH;return e.__zoom}function tte(e){e.stopImmediatePropagation()}function xR(e){e.preventDefault(),e.stopImmediatePropagation()}function MZn(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function DZn(){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 H8e(){return this.__zoom||PH}function LZn(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function FZn(){return navigator.maxTouchPoints||"ontouchstart"in this}function zZn(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 tSt(){var e=MZn,t=DZn,n=zZn,r=LZn,s=FZn,a=[0,1/0],i=[[-1/0,-1/0],[1/0,1/0]],l=250,c=I8,u=NH("start","zoom","end"),d,f,p,h=500,m=150,g=0,y=10;function b(D){D.property("__zoom",H8e).on("wheel.zoom",j,{passive:!1}).on("mousedown.zoom",N).on("dblclick.zoom",I).filter(s).on("touchstart.zoom",A).on("touchmove.zoom",R).on("touchend.zoom touchcancel.zoom",L).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}b.transform=function(D,B,H,F){var z=D.selection?D.selection():D;z.property("__zoom",H8e),D!==z?_(D,B,H,F):z.interrupt().each(function(){C(this,arguments).event(F).start().zoom(null,typeof B=="function"?B.apply(this,arguments):B).end()})},b.scaleBy=function(D,B,H,F){b.scaleTo(D,function(){var z=this.__zoom.k,q=typeof B=="function"?B.apply(this,arguments):B;return z*q},H,F)},b.scaleTo=function(D,B,H,F){b.transform(D,function(){var z=t.apply(this,arguments),q=this.__zoom,M=H==null?k(z):typeof H=="function"?H.apply(this,arguments):H,G=q.invert(M),V=typeof B=="function"?B.apply(this,arguments):B;return n(S(x(q,V),M,G),z,i)},H,F)},b.translateBy=function(D,B,H,F){b.transform(D,function(){return n(this.__zoom.translate(typeof B=="function"?B.apply(this,arguments):B,typeof H=="function"?H.apply(this,arguments):H),t.apply(this,arguments),i)},null,F)},b.translateTo=function(D,B,H,F,z){b.transform(D,function(){var q=t.apply(this,arguments),M=this.__zoom,G=F==null?k(q):typeof F=="function"?F.apply(this,arguments):F;return n(PH.translate(G[0],G[1]).scale(M.k).translate(typeof B=="function"?-B.apply(this,arguments):-B,typeof H=="function"?-H.apply(this,arguments):-H),q,i)},F,z)};function x(D,B){return B=Math.max(a[0],Math.min(a[1],B)),B===D.k?D:new Xb(B,D.x,D.y)}function S(D,B,H){var F=B[0]-H[0]*D.k,z=B[1]-H[1]*D.k;return F===D.x&&z===D.y?D:new Xb(D.k,F,z)}function k(D){return[(+D[0][0]+ +D[1][0])/2,(+D[0][1]+ +D[1][1])/2]}function _(D,B,H,F){D.on("start.zoom",function(){C(this,arguments).event(F).start()}).on("interrupt.zoom end.zoom",function(){C(this,arguments).event(F).end()}).tween("zoom",function(){var z=this,q=arguments,M=C(z,q).event(F),G=t.apply(z,q),V=H==null?k(G):typeof H=="function"?H.apply(z,q):H,$=Math.max(G[1][0]-G[0][0],G[1][1]-G[0][1]),U=z.__zoom,Z=typeof B=="function"?B.apply(z,q):B,K=c(U.invert(V).concat($/U.k),Z.invert(V).concat($/Z.k));return function(ee){if(ee===1)ee=Z;else{var te=K(ee),J=$/te[2];ee=new Xb(J,V[0]-te[0]*J,V[1]-te[1]*J)}M.zoom(null,ee)}})}function C(D,B,H){return!H&&D.__zooming||new E(D,B)}function E(D,B){this.that=D,this.args=B,this.active=0,this.sourceEvent=null,this.extent=t.apply(D,B),this.taps=0}E.prototype={event:function(D){return D&&(this.sourceEvent=D),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(D,B){return this.mouse&&D!=="mouse"&&(this.mouse[1]=B.invert(this.mouse[0])),this.touch0&&D!=="touch"&&(this.touch0[1]=B.invert(this.touch0[0])),this.touch1&&D!=="touch"&&(this.touch1[1]=B.invert(this.touch1[0])),this.that.__zoom=B,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(D){var B=Sp(this.that).datum();u.call(D,this.that,new $Zn(D,{sourceEvent:this.sourceEvent,target:b,transform:this.that.__zoom,dispatch:u}),B)}};function j(D,...B){if(!e.apply(this,arguments))return;var H=C(this,B).event(D),F=this.__zoom,z=Math.max(a[0],Math.min(a[1],F.k*Math.pow(2,r.apply(this,arguments)))),q=rg(D);if(H.wheel)(H.mouse[0][0]!==q[0]||H.mouse[0][1]!==q[1])&&(H.mouse[1]=F.invert(H.mouse[0]=q)),clearTimeout(H.wheel);else{if(F.k===z)return;H.mouse=[q,F.invert(q)],P8(this),H.start()}xR(D),H.wheel=setTimeout(M,m),H.zoom("mouse",n(S(x(F,z),H.mouse[0],H.mouse[1]),H.extent,i));function M(){H.wheel=null,H.end()}}function N(D,...B){if(p||!e.apply(this,arguments))return;var H=D.currentTarget,F=C(this,B,!0).event(D),z=Sp(D.view).on("mousemove.zoom",V,!0).on("mouseup.zoom",$,!0),q=rg(D,H),M=D.clientX,G=D.clientY;L1t(D.view),tte(D),F.mouse=[q,this.__zoom.invert(q)],P8(this),F.start();function V(U){if(xR(U),!F.moved){var Z=U.clientX-M,K=U.clientY-G;F.moved=Z*Z+K*K>g}F.event(U).zoom("mouse",n(S(F.that.__zoom,F.mouse[0]=rg(U,H),F.mouse[1]),F.extent,i))}function $(U){z.on("mousemove.zoom mouseup.zoom",null),F1t(U.view,F.moved),xR(U),F.event(U).end()}}function I(D,...B){if(e.apply(this,arguments)){var H=this.__zoom,F=rg(D.changedTouches?D.changedTouches[0]:D,this),z=H.invert(F),q=H.k*(D.shiftKey?.5:2),M=n(S(x(H,q),F,z),t.apply(this,B),i);xR(D),l>0?Sp(this).transition().duration(l).call(_,M,F,D):Sp(this).call(b.transform,M,F,D)}}function A(D,...B){if(e.apply(this,arguments)){var H=D.touches,F=H.length,z=C(this,B,D.changedTouches.length===F).event(D),q,M,G,V;for(tte(D),M=0;M<F;++M)G=H[M],V=rg(G,this),V=[V,this.__zoom.invert(V),G.identifier],z.touch0?!z.touch1&&z.touch0[2]!==V[2]&&(z.touch1=V,z.taps=0):(z.touch0=V,q=!0,z.taps=1+!!d);d&&(d=clearTimeout(d)),q&&(z.taps<2&&(f=V[0],d=setTimeout(function(){d=null},h)),P8(this),z.start())}}function R(D,...B){if(this.__zooming){var H=C(this,B).event(D),F=D.changedTouches,z=F.length,q,M,G,V;for(xR(D),q=0;q<z;++q)M=F[q],G=rg(M,this),H.touch0&&H.touch0[2]===M.identifier?H.touch0[0]=G:H.touch1&&H.touch1[2]===M.identifier&&(H.touch1[0]=G);if(M=H.that.__zoom,H.touch1){var $=H.touch0[0],U=H.touch0[1],Z=H.touch1[0],K=H.touch1[1],ee=(ee=Z[0]-$[0])*ee+(ee=Z[1]-$[1])*ee,te=(te=K[0]-U[0])*te+(te=K[1]-U[1])*te;M=x(M,Math.sqrt(ee/te)),G=[($[0]+Z[0])/2,($[1]+Z[1])/2],V=[(U[0]+K[0])/2,(U[1]+K[1])/2]}else if(H.touch0)G=H.touch0[0],V=H.touch0[1];else return;H.zoom("touch",n(S(M,G,V),H.extent,i))}}function L(D,...B){if(this.__zooming){var H=C(this,B).event(D),F=D.changedTouches,z=F.length,q,M;for(tte(D),p&&clearTimeout(p),p=setTimeout(function(){p=null},h),q=0;q<z;++q)M=F[q],H.touch0&&H.touch0[2]===M.identifier?delete H.touch0:H.touch1&&H.touch1[2]===M.identifier&&delete H.touch1;if(H.touch1&&!H.touch0&&(H.touch0=H.touch1,delete H.touch1),H.touch0)H.touch0[1]=this.__zoom.invert(H.touch0[0]);else if(H.end(),H.taps===2&&(M=rg(M,this),Math.hypot(f[0]-M[0],f[1]-M[1])<y)){var G=Sp(this).on("dblclick.zoom");G&&G.apply(this,arguments)}}}return b.wheelDelta=function(D){return arguments.length?(r=typeof D=="function"?D:rF(+D),b):r},b.filter=function(D){return arguments.length?(e=typeof D=="function"?D:rF(!!D),b):e},b.touchable=function(D){return arguments.length?(s=typeof D=="function"?D:rF(!!D),b):s},b.extent=function(D){return arguments.length?(t=typeof D=="function"?D:rF([[+D[0][0],+D[0][1]],[+D[1][0],+D[1][1]]]),b):t},b.scaleExtent=function(D){return arguments.length?(a[0]=+D[0],a[1]=+D[1],b):[a[0],a[1]]},b.translateExtent=function(D){return arguments.length?(i[0][0]=+D[0][0],i[1][0]=+D[1][0],i[0][1]=+D[0][1],i[1][1]=+D[1][1],b):[[i[0][0],i[0][1]],[i[1][0],i[1][1]]]},b.constrain=function(D){return arguments.length?(n=D,b):n},b.duration=function(D){return arguments.length?(l=+D,b):l},b.interpolate=function(D){return arguments.length?(c=D,b):c},b.on=function(){var D=u.on.apply(u,arguments);return D===u?b:D},b.clickDistance=function(D){return arguments.length?(g=(D=+D)*D,b):Math.sqrt(g)},b.tapDistance=function(D){return arguments.length?(y=+D,b):y},b}const xy={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."},EM=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],nSt=["Enter"," ","Escape"],rSt={"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 HT;(function(e){e.Strict="strict",e.Loose="loose"})(HT||(HT={}));var Xk;(function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"})(Xk||(Xk={}));var jM;(function(e){e.Partial="partial",e.Full="full"})(jM||(jM={}));const sSt={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null};var dw;(function(e){e.Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier"})(dw||(dw={}));var TM;(function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"})(TM||(TM={}));var sr;(function(e){e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom"})(sr||(sr={}));const W8e={[sr.Left]:sr.Right,[sr.Right]:sr.Left,[sr.Top]:sr.Bottom,[sr.Bottom]:sr.Top};function aSt(e){return e===null?null:e?"valid":"invalid"}const iSt=e=>"id"in e&&"source"in e&&"target"in e,BZn=e=>"id"in e&&"position"in e&&!("source"in e)&&!("target"in e),JSe=e=>"id"in e&&"internals"in e&&!("source"in e)&&!("target"in e),L3=(e,t=[0,0])=>{const{width:n,height:r}=Jx(e),s=e.origin??t,a=n*s[0],i=r*s[1];return{x:e.position.x-a,y:e.position.y-i}},UZn=(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):JSe(s)?s:t.nodeLookup.get(s.id));const l=i?EB(i,t.nodeOrigin):{x:0,y:0,x2:0,y2:0};return $H(r,l)},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return MH(n)},F3=(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=$H(n,EB(s)),r=!0)}),r?MH(n):{x:0,y:0,width:0,height:0}},eke=(e,t,[n,r,s]=[0,0,1],a=!1,i=!1)=>{const l={...B3(t,[n,r,s]),width:t.width/s,height:t.height/s},c=[];for(const u of e.values()){const{measured:d,selectable:f=!0,hidden:p=!1}=u;if(i&&!f||p)continue;const h=d.width??u.width??u.initialWidth??null,m=d.height??u.height??u.initialHeight??null,g=NM(l,ZT(u)),y=(h??0)*(m??0),b=a&&g>0;(!u.internals.handleBounds||b||g>=y||u.dragging)&&c.push(u)}return c},VZn=(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 qZn(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 HZn({nodes:e,width:t,height:n,panZoom:r,minZoom:s,maxZoom:a},i){if(e.size===0)return Promise.resolve(!0);const l=qZn(e,i),c=F3(l),u=tke(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 oSt({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",xy.error005());else{const h=l.measured.width,m=l.measured.height;h&&m&&(f=[[c,u],[c+h,u+m]])}else l&>(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=GT(f)?HO(t,f,i.measured):t;return(i.measured.width===void 0||i.measured.height===void 0)&&a?.("015",xy.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 WZn({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:r,onBeforeDelete:s}){const a=new Set(e.map(p=>p.id)),i=[];for(const p of n){if(p.deletable===!1)continue;const h=a.has(p.id),m=!h&&p.parentId&&i.find(g=>g.id===p.parentId);(h||m)&&i.push(p)}const l=new Set(t.map(p=>p.id)),c=r.filter(p=>p.deletable!==!1),d=VZn(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 WT=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),HO=(e={x:0,y:0},t,n)=>({x:WT(e.x,t[0][0],t[1][0]-(n?.width??0)),y:WT(e.y,t[0][1],t[1][1]-(n?.height??0))});function lSt(e,t,n){const{width:r,height:s}=Jx(n),{x:a,y:i}=n.internals.positionAbsolute;return HO(e,[[a,i],[a+r,i+s]],t)}const Z8e=(e,t,n)=>e<t?WT(Math.abs(e-t),1,t)/t:e>n?-WT(Math.abs(e-n),1,t)/t:0,cSt=(e,t,n=15,r=40)=>{const s=Z8e(e.x,r,t.width-r)*n,a=Z8e(e.y,r,t.height-r)*n;return[s,a]},$H=(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)}),age=({x:e,y:t,width:n,height:r})=>({x:e,y:t,x2:e+n,y2:t+r}),MH=({x:e,y:t,x2:n,y2:r})=>({x:e,y:t,width:n-e,height:r-t}),ZT=(e,t=[0,0])=>{const{x:n,y:r}=JSe(e)?e.internals.positionAbsolute:L3(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}},EB=(e,t=[0,0])=>{const{x:n,y:r}=JSe(e)?e.internals.positionAbsolute:L3(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)}},uSt=(e,t)=>MH($H(age(e),age(t))),NM=(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)},G8e=e=>gg(e.width)&&gg(e.height)&&gg(e.x)&&gg(e.y),gg=e=>!isNaN(e)&&isFinite(e),ZZn=(e,t)=>{},z3=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),B3=({x:e,y:t},[n,r,s],a=!1,i=[1,1])=>{const l={x:(e-n)/s,y:(t-r)/s};return a?z3(l,i):l},jB=({x:e,y:t},[n,r,s])=>({x:e*s+n,y:t*s+r});function oE(e,t){if(typeof e=="number")return Math.floor((t-t/(1+e))*.5);if(typeof e=="string"&&e.endsWith("px")){const n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(n)}if(typeof e=="string"&&e.endsWith("%")){const n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(t*n*.01)}return console.error(`[React Flow] The padding value "${e}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}function GZn(e,t,n){if(typeof e=="string"||typeof e=="number"){const r=oE(e,n),s=oE(e,t);return{top:r,right:s,bottom:r,left:s,x:s*2,y:r*2}}if(typeof e=="object"){const r=oE(e.top??e.y??0,n),s=oE(e.bottom??e.y??0,n),a=oE(e.left??e.x??0,t),i=oE(e.right??e.x??0,t);return{top:r,right:i,bottom:s,left:a,x:a+i,y:r+s}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function QZn(e,t,n,r,s,a){const{x:i,y:l}=jB(e,[t,n,r]),{x:c,y:u}=jB({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 tke=(e,t,n,r,s,a)=>{const i=GZn(a,t,n),l=(t-i.x)/e.width,c=(n-i.y)/e.height,u=Math.min(l,c),d=WT(u,r,s),f=e.x+e.width/2,p=e.y+e.height/2,h=t/2-f*d,m=n/2-p*d,g=QZn(e,h,m,d,t,n),y={left:Math.min(g.left-i.left,0),top:Math.min(g.top-i.top,0),right:Math.min(g.right-i.right,0),bottom:Math.min(g.bottom-i.bottom,0)};return{x:h-y.left+y.right,y:m-y.top+y.bottom,zoom:d}},IM=()=>typeof navigator<"u"&&navigator?.userAgent?.indexOf("Mac")>=0;function GT(e){return e!=null&&e!=="parent"}function Jx(e){return{width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}}function dSt(e){return(e.measured?.width??e.width??e.initialWidth)!==void 0&&(e.measured?.height??e.height??e.initialHeight)!==void 0}function fSt(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 Q8e(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function YZn(){let e,t;return{promise:new Promise((r,s)=>{e=r,t=s}),resolve:e,reject:t}}function KZn(e){return{...rSt,...e||{}}}function h2(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:r,containerBounds:s}){const{x:a,y:i}=vg(e),l=B3({x:a-(s?.left??0),y:i-(s?.top??0)},r),{x:c,y:u}=n?z3(l,t):l;return{xSnapped:c,ySnapped:u,...l}}const nke=e=>({width:e.offsetWidth,height:e.offsetHeight}),pSt=e=>e?.getRootNode?.()||window?.document,XZn=["INPUT","SELECT","TEXTAREA"];function hSt(e){const t=e.composedPath?.()?.[0]||e.target;return t?.nodeType!==1?!1:XZn.includes(t.nodeName)||t.hasAttribute("contenteditable")||!!t.closest(".nokey")}const mSt=e=>"clientX"in e,vg=(e,t)=>{const n=mSt(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)}},Y8e=(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,...nke(i)}})};function gSt({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 sF(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function K8e({pos:e,x1:t,y1:n,x2:r,y2:s,c:a}){switch(e){case sr.Left:return[t-sF(t-r,a),n];case sr.Right:return[t+sF(r-t,a),n];case sr.Top:return[t,n-sF(n-s,a)];case sr.Bottom:return[t,n+sF(s-n,a)]}}function rke({sourceX:e,sourceY:t,sourcePosition:n=sr.Bottom,targetX:r,targetY:s,targetPosition:a=sr.Top,curvature:i=.25}){const[l,c]=K8e({pos:n,x1:e,y1:t,x2:r,y2:s,c:i}),[u,d]=K8e({pos:a,x1:r,y1:s,x2:e,y2:t,c:i}),[f,p,h,m]=gSt({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 vSt({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 JZn({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 eGn({sourceNode:e,targetNode:t,width:n,height:r,transform:s}){const a=$H(EB(e),EB(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 NM(i,MH(a))>0}const tGn=({source:e,sourceHandle:t,target:n,targetHandle:r})=>`xy-edge__${e}${t||""}-${n}${r||""}`,nGn=(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)),rGn=(e,t,n={})=>{if(!e.source||!e.target)return t;const r=n.getEdgeId||tGn;let s;return iSt(e)?s={...e}:s={...e,id:r(e)},nGn(s,t)?t:(s.sourceHandle===null&&delete s.sourceHandle,s.targetHandle===null&&delete s.targetHandle,t.concat(s))};function ySt({sourceX:e,sourceY:t,targetX:n,targetY:r}){const[s,a,i,l]=vSt({sourceX:e,sourceY:t,targetX:n,targetY:r});return[`M ${e},${t}L ${n},${r}`,s,a,i,l]}const X8e={[sr.Left]:{x:-1,y:0},[sr.Right]:{x:1,y:0},[sr.Top]:{x:0,y:-1},[sr.Bottom]:{x:0,y:1}},sGn=({source:e,sourcePosition:t=sr.Bottom,target:n})=>t===sr.Left||t===sr.Right?e.x<n.x?{x:1,y:0}:{x:-1,y:0}:e.y<n.y?{x:0,y:1}:{x:0,y:-1},J8e=(e,t)=>Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2));function aGn({source:e,sourcePosition:t=sr.Bottom,target:n,targetPosition:r=sr.Top,center:s,offset:a,stepPosition:i}){const l=X8e[t],c=X8e[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=sGn({source:u,sourcePosition:t,target:d}),p=f.x!==0?"x":"y",h=f[p];let m=[],g,y;const b={x:0,y:0},x={x:0,y:0},[,,S,k]=vSt({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(l[p]*c[p]===-1){p==="x"?(g=s.x??u.x+(d.x-u.x)*i,y=s.y??(u.y+d.y)/2):(g=s.x??(u.x+d.x)/2,y=s.y??u.y+(d.y-u.y)*i);const j=[{x:g,y:u.y},{x:g,y:d.y}],N=[{x:u.x,y},{x:d.x,y}];l[p]===h?m=p==="x"?j:N:m=p==="x"?N:j}else{const j=[{x:u.x,y:d.y}],N=[{x:d.x,y:u.y}];if(p==="x"?m=l.x===h?N:j:m=l.y===h?j:N,t===r){const D=Math.abs(e[p]-n[p]);if(D<=a){const B=Math.min(a-1,a-D);l[p]===h?b[p]=(u[p]>e[p]?-1:1)*B:x[p]=(d[p]>n[p]?-1:1)*B}}if(t!==r){const D=p==="x"?"y":"x",B=l[p]===c[D],H=u[D]>d[D],F=u[D]<d[D];(l[p]===1&&(!B&&H||B&&F)||l[p]!==1&&(!B&&F||B&&H))&&(m=p==="x"?j:N)}const I={x:u.x+b.x,y:u.y+b.y},A={x:d.x+x.x,y:d.y+x.y},R=Math.max(Math.abs(I.x-m[0].x),Math.abs(A.x-m[0].x)),L=Math.max(Math.abs(I.y-m[0].y),Math.abs(A.y-m[0].y));R>=L?(g=(I.x+A.x)/2,y=m[0].y):(g=m[0].x,y=(I.y+A.y)/2)}const _={x:u.x+b.x,y:u.y+b.y},C={x:d.x+x.x,y:d.y+x.y};return[[e,..._.x!==m[0].x||_.y!==m[0].y?[_]:[],...m,...C.x!==m[m.length-1].x||C.y!==m[m.length-1].y?[C]:[],n],g,y,S,k]}function iGn(e,t,n,r){const s=Math.min(J8e(e,t)/2,J8e(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 ige({sourceX:e,sourceY:t,sourcePosition:n=sr.Bottom,targetX:r,targetY:s,targetPosition:a=sr.Top,borderRadius:i=5,centerX:l,centerY:c,offset:u=20,stepPosition:d=.5}){const[f,p,h,m,g]=aGn({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+=iGn(f[b-1],f[b],f[b+1],i);return y+=`L${f[f.length-1].x} ${f[f.length-1].y}`,[y,p,h,m,g]}function e9e(e){return e&&!!(e.internals.handleBounds||e.handles?.length)&&!!(e.measured.width||e.width||e.initialWidth)}function oGn(e){const{sourceNode:t,targetNode:n}=e;if(!e9e(t)||!e9e(n))return null;const r=t.internals.handleBounds||t9e(t.handles),s=n.internals.handleBounds||t9e(n.handles),a=n9e(r?.source??[],e.sourceHandle),i=n9e(e.connectionMode===HT.Strict?s?.target??[]:(s?.target??[]).concat(s?.source??[]),e.targetHandle);if(!a||!i)return e.onError?.("008",xy.error008(a?"target":"source",{id:e.id,sourceHandle:e.sourceHandle,targetHandle:e.targetHandle})),null;const l=a?.position||sr.Bottom,c=i?.position||sr.Top,u=WO(t,a,l),d=WO(n,i,c);return{sourceX:u.x,sourceY:u.y,targetX:d.x,targetY:d.y,sourcePosition:l,targetPosition:c}}function t9e(e){if(!e)return null;const t=[],n=[];for(const r of e)r.width=r.width??1,r.height=r.height??1,r.type==="source"?t.push(r):r.type==="target"&&n.push(r);return{source:t,target:n}}function WO(e,t,n=sr.Left,r=!1){const s=(t?.x??0)+e.internals.positionAbsolute.x,a=(t?.y??0)+e.internals.positionAbsolute.y,{width:i,height:l}=t??Jx(e);if(r)return{x:s+i/2,y:a+l/2};switch(t?.position??n){case sr.Top:return{x:s+i/2,y:a};case sr.Right:return{x:s+i,y:a+l/2};case sr.Bottom:return{x:s+i/2,y:a+l};case sr.Left:return{x:s,y:a+l/2}}}function n9e(e,t){return e&&(t?e.find(n=>n.id===t):e[0])||null}function oge(e,t){return e?typeof e=="string"?e:`${t?`${t}__`:""}${Object.keys(e).sort().map(r=>`${r}=${e[r]}`).join("&")}`:""}function lGn(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=oge(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 bSt=1e3,cGn=10,ske={nodeOrigin:[0,0],nodeExtent:EM,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},uGn={...ske,checkEquality:!0};function ake(e,t){const n={...e};for(const r in t)t[r]!==void 0&&(n[r]=t[r]);return n}function dGn(e,t,n){const r=ake(ske,n);for(const s of e.values())if(s.parentId)oke(s,e,t,r);else{const a=L3(s,r.nodeOrigin),i=GT(s.extent)?s.extent:r.nodeExtent,l=HO(a,i,Jx(s));s.internals.positionAbsolute=l}}function fGn(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 ike(e){return e==="manual"}function lge(e,t,n,r={}){const s=ake(uGn,r),a={i:0},i=new Map(t),l=s?.elevateNodesOnSelect&&!ike(s.zIndexMode)?bSt: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=L3(d,s.nodeOrigin),h=GT(d.extent)?d.extent:s.nodeExtent,m=HO(p,h,Jx(d));f={...s.defaults,...d,measured:{width:d.measured?.width,height:d.measured?.height},internals:{positionAbsolute:m,handleBounds:fGn(d,f),z:xSt(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&&oke(f,t,n,r,a),u||=d.selected??!1}return{nodesInitialized:c,hasSelectedNodes:u}}function pGn(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 oke(e,t,n,r,s){const{elevateNodesOnSelect:a,nodeOrigin:i,nodeExtent:l,zIndexMode:c}=ake(ske,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}pGn(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*cGn),s&&d.internals.rootParentIndex!==void 0&&(s.i=d.internals.rootParentIndex);const f=a&&!ike(c)?bSt:0,{x:p,y:h,z:m}=hGn(e,d,i,l,f,c),{positionAbsolute:g}=e.internals,y=p!==g.x||h!==g.y;(y||m!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:y?{x:p,y:h}:g,z:m}})}function xSt(e,t,n){const r=gg(e.zIndex)?e.zIndex:0;return ike(n)?r:r+(e.selected?t:0)}function hGn(e,t,n,r,s,a){const{x:i,y:l}=t.internals.positionAbsolute,c=Jx(e),u=L3(e,n),d=GT(e.extent)?HO(u,e.extent,c):u;let f=HO({x:i+d.x,y:l+d.y},r,c);e.extent==="parent"&&(f=lSt(f,c,t));const p=xSt(e,s,a),h=t.internals.z??0;return{x:f.x,y:f.y,z:h>=p?h+1:p}}function lke(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??ZT(l),u=uSt(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=Jx(l),f=l.origin??r,p=i.x<u.x?Math.round(Math.abs(u.x-i.x)):0,h=i.y<u.y?Math.round(Math.abs(u.y-i.y)):0,m=Math.max(d.width,Math.round(i.width)),g=Math.max(d.height,Math.round(i.height)),y=(m-d.width)*f[0],b=(g-d.height)*f[1];(p>0||h>0||y||b)&&(s.push({id:c,type:"position",position:{x:l.position.x-p+y,y:l.position.y-h+b}}),n.get(c)?.forEach(x=>{e.some(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:g+(h?f[1]*h-b:0)}})}),s}function mGn(e,t,n,r,s,a,i){const l=r?.querySelector(".xyflow__viewport");let c=!1;if(!l)return{changes:[],updatedInternals:c};const u=[],d=window.getComputedStyle(l),{m22:f}=new window.DOMMatrixReadOnly(d.transform),p=[];for(const h of e.values()){const m=t.get(h.id);if(!m)continue;if(m.hidden){t.set(m.id,{...m,internals:{...m.internals,handleBounds:void 0}}),c=!0;continue}const g=nke(h.nodeElement),y=m.measured.width!==g.width||m.measured.height!==g.height;if(!!(g.width&&g.height&&(y||!m.internals.handleBounds||h.force))){const x=h.nodeElement.getBoundingClientRect(),S=GT(m.extent)?m.extent:a;let{positionAbsolute:k}=m.internals;m.parentId&&m.extent==="parent"?k=lSt(k,g,t.get(m.parentId)):S&&(k=HO(k,S,g));const _={...m,measured:g,internals:{...m.internals,positionAbsolute:k,handleBounds:{source:Y8e("source",h.nodeElement,x,f,m.id),target:Y8e("target",h.nodeElement,x,f,m.id)}}};t.set(m.id,_),m.parentId&&oke(_,t,n,{nodeOrigin:s,zIndexMode:i}),c=!0,y&&(u.push({id:m.id,type:"dimensions",dimensions:g}),m.expandParent&&m.parentId&&p.push({id:m.id,parentId:m.parentId,rect:ZT(_,s)}))}}if(p.length>0){const h=lke(p,t,n,s);u.push(...h)}return{changes:u,updatedInternals:c}}async function gGn({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 r9e(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 wSt(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}`;r9e("source",c,d,e,s,i),r9e("target",c,u,e,a,l),t.set(r.id,r)}}function SSt(e,t){if(!e.parentId)return!1;const n=t.get(e.parentId);return n?n.selected?!0:SSt(n,t):!1}function s9e(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 vGn(e,t,n,r){const s=new Map;for(const[a,i]of e)if((i.selected||i.id===r)&&(!i.parentId||!SSt(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 nte({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 yGn({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=z3(a,t);return{x:i.x-a.x,y:i.y-a.y}}function bGn({onNodeMouseDown:e,getStoreItems:t,onDragStart:n,onDrag:r,onDragStop:s}){let a={x:null,y:null},i=0,l=new Map,c=!1,u={x:0,y:0},d=null,f=!1,p=null,h=!1,m=!1,g=null;function y({noDragClassName:x,handleSelector:S,domNode:k,isSelectable:_,nodeId:C,nodeClickDistance:E=0}){p=Sp(k);function j({x:R,y:L}){const{nodeLookup:D,nodeExtent:B,snapGrid:H,snapToGrid:F,nodeOrigin:z,onNodeDrag:q,onSelectionDrag:M,onError:G,updateNodePositions:V}=t();a={x:R,y:L};let $=!1;const U=l.size>1,Z=U&&B?age(F3(l)):null,K=U&&F?yGn({dragItems:l,snapGrid:H,x:R,y:L}):null;for(const[ee,te]of l){if(!D.has(ee))continue;let J={x:R-te.distance.x,y:L-te.distance.y};F&&(J=K?{x:Math.round(J.x+K.x),y:Math.round(J.y+K.y)}:z3(J,H));let ae=null;if(U&&B&&!te.extent&&Z){const{positionAbsolute:ne}=te.internals,fe=ne.x-Z.x+B[0][0],he=ne.x+te.measured.width-Z.x2+B[1][0],le=ne.y-Z.y+B[0][1],ue=ne.y+te.measured.height-Z.y2+B[1][1];ae=[[fe,le],[he,ue]]}const{position:de,positionAbsolute:Y}=oSt({nodeId:ee,nextPosition:J,nodeLookup:D,nodeExtent:ae||B,nodeOrigin:z,onError:G});$=$||te.position.x!==de.x||te.position.y!==de.y,te.position=de,te.internals.positionAbsolute=Y}if(m=m||$,!!$&&(V(l,!0),g&&(r||q||!C&&M))){const[ee,te]=nte({nodeId:C,dragItems:l,nodeLookup:D});r?.(g,l,ee,te),q?.(g,ee,te),C||M?.(g,te)}}async function N(){if(!d)return;const{transform:R,panBy:L,autoPanSpeed:D,autoPanOnNodeDrag:B}=t();if(!B){c=!1,cancelAnimationFrame(i);return}const[H,F]=cSt(u,d,D);(H!==0||F!==0)&&(a.x=(a.x??0)-H/R[2],a.y=(a.y??0)-F/R[2],await L({x:H,y:F})&&j(a)),i=requestAnimationFrame(N)}function I(R){const{nodeLookup:L,multiSelectionActive:D,nodesDraggable:B,transform:H,snapGrid:F,snapToGrid:z,selectNodesOnDrag:q,onNodeDragStart:M,onSelectionDragStart:G,unselectNodesAndEdges:V}=t();f=!0,(!q||!_)&&!D&&C&&(L.get(C)?.selected||V()),_&&q&&C&&e?.(C);const $=h2(R.sourceEvent,{transform:H,snapGrid:F,snapToGrid:z,containerBounds:d});if(a=$,l=vGn(L,B,$,C),l.size>0&&(n||M||!C&&G)){const[U,Z]=nte({nodeId:C,dragItems:l,nodeLookup:L});n?.(R.sourceEvent,l,U,Z),M?.(R.sourceEvent,U,Z),C||G?.(R.sourceEvent,Z)}}const A=z1t().clickDistance(E).on("start",R=>{const{domNode:L,nodeDragThreshold:D,transform:B,snapGrid:H,snapToGrid:F}=t();d=L?.getBoundingClientRect()||null,h=!1,m=!1,g=R.sourceEvent,D===0&&I(R),a=h2(R.sourceEvent,{transform:B,snapGrid:H,snapToGrid:F,containerBounds:d}),u=vg(R.sourceEvent,d)}).on("drag",R=>{const{autoPanOnNodeDrag:L,transform:D,snapGrid:B,snapToGrid:H,nodeDragThreshold:F,nodeLookup:z}=t(),q=h2(R.sourceEvent,{transform:D,snapGrid:B,snapToGrid:H,containerBounds:d});if(g=R.sourceEvent,(R.sourceEvent.type==="touchmove"&&R.sourceEvent.touches.length>1||C&&!z.has(C))&&(h=!0),!h){if(!c&&L&&f&&(c=!0,N()),!f){const M=vg(R.sourceEvent,d),G=M.x-u.x,V=M.y-u.y;Math.sqrt(G*G+V*V)>F&&I(R)}(a.x!==q.xSnapped||a.y!==q.ySnapped)&&l&&f&&(u=vg(R.sourceEvent,d),j(q))}}).on("end",R=>{if(!(!f||h)&&(c=!1,f=!1,cancelAnimationFrame(i),l.size>0)){const{nodeLookup:L,updateNodePositions:D,onNodeDragStop:B,onSelectionDragStop:H}=t();if(m&&(D(l,!1),m=!1),s||B||!C&&H){const[F,z]=nte({nodeId:C,dragItems:l,nodeLookup:L,dragging:!1});s?.(R.sourceEvent,l,F,z),B?.(R.sourceEvent,F,z),C||H?.(R.sourceEvent,z)}}}).filter(R=>{const L=R.target;return!R.button&&(!x||!s9e(L,`.${x}`,k))&&(!S||s9e(L,S,k))});p.call(A)}function b(){p?.on(".drag",null)}return{update:y,destroy:b}}function xGn(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())NM(s,ZT(a))>0&&r.push(a);return r}const wGn=250;function SGn(e,t,n,r){let s=[],a=1/0;const i=xGn(e,n,t+wGn);for(const l of i){const c=[...l.internals.handleBounds?.source??[],...l.internals.handleBounds?.target??[]];for(const u of c){if(r.nodeId===u.nodeId&&r.type===u.type&&r.id===u.id)continue;const{x:d,y:f}=WO(l,u,u.position,!0),p=Math.sqrt(Math.pow(d-e.x,2)+Math.pow(f-e.y,2));p>t||(p<a?(s=[{...u,x:d,y:f}],a=p):p===a&&s.push({...u,x:d,y:f}))}}if(!s.length)return null;if(s.length>1){const l=r.type==="source"?"target":"source";return s.find(c=>c.type===l)??s[0]}return s[0]}function kSt(e,t,n,r,s,a=!1){const i=r.get(e);if(!i)return null;const l=s==="strict"?i.internals.handleBounds?.[t]:[...i.internals.handleBounds?.source??[],...i.internals.handleBounds?.target??[]],c=(n?l?.find(u=>u.id===n):l?.[0])??null;return c&&a?{...c,...WO(i,c,c.position,!0)}:c}function OSt(e,t){return e||(t?.classList.contains("target")?"target":t?.classList.contains("source")?"source":null)}function kGn(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}const _St=()=>!0;function OGn(e,{connectionMode:t,connectionRadius:n,handleId:r,nodeId:s,edgeUpdaterType:a,isTarget:i,domNode:l,nodeLookup:c,lib:u,autoPanOnConnect:d,flowId:f,panBy:p,cancelConnection:h,onConnectStart:m,onConnect:g,onConnectEnd:y,isValidConnection:b=_St,onReconnectEnd:x,updateConnection:S,getTransform:k,getFromHandle:_,autoPanSpeed:C,dragThreshold:E=1,handleDomNode:j}){const N=pSt(e.target);let I=0,A;const{x:R,y:L}=vg(e),D=OSt(a,j),B=l?.getBoundingClientRect();let H=!1;if(!B||!D)return;const F=kSt(s,D,r,c,t);if(!F)return;let z=vg(e,B),q=!1,M=null,G=!1,V=null;function $(){if(!d||!B)return;const[de,Y]=cSt(z,B,C);p({x:de,y:Y}),I=requestAnimationFrame($)}const U={...F,nodeId:s,type:D,position:F.position},Z=c.get(s);let ee={inProgress:!0,isValid:null,from:WO(Z,U,sr.Left,!0),fromHandle:U,fromPosition:U.position,fromNode:Z,to:z,toHandle:null,toPosition:W8e[U.position],toNode:null,pointer:z};function te(){H=!0,S(ee),m?.(e,{nodeId:s,handleId:r,handleType:D})}E===0&&te();function J(de){if(!H){const{x:ue,y:be}=vg(de),xe=ue-R,Ce=be-L;if(!(xe*xe+Ce*Ce>E*E))return;te()}if(!_()||!U){ae(de);return}const Y=k();z=vg(de,B),A=SGn(B3(z,Y,!1,[1,1]),n,c,U),q||($(),q=!0);const ne=CSt(de,{handle:A,connectionMode:t,fromNodeId:s,fromHandleId:r,fromType:i?"target":"source",isValidConnection:b,doc:N,lib:u,flowId:f,nodeLookup:c});V=ne.handleDomNode,M=ne.connection,G=kGn(!!A,ne.isValid);const fe=c.get(s),he=fe?WO(fe,U,sr.Left,!0):ee.from,le={...ee,from:he,isValid:G,to:ne.toHandle&&G?jB({x:ne.toHandle.x,y:ne.toHandle.y},Y):z,toHandle:ne.toHandle,toPosition:G&&ne.toHandle?ne.toHandle.position:W8e[U.position],toNode:ne.toHandle?c.get(ne.toHandle.nodeId):null,pointer:z};S(le),ee=le}function ae(de){if(!("touches"in de&&de.touches.length>0)){if(H){(A||V)&&M&&G&&g?.(M);const{inProgress:Y,...ne}=ee,fe={...ne,toPosition:ee.toHandle?ee.toPosition:null};y?.(de,fe),a&&x?.(de,fe)}h(),cancelAnimationFrame(I),q=!1,G=!1,M=null,V=null,N.removeEventListener("mousemove",J),N.removeEventListener("mouseup",ae),N.removeEventListener("touchmove",J),N.removeEventListener("touchend",ae)}}N.addEventListener("mousemove",J),N.addEventListener("mouseup",ae),N.addEventListener("touchmove",J),N.addEventListener("touchend",ae)}function CSt(e,{handle:t,connectionMode:n,fromNodeId:r,fromHandleId:s,fromType:a,doc:i,lib:l,flowId:c,isValidConnection:u=_St,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}=vg(e),g=i.elementFromPoint(h,m),y=g?.classList.contains(`${l}-flow__handle`)?g:p,b={handleDomNode:y,isValid:!1,connection:null,toHandle:null};if(y){const x=OSt(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 E={source:f?S:r,sourceHandle:f?k:s,target:f?r:S,targetHandle:f?s:k};b.connection=E;const N=_&&C&&(n===HT.Strict?f&&x==="source"||!f&&x==="target":S!==r||k!==s);b.isValid=N&&u(E),b.toHandle=kSt(S,x,k,d,n,!0)}return b}const cge={onPointerDown:OGn,isValid:CSt};function _Gn({domNode:e,panZoom:t,getTransform:n,getViewScale:r}){const s=Sp(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&&IM()?10:1,C=-S.sourceEvent.deltaY*(S.sourceEvent.deltaMode===1?.05:S.sourceEvent.deltaMode?1:.002)*d,E=k[2]*Math.pow(2,C*_);t.scaleTo(E)};let g=[0,0];const y=S=>{(S.sourceEvent.type==="mousedown"||S.sourceEvent.type==="touchstart")&&(g=[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]-g[0],_[1]-g[1]];g=_;const E=r()*Math.max(k[2],Math.log(k[2]))*(h?-1:1),j={x:k[0]-C[0]*E,y:k[1]-C[1]*E},N=[[0,0],[c,u]];t.setViewportConstrained({x:j.x,y:j.y,zoom:k[2]},N,l)},x=tSt().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:rg}}const DH=e=>({x:e.x,y:e.y,zoom:e.k}),rte=({x:e,y:t,zoom:n})=>PH.translate(e,t).scale(n),uj=(e,t)=>e.target.closest(`.${t}`),ESt=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),CGn=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,ste=(e,t=0,n=CGn,r=()=>{})=>{const s=typeof t=="number"&&t>0;return s||r(),s?e.transition().duration(t).ease(n).on("end",r):e},jSt=e=>{const t=e.ctrlKey&&IM()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function EGn({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:r,panOnScrollMode:s,panOnScrollSpeed:a,zoomOnPinch:i,onPanZoomStart:l,onPanZoom:c,onPanZoomEnd:u}){return d=>{if(uj(d,t))return d.ctrlKey&&d.preventDefault(),!1;d.preventDefault(),d.stopImmediatePropagation();const f=n.property("__zoom").k||1;if(d.ctrlKey&&i){const y=rg(d),b=jSt(d),x=f*Math.pow(2,b);r.scaleTo(n,x,y,d);return}const p=d.deltaMode===1?20:1;let h=s===Xk.Vertical?0:d.deltaX*p,m=s===Xk.Horizontal?0:d.deltaY*p;!IM()&&d.shiftKey&&s!==Xk.Vertical&&(h=d.deltaY*p,m=0),r.translateBy(n,-(h/f)*a,-(m/f)*a,{internal:!0});const g=DH(n.property("__zoom"));clearTimeout(e.panScrollTimeout),e.isPanScrolling?(c?.(d,g),e.panScrollTimeout=setTimeout(()=>{u?.(d,g),e.isPanScrolling=!1},150)):(e.isPanScrolling=!0,l?.(d,g))}}function jGn({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(r,s){const a=r.type==="wheel",i=!t&&a&&!r.ctrlKey,l=uj(r,e);if(r.ctrlKey&&a&&l&&r.preventDefault(),i||l)return null;r.preventDefault(),n.call(this,r,s)}}function TGn({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return r=>{if(r.sourceEvent?.internal)return;const s=DH(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 NGn({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:r,onPanZoom:s}){return a=>{e.usedRightMouseButton=!!(n&&ESt(t,e.mouseButton??0)),a.sourceEvent?.sync||r([a.transform.x,a.transform.y,a.transform.k]),s&&!a.sourceEvent?.internal&&s?.(a.sourceEvent,DH(a.transform))}}function IGn({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:r,onPanZoomEnd:s,onPaneContextMenu:a}){return i=>{if(!i.sourceEvent?.internal&&(e.isZoomingOrPanning=!1,a&&ESt(t,e.mouseButton??0)&&!e.usedRightMouseButton&&i.sourceEvent&&a(i.sourceEvent),e.usedRightMouseButton=!1,r(!1),s)){const l=DH(i.transform);e.prevViewport=l,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{s?.(i.sourceEvent,l)},n?150:0)}}}function AGn({zoomActivationKeyPressed:e,zoomOnScroll:t,zoomOnPinch:n,panOnDrag:r,panOnScroll:s,zoomOnDoubleClick:a,userSelectionActive:i,noWheelClassName:l,noPanClassName:c,lib:u,connectionInProgress:d}){return f=>{const p=e||t,h=n&&f.ctrlKey,m=f.type==="wheel";if(f.button===1&&f.type==="mousedown"&&(uj(f,`${u}-flow__node`)||uj(f,`${u}-flow__edge`)))return!0;if(!r&&!p&&!s&&!a&&!n||i||d&&!m||uj(f,l)&&m||uj(f,c)&&(!m||s&&m&&!e)||!n&&f.ctrlKey&&m)return!1;if(!n&&f.type==="touchstart"&&f.touches?.length>1)return f.preventDefault(),!1;if(!p&&!s&&!h&&m||!r&&(f.type==="mousedown"||f.type==="touchstart")||Array.isArray(r)&&!r.includes(f.button)&&f.type==="mousedown")return!1;const g=Array.isArray(r)&&r.includes(f.button)||!f.button||f.button<=1;return(!f.ctrlKey||m)&&g}}function RGn({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=tSt().scaleExtent([t,n]).translateExtent(r),p=Sp(e).call(f);x({x:s.x,y:s.y,zoom:WT(s.zoom,t,n)},[[0,0],[d.width,d.height]],r);const h=p.on("wheel.zoom"),m=p.on("dblclick.zoom");f.wheelDelta(jSt);function g(A,R){return p?new Promise(L=>{f?.interpolate(R?.interpolate==="linear"?cx:I8).transform(ste(p,R?.duration,R?.ease,()=>L(!0)),A)}):Promise.resolve(!1)}function y({noWheelClassName:A,noPanClassName:R,onPaneContextMenu:L,userSelectionActive:D,panOnScroll:B,panOnDrag:H,panOnScrollMode:F,panOnScrollSpeed:z,preventScrolling:q,zoomOnPinch:M,zoomOnScroll:G,zoomOnDoubleClick:V,zoomActivationKeyPressed:$,lib:U,onTransformChange:Z,connectionInProgress:K,paneClickDistance:ee,selectionOnDrag:te}){D&&!u.isZoomingOrPanning&&b();const J=B&&!$&&!D;f.clickDistance(te?1/0:!gg(ee)||ee<0?0:ee);const ae=J?EGn({zoomPanValues:u,noWheelClassName:A,d3Selection:p,d3Zoom:f,panOnScrollMode:F,panOnScrollSpeed:z,zoomOnPinch:M,onPanZoomStart:i,onPanZoom:a,onPanZoomEnd:l}):jGn({noWheelClassName:A,preventScrolling:q,d3ZoomHandler:h});if(p.on("wheel.zoom",ae,{passive:!1}),!D){const Y=TGn({zoomPanValues:u,onDraggingChange:c,onPanZoomStart:i});f.on("start",Y);const ne=NGn({zoomPanValues:u,panOnDrag:H,onPaneContextMenu:!!L,onPanZoom:a,onTransformChange:Z});f.on("zoom",ne);const fe=IGn({zoomPanValues:u,panOnDrag:H,panOnScroll:B,onPaneContextMenu:L,onPanZoomEnd:l,onDraggingChange:c});f.on("end",fe)}const de=AGn({zoomActivationKeyPressed:$,panOnDrag:H,zoomOnScroll:G,panOnScroll:B,zoomOnDoubleClick:V,zoomOnPinch:M,userSelectionActive:D,noPanClassName:R,noWheelClassName:A,lib:U,connectionInProgress:K});f.filter(de),V?p.on("dblclick.zoom",m):p.on("dblclick.zoom",null)}function b(){f.on("zoom",null)}async function x(A,R,L){const D=rte(A),B=f?.constrain()(D,R,L);return B&&await g(B),new Promise(H=>H(B))}async function S(A,R){const L=rte(A);return await g(L,R),new Promise(D=>D(L))}function k(A){if(p){const R=rte(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?eSt(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"?cx:I8).scaleTo(ste(p,R?.duration,R?.ease,()=>L(!0)),A)}):Promise.resolve(!1)}function E(A,R){return p?new Promise(L=>{f?.interpolate(R?.interpolate==="linear"?cx:I8).scaleBy(ste(p,R?.duration,R?.ease,()=>L(!0)),A)}):Promise.resolve(!1)}function j(A){f?.scaleExtent(A)}function N(A){f?.translateExtent(A)}function I(A){const R=!gg(A)||A<0?0:A;f?.clickDistance(R)}return{update:y,destroy:b,setViewport:S,setViewportConstrained:x,getViewport:_,scaleTo:C,scaleBy:E,setScaleExtent:j,setTranslateExtent:N,syncViewport:k,setClickDistance:I}}var QT;(function(e){e.Line="line",e.Handle="handle"})(QT||(QT={}));function PGn({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 a9e(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 q0(e,t){return Math.max(0,t-e)}function H0(e,t){return Math.max(0,e-t)}function aF(e,t,n){return Math.max(0,t-e,e-n)}function i9e(e,t){return e?!t:t}function $Gn(e,t,n,r,s,a,i,l){let{affectsX:c,affectsY:u}=t;const{isHorizontal:d,isVertical:f}=t,p=d&&f,{xSnapped:h,ySnapped:m}=n,{minWidth:g,maxWidth:y,minHeight:b,maxHeight:x}=r,{x:S,y:k,width:_,height:C,aspectRatio:E}=e;let j=Math.floor(d?h-e.pointerX:0),N=Math.floor(f?m-e.pointerY:0);const I=_+(c?-j:j),A=C+(u?-N:N),R=-a[0]*_,L=-a[1]*C;let D=aF(I,g,y),B=aF(A,b,x);if(i){let z=0,q=0;c&&j<0?z=q0(S+j+R,i[0][0]):!c&&j>0&&(z=H0(S+I+R,i[1][0])),u&&N<0?q=q0(k+N+L,i[0][1]):!u&&N>0&&(q=H0(k+A+L,i[1][1])),D=Math.max(D,z),B=Math.max(B,q)}if(l){let z=0,q=0;c&&j>0?z=H0(S+j,l[0][0]):!c&&j<0&&(z=q0(S+I,l[1][0])),u&&N>0?q=H0(k+N,l[0][1]):!u&&N<0&&(q=q0(k+A,l[1][1])),D=Math.max(D,z),B=Math.max(B,q)}if(s){if(d){const z=aF(I/E,b,x)*E;if(D=Math.max(D,z),i){let q=0;!c&&!u||c&&!u&&p?q=H0(k+L+I/E,i[1][1])*E:q=q0(k+L+(c?j:-j)/E,i[0][1])*E,D=Math.max(D,q)}if(l){let q=0;!c&&!u||c&&!u&&p?q=q0(k+I/E,l[1][1])*E:q=H0(k+(c?j:-j)/E,l[0][1])*E,D=Math.max(D,q)}}if(f){const z=aF(A*E,g,y)/E;if(B=Math.max(B,z),i){let q=0;!c&&!u||u&&!c&&p?q=H0(S+A*E+R,i[1][0])/E:q=q0(S+(u?N:-N)*E+R,i[0][0])/E,B=Math.max(B,q)}if(l){let q=0;!c&&!u||u&&!c&&p?q=q0(S+A*E,l[1][0])/E:q=H0(S+(u?N:-N)*E,l[0][0])/E,B=Math.max(B,q)}}}N=N+(N<0?B:-B),j=j+(j<0?D:-D),s&&(p?I>A*E?N=(i9e(c,u)?-j:j)/E:j=(i9e(c,u)?-N:N)*E:d?(N=j/E,u=c):(j=N*E,c=u));const H=c?S+j:S,F=u?k+N:k;return{width:_+(c?-j:j),height:C+(u?-N:N),x:a[0]*j*(c?-1:1)+H,y:a[1]*N*(u?-1:1)+F}}const TSt={width:0,height:0,x:0,y:0},MGn={...TSt,pointerX:0,pointerY:0,aspectRatio:1};function DGn(e){return[[0,0],[e.measured.width,e.measured.height]]}function LGn(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 FGn({domNode:e,nodeId:t,getStoreItems:n,onChange:r,onEnd:s}){const a=Sp(e);let i={controlDirection:a9e("bottom-right"),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};function l({controlPosition:u,boundaries:d,keepAspectRatio:f,resizeDirection:p,onResizeStart:h,onResize:m,onResizeEnd:g,shouldResize:y}){let b={...TSt},x={...MGn};i={boundaries:d,resizeDirection:p,keepAspectRatio:f,controlDirection:a9e(u)};let S,k=null,_=[],C,E,j,N=!1;const I=z1t().on("start",A=>{const{nodeLookup:R,transform:L,snapGrid:D,snapToGrid:B,nodeOrigin:H,paneDomNode:F}=n();if(S=R.get(t),!S)return;k=F?.getBoundingClientRect()??null;const{xSnapped:z,ySnapped:q}=h2(A.sourceEvent,{transform:L,snapGrid:D,snapToGrid:B,containerBounds:k});b={width:S.measured.width??0,height:S.measured.height??0,x:S.position.x??0,y:S.position.y??0},x={...b,pointerX:z,pointerY:q,aspectRatio:b.width/b.height},C=void 0,S.parentId&&(S.extent==="parent"||S.expandParent)&&(C=R.get(S.parentId),E=C&&S.extent==="parent"?DGn(C):void 0),_=[],j=void 0;for(const[M,G]of R)if(G.parentId===t&&(_.push({id:M,position:{...G.position},extent:G.extent}),G.extent==="parent"||G.expandParent)){const V=LGn(G,S,G.origin??H);j?j=[[Math.min(V[0][0],j[0][0]),Math.min(V[0][1],j[0][1])],[Math.max(V[1][0],j[1][0]),Math.max(V[1][1],j[1][1])]]:j=V}h?.(A,{...b})}).on("drag",A=>{const{transform:R,snapGrid:L,snapToGrid:D,nodeOrigin:B}=n(),H=h2(A.sourceEvent,{transform:R,snapGrid:L,snapToGrid:D,containerBounds:k}),F=[];if(!S)return;const{x:z,y:q,width:M,height:G}=b,V={},$=S.origin??B,{width:U,height:Z,x:K,y:ee}=$Gn(x,i.controlDirection,H,i.boundaries,i.keepAspectRatio,$,E,j),te=U!==M,J=Z!==G,ae=K!==z&&te,de=ee!==q&&J;if(!ae&&!de&&!te&&!J)return;if((ae||de||$[0]===1||$[1]===1)&&(V.x=ae?K:b.x,V.y=de?ee:b.y,b.x=V.x,b.y=V.y,_.length>0)){const he=K-z,le=ee-q;for(const ue of _)ue.position={x:ue.position.x-he+$[0]*(U-M),y:ue.position.y-le+$[1]*(Z-G)},F.push(ue)}if((te||J)&&(V.width=te&&(!i.resizeDirection||i.resizeDirection==="horizontal")?U:b.width,V.height=J&&(!i.resizeDirection||i.resizeDirection==="vertical")?Z:b.height,b.width=V.width,b.height=V.height),C&&S.expandParent){const he=$[0]*(V.width??0);V.x&&V.x<he&&(b.x=he,x.x=x.x-(V.x-he));const le=$[1]*(V.height??0);V.y&&V.y<le&&(b.y=le,x.y=x.y-(V.y-le))}const Y=PGn({width:b.width,prevWidth:M,height:b.height,prevHeight:G,affectsX:i.controlDirection.affectsX,affectsY:i.controlDirection.affectsY}),ne={...b,direction:Y};y?.(A,ne)!==!1&&(N=!0,m?.(A,ne),r(V,F))}).on("end",A=>{N&&(g?.(A,{...b}),s?.({...b}),N=!1)});a.call(I)}function c(){a.on(".drag",null)}return{update:l,destroy:c}}const zGn={},o9e=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:()=>{(zGn?"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},BGn=e=>e?o9e(e):o9e,{useDebugValue:UGn}=Fe,{useSyncExternalStoreWithSelector:VGn}=iOn,qGn=e=>e;function NSt(e,t=qGn,n){const r=VGn(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return UGn(r),r}const l9e=(e,t)=>{const n=BGn(e),r=(s,a=t)=>NSt(n,s,a);return Object.assign(r,n),r},HGn=(e,t)=>e?l9e(e,t):l9e;function io(e,t){if(Object.is(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(const[r,s]of e)if(!Object.is(s,t.get(r)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const r of e)if(!t.has(r))return!1;return!0}const n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(const r of n)if(!Object.prototype.hasOwnProperty.call(t,r)||!Object.is(e[r],t[r]))return!1;return!0}const LH=v.createContext(null),WGn=LH.Provider,ISt=xy.error001();function Bs(e,t){const n=v.useContext(LH);if(n===null)throw new Error(ISt);return NSt(n,e,t)}function jo(){const e=v.useContext(LH);if(e===null)throw new Error(ISt);return v.useMemo(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}const c9e={display:"none"},ZGn={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},ASt="react-flow__node-desc",RSt="react-flow__edge-desc",GGn="react-flow__aria-live",QGn=e=>e.ariaLiveMessage,YGn=e=>e.ariaLabelConfig;function KGn({rfId:e}){const t=Bs(QGn);return o.jsx("div",{id:`${GGn}-${e}`,"aria-live":"assertive","aria-atomic":"true",style:ZGn,children:t})}function XGn({rfId:e,disableKeyboardA11y:t}){const n=Bs(YGn);return o.jsxs(o.Fragment,{children:[o.jsx("div",{id:`${ASt}-${e}`,style:c9e,children:t?n["node.a11yDescription.default"]:n["node.a11yDescription.keyboardDisabled"]}),o.jsx("div",{id:`${RSt}-${e}`,style:c9e,children:n["edge.a11yDescription.default"]}),!t&&o.jsx(KGn,{rfId:e})]})}const U3=v.forwardRef(({position:e="top-left",children:t,className:n,style:r,...s},a)=>{const i=`${e}`.split("-");return o.jsx("div",{className:Ul(["react-flow__panel",n,...i]),style:r,ref:a,...s,children:t})});U3.displayName="Panel";function JGn({proOptions:e,position:t="bottom-right"}){return e?.hideAttribution?null:o.jsx(U3,{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 eQn=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}},iF=e=>e.id;function tQn(e,t){return io(e.selectedNodes.map(iF),t.selectedNodes.map(iF))&&io(e.selectedEdges.map(iF),t.selectedEdges.map(iF))}function nQn({onSelectionChange:e}){const t=jo(),{selectedNodes:n,selectedEdges:r}=Bs(eQn,tQn);return v.useEffect(()=>{const s={nodes:n,edges:r};e?.(s),t.getState().onSelectionChangeHandlers.forEach(a=>a(s))},[n,r,e]),null}const rQn=e=>!!e.onSelectionChangeHandlers;function sQn({onSelectionChange:e}){const t=Bs(rQn);return e||t?o.jsx(nQn,{onSelectionChange:e}):null}const uge=typeof window<"u"?v.useLayoutEffect:v.useEffect,PSt=[0,0],aQn={x:0,y:0,zoom:1},iQn=["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"],u9e=[...iQn,"rfId"],oQn=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}),d9e={translateExtent:EM,nodeOrigin:PSt,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:"nopan",rfId:"1"};function lQn(e){const{setNodes:t,setEdges:n,setMinZoom:r,setMaxZoom:s,setTranslateExtent:a,setNodeExtent:i,reset:l,setDefaultNodesAndEdges:c}=Bs(oQn,io),u=jo();uge(()=>(c(e.defaultNodes,e.defaultEdges),()=>{d.current=d9e,l()}),[]);const d=v.useRef(d9e);return uge(()=>{for(const f of u9e){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:KZn(p)}):f==="fitView"?u.setState({fitViewQueued:p}):f==="fitViewOptions"?u.setState({fitViewOptions:p}):u.setState({[f]:p})))}d.current=e},u9e.map(f=>e[f])),null}function f9e(){return typeof window>"u"||!window.matchMedia?null:window.matchMedia("(prefers-color-scheme: dark)")}function cQn(e){const[t,n]=v.useState(e==="system"?null:e);return v.useEffect(()=>{if(e!=="system"){n(e);return}const r=f9e(),s=()=>n(r?.matches?"dark":"light");return s(),r?.addEventListener("change",s),()=>{r?.removeEventListener("change",s)}},[e]),t!==null?t:f9e()?.matches?"dark":"light"}const p9e=typeof document<"u"?document:null;function AM(e=null,t={target:p9e,actInsideInputWithModifier:!0}){const[n,r]=v.useState(!1),s=v.useRef(!1),a=v.useRef(new Set([])),[i,l]=v.useMemo(()=>{if(e!==null){const u=(Array.isArray(e)?e:[e]).filter(f=>typeof f=="string").map(f=>f.replace("+",`
|
|
338
338
|
`).replace(`
|
|
339
339
|
|
|
340
340
|
`,`
|
|
@@ -718,7 +718,7 @@ Token usage: ${n} input + ${r} output = ${s} total`:`The model stopped generatin
|
|
|
718
718
|
}
|
|
719
719
|
]`})]})]})}function jis({errors:e,maxErrors:t=5}){if(e.length===0)return null;const n=e.slice(0,t),r=e.length-t;return o.jsxs("div",{className:"bg-accent2/10 border-accent2/30 rounded-md border p-3",children:[o.jsxs("div",{className:"text-accent2 mb-2 flex items-center gap-2",children:[o.jsx(qe,{children:o.jsx(yf,{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 Tis({datasetId:e,open:t,onOpenChange:n,onSuccess:r}){const[s,a]=v.useState("upload"),[i,l]=v.useState(null),[c,u]=v.useState({current:0,total:0}),[d,f]=v.useState(null),[p,h]=v.useState(!1),{parseFile:m,isParsing:g,error:y}=tas(),{batchInsertItems:b}=Ni(),x=v.useCallback(async I=>{try{const A=await m(I);l(A),a("preview")}catch{}},[m]),S=v.useCallback(async()=>{if(!i||i.items.length===0)return;a("importing"),h(!0);const{items:I}=i;u({current:0,total:I.length});try{await b.mutateAsync({datasetId:e,items:I.map(A=>({input:A.input,groundTruth:A.groundTruth,metadata:A.metadata}))}),f({success:I.length,errors:0})}catch{f({success:0,errors:I.length})}u({current:I.length,total:I.length}),h(!1),a("complete")},[i,b,e]),k=v.useCallback(()=>{n(!1),r?.(),d&&d.success>0&&Le.success(`Imported ${d.success} item${d.success!==1?"s":""}`),setTimeout(()=>{a("upload"),l(null),u({current:0,total:0}),f(null)},150)},[n,r,d]),_=v.useCallback(()=>{p||(n(!1),setTimeout(()=>{a("upload"),l(null),u({current:0,total:0}),f(null)},150))},[p,n]),C=i&&i.items.length>0&&i.errors.length===0,E=()=>{switch(s){case"upload":return o.jsx(Eis,{onFileSelect:x,isParsing:g,error:y?.message});case"preview":return i?o.jsx("div",{className:"flex flex-col gap-4",children:i.errors.length>0?o.jsxs(o.Fragment,{children:[o.jsx(jis,{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(Cis,{items:i.items,maxRows:5})]})}):null;case"importing":return o.jsxs("div",{className:"flex flex-col items-center gap-4 py-8",children:[o.jsx(Xt,{}),o.jsxs("div",{className:"text-center",children:[o.jsx("div",{className:"text-neutral1 text-lg font-medium",children:"Importing items..."}),o.jsxs("div",{className:"text-neutral4 mt-1 text-sm",children:[c.current," of ",c.total]})]})]});case"complete":return o.jsxs("div",{className:"flex flex-col items-center gap-4 py-8",children:[o.jsx("div",{className:"text-4xl",children:d&&d.errors===0?"✓":"⚠"}),o.jsxs("div",{className:"text-center",children:[o.jsx("div",{className:"text-neutral1 text-lg font-medium",children:"Import Complete"}),o.jsxs("div",{className:"text-neutral4 mt-1 text-sm",children:[d?.success??0," item",d?.success!==1?"s":""," imported",d&&d.errors>0&&o.jsxs("span",{className:"text-accent2",children:[" ","(",d.errors," error",d.errors!==1?"s":"",")"]})]})]})]})}},j=()=>{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(br,{open:t,onOpenChange:_,children:o.jsxs(xr,{className:"max-h-[90vh] max-w-2xl",children:[o.jsxs(wr,{children:[o.jsx(gr,{children:N[s]}),o.jsx(Ks,{children:"Import dataset items from a JSON file."})]}),o.jsx($r,{className:"max-h-[50vh] min-h-[200px] overflow-y-auto",children:E()}),o.jsx(Tc,{className:"flex justify-end gap-2 px-6 pt-4",children:j()})]})})}const gIe=e=>{const t=We(),{data:n}=kD(e),r=n?.experiments;return mt({queryKey:["dataset-review-items",e,r?.map(s=>s.id)],queryFn:async()=>!r||r.length===0?[]:(await Promise.all(r.map(async a=>{if(!a.datasetId)return[];try{const{results:i}=await t.listDatasetExperimentResults(a.datasetId,a.id);return i.filter(l=>l.status==="needs-review").map(l=>({id:l.id,input:l.input,output:l.output,error:l.error,itemId:l.itemId,experimentId:l.experimentId,datasetId:a.datasetId??void 0,traceId:l.traceId??void 0,scores:l.scores?Object.fromEntries(l.scores.map(c=>[c.scorerId,c.score??0])):{},tags:l.tags??[],comment:""}))}catch{return[]}}))).flat(),enabled:!!e&&!!r&&r.length>0,refetchOnWindowFocus:!1})},Nis=e=>{const t=We(),{data:n}=kD(e),r=n?.experiments;return mt({queryKey:["dataset-completed-items",e,r?.map(s=>s.id)],queryFn:async()=>!r||r.length===0?[]:(await Promise.all(r.map(async a=>{if(!a.datasetId)return[];try{const{results:i}=await t.listDatasetExperimentResults(a.datasetId,a.id);return i.filter(l=>l.status==="complete").map(l=>({id:l.id,input:l.input,output:l.output,error:l.error,itemId:l.itemId,experimentId:l.experimentId,datasetId:a.datasetId??void 0,traceId:l.traceId??void 0,scores:l.scores?Object.fromEntries(l.scores.map(c=>[c.scorerId,c.score??0])):{},tags:l.tags??[],comment:""}))}catch{return[]}}))).flat(),enabled:!!e&&!!r&&r.length>0,refetchOnWindowFocus:!1})};function Iis(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 v7t({datasetId:e,experimentId:t,featuredItemId:n}){const r=We(),{data:s}=Yx(e),{data:a,isLoading:i}=gIe(e),{data:l,isLoading:c}=Nis(e),u=v.useMemo(()=>t?(a??[]).filter(Te=>Te.experimentId===t):a,[a,t]),d=v.useMemo(()=>t?(l??[]).filter(Te=>Te.experimentId===t):l,[l,t]),{updateExperimentResult:f}=Ni(),[p,h]=v.useState(n??null);v.useEffect(()=>{n!==void 0&&h(n)},[n]);const[m,g]=v.useState(null),[y,b]=v.useState(new Set),[x,S]=v.useState(!1),[k,_]=v.useState(!1),[C,E]=v.useState(!1),[j,N]=v.useState(""),[I,A]=v.useState(""),[R,L]=v.useState(""),[D,B]=v.useState([]),[H,F]=v.useState(!1),[z,q]=v.useState(null),M=v.useMemo(()=>z??u??[],[z,u]);v.useEffect(()=>{q(null)},[e,t]),v.useEffect(()=>{u&&z===null&&q(u)},[u,z]);const G=v.useMemo(()=>{const Te=new Set;if(s?.tags)for(const Ee of s.tags)Te.add(Ee);for(const Ee of M)for(const je of Ee.tags)Te.add(je);return[...Te].sort()},[s,M]),V=v.useCallback(Te=>{!s||!e||(s.tags??[]).includes(Te)},[s,e]),$=v.useMemo(()=>m?m==="__untagged__"?M.filter(Te=>Te.tags.length===0):M.filter(Te=>Te.tags.includes(m)):M,[M,m]),U=v.useMemo(()=>{const Te=new Map;for(const Ee of M)for(const je of Ee.tags)Te.set(je,(Te.get(je)??0)+1);return[...Te.entries()].sort((Ee,je)=>je[1]-Ee[1])},[M]),Z=v.useMemo(()=>M.filter(Te=>Te.tags.length===0).length,[M]),K=v.useMemo(()=>{let Te=0;return m&&Te++,x&&Te++,Te},[m,x]),ee=v.useCallback((Te,Ee)=>{q(Oe=>(Oe??[]).map(Pe=>Pe.id===Te?{...Pe,tags:Ee}:Pe));const je=M.find(Oe=>Oe.id===Te);je?.experimentId&&je?.datasetId&&f.mutate({datasetId:je.datasetId,experimentId:je.experimentId,resultId:je.id,tags:Ee})},[M,f]),te=v.useCallback((Te,Ee)=>{const je=M.find(Oe=>Oe.id===Te);je?.traceId&&Ee!==void 0&&r.createFeedback({feedback:{traceId:je.traceId,source:"studio",feedbackSource:"studio",feedbackType:"rating",value:Ee==="positive"?1:-1,experimentId:je.experimentId??void 0,sourceId:je.id}}).catch(()=>{}),q(Oe=>(Oe??[]).map(Pe=>Pe.id===Te?{...Pe,rating:Ee}:Pe))},[M,r]),J=v.useCallback((Te,Ee)=>{const je=M.find(Oe=>Oe.id===Te);je?.traceId&&r.createFeedback({feedback:{traceId:je.traceId,source:"studio",feedbackSource:"studio",feedbackType:"comment",value:Ee,comment:Ee,experimentId:je.experimentId??void 0,sourceId:je.id}}).catch(()=>{}),q(Oe=>(Oe??[]).map(Pe=>Pe.id===Te?{...Pe,comment:Ee}:Pe))},[M,r]),ae=v.useCallback(Te=>{const Ee=M.find(je=>je.id===Te);q(je=>(je??[]).filter(Oe=>Oe.id!==Te)),b(je=>{const Oe=new Set(je);return Oe.delete(Te),Oe}),p===Te&&h(null),Ee?.experimentId&&Ee?.datasetId&&f.mutate({datasetId:Ee.datasetId,experimentId:Ee.experimentId,resultId:Ee.id,status:null})},[M,f,p]),de=v.useCallback(Te=>{const Ee=M.find(je=>je.id===Te);q(je=>(je??[]).filter(Oe=>Oe.id!==Te)),b(je=>{const Oe=new Set(je);return Oe.delete(Te),Oe}),p===Te&&h(null),Ee?.experimentId&&Ee?.datasetId&&f.mutate({datasetId:Ee.datasetId,experimentId:Ee.experimentId,resultId:Ee.id,status:"complete"})},[M,f,p]),Y=v.useMemo(()=>{const Te=x?d??[]:$;return!x||!m?Te:m==="__untagged__"?Te.filter(Ee=>Ee.tags.length===0):Te.filter(Ee=>Ee.tags.includes(m))},[x,d,$,m]),ne=x?c:!1,fe=v.useMemo(()=>new Set(Y.map(Te=>Te.id)),[Y]),he=v.useMemo(()=>[...y].filter(Te=>fe.has(Te)).length,[y,fe]),le=Y.length>0&&he===Y.length,ue=he>0&&!le,be=v.useCallback(Te=>{b(Ee=>{const je=new Set(Ee);return je.has(Te)?je.delete(Te):je.add(Te),je})},[]),xe=v.useCallback(()=>{b(le?new Set:new Set(Y.map(Te=>Te.id)))},[le,Y]),Ce=v.useCallback(Te=>{for(const Ee of y){const je=M.find(Oe=>Oe.id===Ee);je&&!je.tags.includes(Te)&&ee(Ee,[...je.tags,Te])}},[M,y,ee]),ke=v.useCallback(Te=>{for(const Ee of y){const je=M.find(Oe=>Oe.id===Ee);je&&je.tags.includes(Te)&&ee(Ee,je.tags.filter(Oe=>Oe!==Te))}},[M,y,ee]),Ae=v.useCallback(()=>{for(const Te of y)de(Te);b(new Set)},[y,de]),Me=v.useCallback(()=>{for(const Te of y)ae(Te);b(new Set)},[y,ae]),ce=v.useCallback(()=>{N(""),E(!0)},[]),re=v.useCallback(async()=>{if(!(!I||!R)){_(!0),E(!1);try{const Te=M.filter(je=>y.has(je.id));if(Te.length===0){_(!1);return}const Ee=await r.clusterFailures({modelId:`${I}/${R}`,items:Te.map(je=>({id:je.id,input:je.input,output:je.output??void 0,error:typeof je.error=="string"?je.error:je.error?String(je.error):void 0,scores:je.scores,existingTags:je.tags.length>0?je.tags:void 0})),availableTags:G.length>0?G:void 0,prompt:j||void 0});Ee.proposedTags&&Ee.proposedTags.length>0&&(B(Ee.proposedTags.map(je=>({...je,accepted:!0}))),F(!0))}catch(Te){console.error("Analysis failed:",Te)}finally{_(!1)}}},[I,R,M,y,r,G,j]),se=v.useCallback(()=>{for(const Te of D){if(!Te.accepted)continue;const Ee=M.find(je=>je.id===Te.itemId);if(Ee){const je=[...new Set([...Ee.tags,...Te.tags])];ee(Ee.id,je)}}F(!1)},[D,M,ee]),me=v.useCallback(Te=>{h(Ee=>Ee===Te?null:Te)},[]),we=v.useMemo(()=>p?Y.find(Te=>Te.id===p)??null:null,[p,Y]),Ne=p?Y.findIndex(Te=>Te.id===p):-1,Re=Ne>0?()=>h(Y[Ne-1].id):void 0,Qe=Ne>=0&&Ne<Y.length-1?()=>h(Y[Ne+1].id):void 0,Ze="auto minmax(15rem,1fr) 10rem 8rem 6rem 6rem";return i?o.jsx("div",{className:"flex flex-1 items-center justify-center",children:o.jsx(Xt,{className:"h-6 w-6"})}):o.jsxs("div",{className:"flex min-h-0 flex-1 overflow-hidden",children:[o.jsx(br,{open:C,onOpenChange:E,children:o.jsxs(xr,{children:[o.jsxs(wr,{children:[o.jsx(gr,{children:"Analyze Items"}),o.jsx(Ks,{children:"Use an LLM to automatically suggest tags for the selected items."})]}),o.jsxs("div",{className:"space-y-4 py-2",children:[o.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[o.jsxs("div",{children:[o.jsx(Dt,{className:"mb-1 block text-xs",children:"Provider"}),o.jsx(qy,{value:I,onValueChange:A})]}),o.jsxs("div",{children:[o.jsx(Dt,{className:"mb-1 block text-xs",children:"Model"}),o.jsx(Hy,{llmId:I,value:R,onValueChange:L})]})]}),o.jsxs(ye,{variant:"ui-xs",className:"text-neutral3",children:[y.size," item",y.size!==1?"s":""," will be analyzed"]}),o.jsxs("div",{children:[o.jsx(Dt,{className:"text-xs",children:"Instructions (optional)"}),o.jsx($l,{value:j,onChange:Te=>N(Te.target.value),placeholder:"E.g., Focus on safety issues and factual errors...",rows:3,className:"mt-1 text-xs"})]})]}),o.jsxs(Tc,{children:[o.jsx(oe,{variant:"outline",onClick:()=>E(!1),children:"Cancel"}),o.jsxs(oe,{onClick:re,disabled:!I||!R||k,children:[k?o.jsx(Xt,{className:"mr-1 h-4 w-4"}):null,"Analyze"]})]})]})}),o.jsx(br,{open:H,onOpenChange:F,children:o.jsxs(xr,{className:"max-h-[80vh] max-w-2xl overflow-y-auto",children:[o.jsxs(wr,{children:[o.jsx(gr,{children:"Review Proposed Tags"}),o.jsxs(Ks,{children:[D.filter(Te=>Te.accepted).length," of ",D.length," proposals selected"]})]}),o.jsx("div",{className:"space-y-3 py-2",children:D.map((Te,Ee)=>{const je=M.find(Oe=>Oe.id===Te.itemId);return o.jsx("div",{className:X("p-3 border rounded-lg",!Te.accepted&&"opacity-50"),children:o.jsxs("div",{className:"flex items-start gap-2",children:[o.jsx(zo,{checked:Te.accepted,onCheckedChange:Oe=>B(Pe=>Pe.map((Ue,Ke)=>Ke===Ee?{...Ue,accepted:!!Oe}:Ue))}),o.jsxs("div",{className:"min-w-0 flex-1",children:[o.jsx(ye,{variant:"ui-xs",className:"text-neutral4 block truncate",children:je?typeof je.input=="string"?je.input.slice(0,100):JSON.stringify(je.input).slice(0,100):Te.itemId}),o.jsx("div",{className:"mt-1.5 flex flex-wrap gap-1",children:Te.tags.map((Oe,Pe)=>o.jsx(a9t,{tag:Oe,onRename:Ue=>B(Ke=>Ke.map((tt,Pt)=>Pt===Ee?{...tt,tags:tt.tags.map((Ot,St)=>St===Pe?Ue:Ot)}:tt)),onRemove:()=>B(Ue=>Ue.map((Ke,tt)=>tt===Ee?{...Ke,tags:Ke.tags.filter((Pt,Ot)=>Ot!==Pe)}:Ke))},`${Oe}-${Pe}`))}),Te.reason&&o.jsx(ye,{variant:"ui-xs",className:"text-neutral3 mt-1 block italic",children:Te.reason})]})]})},Te.itemId)})}),o.jsxs(Tc,{children:[o.jsx(oe,{variant:"outline",onClick:()=>F(!1),children:"Cancel"}),o.jsxs(oe,{onClick:se,disabled:D.filter(Te=>Te.accepted).length===0,children:["Accept ",D.filter(Te=>Te.accepted).length," proposals"]})]})]})}),o.jsxs("div",{className:X("grid w-full h-full grid-cols-1 gap-4 overflow-y-auto",we&&"grid-cols-[1fr_1fr]"),children:[o.jsxs("div",{className:"grid w-full content-start gap-8 overflow-y-auto",children:[o.jsxs("div",{className:"flex w-full flex-wrap items-center justify-between gap-4 gap-x-6",children:[o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsxs(dt,{children:[o.jsx(dt.Trigger,{asChild:!0,children:o.jsxs(oe,{variant:"outline",size:"md",children:[o.jsx(vit,{}),"Filter",K>0&&o.jsx("span",{className:X("ml-0.5 inline-flex items-center justify-center rounded-full bg-accent1/50 text-neutral5 text-ui-sm w-5 h-5"),children:K})]})}),o.jsxs(dt.Content,{align:"start",className:X("min-w-48"),children:[o.jsxs(dt.Sub,{children:[o.jsxs(dt.SubTrigger,{children:["Status",x&&o.jsx("span",{className:X("ml-auto text-ui-sm text-accent1"),children:"1"})]}),o.jsxs(dt.SubContent,{children:[o.jsx(dt.CheckboxItem,{checked:!x,onCheckedChange:()=>{S(!1),h(null)},onSelect:Te=>Te.preventDefault(),children:"Review Queue"}),o.jsx(dt.CheckboxItem,{checked:x,onCheckedChange:()=>{S(!0),h(null)},onSelect:Te=>Te.preventDefault(),children:"Completed"})]})]}),o.jsxs(dt.Sub,{children:[o.jsxs(dt.SubTrigger,{children:["Tags",m&&o.jsx("span",{className:X("ml-auto text-ui-sm text-accent1"),children:"1"})]}),o.jsxs(dt.SubContent,{children:[o.jsx(dt.CheckboxItem,{checked:!m,onCheckedChange:()=>g(null),onSelect:Te=>Te.preventDefault(),children:"All"}),Z>0&&o.jsx(dt.CheckboxItem,{checked:m==="__untagged__",onCheckedChange:()=>g(m==="__untagged__"?null:"__untagged__"),onSelect:Te=>Te.preventDefault(),children:"Untagged"}),U.length>0&&o.jsx(dt.Separator,{}),U.map(([Te])=>o.jsx(dt.CheckboxItem,{checked:m===Te,onCheckedChange:()=>g(m===Te?null:Te),onSelect:Ee=>Ee.preventDefault(),children:Te},Te))]})]}),K>0&&o.jsxs(o.Fragment,{children:[o.jsx(dt.Separator,{}),o.jsxs(dt.Item,{onSelect:()=>{g(null),S(!1),h(null)},children:[o.jsx(bs,{}),"Clear all filters"]})]})]})]}),K>0&&o.jsxs(oe,{variant:"outline",size:"md",onClick:()=>{g(null),S(!1),h(null)},children:[o.jsx(bs,{}),"Reset"]})]}),!x&&y.size>0&&o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(s9t,{selectedCount:y.size,vocabulary:G,onApplyTag:Ce,onRemoveTag:ke,onNewTag:Te=>Ce(Te)}),o.jsxs(dt,{children:[o.jsx(dt.Trigger,{asChild:!0,children:o.jsxs(oe,{disabled:k,children:[k?o.jsx(Xt,{className:"h-4 w-4"}):o.jsx(qe,{size:"sm",children:o.jsx(Na,{})}),"Actions"]})}),o.jsxs(dt.Content,{align:"end",children:[o.jsxs(dt.Item,{onSelect:Ae,children:[o.jsx(qe,{size:"sm",children:o.jsx(lO,{})}),"Complete"]}),o.jsxs(dt.Item,{onSelect:Me,children:[o.jsx(qe,{size:"sm",children:o.jsx(uu,{})}),"Remove"]}),o.jsx(dt.Separator,{}),o.jsxs(dt.Item,{onSelect:ce,children:[o.jsx(qe,{size:"sm",children:o.jsx(Eg,{})}),"Analyze"]})]})]})]})]}),ne?o.jsx("div",{className:"flex flex-1 items-center justify-center",children:o.jsx(Xt,{className:"h-6 w-6"})}):Y.length===0?o.jsx("div",{className:"flex flex-1 items-center justify-center",children:o.jsxs("div",{className:"px-8 text-center",children:[o.jsx(ye,{variant:"ui-sm",className:"text-neutral3 block",children:x?"No completed reviews yet":"No items to review"}),o.jsx(ye,{variant:"ui-xs",className:"text-neutral3 mt-2 block",children:x?"Items marked as complete will appear here for auditing.":"When experiment results are flagged for review, they will appear here."})]})}):o.jsxs(ve,{columns:Ze,className:"min-w-0",children:[o.jsxs(ve.Top,{hasLeadingCell:!0,children:[x?o.jsx(ve.TopCell,{children:" "}):o.jsx(ve.TopSelectCell,{checked:le?!0:ue?"indeterminate":!1,onToggle:()=>xe(),"aria-label":"Select all"}),o.jsxs(ve.TopCells,{colStart:2,children:[o.jsx(ve.TopCell,{children:"Input"}),o.jsx(ve.TopCell,{children:"Comment"}),o.jsx(ve.TopCell,{children:"Tags"}),o.jsx(ve.TopCell,{children:"Rating"}),o.jsx(ve.TopCell,{children:"Scores"})]})]}),Y.map(Te=>{const Ee=Te.scores?Object.entries(Te.scores):[],je=p===Te.id,Oe=o.jsxs(o.Fragment,{children:[o.jsx(ve.Cell,{height:"compact",className:"text-neutral4 min-w-0",children:o.jsx("span",{className:"block truncate",children:Iis(Te.input,200)})}),o.jsx(ve.Cell,{height:"compact",className:"min-w-0",children:Te.comment?o.jsx(ye,{variant:"ui-xs",className:"text-neutral3 truncate",children:Te.comment}):o.jsx(ye,{variant:"ui-xs",className:"text-neutral2",children:"—"})}),o.jsx(ve.Cell,{height:"compact",className:"min-w-0",children:Te.tags.length>0?o.jsx(ye,{variant:"ui-xs",className:"text-neutral4 truncate",children:Te.tags.join(", ")}):o.jsx(ye,{variant:"ui-xs",className:"text-neutral2",children:"—"})}),o.jsxs(ve.Cell,{height:"compact",children:[Te.rating==="positive"&&o.jsx(qe,{size:"sm",className:"text-positive1",children:o.jsx(Wbe,{})}),Te.rating==="negative"&&o.jsx(qe,{size:"sm",className:"text-negative1",children:o.jsx(Hbe,{})}),!Te.rating&&o.jsx(ye,{variant:"ui-xs",className:"text-neutral2",children:"—"})]}),o.jsx(ve.Cell,{height:"compact",children:Ee.length>0?o.jsxs("div",{className:"flex items-center gap-1",children:[o.jsx(qe,{size:"sm",className:"text-neutral3",children:o.jsx(nm,{})}),o.jsx(ye,{variant:"ui-xs",className:"text-neutral4 font-mono",children:Ee[0][1].toFixed(2)}),Ee.length>1&&o.jsxs(un,{variant:"default",children:["+",Ee.length-1]})]}):o.jsx(ye,{variant:"ui-xs",className:"text-neutral2",children:"—"})})]});return o.jsxs(ve.RowWrapper,{children:[x?o.jsx(ve.Cell,{height:"compact",className:"justify-items-center px-4",children:o.jsx("div",{role:"img","aria-label":Te.error?"Error":"Success",title:Te.error?"Error":"Success",className:X("w-2 h-2 rounded-full",Te.error?"bg-red-700":"bg-green-600")})}):o.jsx(ve.SelectCell,{checked:y.has(Te.id),onToggle:()=>be(Te.id),"aria-label":`Select item ${Te.id}`}),o.jsx(ve.RowButton,{flushLeft:!0,colStart:2,featured:je,onClick:()=>me(Te.id),children:Oe})]},Te.id)})]})]}),we&&o.jsx(r9t,{item:we,isCompleted:x,tagVocabulary:G,onRate:Te=>te(we.id,Te),onSetTags:Te=>{ee(we.id,Te);for(const Ee of Te)G.includes(Ee)||V(Ee)},onComment:Te=>J(we.id,Te),onRemove:()=>ae(we.id),onComplete:x?void 0:()=>de(we.id),onPrevious:Re,onNext:Qe,onClose:()=>h(null)})]})]})}function Ais({datasetId:e,onAddItemClick:t,onNavigateToDataset:n}){const{navigate:r}=yn(),[s,a]=Ri(),{tab:i,activeVersion:l,handleTabChange:c}=hIe(s,a),[u,d]=v.useState(!1),[f,p]=v.useState(!1),[h,m]=v.useState(!1),[g,y]=v.useState([]),[b,x]=v.useState(!1),[S,k]=v.useState([]),[_,C]=v.useState(!1),[E,j]=v.useState([]),[N,I]=v.useState(0),[A,R]=v.useState(null),[L,D]=v.useState(""),[B]=p1e(L,300),{data:H}=Yx(e),{data:F=[],total:z,isLoading:q,setEndOfListElement:M,isFetchingNextPage:G,hasNextPage:V}=j1(e,B||void 0,l),{total:$}=j1(e,void 0,l),[U,Z]=v.useState({}),{data:K,isLoading:ee}=kD(e,void 0,U),{data:te}=kD(e),{deleteItems:J}=Ni(),ae=K?.experiments??[],de=te?.experiments??[],Y=Ras({hasSearchQuery:!!B,filteredItemsLength:F.length,unfilteredItemsTotal:$,itemsTotal:z}),{data:ne}=gIe(e),fe=ne?.length??0,he=se=>{R(se)},le=()=>{R(null)},ue=se=>{y(se),m(!0)},be=se=>{k(se),x(!0)},xe=se=>{x(se),se||(k([]),I(me=>me+1))},Ce=se=>{r(`/datasets/${e}/items?items=${se.join(",")}`)},ke=se=>{r(`/datasets/${e}/versions?ids=${se.join(",")}`)},Ae=se=>{j(se),C(!0)},Me=async()=>{await J.mutateAsync({datasetId:e,itemIds:E}),Le.success(`Deleted ${E.length} items`),C(!1),j([]),I(se=>se+1)},ce=se=>{m(!1),y([]),I(me=>me+1),n?.(se)},re=se=>{m(se),se||(y([]),I(me=>me+1))};return o.jsxs(o.Fragment,{children:[o.jsxs(Dc,{defaultTab:"items",value:i,onValueChange:c,className:"grid h-full grid-rows-[auto_1fr]",children:[o.jsxs(Mc,{children:[o.jsxs(Rr,{value:"items",children:["Items ",o.jsx(Js,{color:"gray",children:Y})]}),o.jsxs(Rr,{value:"experiments",children:["Experiments",o.jsx(Js,{color:"gray",children:ae.length})]}),o.jsxs(Rr,{value:"review",children:["Review",fe>0&&o.jsx(Js,{color:"orange",children:fe})]})]}),o.jsx(Xr,{value:"items",className:"mt-5 grid overflow-auto pb-0",children:o.jsx(_is,{datasetId:e,items:F,isLoading:q,featuredItemId:A,onItemSelect:he,onItemClose:le,onAddClick:t??(()=>{}),onImportClick:()=>d(!0),onImportJsonClick:()=>p(!0),onBulkDeleteClick:Ae,onCreateDatasetClick:ue,onAddToDatasetClick:be,onCompareItemsClick:Ce,datasetName:H?.name,clearSelectionTrigger:N,setEndOfListElement:M,isFetchingNextPage:G,hasNextPage:V,searchQuery:L,activeSearchQuery:B,onSearchChange:D,currentDatasetVersion:H?.version,onCompareVersionsClick:ke})}),o.jsx(Xr,{value:"experiments",className:"mt-5 grid overflow-auto pb-0",children:o.jsx(Yas,{experiments:ae,allExperiments:de,isLoading:ee,datasetId:e,filters:U,onFiltersChange:Z})}),o.jsx(Xr,{value:"review",className:"mt-2 overflow-auto pb-0",children:o.jsx(v7t,{datasetId:e})})]}),o.jsx(Uas,{datasetId:e,open:u,onOpenChange:d}),o.jsx(Tis,{datasetId:e,open:f,onOpenChange:p}),o.jsx(yas,{open:h,onOpenChange:re,items:g,onSuccess:ce}),o.jsx(bas,{open:b,onOpenChange:xe,items:S,currentDatasetId:e}),o.jsx(At,{open:_,onOpenChange:C,children:o.jsxs(At.Content,{children:[o.jsxs(At.Header,{children:[o.jsx(At.Title,{children:"Delete Items"}),o.jsxs(At.Description,{children:["Are you sure you want to delete ",E.length," item",E.length!==1?"s":"","? This action cannot be undone."]})]}),o.jsxs(At.Footer,{children:[o.jsx(At.Cancel,{children:"Cancel"}),o.jsx(At.Action,{onClick:Me,children:J.isPending?"Deleting...":"Delete"})]})]})})]})}function Ris(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 kae({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 Pis({datasetId:e,open:t,onOpenChange:n,onSuccess:r}){const[s,a]=v.useState("{}"),[i,l]=v.useState(""),[c,u]=v.useState(""),[d,f]=v.useState(""),[p,h]=v.useState(""),[m,g]=v.useState(null),{addItem:y}=Ni(),b=async C=>{C.preventDefault();let E;try{E=JSON.parse(s)}catch{Le.error("Input must be valid JSON");return}let j;if(i.trim())try{j=JSON.parse(i)}catch{Le.error("Ground Truth must be valid JSON");return}let N;if(c.trim())try{N=JSON.parse(c)}catch{Le.error("Expected Trajectory must be valid JSON");return}let I;if(d.trim())try{const R=JSON.parse(d);if(!Array.isArray(R)){Le.error("Tool Mocks must be a JSON array");return}I=R}catch{Le.error("Tool Mocks must be valid JSON");return}let A;if(p.trim())try{A=JSON.parse(p)}catch{Le.error("Request Context must be valid JSON");return}try{await y.mutateAsync({datasetId:e,input:E,groundTruth:j,expectedTrajectory:N,toolMocks:I,requestContext:A}),Le.success("Item added successfully"),g(null),a("{}"),l(""),u(""),f(""),h(""),n(!1),r?.()}catch(R){const L=Ris(R);L?g(L):Le.error(`Failed to add item: ${R instanceof Error?R.message:"Unknown error"}`)}},x=C=>{a(C),m?.field==="input"&&g(null)},S=C=>{l(C),m?.field==="groundTruth"&&g(null)},k=C=>{f(C),m?.field==="toolMocks"&&g(null)},_=()=>{a("{}"),l(""),u(""),f(""),h(""),g(null),n(!1)};return o.jsx(br,{open:t,onOpenChange:n,children:o.jsxs(xr,{className:"max-w-lg",children:[o.jsx(wr,{children:o.jsx(gr,{children:"Add Item"})}),o.jsx($r,{children:o.jsxs("form",{onSubmit:b,className:"space-y-4",children:[o.jsxs("div",{className:"space-y-2",children:[o.jsx(Dt,{htmlFor:"item-input",children:"Input (JSON) *"}),o.jsx(Wr,{value:s,onChange:x,showCopyButton:!1,className:"min-h-[120px]"}),m?.field==="input"&&o.jsx(kae,{field:"input",errors:m.errors})]}),o.jsxs("div",{className:"space-y-2",children:[o.jsx(Dt,{htmlFor:"item-ground-truth",children:"Ground Truth (JSON, optional)"}),o.jsx(Wr,{value:i,onChange:S,showCopyButton:!1,className:"min-h-[80px]"}),m?.field==="groundTruth"&&o.jsx(kae,{field:"groundTruth",errors:m.errors})]}),o.jsxs("div",{className:"space-y-2",children:[o.jsx(Dt,{htmlFor:"item-trajectory",children:"Expected Trajectory (JSON, optional)"}),o.jsx(Wr,{value:c,onChange:u,showCopyButton:!1,className:"min-h-[80px]"})]}),o.jsxs("div",{className:"space-y-2",children:[o.jsx(Dt,{htmlFor:"item-tool-mocks",children:"Tool Mocks (JSON array, optional)"}),o.jsx(Wr,{value:d,onChange:k,showCopyButton:!1,className:"min-h-[80px]"}),m?.field==="toolMocks"&&o.jsx(kae,{field:"toolMocks",errors:m.errors})]}),o.jsxs("div",{className:"space-y-2",children:[o.jsx(Dt,{htmlFor:"item-request-context",children:"Request Context (JSON, optional)"}),o.jsx(Wr,{value:p,onChange:h,showCopyButton:!1,className:"min-h-[80px]"})]}),o.jsxs("div",{className:"flex justify-end gap-2 pt-4",children:[o.jsx(oe,{type:"button",onClick:_,children:"Cancel"}),o.jsx(oe,{type:"submit",variant:"primary",disabled:y.isPending,children:y.isPending?"Adding...":"Add Item"})]})]})})]})})}function $is({item:e}){return o.jsx(ma,{withMargins:!1,children:o.jsxs(ma.Column,{children:[o.jsxs(ma.Title,{size:"smaller",children:[o.jsx(FN,{}),o.jsx("span",{className:"truncate",children:e.id}),o.jsx(Pa,{content:e.id,tooltip:`Copy item ID: ${e.id}`})]}),o.jsxs(ma.Description,{children:[o.jsxs(ko,{children:[o.jsx(cit,{})," Created ",nr(new Date(e.createdAt),"MMM d, yyyy h:mm aaa")]}),e.datasetVersion!=null&&o.jsxs(ko,{children:[o.jsx(b_,{})," Version v",e.datasetVersion]})]})]})})}function vIe({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(_Ne,{children:[o.jsx(As.CodeSection,{title:"Input",icon:o.jsx(cO,{}),codeStr:t}),o.jsx(As.CodeSection,{title:"Ground Truth",icon:o.jsx(Sg,{}),codeStr:n}),s&&o.jsx(As.CodeSection,{title:"Expected Trajectory",icon:o.jsx(Ube,{}),codeStr:s}),o.jsx(As.CodeSection,{title:"Metadata",icon:o.jsx(UN,{}),codeStr:r})]})}function Mis({selectedScorers:e,setSelectedScorers:t,disabled:n=!1,container:r}){const{data:s,isLoading:a}=ih(),i=v.useMemo(()=>s?Object.entries(s).map(([l,c])=>({value:l,label:c.scorer?.config?.name||l,description:c.scorer?.config?.description||""})):[],[s]);return o.jsxs("div",{className:"grid gap-2",children:[o.jsx(Dt,{children:"Scorers (Optional)"}),o.jsx(ac,{multiple:!0,options:i,value:e,onValueChange:t,placeholder:"Select scorers...",searchPlaceholder:"Search scorers...",emptyText:"No scorers available",disabled:n||a,container:r})]})}const Dis=[{value:"agent",label:"Agent"},{value:"workflow",label:"Workflow"},{value:"scorer",label:"Scorer"}];function Lis({targetType:e,setTargetType:t,targetId:n,setTargetId:r,container:s}){const{data:a,isLoading:i}=Em(),{data:l,isLoading:c}=Wy(),{data:u,isLoading:d}=ih(),f=e==="agent"?Object.entries(a??{}).map(([g,y])=>({value:g,label:y.name??g})):e==="workflow"?Object.entries(l??{}).map(([g,y])=>({value:g,label:y.name??g})):e==="scorer"?Object.entries(u??{}).map(([g,y])=>({value:g,label:y.scorer?.config?.name??g})):[],p=e==="agent"&&i||e==="workflow"&&c||e==="scorer"&&d,h=g=>{t(g),r("")},m=e==="agent"?"Agent":e==="workflow"?"Workflow":"Scorer";return o.jsxs("div",{className:"grid gap-6",children:[o.jsxs("div",{className:"grid gap-2",children:[o.jsx(Dt,{children:"Target Type"}),o.jsx(ac,{options:Dis,value:e,onValueChange:h,placeholder:"Select target type",searchPlaceholder:"Search types...",emptyText:"No types available",container:s})]}),e&&o.jsxs("div",{className:"grid gap-2",children:[o.jsx(Dt,{children:m}),o.jsx(ac,{options:f,value:n,onValueChange:r,placeholder:`Select ${e}`,searchPlaceholder:"Search...",emptyText:"No targets available",disabled:p,container:s})]})]})}function Fis({requestContextSchema:e,onChange:t}){const n=v.useMemo(()=>{try{return fm(um(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(j3,{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 zis({datasetId:e,version:t,requestContextSchema:n,open:r,onOpenChange:s,onSuccess:a}){const i=v.useRef(null),[l,c]=v.useState(""),[u,d]=v.useState(""),[f,p]=v.useState([]),[h,m]=v.useState({}),[g,y]=v.useState(""),{triggerExperiment:b}=Ni(),x=!!(n&&Object.keys(n).length>0),S=l&&u,k=b.isPending,_=()=>{c(""),d(""),p([]),m({}),y("")},C=()=>{if(x){const N=Object.entries(h).filter(([,I])=>I!==void 0&&I!=="");return N.length>0?Object.fromEntries(N):void 0}if(g.trim()){let N;try{N=JSON.parse(g)}catch{throw new Error("Request Context must be valid JSON")}if(!N||typeof N!="object"||Array.isArray(N))throw new Error("Request Context must be a JSON object");return N}},E=async()=>{if(!S)return;let N;try{N=C()}catch(I){const A=I instanceof Error?I.message:"Request Context must be valid JSON";nu.error(A);return}try{const I=await b.mutateAsync({datasetId:e,targetType:l,targetId:u,scorerIds:f.length>0?f:void 0,version:t,requestContext:N});nu.success("Experiment triggered successfully"),s(!1),a?.(I.experimentId),_()}catch(I){const A=I instanceof Error?I.message:"Failed to trigger experiment";nu.error(A)}},j=()=>{k||(s(!1),_())};return o.jsx(br,{open:r,onOpenChange:j,children:o.jsxs(xr,{ref:i,children:[o.jsxs(wr,{children:[o.jsx(gr,{children:"Run Experiment"}),o.jsx(Ks,{children:t?`Execute items from ${nr(new Date(t),"MMM d, yyyy")} version against a target.`:"Execute all items in this dataset against a target."})]}),o.jsxs($r,{className:"grid gap-6",children:[o.jsx(Lis,{targetType:l,setTargetType:c,targetId:u,setTargetId:d,container:i}),l&&l!=="scorer"&&o.jsx(Mis,{selectedScorers:f,setSelectedScorers:p,disabled:k,container:i}),x?o.jsx(Fis,{requestContextSchema:n,onChange:m}):o.jsxs("div",{className:"space-y-2",children:[o.jsx(Dt,{children:"Request Context (JSON, optional)"}),o.jsx(Wr,{value:g,onChange:y,showCopyButton:!1,className:"min-h-[80px]"})]})]}),o.jsxs(Tc,{className:"px-6 pt-4",children:[o.jsx(oe,{onClick:j,disabled:k,children:"Cancel"}),o.jsx(oe,{variant:"primary",onClick:E,disabled:!S||k,children:k?o.jsxs(o.Fragment,{children:[o.jsx(Xt,{className:"h-4 w-4"}),"Running..."]}):"Run"})]})]})})}const Bis=e=>{const t=We();return mt({queryKey:["experiment-trace-light",e],queryFn:async()=>{if(!e)throw new Error("Trace ID is required");return t.getTraceLight(e)},enabled:!!e})},yIe=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 Oae(e){try{return JSON.stringify(e??{})}catch{return String(e)}}function Uis({report:e}){const{served:t,unconsumed:n,liveCalls:r,failure:s}=e,a=[...t.map(i=>({outcome:"served",toolName:i.toolName,args:i.args})),...r.map(i=>({outcome:"live",toolName:i.toolName,args:i.args})),...n.map(i=>({outcome:"unconsumed",toolName:i.toolName,args:i.args}))];return o.jsxs("div",{className:"grid gap-2","data-testid":"tool-mock-report",children:[o.jsx(xn.SectionHeading,{icon:o.jsx(zp,{}),className:"mb-2",children:"Tool Mocks"}),s&&o.jsx(En,{variant:"destructive",title:"Mock mismatch",children:o.jsxs(En.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: ",Oae(s.args)]}),n.length>0&&o.jsxs("span",{className:"mt-1 block font-mono text-xs",children:["Unconsumed mocks: ",n.map(i=>Oae(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:Oae(i.args)})]}),o.jsx("span",{className:`shrink-0 rounded px-2 py-0.5 text-xs ${Vis(i.outcome)}`,children:i.outcome})]},`${i.outcome}-${i.toolName}-${l}`))})]})}function Vis(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 qis({result:e,scores:t,onPrevious:n,onNext:r,onClose:s,onShowTrace:a,onOpenInReview:i,onScoreClick:l,featuredScoreId:c,onFlagForReview:u,collapsed:d,onCollapsedChange:f}){const[p,h]=v.useState(!1),m=d??p,g=f??h,y=!!e?.error,b=Iz(e?.input),x=Iz(e?.output),S=Iz(e?.groundTruth),k=u&&e.status!=="needs-review"&&e.status!=="complete",_=Array.isArray(e.tags)?e.tags:[];return o.jsxs(xn,{collapsed:m,children:[o.jsxs(xn.Header,{children:[o.jsxs(xn.Heading,{children:["Result ",o.jsxs("b",{children:["# ",e.id.length>12?`${e.id.slice(0,12)}…`:e.id]})]}),o.jsxs(Mr,{className:"ml-auto shrink-0",children:[f&&o.jsx(oe,{size:"md",tooltip:m?"Expand panel":"Collapse panel",onClick:()=>g(!m),children:m?o.jsx(pit,{}):o.jsx(fit,{})}),o.jsx(xn.NextPrevNav,{onPrevious:n,onNext:r,previousLabel:"Previous result",nextLabel:"Next result"}),o.jsxs(oe,{size:"md",onClick:a,disabled:!e.traceId,children:[o.jsx(yIe,{}),"Trace"]}),o.jsx(xn.CloseButton,{onClick:s,tooltip:"Close result panel"})]})]}),!m&&o.jsxs(xn.Content,{children:[o.jsxs("div",{className:"mb-6 grid gap-4",children:[o.jsxs(Ut,{children:[o.jsx(Ut.Key,{children:"Item Id"}),o.jsx(Ut.ValueWithCopyBtn,{copyTooltip:"Copy Item Id to clipboard",copyValue:e.itemId,children:e.itemId}),o.jsx(Ut.Key,{children:"Created"}),o.jsx(Ut.Value,{children:nr(new Date(e.createdAt),"MMM d, yyyy 'at' h:mm a")})]}),y&&o.jsx(En,{variant:"destructive",title:"Error",children:o.jsx(En.Message,{children:Iz(e?.error&&typeof e.error=="object"?e.error.message:e?.error)})}),t&&t.length>0&&o.jsxs(ve,{columns:"1fr 1fr",children:[o.jsxs(ve.Top,{children:[o.jsx(ve.TopCell,{children:"Scorer"}),o.jsx(ve.TopCell,{children:"Score"})]}),t.map(C=>o.jsxs(ve.RowButton,{featured:c===C.id,onClick:()=>l?.(C.id),children:[o.jsx(ve.Cell,{height:"compact",children:C.scorerId}),o.jsx(ve.MonoCell,{children:C.score.toFixed(3)})]},C.id))]}),e.toolMockReport&&o.jsx(Uis,{report:e.toolMockReport}),(e.status||_.length>0||k)&&o.jsxs("div",{className:"grid gap-2",children:[o.jsx(xn.SectionHeading,{icon:o.jsx(UN,{}),className:"mb-2",children:"Review"}),(e.status||_.length>0)&&o.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.status&&o.jsx("span",{className:`rounded-full px-2 py-0.5 text-xs font-medium ${e.status==="needs-review"?"bg-orange-500/10 text-orange-400":e.status==="complete"?"bg-accent1/10 text-accent1":"bg-neutral3/10 text-neutral4"}`,children:e.status}),_.map(C=>o.jsx("span",{className:"bg-surface4 text-neutral4 rounded px-2 py-0.5 text-xs",children:C},C))]}),k&&o.jsx("div",{children:o.jsxs(oe,{size:"sm",onClick:()=>u(e.id),children:[o.jsx(VV,{}),"Flag for Review"]})}),e.status==="needs-review"&&i&&o.jsx("div",{children:o.jsxs(oe,{size:"sm",onClick:i,children:[o.jsx(Sa,{}),"Review"]})})]})]}),o.jsxs("div",{className:"grid gap-3",children:[o.jsx(xn.CodeSection,{title:"Input",icon:o.jsx(FN,{}),codeStr:b}),o.jsx(xn.CodeSection,{title:"Output",icon:o.jsx(Sg,{}),codeStr:x}),o.jsx(xn.CodeSection,{title:"Ground Truth",icon:o.jsx(qbe,{}),codeStr:S})]})]})]})}function Iz(e){return e==null?"-":typeof e=="string"?e:JSON.stringify(e,null,2)}function His({results:e,isLoading:t,featuredResultId:n,onResultClick:r,columns:s,scoresByItemId:a,scorerIds:i,setEndOfListElement:l,isFetchingNextPage:c,hasNextPage:u,selectedIds:d,onToggleSelect:f}){const p=!!(d&&f),h=[p?"auto":"",...s.map(g=>g.size)].filter(Boolean).join(" "),m=s.some(g=>g.name==="input");return t?o.jsx(ol,{columns:h}):o.jsxs(ve,{columns:h,className:"min-w-0",children:[o.jsxs(ve.Top,{hasLeadingCell:p,children:[p&&o.jsx(ve.TopCell,{children:" "}),p?o.jsx(ve.TopCells,{colStart:2,children:s.map(g=>o.jsx(ve.TopCell,{children:g.label},g.name))}):s.map(g=>o.jsx(ve.TopCell,{children:g.label},g.name))]}),e.length===0?o.jsx(ve.NoMatch,{message:"No results yet"}):o.jsxs(o.Fragment,{children:[e.map(g=>{const y=!!g.error,b=g.id===n,x=o.jsxs(o.Fragment,{children:[o.jsx(ve.IdCell,{id:g.itemId}),o.jsx(ve.Cell,{height:"compact",children:o.jsxs(Pn,{children:[o.jsx(An,{asChild:!0,children:o.jsx("div",{className:"relative flex h-full w-10 items-center justify-center bg-transparent",children:o.jsx("div",{role:"img","aria-label":y?"Error":"Success",className:X("w-2 h-2 rounded-full",y?"bg-red-700":"bg-green-600")})})}),o.jsx(Rn,{children:y?"Error":"Success"})]})}),m&&o.jsx(ve.MonoCell,{children:Zis(Wis(g.input),200)}),i?.map(S=>{const _=a?.[g.itemId]?.find(C=>C.scorerId===S);return o.jsx(ve.Cell,{height:"compact",className:"text-neutral3 text-ui-smd font-mono",children:_!=null?_.score.toFixed(3):"-"},S)})]});return p?o.jsxs(ve.RowWrapper,{children:[o.jsx(ve.SelectCell,{checked:d.has(g.id),onToggle:()=>f(g.id),"aria-label":`Select result ${g.itemId}`}),o.jsx(ve.RowButton,{flushLeft:!0,colStart:2,featured:b,onClick:()=>r(g.id),children:x})]},g.id):o.jsx(ve.RowButton,{featured:b,onClick:()=>r(g.id),children:x},g.id)}),o.jsx(ve.NextPageLoading,{isLoading:c,hasMore:u,setEndOfListElement:l})]})]})}function Wis(e){return e==null?"-":typeof e=="string"?e:JSON.stringify(e,null,2)}function Zis(e,t){return e.length<=t?e:e.slice(0,t-1)+"..."}function Gis(e){const t=e.scorer;return t?.hasJudge===!1?!0:t?.hasJudge===!0?!1:!e.preprocessPrompt&&!e.analyzePrompt&&!e.generateScorePrompt&&!e.generateReasonPrompt}function Qis({score:e,onNext:t,onPrevious:n,onClose:r,onShowTrace:s,collapsed:a,onCollapsedChange:i}){const[l,c]=v.useState(!1),u=a??l,d=i??c,f=Gis(e),p=f?"N/A — code-based scorer":"N/A — step not configured";return o.jsxs(xn,{collapsed:u,children:[o.jsxs(xn.Header,{children:[o.jsxs(xn.Heading,{children:["Score ",o.jsx("b",{children:e.scorerId})]}),o.jsxs(Mr,{className:"ml-auto shrink-0",children:[i&&o.jsx(oe,{size:"md",tooltip:u?"Expand panel":"Collapse panel",onClick:()=>d(!u),children:u?o.jsx(pit,{}):o.jsx(fit,{})}),(n||t)&&o.jsx(xn.NextPrevNav,{onPrevious:n,onNext:t,previousLabel:"Previous score",nextLabel:"Next score"}),s&&o.jsxs(oe,{size:"md",onClick:s,disabled:!e.traceId,children:[o.jsx(yIe,{}),"Trace"]}),o.jsx(xn.CloseButton,{onClick:r,tooltip:"Close score panel"})]})]}),!u&&o.jsx(xn.Content,{children:o.jsxs("div",{className:"grid gap-3",children:[o.jsx(xn.CodeSection,{title:`Score: ${e.score}`,icon:o.jsx(nm,{}),codeStr:e.reason||p,simplified:!0}),!f&&o.jsxs(o.Fragment,{children:[o.jsx(xn.CodeSection,{title:"Preprocess Prompt",icon:o.jsx(_h,{}),codeStr:e.preprocessPrompt||p,simplified:!0}),o.jsx(xn.CodeSection,{title:"Analyze Prompt",icon:o.jsx(_h,{}),codeStr:e.analyzePrompt||p,simplified:!0}),o.jsx(xn.CodeSection,{title:"Generate Score Prompt",icon:o.jsx(_h,{}),codeStr:e.generateScorePrompt||p,simplified:!0}),o.jsx(xn.CodeSection,{title:"Generate Reason Prompt",icon:o.jsx(_h,{}),codeStr:e.generateReasonPrompt||p,simplified:!0})]})]})})]})}const vXe=[{name:"scorer",label:"Scorer",size:"1fr"},{name:"avg",label:"Avg Score",size:"1fr"},{name:"count",label:"Items Scored",size:"1fr"}];function Yis({scoresByItemId:e,experimentStatus:t}){const n=v.useMemo(()=>{if(!e)return[];const r={};for(const s of Object.values(e))for(const a of s)r[a.scorerId]||(r[a.scorerId]={sum:0,count:0}),r[a.scorerId].sum+=a.score,r[a.scorerId].count++;return Object.entries(r).map(([s,{sum:a,count:i}])=>({scorerId:s,avg:a/i,count:i})).sort((s,a)=>s.scorerId.localeCompare(a.scorerId))},[e]);if(n.length===0){const r=t==="running"||t==="pending",s=e!==void 0;let a,i;return r?(a="Experiment in progress",i="Summary metrics will appear here once the experiment completes."):s?(a="No scorers configured",i="Add scorers when triggering an experiment to evaluate results and see summary metrics here."):(a="Loading scores",i="Fetching scorer results…"),o.jsx("div",{className:"flex h-full items-center justify-center py-12",children:o.jsx(Lr,{iconSlot:o.jsx(nm,{className:"text-neutral3 h-8 w-8"}),titleSlot:a,descriptionSlot:i})})}return o.jsxs(vn,{children:[o.jsxs(vn.Header,{columns:vXe,children:[o.jsx(vn.HeaderCol,{children:"Scorer"}),o.jsx(vn.HeaderCol,{children:"Avg Score"}),o.jsx(vn.HeaderCol,{children:"Items Scored"})]}),o.jsx(vn.Scroller,{children:o.jsx(vn.Items,{children:n.map(({scorerId:r,avg:s,count:a})=>o.jsxs(vn.Row,{columns:vXe,children:[o.jsx(vn.TextCell,{children:r}),o.jsx(vn.TextCell,{className:"font-mono",children:s.toFixed(3)}),o.jsx(vn.TextCell,{className:"font-mono",children:a})]},r))})})]})}function y7t({experimentId:e,datasetId:t,experimentStatus:n,results:r,isLoading:s,setEndOfListElement:a,isFetchingNextPage:i,hasNextPage:l}){const[c,u]=v.useState(null),[d,f]=v.useState(null),[p,h]=v.useState(void 0),[m,g]=v.useState(null),[y,b]=v.useState(new Set),[x,S]=v.useState(!1),[k,_]=v.useState(!1),[C,E]=v.useState(!1),[j,N]=v.useState(!1),{updateExperimentResult:I}=Ni(),A=v.useCallback(re=>{b(se=>{const me=new Set(se);return me.has(re)?me.delete(re):me.add(re),me})},[]),R=v.useCallback(()=>b(new Set),[]),L=v.useCallback(()=>{const re=r.filter(se=>!!se.error).map(se=>se.id);b(new Set(re))},[r]),D=v.useCallback(async re=>{if(x||re.length===0)return;S(!0);let se=0;const me=new Set;try{for(const we of re)try{await I.mutateAsync({datasetId:t,experimentId:e,resultId:we,status:"needs-review"}),se++,me.add(we)}catch{}}finally{S(!1)}me.size>0&&b(we=>{const Ne=new Set(we);for(const Re of me)Ne.delete(Re);return Ne}),se>0&&Le(`${se} result${se>1?"s":""} flagged for review`)},[t,e,x,I]),B=r.find(re=>re.id===c)??null,[H,F]=v.useState("summary"),[z,q]=v.useState(null),M=re=>{F(re),re!=="reviews"&&q(null)},{data:G}=gIe(t),V=(G??[]).filter(re=>re.experimentId===e).length,{data:$}=J8t(e,n),U=v.useMemo(()=>{if(!$)return[];const re=new Set;for(const se of Object.values($))for(const me of se)re.add(me.scorerId);return[...re].sort()},[$]),Z=re=>{u(re),f(null),h(void 0),g(null)},K=re=>{Z(re===c?null:re)},ee=()=>{Z(null)},te=()=>{if(!B)return;const re=r.findIndex(se=>se.id===B.id);if(re>=0&&re<r.length-1)return()=>Z(r[re+1].id)},J=()=>{if(!B)return;const re=r.findIndex(se=>se.id===B.id);if(re>0)return()=>Z(r[re-1].id)},ae=B?$?.[B.itemId]:void 0,de=ae?.find(re=>re.id===m)??null,Y=re=>{g(re===m?null:re),f(null),h(void 0)},ne=()=>{if(!m||!ae)return;const re=ae.findIndex(se=>se.id===m);if(re>=0&&re<ae.length-1)return()=>g(ae[re+1].id)},fe=()=>{if(!m||!ae)return;const re=ae.findIndex(se=>se.id===m);if(re>0)return()=>g(ae[re-1].id)},{data:he,isLoading:le}=Bis(d),ue=he?.spans,{data:be,isLoading:xe}=CL(d,p),Ce=be?.span,{handlePreviousSpan:ke,handleNextSpan:Ae}=fIe(ue,p??null,h),Me=(()=>{const re=[],se=!!de,me=!!d;return re.push(k?"auto":se||me?"2fr":"1fr"),se&&re.push(j?"auto":"3fr"),me&&re.push(C?"auto":"3fr"),me&&p&&re.push("3fr"),re.join(" ")})(),ce=v.useMemo(()=>[{name:"itemId",label:"Item ID",size:"7rem"},{name:"status",label:"Status",size:"5rem"},{name:"input",label:"Input",size:"minmax(15rem,1fr)"},...U.map(re=>({name:re,label:re,size:"12rem"}))],[U]);return o.jsxs(Dc,{defaultTab:"summary",value:H,onValueChange:M,className:"grid h-full grid-rows-[auto_1fr] overflow-hidden",children:[o.jsxs(Mc,{children:[o.jsx(Rr,{value:"summary",children:"Summary"}),o.jsx(Rr,{value:"results",children:"Results"}),o.jsxs(Rr,{value:"reviews",children:["Reviews",V>0&&o.jsx(Js,{color:"orange",children:V})]})]}),o.jsx(Xr,{value:"summary",className:"mt-5 overflow-y-auto",children:o.jsx(Yis,{scoresByItemId:$,experimentStatus:n})}),o.jsx(Xr,{value:"reviews",className:"mt-2 overflow-auto pb-0",children:o.jsx(v7t,{datasetId:t,experimentId:e,featuredItemId:z})}),o.jsxs(Xr,{value:"results",className:"mt-2 grid grid-rows-[auto_1fr] overflow-hidden",children:[o.jsxs("div",{className:"mb-4",children:[y.size>0&&o.jsxs("div",{className:"bg-surface3 flex items-center gap-2 px-4 py-2",children:[o.jsxs(ye,{variant:"ui-xs",className:"text-neutral5 font-medium",children:[y.size," selected"]}),o.jsx("div",{className:"flex-1"}),o.jsxs(oe,{variant:"outline",size:"sm",disabled:x,onClick:()=>D([...y]),children:[o.jsx(qe,{size:"sm",children:o.jsx(VV,{})}),"Flag for Review"]}),o.jsx(oe,{variant:"ghost",size:"sm",onClick:R,children:"Clear"})]}),r.length>0&&y.size===0&&!s&&o.jsx("div",{className:"flex items-center gap-2 px-4 py-2",children:o.jsx(oe,{variant:"ghost",size:"sm",onClick:L,children:"Select loaded failures"})})]}),o.jsxs("div",{className:X("grid w-full h-full grid-cols-1 gap-4 overflow-y-auto",B&&"grid-cols-[1fr_1fr]"),children:[o.jsx("div",{className:"flex w-full overflow-y-auto",children:o.jsx("div",{className:"grid w-full content-start gap-8 overflow-y-auto",children:o.jsx(His,{results:r,isLoading:s,featuredResultId:c,onResultClick:K,columns:ce,scoresByItemId:$,scorerIds:U,setEndOfListElement:a,isFetchingNextPage:i,hasNextPage:l,selectedIds:y,onToggleSelect:A})})}),B&&o.jsxs("div",{className:"grid max-h-full min-h-0 content-start gap-4 overflow-auto",style:{gridTemplateRows:Me},children:[o.jsx(qis,{result:B,scores:ae,onPrevious:J(),onNext:te(),onClose:ee,onScoreClick:Y,featuredScoreId:m,onShowTrace:()=>{B.traceId&&(f(B.traceId),h(void 0),g(null),_(!0),E(!1))},onOpenInReview:()=>{q(B.id),F("reviews")},onFlagForReview:re=>D([re]),collapsed:k,onCollapsedChange:_}),de&&o.jsx(Qis,{score:de,onNext:ne(),onPrevious:fe(),onClose:()=>g(null),onShowTrace:()=>{de.traceId&&(f(de.traceId),h(void 0),_(!0),N(!0),E(!1))},collapsed:j,onCollapsedChange:N}),d&&o.jsxs(o.Fragment,{children:[o.jsx(sIe,{traceId:d,spans:ue,isLoading:le,onClose:()=>{f(null),h(void 0),_(!1),N(!1)},onSpanSelect:h,initialSpanId:p??null,placement:"traces-list",showUnavailableFeaturesMsg:!1,collapsed:C,onCollapsedChange:E,LinkComponent:wx,traceHref:`/traces/${d}`}),p&&o.jsx(tIe,{traceId:d,spanId:p,span:Ce,isLoading:xe,onPrevious:ke,onNext:Ae,onClose:()=>h(void 0)})]})]})]})]})]})}const Kis={pending:o.jsx(dT,{}),running:o.jsx(Efe,{}),completed:o.jsx(fa,{}),failed:o.jsx(bs,{})};function Xis({experiment:e,className:t}){const n=e.status,r=e.totalItems-e.succeededCount-e.failedCount;return o.jsxs("div",{className:X("grid justify-items-end gap-3",t),children:[o.jsxs("div",{className:"text-ui-lg text-neutral4 bg-surface5 flex items-center gap-2 rounded-lg p-1 px-3 capitalize",children:[o.jsx("span",{className:X("w-5 h-5 flex items-center justify-center rounded-full text-black","[&>svg]:w-4 [&>svg]:h-4",{"bg-green-700":n==="completed","bg-red-700":n==="failed","bg-cyan-600":n==="running","bg-yellow-600":n==="pending"}),children:Kis[n]}),e.status]}),o.jsxs("div",{className:X("flex items-center gap-3 text-neutral3 text-ui-md ","[&>span]:flex [&>span]:gap-1 [&>span]:items-center ","[&_b]:text-neutral4 [&_b]:font-semibold"),children:[o.jsxs("span",{children:["Total: ",o.jsx("b",{children:e.totalItems})]}),o.jsxs("span",{children:["Succeeded: ",o.jsx("b",{children:e.succeededCount})]}),o.jsxs("span",{children:["Failed: ",o.jsx("b",{children:e.failedCount})]}),(n==="pending"||n==="running")&&o.jsxs("span",{children:["Pending: ",o.jsx("b",{children:r})]})]})]})}function Jis({onPrevious:e,onNext:t,previousAriaLabel:n="Previous",nextAriaLabel:r="Next"}){return o.jsxs(Mr,{spacing:"close",children:[o.jsxs(oe,{onClick:e,disabled:!e,"aria-label":n,children:[o.jsx(Qq,{})," Prev"]}),o.jsxs(oe,{onClick:t,disabled:!t,"aria-label":r,children:["Next",o.jsx(u3,{})]})]})}function bIe({delta:e}){const t=e>0?o.jsx(Js,{size:"small",color:"green",intensity:"muted",children:o.jsx(jD,{})}):e<0?o.jsx(Js,{size:"small",color:"red",intensity:"muted",children:o.jsx(Nqt,{})}):null;return o.jsxs("span",{className:X("font-mono text-sm text-neutral4 min-w-20"),children:[o.jsx("span",{className:"inline-block w-3",children:e>0?"+ ":e<0?"- ":""}),Math.abs(e).toFixed(2)," ",t]})}function Az(e){return e==null?"-":typeof e=="string"?e:JSON.stringify(e,null,2)}function eos({item:e,baselineId:t,contenderId:n,baselineVersion:r,contenderVersion:s,onPrevious:a,onNext:i,onClose:l}){const c=e.results[t],u=e.results[n],d=!!(c&&u),f=new Set;if(c)for(const h of Object.keys(c.scores))f.add(h);if(u)for(const h of Object.keys(u.scores))f.add(h);const p=[...f].sort();return o.jsxs(Yr,{withLeftSeparator:!0,children:[o.jsxs(Yr.Toolbar,{children:[o.jsx(Jis,{onPrevious:a,onNext:i,previousAriaLabel:"Previous comparison item",nextAriaLabel:"Next comparison item"}),o.jsx(Mr,{children:o.jsx(oe,{onClick:l,"aria-label":"Close comparison detail panel",children:o.jsx(bs,{})})})]}),o.jsxs(Yr.Content,{className:"pb-6",children:[o.jsx(ma,{withMargins:!1,children:o.jsx(ma.Column,{children:o.jsxs(ma.Title,{size:"smaller",children:[o.jsx(FN,{})," ",e.itemId]})})}),d?o.jsx(o.Fragment,{children:o.jsxs(_Ne,{children:[p.length>0&&o.jsxs("div",{className:"grid gap-3",children:[o.jsx("h4",{className:"text-neutral5 text-sm font-medium",children:"Scores"}),o.jsx("div",{className:"grid gap-2",children:p.map(h=>{const m=c?.scores[h]??null,g=u?.scores[h]??null,y=m!=null&&g!=null?g-m:null;return o.jsxs("div",{className:"bg-surface2 flex items-center justify-between gap-4 rounded-lg px-3 py-2",children:[o.jsx("span",{className:"text-neutral5 text-sm font-medium",children:h}),o.jsxs("div",{className:"flex items-center gap-4",children:[o.jsxs("span",{className:"text-neutral3 text-sm",children:[m!=null?m.toFixed(3):"-"," →"," ",g!=null?g.toFixed(3):"-"]}),y!=null&&o.jsx(bIe,{delta:y})]})]},h)})})]}),o.jsx(As.CodeSection,{title:o.jsxs(o.Fragment,{children:[o.jsx(Js,{color:"purple",children:"Baseline "})," Experiment Output"]}),icon:o.jsx(Sg,{}),codeStr:Az(c?.output)}),o.jsx(As.CodeSection,{title:o.jsxs(o.Fragment,{children:[o.jsx(Js,{color:"cyan",children:"Contender "})," Experiment Output"]}),icon:o.jsx(Sg,{}),codeStr:Az(u?.output)}),o.jsx(As.CodeSection,{title:"Item Input",icon:o.jsx(cO,{}),codeStr:Az(e.input)}),o.jsx(As.CodeSection,{title:"Item Ground Truth",icon:o.jsx(qbe,{}),codeStr:Az(e.groundTruth)})]})}):o.jsx(En,{variant:"warning",title:"Comparison not available",children:o.jsx(En.Message,{children:(()=>{const h=c?"Contender":"Baseline",m=c?s:r;return o.jsxs(o.Fragment,{children:["The ",h," experiment was run against dataset",m!=null?` v. ${m}`:"",", which does not contain this item."]})})()})})]})]})}function tos({items:e,baselineId:t,contenderId:n,scorerIds:r,featuredItemId:s,columns:a,onItemClick:i}){return o.jsx(Yr,{children:o.jsxs(vn,{children:[o.jsxs(vn.Header,{columns:a,children:[o.jsx(vn.HeaderCol,{children:"Item ID"}),!s&&r.map(l=>o.jsx(vn.HeaderCol,{className:"flex justify-center",children:l},l))]}),o.jsx(vn.Scroller,{children:o.jsx(vn.Items,{children:e.map(l=>{const c=l.results[t],u=l.results[n],d=!!(c&&u);return o.jsx(vn.Row,{children:o.jsxs(vn.RowButton,{item:{id:l.itemId},columns:a,isFeatured:s===l.itemId,onClick:i,children:[o.jsx(vn.IdCell,{id:l.itemId,className:d?"":"text-neutral1"}),!s&&o.jsx(o.Fragment,{children:r.map(f=>{const p=c?.scores[f]??null,h=u?.scores[f]??null,m=p!=null&&h!=null?h-p:null;return o.jsx(vn.Cell,{className:"flex items-center justify-center gap-5 font-mono",children:m!=null?o.jsxs(o.Fragment,{children:[o.jsxs("span",{className:"text-neutral2 flex min-w-24 items-center",children:[p?.toFixed(2)," → ",h?.toFixed(2)]}),o.jsx(bIe,{delta:m})]}):o.jsx("span",{className:"text-neutral1",children:"-"})},f)})})]})},l.itemId)})})})]})})}const nos={baseline:{label:"Baseline",color:"purple",customStyle:"items-end justify-items-end [&>div]:justify-end border-r-0 rounded-r-none"},contender:{label:"Contender",color:"cyan",customStyle:"items-start justify-items-start [&>div]:justify-start border-l-0 rounded-l-none"}};function yXe({datasetId:e,experiment:t,type:n}){const{Link:r}=yn(),{label:s,color:a,customStyle:i}=nos[n];if(!t)return null;const l=t.createdAt?new Date(t.createdAt):null,c=Y1(t.id)??t.id,u=t.name||c,d=o.jsx(oe,{as:r,href:`/datasets/${e}/experiments/${t.id}`,children:o.jsx("span",{className:"min-w-0 truncate",children:u})});return o.jsxs("div",{className:`border-border1 grid gap-3 rounded-lg border-2 p-5 ${i}`,children:[o.jsxs("div",{className:"flex w-full items-center gap-3 overflow-clip",children:[n==="contender"&&o.jsxs(Js,{size:"small",color:a,children:[s,o.jsx(ym,{})]}),t.description?o.jsxs(Pn,{children:[o.jsx(An,{asChild:!0,children:d}),o.jsx(Rn,{children:t.description})]}):d,n==="baseline"&&o.jsxs(Js,{size:"small",color:a,children:[o.jsx(Ac,{})," ",s]})]}),o.jsxs("div",{className:"text-ui-sm text-neutral3 flex flex-wrap gap-x-4 gap-y-1",children:[t.name&&o.jsxs(ko,{children:[o.jsx(_fe,{})," ",c]}),o.jsxs(ko,{children:[o.jsx(qbe,{})," ",t.targetType," / ",t.targetId]}),o.jsxs(ko,{children:[o.jsx(HV,{})," v",t.datasetVersion??"—"]}),l&&o.jsxs(ko,{children:[o.jsx(uit,{})," ",nr(l,"MMM d, yyyy HH:mm")]})]})]})}function ros({datasetId:e,experimentIdA:t,experimentIdB:n,onSwap:r}){const[s,a]=v.useState(null),{data:i,isLoading:l,error:c}=Hss(e,t,n),{data:u}=PV(e,t),{data:d}=PV(e,n),f=u&&d&&u.datasetVersion!==d.datasetVersion,p=v.useMemo(()=>{if(!i)return[];const E=new Set;for(const j of i.items)for(const N of Object.values(j.results))if(N)for(const I of Object.keys(N.scores))E.add(I);return[...E].sort()},[i]),h=v.useMemo(()=>{if(!i||p.length===0)return[];const E=i.baselineId,j=t===E?n:t;return p.map(N=>{let I=0,A=0,R=0,L=0;for(const F of i.items){const z=F.results[E]?.scores[N],q=F.results[j]?.scores[N];z!=null&&(I+=z,R++),q!=null&&(A+=q,L++)}const D=R>0?I/R:null,B=L>0?A/L:null,H=D!=null&&B!=null?B-D:null;return{scorerId:N,avgA:D,avgB:B,delta:H}})},[i,p,t,n]),m=[{name:"scorer",label:"Scorer",size:"1fr"},{name:"baselineAvg",label:"Baseline Avg",size:"1fr"},{name:"comparisonAvg",label:"Comparison Avg",size:"1fr"},{name:"delta",label:"Delta",size:"1fr"}],g=v.useMemo(()=>[{name:"itemId",label:"Item ID",size:"8rem"},...s?[]:p.map(E=>({name:E,label:E,size:"1fr"}))],[p,s]),y=i?.items.find(E=>E.itemId===s)??null,b=E=>{a(E===s?null:E)},x=()=>{a(null)},S=()=>{if(!i||!s)return;const E=i.items.findIndex(j=>j.itemId===s);if(E>=0&&E<i.items.length-1)return()=>a(i.items[E+1].itemId)},k=()=>{if(!i||!s)return;const E=i.items.findIndex(j=>j.itemId===s);if(E>0)return()=>a(i.items[E-1].itemId)};if(l)return o.jsx("div",{className:"flex h-64 items-center justify-center",children:o.jsx(Xt,{})});if(c)return o.jsx(En,{variant:"warning",title:"Error loading comparison",children:o.jsx(En.Message,{children:c instanceof Error?c.message:"Unknown error"})});if(!i||i.items.length===0)return o.jsx("div",{className:"text-neutral4 py-8 text-center text-sm",children:"No comparison data"});const _=i.baselineId,C=t===_?n:t;return o.jsxs("div",{className:"grid gap-10",children:[u&&d&&o.jsxs("div",{className:X("relative grid xl:grid-cols-[1fr_auto_1fr] gap-4 xl:gap-0"),children:[o.jsx(yXe,{datasetId:e,experiment:u,type:"baseline"}),o.jsx("div",{className:"before:bg-border1 relative flex items-center justify-center px-[2vw] before:absolute before:inset-y-0 before:left-1/2 before:w-[2px] before:-translate-x-1/2",children:o.jsx("div",{className:"bg-surface2 relative z-1 rounded-lg p-2",children:o.jsxs(Pn,{children:[o.jsx(An,{asChild:!0,children:o.jsx(oe,{onClick:r,children:"VS"})}),o.jsx(Rn,{children:"Switch the order"})]})})}),o.jsx(yXe,{datasetId:e,experiment:d,type:"contender"})]}),f&&o.jsx(En,{variant:"warning",title:"Version mismatch",children:o.jsxs(En.Message,{children:["These experiments used different dataset versions (v",u.datasetVersion," vs v",d.datasetVersion,"). Results may not be directly comparable."]})}),h.length>0&&o.jsxs(vn,{children:[o.jsxs(vn.Header,{columns:m,children:[o.jsx(vn.HeaderCol,{children:"Scorer"}),o.jsx(vn.HeaderCol,{className:"flex justify-center",children:o.jsxs(vKe,{children:[o.jsx(Js,{color:"purple",size:"small",intensity:"muted",children:"Baseline"}),o.jsx(Js,{color:"purple",size:"small",children:"Avg"})]})}),o.jsx(vn.HeaderCol,{className:"flex justify-center",children:o.jsxs(vKe,{children:[o.jsx(Js,{color:"cyan",size:"small",intensity:"muted",children:"Contender"}),o.jsx(Js,{color:"cyan",size:"small",children:"Avg"})]})}),o.jsx(vn.HeaderCol,{className:"flex justify-center",children:"Delta"})]}),o.jsx(vn.Scroller,{children:o.jsx(vn.Items,{children:h.map(({scorerId:E,avgA:j,avgB:N,delta:I})=>o.jsxs(vn.Row,{columns:m,children:[o.jsx(vn.TextCell,{children:E}),o.jsx(vn.TextCell,{className:"text-center font-mono",children:j!=null?j.toFixed(3):"-"}),o.jsx(vn.TextCell,{className:"text-center font-mono",children:N!=null?N.toFixed(3):"-"}),o.jsx(vn.TextCell,{className:"flex justify-center",children:I!=null?o.jsx(bIe,{delta:I}):"-"})]},E))})})]}),o.jsxs(cy,{className:X({"grid-cols-[1fr_2fr]":!!y}),children:[o.jsx(tos,{items:i.items,baselineId:_,contenderId:C,scorerIds:p,featuredItemId:s,columns:g,onItemClick:b}),!!y&&o.jsx(eos,{item:y,baselineId:_,contenderId:C,baselineVersion:u?.datasetVersion,contenderVersion:d?.datasetVersion,onPrevious:k(),onNext:S(),onClose:x})]})]})}function sos({datasetId:e,itemId:t,onVersionSelect:n,onCompareVersionsClick:r,activeVersion:s}){const{data:a,isLoading:i}=pIe(e,t),[l,c]=v.useState(!1),[u,d]=v.useState(new Set),f=b=>{n?.(b)},p=b=>s==null?b.isLatest:b.datasetVersion===s,h=b=>{d(x=>{const 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)},g=()=>{c(!0)},y=()=>{u.size===2&&r?.([...u])};return o.jsxs(Yr,{className:"min-w-56",children:[l?o.jsx(Yr.Toolbar,{className:"grid w-full justify-stretch gap-3",children:o.jsxs(Mr,{children:[o.jsx(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(Yr.Toolbar,{children:o.jsxs(oe,{onClick:g,className:"w-full",children:[o.jsx(Ww,{})," Compare Ver."]})})}),i?o.jsx(aos,{}):o.jsxs(vn,{children:[o.jsx(vn.Header,{children:o.jsx(vn.HeaderCol,{children:"Item Version History"})}),o.jsx(vn.Scroller,{children:o.jsx(vn.Items,{children:a?.map(b=>{const x=String(b.datasetVersion),S=typeof b.updatedAt=="string"?new Date(b.updatedAt):b.updatedAt;return o.jsxs(vn.Row,{isSelected:l&&u.has(x),children:[l&&o.jsx(vn.LabelCell,{children:o.jsx(zo,{checked:u.has(x),disabled:b.isDeleted,onCheckedChange:()=>{},onClick:k=>{k.stopPropagation(),b.isDeleted||h(x)},"aria-label":`Select version ${b.datasetVersion}`})}),o.jsx(vn.RowButton,{item:b,columns:[{name:"version",label:"Item Version History",size:"1fr"}],isFeatured:p(b),onClick:()=>f(b),className:"py-2",children:o.jsx(vn.VersionCell,{version:b.datasetVersion,date:S,isLatest:b.isLatest,isDeleted:b.isDeleted})})]},String(b.datasetVersion))})})})]})]})}function aos(){return o.jsxs(vn,{children:[o.jsx(vn.Header,{columns:[{name:"version",label:"Item Version History",size:"1fr"}],children:o.jsx(vn.HeaderCol,{children:"Item Version History"})}),o.jsx(vn.Items,{children:Array.from({length:3}).map((e,t)=>o.jsx(vn.Row,{children:o.jsx(vn.RowButton,{columns:[{name:"version",label:"Item Version History",size:"1fr"}],children:o.jsx(vn.TextCell,{isLoading:!0,children:"Loading..."})})},t))})]})}function ios(e,t){if(t){const n=typeof t=="string"?new Date(t):t;return`v${e} ${nr(n,"MMM dd 'at' H:mm:ss a")}`}return`v${e}`}function oos({datasetId:e,versionA:t,versionB:n,onVersionChange:r}){const{data:s}=FNe(e),a=(s??[]).map(i=>({value:String(i.version),label:`${ios(i.version,i.createdAt)}${i.isCurrent?" (current)":""}`}));return o.jsxs(Yr.Toolbar,{className:"grid w-full grid-cols-[1fr_1fr_1fr_10rem] gap-4",children:[o.jsx("div",{}),o.jsx(Cc,{label:"Version A",labelIsHidden:!0,name:"version-a",placeholder:"Select version",options:a,value:t??"",onValueChange:i=>r?.(i,n??"")}),o.jsx(Cc,{label:"Version B",labelIsHidden:!0,name:"version-b",options:a,value:n??"",onValueChange:i=>r?.(t??"",i)}),o.jsx("div",{})]})}const los=[{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"}],cos={added:{color:"blue",borderColor:"border-blue-900",icon:o.jsx(Zr,{}),tooltip:"Added in this version"},changed:{color:"orange",borderColor:"border-yellow-900",icon:o.jsx(_it,{}),tooltip:"Changed in this version"},same:{color:"green",borderColor:"border-green-900",icon:o.jsx(JHt,{}),tooltip:"Same in both versions"}};function _ae({red:e=!1,tooltip:t}){return o.jsxs(Pn,{children:[o.jsx(An,{asChild:!0,children:o.jsx(zqt,{className:X("text-neutral3/40 w-5 h-5 ",{"text-red-900":e})})}),t&&o.jsx(Rn,{children:t})]})}function JS({variant:e,version:t}){if(!e)return o.jsxs("span",{className:"text-ui-md text-neutral4",children:["v. ",t]});const{color:n,icon:r,tooltip:s}=cos[e];return o.jsxs(Pn,{children:[o.jsx(An,{asChild:!0,children:o.jsxs("div",{className:"grid grid-cols-[1fr_auto]",children:[t!==void 0&&o.jsxs("span",{className:"text-ui-md text-neutral4 flex min-w-16 justify-end pr-3",children:["v. ",t]}),o.jsx(Js,{color:n,size:"small",children:r})]})}),o.jsx(Rn,{children:s})]})}function uos(e,t){return e&&t&&e.datasetVersion===t.datasetVersion?"same":e&&t&&e.datasetVersion!==t.datasetVersion?"changed":e?"added":"removed"}function dos({datasetId:e,versionA:t,versionB:n,allItems:r,itemsAMap:s,itemsBMap:a}){const{Link:i}=yn(),l=t>n;return o.jsx(vn,{children:o.jsx(vn.Scroller,{children:o.jsx(vn.Items,{children:r.map(({id:c})=>{const u=s.get(c),d=a.get(c),f=uos(u,d);return o.jsxs(vn.Row,{columns:los,children:[o.jsx(vn.IdCell,{id:c,isShortened:!1}),f!=="same"?o.jsxs(o.Fragment,{children:[u?.datasetVersion?o.jsx(vn.LinkCell,{LinkComponent:i,href:`/datasets/${e}/items/${c}`,className:"gap-2",children:!d&&l?o.jsx(JS,{variant:"added",version:u.datasetVersion}):f==="changed"&&l?o.jsx(JS,{variant:"changed",version:u.datasetVersion}):o.jsx(JS,{version:u.datasetVersion})}):o.jsx(vn.Cell,{className:"flex items-center justify-center",children:o.jsx(_ae,{red:l,tooltip:l?"Deleted in this version":"Not present in this version"})}),d?.datasetVersion?o.jsx(vn.LinkCell,{LinkComponent:i,href:`/datasets/${e}/items/${c}`,className:"gap-2",children:!u&&!l?o.jsx(JS,{variant:"added",version:d.datasetVersion}):f==="changed"&&!l?o.jsx(JS,{variant:"changed",version:d.datasetVersion}):o.jsx(JS,{version:d.datasetVersion})}):o.jsx(vn.Cell,{className:"flex items-center justify-center",children:o.jsx(_ae,{red:!l,tooltip:l?"Not present in this version":"Deleted in this version"})})]}):o.jsx(vn.LinkCell,{LinkComponent:i,href:`/datasets/${e}/items/${c}`,className:"col-span-2 gap-2",children:o.jsx(JS,{variant:"same",version:d?.datasetVersion})}),f==="changed"?o.jsx(vn.LinkCell,{LinkComponent:i,href:`/datasets/${e}/items/${c}/versions?ids=${u?.datasetVersion},${d?.datasetVersion}`,children:"Compare"}):o.jsx(vn.Cell,{children:o.jsx(_ae,{tooltip:o.jsxs(o.Fragment,{children:["Comparing is available",o.jsx("br",{})," only for changed items"]})})})]},c)})})})})}const bXe={needsReview:"#facc15",complete:"#22c55e"},fos=[{label:"Needs Review",color:bXe.needsReview},{label:"Reviewed",color:bXe.complete}];function pos({reviewSummary:e,experiments:t,datasets:n,isLoading:r,isError:s}){const{data:a,maxVal:i,totalInPipeline:l}=v.useMemo(()=>{if(!e?.counts||!t)return{data:[],maxVal:0,totalInPipeline:0};const u=new Map;for(const m of t)u.set(m.id,m);const d=new Map;if(n)for(const m of n)d.set(m.id,m.name);let f=0,p=0;const h=[];for(const m of e.counts){const g=m.needsReview+m.complete;if(g===0)continue;p+=g,g>f&&(f=g);const y=u.get(m.experimentId),b=y?.datasetId?d.get(y.datasetId):void 0,x=b?`${b} · ${m.experimentId.slice(0,8)}`:m.experimentId.slice(0,8);h.push({name:x,values:[m.needsReview,m.complete]})}return{data:h,maxVal:f,totalInPipeline:p}},[e,t,n]),c=a.length>0;return o.jsxs(Ht,{children:[o.jsxs(Ht.TopBar,{children:[o.jsx(Ht.TitleAndDescription,{title:"Review Pipeline",description:"Items in review across experiments."}),c&&o.jsx(Ht.Summary,{value:String(l),label:"Items in pipeline"})]}),r?o.jsx(Ht.Loading,{}):s?o.jsx(Ht.Error,{message:"Failed to load review data"}):o.jsx(Ht.Content,{children:c?o.jsx(RN,{data:a,segments:fos,maxVal:i,fmt:u=>String(u)}):o.jsx(Ht.NoData,{message:"No items have been sent to review yet"})})]})}function xIe(){const e=We();return mt({queryKey:["experiment-review-summary"],queryFn:()=>e.getExperimentReviewSummary()})}function b7t(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 hos(e,t){const n=new Map,r=b7t(e);if(!r.size||!t)return n;for(const s of t){const a=r.get(s.id);if(!a||!s.datasetId||a.needsReview+a.complete===0)continue;const l=n.get(s.datasetId)??{needsReview:0,complete:0};l.needsReview+=a.needsReview,l.complete+=a.complete,n.set(s.datasetId,l)}return n}function mos(e){return e?.counts?e.counts.reduce((t,n)=>({needsReview:t.needsReview+n.needsReview,complete:t.complete+n.complete,inPipeline:t.inPipeline+n.needsReview+n.complete}),{needsReview:0,complete:0,inPipeline:0}):{needsReview:0,complete:0,inPipeline:0}}const gos=10;function vos(){const[e,t]=v.useState(!1),[n,r]=v.useState(""),[s,a]=v.useState("all"),[i,l]=v.useState("all"),[c,u]=v.useState("all"),[d,f]=v.useState(0),{data:p,isLoading:h,error:m}=Bg({page:d,perPage:gos}),{data:g,isLoading:y,error:b}=rQ(),{data:x}=xIe(),S=v.useMemo(()=>p?.datasets??[],[p?.datasets]),k=p?.pagination?.hasMore??!1,_=v.useMemo(()=>g?.experiments??[],[g?.experiments]),C=v.useMemo(()=>cas(S),[S]),E=v.useMemo(()=>hos(x,_),[x,_]),j=h||y,N=m||b,I=()=>t(!0),A=v.useCallback(()=>f(q=>q+1),[]),R=v.useCallback(()=>f(q=>Math.max(0,q-1)),[]),L=v.useCallback(q=>{r(q),f(0)},[]),D=v.useCallback(q=>{a(q),f(0)},[]),B=v.useCallback(q=>{l(q),f(0)},[]),H=v.useCallback(q=>{u(q),f(0)},[]);if(N&&ys(N))return o.jsx(lr,{children:o.jsx(Hs,{})});if(N&&xs(N))return o.jsx(lr,{children:o.jsx(Ms,{resource:"datasets"})});if(N)return o.jsx(lr,{children:o.jsx(qi,{title:"Failed to load datasets",message:N.message})});if(S.length===0&&!j&&d===0)return o.jsxs(o.Fragment,{children:[o.jsx(lr,{children:o.jsx(has,{onCreateClick:I})}),o.jsx(fbe,{open:e,onOpenChange:t})]});const F=s!=="all"||i!=="all"||c!=="all"||n!=="",z=()=>{r(""),a("all"),l("all"),u("all"),f(0)};return o.jsxs(Ft,{children:[o.jsx(Ft.TopArea,{children:o.jsx(vas,{search:n,onSearchChange:L,targetFilter:s,onTargetFilterChange:D,experimentFilter:i,onExperimentFilterChange:B,tagFilter:c,onTagFilterChange:H,tagOptions:C,onReset:z,hasActiveFilters:F,onCreateClick:I})}),o.jsx(pas,{datasets:S,experiments:_,reviewByDataset:E,isLoading:j,search:n,targetFilter:s,experimentFilter:i,tagFilter:c,currentPage:d,hasMore:k,onNextPage:A,onPrevPage:R}),o.jsx(fbe,{open:e,onOpenChange:t})]})}function Rz({children:e}){return o.jsxs(Ft,{height:"full",children:[o.jsx("div",{}),o.jsx(Ft.MainArea,{isCentered:!0,children:e})]})}function yos(){const{datasetId:e}=Sr(),t=qs(),[n,r]=Ri(),{activeVersion:s}=hIe(n,r),[a,i]=v.useState(!1),[l,c]=v.useState(!1),[u,d]=v.useState(!1),[f,p]=v.useState(!1),[h,m]=v.useState(!1),{data:g,error:y,isLoading:b}=Yx(e),{data:x=[],isLoading:S}=j1(e,void 0,s),k=!S&&x.length===0;if(b)return null;if(y&&ys(y))return o.jsx(Rz,{children:o.jsx(Hs,{})});if(y&&xs(y))return o.jsx(Rz,{children:o.jsx(Ms,{resource:"datasets"})});if(y&&xCe(y)||!b&&!y&&!g)return o.jsx(Rz,{children:o.jsx(Lr,{iconSlot:o.jsx(uy,{}),titleSlot:"Dataset not found",descriptionSlot:`No dataset with id "${e}".`,actionSlot:o.jsxs(oe,{as:Fa,to:"/datasets",children:[o.jsx(Ac,{}),"Back to Datasets"]})})});if(y)return o.jsx(Rz,{children:o.jsx(qi,{title:"Failed to load dataset",message:y instanceof Error?y.message:"An unexpected error occurred. Please try again."})});const _=E=>{t(`/datasets/${e}/experiments/${E}`)},C=()=>{t("/datasets")};return o.jsxs(o.Fragment,{children:[o.jsxs(Ft,{height:"full",children:[o.jsx(Ft.TopArea,{children:o.jsxs(Ft.Row,{children:[o.jsxs(Ft.Column,{children:[g?.description&&o.jsx("p",{className:"text-ui-smd text-neutral3 mb-1",children:g.description}),o.jsxs(Ut,{numOfCol:2,children:[o.jsx(Ut.Key,{children:"Created at"}),o.jsx(Ut.Value,{children:g?.createdAt?nr(new Date(g.createdAt),"MMM d, yyyy"):""}),o.jsx(Ut.Key,{children:"Latest version"}),o.jsxs(Ut.Value,{children:["v",g?.version??""]})]})]}),o.jsx(Ft.Column,{children:o.jsxs(Mr,{children:[k?o.jsxs(Pn,{children:[o.jsx(An,{asChild:!0,children:o.jsx("span",{className:"cursor-not-allowed",children:o.jsx("div",{className:"pointer-events-none opacity-50",inert:!0,"aria-disabled":"true",children:o.jsxs(oe,{variant:"primary",children:[o.jsx(Of,{}),s!=null?`Run on v${s}`:"Run Experiment"]})})})}),o.jsx(Rn,{children:"Add items to the dataset before running an experiment"})]}):o.jsxs(oe,{variant:"primary",onClick:()=>i(!0),children:[o.jsx(Of,{}),s!=null?`Run on v${s}`:"Run Experiment"]}),o.jsxs(dt,{children:[o.jsx(dt.Trigger,{asChild:!0,children:o.jsx(oe,{size:"lg","aria-label":"Dataset actions menu",children:o.jsx(ND,{})})}),o.jsxs(dt.Content,{align:"end",className:"w-48",children:[o.jsxs(dt.Item,{onSelect:()=>d(!0),children:[o.jsx(rm,{})," Edit Dataset"]}),o.jsxs(dt.Item,{onSelect:()=>m(!0),children:[o.jsx(tm,{})," Duplicate Dataset"]}),o.jsxs(dt.Item,{onSelect:()=>p(!0),className:"text-red-500 focus:text-red-400",children:[o.jsx(uu,{})," Delete Dataset"]})]})]})]})})]})}),o.jsx(Ft.MainArea,{children:o.jsx(Ais,{datasetId:e,onAddItemClick:()=>c(!0)})})]}),o.jsx(zis,{datasetId:e,version:s??void 0,requestContextSchema:g?.requestContextSchema,open:a,onOpenChange:i,onSuccess:_}),o.jsx(Pis,{datasetId:e,open:l,onOpenChange:c}),g&&o.jsx(kas,{open:u,onOpenChange:d,dataset:{id:g.id,name:g.name,description:g?.description||"",targetType:g.targetType,inputSchema:g.inputSchema,groundTruthSchema:g.groundTruthSchema,requestContextSchema:g.requestContextSchema}}),g&&o.jsx(xas,{open:h,onOpenChange:m,sourceDatasetId:g.id,sourceDatasetName:g.name,sourceDatasetDescription:g.description,sourceDatasetTargetType:g.targetType}),g&&o.jsx(_as,{open:f,onOpenChange:p,datasetId:g.id,datasetName:g.name,onSuccess:C})]})}function x7t({experiment:e}){const{Link:t,paths:n}=yn(),{data:r}=Em(),{data:s}=Wy(),{data:a}=ih(),i=()=>{switch(e.targetType){case"agent":return n.agentLink(e.targetId);case"workflow":return n.workflowLink(e.targetId);case"scorer":return n.scorerLink(e.targetId);default:return"#"}},l=()=>{const u=e.targetId;if(!u)return u;switch(e.targetType){case"agent":return r?.[u]?.name??u;case"workflow":return s?.[u]?.name??u;case"scorer":return a?.[u]?.scorer?.config?.name??u;default:return u}},c=e.agentVersion&&e.targetType==="agent"&&e.targetId?`${n.agentLink(e.targetId)}/editor?version=${encodeURIComponent(e.agentVersion)}`:null;return o.jsx(Ft.TopArea,{children:o.jsxs(Ft.Row,{children:[o.jsx(Ft.Column,{children:o.jsxs(Ut,{numOfCol:2,children:[e.name&&o.jsxs(o.Fragment,{children:[o.jsx(Ut.Key,{children:"Name"}),o.jsx(Ut.Value,{children:e.name})]}),e.description&&o.jsxs(o.Fragment,{children:[o.jsx(Ut.Key,{children:"Description"}),o.jsx(Ut.Value,{children:e.description})]}),o.jsx(Ut.Key,{children:"Created at"}),o.jsx(Ut.Value,{children:nr(new Date(e.createdAt),"MMM d, yyyy 'at' h:mm a")}),e.completedAt&&o.jsxs(o.Fragment,{children:[o.jsx(Ut.Key,{children:"Completed at"}),o.jsx(Ut.Value,{children:nr(new Date(e.completedAt),"MMM d, yyyy 'at' h:mm a")})]}),o.jsx(Ut.Key,{children:"Target"}),o.jsx(Ut.ValueLink,{href:i(),as:t,children:l()}),e.agentVersion&&o.jsxs(o.Fragment,{children:[o.jsx(Ut.Key,{children:"Version"}),c?o.jsx(Ut.ValueLink,{href:c,as:t,children:e.agentVersion}):o.jsx(Ut.Value,{children:e.agentVersion})]})]})}),o.jsx(Ft.Column,{children:o.jsx(Xis,{experiment:e})})]})})}function Pz({children:e}){return o.jsxs(Ft,{height:"full",children:[o.jsx("div",{}),o.jsx(Ft.MainArea,{isCentered:!0,children:e})]})}function bos(){const{datasetId:e,experimentId:t}=Sr(),{data:n,isLoading:r,error:s}=PV(e,t),{data:a,isLoading:i,setEndOfListElement:l,isFetchingNextPage:c,hasNextPage:u}=zG({datasetId:e,experimentId:t,experimentStatus:n?.status});return!e||!t||r?null:s&&ys(s)?o.jsx(Pz,{children:o.jsx(Hs,{})}):s&&xs(s)?o.jsx(Pz,{children:o.jsx(Ms,{resource:"datasets"})}):s&&xCe(s)||!r&&!s&&!n?o.jsx(Pz,{children:o.jsx(Lr,{iconSlot:o.jsx(Rbe,{}),titleSlot:"Experiment not found",descriptionSlot:`No experiment with id "${t}".`,actionSlot:o.jsxs(oe,{as:Fa,to:`/datasets/${e}?tab=experiments`,children:[o.jsx(Ac,{}),"Back to Dataset"]})})}):s?o.jsx(Pz,{children:o.jsx(qi,{title:"Failed to load experiment",message:s instanceof Error?s.message:"An unexpected error occurred. Please try again."})}):o.jsxs(Ft,{height:"full",children:[o.jsx(x7t,{experiment:n}),o.jsx(Ft.MainArea,{children:o.jsx(y7t,{experimentId:t,datasetId:e,experimentStatus:n.status,results:a??[],isLoading:i,setEndOfListElement:l,isFetchingNextPage:c,hasNextPage:u})})]})}function xos(){const{datasetId:e}=Sr(),[t,n]=Ri(),{error:r}=Yx(e??""),s=t.get("baseline")??"",a=t.get("contender")??"";return r&&ys(r)?o.jsx(ds,{children:o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Hs,{})})}):r&&xs(r)?o.jsx(ds,{children:o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Ms,{resource:"datasets"})})}):!e||!s||!a?o.jsx(ds,{children:o.jsx(_y,{children:o.jsxs("div",{className:"text-neutral4 py-8 text-center",children:[o.jsx("p",{children:"Select two experiments to compare."}),o.jsxs("p",{className:"mt-2 text-sm",children:["Use the URL format: /datasets/","{datasetId}","/experiments?baseline=","{experimentIdA}","&contender=","{experimentIdB}"]})]})})}):o.jsx(ds,{children:o.jsx(_y,{children:o.jsxs("div",{className:"mx-auto grid w-full max-w-[100rem] content-start px-12",children:[o.jsxs(ma,{children:[o.jsxs(ma.Column,{children:[o.jsxs(ma.Title,{children:[o.jsx(Ww,{})," Dataset Experiments Comparison"]}),o.jsxs(ma.Description,{children:["Comparing"," ",o.jsx(Fa,{to:`/datasets/${e}/experiments/${s}`,children:s.slice(0,8)})," vs"," ",o.jsx(Fa,{to:`/datasets/${e}/experiments/${a}`,children:a.slice(0,8)})]})]}),o.jsx(ma.Column,{children:o.jsxs(oe,{as:Fa,to:`/datasets/${e}`,children:[o.jsx(Ac,{}),"Back to Dataset"]})})]}),o.jsx(ros,{datasetId:e,experimentIdA:s,experimentIdB:a,onSwap:()=>{n({baseline:a,contender:s})}})]})})})}function wos(){const{datasetId:e,itemId:t}=Sr(),{Link:n}=yn(),r=qs(),{data:s,isLoading:a,error:i}=pIe(e??"",t??""),{updateItem:l,deleteItem:c}=Ni(),{data:u}=Yx(e??""),d=s?.[0]??null,f=d?.isDeleted??!1,[p,h]=v.useState(null),m=v.useMemo(()=>!d||f?{input:"",groundTruth:"",metadata:"",trajectory:"",toolMocks:"",requestContext:""}:{input:JSON.stringify(d.input,null,2),groundTruth:d.groundTruth?JSON.stringify(d.groundTruth,null,2):"",metadata:d.metadata?JSON.stringify(d.metadata,null,2):"",trajectory:d.expectedTrajectory!=null?JSON.stringify(d.expectedTrajectory,null,2):"",toolMocks:d.toolMocks?.length?JSON.stringify(d.toolMocks,null,2):"",requestContext:d.requestContext?JSON.stringify(d.requestContext,null,2):""},[d,f]),g=d?.datasetVersion??0,[y,b]=v.useState(!1),[x,S]=v.useState(m.input),[k,_]=v.useState(m.groundTruth),[C,E]=v.useState(m.metadata),[j,N]=v.useState(m.trajectory),[I,A]=v.useState(m.toolMocks),[R,L]=v.useState(m.requestContext),[D,B]=v.useState(g);g!==D&&(B(g),S(m.input),_(m.groundTruth),E(m.metadata),N(m.trajectory),A(m.toolMocks),L(m.requestContext));const[H,F]=v.useState(!1),z=te=>{h(f?te:te.isLatest?null:te)},q=()=>{h(null)},M=!f&&p!=null,G=()=>{M||b(!0)},V=()=>{M||F(!0)},$=async()=>{if(!e||!t)return;let te;try{te=JSON.parse(x)}catch{Le.error("Input must be valid JSON");return}let J;if(k.trim())try{J=JSON.parse(k)}catch{Le.error("Ground Truth must be valid JSON");return}let ae;if(C.trim())try{ae=JSON.parse(C)}catch{Le.error("Metadata must be valid JSON");return}let de;const Y=j!==m.trajectory;if(Y&&j.trim())try{de=JSON.parse(j)}catch{Le.error("Expected Trajectory must be valid JSON");return}let ne;const fe=I!==m.toolMocks;if(fe&&I.trim())try{const ue=JSON.parse(I);if(!Array.isArray(ue)){Le.error("Tool Mocks must be a JSON array");return}ne=ue}catch{Le.error("Tool Mocks must be valid JSON");return}let he;const le=R!==m.requestContext;if(le&&R.trim())try{he=JSON.parse(R)}catch{Le.error("Request Context must be valid JSON");return}try{await l.mutateAsync({datasetId:e,itemId:t,input:te,groundTruth:J,metadata:ae,...Y?{expectedTrajectory:de??null}:{},...fe?{toolMocks:ne??[]}:{},...le?{requestContext:he}:{}}),Le.success("Item updated successfully"),b(!1)}catch(ue){Le.error(`Failed to update item: ${ue instanceof Error?ue.message:"Unknown error"}`)}},U=()=>{d&&(S(JSON.stringify(d.input,null,2)),_(d.groundTruth?JSON.stringify(d.groundTruth,null,2):""),E(d.metadata?JSON.stringify(d.metadata,null,2):""),N(d.expectedTrajectory!=null?JSON.stringify(d.expectedTrajectory,null,2):""),A(d.toolMocks?.length?JSON.stringify(d.toolMocks,null,2):""),L(d.requestContext?JSON.stringify(d.requestContext,null,2):"")),b(!1)},Z=async()=>{if(!(!e||!t))try{await c.mutateAsync({datasetId:e,itemId:t}),Le.success("Item deleted successfully"),F(!1),r(`/datasets/${e}`)}catch(te){Le.error(`Failed to delete item: ${te instanceof Error?te.message:"Unknown error"}`)}},K=p??d,ee=K?{id:t??"",datasetId:e??"",datasetVersion:K.datasetVersion,input:K.input,groundTruth:K.groundTruth,expectedTrajectory:K.expectedTrajectory,metadata:K.metadata,createdAt:K.createdAt,updatedAt:K.updatedAt}:null;return i&&ys(i)?o.jsx(ds,{children:o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Hs,{})})}):i&&xs(i)?o.jsx(ds,{children:o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Ms,{resource:"datasets"})})}):a?null:!e||!t||!s||s.length===0?o.jsx(ds,{children:o.jsx(_y,{children:o.jsx("div",{className:"text-neutral3 p-4",children:"Item not found"})})}):o.jsxs(o.Fragment,{children:[o.jsx(ds,{children:o.jsx("div",{className:"h-full overflow-hidden px-6 pb-4",children:o.jsxs("div",{className:"mx-auto grid h-full max-w-[60rem] grid-rows-[auto_1fr] gap-6",children:[o.jsxs(ma,{children:[o.jsxs(ma.Column,{children:[o.jsxs(ma.Title,{children:[o.jsx(FN,{}),t," ",o.jsx(Pa,{content:t})]}),o.jsx(ma.Description,{children:o.jsxs(ko,{children:["Item of ",o.jsx(uy,{})," ",u?.name]})}),o.jsxs(ma.Description,{children:[o.jsxs(ko,{children:[o.jsx(cit,{})," Created at"," ",d?.createdAt?nr(new Date(d.createdAt),"MMM d, yyyy"):""]}),o.jsxs(ko,{children:[o.jsx(b_,{})," Latest version v",d?.datasetVersion??""]})]})]}),o.jsx(ma.Column,{children:!y&&!f&&o.jsxs(Mr,{children:[o.jsxs(oe,{onClick:G,disabled:M,title:M?"Return to latest version to edit":void 0,children:[o.jsx(_it,{})," Edit"]}),o.jsxs(oe,{onClick:V,disabled:M,title:M?"Return to latest version to delete":void 0,children:[o.jsx(uu,{})," Delete"]})]})})]}),o.jsxs(cy,{className:y?"grid-cols-1":"grid-cols-[1fr_auto]",children:[o.jsxs(Yr,{withRightSeparator:!y,children:[f&&d&&o.jsx(En,{variant:"destructive",title:"Item deleted",children:o.jsxs(En.Message,{children:["This item was deleted at version v",d.datasetVersion]})}),!f&&M&&p&&o.jsx(En,{variant:"warning",title:"Previous version",action:o.jsxs(En.Button,{onClick:q,children:[o.jsx(sit,{})," Return to the latest version"]}),children:o.jsxs(En.Message,{children:["Viewing version v",p.datasetVersion]})}),y?o.jsx(m7t,{inputValue:x,setInputValue:S,groundTruthValue:k,setGroundTruthValue:_,metadataValue:C,setMetadataValue:E,trajectoryValue:j,setTrajectoryValue:N,toolMocksValue:I,setToolMocksValue:A,requestContextValue:R,setRequestContextValue:L,validationErrors:null,onSave:$,onCancel:U,isSaving:l.isPending}):ee?o.jsx(vIe,{item:ee,Link:n}):o.jsx("div",{className:"text-neutral4 text-sm",children:"Item data not available"})]}),!y&&o.jsx(Yr,{children:o.jsx(sos,{datasetId:e,itemId:t,onClose:()=>{},onVersionSelect:z,onCompareVersionsClick:te=>{r(`/datasets/${e}/items/${t}/versions?ids=${te.join(",")}`)},activeVersion:p?.datasetVersion??null})})]})]})})}),o.jsx(At,{open:H,onOpenChange:F,children:o.jsxs(At.Content,{children:[o.jsxs(At.Header,{children:[o.jsx(At.Title,{children:"Delete Item"}),o.jsx(At.Description,{children:"Are you sure you want to delete this item? This action cannot be undone."})]}),o.jsxs(At.Footer,{children:[o.jsx(At.Cancel,{children:"Cancel"}),o.jsx(At.Action,{onClick:Z,children:c.isPending?"Deleting...":"Delete"})]})]})})]})}function xXe(e){return JSON.stringify({input:e.input??null,groundTruth:e.groundTruth??null,metadata:e.metadata??null},null,2)}function Sos(){const{datasetId:e}=Sr(),[t,n]=Ri(),r=t.get("items")?.split(",").filter(Boolean)??[],{data:s,error:a}=Yx(e??""),{Link:i}=yn(),[l,c]=v.useState(!1),{data:u}=$V(e??"",r[0]??""),{data:d}=$V(e??"",r[1]??"");return a&&ys(a)?o.jsx(ds,{children:o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Hs,{})})}):a&&xs(a)?o.jsx(ds,{children:o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Ms,{resource:"datasets"})})}):!e||r.length<2?o.jsx(ds,{children:o.jsx(_y,{children:o.jsx("div",{className:"text-neutral4 py-8 text-center",children:o.jsx("p",{children:"Select at least two items to compare."})})})}):o.jsxs(ds,{children:[o.jsx(My,{owner:"dataset-items-compare",children:o.jsxs(oe,{as:Fa,to:`/datasets/${e}`,variant:"outline",children:[o.jsx(Ac,{}),"Back to Dataset"]})}),o.jsx("div",{className:"h-full overflow-hidden px-[3vw] pb-4",children:o.jsxs("div",{className:X("grid gap-6 max-w-[140rem] mx-auto grid-rows-[auto_1fr] h-full",{"grid-rows-[auto_auto_1fr]":l}),children:[o.jsxs(ma,{children:[o.jsxs(ma.Column,{children:[o.jsxs(ma.Title,{children:[o.jsx(Ww,{}),"Compare Dataset Items"]}),o.jsx(ma.Description,{children:o.jsxs(ko,{children:["Comparing ",r.length," items of"," ",o.jsx(Fa,{to:`/datasets/${e}`,className:"text-info1 hover:underline",children:s?.name||e?.slice(0,8)})]})})]}),o.jsx(ma.Column,{children:o.jsx(Mr,{children:o.jsx(oe,{variant:"primary",onClick:()=>c(f=>!f),children:l?o.jsxs(o.Fragment,{children:[o.jsx(Pbe,{})," Default View"]}):o.jsxs(o.Fragment,{children:[o.jsx(HHt,{})," Diff View"]})})})})]}),o.jsx(cy,{className:"grid-cols-[1fr_3vw_1fr]",children:r.map((f,p)=>o.jsxs(v.Fragment,{children:[o.jsx(kos,{datasetId:e,itemId:f,Link:i,idx:p,itemIds:r,showContent:!l,onItemChange:h=>{const m=[...r];m[p]=h,n({items:m.join(",")})}}),p==0&&o.jsx("div",{className:X("bg-surface5 w-[3px] shrink-0 mx-[1.5vw]")})]},f))}),l&&u&&d&&o.jsx(FEe,{codeA:xXe(u),codeB:xXe(d)})]})})]})}function kos({datasetId:e,itemId:t,Link:n,idx:r,itemIds:s,onItemChange:a,showContent:i=!0}){const{data:l,isLoading:c}=$V(e,t),{data:u}=j1(e),d=new Set(s.filter((p,h)=>h!==r)),f=(u??[]).map(p=>({value:p.id,label:p.id,disabled:d.has(p.id)}));return o.jsxs(Yr,{children:[o.jsxs(Yr.Toolbar,{className:"flex gap-4",children:[o.jsxs(oa,{name:`compare-item-${r}`,value:t,onValueChange:a,children:[o.jsx(ca,{"aria-label":"Item",children:o.jsx(la,{placeholder:"Select item"})}),o.jsx(ua,{children:f.map(p=>o.jsx(Ar,{value:p.value,disabled:p.disabled,children:p.label},p.value))})]}),o.jsxs(oe,{as:n,to:`/datasets/${e}/items/${t}`,children:[o.jsx(b_,{}),"Versions"]})]}),i&&o.jsx(Yr.Content,{children:c?o.jsx("div",{className:"text-neutral4 text-sm",children:"Loading..."}):l?o.jsxs(o.Fragment,{children:[o.jsx($is,{item:l}),o.jsx(vIe,{item:l,Link:n})]}):o.jsxs("div",{className:"text-neutral4 text-sm",children:["Item ",t.slice(0,8)," not found"]})})]})}function wXe(e){return JSON.stringify({input:e.input??null,groundTruth:e.groundTruth??null,metadata:e.metadata??null},null,2)}function Oos(){const{datasetId:e,itemId:t}=Sr(),[n,r]=Ri(),[s,a]=v.useState(!1),i=n.get("ids")?.split(",").map(Number).filter(h=>!isNaN(h)&&h>0)??[],{data:l,error:c}=Yx(e??""),{Link:u}=yn(),{data:d}=pIe(e??"",t??""),{data:f}=hbe(e??"",t??"",i[0]??0,l?.version),{data:p}=hbe(e??"",t??"",i[1]??0,l?.version);return c&&ys(c)?o.jsx(ds,{children:o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Hs,{})})}):c&&xs(c)?o.jsx(ds,{children:o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Ms,{resource:"datasets"})})}):!e||!t||i.length<2?o.jsx(ds,{children:o.jsx(_y,{children:o.jsx("div",{className:"text-neutral4 py-8 text-center",children:o.jsx("p",{children:"Select at least two versions to compare."})})})}):o.jsxs(ds,{children:[o.jsx(My,{owner:"dataset-item-versions-compare",children:o.jsxs(oe,{as:Fa,to:`/datasets/${e}/items/${t}`,variant:"outline",children:[o.jsx(Ac,{}),"Back to Item"]})}),o.jsx("div",{className:"h-full overflow-hidden px-[3vw] pb-4",children:o.jsxs("div",{className:X("grid gap-6 max-w-[140rem] mx-auto grid-rows-[auto_1fr] h-full",{"grid-rows-[auto_auto_1fr]":s}),children:[o.jsxs(ma,{children:[o.jsxs(ma.Column,{children:[o.jsxs(ma.Title,{children:[o.jsx(Ww,{}),"Compare Dataset Item Versions"]}),o.jsx(ma.Description,{children:o.jsxs(ko,{children:["Comparing ",i.length," versions of"," ",o.jsx(Fa,{to:`/datasets/${e}/items/${t}`,className:"text-info1 hover:underline",children:t})]})})]}),o.jsx(ma.Column,{children:o.jsx(Mr,{children:o.jsx(oe,{variant:"primary",onClick:()=>a(h=>!h),children:s?o.jsxs(o.Fragment,{children:[o.jsx(Pbe,{})," Default View"]}):o.jsxs(o.Fragment,{children:[o.jsx(NWt,{})," Diff View"]})})})})]}),o.jsx(cy,{className:"grid-cols-[1fr_3vw_1fr]",children:i.map((h,m)=>o.jsxs(v.Fragment,{children:[o.jsx(_os,{datasetId:e,itemId:t,datasetVersion:h,latestVersion:l?.version,allVersions:d??[],versionNumbers:i,Link:u,idx:m,showContent:!s,onVersionChange:g=>{const y=[...i];y[m]=g,r({ids:y.join(",")})}}),m===0&&o.jsx("div",{className:X("bg-surface5 w-[3px] shrink-0 mx-[1.5vw]")})]},h))}),s&&f&&p&&o.jsx(FEe,{codeA:wXe(f),codeB:wXe(p)})]})})]})}function _os({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}=hbe(e,t,n,r),p=new Set(a.filter((g,y)=>y!==l)),h=s.map(g=>{const y=typeof g.updatedAt=="string"?new Date(g.updatedAt):g.updatedAt;return{value:String(g.datasetVersion),label:o.jsxs(o.Fragment,{children:[o.jsxs("b",{children:["v. ",g.datasetVersion]})," - ",nr(y,"MMM d, yyyy h:mm a"),g.isLatest?o.jsx(Js,{color:"blue",size:"small",children:"Latest"}):null]}),disabled:p.has(g.datasetVersion)}}),m=d?{id:d.id,datasetId:e,datasetVersion:d.datasetVersion,input:d.input,groundTruth:d.groundTruth,metadata:d.metadata,createdAt:d.createdAt,updatedAt:d.updatedAt}:null;return o.jsxs(Yr,{children:[o.jsxs(Yr.Toolbar,{className:"grid grid-cols-[auto_1fr] gap-4",children:[o.jsx(b_,{className:"h-6 w-6 opacity-50"}),o.jsxs(oa,{name:`compare-version-${l}`,value:String(n),onValueChange:g=>u(Number(g)),children:[o.jsx(ca,{"aria-label":"Version",className:"w-full",children:o.jsx(la,{placeholder:"Select version"})}),o.jsx(ua,{children:h.map(g=>o.jsx(Ar,{value:g.value,disabled:g.disabled,children:g.label},g.value))})]})]}),c&&o.jsx(Yr.Content,{children:f?o.jsx("div",{className:"text-neutral4 text-sm",children:"Loading..."}):!d||!m?o.jsxs("div",{className:"text-neutral4 text-sm",children:["Version ",n," not found"]}):o.jsx(vIe,{item:m,Link:i})})]})}function Cos(){const{datasetId:e}=Sr(),[t]=Ri(),n=t.get("ids")?.split(",").map(Number).filter(g=>!isNaN(g)&&g>0)??[],r=qs(),{data:s,error:a}=Yx(e??""),i=j1(e??"",void 0,n[0]??null),l=j1(e??"",void 0,n[1]??null),c=v.useMemo(()=>i.data??[],[i.data]),u=v.useMemo(()=>l.data??[],[l.data]),d=v.useMemo(()=>{const g=new Map;for(const y of[...c,...u])g.has(y.id)||g.set(y.id,{id:y.id,createdAt:new Date(y.createdAt)});return[...g.values()].sort((y,b)=>b.createdAt.getTime()-y.createdAt.getTime())},[c,u]),f=v.useMemo(()=>new Map(c.map(g=>[g.id,g])),[c]),p=v.useMemo(()=>new Map(u.map(g=>[g.id,g])),[u]);if(a&&ys(a))return o.jsx(ds,{children:o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Hs,{})})});if(a&&xs(a))return o.jsx(ds,{children:o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Ms,{resource:"datasets"})})});if(!e||n.length<2)return o.jsx(ds,{children:o.jsx(_y,{children:o.jsx("div",{className:"text-neutral4 py-8 text-center",children:o.jsx("p",{children:"Select at least two versions to compare."})})})});const h=(g,y,b)=>{r(`/datasets/${e}/items/${g}/versions?ids=${y?.datasetVersion??""},${b?.datasetVersion??""}`)},m=(g,y)=>{r(`/datasets/${e}/versions?ids=${g},${y}`,{replace:!0})};return o.jsx(ds,{children:o.jsx("div",{className:"h-full overflow-hidden px-[3vw] pb-4",children:o.jsxs("div",{className:"mx-auto grid h-full max-w-[140rem] grid-rows-[auto_1fr] gap-6",children:[o.jsxs(ma,{children:[o.jsxs(ma.Column,{children:[o.jsxs(ma.Title,{children:[o.jsx(xGt,{})," Compare Dataset Versions"]}),o.jsx(ma.Description,{children:o.jsxs(ko,{children:[o.jsx(b_,{})," Comparing ",n.length," versions of"," ",s?.name||e?.slice(0,8)]})})]}),o.jsx(ma.Column,{children:o.jsxs(oe,{as:Fa,to:`/datasets/${e}`,children:[o.jsx(Ac,{}),"Back to Dataset"]})})]}),o.jsx(cy,{children:o.jsxs(Yr,{children:[o.jsx(oos,{datasetId:e,versionA:String(n[0]),versionB:String(n[1]),onVersionChange:m}),o.jsx(dos,{datasetId:e,versionA:n[0],versionB:n[1],allItems:d,itemsAMap:f,itemsBMap:p,onItemClick:h})]})})]})})})}function gbe({children:e,className:t}){return o.jsx("div",{className:X("flex flex-wrap gap-8",t),children:e})}function Eos(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 jos({scorers:e,datasets:t,experiments:n,avgScore:r,prevAvgScore:s,totalNeedsReview:a,isLoadingScorers:i,isLoadingDatasets:l,isLoadingExperiments:c,isLoadingScores:u,isLoadingReview:d}){const f=e?Object.keys(e).length:void 0,p=t?.length,h=n?.length,m=r!=null&&s!=null&&s!==0?{changePct:Math.round((r-s)/s*100*10)/10,prevValue:String(s)}:null,g=Eos(n);return o.jsxs(o.Fragment,{children:[o.jsxs(es,{children:[o.jsx(es.Label,{children:"Total Scorers"}),i?o.jsx(es.Loading,{}):f!=null?o.jsxs(o.Fragment,{children:[o.jsx(es.Value,{children:String(f)}),o.jsx(es.NoChange,{message:"Static count"})]}):o.jsx(es.NoData,{})]}),o.jsxs(es,{children:[o.jsx(es.Label,{children:"Total Datasets"}),l?o.jsx(es.Loading,{}):p!=null?o.jsxs(o.Fragment,{children:[o.jsx(es.Value,{children:String(p)}),o.jsx(es.NoChange,{message:"Static count"})]}):o.jsx(es.NoData,{})]}),o.jsxs(es,{children:[o.jsx(es.Label,{children:"Avg Score"}),u?o.jsx(es.Loading,{}):r!=null?o.jsxs(o.Fragment,{children:[o.jsx(es.Value,{children:String(r)}),m?o.jsx(es.Change,{changePct:m.changePct,prevValue:m.prevValue}):o.jsx(es.NoChange,{})]}):o.jsx(es.NoData,{})]}),o.jsxs(es,{children:[o.jsx(es.Label,{children:"Total Experiments"}),c?o.jsx(es.Loading,{}):h!=null?o.jsxs(o.Fragment,{children:[o.jsx(es.Value,{children:String(h)}),g?o.jsx(es.Change,{changePct:g.changePct,prevValue:g.prevValue}):o.jsx(es.NoChange,{})]}):o.jsx(es.NoData,{})]}),o.jsxs(es,{children:[o.jsx(es.Label,{children:"Needs Review"}),d?o.jsx(es.Loading,{}):a!=null?o.jsxs(o.Fragment,{children:[o.jsx(es.Value,{children:String(a)}),a>0?o.jsx(es.NoChange,{message:"items pending review"}):o.jsx(es.NoChange,{message:"All caught up"})]}):o.jsx(es.NoData,{})]})]})}const SXe="minmax(9rem,1fr) 1fr auto auto auto auto auto auto auto";function Tos(e){return e?(typeof e=="string"?new Date(e):e).toLocaleDateString("en-US",{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"}):"—"}const Nos={completed:"success",running:"warning",failed:"error",pending:"neutral"};function Ios({experiments:e,datasets:t,reviewByExperiment:n,isLoading:r,search:s="",statusFilter:a="all",datasetFilter:i="all"}){const{paths:l,Link:c}=yn(),u=v.useMemo(()=>{const p=new Map;return t?.forEach(h=>p.set(h.id,h.name)),p},[t]),d=v.useMemo(()=>[...e].sort((p,h)=>{const m=p.createdAt?new Date(p.createdAt).getTime():0;return(h.createdAt?new Date(h.createdAt).getTime():0)-m}),[e]),f=v.useMemo(()=>{const p=s.toLowerCase();return d.filter(h=>{const m=h.datasetId?u.get(h.datasetId)??"":"",g=!p||h.id.toLowerCase().includes(p)||(h.name??"").toLowerCase().includes(p)||m.toLowerCase().includes(p)||(h.targetId??"").toLowerCase().includes(p),y=a==="all"||h.status===a,b=i==="all"||h.datasetId===i;return g&&y&&b})},[d,s,u,a,i]);return r?o.jsx(ol,{columns:SXe}):o.jsxs(ve,{columns:SXe,variant:"striped",children:[o.jsxs(ve.Top,{children:[o.jsx(ve.TopCell,{children:"Experiment"}),o.jsx(ve.TopCell,{children:"Dataset"}),o.jsx(ve.TopCell,{children:"Target"}),o.jsx(ve.TopCell,{children:"Status"}),o.jsx(ve.TopCell,{className:"text-center",children:"Items"}),o.jsx(ve.TopCell,{className:"text-center",children:"Succeeded"}),o.jsx(ve.TopCell,{className:"text-center",children:"Failed"}),o.jsx(ve.TopCell,{className:"text-center",children:"Review"}),o.jsx(ve.TopCell,{children:"Date"})]}),f.map(p=>{const h=p.datasetId?u.get(p.datasetId)??Y1(p.datasetId)??p.datasetId:"—",m=p.status??"pending",g=p.succeededCount??0,y=p.failedCount??0,b=p.totalItems??0,x=b>0?Math.round(g/b*100):0;return o.jsxs(ve.RowLink,{to:l.experimentLink(p.id),LinkComponent:c,children:[o.jsx(ve.Cell,{children:o.jsx(h7t,{experiment:p})}),o.jsx(ve.TextCell,{children:h}),o.jsx(ve.Cell,{children:o.jsxs("span",{className:"truncate",children:[p.targetType," ",p.targetId]})}),o.jsx(ve.Cell,{children:o.jsx(bg,{variant:Nos[m]??"neutral",withDot:!0,children:m})}),o.jsx(ve.TextCell,{className:"text-center",children:b}),o.jsx(ve.TextCell,{className:"text-center",children:o.jsxs("span",{className:g>0?"text-accent1":"",children:[g," (",x,"%)"]})}),o.jsx(ve.TextCell,{className:"text-center",children:o.jsx("span",{className:y>0?"text-accent2":"",children:y})}),o.jsx(ve.Cell,{className:"text-center",children:(()=>{const S=n?.get(p.id);if(!S)return o.jsx("span",{className:"text-neutral2",children:"—"});const k=S.needsReview+S.complete;return k===0?o.jsx("span",{className:"text-neutral2",children:"—"}):S.needsReview>0?o.jsxs(Js,{size:"small",color:"yellow",children:[S.needsReview," pending"]}):o.jsxs(Js,{size:"small",color:"green",children:[S.complete,"/",k," reviewed"]})})()}),o.jsx(ve.TextCell,{children:Tos(p.createdAt)})]},p.id)})]})}const Aos=[{value:"all",label:"All statuses"},{value:"completed",label:"Completed"},{value:"running",label:"Running"},{value:"failed",label:"Failed"},{value:"pending",label:"Pending"}];function Ros(e){return[{value:"all",label:"All datasets"},...(e??[]).map(t=>({value:t.id,label:t.name}))]}const $z={completed:"#22c55e",running:"#facc15",pending:"#fb923c",failed:"#f87171"},Pos=[{label:"Completed",color:$z.completed},{label:"Running",color:$z.running},{label:"Pending",color:$z.pending},{label:"Failed",color:$z.failed}];function $os({experiments:e,datasets:t,isLoading:n,isError:r}){const{data:s,maxVal:a}=v.useMemo(()=>{if(!e||e.length===0)return{data:[],maxVal:0};const l=new Map;if(t)for(const f of t)l.set(f.id,f.name);const c=new Map;for(const f of e){const p=f.datasetId??"unknown";c.has(p)||c.set(p,{completed:0,running:0,pending:0,failed:0});const h=c.get(p),m=f.status;m in h&&h[m]++}let u=0;return{data:Array.from(c.entries()).map(([f,p])=>{const h=p.completed+p.running+p.pending+p.failed;return h>u&&(u=h),{name:l.get(f)??f.slice(0,12),values:[p.completed,p.running,p.pending,p.failed]}}),maxVal:u}},[e,t]),i=s.length>0;return o.jsxs(Ht,{children:[o.jsxs(Ht.TopBar,{children:[o.jsx(Ht.TitleAndDescription,{title:"Experiments by Dataset",description:"Experiment status breakdown per dataset."}),i&&o.jsx(Ht.Summary,{value:String(e?.length??0),label:"Total experiments"})]}),n?o.jsx(Ht.Loading,{}):r?o.jsx(Ht.Error,{message:"Failed to load experiments data"}):o.jsx(Ht.Content,{children:i?o.jsx(RN,{data:s,segments:Pos,maxVal:a,fmt:l=>String(l)}):o.jsx(Ht.NoData,{message:"No experiments have been run yet"})})]})}const Mos=()=>o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Lr,{iconSlot:o.jsx(Nf,{}),titleSlot:"No Experiments yet",descriptionSlot:o.jsxs(o.Fragment,{children:["Run an experiment from a dataset to evaluate ",o.jsx("br",{}),"your agents and workflows."]}),actionSlot:o.jsx("div",{className:"flex flex-col items-center gap-2",children:o.jsxs(oe,{variant:"ghost",as:"a",href:"https://mastra.ai/en/docs/evals/datasets/running-experiments",target:"_blank",rel:"noopener noreferrer",children:["Experiments Documentation ",o.jsx(Sa,{})]})})})});function Dos({search:e,onSearchChange:t,statusFilter:n,onStatusFilterChange:r,datasetFilter:s,onDatasetFilterChange:a,datasetOptions:i,onReset:l,hasActiveFilters:c}){return o.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[o.jsx($f,{label:"Search experiments",placeholder:"Filter by experiment, dataset, or target",value:e,onSearch:t}),o.jsxs(Mr,{children:[o.jsx(Cc,{label:"Status",labelIsHidden:!0,name:"filter-status",options:[...Aos],value:n,onValueChange:r,className:"whitespace-nowrap"}),o.jsx(Cc,{label:"Dataset",labelIsHidden:!0,name:"filter-dataset",options:i,value:s,onValueChange:a,className:"whitespace-nowrap"}),l&&c&&o.jsxs(oe,{onClick:l,size:"sm",variant:"default",children:[o.jsx(bs,{className:"size-3"})," Reset"]})]})]})}function Los(){const[e,t]=v.useState("all"),[n,r]=v.useState({}),{data:s,isLoading:a,error:i}=ih(),{data:l,isLoading:c,error:u}=Bg(),{data:d,isLoading:f,error:p}=rQ(),{data:h,isLoading:m,isError:g,error:y}=qKr(n),{data:b,isLoading:x,isError:S,error:k}=xIe(),_=l?.datasets,C=d?.experiments,E=v.useMemo(()=>mos(b),[b]),j=i||u||p||y||k;return j&&ys(j)?o.jsx(lr,{children:o.jsx(Hs,{})}):j&&xs(j)?o.jsx(lr,{children:o.jsx(Ms,{resource:"evaluation"})}):j?o.jsx(lr,{children:o.jsx(qi,{title:"Failed to load evaluation data",message:j.message})}):o.jsxs(Ft,{width:"wide",height:"full",children:[o.jsx(Ft.TopArea,{children:o.jsx(Ft.Row,{children:o.jsx(Ft.Column,{children:o.jsx(G3,{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(gbe,{children:o.jsx(jos,{scorers:s,datasets:_,experiments:C,avgScore:h?.avgScore??null,prevAvgScore:h?.prevAvgScore??null,totalNeedsReview:E.needsReview,isLoadingScorers:a,isLoadingDatasets:c,isLoadingExperiments:f,isLoadingScores:m,isLoadingReview:x})}),o.jsx(eKr,{summaryData:h?.summaryData??[],overTimeData:h?.overTimeData??[],scorerNames:h?.scorerNames??[],avgScore:h?.avgScore??null,isLoading:m,isError:g}),o.jsxs("div",{className:"grid grid-cols-1 gap-6 lg:grid-cols-2",children:[o.jsx(gas,{experiments:C,isLoading:f,isError:!!p}),o.jsx($os,{experiments:C,datasets:_,isLoading:f,isError:!!p})]}),o.jsx(pos,{reviewSummary:b,experiments:C,datasets:_,isLoading:x,isError:!!S})]})]})}function Fos(){const[e,t]=v.useState(""),[n,r]=v.useState("all"),[s,a]=v.useState("all"),{data:i,isLoading:l,error:c}=Bg(),{data:u,isLoading:d,error:f}=rQ(),{data:p}=xIe(),h=v.useMemo(()=>i?.datasets??[],[i?.datasets]),m=v.useMemo(()=>u?.experiments??[],[u?.experiments]),g=v.useMemo(()=>Ros(h),[h]),y=v.useMemo(()=>b7t(p),[p]),b=l||d,x=f||c;if(x&&ys(x))return o.jsx(lr,{children:o.jsx(Hs,{})});if(f&&xs(f))return o.jsx(lr,{children:o.jsx(Ms,{resource:"experiments"})});if(c&&xs(c))return o.jsx(lr,{children:o.jsx(Ms,{resource:"datasets"})});if(x)return o.jsx(lr,{children:o.jsx(qi,{title:"Failed to load experiments",message:x.message})});if(m.length===0&&!b)return o.jsx(lr,{children:o.jsx(Mos,{})});const S=n!=="all"||s!=="all"||e!=="",k=()=>{t(""),r("all"),a("all")};return o.jsxs(Ft,{children:[o.jsx(Ft.TopArea,{children:o.jsx(Dos,{search:e,onSearchChange:t,statusFilter:n,onStatusFilterChange:r,datasetFilter:s,onDatasetFilterChange:a,datasetOptions:g,onReset:k,hasActiveFilters:S})}),o.jsx(Ios,{experiments:m,datasets:h,reviewByExperiment:y,isLoading:b,search:e,statusFilter:n,datasetFilter:s})]})}function Mz({children:e}){return o.jsxs(Ft,{height:"full",children:[o.jsx("div",{}),o.jsx(Ft.MainArea,{isCentered:!0,children:e})]})}function zos(){const{experimentId:e}=Sr(),{data:t,isLoading:n}=rQ(),s=t?.experiments?.find(h=>h.id===e)?.datasetId??"",{data:a,isLoading:i,error:l}=PV(s,e??""),{data:c,isLoading:u,setEndOfListElement:d,isFetchingNextPage:f,hasNextPage:p}=zG({datasetId:s,experimentId:e??"",experimentStatus:a?.status});return!e||n||i?null:l&&ys(l)?o.jsx(Mz,{children:o.jsx(Hs,{})}):l&&xs(l)?o.jsx(Mz,{children:o.jsx(Ms,{resource:"datasets"})}):l&&xCe(l)||!n&&!s||!i&&!l&&!a?o.jsx(Mz,{children:o.jsx(Lr,{iconSlot:o.jsx(Rbe,{}),titleSlot:"Experiment not found",descriptionSlot:`No experiment with id "${e}".`,actionSlot:o.jsxs(oe,{as:Fa,to:"/experiments",children:[o.jsx(Ac,{}),"Back to Experiments"]})})}):l?o.jsx(Mz,{children:o.jsx(qi,{title:"Failed to load experiment",message:l instanceof Error?l.message:"An unexpected error occurred. Please try again."})}):o.jsxs(Ft,{height:"full",children:[o.jsx(x7t,{experiment:a}),o.jsx(Ft.MainArea,{children:o.jsx(y7t,{experimentId:e,datasetId:s,experimentStatus:a.status,results:c??[],isLoading:u,setEndOfListElement:d,isFetchingNextPage:f,hasNextPage:p})})]})}function Bos({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 w7t({connections:e,isAdmin:t,disconnectPending:n,onDisconnect:r}){return o.jsx("ul",{className:"space-y-1",children:e.map(s=>o.jsx(Bos,{connection:s,isAdmin:t,disconnectPending:n,onDisconnect:()=>r(s.connectionId)},s.connectionId))})}function Uos({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(w7t,{connections:a,isAdmin:t,disconnectPending:n,onDisconnect:r})]},s))})}function Vos({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(Uos,{groups:r,isAdmin:s,disconnectPending:l,onDisconnect:u}):o.jsx(w7t,{connections:n,isAdmin:s,disconnectPending:l,onDisconnect:u}),c?o.jsx("p",{className:"text-red-600",children:String(c)}):null]})}function qos({providers:e,toolkits:t,providerId:n,toolkit:r,label:s,providersLoading:a,providersError:i,toolkitsLoading:l,toolkitsError:c,authorizePending:u,authorizeError:d,authorizedConnection:f,onProviderChange:p,onToolkitChange:h,onLabelChange:m,onConnect:g}){return o.jsxs("div",{className:"space-y-4 border rounded p-4",children:[o.jsxs("div",{className:"space-y-1",children:[o.jsx("label",{className:"block font-medium",htmlFor:"provider-select",children:"Provider"}),o.jsxs("select",{id:"provider-select",className:"border rounded px-2 py-1 w-full",value:n,onChange:y=>p(y.target.value),disabled:a,children:[o.jsx("option",{value:"",children:"— select provider —"}),e.map(y=>o.jsxs("option",{value:y.id,children:[y.displayName??y.name," (",y.id,")"]},y.id))]}),a&&o.jsx("span",{className:"text-gray-500",children:"Loading providers…"}),i?o.jsx("span",{className:"text-red-600",children:String(i)}):null]}),o.jsxs("div",{className:"space-y-1",children:[o.jsx("label",{className:"block font-medium",htmlFor:"toolkit-select",children:"Toolkit"}),o.jsxs("select",{id:"toolkit-select",className:"border rounded px-2 py-1 w-full",value:r,onChange:y=>h(y.target.value),disabled:!n||l,children:[o.jsx("option",{value:"",children:"— select toolkit —"}),t.map(y=>o.jsxs("option",{value:y.slug,children:[y.name," (",y.slug,")"]},y.slug))]}),l&&o.jsx("span",{className:"text-gray-500",children:"Loading toolkits…"}),c?o.jsx("span",{className:"text-red-600",children:String(c)}):null]}),o.jsxs("div",{className:"space-y-1",children:[o.jsx("label",{className:"block font-medium",htmlFor:"label-input",children:"Label (optional)"}),o.jsx("input",{id:"label-input",type:"text",className:"border rounded px-2 py-1 w-full",placeholder:"My personal Gmail",value:s,onChange:y=>m(y.target.value),disabled:!n||!r})]}),o.jsx("button",{type:"button",className:"bg-blue-600 text-white rounded px-4 py-2 disabled:opacity-50",onClick:g,disabled:!n||!r||u,children:u?"Authorizing…":"Connect"}),d?o.jsx("p",{className:"text-red-600",children:String(d)}):null,f&&o.jsxs("p",{className:"text-green-700",children:["Authorized: ",f.connectionId," (status: ",f.status,")"]})]})}const kXe=e=>e.authorId?.trim()||"shared",Hos=(e,t)=>{if(!t||new Set(e.map(kXe)).size<=1)return null;const r=new Map;for(const a of e){const i=kXe(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},Wos=["*","tool-providers:*","tool-providers:admin"];function Zos(){const{data:e}=Cm();return e?.permissions?.some(t=>Wos.includes(t))??!1}function Gos(){const[e,t]=v.useState(""),[n,r]=v.useState(""),[s,a]=v.useState(""),i=$I(),l=pZ(e||null),c=J2t(e||null,n||null),u=X2t(),d=Q2t(),f=Zos(),p=i.data?.providers??[],h=l.data?.data??[],m=v.useMemo(()=>c.data?.items??[],[c.data?.items]),g=v.useMemo(()=>Hos(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(qos,{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(Vos,{providerId:e,toolkit:n,connections:m,groupedByAuthor:g,isAdmin:f,isLoading:c.isLoading,error:c.error,disconnectPending:d.isPending,disconnectError:d.error,onDisconnect:x})]})}function Qos({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(Xh,{className:"h-10 w-10"}),o.jsx("h1",{className:"text-neutral6 text-xl font-semibold",children:e})]}),t,n,r]})})}function S7t({redirectUri:e,onSuccess:t,initialMode:n="signin",errorMessage:r}){const{data:s,isLoading:a}=uc(),{mutate:i,isPending:l,error:c}=eTr(),{mutate:u,isPending:d,error:f}=nTr(),{mutate:p,isPending:h}=yPt(),[m,g]=v.useState(n),[y,b]=v.useState(""),[x,S]=v.useState(""),[k,_]=v.useState("");if(a)return o.jsx("div",{className:"bg-surface1 flex min-h-screen items-center justify-center",children:o.jsx("div",{className:"text-neutral3",children:"Loading..."})});if(!s?.enabled||!s?.login)return o.jsx("div",{className:"bg-surface1 flex min-h-screen items-center justify-center",children:o.jsx("div",{className:"text-neutral3",children:"Authentication is not configured"})});const{login:C}=s,E=C.type==="sso"||C.type==="both",j=C.type==="credentials"||C.type==="both",N=C.sso,I=C.signUpEnabled!==!1,A=m==="signin"||!I,R=A?l:d,L=A?c:f,D=()=>{t?t():e?window.location.href=e:window.location.href="/"},B=M=>{M.preventDefault(),A?i({email:x,password:k},{onSuccess:D}):u({email:x,password:k,name:y||void 0},{onSuccess:D})},H=()=>{p({redirectUri:e},{onSuccess:M=>{window.location.href=M.url}})},F=()=>{g(A?"signup":"signin")},z=C.description?o.jsxs("div",{className:"border-border1 bg-surface1 flex items-start gap-2.5 rounded-md border p-3",children:[o.jsx(kf,{className:"text-neutral4 mt-0.5 h-4 w-4 shrink-0"}),o.jsx("p",{className:"text-neutral3 text-sm",children:C.description})]}):null,q=r?o.jsx("div",{className:"rounded-md bg-red-500/10 p-3 text-sm text-red-400",children:r}):null;return o.jsxs(Qos,{title:A?"Sign in to Mastra Studio":"Create your account",description:z,errorBanner:q,children:[j&&o.jsxs("form",{onSubmit:B,className:"space-y-4",children:[!A&&o.jsxs("div",{className:"space-y-2",children:[o.jsx("label",{htmlFor:"name",className:"text-neutral4 block text-sm",children:"Name"}),o.jsx(Cn,{id:"name",type:"text",value:y,onChange:M=>b(M.target.value),placeholder:"Your name",variant:"default",size:"lg"})]}),o.jsxs("div",{className:"space-y-2",children:[o.jsx("label",{htmlFor:"email",className:"text-neutral4 block text-sm",children:"Email"}),o.jsx(Cn,{id:"email",type:"email",value:x,onChange:M=>S(M.target.value),placeholder:"you@example.com",required:!0,variant:"default",size:"lg"})]}),o.jsxs("div",{className:"space-y-2",children:[o.jsx("label",{htmlFor:"password",className:"text-neutral4 block text-sm",children:"Password"}),o.jsx(Cn,{id:"password",type:"password",value:k,onChange:M=>_(M.target.value),placeholder:A?"Enter your password":"Create a password",required:!0,variant:"default",size:"lg"})]}),L&&o.jsx("div",{className:"rounded-md bg-red-500/10 p-3 text-sm text-red-400",children:L.message}),o.jsx(oe,{type:"submit",disabled:R,className:"w-full",size:"lg",children:R?A?"Signing in...":"Creating account...":A?"Sign in":"Create account"}),I&&o.jsxs("div",{className:"text-center text-sm",children:[o.jsx("span",{className:"text-neutral3",children:A?"Don't have an account? ":"Already have an account? "}),o.jsx("button",{type:"button",onClick:F,className:"text-neutral6 hover:underline",children:A?"Sign up":"Sign in"})]})]}),E&&j&&o.jsxs("div",{className:"relative",children:[o.jsx("div",{className:"absolute inset-0 flex items-center",children:o.jsx("div",{className:"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"})})]}),E&&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 Yos(){const[e]=Ri(),t=qs(),n=e.get("redirect")||"/",s=e.get("mode")==="signup"?"signup":"signin",a=e.get("error_description")||e.get("error")||null,i=()=>{n.startsWith("http")?window.location.href=n:t(n,{replace:!0})};return o.jsx(S7t,{redirectUri:n,onSuccess:i,initialMode:s,errorMessage:a})}function Kos({collapsed:e,children:t}){return o.jsx("section",{className:X("flex flex-col overflow-hidden rounded-xl border border-border1 bg-surface2",e?"h-auto":"h-full"),children:t})}function Xos({onClick:e,tooltip:t="Close panel",className:n}){return o.jsx(oe,{size:"md",onClick:e,"aria-label":"Close Panel",tooltip:t,className:n,children:o.jsx(Wu,{})})}function Jos(){return cI({settings:{fontFamily:"var(--font-mono)",fontSize:"0.75rem",lineHighlight:"transparent",gutterBackground:"transparent",gutterForeground:"#939393",background:"transparent"},styles:[{tag:[pe.className,pe.propertyName]}]})}function els(){const e=Nt.theme({"&":{backgroundColor:"transparent",color:"var(--neutral6)",fontSize:"0.75rem"},"&.cm-editor .cm-scroller":{fontFamily:"var(--font-mono)"},".cm-gutters":{backgroundColor:"transparent",color:"var(--neutral2)",borderRight:"none"},".cm-content":{color:"var(--neutral6)",caretColor:"var(--neutral6)"},".cm-activeLine":{backgroundColor:"transparent"},".cm-activeLineGutter":{backgroundColor:"transparent"},".cm-cursor, .cm-dropCursor":{borderLeftColor:"var(--neutral6)"}}),t=Ug.define([{tag:[pe.comment,pe.bracket],color:"var(--neutral2)"},{tag:[pe.string,pe.meta,pe.regexp],color:"var(--accent1)"},{tag:[pe.atom,pe.bool,pe.special(pe.variableName)],color:"var(--accent6)"},{tag:[pe.keyword,pe.operator,pe.tagName],color:"var(--accent2)"},{tag:[pe.function(pe.propertyName),pe.propertyName],color:"var(--accent5)"},{tag:[pe.definition(pe.variableName),pe.function(pe.variableName),pe.className,pe.attributeName],color:"var(--accent3)"},{tag:[pe.variableName,pe.number],color:"var(--accent5)"},{tag:[pe.name,pe.quote],color:"var(--accent1)"}]);return[e,U1(t)]}const tls=()=>{const e=U_().resolvedTheme==="dark";return v.useMemo(()=>e?Jos():els(),[e])};function nls({codeStr:e="",title:t,icon:n,simplified:r=!1,className:s}){const a=tls(),[i,l]=v.useState(!1),c=v.useMemo(()=>{try{const f=JSON.parse(e);return vbe(f||"")}catch{return!1}},[e]),u=i?e?.replace(/\\n/g,`
|
|
720
720
|
`):e,d=r||i;return!e||e==="null"?null:o.jsxs("div",{className:X("flex flex-col gap-2",s),children:[o.jsxs("div",{className:"flex items-center justify-between",children:[o.jsxs("div",{className:X("flex items-center gap-1.5 text-ui-xs tracking-widest text-neutral2 uppercase","[&>svg]:size-3.5"),children:[n,t]}),o.jsxs(Mr,{children:[o.jsx(Pa,{content:e||"No content",size:"sm"}),c&&o.jsx(oe,{size:"sm","aria-label":i?"Show escaped newlines":"Show multiline text",onClick:()=>l(f=>!f),children:i?o.jsx(j$,{}):o.jsx(w7,{})})]})]}),o.jsx("div",{className:"border-border1 bg-surface3 text-ui-sm text-neutral4 max-h-[30vh] overflow-hidden overflow-y-auto rounded-lg border p-3 break-all dark:border-white/10 dark:bg-black/20",children:d?o.jsx("div",{className:"text-neutral4 font-mono break-all",children:o.jsx("pre",{className:"text-wrap",children:u})}):o.jsx(Qu,{extensions:[LT(),Nt.lineWrapping],theme:a,value:e,editable:!1})})]})}function vbe(e){if(typeof e=="string"){const t=e.indexOf(`
|
|
721
|
-
`);return t!==-1&&t!==e.length-1}else{if(Array.isArray(e))return e.some(t=>vbe(t));if(e&&typeof e=="object")return Object.values(e).some(t=>vbe(t))}return!1}function rls({children:e}){return o.jsx("div",{className:"flex-1 overflow-y-auto p-4",children:e})}function sls({className:e,children:t}){return o.jsx("div",{className:X("mx-4 flex items-center justify-between gap-2 border-b border-border1 py-3",e),children:t})}function als({className:e,children:t}){return o.jsx("h3",{className:X("flex gap-2 text-ui-md text-neutral3 [&>b]:font-normal [&>b]:text-neutral2",e),children:t})}function ils({className:e,children:t}){return o.jsx("dl",{className:X("grid grid-cols-[auto_1fr] gap-x-4 gap-y-1.5",e),children:t})}function ols({className:e,children:t}){return o.jsx("dt",{className:X("shrink-0 py-0.5 text-ui-smd text-neutral2",e),children:t})}function lls({className:e,children:t}){return o.jsx("dd",{className:X("min-w-0 truncate py-0.5 text-ui-smd text-neutral3",e),children:t})}function cls({className:e,children:t}){return o.jsx("dt",{className:X("col-span-2 py-3 text-ui-sm tracking-widest text-neutral2 uppercase",e),children:t})}const uls=Object.assign(ils,{Key:ols,Value:lls,Header:cls});function dls({children:e}){return o.jsxs("div",{className:"text-ui-sm text-neutral3 flex items-center justify-center gap-2 px-4 py-6",children:[o.jsx(Xt,{size:"sm",variant:"pulse",className:"text-neutral3"})," ",e??"Loading..."]})}function fls({children:e}){return o.jsx("p",{className:"text-ui-sm text-neutral2 px-4 py-6",children:e??"No data found."})}const zi=Object.assign(Kos,{Header:sls,Heading:als,CloseButton:Xos,LoadingData:dls,NoData:fls,Content:rls,KeyValueList:uls,CodeSection:nls}),ap=zi.KeyValueList;function pls(e){return e instanceof Date?e:new Date(e)}function hls({log:e,onClose:t,onTraceClick:n,onSpanClick:r,onPrevious:s,onNext:a,collapsed:i,onCollapsedChange:l}){const[c,u]=v.useState(!1),d=i??c,f=l??u,p=pls(e.timestamp),h=e.traceId,m=e.spanId;return o.jsxs(zi,{collapsed:d,children:[o.jsxs(zi.Header,{children:[o.jsxs(zi.Heading,{children:["Log ",o.jsx("b",{children:nr(p,"MMM dd, HH:mm:ss.SSS")})]}),o.jsxs(Mr,{className:"ml-auto shrink-0",children:[l&&o.jsx(oe,{size:"md",tooltip:d?"Expand panel":"Collapse panel",onClick:()=>f(!d),children:d?o.jsx(Yq,{}):o.jsx(ywe,{})}),o.jsxs(Mr,{spacing:"close",children:[o.jsx(oe,{size:"md",tooltip:"Previous log",onClick:s,disabled:!s,children:o.jsx(Qq,{})}),o.jsx(oe,{size:"md",tooltip:"Next log",onClick:a,disabled:!a,children:o.jsx(u3,{})})]}),o.jsx(zi.CloseButton,{onClick:t})]})]}),!d&&o.jsxs(zi.Content,{children:[o.jsx("p",{className:"text-ui-md text-neutral4 font-mono wrap-break-word whitespace-pre-wrap",children:e.message}),(h||m)&&o.jsxs("div",{className:X("my-8 grid gap-2","[&>button]:justify-between [&>button]:overflow-hidden"),children:[h&&o.jsxs(Mr,{spacing:"close",className:"w-full min-w-0",children:[o.jsxs(oe,{size:"md",className:"min-w-0 flex-1 overflow-hidden",onClick:()=>n?.(h),children:[o.jsx(S7,{}),o.jsx("span",{children:"Trace"}),o.jsxs("span",{className:"text-ui-sm text-neutral2 ml-auto min-w-0 truncate",children:["# ",h]})]}),o.jsx(Pa,{content:h,size:"md",tooltip:"Copy Trace ID to clipboard"})]}),m&&o.jsxs(Mr,{spacing:"close",className:"w-full min-w-0",children:[o.jsxs(oe,{size:"md",className:"min-w-0 flex-1 overflow-hidden",disabled:!h||!r,onClick:()=>h&&r?.(h,m),children:[o.jsx(S7,{}),o.jsx("span",{children:"Span"}),o.jsxs("span",{className:"text-ui-sm text-neutral2 ml-auto min-w-0 truncate",children:["# ",m]})]}),o.jsx(Pa,{content:m,size:"md",tooltip:"Copy Span ID to clipboard"})]})]}),o.jsxs(ap,{className:"mb-6",children:[e.entityType&&o.jsxs(o.Fragment,{children:[o.jsx(ap.Key,{children:"Entity Type"}),o.jsx(ap.Value,{children:e.entityType})]}),e.entityName&&o.jsxs(o.Fragment,{children:[o.jsx(ap.Key,{children:"Entity Name"}),o.jsx(ap.Value,{children:e.entityName})]}),e.serviceName&&o.jsxs(o.Fragment,{children:[o.jsx(ap.Key,{children:"Service"}),o.jsx(ap.Value,{children:e.serviceName})]}),e.environment&&o.jsxs(o.Fragment,{children:[o.jsx(ap.Key,{children:"Environment"}),o.jsx(ap.Value,{children:e.environment})]}),e.source&&o.jsxs(o.Fragment,{children:[o.jsx(ap.Key,{children:"Source"}),o.jsx(ap.Value,{children:e.source})]}),e.metadata&&Object.keys(e.metadata).length>0&&o.jsx(o.Fragment,{children:Object.entries(e.metadata).map(([g,y])=>o.jsxs(v.Fragment,{children:[o.jsx(ap.Key,{children:g}),o.jsx(ap.Value,{children:String(y)})]},g))})]}),e.data&&Object.keys(e.data).length>0&&o.jsx(zi.CodeSection,{title:"Data",codeStr:JSON.stringify(e.data,null,2),className:"mt-6"})]})]})}function mls({error:e,resource:t,errorTitle:n}){if(ys(e))return o.jsx(Hs,{});if(xs(e))return o.jsx(Ms,{resource:t});if(w4(e))return o.jsx(Lr,{iconSlot:o.jsx(k7,{}),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(x4(e,"logs"))return o.jsx(Lr,{iconSlot:o.jsx(k7,{}),titleSlot:"Logs are not available with your current storage",descriptionSlot:"The configured observability storage provider does not support listing logs. Switch to a storage provider with logs support to view runtime logs in Studio."});const r=e instanceof Error?e.message:void 0;return o.jsx(qi,{title:n,message:r??"Unknown error"})}function gls({listSlot:e,logPanelSlot:t,tracePanelSlot:n,spanPanelSlot:r,logCollapsed:s}){const a=!!t;return o.jsxs("div",{className:X("grid h-full min-h-0 items-start gap-4",a?"grid-cols-[1fr_1fr]":"grid-cols-[1fr]"),children:[e,a&&o.jsxs("div",{className:X("grid h-full gap-4 overflow-auto",n&&r?s?"grid-rows-[auto_1fr_1fr]":"grid-rows-[1fr_1fr_1fr]":n?s?"grid-rows-[auto_1fr]":"grid-rows-[1fr_1fr]":s?"grid-rows-[auto]":"grid-rows-[1fr]"),children:[t,n,r]})]})}const vls={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 yls({level:e}){const t=vls[e];return o.jsx(To,{height:"compact",children:o.jsx("span",{className:"text-ui-sm font-semibold uppercase",style:{color:t.color},children:t.label})})}function bls({entityType:e,className:t}){const n=X("size-3.5 shrink-0 text-neutral2",t);switch(e.toLowerCase()){case"agent":return o.jsx(Uo,{className:n,"aria-hidden":!0});case"workflow":case"workflow_run":return o.jsx(Xu,{className:n,"aria-hidden":!0});case"tool":return o.jsx(Ld,{className:n,"aria-hidden":!0});default:return null}}function xls({entityType:e,entityName:t}){const n=e??"";return o.jsxs(To,{height:"compact",className:"flex min-w-0 items-center gap-2",children:[o.jsx(bls,{entityType:n}),t?o.jsx("span",{className:"text-ui-smd min-w-0 truncate",children:t}):"-"]})}function wls({message:e}){return o.jsx(To,{height:"compact",className:"text-ui-smd text-neutral4 min-w-0 truncate font-mono",children:e})}function Sls({data:e}){if(!e||Object.keys(e).length===0)return o.jsx(To,{height:"compact",children:null});const t=Object.entries(e).map(([n,r])=>{if(typeof r=="string")return`${n}: ${r}`;try{return`${n}: ${JSON.stringify(r)}`}catch{return`${n}: <unserializable>`}}).join(", ");return o.jsx(dEe,{children:t})}const Gl=Object.assign(N4,{Top:xZ,TopCell:iC,TopCellWithTooltip:wZ,TopCellSmart:F$t,RowWrapper:gEe,RowButton:I4,RowLink:z$t,Spacer:mEe,NoMatch:bZ,DateCell:fEe,TimeCell:pEe,LevelCell:yls,EntityCell:xls,MessageCell:wls,DataCell:Sls,NextPageLoading:yZ}),OXe="6rem 9rem 5rem 10rem minmax(8rem,1fr) minmax(8rem,1fr)",kls=36,Ols=8;function _ls({logs:e,isLoading:t,isFetchingNextPage:n,hasNextPage:r,setEndOfListElement:s,logIdMap:a,featuredLogId:i,onLogClick:l}){const c=v.useRef(null),u=n7t({count:e.length,getScrollElement:()=>c.current,estimateSize:()=>kls,overscan:Ols}),d=v.useRef(t);if(v.useEffect(()=>{d.current&&!t&&c.current?.dispatchEvent(new Event("scroll")),d.current=t},[t]),t)return o.jsx(ol,{columns:OXe});const f=u.getVirtualItems(),p=u.getTotalSize(),h=f[0]?.start??0,m=f.length>0?Math.max(0,p-(f[f.length-1]?.end??0)):0;return o.jsxs(Gl,{columns:OXe,variant:"striped",scrollRef:c,className:"min-w-0",children:[o.jsxs(Gl.Top,{children:[o.jsx(Gl.TopCell,{children:"Date"}),o.jsx(Gl.TopCell,{children:"Time"}),o.jsx(Gl.TopCell,{children:"Level"}),o.jsx(Gl.TopCell,{children:"Entity"}),o.jsx(Gl.TopCell,{children:"Message"}),o.jsx(Gl.TopCell,{children:"Data"})]}),e.length===0?o.jsx(Gl.NoMatch,{message:"No logs match your search"}):o.jsxs(o.Fragment,{children:[o.jsx(Gl.Spacer,{height:h}),f.map(g=>{const y=e[g.index];if(!y)return null;const b=a.get(y);if(!b)return null;const x=b===i;return o.jsxs(Gl.RowButton,{ref:u.measureElement,"data-index":g.index,onClick:()=>l(y),featured:x,variant:y.level==="error"||y.level==="fatal"?"error":"default",children:[o.jsx(Gl.DateCell,{timestamp:y.timestamp}),o.jsx(Gl.TimeCell,{timestamp:y.timestamp}),o.jsx(Gl.LevelCell,{level:y.level}),o.jsx(Gl.EntityCell,{entityType:y.entityType,entityName:y.entityName}),o.jsx(Gl.MessageCell,{message:y.message}),o.jsx(Gl.DataCell,{data:y.data})]},b)}),o.jsx(Gl.Spacer,{height:m})]}),o.jsx(Gl.NextPageLoading,{isLoading:n,hasMore:r,setEndOfListElement:s})]})}function Cls({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=>Els(f,a));return o.jsxs("div",{className:X("grid grid-cols-[1fr_auto] items-start gap-3"),children:[o.jsx(JNe,{fields:a,tokens:i,onTokensChange:l,disabled:s,autoFocusFieldId:c}),u&&o.jsx(KNe,{disabled:s,onClear:d?e:void 0,onRemoveAll:t,onSave:n,onRemoveSaved:r})]})}function Els(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 jls={"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"},Cae="MMM d, yyyy HH:mm",Eae="Pick a wider range or lower the logging level — verbose entries (debug, info) may be filtered out.";function Tls({datePreset:e,dateFrom:t,dateTo:n}){return e&&e!=="all"&&e!=="custom"?{title:`No logs for ${jls[e]}`,description:Eae}:t&&n?{title:`No logs between ${nr(t,Cae)} and ${nr(n,Cae)}`,description:Eae}:t?{title:`No logs since ${nr(t,Cae)}`,description:Eae}:{title:"No logs yet",description:"Logs will appear here once agents, workflows, or tools are executed."}}const Nls=({datePreset:e,dateFrom:t,dateTo:n}={})=>{const{title:r,description:s}=Tls({datePreset:e,dateFrom:t,dateTo:n});return o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Lr,{iconSlot:o.jsx(k7,{}),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(bwe,{})]})})})},Ils=20,Als=1e4;function Rls(e,t,n){if(e?.pagination?.hasMore)return n+1}function Pls(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 $ls(e){return x4(e.state.error,"logs")||w4(e.state.error)?!1:Als}const Mls=({filters:e}={})=>{const t=We(),{inView:n,setRef:r}=Z_(),s=M1({queryKey:["logs",e],queryFn:({pageParam:p})=>t.listLogsVNext({pagination:{page:p,perPage:Ils},filters:e,orderBy:{field:"timestamp",direction:"DESC"}}),initialPageParam:0,getNextPageParam:Rls,select:Pls,retry:!1,refetchInterval:$ls}),{hasNextPage:a,isFetchingNextPage:i,fetchNextPage:l,data:c,isLoading:u,isError:d,error:f}=s;return v.useEffect(()=>{n&&a&&!i&&l()},[n,a,i,l]),{data:c,hasNextPage:a,isFetchingNextPage:i,fetchNextPage:l,isLoading:u,isError:d,error:f,setEndOfListElement:r}},Dz={AGENT:"agent",WORKFLOW:"workflow_run",SCORER:"scorer",INGEST:"rag_ingestion"},k7t=[{label:"Agent",entityType:Dz.AGENT},{label:"Workflow",entityType:Dz.WORKFLOW},{label:"Scorer",entityType:Dz.SCORER},{label:"Ingest",entityType:Dz.INGEST}],Dls=[{label:"Debug",value:"debug"},{label:"Info",value:"info"},{label:"Warn",value:"warn"},{label:"Error",value:"error"},{label:"Fatal",value:"fatal"}],Bx="rootEntityType",Qb="datePreset",Yb="dateFrom",Kb="dateTo",Lls=new Set(["all","last-24h","last-3d","last-7d","last-14d","last-30d","custom"]),Nl={level:"filterLevel",tags:"filterTags",entityName:"filterEntityName",traceId:"filterTraceId",spanId:"filterSpanId",runId:"filterRunId",threadId:"filterThreadId",sessionId:"filterSessionId",requestId:"filterRequestId",resourceId:"filterResourceId",userId:"filterUserId",organizationId:"filterOrganizationId",serviceName:"filterServiceName",environment:"filterEnvironment",experimentId:"filterExperimentId"},EL=Object.keys(Nl),wIe=new Set(["tags"]),SIe="mastra:logs:saved-filters";function Fls(e,t=SIe){const n=qls(e),r=e.get(Qb);r&&n.set(Qb,r);const s=e.get(Yb);s&&n.set(Yb,s);const a=e.get(Kb);a&&n.set(Kb,a);try{localStorage.setItem(t,n.toString())}catch{}}function zls(e=SIe){try{localStorage.removeItem(e)}catch{}}function _Xe(e=SIe){try{const t=localStorage.getItem(e);if(!t)return null;const n=new URLSearchParams(t);return n.toString()?n:null}catch{return null}}function Bls(e){if(e.has(Qb)||e.has(Yb)||e.has(Kb)||e.has(Bx))return!0;for(const t of EL)if(e.has(Nl[t]))return!0;return!1}function Uls({availableTags:e,availableRootEntityNames:t,availableServiceNames:n,availableEnvironments:r,loading:s}){const a=[{id:"rootEntityType",label:"Primitive Type",kind:"pick-multi",searchable:!1,options:k7t.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:Dls.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 Vls(e){const t=[],n=new Map([[Bx,"rootEntityType"]]);for(const s of EL)n.set(Nl[s],s);const r=new Set;for(const[s]of e.entries()){const a=n.get(s);if(!a||r.has(a))continue;if(r.add(a),wIe.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 qls(e){const t=new URLSearchParams,n=e.get(Bx);n&&t.set(Bx,n);for(const r of EL){const s=Nl[r];if(wIe.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 Hls(e,t){e.delete(Bx);for(const n of EL)e.delete(Nl[n]);for(const n of t){if(n.fieldId==="rootEntityType"&&typeof n.value=="string"){e.set(Bx,n.value);continue}const r=Nl[n.fieldId];if(r){if(wIe.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 Wls({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 Zls(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 Gls="Filters setting for Logs saved",Qls="Filters setting for Logs cleared up";function Yls(e,t,n){const{storageKey:r,messages:s,skipHydration:a}={},[i,l]=v.useState(()=>_Xe(r)!==null),c=v.useCallback(()=>{Fls(e,r),l(!0);const f=s?.saved??Gls;f!==!1&&Le.success(f)},[e,r,s?.saved]),u=v.useCallback(()=>{zls(r),l(!1);const f=s?.cleared??Qls;f!==!1&&Le.success(f)},[r,s?.cleared]),d=v.useRef(!1);return v.useEffect(()=>{if(a||d.current||(d.current=!0,Bls(e)))return;const f=_Xe(r);f&&t(p=>{const h=new URLSearchParams(p);for(const[m,g]of f)h.append(m,g);return h},{replace:!0})},[]),{hasSavedFilters:i,handleSave:c,handleRemoveSaved:u}}function Kls(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 Xls(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,Kls(`${r}${n.message??""}${n.data?JSON.stringify(n.data):""}`))}return t}function Jls(e,t,n,r){const s=v.useMemo(()=>Xls(e),[e]),a=v.useMemo(()=>{const h=new Map;for(const[m,g]of e.entries()){const y=s.get(g);y&&h.set(y,{log:g,idx:m})}return h},[e,s]),l=(t?a.get(t):void 0)?.idx??-1,c=l>=0?e[l]??null:null,u=v.useCallback(h=>s.get(h),[s]),d=v.useCallback(h=>{const m=s.get(h);if(m){if(t===m){n({logId:null});return}n(r?{logId:m,traceId:h.traceId??null,spanId:null}:{logId:m})}},[s,t,r,n]),f=l>0?()=>{const h=e[l-1];if(!h)return;const m=s.get(h);m&&n(r?{logId:m,traceId:h.traceId??null,spanId:null}:{logId:m})}:void 0,p=l>=0&&l<e.length-1?()=>{const h=e[l+1];if(!h)return;const m=s.get(h);m&&n(r?{logId:m,traceId:h.traceId??null,spanId:null}:{logId:m})}:void 0;return{logIdMap:s,getLogId:u,featuredLog:c,handleLogClick:d,handlePreviousLog:f,handleNextLog:p}}const ybe="logId",bbe="traceId",xbe="spanId",oP=1440*60*1e3,ecs={"last-24h":oP,"last-3d":3*oP,"last-7d":7*oP,"last-14d":14*oP,"last-30d":30*oP};function Lz(e){e.delete(ybe),e.delete(bbe),e.delete(xbe)}function tcs(e,t,n){const{onRemoveAll:r}={},s=v.useMemo(()=>{const _=e.get(Qb);return _&&Lls.has(_)?_:"last-24h"},[e]),a=e.get(Yb),i=e.get(Kb),l=v.useMemo(()=>{if(s==="custom"){if(!a)return;const C=new Date(a);return Number.isNaN(C.getTime())?void 0:C}if(s==="all")return;const _=ecs[s];return _?new Date(Date.now()-_):void 0},[s,a]),c=v.useMemo(()=>{if(s!=="custom"||!i)return;const _=new Date(i);return Number.isNaN(_.getTime())?void 0:_},[s,i]),u=v.useRef(s);u.current=s;const d=e.get(ybe),f=e.get(bbe),p=e.get(xbe),h=v.useMemo(()=>k7t.find(_=>_.entityType===e.get(Bx)),[e]),m=v.useMemo(()=>Vls(e),[e]),g=v.useCallback(_=>{t(C=>{const E=new URLSearchParams(C);for(const[j,N]of Object.entries(_)){const I=j==="logId"?ybe:j==="traceId"?bbe:xbe;N?E.set(I,N):E.delete(I)}return E},{replace:!0})},[t]),y=v.useCallback(_=>{t(C=>{const E=new URLSearchParams(C);return Hls(E,_),Lz(E),E},{replace:!0})},[t]),b=y,x=v.useCallback((_,C)=>{if(u.current!=="custom")return;const E=C==="from"?Yb:Kb;t(j=>{const N=new URLSearchParams(j);return _?N.set(E,_.toISOString()):N.delete(E),Lz(N),N},{replace:!0})},[t]),S=v.useCallback(_=>{u.current=_,t(C=>{const E=new URLSearchParams(C);return _==="last-24h"?(E.delete(Qb),E.delete(Yb),E.delete(Kb)):_==="custom"?E.set(Qb,"custom"):(E.set(Qb,_),E.delete(Yb),E.delete(Kb)),Lz(E),E},{replace:!0})},[t]),k=v.useCallback(()=>{t(_=>{const C=new URLSearchParams(_);C.delete(Bx);for(const E of EL)C.delete(Nl[E]);return C.delete(Qb),C.delete(Yb),C.delete(Kb),Lz(C),C},{replace:!0}),r?.()},[t,r]);return v.useMemo(()=>({searchParams:e,setSearchParams:t,datePreset:s,selectedDateFrom:l,selectedDateTo:c,datePresetRef:u,featuredLogId:d,featuredTraceId:f,featuredSpanId:p,selectedEntityOption:h,filterTokens:m,handleFeaturedChange:g,handleFilterTokensChange:b,handleDateChange:x,handleDatePresetChange:S,handleRemoveAll:k,applyFilterTokens:y}),[e,t,s,l,c,u,d,f,p,h,m,g,b,x,S,k,y])}const Ob=zi.KeyValueList;function ncs({spanId:e,span:t,isLoading:n,onClose:r}){const s=t?.startedAt&&t?.endedAt?new Date(t.endedAt).getTime()-new Date(t.startedAt).getTime():null;return o.jsxs(zi,{children:[o.jsxs(zi.Header,{children:[o.jsxs(zi.Heading,{children:["Span ",o.jsxs("b",{children:["# ",e]})]}),o.jsx(zi.CloseButton,{onClick:r})]}),n?o.jsx(zi.LoadingData,{children:"Loading span..."}):t?o.jsxs(zi.Content,{children:[o.jsxs(Ob,{children:[t.spanType&&o.jsxs(o.Fragment,{children:[o.jsx(Ob.Key,{children:"Type"}),o.jsx(Ob.Value,{children:t.spanType})]}),t.startedAt&&o.jsxs(o.Fragment,{children:[o.jsx(Ob.Key,{children:"Started"}),o.jsx(Ob.Value,{children:nr(new Date(t.startedAt),"MMM dd, HH:mm:ss.SSS")})]}),t.endedAt&&o.jsxs(o.Fragment,{children:[o.jsx(Ob.Key,{children:"Ended"}),o.jsx(Ob.Value,{children:nr(new Date(t.endedAt),"MMM dd, HH:mm:ss.SSS")})]}),s!=null&&o.jsxs(o.Fragment,{children:[o.jsx(Ob.Key,{children:"Duration"}),o.jsx(Ob.Value,{children:s<1e3?`${s}ms`:`${(s/1e3).toFixed(2)}s`})]})]}),o.jsx("br",{}),o.jsx(zi.CodeSection,{title:"Input",icon:o.jsx(fhe,{}),codeStr:JSON.stringify(t.input??null,null,2)}),o.jsx(zi.CodeSection,{title:"Output",icon:o.jsx(phe,{}),codeStr:JSON.stringify(t.output??null,null,2)}),o.jsx(zi.CodeSection,{title:"Metadata",icon:o.jsx(yw,{}),codeStr:JSON.stringify(t.metadata??null,null,2)}),o.jsx(zi.CodeSection,{title:"Attributes",icon:o.jsx(yw,{}),codeStr:JSON.stringify(t.attributes??null,null,2)})]}):o.jsx(zi.NoData,{children:"Span not found."})]})}function rcs({traceId:e,spans:t,isLoading:n,onClose:r,onSpanSelect:s,selectedSpanId:a}){const i=v.useMemo(()=>rIe(t??[]),[t]),[l,c]=v.useState([]);v.useEffect(()=>{i.length>0&&c(nIe(i))},[i]);const u=d=>{s?.(a===d?void 0:d)};return o.jsxs(zi,{children:[o.jsxs(zi.Header,{children:[o.jsxs(zi.Heading,{children:["Trace ",o.jsxs("b",{children:["# ",e]})]}),o.jsx(zi.CloseButton,{onClick:r})]}),n?o.jsx(zi.LoadingData,{children:"Loading trace..."}):i.length===0?o.jsx(zi.NoData,{children:"No spans found for this trace."}):o.jsx(zi.Content,{children:o.jsx(J9t,{hierarchicalSpans:i,onSpanClick:u,selectedSpanId:a??void 0,expandedSpanIds:l,setExpandedSpanIds:c})})]})}function scs(){const[e,t]=Ri(),n=tcs(e,t),r=Yls(e,t),[s,a]=v.useState(),[i,l]=v.useState(!1),{data:c=[],isPending:u}=uIe(),{data:d=[],isPending:f}=oIe({entityType:n.selectedEntityOption?.entityType,rootOnly:!0}),{data:p=[],isPending:h}=lIe(),{data:m=[],isPending:g}=cIe(),y=v.useMemo(()=>Uls({availableTags:c,availableRootEntityNames:d,availableServiceNames:m,availableEnvironments:p,loading:{tags:u,entityNames:f,serviceNames:g,environments:h}}),[c,d,m,p,u,f,g,h]),b=v.useMemo(()=>Wls({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:E}=Mls({filters:b}),{logIdMap:j,featuredLog:N,handleLogClick:I,handlePreviousLog:A,handleNextLog:R}=Jls(x,n.featuredLogId,n.handleFeaturedChange,n.featuredTraceId),{data:L,isLoading:D}=dIe(n.featuredTraceId??null),{data:B,isLoading:H}=CL(n.featuredTraceId??"",n.featuredSpanId??""),F=v.useCallback(()=>n.applyFilterTokens(Zls(y,n.filterTokens)),[y,n]),z=v.useCallback(()=>n.handleFeaturedChange({logId:null}),[n]),q=v.useCallback(K=>n.handleFeaturedChange({traceId:K,spanId:null}),[n]),M=v.useCallback((K,ee)=>n.handleFeaturedChange({traceId:K,spanId:ee}),[n]),G=v.useCallback(()=>{n.handleFeaturedChange({traceId:null,spanId:null}),l(!1)},[n]),V=v.useCallback(()=>n.handleFeaturedChange({spanId:null}),[n]),$=v.useCallback(K=>n.handleFeaturedChange({spanId:K??null}),[n]),U=o.jsxs(Ft.TopArea,{children:[o.jsx(Ft.Row,{children:o.jsxs(Ft.Column,{className:"flex flex-wrap items-start justify-start gap-2",children:[o.jsx(G3,{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(eIe,{fields:y,tokens:n.filterTokens,onTokensChange:n.handleFilterTokensChange,disabled:S,onStartTextFilter:a})]})}),o.jsx(Cls,{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(Ft,{width:"wide",height:"full",children:[U,o.jsx(Ft.MainArea,{isCentered:!0,children:o.jsx(mls,{error:k,resource:"logs",errorTitle:"Failed to load logs"})})]});const Z=!!n.selectedEntityOption||n.filterTokens.length>0;return x.length===0&&!S&&!Z?o.jsxs(Ft,{width:"wide",height:"full",children:[U,o.jsx(Ft.MainArea,{isCentered:!0,children:o.jsx(Nls,{datePreset:n.datePreset,dateFrom:n.selectedDateFrom,dateTo:n.selectedDateTo})})]}):o.jsxs(Ft,{width:"wide",height:"full",children:[U,o.jsx(gls,{logCollapsed:i,listSlot:o.jsx(_ls,{logs:x,isLoading:S,isFetchingNextPage:_,hasNextPage:C,setEndOfListElement:E,logIdMap:j,featuredLogId:n.featuredLogId,onLogClick:I}),logPanelSlot:N?o.jsx(hls,{log:N,onClose:z,onTraceClick:q,onSpanClick:M,onPrevious:A,onNext:R,collapsed:i,onCollapsedChange:l}):null,tracePanelSlot:n.featuredTraceId?o.jsx(rcs,{traceId:n.featuredTraceId,spans:L?.spans,isLoading:D,onClose:G,onSpanSelect:$,selectedSpanId:n.featuredSpanId}):null,spanPanelSlot:n.featuredTraceId&&n.featuredSpanId?o.jsx(ncs,{spanId:n.featuredSpanId,span:B?.span,isLoading:H,onClose:V}):null})]})}function acs({server:e}){const{paths:t,Link:n}=yn(),s=We().options.baseUrl,a=s?`${s}/api/mcp/${e.id}/sse`:"",{data:i}=Izt(e),l=Object.values(i||{}),c=l.length,u=l.filter(p=>p.toolType==="agent").length,d=l.filter(p=>p.toolType==="workflow").length,f=Oy(e.name,50);return o.jsxs(ve.RowLink,{to:t.mcpServerLink(e.id),LinkComponent:n,children:[o.jsx(ve.NameCell,{children:f}),o.jsx(ve.DescriptionCell,{children:a}),o.jsx(ve.TextCell,{className:"text-center",children:u||""}),o.jsx(ve.TextCell,{className:"text-center",children:c||""}),o.jsx(ve.TextCell,{className:"text-center",children:d||""})]})}function ics({mcpServers:e,isLoading:t,search:n=""}){const r=v.useMemo(()=>{const s=n.toLowerCase();return e.filter(a=>a.name?.toLowerCase().includes(s)||a.id?.toLowerCase().includes(s))},[e,n]);return t?o.jsx(ol,{columns:"auto 1fr auto auto auto"}):o.jsxs(ve,{columns:"auto 1fr auto auto auto",variant:"striped",children:[o.jsxs(ve.Top,{children:[o.jsx(ve.TopCell,{children:"Name"}),o.jsx(ve.TopCell,{children:"URL"}),o.jsx(ve.TopCellSmart,{long:"Agents",short:o.jsx(Uo,{}),tooltip:"Agent Tools",className:"text-center"}),o.jsx(ve.TopCellSmart,{long:"Tools",short:o.jsx(Ld,{}),tooltip:"Tools",className:"text-center"}),o.jsx(ve.TopCellSmart,{long:"Workflows",short:o.jsx(Xu,{}),tooltip:"Workflow Tools",className:"text-center"})]}),r.length===0&&n?o.jsx(ve.NoMatch,{message:"No MCP Servers match your search"}):null,r.map(s=>o.jsx(acs,{server:s},s.id))]})}const ocs=()=>o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Lr,{iconSlot:o.jsx(Nf,{}),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(Sa,{})]})})}),lcs=()=>{const{data:e=[],isLoading:t,error:n}=RG(),[r,s]=v.useState("");return n&&ys(n)?o.jsx(lr,{children:o.jsx(Hs,{})}):n&&xs(n)?o.jsx(lr,{children:o.jsx(Ms,{resource:"MCP servers"})}):n?o.jsx(lr,{children:o.jsx(qi,{title:"Failed to load MCP servers",message:n.message})}):e.length===0&&!t?o.jsx(lr,{children:o.jsx(ocs,{})}):o.jsxs(Ft,{children:[o.jsx(Ft.TopArea,{children:o.jsx("div",{className:"max-w-120",children:o.jsx($f,{onSearch:s,label:"Filter MCP servers",placeholder:"Filter by name"})})}),o.jsx(ics,{mcpServers:e,isLoading:t,search:r})]})},ccs=(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 ucs({tools:e,agents:t,isLoading:n,search:r=""}){const{paths:s,Link:a}=yn(),i=v.useMemo(()=>ccs(e,t),[e,t]),l=v.useMemo(()=>i.filter(c=>c.id.toLowerCase().includes(r.toLowerCase())),[i,r]);return n?o.jsx(ol,{columns:"auto 1fr auto"}):o.jsxs(ve,{columns:"auto 1fr auto",variant:"striped",children:[o.jsxs(ve.Top,{children:[o.jsx(ve.TopCell,{children:"Name"}),o.jsx(ve.TopCell,{children:"Description"}),o.jsx(ve.TopCellSmart,{long:"Agents",short:o.jsx(Uo,{}),tooltip:"Attached Agents",className:"text-center"})]}),l.length===0&&r?o.jsx(ve.NoMatch,{message:"No Tools match your search"}):null,l.map(c=>{const u=Oy(c.id,50),d=Oy(c.description??"",200),f=c.agents.length;return o.jsxs(ve.RowLink,{to:s.toolLink(c.id),LinkComponent:a,children:[o.jsx(ve.NameCell,{children:u}),o.jsx(ve.DescriptionCell,{children:d}),o.jsx(ve.TextCell,{className:"text-center",children:f||""})]},c.id)})]})}const dcs=()=>o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Lr,{iconSlot:o.jsx(Nf,{}),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(Sa,{})]})})}),fcs=()=>{const e=We();return Mn({mutationFn:async({toolId:t,input:n,requestContext:r})=>{const s=new E_;Object.entries(r??{}).forEach(([a,i])=>{s.set(a,i)});try{return await e.getTool(t).execute({data:n,requestContext:s})}catch(a){throw Le.error("Error executing dev tool"),console.error("Error executing dev tool:",a),a}}})},pcs=({toolId:e})=>{const{canExecute:t}=ul(),n=t("tools"),{data:r={}}=Em(),s=v.useMemo(()=>{for(const g of Object.values(r))if(g.tools){const y=Object.values(g.tools).find(b=>b.id===e);if(y)return y}return null},[r,e]),{data:a,isLoading:i,error:l}=JEr(e,{enabled:!s}),c=s||a,{mutateAsync:u,isPending:d,data:f}=fcs(),{requestContext:p}=_s();v.useEffect(()=>{if(l){const g=l instanceof Error?l.message:"Failed to load tool";Le.error(`Error loading tool: ${g}`)}},[l]);const h=async(g,y)=>{if(!c)return;const b={...p??{},...y??{}};return u({toolId:c.id,input:g,requestContext:b})},m=c?.inputSchema?fm(um(kx(c?.inputSchema))):ks({});return i?o.jsxs("div",{className:"p-6",children:[o.jsx(xt,{className:"mb-4 h-8 w-48"}),o.jsx(xt,{className:"h-32 w-full"})]}):l?null:c?n?o.jsx(jNe,{executionResult:f,isExecutingTool:d,zodInputSchema:m,handleExecuteTool:h,toolDescription:c.description,toolId:c.id,requestContextSchema:c.requestContextSchema}):o.jsx("div",{className:"px-6 py-12 text-center",children:o.jsx(ye,{variant:"ui-sm",className:"text-neutral3",children:"You don't have permission to execute tools."})}):o.jsx("div",{className:"px-6 py-12 text-center",children:o.jsx(ye,{variant:"header-md",className:"text-neutral3",children:"Tool not found"})})};function hcs({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}=RI(),{data:p={},isLoading:h,isError:m,error:g}=Em(),{navigate:y,paths:b}=yn();v.useEffect(()=>{if(d){const _=f instanceof Error?f.message:"Failed to load tools";Le.error(`Error loading tools: ${_}`)}},[d,f]),v.useEffect(()=>{if(m){const _=g instanceof Error?g.message:"Failed to load agents";Le.error(`Error loading agents: ${_}`)}},[m,g]);const x=new Map;Object.values(p).forEach(_=>{_.tools&&Object.values(_.tools).forEach(C=>{x.has(C.id)||x.set(C.id,C)})}),Object.values(c).forEach(_=>{x.has(_.id)||x.set(_.id,_)});const S=Array.from(x.values()).map(_=>({label:_.id,value:_.id})),k=_=>{t?t(_):_&&_!==e&&y(b.toolLink(_))};return o.jsx(ac,{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 mcs=({isLoading:e,server:t})=>{const[{sseUrl:n,httpStreamUrl:r},s]=v.useState({sseUrl:"",httpStreamUrl:""});if(v.useEffect(()=>{if(!t)return;const i=window.MASTRA_SERVER_HOST,l=window.MASTRA_SERVER_PORT;let c=null;i&&l&&(c=`http://${i}:${l}`);const u=c||"http://localhost:4111",d=`${u}/api/mcp/${t.id}/sse`,f=`${u}/api/mcp/${t.id}/mcp`;s({sseUrl:d,httpStreamUrl:f})},[t]),e)return null;if(!t)return o.jsx(_y,{children:o.jsx(ye,{as:"h1",variant:"header-md",className:"text-neutral3 py-20 text-center font-medium",children:"Server not found"})});const a=`npx -y mcp-remote ${n}`;return o.jsxs(_y,{isDivided:!0,children:[o.jsxs("div",{className:"mx-auto w-full max-w-2xl px-8 py-12",children:[o.jsx(ye,{as:"h1",variant:"header-md",className:"text-neutral6 pb-4 font-medium",children:t.name}),o.jsxs("div",{className:"flex items-center gap-1 pb-6",children:[o.jsx(un,{icon:o.jsx(Y9t,{className:"text-neutral6"}),className:"text-neutral4! rounded-r-sm",children:"Version"}),o.jsx(un,{className:"text-neutral4! rounded-l-sm",children:t.version_detail.version})]}),o.jsx(ye,{className:"text-neutral3 pb-4",children:"This MCP server can be accessed through multiple transport methods. Choose the one that best fits your use case."}),o.jsxs("div",{className:"flex flex-col gap-4",children:[o.jsxs("div",{className:"border-border1 bg-surface3 rounded-lg border p-4",children:[o.jsx(un,{icon:o.jsx("span",{className:"text-accent1 mr-1 w-6 font-mono font-medium",children:"HTTP"}),children:"Regular HTTP Endpoint"}),o.jsx(ye,{className:"text-neutral3 pt-1 pb-2",children:"Use for stateless HTTP transport with streamable responses."}),o.jsxs("div",{className:"flex items-start gap-2",children:[o.jsx(ye,{className:"bg-surface4 rounded-lg px-2 py-1",children:r}),o.jsx("div",{className:"pt-1",children:o.jsx(Pa,{tooltip:"Copy HTTP Stream URL",content:r})})]})]}),o.jsxs("div",{className:"border-border1 bg-surface3 rounded-lg border p-4",children:[o.jsx(un,{icon:o.jsx("span",{className:"text-accent1 mr-1 w-6 font-mono font-medium",children:"SSE"}),children:"Server-Sent Events"}),o.jsx(ye,{className:"text-neutral3 pt-1 pb-2",children:"Use for real-time communication via SSE."}),o.jsxs("div",{className:"flex items-start gap-2",children:[o.jsx(ye,{className:"bg-surface4 rounded-lg px-2 py-1",children:n}),o.jsx("div",{className:"pt-1",children:o.jsx(Pa,{tooltip:"Copy SSE URL",content:n})})]})]}),o.jsxs("div",{className:"border-border1 bg-surface3 rounded-lg border p-4",children:[o.jsx(un,{icon:o.jsx("span",{className:"text-accent1 mr-1 w-6 font-mono font-medium",children:"CLI"}),children:"Command Line"}),o.jsx(ye,{className:"text-neutral3 pt-1 pb-2",children:"Use for local command-line access via npx and mcp-remote."}),o.jsxs("div",{className:"flex items-start gap-2",children:[o.jsx(ye,{className:"bg-surface4 rounded-lg px-2 py-1",children:a}),o.jsx("div",{className:"pt-1",children:o.jsx(Pa,{tooltip:"Copy Command Line Config",content:a})})]})]})]})]}),o.jsx("div",{className:"border-border1 h-full overflow-y-scroll border-l",children:o.jsx(gcs,{server:t})})]})},gcs=({server:e})=>{const{data:t={},isLoading:n}=Izt(e);if(n)return null;const r=Object.keys(t);return o.jsxs("div",{className:"overflow-y-scroll p-5",children:[o.jsxs("div",{className:"text-neutral6 flex items-center gap-2",children:[o.jsx(qe,{size:"lg",className:"bg-surface4 rounded-md p-1",children:o.jsx(mC,{})}),o.jsx(ye,{variant:"header-md",as:"h2",className:"font-medium",children:"Available Tools"})]}),o.jsx("div",{className:"flex flex-col gap-2 pt-6",children:r.map(s=>{const a=t[s];return o.jsx(ycs,{tool:a,serverId:e.id},s)})})]})};function vcs(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 ycs=({tool:e,serverId:t})=>{const n=v.useRef(null),{Link:r,paths:s}=yn(),a=r8t[e.toolType||"tool"],i=vcs(e._meta);return o.jsxs(Df,{onClick:()=>n.current?.click(),children:[o.jsx(K2t,{children:o.jsx(a,{className:"group-hover/entity:text-accent6"})}),o.jsxs(Ff,{children:[o.jsx(Lf,{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(un,{className:"py-0 text-[10px]",children:"App"})]})}),o.jsx(th,{children:e.description})]})]})},bcs=()=>{const{serverId:e}=Sr(),{data:t=[],isLoading:n}=RG(),r=t.find(s=>s.id===e);return o.jsx("div",{className:"h-full w-full overflow-hidden",children:o.jsx(mcs,{isLoading:n,server:r})})};function xcs(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 wcs=({toolId:e,serverId:t})=>{const{canExecute:n}=ul(),r=n("tools"),s=We(),{data:a,isLoading:i,error:l}=wNe(t,e),{mutateAsync:c,isPending:u,data:d}=WGr(t,e),f=a?xcs(a._meta):void 0,{data:p}=mt({queryKey:["mcp-app-resource",t,f],queryFn:async()=>f?(await s.readMcpServerResource(t,f)).contents[0]?.text??null:null,enabled:!!f}),h=v.useCallback(async(y,b)=>await c(b),[c]);v.useEffect(()=>{if(l){const y=l instanceof Error?l.message:"Failed to load tool";Le.error(`Error loading tool: ${y}`)}},[l]);const m=async y=>{if(a)return await c(y)};if(i)return o.jsxs("div",{className:"p-6",children:[o.jsx(xt,{className:"mb-4 h-8 w-48"}),o.jsx(xt,{className:"h-32 w-full"})]});if(l)return null;if(!a)return o.jsx("div",{className:"px-6 py-12 text-center",children:o.jsx(ye,{variant:"header-md",className:"text-neutral3",children:"Tool not found"})});if(!r)return o.jsx("div",{className:"px-6 py-12 text-center",children:o.jsx(ye,{variant:"ui-sm",className:"text-neutral3",children:"You don't have permission to execute tools."})});let g;try{g=fm(um(a.inputSchema))}catch(y){console.error("Error processing input schema:",y),Le.error("Failed to process tool input schema."),g=ks({})}return o.jsxs("div",{className:"flex flex-col gap-4",children:[p&&o.jsx("div",{className:"border-border1 border-b p-4",children:o.jsx(Nzt,{html:p,toolName:a.name??a.id,onToolCall:h})}),o.jsx(jNe,{executionResult:d,isExecutingTool:u,zodInputSchema:g,handleExecuteTool:m,toolDescription:a.description||"",toolId:a.id})]})},Scs=()=>{const{serverId:e,toolId:t}=Sr(),{data:n,isLoading:r}=wNe(e,t);return r||!n?null:o.jsx("div",{className:"h-full w-full overflow-y-auto",children:o.jsx(wcs,{toolId:t,serverId:e})})},O7t=[{label:"Agent",entityType:"agent"},{label:"Workflow",entityType:"workflow_run"},{label:"Scorer",entityType:"scorer"},{label:"Ingest",entityType:"rag_ingestion"}],PN="rootEntityType",$N={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"},sQ=Object.keys($N),kIe="mastra:metrics:saved-filters";function kcs(e){const t=jcs(e);try{localStorage.setItem(kIe,t.toString())}catch{}}function Ocs(){try{localStorage.removeItem(kIe)}catch{}}function _7t(){try{const e=localStorage.getItem(kIe);if(!e)return null;const t=new URLSearchParams(e);return t.toString()?t:null}catch{return null}}function _cs(e){if(e.has(PN))return!0;for(const t of sQ)if(e.has($N[t]))return!0;return!1}function Ccs({availableTags:e,availableEntityNames:t,availableServiceNames:n,availableEnvironments:r,loading:s}){const a=[{id:"rootEntityType",label:"Primitive Type",kind:"pick-multi",searchable:!1,options:O7t.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 Ecs(e){const t=[],n=new Map([[PN,"rootEntityType"]]);for(const s of sQ)n.set($N[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 jcs(e){const t=new URLSearchParams,n=e.getAll(PN);for(const r of n)t.append(PN,r);for(const r of sQ){const s=$N[r],a=e.getAll(s);for(const i of a)t.append(s,i)}return t}function Tcs(e,t){e.delete(PN);for(const n of sQ)e.delete($N[n]);for(const n of t){const r=n.fieldId==="rootEntityType"?PN:$N[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 Ncs="Any";function CXe(e){const t=e.trim();return t===""||t===Ncs}const Ics=new Set(O7t.map(e=>e.entityType));function EXe(e){const t=e.trim();return Ics.has(t)?t:void 0}function Acs(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=>!CXe(a));if(s.length===0)continue;if(r==="tags")t.tags=s;else if(r==="rootEntityType"){const a=s[0],i=a!==void 0?EXe(a):void 0;i&&(t.rootEntityType=i)}else t[r]=s[0]}else if(typeof n.value=="string"){if(CXe(n.value))continue;const s=n.value.trim();if(r==="rootEntityType"){const a=EXe(s);a&&(t.rootEntityType=a)}else t[r]=s}}return t}const C7t=[{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"}],Rcs=new Set(C7t.map(e=>e.value));function Pcs(e){return typeof e=="string"&&(Rcs.has(e)||e==="custom")}const E7t=v.createContext({datePreset:"24h",setDatePreset:()=>{},customRange:void 0,setCustomRange:()=>{},dateRangeLabel:"Last 24 hours",filterTokens:[],setFilterTokens:()=>{},dimensionalFilter:{},dimensionalFilterKey:"{}",tracesBasePath:void 0,logsBasePath:void 0});function aQ(){return v.useContext(E7t)}function $cs(e,t){return e!=="custom"?C7t.find(n=>n.value===e)?.label??e:t?.from?t.to?`${nr(t.from,"MMM d, yyyy")} – ${nr(t.to,"MMM d, yyyy")}`:nr(t.from,"MMM d, yyyy"):"Custom range"}function Mcs({children:e,preset:t,filterTokens:n,onPresetChange:r,onFilterTokensChange:s,customRange:a,onCustomRangeChange:i,tracesBasePath:l,logsBasePath:c}){const u=v.useMemo(()=>JSON.stringify(n),[n]),d=v.useMemo(()=>n,[u]),f=v.useMemo(()=>Acs(d),[d]),p=v.useMemo(()=>JSON.stringify(f),[f]),h=$cs(t,a),m=v.useMemo(()=>({datePreset:t,setDatePreset:r,customRange:a,setCustomRange:i??(()=>{}),dateRangeLabel:h,filterTokens:d,setFilterTokens:s,dimensionalFilter:f,dimensionalFilterKey:p,tracesBasePath:l,logsBasePath:c}),[t,r,a,i,h,d,s,f,p,l,c]);return o.jsx(E7t.Provider,{value:m,children:e})}const Dcs=["last-24h","last-3d","last-7d","last-14d","last-30d","custom"];function Lcs(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 Fcs(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 zcs(){const{datePreset:e,setDatePreset:t,customRange:n,setCustomRange:r}=aQ(),s=v.useRef(e);s.current=e;const a=v.useRef(n);return a.current=n,o.jsx(G3,{preset:Lcs(e),onPresetChange:i=>{const l=Fcs(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:Dcs})}const wbe=1440*60*1e3,Bcs={"24h":wbe,"3d":4320*60*1e3,"7d":10080*60*1e3,"14d":336*60*60*1e3,"30d":720*60*60*1e3};function Ucs(e,t,n){if(e!=="custom"){const r=Bcs[e]??wbe;return{start:new Date(n-r),end:new Date(n)}}return{start:t?.from??new Date(n-wbe),end:t?.to??new Date(n)}}function Im(){const{datePreset:e,customRange:t,dimensionalFilter:n,dimensionalFilterKey:r}=aQ(),s=v.useRef(null),a=e==="custom"?`custom:${t?.from?.getTime()??""}:${t?.to?.getTime()??""}`:`preset:${e}`;(!s.current||s.current.key!==a)&&(s.current={key:a,anchor:Date.now()});const i=s.current.anchor,l=v.useMemo(()=>Ucs(e,t,i),[e,t,i]),c=v.useMemo(()=>({timestamp:l,...n}),[l,r]),u=v.useMemo(()=>`${a}|${r}`,[a,r]);return{datePreset:e,customRange:t,timestamp:l,filters:c,dimensionalFilter:n,filterKey:u}}function j7t(){const e=We(),{filters:t,filterKey:n}=Im();return mt({queryKey:["metrics","agent-runs-kpi",n],queryFn:()=>e.getMetricAggregate({name:["mastra_agent_duration_ms"],aggregation:"count",filters:t,comparePeriod:"previous_period"})})}const Vcs=new Set(["ObservabilityStorageClickhouseVNext","ObservabilityStorageDuckDB","ObservabilityInMemory","ObservabilitySpanner","ObservabilityStoragePostgresVNext"]),qcs=()=>{const{data:e,isLoading:t}=R4(),n=e?.observabilityStorageType;return{supportsMetrics:e?.observabilityStorageCapabilities?.metrics??(n?Vcs.has(n):!1),isInMemory:n==="ObservabilityInMemory",isLoading:t}};function jL({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(OEn,{})})}function Hcs({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(ijn,{})})}const Wcs=[{dataKey:"p50",label:"p50",color:Fp.blue,aggregate:e=>({value:e.length>0?`${Math.round(e.reduce((t,n)=>t+n.p50,0)/e.length)}`:"0",suffix:"avg ms"})},{dataKey:"p95",label:"p95",color:Fp.yellow,aggregate:e=>({value:e.length>0?`${Math.round(e.reduce((t,n)=>t+n.p95,0)/e.length)}`:"0",suffix:"avg ms"})}];function Zcs(e){return e==="agents"||e==="workflows"||e==="tools"}function jae({data:e,onPointClick:t}){return e.length===0?o.jsx(Ht.NoData,{message:"No latency data yet"}):o.jsx(AV,{data:e,series:Wcs,onPointClick:t?n=>{const r=n;typeof r?.tsMs=="number"&&Number.isFinite(r.tsMs)&&t(r)}:void 0})}function Gcs({data:e,isLoading:t,isError:n,onPointClick:r,actions:s}){const a=(e?.agentData.length??0)>0,i=(e?.workflowData.length??0)>0,l=(e?.toolData.length??0)>0,c={agents:a,workflows:i,tools:l},u=a?"agents":i?"workflows":l?"tools":"agents",[d,f]=v.useState("agents"),p=c[d]?d:u,h=typeof s=="function"?s(p):s,m=!!e&&(e.agentData.length>0||e.workflowData.length>0||e.toolData.length>0),g=e?Object.values(e).filter(Array.isArray).flat().map(b=>b.p50).filter(b=>typeof b=="number"):[],y=g.length>0?`${Math.round(g.reduce((b,x)=>b+x,0)/g.length)}ms`:"—";return o.jsxs(Ht,{children:[o.jsxs(Ht.TopBar,{children:[o.jsx(Ht.TitleAndDescription,{title:"Latency",description:"Hourly p50 and p95 latency."}),m&&o.jsx(Ht.Summary,{value:y,label:"Avg p50"}),h?o.jsx(Ht.Actions,{children:h}):null]}),t?o.jsx(Ht.Loading,{}):n?o.jsx(Ht.Error,{message:"Failed to load latency data"}):o.jsx(Ht.Content,{children:m?o.jsxs(Dc,{value:p,onValueChange:b=>{Zcs(b)&&c[b]&&f(b)},defaultTab:u,className:"overflow-visible",children:[o.jsxs(Mc,{children:[o.jsx(Rr,{value:"agents",disabled:!a,disabledTooltip:"No agent latency data for this period",children:"Agents"}),o.jsx(Rr,{value:"workflows",disabled:!i,disabledTooltip:"No workflow latency data for this period",children:"Workflows"}),o.jsx(Rr,{value:"tools",disabled:!l,disabledTooltip:"No tool latency data for this period",children:"Tools"})]}),o.jsx(Xr,{value:"agents",children:o.jsx(jae,{data:e.agentData,onPointClick:r?b=>r("agents",b):void 0})}),o.jsx(Xr,{value:"workflows",children:o.jsx(jae,{data:e.workflowData,onPointClick:r?b=>r("workflows",b):void 0})}),o.jsx(Xr,{value:"tools",children:o.jsx(jae,{data:e.toolData,onPointClick:r?b=>r("tools",b):void 0})})]}):o.jsx(Ht.NoData,{message:"No latency data yet"})})]})}function Qcs(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 Ycs(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 T7t(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=Qcs(s);l&&e.set(t,l)}function Po(e,t,n){typeof n=="string"&&n.length>0&&e.set(t,n)}function N7t(e,t,n){if(!(!Array.isArray(n)||n.length===0))for(const r of n)r&&e.append(t,r)}function jXe({preset:e,customRange:t,dashboardFilter:n,scope:r,tracesBasePath:s="/observability"}){const a=new URLSearchParams;a.set(Ow,"branches"),T7t(a,_w,Cw,Ew,e,t,r.window);const i=r.rootEntityType??n.rootEntityType;i&&a.set(Fx,i),r.status&&a.set(zx,r.status),Po(a,Tl.entityName,r.entityName??n.entityName),Po(a,Tl.threadId,r.threadId??n.threadId),Po(a,Tl.resourceId,r.resourceId??n.resourceId),Po(a,Tl.entityId,n.entityId),Po(a,Tl.runId,n.runId),Po(a,Tl.sessionId,n.sessionId),Po(a,Tl.requestId,n.requestId),Po(a,Tl.userId,n.userId),Po(a,Tl.organizationId,n.organizationId),Po(a,Tl.experimentId,n.experimentId),Po(a,Tl.serviceName,n.serviceName),Po(a,Tl.environment,n.environment),N7t(a,Tl.tags,n.tags);const l=a.toString();return l?`${s}?${l}`:s}function Kcs({preset:e,customRange:t,dashboardFilter:n,scope:r,logsBasePath:s="/logs"}){const a=new URLSearchParams;T7t(a,Qb,Yb,Kb,e,t,r.window);const i=r.rootEntityType??n.rootEntityType;i&&a.set(Bx,i),Po(a,Nl.entityName,r.entityName??n.entityName),Po(a,Nl.threadId,r.threadId??n.threadId),Po(a,Nl.resourceId,r.resourceId??n.resourceId),Po(a,Nl.runId,n.runId),Po(a,Nl.sessionId,n.sessionId),Po(a,Nl.requestId,n.requestId),Po(a,Nl.userId,n.userId),Po(a,Nl.organizationId,n.organizationId),Po(a,Nl.experimentId,n.experimentId),Po(a,Nl.serviceName,n.serviceName),Po(a,Nl.environment,n.environment),N7t(a,Nl.tags,n.tags),r.status==="error"&&a.append(Nl.level,"error");const l=a.toString();return l?`${s}?${l}`:s}function KI(){const{datePreset:e,customRange:t,dimensionalFilter:n,tracesBasePath:r,logsBasePath:s}=aQ(),a=v.useCallback((c={})=>jXe({preset:e,customRange:t,dashboardFilter:n,scope:c,tracesBasePath:r}),[e,t,n,r]),i=v.useCallback((c={})=>Kcs({preset:e,customRange:t,dashboardFilter:n,scope:c,logsBasePath:s}),[e,t,n,s]),l=v.useCallback((c,u,d)=>{const f=Ycs(u,d);return jXe({preset:e,customRange:t,dashboardFilter:n,scope:{...c,window:f},tracesBasePath:r})},[e,t,n,r]);return{getTracesHref:a,getLogsHref:i,getBucketTracesHref:l}}const I7t="1h";async function Tae(e,t,n){const r=await e.getMetricPercentiles({name:t,percentiles:[.5,.95],interval:I7t,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 Xcs(){const e=We(),{filters:t,filterKey:n}=Im();return mt({queryKey:["metrics","latency",n],queryFn:async()=>{const[r,s,a]=await Promise.all([Tae(e,"mastra_agent_duration_ms",t),Tae(e,"mastra_workflow_duration_ms",t),Tae(e,"mastra_tool_duration_ms",t)]);return{agentData:r,workflowData:s,toolData:a,interval:I7t}}})}const TXe={agents:au.AGENT,workflows:au.WORKFLOW_RUN,tools:au.TOOL};function Jcs(){const{data:e,isLoading:t,isError:n}=Xcs(),{getTracesHref:r,getBucketTracesHref:s}=KI(),{Link:a}=yn(),i=qs();return o.jsx(Gcs,{data:e,isLoading:t,isError:n,onPointClick:(l,c)=>{Number.isFinite(c.tsMs)&&i(s({rootEntityType:TXe[l]},c.tsMs,"1h"))},actions:l=>o.jsx(jL,{href:r({rootEntityType:TXe[l]}),LinkComponent:a})})}function eus(e){return e==="threads"||e==="resources"}function Nae(e){return e.length<=12?e:`${e.slice(0,6)}…${e.slice(-4)}`}function tus({threads:e,resources:t,getThreadRowHref:n,getResourceRowHref:r,actions:s,LinkComponent:a}){const[i,l]=v.useState("threads"),c=e.data?.map(y=>({...y,key:y.threadId}))??[],u=t.data?.map(y=>({...y,key:y.resourceId}))??[],d=c.length>0,f=u.length>0,p=e.data?.reduce((y,b)=>y+b.runs,0)??0,h=t.data?.reduce((y,b)=>y+b.threadCount,0)??0,m=i==="threads"?e:t,g=typeof s=="function"?s(i):s;return o.jsxs(Ht,{children:[o.jsxs(Ht.TopBar,{children:[o.jsx(Ht.TitleAndDescription,{title:"Memory",description:"Resource and Thread consumption"}),i==="threads"&&d&&o.jsx(Ht.Summary,{value:p.toLocaleString(),label:"Total runs"}),i==="resources"&&f&&o.jsx(Ht.Summary,{value:h.toLocaleString(),label:"Total threads"}),g?o.jsx(Ht.Actions,{children:g}):null]}),m.isLoading?o.jsx(Ht.Loading,{}):m.isError?o.jsx(Ht.Error,{message:"Failed to load memory data"}):o.jsx(Ht.Content,{children:o.jsxs(Dc,{defaultTab:"threads",value:i,onValueChange:y=>{eus(y)&&l(y)},className:"grid h-full grid-rows-[auto_1fr] overflow-y-auto",children:[o.jsxs(Mc,{children:[o.jsx(Rr,{value:"threads",children:"Threads"}),o.jsx(Rr,{value:"resources",children:"Resources"})]}),o.jsx(Xr,{value:"threads",children:d?o.jsxs(ve,{columns:"auto auto auto auto auto",...mbe,children:[o.jsxs(ve.Top,{children:[o.jsx(ve.TopCell,{sticky:"start",children:"Thread ID"}),o.jsx(ve.TopCell,{className:"justify-end text-right",children:"Resource ID"}),o.jsx(ve.TopCell,{className:"justify-end text-right",children:"Runs"}),o.jsx(ve.TopCell,{className:"justify-end text-right",children:"Tokens"}),o.jsx(ve.TopCell,{className:"justify-end text-right",children:"Cost"})]}),c.map(y=>{const b=n?.(y),x=o.jsxs(o.Fragment,{children:[o.jsx(ve.RowHeaderCell,{height:"compact",className:"text-ui-sm",children:Nae(y.threadId)}),o.jsx(ve.NumberCell,{children:y.resourceId?Nae(y.resourceId):"—"}),o.jsx(ve.NumberCell,{highlight:!0,children:y.runs.toLocaleString()}),o.jsx(ve.NumberCell,{children:y.tokens>0?Oc(y.tokens):"—"}),o.jsx(ve.NumberCell,{children:y.cost!=null?Cg(y.cost,y.costUnit):"—"})]});return b?o.jsx(ve.RowLink,{to:b,LinkComponent:a,children:x},y.key):o.jsx(ve.RowStatic,{children:x},y.key)})]}):o.jsx(Ht.NoData,{message:"No thread activity yet"})}),o.jsx(Xr,{value:"resources",children:f?o.jsxs(ve,{columns:"auto auto auto auto",...mbe,children:[o.jsxs(ve.Top,{children:[o.jsx(ve.TopCell,{sticky:"start",children:"Resource ID"}),o.jsx(ve.TopCell,{className:"justify-end text-right",children:"Threads"}),o.jsx(ve.TopCell,{className:"justify-end text-right",children:"Tokens"}),o.jsx(ve.TopCell,{className:"justify-end text-right",children:"Cost"})]}),u.map(y=>{const b=r?.(y),x=o.jsxs(o.Fragment,{children:[o.jsx(ve.RowHeaderCell,{height:"compact",className:"text-ui-sm",children:Nae(y.resourceId)}),o.jsx(ve.NumberCell,{highlight:!0,children:y.threadCount.toLocaleString()}),o.jsx(ve.NumberCell,{children:y.tokens>0?Oc(y.tokens):"—"}),o.jsx(ve.NumberCell,{children:y.cost!=null?Cg(y.cost,y.costUnit):"—"})]});return b?o.jsx(ve.RowLink,{to:b,LinkComponent:a,children:x},y.key):o.jsx(ve.RowStatic,{children:x},y.key)})]}):o.jsx(Ht.NoData,{message:"No resource activity yet"})})]})})]})}function TL(e,t,n){const r=e.get(t);if(r!==void 0)return r;const s=n();return e.set(t,s),s}const Iae=20;function nus(){const e=We(),{filters:t,filterKey:n}=Im();return mt({queryKey:["metrics","top-active-threads",n],queryFn:async()=>{const r={groupBy:["threadId","resourceId"],orderDirection:"DESC",filters:t},[s,a,i]=await Promise.all([e.getMetricBreakdown({...r,name:["mastra_agent_duration_ms"],aggregation:"count",limit:Iae}),e.getMetricBreakdown({...r,name:["mastra_model_total_input_tokens"],aggregation:"sum",limit:Iae}),e.getMetricBreakdown({...r,name:["mastra_model_total_output_tokens"],aggregation:"sum",limit:Iae})]),l=new Map,c=d=>TL(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 Aae=20;function rus(){const e=We(),{filters:t,filterKey:n}=Im();return mt({queryKey:["metrics","top-resources-by-threads",n],queryFn:async()=>{const r={groupBy:["resourceId"],orderDirection:"DESC",filters:t},[s,a,i]=await Promise.all([e.getMetricBreakdown({...r,name:["mastra_agent_duration_ms"],aggregation:"count_distinct",distinctColumn:"threadId",limit:Aae}),e.getMetricBreakdown({...r,name:["mastra_model_total_input_tokens"],aggregation:"sum",limit:Aae}),e.getMetricBreakdown({...r,name:["mastra_model_total_output_tokens"],aggregation:"sum",limit:Aae})]),l=new Map,c=d=>TL(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 sus(){const e=nus(),t=rus(),{getTracesHref:n}=KI(),{Link:r}=yn();return o.jsx(tus,{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 NL({label:e,value:t,prevValue:n,changePct:r,isLoading:s,isError:a}){const i=t!=null;return o.jsxs(es,{children:[o.jsx(es.Label,{children:e}),o.jsx(es.Value,{className:i?void 0:"invisible",children:i?t:"—"}),a?o.jsx(es.Error,{}):s?o.jsx(es.Loading,{}):i?r!=null?o.jsx(es.Change,{changePct:r,prevValue:n}):o.jsx(es.NoChange,{}):o.jsx(es.NoData,{})]})}function aus(){const e=We(),{filters:t,filterKey:n}=Im();return mt({queryKey:["metrics","active-resources-kpi",n],queryFn:()=>e.getMetricAggregate({name:["mastra_agent_duration_ms"],aggregation:"count_distinct",distinctColumn:"resourceId",filters:t,comparePeriod:"previous_period"})})}function ius(){const e=We(),{filters:t,filterKey:n}=Im();return mt({queryKey:["metrics","active-threads-kpi",n],queryFn:()=>e.getMetricAggregate({name:["mastra_agent_duration_ms"],aggregation:"count_distinct",distinctColumn:"threadId",filters:t,comparePeriod:"previous_period"})})}function ous(){const e=We(),{filters:t,filterKey:n}=Im();return mt({queryKey:["metrics","model-cost-kpi",n],queryFn:async()=>{const r=await e.getMetricAggregate({name:["mastra_model_total_input_tokens","mastra_model_total_output_tokens"],aggregation:"sum",filters:t,comparePeriod:"previous_period"});return{cost:r.estimatedCost??null,costUnit:r.costUnit??null,previousCost:r.previousEstimatedCost??null,costChangePercent:r.costChangePercent??null}}})}function lus(){const e=We(),{filters:t,filterKey:n}=Im();return mt({queryKey:["metrics","total-tokens-kpi",n],queryFn:async()=>{const[r,s]=await Promise.all([e.getMetricAggregate({name:["mastra_model_total_input_tokens"],aggregation:"sum",filters:t,comparePeriod:"previous_period"}),e.getMetricAggregate({name:["mastra_model_total_output_tokens"],aggregation:"sum",filters:t,comparePeriod:"previous_period"})]),a=r.value!=null||s.value!=null,i=r.previousValue!=null||s.previousValue!=null,l=(r.value??0)+(s.value??0),c=(r.previousValue??0)+(s.previousValue??0),u=i&&c>0?(l-c)/c*100:null;return{value:a?l:null,previousValue:i?c:null,changePercent:u}}})}function cus(){const{data:e,isLoading:t,isError:n}=j7t();return o.jsx(NL,{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 uus(){const{data:e,isLoading:t,isError:n}=ous();return o.jsx(NL,{label:"Total Model Cost",value:e?.cost!=null?Cg(e.cost,e.costUnit):null,prevValue:e?.previousCost!=null?Cg(e.previousCost,e.costUnit):void 0,changePct:e?.costChangePercent??null,isLoading:t,isError:n})}function dus(){const{data:e,isLoading:t,isError:n}=lus();return o.jsx(NL,{label:"Total Tokens",value:e?.value!=null?Oc(e.value):null,prevValue:e?.previousValue!=null?Oc(e.previousValue):void 0,changePct:e?.changePercent??null,isLoading:t,isError:n})}function fus(){const{data:e,isLoading:t,isError:n}=ius();return o.jsx(NL,{label:"Total Threads",value:e?.value!=null?Oc(e.value):null,prevValue:e?.previousValue!=null?Oc(e.previousValue):void 0,changePct:e?.changePercent??null,isLoading:t,isError:n})}function pus(){const{data:e,isLoading:t,isError:n}=aus();return o.jsx(NL,{label:"Total Resources",value:e?.value!=null?Oc(e.value):null,prevValue:e?.previousValue!=null?Oc(e.previousValue):void 0,changePct:e?.changePercent??null,isLoading:t,isError:n})}function hus({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=>mus(f,a));return o.jsxs("div",{className:X("grid grid-cols-[1fr_auto] gap-3 items-start"),children:[o.jsx(JNe,{fields:a,tokens:i,onTokensChange:l,disabled:s,autoFocusFieldId:c}),u&&o.jsx(KNe,{disabled:s,onClear:d?e:void 0,onRemoveAll:t,onSave:n,onRemoveSaved:r})]})}function mus(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 gus({rows:e,isLoading:t,isError:n,getRowHref:r,actions:s,LinkComponent:a}){const i=!!e&&e.length>0;return o.jsxs(Ht,{children:[o.jsxs(Ht.TopBar,{children:[o.jsx(Ht.TitleAndDescription,{title:"Model Usage & Cost",description:"Token consumption by model."}),i&&(()=>{const l=e.reduce((d,f)=>d+(f.cost??0),0),c=new Set;for(const d of e)d.cost!=null&&d.costUnit&&c.add(d.costUnit);let u;return c.size===0?u=l>0?Cg(l):"—":c.size===1?u=l>0?Cg(l,[...c][0]):"—":u="Mixed",o.jsx(Ht.Summary,{value:u,label:"Total cost"})})(),s?o.jsx(Ht.Actions,{children:s}):null]}),t?o.jsx(Ht.Loading,{}):n?o.jsx(Ht.Error,{message:"Failed to load model usage data"}):o.jsx(Ht.Content,{children:i?o.jsxs(ve,{columns:"auto auto auto auto auto auto",...mbe,children:[o.jsxs(ve.Top,{children:[o.jsx(ve.TopCell,{sticky:"start",children:"Model"}),o.jsx(ve.TopCell,{className:"justify-end text-right",children:"Input"}),o.jsx(ve.TopCell,{className:"justify-end text-right",children:"Output"}),o.jsx(ve.TopCell,{className:"justify-end text-right",children:"Cache Read"}),o.jsx(ve.TopCell,{className:"justify-end text-right",children:"Cache Write"}),o.jsx(ve.TopCell,{className:"justify-end text-right",children:"Cost"})]}),e.map(l=>{const c=r?.(l),u=o.jsxs(o.Fragment,{children:[o.jsx(ve.RowHeaderCell,{height:"compact",className:"text-ui-sm",children:l.model}),o.jsx(ve.NumberCell,{children:l.input}),o.jsx(ve.NumberCell,{children:l.output}),o.jsx(ve.NumberCell,{children:l.cacheRead}),o.jsx(ve.NumberCell,{children:l.cacheWrite}),o.jsx(ve.NumberCell,{highlight:!0,children:l.cost!=null?Cg(l.cost,l.costUnit):"—"})]});return c?o.jsx(ve.RowLink,{to:c,LinkComponent:a,children:u},l.model):o.jsx(ve.RowStatic,{children:u},l.model)})]}):o.jsx(Ht.NoData,{message:"No model usage data yet"})})]})}function vus(){const e=We(),{filters:t,filterKey:n}=Im();return mt({queryKey:["metrics","model-usage-cost",n],queryFn:async()=>{const[r,s,a,i]=await Promise.all(["mastra_model_total_input_tokens","mastra_model_total_output_tokens","mastra_model_input_cache_read_tokens","mastra_model_input_cache_write_tokens"].map(d=>e.getMetricBreakdown({name:[d],groupBy:["model"],aggregation:"sum",orderDirection:"DESC",filters:t})));if(!r||!s||!a||!i)return[];const l=new Map,c=d=>TL(l,d,()=>({input:0,output:0,cacheRead:0,cacheWrite:0,cost:null,costUnit:null})),u=(d,f)=>{f.estimatedCost!=null&&(d.cost=(d.cost??0)+f.estimatedCost,f.costUnit&&(d.costUnit=f.costUnit))};for(const d of r.groups){const f=d.dimensions.model??"unknown",p=c(f);p.input=d.value,u(p,d)}for(const d of s.groups){const f=d.dimensions.model??"unknown",p=c(f);p.output=d.value,u(p,d)}for(const d of a.groups){const f=d.dimensions.model??"unknown",p=c(f);p.cacheRead=d.value}for(const d of i.groups){const f=d.dimensions.model??"unknown",p=c(f);p.cacheWrite=d.value}return Array.from(l.entries()).map(([d,f])=>({model:d,input:Oc(f.input),output:Oc(f.output),cacheRead:Oc(f.cacheRead),cacheWrite:Oc(f.cacheWrite),cost:f.cost,costUnit:f.costUnit})).sort((d,f)=>d.model.localeCompare(f.model))}})}function yus(){const{data:e,isLoading:t,isError:n}=vus(),{getTracesHref:r}=KI(),{Link:s}=yn();return o.jsx(gus,{rows:e,isLoading:t,isError:n,LinkComponent:s,getRowHref:()=>r({rootEntityType:au.AGENT}),actions:o.jsx(jL,{href:r({rootEntityType:au.AGENT}),LinkComponent:s})})}function bus(e){return e==="tokens"||e==="cost"}function xus({data:e,isLoading:t,isError:n,getRowHref:r,actions:s,LinkComponent:a}){const[i,l]=v.useState("tokens"),c=e??[],u=c.length>0,d=c.reduce((b,x)=>b+x.total,0),f=c.filter(b=>b.cost!=null&&b.cost>0),p=new Set(f.map(b=>b.costUnit??"usd")),h=p.size<=1,m=h?[...p][0]??"usd":null,g=h?f.reduce((b,x)=>b+(x.cost??0),0):0,y=h&&g>0;return o.jsxs(Ht,{children:[o.jsxs(Ht.TopBar,{children:[o.jsx(Ht.TitleAndDescription,{title:"Token Usage by Agent",description:"Token consumption grouped by agent."}),u&&(i==="cost"&&y?o.jsx(Ht.Summary,{value:Cg(g,m),label:"Total cost"}):o.jsx(Ht.Summary,{value:Oc(d),label:"Total tokens"})),u&&s?o.jsx(Ht.Actions,{children:s}):null]}),t?o.jsx(Ht.Loading,{}):n?o.jsx(Ht.Error,{message:"Failed to load token usage data"}):o.jsx(Ht.Content,{children:u?o.jsxs(Dc,{defaultTab:"tokens",value:i,onValueChange:b=>{bus(b)&&l(b)},className:"grid h-full grid-rows-[auto_1fr] overflow-y-auto",children:[o.jsxs(Mc,{children:[o.jsx(Rr,{value:"tokens",children:"Tokens"}),o.jsx(Rr,{value:"cost",children:"Cost"})]}),o.jsx(Xr,{value:"tokens",children:o.jsx(RN,{LinkComponent:a,data:c.map(b=>({name:b.name,values:[b.input,b.output],href:r?.(b)})),segments:[{label:"Input",color:Fp.blueDark},{label:"Output",color:Fp.blue}],maxVal:Math.max(...c.map(b=>b.input+b.output)),fmt:Oc})}),o.jsx(Xr,{value:"cost",children:y?o.jsx(RN,{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:Fp.purple}],maxVal:Math.max(...f.map(b=>b.cost??0)),fmt:b=>Cg(b,m)}):o.jsx(Ht.NoData,{message:"No cost data yet"})})]}):o.jsx(Ht.NoData,{message:"No token usage data yet"})})]})}function wus(){const e=We(),{filters:t,filterKey:n}=Im();return mt({queryKey:["metrics","token-usage-by-agent",n],queryFn:async()=>{const r={groupBy:["entityName"],aggregation:"sum",orderDirection:"DESC",filters:t},[s,a]=await Promise.all([e.getMetricBreakdown({...r,name:["mastra_model_total_input_tokens"]}),e.getMetricBreakdown({...r,name:["mastra_model_total_output_tokens"]})]),i=new Map,l=u=>TL(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 Sus(){const{data:e,isLoading:t,isError:n}=wus(),{getTracesHref:r}=KI(),{Link:s}=yn();return o.jsx(xus,{data:e,isLoading:t,isError:n,LinkComponent:s,getRowHref:a=>r({rootEntityType:au.AGENT,entityName:a.name}),actions:o.jsx(jL,{href:r({rootEntityType:au.AGENT}),LinkComponent:s})})}function Sbe(e,t=Oc){return n=>({value:t(n.reduce((r,s)=>r+(typeof s[e]=="number"?s[e]:0),0))})}const kus=[{dataKey:"input",label:"Input tokens",color:Fp.blue,aggregate:Sbe("input")},{dataKey:"output",label:"Output tokens",color:Fp.yellow,aggregate:Sbe("output")}];function Ous(e){return e==="tokens"||e==="cost"}function _us({data:e,interval:t="1d",isLoading:n,isError:r,actions:s}){const[a,i]=v.useState("tokens"),l=e??[],c=l.map(k=>({...k})),u=l.length>0,d=l.reduce((k,_)=>k+_.total,0),f=l.filter(k=>k.cost!=null&&k.cost>0),p=f.map(k=>({...k})),h=new Set(f.map(k=>k.costUnit).filter(k=>!!k)),m=h.size===1&&f.every(k=>k.costUnit!=null),g=m?[...h][0]??null:null,y=m?f.reduce((k,_)=>k+(_.cost??0),0):0,b=m&&y>0,x=t==="1h"?"Input and output tokens per hour.":"Input and output tokens per day.",S=[{dataKey:"cost",label:"Cost",color:Fp.purple,aggregate:Sbe("cost",k=>Cg(k,g))}];return o.jsxs(Ht,{children:[o.jsxs(Ht.TopBar,{children:[o.jsx(Ht.TitleAndDescription,{title:"Token usage over time",description:x}),u&&(a==="cost"&&b?o.jsx(Ht.Summary,{value:Cg(y,g),label:"Total cost"}):o.jsx(Ht.Summary,{value:Oc(d),label:"Total tokens"})),u&&s?o.jsx(Ht.Actions,{children:s}):null]}),n?o.jsx(Ht.Loading,{}):r?o.jsx(Ht.Error,{message:"Failed to load token usage timeline"}):o.jsx(Ht.Content,{children:u?o.jsxs(Dc,{defaultTab:"tokens",value:a,onValueChange:k=>{Ous(k)&&i(k)},className:"overflow-visible",children:[o.jsxs(Mc,{children:[o.jsx(Rr,{value:"tokens",children:"Tokens"}),o.jsx(Rr,{value:"cost",children:"Cost"})]}),o.jsx(Xr,{value:"tokens",children:o.jsx(AV,{data:c,series:kus})}),o.jsx(Xr,{value:"cost",children:b?o.jsx(AV,{data:p,series:S}):o.jsx(Ht.NoData,{message:"No cost data yet"})})]}):o.jsx(Ht.NoData,{message:"No token usage data yet"})})]})}function Cus(e){return e==="24h"?"1h":"1d"}function Eus(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 NXe(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 jus(e){return e.cost==null||e.hasUnknownCostUnit||e.costUnits.size!==1?null:[...e.costUnits][0]??null}function Tus(){const e=We(),{datePreset:t,filters:n,filterKey:r}=Im(),s=Cus(t);return mt({queryKey:["metrics","token-usage-timeseries",r,s],queryFn:async()=>{const[a,i]=await Promise.all([e.getMetricTimeSeries({name:["mastra_model_total_input_tokens"],interval:s,aggregation:"sum",filters:n}),e.getMetricTimeSeries({name:["mastra_model_total_output_tokens"],interval:s,aggregation:"sum",filters:n})]),l=new Map;return NXe(l,a.series[0],"input"),NXe(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:Eus(d,s),tsMs:u.tsMs,input:u.input,output:u.output,total:u.input+u.output,cost:u.cost,costUnit:jus(u)}}),interval:s}}})}function Nus(){const{data:e,isLoading:t,isError:n}=Tus(),{getTracesHref:r}=KI(),{Link:s}=yn();return o.jsx(_us,{data:e?.data,interval:e?.interval,isLoading:t,isError:n,actions:o.jsx(jL,{href:r(),LinkComponent:s})})}function Rae({data:e,rowHrefs:t,errorHrefs:n,LinkComponent:r}){return o.jsx(RN,{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:Fp.blueDark},{label:"Errors",color:Fp.pink}],maxVal:Math.max(...e.map(s=>s.completed+s.errors)),fmt:Oc})}function Ius({data:e,isLoading:t,isError:n,getRowHref:r,getErrorSegmentHref:s,actions:a,LinkComponent:i}){const[l,c]=v.useState("agents"),u=typeof a=="function"?a(l):a,d=!!e&&(e.agentData.length>0||e.workflowData.length>0||e.toolData.length>0),f=e?[...e.agentData,...e.workflowData,...e.toolData].reduce((m,g)=>m+g.completed+g.errors,0):0,p=m=>r?g=>r(m,g):void 0,h=m=>s?g=>s(m,g):void 0;return o.jsxs(Ht,{children:[o.jsxs(Ht.TopBar,{children:[o.jsx(Ht.TitleAndDescription,{title:"Trace Volume",description:"Runs and call counts."}),d&&o.jsx(Ht.Summary,{value:Oc(f),label:"Total runs"}),u?o.jsx(Ht.Actions,{children:u}):null]}),t?o.jsx(Ht.Loading,{}):n?o.jsx(Ht.Error,{message:"Failed to load trace volume data"}):o.jsx(Ht.Content,{children:d?o.jsxs(Dc,{value:l,onValueChange:c,defaultTab:"agents",className:"grid h-full grid-rows-[auto_1fr] overflow-y-auto",children:[o.jsxs(Mc,{children:[o.jsx(Rr,{value:"agents",children:"Agents"}),o.jsx(Rr,{value:"workflows",children:"Workflows"}),o.jsx(Rr,{value:"tools",children:"Tools"})]}),o.jsx(Xr,{value:"agents",children:e.agentData.length>0?o.jsx(Rae,{data:e.agentData,rowHrefs:p("agents"),errorHrefs:h("agents"),LinkComponent:i}):o.jsx(Ht.NoData,{message:"No agent data yet"})}),o.jsx(Xr,{value:"workflows",children:e.workflowData.length>0?o.jsx(Rae,{data:e.workflowData,rowHrefs:p("workflows"),errorHrefs:h("workflows"),LinkComponent:i}):o.jsx(Ht.NoData,{message:"No workflow data yet"})}),o.jsx(Xr,{value:"tools",children:e.toolData.length>0?o.jsx(Rae,{data:e.toolData,rowHrefs:p("tools"),errorHrefs:h("tools"),LinkComponent:i}):o.jsx(Ht.NoData,{message:"No tool data yet"})})]}):o.jsx(Ht.NoData,{message:"No trace volume data yet"})})]})}async function Pae(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=TL(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 Aus(){const e=We(),{filters:t,filterKey:n}=Im();return mt({queryKey:["metrics","trace-volume",n],queryFn:async()=>{const[r,s,a]=await Promise.all([Pae(e,"mastra_agent_duration_ms",t),Pae(e,"mastra_workflow_duration_ms",t),Pae(e,"mastra_tool_duration_ms",t)]);return{agentData:r,workflowData:s,toolData:a}}})}const Fz={agents:au.AGENT,workflows:au.WORKFLOW_RUN,tools:au.TOOL};function Rus(){const{data:e,isLoading:t,isError:n}=Aus(),{getTracesHref:r,getLogsHref:s}=KI(),{Link:a}=yn();return o.jsx(Ius,{data:e,isLoading:t,isError:n,LinkComponent:a,getRowHref:(i,l)=>r({rootEntityType:Fz[i],entityName:l.name}),getErrorSegmentHref:(i,l)=>l.errors>0?s({rootEntityType:Fz[i],entityName:l.name,status:"error"}):void 0,actions:i=>o.jsxs(o.Fragment,{children:[o.jsx(jL,{href:r({rootEntityType:Fz[i]}),LinkComponent:a}),o.jsx(Hcs,{href:s({rootEntityType:Fz[i],status:"error"}),LinkComponent:a})]})})}const $ae="period",zz="dateFrom",Bz="dateTo";function Pus(){const[e,t]=Ri(),n=e.get($ae),r=Pcs(n)?n:"24h",s=v.useMemo(()=>{if(r!=="custom")return;const d=h=>{if(!h)return;const m=new Date(h);return Number.isNaN(m.getTime())?void 0:m},f=d(e.get(zz)),p=d(e.get(Bz));if(!(!f&&!p))return{from:f,to:p}},[r,e.toString()]),a=v.useMemo(()=>Ecs(e),[e.toString()]),i=v.useCallback(d=>{t(f=>{const p=new URLSearchParams(f);return d==="24h"?p.delete($ae):p.set($ae,d),d!=="custom"&&(p.delete(zz),p.delete(Bz)),p},{replace:!0})},[t]),l=v.useCallback(d=>{t(f=>{const p=new URLSearchParams(f);return d?.from?p.set(zz,d.from.toISOString()):p.delete(zz),d?.to?p.set(Bz,d.to.toISOString()):p.delete(Bz),p},{replace:!0})},[t]),c=v.useCallback(d=>{t(f=>{const p=new URLSearchParams(f);return Tcs(p,d),p},{replace:!0})},[t]),u=v.useRef(!1);return v.useEffect(()=>{if(u.current||(u.current=!0,_cs(e)))return;const d=_7t();d&&t(f=>{const p=new URLSearchParams(f);for(const[h,m]of d)p.append(h,m);return p},{replace:!0})},[]),o.jsx(Mcs,{preset:r,filterTokens:a,onPresetChange:i,onFilterTokensChange:c,customRange:s,onCustomRangeChange:l,children:o.jsx($us,{})})}function $us(){const[e]=Ri(),{error:t,isLoading:n}=j7t(),{filterTokens:r,setFilterTokens:s}=aQ(),[a,i]=v.useState(),{supportsMetrics:l,isInMemory:c,isLoading:u}=qcs(),{data:d,isLoading:f}=uIe(),{data:p,isLoading:h}=oIe(),{data:m,isLoading:g}=cIe(),{data:y,isLoading:b}=lIe(),x=v.useMemo(()=>Ccs({availableTags:d??[],availableEntityNames:p??[],availableServiceNames:m??[],availableEnvironments:y??[],loading:{tags:f,entityNames:h,serviceNames:g,environments:b}}),[d,p,m,y,f,h,g,b]),[S,k]=v.useState(()=>_7t()!==null),_=v.useCallback(()=>{kcs(e),k(!0),Le.success("Filters setting for Metrics saved")},[e]),C=v.useCallback(()=>{Ocs(),k(!1),Le.success("Filters setting for Metrics cleared up")},[]),E=v.useCallback(()=>{s([])},[s]),j=v.useCallback(()=>{const N=r.map(I=>{const A=x.find(R=>R.id===I.fieldId);return A?A.kind==="text"?{fieldId:I.fieldId,value:""}:A.kind==="pick-multi"?A.multi?{fieldId:I.fieldId,value:[]}:{fieldId:I.fieldId,value:"Any"}:A.kind==="multi-select"?{fieldId:I.fieldId,value:[]}:I:I});s(N)},[x,r,s]);return t&&ys(t)?o.jsx(lr,{children:o.jsx(Hs,{})}):t&&xs(t)?o.jsx(lr,{children:o.jsx(Ms,{resource:"metrics"})}):t?o.jsx(lr,{children:o.jsx(qi,{title:"Failed to load metrics",message:t.message})}):o.jsxs(Ft,{width:"wide",height:"full",children:[o.jsxs(Ft.TopArea,{children:[o.jsx(Ft.Row,{children:o.jsxs(Ft.Column,{className:"flex flex-wrap items-start justify-start gap-2",children:[o.jsx(zcs,{}),o.jsx(eIe,{fields:x,tokens:r,onTokensChange:s,disabled:n,onStartTextFilter:i})]})}),o.jsx(hus,{isLoading:n,filterFields:x,filterTokens:r,onFilterTokensChange:s,onClear:j,onRemoveAll:E,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(En,{variant:"info",title:"Metrics are not persisted",children:o.jsx(En.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(gbe,{children:[o.jsx(cus,{}),o.jsx(uus,{}),o.jsx(dus,{}),o.jsx(fus,{}),o.jsx(pus,{})]}),o.jsxs(gbe,{children:[o.jsx(yus,{}),o.jsx(Sus,{}),o.jsx(Nus,{}),o.jsx(sus,{}),o.jsx(Rus,{}),o.jsx(Jcs,{})]})]}):o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Lr,{iconSlot:o.jsx(Nf,{}),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(Sa,{})]})})})]})}function Mus(){const{paths:e}=yn(),{data:t,isLoading:n,error:r}=a8t(),{isCmsAvailable:s}=X1(),[a,i]=v.useState(""),l=t?.promptBlocks??[];return r&&ys(r)?o.jsx(lr,{children:o.jsx(Hs,{})}):r&&xs(r)?o.jsx(lr,{children:o.jsx(Ms,{resource:"prompt blocks"})}):r?o.jsx(lr,{children:o.jsx(qi,{title:"Failed to load prompt blocks",message:r.message})}):l.length===0&&!n?o.jsx(lr,{children:o.jsx(XXr,{})}):o.jsxs(Ft,{children:[o.jsx(Ft.TopArea,{children:o.jsxs(Ft.Row,{align:"center",stack:"responsive",children:[o.jsx("div",{className:"max-w-120 flex-1",children:o.jsx($f,{onSearch:i,label:"Filter prompts",placeholder:"Filter by name or description"})}),s&&o.jsxs(oe,{as:Fa,to:e.cmsPromptBlockCreateLink(),variant:"primary",className:"shrink-0",children:[o.jsx(Zr,{}),"Create Prompt"]})]})}),o.jsx(KXr,{promptBlocks:l,isLoading:n,search:a})]})}function Dus(){return o.jsx(Ft,{width:"narrow",children:o.jsx(Ft.MainArea,{children:o.jsx(NQr,{children:o.jsx(Wye,{})})})})}const Lus=[{title:"Mastra APIs",description:"Explore and test the available REST API endpoints with the interactive Swagger UI.",icon:YHt,href:"/swagger-ui",external:!1},{title:"Documentation",description:"Read the official Mastra documentation for guides, references, and tutorials.",icon:oit,href:"https://mastra.ai/en/docs",external:!0},{title:"Github",description:"Browse the source code, report issues, and contribute to the Mastra project.",icon:Sa,href:"https://github.com/mastra-ai/mastra",external:!0},{title:"Community",description:"Join the Mastra Discord community for help, discussion, and collaboration.",icon:fT,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:mit,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:lit,href:"https://mastra.ai/contact?ref=studio",external:!0}];function Fus(){return o.jsx(Ft,{width:"narrow",children:o.jsx(Ft.MainArea,{children:o.jsx("div",{className:"grid max-w-3xl grid-cols-1 gap-4 sm:grid-cols-2",children:Lus.map(e=>o.jsxs("a",{href:e.href,...e.external?{target:"_blank",rel:"noreferrer"}:{},className:"group border-border1 bg-surface2 hover:border-accent1 hover:bg-surface3 flex flex-col gap-3 rounded-lg border p-5 transition-colors",children:[o.jsxs("div",{className:"flex items-center gap-2.5",children:[o.jsx(e.icon,{className:"text-icon3 group-hover:text-accent1 h-5 w-5 transition-colors"}),o.jsx("span",{className:"text-ui-md text-text1 font-medium",children:e.title}),e.external&&o.jsx(Sa,{className:"text-icon3 ml-auto h-3.5 w-3.5 opacity-0 transition-opacity group-hover:opacity-100"})]}),o.jsx("p",{className:"text-ui-sm text-text3 leading-relaxed",children:e.description})]},e.href))})})})}function zus(){const{data:e={},isLoading:t,error:n}=ih(),[r,s]=v.useState(""),[a,i]=v.useState("all");if(n&&ys(n))return o.jsx(lr,{children:o.jsx(Hs,{})});if(n&&xs(n))return o.jsx(lr,{children:o.jsx(Ms,{resource:"scorers"})});if(n)return o.jsx(lr,{children:o.jsx(qi,{title:"Failed to load scorers",message:n.message})});if(Object.keys(e).length===0&&!t)return o.jsx(lr,{children:o.jsx(aKr,{})});const l=a!=="all"||r!=="",c=()=>{s(""),i("all")};return o.jsxs(Ft,{children:[o.jsx(Ft.TopArea,{children:o.jsx(oKr,{search:r,onSearchChange:s,sourceFilter:a,onSourceFilterChange:i,onReset:c,hasActiveFilters:l})}),o.jsx(sKr,{scorers:e,isLoading:t,search:r,sourceFilter:a})]})}function Bus(){const{scorerId:e}=Sr(),[t,n]=Ri(),r=t.get("scoreId")??void 0,[s,a]=v.useState(r),[i,l]=v.useState({value:"all",label:"All Entities",type:"ALL"}),{scorer:c,error:u}=$Yr(e),{data:d={},isLoading:f,error:p}=Em(),{isLoading:h,error:m}=Wy(),{data:g=[],isLoading:y,error:b,isFetchingNextPage:x,hasNextPage:S,setEndOfListElement:k}=PYr({scorerId:e,entityId:i?.value==="all"?void 0:i?.value,entityType:i?.type==="ALL"?void 0:i?.type}),_=v.useMemo(()=>c?.agentIds?.filter(q=>d[q]).map(q=>({value:q,label:d[q].name,type:"AGENT"}))||[],[c?.agentIds,d]),C=v.useMemo(()=>c?.workflowIds?.map(q=>({value:q,label:q,type:"WORKFLOW"}))||[],[c?.workflowIds]),E=v.useMemo(()=>[{value:"all",label:"All Entities",type:"ALL"},..._,...C],[_,C]),j=t.get("entity")??"all",N=E.find(q=>q.value===j);N&&N.value!==i?.value&&l(N),v.useEffect(()=>{if(u){const q=u instanceof Error?u.message:"Failed to load scorer";Le.error(`Error loading scorer: ${q}`)}},[u]),v.useEffect(()=>{if(p){const q=p instanceof Error?p.message:"Failed to load agents";Le.error(`Error loading agents: ${q}`)}},[p]),v.useEffect(()=>{if(m){const q=m instanceof Error?m.message:"Failed to load workflows";Le.error(`Error loading workflows: ${q}`)}},[m]);const I=q=>{q?.value&&n(M=>{const G=new URLSearchParams(M);return G.set("entity",q.value),G})};v.useEffect(()=>{const q=t.get("scoreId")??void 0;if(q===s)return;if(!q){a(void 0);return}g.find(G=>G.id===q)&&a(q)},[t,g]);const A=v.useCallback(q=>{a(q||void 0),n(M=>{const G=new URLSearchParams(M);return q?G.set("scoreId",q):G.delete("scoreId"),G})},[n]);if(!c)return null;const R=ys(u)||ys(p)||ys(m),L=u&&xs(u),D=!R&&!L&&(u||p||m),B=!y&&g.length===0,H=i?.value!=="all",F=c?.scorer?.source==="stored"?o.jsx(My,{owner:"scorer-detail",children:o.jsxs(oe,{variant:"default",as:Fa,to:`/cms/scorers/${e}/edit`,size:"sm",children:[o.jsx(rm,{})," Edit"]})}):null;if(R||L||D||B&&!H){const q=(u instanceof Error?u.message:void 0)??(p instanceof Error?p.message:void 0)??(m instanceof Error?m.message:void 0)??"An unexpected error occurred";return o.jsxs(Ft,{width:"wide",height:"full",children:[F,o.jsx(Ft.MainArea,{isCentered:!0,children:R?o.jsx(Hs,{}):L?o.jsx(Ms,{resource:"scorers"}):D?o.jsx(qi,{title:"Failed to load scorer",message:q}):o.jsx(EYr,{})})]})}return o.jsxs(Ft,{width:"wide",children:[F,o.jsx(Ft.TopArea,{children:o.jsx(jYr,{selectedEntity:i,entityOptions:E,onEntityChange:I,onReset:()=>{n(q=>{const M=new URLSearchParams(q);return M.set("entity","all"),M})},isLoading:y||f||h})}),o.jsx(CYr,{scores:g,isLoading:y,selectedScoreId:s,isFetchingNextPage:x,hasNextPage:S,setEndOfListElement:k,onScoreClick:A,errorMsg:b?.message})]})}function Uus({label:e,description:t,htmlFor:n,className:r,children:s}){return o.jsxs("div",{className:X("flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",r),"data-slot":"settings-row",children:[o.jsxs("div",{children:[n?o.jsx(Dt,{htmlFor:n,className:"text-sm font-medium",children:e}):o.jsx("p",{className:"text-sm font-medium",children:e}),t&&o.jsx("p",{className:"text-neutral3 text-sm",children:t})]}),s]})}const A7t=[{value:"dark",label:"Dark",Icon:TZt},{value:"light",label:"Light",Icon:BGt},{value:"system",label:"System",Icon:Sit}],Vus=e=>A7t.some(t=>t.value===e);function qus({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 Hus=()=>{const{baseUrl:e,headers:t,apiPrefix:n}=Xq(),{theme:r,setTheme:s}=U_();return o.jsx(Ft,{width:"narrow",children:o.jsxs(Ft.MainArea,{className:"mt-6 flex flex-col gap-5",children:[o.jsx(Tye,{title:"Theme",description:"Customize the appearance of the studio.",children:o.jsx(Uus,{label:"Theme mode",htmlFor:"theme",children:o.jsxs(oa,{value:r,onValueChange:a=>{Vus(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:A7t.map(a=>o.jsx(Ar,{value:a.value,children:o.jsx(qus,{option:a})},a.value))})]})})}),o.jsx(Tye,{title:"Mastra Connection",description:"Configure the Mastra instance URL, API prefix, and request headers used by the studio.",children:o.jsx(G$t,{initialConfig:{baseUrl:e,headers:t,apiPrefix:n}})})]})})};function Wus(){const[e]=Ri(),t=qs(),n=e.get("redirect")||"/",r=()=>{n.startsWith("http")?window.location.href=n:t(n,{replace:!0})};return o.jsx(S7t,{redirectUri:n,onSuccess:r,initialMode:"signup"})}const R7t=e=>o.jsxs("svg",{width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:[o.jsx("g",{clipPath:"url(#clip0_21999_22095)",children:o.jsx("path",{d:"M7.5 0.75C3.6325 0.75 0.5 3.8825 0.5 7.75C0.5 10.8475 2.50375 13.4637 5.28625 14.3912C5.63625 14.4525 5.7675 14.2425 5.7675 14.0587C5.7675 13.8925 5.75875 13.3412 5.75875 12.755C4 13.0787 3.545 12.3262 3.405 11.9325C3.32625 11.7312 2.985 11.11 2.6875 10.9437C2.4425 10.8125 2.0925 10.4887 2.67875 10.48C3.23 10.4712 3.62375 10.9875 3.755 11.1975C4.385 12.2562 5.39125 11.9587 5.79375 11.775C5.855 11.32 6.03875 11.0137 6.24 10.8387C4.6825 10.6637 3.055 10.06 3.055 7.3825C3.055 6.62125 3.32625 5.99125 3.7725 5.50125C3.7025 5.32625 3.4575 4.60875 3.8425 3.64625C3.8425 3.64625 4.42875 3.4625 5.7675 4.36375C6.3275 4.20625 6.9225 4.1275 7.5175 4.1275C8.1125 4.1275 8.7075 4.20625 9.2675 4.36375C10.6062 3.45375 11.1925 3.64625 11.1925 3.64625C11.5775 4.60875 11.3325 5.32625 11.2625 5.50125C11.7087 5.99125 11.98 6.6125 11.98 7.3825C11.98 10.0687 10.3438 10.6637 8.78625 10.8387C9.04 11.0575 9.25875 11.4775 9.25875 12.1337C9.25875 13.07 9.25 13.8225 9.25 14.0587C9.25 14.2425 9.38125 14.4612 9.73125 14.3912C11.1209 13.9221 12.3284 13.029 13.1839 11.8377C14.0393 10.6463 14.4996 9.21668 14.5 7.75C14.5 3.8825 11.3675 0.75 7.5 0.75Z",fill:"currentColor"})}),o.jsx("defs",{children:o.jsx("clipPath",{id:"clip0_21999_22095",children:o.jsx("rect",{width:"14",height:"14",fill:"currentColor",transform:"translate(0.5 0.75)"})})})]});function Zus(e){return e.replace(/\/$/,"").split("/").pop()}function iQ({children:e,className:t}){return o.jsx("div",{className:X("border border-border1 rounded-lg mt-12 py-8 lg:min-h-[25rem] transition-height px-4 lg:px-12",t),children:e})}function Gus({templates:e,linkComponent:t,className:n,isLoading:r}){const s=t||"a";return r?o.jsx("div",{className:X("grid gap-y-4",n),children:Array.from({length:5}).map((a,i)=>o.jsx("div",{className:"bg-surface3 h-16 animate-pulse rounded-lg"},i))}):o.jsx("div",{className:X("grid gap-y-4",n),children:e.map(a=>{const i=a?.agents||a?.tools||a?.networks||a?.workflows||a?.mcp;return o.jsxs("article",{className:X("border border-border1 rounded-lg overflow-hidden w-full grid grid-cols-[1fr_auto] bg-surface3 transition-colors hover:bg-surface4"),children:[o.jsxs(s,{to:`/templates/${a.slug}`,className:X("grid [&:hover_p]:text-neutral5",{"grid-cols-[8rem_1fr] lg:grid-cols-[12rem_1fr]":a.imageURL}),children:[a.imageURL&&o.jsx("div",{className:X("overflow-hidden"),children:o.jsx("div",{className:"thumb transition-scale h-full w-full bg-cover duration-150",style:{backgroundImage:`url(${a.imageURL})`}})}),o.jsxs("div",{className:X("grid py-3 px-6 w-full gap-0.5","[&_svg]:w-[1em] [&_svg]:h-[1em] [&_svg]:text-neutral3"),children:[o.jsx("h2",{className:"text-ui-lg text-neutral5",children:a.title}),o.jsx("p",{className:"text-ui-md text-neutral4 transition-colors duration-500",children:a.description}),o.jsxs("div",{className:"text-neutral3 text-ui-md mt-3 hidden flex-wrap items-center gap-4 2xl:flex",children:[i&&o.jsxs("ul",{className:X("flex gap-4 text-ui-md text-neutral3 m-0 p-0 list-none","[&>li]:flex [&>li]:items-center [&>li]:gap-0.5 text-neutral4"),children:[a?.agents&&a.agents.length>0&&o.jsxs("li",{children:[o.jsx(Uo,{})," ",a.agents.length]}),a?.tools&&a.tools.length>0&&o.jsxs("li",{children:[o.jsx(Ld,{})," ",a.tools.length]}),a?.networks&&a.networks.length>0&&o.jsxs("li",{children:[o.jsx(kit,{})," ",a.networks.length]}),a?.workflows&&a.workflows.length>0&&o.jsxs("li",{children:[o.jsx(RD,{})," ",a.workflows.length]}),a?.mcp&&a.mcp.length>0&&o.jsxs("li",{children:[o.jsx(mC,{})," ",a.mcp.length]})]}),i&&a.supportedProviders&&o.jsx("small",{children:"|"}),o.jsx("div",{className:"text-neutral3 flex items-center gap-4",children:a.supportedProviders.map(l=>o.jsx("span",{className:"",children:l},l))})]})]})]}),o.jsx("a",{href:a.githubUrl,className:X("group items-center gap-2 text-ui-md ml-auto pr-4 hidden","lg:flex"),target:"_blank",rel:"noopener noreferrer",children:o.jsxs("span",{className:"bg-surface1 group-hover:bg-surface2 text-neutral3 group-hover:text-neutral5 flex items-center gap-2 rounded px-2 py-1 transition-colors",children:[o.jsx(R7t,{})," ",Zus(a.githubUrl)]})})]},a.slug)})})}function Qus({tagOptions:e,selectedTag:t,providerOptions:n,selectedProvider:r,onTagChange:s,onProviderChange:a,searchTerm:i,onSearchChange:l,onReset:c,className:u,isLoading:d}){return d?o.jsxs("div",{className:X("h-[6.5rem] flex items-center gap-8","[&>div]:bg-surface3 [&>div]:w-48 [&>div]:h-8 [&>div]:animate-pulse",u),children:[o.jsx("div",{})," ",o.jsx("div",{})," ",o.jsx("div",{})]}):o.jsxs("div",{className:X("flex flex-wrap mx-auto sticky top-0 gap-4 bg-surface2 py-8",u),children:[o.jsx(yN,{name:"search-templates",label:"Search templates",labelIsHidden:!0,value:i,onChange:f=>l?.(f.target.value),placeholder:"Search Template"}),o.jsx(Cc,{label:"Filter by tag",labelIsHidden:!0,name:"filter-tag",value:t,onValueChange:s,options:e}),o.jsx(Cc,{label:"Filter by provider",labelIsHidden:!0,name:"filter-provider",value:r,onValueChange:a,options:n}),c&&o.jsxs(oe,{onClick:c,children:["Reset ",o.jsx(bs,{})]})]})}function Yus(){const{data:e,isLoading:t}=XJn(),{templates:n,tags:r,providers:s}=e??{templates:[],tags:[],providers:[]},[a,i]=v.useState("all"),[l,c]=v.useState("all"),[u,d]=v.useState(""),f=[{value:"all",label:"Any tag"}];(r||[]).forEach(x=>{f.push({value:x,label:x})});const p=[{value:"all",label:"Any provider"}];(s||[]).forEach(x=>{p.push({value:x,label:x})});const h=(x,S)=>{S==="tag"?i(x):S==="provider"&&c(x)},m=x=>{d(x)},g=()=>{i("all"),c("all"),d("")},y=n.filter(x=>!(u&&!x.title.toLowerCase().includes(u)&&!x.description.toLowerCase().includes(u)||a!=="all"&&!x.tags.includes(a)||l!=="all"&&!x.supportedProviders.includes(l))),b=u||a!=="all"||l!=="all";return o.jsxs(ds,{children:[o.jsx($we,{children:o.jsxs(Igt,{children:[o.jsx(qe,{children:o.jsx(Xv,{})}),"Templates"]})}),o.jsxs("div",{className:X("overflow-y-auto w-full h-full px-8 pb-12 z-10"),children:[o.jsx(Qus,{selectedTag:a,onTagChange:x=>h(x,"tag"),tagOptions:f,selectedProvider:l,onProviderChange:x=>h(x,"provider"),providerOptions:p,searchTerm:u,onSearchChange:m,onReset:b?g:void 0,className:"max-w-[80rem]",isLoading:t}),o.jsx(Gus,{templates:y,linkComponent:Fa,className:"mx-auto max-w-[80rem]",isLoading:t})]})]})}const Kus="1.55.0-alpha.2";function Xus({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(yf,{className:"text-yellow-500"}),title:"Template Installed with Warnings"}:{icon:o.jsx(_Wt,{}),title:"Template Installation Failed"},{icon:l,title:c}=i();return o.jsxs(iQ,{className:"text-neutral3 mb-8 content-center space-y-4",children:[o.jsxs("div",{className:X("grid items-center justify-items-center gap-4 content-center","[&>svg]:w-8 [&>svg]:h-8"),children:[l,o.jsxs("div",{className:"space-y-2 text-center",children:[o.jsx("p",{className:"text-ui-md text-neutral5 font-medium",children:c}),o.jsx("p",{className:"text-ui-md text-neutral3",children:a()})]})]}),t&&t.length>0&&o.jsxs("details",{className:"text-xs",children:[o.jsxs("summary",{className:"text-neutral3 hover:text-neutral4 cursor-pointer text-center select-none",children:["Show Validation Issues (",t.length,")"]}),o.jsx("div",{className:"mt-4 max-h-60 space-y-2 overflow-auto rounded bg-gray-100 p-3 text-left text-xs dark:bg-gray-800",children:t.map((u,d)=>o.jsxs("div",{className:"border-l-2 border-red-400 pl-2",children:[o.jsx("div",{className:"font-medium text-red-600 dark:text-red-400",children:u.type==="typescript"?"🔴 TypeScript Error":"⚠️ Lint Error"}),o.jsx("div",{className:"mt-1 font-mono text-xs wrap-break-word whitespace-pre-wrap text-gray-700 dark:text-gray-300",children:u.message})]},d))})]}),n&&!s&&o.jsxs("details",{className:"text-xs",children:[o.jsx("summary",{className:"text-neutral3 hover:text-neutral4 cursor-pointer text-center select-none",children:"Show Details"}),o.jsx("div",{className:"mt-4 max-h-60 overflow-auto rounded bg-gray-100 p-3 text-left font-mono text-xs dark:bg-gray-800",children:o.jsx("div",{className:"wrap-break-word whitespace-pre-wrap",children:n})})]})]})}function Jus({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(iQ,{children:o.jsxs("div",{className:"mx-auto my-4 grid max-w-[40rem] gap-8 p-4 lg:p-8",children:[o.jsxs("h2",{className:X("text-neutral4 text-header-sm font-semibold flex items-center gap-2","[&>svg]:w-[1.2em] [&_svg]:h-[1.2em] [&_svg]:opacity-70"),children:["Install Template ",o.jsx(Oit,{})]}),o.jsx(Cc,{name:"template-provider",options:e,label:"Template AI Model Provider",onValueChange:n,value:t,placeholder:"Select",layout:"horizontal"}),t&&Object.entries(r||{}).length>0&&o.jsxs(o.Fragment,{children:[o.jsx("h3",{className:"text-neutral3 text-ui-md",children:"Set required Environmental Variables"}),o.jsx("div",{className:"grid grid-cols-[1fr_1fr] items-start gap-4",children:l?o.jsxs("div",{className:X("flex items-center justify-center col-span-2 text-neutral3 text-ui-sm gap-4","[&_svg]:opacity-50 [&_svg]:w-[1.1em] [&_svg]:h-[1.1em]","animate-in fade-in duration-300"),children:[o.jsx(Xt,{})," Loading variables..."]}):Object.entries(r).map(([p,h])=>o.jsxs(v.Fragment,{children:[o.jsx(CO,{name:`env-${p}`,labelIsHidden:!0,label:"Key",value:p,disabled:!0,className:"w-full"}),o.jsx(CO,{name:p,labelIsHidden:!0,label:"Value",value:h,onChange:i,errorMsg:s.includes(p)?"Value is required.":"",autoComplete:"off",className:"w-full"})]},p))}),o.jsxs("div",{className:"border-border1 relative mt-3.5 border-t pt-12",children:[o.jsx("div",{className:"bg-surface2 text-ui-sm text-neutral3 absolute top-0 left-1/2 flex h-8 w-8 -translate-x-1/2 -translate-y-4 items-center justify-center rounded-full",children:"And"}),o.jsx("h3",{className:"text-neutral4 text-ui-lg",children:"Set AI Model for Template Installation"}),o.jsx("p",{className:"text-neutral3 text-ui-md mt-2 mb-8",children:"This model will be used by the workflow to process and install the template"}),o.jsx($zt,{defaultProvider:u||"",defaultModel:d||"",updateModel:f||(()=>Promise.resolve({message:"Updated"})),closeEditor:()=>{},autoSave:!0,selectProviderPlaceholder:"Provider"})]})]}),t&&!l&&o.jsx(oe,{className:X("flex items-center gap-2 mt-4 justify-center text-ui-md w-full bg-surface5 min-h-10 rounded-lg text-neutral5 hover:bg-surface6 transition-colors","[&>svg]:w-[1.1em] [&_svg]:h-[1.1em] [&_svg]:text-neutral5"),onClick:a,disabled:!t||!u||!d||s.length>0||c,children:c?o.jsxs(o.Fragment,{children:[o.jsx(Xt,{className:"h-4 w-4"})," Installing..."]}):o.jsxs(o.Fragment,{children:["Install ",o.jsx(ym,{})]})})]})})}function eds({title:e,description:t,githubUrl:n,isLoading:r,infoData:s,templateSlug:a}){const i=a?`feat/install-template-${a}`:"feat/install-template-[slug]";return o.jsxs(o.Fragment,{children:[o.jsx("div",{className:X("grid mt-8 items-center"),children:o.jsxs("div",{className:X("text-header-lg flex items-center gap-3","[&>svg]:w-[1.2em] [&>svg]:h-[1.2em] [&>svg]:opacity-50",{"[&>svg]:opacity-20":r}),children:[o.jsx(Xv,{}),o.jsx("h2",{className:X({"bg-surface4 flex rounded-lg min-w-[50%]":r}),children:r?o.jsx(o.Fragment,{children:" "}):e})]})}),o.jsxs("div",{className:"grid gap-x-24 lg:grid-cols-[1fr_1fr]",children:[o.jsxs("div",{className:"grid",children:[o.jsx("p",{className:X("mb-4 text-ui-md text-neutral4 mt-2 leading-7",{"bg-surface4 rounded-lg ":r}),children:r?o.jsx(o.Fragment,{children:" "}):t}),!r&&a&&o.jsxs("div",{className:X("bg-surface2 border border-surface4 rounded-lg p-4 mb-4","flex items-start gap-3"),children:[o.jsx("div",{className:"mt-0.5 shrink-0",children:o.jsx(Vx,{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(Dbe,{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(R7t,{}),n?.split("/")?.pop()]})]}),s&&o.jsx(ONe,{data:s,labelsAreHidden:!0,isLoading:r})]})]})}function tds(e){switch(e){case"running":return o.jsx(Xt,{});case"success":return o.jsx(Sx,{});case"failed":return o.jsx(Wu,{});default:return null}}function nds({stepId:e,step:t,isActive:n,position:r}){const s=a=>a.charAt(0).toUpperCase()+a.slice(1).replace(/-/g," ");return o.jsxs("div",{className:X("grid grid-cols-[1fr_auto] gap-6 rounded-lg px-4 py-3",vs.all,{"border border-dashed border-neutral2 bg-surface3":n}),children:[o.jsxs("div",{className:"grid grid-cols-[auto_1fr] gap-2",children:[o.jsxs("span",{className:X("flex min-w-6 justify-end text-ui-md",vs.colors,{"text-neutral5":n||t.status==="success","text-neutral3":!n&&t.status!=="success"}),children:[r,"."]}),o.jsxs("div",{children:[o.jsx("h4",{className:X("text-ui-md",vs.colors,{"text-neutral5":n||t.status==="success","text-neutral3":!n&&t.status!=="success"}),children:s(e)}),t.description&&o.jsx("p",{className:"text-ui-md text-neutral2 -mt-0.5",children:t.description})]})]}),o.jsx("div",{className:X("flex size-[1.75rem] items-center justify-center self-center rounded-full",vs.all,{"border border-neutral2 border-dashed":t.status==="pending","[&>svg]:text-white [&>svg]:w-4 [&>svg]:h-4":t.status!=="running","w-[1.75rem] h-[1.75rem]":t.status==="running","bg-accent1Dark shadow-glow-accent1":t.status==="success","bg-accent2Dark shadow-glow-accent2":t.status==="failed","scale-110":t.status==="success"||t.status==="failed"}),children:tds(t.status)})]})}function rds({currentStep:e,steps:t=[],className:n}){return o.jsx("div",{className:X(n),children:t.map((r,s)=>o.jsx(nds,{stepId:r.id,step:r,isActive:e?.id===r.id,position:s+1},r.id))})}function sds({steps:e}){const t=e.length,n=e.filter(r=>r.status==="success").length;return o.jsxs("div",{className:"flex w-full flex-col content-center justify-center gap-4",children:[o.jsx("div",{className:"grid w-full grid-cols-[0_repeat(9,1fr)]",children:e.map((r,s)=>o.jsx("div",{className:X("relative flex h-8 items-center justify-end",vs.colors,{"bg-accent1Dark":r.status==="success"&&e?.[s-1]?.status==="success"}),children:o.jsx("div",{className:X("absolute right-0 z-10 flex size-[2rem] translate-x-[50%] items-center justify-center self-center rounded-full bg-surface3 text-ui-sm font-bold text-neutral3",vs.all,{"border border-neutral2 border-dashed":r.status==="pending","[&>svg]:text-surface1 [&>svg]:w-[1.1rem] [&>svg]:h-[1.1rem]":r.status!=="running","bg-accent1Dark text-white shadow-glow-accent1 scale-110":r.status==="success","bg-accent2Dark text-white shadow-glow-accent2 scale-110":r.status==="failed"}),children:r.status==="running"?o.jsx(Xt,{}):s+1})},r.id))}),o.jsxs("div",{className:X("text-center text-xs text-neutral3",vs.colors),children:[n," of ",t," steps completed"]})]})}function ads({name:e,streamResult:t,runId:n,workflowInfo:r}){const s=t?.phase||"initializing",a=t?.payload?.workflowState,i=t?.payload?.currentStep,l=t?.error,c=a?.steps||{},u=Object.keys(c).length>0,d=g=>g==="input"||g.endsWith(".input")||g.startsWith("Mapping_")&&/[0-9a-f]{8}/.test(g)||/[0-9a-f]{8,}/.test(g)?!1:r?.allSteps?g in r.allSteps:!0,f=Object.entries(c).filter(([g,y])=>d(g)),p=f.length,h=()=>{switch(s){case"initializing":return"Preparing template installation...";case"processing":return`Installing ${e} template`;case"completed":return"Template installation completed!";case"error":return"Template installation failed";default:return"Installing template..."}},m=f.map(([g,y])=>({id:g,status:y?.status,description:y?.description,title:g.charAt(0).toUpperCase()+g.slice(1).replace(/-/g," "),isActive:i?.id===g}));return o.jsxs(iQ,{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(sds,{steps:m})}),l&&s==="error"&&o.jsxs("div",{className:X("rounded-lg text-neutral5 p-6 flex items-center gap-3 text-ui-md bg-red-500/10","[&>svg]:w-6 [&>svg]:h-6 [&>svg]:opacity-70 [&>svg]:text-red-500"),children:[o.jsx(FZt,{}),l||"Something went wrong"]}),u&&o.jsx(rds,{steps:m,currentStep:i,className:"pb-4"}),!u&&s==="initializing"&&o.jsxs("div",{className:"text-neutral3 grid justify-items-center gap-4 text-center text-sm",children:[o.jsx(Xt,{}),o.jsx("p",{children:"This may take some time..."})]})]})}function ids({name:e,installedEntities:t}){return o.jsxs(iQ,{className:X("grid items-center justify-items-center gap-4 content-center","[&>svg]:w-8 [&>svg]:h-8"),children:[o.jsx(Oit,{}),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(ONe,{data:t})]})}function ods(){const{templateSlug:e}=Sr(),[t,n]=Ri(),[r,s]=v.useState(""),[a,i]=v.useState(""),[l,c]=v.useState(""),[u,d]=v.useState({}),[f,p]=v.useState([]),[h,m]=v.useState(null),[g,y]=v.useState(!1),[b,x]=v.useState(""),[S,k]=v.useState(!1),[_,C]=v.useState(!1),[E,j]=v.useState([]),{data:N,isLoading:I}=JJn({repoOrSlug:e,owner:"mastra-ai"}),R=Kus?.includes("beta")??!1?"beta":"main",{data:L,isLoading:D}=eer({repo:N?.githubUrl?new URL(N.githubUrl).pathname.split("/")[2]:`template-${e}`,owner:"mastra-ai",branch:R}),{data:B,isLoading:H}=ter(),{mutateAsync:F,isPending:z}=ner(),{mutateAsync:q}=rer(),{streamInstall:M,streamResult:G,isStreaming:V}=aer(B),{observeInstall:$,streamResult:U,isStreaming:Z}=ier(B);v.useEffect(()=>{const ne=t.get("runId");ne&&!g&&!h&&!V&&!Z&&(console.info("🔄 Checking completed run after hot reload:",{runId:ne}),x(ne),q({runId:ne}).then(fe=>{const he=fe.snapshot;if(he?.status==="success"&&he?.result?.success)y(!0);else if(he?.result?.success===!1)if(he?.result?.validationResults&&!he?.result?.validationResults?.valid&&he?.result?.validationResults?.remainingErrors>0){const{remainingErrors:ue,errors:be}=he.result.validationResults,xe=`Template installation completed but ${ue} validation issue${ue>1?"s":""} remain unresolved.`;m(xe),j(be||[])}else{const ue=he?.result?.message||he?.result?.error||"Template installation failed";m(typeof ue=="string"?ue:String(ue))}}).catch(fe=>{console.error("❌ Failed to fetch run details:",fe),m("Failed to retrieve installation status after reload")}))},[t,g,h,V,Z,q]),v.useEffect(()=>{const ne=t.get("runId"),fe=t.get("resume"),he=t.get("provider");if(ne&&fe==="true"&&he&&!V&&!Z&&!S&&!_&&B){x(ne),k(!0);try{q({runId:ne}).then(le=>{if(le.snapshot?.status==="running")return $.mutateAsync({runId:ne})}).then(()=>{n(le=>{const ue=new URLSearchParams(le);return ue.delete("resume"),ue})}).catch(le=>{console.error("❌ Failed to resume template installation:",le),le.message?.includes("404")||le.message?.includes("not found")?m("Template installation run not found. It may have expired or been completed."):m("Failed to resume template installation. Please try again.")})}catch(le){console.error("❌ Auto-resume failed with error:",le),m("Failed to resume template installation. Please refresh and try again.")}}},[t,e,V,Z,S,_,B,q,$,n]);const K=[{value:"openai",label:"OpenAI"},{value:"anthropic",label:"Anthropic"},{value:"groq",label:"Groq"},{value:"google",label:"Google"}],ee=[{key:"tools",label:"Tools",value:N?.tools?.length?N.tools.map(ne=>ne).join(", "):"n/a",icon:o.jsx(Ld,{})},{key:"agents",label:"Agents",value:N?.agents?.length?N.agents.map(ne=>ne).join(", "):"n/a",icon:o.jsx(Uo,{})},{key:"workflows",label:"Workflows",value:N?.workflows?.length?N.workflows.map(ne=>ne).join(", "):"n/a",icon:o.jsx(RD,{})},{key:"providers",label:"Providers",value:N?.supportedProviders?.length?N.supportedProviders.join(", "):"n/a",icon:o.jsx(Dv,{})},{key:"tags",label:"Tags",value:N?.tags?.length?N.tags.join(", "):"n/a",icon:o.jsx(UN,{})}],te=[{...ee[0]},{...ee[1]},{...ee[2]}].filter(ne=>ne.value!=="n/a");v.useEffect(()=>{L&&d(L)},[L]),v.useEffect(()=>{const ne=G||U;ne?.phase==="error"&&ne?.error&&m(typeof ne.error=="string"?ne.error:String(ne.error))},[G?.phase,G?.error,U?.phase,U?.error]);const J=ne=>{s(ne)},ae=async ne=>(i(ne.provider),c(ne.modelId),{message:"Model updated successfully"}),de=async()=>{const ne=Object.entries(u).reduce((fe,[he,le])=>(le===""&&fe.push(he),fe),[]);if(ne.length>0){p(ne);return}if(N){m(null),y(!1),x(""),C(!0);try{const he={repo:N.githubUrl||`https://github.com/mastra-ai/template-${N.slug}`,ref:R,slug:N.slug,variables:u},{runId:le}=await F({});x(le),n(ue=>{const be=new URLSearchParams(ue);return be.set("runId",le),be.set("resume","true"),be.set("provider",r||"openai"),be}),await M.mutateAsync({inputData:he,selectedModel:{provider:a,modelId:l},runId:le})}catch(fe){C(!1),m(fe?.message||"Template installation failed"),console.error("Template installation failed",fe)}}},Y=ne=>{const{name:fe,value:he}=ne.target;he.trim()===""?p(le=>[...le,fe]):p(le=>le.filter(ue=>ue!==fe)),d(le=>({...le,[fe]:he}))};return o.jsx(ds,{children:o.jsx("div",{className:X("w-full lg:px-12 h-full overflow-y-scroll"),children:o.jsxs("div",{className:"mx-auto grid w-full max-w-[80rem] gap-y-4 p-6",children:[o.jsx(eds,{isLoading:I,title:N?.title,description:N?.longDescription,imageURL:N?.imageURL,githubUrl:N?.githubUrl,infoData:ee,templateSlug:e}),N&&o.jsxs(o.Fragment,{children:[(V||Z)&&o.jsx(ads,{name:N.title,streamResult:Z?U:G,runId:b,workflowInfo:B}),g&&o.jsx(ids,{name:N.title,installedEntities:te,linkComponent:Fa}),h&&o.jsx(Xus,{errorMsg:h,validationErrors:E.length>0?E:G?.validationResults?.errors||U?.validationResults?.errors}),!V&&!Z&&!g&&!h&&o.jsx(Jus,{providerOptions:K,selectedProvider:r,onProviderChange:J,variables:u,setVariables:d,errors:f,setErrors:p,handleInstallTemplate:de,handleVariableChange:Y,isLoadingEnvVars:D||H,isInstalling:z,defaultModelProvider:a,defaultModelId:l,onModelUpdate:ae})]})]})})})}const lds=()=>{const{toolId:e,agentId:t}=Sr();return o.jsx("div",{className:"h-full w-full overflow-y-auto",children:o.jsx(mXr,{toolId:e,agentId:t})})},cds=()=>{const{toolId:e}=Sr();return o.jsx("div",{className:"h-full w-full overflow-y-hidden",children:o.jsx(pcs,{toolId:e})})};function uds(){const{traceId:e}=Sr(),[t,n]=Ri(),r=qs(),s=t.get("spanId")||void 0,a=t.get("tab"),i=a==="scoring"?"scoring":a==="feedback"?"feedback":"details",l=t.get("scoreId")||void 0,[c,u]=v.useState(s??null),[d,f]=v.useState(),[p,h]=v.useState(i),[m,g]=v.useState(0),[y,b]=v.useState(!1),{data:x,isLoading:S,error:k}=dIe(e),_=v.useMemo(()=>x?.spans??[],[x?.spans]),C=v.useMemo(()=>_.find(ae=>ae.parentSpanId==null),[_]),{data:E,isLoading:j}=CL(e,c??"");v.useEffect(()=>g(0),[e,c]);const{data:N,isLoading:I}=ih(),{data:A,isLoading:R}=e8t({traceId:e,spanId:c??void 0,page:m}),[L,D]=v.useState(0);v.useEffect(()=>D(0),[e,c]);const{data:B,isLoading:H}=u7t({traceId:e,page:L});v.useEffect(()=>{if(l&&A?.scores&&!d){const ae=A.scores.find(de=>de.id===l);ae&&f(ae)}},[l,A?.scores,d]);const F=v.useCallback(ae=>{const de=new URLSearchParams(t);for(const[Y,ne]of Object.entries(ae))ne===null||ne===""?de.delete(Y):de.set(Y,ne);n(de,{replace:!0})},[t,n]),z=v.useCallback(ae=>{const de=ae??null,Y=de===c;u(de),Y||(f(void 0),h("details"),F({spanId:de,tab:null,scoreId:null}))},[c,F]),q=v.useCallback(()=>{u(null),f(void 0),h("details"),F({spanId:null,tab:null,scoreId:null})},[F]),M=v.useCallback(ae=>{u(ae),f(void 0),h("details"),F({spanId:ae,tab:null,scoreId:null})},[F]),{handlePreviousSpan:G,handleNextSpan:V}=fIe(_,c,M),$=v.useCallback(ae=>{const de=ae;h(de),f(void 0),F({tab:de==="details"?null:de,scoreId:null})},[F]),U=v.useCallback(ae=>{f(ae),F({scoreId:ae.id})},[F]),Z=v.useCallback(()=>{f(void 0),F({scoreId:null})},[F]),K=v.useCallback(()=>{r("/observability")},[r]),ee=v.useCallback(()=>{h("scoring"),C&&c!==C.spanId?(u(C.spanId),f(void 0),F({spanId:C.spanId,tab:"scoring",scoreId:null})):F({tab:"scoring"})},[C,c,F]),te=C?o.jsx(My,{owner:"trace-detail",children:o.jsxs(Mr,{children:[o.jsxs(oe,{tooltip:"Evaluate Trace","aria-label":"Evaluate Trace",onClick:ee,children:[o.jsx(yHt,{}),"Evaluate"]}),o.jsxs(oe,{tooltip:"Save as Dataset Item","aria-label":"Save as Dataset Item",onClick:()=>b(!0),children:[o.jsx(jd,{}),"Save"]})]})}):null,J=C?o.jsx(Ft.Row,{children:o.jsx(Ft.Column,{children:o.jsx(Q9t,{rootSpan:C,numOfCol:3})})}):null;return k?o.jsxs(Ft,{height:"full",children:[te,J&&o.jsx(Ft.TopArea,{children:J}),o.jsx(Ft.MainArea,{isCentered:!0,children:o.jsx(e7t,{error:k,resource:"traces",errorTitle:"Failed to load trace"})})]}):o.jsxs(Ft,{height:"full",className:"grid-rows-[auto_minmax(0,1fr)] content-normal",children:[te,J&&o.jsx(Ft.TopArea,{children:J}),o.jsx(a7t,{rootSpanId:C?.spanId,traceId:e,isOpen:y,onClose:()=>b(!1)}),o.jsxs("div",{className:X("mt-4 grid min-h-0 items-stretch gap-4 overflow-hidden",c?"grid-cols-[2fr_3fr]":"grid-cols-[1fr]"),children:[o.jsx(sIe,{traceId:e,spans:_,isLoading:S,onClose:K,onSpanSelect:z,onEvaluateTrace:ee,initialSpanId:c,placement:"trace-page",timelineChartWidth:c?"default":"wide"}),c&&!S&&o.jsxs("div",{className:X("grid h-full max-h-full min-h-0 gap-4 overflow-auto",d?"grid-rows-[1fr_1fr]":"grid-rows-[1fr]"),children:[o.jsx(tIe,{traceId:e,spanId:c,span:E?.span,isLoading:j,onClose:q,onPrevious:G,onNext:V,activeTab:p,onTabChange:$,feedbackTabBadge:B?.pagination?.total??void 0,feedbackTabSlot:()=>o.jsx(o7t,{feedbackData:B,onPageChange:D,isLoadingFeedbackData:H}),scoringTabBadge:A?.pagination?.total??void 0,scoringTabSlot:({span:ae,traceId:de,spanId:Y})=>o.jsxs("div",{className:"grid gap-6",children:[o.jsx(c7t,{traceId:de,isTopLevelSpan:!ae.parentSpanId,spanId:Y,entityType:ae.attributes?.agentId||ae.entityType===au.AGENT?"Agent":ae.attributes?.workflowId||ae.entityType===au.WORKFLOW_RUN?"Workflow":void 0,scorers:N,isLoadingScorers:I}),o.jsx(l7t,{scoresData:A,onPageChange:g,isLoadingScoresData:R,onScoreSelect:U})]})}),d&&o.jsx(kNe,{score:d,onClose:Z})]})]})]})}function dds(){const{data:e,isLoading:t,error:n}=Wy(),[r,s]=v.useState("");return n&&ys(n)?o.jsx(lr,{children:o.jsx(Hs,{})}):n&&xs(n)?o.jsx(lr,{children:o.jsx(Ms,{resource:"workflows"})}):n?o.jsx(lr,{children:o.jsx(qi,{title:"Failed to load workflows",message:n.message})}):Object.keys(e||{}).length===0&&!t?o.jsx(lr,{children:o.jsx(Q8r,{})}):o.jsxs(Ft,{children:[o.jsx(Ft.TopArea,{children:o.jsxs(Ft.Row,{align:"center",stack:"responsive",children:[o.jsx("div",{className:"max-w-120 flex-1",children:o.jsx($f,{onSearch:s,label:"Filter workflows",placeholder:"Filter by name or description"})}),o.jsxs(oe,{as:Fa,to:"/workflows/schedules",variant:"primary",className:"shrink-0",children:[o.jsx(TD,{}),"Schedules"]})]})}),o.jsx(G8r,{workflows:e||{},isLoading:t,search:r})]})}const fds={active:"bg-accent1",paused:"bg-accent3"},pds={active:"text-accent1",paused:"text-accent3"},P7t=({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 ${fds[e]}`,"aria-hidden":!0}),o.jsx("span",{className:`text-ui-sm ${pds[e]}`,children:e})]}),oT=e=>!e||e<=0?"—":new Date(e).toLocaleString(),$2=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 $7t({status:e}){const{icon:t,color:n}=hds(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 hds(e){switch(e){case"success":return{icon:o.jsx(fa,{size:14}),color:"text-accent1"};case"failed":return{icon:o.jsx(bs,{size:14}),color:"text-accent2"};case"running":return{icon:o.jsx(Xt,{}),color:"text-neutral3"};case"suspended":return{icon:o.jsx(UV,{size:14}),color:"text-accent3"};case"canceled":return{icon:o.jsx(Nf,{size:14}),color:"text-neutral3"};case"pending":case"waiting":return{icon:o.jsx(dT,{size:14}),color:"text-neutral3"};default:return{icon:null,color:"text-neutral3"}}}const IXe="auto auto auto auto 1fr";function mds(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 gds(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 vds=3e4,yds=5*6e4;function bds({triggers:e,isLoading:t,workflowId:n,hasNextPage:r,isFetchingNextPage:s,setEndOfListElement:a}){const{Link:i,paths:l}=yn();return t?o.jsx(ol,{columns:IXe}):e.length===0?o.jsx(ye,{variant:"ui-md",className:"text-neutral4 p-4",children:"No trigger history yet."}):o.jsxs(ve,{columns:IXe,className:"min-w-0",children:[o.jsxs(ve.Top,{children:[o.jsx(ve.TopCell,{children:"Run"}),o.jsx(ve.TopCell,{children:"Status"}),o.jsx(ve.TopCell,{children:"Started"}),o.jsx(ve.TopCell,{children:"Duration"}),o.jsx(ve.TopCell,{children:" "})]}),e.map(c=>{const u=c.actualFireAt-c.scheduledFireAt,d=gds(u),f=`Scheduled ${oT(c.scheduledFireAt)} — published ${oT(c.actualFireAt)} (drift ${d})`,p=c.outcome==="failed",h=p?c.error:c.run?.error,m=Math.abs(u),g=!p&&m>vds&&m<=yds,y=`${c.scheduleId}-${c.runId}-${c.actualFireAt}`,b=!!(n&&c.runId&&!p),x=o.jsx("span",{className:b?"text-accent1 text-ui-sm font-mono whitespace-nowrap":"text-neutral3 text-ui-sm font-mono whitespace-nowrap",children:c.runId}),S=o.jsxs(o.Fragment,{children:[o.jsx(ve.Cell,{height:"compact",children:x}),o.jsx(ve.Cell,{height:"compact",children:o.jsxs("span",{className:"inline-flex items-center gap-2",children:[p?o.jsxs("span",{className:"text-ui-sm text-accent2 inline-flex items-center gap-1.5 whitespace-nowrap",children:[o.jsx(yf,{size:14}),"publish failed"]}):c.run?o.jsx($7t,{status:c.run.status}):o.jsx("span",{className:"text-ui-sm text-neutral3 inline-flex items-center gap-1.5 whitespace-nowrap",children:"pending"}),h?o.jsxs(Pn,{children:[o.jsx(An,{asChild:!0,children:o.jsx("span",{className:"text-accent2 inline-flex",children:o.jsx(yf,{size:14})})}),o.jsx(Rn,{children:h})]}):null]})}),o.jsx(ve.Cell,{height:"compact",children:o.jsxs("span",{className:"inline-flex items-center gap-2 whitespace-nowrap",children:[o.jsx("span",{title:f,children:$2(c.actualFireAt)}),g?o.jsxs(Pn,{children:[o.jsx(An,{asChild:!0,children:o.jsx("span",{className:"text-accent3 inline-flex",children:o.jsx(yf,{size:14})})}),o.jsxs(Rn,{children:["Published ",d," after the scheduled fire time"]})]}):null]})}),o.jsx(ve.Cell,{height:"compact",children:c.run?o.jsx("span",{children:mds(c.run.durationMs)}):o.jsx("span",{className:"text-neutral4",children:"—"})}),o.jsx(ve.Cell,{height:"compact",children:" "})]});return b?o.jsx(ve.RowLink,{to:l.workflowRunLink(n,c.runId),LinkComponent:i,children:S},y):o.jsx(ve.RowStatic,{children:S},y)}),o.jsx(ve.NextPageLoading,{isLoading:s,hasMore:r,setEndOfListElement:a})]})}const xds=e=>{const t=We();return mt({queryKey:["schedule",e],enabled:!!e,queryFn:async()=>{if(!e)throw new Error("scheduleId is required");return t.getSchedule(e)}})},AXe=25,wds=e=>{const t=We(),{inView:n,setRef:r}=Z_(),s=M1({queryKey:["schedule-triggers",e],enabled:!!e,initialPageParam:void 0,queryFn:async({pageParam:u})=>e?t.listScheduleTriggers(e,{limit:AXe,toActualFireAt:u}):{triggers:[]},getNextPageParam:u=>{if(!(!u?.triggers?.length||u.triggers.length<AXe))return u.triggers[u.triggers.length-1].actualFireAt},refetchInterval:u=>(u.state.data?.pages.flatMap(p=>p.triggers)??[]).some(p=>p.run?p.run.status==="pending"||p.run.status==="running"||p.run.status==="waiting":p.outcome==="published")?5e3:!1}),a=s.data?.pages.flatMap(u=>u?.triggers??[])??[],{hasNextPage:i,isFetchingNextPage:l,fetchNextPage:c}=s;return v.useEffect(()=>{n&&i&&!l&&c()},[n,i,l,c]),{...s,data:a,setEndOfListElement:r}},Sds=e=>{const t=We(),n=Ur();return Mn({mutationFn:async r=>{if(!e)throw new Error("scheduleId is required");return r==="pause"?t.pauseSchedule(e):t.resumeSchedule(e)},onSuccess:(r,s)=>{n.invalidateQueries({queryKey:["schedule",e]}),n.invalidateQueries({queryKey:["schedules"]}),Le.success(s==="pause"?"Schedule paused":"Schedule resumed")},onError:r=>{Le.error(r.message)}})};function Uz({label:e,children:t}){return o.jsxs("div",{className:"flex flex-col gap-1",children:[o.jsx(ye,{variant:"ui-xs",className:"text-neutral4 tracking-wide uppercase",children:e}),o.jsx("div",{className:"text-ui-md",children:t})]})}function kds(){const{scheduleId:e}=Sr(),{paths:t}=yn(),{data:n,error:r}=xds(e),{data:s,isLoading:a,error:i,hasNextPage:l,isFetchingNextPage:c,setEndOfListElement:u}=wds(e),d=Sds(e);if(r&&ys(r))return o.jsx(lr,{children:o.jsx(Hs,{})});if(r&&xs(r))return o.jsx(lr,{children:o.jsx(Ms,{resource:"schedules"})});if(r)return o.jsx(lr,{children:o.jsx(qi,{title:"Failed to load schedule",message:r.message})});const f=n?.workflowId,p=n?.agentId;return o.jsxs(Ft,{children:[o.jsx(Ft.TopArea,{children:o.jsx(Ft.Row,{className:"justify-end",children:o.jsxs(Ft.Column,{className:"flex justify-end gap-2",children:[o.jsxs(oe,{as:Fa,to:t.schedulesLink(),variant:"ghost",children:[o.jsx(Ac,{}),"Back to schedules"]}),f?o.jsx(oe,{as:Fa,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(zbe,{}),"Pause"]}):o.jsxs(o.Fragment,{children:[o.jsx(Of,{}),"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(Uz,{label:p?"Agent":"Workflow",children:f?o.jsx(Fa,{to:t.workflowLink(f),className:"text-accent1 hover:underline",children:f}):p?o.jsx(Fa,{to:t.agentLink(p),className:"text-accent1 hover:underline",children:p}):"—"}),o.jsxs(Uz,{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(Uz,{label:"Status",children:o.jsx(P7t,{status:n.status})}),o.jsx(Uz,{label:"Next fire",children:o.jsx("span",{title:oT(n.nextFireAt),children:$2(n.nextFireAt)})})]}),o.jsxs("div",{className:"overflow-y-auto","data-testid":"schedule-triggers-panel",children:[o.jsx(ye,{variant:"ui-md",className:"mb-3",children:"Trigger history"}),i?o.jsx(qi,{title:"Failed to load trigger history",message:i.message}):o.jsx(bds,{triggers:s??[],isLoading:a,workflowId:f,hasNextPage:l,isFetchingNextPage:c,setEndOfListElement:u})]})]}):null]})}const RXe="minmax(0, 1.2fr) minmax(0, 1.4fr) minmax(0, 1fr) auto auto auto";function Ods({schedules:e,isLoading:t,search:n=""}){const{paths:r,Link:s}=yn(),a=v.useMemo(()=>{const i=n.toLowerCase();return i?e.filter(l=>l.id.toLowerCase().includes(i)||(l.workflowId??l.agentId??"").toLowerCase().includes(i)):e},[e,n]);return t?o.jsx(ol,{columns:RXe}):o.jsxs(ve,{columns:RXe,variant:"striped",className:"min-w-0",children:[o.jsxs(ve.Top,{children:[o.jsx(ve.TopCell,{children:"Target"}),o.jsx(ve.TopCell,{children:"Schedule ID"}),o.jsx(ve.TopCell,{children:"Cron"}),o.jsx(ve.TopCell,{children:"Status"}),o.jsx(ve.TopCell,{children:"Next fire"}),o.jsx(ve.TopCell,{children:"Last run"})]}),a.length===0&&n?o.jsx(ve.NoMatch,{message:"No schedules match your search"}):null,a.length===0&&!n?o.jsx(ve.NoMatch,{message:"No schedules configured"}):null,a.map(i=>o.jsxs(ve.RowLink,{to:r.scheduleLink(i.id),LinkComponent:s,children:[o.jsx(ve.NameCell,{children:i.workflowId??i.agentId}),o.jsx(ve.Cell,{height:"compact",className:"min-w-0",children:o.jsx("span",{className:"text-ui-smd text-neutral3 block truncate font-mono",title:i.id,children:i.id})}),o.jsx(ve.Cell,{height:"compact",children:o.jsxs("span",{className:"inline-flex items-center gap-2 whitespace-nowrap",children:[o.jsx("code",{className:"text-ui-sm font-mono",children:i.cron}),i.timezone?o.jsx("span",{className:"text-neutral4 text-ui-xs",children:i.timezone}):null]})}),o.jsx(ve.Cell,{height:"compact",children:o.jsx(P7t,{status:i.status})}),o.jsx(ve.Cell,{height:"compact",children:o.jsx("span",{className:"whitespace-nowrap",title:oT(i.nextFireAt),children:$2(i.nextFireAt)})}),o.jsx(ve.Cell,{height:"compact",children:i.lastRun?o.jsxs("span",{className:"inline-flex items-center gap-2 whitespace-nowrap",children:[o.jsx($7t,{status:i.lastRun.status}),o.jsx("span",{className:"text-neutral4 text-ui-sm",title:oT(i.lastFireAt),children:i.lastFireAt?$2(i.lastFireAt):""})]}):i.lastFireAt?o.jsx("span",{className:"whitespace-nowrap",title:oT(i.lastFireAt),children:$2(i.lastFireAt)}):o.jsx("span",{className:"text-neutral4",children:"Never"})})]},i.id))]})}function _ds({workflowId:e}={}){const{data:t,isLoading:n,error:r}=Rwe(e?{workflowId:e}:{}),[s,a]=v.useState("");return r?o.jsx(qi,{title:"Failed to load schedules",message:r.message}):o.jsxs("div",{className:"grid h-full grid-rows-[auto_1fr] gap-4 overflow-hidden",children:[o.jsx("div",{className:"max-w-120",children:o.jsx($f,{onSearch:a,label:"Filter schedules",placeholder:"Filter by id or workflow"})}),o.jsx("div",{className:"overflow-y-auto",children:o.jsx(Ods,{schedules:t??[],isLoading:n,search:s})})]})}function Cds(){const[e]=Ri(),t=e.get("workflowId")??void 0,{error:n}=Rwe(t?{workflowId:t}:{});return n&&ys(n)?o.jsx(lr,{children:o.jsx(Hs,{})}):n&&xs(n)?o.jsx(lr,{children:o.jsx(Ms,{resource:"schedules"})}):o.jsx(Ft,{children:o.jsx("div",{className:"h-full",children:o.jsx(_ds,{workflowId:t})})})}function Eds({stepGraph:e,open:t,workflowName:n}){const{nodes:r,edges:s}=dke({stepGraph:e}),[a,i]=v.useState(!1),[l,c,u]=ckt(r),[d]=ukt(s),{edgeTypes:f,nodeTypes:p,styledEdges:h}=$Dt({edges:d,workflowName:n,stepGraph:e});return v.useEffect(()=>{if(t){const m=setTimeout(()=>{i(!0)},500);return()=>clearTimeout(m)}},[t]),o.jsx("div",{className:"bg-surface1 relative h-full w-full",children:a?o.jsxs(lkt,{nodes:l,edges:h,edgeTypes:f,fitView:!0,fitViewOptions:{maxZoom:1},minZoom:.01,maxZoom:1,nodeTypes:p,onNodesChange:u,children:[o.jsx(XEe,{position:"bottom-left"}),o.jsx(fkt,{variant:ay.Lines,gap:12,size:.5})]}):o.jsx("div",{className:"flex h-full w-full items-center justify-center",children:o.jsx(Xt,{})})})}function jds(){const{stepDetail:e,closeStepDetail:t}=ZH();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(f9,{className:"h-4 w-4",style:{color:ju.map}}),e.type==="nested-graph"&&o.jsx(Xu,{className:"h-4 w-4",style:{color:ju.workflow}}),o.jsxs("div",{className:"flex flex-col",children:[o.jsx(ye,{variant:"ui-md",className:"text-neutral6 font-medium",children:e.type==="map-config"?`${e.stepName} Config`:`${e.stepName} Workflow`}),e.type==="map-config"&&e.stepId&&e.stepId!==e.stepName&&o.jsx(ye,{variant:"ui-xs",className:"text-neutral3",children:e.stepId})]})]}),o.jsx("button",{onClick:t,className:"hover:bg-surface3 rounded p-1 transition-colors","aria-label":"Close",children:o.jsx(bs,{className:"text-neutral3 h-4 w-4"})})]}),o.jsxs("div",{className:"flex-1 overflow-auto",children:[e.type==="map-config"&&e.mapConfig&&o.jsx(R2,{data:e.mapConfig}),e.type==="nested-graph"&&e.nestedGraph&&o.jsx("div",{className:"h-full min-h-[400px]",children:o.jsx(uke,{children:o.jsx(Eds,{stepGraph:e.nestedGraph.stepGraph,open:!0,workflowName:e.nestedGraph.fullStep})},`nested-graph-${e.nestedGraph.fullStep}`)})]})]}):null}function Tds(e){const t=new Blob([JSON.stringify(e??null)]).size;return t<1024?`${t} B`:`${(t/1024).toFixed(1)} KB`}function Nds(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 Ids({suspendedSteps:e,workflow:t,isStreaming:n,onResume:r}){return n||e.length===0?null:o.jsxs("div",{className:"border-border1 bg-surface4 space-y-5 rounded-lg border p-5","data-testid":"workflow-suspended-steps",children:[o.jsxs("div",{className:"flex items-center justify-between gap-3",children:[o.jsxs(ye,{as:"p",variant:"ui-md",className:"text-neutral6 flex items-center gap-2 font-semibold",children:[o.jsx(qe,{children:o.jsx(UV,{})}),"Step suspended"]}),o.jsx(un,{variant:"warning",children:"Needs input"})]}),e.map((s,a)=>{const i=t.allSteps[s.stepId];if(!i||i.isWorkflow)return null;const l=i?.resumeSchema?fm(um(kx(i.resumeSchema))):hp(ur(),IT());return o.jsx(Ads,{step:s,stepSchema:l,description:i.description,isStreaming:n,onResume:r},`${s.runId}-${s.stepId}-${a}`)})]})}function Ads({step:e,stepSchema:t,description:n,isStreaming:r,onResume:s}){const[a,i]=v.useState(!1);return o.jsxs("div",{className:"space-y-5",children:[o.jsxs("div",{className:"space-y-2",children:[o.jsx(ye,{as:"p",variant:"ui-md",className:"text-neutral6 truncate font-medium",children:e.stepId}),n&&o.jsx(ye,{as:"p",variant:"ui-sm",className:"text-neutral3",children:n})]}),e.suspendPayload&&o.jsxs("div",{className:"space-y-2",children:[o.jsxs(ye,{as:"p",variant:"ui-sm",className:"text-neutral3 flex items-center gap-2",children:[o.jsx(qe,{children:o.jsx(IZt,{})}),"The step is asking"]}),o.jsxs(Tf,{open:a,onOpenChange:i,children:[o.jsxs($d,{className:"border-border1 bg-surface3 flex w-full items-center justify-between gap-2 rounded-lg border px-3 py-2.5",children:[o.jsxs("span",{className:"flex min-w-0 items-center gap-2",children:[o.jsx(qe,{children:o.jsx(pa,{className:X("transition-transform text-neutral3",{"transform rotate-90":a})})}),o.jsx(ye,{as:"span",variant:"ui-md",className:"text-neutral6 truncate",children:Nds(e.suspendPayload,e.stepId)})]}),o.jsx(ye,{as:"span",variant:"ui-sm",className:"text-neutral3 shrink-0",children:Tds(e.suspendPayload)})]}),o.jsx(Md,{children:o.jsx("div",{"data-testid":"suspended-payload",className:"pt-2",children:o.jsx(Wr,{data:e.suspendPayload,className:"w-full overflow-x-auto p-2",showCopyButton:!1})})})]})]}),o.jsxs("div",{className:"space-y-3",children:[o.jsxs(ye,{as:"p",variant:"ui-sm",className:"text-neutral3 flex items-center gap-2",children:[o.jsx(qe,{children:o.jsx(PZt,{})}),"Your response"]}),o.jsx("div",{className:"-mx-5",children:o.jsx(IB,{schema:t,isSubmitLoading:r,submitButtonLabel:"Resume",submitButtonIcon:o.jsx(Of,{}),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 Rds(){const{result:e,runSnapshot:t,workflow:n,runId:r,isStreamingWorkflow:s}=v.useContext(Bl),{runId:a}=Sr(),i=bkt(e,r??""),l=gKn(),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(Ids,{suspendedSteps:i,workflow:n,isStreaming:s,onResume:l})},r)}const Pds=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"})]}),$ds=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"})]}),Mds=e=>e.includes("."),Dds=e=>e==="input"||e.endsWith(".input"),Lds=1;function Fds(e){return`${Number((e/1e3).toPrecision(3))}s`}function zds(e,t){const n=Object.entries(e).filter(([i])=>!Dds(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,Lds);return{stepId:i,step:l,status:l.status,offsetPct:f,widthPct:p,durationMs:d,isRunning:c,isNestedEntry:Mds(i)}})}const Bds=({status:e})=>o.jsxs(qe,{children:[e==="success"&&o.jsx(Pds,{className:"text-accent1"}),e==="failed"&&o.jsx($ds,{className:"text-accent2"}),e==="suspended"&&o.jsx(UV,{className:"text-accent3"}),e==="waiting"&&o.jsx(Cfe,{className:"text-accent5"}),e==="skipped"&&o.jsx(Cfe,{className:"text-icon3"}),e==="running"&&o.jsx(ia,{className:"text-accent6 animate-spin"})]}),Uds={success:"bg-accent1",failed:"bg-accent2",suspended:"bg-accent3",waiting:"bg-accent5",skipped:"bg-border1",running:"bg-accent6"};function M7t(e){return e.split(/[-_.\s]+/).filter(Boolean).map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(" ")}const PXe=e=>e&&typeof e=="object"&&!Array.isArray(e)?e:{value:e},Vds=e=>{const t=e;return CDt({duration:t.duration,date:t.date,isForEach:t.isForEach,mapConfig:t.mapConfig,canSuspend:t.canSuspend,isParallel:t.isParallel,stepGraph:t.stepGraph})},qds=({row:e,index:t,isSelected:n,isHovered:r,onSelectStep:s,onHoverStep:a,onOpenInput:i,onOpenOutput:l})=>{const c=Vds(e.step),u=e.status==="running",d=!e.isNestedEntry;return o.jsxs("div",{role:"button",tabIndex:0,"data-testid":"workflow-timeline-row","data-workflow-step-key":e.stepId,"data-workflow-step-active":n?"true":void 0,"data-workflow-step-hovered":r?"true":void 0,"data-workflow-step-nested":e.isNestedEntry?"true":void 0,"aria-pressed":n,"aria-disabled":!d,onMouseEnter:()=>{d&&a(e.stepId)},onMouseLeave:()=>{d&&a(null)},onClick:()=>{d&&s(e.stepId)},onKeyDown:f=>{!d||f.key!=="Enter"&&f.key!==" "||(f.preventDefault(),s(e.stepId))},className:X("grid grid-cols-[auto_auto_auto_minmax(0,10rem)_minmax(0,1fr)_auto_5rem] items-center gap-2 rounded-md border border-transparent px-2 py-1 text-left transition-colors focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-accent1",d&&"cursor-pointer",d&&"hover:bg-surface4",d&&r&&!n&&"border-neutral6 bg-surface4",d&&n&&"border-accent1",e.isNestedEntry&&"cursor-default opacity-55"),children:[o.jsx("div",{className:"flex justify-center",children:o.jsx(Bds,{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($Gt,{})})}),o.jsx("div",{className:"flex overflow-hidden",children:o.jsx(mV,{indicators:c,className:"shrink-0"})}),o.jsx(ye,{as:"span",variant:"ui-sm",className:"text-neutral6 block max-w-full min-w-0 justify-self-stretch overflow-hidden text-left text-ellipsis whitespace-nowrap",children:M7t(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 ${Uds[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(RGt,{})})}),o.jsx(ye,{as:"span",variant:"ui-sm",className:"text-neutral3 w-20 justify-self-end text-right tabular-nums",children:Fds(e.durationMs)})]},`timeline-item-${e.stepId}-${t}`)};function Hds(){const{steps:e}=F4(),{selectedStepId:t,hoverStepId:n,setSelectedStepId:r,setHoverStepId:s}=aH(),[a,i]=v.useState(()=>Date.now()),[l,c]=v.useState(!1),[u,d]=v.useState(null),f=v.useRef(null);Bwe(f,{enabled:!l});const p=zds(e,a),h=p.some(m=>m.isRunning);return v.useEffect(()=>{if(!h)return;const m=setInterval(()=>i(Date.now()),100);return()=>clearInterval(m)},[h]),v.useEffect(()=>{if(l||p.length===0)return;const m=f.current;m&&(m.scrollTop=m.scrollHeight)},[l,p.length]),p.length===0?null:o.jsxs(o.Fragment,{children:[o.jsx("div",{"data-testid":"workflow-timeline",className:"pointer-events-none absolute right-0 bottom-0 z-20 px-2 pb-2",style:{left:"var(--workflow-left-panel-width, 0px)"},children:o.jsxs("div",{className:"rounded-studio-panel border-border1/50 bg-surface3 pointer-events-auto flex max-h-64 w-full min-w-0 flex-col gap-3 overflow-hidden border p-4 shadow-lg",children:[o.jsxs("div",{className:"flex shrink-0 items-center justify-between gap-3",children:[o.jsx(ye,{as:"p",variant:"ui-md",className:"text-neutral3",children:"Timeline"}),o.jsx("button",{type:"button","aria-label":l?"Expand timeline":"Collapse timeline","aria-expanded":!l,onClick:()=>c(m=>!m),className:"text-neutral3 hover:bg-surface4 hover:text-neutral6 rounded-md p-1 transition-colors",children:o.jsx(Na,{className:X("h-4 w-4 transition-transform",l&&"-rotate-90")})})]}),!l&&o.jsx("div",{ref:f,"data-testid":"workflow-timeline-list",className:"flex min-h-0 flex-col gap-2 overflow-y-auto",children:p.map((m,g)=>o.jsx(qds,{row:m,index:g,isSelected:t===m.stepId,isHovered:n===m.stepId,onSelectStep:r,onHoverStep:s,onOpenInput:y=>d({type:"input",stepId:y.stepId,data:PXe(y.step.input)}),onOpenOutput:y=>d({type:"output",stepId:y.stepId,data:PXe(y.step.output)})},`timeline-item-${m.stepId}-${g}`))})]})}),o.jsx(br,{open:!!u,onOpenChange:m=>!m&&d(null),children:u&&o.jsx(wkt,{data:u.data,title:`${M7t(u.stepId)} ${u.type==="input"?"input":"output"}`})})]})}const Wds=({workflowId:e,workflow:t,isLoading:n})=>{const{stepDetail:r}=ZH();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(MDt,{workflowId:e,workflow:t,isLoading:n}),o.jsx(Rds,{}),o.jsx(Hds,{})]})}),r&&o.jsx("div",{className:"border-border1 min-h-0 w-[420px] overflow-hidden border-l",children:o.jsx(jds,{})})]})},$Xe=()=>{const{workflowId:e}=Sr(),{data:t,isLoading:n,error:r}=H3(e);return r&&ys(r)?o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Hs,{})}):r&&xs(r)?o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Ms,{resource:"workflows"})}):o.jsx(Tke,{children:o.jsx(Wds,{workflowId:e,workflow:t??void 0,isLoading:n})})};function Zds(e,t){if(e==null)return{};var n,r,s=_wt(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 kbe(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 Gds(e){if(Array.isArray(e))return kbe(e)}function Qds(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function Yds(e,t){if(e){if(typeof e=="string")return kbe(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)?kbe(e,t):void 0}}function Kds(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
|
|
721
|
+
`);return t!==-1&&t!==e.length-1}else{if(Array.isArray(e))return e.some(t=>vbe(t));if(e&&typeof e=="object")return Object.values(e).some(t=>vbe(t))}return!1}function rls({children:e}){return o.jsx("div",{className:"flex-1 overflow-y-auto p-4",children:e})}function sls({className:e,children:t}){return o.jsx("div",{className:X("mx-4 flex items-center justify-between gap-2 border-b border-border1 py-3",e),children:t})}function als({className:e,children:t}){return o.jsx("h3",{className:X("flex gap-2 text-ui-md text-neutral3 [&>b]:font-normal [&>b]:text-neutral2",e),children:t})}function ils({className:e,children:t}){return o.jsx("dl",{className:X("grid grid-cols-[auto_1fr] gap-x-4 gap-y-1.5",e),children:t})}function ols({className:e,children:t}){return o.jsx("dt",{className:X("shrink-0 py-0.5 text-ui-smd text-neutral2",e),children:t})}function lls({className:e,children:t}){return o.jsx("dd",{className:X("min-w-0 truncate py-0.5 text-ui-smd text-neutral3",e),children:t})}function cls({className:e,children:t}){return o.jsx("dt",{className:X("col-span-2 py-3 text-ui-sm tracking-widest text-neutral2 uppercase",e),children:t})}const uls=Object.assign(ils,{Key:ols,Value:lls,Header:cls});function dls({children:e}){return o.jsxs("div",{className:"text-ui-sm text-neutral3 flex items-center justify-center gap-2 px-4 py-6",children:[o.jsx(Xt,{size:"sm",variant:"pulse",className:"text-neutral3"})," ",e??"Loading..."]})}function fls({children:e}){return o.jsx("p",{className:"text-ui-sm text-neutral2 px-4 py-6",children:e??"No data found."})}const zi=Object.assign(Kos,{Header:sls,Heading:als,CloseButton:Xos,LoadingData:dls,NoData:fls,Content:rls,KeyValueList:uls,CodeSection:nls}),ap=zi.KeyValueList;function pls(e){return e instanceof Date?e:new Date(e)}function hls({log:e,onClose:t,onTraceClick:n,onSpanClick:r,onPrevious:s,onNext:a,collapsed:i,onCollapsedChange:l}){const[c,u]=v.useState(!1),d=i??c,f=l??u,p=pls(e.timestamp),h=e.traceId,m=e.spanId;return o.jsxs(zi,{collapsed:d,children:[o.jsxs(zi.Header,{children:[o.jsxs(zi.Heading,{children:["Log ",o.jsx("b",{children:nr(p,"MMM dd, HH:mm:ss.SSS")})]}),o.jsxs(Mr,{className:"ml-auto shrink-0",children:[l&&o.jsx(oe,{size:"md",tooltip:d?"Expand panel":"Collapse panel",onClick:()=>f(!d),children:d?o.jsx(Yq,{}):o.jsx(ywe,{})}),o.jsxs(Mr,{spacing:"close",children:[o.jsx(oe,{size:"md",tooltip:"Previous log",onClick:s,disabled:!s,children:o.jsx(Qq,{})}),o.jsx(oe,{size:"md",tooltip:"Next log",onClick:a,disabled:!a,children:o.jsx(u3,{})})]}),o.jsx(zi.CloseButton,{onClick:t})]})]}),!d&&o.jsxs(zi.Content,{children:[o.jsx("p",{className:"text-ui-md text-neutral4 font-mono wrap-break-word whitespace-pre-wrap",children:e.message}),(h||m)&&o.jsxs("div",{className:X("my-8 grid gap-2","[&>button]:justify-between [&>button]:overflow-hidden"),children:[h&&o.jsxs(Mr,{spacing:"close",className:"w-full min-w-0",children:[o.jsxs(oe,{size:"md",className:"min-w-0 flex-1 overflow-hidden",onClick:()=>n?.(h),children:[o.jsx(S7,{}),o.jsx("span",{children:"Trace"}),o.jsxs("span",{className:"text-ui-sm text-neutral2 ml-auto min-w-0 truncate",children:["# ",h]})]}),o.jsx(Pa,{content:h,size:"md",tooltip:"Copy Trace ID to clipboard"})]}),m&&o.jsxs(Mr,{spacing:"close",className:"w-full min-w-0",children:[o.jsxs(oe,{size:"md",className:"min-w-0 flex-1 overflow-hidden",disabled:!h||!r,onClick:()=>h&&r?.(h,m),children:[o.jsx(S7,{}),o.jsx("span",{children:"Span"}),o.jsxs("span",{className:"text-ui-sm text-neutral2 ml-auto min-w-0 truncate",children:["# ",m]})]}),o.jsx(Pa,{content:m,size:"md",tooltip:"Copy Span ID to clipboard"})]})]}),o.jsxs(ap,{className:"mb-6",children:[e.entityType&&o.jsxs(o.Fragment,{children:[o.jsx(ap.Key,{children:"Entity Type"}),o.jsx(ap.Value,{children:e.entityType})]}),e.entityName&&o.jsxs(o.Fragment,{children:[o.jsx(ap.Key,{children:"Entity Name"}),o.jsx(ap.Value,{children:e.entityName})]}),e.serviceName&&o.jsxs(o.Fragment,{children:[o.jsx(ap.Key,{children:"Service"}),o.jsx(ap.Value,{children:e.serviceName})]}),e.environment&&o.jsxs(o.Fragment,{children:[o.jsx(ap.Key,{children:"Environment"}),o.jsx(ap.Value,{children:e.environment})]}),e.source&&o.jsxs(o.Fragment,{children:[o.jsx(ap.Key,{children:"Source"}),o.jsx(ap.Value,{children:e.source})]}),e.metadata&&Object.keys(e.metadata).length>0&&o.jsx(o.Fragment,{children:Object.entries(e.metadata).map(([g,y])=>o.jsxs(v.Fragment,{children:[o.jsx(ap.Key,{children:g}),o.jsx(ap.Value,{children:String(y)})]},g))})]}),e.data&&Object.keys(e.data).length>0&&o.jsx(zi.CodeSection,{title:"Data",codeStr:JSON.stringify(e.data,null,2),className:"mt-6"})]})]})}function mls({error:e,resource:t,errorTitle:n}){if(ys(e))return o.jsx(Hs,{});if(xs(e))return o.jsx(Ms,{resource:t});if(w4(e))return o.jsx(Lr,{iconSlot:o.jsx(k7,{}),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(x4(e,"logs"))return o.jsx(Lr,{iconSlot:o.jsx(k7,{}),titleSlot:"Logs are not available with your current storage",descriptionSlot:"The configured observability storage provider does not support listing logs. Switch to a storage provider with logs support to view runtime logs in Studio."});const r=e instanceof Error?e.message:void 0;return o.jsx(qi,{title:n,message:r??"Unknown error"})}function gls({listSlot:e,logPanelSlot:t,tracePanelSlot:n,spanPanelSlot:r,logCollapsed:s}){const a=!!t;return o.jsxs("div",{className:X("grid h-full min-h-0 items-start gap-4",a?"grid-cols-[1fr_1fr]":"grid-cols-[1fr]"),children:[e,a&&o.jsxs("div",{className:X("grid h-full gap-4 overflow-auto",n&&r?s?"grid-rows-[auto_1fr_1fr]":"grid-rows-[1fr_1fr_1fr]":n?s?"grid-rows-[auto_1fr]":"grid-rows-[1fr_1fr]":s?"grid-rows-[auto]":"grid-rows-[1fr]"),children:[t,n,r]})]})}const vls={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 yls({level:e}){const t=vls[e];return o.jsx(To,{height:"compact",children:o.jsx("span",{className:"text-ui-sm font-semibold uppercase",style:{color:t.color},children:t.label})})}function bls({entityType:e,className:t}){const n=X("size-3.5 shrink-0 text-neutral2",t);switch(e.toLowerCase()){case"agent":return o.jsx(Uo,{className:n,"aria-hidden":!0});case"workflow":case"workflow_run":return o.jsx(Xu,{className:n,"aria-hidden":!0});case"tool":return o.jsx(Ld,{className:n,"aria-hidden":!0});default:return null}}function xls({entityType:e,entityName:t}){const n=e??"";return o.jsxs(To,{height:"compact",className:"flex min-w-0 items-center gap-2",children:[o.jsx(bls,{entityType:n}),t?o.jsx("span",{className:"text-ui-smd min-w-0 truncate",children:t}):"-"]})}function wls({message:e}){return o.jsx(To,{height:"compact",className:"text-ui-smd text-neutral4 min-w-0 truncate font-mono",children:e})}function Sls({data:e}){if(!e||Object.keys(e).length===0)return o.jsx(To,{height:"compact",children:null});const t=Object.entries(e).map(([n,r])=>{if(typeof r=="string")return`${n}: ${r}`;try{return`${n}: ${JSON.stringify(r)}`}catch{return`${n}: <unserializable>`}}).join(", ");return o.jsx(dEe,{children:t})}const Gl=Object.assign(N4,{Top:xZ,TopCell:iC,TopCellWithTooltip:wZ,TopCellSmart:F$t,RowWrapper:gEe,RowButton:I4,RowLink:z$t,Spacer:mEe,NoMatch:bZ,DateCell:fEe,TimeCell:pEe,LevelCell:yls,EntityCell:xls,MessageCell:wls,DataCell:Sls,NextPageLoading:yZ}),OXe="6rem 9rem 5rem 10rem minmax(8rem,1fr) minmax(8rem,1fr)",kls=36,Ols=8;function _ls({logs:e,isLoading:t,isFetchingNextPage:n,hasNextPage:r,setEndOfListElement:s,logIdMap:a,featuredLogId:i,onLogClick:l}){const c=v.useRef(null),u=n7t({count:e.length,getScrollElement:()=>c.current,estimateSize:()=>kls,overscan:Ols}),d=v.useRef(t);if(v.useEffect(()=>{d.current&&!t&&c.current?.dispatchEvent(new Event("scroll")),d.current=t},[t]),t)return o.jsx(ol,{columns:OXe});const f=u.getVirtualItems(),p=u.getTotalSize(),h=f[0]?.start??0,m=f.length>0?Math.max(0,p-(f[f.length-1]?.end??0)):0;return o.jsxs(Gl,{columns:OXe,variant:"striped",scrollRef:c,className:"min-w-0",children:[o.jsxs(Gl.Top,{children:[o.jsx(Gl.TopCell,{children:"Date"}),o.jsx(Gl.TopCell,{children:"Time"}),o.jsx(Gl.TopCell,{children:"Level"}),o.jsx(Gl.TopCell,{children:"Entity"}),o.jsx(Gl.TopCell,{children:"Message"}),o.jsx(Gl.TopCell,{children:"Data"})]}),e.length===0?o.jsx(Gl.NoMatch,{message:"No logs match your search"}):o.jsxs(o.Fragment,{children:[o.jsx(Gl.Spacer,{height:h}),f.map(g=>{const y=e[g.index];if(!y)return null;const b=a.get(y);if(!b)return null;const x=b===i;return o.jsxs(Gl.RowButton,{ref:u.measureElement,"data-index":g.index,onClick:()=>l(y),featured:x,variant:y.level==="error"||y.level==="fatal"?"error":"default",children:[o.jsx(Gl.DateCell,{timestamp:y.timestamp}),o.jsx(Gl.TimeCell,{timestamp:y.timestamp}),o.jsx(Gl.LevelCell,{level:y.level}),o.jsx(Gl.EntityCell,{entityType:y.entityType,entityName:y.entityName}),o.jsx(Gl.MessageCell,{message:y.message}),o.jsx(Gl.DataCell,{data:y.data})]},b)}),o.jsx(Gl.Spacer,{height:m})]}),o.jsx(Gl.NextPageLoading,{isLoading:n,hasMore:r,setEndOfListElement:s})]})}function Cls({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=>Els(f,a));return o.jsxs("div",{className:X("grid grid-cols-[1fr_auto] items-start gap-3"),children:[o.jsx(JNe,{fields:a,tokens:i,onTokensChange:l,disabled:s,autoFocusFieldId:c}),u&&o.jsx(KNe,{disabled:s,onClear:d?e:void 0,onRemoveAll:t,onSave:n,onRemoveSaved:r})]})}function Els(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 jls={"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"},Cae="MMM d, yyyy HH:mm",Eae="Pick a wider range or lower the logging level — verbose entries (debug, info) may be filtered out.";function Tls({datePreset:e,dateFrom:t,dateTo:n}){return e&&e!=="all"&&e!=="custom"?{title:`No logs for ${jls[e]}`,description:Eae}:t&&n?{title:`No logs between ${nr(t,Cae)} and ${nr(n,Cae)}`,description:Eae}:t?{title:`No logs since ${nr(t,Cae)}`,description:Eae}:{title:"No logs yet",description:"Logs will appear here once agents, workflows, or tools are executed."}}const Nls=({datePreset:e,dateFrom:t,dateTo:n}={})=>{const{title:r,description:s}=Tls({datePreset:e,dateFrom:t,dateTo:n});return o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Lr,{iconSlot:o.jsx(k7,{}),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(bwe,{})]})})})},Ils=20,Als=1e4;function Rls(e,t,n){if(e?.pagination?.hasMore)return n+1}function Pls(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 $ls(e){return x4(e.state.error,"logs")||w4(e.state.error)?!1:Als}const Mls=({filters:e}={})=>{const t=We(),{inView:n,setRef:r}=Z_(),s=M1({queryKey:["logs",e],queryFn:({pageParam:p})=>t.listLogsVNext({pagination:{page:p,perPage:Ils},filters:e,orderBy:{field:"timestamp",direction:"DESC"}}),initialPageParam:0,getNextPageParam:Rls,select:Pls,retry:!1,refetchInterval:$ls}),{hasNextPage:a,isFetchingNextPage:i,fetchNextPage:l,data:c,isLoading:u,isError:d,error:f}=s;return v.useEffect(()=>{n&&a&&!i&&l()},[n,a,i,l]),{data:c,hasNextPage:a,isFetchingNextPage:i,fetchNextPage:l,isLoading:u,isError:d,error:f,setEndOfListElement:r}},Dz={AGENT:"agent",WORKFLOW:"workflow_run",SCORER:"scorer",INGEST:"rag_ingestion"},k7t=[{label:"Agent",entityType:Dz.AGENT},{label:"Workflow",entityType:Dz.WORKFLOW},{label:"Scorer",entityType:Dz.SCORER},{label:"Ingest",entityType:Dz.INGEST}],Dls=[{label:"Debug",value:"debug"},{label:"Info",value:"info"},{label:"Warn",value:"warn"},{label:"Error",value:"error"},{label:"Fatal",value:"fatal"}],Bx="rootEntityType",Qb="datePreset",Yb="dateFrom",Kb="dateTo",Lls=new Set(["all","last-24h","last-3d","last-7d","last-14d","last-30d","custom"]),Nl={level:"filterLevel",tags:"filterTags",entityName:"filterEntityName",traceId:"filterTraceId",spanId:"filterSpanId",runId:"filterRunId",threadId:"filterThreadId",sessionId:"filterSessionId",requestId:"filterRequestId",resourceId:"filterResourceId",userId:"filterUserId",organizationId:"filterOrganizationId",serviceName:"filterServiceName",environment:"filterEnvironment",experimentId:"filterExperimentId"},EL=Object.keys(Nl),wIe=new Set(["tags"]),SIe="mastra:logs:saved-filters";function Fls(e,t=SIe){const n=qls(e),r=e.get(Qb);r&&n.set(Qb,r);const s=e.get(Yb);s&&n.set(Yb,s);const a=e.get(Kb);a&&n.set(Kb,a);try{localStorage.setItem(t,n.toString())}catch{}}function zls(e=SIe){try{localStorage.removeItem(e)}catch{}}function _Xe(e=SIe){try{const t=localStorage.getItem(e);if(!t)return null;const n=new URLSearchParams(t);return n.toString()?n:null}catch{return null}}function Bls(e){if(e.has(Qb)||e.has(Yb)||e.has(Kb)||e.has(Bx))return!0;for(const t of EL)if(e.has(Nl[t]))return!0;return!1}function Uls({availableTags:e,availableRootEntityNames:t,availableServiceNames:n,availableEnvironments:r,loading:s}){const a=[{id:"rootEntityType",label:"Primitive Type",kind:"pick-multi",searchable:!1,options:k7t.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:Dls.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 Vls(e){const t=[],n=new Map([[Bx,"rootEntityType"]]);for(const s of EL)n.set(Nl[s],s);const r=new Set;for(const[s]of e.entries()){const a=n.get(s);if(!a||r.has(a))continue;if(r.add(a),wIe.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 qls(e){const t=new URLSearchParams,n=e.get(Bx);n&&t.set(Bx,n);for(const r of EL){const s=Nl[r];if(wIe.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 Hls(e,t){e.delete(Bx);for(const n of EL)e.delete(Nl[n]);for(const n of t){if(n.fieldId==="rootEntityType"&&typeof n.value=="string"){e.set(Bx,n.value);continue}const r=Nl[n.fieldId];if(r){if(wIe.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 Wls({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 Zls(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 Gls="Filters setting for Logs saved",Qls="Filters setting for Logs cleared up";function Yls(e,t,n){const{storageKey:r,messages:s,skipHydration:a}={},[i,l]=v.useState(()=>_Xe(r)!==null),c=v.useCallback(()=>{Fls(e,r),l(!0);const f=s?.saved??Gls;f!==!1&&Le.success(f)},[e,r,s?.saved]),u=v.useCallback(()=>{zls(r),l(!1);const f=s?.cleared??Qls;f!==!1&&Le.success(f)},[r,s?.cleared]),d=v.useRef(!1);return v.useEffect(()=>{if(a||d.current||(d.current=!0,Bls(e)))return;const f=_Xe(r);f&&t(p=>{const h=new URLSearchParams(p);for(const[m,g]of f)h.append(m,g);return h},{replace:!0})},[]),{hasSavedFilters:i,handleSave:c,handleRemoveSaved:u}}function Kls(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 Xls(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,Kls(`${r}${n.message??""}${n.data?JSON.stringify(n.data):""}`))}return t}function Jls(e,t,n,r){const s=v.useMemo(()=>Xls(e),[e]),a=v.useMemo(()=>{const h=new Map;for(const[m,g]of e.entries()){const y=s.get(g);y&&h.set(y,{log:g,idx:m})}return h},[e,s]),l=(t?a.get(t):void 0)?.idx??-1,c=l>=0?e[l]??null:null,u=v.useCallback(h=>s.get(h),[s]),d=v.useCallback(h=>{const m=s.get(h);if(m){if(t===m){n({logId:null});return}n(r?{logId:m,traceId:h.traceId??null,spanId:null}:{logId:m})}},[s,t,r,n]),f=l>0?()=>{const h=e[l-1];if(!h)return;const m=s.get(h);m&&n(r?{logId:m,traceId:h.traceId??null,spanId:null}:{logId:m})}:void 0,p=l>=0&&l<e.length-1?()=>{const h=e[l+1];if(!h)return;const m=s.get(h);m&&n(r?{logId:m,traceId:h.traceId??null,spanId:null}:{logId:m})}:void 0;return{logIdMap:s,getLogId:u,featuredLog:c,handleLogClick:d,handlePreviousLog:f,handleNextLog:p}}const ybe="logId",bbe="traceId",xbe="spanId",oP=1440*60*1e3,ecs={"last-24h":oP,"last-3d":3*oP,"last-7d":7*oP,"last-14d":14*oP,"last-30d":30*oP};function Lz(e){e.delete(ybe),e.delete(bbe),e.delete(xbe)}function tcs(e,t,n){const{onRemoveAll:r}={},s=v.useMemo(()=>{const _=e.get(Qb);return _&&Lls.has(_)?_:"last-24h"},[e]),a=e.get(Yb),i=e.get(Kb),l=v.useMemo(()=>{if(s==="custom"){if(!a)return;const C=new Date(a);return Number.isNaN(C.getTime())?void 0:C}if(s==="all")return;const _=ecs[s];return _?new Date(Date.now()-_):void 0},[s,a]),c=v.useMemo(()=>{if(s!=="custom"||!i)return;const _=new Date(i);return Number.isNaN(_.getTime())?void 0:_},[s,i]),u=v.useRef(s);u.current=s;const d=e.get(ybe),f=e.get(bbe),p=e.get(xbe),h=v.useMemo(()=>k7t.find(_=>_.entityType===e.get(Bx)),[e]),m=v.useMemo(()=>Vls(e),[e]),g=v.useCallback(_=>{t(C=>{const E=new URLSearchParams(C);for(const[j,N]of Object.entries(_)){const I=j==="logId"?ybe:j==="traceId"?bbe:xbe;N?E.set(I,N):E.delete(I)}return E},{replace:!0})},[t]),y=v.useCallback(_=>{t(C=>{const E=new URLSearchParams(C);return Hls(E,_),Lz(E),E},{replace:!0})},[t]),b=y,x=v.useCallback((_,C)=>{if(u.current!=="custom")return;const E=C==="from"?Yb:Kb;t(j=>{const N=new URLSearchParams(j);return _?N.set(E,_.toISOString()):N.delete(E),Lz(N),N},{replace:!0})},[t]),S=v.useCallback(_=>{u.current=_,t(C=>{const E=new URLSearchParams(C);return _==="last-24h"?(E.delete(Qb),E.delete(Yb),E.delete(Kb)):_==="custom"?E.set(Qb,"custom"):(E.set(Qb,_),E.delete(Yb),E.delete(Kb)),Lz(E),E},{replace:!0})},[t]),k=v.useCallback(()=>{t(_=>{const C=new URLSearchParams(_);C.delete(Bx);for(const E of EL)C.delete(Nl[E]);return C.delete(Qb),C.delete(Yb),C.delete(Kb),Lz(C),C},{replace:!0}),r?.()},[t,r]);return v.useMemo(()=>({searchParams:e,setSearchParams:t,datePreset:s,selectedDateFrom:l,selectedDateTo:c,datePresetRef:u,featuredLogId:d,featuredTraceId:f,featuredSpanId:p,selectedEntityOption:h,filterTokens:m,handleFeaturedChange:g,handleFilterTokensChange:b,handleDateChange:x,handleDatePresetChange:S,handleRemoveAll:k,applyFilterTokens:y}),[e,t,s,l,c,u,d,f,p,h,m,g,b,x,S,k,y])}const Ob=zi.KeyValueList;function ncs({spanId:e,span:t,isLoading:n,onClose:r}){const s=t?.startedAt&&t?.endedAt?new Date(t.endedAt).getTime()-new Date(t.startedAt).getTime():null;return o.jsxs(zi,{children:[o.jsxs(zi.Header,{children:[o.jsxs(zi.Heading,{children:["Span ",o.jsxs("b",{children:["# ",e]})]}),o.jsx(zi.CloseButton,{onClick:r})]}),n?o.jsx(zi.LoadingData,{children:"Loading span..."}):t?o.jsxs(zi.Content,{children:[o.jsxs(Ob,{children:[t.spanType&&o.jsxs(o.Fragment,{children:[o.jsx(Ob.Key,{children:"Type"}),o.jsx(Ob.Value,{children:t.spanType})]}),t.startedAt&&o.jsxs(o.Fragment,{children:[o.jsx(Ob.Key,{children:"Started"}),o.jsx(Ob.Value,{children:nr(new Date(t.startedAt),"MMM dd, HH:mm:ss.SSS")})]}),t.endedAt&&o.jsxs(o.Fragment,{children:[o.jsx(Ob.Key,{children:"Ended"}),o.jsx(Ob.Value,{children:nr(new Date(t.endedAt),"MMM dd, HH:mm:ss.SSS")})]}),s!=null&&o.jsxs(o.Fragment,{children:[o.jsx(Ob.Key,{children:"Duration"}),o.jsx(Ob.Value,{children:s<1e3?`${s}ms`:`${(s/1e3).toFixed(2)}s`})]})]}),o.jsx("br",{}),o.jsx(zi.CodeSection,{title:"Input",icon:o.jsx(fhe,{}),codeStr:JSON.stringify(t.input??null,null,2)}),o.jsx(zi.CodeSection,{title:"Output",icon:o.jsx(phe,{}),codeStr:JSON.stringify(t.output??null,null,2)}),o.jsx(zi.CodeSection,{title:"Metadata",icon:o.jsx(yw,{}),codeStr:JSON.stringify(t.metadata??null,null,2)}),o.jsx(zi.CodeSection,{title:"Attributes",icon:o.jsx(yw,{}),codeStr:JSON.stringify(t.attributes??null,null,2)})]}):o.jsx(zi.NoData,{children:"Span not found."})]})}function rcs({traceId:e,spans:t,isLoading:n,onClose:r,onSpanSelect:s,selectedSpanId:a}){const i=v.useMemo(()=>rIe(t??[]),[t]),[l,c]=v.useState([]);v.useEffect(()=>{i.length>0&&c(nIe(i))},[i]);const u=d=>{s?.(a===d?void 0:d)};return o.jsxs(zi,{children:[o.jsxs(zi.Header,{children:[o.jsxs(zi.Heading,{children:["Trace ",o.jsxs("b",{children:["# ",e]})]}),o.jsx(zi.CloseButton,{onClick:r})]}),n?o.jsx(zi.LoadingData,{children:"Loading trace..."}):i.length===0?o.jsx(zi.NoData,{children:"No spans found for this trace."}):o.jsx(zi.Content,{children:o.jsx(J9t,{hierarchicalSpans:i,onSpanClick:u,selectedSpanId:a??void 0,expandedSpanIds:l,setExpandedSpanIds:c})})]})}function scs(){const[e,t]=Ri(),n=tcs(e,t),r=Yls(e,t),[s,a]=v.useState(),[i,l]=v.useState(!1),{data:c=[],isPending:u}=uIe(),{data:d=[],isPending:f}=oIe({entityType:n.selectedEntityOption?.entityType,rootOnly:!0}),{data:p=[],isPending:h}=lIe(),{data:m=[],isPending:g}=cIe(),y=v.useMemo(()=>Uls({availableTags:c,availableRootEntityNames:d,availableServiceNames:m,availableEnvironments:p,loading:{tags:u,entityNames:f,serviceNames:g,environments:h}}),[c,d,m,p,u,f,g,h]),b=v.useMemo(()=>Wls({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:E}=Mls({filters:b}),{logIdMap:j,featuredLog:N,handleLogClick:I,handlePreviousLog:A,handleNextLog:R}=Jls(x,n.featuredLogId,n.handleFeaturedChange,n.featuredTraceId),{data:L,isLoading:D}=dIe(n.featuredTraceId??null),{data:B,isLoading:H}=CL(n.featuredTraceId??"",n.featuredSpanId??""),F=v.useCallback(()=>n.applyFilterTokens(Zls(y,n.filterTokens)),[y,n]),z=v.useCallback(()=>n.handleFeaturedChange({logId:null}),[n]),q=v.useCallback(K=>n.handleFeaturedChange({traceId:K,spanId:null}),[n]),M=v.useCallback((K,ee)=>n.handleFeaturedChange({traceId:K,spanId:ee}),[n]),G=v.useCallback(()=>{n.handleFeaturedChange({traceId:null,spanId:null}),l(!1)},[n]),V=v.useCallback(()=>n.handleFeaturedChange({spanId:null}),[n]),$=v.useCallback(K=>n.handleFeaturedChange({spanId:K??null}),[n]),U=o.jsxs(Ft.TopArea,{children:[o.jsx(Ft.Row,{children:o.jsxs(Ft.Column,{className:"flex flex-wrap items-start justify-start gap-2",children:[o.jsx(G3,{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(eIe,{fields:y,tokens:n.filterTokens,onTokensChange:n.handleFilterTokensChange,disabled:S,onStartTextFilter:a})]})}),o.jsx(Cls,{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(Ft,{width:"wide",height:"full",children:[U,o.jsx(Ft.MainArea,{isCentered:!0,children:o.jsx(mls,{error:k,resource:"logs",errorTitle:"Failed to load logs"})})]});const Z=!!n.selectedEntityOption||n.filterTokens.length>0;return x.length===0&&!S&&!Z?o.jsxs(Ft,{width:"wide",height:"full",children:[U,o.jsx(Ft.MainArea,{isCentered:!0,children:o.jsx(Nls,{datePreset:n.datePreset,dateFrom:n.selectedDateFrom,dateTo:n.selectedDateTo})})]}):o.jsxs(Ft,{width:"wide",height:"full",children:[U,o.jsx(gls,{logCollapsed:i,listSlot:o.jsx(_ls,{logs:x,isLoading:S,isFetchingNextPage:_,hasNextPage:C,setEndOfListElement:E,logIdMap:j,featuredLogId:n.featuredLogId,onLogClick:I}),logPanelSlot:N?o.jsx(hls,{log:N,onClose:z,onTraceClick:q,onSpanClick:M,onPrevious:A,onNext:R,collapsed:i,onCollapsedChange:l}):null,tracePanelSlot:n.featuredTraceId?o.jsx(rcs,{traceId:n.featuredTraceId,spans:L?.spans,isLoading:D,onClose:G,onSpanSelect:$,selectedSpanId:n.featuredSpanId}):null,spanPanelSlot:n.featuredTraceId&&n.featuredSpanId?o.jsx(ncs,{spanId:n.featuredSpanId,span:B?.span,isLoading:H,onClose:V}):null})]})}function acs({server:e}){const{paths:t,Link:n}=yn(),s=We().options.baseUrl,a=s?`${s}/api/mcp/${e.id}/sse`:"",{data:i}=Izt(e),l=Object.values(i||{}),c=l.length,u=l.filter(p=>p.toolType==="agent").length,d=l.filter(p=>p.toolType==="workflow").length,f=Oy(e.name,50);return o.jsxs(ve.RowLink,{to:t.mcpServerLink(e.id),LinkComponent:n,children:[o.jsx(ve.NameCell,{children:f}),o.jsx(ve.DescriptionCell,{children:a}),o.jsx(ve.TextCell,{className:"text-center",children:u||""}),o.jsx(ve.TextCell,{className:"text-center",children:c||""}),o.jsx(ve.TextCell,{className:"text-center",children:d||""})]})}function ics({mcpServers:e,isLoading:t,search:n=""}){const r=v.useMemo(()=>{const s=n.toLowerCase();return e.filter(a=>a.name?.toLowerCase().includes(s)||a.id?.toLowerCase().includes(s))},[e,n]);return t?o.jsx(ol,{columns:"auto 1fr auto auto auto"}):o.jsxs(ve,{columns:"auto 1fr auto auto auto",variant:"striped",children:[o.jsxs(ve.Top,{children:[o.jsx(ve.TopCell,{children:"Name"}),o.jsx(ve.TopCell,{children:"URL"}),o.jsx(ve.TopCellSmart,{long:"Agents",short:o.jsx(Uo,{}),tooltip:"Agent Tools",className:"text-center"}),o.jsx(ve.TopCellSmart,{long:"Tools",short:o.jsx(Ld,{}),tooltip:"Tools",className:"text-center"}),o.jsx(ve.TopCellSmart,{long:"Workflows",short:o.jsx(Xu,{}),tooltip:"Workflow Tools",className:"text-center"})]}),r.length===0&&n?o.jsx(ve.NoMatch,{message:"No MCP Servers match your search"}):null,r.map(s=>o.jsx(acs,{server:s},s.id))]})}const ocs=()=>o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Lr,{iconSlot:o.jsx(Nf,{}),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(Sa,{})]})})}),lcs=()=>{const{data:e=[],isLoading:t,error:n}=RG(),[r,s]=v.useState("");return n&&ys(n)?o.jsx(lr,{children:o.jsx(Hs,{})}):n&&xs(n)?o.jsx(lr,{children:o.jsx(Ms,{resource:"MCP servers"})}):n?o.jsx(lr,{children:o.jsx(qi,{title:"Failed to load MCP servers",message:n.message})}):e.length===0&&!t?o.jsx(lr,{children:o.jsx(ocs,{})}):o.jsxs(Ft,{children:[o.jsx(Ft.TopArea,{children:o.jsx("div",{className:"max-w-120",children:o.jsx($f,{onSearch:s,label:"Filter MCP servers",placeholder:"Filter by name"})})}),o.jsx(ics,{mcpServers:e,isLoading:t,search:r})]})},ccs=(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 ucs({tools:e,agents:t,isLoading:n,search:r=""}){const{paths:s,Link:a}=yn(),i=v.useMemo(()=>ccs(e,t),[e,t]),l=v.useMemo(()=>i.filter(c=>c.id.toLowerCase().includes(r.toLowerCase())),[i,r]);return n?o.jsx(ol,{columns:"auto 1fr auto"}):o.jsxs(ve,{columns:"auto 1fr auto",variant:"striped",children:[o.jsxs(ve.Top,{children:[o.jsx(ve.TopCell,{children:"Name"}),o.jsx(ve.TopCell,{children:"Description"}),o.jsx(ve.TopCellSmart,{long:"Agents",short:o.jsx(Uo,{}),tooltip:"Attached Agents",className:"text-center"})]}),l.length===0&&r?o.jsx(ve.NoMatch,{message:"No Tools match your search"}):null,l.map(c=>{const u=Oy(c.id,50),d=Oy(c.description??"",200),f=c.agents.length;return o.jsxs(ve.RowLink,{to:s.toolLink(c.id),LinkComponent:a,children:[o.jsx(ve.NameCell,{children:u}),o.jsx(ve.DescriptionCell,{children:d}),o.jsx(ve.TextCell,{className:"text-center",children:f||""})]},c.id)})]})}const dcs=()=>o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Lr,{iconSlot:o.jsx(Nf,{}),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(Sa,{})]})})}),fcs=()=>{const e=We();return Mn({mutationFn:async({toolId:t,input:n,requestContext:r})=>{const s=new E_;Object.entries(r??{}).forEach(([a,i])=>{s.set(a,i)});try{return await e.getTool(t).execute({data:n,requestContext:s})}catch(a){throw Le.error("Error executing dev tool"),console.error("Error executing dev tool:",a),a}}})},pcs=({toolId:e})=>{const{canExecute:t}=ul(),n=t("tools"),{data:r={}}=Em(),s=v.useMemo(()=>{for(const g of Object.values(r))if(g.tools){const y=Object.values(g.tools).find(b=>b.id===e);if(y)return y}return null},[r,e]),{data:a,isLoading:i,error:l}=JEr(e,{enabled:!s}),c=s||a,{mutateAsync:u,isPending:d,data:f}=fcs(),{requestContext:p}=_s();v.useEffect(()=>{if(l){const g=l instanceof Error?l.message:"Failed to load tool";Le.error(`Error loading tool: ${g}`)}},[l]);const h=async(g,y)=>{if(!c)return;const b={...p??{},...y??{}};return u({toolId:c.id,input:g,requestContext:b})},m=c?.inputSchema?fm(um(kx(c?.inputSchema))):ks({});return i?o.jsxs("div",{className:"p-6",children:[o.jsx(xt,{className:"mb-4 h-8 w-48"}),o.jsx(xt,{className:"h-32 w-full"})]}):l?null:c?n?o.jsx(jNe,{executionResult:f,isExecutingTool:d,zodInputSchema:m,handleExecuteTool:h,toolDescription:c.description,toolId:c.id,requestContextSchema:c.requestContextSchema}):o.jsx("div",{className:"px-6 py-12 text-center",children:o.jsx(ye,{variant:"ui-sm",className:"text-neutral3",children:"You don't have permission to execute tools."})}):o.jsx("div",{className:"px-6 py-12 text-center",children:o.jsx(ye,{variant:"header-md",className:"text-neutral3",children:"Tool not found"})})};function hcs({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}=RI(),{data:p={},isLoading:h,isError:m,error:g}=Em(),{navigate:y,paths:b}=yn();v.useEffect(()=>{if(d){const _=f instanceof Error?f.message:"Failed to load tools";Le.error(`Error loading tools: ${_}`)}},[d,f]),v.useEffect(()=>{if(m){const _=g instanceof Error?g.message:"Failed to load agents";Le.error(`Error loading agents: ${_}`)}},[m,g]);const x=new Map;Object.values(p).forEach(_=>{_.tools&&Object.values(_.tools).forEach(C=>{x.has(C.id)||x.set(C.id,C)})}),Object.values(c).forEach(_=>{x.has(_.id)||x.set(_.id,_)});const S=Array.from(x.values()).map(_=>({label:_.id,value:_.id})),k=_=>{t?t(_):_&&_!==e&&y(b.toolLink(_))};return o.jsx(ac,{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 mcs=({isLoading:e,server:t})=>{const[{sseUrl:n,httpStreamUrl:r},s]=v.useState({sseUrl:"",httpStreamUrl:""});if(v.useEffect(()=>{if(!t)return;const i=window.MASTRA_SERVER_HOST,l=window.MASTRA_SERVER_PORT;let c=null;i&&l&&(c=`http://${i}:${l}`);const u=c||"http://localhost:4111",d=`${u}/api/mcp/${t.id}/sse`,f=`${u}/api/mcp/${t.id}/mcp`;s({sseUrl:d,httpStreamUrl:f})},[t]),e)return null;if(!t)return o.jsx(_y,{children:o.jsx(ye,{as:"h1",variant:"header-md",className:"text-neutral3 py-20 text-center font-medium",children:"Server not found"})});const a=`npx -y mcp-remote ${n}`;return o.jsxs(_y,{isDivided:!0,children:[o.jsxs("div",{className:"mx-auto w-full max-w-2xl px-8 py-12",children:[o.jsx(ye,{as:"h1",variant:"header-md",className:"text-neutral6 pb-4 font-medium",children:t.name}),o.jsxs("div",{className:"flex items-center gap-1 pb-6",children:[o.jsx(un,{icon:o.jsx(Y9t,{className:"text-neutral6"}),className:"text-neutral4! rounded-r-sm",children:"Version"}),o.jsx(un,{className:"text-neutral4! rounded-l-sm",children:t.version_detail.version})]}),o.jsx(ye,{className:"text-neutral3 pb-4",children:"This MCP server can be accessed through multiple transport methods. Choose the one that best fits your use case."}),o.jsxs("div",{className:"flex flex-col gap-4",children:[o.jsxs("div",{className:"border-border1 bg-surface3 rounded-lg border p-4",children:[o.jsx(un,{icon:o.jsx("span",{className:"text-accent1 mr-1 w-6 font-mono font-medium",children:"HTTP"}),children:"Regular HTTP Endpoint"}),o.jsx(ye,{className:"text-neutral3 pt-1 pb-2",children:"Use for stateless HTTP transport with streamable responses."}),o.jsxs("div",{className:"flex items-start gap-2",children:[o.jsx(ye,{className:"bg-surface4 rounded-lg px-2 py-1",children:r}),o.jsx("div",{className:"pt-1",children:o.jsx(Pa,{tooltip:"Copy HTTP Stream URL",content:r})})]})]}),o.jsxs("div",{className:"border-border1 bg-surface3 rounded-lg border p-4",children:[o.jsx(un,{icon:o.jsx("span",{className:"text-accent1 mr-1 w-6 font-mono font-medium",children:"SSE"}),children:"Server-Sent Events"}),o.jsx(ye,{className:"text-neutral3 pt-1 pb-2",children:"Use for real-time communication via SSE."}),o.jsxs("div",{className:"flex items-start gap-2",children:[o.jsx(ye,{className:"bg-surface4 rounded-lg px-2 py-1",children:n}),o.jsx("div",{className:"pt-1",children:o.jsx(Pa,{tooltip:"Copy SSE URL",content:n})})]})]}),o.jsxs("div",{className:"border-border1 bg-surface3 rounded-lg border p-4",children:[o.jsx(un,{icon:o.jsx("span",{className:"text-accent1 mr-1 w-6 font-mono font-medium",children:"CLI"}),children:"Command Line"}),o.jsx(ye,{className:"text-neutral3 pt-1 pb-2",children:"Use for local command-line access via npx and mcp-remote."}),o.jsxs("div",{className:"flex items-start gap-2",children:[o.jsx(ye,{className:"bg-surface4 rounded-lg px-2 py-1",children:a}),o.jsx("div",{className:"pt-1",children:o.jsx(Pa,{tooltip:"Copy Command Line Config",content:a})})]})]})]})]}),o.jsx("div",{className:"border-border1 h-full overflow-y-scroll border-l",children:o.jsx(gcs,{server:t})})]})},gcs=({server:e})=>{const{data:t={},isLoading:n}=Izt(e);if(n)return null;const r=Object.keys(t);return o.jsxs("div",{className:"overflow-y-scroll p-5",children:[o.jsxs("div",{className:"text-neutral6 flex items-center gap-2",children:[o.jsx(qe,{size:"lg",className:"bg-surface4 rounded-md p-1",children:o.jsx(mC,{})}),o.jsx(ye,{variant:"header-md",as:"h2",className:"font-medium",children:"Available Tools"})]}),o.jsx("div",{className:"flex flex-col gap-2 pt-6",children:r.map(s=>{const a=t[s];return o.jsx(ycs,{tool:a,serverId:e.id},s)})})]})};function vcs(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 ycs=({tool:e,serverId:t})=>{const n=v.useRef(null),{Link:r,paths:s}=yn(),a=r8t[e.toolType||"tool"],i=vcs(e._meta);return o.jsxs(Df,{onClick:()=>n.current?.click(),children:[o.jsx(K2t,{children:o.jsx(a,{className:"group-hover/entity:text-accent6"})}),o.jsxs(Ff,{children:[o.jsx(Lf,{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(un,{className:"py-0 text-[10px]",children:"App"})]})}),o.jsx(th,{children:e.description})]})]})},bcs=()=>{const{serverId:e}=Sr(),{data:t=[],isLoading:n}=RG(),r=t.find(s=>s.id===e);return o.jsx("div",{className:"h-full w-full overflow-hidden",children:o.jsx(mcs,{isLoading:n,server:r})})};function xcs(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 wcs=({toolId:e,serverId:t})=>{const{canExecute:n}=ul(),r=n("tools"),s=We(),{data:a,isLoading:i,error:l}=wNe(t,e),{mutateAsync:c,isPending:u,data:d}=WGr(t,e),f=a?xcs(a._meta):void 0,{data:p}=mt({queryKey:["mcp-app-resource",t,f],queryFn:async()=>f?(await s.readMcpServerResource(t,f)).contents[0]?.text??null:null,enabled:!!f}),h=v.useCallback(async(y,b)=>await c(b),[c]);v.useEffect(()=>{if(l){const y=l instanceof Error?l.message:"Failed to load tool";Le.error(`Error loading tool: ${y}`)}},[l]);const m=async y=>{if(a)return await c(y)};if(i)return o.jsxs("div",{className:"p-6",children:[o.jsx(xt,{className:"mb-4 h-8 w-48"}),o.jsx(xt,{className:"h-32 w-full"})]});if(l)return null;if(!a)return o.jsx("div",{className:"px-6 py-12 text-center",children:o.jsx(ye,{variant:"header-md",className:"text-neutral3",children:"Tool not found"})});if(!r)return o.jsx("div",{className:"px-6 py-12 text-center",children:o.jsx(ye,{variant:"ui-sm",className:"text-neutral3",children:"You don't have permission to execute tools."})});let g;try{g=fm(um(a.inputSchema))}catch(y){console.error("Error processing input schema:",y),Le.error("Failed to process tool input schema."),g=ks({})}return o.jsxs("div",{className:"flex flex-col gap-4",children:[p&&o.jsx("div",{className:"border-border1 border-b p-4",children:o.jsx(Nzt,{html:p,toolName:a.name??a.id,onToolCall:h})}),o.jsx(jNe,{executionResult:d,isExecutingTool:u,zodInputSchema:g,handleExecuteTool:m,toolDescription:a.description||"",toolId:a.id})]})},Scs=()=>{const{serverId:e,toolId:t}=Sr(),{data:n,isLoading:r}=wNe(e,t);return r||!n?null:o.jsx("div",{className:"h-full w-full overflow-y-auto",children:o.jsx(wcs,{toolId:t,serverId:e})})},O7t=[{label:"Agent",entityType:"agent"},{label:"Workflow",entityType:"workflow_run"},{label:"Scorer",entityType:"scorer"},{label:"Ingest",entityType:"rag_ingestion"}],PN="rootEntityType",$N={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"},sQ=Object.keys($N),kIe="mastra:metrics:saved-filters";function kcs(e){const t=jcs(e);try{localStorage.setItem(kIe,t.toString())}catch{}}function Ocs(){try{localStorage.removeItem(kIe)}catch{}}function _7t(){try{const e=localStorage.getItem(kIe);if(!e)return null;const t=new URLSearchParams(e);return t.toString()?t:null}catch{return null}}function _cs(e){if(e.has(PN))return!0;for(const t of sQ)if(e.has($N[t]))return!0;return!1}function Ccs({availableTags:e,availableEntityNames:t,availableServiceNames:n,availableEnvironments:r,loading:s}){const a=[{id:"rootEntityType",label:"Primitive Type",kind:"pick-multi",searchable:!1,options:O7t.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 Ecs(e){const t=[],n=new Map([[PN,"rootEntityType"]]);for(const s of sQ)n.set($N[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 jcs(e){const t=new URLSearchParams,n=e.getAll(PN);for(const r of n)t.append(PN,r);for(const r of sQ){const s=$N[r],a=e.getAll(s);for(const i of a)t.append(s,i)}return t}function Tcs(e,t){e.delete(PN);for(const n of sQ)e.delete($N[n]);for(const n of t){const r=n.fieldId==="rootEntityType"?PN:$N[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 Ncs="Any";function CXe(e){const t=e.trim();return t===""||t===Ncs}const Ics=new Set(O7t.map(e=>e.entityType));function EXe(e){const t=e.trim();return Ics.has(t)?t:void 0}function Acs(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=>!CXe(a));if(s.length===0)continue;if(r==="tags")t.tags=s;else if(r==="rootEntityType"){const a=s[0],i=a!==void 0?EXe(a):void 0;i&&(t.rootEntityType=i)}else t[r]=s[0]}else if(typeof n.value=="string"){if(CXe(n.value))continue;const s=n.value.trim();if(r==="rootEntityType"){const a=EXe(s);a&&(t.rootEntityType=a)}else t[r]=s}}return t}const C7t=[{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"}],Rcs=new Set(C7t.map(e=>e.value));function Pcs(e){return typeof e=="string"&&(Rcs.has(e)||e==="custom")}const E7t=v.createContext({datePreset:"24h",setDatePreset:()=>{},customRange:void 0,setCustomRange:()=>{},dateRangeLabel:"Last 24 hours",filterTokens:[],setFilterTokens:()=>{},dimensionalFilter:{},dimensionalFilterKey:"{}",tracesBasePath:void 0,logsBasePath:void 0});function aQ(){return v.useContext(E7t)}function $cs(e,t){return e!=="custom"?C7t.find(n=>n.value===e)?.label??e:t?.from?t.to?`${nr(t.from,"MMM d, yyyy")} – ${nr(t.to,"MMM d, yyyy")}`:nr(t.from,"MMM d, yyyy"):"Custom range"}function Mcs({children:e,preset:t,filterTokens:n,onPresetChange:r,onFilterTokensChange:s,customRange:a,onCustomRangeChange:i,tracesBasePath:l,logsBasePath:c}){const u=v.useMemo(()=>JSON.stringify(n),[n]),d=v.useMemo(()=>n,[u]),f=v.useMemo(()=>Acs(d),[d]),p=v.useMemo(()=>JSON.stringify(f),[f]),h=$cs(t,a),m=v.useMemo(()=>({datePreset:t,setDatePreset:r,customRange:a,setCustomRange:i??(()=>{}),dateRangeLabel:h,filterTokens:d,setFilterTokens:s,dimensionalFilter:f,dimensionalFilterKey:p,tracesBasePath:l,logsBasePath:c}),[t,r,a,i,h,d,s,f,p,l,c]);return o.jsx(E7t.Provider,{value:m,children:e})}const Dcs=["last-24h","last-3d","last-7d","last-14d","last-30d","custom"];function Lcs(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 Fcs(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 zcs(){const{datePreset:e,setDatePreset:t,customRange:n,setCustomRange:r}=aQ(),s=v.useRef(e);s.current=e;const a=v.useRef(n);return a.current=n,o.jsx(G3,{preset:Lcs(e),onPresetChange:i=>{const l=Fcs(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:Dcs})}const wbe=1440*60*1e3,Bcs={"24h":wbe,"3d":4320*60*1e3,"7d":10080*60*1e3,"14d":336*60*60*1e3,"30d":720*60*60*1e3};function Ucs(e,t,n){if(e!=="custom"){const r=Bcs[e]??wbe;return{start:new Date(n-r),end:new Date(n)}}return{start:t?.from??new Date(n-wbe),end:t?.to??new Date(n)}}function Im(){const{datePreset:e,customRange:t,dimensionalFilter:n,dimensionalFilterKey:r}=aQ(),s=v.useRef(null),a=e==="custom"?`custom:${t?.from?.getTime()??""}:${t?.to?.getTime()??""}`:`preset:${e}`;(!s.current||s.current.key!==a)&&(s.current={key:a,anchor:Date.now()});const i=s.current.anchor,l=v.useMemo(()=>Ucs(e,t,i),[e,t,i]),c=v.useMemo(()=>({timestamp:l,...n}),[l,r]),u=v.useMemo(()=>`${a}|${r}`,[a,r]);return{datePreset:e,customRange:t,timestamp:l,filters:c,dimensionalFilter:n,filterKey:u}}function j7t(){const e=We(),{filters:t,filterKey:n}=Im();return mt({queryKey:["metrics","agent-runs-kpi",n],queryFn:()=>e.getMetricAggregate({name:["mastra_agent_duration_ms"],aggregation:"count",filters:t,comparePeriod:"previous_period"})})}const Vcs=new Set(["ObservabilityStorageClickhouseVNext","ObservabilityStorageDuckDB","ObservabilityInMemory","ObservabilitySpanner","ObservabilityStoragePostgresVNext"]),qcs=()=>{const{data:e,isLoading:t}=R4(),n=e?.observabilityStorageType;return{supportsMetrics:e?.observabilityStorageCapabilities?.metrics??(n?Vcs.has(n):!1),isInMemory:n==="ObservabilityInMemory",isLoading:t}};function jL({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(OEn,{})})}function Hcs({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(ijn,{})})}const Wcs=[{dataKey:"p50",label:"p50",color:Fp.blue,aggregate:e=>({value:e.length>0?`${Math.round(e.reduce((t,n)=>t+n.p50,0)/e.length)}`:"0",suffix:"avg ms"})},{dataKey:"p95",label:"p95",color:Fp.yellow,aggregate:e=>({value:e.length>0?`${Math.round(e.reduce((t,n)=>t+n.p95,0)/e.length)}`:"0",suffix:"avg ms"})}];function Zcs(e){return e==="agents"||e==="workflows"||e==="tools"}function jae({data:e,onPointClick:t}){return e.length===0?o.jsx(Ht.NoData,{message:"No latency data yet"}):o.jsx(AV,{data:e,series:Wcs,onPointClick:t?n=>{const r=n;typeof r?.tsMs=="number"&&Number.isFinite(r.tsMs)&&t(r)}:void 0})}function Gcs({data:e,isLoading:t,isError:n,onPointClick:r,actions:s}){const a=(e?.agentData.length??0)>0,i=(e?.workflowData.length??0)>0,l=(e?.toolData.length??0)>0,c={agents:a,workflows:i,tools:l},u=a?"agents":i?"workflows":l?"tools":"agents",[d,f]=v.useState("agents"),p=c[d]?d:u,h=typeof s=="function"?s(p):s,m=!!e&&(e.agentData.length>0||e.workflowData.length>0||e.toolData.length>0),g=e?Object.values(e).filter(Array.isArray).flat().map(b=>b.p50).filter(b=>typeof b=="number"):[],y=g.length>0?`${Math.round(g.reduce((b,x)=>b+x,0)/g.length)}ms`:"—";return o.jsxs(Ht,{children:[o.jsxs(Ht.TopBar,{children:[o.jsx(Ht.TitleAndDescription,{title:"Latency",description:"Hourly p50 and p95 latency."}),m&&o.jsx(Ht.Summary,{value:y,label:"Avg p50"}),h?o.jsx(Ht.Actions,{children:h}):null]}),t?o.jsx(Ht.Loading,{}):n?o.jsx(Ht.Error,{message:"Failed to load latency data"}):o.jsx(Ht.Content,{children:m?o.jsxs(Dc,{value:p,onValueChange:b=>{Zcs(b)&&c[b]&&f(b)},defaultTab:u,className:"overflow-visible",children:[o.jsxs(Mc,{children:[o.jsx(Rr,{value:"agents",disabled:!a,disabledTooltip:"No agent latency data for this period",children:"Agents"}),o.jsx(Rr,{value:"workflows",disabled:!i,disabledTooltip:"No workflow latency data for this period",children:"Workflows"}),o.jsx(Rr,{value:"tools",disabled:!l,disabledTooltip:"No tool latency data for this period",children:"Tools"})]}),o.jsx(Xr,{value:"agents",children:o.jsx(jae,{data:e.agentData,onPointClick:r?b=>r("agents",b):void 0})}),o.jsx(Xr,{value:"workflows",children:o.jsx(jae,{data:e.workflowData,onPointClick:r?b=>r("workflows",b):void 0})}),o.jsx(Xr,{value:"tools",children:o.jsx(jae,{data:e.toolData,onPointClick:r?b=>r("tools",b):void 0})})]}):o.jsx(Ht.NoData,{message:"No latency data yet"})})]})}function Qcs(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 Ycs(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 T7t(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=Qcs(s);l&&e.set(t,l)}function Po(e,t,n){typeof n=="string"&&n.length>0&&e.set(t,n)}function N7t(e,t,n){if(!(!Array.isArray(n)||n.length===0))for(const r of n)r&&e.append(t,r)}function jXe({preset:e,customRange:t,dashboardFilter:n,scope:r,tracesBasePath:s="/observability"}){const a=new URLSearchParams;a.set(Ow,"branches"),T7t(a,_w,Cw,Ew,e,t,r.window);const i=r.rootEntityType??n.rootEntityType;i&&a.set(Fx,i),r.status&&a.set(zx,r.status),Po(a,Tl.entityName,r.entityName??n.entityName),Po(a,Tl.threadId,r.threadId??n.threadId),Po(a,Tl.resourceId,r.resourceId??n.resourceId),Po(a,Tl.entityId,n.entityId),Po(a,Tl.runId,n.runId),Po(a,Tl.sessionId,n.sessionId),Po(a,Tl.requestId,n.requestId),Po(a,Tl.userId,n.userId),Po(a,Tl.organizationId,n.organizationId),Po(a,Tl.experimentId,n.experimentId),Po(a,Tl.serviceName,n.serviceName),Po(a,Tl.environment,n.environment),N7t(a,Tl.tags,n.tags);const l=a.toString();return l?`${s}?${l}`:s}function Kcs({preset:e,customRange:t,dashboardFilter:n,scope:r,logsBasePath:s="/logs"}){const a=new URLSearchParams;T7t(a,Qb,Yb,Kb,e,t,r.window);const i=r.rootEntityType??n.rootEntityType;i&&a.set(Bx,i),Po(a,Nl.entityName,r.entityName??n.entityName),Po(a,Nl.threadId,r.threadId??n.threadId),Po(a,Nl.resourceId,r.resourceId??n.resourceId),Po(a,Nl.runId,n.runId),Po(a,Nl.sessionId,n.sessionId),Po(a,Nl.requestId,n.requestId),Po(a,Nl.userId,n.userId),Po(a,Nl.organizationId,n.organizationId),Po(a,Nl.experimentId,n.experimentId),Po(a,Nl.serviceName,n.serviceName),Po(a,Nl.environment,n.environment),N7t(a,Nl.tags,n.tags),r.status==="error"&&a.append(Nl.level,"error");const l=a.toString();return l?`${s}?${l}`:s}function KI(){const{datePreset:e,customRange:t,dimensionalFilter:n,tracesBasePath:r,logsBasePath:s}=aQ(),a=v.useCallback((c={})=>jXe({preset:e,customRange:t,dashboardFilter:n,scope:c,tracesBasePath:r}),[e,t,n,r]),i=v.useCallback((c={})=>Kcs({preset:e,customRange:t,dashboardFilter:n,scope:c,logsBasePath:s}),[e,t,n,s]),l=v.useCallback((c,u,d)=>{const f=Ycs(u,d);return jXe({preset:e,customRange:t,dashboardFilter:n,scope:{...c,window:f},tracesBasePath:r})},[e,t,n,r]);return{getTracesHref:a,getLogsHref:i,getBucketTracesHref:l}}const I7t="1h";async function Tae(e,t,n){const r=await e.getMetricPercentiles({name:t,percentiles:[.5,.95],interval:I7t,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 Xcs(){const e=We(),{filters:t,filterKey:n}=Im();return mt({queryKey:["metrics","latency",n],queryFn:async()=>{const[r,s,a]=await Promise.all([Tae(e,"mastra_agent_duration_ms",t),Tae(e,"mastra_workflow_duration_ms",t),Tae(e,"mastra_tool_duration_ms",t)]);return{agentData:r,workflowData:s,toolData:a,interval:I7t}}})}const TXe={agents:au.AGENT,workflows:au.WORKFLOW_RUN,tools:au.TOOL};function Jcs(){const{data:e,isLoading:t,isError:n}=Xcs(),{getTracesHref:r,getBucketTracesHref:s}=KI(),{Link:a}=yn(),i=qs();return o.jsx(Gcs,{data:e,isLoading:t,isError:n,onPointClick:(l,c)=>{Number.isFinite(c.tsMs)&&i(s({rootEntityType:TXe[l]},c.tsMs,"1h"))},actions:l=>o.jsx(jL,{href:r({rootEntityType:TXe[l]}),LinkComponent:a})})}function eus(e){return e==="threads"||e==="resources"}function Nae(e){return e.length<=12?e:`${e.slice(0,6)}…${e.slice(-4)}`}function tus({threads:e,resources:t,getThreadRowHref:n,getResourceRowHref:r,actions:s,LinkComponent:a}){const[i,l]=v.useState("threads"),c=e.data?.map(y=>({...y,key:y.threadId}))??[],u=t.data?.map(y=>({...y,key:y.resourceId}))??[],d=c.length>0,f=u.length>0,p=e.data?.reduce((y,b)=>y+b.runs,0)??0,h=t.data?.reduce((y,b)=>y+b.threadCount,0)??0,m=i==="threads"?e:t,g=typeof s=="function"?s(i):s;return o.jsxs(Ht,{children:[o.jsxs(Ht.TopBar,{children:[o.jsx(Ht.TitleAndDescription,{title:"Memory",description:"Resource and Thread consumption"}),i==="threads"&&d&&o.jsx(Ht.Summary,{value:p.toLocaleString(),label:"Total runs"}),i==="resources"&&f&&o.jsx(Ht.Summary,{value:h.toLocaleString(),label:"Total threads"}),g?o.jsx(Ht.Actions,{children:g}):null]}),m.isLoading?o.jsx(Ht.Loading,{}):m.isError?o.jsx(Ht.Error,{message:"Failed to load memory data"}):o.jsx(Ht.Content,{children:o.jsxs(Dc,{defaultTab:"threads",value:i,onValueChange:y=>{eus(y)&&l(y)},className:"grid h-full grid-rows-[auto_1fr] overflow-y-auto",children:[o.jsxs(Mc,{children:[o.jsx(Rr,{value:"threads",children:"Threads"}),o.jsx(Rr,{value:"resources",children:"Resources"})]}),o.jsx(Xr,{value:"threads",children:d?o.jsxs(ve,{columns:"auto auto auto auto auto",...mbe,children:[o.jsxs(ve.Top,{children:[o.jsx(ve.TopCell,{sticky:"start",children:"Thread ID"}),o.jsx(ve.TopCell,{className:"justify-end text-right",children:"Resource ID"}),o.jsx(ve.TopCell,{className:"justify-end text-right",children:"Runs"}),o.jsx(ve.TopCell,{className:"justify-end text-right",children:"Tokens"}),o.jsx(ve.TopCell,{className:"justify-end text-right",children:"Cost"})]}),c.map(y=>{const b=n?.(y),x=o.jsxs(o.Fragment,{children:[o.jsx(ve.RowHeaderCell,{height:"compact",className:"text-ui-sm",children:Nae(y.threadId)}),o.jsx(ve.NumberCell,{children:y.resourceId?Nae(y.resourceId):"—"}),o.jsx(ve.NumberCell,{highlight:!0,children:y.runs.toLocaleString()}),o.jsx(ve.NumberCell,{children:y.tokens>0?Oc(y.tokens):"—"}),o.jsx(ve.NumberCell,{children:y.cost!=null?Cg(y.cost,y.costUnit):"—"})]});return b?o.jsx(ve.RowLink,{to:b,LinkComponent:a,children:x},y.key):o.jsx(ve.RowStatic,{children:x},y.key)})]}):o.jsx(Ht.NoData,{message:"No thread activity yet"})}),o.jsx(Xr,{value:"resources",children:f?o.jsxs(ve,{columns:"auto auto auto auto",...mbe,children:[o.jsxs(ve.Top,{children:[o.jsx(ve.TopCell,{sticky:"start",children:"Resource ID"}),o.jsx(ve.TopCell,{className:"justify-end text-right",children:"Threads"}),o.jsx(ve.TopCell,{className:"justify-end text-right",children:"Tokens"}),o.jsx(ve.TopCell,{className:"justify-end text-right",children:"Cost"})]}),u.map(y=>{const b=r?.(y),x=o.jsxs(o.Fragment,{children:[o.jsx(ve.RowHeaderCell,{height:"compact",className:"text-ui-sm",children:Nae(y.resourceId)}),o.jsx(ve.NumberCell,{highlight:!0,children:y.threadCount.toLocaleString()}),o.jsx(ve.NumberCell,{children:y.tokens>0?Oc(y.tokens):"—"}),o.jsx(ve.NumberCell,{children:y.cost!=null?Cg(y.cost,y.costUnit):"—"})]});return b?o.jsx(ve.RowLink,{to:b,LinkComponent:a,children:x},y.key):o.jsx(ve.RowStatic,{children:x},y.key)})]}):o.jsx(Ht.NoData,{message:"No resource activity yet"})})]})})]})}function TL(e,t,n){const r=e.get(t);if(r!==void 0)return r;const s=n();return e.set(t,s),s}const Iae=20;function nus(){const e=We(),{filters:t,filterKey:n}=Im();return mt({queryKey:["metrics","top-active-threads",n],queryFn:async()=>{const r={groupBy:["threadId","resourceId"],orderDirection:"DESC",filters:t},[s,a,i]=await Promise.all([e.getMetricBreakdown({...r,name:["mastra_agent_duration_ms"],aggregation:"count",limit:Iae}),e.getMetricBreakdown({...r,name:["mastra_model_total_input_tokens"],aggregation:"sum",limit:Iae}),e.getMetricBreakdown({...r,name:["mastra_model_total_output_tokens"],aggregation:"sum",limit:Iae})]),l=new Map,c=d=>TL(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 Aae=20;function rus(){const e=We(),{filters:t,filterKey:n}=Im();return mt({queryKey:["metrics","top-resources-by-threads",n],queryFn:async()=>{const r={groupBy:["resourceId"],orderDirection:"DESC",filters:t},[s,a,i]=await Promise.all([e.getMetricBreakdown({...r,name:["mastra_agent_duration_ms"],aggregation:"count_distinct",distinctColumn:"threadId",limit:Aae}),e.getMetricBreakdown({...r,name:["mastra_model_total_input_tokens"],aggregation:"sum",limit:Aae}),e.getMetricBreakdown({...r,name:["mastra_model_total_output_tokens"],aggregation:"sum",limit:Aae})]),l=new Map,c=d=>TL(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 sus(){const e=nus(),t=rus(),{getTracesHref:n}=KI(),{Link:r}=yn();return o.jsx(tus,{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 NL({label:e,value:t,prevValue:n,changePct:r,isLoading:s,isError:a}){const i=t!=null;return o.jsxs(es,{children:[o.jsx(es.Label,{children:e}),o.jsx(es.Value,{className:i?void 0:"invisible",children:i?t:"—"}),a?o.jsx(es.Error,{}):s?o.jsx(es.Loading,{}):i?r!=null?o.jsx(es.Change,{changePct:r,prevValue:n}):o.jsx(es.NoChange,{}):o.jsx(es.NoData,{})]})}function aus(){const e=We(),{filters:t,filterKey:n}=Im();return mt({queryKey:["metrics","active-resources-kpi",n],queryFn:()=>e.getMetricAggregate({name:["mastra_agent_duration_ms"],aggregation:"count_distinct",distinctColumn:"resourceId",filters:t,comparePeriod:"previous_period"})})}function ius(){const e=We(),{filters:t,filterKey:n}=Im();return mt({queryKey:["metrics","active-threads-kpi",n],queryFn:()=>e.getMetricAggregate({name:["mastra_agent_duration_ms"],aggregation:"count_distinct",distinctColumn:"threadId",filters:t,comparePeriod:"previous_period"})})}function ous(){const e=We(),{filters:t,filterKey:n}=Im();return mt({queryKey:["metrics","model-cost-kpi",n],queryFn:async()=>{const r=await e.getMetricAggregate({name:["mastra_model_total_input_tokens","mastra_model_total_output_tokens"],aggregation:"sum",filters:t,comparePeriod:"previous_period"});return{cost:r.estimatedCost??null,costUnit:r.costUnit??null,previousCost:r.previousEstimatedCost??null,costChangePercent:r.costChangePercent??null}}})}function lus(){const e=We(),{filters:t,filterKey:n}=Im();return mt({queryKey:["metrics","total-tokens-kpi",n],queryFn:async()=>{const[r,s]=await Promise.all([e.getMetricAggregate({name:["mastra_model_total_input_tokens"],aggregation:"sum",filters:t,comparePeriod:"previous_period"}),e.getMetricAggregate({name:["mastra_model_total_output_tokens"],aggregation:"sum",filters:t,comparePeriod:"previous_period"})]),a=r.value!=null||s.value!=null,i=r.previousValue!=null||s.previousValue!=null,l=(r.value??0)+(s.value??0),c=(r.previousValue??0)+(s.previousValue??0),u=i&&c>0?(l-c)/c*100:null;return{value:a?l:null,previousValue:i?c:null,changePercent:u}}})}function cus(){const{data:e,isLoading:t,isError:n}=j7t();return o.jsx(NL,{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 uus(){const{data:e,isLoading:t,isError:n}=ous();return o.jsx(NL,{label:"Total Model Cost",value:e?.cost!=null?Cg(e.cost,e.costUnit):null,prevValue:e?.previousCost!=null?Cg(e.previousCost,e.costUnit):void 0,changePct:e?.costChangePercent??null,isLoading:t,isError:n})}function dus(){const{data:e,isLoading:t,isError:n}=lus();return o.jsx(NL,{label:"Total Tokens",value:e?.value!=null?Oc(e.value):null,prevValue:e?.previousValue!=null?Oc(e.previousValue):void 0,changePct:e?.changePercent??null,isLoading:t,isError:n})}function fus(){const{data:e,isLoading:t,isError:n}=ius();return o.jsx(NL,{label:"Total Threads",value:e?.value!=null?Oc(e.value):null,prevValue:e?.previousValue!=null?Oc(e.previousValue):void 0,changePct:e?.changePercent??null,isLoading:t,isError:n})}function pus(){const{data:e,isLoading:t,isError:n}=aus();return o.jsx(NL,{label:"Total Resources",value:e?.value!=null?Oc(e.value):null,prevValue:e?.previousValue!=null?Oc(e.previousValue):void 0,changePct:e?.changePercent??null,isLoading:t,isError:n})}function hus({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=>mus(f,a));return o.jsxs("div",{className:X("grid grid-cols-[1fr_auto] gap-3 items-start"),children:[o.jsx(JNe,{fields:a,tokens:i,onTokensChange:l,disabled:s,autoFocusFieldId:c}),u&&o.jsx(KNe,{disabled:s,onClear:d?e:void 0,onRemoveAll:t,onSave:n,onRemoveSaved:r})]})}function mus(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 gus({rows:e,isLoading:t,isError:n,getRowHref:r,actions:s,LinkComponent:a}){const i=!!e&&e.length>0;return o.jsxs(Ht,{children:[o.jsxs(Ht.TopBar,{children:[o.jsx(Ht.TitleAndDescription,{title:"Model Usage & Cost",description:"Token consumption by model."}),i&&(()=>{const l=e.reduce((d,f)=>d+(f.cost??0),0),c=new Set;for(const d of e)d.cost!=null&&d.costUnit&&c.add(d.costUnit);let u;return c.size===0?u=l>0?Cg(l):"—":c.size===1?u=l>0?Cg(l,[...c][0]):"—":u="Mixed",o.jsx(Ht.Summary,{value:u,label:"Total cost"})})(),s?o.jsx(Ht.Actions,{children:s}):null]}),t?o.jsx(Ht.Loading,{}):n?o.jsx(Ht.Error,{message:"Failed to load model usage data"}):o.jsx(Ht.Content,{children:i?o.jsxs(ve,{columns:"auto auto auto auto auto auto",...mbe,children:[o.jsxs(ve.Top,{children:[o.jsx(ve.TopCell,{sticky:"start",children:"Model"}),o.jsx(ve.TopCell,{className:"justify-end text-right",children:"Input"}),o.jsx(ve.TopCell,{className:"justify-end text-right",children:"Output"}),o.jsx(ve.TopCell,{className:"justify-end text-right",children:"Cache Read"}),o.jsx(ve.TopCell,{className:"justify-end text-right",children:"Cache Write"}),o.jsx(ve.TopCell,{className:"justify-end text-right",children:"Cost"})]}),e.map(l=>{const c=r?.(l),u=o.jsxs(o.Fragment,{children:[o.jsx(ve.RowHeaderCell,{height:"compact",className:"text-ui-sm",children:l.model}),o.jsx(ve.NumberCell,{children:l.input}),o.jsx(ve.NumberCell,{children:l.output}),o.jsx(ve.NumberCell,{children:l.cacheRead}),o.jsx(ve.NumberCell,{children:l.cacheWrite}),o.jsx(ve.NumberCell,{highlight:!0,children:l.cost!=null?Cg(l.cost,l.costUnit):"—"})]});return c?o.jsx(ve.RowLink,{to:c,LinkComponent:a,children:u},l.model):o.jsx(ve.RowStatic,{children:u},l.model)})]}):o.jsx(Ht.NoData,{message:"No model usage data yet"})})]})}function vus(){const e=We(),{filters:t,filterKey:n}=Im();return mt({queryKey:["metrics","model-usage-cost",n],queryFn:async()=>{const[r,s,a,i]=await Promise.all(["mastra_model_total_input_tokens","mastra_model_total_output_tokens","mastra_model_input_cache_read_tokens","mastra_model_input_cache_write_tokens"].map(d=>e.getMetricBreakdown({name:[d],groupBy:["model"],aggregation:"sum",orderDirection:"DESC",filters:t})));if(!r||!s||!a||!i)return[];const l=new Map,c=d=>TL(l,d,()=>({input:0,output:0,cacheRead:0,cacheWrite:0,cost:null,costUnit:null})),u=(d,f)=>{f.estimatedCost!=null&&(d.cost=(d.cost??0)+f.estimatedCost,f.costUnit&&(d.costUnit=f.costUnit))};for(const d of r.groups){const f=d.dimensions.model??"unknown",p=c(f);p.input=d.value,u(p,d)}for(const d of s.groups){const f=d.dimensions.model??"unknown",p=c(f);p.output=d.value,u(p,d)}for(const d of a.groups){const f=d.dimensions.model??"unknown",p=c(f);p.cacheRead=d.value}for(const d of i.groups){const f=d.dimensions.model??"unknown",p=c(f);p.cacheWrite=d.value}return Array.from(l.entries()).map(([d,f])=>({model:d,input:Oc(f.input),output:Oc(f.output),cacheRead:Oc(f.cacheRead),cacheWrite:Oc(f.cacheWrite),cost:f.cost,costUnit:f.costUnit})).sort((d,f)=>d.model.localeCompare(f.model))}})}function yus(){const{data:e,isLoading:t,isError:n}=vus(),{getTracesHref:r}=KI(),{Link:s}=yn();return o.jsx(gus,{rows:e,isLoading:t,isError:n,LinkComponent:s,getRowHref:()=>r({rootEntityType:au.AGENT}),actions:o.jsx(jL,{href:r({rootEntityType:au.AGENT}),LinkComponent:s})})}function bus(e){return e==="tokens"||e==="cost"}function xus({data:e,isLoading:t,isError:n,getRowHref:r,actions:s,LinkComponent:a}){const[i,l]=v.useState("tokens"),c=e??[],u=c.length>0,d=c.reduce((b,x)=>b+x.total,0),f=c.filter(b=>b.cost!=null&&b.cost>0),p=new Set(f.map(b=>b.costUnit??"usd")),h=p.size<=1,m=h?[...p][0]??"usd":null,g=h?f.reduce((b,x)=>b+(x.cost??0),0):0,y=h&&g>0;return o.jsxs(Ht,{children:[o.jsxs(Ht.TopBar,{children:[o.jsx(Ht.TitleAndDescription,{title:"Token Usage by Agent",description:"Token consumption grouped by agent."}),u&&(i==="cost"&&y?o.jsx(Ht.Summary,{value:Cg(g,m),label:"Total cost"}):o.jsx(Ht.Summary,{value:Oc(d),label:"Total tokens"})),u&&s?o.jsx(Ht.Actions,{children:s}):null]}),t?o.jsx(Ht.Loading,{}):n?o.jsx(Ht.Error,{message:"Failed to load token usage data"}):o.jsx(Ht.Content,{children:u?o.jsxs(Dc,{defaultTab:"tokens",value:i,onValueChange:b=>{bus(b)&&l(b)},className:"grid h-full grid-rows-[auto_1fr] overflow-y-auto",children:[o.jsxs(Mc,{children:[o.jsx(Rr,{value:"tokens",children:"Tokens"}),o.jsx(Rr,{value:"cost",children:"Cost"})]}),o.jsx(Xr,{value:"tokens",children:o.jsx(RN,{LinkComponent:a,data:c.map(b=>({name:b.name,values:[b.input,b.output],href:r?.(b)})),segments:[{label:"Input",color:Fp.blueDark},{label:"Output",color:Fp.blue}],maxVal:Math.max(...c.map(b=>b.input+b.output)),fmt:Oc})}),o.jsx(Xr,{value:"cost",children:y?o.jsx(RN,{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:Fp.purple}],maxVal:Math.max(...f.map(b=>b.cost??0)),fmt:b=>Cg(b,m)}):o.jsx(Ht.NoData,{message:"No cost data yet"})})]}):o.jsx(Ht.NoData,{message:"No token usage data yet"})})]})}function wus(){const e=We(),{filters:t,filterKey:n}=Im();return mt({queryKey:["metrics","token-usage-by-agent",n],queryFn:async()=>{const r={groupBy:["entityName"],aggregation:"sum",orderDirection:"DESC",filters:t},[s,a]=await Promise.all([e.getMetricBreakdown({...r,name:["mastra_model_total_input_tokens"]}),e.getMetricBreakdown({...r,name:["mastra_model_total_output_tokens"]})]),i=new Map,l=u=>TL(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 Sus(){const{data:e,isLoading:t,isError:n}=wus(),{getTracesHref:r}=KI(),{Link:s}=yn();return o.jsx(xus,{data:e,isLoading:t,isError:n,LinkComponent:s,getRowHref:a=>r({rootEntityType:au.AGENT,entityName:a.name}),actions:o.jsx(jL,{href:r({rootEntityType:au.AGENT}),LinkComponent:s})})}function Sbe(e,t=Oc){return n=>({value:t(n.reduce((r,s)=>r+(typeof s[e]=="number"?s[e]:0),0))})}const kus=[{dataKey:"input",label:"Input tokens",color:Fp.blue,aggregate:Sbe("input")},{dataKey:"output",label:"Output tokens",color:Fp.yellow,aggregate:Sbe("output")}];function Ous(e){return e==="tokens"||e==="cost"}function _us({data:e,interval:t="1d",isLoading:n,isError:r,actions:s}){const[a,i]=v.useState("tokens"),l=e??[],c=l.map(k=>({...k})),u=l.length>0,d=l.reduce((k,_)=>k+_.total,0),f=l.filter(k=>k.cost!=null&&k.cost>0),p=f.map(k=>({...k})),h=new Set(f.map(k=>k.costUnit).filter(k=>!!k)),m=h.size===1&&f.every(k=>k.costUnit!=null),g=m?[...h][0]??null:null,y=m?f.reduce((k,_)=>k+(_.cost??0),0):0,b=m&&y>0,x=t==="1h"?"Input and output tokens per hour.":"Input and output tokens per day.",S=[{dataKey:"cost",label:"Cost",color:Fp.purple,aggregate:Sbe("cost",k=>Cg(k,g))}];return o.jsxs(Ht,{children:[o.jsxs(Ht.TopBar,{children:[o.jsx(Ht.TitleAndDescription,{title:"Token usage over time",description:x}),u&&(a==="cost"&&b?o.jsx(Ht.Summary,{value:Cg(y,g),label:"Total cost"}):o.jsx(Ht.Summary,{value:Oc(d),label:"Total tokens"})),u&&s?o.jsx(Ht.Actions,{children:s}):null]}),n?o.jsx(Ht.Loading,{}):r?o.jsx(Ht.Error,{message:"Failed to load token usage timeline"}):o.jsx(Ht.Content,{children:u?o.jsxs(Dc,{defaultTab:"tokens",value:a,onValueChange:k=>{Ous(k)&&i(k)},className:"overflow-visible",children:[o.jsxs(Mc,{children:[o.jsx(Rr,{value:"tokens",children:"Tokens"}),o.jsx(Rr,{value:"cost",children:"Cost"})]}),o.jsx(Xr,{value:"tokens",children:o.jsx(AV,{data:c,series:kus})}),o.jsx(Xr,{value:"cost",children:b?o.jsx(AV,{data:p,series:S}):o.jsx(Ht.NoData,{message:"No cost data yet"})})]}):o.jsx(Ht.NoData,{message:"No token usage data yet"})})]})}function Cus(e){return e==="24h"?"1h":"1d"}function Eus(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 NXe(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 jus(e){return e.cost==null||e.hasUnknownCostUnit||e.costUnits.size!==1?null:[...e.costUnits][0]??null}function Tus(){const e=We(),{datePreset:t,filters:n,filterKey:r}=Im(),s=Cus(t);return mt({queryKey:["metrics","token-usage-timeseries",r,s],queryFn:async()=>{const[a,i]=await Promise.all([e.getMetricTimeSeries({name:["mastra_model_total_input_tokens"],interval:s,aggregation:"sum",filters:n}),e.getMetricTimeSeries({name:["mastra_model_total_output_tokens"],interval:s,aggregation:"sum",filters:n})]),l=new Map;return NXe(l,a.series[0],"input"),NXe(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:Eus(d,s),tsMs:u.tsMs,input:u.input,output:u.output,total:u.input+u.output,cost:u.cost,costUnit:jus(u)}}),interval:s}}})}function Nus(){const{data:e,isLoading:t,isError:n}=Tus(),{getTracesHref:r}=KI(),{Link:s}=yn();return o.jsx(_us,{data:e?.data,interval:e?.interval,isLoading:t,isError:n,actions:o.jsx(jL,{href:r(),LinkComponent:s})})}function Rae({data:e,rowHrefs:t,errorHrefs:n,LinkComponent:r}){return o.jsx(RN,{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:Fp.blueDark},{label:"Errors",color:Fp.pink}],maxVal:Math.max(...e.map(s=>s.completed+s.errors)),fmt:Oc})}function Ius({data:e,isLoading:t,isError:n,getRowHref:r,getErrorSegmentHref:s,actions:a,LinkComponent:i}){const[l,c]=v.useState("agents"),u=typeof a=="function"?a(l):a,d=!!e&&(e.agentData.length>0||e.workflowData.length>0||e.toolData.length>0),f=e?[...e.agentData,...e.workflowData,...e.toolData].reduce((m,g)=>m+g.completed+g.errors,0):0,p=m=>r?g=>r(m,g):void 0,h=m=>s?g=>s(m,g):void 0;return o.jsxs(Ht,{children:[o.jsxs(Ht.TopBar,{children:[o.jsx(Ht.TitleAndDescription,{title:"Trace Volume",description:"Runs and call counts."}),d&&o.jsx(Ht.Summary,{value:Oc(f),label:"Total runs"}),u?o.jsx(Ht.Actions,{children:u}):null]}),t?o.jsx(Ht.Loading,{}):n?o.jsx(Ht.Error,{message:"Failed to load trace volume data"}):o.jsx(Ht.Content,{children:d?o.jsxs(Dc,{value:l,onValueChange:c,defaultTab:"agents",className:"grid h-full grid-rows-[auto_1fr] overflow-y-auto",children:[o.jsxs(Mc,{children:[o.jsx(Rr,{value:"agents",children:"Agents"}),o.jsx(Rr,{value:"workflows",children:"Workflows"}),o.jsx(Rr,{value:"tools",children:"Tools"})]}),o.jsx(Xr,{value:"agents",children:e.agentData.length>0?o.jsx(Rae,{data:e.agentData,rowHrefs:p("agents"),errorHrefs:h("agents"),LinkComponent:i}):o.jsx(Ht.NoData,{message:"No agent data yet"})}),o.jsx(Xr,{value:"workflows",children:e.workflowData.length>0?o.jsx(Rae,{data:e.workflowData,rowHrefs:p("workflows"),errorHrefs:h("workflows"),LinkComponent:i}):o.jsx(Ht.NoData,{message:"No workflow data yet"})}),o.jsx(Xr,{value:"tools",children:e.toolData.length>0?o.jsx(Rae,{data:e.toolData,rowHrefs:p("tools"),errorHrefs:h("tools"),LinkComponent:i}):o.jsx(Ht.NoData,{message:"No tool data yet"})})]}):o.jsx(Ht.NoData,{message:"No trace volume data yet"})})]})}async function Pae(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=TL(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 Aus(){const e=We(),{filters:t,filterKey:n}=Im();return mt({queryKey:["metrics","trace-volume",n],queryFn:async()=>{const[r,s,a]=await Promise.all([Pae(e,"mastra_agent_duration_ms",t),Pae(e,"mastra_workflow_duration_ms",t),Pae(e,"mastra_tool_duration_ms",t)]);return{agentData:r,workflowData:s,toolData:a}}})}const Fz={agents:au.AGENT,workflows:au.WORKFLOW_RUN,tools:au.TOOL};function Rus(){const{data:e,isLoading:t,isError:n}=Aus(),{getTracesHref:r,getLogsHref:s}=KI(),{Link:a}=yn();return o.jsx(Ius,{data:e,isLoading:t,isError:n,LinkComponent:a,getRowHref:(i,l)=>r({rootEntityType:Fz[i],entityName:l.name}),getErrorSegmentHref:(i,l)=>l.errors>0?s({rootEntityType:Fz[i],entityName:l.name,status:"error"}):void 0,actions:i=>o.jsxs(o.Fragment,{children:[o.jsx(jL,{href:r({rootEntityType:Fz[i]}),LinkComponent:a}),o.jsx(Hcs,{href:s({rootEntityType:Fz[i],status:"error"}),LinkComponent:a})]})})}const $ae="period",zz="dateFrom",Bz="dateTo";function Pus(){const[e,t]=Ri(),n=e.get($ae),r=Pcs(n)?n:"24h",s=v.useMemo(()=>{if(r!=="custom")return;const d=h=>{if(!h)return;const m=new Date(h);return Number.isNaN(m.getTime())?void 0:m},f=d(e.get(zz)),p=d(e.get(Bz));if(!(!f&&!p))return{from:f,to:p}},[r,e.toString()]),a=v.useMemo(()=>Ecs(e),[e.toString()]),i=v.useCallback(d=>{t(f=>{const p=new URLSearchParams(f);return d==="24h"?p.delete($ae):p.set($ae,d),d!=="custom"&&(p.delete(zz),p.delete(Bz)),p},{replace:!0})},[t]),l=v.useCallback(d=>{t(f=>{const p=new URLSearchParams(f);return d?.from?p.set(zz,d.from.toISOString()):p.delete(zz),d?.to?p.set(Bz,d.to.toISOString()):p.delete(Bz),p},{replace:!0})},[t]),c=v.useCallback(d=>{t(f=>{const p=new URLSearchParams(f);return Tcs(p,d),p},{replace:!0})},[t]),u=v.useRef(!1);return v.useEffect(()=>{if(u.current||(u.current=!0,_cs(e)))return;const d=_7t();d&&t(f=>{const p=new URLSearchParams(f);for(const[h,m]of d)p.append(h,m);return p},{replace:!0})},[]),o.jsx(Mcs,{preset:r,filterTokens:a,onPresetChange:i,onFilterTokensChange:c,customRange:s,onCustomRangeChange:l,children:o.jsx($us,{})})}function $us(){const[e]=Ri(),{error:t,isLoading:n}=j7t(),{filterTokens:r,setFilterTokens:s}=aQ(),[a,i]=v.useState(),{supportsMetrics:l,isInMemory:c,isLoading:u}=qcs(),{data:d,isLoading:f}=uIe(),{data:p,isLoading:h}=oIe(),{data:m,isLoading:g}=cIe(),{data:y,isLoading:b}=lIe(),x=v.useMemo(()=>Ccs({availableTags:d??[],availableEntityNames:p??[],availableServiceNames:m??[],availableEnvironments:y??[],loading:{tags:f,entityNames:h,serviceNames:g,environments:b}}),[d,p,m,y,f,h,g,b]),[S,k]=v.useState(()=>_7t()!==null),_=v.useCallback(()=>{kcs(e),k(!0),Le.success("Filters setting for Metrics saved")},[e]),C=v.useCallback(()=>{Ocs(),k(!1),Le.success("Filters setting for Metrics cleared up")},[]),E=v.useCallback(()=>{s([])},[s]),j=v.useCallback(()=>{const N=r.map(I=>{const A=x.find(R=>R.id===I.fieldId);return A?A.kind==="text"?{fieldId:I.fieldId,value:""}:A.kind==="pick-multi"?A.multi?{fieldId:I.fieldId,value:[]}:{fieldId:I.fieldId,value:"Any"}:A.kind==="multi-select"?{fieldId:I.fieldId,value:[]}:I:I});s(N)},[x,r,s]);return t&&ys(t)?o.jsx(lr,{children:o.jsx(Hs,{})}):t&&xs(t)?o.jsx(lr,{children:o.jsx(Ms,{resource:"metrics"})}):t?o.jsx(lr,{children:o.jsx(qi,{title:"Failed to load metrics",message:t.message})}):o.jsxs(Ft,{width:"wide",height:"full",children:[o.jsxs(Ft.TopArea,{children:[o.jsx(Ft.Row,{children:o.jsxs(Ft.Column,{className:"flex flex-wrap items-start justify-start gap-2",children:[o.jsx(zcs,{}),o.jsx(eIe,{fields:x,tokens:r,onTokensChange:s,disabled:n,onStartTextFilter:i})]})}),o.jsx(hus,{isLoading:n,filterFields:x,filterTokens:r,onFilterTokensChange:s,onClear:j,onRemoveAll:E,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(En,{variant:"info",title:"Metrics are not persisted",children:o.jsx(En.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(gbe,{children:[o.jsx(cus,{}),o.jsx(uus,{}),o.jsx(dus,{}),o.jsx(fus,{}),o.jsx(pus,{})]}),o.jsxs(gbe,{children:[o.jsx(yus,{}),o.jsx(Sus,{}),o.jsx(Nus,{}),o.jsx(sus,{}),o.jsx(Rus,{}),o.jsx(Jcs,{})]})]}):o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Lr,{iconSlot:o.jsx(Nf,{}),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(Sa,{})]})})})]})}function Mus(){const{paths:e}=yn(),{data:t,isLoading:n,error:r}=a8t(),{isCmsAvailable:s}=X1(),[a,i]=v.useState(""),l=t?.promptBlocks??[];return r&&ys(r)?o.jsx(lr,{children:o.jsx(Hs,{})}):r&&xs(r)?o.jsx(lr,{children:o.jsx(Ms,{resource:"prompt blocks"})}):r?o.jsx(lr,{children:o.jsx(qi,{title:"Failed to load prompt blocks",message:r.message})}):l.length===0&&!n?o.jsx(lr,{children:o.jsx(XXr,{})}):o.jsxs(Ft,{children:[o.jsx(Ft.TopArea,{children:o.jsxs(Ft.Row,{align:"center",stack:"responsive",children:[o.jsx("div",{className:"max-w-120 flex-1",children:o.jsx($f,{onSearch:i,label:"Filter prompts",placeholder:"Filter by name or description"})}),s&&o.jsxs(oe,{as:Fa,to:e.cmsPromptBlockCreateLink(),variant:"primary",className:"shrink-0",children:[o.jsx(Zr,{}),"Create Prompt"]})]})}),o.jsx(KXr,{promptBlocks:l,isLoading:n,search:a})]})}function Dus(){return o.jsx(Ft,{width:"narrow",children:o.jsx(Ft.MainArea,{children:o.jsx(NQr,{children:o.jsx(Wye,{})})})})}const Lus=[{title:"Mastra APIs",description:"Explore and test the available REST API endpoints with the interactive Swagger UI.",icon:YHt,href:"/swagger-ui",external:!1},{title:"Documentation",description:"Read the official Mastra documentation for guides, references, and tutorials.",icon:oit,href:"https://mastra.ai/en/docs",external:!0},{title:"Github",description:"Browse the source code, report issues, and contribute to the Mastra project.",icon:Sa,href:"https://github.com/mastra-ai/mastra",external:!0},{title:"Community",description:"Join the Mastra Discord community for help, discussion, and collaboration.",icon:fT,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:mit,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:lit,href:"https://mastra.ai/contact?ref=studio",external:!0}];function Fus(){return o.jsx(Ft,{width:"narrow",children:o.jsx(Ft.MainArea,{children:o.jsx("div",{className:"grid max-w-3xl grid-cols-1 gap-4 sm:grid-cols-2",children:Lus.map(e=>o.jsxs("a",{href:e.href,...e.external?{target:"_blank",rel:"noreferrer"}:{},className:"group border-border1 bg-surface2 hover:border-accent1 hover:bg-surface3 flex flex-col gap-3 rounded-lg border p-5 transition-colors",children:[o.jsxs("div",{className:"flex items-center gap-2.5",children:[o.jsx(e.icon,{className:"text-icon3 group-hover:text-accent1 h-5 w-5 transition-colors"}),o.jsx("span",{className:"text-ui-md text-text1 font-medium",children:e.title}),e.external&&o.jsx(Sa,{className:"text-icon3 ml-auto h-3.5 w-3.5 opacity-0 transition-opacity group-hover:opacity-100"})]}),o.jsx("p",{className:"text-ui-sm text-text3 leading-relaxed",children:e.description})]},e.href))})})})}function zus(){const{data:e={},isLoading:t,error:n}=ih(),[r,s]=v.useState(""),[a,i]=v.useState("all");if(n&&ys(n))return o.jsx(lr,{children:o.jsx(Hs,{})});if(n&&xs(n))return o.jsx(lr,{children:o.jsx(Ms,{resource:"scorers"})});if(n)return o.jsx(lr,{children:o.jsx(qi,{title:"Failed to load scorers",message:n.message})});if(Object.keys(e).length===0&&!t)return o.jsx(lr,{children:o.jsx(aKr,{})});const l=a!=="all"||r!=="",c=()=>{s(""),i("all")};return o.jsxs(Ft,{children:[o.jsx(Ft.TopArea,{children:o.jsx(oKr,{search:r,onSearchChange:s,sourceFilter:a,onSourceFilterChange:i,onReset:c,hasActiveFilters:l})}),o.jsx(sKr,{scorers:e,isLoading:t,search:r,sourceFilter:a})]})}function Bus(){const{scorerId:e}=Sr(),[t,n]=Ri(),r=t.get("scoreId")??void 0,[s,a]=v.useState(r),[i,l]=v.useState({value:"all",label:"All Entities",type:"ALL"}),{scorer:c,error:u}=$Yr(e),{data:d={},isLoading:f,error:p}=Em(),{isLoading:h,error:m}=Wy(),{data:g=[],isLoading:y,error:b,isFetchingNextPage:x,hasNextPage:S,setEndOfListElement:k}=PYr({scorerId:e,entityId:i?.value==="all"?void 0:i?.value,entityType:i?.type==="ALL"?void 0:i?.type}),_=v.useMemo(()=>c?.agentIds?.filter(q=>d[q]).map(q=>({value:q,label:d[q].name,type:"AGENT"}))||[],[c?.agentIds,d]),C=v.useMemo(()=>c?.workflowIds?.map(q=>({value:q,label:q,type:"WORKFLOW"}))||[],[c?.workflowIds]),E=v.useMemo(()=>[{value:"all",label:"All Entities",type:"ALL"},..._,...C],[_,C]),j=t.get("entity")??"all",N=E.find(q=>q.value===j);N&&N.value!==i?.value&&l(N),v.useEffect(()=>{if(u){const q=u instanceof Error?u.message:"Failed to load scorer";Le.error(`Error loading scorer: ${q}`)}},[u]),v.useEffect(()=>{if(p){const q=p instanceof Error?p.message:"Failed to load agents";Le.error(`Error loading agents: ${q}`)}},[p]),v.useEffect(()=>{if(m){const q=m instanceof Error?m.message:"Failed to load workflows";Le.error(`Error loading workflows: ${q}`)}},[m]);const I=q=>{q?.value&&n(M=>{const G=new URLSearchParams(M);return G.set("entity",q.value),G})};v.useEffect(()=>{const q=t.get("scoreId")??void 0;if(q===s)return;if(!q){a(void 0);return}g.find(G=>G.id===q)&&a(q)},[t,g]);const A=v.useCallback(q=>{a(q||void 0),n(M=>{const G=new URLSearchParams(M);return q?G.set("scoreId",q):G.delete("scoreId"),G})},[n]);if(!c)return null;const R=ys(u)||ys(p)||ys(m),L=u&&xs(u),D=!R&&!L&&(u||p||m),B=!y&&g.length===0,H=i?.value!=="all",F=c?.scorer?.source==="stored"?o.jsx(My,{owner:"scorer-detail",children:o.jsxs(oe,{variant:"default",as:Fa,to:`/cms/scorers/${e}/edit`,size:"sm",children:[o.jsx(rm,{})," Edit"]})}):null;if(R||L||D||B&&!H){const q=(u instanceof Error?u.message:void 0)??(p instanceof Error?p.message:void 0)??(m instanceof Error?m.message:void 0)??"An unexpected error occurred";return o.jsxs(Ft,{width:"wide",height:"full",children:[F,o.jsx(Ft.MainArea,{isCentered:!0,children:R?o.jsx(Hs,{}):L?o.jsx(Ms,{resource:"scorers"}):D?o.jsx(qi,{title:"Failed to load scorer",message:q}):o.jsx(EYr,{})})]})}return o.jsxs(Ft,{width:"wide",children:[F,o.jsx(Ft.TopArea,{children:o.jsx(jYr,{selectedEntity:i,entityOptions:E,onEntityChange:I,onReset:()=>{n(q=>{const M=new URLSearchParams(q);return M.set("entity","all"),M})},isLoading:y||f||h})}),o.jsx(CYr,{scores:g,isLoading:y,selectedScoreId:s,isFetchingNextPage:x,hasNextPage:S,setEndOfListElement:k,onScoreClick:A,errorMsg:b?.message})]})}function Uus({label:e,description:t,htmlFor:n,className:r,children:s}){return o.jsxs("div",{className:X("flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",r),"data-slot":"settings-row",children:[o.jsxs("div",{children:[n?o.jsx(Dt,{htmlFor:n,className:"text-sm font-medium",children:e}):o.jsx("p",{className:"text-sm font-medium",children:e}),t&&o.jsx("p",{className:"text-neutral3 text-sm",children:t})]}),s]})}const A7t=[{value:"dark",label:"Dark",Icon:TZt},{value:"light",label:"Light",Icon:BGt},{value:"system",label:"System",Icon:Sit}],Vus=e=>A7t.some(t=>t.value===e);function qus({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 Hus=()=>{const{baseUrl:e,headers:t,apiPrefix:n}=Xq(),{theme:r,setTheme:s}=U_();return o.jsx(Ft,{width:"narrow",children:o.jsxs(Ft.MainArea,{className:"mt-6 flex flex-col gap-5",children:[o.jsx(Tye,{title:"Theme",description:"Customize the appearance of the studio.",children:o.jsx(Uus,{label:"Theme mode",htmlFor:"theme",children:o.jsxs(oa,{value:r,onValueChange:a=>{Vus(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:A7t.map(a=>o.jsx(Ar,{value:a.value,children:o.jsx(qus,{option:a})},a.value))})]})})}),o.jsx(Tye,{title:"Mastra Connection",description:"Configure the Mastra instance URL, API prefix, and request headers used by the studio.",children:o.jsx(G$t,{initialConfig:{baseUrl:e,headers:t,apiPrefix:n}})})]})})};function Wus(){const[e]=Ri(),t=qs(),n=e.get("redirect")||"/",r=()=>{n.startsWith("http")?window.location.href=n:t(n,{replace:!0})};return o.jsx(S7t,{redirectUri:n,onSuccess:r,initialMode:"signup"})}const R7t=e=>o.jsxs("svg",{width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:[o.jsx("g",{clipPath:"url(#clip0_21999_22095)",children:o.jsx("path",{d:"M7.5 0.75C3.6325 0.75 0.5 3.8825 0.5 7.75C0.5 10.8475 2.50375 13.4637 5.28625 14.3912C5.63625 14.4525 5.7675 14.2425 5.7675 14.0587C5.7675 13.8925 5.75875 13.3412 5.75875 12.755C4 13.0787 3.545 12.3262 3.405 11.9325C3.32625 11.7312 2.985 11.11 2.6875 10.9437C2.4425 10.8125 2.0925 10.4887 2.67875 10.48C3.23 10.4712 3.62375 10.9875 3.755 11.1975C4.385 12.2562 5.39125 11.9587 5.79375 11.775C5.855 11.32 6.03875 11.0137 6.24 10.8387C4.6825 10.6637 3.055 10.06 3.055 7.3825C3.055 6.62125 3.32625 5.99125 3.7725 5.50125C3.7025 5.32625 3.4575 4.60875 3.8425 3.64625C3.8425 3.64625 4.42875 3.4625 5.7675 4.36375C6.3275 4.20625 6.9225 4.1275 7.5175 4.1275C8.1125 4.1275 8.7075 4.20625 9.2675 4.36375C10.6062 3.45375 11.1925 3.64625 11.1925 3.64625C11.5775 4.60875 11.3325 5.32625 11.2625 5.50125C11.7087 5.99125 11.98 6.6125 11.98 7.3825C11.98 10.0687 10.3438 10.6637 8.78625 10.8387C9.04 11.0575 9.25875 11.4775 9.25875 12.1337C9.25875 13.07 9.25 13.8225 9.25 14.0587C9.25 14.2425 9.38125 14.4612 9.73125 14.3912C11.1209 13.9221 12.3284 13.029 13.1839 11.8377C14.0393 10.6463 14.4996 9.21668 14.5 7.75C14.5 3.8825 11.3675 0.75 7.5 0.75Z",fill:"currentColor"})}),o.jsx("defs",{children:o.jsx("clipPath",{id:"clip0_21999_22095",children:o.jsx("rect",{width:"14",height:"14",fill:"currentColor",transform:"translate(0.5 0.75)"})})})]});function Zus(e){return e.replace(/\/$/,"").split("/").pop()}function iQ({children:e,className:t}){return o.jsx("div",{className:X("border border-border1 rounded-lg mt-12 py-8 lg:min-h-[25rem] transition-height px-4 lg:px-12",t),children:e})}function Gus({templates:e,linkComponent:t,className:n,isLoading:r}){const s=t||"a";return r?o.jsx("div",{className:X("grid gap-y-4",n),children:Array.from({length:5}).map((a,i)=>o.jsx("div",{className:"bg-surface3 h-16 animate-pulse rounded-lg"},i))}):o.jsx("div",{className:X("grid gap-y-4",n),children:e.map(a=>{const i=a?.agents||a?.tools||a?.networks||a?.workflows||a?.mcp;return o.jsxs("article",{className:X("border border-border1 rounded-lg overflow-hidden w-full grid grid-cols-[1fr_auto] bg-surface3 transition-colors hover:bg-surface4"),children:[o.jsxs(s,{to:`/templates/${a.slug}`,className:X("grid [&:hover_p]:text-neutral5",{"grid-cols-[8rem_1fr] lg:grid-cols-[12rem_1fr]":a.imageURL}),children:[a.imageURL&&o.jsx("div",{className:X("overflow-hidden"),children:o.jsx("div",{className:"thumb transition-scale h-full w-full bg-cover duration-150",style:{backgroundImage:`url(${a.imageURL})`}})}),o.jsxs("div",{className:X("grid py-3 px-6 w-full gap-0.5","[&_svg]:w-[1em] [&_svg]:h-[1em] [&_svg]:text-neutral3"),children:[o.jsx("h2",{className:"text-ui-lg text-neutral5",children:a.title}),o.jsx("p",{className:"text-ui-md text-neutral4 transition-colors duration-500",children:a.description}),o.jsxs("div",{className:"text-neutral3 text-ui-md mt-3 hidden flex-wrap items-center gap-4 2xl:flex",children:[i&&o.jsxs("ul",{className:X("flex gap-4 text-ui-md text-neutral3 m-0 p-0 list-none","[&>li]:flex [&>li]:items-center [&>li]:gap-0.5 text-neutral4"),children:[a?.agents&&a.agents.length>0&&o.jsxs("li",{children:[o.jsx(Uo,{})," ",a.agents.length]}),a?.tools&&a.tools.length>0&&o.jsxs("li",{children:[o.jsx(Ld,{})," ",a.tools.length]}),a?.networks&&a.networks.length>0&&o.jsxs("li",{children:[o.jsx(kit,{})," ",a.networks.length]}),a?.workflows&&a.workflows.length>0&&o.jsxs("li",{children:[o.jsx(RD,{})," ",a.workflows.length]}),a?.mcp&&a.mcp.length>0&&o.jsxs("li",{children:[o.jsx(mC,{})," ",a.mcp.length]})]}),i&&a.supportedProviders&&o.jsx("small",{children:"|"}),o.jsx("div",{className:"text-neutral3 flex items-center gap-4",children:a.supportedProviders.map(l=>o.jsx("span",{className:"",children:l},l))})]})]})]}),o.jsx("a",{href:a.githubUrl,className:X("group items-center gap-2 text-ui-md ml-auto pr-4 hidden","lg:flex"),target:"_blank",rel:"noopener noreferrer",children:o.jsxs("span",{className:"bg-surface1 group-hover:bg-surface2 text-neutral3 group-hover:text-neutral5 flex items-center gap-2 rounded px-2 py-1 transition-colors",children:[o.jsx(R7t,{})," ",Zus(a.githubUrl)]})})]},a.slug)})})}function Qus({tagOptions:e,selectedTag:t,providerOptions:n,selectedProvider:r,onTagChange:s,onProviderChange:a,searchTerm:i,onSearchChange:l,onReset:c,className:u,isLoading:d}){return d?o.jsxs("div",{className:X("h-[6.5rem] flex items-center gap-8","[&>div]:bg-surface3 [&>div]:w-48 [&>div]:h-8 [&>div]:animate-pulse",u),children:[o.jsx("div",{})," ",o.jsx("div",{})," ",o.jsx("div",{})]}):o.jsxs("div",{className:X("flex flex-wrap mx-auto sticky top-0 gap-4 bg-surface2 py-8",u),children:[o.jsx(yN,{name:"search-templates",label:"Search templates",labelIsHidden:!0,value:i,onChange:f=>l?.(f.target.value),placeholder:"Search Template"}),o.jsx(Cc,{label:"Filter by tag",labelIsHidden:!0,name:"filter-tag",value:t,onValueChange:s,options:e}),o.jsx(Cc,{label:"Filter by provider",labelIsHidden:!0,name:"filter-provider",value:r,onValueChange:a,options:n}),c&&o.jsxs(oe,{onClick:c,children:["Reset ",o.jsx(bs,{})]})]})}function Yus(){const{data:e,isLoading:t}=XJn(),{templates:n,tags:r,providers:s}=e??{templates:[],tags:[],providers:[]},[a,i]=v.useState("all"),[l,c]=v.useState("all"),[u,d]=v.useState(""),f=[{value:"all",label:"Any tag"}];(r||[]).forEach(x=>{f.push({value:x,label:x})});const p=[{value:"all",label:"Any provider"}];(s||[]).forEach(x=>{p.push({value:x,label:x})});const h=(x,S)=>{S==="tag"?i(x):S==="provider"&&c(x)},m=x=>{d(x)},g=()=>{i("all"),c("all"),d("")},y=n.filter(x=>!(u&&!x.title.toLowerCase().includes(u)&&!x.description.toLowerCase().includes(u)||a!=="all"&&!x.tags.includes(a)||l!=="all"&&!x.supportedProviders.includes(l))),b=u||a!=="all"||l!=="all";return o.jsxs(ds,{children:[o.jsx($we,{children:o.jsxs(Igt,{children:[o.jsx(qe,{children:o.jsx(Xv,{})}),"Templates"]})}),o.jsxs("div",{className:X("overflow-y-auto w-full h-full px-8 pb-12 z-10"),children:[o.jsx(Qus,{selectedTag:a,onTagChange:x=>h(x,"tag"),tagOptions:f,selectedProvider:l,onProviderChange:x=>h(x,"provider"),providerOptions:p,searchTerm:u,onSearchChange:m,onReset:b?g:void 0,className:"max-w-[80rem]",isLoading:t}),o.jsx(Gus,{templates:y,linkComponent:Fa,className:"mx-auto max-w-[80rem]",isLoading:t})]})]})}const Kus="1.55.0-alpha.3";function Xus({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(yf,{className:"text-yellow-500"}),title:"Template Installed with Warnings"}:{icon:o.jsx(_Wt,{}),title:"Template Installation Failed"},{icon:l,title:c}=i();return o.jsxs(iQ,{className:"text-neutral3 mb-8 content-center space-y-4",children:[o.jsxs("div",{className:X("grid items-center justify-items-center gap-4 content-center","[&>svg]:w-8 [&>svg]:h-8"),children:[l,o.jsxs("div",{className:"space-y-2 text-center",children:[o.jsx("p",{className:"text-ui-md text-neutral5 font-medium",children:c}),o.jsx("p",{className:"text-ui-md text-neutral3",children:a()})]})]}),t&&t.length>0&&o.jsxs("details",{className:"text-xs",children:[o.jsxs("summary",{className:"text-neutral3 hover:text-neutral4 cursor-pointer text-center select-none",children:["Show Validation Issues (",t.length,")"]}),o.jsx("div",{className:"mt-4 max-h-60 space-y-2 overflow-auto rounded bg-gray-100 p-3 text-left text-xs dark:bg-gray-800",children:t.map((u,d)=>o.jsxs("div",{className:"border-l-2 border-red-400 pl-2",children:[o.jsx("div",{className:"font-medium text-red-600 dark:text-red-400",children:u.type==="typescript"?"🔴 TypeScript Error":"⚠️ Lint Error"}),o.jsx("div",{className:"mt-1 font-mono text-xs wrap-break-word whitespace-pre-wrap text-gray-700 dark:text-gray-300",children:u.message})]},d))})]}),n&&!s&&o.jsxs("details",{className:"text-xs",children:[o.jsx("summary",{className:"text-neutral3 hover:text-neutral4 cursor-pointer text-center select-none",children:"Show Details"}),o.jsx("div",{className:"mt-4 max-h-60 overflow-auto rounded bg-gray-100 p-3 text-left font-mono text-xs dark:bg-gray-800",children:o.jsx("div",{className:"wrap-break-word whitespace-pre-wrap",children:n})})]})]})}function Jus({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(iQ,{children:o.jsxs("div",{className:"mx-auto my-4 grid max-w-[40rem] gap-8 p-4 lg:p-8",children:[o.jsxs("h2",{className:X("text-neutral4 text-header-sm font-semibold flex items-center gap-2","[&>svg]:w-[1.2em] [&_svg]:h-[1.2em] [&_svg]:opacity-70"),children:["Install Template ",o.jsx(Oit,{})]}),o.jsx(Cc,{name:"template-provider",options:e,label:"Template AI Model Provider",onValueChange:n,value:t,placeholder:"Select",layout:"horizontal"}),t&&Object.entries(r||{}).length>0&&o.jsxs(o.Fragment,{children:[o.jsx("h3",{className:"text-neutral3 text-ui-md",children:"Set required Environmental Variables"}),o.jsx("div",{className:"grid grid-cols-[1fr_1fr] items-start gap-4",children:l?o.jsxs("div",{className:X("flex items-center justify-center col-span-2 text-neutral3 text-ui-sm gap-4","[&_svg]:opacity-50 [&_svg]:w-[1.1em] [&_svg]:h-[1.1em]","animate-in fade-in duration-300"),children:[o.jsx(Xt,{})," Loading variables..."]}):Object.entries(r).map(([p,h])=>o.jsxs(v.Fragment,{children:[o.jsx(CO,{name:`env-${p}`,labelIsHidden:!0,label:"Key",value:p,disabled:!0,className:"w-full"}),o.jsx(CO,{name:p,labelIsHidden:!0,label:"Value",value:h,onChange:i,errorMsg:s.includes(p)?"Value is required.":"",autoComplete:"off",className:"w-full"})]},p))}),o.jsxs("div",{className:"border-border1 relative mt-3.5 border-t pt-12",children:[o.jsx("div",{className:"bg-surface2 text-ui-sm text-neutral3 absolute top-0 left-1/2 flex h-8 w-8 -translate-x-1/2 -translate-y-4 items-center justify-center rounded-full",children:"And"}),o.jsx("h3",{className:"text-neutral4 text-ui-lg",children:"Set AI Model for Template Installation"}),o.jsx("p",{className:"text-neutral3 text-ui-md mt-2 mb-8",children:"This model will be used by the workflow to process and install the template"}),o.jsx($zt,{defaultProvider:u||"",defaultModel:d||"",updateModel:f||(()=>Promise.resolve({message:"Updated"})),closeEditor:()=>{},autoSave:!0,selectProviderPlaceholder:"Provider"})]})]}),t&&!l&&o.jsx(oe,{className:X("flex items-center gap-2 mt-4 justify-center text-ui-md w-full bg-surface5 min-h-10 rounded-lg text-neutral5 hover:bg-surface6 transition-colors","[&>svg]:w-[1.1em] [&_svg]:h-[1.1em] [&_svg]:text-neutral5"),onClick:a,disabled:!t||!u||!d||s.length>0||c,children:c?o.jsxs(o.Fragment,{children:[o.jsx(Xt,{className:"h-4 w-4"})," Installing..."]}):o.jsxs(o.Fragment,{children:["Install ",o.jsx(ym,{})]})})]})})}function eds({title:e,description:t,githubUrl:n,isLoading:r,infoData:s,templateSlug:a}){const i=a?`feat/install-template-${a}`:"feat/install-template-[slug]";return o.jsxs(o.Fragment,{children:[o.jsx("div",{className:X("grid mt-8 items-center"),children:o.jsxs("div",{className:X("text-header-lg flex items-center gap-3","[&>svg]:w-[1.2em] [&>svg]:h-[1.2em] [&>svg]:opacity-50",{"[&>svg]:opacity-20":r}),children:[o.jsx(Xv,{}),o.jsx("h2",{className:X({"bg-surface4 flex rounded-lg min-w-[50%]":r}),children:r?o.jsx(o.Fragment,{children:" "}):e})]})}),o.jsxs("div",{className:"grid gap-x-24 lg:grid-cols-[1fr_1fr]",children:[o.jsxs("div",{className:"grid",children:[o.jsx("p",{className:X("mb-4 text-ui-md text-neutral4 mt-2 leading-7",{"bg-surface4 rounded-lg ":r}),children:r?o.jsx(o.Fragment,{children:" "}):t}),!r&&a&&o.jsxs("div",{className:X("bg-surface2 border border-surface4 rounded-lg p-4 mb-4","flex items-start gap-3"),children:[o.jsx("div",{className:"mt-0.5 shrink-0",children:o.jsx(Vx,{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(Dbe,{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(R7t,{}),n?.split("/")?.pop()]})]}),s&&o.jsx(ONe,{data:s,labelsAreHidden:!0,isLoading:r})]})]})}function tds(e){switch(e){case"running":return o.jsx(Xt,{});case"success":return o.jsx(Sx,{});case"failed":return o.jsx(Wu,{});default:return null}}function nds({stepId:e,step:t,isActive:n,position:r}){const s=a=>a.charAt(0).toUpperCase()+a.slice(1).replace(/-/g," ");return o.jsxs("div",{className:X("grid grid-cols-[1fr_auto] gap-6 rounded-lg px-4 py-3",vs.all,{"border border-dashed border-neutral2 bg-surface3":n}),children:[o.jsxs("div",{className:"grid grid-cols-[auto_1fr] gap-2",children:[o.jsxs("span",{className:X("flex min-w-6 justify-end text-ui-md",vs.colors,{"text-neutral5":n||t.status==="success","text-neutral3":!n&&t.status!=="success"}),children:[r,"."]}),o.jsxs("div",{children:[o.jsx("h4",{className:X("text-ui-md",vs.colors,{"text-neutral5":n||t.status==="success","text-neutral3":!n&&t.status!=="success"}),children:s(e)}),t.description&&o.jsx("p",{className:"text-ui-md text-neutral2 -mt-0.5",children:t.description})]})]}),o.jsx("div",{className:X("flex size-[1.75rem] items-center justify-center self-center rounded-full",vs.all,{"border border-neutral2 border-dashed":t.status==="pending","[&>svg]:text-white [&>svg]:w-4 [&>svg]:h-4":t.status!=="running","w-[1.75rem] h-[1.75rem]":t.status==="running","bg-accent1Dark shadow-glow-accent1":t.status==="success","bg-accent2Dark shadow-glow-accent2":t.status==="failed","scale-110":t.status==="success"||t.status==="failed"}),children:tds(t.status)})]})}function rds({currentStep:e,steps:t=[],className:n}){return o.jsx("div",{className:X(n),children:t.map((r,s)=>o.jsx(nds,{stepId:r.id,step:r,isActive:e?.id===r.id,position:s+1},r.id))})}function sds({steps:e}){const t=e.length,n=e.filter(r=>r.status==="success").length;return o.jsxs("div",{className:"flex w-full flex-col content-center justify-center gap-4",children:[o.jsx("div",{className:"grid w-full grid-cols-[0_repeat(9,1fr)]",children:e.map((r,s)=>o.jsx("div",{className:X("relative flex h-8 items-center justify-end",vs.colors,{"bg-accent1Dark":r.status==="success"&&e?.[s-1]?.status==="success"}),children:o.jsx("div",{className:X("absolute right-0 z-10 flex size-[2rem] translate-x-[50%] items-center justify-center self-center rounded-full bg-surface3 text-ui-sm font-bold text-neutral3",vs.all,{"border border-neutral2 border-dashed":r.status==="pending","[&>svg]:text-surface1 [&>svg]:w-[1.1rem] [&>svg]:h-[1.1rem]":r.status!=="running","bg-accent1Dark text-white shadow-glow-accent1 scale-110":r.status==="success","bg-accent2Dark text-white shadow-glow-accent2 scale-110":r.status==="failed"}),children:r.status==="running"?o.jsx(Xt,{}):s+1})},r.id))}),o.jsxs("div",{className:X("text-center text-xs text-neutral3",vs.colors),children:[n," of ",t," steps completed"]})]})}function ads({name:e,streamResult:t,runId:n,workflowInfo:r}){const s=t?.phase||"initializing",a=t?.payload?.workflowState,i=t?.payload?.currentStep,l=t?.error,c=a?.steps||{},u=Object.keys(c).length>0,d=g=>g==="input"||g.endsWith(".input")||g.startsWith("Mapping_")&&/[0-9a-f]{8}/.test(g)||/[0-9a-f]{8,}/.test(g)?!1:r?.allSteps?g in r.allSteps:!0,f=Object.entries(c).filter(([g,y])=>d(g)),p=f.length,h=()=>{switch(s){case"initializing":return"Preparing template installation...";case"processing":return`Installing ${e} template`;case"completed":return"Template installation completed!";case"error":return"Template installation failed";default:return"Installing template..."}},m=f.map(([g,y])=>({id:g,status:y?.status,description:y?.description,title:g.charAt(0).toUpperCase()+g.slice(1).replace(/-/g," "),isActive:i?.id===g}));return o.jsxs(iQ,{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(sds,{steps:m})}),l&&s==="error"&&o.jsxs("div",{className:X("rounded-lg text-neutral5 p-6 flex items-center gap-3 text-ui-md bg-red-500/10","[&>svg]:w-6 [&>svg]:h-6 [&>svg]:opacity-70 [&>svg]:text-red-500"),children:[o.jsx(FZt,{}),l||"Something went wrong"]}),u&&o.jsx(rds,{steps:m,currentStep:i,className:"pb-4"}),!u&&s==="initializing"&&o.jsxs("div",{className:"text-neutral3 grid justify-items-center gap-4 text-center text-sm",children:[o.jsx(Xt,{}),o.jsx("p",{children:"This may take some time..."})]})]})}function ids({name:e,installedEntities:t}){return o.jsxs(iQ,{className:X("grid items-center justify-items-center gap-4 content-center","[&>svg]:w-8 [&>svg]:h-8"),children:[o.jsx(Oit,{}),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(ONe,{data:t})]})}function ods(){const{templateSlug:e}=Sr(),[t,n]=Ri(),[r,s]=v.useState(""),[a,i]=v.useState(""),[l,c]=v.useState(""),[u,d]=v.useState({}),[f,p]=v.useState([]),[h,m]=v.useState(null),[g,y]=v.useState(!1),[b,x]=v.useState(""),[S,k]=v.useState(!1),[_,C]=v.useState(!1),[E,j]=v.useState([]),{data:N,isLoading:I}=JJn({repoOrSlug:e,owner:"mastra-ai"}),R=Kus?.includes("beta")??!1?"beta":"main",{data:L,isLoading:D}=eer({repo:N?.githubUrl?new URL(N.githubUrl).pathname.split("/")[2]:`template-${e}`,owner:"mastra-ai",branch:R}),{data:B,isLoading:H}=ter(),{mutateAsync:F,isPending:z}=ner(),{mutateAsync:q}=rer(),{streamInstall:M,streamResult:G,isStreaming:V}=aer(B),{observeInstall:$,streamResult:U,isStreaming:Z}=ier(B);v.useEffect(()=>{const ne=t.get("runId");ne&&!g&&!h&&!V&&!Z&&(console.info("🔄 Checking completed run after hot reload:",{runId:ne}),x(ne),q({runId:ne}).then(fe=>{const he=fe.snapshot;if(he?.status==="success"&&he?.result?.success)y(!0);else if(he?.result?.success===!1)if(he?.result?.validationResults&&!he?.result?.validationResults?.valid&&he?.result?.validationResults?.remainingErrors>0){const{remainingErrors:ue,errors:be}=he.result.validationResults,xe=`Template installation completed but ${ue} validation issue${ue>1?"s":""} remain unresolved.`;m(xe),j(be||[])}else{const ue=he?.result?.message||he?.result?.error||"Template installation failed";m(typeof ue=="string"?ue:String(ue))}}).catch(fe=>{console.error("❌ Failed to fetch run details:",fe),m("Failed to retrieve installation status after reload")}))},[t,g,h,V,Z,q]),v.useEffect(()=>{const ne=t.get("runId"),fe=t.get("resume"),he=t.get("provider");if(ne&&fe==="true"&&he&&!V&&!Z&&!S&&!_&&B){x(ne),k(!0);try{q({runId:ne}).then(le=>{if(le.snapshot?.status==="running")return $.mutateAsync({runId:ne})}).then(()=>{n(le=>{const ue=new URLSearchParams(le);return ue.delete("resume"),ue})}).catch(le=>{console.error("❌ Failed to resume template installation:",le),le.message?.includes("404")||le.message?.includes("not found")?m("Template installation run not found. It may have expired or been completed."):m("Failed to resume template installation. Please try again.")})}catch(le){console.error("❌ Auto-resume failed with error:",le),m("Failed to resume template installation. Please refresh and try again.")}}},[t,e,V,Z,S,_,B,q,$,n]);const K=[{value:"openai",label:"OpenAI"},{value:"anthropic",label:"Anthropic"},{value:"groq",label:"Groq"},{value:"google",label:"Google"}],ee=[{key:"tools",label:"Tools",value:N?.tools?.length?N.tools.map(ne=>ne).join(", "):"n/a",icon:o.jsx(Ld,{})},{key:"agents",label:"Agents",value:N?.agents?.length?N.agents.map(ne=>ne).join(", "):"n/a",icon:o.jsx(Uo,{})},{key:"workflows",label:"Workflows",value:N?.workflows?.length?N.workflows.map(ne=>ne).join(", "):"n/a",icon:o.jsx(RD,{})},{key:"providers",label:"Providers",value:N?.supportedProviders?.length?N.supportedProviders.join(", "):"n/a",icon:o.jsx(Dv,{})},{key:"tags",label:"Tags",value:N?.tags?.length?N.tags.join(", "):"n/a",icon:o.jsx(UN,{})}],te=[{...ee[0]},{...ee[1]},{...ee[2]}].filter(ne=>ne.value!=="n/a");v.useEffect(()=>{L&&d(L)},[L]),v.useEffect(()=>{const ne=G||U;ne?.phase==="error"&&ne?.error&&m(typeof ne.error=="string"?ne.error:String(ne.error))},[G?.phase,G?.error,U?.phase,U?.error]);const J=ne=>{s(ne)},ae=async ne=>(i(ne.provider),c(ne.modelId),{message:"Model updated successfully"}),de=async()=>{const ne=Object.entries(u).reduce((fe,[he,le])=>(le===""&&fe.push(he),fe),[]);if(ne.length>0){p(ne);return}if(N){m(null),y(!1),x(""),C(!0);try{const he={repo:N.githubUrl||`https://github.com/mastra-ai/template-${N.slug}`,ref:R,slug:N.slug,variables:u},{runId:le}=await F({});x(le),n(ue=>{const be=new URLSearchParams(ue);return be.set("runId",le),be.set("resume","true"),be.set("provider",r||"openai"),be}),await M.mutateAsync({inputData:he,selectedModel:{provider:a,modelId:l},runId:le})}catch(fe){C(!1),m(fe?.message||"Template installation failed"),console.error("Template installation failed",fe)}}},Y=ne=>{const{name:fe,value:he}=ne.target;he.trim()===""?p(le=>[...le,fe]):p(le=>le.filter(ue=>ue!==fe)),d(le=>({...le,[fe]:he}))};return o.jsx(ds,{children:o.jsx("div",{className:X("w-full lg:px-12 h-full overflow-y-scroll"),children:o.jsxs("div",{className:"mx-auto grid w-full max-w-[80rem] gap-y-4 p-6",children:[o.jsx(eds,{isLoading:I,title:N?.title,description:N?.longDescription,imageURL:N?.imageURL,githubUrl:N?.githubUrl,infoData:ee,templateSlug:e}),N&&o.jsxs(o.Fragment,{children:[(V||Z)&&o.jsx(ads,{name:N.title,streamResult:Z?U:G,runId:b,workflowInfo:B}),g&&o.jsx(ids,{name:N.title,installedEntities:te,linkComponent:Fa}),h&&o.jsx(Xus,{errorMsg:h,validationErrors:E.length>0?E:G?.validationResults?.errors||U?.validationResults?.errors}),!V&&!Z&&!g&&!h&&o.jsx(Jus,{providerOptions:K,selectedProvider:r,onProviderChange:J,variables:u,setVariables:d,errors:f,setErrors:p,handleInstallTemplate:de,handleVariableChange:Y,isLoadingEnvVars:D||H,isInstalling:z,defaultModelProvider:a,defaultModelId:l,onModelUpdate:ae})]})]})})})}const lds=()=>{const{toolId:e,agentId:t}=Sr();return o.jsx("div",{className:"h-full w-full overflow-y-auto",children:o.jsx(mXr,{toolId:e,agentId:t})})},cds=()=>{const{toolId:e}=Sr();return o.jsx("div",{className:"h-full w-full overflow-y-hidden",children:o.jsx(pcs,{toolId:e})})};function uds(){const{traceId:e}=Sr(),[t,n]=Ri(),r=qs(),s=t.get("spanId")||void 0,a=t.get("tab"),i=a==="scoring"?"scoring":a==="feedback"?"feedback":"details",l=t.get("scoreId")||void 0,[c,u]=v.useState(s??null),[d,f]=v.useState(),[p,h]=v.useState(i),[m,g]=v.useState(0),[y,b]=v.useState(!1),{data:x,isLoading:S,error:k}=dIe(e),_=v.useMemo(()=>x?.spans??[],[x?.spans]),C=v.useMemo(()=>_.find(ae=>ae.parentSpanId==null),[_]),{data:E,isLoading:j}=CL(e,c??"");v.useEffect(()=>g(0),[e,c]);const{data:N,isLoading:I}=ih(),{data:A,isLoading:R}=e8t({traceId:e,spanId:c??void 0,page:m}),[L,D]=v.useState(0);v.useEffect(()=>D(0),[e,c]);const{data:B,isLoading:H}=u7t({traceId:e,page:L});v.useEffect(()=>{if(l&&A?.scores&&!d){const ae=A.scores.find(de=>de.id===l);ae&&f(ae)}},[l,A?.scores,d]);const F=v.useCallback(ae=>{const de=new URLSearchParams(t);for(const[Y,ne]of Object.entries(ae))ne===null||ne===""?de.delete(Y):de.set(Y,ne);n(de,{replace:!0})},[t,n]),z=v.useCallback(ae=>{const de=ae??null,Y=de===c;u(de),Y||(f(void 0),h("details"),F({spanId:de,tab:null,scoreId:null}))},[c,F]),q=v.useCallback(()=>{u(null),f(void 0),h("details"),F({spanId:null,tab:null,scoreId:null})},[F]),M=v.useCallback(ae=>{u(ae),f(void 0),h("details"),F({spanId:ae,tab:null,scoreId:null})},[F]),{handlePreviousSpan:G,handleNextSpan:V}=fIe(_,c,M),$=v.useCallback(ae=>{const de=ae;h(de),f(void 0),F({tab:de==="details"?null:de,scoreId:null})},[F]),U=v.useCallback(ae=>{f(ae),F({scoreId:ae.id})},[F]),Z=v.useCallback(()=>{f(void 0),F({scoreId:null})},[F]),K=v.useCallback(()=>{r("/observability")},[r]),ee=v.useCallback(()=>{h("scoring"),C&&c!==C.spanId?(u(C.spanId),f(void 0),F({spanId:C.spanId,tab:"scoring",scoreId:null})):F({tab:"scoring"})},[C,c,F]),te=C?o.jsx(My,{owner:"trace-detail",children:o.jsxs(Mr,{children:[o.jsxs(oe,{tooltip:"Evaluate Trace","aria-label":"Evaluate Trace",onClick:ee,children:[o.jsx(yHt,{}),"Evaluate"]}),o.jsxs(oe,{tooltip:"Save as Dataset Item","aria-label":"Save as Dataset Item",onClick:()=>b(!0),children:[o.jsx(jd,{}),"Save"]})]})}):null,J=C?o.jsx(Ft.Row,{children:o.jsx(Ft.Column,{children:o.jsx(Q9t,{rootSpan:C,numOfCol:3})})}):null;return k?o.jsxs(Ft,{height:"full",children:[te,J&&o.jsx(Ft.TopArea,{children:J}),o.jsx(Ft.MainArea,{isCentered:!0,children:o.jsx(e7t,{error:k,resource:"traces",errorTitle:"Failed to load trace"})})]}):o.jsxs(Ft,{height:"full",className:"grid-rows-[auto_minmax(0,1fr)] content-normal",children:[te,J&&o.jsx(Ft.TopArea,{children:J}),o.jsx(a7t,{rootSpanId:C?.spanId,traceId:e,isOpen:y,onClose:()=>b(!1)}),o.jsxs("div",{className:X("mt-4 grid min-h-0 items-stretch gap-4 overflow-hidden",c?"grid-cols-[2fr_3fr]":"grid-cols-[1fr]"),children:[o.jsx(sIe,{traceId:e,spans:_,isLoading:S,onClose:K,onSpanSelect:z,onEvaluateTrace:ee,initialSpanId:c,placement:"trace-page",timelineChartWidth:c?"default":"wide"}),c&&!S&&o.jsxs("div",{className:X("grid h-full max-h-full min-h-0 gap-4 overflow-auto",d?"grid-rows-[1fr_1fr]":"grid-rows-[1fr]"),children:[o.jsx(tIe,{traceId:e,spanId:c,span:E?.span,isLoading:j,onClose:q,onPrevious:G,onNext:V,activeTab:p,onTabChange:$,feedbackTabBadge:B?.pagination?.total??void 0,feedbackTabSlot:()=>o.jsx(o7t,{feedbackData:B,onPageChange:D,isLoadingFeedbackData:H}),scoringTabBadge:A?.pagination?.total??void 0,scoringTabSlot:({span:ae,traceId:de,spanId:Y})=>o.jsxs("div",{className:"grid gap-6",children:[o.jsx(c7t,{traceId:de,isTopLevelSpan:!ae.parentSpanId,spanId:Y,entityType:ae.attributes?.agentId||ae.entityType===au.AGENT?"Agent":ae.attributes?.workflowId||ae.entityType===au.WORKFLOW_RUN?"Workflow":void 0,scorers:N,isLoadingScorers:I}),o.jsx(l7t,{scoresData:A,onPageChange:g,isLoadingScoresData:R,onScoreSelect:U})]})}),d&&o.jsx(kNe,{score:d,onClose:Z})]})]})]})}function dds(){const{data:e,isLoading:t,error:n}=Wy(),[r,s]=v.useState("");return n&&ys(n)?o.jsx(lr,{children:o.jsx(Hs,{})}):n&&xs(n)?o.jsx(lr,{children:o.jsx(Ms,{resource:"workflows"})}):n?o.jsx(lr,{children:o.jsx(qi,{title:"Failed to load workflows",message:n.message})}):Object.keys(e||{}).length===0&&!t?o.jsx(lr,{children:o.jsx(Q8r,{})}):o.jsxs(Ft,{children:[o.jsx(Ft.TopArea,{children:o.jsxs(Ft.Row,{align:"center",stack:"responsive",children:[o.jsx("div",{className:"max-w-120 flex-1",children:o.jsx($f,{onSearch:s,label:"Filter workflows",placeholder:"Filter by name or description"})}),o.jsxs(oe,{as:Fa,to:"/workflows/schedules",variant:"primary",className:"shrink-0",children:[o.jsx(TD,{}),"Schedules"]})]})}),o.jsx(G8r,{workflows:e||{},isLoading:t,search:r})]})}const fds={active:"bg-accent1",paused:"bg-accent3"},pds={active:"text-accent1",paused:"text-accent3"},P7t=({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 ${fds[e]}`,"aria-hidden":!0}),o.jsx("span",{className:`text-ui-sm ${pds[e]}`,children:e})]}),oT=e=>!e||e<=0?"—":new Date(e).toLocaleString(),$2=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 $7t({status:e}){const{icon:t,color:n}=hds(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 hds(e){switch(e){case"success":return{icon:o.jsx(fa,{size:14}),color:"text-accent1"};case"failed":return{icon:o.jsx(bs,{size:14}),color:"text-accent2"};case"running":return{icon:o.jsx(Xt,{}),color:"text-neutral3"};case"suspended":return{icon:o.jsx(UV,{size:14}),color:"text-accent3"};case"canceled":return{icon:o.jsx(Nf,{size:14}),color:"text-neutral3"};case"pending":case"waiting":return{icon:o.jsx(dT,{size:14}),color:"text-neutral3"};default:return{icon:null,color:"text-neutral3"}}}const IXe="auto auto auto auto 1fr";function mds(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 gds(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 vds=3e4,yds=5*6e4;function bds({triggers:e,isLoading:t,workflowId:n,hasNextPage:r,isFetchingNextPage:s,setEndOfListElement:a}){const{Link:i,paths:l}=yn();return t?o.jsx(ol,{columns:IXe}):e.length===0?o.jsx(ye,{variant:"ui-md",className:"text-neutral4 p-4",children:"No trigger history yet."}):o.jsxs(ve,{columns:IXe,className:"min-w-0",children:[o.jsxs(ve.Top,{children:[o.jsx(ve.TopCell,{children:"Run"}),o.jsx(ve.TopCell,{children:"Status"}),o.jsx(ve.TopCell,{children:"Started"}),o.jsx(ve.TopCell,{children:"Duration"}),o.jsx(ve.TopCell,{children:" "})]}),e.map(c=>{const u=c.actualFireAt-c.scheduledFireAt,d=gds(u),f=`Scheduled ${oT(c.scheduledFireAt)} — published ${oT(c.actualFireAt)} (drift ${d})`,p=c.outcome==="failed",h=p?c.error:c.run?.error,m=Math.abs(u),g=!p&&m>vds&&m<=yds,y=`${c.scheduleId}-${c.runId}-${c.actualFireAt}`,b=!!(n&&c.runId&&!p),x=o.jsx("span",{className:b?"text-accent1 text-ui-sm font-mono whitespace-nowrap":"text-neutral3 text-ui-sm font-mono whitespace-nowrap",children:c.runId}),S=o.jsxs(o.Fragment,{children:[o.jsx(ve.Cell,{height:"compact",children:x}),o.jsx(ve.Cell,{height:"compact",children:o.jsxs("span",{className:"inline-flex items-center gap-2",children:[p?o.jsxs("span",{className:"text-ui-sm text-accent2 inline-flex items-center gap-1.5 whitespace-nowrap",children:[o.jsx(yf,{size:14}),"publish failed"]}):c.run?o.jsx($7t,{status:c.run.status}):o.jsx("span",{className:"text-ui-sm text-neutral3 inline-flex items-center gap-1.5 whitespace-nowrap",children:"pending"}),h?o.jsxs(Pn,{children:[o.jsx(An,{asChild:!0,children:o.jsx("span",{className:"text-accent2 inline-flex",children:o.jsx(yf,{size:14})})}),o.jsx(Rn,{children:h})]}):null]})}),o.jsx(ve.Cell,{height:"compact",children:o.jsxs("span",{className:"inline-flex items-center gap-2 whitespace-nowrap",children:[o.jsx("span",{title:f,children:$2(c.actualFireAt)}),g?o.jsxs(Pn,{children:[o.jsx(An,{asChild:!0,children:o.jsx("span",{className:"text-accent3 inline-flex",children:o.jsx(yf,{size:14})})}),o.jsxs(Rn,{children:["Published ",d," after the scheduled fire time"]})]}):null]})}),o.jsx(ve.Cell,{height:"compact",children:c.run?o.jsx("span",{children:mds(c.run.durationMs)}):o.jsx("span",{className:"text-neutral4",children:"—"})}),o.jsx(ve.Cell,{height:"compact",children:" "})]});return b?o.jsx(ve.RowLink,{to:l.workflowRunLink(n,c.runId),LinkComponent:i,children:S},y):o.jsx(ve.RowStatic,{children:S},y)}),o.jsx(ve.NextPageLoading,{isLoading:s,hasMore:r,setEndOfListElement:a})]})}const xds=e=>{const t=We();return mt({queryKey:["schedule",e],enabled:!!e,queryFn:async()=>{if(!e)throw new Error("scheduleId is required");return t.getSchedule(e)}})},AXe=25,wds=e=>{const t=We(),{inView:n,setRef:r}=Z_(),s=M1({queryKey:["schedule-triggers",e],enabled:!!e,initialPageParam:void 0,queryFn:async({pageParam:u})=>e?t.listScheduleTriggers(e,{limit:AXe,toActualFireAt:u}):{triggers:[]},getNextPageParam:u=>{if(!(!u?.triggers?.length||u.triggers.length<AXe))return u.triggers[u.triggers.length-1].actualFireAt},refetchInterval:u=>(u.state.data?.pages.flatMap(p=>p.triggers)??[]).some(p=>p.run?p.run.status==="pending"||p.run.status==="running"||p.run.status==="waiting":p.outcome==="published")?5e3:!1}),a=s.data?.pages.flatMap(u=>u?.triggers??[])??[],{hasNextPage:i,isFetchingNextPage:l,fetchNextPage:c}=s;return v.useEffect(()=>{n&&i&&!l&&c()},[n,i,l,c]),{...s,data:a,setEndOfListElement:r}},Sds=e=>{const t=We(),n=Ur();return Mn({mutationFn:async r=>{if(!e)throw new Error("scheduleId is required");return r==="pause"?t.pauseSchedule(e):t.resumeSchedule(e)},onSuccess:(r,s)=>{n.invalidateQueries({queryKey:["schedule",e]}),n.invalidateQueries({queryKey:["schedules"]}),Le.success(s==="pause"?"Schedule paused":"Schedule resumed")},onError:r=>{Le.error(r.message)}})};function Uz({label:e,children:t}){return o.jsxs("div",{className:"flex flex-col gap-1",children:[o.jsx(ye,{variant:"ui-xs",className:"text-neutral4 tracking-wide uppercase",children:e}),o.jsx("div",{className:"text-ui-md",children:t})]})}function kds(){const{scheduleId:e}=Sr(),{paths:t}=yn(),{data:n,error:r}=xds(e),{data:s,isLoading:a,error:i,hasNextPage:l,isFetchingNextPage:c,setEndOfListElement:u}=wds(e),d=Sds(e);if(r&&ys(r))return o.jsx(lr,{children:o.jsx(Hs,{})});if(r&&xs(r))return o.jsx(lr,{children:o.jsx(Ms,{resource:"schedules"})});if(r)return o.jsx(lr,{children:o.jsx(qi,{title:"Failed to load schedule",message:r.message})});const f=n?.workflowId,p=n?.agentId;return o.jsxs(Ft,{children:[o.jsx(Ft.TopArea,{children:o.jsx(Ft.Row,{className:"justify-end",children:o.jsxs(Ft.Column,{className:"flex justify-end gap-2",children:[o.jsxs(oe,{as:Fa,to:t.schedulesLink(),variant:"ghost",children:[o.jsx(Ac,{}),"Back to schedules"]}),f?o.jsx(oe,{as:Fa,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(zbe,{}),"Pause"]}):o.jsxs(o.Fragment,{children:[o.jsx(Of,{}),"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(Uz,{label:p?"Agent":"Workflow",children:f?o.jsx(Fa,{to:t.workflowLink(f),className:"text-accent1 hover:underline",children:f}):p?o.jsx(Fa,{to:t.agentLink(p),className:"text-accent1 hover:underline",children:p}):"—"}),o.jsxs(Uz,{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(Uz,{label:"Status",children:o.jsx(P7t,{status:n.status})}),o.jsx(Uz,{label:"Next fire",children:o.jsx("span",{title:oT(n.nextFireAt),children:$2(n.nextFireAt)})})]}),o.jsxs("div",{className:"overflow-y-auto","data-testid":"schedule-triggers-panel",children:[o.jsx(ye,{variant:"ui-md",className:"mb-3",children:"Trigger history"}),i?o.jsx(qi,{title:"Failed to load trigger history",message:i.message}):o.jsx(bds,{triggers:s??[],isLoading:a,workflowId:f,hasNextPage:l,isFetchingNextPage:c,setEndOfListElement:u})]})]}):null]})}const RXe="minmax(0, 1.2fr) minmax(0, 1.4fr) minmax(0, 1fr) auto auto auto";function Ods({schedules:e,isLoading:t,search:n=""}){const{paths:r,Link:s}=yn(),a=v.useMemo(()=>{const i=n.toLowerCase();return i?e.filter(l=>l.id.toLowerCase().includes(i)||(l.workflowId??l.agentId??"").toLowerCase().includes(i)):e},[e,n]);return t?o.jsx(ol,{columns:RXe}):o.jsxs(ve,{columns:RXe,variant:"striped",className:"min-w-0",children:[o.jsxs(ve.Top,{children:[o.jsx(ve.TopCell,{children:"Target"}),o.jsx(ve.TopCell,{children:"Schedule ID"}),o.jsx(ve.TopCell,{children:"Cron"}),o.jsx(ve.TopCell,{children:"Status"}),o.jsx(ve.TopCell,{children:"Next fire"}),o.jsx(ve.TopCell,{children:"Last run"})]}),a.length===0&&n?o.jsx(ve.NoMatch,{message:"No schedules match your search"}):null,a.length===0&&!n?o.jsx(ve.NoMatch,{message:"No schedules configured"}):null,a.map(i=>o.jsxs(ve.RowLink,{to:r.scheduleLink(i.id),LinkComponent:s,children:[o.jsx(ve.NameCell,{children:i.workflowId??i.agentId}),o.jsx(ve.Cell,{height:"compact",className:"min-w-0",children:o.jsx("span",{className:"text-ui-smd text-neutral3 block truncate font-mono",title:i.id,children:i.id})}),o.jsx(ve.Cell,{height:"compact",children:o.jsxs("span",{className:"inline-flex items-center gap-2 whitespace-nowrap",children:[o.jsx("code",{className:"text-ui-sm font-mono",children:i.cron}),i.timezone?o.jsx("span",{className:"text-neutral4 text-ui-xs",children:i.timezone}):null]})}),o.jsx(ve.Cell,{height:"compact",children:o.jsx(P7t,{status:i.status})}),o.jsx(ve.Cell,{height:"compact",children:o.jsx("span",{className:"whitespace-nowrap",title:oT(i.nextFireAt),children:$2(i.nextFireAt)})}),o.jsx(ve.Cell,{height:"compact",children:i.lastRun?o.jsxs("span",{className:"inline-flex items-center gap-2 whitespace-nowrap",children:[o.jsx($7t,{status:i.lastRun.status}),o.jsx("span",{className:"text-neutral4 text-ui-sm",title:oT(i.lastFireAt),children:i.lastFireAt?$2(i.lastFireAt):""})]}):i.lastFireAt?o.jsx("span",{className:"whitespace-nowrap",title:oT(i.lastFireAt),children:$2(i.lastFireAt)}):o.jsx("span",{className:"text-neutral4",children:"Never"})})]},i.id))]})}function _ds({workflowId:e}={}){const{data:t,isLoading:n,error:r}=Rwe(e?{workflowId:e}:{}),[s,a]=v.useState("");return r?o.jsx(qi,{title:"Failed to load schedules",message:r.message}):o.jsxs("div",{className:"grid h-full grid-rows-[auto_1fr] gap-4 overflow-hidden",children:[o.jsx("div",{className:"max-w-120",children:o.jsx($f,{onSearch:a,label:"Filter schedules",placeholder:"Filter by id or workflow"})}),o.jsx("div",{className:"overflow-y-auto",children:o.jsx(Ods,{schedules:t??[],isLoading:n,search:s})})]})}function Cds(){const[e]=Ri(),t=e.get("workflowId")??void 0,{error:n}=Rwe(t?{workflowId:t}:{});return n&&ys(n)?o.jsx(lr,{children:o.jsx(Hs,{})}):n&&xs(n)?o.jsx(lr,{children:o.jsx(Ms,{resource:"schedules"})}):o.jsx(Ft,{children:o.jsx("div",{className:"h-full",children:o.jsx(_ds,{workflowId:t})})})}function Eds({stepGraph:e,open:t,workflowName:n}){const{nodes:r,edges:s}=dke({stepGraph:e}),[a,i]=v.useState(!1),[l,c,u]=ckt(r),[d]=ukt(s),{edgeTypes:f,nodeTypes:p,styledEdges:h}=$Dt({edges:d,workflowName:n,stepGraph:e});return v.useEffect(()=>{if(t){const m=setTimeout(()=>{i(!0)},500);return()=>clearTimeout(m)}},[t]),o.jsx("div",{className:"bg-surface1 relative h-full w-full",children:a?o.jsxs(lkt,{nodes:l,edges:h,edgeTypes:f,fitView:!0,fitViewOptions:{maxZoom:1},minZoom:.01,maxZoom:1,nodeTypes:p,onNodesChange:u,children:[o.jsx(XEe,{position:"bottom-left"}),o.jsx(fkt,{variant:ay.Lines,gap:12,size:.5})]}):o.jsx("div",{className:"flex h-full w-full items-center justify-center",children:o.jsx(Xt,{})})})}function jds(){const{stepDetail:e,closeStepDetail:t}=ZH();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(f9,{className:"h-4 w-4",style:{color:ju.map}}),e.type==="nested-graph"&&o.jsx(Xu,{className:"h-4 w-4",style:{color:ju.workflow}}),o.jsxs("div",{className:"flex flex-col",children:[o.jsx(ye,{variant:"ui-md",className:"text-neutral6 font-medium",children:e.type==="map-config"?`${e.stepName} Config`:`${e.stepName} Workflow`}),e.type==="map-config"&&e.stepId&&e.stepId!==e.stepName&&o.jsx(ye,{variant:"ui-xs",className:"text-neutral3",children:e.stepId})]})]}),o.jsx("button",{onClick:t,className:"hover:bg-surface3 rounded p-1 transition-colors","aria-label":"Close",children:o.jsx(bs,{className:"text-neutral3 h-4 w-4"})})]}),o.jsxs("div",{className:"flex-1 overflow-auto",children:[e.type==="map-config"&&e.mapConfig&&o.jsx(R2,{data:e.mapConfig}),e.type==="nested-graph"&&e.nestedGraph&&o.jsx("div",{className:"h-full min-h-[400px]",children:o.jsx(uke,{children:o.jsx(Eds,{stepGraph:e.nestedGraph.stepGraph,open:!0,workflowName:e.nestedGraph.fullStep})},`nested-graph-${e.nestedGraph.fullStep}`)})]})]}):null}function Tds(e){const t=new Blob([JSON.stringify(e??null)]).size;return t<1024?`${t} B`:`${(t/1024).toFixed(1)} KB`}function Nds(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 Ids({suspendedSteps:e,workflow:t,isStreaming:n,onResume:r}){return n||e.length===0?null:o.jsxs("div",{className:"border-border1 bg-surface4 space-y-5 rounded-lg border p-5","data-testid":"workflow-suspended-steps",children:[o.jsxs("div",{className:"flex items-center justify-between gap-3",children:[o.jsxs(ye,{as:"p",variant:"ui-md",className:"text-neutral6 flex items-center gap-2 font-semibold",children:[o.jsx(qe,{children:o.jsx(UV,{})}),"Step suspended"]}),o.jsx(un,{variant:"warning",children:"Needs input"})]}),e.map((s,a)=>{const i=t.allSteps[s.stepId];if(!i||i.isWorkflow)return null;const l=i?.resumeSchema?fm(um(kx(i.resumeSchema))):hp(ur(),IT());return o.jsx(Ads,{step:s,stepSchema:l,description:i.description,isStreaming:n,onResume:r},`${s.runId}-${s.stepId}-${a}`)})]})}function Ads({step:e,stepSchema:t,description:n,isStreaming:r,onResume:s}){const[a,i]=v.useState(!1);return o.jsxs("div",{className:"space-y-5",children:[o.jsxs("div",{className:"space-y-2",children:[o.jsx(ye,{as:"p",variant:"ui-md",className:"text-neutral6 truncate font-medium",children:e.stepId}),n&&o.jsx(ye,{as:"p",variant:"ui-sm",className:"text-neutral3",children:n})]}),e.suspendPayload&&o.jsxs("div",{className:"space-y-2",children:[o.jsxs(ye,{as:"p",variant:"ui-sm",className:"text-neutral3 flex items-center gap-2",children:[o.jsx(qe,{children:o.jsx(IZt,{})}),"The step is asking"]}),o.jsxs(Tf,{open:a,onOpenChange:i,children:[o.jsxs($d,{className:"border-border1 bg-surface3 flex w-full items-center justify-between gap-2 rounded-lg border px-3 py-2.5",children:[o.jsxs("span",{className:"flex min-w-0 items-center gap-2",children:[o.jsx(qe,{children:o.jsx(pa,{className:X("transition-transform text-neutral3",{"transform rotate-90":a})})}),o.jsx(ye,{as:"span",variant:"ui-md",className:"text-neutral6 truncate",children:Nds(e.suspendPayload,e.stepId)})]}),o.jsx(ye,{as:"span",variant:"ui-sm",className:"text-neutral3 shrink-0",children:Tds(e.suspendPayload)})]}),o.jsx(Md,{children:o.jsx("div",{"data-testid":"suspended-payload",className:"pt-2",children:o.jsx(Wr,{data:e.suspendPayload,className:"w-full overflow-x-auto p-2",showCopyButton:!1})})})]})]}),o.jsxs("div",{className:"space-y-3",children:[o.jsxs(ye,{as:"p",variant:"ui-sm",className:"text-neutral3 flex items-center gap-2",children:[o.jsx(qe,{children:o.jsx(PZt,{})}),"Your response"]}),o.jsx("div",{className:"-mx-5",children:o.jsx(IB,{schema:t,isSubmitLoading:r,submitButtonLabel:"Resume",submitButtonIcon:o.jsx(Of,{}),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 Rds(){const{result:e,runSnapshot:t,workflow:n,runId:r,isStreamingWorkflow:s}=v.useContext(Bl),{runId:a}=Sr(),i=bkt(e,r??""),l=gKn(),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(Ids,{suspendedSteps:i,workflow:n,isStreaming:s,onResume:l})},r)}const Pds=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"})]}),$ds=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"})]}),Mds=e=>e.includes("."),Dds=e=>e==="input"||e.endsWith(".input"),Lds=1;function Fds(e){return`${Number((e/1e3).toPrecision(3))}s`}function zds(e,t){const n=Object.entries(e).filter(([i])=>!Dds(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,Lds);return{stepId:i,step:l,status:l.status,offsetPct:f,widthPct:p,durationMs:d,isRunning:c,isNestedEntry:Mds(i)}})}const Bds=({status:e})=>o.jsxs(qe,{children:[e==="success"&&o.jsx(Pds,{className:"text-accent1"}),e==="failed"&&o.jsx($ds,{className:"text-accent2"}),e==="suspended"&&o.jsx(UV,{className:"text-accent3"}),e==="waiting"&&o.jsx(Cfe,{className:"text-accent5"}),e==="skipped"&&o.jsx(Cfe,{className:"text-icon3"}),e==="running"&&o.jsx(ia,{className:"text-accent6 animate-spin"})]}),Uds={success:"bg-accent1",failed:"bg-accent2",suspended:"bg-accent3",waiting:"bg-accent5",skipped:"bg-border1",running:"bg-accent6"};function M7t(e){return e.split(/[-_.\s]+/).filter(Boolean).map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(" ")}const PXe=e=>e&&typeof e=="object"&&!Array.isArray(e)?e:{value:e},Vds=e=>{const t=e;return CDt({duration:t.duration,date:t.date,isForEach:t.isForEach,mapConfig:t.mapConfig,canSuspend:t.canSuspend,isParallel:t.isParallel,stepGraph:t.stepGraph})},qds=({row:e,index:t,isSelected:n,isHovered:r,onSelectStep:s,onHoverStep:a,onOpenInput:i,onOpenOutput:l})=>{const c=Vds(e.step),u=e.status==="running",d=!e.isNestedEntry;return o.jsxs("div",{role:"button",tabIndex:0,"data-testid":"workflow-timeline-row","data-workflow-step-key":e.stepId,"data-workflow-step-active":n?"true":void 0,"data-workflow-step-hovered":r?"true":void 0,"data-workflow-step-nested":e.isNestedEntry?"true":void 0,"aria-pressed":n,"aria-disabled":!d,onMouseEnter:()=>{d&&a(e.stepId)},onMouseLeave:()=>{d&&a(null)},onClick:()=>{d&&s(e.stepId)},onKeyDown:f=>{!d||f.key!=="Enter"&&f.key!==" "||(f.preventDefault(),s(e.stepId))},className:X("grid grid-cols-[auto_auto_auto_minmax(0,10rem)_minmax(0,1fr)_auto_5rem] items-center gap-2 rounded-md border border-transparent px-2 py-1 text-left transition-colors focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-accent1",d&&"cursor-pointer",d&&"hover:bg-surface4",d&&r&&!n&&"border-neutral6 bg-surface4",d&&n&&"border-accent1",e.isNestedEntry&&"cursor-default opacity-55"),children:[o.jsx("div",{className:"flex justify-center",children:o.jsx(Bds,{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($Gt,{})})}),o.jsx("div",{className:"flex overflow-hidden",children:o.jsx(mV,{indicators:c,className:"shrink-0"})}),o.jsx(ye,{as:"span",variant:"ui-sm",className:"text-neutral6 block max-w-full min-w-0 justify-self-stretch overflow-hidden text-left text-ellipsis whitespace-nowrap",children:M7t(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 ${Uds[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(RGt,{})})}),o.jsx(ye,{as:"span",variant:"ui-sm",className:"text-neutral3 w-20 justify-self-end text-right tabular-nums",children:Fds(e.durationMs)})]},`timeline-item-${e.stepId}-${t}`)};function Hds(){const{steps:e}=F4(),{selectedStepId:t,hoverStepId:n,setSelectedStepId:r,setHoverStepId:s}=aH(),[a,i]=v.useState(()=>Date.now()),[l,c]=v.useState(!1),[u,d]=v.useState(null),f=v.useRef(null);Bwe(f,{enabled:!l});const p=zds(e,a),h=p.some(m=>m.isRunning);return v.useEffect(()=>{if(!h)return;const m=setInterval(()=>i(Date.now()),100);return()=>clearInterval(m)},[h]),v.useEffect(()=>{if(l||p.length===0)return;const m=f.current;m&&(m.scrollTop=m.scrollHeight)},[l,p.length]),p.length===0?null:o.jsxs(o.Fragment,{children:[o.jsx("div",{"data-testid":"workflow-timeline",className:"pointer-events-none absolute right-0 bottom-0 z-20 px-2 pb-2",style:{left:"var(--workflow-left-panel-width, 0px)"},children:o.jsxs("div",{className:"rounded-studio-panel border-border1/50 bg-surface3 pointer-events-auto flex max-h-64 w-full min-w-0 flex-col gap-3 overflow-hidden border p-4 shadow-lg",children:[o.jsxs("div",{className:"flex shrink-0 items-center justify-between gap-3",children:[o.jsx(ye,{as:"p",variant:"ui-md",className:"text-neutral3",children:"Timeline"}),o.jsx("button",{type:"button","aria-label":l?"Expand timeline":"Collapse timeline","aria-expanded":!l,onClick:()=>c(m=>!m),className:"text-neutral3 hover:bg-surface4 hover:text-neutral6 rounded-md p-1 transition-colors",children:o.jsx(Na,{className:X("h-4 w-4 transition-transform",l&&"-rotate-90")})})]}),!l&&o.jsx("div",{ref:f,"data-testid":"workflow-timeline-list",className:"flex min-h-0 flex-col gap-2 overflow-y-auto",children:p.map((m,g)=>o.jsx(qds,{row:m,index:g,isSelected:t===m.stepId,isHovered:n===m.stepId,onSelectStep:r,onHoverStep:s,onOpenInput:y=>d({type:"input",stepId:y.stepId,data:PXe(y.step.input)}),onOpenOutput:y=>d({type:"output",stepId:y.stepId,data:PXe(y.step.output)})},`timeline-item-${m.stepId}-${g}`))})]})}),o.jsx(br,{open:!!u,onOpenChange:m=>!m&&d(null),children:u&&o.jsx(wkt,{data:u.data,title:`${M7t(u.stepId)} ${u.type==="input"?"input":"output"}`})})]})}const Wds=({workflowId:e,workflow:t,isLoading:n})=>{const{stepDetail:r}=ZH();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(MDt,{workflowId:e,workflow:t,isLoading:n}),o.jsx(Rds,{}),o.jsx(Hds,{})]})}),r&&o.jsx("div",{className:"border-border1 min-h-0 w-[420px] overflow-hidden border-l",children:o.jsx(jds,{})})]})},$Xe=()=>{const{workflowId:e}=Sr(),{data:t,isLoading:n,error:r}=H3(e);return r&&ys(r)?o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Hs,{})}):r&&xs(r)?o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(Ms,{resource:"workflows"})}):o.jsx(Tke,{children:o.jsx(Wds,{workflowId:e,workflow:t??void 0,isLoading:n})})};function Zds(e,t){if(e==null)return{};var n,r,s=_wt(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 kbe(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 Gds(e){if(Array.isArray(e))return kbe(e)}function Qds(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function Yds(e,t){if(e){if(typeof e=="string")return kbe(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)?kbe(e,t):void 0}}function Kds(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
|
|
722
722
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Obe(e){return Gds(e)||Qds(e)||Yds(e)||Kds()}function _D(e){"@babel/helpers - typeof";return _D=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},_D(e)}function Xds(e,t){if(_D(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(_D(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Jds(e){var t=Xds(e,"string");return _D(t)=="symbol"?t:t+""}function D7t(e,t,n){return(t=Jds(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function MXe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,r)}return n}function Sj(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?MXe(Object(n),!0).forEach(function(r){D7t(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):MXe(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function efs(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 Mae={};function tfs(e){if(e.length===0||e.length===1)return e;var t=e.join(".");return Mae[t]||(Mae[t]=efs(e)),Mae[t]}function nfs(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=tfs(r);return s.reduce(function(a,i){return Sj(Sj({},a),n[i])},t)}function DXe(e){return e.join(" ")}function rfs(e,t){var n=0;return function(r){return n+=1,r.map(function(s,a){return L7t({node:s,stylesheet:e,useInlineStyles:t,key:"code-segment-".concat(n,"-").concat(a)})})}}function L7t(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=rfs(n,a),p;if(!a)p=Sj(Sj({},l),{},{className:DXe(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"]:[],g=l.className&&m.concat(l.className.filter(function(b){return!h.includes(b)}));p=Sj(Sj({},l),{},{className:DXe(g)||void 0,style:nfs(l.className,Object.assign({},l.style,s),n)})}var y=f(t.children);return Fe.createElement(u,UO({key:i},p),y)}}const sfs=(function(e,t){var n=e.listLanguages();return n.indexOf(t)!==-1});var afs=["language","children","style","customStyle","codeTagProps","useInlineStyles","showLineNumbers","showInlineLineNumbers","startingLineNumber","lineNumberContainerStyle","lineNumberStyle","wrapLines","wrapLongLines","lineProps","renderer","PreTag","CodeTag","code","astGenerator"];function LXe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,r)}return n}function jw(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?LXe(Object(n),!0).forEach(function(r){D7t(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):LXe(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}var ifs=/\n/g;function ofs(e){return e.match(ifs)}function lfs(e){var t=e.lines,n=e.startingLineNumber,r=e.style;return t.map(function(s,a){var i=a+n;return Fe.createElement("span",{key:"line-".concat(a),className:"react-syntax-highlighter-line-number",style:typeof r=="function"?r(i):r},"".concat(i,`
|
|
723
723
|
`))})}function cfs(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)},lfs({lines:t.replace(/\n$/,"").split(`
|
|
724
724
|
`),style:i,startingLineNumber:l}))}function ufs(e){return"".concat(e.toString().length,".25em")}function F7t(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 z7t(e,t,n){var r={display:"inline-block",minWidth:ufs(n),paddingRight:"1em",textAlign:"right",userSelect:"none"},s=typeof e=="function"?e(t):e,a=jw(jw({},r),s);return a}function l9(e){var t=e.children,n=e.lineNumber,r=e.lineNumberStyle,s=e.largestLineNumber,a=e.showInlineLineNumbers,i=e.lineProps,l=i===void 0?{}:i,c=e.className,u=c===void 0?[]:c,d=e.showLineNumbers,f=e.wrapLongLines,p=e.wrapLines,h=p===void 0?!1:p,m=h?jw({},typeof l=="function"?l(n):l):{};if(m.className=m.className?[].concat(Obe(m.className.trim().split(/\s+/)),Obe(u)):u,n&&a){var g=z7t(r,n,s);t.unshift(F7t(n,g))}return f&d&&(m.style=jw({display:"flex"},m.style)),{type:"element",tagName:"span",properties:m,children:t}}function B7t(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(l9({children:[s],className:Obe(new Set(t))}));else if(s.children){var a=t.concat(s.properties.className);B7t(s.children,a).forEach(function(i){return n.push(i)})}}return n}function dfs(e,t,n,r,s,a,i,l,c){var u,d=B7t(e.value),f=[],p=-1,h=0;function m(_,C){var E=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[];return l9({children:_,lineNumber:C,lineNumberStyle:l,largestLineNumber:i,showInlineLineNumbers:s,lineProps:n,className:E,showLineNumbers:r,wrapLongLines:c,wrapLines:t})}function g(_,C){if(r&&C&&s){var E=z7t(l,C,i);_.unshift(F7t(C,E))}return _}function y(_,C){var E=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[];return t||E.length>0?m(_,C,E):g(_,C)}for(var b=function(){var C=d[h],E=C.children[0].value,j=ofs(E);if(j){var N=E.split(`
|