@spexcode/spec-dashboard 0.6.6 → 0.6.8

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 (87) hide show
  1. package/dist/assets/App-DANZYsFg.js +2 -0
  2. package/dist/assets/EmptyView-xnSRh3XP.js +1 -0
  3. package/dist/assets/EvalsPage-DDxIUAuR.js +2 -0
  4. package/dist/assets/FileView-DZaiEPRK.js +2 -0
  5. package/dist/assets/GraphStats-CxHsXNy-.js +1 -0
  6. package/dist/assets/GraphView-DHEhg_eI.js +26 -0
  7. package/dist/assets/IssuesPage-B5qjvpP1.js +1 -0
  8. package/dist/assets/MobileApp-fvc4gfCx.js +2 -0
  9. package/dist/assets/NodeView-D6JZc3ap.js +3 -0
  10. package/dist/assets/PageScroll-DE6nL5p-.js +1 -0
  11. package/dist/assets/ProjectsPage-I7XFn8kG.js +1 -0
  12. package/dist/assets/ProseActions-LG4ve4AO.js +7 -0
  13. package/dist/assets/Settings-D7NeDdd1.js +1 -0
  14. package/dist/assets/SpecView-mkyrBxLO.js +1 -0
  15. package/dist/assets/Thread-Cx5fJkFO.js +9 -0
  16. package/dist/assets/WorkspaceSurface-DgbzdTEl.js +2 -0
  17. package/dist/assets/index-B-qrQ2QS.js +40 -0
  18. package/dist/assets/index-RoVUefLX.js +13 -0
  19. package/dist/assets/index-nweIph9V.css +1 -0
  20. package/dist/assets/tabs-Brk4lg7l.css +32 -0
  21. package/dist/assets/tabs-BxFTq-sB.js +334 -0
  22. package/dist/index.html +3 -3
  23. package/dist-public/assets/App-Bz1E7Es7.js +2 -0
  24. package/dist-public/assets/EmptyView-CX3NC0Nq.js +1 -0
  25. package/dist-public/assets/EvalsPage-BBzomD1v.js +2 -0
  26. package/dist-public/assets/FileView-Cf5bY14h.js +2 -0
  27. package/dist-public/assets/GraphStats-CxHsXNy-.js +1 -0
  28. package/dist-public/assets/GraphView-5dgjv4t6.js +26 -0
  29. package/dist-public/assets/IssuesPage-B_knZkH6.js +1 -0
  30. package/dist-public/assets/MobileApp-BpnF0xSz.js +2 -0
  31. package/dist-public/assets/NodeView-cN_xZ1kR.js +3 -0
  32. package/dist-public/assets/PageScroll-CEYT-x2I.js +1 -0
  33. package/dist-public/assets/ProjectsPage-CWaOO-Y7.js +1 -0
  34. package/dist-public/assets/ProseActions-rr5Mm1WB.js +7 -0
  35. package/dist-public/assets/Settings-louVIHfW.js +1 -0
  36. package/dist-public/assets/SpecView-qZMzQH75.js +1 -0
  37. package/dist-public/assets/Thread-Ca_r1oDT.js +9 -0
  38. package/dist-public/assets/WorkspaceSurface-bsUptX-4.js +2 -0
  39. package/dist-public/assets/index-3mcnUCQ1.js +40 -0
  40. package/dist-public/assets/index-BmOx7kVX.js +13 -0
  41. package/dist-public/assets/index-nweIph9V.css +1 -0
  42. package/dist-public/assets/tabs-BL3Okd06.js +334 -0
  43. package/dist-public/assets/tabs-PFmT6UqQ.css +32 -0
  44. package/dist-public/index.html +3 -3
  45. package/package.json +9 -3
  46. package/dist/assets/App-CyvuxJYw.js +0 -2
  47. package/dist/assets/Dashboard-DUitEyrD.js +0 -27
  48. package/dist/assets/EvalsPage-PLgW05y7.js +0 -2
  49. package/dist/assets/IssuesPage-BcFWiFjF.js +0 -1
  50. package/dist/assets/MobileApp-Dky_U9DL.js +0 -2
  51. package/dist/assets/Modal-8cCCnDgy.js +0 -1
  52. package/dist/assets/PageScroll-GBlw382O.js +0 -1
  53. package/dist/assets/ProjectsPage-CdKKLnBH.js +0 -1
  54. package/dist/assets/SessionInterface-6GBZ9nXN.css +0 -32
  55. package/dist/assets/SessionInterface-Dp-rUO1H.js +0 -40
  56. package/dist/assets/SessionWindow-D2zgUVTT.js +0 -1
  57. package/dist/assets/Settings-7cKD-jHj.js +0 -1
  58. package/dist/assets/Thread-BkaL_dog.js +0 -13
  59. package/dist/assets/TimelineChat-Cp579UoJ.css +0 -1
  60. package/dist/assets/TimelineChat-DOKwQ3Sd.js +0 -276
  61. package/dist/assets/bindings-BC9vqpYU.js +0 -1
  62. package/dist/assets/data-CHkRTrsm.js +0 -1
  63. package/dist/assets/index-Ba-oHmxn.css +0 -1
  64. package/dist/assets/index-Di9gWPc6.js +0 -41
  65. package/dist/assets/sessionSurface-H34ExWBA.js +0 -1
  66. package/dist-public/assets/App-DebAWelc.js +0 -2
  67. package/dist-public/assets/Dashboard-DhuzsOUh.js +0 -27
  68. package/dist-public/assets/EvalsPage-CHc1tT-0.js +0 -2
  69. package/dist-public/assets/IssuesPage-BqojZnnr.js +0 -1
  70. package/dist-public/assets/MobileApp-DevENU8x.js +0 -2
  71. package/dist-public/assets/Modal-DAUYhrDn.js +0 -1
  72. package/dist-public/assets/PageScroll-Bxaqks4c.js +0 -1
  73. package/dist-public/assets/ProjectsPage-GHR6vTck.js +0 -1
  74. package/dist-public/assets/SessionInterface-6GBZ9nXN.css +0 -32
  75. package/dist-public/assets/SessionInterface-C0Fy_tWd.js +0 -40
  76. package/dist-public/assets/SessionWindow-CkdNpele.js +0 -1
  77. package/dist-public/assets/Settings-1XN_EQnW.js +0 -1
  78. package/dist-public/assets/Thread-BHCpsJIa.js +0 -13
  79. package/dist-public/assets/TimelineChat-N9RZ6v95.js +0 -276
  80. package/dist-public/assets/TimelineChat-dIRGbAJA.css +0 -1
  81. package/dist-public/assets/bindings-BC9vqpYU.js +0 -1
  82. package/dist-public/assets/data-BmO9k_xP.js +0 -1
  83. package/dist-public/assets/index-Ba-oHmxn.css +0 -1
  84. package/dist-public/assets/index-oM1cUuGR.js +0 -41
  85. package/dist-public/assets/sessionSurface-BNwc7E-I.js +0 -1
  86. /package/dist/assets/{Dashboard-BnuhLJ6X.css → GraphView-BnuhLJ6X.css} +0 -0
  87. /package/dist-public/assets/{Dashboard-BnuhLJ6X.css → GraphView-BnuhLJ6X.css} +0 -0
