@spexcode/spec-dashboard 0.6.5 → 0.6.7

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.
Files changed (43) hide show
  1. package/dist/assets/{App-DeN4sqIH.js → App-CyvuxJYw.js} +2 -2
  2. package/{dist-public/assets/Dashboard-C5ap-Sga.css → dist/assets/Dashboard-BnuhLJ6X.css} +1 -1
  3. package/dist/assets/Dashboard-DUitEyrD.js +27 -0
  4. package/{dist-public/assets/EvalsPage-C083nJ_r.js → dist/assets/EvalsPage-PLgW05y7.js} +1 -1
  5. package/dist/assets/{IssuesPage-CT0bZRHa.js → IssuesPage-BcFWiFjF.js} +1 -1
  6. package/dist/assets/{MobileApp-C2KnuGME.js → MobileApp-Dky_U9DL.js} +2 -2
  7. package/dist/assets/{Modal-DBBO2zz5.js → Modal-8cCCnDgy.js} +1 -1
  8. package/dist/assets/{PageScroll-SIRwsLTd.js → PageScroll-GBlw382O.js} +1 -1
  9. package/{dist-public/assets/ProjectsPage-D0HqYHRn.js → dist/assets/ProjectsPage-CdKKLnBH.js} +1 -1
  10. package/dist/assets/{SessionInterface-0-vo2-DP.js → SessionInterface-Dp-rUO1H.js} +1 -1
  11. package/dist/assets/{SessionWindow-4nGOk4Sk.js → SessionWindow-D2zgUVTT.js} +1 -1
  12. package/dist/assets/{Settings-CbJc5iiw.js → Settings-7cKD-jHj.js} +1 -1
  13. package/dist/assets/{Thread-B4DKYCbS.js → Thread-BkaL_dog.js} +2 -2
  14. package/dist/assets/{TimelineChat-ZQaBhR9u.js → TimelineChat-DOKwQ3Sd.js} +1 -1
  15. package/dist/assets/{data-WqpNepoA.js → data-CHkRTrsm.js} +1 -1
  16. package/dist/assets/index-Ba-oHmxn.css +1 -0
  17. package/dist/assets/{index-BmWzPPum.js → index-Di9gWPc6.js} +5 -5
  18. package/dist/assets/{sessionSurface-Dohgo68g.js → sessionSurface-H34ExWBA.js} +1 -1
  19. package/dist/index.html +2 -2
  20. package/dist-public/assets/{App-CIXSNk3d.js → App-DebAWelc.js} +2 -2
  21. package/{dist/assets/Dashboard-C5ap-Sga.css → dist-public/assets/Dashboard-BnuhLJ6X.css} +1 -1
  22. package/dist-public/assets/Dashboard-DhuzsOUh.js +27 -0
  23. package/{dist/assets/EvalsPage-BJ6l41jM.js → dist-public/assets/EvalsPage-CHc1tT-0.js} +1 -1
  24. package/dist-public/assets/{IssuesPage-BLx-FEXN.js → IssuesPage-BqojZnnr.js} +1 -1
  25. package/dist-public/assets/{MobileApp-CR7H1hgv.js → MobileApp-DevENU8x.js} +2 -2
  26. package/dist-public/assets/{Modal-BekC26v7.js → Modal-DAUYhrDn.js} +1 -1
  27. package/dist-public/assets/{PageScroll-BX3QrjWv.js → PageScroll-Bxaqks4c.js} +1 -1
  28. package/{dist/assets/ProjectsPage-D3aIBnwN.js → dist-public/assets/ProjectsPage-GHR6vTck.js} +1 -1
  29. package/dist-public/assets/{SessionInterface-C6EUVOH-.js → SessionInterface-C0Fy_tWd.js} +1 -1
  30. package/dist-public/assets/{SessionWindow-CBhwLcUH.js → SessionWindow-CkdNpele.js} +1 -1
  31. package/dist-public/assets/{Settings-WCYxGmjP.js → Settings-1XN_EQnW.js} +1 -1
  32. package/dist-public/assets/{Thread-DIqbUH2H.js → Thread-BHCpsJIa.js} +2 -2
  33. package/dist-public/assets/{TimelineChat-ra6ghTRh.js → TimelineChat-N9RZ6v95.js} +1 -1
  34. package/dist-public/assets/{data-BUogns2V.js → data-BmO9k_xP.js} +1 -1
  35. package/dist-public/assets/index-Ba-oHmxn.css +1 -0
  36. package/dist-public/assets/{index-FSk78z2I.js → index-oM1cUuGR.js} +9 -9
  37. package/dist-public/assets/{sessionSurface-QU1AIVAc.js → sessionSurface-BNwc7E-I.js} +1 -1
  38. package/dist-public/index.html +2 -2
  39. package/package.json +3 -3
  40. package/dist/assets/Dashboard-BcaXSPW2.js +0 -27
  41. package/dist/assets/index-Dsczsrna.css +0 -1
  42. package/dist-public/assets/Dashboard-BNoB1BR_.js +0 -27
  43. package/dist-public/assets/index-Dsczsrna.css +0 -1
