specrails-desktop 2.26.1 → 2.26.2

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 (64) hide show
  1. package/client/dist/assets/{ActivityFeedPage-C1LftFSE.js → ActivityFeedPage-bDe4VitF.js} +1 -1
  2. package/client/dist/assets/{AgentBrowserCapture-B5prW-V0.js → AgentBrowserCapture-DQyeEm2V.js} +1 -1
  3. package/client/dist/assets/{AgentModeCodePane-b6UmdjwB.js → AgentModeCodePane-Ci39DcOo.js} +2 -2
  4. package/client/dist/assets/{AgentModeJobsPane-DW3Wj5oi.js → AgentModeJobsPane-C-g1WNVG.js} +1 -1
  5. package/client/dist/assets/{AgentsPage-DBMnhdlq.js → AgentsPage-BWgglK7V.js} +1 -1
  6. package/client/dist/assets/{AnalyticsPage-DjFf1OxU.js → AnalyticsPage-Da21wWWw.js} +1 -1
  7. package/client/dist/assets/{BarChart-nmDbbUiR.js → BarChart-BiLTq3uC.js} +1 -1
  8. package/client/dist/assets/{CodePage-DHd46Sm7.js → CodePage-BUcAp7SC.js} +1 -1
  9. package/client/dist/assets/{DesktopAnalyticsPage-ee0bpk-F.js → DesktopAnalyticsPage-COkzgMmd.js} +1 -1
  10. package/client/dist/assets/{DocsDialog-CGUzB1zX.js → DocsDialog-PZHMN18B.js} +1 -1
  11. package/client/dist/assets/{DocsPage-96iws84I.js → DocsPage-D3fChfkj.js} +1 -1
  12. package/client/dist/assets/{ExportDropdown-Dzk2Lkxw.js → ExportDropdown-DDhJH-Jr.js} +1 -1
  13. package/client/dist/assets/{IntegrationsPage-Bta2lAhq.js → IntegrationsPage-F87uxxVH.js} +1 -1
  14. package/client/dist/assets/{InteractiveJobComposer-B9S_ZGJS.js → InteractiveJobComposer-DqDCiCa0.js} +1 -1
  15. package/client/dist/assets/{JobDetailModal-DhrwU2z0.js → JobDetailModal-BWJR60fi.js} +1 -1
  16. package/client/dist/assets/{JobDetailPage-BnhoXkql.js → JobDetailPage-CjWE_jyd.js} +1 -1
  17. package/client/dist/assets/{JobsPage-BBT9fyhg.js → JobsPage-LmnXkyCa.js} +1 -1
  18. package/client/dist/assets/{LoopBuilderPage-5ucN9Hq9.js → LoopBuilderPage-DsLLrtHa.js} +1 -1
  19. package/client/dist/assets/{LoopPreviewModal-wKAts-Wf.js → LoopPreviewModal-C-fDEgnu.js} +1 -1
  20. package/client/dist/assets/{LoopsPage-COyxf6Pa.js → LoopsPage-DDNO9h9T.js} +1 -1
  21. package/client/dist/assets/{ProjectSettingsDialog-CcToBI-Z.js → ProjectSettingsDialog-CX854C8e.js} +1 -1
  22. package/client/dist/assets/{TemplatePreviewModal-_Dy6ceXg.js → TemplatePreviewModal-DcHFbLA8.js} +1 -1
  23. package/client/dist/assets/{agent-Cg49-TGZ.js → agent-BI6vr-To.js} +1 -1
  24. package/client/dist/assets/{agent-DgDtg-0Y2.js → agent-BUGXI3Ok2.js} +1 -1
  25. package/client/dist/assets/{agent-DolxzTol.js → agent-Bph_-xt7.js} +1 -1
  26. package/client/dist/assets/{agent-Bxb9RRNW.js → agent-Bvy2Csyd.js} +1 -1
  27. package/client/dist/assets/{agent-gFi-qvxO2.js → agent-Bwkyg2oX2.js} +1 -1
  28. package/client/dist/assets/{agent-_tfCgFUk.js → agent-CLCyDaZh.js} +1 -1
  29. package/client/dist/assets/{agent-DwDR2Exf2.js → agent-Cqs14QMr2.js} +1 -1
  30. package/client/dist/assets/{agent-BmH52J4j.js → agent-DJ0EBUuP.js} +1 -1
  31. package/client/dist/assets/{brain-BJ2Gd98j.js → brain-BBNUUrUI.js} +1 -1
  32. package/client/dist/assets/dashboard-BjjS1OrL.js +1 -0
  33. package/client/dist/assets/dashboard-Bk6oSk1H2.js +1 -0
  34. package/client/dist/assets/dashboard-BrH-GdOg2.js +1 -0
  35. package/client/dist/assets/dashboard-BurhUI8_.js +1 -0
  36. package/client/dist/assets/dashboard-C6w0rICe.js +1 -0
  37. package/client/dist/assets/dashboard-CAUnfDQL2.js +1 -0
  38. package/client/dist/assets/dashboard-C_ljpeYO.js +1 -0
  39. package/client/dist/assets/dashboard-D6OqDdj6.js +1 -0
  40. package/client/dist/assets/{dist-js-CXAsO0Z8.js → dist-js-BxjTIvdT.js} +1 -1
  41. package/client/dist/assets/{dist-js-D7smLA35.js → dist-js-DdP_Gl3p.js} +1 -1
  42. package/client/dist/assets/index-Dw1N2-ci.js +156 -0
  43. package/client/dist/assets/{lib-BIHmUkcn.js → lib-BviHZ_gK.js} +1 -1
  44. package/client/dist/assets/{upload-xdQuJvXN.js → upload-CRuuzzvp.js} +1 -1
  45. package/client/dist/assets/{value-Bk2f9AUg.js → value-CIr5hDMt.js} +1 -1
  46. package/client/dist/index.html +3 -3
  47. package/package.json +1 -1
  48. package/server/dist/mcp/tools/rails.js +2 -0
  49. package/server/dist/pr-publisher.js +17 -15
  50. package/server/dist/project-git.js +57 -0
  51. package/server/dist/rail-isolated-launch.js +22 -2
  52. package/server/dist/rail-pr-decision.js +69 -1
  53. package/server/dist/rail-worktree-release.js +25 -0
  54. package/server/dist/rail-worktrees-store.js +2 -2
  55. package/server/dist/rails-router.js +89 -9
  56. package/client/dist/assets/dashboard-90r0QcUc2.js +0 -1
  57. package/client/dist/assets/dashboard-B0C6mJP-.js +0 -1
  58. package/client/dist/assets/dashboard-BOx0FR1L2.js +0 -1
  59. package/client/dist/assets/dashboard-BcjUOLJr.js +0 -1
  60. package/client/dist/assets/dashboard-C27kNpjn.js +0 -1
  61. package/client/dist/assets/dashboard-DJAj2EbH.js +0 -1
  62. package/client/dist/assets/dashboard-DNd1Gobs.js +0 -1
  63. package/client/dist/assets/dashboard-DZWrDAYm2.js +0 -1
  64. package/client/dist/assets/index-B3ejvKSt.js +0 -156