@@ -1,27 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./SessionInterface-C0Fy_tWd.js","./index-oM1cUuGR.js","./index-Ba-oHmxn.css","./data-BmO9k_xP.js","./sessionSurface-BNwc7E-I.js","./TimelineChat-N9RZ6v95.js","./Thread-BHCpsJIa.js","./PageScroll-Bxaqks4c.js","./Modal-DAUYhrDn.js","./TimelineChat-dIRGbAJA.css","./SessionWindow-CkdNpele.js","./bindings-BC9vqpYU.js","./SessionInterface-6GBZ9nXN.css","./EvalsPage-CHc1tT-0.js","./IssuesPage-BqojZnnr.js","./Settings-1XN_EQnW.js"])))=>i.map(i=>d[i]);
2
- import{r as _,v as nc,R as rc,j as p,u as Je,w as oc,I as Ze,e as sc,f as ic,h as ac,n as Ie,x as cc,T as lc,S as uc,_ as Vn}from"./index-oM1cUuGR.js";import{b as ct,G as Cs,l as _r,A as dc,c as fc,L as hc}from"./SessionWindow-CkdNpele.js";import{a0 as gc,a1 as pc,s as Hr,a2 as mc,_ as Er,a3 as yc,g as As,t as lo,a4 as xc,a as uo,a5 as fo,a6 as wc,E as vc,x as ho,a7 as bc,P as _c,y as Ec,a8 as Nc,a9 as Sc,K as kc,aa as Mc}from"./Thread-BHCpsJIa.js";import{M as Cc}from"./Modal-DAUYhrDn.js";import{A as Ac,k as $s,a as Nr,f as fe}from"./bindings-BC9vqpYU.js";import{m as $c,n as Ic,X as jc,Y as Pc}from"./data-BmO9k_xP.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 Tc={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 Sn(n)}function Sn(e){this._=e}function Dc(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}})}Sn.prototype=Fn.prototype={constructor:Sn,on:function(e,t){var n=this._,r=Dc(e+"",n),o,s=-1,i=r.length;if(arguments.length<2){for(;++s<i;)if((o=(e=r[s]).type)&&(o=Rc(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]=go(n[o],e.name,t);else if(t==null)for(o in n)n[o]=go(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 Sn(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 Rc(e,t){for(var n=0,r=e.length,o;n<r;++n)if((o=e[n]).name===t)return o.value}function go(e,t,n){for(var r=0,o=e.length;r<o;++r)if(e[r].name===t){e[r]=Tc,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 po={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)),po.hasOwnProperty(t)?{space:po[t],local:e}:e}function Lc(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 zc(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function Is(e){var t=On(e);return(t.local?zc:Lc)(t)}function Hc(){}function Br(e){return e==null?Hc:function(){return this.querySelector(e)}}function Bc(e){typeof e!="function"&&(e=Br(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,u=0;u<i;++u)(l=s[u])&&(c=e.call(l,l.__data__,u,s))&&("__data__"in l&&(c.__data__=l.__data__),a[u]=c);return new ke(r,this._parents)}function Vc(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function Fc(){return[]}function js(e){return e==null?Fc:function(){return this.querySelectorAll(e)}}function Oc(e){return function(){return Vc(e.apply(this,arguments))}}function Wc(e){typeof e=="function"?e=Oc(e):e=js(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 Ps(e){return function(){return this.matches(e)}}function Ts(e){return function(t){return t.matches(e)}}var Yc=Array.prototype.find;function Xc(e){return function(){return Yc.call(this.children,e)}}function Kc(){return this.firstElementChild}function Gc(e){return this.select(e==null?Kc:Xc(typeof e=="function"?e:Ts(e)))}var qc=Array.prototype.filter;function Uc(){return Array.from(this.children)}function Zc(e){return function(){return qc.call(this.children,e)}}function Qc(e){return this.selectAll(e==null?Uc:Zc(typeof e=="function"?e:Ts(e)))}function Jc(e){typeof e!="function"&&(e=Ps(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 Ds(e){return new Array(e.length)}function el(){return new ke(this._enter||this._groups.map(Ds),this._parents)}function $n(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}$n.prototype={constructor:$n,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 tl(e){return function(){return e}}function nl(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 $n(e,s[i]);for(;i<l;++i)(a=t[i])&&(o[i]=a)}function rl(e,t,n,r,o,s,i){var a,l,c=new Map,u=t.length,f=s.length,d=new Array(u),h;for(a=0;a<u;++a)(l=t[a])&&(d[a]=h=i.call(l,l.__data__,a,t)+"",c.has(h)?o[a]=l:c.set(h,l));for(a=0;a<f;++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 $n(e,s[a]);for(a=0;a<u;++a)(l=t[a])&&c.get(d[a])===l&&(o[a]=l)}function ol(e){return e.__data__}function sl(e,t){if(!arguments.length)return Array.from(this,ol);var n=t?rl:nl,r=this._parents,o=this._groups;typeof e!="function"&&(e=tl(e));for(var s=o.length,i=new Array(s),a=new Array(s),l=new Array(s),c=0;c<s;++c){var u=r[c],f=o[c],d=f.length,h=il(e.call(u,u&&u.__data__,c,r)),g=h.length,v=a[c]=new Array(g),w=i[c]=new Array(g),y=l[c]=new Array(d);n(u,f,v,w,y,h,t);for(var E=0,m=0,b,C;E<g;++E)if(b=v[E]){for(E>=m&&(m=E+1);!(C=w[m])&&++m<g;);b._next=C||null}}return i=new ke(i,r),i._enter=a,i._exit=l,i}function il(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function al(){return new ke(this._exit||this._groups.map(Ds),this._parents)}function cl(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 ll(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],u=r[l],f=c.length,d=a[l]=new Array(f),h,g=0;g<f;++g)(h=c[g]||u[g])&&(d[g]=h);for(;l<o;++l)a[l]=n[l];return new ke(a,this._parents)}function ul(){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 dl(e){e||(e=fl);function t(f,d){return f&&d?e(f.__data__,d.__data__):!f-!d}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,u=0;u<a;++u)(c=i[u])&&(l[u]=c);l.sort(t)}return new ke(o,this._parents).order()}function fl(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function hl(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function gl(){return Array.from(this)}function pl(){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 ml(){let e=0;for(const t of this)++e;return e}function yl(){return!this.node()}function xl(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 wl(e){return function(){this.removeAttribute(e)}}function vl(e){return function(){this.removeAttributeNS(e.space,e.local)}}function bl(e,t){return function(){this.setAttribute(e,t)}}function _l(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function El(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}}function Nl(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 Sl(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?vl:wl:typeof t=="function"?n.local?Nl:El:n.local?_l:bl)(n,t))}function Rs(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function kl(e){return function(){this.style.removeProperty(e)}}function Ml(e,t,n){return function(){this.style.setProperty(e,t,n)}}function Cl(e,t,n){return function(){var r=t.apply(this,arguments);r==null?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function Al(e,t,n){return arguments.length>1?this.each((t==null?kl:typeof t=="function"?Cl:Ml)(e,t,n??"")):Et(this.node(),e)}function Et(e,t){return e.style.getPropertyValue(t)||Rs(e).getComputedStyle(e,null).getPropertyValue(t)}function $l(e){return function(){delete this[e]}}function Il(e,t){return function(){this[e]=t}}function jl(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function Pl(e,t){return arguments.length>1?this.each((t==null?$l:typeof t=="function"?jl:Il)(e,t)):this.node()[e]}function Ls(e){return e.trim().split(/^|\s+/)}function Vr(e){return e.classList||new zs(e)}function zs(e){this._node=e,this._names=Ls(e.getAttribute("class")||"")}zs.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 Hs(e,t){for(var n=Vr(e),r=-1,o=t.length;++r<o;)n.add(t[r])}function Bs(e,t){for(var n=Vr(e),r=-1,o=t.length;++r<o;)n.remove(t[r])}function Tl(e){return function(){Hs(this,e)}}function Dl(e){return function(){Bs(this,e)}}function Rl(e,t){return function(){(t.apply(this,arguments)?Hs:Bs)(this,e)}}function Ll(e,t){var n=Ls(e+"");if(arguments.length<2){for(var r=Vr(this.node()),o=-1,s=n.length;++o<s;)if(!r.contains(n[o]))return!1;return!0}return this.each((typeof t=="function"?Rl:t?Tl:Dl)(n,t))}function zl(){this.textContent=""}function Hl(e){return function(){this.textContent=e}}function Bl(e){return function(){var t=e.apply(this,arguments);this.textContent=t??""}}function Vl(e){return arguments.length?this.each(e==null?zl:(typeof e=="function"?Bl:Hl)(e)):this.node().textContent}function Fl(){this.innerHTML=""}function Ol(e){return function(){this.innerHTML=e}}function Wl(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??""}}function Yl(e){return arguments.length?this.each(e==null?Fl:(typeof e=="function"?Wl:Ol)(e)):this.node().innerHTML}function Xl(){this.nextSibling&&this.parentNode.appendChild(this)}function Kl(){return this.each(Xl)}function Gl(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function ql(){return this.each(Gl)}function Ul(e){var t=typeof e=="function"?e:Is(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function Zl(){return null}function Ql(e,t){var n=typeof e=="function"?e:Is(e),r=t==null?Zl:typeof t=="function"?t:Br(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})}function Jl(){var e=this.parentNode;e&&e.removeChild(this)}function eu(){return this.each(Jl)}function tu(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function nu(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function ru(e){return this.select(e?nu:tu)}function ou(e){return arguments.length?this.property("__data__",e):this.node().__data__}function su(e){return function(t){e.call(this,t,this.__data__)}}function iu(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 au(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 cu(e,t,n){return function(){var r=this.__on,o,s=su(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 lu(e,t,n){var r=iu(e+""),o,s=r.length,i;if(arguments.length<2){var a=this.node().__on;if(a){for(var l=0,c=a.length,u;l<c;++l)for(o=0,u=a[l];o<s;++o)if((i=r[o]).type===u.type&&i.name===u.name)return u.value}return}for(a=t?cu:au,o=0;o<s;++o)this.each(a(r[o],t,n));return this}function Vs(e,t,n){var r=Rs(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 uu(e,t){return function(){return Vs(this,e,t)}}function du(e,t){return function(){return Vs(this,e,t.apply(this,arguments))}}function fu(e,t){return this.each((typeof t=="function"?du:uu)(e,t))}function*hu(){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 Fs=[null];function ke(e,t){this._groups=e,this._parents=t}function Qt(){return new ke([[document.documentElement]],Fs)}function gu(){return this}ke.prototype=Qt.prototype={constructor:ke,select:Bc,selectAll:Wc,selectChild:Gc,selectChildren:Qc,filter:Jc,data:sl,enter:el,exit:al,join:cl,merge:ll,selection:gu,order:ul,sort:dl,call:hl,nodes:gl,node:pl,size:ml,empty:yl,each:xl,attr:Sl,style:Al,property:Pl,classed:Ll,text:Vl,html:Yl,raise:Kl,lower:ql,append:Ul,insert:Ql,remove:eu,clone:ru,datum:ou,on:lu,dispatch:fu,[Symbol.iterator]:hu};function Se(e){return typeof e=="string"?new ke([[document.querySelector(e)]],[document.documentElement]):new ke([[e]],Fs)}function pu(e){let t;for(;t=e.sourceEvent;)e=t;return e}function je(e,t){if(e=pu(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 mu={passive:!1},Ft={capture:!0,passive:!1};function cr(e){e.stopImmediatePropagation()}function bt(e){e.preventDefault(),e.stopImmediatePropagation()}function Os(e){var t=e.document.documentElement,n=Se(e).on("dragstart.drag",bt,Ft);"onselectstart"in t?n.on("selectstart.drag",bt,Ft):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect="none")}function Ws(e,t){var n=e.document.documentElement,r=Se(e).on("dragstart.drag",null);t&&(r.on("click.drag",bt,Ft),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:u}){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:u}})}kr.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function yu(e){return!e.ctrlKey&&!e.button}function xu(){return this.parentNode}function wu(e,t){return t??{x:e.x,y:e.y}}function vu(){return navigator.maxTouchPoints||"ontouchstart"in this}function Ys(){var e=yu,t=xu,n=wu,r=vu,o={},s=Fn("start","drag","end"),i=0,a,l,c,u,f=0;function d(b){b.on("mousedown.drag",h).filter(r).on("touchstart.drag",w).on("touchmove.drag",y,mu).on("touchend.drag touchcancel.drag",E).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function h(b,C){if(!(u||!e.call(this,b,C))){var S=m(this,t.call(this,b,C),b,C,"mouse");S&&(Se(b.view).on("mousemove.drag",g,Ft).on("mouseup.drag",v,Ft),Os(b.view),cr(b),c=!1,a=b.clientX,l=b.clientY,S("start",b))}}function g(b){if(bt(b),!c){var C=b.clientX-a,S=b.clientY-l;c=C*C+S*S>f}o.mouse("drag",b)}function v(b){Se(b.view).on("mousemove.drag mouseup.drag",null),Ws(b.view,c),bt(b),o.mouse("end",b)}function w(b,C){if(e.call(this,b,C)){var S=b.changedTouches,A=t.call(this,b,C),P=S.length,I,O;for(I=0;I<P;++I)(O=m(this,A,b,C,S[I].identifier,S[I]))&&(cr(b),O("start",b,S[I]))}}function y(b){var C=b.changedTouches,S=C.length,A,P;for(A=0;A<S;++A)(P=o[C[A].identifier])&&(bt(b),P("drag",b,C[A]))}function E(b){var C=b.changedTouches,S=C.length,A,P;for(u&&clearTimeout(u),u=setTimeout(function(){u=null},500),A=0;A<S;++A)(P=o[C[A].identifier])&&(cr(b),P("end",b,C[A]))}function m(b,C,S,A,P,I){var O=s.copy(),T=je(I||S,C),F,L,x;if((x=n.call(b,new kr("beforestart",{sourceEvent:S,target:d,identifier:P,active:i,x:T[0],y:T[1],dx:0,dy:0,dispatch:O}),A))!=null)return F=x.x-T[0]||0,L=x.y-T[1]||0,function k(N,M,D){var $=T,R;switch(N){case"start":o[P]=k,R=i++;break;case"end":delete o[P],--i;case"drag":T=je(D||M,C),R=i;break}O.call(N,b,new kr(N,{sourceEvent:M,subject:x,target:d,identifier:P,active:R,x:T[0]+F,y:T[1]+L,dx:T[0]-$[0],dy:T[1]-$[1],dispatch:O}),A)}}return d.filter=function(b){return arguments.length?(e=typeof b=="function"?b:gn(!!b),d):e},d.container=function(b){return arguments.length?(t=typeof b=="function"?b:gn(b),d):t},d.subject=function(b){return arguments.length?(n=typeof b=="function"?b:gn(b),d):n},d.touchable=function(b){return arguments.length?(r=typeof b=="function"?b:gn(!!b),d):r},d.on=function(){var b=s.on.apply(s,arguments);return b===s?d:b},d.clickDistance=function(b){return arguments.length?(f=(b=+b)*b,d):Math.sqrt(f)},d}function Fr(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function Xs(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function Jt(){}var Ot=.7,In=1/Ot,_t="\\s*([+-]?\\d+)\\s*",Wt="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Ve="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",bu=/^#([0-9a-f]{3,8})$/,_u=new RegExp(`^rgb\\(${_t},${_t},${_t}\\)$`),Eu=new RegExp(`^rgb\\(${Ve},${Ve},${Ve}\\)$`),Nu=new RegExp(`^rgba\\(${_t},${_t},${_t},${Wt}\\)$`),Su=new RegExp(`^rgba\\(${Ve},${Ve},${Ve},${Wt}\\)$`),ku=new RegExp(`^hsl\\(${Wt},${Ve},${Ve}\\)$`),Mu=new RegExp(`^hsla\\(${Wt},${Ve},${Ve},${Wt}\\)$`),mo={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(Jt,lt,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:yo,formatHex:yo,formatHex8:Cu,formatHsl:Au,formatRgb:xo,toString:xo});function yo(){return this.rgb().formatHex()}function Cu(){return this.rgb().formatHex8()}function Au(){return Ks(this).formatHsl()}function xo(){return this.rgb().formatRgb()}function lt(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=bu.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?wo(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=_u.exec(e))?new Ee(t[1],t[2],t[3],1):(t=Eu.exec(e))?new Ee(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=Nu.exec(e))?pn(t[1],t[2],t[3],t[4]):(t=Su.exec(e))?pn(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=ku.exec(e))?_o(t[1],t[2]/100,t[3]/100,1):(t=Mu.exec(e))?_o(t[1],t[2]/100,t[3]/100,t[4]):mo.hasOwnProperty(e)?wo(mo[e]):e==="transparent"?new Ee(NaN,NaN,NaN,0):null}function wo(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 Jt||(e=lt(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,Xs(Jt,{brighter(e){return e=e==null?In:Math.pow(In,e),new Ee(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?Ot:Math.pow(Ot,e),new Ee(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Ee(it(this.r),it(this.g),it(this.b),jn(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:vo,formatHex:vo,formatHex8:Iu,formatRgb:bo,toString:bo}));function vo(){return`#${st(this.r)}${st(this.g)}${st(this.b)}`}function Iu(){return`#${st(this.r)}${st(this.g)}${st(this.b)}${st((isNaN(this.opacity)?1:this.opacity)*255)}`}function bo(){const e=jn(this.opacity);return`${e===1?"rgb(":"rgba("}${it(this.r)}, ${it(this.g)}, ${it(this.b)}${e===1?")":`, ${e})`}`}function jn(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function it(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function st(e){return e=it(e),(e<16?"0":"")+e.toString(16)}function _o(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 Ks(e){if(e instanceof Pe)return new Pe(e.h,e.s,e.l,e.opacity);if(e instanceof Jt||(e=lt(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 ju(e,t,n,r){return arguments.length===1?Ks(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,ju,Xs(Jt,{brighter(e){return e=e==null?In:Math.pow(In,e),new Pe(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Ot:Math.pow(Ot,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(Eo(this.h),mn(this.s),mn(this.l),jn(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=jn(this.opacity);return`${e===1?"hsl(":"hsla("}${Eo(this.h)}, ${mn(this.s)*100}%, ${mn(this.l)*100}%${e===1?")":`, ${e})`}`}}));function Eo(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 Pu(e,t){return function(n){return e+n*t}}function Tu(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 Du(e){return(e=+e)==1?Gs:function(t,n){return n-t?Tu(t,n,e):Or(isNaN(t)?n:t)}}function Gs(e,t){var n=t-e;return n?Pu(e,n):Or(isNaN(e)?t:e)}const Pn=function e(t){var n=Du(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=Gs(o.opacity,s.opacity);return function(u){return o.r=i(u),o.g=a(u),o.b=l(u),o.opacity=c(u),o+""}}return r.gamma=e,r}(1);function Ru(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 Lu(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function zu(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 Hu(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function Be(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function Bu(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 Vu(e){return function(){return e}}function Fu(e){return function(t){return e(t)+""}}function qs(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:Be(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]?Fu(l[0].x):Vu(t):(t=l.length,function(c){for(var u=0,f;u<t;++u)a[(f=l[u]).i]=f.x(c);return a.join("")})}function Bt(e,t){var n=typeof t,r;return t==null||n==="boolean"?Or(t):(n==="number"?Be:n==="string"?(r=lt(t))?(t=r,Pn):qs:t instanceof lt?Pn:t instanceof Date?Hu:Lu(t)?Ru:Array.isArray(t)?zu:typeof t.valueOf!="function"&&typeof t.toString!="function"||isNaN(t)?Bu:Be)(e,t)}var No=180/Math.PI,Ar={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Us(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)*No,skewX:Math.atan(l)*No,scaleX:i,scaleY:a}}var yn;function Ou(e){const t=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?Ar:Us(t.a,t.b,t.c,t.d,t.e,t.f)}function Wu(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,Us(e.a,e.b,e.c,e.d,e.e,e.f))}function Zs(e,t,n,r){function o(c){return c.length?c.pop()+" ":""}function s(c,u,f,d,h,g){if(c!==f||u!==d){var v=h.push("translate(",null,t,null,n);g.push({i:v-4,x:Be(c,f)},{i:v-2,x:Be(u,d)})}else(f||d)&&h.push("translate("+f+t+d+n)}function i(c,u,f,d){c!==u?(c-u>180?u+=360:u-c>180&&(c+=360),d.push({i:f.push(o(f)+"rotate(",null,r)-2,x:Be(c,u)})):u&&f.push(o(f)+"rotate("+u+r)}function a(c,u,f,d){c!==u?d.push({i:f.push(o(f)+"skewX(",null,r)-2,x:Be(c,u)}):u&&f.push(o(f)+"skewX("+u+r)}function l(c,u,f,d,h,g){if(c!==f||u!==d){var v=h.push(o(h)+"scale(",null,",",null,")");g.push({i:v-4,x:Be(c,f)},{i:v-2,x:Be(u,d)})}else(f!==1||d!==1)&&h.push(o(h)+"scale("+f+","+d+")")}return function(c,u){var f=[],d=[];return c=e(c),u=e(u),s(c.translateX,c.translateY,u.translateX,u.translateY,f,d),i(c.rotate,u.rotate,f,d),a(c.skewX,u.skewX,f,d),l(c.scaleX,c.scaleY,u.scaleX,u.scaleY,f,d),c=u=null,function(h){for(var g=-1,v=d.length,w;++g<v;)f[(w=d[g]).i]=w.x(h);return f.join("")}}}var Yu=Zs(Ou,"px, ","px)","deg)"),Xu=Zs(Wu,", ",")",")"),Ku=1e-12;function So(e){return((e=Math.exp(e))+1/e)/2}function Gu(e){return((e=Math.exp(e))-1/e)/2}function qu(e){return((e=Math.exp(2*e))-1)/(e+1)}const kn=function e(t,n,r){function o(s,i){var a=s[0],l=s[1],c=s[2],u=i[0],f=i[1],d=i[2],h=u-a,g=f-l,v=h*h+g*g,w,y;if(v<Ku)y=Math.log(d/c)/t,w=function(A){return[a+A*h,l+A*g,c*Math.exp(t*A*y)]};else{var E=Math.sqrt(v),m=(d*d-c*c+r*v)/(2*c*n*E),b=(d*d-c*c-r*v)/(2*d*n*E),C=Math.log(Math.sqrt(m*m+1)-m),S=Math.log(Math.sqrt(b*b+1)-b);y=(S-C)/t,w=function(A){var P=A*y,I=So(C),O=c/(n*E)*(I*qu(t*P+C)-Gu(C));return[a+O*h,l+O*g,c*I/So(t*P+C)]}}return w.duration=y*1e3*t/Math.SQRT2,w}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 Nt=0,Lt=0,Tt=0,Qs=1e3,Tn,zt,Dn=0,ut=0,Wn=0,Yt=typeof performance=="object"&&performance.now?performance:Date,Js=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function Wr(){return ut||(Js(Uu),ut=Yt.now()+Wn)}function Uu(){ut=0}function Rn(){this._call=this._time=this._next=null}Rn.prototype=ei.prototype={constructor:Rn,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&&zt!==this&&(zt?zt._next=this:Tn=this,zt=this),this._call=e,this._time=n,$r()},stop:function(){this._call&&(this._call=null,this._time=1/0,$r())}};function ei(e,t,n){var r=new Rn;return r.restart(e,t,n),r}function Zu(){Wr(),++Nt;for(var e=Tn,t;e;)(t=ut-e._time)>=0&&e._call.call(void 0,t),e=e._next;--Nt}function ko(){ut=(Dn=Yt.now())+Wn,Nt=Lt=0;try{Zu()}finally{Nt=0,Ju(),ut=0}}function Qu(){var e=Yt.now(),t=e-Dn;t>Qs&&(Wn-=t,Dn=e)}function Ju(){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);zt=e,$r(r)}function $r(e){if(!Nt){Lt&&(Lt=clearTimeout(Lt));var t=e-ut;t>24?(e<1/0&&(Lt=setTimeout(ko,e-Yt.now()-Wn)),Tt&&(Tt=clearInterval(Tt))):(Tt||(Dn=Yt.now(),Tt=setInterval(Qu,Qs)),Nt=1,Js(ko))}}function Mo(e,t,n){var r=new Rn;return t=t==null?0:+t,r.restart(o=>{r.stop(),e(o+t)},t,n),r}var ed=Fn("start","end","cancel","interrupt"),td=[],ti=0,Co=1,Ir=2,Mn=3,Ao=4,jr=5,Cn=6;function Yn(e,t,n,r,o,s){var i=e.__transition;if(!i)e.__transition={};else if(n in i)return;nd(e,n,{name:t,index:r,group:o,on:ed,tween:td,time:s.time,delay:s.delay,duration:s.duration,ease:s.ease,timer:null,state:ti})}function Yr(e,t){var n=Le(e,t);if(n.state>ti)throw new Error("too late; already scheduled");return n}function Fe(e,t){var n=Le(e,t);if(n.state>Mn)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 nd(e,t,n){var r=e.__transition,o;r[t]=n,n.timer=ei(s,0,n.time);function s(c){n.state=Co,n.timer.restart(i,n.delay,n.time),n.delay<=c&&i(c-n.delay)}function i(c){var u,f,d,h;if(n.state!==Co)return l();for(u in r)if(h=r[u],h.name===n.name){if(h.state===Mn)return Mo(i);h.state===Ao?(h.state=Cn,h.timer.stop(),h.on.call("interrupt",e,e.__data__,h.index,h.group),delete r[u]):+u<t&&(h.state=Cn,h.timer.stop(),h.on.call("cancel",e,e.__data__,h.index,h.group),delete r[u])}if(Mo(function(){n.state===Mn&&(n.state=Ao,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=Mn,o=new Array(d=n.tween.length),u=0,f=-1;u<d;++u)(h=n.tween[u].value.call(e,e.__data__,n.index,n.group))&&(o[++f]=h);o.length=f+1}}function a(c){for(var u=c<n.duration?n.ease.call(null,c/n.duration):(n.timer.restart(l),n.state=jr,1),f=-1,d=o.length;++f<d;)o[f].call(e,u);n.state===jr&&(n.on.call("end",e,e.__data__,n.index,n.group),l())}function l(){n.state=Cn,n.timer.stop(),delete r[t];for(var c in r)return;delete e.__transition}}function An(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=Cn,r.timer.stop(),r.on.call(o?"interrupt":"cancel",e,e.__data__,r.index,r.group),delete n[i]}s&&delete e.__transition}}function rd(e){return this.each(function(){An(this,e)})}function od(e,t){var n,r;return function(){var o=Fe(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 sd(e,t,n){var r,o;if(typeof n!="function")throw new Error;return function(){var s=Fe(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 id(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?od:sd)(n,e,t))}function Xr(e,t,n){var r=e._id;return e.each(function(){var o=Fe(this,r);(o.value||(o.value={}))[t]=n.apply(this,arguments)}),function(o){return Le(o,r).value[t]}}function ni(e,t){var n;return(typeof t=="number"?Be:t instanceof lt?Pn:(n=lt(t))?(t=n,Pn):qs)(e,t)}function ad(e){return function(){this.removeAttribute(e)}}function cd(e){return function(){this.removeAttributeNS(e.space,e.local)}}function ld(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 ud(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 dd(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 fd(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 hd(e,t){var n=On(e),r=n==="transform"?Xu:ni;return this.attrTween(e,typeof t=="function"?(n.local?fd:dd)(n,r,Xr(this,"attr."+e,t)):t==null?(n.local?cd:ad)(n):(n.local?ud:ld)(n,r,t))}function gd(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function pd(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function md(e,t){var n,r;function o(){var s=t.apply(this,arguments);return s!==r&&(n=(r=s)&&pd(e,s)),n}return o._value=t,o}function yd(e,t){var n,r;function o(){var s=t.apply(this,arguments);return s!==r&&(n=(r=s)&&gd(e,s)),n}return o._value=t,o}function xd(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?md:yd)(r,t))}function wd(e,t){return function(){Yr(this,e).delay=+t.apply(this,arguments)}}function vd(e,t){return t=+t,function(){Yr(this,e).delay=t}}function bd(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?wd:vd)(t,e)):Le(this.node(),t).delay}function _d(e,t){return function(){Fe(this,e).duration=+t.apply(this,arguments)}}function Ed(e,t){return t=+t,function(){Fe(this,e).duration=t}}function Nd(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?_d:Ed)(t,e)):Le(this.node(),t).duration}function Sd(e,t){if(typeof t!="function")throw new Error;return function(){Fe(this,e).ease=t}}function kd(e){var t=this._id;return arguments.length?this.each(Sd(t,e)):Le(this.node(),t).ease}function Md(e,t){return function(){var n=t.apply(this,arguments);if(typeof n!="function")throw new Error;Fe(this,e).ease=n}}function Cd(e){if(typeof e!="function")throw new Error;return this.each(Md(this._id,e))}function Ad(e){typeof e!="function"&&(e=Ps(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 Ye(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],u=l.length,f=i[a]=new Array(u),d,h=0;h<u;++h)(d=l[h]||c[h])&&(f[h]=d);for(;a<r;++a)i[a]=t[a];return new Ye(i,this._parents,this._name,this._id)}function Id(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 jd(e,t,n){var r,o,s=Id(t)?Yr:Fe;return function(){var i=s(this,e),a=i.on;a!==r&&(o=(r=a).copy()).on(t,n),i.on=o}}function Pd(e,t){var n=this._id;return arguments.length<2?Le(this.node(),n).on.on(e):this.each(jd(n,e,t))}function Td(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function Dd(){return this.on("end.remove",Td(this._id))}function Rd(e){var t=this._name,n=this._id;typeof e!="function"&&(e=Br(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),u,f,d=0;d<l;++d)(u=a[d])&&(f=e.call(u,u.__data__,d,a))&&("__data__"in u&&(f.__data__=u.__data__),c[d]=f,Yn(c[d],t,n,d,c,Le(u,n)));return new Ye(s,this._parents,t,n)}function Ld(e){var t=this._name,n=this._id;typeof e!="function"&&(e=js(e));for(var r=this._groups,o=r.length,s=[],i=[],a=0;a<o;++a)for(var l=r[a],c=l.length,u,f=0;f<c;++f)if(u=l[f]){for(var d=e.call(u,u.__data__,f,l),h,g=Le(u,n),v=0,w=d.length;v<w;++v)(h=d[v])&&Yn(h,t,n,v,d,g);s.push(d),i.push(u)}return new Ye(s,i,t,n)}var zd=Qt.prototype.constructor;function Hd(){return new zd(this._groups,this._parents)}function Bd(e,t){var n,r,o;return function(){var s=Et(this,e),i=(this.style.removeProperty(e),Et(this,e));return s===i?null:s===n&&i===r?o:o=t(n=s,r=i)}}function ri(e){return function(){this.style.removeProperty(e)}}function Vd(e,t,n){var r,o=n+"",s;return function(){var i=Et(this,e);return i===o?null:i===r?s:s=t(r=i,n)}}function Fd(e,t,n){var r,o,s;return function(){var i=Et(this,e),a=n(this),l=a+"";return a==null&&(l=a=(this.style.removeProperty(e),Et(this,e))),i===l?null:i===r&&l===o?s:(o=l,s=t(r=i,a))}}function Od(e,t){var n,r,o,s="style."+t,i="end."+s,a;return function(){var l=Fe(this,e),c=l.on,u=l.value[s]==null?a||(a=ri(t)):void 0;(c!==n||o!==u)&&(r=(n=c).copy()).on(i,o=u),l.on=r}}function Wd(e,t,n){var r=(e+="")=="transform"?Yu:ni;return t==null?this.styleTween(e,Bd(e,r)).on("end.style."+e,ri(e)):typeof t=="function"?this.styleTween(e,Fd(e,r,Xr(this,"style."+e,t))).each(Od(this._id,e)):this.styleTween(e,Vd(e,r,t),n).on("end.style."+e,null)}function Yd(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}function Xd(e,t,n){var r,o;function s(){var i=t.apply(this,arguments);return i!==o&&(r=(o=i)&&Yd(e,i,n)),r}return s._value=t,s}function Kd(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,Xd(e,t,n??""))}function Gd(e){return function(){this.textContent=e}}function qd(e){return function(){var t=e(this);this.textContent=t??""}}function Ud(e){return this.tween("text",typeof e=="function"?qd(Xr(this,"text",e)):Gd(e==null?"":e+""))}function Zd(e){return function(t){this.textContent=e.call(this,t)}}function Qd(e){var t,n;function r(){var o=e.apply(this,arguments);return o!==n&&(t=(n=o)&&Zd(o)),t}return r._value=e,r}function Jd(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,Qd(e))}function ef(){for(var e=this._name,t=this._id,n=oi(),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 u=Le(l,t);Yn(l,e,n,c,i,{time:u.time+u.delay+u.duration,delay:0,duration:u.duration,ease:u.ease})}return new Ye(r,this._parents,e,n)}function tf(){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=Fe(this,r),u=c.on;u!==e&&(t=(e=u).copy(),t._.cancel.push(a),t._.interrupt.push(a),t._.end.push(l)),c.on=t}),o===0&&s()})}var nf=0;function Ye(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}function oi(){return++nf}var Oe=Qt.prototype;Ye.prototype={constructor:Ye,select:Rd,selectAll:Ld,selectChild:Oe.selectChild,selectChildren:Oe.selectChildren,filter:Ad,merge:$d,selection:Hd,transition:ef,call:Oe.call,nodes:Oe.nodes,node:Oe.node,size:Oe.size,empty:Oe.empty,each:Oe.each,on:Pd,attr:hd,attrTween:xd,style:Wd,styleTween:Kd,text:Ud,textTween:Jd,remove:Dd,tween:id,delay:bd,duration:Nd,ease:kd,easeVarying:Cd,end:tf,[Symbol.iterator]:Oe[Symbol.iterator]};function rf(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var of={time:null,delay:0,duration:250,ease:rf};function sf(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 af(e){var t,n;e instanceof Ye?(t=e._id,e=e._name):(t=oi(),(n=of).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||sf(l,t));return new Ye(r,this._parents,e,t)}Qt.prototype.interrupt=rd;Qt.prototype.transition=af;const xn=e=>()=>e;function cf(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 We(e,t,n){this.k=e,this.x=t,this.y=n}We.prototype={constructor:We,scale:function(e){return e===1?this:new We(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new We(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 We(1,0,0);si.prototype=We.prototype;function si(e){for(;!e.__zoom;)if(!(e=e.parentNode))return Xn;return e.__zoom}function dr(e){e.stopImmediatePropagation()}function Dt(e){e.preventDefault(),e.stopImmediatePropagation()}function lf(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function uf(){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 $o(){return this.__zoom||Xn}function df(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function ff(){return navigator.maxTouchPoints||"ontouchstart"in this}function hf(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 ii(){var e=lf,t=uf,n=hf,r=df,o=ff,s=[0,1/0],i=[[-1/0,-1/0],[1/0,1/0]],a=250,l=kn,c=Fn("start","zoom","end"),u,f,d,h=500,g=150,v=0,w=10;function y(x){x.property("__zoom",$o).on("wheel.zoom",P,{passive:!1}).on("mousedown.zoom",I).on("dblclick.zoom",O).filter(o).on("touchstart.zoom",T).on("touchmove.zoom",F).on("touchend.zoom touchcancel.zoom",L).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}y.transform=function(x,k,N,M){var D=x.selection?x.selection():x;D.property("__zoom",$o),x!==D?C(x,k,N,M):D.interrupt().each(function(){S(this,arguments).event(M).start().zoom(null,typeof k=="function"?k.apply(this,arguments):k).end()})},y.scaleBy=function(x,k,N,M){y.scaleTo(x,function(){var D=this.__zoom.k,$=typeof k=="function"?k.apply(this,arguments):k;return D*$},N,M)},y.scaleTo=function(x,k,N,M){y.transform(x,function(){var D=t.apply(this,arguments),$=this.__zoom,R=N==null?b(D):typeof N=="function"?N.apply(this,arguments):N,V=$.invert(R),B=typeof k=="function"?k.apply(this,arguments):k;return n(m(E($,B),R,V),D,i)},N,M)},y.translateBy=function(x,k,N,M){y.transform(x,function(){return n(this.__zoom.translate(typeof k=="function"?k.apply(this,arguments):k,typeof N=="function"?N.apply(this,arguments):N),t.apply(this,arguments),i)},null,M)},y.translateTo=function(x,k,N,M,D){y.transform(x,function(){var $=t.apply(this,arguments),R=this.__zoom,V=M==null?b($):typeof M=="function"?M.apply(this,arguments):M;return n(Xn.translate(V[0],V[1]).scale(R.k).translate(typeof k=="function"?-k.apply(this,arguments):-k,typeof N=="function"?-N.apply(this,arguments):-N),$,i)},M,D)};function E(x,k){return k=Math.max(s[0],Math.min(s[1],k)),k===x.k?x:new We(k,x.x,x.y)}function m(x,k,N){var M=k[0]-N[0]*x.k,D=k[1]-N[1]*x.k;return M===x.x&&D===x.y?x:new We(x.k,M,D)}function b(x){return[(+x[0][0]+ +x[1][0])/2,(+x[0][1]+ +x[1][1])/2]}function C(x,k,N,M){x.on("start.zoom",function(){S(this,arguments).event(M).start()}).on("interrupt.zoom end.zoom",function(){S(this,arguments).event(M).end()}).tween("zoom",function(){var D=this,$=arguments,R=S(D,$).event(M),V=t.apply(D,$),B=N==null?b(V):typeof N=="function"?N.apply(D,$):N,X=Math.max(V[1][0]-V[0][0],V[1][1]-V[0][1]),G=D.__zoom,ne=typeof k=="function"?k.apply(D,$):k,re=l(G.invert(B).concat(X/G.k),ne.invert(B).concat(X/ne.k));return function(J){if(J===1)J=ne;else{var H=re(J),W=X/H[2];J=new We(W,B[0]-H[0]*W,B[1]-H[1]*W)}R.zoom(null,J)}})}function S(x,k,N){return!N&&x.__zooming||new A(x,k)}function A(x,k){this.that=x,this.args=k,this.active=0,this.sourceEvent=null,this.extent=t.apply(x,k),this.taps=0}A.prototype={event:function(x){return x&&(this.sourceEvent=x),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(x,k){return this.mouse&&x!=="mouse"&&(this.mouse[1]=k.invert(this.mouse[0])),this.touch0&&x!=="touch"&&(this.touch0[1]=k.invert(this.touch0[0])),this.touch1&&x!=="touch"&&(this.touch1[1]=k.invert(this.touch1[0])),this.that.__zoom=k,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(x){var k=Se(this.that).datum();c.call(x,this.that,new cf(x,{sourceEvent:this.sourceEvent,target:y,transform:this.that.__zoom,dispatch:c}),k)}};function P(x,...k){if(!e.apply(this,arguments))return;var N=S(this,k).event(x),M=this.__zoom,D=Math.max(s[0],Math.min(s[1],M.k*Math.pow(2,r.apply(this,arguments)))),$=je(x);if(N.wheel)(N.mouse[0][0]!==$[0]||N.mouse[0][1]!==$[1])&&(N.mouse[1]=M.invert(N.mouse[0]=$)),clearTimeout(N.wheel);else{if(M.k===D)return;N.mouse=[$,M.invert($)],An(this),N.start()}Dt(x),N.wheel=setTimeout(R,g),N.zoom("mouse",n(m(E(M,D),N.mouse[0],N.mouse[1]),N.extent,i));function R(){N.wheel=null,N.end()}}function I(x,...k){if(d||!e.apply(this,arguments))return;var N=x.currentTarget,M=S(this,k,!0).event(x),D=Se(x.view).on("mousemove.zoom",B,!0).on("mouseup.zoom",X,!0),$=je(x,N),R=x.clientX,V=x.clientY;Os(x.view),dr(x),M.mouse=[$,this.__zoom.invert($)],An(this),M.start();function B(G){if(Dt(G),!M.moved){var ne=G.clientX-R,re=G.clientY-V;M.moved=ne*ne+re*re>v}M.event(G).zoom("mouse",n(m(M.that.__zoom,M.mouse[0]=je(G,N),M.mouse[1]),M.extent,i))}function X(G){D.on("mousemove.zoom mouseup.zoom",null),Ws(G.view,M.moved),Dt(G),M.event(G).end()}}function O(x,...k){if(e.apply(this,arguments)){var N=this.__zoom,M=je(x.changedTouches?x.changedTouches[0]:x,this),D=N.invert(M),$=N.k*(x.shiftKey?.5:2),R=n(m(E(N,$),M,D),t.apply(this,k),i);Dt(x),a>0?Se(this).transition().duration(a).call(C,R,M,x):Se(this).call(y.transform,R,M,x)}}function T(x,...k){if(e.apply(this,arguments)){var N=x.touches,M=N.length,D=S(this,k,x.changedTouches.length===M).event(x),$,R,V,B;for(dr(x),R=0;R<M;++R)V=N[R],B=je(V,this),B=[B,this.__zoom.invert(B),V.identifier],D.touch0?!D.touch1&&D.touch0[2]!==B[2]&&(D.touch1=B,D.taps=0):(D.touch0=B,$=!0,D.taps=1+!!u);u&&(u=clearTimeout(u)),$&&(D.taps<2&&(f=B[0],u=setTimeout(function(){u=null},h)),An(this),D.start())}}function F(x,...k){if(this.__zooming){var N=S(this,k).event(x),M=x.changedTouches,D=M.length,$,R,V,B;for(Dt(x),$=0;$<D;++$)R=M[$],V=je(R,this),N.touch0&&N.touch0[2]===R.identifier?N.touch0[0]=V:N.touch1&&N.touch1[2]===R.identifier&&(N.touch1[0]=V);if(R=N.that.__zoom,N.touch1){var X=N.touch0[0],G=N.touch0[1],ne=N.touch1[0],re=N.touch1[1],J=(J=ne[0]-X[0])*J+(J=ne[1]-X[1])*J,H=(H=re[0]-G[0])*H+(H=re[1]-G[1])*H;R=E(R,Math.sqrt(J/H)),V=[(X[0]+ne[0])/2,(X[1]+ne[1])/2],B=[(G[0]+re[0])/2,(G[1]+re[1])/2]}else if(N.touch0)V=N.touch0[0],B=N.touch0[1];else return;N.zoom("touch",n(m(R,V,B),N.extent,i))}}function L(x,...k){if(this.__zooming){var N=S(this,k).event(x),M=x.changedTouches,D=M.length,$,R;for(dr(x),d&&clearTimeout(d),d=setTimeout(function(){d=null},h),$=0;$<D;++$)R=M[$],N.touch0&&N.touch0[2]===R.identifier?delete N.touch0:N.touch1&&N.touch1[2]===R.identifier&&delete N.touch1;if(N.touch1&&!N.touch0&&(N.touch0=N.touch1,delete N.touch1),N.touch0)N.touch0[1]=this.__zoom.invert(N.touch0[0]);else if(N.end(),N.taps===2&&(R=je(R,this),Math.hypot(f[0]-R[0],f[1]-R[1])<w)){var V=Se(this).on("dblclick.zoom");V&&V.apply(this,arguments)}}}return y.wheelDelta=function(x){return arguments.length?(r=typeof x=="function"?x:xn(+x),y):r},y.filter=function(x){return arguments.length?(e=typeof x=="function"?x:xn(!!x),y):e},y.touchable=function(x){return arguments.length?(o=typeof x=="function"?x:xn(!!x),y):o},y.extent=function(x){return arguments.length?(t=typeof x=="function"?x:xn([[+x[0][0],+x[0][1]],[+x[1][0],+x[1][1]]]),y):t},y.scaleExtent=function(x){return arguments.length?(s[0]=+x[0],s[1]=+x[1],y):[s[0],s[1]]},y.translateExtent=function(x){return arguments.length?(i[0][0]=+x[0][0],i[1][0]=+x[1][0],i[0][1]=+x[0][1],i[1][1]=+x[1][1],y):[[i[0][0],i[0][1]],[i[1][0],i[1][1]]]},y.constrain=function(x){return arguments.length?(n=x,y):n},y.duration=function(x){return arguments.length?(a=+x,y):a},y.interpolate=function(x){return arguments.length?(l=x,y):l},y.on=function(){var x=c.on.apply(c,arguments);return x===c?y:x},y.clickDistance=function(x){return arguments.length?(v=(x=+x)*x,y):Math.sqrt(v)},y.tapDistance=function(x){return arguments.length?(w=+x,y):w},y}const Re={error001:(e="react")=>`Seems like you have not used ${e==="svelte"?"SvelteFlowProvider":"ReactFlowProvider"} 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.`},Xt=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],ai=["Enter"," ","Escape"],ci={"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 St;(function(e){e.Strict="strict",e.Loose="loose"})(St||(St={}));var at;(function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"})(at||(at={}));var Kt;(function(e){e.Partial="partial",e.Full="full"})(Kt||(Kt={}));const li={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null};var Ue;(function(e){e.Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier"})(Ue||(Ue={}));var Gt;(function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"})(Gt||(Gt={}));var Q;(function(e){e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom"})(Q||(Q={}));const Io={[Q.Left]:Q.Right,[Q.Right]:Q.Left,[Q.Top]:Q.Bottom,[Q.Bottom]:Q.Top};function ui(e){return e===null?null:e?"valid":"invalid"}const di=e=>!!e&&typeof e=="object"&&"id"in e&&"source"in e&&"target"in e,gf=e=>!!e&&typeof e=="object"&&"id"in e&&"position"in e&&!("source"in e)&&!("target"in e),Kr=e=>!!e&&typeof e=="object"&&"id"in e&&"internals"in e&&!("source"in e)&&!("target"in e),en=(e,t=[0,0])=>{const{width:n,height:r}=ze(e),o=e.origin??t,s=n*o[0],i=r*o[1];return{x:e.position.x-s,y:e.position.y-i}},pf=(e,t={nodeOrigin:[0,0]})=>{if(e.length===0)return{x:0,y:0,width:0,height:0};let n=!1;const r=e.reduce((o,s)=>{const i=typeof s=="string";let a=!t.nodeLookup&&!i?s:void 0;return t.nodeLookup&&(a=i?t.nodeLookup.get(s):Kr(s)?s:t.nodeLookup.get(s.id)),a?(n=!0,Kn(o,Ln(a,t.nodeOrigin))):o},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return n?Gn(r):{x:0,y:0,width:0,height:0}},tn=(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,Ln(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.x-n)/o,l=(t.y-r)/o,c=t.width/o,u=t.height/o,f=[];for(const d of e.values()){const{measured:h,selectable:g=!0,hidden:v=!1}=d;if(i&&!g||v)continue;const w=h.width??d.width??d.initialWidth??0,y=h.height??d.height??d.initialHeight??0,{x:E,y:m}=d.internals.positionAbsolute,b=pi(a,l,c,u,E,m,w,y),C=w*y,S=s&&b>0;(!d.internals.handleBounds||S||b>=C||d.dragging)&&f.push(d)}return f},mf=(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 yf(e,t){const n=new Map,r=t!=null&&t.nodes?new Set(t.nodes.map(o=>o.id)):null;return e.forEach(o=>{let s;if(t!=null&&t.includeHiddenNodes){const{width:i,height:a}=ze(o);s=i>0&&a>0}else s=!!(o.measured.width&&o.measured.height&&!o.hidden);s&&(!r||r.has(o.id))&&n.set(o.id,o)}),n}async function xf({nodes:e,width:t,height:n,panZoom:r,minZoom:o,maxZoom:s},i){if(e.size===0)return!0;const a=yf(e,i),l=tn(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 fi({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},u=i.origin??r;let f=i.extent||o;if(i.extent==="parent"&&!i.expandParent)if(!a)s==null||s("005",Re.error005());else{const{width:h,height:g}=ze(a);h&&g&&(f=[[l,c],[l+h,c+g]])}else a&&ft(i.extent)&&(f=[[i.extent[0][0]+l,i.extent[0][1]+c],[i.extent[1][0]+l,i.extent[1][1]+c]]);const d=ft(f)?dt(t,f,i.measured):t;return(i.measured.width===void 0||i.measured.height===void 0)&&(s==null||s("015",Re.error015())),{position:{x:d.x-l+(i.measured.width??0)*u[0],y:d.y-c+(i.measured.height??0)*u[1]},positionAbsolute:d}}async function wf({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:r,onBeforeDelete:o}){const s=new Set(e.map(d=>d.id)),i=[];for(const d of n){if(d.deletable===!1)continue;const h=s.has(d.id),g=!h&&d.parentId&&i.find(v=>v.id===d.parentId);(h||g)&&i.push(d)}const a=new Set(t.map(d=>d.id)),l=r.filter(d=>d.deletable!==!1),u=mf(i,l);for(const d of l)a.has(d.id)&&!u.find(g=>g.id===d.id)&&u.push(d);if(!o)return{edges:u,nodes:i};const f=await o({nodes:i,edges:u});return typeof f=="boolean"?f?{edges:u,nodes:i}:{edges:[],nodes:[]}:f}const kt=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),dt=(e={x:0,y:0},t,n)=>({x:kt(e.x,t[0][0],t[1][0]-((n==null?void 0:n.width)??0)),y:kt(e.y,t[0][1],t[1][1]-((n==null?void 0:n.height)??0))});function hi(e,t,n){const{width:r,height:o}=ze(n),{x:s,y:i}=n.internals.positionAbsolute;return dt(e,[[s,i],[s+r,i+o]],t)}const jo=(e,t,n)=>e<t?kt(Math.abs(e-t),1,t)/t:e>n?-kt(Math.abs(e-n),1,t)/t:0,qr=(e,t,n=15,r=40)=>{const o=jo(e.x,r,t.width-r)*n,s=jo(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}),qt=(e,t=[0,0])=>{var o,s;const{x:n,y:r}=Kr(e)?e.internals.positionAbsolute:en(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}},Ln=(e,t=[0,0])=>{var o,s;const{x:n,y:r}=Kr(e)?e.internals.positionAbsolute:en(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)}},gi=(e,t)=>Gn(Kn(Pr(e),Pr(t))),pi=(e,t,n,r,o,s,i,a)=>{const l=Math.max(0,Math.min(e+n,o+i)-Math.max(e,o)),c=Math.max(0,Math.min(t+r,s+a)-Math.max(t,s));return Math.ceil(l*c)},zn=(e,t)=>pi(e.x,e.y,e.width,e.height,t.x,t.y,t.width,t.height),Po=e=>Te(e.width)&&Te(e.height)&&Te(e.x)&&Te(e.y),Te=e=>!isNaN(e)&&isFinite(e),mi=(e,t)=>(n,r)=>{},nn=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),rn=({x:e,y:t},[n,r,o],s=!1,i=[1,1])=>{const a={x:(e-n)/o,y:(t-r)/o};return s?nn(a,i):a},Mt=({x:e,y:t},[n,r,o])=>({x:e*o+n,y:t*o+r});function xt(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 vf(e,t,n){if(typeof e=="string"||typeof e=="number"){const r=xt(e,n),o=xt(e,t);return{top:r,right:o,bottom:r,left:o,x:o*2,y:r*2}}if(typeof e=="object"){const r=xt(e.top??e.y??0,n),o=xt(e.bottom??e.y??0,n),s=xt(e.left??e.x??0,t),i=xt(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 bf(e,t,n,r,o,s){const{x:i,y:a}=Mt(e,[t,n,r]),{x:l,y:c}=Mt({x:e.x+e.width,y:e.y+e.height},[t,n,r]),u=o-l,f=s-c;return{left:Math.floor(i),top:Math.floor(a),right:Math.floor(u),bottom:Math.floor(f)}}const Ur=(e,t,n,r,o,s)=>{const i=vf(s,t,n),a=(t-i.x)/e.width,l=(n-i.y)/e.height,c=Math.min(a,l),u=kt(c,r,o),f=e.x+e.width/2,d=e.y+e.height/2,h=t/2-f*u,g=n/2-d*u,v=bf(e,h,g,u,t,n),w={left:Math.min(v.left-i.left,0),top:Math.min(v.top-i.top,0),right:Math.min(v.right-i.right,0),bottom:Math.min(v.bottom-i.bottom,0)};return{x:h-w.left+w.right,y:g-w.top+w.bottom,zoom:u}},Ut=()=>{var e;return typeof navigator<"u"&&((e=navigator==null?void 0:navigator.userAgent)==null?void 0:e.indexOf("Mac"))>=0};function ft(e){return e!=null&&e!=="parent"}function ze(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 yi(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 xi(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 To(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function _f(){let e,t;return{promise:new Promise((r,o)=>{e=r,t=o}),resolve:e,reject:t}}function Ef(e){return{...ci,...e||{}}}function Vt(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:r,containerBounds:o}){const{x:s,y:i}=De(e),a=rn({x:s-((o==null?void 0:o.left)??0),y:i-((o==null?void 0:o.top)??0)},r),{x:l,y:c}=n?nn(a,t):a;return{xSnapped:l,ySnapped:c,...a}}const Zr=e=>({width:e.offsetWidth,height:e.offsetHeight}),wi=e=>{var t;return((t=e==null?void 0:e.getRootNode)==null?void 0:t.call(e))||(window==null?void 0:window.document)},Nf=["INPUT","SELECT","TEXTAREA"];function vi(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:Nf.includes(t.nodeName)||t.hasAttribute("contenteditable")||!!t.closest(".nokey")}const bi=e=>"clientX"in e,De=(e,t)=>{var s,i;const n=bi(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)}},Do=(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 _i({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,u=Math.abs(l-e),f=Math.abs(c-t);return[l,c,u,f]}function wn(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function Ro({pos:e,x1:t,y1:n,x2:r,y2:o,c:s}){switch(e){case Q.Left:return[t-wn(t-r,s),n];case Q.Right:return[t+wn(r-t,s),n];case Q.Top:return[t,n-wn(n-o,s)];case Q.Bottom:return[t,n+wn(o-n,s)]}}function Ei({sourceX:e,sourceY:t,sourcePosition:n=Q.Bottom,targetX:r,targetY:o,targetPosition:s=Q.Top,curvature:i=.25}){const[a,l]=Ro({pos:n,x1:e,y1:t,x2:r,y2:o,c:i}),[c,u]=Ro({pos:s,x1:r,y1:o,x2:e,y2:t,c:i}),[f,d,h,g]=_i({sourceX:e,sourceY:t,targetX:r,targetY:o,sourceControlX:a,sourceControlY:l,targetControlX:c,targetControlY:u});return[`M${e},${t} C${a},${l} ${c},${u} ${r},${o}`,f,d,h,g]}function Ni({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 Sf({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 kf({sourceNode:e,targetNode:t,width:n,height:r,transform:o}){const s=Kn(Ln(e),Ln(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 zn(i,Gn(s))>0}const Mf=({source:e,sourceHandle:t,target:n,targetHandle:r})=>`xy-edge__${e}${t||""}-${n}${r||""}`,Cf=(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)),Af=(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||Mf;let o;return di(e)?o={...e}:o={...e,id:r(e)},Cf(o,t)?t:(o.sourceHandle===null&&delete o.sourceHandle,o.targetHandle===null&&delete o.targetHandle,t.concat(o))};function Si({sourceX:e,sourceY:t,targetX:n,targetY:r}){const[o,s,i,a]=Ni({sourceX:e,sourceY:t,targetX:n,targetY:r});return[`M ${e},${t}L ${n},${r}`,o,s,i,a]}const Lo={[Q.Left]:{x:-1,y:0},[Q.Right]:{x:1,y:0},[Q.Top]:{x:0,y:-1},[Q.Bottom]:{x:0,y:1}},$f=({source:e,sourcePosition:t=Q.Bottom,target:n})=>t===Q.Left||t===Q.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},zo=(e,t)=>Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2));function If({source:e,sourcePosition:t=Q.Bottom,target:n,targetPosition:r=Q.Top,center:o,offset:s,stepPosition:i}){const a=Lo[t],l=Lo[r],c={x:e.x+a.x*s,y:e.y+a.y*s},u={x:n.x+l.x*s,y:n.y+l.y*s},f=$f({source:c,sourcePosition:t,target:u}),d=f.x!==0?"x":"y",h=f[d];let g=[],v,w;const y={x:0,y:0},E={x:0,y:0},[,,m,b]=Ni({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(a[d]*l[d]===-1){d==="x"?(v=o.x??c.x+(u.x-c.x)*i,w=o.y??(c.y+u.y)/2):(v=o.x??(c.x+u.x)/2,w=o.y??c.y+(u.y-c.y)*i);const P=[{x:v,y:c.y},{x:v,y:u.y}],I=[{x:c.x,y:w},{x:u.x,y:w}];a[d]===h?g=d==="x"?P:I:g=d==="x"?I:P}else{const P=[{x:c.x,y:u.y}],I=[{x:u.x,y:c.y}];if(d==="x"?g=a.x===h?I:P:g=a.y===h?P:I,t===r){const x=Math.abs(e[d]-n[d]);if(x<=s){const k=Math.min(s-1,s-x);a[d]===h?y[d]=(c[d]>e[d]?-1:1)*k:E[d]=(u[d]>n[d]?-1:1)*k}}if(t!==r){const x=d==="x"?"y":"x",k=a[d]===l[x],N=c[x]>u[x],M=c[x]<u[x];(a[d]===1&&(!k&&N||k&&M)||a[d]!==1&&(!k&&M||k&&N))&&(g=d==="x"?P:I)}const O={x:c.x+y.x,y:c.y+y.y},T={x:u.x+E.x,y:u.y+E.y},F=Math.max(Math.abs(O.x-g[0].x),Math.abs(T.x-g[0].x)),L=Math.max(Math.abs(O.y-g[0].y),Math.abs(T.y-g[0].y));F>=L?(v=(O.x+T.x)/2,w=g[0].y):(v=g[0].x,w=(O.y+T.y)/2)}const C={x:c.x+y.x,y:c.y+y.y},S={x:u.x+E.x,y:u.y+E.y};return[[e,...C.x!==g[0].x||C.y!==g[0].y?[C]:[],...g,...S.x!==g[g.length-1].x||S.y!==g[g.length-1].y?[S]:[],n],v,w,m,b]}function jf(e,t,n,r){const o=Math.min(zo(e,t)/2,zo(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,u=e.y<n.y?1:-1;return`L ${s+o*c},${i}Q ${s},${i} ${s},${i+o*u}`}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 Tr({sourceX:e,sourceY:t,sourcePosition:n=Q.Bottom,targetX:r,targetY:o,targetPosition:s=Q.Top,borderRadius:i=5,centerX:a,centerY:l,offset:c=20,stepPosition:u=.5}){const[f,d,h,g,v]=If({source:{x:e,y:t},sourcePosition:n,target:{x:r,y:o},targetPosition:s,center:{x:a,y:l},offset:c,stepPosition:u});let w=`M${f[0].x} ${f[0].y}`;for(let y=1;y<f.length-1;y++)w+=jf(f[y-1],f[y],f[y+1],i);return w+=`L${f[f.length-1].x} ${f[f.length-1].y}`,[w,d,h,g,v]}function Ho(e){var t;return e&&!!(e.internals.handleBounds||(t=e.handles)!=null&&t.length)&&!!(e.measured.width||e.width||e.initialWidth)}function Pf(e){var f;const{sourceNode:t,targetNode:n}=e;if(!Ho(t)||!Ho(n))return null;const r=t.internals.handleBounds||Bo(t.handles),o=n.internals.handleBounds||Bo(n.handles),s=Vo((r==null?void 0:r.source)??[],e.sourceHandle),i=Vo(e.connectionMode===St.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(f=e.onError)==null||f.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)||Q.Bottom,l=(i==null?void 0:i.position)||Q.Top,c=ht(t,s,a),u=ht(n,i,l);return{sourceX:c.x,sourceY:c.y,targetX:u.x,targetY:u.y,sourcePosition:a,targetPosition:l}}function Bo(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 ht(e,t,n=Q.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??ze(e);if(r)return{x:o+i/2,y:s+a/2};switch((t==null?void 0:t.position)??n){case Q.Top:return{x:o+i/2,y:s};case Q.Right:return{x:o+i,y:s+a/2};case Q.Bottom:return{x:o+i/2,y:s+a};case Q.Left:return{x:o,y:s+a/2}}}function Vo(e,t){return e&&(t?e.find(n=>n.id===t):e[0])||null}function Dr(e,t){return e?typeof e=="string"?e:`${t?`${t}__`:""}${Object.keys(e).sort().map(r=>`${r}=${e[r]}`).join("&")}`:""}function Tf(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=Dr(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 ki=1e3,Df=10,Qr={nodeOrigin:[0,0],nodeExtent:Xt,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},Rf={...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 Lf(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=en(o,r.nodeOrigin),i=ft(o.extent)?o.extent:r.nodeExtent,a=dt(s,i,ze(o));o.internals.positionAbsolute=a}}function zf(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 u,f;const o=Jr(Rf,r),s={i:0},i=new Map(t),a=o!=null&&o.elevateNodesOnSelect&&!eo(o.zIndexMode)?ki:0;let l=e.length>0,c=!1;t.clear(),n.clear();for(const d of e){let h=i.get(d.id);if(o.checkEquality&&d===(h==null?void 0:h.internals.userNode))t.set(d.id,h);else{const g=en(d,o.nodeOrigin),v=ft(d.extent)?d.extent:o.nodeExtent,w=dt(g,v,ze(d));h={...o.defaults,...d,measured:{width:(u=d.measured)==null?void 0:u.width,height:(f=d.measured)==null?void 0:f.height},internals:{positionAbsolute:w,handleBounds:zf(d,h),z:Mi(d,a,o.zIndexMode),userNode:d}},t.set(d.id,h)}(h.measured===void 0||h.measured.width===void 0||h.measured.height===void 0)&&!h.hidden&&(l=!1),d.parentId&&to(h,t,n,r,s),c||(c=d.selected??!1)}return{nodesInitialized:l,hasSelectedNodes:c}}function Hf(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,u=t.get(c);if(!u){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}Hf(e,n),o&&!u.parentId&&u.internals.rootParentIndex===void 0&&l==="auto"&&(u.internals.rootParentIndex=++o.i,u.internals.z=u.internals.z+o.i*Df),o&&u.internals.rootParentIndex!==void 0&&(o.i=u.internals.rootParentIndex);const f=s&&!eo(l)?ki:0,{x:d,y:h,z:g}=Bf(e,u,i,a,f,l),{positionAbsolute:v}=e.internals,w=d!==v.x||h!==v.y;(w||g!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:w?{x:d,y:h}:v,z:g}})}function Mi(e,t,n){const r=Te(e.zIndex)?e.zIndex:0;return eo(n)?r:r+(e.selected?t:0)}function Bf(e,t,n,r,o,s){const{x:i,y:a}=t.internals.positionAbsolute,l=ze(e),c=en(e,n),u=ft(e.extent)?dt(c,e.extent,l):c;let f=dt({x:i+u.x,y:a+u.y},r,l);e.extent==="parent"&&(f=hi(f,l,t));const d=Mi(e,o,s),h=t.internals.z??0;return{x:f.x,y:f.y,z:h>=d?h+1:d}}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)??qt(l),u=gi(c,a.rect);s.set(a.parentId,{expandedRect:u,parent:l})}return s.size>0&&s.forEach(({expandedRect:a,parent:l},c)=>{var m;const u=l.internals.positionAbsolute,f=ze(l),d=l.origin??r,h=a.x<u.x?Math.round(Math.abs(u.x-a.x)):0,g=a.y<u.y?Math.round(Math.abs(u.y-a.y)):0,v=Math.max(f.width,Math.round(a.width)),w=Math.max(f.height,Math.round(a.height)),y=(v-f.width)*d[0],E=(w-f.height)*d[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(b=>{e.some(C=>C.id===b.id)||o.push({id:b.id,type:"position",position:{x:b.position.x+h,y:b.position.y+g}})})),(f.width<a.width||f.height<a.height||h||g)&&o.push({id:c,type:"dimensions",setAttributes:!0,dimensions:{width:v+(h?d[0]*h-y:0),height:w+(g?d[1]*g-E:0)}})}),o}function Vf(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=[],u=window.getComputedStyle(a),{m22:f}=new window.DOMMatrixReadOnly(u.transform),d=[];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 v=Zr(h.nodeElement),w=g.measured.width!==v.width||g.measured.height!==v.height;if(!!(v.width&&v.height&&(w||!g.internals.handleBounds||h.force))){const E=h.nodeElement.getBoundingClientRect(),m=ft(g.extent)?g.extent:s;let{positionAbsolute:b}=g.internals;if(g.parentId&&g.extent==="parent"){const S=t.get(g.parentId);S&&(b=hi(b,v,S))}else m&&(b=dt(b,m,v));const C={...g,measured:v,internals:{...g.internals,positionAbsolute:b,handleBounds:{source:Do("source",h.nodeElement,E,f,g.id),target:Do("target",h.nodeElement,E,f,g.id)}}};t.set(g.id,C),g.parentId&&to(C,t,n,{nodeOrigin:o,zIndexMode:i}),l=!0,w&&(c.push({id:g.id,type:"dimensions",dimensions:v}),g.expandParent&&g.parentId&&d.push({id:g.id,parentId:g.parentId,rect:qt(C,o)}))}}if(d.length>0){const h=no(d,t,n,o);c.push(...h)}return{changes:c,updatedInternals:l}}async function Ff({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 Fo(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 Ci(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}`,u=`${s}-${a}--${o}-${i}`;Fo("source",l,u,e,o,i),Fo("target",l,c,e,s,a),t.set(r.id,r)}}function Ai(e,t){if(!e.parentId)return!1;const n=t.get(e.parentId);return n?n.selected?!0:Ai(n,t):!1}function Oo(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 Of(e,t,n,r){const o=new Map;for(const[s,i]of e)if((i.selected||i.id===r)&&(!i.parentId||!Ai(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,u]of t){const f=(i=n.get(c))==null?void 0:i.internals.userNode;f&&o.push({...f,position:u.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 Wf({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=nn(s,t);return{x:i.x-s.x,y:i.y-s.y}}function Yf({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},u=null,f=!1,d=null,h=!1,g=!1,v=null;function w({noDragClassName:E,handleSelector:m,domNode:b,isSelectable:C,nodeId:S,nodeClickDistance:A=0}){d=Se(b);function P({x:F,y:L}){const{nodeLookup:x,nodeExtent:k,snapGrid:N,snapToGrid:M,nodeOrigin:D,onNodeDrag:$,onSelectionDrag:R,onError:V,updateNodePositions:B}=t();s={x:F,y:L};let X=!1;const G=a.size>1,ne=G&&k?Pr(tn(a)):null,re=G&&M?Wf({dragItems:a,snapGrid:N,x:F,y:L}):null;for(const[J,H]of a){if(!x.has(J))continue;let W={x:F-H.distance.x,y:L-H.distance.y};M&&(W=re?{x:Math.round(W.x+re.x),y:Math.round(W.y+re.y)}:nn(W,N));let ee=null;if(G&&k&&!H.extent&&ne){const{positionAbsolute:Y}=H.internals,oe=Y.x-ne.x+k[0][0],K=Y.x+H.measured.width-ne.x2+k[1][0],ie=Y.y-ne.y+k[0][1],ce=Y.y+H.measured.height-ne.y2+k[1][1];ee=[[oe,ie],[K,ce]]}const{position:te,positionAbsolute:Z}=fi({nodeId:J,nextPosition:W,nodeLookup:x,nodeExtent:ee||k,nodeOrigin:D,onError:V});X=X||H.position.x!==te.x||H.position.y!==te.y,H.position=te,H.internals.positionAbsolute=Z}if(g=g||X,!!X&&(B(a,!0),v&&(r||$||!S&&R))){const[J,H]=fr({nodeId:S,dragItems:a,nodeLookup:x});r==null||r(v,a,J,H),$==null||$(v,J,H),S||R==null||R(v,H)}}async function I(){if(!u)return;const{transform:F,panBy:L,autoPanSpeed:x,autoPanOnNodeDrag:k}=t();if(!k){l=!1,cancelAnimationFrame(i);return}const[N,M]=qr(c,u,x);(N!==0||M!==0)&&(s.x=(s.x??0)-N/F[2],s.y=(s.y??0)-M/F[2],await L({x:N,y:M})&&P(s)),i=requestAnimationFrame(I)}function O(F){var G;const{nodeLookup:L,multiSelectionActive:x,nodesDraggable:k,transform:N,snapGrid:M,snapToGrid:D,selectNodesOnDrag:$,onNodeDragStart:R,onSelectionDragStart:V,unselectNodesAndEdges:B}=t();f=!0,(!$||!C)&&!x&&S&&((G=L.get(S))!=null&&G.selected||B()),C&&$&&S&&(e==null||e(S));const X=Vt(F.sourceEvent,{transform:N,snapGrid:M,snapToGrid:D,containerBounds:u});if(s=X,a=Of(L,k,X,S),a.size>0&&(n||R||!S&&V)){const[ne,re]=fr({nodeId:S,dragItems:a,nodeLookup:L});n==null||n(F.sourceEvent,a,ne,re),R==null||R(F.sourceEvent,ne,re),S||V==null||V(F.sourceEvent,re)}}const T=Ys().clickDistance(A).on("start",F=>{const{domNode:L,nodeDragThreshold:x,transform:k,snapGrid:N,snapToGrid:M}=t();u=(L==null?void 0:L.getBoundingClientRect())||null,h=!1,g=!1,v=F.sourceEvent,x===0&&O(F),s=Vt(F.sourceEvent,{transform:k,snapGrid:N,snapToGrid:M,containerBounds:u}),c=De(F.sourceEvent,u)}).on("drag",F=>{const{autoPanOnNodeDrag:L,transform:x,snapGrid:k,snapToGrid:N,nodeDragThreshold:M,nodeLookup:D}=t(),$=Vt(F.sourceEvent,{transform:x,snapGrid:k,snapToGrid:N,containerBounds:u});if(v=F.sourceEvent,(F.sourceEvent.type==="touchmove"&&F.sourceEvent.touches.length>1||S&&!D.has(S))&&(h=!0),!h){if(!l&&L&&f&&(l=!0,I()),!f){const R=De(F.sourceEvent,u),V=R.x-c.x,B=R.y-c.y;Math.sqrt(V*V+B*B)>M&&O(F)}(s.x!==$.xSnapped||s.y!==$.ySnapped)&&a&&f&&(c=De(F.sourceEvent,u),P($))}}).on("end",F=>{if(!f||h){h&&a.size>0&&t().updateNodePositions(a,!1);return}if(l=!1,f=!1,cancelAnimationFrame(i),a.size>0){const{nodeLookup:L,updateNodePositions:x,onNodeDragStop:k,onSelectionDragStop:N}=t();if(g&&(x(a,!1),g=!1),o||k||!S&&N){const[M,D]=fr({nodeId:S,dragItems:a,nodeLookup:L,dragging:!1});o==null||o(F.sourceEvent,a,M,D),k==null||k(F.sourceEvent,M,D),S||N==null||N(F.sourceEvent,D)}}}).filter(F=>{const L=F.target;return!F.button&&(!E||!Oo(L,`.${E}`,b))&&(!m||Oo(L,m,b))});d.call(T)}function y(){d==null||d.on(".drag",null)}return{update:w,destroy:y}}function Xf(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())zn(o,qt(s))>0&&r.push(s);return r}const Kf=250;function Gf(e,t,n,r){var a,l;let o=[],s=1/0;const i=Xf(e,n,t+Kf);for(const c of i){const u=[...((a=c.internals.handleBounds)==null?void 0:a.source)??[],...((l=c.internals.handleBounds)==null?void 0:l.target)??[]];for(const f of u){if(r.nodeId===f.nodeId&&r.type===f.type&&r.id===f.id)continue;const{x:d,y:h}=ht(c,f,f.position,!0),g=Math.sqrt(Math.pow(d-e.x,2)+Math.pow(h-e.y,2));g>t||(g<s?(o=[{...f,x:d,y:h}],s=g):g===s&&o.push({...f,x:d,y:h}))}}if(!o.length)return null;if(o.length>1){const c=r.type==="source"?"target":"source";return o.find(u=>u.type===c)??o[0]}return o[0]}function $i(e,t,n,r,o,s=!1){var c,u,f;const i=r.get(e);if(!i)return null;const a=o==="strict"?(c=i.internals.handleBounds)==null?void 0:c[t]:[...((u=i.internals.handleBounds)==null?void 0:u.source)??[],...((f=i.internals.handleBounds)==null?void 0:f.target)??[]],l=(n?a==null?void 0:a.find(d=>d.id===n):a==null?void 0:a[0])??null;return l&&s?{...l,...ht(i,l,l.position,!0)}:l}function Ii(e,t){return e||(t!=null&&t.classList.contains("target")?"target":t!=null&&t.classList.contains("source")?"source":null)}function qf(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}const ji=()=>!0;function Uf(e,{connectionMode:t,connectionRadius:n,handleId:r,nodeId:o,edgeUpdaterType:s,isTarget:i,domNode:a,nodeLookup:l,lib:c,autoPanOnConnect:u,flowId:f,panBy:d,cancelConnection:h,onConnectStart:g,onConnect:v,onConnectEnd:w,isValidConnection:y=ji,onReconnectEnd:E,updateConnection:m,getTransform:b,getFromHandle:C,autoPanSpeed:S,dragThreshold:A=1,handleDomNode:P}){const I=wi(e.target);let O=0,T;const{x:F,y:L}=De(e),x=Ii(s,P),k=a==null?void 0:a.getBoundingClientRect();let N=!1;if(!k||!x)return;const M=$i(o,x,r,l,t);if(!M)return;let D=De(e,k),$=!1,R=null,V=!1,B=null;function X(){if(!u||!k)return;const[te,Z]=qr(D,k,S);d({x:te,y:Z}),O=requestAnimationFrame(X)}const G={...M,nodeId:o,type:x,position:M.position},ne=l.get(o);let J={inProgress:!0,isValid:null,from:ht(ne,G,Q.Left,!0),fromHandle:G,fromPosition:G.position,fromNode:ne,to:D,toHandle:null,toPosition:Io[G.position],toNode:null,pointer:D};function H(){N=!0,m(J),g==null||g(e,{nodeId:o,handleId:r,handleType:x})}A===0&&H();function W(te){if(!N){const{x:ce,y:me}=De(te),ge=ce-F,we=me-L;if(!(ge*ge+we*we>A*A))return;H()}if(!C()||!G){ee(te);return}const Z=b();D=De(te,k),T=Gf(rn(D,Z,!1,[1,1]),n,l,G),$||(X(),$=!0);const Y=Pi(te,{handle:T,connectionMode:t,fromNodeId:o,fromHandleId:r,fromType:i?"target":"source",isValidConnection:y,doc:I,lib:c,flowId:f,nodeLookup:l});B=Y.handleDomNode,R=Y.connection,V=qf(!!T,Y.isValid);const oe=l.get(o),K=oe?ht(oe,G,Q.Left,!0):J.from,ie={...J,from:K,isValid:V,to:Y.toHandle&&V?Mt({x:Y.toHandle.x,y:Y.toHandle.y},Z):D,toHandle:Y.toHandle,toPosition:V&&Y.toHandle?Y.toHandle.position:Io[G.position],toNode:Y.toHandle?l.get(Y.toHandle.nodeId):null,pointer:D};m(ie),J=ie}function ee(te){if(!("touches"in te&&te.touches.length>0)){if(N){(T||B)&&R&&V&&(v==null||v(R));const{inProgress:Z,...Y}=J,oe={...Y,toPosition:J.toHandle?J.toPosition:null};w==null||w(te,oe),s&&(E==null||E(te,oe))}h(),cancelAnimationFrame(O),$=!1,V=!1,R=null,B=null,I.removeEventListener("mousemove",W),I.removeEventListener("mouseup",ee),I.removeEventListener("touchmove",W),I.removeEventListener("touchend",ee)}}I.addEventListener("mousemove",W),I.addEventListener("mouseup",ee),I.addEventListener("touchmove",W),I.addEventListener("touchend",ee)}function Pi(e,{handle:t,connectionMode:n,fromNodeId:r,fromHandleId:o,fromType:s,doc:i,lib:a,flowId:l,isValidConnection:c=ji,nodeLookup:u}){const f=s==="target",d=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}=De(e),v=i.elementFromPoint(h,g),w=v!=null&&v.classList.contains(`${a}-flow__handle`)?v:d,y={handleDomNode:w,isValid:!1,connection:null,toHandle:null};if(w){const E=Ii(void 0,w),m=w.getAttribute("data-nodeid"),b=w.getAttribute("data-handleid"),C=w.classList.contains("connectable"),S=w.classList.contains("connectableend");if(!m||!E)return y;const A={source:f?m:r,sourceHandle:f?b:o,target:f?r:m,targetHandle:f?o:b};y.connection=A;const I=C&&S&&(n===St.Strict?f&&E==="source"||!f&&E==="target":m!==r||b!==o);y.isValid=I&&c(A),y.toHandle=$i(m,E,b,u,n,!0)}return y}const Lr={onPointerDown:Uf,isValid:Pi};function Zf({domNode:e,panZoom:t,getTransform:n,getViewScale:r}){const o=Se(e);function s({translateExtent:a,width:l,height:c,zoomStep:u=1,pannable:f=!0,zoomable:d=!0,inversePan:h=!1}){const g=m=>{if(m.sourceEvent.type!=="wheel"||!t)return;const b=n(),C=m.sourceEvent.ctrlKey&&Ut()?10:1,S=-m.sourceEvent.deltaY*(m.sourceEvent.deltaMode===1?.05:m.sourceEvent.deltaMode?1:.002)*u,A=b[2]*Math.pow(2,S*C);t.scaleTo(A)};let v=[0,0];const w=m=>{(m.sourceEvent.type==="mousedown"||m.sourceEvent.type==="touchstart")&&(v=[m.sourceEvent.clientX??m.sourceEvent.touches[0].clientX,m.sourceEvent.clientY??m.sourceEvent.touches[0].clientY])},y=m=>{const b=n();if(m.sourceEvent.type!=="mousemove"&&m.sourceEvent.type!=="touchmove"||!t)return;const C=[m.sourceEvent.clientX??m.sourceEvent.touches[0].clientX,m.sourceEvent.clientY??m.sourceEvent.touches[0].clientY],S=[C[0]-v[0],C[1]-v[1]];v=C;const A=r()*Math.max(b[2],Math.log(b[2]))*(h?-1:1),P={x:b[0]-S[0]*A,y:b[1]-S[1]*A},I=[[0,0],[l,c]];t.setViewportConstrained({x:P.x,y:P.y,zoom:b[2]},I,a)},E=ii().on("start",w).on("zoom",f?y:null).on("zoom.wheel",d?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),qe=(e,t)=>e.target.closest(`.${t}`),Ti=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),Qf=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,gr=(e,t=0,n=Qf,r=()=>{})=>{const o=typeof t=="number"&&t>0;return o||r(),o?e.transition().duration(t).ease(n).on("end",r):e},Di=e=>{const t=e.ctrlKey&&Ut()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function Jf({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:r,panOnScrollMode:o,panOnScrollSpeed:s,zoomOnPinch:i,onPanZoomStart:a,onPanZoom:l,onPanZoomEnd:c}){return u=>{if(qe(u,t))return u.ctrlKey&&u.preventDefault(),!1;u.preventDefault(),u.stopImmediatePropagation();const f=n.property("__zoom").k||1;if(u.ctrlKey&&i){const w=je(u),y=Di(u),E=f*Math.pow(2,y);r.scaleTo(n,E,w,u);return}const d=u.deltaMode===1?20:1;let h=o===at.Vertical?0:u.deltaX*d,g=o===at.Horizontal?0:u.deltaY*d;!Ut()&&u.shiftKey&&o!==at.Vertical&&(h=u.deltaY*d,g=0),r.translateBy(n,-(h/f)*s,-(g/f)*s,{internal:!0});const v=qn(n.property("__zoom"));clearTimeout(e.panScrollTimeout),e.isPanScrolling?l==null||l(u,v):(e.isPanScrolling=!0,a==null||a(u,v)),e.panScrollTimeout=setTimeout(()=>{c==null||c(u,v),e.isPanScrolling=!1},150)}}function eh({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(r,o){const s=r.type==="wheel",i=!t&&s&&!r.ctrlKey,a=qe(r,e);if(r.ctrlKey&&s&&a&&r.preventDefault(),i||a)return null;r.preventDefault(),n.call(this,r,o)}}function th({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 nh({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:r,onPanZoom:o}){return s=>{var i,a;e.usedRightMouseButton=!!(n&&Ti(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 rh({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&&Ti(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 oh({panActivationKeyPressed:e,zoomActivationKeyPressed:t,zoomOnScroll:n,zoomOnPinch:r,panOnDrag:o,panOnScroll:s,zoomOnDoubleClick:i,userSelectionActive:a,noWheelClassName:l,noPanClassName:c,lib:u,connectionInProgress:f}){return d=>{var y;const h=t||n,g=r&&d.ctrlKey,v=d.type==="wheel";if(d.button===1&&d.type==="mousedown"&&(qe(d,`${u}-flow__node`)||qe(d,`${u}-flow__edge`)||qe(d,`${u}-flow__selection`)||qe(d,`${u}-flow__nodesselection`)))return!0;if(!o&&!h&&!s&&!i&&!r||a||f&&!v||qe(d,l)&&v||qe(d,c)&&(!v||s&&v&&!t)||!r&&d.ctrlKey&&v)return!1;if(!r&&d.type==="touchstart"&&((y=d.touches)==null?void 0:y.length)>1)return d.preventDefault(),!1;if(!h&&!s&&!g&&v||!o&&(d.type==="mousedown"||d.type==="touchstart")||Array.isArray(o)&&!o.includes(d.button)&&d.type==="mousedown")return!1;const w=Array.isArray(o)&&o.includes(d.button)||!d.button||d.button<=1;return(!d.ctrlKey||v||e)&&w}}function sh({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},u=e.getBoundingClientRect();let f=[[0,0],[u.width,u.height]];const d=typeof ResizeObserver<"u"?new ResizeObserver(L=>{const x=L[0];x&&(f=[[0,0],[x.contentRect.width,x.contentRect.height]])}):null;d==null||d.observe(e);const h=ii().extent(()=>f).scaleExtent([t,n]).translateExtent(r),g=Se(e).call(h);b({x:o.x,y:o.y,zoom:kt(o.zoom,t,n)},[[0,0],[u.width,u.height]],r);const v=g.on("wheel.zoom"),w=g.on("dblclick.zoom");h.wheelDelta(Di);async function y(L,x){return g?new Promise(k=>{h==null||h.interpolate((x==null?void 0:x.interpolate)==="linear"?Bt:kn).transform(gr(g,x==null?void 0:x.duration,x==null?void 0:x.ease,()=>k(!0)),L)}):!1}function E({noWheelClassName:L,noPanClassName:x,onPaneContextMenu:k,userSelectionActive:N,panOnScroll:M,panOnDrag:D,panOnScrollMode:$,panOnScrollSpeed:R,preventScrolling:V,zoomOnPinch:B,zoomOnScroll:X,zoomOnDoubleClick:G,panActivationKeyPressed:ne=!1,zoomActivationKeyPressed:re,lib:J,onTransformChange:H,connectionInProgress:W,paneClickDistance:ee,selectionOnDrag:te}){N&&!c.isZoomingOrPanning&&m();const Z=M&&!re&&!N;h.clickDistance(te?1/0:!Te(ee)||ee<0?0:ee);const Y=Z?Jf({zoomPanValues:c,noWheelClassName:L,d3Selection:g,d3Zoom:h,panOnScrollMode:$,panOnScrollSpeed:R,zoomOnPinch:B,onPanZoomStart:i,onPanZoom:s,onPanZoomEnd:a}):eh({noWheelClassName:L,preventScrolling:V,d3ZoomHandler:v});g.on("wheel.zoom",Y,{passive:!1});const oe=th({zoomPanValues:c,onDraggingChange:l,onPanZoomStart:i});h.on("start",oe);const K=nh({zoomPanValues:c,panOnDrag:D,onPaneContextMenu:!!k,onPanZoom:s,onTransformChange:H});h.on("zoom",K);const ie=rh({zoomPanValues:c,panOnDrag:D,panOnScroll:M,onPaneContextMenu:k,onPanZoomEnd:a,onDraggingChange:l});h.on("end",ie);const ce=oh({panActivationKeyPressed:ne,zoomActivationKeyPressed:re,panOnDrag:D,zoomOnScroll:X,panOnScroll:M,zoomOnDoubleClick:G,zoomOnPinch:B,userSelectionActive:N,noPanClassName:x,noWheelClassName:L,lib:J,connectionInProgress:W});h.filter(ce),G?g.on("dblclick.zoom",w):g.on("dblclick.zoom",null)}function m(){h.on("zoom",null)}async function b(L,x,k){const N=hr(L),M=h==null?void 0:h.constrain()(N,x,k);return M&&await y(M),M}async function C(L,x){const k=hr(L);return await y(k,x),k}function S(L){if(g){const x=hr(L),k=g.property("__zoom");(k.k!==L.zoom||k.x!==L.x||k.y!==L.y)&&(h==null||h.transform(g,x,null,{sync:!0}))}}function A(){const L=g?si(g.node()):{x:0,y:0,k:1};return{x:L.x,y:L.y,zoom:L.k}}async function P(L,x){return g?new Promise(k=>{h==null||h.interpolate((x==null?void 0:x.interpolate)==="linear"?Bt:kn).scaleTo(gr(g,x==null?void 0:x.duration,x==null?void 0:x.ease,()=>k(!0)),L)}):!1}async function I(L,x){return g?new Promise(k=>{h==null||h.interpolate((x==null?void 0:x.interpolate)==="linear"?Bt:kn).scaleBy(gr(g,x==null?void 0:x.duration,x==null?void 0:x.ease,()=>k(!0)),L)}):!1}function O(L){h==null||h.scaleExtent(L)}function T(L){h==null||h.translateExtent(L)}function F(L){const x=!Te(L)||L<0?0:L;h==null||h.clickDistance(x)}return{update:E,destroy:m,setViewport:C,setViewportConstrained:b,getViewport:A,scaleTo:P,scaleBy:I,setScaleExtent:O,setTranslateExtent:T,syncViewport:S,setClickDistance:F}}var Ct;(function(e){e.Line="line",e.Handle="handle"})(Ct||(Ct={}));function ih({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 Wo(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 Yo(e,t){return e?!t:t}function ah(e,t,n,r,o,s,i,a){let{affectsX:l,affectsY:c}=t;const{isHorizontal:u,isVertical:f}=t,d=u&&f,{xSnapped:h,ySnapped:g}=n,{minWidth:v,maxWidth:w,minHeight:y,maxHeight:E}=r,{x:m,y:b,width:C,height:S,aspectRatio:A}=e;let P=Math.floor(u?h-e.pointerX:0),I=Math.floor(f?g-e.pointerY:0);const O=C+(l?-P:P),T=S+(c?-I:I),F=-s[0]*C,L=-s[1]*S;let x=vn(O,v,w),k=vn(T,y,E);if(i){let D=0,$=0;l&&P<0?D=Ke(m+P+F,i[0][0]):!l&&P>0&&(D=Ge(m+O+F,i[1][0])),c&&I<0?$=Ke(b+I+L,i[0][1]):!c&&I>0&&($=Ge(b+T+L,i[1][1])),x=Math.max(x,D),k=Math.max(k,$)}if(a){let D=0,$=0;l&&P>0?D=Ge(m+P,a[0][0]):!l&&P<0&&(D=Ke(m+O,a[1][0])),c&&I>0?$=Ge(b+I,a[0][1]):!c&&I<0&&($=Ke(b+T,a[1][1])),x=Math.max(x,D),k=Math.max(k,$)}if(o){if(u){const D=vn(O/A,y,E)*A;if(x=Math.max(x,D),i){let $=0;!l&&!c||l&&!c&&d?$=Ge(b+L+O/A,i[1][1])*A:$=Ke(b+L+(l?P:-P)/A,i[0][1])*A,x=Math.max(x,$)}if(a){let $=0;!l&&!c||l&&!c&&d?$=Ke(b+O/A,a[1][1])*A:$=Ge(b+(l?P:-P)/A,a[0][1])*A,x=Math.max(x,$)}}if(f){const D=vn(T*A,v,w)/A;if(k=Math.max(k,D),i){let $=0;!l&&!c||c&&!l&&d?$=Ge(m+T*A+F,i[1][0])/A:$=Ke(m+(c?I:-I)*A+F,i[0][0])/A,k=Math.max(k,$)}if(a){let $=0;!l&&!c||c&&!l&&d?$=Ke(m+T*A,a[1][0])/A:$=Ge(m+(c?I:-I)*A,a[0][0])/A,k=Math.max(k,$)}}}I=I+(I<0?k:-k),P=P+(P<0?x:-x),o&&(d?O>T*A?I=(Yo(l,c)?-P:P)/A:P=(Yo(l,c)?-I:I)*A:u?(I=P/A,c=l):(P=I*A,l=c));const N=l?m+P:m,M=c?b+I:b;return{width:C+(l?-P:P),height:S+(c?-I:I),x:s[0]*P*(l?-1:1)+N,y:s[1]*I*(c?-1:1)+M}}const Ri={width:0,height:0,x:0,y:0},ch={...Ri,pointerX:0,pointerY:0,aspectRatio:1};function lh(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 uh({domNode:e,nodeId:t,getStoreItems:n,onChange:r,onEnd:o}){const s=Se(e);let i={controlDirection:Wo("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:u,keepAspectRatio:f,resizeDirection:d,onResizeStart:h,onResize:g,onResizeEnd:v,shouldResize:w}){let y={...Ri},E={...ch};i={boundaries:u,resizeDirection:d,keepAspectRatio:f,controlDirection:Wo(c)};let m,b=null,C=[],S,A,P,I=!1;const O=Ys().on("start",T=>{const{nodeLookup:F,transform:L,snapGrid:x,snapToGrid:k,nodeOrigin:N,paneDomNode:M}=n();if(m=F.get(t),!m)return;b=(M==null?void 0:M.getBoundingClientRect())??null;const{xSnapped:D,ySnapped:$}=Vt(T.sourceEvent,{transform:L,snapGrid:x,snapToGrid:k,containerBounds:b});y={width:m.measured.width??0,height:m.measured.height??0,x:m.position.x??0,y:m.position.y??0},E={...y,pointerX:D,pointerY:$,aspectRatio:y.width/y.height},S=void 0,A=ft(m.extent)?m.extent:void 0,m.parentId&&(m.extent==="parent"||m.expandParent)&&(S=F.get(m.parentId)),S&&m.extent==="parent"&&(A=[[0,0],[S.measured.width,S.measured.height]]),C=[],P=void 0;for(const[R,V]of F)if(V.parentId===t&&(C.push({id:R,position:{...V.position},extent:V.extent}),V.extent==="parent"||V.expandParent)){const B=lh(V,m,V.origin??N);P?P=[[Math.min(B[0][0],P[0][0]),Math.min(B[0][1],P[0][1])],[Math.max(B[1][0],P[1][0]),Math.max(B[1][1],P[1][1])]]:P=B}h==null||h(T,{...y})}).on("drag",T=>{const{transform:F,snapGrid:L,snapToGrid:x,nodeOrigin:k}=n(),N=Vt(T.sourceEvent,{transform:F,snapGrid:L,snapToGrid:x,containerBounds:b}),M=[];if(!m)return;const{x:D,y:$,width:R,height:V}=y,B={},X=m.origin??k,{width:G,height:ne,x:re,y:J}=ah(E,i.controlDirection,N,i.boundaries,i.keepAspectRatio,X,A,P),H=G!==R,W=ne!==V,ee=re!==D&&H,te=J!==$&&W;if(!ee&&!te&&!H&&!W)return;if((ee||te||X[0]===1||X[1]===1)&&(B.x=ee?re:y.x,B.y=te?J:y.y,y.x=B.x,y.y=B.y,C.length>0)){const K=re-D,ie=J-$;for(const ce of C)ce.position={x:ce.position.x-K+X[0]*(G-R),y:ce.position.y-ie+X[1]*(ne-V)},M.push(ce)}if((H||W)&&(B.width=H&&(!i.resizeDirection||i.resizeDirection==="horizontal")?G:y.width,B.height=W&&(!i.resizeDirection||i.resizeDirection==="vertical")?ne:y.height,y.width=B.width,y.height=B.height),S&&m.expandParent){const K=X[0]*(B.width??0);B.x&&B.x<K&&(y.x=K,E.x=E.x-(B.x-K));const ie=X[1]*(B.height??0);B.y&&B.y<ie&&(y.y=ie,E.y=E.y-(B.y-ie))}const Z=ih({width:y.width,prevWidth:R,height:y.height,prevHeight:V,affectsX:i.controlDirection.affectsX,affectsY:i.controlDirection.affectsY}),Y={...y,direction:Z};(w==null?void 0:w(T,Y))!==!1&&(I=!0,g==null||g(T,Y),r(B,M))}).on("end",T=>{I&&(v==null||v(T,{...y}),o==null||o({...y}),I=!1)});s.call(O)}function l(){s.on(".drag",null)}return{update:a,destroy:l}}var Li={exports:{}},zi={},Hi={exports:{}},Bi={};/**
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 At=_;function dh(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var fh=typeof Object.is=="function"?Object.is:dh,hh=At.useState,gh=At.useEffect,ph=At.useLayoutEffect,mh=At.useDebugValue;function yh(e,t){var n=t(),r=hh({inst:{value:n,getSnapshot:t}}),o=r[0].inst,s=r[1];return ph(function(){o.value=n,o.getSnapshot=t,pr(o)&&s({inst:o})},[e,n,t]),gh(function(){return pr(o)&&s({inst:o}),e(function(){pr(o)&&s({inst:o})})},[e]),mh(n),n}function pr(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!fh(e,n)}catch{return!0}}function xh(e,t){return t()}var wh=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?xh:yh;Bi.useSyncExternalStore=At.useSyncExternalStore!==void 0?At.useSyncExternalStore:wh;Hi.exports=Bi;var vh=Hi.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=_,bh=vh;function _h(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var Eh=typeof Object.is=="function"?Object.is:_h,Nh=bh.useSyncExternalStore,Sh=Un.useRef,kh=Un.useEffect,Mh=Un.useMemo,Ch=Un.useDebugValue;zi.useSyncExternalStoreWithSelector=function(e,t,n,r,o){var s=Sh(null);if(s.current===null){var i={hasValue:!1,value:null};s.current=i}else i=s.current;s=Mh(function(){function l(h){if(!c){if(c=!0,u=h,h=r(h),o!==void 0&&i.hasValue){var g=i.value;if(o(g,h))return f=g}return f=h}if(g=f,Eh(u,h))return g;var v=r(h);return o!==void 0&&o(g,v)?(u=h,g):(u=h,f=v)}var c=!1,u,f,d=n===void 0?null:n;return[function(){return l(t())},d===null?void 0:function(){return l(d())}]},[t,n,r,o]);var a=Nh(e,s[0],s[1]);return kh(function(){i.hasValue=!0,i.value=a},[a]),Ch(a),a};Li.exports=zi;var Ah=Li.exports;const $h=nc(Ah),Ih={},Xo=e=>{let t;const n=new Set,r=(u,f)=>{const d=typeof u=="function"?u(t):u;if(!Object.is(d,t)){const h=t;t=f??(typeof d!="object"||d===null)?d:Object.assign({},t,d),n.forEach(g=>g(t,h))}},o=()=>t,l={setState:r,getState:o,getInitialState:()=>c,subscribe:u=>(n.add(u),()=>n.delete(u)),destroy:()=>{(Ih?"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},jh=e=>e?Xo(e):Xo,{useDebugValue:Ph}=rc,{useSyncExternalStoreWithSelector:Th}=$h,Dh=e=>e;function Vi(e,t=Dh,n){const r=Th(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return Ph(r),r}const Ko=(e,t)=>{const n=jh(e),r=(o,s=t)=>Vi(n,o,s);return Object.assign(r,n),r},Rh=(e,t)=>e?Ko(e,t):Ko;function de(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=_.createContext(null),Lh=Zn.Provider,Fi=Re.error001("react");function ae(e,t){const n=_.useContext(Zn);if(n===null)throw new Error(Fi);return Vi(n,e,t)}function le(){const e=_.useContext(Zn);if(e===null)throw new Error(Fi);return _.useMemo(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}const Go={display:"none"},zh={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},Oi="react-flow__node-desc",Wi="react-flow__edge-desc",Hh="react-flow__aria-live",Bh=e=>e.ariaLiveMessage,Vh=e=>e.ariaLabelConfig;function Fh({rfId:e}){const t=ae(Bh);return p.jsx("div",{id:`${Hh}-${e}`,"aria-live":"assertive","aria-atomic":"true",style:zh,children:t})}function Oh({rfId:e,disableKeyboardA11y:t}){const n=ae(Vh);return p.jsxs(p.Fragment,{children:[p.jsx("div",{id:`${Oi}-${e}`,style:Go,children:t?n["node.a11yDescription.default"]:n["node.a11yDescription.keyboardDisabled"]}),p.jsx("div",{id:`${Wi}-${e}`,style:Go,children:n["edge.a11yDescription.default"]}),!t&&p.jsx(Fh,{rfId:e})]})}const Qn=_.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";const qo="https://reactflow.dev?utm_source=attribution";function Wh({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: ${qo}`,children:p.jsx("a",{href:qo,target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution",children:"React Flow"})})}const Yh=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 Xh(e,t){return de(e.selectedNodes.map(bn),t.selectedNodes.map(bn))&&de(e.selectedEdges.map(bn),t.selectedEdges.map(bn))}function Kh({onSelectionChange:e}){const t=le(),{selectedNodes:n,selectedEdges:r}=ae(Yh,Xh);return _.useEffect(()=>{const o={nodes:n,edges:r};e==null||e(o),t.getState().onSelectionChangeHandlers.forEach(s=>s(o))},[n,r,e]),null}const Gh=e=>!!e.onSelectionChangeHandlers;function qh({onSelectionChange:e}){const t=ae(Gh);return e||t?p.jsx(Kh,{onSelectionChange:e}):null}const Yi=[0,0],Uh={x:0,y:0,zoom:1},Zh=["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"],Uo=[...Zh,"rfId"],Qh=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}),Zo={translateExtent:Xt,nodeOrigin:Yi,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:"nopan",rfId:"1"};function Jh(e){const{setNodes:t,setEdges:n,setMinZoom:r,setMaxZoom:o,setTranslateExtent:s,setNodeExtent:i,reset:a,setDefaultNodesAndEdges:l}=ae(Qh,de),c=le();_.useEffect(()=>(l(e.defaultNodes,e.defaultEdges),()=>{u.current=Zo,a()}),[]);const u=_.useRef(Zo);return _.useEffect(()=>{for(const f of Uo){const d=e[f],h=u.current[f];d!==h&&(typeof e[f]>"u"||(f==="nodes"?t(d):f==="edges"?n(d):f==="minZoom"?r(d):f==="maxZoom"?o(d):f==="translateExtent"?s(d):f==="nodeExtent"?i(d):f==="ariaLabelConfig"?c.setState({ariaLabelConfig:Ef(d)}):f==="fitView"?c.setState({fitViewQueued:d}):f==="fitViewOptions"?c.setState({fitViewOptions:d}):c.setState({[f]:d})))}u.current=e},Uo.map(f=>e[f])),null}function Qo(){return typeof window>"u"||!window.matchMedia?null:window.matchMedia("(prefers-color-scheme: dark)")}function eg(e){var r;const[t,n]=_.useState(e==="system"?null:e);return _.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 Jo=typeof document<"u"?document:null;function Zt(e=null,t={target:Jo,actInsideInputWithModifier:!0}){const[n,r]=_.useState(!1),o=_.useRef(!1),s=_.useRef(new Set([])),[i,a]=_.useMemo(()=>{if(e!==null){const c=(Array.isArray(e)?e:[e]).filter(f=>typeof f=="string").map(f=>f.replace(/\+/g,`
19
- `).replace(`
20
-
21
- `,`
22
- +`).split(`
23
- `)),u=c.reduce((f,d)=>f.concat(...d),[]);return[c,u]}return[[],[]]},[e]);return _.useEffect(()=>{const l=(t==null?void 0:t.target)??Jo,c=(t==null?void 0:t.actInsideInputWithModifier)??!0;if(e!==null){const u=h=>{var w,y;if(o.current=h.ctrlKey||h.metaKey||h.shiftKey||h.altKey,(!o.current||o.current&&!c)&&vi(h))return!1;const v=ts(h.code,a);if(s.current.add(h[v]),es(i,s.current,!1)){const E=((y=(w=h.composedPath)==null?void 0:w.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)}},f=h=>{const g=ts(h.code,a);es(i,s.current,!0)?(r(!1),s.current.clear()):s.current.delete(h[g]),h.key==="Meta"&&s.current.clear(),o.current=!1},d=()=>{s.current.clear(),r(!1)};return l==null||l.addEventListener("keydown",u),l==null||l.addEventListener("keyup",f),window.addEventListener("blur",d),window.addEventListener("contextmenu",d),()=>{l==null||l.removeEventListener("keydown",u),l==null||l.removeEventListener("keyup",f),window.removeEventListener("blur",d),window.removeEventListener("contextmenu",d)}}},[e,r]),n}function es(e,t,n){return e.filter(r=>n||r.length===t.size).some(r=>r.every(o=>t.has(o)))}function ts(e,t){return t.includes(e)?"code":"key"}const tg=()=>{const e=le();return _.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},u=n.snapGrid??o,f=n.snapToGrid??s;return rn(c,r,f,u)},flowToScreenPosition:t=>{const{transform:n,domNode:r}=e.getState();if(!r)return t;const{x:o,y:s}=r.getBoundingClientRect(),i=Mt(t,n);return{x:i.x+o,y:i.y+s}}}),[])};function Xi(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)ng(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 ng(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 rg(e,t){return Xi(e,t)}function og(e,t){return Xi(e,t)}function ot(e,t){return{id:e,type:"select",selected:t}}function vt(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(ot(s.id,i)))}return r}function ns({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 rs(e){return{id:e.id,type:"remove"}}const sg=mi();function ig(e,t,n={}){return Af(e,t,{...n,onError:n.onError??sg})}const os=e=>gf(e),ag=e=>di(e);function Ki(e){return _.forwardRef(e)}const Gi=typeof window<"u"?_.useLayoutEffect:_.useEffect;function ss(e){const[t,n]=_.useState(BigInt(0)),[r]=_.useState(()=>cg(()=>n(o=>o+BigInt(1))));return Gi(()=>{const o=r.get();o.length&&(e(o),r.reset())},[t]),r}function cg(e){let t=[];return{get:()=>t,reset:()=>{t=[]},push:n=>{t.push(n),e()}}}const qi=_.createContext(null);function lg({children:e}){const t=le(),n=_.useCallback(a=>{const{nodes:l=[],setNodes:c,hasDefaultNodes:u,onNodesChange:f,nodeLookup:d,fitViewQueued:h,onNodesChangeMiddlewareMap:g}=t.getState();let v=l;for(const y of a)v=typeof y=="function"?y(v):y;let w=ns({items:v,lookup:d});for(const y of g.values())w=y(w);u&&c(v),w.length>0?f==null||f(w):h&&window.requestAnimationFrame(()=>{const{fitViewQueued:y,nodes:E,setNodes:m}=t.getState();y&&m(E)})},[]),r=ss(n),o=_.useCallback(a=>{const{edges:l=[],setEdges:c,hasDefaultEdges:u,onEdgesChange:f,edgeLookup:d}=t.getState();let h=l;for(const g of a)h=typeof g=="function"?g(h):g;u?c(h):f&&f(ns({items:h,lookup:d}))},[]),s=ss(o),i=_.useMemo(()=>({nodeQueue:r,edgeQueue:s}),[]);return p.jsx(qi.Provider,{value:i,children:e})}function ug(){const e=_.useContext(qi);if(!e)throw new Error("useBatchContext must be used within a BatchProvider");return e}const dg=e=>!!e.panZoom;function Jn(){const e=tg(),t=le(),n=ug(),r=ae(dg),o=_.useMemo(()=>{const s=f=>t.getState().nodeLookup.get(f),i=f=>{n.nodeQueue.push(f)},a=f=>{n.edgeQueue.push(f)},l=f=>{var y,E;const{nodeLookup:d,nodeOrigin:h}=t.getState(),g=os(f)?f:d.get(f.id),v=g.parentId?xi(g.position,g.measured,g.parentId,d,h):g.position,w={...g,position:v,width:((y=g.measured)==null?void 0:y.width)??g.width,height:((E=g.measured)==null?void 0:E.height)??g.height};return qt(w)},c=(f,d,h={replace:!1})=>{i(g=>g.map(v=>{if(v.id===f){const w=typeof d=="function"?d(v):d;return h.replace&&os(w)?w:{...v,...w}}return v}))},u=(f,d,h={replace:!1})=>{a(g=>g.map(v=>{if(v.id===f){const w=typeof d=="function"?d(v):d;return h.replace&&ag(w)?w:{...v,...w}}return v}))};return{getNodes:()=>t.getState().nodes.map(f=>({...f})),getNode:f=>{var d;return(d=s(f))==null?void 0:d.internals.userNode},getInternalNode:s,getEdges:()=>{const{edges:f=[]}=t.getState();return f.map(d=>({...d}))},getEdge:f=>t.getState().edgeLookup.get(f),setNodes:i,setEdges:a,addNodes:f=>{const d=Array.isArray(f)?f:[f];n.nodeQueue.push(h=>[...h,...d])},addEdges:f=>{const d=Array.isArray(f)?f:[f];n.edgeQueue.push(h=>[...h,...d])},toObject:()=>{const{nodes:f=[],edges:d=[],transform:h}=t.getState(),[g,v,w]=h;return{nodes:f.map(y=>({...y})),edges:d.map(y=>({...y})),viewport:{x:g,y:v,zoom:w}}},deleteElements:async({nodes:f=[],edges:d=[]})=>{const{nodes:h,edges:g,onNodesDelete:v,onEdgesDelete:w,triggerNodeChanges:y,triggerEdgeChanges:E,onDelete:m,onBeforeDelete:b}=t.getState(),{nodes:C,edges:S}=await wf({nodesToRemove:f,edgesToRemove:d,nodes:h,edges:g,onBeforeDelete:b}),A=S.length>0,P=C.length>0;if(A){const I=S.map(rs);w==null||w(S),E(I)}if(P){const I=C.map(rs);v==null||v(C),y(I)}return(P||A)&&(m==null||m({nodes:C,edges:S})),{deletedNodes:C,deletedEdges:S}},getIntersectingNodes:(f,d=!0,h)=>{const g=Po(f),v=g?f:l(f),w=h!==void 0;return v?(h||t.getState().nodes).filter(y=>{const E=t.getState().nodeLookup.get(y.id);if(E&&!g&&(y.id===f.id||!E.internals.positionAbsolute))return!1;const m=qt(w?y:E),b=zn(m,v);return d&&b>0||b>=m.width*m.height||b>=v.width*v.height}):[]},isNodeIntersecting:(f,d,h=!0)=>{const v=Po(f)?f:l(f);if(!v)return!1;const w=zn(v,d);return h&&w>0||w>=d.width*d.height||w>=v.width*v.height},updateNode:c,updateNodeData:(f,d,h={replace:!1})=>{c(f,g=>{const v=typeof d=="function"?d(g):d;return h.replace?{...g,data:v}:{...g,data:{...g.data,...v}}},h)},updateEdge:u,updateEdgeData:(f,d,h={replace:!1})=>{u(f,g=>{const v=typeof d=="function"?d(g):d;return h.replace?{...g,data:v}:{...g,data:{...g.data,...v}}},h)},getNodesBounds:f=>{const{nodeLookup:d,nodeOrigin:h}=t.getState();return pf(f,{nodeLookup:d,nodeOrigin:h})},getHandleConnections:({type:f,id:d,nodeId:h})=>{var g;return Array.from(((g=t.getState().connectionLookup.get(`${h}-${f}${d?`-${d}`:""}`))==null?void 0:g.values())??[])},getNodeConnections:({type:f,handleId:d,nodeId:h})=>{var g;return Array.from(((g=t.getState().connectionLookup.get(`${h}${f?d?`-${f}-${d}`:`-${f}`:""}`))==null?void 0:g.values())??[])},fitView:async f=>{const d=t.getState().fitViewResolver??_f();return t.setState({fitViewQueued:!0,fitViewOptions:f,fitViewResolver:d}),n.nodeQueue.push(h=>[...h]),d.promise}}},[]);return _.useMemo(()=>({...o,...e,viewportInitialized:r}),[r])}const is=e=>e.selected,fg=typeof window<"u"?window:void 0;function hg({deleteKeyCode:e,multiSelectionKeyCode:t}){const n=le(),{deleteElements:r}=Jn(),o=Zt(e,{actInsideInputWithModifier:!1}),s=Zt(t,{target:fg});_.useEffect(()=>{if(o){const{edges:i,nodes:a}=n.getState();r({nodes:a.filter(is),edges:i.filter(is)}),n.setState({nodesSelectionActive:!1})}},[o]),_.useEffect(()=>{n.setState({multiSelectionActive:s})},[s])}function gg(e){const t=le();_.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},pg=e=>({userSelectionActive:e.userSelectionActive,lib:e.lib,connectionInProgress:e.connection.inProgress});function mg({onPaneContextMenu:e,zoomOnScroll:t=!0,zoomOnPinch:n=!0,panOnScroll:r=!1,panActivationKeyPressed:o,panOnScrollSpeed:s=.5,panOnScrollMode:i=at.Free,zoomOnDoubleClick:a=!0,panOnDrag:l=!0,defaultViewport:c,translateExtent:u,minZoom:f,maxZoom:d,zoomActivationKeyCode:h,preventScrolling:g=!0,children:v,noWheelClassName:w,noPanClassName:y,onViewportChange:E,isControlledViewport:m,paneClickDistance:b,selectionOnDrag:C}){const S=le(),A=_.useRef(null),{userSelectionActive:P,lib:I,connectionInProgress:O}=ae(pg,de),T=Zt(h),F=_.useRef();gg(A);const L=_.useCallback(x=>{E==null||E({x:x[0],y:x[1],zoom:x[2]}),m||S.setState({transform:x})},[E,m]);return _.useEffect(()=>{if(A.current){F.current=sh({domNode:A.current,minZoom:f,maxZoom:d,translateExtent:u,viewport:c,onDraggingChange:M=>S.setState(D=>D.paneDragging===M?D:{paneDragging:M}),onPanZoomStart:(M,D)=>{const{onViewportChangeStart:$,onMoveStart:R}=S.getState();R==null||R(M,D),$==null||$(D)},onPanZoom:(M,D)=>{const{onViewportChange:$,onMove:R}=S.getState();R==null||R(M,D),$==null||$(D)},onPanZoomEnd:(M,D)=>{const{onViewportChangeEnd:$,onMoveEnd:R}=S.getState();R==null||R(M,D),$==null||$(D)}});const{x,y:k,zoom:N}=F.current.getViewport();return S.setState({panZoom:F.current,transform:[x,k,N],domNode:A.current.closest(".react-flow")}),()=>{var M;(M=F.current)==null||M.destroy()}}},[]),_.useEffect(()=>{var x;(x=F.current)==null||x.update({onPaneContextMenu:e,zoomOnScroll:t,zoomOnPinch:n,panOnScroll:r,panActivationKeyPressed:o,panOnScrollSpeed:s,panOnScrollMode:i,zoomOnDoubleClick:a,panOnDrag:l,zoomActivationKeyPressed:T,preventScrolling:g,noPanClassName:y,userSelectionActive:P,noWheelClassName:w,lib:I,onTransformChange:L,connectionInProgress:O,selectionOnDrag:C,paneClickDistance:b})},[e,t,n,r,o,s,i,a,l,T,g,y,P,w,I,L,O,C,b]),p.jsx("div",{className:"react-flow__renderer",ref:A,style:er,children:v})}const yg=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function xg(){const{userSelectionActive:e,userSelectionRect:t}=ae(yg,de);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))},wg=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,dragging:e.paneDragging,panBy:e.panBy,autoPanSpeed:e.autoPanSpeed});function vg({isSelecting:e,selectionKeyPressed:t,selectionMode:n=Kt.Full,panOnDrag:r,autoPanOnSelection:o,paneClickDistance:s,selectionOnDrag:i,onSelectionStart:a,onSelectionEnd:l,onPaneClick:c,onPaneContextMenu:u,onPaneScroll:f,onPaneMouseEnter:d,onPaneMouseMove:h,onPaneMouseLeave:g,children:v}){const w=_.useRef(0),y=le(),{userSelectionActive:E,elementsSelectable:m,dragging:b,panBy:C,autoPanSpeed:S}=ae(wg,de),A=m&&(e||E),P=_.useRef(null),I=_.useRef(),O=_.useRef(new Set),T=_.useRef(new Set),F=_.useRef(!1),L=_.useRef(!1),x=_.useRef({x:0,y:0}),k=_.useRef(!1),N=H=>{if(L.current||F.current||y.getState().connection.inProgress){L.current=!1,F.current=!1;return}c==null||c(H),y.getState().resetSelectedElements(),y.setState({nodesSelectionActive:!1})},M=H=>{if(Array.isArray(r)&&(r!=null&&r.includes(2))){H.preventDefault();return}u==null||u(H)},D=f?H=>f(H):void 0,$=H=>{L.current&&(H.stopPropagation(),L.current=!1)},R=H=>{var ce,me;if(H.pointerType==="touch"&&r!==!1&&!t)return;const{domNode:W,transform:ee}=y.getState();if(I.current=W==null?void 0:W.getBoundingClientRect(),!I.current)return;const te=H.target===P.current;if(!te&&!!H.target.closest(".nokey")||!e||!(i&&te||t)||H.button!==0||!H.isPrimary)return;(me=(ce=H.target)==null?void 0:ce.setPointerCapture)==null||me.call(ce,H.pointerId),L.current=!1;const{x:oe,y:K}=De(H.nativeEvent,I.current),ie=rn({x:oe,y:K},ee);y.setState({userSelectionRect:{width:0,height:0,startX:ie.x,startY:ie.y,x:oe,y:K}}),te||(H.stopPropagation(),H.preventDefault())};function V(H,W){const{userSelectionRect:ee}=y.getState();if(!ee)return;const{transform:te,nodeLookup:Z,edgeLookup:Y,connectionLookup:oe,triggerNodeChanges:K,triggerEdgeChanges:ie,defaultEdgeOptions:ce}=y.getState(),me={x:ee.startX,y:ee.startY},{x:ge,y:we}=Mt(me,te),Me={startX:me.x,startY:me.y,x:H<ge?H:ge,y:W<we?W:we,width:Math.abs(H-ge),height:Math.abs(W-we)},Xe=O.current,xe=T.current;O.current=new Set(Gr(Z,Me,te,n===Kt.Partial,!0).map(be=>be.id)),T.current=new Set;const ve=(ce==null?void 0:ce.selectable)??!0;for(const be of O.current){const Ce=oe.get(be);if(Ce)for(const{edgeId:Ae}of Ce.values()){const $e=Y.get(Ae);$e&&($e.selectable??ve)&&T.current.add(Ae)}}if(!To(Xe,O.current)){const be=vt(Z,O.current,!0);K(be)}if(!To(xe,T.current)){const be=vt(Y,T.current);ie(be)}y.setState({userSelectionRect:Me,userSelectionActive:!0,nodesSelectionActive:!1})}function B(){if(!o||!I.current)return;const[H,W]=qr(x.current,I.current,S);C({x:H,y:W}).then(ee=>{if(!L.current||!ee){w.current=requestAnimationFrame(B);return}const{x:te,y:Z}=x.current;V(te,Z),w.current=requestAnimationFrame(B)})}const X=()=>{cancelAnimationFrame(w.current),w.current=0,k.current=!1};_.useEffect(()=>()=>X(),[]);const G=H=>{const{userSelectionRect:W,transform:ee,resetSelectedElements:te}=y.getState();if(!I.current||!W)return;const{x:Z,y:Y}=De(H.nativeEvent,I.current);x.current={x:Z,y:Y};const oe=Mt({x:W.startX,y:W.startY},ee);if(!L.current){const K=t?0:s;if(Math.hypot(Z-oe.x,Y-oe.y)<=K)return;te(),a==null||a(H)}L.current=!0,k.current||(B(),k.current=!0),V(Z,Y)},ne=H=>{var W,ee;if(!A){H.target===P.current&&y.getState().connection.inProgress&&(F.current=!0);return}H.button===0&&((ee=(W=H.target)==null?void 0:W.releasePointerCapture)==null||ee.call(W,H.pointerId),!E&&H.target===P.current&&y.getState().userSelectionRect&&(N==null||N(H)),y.setState({userSelectionActive:!1,userSelectionRect:null}),L.current&&(l==null||l(H),y.setState({nodesSelectionActive:O.current.size>0})),X())},re=H=>{var W,ee;(ee=(W=H.target)==null?void 0:W.releasePointerCapture)==null||ee.call(W,H.pointerId),X()},J=r===!0||Array.isArray(r)&&r.includes(0);return p.jsxs("div",{className:he(["react-flow__pane",{draggable:J,dragging:b,selection:e}]),onClick:A?void 0:mr(N,P),onContextMenu:mr(M,P),onWheel:mr(D,P),onPointerEnter:A?void 0:d,onPointerMove:A?G:h,onPointerUp:ne,onPointerCancel:A?re:void 0,onPointerDownCapture:A?R:void 0,onClickCapture:A?$:void 0,onPointerLeave:g,ref:P,style:er,children:[v,p.jsx(xg,{})]})}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 u;return(u=r==null?void 0:r.current)==null?void 0:u.blur()})):o([e])}function Ui({nodeRef:e,disabled:t=!1,noDragClassName:n,handleSelector:r,nodeId:o,isSelectable:s,nodeClickDistance:i}){const a=le(),[l,c]=_.useState(!1),u=_.useRef();return _.useEffect(()=>{if(!t)return u.current=Yf({getStoreItems:()=>a.getState(),onNodeMouseDown:f=>{zr({id:f,store:a,nodeRef:e})},onDragStart:()=>{c(!0)},onDragStop:()=>{c(!1)}}),()=>{var f;(f=u.current)==null||f.destroy(),u.current=void 0}},[t,a,e]),_.useEffect(()=>{t||!e.current||!u.current||u.current.update({noDragClassName:n,handleSelector:r,domNode:e.current,isSelectable:s,nodeId:o,nodeClickDistance:i})},[n,r,t,s,e,o,i]),l}const bg=e=>t=>t.selected&&(t.draggable||e&&typeof t.draggable>"u");function Zi(){const e=le();return _.useCallback(n=>{const{nodeExtent:r,snapToGrid:o,snapGrid:s,nodesDraggable:i,onError:a,updateNodePositions:l,nodeLookup:c,nodeOrigin:u}=e.getState(),f=new Map,d=bg(i),h=o?s[0]:5,g=o?s[1]:5,v=n.direction.x*h*n.factor,w=n.direction.y*g*n.factor;for(const[,y]of c){if(!d(y))continue;let E={x:y.internals.positionAbsolute.x+v,y:y.internals.positionAbsolute.y+w};o&&(E=nn(E,s));const{position:m,positionAbsolute:b}=fi({nodeId:y.id,nextPosition:E,nodeLookup:c,nodeExtent:r,nodeOrigin:u,onError:a});y.position=m,y.internals.positionAbsolute=b,f.set(y.id,y)}l(f)},[])}const ro=_.createContext(null),_g=ro.Provider;ro.Consumer;const Qi=()=>_.useContext(ro),Eg=e=>({connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName,rfId:e.rfId}),Ji=_.createContext(null);function Ng({children:e}){const t=ae(Eg,de);return p.jsx(Ji.Provider,{value:t,children:e})}function Sg(){const e=_.useContext(Ji);if(!e)throw new Error("useHandleConfig must be used within a HandleConfigProvider");return e}const kg={connectingFrom:!1,connectingTo:!1,clickConnecting:!1,isPossibleEndHandle:!0,connectionInProcess:!1,clickConnectionInProcess:!1,valid:!1},Mg=(e,t,n)=>r=>{const{connectionClickStartHandle:o,connectionMode:s,connection:i}=r,{fromHandle:a,toHandle:l,isValid:c}=i;if(!a&&!o)return kg;const u=(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:u,clickConnecting:(o==null?void 0:o.nodeId)===e&&(o==null?void 0:o.id)===t&&(o==null?void 0:o.type)===n,isPossibleEndHandle:s===St.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:u&&c}};function Cg({type:e="source",position:t=Q.Top,isValidConnection:n,isConnectable:r=!0,isConnectableStart:o=!0,isConnectableEnd:s=!0,id:i,onConnect:a,children:l,className:c,onMouseDown:u,onTouchStart:f,...d},h){var k,N;const g=i||null,v=e==="target",w=le(),y=Qi(),{connectOnClick:E,noPanClassName:m,rfId:b}=Sg(),{connectingFrom:C,connectingTo:S,clickConnecting:A,isPossibleEndHandle:P,connectionInProcess:I,clickConnectionInProcess:O,valid:T}=ae(Mg(y,g,e),de);y||(N=(k=w.getState()).onError)==null||N.call(k,"010",Re.error010());const F=M=>{const{defaultEdgeOptions:D,onConnect:$,hasDefaultEdges:R}=w.getState(),V={...D,...M};if(R){const{edges:B,setEdges:X,onError:G}=w.getState();X(ig(V,B,{onError:G}))}$==null||$(V),a==null||a(V)},L=M=>{if(!y)return;const D=bi(M.nativeEvent);if(o&&(D&&M.button===0||!D)){const $=w.getState();Lr.onPointerDown(M.nativeEvent,{handleDomNode:M.currentTarget,autoPanOnConnect:$.autoPanOnConnect,connectionMode:$.connectionMode,connectionRadius:$.connectionRadius,domNode:$.domNode,nodeLookup:$.nodeLookup,lib:$.lib,isTarget:v,handleId:g,nodeId:y,flowId:$.rfId,panBy:$.panBy,cancelConnection:$.cancelConnection,onConnectStart:$.onConnectStart,onConnectEnd:(...R)=>{var V,B;return(B=(V=w.getState()).onConnectEnd)==null?void 0:B.call(V,...R)},updateConnection:$.updateConnection,onConnect:F,isValidConnection:n||((...R)=>{var V,B;return((B=(V=w.getState()).isValidConnection)==null?void 0:B.call(V,...R))??!0}),getTransform:()=>w.getState().transform,getFromHandle:()=>w.getState().connection.fromHandle,autoPanSpeed:$.autoPanSpeed,dragThreshold:$.connectionDragThreshold})}D?u==null||u(M):f==null||f(M)},x=M=>{const{onClickConnectStart:D,onClickConnectEnd:$,connectionClickStartHandle:R,connectionMode:V,isValidConnection:B,lib:X,rfId:G,nodeLookup:ne,connection:re}=w.getState();if(!y||!R&&!o)return;if(!R){D==null||D(M.nativeEvent,{nodeId:y,handleId:g,handleType:e}),w.setState({connectionClickStartHandle:{nodeId:y,type:e,id:g}});return}const J=wi(M.target),H=n||B,{connection:W,isValid:ee}=Lr.isValid(M.nativeEvent,{handle:{nodeId:y,id:g,type:e},connectionMode:V,fromNodeId:R.nodeId,fromHandleId:R.id||null,fromType:R.type,isValidConnection:H,flowId:G,doc:J,lib:X,nodeLookup:ne});ee&&W&&F(W);const te=structuredClone(re);delete te.inProgress,te.toPosition=te.toHandle?te.toHandle.position:null,$==null||$(M,te),w.setState({connectionClickStartHandle:null})};return p.jsx("div",{"data-handleid":g,"data-nodeid":y,"data-handlepos":t,"data-id":`${b}-${y}-${g}-${e}`,className:he(["react-flow__handle",`react-flow__handle-${t}`,"nodrag",m,c,{source:!v,target:v,connectable:r,connectablestart:o,connectableend:s,clickconnecting:A,connectingfrom:C,connectingto:S,valid:T,connectionindicator:r&&(!I||P)&&(I||O?s:o)}]),onMouseDown:L,onTouchStart:L,onClick:E?x:void 0,ref:h,...d,children:l})}const $t=_.memo(Ki(Cg));function Ag({data:e,isConnectable:t,sourcePosition:n=Q.Bottom}){return p.jsxs(p.Fragment,{children:[e==null?void 0:e.label,p.jsx($t,{type:"source",position:n,isConnectable:t})]})}function $g({data:e,isConnectable:t,targetPosition:n=Q.Top,sourcePosition:r=Q.Bottom}){return p.jsxs(p.Fragment,{children:[p.jsx($t,{type:"target",position:n,isConnectable:t}),e==null?void 0:e.label,p.jsx($t,{type:"source",position:r,isConnectable:t})]})}function Ig(){return null}function jg({data:e,isConnectable:t,targetPosition:n=Q.Top}){return p.jsxs(p.Fragment,{children:[p.jsx($t,{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}},as={input:Ag,default:$g,output:jg,group:Ig};function Pg(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 Tg=e=>{const{width:t,height:n,x:r,y:o}=tn(e.nodeLookup,{filter:s=>!!s.selected});return{width:Te(t)?t:null,height:Te(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 Dg({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:n}){const r=le(),{width:o,height:s,transformString:i,userSelectionActive:a}=ae(Tg,de),l=Zi(),c=_.useRef(null);_.useEffect(()=>{var h;n||(h=c.current)==null||h.focus({preventScroll:!0})},[n]);const u=!a&&o!==null&&s!==null;if(Ui({nodeRef:c,disabled:!u}),!u)return null;const f=e?h=>{const g=r.getState().nodes.filter(v=>v.selected);e(h,g)}:void 0,d=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:f,tabIndex:n?void 0:-1,onKeyDown:n?void 0:d,style:{width:o,height:s}})})}const cs=typeof window<"u"?window:void 0,Rg=e=>({nodesSelectionActive:e.nodesSelectionActive,userSelectionActive:e.userSelectionActive});function ea({children:e,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:o,onPaneContextMenu:s,onPaneScroll:i,paneClickDistance:a,deleteKeyCode:l,selectionKeyCode:c,selectionOnDrag:u,selectionMode:f,onSelectionStart:d,onSelectionEnd:h,multiSelectionKeyCode:g,panActivationKeyCode:v,zoomActivationKeyCode:w,elementsSelectable:y,zoomOnScroll:E,zoomOnPinch:m,panOnScroll:b,panOnScrollSpeed:C,panOnScrollMode:S,zoomOnDoubleClick:A,panOnDrag:P,autoPanOnSelection:I,defaultViewport:O,translateExtent:T,minZoom:F,maxZoom:L,preventScrolling:x,onSelectionContextMenu:k,noWheelClassName:N,noPanClassName:M,disableKeyboardA11y:D,onViewportChange:$,isControlledViewport:R}){const{nodesSelectionActive:V,userSelectionActive:B}=ae(Rg,de),X=Zt(c,{target:cs}),G=Zt(v,{target:cs}),ne=G||P,re=G||b,J=u&&ne!==!0,H=X||B||J;return hg({deleteKeyCode:l,multiSelectionKeyCode:g}),p.jsx(mg,{onPaneContextMenu:s,elementsSelectable:y,zoomOnScroll:E,zoomOnPinch:m,panOnScroll:re,panActivationKeyPressed:G,panOnScrollSpeed:C,panOnScrollMode:S,zoomOnDoubleClick:A,panOnDrag:!X&&ne,defaultViewport:O,translateExtent:T,minZoom:F,maxZoom:L,zoomActivationKeyCode:w,preventScrolling:x,noWheelClassName:N,noPanClassName:M,onViewportChange:$,isControlledViewport:R,paneClickDistance:a,selectionOnDrag:J,children:p.jsxs(vg,{onSelectionStart:d,onSelectionEnd:h,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:o,onPaneContextMenu:s,onPaneScroll:i,panOnDrag:ne,autoPanOnSelection:I,isSelecting:!!H,selectionMode:f,selectionKeyPressed:X,paneClickDistance:a,selectionOnDrag:J,children:[e,V&&p.jsx(Dg,{onSelectionContextMenu:k,noPanClassName:M,disableKeyboardA11y:D})]})})}ea.displayName="FlowRenderer";const Lg=_.memo(ea),zg=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 Hg(e){return ae(_.useCallback(zg(e),[e]),de)}const Bg=e=>e.updateNodeInternals;function Vg(){const e=ae(Bg),[t]=_.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 _.useEffect(()=>()=>{t==null||t.disconnect()},[t]),t}function Fg({node:e,nodeType:t,hasDimensions:n,resizeObserver:r}){const o=le(),s=_.useRef(null),i=_.useRef(null),a=_.useRef(e.sourcePosition),l=_.useRef(e.targetPosition),c=_.useRef(t),u=n&&!!e.internals.handleBounds;return _.useEffect(()=>{s.current&&!e.hidden&&(!u||i.current!==s.current)&&(i.current&&(r==null||r.unobserve(i.current)),r==null||r.observe(s.current),i.current=s.current)},[u,e.hidden]),_.useEffect(()=>()=>{i.current&&(r==null||r.unobserve(i.current),i.current=null)},[]),_.useEffect(()=>{if(s.current){const f=c.current!==t,d=a.current!==e.sourcePosition,h=l.current!==e.targetPosition;(f||d||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 Og({id:e,onClick:t,onMouseEnter:n,onMouseMove:r,onMouseLeave:o,onContextMenu:s,onDoubleClick:i,nodesDraggable:a,elementsSelectable:l,nodesConnectable:c,nodesFocusable:u,resizeObserver:f,noDragClassName:d,noPanClassName:h,disableKeyboardA11y:g,rfId:v,nodeTypes:w,nodeClickDistance:y,onError:E}){const{node:m,internals:b,isParent:C}=ae(H=>{const W=H.nodeLookup.get(e),ee=H.parentLookup.has(e);return{node:W,internals:W.internals,isParent:ee}},de);let S=m.type||"default",A=(w==null?void 0:w[S])||as[S];A===void 0&&(E==null||E("003",Re.error003(S)),S="default",A=(w==null?void 0:w.default)||as.default);const P=!!(m.draggable||a&&typeof m.draggable>"u"),I=!!(m.selectable||l&&typeof m.selectable>"u"),O=!!(m.connectable||c&&typeof m.connectable>"u"),T=!!(m.focusable||u&&typeof m.focusable>"u"),F=le(),L=yi(m),x=Fg({node:m,nodeType:S,hasDimensions:L,resizeObserver:f}),k=Ui({nodeRef:x,disabled:m.hidden||!P,noDragClassName:d,handleSelector:m.dragHandle,nodeId:e,isSelectable:I,nodeClickDistance:y}),N=Zi();if(m.hidden)return null;const M=ze(m),D=Pg(m),$=I||P||t||n||r||o,R=n?H=>n(H,{...b.userNode}):void 0,V=r?H=>r(H,{...b.userNode}):void 0,B=o?H=>o(H,{...b.userNode}):void 0,X=s?H=>s(H,{...b.userNode}):void 0,G=i?H=>i(H,{...b.userNode}):void 0,ne=H=>{const{selectNodesOnDrag:W,nodeDragThreshold:ee}=F.getState();I&&(!W||!P||ee>0)&&zr({id:e,store:F,nodeRef:x}),t&&t(H,{...b.userNode})},re=H=>{if(!(vi(H.nativeEvent)||g)){if(ai.includes(H.key)&&I){const W=H.key==="Escape";zr({id:e,store:F,unselect:W,nodeRef:x})}else if(P&&m.selected&&Object.prototype.hasOwnProperty.call(Hn,H.key)){H.preventDefault();const{ariaLabelConfig:W}=F.getState();F.setState({ariaLiveMessage:W["node.a11yDescription.ariaLiveMessage"]({direction:H.key.replace("Arrow","").toLowerCase(),x:~~b.positionAbsolute.x,y:~~b.positionAbsolute.y})}),N({direction:Hn[H.key],factor:H.shiftKey?4:1})}}},J=()=>{var oe;if(g||!((oe=x.current)!=null&&oe.matches(":focus-visible")))return;const{transform:H,width:W,height:ee,autoPanOnNodeFocus:te,setCenter:Z}=F.getState();if(!te)return;Gr(new Map([[e,m]]),{x:0,y:0,width:W,height:ee},H,!0).length>0||Z(m.position.x+M.width/2,m.position.y+M.height/2,{zoom:H[2]})};return p.jsx("div",{className:he(["react-flow__node",`react-flow__node-${S}`,{[h]:P},m.className,{selected:m.selected,selectable:I,parent:C,draggable:P,dragging:k}]),ref:x,style:{zIndex:b.z,transform:`translate(${b.positionAbsolute.x}px,${b.positionAbsolute.y}px)`,pointerEvents:$?"all":"none",visibility:L?"visible":"hidden",...m.style,...D},"data-id":e,"data-testid":`rf__node-${e}`,onMouseEnter:R,onMouseMove:V,onMouseLeave:B,onContextMenu:X,onClick:ne,onDoubleClick:G,onKeyDown:T?re:void 0,tabIndex:T?0:void 0,onFocus:T?J:void 0,role:m.ariaRole??(T?"group":void 0),"aria-roledescription":"node","aria-describedby":g?void 0:`${Oi}-${v}`,"aria-label":m.ariaLabel,...m.domAttributes,children:p.jsx(_g,{value:e,children:p.jsx(A,{id:e,data:m.data,type:S,positionAbsoluteX:b.positionAbsolute.x,positionAbsoluteY:b.positionAbsolute.y,selected:m.selected??!1,selectable:I,draggable:P,deletable:m.deletable??!0,isConnectable:O,sourcePosition:m.sourcePosition,targetPosition:m.targetPosition,dragging:k,dragHandle:m.dragHandle,zIndex:b.z,parentId:m.parentId,...M})})})}var Wg=_.memo(Og);const Yg=e=>({nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,onError:e.onError});function ta(e){const{nodesConnectable:t,nodesFocusable:n,elementsSelectable:r,onError:o}=ae(Yg,de),s=Hg(e.onlyRenderVisibleElements),i=Vg();return p.jsx("div",{className:"react-flow__nodes",style:er,children:s.map(a=>p.jsx(Wg,{id:a,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:i,nodesDraggable:e.nodesDraggable??!0,nodesConnectable:t,nodesFocusable:n,elementsSelectable:r,nodeClickDistance:e.nodeClickDistance,onError:o},a))})}ta.displayName="NodeRenderer";const Xg=_.memo(ta);function Kg(e){return ae(_.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&&kf({sourceNode:s,targetNode:i,width:n.width,height:n.height,transform:n.transform})&&r.push(o.id)}return r},[e]),de)}const Gg=({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"})},qg=({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"})},ls={[Gt.Arrow]:Gg,[Gt.ArrowClosed]:qg};function Ug(e){const t=le();return _.useMemo(()=>{var o,s;return Object.prototype.hasOwnProperty.call(ls,e)?ls[e]:((s=(o=t.getState()).onError)==null||s.call(o,"009",Re.error009(e)),null)},[e])}const Zg=({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=Ug(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},na=({defaultColor:e,rfId:t})=>{const n=ae(s=>s.edges),r=ae(s=>s.defaultEdgeOptions),o=_.useMemo(()=>Tf(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(Zg,{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};na.displayName="MarkerDefinitions";var Qg=_.memo(na);function ra({x:e,y:t,label:n,labelStyle:r,labelShowBg:o=!0,labelBgStyle:s,labelBgPadding:i=[2,4],labelBgBorderRadius:a=2,children:l,className:c,...u}){const[f,d]=_.useState({x:1,y:0,width:0,height:0}),h=he(["react-flow__edge-textwrapper",c]),g=_.useRef(null);return _.useEffect(()=>{if(g.current){const v=g.current.getBBox();d({x:v.x,y:v.y,width:v.width,height:v.height})}},[n]),n?p.jsxs("g",{transform:`translate(${e-f.width/2} ${t-f.height/2})`,className:h,visibility:f.width?"visible":"hidden",...u,children:[o&&p.jsx("rect",{width:f.width+2*i[0],x:-i[0],y:-i[1],height:f.height+2*i[1],className:"react-flow__edge-textbg",style:s,rx:a,ry:a}),p.jsx("text",{className:"react-flow__edge-text",y:f.height/2,dy:"0.3em",ref:g,style:r,children:n}),l]}):null}ra.displayName="EdgeText";const Jg=_.memo(ra);function tr({path:e,labelX:t,labelY:n,label:r,labelStyle:o,labelShowBg:s,labelBgStyle:i,labelBgPadding:a,labelBgBorderRadius:l,interactionWidth:c=20,...u}){return p.jsxs(p.Fragment,{children:[p.jsx("path",{...u,d:e,fill:"none",className:he(["react-flow__edge-path",u.className])}),c?p.jsx("path",{d:e,fill:"none",strokeOpacity:0,strokeWidth:c,className:"react-flow__edge-interaction"}):null,r&&Te(t)&&Te(n)?p.jsx(Jg,{x:t,y:n,label:r,labelStyle:o,labelShowBg:s,labelBgStyle:i,labelBgPadding:a,labelBgBorderRadius:l}):null]})}function us({pos:e,x1:t,y1:n,x2:r,y2:o}){return e===Q.Left||e===Q.Right?[.5*(t+r),n]:[t,.5*(n+o)]}function oa({sourceX:e,sourceY:t,sourcePosition:n=Q.Bottom,targetX:r,targetY:o,targetPosition:s=Q.Top}){const[i,a]=us({pos:n,x1:e,y1:t,x2:r,y2:o}),[l,c]=us({pos:s,x1:r,y1:o,x2:e,y2:t}),[u,f,d,h]=_i({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}`,u,f,d,h]}function sa(e){return _.memo(({id:t,sourceX:n,sourceY:r,targetX:o,targetY:s,sourcePosition:i,targetPosition:a,label:l,labelStyle:c,labelShowBg:u,labelBgStyle:f,labelBgPadding:d,labelBgBorderRadius:h,style:g,markerEnd:v,markerStart:w,interactionWidth:y})=>{const[E,m,b]=oa({sourceX:n,sourceY:r,sourcePosition:i,targetX:o,targetY:s,targetPosition:a}),C=e.isInternal?void 0:t;return p.jsx(tr,{id:C,path:E,labelX:m,labelY:b,label:l,labelStyle:c,labelShowBg:u,labelBgStyle:f,labelBgPadding:d,labelBgBorderRadius:h,style:g,markerEnd:v,markerStart:w,interactionWidth:y})})}const ep=sa({isInternal:!1}),ia=sa({isInternal:!0});ep.displayName="SimpleBezierEdge";ia.displayName="SimpleBezierEdgeInternal";function aa(e){return _.memo(({id:t,sourceX:n,sourceY:r,targetX:o,targetY:s,label:i,labelStyle:a,labelShowBg:l,labelBgStyle:c,labelBgPadding:u,labelBgBorderRadius:f,style:d,sourcePosition:h=Q.Bottom,targetPosition:g=Q.Top,markerEnd:v,markerStart:w,pathOptions:y,interactionWidth:E})=>{const[m,b,C]=Tr({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:b,labelY:C,label:i,labelStyle:a,labelShowBg:l,labelBgStyle:c,labelBgPadding:u,labelBgBorderRadius:f,style:d,markerEnd:v,markerStart:w,interactionWidth:E})})}const ca=aa({isInternal:!1}),la=aa({isInternal:!0});ca.displayName="SmoothStepEdge";la.displayName="SmoothStepEdgeInternal";function ua(e){return _.memo(({id:t,...n})=>{var o;const r=e.isInternal?void 0:t;return p.jsx(ca,{...n,id:r,pathOptions:_.useMemo(()=>{var s;return{borderRadius:0,offset:(s=n.pathOptions)==null?void 0:s.offset}},[(o=n.pathOptions)==null?void 0:o.offset])})})}const tp=ua({isInternal:!1}),da=ua({isInternal:!0});tp.displayName="StepEdge";da.displayName="StepEdgeInternal";function fa(e){return _.memo(({id:t,sourceX:n,sourceY:r,targetX:o,targetY:s,label:i,labelStyle:a,labelShowBg:l,labelBgStyle:c,labelBgPadding:u,labelBgBorderRadius:f,style:d,markerEnd:h,markerStart:g,interactionWidth:v})=>{const[w,y,E]=Si({sourceX:n,sourceY:r,targetX:o,targetY:s}),m=e.isInternal?void 0:t;return p.jsx(tr,{id:m,path:w,labelX:y,labelY:E,label:i,labelStyle:a,labelShowBg:l,labelBgStyle:c,labelBgPadding:u,labelBgBorderRadius:f,style:d,markerEnd:h,markerStart:g,interactionWidth:v})})}const np=fa({isInternal:!1}),ha=fa({isInternal:!0});np.displayName="StraightEdge";ha.displayName="StraightEdgeInternal";function ga(e){return _.memo(({id:t,sourceX:n,sourceY:r,targetX:o,targetY:s,sourcePosition:i=Q.Bottom,targetPosition:a=Q.Top,label:l,labelStyle:c,labelShowBg:u,labelBgStyle:f,labelBgPadding:d,labelBgBorderRadius:h,style:g,markerEnd:v,markerStart:w,pathOptions:y,interactionWidth:E})=>{const[m,b,C]=Ei({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:b,labelY:C,label:l,labelStyle:c,labelShowBg:u,labelBgStyle:f,labelBgPadding:d,labelBgBorderRadius:h,style:g,markerEnd:v,markerStart:w,interactionWidth:E})})}const rp=ga({isInternal:!1}),pa=ga({isInternal:!0});rp.displayName="BezierEdge";pa.displayName="BezierEdgeInternal";const ds={default:pa,straight:ha,step:da,smoothstep:la,simplebezier:ia},fs={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null,zIndex:void 0},op=(e,t,n)=>n===Q.Left?e-t:n===Q.Right?e+t:e,sp=(e,t,n)=>n===Q.Top?e-t:n===Q.Bottom?e+t:e,hs="react-flow__edgeupdater";function gs({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([hs,`${hs}-${a}`]),cx:op(t,r,e),cy:sp(n,r,e),r,stroke:"transparent",fill:"transparent"})}function ip({isReconnectable:e,reconnectRadius:t,edge:n,sourceX:r,sourceY:o,targetX:s,targetY:i,sourcePosition:a,targetPosition:l,onReconnect:c,onReconnectStart:u,onReconnectEnd:f,setReconnecting:d,setUpdateHover:h}){const g=le(),v=(b,C)=>{if(b.button!==0)return;const{autoPanOnConnect:S,domNode:A,connectionMode:P,connectionRadius:I,lib:O,onConnectStart:T,cancelConnection:F,nodeLookup:L,rfId:x,panBy:k,updateConnection:N}=g.getState(),M=C.type==="target",D=(V,B)=>{d(!1),f==null||f(V,n,C.type,B)},$=V=>c==null?void 0:c(n,V),R=(V,B)=>{d(!0),u==null||u(b,n,C.type),T==null||T(V,B)};Lr.onPointerDown(b.nativeEvent,{autoPanOnConnect:S,connectionMode:P,connectionRadius:I,domNode:A,handleId:C.id,nodeId:C.nodeId,nodeLookup:L,isTarget:M,edgeUpdaterType:C.type,lib:O,flowId:x,cancelConnection:F,panBy:k,isValidConnection:(...V)=>{var B,X;return((X=(B=g.getState()).isValidConnection)==null?void 0:X.call(B,...V))??!0},onConnect:$,onConnectStart:R,onConnectEnd:(...V)=>{var B,X;return(X=(B=g.getState()).onConnectEnd)==null?void 0:X.call(B,...V)},onReconnectEnd:D,updateConnection:N,getTransform:()=>g.getState().transform,getFromHandle:()=>g.getState().connection.fromHandle,dragThreshold:g.getState().connectionDragThreshold,handleDomNode:b.currentTarget})},w=b=>v(b,{nodeId:n.target,id:n.targetHandle??null,type:"target"}),y=b=>v(b,{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(gs,{position:a,centerX:r,centerY:o,radius:t,onMouseDown:w,onMouseEnter:E,onMouseOut:m,type:"source"}),(e===!0||e==="target")&&p.jsx(gs,{position:l,centerX:s,centerY:i,radius:t,onMouseDown:y,onMouseEnter:E,onMouseOut:m,type:"target"})]})}function ap({id:e,edgesFocusable:t,edgesReconnectable:n,elementsSelectable:r,onClick:o,onDoubleClick:s,onContextMenu:i,onMouseEnter:a,onMouseMove:l,onMouseLeave:c,reconnectRadius:u,onReconnect:f,onReconnectStart:d,onReconnectEnd:h,rfId:g,edgeTypes:v,noPanClassName:w,onError:y,disableKeyboardA11y:E}){let m=ae(Z=>Z.edgeLookup.get(e));const b=ae(Z=>Z.defaultEdgeOptions);m=b?{...b,...m}:m;let C=m.type||"default",S=(v==null?void 0:v[C])||ds[C];S===void 0&&(y==null||y("011",Re.error011(C)),C="default",S=(v==null?void 0:v.default)||ds.default);const A=!!(m.focusable||t&&typeof m.focusable>"u"),P=typeof f<"u"&&(m.reconnectable||n&&typeof m.reconnectable>"u"),I=!!(m.selectable||r&&typeof m.selectable>"u"),O=_.useRef(null),[T,F]=_.useState(!1),[L,x]=_.useState(!1),k=le(),{zIndex:N=m.zIndex,sourceX:M,sourceY:D,targetX:$,targetY:R,sourcePosition:V,targetPosition:B}=ae(_.useCallback(Z=>{const Y=Z.nodeLookup.get(m.source),oe=Z.nodeLookup.get(m.target);if(!Y||!oe)return fs;const K=Pf({id:e,sourceNode:Y,targetNode:oe,sourceHandle:m.sourceHandle||null,targetHandle:m.targetHandle||null,connectionMode:Z.connectionMode,onError:y}),ie=Sf({selected:m.selected,zIndex:m.zIndex,sourceNode:Y,targetNode:oe,elevateOnSelect:Z.elevateEdgesOnSelect,zIndexMode:Z.zIndexMode});return{...K||fs,zIndex:ie}},[m.source,m.target,m.sourceHandle,m.targetHandle,m.selected,m.zIndex,y]),de),X=_.useMemo(()=>m.markerStart?`url('#${Dr(m.markerStart,g)}')`:void 0,[m.markerStart,g]),G=_.useMemo(()=>m.markerEnd?`url('#${Dr(m.markerEnd,g)}')`:void 0,[m.markerEnd,g]);if(m.hidden||M===null||D===null||$===null||R===null)return null;const ne=Z=>{var ie;const{addSelectedEdges:Y,unselectNodesAndEdges:oe,multiSelectionActive:K}=k.getState();I&&(k.setState({nodesSelectionActive:!1}),m.selected&&K?(oe({nodes:[],edges:[m]}),(ie=O.current)==null||ie.blur()):Y([e])),o&&o(Z,m)},re=s?Z=>{s(Z,{...m})}:void 0,J=i?Z=>{i(Z,{...m})}:void 0,H=a?Z=>{a(Z,{...m})}:void 0,W=l?Z=>{l(Z,{...m})}:void 0,ee=c?Z=>{c(Z,{...m})}:void 0,te=Z=>{var Y;if(!E&&ai.includes(Z.key)&&I){const{unselectNodesAndEdges:oe,addSelectedEdges:K}=k.getState();Z.key==="Escape"?((Y=O.current)==null||Y.blur(),oe({edges:[m]})):K([e])}};return p.jsx("svg",{style:{zIndex:N},children:p.jsxs("g",{className:he(["react-flow__edge",`react-flow__edge-${C}`,m.className,w,{selected:m.selected,animated:m.animated,inactive:!I&&!o,updating:T,selectable:I}]),onClick:ne,onDoubleClick:re,onContextMenu:J,onMouseEnter:H,onMouseMove:W,onMouseLeave:ee,onKeyDown:A?te:void 0,tabIndex:A?0:void 0,role:m.ariaRole??(A?"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":A?`${Wi}-${g}`:void 0,ref:O,...m.domAttributes,children:[!L&&p.jsx(S,{id:e,source:m.source,target:m.target,type:m.type,selected:m.selected,animated:m.animated,selectable:I,deletable:m.deletable??!0,label:m.label,labelStyle:m.labelStyle,labelShowBg:m.labelShowBg,labelBgStyle:m.labelBgStyle,labelBgPadding:m.labelBgPadding,labelBgBorderRadius:m.labelBgBorderRadius,sourceX:M,sourceY:D,targetX:$,targetY:R,sourcePosition:V,targetPosition:B,data:m.data,style:m.style,sourceHandleId:m.sourceHandle,targetHandleId:m.targetHandle,markerStart:X,markerEnd:G,pathOptions:"pathOptions"in m?m.pathOptions:void 0,interactionWidth:m.interactionWidth}),P&&p.jsx(ip,{edge:m,isReconnectable:P,reconnectRadius:u,onReconnect:f,onReconnectStart:d,onReconnectEnd:h,sourceX:M,sourceY:D,targetX:$,targetY:R,sourcePosition:V,targetPosition:B,setUpdateHover:F,setReconnecting:x})]})})}var cp=_.memo(ap);const lp=e=>({edgesFocusable:e.edgesFocusable,edgesReconnectable:e.edgesReconnectable,elementsSelectable:e.elementsSelectable,connectionMode:e.connectionMode,onError:e.onError});function ma({defaultMarkerColor:e,onlyRenderVisibleElements:t,rfId:n,edgeTypes:r,noPanClassName:o,onReconnect:s,onEdgeContextMenu:i,onEdgeMouseEnter:a,onEdgeMouseMove:l,onEdgeMouseLeave:c,onEdgeClick:u,reconnectRadius:f,onEdgeDoubleClick:d,onReconnectStart:h,onReconnectEnd:g,disableKeyboardA11y:v}){const{edgesFocusable:w,edgesReconnectable:y,elementsSelectable:E,onError:m}=ae(lp,de),b=Kg(t);return p.jsxs("div",{className:"react-flow__edges",children:[p.jsx(Qg,{defaultColor:e,rfId:n}),b.map(C=>p.jsx(cp,{id:C,edgesFocusable:w,edgesReconnectable:y,elementsSelectable:E,noPanClassName:o,onReconnect:s,onContextMenu:i,onMouseEnter:a,onMouseMove:l,onMouseLeave:c,onClick:u,reconnectRadius:f,onDoubleClick:d,onReconnectStart:h,onReconnectEnd:g,rfId:n,onError:m,edgeTypes:r,disableKeyboardA11y:v},C))]})}ma.displayName="EdgeRenderer";const up=_.memo(ma),ps=e=>`translate(${e[0]}px,${e[1]}px) scale(${e[2]})`;function dp({children:e}){const t=le(),n=_.useRef(null),[r]=_.useState(()=>t.getState().transform);return Gi(()=>{let o=null;const s=()=>{const i=t.getState().transform;o&&i[0]===o[0]&&i[1]===o[1]&&i[2]===o[2]||(o=i,n.current&&(n.current.style.transform=ps(i)))};return s(),t.subscribe(s)},[t]),p.jsx("div",{ref:n,className:"react-flow__viewport xyflow__viewport react-flow__container",style:{transform:ps(r)},children:e})}function fp(e){const t=Jn(),n=_.useRef(!1);_.useEffect(()=>{!n.current&&t.viewportInitialized&&e&&(setTimeout(()=>e(t),1),n.current=!0)},[e,t.viewportInitialized])}const hp=e=>{var t;return(t=e.panZoom)==null?void 0:t.syncViewport};function gp(e){const t=ae(hp),n=le();return _.useEffect(()=>{e&&(t==null||t(e),n.setState({transform:[e.x,e.y,e.zoom]}))},[e,t]),null}function pp(e){return e.connection.inProgress?{...e.connection,to:rn(e.connection.to,e.transform)}:{...e.connection}}function mp(e){return pp}function yp(e){const t=mp();return ae(t,de)}const xp=e=>({nodesConnectable:e.nodesConnectable,isValid:e.connection.isValid,inProgress:e.connection.inProgress,width:e.width,height:e.height});function wp({containerStyle:e,style:t,type:n,component:r}){const{nodesConnectable:o,width:s,height:i,isValid:a,inProgress:l}=ae(xp,de);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",ui(a)]),children:p.jsx(ya,{style:t,type:n,CustomComponent:r,isValid:a})})})}const ya=({style:e,type:t=Ue.Bezier,CustomComponent:n,isValid:r})=>{const{inProgress:o,from:s,fromNode:i,fromHandle:a,fromPosition:l,to:c,toNode:u,toHandle:f,toPosition:d,pointer:h}=yp();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:d,connectionStatus:ui(r),toNode:u,toHandle:f,pointer:h});let g="";const v={sourceX:s.x,sourceY:s.y,sourcePosition:l,targetX:c.x,targetY:c.y,targetPosition:d};switch(t){case Ue.Bezier:[g]=Ei(v);break;case Ue.SimpleBezier:[g]=oa(v);break;case Ue.Step:[g]=Tr({...v,borderRadius:0});break;case Ue.SmoothStep:[g]=Tr(v);break;default:[g]=Si(v)}return p.jsx("path",{d:g,fill:"none",className:"react-flow__connection-path",style:e})};ya.displayName="ConnectionLine";const vp={};function ms(e=vp){_.useRef(e),le(),_.useEffect(()=>{},[e])}function bp(){le(),_.useRef(!1),_.useEffect(()=>{},[])}function xa({nodeTypes:e,edgeTypes:t,onInit:n,onNodeClick:r,onEdgeClick:o,onNodeDoubleClick:s,onEdgeDoubleClick:i,onNodeMouseEnter:a,onNodeMouseMove:l,onNodeMouseLeave:c,onNodeContextMenu:u,onSelectionContextMenu:f,onSelectionStart:d,onSelectionEnd:h,connectionLineType:g,connectionLineStyle:v,connectionLineComponent:w,connectionLineContainerStyle:y,selectionKeyCode:E,selectionOnDrag:m,selectionMode:b,multiSelectionKeyCode:C,panActivationKeyCode:S,zoomActivationKeyCode:A,deleteKeyCode:P,onlyRenderVisibleElements:I,elementsSelectable:O,defaultViewport:T,translateExtent:F,minZoom:L,maxZoom:x,preventScrolling:k,defaultMarkerColor:N,zoomOnScroll:M,zoomOnPinch:D,panOnScroll:$,panOnScrollSpeed:R,panOnScrollMode:V,zoomOnDoubleClick:B,panOnDrag:X,autoPanOnSelection:G,onPaneClick:ne,onPaneMouseEnter:re,onPaneMouseMove:J,onPaneMouseLeave:H,onPaneScroll:W,onPaneContextMenu:ee,paneClickDistance:te,nodeClickDistance:Z,onEdgeContextMenu:Y,onEdgeMouseEnter:oe,onEdgeMouseMove:K,onEdgeMouseLeave:ie,reconnectRadius:ce,onReconnect:me,onReconnectStart:ge,onReconnectEnd:we,noDragClassName:Me,noWheelClassName:Xe,noPanClassName:xe,disableKeyboardA11y:ve,nodeExtent:be,rfId:Ce,viewport:Ae,onViewportChange:$e,nodesDraggable:et}){return ms(e),ms(t),bp(),fp(n),gp(Ae),p.jsx(Lg,{onPaneClick:ne,onPaneMouseEnter:re,onPaneMouseMove:J,onPaneMouseLeave:H,onPaneContextMenu:ee,onPaneScroll:W,paneClickDistance:te,deleteKeyCode:P,selectionKeyCode:E,selectionOnDrag:m,selectionMode:b,onSelectionStart:d,onSelectionEnd:h,multiSelectionKeyCode:C,panActivationKeyCode:S,zoomActivationKeyCode:A,elementsSelectable:O,zoomOnScroll:M,zoomOnPinch:D,zoomOnDoubleClick:B,panOnScroll:$,panOnScrollSpeed:R,panOnScrollMode:V,panOnDrag:X,autoPanOnSelection:G,defaultViewport:T,translateExtent:F,minZoom:L,maxZoom:x,onSelectionContextMenu:f,preventScrolling:k,noDragClassName:Me,noWheelClassName:Xe,noPanClassName:xe,disableKeyboardA11y:ve,onViewportChange:$e,isControlledViewport:!!Ae,children:p.jsxs(dp,{children:[p.jsx(up,{edgeTypes:t,onEdgeClick:o,onEdgeDoubleClick:i,onReconnect:me,onReconnectStart:ge,onReconnectEnd:we,onlyRenderVisibleElements:I,onEdgeContextMenu:Y,onEdgeMouseEnter:oe,onEdgeMouseMove:K,onEdgeMouseLeave:ie,reconnectRadius:ce,defaultMarkerColor:N,noPanClassName:xe,disableKeyboardA11y:ve,rfId:Ce}),p.jsx(wp,{style:v,type:g,component:w,containerStyle:y}),p.jsx("div",{className:"react-flow__edgelabel-renderer"}),p.jsx(Xg,{nodeTypes:e,onNodeClick:r,onNodeDoubleClick:s,onNodeMouseEnter:a,onNodeMouseMove:l,onNodeMouseLeave:c,onNodeContextMenu:u,nodeClickDistance:Z,onlyRenderVisibleElements:I,noPanClassName:xe,noDragClassName:Me,disableKeyboardA11y:ve,nodeExtent:be,rfId:Ce,nodesDraggable:et}),p.jsx("div",{className:"react-flow__viewport-portal"})]})})}xa.displayName="GraphView";const _p=_.memo(xa),Ep=mi(),ys=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:o,height:s,fitView:i,fitViewOptions:a,minZoom:l=.5,maxZoom:c=2,nodeOrigin:u,nodeExtent:f,zIndexMode:d="basic"}={})=>{const h=new Map,g=new Map,v=new Map,w=new Map,y=r??t??[],E=n??e??[],m=u??[0,0],b=f??Xt;Ci(v,w,y);const{nodesInitialized:C}=Rr(E,h,g,{nodeOrigin:m,nodeExtent:b,zIndexMode:d});let S=[0,0,1];if(i&&o&&s){const A=tn(h,{filter:T=>!!((T.width||T.initialWidth)&&(T.height||T.initialHeight))}),{x:P,y:I,zoom:O}=Ur(A,o,s,l,c,(a==null?void 0:a.padding)??.1);S=[P,I,O]}return{rfId:"1",width:o??0,height:s??0,transform:S,nodes:E,nodesInitialized:C,nodeLookup:h,parentLookup:g,edges:y,edgeLookup:w,connectionLookup:v,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:n!==void 0,hasDefaultEdges:r!==void 0,panZoom:null,minZoom:l,maxZoom:c,translateExtent:Xt,nodeExtent:b,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:St.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:{...li},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:Ep,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:"react",debug:!1,ariaLabelConfig:ci,zIndexMode:d,onNodesChangeMiddlewareMap:new Map,onEdgesChangeMiddlewareMap:new Map}},Np=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:o,height:s,fitView:i,fitViewOptions:a,minZoom:l,maxZoom:c,nodeOrigin:u,nodeExtent:f,zIndexMode:d})=>Rh((h,g)=>{async function v(){const{nodeLookup:w,panZoom:y,fitViewOptions:E,fitViewResolver:m,width:b,height:C,minZoom:S,maxZoom:A}=g();y&&(await xf({nodes:w,width:b,height:C,panZoom:y,minZoom:S,maxZoom:A},E),m==null||m.resolve(!0),h({fitViewResolver:null}))}return{...ys({nodes:e,edges:t,width:o,height:s,fitView:i,fitViewOptions:a,minZoom:l,maxZoom:c,nodeOrigin:u,nodeExtent:f,defaultNodes:n,defaultEdges:r,zIndexMode:d}),setNodes:w=>{const{nodeLookup:y,parentLookup:E,nodeOrigin:m,nodeExtent:b,elevateNodesOnSelect:C,fitViewQueued:S,zIndexMode:A,nodesSelectionActive:P}=g(),{nodesInitialized:I,hasSelectedNodes:O}=Rr(w,y,E,{nodeOrigin:m,nodeExtent:b,elevateNodesOnSelect:C,checkEquality:!0,zIndexMode:A}),T=P&&O;S&&I?(v(),h({nodes:w,nodesInitialized:I,fitViewQueued:!1,fitViewOptions:void 0,nodesSelectionActive:T})):h({nodes:w,nodesInitialized:I,nodesSelectionActive:T})},setEdges:w=>{const{connectionLookup:y,edgeLookup:E}=g();Ci(y,E,w),h({edges:w})},setDefaultNodesAndEdges:(w,y)=>{if(w){const{setNodes:E}=g();E(w),h({hasDefaultNodes:!0})}if(y){const{setEdges:E}=g();E(y),h({hasDefaultEdges:!0})}},updateNodeInternals:w=>{const{triggerNodeChanges:y,nodeLookup:E,parentLookup:m,domNode:b,nodeOrigin:C,nodeExtent:S,debug:A,fitViewQueued:P,zIndexMode:I}=g(),{changes:O,updatedInternals:T}=Vf(w,E,m,b,C,S,I);T&&(Lf(E,m,{nodeOrigin:C,nodeExtent:S,zIndexMode:I}),P?(v(),h({fitViewQueued:!1,fitViewOptions:void 0})):h({}),(O==null?void 0:O.length)>0&&(A&&console.log("React Flow: trigger node changes",O),y==null||y(O)))},updateNodePositions:(w,y=!1)=>{const E=[];let m=[];const{nodeLookup:b,triggerNodeChanges:C,connection:S,updateConnection:A,onNodesChangeMiddlewareMap:P}=g();for(const[I,O]of w){const T=b.get(I),F=!!(T!=null&&T.expandParent&&(T!=null&&T.parentId)&&(O!=null&&O.position)),L={id:I,type:"position",position:F?{x:Math.max(0,O.position.x),y:Math.max(0,O.position.y)}:O.position,dragging:y};if(T&&S.inProgress&&S.fromNode.id===T.id){const x=ht(T,S.fromHandle,Q.Left,!0);A({...S,from:x})}F&&T.parentId&&E.push({id:I,parentId:T.parentId,rect:{...O.internals.positionAbsolute,width:O.measured.width??0,height:O.measured.height??0}}),m.push(L)}if(E.length>0){const{parentLookup:I,nodeOrigin:O}=g(),T=no(E,b,I,O);m.push(...T)}for(const I of P.values())m=I(m);C(m)},triggerNodeChanges:w=>{const{onNodesChange:y,setNodes:E,nodes:m,hasDefaultNodes:b,debug:C}=g();if(w!=null&&w.length){if(b){const S=rg(w,m);E(S)}C&&console.log("React Flow: trigger node changes",w),y==null||y(w)}},triggerEdgeChanges:w=>{const{onEdgesChange:y,setEdges:E,edges:m,hasDefaultEdges:b,debug:C}=g();if(w!=null&&w.length){if(b){const S=og(w,m);E(S)}C&&console.log("React Flow: trigger edge changes",w),y==null||y(w)}},addSelectedNodes:w=>{const{multiSelectionActive:y,edgeLookup:E,nodeLookup:m,triggerNodeChanges:b,triggerEdgeChanges:C}=g();if(y){const S=w.map(A=>ot(A,!0));b(S);return}b(vt(m,new Set([...w]),!0)),C(vt(E))},addSelectedEdges:w=>{const{multiSelectionActive:y,edgeLookup:E,nodeLookup:m,triggerNodeChanges:b,triggerEdgeChanges:C}=g();if(y){const S=w.map(A=>ot(A,!0));C(S);return}C(vt(E,new Set([...w]))),b(vt(m,new Set,!0))},unselectNodesAndEdges:({nodes:w,edges:y}={})=>{const{edges:E,nodes:m,nodeLookup:b,triggerNodeChanges:C,triggerEdgeChanges:S}=g(),A=w||m,P=y||E,I=[];for(const T of A){if(!T.selected)continue;const F=b.get(T.id);F&&(F.selected=!1),I.push(ot(T.id,!1))}const O=[];for(const T of P)T.selected&&O.push(ot(T.id,!1));C(I),S(O)},setMinZoom:w=>{const{panZoom:y,maxZoom:E}=g();y==null||y.setScaleExtent([w,E]),h({minZoom:w})},setMaxZoom:w=>{const{panZoom:y,minZoom:E}=g();y==null||y.setScaleExtent([E,w]),h({maxZoom:w})},setTranslateExtent:w=>{var y;(y=g().panZoom)==null||y.setTranslateExtent(w),h({translateExtent:w})},resetSelectedElements:()=>{const{edges:w,nodes:y,triggerNodeChanges:E,triggerEdgeChanges:m,elementsSelectable:b}=g();if(!b)return;const C=y.reduce((A,P)=>P.selected?[...A,ot(P.id,!1)]:A,[]),S=w.reduce((A,P)=>P.selected?[...A,ot(P.id,!1)]:A,[]);E(C),m(S)},setNodeExtent:w=>{const{nodes:y,nodeLookup:E,parentLookup:m,nodeOrigin:b,elevateNodesOnSelect:C,nodeExtent:S,zIndexMode:A}=g();w[0][0]===S[0][0]&&w[0][1]===S[0][1]&&w[1][0]===S[1][0]&&w[1][1]===S[1][1]||(Rr(y,E,m,{nodeOrigin:b,nodeExtent:w,elevateNodesOnSelect:C,checkEquality:!1,zIndexMode:A}),h({nodeExtent:w}))},panBy:w=>{const{transform:y,width:E,height:m,panZoom:b,translateExtent:C}=g();return Ff({delta:w,panZoom:b,transform:y,translateExtent:C,width:E,height:m})},setCenter:async(w,y,E)=>{const{width:m,height:b,maxZoom:C,panZoom:S}=g();if(!S)return!1;const A=typeof(E==null?void 0:E.zoom)<"u"?E.zoom:C;return await S.setViewport({x:m/2-w*A,y:b/2-y*A,zoom:A},{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:{...li}})},updateConnection:w=>{h({connection:w})},reset:()=>h({...ys()})}},Object.is);function wa({initialNodes:e,initialEdges:t,defaultNodes:n,defaultEdges:r,initialWidth:o,initialHeight:s,initialMinZoom:i,initialMaxZoom:a,initialFitViewOptions:l,fitView:c,nodeOrigin:u,nodeExtent:f,zIndexMode:d,children:h}){const[g]=_.useState(()=>Np({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:o,height:s,fitView:c,minZoom:i,maxZoom:a,fitViewOptions:l,nodeOrigin:u,nodeExtent:f,zIndexMode:d}));return p.jsx(Lh,{value:g,children:p.jsx(lg,{children:p.jsx(Ng,{children:h})})})}function Sp({children:e,nodes:t,edges:n,defaultNodes:r,defaultEdges:o,width:s,height:i,fitView:a,fitViewOptions:l,minZoom:c,maxZoom:u,nodeOrigin:f,nodeExtent:d,zIndexMode:h}){return _.useContext(Zn)?p.jsx(p.Fragment,{children:e}):p.jsx(wa,{initialNodes:t,initialEdges:n,defaultNodes:r,defaultEdges:o,initialWidth:s,initialHeight:i,fitView:a,initialFitViewOptions:l,initialMinZoom:c,initialMaxZoom:u,nodeOrigin:f,nodeExtent:d,zIndexMode:h,children:e})}const kp={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0};function Mp({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,className:o,nodeTypes:s,edgeTypes:i,onNodeClick:a,onEdgeClick:l,onInit:c,onMove:u,onMoveStart:f,onMoveEnd:d,onConnect:h,onConnectStart:g,onConnectEnd:v,onClickConnectStart:w,onClickConnectEnd:y,onNodeMouseEnter:E,onNodeMouseMove:m,onNodeMouseLeave:b,onNodeContextMenu:C,onNodeDoubleClick:S,onNodeDragStart:A,onNodeDrag:P,onNodeDragStop:I,onNodesDelete:O,onEdgesDelete:T,onDelete:F,onSelectionChange:L,onSelectionDragStart:x,onSelectionDrag:k,onSelectionDragStop:N,onSelectionContextMenu:M,onSelectionStart:D,onSelectionEnd:$,onBeforeDelete:R,connectionMode:V,connectionLineType:B=Ue.Bezier,connectionLineStyle:X,connectionLineComponent:G,connectionLineContainerStyle:ne,deleteKeyCode:re="Backspace",selectionKeyCode:J="Shift",selectionOnDrag:H=!1,selectionMode:W=Kt.Full,panActivationKeyCode:ee="Space",multiSelectionKeyCode:te=Ut()?"Meta":"Control",zoomActivationKeyCode:Z=Ut()?"Meta":"Control",snapToGrid:Y,snapGrid:oe,onlyRenderVisibleElements:K=!1,selectNodesOnDrag:ie,nodesDraggable:ce,autoPanOnNodeFocus:me,nodesConnectable:ge,nodesFocusable:we,nodeOrigin:Me=Yi,edgesFocusable:Xe,edgesReconnectable:xe,elementsSelectable:ve=!0,defaultViewport:be=Uh,minZoom:Ce=.5,maxZoom:Ae=2,translateExtent:$e=Xt,preventScrolling:et=!0,nodeExtent:tt,defaultMarkerColor:It="#b1b1b7",zoomOnScroll:gt=!0,zoomOnPinch:jt=!0,panOnScroll:Pt=!1,panOnScrollSpeed:nr=.5,panOnScrollMode:rr=at.Free,zoomOnDoubleClick:on=!0,panOnDrag:He=!0,onPaneClick:sn,onPaneMouseEnter:nt,onPaneMouseMove:an,onPaneMouseLeave:cn,onPaneScroll:rt,onPaneContextMenu:pt,paneClickDistance:mt=1,nodeClickDistance:ln=0,children:or,onReconnect:sr,onReconnectStart:ir,onReconnectEnd:un,onEdgeContextMenu:z,onEdgeDoubleClick:q,onEdgeMouseEnter:U,onEdgeMouseMove:se,onEdgeMouseLeave:ue,reconnectRadius:j=10,onNodesChange:ye,onEdgesChange:pe,noDragClassName:yt="nodrag",noWheelClassName:dn="nowheel",noPanClassName:_e="nopan",fitView:Ne,fitViewOptions:fn,connectOnClick:Aa,attributionPosition:$a,proOptions:Ia,defaultEdgeOptions:ja,elevateNodesOnSelect:Pa=!0,elevateEdgesOnSelect:Ta=!1,disableKeyboardA11y:so=!1,autoPanOnConnect:Da,autoPanOnNodeDrag:Ra,autoPanOnSelection:La=!0,autoPanSpeed:za,connectionRadius:Ha,isValidConnection:Ba,onError:Va,style:Fa,id:io,nodeDragThreshold:Oa,connectionDragThreshold:Wa,viewport:Ya,onViewportChange:Xa,width:Ka,height:Ga,colorMode:qa="light",debug:Ua,onScroll:hn,ariaLabelConfig:Za,zIndexMode:ao="basic",...Qa},Ja){const ar=io||"1",ec=eg(qa),tc=_.useCallback(co=>{co.currentTarget.scrollTo({top:0,left:0,behavior:"instant"}),hn==null||hn(co)},[hn]);return p.jsx("div",{"data-testid":"rf__wrapper",...Qa,onScroll:tc,style:{...Fa,...kp},ref:Ja,className:he(["react-flow",o,ec]),id:io,role:"application",children:p.jsxs(Sp,{nodes:e,edges:t,width:Ka,height:Ga,fitView:Ne,fitViewOptions:fn,minZoom:Ce,maxZoom:Ae,nodeOrigin:Me,nodeExtent:tt,zIndexMode:ao,children:[p.jsx(Jh,{nodes:e,edges:t,defaultNodes:n,defaultEdges:r,onConnect:h,onConnectStart:g,onConnectEnd:v,onClickConnectStart:w,onClickConnectEnd:y,nodesDraggable:ce,autoPanOnNodeFocus:me,nodesConnectable:ge,nodesFocusable:we,edgesFocusable:Xe,edgesReconnectable:xe,elementsSelectable:ve,elevateNodesOnSelect:Pa,elevateEdgesOnSelect:Ta,minZoom:Ce,maxZoom:Ae,nodeExtent:tt,onNodesChange:ye,onEdgesChange:pe,snapToGrid:Y,snapGrid:oe,connectionMode:V,translateExtent:$e,connectOnClick:Aa,defaultEdgeOptions:ja,fitView:Ne,fitViewOptions:fn,onNodesDelete:O,onEdgesDelete:T,onDelete:F,onNodeDragStart:A,onNodeDrag:P,onNodeDragStop:I,onSelectionDrag:k,onSelectionDragStart:x,onSelectionDragStop:N,onMove:u,onMoveStart:f,onMoveEnd:d,noPanClassName:_e,nodeOrigin:Me,rfId:ar,autoPanOnConnect:Da,autoPanOnNodeDrag:Ra,autoPanSpeed:za,onError:Va,connectionRadius:Ha,isValidConnection:Ba,selectNodesOnDrag:ie,nodeDragThreshold:Oa,connectionDragThreshold:Wa,onBeforeDelete:R,debug:Ua,ariaLabelConfig:Za,zIndexMode:ao}),p.jsx(_p,{onInit:c,onNodeClick:a,onEdgeClick:l,onNodeMouseEnter:E,onNodeMouseMove:m,onNodeMouseLeave:b,onNodeContextMenu:C,onNodeDoubleClick:S,nodeTypes:s,edgeTypes:i,connectionLineType:B,connectionLineStyle:X,connectionLineComponent:G,connectionLineContainerStyle:ne,selectionKeyCode:J,selectionOnDrag:H,selectionMode:W,deleteKeyCode:re,multiSelectionKeyCode:te,panActivationKeyCode:ee,zoomActivationKeyCode:Z,onlyRenderVisibleElements:K,defaultViewport:be,translateExtent:$e,minZoom:Ce,maxZoom:Ae,preventScrolling:et,zoomOnScroll:gt,zoomOnPinch:jt,zoomOnDoubleClick:on,panOnScroll:Pt,panOnScrollSpeed:nr,panOnScrollMode:rr,panOnDrag:He,autoPanOnSelection:La,onPaneClick:sn,onPaneMouseEnter:nt,onPaneMouseMove:an,onPaneMouseLeave:cn,onPaneScroll:rt,onPaneContextMenu:pt,paneClickDistance:mt,nodeClickDistance:ln,onSelectionContextMenu:M,onSelectionStart:D,onSelectionEnd:$,onReconnect:sr,onReconnectStart:ir,onReconnectEnd:un,onEdgeContextMenu:z,onEdgeDoubleClick:q,onEdgeMouseEnter:U,onEdgeMouseMove:se,onEdgeMouseLeave:ue,reconnectRadius:j,defaultMarkerColor:It,noDragClassName:yt,noWheelClassName:dn,noPanClassName:_e,rfId:ar,disableKeyboardA11y:so,nodeExtent:tt,viewport:Ya,onViewportChange:Xa,nodesDraggable:ce}),p.jsx(qh,{onSelectionChange:L}),or,p.jsx(Wh,{proOptions:Ia,position:$a}),p.jsx(Oh,{rfId:ar,disableKeyboardA11y:so})]})})}var Cp=Ki(Mp);function Ap({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 $p({radius:e,className:t}){return p.jsx("circle",{cx:e,cy:e,r:e,className:he(["react-flow__background-pattern","dots",t])})}var Qe;(function(e){e.Lines="lines",e.Dots="dots",e.Cross="cross"})(Qe||(Qe={}));const Ip={[Qe.Dots]:1,[Qe.Lines]:1,[Qe.Cross]:6},jp=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function va({id:e,variant:t=Qe.Dots,gap:n=20,size:r,lineWidth:o=1,offset:s=0,color:i,bgColor:a,style:l,className:c,patternClassName:u}){const f=_.useRef(null),{transform:d,patternId:h}=ae(jp,de),g=r||Ip[t],v=t===Qe.Dots,w=t===Qe.Cross,y=Array.isArray(n)?n:[n,n],E=[y[0]*d[2]||1,y[1]*d[2]||1],m=g*d[2],b=Array.isArray(s)?s:[s,s],C=w?[m,m]:E,S=[b[0]*d[2]+C[0]/2,b[1]*d[2]+C[1]/2],A=`${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:f,"data-testid":"rf__background",children:[p.jsx("pattern",{id:A,x:d[0]%E[0],y:d[1]%E[1],width:E[0],height:E[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${S[0]},-${S[1]})`,children:v?p.jsx($p,{radius:m/2,className:u}):p.jsx(Ap,{dimensions:C,lineWidth:o,variant:t,className:u})}),p.jsx("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${A})`})]})}va.displayName="Background";_.memo(va);function Pp(){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 Tp(){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 Dp(){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 Rp(){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 Lp(){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 zp=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom,ariaLabelConfig:e.ariaLabelConfig});function ba({style:e,showZoom:t=!0,showFitView:n=!0,showInteractive:r=!0,fitViewOptions:o,onZoomIn:s,onZoomOut:i,onFitView:a,onInteractiveChange:l,className:c,children:u,position:f="bottom-left",orientation:d="vertical","aria-label":h}){const g=le(),{isInteractive:v,minZoomReached:w,maxZoomReached:y,ariaLabelConfig:E}=ae(zp,de),{zoomIn:m,zoomOut:b,fitView:C}=Jn(),S=()=>{m(),s==null||s()},A=()=>{b(),i==null||i()},P=()=>{C(o),a==null||a()},I=()=>{g.setState({nodesDraggable:!v,nodesConnectable:!v,elementsSelectable:!v}),l==null||l(!v)},O=d==="horizontal"?"horizontal":"vertical";return p.jsxs(Qn,{className:he(["react-flow__controls",O,c]),position:f,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(Pp,{})}),p.jsx(_n,{onClick:A,className:"react-flow__controls-zoomout",title:E["controls.zoomOut.ariaLabel"],"aria-label":E["controls.zoomOut.ariaLabel"],disabled:w,children:p.jsx(Tp,{})})]}),n&&p.jsx(_n,{className:"react-flow__controls-fitview",onClick:P,title:E["controls.fitView.ariaLabel"],"aria-label":E["controls.fitView.ariaLabel"],children:p.jsx(Dp,{})}),r&&p.jsx(_n,{className:"react-flow__controls-interactive",onClick:I,title:E["controls.interactive.ariaLabel"],"aria-label":E["controls.interactive.ariaLabel"],children:v?p.jsx(Lp,{}):p.jsx(Rp,{})}),u]})}ba.displayName="Controls";_.memo(ba);function Hp({id:e,x:t,y:n,width:r,height:o,style:s,color:i,strokeColor:a,strokeWidth:l,className:c,borderRadius:u,shapeRendering:f,selected:d,onClick:h}){const{background:g,backgroundColor:v}=s||{},w=i||g||v;return p.jsx("rect",{className:he(["react-flow__minimap-node",{selected:d},c]),x:t,y:n,rx:u,ry:u,width:r,height:o,style:{fill:w,stroke:a,strokeWidth:l},shapeRendering:f,onClick:h?y=>h(y,e):void 0})}const Bp=_.memo(Hp),Vp=e=>e.nodes.map(t=>t.id),yr=e=>e instanceof Function?e:()=>e;function Fp({nodeStrokeColor:e,nodeColor:t,nodeClassName:n="",nodeBorderRadius:r=5,nodeStrokeWidth:o,nodeComponent:s=Bp,onClick:i}){const a=ae(Vp,de),l=yr(t),c=yr(e),u=yr(n),f=typeof window>"u"||window.chrome?"crispEdges":"geometricPrecision";return p.jsx(p.Fragment,{children:a.map(d=>p.jsx(Wp,{id:d,nodeColorFunc:l,nodeStrokeColorFunc:c,nodeClassNameFunc:u,nodeBorderRadius:r,nodeStrokeWidth:o,NodeComponent:s,onClick:i,shapeRendering:f},d))})}function Op({id:e,nodeColorFunc:t,nodeStrokeColorFunc:n,nodeClassNameFunc:r,nodeBorderRadius:o,nodeStrokeWidth:s,shapeRendering:i,NodeComponent:a,onClick:l}){const{node:c,x:u,y:f,width:d,height:h}=ae(g=>{const v=g.nodeLookup.get(e);if(!v)return{node:void 0,x:0,y:0,width:0,height:0};const w=v.internals.userNode,{x:y,y:E}=v.internals.positionAbsolute,{width:m,height:b}=ze(w);return{node:w,x:y,y:E,width:m,height:b}},de);return!c||c.hidden||!yi(c)?null:p.jsx(a,{x:u,y:f,width:d,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 Wp=_.memo(Op);var Yp=_.memo(Fp);const Xp=200,Kp=150,Gp=e=>!e.hidden,qp=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?gi(tn(e.nodeLookup,{filter:Gp}),t):t,rfId:e.rfId,panZoom:e.panZoom,translateExtent:e.translateExtent,flowWidth:e.width,flowHeight:e.height,ariaLabelConfig:e.ariaLabelConfig}},xs=(e,t)=>e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height,Up=(e,t)=>xs(e.viewBB,t.viewBB)&&xs(e.boundingRect,t.boundingRect)&&e.rfId===t.rfId&&e.panZoom===t.panZoom&&e.translateExtent===t.translateExtent&&e.flowWidth===t.flowWidth&&e.flowHeight===t.flowHeight&&e.ariaLabelConfig===t.ariaLabelConfig,Zp="react-flow__minimap-desc";function _a({style:e,className:t,nodeStrokeColor:n,nodeColor:r,nodeClassName:o="",nodeBorderRadius:s=5,nodeStrokeWidth:i,nodeComponent:a,bgColor:l,maskColor:c,maskStrokeColor:u,maskStrokeWidth:f,position:d="bottom-right",onClick:h,onNodeClick:g,pannable:v=!1,zoomable:w=!1,ariaLabel:y,inversePan:E,zoomStep:m=1,offsetScale:b=5}){const C=le(),S=_.useRef(null),{boundingRect:A,viewBB:P,rfId:I,panZoom:O,translateExtent:T,flowWidth:F,flowHeight:L,ariaLabelConfig:x}=ae(qp,Up),k=(e==null?void 0:e.width)??Xp,N=(e==null?void 0:e.height)??Kp,M=A.width/k,D=A.height/N,$=Math.max(M,D),R=$*k,V=$*N,B=b*$,X=A.x-(R-A.width)/2-B,G=A.y-(V-A.height)/2-B,ne=R+B*2,re=V+B*2,J=`${Zp}-${I}`,H=_.useRef(0),W=_.useRef();H.current=$,_.useEffect(()=>{if(S.current&&O)return W.current=Zf({domNode:S.current,panZoom:O,getTransform:()=>C.getState().transform,getViewScale:()=>H.current}),()=>{var Y;(Y=W.current)==null||Y.destroy()}},[O]),_.useEffect(()=>{var Y;(Y=W.current)==null||Y.update({translateExtent:T,width:F,height:L,inversePan:E,pannable:v,zoomStep:m,zoomable:w})},[v,w,E,m,T,F,L]);const ee=h?Y=>{var ie;const[oe,K]=((ie=W.current)==null?void 0:ie.pointer(Y))||[0,0];h(Y,{x:oe,y:K})}:void 0,te=g?_.useCallback((Y,oe)=>{const K=C.getState().nodeLookup.get(oe).internals.userNode;g(Y,K)},[]):void 0,Z=y??x["minimap.ariaLabel"];return p.jsx(Qn,{position:d,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 u=="string"?u:void 0,"--xy-minimap-mask-stroke-width-props":typeof f=="number"?f*$: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:k,height:N,viewBox:`${X} ${G} ${ne} ${re}`,className:"react-flow__minimap-svg",role:"img","aria-labelledby":J,ref:S,onClick:ee,children:[Z&&p.jsx("title",{id:J,children:Z}),p.jsx(Yp,{onClick:te,nodeColor:r,nodeStrokeColor:n,nodeBorderRadius:s,nodeClassName:o,nodeStrokeWidth:i,nodeComponent:a}),p.jsx("path",{className:"react-flow__minimap-mask",d:`M${X-B},${G-B}h${ne+B*2}v${re+B*2}h${-ne-B*2}z
24
- M${P.x},${P.y}h${P.width}v${P.height}h${-P.width}z`,fillRule:"evenodd",pointerEvents:"none"})]})})}_a.displayName="MiniMap";_.memo(_a);const Qp=e=>t=>e?`${Math.max(1/t.transform[2],1)}`:void 0,Jp={[Ct.Line]:"right",[Ct.Handle]:"bottom-right"};function em({nodeId:e,position:t,variant:n=Ct.Handle,className:r,style:o=void 0,children:s,color:i,minWidth:a=10,minHeight:l=10,maxWidth:c=Number.MAX_VALUE,maxHeight:u=Number.MAX_VALUE,keepAspectRatio:f=!1,resizeDirection:d,autoScale:h=!0,shouldResize:g,onResizeStart:v,onResize:w,onResizeEnd:y}){const E=Qi(),m=typeof e=="string"?e:E,b=le(),C=_.useRef(null),S=n===Ct.Handle,A=ae(_.useCallback(Qp(S&&h),[S,h]),de),P=_.useRef(null),I=t??Jp[n];_.useEffect(()=>{if(!(!C.current||!m))return P.current||(P.current=uh({domNode:C.current,nodeId:m,getStoreItems:()=>{const{nodeLookup:T,transform:F,snapGrid:L,snapToGrid:x,nodeOrigin:k,domNode:N}=b.getState();return{nodeLookup:T,transform:F,snapGrid:L,snapToGrid:x,nodeOrigin:k,paneDomNode:N}},onChange:(T,F)=>{const{triggerNodeChanges:L,nodeLookup:x,parentLookup:k,nodeOrigin:N}=b.getState(),M=[],D={x:T.x,y:T.y},$=x.get(m);if($&&$.expandParent&&$.parentId){const R=$.origin??N,V=T.width??$.measured.width??0,B=T.height??$.measured.height??0,X={id:$.id,parentId:$.parentId,rect:{width:V,height:B,...xi({x:T.x??$.position.x,y:T.y??$.position.y},{width:V,height:B},$.parentId,x,R)}},G=no([X],x,k,N);M.push(...G),D.x=T.x?Math.max(R[0]*V,T.x):void 0,D.y=T.y?Math.max(R[1]*B,T.y):void 0}if(D.x!==void 0&&D.y!==void 0){const R={id:m,type:"position",position:{...D}};M.push(R)}if(T.width!==void 0&&T.height!==void 0){const V={id:m,type:"dimensions",resizing:!0,setAttributes:d?d==="horizontal"?"width":"height":!0,dimensions:{width:T.width,height:T.height}};M.push(V)}for(const R of F){const V={...R,type:"position"};M.push(V)}L(M)},onEnd:({width:T,height:F})=>{const L={id:m,type:"dimensions",resizing:!1,dimensions:{width:T,height:F}};b.getState().triggerNodeChanges([L])}})),P.current.update({controlPosition:I,boundaries:{minWidth:a,minHeight:l,maxWidth:c,maxHeight:u},keepAspectRatio:f,resizeDirection:d,onResizeStart:v,onResize:w,onResizeEnd:y,shouldResize:g}),()=>{var T;(T=P.current)==null||T.destroy()}},[I,a,l,c,u,f,v,w,y,g]);const O=I.split("-");return p.jsx("div",{className:he(["react-flow__resize-control","nodrag",...O,n,r]),ref:C,style:{...o,scale:A,...i&&{[S?"backgroundColor":"borderColor"]:i}},children:s})}_.memo(em);function tm(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 nm=4,ws={isConnectable:!1,isConnectableStart:!1,isConnectableEnd:!1,style:{pointerEvents:"none"},"aria-hidden":!0};function rm({data:e}){const t=Je(),n=[...new Map((e.editors||[]).map(s=>[s.id,s])).values()];if(n.length===0)return null;const r=n.slice(0,nm),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(dc,{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 om({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 sm({data:e,selected:t}){var f,d;const n=Je(),r=ct[e.status]||ct.pending,o=tm(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))],u=["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:u,style:i?{"--ov":_r(i.seed)}:void 0,children:[p.jsx($t,{type:"target",position:Q.Left,...ws}),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:Cs[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(om,{summary:(f=e.reviewSummary)==null?void 0:f.issues,t:n}),p.jsx(gc,{summary:(d=e.reviewSummary)==null?void 0:d.evals}),p.jsx(rm,{data:e})]}),e.collapsed&&p.jsxs("span",{className:"node-expand","data-tip":n("specNode.expandable",{n:e.childCount}),children:["▸",e.childCount]}),p.jsx($t,{type:"source",position:Q.Right,...ws})]})}const En=8;function im({x:e,y:t,anchorKey:n,label:r,children:o}){const s=_.useRef(null),[i,a]=_.useState({left:e,top:t,visibility:"hidden"});return _.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:oc,children:o})}function xr({children:e}){return p.jsx("div",{className:"sess-menu-group",role:"group",children:e})}function vs(){return p.jsx("div",{className:"sess-menu-sep",role:"separator"})}function wt({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(Ze,{name:e,size:14,className:"sess-menu-svg"})}),p.jsx("span",{className:"sess-menu-label",children:o})]})}function am({menu:e,onClose:t,onInfo:n,onFresh:r,onNewChild:o,onDelete:s,sessions:i=[],onOpenSession:a}){const l=Je(),[c,u]=_.useState(null);if(_.useEffect(()=>{if(e)return window.addEventListener("click",t),window.addEventListener("contextmenu",t,!0),()=>{window.removeEventListener("click",t),window.removeEventListener("contextmenu",t,!0)}},[e,t]),pc(!!e,t),_.useEffect(()=>{u(null)},[e]),_.useEffect(()=>{if(!c)return;const g=setTimeout(t,900);return()=>clearTimeout(g)},[c,t]),!e)return null;const f=g=>v=>{v.stopPropagation(),t(),g(e.id)},d=g=>v=>{v.stopPropagation(),t(),a==null||a(g)},h=async g=>{g.stopPropagation(),u(await yc(As(e.id))?"copied":"failed")};return p.jsxs(im,{x:e.x,y:e.y,anchorKey:e.id,label:l("nodeMenu.menuLabel"),children:[p.jsxs(xr,{children:[p.jsx(wt,{icon:"info",onClick:f(n),children:l("nodeMenu.info")}),p.jsx(wt,{icon:"copy",onClick:h,children:l(c?`nodeMenu.${c}`:"nodeMenu.copyUrl")}),p.jsx(wt,{icon:"sessions",onClick:f(r),children:l("nodeMenu.newSession")}),p.jsx(wt,{icon:"plus",onClick:f(o),children:l("nodeMenu.newChild")})]}),p.jsx(vs,{}),p.jsx(xr,{children:p.jsx(wt,{icon:"trash",danger:!0,onClick:f(s),children:l("nodeMenu.del")})}),i.length>0&&p.jsxs(p.Fragment,{children:[p.jsx(vs,{}),p.jsx(xr,{children:i.map(g=>p.jsx(wt,{className:"sess-menu-sess",leading:p.jsx("span",{className:"sess-glyph",style:{color:Er[g.status]},"aria-hidden":"true",children:mc[g.status]}),onClick:d(g.id),children:Hr(g)},g.id))})]})]})}const cm=new Set(["=","_","I","H","J","K","L"]),lm=(()=>{const e=[];for(const t of Ac){const n=$s(t.id).filter(o=>!cm.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})(),um=[[["←","→","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"]],dm=["merged","active","drift","pending"],fm=["added","edited","deleted","moved"];function hm({t:e}){return p.jsxs("section",{className:"legend-sec",children:[p.jsx("div",{className:"legend-h",children:e("legend.secBoard")}),lm.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 gm({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 pm({onClose:e}){const t=Je();return p.jsxs(Cc,{title:t("legend.title"),closeLabel:t("legend.close"),onClose:e,children:[p.jsx(hm,{t}),p.jsx(gm,{title:t("legend.secPopup"),rows:um,t}),p.jsxs("section",{className:"legend-sec",children:[p.jsx("div",{className:"legend-h",children:t("legend.secStatus")}),dm.map(n=>p.jsxs("div",{className:"legend-row",children:[p.jsx("span",{className:"node-dot",style:{background:ct[n].color},children:n==="active"&&p.jsx("span",{className:"pulse",style:{background:ct[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")})]}),fm.map(n=>p.jsxs("div",{className:"legend-row",children:[p.jsx("span",{className:`ov-mark ov-${n}`,children:Cs[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 Ea=8,mm=5,ym=2.2,xm=1,wm=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"]),Na="\\u3400-\\u4dbf\\u4e00-\\u9fff\\uf900-\\ufaff\\u3040-\\u30ff",vm=new RegExp(`[a-z0-9]+|[${Na}]`,"g"),bm=new RegExp(`[${Na}]`);function Sa(e){return bm.test(e)}function ka(e){return e.toLowerCase().match(vm)??[]}function _m(e){const t=new Set;for(const n of ka(e))(Sa(n)||n.length>1&&!wm.has(n))&&t.add(n);return[...t]}function wr(e){return ka(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 Em(e,t){return t.startsWith(oo(e))}function Bn(e,t){return t.startsWith(oo(e))||t.length>=3&&e.startsWith(t)}const Nm=.5;function Sm(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(Nm,r):0}const bs=1.2,_s=.4;function Es(e,t,n){return e<=0?0:e*(bs+1)/(e+bs*(1-_s+_s*t/(n||1)))}function km(e,t,n,r){const o=Sm(e,t);if(o>0)return Ea*o;if(t.name.includes(e))return mm;if(t.descWords.some(i=>Bn(e,i)))return ym*Es(1,t.descWords.length,r);const s=t.bodyWords.reduce((i,a)=>i+(Bn(e,a)?1:0),0);return xm*Es(s,t.bodyWords.length,n)}function Mm(e,t,n,r=140){const o=e.replace(/\s+/g," ").trim(),s=o.toLowerCase();let i=-1;for(const c of n){const u=Sa(c)?s.indexOf(c):s.search(new RegExp("\\b"+c.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")));u>=0&&(i<0||u<i)&&(i=u)}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 Cm(e,t,n={}){const r=n.limit??10,o=_m(e);if(!o.length)return[];const s=t.map(f=>{const d=f.name.toLowerCase();return{ref:f.ref,name:d,nameWords:wr(d),desc:f.desc.toLowerCase(),descWords:wr(f.desc),bodyWords:wr(f.body),snippetText:`${f.desc}
27
- ${f.body}`}}),i=s.length,a=s.reduce((f,d)=>f+d.bodyWords.length,0)/(i||1),l=s.reduce((f,d)=>f+d.descWords.length,0)/(i||1),c={};for(const f of o){let d=0;for(const h of s)(h.nameWords.some(g=>Em(f,g))||h.descWords.some(g=>Bn(f,g))||h.bodyWords.some(g=>Bn(f,g)))&&d++;c[f]=d>0?Math.log(i/d):0}const u=[];for(const f of s){let d=0;for(const h of o)d+=Math.min(km(h,f,a,l)*c[h],Ea);d<=0||u.push({ref:f.ref,score:Math.round(d*100)/100,snippet:Mm(f.snippetText,f.desc,o)})}return u.sort((f,d)=>d.score-f.score),u.slice(0,r)}let vr=null;function Am(e=!0){const[t,n]=_.useState(vr),r=_.useRef(!1);return _.useEffect(()=>{!e||r.current||(r.current=!0,fetch(sc("/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 $m={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$/,""),Ns=["spec","session","issue","scenario"],Im=e=>e?[e,...Ns.filter(t=>t!==e)]:Ns,jm=new Set(["issue","scenario"]);function Pm(e,t,n,r=[],o=[]){var l,c;const s=n==null?void 0:n.bodies,i=[],a=Object.fromEntries(e.map(u=>[u.id,u]));for(const u of e){const f=br(u.path);i.push({kind:"spec",key:`spec:${u.id}`,target:u.id,address:As(u.id),color:(ct[u.status]||ct.pending).color,title:u.title||u.id,sub:f,name:`${u.title||u.id} ${u.id}`,desc:u.desc||"",body:(s==null?void 0:s[u.id])??u.body??""})}for(const u of r){const f=((l=u.nodes)==null?void 0:l[0])||null,d=br((c=a[f])==null?void 0:c.path);i.push({kind:"issue",key:`issue:${u.id}`,target:u.id,nodeId:f,address:wc(u.id),color:u.status==="open"?"var(--green)":"var(--muted)",title:u.concern,sub:[u.id,d].filter(Boolean).join(" · "),name:u.concern||"",desc:u.id,body:""})}for(const u of o){const f=a[u.node],d=u.filterKind===vc.RESULT;i.push({kind:"scenario",key:`scenario:${u.node}:${u.scenario}`,target:u.scenario,nodeId:u.node,address:d?ho(u.node,u.scenario):ho(u.node),color:$m[u.state||"missing"]||"var(--cyan)",title:u.scenario,sub:br(f==null?void 0:f.path),tags:u.tags,name:u.scenario||"",desc:"",body:u.expected||""})}for(const u of bc(t)){const f=Hr(u),d=_c(u),h=u.status||u.promptPreview||u.note||"";i.push({kind:"session",key:`session:${u.id}`,target:u.id,address:Ec(u.id),color:Er[u.status]||Er.offline,title:f,sub:h,name:f||"",desc:u.status||"",body:`${u.promptPreview||u.note||""} ${d}`.trim()})}return i}function Tm(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]=jm.has(a)?l.slice(0,15):Cm(t,l.sort((c,u)=>c.name.length-u.name.length||c.key.localeCompare(u.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 Dm({specs:e,sessions:t,onPick:n,onClose:r,boost:o=null}){var O,T,F,L,x,k;const s=Je(),i=Am(),[a,l]=_.useState(""),[c,u]=_.useState("");_.useEffect(()=>{if(!a.trim()){u(a);return}const N=setTimeout(()=>u(a),120);return()=>clearTimeout(N)},[a]);const[f,d]=_.useState(0),h=_.useRef(null),g=_.useRef(null),v=_.useMemo(()=>Im(o),[o]),w=`is:issue${c.trim()?` ${c.trim()}`:""}`,y=`is:eval${c.trim()?` ${c.trim()}`:""}`,E=lo("issues",w,1,{pollMs:0}),m=lo("evals",y,1,{pollMs:0}),b=((O=E.data)==null?void 0:O.items)||[],C=((T=m.data)==null?void 0:T.items)||[],S=_.useMemo(()=>Pm(e,t,i,b,C),[e,t,i,E.data,m.data]),A=_.useMemo(()=>Tm(S,c,v),[S,c,v]);_.useEffect(()=>{var N;(N=h.current)==null||N.focus()},[]),_.useEffect(()=>{d(0)},[a]),_.useEffect(()=>{var N,M;(M=(N=g.current)==null?void 0:N.querySelector(".search-item.on"))==null||M.scrollIntoView({block:"nearest"})},[f,A]);const P=N=>{N&&(n(N),r())},I=N=>{N.key==="ArrowDown"?(N.preventDefault(),d(M=>Math.min(A.length-1,M+1))):N.key==="ArrowUp"?(N.preventDefault(),d(M=>Math.max(0,M-1))):N.key==="Enter"?(N.preventDefault(),P(A[f])):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:I})]}),p.jsxs("ul",{className:"search-results",ref:g,children:[A.length===0&&p.jsx("li",{className:"search-empty",children:s("search.empty")}),A.map((N,M)=>p.jsxs("li",{className:`search-item${M===f?" on":""}`,"data-kind":N.kind,"data-target":N.target,onMouseEnter:()=>d(M),onClick:()=>P(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(xc,{tags:N.tags}),p.jsx("span",{className:"search-path",children:N.sub})]},N.key))]}),(((F=E.data)==null?void 0:F.total)>0||((L=m.data)==null?void 0:L.total)>0)&&p.jsxs("nav",{className:"search-review-links","aria-label":s("search.allResults"),children:[((x=E.data)==null?void 0:x.total)>0&&p.jsxs("a",{className:"search-review-link",href:uo(fo("issues",w)),children:[p.jsx(Ze,{name:"issues",size:15}),p.jsx("span",{children:s("search.allIssues",{n:E.data.total})}),p.jsx(Ze,{name:"chevron-right",size:14})]}),((k=m.data)==null?void 0:k.total)>0&&p.jsxs("a",{className:"search-review-link",href:uo(fo("evals",y)),children:[p.jsx(Ze,{name:"evals",size:15}),p.jsx("span",{children:s("search.allEvals",{n:m.data.total})}),p.jsx(Ze,{name:"chevron-right",size:14})]})]}),p.jsx("div",{className:"search-foot",children:s("search.hint")})]})})}function Ma(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 Rm=["merged","active","drift","pending"],Lm=[{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 zm(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 u=(a=c.reviewSummary)==null?void 0:a.issues;if(u!=null&&u.open){r.push(c.id);for(const d of u.openIds||[])o.add(d)}const f=(l=c.reviewSummary)==null?void 0:l.evals;if(f)for(const d of Object.keys(s)){const h=f[d]||0;s[d]+=h,h>0&&i[d].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(Ma(t,n)):void 0,children:[i,e]})}function Hm({specs:e,focusId:t,onJump:n}){const r=Je(),o=_.useMemo(()=>zm(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}),Rm.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:ct[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"}),Lm.map(({state:i,always:a,titleKey:l})=>{const c=o.scoreCount[i],u=o.scoreNodes[i];return!c&&!a?null:p.jsx(Nn,{count:c,ids:u,focusId:t,onJump:s,title:r(`stats.${l}`,{n:c}),children:p.jsx(Nc,{state:i})},i)})]})}const Bm=e=>(e==null?void 0:e.slice(0,12))||"";function Vm(){var c,u;const[e,t]=_.useState(!1),[n,r]=_.useState(null),[o,s]=_.useState(null);_.useEffect(()=>{if(!e||n||o)return;let f=!0;return $c().then(d=>{f&&r(d)}).catch(d=>{f&&s(d)}),()=>{f=!1}},[e,n,o]),_.useEffect(()=>{if(!e)return;const f=d=>{d.key==="Escape"&&t(!1)};return window.addEventListener("keydown",f),()=>window.removeEventListener("keydown",f)},[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(f=>!f),"aria-label":"About this public graph","aria-expanded":e,"aria-controls":"public-graph-about",title:"About this public graph",children:[p.jsx(Ze,{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(ic,{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(f=>p.jsxs("div",{children:[p.jsx("dt",{children:f.label}),p.jsx("dd",{children:f.value})]},f.label)),p.jsxs("div",{children:[p.jsx("dt",{children:"Revision"}),p.jsx("dd",{children:p.jsx("code",{children:Bm(n.release.revision)})})]})]}),p.jsxs("div",{className:"public-about-actions",children:[((u=a.repository)==null?void 0:u.url)&&p.jsxs("a",{className:"public-about-link",href:a.repository.url,target:"_blank",rel:"noopener noreferrer",children:[p.jsx(Ze,{name:"globe",size:14})," Repository"]}),p.jsxs("a",{className:"public-about-link primary",href:`./${l.path}`,download:l.name,children:[p.jsx(Ze,{name:"download",size:14})," Download .spec"]})]})]})]})]})}function Ss(){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 u=()=>{if(r!=null&&Math.abs(s.scrollTop-r)>1){cancelAnimationFrame(e),t=null,r=null;return}const f=t-s.scrollTop;if(Math.abs(f)<.5){s.scrollTop=t,r=s.scrollTop;return}s.scrollTop+=f*.2,r=s.scrollTop,e=requestAnimationFrame(u)};e=requestAnimationFrame(u)}}function Fm(e){return e>1}function Om(e){return{next:Nr((e("graph.cycle")||[])[0]||"o"),prev:Nr((e("graph.cycleRev")||[])[0]||"O")}}const Wm=_.lazy(()=>Vn(()=>import("./SessionInterface-C0Fy_tWd.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12]),import.meta.url)),Ym=_.lazy(()=>Vn(()=>import("./EvalsPage-CHc1tT-0.js"),__vite__mapDeps([13,1,2,6,7,3]),import.meta.url)),Xm=_.lazy(()=>Vn(()=>import("./IssuesPage-BqojZnnr.js"),__vite__mapDeps([14,1,2,3,6,7]),import.meta.url)),Km=_.lazy(()=>Vn(()=>import("./Settings-1XN_EQnW.js"),__vite__mapDeps([15,1,2,11,7,4]),import.meta.url)),Gm={spec:sm},qm=[.5,.5],ks={width:176,height:50},Um=[{type:"target",position:Q.Left,x:-1.5,y:22.5,width:5,height:5},{type:"source",position:Q.Right,x:172.5,y:22.5,width:5,height:5}],Ms=e=>Math.max(.4,Math.min(1.6,e)),Ht={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: `},Ca=Object.keys(Ht),Zm=new Set(Ca.map(e=>e[0]));function Rt({active:e,warm:t=!1,className:n,children:r}){const o=Je();return!t&&!e?null:p.jsx("div",{className:n?`page-pane ${n}`:"page-pane",style:e?void 0:{display:"none"},children:p.jsx(_.Suspense,{fallback:p.jsx("div",{className:"loading",children:o("hud.loading")}),children:r})})}function Qm({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:u}=ac();_.useEffect(()=>{a&&c!=="graph"&&Ie("graph",null,{replace:!0})},[a,c]);const[f,d]=_.useState(()=>!a&&c==="sessions");_.useEffect(()=>{!a&&c==="sessions"&&d(!0)},[a,c]);const[h,g]=_.useState(()=>{var q;let z=null;try{z=sessionStorage.getItem("spex.focus")}catch{}return(z&&e.some(U=>U.id===z)?z:null)||((q=e.find(U=>!U.parent))==null?void 0:q.id)});_.useEffect(()=>{try{h&&sessionStorage.setItem("spex.focus",h)}catch{}},[h]);const[v,w]=_.useState(!1),[y,E]=_.useState("spec"),[m,b]=_.useState(!1),[C,S]=_.useState(null),[A,P]=_.useState("new"),[I,O]=_.useState(null),[T,F]=_.useState(null),[L,x]=_.useState(null),{getViewport:k,setViewport:N}=Jn(),M=Je(),D=_.useRef(null),$=_.useRef(0),R=_.useRef({buf:"",timer:0}),[V,B]=_.useState(!1),X=_.useRef(!1);X.current=V;const G=_.useRef({x:-1,y:-1}),ne=_.useMemo(()=>Ss(),[]),re=_.useMemo(()=>Ss(),[]),J=_.useMemo(()=>Object.fromEntries(e.map(z=>[z.id,z])),[e]),H=_.useRef(null);_.useLayoutEffect(()=>{c!=="graph"||H.current===u||(H.current=u,u&&J[u]&&g(u))},[c,u,J]);const W=_.useCallback(z=>{z&&g(z)},[]),ee=J[h]||e.find(z=>!z.parent)||e[0],te=_.useMemo(()=>{const z=new Set;for(let q=ee;q;q=q.parent?J[q.parent]:null)z.add(q.id);return z},[ee,J]),Z=_.useMemo(()=>Ic(e,te),[e,te]),Y=_.useMemo(()=>e.filter(z=>Z[z.id]).map(z=>({...z,...Z[z.id]})),[e,Z]),oe=_.useMemo(()=>Object.fromEntries(Y.map(z=>[z.id,z])),[Y]),K=oe[ee.id],ie=_.useMemo(()=>{const z={};return e.forEach(q=>{q.parent&&(z[q.parent]=(z[q.parent]||0)+1)}),z},[e]),ce=_.useMemo(()=>e.filter(z=>{var q;return(q=z.overlays)==null?void 0:q.length}),[e]),me=_.useMemo(()=>I?t.find(z=>z.source===I):null,[t,I]),ge=_.useMemo(()=>I?e.filter(z=>(z.overlays||[]).some(q=>q.source===I)):[],[e,I]),we=_.useMemo(()=>I?ge:ce,[I,ge,ce]),Me=Om($s),Xe=_.useCallback(z=>z?t.filter(q=>{var U;return(U=q.ops)==null?void 0:U.some(se=>se.nodeId===z.id)}):[],[t]),xe=_.useCallback(z=>{P(z),Ie("sessions",z)},[]),ve=_.useCallback(z=>{P("new"),F(z),Ie("sessions","new")},[]),be=_.useCallback(z=>{Sc(z,{onOpenSession:xe})},[xe]),Ce=_.useMemo(()=>{var U;if(!L)return[];const z=e.find(se=>se.id===L.id);return(U=z==null?void 0:z.overlays)!=null&&U.length?[...new Set(z.overlays.map(se=>se.source))].map(se=>t.find(ue=>ue.source===se)).filter(Boolean):[]},[L,e,t]),Ae=_.useCallback(z=>{be(z.address)},[be]);_.useLayoutEffect(()=>{if(c!=="sessions"||!u)return;const z=u.split("/")[0];z&&z!==A&&P(z)},[c,u]),_.useEffect(()=>{c==="sessions"&&Ie("sessions",A,{replace:!0})},[c,A]),_.useEffect(()=>{c!=="graph"&&(w(!1),b(!1),S(null),x(null))},[c]);const $e=_.useMemo(()=>Y.filter(z=>z.parent===K.id),[Y,K]),et=K.parent?oe[K.parent]:null,tt=_.useMemo(()=>$e.length?$e.reduce((z,q)=>Math.abs(q.y-K.y)<Math.abs(z.y-K.y)?q:z):null,[$e,K]),It=_.useMemo(()=>{if(tt)return tt;let z=null,q=1/0;for(const U of Y){const se=U.x-K.x;if(se<=0)continue;const ue=U.y-K.y,j=(se/jc)**2+(ue/Pc)**2;j<q&&(q=j,z=U)}return z},[tt,Y,K]),gt=_.useCallback(z=>{let q=null;for(const U of Y){if(U.id===K.id||U.x!==K.x)continue;const se=U.y-K.y;(z==="down"?se<=0:se>=0)||(!q||Math.abs(se)<Math.abs(q.y-K.y))&&(q=U)}return q},[Y,K]),jt=_.useMemo(()=>gt("down"),[gt]),Pt=_.useMemo(()=>gt("up"),[gt]),nr=_.useMemo(()=>Y.map(z=>{const q=z.id===h||z.id===K.parent||z.parent===h||z.parent===K.parent;let U;I&&ge.length?U=(z.overlays||[]).some(pe=>pe.source===I)?"ov-hot":"ov-dim":U=q?void 0:"is-far";const ue=Xe(z).map(pe=>({id:pe.id,status:pe.status,node:pe.node})),j=ie[z.id]||0,ye={editors:ue,collapsed:j>0&&!te.has(z.id),childCount:j};return{id:z.id,type:"spec",position:{x:z.x,y:z.y},data:{...z,...ye},initialWidth:ks.width,initialHeight:ks.height,handles:Um,draggable:!1,selected:z.id===h,className:U}}),[h,K.parent,I,ge,Y,Xe,ie,te]),rr=_.useMemo(()=>{const z=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}}),q=[];for(const U of Y){const se=(U.overlays||[]).find(j=>j.op==="moved"&&j.toParent&&oe[j.toParent]);if(!se)continue;const ue=_r(se.seed);q.push({id:`move-${U.id}-${se.toParent}`,source:U.id,target:se.toParent,type:"smoothstep",animated:!0,zIndex:2,className:"move-edge",style:{stroke:ue,strokeWidth:1.5,strokeDasharray:"4 4",opacity:.6},markerEnd:{type:Gt.ArrowClosed,color:ue,width:14,height:14}})}return[...z,...q]},[h,Y,oe]),on=_.useCallback((z,q)=>{const U=k(),se=performance.now();cancelAnimationFrame($.current);const ue=j=>{const ye=q?Math.min(1,(j-se)/q):1,pe=1-Math.pow(1-ye,3);N({x:U.x+(z.x-U.x)*pe,y:U.y+(z.y-U.y)*pe,zoom:U.zoom+(z.zoom-U.zoom)*pe}),ye<1&&($.current=requestAnimationFrame(ue))};$.current=requestAnimationFrame(ue)},[k,N]),He=_.useCallback((z,q,U=300)=>{const se=D.current;if(!se)return;const ue=q??k().zoom;on({x:se.clientWidth/2-z.x*ue,y:se.clientHeight/2-z.y*ue,zoom:ue},U)},[on,k]),sn=_.useRef(!1);_.useEffect(()=>{if(sn.current||c!=="graph")return;const z=requestAnimationFrame(()=>{sn.current=!0,He(K,void 0,0)});return()=>cancelAnimationFrame(z)},[He,K,c]);const nt=_.useRef(K);nt.current=K;const an=_.useRef(He);an.current=He;const cn=_.useRef(!1),rt=_.useRef(!1),pt=_.useRef(null);_.useEffect(()=>{if(c==="graph"){if(!cn.current){cn.current=!0,pt.current=h;return}if(rt.current){rt.current=!1,pt.current=h;return}pt.current!==h&&(pt.current=h,an.current(nt.current))}},[h,c]);const mt=v||m||!!C,ln=_.useRef(mt);_.useEffect(()=>{ln.current&&!mt&&cc(),ln.current=mt},[mt]),_.useEffect(()=>{const z=kc(K,a).map(j=>j.key),q=j=>E(ye=>{const pe=z.indexOf(ye);return z[((pe<0?0:pe)+j+z.length)%z.length]}),U=(j,ye)=>{j&&(ye.preventDefault(),ye.stopPropagation(),B(!0),W(j.id))},se=j=>ne(document.querySelector(".ov-body .pane-doc, .ov-body .pane-hist, .ov-body .pane-issues, .ov-body .pane-eval, .ov-body .pane-edit"),j),ue=j=>{var ye,pe,yt,dn;if(j.altKey&&!j.metaKey&&!j.ctrlKey){const Ne={Digit1:"graph",Digit2:"sessions",Digit3:"evals",Digit4:"issues",Digit5:"settings"}[j.code];if(Ne){j.preventDefault(),j.stopPropagation(),S(null),(!a||Ne==="graph")&&Ie(Ne);return}if(!a&&j.code==="KeyN"){j.preventDefault(),j.stopPropagation(),S(null),P("new"),Ie("sessions","new");return}if(!a&&j.code==="KeyF"){j.preventDefault(),j.stopPropagation(),S(null),Ie("evals");return}}if(C){j.key==="Escape"&&(j.preventDefault(),j.stopPropagation(),S(null));return}if(!a&&j.altKey&&!j.metaKey&&!j.ctrlKey&&j.code==="Slash"){j.preventDefault(),j.stopPropagation(),S("sessions");return}if(!(j.metaKey||j.ctrlKey||j.altKey)&&!((j.key==="Enter"||j.key===" ")&&((pe=(ye=j.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",j.key)&&(j.preventDefault(),j.stopPropagation(),Ie("graph"));return}if(v){const _e=j.key==="Escape"?null:(dn=(yt=j.target)==null?void 0:yt.closest)==null?void 0:dn.call(yt,'input, textarea, select, [role="menu"], [role="menuitemradio"], [aria-haspopup="menu"]');if(_e!=null&&_e.closest("[data-focus-overlay]"))return;if(j.key==="Escape"){j.preventDefault(),w(!1);return}if(j.shiftKey){if(fe("nav.up",j.key))return U(Pt,j);if(fe("nav.down",j.key))return U(jt,j);if(fe("nav.parent",j.key))return U(et,j);if(fe("nav.child",j.key))return U(It,j)}if(j.key==="Tab"){j.preventDefault(),j.stopPropagation(),q(j.shiftKey?-1:1);return}if(j.key==="ArrowLeft"||j.key==="h"){j.preventDefault(),j.stopPropagation(),q(-1);return}if(j.key==="ArrowRight"||j.key==="l"){j.preventDefault(),j.stopPropagation(),q(1);return}if(/^[1-9]$/.test(j.key)&&+j.key<=z.length){j.preventDefault(),j.stopPropagation(),E(z[+j.key-1]);return}if(j.key==="j"||j.key==="k"||j.key==="ArrowDown"||j.key==="ArrowUp"){j.preventDefault(),j.stopPropagation(),se(j.key==="j"||j.key==="ArrowDown"?120:-120);return}return}if(m){if(j.key==="Escape"||j.key==="?"){j.preventDefault(),b(!1);return}if(j.key==="j"||j.key==="k"||j.key==="ArrowDown"||j.key==="ArrowUp"){j.preventDefault(),j.stopPropagation(),re(document.querySelector(".legend"),j.key==="j"||j.key==="ArrowDown"?120:-120);return}return}if(fe("graph.help",j.key)){j.preventDefault(),b(!0);return}if(j.key==="Escape"&&I){j.preventDefault(),j.stopPropagation(),O(null);return}if(!a&&fe("graph.settings",j.key)){j.preventDefault(),Ie("settings");return}if(!a&&fe("graph.search",j.key)){j.preventDefault(),j.stopPropagation(),S("nodes");return}if(!a&&!j.metaKey&&!j.ctrlKey&&!j.altKey&&/^[a-zA-Z]$/.test(j.key)){const _e=R.current;if(_e.buf||Zm.has(j.key)){clearTimeout(_e.timer);const Ne=_e.buf+j.key;if(Ht[Ne]){j.preventDefault(),j.stopPropagation(),R.current={buf:"",timer:0},ve(Ht[Ne](K.id));return}if(Ca.some(fn=>fn.startsWith(Ne))){j.preventDefault(),j.stopPropagation(),R.current={buf:Ne,timer:setTimeout(()=>{R.current={buf:"",timer:0}},700)};return}R.current={buf:"",timer:0}}}if(fe("nav.up",j.key))return U(Pt,j);if(fe("nav.down",j.key))return U(jt,j);if(fe("nav.parent",j.key))return U(et,j);if(fe("nav.child",j.key))return U(It,j);if(fe("graph.zoomIn",j.key))j.preventDefault(),B(!0),He(K,Ms(k().zoom*1.2),160);else if(fe("graph.zoomOut",j.key))j.preventDefault(),B(!0),He(K,Ms(k().zoom/1.2),160);else if(fe("graph.zoomReset",j.key))j.preventDefault(),B(!0),He(K,.85,200);else if(fe("graph.info",j.key))j.preventDefault(),w(!0);else if(fe("graph.cycle",j.key)||fe("graph.cycleRev",j.key)){if(j.preventDefault(),!we.length)return;B(!0);const _e=Ma(we,K.id,fe("graph.cycleRev",j.key)?-1:1,Ne=>Ne.id);_e&&W(_e.id)}else!a&&fe("graph.fresh",j.key)?(j.preventDefault(),ve(`[[${K.id}]] `)):!a&&fe("graph.evals",j.key)&&(j.preventDefault(),Ie("evals"))}};return window.addEventListener("keydown",ue,!0),()=>window.removeEventListener("keydown",ue,!0)},[v,c,m,C,I,K,we,Pt,jt,It,et,He,k,xe,ve,W,ne,re,a]),_.useEffect(()=>{const z=q=>{const U=G.current,se=q.clientX!==U.x||q.clientY!==U.y;U.x=q.clientX,U.y=q.clientY,se&&X.current&&B(!1)};return window.addEventListener("mousemove",z,!0),()=>window.removeEventListener("mousemove",z,!0)},[]);const or=_.useCallback((z,q)=>{q.id!==nt.current.id&&(rt.current=!0),W(q.id)},[W]),sr=_.useCallback((z,q)=>{q.id!==nt.current.id&&(rt.current=!0),W(q.id),w(!0)},[W]),ir=_.useCallback((z,q)=>{z.preventDefault(),q.id!==nt.current.id&&(rt.current=!0),W(q.id),x({x:z.clientX,y:z.clientY,id:q.id})},[W]),un=_.useCallback((z,q=!0)=>{const U=q&&I===z.source;if(O(U?null:z.source),U)return;const se=new Set((z.ops||[]).map(j=>j.nodeId)),ue=e.find(j=>se.has(j.id));ue&&W(ue.id)},[I,e,W]);return p.jsxs("div",{className:V?"app kbd-mode":"app",children:[p.jsx(lc,{}),p.jsx(uc,{page:c,identity:o,catalog:s,graphOnly:a}),p.jsxs("div",{className:"app-main",children:[p.jsx(Rt,{active:a||c==="graph",warm:!0,className:"page-graph",children:p.jsxs("div",{className:"graph",ref:D,children:[p.jsx(Cp,{nodes:nr,edges:rr,nodeTypes:Gm,onNodeClick:or,onNodeDoubleClick:sr,onNodeContextMenu:a?void 0:ir,nodeOrigin:qm,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:()=>b(z=>!z),"data-tip":M("hud.helpTitle"),children:"?"})]}),!a&&p.jsx(fc,{sessions:t,activeId:I,onPick:un,onOpenSession:xe}),p.jsx(Hm,{specs:e,focusId:h,onJump:W}),a&&p.jsx(Vm,{}),!a&&p.jsx(am,{menu:L,onClose:()=>x(null),onInfo:()=>w(!0),onFresh:z=>ve(`[[${z}]] `),onNewChild:z=>ve(Ht.nn(z)),onDelete:z=>ve(Ht.dd(z)),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(hc,{})," ",Hr(me)]}),ge.length?p.jsx("span",{className:"lock-hint-body",children:Fm(ge.length)?p.jsxs(p.Fragment,{children:[M("lockHint.cycleBefore"),p.jsx("kbd",{children:Me.next}),M("lockHint.cycleNext"),p.jsx("span",{className:"lock-hint-sep",children:" / "}),p.jsx("kbd",{children:Me.prev}),M("lockHint.cyclePrev"),M("lockHint.cycleAfter",{n:ge.length})]}):M("lockHint.singleChanged")}):p.jsx("span",{className:"lock-hint-body",children:M("lockHint.empty")}),p.jsx("button",{className:"lock-hint-release",onClick:()=>O(null),"data-tip":M("lockHint.releaseTitle"),children:M("lockHint.release")})]}),m&&p.jsx(pm,{onClose:()=>b(!1)})]})}),v&&p.jsx(Mc,{node:K,pane:y,setPane:E,sessions:t,graphOnly:a,onClose:()=>w(!1)},K.id),!a&&p.jsx(Rt,{active:c==="sessions",warm:f,className:"page-sessions",children:p.jsx(Wm,{sessions:t,specs:e,focusNode:K,open:c==="sessions",searchOpen:!!C,sel:A,setSel:P,seed:T,onSeedConsumed:()=>F(null),onClose:()=>Ie("graph"),onPickSession:un,onOpenSearch:()=>S("sessions"),boardLive:i,reload:r})}),!a&&p.jsx(Rt,{active:c==="evals",className:"page-evals",children:p.jsx(Ym,{specs:e,sessions:t,issuesStamp:n,reloadBoard:r,onOpenSession:xe})}),!a&&p.jsx(Rt,{active:c==="issues",className:"page-issues",children:p.jsx(Xm,{specs:e,sessions:t,issuesStamp:n,onOpenSession:xe})}),!a&&p.jsx(Rt,{active:c==="settings",className:"page-settings",children:p.jsx(Km,{})}),!a&&C&&p.jsx(Dm,{specs:e,sessions:t,onPick:Ae,onClose:()=>S(null),boost:C==="sessions"?"session":null})]})]})}function Jm(e){return p.jsx(wa,{children:p.jsx(Qm,{...e})})}const i0=Object.freeze(Object.defineProperty({__proto__:null,default:Jm},Symbol.toStringTag,{value:"Module"}));export{im as C,i0 as D,xr as a,wt as b,vs as c};