@@ -1,27 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./SessionInterface-C6EUVOH-.js","./index-FSk78z2I.js","./index-Dsczsrna.css","./data-BUogns2V.js","./sessionSurface-QU1AIVAc.js","./TimelineChat-ra6ghTRh.js","./Thread-DIqbUH2H.js","./PageScroll-BX3QrjWv.js","./Modal-BekC26v7.js","./TimelineChat-dIRGbAJA.css","./SessionWindow-CBhwLcUH.js","./bindings-BC9vqpYU.js","./SessionInterface-6GBZ9nXN.css","./EvalsPage-C083nJ_r.js","./IssuesPage-BLx-FEXN.js","./Settings-WCYxGmjP.js"])))=>i.map(i=>d[i]);
2
- import{r as b,v as Ga,R as qa,j as p,u as Ze,w as Ua,I as Sn,e as Za,f as Qa,h as Ja,n as Ie,x as ec,T as tc,S as nc,_ as Bn}from"./index-FSk78z2I.js";import{b as st,G as Es,l as _r,A as rc,c as oc,L as sc}from"./SessionWindow-CBhwLcUH.js";import{a0 as ic,a1 as ac,s as Hr,a2 as cc,_ as Er,a3 as lc,g as Ns,t as lo,a4 as uc,a5 as dc,E as fc,x as uo,a6 as hc,P as gc,y as pc,a7 as mc,a8 as yc,K as xc,a9 as wc}from"./Thread-DIqbUH2H.js";import{M as vc}from"./Modal-BekC26v7.js";import{A as bc,k as Ss,a as Nr,f as fe}from"./bindings-BC9vqpYU.js";import{m as _c,n as Ec,X as Nc,Y as Sc}from"./data-BUogns2V.js";function he(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=he(e[n]))!==""&&(t+=(t&&" ")+r);else for(let n in e)e[n]&&(t+=(t&&" ")+n);return t}var kc={value:()=>{}};function Fn(){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 kn(n)}function kn(e){this._=e}function Mc(e,t){return e.trim().split(/^|\s+/).map(function(n){var r="",o=n.indexOf(".");if(o>=0&&(r=n.slice(o+1),n=n.slice(0,o)),n&&!t.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:r}})}kn.prototype=Fn.prototype={constructor:kn,on:function(e,t){var n=this._,r=Mc(e+"",n),o,s=-1,i=r.length;if(arguments.length<2){for(;++s<i;)if((o=(e=r[s]).type)&&(o=Cc(n[o],e.name)))return o;return}if(t!=null&&typeof t!="function")throw new Error("invalid callback: "+t);for(;++s<i;)if(o=(e=r[s]).type)n[o]=fo(n[o],e.name,t);else if(t==null)for(o in n)n[o]=fo(n[o],e.name,null);return this},copy:function(){var e={},t=this._;for(var n in t)e[n]=t[n].slice();return new kn(e)},call:function(e,t){if((o=arguments.length-2)>0)for(var n=new Array(o),r=0,o,s;r<o;++r)n[r]=arguments[r+2];if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(s=this._[e],r=0,o=s.length;r<o;++r)s[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],o=0,s=r.length;o<s;++o)r[o].value.apply(t,n)}};function Cc(e,t){for(var n=0,r=e.length,o;n<r;++n)if((o=e[n]).name===t)return o.value}function fo(e,t,n){for(var r=0,o=e.length;r<o;++r)if(e[r].name===t){e[r]=kc,e=e.slice(0,r).concat(e.slice(r+1));break}return n!=null&&e.push({name:t,value:n}),e}var Sr="http://www.w3.org/1999/xhtml";const ho={svg:"http://www.w3.org/2000/svg",xhtml:Sr,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function On(e){var t=e+="",n=t.indexOf(":");return n>=0&&(t=e.slice(0,n))!=="xmlns"&&(e=e.slice(n+1)),ho.hasOwnProperty(t)?{space:ho[t],local:e}:e}function Ac(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===Sr&&t.documentElement.namespaceURI===Sr?t.createElement(e):t.createElementNS(n,e)}}function $c(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function ks(e){var t=On(e);return(t.local?$c:Ac)(t)}function Ic(){}function Vr(e){return e==null?Ic:function(){return this.querySelector(e)}}function jc(e){typeof e!="function"&&(e=Vr(e));for(var t=this._groups,n=t.length,r=new Array(n),o=0;o<n;++o)for(var s=t[o],i=s.length,a=r[o]=new Array(i),l,c,d=0;d<i;++d)(l=s[d])&&(c=e.call(l,l.__data__,d,s))&&("__data__"in l&&(c.__data__=l.__data__),a[d]=c);return new ke(r,this._parents)}function Pc(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function Dc(){return[]}function Ms(e){return e==null?Dc:function(){return this.querySelectorAll(e)}}function Tc(e){return function(){return Pc(e.apply(this,arguments))}}function Rc(e){typeof e=="function"?e=Tc(e):e=Ms(e);for(var t=this._groups,n=t.length,r=[],o=[],s=0;s<n;++s)for(var i=t[s],a=i.length,l,c=0;c<a;++c)(l=i[c])&&(r.push(e.call(l,l.__data__,c,i)),o.push(l));return new ke(r,o)}function Cs(e){return function(){return this.matches(e)}}function As(e){return function(t){return t.matches(e)}}var Lc=Array.prototype.find;function zc(e){return function(){return Lc.call(this.children,e)}}function Hc(){return this.firstElementChild}function Vc(e){return this.select(e==null?Hc:zc(typeof e=="function"?e:As(e)))}var Bc=Array.prototype.filter;function Fc(){return Array.from(this.children)}function Oc(e){return function(){return Bc.call(this.children,e)}}function Wc(e){return this.selectAll(e==null?Fc:Oc(typeof e=="function"?e:As(e)))}function Yc(e){typeof e!="function"&&(e=Cs(e));for(var t=this._groups,n=t.length,r=new Array(n),o=0;o<n;++o)for(var s=t[o],i=s.length,a=r[o]=[],l,c=0;c<i;++c)(l=s[c])&&e.call(l,l.__data__,c,s)&&a.push(l);return new ke(r,this._parents)}function $s(e){return new Array(e.length)}function Xc(){return new ke(this._enter||this._groups.map($s),this._parents)}function In(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}In.prototype={constructor:In,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 Kc(e){return function(){return e}}function Gc(e,t,n,r,o,s){for(var i=0,a,l=t.length,c=s.length;i<c;++i)(a=t[i])?(a.__data__=s[i],r[i]=a):n[i]=new In(e,s[i]);for(;i<l;++i)(a=t[i])&&(o[i]=a)}function qc(e,t,n,r,o,s,i){var a,l,c=new Map,d=t.length,u=s.length,f=new Array(d),h;for(a=0;a<d;++a)(l=t[a])&&(f[a]=h=i.call(l,l.__data__,a,t)+"",c.has(h)?o[a]=l:c.set(h,l));for(a=0;a<u;++a)h=i.call(e,s[a],a,s)+"",(l=c.get(h))?(r[a]=l,l.__data__=s[a],c.delete(h)):n[a]=new In(e,s[a]);for(a=0;a<d;++a)(l=t[a])&&c.get(f[a])===l&&(o[a]=l)}function Uc(e){return e.__data__}function Zc(e,t){if(!arguments.length)return Array.from(this,Uc);var n=t?qc:Gc,r=this._parents,o=this._groups;typeof e!="function"&&(e=Kc(e));for(var s=o.length,i=new Array(s),a=new Array(s),l=new Array(s),c=0;c<s;++c){var d=r[c],u=o[c],f=u.length,h=Qc(e.call(d,d&&d.__data__,c,r)),g=h.length,w=a[c]=new Array(g),x=i[c]=new Array(g),y=l[c]=new Array(f);n(d,u,w,x,y,h,t);for(var E=0,m=0,v,M;E<g;++E)if(v=w[E]){for(E>=m&&(m=E+1);!(M=x[m])&&++m<g;);v._next=M||null}}return i=new ke(i,r),i._enter=a,i._exit=l,i}function Qc(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function Jc(){return new ke(this._exit||this._groups.map($s),this._parents)}function el(e,t,n){var r=this.enter(),o=this,s=this.exit();return typeof e=="function"?(r=e(r),r&&(r=r.selection())):r=r.append(e+""),t!=null&&(o=t(o),o&&(o=o.selection())),n==null?s.remove():n(s),r&&o?r.merge(o).order():o}function tl(e){for(var t=e.selection?e.selection():e,n=this._groups,r=t._groups,o=n.length,s=r.length,i=Math.min(o,s),a=new Array(o),l=0;l<i;++l)for(var c=n[l],d=r[l],u=c.length,f=a[l]=new Array(u),h,g=0;g<u;++g)(h=c[g]||d[g])&&(f[g]=h);for(;l<o;++l)a[l]=n[l];return new ke(a,this._parents)}function nl(){for(var e=this._groups,t=-1,n=e.length;++t<n;)for(var r=e[t],o=r.length-1,s=r[o],i;--o>=0;)(i=r[o])&&(s&&i.compareDocumentPosition(s)^4&&s.parentNode.insertBefore(i,s),s=i);return this}function rl(e){e||(e=ol);function t(u,f){return u&&f?e(u.__data__,f.__data__):!u-!f}for(var n=this._groups,r=n.length,o=new Array(r),s=0;s<r;++s){for(var i=n[s],a=i.length,l=o[s]=new Array(a),c,d=0;d<a;++d)(c=i[d])&&(l[d]=c);l.sort(t)}return new ke(o,this._parents).order()}function ol(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function sl(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function il(){return Array.from(this)}function al(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],o=0,s=r.length;o<s;++o){var i=r[o];if(i)return i}return null}function cl(){let e=0;for(const t of this)++e;return e}function ll(){return!this.node()}function ul(e){for(var t=this._groups,n=0,r=t.length;n<r;++n)for(var o=t[n],s=0,i=o.length,a;s<i;++s)(a=o[s])&&e.call(a,a.__data__,s,o);return this}function dl(e){return function(){this.removeAttribute(e)}}function fl(e){return function(){this.removeAttributeNS(e.space,e.local)}}function hl(e,t){return function(){this.setAttribute(e,t)}}function gl(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function pl(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}}function ml(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 yl(e,t){var n=On(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?fl:dl:typeof t=="function"?n.local?ml:pl:n.local?gl:hl)(n,t))}function Is(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function xl(e){return function(){this.style.removeProperty(e)}}function wl(e,t,n){return function(){this.style.setProperty(e,t,n)}}function vl(e,t,n){return function(){var r=t.apply(this,arguments);r==null?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function bl(e,t,n){return arguments.length>1?this.each((t==null?xl:typeof t=="function"?vl:wl)(e,t,n??"")):bt(this.node(),e)}function bt(e,t){return e.style.getPropertyValue(t)||Is(e).getComputedStyle(e,null).getPropertyValue(t)}function _l(e){return function(){delete this[e]}}function El(e,t){return function(){this[e]=t}}function Nl(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function Sl(e,t){return arguments.length>1?this.each((t==null?_l:typeof t=="function"?Nl:El)(e,t)):this.node()[e]}function js(e){return e.trim().split(/^|\s+/)}function Br(e){return e.classList||new Ps(e)}function Ps(e){this._node=e,this._names=js(e.getAttribute("class")||"")}Ps.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 Ds(e,t){for(var n=Br(e),r=-1,o=t.length;++r<o;)n.add(t[r])}function Ts(e,t){for(var n=Br(e),r=-1,o=t.length;++r<o;)n.remove(t[r])}function kl(e){return function(){Ds(this,e)}}function Ml(e){return function(){Ts(this,e)}}function Cl(e,t){return function(){(t.apply(this,arguments)?Ds:Ts)(this,e)}}function Al(e,t){var n=js(e+"");if(arguments.length<2){for(var r=Br(this.node()),o=-1,s=n.length;++o<s;)if(!r.contains(n[o]))return!1;return!0}return this.each((typeof t=="function"?Cl:t?kl:Ml)(n,t))}function $l(){this.textContent=""}function Il(e){return function(){this.textContent=e}}function jl(e){return function(){var t=e.apply(this,arguments);this.textContent=t??""}}function Pl(e){return arguments.length?this.each(e==null?$l:(typeof e=="function"?jl:Il)(e)):this.node().textContent}function Dl(){this.innerHTML=""}function Tl(e){return function(){this.innerHTML=e}}function Rl(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??""}}function Ll(e){return arguments.length?this.each(e==null?Dl:(typeof e=="function"?Rl:Tl)(e)):this.node().innerHTML}function zl(){this.nextSibling&&this.parentNode.appendChild(this)}function Hl(){return this.each(zl)}function Vl(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function Bl(){return this.each(Vl)}function Fl(e){var t=typeof e=="function"?e:ks(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function Ol(){return null}function Wl(e,t){var n=typeof e=="function"?e:ks(e),r=t==null?Ol:typeof t=="function"?t:Vr(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})}function Yl(){var e=this.parentNode;e&&e.removeChild(this)}function Xl(){return this.each(Yl)}function Kl(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function Gl(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function ql(e){return this.select(e?Gl:Kl)}function Ul(e){return arguments.length?this.property("__data__",e):this.node().__data__}function Zl(e){return function(t){e.call(this,t,this.__data__)}}function Ql(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 Jl(e){return function(){var t=this.__on;if(t){for(var n=0,r=-1,o=t.length,s;n<o;++n)s=t[n],(!e.type||s.type===e.type)&&s.name===e.name?this.removeEventListener(s.type,s.listener,s.options):t[++r]=s;++r?t.length=r:delete this.__on}}}function eu(e,t,n){return function(){var r=this.__on,o,s=Zl(t);if(r){for(var i=0,a=r.length;i<a;++i)if((o=r[i]).type===e.type&&o.name===e.name){this.removeEventListener(o.type,o.listener,o.options),this.addEventListener(o.type,o.listener=s,o.options=n),o.value=t;return}}this.addEventListener(e.type,s,n),o={type:e.type,name:e.name,value:t,listener:s,options:n},r?r.push(o):this.__on=[o]}}function tu(e,t,n){var r=Ql(e+""),o,s=r.length,i;if(arguments.length<2){var a=this.node().__on;if(a){for(var l=0,c=a.length,d;l<c;++l)for(o=0,d=a[l];o<s;++o)if((i=r[o]).type===d.type&&i.name===d.name)return d.value}return}for(a=t?eu:Jl,o=0;o<s;++o)this.each(a(r[o],t,n));return this}function Rs(e,t,n){var r=Is(e),o=r.CustomEvent;typeof o=="function"?o=new o(t,n):(o=r.document.createEvent("Event"),n?(o.initEvent(t,n.bubbles,n.cancelable),o.detail=n.detail):o.initEvent(t,!1,!1)),e.dispatchEvent(o)}function nu(e,t){return function(){return Rs(this,e,t)}}function ru(e,t){return function(){return Rs(this,e,t.apply(this,arguments))}}function ou(e,t){return this.each((typeof t=="function"?ru:nu)(e,t))}function*su(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],o=0,s=r.length,i;o<s;++o)(i=r[o])&&(yield i)}var Ls=[null];function ke(e,t){this._groups=e,this._parents=t}function Jt(){return new ke([[document.documentElement]],Ls)}function iu(){return this}ke.prototype=Jt.prototype={constructor:ke,select:jc,selectAll:Rc,selectChild:Vc,selectChildren:Wc,filter:Yc,data:Zc,enter:Xc,exit:Jc,join:el,merge:tl,selection:iu,order:nl,sort:rl,call:sl,nodes:il,node:al,size:cl,empty:ll,each:ul,attr:yl,style:bl,property:Sl,classed:Al,text:Pl,html:Ll,raise:Hl,lower:Bl,append:Fl,insert:Wl,remove:Xl,clone:ql,datum:Ul,on:tu,dispatch:ou,[Symbol.iterator]:su};function Se(e){return typeof e=="string"?new ke([[document.querySelector(e)]],[document.documentElement]):new ke([[e]],Ls)}function au(e){let t;for(;t=e.sourceEvent;)e=t;return e}function je(e,t){if(e=au(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 o=t.getBoundingClientRect();return[e.clientX-o.left-t.clientLeft,e.clientY-o.top-t.clientTop]}}return[e.pageX,e.pageY]}const cu={passive:!1},Ot={capture:!0,passive:!1};function cr(e){e.stopImmediatePropagation()}function wt(e){e.preventDefault(),e.stopImmediatePropagation()}function zs(e){var t=e.document.documentElement,n=Se(e).on("dragstart.drag",wt,Ot);"onselectstart"in t?n.on("selectstart.drag",wt,Ot):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect="none")}function Hs(e,t){var n=e.document.documentElement,r=Se(e).on("dragstart.drag",null);t&&(r.on("click.drag",wt,Ot),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 gn=e=>()=>e;function kr(e,{sourceEvent:t,subject:n,target:r,identifier:o,active:s,x:i,y:a,dx:l,dy:c,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:o,enumerable:!0,configurable:!0},active:{value:s,enumerable:!0,configurable:!0},x:{value:i,enumerable:!0,configurable:!0},y:{value:a,enumerable:!0,configurable:!0},dx:{value:l,enumerable:!0,configurable:!0},dy:{value:c,enumerable:!0,configurable:!0},_:{value:d}})}kr.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function lu(e){return!e.ctrlKey&&!e.button}function uu(){return this.parentNode}function du(e,t){return t??{x:e.x,y:e.y}}function fu(){return navigator.maxTouchPoints||"ontouchstart"in this}function Vs(){var e=lu,t=uu,n=du,r=fu,o={},s=Fn("start","drag","end"),i=0,a,l,c,d,u=0;function f(v){v.on("mousedown.drag",h).filter(r).on("touchstart.drag",x).on("touchmove.drag",y,cu).on("touchend.drag touchcancel.drag",E).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function h(v,M){if(!(d||!e.call(this,v,M))){var S=m(this,t.call(this,v,M),v,M,"mouse");S&&(Se(v.view).on("mousemove.drag",g,Ot).on("mouseup.drag",w,Ot),zs(v.view),cr(v),c=!1,a=v.clientX,l=v.clientY,S("start",v))}}function g(v){if(wt(v),!c){var M=v.clientX-a,S=v.clientY-l;c=M*M+S*S>u}o.mouse("drag",v)}function w(v){Se(v.view).on("mousemove.drag mouseup.drag",null),Hs(v.view,c),wt(v),o.mouse("end",v)}function x(v,M){if(e.call(this,v,M)){var S=v.changedTouches,j=t.call(this,v,M),T=S.length,P,O;for(P=0;P<T;++P)(O=m(this,j,v,M,S[P].identifier,S[P]))&&(cr(v),O("start",v,S[P]))}}function y(v){var M=v.changedTouches,S=M.length,j,T;for(j=0;j<S;++j)(T=o[M[j].identifier])&&(wt(v),T("drag",v,M[j]))}function E(v){var M=v.changedTouches,S=M.length,j,T;for(d&&clearTimeout(d),d=setTimeout(function(){d=null},500),j=0;j<S;++j)(T=o[M[j].identifier])&&(cr(v),T("end",v,M[j]))}function m(v,M,S,j,T,P){var O=s.copy(),C=je(P||S,M),N,z,_;if((_=n.call(v,new kr("beforestart",{sourceEvent:S,target:f,identifier:T,active:i,x:C[0],y:C[1],dx:0,dy:0,dispatch:O}),j))!=null)return N=_.x-C[0]||0,z=_.y-C[1]||0,function A(k,I,R){var $=C,B;switch(k){case"start":o[T]=A,B=i++;break;case"end":delete o[T],--i;case"drag":C=je(R||I,M),B=i;break}O.call(k,v,new kr(k,{sourceEvent:I,subject:_,target:f,identifier:T,active:B,x:C[0]+N,y:C[1]+z,dx:C[0]-$[0],dy:C[1]-$[1],dispatch:O}),j)}}return f.filter=function(v){return arguments.length?(e=typeof v=="function"?v:gn(!!v),f):e},f.container=function(v){return arguments.length?(t=typeof v=="function"?v:gn(v),f):t},f.subject=function(v){return arguments.length?(n=typeof v=="function"?v:gn(v),f):n},f.touchable=function(v){return arguments.length?(r=typeof v=="function"?v:gn(!!v),f):r},f.on=function(){var v=s.on.apply(s,arguments);return v===s?f:v},f.clickDistance=function(v){return arguments.length?(u=(v=+v)*v,f):Math.sqrt(u)},f}function Fr(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function Bs(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function en(){}var Wt=.7,jn=1/Wt,vt="\\s*([+-]?\\d+)\\s*",Yt="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Ve="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",hu=/^#([0-9a-f]{3,8})$/,gu=new RegExp(`^rgb\\(${vt},${vt},${vt}\\)$`),pu=new RegExp(`^rgb\\(${Ve},${Ve},${Ve}\\)$`),mu=new RegExp(`^rgba\\(${vt},${vt},${vt},${Yt}\\)$`),yu=new RegExp(`^rgba\\(${Ve},${Ve},${Ve},${Yt}\\)$`),xu=new RegExp(`^hsl\\(${Yt},${Ve},${Ve}\\)$`),wu=new RegExp(`^hsla\\(${Yt},${Ve},${Ve},${Yt}\\)$`),go={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};Fr(en,it,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:po,formatHex:po,formatHex8:vu,formatHsl:bu,formatRgb:mo,toString:mo});function po(){return this.rgb().formatHex()}function vu(){return this.rgb().formatHex8()}function bu(){return Fs(this).formatHsl()}function mo(){return this.rgb().formatRgb()}function it(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=hu.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?yo(t):n===3?new Ee(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?pn(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?pn(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=gu.exec(e))?new Ee(t[1],t[2],t[3],1):(t=pu.exec(e))?new Ee(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=mu.exec(e))?pn(t[1],t[2],t[3],t[4]):(t=yu.exec(e))?pn(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=xu.exec(e))?vo(t[1],t[2]/100,t[3]/100,1):(t=wu.exec(e))?vo(t[1],t[2]/100,t[3]/100,t[4]):go.hasOwnProperty(e)?yo(go[e]):e==="transparent"?new Ee(NaN,NaN,NaN,0):null}function yo(e){return new Ee(e>>16&255,e>>8&255,e&255,1)}function pn(e,t,n,r){return r<=0&&(e=t=n=NaN),new Ee(e,t,n,r)}function _u(e){return e instanceof en||(e=it(e)),e?(e=e.rgb(),new Ee(e.r,e.g,e.b,e.opacity)):new Ee}function Mr(e,t,n,r){return arguments.length===1?_u(e):new Ee(e,t,n,r??1)}function Ee(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}Fr(Ee,Mr,Bs(en,{brighter(e){return e=e==null?jn:Math.pow(jn,e),new Ee(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?Wt:Math.pow(Wt,e),new Ee(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Ee(rt(this.r),rt(this.g),rt(this.b),Pn(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:xo,formatHex:xo,formatHex8:Eu,formatRgb:wo,toString:wo}));function xo(){return`#${nt(this.r)}${nt(this.g)}${nt(this.b)}`}function Eu(){return`#${nt(this.r)}${nt(this.g)}${nt(this.b)}${nt((isNaN(this.opacity)?1:this.opacity)*255)}`}function wo(){const e=Pn(this.opacity);return`${e===1?"rgb(":"rgba("}${rt(this.r)}, ${rt(this.g)}, ${rt(this.b)}${e===1?")":`, ${e})`}`}function Pn(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function rt(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function nt(e){return e=rt(e),(e<16?"0":"")+e.toString(16)}function vo(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new Pe(e,t,n,r)}function Fs(e){if(e instanceof Pe)return new Pe(e.h,e.s,e.l,e.opacity);if(e instanceof en||(e=it(e)),!e)return new Pe;if(e instanceof Pe)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,o=Math.min(t,n,r),s=Math.max(t,n,r),i=NaN,a=s-o,l=(s+o)/2;return a?(t===s?i=(n-r)/a+(n<r)*6:n===s?i=(r-t)/a+2:i=(t-n)/a+4,a/=l<.5?s+o:2-s-o,i*=60):a=l>0&&l<1?0:i,new Pe(i,a,l,e.opacity)}function Nu(e,t,n,r){return arguments.length===1?Fs(e):new Pe(e,t,n,r??1)}function Pe(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}Fr(Pe,Nu,Bs(en,{brighter(e){return e=e==null?jn:Math.pow(jn,e),new Pe(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Wt:Math.pow(Wt,e),new Pe(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,o=2*n-r;return new Ee(lr(e>=240?e-240:e+120,o,r),lr(e,o,r),lr(e<120?e+240:e-120,o,r),this.opacity)},clamp(){return new Pe(bo(this.h),mn(this.s),mn(this.l),Pn(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=Pn(this.opacity);return`${e===1?"hsl(":"hsla("}${bo(this.h)}, ${mn(this.s)*100}%, ${mn(this.l)*100}%${e===1?")":`, ${e})`}`}}));function bo(e){return e=(e||0)%360,e<0?e+360:e}function mn(e){return Math.max(0,Math.min(1,e||0))}function lr(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 Or=e=>()=>e;function Su(e,t){return function(n){return e+n*t}}function ku(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 Mu(e){return(e=+e)==1?Os:function(t,n){return n-t?ku(t,n,e):Or(isNaN(t)?n:t)}}function Os(e,t){var n=t-e;return n?Su(e,n):Or(isNaN(e)?t:e)}const Dn=function e(t){var n=Mu(t);function r(o,s){var i=n((o=Mr(o)).r,(s=Mr(s)).r),a=n(o.g,s.g),l=n(o.b,s.b),c=Os(o.opacity,s.opacity);return function(d){return o.r=i(d),o.g=a(d),o.b=l(d),o.opacity=c(d),o+""}}return r.gamma=e,r}(1);function Cu(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,r=t.slice(),o;return function(s){for(o=0;o<n;++o)r[o]=e[o]*(1-s)+t[o]*s;return r}}function Au(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function $u(e,t){var n=t?t.length:0,r=e?Math.min(n,e.length):0,o=new Array(r),s=new Array(n),i;for(i=0;i<r;++i)o[i]=Bt(e[i],t[i]);for(;i<n;++i)s[i]=t[i];return function(a){for(i=0;i<r;++i)s[i]=o[i](a);return s}}function Iu(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function He(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function ju(e,t){var n={},r={},o;(e===null||typeof e!="object")&&(e={}),(t===null||typeof t!="object")&&(t={});for(o in t)o in e?n[o]=Bt(e[o],t[o]):r[o]=t[o];return function(s){for(o in n)r[o]=n[o](s);return r}}var Cr=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,ur=new RegExp(Cr.source,"g");function Pu(e){return function(){return e}}function Du(e){return function(t){return e(t)+""}}function Ws(e,t){var n=Cr.lastIndex=ur.lastIndex=0,r,o,s,i=-1,a=[],l=[];for(e=e+"",t=t+"";(r=Cr.exec(e))&&(o=ur.exec(t));)(s=o.index)>n&&(s=t.slice(n,s),a[i]?a[i]+=s:a[++i]=s),(r=r[0])===(o=o[0])?a[i]?a[i]+=o:a[++i]=o:(a[++i]=null,l.push({i,x:He(r,o)})),n=ur.lastIndex;return n<t.length&&(s=t.slice(n),a[i]?a[i]+=s:a[++i]=s),a.length<2?l[0]?Du(l[0].x):Pu(t):(t=l.length,function(c){for(var d=0,u;d<t;++d)a[(u=l[d]).i]=u.x(c);return a.join("")})}function Bt(e,t){var n=typeof t,r;return t==null||n==="boolean"?Or(t):(n==="number"?He:n==="string"?(r=it(t))?(t=r,Dn):Ws:t instanceof it?Dn:t instanceof Date?Iu:Au(t)?Cu:Array.isArray(t)?$u:typeof t.valueOf!="function"&&typeof t.toString!="function"||isNaN(t)?ju:He)(e,t)}var _o=180/Math.PI,Ar={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Ys(e,t,n,r,o,s){var i,a,l;return(i=Math.sqrt(e*e+t*t))&&(e/=i,t/=i),(l=e*n+t*r)&&(n-=e*l,r-=t*l),(a=Math.sqrt(n*n+r*r))&&(n/=a,r/=a,l/=a),e*r<t*n&&(e=-e,t=-t,l=-l,i=-i),{translateX:o,translateY:s,rotate:Math.atan2(t,e)*_o,skewX:Math.atan(l)*_o,scaleX:i,scaleY:a}}var yn;function Tu(e){const t=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?Ar:Ys(t.a,t.b,t.c,t.d,t.e,t.f)}function Ru(e){return e==null||(yn||(yn=document.createElementNS("http://www.w3.org/2000/svg","g")),yn.setAttribute("transform",e),!(e=yn.transform.baseVal.consolidate()))?Ar:(e=e.matrix,Ys(e.a,e.b,e.c,e.d,e.e,e.f))}function Xs(e,t,n,r){function o(c){return c.length?c.pop()+" ":""}function s(c,d,u,f,h,g){if(c!==u||d!==f){var w=h.push("translate(",null,t,null,n);g.push({i:w-4,x:He(c,u)},{i:w-2,x:He(d,f)})}else(u||f)&&h.push("translate("+u+t+f+n)}function i(c,d,u,f){c!==d?(c-d>180?d+=360:d-c>180&&(c+=360),f.push({i:u.push(o(u)+"rotate(",null,r)-2,x:He(c,d)})):d&&u.push(o(u)+"rotate("+d+r)}function a(c,d,u,f){c!==d?f.push({i:u.push(o(u)+"skewX(",null,r)-2,x:He(c,d)}):d&&u.push(o(u)+"skewX("+d+r)}function l(c,d,u,f,h,g){if(c!==u||d!==f){var w=h.push(o(h)+"scale(",null,",",null,")");g.push({i:w-4,x:He(c,u)},{i:w-2,x:He(d,f)})}else(u!==1||f!==1)&&h.push(o(h)+"scale("+u+","+f+")")}return function(c,d){var u=[],f=[];return c=e(c),d=e(d),s(c.translateX,c.translateY,d.translateX,d.translateY,u,f),i(c.rotate,d.rotate,u,f),a(c.skewX,d.skewX,u,f),l(c.scaleX,c.scaleY,d.scaleX,d.scaleY,u,f),c=d=null,function(h){for(var g=-1,w=f.length,x;++g<w;)u[(x=f[g]).i]=x.x(h);return u.join("")}}}var Lu=Xs(Tu,"px, ","px)","deg)"),zu=Xs(Ru,", ",")",")"),Hu=1e-12;function Eo(e){return((e=Math.exp(e))+1/e)/2}function Vu(e){return((e=Math.exp(e))-1/e)/2}function Bu(e){return((e=Math.exp(2*e))-1)/(e+1)}const Mn=function e(t,n,r){function o(s,i){var a=s[0],l=s[1],c=s[2],d=i[0],u=i[1],f=i[2],h=d-a,g=u-l,w=h*h+g*g,x,y;if(w<Hu)y=Math.log(f/c)/t,x=function(j){return[a+j*h,l+j*g,c*Math.exp(t*j*y)]};else{var E=Math.sqrt(w),m=(f*f-c*c+r*w)/(2*c*n*E),v=(f*f-c*c-r*w)/(2*f*n*E),M=Math.log(Math.sqrt(m*m+1)-m),S=Math.log(Math.sqrt(v*v+1)-v);y=(S-M)/t,x=function(j){var T=j*y,P=Eo(M),O=c/(n*E)*(P*Bu(t*T+M)-Vu(M));return[a+O*h,l+O*g,c*P/Eo(t*T+M)]}}return x.duration=y*1e3*t/Math.SQRT2,x}return o.rho=function(s){var i=Math.max(.001,+s),a=i*i,l=a*a;return e(i,a,l)},o}(Math.SQRT2,2,4);var _t=0,zt=0,Tt=0,Ks=1e3,Tn,Ht,Rn=0,at=0,Wn=0,Xt=typeof performance=="object"&&performance.now?performance:Date,Gs=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function Wr(){return at||(Gs(Fu),at=Xt.now()+Wn)}function Fu(){at=0}function Ln(){this._call=this._time=this._next=null}Ln.prototype=qs.prototype={constructor:Ln,restart:function(e,t,n){if(typeof e!="function")throw new TypeError("callback is not a function");n=(n==null?Wr():+n)+(t==null?0:+t),!this._next&&Ht!==this&&(Ht?Ht._next=this:Tn=this,Ht=this),this._call=e,this._time=n,$r()},stop:function(){this._call&&(this._call=null,this._time=1/0,$r())}};function qs(e,t,n){var r=new Ln;return r.restart(e,t,n),r}function Ou(){Wr(),++_t;for(var e=Tn,t;e;)(t=at-e._time)>=0&&e._call.call(void 0,t),e=e._next;--_t}function No(){at=(Rn=Xt.now())+Wn,_t=zt=0;try{Ou()}finally{_t=0,Yu(),at=0}}function Wu(){var e=Xt.now(),t=e-Rn;t>Ks&&(Wn-=t,Rn=e)}function Yu(){for(var e,t=Tn,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:Tn=n);Ht=e,$r(r)}function $r(e){if(!_t){zt&&(zt=clearTimeout(zt));var t=e-at;t>24?(e<1/0&&(zt=setTimeout(No,e-Xt.now()-Wn)),Tt&&(Tt=clearInterval(Tt))):(Tt||(Rn=Xt.now(),Tt=setInterval(Wu,Ks)),_t=1,Gs(No))}}function So(e,t,n){var r=new Ln;return t=t==null?0:+t,r.restart(o=>{r.stop(),e(o+t)},t,n),r}var Xu=Fn("start","end","cancel","interrupt"),Ku=[],Us=0,ko=1,Ir=2,Cn=3,Mo=4,jr=5,An=6;function Yn(e,t,n,r,o,s){var i=e.__transition;if(!i)e.__transition={};else if(n in i)return;Gu(e,n,{name:t,index:r,group:o,on:Xu,tween:Ku,time:s.time,delay:s.delay,duration:s.duration,ease:s.ease,timer:null,state:Us})}function Yr(e,t){var n=Le(e,t);if(n.state>Us)throw new Error("too late; already scheduled");return n}function Be(e,t){var n=Le(e,t);if(n.state>Cn)throw new Error("too late; already running");return n}function Le(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function Gu(e,t,n){var r=e.__transition,o;r[t]=n,n.timer=qs(s,0,n.time);function s(c){n.state=ko,n.timer.restart(i,n.delay,n.time),n.delay<=c&&i(c-n.delay)}function i(c){var d,u,f,h;if(n.state!==ko)return l();for(d in r)if(h=r[d],h.name===n.name){if(h.state===Cn)return So(i);h.state===Mo?(h.state=An,h.timer.stop(),h.on.call("interrupt",e,e.__data__,h.index,h.group),delete r[d]):+d<t&&(h.state=An,h.timer.stop(),h.on.call("cancel",e,e.__data__,h.index,h.group),delete r[d])}if(So(function(){n.state===Cn&&(n.state=Mo,n.timer.restart(a,n.delay,n.time),a(c))}),n.state=Ir,n.on.call("start",e,e.__data__,n.index,n.group),n.state===Ir){for(n.state=Cn,o=new Array(f=n.tween.length),d=0,u=-1;d<f;++d)(h=n.tween[d].value.call(e,e.__data__,n.index,n.group))&&(o[++u]=h);o.length=u+1}}function a(c){for(var d=c<n.duration?n.ease.call(null,c/n.duration):(n.timer.restart(l),n.state=jr,1),u=-1,f=o.length;++u<f;)o[u].call(e,d);n.state===jr&&(n.on.call("end",e,e.__data__,n.index,n.group),l())}function l(){n.state=An,n.timer.stop(),delete r[t];for(var c in r)return;delete e.__transition}}function $n(e,t){var n=e.__transition,r,o,s=!0,i;if(n){t=t==null?null:t+"";for(i in n){if((r=n[i]).name!==t){s=!1;continue}o=r.state>Ir&&r.state<jr,r.state=An,r.timer.stop(),r.on.call(o?"interrupt":"cancel",e,e.__data__,r.index,r.group),delete n[i]}s&&delete e.__transition}}function qu(e){return this.each(function(){$n(this,e)})}function Uu(e,t){var n,r;return function(){var o=Be(this,e),s=o.tween;if(s!==n){r=n=s;for(var i=0,a=r.length;i<a;++i)if(r[i].name===t){r=r.slice(),r.splice(i,1);break}}o.tween=r}}function Zu(e,t,n){var r,o;if(typeof n!="function")throw new Error;return function(){var s=Be(this,e),i=s.tween;if(i!==r){o=(r=i).slice();for(var a={name:t,value:n},l=0,c=o.length;l<c;++l)if(o[l].name===t){o[l]=a;break}l===c&&o.push(a)}s.tween=o}}function Qu(e,t){var n=this._id;if(e+="",arguments.length<2){for(var r=Le(this.node(),n).tween,o=0,s=r.length,i;o<s;++o)if((i=r[o]).name===e)return i.value;return null}return this.each((t==null?Uu:Zu)(n,e,t))}function Xr(e,t,n){var r=e._id;return e.each(function(){var o=Be(this,r);(o.value||(o.value={}))[t]=n.apply(this,arguments)}),function(o){return Le(o,r).value[t]}}function Zs(e,t){var n;return(typeof t=="number"?He:t instanceof it?Dn:(n=it(t))?(t=n,Dn):Ws)(e,t)}function Ju(e){return function(){this.removeAttribute(e)}}function ed(e){return function(){this.removeAttributeNS(e.space,e.local)}}function td(e,t,n){var r,o=n+"",s;return function(){var i=this.getAttribute(e);return i===o?null:i===r?s:s=t(r=i,n)}}function nd(e,t,n){var r,o=n+"",s;return function(){var i=this.getAttributeNS(e.space,e.local);return i===o?null:i===r?s:s=t(r=i,n)}}function rd(e,t,n){var r,o,s;return function(){var i,a=n(this),l;return a==null?void this.removeAttribute(e):(i=this.getAttribute(e),l=a+"",i===l?null:i===r&&l===o?s:(o=l,s=t(r=i,a)))}}function od(e,t,n){var r,o,s;return function(){var i,a=n(this),l;return a==null?void this.removeAttributeNS(e.space,e.local):(i=this.getAttributeNS(e.space,e.local),l=a+"",i===l?null:i===r&&l===o?s:(o=l,s=t(r=i,a)))}}function sd(e,t){var n=On(e),r=n==="transform"?zu:Zs;return this.attrTween(e,typeof t=="function"?(n.local?od:rd)(n,r,Xr(this,"attr."+e,t)):t==null?(n.local?ed:Ju)(n):(n.local?nd:td)(n,r,t))}function id(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function ad(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function cd(e,t){var n,r;function o(){var s=t.apply(this,arguments);return s!==r&&(n=(r=s)&&ad(e,s)),n}return o._value=t,o}function ld(e,t){var n,r;function o(){var s=t.apply(this,arguments);return s!==r&&(n=(r=s)&&id(e,s)),n}return o._value=t,o}function ud(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=On(e);return this.tween(n,(r.local?cd:ld)(r,t))}function dd(e,t){return function(){Yr(this,e).delay=+t.apply(this,arguments)}}function fd(e,t){return t=+t,function(){Yr(this,e).delay=t}}function hd(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?dd:fd)(t,e)):Le(this.node(),t).delay}function gd(e,t){return function(){Be(this,e).duration=+t.apply(this,arguments)}}function pd(e,t){return t=+t,function(){Be(this,e).duration=t}}function md(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?gd:pd)(t,e)):Le(this.node(),t).duration}function yd(e,t){if(typeof t!="function")throw new Error;return function(){Be(this,e).ease=t}}function xd(e){var t=this._id;return arguments.length?this.each(yd(t,e)):Le(this.node(),t).ease}function wd(e,t){return function(){var n=t.apply(this,arguments);if(typeof n!="function")throw new Error;Be(this,e).ease=n}}function vd(e){if(typeof e!="function")throw new Error;return this.each(wd(this._id,e))}function bd(e){typeof e!="function"&&(e=Cs(e));for(var t=this._groups,n=t.length,r=new Array(n),o=0;o<n;++o)for(var s=t[o],i=s.length,a=r[o]=[],l,c=0;c<i;++c)(l=s[c])&&e.call(l,l.__data__,c,s)&&a.push(l);return new We(r,this._parents,this._name,this._id)}function _d(e){if(e._id!==this._id)throw new Error;for(var t=this._groups,n=e._groups,r=t.length,o=n.length,s=Math.min(r,o),i=new Array(r),a=0;a<s;++a)for(var l=t[a],c=n[a],d=l.length,u=i[a]=new Array(d),f,h=0;h<d;++h)(f=l[h]||c[h])&&(u[h]=f);for(;a<r;++a)i[a]=t[a];return new We(i,this._parents,this._name,this._id)}function Ed(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 Nd(e,t,n){var r,o,s=Ed(t)?Yr:Be;return function(){var i=s(this,e),a=i.on;a!==r&&(o=(r=a).copy()).on(t,n),i.on=o}}function Sd(e,t){var n=this._id;return arguments.length<2?Le(this.node(),n).on.on(e):this.each(Nd(n,e,t))}function kd(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function Md(){return this.on("end.remove",kd(this._id))}function Cd(e){var t=this._name,n=this._id;typeof e!="function"&&(e=Vr(e));for(var r=this._groups,o=r.length,s=new Array(o),i=0;i<o;++i)for(var a=r[i],l=a.length,c=s[i]=new Array(l),d,u,f=0;f<l;++f)(d=a[f])&&(u=e.call(d,d.__data__,f,a))&&("__data__"in d&&(u.__data__=d.__data__),c[f]=u,Yn(c[f],t,n,f,c,Le(d,n)));return new We(s,this._parents,t,n)}function Ad(e){var t=this._name,n=this._id;typeof e!="function"&&(e=Ms(e));for(var r=this._groups,o=r.length,s=[],i=[],a=0;a<o;++a)for(var l=r[a],c=l.length,d,u=0;u<c;++u)if(d=l[u]){for(var f=e.call(d,d.__data__,u,l),h,g=Le(d,n),w=0,x=f.length;w<x;++w)(h=f[w])&&Yn(h,t,n,w,f,g);s.push(f),i.push(d)}return new We(s,i,t,n)}var $d=Jt.prototype.constructor;function Id(){return new $d(this._groups,this._parents)}function jd(e,t){var n,r,o;return function(){var s=bt(this,e),i=(this.style.removeProperty(e),bt(this,e));return s===i?null:s===n&&i===r?o:o=t(n=s,r=i)}}function Qs(e){return function(){this.style.removeProperty(e)}}function Pd(e,t,n){var r,o=n+"",s;return function(){var i=bt(this,e);return i===o?null:i===r?s:s=t(r=i,n)}}function Dd(e,t,n){var r,o,s;return function(){var i=bt(this,e),a=n(this),l=a+"";return a==null&&(l=a=(this.style.removeProperty(e),bt(this,e))),i===l?null:i===r&&l===o?s:(o=l,s=t(r=i,a))}}function Td(e,t){var n,r,o,s="style."+t,i="end."+s,a;return function(){var l=Be(this,e),c=l.on,d=l.value[s]==null?a||(a=Qs(t)):void 0;(c!==n||o!==d)&&(r=(n=c).copy()).on(i,o=d),l.on=r}}function Rd(e,t,n){var r=(e+="")=="transform"?Lu:Zs;return t==null?this.styleTween(e,jd(e,r)).on("end.style."+e,Qs(e)):typeof t=="function"?this.styleTween(e,Dd(e,r,Xr(this,"style."+e,t))).each(Td(this._id,e)):this.styleTween(e,Pd(e,r,t),n).on("end.style."+e,null)}function Ld(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}function zd(e,t,n){var r,o;function s(){var i=t.apply(this,arguments);return i!==o&&(r=(o=i)&&Ld(e,i,n)),r}return s._value=t,s}function Hd(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,zd(e,t,n??""))}function Vd(e){return function(){this.textContent=e}}function Bd(e){return function(){var t=e(this);this.textContent=t??""}}function Fd(e){return this.tween("text",typeof e=="function"?Bd(Xr(this,"text",e)):Vd(e==null?"":e+""))}function Od(e){return function(t){this.textContent=e.call(this,t)}}function Wd(e){var t,n;function r(){var o=e.apply(this,arguments);return o!==n&&(t=(n=o)&&Od(o)),t}return r._value=e,r}function Yd(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,Wd(e))}function Xd(){for(var e=this._name,t=this._id,n=Js(),r=this._groups,o=r.length,s=0;s<o;++s)for(var i=r[s],a=i.length,l,c=0;c<a;++c)if(l=i[c]){var d=Le(l,t);Yn(l,e,n,c,i,{time:d.time+d.delay+d.duration,delay:0,duration:d.duration,ease:d.ease})}return new We(r,this._parents,e,n)}function Kd(){var e,t,n=this,r=n._id,o=n.size();return new Promise(function(s,i){var a={value:i},l={value:function(){--o===0&&s()}};n.each(function(){var c=Be(this,r),d=c.on;d!==e&&(t=(e=d).copy(),t._.cancel.push(a),t._.interrupt.push(a),t._.end.push(l)),c.on=t}),o===0&&s()})}var Gd=0;function We(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}function Js(){return++Gd}var Fe=Jt.prototype;We.prototype={constructor:We,select:Cd,selectAll:Ad,selectChild:Fe.selectChild,selectChildren:Fe.selectChildren,filter:bd,merge:_d,selection:Id,transition:Xd,call:Fe.call,nodes:Fe.nodes,node:Fe.node,size:Fe.size,empty:Fe.empty,each:Fe.each,on:Sd,attr:sd,attrTween:ud,style:Rd,styleTween:Hd,text:Fd,textTween:Yd,remove:Md,tween:Qu,delay:hd,duration:md,ease:xd,easeVarying:vd,end:Kd,[Symbol.iterator]:Fe[Symbol.iterator]};function qd(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var Ud={time:null,delay:0,duration:250,ease:qd};function Zd(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 Qd(e){var t,n;e instanceof We?(t=e._id,e=e._name):(t=Js(),(n=Ud).time=Wr(),e=e==null?null:e+"");for(var r=this._groups,o=r.length,s=0;s<o;++s)for(var i=r[s],a=i.length,l,c=0;c<a;++c)(l=i[c])&&Yn(l,e,t,c,i,n||Zd(l,t));return new We(r,this._parents,e,t)}Jt.prototype.interrupt=qu;Jt.prototype.transition=Qd;const xn=e=>()=>e;function Jd(e,{sourceEvent:t,target:n,transform:r,dispatch:o}){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:o}})}function Oe(e,t,n){this.k=e,this.x=t,this.y=n}Oe.prototype={constructor:Oe,scale:function(e){return e===1?this:new Oe(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new Oe(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 Xn=new Oe(1,0,0);ei.prototype=Oe.prototype;function ei(e){for(;!e.__zoom;)if(!(e=e.parentNode))return Xn;return e.__zoom}function dr(e){e.stopImmediatePropagation()}function Rt(e){e.preventDefault(),e.stopImmediatePropagation()}function ef(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function tf(){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 Co(){return this.__zoom||Xn}function nf(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function rf(){return navigator.maxTouchPoints||"ontouchstart"in this}function of(e,t,n){var r=e.invertX(t[0][0])-n[0][0],o=e.invertX(t[1][0])-n[1][0],s=e.invertY(t[0][1])-n[0][1],i=e.invertY(t[1][1])-n[1][1];return e.translate(o>r?(r+o)/2:Math.min(0,r)||Math.max(0,o),i>s?(s+i)/2:Math.min(0,s)||Math.max(0,i))}function ti(){var e=ef,t=tf,n=of,r=nf,o=rf,s=[0,1/0],i=[[-1/0,-1/0],[1/0,1/0]],a=250,l=Mn,c=Fn("start","zoom","end"),d,u,f,h=500,g=150,w=0,x=10;function y(_){_.property("__zoom",Co).on("wheel.zoom",T,{passive:!1}).on("mousedown.zoom",P).on("dblclick.zoom",O).filter(o).on("touchstart.zoom",C).on("touchmove.zoom",N).on("touchend.zoom touchcancel.zoom",z).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}y.transform=function(_,A,k,I){var R=_.selection?_.selection():_;R.property("__zoom",Co),_!==R?M(_,A,k,I):R.interrupt().each(function(){S(this,arguments).event(I).start().zoom(null,typeof A=="function"?A.apply(this,arguments):A).end()})},y.scaleBy=function(_,A,k,I){y.scaleTo(_,function(){var R=this.__zoom.k,$=typeof A=="function"?A.apply(this,arguments):A;return R*$},k,I)},y.scaleTo=function(_,A,k,I){y.transform(_,function(){var R=t.apply(this,arguments),$=this.__zoom,B=k==null?v(R):typeof k=="function"?k.apply(this,arguments):k,F=$.invert(B),H=typeof A=="function"?A.apply(this,arguments):A;return n(m(E($,H),B,F),R,i)},k,I)},y.translateBy=function(_,A,k,I){y.transform(_,function(){return n(this.__zoom.translate(typeof A=="function"?A.apply(this,arguments):A,typeof k=="function"?k.apply(this,arguments):k),t.apply(this,arguments),i)},null,I)},y.translateTo=function(_,A,k,I,R){y.transform(_,function(){var $=t.apply(this,arguments),B=this.__zoom,F=I==null?v($):typeof I=="function"?I.apply(this,arguments):I;return n(Xn.translate(F[0],F[1]).scale(B.k).translate(typeof A=="function"?-A.apply(this,arguments):-A,typeof k=="function"?-k.apply(this,arguments):-k),$,i)},I,R)};function E(_,A){return A=Math.max(s[0],Math.min(s[1],A)),A===_.k?_:new Oe(A,_.x,_.y)}function m(_,A,k){var I=A[0]-k[0]*_.k,R=A[1]-k[1]*_.k;return I===_.x&&R===_.y?_:new Oe(_.k,I,R)}function v(_){return[(+_[0][0]+ +_[1][0])/2,(+_[0][1]+ +_[1][1])/2]}function M(_,A,k,I){_.on("start.zoom",function(){S(this,arguments).event(I).start()}).on("interrupt.zoom end.zoom",function(){S(this,arguments).event(I).end()}).tween("zoom",function(){var R=this,$=arguments,B=S(R,$).event(I),F=t.apply(R,$),H=k==null?v(F):typeof k=="function"?k.apply(R,$):k,X=Math.max(F[1][0]-F[0][0],F[1][1]-F[0][1]),q=R.__zoom,te=typeof A=="function"?A.apply(R,$):A,re=l(q.invert(H).concat(X/q.k),te.invert(H).concat(X/te.k));return function(Q){if(Q===1)Q=te;else{var V=re(Q),W=X/V[2];Q=new Oe(W,H[0]-V[0]*W,H[1]-V[1]*W)}B.zoom(null,Q)}})}function S(_,A,k){return!k&&_.__zooming||new j(_,A)}function j(_,A){this.that=_,this.args=A,this.active=0,this.sourceEvent=null,this.extent=t.apply(_,A),this.taps=0}j.prototype={event:function(_){return _&&(this.sourceEvent=_),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(_,A){return this.mouse&&_!=="mouse"&&(this.mouse[1]=A.invert(this.mouse[0])),this.touch0&&_!=="touch"&&(this.touch0[1]=A.invert(this.touch0[0])),this.touch1&&_!=="touch"&&(this.touch1[1]=A.invert(this.touch1[0])),this.that.__zoom=A,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(_){var A=Se(this.that).datum();c.call(_,this.that,new Jd(_,{sourceEvent:this.sourceEvent,target:y,transform:this.that.__zoom,dispatch:c}),A)}};function T(_,...A){if(!e.apply(this,arguments))return;var k=S(this,A).event(_),I=this.__zoom,R=Math.max(s[0],Math.min(s[1],I.k*Math.pow(2,r.apply(this,arguments)))),$=je(_);if(k.wheel)(k.mouse[0][0]!==$[0]||k.mouse[0][1]!==$[1])&&(k.mouse[1]=I.invert(k.mouse[0]=$)),clearTimeout(k.wheel);else{if(I.k===R)return;k.mouse=[$,I.invert($)],$n(this),k.start()}Rt(_),k.wheel=setTimeout(B,g),k.zoom("mouse",n(m(E(I,R),k.mouse[0],k.mouse[1]),k.extent,i));function B(){k.wheel=null,k.end()}}function P(_,...A){if(f||!e.apply(this,arguments))return;var k=_.currentTarget,I=S(this,A,!0).event(_),R=Se(_.view).on("mousemove.zoom",H,!0).on("mouseup.zoom",X,!0),$=je(_,k),B=_.clientX,F=_.clientY;zs(_.view),dr(_),I.mouse=[$,this.__zoom.invert($)],$n(this),I.start();function H(q){if(Rt(q),!I.moved){var te=q.clientX-B,re=q.clientY-F;I.moved=te*te+re*re>w}I.event(q).zoom("mouse",n(m(I.that.__zoom,I.mouse[0]=je(q,k),I.mouse[1]),I.extent,i))}function X(q){R.on("mousemove.zoom mouseup.zoom",null),Hs(q.view,I.moved),Rt(q),I.event(q).end()}}function O(_,...A){if(e.apply(this,arguments)){var k=this.__zoom,I=je(_.changedTouches?_.changedTouches[0]:_,this),R=k.invert(I),$=k.k*(_.shiftKey?.5:2),B=n(m(E(k,$),I,R),t.apply(this,A),i);Rt(_),a>0?Se(this).transition().duration(a).call(M,B,I,_):Se(this).call(y.transform,B,I,_)}}function C(_,...A){if(e.apply(this,arguments)){var k=_.touches,I=k.length,R=S(this,A,_.changedTouches.length===I).event(_),$,B,F,H;for(dr(_),B=0;B<I;++B)F=k[B],H=je(F,this),H=[H,this.__zoom.invert(H),F.identifier],R.touch0?!R.touch1&&R.touch0[2]!==H[2]&&(R.touch1=H,R.taps=0):(R.touch0=H,$=!0,R.taps=1+!!d);d&&(d=clearTimeout(d)),$&&(R.taps<2&&(u=H[0],d=setTimeout(function(){d=null},h)),$n(this),R.start())}}function N(_,...A){if(this.__zooming){var k=S(this,A).event(_),I=_.changedTouches,R=I.length,$,B,F,H;for(Rt(_),$=0;$<R;++$)B=I[$],F=je(B,this),k.touch0&&k.touch0[2]===B.identifier?k.touch0[0]=F:k.touch1&&k.touch1[2]===B.identifier&&(k.touch1[0]=F);if(B=k.that.__zoom,k.touch1){var X=k.touch0[0],q=k.touch0[1],te=k.touch1[0],re=k.touch1[1],Q=(Q=te[0]-X[0])*Q+(Q=te[1]-X[1])*Q,V=(V=re[0]-q[0])*V+(V=re[1]-q[1])*V;B=E(B,Math.sqrt(Q/V)),F=[(X[0]+te[0])/2,(X[1]+te[1])/2],H=[(q[0]+re[0])/2,(q[1]+re[1])/2]}else if(k.touch0)F=k.touch0[0],H=k.touch0[1];else return;k.zoom("touch",n(m(B,F,H),k.extent,i))}}function z(_,...A){if(this.__zooming){var k=S(this,A).event(_),I=_.changedTouches,R=I.length,$,B;for(dr(_),f&&clearTimeout(f),f=setTimeout(function(){f=null},h),$=0;$<R;++$)B=I[$],k.touch0&&k.touch0[2]===B.identifier?delete k.touch0:k.touch1&&k.touch1[2]===B.identifier&&delete k.touch1;if(k.touch1&&!k.touch0&&(k.touch0=k.touch1,delete k.touch1),k.touch0)k.touch0[1]=this.__zoom.invert(k.touch0[0]);else if(k.end(),k.taps===2&&(B=je(B,this),Math.hypot(u[0]-B[0],u[1]-B[1])<x)){var F=Se(this).on("dblclick.zoom");F&&F.apply(this,arguments)}}}return y.wheelDelta=function(_){return arguments.length?(r=typeof _=="function"?_:xn(+_),y):r},y.filter=function(_){return arguments.length?(e=typeof _=="function"?_:xn(!!_),y):e},y.touchable=function(_){return arguments.length?(o=typeof _=="function"?_:xn(!!_),y):o},y.extent=function(_){return arguments.length?(t=typeof _=="function"?_:xn([[+_[0][0],+_[0][1]],[+_[1][0],+_[1][1]]]),y):t},y.scaleExtent=function(_){return arguments.length?(s[0]=+_[0],s[1]=+_[1],y):[s[0],s[1]]},y.translateExtent=function(_){return arguments.length?(i[0][0]=+_[0][0],i[1][0]=+_[1][0],i[0][1]=+_[0][1],i[1][1]=+_[1][1],y):[[i[0][0],i[0][1]],[i[1][0],i[1][1]]]},y.constrain=function(_){return arguments.length?(n=_,y):n},y.duration=function(_){return arguments.length?(a=+_,y):a},y.interpolate=function(_){return arguments.length?(l=_,y):l},y.on=function(){var _=c.on.apply(c,arguments);return _===c?y:_},y.clickDistance=function(_){return arguments.length?(w=(_=+_)*_,y):Math.sqrt(w)},y.tapDistance=function(_){return arguments.length?(x=+_,y):x},y}const Re={error001:(e="react")=>`Seems like you have not used zustand provider as an ancestor. Help: https://${e}flow.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 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.",error016:e=>`Edge with id "${e}" does not exist, it may have been removed. This can happen when an edge is deleted before the "onEdgeClick" handler is called.`},Kt=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],ni=["Enter"," ","Escape"],ri={"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 Et;(function(e){e.Strict="strict",e.Loose="loose"})(Et||(Et={}));var ot;(function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"})(ot||(ot={}));var Gt;(function(e){e.Partial="partial",e.Full="full"})(Gt||(Gt={}));const oi={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null};var qe;(function(e){e.Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier"})(qe||(qe={}));var qt;(function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"})(qt||(qt={}));var J;(function(e){e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom"})(J||(J={}));const Ao={[J.Left]:J.Right,[J.Right]:J.Left,[J.Top]:J.Bottom,[J.Bottom]:J.Top};function si(e){return e===null?null:e?"valid":"invalid"}const ii=e=>"id"in e&&"source"in e&&"target"in e,sf=e=>"id"in e&&"position"in e&&!("source"in e)&&!("target"in e),Kr=e=>"id"in e&&"internals"in e&&!("source"in e)&&!("target"in e),tn=(e,t=[0,0])=>{const{width:n,height:r}=Ye(e),o=e.origin??t,s=n*o[0],i=r*o[1];return{x:e.position.x-s,y:e.position.y-i}},af=(e,t={nodeOrigin:[0,0]})=>{if(e.length===0)return{x:0,y:0,width:0,height:0};const n=e.reduce((r,o)=>{const s=typeof o=="string";let i=!t.nodeLookup&&!s?o:void 0;t.nodeLookup&&(i=s?t.nodeLookup.get(o):Kr(o)?o:t.nodeLookup.get(o.id));const a=i?zn(i,t.nodeOrigin):{x:0,y:0,x2:0,y2:0};return Kn(r,a)},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return Gn(n)},nn=(e,t={})=>{let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0},r=!1;return e.forEach(o=>{(t.filter===void 0||t.filter(o))&&(n=Kn(n,zn(o)),r=!0)}),r?Gn(n):{x:0,y:0,width:0,height:0}},Gr=(e,t,[n,r,o]=[0,0,1],s=!1,i=!1)=>{const a={...$t(t,[n,r,o]),width:t.width/o,height:t.height/o},l=[];for(const c of e.values()){const{measured:d,selectable:u=!0,hidden:f=!1}=c;if(i&&!u||f)continue;const h=d.width??c.width??c.initialWidth??null,g=d.height??c.height??c.initialHeight??null,w=Ut(a,St(c)),x=(h??0)*(g??0),y=s&&w>0;(!c.internals.handleBounds||y||w>=x||c.dragging)&&l.push(c)}return l},cf=(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 lf(e,t){const n=new Map,r=t!=null&&t.nodes?new Set(t.nodes.map(o=>o.id)):null;return e.forEach(o=>{o.measured.width&&o.measured.height&&((t==null?void 0:t.includeHiddenNodes)||!o.hidden)&&(!r||r.has(o.id))&&n.set(o.id,o)}),n}async function uf({nodes:e,width:t,height:n,panZoom:r,minZoom:o,maxZoom:s},i){if(e.size===0)return!0;const a=lf(e,i),l=nn(a),c=Ur(l,t,n,(i==null?void 0:i.minZoom)??o,(i==null?void 0:i.maxZoom)??s,(i==null?void 0:i.padding)??.1);return await r.setViewport(c,{duration:i==null?void 0:i.duration,ease:i==null?void 0:i.ease,interpolate:i==null?void 0:i.interpolate}),!0}function ai({nodeId:e,nextPosition:t,nodeLookup:n,nodeOrigin:r=[0,0],nodeExtent:o,onError:s}){const i=n.get(e),a=i.parentId?n.get(i.parentId):void 0,{x:l,y:c}=a?a.internals.positionAbsolute:{x:0,y:0},d=i.origin??r;let u=i.extent||o;if(i.extent==="parent"&&!i.expandParent)if(!a)s==null||s("005",Re.error005());else{const h=a.measured.width,g=a.measured.height;h&&g&&(u=[[l,c],[l+h,c+g]])}else a&&lt(i.extent)&&(u=[[i.extent[0][0]+l,i.extent[0][1]+c],[i.extent[1][0]+l,i.extent[1][1]+c]]);const f=lt(u)?ct(t,u,i.measured):t;return(i.measured.width===void 0||i.measured.height===void 0)&&(s==null||s("015",Re.error015())),{position:{x:f.x-l+(i.measured.width??0)*d[0],y:f.y-c+(i.measured.height??0)*d[1]},positionAbsolute:f}}async function df({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:r,onBeforeDelete:o}){const s=new Set(e.map(f=>f.id)),i=[];for(const f of n){if(f.deletable===!1)continue;const h=s.has(f.id),g=!h&&f.parentId&&i.find(w=>w.id===f.parentId);(h||g)&&i.push(f)}const a=new Set(t.map(f=>f.id)),l=r.filter(f=>f.deletable!==!1),d=cf(i,l);for(const f of l)a.has(f.id)&&!d.find(g=>g.id===f.id)&&d.push(f);if(!o)return{edges:d,nodes:i};const u=await o({nodes:i,edges:d});return typeof u=="boolean"?u?{edges:d,nodes:i}:{edges:[],nodes:[]}:u}const Nt=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),ct=(e={x:0,y:0},t,n)=>({x:Nt(e.x,t[0][0],t[1][0]-((n==null?void 0:n.width)??0)),y:Nt(e.y,t[0][1],t[1][1]-((n==null?void 0:n.height)??0))});function ci(e,t,n){const{width:r,height:o}=Ye(n),{x:s,y:i}=n.internals.positionAbsolute;return ct(e,[[s,i],[s+r,i+o]],t)}const $o=(e,t,n)=>e<t?Nt(Math.abs(e-t),1,t)/t:e>n?-Nt(Math.abs(e-n),1,t)/t:0,qr=(e,t,n=15,r=40)=>{const o=$o(e.x,r,t.width-r)*n,s=$o(e.y,r,t.height-r)*n;return[o,s]},Kn=(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)}),Pr=({x:e,y:t,width:n,height:r})=>({x:e,y:t,x2:e+n,y2:t+r}),Gn=({x:e,y:t,x2:n,y2:r})=>({x:e,y:t,width:n-e,height:r-t}),St=(e,t=[0,0])=>{var o,s;const{x:n,y:r}=Kr(e)?e.internals.positionAbsolute:tn(e,t);return{x:n,y:r,width:((o=e.measured)==null?void 0:o.width)??e.width??e.initialWidth??0,height:((s=e.measured)==null?void 0:s.height)??e.height??e.initialHeight??0}},zn=(e,t=[0,0])=>{var o,s;const{x:n,y:r}=Kr(e)?e.internals.positionAbsolute:tn(e,t);return{x:n,y:r,x2:n+(((o=e.measured)==null?void 0:o.width)??e.width??e.initialWidth??0),y2:r+(((s=e.measured)==null?void 0:s.height)??e.height??e.initialHeight??0)}},li=(e,t)=>Gn(Kn(Pr(e),Pr(t))),Ut=(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)},Io=e=>De(e.width)&&De(e.height)&&De(e.x)&&De(e.y),De=e=>!isNaN(e)&&isFinite(e),ui=(e,t)=>(n,r)=>{},rn=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),$t=({x:e,y:t},[n,r,o],s=!1,i=[1,1])=>{const a={x:(e-n)/o,y:(t-r)/o};return s?rn(a,i):a},kt=({x:e,y:t},[n,r,o])=>({x:e*o+n,y:t*o+r});function pt(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(`The padding value "${e}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}function ff(e,t,n){if(typeof e=="string"||typeof e=="number"){const r=pt(e,n),o=pt(e,t);return{top:r,right:o,bottom:r,left:o,x:o*2,y:r*2}}if(typeof e=="object"){const r=pt(e.top??e.y??0,n),o=pt(e.bottom??e.y??0,n),s=pt(e.left??e.x??0,t),i=pt(e.right??e.x??0,t);return{top:r,right:i,bottom:o,left:s,x:s+i,y:r+o}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function hf(e,t,n,r,o,s){const{x:i,y:a}=kt(e,[t,n,r]),{x:l,y:c}=kt({x:e.x+e.width,y:e.y+e.height},[t,n,r]),d=o-l,u=s-c;return{left:Math.floor(i),top:Math.floor(a),right:Math.floor(d),bottom:Math.floor(u)}}const Ur=(e,t,n,r,o,s)=>{const i=ff(s,t,n),a=(t-i.x)/e.width,l=(n-i.y)/e.height,c=Math.min(a,l),d=Nt(c,r,o),u=e.x+e.width/2,f=e.y+e.height/2,h=t/2-u*d,g=n/2-f*d,w=hf(e,h,g,d,t,n),x={left:Math.min(w.left-i.left,0),top:Math.min(w.top-i.top,0),right:Math.min(w.right-i.right,0),bottom:Math.min(w.bottom-i.bottom,0)};return{x:h-x.left+x.right,y:g-x.top+x.bottom,zoom:d}},Zt=()=>{var e;return typeof navigator<"u"&&((e=navigator==null?void 0:navigator.userAgent)==null?void 0:e.indexOf("Mac"))>=0};function lt(e){return e!=null&&e!=="parent"}function Ye(e){var t,n;return{width:((t=e.measured)==null?void 0:t.width)??e.width??e.initialWidth??0,height:((n=e.measured)==null?void 0:n.height)??e.height??e.initialHeight??0}}function di(e){var t,n;return(((t=e.measured)==null?void 0:t.width)??e.width??e.initialWidth)!==void 0&&(((n=e.measured)==null?void 0:n.height)??e.height??e.initialHeight)!==void 0}function fi(e,t={width:0,height:0},n,r,o){const s={...e},i=r.get(n);if(i){const a=i.origin||o;s.x+=i.internals.positionAbsolute.x-(t.width??0)*a[0],s.y+=i.internals.positionAbsolute.y-(t.height??0)*a[1]}return s}function jo(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function gf(){let e,t;return{promise:new Promise((r,o)=>{e=r,t=o}),resolve:e,reject:t}}function pf(e){return{...ri,...e||{}}}function Ft(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:r,containerBounds:o}){const{x:s,y:i}=Te(e),a=$t({x:s-((o==null?void 0:o.left)??0),y:i-((o==null?void 0:o.top)??0)},r),{x:l,y:c}=n?rn(a,t):a;return{xSnapped:l,ySnapped:c,...a}}const Zr=e=>({width:e.offsetWidth,height:e.offsetHeight}),hi=e=>{var t;return((t=e==null?void 0:e.getRootNode)==null?void 0:t.call(e))||(window==null?void 0:window.document)},mf=["INPUT","SELECT","TEXTAREA"];function gi(e){var r,o;const t=((o=(r=e.composedPath)==null?void 0:r.call(e))==null?void 0:o[0])||e.target;return(t==null?void 0:t.nodeType)!==1?!1:mf.includes(t.nodeName)||t.hasAttribute("contenteditable")||!!t.closest(".nokey")}const pi=e=>"clientX"in e,Te=(e,t)=>{var s,i;const n=pi(e),r=n?e.clientX:(s=e.touches)==null?void 0:s[0].clientX,o=n?e.clientY:(i=e.touches)==null?void 0:i[0].clientY;return{x:r-((t==null?void 0:t.left)??0),y:o-((t==null?void 0:t.top)??0)}},Po=(e,t,n,r,o)=>{const s=t.querySelectorAll(`.${e}`);return!s||!s.length?null:Array.from(s).map(i=>{const a=i.getBoundingClientRect();return{id:i.getAttribute("data-handleid"),type:e,nodeId:o,position:i.getAttribute("data-handlepos"),x:(a.left-n.left)/r,y:(a.top-n.top)/r,...Zr(i)}})};function mi({sourceX:e,sourceY:t,targetX:n,targetY:r,sourceControlX:o,sourceControlY:s,targetControlX:i,targetControlY:a}){const l=e*.125+o*.375+i*.375+n*.125,c=t*.125+s*.375+a*.375+r*.125,d=Math.abs(l-e),u=Math.abs(c-t);return[l,c,d,u]}function wn(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function Do({pos:e,x1:t,y1:n,x2:r,y2:o,c:s}){switch(e){case J.Left:return[t-wn(t-r,s),n];case J.Right:return[t+wn(r-t,s),n];case J.Top:return[t,n-wn(n-o,s)];case J.Bottom:return[t,n+wn(o-n,s)]}}function yi({sourceX:e,sourceY:t,sourcePosition:n=J.Bottom,targetX:r,targetY:o,targetPosition:s=J.Top,curvature:i=.25}){const[a,l]=Do({pos:n,x1:e,y1:t,x2:r,y2:o,c:i}),[c,d]=Do({pos:s,x1:r,y1:o,x2:e,y2:t,c:i}),[u,f,h,g]=mi({sourceX:e,sourceY:t,targetX:r,targetY:o,sourceControlX:a,sourceControlY:l,targetControlX:c,targetControlY:d});return[`M${e},${t} C${a},${l} ${c},${d} ${r},${o}`,u,f,h,g]}function xi({sourceX:e,sourceY:t,targetX:n,targetY:r}){const o=Math.abs(n-e)/2,s=n<e?n+o:n-o,i=Math.abs(r-t)/2,a=r<t?r+i:r-i;return[s,a,o,i]}function yf({sourceNode:e,targetNode:t,selected:n=!1,zIndex:r=0,elevateOnSelect:o=!1,zIndexMode:s="basic"}){if(s==="manual")return r;const i=o&&n?r+1e3:r,a=Math.max(e.parentId||o&&e.selected?e.internals.z:0,t.parentId||o&&t.selected?t.internals.z:0);return i+a}function xf({sourceNode:e,targetNode:t,width:n,height:r,transform:o}){const s=Kn(zn(e),zn(t));s.x===s.x2&&(s.x2+=1),s.y===s.y2&&(s.y2+=1);const i={x:-o[0]/o[2],y:-o[1]/o[2],width:n/o[2],height:r/o[2]};return Ut(i,Gn(s))>0}const wf=({source:e,sourceHandle:t,target:n,targetHandle:r})=>`xy-edge__${e}${t||""}-${n}${r||""}`,vf=(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)),bf=(e,t,n={})=>{var s;if(!e.source||!e.target)return(s=n.onError)==null||s.call(n,"006",Re.error006()),t;const r=n.getEdgeId||wf;let o;return ii(e)?o={...e}:o={...e,id:r(e)},vf(o,t)?t:(o.sourceHandle===null&&delete o.sourceHandle,o.targetHandle===null&&delete o.targetHandle,t.concat(o))};function wi({sourceX:e,sourceY:t,targetX:n,targetY:r}){const[o,s,i,a]=xi({sourceX:e,sourceY:t,targetX:n,targetY:r});return[`M ${e},${t}L ${n},${r}`,o,s,i,a]}const To={[J.Left]:{x:-1,y:0},[J.Right]:{x:1,y:0},[J.Top]:{x:0,y:-1},[J.Bottom]:{x:0,y:1}},_f=({source:e,sourcePosition:t=J.Bottom,target:n})=>t===J.Left||t===J.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},Ro=(e,t)=>Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2));function Ef({source:e,sourcePosition:t=J.Bottom,target:n,targetPosition:r=J.Top,center:o,offset:s,stepPosition:i}){const a=To[t],l=To[r],c={x:e.x+a.x*s,y:e.y+a.y*s},d={x:n.x+l.x*s,y:n.y+l.y*s},u=_f({source:c,sourcePosition:t,target:d}),f=u.x!==0?"x":"y",h=u[f];let g=[],w,x;const y={x:0,y:0},E={x:0,y:0},[,,m,v]=xi({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(a[f]*l[f]===-1){f==="x"?(w=o.x??c.x+(d.x-c.x)*i,x=o.y??(c.y+d.y)/2):(w=o.x??(c.x+d.x)/2,x=o.y??c.y+(d.y-c.y)*i);const T=[{x:w,y:c.y},{x:w,y:d.y}],P=[{x:c.x,y:x},{x:d.x,y:x}];a[f]===h?g=f==="x"?T:P:g=f==="x"?P:T}else{const T=[{x:c.x,y:d.y}],P=[{x:d.x,y:c.y}];if(f==="x"?g=a.x===h?P:T:g=a.y===h?T:P,t===r){const _=Math.abs(e[f]-n[f]);if(_<=s){const A=Math.min(s-1,s-_);a[f]===h?y[f]=(c[f]>e[f]?-1:1)*A:E[f]=(d[f]>n[f]?-1:1)*A}}if(t!==r){const _=f==="x"?"y":"x",A=a[f]===l[_],k=c[_]>d[_],I=c[_]<d[_];(a[f]===1&&(!A&&k||A&&I)||a[f]!==1&&(!A&&I||A&&k))&&(g=f==="x"?T:P)}const O={x:c.x+y.x,y:c.y+y.y},C={x:d.x+E.x,y:d.y+E.y},N=Math.max(Math.abs(O.x-g[0].x),Math.abs(C.x-g[0].x)),z=Math.max(Math.abs(O.y-g[0].y),Math.abs(C.y-g[0].y));N>=z?(w=(O.x+C.x)/2,x=g[0].y):(w=g[0].x,x=(O.y+C.y)/2)}const M={x:c.x+y.x,y:c.y+y.y},S={x:d.x+E.x,y:d.y+E.y};return[[e,...M.x!==g[0].x||M.y!==g[0].y?[M]:[],...g,...S.x!==g[g.length-1].x||S.y!==g[g.length-1].y?[S]:[],n],w,x,m,v]}function Nf(e,t,n,r){const o=Math.min(Ro(e,t)/2,Ro(t,n)/2,r),{x:s,y:i}=t;if(e.x===s&&s===n.x||e.y===i&&i===n.y)return`L${s} ${i}`;if(e.y===i){const c=e.x<n.x?-1:1,d=e.y<n.y?1:-1;return`L ${s+o*c},${i}Q ${s},${i} ${s},${i+o*d}`}const a=e.x<n.x?1:-1,l=e.y<n.y?-1:1;return`L ${s},${i+o*l}Q ${s},${i} ${s+o*a},${i}`}function Dr({sourceX:e,sourceY:t,sourcePosition:n=J.Bottom,targetX:r,targetY:o,targetPosition:s=J.Top,borderRadius:i=5,centerX:a,centerY:l,offset:c=20,stepPosition:d=.5}){const[u,f,h,g,w]=Ef({source:{x:e,y:t},sourcePosition:n,target:{x:r,y:o},targetPosition:s,center:{x:a,y:l},offset:c,stepPosition:d});let x=`M${u[0].x} ${u[0].y}`;for(let y=1;y<u.length-1;y++)x+=Nf(u[y-1],u[y],u[y+1],i);return x+=`L${u[u.length-1].x} ${u[u.length-1].y}`,[x,f,h,g,w]}function Lo(e){var t;return e&&!!(e.internals.handleBounds||(t=e.handles)!=null&&t.length)&&!!(e.measured.width||e.width||e.initialWidth)}function Sf(e){var u;const{sourceNode:t,targetNode:n}=e;if(!Lo(t)||!Lo(n))return null;const r=t.internals.handleBounds||zo(t.handles),o=n.internals.handleBounds||zo(n.handles),s=Ho((r==null?void 0:r.source)??[],e.sourceHandle),i=Ho(e.connectionMode===Et.Strict?(o==null?void 0:o.target)??[]:((o==null?void 0:o.target)??[]).concat((o==null?void 0:o.source)??[]),e.targetHandle);if(!s||!i)return(u=e.onError)==null||u.call(e,"008",Re.error008(s?"target":"source",{id:e.id,sourceHandle:e.sourceHandle,targetHandle:e.targetHandle})),null;const a=(s==null?void 0:s.position)||J.Bottom,l=(i==null?void 0:i.position)||J.Top,c=ut(t,s,a),d=ut(n,i,l);return{sourceX:c.x,sourceY:c.y,targetX:d.x,targetY:d.y,sourcePosition:a,targetPosition:l}}function zo(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 ut(e,t,n=J.Left,r=!1){const o=((t==null?void 0:t.x)??0)+e.internals.positionAbsolute.x,s=((t==null?void 0:t.y)??0)+e.internals.positionAbsolute.y,{width:i,height:a}=t??Ye(e);if(r)return{x:o+i/2,y:s+a/2};switch((t==null?void 0:t.position)??n){case J.Top:return{x:o+i/2,y:s};case J.Right:return{x:o+i,y:s+a/2};case J.Bottom:return{x:o+i/2,y:s+a};case J.Left:return{x:o,y:s+a/2}}}function Ho(e,t){return e&&(t?e.find(n=>n.id===t):e[0])||null}function Tr(e,t){return e?typeof e=="string"?e:`${t?`${t}__`:""}${Object.keys(e).sort().map(r=>`${r}=${e[r]}`).join("&")}`:""}function kf(e,{id:t,defaultColor:n,defaultMarkerStart:r,defaultMarkerEnd:o}){const s=new Set;return e.reduce((i,a)=>([a.markerStart||r,a.markerEnd||o].forEach(l=>{if(l&&typeof l=="object"){const c=Tr(l,t);s.has(c)||(i.push({id:c,color:l.color||n,...l}),s.add(c))}}),i),[]).sort((i,a)=>i.id.localeCompare(a.id))}const vi=1e3,Mf=10,Qr={nodeOrigin:[0,0],nodeExtent:Kt,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},Cf={...Qr,checkEquality:!0};function Jr(e,t){const n={...e};for(const r in t)t[r]!==void 0&&(n[r]=t[r]);return n}function Af(e,t,n){const r=Jr(Qr,n);for(const o of e.values())if(o.parentId)to(o,e,t,r);else{const s=tn(o,r.nodeOrigin),i=lt(o.extent)?o.extent:r.nodeExtent,a=ct(s,i,Ye(o));o.internals.positionAbsolute=a}}function $f(e,t){if(!e.handles)return e.measured?t==null?void 0:t.internals.handleBounds:void 0;const n=[],r=[];for(const o of e.handles){const s={id:o.id,width:o.width??1,height:o.height??1,nodeId:e.id,x:o.x,y:o.y,position:o.position,type:o.type};o.type==="source"?n.push(s):o.type==="target"&&r.push(s)}return{source:n,target:r}}function eo(e){return e==="manual"}function Rr(e,t,n,r={}){var d,u;const o=Jr(Cf,r),s={i:0},i=new Map(t),a=o!=null&&o.elevateNodesOnSelect&&!eo(o.zIndexMode)?vi:0;let l=e.length>0,c=!1;t.clear(),n.clear();for(const f of e){let h=i.get(f.id);if(o.checkEquality&&f===(h==null?void 0:h.internals.userNode))t.set(f.id,h);else{const g=tn(f,o.nodeOrigin),w=lt(f.extent)?f.extent:o.nodeExtent,x=ct(g,w,Ye(f));h={...o.defaults,...f,measured:{width:(d=f.measured)==null?void 0:d.width,height:(u=f.measured)==null?void 0:u.height},internals:{positionAbsolute:x,handleBounds:$f(f,h),z:bi(f,a,o.zIndexMode),userNode:f}},t.set(f.id,h)}(h.measured===void 0||h.measured.width===void 0||h.measured.height===void 0)&&!h.hidden&&(l=!1),f.parentId&&to(h,t,n,r,s),c||(c=f.selected??!1)}return{nodesInitialized:l,hasSelectedNodes:c}}function If(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 to(e,t,n,r,o){const{elevateNodesOnSelect:s,nodeOrigin:i,nodeExtent:a,zIndexMode:l}=Jr(Qr,r),c=e.parentId,d=t.get(c);if(!d){console.warn(`Parent node ${c} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);return}If(e,n),o&&!d.parentId&&d.internals.rootParentIndex===void 0&&l==="auto"&&(d.internals.rootParentIndex=++o.i,d.internals.z=d.internals.z+o.i*Mf),o&&d.internals.rootParentIndex!==void 0&&(o.i=d.internals.rootParentIndex);const u=s&&!eo(l)?vi:0,{x:f,y:h,z:g}=jf(e,d,i,a,u,l),{positionAbsolute:w}=e.internals,x=f!==w.x||h!==w.y;(x||g!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:x?{x:f,y:h}:w,z:g}})}function bi(e,t,n){const r=De(e.zIndex)?e.zIndex:0;return eo(n)?r:r+(e.selected?t:0)}function jf(e,t,n,r,o,s){const{x:i,y:a}=t.internals.positionAbsolute,l=Ye(e),c=tn(e,n),d=lt(e.extent)?ct(c,e.extent,l):c;let u=ct({x:i+d.x,y:a+d.y},r,l);e.extent==="parent"&&(u=ci(u,l,t));const f=bi(e,o,s),h=t.internals.z??0;return{x:u.x,y:u.y,z:h>=f?h+1:f}}function no(e,t,n,r=[0,0]){var i;const o=[],s=new Map;for(const a of e){const l=t.get(a.parentId);if(!l)continue;const c=((i=s.get(a.parentId))==null?void 0:i.expandedRect)??St(l),d=li(c,a.rect);s.set(a.parentId,{expandedRect:d,parent:l})}return s.size>0&&s.forEach(({expandedRect:a,parent:l},c)=>{var m;const d=l.internals.positionAbsolute,u=Ye(l),f=l.origin??r,h=a.x<d.x?Math.round(Math.abs(d.x-a.x)):0,g=a.y<d.y?Math.round(Math.abs(d.y-a.y)):0,w=Math.max(u.width,Math.round(a.width)),x=Math.max(u.height,Math.round(a.height)),y=(w-u.width)*f[0],E=(x-u.height)*f[1];(h>0||g>0||y||E)&&(o.push({id:c,type:"position",position:{x:l.position.x-h+y,y:l.position.y-g+E}}),(m=n.get(c))==null||m.forEach(v=>{e.some(M=>M.id===v.id)||o.push({id:v.id,type:"position",position:{x:v.position.x+h,y:v.position.y+g}})})),(u.width<a.width||u.height<a.height||h||g)&&o.push({id:c,type:"dimensions",setAttributes:!0,dimensions:{width:w+(h?f[0]*h-y:0),height:x+(g?f[1]*g-E:0)}})}),o}function Pf(e,t,n,r,o,s,i){const a=r==null?void 0:r.querySelector(".xyflow__viewport");let l=!1;if(!a)return{changes:[],updatedInternals:l};const c=[],d=window.getComputedStyle(a),{m22:u}=new window.DOMMatrixReadOnly(d.transform),f=[];for(const h of e.values()){const g=t.get(h.id);if(!g)continue;if(g.hidden){t.set(g.id,{...g,internals:{...g.internals,handleBounds:void 0}}),l=!0;continue}const w=Zr(h.nodeElement),x=g.measured.width!==w.width||g.measured.height!==w.height;if(!!(w.width&&w.height&&(x||!g.internals.handleBounds||h.force))){const E=h.nodeElement.getBoundingClientRect(),m=lt(g.extent)?g.extent:s;let{positionAbsolute:v}=g.internals;g.parentId&&g.extent==="parent"?v=ci(v,w,t.get(g.parentId)):m&&(v=ct(v,m,w));const M={...g,measured:w,internals:{...g.internals,positionAbsolute:v,handleBounds:{source:Po("source",h.nodeElement,E,u,g.id),target:Po("target",h.nodeElement,E,u,g.id)}}};t.set(g.id,M),g.parentId&&to(M,t,n,{nodeOrigin:o,zIndexMode:i}),l=!0,x&&(c.push({id:g.id,type:"dimensions",dimensions:w}),g.expandParent&&g.parentId&&f.push({id:g.id,parentId:g.parentId,rect:St(M,o)}))}}if(f.length>0){const h=no(f,t,n,o);c.push(...h)}return{changes:c,updatedInternals:l}}async function Df({delta:e,panZoom:t,transform:n,translateExtent:r,width:o,height:s}){if(!t||!e.x&&!e.y)return!1;const i=await t.setViewportConstrained({x:n[0]+e.x,y:n[1]+e.y,zoom:n[2]},[[0,0],[o,s]],r);return!!i&&(i.x!==n[0]||i.y!==n[1]||i.k!==n[2])}function Vo(e,t,n,r,o,s){let i=o;const a=r.get(i)||new Map;r.set(i,a.set(n,t)),i=`${o}-${e}`;const l=r.get(i)||new Map;if(r.set(i,l.set(n,t)),s){i=`${o}-${e}-${s}`;const c=r.get(i)||new Map;r.set(i,c.set(n,t))}}function _i(e,t,n){e.clear(),t.clear();for(const r of n){const{source:o,target:s,sourceHandle:i=null,targetHandle:a=null}=r,l={edgeId:r.id,source:o,target:s,sourceHandle:i,targetHandle:a},c=`${o}-${i}--${s}-${a}`,d=`${s}-${a}--${o}-${i}`;Vo("source",l,d,e,o,i),Vo("target",l,c,e,s,a),t.set(r.id,r)}}function Ei(e,t){if(!e.parentId)return!1;const n=t.get(e.parentId);return n?n.selected?!0:Ei(n,t):!1}function Bo(e,t,n){var o;let r=e;do{if((o=r==null?void 0:r.matches)!=null&&o.call(r,t))return!0;if(r===n)return!1;r=r==null?void 0:r.parentElement}while(r);return!1}function Tf(e,t,n,r){const o=new Map;for(const[s,i]of e)if((i.selected||i.id===r)&&(!i.parentId||!Ei(i,e))&&(i.draggable||t&&typeof i.draggable>"u")){const a=e.get(s);a&&o.set(s,{id:s,position:a.position||{x:0,y:0},distance:{x:n.x-a.internals.positionAbsolute.x,y:n.y-a.internals.positionAbsolute.y},extent:a.extent,parentId:a.parentId,origin:a.origin,expandParent:a.expandParent,internals:{positionAbsolute:a.internals.positionAbsolute||{x:0,y:0}},measured:{width:a.measured.width??0,height:a.measured.height??0}})}return o}function fr({nodeId:e,dragItems:t,nodeLookup:n,dragging:r=!0}){var i,a,l;const o=[];for(const[c,d]of t){const u=(i=n.get(c))==null?void 0:i.internals.userNode;u&&o.push({...u,position:d.position,dragging:r})}if(!e)return[o[0],o];const s=(a=n.get(e))==null?void 0:a.internals.userNode;return[s?{...s,position:((l=t.get(e))==null?void 0:l.position)||s.position,dragging:r}:o[0],o]}function Rf({dragItems:e,snapGrid:t,x:n,y:r}){const o=e.values().next().value;if(!o)return null;const s={x:n-o.distance.x,y:r-o.distance.y},i=rn(s,t);return{x:i.x-s.x,y:i.y-s.y}}function Lf({onNodeMouseDown:e,getStoreItems:t,onDragStart:n,onDrag:r,onDragStop:o}){let s={x:null,y:null},i=0,a=new Map,l=!1,c={x:0,y:0},d=null,u=!1,f=null,h=!1,g=!1,w=null;function x({noDragClassName:E,handleSelector:m,domNode:v,isSelectable:M,nodeId:S,nodeClickDistance:j=0}){f=Se(v);function T({x:N,y:z}){const{nodeLookup:_,nodeExtent:A,snapGrid:k,snapToGrid:I,nodeOrigin:R,onNodeDrag:$,onSelectionDrag:B,onError:F,updateNodePositions:H}=t();s={x:N,y:z};let X=!1;const q=a.size>1,te=q&&A?Pr(nn(a)):null,re=q&&I?Rf({dragItems:a,snapGrid:k,x:N,y:z}):null;for(const[Q,V]of a){if(!_.has(Q))continue;let W={x:N-V.distance.x,y:z-V.distance.y};I&&(W=re?{x:Math.round(W.x+re.x),y:Math.round(W.y+re.y)}:rn(W,k));let ne=null;if(q&&A&&!V.extent&&te){const{positionAbsolute:Y}=V.internals,oe=Y.x-te.x+A[0][0],K=Y.x+V.measured.width-te.x2+A[1][0],ae=Y.y-te.y+A[0][1],ce=Y.y+V.measured.height-te.y2+A[1][1];ne=[[oe,ae],[K,ce]]}const{position:ee,positionAbsolute:Z}=ai({nodeId:Q,nextPosition:W,nodeLookup:_,nodeExtent:ne||A,nodeOrigin:R,onError:F});X=X||V.position.x!==ee.x||V.position.y!==ee.y,V.position=ee,V.internals.positionAbsolute=Z}if(g=g||X,!!X&&(H(a,!0),w&&(r||$||!S&&B))){const[Q,V]=fr({nodeId:S,dragItems:a,nodeLookup:_});r==null||r(w,a,Q,V),$==null||$(w,Q,V),S||B==null||B(w,V)}}async function P(){if(!d)return;const{transform:N,panBy:z,autoPanSpeed:_,autoPanOnNodeDrag:A}=t();if(!A){l=!1,cancelAnimationFrame(i);return}const[k,I]=qr(c,d,_);(k!==0||I!==0)&&(s.x=(s.x??0)-k/N[2],s.y=(s.y??0)-I/N[2],await z({x:k,y:I})&&T(s)),i=requestAnimationFrame(P)}function O(N){var q;const{nodeLookup:z,multiSelectionActive:_,nodesDraggable:A,transform:k,snapGrid:I,snapToGrid:R,selectNodesOnDrag:$,onNodeDragStart:B,onSelectionDragStart:F,unselectNodesAndEdges:H}=t();u=!0,(!$||!M)&&!_&&S&&((q=z.get(S))!=null&&q.selected||H()),M&&$&&S&&(e==null||e(S));const X=Ft(N.sourceEvent,{transform:k,snapGrid:I,snapToGrid:R,containerBounds:d});if(s=X,a=Tf(z,A,X,S),a.size>0&&(n||B||!S&&F)){const[te,re]=fr({nodeId:S,dragItems:a,nodeLookup:z});n==null||n(N.sourceEvent,a,te,re),B==null||B(N.sourceEvent,te,re),S||F==null||F(N.sourceEvent,re)}}const C=Vs().clickDistance(j).on("start",N=>{const{domNode:z,nodeDragThreshold:_,transform:A,snapGrid:k,snapToGrid:I}=t();d=(z==null?void 0:z.getBoundingClientRect())||null,h=!1,g=!1,w=N.sourceEvent,_===0&&O(N),s=Ft(N.sourceEvent,{transform:A,snapGrid:k,snapToGrid:I,containerBounds:d}),c=Te(N.sourceEvent,d)}).on("drag",N=>{const{autoPanOnNodeDrag:z,transform:_,snapGrid:A,snapToGrid:k,nodeDragThreshold:I,nodeLookup:R}=t(),$=Ft(N.sourceEvent,{transform:_,snapGrid:A,snapToGrid:k,containerBounds:d});if(w=N.sourceEvent,(N.sourceEvent.type==="touchmove"&&N.sourceEvent.touches.length>1||S&&!R.has(S))&&(h=!0),!h){if(!l&&z&&u&&(l=!0,P()),!u){const B=Te(N.sourceEvent,d),F=B.x-c.x,H=B.y-c.y;Math.sqrt(F*F+H*H)>I&&O(N)}(s.x!==$.xSnapped||s.y!==$.ySnapped)&&a&&u&&(c=Te(N.sourceEvent,d),T($))}}).on("end",N=>{if(!u||h){h&&a.size>0&&t().updateNodePositions(a,!1);return}if(l=!1,u=!1,cancelAnimationFrame(i),a.size>0){const{nodeLookup:z,updateNodePositions:_,onNodeDragStop:A,onSelectionDragStop:k}=t();if(g&&(_(a,!1),g=!1),o||A||!S&&k){const[I,R]=fr({nodeId:S,dragItems:a,nodeLookup:z,dragging:!1});o==null||o(N.sourceEvent,a,I,R),A==null||A(N.sourceEvent,I,R),S||k==null||k(N.sourceEvent,R)}}}).filter(N=>{const z=N.target;return!N.button&&(!E||!Bo(z,`.${E}`,v))&&(!m||Bo(z,m,v))});f.call(C)}function y(){f==null||f.on(".drag",null)}return{update:x,destroy:y}}function zf(e,t,n){const r=[],o={x:e.x-n,y:e.y-n,width:n*2,height:n*2};for(const s of t.values())Ut(o,St(s))>0&&r.push(s);return r}const Hf=250;function Vf(e,t,n,r){var a,l;let o=[],s=1/0;const i=zf(e,n,t+Hf);for(const c of i){const d=[...((a=c.internals.handleBounds)==null?void 0:a.source)??[],...((l=c.internals.handleBounds)==null?void 0:l.target)??[]];for(const u of d){if(r.nodeId===u.nodeId&&r.type===u.type&&r.id===u.id)continue;const{x:f,y:h}=ut(c,u,u.position,!0),g=Math.sqrt(Math.pow(f-e.x,2)+Math.pow(h-e.y,2));g>t||(g<s?(o=[{...u,x:f,y:h}],s=g):g===s&&o.push({...u,x:f,y:h}))}}if(!o.length)return null;if(o.length>1){const c=r.type==="source"?"target":"source";return o.find(d=>d.type===c)??o[0]}return o[0]}function Ni(e,t,n,r,o,s=!1){var c,d,u;const i=r.get(e);if(!i)return null;const a=o==="strict"?(c=i.internals.handleBounds)==null?void 0:c[t]:[...((d=i.internals.handleBounds)==null?void 0:d.source)??[],...((u=i.internals.handleBounds)==null?void 0:u.target)??[]],l=(n?a==null?void 0:a.find(f=>f.id===n):a==null?void 0:a[0])??null;return l&&s?{...l,...ut(i,l,l.position,!0)}:l}function Si(e,t){return e||(t!=null&&t.classList.contains("target")?"target":t!=null&&t.classList.contains("source")?"source":null)}function Bf(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}const ki=()=>!0;function Ff(e,{connectionMode:t,connectionRadius:n,handleId:r,nodeId:o,edgeUpdaterType:s,isTarget:i,domNode:a,nodeLookup:l,lib:c,autoPanOnConnect:d,flowId:u,panBy:f,cancelConnection:h,onConnectStart:g,onConnect:w,onConnectEnd:x,isValidConnection:y=ki,onReconnectEnd:E,updateConnection:m,getTransform:v,getFromHandle:M,autoPanSpeed:S,dragThreshold:j=1,handleDomNode:T}){const P=hi(e.target);let O=0,C;const{x:N,y:z}=Te(e),_=Si(s,T),A=a==null?void 0:a.getBoundingClientRect();let k=!1;if(!A||!_)return;const I=Ni(o,_,r,l,t);if(!I)return;let R=Te(e,A),$=!1,B=null,F=!1,H=null;function X(){if(!d||!A)return;const[ee,Z]=qr(R,A,S);f({x:ee,y:Z}),O=requestAnimationFrame(X)}const q={...I,nodeId:o,type:_,position:I.position},te=l.get(o);let Q={inProgress:!0,isValid:null,from:ut(te,q,J.Left,!0),fromHandle:q,fromPosition:q.position,fromNode:te,to:R,toHandle:null,toPosition:Ao[q.position],toNode:null,pointer:R};function V(){k=!0,m(Q),g==null||g(e,{nodeId:o,handleId:r,handleType:_})}j===0&&V();function W(ee){if(!k){const{x:ce,y:me}=Te(ee),ge=ce-N,we=me-z;if(!(ge*ge+we*we>j*j))return;V()}if(!M()||!q){ne(ee);return}const Z=v();R=Te(ee,A),C=Vf($t(R,Z,!1,[1,1]),n,l,q),$||(X(),$=!0);const Y=Mi(ee,{handle:C,connectionMode:t,fromNodeId:o,fromHandleId:r,fromType:i?"target":"source",isValidConnection:y,doc:P,lib:c,flowId:u,nodeLookup:l});H=Y.handleDomNode,B=Y.connection,F=Bf(!!C,Y.isValid);const oe=l.get(o),K=oe?ut(oe,q,J.Left,!0):Q.from,ae={...Q,from:K,isValid:F,to:Y.toHandle&&F?kt({x:Y.toHandle.x,y:Y.toHandle.y},Z):R,toHandle:Y.toHandle,toPosition:F&&Y.toHandle?Y.toHandle.position:Ao[q.position],toNode:Y.toHandle?l.get(Y.toHandle.nodeId):null,pointer:R};m(ae),Q=ae}function ne(ee){if(!("touches"in ee&&ee.touches.length>0)){if(k){(C||H)&&B&&F&&(w==null||w(B));const{inProgress:Z,...Y}=Q,oe={...Y,toPosition:Q.toHandle?Q.toPosition:null};x==null||x(ee,oe),s&&(E==null||E(ee,oe))}h(),cancelAnimationFrame(O),$=!1,F=!1,B=null,H=null,P.removeEventListener("mousemove",W),P.removeEventListener("mouseup",ne),P.removeEventListener("touchmove",W),P.removeEventListener("touchend",ne)}}P.addEventListener("mousemove",W),P.addEventListener("mouseup",ne),P.addEventListener("touchmove",W),P.addEventListener("touchend",ne)}function Mi(e,{handle:t,connectionMode:n,fromNodeId:r,fromHandleId:o,fromType:s,doc:i,lib:a,flowId:l,isValidConnection:c=ki,nodeLookup:d}){const u=s==="target",f=t?i.querySelector(`.${a}-flow__handle[data-id="${l}-${t==null?void 0:t.nodeId}-${t==null?void 0:t.id}-${t==null?void 0:t.type}"]`):null,{x:h,y:g}=Te(e),w=i.elementFromPoint(h,g),x=w!=null&&w.classList.contains(`${a}-flow__handle`)?w:f,y={handleDomNode:x,isValid:!1,connection:null,toHandle:null};if(x){const E=Si(void 0,x),m=x.getAttribute("data-nodeid"),v=x.getAttribute("data-handleid"),M=x.classList.contains("connectable"),S=x.classList.contains("connectableend");if(!m||!E)return y;const j={source:u?m:r,sourceHandle:u?v:o,target:u?r:m,targetHandle:u?o:v};y.connection=j;const P=M&&S&&(n===Et.Strict?u&&E==="source"||!u&&E==="target":m!==r||v!==o);y.isValid=P&&c(j),y.toHandle=Ni(m,E,v,d,n,!0)}return y}const Lr={onPointerDown:Ff,isValid:Mi};function Of({domNode:e,panZoom:t,getTransform:n,getViewScale:r}){const o=Se(e);function s({translateExtent:a,width:l,height:c,zoomStep:d=1,pannable:u=!0,zoomable:f=!0,inversePan:h=!1}){const g=m=>{if(m.sourceEvent.type!=="wheel"||!t)return;const v=n(),M=m.sourceEvent.ctrlKey&&Zt()?10:1,S=-m.sourceEvent.deltaY*(m.sourceEvent.deltaMode===1?.05:m.sourceEvent.deltaMode?1:.002)*d,j=v[2]*Math.pow(2,S*M);t.scaleTo(j)};let w=[0,0];const x=m=>{(m.sourceEvent.type==="mousedown"||m.sourceEvent.type==="touchstart")&&(w=[m.sourceEvent.clientX??m.sourceEvent.touches[0].clientX,m.sourceEvent.clientY??m.sourceEvent.touches[0].clientY])},y=m=>{const v=n();if(m.sourceEvent.type!=="mousemove"&&m.sourceEvent.type!=="touchmove"||!t)return;const M=[m.sourceEvent.clientX??m.sourceEvent.touches[0].clientX,m.sourceEvent.clientY??m.sourceEvent.touches[0].clientY],S=[M[0]-w[0],M[1]-w[1]];w=M;const j=r()*Math.max(v[2],Math.log(v[2]))*(h?-1:1),T={x:v[0]-S[0]*j,y:v[1]-S[1]*j},P=[[0,0],[l,c]];t.setViewportConstrained({x:T.x,y:T.y,zoom:v[2]},P,a)},E=ti().on("start",x).on("zoom",u?y:null).on("zoom.wheel",f?g:null);o.call(E,{})}function i(){o.on("zoom",null)}return{update:s,destroy:i,pointer:je}}const qn=e=>({x:e.x,y:e.y,zoom:e.k}),hr=({x:e,y:t,zoom:n})=>Xn.translate(e,t).scale(n),yt=(e,t)=>e.target.closest(`.${t}`),Ci=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),Wf=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,gr=(e,t=0,n=Wf,r=()=>{})=>{const o=typeof t=="number"&&t>0;return o||r(),o?e.transition().duration(t).ease(n).on("end",r):e},Ai=e=>{const t=e.ctrlKey&&Zt()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function Yf({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:r,panOnScrollMode:o,panOnScrollSpeed:s,zoomOnPinch:i,onPanZoomStart:a,onPanZoom:l,onPanZoomEnd:c}){return d=>{if(yt(d,t))return d.ctrlKey&&d.preventDefault(),!1;d.preventDefault(),d.stopImmediatePropagation();const u=n.property("__zoom").k||1;if(d.ctrlKey&&i){const x=je(d),y=Ai(d),E=u*Math.pow(2,y);r.scaleTo(n,E,x,d);return}const f=d.deltaMode===1?20:1;let h=o===ot.Vertical?0:d.deltaX*f,g=o===ot.Horizontal?0:d.deltaY*f;!Zt()&&d.shiftKey&&o!==ot.Vertical&&(h=d.deltaY*f,g=0),r.translateBy(n,-(h/u)*s,-(g/u)*s,{internal:!0});const w=qn(n.property("__zoom"));clearTimeout(e.panScrollTimeout),e.isPanScrolling?(l==null||l(d,w),e.panScrollTimeout=setTimeout(()=>{c==null||c(d,w),e.isPanScrolling=!1},150)):(e.isPanScrolling=!0,a==null||a(d,w))}}function Xf({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(r,o){const s=r.type==="wheel",i=!t&&s&&!r.ctrlKey,a=yt(r,e);if(r.ctrlKey&&s&&a&&r.preventDefault(),i||a)return null;r.preventDefault(),n.call(this,r,o)}}function Kf({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return r=>{var s,i,a;if((s=r.sourceEvent)!=null&&s.internal)return;const o=qn(r.transform);e.mouseButton=((i=r.sourceEvent)==null?void 0:i.button)||0,e.isZoomingOrPanning=!0,e.prevViewport=o,((a=r.sourceEvent)==null?void 0:a.type)==="mousedown"&&t(!0),n&&(n==null||n(r.sourceEvent,o))}}function Gf({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:r,onPanZoom:o}){return s=>{var i,a;e.usedRightMouseButton=!!(n&&Ci(t,e.mouseButton??0)),(i=s.sourceEvent)!=null&&i.sync||r([s.transform.x,s.transform.y,s.transform.k]),o&&!((a=s.sourceEvent)!=null&&a.internal)&&(o==null||o(s.sourceEvent,qn(s.transform)))}}function qf({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:r,onPanZoomEnd:o,onPaneContextMenu:s}){return i=>{var a;if(!((a=i.sourceEvent)!=null&&a.internal)&&(e.isZoomingOrPanning=!1,s&&Ci(t,e.mouseButton??0)&&!e.usedRightMouseButton&&i.sourceEvent&&s(i.sourceEvent),e.usedRightMouseButton=!1,r(!1),o)){const l=qn(i.transform);e.prevViewport=l,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{o==null||o(i.sourceEvent,l)},n?150:0)}}}function Uf({zoomActivationKeyPressed:e,zoomOnScroll:t,zoomOnPinch:n,panOnDrag:r,panOnScroll:o,zoomOnDoubleClick:s,userSelectionActive:i,noWheelClassName:a,noPanClassName:l,lib:c,connectionInProgress:d}){return u=>{var x;const f=e||t,h=n&&u.ctrlKey,g=u.type==="wheel";if(u.button===1&&u.type==="mousedown"&&(yt(u,`${c}-flow__node`)||yt(u,`${c}-flow__edge`)))return!0;if(!r&&!f&&!o&&!s&&!n||i||d&&!g||yt(u,a)&&g||yt(u,l)&&(!g||o&&g&&!e)||!n&&u.ctrlKey&&g)return!1;if(!n&&u.type==="touchstart"&&((x=u.touches)==null?void 0:x.length)>1)return u.preventDefault(),!1;if(!f&&!o&&!h&&g||!r&&(u.type==="mousedown"||u.type==="touchstart")||Array.isArray(r)&&!r.includes(u.button)&&u.type==="mousedown")return!1;const w=Array.isArray(r)&&r.includes(u.button)||!u.button||u.button<=1;return(!u.ctrlKey||g)&&w}}function Zf({domNode:e,minZoom:t,maxZoom:n,translateExtent:r,viewport:o,onPanZoom:s,onPanZoomStart:i,onPanZoomEnd:a,onDraggingChange:l}){const c={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},d=e.getBoundingClientRect(),u=ti().scaleExtent([t,n]).translateExtent(r),f=Se(e).call(u);E({x:o.x,y:o.y,zoom:Nt(o.zoom,t,n)},[[0,0],[d.width,d.height]],r);const h=f.on("wheel.zoom"),g=f.on("dblclick.zoom");u.wheelDelta(Ai);async function w(C,N){return f?new Promise(z=>{u==null||u.interpolate((N==null?void 0:N.interpolate)==="linear"?Bt:Mn).transform(gr(f,N==null?void 0:N.duration,N==null?void 0:N.ease,()=>z(!0)),C)}):!1}function x({noWheelClassName:C,noPanClassName:N,onPaneContextMenu:z,userSelectionActive:_,panOnScroll:A,panOnDrag:k,panOnScrollMode:I,panOnScrollSpeed:R,preventScrolling:$,zoomOnPinch:B,zoomOnScroll:F,zoomOnDoubleClick:H,zoomActivationKeyPressed:X,lib:q,onTransformChange:te,connectionInProgress:re,paneClickDistance:Q,selectionOnDrag:V}){_&&!c.isZoomingOrPanning&&y();const W=A&&!X&&!_;u.clickDistance(V?1/0:!De(Q)||Q<0?0:Q);const ne=W?Yf({zoomPanValues:c,noWheelClassName:C,d3Selection:f,d3Zoom:u,panOnScrollMode:I,panOnScrollSpeed:R,zoomOnPinch:B,onPanZoomStart:i,onPanZoom:s,onPanZoomEnd:a}):Xf({noWheelClassName:C,preventScrolling:$,d3ZoomHandler:h});f.on("wheel.zoom",ne,{passive:!1});const ee=Kf({zoomPanValues:c,onDraggingChange:l,onPanZoomStart:i});u.on("start",ee);const Z=Gf({zoomPanValues:c,panOnDrag:k,onPaneContextMenu:!!z,onPanZoom:s,onTransformChange:te});u.on("zoom",Z);const Y=qf({zoomPanValues:c,panOnDrag:k,panOnScroll:A,onPaneContextMenu:z,onPanZoomEnd:a,onDraggingChange:l});u.on("end",Y);const oe=Uf({zoomActivationKeyPressed:X,panOnDrag:k,zoomOnScroll:F,panOnScroll:A,zoomOnDoubleClick:H,zoomOnPinch:B,userSelectionActive:_,noPanClassName:N,noWheelClassName:C,lib:q,connectionInProgress:re});u.filter(oe),H?f.on("dblclick.zoom",g):f.on("dblclick.zoom",null)}function y(){u.on("zoom",null)}async function E(C,N,z){const _=hr(C),A=u==null?void 0:u.constrain()(_,N,z);return A&&await w(A),A}async function m(C,N){const z=hr(C);return await w(z,N),z}function v(C){if(f){const N=hr(C),z=f.property("__zoom");(z.k!==C.zoom||z.x!==C.x||z.y!==C.y)&&(u==null||u.transform(f,N,null,{sync:!0}))}}function M(){const C=f?ei(f.node()):{x:0,y:0,k:1};return{x:C.x,y:C.y,zoom:C.k}}async function S(C,N){return f?new Promise(z=>{u==null||u.interpolate((N==null?void 0:N.interpolate)==="linear"?Bt:Mn).scaleTo(gr(f,N==null?void 0:N.duration,N==null?void 0:N.ease,()=>z(!0)),C)}):!1}async function j(C,N){return f?new Promise(z=>{u==null||u.interpolate((N==null?void 0:N.interpolate)==="linear"?Bt:Mn).scaleBy(gr(f,N==null?void 0:N.duration,N==null?void 0:N.ease,()=>z(!0)),C)}):!1}function T(C){u==null||u.scaleExtent(C)}function P(C){u==null||u.translateExtent(C)}function O(C){const N=!De(C)||C<0?0:C;u==null||u.clickDistance(N)}return{update:x,destroy:y,setViewport:m,setViewportConstrained:E,getViewport:M,scaleTo:S,scaleBy:j,setScaleExtent:T,setTranslateExtent:P,syncViewport:v,setClickDistance:O}}var Mt;(function(e){e.Line="line",e.Handle="handle"})(Mt||(Mt={}));function Qf({width:e,prevWidth:t,height:n,prevHeight:r,affectsX:o,affectsY:s}){const i=e-t,a=n-r,l=[i>0?1:i<0?-1:0,a>0?1:a<0?-1:0];return i&&o&&(l[0]=l[0]*-1),a&&s&&(l[1]=l[1]*-1),l}function Fo(e){const t=e.includes("right")||e.includes("left"),n=e.includes("bottom")||e.includes("top"),r=e.includes("left"),o=e.includes("top");return{isHorizontal:t,isVertical:n,affectsX:r,affectsY:o}}function Ke(e,t){return Math.max(0,t-e)}function Ge(e,t){return Math.max(0,e-t)}function vn(e,t,n){return Math.max(0,t-e,e-n)}function Oo(e,t){return e?!t:t}function Jf(e,t,n,r,o,s,i,a){let{affectsX:l,affectsY:c}=t;const{isHorizontal:d,isVertical:u}=t,f=d&&u,{xSnapped:h,ySnapped:g}=n,{minWidth:w,maxWidth:x,minHeight:y,maxHeight:E}=r,{x:m,y:v,width:M,height:S,aspectRatio:j}=e;let T=Math.floor(d?h-e.pointerX:0),P=Math.floor(u?g-e.pointerY:0);const O=M+(l?-T:T),C=S+(c?-P:P),N=-s[0]*M,z=-s[1]*S;let _=vn(O,w,x),A=vn(C,y,E);if(i){let R=0,$=0;l&&T<0?R=Ke(m+T+N,i[0][0]):!l&&T>0&&(R=Ge(m+O+N,i[1][0])),c&&P<0?$=Ke(v+P+z,i[0][1]):!c&&P>0&&($=Ge(v+C+z,i[1][1])),_=Math.max(_,R),A=Math.max(A,$)}if(a){let R=0,$=0;l&&T>0?R=Ge(m+T,a[0][0]):!l&&T<0&&(R=Ke(m+O,a[1][0])),c&&P>0?$=Ge(v+P,a[0][1]):!c&&P<0&&($=Ke(v+C,a[1][1])),_=Math.max(_,R),A=Math.max(A,$)}if(o){if(d){const R=vn(O/j,y,E)*j;if(_=Math.max(_,R),i){let $=0;!l&&!c||l&&!c&&f?$=Ge(v+z+O/j,i[1][1])*j:$=Ke(v+z+(l?T:-T)/j,i[0][1])*j,_=Math.max(_,$)}if(a){let $=0;!l&&!c||l&&!c&&f?$=Ke(v+O/j,a[1][1])*j:$=Ge(v+(l?T:-T)/j,a[0][1])*j,_=Math.max(_,$)}}if(u){const R=vn(C*j,w,x)/j;if(A=Math.max(A,R),i){let $=0;!l&&!c||c&&!l&&f?$=Ge(m+C*j+N,i[1][0])/j:$=Ke(m+(c?P:-P)*j+N,i[0][0])/j,A=Math.max(A,$)}if(a){let $=0;!l&&!c||c&&!l&&f?$=Ke(m+C*j,a[1][0])/j:$=Ge(m+(c?P:-P)*j,a[0][0])/j,A=Math.max(A,$)}}}P=P+(P<0?A:-A),T=T+(T<0?_:-_),o&&(f?O>C*j?P=(Oo(l,c)?-T:T)/j:T=(Oo(l,c)?-P:P)*j:d?(P=T/j,c=l):(T=P*j,l=c));const k=l?m+T:m,I=c?v+P:v;return{width:M+(l?-T:T),height:S+(c?-P:P),x:s[0]*T*(l?-1:1)+k,y:s[1]*P*(c?-1:1)+I}}const $i={width:0,height:0,x:0,y:0},eh={...$i,pointerX:0,pointerY:0,aspectRatio:1};function th(e,t,n){const r=t.position.x+e.position.x,o=t.position.y+e.position.y,s=e.measured.width??0,i=e.measured.height??0,a=n[0]*s,l=n[1]*i;return[[r-a,o-l],[r+s-a,o+i-l]]}function nh({domNode:e,nodeId:t,getStoreItems:n,onChange:r,onEnd:o}){const s=Se(e);let i={controlDirection:Fo("bottom-right"),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};function a({controlPosition:c,boundaries:d,keepAspectRatio:u,resizeDirection:f,onResizeStart:h,onResize:g,onResizeEnd:w,shouldResize:x}){let y={...$i},E={...eh};i={boundaries:d,resizeDirection:f,keepAspectRatio:u,controlDirection:Fo(c)};let m,v=null,M=[],S,j,T,P=!1;const O=Vs().on("start",C=>{const{nodeLookup:N,transform:z,snapGrid:_,snapToGrid:A,nodeOrigin:k,paneDomNode:I}=n();if(m=N.get(t),!m)return;v=(I==null?void 0:I.getBoundingClientRect())??null;const{xSnapped:R,ySnapped:$}=Ft(C.sourceEvent,{transform:z,snapGrid:_,snapToGrid:A,containerBounds:v});y={width:m.measured.width??0,height:m.measured.height??0,x:m.position.x??0,y:m.position.y??0},E={...y,pointerX:R,pointerY:$,aspectRatio:y.width/y.height},S=void 0,j=lt(m.extent)?m.extent:void 0,m.parentId&&(m.extent==="parent"||m.expandParent)&&(S=N.get(m.parentId)),S&&m.extent==="parent"&&(j=[[0,0],[S.measured.width,S.measured.height]]),M=[],T=void 0;for(const[B,F]of N)if(F.parentId===t&&(M.push({id:B,position:{...F.position},extent:F.extent}),F.extent==="parent"||F.expandParent)){const H=th(F,m,F.origin??k);T?T=[[Math.min(H[0][0],T[0][0]),Math.min(H[0][1],T[0][1])],[Math.max(H[1][0],T[1][0]),Math.max(H[1][1],T[1][1])]]:T=H}h==null||h(C,{...y})}).on("drag",C=>{const{transform:N,snapGrid:z,snapToGrid:_,nodeOrigin:A}=n(),k=Ft(C.sourceEvent,{transform:N,snapGrid:z,snapToGrid:_,containerBounds:v}),I=[];if(!m)return;const{x:R,y:$,width:B,height:F}=y,H={},X=m.origin??A,{width:q,height:te,x:re,y:Q}=Jf(E,i.controlDirection,k,i.boundaries,i.keepAspectRatio,X,j,T),V=q!==B,W=te!==F,ne=re!==R&&V,ee=Q!==$&&W;if(!ne&&!ee&&!V&&!W)return;if((ne||ee||X[0]===1||X[1]===1)&&(H.x=ne?re:y.x,H.y=ee?Q:y.y,y.x=H.x,y.y=H.y,M.length>0)){const K=re-R,ae=Q-$;for(const ce of M)ce.position={x:ce.position.x-K+X[0]*(q-B),y:ce.position.y-ae+X[1]*(te-F)},I.push(ce)}if((V||W)&&(H.width=V&&(!i.resizeDirection||i.resizeDirection==="horizontal")?q:y.width,H.height=W&&(!i.resizeDirection||i.resizeDirection==="vertical")?te:y.height,y.width=H.width,y.height=H.height),S&&m.expandParent){const K=X[0]*(H.width??0);H.x&&H.x<K&&(y.x=K,E.x=E.x-(H.x-K));const ae=X[1]*(H.height??0);H.y&&H.y<ae&&(y.y=ae,E.y=E.y-(H.y-ae))}const Z=Qf({width:y.width,prevWidth:B,height:y.height,prevHeight:F,affectsX:i.controlDirection.affectsX,affectsY:i.controlDirection.affectsY}),Y={...y,direction:Z};(x==null?void 0:x(C,Y))!==!1&&(P=!0,g==null||g(C,Y),r(H,I))}).on("end",C=>{P&&(w==null||w(C,{...y}),o==null||o({...y}),P=!1)});s.call(O)}function l(){s.on(".drag",null)}return{update:a,destroy:l}}var Ii={exports:{}},ji={},Pi={exports:{}},Di={};/**
3
- * @license React
4
- * use-sync-external-store-shim.production.js
5
- *
6
- * Copyright (c) Meta Platforms, Inc. and affiliates.
7
- *
8
- * This source code is licensed under the MIT license found in the
9
- * LICENSE file in the root directory of this source tree.
10
- */var Ct=b;function rh(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var oh=typeof Object.is=="function"?Object.is:rh,sh=Ct.useState,ih=Ct.useEffect,ah=Ct.useLayoutEffect,ch=Ct.useDebugValue;function lh(e,t){var n=t(),r=sh({inst:{value:n,getSnapshot:t}}),o=r[0].inst,s=r[1];return ah(function(){o.value=n,o.getSnapshot=t,pr(o)&&s({inst:o})},[e,n,t]),ih(function(){return pr(o)&&s({inst:o}),e(function(){pr(o)&&s({inst:o})})},[e]),ch(n),n}function pr(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!oh(e,n)}catch{return!0}}function uh(e,t){return t()}var dh=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?uh:lh;Di.useSyncExternalStore=Ct.useSyncExternalStore!==void 0?Ct.useSyncExternalStore:dh;Pi.exports=Di;var fh=Pi.exports;/**
11
- * @license React
12
- * use-sync-external-store-shim/with-selector.production.js
13
- *
14
- * Copyright (c) Meta Platforms, Inc. and affiliates.
15
- *
16
- * This source code is licensed under the MIT license found in the
17
- * LICENSE file in the root directory of this source tree.
18
- */var Un=b,hh=fh;function gh(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var ph=typeof Object.is=="function"?Object.is:gh,mh=hh.useSyncExternalStore,yh=Un.useRef,xh=Un.useEffect,wh=Un.useMemo,vh=Un.useDebugValue;ji.useSyncExternalStoreWithSelector=function(e,t,n,r,o){var s=yh(null);if(s.current===null){var i={hasValue:!1,value:null};s.current=i}else i=s.current;s=wh(function(){function l(h){if(!c){if(c=!0,d=h,h=r(h),o!==void 0&&i.hasValue){var g=i.value;if(o(g,h))return u=g}return u=h}if(g=u,ph(d,h))return g;var w=r(h);return o!==void 0&&o(g,w)?(d=h,g):(d=h,u=w)}var c=!1,d,u,f=n===void 0?null:n;return[function(){return l(t())},f===null?void 0:function(){return l(f())}]},[t,n,r,o]);var a=mh(e,s[0],s[1]);return xh(function(){i.hasValue=!0,i.value=a},[a]),vh(a),a};Ii.exports=ji;var bh=Ii.exports;const _h=Ga(bh),Eh={},Wo=e=>{let t;const n=new Set,r=(d,u)=>{const f=typeof d=="function"?d(t):d;if(!Object.is(f,t)){const h=t;t=u??(typeof f!="object"||f===null)?f:Object.assign({},t,f),n.forEach(g=>g(t,h))}},o=()=>t,l={setState:r,getState:o,getInitialState:()=>c,subscribe:d=>(n.add(d),()=>n.delete(d)),destroy:()=>{(Eh?"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()}},c=t=e(r,o,l);return l},Nh=e=>e?Wo(e):Wo,{useDebugValue:Sh}=qa,{useSyncExternalStoreWithSelector:kh}=_h,Mh=e=>e;function Ti(e,t=Mh,n){const r=kh(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return Sh(r),r}const Yo=(e,t)=>{const n=Nh(e),r=(o,s=t)=>Ti(n,o,s);return Object.assign(r,n),r},Ch=(e,t)=>e?Yo(e,t):Yo;function le(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,o]of e)if(!Object.is(o,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 Zn=b.createContext(null),Ah=Zn.Provider,Ri=Re.error001("react");function ie(e,t){const n=b.useContext(Zn);if(n===null)throw new Error(Ri);return Ti(n,e,t)}function ue(){const e=b.useContext(Zn);if(e===null)throw new Error(Ri);return b.useMemo(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}const Xo={display:"none"},$h={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},Li="react-flow__node-desc",zi="react-flow__edge-desc",Ih="react-flow__aria-live",jh=e=>e.ariaLiveMessage,Ph=e=>e.ariaLabelConfig;function Dh({rfId:e}){const t=ie(jh);return p.jsx("div",{id:`${Ih}-${e}`,"aria-live":"assertive","aria-atomic":"true",style:$h,children:t})}function Th({rfId:e,disableKeyboardA11y:t}){const n=ie(Ph);return p.jsxs(p.Fragment,{children:[p.jsx("div",{id:`${Li}-${e}`,style:Xo,children:t?n["node.a11yDescription.default"]:n["node.a11yDescription.keyboardDisabled"]}),p.jsx("div",{id:`${zi}-${e}`,style:Xo,children:n["edge.a11yDescription.default"]}),!t&&p.jsx(Dh,{rfId:e})]})}const Qn=b.forwardRef(({position:e="top-left",children:t,className:n,style:r,...o},s)=>{const i=`${e}`.split("-");return p.jsx("div",{className:he(["react-flow__panel",n,...i]),style:r,ref:s,...o,children:t})});Qn.displayName="Panel";function Rh({proOptions:e,position:t="bottom-right"}){return e!=null&&e.hideAttribution?null:p.jsx(Qn,{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:p.jsx("a",{href:"https://reactflow.dev",target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution",children:"React Flow"})})}const Lh=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}},bn=e=>e.id;function zh(e,t){return le(e.selectedNodes.map(bn),t.selectedNodes.map(bn))&&le(e.selectedEdges.map(bn),t.selectedEdges.map(bn))}function Hh({onSelectionChange:e}){const t=ue(),{selectedNodes:n,selectedEdges:r}=ie(Lh,zh);return b.useEffect(()=>{const o={nodes:n,edges:r};e==null||e(o),t.getState().onSelectionChangeHandlers.forEach(s=>s(o))},[n,r,e]),null}const Vh=e=>!!e.onSelectionChangeHandlers;function Bh({onSelectionChange:e}){const t=ie(Vh);return e||t?p.jsx(Hh,{onSelectionChange:e}):null}const Hi=[0,0],Fh={x:0,y:0,zoom:1},Oh=["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"],Ko=[...Oh,"rfId"],Wh=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}),Go={translateExtent:Kt,nodeOrigin:Hi,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:"nopan",rfId:"1"};function Yh(e){const{setNodes:t,setEdges:n,setMinZoom:r,setMaxZoom:o,setTranslateExtent:s,setNodeExtent:i,reset:a,setDefaultNodesAndEdges:l}=ie(Wh,le),c=ue();b.useEffect(()=>(l(e.defaultNodes,e.defaultEdges),()=>{d.current=Go,a()}),[]);const d=b.useRef(Go);return b.useEffect(()=>{for(const u of Ko){const f=e[u],h=d.current[u];f!==h&&(typeof e[u]>"u"||(u==="nodes"?t(f):u==="edges"?n(f):u==="minZoom"?r(f):u==="maxZoom"?o(f):u==="translateExtent"?s(f):u==="nodeExtent"?i(f):u==="ariaLabelConfig"?c.setState({ariaLabelConfig:pf(f)}):u==="fitView"?c.setState({fitViewQueued:f}):u==="fitViewOptions"?c.setState({fitViewOptions:f}):c.setState({[u]:f})))}d.current=e},Ko.map(u=>e[u])),null}function qo(){return typeof window>"u"||!window.matchMedia?null:window.matchMedia("(prefers-color-scheme: dark)")}function Xh(e){var r;const[t,n]=b.useState(e==="system"?null:e);return b.useEffect(()=>{if(e!=="system"){n(e);return}const o=qo(),s=()=>n(o!=null&&o.matches?"dark":"light");return s(),o==null||o.addEventListener("change",s),()=>{o==null||o.removeEventListener("change",s)}},[e]),t!==null?t:(r=qo())!=null&&r.matches?"dark":"light"}const Uo=typeof document<"u"?document:null;function Qt(e=null,t={target:Uo,actInsideInputWithModifier:!0}){const[n,r]=b.useState(!1),o=b.useRef(!1),s=b.useRef(new Set([])),[i,a]=b.useMemo(()=>{if(e!==null){const c=(Array.isArray(e)?e:[e]).filter(u=>typeof u=="string").map(u=>u.replace("+",`
19
- `).replace(`
20
-
21
- `,`
22
- +`).split(`
23
- `)),d=c.reduce((u,f)=>u.concat(...f),[]);return[c,d]}return[[],[]]},[e]);return b.useEffect(()=>{const l=(t==null?void 0:t.target)??Uo,c=(t==null?void 0:t.actInsideInputWithModifier)??!0;if(e!==null){const d=h=>{var x,y;if(o.current=h.ctrlKey||h.metaKey||h.shiftKey||h.altKey,(!o.current||o.current&&!c)&&gi(h))return!1;const w=Qo(h.code,a);if(s.current.add(h[w]),Zo(i,s.current,!1)){const E=((y=(x=h.composedPath)==null?void 0:x.call(h))==null?void 0:y[0])||h.target,m=(E==null?void 0:E.nodeName)==="BUTTON"||(E==null?void 0:E.nodeName)==="A";t.preventDefault!==!1&&(o.current||!m)&&h.preventDefault(),r(!0)}},u=h=>{const g=Qo(h.code,a);Zo(i,s.current,!0)?(r(!1),s.current.clear()):s.current.delete(h[g]),h.key==="Meta"&&s.current.clear(),o.current=!1},f=()=>{s.current.clear(),r(!1)};return l==null||l.addEventListener("keydown",d),l==null||l.addEventListener("keyup",u),window.addEventListener("blur",f),window.addEventListener("contextmenu",f),()=>{l==null||l.removeEventListener("keydown",d),l==null||l.removeEventListener("keyup",u),window.removeEventListener("blur",f),window.removeEventListener("contextmenu",f)}}},[e,r]),n}function Zo(e,t,n){return e.filter(r=>n||r.length===t.size).some(r=>r.every(o=>t.has(o)))}function Qo(e,t){return t.includes(e)?"code":"key"}const Kh=()=>{const e=ue();return b.useMemo(()=>({zoomIn:async t=>{const{panZoom:n}=e.getState();return n?n.scaleBy(1.2,t):!1},zoomOut:async t=>{const{panZoom:n}=e.getState();return n?n.scaleBy(1/1.2,t):!1},zoomTo:async(t,n)=>{const{panZoom:r}=e.getState();return r?r.scaleTo(t,n):!1},getZoom:()=>e.getState().transform[2],setViewport:async(t,n)=>{const{transform:[r,o,s],panZoom:i}=e.getState();return i?(await i.setViewport({x:t.x??r,y:t.y??o,zoom:t.zoom??s},n),!0):!1},getViewport:()=>{const[t,n,r]=e.getState().transform;return{x:t,y:n,zoom:r}},setCenter:async(t,n,r)=>e.getState().setCenter(t,n,r),fitBounds:async(t,n)=>{const{width:r,height:o,minZoom:s,maxZoom:i,panZoom:a}=e.getState(),l=Ur(t,r,o,s,i,(n==null?void 0:n.padding)??.1);return a?(await a.setViewport(l,{duration:n==null?void 0:n.duration,ease:n==null?void 0:n.ease,interpolate:n==null?void 0:n.interpolate}),!0):!1},screenToFlowPosition:(t,n={})=>{const{transform:r,snapGrid:o,snapToGrid:s,domNode:i}=e.getState();if(!i)return t;const{x:a,y:l}=i.getBoundingClientRect(),c={x:t.x-a,y:t.y-l},d=n.snapGrid??o,u=n.snapToGrid??s;return $t(c,r,u,d)},flowToScreenPosition:t=>{const{transform:n,domNode:r}=e.getState();if(!r)return t;const{x:o,y:s}=r.getBoundingClientRect(),i=kt(t,n);return{x:i.x+o,y:i.y+s}}}),[])};function Vi(e,t){const n=[],r=new Map,o=[];for(const s of e)if(s.type==="add"){o.push(s);continue}else if(s.type==="remove"||s.type==="replace")r.set(s.id,[s]);else{const i=r.get(s.id);i?i.push(s):r.set(s.id,[s])}for(const s of t){const i=r.get(s.id);if(!i){n.push(s);continue}if(i[0].type==="remove")continue;if(i[0].type==="replace"){n.push({...i[0].item});continue}const a={...s};for(const l of i)Gh(l,a);n.push(a)}return o.length&&o.forEach(s=>{s.index!==void 0?n.splice(s.index,0,{...s.item}):n.push({...s.item})}),n}function Gh(e,t){switch(e.type){case"select":{t.selected=e.selected;break}case"position":{typeof e.position<"u"&&(t.position=e.position),typeof e.dragging<"u"&&(t.dragging=e.dragging);break}case"dimensions":{typeof e.dimensions<"u"&&(t.measured={...e.dimensions},e.setAttributes&&((e.setAttributes===!0||e.setAttributes==="width")&&(t.width=e.dimensions.width),(e.setAttributes===!0||e.setAttributes==="height")&&(t.height=e.dimensions.height))),typeof e.resizing=="boolean"&&(t.resizing=e.resizing);break}}}function qh(e,t){return Vi(e,t)}function Uh(e,t){return Vi(e,t)}function tt(e,t){return{id:e,type:"select",selected:t}}function xt(e,t=new Set,n=!1){const r=[];for(const[o,s]of e){const i=t.has(o);!(s.selected===void 0&&!i)&&s.selected!==i&&(n&&(s.selected=i),r.push(tt(s.id,i)))}return r}function Jo({items:e=[],lookup:t}){var o;const n=[],r=new Map(e.map(s=>[s.id,s]));for(const[s,i]of e.entries()){const a=t.get(i.id),l=((o=a==null?void 0:a.internals)==null?void 0:o.userNode)??a;l!==void 0&&l!==i&&n.push({id:i.id,item:i,type:"replace"}),l===void 0&&n.push({item:i,type:"add",index:s})}for(const[s]of t)r.get(s)===void 0&&n.push({id:s,type:"remove"});return n}function es(e){return{id:e.id,type:"remove"}}const Zh=ui();function Qh(e,t,n={}){return bf(e,t,{...n,onError:n.onError??Zh})}const ts=e=>sf(e),Jh=e=>ii(e);function Bi(e){return b.forwardRef(e)}const eg=typeof window<"u"?b.useLayoutEffect:b.useEffect;function ns(e){const[t,n]=b.useState(BigInt(0)),[r]=b.useState(()=>tg(()=>n(o=>o+BigInt(1))));return eg(()=>{const o=r.get();o.length&&(e(o),r.reset())},[t]),r}function tg(e){let t=[];return{get:()=>t,reset:()=>{t=[]},push:n=>{t.push(n),e()}}}const Fi=b.createContext(null);function ng({children:e}){const t=ue(),n=b.useCallback(a=>{const{nodes:l=[],setNodes:c,hasDefaultNodes:d,onNodesChange:u,nodeLookup:f,fitViewQueued:h,onNodesChangeMiddlewareMap:g}=t.getState();let w=l;for(const y of a)w=typeof y=="function"?y(w):y;let x=Jo({items:w,lookup:f});for(const y of g.values())x=y(x);d&&c(w),x.length>0?u==null||u(x):h&&window.requestAnimationFrame(()=>{const{fitViewQueued:y,nodes:E,setNodes:m}=t.getState();y&&m(E)})},[]),r=ns(n),o=b.useCallback(a=>{const{edges:l=[],setEdges:c,hasDefaultEdges:d,onEdgesChange:u,edgeLookup:f}=t.getState();let h=l;for(const g of a)h=typeof g=="function"?g(h):g;d?c(h):u&&u(Jo({items:h,lookup:f}))},[]),s=ns(o),i=b.useMemo(()=>({nodeQueue:r,edgeQueue:s}),[]);return p.jsx(Fi.Provider,{value:i,children:e})}function rg(){const e=b.useContext(Fi);if(!e)throw new Error("useBatchContext must be used within a BatchProvider");return e}const og=e=>!!e.panZoom;function Jn(){const e=Kh(),t=ue(),n=rg(),r=ie(og),o=b.useMemo(()=>{const s=u=>t.getState().nodeLookup.get(u),i=u=>{n.nodeQueue.push(u)},a=u=>{n.edgeQueue.push(u)},l=u=>{var y,E;const{nodeLookup:f,nodeOrigin:h}=t.getState(),g=ts(u)?u:f.get(u.id),w=g.parentId?fi(g.position,g.measured,g.parentId,f,h):g.position,x={...g,position:w,width:((y=g.measured)==null?void 0:y.width)??g.width,height:((E=g.measured)==null?void 0:E.height)??g.height};return St(x)},c=(u,f,h={replace:!1})=>{i(g=>g.map(w=>{if(w.id===u){const x=typeof f=="function"?f(w):f;return h.replace&&ts(x)?x:{...w,...x}}return w}))},d=(u,f,h={replace:!1})=>{a(g=>g.map(w=>{if(w.id===u){const x=typeof f=="function"?f(w):f;return h.replace&&Jh(x)?x:{...w,...x}}return w}))};return{getNodes:()=>t.getState().nodes.map(u=>({...u})),getNode:u=>{var f;return(f=s(u))==null?void 0:f.internals.userNode},getInternalNode:s,getEdges:()=>{const{edges:u=[]}=t.getState();return u.map(f=>({...f}))},getEdge:u=>t.getState().edgeLookup.get(u),setNodes:i,setEdges:a,addNodes:u=>{const f=Array.isArray(u)?u:[u];n.nodeQueue.push(h=>[...h,...f])},addEdges:u=>{const f=Array.isArray(u)?u:[u];n.edgeQueue.push(h=>[...h,...f])},toObject:()=>{const{nodes:u=[],edges:f=[],transform:h}=t.getState(),[g,w,x]=h;return{nodes:u.map(y=>({...y})),edges:f.map(y=>({...y})),viewport:{x:g,y:w,zoom:x}}},deleteElements:async({nodes:u=[],edges:f=[]})=>{const{nodes:h,edges:g,onNodesDelete:w,onEdgesDelete:x,triggerNodeChanges:y,triggerEdgeChanges:E,onDelete:m,onBeforeDelete:v}=t.getState(),{nodes:M,edges:S}=await df({nodesToRemove:u,edgesToRemove:f,nodes:h,edges:g,onBeforeDelete:v}),j=S.length>0,T=M.length>0;if(j){const P=S.map(es);x==null||x(S),E(P)}if(T){const P=M.map(es);w==null||w(M),y(P)}return(T||j)&&(m==null||m({nodes:M,edges:S})),{deletedNodes:M,deletedEdges:S}},getIntersectingNodes:(u,f=!0,h)=>{const g=Io(u),w=g?u:l(u),x=h!==void 0;return w?(h||t.getState().nodes).filter(y=>{const E=t.getState().nodeLookup.get(y.id);if(E&&!g&&(y.id===u.id||!E.internals.positionAbsolute))return!1;const m=St(x?y:E),v=Ut(m,w);return f&&v>0||v>=m.width*m.height||v>=w.width*w.height}):[]},isNodeIntersecting:(u,f,h=!0)=>{const w=Io(u)?u:l(u);if(!w)return!1;const x=Ut(w,f);return h&&x>0||x>=f.width*f.height||x>=w.width*w.height},updateNode:c,updateNodeData:(u,f,h={replace:!1})=>{c(u,g=>{const w=typeof f=="function"?f(g):f;return h.replace?{...g,data:w}:{...g,data:{...g.data,...w}}},h)},updateEdge:d,updateEdgeData:(u,f,h={replace:!1})=>{d(u,g=>{const w=typeof f=="function"?f(g):f;return h.replace?{...g,data:w}:{...g,data:{...g.data,...w}}},h)},getNodesBounds:u=>{const{nodeLookup:f,nodeOrigin:h}=t.getState();return af(u,{nodeLookup:f,nodeOrigin:h})},getHandleConnections:({type:u,id:f,nodeId:h})=>{var g;return Array.from(((g=t.getState().connectionLookup.get(`${h}-${u}${f?`-${f}`:""}`))==null?void 0:g.values())??[])},getNodeConnections:({type:u,handleId:f,nodeId:h})=>{var g;return Array.from(((g=t.getState().connectionLookup.get(`${h}${u?f?`-${u}-${f}`:`-${u}`:""}`))==null?void 0:g.values())??[])},fitView:async u=>{const f=t.getState().fitViewResolver??gf();return t.setState({fitViewQueued:!0,fitViewOptions:u,fitViewResolver:f}),n.nodeQueue.push(h=>[...h]),f.promise}}},[]);return b.useMemo(()=>({...o,...e,viewportInitialized:r}),[r])}const rs=e=>e.selected,sg=typeof window<"u"?window:void 0;function ig({deleteKeyCode:e,multiSelectionKeyCode:t}){const n=ue(),{deleteElements:r}=Jn(),o=Qt(e,{actInsideInputWithModifier:!1}),s=Qt(t,{target:sg});b.useEffect(()=>{if(o){const{edges:i,nodes:a}=n.getState();r({nodes:a.filter(rs),edges:i.filter(rs)}),n.setState({nodesSelectionActive:!1})}},[o]),b.useEffect(()=>{n.setState({multiSelectionActive:s})},[s])}function ag(e){const t=ue();b.useEffect(()=>{const n=()=>{var o,s,i,a;if(!e.current||!(((s=(o=e.current).checkVisibility)==null?void 0:s.call(o))??!0))return!1;const r=Zr(e.current);(r.height===0||r.width===0)&&((a=(i=t.getState()).onError)==null||a.call(i,"004",Re.error004())),t.setState({width:r.width||500,height:r.height||500})};if(e.current){n(),window.addEventListener("resize",n);const r=new ResizeObserver(()=>n());return r.observe(e.current),()=>{window.removeEventListener("resize",n),r&&e.current&&r.unobserve(e.current)}}},[])}const er={position:"absolute",width:"100%",height:"100%",top:0,left:0},cg=e=>({userSelectionActive:e.userSelectionActive,lib:e.lib,connectionInProgress:e.connection.inProgress});function lg({onPaneContextMenu:e,zoomOnScroll:t=!0,zoomOnPinch:n=!0,panOnScroll:r=!1,panOnScrollSpeed:o=.5,panOnScrollMode:s=ot.Free,zoomOnDoubleClick:i=!0,panOnDrag:a=!0,defaultViewport:l,translateExtent:c,minZoom:d,maxZoom:u,zoomActivationKeyCode:f,preventScrolling:h=!0,children:g,noWheelClassName:w,noPanClassName:x,onViewportChange:y,isControlledViewport:E,paneClickDistance:m,selectionOnDrag:v}){const M=ue(),S=b.useRef(null),{userSelectionActive:j,lib:T,connectionInProgress:P}=ie(cg,le),O=Qt(f),C=b.useRef();ag(S);const N=b.useCallback(z=>{y==null||y({x:z[0],y:z[1],zoom:z[2]}),E||M.setState({transform:z})},[y,E]);return b.useEffect(()=>{if(S.current){C.current=Zf({domNode:S.current,minZoom:d,maxZoom:u,translateExtent:c,viewport:l,onDraggingChange:k=>M.setState(I=>I.paneDragging===k?I:{paneDragging:k}),onPanZoomStart:(k,I)=>{const{onViewportChangeStart:R,onMoveStart:$}=M.getState();$==null||$(k,I),R==null||R(I)},onPanZoom:(k,I)=>{const{onViewportChange:R,onMove:$}=M.getState();$==null||$(k,I),R==null||R(I)},onPanZoomEnd:(k,I)=>{const{onViewportChangeEnd:R,onMoveEnd:$}=M.getState();$==null||$(k,I),R==null||R(I)}});const{x:z,y:_,zoom:A}=C.current.getViewport();return M.setState({panZoom:C.current,transform:[z,_,A],domNode:S.current.closest(".react-flow")}),()=>{var k;(k=C.current)==null||k.destroy()}}},[]),b.useEffect(()=>{var z;(z=C.current)==null||z.update({onPaneContextMenu:e,zoomOnScroll:t,zoomOnPinch:n,panOnScroll:r,panOnScrollSpeed:o,panOnScrollMode:s,zoomOnDoubleClick:i,panOnDrag:a,zoomActivationKeyPressed:O,preventScrolling:h,noPanClassName:x,userSelectionActive:j,noWheelClassName:w,lib:T,onTransformChange:N,connectionInProgress:P,selectionOnDrag:v,paneClickDistance:m})},[e,t,n,r,o,s,i,a,O,h,x,j,w,T,N,P,v,m]),p.jsx("div",{className:"react-flow__renderer",ref:S,style:er,children:g})}const ug=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function dg(){const{userSelectionActive:e,userSelectionRect:t}=ie(ug,le);return e&&t?p.jsx("div",{className:"react-flow__selection react-flow__container",style:{width:t.width,height:t.height,transform:`translate(${t.x}px, ${t.y}px)`}}):null}const mr=(e,t)=>n=>{n.target===t.current&&(e==null||e(n))},fg=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,connectionInProgress:e.connection.inProgress,dragging:e.paneDragging,panBy:e.panBy,autoPanSpeed:e.autoPanSpeed});function hg({isSelecting:e,selectionKeyPressed:t,selectionMode:n=Gt.Full,panOnDrag:r,autoPanOnSelection:o,paneClickDistance:s,selectionOnDrag:i,onSelectionStart:a,onSelectionEnd:l,onPaneClick:c,onPaneContextMenu:d,onPaneScroll:u,onPaneMouseEnter:f,onPaneMouseMove:h,onPaneMouseLeave:g,children:w}){const x=b.useRef(0),y=ue(),{userSelectionActive:E,elementsSelectable:m,dragging:v,connectionInProgress:M,panBy:S,autoPanSpeed:j}=ie(fg,le),T=m&&(e||E),P=b.useRef(null),O=b.useRef(),C=b.useRef(new Set),N=b.useRef(new Set),z=b.useRef(!1),_=b.useRef({x:0,y:0}),A=b.useRef(!1),k=V=>{if(z.current||M){z.current=!1;return}c==null||c(V),y.getState().resetSelectedElements(),y.setState({nodesSelectionActive:!1})},I=V=>{if(Array.isArray(r)&&(r!=null&&r.includes(2))){V.preventDefault();return}d==null||d(V)},R=u?V=>u(V):void 0,$=V=>{z.current&&(V.stopPropagation(),z.current=!1)},B=V=>{var ce,me;const{domNode:W,transform:ne}=y.getState();if(O.current=W==null?void 0:W.getBoundingClientRect(),!O.current)return;const ee=V.target===P.current;if(!ee&&!!V.target.closest(".nokey")||!e||!(i&&ee||t)||V.button!==0||!V.isPrimary)return;(me=(ce=V.target)==null?void 0:ce.setPointerCapture)==null||me.call(ce,V.pointerId),z.current=!1;const{x:oe,y:K}=Te(V.nativeEvent,O.current),ae=$t({x:oe,y:K},ne);y.setState({userSelectionRect:{width:0,height:0,startX:ae.x,startY:ae.y,x:oe,y:K}}),ee||(V.stopPropagation(),V.preventDefault())};function F(V,W){const{userSelectionRect:ne}=y.getState();if(!ne)return;const{transform:ee,nodeLookup:Z,edgeLookup:Y,connectionLookup:oe,triggerNodeChanges:K,triggerEdgeChanges:ae,defaultEdgeOptions:ce}=y.getState(),me={x:ne.startX,y:ne.startY},{x:ge,y:we}=kt(me,ee),Me={startX:me.x,startY:me.y,x:V<ge?V:ge,y:W<we?W:we,width:Math.abs(V-ge),height:Math.abs(W-we)},Xe=C.current,xe=N.current;C.current=new Set(Gr(Z,Me,ee,n===Gt.Partial,!0).map(be=>be.id)),N.current=new Set;const ve=(ce==null?void 0:ce.selectable)??!0;for(const be of C.current){const Ce=oe.get(be);if(Ce)for(const{edgeId:Ae}of Ce.values()){const $e=Y.get(Ae);$e&&($e.selectable??ve)&&N.current.add(Ae)}}if(!jo(Xe,C.current)){const be=xt(Z,C.current,!0);K(be)}if(!jo(xe,N.current)){const be=xt(Y,N.current);ae(be)}y.setState({userSelectionRect:Me,userSelectionActive:!0,nodesSelectionActive:!1})}function H(){if(!o||!O.current)return;const[V,W]=qr(_.current,O.current,j);S({x:V,y:W}).then(ne=>{if(!z.current||!ne){x.current=requestAnimationFrame(H);return}const{x:ee,y:Z}=_.current;F(ee,Z),x.current=requestAnimationFrame(H)})}const X=()=>{cancelAnimationFrame(x.current),x.current=0,A.current=!1};b.useEffect(()=>()=>X(),[]);const q=V=>{const{userSelectionRect:W,transform:ne,resetSelectedElements:ee}=y.getState();if(!O.current||!W)return;const{x:Z,y:Y}=Te(V.nativeEvent,O.current);_.current={x:Z,y:Y};const oe=kt({x:W.startX,y:W.startY},ne);if(!z.current){const K=t?0:s;if(Math.hypot(Z-oe.x,Y-oe.y)<=K)return;ee(),a==null||a(V)}z.current=!0,A.current||(H(),A.current=!0),F(Z,Y)},te=V=>{var W,ne;V.button===0&&((ne=(W=V.target)==null?void 0:W.releasePointerCapture)==null||ne.call(W,V.pointerId),!E&&V.target===P.current&&y.getState().userSelectionRect&&(k==null||k(V)),y.setState({userSelectionActive:!1,userSelectionRect:null}),z.current&&(l==null||l(V),y.setState({nodesSelectionActive:C.current.size>0})),X())},re=V=>{var W,ne;(ne=(W=V.target)==null?void 0:W.releasePointerCapture)==null||ne.call(W,V.pointerId),X()},Q=r===!0||Array.isArray(r)&&r.includes(0);return p.jsxs("div",{className:he(["react-flow__pane",{draggable:Q,dragging:v,selection:e}]),onClick:T?void 0:mr(k,P),onContextMenu:mr(I,P),onWheel:mr(R,P),onPointerEnter:T?void 0:f,onPointerMove:T?q:h,onPointerUp:T?te:void 0,onPointerCancel:T?re:void 0,onPointerDownCapture:T?B:void 0,onClickCapture:T?$:void 0,onPointerLeave:g,ref:P,style:er,children:[w,p.jsx(dg,{})]})}function zr({id:e,store:t,unselect:n=!1,nodeRef:r}){const{addSelectedNodes:o,unselectNodesAndEdges:s,multiSelectionActive:i,nodeLookup:a,onError:l}=t.getState(),c=a.get(e);if(!c){l==null||l("012",Re.error012(e));return}t.setState({nodesSelectionActive:!1}),c.selected?(n||c.selected&&i)&&(s({nodes:[c],edges:[]}),requestAnimationFrame(()=>{var d;return(d=r==null?void 0:r.current)==null?void 0:d.blur()})):o([e])}function Oi({nodeRef:e,disabled:t=!1,noDragClassName:n,handleSelector:r,nodeId:o,isSelectable:s,nodeClickDistance:i}){const a=ue(),[l,c]=b.useState(!1),d=b.useRef();return b.useEffect(()=>{d.current=Lf({getStoreItems:()=>a.getState(),onNodeMouseDown:u=>{zr({id:u,store:a,nodeRef:e})},onDragStart:()=>{c(!0)},onDragStop:()=>{c(!1)}})},[]),b.useEffect(()=>{if(!(t||!e.current||!d.current))return d.current.update({noDragClassName:n,handleSelector:r,domNode:e.current,isSelectable:s,nodeId:o,nodeClickDistance:i}),()=>{var u;(u=d.current)==null||u.destroy()}},[n,r,t,s,e,o,i]),l}const gg=e=>t=>t.selected&&(t.draggable||e&&typeof t.draggable>"u");function Wi(){const e=ue();return b.useCallback(n=>{const{nodeExtent:r,snapToGrid:o,snapGrid:s,nodesDraggable:i,onError:a,updateNodePositions:l,nodeLookup:c,nodeOrigin:d}=e.getState(),u=new Map,f=gg(i),h=o?s[0]:5,g=o?s[1]:5,w=n.direction.x*h*n.factor,x=n.direction.y*g*n.factor;for(const[,y]of c){if(!f(y))continue;let E={x:y.internals.positionAbsolute.x+w,y:y.internals.positionAbsolute.y+x};o&&(E=rn(E,s));const{position:m,positionAbsolute:v}=ai({nodeId:y.id,nextPosition:E,nodeLookup:c,nodeExtent:r,nodeOrigin:d,onError:a});y.position=m,y.internals.positionAbsolute=v,u.set(y.id,y)}l(u)},[])}const ro=b.createContext(null),pg=ro.Provider;ro.Consumer;const Yi=()=>b.useContext(ro),mg=e=>({connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName,rfId:e.rfId}),yg=(e,t,n)=>r=>{const{connectionClickStartHandle:o,connectionMode:s,connection:i}=r,{fromHandle:a,toHandle:l,isValid:c}=i,d=(l==null?void 0:l.nodeId)===e&&(l==null?void 0:l.id)===t&&(l==null?void 0:l.type)===n;return{connectingFrom:(a==null?void 0:a.nodeId)===e&&(a==null?void 0:a.id)===t&&(a==null?void 0:a.type)===n,connectingTo:d,clickConnecting:(o==null?void 0:o.nodeId)===e&&(o==null?void 0:o.id)===t&&(o==null?void 0:o.type)===n,isPossibleEndHandle:s===Et.Strict?(a==null?void 0:a.type)!==n:e!==(a==null?void 0:a.nodeId)||t!==(a==null?void 0:a.id),connectionInProcess:!!a,clickConnectionInProcess:!!o,valid:d&&c}};function xg({type:e="source",position:t=J.Top,isValidConnection:n,isConnectable:r=!0,isConnectableStart:o=!0,isConnectableEnd:s=!0,id:i,onConnect:a,children:l,className:c,onMouseDown:d,onTouchStart:u,...f},h){var A,k;const g=i||null,w=e==="target",x=ue(),y=Yi(),{connectOnClick:E,noPanClassName:m,rfId:v}=ie(mg,le),{connectingFrom:M,connectingTo:S,clickConnecting:j,isPossibleEndHandle:T,connectionInProcess:P,clickConnectionInProcess:O,valid:C}=ie(yg(y,g,e),le);y||(k=(A=x.getState()).onError)==null||k.call(A,"010",Re.error010());const N=I=>{const{defaultEdgeOptions:R,onConnect:$,hasDefaultEdges:B}=x.getState(),F={...R,...I};if(B){const{edges:H,setEdges:X,onError:q}=x.getState();X(Qh(F,H,{onError:q}))}$==null||$(F),a==null||a(F)},z=I=>{if(!y)return;const R=pi(I.nativeEvent);if(o&&(R&&I.button===0||!R)){const $=x.getState();Lr.onPointerDown(I.nativeEvent,{handleDomNode:I.currentTarget,autoPanOnConnect:$.autoPanOnConnect,connectionMode:$.connectionMode,connectionRadius:$.connectionRadius,domNode:$.domNode,nodeLookup:$.nodeLookup,lib:$.lib,isTarget:w,handleId:g,nodeId:y,flowId:$.rfId,panBy:$.panBy,cancelConnection:$.cancelConnection,onConnectStart:$.onConnectStart,onConnectEnd:(...B)=>{var F,H;return(H=(F=x.getState()).onConnectEnd)==null?void 0:H.call(F,...B)},updateConnection:$.updateConnection,onConnect:N,isValidConnection:n||((...B)=>{var F,H;return((H=(F=x.getState()).isValidConnection)==null?void 0:H.call(F,...B))??!0}),getTransform:()=>x.getState().transform,getFromHandle:()=>x.getState().connection.fromHandle,autoPanSpeed:$.autoPanSpeed,dragThreshold:$.connectionDragThreshold})}R?d==null||d(I):u==null||u(I)},_=I=>{const{onClickConnectStart:R,onClickConnectEnd:$,connectionClickStartHandle:B,connectionMode:F,isValidConnection:H,lib:X,rfId:q,nodeLookup:te,connection:re}=x.getState();if(!y||!B&&!o)return;if(!B){R==null||R(I.nativeEvent,{nodeId:y,handleId:g,handleType:e}),x.setState({connectionClickStartHandle:{nodeId:y,type:e,id:g}});return}const Q=hi(I.target),V=n||H,{connection:W,isValid:ne}=Lr.isValid(I.nativeEvent,{handle:{nodeId:y,id:g,type:e},connectionMode:F,fromNodeId:B.nodeId,fromHandleId:B.id||null,fromType:B.type,isValidConnection:V,flowId:q,doc:Q,lib:X,nodeLookup:te});ne&&W&&N(W);const ee=structuredClone(re);delete ee.inProgress,ee.toPosition=ee.toHandle?ee.toHandle.position:null,$==null||$(I,ee),x.setState({connectionClickStartHandle:null})};return p.jsx("div",{"data-handleid":g,"data-nodeid":y,"data-handlepos":t,"data-id":`${v}-${y}-${g}-${e}`,className:he(["react-flow__handle",`react-flow__handle-${t}`,"nodrag",m,c,{source:!w,target:w,connectable:r,connectablestart:o,connectableend:s,clickconnecting:j,connectingfrom:M,connectingto:S,valid:C,connectionindicator:r&&(!P||T)&&(P||O?s:o)}]),onMouseDown:z,onTouchStart:z,onClick:E?_:void 0,ref:h,...f,children:l})}const At=b.memo(Bi(xg));function wg({data:e,isConnectable:t,sourcePosition:n=J.Bottom}){return p.jsxs(p.Fragment,{children:[e==null?void 0:e.label,p.jsx(At,{type:"source",position:n,isConnectable:t})]})}function vg({data:e,isConnectable:t,targetPosition:n=J.Top,sourcePosition:r=J.Bottom}){return p.jsxs(p.Fragment,{children:[p.jsx(At,{type:"target",position:n,isConnectable:t}),e==null?void 0:e.label,p.jsx(At,{type:"source",position:r,isConnectable:t})]})}function bg(){return null}function _g({data:e,isConnectable:t,targetPosition:n=J.Top}){return p.jsxs(p.Fragment,{children:[p.jsx(At,{type:"target",position:n,isConnectable:t}),e==null?void 0:e.label]})}const Hn={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},os={input:wg,default:vg,output:_g,group:bg};function Eg(e){var t,n,r,o;return e.internals.handleBounds===void 0?{width:e.width??e.initialWidth??((t=e.style)==null?void 0:t.width),height:e.height??e.initialHeight??((n=e.style)==null?void 0:n.height)}:{width:e.width??((r=e.style)==null?void 0:r.width),height:e.height??((o=e.style)==null?void 0:o.height)}}const Ng=e=>{const{width:t,height:n,x:r,y:o}=nn(e.nodeLookup,{filter:s=>!!s.selected});return{width:De(t)?t:null,height:De(n)?n:null,userSelectionActive:e.userSelectionActive,transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]}) translate(${r}px,${o}px)`}};function Sg({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:n}){const r=ue(),{width:o,height:s,transformString:i,userSelectionActive:a}=ie(Ng,le),l=Wi(),c=b.useRef(null);b.useEffect(()=>{var h;n||(h=c.current)==null||h.focus({preventScroll:!0})},[n]);const d=!a&&o!==null&&s!==null;if(Oi({nodeRef:c,disabled:!d}),!d)return null;const u=e?h=>{const g=r.getState().nodes.filter(w=>w.selected);e(h,g)}:void 0,f=h=>{Object.prototype.hasOwnProperty.call(Hn,h.key)&&(h.preventDefault(),l({direction:Hn[h.key],factor:h.shiftKey?4:1}))};return p.jsx("div",{className:he(["react-flow__nodesselection","react-flow__container",t]),style:{transform:i},children:p.jsx("div",{ref:c,className:"react-flow__nodesselection-rect",onContextMenu:u,tabIndex:n?void 0:-1,onKeyDown:n?void 0:f,style:{width:o,height:s}})})}const ss=typeof window<"u"?window:void 0,kg=e=>({nodesSelectionActive:e.nodesSelectionActive,userSelectionActive:e.userSelectionActive});function Xi({children:e,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:o,onPaneContextMenu:s,onPaneScroll:i,paneClickDistance:a,deleteKeyCode:l,selectionKeyCode:c,selectionOnDrag:d,selectionMode:u,onSelectionStart:f,onSelectionEnd:h,multiSelectionKeyCode:g,panActivationKeyCode:w,zoomActivationKeyCode:x,elementsSelectable:y,zoomOnScroll:E,zoomOnPinch:m,panOnScroll:v,panOnScrollSpeed:M,panOnScrollMode:S,zoomOnDoubleClick:j,panOnDrag:T,autoPanOnSelection:P,defaultViewport:O,translateExtent:C,minZoom:N,maxZoom:z,preventScrolling:_,onSelectionContextMenu:A,noWheelClassName:k,noPanClassName:I,disableKeyboardA11y:R,onViewportChange:$,isControlledViewport:B}){const{nodesSelectionActive:F,userSelectionActive:H}=ie(kg,le),X=Qt(c,{target:ss}),q=Qt(w,{target:ss}),te=q||T,re=q||v,Q=d&&te!==!0,V=X||H||Q;return ig({deleteKeyCode:l,multiSelectionKeyCode:g}),p.jsx(lg,{onPaneContextMenu:s,elementsSelectable:y,zoomOnScroll:E,zoomOnPinch:m,panOnScroll:re,panOnScrollSpeed:M,panOnScrollMode:S,zoomOnDoubleClick:j,panOnDrag:!X&&te,defaultViewport:O,translateExtent:C,minZoom:N,maxZoom:z,zoomActivationKeyCode:x,preventScrolling:_,noWheelClassName:k,noPanClassName:I,onViewportChange:$,isControlledViewport:B,paneClickDistance:a,selectionOnDrag:Q,children:p.jsxs(hg,{onSelectionStart:f,onSelectionEnd:h,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:o,onPaneContextMenu:s,onPaneScroll:i,panOnDrag:te,autoPanOnSelection:P,isSelecting:!!V,selectionMode:u,selectionKeyPressed:X,paneClickDistance:a,selectionOnDrag:Q,children:[e,F&&p.jsx(Sg,{onSelectionContextMenu:A,noPanClassName:I,disableKeyboardA11y:R})]})})}Xi.displayName="FlowRenderer";const Mg=b.memo(Xi),Cg=e=>t=>e?Gr(t.nodeLookup,{x:0,y:0,width:t.width,height:t.height},t.transform,!0).map(n=>n.id):Array.from(t.nodeLookup.keys());function Ag(e){return ie(b.useCallback(Cg(e),[e]),le)}const $g=e=>e.updateNodeInternals;function Ig(){const e=ie($g),[t]=b.useState(()=>typeof ResizeObserver>"u"?null:new ResizeObserver(n=>{const r=new Map;n.forEach(o=>{const s=o.target.getAttribute("data-id");r.set(s,{id:s,nodeElement:o.target,force:!0})}),e(r)}));return b.useEffect(()=>()=>{t==null||t.disconnect()},[t]),t}function jg({node:e,nodeType:t,hasDimensions:n,resizeObserver:r}){const o=ue(),s=b.useRef(null),i=b.useRef(null),a=b.useRef(e.sourcePosition),l=b.useRef(e.targetPosition),c=b.useRef(t),d=n&&!!e.internals.handleBounds;return b.useEffect(()=>{s.current&&!e.hidden&&(!d||i.current!==s.current)&&(i.current&&(r==null||r.unobserve(i.current)),r==null||r.observe(s.current),i.current=s.current)},[d,e.hidden]),b.useEffect(()=>()=>{i.current&&(r==null||r.unobserve(i.current),i.current=null)},[]),b.useEffect(()=>{if(s.current){const u=c.current!==t,f=a.current!==e.sourcePosition,h=l.current!==e.targetPosition;(u||f||h)&&(c.current=t,a.current=e.sourcePosition,l.current=e.targetPosition,o.getState().updateNodeInternals(new Map([[e.id,{id:e.id,nodeElement:s.current,force:!0}]])))}},[e.id,t,e.sourcePosition,e.targetPosition]),s}function Pg({id:e,onClick:t,onMouseEnter:n,onMouseMove:r,onMouseLeave:o,onContextMenu:s,onDoubleClick:i,nodesDraggable:a,elementsSelectable:l,nodesConnectable:c,nodesFocusable:d,resizeObserver:u,noDragClassName:f,noPanClassName:h,disableKeyboardA11y:g,rfId:w,nodeTypes:x,nodeClickDistance:y,onError:E}){const{node:m,internals:v,isParent:M}=ie(V=>{const W=V.nodeLookup.get(e),ne=V.parentLookup.has(e);return{node:W,internals:W.internals,isParent:ne}},le);let S=m.type||"default",j=(x==null?void 0:x[S])||os[S];j===void 0&&(E==null||E("003",Re.error003(S)),S="default",j=(x==null?void 0:x.default)||os.default);const T=!!(m.draggable||a&&typeof m.draggable>"u"),P=!!(m.selectable||l&&typeof m.selectable>"u"),O=!!(m.connectable||c&&typeof m.connectable>"u"),C=!!(m.focusable||d&&typeof m.focusable>"u"),N=ue(),z=di(m),_=jg({node:m,nodeType:S,hasDimensions:z,resizeObserver:u}),A=Oi({nodeRef:_,disabled:m.hidden||!T,noDragClassName:f,handleSelector:m.dragHandle,nodeId:e,isSelectable:P,nodeClickDistance:y}),k=Wi();if(m.hidden)return null;const I=Ye(m),R=Eg(m),$=P||T||t||n||r||o,B=n?V=>n(V,{...v.userNode}):void 0,F=r?V=>r(V,{...v.userNode}):void 0,H=o?V=>o(V,{...v.userNode}):void 0,X=s?V=>s(V,{...v.userNode}):void 0,q=i?V=>i(V,{...v.userNode}):void 0,te=V=>{const{selectNodesOnDrag:W,nodeDragThreshold:ne}=N.getState();P&&(!W||!T||ne>0)&&zr({id:e,store:N,nodeRef:_}),t&&t(V,{...v.userNode})},re=V=>{if(!(gi(V.nativeEvent)||g)){if(ni.includes(V.key)&&P){const W=V.key==="Escape";zr({id:e,store:N,unselect:W,nodeRef:_})}else if(T&&m.selected&&Object.prototype.hasOwnProperty.call(Hn,V.key)){V.preventDefault();const{ariaLabelConfig:W}=N.getState();N.setState({ariaLiveMessage:W["node.a11yDescription.ariaLiveMessage"]({direction:V.key.replace("Arrow","").toLowerCase(),x:~~v.positionAbsolute.x,y:~~v.positionAbsolute.y})}),k({direction:Hn[V.key],factor:V.shiftKey?4:1})}}},Q=()=>{var oe;if(g||!((oe=_.current)!=null&&oe.matches(":focus-visible")))return;const{transform:V,width:W,height:ne,autoPanOnNodeFocus:ee,setCenter:Z}=N.getState();if(!ee)return;Gr(new Map([[e,m]]),{x:0,y:0,width:W,height:ne},V,!0).length>0||Z(m.position.x+I.width/2,m.position.y+I.height/2,{zoom:V[2]})};return p.jsx("div",{className:he(["react-flow__node",`react-flow__node-${S}`,{[h]:T},m.className,{selected:m.selected,selectable:P,parent:M,draggable:T,dragging:A}]),ref:_,style:{zIndex:v.z,transform:`translate(${v.positionAbsolute.x}px,${v.positionAbsolute.y}px)`,pointerEvents:$?"all":"none",visibility:z?"visible":"hidden",...m.style,...R},"data-id":e,"data-testid":`rf__node-${e}`,onMouseEnter:B,onMouseMove:F,onMouseLeave:H,onContextMenu:X,onClick:te,onDoubleClick:q,onKeyDown:C?re:void 0,tabIndex:C?0:void 0,onFocus:C?Q:void 0,role:m.ariaRole??(C?"group":void 0),"aria-roledescription":"node","aria-describedby":g?void 0:`${Li}-${w}`,"aria-label":m.ariaLabel,...m.domAttributes,children:p.jsx(pg,{value:e,children:p.jsx(j,{id:e,data:m.data,type:S,positionAbsoluteX:v.positionAbsolute.x,positionAbsoluteY:v.positionAbsolute.y,selected:m.selected??!1,selectable:P,draggable:T,deletable:m.deletable??!0,isConnectable:O,sourcePosition:m.sourcePosition,targetPosition:m.targetPosition,dragging:A,dragHandle:m.dragHandle,zIndex:v.z,parentId:m.parentId,...I})})})}var Dg=b.memo(Pg);const Tg=e=>({nodesDraggable:e.nodesDraggable,nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,onError:e.onError});function Ki(e){const{nodesDraggable:t,nodesConnectable:n,nodesFocusable:r,elementsSelectable:o,onError:s}=ie(Tg,le),i=Ag(e.onlyRenderVisibleElements),a=Ig();return p.jsx("div",{className:"react-flow__nodes",style:er,children:i.map(l=>p.jsx(Dg,{id:l,nodeTypes:e.nodeTypes,nodeExtent:e.nodeExtent,onClick:e.onNodeClick,onMouseEnter:e.onNodeMouseEnter,onMouseMove:e.onNodeMouseMove,onMouseLeave:e.onNodeMouseLeave,onContextMenu:e.onNodeContextMenu,onDoubleClick:e.onNodeDoubleClick,noDragClassName:e.noDragClassName,noPanClassName:e.noPanClassName,rfId:e.rfId,disableKeyboardA11y:e.disableKeyboardA11y,resizeObserver:a,nodesDraggable:t,nodesConnectable:n,nodesFocusable:r,elementsSelectable:o,nodeClickDistance:e.nodeClickDistance,onError:s},l))})}Ki.displayName="NodeRenderer";const Rg=b.memo(Ki);function Lg(e){return ie(b.useCallback(n=>{if(!e)return n.edges.map(o=>o.id);const r=[];if(n.width&&n.height)for(const o of n.edges){const s=n.nodeLookup.get(o.source),i=n.nodeLookup.get(o.target);s&&i&&xf({sourceNode:s,targetNode:i,width:n.width,height:n.height,transform:n.transform})&&r.push(o.id)}return r},[e]),le)}const zg=({color:e="none",strokeWidth:t=1})=>{const n={strokeWidth:t,...e&&{stroke:e}};return p.jsx("polyline",{className:"arrow",style:n,strokeLinecap:"round",fill:"none",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4"})},Hg=({color:e="none",strokeWidth:t=1})=>{const n={strokeWidth:t,...e&&{stroke:e,fill:e}};return p.jsx("polyline",{className:"arrowclosed",style:n,strokeLinecap:"round",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4 -5,-4"})},is={[qt.Arrow]:zg,[qt.ArrowClosed]:Hg};function Vg(e){const t=ue();return b.useMemo(()=>{var o,s;return Object.prototype.hasOwnProperty.call(is,e)?is[e]:((s=(o=t.getState()).onError)==null||s.call(o,"009",Re.error009(e)),null)},[e])}const Bg=({id:e,type:t,color:n,width:r=12.5,height:o=12.5,markerUnits:s="strokeWidth",strokeWidth:i,orient:a="auto-start-reverse"})=>{const l=Vg(t);return l?p.jsx("marker",{className:"react-flow__arrowhead",id:e,markerWidth:`${r}`,markerHeight:`${o}`,viewBox:"-10 -10 20 20",markerUnits:s,orient:a,refX:"0",refY:"0",children:p.jsx(l,{color:n,strokeWidth:i})}):null},Gi=({defaultColor:e,rfId:t})=>{const n=ie(s=>s.edges),r=ie(s=>s.defaultEdgeOptions),o=b.useMemo(()=>kf(n,{id:t,defaultColor:e,defaultMarkerStart:r==null?void 0:r.markerStart,defaultMarkerEnd:r==null?void 0:r.markerEnd}),[n,r,t,e]);return o.length?p.jsx("svg",{className:"react-flow__marker","aria-hidden":"true",children:p.jsx("defs",{children:o.map(s=>p.jsx(Bg,{id:s.id,type:s.type,color:s.color,width:s.width,height:s.height,markerUnits:s.markerUnits,strokeWidth:s.strokeWidth,orient:s.orient},s.id))})}):null};Gi.displayName="MarkerDefinitions";var Fg=b.memo(Gi);function qi({x:e,y:t,label:n,labelStyle:r,labelShowBg:o=!0,labelBgStyle:s,labelBgPadding:i=[2,4],labelBgBorderRadius:a=2,children:l,className:c,...d}){const[u,f]=b.useState({x:1,y:0,width:0,height:0}),h=he(["react-flow__edge-textwrapper",c]),g=b.useRef(null);return b.useEffect(()=>{if(g.current){const w=g.current.getBBox();f({x:w.x,y:w.y,width:w.width,height:w.height})}},[n]),n?p.jsxs("g",{transform:`translate(${e-u.width/2} ${t-u.height/2})`,className:h,visibility:u.width?"visible":"hidden",...d,children:[o&&p.jsx("rect",{width:u.width+2*i[0],x:-i[0],y:-i[1],height:u.height+2*i[1],className:"react-flow__edge-textbg",style:s,rx:a,ry:a}),p.jsx("text",{className:"react-flow__edge-text",y:u.height/2,dy:"0.3em",ref:g,style:r,children:n}),l]}):null}qi.displayName="EdgeText";const Og=b.memo(qi);function tr({path:e,labelX:t,labelY:n,label:r,labelStyle:o,labelShowBg:s,labelBgStyle:i,labelBgPadding:a,labelBgBorderRadius:l,interactionWidth:c=20,...d}){return p.jsxs(p.Fragment,{children:[p.jsx("path",{...d,d:e,fill:"none",className:he(["react-flow__edge-path",d.className])}),c?p.jsx("path",{d:e,fill:"none",strokeOpacity:0,strokeWidth:c,className:"react-flow__edge-interaction"}):null,r&&De(t)&&De(n)?p.jsx(Og,{x:t,y:n,label:r,labelStyle:o,labelShowBg:s,labelBgStyle:i,labelBgPadding:a,labelBgBorderRadius:l}):null]})}function as({pos:e,x1:t,y1:n,x2:r,y2:o}){return e===J.Left||e===J.Right?[.5*(t+r),n]:[t,.5*(n+o)]}function Ui({sourceX:e,sourceY:t,sourcePosition:n=J.Bottom,targetX:r,targetY:o,targetPosition:s=J.Top}){const[i,a]=as({pos:n,x1:e,y1:t,x2:r,y2:o}),[l,c]=as({pos:s,x1:r,y1:o,x2:e,y2:t}),[d,u,f,h]=mi({sourceX:e,sourceY:t,targetX:r,targetY:o,sourceControlX:i,sourceControlY:a,targetControlX:l,targetControlY:c});return[`M${e},${t} C${i},${a} ${l},${c} ${r},${o}`,d,u,f,h]}function Zi(e){return b.memo(({id:t,sourceX:n,sourceY:r,targetX:o,targetY:s,sourcePosition:i,targetPosition:a,label:l,labelStyle:c,labelShowBg:d,labelBgStyle:u,labelBgPadding:f,labelBgBorderRadius:h,style:g,markerEnd:w,markerStart:x,interactionWidth:y})=>{const[E,m,v]=Ui({sourceX:n,sourceY:r,sourcePosition:i,targetX:o,targetY:s,targetPosition:a}),M=e.isInternal?void 0:t;return p.jsx(tr,{id:M,path:E,labelX:m,labelY:v,label:l,labelStyle:c,labelShowBg:d,labelBgStyle:u,labelBgPadding:f,labelBgBorderRadius:h,style:g,markerEnd:w,markerStart:x,interactionWidth:y})})}const Wg=Zi({isInternal:!1}),Qi=Zi({isInternal:!0});Wg.displayName="SimpleBezierEdge";Qi.displayName="SimpleBezierEdgeInternal";function Ji(e){return b.memo(({id:t,sourceX:n,sourceY:r,targetX:o,targetY:s,label:i,labelStyle:a,labelShowBg:l,labelBgStyle:c,labelBgPadding:d,labelBgBorderRadius:u,style:f,sourcePosition:h=J.Bottom,targetPosition:g=J.Top,markerEnd:w,markerStart:x,pathOptions:y,interactionWidth:E})=>{const[m,v,M]=Dr({sourceX:n,sourceY:r,sourcePosition:h,targetX:o,targetY:s,targetPosition:g,borderRadius:y==null?void 0:y.borderRadius,offset:y==null?void 0:y.offset,stepPosition:y==null?void 0:y.stepPosition}),S=e.isInternal?void 0:t;return p.jsx(tr,{id:S,path:m,labelX:v,labelY:M,label:i,labelStyle:a,labelShowBg:l,labelBgStyle:c,labelBgPadding:d,labelBgBorderRadius:u,style:f,markerEnd:w,markerStart:x,interactionWidth:E})})}const ea=Ji({isInternal:!1}),ta=Ji({isInternal:!0});ea.displayName="SmoothStepEdge";ta.displayName="SmoothStepEdgeInternal";function na(e){return b.memo(({id:t,...n})=>{var o;const r=e.isInternal?void 0:t;return p.jsx(ea,{...n,id:r,pathOptions:b.useMemo(()=>{var s;return{borderRadius:0,offset:(s=n.pathOptions)==null?void 0:s.offset}},[(o=n.pathOptions)==null?void 0:o.offset])})})}const Yg=na({isInternal:!1}),ra=na({isInternal:!0});Yg.displayName="StepEdge";ra.displayName="StepEdgeInternal";function oa(e){return b.memo(({id:t,sourceX:n,sourceY:r,targetX:o,targetY:s,label:i,labelStyle:a,labelShowBg:l,labelBgStyle:c,labelBgPadding:d,labelBgBorderRadius:u,style:f,markerEnd:h,markerStart:g,interactionWidth:w})=>{const[x,y,E]=wi({sourceX:n,sourceY:r,targetX:o,targetY:s}),m=e.isInternal?void 0:t;return p.jsx(tr,{id:m,path:x,labelX:y,labelY:E,label:i,labelStyle:a,labelShowBg:l,labelBgStyle:c,labelBgPadding:d,labelBgBorderRadius:u,style:f,markerEnd:h,markerStart:g,interactionWidth:w})})}const Xg=oa({isInternal:!1}),sa=oa({isInternal:!0});Xg.displayName="StraightEdge";sa.displayName="StraightEdgeInternal";function ia(e){return b.memo(({id:t,sourceX:n,sourceY:r,targetX:o,targetY:s,sourcePosition:i=J.Bottom,targetPosition:a=J.Top,label:l,labelStyle:c,labelShowBg:d,labelBgStyle:u,labelBgPadding:f,labelBgBorderRadius:h,style:g,markerEnd:w,markerStart:x,pathOptions:y,interactionWidth:E})=>{const[m,v,M]=yi({sourceX:n,sourceY:r,sourcePosition:i,targetX:o,targetY:s,targetPosition:a,curvature:y==null?void 0:y.curvature}),S=e.isInternal?void 0:t;return p.jsx(tr,{id:S,path:m,labelX:v,labelY:M,label:l,labelStyle:c,labelShowBg:d,labelBgStyle:u,labelBgPadding:f,labelBgBorderRadius:h,style:g,markerEnd:w,markerStart:x,interactionWidth:E})})}const Kg=ia({isInternal:!1}),aa=ia({isInternal:!0});Kg.displayName="BezierEdge";aa.displayName="BezierEdgeInternal";const cs={default:aa,straight:sa,step:ra,smoothstep:ta,simplebezier:Qi},ls={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null},Gg=(e,t,n)=>n===J.Left?e-t:n===J.Right?e+t:e,qg=(e,t,n)=>n===J.Top?e-t:n===J.Bottom?e+t:e,us="react-flow__edgeupdater";function ds({position:e,centerX:t,centerY:n,radius:r=10,onMouseDown:o,onMouseEnter:s,onMouseOut:i,type:a}){return p.jsx("circle",{onMouseDown:o,onMouseEnter:s,onMouseOut:i,className:he([us,`${us}-${a}`]),cx:Gg(t,r,e),cy:qg(n,r,e),r,stroke:"transparent",fill:"transparent"})}function Ug({isReconnectable:e,reconnectRadius:t,edge:n,sourceX:r,sourceY:o,targetX:s,targetY:i,sourcePosition:a,targetPosition:l,onReconnect:c,onReconnectStart:d,onReconnectEnd:u,setReconnecting:f,setUpdateHover:h}){const g=ue(),w=(v,M)=>{if(v.button!==0)return;const{autoPanOnConnect:S,domNode:j,connectionMode:T,connectionRadius:P,lib:O,onConnectStart:C,cancelConnection:N,nodeLookup:z,rfId:_,panBy:A,updateConnection:k}=g.getState(),I=M.type==="target",R=(F,H)=>{f(!1),u==null||u(F,n,M.type,H)},$=F=>c==null?void 0:c(n,F),B=(F,H)=>{f(!0),d==null||d(v,n,M.type),C==null||C(F,H)};Lr.onPointerDown(v.nativeEvent,{autoPanOnConnect:S,connectionMode:T,connectionRadius:P,domNode:j,handleId:M.id,nodeId:M.nodeId,nodeLookup:z,isTarget:I,edgeUpdaterType:M.type,lib:O,flowId:_,cancelConnection:N,panBy:A,isValidConnection:(...F)=>{var H,X;return((X=(H=g.getState()).isValidConnection)==null?void 0:X.call(H,...F))??!0},onConnect:$,onConnectStart:B,onConnectEnd:(...F)=>{var H,X;return(X=(H=g.getState()).onConnectEnd)==null?void 0:X.call(H,...F)},onReconnectEnd:R,updateConnection:k,getTransform:()=>g.getState().transform,getFromHandle:()=>g.getState().connection.fromHandle,dragThreshold:g.getState().connectionDragThreshold,handleDomNode:v.currentTarget})},x=v=>w(v,{nodeId:n.target,id:n.targetHandle??null,type:"target"}),y=v=>w(v,{nodeId:n.source,id:n.sourceHandle??null,type:"source"}),E=()=>h(!0),m=()=>h(!1);return p.jsxs(p.Fragment,{children:[(e===!0||e==="source")&&p.jsx(ds,{position:a,centerX:r,centerY:o,radius:t,onMouseDown:x,onMouseEnter:E,onMouseOut:m,type:"source"}),(e===!0||e==="target")&&p.jsx(ds,{position:l,centerX:s,centerY:i,radius:t,onMouseDown:y,onMouseEnter:E,onMouseOut:m,type:"target"})]})}function Zg({id:e,edgesFocusable:t,edgesReconnectable:n,elementsSelectable:r,onClick:o,onDoubleClick:s,onContextMenu:i,onMouseEnter:a,onMouseMove:l,onMouseLeave:c,reconnectRadius:d,onReconnect:u,onReconnectStart:f,onReconnectEnd:h,rfId:g,edgeTypes:w,noPanClassName:x,onError:y,disableKeyboardA11y:E}){let m=ie(Z=>Z.edgeLookup.get(e));const v=ie(Z=>Z.defaultEdgeOptions);m=v?{...v,...m}:m;let M=m.type||"default",S=(w==null?void 0:w[M])||cs[M];S===void 0&&(y==null||y("011",Re.error011(M)),M="default",S=(w==null?void 0:w.default)||cs.default);const j=!!(m.focusable||t&&typeof m.focusable>"u"),T=typeof u<"u"&&(m.reconnectable||n&&typeof m.reconnectable>"u"),P=!!(m.selectable||r&&typeof m.selectable>"u"),O=b.useRef(null),[C,N]=b.useState(!1),[z,_]=b.useState(!1),A=ue(),{zIndex:k,sourceX:I,sourceY:R,targetX:$,targetY:B,sourcePosition:F,targetPosition:H}=ie(b.useCallback(Z=>{const Y=Z.nodeLookup.get(m.source),oe=Z.nodeLookup.get(m.target);if(!Y||!oe)return{zIndex:m.zIndex,...ls};const K=Sf({id:e,sourceNode:Y,targetNode:oe,sourceHandle:m.sourceHandle||null,targetHandle:m.targetHandle||null,connectionMode:Z.connectionMode,onError:y});return{zIndex:yf({selected:m.selected,zIndex:m.zIndex,sourceNode:Y,targetNode:oe,elevateOnSelect:Z.elevateEdgesOnSelect,zIndexMode:Z.zIndexMode}),...K||ls}},[m.source,m.target,m.sourceHandle,m.targetHandle,m.selected,m.zIndex]),le),X=b.useMemo(()=>m.markerStart?`url('#${Tr(m.markerStart,g)}')`:void 0,[m.markerStart,g]),q=b.useMemo(()=>m.markerEnd?`url('#${Tr(m.markerEnd,g)}')`:void 0,[m.markerEnd,g]);if(m.hidden||I===null||R===null||$===null||B===null)return null;const te=Z=>{var ae;const{addSelectedEdges:Y,unselectNodesAndEdges:oe,multiSelectionActive:K}=A.getState();P&&(A.setState({nodesSelectionActive:!1}),m.selected&&K?(oe({nodes:[],edges:[m]}),(ae=O.current)==null||ae.blur()):Y([e])),o&&o(Z,m)},re=s?Z=>{s(Z,{...m})}:void 0,Q=i?Z=>{i(Z,{...m})}:void 0,V=a?Z=>{a(Z,{...m})}:void 0,W=l?Z=>{l(Z,{...m})}:void 0,ne=c?Z=>{c(Z,{...m})}:void 0,ee=Z=>{var Y;if(!E&&ni.includes(Z.key)&&P){const{unselectNodesAndEdges:oe,addSelectedEdges:K}=A.getState();Z.key==="Escape"?((Y=O.current)==null||Y.blur(),oe({edges:[m]})):K([e])}};return p.jsx("svg",{style:{zIndex:k},children:p.jsxs("g",{className:he(["react-flow__edge",`react-flow__edge-${M}`,m.className,x,{selected:m.selected,animated:m.animated,inactive:!P&&!o,updating:C,selectable:P}]),onClick:te,onDoubleClick:re,onContextMenu:Q,onMouseEnter:V,onMouseMove:W,onMouseLeave:ne,onKeyDown:j?ee:void 0,tabIndex:j?0:void 0,role:m.ariaRole??(j?"group":"img"),"aria-roledescription":"edge","data-id":e,"data-testid":`rf__edge-${e}`,"aria-label":m.ariaLabel===null?void 0:m.ariaLabel||`Edge from ${m.source} to ${m.target}`,"aria-describedby":j?`${zi}-${g}`:void 0,ref:O,...m.domAttributes,children:[!z&&p.jsx(S,{id:e,source:m.source,target:m.target,type:m.type,selected:m.selected,animated:m.animated,selectable:P,deletable:m.deletable??!0,label:m.label,labelStyle:m.labelStyle,labelShowBg:m.labelShowBg,labelBgStyle:m.labelBgStyle,labelBgPadding:m.labelBgPadding,labelBgBorderRadius:m.labelBgBorderRadius,sourceX:I,sourceY:R,targetX:$,targetY:B,sourcePosition:F,targetPosition:H,data:m.data,style:m.style,sourceHandleId:m.sourceHandle,targetHandleId:m.targetHandle,markerStart:X,markerEnd:q,pathOptions:"pathOptions"in m?m.pathOptions:void 0,interactionWidth:m.interactionWidth}),T&&p.jsx(Ug,{edge:m,isReconnectable:T,reconnectRadius:d,onReconnect:u,onReconnectStart:f,onReconnectEnd:h,sourceX:I,sourceY:R,targetX:$,targetY:B,sourcePosition:F,targetPosition:H,setUpdateHover:N,setReconnecting:_})]})})}var Qg=b.memo(Zg);const Jg=e=>({edgesFocusable:e.edgesFocusable,edgesReconnectable:e.edgesReconnectable,elementsSelectable:e.elementsSelectable,connectionMode:e.connectionMode,onError:e.onError});function ca({defaultMarkerColor:e,onlyRenderVisibleElements:t,rfId:n,edgeTypes:r,noPanClassName:o,onReconnect:s,onEdgeContextMenu:i,onEdgeMouseEnter:a,onEdgeMouseMove:l,onEdgeMouseLeave:c,onEdgeClick:d,reconnectRadius:u,onEdgeDoubleClick:f,onReconnectStart:h,onReconnectEnd:g,disableKeyboardA11y:w}){const{edgesFocusable:x,edgesReconnectable:y,elementsSelectable:E,onError:m}=ie(Jg,le),v=Lg(t);return p.jsxs("div",{className:"react-flow__edges",children:[p.jsx(Fg,{defaultColor:e,rfId:n}),v.map(M=>p.jsx(Qg,{id:M,edgesFocusable:x,edgesReconnectable:y,elementsSelectable:E,noPanClassName:o,onReconnect:s,onContextMenu:i,onMouseEnter:a,onMouseMove:l,onMouseLeave:c,onClick:d,reconnectRadius:u,onDoubleClick:f,onReconnectStart:h,onReconnectEnd:g,rfId:n,onError:m,edgeTypes:r,disableKeyboardA11y:w},M))]})}ca.displayName="EdgeRenderer";const ep=b.memo(ca),tp=e=>`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`;function np({children:e}){const t=ie(tp);return p.jsx("div",{className:"react-flow__viewport xyflow__viewport react-flow__container",style:{transform:t},children:e})}function rp(e){const t=Jn(),n=b.useRef(!1);b.useEffect(()=>{!n.current&&t.viewportInitialized&&e&&(setTimeout(()=>e(t),1),n.current=!0)},[e,t.viewportInitialized])}const op=e=>{var t;return(t=e.panZoom)==null?void 0:t.syncViewport};function sp(e){const t=ie(op),n=ue();return b.useEffect(()=>{e&&(t==null||t(e),n.setState({transform:[e.x,e.y,e.zoom]}))},[e,t]),null}function ip(e){return e.connection.inProgress?{...e.connection,to:$t(e.connection.to,e.transform)}:{...e.connection}}function ap(e){return ip}function cp(e){const t=ap();return ie(t,le)}const lp=e=>({nodesConnectable:e.nodesConnectable,isValid:e.connection.isValid,inProgress:e.connection.inProgress,width:e.width,height:e.height});function up({containerStyle:e,style:t,type:n,component:r}){const{nodesConnectable:o,width:s,height:i,isValid:a,inProgress:l}=ie(lp,le);return!(s&&o&&l)?null:p.jsx("svg",{style:e,width:s,height:i,className:"react-flow__connectionline react-flow__container",children:p.jsx("g",{className:he(["react-flow__connection",si(a)]),children:p.jsx(la,{style:t,type:n,CustomComponent:r,isValid:a})})})}const la=({style:e,type:t=qe.Bezier,CustomComponent:n,isValid:r})=>{const{inProgress:o,from:s,fromNode:i,fromHandle:a,fromPosition:l,to:c,toNode:d,toHandle:u,toPosition:f,pointer:h}=cp();if(!o)return;if(n)return p.jsx(n,{connectionLineType:t,connectionLineStyle:e,fromNode:i,fromHandle:a,fromX:s.x,fromY:s.y,toX:c.x,toY:c.y,fromPosition:l,toPosition:f,connectionStatus:si(r),toNode:d,toHandle:u,pointer:h});let g="";const w={sourceX:s.x,sourceY:s.y,sourcePosition:l,targetX:c.x,targetY:c.y,targetPosition:f};switch(t){case qe.Bezier:[g]=yi(w);break;case qe.SimpleBezier:[g]=Ui(w);break;case qe.Step:[g]=Dr({...w,borderRadius:0});break;case qe.SmoothStep:[g]=Dr(w);break;default:[g]=wi(w)}return p.jsx("path",{d:g,fill:"none",className:"react-flow__connection-path",style:e})};la.displayName="ConnectionLine";const dp={};function fs(e=dp){b.useRef(e),ue(),b.useEffect(()=>{},[e])}function fp(){ue(),b.useRef(!1),b.useEffect(()=>{},[])}function ua({nodeTypes:e,edgeTypes:t,onInit:n,onNodeClick:r,onEdgeClick:o,onNodeDoubleClick:s,onEdgeDoubleClick:i,onNodeMouseEnter:a,onNodeMouseMove:l,onNodeMouseLeave:c,onNodeContextMenu:d,onSelectionContextMenu:u,onSelectionStart:f,onSelectionEnd:h,connectionLineType:g,connectionLineStyle:w,connectionLineComponent:x,connectionLineContainerStyle:y,selectionKeyCode:E,selectionOnDrag:m,selectionMode:v,multiSelectionKeyCode:M,panActivationKeyCode:S,zoomActivationKeyCode:j,deleteKeyCode:T,onlyRenderVisibleElements:P,elementsSelectable:O,defaultViewport:C,translateExtent:N,minZoom:z,maxZoom:_,preventScrolling:A,defaultMarkerColor:k,zoomOnScroll:I,zoomOnPinch:R,panOnScroll:$,panOnScrollSpeed:B,panOnScrollMode:F,zoomOnDoubleClick:H,panOnDrag:X,autoPanOnSelection:q,onPaneClick:te,onPaneMouseEnter:re,onPaneMouseMove:Q,onPaneMouseLeave:V,onPaneScroll:W,onPaneContextMenu:ne,paneClickDistance:ee,nodeClickDistance:Z,onEdgeContextMenu:Y,onEdgeMouseEnter:oe,onEdgeMouseMove:K,onEdgeMouseLeave:ae,reconnectRadius:ce,onReconnect:me,onReconnectStart:ge,onReconnectEnd:we,noDragClassName:Me,noWheelClassName:Xe,noPanClassName:xe,disableKeyboardA11y:ve,nodeExtent:be,rfId:Ce,viewport:Ae,onViewportChange:$e}){return fs(e),fs(t),fp(),rp(n),sp(Ae),p.jsx(Mg,{onPaneClick:te,onPaneMouseEnter:re,onPaneMouseMove:Q,onPaneMouseLeave:V,onPaneContextMenu:ne,onPaneScroll:W,paneClickDistance:ee,deleteKeyCode:T,selectionKeyCode:E,selectionOnDrag:m,selectionMode:v,onSelectionStart:f,onSelectionEnd:h,multiSelectionKeyCode:M,panActivationKeyCode:S,zoomActivationKeyCode:j,elementsSelectable:O,zoomOnScroll:I,zoomOnPinch:R,zoomOnDoubleClick:H,panOnScroll:$,panOnScrollSpeed:B,panOnScrollMode:F,panOnDrag:X,autoPanOnSelection:q,defaultViewport:C,translateExtent:N,minZoom:z,maxZoom:_,onSelectionContextMenu:u,preventScrolling:A,noDragClassName:Me,noWheelClassName:Xe,noPanClassName:xe,disableKeyboardA11y:ve,onViewportChange:$e,isControlledViewport:!!Ae,children:p.jsxs(np,{children:[p.jsx(ep,{edgeTypes:t,onEdgeClick:o,onEdgeDoubleClick:i,onReconnect:me,onReconnectStart:ge,onReconnectEnd:we,onlyRenderVisibleElements:P,onEdgeContextMenu:Y,onEdgeMouseEnter:oe,onEdgeMouseMove:K,onEdgeMouseLeave:ae,reconnectRadius:ce,defaultMarkerColor:k,noPanClassName:xe,disableKeyboardA11y:ve,rfId:Ce}),p.jsx(up,{style:w,type:g,component:x,containerStyle:y}),p.jsx("div",{className:"react-flow__edgelabel-renderer"}),p.jsx(Rg,{nodeTypes:e,onNodeClick:r,onNodeDoubleClick:s,onNodeMouseEnter:a,onNodeMouseMove:l,onNodeMouseLeave:c,onNodeContextMenu:d,nodeClickDistance:Z,onlyRenderVisibleElements:P,noPanClassName:xe,noDragClassName:Me,disableKeyboardA11y:ve,nodeExtent:be,rfId:Ce}),p.jsx("div",{className:"react-flow__viewport-portal"})]})})}ua.displayName="GraphView";const hp=b.memo(ua),gp=ui(),hs=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:o,height:s,fitView:i,fitViewOptions:a,minZoom:l=.5,maxZoom:c=2,nodeOrigin:d,nodeExtent:u,zIndexMode:f="basic"}={})=>{const h=new Map,g=new Map,w=new Map,x=new Map,y=r??t??[],E=n??e??[],m=d??[0,0],v=u??Kt;_i(w,x,y);const{nodesInitialized:M}=Rr(E,h,g,{nodeOrigin:m,nodeExtent:v,zIndexMode:f});let S=[0,0,1];if(i&&o&&s){const j=nn(h,{filter:C=>!!((C.width||C.initialWidth)&&(C.height||C.initialHeight))}),{x:T,y:P,zoom:O}=Ur(j,o,s,l,c,(a==null?void 0:a.padding)??.1);S=[T,P,O]}return{rfId:"1",width:o??0,height:s??0,transform:S,nodes:E,nodesInitialized:M,nodeLookup:h,parentLookup:g,edges:y,edgeLookup:x,connectionLookup:w,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:n!==void 0,hasDefaultEdges:r!==void 0,panZoom:null,minZoom:l,maxZoom:c,translateExtent:Kt,nodeExtent:v,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:Et.Strict,domNode:null,paneDragging:!1,noPanClassName:"nopan",nodeOrigin:m,nodeDragThreshold:1,connectionDragThreshold:1,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesReconnectable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,elevateEdgesOnSelect:!0,selectNodesOnDrag:!0,multiSelectionActive:!1,fitViewQueued:i??!1,fitViewOptions:a,fitViewResolver:null,connection:{...oi},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:gp,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:"react",debug:!1,ariaLabelConfig:ri,zIndexMode:f,onNodesChangeMiddlewareMap:new Map,onEdgesChangeMiddlewareMap:new Map}},pp=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:o,height:s,fitView:i,fitViewOptions:a,minZoom:l,maxZoom:c,nodeOrigin:d,nodeExtent:u,zIndexMode:f})=>Ch((h,g)=>{async function w(){const{nodeLookup:x,panZoom:y,fitViewOptions:E,fitViewResolver:m,width:v,height:M,minZoom:S,maxZoom:j}=g();y&&(await uf({nodes:x,width:v,height:M,panZoom:y,minZoom:S,maxZoom:j},E),m==null||m.resolve(!0),h({fitViewResolver:null}))}return{...hs({nodes:e,edges:t,width:o,height:s,fitView:i,fitViewOptions:a,minZoom:l,maxZoom:c,nodeOrigin:d,nodeExtent:u,defaultNodes:n,defaultEdges:r,zIndexMode:f}),setNodes:x=>{const{nodeLookup:y,parentLookup:E,nodeOrigin:m,elevateNodesOnSelect:v,fitViewQueued:M,zIndexMode:S,nodesSelectionActive:j}=g(),{nodesInitialized:T,hasSelectedNodes:P}=Rr(x,y,E,{nodeOrigin:m,nodeExtent:u,elevateNodesOnSelect:v,checkEquality:!0,zIndexMode:S}),O=j&&P;M&&T?(w(),h({nodes:x,nodesInitialized:T,fitViewQueued:!1,fitViewOptions:void 0,nodesSelectionActive:O})):h({nodes:x,nodesInitialized:T,nodesSelectionActive:O})},setEdges:x=>{const{connectionLookup:y,edgeLookup:E}=g();_i(y,E,x),h({edges:x})},setDefaultNodesAndEdges:(x,y)=>{if(x){const{setNodes:E}=g();E(x),h({hasDefaultNodes:!0})}if(y){const{setEdges:E}=g();E(y),h({hasDefaultEdges:!0})}},updateNodeInternals:x=>{const{triggerNodeChanges:y,nodeLookup:E,parentLookup:m,domNode:v,nodeOrigin:M,nodeExtent:S,debug:j,fitViewQueued:T,zIndexMode:P}=g(),{changes:O,updatedInternals:C}=Pf(x,E,m,v,M,S,P);C&&(Af(E,m,{nodeOrigin:M,nodeExtent:S,zIndexMode:P}),T?(w(),h({fitViewQueued:!1,fitViewOptions:void 0})):h({}),(O==null?void 0:O.length)>0&&(j&&console.log("React Flow: trigger node changes",O),y==null||y(O)))},updateNodePositions:(x,y=!1)=>{const E=[];let m=[];const{nodeLookup:v,triggerNodeChanges:M,connection:S,updateConnection:j,onNodesChangeMiddlewareMap:T}=g();for(const[P,O]of x){const C=v.get(P),N=!!(C!=null&&C.expandParent&&(C!=null&&C.parentId)&&(O!=null&&O.position)),z={id:P,type:"position",position:N?{x:Math.max(0,O.position.x),y:Math.max(0,O.position.y)}:O.position,dragging:y};if(C&&S.inProgress&&S.fromNode.id===C.id){const _=ut(C,S.fromHandle,J.Left,!0);j({...S,from:_})}N&&C.parentId&&E.push({id:P,parentId:C.parentId,rect:{...O.internals.positionAbsolute,width:O.measured.width??0,height:O.measured.height??0}}),m.push(z)}if(E.length>0){const{parentLookup:P,nodeOrigin:O}=g(),C=no(E,v,P,O);m.push(...C)}for(const P of T.values())m=P(m);M(m)},triggerNodeChanges:x=>{const{onNodesChange:y,setNodes:E,nodes:m,hasDefaultNodes:v,debug:M}=g();if(x!=null&&x.length){if(v){const S=qh(x,m);E(S)}M&&console.log("React Flow: trigger node changes",x),y==null||y(x)}},triggerEdgeChanges:x=>{const{onEdgesChange:y,setEdges:E,edges:m,hasDefaultEdges:v,debug:M}=g();if(x!=null&&x.length){if(v){const S=Uh(x,m);E(S)}M&&console.log("React Flow: trigger edge changes",x),y==null||y(x)}},addSelectedNodes:x=>{const{multiSelectionActive:y,edgeLookup:E,nodeLookup:m,triggerNodeChanges:v,triggerEdgeChanges:M}=g();if(y){const S=x.map(j=>tt(j,!0));v(S);return}v(xt(m,new Set([...x]),!0)),M(xt(E))},addSelectedEdges:x=>{const{multiSelectionActive:y,edgeLookup:E,nodeLookup:m,triggerNodeChanges:v,triggerEdgeChanges:M}=g();if(y){const S=x.map(j=>tt(j,!0));M(S);return}M(xt(E,new Set([...x]))),v(xt(m,new Set,!0))},unselectNodesAndEdges:({nodes:x,edges:y}={})=>{const{edges:E,nodes:m,nodeLookup:v,triggerNodeChanges:M,triggerEdgeChanges:S}=g(),j=x||m,T=y||E,P=[];for(const C of j){if(!C.selected)continue;const N=v.get(C.id);N&&(N.selected=!1),P.push(tt(C.id,!1))}const O=[];for(const C of T)C.selected&&O.push(tt(C.id,!1));M(P),S(O)},setMinZoom:x=>{const{panZoom:y,maxZoom:E}=g();y==null||y.setScaleExtent([x,E]),h({minZoom:x})},setMaxZoom:x=>{const{panZoom:y,minZoom:E}=g();y==null||y.setScaleExtent([E,x]),h({maxZoom:x})},setTranslateExtent:x=>{var y;(y=g().panZoom)==null||y.setTranslateExtent(x),h({translateExtent:x})},resetSelectedElements:()=>{const{edges:x,nodes:y,triggerNodeChanges:E,triggerEdgeChanges:m,elementsSelectable:v}=g();if(!v)return;const M=y.reduce((j,T)=>T.selected?[...j,tt(T.id,!1)]:j,[]),S=x.reduce((j,T)=>T.selected?[...j,tt(T.id,!1)]:j,[]);E(M),m(S)},setNodeExtent:x=>{const{nodes:y,nodeLookup:E,parentLookup:m,nodeOrigin:v,elevateNodesOnSelect:M,nodeExtent:S,zIndexMode:j}=g();x[0][0]===S[0][0]&&x[0][1]===S[0][1]&&x[1][0]===S[1][0]&&x[1][1]===S[1][1]||(Rr(y,E,m,{nodeOrigin:v,nodeExtent:x,elevateNodesOnSelect:M,checkEquality:!1,zIndexMode:j}),h({nodeExtent:x}))},panBy:x=>{const{transform:y,width:E,height:m,panZoom:v,translateExtent:M}=g();return Df({delta:x,panZoom:v,transform:y,translateExtent:M,width:E,height:m})},setCenter:async(x,y,E)=>{const{width:m,height:v,maxZoom:M,panZoom:S}=g();if(!S)return!1;const j=typeof(E==null?void 0:E.zoom)<"u"?E.zoom:M;return await S.setViewport({x:m/2-x*j,y:v/2-y*j,zoom:j},{duration:E==null?void 0:E.duration,ease:E==null?void 0:E.ease,interpolate:E==null?void 0:E.interpolate}),!0},cancelConnection:()=>{h({connection:{...oi}})},updateConnection:x=>{h({connection:x})},reset:()=>h({...hs()})}},Object.is);function da({initialNodes:e,initialEdges:t,defaultNodes:n,defaultEdges:r,initialWidth:o,initialHeight:s,initialMinZoom:i,initialMaxZoom:a,initialFitViewOptions:l,fitView:c,nodeOrigin:d,nodeExtent:u,zIndexMode:f,children:h}){const[g]=b.useState(()=>pp({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:o,height:s,fitView:c,minZoom:i,maxZoom:a,fitViewOptions:l,nodeOrigin:d,nodeExtent:u,zIndexMode:f}));return p.jsx(Ah,{value:g,children:p.jsx(ng,{children:h})})}function mp({children:e,nodes:t,edges:n,defaultNodes:r,defaultEdges:o,width:s,height:i,fitView:a,fitViewOptions:l,minZoom:c,maxZoom:d,nodeOrigin:u,nodeExtent:f,zIndexMode:h}){return b.useContext(Zn)?p.jsx(p.Fragment,{children:e}):p.jsx(da,{initialNodes:t,initialEdges:n,defaultNodes:r,defaultEdges:o,initialWidth:s,initialHeight:i,fitView:a,initialFitViewOptions:l,initialMinZoom:c,initialMaxZoom:d,nodeOrigin:u,nodeExtent:f,zIndexMode:h,children:e})}const yp={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0};function xp({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,className:o,nodeTypes:s,edgeTypes:i,onNodeClick:a,onEdgeClick:l,onInit:c,onMove:d,onMoveStart:u,onMoveEnd:f,onConnect:h,onConnectStart:g,onConnectEnd:w,onClickConnectStart:x,onClickConnectEnd:y,onNodeMouseEnter:E,onNodeMouseMove:m,onNodeMouseLeave:v,onNodeContextMenu:M,onNodeDoubleClick:S,onNodeDragStart:j,onNodeDrag:T,onNodeDragStop:P,onNodesDelete:O,onEdgesDelete:C,onDelete:N,onSelectionChange:z,onSelectionDragStart:_,onSelectionDrag:A,onSelectionDragStop:k,onSelectionContextMenu:I,onSelectionStart:R,onSelectionEnd:$,onBeforeDelete:B,connectionMode:F,connectionLineType:H=qe.Bezier,connectionLineStyle:X,connectionLineComponent:q,connectionLineContainerStyle:te,deleteKeyCode:re="Backspace",selectionKeyCode:Q="Shift",selectionOnDrag:V=!1,selectionMode:W=Gt.Full,panActivationKeyCode:ne="Space",multiSelectionKeyCode:ee=Zt()?"Meta":"Control",zoomActivationKeyCode:Z=Zt()?"Meta":"Control",snapToGrid:Y,snapGrid:oe,onlyRenderVisibleElements:K=!1,selectNodesOnDrag:ae,nodesDraggable:ce,autoPanOnNodeFocus:me,nodesConnectable:ge,nodesFocusable:we,nodeOrigin:Me=Hi,edgesFocusable:Xe,edgesReconnectable:xe,elementsSelectable:ve=!0,defaultViewport:be=Fh,minZoom:Ce=.5,maxZoom:Ae=2,translateExtent:$e=Kt,preventScrolling:It=!0,nodeExtent:Qe,defaultMarkerColor:jt="#b1b1b7",zoomOnScroll:dt=!0,zoomOnPinch:Pt=!0,panOnScroll:Dt=!1,panOnScrollSpeed:nr=.5,panOnScrollMode:rr=ot.Free,zoomOnDoubleClick:on=!0,panOnDrag:ze=!0,onPaneClick:sn,onPaneMouseEnter:Je,onPaneMouseMove:an,onPaneMouseLeave:cn,onPaneScroll:et,onPaneContextMenu:ft,paneClickDistance:ht=1,nodeClickDistance:ln=0,children:or,onReconnect:sr,onReconnectStart:ir,onReconnectEnd:un,onEdgeContextMenu:L,onEdgeDoubleClick:G,onEdgeMouseEnter:U,onEdgeMouseMove:se,onEdgeMouseLeave:de,reconnectRadius:D=10,onNodesChange:ye,onEdgesChange:pe,noDragClassName:gt="nodrag",noWheelClassName:dn="nowheel",noPanClassName:_e="nopan",fitView:Ne,fitViewOptions:fn,connectOnClick:ba,attributionPosition:_a,proOptions:Ea,defaultEdgeOptions:Na,elevateNodesOnSelect:Sa=!0,elevateEdgesOnSelect:ka=!1,disableKeyboardA11y:so=!1,autoPanOnConnect:Ma,autoPanOnNodeDrag:Ca,autoPanOnSelection:Aa=!0,autoPanSpeed:$a,connectionRadius:Ia,isValidConnection:ja,onError:Pa,style:Da,id:io,nodeDragThreshold:Ta,connectionDragThreshold:Ra,viewport:La,onViewportChange:za,width:Ha,height:Va,colorMode:Ba="light",debug:Fa,onScroll:hn,ariaLabelConfig:Oa,zIndexMode:ao="basic",...Wa},Ya){const ar=io||"1",Xa=Xh(Ba),Ka=b.useCallback(co=>{co.currentTarget.scrollTo({top:0,left:0,behavior:"instant"}),hn==null||hn(co)},[hn]);return p.jsx("div",{"data-testid":"rf__wrapper",...Wa,onScroll:Ka,style:{...Da,...yp},ref:Ya,className:he(["react-flow",o,Xa]),id:io,role:"application",children:p.jsxs(mp,{nodes:e,edges:t,width:Ha,height:Va,fitView:Ne,fitViewOptions:fn,minZoom:Ce,maxZoom:Ae,nodeOrigin:Me,nodeExtent:Qe,zIndexMode:ao,children:[p.jsx(Yh,{nodes:e,edges:t,defaultNodes:n,defaultEdges:r,onConnect:h,onConnectStart:g,onConnectEnd:w,onClickConnectStart:x,onClickConnectEnd:y,nodesDraggable:ce,autoPanOnNodeFocus:me,nodesConnectable:ge,nodesFocusable:we,edgesFocusable:Xe,edgesReconnectable:xe,elementsSelectable:ve,elevateNodesOnSelect:Sa,elevateEdgesOnSelect:ka,minZoom:Ce,maxZoom:Ae,nodeExtent:Qe,onNodesChange:ye,onEdgesChange:pe,snapToGrid:Y,snapGrid:oe,connectionMode:F,translateExtent:$e,connectOnClick:ba,defaultEdgeOptions:Na,fitView:Ne,fitViewOptions:fn,onNodesDelete:O,onEdgesDelete:C,onDelete:N,onNodeDragStart:j,onNodeDrag:T,onNodeDragStop:P,onSelectionDrag:A,onSelectionDragStart:_,onSelectionDragStop:k,onMove:d,onMoveStart:u,onMoveEnd:f,noPanClassName:_e,nodeOrigin:Me,rfId:ar,autoPanOnConnect:Ma,autoPanOnNodeDrag:Ca,autoPanSpeed:$a,onError:Pa,connectionRadius:Ia,isValidConnection:ja,selectNodesOnDrag:ae,nodeDragThreshold:Ta,connectionDragThreshold:Ra,onBeforeDelete:B,debug:Fa,ariaLabelConfig:Oa,zIndexMode:ao}),p.jsx(hp,{onInit:c,onNodeClick:a,onEdgeClick:l,onNodeMouseEnter:E,onNodeMouseMove:m,onNodeMouseLeave:v,onNodeContextMenu:M,onNodeDoubleClick:S,nodeTypes:s,edgeTypes:i,connectionLineType:H,connectionLineStyle:X,connectionLineComponent:q,connectionLineContainerStyle:te,selectionKeyCode:Q,selectionOnDrag:V,selectionMode:W,deleteKeyCode:re,multiSelectionKeyCode:ee,panActivationKeyCode:ne,zoomActivationKeyCode:Z,onlyRenderVisibleElements:K,defaultViewport:be,translateExtent:$e,minZoom:Ce,maxZoom:Ae,preventScrolling:It,zoomOnScroll:dt,zoomOnPinch:Pt,zoomOnDoubleClick:on,panOnScroll:Dt,panOnScrollSpeed:nr,panOnScrollMode:rr,panOnDrag:ze,autoPanOnSelection:Aa,onPaneClick:sn,onPaneMouseEnter:Je,onPaneMouseMove:an,onPaneMouseLeave:cn,onPaneScroll:et,onPaneContextMenu:ft,paneClickDistance:ht,nodeClickDistance:ln,onSelectionContextMenu:I,onSelectionStart:R,onSelectionEnd:$,onReconnect:sr,onReconnectStart:ir,onReconnectEnd:un,onEdgeContextMenu:L,onEdgeDoubleClick:G,onEdgeMouseEnter:U,onEdgeMouseMove:se,onEdgeMouseLeave:de,reconnectRadius:D,defaultMarkerColor:jt,noDragClassName:gt,noWheelClassName:dn,noPanClassName:_e,rfId:ar,disableKeyboardA11y:so,nodeExtent:Qe,viewport:La,onViewportChange:za}),p.jsx(Bh,{onSelectionChange:z}),or,p.jsx(Rh,{proOptions:Ea,position:_a}),p.jsx(Th,{rfId:ar,disableKeyboardA11y:so})]})})}var wp=Bi(xp);function vp({dimensions:e,lineWidth:t,variant:n,className:r}){return p.jsx("path",{strokeWidth:t,d:`M${e[0]/2} 0 V${e[1]} M0 ${e[1]/2} H${e[0]}`,className:he(["react-flow__background-pattern",n,r])})}function bp({radius:e,className:t}){return p.jsx("circle",{cx:e,cy:e,r:e,className:he(["react-flow__background-pattern","dots",t])})}var Ue;(function(e){e.Lines="lines",e.Dots="dots",e.Cross="cross"})(Ue||(Ue={}));const _p={[Ue.Dots]:1,[Ue.Lines]:1,[Ue.Cross]:6},Ep=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function fa({id:e,variant:t=Ue.Dots,gap:n=20,size:r,lineWidth:o=1,offset:s=0,color:i,bgColor:a,style:l,className:c,patternClassName:d}){const u=b.useRef(null),{transform:f,patternId:h}=ie(Ep,le),g=r||_p[t],w=t===Ue.Dots,x=t===Ue.Cross,y=Array.isArray(n)?n:[n,n],E=[y[0]*f[2]||1,y[1]*f[2]||1],m=g*f[2],v=Array.isArray(s)?s:[s,s],M=x?[m,m]:E,S=[v[0]*f[2]||1+M[0]/2,v[1]*f[2]||1+M[1]/2],j=`${h}${e||""}`;return p.jsxs("svg",{className:he(["react-flow__background",c]),style:{...l,...er,"--xy-background-color-props":a,"--xy-background-pattern-color-props":i},ref:u,"data-testid":"rf__background",children:[p.jsx("pattern",{id:j,x:f[0]%E[0],y:f[1]%E[1],width:E[0],height:E[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${S[0]},-${S[1]})`,children:w?p.jsx(bp,{radius:m/2,className:d}):p.jsx(vp,{dimensions:M,lineWidth:o,variant:t,className:d})}),p.jsx("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${j})`})]})}fa.displayName="Background";b.memo(fa);function Np(){return p.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",children:p.jsx("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"})})}function Sp(){return p.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5",children:p.jsx("path",{d:"M0 0h32v4.2H0z"})})}function kp(){return p.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30",children:p.jsx("path",{d:"M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0027.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94c-.531 0-.939-.4-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z"})})}function Mp(){return p.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:p.jsx("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z"})})}function Cp(){return p.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:p.jsx("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047z"})})}function _n({children:e,className:t,...n}){return p.jsx("button",{type:"button",className:he(["react-flow__controls-button",t]),...n,children:e})}const Ap=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom,ariaLabelConfig:e.ariaLabelConfig});function ha({style:e,showZoom:t=!0,showFitView:n=!0,showInteractive:r=!0,fitViewOptions:o,onZoomIn:s,onZoomOut:i,onFitView:a,onInteractiveChange:l,className:c,children:d,position:u="bottom-left",orientation:f="vertical","aria-label":h}){const g=ue(),{isInteractive:w,minZoomReached:x,maxZoomReached:y,ariaLabelConfig:E}=ie(Ap,le),{zoomIn:m,zoomOut:v,fitView:M}=Jn(),S=()=>{m(),s==null||s()},j=()=>{v(),i==null||i()},T=()=>{M(o),a==null||a()},P=()=>{g.setState({nodesDraggable:!w,nodesConnectable:!w,elementsSelectable:!w}),l==null||l(!w)},O=f==="horizontal"?"horizontal":"vertical";return p.jsxs(Qn,{className:he(["react-flow__controls",O,c]),position:u,style:e,"data-testid":"rf__controls","aria-label":h??E["controls.ariaLabel"],children:[t&&p.jsxs(p.Fragment,{children:[p.jsx(_n,{onClick:S,className:"react-flow__controls-zoomin",title:E["controls.zoomIn.ariaLabel"],"aria-label":E["controls.zoomIn.ariaLabel"],disabled:y,children:p.jsx(Np,{})}),p.jsx(_n,{onClick:j,className:"react-flow__controls-zoomout",title:E["controls.zoomOut.ariaLabel"],"aria-label":E["controls.zoomOut.ariaLabel"],disabled:x,children:p.jsx(Sp,{})})]}),n&&p.jsx(_n,{className:"react-flow__controls-fitview",onClick:T,title:E["controls.fitView.ariaLabel"],"aria-label":E["controls.fitView.ariaLabel"],children:p.jsx(kp,{})}),r&&p.jsx(_n,{className:"react-flow__controls-interactive",onClick:P,title:E["controls.interactive.ariaLabel"],"aria-label":E["controls.interactive.ariaLabel"],children:w?p.jsx(Cp,{}):p.jsx(Mp,{})}),d]})}ha.displayName="Controls";b.memo(ha);function $p({id:e,x:t,y:n,width:r,height:o,style:s,color:i,strokeColor:a,strokeWidth:l,className:c,borderRadius:d,shapeRendering:u,selected:f,onClick:h}){const{background:g,backgroundColor:w}=s||{},x=i||g||w;return p.jsx("rect",{className:he(["react-flow__minimap-node",{selected:f},c]),x:t,y:n,rx:d,ry:d,width:r,height:o,style:{fill:x,stroke:a,strokeWidth:l},shapeRendering:u,onClick:h?y=>h(y,e):void 0})}const Ip=b.memo($p),jp=e=>e.nodes.map(t=>t.id),yr=e=>e instanceof Function?e:()=>e;function Pp({nodeStrokeColor:e,nodeColor:t,nodeClassName:n="",nodeBorderRadius:r=5,nodeStrokeWidth:o,nodeComponent:s=Ip,onClick:i}){const a=ie(jp,le),l=yr(t),c=yr(e),d=yr(n),u=typeof window>"u"||window.chrome?"crispEdges":"geometricPrecision";return p.jsx(p.Fragment,{children:a.map(f=>p.jsx(Tp,{id:f,nodeColorFunc:l,nodeStrokeColorFunc:c,nodeClassNameFunc:d,nodeBorderRadius:r,nodeStrokeWidth:o,NodeComponent:s,onClick:i,shapeRendering:u},f))})}function Dp({id:e,nodeColorFunc:t,nodeStrokeColorFunc:n,nodeClassNameFunc:r,nodeBorderRadius:o,nodeStrokeWidth:s,shapeRendering:i,NodeComponent:a,onClick:l}){const{node:c,x:d,y:u,width:f,height:h}=ie(g=>{const w=g.nodeLookup.get(e);if(!w)return{node:void 0,x:0,y:0,width:0,height:0};const x=w.internals.userNode,{x:y,y:E}=w.internals.positionAbsolute,{width:m,height:v}=Ye(x);return{node:x,x:y,y:E,width:m,height:v}},le);return!c||c.hidden||!di(c)?null:p.jsx(a,{x:d,y:u,width:f,height:h,style:c.style,selected:!!c.selected,className:r(c),color:t(c),borderRadius:o,strokeColor:n(c),strokeWidth:s,shapeRendering:i,onClick:l,id:c.id})}const Tp=b.memo(Dp);var Rp=b.memo(Pp);const Lp=200,zp=150,Hp=e=>!e.hidden,Vp=e=>{const t={x:-e.transform[0]/e.transform[2],y:-e.transform[1]/e.transform[2],width:e.width/e.transform[2],height:e.height/e.transform[2]};return{viewBB:t,boundingRect:e.nodeLookup.size>0?li(nn(e.nodeLookup,{filter:Hp}),t):t,rfId:e.rfId,panZoom:e.panZoom,translateExtent:e.translateExtent,flowWidth:e.width,flowHeight:e.height,ariaLabelConfig:e.ariaLabelConfig}},Bp="react-flow__minimap-desc";function ga({style:e,className:t,nodeStrokeColor:n,nodeColor:r,nodeClassName:o="",nodeBorderRadius:s=5,nodeStrokeWidth:i,nodeComponent:a,bgColor:l,maskColor:c,maskStrokeColor:d,maskStrokeWidth:u,position:f="bottom-right",onClick:h,onNodeClick:g,pannable:w=!1,zoomable:x=!1,ariaLabel:y,inversePan:E,zoomStep:m=1,offsetScale:v=5}){const M=ue(),S=b.useRef(null),{boundingRect:j,viewBB:T,rfId:P,panZoom:O,translateExtent:C,flowWidth:N,flowHeight:z,ariaLabelConfig:_}=ie(Vp,le),A=(e==null?void 0:e.width)??Lp,k=(e==null?void 0:e.height)??zp,I=j.width/A,R=j.height/k,$=Math.max(I,R),B=$*A,F=$*k,H=v*$,X=j.x-(B-j.width)/2-H,q=j.y-(F-j.height)/2-H,te=B+H*2,re=F+H*2,Q=`${Bp}-${P}`,V=b.useRef(0),W=b.useRef();V.current=$,b.useEffect(()=>{if(S.current&&O)return W.current=Of({domNode:S.current,panZoom:O,getTransform:()=>M.getState().transform,getViewScale:()=>V.current}),()=>{var Y;(Y=W.current)==null||Y.destroy()}},[O]),b.useEffect(()=>{var Y;(Y=W.current)==null||Y.update({translateExtent:C,width:N,height:z,inversePan:E,pannable:w,zoomStep:m,zoomable:x})},[w,x,E,m,C,N,z]);const ne=h?Y=>{var ae;const[oe,K]=((ae=W.current)==null?void 0:ae.pointer(Y))||[0,0];h(Y,{x:oe,y:K})}:void 0,ee=g?b.useCallback((Y,oe)=>{const K=M.getState().nodeLookup.get(oe).internals.userNode;g(Y,K)},[]):void 0,Z=y??_["minimap.ariaLabel"];return p.jsx(Qn,{position:f,style:{...e,"--xy-minimap-background-color-props":typeof l=="string"?l:void 0,"--xy-minimap-mask-background-color-props":typeof c=="string"?c:void 0,"--xy-minimap-mask-stroke-color-props":typeof d=="string"?d:void 0,"--xy-minimap-mask-stroke-width-props":typeof u=="number"?u*$:void 0,"--xy-minimap-node-background-color-props":typeof r=="string"?r:void 0,"--xy-minimap-node-stroke-color-props":typeof n=="string"?n:void 0,"--xy-minimap-node-stroke-width-props":typeof i=="number"?i:void 0},className:he(["react-flow__minimap",t]),"data-testid":"rf__minimap",children:p.jsxs("svg",{width:A,height:k,viewBox:`${X} ${q} ${te} ${re}`,className:"react-flow__minimap-svg",role:"img","aria-labelledby":Q,ref:S,onClick:ne,children:[Z&&p.jsx("title",{id:Q,children:Z}),p.jsx(Rp,{onClick:ee,nodeColor:r,nodeStrokeColor:n,nodeBorderRadius:s,nodeClassName:o,nodeStrokeWidth:i,nodeComponent:a}),p.jsx("path",{className:"react-flow__minimap-mask",d:`M${X-H},${q-H}h${te+H*2}v${re+H*2}h${-te-H*2}z
24
- M${T.x},${T.y}h${T.width}v${T.height}h${-T.width}z`,fillRule:"evenodd",pointerEvents:"none"})]})})}ga.displayName="MiniMap";b.memo(ga);const Fp=e=>t=>e?`${Math.max(1/t.transform[2],1)}`:void 0,Op={[Mt.Line]:"right",[Mt.Handle]:"bottom-right"};function Wp({nodeId:e,position:t,variant:n=Mt.Handle,className:r,style:o=void 0,children:s,color:i,minWidth:a=10,minHeight:l=10,maxWidth:c=Number.MAX_VALUE,maxHeight:d=Number.MAX_VALUE,keepAspectRatio:u=!1,resizeDirection:f,autoScale:h=!0,shouldResize:g,onResizeStart:w,onResize:x,onResizeEnd:y}){const E=Yi(),m=typeof e=="string"?e:E,v=ue(),M=b.useRef(null),S=n===Mt.Handle,j=ie(b.useCallback(Fp(S&&h),[S,h]),le),T=b.useRef(null),P=t??Op[n];b.useEffect(()=>{if(!(!M.current||!m))return T.current||(T.current=nh({domNode:M.current,nodeId:m,getStoreItems:()=>{const{nodeLookup:C,transform:N,snapGrid:z,snapToGrid:_,nodeOrigin:A,domNode:k}=v.getState();return{nodeLookup:C,transform:N,snapGrid:z,snapToGrid:_,nodeOrigin:A,paneDomNode:k}},onChange:(C,N)=>{const{triggerNodeChanges:z,nodeLookup:_,parentLookup:A,nodeOrigin:k}=v.getState(),I=[],R={x:C.x,y:C.y},$=_.get(m);if($&&$.expandParent&&$.parentId){const B=$.origin??k,F=C.width??$.measured.width??0,H=C.height??$.measured.height??0,X={id:$.id,parentId:$.parentId,rect:{width:F,height:H,...fi({x:C.x??$.position.x,y:C.y??$.position.y},{width:F,height:H},$.parentId,_,B)}},q=no([X],_,A,k);I.push(...q),R.x=C.x?Math.max(B[0]*F,C.x):void 0,R.y=C.y?Math.max(B[1]*H,C.y):void 0}if(R.x!==void 0&&R.y!==void 0){const B={id:m,type:"position",position:{...R}};I.push(B)}if(C.width!==void 0&&C.height!==void 0){const F={id:m,type:"dimensions",resizing:!0,setAttributes:f?f==="horizontal"?"width":"height":!0,dimensions:{width:C.width,height:C.height}};I.push(F)}for(const B of N){const F={...B,type:"position"};I.push(F)}z(I)},onEnd:({width:C,height:N})=>{const z={id:m,type:"dimensions",resizing:!1,dimensions:{width:C,height:N}};v.getState().triggerNodeChanges([z])}})),T.current.update({controlPosition:P,boundaries:{minWidth:a,minHeight:l,maxWidth:c,maxHeight:d},keepAspectRatio:u,resizeDirection:f,onResizeStart:w,onResize:x,onResizeEnd:y,shouldResize:g}),()=>{var C;(C=T.current)==null||C.destroy()}},[P,a,l,c,d,u,w,x,y,g]);const O=P.split("-");return p.jsx("div",{className:he(["react-flow__resize-control","nodrag",...O,n,r]),ref:M,style:{...o,scale:j,...i&&{[S?"backgroundColor":"borderColor"]:i}},children:s})}b.memo(Wp);function Yp(e,t){if(!e)return null;const n=Date.parse(e);if(Number.isNaN(n))return null;const r=Math.max(0,(Date.now()-n)/1e3);if(r<45)return t("time.justNow");const o=r/60,s=o/60,i=s/24;return o<45?t("time.minutes",{n:Math.round(o)}):s<22?t("time.hours",{n:Math.round(s)}):i<7?t("time.days",{n:Math.round(i)}):t("time.weeks",{n:Math.round(i/7)})}const Xp=4,gs={isConnectable:!1,isConnectableStart:!1,isConnectableEnd:!1,style:{pointerEvents:"none"},"aria-hidden":!0};function Kp({data:e}){const t=Ze(),n=[...new Map((e.editors||[]).map(s=>[s.id,s])).values()];if(n.length===0)return null;const r=n.slice(0,Xp),o=n.length-r.length;return p.jsxs("span",{className:"node-editors","data-tip":t("specNode.liveEditors",{n:n.length}),children:[r.map(s=>p.jsx(rc,{seed:s.id,status:s.status,title:t("specNode.editorTitle",{node:s.node||t("common.session"),status:t(`status.${s.status}`),id:s.id.slice(0,8)})},s.id)),o>0&&p.jsxs("span",{className:"av-more","data-tip":t("specNode.more",{n:o}),children:["+",o]})]})}function Gp({summary:e,t}){return e!=null&&e.open?p.jsxs("span",{className:"issue-badge","data-tip":t("specNode.openIssues",{n:e.open}),children:["◆",e.open]}):null}function qp({data:e,selected:t}){var u,f;const n=Ze(),r=st[e.status]||st.pending,o=Yp(e.lastEdited,n),s=e.overlays||[],i=s[0],a=s.some(h=>h.op==="deleted"),l=i&&!i.committed,c=[...new Set(s.map(h=>h.op))],d=["spec-node",e.status,t?"focused":"",e.ghost?"ghost":"",a?"deleted":"",s.length?"has-overlay":"",l?"ov-dirty":""].filter(Boolean).join(" ");return p.jsxs("div",{className:d,style:i?{"--ov":_r(i.seed)}:void 0,children:[p.jsx(At,{type:"target",position:J.Left,...gs}),p.jsxs("div",{className:"node-row1",children:[p.jsx("span",{className:"node-dot",style:{background:r.color},children:e.status==="active"&&p.jsx("span",{className:"pulse",style:{background:r.color}})}),p.jsx("span",{className:"node-title",children:e.title}),c.length>0?p.jsx("span",{className:"ov-marks","data-tip":s.map(h=>n("specNode.opTitle",{op:n(`legend.opRows.${h.op}`),label:h.label,uncommitted:!h.committed})).join(`
25
- `),children:c.map(h=>p.jsx("span",{className:`ov-mark ov-${h}`,children:Es[h]},h))}):o?p.jsx("span",{className:"node-ago",children:o}):null]}),p.jsxs("div",{className:"node-row2",children:[p.jsx("span",{className:"node-ver",children:e.version?`v${e.version}`:""}),e.drift>0&&p.jsxs("span",{className:"drift-badge","data-tip":(e.driftFiles||[]).map(h=>`${h.file}: ${n("specNode.driftAhead",{n:h.behind})}`).join(`
26
- `),children:["⚠",e.drift]}),p.jsx(Gp,{summary:(u=e.reviewSummary)==null?void 0:u.issues,t:n}),p.jsx(ic,{summary:(f=e.reviewSummary)==null?void 0:f.evals}),p.jsx(Kp,{data:e})]}),e.collapsed&&p.jsxs("span",{className:"node-expand","data-tip":n("specNode.expandable",{n:e.childCount}),children:["▸",e.childCount]}),p.jsx(At,{type:"source",position:J.Right,...gs})]})}const En=8;function Up({x:e,y:t,anchorKey:n,label:r,children:o}){const s=b.useRef(null),[i,a]=b.useState({left:e,top:t,visibility:"hidden"});return b.useLayoutEffect(()=>{var c;const l=(c=s.current)==null?void 0:c.getBoundingClientRect();l&&a({left:Math.max(En,Math.min(e,window.innerWidth-l.width-En)),top:Math.max(En,Math.min(t,window.innerHeight-l.height-En)),visibility:"visible"})},[e,t,n]),p.jsx("div",{ref:s,className:"sess-menu",role:"menu","aria-label":r,style:i,onClick:l=>l.stopPropagation(),onMouseDownCapture:Ua,children:o})}function xr({children:e}){return p.jsx("div",{className:"sess-menu-group",role:"group",children:e})}function ps(){return p.jsx("div",{className:"sess-menu-sep",role:"separator"})}function mt({icon:e,leading:t,danger:n=!1,className:r="",children:o,...s}){if(!e&&!t)throw new Error("context menu item requires an icon or leading glyph");const i=["sess-menu-item",n&&"danger",r].filter(Boolean).join(" ");return p.jsxs("button",{type:"button",role:"menuitem",className:i,...s,children:[p.jsx("span",{className:"sess-menu-icon",children:t??p.jsx(Sn,{name:e,size:14,className:"sess-menu-svg"})}),p.jsx("span",{className:"sess-menu-label",children:o})]})}function Zp({menu:e,onClose:t,onInfo:n,onFresh:r,onNewChild:o,onDelete:s,sessions:i=[],onOpenSession:a}){const l=Ze(),[c,d]=b.useState(null);if(b.useEffect(()=>{if(e)return window.addEventListener("click",t),window.addEventListener("contextmenu",t,!0),()=>{window.removeEventListener("click",t),window.removeEventListener("contextmenu",t,!0)}},[e,t]),ac(!!e,t),b.useEffect(()=>{d(null)},[e]),b.useEffect(()=>{if(!c)return;const g=setTimeout(t,900);return()=>clearTimeout(g)},[c,t]),!e)return null;const u=g=>w=>{w.stopPropagation(),t(),g(e.id)},f=g=>w=>{w.stopPropagation(),t(),a==null||a(g)},h=async g=>{g.stopPropagation(),d(await lc(Ns(e.id))?"copied":"failed")};return p.jsxs(Up,{x:e.x,y:e.y,anchorKey:e.id,label:l("nodeMenu.menuLabel"),children:[p.jsxs(xr,{children:[p.jsx(mt,{icon:"info",onClick:u(n),children:l("nodeMenu.info")}),p.jsx(mt,{icon:"copy",onClick:h,children:l(c?`nodeMenu.${c}`:"nodeMenu.copyUrl")}),p.jsx(mt,{icon:"sessions",onClick:u(r),children:l("nodeMenu.newSession")}),p.jsx(mt,{icon:"plus",onClick:u(o),children:l("nodeMenu.newChild")})]}),p.jsx(ps,{}),p.jsx(xr,{children:p.jsx(mt,{icon:"trash",danger:!0,onClick:u(s),children:l("nodeMenu.del")})}),i.length>0&&p.jsxs(p.Fragment,{children:[p.jsx(ps,{}),p.jsx(xr,{children:i.map(g=>p.jsx(mt,{className:"sess-menu-sess",leading:p.jsx("span",{className:"sess-glyph",style:{color:Er[g.status]},"aria-hidden":"true",children:cc[g.status]}),onClick:f(g.id),children:Hr(g)},g.id))})]})]})}const Qp=new Set(["=","_","I","H","J","K","L"]),Jp=(()=>{const e=[];for(const t of bc){const n=Ss(t.id).filter(o=>!Qp.has(o)).map(Nr),r=e[e.length-1];r&&r.desc===t.desc?r.keys.push(...n):e.push({desc:t.desc,keys:n})}return e})(),em=[[["←","→","h","l","⇥","1","2"],"legend.popup.switch"],[["j","k","↑","↓"],"legend.popup.scroll"],[["⇧h","⇧j","⇧k","⇧l","⇧←↑↓→"],"legend.popup.lens"],[["⏎"],"legend.popup.enter"],[["esc"],"legend.popup.esc"]],tm=["merged","active","drift","pending"],nm=["added","edited","deleted","moved"];function rm({t:e}){return p.jsxs("section",{className:"legend-sec",children:[p.jsx("div",{className:"legend-h",children:e("legend.secBoard")}),Jp.map(t=>p.jsxs("div",{className:"legend-row",children:[p.jsx("span",{className:"keymap-keys",children:t.keys.map((n,r)=>p.jsx("kbd",{children:n},r))}),p.jsx("span",{className:"legend-desc",children:e(t.desc)})]},t.desc))]})}function om({title:e,rows:t,t:n}){return p.jsxs("section",{className:"legend-sec",children:[p.jsx("div",{className:"legend-h",children:e}),t.map(([r,o])=>p.jsxs("div",{className:"legend-row",children:[p.jsx("span",{className:"keymap-keys",children:r.map((s,i)=>p.jsx("kbd",{children:s},i))}),p.jsx("span",{className:"legend-desc",children:n(o)})]},o))]})}function sm({onClose:e}){const t=Ze();return p.jsxs(vc,{title:t("legend.title"),closeLabel:t("legend.close"),onClose:e,children:[p.jsx(rm,{t}),p.jsx(om,{title:t("legend.secPopup"),rows:em,t}),p.jsxs("section",{className:"legend-sec",children:[p.jsx("div",{className:"legend-h",children:t("legend.secStatus")}),tm.map(n=>p.jsxs("div",{className:"legend-row",children:[p.jsx("span",{className:"node-dot",style:{background:st[n].color},children:n==="active"&&p.jsx("span",{className:"pulse",style:{background:st[n].color}})}),p.jsx("span",{className:"legend-name",children:t(`status.${n}`)}),p.jsx("span",{className:"legend-desc",children:t(`legend.statusRows.${n}`)})]},n))]}),p.jsxs("section",{className:"legend-sec",children:[p.jsxs("div",{className:"legend-h",children:[t("legend.secOp")," ",p.jsx("span",{className:"legend-sub",children:t("legend.secOpSub")})]}),nm.map(n=>p.jsxs("div",{className:"legend-row",children:[p.jsx("span",{className:`ov-mark ov-${n}`,children:Es[n]}),p.jsx("span",{className:"legend-desc",children:t(`legend.opRows.${n}`)})]},n))]}),p.jsxs("section",{className:"legend-sec",children:[p.jsx("div",{className:"legend-h",children:t("legend.secBadges")}),p.jsxs("div",{className:"legend-row",children:[p.jsx("span",{className:"drift-badge",children:"⚠N"}),p.jsx("span",{className:"legend-desc",children:t("legend.badgeDrift")})]}),p.jsxs("div",{className:"legend-row",children:[p.jsx("span",{className:"legend-glyph legend-ver",children:"vN"}),p.jsx("span",{className:"legend-desc",children:t("legend.badgeVer")})]})]}),p.jsxs("section",{className:"legend-sec",children:[p.jsx("div",{className:"legend-h",children:t("legend.secRing")}),p.jsxs("div",{className:"legend-row",children:[p.jsx("span",{className:"legend-ring ring-dashed"}),p.jsx("span",{className:"legend-desc",children:t("legend.ringDashed")})]}),p.jsxs("div",{className:"legend-row",children:[p.jsx("span",{className:"legend-ring ring-solid"}),p.jsx("span",{className:"legend-desc",children:t("legend.ringSolid")})]}),p.jsxs("div",{className:"legend-row",children:[p.jsx("span",{className:"legend-ring ring-ghost"}),p.jsx("span",{className:"legend-desc",children:t("legend.ringGhost")})]})]})]})}const pa=8,im=5,am=2.2,cm=1,lm=new Set(["the","a","an","and","or","of","to","in","on","is","it","its","as","at","by","for","how","does","do","what","which","that","this","these","those","with","from","into","are","be","can","just","them","they","their","so","if","not","no","but","vs","us","we","you"]),ma="\\u3400-\\u4dbf\\u4e00-\\u9fff\\uf900-\\ufaff\\u3040-\\u30ff",um=new RegExp(`[a-z0-9]+|[${ma}]`,"g"),dm=new RegExp(`[${ma}]`);function ya(e){return dm.test(e)}function xa(e){return e.toLowerCase().match(um)??[]}function fm(e){const t=new Set;for(const n of xa(e))(ya(n)||n.length>1&&!lm.has(n))&&t.add(n);return[...t]}function wr(e){return xa(e)}function oo(e){let t=e;return t.length>=4&&t.endsWith("s")&&!t.endsWith("ss")&&(t=t.slice(0,-1)),t.length>=5&&t.endsWith("e")&&(t=t.slice(0,-1)),t}function hm(e,t){return t.startsWith(oo(e))}function Vn(e,t){return t.startsWith(oo(e))||t.length>=3&&e.startsWith(t)}const gm=.5;function pm(e,t){const n=oo(e);let r=0;for(const o of t.nameWords)if(o.startsWith(n)){const s=n.length/o.length;s>r&&(r=s)}return r>0?Math.max(gm,r):0}const ms=1.2,ys=.4;function xs(e,t,n){return e<=0?0:e*(ms+1)/(e+ms*(1-ys+ys*t/(n||1)))}function mm(e,t,n,r){const o=pm(e,t);if(o>0)return pa*o;if(t.name.includes(e))return im;if(t.descWords.some(i=>Vn(e,i)))return am*xs(1,t.descWords.length,r);const s=t.bodyWords.reduce((i,a)=>i+(Vn(e,a)?1:0),0);return cm*xs(s,t.bodyWords.length,n)}function ym(e,t,n,r=140){const o=e.replace(/\s+/g," ").trim(),s=o.toLowerCase();let i=-1;for(const c of n){const d=ya(c)?s.indexOf(c):s.search(new RegExp("\\b"+c.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")));d>=0&&(i<0||d<i)&&(i=d)}if(i<0){const c=(t||o).replace(/\s+/g," ").trim();return c.length>r?c.slice(0,r).trimEnd()+"…":c}const a=Math.max(0,i-Math.floor(r/3));let l=o.slice(a,a+r).trim();return a>0&&(l="…"+l),a+r<o.length&&(l=l+"…"),l}function xm(e,t,n={}){const r=n.limit??10,o=fm(e);if(!o.length)return[];const s=t.map(u=>{const f=u.name.toLowerCase();return{ref:u.ref,name:f,nameWords:wr(f),desc:u.desc.toLowerCase(),descWords:wr(u.desc),bodyWords:wr(u.body),snippetText:`${u.desc}
27
- ${u.body}`}}),i=s.length,a=s.reduce((u,f)=>u+f.bodyWords.length,0)/(i||1),l=s.reduce((u,f)=>u+f.descWords.length,0)/(i||1),c={};for(const u of o){let f=0;for(const h of s)(h.nameWords.some(g=>hm(u,g))||h.descWords.some(g=>Vn(u,g))||h.bodyWords.some(g=>Vn(u,g)))&&f++;c[u]=f>0?Math.log(i/f):0}const d=[];for(const u of s){let f=0;for(const h of o)f+=Math.min(mm(h,u,a,l)*c[h],pa);f<=0||d.push({ref:u.ref,score:Math.round(f*100)/100,snippet:ym(u.snippetText,u.desc,o)})}return d.sort((u,f)=>f.score-u.score),d.slice(0,r)}let vr=null;function wm(e=!0){const[t,n]=b.useState(vr),r=b.useRef(!1);return b.useEffect(()=>{!e||r.current||(r.current=!0,fetch(Za("/api/specs/lite")).then(o=>o.ok?o.json():[]).then(o=>{vr={bodies:Object.fromEntries((o||[]).map(s=>[s.id,s.body||""]))},n(vr)}).catch(()=>{}))},[e]),t}const vm={pass:"var(--green)",fail:"var(--red)",stalePass:"var(--muted)",staleFail:"var(--muted)",empty:"var(--muted)",missing:"var(--muted)"},br=e=>(e||"").replace(/^\.spec\//,"").replace(/\/spec\.md$/,""),ws=["spec","session","issue","scenario"],bm=e=>e?[e,...ws.filter(t=>t!==e)]:ws,_m=new Set(["issue","scenario"]);function Em(e,t,n,r=[],o=[]){var l,c;const s=n==null?void 0:n.bodies,i=[],a=Object.fromEntries(e.map(d=>[d.id,d]));for(const d of e){const u=br(d.path);i.push({kind:"spec",key:`spec:${d.id}`,target:d.id,address:Ns(d.id),color:(st[d.status]||st.pending).color,title:d.title||d.id,sub:u,name:`${d.title||d.id} ${d.id}`,desc:d.desc||"",body:(s==null?void 0:s[d.id])??d.body??""})}for(const d of r){const u=((l=d.nodes)==null?void 0:l[0])||null,f=br((c=a[u])==null?void 0:c.path);i.push({kind:"issue",key:`issue:${d.id}`,target:d.id,nodeId:u,address:dc(d.id),color:d.status==="open"?"var(--green)":"var(--muted)",title:d.concern,sub:[d.id,f].filter(Boolean).join(" · "),name:d.concern||"",desc:d.id,body:""})}for(const d of o){const u=a[d.node],f=d.filterKind===fc.RESULT;i.push({kind:"scenario",key:`scenario:${d.node}:${d.scenario}`,target:d.scenario,nodeId:d.node,address:f?uo(d.node,d.scenario):uo(d.node),color:vm[d.state||"missing"]||"var(--cyan)",title:d.scenario,sub:br(u==null?void 0:u.path),tags:d.tags,name:d.scenario||"",desc:"",body:d.expected||""})}for(const d of hc(t)){const u=Hr(d),f=gc(d),h=d.status||d.promptPreview||d.note||"";i.push({kind:"session",key:`session:${d.id}`,target:d.id,address:pc(d.id),color:Er[d.status]||Er.offline,title:u,sub:h,name:u||"",desc:d.status||"",body:`${d.promptPreview||d.note||""} ${f}`.trim()})}return i}function Nm(e,t,n){const r=Object.fromEntries(n.map((a,l)=>[a,l])),o=(a,l)=>r[a.kind]-r[l.kind];if(!t.trim())return e.slice().sort(o).slice(0,15);const s={};for(const a of n){const l=e.filter(c=>c.kind===a);s[a]=_m.has(a)?l.slice(0,15):xm(t,l.sort((c,d)=>c.name.length-d.name.length||c.key.localeCompare(d.key)).map(c=>({ref:c,name:c.name,desc:c.desc,body:c.body})),{limit:15}).map(c=>c.ref)}const i=[];for(let a=0;i.length<15;a++){let l=!1;for(const c of n)s[c][a]&&i.length<15&&(i.push(s[c][a]),l=!0);if(!l)break}return i}function Sm({specs:e,sessions:t,onPick:n,onClose:r,boost:o=null}){var O,C;const s=Ze(),i=wm(),[a,l]=b.useState(""),[c,d]=b.useState("");b.useEffect(()=>{if(!a.trim()){d(a);return}const N=setTimeout(()=>d(a),120);return()=>clearTimeout(N)},[a]);const[u,f]=b.useState(0),h=b.useRef(null),g=b.useRef(null),w=b.useMemo(()=>bm(o),[o]),x=`is:issue${c.trim()?` ${c.trim()}`:""}`,y=`is:eval${c.trim()?` ${c.trim()}`:""}`,E=lo("issues",x,1,{pollMs:0}),m=lo("evals",y,1,{pollMs:0}),v=((O=E.data)==null?void 0:O.items)||[],M=((C=m.data)==null?void 0:C.items)||[],S=b.useMemo(()=>Em(e,t,i,v,M),[e,t,i,E.data,m.data]),j=b.useMemo(()=>Nm(S,c,w),[S,c,w]);b.useEffect(()=>{var N;(N=h.current)==null||N.focus()},[]),b.useEffect(()=>{f(0)},[a]),b.useEffect(()=>{var N,z;(z=(N=g.current)==null?void 0:N.querySelector(".search-item.on"))==null||z.scrollIntoView({block:"nearest"})},[u,j]);const T=N=>{N&&(n(N),r())},P=N=>{N.key==="ArrowDown"?(N.preventDefault(),f(z=>Math.min(j.length-1,z+1))):N.key==="ArrowUp"?(N.preventDefault(),f(z=>Math.max(0,z-1))):N.key==="Enter"?(N.preventDefault(),T(j[u])):N.key==="Escape"&&(N.preventDefault(),r())};return p.jsx("div",{className:"search-backdrop","data-focus-overlay":!0,onClick:r,children:p.jsxs("div",{className:"search-panel",role:"dialog","aria-modal":"true","aria-label":s("search.title"),onClick:N=>N.stopPropagation(),children:[p.jsxs("div",{className:"search-bar",children:[p.jsx("span",{className:"search-icon",children:"⌕"}),p.jsx("input",{ref:h,className:"search-input",value:a,placeholder:s("search.placeholder"),onChange:N=>l(N.target.value),onKeyDown:P})]}),p.jsxs("ul",{className:"search-results",ref:g,children:[j.length===0&&p.jsx("li",{className:"search-empty",children:s("search.empty")}),j.map((N,z)=>p.jsxs("li",{className:`search-item${z===u?" on":""}`,"data-kind":N.kind,"data-target":N.target,onMouseEnter:()=>f(z),onClick:()=>T(N),children:[p.jsx("span",{className:"node-dot",style:{background:N.color}}),p.jsx("span",{className:`search-kind k-${N.kind}`,children:s(`search.kind.${N.kind}`)}),p.jsx("span",{className:"search-title",children:N.title||N.target}),p.jsx(uc,{tags:N.tags}),p.jsx("span",{className:"search-path",children:N.sub})]},N.key))]}),p.jsx("div",{className:"search-foot",children:s("search.hint")})]})})}function wa(e,t,n=1,r=o=>o){if(!e.length)return null;const o=e.findIndex(s=>r(s)===t);return o===-1?n>0?e[0]:e[e.length-1]:e[(o+n+e.length)%e.length]}const km=["merged","active","drift","pending"],Mm=[{state:"pass",always:!0,titleKey:"scorePass"},{state:"fail",always:!0,titleKey:"scoreFail"},{state:"stalePass",always:!1,titleKey:"scoreStalePass"},{state:"staleFail",always:!1,titleKey:"scoreStaleFail"},{state:"empty",always:!1,titleKey:"scoreEmpty"}];function Cm(e){var a,l;const t={merged:[],active:[],drift:[],pending:[]},n=[],r=[],o=new Set,s={pass:0,fail:0,stalePass:0,staleFail:0,empty:0},i={pass:[],fail:[],stalePass:[],staleFail:[],empty:[]};for(const c of e){t[c.status]&&t[c.status].push(c.id),c.drift>0&&n.push(c.id);const d=(a=c.reviewSummary)==null?void 0:a.issues;if(d!=null&&d.open){r.push(c.id);for(const f of d.openIds||[])o.add(f)}const u=(l=c.reviewSummary)==null?void 0:l.evals;if(u)for(const f of Object.keys(s)){const h=u[f]||0;s[f]+=h,h>0&&i[f].push(c.id)}}return{total:e.length,status:t,driftIds:n,issueIds:r,issueCount:o.size,scoreCount:s,scoreNodes:i}}function Nn({count:e,ids:t,focusId:n,onJump:r,title:o,cls:s="",children:i}){const a=t.length>0;return p.jsxs("button",{type:"button",className:`bstat ${s}`.trim(),disabled:!a,"data-tip":o,"aria-label":o,onClick:a?()=>r(wa(t,n)):void 0,children:[i,e]})}function Am({specs:e,focusId:t,onJump:n}){const r=Ze(),o=b.useMemo(()=>Cm(e),[e]),s=i=>i&&(n==null?void 0:n(i));return p.jsxs("div",{className:"graph-stats",role:"group","aria-label":r("stats.aria"),children:[p.jsx("span",{className:"bstat-total","data-tip":r("stats.totalTitle",{n:o.total}),children:o.total}),km.map(i=>p.jsx(Nn,{count:o.status[i].length,ids:o.status[i],focusId:t,onJump:s,title:r("stats.statusTitle",{n:o.status[i].length,status:r(`status.${i}`)}),children:p.jsx("span",{className:"bstat-dot",style:{background:st[i].color}})},i)),p.jsx("span",{className:"bstat-sep"}),p.jsx(Nn,{count:o.driftIds.length,ids:o.driftIds,focusId:t,onJump:s,cls:"bstat-drift",title:r("stats.driftTitle",{n:o.driftIds.length}),children:"⚠"}),p.jsx(Nn,{count:o.issueCount,ids:o.issueIds,focusId:t,onJump:s,cls:"bstat-issue",title:r("stats.issueTitle",{n:o.issueCount}),children:"◆"}),p.jsx("span",{className:"bstat-sep"}),Mm.map(({state:i,always:a,titleKey:l})=>{const c=o.scoreCount[i],d=o.scoreNodes[i];return!c&&!a?null:p.jsx(Nn,{count:c,ids:d,focusId:t,onJump:s,title:r(`stats.${l}`,{n:c}),children:p.jsx(mc,{state:i})},i)})]})}const $m=e=>(e==null?void 0:e.slice(0,12))||"";function Im(){var c,d;const[e,t]=b.useState(!1),[n,r]=b.useState(null),[o,s]=b.useState(null);b.useEffect(()=>{if(!e||n||o)return;let u=!0;return _c().then(f=>{u&&r(f)}).catch(f=>{u&&s(f)}),()=>{u=!1}},[e,n,o]),b.useEffect(()=>{if(!e)return;const u=f=>{f.key==="Escape"&&t(!1)};return window.addEventListener("keydown",u),()=>window.removeEventListener("keydown",u)},[e]);const i=n==null?void 0:n.about,a=n==null?void 0:n.publication,l=(c=n==null?void 0:n.release)==null?void 0:c.archive;return p.jsxs("div",{className:"public-about-shell",children:[p.jsxs("button",{type:"button",className:"public-about-trigger",onClick:()=>t(u=>!u),"aria-label":"About this public graph","aria-expanded":e,"aria-controls":"public-graph-about",title:"About this public graph",children:[p.jsx(Sn,{name:"info",size:16}),p.jsx("span",{children:"About"})]}),e&&p.jsxs("aside",{id:"public-graph-about",className:"public-about","aria-label":"About this public graph",children:[p.jsxs("header",{className:"public-about-head",children:[p.jsxs("div",{children:[p.jsx("p",{className:"public-about-kicker",children:"Read-only Spec Graph"}),p.jsx("h2",{children:(i==null?void 0:i.title)||"About"})]}),p.jsx(Qa,{icon:"x",size:14,className:"public-about-close",label:"Close about panel",onClick:()=>t(!1)})]}),!n&&!o&&p.jsx("p",{className:"public-about-status",children:"Loading release information..."}),o&&p.jsxs("p",{className:"public-about-status public-about-error",children:["Release information is unavailable: ",o.message]}),n&&p.jsxs(p.Fragment,{children:[p.jsx("p",{className:"public-about-summary",children:i.summary}),p.jsxs("dl",{className:"public-about-facts",children:[i.facts.map(u=>p.jsxs("div",{children:[p.jsx("dt",{children:u.label}),p.jsx("dd",{children:u.value})]},u.label)),p.jsxs("div",{children:[p.jsx("dt",{children:"Revision"}),p.jsx("dd",{children:p.jsx("code",{children:$m(n.release.revision)})})]})]}),p.jsxs("div",{className:"public-about-actions",children:[((d=a.repository)==null?void 0:d.url)&&p.jsxs("a",{className:"public-about-link",href:a.repository.url,target:"_blank",rel:"noopener noreferrer",children:[p.jsx(Sn,{name:"globe",size:14})," Repository"]}),p.jsxs("a",{className:"public-about-link primary",href:`./${l.path}`,download:l.name,children:[p.jsx(Sn,{name:"download",size:14})," Download .spec"]})]})]})]})]})}function vs(){let e=0,t=null,n=null,r=null;return function(s,i){if(!s)return;const a=r!=null&&Math.abs(s.scrollTop-r)>1;(s!==n||a)&&(n=s,t=null,r=null);const l=s.scrollHeight-s.clientHeight,c=t??s.scrollTop;t=Math.max(0,Math.min(l,c+i)),cancelAnimationFrame(e);const d=()=>{if(r!=null&&Math.abs(s.scrollTop-r)>1){cancelAnimationFrame(e),t=null,r=null;return}const u=t-s.scrollTop;if(Math.abs(u)<.5){s.scrollTop=t,r=s.scrollTop;return}s.scrollTop+=u*.2,r=s.scrollTop,e=requestAnimationFrame(d)};e=requestAnimationFrame(d)}}function jm(e){return e>1}function Pm(e){return{next:Nr((e("graph.cycle")||[])[0]||"o"),prev:Nr((e("graph.cycleRev")||[])[0]||"O")}}const Dm=b.lazy(()=>Bn(()=>import("./SessionInterface-C6EUVOH-.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12]),import.meta.url)),Tm=b.lazy(()=>Bn(()=>import("./EvalsPage-C083nJ_r.js"),__vite__mapDeps([13,1,2,6,7,3]),import.meta.url)),Rm=b.lazy(()=>Bn(()=>import("./IssuesPage-BLx-FEXN.js"),__vite__mapDeps([14,1,2,3,6,7]),import.meta.url)),Lm=b.lazy(()=>Bn(()=>import("./Settings-WCYxGmjP.js"),__vite__mapDeps([15,1,2,11,7,4]),import.meta.url)),zm={spec:qp},Hm=[.5,.5],bs={width:176,height:50},Vm=[{type:"target",position:J.Left,x:-1.5,y:22.5,width:5,height:5},{type:"source",position:J.Right,x:172.5,y:22.5,width:5,height:5}],_s=e=>Math.max(.4,Math.min(1.6,e)),Vt={nn:e=>`Create a new spec node under [[${e}]] — choose a kebab-case id, write its spec.md at contract altitude with a code: list, implement it, then propose merge. What it should be: `,dd:e=>`Delete the [[${e}]] spec node — remove its dir, repoint or fold its governed code, fix any [[…]] refs, recover its intent from git history, then propose merge. Why: `},va=Object.keys(Vt),Bm=new Set(va.map(e=>e[0]));function Lt({active:e,warm:t=!1,className:n,children:r}){const o=Ze();return!t&&!e?null:p.jsx("div",{className:n?`page-pane ${n}`:"page-pane",style:e?void 0:{display:"none"},children:p.jsx(b.Suspense,{fallback:p.jsx("div",{className:"loading",children:o("hud.loading")}),children:r})})}function Fm({specs:e,sessions:t,issuesStamp:n,reload:r,identity:o,catalog:s,boardLive:i,graphOnly:a=!1}){const l=(o==null?void 0:o.title)||"",{page:c,param:d}=Ja();b.useEffect(()=>{a&&c!=="graph"&&Ie("graph",null,{replace:!0})},[a,c]);const[u,f]=b.useState(()=>!a&&c==="sessions");b.useEffect(()=>{!a&&c==="sessions"&&f(!0)},[a,c]);const[h,g]=b.useState(()=>{var G;let L=null;try{L=sessionStorage.getItem("spex.focus")}catch{}return(L&&e.some(U=>U.id===L)?L:null)||((G=e.find(U=>!U.parent))==null?void 0:G.id)});b.useEffect(()=>{try{h&&sessionStorage.setItem("spex.focus",h)}catch{}},[h]);const[w,x]=b.useState(!1),[y,E]=b.useState("spec"),[m,v]=b.useState(!1),[M,S]=b.useState(null),[j,T]=b.useState("new"),[P,O]=b.useState(null),[C,N]=b.useState(null),[z,_]=b.useState(null),{getViewport:A,setViewport:k}=Jn(),I=Ze(),R=b.useRef(null),$=b.useRef(0),B=b.useRef({buf:"",timer:0}),[F,H]=b.useState(!1),X=b.useRef(!1);X.current=F;const q=b.useRef({x:-1,y:-1}),te=b.useMemo(()=>vs(),[]),re=b.useMemo(()=>vs(),[]),Q=b.useMemo(()=>Object.fromEntries(e.map(L=>[L.id,L])),[e]),V=b.useRef(null);b.useLayoutEffect(()=>{c!=="graph"||V.current===d||(V.current=d,d&&Q[d]&&g(d))},[c,d,Q]);const W=b.useCallback(L=>{L&&g(L)},[]),ne=Q[h]||e.find(L=>!L.parent)||e[0],ee=b.useMemo(()=>{const L=new Set;for(let G=ne;G;G=G.parent?Q[G.parent]:null)L.add(G.id);return L},[ne,Q]),Z=b.useMemo(()=>Ec(e,ee),[e,ee]),Y=b.useMemo(()=>e.filter(L=>Z[L.id]).map(L=>({...L,...Z[L.id]})),[e,Z]),oe=b.useMemo(()=>Object.fromEntries(Y.map(L=>[L.id,L])),[Y]),K=oe[ne.id],ae=b.useMemo(()=>{const L={};return e.forEach(G=>{G.parent&&(L[G.parent]=(L[G.parent]||0)+1)}),L},[e]),ce=b.useMemo(()=>e.filter(L=>{var G;return(G=L.overlays)==null?void 0:G.length}),[e]),me=b.useMemo(()=>P?t.find(L=>L.source===P):null,[t,P]),ge=b.useMemo(()=>P?e.filter(L=>(L.overlays||[]).some(G=>G.source===P)):[],[e,P]),we=b.useMemo(()=>P?ge:ce,[P,ge,ce]),Me=Pm(Ss),Xe=b.useCallback(L=>L?t.filter(G=>{var U;return(U=G.ops)==null?void 0:U.some(se=>se.nodeId===L.id)}):[],[t]),xe=b.useCallback(L=>{T(L),Ie("sessions",L)},[]),ve=b.useCallback(L=>{T("new"),N(L),Ie("sessions","new")},[]),be=b.useCallback(L=>{yc(L,{onOpenSession:xe})},[xe]),Ce=b.useMemo(()=>{var U;if(!z)return[];const L=e.find(se=>se.id===z.id);return(U=L==null?void 0:L.overlays)!=null&&U.length?[...new Set(L.overlays.map(se=>se.source))].map(se=>t.find(de=>de.source===se)).filter(Boolean):[]},[z,e,t]),Ae=b.useCallback(L=>{be(L.address)},[be]);b.useLayoutEffect(()=>{if(c!=="sessions"||!d)return;const L=d.split("/")[0];L&&L!==j&&T(L)},[c,d]),b.useEffect(()=>{c==="sessions"&&Ie("sessions",j,{replace:!0})},[c,j]),b.useEffect(()=>{c!=="graph"&&(x(!1),v(!1),S(null),_(null))},[c]);const $e=b.useMemo(()=>Y.filter(L=>L.parent===K.id),[Y,K]),It=K.parent?oe[K.parent]:null,Qe=b.useMemo(()=>$e.length?$e.reduce((L,G)=>Math.abs(G.y-K.y)<Math.abs(L.y-K.y)?G:L):null,[$e,K]),jt=b.useMemo(()=>{if(Qe)return Qe;let L=null,G=1/0;for(const U of Y){const se=U.x-K.x;if(se<=0)continue;const de=U.y-K.y,D=(se/Nc)**2+(de/Sc)**2;D<G&&(G=D,L=U)}return L},[Qe,Y,K]),dt=b.useCallback(L=>{let G=null;for(const U of Y){if(U.id===K.id||U.x!==K.x)continue;const se=U.y-K.y;(L==="down"?se<=0:se>=0)||(!G||Math.abs(se)<Math.abs(G.y-K.y))&&(G=U)}return G},[Y,K]),Pt=b.useMemo(()=>dt("down"),[dt]),Dt=b.useMemo(()=>dt("up"),[dt]),nr=b.useMemo(()=>Y.map(L=>{const G=L.id===h||L.id===K.parent||L.parent===h||L.parent===K.parent;let U;P&&ge.length?U=(L.overlays||[]).some(pe=>pe.source===P)?"ov-hot":"ov-dim":U=G?void 0:"is-far";const de=Xe(L).map(pe=>({id:pe.id,status:pe.status,node:pe.node})),D=ae[L.id]||0,ye={editors:de,collapsed:D>0&&!ee.has(L.id),childCount:D};return{id:L.id,type:"spec",position:{x:L.x,y:L.y},data:{...L,...ye},initialWidth:bs.width,initialHeight:bs.height,handles:Vm,draggable:!1,selected:L.id===h,className:U}}),[h,K.parent,P,ge,Y,Xe,ae,ee]),rr=b.useMemo(()=>{const L=Y.filter(U=>U.parent).map(U=>{const se=U.id===h||U.parent===h;return{id:`${U.parent}-${U.id}`,source:U.parent,target:U.id,type:"smoothstep",style:{stroke:se?"var(--blue)":"var(--line)",strokeWidth:se?2:1},zIndex:se?1:0}}),G=[];for(const U of Y){const se=(U.overlays||[]).find(D=>D.op==="moved"&&D.toParent&&oe[D.toParent]);if(!se)continue;const de=_r(se.seed);G.push({id:`move-${U.id}-${se.toParent}`,source:U.id,target:se.toParent,type:"smoothstep",animated:!0,zIndex:2,className:"move-edge",style:{stroke:de,strokeWidth:1.5,strokeDasharray:"4 4",opacity:.6},markerEnd:{type:qt.ArrowClosed,color:de,width:14,height:14}})}return[...L,...G]},[h,Y,oe]),on=b.useCallback((L,G)=>{const U=A(),se=performance.now();cancelAnimationFrame($.current);const de=D=>{const ye=G?Math.min(1,(D-se)/G):1,pe=1-Math.pow(1-ye,3);k({x:U.x+(L.x-U.x)*pe,y:U.y+(L.y-U.y)*pe,zoom:U.zoom+(L.zoom-U.zoom)*pe}),ye<1&&($.current=requestAnimationFrame(de))};$.current=requestAnimationFrame(de)},[A,k]),ze=b.useCallback((L,G,U=300)=>{const se=R.current;if(!se)return;const de=G??A().zoom;on({x:se.clientWidth/2-L.x*de,y:se.clientHeight/2-L.y*de,zoom:de},U)},[on,A]),sn=b.useRef(!1);b.useEffect(()=>{if(sn.current||c!=="graph")return;const L=requestAnimationFrame(()=>{sn.current=!0,ze(K,void 0,0)});return()=>cancelAnimationFrame(L)},[ze,K,c]);const Je=b.useRef(K);Je.current=K;const an=b.useRef(ze);an.current=ze;const cn=b.useRef(!1),et=b.useRef(!1),ft=b.useRef(null);b.useEffect(()=>{if(c==="graph"){if(!cn.current){cn.current=!0,ft.current=h;return}if(et.current){et.current=!1,ft.current=h;return}ft.current!==h&&(ft.current=h,an.current(Je.current))}},[h,c]);const ht=w||m||!!M,ln=b.useRef(ht);b.useEffect(()=>{ln.current&&!ht&&ec(),ln.current=ht},[ht]),b.useEffect(()=>{const L=xc(K,a).map(D=>D.key),G=D=>E(ye=>{const pe=L.indexOf(ye);return L[((pe<0?0:pe)+D+L.length)%L.length]}),U=(D,ye)=>{D&&(ye.preventDefault(),ye.stopPropagation(),H(!0),W(D.id))},se=D=>te(document.querySelector(".ov-body .pane-doc, .ov-body .pane-hist, .ov-body .pane-issues, .ov-body .pane-eval, .ov-body .pane-edit"),D),de=D=>{var ye,pe,gt,dn;if(D.altKey&&!D.metaKey&&!D.ctrlKey){const Ne={Digit1:"graph",Digit2:"sessions",Digit3:"evals",Digit4:"issues",Digit5:"settings"}[D.code];if(Ne){D.preventDefault(),D.stopPropagation(),S(null),(!a||Ne==="graph")&&Ie(Ne);return}if(!a&&D.code==="KeyN"){D.preventDefault(),D.stopPropagation(),S(null),T("new"),Ie("sessions","new");return}if(!a&&D.code==="KeyF"){D.preventDefault(),D.stopPropagation(),S(null),Ie("evals");return}}if(M){D.key==="Escape"&&(D.preventDefault(),D.stopPropagation(),S(null));return}if(!a&&D.altKey&&!D.metaKey&&!D.ctrlKey&&D.code==="Slash"){D.preventDefault(),D.stopPropagation(),S("sessions");return}if(!(D.metaKey||D.ctrlKey||D.altKey)&&!((D.key==="Enter"||D.key===" ")&&((pe=(ye=D.target)==null?void 0:ye.closest)!=null&&pe.call(ye,"button, a[href], input, select, textarea, summary")))&&c!=="sessions"&&!(c==="evals"||c==="issues")){if(c==="settings"){fe("graph.settings",D.key)&&(D.preventDefault(),D.stopPropagation(),Ie("graph"));return}if(w){const _e=D.key==="Escape"?null:(dn=(gt=D.target)==null?void 0:gt.closest)==null?void 0:dn.call(gt,'input, textarea, select, [role="menu"], [role="menuitemradio"], [aria-haspopup="menu"]');if(_e!=null&&_e.closest("[data-focus-overlay]"))return;if(D.key==="Escape"){D.preventDefault(),x(!1);return}if(D.shiftKey){if(fe("nav.up",D.key))return U(Dt,D);if(fe("nav.down",D.key))return U(Pt,D);if(fe("nav.parent",D.key))return U(It,D);if(fe("nav.child",D.key))return U(jt,D)}if(D.key==="Tab"){D.preventDefault(),D.stopPropagation(),G(D.shiftKey?-1:1);return}if(D.key==="ArrowLeft"||D.key==="h"){D.preventDefault(),D.stopPropagation(),G(-1);return}if(D.key==="ArrowRight"||D.key==="l"){D.preventDefault(),D.stopPropagation(),G(1);return}if(/^[1-9]$/.test(D.key)&&+D.key<=L.length){D.preventDefault(),D.stopPropagation(),E(L[+D.key-1]);return}if(D.key==="j"||D.key==="k"||D.key==="ArrowDown"||D.key==="ArrowUp"){D.preventDefault(),D.stopPropagation(),se(D.key==="j"||D.key==="ArrowDown"?120:-120);return}return}if(m){if(D.key==="Escape"||D.key==="?"){D.preventDefault(),v(!1);return}if(D.key==="j"||D.key==="k"||D.key==="ArrowDown"||D.key==="ArrowUp"){D.preventDefault(),D.stopPropagation(),re(document.querySelector(".legend"),D.key==="j"||D.key==="ArrowDown"?120:-120);return}return}if(fe("graph.help",D.key)){D.preventDefault(),v(!0);return}if(D.key==="Escape"&&P){D.preventDefault(),D.stopPropagation(),O(null);return}if(!a&&fe("graph.settings",D.key)){D.preventDefault(),Ie("settings");return}if(!a&&fe("graph.search",D.key)){D.preventDefault(),D.stopPropagation(),S("nodes");return}if(!a&&!D.metaKey&&!D.ctrlKey&&!D.altKey&&/^[a-zA-Z]$/.test(D.key)){const _e=B.current;if(_e.buf||Bm.has(D.key)){clearTimeout(_e.timer);const Ne=_e.buf+D.key;if(Vt[Ne]){D.preventDefault(),D.stopPropagation(),B.current={buf:"",timer:0},ve(Vt[Ne](K.id));return}if(va.some(fn=>fn.startsWith(Ne))){D.preventDefault(),D.stopPropagation(),B.current={buf:Ne,timer:setTimeout(()=>{B.current={buf:"",timer:0}},700)};return}B.current={buf:"",timer:0}}}if(fe("nav.up",D.key))return U(Dt,D);if(fe("nav.down",D.key))return U(Pt,D);if(fe("nav.parent",D.key))return U(It,D);if(fe("nav.child",D.key))return U(jt,D);if(fe("graph.zoomIn",D.key))D.preventDefault(),H(!0),ze(K,_s(A().zoom*1.2),160);else if(fe("graph.zoomOut",D.key))D.preventDefault(),H(!0),ze(K,_s(A().zoom/1.2),160);else if(fe("graph.zoomReset",D.key))D.preventDefault(),H(!0),ze(K,.85,200);else if(fe("graph.info",D.key))D.preventDefault(),x(!0);else if(fe("graph.cycle",D.key)||fe("graph.cycleRev",D.key)){if(D.preventDefault(),!we.length)return;H(!0);const _e=wa(we,K.id,fe("graph.cycleRev",D.key)?-1:1,Ne=>Ne.id);_e&&W(_e.id)}else!a&&fe("graph.fresh",D.key)?(D.preventDefault(),ve(`[[${K.id}]] `)):!a&&fe("graph.evals",D.key)&&(D.preventDefault(),Ie("evals"))}};return window.addEventListener("keydown",de,!0),()=>window.removeEventListener("keydown",de,!0)},[w,c,m,M,P,K,we,Dt,Pt,jt,It,ze,A,xe,ve,W,te,re,a]),b.useEffect(()=>{const L=G=>{const U=q.current,se=G.clientX!==U.x||G.clientY!==U.y;U.x=G.clientX,U.y=G.clientY,se&&X.current&&H(!1)};return window.addEventListener("mousemove",L,!0),()=>window.removeEventListener("mousemove",L,!0)},[]);const or=b.useCallback((L,G)=>{G.id!==Je.current.id&&(et.current=!0),W(G.id)},[W]),sr=b.useCallback((L,G)=>{G.id!==Je.current.id&&(et.current=!0),W(G.id),x(!0)},[W]),ir=b.useCallback((L,G)=>{L.preventDefault(),G.id!==Je.current.id&&(et.current=!0),W(G.id),_({x:L.clientX,y:L.clientY,id:G.id})},[W]),un=b.useCallback((L,G=!0)=>{const U=G&&P===L.source;if(O(U?null:L.source),U)return;const se=new Set((L.ops||[]).map(D=>D.nodeId)),de=e.find(D=>se.has(D.id));de&&W(de.id)},[P,e,W]);return p.jsxs("div",{className:F?"app kbd-mode":"app",children:[p.jsx(tc,{}),p.jsx(nc,{page:c,identity:o,catalog:s,graphOnly:a}),p.jsxs("div",{className:"app-main",children:[p.jsx(Lt,{active:a||c==="graph",warm:!0,className:"page-graph",children:p.jsxs("div",{className:"graph",ref:R,children:[p.jsx(wp,{nodes:nr,edges:rr,nodeTypes:zm,onNodeClick:or,onNodeDoubleClick:sr,onNodeContextMenu:a?void 0:ir,nodeOrigin:Hm,zoomOnDoubleClick:!1,nodesDraggable:!1,nodesFocusable:!1,disableKeyboardA11y:!0,defaultViewport:{x:0,y:0,zoom:.85},minZoom:.4,maxZoom:1.6,proOptions:{hideAttribution:!0}}),p.jsxs("div",{className:"hud",children:[p.jsxs("span",{className:"brand",children:["$ ",l||"spec-dashboard"]}),p.jsx("button",{className:"hud-help",onClick:()=>v(L=>!L),"data-tip":I("hud.helpTitle"),children:"?"})]}),!a&&p.jsx(oc,{sessions:t,activeId:P,onPick:un,onOpenSession:xe}),p.jsx(Am,{specs:e,focusId:h,onJump:W}),a&&p.jsx(Im,{}),!a&&p.jsx(Zp,{menu:z,onClose:()=>_(null),onInfo:()=>x(!0),onFresh:L=>ve(`[[${L}]] `),onNewChild:L=>ve(Vt.nn(L)),onDelete:L=>ve(Vt.dd(L)),sessions:Ce,onOpenSession:xe}),!a&&me&&p.jsxs("div",{className:"lock-hint",style:{"--ov":_r(me.id)},children:[p.jsxs("span",{className:"lock-hint-lead",children:[p.jsx(sc,{})," ",Hr(me)]}),ge.length?p.jsx("span",{className:"lock-hint-body",children:jm(ge.length)?p.jsxs(p.Fragment,{children:[I("lockHint.cycleBefore"),p.jsx("kbd",{children:Me.next}),I("lockHint.cycleNext"),p.jsx("span",{className:"lock-hint-sep",children:" / "}),p.jsx("kbd",{children:Me.prev}),I("lockHint.cyclePrev"),I("lockHint.cycleAfter",{n:ge.length})]}):I("lockHint.singleChanged")}):p.jsx("span",{className:"lock-hint-body",children:I("lockHint.empty")}),p.jsx("button",{className:"lock-hint-release",onClick:()=>O(null),"data-tip":I("lockHint.releaseTitle"),children:I("lockHint.release")})]}),m&&p.jsx(sm,{onClose:()=>v(!1)})]})}),w&&p.jsx(wc,{node:K,pane:y,setPane:E,sessions:t,graphOnly:a,onClose:()=>x(!1)},K.id),!a&&p.jsx(Lt,{active:c==="sessions",warm:u,className:"page-sessions",children:p.jsx(Dm,{sessions:t,specs:e,focusNode:K,open:c==="sessions",searchOpen:!!M,sel:j,setSel:T,seed:C,onSeedConsumed:()=>N(null),onClose:()=>Ie("graph"),onPickSession:un,onOpenSearch:()=>S("sessions"),boardLive:i,reload:r})}),!a&&p.jsx(Lt,{active:c==="evals",className:"page-evals",children:p.jsx(Tm,{specs:e,sessions:t,issuesStamp:n,reloadBoard:r,onOpenSession:xe})}),!a&&p.jsx(Lt,{active:c==="issues",className:"page-issues",children:p.jsx(Rm,{specs:e,sessions:t,issuesStamp:n,onOpenSession:xe})}),!a&&p.jsx(Lt,{active:c==="settings",className:"page-settings",children:p.jsx(Lm,{})}),!a&&M&&p.jsx(Sm,{specs:e,sessions:t,onPick:Ae,onClose:()=>S(null),boost:M==="sessions"?"session":null})]})]})}function Om(e){return p.jsx(da,{children:p.jsx(Fm,{...e})})}const Um=Object.freeze(Object.defineProperty({__proto__:null,default:Om},Symbol.toStringTag,{value:"Module"}));export{Up as C,Um as D,xr as a,mt as b,ps as c};