@@ -1,4 +1,4 @@
1
- import{a as e}from"./chunk-BNv3lrIs.js";import{t}from"./brain-BJ2Gd98j.js";import{t as n}from"./upload-xdQuJvXN.js";import{B as r,Cn as i,D as a,Dt as o,G as s,Gn as c,H as l,Hn as u,It as d,J as f,Jt as p,K as m,Kn as h,Ln as g,O as _,Rn as v,Tt as y,Un as b,V as x,Vt as S,Wt as C,X as w,Y as T,ct as E,ft as D,g as O,gn as k,gt as A,lt as j,nt as M,pn as N,rt as P,ut as F,xt as I,yt as L,z as R}from"./index-B3ejvKSt.js";import{a as z,i as B,n as V,o as H,r as U,t as W}from"./value-Bk2f9AUg.js";var ee=k(`grid-3x3`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M3 9h18`,key:`1pudct`}],[`path`,{d:`M3 15h18`,key:`5xshup`}],[`path`,{d:`M9 3v18`,key:`fh3hqa`}],[`path`,{d:`M15 3v18`,key:`14nvp0`}]]),te=k(`move-horizontal`,[[`path`,{d:`m18 8 4 4-4 4`,key:`1ak13k`}],[`path`,{d:`M2 12h20`,key:`9i4pu4`}],[`path`,{d:`m6 8-4 4 4 4`,key:`15zrgr`}]]),ne=k(`move-vertical`,[[`path`,{d:`M12 2v20`,key:`t6zp3m`}],[`path`,{d:`m8 18 4 4 4-4`,key:`bh5tu3`}],[`path`,{d:`m8 6 4-4 4 4`,key:`ybng9g`}]]),re=180/Math.PI,ie={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function ae(e,t,n,r,i,a){var o,s,c;return(o=Math.sqrt(e*e+t*t))&&(e/=o,t/=o),(c=e*n+t*r)&&(n-=e*c,r-=t*c),(s=Math.sqrt(n*n+r*r))&&(n/=s,r/=s,c/=s),e*r<t*n&&(e=-e,t=-t,c=-c,o=-o),{translateX:i,translateY:a,rotate:Math.atan2(t,e)*re,skewX:Math.atan(c)*re,scaleX:o,scaleY:s}}var oe;function se(e){let t=new(typeof DOMMatrix==`function`?DOMMatrix:WebKitCSSMatrix)(e+``);return t.isIdentity?ie:ae(t.a,t.b,t.c,t.d,t.e,t.f)}function ce(e){return e==null||(oe||=document.createElementNS(`http://www.w3.org/2000/svg`,`g`),oe.setAttribute(`transform`,e),!(e=oe.transform.baseVal.consolidate()))?ie:(e=e.matrix,ae(e.a,e.b,e.c,e.d,e.e,e.f))}function le(e,t,n,r){function i(e){return e.length?e.pop()+` `:``}function a(e,r,i,a,o,s){if(e!==i||r!==a){var c=o.push(`translate(`,null,t,null,n);s.push({i:c-4,x:U(e,i)},{i:c-2,x:U(r,a)})}else (i||a)&&o.push(`translate(`+i+t+a+n)}function o(e,t,n,a){e===t?t&&n.push(i(n)+`rotate(`+t+r):(e-t>180?t+=360:t-e>180&&(e+=360),a.push({i:n.push(i(n)+`rotate(`,null,r)-2,x:U(e,t)}))}function s(e,t,n,a){e===t?t&&n.push(i(n)+`skewX(`+t+r):a.push({i:n.push(i(n)+`skewX(`,null,r)-2,x:U(e,t)})}function c(e,t,n,r,a,o){if(e!==n||t!==r){var s=a.push(i(a)+`scale(`,null,`,`,null,`)`);o.push({i:s-4,x:U(e,n)},{i:s-2,x:U(t,r)})}else (n!==1||r!==1)&&a.push(i(a)+`scale(`+n+`,`+r+`)`)}return function(t,n){var r=[],i=[];return t=e(t),n=e(n),a(t.translateX,t.translateY,n.translateX,n.translateY,r,i),o(t.rotate,n.rotate,r,i),s(t.skewX,n.skewX,r,i),c(t.scaleX,t.scaleY,n.scaleX,n.scaleY,r,i),t=n=null,function(e){for(var t=-1,n=i.length,a;++t<n;)r[(a=i[t]).i]=a.x(e);return r.join(``)}}}var ue=le(se,`px, `,`px)`,`deg)`),de=le(ce,`, `,`)`,`)`),fe=1e-12;function pe(e){return((e=Math.exp(e))+1/e)/2}function me(e){return((e=Math.exp(e))-1/e)/2}function he(e){return((e=Math.exp(2*e))-1)/(e+1)}var ge=(function e(t,n,r){function i(e,i){var a=e[0],o=e[1],s=e[2],c=i[0],l=i[1],u=i[2],d=c-a,f=l-o,p=d*d+f*f,m,h;if(p<fe)h=Math.log(u/s)/t,m=function(e){return[a+e*d,o+e*f,s*Math.exp(t*e*h)]};else{var g=Math.sqrt(p),_=(u*u-s*s+r*p)/(2*s*n*g),v=(u*u-s*s-r*p)/(2*u*n*g),y=Math.log(Math.sqrt(_*_+1)-_);h=(Math.log(Math.sqrt(v*v+1)-v)-y)/t,m=function(e){var r=e*h,i=pe(y),c=s/(n*g)*(i*he(t*r+y)-me(y));return[a+c*d,o+c*f,s*i/pe(t*r+y)]}}return m.duration=h*1e3*t/Math.SQRT2,m}return i.rho=function(t){var n=Math.max(.001,+t),r=n*n;return e(n,r,r*r)},i})(Math.SQRT2,2,4),G=e(h(),1),K=i();function q(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=q(e[n]))!==``&&(t+=(t&&` `)+r);else for(let n in e)e[n]&&(t+=(t&&` `)+n);return t}var _e={value:()=>{}};function ve(){for(var e=0,t=arguments.length,n={},r;e<t;++e){if(!(r=arguments[e]+``)||r in n||/[\s.]/.test(r))throw Error(`illegal type: `+r);n[r]=[]}return new ye(n)}function ye(e){this._=e}function be(e,t){return e.trim().split(/^|\s+/).map(function(e){var n=``,r=e.indexOf(`.`);if(r>=0&&(n=e.slice(r+1),e=e.slice(0,r)),e&&!t.hasOwnProperty(e))throw Error(`unknown type: `+e);return{type:e,name:n}})}ye.prototype=ve.prototype={constructor:ye,on:function(e,t){var n=this._,r=be(e+``,n),i,a=-1,o=r.length;if(arguments.length<2){for(;++a<o;)if((i=(e=r[a]).type)&&(i=xe(n[i],e.name)))return i;return}if(t!=null&&typeof t!=`function`)throw Error(`invalid callback: `+t);for(;++a<o;)if(i=(e=r[a]).type)n[i]=Se(n[i],e.name,t);else if(t==null)for(i in n)n[i]=Se(n[i],e.name,null);return this},copy:function(){var e={},t=this._;for(var n in t)e[n]=t[n].slice();return new ye(e)},call:function(e,t){if((i=arguments.length-2)>0)for(var n=Array(i),r=0,i,a;r<i;++r)n[r]=arguments[r+2];if(!this._.hasOwnProperty(e))throw Error(`unknown type: `+e);for(a=this._[e],r=0,i=a.length;r<i;++r)a[r].value.apply(t,n)},apply:function(e,t,n){if(!this._.hasOwnProperty(e))throw Error(`unknown type: `+e);for(var r=this._[e],i=0,a=r.length;i<a;++i)r[i].value.apply(t,n)}};function xe(e,t){for(var n=0,r=e.length,i;n<r;++n)if((i=e[n]).name===t)return i.value}function Se(e,t,n){for(var r=0,i=e.length;r<i;++r)if(e[r].name===t){e[r]=_e,e=e.slice(0,r).concat(e.slice(r+1));break}return n!=null&&e.push({name:t,value:n}),e}var Ce={svg:`http://www.w3.org/2000/svg`,xhtml:`http://www.w3.org/1999/xhtml`,xlink:`http://www.w3.org/1999/xlink`,xml:`http://www.w3.org/XML/1998/namespace`,xmlns:`http://www.w3.org/2000/xmlns/`};function we(e){var t=e+=``,n=t.indexOf(`:`);return n>=0&&(t=e.slice(0,n))!==`xmlns`&&(e=e.slice(n+1)),Ce.hasOwnProperty(t)?{space:Ce[t],local:e}:e}function Te(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===`http://www.w3.org/1999/xhtml`&&t.documentElement.namespaceURI===`http://www.w3.org/1999/xhtml`?t.createElement(e):t.createElementNS(n,e)}}function Ee(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function De(e){var t=we(e);return(t.local?Ee:Te)(t)}function Oe(){}function ke(e){return e==null?Oe:function(){return this.querySelector(e)}}function Ae(e){typeof e!=`function`&&(e=ke(e));for(var t=this._groups,n=t.length,r=Array(n),i=0;i<n;++i)for(var a=t[i],o=a.length,s=r[i]=Array(o),c,l,u=0;u<o;++u)(c=a[u])&&(l=e.call(c,c.__data__,u,a))&&(`__data__`in c&&(l.__data__=c.__data__),s[u]=l);return new J(r,this._parents)}function je(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function Me(){return[]}function Ne(e){return e==null?Me:function(){return this.querySelectorAll(e)}}function Pe(e){return function(){return je(e.apply(this,arguments))}}function Fe(e){e=typeof e==`function`?Pe(e):Ne(e);for(var t=this._groups,n=t.length,r=[],i=[],a=0;a<n;++a)for(var o=t[a],s=o.length,c,l=0;l<s;++l)(c=o[l])&&(r.push(e.call(c,c.__data__,l,o)),i.push(c));return new J(r,i)}function Ie(e){return function(){return this.matches(e)}}function Le(e){return function(t){return t.matches(e)}}var Re=Array.prototype.find;function ze(e){return function(){return Re.call(this.children,e)}}function Be(){return this.firstElementChild}function Ve(e){return this.select(e==null?Be:ze(typeof e==`function`?e:Le(e)))}var He=Array.prototype.filter;function Ue(){return Array.from(this.children)}function We(e){return function(){return He.call(this.children,e)}}function Ge(e){return this.selectAll(e==null?Ue:We(typeof e==`function`?e:Le(e)))}function Ke(e){typeof e!=`function`&&(e=Ie(e));for(var t=this._groups,n=t.length,r=Array(n),i=0;i<n;++i)for(var a=t[i],o=a.length,s=r[i]=[],c,l=0;l<o;++l)(c=a[l])&&e.call(c,c.__data__,l,a)&&s.push(c);return new J(r,this._parents)}function qe(e){return Array(e.length)}function Je(){return new J(this._enter||this._groups.map(qe),this._parents)}function Ye(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}Ye.prototype={constructor:Ye,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 Xe(e){return function(){return e}}function Ze(e,t,n,r,i,a){for(var o=0,s,c=t.length,l=a.length;o<l;++o)(s=t[o])?(s.__data__=a[o],r[o]=s):n[o]=new Ye(e,a[o]);for(;o<c;++o)(s=t[o])&&(i[o]=s)}function Qe(e,t,n,r,i,a,o){var s,c,l=new Map,u=t.length,d=a.length,f=Array(u),p;for(s=0;s<u;++s)(c=t[s])&&(f[s]=p=o.call(c,c.__data__,s,t)+``,l.has(p)?i[s]=c:l.set(p,c));for(s=0;s<d;++s)p=o.call(e,a[s],s,a)+``,(c=l.get(p))?(r[s]=c,c.__data__=a[s],l.delete(p)):n[s]=new Ye(e,a[s]);for(s=0;s<u;++s)(c=t[s])&&l.get(f[s])===c&&(i[s]=c)}function $e(e){return e.__data__}function et(e,t){if(!arguments.length)return Array.from(this,$e);var n=t?Qe:Ze,r=this._parents,i=this._groups;typeof e!=`function`&&(e=Xe(e));for(var a=i.length,o=Array(a),s=Array(a),c=Array(a),l=0;l<a;++l){var u=r[l],d=i[l],f=d.length,p=tt(e.call(u,u&&u.__data__,l,r)),m=p.length,h=s[l]=Array(m),g=o[l]=Array(m);n(u,d,h,g,c[l]=Array(f),p,t);for(var _=0,v=0,y,b;_<m;++_)if(y=h[_]){for(_>=v&&(v=_+1);!(b=g[v])&&++v<m;);y._next=b||null}}return o=new J(o,r),o._enter=s,o._exit=c,o}function tt(e){return typeof e==`object`&&`length`in e?e:Array.from(e)}function nt(){return new J(this._exit||this._groups.map(qe),this._parents)}function rt(e,t,n){var r=this.enter(),i=this,a=this.exit();return typeof e==`function`?(r=e(r),r&&=r.selection()):r=r.append(e+``),t!=null&&(i=t(i),i&&=i.selection()),n==null?a.remove():n(a),r&&i?r.merge(i).order():i}function it(e){for(var t=e.selection?e.selection():e,n=this._groups,r=t._groups,i=n.length,a=r.length,o=Math.min(i,a),s=Array(i),c=0;c<o;++c)for(var l=n[c],u=r[c],d=l.length,f=s[c]=Array(d),p,m=0;m<d;++m)(p=l[m]||u[m])&&(f[m]=p);for(;c<i;++c)s[c]=n[c];return new J(s,this._parents)}function at(){for(var e=this._groups,t=-1,n=e.length;++t<n;)for(var r=e[t],i=r.length-1,a=r[i],o;--i>=0;)(o=r[i])&&(a&&o.compareDocumentPosition(a)^4&&a.parentNode.insertBefore(o,a),a=o);return this}function ot(e){e||=st;function t(t,n){return t&&n?e(t.__data__,n.__data__):!t-!n}for(var n=this._groups,r=n.length,i=Array(r),a=0;a<r;++a){for(var o=n[a],s=o.length,c=i[a]=Array(s),l,u=0;u<s;++u)(l=o[u])&&(c[u]=l);c.sort(t)}return new J(i,this._parents).order()}function st(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function ct(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function lt(){return Array.from(this)}function ut(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],i=0,a=r.length;i<a;++i){var o=r[i];if(o)return o}return null}function dt(){let e=0;for(let t of this)++e;return e}function ft(){return!this.node()}function pt(e){for(var t=this._groups,n=0,r=t.length;n<r;++n)for(var i=t[n],a=0,o=i.length,s;a<o;++a)(s=i[a])&&e.call(s,s.__data__,a,i);return this}function mt(e){return function(){this.removeAttribute(e)}}function ht(e){return function(){this.removeAttributeNS(e.space,e.local)}}function gt(e,t){return function(){this.setAttribute(e,t)}}function _t(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function vt(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}}function yt(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 bt(e,t){var n=we(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?ht:mt:typeof t==`function`?n.local?yt:vt:n.local?_t:gt)(n,t))}function xt(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function St(e){return function(){this.style.removeProperty(e)}}function Ct(e,t,n){return function(){this.style.setProperty(e,t,n)}}function wt(e,t,n){return function(){var r=t.apply(this,arguments);r==null?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function Tt(e,t,n){return arguments.length>1?this.each((t==null?St:typeof t==`function`?wt:Ct)(e,t,n??``)):Et(this.node(),e)}function Et(e,t){return e.style.getPropertyValue(t)||xt(e).getComputedStyle(e,null).getPropertyValue(t)}function Dt(e){return function(){delete this[e]}}function Ot(e,t){return function(){this[e]=t}}function kt(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function At(e,t){return arguments.length>1?this.each((t==null?Dt:typeof t==`function`?kt:Ot)(e,t)):this.node()[e]}function jt(e){return e.trim().split(/^|\s+/)}function Mt(e){return e.classList||new Nt(e)}function Nt(e){this._node=e,this._names=jt(e.getAttribute(`class`)||``)}Nt.prototype={add:function(e){this._names.indexOf(e)<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 Pt(e,t){for(var n=Mt(e),r=-1,i=t.length;++r<i;)n.add(t[r])}function Ft(e,t){for(var n=Mt(e),r=-1,i=t.length;++r<i;)n.remove(t[r])}function It(e){return function(){Pt(this,e)}}function Lt(e){return function(){Ft(this,e)}}function Rt(e,t){return function(){(t.apply(this,arguments)?Pt:Ft)(this,e)}}function zt(e,t){var n=jt(e+``);if(arguments.length<2){for(var r=Mt(this.node()),i=-1,a=n.length;++i<a;)if(!r.contains(n[i]))return!1;return!0}return this.each((typeof t==`function`?Rt:t?It:Lt)(n,t))}function Bt(){this.textContent=``}function Vt(e){return function(){this.textContent=e}}function Ht(e){return function(){var t=e.apply(this,arguments);this.textContent=t??``}}function Ut(e){return arguments.length?this.each(e==null?Bt:(typeof e==`function`?Ht:Vt)(e)):this.node().textContent}function Wt(){this.innerHTML=``}function Gt(e){return function(){this.innerHTML=e}}function Kt(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??``}}function qt(e){return arguments.length?this.each(e==null?Wt:(typeof e==`function`?Kt:Gt)(e)):this.node().innerHTML}function Jt(){this.nextSibling&&this.parentNode.appendChild(this)}function Yt(){return this.each(Jt)}function Xt(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function Zt(){return this.each(Xt)}function Qt(e){var t=typeof e==`function`?e:De(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function $t(){return null}function en(e,t){var n=typeof e==`function`?e:De(e),r=t==null?$t:typeof t==`function`?t:ke(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})}function tn(){var e=this.parentNode;e&&e.removeChild(this)}function nn(){return this.each(tn)}function rn(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function an(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function on(e){return this.select(e?an:rn)}function sn(e){return arguments.length?this.property(`__data__`,e):this.node().__data__}function cn(e){return function(t){e.call(this,t,this.__data__)}}function ln(e){return e.trim().split(/^|\s+/).map(function(e){var t=``,n=e.indexOf(`.`);return n>=0&&(t=e.slice(n+1),e=e.slice(0,n)),{type:e,name:t}})}function un(e){return function(){var t=this.__on;if(t){for(var n=0,r=-1,i=t.length,a;n<i;++n)a=t[n],(!e.type||a.type===e.type)&&a.name===e.name?this.removeEventListener(a.type,a.listener,a.options):t[++r]=a;++r?t.length=r:delete this.__on}}}function dn(e,t,n){return function(){var r=this.__on,i,a=cn(t);if(r){for(var o=0,s=r.length;o<s;++o)if((i=r[o]).type===e.type&&i.name===e.name){this.removeEventListener(i.type,i.listener,i.options),this.addEventListener(i.type,i.listener=a,i.options=n),i.value=t;return}}this.addEventListener(e.type,a,n),i={type:e.type,name:e.name,value:t,listener:a,options:n},r?r.push(i):this.__on=[i]}}function fn(e,t,n){var r=ln(e+``),i,a=r.length,o;if(arguments.length<2){var s=this.node().__on;if(s){for(var c=0,l=s.length,u;c<l;++c)for(i=0,u=s[c];i<a;++i)if((o=r[i]).type===u.type&&o.name===u.name)return u.value}return}for(s=t?dn:un,i=0;i<a;++i)this.each(s(r[i],t,n));return this}function pn(e,t,n){var r=xt(e),i=r.CustomEvent;typeof i==`function`?i=new i(t,n):(i=r.document.createEvent(`Event`),n?(i.initEvent(t,n.bubbles,n.cancelable),i.detail=n.detail):i.initEvent(t,!1,!1)),e.dispatchEvent(i)}function mn(e,t){return function(){return pn(this,e,t)}}function hn(e,t){return function(){return pn(this,e,t.apply(this,arguments))}}function gn(e,t){return this.each((typeof t==`function`?hn:mn)(e,t))}function*_n(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],i=0,a=r.length,o;i<a;++i)(o=r[i])&&(yield o)}var vn=[null];function J(e,t){this._groups=e,this._parents=t}function yn(){return new J([[document.documentElement]],vn)}function bn(){return this}J.prototype=yn.prototype={constructor:J,select:Ae,selectAll:Fe,selectChild:Ve,selectChildren:Ge,filter:Ke,data:et,enter:Je,exit:nt,join:rt,merge:it,selection:bn,order:at,sort:ot,call:ct,nodes:lt,node:ut,size:dt,empty:ft,each:pt,attr:bt,style:Tt,property:At,classed:zt,text:Ut,html:qt,raise:Yt,lower:Zt,append:Qt,insert:en,remove:nn,clone:on,datum:sn,on:fn,dispatch:gn,[Symbol.iterator]:_n};function Y(e){return typeof e==`string`?new J([[document.querySelector(e)]],[document.documentElement]):new J([[e]],vn)}function xn(e){let t;for(;t=e.sourceEvent;)e=t;return e}function Sn(e,t){if(e=xn(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 i=t.getBoundingClientRect();return[e.clientX-i.left-t.clientLeft,e.clientY-i.top-t.clientTop]}}return[e.pageX,e.pageY]}var Cn={passive:!1},wn={capture:!0,passive:!1};function Tn(e){e.stopImmediatePropagation()}function En(e){e.preventDefault(),e.stopImmediatePropagation()}function Dn(e){var t=e.document.documentElement,n=Y(e).on(`dragstart.drag`,En,wn);`onselectstart`in t?n.on(`selectstart.drag`,En,wn):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect=`none`)}function On(e,t){var n=e.document.documentElement,r=Y(e).on(`dragstart.drag`,null);t&&(r.on(`click.drag`,En,wn),setTimeout(function(){r.on(`click.drag`,null)},0)),`onselectstart`in n?r.on(`selectstart.drag`,null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}var kn=e=>()=>e;function An(e,{sourceEvent:t,subject:n,target:r,identifier:i,active:a,x:o,y:s,dx:c,dy:l,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:i,enumerable:!0,configurable:!0},active:{value:a,enumerable:!0,configurable:!0},x:{value:o,enumerable:!0,configurable:!0},y:{value:s,enumerable:!0,configurable:!0},dx:{value:c,enumerable:!0,configurable:!0},dy:{value:l,enumerable:!0,configurable:!0},_:{value:u}})}An.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function jn(e){return!e.ctrlKey&&!e.button}function Mn(){return this.parentNode}function Nn(e,t){return t??{x:e.x,y:e.y}}function Pn(){return navigator.maxTouchPoints||`ontouchstart`in this}function Fn(){var e=jn,t=Mn,n=Nn,r=Pn,i={},a=ve(`start`,`drag`,`end`),o=0,s,c,l,u,d=0;function f(e){e.on(`mousedown.drag`,p).filter(r).on(`touchstart.drag`,g).on(`touchmove.drag`,_,Cn).on(`touchend.drag touchcancel.drag`,v).style(`touch-action`,`none`).style(`-webkit-tap-highlight-color`,`rgba(0,0,0,0)`)}function p(n,r){if(!(u||!e.call(this,n,r))){var i=y(this,t.call(this,n,r),n,r,`mouse`);i&&(Y(n.view).on(`mousemove.drag`,m,wn).on(`mouseup.drag`,h,wn),Dn(n.view),Tn(n),l=!1,s=n.clientX,c=n.clientY,i(`start`,n))}}function m(e){if(En(e),!l){var t=e.clientX-s,n=e.clientY-c;l=t*t+n*n>d}i.mouse(`drag`,e)}function h(e){Y(e.view).on(`mousemove.drag mouseup.drag`,null),On(e.view,l),En(e),i.mouse(`end`,e)}function g(n,r){if(e.call(this,n,r)){var i=n.changedTouches,a=t.call(this,n,r),o=i.length,s,c;for(s=0;s<o;++s)(c=y(this,a,n,r,i[s].identifier,i[s]))&&(Tn(n),c(`start`,n,i[s]))}}function _(e){var t=e.changedTouches,n=t.length,r,a;for(r=0;r<n;++r)(a=i[t[r].identifier])&&(En(e),a(`drag`,e,t[r]))}function v(e){var t=e.changedTouches,n=t.length,r,a;for(u&&clearTimeout(u),u=setTimeout(function(){u=null},500),r=0;r<n;++r)(a=i[t[r].identifier])&&(Tn(e),a(`end`,e,t[r]))}function y(e,t,r,s,c,l){var u=a.copy(),d=Sn(l||r,t),p,m,h;if((h=n.call(e,new An(`beforestart`,{sourceEvent:r,target:f,identifier:c,active:o,x:d[0],y:d[1],dx:0,dy:0,dispatch:u}),s))!=null)return p=h.x-d[0]||0,m=h.y-d[1]||0,function n(r,a,l){var g=d,_;switch(r){case`start`:i[c]=n,_=o++;break;case`end`:delete i[c],--o;case`drag`:d=Sn(l||a,t),_=o;break}u.call(r,e,new An(r,{sourceEvent:a,subject:h,target:f,identifier:c,active:_,x:d[0]+p,y:d[1]+m,dx:d[0]-g[0],dy:d[1]-g[1],dispatch:u}),s)}}return f.filter=function(t){return arguments.length?(e=typeof t==`function`?t:kn(!!t),f):e},f.container=function(e){return arguments.length?(t=typeof e==`function`?e:kn(e),f):t},f.subject=function(e){return arguments.length?(n=typeof e==`function`?e:kn(e),f):n},f.touchable=function(e){return arguments.length?(r=typeof e==`function`?e:kn(!!e),f):r},f.on=function(){var e=a.on.apply(a,arguments);return e===a?f:e},f.clickDistance=function(e){return arguments.length?(d=(e=+e)*e,f):Math.sqrt(d)},f}var In=0,Ln=0,Rn=0,zn=1e3,Bn,Vn,Hn=0,Un=0,Wn=0,Gn=typeof performance==`object`&&performance.now?performance:Date,Kn=typeof window==`object`&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function qn(){return Un||=(Kn(Jn),Gn.now()+Wn)}function Jn(){Un=0}function Yn(){this._call=this._time=this._next=null}Yn.prototype=Xn.prototype={constructor:Yn,restart:function(e,t,n){if(typeof e!=`function`)throw TypeError(`callback is not a function`);n=(n==null?qn():+n)+(t==null?0:+t),!this._next&&Vn!==this&&(Vn?Vn._next=this:Bn=this,Vn=this),this._call=e,this._time=n,tr()},stop:function(){this._call&&(this._call=null,this._time=1/0,tr())}};function Xn(e,t,n){var r=new Yn;return r.restart(e,t,n),r}function Zn(){qn(),++In;for(var e=Bn,t;e;)(t=Un-e._time)>=0&&e._call.call(void 0,t),e=e._next;--In}function Qn(){Un=(Hn=Gn.now())+Wn,In=Ln=0;try{Zn()}finally{In=0,er(),Un=0}}function $n(){var e=Gn.now(),t=e-Hn;t>zn&&(Wn-=t,Hn=e)}function er(){for(var e,t=Bn,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:Bn=n);Vn=e,tr(r)}function tr(e){In||(Ln&&=clearTimeout(Ln),e-Un>24?(e<1/0&&(Ln=setTimeout(Qn,e-Gn.now()-Wn)),Rn&&=clearInterval(Rn)):(Rn||=(Hn=Gn.now(),setInterval($n,zn)),In=1,Kn(Qn)))}function nr(e,t,n){var r=new Yn;return t=t==null?0:+t,r.restart(n=>{r.stop(),e(n+t)},t,n),r}var rr=ve(`start`,`end`,`cancel`,`interrupt`),ir=[];function ar(e,t,n,r,i,a){var o=e.__transition;if(!o)e.__transition={};else if(n in o)return;lr(e,n,{name:t,index:r,group:i,on:rr,tween:ir,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:0})}function or(e,t){var n=cr(e,t);if(n.state>0)throw Error(`too late; already scheduled`);return n}function sr(e,t){var n=cr(e,t);if(n.state>3)throw Error(`too late; already running`);return n}function cr(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw Error(`transition not found`);return n}function lr(e,t,n){var r=e.__transition,i;r[t]=n,n.timer=Xn(a,0,n.time);function a(e){n.state=1,n.timer.restart(o,n.delay,n.time),n.delay<=e&&o(e-n.delay)}function o(a){var l,u,d,f;if(n.state!==1)return c();for(l in r)if(f=r[l],f.name===n.name){if(f.state===3)return nr(o);f.state===4?(f.state=6,f.timer.stop(),f.on.call(`interrupt`,e,e.__data__,f.index,f.group),delete r[l]):+l<t&&(f.state=6,f.timer.stop(),f.on.call(`cancel`,e,e.__data__,f.index,f.group),delete r[l])}if(nr(function(){n.state===3&&(n.state=4,n.timer.restart(s,n.delay,n.time),s(a))}),n.state=2,n.on.call(`start`,e,e.__data__,n.index,n.group),n.state===2){for(n.state=3,i=Array(d=n.tween.length),l=0,u=-1;l<d;++l)(f=n.tween[l].value.call(e,e.__data__,n.index,n.group))&&(i[++u]=f);i.length=u+1}}function s(t){for(var r=t<n.duration?n.ease.call(null,t/n.duration):(n.timer.restart(c),n.state=5,1),a=-1,o=i.length;++a<o;)i[a].call(e,r);n.state===5&&(n.on.call(`end`,e,e.__data__,n.index,n.group),c())}function c(){for(var i in n.state=6,n.timer.stop(),delete r[t],r)return;delete e.__transition}}function ur(e,t){var n=e.__transition,r,i,a=!0,o;if(n){for(o in t=t==null?null:t+``,n){if((r=n[o]).name!==t){a=!1;continue}i=r.state>2&&r.state<5,r.state=6,r.timer.stop(),r.on.call(i?`interrupt`:`cancel`,e,e.__data__,r.index,r.group),delete n[o]}a&&delete e.__transition}}function dr(e){return this.each(function(){ur(this,e)})}function fr(e,t){var n,r;return function(){var i=sr(this,e),a=i.tween;if(a!==n){r=n=a;for(var o=0,s=r.length;o<s;++o)if(r[o].name===t){r=r.slice(),r.splice(o,1);break}}i.tween=r}}function pr(e,t,n){var r,i;if(typeof n!=`function`)throw Error();return function(){var a=sr(this,e),o=a.tween;if(o!==r){i=(r=o).slice();for(var s={name:t,value:n},c=0,l=i.length;c<l;++c)if(i[c].name===t){i[c]=s;break}c===l&&i.push(s)}a.tween=i}}function mr(e,t){var n=this._id;if(e+=``,arguments.length<2){for(var r=cr(this.node(),n).tween,i=0,a=r.length,o;i<a;++i)if((o=r[i]).name===e)return o.value;return null}return this.each((t==null?fr:pr)(n,e,t))}function hr(e,t,n){var r=e._id;return e.each(function(){var e=sr(this,r);(e.value||={})[t]=n.apply(this,arguments)}),function(e){return cr(e,r).value[t]}}function gr(e,t){var n;return(typeof t==`number`?U:t instanceof z?B:(n=z(t))?(t=n,B):V)(e,t)}function _r(e){return function(){this.removeAttribute(e)}}function vr(e){return function(){this.removeAttributeNS(e.space,e.local)}}function yr(e,t,n){var r,i=n+``,a;return function(){var o=this.getAttribute(e);return o===i?null:o===r?a:a=t(r=o,n)}}function br(e,t,n){var r,i=n+``,a;return function(){var o=this.getAttributeNS(e.space,e.local);return o===i?null:o===r?a:a=t(r=o,n)}}function xr(e,t,n){var r,i,a;return function(){var o,s=n(this),c;return s==null?void this.removeAttribute(e):(o=this.getAttribute(e),c=s+``,o===c?null:o===r&&c===i?a:(i=c,a=t(r=o,s)))}}function Sr(e,t,n){var r,i,a;return function(){var o,s=n(this),c;return s==null?void this.removeAttributeNS(e.space,e.local):(o=this.getAttributeNS(e.space,e.local),c=s+``,o===c?null:o===r&&c===i?a:(i=c,a=t(r=o,s)))}}function Cr(e,t){var n=we(e),r=n===`transform`?de:gr;return this.attrTween(e,typeof t==`function`?(n.local?Sr:xr)(n,r,hr(this,`attr.`+e,t)):t==null?(n.local?vr:_r)(n):(n.local?br:yr)(n,r,t))}function wr(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function Tr(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function Er(e,t){var n,r;function i(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&Tr(e,i)),n}return i._value=t,i}function Dr(e,t){var n,r;function i(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&wr(e,i)),n}return i._value=t,i}function Or(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 Error();var r=we(e);return this.tween(n,(r.local?Er:Dr)(r,t))}function kr(e,t){return function(){or(this,e).delay=+t.apply(this,arguments)}}function Ar(e,t){return t=+t,function(){or(this,e).delay=t}}function jr(e){var t=this._id;return arguments.length?this.each((typeof e==`function`?kr:Ar)(t,e)):cr(this.node(),t).delay}function Mr(e,t){return function(){sr(this,e).duration=+t.apply(this,arguments)}}function Nr(e,t){return t=+t,function(){sr(this,e).duration=t}}function Pr(e){var t=this._id;return arguments.length?this.each((typeof e==`function`?Mr:Nr)(t,e)):cr(this.node(),t).duration}function Fr(e,t){if(typeof t!=`function`)throw Error();return function(){sr(this,e).ease=t}}function Ir(e){var t=this._id;return arguments.length?this.each(Fr(t,e)):cr(this.node(),t).ease}function Lr(e,t){return function(){var n=t.apply(this,arguments);if(typeof n!=`function`)throw Error();sr(this,e).ease=n}}function Rr(e){if(typeof e!=`function`)throw Error();return this.each(Lr(this._id,e))}function zr(e){typeof e!=`function`&&(e=Ie(e));for(var t=this._groups,n=t.length,r=Array(n),i=0;i<n;++i)for(var a=t[i],o=a.length,s=r[i]=[],c,l=0;l<o;++l)(c=a[l])&&e.call(c,c.__data__,l,a)&&s.push(c);return new mi(r,this._parents,this._name,this._id)}function Br(e){if(e._id!==this._id)throw Error();for(var t=this._groups,n=e._groups,r=t.length,i=n.length,a=Math.min(r,i),o=Array(r),s=0;s<a;++s)for(var c=t[s],l=n[s],u=c.length,d=o[s]=Array(u),f,p=0;p<u;++p)(f=c[p]||l[p])&&(d[p]=f);for(;s<r;++s)o[s]=t[s];return new mi(o,this._parents,this._name,this._id)}function Vr(e){return(e+``).trim().split(/^|\s+/).every(function(e){var t=e.indexOf(`.`);return t>=0&&(e=e.slice(0,t)),!e||e===`start`})}function Hr(e,t,n){var r,i,a=Vr(t)?or:sr;return function(){var o=a(this,e),s=o.on;s!==r&&(i=(r=s).copy()).on(t,n),o.on=i}}function Ur(e,t){var n=this._id;return arguments.length<2?cr(this.node(),n).on.on(e):this.each(Hr(n,e,t))}function Wr(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function Gr(){return this.on(`end.remove`,Wr(this._id))}function Kr(e){var t=this._name,n=this._id;typeof e!=`function`&&(e=ke(e));for(var r=this._groups,i=r.length,a=Array(i),o=0;o<i;++o)for(var s=r[o],c=s.length,l=a[o]=Array(c),u,d,f=0;f<c;++f)(u=s[f])&&(d=e.call(u,u.__data__,f,s))&&(`__data__`in u&&(d.__data__=u.__data__),l[f]=d,ar(l[f],t,n,f,l,cr(u,n)));return new mi(a,this._parents,t,n)}function qr(e){var t=this._name,n=this._id;typeof e!=`function`&&(e=Ne(e));for(var r=this._groups,i=r.length,a=[],o=[],s=0;s<i;++s)for(var c=r[s],l=c.length,u,d=0;d<l;++d)if(u=c[d]){for(var f=e.call(u,u.__data__,d,c),p,m=cr(u,n),h=0,g=f.length;h<g;++h)(p=f[h])&&ar(p,t,n,h,f,m);a.push(f),o.push(u)}return new mi(a,o,t,n)}var Jr=yn.prototype.constructor;function Yr(){return new Jr(this._groups,this._parents)}function Xr(e,t){var n,r,i;return function(){var a=Et(this,e),o=(this.style.removeProperty(e),Et(this,e));return a===o?null:a===n&&o===r?i:i=t(n=a,r=o)}}function Zr(e){return function(){this.style.removeProperty(e)}}function Qr(e,t,n){var r,i=n+``,a;return function(){var o=Et(this,e);return o===i?null:o===r?a:a=t(r=o,n)}}function $r(e,t,n){var r,i,a;return function(){var o=Et(this,e),s=n(this),c=s+``;return s??(c=s=(this.style.removeProperty(e),Et(this,e))),o===c?null:o===r&&c===i?a:(i=c,a=t(r=o,s))}}function ei(e,t){var n,r,i,a=`style.`+t,o=`end.`+a,s;return function(){var c=sr(this,e),l=c.on,u=c.value[a]==null?s||=Zr(t):void 0;(l!==n||i!==u)&&(r=(n=l).copy()).on(o,i=u),c.on=r}}function ti(e,t,n){var r=(e+=``)==`transform`?ue:gr;return t==null?this.styleTween(e,Xr(e,r)).on(`end.style.`+e,Zr(e)):typeof t==`function`?this.styleTween(e,$r(e,r,hr(this,`style.`+e,t))).each(ei(this._id,e)):this.styleTween(e,Qr(e,r,t),n).on(`end.style.`+e,null)}function ni(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}function ri(e,t,n){var r,i;function a(){var a=t.apply(this,arguments);return a!==i&&(r=(i=a)&&ni(e,a,n)),r}return a._value=t,a}function ii(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 Error();return this.tween(r,ri(e,t,n??``))}function ai(e){return function(){this.textContent=e}}function oi(e){return function(){var t=e(this);this.textContent=t??``}}function si(e){return this.tween(`text`,typeof e==`function`?oi(hr(this,`text`,e)):ai(e==null?``:e+``))}function ci(e){return function(t){this.textContent=e.call(this,t)}}function li(e){var t,n;function r(){var r=e.apply(this,arguments);return r!==n&&(t=(n=r)&&ci(r)),t}return r._value=e,r}function ui(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 Error();return this.tween(t,li(e))}function di(){for(var e=this._name,t=this._id,n=gi(),r=this._groups,i=r.length,a=0;a<i;++a)for(var o=r[a],s=o.length,c,l=0;l<s;++l)if(c=o[l]){var u=cr(c,t);ar(c,e,n,l,o,{time:u.time+u.delay+u.duration,delay:0,duration:u.duration,ease:u.ease})}return new mi(r,this._parents,e,n)}function fi(){var e,t,n=this,r=n._id,i=n.size();return new Promise(function(a,o){var s={value:o},c={value:function(){--i===0&&a()}};n.each(function(){var n=sr(this,r),i=n.on;i!==e&&(t=(e=i).copy(),t._.cancel.push(s),t._.interrupt.push(s),t._.end.push(c)),n.on=t}),i===0&&a()})}var pi=0;function mi(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}function hi(e){return yn().transition(e)}function gi(){return++pi}var _i=yn.prototype;mi.prototype=hi.prototype={constructor:mi,select:Kr,selectAll:qr,selectChild:_i.selectChild,selectChildren:_i.selectChildren,filter:zr,merge:Br,selection:Yr,transition:di,call:_i.call,nodes:_i.nodes,node:_i.node,size:_i.size,empty:_i.empty,each:_i.each,on:Ur,attr:Cr,attrTween:Or,style:ti,styleTween:ii,text:si,textTween:ui,remove:Gr,tween:mr,delay:jr,duration:Pr,ease:Ir,easeVarying:Rr,end:fi,[Symbol.iterator]:_i[Symbol.iterator]};function vi(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var yi={time:null,delay:0,duration:250,ease:vi};function bi(e,t){for(var n;!(n=e.__transition)||!(n=n[t]);)if(!(e=e.parentNode))throw Error(`transition ${t} not found`);return n}function xi(e){var t,n;e instanceof mi?(t=e._id,e=e._name):(t=gi(),(n=yi).time=qn(),e=e==null?null:e+``);for(var r=this._groups,i=r.length,a=0;a<i;++a)for(var o=r[a],s=o.length,c,l=0;l<s;++l)(c=o[l])&&ar(c,e,t,l,o,n||bi(c,t));return new mi(r,this._parents,e,t)}yn.prototype.interrupt=dr,yn.prototype.transition=xi;var Si=e=>()=>e;function Ci(e,{sourceEvent:t,target:n,transform:r,dispatch:i}){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:i}})}function wi(e,t,n){this.k=e,this.x=t,this.y=n}wi.prototype={constructor:wi,scale:function(e){return e===1?this:new wi(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new wi(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 Ti=new wi(1,0,0);Ei.prototype=wi.prototype;function Ei(e){for(;!e.__zoom;)if(!(e=e.parentNode))return Ti;return e.__zoom}function Di(e){e.stopImmediatePropagation()}function Oi(e){e.preventDefault(),e.stopImmediatePropagation()}function ki(e){return(!e.ctrlKey||e.type===`wheel`)&&!e.button}function Ai(){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 ji(){return this.__zoom||Ti}function Mi(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function Ni(){return navigator.maxTouchPoints||`ontouchstart`in this}function Pi(e,t,n){var r=e.invertX(t[0][0])-n[0][0],i=e.invertX(t[1][0])-n[1][0],a=e.invertY(t[0][1])-n[0][1],o=e.invertY(t[1][1])-n[1][1];return e.translate(i>r?(r+i)/2:Math.min(0,r)||Math.max(0,i),o>a?(a+o)/2:Math.min(0,a)||Math.max(0,o))}function Fi(){var e=ki,t=Ai,n=Pi,r=Mi,i=Ni,a=[0,1/0],o=[[-1/0,-1/0],[1/0,1/0]],s=250,c=ge,l=ve(`start`,`zoom`,`end`),u,d,f,p=500,m=150,h=0,g=10;function _(e){e.property(`__zoom`,ji).on(`wheel.zoom`,w,{passive:!1}).on(`mousedown.zoom`,T).on(`dblclick.zoom`,E).filter(i).on(`touchstart.zoom`,D).on(`touchmove.zoom`,O).on(`touchend.zoom touchcancel.zoom`,k).style(`-webkit-tap-highlight-color`,`rgba(0,0,0,0)`)}_.transform=function(e,t,n,r){var i=e.selection?e.selection():e;i.property(`__zoom`,ji),e===i?i.interrupt().each(function(){S(this,arguments).event(r).start().zoom(null,typeof t==`function`?t.apply(this,arguments):t).end()}):x(e,t,n,r)},_.scaleBy=function(e,t,n,r){_.scaleTo(e,function(){return this.__zoom.k*(typeof t==`function`?t.apply(this,arguments):t)},n,r)},_.scaleTo=function(e,r,i,a){_.transform(e,function(){var e=t.apply(this,arguments),a=this.__zoom,s=i==null?b(e):typeof i==`function`?i.apply(this,arguments):i,c=a.invert(s),l=typeof r==`function`?r.apply(this,arguments):r;return n(y(v(a,l),s,c),e,o)},i,a)},_.translateBy=function(e,r,i,a){_.transform(e,function(){return n(this.__zoom.translate(typeof r==`function`?r.apply(this,arguments):r,typeof i==`function`?i.apply(this,arguments):i),t.apply(this,arguments),o)},null,a)},_.translateTo=function(e,r,i,a,s){_.transform(e,function(){var e=t.apply(this,arguments),s=this.__zoom,c=a==null?b(e):typeof a==`function`?a.apply(this,arguments):a;return n(Ti.translate(c[0],c[1]).scale(s.k).translate(typeof r==`function`?-r.apply(this,arguments):-r,typeof i==`function`?-i.apply(this,arguments):-i),e,o)},a,s)};function v(e,t){return t=Math.max(a[0],Math.min(a[1],t)),t===e.k?e:new wi(t,e.x,e.y)}function y(e,t,n){var r=t[0]-n[0]*e.k,i=t[1]-n[1]*e.k;return r===e.x&&i===e.y?e:new wi(e.k,r,i)}function b(e){return[(+e[0][0]+ +e[1][0])/2,(+e[0][1]+ +e[1][1])/2]}function x(e,n,r,i){e.on(`start.zoom`,function(){S(this,arguments).event(i).start()}).on(`interrupt.zoom end.zoom`,function(){S(this,arguments).event(i).end()}).tween(`zoom`,function(){var e=this,a=arguments,o=S(e,a).event(i),s=t.apply(e,a),l=r==null?b(s):typeof r==`function`?r.apply(e,a):r,u=Math.max(s[1][0]-s[0][0],s[1][1]-s[0][1]),d=e.__zoom,f=typeof n==`function`?n.apply(e,a):n,p=c(d.invert(l).concat(u/d.k),f.invert(l).concat(u/f.k));return function(e){if(e===1)e=f;else{var t=p(e),n=u/t[2];e=new wi(n,l[0]-t[0]*n,l[1]-t[1]*n)}o.zoom(null,e)}})}function S(e,t,n){return!n&&e.__zooming||new C(e,t)}function C(e,n){this.that=e,this.args=n,this.active=0,this.sourceEvent=null,this.extent=t.apply(e,n),this.taps=0}C.prototype={event:function(e){return e&&(this.sourceEvent=e),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit(`start`)),this},zoom:function(e,t){return this.mouse&&e!==`mouse`&&(this.mouse[1]=t.invert(this.mouse[0])),this.touch0&&e!==`touch`&&(this.touch0[1]=t.invert(this.touch0[0])),this.touch1&&e!==`touch`&&(this.touch1[1]=t.invert(this.touch1[0])),this.that.__zoom=t,this.emit(`zoom`),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit(`end`)),this},emit:function(e){var t=Y(this.that).datum();l.call(e,this.that,new Ci(e,{sourceEvent:this.sourceEvent,target:_,type:e,transform:this.that.__zoom,dispatch:l}),t)}};function w(t,...i){if(!e.apply(this,arguments))return;var s=S(this,i).event(t),c=this.__zoom,l=Math.max(a[0],Math.min(a[1],c.k*2**r.apply(this,arguments))),u=Sn(t);if(s.wheel)(s.mouse[0][0]!==u[0]||s.mouse[0][1]!==u[1])&&(s.mouse[1]=c.invert(s.mouse[0]=u)),clearTimeout(s.wheel);else if(c.k===l)return;else s.mouse=[u,c.invert(u)],ur(this),s.start();Oi(t),s.wheel=setTimeout(d,m),s.zoom(`mouse`,n(y(v(c,l),s.mouse[0],s.mouse[1]),s.extent,o));function d(){s.wheel=null,s.end()}}function T(t,...r){if(f||!e.apply(this,arguments))return;var i=t.currentTarget,a=S(this,r,!0).event(t),s=Y(t.view).on(`mousemove.zoom`,d,!0).on(`mouseup.zoom`,p,!0),c=Sn(t,i),l=t.clientX,u=t.clientY;Dn(t.view),Di(t),a.mouse=[c,this.__zoom.invert(c)],ur(this),a.start();function d(e){if(Oi(e),!a.moved){var t=e.clientX-l,r=e.clientY-u;a.moved=t*t+r*r>h}a.event(e).zoom(`mouse`,n(y(a.that.__zoom,a.mouse[0]=Sn(e,i),a.mouse[1]),a.extent,o))}function p(e){s.on(`mousemove.zoom mouseup.zoom`,null),On(e.view,a.moved),Oi(e),a.event(e).end()}}function E(r,...i){if(e.apply(this,arguments)){var a=this.__zoom,c=Sn(r.changedTouches?r.changedTouches[0]:r,this),l=a.invert(c),u=a.k*(r.shiftKey?.5:2),d=n(y(v(a,u),c,l),t.apply(this,i),o);Oi(r),s>0?Y(this).transition().duration(s).call(x,d,c,r):Y(this).call(_.transform,d,c,r)}}function D(t,...n){if(e.apply(this,arguments)){var r=t.touches,i=r.length,a=S(this,n,t.changedTouches.length===i).event(t),o,s,c,l;for(Di(t),s=0;s<i;++s)c=r[s],l=Sn(c,this),l=[l,this.__zoom.invert(l),c.identifier],a.touch0?!a.touch1&&a.touch0[2]!==l[2]&&(a.touch1=l,a.taps=0):(a.touch0=l,o=!0,a.taps=1+!!u);u&&=clearTimeout(u),o&&(a.taps<2&&(d=l[0],u=setTimeout(function(){u=null},p)),ur(this),a.start())}}function O(e,...t){if(this.__zooming){var r=S(this,t).event(e),i=e.changedTouches,a=i.length,s,c,l,u;for(Oi(e),s=0;s<a;++s)c=i[s],l=Sn(c,this),r.touch0&&r.touch0[2]===c.identifier?r.touch0[0]=l:r.touch1&&r.touch1[2]===c.identifier&&(r.touch1[0]=l);if(c=r.that.__zoom,r.touch1){var d=r.touch0[0],f=r.touch0[1],p=r.touch1[0],m=r.touch1[1],h=(h=p[0]-d[0])*h+(h=p[1]-d[1])*h,g=(g=m[0]-f[0])*g+(g=m[1]-f[1])*g;c=v(c,Math.sqrt(h/g)),l=[(d[0]+p[0])/2,(d[1]+p[1])/2],u=[(f[0]+m[0])/2,(f[1]+m[1])/2]}else if(r.touch0)l=r.touch0[0],u=r.touch0[1];else return;r.zoom(`touch`,n(y(c,l,u),r.extent,o))}}function k(e,...t){if(this.__zooming){var n=S(this,t).event(e),r=e.changedTouches,i=r.length,a,o;for(Di(e),f&&clearTimeout(f),f=setTimeout(function(){f=null},p),a=0;a<i;++a)o=r[a],n.touch0&&n.touch0[2]===o.identifier?delete n.touch0:n.touch1&&n.touch1[2]===o.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&&(o=Sn(o,this),Math.hypot(d[0]-o[0],d[1]-o[1])<g)){var s=Y(this).on(`dblclick.zoom`);s&&s.apply(this,arguments)}}}return _.wheelDelta=function(e){return arguments.length?(r=typeof e==`function`?e:Si(+e),_):r},_.filter=function(t){return arguments.length?(e=typeof t==`function`?t:Si(!!t),_):e},_.touchable=function(e){return arguments.length?(i=typeof e==`function`?e:Si(!!e),_):i},_.extent=function(e){return arguments.length?(t=typeof e==`function`?e:Si([[+e[0][0],+e[0][1]],[+e[1][0],+e[1][1]]]),_):t},_.scaleExtent=function(e){return arguments.length?(a[0]=+e[0],a[1]=+e[1],_):[a[0],a[1]]},_.translateExtent=function(e){return arguments.length?(o[0][0]=+e[0][0],o[1][0]=+e[1][0],o[0][1]=+e[0][1],o[1][1]=+e[1][1],_):[[o[0][0],o[0][1]],[o[1][0],o[1][1]]]},_.constrain=function(e){return arguments.length?(n=e,_):n},_.duration=function(e){return arguments.length?(s=+e,_):s},_.interpolate=function(e){return arguments.length?(c=e,_):c},_.on=function(){var e=l.on.apply(l,arguments);return e===l?_:e},_.clickDistance=function(e){return arguments.length?(h=(e=+e)*e,_):Math.sqrt(h)},_.tapDistance=function(e){return arguments.length?(g=+e,_):g},_}var Ii={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.`},Li=[[-1/0,-1/0],[1/0,1/0]],Ri=[`Enter`,` `,`Escape`],zi={"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`},Bi;(function(e){e.Strict=`strict`,e.Loose=`loose`})(Bi||={});var Vi;(function(e){e.Free=`free`,e.Vertical=`vertical`,e.Horizontal=`horizontal`})(Vi||={});var Hi;(function(e){e.Partial=`partial`,e.Full=`full`})(Hi||={});var Ui={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null},Wi;(function(e){e.Bezier=`default`,e.Straight=`straight`,e.Step=`step`,e.SmoothStep=`smoothstep`,e.SimpleBezier=`simplebezier`})(Wi||={});var Gi;(function(e){e.Arrow=`arrow`,e.ArrowClosed=`arrowclosed`})(Gi||={});var X;(function(e){e.Left=`left`,e.Top=`top`,e.Right=`right`,e.Bottom=`bottom`})(X||={});var Ki={[X.Left]:X.Right,[X.Right]:X.Left,[X.Top]:X.Bottom,[X.Bottom]:X.Top};function qi(e){return e===null?null:e?`valid`:`invalid`}var Ji=e=>`id`in e&&`source`in e&&`target`in e,Yi=e=>`id`in e&&`position`in e&&!(`source`in e)&&!(`target`in e),Xi=e=>`id`in e&&`internals`in e&&!(`source`in e)&&!(`target`in e),Zi=(e,t=[0,0])=>{let{width:n,height:r}=ja(e),i=e.origin??t,a=n*i[0],o=r*i[1];return{x:e.position.x-a,y:e.position.y-o}},Qi=(e,t={nodeOrigin:[0,0]})=>e.length===0?{x:0,y:0,width:0,height:0}:pa(e.reduce((e,n)=>{let r=typeof n==`string`,i=!t.nodeLookup&&!r?n:void 0;return t.nodeLookup&&(i=r?t.nodeLookup.get(n):Xi(n)?n:t.nodeLookup.get(n.id)),da(e,i?ha(i,t.nodeOrigin):{x:0,y:0,x2:0,y2:0})},{x:1/0,y:1/0,x2:-1/0,y2:-1/0})),$i=(e,t={})=>{let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0},r=!1;return e.forEach(e=>{(t.filter===void 0||t.filter(e))&&(n=da(n,ha(e)),r=!0)}),r?pa(n):{x:0,y:0,width:0,height:0}},ea=(e,t,[n,r,i]=[0,0,1],a=!1,o=!1)=>{let s=(t.x-n)/i,c=(t.y-r)/i,l=t.width/i,u=t.height/i,d=[];for(let t of e.values()){let{measured:e,selectable:n=!0,hidden:r=!1}=t;if(o&&!n||r)continue;let i=e.width??t.width??t.initialWidth??0,f=e.height??t.height??t.initialHeight??0,{x:p,y:m}=t.internals.positionAbsolute,h=_a(s,c,l,u,p,m,i,f),g=i*f,_=a&&h>0;(!t.internals.handleBounds||_||h>=g||t.dragging)&&d.push(t)}return d},ta=(e,t)=>{let n=new Set;return e.forEach(e=>{n.add(e.id)}),t.filter(e=>n.has(e.source)||n.has(e.target))};function na(e,t){let n=new Map,r=t?.nodes?new Set(t.nodes.map(e=>e.id)):null;return e.forEach(e=>{e.measured.width&&e.measured.height&&(t?.includeHiddenNodes||!e.hidden)&&(!r||r.has(e.id))&&n.set(e.id,e)}),n}async function ra({nodes:e,width:t,height:n,panZoom:r,minZoom:i,maxZoom:a},o){if(e.size===0)return!0;let s=Oa($i(na(e,o)),t,n,o?.minZoom??i,o?.maxZoom??a,o?.padding??.1);return await r.setViewport(s,{duration:o?.duration,ease:o?.ease,interpolate:o?.interpolate}),!0}function ia({nodeId:e,nextPosition:t,nodeLookup:n,nodeOrigin:r=[0,0],nodeExtent:i,onError:a}){let o=n.get(e),s=o.parentId?n.get(o.parentId):void 0,{x:c,y:l}=s?s.internals.positionAbsolute:{x:0,y:0},u=o.origin??r,d=o.extent||i;if(o.extent===`parent`&&!o.expandParent)if(!s)a?.(`005`,Ii.error005());else{let e=s.measured.width,t=s.measured.height;e&&t&&(d=[[c,l],[c+e,l+t]])}else s&&Aa(o.extent)&&(d=[[o.extent[0][0]+c,o.extent[0][1]+l],[o.extent[1][0]+c,o.extent[1][1]+l]]);let f=Aa(d)?sa(t,d,o.measured):t;return(o.measured.width===void 0||o.measured.height===void 0)&&a?.(`015`,Ii.error015()),{position:{x:f.x-c+(o.measured.width??0)*u[0],y:f.y-l+(o.measured.height??0)*u[1]},positionAbsolute:f}}async function aa({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:r,onBeforeDelete:i}){let a=new Set(e.map(e=>e.id)),o=[];for(let e of n){if(e.deletable===!1)continue;let t=a.has(e.id),n=!t&&e.parentId&&o.find(t=>t.id===e.parentId);(t||n)&&o.push(e)}let s=new Set(t.map(e=>e.id)),c=r.filter(e=>e.deletable!==!1),l=ta(o,c);for(let e of c)s.has(e.id)&&!l.find(t=>t.id===e.id)&&l.push(e);if(!i)return{edges:l,nodes:o};let u=await i({nodes:o,edges:l});return typeof u==`boolean`?u?{edges:l,nodes:o}:{edges:[],nodes:[]}:u}var oa=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),sa=(e={x:0,y:0},t,n)=>({x:oa(e.x,t[0][0],t[1][0]-(n?.width??0)),y:oa(e.y,t[0][1],t[1][1]-(n?.height??0))});function ca(e,t,n){let{width:r,height:i}=ja(n),{x:a,y:o}=n.internals.positionAbsolute;return sa(e,[[a,o],[a+r,o+i]],t)}var la=(e,t,n)=>e<t?oa(Math.abs(e-t),1,t)/t:e>n?-oa(Math.abs(e-n),1,t)/t:0,ua=(e,t,n=15,r=40)=>[la(e.x,r,t.width-r)*n,la(e.y,r,t.height-r)*n],da=(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)}),fa=({x:e,y:t,width:n,height:r})=>({x:e,y:t,x2:e+n,y2:t+r}),pa=({x:e,y:t,x2:n,y2:r})=>({x:e,y:t,width:n-e,height:r-t}),ma=(e,t=[0,0])=>{let{x:n,y:r}=Xi(e)?e.internals.positionAbsolute:Zi(e,t);return{x:n,y:r,width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}},ha=(e,t=[0,0])=>{let{x:n,y:r}=Xi(e)?e.internals.positionAbsolute:Zi(e,t);return{x:n,y:r,x2:n+(e.measured?.width??e.width??e.initialWidth??0),y2:r+(e.measured?.height??e.height??e.initialHeight??0)}},ga=(e,t)=>pa(da(fa(e),fa(t))),_a=(e,t,n,r,i,a,o,s)=>{let c=Math.max(0,Math.min(e+n,i+o)-Math.max(e,i)),l=Math.max(0,Math.min(t+r,a+s)-Math.max(t,a));return Math.ceil(c*l)},va=(e,t)=>_a(e.x,e.y,e.width,e.height,t.x,t.y,t.width,t.height),ya=e=>ba(e.width)&&ba(e.height)&&ba(e.x)&&ba(e.y),ba=e=>!isNaN(e)&&isFinite(e),xa=(e,t)=>(e,t)=>{},Sa=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),Ca=({x:e,y:t},[n,r,i],a=!1,o=[1,1])=>{let s={x:(e-n)/i,y:(t-r)/i};return a?Sa(s,o):s},wa=({x:e,y:t},[n,r,i])=>({x:e*i+n,y:t*i+r});function Ta(e,t){if(typeof e==`number`)return Math.floor((t-t/(1+e))*.5);if(typeof e==`string`&&e.endsWith(`px`)){let t=parseFloat(e);if(!Number.isNaN(t))return Math.floor(t)}if(typeof e==`string`&&e.endsWith(`%`)){let 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 Ea(e,t,n){if(typeof e==`string`||typeof e==`number`){let r=Ta(e,n),i=Ta(e,t);return{top:r,right:i,bottom:r,left:i,x:i*2,y:r*2}}if(typeof e==`object`){let r=Ta(e.top??e.y??0,n),i=Ta(e.bottom??e.y??0,n),a=Ta(e.left??e.x??0,t),o=Ta(e.right??e.x??0,t);return{top:r,right:o,bottom:i,left:a,x:a+o,y:r+i}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function Da(e,t,n,r,i,a){let{x:o,y:s}=wa(e,[t,n,r]),{x:c,y:l}=wa({x:e.x+e.width,y:e.y+e.height},[t,n,r]),u=i-c,d=a-l;return{left:Math.floor(o),top:Math.floor(s),right:Math.floor(u),bottom:Math.floor(d)}}var Oa=(e,t,n,r,i,a)=>{let o=Ea(a,t,n),s=(t-o.x)/e.width,c=(n-o.y)/e.height,l=oa(Math.min(s,c),r,i),u=e.x+e.width/2,d=e.y+e.height/2,f=t/2-u*l,p=n/2-d*l,m=Da(e,f,p,l,t,n),h={left:Math.min(m.left-o.left,0),top:Math.min(m.top-o.top,0),right:Math.min(m.right-o.right,0),bottom:Math.min(m.bottom-o.bottom,0)};return{x:f-h.left+h.right,y:p-h.top+h.bottom,zoom:l}},ka=()=>typeof navigator<`u`&&navigator?.userAgent?.indexOf(`Mac`)>=0;function Aa(e){return e!=null&&e!==`parent`}function ja(e){return{width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}}function Ma(e){return(e.measured?.width??e.width??e.initialWidth)!==void 0&&(e.measured?.height??e.height??e.initialHeight)!==void 0}function Na(e,t={width:0,height:0},n,r,i){let a={...e},o=r.get(n);if(o){let e=o.origin||i;a.x+=o.internals.positionAbsolute.x-(t.width??0)*e[0],a.y+=o.internals.positionAbsolute.y-(t.height??0)*e[1]}return a}function Pa(e,t){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}function Fa(){let e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}function Ia(e){return{...zi,...e||{}}}function La(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:r,containerBounds:i}){let{x:a,y:o}=Ua(e),s=Ca({x:a-(i?.left??0),y:o-(i?.top??0)},r),{x:c,y:l}=n?Sa(s,t):s;return{xSnapped:c,ySnapped:l,...s}}var Ra=e=>({width:e.offsetWidth,height:e.offsetHeight}),za=e=>e?.getRootNode?.()||window?.document,Ba=[`INPUT`,`SELECT`,`TEXTAREA`];function Va(e){let t=e.composedPath?.()?.[0]||e.target;return t?.nodeType===1?Ba.includes(t.nodeName)||t.hasAttribute(`contenteditable`)||!!t.closest(`.nokey`):!1}var Ha=e=>`clientX`in e,Ua=(e,t)=>{let n=Ha(e),r=n?e.clientX:e.touches?.[0].clientX,i=n?e.clientY:e.touches?.[0].clientY;return{x:r-(t?.left??0),y:i-(t?.top??0)}},Wa=(e,t,n,r,i)=>{let a=t.querySelectorAll(`.${e}`);return!a||!a.length?null:Array.from(a).map(t=>{let a=t.getBoundingClientRect();return{id:t.getAttribute(`data-handleid`),type:e,nodeId:i,position:t.getAttribute(`data-handlepos`),x:(a.left-n.left)/r,y:(a.top-n.top)/r,...Ra(t)}})};function Ga({sourceX:e,sourceY:t,targetX:n,targetY:r,sourceControlX:i,sourceControlY:a,targetControlX:o,targetControlY:s}){let c=e*.125+i*.375+o*.375+n*.125,l=t*.125+a*.375+s*.375+r*.125;return[c,l,Math.abs(c-e),Math.abs(l-t)]}function Ka(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function qa({pos:e,x1:t,y1:n,x2:r,y2:i,c:a}){switch(e){case X.Left:return[t-Ka(t-r,a),n];case X.Right:return[t+Ka(r-t,a),n];case X.Top:return[t,n-Ka(n-i,a)];case X.Bottom:return[t,n+Ka(i-n,a)]}}function Ja({sourceX:e,sourceY:t,sourcePosition:n=X.Bottom,targetX:r,targetY:i,targetPosition:a=X.Top,curvature:o=.25}){let[s,c]=qa({pos:n,x1:e,y1:t,x2:r,y2:i,c:o}),[l,u]=qa({pos:a,x1:r,y1:i,x2:e,y2:t,c:o}),[d,f,p,m]=Ga({sourceX:e,sourceY:t,targetX:r,targetY:i,sourceControlX:s,sourceControlY:c,targetControlX:l,targetControlY:u});return[`M${e},${t} C${s},${c} ${l},${u} ${r},${i}`,d,f,p,m]}function Ya({sourceX:e,sourceY:t,targetX:n,targetY:r}){let i=Math.abs(n-e)/2,a=n<e?n+i:n-i,o=Math.abs(r-t)/2;return[a,r<t?r+o:r-o,i,o]}function Xa({sourceNode:e,targetNode:t,selected:n=!1,zIndex:r=0,elevateOnSelect:i=!1,zIndexMode:a=`basic`}){return a===`manual`?r:(i&&n?r+1e3:r)+Math.max(e.parentId||i&&e.selected?e.internals.z:0,t.parentId||i&&t.selected?t.internals.z:0)}function Za({sourceNode:e,targetNode:t,width:n,height:r,transform:i}){let a=da(ha(e),ha(t));return a.x===a.x2&&(a.x2+=1),a.y===a.y2&&(a.y2+=1),va({x:-i[0]/i[2],y:-i[1]/i[2],width:n/i[2],height:r/i[2]},pa(a))>0}var Qa=({source:e,sourceHandle:t,target:n,targetHandle:r})=>`xy-edge__${e}${t||``}-${n}${r||``}`,$a=(e,t)=>t.some(t=>t.source===e.source&&t.target===e.target&&(t.sourceHandle===e.sourceHandle||!t.sourceHandle&&!e.sourceHandle)&&(t.targetHandle===e.targetHandle||!t.targetHandle&&!e.targetHandle)),eo=(e,t,n={})=>{if(!e.source||!e.target)return n.onError?.(`006`,Ii.error006()),t;let r=n.getEdgeId||Qa,i;return i=Ji(e)?{...e}:{...e,id:r(e)},$a(i,t)?t:(i.sourceHandle===null&&delete i.sourceHandle,i.targetHandle===null&&delete i.targetHandle,t.concat(i))};function to({sourceX:e,sourceY:t,targetX:n,targetY:r}){let[i,a,o,s]=Ya({sourceX:e,sourceY:t,targetX:n,targetY:r});return[`M ${e},${t}L ${n},${r}`,i,a,o,s]}var no={[X.Left]:{x:-1,y:0},[X.Right]:{x:1,y:0},[X.Top]:{x:0,y:-1},[X.Bottom]:{x:0,y:1}},ro=({source:e,sourcePosition:t=X.Bottom,target:n})=>t===X.Left||t===X.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},io=(e,t)=>Math.sqrt((t.x-e.x)**2+(t.y-e.y)**2);function ao({source:e,sourcePosition:t=X.Bottom,target:n,targetPosition:r=X.Top,center:i,offset:a,stepPosition:o}){let s=no[t],c=no[r],l={x:e.x+s.x*a,y:e.y+s.y*a},u={x:n.x+c.x*a,y:n.y+c.y*a},d=ro({source:l,sourcePosition:t,target:u}),f=d.x===0?`y`:`x`,p=d[f],m=[],h,g,_={x:0,y:0},v={x:0,y:0},[,,y,b]=Ya({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(s[f]*c[f]===-1){f===`x`?(h=i.x??l.x+(u.x-l.x)*o,g=i.y??(l.y+u.y)/2):(h=i.x??(l.x+u.x)/2,g=i.y??l.y+(u.y-l.y)*o);let e=[{x:h,y:l.y},{x:h,y:u.y}],t=[{x:l.x,y:g},{x:u.x,y:g}];m=s[f]===p?f===`x`?e:t:f===`x`?t:e}else{let i=[{x:l.x,y:u.y}],o=[{x:u.x,y:l.y}];if(m=f===`x`?s.x===p?o:i:s.y===p?i:o,t===r){let t=Math.abs(e[f]-n[f]);if(t<=a){let r=Math.min(a-1,a-t);s[f]===p?_[f]=(l[f]>e[f]?-1:1)*r:v[f]=(u[f]>n[f]?-1:1)*r}}if(t!==r){let e=f===`x`?`y`:`x`,t=s[f]===c[e],n=l[e]>u[e],r=l[e]<u[e];(s[f]===1&&(!t&&n||t&&r)||s[f]!==1&&(!t&&r||t&&n))&&(m=f===`x`?i:o)}let d={x:l.x+_.x,y:l.y+_.y},y={x:u.x+v.x,y:u.y+v.y};Math.max(Math.abs(d.x-m[0].x),Math.abs(y.x-m[0].x))>=Math.max(Math.abs(d.y-m[0].y),Math.abs(y.y-m[0].y))?(h=(d.x+y.x)/2,g=m[0].y):(h=m[0].x,g=(d.y+y.y)/2)}let x={x:l.x+_.x,y:l.y+_.y},S={x:u.x+v.x,y:u.y+v.y};return[[e,...x.x!==m[0].x||x.y!==m[0].y?[x]:[],...m,...S.x!==m[m.length-1].x||S.y!==m[m.length-1].y?[S]:[],n],h,g,y,b]}function oo(e,t,n,r){let i=Math.min(io(e,t)/2,io(t,n)/2,r),{x:a,y:o}=t;if(e.x===a&&a===n.x||e.y===o&&o===n.y)return`L${a} ${o}`;if(e.y===o){let t=e.x<n.x?-1:1,r=e.y<n.y?1:-1;return`L ${a+i*t},${o}Q ${a},${o} ${a},${o+i*r}`}let s=e.x<n.x?1:-1;return`L ${a},${o+i*(e.y<n.y?-1:1)}Q ${a},${o} ${a+i*s},${o}`}function so({sourceX:e,sourceY:t,sourcePosition:n=X.Bottom,targetX:r,targetY:i,targetPosition:a=X.Top,borderRadius:o=5,centerX:s,centerY:c,offset:l=20,stepPosition:u=.5}){let[d,f,p,m,h]=ao({source:{x:e,y:t},sourcePosition:n,target:{x:r,y:i},targetPosition:a,center:{x:s,y:c},offset:l,stepPosition:u}),g=`M${d[0].x} ${d[0].y}`;for(let e=1;e<d.length-1;e++)g+=oo(d[e-1],d[e],d[e+1],o);return g+=`L${d[d.length-1].x} ${d[d.length-1].y}`,[g,f,p,m,h]}function co(e){return e&&!!(e.internals.handleBounds||e.handles?.length)&&!!(e.measured.width||e.width||e.initialWidth)}function lo(e){let{sourceNode:t,targetNode:n}=e;if(!co(t)||!co(n))return null;let r=t.internals.handleBounds||uo(t.handles),i=n.internals.handleBounds||uo(n.handles),a=po(r?.source??[],e.sourceHandle),o=po(e.connectionMode===Bi.Strict?i?.target??[]:(i?.target??[]).concat(i?.source??[]),e.targetHandle);if(!a||!o)return e.onError?.(`008`,Ii.error008(a?`target`:`source`,{id:e.id,sourceHandle:e.sourceHandle,targetHandle:e.targetHandle})),null;let s=a?.position||X.Bottom,c=o?.position||X.Top,l=fo(t,a,s),u=fo(n,o,c);return{sourceX:l.x,sourceY:l.y,targetX:u.x,targetY:u.y,sourcePosition:s,targetPosition:c}}function uo(e){if(!e)return null;let t=[],n=[];for(let 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 fo(e,t,n=X.Left,r=!1){let i=(t?.x??0)+e.internals.positionAbsolute.x,a=(t?.y??0)+e.internals.positionAbsolute.y,{width:o,height:s}=t??ja(e);if(r)return{x:i+o/2,y:a+s/2};switch(t?.position??n){case X.Top:return{x:i+o/2,y:a};case X.Right:return{x:i+o,y:a+s/2};case X.Bottom:return{x:i+o/2,y:a+s};case X.Left:return{x:i,y:a+s/2}}}function po(e,t){return e&&(t?e.find(e=>e.id===t):e[0])||null}function mo(e,t){return e?typeof e==`string`?e:`${t?`${t}__`:``}${Object.keys(e).sort().map(t=>`${t}=${e[t]}`).join(`&`)}`:``}function ho(e,{id:t,defaultColor:n,defaultMarkerStart:r,defaultMarkerEnd:i}){let a=new Set;return e.reduce((e,o)=>([o.markerStart||r,o.markerEnd||i].forEach(r=>{if(r&&typeof r==`object`){let i=mo(r,t);a.has(i)||(e.push({id:i,color:r.color||n,...r}),a.add(i))}}),e),[]).sort((e,t)=>e.id.localeCompare(t.id))}var go=1e3,_o=10,vo={nodeOrigin:[0,0],nodeExtent:Li,elevateNodesOnSelect:!0,zIndexMode:`basic`,defaults:{}},yo={...vo,checkEquality:!0};function bo(e,t){let n={...e};for(let e in t)t[e]!==void 0&&(n[e]=t[e]);return n}function xo(e,t,n){let r=bo(vo,n);for(let n of e.values())if(n.parentId)Eo(n,e,t,r);else{let e=sa(Zi(n,r.nodeOrigin),Aa(n.extent)?n.extent:r.nodeExtent,ja(n));n.internals.positionAbsolute=e}}function So(e,t){if(!e.handles)return e.measured?t?.internals.handleBounds:void 0;let n=[],r=[];for(let t of e.handles){let i={id:t.id,width:t.width??1,height:t.height??1,nodeId:e.id,x:t.x,y:t.y,position:t.position,type:t.type};t.type===`source`?n.push(i):t.type===`target`&&r.push(i)}return{source:n,target:r}}function Co(e){return e===`manual`}function wo(e,t,n,r={}){let i=bo(yo,r),a={i:0},o=new Map(t),s=i?.elevateNodesOnSelect&&!Co(i.zIndexMode)?go:0,c=e.length>0,l=!1;t.clear(),n.clear();for(let u of e){let e=o.get(u.id);if(i.checkEquality&&u===e?.internals.userNode)t.set(u.id,e);else{let n=sa(Zi(u,i.nodeOrigin),Aa(u.extent)?u.extent:i.nodeExtent,ja(u));e={...i.defaults,...u,measured:{width:u.measured?.width,height:u.measured?.height},internals:{positionAbsolute:n,handleBounds:So(u,e),z:Do(u,s,i.zIndexMode),userNode:u}},t.set(u.id,e)}(e.measured===void 0||e.measured.width===void 0||e.measured.height===void 0)&&!e.hidden&&(c=!1),u.parentId&&Eo(e,t,n,r,a),l||=u.selected??!1}return{nodesInitialized:c,hasSelectedNodes:l}}function To(e,t){if(!e.parentId)return;let n=t.get(e.parentId);n?n.set(e.id,e):t.set(e.parentId,new Map([[e.id,e]]))}function Eo(e,t,n,r,i){let{elevateNodesOnSelect:a,nodeOrigin:o,nodeExtent:s,zIndexMode:c}=bo(vo,r),l=e.parentId,u=t.get(l);if(!u){console.warn(`Parent node ${l} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);return}To(e,n),i&&!u.parentId&&u.internals.rootParentIndex===void 0&&c===`auto`&&(u.internals.rootParentIndex=++i.i,u.internals.z=u.internals.z+i.i*_o),i&&u.internals.rootParentIndex!==void 0&&(i.i=u.internals.rootParentIndex);let{x:d,y:f,z:p}=Oo(e,u,o,s,a&&!Co(c)?go:0,c),{positionAbsolute:m}=e.internals,h=d!==m.x||f!==m.y;(h||p!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:h?{x:d,y:f}:m,z:p}})}function Do(e,t,n){let r=ba(e.zIndex)?e.zIndex:0;return Co(n)?r:r+(e.selected?t:0)}function Oo(e,t,n,r,i,a){let{x:o,y:s}=t.internals.positionAbsolute,c=ja(e),l=Zi(e,n),u=Aa(e.extent)?sa(l,e.extent,c):l,d=sa({x:o+u.x,y:s+u.y},r,c);e.extent===`parent`&&(d=ca(d,c,t));let f=Do(e,i,a),p=t.internals.z??0;return{x:d.x,y:d.y,z:p>=f?p+1:f}}function ko(e,t,n,r=[0,0]){let i=[],a=new Map;for(let n of e){let e=t.get(n.parentId);if(!e)continue;let r=ga(a.get(n.parentId)?.expandedRect??ma(e),n.rect);a.set(n.parentId,{expandedRect:r,parent:e})}return a.size>0&&a.forEach(({expandedRect:t,parent:a},o)=>{let s=a.internals.positionAbsolute,c=ja(a),l=a.origin??r,u=t.x<s.x?Math.round(Math.abs(s.x-t.x)):0,d=t.y<s.y?Math.round(Math.abs(s.y-t.y)):0,f=Math.max(c.width,Math.round(t.width)),p=Math.max(c.height,Math.round(t.height)),m=(f-c.width)*l[0],h=(p-c.height)*l[1];(u>0||d>0||m||h)&&(i.push({id:o,type:`position`,position:{x:a.position.x-u+m,y:a.position.y-d+h}}),n.get(o)?.forEach(t=>{e.some(e=>e.id===t.id)||i.push({id:t.id,type:`position`,position:{x:t.position.x+u,y:t.position.y+d}})})),(c.width<t.width||c.height<t.height||u||d)&&i.push({id:o,type:`dimensions`,setAttributes:!0,dimensions:{width:f+(u?l[0]*u-m:0),height:p+(d?l[1]*d-h:0)}})}),i}function Ao(e,t,n,r,i,a,o){let s=r?.querySelector(`.xyflow__viewport`),c=!1;if(!s)return{changes:[],updatedInternals:c};let l=[],u=window.getComputedStyle(s),{m22:d}=new window.DOMMatrixReadOnly(u.transform),f=[];for(let r of e.values()){let e=t.get(r.id);if(!e)continue;if(e.hidden){t.set(e.id,{...e,internals:{...e.internals,handleBounds:void 0}}),c=!0;continue}let s=Ra(r.nodeElement),u=e.measured.width!==s.width||e.measured.height!==s.height;if(s.width&&s.height&&(u||!e.internals.handleBounds||r.force)){let p=r.nodeElement.getBoundingClientRect(),m=Aa(e.extent)?e.extent:a,{positionAbsolute:h}=e.internals;e.parentId&&e.extent===`parent`?h=ca(h,s,t.get(e.parentId)):m&&(h=sa(h,m,s));let g={...e,measured:s,internals:{...e.internals,positionAbsolute:h,handleBounds:{source:Wa(`source`,r.nodeElement,p,d,e.id),target:Wa(`target`,r.nodeElement,p,d,e.id)}}};t.set(e.id,g),e.parentId&&Eo(g,t,n,{nodeOrigin:i,zIndexMode:o}),c=!0,u&&(l.push({id:e.id,type:`dimensions`,dimensions:s}),e.expandParent&&e.parentId&&f.push({id:e.id,parentId:e.parentId,rect:ma(g,i)}))}}if(f.length>0){let e=ko(f,t,n,i);l.push(...e)}return{changes:l,updatedInternals:c}}async function jo({delta:e,panZoom:t,transform:n,translateExtent:r,width:i,height:a}){if(!t||!e.x&&!e.y)return!1;let o=await t.setViewportConstrained({x:n[0]+e.x,y:n[1]+e.y,zoom:n[2]},[[0,0],[i,a]],r);return!!o&&(o.x!==n[0]||o.y!==n[1]||o.k!==n[2])}function Mo(e,t,n,r,i,a){let o=i,s=r.get(o)||new Map;r.set(o,s.set(n,t)),o=`${i}-${e}`;let c=r.get(o)||new Map;if(r.set(o,c.set(n,t)),a){o=`${i}-${e}-${a}`;let s=r.get(o)||new Map;r.set(o,s.set(n,t))}}function No(e,t,n){e.clear(),t.clear();for(let r of n){let{source:n,target:i,sourceHandle:a=null,targetHandle:o=null}=r,s={edgeId:r.id,source:n,target:i,sourceHandle:a,targetHandle:o},c=`${n}-${a}--${i}-${o}`;Mo(`source`,s,`${i}-${o}--${n}-${a}`,e,n,a),Mo(`target`,s,c,e,i,o),t.set(r.id,r)}}function Po(e,t){if(!e.parentId)return!1;let n=t.get(e.parentId);return n?n.selected?!0:Po(n,t):!1}function Fo(e,t,n){let r=e;do{if(r?.matches?.(t))return!0;if(r===n)return!1;r=r?.parentElement}while(r);return!1}function Io(e,t,n,r){let i=new Map;for(let[a,o]of e)if((o.selected||o.id===r)&&(!o.parentId||!Po(o,e))&&(o.draggable||t&&o.draggable===void 0)){let t=e.get(a);t&&i.set(a,{id:a,position:t.position||{x:0,y:0},distance:{x:n.x-t.internals.positionAbsolute.x,y:n.y-t.internals.positionAbsolute.y},extent:t.extent,parentId:t.parentId,origin:t.origin,expandParent:t.expandParent,internals:{positionAbsolute:t.internals.positionAbsolute||{x:0,y:0}},measured:{width:t.measured.width??0,height:t.measured.height??0}})}return i}function Lo({nodeId:e,dragItems:t,nodeLookup:n,dragging:r=!0}){let i=[];for(let[e,a]of t){let t=n.get(e)?.internals.userNode;t&&i.push({...t,position:a.position,dragging:r})}if(!e)return[i[0],i];let a=n.get(e)?.internals.userNode;return[a?{...a,position:t.get(e)?.position||a.position,dragging:r}:i[0],i]}function Ro({dragItems:e,snapGrid:t,x:n,y:r}){let i=e.values().next().value;if(!i)return null;let a={x:n-i.distance.x,y:r-i.distance.y},o=Sa(a,t);return{x:o.x-a.x,y:o.y-a.y}}function zo({onNodeMouseDown:e,getStoreItems:t,onDragStart:n,onDrag:r,onDragStop:i}){let a={x:null,y:null},o=0,s=new Map,c=!1,l={x:0,y:0},u=null,d=!1,f=null,p=!1,m=!1,h=null;function g({noDragClassName:g,handleSelector:_,domNode:v,isSelectable:y,nodeId:b,nodeClickDistance:x=0}){f=Y(v);function S({x:e,y:n}){let{nodeLookup:i,nodeExtent:o,snapGrid:c,snapToGrid:l,nodeOrigin:u,onNodeDrag:d,onSelectionDrag:f,onError:p,updateNodePositions:g}=t();a={x:e,y:n};let _=!1,v=s.size>1,y=v&&o?fa($i(s)):null,x=v&&l?Ro({dragItems:s,snapGrid:c,x:e,y:n}):null;for(let[t,r]of s){if(!i.has(t))continue;let a={x:e-r.distance.x,y:n-r.distance.y};l&&(a=x?{x:Math.round(a.x+x.x),y:Math.round(a.y+x.y)}:Sa(a,c));let s=null;if(v&&o&&!r.extent&&y){let{positionAbsolute:e}=r.internals,t=e.x-y.x+o[0][0],n=e.x+r.measured.width-y.x2+o[1][0],i=e.y-y.y+o[0][1],a=e.y+r.measured.height-y.y2+o[1][1];s=[[t,i],[n,a]]}let{position:d,positionAbsolute:f}=ia({nodeId:t,nextPosition:a,nodeLookup:i,nodeExtent:s||o,nodeOrigin:u,onError:p});_=_||r.position.x!==d.x||r.position.y!==d.y,r.position=d,r.internals.positionAbsolute=f}if(m||=_,_&&(g(s,!0),h&&(r||d||!b&&f))){let[e,t]=Lo({nodeId:b,dragItems:s,nodeLookup:i});r?.(h,s,e,t),d?.(h,e,t),b||f?.(h,t)}}async function C(){if(!u)return;let{transform:e,panBy:n,autoPanSpeed:r,autoPanOnNodeDrag:i}=t();if(!i){c=!1,cancelAnimationFrame(o);return}let[s,d]=ua(l,u,r);(s!==0||d!==0)&&(a.x=(a.x??0)-s/e[2],a.y=(a.y??0)-d/e[2],await n({x:s,y:d})&&S(a)),o=requestAnimationFrame(C)}function w(r){let{nodeLookup:i,multiSelectionActive:o,nodesDraggable:c,transform:l,snapGrid:f,snapToGrid:p,selectNodesOnDrag:m,onNodeDragStart:h,onSelectionDragStart:g,unselectNodesAndEdges:_}=t();d=!0,(!m||!y)&&!o&&b&&(i.get(b)?.selected||_()),y&&m&&b&&e?.(b);let v=La(r.sourceEvent,{transform:l,snapGrid:f,snapToGrid:p,containerBounds:u});if(a=v,s=Io(i,c,v,b),s.size>0&&(n||h||!b&&g)){let[e,t]=Lo({nodeId:b,dragItems:s,nodeLookup:i});n?.(r.sourceEvent,s,e,t),h?.(r.sourceEvent,e,t),b||g?.(r.sourceEvent,t)}}let T=Fn().clickDistance(x).on(`start`,e=>{let{domNode:n,nodeDragThreshold:r,transform:i,snapGrid:o,snapToGrid:s}=t();u=n?.getBoundingClientRect()||null,p=!1,m=!1,h=e.sourceEvent,r===0&&w(e),a=La(e.sourceEvent,{transform:i,snapGrid:o,snapToGrid:s,containerBounds:u}),l=Ua(e.sourceEvent,u)}).on(`drag`,e=>{let{autoPanOnNodeDrag:n,transform:r,snapGrid:i,snapToGrid:o,nodeDragThreshold:f,nodeLookup:m}=t(),g=La(e.sourceEvent,{transform:r,snapGrid:i,snapToGrid:o,containerBounds:u});if(h=e.sourceEvent,(e.sourceEvent.type===`touchmove`&&e.sourceEvent.touches.length>1||b&&!m.has(b))&&(p=!0),!p){if(!c&&n&&d&&(c=!0,C()),!d){let t=Ua(e.sourceEvent,u),n=t.x-l.x,r=t.y-l.y;Math.sqrt(n*n+r*r)>f&&w(e)}(a.x!==g.xSnapped||a.y!==g.ySnapped)&&s&&d&&(l=Ua(e.sourceEvent,u),S(g))}}).on(`end`,e=>{if(!d||p){p&&s.size>0&&t().updateNodePositions(s,!1);return}if(c=!1,d=!1,cancelAnimationFrame(o),s.size>0){let{nodeLookup:n,updateNodePositions:r,onNodeDragStop:a,onSelectionDragStop:o}=t();if(m&&=(r(s,!1),!1),i||a||!b&&o){let[t,r]=Lo({nodeId:b,dragItems:s,nodeLookup:n,dragging:!1});i?.(e.sourceEvent,s,t,r),a?.(e.sourceEvent,t,r),b||o?.(e.sourceEvent,r)}}}).filter(e=>{let t=e.target;return!e.button&&(!g||!Fo(t,`.${g}`,v))&&(!_||Fo(t,_,v))});f.call(T)}function _(){f?.on(`.drag`,null)}return{update:g,destroy:_}}function Bo(e,t,n){let r=[],i={x:e.x-n,y:e.y-n,width:n*2,height:n*2};for(let e of t.values())va(i,ma(e))>0&&r.push(e);return r}var Vo=250;function Ho(e,t,n,r){let i=[],a=1/0,o=Bo(e,n,t+Vo);for(let n of o){let o=[...n.internals.handleBounds?.source??[],...n.internals.handleBounds?.target??[]];for(let s of o){if(r.nodeId===s.nodeId&&r.type===s.type&&r.id===s.id)continue;let{x:o,y:c}=fo(n,s,s.position,!0),l=Math.sqrt((o-e.x)**2+(c-e.y)**2);l>t||(l<a?(i=[{...s,x:o,y:c}],a=l):l===a&&i.push({...s,x:o,y:c}))}}if(!i.length)return null;if(i.length>1){let e=r.type===`source`?`target`:`source`;return i.find(t=>t.type===e)??i[0]}return i[0]}function Uo(e,t,n,r,i,a=!1){let o=r.get(e);if(!o)return null;let s=i===`strict`?o.internals.handleBounds?.[t]:[...o.internals.handleBounds?.source??[],...o.internals.handleBounds?.target??[]],c=(n?s?.find(e=>e.id===n):s?.[0])??null;return c&&a?{...c,...fo(o,c,c.position,!0)}:c}function Wo(e,t){return e||(t?.classList.contains(`target`)?`target`:t?.classList.contains(`source`)?`source`:null)}function Go(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}var Ko=()=>!0;function qo(e,{connectionMode:t,connectionRadius:n,handleId:r,nodeId:i,edgeUpdaterType:a,isTarget:o,domNode:s,nodeLookup:c,lib:l,autoPanOnConnect:u,flowId:d,panBy:f,cancelConnection:p,onConnectStart:m,onConnect:h,onConnectEnd:g,isValidConnection:_=Ko,onReconnectEnd:v,updateConnection:y,getTransform:b,getFromHandle:x,autoPanSpeed:S,dragThreshold:C=1,handleDomNode:w}){let T=za(e.target),E=0,D,{x:O,y:k}=Ua(e),A=Wo(a,w),j=s?.getBoundingClientRect(),M=!1;if(!j||!A)return;let N=Uo(i,A,r,c,t);if(!N)return;let P=Ua(e,j),F=!1,I=null,L=!1,R=null;function z(){if(!u||!j)return;let[e,t]=ua(P,j,S);f({x:e,y:t}),E=requestAnimationFrame(z)}let B={...N,nodeId:i,type:A,position:N.position},V=c.get(i),H={inProgress:!0,isValid:null,from:fo(V,B,X.Left,!0),fromHandle:B,fromPosition:B.position,fromNode:V,to:P,toHandle:null,toPosition:Ki[B.position],toNode:null,pointer:P};function U(){M=!0,y(H),m?.(e,{nodeId:i,handleId:r,handleType:A})}C===0&&U();function W(e){if(!M){let{x:t,y:n}=Ua(e),r=t-O,i=n-k;if(!(r*r+i*i>C*C))return;U()}if(!x()||!B){ee(e);return}let a=b();P=Ua(e,j),D=Ho(Ca(P,a,!1,[1,1]),n,c,B),F||=(z(),!0);let s=Jo(e,{handle:D,connectionMode:t,fromNodeId:i,fromHandleId:r,fromType:o?`target`:`source`,isValidConnection:_,doc:T,lib:l,flowId:d,nodeLookup:c});R=s.handleDomNode,I=s.connection,L=Go(!!D,s.isValid);let u=c.get(i),f=u?fo(u,B,X.Left,!0):H.from,p={...H,from:f,isValid:L,to:s.toHandle&&L?wa({x:s.toHandle.x,y:s.toHandle.y},a):P,toHandle:s.toHandle,toPosition:L&&s.toHandle?s.toHandle.position:Ki[B.position],toNode:s.toHandle?c.get(s.toHandle.nodeId):null,pointer:P};y(p),H=p}function ee(e){if(!(`touches`in e&&e.touches.length>0)){if(M){(D||R)&&I&&L&&h?.(I);let{inProgress:t,...n}=H,r={...n,toPosition:H.toHandle?H.toPosition:null};g?.(e,r),a&&v?.(e,r)}p(),cancelAnimationFrame(E),F=!1,L=!1,I=null,R=null,T.removeEventListener(`mousemove`,W),T.removeEventListener(`mouseup`,ee),T.removeEventListener(`touchmove`,W),T.removeEventListener(`touchend`,ee)}}T.addEventListener(`mousemove`,W),T.addEventListener(`mouseup`,ee),T.addEventListener(`touchmove`,W),T.addEventListener(`touchend`,ee)}function Jo(e,{handle:t,connectionMode:n,fromNodeId:r,fromHandleId:i,fromType:a,doc:o,lib:s,flowId:c,isValidConnection:l=Ko,nodeLookup:u}){let d=a===`target`,f=t?o.querySelector(`.${s}-flow__handle[data-id="${c}-${t?.nodeId}-${t?.id}-${t?.type}"]`):null,{x:p,y:m}=Ua(e),h=o.elementFromPoint(p,m),g=h?.classList.contains(`${s}-flow__handle`)?h:f,_={handleDomNode:g,isValid:!1,connection:null,toHandle:null};if(g){let e=Wo(void 0,g),t=g.getAttribute(`data-nodeid`),a=g.getAttribute(`data-handleid`),o=g.classList.contains(`connectable`),s=g.classList.contains(`connectableend`);if(!t||!e)return _;let c={source:d?t:r,sourceHandle:d?a:i,target:d?r:t,targetHandle:d?i:a};_.connection=c,_.isValid=o&&s&&(n===Bi.Strict?d&&e===`source`||!d&&e===`target`:t!==r||a!==i)&&l(c),_.toHandle=Uo(t,e,a,u,n,!0)}return _}var Yo={onPointerDown:qo,isValid:Jo};function Xo({domNode:e,panZoom:t,getTransform:n,getViewScale:r}){let i=Y(e);function a({translateExtent:e,width:a,height:o,zoomStep:s=1,pannable:c=!0,zoomable:l=!0,inversePan:u=!1}){let d=e=>{if(e.sourceEvent.type!==`wheel`||!t)return;let r=n(),i=e.sourceEvent.ctrlKey&&ka()?10:1,a=-e.sourceEvent.deltaY*(e.sourceEvent.deltaMode===1?.05:e.sourceEvent.deltaMode?1:.002)*s,o=r[2]*2**(a*i);t.scaleTo(o)},f=[0,0],p=Fi().on(`start`,e=>{(e.sourceEvent.type===`mousedown`||e.sourceEvent.type===`touchstart`)&&(f=[e.sourceEvent.clientX??e.sourceEvent.touches[0].clientX,e.sourceEvent.clientY??e.sourceEvent.touches[0].clientY])}).on(`zoom`,c?i=>{let s=n();if(i.sourceEvent.type!==`mousemove`&&i.sourceEvent.type!==`touchmove`||!t)return;let c=[i.sourceEvent.clientX??i.sourceEvent.touches[0].clientX,i.sourceEvent.clientY??i.sourceEvent.touches[0].clientY],l=[c[0]-f[0],c[1]-f[1]];f=c;let d=r()*Math.max(s[2],Math.log(s[2]))*(u?-1:1),p={x:s[0]-l[0]*d,y:s[1]-l[1]*d},m=[[0,0],[a,o]];t.setViewportConstrained({x:p.x,y:p.y,zoom:s[2]},m,e)}:null).on(`zoom.wheel`,l?d:null);i.call(p,{})}function o(){i.on(`zoom`,null)}return{update:a,destroy:o,pointer:Sn}}var Zo=e=>({x:e.x,y:e.y,zoom:e.k}),Qo=({x:e,y:t,zoom:n})=>Ti.translate(e,t).scale(n),$o=(e,t)=>e.target.closest(`.${t}`),es=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),ts=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,ns=(e,t=0,n=ts,r=()=>{})=>{let i=typeof t==`number`&&t>0;return i||r(),i?e.transition().duration(t).ease(n).on(`end`,r):e},rs=e=>{let t=e.ctrlKey&&ka()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function is({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:r,panOnScrollMode:i,panOnScrollSpeed:a,zoomOnPinch:o,onPanZoomStart:s,onPanZoom:c,onPanZoomEnd:l}){return u=>{if($o(u,t))return u.ctrlKey&&u.preventDefault(),!1;u.preventDefault(),u.stopImmediatePropagation();let d=n.property(`__zoom`).k||1;if(u.ctrlKey&&o){let e=Sn(u),t=d*2**rs(u);r.scaleTo(n,t,e,u);return}let f=u.deltaMode===1?20:1,p=i===Vi.Vertical?0:u.deltaX*f,m=i===Vi.Horizontal?0:u.deltaY*f;!ka()&&u.shiftKey&&i!==Vi.Vertical&&(p=u.deltaY*f,m=0),r.translateBy(n,-(p/d)*a,-(m/d)*a,{internal:!0});let h=Zo(n.property(`__zoom`));clearTimeout(e.panScrollTimeout),e.isPanScrolling?(c?.(u,h),e.panScrollTimeout=setTimeout(()=>{l?.(u,h),e.isPanScrolling=!1},150)):(e.isPanScrolling=!0,s?.(u,h))}}function as({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(r,i){let a=r.type===`wheel`,o=!t&&a&&!r.ctrlKey,s=$o(r,e);if(r.ctrlKey&&a&&s&&r.preventDefault(),o||s)return null;r.preventDefault(),n.call(this,r,i)}}function os({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return r=>{if(r.sourceEvent?.internal)return;let i=Zo(r.transform);e.mouseButton=r.sourceEvent?.button||0,e.isZoomingOrPanning=!0,e.prevViewport=i,r.sourceEvent?.type===`mousedown`&&t(!0),n&&n?.(r.sourceEvent,i)}}function ss({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:r,onPanZoom:i}){return a=>{e.usedRightMouseButton=!!(n&&es(t,e.mouseButton??0)),a.sourceEvent?.sync||r([a.transform.x,a.transform.y,a.transform.k]),i&&!a.sourceEvent?.internal&&i?.(a.sourceEvent,Zo(a.transform))}}function cs({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:r,onPanZoomEnd:i,onPaneContextMenu:a}){return o=>{if(!o.sourceEvent?.internal&&(e.isZoomingOrPanning=!1,a&&es(t,e.mouseButton??0)&&!e.usedRightMouseButton&&o.sourceEvent&&a(o.sourceEvent),e.usedRightMouseButton=!1,r(!1),i)){let t=Zo(o.transform);e.prevViewport=t,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{i?.(o.sourceEvent,t)},n?150:0)}}}function ls({zoomActivationKeyPressed:e,zoomOnScroll:t,zoomOnPinch:n,panOnDrag:r,panOnScroll:i,zoomOnDoubleClick:a,userSelectionActive:o,noWheelClassName:s,noPanClassName:c,lib:l,connectionInProgress:u}){return d=>{let f=e||t,p=n&&d.ctrlKey,m=d.type===`wheel`;if(d.button===1&&d.type===`mousedown`&&($o(d,`${l}-flow__node`)||$o(d,`${l}-flow__edge`)))return!0;if(!r&&!f&&!i&&!a&&!n||o||u&&!m||$o(d,s)&&m||$o(d,c)&&(!m||i&&m&&!e)||!n&&d.ctrlKey&&m)return!1;if(!n&&d.type===`touchstart`&&d.touches?.length>1)return d.preventDefault(),!1;if(!f&&!i&&!p&&m||!r&&(d.type===`mousedown`||d.type===`touchstart`)||Array.isArray(r)&&!r.includes(d.button)&&d.type===`mousedown`)return!1;let h=Array.isArray(r)&&r.includes(d.button)||!d.button||d.button<=1;return(!d.ctrlKey||m)&&h}}function us({domNode:e,minZoom:t,maxZoom:n,translateExtent:r,viewport:i,onPanZoom:a,onPanZoomStart:o,onPanZoomEnd:s,onDraggingChange:c}){let l={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},u=e.getBoundingClientRect(),d=Fi().scaleExtent([t,n]).translateExtent(r),f=Y(e).call(d);v({x:i.x,y:i.y,zoom:oa(i.zoom,t,n)},[[0,0],[u.width,u.height]],r);let p=f.on(`wheel.zoom`),m=f.on(`dblclick.zoom`);d.wheelDelta(rs);async function h(e,t){return f?new Promise(n=>{d?.interpolate(t?.interpolate===`linear`?W:ge).transform(ns(f,t?.duration,t?.ease,()=>n(!0)),e)}):!1}function g({noWheelClassName:e,noPanClassName:t,onPaneContextMenu:n,userSelectionActive:r,panOnScroll:i,panOnDrag:u,panOnScrollMode:h,panOnScrollSpeed:g,preventScrolling:v,zoomOnPinch:y,zoomOnScroll:b,zoomOnDoubleClick:x,zoomActivationKeyPressed:S,lib:C,onTransformChange:w,connectionInProgress:T,paneClickDistance:E,selectionOnDrag:D}){r&&!l.isZoomingOrPanning&&_();let O=i&&!S&&!r;d.clickDistance(D?1/0:!ba(E)||E<0?0:E);let k=O?is({zoomPanValues:l,noWheelClassName:e,d3Selection:f,d3Zoom:d,panOnScrollMode:h,panOnScrollSpeed:g,zoomOnPinch:y,onPanZoomStart:o,onPanZoom:a,onPanZoomEnd:s}):as({noWheelClassName:e,preventScrolling:v,d3ZoomHandler:p});f.on(`wheel.zoom`,k,{passive:!1});let A=os({zoomPanValues:l,onDraggingChange:c,onPanZoomStart:o});d.on(`start`,A);let j=ss({zoomPanValues:l,panOnDrag:u,onPaneContextMenu:!!n,onPanZoom:a,onTransformChange:w});d.on(`zoom`,j);let M=cs({zoomPanValues:l,panOnDrag:u,panOnScroll:i,onPaneContextMenu:n,onPanZoomEnd:s,onDraggingChange:c});d.on(`end`,M);let N=ls({zoomActivationKeyPressed:S,panOnDrag:u,zoomOnScroll:b,panOnScroll:i,zoomOnDoubleClick:x,zoomOnPinch:y,userSelectionActive:r,noPanClassName:t,noWheelClassName:e,lib:C,connectionInProgress:T});d.filter(N),x?f.on(`dblclick.zoom`,m):f.on(`dblclick.zoom`,null)}function _(){d.on(`zoom`,null)}async function v(e,t,n){let r=Qo(e),i=d?.constrain()(r,t,n);return i&&await h(i),i}async function y(e,t){let n=Qo(e);return await h(n,t),n}function b(e){if(f){let t=Qo(e),n=f.property(`__zoom`);(n.k!==e.zoom||n.x!==e.x||n.y!==e.y)&&d?.transform(f,t,null,{sync:!0})}}function x(){let e=f?Ei(f.node()):{x:0,y:0,k:1};return{x:e.x,y:e.y,zoom:e.k}}async function S(e,t){return f?new Promise(n=>{d?.interpolate(t?.interpolate===`linear`?W:ge).scaleTo(ns(f,t?.duration,t?.ease,()=>n(!0)),e)}):!1}async function C(e,t){return f?new Promise(n=>{d?.interpolate(t?.interpolate===`linear`?W:ge).scaleBy(ns(f,t?.duration,t?.ease,()=>n(!0)),e)}):!1}function w(e){d?.scaleExtent(e)}function T(e){d?.translateExtent(e)}function E(e){let t=!ba(e)||e<0?0:e;d?.clickDistance(t)}return{update:g,destroy:_,setViewport:y,setViewportConstrained:v,getViewport:x,scaleTo:S,scaleBy:C,setScaleExtent:w,setTranslateExtent:T,syncViewport:b,setClickDistance:E}}var ds;(function(e){e.Line=`line`,e.Handle=`handle`})(ds||={});function fs({width:e,prevWidth:t,height:n,prevHeight:r,affectsX:i,affectsY:a}){let o=e-t,s=n-r,c=[o>0?1:o<0?-1:0,s>0?1:s<0?-1:0];return o&&i&&(c[0]*=-1),s&&a&&(c[1]*=-1),c}function ps(e){return{isHorizontal:e.includes(`right`)||e.includes(`left`),isVertical:e.includes(`bottom`)||e.includes(`top`),affectsX:e.includes(`left`),affectsY:e.includes(`top`)}}function ms(e,t){return Math.max(0,t-e)}function hs(e,t){return Math.max(0,e-t)}function gs(e,t,n){return Math.max(0,t-e,e-n)}function _s(e,t){return e?!t:t}function vs(e,t,n,r,i,a,o,s){let{affectsX:c,affectsY:l}=t,{isHorizontal:u,isVertical:d}=t,f=u&&d,{xSnapped:p,ySnapped:m}=n,{minWidth:h,maxWidth:g,minHeight:_,maxHeight:v}=r,{x:y,y:b,width:x,height:S,aspectRatio:C}=e,w=Math.floor(u?p-e.pointerX:0),T=Math.floor(d?m-e.pointerY:0),E=x+(c?-w:w),D=S+(l?-T:T),O=-a[0]*x,k=-a[1]*S,A=gs(E,h,g),j=gs(D,_,v);if(o){let e=0,t=0;c&&w<0?e=ms(y+w+O,o[0][0]):!c&&w>0&&(e=hs(y+E+O,o[1][0])),l&&T<0?t=ms(b+T+k,o[0][1]):!l&&T>0&&(t=hs(b+D+k,o[1][1])),A=Math.max(A,e),j=Math.max(j,t)}if(s){let e=0,t=0;c&&w>0?e=hs(y+w,s[0][0]):!c&&w<0&&(e=ms(y+E,s[1][0])),l&&T>0?t=hs(b+T,s[0][1]):!l&&T<0&&(t=ms(b+D,s[1][1])),A=Math.max(A,e),j=Math.max(j,t)}if(i){if(u){let e=gs(E/C,_,v)*C;if(A=Math.max(A,e),o){let e=0;e=!c&&!l||c&&!l&&f?hs(b+k+E/C,o[1][1])*C:ms(b+k+(c?w:-w)/C,o[0][1])*C,A=Math.max(A,e)}if(s){let e=0;e=!c&&!l||c&&!l&&f?ms(b+E/C,s[1][1])*C:hs(b+(c?w:-w)/C,s[0][1])*C,A=Math.max(A,e)}}if(d){let e=gs(D*C,h,g)/C;if(j=Math.max(j,e),o){let e=0;e=!c&&!l||l&&!c&&f?hs(y+D*C+O,o[1][0])/C:ms(y+(l?T:-T)*C+O,o[0][0])/C,j=Math.max(j,e)}if(s){let e=0;e=!c&&!l||l&&!c&&f?ms(y+D*C,s[1][0])/C:hs(y+(l?T:-T)*C,s[0][0])/C,j=Math.max(j,e)}}}T+=T<0?j:-j,w+=w<0?A:-A,i&&(f?E>D*C?T=(_s(c,l)?-w:w)/C:w=(_s(c,l)?-T:T)*C:u?(T=w/C,l=c):(w=T*C,c=l));let M=c?y+w:y,N=l?b+T:b;return{width:x+(c?-w:w),height:S+(l?-T:T),x:a[0]*w*(c?-1:1)+M,y:a[1]*T*(l?-1:1)+N}}var ys={width:0,height:0,x:0,y:0},bs={...ys,pointerX:0,pointerY:0,aspectRatio:1};function xs(e,t,n){let r=t.position.x+e.position.x,i=t.position.y+e.position.y,a=e.measured.width??0,o=e.measured.height??0,s=n[0]*a,c=n[1]*o;return[[r-s,i-c],[r+a-s,i+o-c]]}function Ss({domNode:e,nodeId:t,getStoreItems:n,onChange:r,onEnd:i}){let a=Y(e),o={controlDirection:ps(`bottom-right`),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};function s({controlPosition:e,boundaries:s,keepAspectRatio:c,resizeDirection:l,onResizeStart:u,onResize:d,onResizeEnd:f,shouldResize:p}){let m={...ys},h={...bs};o={boundaries:s,resizeDirection:l,keepAspectRatio:c,controlDirection:ps(e)};let g,_=null,v=[],y,b,x,S=!1,C=Fn().on(`start`,e=>{let{nodeLookup:r,transform:i,snapGrid:a,snapToGrid:o,nodeOrigin:s,paneDomNode:c}=n();if(g=r.get(t),!g)return;_=c?.getBoundingClientRect()??null;let{xSnapped:l,ySnapped:d}=La(e.sourceEvent,{transform:i,snapGrid:a,snapToGrid:o,containerBounds:_});m={width:g.measured.width??0,height:g.measured.height??0,x:g.position.x??0,y:g.position.y??0},h={...m,pointerX:l,pointerY:d,aspectRatio:m.width/m.height},y=void 0,b=Aa(g.extent)?g.extent:void 0,g.parentId&&(g.extent===`parent`||g.expandParent)&&(y=r.get(g.parentId)),y&&g.extent===`parent`&&(b=[[0,0],[y.measured.width,y.measured.height]]),v=[],x=void 0;for(let[e,n]of r)if(n.parentId===t&&(v.push({id:e,position:{...n.position},extent:n.extent}),n.extent===`parent`||n.expandParent)){let e=xs(n,g,n.origin??s);x=x?[[Math.min(e[0][0],x[0][0]),Math.min(e[0][1],x[0][1])],[Math.max(e[1][0],x[1][0]),Math.max(e[1][1],x[1][1])]]:e}u?.(e,{...m})}).on(`drag`,e=>{let{transform:t,snapGrid:i,snapToGrid:a,nodeOrigin:s}=n(),c=La(e.sourceEvent,{transform:t,snapGrid:i,snapToGrid:a,containerBounds:_}),l=[];if(!g)return;let{x:u,y:f,width:C,height:w}=m,T={},E=g.origin??s,{width:D,height:O,x:k,y:A}=vs(h,o.controlDirection,c,o.boundaries,o.keepAspectRatio,E,b,x),j=D!==C,M=O!==w,N=k!==u&&j,P=A!==f&&M;if(!N&&!P&&!j&&!M)return;if((N||P||E[0]===1||E[1]===1)&&(T.x=N?k:m.x,T.y=P?A:m.y,m.x=T.x,m.y=T.y,v.length>0)){let e=k-u,t=A-f;for(let n of v)n.position={x:n.position.x-e+E[0]*(D-C),y:n.position.y-t+E[1]*(O-w)},l.push(n)}if((j||M)&&(T.width=j&&(!o.resizeDirection||o.resizeDirection===`horizontal`)?D:m.width,T.height=M&&(!o.resizeDirection||o.resizeDirection===`vertical`)?O:m.height,m.width=T.width,m.height=T.height),y&&g.expandParent){let e=E[0]*(T.width??0);T.x&&T.x<e&&(m.x=e,h.x-=T.x-e);let t=E[1]*(T.height??0);T.y&&T.y<t&&(m.y=t,h.y-=T.y-t)}let F=fs({width:m.width,prevWidth:C,height:m.height,prevHeight:w,affectsX:o.controlDirection.affectsX,affectsY:o.controlDirection.affectsY}),I={...m,direction:F};p?.(e,I)!==!1&&(S=!0,d?.(e,I),r(T,l))}).on(`end`,e=>{S&&=(f?.(e,{...m}),i?.({...m}),!1)});a.call(C)}function c(){a.on(`.drag`,null)}return{update:s,destroy:c}}var Cs=e(H(),1),ws=e=>{let t,n=new Set,r=(e,r)=>{let i=typeof e==`function`?e(t):e;if(!Object.is(i,t)){let e=t;t=r??(typeof i!=`object`||!i)?i:Object.assign({},t,i),n.forEach(n=>n(t,e))}},i=()=>t,a={setState:r,getState:i,getInitialState:()=>o,subscribe:e=>(n.add(e),()=>n.delete(e)),destroy:()=>{n.clear()}},o=t=e(r,i,a);return a},Ts=e=>e?ws(e):ws,{useDebugValue:Es}=G.default,{useSyncExternalStoreWithSelector:Ds}=Cs.default,Os=e=>e;function ks(e,t=Os,n){let r=Ds(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return Es(r),r}var As=(e,t)=>{let n=Ts(e),r=(e,r=t)=>ks(n,e,r);return Object.assign(r,n),r},js=(e,t)=>e?As(e,t):As;function Z(e,t){if(Object.is(e,t))return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(let[n,r]of e)if(!Object.is(r,t.get(n)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}let n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(let r of n)if(!Object.prototype.hasOwnProperty.call(t,r)||!Object.is(e[r],t[r]))return!1;return!0}c();var Ms=(0,G.createContext)(null),Ns=Ms.Provider,Ps=Ii.error001(`react`);function Q(e,t){let n=(0,G.useContext)(Ms);if(n===null)throw Error(Ps);return ks(n,e,t)}function $(){let e=(0,G.useContext)(Ms);if(e===null)throw Error(Ps);return(0,G.useMemo)(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}var Fs={display:`none`},Is={position:`absolute`,width:1,height:1,margin:-1,border:0,padding:0,overflow:`hidden`,clip:`rect(0px, 0px, 0px, 0px)`,clipPath:`inset(100%)`},Ls=`react-flow__node-desc`,Rs=`react-flow__edge-desc`,zs=`react-flow__aria-live`,Bs=e=>e.ariaLiveMessage,Vs=e=>e.ariaLabelConfig;function Hs({rfId:e}){let t=Q(Bs);return(0,K.jsx)(`div`,{id:`${zs}-${e}`,"aria-live":`assertive`,"aria-atomic":`true`,style:Is,children:t})}function Us({rfId:e,disableKeyboardA11y:t}){let n=Q(Vs);return(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`div`,{id:`${Ls}-${e}`,style:Fs,children:t?n[`node.a11yDescription.default`]:n[`node.a11yDescription.keyboardDisabled`]}),(0,K.jsx)(`div`,{id:`${Rs}-${e}`,style:Fs,children:n[`edge.a11yDescription.default`]}),!t&&(0,K.jsx)(Hs,{rfId:e})]})}var Ws=(0,G.forwardRef)(({position:e=`top-left`,children:t,className:n,style:r,...i},a)=>(0,K.jsx)(`div`,{className:q([`react-flow__panel`,n,...`${e}`.split(`-`)]),style:r,ref:a,...i,children:t}));Ws.displayName=`Panel`;var Gs=`https://reactflow.dev?utm_source=attribution`;function Ks({proOptions:e,position:t=`bottom-right`}){return e?.hideAttribution?null:(0,K.jsx)(Ws,{position:t,className:`react-flow__attribution`,"data-message":`Please only hide this attribution when you are subscribed to React Flow Pro: ${Gs}`,children:(0,K.jsx)(`a`,{href:Gs,target:`_blank`,rel:`noopener noreferrer`,"aria-label":`React Flow attribution`,children:`React Flow`})})}var qs=e=>{let t=[],n=[];for(let[,n]of e.nodeLookup)n.selected&&t.push(n.internals.userNode);for(let[,t]of e.edgeLookup)t.selected&&n.push(t);return{selectedNodes:t,selectedEdges:n}},Js=e=>e.id;function Ys(e,t){return Z(e.selectedNodes.map(Js),t.selectedNodes.map(Js))&&Z(e.selectedEdges.map(Js),t.selectedEdges.map(Js))}function Xs({onSelectionChange:e}){let t=$(),{selectedNodes:n,selectedEdges:r}=Q(qs,Ys);return(0,G.useEffect)(()=>{let i={nodes:n,edges:r};e?.(i),t.getState().onSelectionChangeHandlers.forEach(e=>e(i))},[n,r,e]),null}var Zs=e=>!!e.onSelectionChangeHandlers;function Qs({onSelectionChange:e}){let t=Q(Zs);return e||t?(0,K.jsx)(Xs,{onSelectionChange:e}):null}var $s=[0,0],ec={x:0,y:0,zoom:1},tc=[...`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`.split(`.`),`rfId`],nc=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}),rc={translateExtent:Li,nodeOrigin:$s,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:`nopan`,rfId:`1`};function ic(e){let{setNodes:t,setEdges:n,setMinZoom:r,setMaxZoom:i,setTranslateExtent:a,setNodeExtent:o,reset:s,setDefaultNodesAndEdges:c}=Q(nc,Z),l=$();(0,G.useEffect)(()=>(c(e.defaultNodes,e.defaultEdges),()=>{u.current=rc,s()}),[]);let u=(0,G.useRef)(rc);return(0,G.useEffect)(()=>{for(let s of tc){let c=e[s];c!==u.current[s]&&e[s]!==void 0&&(s===`nodes`?t(c):s===`edges`?n(c):s===`minZoom`?r(c):s===`maxZoom`?i(c):s===`translateExtent`?a(c):s===`nodeExtent`?o(c):s===`ariaLabelConfig`?l.setState({ariaLabelConfig:Ia(c)}):s===`fitView`?l.setState({fitViewQueued:c}):s===`fitViewOptions`?l.setState({fitViewOptions:c}):l.setState({[s]:c}))}u.current=e},tc.map(t=>e[t])),null}function ac(){return typeof window>`u`||!window.matchMedia?null:window.matchMedia(`(prefers-color-scheme: dark)`)}function oc(e){let[t,n]=(0,G.useState)(e===`system`?null:e);return(0,G.useEffect)(()=>{if(e!==`system`){n(e);return}let t=ac(),r=()=>n(t?.matches?`dark`:`light`);return r(),t?.addEventListener(`change`,r),()=>{t?.removeEventListener(`change`,r)}},[e]),t===null?ac()?.matches?`dark`:`light`:t}var sc=typeof document<`u`?document:null;function cc(e=null,t={target:sc,actInsideInputWithModifier:!0}){let[n,r]=(0,G.useState)(!1),i=(0,G.useRef)(!1),a=(0,G.useRef)(new Set([])),[o,s]=(0,G.useMemo)(()=>{if(e!==null){let t=(Array.isArray(e)?e:[e]).filter(e=>typeof e==`string`).map(e=>e.replace(`+`,`
1
+ import{a as e}from"./chunk-BNv3lrIs.js";import{t}from"./brain-BBNUUrUI.js";import{t as n}from"./upload-CRuuzzvp.js";import{B as r,Cn as i,D as a,Dt as o,G as s,Gn as c,H as l,Hn as u,It as d,J as f,Jt as p,K as m,Kn as h,Ln as g,O as _,Rn as v,Tt as y,Un as b,V as x,Vt as S,Wt as C,X as w,Y as T,ct as E,ft as D,g as O,gn as k,gt as A,lt as j,nt as M,pn as N,rt as P,ut as F,xt as I,yt as L,z as R}from"./index-Dw1N2-ci.js";import{a as z,i as B,n as V,o as H,r as U,t as W}from"./value-CIr5hDMt.js";var ee=k(`grid-3x3`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M3 9h18`,key:`1pudct`}],[`path`,{d:`M3 15h18`,key:`5xshup`}],[`path`,{d:`M9 3v18`,key:`fh3hqa`}],[`path`,{d:`M15 3v18`,key:`14nvp0`}]]),te=k(`move-horizontal`,[[`path`,{d:`m18 8 4 4-4 4`,key:`1ak13k`}],[`path`,{d:`M2 12h20`,key:`9i4pu4`}],[`path`,{d:`m6 8-4 4 4 4`,key:`15zrgr`}]]),ne=k(`move-vertical`,[[`path`,{d:`M12 2v20`,key:`t6zp3m`}],[`path`,{d:`m8 18 4 4 4-4`,key:`bh5tu3`}],[`path`,{d:`m8 6 4-4 4 4`,key:`ybng9g`}]]),re=180/Math.PI,ie={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function ae(e,t,n,r,i,a){var o,s,c;return(o=Math.sqrt(e*e+t*t))&&(e/=o,t/=o),(c=e*n+t*r)&&(n-=e*c,r-=t*c),(s=Math.sqrt(n*n+r*r))&&(n/=s,r/=s,c/=s),e*r<t*n&&(e=-e,t=-t,c=-c,o=-o),{translateX:i,translateY:a,rotate:Math.atan2(t,e)*re,skewX:Math.atan(c)*re,scaleX:o,scaleY:s}}var oe;function se(e){let t=new(typeof DOMMatrix==`function`?DOMMatrix:WebKitCSSMatrix)(e+``);return t.isIdentity?ie:ae(t.a,t.b,t.c,t.d,t.e,t.f)}function ce(e){return e==null||(oe||=document.createElementNS(`http://www.w3.org/2000/svg`,`g`),oe.setAttribute(`transform`,e),!(e=oe.transform.baseVal.consolidate()))?ie:(e=e.matrix,ae(e.a,e.b,e.c,e.d,e.e,e.f))}function le(e,t,n,r){function i(e){return e.length?e.pop()+` `:``}function a(e,r,i,a,o,s){if(e!==i||r!==a){var c=o.push(`translate(`,null,t,null,n);s.push({i:c-4,x:U(e,i)},{i:c-2,x:U(r,a)})}else (i||a)&&o.push(`translate(`+i+t+a+n)}function o(e,t,n,a){e===t?t&&n.push(i(n)+`rotate(`+t+r):(e-t>180?t+=360:t-e>180&&(e+=360),a.push({i:n.push(i(n)+`rotate(`,null,r)-2,x:U(e,t)}))}function s(e,t,n,a){e===t?t&&n.push(i(n)+`skewX(`+t+r):a.push({i:n.push(i(n)+`skewX(`,null,r)-2,x:U(e,t)})}function c(e,t,n,r,a,o){if(e!==n||t!==r){var s=a.push(i(a)+`scale(`,null,`,`,null,`)`);o.push({i:s-4,x:U(e,n)},{i:s-2,x:U(t,r)})}else (n!==1||r!==1)&&a.push(i(a)+`scale(`+n+`,`+r+`)`)}return function(t,n){var r=[],i=[];return t=e(t),n=e(n),a(t.translateX,t.translateY,n.translateX,n.translateY,r,i),o(t.rotate,n.rotate,r,i),s(t.skewX,n.skewX,r,i),c(t.scaleX,t.scaleY,n.scaleX,n.scaleY,r,i),t=n=null,function(e){for(var t=-1,n=i.length,a;++t<n;)r[(a=i[t]).i]=a.x(e);return r.join(``)}}}var ue=le(se,`px, `,`px)`,`deg)`),de=le(ce,`, `,`)`,`)`),fe=1e-12;function pe(e){return((e=Math.exp(e))+1/e)/2}function me(e){return((e=Math.exp(e))-1/e)/2}function he(e){return((e=Math.exp(2*e))-1)/(e+1)}var ge=(function e(t,n,r){function i(e,i){var a=e[0],o=e[1],s=e[2],c=i[0],l=i[1],u=i[2],d=c-a,f=l-o,p=d*d+f*f,m,h;if(p<fe)h=Math.log(u/s)/t,m=function(e){return[a+e*d,o+e*f,s*Math.exp(t*e*h)]};else{var g=Math.sqrt(p),_=(u*u-s*s+r*p)/(2*s*n*g),v=(u*u-s*s-r*p)/(2*u*n*g),y=Math.log(Math.sqrt(_*_+1)-_);h=(Math.log(Math.sqrt(v*v+1)-v)-y)/t,m=function(e){var r=e*h,i=pe(y),c=s/(n*g)*(i*he(t*r+y)-me(y));return[a+c*d,o+c*f,s*i/pe(t*r+y)]}}return m.duration=h*1e3*t/Math.SQRT2,m}return i.rho=function(t){var n=Math.max(.001,+t),r=n*n;return e(n,r,r*r)},i})(Math.SQRT2,2,4),G=e(h(),1),K=i();function q(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=q(e[n]))!==``&&(t+=(t&&` `)+r);else for(let n in e)e[n]&&(t+=(t&&` `)+n);return t}var _e={value:()=>{}};function ve(){for(var e=0,t=arguments.length,n={},r;e<t;++e){if(!(r=arguments[e]+``)||r in n||/[\s.]/.test(r))throw Error(`illegal type: `+r);n[r]=[]}return new ye(n)}function ye(e){this._=e}function be(e,t){return e.trim().split(/^|\s+/).map(function(e){var n=``,r=e.indexOf(`.`);if(r>=0&&(n=e.slice(r+1),e=e.slice(0,r)),e&&!t.hasOwnProperty(e))throw Error(`unknown type: `+e);return{type:e,name:n}})}ye.prototype=ve.prototype={constructor:ye,on:function(e,t){var n=this._,r=be(e+``,n),i,a=-1,o=r.length;if(arguments.length<2){for(;++a<o;)if((i=(e=r[a]).type)&&(i=xe(n[i],e.name)))return i;return}if(t!=null&&typeof t!=`function`)throw Error(`invalid callback: `+t);for(;++a<o;)if(i=(e=r[a]).type)n[i]=Se(n[i],e.name,t);else if(t==null)for(i in n)n[i]=Se(n[i],e.name,null);return this},copy:function(){var e={},t=this._;for(var n in t)e[n]=t[n].slice();return new ye(e)},call:function(e,t){if((i=arguments.length-2)>0)for(var n=Array(i),r=0,i,a;r<i;++r)n[r]=arguments[r+2];if(!this._.hasOwnProperty(e))throw Error(`unknown type: `+e);for(a=this._[e],r=0,i=a.length;r<i;++r)a[r].value.apply(t,n)},apply:function(e,t,n){if(!this._.hasOwnProperty(e))throw Error(`unknown type: `+e);for(var r=this._[e],i=0,a=r.length;i<a;++i)r[i].value.apply(t,n)}};function xe(e,t){for(var n=0,r=e.length,i;n<r;++n)if((i=e[n]).name===t)return i.value}function Se(e,t,n){for(var r=0,i=e.length;r<i;++r)if(e[r].name===t){e[r]=_e,e=e.slice(0,r).concat(e.slice(r+1));break}return n!=null&&e.push({name:t,value:n}),e}var Ce={svg:`http://www.w3.org/2000/svg`,xhtml:`http://www.w3.org/1999/xhtml`,xlink:`http://www.w3.org/1999/xlink`,xml:`http://www.w3.org/XML/1998/namespace`,xmlns:`http://www.w3.org/2000/xmlns/`};function we(e){var t=e+=``,n=t.indexOf(`:`);return n>=0&&(t=e.slice(0,n))!==`xmlns`&&(e=e.slice(n+1)),Ce.hasOwnProperty(t)?{space:Ce[t],local:e}:e}function Te(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===`http://www.w3.org/1999/xhtml`&&t.documentElement.namespaceURI===`http://www.w3.org/1999/xhtml`?t.createElement(e):t.createElementNS(n,e)}}function Ee(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function De(e){var t=we(e);return(t.local?Ee:Te)(t)}function Oe(){}function ke(e){return e==null?Oe:function(){return this.querySelector(e)}}function Ae(e){typeof e!=`function`&&(e=ke(e));for(var t=this._groups,n=t.length,r=Array(n),i=0;i<n;++i)for(var a=t[i],o=a.length,s=r[i]=Array(o),c,l,u=0;u<o;++u)(c=a[u])&&(l=e.call(c,c.__data__,u,a))&&(`__data__`in c&&(l.__data__=c.__data__),s[u]=l);return new J(r,this._parents)}function je(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function Me(){return[]}function Ne(e){return e==null?Me:function(){return this.querySelectorAll(e)}}function Pe(e){return function(){return je(e.apply(this,arguments))}}function Fe(e){e=typeof e==`function`?Pe(e):Ne(e);for(var t=this._groups,n=t.length,r=[],i=[],a=0;a<n;++a)for(var o=t[a],s=o.length,c,l=0;l<s;++l)(c=o[l])&&(r.push(e.call(c,c.__data__,l,o)),i.push(c));return new J(r,i)}function Ie(e){return function(){return this.matches(e)}}function Le(e){return function(t){return t.matches(e)}}var Re=Array.prototype.find;function ze(e){return function(){return Re.call(this.children,e)}}function Be(){return this.firstElementChild}function Ve(e){return this.select(e==null?Be:ze(typeof e==`function`?e:Le(e)))}var He=Array.prototype.filter;function Ue(){return Array.from(this.children)}function We(e){return function(){return He.call(this.children,e)}}function Ge(e){return this.selectAll(e==null?Ue:We(typeof e==`function`?e:Le(e)))}function Ke(e){typeof e!=`function`&&(e=Ie(e));for(var t=this._groups,n=t.length,r=Array(n),i=0;i<n;++i)for(var a=t[i],o=a.length,s=r[i]=[],c,l=0;l<o;++l)(c=a[l])&&e.call(c,c.__data__,l,a)&&s.push(c);return new J(r,this._parents)}function qe(e){return Array(e.length)}function Je(){return new J(this._enter||this._groups.map(qe),this._parents)}function Ye(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}Ye.prototype={constructor:Ye,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 Xe(e){return function(){return e}}function Ze(e,t,n,r,i,a){for(var o=0,s,c=t.length,l=a.length;o<l;++o)(s=t[o])?(s.__data__=a[o],r[o]=s):n[o]=new Ye(e,a[o]);for(;o<c;++o)(s=t[o])&&(i[o]=s)}function Qe(e,t,n,r,i,a,o){var s,c,l=new Map,u=t.length,d=a.length,f=Array(u),p;for(s=0;s<u;++s)(c=t[s])&&(f[s]=p=o.call(c,c.__data__,s,t)+``,l.has(p)?i[s]=c:l.set(p,c));for(s=0;s<d;++s)p=o.call(e,a[s],s,a)+``,(c=l.get(p))?(r[s]=c,c.__data__=a[s],l.delete(p)):n[s]=new Ye(e,a[s]);for(s=0;s<u;++s)(c=t[s])&&l.get(f[s])===c&&(i[s]=c)}function $e(e){return e.__data__}function et(e,t){if(!arguments.length)return Array.from(this,$e);var n=t?Qe:Ze,r=this._parents,i=this._groups;typeof e!=`function`&&(e=Xe(e));for(var a=i.length,o=Array(a),s=Array(a),c=Array(a),l=0;l<a;++l){var u=r[l],d=i[l],f=d.length,p=tt(e.call(u,u&&u.__data__,l,r)),m=p.length,h=s[l]=Array(m),g=o[l]=Array(m);n(u,d,h,g,c[l]=Array(f),p,t);for(var _=0,v=0,y,b;_<m;++_)if(y=h[_]){for(_>=v&&(v=_+1);!(b=g[v])&&++v<m;);y._next=b||null}}return o=new J(o,r),o._enter=s,o._exit=c,o}function tt(e){return typeof e==`object`&&`length`in e?e:Array.from(e)}function nt(){return new J(this._exit||this._groups.map(qe),this._parents)}function rt(e,t,n){var r=this.enter(),i=this,a=this.exit();return typeof e==`function`?(r=e(r),r&&=r.selection()):r=r.append(e+``),t!=null&&(i=t(i),i&&=i.selection()),n==null?a.remove():n(a),r&&i?r.merge(i).order():i}function it(e){for(var t=e.selection?e.selection():e,n=this._groups,r=t._groups,i=n.length,a=r.length,o=Math.min(i,a),s=Array(i),c=0;c<o;++c)for(var l=n[c],u=r[c],d=l.length,f=s[c]=Array(d),p,m=0;m<d;++m)(p=l[m]||u[m])&&(f[m]=p);for(;c<i;++c)s[c]=n[c];return new J(s,this._parents)}function at(){for(var e=this._groups,t=-1,n=e.length;++t<n;)for(var r=e[t],i=r.length-1,a=r[i],o;--i>=0;)(o=r[i])&&(a&&o.compareDocumentPosition(a)^4&&a.parentNode.insertBefore(o,a),a=o);return this}function ot(e){e||=st;function t(t,n){return t&&n?e(t.__data__,n.__data__):!t-!n}for(var n=this._groups,r=n.length,i=Array(r),a=0;a<r;++a){for(var o=n[a],s=o.length,c=i[a]=Array(s),l,u=0;u<s;++u)(l=o[u])&&(c[u]=l);c.sort(t)}return new J(i,this._parents).order()}function st(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function ct(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function lt(){return Array.from(this)}function ut(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],i=0,a=r.length;i<a;++i){var o=r[i];if(o)return o}return null}function dt(){let e=0;for(let t of this)++e;return e}function ft(){return!this.node()}function pt(e){for(var t=this._groups,n=0,r=t.length;n<r;++n)for(var i=t[n],a=0,o=i.length,s;a<o;++a)(s=i[a])&&e.call(s,s.__data__,a,i);return this}function mt(e){return function(){this.removeAttribute(e)}}function ht(e){return function(){this.removeAttributeNS(e.space,e.local)}}function gt(e,t){return function(){this.setAttribute(e,t)}}function _t(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function vt(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}}function yt(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 bt(e,t){var n=we(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?ht:mt:typeof t==`function`?n.local?yt:vt:n.local?_t:gt)(n,t))}function xt(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function St(e){return function(){this.style.removeProperty(e)}}function Ct(e,t,n){return function(){this.style.setProperty(e,t,n)}}function wt(e,t,n){return function(){var r=t.apply(this,arguments);r==null?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function Tt(e,t,n){return arguments.length>1?this.each((t==null?St:typeof t==`function`?wt:Ct)(e,t,n??``)):Et(this.node(),e)}function Et(e,t){return e.style.getPropertyValue(t)||xt(e).getComputedStyle(e,null).getPropertyValue(t)}function Dt(e){return function(){delete this[e]}}function Ot(e,t){return function(){this[e]=t}}function kt(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function At(e,t){return arguments.length>1?this.each((t==null?Dt:typeof t==`function`?kt:Ot)(e,t)):this.node()[e]}function jt(e){return e.trim().split(/^|\s+/)}function Mt(e){return e.classList||new Nt(e)}function Nt(e){this._node=e,this._names=jt(e.getAttribute(`class`)||``)}Nt.prototype={add:function(e){this._names.indexOf(e)<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 Pt(e,t){for(var n=Mt(e),r=-1,i=t.length;++r<i;)n.add(t[r])}function Ft(e,t){for(var n=Mt(e),r=-1,i=t.length;++r<i;)n.remove(t[r])}function It(e){return function(){Pt(this,e)}}function Lt(e){return function(){Ft(this,e)}}function Rt(e,t){return function(){(t.apply(this,arguments)?Pt:Ft)(this,e)}}function zt(e,t){var n=jt(e+``);if(arguments.length<2){for(var r=Mt(this.node()),i=-1,a=n.length;++i<a;)if(!r.contains(n[i]))return!1;return!0}return this.each((typeof t==`function`?Rt:t?It:Lt)(n,t))}function Bt(){this.textContent=``}function Vt(e){return function(){this.textContent=e}}function Ht(e){return function(){var t=e.apply(this,arguments);this.textContent=t??``}}function Ut(e){return arguments.length?this.each(e==null?Bt:(typeof e==`function`?Ht:Vt)(e)):this.node().textContent}function Wt(){this.innerHTML=``}function Gt(e){return function(){this.innerHTML=e}}function Kt(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??``}}function qt(e){return arguments.length?this.each(e==null?Wt:(typeof e==`function`?Kt:Gt)(e)):this.node().innerHTML}function Jt(){this.nextSibling&&this.parentNode.appendChild(this)}function Yt(){return this.each(Jt)}function Xt(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function Zt(){return this.each(Xt)}function Qt(e){var t=typeof e==`function`?e:De(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function $t(){return null}function en(e,t){var n=typeof e==`function`?e:De(e),r=t==null?$t:typeof t==`function`?t:ke(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})}function tn(){var e=this.parentNode;e&&e.removeChild(this)}function nn(){return this.each(tn)}function rn(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function an(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function on(e){return this.select(e?an:rn)}function sn(e){return arguments.length?this.property(`__data__`,e):this.node().__data__}function cn(e){return function(t){e.call(this,t,this.__data__)}}function ln(e){return e.trim().split(/^|\s+/).map(function(e){var t=``,n=e.indexOf(`.`);return n>=0&&(t=e.slice(n+1),e=e.slice(0,n)),{type:e,name:t}})}function un(e){return function(){var t=this.__on;if(t){for(var n=0,r=-1,i=t.length,a;n<i;++n)a=t[n],(!e.type||a.type===e.type)&&a.name===e.name?this.removeEventListener(a.type,a.listener,a.options):t[++r]=a;++r?t.length=r:delete this.__on}}}function dn(e,t,n){return function(){var r=this.__on,i,a=cn(t);if(r){for(var o=0,s=r.length;o<s;++o)if((i=r[o]).type===e.type&&i.name===e.name){this.removeEventListener(i.type,i.listener,i.options),this.addEventListener(i.type,i.listener=a,i.options=n),i.value=t;return}}this.addEventListener(e.type,a,n),i={type:e.type,name:e.name,value:t,listener:a,options:n},r?r.push(i):this.__on=[i]}}function fn(e,t,n){var r=ln(e+``),i,a=r.length,o;if(arguments.length<2){var s=this.node().__on;if(s){for(var c=0,l=s.length,u;c<l;++c)for(i=0,u=s[c];i<a;++i)if((o=r[i]).type===u.type&&o.name===u.name)return u.value}return}for(s=t?dn:un,i=0;i<a;++i)this.each(s(r[i],t,n));return this}function pn(e,t,n){var r=xt(e),i=r.CustomEvent;typeof i==`function`?i=new i(t,n):(i=r.document.createEvent(`Event`),n?(i.initEvent(t,n.bubbles,n.cancelable),i.detail=n.detail):i.initEvent(t,!1,!1)),e.dispatchEvent(i)}function mn(e,t){return function(){return pn(this,e,t)}}function hn(e,t){return function(){return pn(this,e,t.apply(this,arguments))}}function gn(e,t){return this.each((typeof t==`function`?hn:mn)(e,t))}function*_n(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],i=0,a=r.length,o;i<a;++i)(o=r[i])&&(yield o)}var vn=[null];function J(e,t){this._groups=e,this._parents=t}function yn(){return new J([[document.documentElement]],vn)}function bn(){return this}J.prototype=yn.prototype={constructor:J,select:Ae,selectAll:Fe,selectChild:Ve,selectChildren:Ge,filter:Ke,data:et,enter:Je,exit:nt,join:rt,merge:it,selection:bn,order:at,sort:ot,call:ct,nodes:lt,node:ut,size:dt,empty:ft,each:pt,attr:bt,style:Tt,property:At,classed:zt,text:Ut,html:qt,raise:Yt,lower:Zt,append:Qt,insert:en,remove:nn,clone:on,datum:sn,on:fn,dispatch:gn,[Symbol.iterator]:_n};function Y(e){return typeof e==`string`?new J([[document.querySelector(e)]],[document.documentElement]):new J([[e]],vn)}function xn(e){let t;for(;t=e.sourceEvent;)e=t;return e}function Sn(e,t){if(e=xn(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 i=t.getBoundingClientRect();return[e.clientX-i.left-t.clientLeft,e.clientY-i.top-t.clientTop]}}return[e.pageX,e.pageY]}var Cn={passive:!1},wn={capture:!0,passive:!1};function Tn(e){e.stopImmediatePropagation()}function En(e){e.preventDefault(),e.stopImmediatePropagation()}function Dn(e){var t=e.document.documentElement,n=Y(e).on(`dragstart.drag`,En,wn);`onselectstart`in t?n.on(`selectstart.drag`,En,wn):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect=`none`)}function On(e,t){var n=e.document.documentElement,r=Y(e).on(`dragstart.drag`,null);t&&(r.on(`click.drag`,En,wn),setTimeout(function(){r.on(`click.drag`,null)},0)),`onselectstart`in n?r.on(`selectstart.drag`,null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}var kn=e=>()=>e;function An(e,{sourceEvent:t,subject:n,target:r,identifier:i,active:a,x:o,y:s,dx:c,dy:l,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:i,enumerable:!0,configurable:!0},active:{value:a,enumerable:!0,configurable:!0},x:{value:o,enumerable:!0,configurable:!0},y:{value:s,enumerable:!0,configurable:!0},dx:{value:c,enumerable:!0,configurable:!0},dy:{value:l,enumerable:!0,configurable:!0},_:{value:u}})}An.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function jn(e){return!e.ctrlKey&&!e.button}function Mn(){return this.parentNode}function Nn(e,t){return t??{x:e.x,y:e.y}}function Pn(){return navigator.maxTouchPoints||`ontouchstart`in this}function Fn(){var e=jn,t=Mn,n=Nn,r=Pn,i={},a=ve(`start`,`drag`,`end`),o=0,s,c,l,u,d=0;function f(e){e.on(`mousedown.drag`,p).filter(r).on(`touchstart.drag`,g).on(`touchmove.drag`,_,Cn).on(`touchend.drag touchcancel.drag`,v).style(`touch-action`,`none`).style(`-webkit-tap-highlight-color`,`rgba(0,0,0,0)`)}function p(n,r){if(!(u||!e.call(this,n,r))){var i=y(this,t.call(this,n,r),n,r,`mouse`);i&&(Y(n.view).on(`mousemove.drag`,m,wn).on(`mouseup.drag`,h,wn),Dn(n.view),Tn(n),l=!1,s=n.clientX,c=n.clientY,i(`start`,n))}}function m(e){if(En(e),!l){var t=e.clientX-s,n=e.clientY-c;l=t*t+n*n>d}i.mouse(`drag`,e)}function h(e){Y(e.view).on(`mousemove.drag mouseup.drag`,null),On(e.view,l),En(e),i.mouse(`end`,e)}function g(n,r){if(e.call(this,n,r)){var i=n.changedTouches,a=t.call(this,n,r),o=i.length,s,c;for(s=0;s<o;++s)(c=y(this,a,n,r,i[s].identifier,i[s]))&&(Tn(n),c(`start`,n,i[s]))}}function _(e){var t=e.changedTouches,n=t.length,r,a;for(r=0;r<n;++r)(a=i[t[r].identifier])&&(En(e),a(`drag`,e,t[r]))}function v(e){var t=e.changedTouches,n=t.length,r,a;for(u&&clearTimeout(u),u=setTimeout(function(){u=null},500),r=0;r<n;++r)(a=i[t[r].identifier])&&(Tn(e),a(`end`,e,t[r]))}function y(e,t,r,s,c,l){var u=a.copy(),d=Sn(l||r,t),p,m,h;if((h=n.call(e,new An(`beforestart`,{sourceEvent:r,target:f,identifier:c,active:o,x:d[0],y:d[1],dx:0,dy:0,dispatch:u}),s))!=null)return p=h.x-d[0]||0,m=h.y-d[1]||0,function n(r,a,l){var g=d,_;switch(r){case`start`:i[c]=n,_=o++;break;case`end`:delete i[c],--o;case`drag`:d=Sn(l||a,t),_=o;break}u.call(r,e,new An(r,{sourceEvent:a,subject:h,target:f,identifier:c,active:_,x:d[0]+p,y:d[1]+m,dx:d[0]-g[0],dy:d[1]-g[1],dispatch:u}),s)}}return f.filter=function(t){return arguments.length?(e=typeof t==`function`?t:kn(!!t),f):e},f.container=function(e){return arguments.length?(t=typeof e==`function`?e:kn(e),f):t},f.subject=function(e){return arguments.length?(n=typeof e==`function`?e:kn(e),f):n},f.touchable=function(e){return arguments.length?(r=typeof e==`function`?e:kn(!!e),f):r},f.on=function(){var e=a.on.apply(a,arguments);return e===a?f:e},f.clickDistance=function(e){return arguments.length?(d=(e=+e)*e,f):Math.sqrt(d)},f}var In=0,Ln=0,Rn=0,zn=1e3,Bn,Vn,Hn=0,Un=0,Wn=0,Gn=typeof performance==`object`&&performance.now?performance:Date,Kn=typeof window==`object`&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function qn(){return Un||=(Kn(Jn),Gn.now()+Wn)}function Jn(){Un=0}function Yn(){this._call=this._time=this._next=null}Yn.prototype=Xn.prototype={constructor:Yn,restart:function(e,t,n){if(typeof e!=`function`)throw TypeError(`callback is not a function`);n=(n==null?qn():+n)+(t==null?0:+t),!this._next&&Vn!==this&&(Vn?Vn._next=this:Bn=this,Vn=this),this._call=e,this._time=n,tr()},stop:function(){this._call&&(this._call=null,this._time=1/0,tr())}};function Xn(e,t,n){var r=new Yn;return r.restart(e,t,n),r}function Zn(){qn(),++In;for(var e=Bn,t;e;)(t=Un-e._time)>=0&&e._call.call(void 0,t),e=e._next;--In}function Qn(){Un=(Hn=Gn.now())+Wn,In=Ln=0;try{Zn()}finally{In=0,er(),Un=0}}function $n(){var e=Gn.now(),t=e-Hn;t>zn&&(Wn-=t,Hn=e)}function er(){for(var e,t=Bn,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:Bn=n);Vn=e,tr(r)}function tr(e){In||(Ln&&=clearTimeout(Ln),e-Un>24?(e<1/0&&(Ln=setTimeout(Qn,e-Gn.now()-Wn)),Rn&&=clearInterval(Rn)):(Rn||=(Hn=Gn.now(),setInterval($n,zn)),In=1,Kn(Qn)))}function nr(e,t,n){var r=new Yn;return t=t==null?0:+t,r.restart(n=>{r.stop(),e(n+t)},t,n),r}var rr=ve(`start`,`end`,`cancel`,`interrupt`),ir=[];function ar(e,t,n,r,i,a){var o=e.__transition;if(!o)e.__transition={};else if(n in o)return;lr(e,n,{name:t,index:r,group:i,on:rr,tween:ir,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:0})}function or(e,t){var n=cr(e,t);if(n.state>0)throw Error(`too late; already scheduled`);return n}function sr(e,t){var n=cr(e,t);if(n.state>3)throw Error(`too late; already running`);return n}function cr(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw Error(`transition not found`);return n}function lr(e,t,n){var r=e.__transition,i;r[t]=n,n.timer=Xn(a,0,n.time);function a(e){n.state=1,n.timer.restart(o,n.delay,n.time),n.delay<=e&&o(e-n.delay)}function o(a){var l,u,d,f;if(n.state!==1)return c();for(l in r)if(f=r[l],f.name===n.name){if(f.state===3)return nr(o);f.state===4?(f.state=6,f.timer.stop(),f.on.call(`interrupt`,e,e.__data__,f.index,f.group),delete r[l]):+l<t&&(f.state=6,f.timer.stop(),f.on.call(`cancel`,e,e.__data__,f.index,f.group),delete r[l])}if(nr(function(){n.state===3&&(n.state=4,n.timer.restart(s,n.delay,n.time),s(a))}),n.state=2,n.on.call(`start`,e,e.__data__,n.index,n.group),n.state===2){for(n.state=3,i=Array(d=n.tween.length),l=0,u=-1;l<d;++l)(f=n.tween[l].value.call(e,e.__data__,n.index,n.group))&&(i[++u]=f);i.length=u+1}}function s(t){for(var r=t<n.duration?n.ease.call(null,t/n.duration):(n.timer.restart(c),n.state=5,1),a=-1,o=i.length;++a<o;)i[a].call(e,r);n.state===5&&(n.on.call(`end`,e,e.__data__,n.index,n.group),c())}function c(){for(var i in n.state=6,n.timer.stop(),delete r[t],r)return;delete e.__transition}}function ur(e,t){var n=e.__transition,r,i,a=!0,o;if(n){for(o in t=t==null?null:t+``,n){if((r=n[o]).name!==t){a=!1;continue}i=r.state>2&&r.state<5,r.state=6,r.timer.stop(),r.on.call(i?`interrupt`:`cancel`,e,e.__data__,r.index,r.group),delete n[o]}a&&delete e.__transition}}function dr(e){return this.each(function(){ur(this,e)})}function fr(e,t){var n,r;return function(){var i=sr(this,e),a=i.tween;if(a!==n){r=n=a;for(var o=0,s=r.length;o<s;++o)if(r[o].name===t){r=r.slice(),r.splice(o,1);break}}i.tween=r}}function pr(e,t,n){var r,i;if(typeof n!=`function`)throw Error();return function(){var a=sr(this,e),o=a.tween;if(o!==r){i=(r=o).slice();for(var s={name:t,value:n},c=0,l=i.length;c<l;++c)if(i[c].name===t){i[c]=s;break}c===l&&i.push(s)}a.tween=i}}function mr(e,t){var n=this._id;if(e+=``,arguments.length<2){for(var r=cr(this.node(),n).tween,i=0,a=r.length,o;i<a;++i)if((o=r[i]).name===e)return o.value;return null}return this.each((t==null?fr:pr)(n,e,t))}function hr(e,t,n){var r=e._id;return e.each(function(){var e=sr(this,r);(e.value||={})[t]=n.apply(this,arguments)}),function(e){return cr(e,r).value[t]}}function gr(e,t){var n;return(typeof t==`number`?U:t instanceof z?B:(n=z(t))?(t=n,B):V)(e,t)}function _r(e){return function(){this.removeAttribute(e)}}function vr(e){return function(){this.removeAttributeNS(e.space,e.local)}}function yr(e,t,n){var r,i=n+``,a;return function(){var o=this.getAttribute(e);return o===i?null:o===r?a:a=t(r=o,n)}}function br(e,t,n){var r,i=n+``,a;return function(){var o=this.getAttributeNS(e.space,e.local);return o===i?null:o===r?a:a=t(r=o,n)}}function xr(e,t,n){var r,i,a;return function(){var o,s=n(this),c;return s==null?void this.removeAttribute(e):(o=this.getAttribute(e),c=s+``,o===c?null:o===r&&c===i?a:(i=c,a=t(r=o,s)))}}function Sr(e,t,n){var r,i,a;return function(){var o,s=n(this),c;return s==null?void this.removeAttributeNS(e.space,e.local):(o=this.getAttributeNS(e.space,e.local),c=s+``,o===c?null:o===r&&c===i?a:(i=c,a=t(r=o,s)))}}function Cr(e,t){var n=we(e),r=n===`transform`?de:gr;return this.attrTween(e,typeof t==`function`?(n.local?Sr:xr)(n,r,hr(this,`attr.`+e,t)):t==null?(n.local?vr:_r)(n):(n.local?br:yr)(n,r,t))}function wr(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function Tr(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function Er(e,t){var n,r;function i(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&Tr(e,i)),n}return i._value=t,i}function Dr(e,t){var n,r;function i(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&wr(e,i)),n}return i._value=t,i}function Or(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 Error();var r=we(e);return this.tween(n,(r.local?Er:Dr)(r,t))}function kr(e,t){return function(){or(this,e).delay=+t.apply(this,arguments)}}function Ar(e,t){return t=+t,function(){or(this,e).delay=t}}function jr(e){var t=this._id;return arguments.length?this.each((typeof e==`function`?kr:Ar)(t,e)):cr(this.node(),t).delay}function Mr(e,t){return function(){sr(this,e).duration=+t.apply(this,arguments)}}function Nr(e,t){return t=+t,function(){sr(this,e).duration=t}}function Pr(e){var t=this._id;return arguments.length?this.each((typeof e==`function`?Mr:Nr)(t,e)):cr(this.node(),t).duration}function Fr(e,t){if(typeof t!=`function`)throw Error();return function(){sr(this,e).ease=t}}function Ir(e){var t=this._id;return arguments.length?this.each(Fr(t,e)):cr(this.node(),t).ease}function Lr(e,t){return function(){var n=t.apply(this,arguments);if(typeof n!=`function`)throw Error();sr(this,e).ease=n}}function Rr(e){if(typeof e!=`function`)throw Error();return this.each(Lr(this._id,e))}function zr(e){typeof e!=`function`&&(e=Ie(e));for(var t=this._groups,n=t.length,r=Array(n),i=0;i<n;++i)for(var a=t[i],o=a.length,s=r[i]=[],c,l=0;l<o;++l)(c=a[l])&&e.call(c,c.__data__,l,a)&&s.push(c);return new mi(r,this._parents,this._name,this._id)}function Br(e){if(e._id!==this._id)throw Error();for(var t=this._groups,n=e._groups,r=t.length,i=n.length,a=Math.min(r,i),o=Array(r),s=0;s<a;++s)for(var c=t[s],l=n[s],u=c.length,d=o[s]=Array(u),f,p=0;p<u;++p)(f=c[p]||l[p])&&(d[p]=f);for(;s<r;++s)o[s]=t[s];return new mi(o,this._parents,this._name,this._id)}function Vr(e){return(e+``).trim().split(/^|\s+/).every(function(e){var t=e.indexOf(`.`);return t>=0&&(e=e.slice(0,t)),!e||e===`start`})}function Hr(e,t,n){var r,i,a=Vr(t)?or:sr;return function(){var o=a(this,e),s=o.on;s!==r&&(i=(r=s).copy()).on(t,n),o.on=i}}function Ur(e,t){var n=this._id;return arguments.length<2?cr(this.node(),n).on.on(e):this.each(Hr(n,e,t))}function Wr(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function Gr(){return this.on(`end.remove`,Wr(this._id))}function Kr(e){var t=this._name,n=this._id;typeof e!=`function`&&(e=ke(e));for(var r=this._groups,i=r.length,a=Array(i),o=0;o<i;++o)for(var s=r[o],c=s.length,l=a[o]=Array(c),u,d,f=0;f<c;++f)(u=s[f])&&(d=e.call(u,u.__data__,f,s))&&(`__data__`in u&&(d.__data__=u.__data__),l[f]=d,ar(l[f],t,n,f,l,cr(u,n)));return new mi(a,this._parents,t,n)}function qr(e){var t=this._name,n=this._id;typeof e!=`function`&&(e=Ne(e));for(var r=this._groups,i=r.length,a=[],o=[],s=0;s<i;++s)for(var c=r[s],l=c.length,u,d=0;d<l;++d)if(u=c[d]){for(var f=e.call(u,u.__data__,d,c),p,m=cr(u,n),h=0,g=f.length;h<g;++h)(p=f[h])&&ar(p,t,n,h,f,m);a.push(f),o.push(u)}return new mi(a,o,t,n)}var Jr=yn.prototype.constructor;function Yr(){return new Jr(this._groups,this._parents)}function Xr(e,t){var n,r,i;return function(){var a=Et(this,e),o=(this.style.removeProperty(e),Et(this,e));return a===o?null:a===n&&o===r?i:i=t(n=a,r=o)}}function Zr(e){return function(){this.style.removeProperty(e)}}function Qr(e,t,n){var r,i=n+``,a;return function(){var o=Et(this,e);return o===i?null:o===r?a:a=t(r=o,n)}}function $r(e,t,n){var r,i,a;return function(){var o=Et(this,e),s=n(this),c=s+``;return s??(c=s=(this.style.removeProperty(e),Et(this,e))),o===c?null:o===r&&c===i?a:(i=c,a=t(r=o,s))}}function ei(e,t){var n,r,i,a=`style.`+t,o=`end.`+a,s;return function(){var c=sr(this,e),l=c.on,u=c.value[a]==null?s||=Zr(t):void 0;(l!==n||i!==u)&&(r=(n=l).copy()).on(o,i=u),c.on=r}}function ti(e,t,n){var r=(e+=``)==`transform`?ue:gr;return t==null?this.styleTween(e,Xr(e,r)).on(`end.style.`+e,Zr(e)):typeof t==`function`?this.styleTween(e,$r(e,r,hr(this,`style.`+e,t))).each(ei(this._id,e)):this.styleTween(e,Qr(e,r,t),n).on(`end.style.`+e,null)}function ni(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}function ri(e,t,n){var r,i;function a(){var a=t.apply(this,arguments);return a!==i&&(r=(i=a)&&ni(e,a,n)),r}return a._value=t,a}function ii(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 Error();return this.tween(r,ri(e,t,n??``))}function ai(e){return function(){this.textContent=e}}function oi(e){return function(){var t=e(this);this.textContent=t??``}}function si(e){return this.tween(`text`,typeof e==`function`?oi(hr(this,`text`,e)):ai(e==null?``:e+``))}function ci(e){return function(t){this.textContent=e.call(this,t)}}function li(e){var t,n;function r(){var r=e.apply(this,arguments);return r!==n&&(t=(n=r)&&ci(r)),t}return r._value=e,r}function ui(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 Error();return this.tween(t,li(e))}function di(){for(var e=this._name,t=this._id,n=gi(),r=this._groups,i=r.length,a=0;a<i;++a)for(var o=r[a],s=o.length,c,l=0;l<s;++l)if(c=o[l]){var u=cr(c,t);ar(c,e,n,l,o,{time:u.time+u.delay+u.duration,delay:0,duration:u.duration,ease:u.ease})}return new mi(r,this._parents,e,n)}function fi(){var e,t,n=this,r=n._id,i=n.size();return new Promise(function(a,o){var s={value:o},c={value:function(){--i===0&&a()}};n.each(function(){var n=sr(this,r),i=n.on;i!==e&&(t=(e=i).copy(),t._.cancel.push(s),t._.interrupt.push(s),t._.end.push(c)),n.on=t}),i===0&&a()})}var pi=0;function mi(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}function hi(e){return yn().transition(e)}function gi(){return++pi}var _i=yn.prototype;mi.prototype=hi.prototype={constructor:mi,select:Kr,selectAll:qr,selectChild:_i.selectChild,selectChildren:_i.selectChildren,filter:zr,merge:Br,selection:Yr,transition:di,call:_i.call,nodes:_i.nodes,node:_i.node,size:_i.size,empty:_i.empty,each:_i.each,on:Ur,attr:Cr,attrTween:Or,style:ti,styleTween:ii,text:si,textTween:ui,remove:Gr,tween:mr,delay:jr,duration:Pr,ease:Ir,easeVarying:Rr,end:fi,[Symbol.iterator]:_i[Symbol.iterator]};function vi(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var yi={time:null,delay:0,duration:250,ease:vi};function bi(e,t){for(var n;!(n=e.__transition)||!(n=n[t]);)if(!(e=e.parentNode))throw Error(`transition ${t} not found`);return n}function xi(e){var t,n;e instanceof mi?(t=e._id,e=e._name):(t=gi(),(n=yi).time=qn(),e=e==null?null:e+``);for(var r=this._groups,i=r.length,a=0;a<i;++a)for(var o=r[a],s=o.length,c,l=0;l<s;++l)(c=o[l])&&ar(c,e,t,l,o,n||bi(c,t));return new mi(r,this._parents,e,t)}yn.prototype.interrupt=dr,yn.prototype.transition=xi;var Si=e=>()=>e;function Ci(e,{sourceEvent:t,target:n,transform:r,dispatch:i}){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:i}})}function wi(e,t,n){this.k=e,this.x=t,this.y=n}wi.prototype={constructor:wi,scale:function(e){return e===1?this:new wi(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new wi(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 Ti=new wi(1,0,0);Ei.prototype=wi.prototype;function Ei(e){for(;!e.__zoom;)if(!(e=e.parentNode))return Ti;return e.__zoom}function Di(e){e.stopImmediatePropagation()}function Oi(e){e.preventDefault(),e.stopImmediatePropagation()}function ki(e){return(!e.ctrlKey||e.type===`wheel`)&&!e.button}function Ai(){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 ji(){return this.__zoom||Ti}function Mi(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function Ni(){return navigator.maxTouchPoints||`ontouchstart`in this}function Pi(e,t,n){var r=e.invertX(t[0][0])-n[0][0],i=e.invertX(t[1][0])-n[1][0],a=e.invertY(t[0][1])-n[0][1],o=e.invertY(t[1][1])-n[1][1];return e.translate(i>r?(r+i)/2:Math.min(0,r)||Math.max(0,i),o>a?(a+o)/2:Math.min(0,a)||Math.max(0,o))}function Fi(){var e=ki,t=Ai,n=Pi,r=Mi,i=Ni,a=[0,1/0],o=[[-1/0,-1/0],[1/0,1/0]],s=250,c=ge,l=ve(`start`,`zoom`,`end`),u,d,f,p=500,m=150,h=0,g=10;function _(e){e.property(`__zoom`,ji).on(`wheel.zoom`,w,{passive:!1}).on(`mousedown.zoom`,T).on(`dblclick.zoom`,E).filter(i).on(`touchstart.zoom`,D).on(`touchmove.zoom`,O).on(`touchend.zoom touchcancel.zoom`,k).style(`-webkit-tap-highlight-color`,`rgba(0,0,0,0)`)}_.transform=function(e,t,n,r){var i=e.selection?e.selection():e;i.property(`__zoom`,ji),e===i?i.interrupt().each(function(){S(this,arguments).event(r).start().zoom(null,typeof t==`function`?t.apply(this,arguments):t).end()}):x(e,t,n,r)},_.scaleBy=function(e,t,n,r){_.scaleTo(e,function(){return this.__zoom.k*(typeof t==`function`?t.apply(this,arguments):t)},n,r)},_.scaleTo=function(e,r,i,a){_.transform(e,function(){var e=t.apply(this,arguments),a=this.__zoom,s=i==null?b(e):typeof i==`function`?i.apply(this,arguments):i,c=a.invert(s),l=typeof r==`function`?r.apply(this,arguments):r;return n(y(v(a,l),s,c),e,o)},i,a)},_.translateBy=function(e,r,i,a){_.transform(e,function(){return n(this.__zoom.translate(typeof r==`function`?r.apply(this,arguments):r,typeof i==`function`?i.apply(this,arguments):i),t.apply(this,arguments),o)},null,a)},_.translateTo=function(e,r,i,a,s){_.transform(e,function(){var e=t.apply(this,arguments),s=this.__zoom,c=a==null?b(e):typeof a==`function`?a.apply(this,arguments):a;return n(Ti.translate(c[0],c[1]).scale(s.k).translate(typeof r==`function`?-r.apply(this,arguments):-r,typeof i==`function`?-i.apply(this,arguments):-i),e,o)},a,s)};function v(e,t){return t=Math.max(a[0],Math.min(a[1],t)),t===e.k?e:new wi(t,e.x,e.y)}function y(e,t,n){var r=t[0]-n[0]*e.k,i=t[1]-n[1]*e.k;return r===e.x&&i===e.y?e:new wi(e.k,r,i)}function b(e){return[(+e[0][0]+ +e[1][0])/2,(+e[0][1]+ +e[1][1])/2]}function x(e,n,r,i){e.on(`start.zoom`,function(){S(this,arguments).event(i).start()}).on(`interrupt.zoom end.zoom`,function(){S(this,arguments).event(i).end()}).tween(`zoom`,function(){var e=this,a=arguments,o=S(e,a).event(i),s=t.apply(e,a),l=r==null?b(s):typeof r==`function`?r.apply(e,a):r,u=Math.max(s[1][0]-s[0][0],s[1][1]-s[0][1]),d=e.__zoom,f=typeof n==`function`?n.apply(e,a):n,p=c(d.invert(l).concat(u/d.k),f.invert(l).concat(u/f.k));return function(e){if(e===1)e=f;else{var t=p(e),n=u/t[2];e=new wi(n,l[0]-t[0]*n,l[1]-t[1]*n)}o.zoom(null,e)}})}function S(e,t,n){return!n&&e.__zooming||new C(e,t)}function C(e,n){this.that=e,this.args=n,this.active=0,this.sourceEvent=null,this.extent=t.apply(e,n),this.taps=0}C.prototype={event:function(e){return e&&(this.sourceEvent=e),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit(`start`)),this},zoom:function(e,t){return this.mouse&&e!==`mouse`&&(this.mouse[1]=t.invert(this.mouse[0])),this.touch0&&e!==`touch`&&(this.touch0[1]=t.invert(this.touch0[0])),this.touch1&&e!==`touch`&&(this.touch1[1]=t.invert(this.touch1[0])),this.that.__zoom=t,this.emit(`zoom`),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit(`end`)),this},emit:function(e){var t=Y(this.that).datum();l.call(e,this.that,new Ci(e,{sourceEvent:this.sourceEvent,target:_,type:e,transform:this.that.__zoom,dispatch:l}),t)}};function w(t,...i){if(!e.apply(this,arguments))return;var s=S(this,i).event(t),c=this.__zoom,l=Math.max(a[0],Math.min(a[1],c.k*2**r.apply(this,arguments))),u=Sn(t);if(s.wheel)(s.mouse[0][0]!==u[0]||s.mouse[0][1]!==u[1])&&(s.mouse[1]=c.invert(s.mouse[0]=u)),clearTimeout(s.wheel);else if(c.k===l)return;else s.mouse=[u,c.invert(u)],ur(this),s.start();Oi(t),s.wheel=setTimeout(d,m),s.zoom(`mouse`,n(y(v(c,l),s.mouse[0],s.mouse[1]),s.extent,o));function d(){s.wheel=null,s.end()}}function T(t,...r){if(f||!e.apply(this,arguments))return;var i=t.currentTarget,a=S(this,r,!0).event(t),s=Y(t.view).on(`mousemove.zoom`,d,!0).on(`mouseup.zoom`,p,!0),c=Sn(t,i),l=t.clientX,u=t.clientY;Dn(t.view),Di(t),a.mouse=[c,this.__zoom.invert(c)],ur(this),a.start();function d(e){if(Oi(e),!a.moved){var t=e.clientX-l,r=e.clientY-u;a.moved=t*t+r*r>h}a.event(e).zoom(`mouse`,n(y(a.that.__zoom,a.mouse[0]=Sn(e,i),a.mouse[1]),a.extent,o))}function p(e){s.on(`mousemove.zoom mouseup.zoom`,null),On(e.view,a.moved),Oi(e),a.event(e).end()}}function E(r,...i){if(e.apply(this,arguments)){var a=this.__zoom,c=Sn(r.changedTouches?r.changedTouches[0]:r,this),l=a.invert(c),u=a.k*(r.shiftKey?.5:2),d=n(y(v(a,u),c,l),t.apply(this,i),o);Oi(r),s>0?Y(this).transition().duration(s).call(x,d,c,r):Y(this).call(_.transform,d,c,r)}}function D(t,...n){if(e.apply(this,arguments)){var r=t.touches,i=r.length,a=S(this,n,t.changedTouches.length===i).event(t),o,s,c,l;for(Di(t),s=0;s<i;++s)c=r[s],l=Sn(c,this),l=[l,this.__zoom.invert(l),c.identifier],a.touch0?!a.touch1&&a.touch0[2]!==l[2]&&(a.touch1=l,a.taps=0):(a.touch0=l,o=!0,a.taps=1+!!u);u&&=clearTimeout(u),o&&(a.taps<2&&(d=l[0],u=setTimeout(function(){u=null},p)),ur(this),a.start())}}function O(e,...t){if(this.__zooming){var r=S(this,t).event(e),i=e.changedTouches,a=i.length,s,c,l,u;for(Oi(e),s=0;s<a;++s)c=i[s],l=Sn(c,this),r.touch0&&r.touch0[2]===c.identifier?r.touch0[0]=l:r.touch1&&r.touch1[2]===c.identifier&&(r.touch1[0]=l);if(c=r.that.__zoom,r.touch1){var d=r.touch0[0],f=r.touch0[1],p=r.touch1[0],m=r.touch1[1],h=(h=p[0]-d[0])*h+(h=p[1]-d[1])*h,g=(g=m[0]-f[0])*g+(g=m[1]-f[1])*g;c=v(c,Math.sqrt(h/g)),l=[(d[0]+p[0])/2,(d[1]+p[1])/2],u=[(f[0]+m[0])/2,(f[1]+m[1])/2]}else if(r.touch0)l=r.touch0[0],u=r.touch0[1];else return;r.zoom(`touch`,n(y(c,l,u),r.extent,o))}}function k(e,...t){if(this.__zooming){var n=S(this,t).event(e),r=e.changedTouches,i=r.length,a,o;for(Di(e),f&&clearTimeout(f),f=setTimeout(function(){f=null},p),a=0;a<i;++a)o=r[a],n.touch0&&n.touch0[2]===o.identifier?delete n.touch0:n.touch1&&n.touch1[2]===o.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&&(o=Sn(o,this),Math.hypot(d[0]-o[0],d[1]-o[1])<g)){var s=Y(this).on(`dblclick.zoom`);s&&s.apply(this,arguments)}}}return _.wheelDelta=function(e){return arguments.length?(r=typeof e==`function`?e:Si(+e),_):r},_.filter=function(t){return arguments.length?(e=typeof t==`function`?t:Si(!!t),_):e},_.touchable=function(e){return arguments.length?(i=typeof e==`function`?e:Si(!!e),_):i},_.extent=function(e){return arguments.length?(t=typeof e==`function`?e:Si([[+e[0][0],+e[0][1]],[+e[1][0],+e[1][1]]]),_):t},_.scaleExtent=function(e){return arguments.length?(a[0]=+e[0],a[1]=+e[1],_):[a[0],a[1]]},_.translateExtent=function(e){return arguments.length?(o[0][0]=+e[0][0],o[1][0]=+e[1][0],o[0][1]=+e[0][1],o[1][1]=+e[1][1],_):[[o[0][0],o[0][1]],[o[1][0],o[1][1]]]},_.constrain=function(e){return arguments.length?(n=e,_):n},_.duration=function(e){return arguments.length?(s=+e,_):s},_.interpolate=function(e){return arguments.length?(c=e,_):c},_.on=function(){var e=l.on.apply(l,arguments);return e===l?_:e},_.clickDistance=function(e){return arguments.length?(h=(e=+e)*e,_):Math.sqrt(h)},_.tapDistance=function(e){return arguments.length?(g=+e,_):g},_}var Ii={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.`},Li=[[-1/0,-1/0],[1/0,1/0]],Ri=[`Enter`,` `,`Escape`],zi={"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`},Bi;(function(e){e.Strict=`strict`,e.Loose=`loose`})(Bi||={});var Vi;(function(e){e.Free=`free`,e.Vertical=`vertical`,e.Horizontal=`horizontal`})(Vi||={});var Hi;(function(e){e.Partial=`partial`,e.Full=`full`})(Hi||={});var Ui={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null},Wi;(function(e){e.Bezier=`default`,e.Straight=`straight`,e.Step=`step`,e.SmoothStep=`smoothstep`,e.SimpleBezier=`simplebezier`})(Wi||={});var Gi;(function(e){e.Arrow=`arrow`,e.ArrowClosed=`arrowclosed`})(Gi||={});var X;(function(e){e.Left=`left`,e.Top=`top`,e.Right=`right`,e.Bottom=`bottom`})(X||={});var Ki={[X.Left]:X.Right,[X.Right]:X.Left,[X.Top]:X.Bottom,[X.Bottom]:X.Top};function qi(e){return e===null?null:e?`valid`:`invalid`}var Ji=e=>`id`in e&&`source`in e&&`target`in e,Yi=e=>`id`in e&&`position`in e&&!(`source`in e)&&!(`target`in e),Xi=e=>`id`in e&&`internals`in e&&!(`source`in e)&&!(`target`in e),Zi=(e,t=[0,0])=>{let{width:n,height:r}=ja(e),i=e.origin??t,a=n*i[0],o=r*i[1];return{x:e.position.x-a,y:e.position.y-o}},Qi=(e,t={nodeOrigin:[0,0]})=>e.length===0?{x:0,y:0,width:0,height:0}:pa(e.reduce((e,n)=>{let r=typeof n==`string`,i=!t.nodeLookup&&!r?n:void 0;return t.nodeLookup&&(i=r?t.nodeLookup.get(n):Xi(n)?n:t.nodeLookup.get(n.id)),da(e,i?ha(i,t.nodeOrigin):{x:0,y:0,x2:0,y2:0})},{x:1/0,y:1/0,x2:-1/0,y2:-1/0})),$i=(e,t={})=>{let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0},r=!1;return e.forEach(e=>{(t.filter===void 0||t.filter(e))&&(n=da(n,ha(e)),r=!0)}),r?pa(n):{x:0,y:0,width:0,height:0}},ea=(e,t,[n,r,i]=[0,0,1],a=!1,o=!1)=>{let s=(t.x-n)/i,c=(t.y-r)/i,l=t.width/i,u=t.height/i,d=[];for(let t of e.values()){let{measured:e,selectable:n=!0,hidden:r=!1}=t;if(o&&!n||r)continue;let i=e.width??t.width??t.initialWidth??0,f=e.height??t.height??t.initialHeight??0,{x:p,y:m}=t.internals.positionAbsolute,h=_a(s,c,l,u,p,m,i,f),g=i*f,_=a&&h>0;(!t.internals.handleBounds||_||h>=g||t.dragging)&&d.push(t)}return d},ta=(e,t)=>{let n=new Set;return e.forEach(e=>{n.add(e.id)}),t.filter(e=>n.has(e.source)||n.has(e.target))};function na(e,t){let n=new Map,r=t?.nodes?new Set(t.nodes.map(e=>e.id)):null;return e.forEach(e=>{e.measured.width&&e.measured.height&&(t?.includeHiddenNodes||!e.hidden)&&(!r||r.has(e.id))&&n.set(e.id,e)}),n}async function ra({nodes:e,width:t,height:n,panZoom:r,minZoom:i,maxZoom:a},o){if(e.size===0)return!0;let s=Oa($i(na(e,o)),t,n,o?.minZoom??i,o?.maxZoom??a,o?.padding??.1);return await r.setViewport(s,{duration:o?.duration,ease:o?.ease,interpolate:o?.interpolate}),!0}function ia({nodeId:e,nextPosition:t,nodeLookup:n,nodeOrigin:r=[0,0],nodeExtent:i,onError:a}){let o=n.get(e),s=o.parentId?n.get(o.parentId):void 0,{x:c,y:l}=s?s.internals.positionAbsolute:{x:0,y:0},u=o.origin??r,d=o.extent||i;if(o.extent===`parent`&&!o.expandParent)if(!s)a?.(`005`,Ii.error005());else{let e=s.measured.width,t=s.measured.height;e&&t&&(d=[[c,l],[c+e,l+t]])}else s&&Aa(o.extent)&&(d=[[o.extent[0][0]+c,o.extent[0][1]+l],[o.extent[1][0]+c,o.extent[1][1]+l]]);let f=Aa(d)?sa(t,d,o.measured):t;return(o.measured.width===void 0||o.measured.height===void 0)&&a?.(`015`,Ii.error015()),{position:{x:f.x-c+(o.measured.width??0)*u[0],y:f.y-l+(o.measured.height??0)*u[1]},positionAbsolute:f}}async function aa({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:r,onBeforeDelete:i}){let a=new Set(e.map(e=>e.id)),o=[];for(let e of n){if(e.deletable===!1)continue;let t=a.has(e.id),n=!t&&e.parentId&&o.find(t=>t.id===e.parentId);(t||n)&&o.push(e)}let s=new Set(t.map(e=>e.id)),c=r.filter(e=>e.deletable!==!1),l=ta(o,c);for(let e of c)s.has(e.id)&&!l.find(t=>t.id===e.id)&&l.push(e);if(!i)return{edges:l,nodes:o};let u=await i({nodes:o,edges:l});return typeof u==`boolean`?u?{edges:l,nodes:o}:{edges:[],nodes:[]}:u}var oa=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),sa=(e={x:0,y:0},t,n)=>({x:oa(e.x,t[0][0],t[1][0]-(n?.width??0)),y:oa(e.y,t[0][1],t[1][1]-(n?.height??0))});function ca(e,t,n){let{width:r,height:i}=ja(n),{x:a,y:o}=n.internals.positionAbsolute;return sa(e,[[a,o],[a+r,o+i]],t)}var la=(e,t,n)=>e<t?oa(Math.abs(e-t),1,t)/t:e>n?-oa(Math.abs(e-n),1,t)/t:0,ua=(e,t,n=15,r=40)=>[la(e.x,r,t.width-r)*n,la(e.y,r,t.height-r)*n],da=(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)}),fa=({x:e,y:t,width:n,height:r})=>({x:e,y:t,x2:e+n,y2:t+r}),pa=({x:e,y:t,x2:n,y2:r})=>({x:e,y:t,width:n-e,height:r-t}),ma=(e,t=[0,0])=>{let{x:n,y:r}=Xi(e)?e.internals.positionAbsolute:Zi(e,t);return{x:n,y:r,width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}},ha=(e,t=[0,0])=>{let{x:n,y:r}=Xi(e)?e.internals.positionAbsolute:Zi(e,t);return{x:n,y:r,x2:n+(e.measured?.width??e.width??e.initialWidth??0),y2:r+(e.measured?.height??e.height??e.initialHeight??0)}},ga=(e,t)=>pa(da(fa(e),fa(t))),_a=(e,t,n,r,i,a,o,s)=>{let c=Math.max(0,Math.min(e+n,i+o)-Math.max(e,i)),l=Math.max(0,Math.min(t+r,a+s)-Math.max(t,a));return Math.ceil(c*l)},va=(e,t)=>_a(e.x,e.y,e.width,e.height,t.x,t.y,t.width,t.height),ya=e=>ba(e.width)&&ba(e.height)&&ba(e.x)&&ba(e.y),ba=e=>!isNaN(e)&&isFinite(e),xa=(e,t)=>(e,t)=>{},Sa=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),Ca=({x:e,y:t},[n,r,i],a=!1,o=[1,1])=>{let s={x:(e-n)/i,y:(t-r)/i};return a?Sa(s,o):s},wa=({x:e,y:t},[n,r,i])=>({x:e*i+n,y:t*i+r});function Ta(e,t){if(typeof e==`number`)return Math.floor((t-t/(1+e))*.5);if(typeof e==`string`&&e.endsWith(`px`)){let t=parseFloat(e);if(!Number.isNaN(t))return Math.floor(t)}if(typeof e==`string`&&e.endsWith(`%`)){let 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 Ea(e,t,n){if(typeof e==`string`||typeof e==`number`){let r=Ta(e,n),i=Ta(e,t);return{top:r,right:i,bottom:r,left:i,x:i*2,y:r*2}}if(typeof e==`object`){let r=Ta(e.top??e.y??0,n),i=Ta(e.bottom??e.y??0,n),a=Ta(e.left??e.x??0,t),o=Ta(e.right??e.x??0,t);return{top:r,right:o,bottom:i,left:a,x:a+o,y:r+i}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function Da(e,t,n,r,i,a){let{x:o,y:s}=wa(e,[t,n,r]),{x:c,y:l}=wa({x:e.x+e.width,y:e.y+e.height},[t,n,r]),u=i-c,d=a-l;return{left:Math.floor(o),top:Math.floor(s),right:Math.floor(u),bottom:Math.floor(d)}}var Oa=(e,t,n,r,i,a)=>{let o=Ea(a,t,n),s=(t-o.x)/e.width,c=(n-o.y)/e.height,l=oa(Math.min(s,c),r,i),u=e.x+e.width/2,d=e.y+e.height/2,f=t/2-u*l,p=n/2-d*l,m=Da(e,f,p,l,t,n),h={left:Math.min(m.left-o.left,0),top:Math.min(m.top-o.top,0),right:Math.min(m.right-o.right,0),bottom:Math.min(m.bottom-o.bottom,0)};return{x:f-h.left+h.right,y:p-h.top+h.bottom,zoom:l}},ka=()=>typeof navigator<`u`&&navigator?.userAgent?.indexOf(`Mac`)>=0;function Aa(e){return e!=null&&e!==`parent`}function ja(e){return{width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}}function Ma(e){return(e.measured?.width??e.width??e.initialWidth)!==void 0&&(e.measured?.height??e.height??e.initialHeight)!==void 0}function Na(e,t={width:0,height:0},n,r,i){let a={...e},o=r.get(n);if(o){let e=o.origin||i;a.x+=o.internals.positionAbsolute.x-(t.width??0)*e[0],a.y+=o.internals.positionAbsolute.y-(t.height??0)*e[1]}return a}function Pa(e,t){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}function Fa(){let e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}function Ia(e){return{...zi,...e||{}}}function La(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:r,containerBounds:i}){let{x:a,y:o}=Ua(e),s=Ca({x:a-(i?.left??0),y:o-(i?.top??0)},r),{x:c,y:l}=n?Sa(s,t):s;return{xSnapped:c,ySnapped:l,...s}}var Ra=e=>({width:e.offsetWidth,height:e.offsetHeight}),za=e=>e?.getRootNode?.()||window?.document,Ba=[`INPUT`,`SELECT`,`TEXTAREA`];function Va(e){let t=e.composedPath?.()?.[0]||e.target;return t?.nodeType===1?Ba.includes(t.nodeName)||t.hasAttribute(`contenteditable`)||!!t.closest(`.nokey`):!1}var Ha=e=>`clientX`in e,Ua=(e,t)=>{let n=Ha(e),r=n?e.clientX:e.touches?.[0].clientX,i=n?e.clientY:e.touches?.[0].clientY;return{x:r-(t?.left??0),y:i-(t?.top??0)}},Wa=(e,t,n,r,i)=>{let a=t.querySelectorAll(`.${e}`);return!a||!a.length?null:Array.from(a).map(t=>{let a=t.getBoundingClientRect();return{id:t.getAttribute(`data-handleid`),type:e,nodeId:i,position:t.getAttribute(`data-handlepos`),x:(a.left-n.left)/r,y:(a.top-n.top)/r,...Ra(t)}})};function Ga({sourceX:e,sourceY:t,targetX:n,targetY:r,sourceControlX:i,sourceControlY:a,targetControlX:o,targetControlY:s}){let c=e*.125+i*.375+o*.375+n*.125,l=t*.125+a*.375+s*.375+r*.125;return[c,l,Math.abs(c-e),Math.abs(l-t)]}function Ka(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function qa({pos:e,x1:t,y1:n,x2:r,y2:i,c:a}){switch(e){case X.Left:return[t-Ka(t-r,a),n];case X.Right:return[t+Ka(r-t,a),n];case X.Top:return[t,n-Ka(n-i,a)];case X.Bottom:return[t,n+Ka(i-n,a)]}}function Ja({sourceX:e,sourceY:t,sourcePosition:n=X.Bottom,targetX:r,targetY:i,targetPosition:a=X.Top,curvature:o=.25}){let[s,c]=qa({pos:n,x1:e,y1:t,x2:r,y2:i,c:o}),[l,u]=qa({pos:a,x1:r,y1:i,x2:e,y2:t,c:o}),[d,f,p,m]=Ga({sourceX:e,sourceY:t,targetX:r,targetY:i,sourceControlX:s,sourceControlY:c,targetControlX:l,targetControlY:u});return[`M${e},${t} C${s},${c} ${l},${u} ${r},${i}`,d,f,p,m]}function Ya({sourceX:e,sourceY:t,targetX:n,targetY:r}){let i=Math.abs(n-e)/2,a=n<e?n+i:n-i,o=Math.abs(r-t)/2;return[a,r<t?r+o:r-o,i,o]}function Xa({sourceNode:e,targetNode:t,selected:n=!1,zIndex:r=0,elevateOnSelect:i=!1,zIndexMode:a=`basic`}){return a===`manual`?r:(i&&n?r+1e3:r)+Math.max(e.parentId||i&&e.selected?e.internals.z:0,t.parentId||i&&t.selected?t.internals.z:0)}function Za({sourceNode:e,targetNode:t,width:n,height:r,transform:i}){let a=da(ha(e),ha(t));return a.x===a.x2&&(a.x2+=1),a.y===a.y2&&(a.y2+=1),va({x:-i[0]/i[2],y:-i[1]/i[2],width:n/i[2],height:r/i[2]},pa(a))>0}var Qa=({source:e,sourceHandle:t,target:n,targetHandle:r})=>`xy-edge__${e}${t||``}-${n}${r||``}`,$a=(e,t)=>t.some(t=>t.source===e.source&&t.target===e.target&&(t.sourceHandle===e.sourceHandle||!t.sourceHandle&&!e.sourceHandle)&&(t.targetHandle===e.targetHandle||!t.targetHandle&&!e.targetHandle)),eo=(e,t,n={})=>{if(!e.source||!e.target)return n.onError?.(`006`,Ii.error006()),t;let r=n.getEdgeId||Qa,i;return i=Ji(e)?{...e}:{...e,id:r(e)},$a(i,t)?t:(i.sourceHandle===null&&delete i.sourceHandle,i.targetHandle===null&&delete i.targetHandle,t.concat(i))};function to({sourceX:e,sourceY:t,targetX:n,targetY:r}){let[i,a,o,s]=Ya({sourceX:e,sourceY:t,targetX:n,targetY:r});return[`M ${e},${t}L ${n},${r}`,i,a,o,s]}var no={[X.Left]:{x:-1,y:0},[X.Right]:{x:1,y:0},[X.Top]:{x:0,y:-1},[X.Bottom]:{x:0,y:1}},ro=({source:e,sourcePosition:t=X.Bottom,target:n})=>t===X.Left||t===X.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},io=(e,t)=>Math.sqrt((t.x-e.x)**2+(t.y-e.y)**2);function ao({source:e,sourcePosition:t=X.Bottom,target:n,targetPosition:r=X.Top,center:i,offset:a,stepPosition:o}){let s=no[t],c=no[r],l={x:e.x+s.x*a,y:e.y+s.y*a},u={x:n.x+c.x*a,y:n.y+c.y*a},d=ro({source:l,sourcePosition:t,target:u}),f=d.x===0?`y`:`x`,p=d[f],m=[],h,g,_={x:0,y:0},v={x:0,y:0},[,,y,b]=Ya({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(s[f]*c[f]===-1){f===`x`?(h=i.x??l.x+(u.x-l.x)*o,g=i.y??(l.y+u.y)/2):(h=i.x??(l.x+u.x)/2,g=i.y??l.y+(u.y-l.y)*o);let e=[{x:h,y:l.y},{x:h,y:u.y}],t=[{x:l.x,y:g},{x:u.x,y:g}];m=s[f]===p?f===`x`?e:t:f===`x`?t:e}else{let i=[{x:l.x,y:u.y}],o=[{x:u.x,y:l.y}];if(m=f===`x`?s.x===p?o:i:s.y===p?i:o,t===r){let t=Math.abs(e[f]-n[f]);if(t<=a){let r=Math.min(a-1,a-t);s[f]===p?_[f]=(l[f]>e[f]?-1:1)*r:v[f]=(u[f]>n[f]?-1:1)*r}}if(t!==r){let e=f===`x`?`y`:`x`,t=s[f]===c[e],n=l[e]>u[e],r=l[e]<u[e];(s[f]===1&&(!t&&n||t&&r)||s[f]!==1&&(!t&&r||t&&n))&&(m=f===`x`?i:o)}let d={x:l.x+_.x,y:l.y+_.y},y={x:u.x+v.x,y:u.y+v.y};Math.max(Math.abs(d.x-m[0].x),Math.abs(y.x-m[0].x))>=Math.max(Math.abs(d.y-m[0].y),Math.abs(y.y-m[0].y))?(h=(d.x+y.x)/2,g=m[0].y):(h=m[0].x,g=(d.y+y.y)/2)}let x={x:l.x+_.x,y:l.y+_.y},S={x:u.x+v.x,y:u.y+v.y};return[[e,...x.x!==m[0].x||x.y!==m[0].y?[x]:[],...m,...S.x!==m[m.length-1].x||S.y!==m[m.length-1].y?[S]:[],n],h,g,y,b]}function oo(e,t,n,r){let i=Math.min(io(e,t)/2,io(t,n)/2,r),{x:a,y:o}=t;if(e.x===a&&a===n.x||e.y===o&&o===n.y)return`L${a} ${o}`;if(e.y===o){let t=e.x<n.x?-1:1,r=e.y<n.y?1:-1;return`L ${a+i*t},${o}Q ${a},${o} ${a},${o+i*r}`}let s=e.x<n.x?1:-1;return`L ${a},${o+i*(e.y<n.y?-1:1)}Q ${a},${o} ${a+i*s},${o}`}function so({sourceX:e,sourceY:t,sourcePosition:n=X.Bottom,targetX:r,targetY:i,targetPosition:a=X.Top,borderRadius:o=5,centerX:s,centerY:c,offset:l=20,stepPosition:u=.5}){let[d,f,p,m,h]=ao({source:{x:e,y:t},sourcePosition:n,target:{x:r,y:i},targetPosition:a,center:{x:s,y:c},offset:l,stepPosition:u}),g=`M${d[0].x} ${d[0].y}`;for(let e=1;e<d.length-1;e++)g+=oo(d[e-1],d[e],d[e+1],o);return g+=`L${d[d.length-1].x} ${d[d.length-1].y}`,[g,f,p,m,h]}function co(e){return e&&!!(e.internals.handleBounds||e.handles?.length)&&!!(e.measured.width||e.width||e.initialWidth)}function lo(e){let{sourceNode:t,targetNode:n}=e;if(!co(t)||!co(n))return null;let r=t.internals.handleBounds||uo(t.handles),i=n.internals.handleBounds||uo(n.handles),a=po(r?.source??[],e.sourceHandle),o=po(e.connectionMode===Bi.Strict?i?.target??[]:(i?.target??[]).concat(i?.source??[]),e.targetHandle);if(!a||!o)return e.onError?.(`008`,Ii.error008(a?`target`:`source`,{id:e.id,sourceHandle:e.sourceHandle,targetHandle:e.targetHandle})),null;let s=a?.position||X.Bottom,c=o?.position||X.Top,l=fo(t,a,s),u=fo(n,o,c);return{sourceX:l.x,sourceY:l.y,targetX:u.x,targetY:u.y,sourcePosition:s,targetPosition:c}}function uo(e){if(!e)return null;let t=[],n=[];for(let 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 fo(e,t,n=X.Left,r=!1){let i=(t?.x??0)+e.internals.positionAbsolute.x,a=(t?.y??0)+e.internals.positionAbsolute.y,{width:o,height:s}=t??ja(e);if(r)return{x:i+o/2,y:a+s/2};switch(t?.position??n){case X.Top:return{x:i+o/2,y:a};case X.Right:return{x:i+o,y:a+s/2};case X.Bottom:return{x:i+o/2,y:a+s};case X.Left:return{x:i,y:a+s/2}}}function po(e,t){return e&&(t?e.find(e=>e.id===t):e[0])||null}function mo(e,t){return e?typeof e==`string`?e:`${t?`${t}__`:``}${Object.keys(e).sort().map(t=>`${t}=${e[t]}`).join(`&`)}`:``}function ho(e,{id:t,defaultColor:n,defaultMarkerStart:r,defaultMarkerEnd:i}){let a=new Set;return e.reduce((e,o)=>([o.markerStart||r,o.markerEnd||i].forEach(r=>{if(r&&typeof r==`object`){let i=mo(r,t);a.has(i)||(e.push({id:i,color:r.color||n,...r}),a.add(i))}}),e),[]).sort((e,t)=>e.id.localeCompare(t.id))}var go=1e3,_o=10,vo={nodeOrigin:[0,0],nodeExtent:Li,elevateNodesOnSelect:!0,zIndexMode:`basic`,defaults:{}},yo={...vo,checkEquality:!0};function bo(e,t){let n={...e};for(let e in t)t[e]!==void 0&&(n[e]=t[e]);return n}function xo(e,t,n){let r=bo(vo,n);for(let n of e.values())if(n.parentId)Eo(n,e,t,r);else{let e=sa(Zi(n,r.nodeOrigin),Aa(n.extent)?n.extent:r.nodeExtent,ja(n));n.internals.positionAbsolute=e}}function So(e,t){if(!e.handles)return e.measured?t?.internals.handleBounds:void 0;let n=[],r=[];for(let t of e.handles){let i={id:t.id,width:t.width??1,height:t.height??1,nodeId:e.id,x:t.x,y:t.y,position:t.position,type:t.type};t.type===`source`?n.push(i):t.type===`target`&&r.push(i)}return{source:n,target:r}}function Co(e){return e===`manual`}function wo(e,t,n,r={}){let i=bo(yo,r),a={i:0},o=new Map(t),s=i?.elevateNodesOnSelect&&!Co(i.zIndexMode)?go:0,c=e.length>0,l=!1;t.clear(),n.clear();for(let u of e){let e=o.get(u.id);if(i.checkEquality&&u===e?.internals.userNode)t.set(u.id,e);else{let n=sa(Zi(u,i.nodeOrigin),Aa(u.extent)?u.extent:i.nodeExtent,ja(u));e={...i.defaults,...u,measured:{width:u.measured?.width,height:u.measured?.height},internals:{positionAbsolute:n,handleBounds:So(u,e),z:Do(u,s,i.zIndexMode),userNode:u}},t.set(u.id,e)}(e.measured===void 0||e.measured.width===void 0||e.measured.height===void 0)&&!e.hidden&&(c=!1),u.parentId&&Eo(e,t,n,r,a),l||=u.selected??!1}return{nodesInitialized:c,hasSelectedNodes:l}}function To(e,t){if(!e.parentId)return;let n=t.get(e.parentId);n?n.set(e.id,e):t.set(e.parentId,new Map([[e.id,e]]))}function Eo(e,t,n,r,i){let{elevateNodesOnSelect:a,nodeOrigin:o,nodeExtent:s,zIndexMode:c}=bo(vo,r),l=e.parentId,u=t.get(l);if(!u){console.warn(`Parent node ${l} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);return}To(e,n),i&&!u.parentId&&u.internals.rootParentIndex===void 0&&c===`auto`&&(u.internals.rootParentIndex=++i.i,u.internals.z=u.internals.z+i.i*_o),i&&u.internals.rootParentIndex!==void 0&&(i.i=u.internals.rootParentIndex);let{x:d,y:f,z:p}=Oo(e,u,o,s,a&&!Co(c)?go:0,c),{positionAbsolute:m}=e.internals,h=d!==m.x||f!==m.y;(h||p!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:h?{x:d,y:f}:m,z:p}})}function Do(e,t,n){let r=ba(e.zIndex)?e.zIndex:0;return Co(n)?r:r+(e.selected?t:0)}function Oo(e,t,n,r,i,a){let{x:o,y:s}=t.internals.positionAbsolute,c=ja(e),l=Zi(e,n),u=Aa(e.extent)?sa(l,e.extent,c):l,d=sa({x:o+u.x,y:s+u.y},r,c);e.extent===`parent`&&(d=ca(d,c,t));let f=Do(e,i,a),p=t.internals.z??0;return{x:d.x,y:d.y,z:p>=f?p+1:f}}function ko(e,t,n,r=[0,0]){let i=[],a=new Map;for(let n of e){let e=t.get(n.parentId);if(!e)continue;let r=ga(a.get(n.parentId)?.expandedRect??ma(e),n.rect);a.set(n.parentId,{expandedRect:r,parent:e})}return a.size>0&&a.forEach(({expandedRect:t,parent:a},o)=>{let s=a.internals.positionAbsolute,c=ja(a),l=a.origin??r,u=t.x<s.x?Math.round(Math.abs(s.x-t.x)):0,d=t.y<s.y?Math.round(Math.abs(s.y-t.y)):0,f=Math.max(c.width,Math.round(t.width)),p=Math.max(c.height,Math.round(t.height)),m=(f-c.width)*l[0],h=(p-c.height)*l[1];(u>0||d>0||m||h)&&(i.push({id:o,type:`position`,position:{x:a.position.x-u+m,y:a.position.y-d+h}}),n.get(o)?.forEach(t=>{e.some(e=>e.id===t.id)||i.push({id:t.id,type:`position`,position:{x:t.position.x+u,y:t.position.y+d}})})),(c.width<t.width||c.height<t.height||u||d)&&i.push({id:o,type:`dimensions`,setAttributes:!0,dimensions:{width:f+(u?l[0]*u-m:0),height:p+(d?l[1]*d-h:0)}})}),i}function Ao(e,t,n,r,i,a,o){let s=r?.querySelector(`.xyflow__viewport`),c=!1;if(!s)return{changes:[],updatedInternals:c};let l=[],u=window.getComputedStyle(s),{m22:d}=new window.DOMMatrixReadOnly(u.transform),f=[];for(let r of e.values()){let e=t.get(r.id);if(!e)continue;if(e.hidden){t.set(e.id,{...e,internals:{...e.internals,handleBounds:void 0}}),c=!0;continue}let s=Ra(r.nodeElement),u=e.measured.width!==s.width||e.measured.height!==s.height;if(s.width&&s.height&&(u||!e.internals.handleBounds||r.force)){let p=r.nodeElement.getBoundingClientRect(),m=Aa(e.extent)?e.extent:a,{positionAbsolute:h}=e.internals;e.parentId&&e.extent===`parent`?h=ca(h,s,t.get(e.parentId)):m&&(h=sa(h,m,s));let g={...e,measured:s,internals:{...e.internals,positionAbsolute:h,handleBounds:{source:Wa(`source`,r.nodeElement,p,d,e.id),target:Wa(`target`,r.nodeElement,p,d,e.id)}}};t.set(e.id,g),e.parentId&&Eo(g,t,n,{nodeOrigin:i,zIndexMode:o}),c=!0,u&&(l.push({id:e.id,type:`dimensions`,dimensions:s}),e.expandParent&&e.parentId&&f.push({id:e.id,parentId:e.parentId,rect:ma(g,i)}))}}if(f.length>0){let e=ko(f,t,n,i);l.push(...e)}return{changes:l,updatedInternals:c}}async function jo({delta:e,panZoom:t,transform:n,translateExtent:r,width:i,height:a}){if(!t||!e.x&&!e.y)return!1;let o=await t.setViewportConstrained({x:n[0]+e.x,y:n[1]+e.y,zoom:n[2]},[[0,0],[i,a]],r);return!!o&&(o.x!==n[0]||o.y!==n[1]||o.k!==n[2])}function Mo(e,t,n,r,i,a){let o=i,s=r.get(o)||new Map;r.set(o,s.set(n,t)),o=`${i}-${e}`;let c=r.get(o)||new Map;if(r.set(o,c.set(n,t)),a){o=`${i}-${e}-${a}`;let s=r.get(o)||new Map;r.set(o,s.set(n,t))}}function No(e,t,n){e.clear(),t.clear();for(let r of n){let{source:n,target:i,sourceHandle:a=null,targetHandle:o=null}=r,s={edgeId:r.id,source:n,target:i,sourceHandle:a,targetHandle:o},c=`${n}-${a}--${i}-${o}`;Mo(`source`,s,`${i}-${o}--${n}-${a}`,e,n,a),Mo(`target`,s,c,e,i,o),t.set(r.id,r)}}function Po(e,t){if(!e.parentId)return!1;let n=t.get(e.parentId);return n?n.selected?!0:Po(n,t):!1}function Fo(e,t,n){let r=e;do{if(r?.matches?.(t))return!0;if(r===n)return!1;r=r?.parentElement}while(r);return!1}function Io(e,t,n,r){let i=new Map;for(let[a,o]of e)if((o.selected||o.id===r)&&(!o.parentId||!Po(o,e))&&(o.draggable||t&&o.draggable===void 0)){let t=e.get(a);t&&i.set(a,{id:a,position:t.position||{x:0,y:0},distance:{x:n.x-t.internals.positionAbsolute.x,y:n.y-t.internals.positionAbsolute.y},extent:t.extent,parentId:t.parentId,origin:t.origin,expandParent:t.expandParent,internals:{positionAbsolute:t.internals.positionAbsolute||{x:0,y:0}},measured:{width:t.measured.width??0,height:t.measured.height??0}})}return i}function Lo({nodeId:e,dragItems:t,nodeLookup:n,dragging:r=!0}){let i=[];for(let[e,a]of t){let t=n.get(e)?.internals.userNode;t&&i.push({...t,position:a.position,dragging:r})}if(!e)return[i[0],i];let a=n.get(e)?.internals.userNode;return[a?{...a,position:t.get(e)?.position||a.position,dragging:r}:i[0],i]}function Ro({dragItems:e,snapGrid:t,x:n,y:r}){let i=e.values().next().value;if(!i)return null;let a={x:n-i.distance.x,y:r-i.distance.y},o=Sa(a,t);return{x:o.x-a.x,y:o.y-a.y}}function zo({onNodeMouseDown:e,getStoreItems:t,onDragStart:n,onDrag:r,onDragStop:i}){let a={x:null,y:null},o=0,s=new Map,c=!1,l={x:0,y:0},u=null,d=!1,f=null,p=!1,m=!1,h=null;function g({noDragClassName:g,handleSelector:_,domNode:v,isSelectable:y,nodeId:b,nodeClickDistance:x=0}){f=Y(v);function S({x:e,y:n}){let{nodeLookup:i,nodeExtent:o,snapGrid:c,snapToGrid:l,nodeOrigin:u,onNodeDrag:d,onSelectionDrag:f,onError:p,updateNodePositions:g}=t();a={x:e,y:n};let _=!1,v=s.size>1,y=v&&o?fa($i(s)):null,x=v&&l?Ro({dragItems:s,snapGrid:c,x:e,y:n}):null;for(let[t,r]of s){if(!i.has(t))continue;let a={x:e-r.distance.x,y:n-r.distance.y};l&&(a=x?{x:Math.round(a.x+x.x),y:Math.round(a.y+x.y)}:Sa(a,c));let s=null;if(v&&o&&!r.extent&&y){let{positionAbsolute:e}=r.internals,t=e.x-y.x+o[0][0],n=e.x+r.measured.width-y.x2+o[1][0],i=e.y-y.y+o[0][1],a=e.y+r.measured.height-y.y2+o[1][1];s=[[t,i],[n,a]]}let{position:d,positionAbsolute:f}=ia({nodeId:t,nextPosition:a,nodeLookup:i,nodeExtent:s||o,nodeOrigin:u,onError:p});_=_||r.position.x!==d.x||r.position.y!==d.y,r.position=d,r.internals.positionAbsolute=f}if(m||=_,_&&(g(s,!0),h&&(r||d||!b&&f))){let[e,t]=Lo({nodeId:b,dragItems:s,nodeLookup:i});r?.(h,s,e,t),d?.(h,e,t),b||f?.(h,t)}}async function C(){if(!u)return;let{transform:e,panBy:n,autoPanSpeed:r,autoPanOnNodeDrag:i}=t();if(!i){c=!1,cancelAnimationFrame(o);return}let[s,d]=ua(l,u,r);(s!==0||d!==0)&&(a.x=(a.x??0)-s/e[2],a.y=(a.y??0)-d/e[2],await n({x:s,y:d})&&S(a)),o=requestAnimationFrame(C)}function w(r){let{nodeLookup:i,multiSelectionActive:o,nodesDraggable:c,transform:l,snapGrid:f,snapToGrid:p,selectNodesOnDrag:m,onNodeDragStart:h,onSelectionDragStart:g,unselectNodesAndEdges:_}=t();d=!0,(!m||!y)&&!o&&b&&(i.get(b)?.selected||_()),y&&m&&b&&e?.(b);let v=La(r.sourceEvent,{transform:l,snapGrid:f,snapToGrid:p,containerBounds:u});if(a=v,s=Io(i,c,v,b),s.size>0&&(n||h||!b&&g)){let[e,t]=Lo({nodeId:b,dragItems:s,nodeLookup:i});n?.(r.sourceEvent,s,e,t),h?.(r.sourceEvent,e,t),b||g?.(r.sourceEvent,t)}}let T=Fn().clickDistance(x).on(`start`,e=>{let{domNode:n,nodeDragThreshold:r,transform:i,snapGrid:o,snapToGrid:s}=t();u=n?.getBoundingClientRect()||null,p=!1,m=!1,h=e.sourceEvent,r===0&&w(e),a=La(e.sourceEvent,{transform:i,snapGrid:o,snapToGrid:s,containerBounds:u}),l=Ua(e.sourceEvent,u)}).on(`drag`,e=>{let{autoPanOnNodeDrag:n,transform:r,snapGrid:i,snapToGrid:o,nodeDragThreshold:f,nodeLookup:m}=t(),g=La(e.sourceEvent,{transform:r,snapGrid:i,snapToGrid:o,containerBounds:u});if(h=e.sourceEvent,(e.sourceEvent.type===`touchmove`&&e.sourceEvent.touches.length>1||b&&!m.has(b))&&(p=!0),!p){if(!c&&n&&d&&(c=!0,C()),!d){let t=Ua(e.sourceEvent,u),n=t.x-l.x,r=t.y-l.y;Math.sqrt(n*n+r*r)>f&&w(e)}(a.x!==g.xSnapped||a.y!==g.ySnapped)&&s&&d&&(l=Ua(e.sourceEvent,u),S(g))}}).on(`end`,e=>{if(!d||p){p&&s.size>0&&t().updateNodePositions(s,!1);return}if(c=!1,d=!1,cancelAnimationFrame(o),s.size>0){let{nodeLookup:n,updateNodePositions:r,onNodeDragStop:a,onSelectionDragStop:o}=t();if(m&&=(r(s,!1),!1),i||a||!b&&o){let[t,r]=Lo({nodeId:b,dragItems:s,nodeLookup:n,dragging:!1});i?.(e.sourceEvent,s,t,r),a?.(e.sourceEvent,t,r),b||o?.(e.sourceEvent,r)}}}).filter(e=>{let t=e.target;return!e.button&&(!g||!Fo(t,`.${g}`,v))&&(!_||Fo(t,_,v))});f.call(T)}function _(){f?.on(`.drag`,null)}return{update:g,destroy:_}}function Bo(e,t,n){let r=[],i={x:e.x-n,y:e.y-n,width:n*2,height:n*2};for(let e of t.values())va(i,ma(e))>0&&r.push(e);return r}var Vo=250;function Ho(e,t,n,r){let i=[],a=1/0,o=Bo(e,n,t+Vo);for(let n of o){let o=[...n.internals.handleBounds?.source??[],...n.internals.handleBounds?.target??[]];for(let s of o){if(r.nodeId===s.nodeId&&r.type===s.type&&r.id===s.id)continue;let{x:o,y:c}=fo(n,s,s.position,!0),l=Math.sqrt((o-e.x)**2+(c-e.y)**2);l>t||(l<a?(i=[{...s,x:o,y:c}],a=l):l===a&&i.push({...s,x:o,y:c}))}}if(!i.length)return null;if(i.length>1){let e=r.type===`source`?`target`:`source`;return i.find(t=>t.type===e)??i[0]}return i[0]}function Uo(e,t,n,r,i,a=!1){let o=r.get(e);if(!o)return null;let s=i===`strict`?o.internals.handleBounds?.[t]:[...o.internals.handleBounds?.source??[],...o.internals.handleBounds?.target??[]],c=(n?s?.find(e=>e.id===n):s?.[0])??null;return c&&a?{...c,...fo(o,c,c.position,!0)}:c}function Wo(e,t){return e||(t?.classList.contains(`target`)?`target`:t?.classList.contains(`source`)?`source`:null)}function Go(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}var Ko=()=>!0;function qo(e,{connectionMode:t,connectionRadius:n,handleId:r,nodeId:i,edgeUpdaterType:a,isTarget:o,domNode:s,nodeLookup:c,lib:l,autoPanOnConnect:u,flowId:d,panBy:f,cancelConnection:p,onConnectStart:m,onConnect:h,onConnectEnd:g,isValidConnection:_=Ko,onReconnectEnd:v,updateConnection:y,getTransform:b,getFromHandle:x,autoPanSpeed:S,dragThreshold:C=1,handleDomNode:w}){let T=za(e.target),E=0,D,{x:O,y:k}=Ua(e),A=Wo(a,w),j=s?.getBoundingClientRect(),M=!1;if(!j||!A)return;let N=Uo(i,A,r,c,t);if(!N)return;let P=Ua(e,j),F=!1,I=null,L=!1,R=null;function z(){if(!u||!j)return;let[e,t]=ua(P,j,S);f({x:e,y:t}),E=requestAnimationFrame(z)}let B={...N,nodeId:i,type:A,position:N.position},V=c.get(i),H={inProgress:!0,isValid:null,from:fo(V,B,X.Left,!0),fromHandle:B,fromPosition:B.position,fromNode:V,to:P,toHandle:null,toPosition:Ki[B.position],toNode:null,pointer:P};function U(){M=!0,y(H),m?.(e,{nodeId:i,handleId:r,handleType:A})}C===0&&U();function W(e){if(!M){let{x:t,y:n}=Ua(e),r=t-O,i=n-k;if(!(r*r+i*i>C*C))return;U()}if(!x()||!B){ee(e);return}let a=b();P=Ua(e,j),D=Ho(Ca(P,a,!1,[1,1]),n,c,B),F||=(z(),!0);let s=Jo(e,{handle:D,connectionMode:t,fromNodeId:i,fromHandleId:r,fromType:o?`target`:`source`,isValidConnection:_,doc:T,lib:l,flowId:d,nodeLookup:c});R=s.handleDomNode,I=s.connection,L=Go(!!D,s.isValid);let u=c.get(i),f=u?fo(u,B,X.Left,!0):H.from,p={...H,from:f,isValid:L,to:s.toHandle&&L?wa({x:s.toHandle.x,y:s.toHandle.y},a):P,toHandle:s.toHandle,toPosition:L&&s.toHandle?s.toHandle.position:Ki[B.position],toNode:s.toHandle?c.get(s.toHandle.nodeId):null,pointer:P};y(p),H=p}function ee(e){if(!(`touches`in e&&e.touches.length>0)){if(M){(D||R)&&I&&L&&h?.(I);let{inProgress:t,...n}=H,r={...n,toPosition:H.toHandle?H.toPosition:null};g?.(e,r),a&&v?.(e,r)}p(),cancelAnimationFrame(E),F=!1,L=!1,I=null,R=null,T.removeEventListener(`mousemove`,W),T.removeEventListener(`mouseup`,ee),T.removeEventListener(`touchmove`,W),T.removeEventListener(`touchend`,ee)}}T.addEventListener(`mousemove`,W),T.addEventListener(`mouseup`,ee),T.addEventListener(`touchmove`,W),T.addEventListener(`touchend`,ee)}function Jo(e,{handle:t,connectionMode:n,fromNodeId:r,fromHandleId:i,fromType:a,doc:o,lib:s,flowId:c,isValidConnection:l=Ko,nodeLookup:u}){let d=a===`target`,f=t?o.querySelector(`.${s}-flow__handle[data-id="${c}-${t?.nodeId}-${t?.id}-${t?.type}"]`):null,{x:p,y:m}=Ua(e),h=o.elementFromPoint(p,m),g=h?.classList.contains(`${s}-flow__handle`)?h:f,_={handleDomNode:g,isValid:!1,connection:null,toHandle:null};if(g){let e=Wo(void 0,g),t=g.getAttribute(`data-nodeid`),a=g.getAttribute(`data-handleid`),o=g.classList.contains(`connectable`),s=g.classList.contains(`connectableend`);if(!t||!e)return _;let c={source:d?t:r,sourceHandle:d?a:i,target:d?r:t,targetHandle:d?i:a};_.connection=c,_.isValid=o&&s&&(n===Bi.Strict?d&&e===`source`||!d&&e===`target`:t!==r||a!==i)&&l(c),_.toHandle=Uo(t,e,a,u,n,!0)}return _}var Yo={onPointerDown:qo,isValid:Jo};function Xo({domNode:e,panZoom:t,getTransform:n,getViewScale:r}){let i=Y(e);function a({translateExtent:e,width:a,height:o,zoomStep:s=1,pannable:c=!0,zoomable:l=!0,inversePan:u=!1}){let d=e=>{if(e.sourceEvent.type!==`wheel`||!t)return;let r=n(),i=e.sourceEvent.ctrlKey&&ka()?10:1,a=-e.sourceEvent.deltaY*(e.sourceEvent.deltaMode===1?.05:e.sourceEvent.deltaMode?1:.002)*s,o=r[2]*2**(a*i);t.scaleTo(o)},f=[0,0],p=Fi().on(`start`,e=>{(e.sourceEvent.type===`mousedown`||e.sourceEvent.type===`touchstart`)&&(f=[e.sourceEvent.clientX??e.sourceEvent.touches[0].clientX,e.sourceEvent.clientY??e.sourceEvent.touches[0].clientY])}).on(`zoom`,c?i=>{let s=n();if(i.sourceEvent.type!==`mousemove`&&i.sourceEvent.type!==`touchmove`||!t)return;let c=[i.sourceEvent.clientX??i.sourceEvent.touches[0].clientX,i.sourceEvent.clientY??i.sourceEvent.touches[0].clientY],l=[c[0]-f[0],c[1]-f[1]];f=c;let d=r()*Math.max(s[2],Math.log(s[2]))*(u?-1:1),p={x:s[0]-l[0]*d,y:s[1]-l[1]*d},m=[[0,0],[a,o]];t.setViewportConstrained({x:p.x,y:p.y,zoom:s[2]},m,e)}:null).on(`zoom.wheel`,l?d:null);i.call(p,{})}function o(){i.on(`zoom`,null)}return{update:a,destroy:o,pointer:Sn}}var Zo=e=>({x:e.x,y:e.y,zoom:e.k}),Qo=({x:e,y:t,zoom:n})=>Ti.translate(e,t).scale(n),$o=(e,t)=>e.target.closest(`.${t}`),es=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),ts=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,ns=(e,t=0,n=ts,r=()=>{})=>{let i=typeof t==`number`&&t>0;return i||r(),i?e.transition().duration(t).ease(n).on(`end`,r):e},rs=e=>{let t=e.ctrlKey&&ka()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function is({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:r,panOnScrollMode:i,panOnScrollSpeed:a,zoomOnPinch:o,onPanZoomStart:s,onPanZoom:c,onPanZoomEnd:l}){return u=>{if($o(u,t))return u.ctrlKey&&u.preventDefault(),!1;u.preventDefault(),u.stopImmediatePropagation();let d=n.property(`__zoom`).k||1;if(u.ctrlKey&&o){let e=Sn(u),t=d*2**rs(u);r.scaleTo(n,t,e,u);return}let f=u.deltaMode===1?20:1,p=i===Vi.Vertical?0:u.deltaX*f,m=i===Vi.Horizontal?0:u.deltaY*f;!ka()&&u.shiftKey&&i!==Vi.Vertical&&(p=u.deltaY*f,m=0),r.translateBy(n,-(p/d)*a,-(m/d)*a,{internal:!0});let h=Zo(n.property(`__zoom`));clearTimeout(e.panScrollTimeout),e.isPanScrolling?(c?.(u,h),e.panScrollTimeout=setTimeout(()=>{l?.(u,h),e.isPanScrolling=!1},150)):(e.isPanScrolling=!0,s?.(u,h))}}function as({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(r,i){let a=r.type===`wheel`,o=!t&&a&&!r.ctrlKey,s=$o(r,e);if(r.ctrlKey&&a&&s&&r.preventDefault(),o||s)return null;r.preventDefault(),n.call(this,r,i)}}function os({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return r=>{if(r.sourceEvent?.internal)return;let i=Zo(r.transform);e.mouseButton=r.sourceEvent?.button||0,e.isZoomingOrPanning=!0,e.prevViewport=i,r.sourceEvent?.type===`mousedown`&&t(!0),n&&n?.(r.sourceEvent,i)}}function ss({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:r,onPanZoom:i}){return a=>{e.usedRightMouseButton=!!(n&&es(t,e.mouseButton??0)),a.sourceEvent?.sync||r([a.transform.x,a.transform.y,a.transform.k]),i&&!a.sourceEvent?.internal&&i?.(a.sourceEvent,Zo(a.transform))}}function cs({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:r,onPanZoomEnd:i,onPaneContextMenu:a}){return o=>{if(!o.sourceEvent?.internal&&(e.isZoomingOrPanning=!1,a&&es(t,e.mouseButton??0)&&!e.usedRightMouseButton&&o.sourceEvent&&a(o.sourceEvent),e.usedRightMouseButton=!1,r(!1),i)){let t=Zo(o.transform);e.prevViewport=t,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{i?.(o.sourceEvent,t)},n?150:0)}}}function ls({zoomActivationKeyPressed:e,zoomOnScroll:t,zoomOnPinch:n,panOnDrag:r,panOnScroll:i,zoomOnDoubleClick:a,userSelectionActive:o,noWheelClassName:s,noPanClassName:c,lib:l,connectionInProgress:u}){return d=>{let f=e||t,p=n&&d.ctrlKey,m=d.type===`wheel`;if(d.button===1&&d.type===`mousedown`&&($o(d,`${l}-flow__node`)||$o(d,`${l}-flow__edge`)))return!0;if(!r&&!f&&!i&&!a&&!n||o||u&&!m||$o(d,s)&&m||$o(d,c)&&(!m||i&&m&&!e)||!n&&d.ctrlKey&&m)return!1;if(!n&&d.type===`touchstart`&&d.touches?.length>1)return d.preventDefault(),!1;if(!f&&!i&&!p&&m||!r&&(d.type===`mousedown`||d.type===`touchstart`)||Array.isArray(r)&&!r.includes(d.button)&&d.type===`mousedown`)return!1;let h=Array.isArray(r)&&r.includes(d.button)||!d.button||d.button<=1;return(!d.ctrlKey||m)&&h}}function us({domNode:e,minZoom:t,maxZoom:n,translateExtent:r,viewport:i,onPanZoom:a,onPanZoomStart:o,onPanZoomEnd:s,onDraggingChange:c}){let l={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},u=e.getBoundingClientRect(),d=Fi().scaleExtent([t,n]).translateExtent(r),f=Y(e).call(d);v({x:i.x,y:i.y,zoom:oa(i.zoom,t,n)},[[0,0],[u.width,u.height]],r);let p=f.on(`wheel.zoom`),m=f.on(`dblclick.zoom`);d.wheelDelta(rs);async function h(e,t){return f?new Promise(n=>{d?.interpolate(t?.interpolate===`linear`?W:ge).transform(ns(f,t?.duration,t?.ease,()=>n(!0)),e)}):!1}function g({noWheelClassName:e,noPanClassName:t,onPaneContextMenu:n,userSelectionActive:r,panOnScroll:i,panOnDrag:u,panOnScrollMode:h,panOnScrollSpeed:g,preventScrolling:v,zoomOnPinch:y,zoomOnScroll:b,zoomOnDoubleClick:x,zoomActivationKeyPressed:S,lib:C,onTransformChange:w,connectionInProgress:T,paneClickDistance:E,selectionOnDrag:D}){r&&!l.isZoomingOrPanning&&_();let O=i&&!S&&!r;d.clickDistance(D?1/0:!ba(E)||E<0?0:E);let k=O?is({zoomPanValues:l,noWheelClassName:e,d3Selection:f,d3Zoom:d,panOnScrollMode:h,panOnScrollSpeed:g,zoomOnPinch:y,onPanZoomStart:o,onPanZoom:a,onPanZoomEnd:s}):as({noWheelClassName:e,preventScrolling:v,d3ZoomHandler:p});f.on(`wheel.zoom`,k,{passive:!1});let A=os({zoomPanValues:l,onDraggingChange:c,onPanZoomStart:o});d.on(`start`,A);let j=ss({zoomPanValues:l,panOnDrag:u,onPaneContextMenu:!!n,onPanZoom:a,onTransformChange:w});d.on(`zoom`,j);let M=cs({zoomPanValues:l,panOnDrag:u,panOnScroll:i,onPaneContextMenu:n,onPanZoomEnd:s,onDraggingChange:c});d.on(`end`,M);let N=ls({zoomActivationKeyPressed:S,panOnDrag:u,zoomOnScroll:b,panOnScroll:i,zoomOnDoubleClick:x,zoomOnPinch:y,userSelectionActive:r,noPanClassName:t,noWheelClassName:e,lib:C,connectionInProgress:T});d.filter(N),x?f.on(`dblclick.zoom`,m):f.on(`dblclick.zoom`,null)}function _(){d.on(`zoom`,null)}async function v(e,t,n){let r=Qo(e),i=d?.constrain()(r,t,n);return i&&await h(i),i}async function y(e,t){let n=Qo(e);return await h(n,t),n}function b(e){if(f){let t=Qo(e),n=f.property(`__zoom`);(n.k!==e.zoom||n.x!==e.x||n.y!==e.y)&&d?.transform(f,t,null,{sync:!0})}}function x(){let e=f?Ei(f.node()):{x:0,y:0,k:1};return{x:e.x,y:e.y,zoom:e.k}}async function S(e,t){return f?new Promise(n=>{d?.interpolate(t?.interpolate===`linear`?W:ge).scaleTo(ns(f,t?.duration,t?.ease,()=>n(!0)),e)}):!1}async function C(e,t){return f?new Promise(n=>{d?.interpolate(t?.interpolate===`linear`?W:ge).scaleBy(ns(f,t?.duration,t?.ease,()=>n(!0)),e)}):!1}function w(e){d?.scaleExtent(e)}function T(e){d?.translateExtent(e)}function E(e){let t=!ba(e)||e<0?0:e;d?.clickDistance(t)}return{update:g,destroy:_,setViewport:y,setViewportConstrained:v,getViewport:x,scaleTo:S,scaleBy:C,setScaleExtent:w,setTranslateExtent:T,syncViewport:b,setClickDistance:E}}var ds;(function(e){e.Line=`line`,e.Handle=`handle`})(ds||={});function fs({width:e,prevWidth:t,height:n,prevHeight:r,affectsX:i,affectsY:a}){let o=e-t,s=n-r,c=[o>0?1:o<0?-1:0,s>0?1:s<0?-1:0];return o&&i&&(c[0]*=-1),s&&a&&(c[1]*=-1),c}function ps(e){return{isHorizontal:e.includes(`right`)||e.includes(`left`),isVertical:e.includes(`bottom`)||e.includes(`top`),affectsX:e.includes(`left`),affectsY:e.includes(`top`)}}function ms(e,t){return Math.max(0,t-e)}function hs(e,t){return Math.max(0,e-t)}function gs(e,t,n){return Math.max(0,t-e,e-n)}function _s(e,t){return e?!t:t}function vs(e,t,n,r,i,a,o,s){let{affectsX:c,affectsY:l}=t,{isHorizontal:u,isVertical:d}=t,f=u&&d,{xSnapped:p,ySnapped:m}=n,{minWidth:h,maxWidth:g,minHeight:_,maxHeight:v}=r,{x:y,y:b,width:x,height:S,aspectRatio:C}=e,w=Math.floor(u?p-e.pointerX:0),T=Math.floor(d?m-e.pointerY:0),E=x+(c?-w:w),D=S+(l?-T:T),O=-a[0]*x,k=-a[1]*S,A=gs(E,h,g),j=gs(D,_,v);if(o){let e=0,t=0;c&&w<0?e=ms(y+w+O,o[0][0]):!c&&w>0&&(e=hs(y+E+O,o[1][0])),l&&T<0?t=ms(b+T+k,o[0][1]):!l&&T>0&&(t=hs(b+D+k,o[1][1])),A=Math.max(A,e),j=Math.max(j,t)}if(s){let e=0,t=0;c&&w>0?e=hs(y+w,s[0][0]):!c&&w<0&&(e=ms(y+E,s[1][0])),l&&T>0?t=hs(b+T,s[0][1]):!l&&T<0&&(t=ms(b+D,s[1][1])),A=Math.max(A,e),j=Math.max(j,t)}if(i){if(u){let e=gs(E/C,_,v)*C;if(A=Math.max(A,e),o){let e=0;e=!c&&!l||c&&!l&&f?hs(b+k+E/C,o[1][1])*C:ms(b+k+(c?w:-w)/C,o[0][1])*C,A=Math.max(A,e)}if(s){let e=0;e=!c&&!l||c&&!l&&f?ms(b+E/C,s[1][1])*C:hs(b+(c?w:-w)/C,s[0][1])*C,A=Math.max(A,e)}}if(d){let e=gs(D*C,h,g)/C;if(j=Math.max(j,e),o){let e=0;e=!c&&!l||l&&!c&&f?hs(y+D*C+O,o[1][0])/C:ms(y+(l?T:-T)*C+O,o[0][0])/C,j=Math.max(j,e)}if(s){let e=0;e=!c&&!l||l&&!c&&f?ms(y+D*C,s[1][0])/C:hs(y+(l?T:-T)*C,s[0][0])/C,j=Math.max(j,e)}}}T+=T<0?j:-j,w+=w<0?A:-A,i&&(f?E>D*C?T=(_s(c,l)?-w:w)/C:w=(_s(c,l)?-T:T)*C:u?(T=w/C,l=c):(w=T*C,c=l));let M=c?y+w:y,N=l?b+T:b;return{width:x+(c?-w:w),height:S+(l?-T:T),x:a[0]*w*(c?-1:1)+M,y:a[1]*T*(l?-1:1)+N}}var ys={width:0,height:0,x:0,y:0},bs={...ys,pointerX:0,pointerY:0,aspectRatio:1};function xs(e,t,n){let r=t.position.x+e.position.x,i=t.position.y+e.position.y,a=e.measured.width??0,o=e.measured.height??0,s=n[0]*a,c=n[1]*o;return[[r-s,i-c],[r+a-s,i+o-c]]}function Ss({domNode:e,nodeId:t,getStoreItems:n,onChange:r,onEnd:i}){let a=Y(e),o={controlDirection:ps(`bottom-right`),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};function s({controlPosition:e,boundaries:s,keepAspectRatio:c,resizeDirection:l,onResizeStart:u,onResize:d,onResizeEnd:f,shouldResize:p}){let m={...ys},h={...bs};o={boundaries:s,resizeDirection:l,keepAspectRatio:c,controlDirection:ps(e)};let g,_=null,v=[],y,b,x,S=!1,C=Fn().on(`start`,e=>{let{nodeLookup:r,transform:i,snapGrid:a,snapToGrid:o,nodeOrigin:s,paneDomNode:c}=n();if(g=r.get(t),!g)return;_=c?.getBoundingClientRect()??null;let{xSnapped:l,ySnapped:d}=La(e.sourceEvent,{transform:i,snapGrid:a,snapToGrid:o,containerBounds:_});m={width:g.measured.width??0,height:g.measured.height??0,x:g.position.x??0,y:g.position.y??0},h={...m,pointerX:l,pointerY:d,aspectRatio:m.width/m.height},y=void 0,b=Aa(g.extent)?g.extent:void 0,g.parentId&&(g.extent===`parent`||g.expandParent)&&(y=r.get(g.parentId)),y&&g.extent===`parent`&&(b=[[0,0],[y.measured.width,y.measured.height]]),v=[],x=void 0;for(let[e,n]of r)if(n.parentId===t&&(v.push({id:e,position:{...n.position},extent:n.extent}),n.extent===`parent`||n.expandParent)){let e=xs(n,g,n.origin??s);x=x?[[Math.min(e[0][0],x[0][0]),Math.min(e[0][1],x[0][1])],[Math.max(e[1][0],x[1][0]),Math.max(e[1][1],x[1][1])]]:e}u?.(e,{...m})}).on(`drag`,e=>{let{transform:t,snapGrid:i,snapToGrid:a,nodeOrigin:s}=n(),c=La(e.sourceEvent,{transform:t,snapGrid:i,snapToGrid:a,containerBounds:_}),l=[];if(!g)return;let{x:u,y:f,width:C,height:w}=m,T={},E=g.origin??s,{width:D,height:O,x:k,y:A}=vs(h,o.controlDirection,c,o.boundaries,o.keepAspectRatio,E,b,x),j=D!==C,M=O!==w,N=k!==u&&j,P=A!==f&&M;if(!N&&!P&&!j&&!M)return;if((N||P||E[0]===1||E[1]===1)&&(T.x=N?k:m.x,T.y=P?A:m.y,m.x=T.x,m.y=T.y,v.length>0)){let e=k-u,t=A-f;for(let n of v)n.position={x:n.position.x-e+E[0]*(D-C),y:n.position.y-t+E[1]*(O-w)},l.push(n)}if((j||M)&&(T.width=j&&(!o.resizeDirection||o.resizeDirection===`horizontal`)?D:m.width,T.height=M&&(!o.resizeDirection||o.resizeDirection===`vertical`)?O:m.height,m.width=T.width,m.height=T.height),y&&g.expandParent){let e=E[0]*(T.width??0);T.x&&T.x<e&&(m.x=e,h.x-=T.x-e);let t=E[1]*(T.height??0);T.y&&T.y<t&&(m.y=t,h.y-=T.y-t)}let F=fs({width:m.width,prevWidth:C,height:m.height,prevHeight:w,affectsX:o.controlDirection.affectsX,affectsY:o.controlDirection.affectsY}),I={...m,direction:F};p?.(e,I)!==!1&&(S=!0,d?.(e,I),r(T,l))}).on(`end`,e=>{S&&=(f?.(e,{...m}),i?.({...m}),!1)});a.call(C)}function c(){a.on(`.drag`,null)}return{update:s,destroy:c}}var Cs=e(H(),1),ws=e=>{let t,n=new Set,r=(e,r)=>{let i=typeof e==`function`?e(t):e;if(!Object.is(i,t)){let e=t;t=r??(typeof i!=`object`||!i)?i:Object.assign({},t,i),n.forEach(n=>n(t,e))}},i=()=>t,a={setState:r,getState:i,getInitialState:()=>o,subscribe:e=>(n.add(e),()=>n.delete(e)),destroy:()=>{n.clear()}},o=t=e(r,i,a);return a},Ts=e=>e?ws(e):ws,{useDebugValue:Es}=G.default,{useSyncExternalStoreWithSelector:Ds}=Cs.default,Os=e=>e;function ks(e,t=Os,n){let r=Ds(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return Es(r),r}var As=(e,t)=>{let n=Ts(e),r=(e,r=t)=>ks(n,e,r);return Object.assign(r,n),r},js=(e,t)=>e?As(e,t):As;function Z(e,t){if(Object.is(e,t))return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(let[n,r]of e)if(!Object.is(r,t.get(n)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}let n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(let r of n)if(!Object.prototype.hasOwnProperty.call(t,r)||!Object.is(e[r],t[r]))return!1;return!0}c();var Ms=(0,G.createContext)(null),Ns=Ms.Provider,Ps=Ii.error001(`react`);function Q(e,t){let n=(0,G.useContext)(Ms);if(n===null)throw Error(Ps);return ks(n,e,t)}function $(){let e=(0,G.useContext)(Ms);if(e===null)throw Error(Ps);return(0,G.useMemo)(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}var Fs={display:`none`},Is={position:`absolute`,width:1,height:1,margin:-1,border:0,padding:0,overflow:`hidden`,clip:`rect(0px, 0px, 0px, 0px)`,clipPath:`inset(100%)`},Ls=`react-flow__node-desc`,Rs=`react-flow__edge-desc`,zs=`react-flow__aria-live`,Bs=e=>e.ariaLiveMessage,Vs=e=>e.ariaLabelConfig;function Hs({rfId:e}){let t=Q(Bs);return(0,K.jsx)(`div`,{id:`${zs}-${e}`,"aria-live":`assertive`,"aria-atomic":`true`,style:Is,children:t})}function Us({rfId:e,disableKeyboardA11y:t}){let n=Q(Vs);return(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`div`,{id:`${Ls}-${e}`,style:Fs,children:t?n[`node.a11yDescription.default`]:n[`node.a11yDescription.keyboardDisabled`]}),(0,K.jsx)(`div`,{id:`${Rs}-${e}`,style:Fs,children:n[`edge.a11yDescription.default`]}),!t&&(0,K.jsx)(Hs,{rfId:e})]})}var Ws=(0,G.forwardRef)(({position:e=`top-left`,children:t,className:n,style:r,...i},a)=>(0,K.jsx)(`div`,{className:q([`react-flow__panel`,n,...`${e}`.split(`-`)]),style:r,ref:a,...i,children:t}));Ws.displayName=`Panel`;var Gs=`https://reactflow.dev?utm_source=attribution`;function Ks({proOptions:e,position:t=`bottom-right`}){return e?.hideAttribution?null:(0,K.jsx)(Ws,{position:t,className:`react-flow__attribution`,"data-message":`Please only hide this attribution when you are subscribed to React Flow Pro: ${Gs}`,children:(0,K.jsx)(`a`,{href:Gs,target:`_blank`,rel:`noopener noreferrer`,"aria-label":`React Flow attribution`,children:`React Flow`})})}var qs=e=>{let t=[],n=[];for(let[,n]of e.nodeLookup)n.selected&&t.push(n.internals.userNode);for(let[,t]of e.edgeLookup)t.selected&&n.push(t);return{selectedNodes:t,selectedEdges:n}},Js=e=>e.id;function Ys(e,t){return Z(e.selectedNodes.map(Js),t.selectedNodes.map(Js))&&Z(e.selectedEdges.map(Js),t.selectedEdges.map(Js))}function Xs({onSelectionChange:e}){let t=$(),{selectedNodes:n,selectedEdges:r}=Q(qs,Ys);return(0,G.useEffect)(()=>{let i={nodes:n,edges:r};e?.(i),t.getState().onSelectionChangeHandlers.forEach(e=>e(i))},[n,r,e]),null}var Zs=e=>!!e.onSelectionChangeHandlers;function Qs({onSelectionChange:e}){let t=Q(Zs);return e||t?(0,K.jsx)(Xs,{onSelectionChange:e}):null}var $s=[0,0],ec={x:0,y:0,zoom:1},tc=[...`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`.split(`.`),`rfId`],nc=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}),rc={translateExtent:Li,nodeOrigin:$s,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:`nopan`,rfId:`1`};function ic(e){let{setNodes:t,setEdges:n,setMinZoom:r,setMaxZoom:i,setTranslateExtent:a,setNodeExtent:o,reset:s,setDefaultNodesAndEdges:c}=Q(nc,Z),l=$();(0,G.useEffect)(()=>(c(e.defaultNodes,e.defaultEdges),()=>{u.current=rc,s()}),[]);let u=(0,G.useRef)(rc);return(0,G.useEffect)(()=>{for(let s of tc){let c=e[s];c!==u.current[s]&&e[s]!==void 0&&(s===`nodes`?t(c):s===`edges`?n(c):s===`minZoom`?r(c):s===`maxZoom`?i(c):s===`translateExtent`?a(c):s===`nodeExtent`?o(c):s===`ariaLabelConfig`?l.setState({ariaLabelConfig:Ia(c)}):s===`fitView`?l.setState({fitViewQueued:c}):s===`fitViewOptions`?l.setState({fitViewOptions:c}):l.setState({[s]:c}))}u.current=e},tc.map(t=>e[t])),null}function ac(){return typeof window>`u`||!window.matchMedia?null:window.matchMedia(`(prefers-color-scheme: dark)`)}function oc(e){let[t,n]=(0,G.useState)(e===`system`?null:e);return(0,G.useEffect)(()=>{if(e!==`system`){n(e);return}let t=ac(),r=()=>n(t?.matches?`dark`:`light`);return r(),t?.addEventListener(`change`,r),()=>{t?.removeEventListener(`change`,r)}},[e]),t===null?ac()?.matches?`dark`:`light`:t}var sc=typeof document<`u`?document:null;function cc(e=null,t={target:sc,actInsideInputWithModifier:!0}){let[n,r]=(0,G.useState)(!1),i=(0,G.useRef)(!1),a=(0,G.useRef)(new Set([])),[o,s]=(0,G.useMemo)(()=>{if(e!==null){let t=(Array.isArray(e)?e:[e]).filter(e=>typeof e==`string`).map(e=>e.replace(`+`,`
2
2
  `).replace(`
3
3
 
4
4
  `,`
@@ -1 +1 @@
1
- import{a as e}from"./chunk-BNv3lrIs.js";import{t}from"./brain-BJ2Gd98j.js";import{Cn as n,Gn as r,Hn as i,Kn as a,Nt as o,Rn as s,ft as c,kt as l,nt as u,rt as d}from"./index-B3ejvKSt.js";import{r as f,t as p}from"./TemplatePreviewModal-_Dy6ceXg.js";var m=e(a(),1),h=e(r(),1),g=n();function _({loop:e,onClose:n}){let{t:r}=s(`loops`),a=i();return(0,m.useEffect)(()=>{let e=e=>{e.key===`Escape`&&n()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[n]),(0,h.createPortal)((0,g.jsxs)(`div`,{"data-testid":`loop-preview-modal`,className:`fixed inset-0 z-[65] flex items-center justify-center p-4`,children:[(0,g.jsx)(`div`,{className:`absolute inset-0 bg-black/60 backdrop-blur-sm`,onClick:n,"aria-hidden":!0}),(0,g.jsxs)(`div`,{role:`dialog`,"aria-modal":`true`,"aria-label":e.name,className:`relative flex max-h-[80vh] w-full max-w-lg flex-col gap-4 overflow-hidden rounded-xl border border-border/30 bg-popover p-6 shadow-xl backdrop-blur-md`,children:[(0,g.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,g.jsxs)(`div`,{className:`flex items-center gap-2 pr-6`,children:[(0,g.jsx)(t,{className:`h-4 w-4 shrink-0 text-accent-highlight`}),(0,g.jsx)(`span`,{className:`min-w-0 truncate text-base font-semibold text-foreground`,children:e.name}),(0,g.jsxs)(`span`,{className:d(`inline-flex shrink-0 items-center gap-1 rounded-full border px-1.5 py-px text-[10px] font-medium uppercase tracking-wide`,e.locked?`border-accent-info/40 bg-accent-info/10 text-accent-info`:e.status===`published`?`border-accent-success/40 bg-accent-success/10 text-accent-success`:`border-border/60 bg-surface/60 text-foreground/60`),children:[e.locked&&(0,g.jsx)(o,{className:`h-2.5 w-2.5`}),e.locked?r(`preview.builtin`):r(`status.${e.status??`draft`}`,{defaultValue:e.status??``})]})]}),e.description&&(0,g.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:e.description})]}),(0,g.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,children:r(`preview.limits`,{iterations:e.graph.config.maxIterations,timeout:e.graph.config.timeoutMinutes})}),(0,g.jsxs)(`div`,{className:`min-h-0 space-y-1.5 overflow-y-auto pr-1`,children:[(0,g.jsx)(`span`,{className:`block text-[10px] font-medium uppercase tracking-wide text-muted-foreground`,children:r(`preview.steps`)}),e.graph.nodes.map((e,t)=>{let n=p[e.type]??c,i=f(e);return(0,g.jsxs)(`div`,{className:`rounded border border-border bg-surface/30 p-2`,children:[(0,g.jsxs)(`div`,{className:`flex items-center gap-1.5 text-xs font-medium text-foreground`,children:[(0,g.jsxs)(`span`,{className:`text-[10px] tabular-nums text-muted-foreground`,children:[t+1,`.`]}),(0,g.jsx)(n,{className:`h-3.5 w-3.5 text-accent-primary`}),r(`builder.nodes.${e.type}`)]}),i&&(0,g.jsx)(`pre`,{className:`mt-1 whitespace-pre-wrap break-words font-mono text-[11px] text-muted-foreground`,children:i})]},e.id)})]}),(0,g.jsxs)(`div`,{className:`flex shrink-0 items-center justify-end gap-2`,children:[(0,g.jsx)(u,{variant:`ghost`,onClick:n,children:r(`common:actions.close`)}),!e.locked&&(0,g.jsxs)(u,{"data-testid":`loop-preview-open-builder`,onClick:()=>{n(),a(`/loops/${encodeURIComponent(e.id)}/edit`)},children:[(0,g.jsx)(l,{className:`mr-1.5 h-3.5 w-3.5`}),r(`preview.openInBuilder`)]})]})]})]}),document.body)}export{_ as LoopPreviewModal};
1
+ import{a as e}from"./chunk-BNv3lrIs.js";import{t}from"./brain-BBNUUrUI.js";import{Cn as n,Gn as r,Hn as i,Kn as a,Nt as o,Rn as s,ft as c,kt as l,nt as u,rt as d}from"./index-Dw1N2-ci.js";import{r as f,t as p}from"./TemplatePreviewModal-DcHFbLA8.js";var m=e(a(),1),h=e(r(),1),g=n();function _({loop:e,onClose:n}){let{t:r}=s(`loops`),a=i();return(0,m.useEffect)(()=>{let e=e=>{e.key===`Escape`&&n()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[n]),(0,h.createPortal)((0,g.jsxs)(`div`,{"data-testid":`loop-preview-modal`,className:`fixed inset-0 z-[65] flex items-center justify-center p-4`,children:[(0,g.jsx)(`div`,{className:`absolute inset-0 bg-black/60 backdrop-blur-sm`,onClick:n,"aria-hidden":!0}),(0,g.jsxs)(`div`,{role:`dialog`,"aria-modal":`true`,"aria-label":e.name,className:`relative flex max-h-[80vh] w-full max-w-lg flex-col gap-4 overflow-hidden rounded-xl border border-border/30 bg-popover p-6 shadow-xl backdrop-blur-md`,children:[(0,g.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,g.jsxs)(`div`,{className:`flex items-center gap-2 pr-6`,children:[(0,g.jsx)(t,{className:`h-4 w-4 shrink-0 text-accent-highlight`}),(0,g.jsx)(`span`,{className:`min-w-0 truncate text-base font-semibold text-foreground`,children:e.name}),(0,g.jsxs)(`span`,{className:d(`inline-flex shrink-0 items-center gap-1 rounded-full border px-1.5 py-px text-[10px] font-medium uppercase tracking-wide`,e.locked?`border-accent-info/40 bg-accent-info/10 text-accent-info`:e.status===`published`?`border-accent-success/40 bg-accent-success/10 text-accent-success`:`border-border/60 bg-surface/60 text-foreground/60`),children:[e.locked&&(0,g.jsx)(o,{className:`h-2.5 w-2.5`}),e.locked?r(`preview.builtin`):r(`status.${e.status??`draft`}`,{defaultValue:e.status??``})]})]}),e.description&&(0,g.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:e.description})]}),(0,g.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,children:r(`preview.limits`,{iterations:e.graph.config.maxIterations,timeout:e.graph.config.timeoutMinutes})}),(0,g.jsxs)(`div`,{className:`min-h-0 space-y-1.5 overflow-y-auto pr-1`,children:[(0,g.jsx)(`span`,{className:`block text-[10px] font-medium uppercase tracking-wide text-muted-foreground`,children:r(`preview.steps`)}),e.graph.nodes.map((e,t)=>{let n=p[e.type]??c,i=f(e);return(0,g.jsxs)(`div`,{className:`rounded border border-border bg-surface/30 p-2`,children:[(0,g.jsxs)(`div`,{className:`flex items-center gap-1.5 text-xs font-medium text-foreground`,children:[(0,g.jsxs)(`span`,{className:`text-[10px] tabular-nums text-muted-foreground`,children:[t+1,`.`]}),(0,g.jsx)(n,{className:`h-3.5 w-3.5 text-accent-primary`}),r(`builder.nodes.${e.type}`)]}),i&&(0,g.jsx)(`pre`,{className:`mt-1 whitespace-pre-wrap break-words font-mono text-[11px] text-muted-foreground`,children:i})]},e.id)})]}),(0,g.jsxs)(`div`,{className:`flex shrink-0 items-center justify-end gap-2`,children:[(0,g.jsx)(u,{variant:`ghost`,onClick:n,children:r(`common:actions.close`)}),!e.locked&&(0,g.jsxs)(u,{"data-testid":`loop-preview-open-builder`,onClick:()=>{n(),a(`/loops/${encodeURIComponent(e.id)}/edit`)},children:[(0,g.jsx)(l,{className:`mr-1.5 h-3.5 w-3.5`}),r(`preview.openInBuilder`)]})]})]})]}),document.body)}export{_ as LoopPreviewModal};
@@ -1 +1 @@
1
- import{a as e}from"./chunk-BNv3lrIs.js";import{t}from"./upload-xdQuJvXN.js";import{Cn as n,D as r,Dt as i,E as a,G as o,Hn as s,J as c,Jt as l,K as u,Kn as d,Ln as f,O as p,R as m,Rn as h,T as g,Tt as _,X as ee,Xt as v,Y as y,Zt as b,_n as te,gn as x,kt as S,lt as C,mt as w,nt as T,ot as E,q as D,rt as O,vn as ne,w as k}from"./index-B3ejvKSt.js";import{n as re}from"./TemplatePreviewModal-_Dy6ceXg.js";var ie=x(`file-down`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M12 18v-6`,key:`17g6i2`}],[`path`,{d:`m9 15 3 3 3-3`,key:`1npd3o`}]]),ae=x(`file-up`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M12 12v6`,key:`3ahymv`}],[`path`,{d:`m15 15-3-3-3 3`,key:`15xj92`}]]),A=e(d(),1);function oe(e){return{specrailsLoops:1,loops:e.map(e=>({name:e.name,description:e.description,graph:e.graph}))}}function j(e){let t=e;return!!t&&typeof t.name==`string`&&!!t.graph&&typeof t.graph==`object`}function se(e){let t;try{t=JSON.parse(e)}catch{throw Error(`invalid-json`)}let n=(Array.isArray(t)?t:Array.isArray(t?.loops)?t.loops:j(t)?[t]:[]).filter(j);if(n.length===0)throw Error(`no-loops`);return n.map(e=>({name:e.name,description:e.description??null,graph:e.graph}))}function ce(e){return e.length===1?`${e[0].name.trim().toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``)||`loop`}.loop.json`:`specrails-loops-${e.length}.json`}var M=[`API`,`Automation`,`CI`,`Database`,`Debugging`,`DevOps`,`Docs`,`Git`,`Maintenance`,`Performance`,`Planning`,`Quality`,`Review`,`Security`,`Testing`];function le(e,t){let n=t.query.trim().toLowerCase(),r=t.categories;return e.filter(e=>r.length>0&&!(e.category&&r.includes(e.category))?!1:n?`${e.name} ${e.description} ${e.tags.join(` `)} ${e.category??``} ${e.searchTerms??``}`.toLowerCase().includes(n):!0)}function ue(e){let t=new Map;for(let n of e)n.category&&t.set(n.category,(t.get(n.category)??0)+1);let n=[];for(let e of M){let r=t.get(e);r&&(n.push({category:e,count:r}),t.delete(e))}for(let e of[...t.keys()].sort())n.push({category:e,count:t.get(e)});return n}var N=n();function de({loop:e,projects:t,onClose:n,onExecute:r}){let{t:a}=h(`loops`),s=e!==null,[l,d]=(0,A.useState)(``),[f,p]=(0,A.useState)(``),[_,v]=(0,A.useState)(``),[b,te]=(0,A.useState)(`medium`),x=t.find(e=>e.id===(l||t[0]?.id)),S=(0,A.useMemo)(()=>x?.providers??(x?.provider?[x.provider]:[]),[x]),C=f||S[0]||``,w=(0,A.useMemo)(()=>g(C),[C]),E=_||k(C),O=C?m(C):!1;return(0,N.jsx)(o,{open:s,onOpenChange:e=>{e||n()},children:(0,N.jsx)(u,{movableResizable:!0,className:`max-w-sm`,children:e&&(0,N.jsxs)(N.Fragment,{children:[(0,N.jsxs)(y,{children:[(0,N.jsx)(ee,{children:a(`run.title`,{name:e.name})}),(0,N.jsx)(D,{children:a(`run.subtitle`)})]}),(0,N.jsx)(`label`,{className:`block text-[11px] font-medium text-muted-foreground`,children:a(`run.project`)}),t.length===0?(0,N.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:a(`run.noProjects`)}):(0,N.jsx)(`select`,{"aria-label":a(`run.project`),"data-testid":`run-project-select`,value:l||t[0]?.id,onChange:e=>{d(e.target.value),p(``),v(``)},className:`w-full text-xs rounded border border-border bg-transparent px-2 py-1 text-foreground focus:outline-none focus:ring-1 focus:ring-accent-primary/40`,children:t.map(e=>(0,N.jsx)(`option`,{value:e.id,children:e.name},e.id))}),S.length>1&&(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(`label`,{className:`block text-[11px] font-medium text-muted-foreground`,children:a(`run.provider`)}),(0,N.jsx)(`select`,{"aria-label":a(`run.provider`),value:C,onChange:e=>{p(e.target.value),v(``)},className:`w-full text-xs rounded border border-border bg-transparent px-2 py-1 text-foreground focus:outline-none focus:ring-1 focus:ring-accent-primary/40`,children:S.map(e=>(0,N.jsx)(`option`,{value:e,children:e},e))})]}),w.length>0&&(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(`label`,{className:`block text-[11px] font-medium text-muted-foreground`,children:a(`run.model`)}),(0,N.jsx)(`select`,{"aria-label":a(`run.model`),"data-testid":`run-model-select`,value:E,onChange:e=>v(e.target.value),className:`w-full text-xs rounded border border-border bg-transparent px-2 py-1 text-foreground focus:outline-none focus:ring-1 focus:ring-accent-primary/40`,children:w.map(e=>(0,N.jsx)(`option`,{value:e.value,children:e.label},e.value))})]}),O&&(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(`label`,{className:`block text-[11px] font-medium text-muted-foreground`,children:a(`run.effort`)}),(0,N.jsxs)(`select`,{"aria-label":a(`run.effort`),value:b,onChange:e=>te(e.target.value),className:`w-full text-xs rounded border border-border bg-transparent px-2 py-1 text-foreground focus:outline-none focus:ring-1 focus:ring-accent-primary/40`,children:[(0,N.jsx)(`option`,{value:`low`,children:`low`}),(0,N.jsx)(`option`,{value:`medium`,children:`medium`}),(0,N.jsx)(`option`,{value:`high`,children:`high`})]})]}),(0,N.jsxs)(c,{children:[(0,N.jsx)(T,{variant:`ghost`,onClick:n,children:a(`common:actions.cancel`)}),(0,N.jsxs)(T,{onClick:()=>{let e=l||t[0]?.id;e&&r({projectId:e,provider:S.length>1?C:void 0,model:w.length>0?E:void 0,effort:O?b:void 0})},disabled:t.length===0,children:[(0,N.jsx)(i,{className:`w-3.5 h-3.5 mr-1.5`}),a(`run.execute`)]})]})]})})})}var P={draft:`bg-accent-secondary/15 text-accent-secondary ring-accent-secondary/40`,published:`bg-accent-success/15 text-accent-success ring-accent-success/40`};function F({status:e}){let{t}=h(`loops`);return(0,N.jsx)(`span`,{className:O(`inline-flex items-center px-1.5 py-0.5 rounded text-[10px] font-medium ring-1 ring-inset`,P[e]),children:t(`status.${e}`)})}function I(){let{t:e}=h(`loops`),t=s(),n=(0,A.useCallback)(e=>e.replace(/:/g,`_`),[]),i=(0,A.useCallback)((t,r)=>e(`catalog.${n(t)}.name`,{defaultValue:r}),[e,n]),d=(0,A.useCallback)((t,r)=>e(`catalog.${n(t)}.description`,{defaultValue:r}),[e,n]),[m,g]=(0,A.useState)([]),[x,S]=(0,A.useState)([]),[k,j]=(0,A.useState)([]),[M,P]=(0,A.useState)(!0),[F,I]=(0,A.useState)(null),[z,B]=(0,A.useState)(null),[V,H]=(0,A.useState)(`use`),[U,W]=(0,A.useState)(null),[G,fe]=(0,A.useState)(new Set),K=`specrails-desktop:loop-template-filter`,pe=(()=>{try{let e=localStorage.getItem(K),t=e?JSON.parse(e):null;return{query:typeof t?.query==`string`?t.query:``,categories:Array.isArray(t?.categories)?t.categories:[]}}catch{return{query:``,categories:[]}}})(),[q,me]=(0,A.useState)(pe.query),[J,he]=(0,A.useState)(pe.categories);(0,A.useEffect)(()=>{try{localStorage.setItem(K,JSON.stringify({query:q,categories:J}))}catch{}},[q,J]);let ge=(0,A.useCallback)(e=>{he(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},[]),_e=(0,A.useCallback)(()=>{me(``),he([])},[]),ve=(0,A.useRef)(null),{projects:ye,setActiveProjectId:be}=ne(),xe=(0,A.useCallback)(e=>{fe(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),Y=(0,A.useCallback)(e=>{if(e.length===0)return;let t=new Blob([JSON.stringify(oe(e),null,2)],{type:`application/json`}),n=URL.createObjectURL(t),r=document.createElement(`a`);r.href=n,r.download=ce(e),r.click(),URL.revokeObjectURL(n)},[]),X=(0,A.useCallback)(async()=>{try{let[e,t]=await Promise.all([p.list(),p.templates()]);g(e),S(t)}catch{f.error(e(`errors.load`))}finally{P(!1)}try{j(await p.factoryLoops())}catch{j([])}},[e]);(0,A.useEffect)(()=>{X()},[X]);let Se=(0,A.useCallback)(async t=>{try{let n=se(await t.text()),{imported:r,skipped:i}=await p.importLoops(n);await X(),r.length&&f.success(e(`import.done`,{count:r.length})),i.length&&f.warning(e(`import.skipped`,{count:i.length,names:i.join(`, `)})),!r.length&&!i.length&&f.warning(e(`import.invalid`))}catch(t){let n=t instanceof Error?t.message:``;f.error(e(n===`invalid-json`||n===`no-loops`?`import.invalid`:`errors.save`))}},[X,e]),Z=(0,A.useCallback)(e=>t(`/loops/${e}/edit`),[t]),Ce=(0,A.useCallback)(async()=>{try{Z((await p.create({name:e(`newLoopName`)})).id)}catch{f.error(e(`errors.save`))}},[e,Z]),we=(0,A.useCallback)(async t=>{try{Z((await p.fromTemplate(t)).id)}catch{f.error(e(`errors.save`))}},[e,Z]),Te=(0,A.useCallback)(async t=>{try{Z((await p.forkFactory(t)).id)}catch{f.error(e(`errors.save`))}},[e,Z]),Ee=(0,A.useCallback)(async({projectId:n,provider:r,model:i,effort:a})=>{let o=U;if(o){W(null);try{let{loopRunId:s}=await p.runStandalone(n,o.id,{aiEngine:r,model:i,reasoning_effort:a});be(n),t(`/jobs/${s}`),f.success(e(`run.launched`,{name:o.name}))}catch{f.error(e(`errors.save`))}}},[U,t,be,e]),De=(0,A.useCallback)(e=>{H(`fork`),B({id:e.id,name:i(e.id,e.name),description:d(e.id,e.description),tags:e.claudeOnly?[`claude-only`]:[],graph:e.graph})},[i,d]),Oe=(0,A.useCallback)(async t=>{try{await p.publish(t),await X()}catch(t){t instanceof r?f.error(e(`errors.publishInvalid`)):f.error(e(`errors.save`))}},[e,X]),ke=(0,A.useCallback)(async t=>{try{await p.unpublish(t),await X()}catch{f.error(e(`errors.save`))}},[e,X]),Ae=(0,A.useCallback)(async t=>{try{await p.duplicate(t),await X()}catch{f.error(e(`errors.save`))}},[e,X]),je=(0,A.useCallback)(e=>I(e),[]),Me=(0,A.useCallback)(async()=>{let t=F;if(t){I(null);try{await p.remove(t),await X()}catch{f.error(e(`errors.save`))}}},[F,e,X]),Q=m.filter(e=>e.status===`draft`),$=m.filter(e=>e.status===`published`),Ne=ue(x),Pe=le(x.map(t=>({...t,searchTerms:`${i(t.id,t.name)} ${d(t.id,t.description)} ${t.category?e(`categories.${t.category}`,{defaultValue:t.category}):``}`})),{query:q,categories:J}),Fe=q.trim()!==``||J.length>0;return(0,N.jsxs)(`div`,{className:`h-full overflow-y-auto`,children:[(0,N.jsxs)(`div`,{className:`max-w-5xl mx-auto px-6 py-6`,children:[(0,N.jsxs)(`div`,{className:`flex items-start justify-between mb-6`,children:[(0,N.jsxs)(`div`,{className:`flex items-center gap-2.5`,children:[(0,N.jsx)(E,{className:`w-5 h-5 text-accent-primary`}),(0,N.jsxs)(`div`,{children:[(0,N.jsx)(`h1`,{className:`text-lg font-semibold text-foreground`,children:e(`title`)}),(0,N.jsx)(`p`,{className:`text-xs text-muted-foreground mt-0.5`,children:e(`subtitle`)})]})]}),(0,N.jsxs)(`div`,{className:`flex items-center gap-2`,children:[G.size>0&&(0,N.jsxs)(`button`,{type:`button`,onClick:()=>Y(m.filter(e=>G.has(e.id))),className:`inline-flex items-center gap-1.5 h-8 px-3 rounded-md text-xs font-medium border border-border text-foreground hover:bg-muted`,children:[(0,N.jsx)(ie,{className:`w-3.5 h-3.5`}),e(`actions.export`),` (`,G.size,`)`]}),(0,N.jsxs)(`button`,{type:`button`,onClick:()=>ve.current?.click(),className:`inline-flex items-center gap-1.5 h-8 px-3 rounded-md text-xs font-medium border border-border text-foreground hover:bg-muted`,children:[(0,N.jsx)(ae,{className:`w-3.5 h-3.5`}),e(`actions.import`)]}),(0,N.jsx)(`input`,{ref:ve,type:`file`,accept:`application/json,.json`,className:`hidden`,onChange:e=>{let t=e.target.files?.[0];t&&Se(t),e.target.value=``}}),(0,N.jsxs)(`button`,{type:`button`,onClick:Ce,className:`inline-flex items-center gap-1.5 h-8 px-3 rounded-md text-xs font-medium bg-accent-primary text-white hover:bg-accent-primary/90`,children:[(0,N.jsx)(_,{className:`w-3.5 h-3.5`}),e(`newLoop`)]})]})]}),M?(0,N.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`…`}):(0,N.jsxs)(`div`,{className:`space-y-8`,children:[Q.length===0&&$.length===0&&(0,N.jsxs)(`div`,{className:`rounded-lg border border-dashed border-border p-8 text-center`,children:[(0,N.jsx)(`p`,{className:`text-sm font-medium text-foreground`,children:e(`empty.title`)}),(0,N.jsx)(`p`,{className:`text-xs text-muted-foreground mt-1`,children:e(`empty.body`)})]}),$.length>0&&(0,N.jsx)(L,{title:e(`sections.published`),children:$.map(e=>(0,N.jsx)(R,{loop:e,selected:G.has(e.id),onToggleSelect:()=>xe(e.id),onEdit:()=>Z(e.id),onUnpublish:()=>ke(e.id),onDuplicate:()=>Ae(e.id),onExport:()=>Y([e]),onDelete:()=>je(e.id),onRun:a(e.graph)?void 0:()=>W(e)},e.id))}),Q.length>0&&(0,N.jsx)(L,{title:e(`sections.drafts`),children:Q.map(e=>(0,N.jsx)(R,{loop:e,selected:G.has(e.id),onToggleSelect:()=>xe(e.id),onEdit:()=>Z(e.id),onPublish:()=>Oe(e.id),onDuplicate:()=>Ae(e.id),onExport:()=>Y([e]),onDelete:()=>je(e.id)},e.id))}),k.length>0&&(0,N.jsx)(L,{title:e(`sections.builtIn`),children:k.map(t=>(0,N.jsxs)(`div`,{className:`rounded-lg border border-border bg-card p-3 flex flex-col gap-2`,"data-testid":`factory-loop-card`,children:[(0,N.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,N.jsx)(E,{className:`w-3.5 h-3.5 text-accent-primary`}),(0,N.jsx)(`span`,{className:`text-sm font-medium text-foreground`,children:i(t.id,t.name)}),(0,N.jsx)(`span`,{className:`ml-auto px-1.5 py-0.5 rounded text-[10px] bg-muted text-muted-foreground`,children:e(`builtInBadge`)})]}),(0,N.jsx)(`p`,{className:`text-xs text-muted-foreground flex-1`,children:d(t.id,t.description)}),(0,N.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,N.jsxs)(`button`,{type:`button`,onClick:()=>De(t),className:`inline-flex items-center gap-1.5 h-7 px-2.5 rounded-md text-xs border border-border hover:bg-muted text-foreground`,children:[(0,N.jsx)(l,{className:`w-3 h-3`}),e(`actions.preview`)]}),(0,N.jsxs)(`button`,{type:`button`,onClick:()=>void Te(t.id),className:`inline-flex items-center gap-1.5 h-7 px-2.5 rounded-md text-xs border border-border hover:bg-muted text-foreground`,children:[(0,N.jsx)(b,{className:`w-3 h-3`}),e(`actions.fork`)]})]})]},t.id))}),x.length>0&&(0,N.jsxs)(`section`,{children:[(0,N.jsxs)(`div`,{className:`flex items-center justify-between gap-3 mb-2 flex-wrap`,children:[(0,N.jsx)(`h2`,{className:`text-xs font-semibold uppercase tracking-wide text-muted-foreground`,children:e(`sections.templates`)}),(0,N.jsx)(`input`,{type:`search`,value:q,onChange:e=>me(e.target.value),placeholder:e(`gallery.search`),"aria-label":e(`gallery.search`),"data-testid":`template-search`,className:`h-7 w-48 max-w-full rounded-md border border-border bg-surface/40 px-2.5 text-xs text-foreground placeholder:text-muted-foreground/70 focus:outline-none focus:ring-1 focus:ring-accent-primary`})]}),(0,N.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5 mb-3`,"data-testid":`category-chips`,children:[Ne.map(({category:t,count:n})=>{let r=J.includes(t);return(0,N.jsxs)(`button`,{type:`button`,"aria-pressed":r,onClick:()=>ge(t),className:O(`inline-flex items-center gap-1 h-6 px-2 rounded-full text-[11px] border transition-colors`,r?`border-accent-primary bg-accent-primary/15 text-accent-primary`:`border-border bg-surface/40 text-muted-foreground hover:text-foreground hover:bg-muted`),children:[e(`categories.${t}`,{defaultValue:t}),(0,N.jsx)(`span`,{className:`opacity-60 tabular-nums`,children:n})]},t)}),Fe&&(0,N.jsx)(`button`,{type:`button`,onClick:_e,className:`inline-flex items-center h-6 px-2 rounded-full text-[11px] text-accent-primary hover:underline`,children:e(`gallery.clearFilter`)})]}),Pe.length===0?(0,N.jsxs)(`div`,{className:`rounded-lg border border-dashed border-border p-6 text-center`,"data-testid":`template-empty`,children:[(0,N.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e(`gallery.noResults`)}),(0,N.jsx)(`button`,{type:`button`,onClick:_e,className:`mt-2 text-xs text-accent-primary hover:underline`,children:e(`gallery.clearFilter`)})]}):(0,N.jsx)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-3`,children:Pe.map(t=>(0,N.jsxs)(`div`,{className:`rounded-lg border border-border bg-card p-3 flex flex-col gap-2`,"data-testid":`template-card`,children:[(0,N.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,N.jsx)(w,{className:`w-3.5 h-3.5 text-accent-highlight flex-shrink-0`}),(0,N.jsx)(`span`,{className:`text-sm font-medium text-foreground truncate`,children:i(t.id,t.name)}),t.category&&(0,N.jsx)(`span`,{className:`ml-auto px-1.5 py-0.5 rounded text-[10px] bg-accent-info/15 text-accent-info flex-shrink-0`,children:e(`categories.${t.category}`,{defaultValue:t.category})})]}),(0,N.jsx)(`p`,{className:`text-xs text-muted-foreground flex-1`,children:d(t.id,t.description)}),(0,N.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1`,children:[a(t.graph)?(0,N.jsx)(`span`,{title:e(`gallery.needsSpecHint`),className:`px-1.5 py-0.5 rounded text-[10px] bg-accent-secondary/15 text-accent-secondary`,children:e(`gallery.needsSpec`)}):(0,N.jsx)(`span`,{title:e(`gallery.standaloneHint`),className:`px-1.5 py-0.5 rounded text-[10px] bg-accent-success/15 text-accent-success`,children:e(`gallery.standalone`)}),t.tags.map(e=>(0,N.jsx)(`span`,{className:`px-1.5 py-0.5 rounded text-[10px] bg-muted text-muted-foreground`,children:e},e))]}),(0,N.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,N.jsxs)(`button`,{type:`button`,onClick:()=>{H(`use`),B({...t,name:i(t.id,t.name),description:d(t.id,t.description)})},className:`inline-flex items-center gap-1.5 h-7 px-2.5 rounded-md text-xs border border-border hover:bg-muted text-foreground`,children:[(0,N.jsx)(l,{className:`w-3 h-3`}),e(`actions.preview`)]}),(0,N.jsxs)(`button`,{type:`button`,onClick:()=>we(t.id),className:`inline-flex items-center gap-1.5 h-7 px-2.5 rounded-md text-xs border border-border hover:bg-muted text-foreground`,children:[(0,N.jsx)(v,{className:`w-3 h-3`}),e(`actions.use`)]})]})]},t.id))})]})]})]}),(0,N.jsx)(o,{open:F!==null,onOpenChange:e=>{e||I(null)},children:(0,N.jsxs)(u,{className:`max-w-sm`,children:[(0,N.jsxs)(y,{children:[(0,N.jsxs)(ee,{className:`flex items-center gap-2`,children:[(0,N.jsx)(C,{className:`w-4 h-4 text-destructive`}),m.find(e=>e.id===F)?.name??e(`actions.delete`)]}),(0,N.jsx)(D,{children:e(`confirmDelete`)})]}),(0,N.jsxs)(c,{children:[(0,N.jsx)(T,{variant:`ghost`,onClick:()=>I(null),children:e(`common:actions.cancel`)}),(0,N.jsx)(T,{variant:`destructive`,onClick:()=>void Me(),children:e(`common:actions.delete`)})]})]})}),(0,N.jsx)(re,{template:z,mode:V,onClose:()=>B(null),onUse:e=>{B(null),V===`fork`?Te(e):we(e)}}),(0,N.jsx)(de,{loop:U?{id:U.id,name:U.name}:null,projects:ye.map(e=>({id:e.id,name:e.name,providers:te(e)})),onClose:()=>W(null),onExecute:Ee})]})}function L({title:e,children:t}){return(0,N.jsxs)(`section`,{children:[(0,N.jsx)(`h2`,{className:`text-xs font-semibold uppercase tracking-wide text-muted-foreground mb-2`,children:e}),(0,N.jsx)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-3`,children:t})]})}function R({loop:e,selected:n,onToggleSelect:r,onEdit:a,onPublish:o,onUnpublish:s,onDuplicate:c,onExport:l,onDelete:u,onRun:d}){let{t:f}=h(`loops`),p=e.graph?.nodes?.length??0;return(0,N.jsxs)(`div`,{className:`rounded-lg border border-border bg-card p-3 flex flex-col gap-2`,"data-testid":`loop-card`,children:[(0,N.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,N.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,N.jsx)(`input`,{type:`checkbox`,checked:n,onChange:r,"aria-label":f(`actions.select`,{name:e.name}),className:`accent-accent-primary flex-shrink-0`}),(0,N.jsx)(`span`,{className:`text-sm font-medium text-foreground truncate`,children:e.name})]}),(0,N.jsx)(F,{status:e.status})]}),(0,N.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:f(`card.nodes`,{count:p})}),(0,N.jsxs)(`div`,{className:`flex items-center gap-1 flex-wrap`,children:[d&&(0,N.jsx)(z,{icon:i,label:f(`actions.run`),onClick:d}),(0,N.jsx)(z,{icon:S,label:f(`actions.edit`),onClick:a}),o&&(0,N.jsx)(z,{icon:t,label:f(`actions.publish`),onClick:o}),s&&(0,N.jsx)(z,{icon:v,label:f(`actions.unpublish`),onClick:s}),(0,N.jsx)(z,{icon:b,label:f(`actions.duplicate`),onClick:c}),(0,N.jsx)(z,{icon:ie,label:f(`actions.export`),onClick:l}),(0,N.jsx)(z,{icon:C,label:f(`actions.delete`),onClick:u,danger:!0})]})]})}function z({icon:e,label:t,onClick:n,danger:r}){return(0,N.jsx)(`button`,{type:`button`,onClick:n,title:t,"aria-label":t,className:O(`inline-flex items-center justify-center w-7 h-7 rounded-md transition-colors`,r?`text-muted-foreground hover:text-destructive hover:bg-destructive/10`:`text-muted-foreground hover:text-foreground hover:bg-muted`),children:(0,N.jsx)(e,{className:`w-3.5 h-3.5`})})}export{I as default};
1
+ import{a as e}from"./chunk-BNv3lrIs.js";import{t}from"./upload-CRuuzzvp.js";import{Cn as n,D as r,Dt as i,E as a,G as o,Hn as s,J as c,Jt as l,K as u,Kn as d,Ln as f,O as p,R as m,Rn as h,T as g,Tt as _,X as ee,Xt as v,Y as y,Zt as b,_n as te,gn as x,kt as S,lt as C,mt as w,nt as T,ot as E,q as D,rt as O,vn as ne,w as k}from"./index-Dw1N2-ci.js";import{n as re}from"./TemplatePreviewModal-DcHFbLA8.js";var ie=x(`file-down`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M12 18v-6`,key:`17g6i2`}],[`path`,{d:`m9 15 3 3 3-3`,key:`1npd3o`}]]),ae=x(`file-up`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M12 12v6`,key:`3ahymv`}],[`path`,{d:`m15 15-3-3-3 3`,key:`15xj92`}]]),A=e(d(),1);function oe(e){return{specrailsLoops:1,loops:e.map(e=>({name:e.name,description:e.description,graph:e.graph}))}}function j(e){let t=e;return!!t&&typeof t.name==`string`&&!!t.graph&&typeof t.graph==`object`}function se(e){let t;try{t=JSON.parse(e)}catch{throw Error(`invalid-json`)}let n=(Array.isArray(t)?t:Array.isArray(t?.loops)?t.loops:j(t)?[t]:[]).filter(j);if(n.length===0)throw Error(`no-loops`);return n.map(e=>({name:e.name,description:e.description??null,graph:e.graph}))}function ce(e){return e.length===1?`${e[0].name.trim().toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``)||`loop`}.loop.json`:`specrails-loops-${e.length}.json`}var M=[`API`,`Automation`,`CI`,`Database`,`Debugging`,`DevOps`,`Docs`,`Git`,`Maintenance`,`Performance`,`Planning`,`Quality`,`Review`,`Security`,`Testing`];function le(e,t){let n=t.query.trim().toLowerCase(),r=t.categories;return e.filter(e=>r.length>0&&!(e.category&&r.includes(e.category))?!1:n?`${e.name} ${e.description} ${e.tags.join(` `)} ${e.category??``} ${e.searchTerms??``}`.toLowerCase().includes(n):!0)}function ue(e){let t=new Map;for(let n of e)n.category&&t.set(n.category,(t.get(n.category)??0)+1);let n=[];for(let e of M){let r=t.get(e);r&&(n.push({category:e,count:r}),t.delete(e))}for(let e of[...t.keys()].sort())n.push({category:e,count:t.get(e)});return n}var N=n();function de({loop:e,projects:t,onClose:n,onExecute:r}){let{t:a}=h(`loops`),s=e!==null,[l,d]=(0,A.useState)(``),[f,p]=(0,A.useState)(``),[_,v]=(0,A.useState)(``),[b,te]=(0,A.useState)(`medium`),x=t.find(e=>e.id===(l||t[0]?.id)),S=(0,A.useMemo)(()=>x?.providers??(x?.provider?[x.provider]:[]),[x]),C=f||S[0]||``,w=(0,A.useMemo)(()=>g(C),[C]),E=_||k(C),O=C?m(C):!1;return(0,N.jsx)(o,{open:s,onOpenChange:e=>{e||n()},children:(0,N.jsx)(u,{movableResizable:!0,className:`max-w-sm`,children:e&&(0,N.jsxs)(N.Fragment,{children:[(0,N.jsxs)(y,{children:[(0,N.jsx)(ee,{children:a(`run.title`,{name:e.name})}),(0,N.jsx)(D,{children:a(`run.subtitle`)})]}),(0,N.jsx)(`label`,{className:`block text-[11px] font-medium text-muted-foreground`,children:a(`run.project`)}),t.length===0?(0,N.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:a(`run.noProjects`)}):(0,N.jsx)(`select`,{"aria-label":a(`run.project`),"data-testid":`run-project-select`,value:l||t[0]?.id,onChange:e=>{d(e.target.value),p(``),v(``)},className:`w-full text-xs rounded border border-border bg-transparent px-2 py-1 text-foreground focus:outline-none focus:ring-1 focus:ring-accent-primary/40`,children:t.map(e=>(0,N.jsx)(`option`,{value:e.id,children:e.name},e.id))}),S.length>1&&(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(`label`,{className:`block text-[11px] font-medium text-muted-foreground`,children:a(`run.provider`)}),(0,N.jsx)(`select`,{"aria-label":a(`run.provider`),value:C,onChange:e=>{p(e.target.value),v(``)},className:`w-full text-xs rounded border border-border bg-transparent px-2 py-1 text-foreground focus:outline-none focus:ring-1 focus:ring-accent-primary/40`,children:S.map(e=>(0,N.jsx)(`option`,{value:e,children:e},e))})]}),w.length>0&&(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(`label`,{className:`block text-[11px] font-medium text-muted-foreground`,children:a(`run.model`)}),(0,N.jsx)(`select`,{"aria-label":a(`run.model`),"data-testid":`run-model-select`,value:E,onChange:e=>v(e.target.value),className:`w-full text-xs rounded border border-border bg-transparent px-2 py-1 text-foreground focus:outline-none focus:ring-1 focus:ring-accent-primary/40`,children:w.map(e=>(0,N.jsx)(`option`,{value:e.value,children:e.label},e.value))})]}),O&&(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(`label`,{className:`block text-[11px] font-medium text-muted-foreground`,children:a(`run.effort`)}),(0,N.jsxs)(`select`,{"aria-label":a(`run.effort`),value:b,onChange:e=>te(e.target.value),className:`w-full text-xs rounded border border-border bg-transparent px-2 py-1 text-foreground focus:outline-none focus:ring-1 focus:ring-accent-primary/40`,children:[(0,N.jsx)(`option`,{value:`low`,children:`low`}),(0,N.jsx)(`option`,{value:`medium`,children:`medium`}),(0,N.jsx)(`option`,{value:`high`,children:`high`})]})]}),(0,N.jsxs)(c,{children:[(0,N.jsx)(T,{variant:`ghost`,onClick:n,children:a(`common:actions.cancel`)}),(0,N.jsxs)(T,{onClick:()=>{let e=l||t[0]?.id;e&&r({projectId:e,provider:S.length>1?C:void 0,model:w.length>0?E:void 0,effort:O?b:void 0})},disabled:t.length===0,children:[(0,N.jsx)(i,{className:`w-3.5 h-3.5 mr-1.5`}),a(`run.execute`)]})]})]})})})}var P={draft:`bg-accent-secondary/15 text-accent-secondary ring-accent-secondary/40`,published:`bg-accent-success/15 text-accent-success ring-accent-success/40`};function F({status:e}){let{t}=h(`loops`);return(0,N.jsx)(`span`,{className:O(`inline-flex items-center px-1.5 py-0.5 rounded text-[10px] font-medium ring-1 ring-inset`,P[e]),children:t(`status.${e}`)})}function I(){let{t:e}=h(`loops`),t=s(),n=(0,A.useCallback)(e=>e.replace(/:/g,`_`),[]),i=(0,A.useCallback)((t,r)=>e(`catalog.${n(t)}.name`,{defaultValue:r}),[e,n]),d=(0,A.useCallback)((t,r)=>e(`catalog.${n(t)}.description`,{defaultValue:r}),[e,n]),[m,g]=(0,A.useState)([]),[x,S]=(0,A.useState)([]),[k,j]=(0,A.useState)([]),[M,P]=(0,A.useState)(!0),[F,I]=(0,A.useState)(null),[z,B]=(0,A.useState)(null),[V,H]=(0,A.useState)(`use`),[U,W]=(0,A.useState)(null),[G,fe]=(0,A.useState)(new Set),K=`specrails-desktop:loop-template-filter`,pe=(()=>{try{let e=localStorage.getItem(K),t=e?JSON.parse(e):null;return{query:typeof t?.query==`string`?t.query:``,categories:Array.isArray(t?.categories)?t.categories:[]}}catch{return{query:``,categories:[]}}})(),[q,me]=(0,A.useState)(pe.query),[J,he]=(0,A.useState)(pe.categories);(0,A.useEffect)(()=>{try{localStorage.setItem(K,JSON.stringify({query:q,categories:J}))}catch{}},[q,J]);let ge=(0,A.useCallback)(e=>{he(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},[]),_e=(0,A.useCallback)(()=>{me(``),he([])},[]),ve=(0,A.useRef)(null),{projects:ye,setActiveProjectId:be}=ne(),xe=(0,A.useCallback)(e=>{fe(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),Y=(0,A.useCallback)(e=>{if(e.length===0)return;let t=new Blob([JSON.stringify(oe(e),null,2)],{type:`application/json`}),n=URL.createObjectURL(t),r=document.createElement(`a`);r.href=n,r.download=ce(e),r.click(),URL.revokeObjectURL(n)},[]),X=(0,A.useCallback)(async()=>{try{let[e,t]=await Promise.all([p.list(),p.templates()]);g(e),S(t)}catch{f.error(e(`errors.load`))}finally{P(!1)}try{j(await p.factoryLoops())}catch{j([])}},[e]);(0,A.useEffect)(()=>{X()},[X]);let Se=(0,A.useCallback)(async t=>{try{let n=se(await t.text()),{imported:r,skipped:i}=await p.importLoops(n);await X(),r.length&&f.success(e(`import.done`,{count:r.length})),i.length&&f.warning(e(`import.skipped`,{count:i.length,names:i.join(`, `)})),!r.length&&!i.length&&f.warning(e(`import.invalid`))}catch(t){let n=t instanceof Error?t.message:``;f.error(e(n===`invalid-json`||n===`no-loops`?`import.invalid`:`errors.save`))}},[X,e]),Z=(0,A.useCallback)(e=>t(`/loops/${e}/edit`),[t]),Ce=(0,A.useCallback)(async()=>{try{Z((await p.create({name:e(`newLoopName`)})).id)}catch{f.error(e(`errors.save`))}},[e,Z]),we=(0,A.useCallback)(async t=>{try{Z((await p.fromTemplate(t)).id)}catch{f.error(e(`errors.save`))}},[e,Z]),Te=(0,A.useCallback)(async t=>{try{Z((await p.forkFactory(t)).id)}catch{f.error(e(`errors.save`))}},[e,Z]),Ee=(0,A.useCallback)(async({projectId:n,provider:r,model:i,effort:a})=>{let o=U;if(o){W(null);try{let{loopRunId:s}=await p.runStandalone(n,o.id,{aiEngine:r,model:i,reasoning_effort:a});be(n),t(`/jobs/${s}`),f.success(e(`run.launched`,{name:o.name}))}catch{f.error(e(`errors.save`))}}},[U,t,be,e]),De=(0,A.useCallback)(e=>{H(`fork`),B({id:e.id,name:i(e.id,e.name),description:d(e.id,e.description),tags:e.claudeOnly?[`claude-only`]:[],graph:e.graph})},[i,d]),Oe=(0,A.useCallback)(async t=>{try{await p.publish(t),await X()}catch(t){t instanceof r?f.error(e(`errors.publishInvalid`)):f.error(e(`errors.save`))}},[e,X]),ke=(0,A.useCallback)(async t=>{try{await p.unpublish(t),await X()}catch{f.error(e(`errors.save`))}},[e,X]),Ae=(0,A.useCallback)(async t=>{try{await p.duplicate(t),await X()}catch{f.error(e(`errors.save`))}},[e,X]),je=(0,A.useCallback)(e=>I(e),[]),Me=(0,A.useCallback)(async()=>{let t=F;if(t){I(null);try{await p.remove(t),await X()}catch{f.error(e(`errors.save`))}}},[F,e,X]),Q=m.filter(e=>e.status===`draft`),$=m.filter(e=>e.status===`published`),Ne=ue(x),Pe=le(x.map(t=>({...t,searchTerms:`${i(t.id,t.name)} ${d(t.id,t.description)} ${t.category?e(`categories.${t.category}`,{defaultValue:t.category}):``}`})),{query:q,categories:J}),Fe=q.trim()!==``||J.length>0;return(0,N.jsxs)(`div`,{className:`h-full overflow-y-auto`,children:[(0,N.jsxs)(`div`,{className:`max-w-5xl mx-auto px-6 py-6`,children:[(0,N.jsxs)(`div`,{className:`flex items-start justify-between mb-6`,children:[(0,N.jsxs)(`div`,{className:`flex items-center gap-2.5`,children:[(0,N.jsx)(E,{className:`w-5 h-5 text-accent-primary`}),(0,N.jsxs)(`div`,{children:[(0,N.jsx)(`h1`,{className:`text-lg font-semibold text-foreground`,children:e(`title`)}),(0,N.jsx)(`p`,{className:`text-xs text-muted-foreground mt-0.5`,children:e(`subtitle`)})]})]}),(0,N.jsxs)(`div`,{className:`flex items-center gap-2`,children:[G.size>0&&(0,N.jsxs)(`button`,{type:`button`,onClick:()=>Y(m.filter(e=>G.has(e.id))),className:`inline-flex items-center gap-1.5 h-8 px-3 rounded-md text-xs font-medium border border-border text-foreground hover:bg-muted`,children:[(0,N.jsx)(ie,{className:`w-3.5 h-3.5`}),e(`actions.export`),` (`,G.size,`)`]}),(0,N.jsxs)(`button`,{type:`button`,onClick:()=>ve.current?.click(),className:`inline-flex items-center gap-1.5 h-8 px-3 rounded-md text-xs font-medium border border-border text-foreground hover:bg-muted`,children:[(0,N.jsx)(ae,{className:`w-3.5 h-3.5`}),e(`actions.import`)]}),(0,N.jsx)(`input`,{ref:ve,type:`file`,accept:`application/json,.json`,className:`hidden`,onChange:e=>{let t=e.target.files?.[0];t&&Se(t),e.target.value=``}}),(0,N.jsxs)(`button`,{type:`button`,onClick:Ce,className:`inline-flex items-center gap-1.5 h-8 px-3 rounded-md text-xs font-medium bg-accent-primary text-white hover:bg-accent-primary/90`,children:[(0,N.jsx)(_,{className:`w-3.5 h-3.5`}),e(`newLoop`)]})]})]}),M?(0,N.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`…`}):(0,N.jsxs)(`div`,{className:`space-y-8`,children:[Q.length===0&&$.length===0&&(0,N.jsxs)(`div`,{className:`rounded-lg border border-dashed border-border p-8 text-center`,children:[(0,N.jsx)(`p`,{className:`text-sm font-medium text-foreground`,children:e(`empty.title`)}),(0,N.jsx)(`p`,{className:`text-xs text-muted-foreground mt-1`,children:e(`empty.body`)})]}),$.length>0&&(0,N.jsx)(L,{title:e(`sections.published`),children:$.map(e=>(0,N.jsx)(R,{loop:e,selected:G.has(e.id),onToggleSelect:()=>xe(e.id),onEdit:()=>Z(e.id),onUnpublish:()=>ke(e.id),onDuplicate:()=>Ae(e.id),onExport:()=>Y([e]),onDelete:()=>je(e.id),onRun:a(e.graph)?void 0:()=>W(e)},e.id))}),Q.length>0&&(0,N.jsx)(L,{title:e(`sections.drafts`),children:Q.map(e=>(0,N.jsx)(R,{loop:e,selected:G.has(e.id),onToggleSelect:()=>xe(e.id),onEdit:()=>Z(e.id),onPublish:()=>Oe(e.id),onDuplicate:()=>Ae(e.id),onExport:()=>Y([e]),onDelete:()=>je(e.id)},e.id))}),k.length>0&&(0,N.jsx)(L,{title:e(`sections.builtIn`),children:k.map(t=>(0,N.jsxs)(`div`,{className:`rounded-lg border border-border bg-card p-3 flex flex-col gap-2`,"data-testid":`factory-loop-card`,children:[(0,N.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,N.jsx)(E,{className:`w-3.5 h-3.5 text-accent-primary`}),(0,N.jsx)(`span`,{className:`text-sm font-medium text-foreground`,children:i(t.id,t.name)}),(0,N.jsx)(`span`,{className:`ml-auto px-1.5 py-0.5 rounded text-[10px] bg-muted text-muted-foreground`,children:e(`builtInBadge`)})]}),(0,N.jsx)(`p`,{className:`text-xs text-muted-foreground flex-1`,children:d(t.id,t.description)}),(0,N.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,N.jsxs)(`button`,{type:`button`,onClick:()=>De(t),className:`inline-flex items-center gap-1.5 h-7 px-2.5 rounded-md text-xs border border-border hover:bg-muted text-foreground`,children:[(0,N.jsx)(l,{className:`w-3 h-3`}),e(`actions.preview`)]}),(0,N.jsxs)(`button`,{type:`button`,onClick:()=>void Te(t.id),className:`inline-flex items-center gap-1.5 h-7 px-2.5 rounded-md text-xs border border-border hover:bg-muted text-foreground`,children:[(0,N.jsx)(b,{className:`w-3 h-3`}),e(`actions.fork`)]})]})]},t.id))}),x.length>0&&(0,N.jsxs)(`section`,{children:[(0,N.jsxs)(`div`,{className:`flex items-center justify-between gap-3 mb-2 flex-wrap`,children:[(0,N.jsx)(`h2`,{className:`text-xs font-semibold uppercase tracking-wide text-muted-foreground`,children:e(`sections.templates`)}),(0,N.jsx)(`input`,{type:`search`,value:q,onChange:e=>me(e.target.value),placeholder:e(`gallery.search`),"aria-label":e(`gallery.search`),"data-testid":`template-search`,className:`h-7 w-48 max-w-full rounded-md border border-border bg-surface/40 px-2.5 text-xs text-foreground placeholder:text-muted-foreground/70 focus:outline-none focus:ring-1 focus:ring-accent-primary`})]}),(0,N.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5 mb-3`,"data-testid":`category-chips`,children:[Ne.map(({category:t,count:n})=>{let r=J.includes(t);return(0,N.jsxs)(`button`,{type:`button`,"aria-pressed":r,onClick:()=>ge(t),className:O(`inline-flex items-center gap-1 h-6 px-2 rounded-full text-[11px] border transition-colors`,r?`border-accent-primary bg-accent-primary/15 text-accent-primary`:`border-border bg-surface/40 text-muted-foreground hover:text-foreground hover:bg-muted`),children:[e(`categories.${t}`,{defaultValue:t}),(0,N.jsx)(`span`,{className:`opacity-60 tabular-nums`,children:n})]},t)}),Fe&&(0,N.jsx)(`button`,{type:`button`,onClick:_e,className:`inline-flex items-center h-6 px-2 rounded-full text-[11px] text-accent-primary hover:underline`,children:e(`gallery.clearFilter`)})]}),Pe.length===0?(0,N.jsxs)(`div`,{className:`rounded-lg border border-dashed border-border p-6 text-center`,"data-testid":`template-empty`,children:[(0,N.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e(`gallery.noResults`)}),(0,N.jsx)(`button`,{type:`button`,onClick:_e,className:`mt-2 text-xs text-accent-primary hover:underline`,children:e(`gallery.clearFilter`)})]}):(0,N.jsx)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-3`,children:Pe.map(t=>(0,N.jsxs)(`div`,{className:`rounded-lg border border-border bg-card p-3 flex flex-col gap-2`,"data-testid":`template-card`,children:[(0,N.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,N.jsx)(w,{className:`w-3.5 h-3.5 text-accent-highlight flex-shrink-0`}),(0,N.jsx)(`span`,{className:`text-sm font-medium text-foreground truncate`,children:i(t.id,t.name)}),t.category&&(0,N.jsx)(`span`,{className:`ml-auto px-1.5 py-0.5 rounded text-[10px] bg-accent-info/15 text-accent-info flex-shrink-0`,children:e(`categories.${t.category}`,{defaultValue:t.category})})]}),(0,N.jsx)(`p`,{className:`text-xs text-muted-foreground flex-1`,children:d(t.id,t.description)}),(0,N.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1`,children:[a(t.graph)?(0,N.jsx)(`span`,{title:e(`gallery.needsSpecHint`),className:`px-1.5 py-0.5 rounded text-[10px] bg-accent-secondary/15 text-accent-secondary`,children:e(`gallery.needsSpec`)}):(0,N.jsx)(`span`,{title:e(`gallery.standaloneHint`),className:`px-1.5 py-0.5 rounded text-[10px] bg-accent-success/15 text-accent-success`,children:e(`gallery.standalone`)}),t.tags.map(e=>(0,N.jsx)(`span`,{className:`px-1.5 py-0.5 rounded text-[10px] bg-muted text-muted-foreground`,children:e},e))]}),(0,N.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,N.jsxs)(`button`,{type:`button`,onClick:()=>{H(`use`),B({...t,name:i(t.id,t.name),description:d(t.id,t.description)})},className:`inline-flex items-center gap-1.5 h-7 px-2.5 rounded-md text-xs border border-border hover:bg-muted text-foreground`,children:[(0,N.jsx)(l,{className:`w-3 h-3`}),e(`actions.preview`)]}),(0,N.jsxs)(`button`,{type:`button`,onClick:()=>we(t.id),className:`inline-flex items-center gap-1.5 h-7 px-2.5 rounded-md text-xs border border-border hover:bg-muted text-foreground`,children:[(0,N.jsx)(v,{className:`w-3 h-3`}),e(`actions.use`)]})]})]},t.id))})]})]})]}),(0,N.jsx)(o,{open:F!==null,onOpenChange:e=>{e||I(null)},children:(0,N.jsxs)(u,{className:`max-w-sm`,children:[(0,N.jsxs)(y,{children:[(0,N.jsxs)(ee,{className:`flex items-center gap-2`,children:[(0,N.jsx)(C,{className:`w-4 h-4 text-destructive`}),m.find(e=>e.id===F)?.name??e(`actions.delete`)]}),(0,N.jsx)(D,{children:e(`confirmDelete`)})]}),(0,N.jsxs)(c,{children:[(0,N.jsx)(T,{variant:`ghost`,onClick:()=>I(null),children:e(`common:actions.cancel`)}),(0,N.jsx)(T,{variant:`destructive`,onClick:()=>void Me(),children:e(`common:actions.delete`)})]})]})}),(0,N.jsx)(re,{template:z,mode:V,onClose:()=>B(null),onUse:e=>{B(null),V===`fork`?Te(e):we(e)}}),(0,N.jsx)(de,{loop:U?{id:U.id,name:U.name}:null,projects:ye.map(e=>({id:e.id,name:e.name,providers:te(e)})),onClose:()=>W(null),onExecute:Ee})]})}function L({title:e,children:t}){return(0,N.jsxs)(`section`,{children:[(0,N.jsx)(`h2`,{className:`text-xs font-semibold uppercase tracking-wide text-muted-foreground mb-2`,children:e}),(0,N.jsx)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-3`,children:t})]})}function R({loop:e,selected:n,onToggleSelect:r,onEdit:a,onPublish:o,onUnpublish:s,onDuplicate:c,onExport:l,onDelete:u,onRun:d}){let{t:f}=h(`loops`),p=e.graph?.nodes?.length??0;return(0,N.jsxs)(`div`,{className:`rounded-lg border border-border bg-card p-3 flex flex-col gap-2`,"data-testid":`loop-card`,children:[(0,N.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,N.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,N.jsx)(`input`,{type:`checkbox`,checked:n,onChange:r,"aria-label":f(`actions.select`,{name:e.name}),className:`accent-accent-primary flex-shrink-0`}),(0,N.jsx)(`span`,{className:`text-sm font-medium text-foreground truncate`,children:e.name})]}),(0,N.jsx)(F,{status:e.status})]}),(0,N.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:f(`card.nodes`,{count:p})}),(0,N.jsxs)(`div`,{className:`flex items-center gap-1 flex-wrap`,children:[d&&(0,N.jsx)(z,{icon:i,label:f(`actions.run`),onClick:d}),(0,N.jsx)(z,{icon:S,label:f(`actions.edit`),onClick:a}),o&&(0,N.jsx)(z,{icon:t,label:f(`actions.publish`),onClick:o}),s&&(0,N.jsx)(z,{icon:v,label:f(`actions.unpublish`),onClick:s}),(0,N.jsx)(z,{icon:b,label:f(`actions.duplicate`),onClick:c}),(0,N.jsx)(z,{icon:ie,label:f(`actions.export`),onClick:l}),(0,N.jsx)(z,{icon:C,label:f(`actions.delete`),onClick:u,danger:!0})]})]})}function z({icon:e,label:t,onClick:n,danger:r}){return(0,N.jsx)(`button`,{type:`button`,onClick:n,title:t,"aria-label":t,className:O(`inline-flex items-center justify-center w-7 h-7 rounded-md transition-colors`,r?`text-muted-foreground hover:text-destructive hover:bg-destructive/10`:`text-muted-foreground hover:text-foreground hover:bg-muted`),children:(0,N.jsx)(e,{className:`w-3.5 h-3.5`})})}export{I as default};
@@ -1 +1 @@
1
- import{a as e}from"./chunk-BNv3lrIs.js";import{Cn as t,G as n,K as r,Kn as i,Rn as a,X as o,Y as s,d as c,f as l,gt as u,hn as d,ht as f,m as p,p as m,pt as h,q as g,rt as _,st as v,vn as y}from"./index-B3ejvKSt.js";var b=e(i(),1),x=t(),S=[{id:`general`,icon:f,labelKey:`projectDialog.nav.general`},{id:`budget`,icon:v,labelKey:`projectDialog.nav.budget`},{id:`telemetry`,icon:d,labelKey:`projectDialog.nav.telemetry`},{id:`terminal`,icon:h,labelKey:`projectDialog.nav.terminal`}];function C({open:e,onClose:t}){let{t:i}=a(`settings`),{activeProjectId:d,projects:f}=y(),h=f.find(e=>e.id===d),[v,C]=(0,b.useState)(`general`),w=e=>_(`space-y-5`,v===e?``:`hidden`);return(0,x.jsx)(n,{open:e,onOpenChange:e=>{e||t()},children:(0,x.jsxs)(r,{movableResizable:!0,className:`flex max-w-5xl w-[92vw] h-[82vh] flex-col overflow-hidden`,children:[(0,x.jsxs)(s,{children:[(0,x.jsxs)(o,{className:`flex items-center gap-2`,children:[(0,x.jsx)(u,{className:`w-4 h-4`}),h?i(`projectDialog.title`,{name:h.name}):i(`page.title`)]}),(0,x.jsx)(g,{children:i(`projectDialog.description`)})]}),(0,x.jsxs)(`div`,{className:`flex min-h-0 flex-1 gap-5 py-2`,children:[(0,x.jsx)(`nav`,{className:`w-40 shrink-0 space-y-0.5 overflow-y-auto border-r border-border pr-2`,children:S.map(e=>{let t=e.icon;return(0,x.jsxs)(`button`,{type:`button`,onClick:()=>C(e.id),className:_(`flex w-full items-center gap-2 rounded-lg px-2.5 py-1.5 text-left text-xs transition-colors`,v===e.id?`bg-accent-primary/15 font-medium text-foreground`:`text-muted-foreground hover:bg-muted/40 hover:text-foreground`),children:[(0,x.jsx)(t,{className:`w-3.5 h-3.5 shrink-0`}),(0,x.jsx)(`span`,{className:`truncate`,children:i(e.labelKey)})]},e.id)})}),(0,x.jsxs)(`div`,{className:`min-w-0 flex-1 overflow-y-auto pr-1`,children:[(0,x.jsx)(`div`,{className:w(`general`),children:(0,x.jsx)(l,{})}),(0,x.jsx)(`div`,{className:w(`budget`),children:(0,x.jsx)(c,{})}),(0,x.jsx)(`div`,{className:w(`telemetry`),children:(0,x.jsx)(m,{})}),(0,x.jsx)(`div`,{className:w(`terminal`),children:(0,x.jsx)(p,{mode:`project`})})]})]})]})})}export{C as ProjectSettingsDialog};
1
+ import{a as e}from"./chunk-BNv3lrIs.js";import{Cn as t,G as n,K as r,Kn as i,Rn as a,X as o,Y as s,d as c,f as l,gt as u,hn as d,ht as f,m as p,p as m,pt as h,q as g,rt as _,st as v,vn as y}from"./index-Dw1N2-ci.js";var b=e(i(),1),x=t(),S=[{id:`general`,icon:f,labelKey:`projectDialog.nav.general`},{id:`budget`,icon:v,labelKey:`projectDialog.nav.budget`},{id:`telemetry`,icon:d,labelKey:`projectDialog.nav.telemetry`},{id:`terminal`,icon:h,labelKey:`projectDialog.nav.terminal`}];function C({open:e,onClose:t}){let{t:i}=a(`settings`),{activeProjectId:d,projects:f}=y(),h=f.find(e=>e.id===d),[v,C]=(0,b.useState)(`general`),w=e=>_(`space-y-5`,v===e?``:`hidden`);return(0,x.jsx)(n,{open:e,onOpenChange:e=>{e||t()},children:(0,x.jsxs)(r,{movableResizable:!0,className:`flex max-w-5xl w-[92vw] h-[82vh] flex-col overflow-hidden`,children:[(0,x.jsxs)(s,{children:[(0,x.jsxs)(o,{className:`flex items-center gap-2`,children:[(0,x.jsx)(u,{className:`w-4 h-4`}),h?i(`projectDialog.title`,{name:h.name}):i(`page.title`)]}),(0,x.jsx)(g,{children:i(`projectDialog.description`)})]}),(0,x.jsxs)(`div`,{className:`flex min-h-0 flex-1 gap-5 py-2`,children:[(0,x.jsx)(`nav`,{className:`w-40 shrink-0 space-y-0.5 overflow-y-auto border-r border-border pr-2`,children:S.map(e=>{let t=e.icon;return(0,x.jsxs)(`button`,{type:`button`,onClick:()=>C(e.id),className:_(`flex w-full items-center gap-2 rounded-lg px-2.5 py-1.5 text-left text-xs transition-colors`,v===e.id?`bg-accent-primary/15 font-medium text-foreground`:`text-muted-foreground hover:bg-muted/40 hover:text-foreground`),children:[(0,x.jsx)(t,{className:`w-3.5 h-3.5 shrink-0`}),(0,x.jsx)(`span`,{className:`truncate`,children:i(e.labelKey)})]},e.id)})}),(0,x.jsxs)(`div`,{className:`min-w-0 flex-1 overflow-y-auto pr-1`,children:[(0,x.jsx)(`div`,{className:w(`general`),children:(0,x.jsx)(l,{})}),(0,x.jsx)(`div`,{className:w(`budget`),children:(0,x.jsx)(c,{})}),(0,x.jsx)(`div`,{className:w(`telemetry`),children:(0,x.jsx)(m,{})}),(0,x.jsx)(`div`,{className:w(`terminal`),children:(0,x.jsx)(p,{mode:`project`})})]})]})]})})}export{C as ProjectSettingsDialog};