nebulosity 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (180) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +11 -11
  3. package/.next/diagnostics/route-bundle-stats.json +10 -10
  4. package/.next/fallback-build-manifest.json +3 -3
  5. package/.next/prerender-manifest.json +5 -5
  6. package/.next/server/app/_global-error/page/build-manifest.json +3 -3
  7. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  8. package/.next/server/app/_global-error.html +1 -1
  9. package/.next/server/app/_global-error.rsc +1 -1
  10. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  11. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  12. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  13. package/.next/server/app/_not-found/page/build-manifest.json +3 -3
  14. package/.next/server/app/_not-found/page/next-font-manifest.json +2 -3
  15. package/.next/server/app/_not-found/page.js +3 -2
  16. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  17. package/.next/server/app/_not-found.html +1 -1
  18. package/.next/server/app/_not-found.rsc +27 -20
  19. package/.next/server/app/_not-found.segments/_full.segment.rsc +27 -20
  20. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +34 -26
  21. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  22. package/.next/server/app/index.html +1 -1
  23. package/.next/server/app/index.rsc +29 -23
  24. package/.next/server/app/index.segments/__PAGE__.segment.rsc +33 -24
  25. package/.next/server/app/index.segments/_full.segment.rsc +29 -23
  26. package/.next/server/app/index.segments/_tree.segment.rsc +4 -5
  27. package/.next/server/app/page/build-manifest.json +3 -3
  28. package/.next/server/app/page/next-font-manifest.json +2 -3
  29. package/.next/server/app/page.js +4 -4
  30. package/.next/server/app/page_client-reference-manifest.js +1 -1
  31. package/.next/server/chunks/[root-of-the-server]__06blyow8irfw3._.js +3 -3
  32. package/.next/server/chunks/[root-of-the-server]__0bmqko-d8fd5k._.js +3 -3
  33. package/.next/server/chunks/[root-of-the-server]__0cmmlmvta4i0g._.js +3 -3
  34. package/.next/server/chunks/[root-of-the-server]__0jgr1dt1j95ku._.js +3 -3
  35. package/.next/server/chunks/[root-of-the-server]__0m0n163465-zb._.js +3 -3
  36. package/.next/server/chunks/[root-of-the-server]__0p7epsgp2b5m3._.js +3 -3
  37. package/.next/server/chunks/[root-of-the-server]__1i5e5sqg45ens._.js +3 -3
  38. package/.next/server/chunks/[root-of-the-server]__1vjt0neva-819._.js +3 -3
  39. package/.next/server/chunks/_0uqus0ehnijt-._.js +1 -1
  40. package/.next/server/chunks/lib_background_start_ts_11u_1uu8b9yuy._.js +1 -1
  41. package/.next/server/chunks/ssr/[root-of-the-server]__0_3l5tdzqy-td._.js +3 -0
  42. package/.next/server/chunks/ssr/[root-of-the-server]__10ockmlli-lun._.js +3 -0
  43. package/.next/server/chunks/ssr/{[root-of-the-server]__0dyligeswbb47._.js → [root-of-the-server]__16-gclvix9mjd._.js} +1 -1
  44. package/.next/server/chunks/ssr/[root-of-the-server]__1auodc3c0rppy._.js +3 -0
  45. package/.next/server/chunks/ssr/[root-of-the-server]__1cf6qt9agg_9-._.js +3 -3
  46. package/.next/server/chunks/ssr/[root-of-the-server]__1i9r59yk4i69p._.js +3 -0
  47. package/.next/server/chunks/ssr/[root-of-the-server]__1l3qp8u9yc_ig._.js +3 -0
  48. package/.next/server/chunks/ssr/_1p-0wsx9qfm68._.js +13 -0
  49. package/.next/server/chunks/ssr/app_map_18iu6j19jsqmu._.js +3 -0
  50. package/.next/server/chunks/ssr/node_modules_next_dist_1r3iqtbm45lqp._.js +3 -0
  51. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0q-w892nagajq.js +3 -0
  52. package/.next/server/middleware-build-manifest.js +11 -11
  53. package/.next/server/next-font-manifest.js +1 -1
  54. package/.next/server/next-font-manifest.json +4 -6
  55. package/.next/server/pages/404.html +1 -1
  56. package/.next/server/pages/500.html +1 -1
  57. package/.next/server/preview-props.json +3 -3
  58. package/.next/server/server-reference-manifest.js +1 -1
  59. package/.next/server/server-reference-manifest.json +1 -1
  60. package/.next/static/chunks/{1rljem7o1jtdo.js → 18kfexnrqek07.js} +1 -1
  61. package/.next/static/chunks/1hwbgd4nvvhg8.js +1 -0
  62. package/.next/static/chunks/25r4lkkf1shfo.css +3 -0
  63. package/.next/static/chunks/35ubvk2ivdjgs.js +1 -0
  64. package/.next/static/chunks/3ieqvmcg3hofj.js +31 -0
  65. package/.next/static/chunks/3w00e1w2125pp.js +11 -0
  66. package/.next/static/media/733da6bd8dac84c8-s.3hlisc-pwq13z.woff2 +0 -0
  67. package/.next/static/media/784318cea1dfcfa4-s.0-oo9_1x_xmvg.woff2 +0 -0
  68. package/.next/static/media/7e114457660b62ed-s.36fqqi66-3tjb.woff2 +0 -0
  69. package/.next/static/media/85e86a88f68a624a-s.357dd_6abeqge.woff2 +0 -0
  70. package/.next/static/media/9a321a2c78eff0b5-s.p.1bkzbscqrt8rl.woff2 +0 -0
  71. package/.next/static/media/9fecbd3e5ea9bccb-s.3_z45zcoc-xoz.woff2 +0 -0
  72. package/.next/static/media/c64053b510252f55-s.1kd-r_s9smv5m.woff2 +0 -0
  73. package/.next/static/media/c6a5c2fdc12da45c-s.p.17-aodiw50953.woff2 +0 -0
  74. package/.next/static/media/f263782c6a4bddee-s.1gyfqm5yhhzs7.woff2 +0 -0
  75. package/.next/trace +1 -1
  76. package/.next/trace-build +1 -1
  77. package/README.md +13 -4
  78. package/app/globals.css +91 -54
  79. package/app/layout.tsx +20 -11
  80. package/app/map/BackButton.tsx +5 -5
  81. package/app/map/BoxActions.tsx +20 -12
  82. package/app/map/Breadcrumb.tsx +132 -46
  83. package/app/map/DetailPanel.tsx +408 -297
  84. package/app/map/Explorer.tsx +268 -0
  85. package/app/map/Header.tsx +105 -0
  86. package/app/map/HelpDialog.tsx +37 -34
  87. package/app/map/Legend.tsx +19 -75
  88. package/app/map/LineCard.tsx +187 -0
  89. package/app/map/MapBox.tsx +73 -38
  90. package/app/map/MapCanvas.tsx +344 -115
  91. package/app/map/MapToolbar.tsx +377 -0
  92. package/app/map/MapView.tsx +217 -213
  93. package/app/map/RepoMenu.tsx +13 -12
  94. package/app/map/RoutedEdge.tsx +48 -16
  95. package/app/map/SearchPalette.tsx +6 -6
  96. package/app/map/SourceViewer.tsx +19 -17
  97. package/app/map/StatusBar.tsx +166 -0
  98. package/app/map/embed.ts +22 -2
  99. package/app/map/emphasis.ts +94 -8
  100. package/app/map/explorerRows.ts +85 -0
  101. package/app/map/flowNodes.ts +12 -7
  102. package/app/map/format.ts +2 -2
  103. package/app/map/history.ts +4 -3
  104. package/app/map/inspector.ts +113 -0
  105. package/app/map/labels.ts +66 -7
  106. package/app/map/narrow.ts +165 -85
  107. package/app/map/opening.ts +16 -0
  108. package/app/map/portals.ts +2 -2
  109. package/app/map/routes.ts +1060 -55
  110. package/app/map/runs.ts +108 -0
  111. package/app/map/shell.ts +91 -0
  112. package/app/map/shortcuts.ts +2 -1
  113. package/app/map/summaries.ts +41 -5
  114. package/app/map/text.ts +9 -1
  115. package/app/map/theme.ts +197 -0
  116. package/app/map/useDismiss.ts +20 -6
  117. package/app/map/useEditorBridge.ts +12 -1
  118. package/app/map/useThemeKind.ts +28 -0
  119. package/app/map/useWindowSize.ts +37 -0
  120. package/app/map/viewport.ts +134 -16
  121. package/app/map/weights.ts +80 -0
  122. package/app/page.tsx +3 -5
  123. package/lib/background/child.ts +2 -0
  124. package/lib/background/service.ts +26 -10
  125. package/lib/contracts.ts +25 -2
  126. package/lib/db/migrations/0011_plain_summaries_prompt_version.sql +1 -0
  127. package/lib/db/migrations/meta/0011_snapshot.json +1498 -0
  128. package/lib/db/migrations/meta/_journal.json +7 -0
  129. package/lib/db/schema.ts +2 -1
  130. package/lib/db/store/map.ts +6 -0
  131. package/lib/db/store/summaries.ts +14 -8
  132. package/lib/engine/describe.ts +2 -0
  133. package/lib/index/summarize/budget.ts +5 -2
  134. package/lib/index/summarize/claude.ts +19 -4
  135. package/lib/index/summarize/compare.ts +2 -2
  136. package/lib/index/summarize/plan.ts +73 -13
  137. package/lib/index/summarize/preview.ts +12 -9
  138. package/lib/index/summarize/prompts.ts +122 -25
  139. package/lib/index/summarize/run.ts +48 -18
  140. package/lib/index/summarize/snapshot.ts +7 -2
  141. package/lib/index/summarize/status.ts +3 -2
  142. package/lib/tools/text.ts +3 -2
  143. package/mcp/server.ts +1 -1
  144. package/package.json +4 -2
  145. package/scripts/commands/summarize-command.ts +27 -9
  146. package/.next/server/chunks/ssr/[root-of-the-server]__0ekw8p2ramybv._.js +0 -3
  147. package/.next/server/chunks/ssr/[root-of-the-server]__0fwbsqt9e2tr-._.js +0 -3
  148. package/.next/server/chunks/ssr/[root-of-the-server]__17_rqmx62cz59._.js +0 -3
  149. package/.next/server/chunks/ssr/[root-of-the-server]__1zfp6sltse4hf._.js +0 -3
  150. package/.next/server/chunks/ssr/_1d2woi6toj_0_._.js +0 -3
  151. package/.next/server/chunks/ssr/_1wfc1zz26g5ji._.js +0 -9
  152. package/.next/server/chunks/ssr/app_0gw6epmxyea3q._.js +0 -3
  153. package/.next/server/chunks/ssr/node_modules_@swc_helpers_cjs__interop_require_default_cjs_1ztp13a5szri_._.js +0 -3
  154. package/.next/server/chunks/ssr/node_modules_next_dist_1c5t_vsn6u8fr._.js +0 -3
  155. package/.next/static/chunks/02x9pxyl2d8om.css +0 -3
  156. package/.next/static/chunks/0p-0bv2dzer18.js +0 -7
  157. package/.next/static/chunks/10u7p2gj02qay.js +0 -1
  158. package/.next/static/chunks/31qp8jfkw0x2h.js +0 -31
  159. package/.next/static/media/123d516c9baeb953-s.1qc6dx89jd2qv.woff2 +0 -0
  160. package/.next/static/media/41ba59f553543ecf-s.3cb5lpr2l6xud.woff2 +0 -0
  161. package/.next/static/media/44ed10da57ebfb0e-s.2y65deuc30pmy.woff2 +0 -0
  162. package/.next/static/media/48eea41d8317494f-s.p.0wiir8udbzjvx.woff2 +0 -0
  163. package/.next/static/media/49b1d53681a91a99-s.1yd4_i3e35931.woff2 +0 -0
  164. package/.next/static/media/67bba87670b402d1-s.1u30mmyq6lnsd.woff2 +0 -0
  165. package/.next/static/media/6fca7e74603dd412-s.02z5rrbg5nt92.woff2 +0 -0
  166. package/.next/static/media/73263b2957b73100-s.2qt3tdwt-y9x_.woff2 +0 -0
  167. package/.next/static/media/7ac0b1cd3e695dd0-s.1i-sca43-qwng.woff2 +0 -0
  168. package/.next/static/media/916cd8a3bde3edf8-s.p.0oace-s_gkfks.woff2 +0 -0
  169. package/.next/static/media/a45aa1001bf9176f-s.2vemzm0itqzfy.woff2 +0 -0
  170. package/.next/static/media/a74d2542cc4c775f-s.29yke99gs9qpn.woff2 +0 -0
  171. package/.next/static/media/ab664c0e419cc841-s.3cvcemwuzoywn.woff2 +0 -0
  172. package/.next/static/media/c1b11b726b36a5e5-s.2rixgazldzomk.woff2 +0 -0
  173. package/.next/static/media/d6c1ff7e86974212-s.p.40sczeszzbjw1.woff2 +0 -0
  174. package/.next/static/media/faab88e4be272d29-s.0rgnxg2b64rzs.woff2 +0 -0
  175. package/app/map/ActivityBar.tsx +0 -81
  176. package/app/map/StatusPill.tsx +0 -93
  177. package/app/map/TopBar.tsx +0 -84
  178. /package/.next/static/{prDi039MhjlFqDOOwZ4aR → of6twfEZ3j95xtfQB_NSL}/_buildManifest.js +0 -0
  179. /package/.next/static/{prDi039MhjlFqDOOwZ4aR → of6twfEZ3j95xtfQB_NSL}/_clientMiddlewareManifest.js +0 -0
  180. /package/.next/static/{prDi039MhjlFqDOOwZ4aR → of6twfEZ3j95xtfQB_NSL}/_ssgManifest.js +0 -0
@@ -0,0 +1,13 @@
1
+ (()=>{"use strict";module.exports=[73536,a=>{var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s=a.i(87924),t=a.i(72131);function u(a){if("string"==typeof a||"number"==typeof a)return""+a;let b="";if(Array.isArray(a))for(let c=0,d;c<a.length;c++)""!==(d=u(a[c]))&&(b+=(b&&" ")+d);else for(let c in a)a[c]&&(b+=(b&&" ")+c);return b}var v={value:()=>{}};function w(){for(var a,b=0,c=arguments.length,d={};b<c;++b){if(!(a=arguments[b]+"")||a in d||/[\s.]/.test(a))throw Error("illegal type: "+a);d[a]=[]}return new x(d)}function x(a){this._=a}function y(a,b,c){for(var d=0,e=a.length;d<e;++d)if(a[d].name===b){a[d]=v,a=a.slice(0,d).concat(a.slice(d+1));break}return null!=c&&a.push({name:b,value:c}),a}function z(){}function A(a){return null==a?z:function(){return this.querySelector(a)}}function B(){return[]}function C(a){return null==a?B:function(){return this.querySelectorAll(a)}}function D(a){return function(){return this.matches(a)}}function E(a){return function(b){return b.matches(a)}}x.prototype=w.prototype={constructor:x,on:function(a,b){var c,d=this._,e=(a+"").trim().split(/^|\s+/).map(function(a){var b="",c=a.indexOf(".");if(c>=0&&(b=a.slice(c+1),a=a.slice(0,c)),a&&!d.hasOwnProperty(a))throw Error("unknown type: "+a);return{type:a,name:b}}),f=-1,g=e.length;if(arguments.length<2){for(;++f<g;)if((c=(a=e[f]).type)&&(c=function(a,b){for(var c,d=0,e=a.length;d<e;++d)if((c=a[d]).name===b)return c.value}(d[c],a.name)))return c;return}if(null!=b&&"function"!=typeof b)throw Error("invalid callback: "+b);for(;++f<g;)if(c=(a=e[f]).type)d[c]=y(d[c],a.name,b);else if(null==b)for(c in d)d[c]=y(d[c],a.name,null);return this},copy:function(){var a={},b=this._;for(var c in b)a[c]=b[c].slice();return new x(a)},call:function(a,b){if((c=arguments.length-2)>0)for(var c,d,e=Array(c),f=0;f<c;++f)e[f]=arguments[f+2];if(!this._.hasOwnProperty(a))throw Error("unknown type: "+a);for(d=this._[a],f=0,c=d.length;f<c;++f)d[f].value.apply(b,e)},apply:function(a,b,c){if(!this._.hasOwnProperty(a))throw Error("unknown type: "+a);for(var d=this._[a],e=0,f=d.length;e<f;++e)d[e].value.apply(b,c)}};var F=Array.prototype.find;function G(){return this.firstElementChild}var H=Array.prototype.filter;function I(){return Array.from(this.children)}function J(a){return Array(a.length)}function K(a,b){this.ownerDocument=a.ownerDocument,this.namespaceURI=a.namespaceURI,this._next=null,this._parent=a,this.__data__=b}function L(a,b,c,d,e,f){for(var g,h=0,i=b.length,j=f.length;h<j;++h)(g=b[h])?(g.__data__=f[h],d[h]=g):c[h]=new K(a,f[h]);for(;h<i;++h)(g=b[h])&&(e[h]=g)}function M(a,b,c,d,e,f,g){var h,i,j,k=new Map,l=b.length,m=f.length,n=Array(l);for(h=0;h<l;++h)(i=b[h])&&(n[h]=j=g.call(i,i.__data__,h,b)+"",k.has(j)?e[h]=i:k.set(j,i));for(h=0;h<m;++h)j=g.call(a,f[h],h,f)+"",(i=k.get(j))?(d[h]=i,i.__data__=f[h],k.delete(j)):c[h]=new K(a,f[h]);for(h=0;h<l;++h)(i=b[h])&&k.get(n[h])===i&&(e[h]=i)}function N(a){return a.__data__}function O(a,b){return a<b?-1:a>b?1:a>=b?0:0/0}K.prototype={constructor:K,appendChild:function(a){return this._parent.insertBefore(a,this._next)},insertBefore:function(a,b){return this._parent.insertBefore(a,b)},querySelector:function(a){return this._parent.querySelector(a)},querySelectorAll:function(a){return this._parent.querySelectorAll(a)}};var P="http://www.w3.org/1999/xhtml";let Q={svg:"http://www.w3.org/2000/svg",xhtml:P,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function R(a){var b=a+="",c=b.indexOf(":");return c>=0&&"xmlns"!==(b=a.slice(0,c))&&(a=a.slice(c+1)),Q.hasOwnProperty(b)?{space:Q[b],local:a}:a}function S(a){return a.ownerDocument&&a.ownerDocument.defaultView||a.document&&a||a.defaultView}function T(a,b){return a.style.getPropertyValue(b)||S(a).getComputedStyle(a,null).getPropertyValue(b)}function U(a){return a.trim().split(/^|\s+/)}function V(a){return a.classList||new W(a)}function W(a){this._node=a,this._names=U(a.getAttribute("class")||"")}function X(a,b){for(var c=V(a),d=-1,e=b.length;++d<e;)c.add(b[d])}function Y(a,b){for(var c=V(a),d=-1,e=b.length;++d<e;)c.remove(b[d])}function Z(){this.textContent=""}function $(){this.innerHTML=""}function _(){this.nextSibling&&this.parentNode.appendChild(this)}function aa(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function ab(a){var b=R(a);return(b.local?function(a){return function(){return this.ownerDocument.createElementNS(a.space,a.local)}}:function(a){return function(){var b=this.ownerDocument,c=this.namespaceURI;return c===P&&b.documentElement.namespaceURI===P?b.createElement(a):b.createElementNS(c,a)}})(b)}function ac(){return null}function ad(){var a=this.parentNode;a&&a.removeChild(this)}function ae(){var a=this.cloneNode(!1),b=this.parentNode;return b?b.insertBefore(a,this.nextSibling):a}function af(){var a=this.cloneNode(!0),b=this.parentNode;return b?b.insertBefore(a,this.nextSibling):a}function ag(a){return function(){var b=this.__on;if(b){for(var c,d=0,e=-1,f=b.length;d<f;++d)(c=b[d],a.type&&c.type!==a.type||c.name!==a.name)?b[++e]=c:this.removeEventListener(c.type,c.listener,c.options);++e?b.length=e:delete this.__on}}}function ah(a,b,c){return function(){var d,e=this.__on,f=function(a){b.call(this,a,this.__data__)};if(e){for(var g=0,h=e.length;g<h;++g)if((d=e[g]).type===a.type&&d.name===a.name){this.removeEventListener(d.type,d.listener,d.options),this.addEventListener(d.type,d.listener=f,d.options=c),d.value=b;return}}this.addEventListener(a.type,f,c),d={type:a.type,name:a.name,value:b,listener:f,options:c},e?e.push(d):this.__on=[d]}}function ai(a,b,c){var d=S(a),e=d.CustomEvent;"function"==typeof e?e=new e(b,c):(e=d.document.createEvent("Event"),c?(e.initEvent(b,c.bubbles,c.cancelable),e.detail=c.detail):e.initEvent(b,!1,!1)),a.dispatchEvent(e)}W.prototype={add:function(a){0>this._names.indexOf(a)&&(this._names.push(a),this._node.setAttribute("class",this._names.join(" ")))},remove:function(a){var b=this._names.indexOf(a);b>=0&&(this._names.splice(b,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(a){return this._names.indexOf(a)>=0}};var aj=[null];function ak(a,b){this._groups=a,this._parents=b}function al(){return new ak([[document.documentElement]],aj)}function am(a){return"string"==typeof a?new ak([[document.querySelector(a)]],[document.documentElement]):new ak([[a]],aj)}function an(a,b){if(a=function(a){let b;for(;b=a.sourceEvent;)a=b;return a}(a),void 0===b&&(b=a.currentTarget),b){var c=b.ownerSVGElement||b;if(c.createSVGPoint){var d=c.createSVGPoint();return d.x=a.clientX,d.y=a.clientY,[(d=d.matrixTransform(b.getScreenCTM().inverse())).x,d.y]}if(b.getBoundingClientRect){var e=b.getBoundingClientRect();return[a.clientX-e.left-b.clientLeft,a.clientY-e.top-b.clientTop]}}return[a.pageX,a.pageY]}ak.prototype=al.prototype={constructor:ak,select:function(a){"function"!=typeof a&&(a=A(a));for(var b=this._groups,c=b.length,d=Array(c),e=0;e<c;++e)for(var f,g,h=b[e],i=h.length,j=d[e]=Array(i),k=0;k<i;++k)(f=h[k])&&(g=a.call(f,f.__data__,k,h))&&("__data__"in f&&(g.__data__=f.__data__),j[k]=g);return new ak(d,this._parents)},selectAll:function(a){if("function"==typeof a){var b;b=a,a=function(){var a;return a=b.apply(this,arguments),null==a?[]:Array.isArray(a)?a:Array.from(a)}}else a=C(a);for(var c=this._groups,d=c.length,e=[],f=[],g=0;g<d;++g)for(var h,i=c[g],j=i.length,k=0;k<j;++k)(h=i[k])&&(e.push(a.call(h,h.__data__,k,i)),f.push(h));return new ak(e,f)},selectChild:function(a){var b;return this.select(null==a?G:(b="function"==typeof a?a:E(a),function(){return F.call(this.children,b)}))},selectChildren:function(a){var b;return this.selectAll(null==a?I:(b="function"==typeof a?a:E(a),function(){return H.call(this.children,b)}))},filter:function(a){"function"!=typeof a&&(a=D(a));for(var b=this._groups,c=b.length,d=Array(c),e=0;e<c;++e)for(var f,g=b[e],h=g.length,i=d[e]=[],j=0;j<h;++j)(f=g[j])&&a.call(f,f.__data__,j,g)&&i.push(f);return new ak(d,this._parents)},data:function(a,b){if(!arguments.length)return Array.from(this,N);var c=b?M:L,d=this._parents,e=this._groups;"function"!=typeof a&&(s=a,a=function(){return s});for(var f=e.length,g=Array(f),h=Array(f),i=Array(f),j=0;j<f;++j){var k=d[j],l=e[j],m=l.length,n="object"==typeof(r=a.call(k,k&&k.__data__,j,d))&&"length"in r?r:Array.from(r),o=n.length,p=h[j]=Array(o),q=g[j]=Array(o);c(k,l,p,q,i[j]=Array(m),n,b);for(var r,s,t,u,v=0,w=0;v<o;++v)if(t=p[v]){for(v>=w&&(w=v+1);!(u=q[w])&&++w<o;);t._next=u||null}}return(g=new ak(g,d))._enter=h,g._exit=i,g},enter:function(){return new ak(this._enter||this._groups.map(J),this._parents)},exit:function(){return new ak(this._exit||this._groups.map(J),this._parents)},join:function(a,b,c){var d=this.enter(),e=this,f=this.exit();return"function"==typeof a?(d=a(d))&&(d=d.selection()):d=d.append(a+""),null!=b&&(e=b(e))&&(e=e.selection()),null==c?f.remove():c(f),d&&e?d.merge(e).order():e},merge:function(a){for(var b=a.selection?a.selection():a,c=this._groups,d=b._groups,e=c.length,f=d.length,g=Math.min(e,f),h=Array(e),i=0;i<g;++i)for(var j,k=c[i],l=d[i],m=k.length,n=h[i]=Array(m),o=0;o<m;++o)(j=k[o]||l[o])&&(n[o]=j);for(;i<e;++i)h[i]=c[i];return new ak(h,this._parents)},selection:function(){return this},order:function(){for(var a=this._groups,b=-1,c=a.length;++b<c;)for(var d,e=a[b],f=e.length-1,g=e[f];--f>=0;)(d=e[f])&&(g&&4^d.compareDocumentPosition(g)&&g.parentNode.insertBefore(d,g),g=d);return this},sort:function(a){function b(b,c){return b&&c?a(b.__data__,c.__data__):!b-!c}a||(a=O);for(var c=this._groups,d=c.length,e=Array(d),f=0;f<d;++f){for(var g,h=c[f],i=h.length,j=e[f]=Array(i),k=0;k<i;++k)(g=h[k])&&(j[k]=g);j.sort(b)}return new ak(e,this._parents).order()},call:function(){var a=arguments[0];return arguments[0]=this,a.apply(null,arguments),this},nodes:function(){return Array.from(this)},node:function(){for(var a=this._groups,b=0,c=a.length;b<c;++b)for(var d=a[b],e=0,f=d.length;e<f;++e){var g=d[e];if(g)return g}return null},size:function(){let a=0;for(let b of this)++a;return a},empty:function(){return!this.node()},each:function(a){for(var b=this._groups,c=0,d=b.length;c<d;++c)for(var e,f=b[c],g=0,h=f.length;g<h;++g)(e=f[g])&&a.call(e,e.__data__,g,f);return this},attr:function(a,b){var c=R(a);if(arguments.length<2){var d=this.node();return c.local?d.getAttributeNS(c.space,c.local):d.getAttribute(c)}return this.each((null==b?c.local?function(a){return function(){this.removeAttributeNS(a.space,a.local)}}:function(a){return function(){this.removeAttribute(a)}}:"function"==typeof b?c.local?function(a,b){return function(){var c=b.apply(this,arguments);null==c?this.removeAttributeNS(a.space,a.local):this.setAttributeNS(a.space,a.local,c)}}:function(a,b){return function(){var c=b.apply(this,arguments);null==c?this.removeAttribute(a):this.setAttribute(a,c)}}:c.local?function(a,b){return function(){this.setAttributeNS(a.space,a.local,b)}}:function(a,b){return function(){this.setAttribute(a,b)}})(c,b))},style:function(a,b,c){return arguments.length>1?this.each((null==b?function(a){return function(){this.style.removeProperty(a)}}:"function"==typeof b?function(a,b,c){return function(){var d=b.apply(this,arguments);null==d?this.style.removeProperty(a):this.style.setProperty(a,d,c)}}:function(a,b,c){return function(){this.style.setProperty(a,b,c)}})(a,b,null==c?"":c)):T(this.node(),a)},property:function(a,b){return arguments.length>1?this.each((null==b?function(a){return function(){delete this[a]}}:"function"==typeof b?function(a,b){return function(){var c=b.apply(this,arguments);null==c?delete this[a]:this[a]=c}}:function(a,b){return function(){this[a]=b}})(a,b)):this.node()[a]},classed:function(a,b){var c=U(a+"");if(arguments.length<2){for(var d=V(this.node()),e=-1,f=c.length;++e<f;)if(!d.contains(c[e]))return!1;return!0}return this.each(("function"==typeof b?function(a,b){return function(){(b.apply(this,arguments)?X:Y)(this,a)}}:b?function(a){return function(){X(this,a)}}:function(a){return function(){Y(this,a)}})(c,b))},text:function(a){return arguments.length?this.each(null==a?Z:("function"==typeof a?function(a){return function(){var b=a.apply(this,arguments);this.textContent=null==b?"":b}}:function(a){return function(){this.textContent=a}})(a)):this.node().textContent},html:function(a){return arguments.length?this.each(null==a?$:("function"==typeof a?function(a){return function(){var b=a.apply(this,arguments);this.innerHTML=null==b?"":b}}:function(a){return function(){this.innerHTML=a}})(a)):this.node().innerHTML},raise:function(){return this.each(_)},lower:function(){return this.each(aa)},append:function(a){var b="function"==typeof a?a:ab(a);return this.select(function(){return this.appendChild(b.apply(this,arguments))})},insert:function(a,b){var c="function"==typeof a?a:ab(a),d=null==b?ac:"function"==typeof b?b:A(b);return this.select(function(){return this.insertBefore(c.apply(this,arguments),d.apply(this,arguments)||null)})},remove:function(){return this.each(ad)},clone:function(a){return this.select(a?af:ae)},datum:function(a){return arguments.length?this.property("__data__",a):this.node().__data__},on:function(a,b,c){var d,e,f=(a+"").trim().split(/^|\s+/).map(function(a){var b="",c=a.indexOf(".");return c>=0&&(b=a.slice(c+1),a=a.slice(0,c)),{type:a,name:b}}),g=f.length;if(arguments.length<2){var h=this.node().__on;if(h){for(var i,j=0,k=h.length;j<k;++j)for(d=0,i=h[j];d<g;++d)if((e=f[d]).type===i.type&&e.name===i.name)return i.value}return}for(h=b?ah:ag,d=0;d<g;++d)this.each(h(f[d],b,c));return this},dispatch:function(a,b){return this.each(("function"==typeof b?function(a,b){return function(){return ai(this,a,b.apply(this,arguments))}}:function(a,b){return function(){return ai(this,a,b)}})(a,b))},[Symbol.iterator]:function*(){for(var a=this._groups,b=0,c=a.length;b<c;++b)for(var d,e=a[b],f=0,g=e.length;f<g;++f)(d=e[f])&&(yield d)}};let ao={passive:!1},ap={capture:!0,passive:!1};function aq(a){a.stopImmediatePropagation()}function ar(a){a.preventDefault(),a.stopImmediatePropagation()}function as(a){var b=a.document.documentElement,c=am(a).on("dragstart.drag",ar,ap);"onselectstart"in b?c.on("selectstart.drag",ar,ap):(b.__noselect=b.style.MozUserSelect,b.style.MozUserSelect="none")}function at(a,b){var c=a.document.documentElement,d=am(a).on("dragstart.drag",null);b&&(d.on("click.drag",ar,ap),setTimeout(function(){d.on("click.drag",null)},0)),"onselectstart"in c?d.on("selectstart.drag",null):(c.style.MozUserSelect=c.__noselect,delete c.__noselect)}let au=a=>()=>a;function av(a,{sourceEvent:b,subject:c,target:d,identifier:e,active:f,x:g,y:h,dx:i,dy:j,dispatch:k}){Object.defineProperties(this,{type:{value:a,enumerable:!0,configurable:!0},sourceEvent:{value:b,enumerable:!0,configurable:!0},subject:{value:c,enumerable:!0,configurable:!0},target:{value:d,enumerable:!0,configurable:!0},identifier:{value:e,enumerable:!0,configurable:!0},active:{value:f,enumerable:!0,configurable:!0},x:{value:g,enumerable:!0,configurable:!0},y:{value:h,enumerable:!0,configurable:!0},dx:{value:i,enumerable:!0,configurable:!0},dy:{value:j,enumerable:!0,configurable:!0},_:{value:k}})}function aw(a){return!a.ctrlKey&&!a.button}function ax(){return this.parentNode}function ay(a,b){return null==b?{x:a.x,y:a.y}:b}function az(){return navigator.maxTouchPoints||"ontouchstart"in this}function aA(){var a,b,c,d,e=aw,f=ax,g=ay,h=az,i={},j=w("start","drag","end"),k=0,l=0;function m(a){a.on("mousedown.drag",n).filter(h).on("touchstart.drag",q).on("touchmove.drag",r,ao).on("touchend.drag touchcancel.drag",s).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function n(g,h){if(!d&&e.call(this,g,h)){var i=t(this,f.call(this,g,h),g,h,"mouse");i&&(am(g.view).on("mousemove.drag",o,ap).on("mouseup.drag",p,ap),as(g.view),aq(g),c=!1,a=g.clientX,b=g.clientY,i("start",g))}}function o(d){if(ar(d),!c){var e=d.clientX-a,f=d.clientY-b;c=e*e+f*f>l}i.mouse("drag",d)}function p(a){am(a.view).on("mousemove.drag mouseup.drag",null),at(a.view,c),ar(a),i.mouse("end",a)}function q(a,b){if(e.call(this,a,b)){var c,d,g=a.changedTouches,h=f.call(this,a,b),i=g.length;for(c=0;c<i;++c)(d=t(this,h,a,b,g[c].identifier,g[c]))&&(aq(a),d("start",a,g[c]))}}function r(a){var b,c,d=a.changedTouches,e=d.length;for(b=0;b<e;++b)(c=i[d[b].identifier])&&(ar(a),c("drag",a,d[b]))}function s(a){var b,c,e=a.changedTouches,f=e.length;for(d&&clearTimeout(d),d=setTimeout(function(){d=null},500),b=0;b<f;++b)(c=i[e[b].identifier])&&(aq(a),c("end",a,e[b]))}function t(a,b,c,d,e,f){var h,l,n,o=j.copy(),p=an(f||c,b);if(null!=(n=g.call(a,new av("beforestart",{sourceEvent:c,target:m,identifier:e,active:k,x:p[0],y:p[1],dx:0,dy:0,dispatch:o}),d)))return h=n.x-p[0]||0,l=n.y-p[1]||0,function c(f,g,j){var q,r=p;switch(f){case"start":i[e]=c,q=k++;break;case"end":delete i[e],--k;case"drag":p=an(j||g,b),q=k}o.call(f,a,new av(f,{sourceEvent:g,subject:n,target:m,identifier:e,active:q,x:p[0]+h,y:p[1]+l,dx:p[0]-r[0],dy:p[1]-r[1],dispatch:o}),d)}}return m.filter=function(a){return arguments.length?(e="function"==typeof a?a:au(!!a),m):e},m.container=function(a){return arguments.length?(f="function"==typeof a?a:au(a),m):f},m.subject=function(a){return arguments.length?(g="function"==typeof a?a:au(a),m):g},m.touchable=function(a){return arguments.length?(h="function"==typeof a?a:au(!!a),m):h},m.on=function(){var a=j.on.apply(j,arguments);return a===j?m:a},m.clickDistance=function(a){return arguments.length?(l=(a*=1)*a,m):Math.sqrt(l)},m}function aB(a){return((a=Math.exp(a))+1/a)/2}av.prototype.on=function(){var a=this._.on.apply(this._,arguments);return a===this._?this:a};let aC=function a(b,c,d){function e(a,e){var f,g,h=a[0],i=a[1],j=a[2],k=e[0],l=e[1],m=e[2],n=k-h,o=l-i,p=n*n+o*o;if(p<1e-12)g=Math.log(m/j)/b,f=function(a){return[h+a*n,i+a*o,j*Math.exp(b*a*g)]};else{var q=Math.sqrt(p),r=(m*m-j*j+d*p)/(2*j*c*q),s=(m*m-j*j-d*p)/(2*m*c*q),t=Math.log(Math.sqrt(r*r+1)-r);g=(Math.log(Math.sqrt(s*s+1)-s)-t)/b,f=function(a){var d,e,f=a*g,k=aB(t),l=j/(c*q)*(k*(((d=Math.exp(2*(d=b*f+t)))-1)/(d+1))-((e=Math.exp(e=t))-1/e)/2);return[h+l*n,i+l*o,j*k/aB(b*f+t)]}}return f.duration=1e3*g*b/Math.SQRT2,f}return e.rho=function(b){var c=Math.max(.001,+b),d=c*c;return a(c,d,d*d)},e}(Math.SQRT2,2,4);var aD,aE,aF=0,aG=0,aH=0,aI=0,aJ=0,aK=0,aL="object"==typeof performance&&performance.now?performance:Date,aM=function(a){setTimeout(a,17)};function aN(){return aJ||(aM(aO),aJ=aL.now()+aK)}function aO(){aJ=0}function aP(){this._call=this._time=this._next=null}function aQ(a,b,c){var d=new aP;return d.restart(a,b,c),d}function aR(){aJ=(aI=aL.now())+aK,aF=aG=0;try{aN(),++aF;for(var a,b=aD;b;)(a=aJ-b._time)>=0&&b._call.call(void 0,a),b=b._next;--aF}finally{aF=0,function(){for(var a,b,c=aD,d=1/0;c;)c._call?(d>c._time&&(d=c._time),a=c,c=c._next):(b=c._next,c._next=null,c=a?a._next=b:aD=b);aE=a,aT(d)}(),aJ=0}}function aS(){var a=aL.now(),b=a-aI;b>1e3&&(aK-=b,aI=a)}function aT(a){!aF&&(aG&&(aG=clearTimeout(aG)),a-aJ>24?(a<1/0&&(aG=setTimeout(aR,a-aL.now()-aK)),aH&&(aH=clearInterval(aH))):(aH||(aI=aL.now(),aH=setInterval(aS,1e3)),aF=1,aM(aR)))}function aU(a,b,c){var d=new aP;return b=null==b?0:+b,d.restart(c=>{d.stop(),a(c+b)},b,c),d}aP.prototype=aQ.prototype={constructor:aP,restart:function(a,b,c){if("function"!=typeof a)throw TypeError("callback is not a function");c=(null==c?aN():+c)+(null==b?0:+b),this._next||aE===this||(aE?aE._next=this:aD=this,aE=this),this._call=a,this._time=c,aT()},stop:function(){this._call&&(this._call=null,this._time=1/0,aT())}};var aV=w("start","end","cancel","interrupt"),aW=[];function aX(a,b,c,d,e,f){var g=a.__transition;if(g){if(c in g)return}else a.__transition={};!function(a,b,c){var d,e=a.__transition;function f(i){var j,k,l,m;if(1!==c.state)return h();for(j in e)if((m=e[j]).name===c.name){if(3===m.state)return aU(f);4===m.state?(m.state=6,m.timer.stop(),m.on.call("interrupt",a,a.__data__,m.index,m.group),delete e[j]):+j<b&&(m.state=6,m.timer.stop(),m.on.call("cancel",a,a.__data__,m.index,m.group),delete e[j])}if(aU(function(){3===c.state&&(c.state=4,c.timer.restart(g,c.delay,c.time),g(i))}),c.state=2,c.on.call("start",a,a.__data__,c.index,c.group),2===c.state){for(c.state=3,d=Array(l=c.tween.length),j=0,k=-1;j<l;++j)(m=c.tween[j].value.call(a,a.__data__,c.index,c.group))&&(d[++k]=m);d.length=k+1}}function g(b){for(var e=b<c.duration?c.ease.call(null,b/c.duration):(c.timer.restart(h),c.state=5,1),f=-1,g=d.length;++f<g;)d[f].call(a,e);5===c.state&&(c.on.call("end",a,a.__data__,c.index,c.group),h())}function h(){for(var d in c.state=6,c.timer.stop(),delete e[b],e)return;delete a.__transition}e[b]=c,c.timer=aQ(function(a){c.state=1,c.timer.restart(f,c.delay,c.time),c.delay<=a&&f(a-c.delay)},0,c.time)}(a,c,{name:b,index:d,group:e,on:aV,tween:aW,time:f.time,delay:f.delay,duration:f.duration,ease:f.ease,timer:null,state:0})}function aY(a,b){var c=a$(a,b);if(c.state>0)throw Error("too late; already scheduled");return c}function aZ(a,b){var c=a$(a,b);if(c.state>3)throw Error("too late; already running");return c}function a$(a,b){var c=a.__transition;if(!c||!(c=c[b]))throw Error("transition not found");return c}function a_(a,b){var c,d,e,f=a.__transition,g=!0;if(f){for(e in b=null==b?null:b+"",f){if((c=f[e]).name!==b){g=!1;continue}d=c.state>2&&c.state<5,c.state=6,c.timer.stop(),c.on.call(d?"interrupt":"cancel",a,a.__data__,c.index,c.group),delete f[e]}g&&delete a.__transition}}function a0(a,b){return a*=1,b*=1,function(c){return a*(1-c)+b*c}}var a1=180/Math.PI,a2={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function a3(a,b,c,d,e,f){var g,h,i;return(g=Math.sqrt(a*a+b*b))&&(a/=g,b/=g),(i=a*c+b*d)&&(c-=a*i,d-=b*i),(h=Math.sqrt(c*c+d*d))&&(c/=h,d/=h,i/=h),a*d<b*c&&(a=-a,b=-b,i=-i,g=-g),{translateX:e,translateY:f,rotate:Math.atan2(b,a)*a1,skewX:Math.atan(i)*a1,scaleX:g,scaleY:h}}function a4(a,b,c,d){function e(a){return a.length?a.pop()+" ":""}return function(f,g){var h,i,j,k,l=[],m=[];return f=a(f),g=a(g),!function(a,d,e,f,g,h){if(a!==e||d!==f){var i=g.push("translate(",null,b,null,c);h.push({i:i-4,x:a0(a,e)},{i:i-2,x:a0(d,f)})}else(e||f)&&g.push("translate("+e+b+f+c)}(f.translateX,f.translateY,g.translateX,g.translateY,l,m),h=f.rotate,i=g.rotate,h!==i?(h-i>180?i+=360:i-h>180&&(h+=360),m.push({i:l.push(e(l)+"rotate(",null,d)-2,x:a0(h,i)})):i&&l.push(e(l)+"rotate("+i+d),j=f.skewX,k=g.skewX,j!==k?m.push({i:l.push(e(l)+"skewX(",null,d)-2,x:a0(j,k)}):k&&l.push(e(l)+"skewX("+k+d),!function(a,b,c,d,f,g){if(a!==c||b!==d){var h=f.push(e(f)+"scale(",null,",",null,")");g.push({i:h-4,x:a0(a,c)},{i:h-2,x:a0(b,d)})}else(1!==c||1!==d)&&f.push(e(f)+"scale("+c+","+d+")")}(f.scaleX,f.scaleY,g.scaleX,g.scaleY,l,m),f=g=null,function(a){for(var b,c=-1,d=m.length;++c<d;)l[(b=m[c]).i]=b.x(a);return l.join("")}}}var a5=a4(function(a){let b=new("function"==typeof DOMMatrix?DOMMatrix:WebKitCSSMatrix)(a+"");return b.isIdentity?a2:a3(b.a,b.b,b.c,b.d,b.e,b.f)},"px, ","px)","deg)"),a6=a4(function(a){return null==a?a2:(j||(j=document.createElementNS("http://www.w3.org/2000/svg","g")),j.setAttribute("transform",a),a=j.transform.baseVal.consolidate())?a3((a=a.matrix).a,a.b,a.c,a.d,a.e,a.f):a2},", ",")",")");function a7(a,b,c){var d=a._id;return a.each(function(){var a=aZ(this,d);(a.value||(a.value={}))[b]=c.apply(this,arguments)}),function(a){return a$(a,d).value[b]}}function a8(a,b,c){a.prototype=b.prototype=c,c.constructor=a}function a9(a,b){var c=Object.create(a.prototype);for(var d in b)c[d]=b[d];return c}function ba(){}var bb=1/.7,bc="\\s*([+-]?\\d+)\\s*",bd="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",be="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",bf=/^#([0-9a-f]{3,8})$/,bg=RegExp(`^rgb\\(${bc},${bc},${bc}\\)$`),bh=RegExp(`^rgb\\(${be},${be},${be}\\)$`),bi=RegExp(`^rgba\\(${bc},${bc},${bc},${bd}\\)$`),bj=RegExp(`^rgba\\(${be},${be},${be},${bd}\\)$`),bk=RegExp(`^hsl\\(${bd},${be},${be}\\)$`),bl=RegExp(`^hsla\\(${bd},${be},${be},${bd}\\)$`),bm={aliceblue:0xf0f8ff,antiquewhite:0xfaebd7,aqua:65535,aquamarine:8388564,azure:0xf0ffff,beige:0xf5f5dc,bisque:0xffe4c4,black:0,blanchedalmond:0xffebcd,blue:255,blueviolet:9055202,brown:0xa52a2a,burlywood:0xdeb887,cadetblue:6266528,chartreuse:8388352,chocolate:0xd2691e,coral:0xff7f50,cornflowerblue:6591981,cornsilk:0xfff8dc,crimson:0xdc143c,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:0xb8860b,darkgray:0xa9a9a9,darkgreen:25600,darkgrey:0xa9a9a9,darkkhaki:0xbdb76b,darkmagenta:9109643,darkolivegreen:5597999,darkorange:0xff8c00,darkorchid:0x9932cc,darkred:9109504,darksalmon:0xe9967a,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:0xff1493,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:0xb22222,floralwhite:0xfffaf0,forestgreen:2263842,fuchsia:0xff00ff,gainsboro:0xdcdcdc,ghostwhite:0xf8f8ff,gold:0xffd700,goldenrod:0xdaa520,gray:8421504,green:32768,greenyellow:0xadff2f,grey:8421504,honeydew:0xf0fff0,hotpink:0xff69b4,indianred:0xcd5c5c,indigo:4915330,ivory:0xfffff0,khaki:0xf0e68c,lavender:0xe6e6fa,lavenderblush:0xfff0f5,lawngreen:8190976,lemonchiffon:0xfffacd,lightblue:0xadd8e6,lightcoral:0xf08080,lightcyan:0xe0ffff,lightgoldenrodyellow:0xfafad2,lightgray:0xd3d3d3,lightgreen:9498256,lightgrey:0xd3d3d3,lightpink:0xffb6c1,lightsalmon:0xffa07a,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:0xb0c4de,lightyellow:0xffffe0,lime:65280,limegreen:3329330,linen:0xfaf0e6,magenta:0xff00ff,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:0xba55d3,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:0xc71585,midnightblue:1644912,mintcream:0xf5fffa,mistyrose:0xffe4e1,moccasin:0xffe4b5,navajowhite:0xffdead,navy:128,oldlace:0xfdf5e6,olive:8421376,olivedrab:7048739,orange:0xffa500,orangered:0xff4500,orchid:0xda70d6,palegoldenrod:0xeee8aa,palegreen:0x98fb98,paleturquoise:0xafeeee,palevioletred:0xdb7093,papayawhip:0xffefd5,peachpuff:0xffdab9,peru:0xcd853f,pink:0xffc0cb,plum:0xdda0dd,powderblue:0xb0e0e6,purple:8388736,rebeccapurple:6697881,red:0xff0000,rosybrown:0xbc8f8f,royalblue:4286945,saddlebrown:9127187,salmon:0xfa8072,sandybrown:0xf4a460,seagreen:3050327,seashell:0xfff5ee,sienna:0xa0522d,silver:0xc0c0c0,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:0xfffafa,springgreen:65407,steelblue:4620980,tan:0xd2b48c,teal:32896,thistle:0xd8bfd8,tomato:0xff6347,turquoise:4251856,violet:0xee82ee,wheat:0xf5deb3,white:0xffffff,whitesmoke:0xf5f5f5,yellow:0xffff00,yellowgreen:0x9acd32};function bn(){return this.rgb().formatHex()}function bo(){return this.rgb().formatRgb()}function bp(a){var b,c;return a=(a+"").trim().toLowerCase(),(b=bf.exec(a))?(c=b[1].length,b=parseInt(b[1],16),6===c?bq(b):3===c?new bt(b>>8&15|b>>4&240,b>>4&15|240&b,(15&b)<<4|15&b,1):8===c?br(b>>24&255,b>>16&255,b>>8&255,(255&b)/255):4===c?br(b>>12&15|b>>8&240,b>>8&15|b>>4&240,b>>4&15|240&b,((15&b)<<4|15&b)/255):null):(b=bg.exec(a))?new bt(b[1],b[2],b[3],1):(b=bh.exec(a))?new bt(255*b[1]/100,255*b[2]/100,255*b[3]/100,1):(b=bi.exec(a))?br(b[1],b[2],b[3],b[4]):(b=bj.exec(a))?br(255*b[1]/100,255*b[2]/100,255*b[3]/100,b[4]):(b=bk.exec(a))?bz(b[1],b[2]/100,b[3]/100,1):(b=bl.exec(a))?bz(b[1],b[2]/100,b[3]/100,b[4]):bm.hasOwnProperty(a)?bq(bm[a]):"transparent"===a?new bt(0/0,0/0,0/0,0):null}function bq(a){return new bt(a>>16&255,a>>8&255,255&a,1)}function br(a,b,c,d){return d<=0&&(a=b=c=0/0),new bt(a,b,c,d)}function bs(a,b,c,d){var e;return 1==arguments.length?((e=a)instanceof ba||(e=bp(e)),e)?new bt((e=e.rgb()).r,e.g,e.b,e.opacity):new bt:new bt(a,b,c,null==d?1:d)}function bt(a,b,c,d){this.r=+a,this.g=+b,this.b=+c,this.opacity=+d}function bu(){return`#${by(this.r)}${by(this.g)}${by(this.b)}`}function bv(){let a=bw(this.opacity);return`${1===a?"rgb(":"rgba("}${bx(this.r)}, ${bx(this.g)}, ${bx(this.b)}${1===a?")":`, ${a})`}`}function bw(a){return isNaN(a)?1:Math.max(0,Math.min(1,a))}function bx(a){return Math.max(0,Math.min(255,Math.round(a)||0))}function by(a){return((a=bx(a))<16?"0":"")+a.toString(16)}function bz(a,b,c,d){return d<=0?a=b=c=0/0:c<=0||c>=1?a=b=0/0:b<=0&&(a=0/0),new bB(a,b,c,d)}function bA(a){if(a instanceof bB)return new bB(a.h,a.s,a.l,a.opacity);if(a instanceof ba||(a=bp(a)),!a)return new bB;if(a instanceof bB)return a;var b=(a=a.rgb()).r/255,c=a.g/255,d=a.b/255,e=Math.min(b,c,d),f=Math.max(b,c,d),g=0/0,h=f-e,i=(f+e)/2;return h?(g=b===f?(c-d)/h+(c<d)*6:c===f?(d-b)/h+2:(b-c)/h+4,h/=i<.5?f+e:2-f-e,g*=60):h=i>0&&i<1?0:g,new bB(g,h,i,a.opacity)}function bB(a,b,c,d){this.h=+a,this.s=+b,this.l=+c,this.opacity=+d}function bC(a){return(a=(a||0)%360)<0?a+360:a}function bD(a){return Math.max(0,Math.min(1,a||0))}function bE(a,b,c){return(a<60?b+(c-b)*a/60:a<180?c:a<240?b+(c-b)*(240-a)/60:b)*255}function bF(a,b,c,d,e){var f=a*a,g=f*a;return((1-3*a+3*f-g)*b+(4-6*f+3*g)*c+(1+3*a+3*f-3*g)*d+g*e)/6}a8(ba,bp,{copy(a){return Object.assign(new this.constructor,this,a)},displayable(){return this.rgb().displayable()},hex:bn,formatHex:bn,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return bA(this).formatHsl()},formatRgb:bo,toString:bo}),a8(bt,bs,a9(ba,{brighter(a){return a=null==a?bb:Math.pow(bb,a),new bt(this.r*a,this.g*a,this.b*a,this.opacity)},darker(a){return a=null==a?.7:Math.pow(.7,a),new bt(this.r*a,this.g*a,this.b*a,this.opacity)},rgb(){return this},clamp(){return new bt(bx(this.r),bx(this.g),bx(this.b),bw(this.opacity))},displayable(){return -.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:bu,formatHex:bu,formatHex8:function(){return`#${by(this.r)}${by(this.g)}${by(this.b)}${by((isNaN(this.opacity)?1:this.opacity)*255)}`},formatRgb:bv,toString:bv})),a8(bB,function(a,b,c,d){return 1==arguments.length?bA(a):new bB(a,b,c,null==d?1:d)},a9(ba,{brighter(a){return a=null==a?bb:Math.pow(bb,a),new bB(this.h,this.s,this.l*a,this.opacity)},darker(a){return a=null==a?.7:Math.pow(.7,a),new bB(this.h,this.s,this.l*a,this.opacity)},rgb(){var a=this.h%360+(this.h<0)*360,b=isNaN(a)||isNaN(this.s)?0:this.s,c=this.l,d=c+(c<.5?c:1-c)*b,e=2*c-d;return new bt(bE(a>=240?a-240:a+120,e,d),bE(a,e,d),bE(a<120?a+240:a-120,e,d),this.opacity)},clamp(){return new bB(bC(this.h),bD(this.s),bD(this.l),bw(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){let a=bw(this.opacity);return`${1===a?"hsl(":"hsla("}${bC(this.h)}, ${100*bD(this.s)}%, ${100*bD(this.l)}%${1===a?")":`, ${a})`}`}}));let bG=a=>()=>a;function bH(a,b){var c=b-a;return c?function(b){return a+b*c}:bG(isNaN(a)?b:a)}let bI=function a(b){var c,d=1==(c=+b)?bH:function(a,b){var d,e,f;return b-a?(d=a,e=b,d=Math.pow(d,f=c),e=Math.pow(e,f)-d,f=1/f,function(a){return Math.pow(d+a*e,f)}):bG(isNaN(a)?b:a)};function e(a,b){var c=d((a=bs(a)).r,(b=bs(b)).r),e=d(a.g,b.g),f=d(a.b,b.b),g=bH(a.opacity,b.opacity);return function(b){return a.r=c(b),a.g=e(b),a.b=f(b),a.opacity=g(b),a+""}}return e.gamma=a,e}(1);function bJ(a){return function(b){var c,d,e=b.length,f=Array(e),g=Array(e),h=Array(e);for(c=0;c<e;++c)d=bs(b[c]),f[c]=d.r||0,g[c]=d.g||0,h[c]=d.b||0;return f=a(f),g=a(g),h=a(h),d.opacity=1,function(a){return d.r=f(a),d.g=g(a),d.b=h(a),d+""}}}bJ(function(a){var b=a.length-1;return function(c){var d=c<=0?c=0:c>=1?(c=1,b-1):Math.floor(c*b),e=a[d],f=a[d+1],g=d>0?a[d-1]:2*e-f,h=d<b-1?a[d+2]:2*f-e;return bF((c-d/b)*b,g,e,f,h)}}),bJ(function(a){var b=a.length;return function(c){var d=Math.floor(((c%=1)<0?++c:c)*b),e=a[(d+b-1)%b],f=a[d%b],g=a[(d+1)%b],h=a[(d+2)%b];return bF((c-d/b)*b,e,f,g,h)}});var bK=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,bL=RegExp(bK.source,"g");function bM(a,b){var c,d,e,f,g,h=bK.lastIndex=bL.lastIndex=0,i=-1,j=[],k=[];for(a+="",b+="";(e=bK.exec(a))&&(f=bL.exec(b));)(g=f.index)>h&&(g=b.slice(h,g),j[i]?j[i]+=g:j[++i]=g),(e=e[0])===(f=f[0])?j[i]?j[i]+=f:j[++i]=f:(j[++i]=null,k.push({i:i,x:a0(e,f)})),h=bL.lastIndex;return h<b.length&&(g=b.slice(h),j[i]?j[i]+=g:j[++i]=g),j.length<2?k[0]?(c=k[0].x,function(a){return c(a)+""}):(d=b,function(){return d}):(b=k.length,function(a){for(var c,d=0;d<b;++d)j[(c=k[d]).i]=c.x(a);return j.join("")})}function bN(a,b){var c;return("number"==typeof b?a0:b instanceof bp?bI:(c=bp(b))?(b=c,bI):bM)(a,b)}var bO=al.prototype.constructor;function bP(a){return function(){this.style.removeProperty(a)}}var bQ=0;function bR(a,b,c,d){this._groups=a,this._parents=b,this._name=c,this._id=d}var bS=al.prototype;bR.prototype=(function(a){return al().transition(a)}).prototype={constructor:bR,select:function(a){var b=this._name,c=this._id;"function"!=typeof a&&(a=A(a));for(var d=this._groups,e=d.length,f=Array(e),g=0;g<e;++g)for(var h,i,j=d[g],k=j.length,l=f[g]=Array(k),m=0;m<k;++m)(h=j[m])&&(i=a.call(h,h.__data__,m,j))&&("__data__"in h&&(i.__data__=h.__data__),l[m]=i,aX(l[m],b,c,m,l,a$(h,c)));return new bR(f,this._parents,b,c)},selectAll:function(a){var b=this._name,c=this._id;"function"!=typeof a&&(a=C(a));for(var d=this._groups,e=d.length,f=[],g=[],h=0;h<e;++h)for(var i,j=d[h],k=j.length,l=0;l<k;++l)if(i=j[l]){for(var m,n=a.call(i,i.__data__,l,j),o=a$(i,c),p=0,q=n.length;p<q;++p)(m=n[p])&&aX(m,b,c,p,n,o);f.push(n),g.push(i)}return new bR(f,g,b,c)},selectChild:bS.selectChild,selectChildren:bS.selectChildren,filter:function(a){"function"!=typeof a&&(a=D(a));for(var b=this._groups,c=b.length,d=Array(c),e=0;e<c;++e)for(var f,g=b[e],h=g.length,i=d[e]=[],j=0;j<h;++j)(f=g[j])&&a.call(f,f.__data__,j,g)&&i.push(f);return new bR(d,this._parents,this._name,this._id)},merge:function(a){if(a._id!==this._id)throw Error();for(var b=this._groups,c=a._groups,d=b.length,e=c.length,f=Math.min(d,e),g=Array(d),h=0;h<f;++h)for(var i,j=b[h],k=c[h],l=j.length,m=g[h]=Array(l),n=0;n<l;++n)(i=j[n]||k[n])&&(m[n]=i);for(;h<d;++h)g[h]=b[h];return new bR(g,this._parents,this._name,this._id)},selection:function(){return new bO(this._groups,this._parents)},transition:function(){for(var a=this._name,b=this._id,c=++bQ,d=this._groups,e=d.length,f=0;f<e;++f)for(var g,h=d[f],i=h.length,j=0;j<i;++j)if(g=h[j]){var k=a$(g,b);aX(g,a,c,j,h,{time:k.time+k.delay+k.duration,delay:0,duration:k.duration,ease:k.ease})}return new bR(d,this._parents,a,c)},call:bS.call,nodes:bS.nodes,node:bS.node,size:bS.size,empty:bS.empty,each:bS.each,on:function(a,b){var c,d,e,f,g,h,i=this._id;return arguments.length<2?a$(this.node(),i).on.on(a):this.each((c=i,d=a,e=b,h=(d+"").trim().split(/^|\s+/).every(function(a){var b=a.indexOf(".");return b>=0&&(a=a.slice(0,b)),!a||"start"===a})?aY:aZ,function(){var a=h(this,c),b=a.on;b!==f&&(g=(f=b).copy()).on(d,e),a.on=g}))},attr:function(a,b){var c=R(a),d="transform"===c?a6:bN;return this.attrTween(a,"function"==typeof b?(c.local?function(a,b,c){var d,e,f;return function(){var g,h,i=c(this);return null==i?void this.removeAttributeNS(a.space,a.local):(g=this.getAttributeNS(a.space,a.local))===(h=i+"")?null:g===d&&h===e?f:(e=h,f=b(d=g,i))}}:function(a,b,c){var d,e,f;return function(){var g,h,i=c(this);return null==i?void this.removeAttribute(a):(g=this.getAttribute(a))===(h=i+"")?null:g===d&&h===e?f:(e=h,f=b(d=g,i))}})(c,d,a7(this,"attr."+a,b)):null==b?(c.local?function(a){return function(){this.removeAttributeNS(a.space,a.local)}}:function(a){return function(){this.removeAttribute(a)}})(c):(c.local?function(a,b,c){var d,e,f=c+"";return function(){var g=this.getAttributeNS(a.space,a.local);return g===f?null:g===d?e:e=b(d=g,c)}}:function(a,b,c){var d,e,f=c+"";return function(){var g=this.getAttribute(a);return g===f?null:g===d?e:e=b(d=g,c)}})(c,d,b))},attrTween:function(a,b){var c="attr."+a;if(arguments.length<2)return(c=this.tween(c))&&c._value;if(null==b)return this.tween(c,null);if("function"!=typeof b)throw Error();var d=R(a);return this.tween(c,(d.local?function(a,b){var c,d;function e(){var e=b.apply(this,arguments);return e!==d&&(c=(d=e)&&function(b){this.setAttributeNS(a.space,a.local,e.call(this,b))}),c}return e._value=b,e}:function(a,b){var c,d;function e(){var e=b.apply(this,arguments);return e!==d&&(c=(d=e)&&function(b){this.setAttribute(a,e.call(this,b))}),c}return e._value=b,e})(d,b))},style:function(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y="transform"==(a+="")?a5:bN;return null==b?this.styleTween(a,(d=a,function(){var a=T(this,d),b=(this.style.removeProperty(d),T(this,d));return a===b?null:a===e&&b===f?g:g=y(e=a,f=b)})).on("end.style."+a,bP(a)):"function"==typeof b?this.styleTween(a,(h=a,i=a7(this,"style."+a,b),function(){var a=T(this,h),b=i(this),c=b+"";return null==b&&(this.style.removeProperty(h),c=b=T(this,h)),a===c?null:a===j&&c===k?l:(k=c,l=y(j=a,b))})).each((m=this._id,t="end."+(s="style."+(n=a)),function(){var a=aZ(this,m),b=a.on,c=null==a.value[s]?r||(r=bP(n)):void 0;(b!==o||q!==c)&&(p=(o=b).copy()).on(t,q=c),a.on=p})):this.styleTween(a,(u=a,x=b+"",function(){var a=T(this,u);return a===x?null:a===v?w:w=y(v=a,b)}),c).on("end.style."+a,null)},styleTween:function(a,b,c){var d="style."+(a+="");if(arguments.length<2)return(d=this.tween(d))&&d._value;if(null==b)return this.tween(d,null);if("function"!=typeof b)throw Error();return this.tween(d,function(a,b,c){var d,e;function f(){var f=b.apply(this,arguments);return f!==e&&(d=(e=f)&&function(b){this.style.setProperty(a,f.call(this,b),c)}),d}return f._value=b,f}(a,b,null==c?"":c))},text:function(a){var b,c;return this.tween("text","function"==typeof a?(b=a7(this,"text",a),function(){var a=b(this);this.textContent=null==a?"":a}):(c=null==a?"":a+"",function(){this.textContent=c}))},textTween:function(a){var b="text";if(arguments.length<1)return(b=this.tween(b))&&b._value;if(null==a)return this.tween(b,null);if("function"!=typeof a)throw Error();return this.tween(b,function(a){var b,c;function d(){var d=a.apply(this,arguments);return d!==c&&(b=(c=d)&&function(a){this.textContent=d.call(this,a)}),b}return d._value=a,d}(a))},remove:function(){var a;return this.on("end.remove",(a=this._id,function(){var b=this.parentNode;for(var c in this.__transition)if(+c!==a)return;b&&b.removeChild(this)}))},tween:function(a,b){var c=this._id;if(a+="",arguments.length<2){for(var d,e=a$(this.node(),c).tween,f=0,g=e.length;f<g;++f)if((d=e[f]).name===a)return d.value;return null}return this.each((null==b?function(a,b){var c,d;return function(){var e=aZ(this,a),f=e.tween;if(f!==c){d=c=f;for(var g=0,h=d.length;g<h;++g)if(d[g].name===b){(d=d.slice()).splice(g,1);break}}e.tween=d}}:function(a,b,c){var d,e;if("function"!=typeof c)throw Error();return function(){var f=aZ(this,a),g=f.tween;if(g!==d){e=(d=g).slice();for(var h={name:b,value:c},i=0,j=e.length;i<j;++i)if(e[i].name===b){e[i]=h;break}i===j&&e.push(h)}f.tween=e}})(c,a,b))},delay:function(a){var b=this._id;return arguments.length?this.each(("function"==typeof a?function(a,b){return function(){aY(this,a).delay=+b.apply(this,arguments)}}:function(a,b){return b*=1,function(){aY(this,a).delay=b}})(b,a)):a$(this.node(),b).delay},duration:function(a){var b=this._id;return arguments.length?this.each(("function"==typeof a?function(a,b){return function(){aZ(this,a).duration=+b.apply(this,arguments)}}:function(a,b){return b*=1,function(){aZ(this,a).duration=b}})(b,a)):a$(this.node(),b).duration},ease:function(a){var b=this._id;return arguments.length?this.each(function(a,b){if("function"!=typeof b)throw Error();return function(){aZ(this,a).ease=b}}(b,a)):a$(this.node(),b).ease},easeVarying:function(a){var b;if("function"!=typeof a)throw Error();return this.each((b=this._id,function(){var c=a.apply(this,arguments);if("function"!=typeof c)throw Error();aZ(this,b).ease=c}))},end:function(){var a,b,c=this,d=c._id,e=c.size();return new Promise(function(f,g){var h={value:g},i={value:function(){0==--e&&f()}};c.each(function(){var c=aZ(this,d),e=c.on;e!==a&&((b=(a=e).copy())._.cancel.push(h),b._.interrupt.push(h),b._.end.push(i)),c.on=b}),0===e&&f()})},[Symbol.iterator]:bS[Symbol.iterator]};var bT={time:null,delay:0,duration:250,ease:function(a){return((a*=2)<=1?a*a*a:(a-=2)*a*a+2)/2}};al.prototype.interrupt=function(a){return this.each(function(){a_(this,a)})},al.prototype.transition=function(a){var b,c;a instanceof bR?(b=a._id,a=a._name):(b=++bQ,(c=bT).time=aN(),a=null==a?null:a+"");for(var d=this._groups,e=d.length,f=0;f<e;++f)for(var g,h=d[f],i=h.length,j=0;j<i;++j)(g=h[j])&&aX(g,a,b,j,h,c||function(a,b){for(var c;!(c=a.__transition)||!(c=c[b]);)if(!(a=a.parentNode))throw Error(`transition ${b} not found`);return c}(g,b));return new bR(d,this._parents,a,b)};let bU=a=>()=>a;function bV(a,{sourceEvent:b,target:c,transform:d,dispatch:e}){Object.defineProperties(this,{type:{value:a,enumerable:!0,configurable:!0},sourceEvent:{value:b,enumerable:!0,configurable:!0},target:{value:c,enumerable:!0,configurable:!0},transform:{value:d,enumerable:!0,configurable:!0},_:{value:e}})}function bW(a,b,c){this.k=a,this.x=b,this.y=c}bW.prototype={constructor:bW,scale:function(a){return 1===a?this:new bW(this.k*a,this.x,this.y)},translate:function(a,b){return 0===a&0===b?this:new bW(this.k,this.x+this.k*a,this.y+this.k*b)},apply:function(a){return[a[0]*this.k+this.x,a[1]*this.k+this.y]},applyX:function(a){return a*this.k+this.x},applyY:function(a){return a*this.k+this.y},invert:function(a){return[(a[0]-this.x)/this.k,(a[1]-this.y)/this.k]},invertX:function(a){return(a-this.x)/this.k},invertY:function(a){return(a-this.y)/this.k},rescaleX:function(a){return a.copy().domain(a.range().map(this.invertX,this).map(a.invert,a))},rescaleY:function(a){return a.copy().domain(a.range().map(this.invertY,this).map(a.invert,a))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var bX=new bW(1,0,0);function bY(a){for(;!a.__zoom;)if(!(a=a.parentNode))return bX;return a.__zoom}function bZ(a){a.stopImmediatePropagation()}function b$(a){a.preventDefault(),a.stopImmediatePropagation()}function b_(a){return(!a.ctrlKey||"wheel"===a.type)&&!a.button}function b0(){var a=this;return a instanceof SVGElement?(a=a.ownerSVGElement||a).hasAttribute("viewBox")?[[(a=a.viewBox.baseVal).x,a.y],[a.x+a.width,a.y+a.height]]:[[0,0],[a.width.baseVal.value,a.height.baseVal.value]]:[[0,0],[a.clientWidth,a.clientHeight]]}function b1(){return this.__zoom||bX}function b2(a){return-a.deltaY*(1===a.deltaMode?.05:a.deltaMode?1:.002)*(a.ctrlKey?10:1)}function b3(){return navigator.maxTouchPoints||"ontouchstart"in this}function b4(a,b,c){var d=a.invertX(b[0][0])-c[0][0],e=a.invertX(b[1][0])-c[1][0],f=a.invertY(b[0][1])-c[0][1],g=a.invertY(b[1][1])-c[1][1];return a.translate(e>d?(d+e)/2:Math.min(0,d)||Math.max(0,e),g>f?(f+g)/2:Math.min(0,f)||Math.max(0,g))}function b5(){var a,b,c,d=b_,e=b0,f=b4,g=b2,h=b3,i=[0,1/0],j=[[-1/0,-1/0],[1/0,1/0]],k=250,l=aC,m=w("start","zoom","end"),n=0,o=10;function p(a){a.property("__zoom",b1).on("wheel.zoom",x,{passive:!1}).on("mousedown.zoom",y).on("dblclick.zoom",z).filter(h).on("touchstart.zoom",A).on("touchmove.zoom",B).on("touchend.zoom touchcancel.zoom",C).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function q(a,b){return(b=Math.max(i[0],Math.min(i[1],b)))===a.k?a:new bW(b,a.x,a.y)}function r(a,b,c){var d=b[0]-c[0]*a.k,e=b[1]-c[1]*a.k;return d===a.x&&e===a.y?a:new bW(a.k,d,e)}function s(a){return[(+a[0][0]+ +a[1][0])/2,(+a[0][1]+ +a[1][1])/2]}function t(a,b,c,d){a.on("start.zoom",function(){u(this,arguments).event(d).start()}).on("interrupt.zoom end.zoom",function(){u(this,arguments).event(d).end()}).tween("zoom",function(){var a=arguments,f=u(this,a).event(d),g=e.apply(this,a),h=null==c?s(g):"function"==typeof c?c.apply(this,a):c,i=Math.max(g[1][0]-g[0][0],g[1][1]-g[0][1]),j=this.__zoom,k="function"==typeof b?b.apply(this,a):b,m=l(j.invert(h).concat(i/j.k),k.invert(h).concat(i/k.k));return function(a){if(1===a)a=k;else{var b=m(a),c=i/b[2];a=new bW(c,h[0]-b[0]*c,h[1]-b[1]*c)}f.zoom(null,a)}})}function u(a,b,c){return!c&&a.__zooming||new v(a,b)}function v(a,b){this.that=a,this.args=b,this.active=0,this.sourceEvent=null,this.extent=e.apply(a,b),this.taps=0}function x(a,...b){if(d.apply(this,arguments)){var c=u(this,b).event(a),e=this.__zoom,h=Math.max(i[0],Math.min(i[1],e.k*Math.pow(2,g.apply(this,arguments)))),k=an(a);if(c.wheel)(c.mouse[0][0]!==k[0]||c.mouse[0][1]!==k[1])&&(c.mouse[1]=e.invert(c.mouse[0]=k)),clearTimeout(c.wheel);else{if(e.k===h)return;c.mouse=[k,e.invert(k)],a_(this),c.start()}b$(a),c.wheel=setTimeout(function(){c.wheel=null,c.end()},150),c.zoom("mouse",f(r(q(e,h),c.mouse[0],c.mouse[1]),c.extent,j))}}function y(a,...b){if(!c&&d.apply(this,arguments)){var e=a.currentTarget,g=u(this,b,!0).event(a),h=am(a.view).on("mousemove.zoom",function(a){if(b$(a),!g.moved){var b=a.clientX-k,c=a.clientY-l;g.moved=b*b+c*c>n}g.event(a).zoom("mouse",f(r(g.that.__zoom,g.mouse[0]=an(a,e),g.mouse[1]),g.extent,j))},!0).on("mouseup.zoom",function(a){h.on("mousemove.zoom mouseup.zoom",null),at(a.view,g.moved),b$(a),g.event(a).end()},!0),i=an(a,e),k=a.clientX,l=a.clientY;as(a.view),bZ(a),g.mouse=[i,this.__zoom.invert(i)],a_(this),g.start()}}function z(a,...b){if(d.apply(this,arguments)){var c=this.__zoom,g=an(a.changedTouches?a.changedTouches[0]:a,this),h=c.invert(g),i=c.k*(a.shiftKey?.5:2),l=f(r(q(c,i),g,h),e.apply(this,b),j);b$(a),k>0?am(this).transition().duration(k).call(t,l,g,a):am(this).call(p.transform,l,g,a)}}function A(c,...e){if(d.apply(this,arguments)){var f,g,h,i,j=c.touches,k=j.length,l=u(this,e,c.changedTouches.length===k).event(c);for(bZ(c),g=0;g<k;++g)i=[i=an(h=j[g],this),this.__zoom.invert(i),h.identifier],l.touch0?l.touch1||l.touch0[2]===i[2]||(l.touch1=i,l.taps=0):(l.touch0=i,f=!0,l.taps=1+!!a);a&&(a=clearTimeout(a)),f&&(l.taps<2&&(b=i[0],a=setTimeout(function(){a=null},500)),a_(this),l.start())}}function B(a,...b){if(this.__zooming){var c,d,e,g,h=u(this,b).event(a),i=a.changedTouches,k=i.length;for(b$(a),c=0;c<k;++c)e=an(d=i[c],this),h.touch0&&h.touch0[2]===d.identifier?h.touch0[0]=e:h.touch1&&h.touch1[2]===d.identifier&&(h.touch1[0]=e);if(d=h.that.__zoom,h.touch1){var l=h.touch0[0],m=h.touch0[1],n=h.touch1[0],o=h.touch1[1],p=(p=n[0]-l[0])*p+(p=n[1]-l[1])*p,s=(s=o[0]-m[0])*s+(s=o[1]-m[1])*s;d=q(d,Math.sqrt(p/s)),e=[(l[0]+n[0])/2,(l[1]+n[1])/2],g=[(m[0]+o[0])/2,(m[1]+o[1])/2]}else{if(!h.touch0)return;e=h.touch0[0],g=h.touch0[1]}h.zoom("touch",f(r(d,e,g),h.extent,j))}}function C(a,...d){if(this.__zooming){var e,f,g=u(this,d).event(a),h=a.changedTouches,i=h.length;for(bZ(a),c&&clearTimeout(c),c=setTimeout(function(){c=null},500),e=0;e<i;++e)f=h[e],g.touch0&&g.touch0[2]===f.identifier?delete g.touch0:g.touch1&&g.touch1[2]===f.identifier&&delete g.touch1;if(g.touch1&&!g.touch0&&(g.touch0=g.touch1,delete g.touch1),g.touch0)g.touch0[1]=this.__zoom.invert(g.touch0[0]);else if(g.end(),2===g.taps&&(f=an(f,this),Math.hypot(b[0]-f[0],b[1]-f[1])<o)){var j=am(this).on("dblclick.zoom");j&&j.apply(this,arguments)}}}return p.transform=function(a,b,c,d){var e=a.selection?a.selection():a;e.property("__zoom",b1),a!==e?t(a,b,c,d):e.interrupt().each(function(){u(this,arguments).event(d).start().zoom(null,"function"==typeof b?b.apply(this,arguments):b).end()})},p.scaleBy=function(a,b,c,d){p.scaleTo(a,function(){var a=this.__zoom.k,c="function"==typeof b?b.apply(this,arguments):b;return a*c},c,d)},p.scaleTo=function(a,b,c,d){p.transform(a,function(){var a=e.apply(this,arguments),d=this.__zoom,g=null==c?s(a):"function"==typeof c?c.apply(this,arguments):c,h=d.invert(g),i="function"==typeof b?b.apply(this,arguments):b;return f(r(q(d,i),g,h),a,j)},c,d)},p.translateBy=function(a,b,c,d){p.transform(a,function(){return f(this.__zoom.translate("function"==typeof b?b.apply(this,arguments):b,"function"==typeof c?c.apply(this,arguments):c),e.apply(this,arguments),j)},null,d)},p.translateTo=function(a,b,c,d,g){p.transform(a,function(){var a=e.apply(this,arguments),g=this.__zoom,h=null==d?s(a):"function"==typeof d?d.apply(this,arguments):d;return f(bX.translate(h[0],h[1]).scale(g.k).translate("function"==typeof b?-b.apply(this,arguments):-b,"function"==typeof c?-c.apply(this,arguments):-c),a,j)},d,g)},v.prototype={event:function(a){return a&&(this.sourceEvent=a),this},start:function(){return 1==++this.active&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(a,b){return this.mouse&&"mouse"!==a&&(this.mouse[1]=b.invert(this.mouse[0])),this.touch0&&"touch"!==a&&(this.touch0[1]=b.invert(this.touch0[0])),this.touch1&&"touch"!==a&&(this.touch1[1]=b.invert(this.touch1[0])),this.that.__zoom=b,this.emit("zoom"),this},end:function(){return 0==--this.active&&(delete this.that.__zooming,this.emit("end")),this},emit:function(a){var b=am(this.that).datum();m.call(a,this.that,new bV(a,{sourceEvent:this.sourceEvent,target:p,type:a,transform:this.that.__zoom,dispatch:m}),b)}},p.wheelDelta=function(a){return arguments.length?(g="function"==typeof a?a:bU(+a),p):g},p.filter=function(a){return arguments.length?(d="function"==typeof a?a:bU(!!a),p):d},p.touchable=function(a){return arguments.length?(h="function"==typeof a?a:bU(!!a),p):h},p.extent=function(a){return arguments.length?(e="function"==typeof a?a:bU([[+a[0][0],+a[0][1]],[+a[1][0],+a[1][1]]]),p):e},p.scaleExtent=function(a){return arguments.length?(i[0]=+a[0],i[1]=+a[1],p):[i[0],i[1]]},p.translateExtent=function(a){return arguments.length?(j[0][0]=+a[0][0],j[1][0]=+a[1][0],j[0][1]=+a[0][1],j[1][1]=+a[1][1],p):[[j[0][0],j[0][1]],[j[1][0],j[1][1]]]},p.constrain=function(a){return arguments.length?(f=a,p):f},p.duration=function(a){return arguments.length?(k=+a,p):k},p.interpolate=function(a){return arguments.length?(l=a,p):l},p.on=function(){var a=m.on.apply(m,arguments);return a===m?p:a},p.clickDistance=function(a){return arguments.length?(n=(a*=1)*a,p):Math.sqrt(n)},p.tapDistance=function(a){return arguments.length?(o=+a,p):o},p}function b6(a,b){var c,d,e=typeof b;return null==b||"boolean"===e?bG(b):("number"===e?a0:"string"===e?(d=bp(b))?(b=d,bI):bM:b instanceof bp?bI:b instanceof Date?function(a,b){var c=new Date;return a*=1,b*=1,function(d){return c.setTime(a*(1-d)+b*d),c}}:!ArrayBuffer.isView(c=b)||c instanceof DataView?Array.isArray(b)?function(a,b){var c,d=b?b.length:0,e=a?Math.min(d,a.length):0,f=Array(e),g=Array(d);for(c=0;c<e;++c)f[c]=b6(a[c],b[c]);for(;c<d;++c)g[c]=b[c];return function(a){for(c=0;c<e;++c)g[c]=f[c](a);return g}}:"function"!=typeof b.valueOf&&"function"!=typeof b.toString||isNaN(b)?function(a,b){var c,d={},e={};for(c in(null===a||"object"!=typeof a)&&(a={}),(null===b||"object"!=typeof b)&&(b={}),b)c in a?d[c]=b6(a[c],b[c]):e[c]=b[c];return function(a){for(c in d)e[c]=d[c](a);return e}}:a0:function(a,b){b||(b=[]);var c,d=a?Math.min(b.length,a.length):0,e=b.slice();return function(f){for(c=0;c<d;++c)e[c]=a[c]*(1-f)+b[c]*f;return e}})(a,b)}bY.prototype=bW.prototype;let b7=[[-1/0,-1/0],[1/0,1/0]],b8=["Enter"," ","Escape"],b9={"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:a,x:b,y:c})=>`Moved selected node ${a}. New position, x: ${b}, y: ${c}`,"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"};(b=k||(k={})).Strict="strict",b.Loose="loose",(c=l||(l={})).Free="free",c.Vertical="vertical",c.Horizontal="horizontal",(d=m||(m={})).Partial="partial",d.Full="full";let ca={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null};(e=n||(n={})).Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier",(f=o||(o={})).Arrow="arrow",f.ArrowClosed="arrowclosed",(g=p||(p={})).Left="left",g.Top="top",g.Right="right",g.Bottom="bottom";let cb={[p.Left]:p.Right,[p.Right]:p.Left,[p.Top]:p.Bottom,[p.Bottom]:p.Top};function cc(a){return null===a?null:a?"valid":"invalid"}let cd=a=>!!a&&"object"==typeof a&&"id"in a&&"source"in a&&"target"in a,ce=a=>!!a&&"object"==typeof a&&"id"in a&&"internals"in a&&!("source"in a)&&!("target"in a),cf=(a,b=[0,0])=>{let{width:c,height:d}=cI(a),e=a.origin??b,f=c*e[0],g=d*e[1];return{x:a.position.x-f,y:a.position.y-g}},cg=(a,b={})=>{let c={x:1/0,y:1/0,x2:-1/0,y2:-1/0},d=!1;return a.forEach(a=>{(void 0===b.filter||b.filter(a))&&(c=cq(c,cu(a)),d=!0)}),d?cs(c):{x:0,y:0,width:0,height:0}},ch=(a,b,[c,d,e]=[0,0,1],f=!1,g=!1)=>{let h=(b.x-c)/e,i=(b.y-d)/e,j=b.width/e,k=b.height/e,l=[];for(let b of a.values()){let{measured:a,selectable:c=!0,hidden:d=!1}=b;if(g&&!c||d)continue;let e=a.width??b.width??b.initialWidth??0,m=a.height??b.height??b.initialHeight??0,{x:n,y:o}=b.internals.positionAbsolute,p=cw(h,i,j,k,n,o,e,m),q=e*m,r=f&&p>0;(!b.internals.handleBounds||r||p>=q||b.dragging)&&l.push(b)}return l};async function ci({nodes:a,width:b,height:c,panZoom:d,minZoom:e,maxZoom:f},g){let h,i;if(0===a.size)return!0;let j=cF(cg((h=new Map,i=g?.nodes?new Set(g.nodes.map(a=>a.id)):null,a.forEach(a=>{let b;if(g?.includeHiddenNodes){let{width:c,height:d}=cI(a);b=c>0&&d>0}else b=!!(a.measured.width&&a.measured.height&&!a.hidden);b&&(!i||i.has(a.id))&&h.set(a.id,a)}),h)),b,c,g?.minZoom??e,g?.maxZoom??f,g?.padding??.1);return await d.setViewport(j,{duration:g?.duration,ease:g?.ease,interpolate:g?.interpolate}),!0}function cj({nodeId:a,nextPosition:b,nodeLookup:c,nodeOrigin:d=[0,0],nodeExtent:e,onError:f}){let g=c.get(a),h=g.parentId?c.get(g.parentId):void 0,{x:i,y:j}=h?h.internals.positionAbsolute:{x:0,y:0},k=g.origin??d,l=g.extent||e;if("parent"!==g.extent||g.expandParent)h&&cH(g.extent)&&(l=[[g.extent[0][0]+i,g.extent[0][1]+j],[g.extent[1][0]+i,g.extent[1][1]+j]]);else if(h){let a=h.measured.width,b=h.measured.height;a&&b&&(l=[[i,j],[i+a,j+b]])}else f?.("005","Only child nodes can use a parent extent.");let m=cH(l)?cm(b,l,g.measured):b;return(void 0===g.measured.width||void 0===g.measured.height)&&f?.("015","It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs."),{position:{x:m.x-i+(g.measured.width??0)*k[0],y:m.y-j+(g.measured.height??0)*k[1]},positionAbsolute:m}}async function ck({nodesToRemove:a=[],edgesToRemove:b=[],nodes:c,edges:d,onBeforeDelete:e}){let f,g=new Set(a.map(a=>a.id)),h=[];for(let a of c){if(!1===a.deletable)continue;let b=g.has(a.id),c=!b&&a.parentId&&h.find(b=>b.id===a.parentId);(b||c)&&h.push(a)}let i=new Set(b.map(a=>a.id)),j=d.filter(a=>!1!==a.deletable),k=(f=new Set,h.forEach(a=>{f.add(a.id)}),j.filter(a=>f.has(a.source)||f.has(a.target)));for(let a of j)i.has(a.id)&&!k.find(b=>b.id===a.id)&&k.push(a);if(!e)return{edges:k,nodes:h};let l=await e({nodes:h,edges:k});return"boolean"==typeof l?l?{edges:k,nodes:h}:{edges:[],nodes:[]}:l}let cl=(a,b=0,c=1)=>Math.min(Math.max(a,b),c),cm=(a={x:0,y:0},b,c)=>({x:cl(a.x,b[0][0],b[1][0]-(c?.width??0)),y:cl(a.y,b[0][1],b[1][1]-(c?.height??0))});function cn(a,b,c){let{width:d,height:e}=cI(c),{x:f,y:g}=c.internals.positionAbsolute;return cm(a,[[f,g],[f+d,g+e]],b)}let co=(a,b,c)=>a<b?cl(Math.abs(a-b),1,b)/b:a>c?-cl(Math.abs(a-c),1,b)/b:0,cp=(a,b,c=15,d=40)=>[co(a.x,d,b.width-d)*c,co(a.y,d,b.height-d)*c],cq=(a,b)=>({x:Math.min(a.x,b.x),y:Math.min(a.y,b.y),x2:Math.max(a.x2,b.x2),y2:Math.max(a.y2,b.y2)}),cr=({x:a,y:b,width:c,height:d})=>({x:a,y:b,x2:a+c,y2:b+d}),cs=({x:a,y:b,x2:c,y2:d})=>({x:a,y:b,width:c-a,height:d-b}),ct=(a,b=[0,0])=>{let{x:c,y:d}=ce(a)?a.internals.positionAbsolute:cf(a,b);return{x:c,y:d,width:a.measured?.width??a.width??a.initialWidth??0,height:a.measured?.height??a.height??a.initialHeight??0}},cu=(a,b=[0,0])=>{let{x:c,y:d}=ce(a)?a.internals.positionAbsolute:cf(a,b);return{x:c,y:d,x2:c+(a.measured?.width??a.width??a.initialWidth??0),y2:d+(a.measured?.height??a.height??a.initialHeight??0)}},cv=(a,b)=>cs(cq(cr(a),cr(b))),cw=(a,b,c,d,e,f,g,h)=>Math.ceil(Math.max(0,Math.min(a+c,e+g)-Math.max(a,e))*Math.max(0,Math.min(b+d,f+h)-Math.max(b,f))),cx=(a,b)=>cw(a.x,a.y,a.width,a.height,b.x,b.y,b.width,b.height),cy=a=>cz(a.width)&&cz(a.height)&&cz(a.x)&&cz(a.y),cz=a=>!isNaN(a)&&isFinite(a),cA=(a,b)=>(a,b)=>{},cB=(a,b=[1,1])=>({x:b[0]*Math.round(a.x/b[0]),y:b[1]*Math.round(a.y/b[1])}),cC=({x:a,y:b},[c,d,e],f=!1,g=[1,1])=>{let h={x:(a-c)/e,y:(b-d)/e};return f?cB(h,g):h},cD=({x:a,y:b},[c,d,e])=>({x:a*e+c,y:b*e+d});function cE(a,b){if("number"==typeof a)return Math.floor((b-b/(1+a))*.5);if("string"==typeof a&&a.endsWith("px")){let b=parseFloat(a);if(!Number.isNaN(b))return Math.floor(b)}if("string"==typeof a&&a.endsWith("%")){let c=parseFloat(a);if(!Number.isNaN(c))return Math.floor(b*c*.01)}return console.error(`The padding value "${a}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}let cF=(a,b,c,d,e,f)=>{let g=function(a,b,c){if("string"==typeof a||"number"==typeof a){let d=cE(a,c),e=cE(a,b);return{top:d,right:e,bottom:d,left:e,x:2*e,y:2*d}}if("object"==typeof a){let d=cE(a.top??a.y??0,c),e=cE(a.bottom??a.y??0,c),f=cE(a.left??a.x??0,b),g=cE(a.right??a.x??0,b);return{top:d,right:g,bottom:e,left:f,x:f+g,y:d+e}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}(f,b,c),h=cl(Math.min((b-g.x)/a.width,(c-g.y)/a.height),d,e),i=a.x+a.width/2,j=a.y+a.height/2,k=b/2-i*h,l=c/2-j*h,m=function(a,b,c,d,e,f){let{x:g,y:h}=cD(a,[b,c,d]),{x:i,y:j}=cD({x:a.x+a.width,y:a.y+a.height},[b,c,d]);return{left:Math.floor(g),top:Math.floor(h),right:Math.floor(e-i),bottom:Math.floor(f-j)}}(a,k,l,h,b,c),n={left:Math.min(m.left-g.left,0),top:Math.min(m.top-g.top,0),right:Math.min(m.right-g.right,0),bottom:Math.min(m.bottom-g.bottom,0)};return{x:k-n.left+n.right,y:l-n.top+n.bottom,zoom:h}},cG=()=>"u">typeof navigator&&navigator?.userAgent?.indexOf("Mac")>=0;function cH(a){return null!=a&&"parent"!==a}function cI(a){return{width:a.measured?.width??a.width??a.initialWidth??0,height:a.measured?.height??a.height??a.initialHeight??0}}function cJ(a){return(a.measured?.width??a.width??a.initialWidth)!==void 0&&(a.measured?.height??a.height??a.initialHeight)!==void 0}function cK(a,b={width:0,height:0},c,d,e){let f={...a},g=d.get(c);if(g){let a=g.origin||e;f.x+=g.internals.positionAbsolute.x-(b.width??0)*a[0],f.y+=g.internals.positionAbsolute.y-(b.height??0)*a[1]}return f}function cL(a,b){if(a.size!==b.size)return!1;for(let c of a)if(!b.has(c))return!1;return!0}function cM(a,{snapGrid:b=[0,0],snapToGrid:c=!1,transform:d,containerBounds:e}){let{x:f,y:g}=cR(a),h=cC({x:f-(e?.left??0),y:g-(e?.top??0)},d),{x:i,y:j}=c?cB(h,b):h;return{xSnapped:i,ySnapped:j,...h}}let cN=a=>({width:a.offsetWidth,height:a.offsetHeight}),cO=a=>a?.getRootNode?.()||window?.document,cP=["INPUT","SELECT","TEXTAREA"];function cQ(a){let b=a.composedPath?.()?.[0]||a.target;return b?.nodeType===1&&(cP.includes(b.nodeName)||b.hasAttribute("contenteditable")||!!b.closest(".nokey"))}let cR=(a,b)=>{let c="clientX"in a,d=c?a.clientX:a.touches?.[0].clientX,e=c?a.clientY:a.touches?.[0].clientY;return{x:d-(b?.left??0),y:e-(b?.top??0)}},cS=(a,b,c,d,e)=>{let f=b.querySelectorAll(`.${a}`);return f&&f.length?Array.from(f).map(b=>{let f=b.getBoundingClientRect();return{id:b.getAttribute("data-handleid"),type:a,nodeId:e,position:b.getAttribute("data-handlepos"),x:(f.left-c.left)/d,y:(f.top-c.top)/d,...cN(b)}}):null};function cT({sourceX:a,sourceY:b,targetX:c,targetY:d,sourceControlX:e,sourceControlY:f,targetControlX:g,targetControlY:h}){let i=.125*a+.375*e+.375*g+.125*c,j=.125*b+.375*f+.375*h+.125*d,k=Math.abs(i-a),l=Math.abs(j-b);return[i,j,k,l]}function cU(a,b){return a>=0?.5*a:25*b*Math.sqrt(-a)}function cV({pos:a,x1:b,y1:c,x2:d,y2:e,c:f}){switch(a){case p.Left:return[b-cU(b-d,f),c];case p.Right:return[b+cU(d-b,f),c];case p.Top:return[b,c-cU(c-e,f)];case p.Bottom:return[b,c+cU(e-c,f)]}}function cW({sourceX:a,sourceY:b,sourcePosition:c=p.Bottom,targetX:d,targetY:e,targetPosition:f=p.Top,curvature:g=.25}){let[h,i]=cV({pos:c,x1:a,y1:b,x2:d,y2:e,c:g}),[j,k]=cV({pos:f,x1:d,y1:e,x2:a,y2:b,c:g}),[l,m,n,o]=cT({sourceX:a,sourceY:b,targetX:d,targetY:e,sourceControlX:h,sourceControlY:i,targetControlX:j,targetControlY:k});return[`M${a},${b} C${h},${i} ${j},${k} ${d},${e}`,l,m,n,o]}function cX({sourceX:a,sourceY:b,targetX:c,targetY:d}){let e=Math.abs(c-a)/2,f=Math.abs(d-b)/2;return[c<a?c+e:c-e,d<b?d+f:d-f,e,f]}let cY=({source:a,sourceHandle:b,target:c,targetHandle:d})=>`xy-edge__${a}${b||""}-${c}${d||""}`;function cZ({sourceX:a,sourceY:b,targetX:c,targetY:d}){let[e,f,g,h]=cX({sourceX:a,sourceY:b,targetX:c,targetY:d});return[`M ${a},${b}L ${c},${d}`,e,f,g,h]}let c$={[p.Left]:{x:-1,y:0},[p.Right]:{x:1,y:0},[p.Top]:{x:0,y:-1},[p.Bottom]:{x:0,y:1}},c_=(a,b)=>Math.sqrt(Math.pow(b.x-a.x,2)+Math.pow(b.y-a.y,2));function c0({sourceX:a,sourceY:b,sourcePosition:c=p.Bottom,targetX:d,targetY:e,targetPosition:f=p.Top,borderRadius:g=5,centerX:h,centerY:i,offset:j=20,stepPosition:k=.5}){let[l,m,n,o,q]=function({source:a,sourcePosition:b=p.Bottom,target:c,targetPosition:d=p.Top,center:e,offset:f,stepPosition:g}){let h,i,j=c$[b],k=c$[d],l={x:a.x+j.x*f,y:a.y+j.y*f},m={x:c.x+k.x*f,y:c.y+k.y*f},n=(({source:a,sourcePosition:b=p.Bottom,target:c})=>b===p.Left||b===p.Right?a.x<c.x?{x:1,y:0}:{x:-1,y:0}:a.y<c.y?{x:0,y:1}:{x:0,y:-1})({source:l,sourcePosition:b,target:m}),o=0!==n.x?"x":"y",q=n[o],r=[],s={x:0,y:0},t={x:0,y:0},[,,u,v]=cX({sourceX:a.x,sourceY:a.y,targetX:c.x,targetY:c.y});if(j[o]*k[o]==-1){"x"===o?(h=e.x??l.x+(m.x-l.x)*g,i=e.y??(l.y+m.y)/2):(h=e.x??(l.x+m.x)/2,i=e.y??l.y+(m.y-l.y)*g);let a=[{x:h,y:l.y},{x:h,y:m.y}],b=[{x:l.x,y:i},{x:m.x,y:i}];r=j[o]===q?"x"===o?a:b:"x"===o?b:a}else{let e=[{x:l.x,y:m.y}],g=[{x:m.x,y:l.y}];if(r="x"===o?j.x===q?g:e:j.y===q?e:g,b===d){let b=Math.abs(a[o]-c[o]);if(b<=f){let d=Math.min(f-1,f-b);j[o]===q?s[o]=(l[o]>a[o]?-1:1)*d:t[o]=(m[o]>c[o]?-1:1)*d}}if(b!==d){let a="x"===o?"y":"x",b=j[o]===k[a],c=l[a]>m[a],d=l[a]<m[a];(1===j[o]&&(!b&&c||b&&d)||1!==j[o]&&(!b&&d||b&&c))&&(r="x"===o?e:g)}let n={x:l.x+s.x,y:l.y+s.y},p={x:m.x+t.x,y:m.y+t.y};Math.max(Math.abs(n.x-r[0].x),Math.abs(p.x-r[0].x))>=Math.max(Math.abs(n.y-r[0].y),Math.abs(p.y-r[0].y))?(h=(n.x+p.x)/2,i=r[0].y):(h=r[0].x,i=(n.y+p.y)/2)}let w={x:l.x+s.x,y:l.y+s.y},x={x:m.x+t.x,y:m.y+t.y};return[[a,...w.x!==r[0].x||w.y!==r[0].y?[w]:[],...r,...x.x!==r[r.length-1].x||x.y!==r[r.length-1].y?[x]:[],c],h,i,u,v]}({source:{x:a,y:b},sourcePosition:c,target:{x:d,y:e},targetPosition:f,center:{x:h,y:i},offset:j,stepPosition:k}),r=`M${l[0].x} ${l[0].y}`;for(let a=1;a<l.length-1;a++)r+=function(a,b,c,d){let e=Math.min(c_(a,b)/2,c_(b,c)/2,d),{x:f,y:g}=b;if(a.x===f&&f===c.x||a.y===g&&g===c.y)return`L${f} ${g}`;if(a.y===g){let b=a.x<c.x?-1:1,d=a.y<c.y?1:-1;return`L ${f+e*b},${g}Q ${f},${g} ${f},${g+e*d}`}let h=a.x<c.x?1:-1,i=a.y<c.y?-1:1;return`L ${f},${g+e*i}Q ${f},${g} ${f+e*h},${g}`}(l[a-1],l[a],l[a+1],g);return[r+=`L${l[l.length-1].x} ${l[l.length-1].y}`,m,n,o,q]}function c1(a){return a&&!!(a.internals.handleBounds||a.handles?.length)&&!!(a.measured.width||a.width||a.initialWidth)}function c2(a){if(!a)return null;let b=[],c=[];for(let d of a)d.width=d.width??1,d.height=d.height??1,"source"===d.type?b.push(d):"target"===d.type&&c.push(d);return{source:b,target:c}}function c3(a,b,c=p.Left,d=!1){let e=(b?.x??0)+a.internals.positionAbsolute.x,f=(b?.y??0)+a.internals.positionAbsolute.y,{width:g,height:h}=b??cI(a);if(d)return{x:e+g/2,y:f+h/2};switch(b?.position??c){case p.Top:return{x:e+g/2,y:f};case p.Right:return{x:e+g,y:f+h/2};case p.Bottom:return{x:e+g/2,y:f+h};case p.Left:return{x:e,y:f+h/2}}}function c4(a,b){return a&&(b?a.find(a=>a.id===b):a[0])||null}function c5(a,b){if(!a)return"";if("string"==typeof a)return a;let c=b?`${b}__`:"";return`${c}${Object.keys(a).sort().map(b=>`${b}=${a[b]}`).join("&")}`}let c6={nodeOrigin:[0,0],nodeExtent:b7,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},c7={...c6,checkEquality:!0};function c8(a,b){let c={...a};for(let a in b)void 0!==b[a]&&(c[a]=b[a]);return c}function c9(a){return"manual"===a}function da(a,b,c,d={}){let e=c8(c7,d),f={i:0},g=new Map(b),h=e?.elevateNodesOnSelect&&!c9(e.zIndexMode)?1e3:0,i=a.length>0,j=!1;for(let k of(b.clear(),c.clear(),a)){let a=g.get(k.id);if(e.checkEquality&&k===a?.internals.userNode)b.set(k.id,a);else{let c=cm(cf(k,e.nodeOrigin),cH(k.extent)?k.extent:e.nodeExtent,cI(k));a={...e.defaults,...k,measured:{width:k.measured?.width,height:k.measured?.height},internals:{positionAbsolute:c,handleBounds:function(a,b){if(!a.handles)return a.measured?b?.internals.handleBounds:void 0;let c=[],d=[];for(let b of a.handles){let e={id:b.id,width:b.width??1,height:b.height??1,nodeId:a.id,x:b.x,y:b.y,position:b.position,type:b.type};"source"===b.type?c.push(e):"target"===b.type&&d.push(e)}return{source:c,target:d}}(k,a),z:dc(k,h,e.zIndexMode),userNode:k}},b.set(k.id,a)}void 0!==a.measured&&void 0!==a.measured.width&&void 0!==a.measured.height||a.hidden||(i=!1),k.parentId&&db(a,b,c,d,f),j||=k.selected??!1}return{nodesInitialized:i,hasSelectedNodes:j}}function db(a,b,c,d,e){let{elevateNodesOnSelect:f,nodeOrigin:g,nodeExtent:h,zIndexMode:i}=c8(c6,d),j=a.parentId,k=b.get(j);if(!k)return void console.warn(`Parent node ${j} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);!function(a,b){if(!a.parentId)return;let c=b.get(a.parentId);c?c.set(a.id,a):b.set(a.parentId,new Map([[a.id,a]]))}(a,c),e&&!k.parentId&&void 0===k.internals.rootParentIndex&&"auto"===i&&(k.internals.rootParentIndex=++e.i,k.internals.z=k.internals.z+10*e.i),e&&void 0!==k.internals.rootParentIndex&&(e.i=k.internals.rootParentIndex);let{x:l,y:m,z:n}=function(a,b,c,d,e,f){let{x:g,y:h}=b.internals.positionAbsolute,i=cI(a),j=cf(a,c),k=cH(a.extent)?cm(j,a.extent,i):j,l=cm({x:g+k.x,y:h+k.y},d,i);"parent"===a.extent&&(l=cn(l,i,b));let m=dc(a,e,f),n=b.internals.z??0;return{x:l.x,y:l.y,z:n>=m?n+1:m}}(a,k,g,h,f&&!c9(i)?1e3:0,i),{positionAbsolute:o}=a.internals,p=l!==o.x||m!==o.y;(p||n!==a.internals.z)&&b.set(a.id,{...a,internals:{...a.internals,positionAbsolute:p?{x:l,y:m}:o,z:n}})}function dc(a,b,c){let d=cz(a.zIndex)?a.zIndex:0;return c9(c)?d:d+(a.selected?b:0)}function dd(a,b,c,d=[0,0]){let e=[],f=new Map;for(let c of a){let a=b.get(c.parentId);if(!a)continue;let d=cv(f.get(c.parentId)?.expandedRect??ct(a),c.rect);f.set(c.parentId,{expandedRect:d,parent:a})}return f.size>0&&f.forEach(({expandedRect:b,parent:f},g)=>{let h=f.internals.positionAbsolute,i=cI(f),j=f.origin??d,k=b.x<h.x?Math.round(Math.abs(h.x-b.x)):0,l=b.y<h.y?Math.round(Math.abs(h.y-b.y)):0,m=Math.max(i.width,Math.round(b.width)),n=Math.max(i.height,Math.round(b.height)),o=(m-i.width)*j[0],p=(n-i.height)*j[1];(k>0||l>0||o||p)&&(e.push({id:g,type:"position",position:{x:f.position.x-k+o,y:f.position.y-l+p}}),c.get(g)?.forEach(b=>{a.some(a=>a.id===b.id)||e.push({id:b.id,type:"position",position:{x:b.position.x+k,y:b.position.y+l}})})),(i.width<b.width||i.height<b.height||k||l)&&e.push({id:g,type:"dimensions",setAttributes:!0,dimensions:{width:m+(k?j[0]*k-o:0),height:n+(l?j[1]*l-p:0)}})}),e}async function de({delta:a,panZoom:b,transform:c,translateExtent:d,width:e,height:f}){if(!b||!a.x&&!a.y)return!1;let g=await b.setViewportConstrained({x:c[0]+a.x,y:c[1]+a.y,zoom:c[2]},[[0,0],[e,f]],d);return!!g&&(g.x!==c[0]||g.y!==c[1]||g.k!==c[2])}function df(a,b,c,d,e,f){let g=e,h=d.get(g)||new Map;d.set(g,h.set(c,b)),g=`${e}-${a}`;let i=d.get(g)||new Map;if(d.set(g,i.set(c,b)),f){g=`${e}-${a}-${f}`;let h=d.get(g)||new Map;d.set(g,h.set(c,b))}}function dg(a,b,c){for(let d of(a.clear(),b.clear(),c)){let{source:c,target:e,sourceHandle:f=null,targetHandle:g=null}=d,h={edgeId:d.id,source:c,target:e,sourceHandle:f,targetHandle:g},i=`${c}-${f}--${e}-${g}`;df("source",h,`${e}-${g}--${c}-${f}`,a,c,f),df("target",h,i,a,e,g),b.set(d.id,d)}}function dh(a,b,c){let d=a;do{if(d?.matches?.(b))return!0;if(d===c)break;d=d?.parentElement}while(d)return!1}function di({nodeId:a,dragItems:b,nodeLookup:c,dragging:d=!0}){let e=[];for(let[a,f]of b){let b=c.get(a)?.internals.userNode;b&&e.push({...b,position:f.position,dragging:d})}if(!a)return[e[0],e];let f=c.get(a)?.internals.userNode;return[f?{...f,position:b.get(a)?.position||f.position,dragging:d}:e[0],e]}function dj(a,b,c,d,e,f=!1){let g=d.get(a);if(!g)return null;let h="strict"===e?g.internals.handleBounds?.[b]:[...g.internals.handleBounds?.source??[],...g.internals.handleBounds?.target??[]],i=(c?h?.find(a=>a.id===c):h?.[0])??null;return i&&f?{...i,...c3(g,i,i.position,!0)}:i}function dk(a,b){return a?a:b?.classList.contains("target")?"target":b?.classList.contains("source")?"source":null}let dl=()=>!0;function dm(a,{handle:b,connectionMode:c,fromNodeId:d,fromHandleId:e,fromType:f,doc:g,lib:h,flowId:i,isValidConnection:j=dl,nodeLookup:l}){let m="target"===f,n=b?g.querySelector(`.${h}-flow__handle[data-id="${i}-${b?.nodeId}-${b?.id}-${b?.type}"]`):null,{x:o,y:p}=cR(a),q=g.elementFromPoint(o,p),r=q?.classList.contains(`${h}-flow__handle`)?q:n,s={handleDomNode:r,isValid:!1,connection:null,toHandle:null};if(r){let a=dk(void 0,r),b=r.getAttribute("data-nodeid"),f=r.getAttribute("data-handleid"),g=r.classList.contains("connectable"),h=r.classList.contains("connectableend");if(!b||!a)return s;let i={source:m?b:d,sourceHandle:m?f:e,target:m?d:b,targetHandle:m?e:f};s.connection=i,s.isValid=g&&h&&(c===k.Strict?m&&"source"===a||!m&&"target"===a:b!==d||f!==e)&&j(i),s.toHandle=dj(b,a,f,l,c,!0)}return s}let dn=function(a,{connectionMode:b,connectionRadius:c,handleId:d,nodeId:e,edgeUpdaterType:f,isTarget:g,domNode:h,nodeLookup:i,lib:j,autoPanOnConnect:k,flowId:l,panBy:m,cancelConnection:n,onConnectStart:o,onConnect:q,onConnectEnd:r,isValidConnection:s=dl,onReconnectEnd:t,updateConnection:u,getTransform:v,getFromHandle:w,autoPanSpeed:x,dragThreshold:y=1,handleDomNode:z}){let A,B=cO(a.target),C=0,{x:D,y:E}=cR(a),F=dk(f,z),G=h?.getBoundingClientRect(),H=!1;if(!G||!F)return;let I=dj(e,F,d,i,b);if(!I)return;let J=cR(a,G),K=!1,L=null,M=!1,N=null,O={...I,nodeId:e,type:F,position:I.position},P=i.get(e),Q={inProgress:!0,isValid:null,from:c3(P,O,p.Left,!0),fromHandle:O,fromPosition:O.position,fromNode:P,to:J,toHandle:null,toPosition:cb[O.position],toNode:null,pointer:J};function R(){H=!0,u(Q),o?.(a,{nodeId:e,handleId:d,handleType:F})}function S(a){var f,h;let n;if(!H){let{x:b,y:c}=cR(a),d=b-D,e=c-E;if(!(d*d+e*e>y*y))return;R()}if(!w()||!O)return void T(a);let o=v();A=function(a,b,c,d){let e=[],f=1/0;for(let g of function(a,b,c){let d=[],e={x:a.x-c,y:a.y-c,width:2*c,height:2*c};for(let a of b.values())cx(e,ct(a))>0&&d.push(a);return d}(a,c,b+250))for(let c of[...g.internals.handleBounds?.source??[],...g.internals.handleBounds?.target??[]]){if(d.nodeId===c.nodeId&&d.type===c.type&&d.id===c.id)continue;let{x:h,y:i}=c3(g,c,c.position,!0),j=Math.sqrt(Math.pow(h-a.x,2)+Math.pow(i-a.y,2));j>b||(j<f?(e=[{...c,x:h,y:i}],f=j):j===f&&e.push({...c,x:h,y:i}))}if(!e.length)return null;if(e.length>1){let a="source"===d.type?"target":"source";return e.find(b=>b.type===a)??e[0]}return e[0]}(cC(J=cR(a,G),o,!1,[1,1]),c,i,O),K||(!function a(){if(!k||!G)return;let[b,c]=cp(J,G,x);m({x:b,y:c}),C=requestAnimationFrame(a)}(),K=!0);let q=dm(a,{handle:A,connectionMode:b,fromNodeId:e,fromHandleId:d,fromType:g?"target":"source",isValidConnection:s,doc:B,lib:j,flowId:l,nodeLookup:i});N=q.handleDomNode,L=q.connection,f=!!A,h=q.isValid,n=null,h?n=!0:f&&!h&&(n=!1),M=n;let r=i.get(e),t=r?c3(r,O,p.Left,!0):Q.from,z={...Q,from:t,isValid:M,to:q.toHandle&&M?cD({x:q.toHandle.x,y:q.toHandle.y},o):J,toHandle:q.toHandle,toPosition:M&&q.toHandle?q.toHandle.position:cb[O.position],toNode:q.toHandle?i.get(q.toHandle.nodeId):null,pointer:J};u(z),Q=z}function T(a){if(!("touches"in a)||!(a.touches.length>0)){if(H){(A||N)&&L&&M&&q?.(L);let{inProgress:b,...c}=Q,d={...c,toPosition:Q.toHandle?Q.toPosition:null};r?.(a,d),f&&t?.(a,d)}n(),cancelAnimationFrame(C),K=!1,M=!1,L=null,N=null,B.removeEventListener("mousemove",S),B.removeEventListener("mouseup",T),B.removeEventListener("touchmove",S),B.removeEventListener("touchend",T)}}0===y&&R(),B.addEventListener("mousemove",S),B.addEventListener("mouseup",T),B.addEventListener("touchmove",S),B.addEventListener("touchend",T)},dp=a=>({x:a.x,y:a.y,zoom:a.k}),dq=({x:a,y:b,zoom:c})=>bX.translate(a,b).scale(c),dr=(a,b)=>a.target.closest(`.${b}`),ds=(a,b)=>2===b&&Array.isArray(a)&&a.includes(2),dt=a=>((a*=2)<=1?a*a*a:(a-=2)*a*a+2)/2,du=(a,b=0,c=dt,d=()=>{})=>{let e="number"==typeof b&&b>0;return e||d(),e?a.transition().duration(b).ease(c).on("end",d):a},dv=a=>{let b=a.ctrlKey&&cG()?10:1;return-a.deltaY*(1===a.deltaMode?.05:a.deltaMode?1:.002)*b};function dw(a){let b=a.includes("right")||a.includes("left"),c=a.includes("bottom")||a.includes("top");return{isHorizontal:b,isVertical:c,affectsX:a.includes("left"),affectsY:a.includes("top")}}function dx(a,b){return Math.max(0,b-a)}function dy(a,b){return Math.max(0,a-b)}function dz(a,b,c){return Math.max(0,b-a,a-c)}(h=q||(q={})).Line="line",h.Handle="handle";let dA={width:0,height:0,x:0,y:0},dB={...dA,pointerX:0,pointerY:0,aspectRatio:1};var dC=a.i(64442);let dD=a=>{let b,c=new Set,d=(a,d)=>{let e="function"==typeof a?a(b):a;if(!Object.is(e,b)){let a=b;b=(null!=d?d:"object"!=typeof e||null===e)?e:Object.assign({},b,e),c.forEach(c=>c(b,a))}},e=()=>b,f={setState:d,getState:e,getInitialState:()=>g,subscribe:a=>(c.add(a),()=>c.delete(a)),destroy:()=>{c.clear()}},g=b=a(d,e,f);return f},{useDebugValue:dE}=t.default,{useSyncExternalStoreWithSelector:dF}=dC.default,dG=a=>a;function dH(a,b=dG,c){let d=dF(a.subscribe,a.getState,a.getServerState||a.getInitialState,b,c);return dE(d),d}let dI=(a,b)=>{let c=a?dD(a):dD,d=(a,d=b)=>dH(c,a,d);return Object.assign(d,c),d};function dJ(a,b){if(Object.is(a,b))return!0;if("object"!=typeof a||null===a||"object"!=typeof b||null===b)return!1;if(a instanceof Map&&b instanceof Map){if(a.size!==b.size)return!1;for(let[c,d]of a)if(!Object.is(d,b.get(c)))return!1;return!0}if(a instanceof Set&&b instanceof Set){if(a.size!==b.size)return!1;for(let c of a)if(!b.has(c))return!1;return!0}let c=Object.keys(a);if(c.length!==Object.keys(b).length)return!1;for(let d of c)if(!Object.prototype.hasOwnProperty.call(b,d)||!Object.is(a[d],b[d]))return!1;return!0}var dK=a.i(35112);let dL=(0,t.createContext)(null),dM=dL.Provider,dN=((a="react")=>`Seems like you have not used ${"svelte"===a?"SvelteFlowProvider":"ReactFlowProvider"} as an ancestor. Help: https://${a}flow.dev/error#001`)("react");function dO(a,b){let c=(0,t.useContext)(dL);if(null===c)throw Error(dN);return dH(c,a,b)}function dP(){let a=(0,t.useContext)(dL);if(null===a)throw Error(dN);return(0,t.useMemo)(()=>({getState:a.getState,setState:a.setState,subscribe:a.subscribe}),[a])}let dQ={display:"none"},dR={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},dS="react-flow__node-desc",dT="react-flow__edge-desc",dU=a=>a.ariaLiveMessage,dV=a=>a.ariaLabelConfig;function dW({rfId:a}){let b=dO(dU);return(0,s.jsx)("div",{id:`react-flow__aria-live-${a}`,"aria-live":"assertive","aria-atomic":"true",style:dR,children:b})}function dX({rfId:a,disableKeyboardA11y:b}){let c=dO(dV);return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("div",{id:`${dS}-${a}`,style:dQ,children:b?c["node.a11yDescription.default"]:c["node.a11yDescription.keyboardDisabled"]}),(0,s.jsx)("div",{id:`${dT}-${a}`,style:dQ,children:c["edge.a11yDescription.default"]}),!b&&(0,s.jsx)(dW,{rfId:a})]})}let dY=(0,t.forwardRef)(({position:a="top-left",children:b,className:c,style:d,...e},f)=>{let g=`${a}`.split("-");return(0,s.jsx)("div",{className:u(["react-flow__panel",c,...g]),style:d,ref:f,...e,children:b})});dY.displayName="Panel";let dZ="https://reactflow.dev?utm_source=attribution";function d$({proOptions:a,position:b="bottom-right"}){return a?.hideAttribution?null:(0,s.jsx)(dY,{position:b,className:"react-flow__attribution","data-message":`Please only hide this attribution when you are subscribed to React Flow Pro: ${dZ}`,children:(0,s.jsx)("a",{href:dZ,target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution",children:"React Flow"})})}let d_=a=>{let b=[],c=[];for(let[,c]of a.nodeLookup)c.selected&&b.push(c.internals.userNode);for(let[,b]of a.edgeLookup)b.selected&&c.push(b);return{selectedNodes:b,selectedEdges:c}},d0=a=>a.id;function d1(a,b){return dJ(a.selectedNodes.map(d0),b.selectedNodes.map(d0))&&dJ(a.selectedEdges.map(d0),b.selectedEdges.map(d0))}function d2({onSelectionChange:a}){let b=dP(),{selectedNodes:c,selectedEdges:d}=dO(d_,d1);return(0,t.useEffect)(()=>{let e={nodes:c,edges:d};a?.(e),b.getState().onSelectionChangeHandlers.forEach(a=>a(e))},[c,d,a]),null}let d3=a=>!!a.onSelectionChangeHandlers;function d4({onSelectionChange:a}){let b=dO(d3);return a||b?(0,s.jsx)(d2,{onSelectionChange:a}):null}let d5=[0,0],d6={x:0,y:0,zoom:1},d7=["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","rfId"],d8=a=>({setNodes:a.setNodes,setEdges:a.setEdges,setMinZoom:a.setMinZoom,setMaxZoom:a.setMaxZoom,setTranslateExtent:a.setTranslateExtent,setNodeExtent:a.setNodeExtent,reset:a.reset,setDefaultNodesAndEdges:a.setDefaultNodesAndEdges}),d9={translateExtent:b7,nodeOrigin:d5,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:"nopan",rfId:"1"};function ea(a){let{setNodes:b,setEdges:c,setMinZoom:d,setMaxZoom:e,setTranslateExtent:f,setNodeExtent:g,reset:h,setDefaultNodesAndEdges:i}=dO(d8,dJ),j=dP();(0,t.useEffect)(()=>(i(a.defaultNodes,a.defaultEdges),()=>{k.current=d9,h()}),[]);let k=(0,t.useRef)(d9);return(0,t.useEffect)(()=>{for(let h of d7){let i=a[h];if(i!==k.current[h]&&void 0!==a[h])if("nodes"===h)b(i);else if("edges"===h)c(i);else if("minZoom"===h)d(i);else if("maxZoom"===h)e(i);else if("translateExtent"===h)f(i);else if("nodeExtent"===h)g(i);else if("ariaLabelConfig"===h)j.setState({ariaLabelConfig:{...b9,...i||{}}});else"fitView"===h?j.setState({fitViewQueued:i}):"fitViewOptions"===h?j.setState({fitViewOptions:i}):j.setState({[h]:i})}k.current=a},d7.map(b=>a[b])),null}let eb="u">typeof document?document:null;function ec(a=null,b={target:eb,actInsideInputWithModifier:!0}){let[c,d]=(0,t.useState)(!1),e=(0,t.useRef)(!1),f=(0,t.useRef)(new Set([])),[g,h]=(0,t.useMemo)(()=>{if(null!==a){let b=(Array.isArray(a)?a:[a]).filter(a=>"string"==typeof a).map(a=>a.replace("+","\n").replace("\n\n","\n+").split("\n")),c=b.reduce((a,b)=>a.concat(...b),[]);return[b,c]}return[[],[]]},[a]);return(0,t.useEffect)(()=>{let c=b?.target??eb,i=b?.actInsideInputWithModifier??!0;if(null!==a){let a=a=>{if(e.current=a.ctrlKey||a.metaKey||a.shiftKey||a.altKey,(!e.current||e.current&&!i)&&cQ(a))return!1;let c=ee(a.code,h);if(f.current.add(a[c]),ed(g,f.current,!1)){let c=a.composedPath?.()?.[0]||a.target,f=c?.nodeName==="BUTTON"||c?.nodeName==="A";!1!==b.preventDefault&&(e.current||!f)&&a.preventDefault(),d(!0)}},j=a=>{let b=ee(a.code,h);ed(g,f.current,!0)?(d(!1),f.current.clear()):f.current.delete(a[b]),"Meta"===a.key&&f.current.clear(),e.current=!1},k=()=>{f.current.clear(),d(!1)};return c?.addEventListener("keydown",a),c?.addEventListener("keyup",j),window.addEventListener("blur",k),window.addEventListener("contextmenu",k),()=>{c?.removeEventListener("keydown",a),c?.removeEventListener("keyup",j),window.removeEventListener("blur",k),window.removeEventListener("contextmenu",k)}}},[a,d]),c}function ed(a,b,c){return a.filter(a=>c||a.length===b.size).some(a=>a.every(a=>b.has(a)))}function ee(a,b){return b.includes(a)?"code":"key"}function ef(a,b){let c=[],d=new Map,e=[];for(let b of a)if("add"===b.type){e.push(b);continue}else if("remove"===b.type||"replace"===b.type)d.set(b.id,[b]);else{let a=d.get(b.id);a?a.push(b):d.set(b.id,[b])}for(let a of b){let b=d.get(a.id);if(!b){c.push(a);continue}if("remove"===b[0].type)continue;if("replace"===b[0].type){c.push({...b[0].item});continue}let e={...a};for(let a of b){var f=a,g=e;switch(f.type){case"select":g.selected=f.selected;break;case"position":void 0!==f.position&&(g.position=f.position),void 0!==f.dragging&&(g.dragging=f.dragging);break;case"dimensions":void 0!==f.dimensions&&(g.measured={...f.dimensions},f.setAttributes&&((!0===f.setAttributes||"width"===f.setAttributes)&&(g.width=f.dimensions.width),(!0===f.setAttributes||"height"===f.setAttributes)&&(g.height=f.dimensions.height))),"boolean"==typeof f.resizing&&(g.resizing=f.resizing)}}c.push(e)}return e.length&&e.forEach(a=>{void 0!==a.index?c.splice(a.index,0,{...a.item}):c.push({...a.item})}),c}function eg(a,b){return{id:a,type:"select",selected:b}}function eh(a,b=new Set,c=!1){let d=[];for(let[e,f]of a){let a=b.has(e);(void 0!==f.selected||a)&&f.selected!==a&&(c&&(f.selected=a),d.push(eg(f.id,a)))}return d}function ei({items:a=[],lookup:b}){let c=[],d=new Map(a.map(a=>[a.id,a]));for(let[d,e]of a.entries()){let a=b.get(e.id),f=a?.internals?.userNode??a;void 0!==f&&f!==e&&c.push({id:e.id,item:e,type:"replace"}),void 0===f&&c.push({item:e,type:"add",index:d})}for(let[a]of b)void 0===d.get(a)&&c.push({id:a,type:"remove"});return c}function ej(a){return{id:a.id,type:"remove"}}let ek=cA("React Flow","https://reactflow.dev/"),el=a=>!!a&&"object"==typeof a&&"id"in a&&"position"in a&&!("source"in a)&&!("target"in a);function em(a){return(0,t.forwardRef)(a)}let en=t.useEffect;function eo(a){let[b,c]=(0,t.useState)(BigInt(0)),[d]=(0,t.useState)(()=>{var a;let b;return a=()=>c(a=>a+BigInt(1)),b=[],{get:()=>b,reset:()=>{b=[]},push:c=>{b.push(c),a()}}});return en(()=>{let b=d.get();b.length&&(a(b),d.reset())},[b]),d}let ep=(0,t.createContext)(null);function eq({children:a}){let b=dP(),c=eo((0,t.useCallback)(a=>{let{nodes:c=[],setNodes:d,hasDefaultNodes:e,onNodesChange:f,nodeLookup:g,fitViewQueued:h,onNodesChangeMiddlewareMap:i}=b.getState(),j=c;for(let b of a)j="function"==typeof b?b(j):b;let k=ei({items:j,lookup:g});for(let a of i.values())k=a(k);e&&d(j),k.length>0?f?.(k):h&&window.requestAnimationFrame(()=>{let{fitViewQueued:a,nodes:c,setNodes:d}=b.getState();a&&d(c)})},[])),d=eo((0,t.useCallback)(a=>{let{edges:c=[],setEdges:d,hasDefaultEdges:e,onEdgesChange:f,edgeLookup:g}=b.getState(),h=c;for(let b of a)h="function"==typeof b?b(h):b;e?d(h):f&&f(ei({items:h,lookup:g}))},[])),e=(0,t.useMemo)(()=>({nodeQueue:c,edgeQueue:d}),[]);return(0,s.jsx)(ep.Provider,{value:e,children:a})}let er=a=>!!a.panZoom;function es(){let a,b=(a=dP(),(0,t.useMemo)(()=>({zoomIn:async b=>{let{panZoom:c}=a.getState();return!!c&&c.scaleBy(1.2,b)},zoomOut:async b=>{let{panZoom:c}=a.getState();return!!c&&c.scaleBy(1/1.2,b)},zoomTo:async(b,c)=>{let{panZoom:d}=a.getState();return!!d&&d.scaleTo(b,c)},getZoom:()=>a.getState().transform[2],setViewport:async(b,c)=>{let{transform:[d,e,f],panZoom:g}=a.getState();return!!g&&(await g.setViewport({x:b.x??d,y:b.y??e,zoom:b.zoom??f},c),!0)},getViewport:()=>{let[b,c,d]=a.getState().transform;return{x:b,y:c,zoom:d}},setCenter:async(b,c,d)=>a.getState().setCenter(b,c,d),fitBounds:async(b,c)=>{let{width:d,height:e,minZoom:f,maxZoom:g,panZoom:h}=a.getState(),i=cF(b,d,e,f,g,c?.padding??.1);return!!h&&(await h.setViewport(i,{duration:c?.duration,ease:c?.ease,interpolate:c?.interpolate}),!0)},screenToFlowPosition:(b,c={})=>{let{transform:d,snapGrid:e,snapToGrid:f,domNode:g}=a.getState();if(!g)return b;let{x:h,y:i}=g.getBoundingClientRect(),j={x:b.x-h,y:b.y-i},k=c.snapGrid??e;return cC(j,d,c.snapToGrid??f,k)},flowToScreenPosition:b=>{let{transform:c,domNode:d}=a.getState();if(!d)return b;let{x:e,y:f}=d.getBoundingClientRect(),g=cD(b,c);return{x:g.x+e,y:g.y+f}}}),[])),c=dP(),d=function(){let a=(0,t.useContext)(ep);if(!a)throw Error("useBatchContext must be used within a BatchProvider");return a}(),e=dO(er),f=(0,t.useMemo)(()=>{let a=a=>c.getState().nodeLookup.get(a),b=a=>{d.nodeQueue.push(a)},e=a=>{d.edgeQueue.push(a)},f=a=>{let{nodeLookup:b,nodeOrigin:d}=c.getState(),e=el(a)?a:b.get(a.id),f=e.parentId?cK(e.position,e.measured,e.parentId,b,d):e.position;return ct({...e,position:f,width:e.measured?.width??e.width,height:e.measured?.height??e.height})},g=(a,c,d={replace:!1})=>{b(b=>b.map(b=>{if(b.id===a){let a="function"==typeof c?c(b):c;return d.replace&&el(a)?a:{...b,...a}}return b}))},h=(a,b,c={replace:!1})=>{e(d=>d.map(d=>{if(d.id===a){let a="function"==typeof b?b(d):b;return c.replace&&cd(a)?a:{...d,...a}}return d}))};return{getNodes:()=>c.getState().nodes.map(a=>({...a})),getNode:b=>a(b)?.internals.userNode,getInternalNode:a,getEdges:()=>{let{edges:a=[]}=c.getState();return a.map(a=>({...a}))},getEdge:a=>c.getState().edgeLookup.get(a),setNodes:b,setEdges:e,addNodes:a=>{let b=Array.isArray(a)?a:[a];d.nodeQueue.push(a=>[...a,...b])},addEdges:a=>{let b=Array.isArray(a)?a:[a];d.edgeQueue.push(a=>[...a,...b])},toObject:()=>{let{nodes:a=[],edges:b=[],transform:d}=c.getState(),[e,f,g]=d;return{nodes:a.map(a=>({...a})),edges:b.map(a=>({...a})),viewport:{x:e,y:f,zoom:g}}},deleteElements:async({nodes:a=[],edges:b=[]})=>{let{nodes:d,edges:e,onNodesDelete:f,onEdgesDelete:g,triggerNodeChanges:h,triggerEdgeChanges:i,onDelete:j,onBeforeDelete:k}=c.getState(),{nodes:l,edges:m}=await ck({nodesToRemove:a,edgesToRemove:b,nodes:d,edges:e,onBeforeDelete:k}),n=m.length>0,o=l.length>0;if(n){let a=m.map(ej);g?.(m),i(a)}if(o){let a=l.map(ej);f?.(l),h(a)}return(o||n)&&j?.({nodes:l,edges:m}),{deletedNodes:l,deletedEdges:m}},getIntersectingNodes:(a,b=!0,d)=>{let e=cy(a),g=e?a:f(a),h=void 0!==d;return g?(d||c.getState().nodes).filter(d=>{let f=c.getState().nodeLookup.get(d.id);if(f&&!e&&(d.id===a.id||!f.internals.positionAbsolute))return!1;let i=ct(h?d:f),j=cx(i,g);return b&&j>0||j>=i.width*i.height||j>=g.width*g.height}):[]},isNodeIntersecting:(a,b,c=!0)=>{let d=cy(a)?a:f(a);if(!d)return!1;let e=cx(d,b);return c&&e>0||e>=b.width*b.height||e>=d.width*d.height},updateNode:g,updateNodeData:(a,b,c={replace:!1})=>{g(a,a=>{let d="function"==typeof b?b(a):b;return c.replace?{...a,data:d}:{...a,data:{...a.data,...d}}},c)},updateEdge:h,updateEdgeData:(a,b,c={replace:!1})=>{h(a,a=>{let d="function"==typeof b?b(a):b;return c.replace?{...a,data:d}:{...a,data:{...a.data,...d}}},c)},getNodesBounds:a=>{let{nodeLookup:b,nodeOrigin:d}=c.getState();return((a,b={nodeOrigin:[0,0]})=>0===a.length?{x:0,y:0,width:0,height:0}:cs(a.reduce((a,c)=>{let d="string"==typeof c,e=b.nodeLookup||d?void 0:c;return b.nodeLookup&&(e=d?b.nodeLookup.get(c):ce(c)?c:b.nodeLookup.get(c.id)),cq(a,e?cu(e,b.nodeOrigin):{x:0,y:0,x2:0,y2:0})},{x:1/0,y:1/0,x2:-1/0,y2:-1/0})))(a,{nodeLookup:b,nodeOrigin:d})},getHandleConnections:({type:a,id:b,nodeId:d})=>Array.from(c.getState().connectionLookup.get(`${d}-${a}${b?`-${b}`:""}`)?.values()??[]),getNodeConnections:({type:a,handleId:b,nodeId:d})=>Array.from(c.getState().connectionLookup.get(`${d}${a?b?`-${a}-${b}`:`-${a}`:""}`)?.values()??[]),fitView:async a=>{let b,e,f=c.getState().fitViewResolver??{promise:new Promise((a,c)=>{b=a,e=c}),resolve:b,reject:e};return c.setState({fitViewQueued:!0,fitViewOptions:a,fitViewResolver:f}),d.nodeQueue.push(a=>[...a]),f.promise}}},[]);return(0,t.useMemo)(()=>({...f,...b,viewportInitialized:e}),[e])}let et=a=>a.selected,eu,ev={position:"absolute",width:"100%",height:"100%",top:0,left:0},ew=a=>({userSelectionActive:a.userSelectionActive,lib:a.lib,connectionInProgress:a.connection.inProgress});function ex({onPaneContextMenu:a,zoomOnScroll:b=!0,zoomOnPinch:c=!0,panOnScroll:d=!1,panOnScrollSpeed:e=.5,panOnScrollMode:f=l.Free,zoomOnDoubleClick:g=!0,panOnDrag:h=!0,defaultViewport:i,translateExtent:j,minZoom:k,maxZoom:m,zoomActivationKeyCode:n,preventScrolling:o=!0,children:p,noWheelClassName:q,noPanClassName:r,onViewportChange:u,isControlledViewport:v,paneClickDistance:w,selectionOnDrag:x}){let y,z=dP(),A=(0,t.useRef)(null),{userSelectionActive:B,lib:C,connectionInProgress:D}=dO(ew,dJ),E=ec(n),F=(0,t.useRef)();y=dP(),(0,t.useEffect)(()=>{let a=()=>{if(!A.current||!(A.current.checkVisibility?.()??!0))return!1;let a=cN(A.current);(0===a.height||0===a.width)&&y.getState().onError?.("004","The parent container needs a width and a height to render the graph."),y.setState({width:a.width||500,height:a.height||500})};if(A.current){a(),window.addEventListener("resize",a);let b=new ResizeObserver(()=>a());return b.observe(A.current),()=>{window.removeEventListener("resize",a),b&&A.current&&b.unobserve(A.current)}}},[]);let G=(0,t.useCallback)(a=>{u?.({x:a[0],y:a[1],zoom:a[2]}),v||z.setState({transform:a})},[u,v]);return(0,t.useEffect)(()=>{if(A.current){F.current=function({domNode:a,minZoom:b,maxZoom:c,translateExtent:d,viewport:e,onPanZoom:f,onPanZoomStart:g,onPanZoomEnd:h,onDraggingChange:i}){let j={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},k=a.getBoundingClientRect(),m=[[0,0],[k.width,k.height]],n="u">typeof ResizeObserver?new ResizeObserver(a=>{let b=a[0];b&&(m=[[0,0],[b.contentRect.width,b.contentRect.height]])}):null;n?.observe(a);let o=b5().extent(()=>m).scaleExtent([b,c]).translateExtent(d),p=am(a).call(o);u({x:e.x,y:e.y,zoom:cl(e.zoom,b,c)},[[0,0],[k.width,k.height]],d);let q=p.on("wheel.zoom"),r=p.on("dblclick.zoom");async function s(a,b){return!!p&&new Promise(c=>{o?.interpolate(b?.interpolate==="linear"?b6:aC).transform(du(p,b?.duration,b?.ease,()=>c(!0)),a)})}function t(){o.on("zoom",null)}async function u(a,b,c){let d=dq(a),e=o?.constrain()(d,b,c);return e&&await s(e),e}return o.wheelDelta(dv),{update:function({noWheelClassName:a,noPanClassName:b,onPaneContextMenu:c,userSelectionActive:d,panOnScroll:e,panOnDrag:k,panOnScrollMode:m,panOnScrollSpeed:n,preventScrolling:s,zoomOnPinch:u,zoomOnScroll:v,zoomOnDoubleClick:w,zoomActivationKeyPressed:x,lib:y,onTransformChange:z,connectionInProgress:A,paneClickDistance:B,selectionOnDrag:C}){d&&!j.isZoomingOrPanning&&t();let D=e&&!x&&!d;o.clickDistance(C?1/0:!cz(B)||B<0?0:B);let E=D?function({zoomPanValues:a,noWheelClassName:b,d3Selection:c,d3Zoom:d,panOnScrollMode:e,panOnScrollSpeed:f,zoomOnPinch:g,onPanZoomStart:h,onPanZoom:i,onPanZoomEnd:j}){return k=>{if(dr(k,b))return k.ctrlKey&&k.preventDefault(),!1;k.preventDefault(),k.stopImmediatePropagation();let m=c.property("__zoom").k||1;if(k.ctrlKey&&g){let a=an(k),b=m*Math.pow(2,dv(k));d.scaleTo(c,b,a,k);return}let n=1===k.deltaMode?20:1,o=e===l.Vertical?0:k.deltaX*n,p=e===l.Horizontal?0:k.deltaY*n;!cG()&&k.shiftKey&&e!==l.Vertical&&(o=k.deltaY*n,p=0),d.translateBy(c,-(o/m)*f,-(p/m)*f,{internal:!0});let q=dp(c.property("__zoom"));clearTimeout(a.panScrollTimeout),a.isPanScrolling?i?.(k,q):(a.isPanScrolling=!0,h?.(k,q)),a.panScrollTimeout=setTimeout(()=>{j?.(k,q),a.isPanScrolling=!1},150)}}({zoomPanValues:j,noWheelClassName:a,d3Selection:p,d3Zoom:o,panOnScrollMode:m,panOnScrollSpeed:n,zoomOnPinch:u,onPanZoomStart:g,onPanZoom:f,onPanZoomEnd:h}):function({noWheelClassName:a,preventScrolling:b,d3ZoomHandler:c}){return function(d,e){let f="wheel"===d.type,g=!b&&f&&!d.ctrlKey,h=dr(d,a);if(d.ctrlKey&&f&&h&&d.preventDefault(),g||h)return null;d.preventDefault(),c.call(this,d,e)}}({noWheelClassName:a,preventScrolling:s,d3ZoomHandler:q});p.on("wheel.zoom",E,{passive:!1});let F=function({zoomPanValues:a,onDraggingChange:b,onPanZoomStart:c}){return d=>{if(d.sourceEvent?.internal)return;let e=dp(d.transform);a.mouseButton=d.sourceEvent?.button||0,a.isZoomingOrPanning=!0,a.prevViewport=e,d.sourceEvent?.type==="mousedown"&&b(!0),c&&c?.(d.sourceEvent,e)}}({zoomPanValues:j,onDraggingChange:i,onPanZoomStart:g});o.on("start",F);let G=function({zoomPanValues:a,panOnDrag:b,onPaneContextMenu:c,onTransformChange:d,onPanZoom:e}){return f=>{a.usedRightMouseButton=!!(c&&ds(b,a.mouseButton??0)),f.sourceEvent?.sync||d([f.transform.x,f.transform.y,f.transform.k]),e&&!f.sourceEvent?.internal&&e?.(f.sourceEvent,dp(f.transform))}}({zoomPanValues:j,panOnDrag:k,onPaneContextMenu:!!c,onPanZoom:f,onTransformChange:z});o.on("zoom",G);let H=function({zoomPanValues:a,panOnDrag:b,panOnScroll:c,onDraggingChange:d,onPanZoomEnd:e,onPaneContextMenu:f}){return g=>{if(!g.sourceEvent?.internal&&(a.isZoomingOrPanning=!1,f&&ds(b,a.mouseButton??0)&&!a.usedRightMouseButton&&g.sourceEvent&&f(g.sourceEvent),a.usedRightMouseButton=!1,d(!1),e)){let b=dp(g.transform);a.prevViewport=b,clearTimeout(a.timerId),a.timerId=setTimeout(()=>{e?.(g.sourceEvent,b)},150*!!c)}}}({zoomPanValues:j,panOnDrag:k,panOnScroll:e,onPaneContextMenu:c,onPanZoomEnd:h,onDraggingChange:i});o.on("end",H);let I=function({zoomActivationKeyPressed:a,zoomOnScroll:b,zoomOnPinch:c,panOnDrag:d,panOnScroll:e,zoomOnDoubleClick:f,userSelectionActive:g,noWheelClassName:h,noPanClassName:i,lib:j,connectionInProgress:k}){return l=>{let m=a||b,n=c&&l.ctrlKey,o="wheel"===l.type;if(1===l.button&&"mousedown"===l.type&&(dr(l,`${j}-flow__node`)||dr(l,`${j}-flow__edge`)))return!0;if(!d&&!m&&!e&&!f&&!c||g||k&&!o||dr(l,h)&&o||dr(l,i)&&(!o||e&&o&&!a)||!c&&l.ctrlKey&&o)return!1;if(!c&&"touchstart"===l.type&&l.touches?.length>1)return l.preventDefault(),!1;if(!m&&!e&&!n&&o||!d&&("mousedown"===l.type||"touchstart"===l.type)||Array.isArray(d)&&!d.includes(l.button)&&"mousedown"===l.type)return!1;let p=Array.isArray(d)&&d.includes(l.button)||!l.button||l.button<=1;return(!l.ctrlKey||o)&&p}}({zoomActivationKeyPressed:x,panOnDrag:k,zoomOnScroll:v,panOnScroll:e,zoomOnDoubleClick:w,zoomOnPinch:u,userSelectionActive:d,noPanClassName:b,noWheelClassName:a,lib:y,connectionInProgress:A});o.filter(I),w?p.on("dblclick.zoom",r):p.on("dblclick.zoom",null)},destroy:t,setViewport:async function a(a,b){let c=dq(a);return await s(c,b),c},setViewportConstrained:u,getViewport:function(){let a=p?bY(p.node()):{x:0,y:0,k:1};return{x:a.x,y:a.y,zoom:a.k}},scaleTo:async function a(a,b){return!!p&&new Promise(c=>{o?.interpolate(b?.interpolate==="linear"?b6:aC).scaleTo(du(p,b?.duration,b?.ease,()=>c(!0)),a)})},scaleBy:async function a(a,b){return!!p&&new Promise(c=>{o?.interpolate(b?.interpolate==="linear"?b6:aC).scaleBy(du(p,b?.duration,b?.ease,()=>c(!0)),a)})},setScaleExtent:function(a){o?.scaleExtent(a)},setTranslateExtent:function(a){o?.translateExtent(a)},syncViewport:function(a){if(p){let b=dq(a),c=p.property("__zoom");(c.k!==a.zoom||c.x!==a.x||c.y!==a.y)&&o?.transform(p,b,null,{sync:!0})}},setClickDistance:function(a){let b=!cz(a)||a<0?0:a;o?.clickDistance(b)}}}({domNode:A.current,minZoom:k,maxZoom:m,translateExtent:j,viewport:i,onDraggingChange:a=>z.setState(b=>b.paneDragging===a?b:{paneDragging:a}),onPanZoomStart:(a,b)=>{let{onViewportChangeStart:c,onMoveStart:d}=z.getState();d?.(a,b),c?.(b)},onPanZoom:(a,b)=>{let{onViewportChange:c,onMove:d}=z.getState();d?.(a,b),c?.(b)},onPanZoomEnd:(a,b)=>{let{onViewportChangeEnd:c,onMoveEnd:d}=z.getState();d?.(a,b),c?.(b)}});let{x:a,y:b,zoom:c}=F.current.getViewport();return z.setState({panZoom:F.current,transform:[a,b,c],domNode:A.current.closest(".react-flow")}),()=>{F.current?.destroy()}}},[]),(0,t.useEffect)(()=>{F.current?.update({onPaneContextMenu:a,zoomOnScroll:b,zoomOnPinch:c,panOnScroll:d,panOnScrollSpeed:e,panOnScrollMode:f,zoomOnDoubleClick:g,panOnDrag:h,zoomActivationKeyPressed:E,preventScrolling:o,noPanClassName:r,userSelectionActive:B,noWheelClassName:q,lib:C,onTransformChange:G,connectionInProgress:D,selectionOnDrag:x,paneClickDistance:w})},[a,b,c,d,e,f,g,h,E,o,r,B,q,C,G,D,x,w]),(0,s.jsx)("div",{className:"react-flow__renderer",ref:A,style:ev,children:p})}let ey=a=>({userSelectionActive:a.userSelectionActive,userSelectionRect:a.userSelectionRect});function ez(){let{userSelectionActive:a,userSelectionRect:b}=dO(ey,dJ);return a&&b?(0,s.jsx)("div",{className:"react-flow__selection react-flow__container",style:{width:b.width,height:b.height,transform:`translate(${b.x}px, ${b.y}px)`}}):null}let eA=(a,b)=>c=>{c.target===b.current&&a?.(c)},eB=a=>({userSelectionActive:a.userSelectionActive,elementsSelectable:a.elementsSelectable,dragging:a.paneDragging,panBy:a.panBy,autoPanSpeed:a.autoPanSpeed});function eC({isSelecting:a,selectionKeyPressed:b,selectionMode:c=m.Full,panOnDrag:d,autoPanOnSelection:e,paneClickDistance:f,selectionOnDrag:g,onSelectionStart:h,onSelectionEnd:i,onPaneClick:j,onPaneContextMenu:k,onPaneScroll:l,onPaneMouseEnter:n,onPaneMouseMove:o,onPaneMouseLeave:p,children:q}){let r=(0,t.useRef)(0),v=dP(),{userSelectionActive:w,elementsSelectable:x,dragging:y,panBy:z,autoPanSpeed:A}=dO(eB,dJ),B=x&&(a||w),C=(0,t.useRef)(null),D=(0,t.useRef)(),E=(0,t.useRef)(new Set),F=(0,t.useRef)(new Set),G=(0,t.useRef)(!1),H=(0,t.useRef)(!1),I=(0,t.useRef)({x:0,y:0}),J=(0,t.useRef)(!1),K=a=>{if(H.current||G.current||v.getState().connection.inProgress){H.current=!1,G.current=!1;return}j?.(a),v.getState().resetSelectedElements(),v.setState({nodesSelectionActive:!1})};function L(a,b){let{userSelectionRect:d}=v.getState();if(!d)return;let{transform:e,nodeLookup:f,edgeLookup:g,connectionLookup:h,triggerNodeChanges:i,triggerEdgeChanges:j,defaultEdgeOptions:k}=v.getState(),l={x:d.startX,y:d.startY},{x:n,y:o}=cD(l,e),p={startX:l.x,startY:l.y,x:a<n?a:n,y:b<o?b:o,width:Math.abs(a-n),height:Math.abs(b-o)},q=E.current,r=F.current;E.current=new Set(ch(f,p,e,c===m.Partial,!0).map(a=>a.id)),F.current=new Set;let s=k?.selectable??!0;for(let a of E.current){let b=h.get(a);if(b)for(let{edgeId:a}of b.values()){let b=g.get(a);b&&(b.selectable??s)&&F.current.add(a)}}cL(q,E.current)||i(eh(f,E.current,!0)),cL(r,F.current)||j(eh(g,F.current)),v.setState({userSelectionRect:p,userSelectionActive:!0,nodesSelectionActive:!1})}let M=()=>{cancelAnimationFrame(r.current),r.current=0,J.current=!1};(0,t.useEffect)(()=>()=>M(),[]);let N=!0===d||Array.isArray(d)&&d.includes(0);return(0,s.jsxs)("div",{className:u(["react-flow__pane",{draggable:N,dragging:y,selection:a}]),onClick:B?void 0:eA(K,C),onContextMenu:eA(a=>{Array.isArray(d)&&d?.includes(2)?a.preventDefault():k?.(a)},C),onWheel:eA(l?a=>l(a):void 0,C),onPointerEnter:B?void 0:n,onPointerMove:B?a=>{let{userSelectionRect:c,transform:d,resetSelectedElements:g}=v.getState();if(!D.current||!c)return;let{x:i,y:j}=cR(a.nativeEvent,D.current);I.current={x:i,y:j};let k=cD({x:c.startX,y:c.startY},d);if(!H.current){if(Math.hypot(i-k.x,j-k.y)<=(b?0:f))return;g(),h?.(a)}H.current=!0,J.current||(!function a(){if(!e||!D.current)return;let[b,c]=cp(I.current,D.current,A);z({x:b,y:c}).then(b=>{if(!H.current||!b){r.current=requestAnimationFrame(a);return}let{x:c,y:d}=I.current;L(c,d),r.current=requestAnimationFrame(a)})}(),J.current=!0),L(i,j)}:o,onPointerUp:a=>{if(!B){a.target===C.current&&v.getState().connection.inProgress&&(G.current=!0);return}0===a.button&&(a.target?.releasePointerCapture?.(a.pointerId),!w&&a.target===C.current&&v.getState().userSelectionRect&&K?.(a),v.setState({userSelectionActive:!1,userSelectionRect:null}),H.current&&(i?.(a),v.setState({nodesSelectionActive:E.current.size>0})),M())},onPointerCancel:B?a=>{a.target?.releasePointerCapture?.(a.pointerId),M()}:void 0,onPointerDownCapture:B?c=>{let{domNode:d,transform:e}=v.getState();if(D.current=d?.getBoundingClientRect(),!D.current)return;let f=c.target===C.current;if(!f&&c.target.closest(".nokey")||!a||!(g&&f||b)||0!==c.button||!c.isPrimary)return;c.target?.setPointerCapture?.(c.pointerId),H.current=!1;let{x:h,y:i}=cR(c.nativeEvent,D.current),j=cC({x:h,y:i},e);v.setState({userSelectionRect:{width:0,height:0,startX:j.x,startY:j.y,x:h,y:i}}),f||(c.stopPropagation(),c.preventDefault())}:void 0,onClickCapture:B?a=>{H.current&&(a.stopPropagation(),H.current=!1)}:void 0,onPointerLeave:p,ref:C,style:ev,children:[q,(0,s.jsx)(ez,{})]})}function eD({id:a,store:b,unselect:c=!1,nodeRef:d}){let e,{addSelectedNodes:f,unselectNodesAndEdges:g,multiSelectionActive:h,nodeLookup:i,onError:j}=b.getState(),k=i.get(a);k?(b.setState({nodesSelectionActive:!1}),k.selected?(c||k.selected&&h)&&(g({nodes:[k],edges:[]}),requestAnimationFrame(()=>d?.current?.blur())):f([a])):j?.("012",(e=a,`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.`))}function eE({nodeRef:a,disabled:b=!1,noDragClassName:c,handleSelector:d,nodeId:e,isSelectable:f,nodeClickDistance:g}){let h=dP(),[i,j]=(0,t.useState)(!1),k=(0,t.useRef)();return(0,t.useEffect)(()=>{if(!b)return k.current=function({onNodeMouseDown:a,getStoreItems:b,onDragStart:c,onDrag:d,onDragStop:e}){let f={x:null,y:null},g=0,h=new Map,i=!1,j={x:0,y:0},k=null,l=!1,m=null,n=!1,o=!1,p=null;return{update:function({noDragClassName:q,handleSelector:r,domNode:s,isSelectable:t,nodeId:u,nodeClickDistance:v=0}){function w({x:a,y:c}){let{nodeLookup:e,nodeExtent:g,snapGrid:i,snapToGrid:j,nodeOrigin:k,onNodeDrag:l,onSelectionDrag:m,onError:n,updateNodePositions:q}=b();f={x:a,y:c};let r=!1,s=h.size>1,t=s&&g?cr(cg(h)):null,v=s&&j?function({dragItems:a,snapGrid:b,x:c,y:d}){let e=a.values().next().value;if(!e)return null;let f={x:c-e.distance.x,y:d-e.distance.y},g=cB(f,b);return{x:g.x-f.x,y:g.y-f.y}}({dragItems:h,snapGrid:i,x:a,y:c}):null;for(let[b,d]of h){if(!e.has(b))continue;let f={x:a-d.distance.x,y:c-d.distance.y};j&&(f=v?{x:Math.round(f.x+v.x),y:Math.round(f.y+v.y)}:cB(f,i));let h=null;if(s&&g&&!d.extent&&t){let{positionAbsolute:a}=d.internals,b=a.x-t.x+g[0][0],c=a.x+d.measured.width-t.x2+g[1][0];h=[[b,a.y-t.y+g[0][1]],[c,a.y+d.measured.height-t.y2+g[1][1]]]}let{position:l,positionAbsolute:m}=cj({nodeId:b,nextPosition:f,nodeLookup:e,nodeExtent:h||g,nodeOrigin:k,onError:n});r=r||d.position.x!==l.x||d.position.y!==l.y,d.position=l,d.internals.positionAbsolute=m}if(o=o||r,r&&(q(h,!0),p&&(d||l||!u&&m))){let[a,b]=di({nodeId:u,dragItems:h,nodeLookup:e});d?.(p,h,a,b),l?.(p,a,b),u||m?.(p,b)}}async function x(){if(!k)return;let{transform:a,panBy:c,autoPanSpeed:d,autoPanOnNodeDrag:e}=b();if(!e){i=!1,cancelAnimationFrame(g);return}let[h,l]=cp(j,k,d);(0!==h||0!==l)&&(f.x=(f.x??0)-h/a[2],f.y=(f.y??0)-l/a[2],await c({x:h,y:l})&&w(f)),g=requestAnimationFrame(x)}function y(d){let{nodeLookup:e,multiSelectionActive:g,nodesDraggable:i,transform:j,snapGrid:m,snapToGrid:n,selectNodesOnDrag:o,onNodeDragStart:p,onSelectionDragStart:q,unselectNodesAndEdges:r}=b();l=!0,o&&t||g||!u||e.get(u)?.selected||r(),t&&o&&u&&a?.(u);let s=cM(d.sourceEvent,{transform:j,snapGrid:m,snapToGrid:n,containerBounds:k});if(f=s,(h=function(a,b,c,d){let e=new Map;for(let[f,g]of a)if((g.selected||g.id===d)&&(!g.parentId||!function a(b,c){if(!b.parentId)return!1;let d=c.get(b.parentId);return!!d&&(!!d.selected||a(d,c))}(g,a))&&(g.draggable||b&&void 0===g.draggable)){let b=a.get(f);b&&e.set(f,{id:f,position:b.position||{x:0,y:0},distance:{x:c.x-b.internals.positionAbsolute.x,y:c.y-b.internals.positionAbsolute.y},extent:b.extent,parentId:b.parentId,origin:b.origin,expandParent:b.expandParent,internals:{positionAbsolute:b.internals.positionAbsolute||{x:0,y:0}},measured:{width:b.measured.width??0,height:b.measured.height??0}})}return e}(e,i,s,u)).size>0&&(c||p||!u&&q)){let[a,b]=di({nodeId:u,dragItems:h,nodeLookup:e});c?.(d.sourceEvent,h,a,b),p?.(d.sourceEvent,a,b),u||q?.(d.sourceEvent,b)}}m=am(s);let z=aA().clickDistance(v).on("start",a=>{let{domNode:c,nodeDragThreshold:d,transform:e,snapGrid:g,snapToGrid:h}=b();k=c?.getBoundingClientRect()||null,n=!1,o=!1,p=a.sourceEvent,0===d&&y(a),f=cM(a.sourceEvent,{transform:e,snapGrid:g,snapToGrid:h,containerBounds:k}),j=cR(a.sourceEvent,k)}).on("drag",a=>{let{autoPanOnNodeDrag:c,transform:d,snapGrid:e,snapToGrid:g,nodeDragThreshold:m,nodeLookup:o}=b(),q=cM(a.sourceEvent,{transform:d,snapGrid:e,snapToGrid:g,containerBounds:k});if(p=a.sourceEvent,("touchmove"===a.sourceEvent.type&&a.sourceEvent.touches.length>1||u&&!o.has(u))&&(n=!0),!n){if(!i&&c&&l&&(i=!0,x()),!l){let b=cR(a.sourceEvent,k),c=b.x-j.x,d=b.y-j.y;Math.sqrt(c*c+d*d)>m&&y(a)}(f.x!==q.xSnapped||f.y!==q.ySnapped)&&h&&l&&(j=cR(a.sourceEvent,k),w(q))}}).on("end",a=>{if(!l||n){n&&h.size>0&&b().updateNodePositions(h,!1);return}if(i=!1,l=!1,cancelAnimationFrame(g),h.size>0){let{nodeLookup:c,updateNodePositions:d,onNodeDragStop:f,onSelectionDragStop:g}=b();if(o&&(d(h,!1),o=!1),e||f||!u&&g){let[b,d]=di({nodeId:u,dragItems:h,nodeLookup:c,dragging:!1});e?.(a.sourceEvent,h,b,d),f?.(a.sourceEvent,b,d),u||g?.(a.sourceEvent,d)}}}).filter(a=>{let b=a.target;return!a.button&&(!q||!dh(b,`.${q}`,s))&&(!r||dh(b,r,s))});m.call(z)},destroy:function(){m?.on(".drag",null)}}}({getStoreItems:()=>h.getState(),onNodeMouseDown:b=>{eD({id:b,store:h,nodeRef:a})},onDragStart:()=>{j(!0)},onDragStop:()=>{j(!1)}}),()=>{k.current?.destroy(),k.current=void 0}},[b,h,a]),(0,t.useEffect)(()=>{!b&&a.current&&k.current&&k.current.update({noDragClassName:c,handleSelector:d,domNode:a.current,isSelectable:f,nodeId:e,nodeClickDistance:g})},[c,d,b,f,a,e,g]),i}function eF(){let a=dP();return(0,t.useCallback)(b=>{let{nodeExtent:c,snapToGrid:d,snapGrid:e,nodesDraggable:f,onError:g,updateNodePositions:h,nodeLookup:i,nodeOrigin:j}=a.getState(),k=new Map,l=a=>a.selected&&(a.draggable||f&&void 0===a.draggable),m=d?e[0]:5,n=d?e[1]:5,o=b.direction.x*m*b.factor,p=b.direction.y*n*b.factor;for(let[,a]of i){if(!l(a))continue;let b={x:a.internals.positionAbsolute.x+o,y:a.internals.positionAbsolute.y+p};d&&(b=cB(b,e));let{position:f,positionAbsolute:h}=cj({nodeId:a.id,nextPosition:b,nodeLookup:i,nodeExtent:c,nodeOrigin:j,onError:g});a.position=f,a.internals.positionAbsolute=h,k.set(a.id,a)}h(k)},[])}let eG=(0,t.createContext)(null),eH=eG.Provider;eG.Consumer;let eI=()=>(0,t.useContext)(eG),eJ=a=>({connectOnClick:a.connectOnClick,noPanClassName:a.noPanClassName,rfId:a.rfId}),eK=(0,t.createContext)(null);function eL({children:a}){let b=dO(eJ,dJ);return(0,s.jsx)(eK.Provider,{value:b,children:a})}let eM={connectingFrom:!1,connectingTo:!1,clickConnecting:!1,isPossibleEndHandle:!0,connectionInProcess:!1,clickConnectionInProcess:!1,valid:!1},eN=(0,t.memo)(em(function({type:a="source",position:b=p.Top,isValidConnection:c,isConnectable:d=!0,isConnectableStart:e=!0,isConnectableEnd:f=!0,id:g,onConnect:h,children:i,className:j,onMouseDown:l,onTouchStart:m,...n},o){let q=g||null,r="target"===a,v=dP(),w=eI(),{connectOnClick:x,noPanClassName:y,rfId:z}=function(){let a=(0,t.useContext)(eK);if(!a)throw Error("useHandleConfig must be used within a HandleConfigProvider");return a}(),{connectingFrom:A,connectingTo:B,clickConnecting:C,isPossibleEndHandle:D,connectionInProcess:E,clickConnectionInProcess:F,valid:G}=dO(b=>{let{connectionClickStartHandle:c,connectionMode:d,connection:e}=b,{fromHandle:f,toHandle:g,isValid:h}=e;if(!f&&!c)return eM;let i=g?.nodeId===w&&g?.id===q&&g?.type===a;return{connectingFrom:f?.nodeId===w&&f?.id===q&&f?.type===a,connectingTo:i,clickConnecting:c?.nodeId===w&&c?.id===q&&c?.type===a,isPossibleEndHandle:d===k.Strict?f?.type!==a:w!==f?.nodeId||q!==f?.id,connectionInProcess:!!f,clickConnectionInProcess:!!c,valid:i&&h}},dJ);w||v.getState().onError?.("010","Handle: No node id found. Make sure to only use a Handle inside a custom Node.");let H=a=>{let{defaultEdgeOptions:b,onConnect:c,hasDefaultEdges:d}=v.getState(),e={...b,...a};if(d){let{edges:a,setEdges:b,onError:c}=v.getState();b(function(a,b,c={}){return((a,b,c={})=>{let d,e;if(!a.source||!a.target)return c.onError?.("006","Can't create edge. An edge needs a source and a target."),b;let f=c.getEdgeId||cY;return(e=d=cd(a)?{...a}:{...a,id:f(a)},b.some(a=>a.source===e.source&&a.target===e.target&&(a.sourceHandle===e.sourceHandle||!a.sourceHandle&&!e.sourceHandle)&&(a.targetHandle===e.targetHandle||!a.targetHandle&&!e.targetHandle)))?b:(null===d.sourceHandle&&delete d.sourceHandle,null===d.targetHandle&&delete d.targetHandle,b.concat(d))})(a,b,{...c,onError:c.onError??ek})}(e,a,{onError:c}))}c?.(e),h?.(e)},I=a=>{if(!w)return;let b="clientX"in a.nativeEvent;if(e&&(b&&0===a.button||!b)){let b=v.getState();dn(a.nativeEvent,{handleDomNode:a.currentTarget,autoPanOnConnect:b.autoPanOnConnect,connectionMode:b.connectionMode,connectionRadius:b.connectionRadius,domNode:b.domNode,nodeLookup:b.nodeLookup,lib:b.lib,isTarget:r,handleId:q,nodeId:w,flowId:b.rfId,panBy:b.panBy,cancelConnection:b.cancelConnection,onConnectStart:b.onConnectStart,onConnectEnd:(...a)=>v.getState().onConnectEnd?.(...a),updateConnection:b.updateConnection,onConnect:H,isValidConnection:c||((...a)=>v.getState().isValidConnection?.(...a)??!0),getTransform:()=>v.getState().transform,getFromHandle:()=>v.getState().connection.fromHandle,autoPanSpeed:b.autoPanSpeed,dragThreshold:b.connectionDragThreshold})}b?l?.(a):m?.(a)};return(0,s.jsx)("div",{"data-handleid":q,"data-nodeid":w,"data-handlepos":b,"data-id":`${z}-${w}-${q}-${a}`,className:u(["react-flow__handle",`react-flow__handle-${b}`,"nodrag",y,j,{source:!r,target:r,connectable:d,connectablestart:e,connectableend:f,clickconnecting:C,connectingfrom:A,connectingto:B,valid:G,connectionindicator:d&&(!E||D)&&(E||F?f:e)}]),onMouseDown:I,onTouchStart:I,onClick:x?b=>{let{onClickConnectStart:d,onClickConnectEnd:f,connectionClickStartHandle:g,connectionMode:h,isValidConnection:i,lib:j,rfId:k,nodeLookup:l,connection:m}=v.getState();if(!w||!g&&!e)return;if(!g){d?.(b.nativeEvent,{nodeId:w,handleId:q,handleType:a}),v.setState({connectionClickStartHandle:{nodeId:w,type:a,id:q}});return}let n=cO(b.target),o=c||i,{connection:p,isValid:r}=dm(b.nativeEvent,{handle:{nodeId:w,id:q,type:a},connectionMode:h,fromNodeId:g.nodeId,fromHandleId:g.id||null,fromType:g.type,isValidConnection:o,flowId:k,doc:n,lib:j,nodeLookup:l});r&&p&&H(p);let s=structuredClone(m);delete s.inProgress,s.toPosition=s.toHandle?s.toHandle.position:null,f?.(b,s),v.setState({connectionClickStartHandle:null})}:void 0,ref:o,...n,children:i})})),eO={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},eP={input:function({data:a,isConnectable:b,sourcePosition:c=p.Bottom}){return(0,s.jsxs)(s.Fragment,{children:[a?.label,(0,s.jsx)(eN,{type:"source",position:c,isConnectable:b})]})},default:function({data:a,isConnectable:b,targetPosition:c=p.Top,sourcePosition:d=p.Bottom}){return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(eN,{type:"target",position:c,isConnectable:b}),a?.label,(0,s.jsx)(eN,{type:"source",position:d,isConnectable:b})]})},output:function({data:a,isConnectable:b,targetPosition:c=p.Top}){return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(eN,{type:"target",position:c,isConnectable:b}),a?.label]})},group:function(){return null}},eQ=a=>{let{width:b,height:c,x:d,y:e}=cg(a.nodeLookup,{filter:a=>!!a.selected});return{width:cz(b)?b:null,height:cz(c)?c:null,userSelectionActive:a.userSelectionActive,transformString:`translate(${a.transform[0]}px,${a.transform[1]}px) scale(${a.transform[2]}) translate(${d}px,${e}px)`}};function eR({onSelectionContextMenu:a,noPanClassName:b,disableKeyboardA11y:c}){let d=dP(),{width:e,height:f,transformString:g,userSelectionActive:h}=dO(eQ,dJ),i=eF(),j=(0,t.useRef)(null);(0,t.useEffect)(()=>{c||j.current?.focus({preventScroll:!0})},[c]);let k=!h&&null!==e&&null!==f;if(eE({nodeRef:j,disabled:!k}),!k)return null;let l=a?b=>{a(b,d.getState().nodes.filter(a=>a.selected))}:void 0;return(0,s.jsx)("div",{className:u(["react-flow__nodesselection","react-flow__container",b]),style:{transform:g},children:(0,s.jsx)("div",{ref:j,className:"react-flow__nodesselection-rect",onContextMenu:l,tabIndex:c?void 0:-1,onKeyDown:c?void 0:a=>{Object.prototype.hasOwnProperty.call(eO,a.key)&&(a.preventDefault(),i({direction:eO[a.key],factor:a.shiftKey?4:1}))},style:{width:e,height:f}})})}let eS,eT=a=>({nodesSelectionActive:a.nodesSelectionActive,userSelectionActive:a.userSelectionActive});function eU({children:a,onPaneClick:b,onPaneMouseEnter:c,onPaneMouseMove:d,onPaneMouseLeave:e,onPaneContextMenu:f,onPaneScroll:g,paneClickDistance:h,deleteKeyCode:i,selectionKeyCode:j,selectionOnDrag:k,selectionMode:l,onSelectionStart:m,onSelectionEnd:n,multiSelectionKeyCode:o,panActivationKeyCode:p,zoomActivationKeyCode:q,elementsSelectable:r,zoomOnScroll:u,zoomOnPinch:v,panOnScroll:w,panOnScrollSpeed:x,panOnScrollMode:y,zoomOnDoubleClick:z,panOnDrag:A,autoPanOnSelection:B,defaultViewport:C,translateExtent:D,minZoom:E,maxZoom:F,preventScrolling:G,onSelectionContextMenu:H,noWheelClassName:I,noPanClassName:J,disableKeyboardA11y:K,onViewportChange:L,isControlledViewport:M}){let{nodesSelectionActive:N,userSelectionActive:O}=dO(eT,dJ),P=ec(j,{target:eS}),Q=ec(p,{target:eS}),R=Q||A,S=Q||w,T=k&&!0!==R,U=P||O||T;return!function({deleteKeyCode:a,multiSelectionKeyCode:b}){let c=dP(),{deleteElements:d}=es(),e=ec(a,{actInsideInputWithModifier:!1}),f=ec(b,{target:eu});(0,t.useEffect)(()=>{if(e){let{edges:a,nodes:b}=c.getState();d({nodes:b.filter(et),edges:a.filter(et)}),c.setState({nodesSelectionActive:!1})}},[e]),(0,t.useEffect)(()=>{c.setState({multiSelectionActive:f})},[f])}({deleteKeyCode:i,multiSelectionKeyCode:o}),(0,s.jsx)(ex,{onPaneContextMenu:f,elementsSelectable:r,zoomOnScroll:u,zoomOnPinch:v,panOnScroll:S,panOnScrollSpeed:x,panOnScrollMode:y,zoomOnDoubleClick:z,panOnDrag:!P&&R,defaultViewport:C,translateExtent:D,minZoom:E,maxZoom:F,zoomActivationKeyCode:q,preventScrolling:G,noWheelClassName:I,noPanClassName:J,onViewportChange:L,isControlledViewport:M,paneClickDistance:h,selectionOnDrag:T,children:(0,s.jsxs)(eC,{onSelectionStart:m,onSelectionEnd:n,onPaneClick:b,onPaneMouseEnter:c,onPaneMouseMove:d,onPaneMouseLeave:e,onPaneContextMenu:f,onPaneScroll:g,panOnDrag:R,autoPanOnSelection:B,isSelecting:!!U,selectionMode:l,selectionKeyPressed:P,paneClickDistance:h,selectionOnDrag:T,children:[a,N&&(0,s.jsx)(eR,{onSelectionContextMenu:H,noPanClassName:J,disableKeyboardA11y:K})]})})}eU.displayName="FlowRenderer";let eV=(0,t.memo)(eU),eW=a=>a.updateNodeInternals;var eX=(0,t.memo)(function({id:a,onClick:b,onMouseEnter:c,onMouseMove:d,onMouseLeave:e,onContextMenu:f,onDoubleClick:g,nodesDraggable:h,elementsSelectable:i,nodesConnectable:j,nodesFocusable:k,resizeObserver:l,noDragClassName:m,noPanClassName:n,disableKeyboardA11y:o,rfId:p,nodeTypes:q,nodeClickDistance:r,onError:v}){let w,{node:x,internals:y,isParent:z}=dO(b=>{let c=b.nodeLookup.get(a),d=b.parentLookup.has(a);return{node:c,internals:c.internals,isParent:d}},dJ),A=x.type||"default",B=q?.[A]||eP[A];void 0===B&&(v?.("003",(w=A,`Node type "${w}" not found. Using fallback type "default".`)),A="default",B=q?.default||eP.default);let C=!!(x.draggable||h&&void 0===x.draggable),D=!!(x.selectable||i&&void 0===x.selectable),E=!!(x.connectable||j&&void 0===x.connectable),F=!!(x.focusable||k&&void 0===x.focusable),G=dP(),H=cJ(x),I=function({node:a,nodeType:b,hasDimensions:c,resizeObserver:d}){let e=dP(),f=(0,t.useRef)(null),g=(0,t.useRef)(null),h=(0,t.useRef)(a.sourcePosition),i=(0,t.useRef)(a.targetPosition),j=(0,t.useRef)(b),k=c&&!!a.internals.handleBounds;return(0,t.useEffect)(()=>{!f.current||a.hidden||k&&g.current===f.current||(g.current&&d?.unobserve(g.current),d?.observe(f.current),g.current=f.current)},[k,a.hidden]),(0,t.useEffect)(()=>()=>{g.current&&(d?.unobserve(g.current),g.current=null)},[]),(0,t.useEffect)(()=>{if(f.current){let c=j.current!==b,d=h.current!==a.sourcePosition,g=i.current!==a.targetPosition;(c||d||g)&&(j.current=b,h.current=a.sourcePosition,i.current=a.targetPosition,e.getState().updateNodeInternals(new Map([[a.id,{id:a.id,nodeElement:f.current,force:!0}]])))}},[a.id,b,a.sourcePosition,a.targetPosition]),f}({node:x,nodeType:A,hasDimensions:H,resizeObserver:l}),J=eE({nodeRef:I,disabled:x.hidden||!C,noDragClassName:m,handleSelector:x.dragHandle,nodeId:a,isSelectable:D,nodeClickDistance:r}),K=eF();if(x.hidden)return null;let L=cI(x),M=void 0===x.internals.handleBounds?{width:x.width??x.initialWidth??x.style?.width,height:x.height??x.initialHeight??x.style?.height}:{width:x.width??x.style?.width,height:x.height??x.style?.height},N=D||C||b||c||d||e,O=c?a=>c(a,{...y.userNode}):void 0,P=d?a=>d(a,{...y.userNode}):void 0,Q=e?a=>e(a,{...y.userNode}):void 0,R=f?a=>f(a,{...y.userNode}):void 0,S=g?a=>g(a,{...y.userNode}):void 0;return(0,s.jsx)("div",{className:u(["react-flow__node",`react-flow__node-${A}`,{[n]:C},x.className,{selected:x.selected,selectable:D,parent:z,draggable:C,dragging:J}]),ref:I,style:{zIndex:y.z,transform:`translate(${y.positionAbsolute.x}px,${y.positionAbsolute.y}px)`,pointerEvents:N?"all":"none",visibility:H?"visible":"hidden",...x.style,...M},"data-id":a,"data-testid":`rf__node-${a}`,onMouseEnter:O,onMouseMove:P,onMouseLeave:Q,onContextMenu:R,onClick:c=>{let{selectNodesOnDrag:d,nodeDragThreshold:e}=G.getState();D&&(!d||!C||e>0)&&eD({id:a,store:G,nodeRef:I}),b&&b(c,{...y.userNode})},onDoubleClick:S,onKeyDown:F?b=>{if(!cQ(b.nativeEvent)&&!o){if(b8.includes(b.key)&&D)eD({id:a,store:G,unselect:"Escape"===b.key,nodeRef:I});else if(C&&x.selected&&Object.prototype.hasOwnProperty.call(eO,b.key)){b.preventDefault();let{ariaLabelConfig:a}=G.getState();G.setState({ariaLiveMessage:a["node.a11yDescription.ariaLiveMessage"]({direction:b.key.replace("Arrow","").toLowerCase(),x:~~y.positionAbsolute.x,y:~~y.positionAbsolute.y})}),K({direction:eO[b.key],factor:b.shiftKey?4:1})}}}:void 0,tabIndex:F?0:void 0,onFocus:F?()=>{if(o||!I.current?.matches(":focus-visible"))return;let{transform:b,width:c,height:d,autoPanOnNodeFocus:e,setCenter:f}=G.getState();!e||ch(new Map([[a,x]]),{x:0,y:0,width:c,height:d},b,!0).length>0||f(x.position.x+L.width/2,x.position.y+L.height/2,{zoom:b[2]})}:void 0,role:x.ariaRole??(F?"group":void 0),"aria-roledescription":"node","aria-describedby":o?void 0:`${dS}-${p}`,"aria-label":x.ariaLabel,...x.domAttributes,children:(0,s.jsx)(eH,{value:a,children:(0,s.jsx)(B,{id:a,data:x.data,type:A,positionAbsoluteX:y.positionAbsolute.x,positionAbsoluteY:y.positionAbsolute.y,selected:x.selected??!1,selectable:D,draggable:C,deletable:x.deletable??!0,isConnectable:E,sourcePosition:x.sourcePosition,targetPosition:x.targetPosition,dragging:J,dragHandle:x.dragHandle,zIndex:y.z,parentId:x.parentId,...L})})})});let eY=a=>({nodesConnectable:a.nodesConnectable,nodesFocusable:a.nodesFocusable,elementsSelectable:a.elementsSelectable,onError:a.onError});function eZ(a){var b;let{nodesConnectable:c,nodesFocusable:d,elementsSelectable:e,onError:f}=dO(eY,dJ),g=(b=a.onlyRenderVisibleElements,dO((0,t.useCallback)(a=>b?ch(a.nodeLookup,{x:0,y:0,width:a.width,height:a.height},a.transform,!0).map(a=>a.id):Array.from(a.nodeLookup.keys()),[b]),dJ)),h=function(){let a=dO(eW),[b]=(0,t.useState)(()=>"u"<typeof ResizeObserver?null:new ResizeObserver(b=>{let c=new Map;b.forEach(a=>{let b=a.target.getAttribute("data-id");c.set(b,{id:b,nodeElement:a.target,force:!0})}),a(c)}));return(0,t.useEffect)(()=>()=>{b?.disconnect()},[b]),b}();return(0,s.jsx)("div",{className:"react-flow__nodes",style:ev,children:g.map(b=>(0,s.jsx)(eX,{id:b,nodeTypes:a.nodeTypes,nodeExtent:a.nodeExtent,onClick:a.onNodeClick,onMouseEnter:a.onNodeMouseEnter,onMouseMove:a.onNodeMouseMove,onMouseLeave:a.onNodeMouseLeave,onContextMenu:a.onNodeContextMenu,onDoubleClick:a.onNodeDoubleClick,noDragClassName:a.noDragClassName,noPanClassName:a.noPanClassName,rfId:a.rfId,disableKeyboardA11y:a.disableKeyboardA11y,resizeObserver:h,nodesDraggable:a.nodesDraggable??!0,nodesConnectable:c,nodesFocusable:d,elementsSelectable:e,nodeClickDistance:a.nodeClickDistance,onError:f},b))})}eZ.displayName="NodeRenderer";let e$=(0,t.memo)(eZ),e_={[o.Arrow]:({color:a="none",strokeWidth:b=1})=>{let c={strokeWidth:b,...a&&{stroke:a}};return(0,s.jsx)("polyline",{className:"arrow",style:c,strokeLinecap:"round",fill:"none",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4"})},[o.ArrowClosed]:({color:a="none",strokeWidth:b=1})=>{let c={strokeWidth:b,...a&&{stroke:a,fill:a}};return(0,s.jsx)("polyline",{className:"arrowclosed",style:c,strokeLinecap:"round",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4 -5,-4"})}},e0=({id:a,type:b,color:c,width:d=12.5,height:e=12.5,markerUnits:f="strokeWidth",strokeWidth:g,orient:h="auto-start-reverse"})=>{let i,j=(i=dP(),(0,t.useMemo)(()=>{let a;return Object.prototype.hasOwnProperty.call(e_,b)?e_[b]:(i.getState().onError?.("009",(a=b,`Marker type "${a}" doesn't exist.`)),null)},[b]));return j?(0,s.jsx)("marker",{className:"react-flow__arrowhead",id:a,markerWidth:`${d}`,markerHeight:`${e}`,viewBox:"-10 -10 20 20",markerUnits:f,orient:h,refX:"0",refY:"0",children:(0,s.jsx)(j,{color:c,strokeWidth:g})}):null},e1=({defaultColor:a,rfId:b})=>{let c=dO(a=>a.edges),d=dO(a=>a.defaultEdgeOptions),e=(0,t.useMemo)(()=>(function(a,{id:b,defaultColor:c,defaultMarkerStart:d,defaultMarkerEnd:e}){let f=new Set;return a.reduce((a,g)=>([g.markerStart||d,g.markerEnd||e].forEach(d=>{if(d&&"object"==typeof d){let e=c5(d,b);f.has(e)||(a.push({id:e,color:d.color||c,...d}),f.add(e))}}),a),[]).sort((a,b)=>a.id.localeCompare(b.id))})(c,{id:b,defaultColor:a,defaultMarkerStart:d?.markerStart,defaultMarkerEnd:d?.markerEnd}),[c,d,b,a]);return e.length?(0,s.jsx)("svg",{className:"react-flow__marker","aria-hidden":"true",children:(0,s.jsx)("defs",{children:e.map(a=>(0,s.jsx)(e0,{id:a.id,type:a.type,color:a.color,width:a.width,height:a.height,markerUnits:a.markerUnits,strokeWidth:a.strokeWidth,orient:a.orient},a.id))})}):null};e1.displayName="MarkerDefinitions";var e2=(0,t.memo)(e1);function e3({x:a,y:b,label:c,labelStyle:d,labelShowBg:e=!0,labelBgStyle:f,labelBgPadding:g=[2,4],labelBgBorderRadius:h=2,children:i,className:j,...k}){let[l,m]=(0,t.useState)({x:1,y:0,width:0,height:0}),n=u(["react-flow__edge-textwrapper",j]),o=(0,t.useRef)(null);return((0,t.useEffect)(()=>{if(o.current){let a=o.current.getBBox();m({x:a.x,y:a.y,width:a.width,height:a.height})}},[c]),c)?(0,s.jsxs)("g",{transform:`translate(${a-l.width/2} ${b-l.height/2})`,className:n,visibility:l.width?"visible":"hidden",...k,children:[e&&(0,s.jsx)("rect",{width:l.width+2*g[0],x:-g[0],y:-g[1],height:l.height+2*g[1],className:"react-flow__edge-textbg",style:f,rx:h,ry:h}),(0,s.jsx)("text",{className:"react-flow__edge-text",y:l.height/2,dy:"0.3em",ref:o,style:d,children:c}),i]}):null}e3.displayName="EdgeText";let e4=(0,t.memo)(e3);function e5({path:a,labelX:b,labelY:c,label:d,labelStyle:e,labelShowBg:f,labelBgStyle:g,labelBgPadding:h,labelBgBorderRadius:i,interactionWidth:j=20,...k}){return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("path",{...k,d:a,fill:"none",className:u(["react-flow__edge-path",k.className])}),j?(0,s.jsx)("path",{d:a,fill:"none",strokeOpacity:0,strokeWidth:j,className:"react-flow__edge-interaction"}):null,d&&cz(b)&&cz(c)?(0,s.jsx)(e4,{x:b,y:c,label:d,labelStyle:e,labelShowBg:f,labelBgStyle:g,labelBgPadding:h,labelBgBorderRadius:i}):null]})}function e6({pos:a,x1:b,y1:c,x2:d,y2:e}){return a===p.Left||a===p.Right?[.5*(b+d),c]:[b,.5*(c+e)]}function e7({sourceX:a,sourceY:b,sourcePosition:c=p.Bottom,targetX:d,targetY:e,targetPosition:f=p.Top}){let[g,h]=e6({pos:c,x1:a,y1:b,x2:d,y2:e}),[i,j]=e6({pos:f,x1:d,y1:e,x2:a,y2:b}),[k,l,m,n]=cT({sourceX:a,sourceY:b,targetX:d,targetY:e,sourceControlX:g,sourceControlY:h,targetControlX:i,targetControlY:j});return[`M${a},${b} C${g},${h} ${i},${j} ${d},${e}`,k,l,m,n]}function e8(a){return(0,t.memo)(({id:b,sourceX:c,sourceY:d,targetX:e,targetY:f,sourcePosition:g,targetPosition:h,label:i,labelStyle:j,labelShowBg:k,labelBgStyle:l,labelBgPadding:m,labelBgBorderRadius:n,style:o,markerEnd:p,markerStart:q,interactionWidth:r})=>{let[t,u,v]=e7({sourceX:c,sourceY:d,sourcePosition:g,targetX:e,targetY:f,targetPosition:h}),w=a.isInternal?void 0:b;return(0,s.jsx)(e5,{id:w,path:t,labelX:u,labelY:v,label:i,labelStyle:j,labelShowBg:k,labelBgStyle:l,labelBgPadding:m,labelBgBorderRadius:n,style:o,markerEnd:p,markerStart:q,interactionWidth:r})})}let e9=e8({isInternal:!1}),fa=e8({isInternal:!0});function fb(a){return(0,t.memo)(({id:b,sourceX:c,sourceY:d,targetX:e,targetY:f,label:g,labelStyle:h,labelShowBg:i,labelBgStyle:j,labelBgPadding:k,labelBgBorderRadius:l,style:m,sourcePosition:n=p.Bottom,targetPosition:o=p.Top,markerEnd:q,markerStart:r,pathOptions:t,interactionWidth:u})=>{let[v,w,x]=c0({sourceX:c,sourceY:d,sourcePosition:n,targetX:e,targetY:f,targetPosition:o,borderRadius:t?.borderRadius,offset:t?.offset,stepPosition:t?.stepPosition}),y=a.isInternal?void 0:b;return(0,s.jsx)(e5,{id:y,path:v,labelX:w,labelY:x,label:g,labelStyle:h,labelShowBg:i,labelBgStyle:j,labelBgPadding:k,labelBgBorderRadius:l,style:m,markerEnd:q,markerStart:r,interactionWidth:u})})}e9.displayName="SimpleBezierEdge",fa.displayName="SimpleBezierEdgeInternal";let fc=fb({isInternal:!1}),fd=fb({isInternal:!0});function fe(a){return(0,t.memo)(({id:b,...c})=>{let d=a.isInternal?void 0:b;return(0,s.jsx)(fc,{...c,id:d,pathOptions:(0,t.useMemo)(()=>({borderRadius:0,offset:c.pathOptions?.offset}),[c.pathOptions?.offset])})})}fc.displayName="SmoothStepEdge",fd.displayName="SmoothStepEdgeInternal";let ff=fe({isInternal:!1}),fg=fe({isInternal:!0});function fh(a){return(0,t.memo)(({id:b,sourceX:c,sourceY:d,targetX:e,targetY:f,label:g,labelStyle:h,labelShowBg:i,labelBgStyle:j,labelBgPadding:k,labelBgBorderRadius:l,style:m,markerEnd:n,markerStart:o,interactionWidth:p})=>{let[q,r,t]=cZ({sourceX:c,sourceY:d,targetX:e,targetY:f}),u=a.isInternal?void 0:b;return(0,s.jsx)(e5,{id:u,path:q,labelX:r,labelY:t,label:g,labelStyle:h,labelShowBg:i,labelBgStyle:j,labelBgPadding:k,labelBgBorderRadius:l,style:m,markerEnd:n,markerStart:o,interactionWidth:p})})}ff.displayName="StepEdge",fg.displayName="StepEdgeInternal";let fi=fh({isInternal:!1}),fj=fh({isInternal:!0});function fk(a){return(0,t.memo)(({id:b,sourceX:c,sourceY:d,targetX:e,targetY:f,sourcePosition:g=p.Bottom,targetPosition:h=p.Top,label:i,labelStyle:j,labelShowBg:k,labelBgStyle:l,labelBgPadding:m,labelBgBorderRadius:n,style:o,markerEnd:q,markerStart:r,pathOptions:t,interactionWidth:u})=>{let[v,w,x]=cW({sourceX:c,sourceY:d,sourcePosition:g,targetX:e,targetY:f,targetPosition:h,curvature:t?.curvature}),y=a.isInternal?void 0:b;return(0,s.jsx)(e5,{id:y,path:v,labelX:w,labelY:x,label:i,labelStyle:j,labelShowBg:k,labelBgStyle:l,labelBgPadding:m,labelBgBorderRadius:n,style:o,markerEnd:q,markerStart:r,interactionWidth:u})})}fi.displayName="StraightEdge",fj.displayName="StraightEdgeInternal";let fl=fk({isInternal:!1}),fm=fk({isInternal:!0});fl.displayName="BezierEdge",fm.displayName="BezierEdgeInternal";let fn={default:fm,straight:fj,step:fg,smoothstep:fd,simplebezier:fa},fo={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null,zIndex:void 0},fp="react-flow__edgeupdater";function fq({position:a,centerX:b,centerY:c,radius:d=10,onMouseDown:e,onMouseEnter:f,onMouseOut:g,type:h}){return(0,s.jsx)("circle",{onMouseDown:e,onMouseEnter:f,onMouseOut:g,className:u([fp,`${fp}-${h}`]),cx:a===p.Left?b-d:a===p.Right?b+d:b,cy:a===p.Top?c-d:a===p.Bottom?c+d:c,r:d,stroke:"transparent",fill:"transparent"})}function fr({isReconnectable:a,reconnectRadius:b,edge:c,sourceX:d,sourceY:e,targetX:f,targetY:g,sourcePosition:h,targetPosition:i,onReconnect:j,onReconnectStart:k,onReconnectEnd:l,setReconnecting:m,setUpdateHover:n}){let o=dP(),p=(a,b)=>{if(0!==a.button)return;let{autoPanOnConnect:d,domNode:e,connectionMode:f,connectionRadius:g,lib:h,onConnectStart:i,cancelConnection:n,nodeLookup:p,rfId:q,panBy:r,updateConnection:s}=o.getState(),t="target"===b.type;dn(a.nativeEvent,{autoPanOnConnect:d,connectionMode:f,connectionRadius:g,domNode:e,handleId:b.id,nodeId:b.nodeId,nodeLookup:p,isTarget:t,edgeUpdaterType:b.type,lib:h,flowId:q,cancelConnection:n,panBy:r,isValidConnection:(...a)=>o.getState().isValidConnection?.(...a)??!0,onConnect:a=>j?.(c,a),onConnectStart:(d,e)=>{m(!0),k?.(a,c,b.type),i?.(d,e)},onConnectEnd:(...a)=>o.getState().onConnectEnd?.(...a),onReconnectEnd:(a,d)=>{m(!1),l?.(a,c,b.type,d)},updateConnection:s,getTransform:()=>o.getState().transform,getFromHandle:()=>o.getState().connection.fromHandle,dragThreshold:o.getState().connectionDragThreshold,handleDomNode:a.currentTarget})},q=()=>n(!0),r=()=>n(!1);return(0,s.jsxs)(s.Fragment,{children:[(!0===a||"source"===a)&&(0,s.jsx)(fq,{position:h,centerX:d,centerY:e,radius:b,onMouseDown:a=>p(a,{nodeId:c.target,id:c.targetHandle??null,type:"target"}),onMouseEnter:q,onMouseOut:r,type:"source"}),(!0===a||"target"===a)&&(0,s.jsx)(fq,{position:i,centerX:f,centerY:g,radius:b,onMouseDown:a=>p(a,{nodeId:c.source,id:c.sourceHandle??null,type:"source"}),onMouseEnter:q,onMouseOut:r,type:"target"})]})}var fs=(0,t.memo)(function({id:a,edgesFocusable:b,edgesReconnectable:c,elementsSelectable:d,onClick:e,onDoubleClick:f,onContextMenu:g,onMouseEnter:h,onMouseMove:i,onMouseLeave:j,reconnectRadius:l,onReconnect:m,onReconnectStart:n,onReconnectEnd:o,rfId:q,edgeTypes:r,noPanClassName:v,onError:w,disableKeyboardA11y:x}){let y,z=dO(b=>b.edgeLookup.get(a)),A=dO(a=>a.defaultEdgeOptions),B=(z=A?{...A,...z}:z).type||"default",C=r?.[B]||fn[B];void 0===C&&(w?.("011",(y=B,`Edge type "${y}" not found. Using fallback type "default".`)),B="default",C=r?.default||fn.default);let D=!!(z.focusable||b&&void 0===z.focusable),E=void 0!==m&&(z.reconnectable||c&&void 0===z.reconnectable),F=!!(z.selectable||d&&void 0===z.selectable),G=(0,t.useRef)(null),[H,I]=(0,t.useState)(!1),[J,K]=(0,t.useState)(!1),L=dP(),{zIndex:M=z.zIndex,sourceX:N,sourceY:O,targetX:P,targetY:Q,sourcePosition:R,targetPosition:S}=dO((0,t.useCallback)(b=>{let c=b.nodeLookup.get(z.source),d=b.nodeLookup.get(z.target);if(!c||!d)return fo;let e=function(a){let{sourceNode:b,targetNode:c}=a;if(!c1(b)||!c1(c))return null;let d=b.internals.handleBounds||c2(b.handles),e=c.internals.handleBounds||c2(c.handles),f=c4(d?.source??[],a.sourceHandle),g=c4(a.connectionMode===k.Strict?e?.target??[]:(e?.target??[]).concat(e?.source??[]),a.targetHandle);if(!f||!g)return a.onError?.("008",((a,{id:b,sourceHandle:c,targetHandle:d})=>`Couldn't create edge for ${a} handle id: "${"source"===a?c:d}", edge id: ${b}.`)(!f?"source":"target",{id:a.id,sourceHandle:a.sourceHandle,targetHandle:a.targetHandle})),null;let h=f?.position||p.Bottom,i=g?.position||p.Top,j=c3(b,f,h),l=c3(c,g,i);return{sourceX:j.x,sourceY:j.y,targetX:l.x,targetY:l.y,sourcePosition:h,targetPosition:i}}({id:a,sourceNode:c,targetNode:d,sourceHandle:z.sourceHandle||null,targetHandle:z.targetHandle||null,connectionMode:b.connectionMode,onError:w}),f=function({sourceNode:a,targetNode:b,selected:c=!1,zIndex:d=0,elevateOnSelect:e=!1,zIndexMode:f="basic"}){if("manual"===f)return d;let g=Math.max(a.parentId||e&&a.selected?a.internals.z:0,b.parentId||e&&b.selected?b.internals.z:0);return(e&&c?d+1e3:d)+g}({selected:z.selected,zIndex:z.zIndex,sourceNode:c,targetNode:d,elevateOnSelect:b.elevateEdgesOnSelect,zIndexMode:b.zIndexMode});return{...e||fo,zIndex:f}},[z.source,z.target,z.sourceHandle,z.targetHandle,z.selected,z.zIndex]),dJ),T=(0,t.useMemo)(()=>z.markerStart?`url('#${c5(z.markerStart,q)}')`:void 0,[z.markerStart,q]),U=(0,t.useMemo)(()=>z.markerEnd?`url('#${c5(z.markerEnd,q)}')`:void 0,[z.markerEnd,q]);if(z.hidden||null===N||null===O||null===P||null===Q)return null;let V=f?a=>{f(a,{...z})}:void 0,W=g?a=>{g(a,{...z})}:void 0,X=h?a=>{h(a,{...z})}:void 0,Y=i?a=>{i(a,{...z})}:void 0,Z=j?a=>{j(a,{...z})}:void 0;return(0,s.jsx)("svg",{style:{zIndex:M},children:(0,s.jsxs)("g",{className:u(["react-flow__edge",`react-flow__edge-${B}`,z.className,v,{selected:z.selected,animated:z.animated,inactive:!F&&!e,updating:H,selectable:F}]),onClick:b=>{let{addSelectedEdges:c,unselectNodesAndEdges:d,multiSelectionActive:f}=L.getState();F&&(L.setState({nodesSelectionActive:!1}),z.selected&&f?(d({nodes:[],edges:[z]}),G.current?.blur()):c([a])),e&&e(b,z)},onDoubleClick:V,onContextMenu:W,onMouseEnter:X,onMouseMove:Y,onMouseLeave:Z,onKeyDown:D?b=>{if(!x&&b8.includes(b.key)&&F){let{unselectNodesAndEdges:c,addSelectedEdges:d}=L.getState();"Escape"===b.key?(G.current?.blur(),c({edges:[z]})):d([a])}}:void 0,tabIndex:D?0:void 0,role:z.ariaRole??(D?"group":"img"),"aria-roledescription":"edge","data-id":a,"data-testid":`rf__edge-${a}`,"aria-label":null===z.ariaLabel?void 0:z.ariaLabel||`Edge from ${z.source} to ${z.target}`,"aria-describedby":D?`${dT}-${q}`:void 0,ref:G,...z.domAttributes,children:[!J&&(0,s.jsx)(C,{id:a,source:z.source,target:z.target,type:z.type,selected:z.selected,animated:z.animated,selectable:F,deletable:z.deletable??!0,label:z.label,labelStyle:z.labelStyle,labelShowBg:z.labelShowBg,labelBgStyle:z.labelBgStyle,labelBgPadding:z.labelBgPadding,labelBgBorderRadius:z.labelBgBorderRadius,sourceX:N,sourceY:O,targetX:P,targetY:Q,sourcePosition:R,targetPosition:S,data:z.data,style:z.style,sourceHandleId:z.sourceHandle,targetHandleId:z.targetHandle,markerStart:T,markerEnd:U,pathOptions:"pathOptions"in z?z.pathOptions:void 0,interactionWidth:z.interactionWidth}),E&&(0,s.jsx)(fr,{edge:z,isReconnectable:E,reconnectRadius:l,onReconnect:m,onReconnectStart:n,onReconnectEnd:o,sourceX:N,sourceY:O,targetX:P,targetY:Q,sourcePosition:R,targetPosition:S,setUpdateHover:I,setReconnecting:K})]})})});let ft=a=>({edgesFocusable:a.edgesFocusable,edgesReconnectable:a.edgesReconnectable,elementsSelectable:a.elementsSelectable,connectionMode:a.connectionMode,onError:a.onError});function fu({defaultMarkerColor:a,onlyRenderVisibleElements:b,rfId:c,edgeTypes:d,noPanClassName:e,onReconnect:f,onEdgeContextMenu:g,onEdgeMouseEnter:h,onEdgeMouseMove:i,onEdgeMouseLeave:j,onEdgeClick:k,reconnectRadius:l,onEdgeDoubleClick:m,onReconnectStart:n,onReconnectEnd:o,disableKeyboardA11y:p}){let{edgesFocusable:q,edgesReconnectable:r,elementsSelectable:u,onError:v}=dO(ft,dJ),w=dO((0,t.useCallback)(a=>{if(!b)return a.edges.map(a=>a.id);let c=[];if(a.width&&a.height)for(let b of a.edges){let d=a.nodeLookup.get(b.source),e=a.nodeLookup.get(b.target);d&&e&&function({sourceNode:a,targetNode:b,width:c,height:d,transform:e}){let f=cq(cu(a),cu(b));return f.x===f.x2&&(f.x2+=1),f.y===f.y2&&(f.y2+=1),cx({x:-e[0]/e[2],y:-e[1]/e[2],width:c/e[2],height:d/e[2]},cs(f))>0}({sourceNode:d,targetNode:e,width:a.width,height:a.height,transform:a.transform})&&c.push(b.id)}return c},[b]),dJ);return(0,s.jsxs)("div",{className:"react-flow__edges",children:[(0,s.jsx)(e2,{defaultColor:a,rfId:c}),w.map(a=>(0,s.jsx)(fs,{id:a,edgesFocusable:q,edgesReconnectable:r,elementsSelectable:u,noPanClassName:e,onReconnect:f,onContextMenu:g,onMouseEnter:h,onMouseMove:i,onMouseLeave:j,onClick:k,reconnectRadius:l,onDoubleClick:m,onReconnectStart:n,onReconnectEnd:o,rfId:c,onError:v,edgeTypes:d,disableKeyboardA11y:p},a))]})}fu.displayName="EdgeRenderer";let fv=(0,t.memo)(fu),fw=a=>`translate(${a[0]}px,${a[1]}px) scale(${a[2]})`;function fx({children:a}){let b=dP(),c=(0,t.useRef)(null),[d]=(0,t.useState)(()=>b.getState().transform);return en(()=>{let a=null,d=()=>{let d=b.getState().transform;(!a||d[0]!==a[0]||d[1]!==a[1]||d[2]!==a[2])&&(a=d,c.current&&(c.current.style.transform=fw(d)))};return d(),b.subscribe(d)},[b]),(0,s.jsx)("div",{ref:c,className:"react-flow__viewport xyflow__viewport react-flow__container",style:{transform:fw(d)},children:a})}let fy=a=>a.panZoom?.syncViewport;function fz(a){return a.connection.inProgress?{...a.connection,to:cC(a.connection.to,a.transform)}:{...a.connection}}let fA=a=>({nodesConnectable:a.nodesConnectable,isValid:a.connection.isValid,inProgress:a.connection.inProgress,width:a.width,height:a.height});function fB({containerStyle:a,style:b,type:c,component:d}){let{nodesConnectable:e,width:f,height:g,isValid:h,inProgress:i}=dO(fA,dJ);return f&&e&&i?(0,s.jsx)("svg",{style:a,width:f,height:g,className:"react-flow__connectionline react-flow__container",children:(0,s.jsx)("g",{className:u(["react-flow__connection",cc(h)]),children:(0,s.jsx)(fC,{style:b,type:c,CustomComponent:d,isValid:h})})}):null}let fC=({style:a,type:b=n.Bezier,CustomComponent:c,isValid:d})=>{let{inProgress:e,from:f,fromNode:g,fromHandle:h,fromPosition:i,to:j,toNode:k,toHandle:l,toPosition:m,pointer:o}=dO(fz,dJ);if(!e)return;if(c)return(0,s.jsx)(c,{connectionLineType:b,connectionLineStyle:a,fromNode:g,fromHandle:h,fromX:f.x,fromY:f.y,toX:j.x,toY:j.y,fromPosition:i,toPosition:m,connectionStatus:cc(d),toNode:k,toHandle:l,pointer:o});let p="",q={sourceX:f.x,sourceY:f.y,sourcePosition:i,targetX:j.x,targetY:j.y,targetPosition:m};switch(b){case n.Bezier:[p]=cW(q);break;case n.SimpleBezier:[p]=e7(q);break;case n.Step:[p]=c0({...q,borderRadius:0});break;case n.SmoothStep:[p]=c0(q);break;default:[p]=cZ(q)}return(0,s.jsx)("path",{d:p,fill:"none",className:"react-flow__connection-path",style:a})};fC.displayName="ConnectionLine";let fD={};function fE(a=fD){(0,t.useRef)(a),dP(),(0,t.useEffect)(()=>{},[a])}function fF({nodeTypes:a,edgeTypes:b,onInit:c,onNodeClick:d,onEdgeClick:e,onNodeDoubleClick:f,onEdgeDoubleClick:g,onNodeMouseEnter:h,onNodeMouseMove:i,onNodeMouseLeave:j,onNodeContextMenu:k,onSelectionContextMenu:l,onSelectionStart:m,onSelectionEnd:n,connectionLineType:o,connectionLineStyle:p,connectionLineComponent:q,connectionLineContainerStyle:r,selectionKeyCode:u,selectionOnDrag:v,selectionMode:w,multiSelectionKeyCode:x,panActivationKeyCode:y,zoomActivationKeyCode:z,deleteKeyCode:A,onlyRenderVisibleElements:B,elementsSelectable:C,defaultViewport:D,translateExtent:E,minZoom:F,maxZoom:G,preventScrolling:H,defaultMarkerColor:I,zoomOnScroll:J,zoomOnPinch:K,panOnScroll:L,panOnScrollSpeed:M,panOnScrollMode:N,zoomOnDoubleClick:O,panOnDrag:P,autoPanOnSelection:Q,onPaneClick:R,onPaneMouseEnter:S,onPaneMouseMove:T,onPaneMouseLeave:U,onPaneScroll:V,onPaneContextMenu:W,paneClickDistance:X,nodeClickDistance:Y,onEdgeContextMenu:Z,onEdgeMouseEnter:$,onEdgeMouseMove:_,onEdgeMouseLeave:aa,reconnectRadius:ab,onReconnect:ac,onReconnectStart:ad,onReconnectEnd:ae,noDragClassName:af,noWheelClassName:ag,noPanClassName:ah,disableKeyboardA11y:ai,nodeExtent:aj,rfId:ak,viewport:al,onViewportChange:am,nodesDraggable:an}){let ao,ap,aq,ar;return fE(a),fE(b),dP(),(0,t.useRef)(!1),(0,t.useEffect)(()=>{},[]),ao=es(),ap=(0,t.useRef)(!1),(0,t.useEffect)(()=>{!ap.current&&ao.viewportInitialized&&c&&(setTimeout(()=>c(ao),1),ap.current=!0)},[c,ao.viewportInitialized]),aq=dO(fy),ar=dP(),(0,t.useEffect)(()=>{al&&(aq?.(al),ar.setState({transform:[al.x,al.y,al.zoom]}))},[al,aq]),(0,s.jsx)(eV,{onPaneClick:R,onPaneMouseEnter:S,onPaneMouseMove:T,onPaneMouseLeave:U,onPaneContextMenu:W,onPaneScroll:V,paneClickDistance:X,deleteKeyCode:A,selectionKeyCode:u,selectionOnDrag:v,selectionMode:w,onSelectionStart:m,onSelectionEnd:n,multiSelectionKeyCode:x,panActivationKeyCode:y,zoomActivationKeyCode:z,elementsSelectable:C,zoomOnScroll:J,zoomOnPinch:K,zoomOnDoubleClick:O,panOnScroll:L,panOnScrollSpeed:M,panOnScrollMode:N,panOnDrag:P,autoPanOnSelection:Q,defaultViewport:D,translateExtent:E,minZoom:F,maxZoom:G,onSelectionContextMenu:l,preventScrolling:H,noDragClassName:af,noWheelClassName:ag,noPanClassName:ah,disableKeyboardA11y:ai,onViewportChange:am,isControlledViewport:!!al,children:(0,s.jsxs)(fx,{children:[(0,s.jsx)(fv,{edgeTypes:b,onEdgeClick:e,onEdgeDoubleClick:g,onReconnect:ac,onReconnectStart:ad,onReconnectEnd:ae,onlyRenderVisibleElements:B,onEdgeContextMenu:Z,onEdgeMouseEnter:$,onEdgeMouseMove:_,onEdgeMouseLeave:aa,reconnectRadius:ab,defaultMarkerColor:I,noPanClassName:ah,disableKeyboardA11y:ai,rfId:ak}),(0,s.jsx)(fB,{style:p,type:o,component:q,containerStyle:r}),(0,s.jsx)("div",{className:"react-flow__edgelabel-renderer"}),(0,s.jsx)(e$,{nodeTypes:a,onNodeClick:d,onNodeDoubleClick:f,onNodeMouseEnter:h,onNodeMouseMove:i,onNodeMouseLeave:j,onNodeContextMenu:k,nodeClickDistance:Y,onlyRenderVisibleElements:B,noPanClassName:ah,noDragClassName:af,disableKeyboardA11y:ai,nodeExtent:aj,rfId:ak,nodesDraggable:an}),(0,s.jsx)("div",{className:"react-flow__viewport-portal"})]})})}fF.displayName="GraphView";let fG=(0,t.memo)(fF),fH=cA("React Flow","https://reactflow.dev/"),fI=({nodes:a,edges:b,defaultNodes:c,defaultEdges:d,width:e,height:f,fitView:g,fitViewOptions:h,minZoom:i=.5,maxZoom:j=2,nodeOrigin:l,nodeExtent:m,zIndexMode:n="basic"}={})=>{let o=new Map,p=new Map,q=new Map,r=new Map,s=d??b??[],t=c??a??[],u=l??[0,0],v=m??b7;dg(q,r,s);let{nodesInitialized:w}=da(t,o,p,{nodeOrigin:u,nodeExtent:v,zIndexMode:n}),x=[0,0,1];if(g&&e&&f){let{x:a,y:b,zoom:c}=cF(cg(o,{filter:a=>!!((a.width||a.initialWidth)&&(a.height||a.initialHeight))}),e,f,i,j,h?.padding??.1);x=[a,b,c]}return{rfId:"1",width:e??0,height:f??0,transform:x,nodes:t,nodesInitialized:w,nodeLookup:o,parentLookup:p,edges:s,edgeLookup:r,connectionLookup:q,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:void 0!==c,hasDefaultEdges:void 0!==d,panZoom:null,minZoom:i,maxZoom:j,translateExtent:b7,nodeExtent:v,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:k.Strict,domNode:null,paneDragging:!1,noPanClassName:"nopan",nodeOrigin:u,nodeDragThreshold:1,connectionDragThreshold:1,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesReconnectable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,elevateEdgesOnSelect:!0,selectNodesOnDrag:!0,multiSelectionActive:!1,fitViewQueued:g??!1,fitViewOptions:h,fitViewResolver:null,connection:{...ca},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:fH,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:"react",debug:!1,ariaLabelConfig:b9,zIndexMode:n,onNodesChangeMiddlewareMap:new Map,onEdgesChangeMiddlewareMap:new Map}};function fJ({initialNodes:a,initialEdges:b,defaultNodes:c,defaultEdges:d,initialWidth:e,initialHeight:f,initialMinZoom:g,initialMaxZoom:h,initialFitViewOptions:i,fitView:j,nodeOrigin:k,nodeExtent:l,zIndexMode:m,children:n}){let[o]=(0,t.useState)(()=>(({nodes:a,edges:b,defaultNodes:c,defaultEdges:d,width:e,height:f,fitView:g,fitViewOptions:h,minZoom:i,maxZoom:j,nodeOrigin:k,nodeExtent:l,zIndexMode:m})=>{let n,o;return n=(n,o)=>{async function q(){let{nodeLookup:a,panZoom:b,fitViewOptions:c,fitViewResolver:d,width:e,height:f,minZoom:g,maxZoom:h}=o();b&&(await ci({nodes:a,width:e,height:f,panZoom:b,minZoom:g,maxZoom:h},c),d?.resolve(!0),n({fitViewResolver:null}))}return{...fI({nodes:a,edges:b,width:e,height:f,fitView:g,fitViewOptions:h,minZoom:i,maxZoom:j,nodeOrigin:k,nodeExtent:l,defaultNodes:c,defaultEdges:d,zIndexMode:m}),setNodes:a=>{let{nodeLookup:b,parentLookup:c,nodeOrigin:d,elevateNodesOnSelect:e,fitViewQueued:f,zIndexMode:g,nodesSelectionActive:h}=o(),{nodesInitialized:i,hasSelectedNodes:j}=da(a,b,c,{nodeOrigin:d,nodeExtent:l,elevateNodesOnSelect:e,checkEquality:!0,zIndexMode:g}),k=h&&j;f&&i?(q(),n({nodes:a,nodesInitialized:i,fitViewQueued:!1,fitViewOptions:void 0,nodesSelectionActive:k})):n({nodes:a,nodesInitialized:i,nodesSelectionActive:k})},setEdges:a=>{let{connectionLookup:b,edgeLookup:c}=o();dg(b,c,a),n({edges:a})},setDefaultNodesAndEdges:(a,b)=>{if(a){let{setNodes:b}=o();b(a),n({hasDefaultNodes:!0})}if(b){let{setEdges:a}=o();a(b),n({hasDefaultEdges:!0})}},updateNodeInternals:a=>{let{triggerNodeChanges:b,nodeLookup:c,parentLookup:d,domNode:e,nodeOrigin:f,nodeExtent:g,debug:h,fitViewQueued:i,zIndexMode:j}=o(),{changes:k,updatedInternals:l}=function(a,b,c,d,e,f,g){let h=d?.querySelector(".xyflow__viewport"),i=!1;if(!h)return{changes:[],updatedInternals:i};let j=[],k=window.getComputedStyle(h),{m22:l}=new window.DOMMatrixReadOnly(k.transform),m=[];for(let d of a.values()){let a=b.get(d.id);if(!a)continue;if(a.hidden){b.set(a.id,{...a,internals:{...a.internals,handleBounds:void 0}}),i=!0;continue}let h=cN(d.nodeElement),k=a.measured.width!==h.width||a.measured.height!==h.height;if(h.width&&h.height&&(k||!a.internals.handleBounds||d.force)){let n=d.nodeElement.getBoundingClientRect(),o=cH(a.extent)?a.extent:f,{positionAbsolute:p}=a.internals;if(a.parentId&&"parent"===a.extent){let c=b.get(a.parentId);c&&(p=cn(p,h,c))}else o&&(p=cm(p,o,h));let q={...a,measured:h,internals:{...a.internals,positionAbsolute:p,handleBounds:{source:cS("source",d.nodeElement,n,l,a.id),target:cS("target",d.nodeElement,n,l,a.id)}}};b.set(a.id,q),a.parentId&&db(q,b,c,{nodeOrigin:e,zIndexMode:g}),i=!0,k&&(j.push({id:a.id,type:"dimensions",dimensions:h}),a.expandParent&&a.parentId&&m.push({id:a.id,parentId:a.parentId,rect:ct(q,e)}))}}if(m.length>0){let a=dd(m,b,c,e);j.push(...a)}return{changes:j,updatedInternals:i}}(a,c,d,e,f,g,j);l&&(!function(a,b,c){let d=c8(c6,c);for(let c of a.values())if(c.parentId)db(c,a,b,d);else{let a=cm(cf(c,d.nodeOrigin),cH(c.extent)?c.extent:d.nodeExtent,cI(c));c.internals.positionAbsolute=a}}(c,d,{nodeOrigin:f,nodeExtent:g,zIndexMode:j}),i?(q(),n({fitViewQueued:!1,fitViewOptions:void 0})):n({}),k?.length>0&&(h&&console.log("React Flow: trigger node changes",k),b?.(k)))},updateNodePositions:(a,b=!1)=>{let c=[],d=[],{nodeLookup:e,triggerNodeChanges:f,connection:g,updateConnection:h,onNodesChangeMiddlewareMap:i}=o();for(let[f,i]of a){let a=e.get(f),j=!!(a?.expandParent&&a?.parentId&&i?.position),k={id:f,type:"position",position:j?{x:Math.max(0,i.position.x),y:Math.max(0,i.position.y)}:i.position,dragging:b};if(a&&g.inProgress&&g.fromNode.id===a.id){let b=c3(a,g.fromHandle,p.Left,!0);h({...g,from:b})}j&&a.parentId&&c.push({id:f,parentId:a.parentId,rect:{...i.internals.positionAbsolute,width:i.measured.width??0,height:i.measured.height??0}}),d.push(k)}if(c.length>0){let{parentLookup:a,nodeOrigin:b}=o(),f=dd(c,e,a,b);d.push(...f)}for(let a of i.values())d=a(d);f(d)},triggerNodeChanges:a=>{let{onNodesChange:b,setNodes:c,nodes:d,hasDefaultNodes:e,debug:f}=o();a?.length&&(e&&c(ef(a,d)),f&&console.log("React Flow: trigger node changes",a),b?.(a))},triggerEdgeChanges:a=>{let{onEdgesChange:b,setEdges:c,edges:d,hasDefaultEdges:e,debug:f}=o();a?.length&&(e&&c(ef(a,d)),f&&console.log("React Flow: trigger edge changes",a),b?.(a))},addSelectedNodes:a=>{let{multiSelectionActive:b,edgeLookup:c,nodeLookup:d,triggerNodeChanges:e,triggerEdgeChanges:f}=o();b?e(a.map(a=>eg(a,!0))):(e(eh(d,new Set([...a]),!0)),f(eh(c)))},addSelectedEdges:a=>{let{multiSelectionActive:b,edgeLookup:c,nodeLookup:d,triggerNodeChanges:e,triggerEdgeChanges:f}=o();b?f(a.map(a=>eg(a,!0))):(f(eh(c,new Set([...a]))),e(eh(d,new Set,!0)))},unselectNodesAndEdges:({nodes:a,edges:b}={})=>{let{edges:c,nodes:d,nodeLookup:e,triggerNodeChanges:f,triggerEdgeChanges:g}=o(),h=[];for(let b of a||d){if(!b.selected)continue;let a=e.get(b.id);a&&(a.selected=!1),h.push(eg(b.id,!1))}let i=[];for(let a of b||c)a.selected&&i.push(eg(a.id,!1));f(h),g(i)},setMinZoom:a=>{let{panZoom:b,maxZoom:c}=o();b?.setScaleExtent([a,c]),n({minZoom:a})},setMaxZoom:a=>{let{panZoom:b,minZoom:c}=o();b?.setScaleExtent([c,a]),n({maxZoom:a})},setTranslateExtent:a=>{o().panZoom?.setTranslateExtent(a),n({translateExtent:a})},resetSelectedElements:()=>{let{edges:a,nodes:b,triggerNodeChanges:c,triggerEdgeChanges:d,elementsSelectable:e}=o();if(!e)return;let f=b.reduce((a,b)=>b.selected?[...a,eg(b.id,!1)]:a,[]),g=a.reduce((a,b)=>b.selected?[...a,eg(b.id,!1)]:a,[]);c(f),d(g)},setNodeExtent:a=>{let{nodes:b,nodeLookup:c,parentLookup:d,nodeOrigin:e,elevateNodesOnSelect:f,nodeExtent:g,zIndexMode:h}=o();(a[0][0]!==g[0][0]||a[0][1]!==g[0][1]||a[1][0]!==g[1][0]||a[1][1]!==g[1][1])&&(da(b,c,d,{nodeOrigin:e,nodeExtent:a,elevateNodesOnSelect:f,checkEquality:!1,zIndexMode:h}),n({nodeExtent:a}))},panBy:a=>{let{transform:b,width:c,height:d,panZoom:e,translateExtent:f}=o();return de({delta:a,panZoom:e,transform:b,translateExtent:f,width:c,height:d})},setCenter:async(a,b,c)=>{let{width:d,height:e,maxZoom:f,panZoom:g}=o();if(!g)return!1;let h=void 0!==c?.zoom?c.zoom:f;return await g.setViewport({x:d/2-a*h,y:e/2-b*h,zoom:h},{duration:c?.duration,ease:c?.ease,interpolate:c?.interpolate}),!0},cancelConnection:()=>{n({connection:{...ca}})},updateConnection:a=>{n({connection:a})},reset:()=>n({...fI()})}},o=Object.is,n?dI(n,o):dI})({nodes:a,edges:b,defaultNodes:c,defaultEdges:d,width:e,height:f,fitView:j,minZoom:g,maxZoom:h,fitViewOptions:i,nodeOrigin:k,nodeExtent:l,zIndexMode:m}));return(0,s.jsx)(dM,{value:o,children:(0,s.jsx)(eq,{children:(0,s.jsx)(eL,{children:n})})})}function fK({children:a,nodes:b,edges:c,defaultNodes:d,defaultEdges:e,width:f,height:g,fitView:h,fitViewOptions:i,minZoom:j,maxZoom:k,nodeOrigin:l,nodeExtent:m,zIndexMode:n}){return(0,t.useContext)(dL)?(0,s.jsx)(s.Fragment,{children:a}):(0,s.jsx)(fJ,{initialNodes:b,initialEdges:c,defaultNodes:d,defaultEdges:e,initialWidth:f,initialHeight:g,fitView:h,initialFitViewOptions:i,initialMinZoom:j,initialMaxZoom:k,nodeOrigin:l,nodeExtent:m,zIndexMode:n,children:a})}let fL={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0};var fM=em(function({nodes:a,edges:b,defaultNodes:c,defaultEdges:d,className:e,nodeTypes:f,edgeTypes:g,onNodeClick:h,onEdgeClick:i,onInit:j,onMove:k,onMoveStart:o,onMoveEnd:p,onConnect:q,onConnectStart:r,onConnectEnd:v,onClickConnectStart:w,onClickConnectEnd:x,onNodeMouseEnter:y,onNodeMouseMove:z,onNodeMouseLeave:A,onNodeContextMenu:B,onNodeDoubleClick:C,onNodeDragStart:D,onNodeDrag:E,onNodeDragStop:F,onNodesDelete:G,onEdgesDelete:H,onDelete:I,onSelectionChange:J,onSelectionDragStart:K,onSelectionDrag:L,onSelectionDragStop:M,onSelectionContextMenu:N,onSelectionStart:O,onSelectionEnd:P,onBeforeDelete:Q,connectionMode:R,connectionLineType:S=n.Bezier,connectionLineStyle:T,connectionLineComponent:U,connectionLineContainerStyle:V,deleteKeyCode:W="Backspace",selectionKeyCode:X="Shift",selectionOnDrag:Y=!1,selectionMode:Z=m.Full,panActivationKeyCode:$="Space",multiSelectionKeyCode:_=cG()?"Meta":"Control",zoomActivationKeyCode:aa=cG()?"Meta":"Control",snapToGrid:ab,snapGrid:ac,onlyRenderVisibleElements:ad=!1,selectNodesOnDrag:ae,nodesDraggable:af,autoPanOnNodeFocus:ag,nodesConnectable:ah,nodesFocusable:ai,nodeOrigin:aj=d5,edgesFocusable:ak,edgesReconnectable:al,elementsSelectable:am=!0,defaultViewport:an=d6,minZoom:ao=.5,maxZoom:ap=2,translateExtent:aq=b7,preventScrolling:ar=!0,nodeExtent:as,defaultMarkerColor:at="#b1b1b7",zoomOnScroll:au=!0,zoomOnPinch:av=!0,panOnScroll:aw=!1,panOnScrollSpeed:ax=.5,panOnScrollMode:ay=l.Free,zoomOnDoubleClick:az=!0,panOnDrag:aA=!0,onPaneClick:aB,onPaneMouseEnter:aC,onPaneMouseMove:aD,onPaneMouseLeave:aE,onPaneScroll:aF,onPaneContextMenu:aG,paneClickDistance:aH=1,nodeClickDistance:aI=0,children:aJ,onReconnect:aK,onReconnectStart:aL,onReconnectEnd:aM,onEdgeContextMenu:aN,onEdgeDoubleClick:aO,onEdgeMouseEnter:aP,onEdgeMouseMove:aQ,onEdgeMouseLeave:aR,reconnectRadius:aS=10,onNodesChange:aT,onEdgesChange:aU,noDragClassName:aV="nodrag",noWheelClassName:aW="nowheel",noPanClassName:aX="nopan",fitView:aY,fitViewOptions:aZ,connectOnClick:a$,attributionPosition:a_,proOptions:a0,defaultEdgeOptions:a1,elevateNodesOnSelect:a2=!0,elevateEdgesOnSelect:a3=!1,disableKeyboardA11y:a4=!1,autoPanOnConnect:a5,autoPanOnNodeDrag:a6,autoPanOnSelection:a7=!0,autoPanSpeed:a8,connectionRadius:a9,isValidConnection:ba,onError:bb,style:bc,id:bd,nodeDragThreshold:be,connectionDragThreshold:bf,viewport:bg,onViewportChange:bh,width:bi,height:bj,colorMode:bk="light",debug:bl,onScroll:bm,ariaLabelConfig:bn,zIndexMode:bo="basic",...bp},bq){let br=bd||"1",bs=function(a){let[b,c]=(0,t.useState)("system"===a?null:a);return(0,t.useEffect)(()=>"system"!==a?void c(a):(c("light"),()=>{}),[a]),null!==b?b:"light"}(bk),bt=(0,t.useCallback)(a=>{a.currentTarget.scrollTo({top:0,left:0,behavior:"instant"}),bm?.(a)},[bm]);return(0,s.jsx)("div",{"data-testid":"rf__wrapper",...bp,onScroll:bt,style:{...bc,...fL},ref:bq,className:u(["react-flow",e,bs]),id:bd,role:"application",children:(0,s.jsxs)(fK,{nodes:a,edges:b,width:bi,height:bj,fitView:aY,fitViewOptions:aZ,minZoom:ao,maxZoom:ap,nodeOrigin:aj,nodeExtent:as,zIndexMode:bo,children:[(0,s.jsx)(ea,{nodes:a,edges:b,defaultNodes:c,defaultEdges:d,onConnect:q,onConnectStart:r,onConnectEnd:v,onClickConnectStart:w,onClickConnectEnd:x,nodesDraggable:af,autoPanOnNodeFocus:ag,nodesConnectable:ah,nodesFocusable:ai,edgesFocusable:ak,edgesReconnectable:al,elementsSelectable:am,elevateNodesOnSelect:a2,elevateEdgesOnSelect:a3,minZoom:ao,maxZoom:ap,nodeExtent:as,onNodesChange:aT,onEdgesChange:aU,snapToGrid:ab,snapGrid:ac,connectionMode:R,translateExtent:aq,connectOnClick:a$,defaultEdgeOptions:a1,fitView:aY,fitViewOptions:aZ,onNodesDelete:G,onEdgesDelete:H,onDelete:I,onNodeDragStart:D,onNodeDrag:E,onNodeDragStop:F,onSelectionDrag:L,onSelectionDragStart:K,onSelectionDragStop:M,onMove:k,onMoveStart:o,onMoveEnd:p,noPanClassName:aX,nodeOrigin:aj,rfId:br,autoPanOnConnect:a5,autoPanOnNodeDrag:a6,autoPanSpeed:a8,onError:bb,connectionRadius:a9,isValidConnection:ba,selectNodesOnDrag:ae,nodeDragThreshold:be,connectionDragThreshold:bf,onBeforeDelete:Q,debug:bl,ariaLabelConfig:bn,zIndexMode:bo}),(0,s.jsx)(fG,{onInit:j,onNodeClick:h,onEdgeClick:i,onNodeMouseEnter:y,onNodeMouseMove:z,onNodeMouseLeave:A,onNodeContextMenu:B,onNodeDoubleClick:C,nodeTypes:f,edgeTypes:g,connectionLineType:S,connectionLineStyle:T,connectionLineComponent:U,connectionLineContainerStyle:V,selectionKeyCode:X,selectionOnDrag:Y,selectionMode:Z,deleteKeyCode:W,multiSelectionKeyCode:_,panActivationKeyCode:$,zoomActivationKeyCode:aa,onlyRenderVisibleElements:ad,defaultViewport:an,translateExtent:aq,minZoom:ao,maxZoom:ap,preventScrolling:ar,zoomOnScroll:au,zoomOnPinch:av,zoomOnDoubleClick:az,panOnScroll:aw,panOnScrollSpeed:ax,panOnScrollMode:ay,panOnDrag:aA,autoPanOnSelection:a7,onPaneClick:aB,onPaneMouseEnter:aC,onPaneMouseMove:aD,onPaneMouseLeave:aE,onPaneScroll:aF,onPaneContextMenu:aG,paneClickDistance:aH,nodeClickDistance:aI,onSelectionContextMenu:N,onSelectionStart:O,onSelectionEnd:P,onReconnect:aK,onReconnectStart:aL,onReconnectEnd:aM,onEdgeContextMenu:aN,onEdgeDoubleClick:aO,onEdgeMouseEnter:aP,onEdgeMouseMove:aQ,onEdgeMouseLeave:aR,reconnectRadius:aS,defaultMarkerColor:at,noDragClassName:aV,noWheelClassName:aW,noPanClassName:aX,rfId:br,disableKeyboardA11y:a4,nodeExtent:as,viewport:bg,onViewportChange:bh,nodesDraggable:af}),(0,s.jsx)(d4,{onSelectionChange:J}),aJ,(0,s.jsx)(d$,{proOptions:a0,position:a_}),(0,s.jsx)(dX,{rfId:br,disableKeyboardA11y:a4})]})})});let fN=a=>a.domNode?.querySelector(".react-flow__edgelabel-renderer");function fO({children:a}){let b=dO(fN);return b?(0,dK.createPortal)(a,b):null}let fP=a=>a.domNode?.querySelector(".react-flow__viewport-portal");function fQ({children:a}){let b=dO(fP);return b?(0,dK.createPortal)(a,b):null}function fR({dimensions:a,lineWidth:b,variant:c,className:d}){return(0,s.jsx)("path",{strokeWidth:b,d:`M${a[0]/2} 0 V${a[1]} M0 ${a[1]/2} H${a[0]}`,className:u(["react-flow__background-pattern",c,d])})}function fS({radius:a,className:b}){return(0,s.jsx)("circle",{cx:a,cy:a,r:a,className:u(["react-flow__background-pattern","dots",b])})}(i=r||(r={})).Lines="lines",i.Dots="dots",i.Cross="cross";let fT={[r.Dots]:1,[r.Lines]:1,[r.Cross]:6},fU=a=>({transform:a.transform,patternId:`pattern-${a.rfId}`});function fV({id:a,variant:b=r.Dots,gap:c=20,size:d,lineWidth:e=1,offset:f=0,color:g,bgColor:h,style:i,className:j,patternClassName:k}){let l=(0,t.useRef)(null),{transform:m,patternId:n}=dO(fU,dJ),o=d||fT[b],p=b===r.Dots,q=b===r.Cross,v=Array.isArray(c)?c:[c,c],w=[v[0]*m[2]||1,v[1]*m[2]||1],x=o*m[2],y=Array.isArray(f)?f:[f,f],z=q?[x,x]:w,A=[y[0]*m[2]||1+z[0]/2,y[1]*m[2]||1+z[1]/2],B=`${n}${a||""}`;return(0,s.jsxs)("svg",{className:u(["react-flow__background",j]),style:{...i,...ev,"--xy-background-color-props":h,"--xy-background-pattern-color-props":g},ref:l,"data-testid":"rf__background",children:[(0,s.jsx)("pattern",{id:B,x:m[0]%w[0],y:m[1]%w[1],width:w[0],height:w[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${A[0]},-${A[1]})`,children:p?(0,s.jsx)(fS,{radius:x/2,className:k}):(0,s.jsx)(fR,{dimensions:z,lineWidth:e,variant:b,className:k})}),(0,s.jsx)("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${B})`})]})}function fW(){return(0,s.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",children:(0,s.jsx)("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"})})}function fX(){return(0,s.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5",children:(0,s.jsx)("path",{d:"M0 0h32v4.2H0z"})})}function fY(){return(0,s.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30",children:(0,s.jsx)("path",{d:"M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0027.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94c-.531 0-.939-.4-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z"})})}function fZ(){return(0,s.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:(0,s.jsx)("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z"})})}function f$(){return(0,s.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:(0,s.jsx)("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047z"})})}function f_({children:a,className:b,...c}){return(0,s.jsx)("button",{type:"button",className:u(["react-flow__controls-button",b]),...c,children:a})}fV.displayName="Background",(0,t.memo)(fV);let f0=a=>({isInteractive:a.nodesDraggable||a.nodesConnectable||a.elementsSelectable,minZoomReached:a.transform[2]<=a.minZoom,maxZoomReached:a.transform[2]>=a.maxZoom,ariaLabelConfig:a.ariaLabelConfig});function f1({style:a,showZoom:b=!0,showFitView:c=!0,showInteractive:d=!0,fitViewOptions:e,onZoomIn:f,onZoomOut:g,onFitView:h,onInteractiveChange:i,className:j,children:k,position:l="bottom-left",orientation:m="vertical","aria-label":n}){let o=dP(),{isInteractive:p,minZoomReached:q,maxZoomReached:r,ariaLabelConfig:t}=dO(f0,dJ),{zoomIn:v,zoomOut:w,fitView:x}=es();return(0,s.jsxs)(dY,{className:u(["react-flow__controls","horizontal"===m?"horizontal":"vertical",j]),position:l,style:a,"data-testid":"rf__controls","aria-label":n??t["controls.ariaLabel"],children:[b&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(f_,{onClick:()=>{v(),f?.()},className:"react-flow__controls-zoomin",title:t["controls.zoomIn.ariaLabel"],"aria-label":t["controls.zoomIn.ariaLabel"],disabled:r,children:(0,s.jsx)(fW,{})}),(0,s.jsx)(f_,{onClick:()=>{w(),g?.()},className:"react-flow__controls-zoomout",title:t["controls.zoomOut.ariaLabel"],"aria-label":t["controls.zoomOut.ariaLabel"],disabled:q,children:(0,s.jsx)(fX,{})})]}),c&&(0,s.jsx)(f_,{className:"react-flow__controls-fitview",onClick:()=>{x(e),h?.()},title:t["controls.fitView.ariaLabel"],"aria-label":t["controls.fitView.ariaLabel"],children:(0,s.jsx)(fY,{})}),d&&(0,s.jsx)(f_,{className:"react-flow__controls-interactive",onClick:()=>{o.setState({nodesDraggable:!p,nodesConnectable:!p,elementsSelectable:!p}),i?.(!p)},title:t["controls.interactive.ariaLabel"],"aria-label":t["controls.interactive.ariaLabel"],children:p?(0,s.jsx)(f$,{}):(0,s.jsx)(fZ,{})}),k]})}f1.displayName="Controls",(0,t.memo)(f1);let f2=(0,t.memo)(function({id:a,x:b,y:c,width:d,height:e,style:f,color:g,strokeColor:h,strokeWidth:i,className:j,borderRadius:k,shapeRendering:l,selected:m,onClick:n}){let{background:o,backgroundColor:p}=f||{};return(0,s.jsx)("rect",{className:u(["react-flow__minimap-node",{selected:m},j]),x:b,y:c,rx:k,ry:k,width:d,height:e,style:{fill:g||o||p,stroke:h,strokeWidth:i},shapeRendering:l,onClick:n?b=>n(b,a):void 0})}),f3=a=>a.nodes.map(a=>a.id),f4=a=>a instanceof Function?a:()=>a,f5=(0,t.memo)(function({id:a,nodeColorFunc:b,nodeStrokeColorFunc:c,nodeClassNameFunc:d,nodeBorderRadius:e,nodeStrokeWidth:f,shapeRendering:g,NodeComponent:h,onClick:i}){let{node:j,x:k,y:l,width:m,height:n}=dO(b=>{let c=b.nodeLookup.get(a);if(!c)return{node:void 0,x:0,y:0,width:0,height:0};let d=c.internals.userNode,{x:e,y:f}=c.internals.positionAbsolute,{width:g,height:h}=cI(d);return{node:d,x:e,y:f,width:g,height:h}},dJ);return j&&!j.hidden&&cJ(j)?(0,s.jsx)(h,{x:k,y:l,width:m,height:n,style:j.style,selected:!!j.selected,className:d(j),color:b(j),borderRadius:e,strokeColor:c(j),strokeWidth:f,shapeRendering:g,onClick:i,id:j.id}):null});var f6=(0,t.memo)(function({nodeStrokeColor:a,nodeColor:b,nodeClassName:c="",nodeBorderRadius:d=5,nodeStrokeWidth:e,nodeComponent:f=f2,onClick:g}){let h=dO(f3,dJ),i=f4(b),j=f4(a),k=f4(c);return(0,s.jsx)(s.Fragment,{children:h.map(a=>(0,s.jsx)(f5,{id:a,nodeColorFunc:i,nodeStrokeColorFunc:j,nodeClassNameFunc:k,nodeBorderRadius:d,nodeStrokeWidth:e,NodeComponent:f,onClick:g,shapeRendering:"crispEdges"},a))})});let f7=a=>!a.hidden,f8=a=>{let b={x:-a.transform[0]/a.transform[2],y:-a.transform[1]/a.transform[2],width:a.width/a.transform[2],height:a.height/a.transform[2]};return{viewBB:b,boundingRect:a.nodeLookup.size>0?cv(cg(a.nodeLookup,{filter:f7}),b):b,rfId:a.rfId,panZoom:a.panZoom,translateExtent:a.translateExtent,flowWidth:a.width,flowHeight:a.height,ariaLabelConfig:a.ariaLabelConfig}},f9=(a,b)=>a.x===b.x&&a.y===b.y&&a.width===b.width&&a.height===b.height,ga=(a,b)=>f9(a.viewBB,b.viewBB)&&f9(a.boundingRect,b.boundingRect)&&a.rfId===b.rfId&&a.panZoom===b.panZoom&&a.translateExtent===b.translateExtent&&a.flowWidth===b.flowWidth&&a.flowHeight===b.flowHeight&&a.ariaLabelConfig===b.ariaLabelConfig;function gb({style:a,className:b,nodeStrokeColor:c,nodeColor:d,nodeClassName:e="",nodeBorderRadius:f=5,nodeStrokeWidth:g,nodeComponent:h,bgColor:i,maskColor:j,maskStrokeColor:k,maskStrokeWidth:l,position:m="bottom-right",onClick:n,onNodeClick:o,pannable:p=!1,zoomable:q=!1,ariaLabel:r,inversePan:v,zoomStep:w=1,offsetScale:x=5}){let y=dP(),z=(0,t.useRef)(null),{boundingRect:A,viewBB:B,rfId:C,panZoom:D,translateExtent:E,flowWidth:F,flowHeight:G,ariaLabelConfig:H}=dO(f8,ga),I=a?.width??200,J=a?.height??150,K=Math.max(A.width/I,A.height/J),L=K*I,M=K*J,N=x*K,O=A.x-(L-A.width)/2-N,P=A.y-(M-A.height)/2-N,Q=L+2*N,R=M+2*N,S=`react-flow__minimap-desc-${C}`,T=(0,t.useRef)(0),U=(0,t.useRef)();T.current=K,(0,t.useEffect)(()=>{if(z.current&&D)return U.current=function({domNode:a,panZoom:b,getTransform:c,getViewScale:d}){let e=am(a);return{update:function({translateExtent:a,width:f,height:g,zoomStep:h=1,pannable:i=!0,zoomable:j=!0,inversePan:k=!1}){let l=[0,0],m=b5().on("start",a=>{("mousedown"===a.sourceEvent.type||"touchstart"===a.sourceEvent.type)&&(l=[a.sourceEvent.clientX??a.sourceEvent.touches[0].clientX,a.sourceEvent.clientY??a.sourceEvent.touches[0].clientY])}).on("zoom",i?e=>{let h=c();if("mousemove"!==e.sourceEvent.type&&"touchmove"!==e.sourceEvent.type||!b)return;let i=[e.sourceEvent.clientX??e.sourceEvent.touches[0].clientX,e.sourceEvent.clientY??e.sourceEvent.touches[0].clientY],j=[i[0]-l[0],i[1]-l[1]];l=i;let m=d()*Math.max(h[2],Math.log(h[2]))*(k?-1:1),n={x:h[0]-j[0]*m,y:h[1]-j[1]*m};b.setViewportConstrained({x:n.x,y:n.y,zoom:h[2]},[[0,0],[f,g]],a)}:null).on("zoom.wheel",j?a=>{if("wheel"!==a.sourceEvent.type||!b)return;let d=c(),e=a.sourceEvent.ctrlKey&&cG()?10:1,f=-a.sourceEvent.deltaY*(1===a.sourceEvent.deltaMode?.05:a.sourceEvent.deltaMode?1:.002)*h,g=d[2]*Math.pow(2,f*e);b.scaleTo(g)}:null);e.call(m,{})},destroy:function(){e.on("zoom",null)},pointer:an}}({domNode:z.current,panZoom:D,getTransform:()=>y.getState().transform,getViewScale:()=>T.current}),()=>{U.current?.destroy()}},[D]),(0,t.useEffect)(()=>{U.current?.update({translateExtent:E,width:F,height:G,inversePan:v,pannable:p,zoomStep:w,zoomable:q})},[p,q,v,w,E,F,G]);let V=n?a=>{let[b,c]=U.current?.pointer(a)||[0,0];n(a,{x:b,y:c})}:void 0,W=o?(0,t.useCallback)((a,b)=>{o(a,y.getState().nodeLookup.get(b).internals.userNode)},[]):void 0,X=r??H["minimap.ariaLabel"];return(0,s.jsx)(dY,{position:m,style:{...a,"--xy-minimap-background-color-props":"string"==typeof i?i:void 0,"--xy-minimap-mask-background-color-props":"string"==typeof j?j:void 0,"--xy-minimap-mask-stroke-color-props":"string"==typeof k?k:void 0,"--xy-minimap-mask-stroke-width-props":"number"==typeof l?l*K:void 0,"--xy-minimap-node-background-color-props":"string"==typeof d?d:void 0,"--xy-minimap-node-stroke-color-props":"string"==typeof c?c:void 0,"--xy-minimap-node-stroke-width-props":"number"==typeof g?g:void 0},className:u(["react-flow__minimap",b]),"data-testid":"rf__minimap",children:(0,s.jsxs)("svg",{width:I,height:J,viewBox:`${O} ${P} ${Q} ${R}`,className:"react-flow__minimap-svg",role:"img","aria-labelledby":S,ref:z,onClick:V,children:[X&&(0,s.jsx)("title",{id:S,children:X}),(0,s.jsx)(f6,{onClick:W,nodeColor:d,nodeStrokeColor:c,nodeBorderRadius:f,nodeClassName:e,nodeStrokeWidth:g,nodeComponent:h}),(0,s.jsx)("path",{className:"react-flow__minimap-mask",d:`M${O-N},${P-N}h${Q+2*N}v${R+2*N}h${-Q-2*N}z
2
+ M${B.x},${B.y}h${B.width}v${B.height}h${-B.width}z`,fillRule:"evenodd",pointerEvents:"none"})]})})}gb.displayName="MiniMap",(0,t.memo)(gb);let gc={[q.Line]:"right",[q.Handle]:"bottom-right"};(0,t.memo)(function({nodeId:a,position:b,variant:c=q.Handle,className:d,style:e,children:f,color:g,minWidth:h=10,minHeight:i=10,maxWidth:j=Number.MAX_VALUE,maxHeight:k=Number.MAX_VALUE,keepAspectRatio:l=!1,resizeDirection:m,autoScale:n=!0,shouldResize:o,onResizeStart:p,onResize:r,onResizeEnd:v}){let w,x=eI(),y="string"==typeof a?a:x,z=dP(),A=(0,t.useRef)(null),B=c===q.Handle,C=dO((0,t.useCallback)((w=B&&n,a=>w?`${Math.max(1/a.transform[2],1)}`:void 0),[B,n]),dJ),D=(0,t.useRef)(null),E=b??gc[c];(0,t.useEffect)(()=>{if(A.current&&y)return D.current||(D.current=function({domNode:a,nodeId:b,getStoreItems:c,onChange:d,onEnd:e}){let f=am(a),g={controlDirection:dw("bottom-right"),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};return{update:function({controlPosition:a,boundaries:h,keepAspectRatio:i,resizeDirection:j,onResizeStart:k,onResize:l,onResizeEnd:m,shouldResize:n}){let o,p,q,r,s={...dA},t={...dB};g={boundaries:h,resizeDirection:j,keepAspectRatio:i,controlDirection:dw(a)};let u=null,v=[],w=!1,x=aA().on("start",a=>{let{nodeLookup:d,transform:e,snapGrid:f,snapToGrid:g,nodeOrigin:h,paneDomNode:i}=c();if(!(o=d.get(b)))return;u=i?.getBoundingClientRect()??null;let{xSnapped:j,ySnapped:l}=cM(a.sourceEvent,{transform:e,snapGrid:f,snapToGrid:g,containerBounds:u});for(let[a,c]of(t={...s={width:o.measured.width??0,height:o.measured.height??0,x:o.position.x??0,y:o.position.y??0},pointerX:j,pointerY:l,aspectRatio:s.width/s.height},p=void 0,q=cH(o.extent)?o.extent:void 0,o.parentId&&("parent"===o.extent||o.expandParent)&&(p=d.get(o.parentId)),p&&"parent"===o.extent&&(q=[[0,0],[p.measured.width,p.measured.height]]),v=[],r=void 0,d))if(c.parentId===b&&(v.push({id:a,position:{...c.position},extent:c.extent}),"parent"===c.extent||c.expandParent)){let a=function(a,b,c){let d=b.position.x+a.position.x,e=b.position.y+a.position.y,f=a.measured.width??0,g=a.measured.height??0,h=c[0]*f,i=c[1]*g;return[[d-h,e-i],[d+f-h,e+g-i]]}(c,o,c.origin??h);r=r?[[Math.min(a[0][0],r[0][0]),Math.min(a[0][1],r[0][1])],[Math.max(a[1][0],r[1][0]),Math.max(a[1][1],r[1][1])]]:a}k?.(a,{...s})}).on("drag",a=>{let{transform:b,snapGrid:e,snapToGrid:f,nodeOrigin:h}=c(),i=cM(a.sourceEvent,{transform:b,snapGrid:e,snapToGrid:f,containerBounds:u}),j=[];if(!o)return;let{x:k,y:m,width:x,height:y}=s,z={},A=o.origin??h,{width:B,height:C,x:D,y:E}=function(a,b,c,d,e,f,g,h){var i,j,k,l;let{affectsX:m,affectsY:n}=b,{isHorizontal:o,isVertical:p}=b,q=o&&p,{xSnapped:r,ySnapped:s}=c,{minWidth:t,maxWidth:u,minHeight:v,maxHeight:w}=d,{x:x,y:y,width:z,height:A,aspectRatio:B}=a,C=Math.floor(o?r-a.pointerX:0),D=Math.floor(p?s-a.pointerY:0),E=z+(m?-C:C),F=A+(n?-D:D),G=-f[0]*z,H=-f[1]*A,I=dz(E,t,u),J=dz(F,v,w);if(g){let a=0,b=0;m&&C<0?a=dx(x+C+G,g[0][0]):!m&&C>0&&(a=dy(x+E+G,g[1][0])),n&&D<0?b=dx(y+D+H,g[0][1]):!n&&D>0&&(b=dy(y+F+H,g[1][1])),I=Math.max(I,a),J=Math.max(J,b)}if(h){let a=0,b=0;m&&C>0?a=dy(x+C,h[0][0]):!m&&C<0&&(a=dx(x+E,h[1][0])),n&&D>0?b=dy(y+D,h[0][1]):!n&&D<0&&(b=dx(y+F,h[1][1])),I=Math.max(I,a),J=Math.max(J,b)}if(e){if(o){(I=Math.max(I,dz(E/B,v,w)*B),g)&&(I=Math.max(I,(m||n)&&(!m||n||!q)?dx(y+H+(m?C:-C)/B,g[0][1])*B:dy(y+H+E/B,g[1][1])*B));h&&(I=Math.max(I,(m||n)&&(!m||n||!q)?dy(y+(m?C:-C)/B,h[0][1])*B:dx(y+E/B,h[1][1])*B))}if(p){(J=Math.max(J,dz(F*B,t,u)/B),g)&&(J=Math.max(J,(m||n)&&(!n||m||!q)?dx(x+(n?D:-D)*B+G,g[0][0])/B:dy(x+F*B+G,g[1][0])/B));h&&(J=Math.max(J,(m||n)&&(!n||m||!q)?dy(x+(n?D:-D)*B,h[0][0])/B:dx(x+F*B,h[1][0])/B))}}D+=D<0?J:-J,C+=C<0?I:-I,e&&(q?E>F*B?D=((i=m,j=n,i?!j:j)?-C:C)/B:C=((k=m,l=n,k?!l:l)?-D:D)*B:o?(D=C/B,n=m):(C=D*B,m=n));let K=m?x+C:x,L=n?y+D:y;return{width:z+(m?-C:C),height:A+(n?-D:D),x:f[0]*C*(m?-1:1)+K,y:f[1]*D*(n?-1:1)+L}}(t,g.controlDirection,i,g.boundaries,g.keepAspectRatio,A,q,r),F=B!==x,G=C!==y,H=D!==k&&F,I=E!==m&&G;if(!H&&!I&&!F&&!G)return;if((H||I||1===A[0]||1===A[1])&&(z.x=H?D:s.x,z.y=I?E:s.y,s.x=z.x,s.y=z.y,v.length>0)){let a=D-k,b=E-m;for(let c of v)c.position={x:c.position.x-a+A[0]*(B-x),y:c.position.y-b+A[1]*(C-y)},j.push(c)}if((F||G)&&(z.width=F&&(!g.resizeDirection||"horizontal"===g.resizeDirection)?B:s.width,z.height=G&&(!g.resizeDirection||"vertical"===g.resizeDirection)?C:s.height,s.width=z.width,s.height=z.height),p&&o.expandParent){let a=A[0]*(z.width??0);z.x&&z.x<a&&(s.x=a,t.x=t.x-(z.x-a));let b=A[1]*(z.height??0);z.y&&z.y<b&&(s.y=b,t.y=t.y-(z.y-b))}let J=function({width:a,prevWidth:b,height:c,prevHeight:d,affectsX:e,affectsY:f}){let g=a-b,h=c-d,i=[g>0?1:g<0?-1:0,h>0?1:h<0?-1:0];return g&&e&&(i[0]=-1*i[0]),h&&f&&(i[1]=-1*i[1]),i}({width:s.width,prevWidth:x,height:s.height,prevHeight:y,affectsX:g.controlDirection.affectsX,affectsY:g.controlDirection.affectsY}),K={...s,direction:J};!1!==n?.(a,K)&&(w=!0,l?.(a,K),d(z,j))}).on("end",a=>{w&&(m?.(a,{...s}),e?.({...s}),w=!1)});f.call(x)},destroy:function(){f.on(".drag",null)}}}({domNode:A.current,nodeId:y,getStoreItems:()=>{let{nodeLookup:a,transform:b,snapGrid:c,snapToGrid:d,nodeOrigin:e,domNode:f}=z.getState();return{nodeLookup:a,transform:b,snapGrid:c,snapToGrid:d,nodeOrigin:e,paneDomNode:f}},onChange:(a,b)=>{let{triggerNodeChanges:c,nodeLookup:d,parentLookup:e,nodeOrigin:f}=z.getState(),g=[],h={x:a.x,y:a.y},i=d.get(y);if(i&&i.expandParent&&i.parentId){let b=i.origin??f,c=a.width??i.measured.width??0,j=a.height??i.measured.height??0,k=dd([{id:i.id,parentId:i.parentId,rect:{width:c,height:j,...cK({x:a.x??i.position.x,y:a.y??i.position.y},{width:c,height:j},i.parentId,d,b)}}],d,e,f);g.push(...k),h.x=a.x?Math.max(b[0]*c,a.x):void 0,h.y=a.y?Math.max(b[1]*j,a.y):void 0}if(void 0!==h.x&&void 0!==h.y){let a={id:y,type:"position",position:{...h}};g.push(a)}if(void 0!==a.width&&void 0!==a.height){let b={id:y,type:"dimensions",resizing:!0,setAttributes:!m||("horizontal"===m?"width":"height"),dimensions:{width:a.width,height:a.height}};g.push(b)}for(let a of b){let b={...a,type:"position"};g.push(b)}c(g)},onEnd:({width:a,height:b})=>{z.getState().triggerNodeChanges([{id:y,type:"dimensions",resizing:!1,dimensions:{width:a,height:b}}])}})),D.current.update({controlPosition:E,boundaries:{minWidth:h,minHeight:i,maxWidth:j,maxHeight:k},keepAspectRatio:l,resizeDirection:m,onResizeStart:p,onResize:r,onResizeEnd:v,shouldResize:o}),()=>{D.current?.destroy()}},[E,h,i,j,k,l,p,r,v,o]);let F=E.split("-");return(0,s.jsx)("div",{className:u(["react-flow__resize-control","nodrag",...F,c,d]),ref:A,style:{...e,scale:C,...g&&{[B?"backgroundColor":"borderColor"]:g}},children:f})});class gd extends Error{status;code;constructor(a,b,c){super(c),this.status=a,this.code=b,this.name="ApiError"}}async function ge(a){let b=await a.json().catch(()=>null);return new gd(a.status,b?.error.code??"INTERNAL",b?.error.message??`HTTP ${a.status}`)}async function gf(a,b){try{return await fetch(a,b)}catch(a){if(a instanceof DOMException&&"AbortError"===a.name)throw a;throw new gd(0,"NETWORK","The Nebulosity server didn't answer. Is nebulosity map (or npm run dev) still running?")}}async function gg(a,b){let c=await gf(a,b);if(!c.ok)throw await ge(c);return await c.json()}async function gh(a,b){let c=a.getReader(),d=new TextDecoder,e="";for(;;){let{value:a,done:f}=await c.read();if(f)return;let g=function(a){let b=a.replace(/\r\n/g,"\n").split("\n\n"),c=b.pop()??"",d=[];for(let a of b){let b="message",c=[];for(let d of a.split("\n"))!d.startsWith(":")&&(d.startsWith("event:")?b=d.slice(6).trim():d.startsWith("data:")&&c.push(d.slice(5).replace(/^ /,"")));c.length>0&&d.push({event:b,data:c.join("\n")})}return{frames:d,rest:c}}(e+=d.decode(a,{stream:!0}));for(let a of(e=g.rest,g.frames))b(a)}}let gi={level:(a,b=0,c,d)=>gg(((a,b=0,c)=>`/api/level?path=${encodeURIComponent(a)}${b>0?`&page=${b}`:""}${void 0!==c?`&focus=${encodeURIComponent(c)}`:""}`)(a,b,d),{signal:c}),describe:(a,b)=>gg(`/api/describe?path=${encodeURIComponent(a)}`,{signal:b}),search:(a,b,c)=>gg(`/api/search?q=${encodeURIComponent(a)}&limit=${b}`,{signal:c}),status:a=>gg("/api/status",{signal:a}),source:(a,b)=>gg(`/api/source?path=${encodeURIComponent(a)}`,{signal:b}),summarize:a=>gg(`/api/summarize?path=${encodeURIComponent(a)}`,{method:"POST"}),repos:()=>gg("/api/repos"),setActiveRepo:a=>gg("/api/repos",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({root:a})}),async reindex(a){let b=await gf("/api/index",{method:"POST"});if(!b.ok||!b.body)throw await ge(b);let c={done:null,error:null};if(await gh(b.body,b=>{"progress"===b.event?a(JSON.parse(b.data)):"done"===b.event?c.done=JSON.parse(b.data):"error"===b.event&&(c.error=JSON.parse(b.data))}),c.error)throw new gd(500,c.error.code,c.error.message);if(!c.done)throw new gd(500,"INTERNAL","The re-index ended without a result.");return c.done}},gj=(a,b)=>a.left<b.left+b.width&&b.left<a.left+a.width&&a.top<b.top+b.height&&b.top<a.top+a.height;function gk(a,b,c){return{left:Math.max(8,Math.min(a.left,c.width-8-b.width)),top:Math.max(8,Math.min(a.top,c.height-8-b.height))}}var gl=a.i(70705);function gm(a,b,c){let d,e,f=a.closest("header")?.parentElement??document.documentElement,g=f.getBoundingClientRect(),h=f.querySelector(":scope > footer")?.getBoundingClientRect().top??g.bottom,i=a.getBoundingClientRect(),j=(d=Math.min(b,g.right-g.left-32),{shift:Math.min(Math.max(e="start"===c?i.left:i.right-d,g.left+16),g.right-16-d)-e,width:d}),k=h-i.top-36-8;return"start"===c?{left:j.shift,width:j.width,maxHeight:k}:{right:-j.shift,width:j.width,maxHeight:k}}function gn(a,b){(0,t.useEffect)(()=>{if(a)return window.addEventListener("resize",b),()=>window.removeEventListener("resize",b)},[a,b])}function go(a,b){let c=(0,t.useRef)(null),d=(0,t.useRef)(b);return(0,t.useEffect)(()=>{d.current=b},[b]),(0,t.useEffect)(()=>{var b;if(!a)return;let e=a=>{c.current&&a.target instanceof Node&&!c.current.contains(a.target)&&d.current()},f=(b=()=>d.current(),a=>{"Escape"===a.key&&(a.stopPropagation(),b())});return document.addEventListener("pointerdown",e),document.addEventListener("keydown",f),()=>{document.removeEventListener("pointerdown",e),document.removeEventListener("keydown",f)}},[a]),c}function gp({repo:a,repoRoot:b,trail:c,onOpen:d,compact:e}){let f=c.slice(1),g=(0,t.useRef)(null),h=(0,t.useRef)(null),i=(0,t.useRef)(null),[j,k]=(0,t.useState)({trail:c,count:0,owner:!0}),l=e&&f.length>0,m=l?f.length-1:j.trail===c?j.count:0,n=j.trail!==c||j.owner,o=l?["",...f.slice(0,m)]:f.slice(0,m);(0,t.useLayoutEffect)(()=>{let a=g.current,b=i.current,d=h.current;if(!a||!b||!d)return;let e=a.closest("header")?.querySelector('[data-testid="search-button"]')??null,f=()=>{let f=[...b.children].map(a=>a.getBoundingClientRect().width),g=f.pop()??0,h=[...d.querySelectorAll(".truncate")].reduce((a,b)=>a+Math.max(0,b.scrollWidth-b.clientWidth),0),i=a.getBoundingClientRect().width+(()=>{if(null===e)return 0;let a=getComputedStyle(e);return"0"===a.flexShrink?0:Math.max(0,e.getBoundingClientRect().width-(parseFloat(a.minWidth)||0))})()-d.getBoundingClientRect().width-h-4,j=a=>0===f.length?0:function(a,b,c){let d=a.length-1;if(d<=0)return 0;let e=a.reduce((a,b)=>a+b,0)+4*d;if(e<=b)return 0;e+=c+4;for(let c=1;c<d;c++)if((e-=a[c-1]+4)<=b)return c;return d}(f,a,g),l=j(i),m=(0===f.length?a.querySelector("[data-crumb-root]")?.getBoundingClientRect().width??0:f.slice(l).reduce((a,b)=>a+b+4,l>0?g+4:0)-4)<=i,n=d.querySelector("[data-repo-owner]")?.scrollWidth??0,o=m?l:j(i+n);k(a=>a.trail===c&&a.count===o&&a.owner===m?a:{trail:c,count:o,owner:m})};f();let j=new ResizeObserver(f);for(let c of(j.observe(a),j.observe(d),null!==e&&j.observe(e),b.children))j.observe(c);return()=>j.disconnect()},[c]);let p=0===f.length?"root":(0,gl.d)(f[f.length-1],b);return(0,s.jsxs)("nav",{ref:g,"aria-label":"Where you are","data-owner":n?void 0:"hidden",className:"group/crumb relative flex min-w-0 flex-1 items-center gap-1 font-mono text-[12.5px] text-text-2",children:[(0,s.jsx)("span",{ref:h,className:`${l?"hidden":"flex"} min-w-[30px] shrink-[1000] items-center has-[[data-testid=repo-menu]]:min-w-[50px]`,children:a}),o.length>0&&(0,s.jsxs)(s.Fragment,{children:[!l&&(0,s.jsx)("span",{"aria-hidden":!0,className:"shrink-0",children:"/"}),(0,s.jsx)(gq,{steps:o,repoRoot:b,onOpen:d})]}),f.map((a,c)=>c<m?null:(0,s.jsxs)("span",{className:`flex items-center gap-1 ${c===f.length-1?"min-w-0":"shrink-0"}`,children:[(0,s.jsx)("span",{"aria-hidden":!0,children:"/"}),c===f.length-1?(0,s.jsx)("span",{"aria-current":"page",title:a,className:"truncate text-text",children:(0,gl.d)(a,b)}):(0,s.jsx)("button",{type:"button",onClick:()=>d(a),title:a,className:"truncate rounded-[4px] px-0.5 hover:bg-node hover:text-text",children:(0,gl.d)(a,b)})]},a)),0===f.length&&!e&&(0,s.jsxs)("span",{"data-crumb-root":!0,className:"flex shrink-0 items-center gap-1",children:[(0,s.jsx)("span",{"aria-hidden":!0,children:"/"}),(0,s.jsx)("span",{"aria-current":"page",className:"text-text-2",children:p})]}),(0,s.jsxs)("div",{ref:i,"aria-hidden":!0,className:"pointer-events-none invisible absolute inset-x-0 top-0 flex h-0 gap-1 overflow-hidden whitespace-nowrap",children:[f.map(a=>(0,s.jsxs)("span",{className:"flex shrink-0 items-center gap-1",children:[(0,s.jsx)("span",{children:"/"}),(0,s.jsx)("span",{className:"px-0.5",children:(0,gl.d)(a,b)})]},a)),(0,s.jsxs)("span",{className:"flex shrink-0 items-center gap-1",children:[(0,s.jsx)("span",{children:"/"}),(0,s.jsx)("span",{className:"px-1.5",children:"…"})]})]})]})}function gq({steps:a,repoRoot:b,onOpen:c}){let[d,e]=(0,t.useState)(!1),[f,g]=(0,t.useState)({left:0,width:260}),h=go(d,()=>e(!1)),i=(0,t.useCallback)(()=>{h.current&&g(gm(h.current,260,"start"))},[h]);return gn(d,i),(0,s.jsxs)("span",{ref:h,className:"relative shrink-0",children:[(0,s.jsx)("button",{type:"button","data-testid":"breadcrumb-folded","aria-expanded":d,"aria-label":`${a.length} more ${1===a.length?"folder":"folders"} on the way here`,title:a.map(a=>(0,gl.d)(a,b)).join(" / "),onClick:()=>{d||i(),e(a=>!a)},className:"rounded-[4px] border border-border px-1.5 leading-[18px] hover:bg-node hover:text-text",children:"…"}),d&&(0,s.jsx)("ul",{"data-testid":"breadcrumb-menu","data-covers":!0,style:f,className:"absolute top-7 z-30 overflow-y-auto rounded-md border border-border bg-panel py-1 font-sans text-[13px]",children:a.map(a=>(0,s.jsx)("li",{children:(0,s.jsx)("button",{type:"button",onClick:()=>{e(!1),c(a)},title:a,className:"block w-full truncate px-3 py-1.5 text-left font-mono text-[12.5px] text-text hover:bg-node",children:(0,gl.d)(a,b)})},a))})]})}var gr={outline:{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},filled:{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"currentColor",stroke:"none"}};let gs=(a,b,c,d)=>{let e=(0,t.forwardRef)(({color:c="currentColor",size:e=24,stroke:f=2,title:g,className:h,children:i,...j},k)=>(0,t.createElement)("svg",{ref:k,...gr[a],width:e,height:e,className:["tabler-icon",`tabler-icon-${b}`,h].filter(Boolean).join(" "),..."filled"===a?{fill:c}:{strokeWidth:f,stroke:c},...j},[g&&(0,t.createElement)("title",{key:"svg-title"},g),...d.map(([a,b])=>(0,t.createElement)(a,b)),...Array.isArray(i)?i:[i]]));return e.displayName=`${c}`,e},gt=gs("outline","arrow-left","ArrowLeft",[["path",{d:"M5 12l14 0",key:"svg-0"}],["path",{d:"M5 12l6 6",key:"svg-1"}],["path",{d:"M5 12l6 -6",key:"svg-2"}]]),gu=gs("outline","arrow-right","ArrowRight",[["path",{d:"M5 12l14 0",key:"svg-0"}],["path",{d:"M13 18l6 -6",key:"svg-1"}],["path",{d:"M13 6l6 6",key:"svg-2"}]]),gv=gs("outline","file","File",[["path",{d:"M14 3v4a1 1 0 0 0 1 1h4",key:"svg-0"}],["path",{d:"M17 21h-10a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2",key:"svg-1"}]]),gw=gs("outline","folder","Folder",[["path",{d:"M5 4h4l3 3h7a2 2 0 0 1 2 2v8a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-11a2 2 0 0 1 2 -2",key:"svg-0"}]]),gx=gs("outline","x","X",[["path",{d:"M18 6l-12 12",key:"svg-0"}],["path",{d:"M6 6l12 12",key:"svg-1"}]]);function gy(a,b,c=new Set){let d=.02*Math.max(0,...a.map(a=>a.count));return a.filter(a=>a.source!==a.target&&a.count<d&&(null===b||a.source!==b&&a.target!==b)&&!c.has(a.source)&&!c.has(a.target)).length}let gz={uses:{line:"var(--edge-strong)",fill:"bg-edge-strong",underline:"after:bg-edge-strong"},usedBy:{line:"var(--used-by-edge)",fill:"bg-used-by-edge",underline:"after:bg-used-by-edge"}},gA=a=>`${a.source}->${a.target}`,gB=(a,b,c)=>"uses"===c?a.source===b:"usedBy"===c?a.target===b:a.source===b||a.target===b;function gC(a,b,c="all"){let d=new Set;if(null===b)return d;for(let e of a)gB(e,b,c)&&(e.source===b?d.add(e.target):e.target===b&&d.add(e.source));return d}function gD(a,b,c,d,e={}){let f=new Set(a),g=null!==c&&f.has(c)?c:null,h=null!==d&&f.has(d)&&d!==g?d:null,i=e.direction??"all",j=gC(b,g,i),k=gC(b,h),l=new Map;for(let b of a)b===g?l.set(b,"selected"):j.has(b)?l.set(b,"linked"):b===h||k.has(b)?l.set(b,"preview"):l.set(b,null===g?"normal":"faded");let m=.02*Math.max(0,...b.map(a=>a.count)),n=e.pinned??new Set,o=new Map;for(let a of b){let b=b=>null!==b&&(a.source===b||a.target===b),c=n.has(a.source)||n.has(a.target);null!==g&&gB(a,g,i)?o.set(gA(a),"selected"):b(g)?o.set(gA(a),b(h)?"preview":"faded"):b(h)?o.set(gA(a),"preview"):e.quietLines&&!c||e.strongOnly&&a.count<m&&!c?o.set(gA(a),"hidden"):o.set(gA(a),null===g?"normal":"faded")}return{boxes:l,edges:o}}function gE(a){return a.toLocaleString("en-US")}let gF=[["K",1e3],["M",1e6],["B",1e9]];function gG(a){return a<5e3?"just now":a<6e4?`${Math.floor(a/1e3)} s ago`:a<36e5?`${Math.floor(a/6e4)} min ago`:`${Math.floor(a/36e5)} h ago`}let gH={structure:"Structure",summaries:"Summaries",embeddings:"Search vectors"},gI={structure:"Indexing",summaries:"Summarizing",embeddings:"Embedding"},gJ=["structure","summaries","embeddings"],gK=a=>a.total>0?` ${gE(a.done)} / ${gE(a.total)}`:"";function gL(a){return a.usedBy.length>0?"usedBy":a.uses.length>0?"uses":"inside"}function gM(a){return a.reduce((a,b)=>Math.max(a,b.count),0)}let gN=(a,b,c)=>1===a?b:c;function gO(a,b){return`${a}, ${gE(b)} ${gN(b,"import","imports")}`}function gP(a){return"portal"!==a.kind?a.name:a.pages?`boxes on ${a.pages.length} other pages`:`boxes on ${a.name}`}let gQ=a=>a.charAt(0).toUpperCase()+a.slice(1);function gR(a,b,c){return{who:"portal"===a.kind?gQ(gP(a)):gP(a),verb:"portal"===a.kind?"use":"uses",whom:gP(b),imports:`${gE(c)} import${1===c?"":"s"}`}}function gS(a,b){return`vscode://file/${a.repo}/${a.path}${b?`:${b}`:""}`}function gT(a){performance.clearMarks(`${a}:start`),performance.mark(`${a}:start`)}function gU(a){performance.clearMarks(`${a}:start`)}function gV(a){requestAnimationFrame(()=>requestAnimationFrame(()=>{if(0===performance.getEntriesByName(`${a}:start`,"mark").length)return;let b=performance.measure(a,`${a}:start`);performance.clearMarks(`${a}:start`);let c=window;(c.__nebulosityPerf??=[]).push({name:a,ms:Math.round(10*b.duration)/10})}))}function gW(a,b){return a.reduce((a,c)=>a+(c.source===b||c.target===b?c.count:0),0)}let gX=(a,b,c)=>`${gE(a)} ${1===a?b:c}`;function gY(a,b){return`${gX(a.hiddenCount??0,"folder or file","folders and files")}, ${gX(b,"import","imports")}`}function gZ(a,b){return null!==b&&null!==a&&b.includes("//")?a.nodes.some(a=>a.path===b)?b:null:b}let g$=new Set(["NOT_READY","SUMMARIES_OFF"]),g_=a=>"pending"===a||"stale"===a,g0=gs("outline","external-link","ExternalLink",[["path",{d:"M12 6h-6a2 2 0 0 0 -2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2 -2v-6",key:"svg-0"}],["path",{d:"M11 13l9 -9",key:"svg-1"}],["path",{d:"M15 4h5v5",key:"svg-2"}]]);var g1=a.i(3404);let g2=0,g3="";function g4(){(0,t.useEffect)(()=>{let a=document.documentElement;return 0===g2&&(g3=a.style.overflow,a.style.overflow="hidden"),g2++,()=>{0==--g2&&(a.style.overflow=g3)}},[])}let g5="inline-flex h-7 shrink-0 items-center gap-1.5 whitespace-nowrap rounded-[5px] border border-border px-3 text-[13px] text-text hover:border-text-3";function g6({path:b,lines:c,onClose:d,onOpenInEditor:e}){g4();let[f,g]=(0,t.useState)(null),[h,i]=(0,t.useState)(null),j=(0,t.useRef)(null);(0,t.useEffect)(()=>{let a=new AbortController;return gi.source(b,a.signal).then(g,a=>{a instanceof gd&&i(a)}),()=>a.abort()},[b]),(0,t.useEffect)(()=>{f&&c&&j.current&&(j.current.scrollTop=Math.max(0,(c.start-4)*20))},[f,c]),(0,t.useEffect)(()=>{let a=a=>{"Escape"===a.key&&(a.stopImmediatePropagation(),d())};return window.addEventListener("keydown",a,!0),()=>window.removeEventListener("keydown",a,!0)},[d]);let k=f?.content.replace(/\r\n/g,"\n").replace(/\n$/,"")??"",[l,m]=(0,t.useState)(null);(0,t.useEffect)(()=>{if(!f)return;let b=!0;return a.A(37984).then(({highlightCode:a})=>{b&&m({text:k,html:a(k,f.language)})}),()=>{b=!1}},[f,k]);let n=f?.lineCount??0,o=f?gS(f,c?.start):void 0;return(0,dK.createPortal)((0,s.jsx)("div",{"data-source-viewer":b,className:"fixed inset-0 z-40 bg-canvas/60",onClick:d,children:(0,s.jsxs)("div",{role:"dialog","aria-label":`Source of ${b}`,onClick:a=>a.stopPropagation(),className:"absolute inset-y-0 right-0 flex w-[min(960px,80vw)] flex-col border-l border-divider bg-panel max-[600px]:w-full",children:[(0,s.jsxs)("header",{className:"flex shrink-0 items-start justify-between gap-2 border-b border-divider px-4 pb-3 pt-4",children:[(0,s.jsxs)("div",{className:"min-w-0",children:[(0,s.jsx)("h2",{title:b,className:"truncate font-mono text-[15px] font-medium leading-5 text-text",children:(0,gl.d)(b,"")}),(0,s.jsx)("div",{className:"truncate font-mono text-[12px] leading-[18px] text-text-3",title:b,children:b}),(0,s.jsxs)("div",{className:"mt-1.5 flex flex-wrap items-center gap-x-3 gap-y-1.5 text-[12.5px] leading-[18px] text-text-2",children:[f&&(0,s.jsxs)("span",{children:[gE(n)," ",1===n?"line":"lines"]}),f?.truncated&&(0,s.jsx)("span",{children:"Only the first 1 MB is shown."}),f&&(0,g1.M)(k)&&(0,s.jsx)("span",{"data-testid":"source-plain",children:"Shown without colors, too large to color quickly."}),c&&(0,s.jsxs)("span",{children:["Lines ",c.start,"–",c.end," highlighted"]}),o&&(e?(0,s.jsxs)("button",{type:"button",onClick:()=>e(c?.start),className:g5,children:["Open in VS Code ",(0,s.jsx)(g0,{"aria-hidden":!0,size:14,stroke:1.75})]}):(0,s.jsxs)("a",{href:o,className:g5,children:["Open in VS Code ",(0,s.jsx)(g0,{"aria-hidden":!0,size:14,stroke:1.75})]}))]})]}),(0,s.jsx)("button",{type:"button",onClick:d,"aria-label":"Close the source",className:"-mr-1 shrink-0 rounded-[5px] p-1 text-text-2 hover:bg-node hover:text-text",children:(0,s.jsx)(gx,{"aria-hidden":!0,size:16,stroke:1.75})})]}),(0,s.jsxs)("div",{ref:j,"data-scroll-x":!0,className:"min-h-0 flex-1 overflow-auto",children:[h&&(0,s.jsx)("p",{className:"px-4 py-3 text-[13px] text-danger [overflow-wrap:anywhere]",children:h.message}),!f&&!h&&(0,s.jsx)("p",{className:"px-4 py-3 text-[13px] text-text-2",children:"Loading…"}),f&&(0,s.jsxs)("div",{className:"relative flex min-w-max font-mono text-[13px]",style:{lineHeight:"20px"},children:[c&&(0,s.jsx)("div",{"aria-hidden":!0,className:"absolute inset-x-0 bg-node",style:{top:(c.start-1)*20+12,height:(c.end-c.start+1)*20}}),(0,s.jsx)("pre",{"aria-hidden":!0,className:"sticky left-0 select-none bg-panel py-3 pl-4 pr-3 text-right text-text-3",children:Array.from({length:n},(a,b)=>b+1).join("\n")}),l?.text===k?(0,s.jsx)("pre",{className:"syntax relative py-3 pr-6",dangerouslySetInnerHTML:{__html:l.html}}):(0,s.jsx)("pre",{className:"syntax relative py-3 pr-6",children:k})]})]})]})}),document.body)}let g7="inline-flex h-7 shrink-0 items-center gap-1.5 whitespace-nowrap rounded-[5px] border border-border px-3 text-[13px] text-text hover:border-text-3",g8="text-text underline decoration-text-3 underline-offset-2 hover:decoration-text",g9="min-h-0 flex-1 overflow-y-auto pb-4 [@media(height<480px)]:flex-none [@media(height<480px)]:overflow-visible",ha="@min-[720px]:min-h-0 @min-[720px]:overflow-y-auto @min-[720px]:pb-4",hb=(0,t.memo)(function(a){let b=a.level.nodes.find(b=>b.path===a.path&&"portal"===b.kind);return b?(0,s.jsx)(he,{portal:b,...a}):(0,s.jsx)(hd,{...a})});function hc({path:a,placement:b,onScreenFolder:c=!1,alert:d,name:e,title:f,meta:g,onClose:h,children:i}){return(0,s.jsxs)("aside",{"data-panel":a,"data-placement":b,"data-on-screen":c||void 0,className:`@container pointer-events-auto flex h-full min-h-0 w-full min-w-0 flex-col border-divider bg-panel [@media(height<480px)]:overflow-y-auto ${"below"===b?"border-t":"border-l"}`,children:[(0,s.jsxs)("header",{className:"flex shrink-0 items-start justify-between gap-2 px-4 pb-3 pt-4",children:[(0,s.jsxs)("div",{className:"min-w-0",children:[(0,s.jsx)("h2",{className:"truncate font-mono text-[15px] font-medium leading-5 text-text",title:f,children:e}),g&&(0,s.jsx)("p",{className:"mt-0.5 text-[12.5px] leading-[18px] text-text-2",children:g})]}),!c&&(0,s.jsx)("button",{type:"button",onClick:h,"aria-label":"Close the panel",className:"-mr-1 shrink-0 rounded-[5px] p-1 text-text-2 hover:bg-node hover:text-text",children:(0,s.jsx)(gx,{"aria-hidden":!0,size:16,stroke:1.75})})]}),i,d&&(0,s.jsx)("p",{role:"alert","data-covers":!0,className:"pointer-events-none sticky bottom-0 shrink-0 border-t border-divider bg-panel px-4 py-2 text-center text-[13px] text-danger [overflow-wrap:anywhere]",children:d})]})}function hd({path:a,level:b,indexVersion:c,summariesOff:d,onFocus:e,onOpen:f,onClose:g,onOpenInEditor:h,placement:i,onScreenFolder:j,alert:k}){var l,m;let n,[o,p]=(0,t.useState)(null),[q,r]=(0,t.useState)(null),[u,v]=(0,t.useState)(null),[w,x]=(0,t.useState)(null),[y,z]=(0,t.useState)(!1),[A,B]=(0,t.useState)(null),C=(0,t.useRef)(new Set),[D,E]=(0,t.useState)(null);(0,t.useEffect)(()=>{},[]),(0,t.useEffect)(()=>{let b=new AbortController;return gi.describe(a,b.signal).then(a=>{p(a),r(null),B(b=>b??gL(a))},a=>{a instanceof gd&&r(a)}),()=>b.abort()},[a,c]),(0,t.useEffect)(()=>{o&&gV("map:select")},[o]);let F=(a,b)=>{z(!0),gi.summarize(a).then(a=>{v(a),z(!1)},a=>{z(!1),a instanceof gd&&("NOT_READY"===a.code&&b?.(),x(a))})};(0,t.useEffect)(()=>{if(null===o||!g_(o.summaryStatus)&&(!0!==o.summaryOlderStyle||d))return;let a=g_(o.summaryStatus)?`${o.path}@${o.indexVersion}`:`${o.path}@older`;C.current.has(o.path)||C.current.has(a)||(C.current.add(a),F(o.path,()=>C.current.add(o.path)))},[o,d]);let G=o?.kind??function(a,b){if(""===a)return"repo";if(a===b.path)return"folder";let c=b.nodes.find(b=>b.path===a)?.kind;return"folder"===c||"file"===c?c:void 0}(a,b),[H,I]=(0,t.useState)(null),J=(0,t.useCallback)(()=>I(null),[]),K="below"===i,L=q&&(0,s.jsx)("p",{className:"text-[13px] text-danger [overflow-wrap:anywhere]",children:q.message});return(0,s.jsxs)(hc,{path:a,placement:i,onScreenFolder:j,alert:k,name:(l=b.repo,n=(0,gl.d)(a,l),"folder"===G?`${n}/`:n),title:(m=b.repo,""===a?m:"folder"===G?`${a}/`:a),meta:o?function(a){let{fileCount:b,lineCount:c}=a.stats,d=`${function(a){if(a<1e3)return String(a);let b=0;for(;b<gF.length-1&&a>=gF[b+1][1];)b++;let c=Math.round(a/gF[b][1]*10)/10;return c>=1e3&&b<gF.length-1&&(c=Math.round(a/gF[++b][1]*10)/10),`${c}${gF[b][0]}`}(c)} ${gN(c,"line","lines")}`,e="file"===a.kind?d:`${gE(b)} ${gN(b,"file","files")}, ${d}`;return a.stalePaths>0?`${e}, ${gE(a.stalePaths)} changed since summarized`:e}(o):void 0,onClose:g,children:[o?(0,s.jsxs)("div",{className:`${g9} ${K?"@min-[720px]:grid @min-[720px]:grid-cols-2 @min-[720px]:grid-rows-1 @min-[720px]:pb-0":""}`,children:[(0,s.jsxs)("div",{className:`flex flex-col gap-3 px-4 ${K?`${ha} @min-[720px]:pr-3`:""}`,children:[L,(0,s.jsx)(hh,{data:o,fresh:u,refreshing:y,summaryError:w,onRetry:()=>{null!==o&&(x(null),F(o.path))}}),(0,s.jsx)(hg,{data:o,github:D,onScreenFolder:j??!1,onOpen:f,onViewSource:()=>I({}),onOpenInEditor:h&&(()=>h(o.path))})]}),(0,s.jsx)("div",{className:`px-4 pt-4 ${K?`${ha} @min-[720px]:pl-3 @min-[720px]:pt-1`:""}`,children:(0,s.jsx)(hk,{data:o,tab:A??gL(o),onTab:B,onFocus:e,onOpen:f,onViewLines:(a,b)=>I({lines:{start:a,end:b}})})})]}):(0,s.jsx)("div",{className:`${g9} px-4`,children:L||(0,s.jsx)("p",{className:"text-[13px] text-text-2",children:"Loading…"})}),H&&o?.kind==="file"&&(0,s.jsx)(g6,{path:o.path,lines:H.lines,onClose:J,onOpenInEditor:h&&(a=>h(o.path,a))})]})}function he({portal:a,path:b,level:c,onFocus:d,onTurnPage:e,onClose:f,placement:g,onScreenFolder:h,alert:i}){let j=gW(c.edges,a.path),k=function(a,b){let c=new Map;for(let d of a.edges){let a=d.source===b?d.target:d.target===b?d.source:null;null!==a&&c.set(a,(c.get(a)??0)+d.count)}let d=new Map(a.nodes.map((a,b)=>[a.path,b]));return[...c.entries()].map(([a,b])=>({path:a,count:b})).sort((a,b)=>b.count-a.count||(d.get(a.path)??0)-(d.get(b.path)??0))}(c,a.path),l=gM(k),m=void 0!==a.page?[a.page]:a.pages??[],n=new Map(c.nodes.map(a=>[a.path,a]));return(0,t.useEffect)(()=>{gV("map:select")},[]),(0,s.jsx)(hc,{path:b,placement:g,onScreenFolder:h,alert:i,name:a.name,title:`${a.name} of ${c.path||(0,gl.d)("",c.repo)}`,meta:`${gY(a,j)} with this page`,onClose:f,children:(0,s.jsxs)("div",{className:`${g9} space-y-4 px-4`,children:[(0,s.jsxs)("section",{"aria-label":"Go to",children:[m.length>1&&(0,s.jsx)(hf,{title:"Pages behind this doorway",count:m.length}),(0,s.jsx)("ul",{className:"flex flex-wrap gap-2",children:m.map(a=>(0,s.jsx)("li",{children:(0,s.jsxs)("button",{type:"button","data-go-page":a,onClick:()=>e(a),className:g7,children:[a<c.page&&(0,s.jsx)(gt,{"aria-hidden":!0,size:14,stroke:1.75}),1===m.length?`Go to page ${a+1}`:`Page ${a+1}`,a>c.page&&(0,s.jsx)(gu,{"aria-hidden":!0,size:14,stroke:1.75})]})},a))})]}),(0,s.jsxs)("section",{"aria-label":"Linked from this page",children:[(0,s.jsx)(hf,{title:"Linked from this page",count:k.length}),(0,s.jsx)(hp,{items:k,empty:"No lines from this page.",render:({path:b,count:c})=>(0,s.jsx)(hm,{linked:b,name:n.get(b)?.name??b,count:c,largest:l,title:`${gO(b,c)} with ${a.name}`,onClick:()=>d(b)},b)})]})]})})}function hf({title:a,count:b}){return(0,s.jsxs)("h3",{className:"mb-2 border-b border-divider pb-2 pt-1.5 text-[13px] font-normal text-text",children:[a," ",(0,s.jsx)("span",{className:"text-text-2",children:gE(b)})]})}function hg({data:a,github:b,onScreenFolder:c,onOpen:d,onViewSource:e,onOpenInEditor:f}){let g="file"===a.kind,h="folder"===a.kind&&!c;if(!h&&!(g&&1))return null;return(0,s.jsxs)("div",{className:"flex flex-wrap gap-2",children:[h&&(0,s.jsx)("button",{type:"button",onClick:()=>d(a.path),className:"inline-flex h-7 shrink-0 items-center whitespace-nowrap rounded-[5px] bg-accent px-3 text-[13px] font-semibold text-on-accent hover:brightness-110",children:"Open folder"}),!1,g&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("button",{type:"button",onClick:e,className:g7,children:"View source"}),f?(0,s.jsx)("button",{type:"button",onClick:f,className:g7,children:"Open in VS Code"}):(0,s.jsx)("a",{href:gS(a),className:g7,children:"Open in VS Code"})]})]})}function hh({data:a,fresh:b,refreshing:c,summaryError:d,onRetry:e}){var f,g;let h,[i,j]=(0,t.useState)(!1),k=b??a,{lead:l,rest:m}=(0,g1.z)(k.summary??""),n=(f=k.summaryError,f??(d&&!g$.has(d.code)?d.message:null)),o=k.tagline?"":function(a,b){if(b?.code==="NOT_READY")return"Waiting for what's inside to be summarized first.";if(b?.code==="SUMMARIES_OFF")return b.message;switch(a){case"off":return"Summaries are off, since ANTHROPIC_API_KEY isn't set. With a key, each file and folder gets a short plain-language summary here, and search can match by meaning.";case"failed":return"The last attempt to summarize this failed.";case"pending":return"Summarizing…";default:return""}}(k.summaryStatus,d),p=""===l?[]:i?[l,...m.split(/\n\s*\n/)]:[l],{notes:q,testsNote:r}=(g=a.kind,h="file"!==g&&!0===k.summaryOlderStyle,{notes:[c&&k.tagline?"Refreshing…":"","stale"===k.summaryStatus&&!c&&!h?"Out of date, it changed since it was summarized.":""].filter(Boolean),testsNote:!!k.summary&&"file"===g&&!0===k.summaryOlderStyle}),u=q.length>0||r||null!==n;return(0,s.jsxs)("section",{"aria-label":"Summary",className:"space-y-3 [overflow-wrap:anywhere]",children:[k.tagline&&(0,s.jsx)("p",{className:"text-[13px] font-semibold leading-[18px] text-text",children:(0,s.jsx)(hi,{text:k.tagline})}),o&&(0,s.jsx)("p",{className:"text-[13px] leading-[1.55] text-text-2",children:o}),p.length>0&&(0,s.jsx)("div",{className:"space-y-2 text-[13px] leading-[1.55] text-text-2",children:p.map((a,b)=>(0,s.jsxs)("p",{children:[(0,s.jsx)(hi,{text:a}),m&&b===p.length-1&&(0,s.jsxs)(s.Fragment,{children:[" ",(0,s.jsx)("button",{type:"button","aria-expanded":i,onClick:()=>j(a=>!a),className:g8,children:i?"Show less":"Full summary"})]})]},b))}),u&&(0,s.jsxs)("div",{className:"space-y-1 text-[12.5px] leading-[18px] text-text-2",children:[q.map(a=>(0,s.jsx)("p",{children:a},a)),r&&(0,s.jsx)("p",{className:"text-[12px] text-text-3",children:"Import counts in this summary leave out test files."}),n&&(0,s.jsxs)("p",{className:"text-danger",children:[n," ",(0,s.jsx)("button",{type:"button",onClick:e,className:g8,children:"Try again"})]})]})]})}function hi({text:a}){return(0,s.jsx)(s.Fragment,{children:(0,g1.X)(a).map((a,b)=>a.code?(0,s.jsx)("code",{className:"font-mono text-[12px] text-text",children:a.text},b):(0,s.jsx)("span",{children:a.text},b))})}let hj={uses:"What this uses, by number of imports. Its arrows point to these.",usedBy:"What uses this, by number of imports, test files included. Their arrows point here.",inside:void 0};function hk({data:a,tab:b,onTab:c,onFocus:d,onOpen:e,onViewLines:f}){let g=(0,t.useId)(),h="file"===a.kind,i=[{id:"uses",label:"Uses",count:a.uses.length},{id:"usedBy",label:"Used by",count:a.usedBy.length},{id:"inside",label:h?"Declarations":"Contents",count:(h?a.symbols?.length:a.children?.length)??0}];return(0,s.jsxs)("div",{children:[(0,s.jsx)("div",{role:"tablist","aria-label":"Relationships",onKeyDown:a=>{let d=i.findIndex(a=>a.id===b),e="ArrowRight"===a.key?(d+1)%i.length:"ArrowLeft"===a.key?(d-1+i.length)%i.length:"Home"===a.key?0:"End"===a.key?i.length-1:-1;-1!==e&&(a.preventDefault(),a.stopPropagation(),c(i[e].id),a.currentTarget.querySelectorAll('[role="tab"]')[e]?.focus())},className:"flex flex-wrap gap-x-[18px] border-b border-divider @max-[260px]:gap-x-3",children:i.map(a=>{let d=a.id===b;return(0,s.jsxs)("button",{type:"button",role:"tab",id:`${g}-${a.id}`,"data-tab":a.id,"aria-selected":d,"aria-controls":`${g}-panel`,tabIndex:d?0:-1,title:hj[a.id],onClick:()=>c(a.id),className:`relative whitespace-nowrap pb-2 pt-1.5 text-[13px] ${d?`text-text after:absolute after:inset-x-0 after:-bottom-px after:h-0.5 after:rounded-[1px] ${"inside"===a.id?"after:bg-accent":gz[a.id].underline}`:"text-text-2 hover:text-text"}`,children:[a.label," ",gE(a.count)]},a.id)})}),(0,s.jsxs)("div",{role:"tabpanel",id:`${g}-panel`,"aria-labelledby":`${g}-${b}`,className:"pt-2",children:["uses"===b&&(0,s.jsx)(hl,{items:a.uses,empty:"Imports nothing outside itself.",onFocus:d},"uses"),"usedBy"===b&&(0,s.jsx)(hl,{items:a.usedBy,empty:"Nothing outside it imports it.",onFocus:d,usedBy:!0},"usedBy"),"inside"===b&&h&&(0,s.jsx)(hp,{items:a.symbols??[],empty:a.importsOnly?"Not read, since it's over the 1 MB size cap. Only its imports were.":"None found.",render:a=>(0,s.jsx)(ho,{symbol:a,onViewLines:f},`${a.name}:${a.startLine}`)}),"inside"===b&&!h&&(0,s.jsx)(hp,{items:a.children??[],empty:"Nothing inside.",render:a=>(0,s.jsx)(hn,{child:a,onFocus:d,onOpen:e},a.path)})]})]})}function hl({items:a,empty:b,onFocus:c,usedBy:d=!1}){let e=gM(a);return(0,s.jsx)(hp,{items:a,empty:b,render:a=>(0,s.jsx)(hm,{chip:a.path,name:(0,gl.k)(a.path),count:a.count,largest:e,title:gO(a.path,a.count),onClick:()=>c(a.path),usedBy:d},a.path)})}function hm({name:a,count:b,largest:c,title:d,onClick:e,chip:f,linked:g,usedBy:h=!1}){return(0,s.jsx)("li",{children:(0,s.jsxs)("button",{type:"button","data-chip":f,"data-linked":g,title:d,onClick:e,className:"grid w-full grid-cols-[minmax(0,1fr)_auto] items-center gap-x-2.5 rounded-[5px] px-2 py-1.5 text-left hover:bg-node",children:[(0,s.jsx)("span",{className:"truncate font-mono text-[12.5px] leading-[18px] text-text",children:a}),(0,s.jsx)("span",{className:"text-[11.5px] leading-4 text-text-2",children:gE(b)}),(0,s.jsx)("span",{"aria-hidden":!0,className:`col-span-2 mt-[5px] h-[3px] rounded-[2px] ${gz[h?"usedBy":"uses"].fill}`,style:{width:`${c<=0?1.5:Math.min(100,Math.max(1.5,100*b/c))}%`}})]})})}function hn({child:a,onFocus:b,onOpen:c}){let d,e="folder"===a.kind;return(0,s.jsx)("li",{children:(0,s.jsxs)("button",{type:"button","data-child":a.path,title:(d="folder"===a.kind?`${a.path}, ${gE(a.fileCount)} ${gN(a.fileCount,"file","files")}`:a.path,a.tagline?`${d}
3
+ ${a.tagline}`:d),onClick:()=>e?c(a.path):b(a.path),className:"grid w-full grid-cols-[14px_minmax(0,1fr)_auto] items-center gap-x-2 rounded-[5px] px-2 py-1.5 text-left hover:bg-node",children:[(0,s.jsx)(e?gw:gv,{"aria-hidden":!0,size:14,stroke:1.75,className:"text-text-3"}),(0,s.jsx)("span",{className:`truncate font-mono text-[12.5px] leading-[18px] text-text ${e?"":"col-span-2"}`,children:a.name}),e&&(0,s.jsx)("span",{className:"text-[11.5px] leading-4 text-text-2",children:gE(a.fileCount)})]})})}function ho({symbol:a,onViewLines:b}){return(0,s.jsx)("li",{children:(0,s.jsxs)("button",{type:"button",title:`Show ${a.name} in the source`,onClick:()=>b(a.startLine,a.endLine),className:"flex w-full flex-wrap items-baseline gap-x-3 rounded-[5px] px-2 py-1.5 text-left hover:bg-node",children:[(0,s.jsx)("span",{className:`min-w-0 flex-[1_1_6ch] truncate font-mono text-[12.5px] leading-[18px] ${a.exported?"text-text":"text-text-2"}`,children:a.name}),(0,s.jsx)("span",{className:"ml-auto shrink-0 whitespace-nowrap text-[11.5px] leading-4 text-text-2",children:`${a.kind}, line ${a.startLine}`})]})})}function hp({items:a,empty:b,render:c}){let[d,e]=(0,t.useState)(!1);return 0===a.length?(0,s.jsx)("p",{className:"px-2 py-1.5 text-[13px] text-text-2",children:b}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("ul",{className:"space-y-0.5",children:(d?a:a.slice(0,8)).map(c)}),a.length>8&&(0,s.jsx)("button",{type:"button","aria-expanded":d,onClick:()=>e(a=>!a),className:"mt-1 rounded-[5px] px-2 py-1 text-[12.5px] text-text-2 hover:text-text",children:d?"Show fewer":`+${gE(a.length-8)} more`})]})}function hq({onClose:a,embedded:b=!1}){return g4(),(0,t.useEffect)(()=>{let b=b=>{"Escape"===b.key&&(b.stopImmediatePropagation(),a())};return window.addEventListener("keydown",b,!0),()=>window.removeEventListener("keydown",b,!0)},[a]),(0,dK.createPortal)((0,s.jsx)("div",{"data-testid":"help",className:"fixed inset-0 z-50 flex items-center justify-center bg-canvas/70 p-4 max-[360px]:p-2",onClick:a,children:(0,s.jsxs)("div",{role:"dialog","aria-label":"How to use the Map",onClick:a=>a.stopPropagation(),className:"max-h-[85vh] w-[760px] max-w-full overflow-y-auto rounded-lg border border-border bg-panel p-6 max-[360px]:p-4",children:[(0,s.jsxs)("div",{className:"flex items-start justify-between gap-4",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("h2",{className:"text-[18px] font-medium text-text",children:"How to use the Map"}),!1,(0,s.jsx)("p",{className:"mt-1 text-[14px] text-text-2",children:"A map of the repo's folders and files, and of which code imports which. Open this again with the ? button at the top right, or the ? key."})]}),(0,s.jsx)("button",{type:"button",onClick:a,"aria-label":"Close help",className:"shrink-0 rounded-md p-1 text-text-2 hover:bg-node hover:text-text",children:(0,s.jsx)(gx,{"aria-hidden":!0,size:16,stroke:1.75})})]}),(0,s.jsxs)("div",{className:"mt-6 grid gap-x-8 gap-y-6 text-[14px] leading-normal text-text sm:grid-cols-2",children:[(0,s.jsxs)(hr,{title:"Getting around",children:[(0,s.jsxs)("li",{children:[(0,s.jsx)("b",{children:"Click"})," a box to see what it is, in the inspector beside or under the Map."]}),(0,s.jsxs)("li",{children:[(0,s.jsx)("b",{children:"Double-click"})," a folder to go inside it, or click a folder in the explorer on the left."]}),b&&(0,s.jsxs)("li",{children:["In VS Code, ",(0,s.jsx)("b",{children:"double-click"})," a file to open it in the editor, or press ",(0,s.jsx)("b",{children:"Open in VS Code"})," in the inspector."]}),(0,s.jsxs)("li",{children:["Go back up with the path at the top left, ",(0,s.jsx)(hs,{children:"Backspace"}),", or your browser's Back button. The repo's name at its start goes back to the top."]}),(0,s.jsxs)("li",{children:["Big folders are split into pages of related boxes. Turn the page with the arrows in the toolbar, or ",(0,s.jsx)(hs,{children:"←"})," ",(0,s.jsx)(hs,{children:"→"}),"."]}),(0,s.jsxs)("li",{children:["A busy folder opens at a readable size, from its top. Drag to see the rest, or press ",(0,s.jsx)("b",{children:"Fit"})," in the toolbar to see it all."]}),(0,s.jsxs)("li",{children:["Search files and concepts with ",(0,s.jsx)(hs,{children:"Ctrl K"})," (",(0,s.jsx)(hs,{children:"⌘K"})," on a Mac)."]})]}),(0,s.jsxs)(hr,{title:"Reading the Map",children:[(0,s.jsx)("li",{children:"A box is a folder or a file. A folder's dot grows with how many files it holds, and it has a second card behind it. A file has a page."}),(0,s.jsx)("li",{children:"A line from A to B means A uses code from B, and the arrow points at what's being used. Its weight, and the number on it, show how many imports it carries."}),(0,s.jsx)("li",{children:'Hover a box to bring its lines forward. Hover a line to read it as a sentence, like "editor uses base, 12 imports". Where lines join, it lists every line on that stretch, and a click keeps the list open until you press Escape or click elsewhere.'}),(0,s.jsxs)("li",{children:[(0,s.jsx)("b",{children:"Strong links only"}),", in the toolbar, hides the lines under 2% of the heaviest line's imports. Every line of the box you select or hover still shows."]}),(0,s.jsxs)("li",{children:["With a box selected, ",(0,s.jsx)("b",{children:"Uses"})," or ",(0,s.jsx)("b",{children:"Used by"})," in the toolbar keeps only its lines to what it uses, or from what uses it, in color, and turns its other lines gray. ",(0,s.jsx)("b",{children:"All"})," colors both, and it's back to All when you select something else."]}),(0,s.jsxs)("li",{children:["Busy folders (more than 60 lines) draw only the lines of the box you hover or select, until you ask for ",(0,s.jsx)("b",{children:"Show all lines"}),"."]}),(0,s.jsx)("li",{children:'Boxes with no lines on the page sit under a line that says "Not linked to anything here". Lines to other pages end at a doorway, a dashed box like "Lines to page 2", and double-clicking it goes there.'})]}),(0,s.jsxs)(hr,{title:"Colors",children:[(0,s.jsxs)("li",{children:[(0,s.jsx)(ht,{className:"border-2 border-accent bg-node-sel"})," Purple is the box you selected, the lines to what it uses, and what they join. ",(0,s.jsxs)("span",{className:"whitespace-nowrap",children:[(0,s.jsx)(ht,{className:"bg-used-by-edge"})," Gold"]})," is the lines from what uses it. Everything else fades."]}),(0,s.jsxs)("li",{children:[(0,s.jsx)(ht,{className:"outline-2 outline-offset-1 outline-agent"})," Orange is what Claude Code is touching right now."]}),(0,s.jsxs)("li",{children:[(0,s.jsx)(ht,{className:"rounded-full bg-ok"})," The cyan dot at the bottom left says the index is up to date."]}),(0,s.jsxs)("li",{children:[(0,s.jsx)(ht,{className:"rounded-full bg-danger"})," Red means something failed."]})]}),(0,s.jsxs)(hr,{title:"The inspector",children:[(0,s.jsxs)("li",{children:["A short summary, and ",(0,s.jsx)("b",{children:"Full summary"})," for the rest."]}),(0,s.jsxs)("li",{children:[(0,s.jsx)("b",{children:"Uses"}),", ",(0,s.jsx)("b",{children:"Used by"})," and ",(0,s.jsx)("b",{children:"Contents"})," are tabs. Click a row to jump to it on the Map."]}),(0,s.jsxs)("li",{children:["For a file, ",(0,s.jsx)("b",{children:"View source"})," shows its code, and a declaration jumps to its line there."]})]}),(0,s.jsx)(hr,{title:"Claude Code",children:(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("li",{children:"The status bar along the bottom shows Claude Code's newest tool call as it works."}),(0,s.jsx)("li",{children:"Boxes holding what it touched get an orange ring for 30 seconds."})]})}),(0,s.jsx)(hr,{title:"The index",children:(0,s.jsxs)("li",{children:["The status bar's first cell says whether the index is up to date. Click it for each stage",", and to re-index."]})})]}),(0,s.jsx)("h3",{className:"mt-6 text-[13px] font-medium text-text",children:"Keyboard"}),(0,s.jsxs)("dl",{className:"mt-2 grid grid-cols-[max-content_1fr] gap-x-4 gap-y-1 text-[13px] text-text-2 max-[360px]:grid-cols-1 max-[360px]:[&_dd]:mb-1.5",children:[(0,s.jsx)("dt",{children:(0,s.jsx)(hs,{children:"Ctrl K"})}),(0,s.jsx)("dd",{children:"Search files and concepts"}),(0,s.jsx)("dt",{children:(0,s.jsx)(hs,{children:"Esc"})}),(0,s.jsx)("dd",{children:"Close what's open, let go of the selection, then clear Claude Code's highlights"}),(0,s.jsx)("dt",{children:(0,s.jsx)(hs,{children:"Backspace"})}),(0,s.jsx)("dd",{children:"Up one folder"}),(0,s.jsxs)("dt",{children:[(0,s.jsx)(hs,{children:"←"})," ",(0,s.jsx)(hs,{children:"→"})]}),(0,s.jsx)("dd",{children:"Previous or next page of a big folder"}),(0,s.jsx)("dt",{children:(0,s.jsx)(hs,{children:"?"})}),(0,s.jsx)("dd",{children:"This help"})]})]})}),document.body)}function hr({title:a,children:b}){return(0,s.jsxs)("section",{children:[(0,s.jsx)("h3",{className:"text-[13px] font-medium text-text",children:a}),(0,s.jsx)("ul",{className:"mt-2 space-y-1.5 text-text-2 [&_b]:font-medium [&_b]:text-text",children:b})]})}function hs({children:a}){return(0,s.jsx)("kbd",{className:"rounded-md border border-border bg-node px-1.5 py-px font-sans text-[12px] text-text",children:a})}function ht({className:a}){return(0,s.jsx)("span",{"aria-hidden":!0,className:`mr-1 inline-block h-3 w-3 rounded-sm align-[-1px] ${a}`})}let hu="mcp__nebulosity__";function hv(a){let b=""===a[0]?"the repo":a[0];return a.length>1?`${b} +${a.length-1}`:b}function hw(a){let b=a.tool.startsWith(hu)?a.tool.slice(hu.length):a.tool,{paths:c}=a,d=c.length>0;switch(b){case"describe":return d?`Reading ${hv(c)}`:"Reading";case"overview":return"Reading the repo overview";case"search":return d?`Searching \xb7 ${hv(c)}`:"Searching";case"imports":return c.length>=2?`Tracing ${c[0]} → ${c[1]}`:d?`Following the imports of ${hv(c)}`:"Following imports";case"architecture":return d?`Reading how ${hv(c)} is organized`:"Reading how the code is organized";case"calls":return d?`Following the calls into ${hv(c)}`:"Following calls";case"show_on_map":return d?`Showing ${hv(c)} on the map`:"Showing on the map";default:return d?`${b} \xb7 ${hv(c)}`:b}}var hx=Object.defineProperty,hy={},hz={Graph:()=>h2,alg:()=>hK};for(var hA in hz)hx(hy,hA,{get:hz[hA],enumerable:!0});var hB=Object.defineProperty,hC=(a,b)=>{for(var c in b)hB(a,c,{get:b[c],enumerable:!0})},hD=class{constructor(a){this._isDirected=!0,this._isMultigraph=!1,this._isCompound=!1,this._nodes={},this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={},this._nodeCount=0,this._edgeCount=0,this._defaultNodeLabelFn=()=>{},this._defaultEdgeLabelFn=()=>{},a&&(this._isDirected=!("directed"in a)||a.directed,this._isMultigraph="multigraph"in a&&a.multigraph,this._isCompound="compound"in a&&a.compound),this._isCompound&&(this._parent={},this._children={},this._children["\0"]={})}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(a){return this._label=a,this}graph(){return this._label}setDefaultNodeLabel(a){return"function"!=typeof a?this._defaultNodeLabelFn=()=>a:this._defaultNodeLabelFn=a,this}nodeCount(){return this._nodeCount}nodes(){return Object.keys(this._nodes)}sources(){return this.nodes().filter(a=>0===Object.keys(this._in[a]).length)}sinks(){return this.nodes().filter(a=>0===Object.keys(this._out[a]).length)}setNodes(a,b){return a.forEach(a=>{void 0!==b?this.setNode(a,b):this.setNode(a)}),this}setNode(a,b){return a in this._nodes?arguments.length>1&&(this._nodes[a]=b):(this._nodes[a]=arguments.length>1?b:this._defaultNodeLabelFn(a),this._isCompound&&(this._parent[a]="\0",this._children[a]={},this._children["\0"][a]=!0),this._in[a]={},this._preds[a]={},this._out[a]={},this._sucs[a]={},++this._nodeCount),this}node(a){return this._nodes[a]}hasNode(a){return a in this._nodes}removeNode(a){if(a in this._nodes){let b=a=>this.removeEdge(this._edgeObjs[a]);delete this._nodes[a],this._isCompound&&(this._removeFromParentsChildList(a),delete this._parent[a],this.children(a).forEach(a=>{this.setParent(a)}),delete this._children[a]),Object.keys(this._in[a]).forEach(b),delete this._in[a],delete this._preds[a],Object.keys(this._out[a]).forEach(b),delete this._out[a],delete this._sucs[a],--this._nodeCount}return this}setParent(a,b){if(!this._isCompound)throw Error("Cannot set parent in a non-compound graph");if(void 0===b)b="\0";else{b+="";for(let c=b;void 0!==c;c=this.parent(c))if(c===a)throw Error("Setting "+b+" as parent of "+a+" would create a cycle");this.setNode(b)}return this.setNode(a),this._removeFromParentsChildList(a),this._parent[a]=b,this._children[b][a]=!0,this}parent(a){if(this._isCompound){let b=this._parent[a];if("\0"!==b)return b}}children(a="\0"){if(this._isCompound){let b=this._children[a];if(b)return Object.keys(b)}else{if("\0"===a)return this.nodes();this.hasNode(a)}return[]}predecessors(a){let b=this._preds[a];if(b)return Object.keys(b)}successors(a){let b=this._sucs[a];if(b)return Object.keys(b)}neighbors(a){let b=this.predecessors(a);if(b){let c=new Set(b),d=this.successors(a);if(d)for(let a of d)c.add(a);return Array.from(c.values())}}isLeaf(a){var b;let c;return(null!=(b=null==(c=this.isDirected()?this.successors(a):this.neighbors(a))?void 0:c.length)?b:0)===0}filterNodes(a){let b=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});b.setGraph(this.graph()),Object.entries(this._nodes).forEach(([c,d])=>{a(c)&&b.setNode(c,d)}),Object.values(this._edgeObjs).forEach(a=>{b.hasNode(a.v)&&b.hasNode(a.w)&&b.setEdge(a,this.edge(a))});let c={},d=a=>{let e=this.parent(a);return!e||b.hasNode(e)?(c[a]=e,e):e in c?c[e]:d(e)};return this._isCompound&&b.nodes().forEach(a=>b.setParent(a,d(a))),b}setDefaultEdgeLabel(a){return"function"!=typeof a?this._defaultEdgeLabelFn=()=>a:this._defaultEdgeLabelFn=a,this}edgeCount(){return this._edgeCount}edges(){return Object.values(this._edgeObjs)}setPath(a,b){return a.reduce((a,c)=>(void 0!==b?this.setEdge(a,c,b):this.setEdge(a,c),c)),this}setEdge(a,b,c,d){let e,f,g,h,i=!1;"object"==typeof a&&null!==a&&"v"in a?(e=a.v,f=a.w,g=a.name,2==arguments.length&&(h=b,i=!0)):(e=a,f=b,g=d,arguments.length>2&&(h=c,i=!0)),e=""+e,f=""+f,void 0!==g&&(g=""+g);let j=hG(this._isDirected,e,f,g);if(j in this._edgeLabels)return i&&(this._edgeLabels[j]=h),this;if(void 0!==g&&!this._isMultigraph)throw Error("Cannot set a named edge when isMultigraph = false");this.setNode(e),this.setNode(f),this._edgeLabels[j]=i?h:this._defaultEdgeLabelFn(e,f,g);let k=function(a,b,c,d){let e=""+b,f=""+c;if(!a&&e>f){let a=e;e=f,f=a}let g={v:e,w:f};return d&&(g.name=d),g}(this._isDirected,e,f,g);return e=k.v,f=k.w,Object.freeze(k),this._edgeObjs[j]=k,hE(this._preds[f],e),hE(this._sucs[e],f),this._in[f][j]=k,this._out[e][j]=k,this._edgeCount++,this}edge(a,b,c){let d=1==arguments.length?hH(this._isDirected,a):hG(this._isDirected,a,b,c);return this._edgeLabels[d]}edgeAsObj(a,b,c){let d=1==arguments.length?this.edge(a):this.edge(a,b,c);return"object"!=typeof d||null===d?{label:d}:d}hasEdge(a,b,c){return(1==arguments.length?hH(this._isDirected,a):hG(this._isDirected,a,b,c))in this._edgeLabels}removeEdge(a,b,c){let d=1==arguments.length?hH(this._isDirected,a):hG(this._isDirected,a,b,c),e=this._edgeObjs[d];if(e){let a=e.v,b=e.w;delete this._edgeLabels[d],delete this._edgeObjs[d],hF(this._preds[b],a),hF(this._sucs[a],b),delete this._in[b][d],delete this._out[a][d],this._edgeCount--}return this}inEdges(a,b){return this.isDirected()?this.filterEdges(this._in[a],a,b):this.nodeEdges(a,b)}outEdges(a,b){return this.isDirected()?this.filterEdges(this._out[a],a,b):this.nodeEdges(a,b)}nodeEdges(a,b){if(a in this._nodes)return this.filterEdges({...this._in[a],...this._out[a]},a,b)}_removeFromParentsChildList(a){delete this._children[this._parent[a]][a]}filterEdges(a,b,c){if(!a)return;let d=Object.values(a);return c?d.filter(a=>a.v===b&&a.w===c||a.v===c&&a.w===b):d}};function hE(a,b){a[b]?a[b]++:a[b]=1}function hF(a,b){void 0===a[b]||--a[b]||delete a[b]}function hG(a,b,c,d){let e=""+b,f=""+c;if(!a&&e>f){let a=e;e=f,f=a}return e+"\x01"+f+"\x01"+(void 0===d?"\0":d)}function hH(a,b){return hG(a,b.v,b.w,b.name)}function hI(a){var b,c;let d={options:{directed:a.isDirected(),multigraph:a.isMultigraph(),compound:a.isCompound()},nodes:(b=a).nodes().map(a=>{let c=b.node(a),d=b.parent(a),e={v:a};return void 0!==c&&(e.value=c),void 0!==d&&(e.parent=d),e}),edges:(c=a).edges().map(a=>{let b=c.edge(a),d={v:a.v,w:a.w};return void 0!==a.name&&(d.name=a.name),void 0!==b&&(d.value=b),d})},e=a.graph();return void 0!==e&&(d.value=structuredClone(e)),d}function hJ(a){let b=new hD(a.options);return void 0!==a.value&&b.setGraph(a.value),a.nodes.forEach(a=>{b.setNode(a.v,a.value),a.parent&&b.setParent(a.v,a.parent)}),a.edges.forEach(a=>{b.setEdge({v:a.v,w:a.w,name:a.name},a.value)}),b}hC({},{read:()=>hJ,write:()=>hI});var hK={};hC(hK,{CycleException:()=>hW,bellmanFord:()=>hM,components:()=>hN,dijkstra:()=>hQ,dijkstraAll:()=>hR,findCycles:()=>hT,floydWarshall:()=>hV,isAcyclic:()=>hY,postorder:()=>h$,preorder:()=>h_,prim:()=>h0,shortestPaths:()=>h1,tarjan:()=>hS,topsort:()=>hX});var hL=()=>1;function hM(a,b,c,d){return function(a,b,c,d){let e={},f,g=0,h=a.nodes(),i=function(a){let b=e[a.v],d=e[a.w];if(!b||!d)return;let g=c(a);b.distance+g<d.distance&&(e[a.w]={distance:b.distance+g,predecessor:a.v},f=!0)},j=function(){h.forEach(function(a){d(a).forEach(function(b){let c=b.v===a?b.v:b.w,d=c===b.v?b.w:b.v;i({v:c,w:d})})})};h.forEach(function(a){e[a]={distance:a===b?0:1/0,predecessor:""}});let k=h.length;for(let a=1;a<k&&(f=!1,g++,j(),f);a++);if(g===k-1&&(f=!1,j(),f))throw Error("The graph contains a negative weight cycle");return e}(a,String(b),c||hL,d||function(b){var c;return null!=(c=a.outEdges(b))?c:[]})}function hN(a){let b={},c=[],d;return a.nodes().forEach(function(e){d=[],function c(e){var f,g;e in b||(b[e]=!0,d.push(e),null==(f=a.successors(e))||f.forEach(c),null==(g=a.predecessors(e))||g.forEach(c))}(e),d.length&&c.push(d)}),c}var hO=class{constructor(){this._arr=[],this._keyIndices={}}size(){return this._arr.length}keys(){return this._arr.map(a=>a.key)}has(a){return a in this._keyIndices}priority(a){let b=this._keyIndices[a];if(void 0!==b)return this._arr[b].priority}min(){if(0===this.size())throw Error("Queue underflow");return this._arr[0].key}add(a,b){let c=this._keyIndices,d=String(a);if(!(d in c)){let a=this._arr,e=a.length;return c[d]=e,a.push({key:d,priority:b}),this._decrease(e),!0}return!1}removeMin(){if(0===this.size())throw Error("Queue underflow");this._swap(0,this._arr.length-1);let a=this._arr.pop();return delete this._keyIndices[a.key],this._heapify(0),a.key}decrease(a,b){let c=this._keyIndices[a];if(void 0===c)throw Error(`Key not found: ${a}`);let d=this._arr[c].priority;if(b>d)throw Error(`New priority is greater than current priority. Key: ${a} Old: ${d} New: ${b}`);this._arr[c].priority=b,this._decrease(c)}_heapify(a){let b=this._arr,c=2*a,d=c+1,e=a;c<b.length&&(e=b[c].priority<b[e].priority?c:e,d<b.length&&(e=b[d].priority<b[e].priority?d:e),e!==a&&(this._swap(a,e),this._heapify(e)))}_decrease(a){let b=this._arr,c=b[a].priority,d;for(;0!==a&&!(b[d=a>>1].priority<c);)this._swap(a,d),a=d}_swap(a,b){let c=this._arr,d=this._keyIndices,e=c[a],f=c[b];c[a]=f,c[b]=e,d[f.key]=a,d[e.key]=b}},hP=()=>1;function hQ(a,b,c,d){return function(a,b,c,d){let e={},f=new hO,g,h,i=function(a){let b=a.v!==g?a.v:a.w,d=e[b];if(!d)return;let i=c(a),j=h.distance+i;if(i<0)throw Error("dijkstra does not allow negative edge weights. Bad edge: "+a+" Weight: "+i);j<d.distance&&(d.distance=j,d.predecessor=g,f.decrease(b,j))};for(a.nodes().forEach(function(a){let c=a===b?0:1/0;e[a]={distance:c,predecessor:""},f.add(a,c)});f.size()>0;){let a=e[g=f.removeMin()];if(!a||1/0===a.distance)break;h=a,d(g).forEach(i)}return e}(a,String(b),c||hP,d||function(b){var c;return null!=(c=a.outEdges(b))?c:[]})}function hR(a,b,c){return a.nodes().reduce(function(d,e){return d[e]=hQ(a,e,b,c),d},{})}function hS(a){let b=0,c=[],d={},e=[];return a.nodes().forEach(function(f){f in d||function f(g){var h;let i=d[g]={onStack:!0,lowlink:b,index:b++};if(c.push(g),null==(h=a.successors(g))||h.forEach(function(a){if(a in d){let b=d[a];null!=b&&b.onStack&&(i.lowlink=Math.min(i.lowlink,b.index))}else{f(a);let b=d[a];b&&(i.lowlink=Math.min(i.lowlink,b.lowlink))}}),i.lowlink===i.index){let a=[],b;do{let e=d[b=c.pop()];e&&(e.onStack=!1),a.push(b)}while(g!==b)e.push(a)}}(f)}),e}function hT(a){return hS(a).filter(function(b){var c;let d=b[0];return!!d&&(b.length>1||1===b.length&&(null!=(c=a.outEdges(d,d))?c:[]).length>0)})}var hU=()=>1;function hV(a,b,c){var d,e,f;let g,h;return d=a,e=b||hU,f=c||function(b){var c;return null!=(c=a.outEdges(b))?c:[]},g={},(h=d.nodes()).forEach(function(a){let b={};g[a]=b,b[a]={distance:0,predecessor:""},h.forEach(function(c){a!==c&&(b[c]={distance:1/0,predecessor:""})}),f(a).forEach(function(c){let d=c.v===a?c.w:c.v,f=e(c);b[d]={distance:f,predecessor:a}})}),h.forEach(function(a){let b=g[a];b&&h.forEach(function(c){let d=g[c];d&&h.forEach(function(c){let e=d[a],f=b[c],g=d[c];if(e&&f&&g){let a=e.distance+f.distance;a<g.distance&&(g.distance=a,g.predecessor=f.predecessor)}})})}),g}var hW=class extends Error{constructor(a){super(a),this.name="CycleException"}};function hX(a){let b={},c={},d=[];if(a.sinks().forEach(function e(f){var g;if(f in c)throw new hW;f in b||(c[f]=!0,b[f]=!0,null==(g=a.predecessors(f))||g.forEach(e),delete c[f],d.push(f))}),Object.keys(b).length!==a.nodeCount())throw new hW;return d}function hY(a){try{hX(a)}catch(a){if(a instanceof hW)return!1;throw a}return!0}function hZ(a,b,c){var d,e,f;let g,h;return d=b,e=function(a,b){return a.push(b),a},f=[],Array.isArray(d)||(d=[d]),g=b=>{var c;return null!=(c=a.isDirected()?a.successors(b):a.neighbors(b))?c:[]},h={},d.forEach(function(b){if(!a.hasNode(b))throw Error("Graph does not have node: "+b);f=function a(b,c,d,e,f,g,h){return c in e||(e[c]=!0,d||(h=g(h,c)),f(c).forEach(function(c){h=a(b,c,d,e,f,g,h)}),d&&(h=g(h,c))),h}(a,b,"post"===c,h,g,e,f)}),f}function h$(a,b){return hZ(a,b,"post")}function h_(a,b){return hZ(a,b,"pre")}function h0(a,b){var c;let d=new hD,e={},f=new hO,g;function h(a){let c=a.v===g?a.w:a.v,d=f.priority(c);if(void 0!==d){let h=b(a);h<d&&(e[c]=g,f.decrease(c,h))}}if(0===a.nodeCount())return d;a.nodes().forEach(function(a){f.add(a,1/0),d.setNode(a)});let i=a.nodes()[0];void 0!==i&&f.decrease(i,0);let j=!1;for(;f.size()>0;){if((g=f.removeMin())in e)d.setEdge(g,e[g]);else{if(j)throw Error("Input graph is not connected: "+a);j=!0}null==(c=a.nodeEdges(g))||c.forEach(h)}return d}function h1(a,b,c,d){return function(a,b,c,d){if(void 0===c)return hQ(a,b,c,d);let e=!1,f=a.nodes();for(let g=0;g<f.length;g++){let h=f[g];if(void 0===h)continue;let i=d(h);for(let a=0;a<i.length;a++){let b=i[a];if(!b)continue;let d=b.v===h?b.v:b.w,f=d===b.v?b.w:b.v;0>c({v:d,w:f})&&(e=!0)}if(e)return hM(a,b,c,d)}return hQ(a,b,c,d)}(a,b,c,null!=d?d:b=>{var c;return null!=(c=a.outEdges(b))?c:[]})}var h2=hD;function h3(a,b,c,d){let e=d;for(;a.hasNode(e);)e=d+""+ ++ib;return c.dummy=b,a.setNode(e,c),e}function h4(a){let b=new h2({multigraph:a.isMultigraph()}).setGraph(a.graph());return a.nodes().forEach(c=>{a.children(c).length||b.setNode(c,a.node(c))}),a.edges().forEach(c=>{b.setEdge(c,a.edge(c))}),b}function h5(a,b){let c,d,e=a.x,f=a.y,g=b.x-e,h=b.y-f,i=a.width/2,j=a.height/2;if(!g&&!h)throw Error("Not possible to find intersection inside of the rectangle");return Math.abs(h)*i>Math.abs(g)*j?(h<0&&(j=-j),c=j*g/h,d=j):(g<0&&(i=-i),c=i,d=i*h/g),{x:e+c,y:f+d}}function h6(a){let b=ic(h9(a)+1).map(()=>[]);return a.nodes().forEach(c=>{let d=a.node(c),e=d.rank;void 0!==e&&(b[e]||(b[e]=[]),b[e][d.order]=c)}),b}function h7(a,b,c,d){let e={width:0,height:0};return arguments.length>=4&&(e.rank=c,e.order=d),h3(a,"border",e,b)}function h8(a,b){return b.length>65535?a(...(function(a,b=65535){let c=[];for(let d=0;d<a.length;d+=b){let e=a.slice(d,d+b);c.push(e)}return c})(b).map(b=>a(...b))):a(...b)}function h9(a){return h8(Math.max,a.nodes().map(b=>{let c=a.node(b).rank;return void 0===c?5e-324:c}))}function ia(a,b){return b()}var ib=0;function ic(a,b,c=1){null==b&&(b=a,a=0);let d=a=>a<b;c<0&&(d=a=>b<a);let e=[];for(let b=a;d(b);b+=c)e.push(b);return e}function id(a,b){let c={};for(let d of b)void 0!==a[d]&&(c[d]=a[d]);return c}function ie(a,b){let c;return c="string"==typeof b?a=>a[b]:b,Object.entries(a).reduce((a,[b,d])=>(a[b]=c(d,b),a),{})}function ig(a,b,c){var d,e,f,g,h,i;if(!(a&&b&&c&&"edge"===b.dummy&&"edge"===c.dummy&&b.edgeObj&&c.edgeObj&&a[b.edgeObj.v]&&a[c.edgeObj.v]&&a[b.edgeObj.w]&&a[c.edgeObj.w]))return 0;let j=!0;b.edgeObj.w===c.edgeObj.w&&(j=!1);let k=j?null!=(e=null==(d=a[b.edgeObj.v])?void 0:d.rank)?e:0/0:null!=(g=null==(f=a[b.edgeObj.w])?void 0:f.rank)?g:0/0,l=Object.entries(a).find(a=>{var c,d;return(null==(c=a[1].edgeObj)?void 0:c.v)===b.edgeObj.v&&(null==(d=a[1].edgeObj)?void 0:d.w)===b.edgeObj.w&&a[1].rank===k}),m=Object.entries(a).find(a=>{var b,d;return(null==(b=a[1].edgeObj)?void 0:b.v)===c.edgeObj.v&&(null==(d=a[1].edgeObj)?void 0:d.w)===c.edgeObj.w&&a[1].rank===k});if(!l||!m)return 0;let n=null!=(h=l[1].order)?h:0/0,o=null!=(i=m[1].order)?i:0/0;return isNaN(n-o)?0:n-o}var ih=class{constructor(){var a;let b,c;c=void 0,(b="symbol"!=typeof(a="_sentinel")?a+"":a)in this?hx(this,b,{enumerable:!0,configurable:!0,writable:!0,value:c}):this[b]=c;let d={};d._next=d._prev=d,this._sentinel=d}dequeue(){let a=this._sentinel,b=a._prev;if(b!==a)return ii(b),b}enqueue(a){let b=this._sentinel;a._prev&&a._next&&ii(a),a._next=b._next,b._next._prev=a,b._next=a,a._prev=b}toString(){let a=[],b=this._sentinel,c=b._prev;for(;c!==b;)a.push(JSON.stringify(c,ij)),c=c._prev;return"["+a.join(", ")+"]"}};function ii(a){a._prev._next=a._next,a._next._prev=a._prev,delete a._next,delete a._prev}function ij(a,b){if("_next"!==a&&"_prev"!==a)return b}var ik=()=>1;function il(a,b,c,d,e){let f=[],g=e?f:void 0;return(a.inEdges(d.v)||[]).forEach(d=>{let g=a.edge(d),h=a.node(d.v);e&&f.push({v:d.v,w:d.w}),h.out-=g,im(b,c,h)}),(a.outEdges(d.v)||[]).forEach(d=>{let e=a.edge(d),f=d.w,g=a.node(f);g.in-=e,im(b,c,g)}),a.removeNode(d.v),g}function im(a,b,c){var d,e,f;c.out?c.in?null==(f=a[c.out-c.in+b])||f.enqueue(c):null==(e=a[a.length-1])||e.enqueue(c):null==(d=a[0])||d.enqueue(c)}function io(a){let b={};a.sources().forEach(function c(d){let e=a.node(d);if(Object.hasOwn(b,d))return e.rank;b[d]=!0;let f=a.outEdges(d),g=h8(Math.min,f?f.map(b=>null==b?1/0:c(b.w)-a.edge(b).minlen):[]);return 1/0===g&&(g=0),e.rank=g})}function ip(a,b){return a.node(b.w).rank-a.node(b.v).rank-a.edge(b).minlen}var iq=function(a){let b,c,d=new h2({directed:!1}),e=a.nodes();if(0===e.length)throw Error("Graph must have at least one node");let f=e[0],g=a.nodeCount();for(d.setNode(f,{});function(a,b){return a.nodes().forEach(function c(d){let e=b.nodeEdges(d);e&&e.forEach(e=>{let f=e.v,g=d===f?e.w:f;a.hasNode(g)||ip(b,e)||(a.setNode(g,{}),a.setEdge(d,g,{}),c(g))})}),a.nodeCount()}(d,a)<g&&(b=function(a,b){return b.edges().reduce((c,d)=>{let e=1/0;return a.hasNode(d.v)!==a.hasNode(d.w)&&(e=ip(b,d)),e<c[0]?[e,d]:c},[1/0,null])[1]}(d,a));)c=d.hasNode(b.v)?ip(a,b):-ip(a,b),function(a,b,c){a.nodes().forEach(a=>b.node(a).rank+=c)}(d,a,c);return d},{preorder:ir,postorder:is}=hK;function it(a){var b;let c,d,e;b=a,e=new h2().setGraph(b.graph()),b.nodes().forEach(a=>e.setNode(a,b.node(a))),b.edges().forEach(a=>{let c=e.edge(a.v,a.w)||{weight:0,minlen:1},d=b.edge(a);e.setEdge(a.v,a.w,{weight:c.weight+d.weight,minlen:Math.max(c.minlen,d.minlen)})}),io(a=e);let f=iq(a);for(iw(f),iu(f,a);c=ix(f);)d=iy(f,a,c),iz(f,a,c,d)}function iu(a,b){let c=is(a,a.nodes());(c=c.slice(0,c.length-1)).forEach(c=>{var d,e,f;let g;return d=a,e=b,f=c,g=d.node(f).parent,void(d.edge(f,g).cutvalue=iv(d,e,f))})}function iv(a,b,c){let d=a.node(c).parent,e=!0,f=b.edge(c,d),g=0;f||(e=!1,f=b.edge(d,c)),g=f.weight;let h=b.nodeEdges(c);return h&&h.forEach(f=>{let h=f.v===c,i=h?f.w:f.v;if(i!==d){var j,k,l;let d=h===e,m=b.edge(f).weight;if(g+=d?m:-m,j=a,k=c,l=i,j.hasEdge(k,l)){let b=a.edge(c,i).cutvalue;g+=d?-b:b}}}),g}function iw(a,b){arguments.length<2&&(b=a.nodes()[0]),function a(b,c,d,e,f){let g=d,h=b.node(e);c[e]=!0;let i=b.neighbors(e);return i&&i.forEach(f=>{Object.hasOwn(c,f)||(d=a(b,c,d,f,e))}),h.low=g,h.lim=d++,f?h.parent=f:delete h.parent,d}(a,{},1,b)}function ix(a){return a.edges().find(b=>a.edge(b).cutvalue<0)}function iy(a,b,c){let d=c.v,e=c.w;b.hasEdge(d,e)||(d=c.w,e=c.v);let f=a.node(d),g=a.node(e),h=f,i=!1;return f.lim>g.lim&&(h=g,i=!0),b.edges().filter(b=>i===iA(a,a.node(b.v),h)&&i!==iA(a,a.node(b.w),h)).reduce((a,c)=>ip(b,c)<ip(b,a)?c:a)}function iz(a,b,c,d){let e=c.v,f=c.w;a.removeEdge(e,f),a.setEdge(d.v,d.w,{}),iw(a),iu(a,b),function(a,b){let c=a.nodes().find(b=>!a.node(b).parent);if(!c)return;let d=ir(a,[c]);(d=d.slice(1)).forEach(c=>{let d=a.node(c).parent,e=b.edge(c,d),f=!1;e||(e=b.edge(d,c),f=!0),b.node(c).rank=b.node(d).rank+(f?e.minlen:-e.minlen)})}(a,b)}function iA(a,b,c){return c.low<=b.lim&&b.lim<=c.lim}it.initLowLimValues=iw,it.initCutValues=iu,it.calcCutValue=iv,it.leaveEdge=ix,it.enterEdge=iy,it.exchangeEdges=iz;function iB(a,b,c,d,e,f){let g=e[b][f-1],h=h3(a,"border",{width:0,height:0,rank:f,borderType:b},c);e[b][f]=h,a.setParent(h,d),g&&a.setEdge(g,h,{weight:1})}function iC(a){a.nodes().forEach(b=>iD(a.node(b))),a.edges().forEach(b=>iD(a.edge(b)))}function iD(a){let b=a.width;a.width=a.height,a.height=b}function iE(a){a.y=-a.y}function iF(a){let b=a.x;a.x=a.y,a.y=b}function iG(a,b,c){let d;for(;b.length&&(d=b[b.length-1]).i<=c;)b.pop(),a.push(d.vs),c++;return c}function iH(a,b,c){let d=new Map,e=(a,b)=>{d.has(a)||d.set(a,[]),d.get(a).push(b)};for(let b of a.nodes()){let c=a.node(b);if("number"==typeof c.rank&&e(c.rank,b),"number"==typeof c.minRank&&"number"==typeof c.maxRank)for(let a=c.minRank;a<=c.maxRank;a++)a!==c.rank&&e(a,b)}return b.map(function(b){var e;let f,g;return e=d.get(b)||[],f=function(a){let b;for(;a.hasNode(b="_root"+ ++ib););return b}(a),g=new h2({compound:!0}).setGraph({root:f}).setDefaultNodeLabel(b=>a.node(b)),e.forEach(d=>{let e=a.node(d),h=a.parent(d);if(e.rank===b||e.minRank<=b&&b<=e.maxRank){g.setNode(d),g.setParent(d,h||f);let i=a[c](d);i&&i.forEach(b=>{let c=b.v===d?b.w:b.v,e=g.edge(c,d),f=void 0!==e?e.weight:0;g.setEdge(c,d,{weight:a.edge(b).weight+f})}),Object.hasOwn(e,"minRank")&&g.setNode(d,{borderLeft:e.borderLeft[b],borderRight:e.borderRight[b]})}}),g})}function iI(a,b){Object.values(b).forEach(b=>b.forEach((b,c)=>a.node(b).order=c))}function iJ(a,b,c){if(b>c){let a=b;b=c,c=a}let d=a[b];d||(a[b]=d={}),d[c]=!0}function iK(a,b,c){var d;if(!c)return!1;let e=null==(d=b.node(a))?void 0:d.edgeObj;if(!e||b.node(a).edgeLabel.reversed)return!1;let f=c.indexOf(null==e?void 0:e.v),g=c.indexOf(null==e?void 0:e.w);return -1!==f&&-1!==g&&f===(g+1)%c.length||f===(g-1)%c.length}var iL=new WeakMap;function iM(a,b,c){let d=b;for(;void 0!==d;){let b=a.parent(d);if(b===c)return d;d=b}}function iN(a,b,c,d=null){var e,f;let g=(null==c?void 0:c.useDynamic)!==!1,h=g&&null!=(e=null==d?void 0:d.graph)?e:null,i=g&&null!=(f=null==d?void 0:d.rawNodes)?f:null;b(" makeSpaceForEdgeLabels",()=>{var b;let c;return c=(b=a).graph(),void(c.ranksep/=2,b.edges().forEach(a=>{var d;let e=b.edge(a);e.minlen*=2,"c"!==(null!=(d=e.labelpos)?d:"r").toLowerCase()&&("TB"===c.rankdir||"BT"===c.rankdir?e.width+=e.labeloffset:e.height+=e.labeloffset)}))}),b(" removeSelfEdges",()=>{var b;(b=a).edges().forEach(a=>{if(a.v===a.w){let c=b.node(a.v);c.selfEdges||(c.selfEdges=[]),c.selfEdges.push({e:a,label:b.edge(a)}),b.removeEdge(a)}})}),b(" acyclic",()=>{var b,c,d;let e,f,g,i;("greedy"===a.graph().acyclicer?function(a,b){var c,d;let e,f,g,h,i;if(1>=a.nodeCount())return[];let j=(c=a,d=b||ik,e=new h2,f=0,g=0,c.nodes().forEach(a=>{e.setNode(a,{v:a,in:0,out:0})}),c.edges().forEach(a=>{let b=e.edge(a.v,a.w)||0,c=d(a);e.setEdge(a.v,a.w,b+c);let h=e.node(a.v),i=e.node(a.w);g=Math.max(g,h.out+=c),f=Math.max(f,i.in+=c)}),h=(function(a){let b=[];for(let c=0;c<a;c++)b.push(c);return b})(g+f+3).map(()=>new ih),i=f+1,e.nodes().forEach(a=>{im(h,i,e.node(a))}),{graph:e,buckets:h,zeroIdx:i});return(function(a,b,c){var d;let e=[],f=b[b.length-1],g=b[0],h;for(;a.nodeCount();){for(;h=g.dequeue();)il(a,b,c,h);for(;h=f.dequeue();)il(a,b,c,h);if(a.nodeCount()){for(let f=b.length-2;f>0;--f)if(h=null==(d=b[f])?void 0:d.dequeue()){e=e.concat(il(a,b,c,h,!0)||[]);break}}}return e})(j.graph,j.buckets,j.zeroIdx).flatMap(b=>a.outEdges(b.v,b.w)||[])}(a,(b=a,a=>b.edge(a).weight)):(c=a,d=null!=h?h:null,e=[],f={},g={},i=function a(b){Object.hasOwn(g,b)||(g[b]=!0,f[b]=!0,c.outEdges(b).forEach(b=>{Object.hasOwn(f,b.w)?e.push(b):a(b.w)}),delete f[b])},d&&"function"==typeof d.node&&(i=function a(b){var h;Object.hasOwn(g,b)||(g[b]=!0,f[b]=!0,null==(h=c.outEdges(b))||h.forEach(g=>{var h,i,j,k,l;let m;Object.hasOwn(f,g.w)||(null==(h=d.node(b))?void 0:h.rank)>(null==(i=d.node(g.w))?void 0:i.rank)&&(j=c,k=g.w,l=g,m=new Set,function a(b){var c;if(j.sources().includes(b))return!0;for(let d of(m.add(b),null!=(c=j.inEdges(b))?c:[]))if((d.v!==l.v||d.w!==l.w)&&!m.has(d.v)&&a(d.v))return!0;return!1}(k))?e.push(g):a(g.w)}),delete f[b])}),c.sources().forEach(i),c.nodes().forEach(i),e)).forEach(b=>{let c=a.edge(b);a.removeEdge(b),c.forwardName=b.name,c.reversed=!0,a.setEdge(b.w,b.v,c,"rev"+ ++ib)})}),b(" nestingGraph.run",()=>{var b,c;let d,e,f,g,h,i;return d=h3(a,"root",{},"_root"),g=2*(f=h8(Math.max,Object.values((i={},(b=a).children("\0").forEach(a=>(function a(c,d){let e=b.children(c);e&&e.length&&e.forEach(b=>a(b,d+1)),i[c]=d})(a,1)),e=i)))-1)+1,a.graph().nestingRoot=d,a.edges().forEach(b=>a.edge(b).minlen*=g),h=(c=a).edges().reduce((a,b)=>a+c.edge(b).weight,0)+1,void(a.children("\0").forEach(b=>{!function a(b,c,d,e,f,g,h){var i;let j=b.children(h);if(!j.length){h!==c&&b.setEdge(c,h,{weight:0,minlen:d});return}let k=h7(b,"_bt"),l=h7(b,"_bb"),m=b.node(h);b.setParent(k,h),m.borderTop=k,b.setParent(l,h),m.borderBottom=l,j.forEach(i=>{var j;a(b,c,d,e,f,g,i);let m=b.node(i),n=m.borderTop?m.borderTop:i,o=m.borderBottom?m.borderBottom:i,p=m.borderTop?e:2*e,q=n!==o?1:f-(null!=(j=g[h])?j:0)+1;b.setEdge(k,n,{weight:p,minlen:q,nestingEdge:!0}),b.setEdge(o,l,{weight:p,minlen:q,nestingEdge:!0})}),b.parent(h)||b.setEdge(c,k,{weight:0,minlen:f+(null!=(i=g[h])?i:0)})}(a,d,g,h,f,e,b)}),a.graph().nodeRankFactor=g)}),b(" rank",()=>(function(a){let b=a.graph().ranker;if("function"==typeof b)return b(a);switch(b){case"network-simplex":default:it(a);break;case"tight-tree":var c;io(c=a),iq(c);break;case"longest-path":io(a);case"none":}})(h4(a))),b(" injectEdgeLabelProxies",()=>{var b;(b=a).edges().forEach(a=>{let c=b.edge(a);if(c.width&&c.height){let c=b.node(a.v),d={rank:(b.node(a.w).rank-c.rank)/2+c.rank,e:a};h3(b,"edge-proxy",d,"_ep")}})}),b(" removeEmptyRanks",()=>{let b,c,d,e;return b=h8(Math.min,a.nodes().map(b=>a.node(b).rank).filter(a=>void 0!==a)),c=[],a.nodes().forEach(d=>{let e=a.node(d).rank-b;c[e]||(c[e]=[]),c[e].push(d)}),d=0,e=a.graph().nodeRankFactor,void Array.from(c).forEach((b,c)=>{void 0===b&&c%e!=0?--d:void 0!==b&&d&&b.forEach(b=>a.node(b).rank+=d)})}),b(" nestingGraph.cleanup",()=>{let b;return b=a.graph(),void(a.removeNode(b.nestingRoot),delete b.nestingRoot,a.edges().forEach(b=>{a.edge(b).nestingEdge&&a.removeEdge(b)}))}),b(" normalizeRanks",()=>{let b;return b=h8(Math.min,a.nodes().map(b=>{let c=a.node(b).rank;return void 0===c?Number.MAX_VALUE:c})),void a.nodes().forEach(c=>{let d=a.node(c);Object.hasOwn(d,"rank")&&(d.rank-=b)})}),b(" assignRankMinMax",()=>{var b;let c;return c=0,void((b=a).nodes().forEach(a=>{let d=b.node(a);d.borderTop&&(d.minRank=b.node(d.borderTop).rank,d.maxRank=b.node(d.borderBottom).rank,c=Math.max(c,d.maxRank))}),b.graph().maxRank=c)}),b(" removeEdgeLabelProxies",()=>{var b;(b=a).nodes().forEach(a=>{let c=b.node(a);"edge-proxy"===c.dummy&&(b.edge(c.e).labelRank=c.rank,b.removeNode(a))})}),b(" normalize.run",()=>{a.graph().dummyChains=[],a.edges().forEach(b=>(function(a,b){let c,d,e,f=b.v,g=a.node(f).rank,h=b.w,i=a.node(h).rank,j=b.name,k=a.edge(b),l=k.labelRank;if(i!==g+1){for(a.removeEdge(b),e=0,++g;g<i;++e,++g)k.points=[],c=h3(a,"edge",d={width:0,height:0,edgeLabel:k,edgeObj:b,rank:g},"_d"),g===l&&(d.width=k.width,d.height=k.height,d.dummy="edge-label",d.labelpos=k.labelpos),a.setEdge(f,c,{weight:k.weight},j),0===e&&a.graph().dummyChains.push(c),f=c;a.setEdge(f,h,{weight:k.weight},j)}})(a,b))}),b(" parentDummyChains",()=>{var b,c;let d,e,f,g;return f=(d={},e=0,(c=b=a).children("\0").forEach(function a(b){let f=e;c.children(b).forEach(a),d[b]={low:f,lim:e++}}),d),void(Array.isArray((g=b.graph()).dummyChains)&&g.dummyChains.forEach(a=>{let c=b.node(a),d=c.edgeObj,e=function(a,b,c,d){let e=[],f=[],g=Math.min(b[c].low,b[d].low),h=Math.max(b[c].lim,b[d].lim),i;i=c;do e.push(i=a.parent(i));while(i&&(b[i].low>g||h>b[i].lim))let j=i,k=d;for(;(k=a.parent(k))!==j;)f.push(k);return{path:e.concat(f.reverse()),lca:j}}(b,f,d.v,d.w),g=e.path,h=e.lca,i=0,j=g[0],k=!0;for(;a!==d.w;){if(c=b.node(a),k){for(;(j=g[i])!==h&&b.node(j).maxRank<c.rank;)i++;j===h&&(k=!1)}if(!k){for(;i<g.length-1&&b.node(g[i+1]).minRank<=c.rank;)i++;j=g[i]}void 0!==j&&b.setParent(a,j),a=b.successors(a)[0]}}))}),b(" addBorderSegments",()=>{var b;(b=a).children("\0").forEach(function a(c){let d=b.children(c),e=b.node(c);if(d.length&&d.forEach(a),e&&Object.hasOwn(e,"minRank")){e.borderLeft=[],e.borderRight=[];for(let a=e.minRank,d=e.maxRank+1;a<d;++a)iB(b,"borderLeft","_bl",c,e,a),iB(b,"borderRight","_br",c,e,a)}})}),b(" order",()=>(function a(b,c={},d=null){if("function"==typeof c.customOrder)return void c.customOrder(b,a);let e=h9(b),f=iH(b,ic(1,e+1),"inEdges"),g=iH(b,ic(e-1,-1,-1),"outEdges"),h=function(a,b=null){let c={},d=a.nodes().filter(b=>!a.children(b).length),e=ic(h8(Math.max,d.map(b=>a.node(b).rank))+1).map(()=>[]);return d.sort((b,c)=>a.node(b).rank-a.node(c).rank).forEach(function d(f){if(c[f])return;c[f]=!0,e[a.node(f).rank].push(f);let g=a.successors(f);g&&[...g].sort((c,d)=>{var e,f;return e=c,f=d,ig(b,a.node(e),a.node(f))}).forEach(d)}),e}(b,d);if(iI(b,h),c.disableOptimalOrderHeuristic)return;let i=1/0,j,k=c.constraints||[];for(let a=0,c=0;c<4;++a,++c){(function(a,b,c,d){let e=!0,f=new h2;a.forEach(function(a){var g;let h,i;c.forEach(a=>f.setEdge(a.left,a.right));let j=a.graph().root,{result:k,usedBias:l}=function a(b,c,d,e,f){var g,h,i,j,k,l,m,n,o,p,q;let r,s=null,t=f;"boolean"==typeof e?(t=e,s=null):void 0!==e&&(s=e);let u=b.children(c),v=b.node(c),w=v?v.borderLeft:void 0,x=v?v.borderRight:void 0,y={};w&&(u=u.filter(a=>a!==w&&a!==x));let z=function(a,b=[]){return b.map(b=>{let c=a.inEdges(b);if(!c||!c.length)return{v:b};{let d=c.reduce((b,c)=>{let d=a.edge(c),e=a.node(c.v);return{sum:b.sum+d.weight*e.order,weight:b.weight+d.weight}},{sum:0,weight:0});return{v:b,barycenter:d.sum/d.weight,weight:d.weight}}})}(b,u);z.forEach(c=>{if(b.children(c.v).length){var e,f;let{result:g}=a(b,c.v,d,s,t);y[c.v]=g,Object.hasOwn(g,"barycenter")&&(e=c,f=g,void 0!==e.barycenter?(e.barycenter=(e.barycenter*e.weight+f.barycenter*f.weight)/(e.weight+f.weight),e.weight+=f.weight):(e.barycenter=f.barycenter,e.weight=f.weight))}});let A=(r={},z.forEach((a,b)=>{let c={indegree:0,in:[],out:[],vs:[a.v],i:b};void 0!==a.barycenter&&(c.barycenter=a.barycenter,c.weight=a.weight),r[a.v]=c}),d.edges().forEach(a=>{let b=r[a.v],c=r[a.w];void 0!==b&&void 0!==c&&(c.indegree++,b.out.push(c))}),function(a){let b=[];for(;a.length;){let c=a.pop();b.push(c),c.in.reverse().forEach(function(a){return b=>{b.merged||(void 0===b.barycenter||void 0===a.barycenter||b.barycenter>=a.barycenter)&&function(a,b){let c=0,d=0;a.weight&&(c+=a.barycenter*a.weight,d+=a.weight),b.weight&&(c+=b.barycenter*b.weight,d+=b.weight),a.vs=b.vs.concat(a.vs),a.barycenter=c/d,a.weight=d,a.i=Math.min(b.i,a.i),b.merged=!0}(a,b)}}(c)),c.out.forEach(function(b){return c=>{c.in.push(b),0==--c.indegree&&a.push(c)}}(c))}return b.filter(a=>!a.merged).map(a=>id(a,["vs","i","barycenter","weight"]))}(Object.values(r).filter(a=>!a.indegree)));!function(a,b){a.forEach(a=>{a.vs=a.vs.flatMap(a=>b[a]?b[a].vs:a)})}(A,y);let B={},C=!1;for(let a=0;a<A.length;a++)for(let c=a+1;c<A.length;c++)if(!(!A[a]||!A[c]||!(null!=(g=A[a])&&g.barycenter)||!(null!=(h=A[c])&&h.barycenter))&&(null==(i=A[a])?void 0:i.barycenter)===A[c].barycenter){let d=null!=(k=null==(j=A[a])?void 0:j.vs[0])?k:"",e=null!=(m=null==(l=A[c])?void 0:l.vs[0])?m:"",f=b.node(d),g=b.node(e);if("edge"===f.dummy&&"edge"===g.dummy&&(null==(n=f.edgeObj)?void 0:n.v)===(null==(o=g.edgeObj)?void 0:o.v)&&(null==(p=f.edgeObj)?void 0:p.w)===(null==(q=g.edgeObj)?void 0:q.w))if(f.edgeLabel.reversed){B[e]=A[a],A.splice(a,1),a--;break}else B[d]=A[c],A.splice(c,1),c--;else C=!0}let D=function(a,b,c,d,e){var f;let g,h={},i=null,j=null,k=e;"boolean"==typeof b?(k=b,h={}):b&&(h=b,i=null!=c?c:null,j=null!=d?d:null);let l=(f=a=>Object.hasOwn(a,"barycenter"),g={lhs:[],rhs:[]},a.forEach(a=>{f(a)?g.lhs.push(a):g.rhs.push(a)}),g),m=l.lhs,n=l.rhs.sort((a,b)=>b.i-a.i),o=[],p=0,q=0,r=0;for(let[a,b]of(m.sort(function(a,b,c){return(d,e)=>{if(d.barycenter<e.barycenter)return -1;if(d.barycenter>e.barycenter)return 1;if(a&&("string"==typeof d.vs[0]||"string"==typeof e.vs[0])){let c=ig(b,a.node(d.vs[0]),a.node(e.vs[0]));if(0!==c)return c}return c?e.i-d.i:d.i-e.i}}(j,i,!!k)),Object.entries(h))){let c=m.findIndex(b=>b.vs[0]===a);m.splice(c+1,0,b)}r=iG(o,n,r),m.forEach(a=>{r+=a.vs.length,o.push(a.vs),p+=a.barycenter*a.weight,q+=a.weight,r=iG(o,n,r)});let s={vs:o.flat(1)};return q&&(s.barycenter=p/q,s.weight=q),s}(A,B,s,b,t);if(w&&x){D.vs=[w,D.vs,x].flat(1);let a=b.predecessors(w);if(a&&a.length){let c=b.node(a[0]),d=b.predecessors(x),e=b.node(d[0]);Object.hasOwn(D,"barycenter")||(D.barycenter=0,D.weight=0),D.barycenter=(D.barycenter*D.weight+c.order+e.order)/(D.weight+2),D.weight+=2}}return Object.defineProperty(D,"result",{value:D,enumerable:!1,configurable:!0,writable:!0}),Object.defineProperty(D,"usedBias",{value:C,enumerable:!1,configurable:!0,writable:!0}),D}(a,j,f,d,e);b&&l&&(e=!e),k.vs.forEach((b,c)=>a.node(b).order=c),g=k.vs,h={},g.forEach(b=>{let c=a.parent(b),d,e;for(;c;){if((d=a.parent(c))?(e=h[d],h[d]=c):(e=i,i=c),e&&e!==c)return void f.setEdge(e,c);c=d}})})})(a%2?f:g,a%4>=2,k,d),h=h6(b);let e=function(a,b){let c=0;for(let d=1;d<b.length;++d)c+=function(a,b,c){var d;let e=(d=c.map((a,b)=>b),c.reduce((a,b,c)=>(a[b]=d[c],a),{})),f=b.flatMap(b=>{let c=a.outEdges(b);return c?c.map(b=>({pos:e[b.w],weight:a.edge(b).weight})).sort((a,b)=>a.pos-b.pos):[]}),g=1;for(;g<c.length;)g<<=1;let h=2*g-1;g-=1;let i=Array(h).fill(0),j=0;return f.forEach(a=>{let b=a.pos+g;i[b]+=a.weight;let c=0;for(;b>0;)b%2&&(c+=i[b+1]),b=b-1>>1,i[b]+=a.weight;j+=a.weight*c}),j}(a,b[d-1],b[d]);return c}(b,h);e<i?(c=0,j=Object.assign({},h),i=e):e===i&&(j=structuredClone(h))}iI(b,j)})(a,c,i)),b(" insertSelfEdges",()=>{var b;h6(b=a).forEach(a=>{let c=0;a.forEach((a,d)=>{let e=b.node(a);"number"!=typeof e.rank&&(e.rank=0),e.order=d+c,(e.selfEdges||[]).forEach(a=>{h3(b,"selfedge",{width:a.label.width,height:a.label.height,rank:e.rank,order:d+ ++c,e:a.e,edgeLabel:a.label},"_se"),Array.isArray(a.label.points)&&7===a.label.points.length||(a.label.points=[{x:0,y:-10},{x:0,y:-10},{x:0,y:0},{x:0,y:10},{x:0,y:10},{x:0,y:0},{x:0,y:0}])}),delete e.selfEdges})})}),b(" adjustCoordinateSystem",()=>{var b;let c;("lr"===(c=null==(b=a.graph().rankdir)?void 0:b.toLowerCase())||"rl"===c)&&iC(a)}),b(" position",()=>{var b,d,e,f,g;let h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;return b=a,d=c.corePath,void(r=h6(g=b=h4(b)),t=(s=g.graph()).ranksep,u=s.rankalign,v=0,r.forEach(a=>{let b=a.reduce((a,b)=>{var c;let d=null!=(c=g.node(b).height)?c:0;return a>d?a:d},0);a.forEach(a=>{let c=g.node(a);"top"===u?c.y=v+c.height/2:"bottom"===u?c.y=v+b-c.height/2:c.y=v+b/2}),v+=b+t}),Object.entries((i=h6(e=b),j=Object.assign((h={},i.length&&i.reduce(function(a,b){let c=0,d=0,f=a.length,g=b[b.length-1];return b.forEach((a,i)=>{let j=function(a,b){if(a.node(b).dummy){let c=a.predecessors(b);if(c)return c.find(b=>a.node(b).dummy)}}(e,a),k=j?e.node(j).order:f;(j||a===g)&&(b.slice(d,i+1).forEach(a=>{let b=e.predecessors(a);b&&b.forEach(b=>{let d=e.node(b),f=d.order;(f<c||k<f)&&!(d.dummy&&e.node(a).dummy)&&iJ(h,b,a)})}),d=i+1,c=k)}),b}),h),function(a,b){let c={};function d(b,d,e,f,g){ic(d,e).forEach(d=>{let e=b[d];if(void 0!==e&&a.node(e).dummy){let b=a.predecessors(e);b&&b.forEach(b=>{if(void 0===b)return;let d=a.node(b);d.dummy&&(d.order<f||d.order>g)&&iJ(c,b,e)})}})}return b.length&&b.reduce(function(b,c){let e=-1,f=-1,g=0;return c.forEach((h,i)=>{if("border"===a.node(h).dummy){let b=a.predecessors(h);if(b&&b.length){let h=b[0];if(void 0===h)return;f=a.node(h).order,d(c,g,i,e,f),g=i,e=f}}d(c,g,c.length,f,b.length)}),c}),c}(e,i)),k={},["u","d"].forEach(a=>{l="u"===a?i:Object.values(i).reverse(),["l","r"].forEach(b=>{var c,f;let g,h,i;"r"===b&&(l=l.map(a=>Object.values(a).reverse()));let m=(c=l,f=b=>("u"===a?e.predecessors(b):e.successors(b))||[],g={},h={},i={},c.forEach(a=>{a.forEach((a,b)=>{g[a]=a,h[a]=a,i[a]=b})}),c.forEach(a=>{let b=-1,c=-1,k=!1,l=a,m=a.findIndex(a=>(null==d?void 0:d.includes(a))||iK(a,e,d));m>0&&(l=[a[m],...a.slice(0,m),...a.slice(m+1)],k=!0),l.forEach(a=>{var l;let m=f(a);if(m&&m.length){null!=d&&d.includes(a)&&(m=m.filter(a=>iK(a,e,d)));let f=m.sort((a,b)=>{let c=i[a],d=i[b];return(void 0!==c?c:0)-(void 0!==d?d:0)}),n=(f.length-1)/2;for(let d=Math.floor(n),e=Math.ceil(n);d<=e;++d){let e=f[d];if(void 0===e)continue;let m=i[e];if(void 0!==m&&h[a]===a&&b<m&&i[e]!==c&&!function(a,b,c){if(b>c){let a=b;b=c,c=a}let d=a[b];return void 0!==d&&Object.hasOwn(d,c)}(j,a,e)){let d=g[e];void 0!==d&&(h[e]=a,h[a]=g[a]=d,b=m,k&&(b=-1,c=null!=(l=i[e])?l:-1,k=!1))}}}})}),{root:g,align:h}),n=function(a,b,c,d,e=!1){var f,g,h,i,j,k,l;let m,n,o,p={},q=(f=a,g=b,h=c,i=e,m=new h2,o=(j=(n=f.graph()).nodesep,k=n.edgesep,l=i,(a,b,c)=>{let d=a.node(b),e=a.node(c),f,g;if(f=0+d.width/2,Object.hasOwn(d,"labelpos"))switch(d.labelpos.toLowerCase()){case"l":g=-d.width/2;break;case"r":g=d.width/2}if(g&&(f+=l?g:-g),g=void 0,f+=(d.dummy?k:j)/2,f+=(e.dummy?k:j)/2,f+=e.width/2,Object.hasOwn(e,"labelpos"))switch(e.labelpos.toLowerCase()){case"l":g=e.width/2;break;case"r":g=-e.width/2}return g&&(f+=l?g:-g),f}),g.forEach(a=>{let b;a.forEach(a=>{let c=h[a];if(void 0!==c){if(m.setNode(c),void 0!==b){let d=h[b];if(void 0!==d){let e=m.edge(d,c);m.setEdge(d,c,Math.max(o(f,a,b),e||0))}}b=a}})}),m),r=e?"borderLeft":"borderRight";function s(a,b){let c=q.nodes().slice(),d={},e=c.pop();for(;e;){if(d[e])a(e);else for(let a of(d[e]=!0,c.push(e),b(e)))c.push(a);e=c.pop()}}return s(function(a){let b=q.inEdges(a);b?p[a]=b.reduce((a,b)=>{var c;let d=null!=(c=p[b.v])?c:0,e=q.edge(b);return Math.max(a,d+(void 0!==e?e:0))},0):p[a]=0},function(a){return q.predecessors(a)||[]}),s(function(b){let c=q.outEdges(b),d=1/0;c&&(d=c.reduce((a,b)=>{let c=p[b.w],d=q.edge(b);return Math.min(a,(void 0!==c?c:0)-(void 0!==d?d:0))},1/0));let e=a.node(b);1/0!==d&&e.borderType!==r&&(p[b]=Math.max(void 0!==p[b]?p[b]:0,d))},function(a){return q.successors(a)||[]}),Object.keys(d).forEach(a=>{var b;let d=c[a];void 0!==d&&(p[a]=null!=(b=p[d])?b:0)}),p}(e,l,m.root,m.align,"r"===b);"r"===b&&(n=ie(n,a=>-a)),k[a+b]=n})}),m=Object.values(k).reduce((a,b)=>{let c=-1/0,d=1/0;Object.entries(b).forEach(([a,b])=>{var f,g;let h=(f=e,g=a,f.node(g).width/2);c=Math.max(b+h,c),d=Math.min(b-h,d)});let f=c-d;return f<a[0]&&(a=[f,b]),a},[1/0,null])[1],o=h8(Math.min,n=Object.values(m)),p=h8(Math.max,n),["u","d"].forEach(a=>{["l","r"].forEach(b=>{let c=a+b,d=k[c];if(!d||d===m)return;let e=Object.values(d),f=o-h8(Math.min,e);"l"!==b&&(f=p-h8(Math.max,e)),f&&(k[c]=ie(d,a=>a+f))})}),f=e.graph().align,(q=k.ul)?ie(q,(a,b)=>{var c,d;if(f){let a=k[f.toLowerCase()];if(a&&void 0!==a[b])return a[b]}let e=Object.values(k).map(a=>{let c=a[b];return void 0!==c?c:0}).sort((a,b)=>a-b);return((null!=(c=e[1])?c:0)+(null!=(d=e[2])?d:0))/2}):{})).forEach(([a,c])=>b.node(a).x=c))}),b(" positionSelfEdges",()=>{var b;(b=a).nodes().forEach(a=>{let c=b.node(a),d=a=>"number"==typeof a&&isFinite(a);if("selfedge"===c.dummy){let e=b.node(c.e.v),f=d(null==e?void 0:e.x)?e.x:0,g=d(null==e?void 0:e.y)?e.y:0,h=d(null==e?void 0:e.width)?e.width:0,i=d(null==e?void 0:e.height)?e.height:0,j=d(c.x)?c.x:f,k=d(c.y)?c.y:g,l=h/2,m=i/2;c.edgeLabel.points=[{x:j+l,y:k-m},{x:j+l,y:k-m},{x:j,y:k},{x:j-l,y:k+m},{x:j-l,y:k+m},{x:j,y:k},{x:j,y:k}],c.edgeLabel.x=j,c.edgeLabel.y=k,b.setEdge(c.e,c.edgeLabel),b.removeNode(a)}else c&&Array.isArray(c.selfEdges)&&c.selfEdges.forEach(a=>{if(!Array.isArray(a.label.points)||7!==a.label.points.length){let b=d(c.x)?c.x:0,e=d(c.y)?c.y:0,f=d(c.width)?c.width:0,g=d(c.height)?c.height:0,h=f/2,i=g/2;a.label.points=[{x:b+h,y:e-i},{x:b+h,y:e-i},{x:b,y:e},{x:b-h,y:e+i},{x:b-h,y:e+i},{x:b,y:e},{x:b,y:e}]}})})});let j=JSON.parse(JSON.stringify(a._nodes));return b(" removeBorderNodes",()=>{var b;(b=a).nodes().forEach(a=>{if(b.children(a).length){let c=b.node(a),d=b.node(c.borderTop),e=b.node(c.borderBottom),f=b.node(c.borderLeft[c.borderLeft.length-1]),g=b.node(c.borderRight[c.borderRight.length-1]);c.width=Math.abs(g.x-f.x),c.height=Math.abs(e.y-d.y),c.x=f.x+c.width/2,c.y=d.y+c.height/2}}),b.nodes().forEach(a=>{"border"===b.node(a).dummy&&b.removeNode(a)})}),b(" normalize.undo",()=>{a.graph().dummyChains.forEach(b=>{let c=a.node(b),d=c.edgeLabel,e;for(a.setEdge(c.edgeObj,d);c.dummy;)e=a.successors(b)[0],a.removeNode(b),d.points.push({x:c.x,y:c.y}),"edge-label"===c.dummy&&(d.x=c.x,d.y=c.y,d.width=c.width,d.height=c.height),b=e,c=a.node(b)})}),b(" fixupEdgeLabelCoords",()=>{var b;(b=a).edges().forEach(a=>{let c=b.edge(a);if(Object.hasOwn(c,"x"))switch(("l"===c.labelpos||"r"===c.labelpos)&&(c.width-=c.labeloffset),c.labelpos){case"l":c.x-=c.width/2+c.labeloffset;break;case"r":c.x+=c.width/2+c.labeloffset}})}),b(" undoCoordinateSystem",()=>{var b,c,d;let e;("bt"===(e=null==(b=a.graph().rankdir)?void 0:b.toLowerCase())||"rl"===e)&&((c=a).nodes().forEach(a=>iE(c.node(a))),c.edges().forEach(a=>{var b;let d=c.edge(a);null==(b=d.points)||b.forEach(iE),Object.hasOwn(d,"y")&&iE(d)})),("lr"===e||"rl"===e)&&((d=a).nodes().forEach(a=>iF(d.node(a))),d.edges().forEach(a=>{var b;let c=d.edge(a);null==(b=c.points)||b.forEach(iF),Object.hasOwn(c,"x")&&iF(c)}),iC(a))}),b(" translateGraph",()=>(function(a){let b=1/0,c=0,d=1/0,e=0,f=a.graph(),g=f.marginx||0,h=f.marginy||0;function i(a){let f=a.x,g=a.y,h=a.width,i=a.height;b=Math.min(b,f-h/2),c=Math.max(c,f+h/2),d=Math.min(d,g-i/2),e=Math.max(e,g+i/2)}a.nodes().forEach(b=>i(a.node(b))),a.edges().forEach(b=>{let c=a.edge(b);Object.hasOwn(c,"x")&&i(c)}),b-=g,d-=h,a.nodes().forEach(c=>{let e=a.node(c);e.x-=b,e.y-=d}),a.edges().forEach(c=>{let e=a.edge(c);e.points.forEach(a=>{a.x-=b,a.y-=d}),Object.hasOwn(e,"x")&&(e.x-=b),Object.hasOwn(e,"y")&&(e.y-=d)}),f.width=c-b+g,f.height=e-d+h})(a)),b(" assignNodeIntersects",()=>{var b;(b=a).edges().forEach(a=>{if(a.v===a.w)return;let c=b.edge(a),d=b.node(a.v),e=b.node(a.w),f,g;c.points?(f=c.points[0],g=c.points[c.points.length-1]):(c.points=[],f=e,g=d),c.points.unshift(h5(d,f)),c.points.push(h5(e,g))})}),b(" reversePoints",()=>{var b;(b=a).edges().forEach(a=>{let c=b.edge(a);c.reversed&&c.points.reverse()})}),b(" acyclic.undo",()=>{a.edges().forEach(b=>{let c=a.edge(b);if(c.reversed){a.removeEdge(b);let d=c.forwardName;delete c.reversed,delete c.forwardName,a.setEdge(b.w,b.v,c,d)}})}),{graph:a,rawNodes:j}}function iO(a,b){a.nodes().forEach(c=>{let d=a.node(c),e=b.node(c);d&&(d.x=e.x,d.y=e.y,d.order=e.order,d.rank=e.rank,b.children(c).length&&(d.width=e.width,d.height=e.height))}),a.edges().forEach(c=>{let d=a.edge(c),e=b.edge(c);d.points=e.points,Object.hasOwn(e,"x")&&(d.x=e.x,d.y=e.y)}),a.graph().width=b.graph().width,a.graph().height=b.graph().height}var iP=["nodesep","edgesep","ranksep","marginx","marginy"],iQ={ranksep:50,edgesep:20,nodesep:50,rankdir:"TB",rankalign:"center"},iR=["acyclicer","ranker","rankdir","align","rankalign"],iS=["width","height","rank"],iT={width:0,height:0},iU=["minlen","weight","width","height","labeloffset"],iV={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},iW=["labelpos"];function iX(a){let b=new h2({multigraph:!0,compound:!0}),c=iZ(a.graph());return b.setGraph(Object.assign({},iQ,iY(c,iP),id(c,iR))),a.nodes().forEach(c=>{let d=iY(iZ(a.node(c)),iS);Object.keys(iT).forEach(a=>{void 0===d[a]&&(d[a]=iT[a])}),b.setNode(c,d);let e=a.parent(c);void 0!==e&&b.setParent(c,e)}),a.edges().forEach(c=>{let d=iZ(a.edge(c));b.setEdge(c,Object.assign({},iV,iY(d,iU),id(d,iW)))}),b}function iY(a,b){return ie(id(a,b),Number)}function iZ(a){let b={};return a&&Object.entries(a).forEach(([a,c])=>{"string"==typeof a&&(a=a.toLowerCase()),b[a]=c}),b}function i$(a,b){return Math.min(1,1440/(1.15*a),780/(1.15*b))}function i_(a,b,c,d){return Array.from({length:a},(a,e)=>({x:c+e%b*272,y:d+96*Math.floor(e/b)}))}let i0=(a,b)=>a*(b+40)-40;function i1(a){return new Set(a.filter(a=>a.source!==a.target).flatMap(a=>[a.source,a.target]))}function i2(a,b){return"folder"===a.kind?{type:"folder",path:a.path}:"portal"===a.kind?void 0===a.page?null:{type:"page",page:a.page}:b?{type:"editor",path:a.path}:null}function i3(a,b){let{width:c,height:d}=a.getBoundingClientRect();return null!==b&&b.width===c&&b.height===d?b:{width:c,height:d}}function i4(){let a=(0,t.useRef)(null),[b,c]=(0,t.useState)(null),[d,e]=(0,t.useState)(null),f=(0,t.useCallback)(b=>{a.current=b,c(b)},[]);return(0,t.useLayoutEffect)(()=>{let b=a.current;if(null===b)return;let c=i3(b,d);c!==d&&e(c)}),(0,t.useEffect)(()=>{if(null===b)return;let a=new ResizeObserver(()=>e(a=>i3(b,a)));return a.observe(b),()=>a.disconnect()},[b]),[f,d]}let i5="rounded-md px-2.5 py-1 text-[14px] text-text hover:bg-node";function i6({box:a,position:b,onOpen:c,onTurnPage:d,onDetails:e,onOpenFile:f}){var g,h,i;let j,[k,l]=i4(),[m,n,o]=dO(a=>a.transform),p=dO(a=>a.width),q=dO(a=>a.height),r=(g={left:b.x*o+m,top:b.y*o+n,width:232*o,height:56*o},h=l??{width:0,height:0},j=Math.max(Math.min("bottom"==(i=g.top,i+g.height/2<q/2?"bottom":"top")?g.top+g.height+8:g.top-8-h.height,q-8-h.height),8),{left:Math.min(Math.max(g.left+g.width/2-h.width/2,8),p-8-h.width),top:j}),t=i2(a,void 0!==f);return(0,s.jsxs)("div",{ref:k,"data-box-actions":a.path,"data-keep-clear":!0,style:{left:r.left,top:r.top,visibility:null===l?"hidden":void 0},className:"absolute z-[6] flex items-center gap-1 rounded-lg bg-panel p-1",children:[t?.type==="folder"&&(0,s.jsx)("button",{type:"button",onClick:()=>c(t.path),title:"Open this folder (or double-click it)",className:i5,children:"Open"}),t?.type==="editor"&&(0,s.jsx)("button",{type:"button",onClick:()=>f?.(t.path),title:"Open in VS Code (or double-click it)",className:i5,children:"Open"}),t?.type==="page"&&(0,s.jsxs)("button",{type:"button",onClick:()=>d(t.page),title:`Go to page ${t.page+1} (or double-click the doorway)`,className:i5,children:["Go to page ",t.page+1]}),(0,s.jsx)("button",{type:"button",onClick:()=>e(a.path),title:"Show its details over the Map",className:i5,children:"Details"})]})}let i7=[{type:"target",position:p.Top,x:115.5,y:0,width:1,height:1},{type:"source",position:p.Bottom,x:115.5,y:55,width:1,height:1}];function i8(a,b,c){let d=new Map(a.map(a=>[a.id,a])),e=a.length===b.length,f=b.map((b,f)=>{let g=d.get(b.id);return void 0!==g&&c(g,b)?(a[f]!==g&&(e=!1),g):(e=!1,b)});return e?a:f}function i9(a,b){return a.position.x===b.position.x&&a.position.y===b.position.y&&a.data.box===b.data.box&&a.data.tone===b.data.tone&&a.data.agent===b.data.agent&&a.data.pulseKey===b.data.pulseKey&&a.data.dot===b.data.dot&&a.data.portal===b.data.portal}function ja(a,b){return a.source===b.source&&a.target===b.target&&a.data?.points===b.data?.points&&a.data?.width===b.data?.width&&a.data?.headWidth===b.data?.headWidth&&a.data?.color===b.data?.color&&a.data?.count===b.data?.count&&a.data?.countStrong===b.data?.countStrong&&a.data?.labelAt?.x===b.data?.labelAt?.x&&a.data?.labelAt?.y===b.data?.labelAt?.y}function jb({words:a,at:b,pinned:c,held:d,cardRef:e,followRef:f,placedRef:g}){var h,i;let j,k,[l,m]=(0,t.useState)(b);(0,t.useLayoutEffect)(()=>{if(void 0!==f)return f.current=m,()=>{f.current=null}},[f]);let[n,o]=i4(),p=dO(a=>a.width),q=dO(a=>a.height),r={width:p,height:q},u=c?d??null:null,v=dO(a=>c?a.transform:null),w=null===v?{x:0,y:0}:{x:l.spot.x*v[2]+v[0]-l.point.x,y:l.spot.y*v[2]+v[1]-l.point.y},x=null===o?null:null!==u?(h=u,i=o,j=h.rises?i.height-h.height:0,k=h.tail?.side,{left:h.left,top:h.top-j,tail:h.tail&&("left"===k||"right"===k)?{side:h.tail.side,at:h.tail.at+j}:h.tail,rises:h.rises}):function(a,b,c,d,e,f,g){let{width:h,height:i}=d,j=c+1+7,k=b?[{left:a.x-j-h,top:a.y+16-i,tail:{side:"right",at:i-16},rises:!0},{left:a.x+j,top:a.y+16-i,tail:{side:"left",at:i-16},rises:!0},{left:a.x-j-h,top:a.y-16,tail:{side:"right",at:16},rises:!1},{left:a.x+j,top:a.y-16,tail:{side:"left",at:16},rises:!1}]:[{left:a.x+16-h,top:a.y-j-i,tail:{side:"bottom",at:h-16},rises:!0},{left:a.x-16,top:a.y-j-i,tail:{side:"bottom",at:16},rises:!0},{left:a.x+16-h,top:a.y+j,tail:{side:"top",at:h-16},rises:!1},{left:a.x-16,top:a.y+j,tail:{side:"top",at:16},rises:!1}],l=k.map(c=>{let d=b?Math.max(8,Math.min(c.top,e.height-8-i)):Math.max(8,Math.min(c.left,e.width-8-h)),f=(b?a.y:a.x)-d;return null===c.tail||f<12||f>(b?i:h)-12?c:{...c,...b?{top:d}:{left:d},tail:{side:c.tail.side,at:f}}}),m=[...k,...l],n=a=>({...a,width:h,height:i}),o=a=>a.left>=8&&a.top>=8&&a.left+h<=e.width-8&&a.top+i<=e.height-8,p=a=>[...f,...g].every(b=>!gj(n(a),b)),q={left:a.x-6,top:a.y-6,width:12,height:12},r=a=>!gj(n(a),q)&&g.every(b=>!gj(n(a),b)),s=k.map(a=>({...gk(a,d,e),tail:null,rises:a.rises})),t=[a.y-6-1-i,a.y+6+1].map(b=>({...gk({left:a.x-h/2,top:b},d,e),tail:null,rises:b<a.y}));return m.find(a=>o(a)&&p(a))??m.find(a=>o(a)&&r(a))??s.find(p)??[...s,...t].find(r)??s[0]}(l.point,l.upright,l.half,o,r,l.line,l.clear),y=x;if(c&&null!==x&&null!==o){let a={left:x.left+w.x,top:x.top+w.y},b=gk(a,o,r);y={...x,...b,tail:b.left===a.left&&b.top===a.top?x.tail:null}}(0,t.useLayoutEffect)(()=>{void 0!==g&&(g.current=null===y||null===o?null:{...y,...o})});let z=null!==u?Math.max(u.height,u.rises?u.top+u.height-8:q-8-u.top):Math.max(function(a,b,c,d,e){let f,g,h;if(!b)return Math.max(a.y-(c+1+7)-8,e.height-8-a.y-(c+1+7));let i=a.y>=20&&a.y<=e.height-8-12;return(f=a.x,g=c,h=d,Math.max(f-(g+1+7)-8,e.width-8-f-(g+1+7))>=h&&i)?e.height-16:Math.max(a.y-6-1-8,e.height-8-a.y-6-1)}(l.point,l.upright,l.half,o?.width??Math.min(280,p-16),r),46*!!c),A=!c&&"run"===a.kind&&z<46,B="run"!==a.kind||A?0:c?a.rows.length:function(a,b){let c=a<=6?a:5;for(;c>0&&10+18*(1+c+ +(c<a))>b;)c--;return c}(a.rows.length,z),C="run"!==a.kind||A?0:a.rows.length-B,D="one"===a.kind?a.sentence:a.title;return(0,s.jsxs)("div",{ref:a=>{n(a),e&&(e.current=a)},"data-line-card":c?"pinned":"hover","data-lines":"one"===a.kind?1:a.rows.length,role:c?"group":void 0,"aria-label":D,style:{left:y?.left??0,top:y?.top??0,width:u?.width,maxWidth:Math.min(280,p-16),maxHeight:c?Math.min(z,Math.max(u?.height??0,208)):void 0,visibility:null===y?"hidden":void 0},className:`absolute z-[8] flex w-max flex-col rounded-md border border-border bg-panel py-1 text-[12px] leading-[18px] text-text ${c?"nowheel":"pointer-events-none"}`,children:["one"===a.kind?(0,s.jsxs)("p",{className:"flex whitespace-nowrap px-2",children:[(0,s.jsx)("span",{className:"truncate",title:a.parts.who,children:a.parts.who}),(0,s.jsxs)("span",{className:"shrink-0 whitespace-pre",children:[" ",a.parts.verb," "]}),(0,s.jsx)("span",{className:"truncate",title:a.parts.whom,children:a.parts.whom}),(0,s.jsxs)("span",{className:"shrink-0 whitespace-pre",children:[", ",a.parts.imports]})]}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("p",{className:"flex shrink-0 gap-3 whitespace-nowrap px-2",children:[(0,s.jsx)("span",{className:"truncate font-medium",title:a.title,children:a.title}),(0,s.jsx)("span",{className:"ml-auto shrink-0 text-text-3",children:A?`${gE(a.rows.length)} lines`:"imports"})]}),(0,s.jsx)("ul",{className:c?"min-h-0 overflow-y-auto overscroll-contain":void 0,children:a.rows.slice(0,B).map(a=>(0,s.jsxs)("li",{className:"flex gap-3 whitespace-nowrap px-2",children:[(0,s.jsx)("span",{className:"truncate text-text-2",title:a.name,children:a.name}),(0,s.jsx)("span",{className:"ml-auto shrink-0 tabular-nums",children:gE(a.count)})]},a.id))}),C>0&&(0,s.jsxs)("p",{title:`and ${gE(C)} more, click to see all`,className:"shrink-0 truncate px-2 text-text-3",children:["and ",gE(C)," more, click to see all"]})]}),y?.tail&&(0,s.jsx)(jc,{side:y.tail.side,at:y.tail.at})]})}function jc({side:a,at:b}){let c="top"===a||"bottom"===a,d="bottom"===a?{left:b-6-1,top:"100%"}:"top"===a?{left:b-6-1,bottom:"100%"}:"right"===a?{top:b-6-1,left:"100%"}:{top:b-6-1,right:"100%"},e="bottom"===a?"M 0 0 L 6 8 L 12 0":"top"===a?"M 0 8 L 6 0 L 12 8":"right"===a?"M 0 0 L 8 6 L 0 12":"M 8 0 L 0 6 L 8 12";return(0,s.jsx)("svg",{"aria-hidden":!0,"data-tail":a,width:c?12:8,height:c?8:12,style:d,className:"absolute overflow-visible fill-panel stroke-border",children:(0,s.jsx)("path",{d:e,strokeWidth:1,strokeLinejoin:"round"})})}function jd(a,b){return b?`color-mix(in srgb, ${a} var(--fade), var(--canvas))`:a}function je(a,b){return"selected"===a?"var(--accent)":"linked"===a?"var(--linked-border)":"preview"===a||b?"var(--text-3)":"var(--border)"}let jf={previous:gt,next:gu,many:gs("outline","stack-2","Stack2",[["path",{d:"M12 4l-8 4l8 4l8 -4l-8 -4",key:"svg-0"}],["path",{d:"M4 12l8 4l8 -4",key:"svg-1"}],["path",{d:"M4 16l8 4l8 -4",key:"svg-2"}]])};function jg({box:a,tone:b,dot:c}){let d=jd("linked"===b?"var(--linked-glyph)":"preview"===b?"var(--text-2)":"var(--glyph-dim)","faded"===b);return(0,s.jsx)("svg",{"aria-hidden":!0,width:24,height:24,viewBox:"0 0 24 24",className:"absolute left-[12px] top-[16px]",children:"selected"===b?(0,s.jsx)("circle",{cx:12,cy:12,r:c/2,fill:"var(--core)",stroke:"var(--accent)",strokeWidth:3}):"folder"===a.kind?(0,s.jsx)("circle",{cx:12,cy:12,r:c/2,fill:d}):(0,s.jsx)("path",{d:"M7 5 h6 l4 4 v10 h-10 z M13 5 v4 h4",fill:"none",stroke:d,strokeWidth:1.4,strokeLinejoin:"round"})})}let jh=(0,t.memo)(function({data:a}){let b,{box:c,tone:d,agent:e,pulseKey:f,portal:g,dot:h}=a,i="faded"===d,j="selected"===d,k=g?`${g.title}, ${g.caption}. ${"many"===g.direction?"Select it to pick a page.":"Double-click to go there."}`:(b=c.path||c.name,c.tagline?`${b}: ${c.tagline}`:b),l=j?"var(--node-sel)":g?"transparent":jd("var(--node)",i),m=g?jf[g.direction]:null;return(0,s.jsxs)("div",{"data-box":c.path,"data-tone":d,title:k,style:{background:l},className:`relative h-[56px] w-[232px] rounded-[5px] ${e?"outline-2 outline-offset-2 outline-agent":""}`,children:[f>0&&(0,s.jsx)("span",{"aria-hidden":!0,className:"neb-pulse pointer-events-none absolute inset-0 rounded-[5px]"},f),(0,s.jsx)("span",{"aria-hidden":!0,style:{borderColor:jd(je(d,void 0!==g),i),borderWidth:j?1.5:1},className:`pointer-events-none absolute inset-0 rounded-[5px] ${g?"border-dashed":"border-solid"}`}),m?(0,s.jsx)(m,{"aria-hidden":!0,size:16,stroke:1.75,className:"absolute left-[16px] top-[20px]",style:{color:jd("var(--text-3)",i)}}):(0,s.jsx)(jg,{box:c,tone:d,dot:h}),g?(0,s.jsxs)("div",{className:"absolute inset-y-0 left-[44px] right-[14px] flex flex-col justify-center",children:[(0,s.jsx)("div",{className:"truncate text-[13px] font-medium leading-[18px]",style:{color:jd("var(--text)",i)},children:g.title}),(0,s.jsx)("div",{className:"truncate text-[11.5px] leading-4",style:{color:jd("var(--text-3)",i)},children:g.caption})]}):(0,s.jsxs)("div",{className:"absolute inset-y-0 left-[44px] right-[14px] flex items-center gap-2",children:[(0,s.jsx)("span",{className:"min-w-0 flex-1 truncate font-mono text-[12.5px]",style:{color:jd("var(--text)",i)},children:c.name}),"folder"===c.kind&&(0,s.jsx)("span",{className:"shrink-0 text-[11.5px] tabular-nums",style:{color:jd("var(--text-2)",i)},children:gE(c.fileCount)})]}),(0,s.jsx)(eN,{type:"target",position:p.Top,className:"!opacity-0"}),(0,s.jsx)(eN,{type:"source",position:p.Bottom,className:"!opacity-0"})]})});function ji(a,b){return b<=1||a<=1?1:1+5*Math.log(a)/Math.log(b)}function jj(a){return{half:Math.max(4.5,.9*a+3),length:Math.max(7,1.2*a+5)}}let jk=a=>Math.max(0,...a.filter(a=>"folder"===a.kind).map(a=>a.fileCount)),jl=a=>Math.max(0,...a.map(a=>a.count));function jm(a){let b=jl(a),c=new Map;for(let d of a)d.source!==d.target&&c.set(d.target,Math.max(c.get(d.target)??0,ji(d.count,b)));return c}function jn(a,b){let c=a=>`${a.source}->${a.target}`,d=a.filter(a=>a.count>1);return new Set([...d.filter(a=>a.source!==a.target).sort((a,b)=>b.count-a.count||(a.source<b.source?-1:+(a.source>b.source))||(a.target<b.target?-1:+(a.target>b.target))).slice(0,3).map(c),...null===b?[]:d.filter(a=>a.source===b||a.target===b).map(c)])}let jo=[.5,.3,.7,.15,.85,0,1];function jp(a){let b=a.intoChannel>a.outChannel;return void 0===a.lane?[{line:a,channel:a.outChannel,arrives:!0,ends:[{x:a.portOut,dir:"up",port:"out"},{x:a.portIn,dir:"down",port:"in"}]}]:[{line:a,channel:a.outChannel,arrives:!1,ends:[{x:a.portOut,dir:"up",port:"out"},{x:a.lane,dir:b?"down":"up"}]},{line:a,channel:a.intoChannel,arrives:!0,ends:[{x:a.lane,dir:b?"up":"down"},{x:a.portIn,dir:"down",port:"in"}]}]}let jq=a=>a.x+116,jr=(a,b)=>a.key<b.key?-1:+(a.key>b.key),js=a=>[Math.min(...a.ends.map(a=>a.x)),Math.max(...a.ends.map(a=>a.x))],jt=a=>`${a.edge.target} ${a.intoChannel<a.outChannel?"up":"down"}`,ju=a=>a.arrives?`in ${a.line.edge.target}`:`out ${a.line.edge.source}`,jv=a=>a>.5&&a<24-1e-6;function jw(a,b){for(let c of a.lines)"out"===a.side?c.portOut=b:c.portIn=b}function jx(a,b){for(let c of(a.x=b,a.lines))c.lane=b}function jy(a,b,c,d,e){let f=a.flat();if(0===f.length)return b;let g=c/2+16,h=f.map(a=>[a-g,a+232+g]).sort((a,b)=>a[0]-b[0]),i=[];for(let[a,b]of h){let c=i[i.length-1];c&&a<=c[1]?c[1]=Math.max(c[1],b):i.push([a,b])}let j=e.filter(a=>jA(a.span,d)),k=a=>j.every(b=>Math.abs(b.x-a)>=(b.width+c)/2+8-1e-6),l=a=>(a+c)/2+8,m=[],n=i[0][0]+g-28;m.push({lo:-1/0,hi:i[0][0],start:n});for(let a=0;a+1<i.length;a++){let[b,c]=[i[a][1],i[a+1][0]];c>=b&&m.push({lo:b,hi:c,start:(b+c)/2})}let o=i[i.length-1][1]-g+28;m.push({lo:i[i.length-1][1],hi:1/0,start:o});let p=[];for(let a of m){let b=[a.start,...j.flatMap(a=>[a.x-l(a.width),a.x+l(a.width)])].filter(b=>b>=a.lo&&b<=a.hi&&k(b)).filter(b=>-1/0===a.lo?b<=a.start:1/0!==a.hi||b>=a.start);b.length>0&&p.push(b.reduce((b,c)=>Math.abs(c-a.start)<Math.abs(b-a.start)?c:b))}return 0===p.length?m.reduce((a,c)=>Math.abs(c.start-b)<Math.abs(a-b)?c.start:a,m[0].start):p.reduce((a,c)=>{let[d,e]=[Math.abs(c-b),Math.abs(a-b)];return d<e||d===e&&c<a?c:a})}function jz(a,b,c,d,e){let f=c/2+16,g=a.flat().every(a=>b<=a-f||b>=a+232+f),h=e.every(a=>!jA(a.span,d)||Math.abs(a.x-b)>=(a.width+c)/2+8-1e-6);return g&&h}let jA=(a,b)=>a[0]<=b[1]&&b[0]<=a[1];function jB(a){let b=new Map(a.map(a=>[a,new Set])),c=new Map(a.map(a=>[a,new Set]));for(let d of a)for(let e of a)d!==e&&(jF(d,e)?c.get(e).add(d):jG(d,e)&&b.get(e).add(d));let d=[],e=new Set(a);for(;e.size>0;){let a=a=>[...b.get(a)].filter(a=>e.has(a)).length,f=[...e].filter(a=>[...c.get(a)].every(a=>!e.has(a))),g=(f.length>0?f:[...e]).sort((b,c)=>a(b)-a(c)||b.line.width-c.line.width||jr(b.line,c.line))[0];d.push(g),e.delete(g)}return d}function jC(a){if(1===a.length)return a[0];let b=a.reduce((a,b)=>b.line.width>a.line.width||b.line.width===a.line.width&&0>jr(b.line,a.line)?b:a),c=a.flatMap(a=>a.ends).filter((a,b,c)=>c.findIndex(b=>1e-6>Math.abs(b.x-a.x)&&b.dir===a.dir)===b);return{line:b.line,channel:b.channel,arrives:b.arrives,ends:c,members:[...a]}}function jD(a,b,c,d=new Map){let e=jE(a,b,c,d,!0);return!function(a,b,c){let d=new Map;for(let[b,e]of a){let a=e!==c.get(b);for(let c=1;c<e.length;c++){let[f,g]=[e[c-1],e[c]];f.x===g.x&&(d.has(f.x)||d.set(f.x,[]),d.get(f.x).push({key:b,fresh:a,lo:Math.min(f.y,g.y),hi:Math.max(f.y,g.y)}))}}for(let a of d.values())for(let c=0;c<a.length;c++)for(let d=c+1;d<a.length;d++){let[e,f]=[a[c],a[d]];if(e.key===f.key||!e.fresh&&!f.fresh)continue;let[g,h]=[b.get(e.key),b.get(f.key)];if(g.source!==h.source&&g.target!==h.target&&Math.min(e.hi,f.hi)-Math.max(e.lo,f.lo)>1)return!0}return!1}(e,new Map(b.map(a=>[`${a.source}->${a.target}`,a])),d)?e:jE(a,b,c,d,!1)}function jE(a,b,c,d,e){let f=jl(b),g=jm(b),h=b.filter(b=>b.source!==b.target&&a.has(b.source)&&a.has(b.target)),i=void 0===c?h:h.filter(a=>c.has(`${a.source}->${a.target}`)),j=[...new Set(h.flatMap(a=>[a.source,a.target]))],k=[...new Set(j.map(b=>a.get(b).y))].sort((a,b)=>a-b),l=k.map(b=>j.filter(c=>a.get(c).y===b).map(b=>a.get(b).x)),m=i.map(b=>{let c=a.get(b.source),d=a.get(b.target),e=ji(b.count,f);return{key:`${b.source}->${b.target}`,edge:b,width:e,head:jj(g.get(b.target)),s:c,t:d,outChannel:k.indexOf(c.y)+1,intoChannel:k.indexOf(d.y)}}),n=new Map;for(let a of m){let b=d.get(a.key);void 0!==b&&function(a,b,c){if(b.length<2||b[0].y!==a.s.y+56||b[b.length-1].y!==a.t.y)return!1;if(a.portOut=b[0].x,a.portIn=b[b.length-1].x,a.outChannel===a.intoChannel)return!0;let d=c[Math.min(a.outChannel,a.intoChannel)]+28,e=b.slice(1).findIndex((a,c)=>a.x===b[c].x&&Math.min(a.y,b[c].y)<=d&&d<=Math.max(a.y,b[c].y));return!(e<0)&&(a.lane=b[e].x,!0)}(a,b,k)&&n.set(a,b)}let o=m.filter(a=>!n.has(a)),p=new Map,q=new Map;for(let a of n.keys())p.set(a.edge.source,a.portOut),q.set(a.edge.target,a.portIn);let r=a=>[Math.min(a.outChannel,a.intoChannel),Math.max(a.outChannel,a.intoChannel)],s=a=>l.slice(a[0],a[1]),t=[],u=(a,b,c)=>{a.lines.push(b),a.width=Math.max(a.width,b.width),a.span=[Math.min(a.span[0],c[0]),Math.max(a.span[1],c[1])],a.rows=s(a.span)},v=[];for(let a of n.keys()){if(void 0!==a.lane){let[b,c]=[jt(a),r(a)],d=t.find(c=>c.group===b&&1e-6>Math.abs(c.x-a.lane));void 0!==d?u(d,a,c):t.push({x:a.lane,width:a.width,span:c,group:b,lines:[a],kept:!0,rows:s(c)})}v.push({x:a.portOut,width:a.width,span:[a.outChannel,a.outChannel]},{x:a.portIn,width:a.width,span:[a.intoChannel,a.intoChannel]})}let w=(a,b)=>[...v,...t.filter(c=>c!==a&&(void 0===b||c.group!==b))];for(let a of o.filter(a=>a.outChannel!==a.intoChannel).sort((a,b)=>jq(a.s)+jq(a.t)-(jq(b.s)+jq(b.t))||jr(a,b))){let b=r(a),c=s(b),d=jt(a),e=(jq(a.s)+jq(a.t))/2,f=jy(c,e,a.width,b,w(null,d)),g=jz(c,f,a.width,b,w(null,d)),h=p.get(a.edge.source),i=a=>void 0!==h&&jv(Math.abs(h-a)),j=t.filter(e=>e.group===d&&60>Math.abs(e.x-f)&&!i(e.x)&&(!g||jz(c,e.x,a.width,b,w(e))||Math.abs(e.x-f)<(e.width+a.width)/2+8&&jz(c,e.x,a.width,b,[])&&w(e).every(c=>!jA(c.span,b)||Math.abs(c.x-e.x)>=Math.min(Math.abs(c.x-f),(c.width+a.width)/2+8)-1))).sort((a,b)=>Math.abs(a.x-f)-Math.abs(b.x-f)||a.x-b.x)[0];if(void 0!==j){a.lane=j.x,u(j,a,b);continue}a.lane=g&&jz(c,f,a.width,b,w(null))?f:jy(c,e,a.width,b,w(null)),t.push({x:a.lane,width:a.width,span:b,group:d,lines:[a],kept:!1,rows:c})}for(let a of o)a.portOut=p.get(a.edge.source)??jq(a.s),a.portIn=q.get(a.edge.target)??jq(a.t);let x=new Map,y=(b,c)=>{let d="out"===c?b.edge.source:b.edge.target,e=`${c} ${d}`;return x.has(e)||x.set(e,{box:a.get(d),side:c,lines:[],fixed:("out"===c?p:q).has(d)}),x.get(e)};for(let a of m)for(let b of["out","in"])y(a,b).lines.push(a);let z=(a,b)=>jz(a.rows,b,a.width,a.span,w(a)),A=t.filter(a=>!a.kept);for(let a of A){if(1!==a.lines.length)continue;let[b]=a.lines,c=[b.portOut,b.portIn].find(b=>z(a,b));void 0!==c&&jx(a,c)}let B=void 0===c?[]:h.filter(b=>{let d,e;return!c.has(`${b.source}->${b.target}`)&&(d=a.get(b.target),k.indexOf(d.y)===(e=a.get(b.source),k.indexOf(e.y)+1))}).map(b=>({out:x.get(`out ${b.source}`)??jq(a.get(b.source)),in:x.get(`in ${b.target}`)??jq(a.get(b.target))}));for(let a of(!function(a,b,c,d,e,f,g){let h={out:new Map,in:new Map};for(let a of b)for(let b of a.lines)h[a.side].set(b,a);let i=new Map;for(let a of c)for(let b of a.lines)i.set(b,a);let j=a=>"out"===a.side?a.lines[0].portOut:a.lines[0].portIn,k=new Map;for(let a of f)for(let b of[a.out,a.in])"number"!=typeof b&&k.set(b,[...k.get(b)??[],a]);let l=a=>"number"==typeof a?a:j(a),m=new Map;for(let b of a)for(let a of new Set([b.outChannel,b.intoChannel]))m.set(a,[...m.get(a)??[],b]);let n=new Map,o=a=>{n.has(a)||n.set(a,m.get(a).flatMap(jp).filter(b=>b.channel===a));let b=n.get(a);for(let{line:a,arrives:c,ends:d}of b)d[0].x=void 0!==a.lane&&c?a.lane:a.portOut,d[1].x=void 0===a.lane||c?a.portIn:a.lane;return b},p=a=>jv(Math.abs(a.ends[0].x-a.ends[1].x)),q=(a,b)=>(a.line.width+b.line.width)/2+8-1e-6,r=(a,b,c,d,e)=>{let f;return Math.abs(c.x-e.x)<q(b,d)&&(!(1e-6>Math.abs(c.x-e.x))||(b.line.edge.source!==d.line.edge.source||"out"!==c.port&&"out"!==e.port)&&(b.line.edge.target!==d.line.edge.target||"in"!==c.port&&"in"!==e.port))&&!(1e-6>Math.abs(c.x-e.x)&&(f=c.x,g&&a.some(a=>1e-6>Math.abs(a.ends[0].x-f)&&1e-6>Math.abs(a.ends[1].x-f))))},s=(a,b,c)=>{let d=b.ends[c];return p(b)||a.some(c=>c.line!==b.line&&c.ends.some(e=>e.dir!==d.dir&&r(a,b,d,c,e)))},t=(a,b,c,d)=>{let f=c.ends[d],g=c.ends[1-d].x,m=c.line,n=new Set([g,g-24,g+24]);for(let a of b){if(a.line===m)continue;let b=q(c,a)+2e-6;for(let c of a.ends)c.dir!==f.dir&&n.add(c.x-b).add(c.x+b)}let o=[];if(void 0!==f.port){let b=h[f.port].get(m);if(b.fixed)return o;let c=j(b);for(let a of k.get(b)??[]){let c=l("out"===b.side?a.in:a.out);n.add(c).add(c-24).add(c+24)}for(let d of n)1e-6>Math.abs(d-c)||d<b.box.x+20-1e-6||d>b.box.x+232-20+1e-6||o.push({cost:Math.abs(d-c)*b.lines.length,lines:new Set(b.lines),channels:[a],apply:()=>jw(b,d),restore:()=>jw(b,c),valid:()=>!0,point:b})}else{let a=i.get(m);if(void 0===a)return o;let b=a.x,c=[...new Set(a.lines.flatMap(a=>[a.outChannel,a.intoChannel]))];for(let d of n)1e-6>Math.abs(d-b)||o.push({cost:Math.abs(d-b)*a.lines.length,lines:new Set(a.lines),channels:c,apply:()=>jx(a,d),restore:()=>jx(a,b),valid:()=>e(a,d)})}return o},u=a=>{let b;return a.channels.reduce((b,c)=>b+((a,b)=>{let c=o(a),d=new Map;for(let a of c)for(let b of a.ends){let c=Math.floor(b.x/16);d.has(c)||d.set(c,[]),d.get(c).push({run:a,end:b})}let e=a=>void 0===b||b.has(a.line),f=0;for(let a of c)if(e(a))for(let b of(p(a)&&(f+=1),a.ends)){let g=a.line.width/2+3+8;for(let h=Math.floor((b.x-g)/16);h<=Math.floor((b.x+g)/16);h++)for(let g of d.get(h)??[])!(g.run.line===a.line||g.end.dir===b.dir||"down"===b.dir&&e(g.run))&&r(c,a,b,g.run,g.end)&&(f+=2)}return f})(c,a.lines),0)+(void 0===a.point?0:.01*(b=a.point,(k.get(b)??[]).filter(a=>jv(Math.abs(l(a.out)-l(a.in)))).length))},v=0;for(let a=0;a<3&&v<4e3;a++){let a=!1;for(let b of[...m.keys()].sort((a,b)=>a-b)){let c=o(b);for(let e of[...c.filter(p),...c.filter(a=>!p(a))]){if(v>4e3)break;if(d.has(e.line))continue;o(b);let f=[0,1].filter(a=>s(c,e,a));if(0===f.length)continue;let g=null;for(let a of f.flatMap(a=>t(b,c,e,a)).sort((a,b)=>a.cost-b.cost)){if(++v>4e3)break;let b=u(a);a.apply();let c=a.valid()?b-u(a):0;a.restore(),c>0&&(null===g||c>g.gain)&&(g={move:a,gain:c})}null!==g&&(g.move.apply(),a=!0)}}if(!a)break}}(m,[...x.values()],A,new Set(n.keys()),z,B,e),o)){let b=Math.abs(a.portOut-a.portIn);if(void 0!==a.lane||0===b||b>.5)continue;let[c,d]=[y(a,"out"),y(a,"in")];d.fixed?c.fixed||jw(c,a.portIn):jw(d,a.portOut)}for(let a of A){let b=a.lines.flatMap(a=>[a.portIn,a.portOut]),c=b.find(b=>.5>=Math.abs(a.x-b));void 0===c||b.includes(a.x)||jx(a,c)}let C=o.flatMap(jp),D=[...n.keys()].flatMap(a=>jp(a).map(b=>{var c,d,e;return{...b,y:(c=n.get(a),d=b.channel,e=k,c.slice(1).find((a,b)=>{let f;return a.y===c[b].y&&(f=a.y,e.filter(a=>a+56<=f).length===d)})?.y)}})),E=new Map;for(let a of C)1e-6>Math.abs(a.ends[0].x-a.ends[1].x)||E.set(a.channel,[...E.get(a.channel)??[],a]);for(let[a,b]of E){let c=new Map;for(let a of b)c.set(ju(a),[...c.get(ju(a))??[],a]);let d=D.filter(b=>b.channel===a&&void 0!==b.y),e=m.filter(b=>b.intoChannel===a),f=[];for(let[b,g]of c){let c=d.filter(a=>ju(a)===b),h=d.filter(a=>ju(a)!==b),i=[];for(let b of g){let[f,g]=js(b),j=[...new Set(c.map(a=>a.y))].map(a=>{let b=c.filter(b=>b.y===a).map(js),d=[Math.min(...b.map(a=>a[0])),Math.max(...b.map(a=>a[1]))];return{y:a,covered:d,past:Math.max(0,d[0]-f)+Math.max(0,g-d[1])}}).sort((a,b)=>a.past-b.past||a.y-b.y).find(c=>(function(a,b,c,d,e,f,g){let[h,i]=js(a),j=[];return h<c[0]-1e-6&&j.push([h,c[0]]),i>c[1]+1e-6&&j.push([c[1],i]),j.every(([c,h])=>d.every(d=>{let[e,f]=js(d),g=(d.line.width+a.line.width)/2+4;return h+g<=e||f+g<=c||Math.abs(b-d.y)>=(d.line.width+a.line.width)/2+8-1e-6&&!(jF(a,d)&&b>d.y)&&!(jF(d,a)&&b<d.y)})&&e.every(d=>d.edge.target===a.line.edge.target||d.portIn+d.head.half+a.line.width/2<=c||d.portIn-d.head.half-a.line.width/2>=h||b<=g[f]-d.head.length-3-3+1e-6))})(b,c.y,c.covered,h,e,a,k));if(void 0===j){i.push(b);continue}b.y=j.y,d.push(b)}i.length>0&&f.push(i)}let g=f.map(jC);if(d.length>0)!function(a,b,c,d){let e=[...c],f=jH(a,d),g=a<=0?Math.min(f,d[0]-12):a>=d.length?Math.max(f,d[d.length-1]+56+12):f;for(let c of jB(b)){let b,[h,i]=js(c),j=e.filter(a=>{let[b,d]=js(a),e=(a.line.width+c.line.width)/2+4;return!(i+e<=b||d+e<=h)}),k=e.filter(a=>a.arrives&&a.line.portIn+a.line.head.half+c.line.width/2>h&&a.line.portIn-a.line.head.half-c.line.width/2<i),l=Math.max(c.arrives?c.line.head.length:0,...k.map(a=>a.line.head.length))+3;for(let[e,f,h]of[[12,8,8],[3,3,8],[3,3,1]]){let i=a>0?d[a-1]+56+e:-1/0,k=a<d.length?d[a]-l-f:1/0,m=a=>(a.line.width+c.line.width)/2+h,n=[g,i,k,...j.flatMap(a=>[a.y-m(a),a.y+m(a)])].filter(Number.isFinite).filter(a=>a>=i-1e-6&&a<=k+1e-6&&j.every(b=>Math.abs(a-b.y)>=m(b)-1e-6&&!(jF(c,b)&&a>b.y)&&!(jF(b,c)&&a<b.y))),o=a=>Math.abs(a-g)+1e3*j.filter(b=>jG(c,b)&&a>b.y||jG(b,c)&&a<b.y).length;if(n.length>0){b=n.reduce((a,b)=>o(b)<o(a)||o(b)===o(a)&&b<a?b:a);break}}c.y=b??f,e.push(c)}}(a,g,d,k);else{let b=[];for(let a of jB(g)){let[c,d]=js(a),e=b=>b.every(b=>{let[e,f]=js(b),g=(b.line.width+a.line.width)/2+4;return d+g<=e||f+g<=c}),f=Math.max(-1,...b.flatMap((b,c)=>b.some(b=>jG(b,a))?[c]:[]))+1;for(;f<b.length&&!e(b[f]);)f++;f===b.length&&b.push([]),b[f].push(a),a.track=f}!function(a,b,c){let d=b.map(a=>Math.max(...a.map(a=>a.line.width))),e=d.slice(1).map((a,b)=>(d[b]+a)/2+8),f=d.slice(1).map((a,b)=>(d[b]+a)/2+1),g=e.reduce((a,b)=>a+b,0),h=f.reduce((a,b)=>a+b,0),i=Math.max(0,...b.flat().filter(a=>a.arrives).map(a=>a.line.head.length))+3,j=a>0?c[a-1]+56+12:-1/0,k=a<c.length?c[a]-i-8:1/0,l=e;if(Number.isFinite(j)&&Number.isFinite(k)&&g>k-j){h>k-j&&(j=c[a-1]+56+3),h>k-j&&(k=c[a]-i-3);let b=Math.max(0,k-j),d=g===h?0:Math.max(0,Math.min(1,(b-h)/(g-h)));l=h>b?f.map(a=>a*b/h):e.map((a,b)=>f[b]+(a-f[b])*d)}let m=l.reduce((a,b)=>a+b,0),n=jH(a,c)-m/2,o=n=a<=0?Math.min(jH(a,c),k)-m:a>=c.length?Math.max(jH(a,c),j):Math.max(j,Math.min(n,k-m));b.forEach((a,b)=>{for(let c of(b>0&&(o+=l[b-1]),a))c.y=o})}(a,b,k)}for(let a of g)for(let b of a.members??[])b.y=a.y}let F=new Map,G=new Map;for(let a of C)G.set(a.line,[...G.get(a.line)??[],a]);for(let a of m){if(n.has(a)){F.set(a.key,n.get(a));continue}let[b,c]=G.get(a),d={x:a.portOut,y:a.s.y+56},e={x:a.portIn,y:a.t.y},f=a=>a.y??jH(a.channel,k),g=void 0===a.lane?[d,{x:d.x,y:f(b)},{x:e.x,y:f(b)},e]:[d,{x:d.x,y:f(b)},{x:a.lane,y:f(b)},{x:a.lane,y:f(c)},{x:e.x,y:f(c)},e];F.set(a.key,function(a){let b=a.filter((b,c)=>0===c||b.x!==a[c-1].x||b.y!==a[c-1].y);return b.filter((a,c)=>{if(0===c||c===b.length-1)return!0;let[d,e]=[b[c-1],b[c+1]];return(d.x!==a.x||a.x!==e.x)&&(d.y!==a.y||a.y!==e.y)})}(g))}return F}function jF(a,b){let c=(a.line.width+b.line.width)/2+1;return a.ends.some(a=>"up"===a.dir&&b.ends.some(b=>"down"===b.dir&&Math.abs(a.x-b.x)<c))}function jG(a,b){let c=(a,b)=>{let[c,d]=js(b);return a>c&&a<d};return jF(a,b)||a.ends.some(a=>"up"===a.dir&&c(a.x,b))||b.ends.some(b=>"down"===b.dir&&c(b.x,a))}function jH(a,b){return a<=0?b[0]-32:a>=b.length?b[b.length-1]+56+32:(b[a-1]+56+b[a])/2}function jI(a,b,c){let d=Math.hypot(b.x-a.x,b.y-a.y);return{x:a.x+(b.x-a.x)*c/d,y:a.y+(b.y-a.y)*c/d}}let jJ=(a,b)=>2*Math.abs(a.x-b.x)<a.width+b.width&&2*Math.abs(a.y-b.y)<a.height+b.height,jK=(0,t.memo)(function({id:a,sourceX:b,sourceY:c,targetX:d,targetY:e,data:f,interactionWidth:g}){let h=f&&f.points.length>=2?f.points:[{x:b,y:c},{x:d,y:e}],i=f?.width??1,j=f?.color??"var(--edge-dim)",{half:k,length:l}=jj(f?.headWidth??i),m=h[h.length-1],n={x:m.x,y:m.y-3},o=[...h.slice(0,-1),{x:n.x,y:n.y-l+1}],p=f?.labelAt!==void 0?f.count:void 0,q=`M ${n.x-k} ${n.y-l} L ${n.x+k} ${n.y-l} L ${n.x} ${n.y} Z`;return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(e5,{id:a,path:function(a,b=8){if(a.length<2)return"";let c=`M ${a[0].x} ${a[0].y}`;for(let d=1;d<a.length-1;d++){let[e,f,g]=[a[d-1],a[d],a[d+1]],h=Math.min(b,Math.hypot(f.x-e.x,f.y-e.y)/2,Math.hypot(g.x-f.x,g.y-f.y)/2),i=jI(f,e,h),j=jI(f,g,h);c+=` L ${i.x} ${i.y} Q ${f.x} ${f.y} ${j.x} ${j.y}`}let d=a[a.length-1];return`${c} L ${d.x} ${d.y}`}(o),style:{stroke:j,strokeWidth:i,strokeLinecap:"butt",strokeLinejoin:"round"},interactionWidth:Math.max(g??20,i+10)}),(0,s.jsx)("path",{d:q,fill:j,stroke:j,strokeWidth:1,strokeLinejoin:"round",className:"pointer-events-none"}),p&&f?.labelAt&&(0,s.jsx)(fO,{children:(0,s.jsx)("div",{"data-edge-label":a,"data-edge-count":p,style:{transform:`translate(-50%, -50%) translate(${f.labelAt.x}px, ${f.labelAt.y}px)`,zIndex:1001},className:`pointer-events-none absolute whitespace-nowrap rounded-[4px] border border-divider bg-canvas px-1.5 text-[11.5px] leading-[16px] tabular-nums ${f.countStrong?"text-text":"text-text-3"}`,children:p})})]})});function jL(a,b,c){let d=c.x-b.x,e=c.y-b.y,f=d*d+e*e;if(0===f)return b;let g=Math.min(1,Math.max(0,((a.x-b.x)*d+(a.y-b.y)*e)/f));return{x:b.x+g*d,y:b.y+g*e}}let jM=(a,b)=>Math.hypot(a.x-b.x,a.y-b.y),jN=a=>[1,3,5].map(b=>parseInt(a.slice(b,b+2),16)),jO=a=>"#"+a.map(a=>Math.round(Math.min(255,Math.max(0,a))).toString(16).padStart(2,"0")).join("").toUpperCase();function jP(a,b,c){let[d,e]=[jN(a),jN(b)];return jO(d.map((a,b)=>a+(e[b]-a)*c))}function jQ(a,b="#000000"){let c=a.trim().toLowerCase(),d=null,e=/^#([0-9a-f]{3,8})$/.exec(c);if(e&&[3,4,6,8].includes(e[1].length)){let a=e[1].length<=4?[...e[1]].map(a=>a+a).join(""):e[1];d=[0,2,4,6].map(b=>b<a.length?parseInt(a.slice(b,b+2),16):255),d[3]/=255}let f=/^rgba?\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)\s*(?:,\s*([\d.]+%?)\s*)?\)$/.exec(c);if(f){let a=void 0===f[4]?1:f[4].endsWith("%")?parseFloat(f[4])/100:parseFloat(f[4]);d=[Number(f[1]),Number(f[2]),Number(f[3]),a]}if(null===d||d.some(a=>Number.isNaN(a)))return null;let[g,h,i,j]=d,k=jN(b),l=Math.min(1,Math.max(0,j));return jO([g,h,i].map((a,b)=>k[b]+(a-k[b])*l))}let jR=new Set(["dark","light","hc","hc-light"]);function jS(){let a=document.documentElement.getAttribute("data-kind");return null!==a&&jR.has(a)?a:"dark"}function jT(a){let b=new MutationObserver(a);return b.observe(document.documentElement,{attributes:!0,attributeFilter:["data-kind"]}),()=>b.disconnect()}function jU(a){if(0===a.size)return{x:0,y:0,width:0,height:0};let b=1/0,c=1/0,d=-1/0,e=-1/0;for(let{x:f,y:g}of a.values())b=Math.min(b,f),c=Math.min(c,g),d=Math.max(d,f+232),e=Math.max(e,g+56);return{x:b,y:c,width:d-b,height:e-c}}function jV(a){let b=1/0,c=1/0,d=-1/0,e=-1/0;for(let{points:f,width:g,headHalf:h}of a){if(0===f.length)continue;for(let{x:a,y:h}of f)b=Math.min(b,a-g/2),c=Math.min(c,h-g/2),d=Math.max(d,a+g/2),e=Math.max(e,h+g/2);let a=f[f.length-1];b=Math.min(b,a.x-h),d=Math.max(d,a.x+h)}return 1/0===b?null:{x:b,y:c,width:d-b,height:e-c}}function jW(a,b){let c=jl(b),d=jm(b),e=new Map(b.map(a=>[gA(a),a]));return jV([...a].flatMap(([a,b])=>{let f=e.get(a);if(void 0===f)return[];let g=ji(f.count,c);return[{points:b,width:g,headHalf:jj(d.get(f.target)??g).half}]}))}function jX(a,b,c){let d=a+b/2,e=b/2+.15*b/2;if(void 0===c)return{middle:d,size:2*e};let f=Math.max(e,d-(c.start-16)),g=Math.max(e,c.start+c.size+16-d);return{middle:d+(g-f)/2,size:f+g}}function jY(a,b){let c=jX(a.x,a.width,b&&{start:b.x,size:b.width}),d=jX(a.y,a.height,b&&{start:b.y,size:b.height});return{middle:{x:c.middle,y:d.middle},width:c.size,height:d.size}}let jZ=(a,b)=>Math.min(1,b.width/a.width,b.height/a.height);function j$(a,b,c){let d=jY(a);if(null===b)return d;let e=jY(a,b);return jZ(e,c)>=.85*jZ(d,c)?e:d}function j_(a,b,c=0,d=null){let e=b.height-c,f=(a,d)=>({x:b.width/2-a.middle.x*d,y:c+e/2-a.middle.y*d,zoom:d});if(0===a.width||0===a.height||0===b.width||0===b.height)return f(jY(a),1);let g={width:b.width,height:e},h=jY(a),i=jZ(h,g);if(i>=.75){let b=j$(a,d,g),c=jZ(b,g);return c>=.75?f(b,c):f(h,i)}let j=a=>Math.min(1,Math.max(.75,(b.width-144)/a)),k=j(a.width),l=a.x+a.width/2;if(null!==d){let b=Math.min(a.x,d.x),c=Math.max(a.x+a.width,d.x+d.width);j(c-b)>=.85*k&&(k=j(c-b),l=(b+c)/2)}return{x:b.width/2-l*k,y:64-a.y*k,zoom:k}}let j0=a=>new Set(""===a?[]:a.split("\n"));function j1(a,b,c,d,e){let f=new Map([...b].filter(([a])=>c.has(a))),g=new Map([...f.keys()].filter(a=>d.has(a)).map(b=>[b,a.sizes.get(b)]));return function(a,b,c,d,e=new Map){let f=[];for(let[c,d]of a)for(let a=0;a+1<d.length;a++)f.push({key:c,a:d[a],b:d[a+1],width:b.get(c)??1});let g=f.map(a=>({key:a.key,room:{x:(a.a.x+a.b.x)/2,y:(a.a.y+a.b.y)/2,width:Math.abs(a.b.x-a.a.x)+a.width+4,height:Math.abs(a.b.y-a.a.y)+a.width+4}})),h=[],i=(a,b)=>{let e={x:b.x,y:b.y,...c.get(a)};return!g.some(b=>b.key!==a&&jJ(e,b.room))&&!h.some(a=>jJ(e,{...a,width:a.width+6,height:a.height+6}))&&!d.some(a=>jJ(e,a))},j=new Map,k=(a,b)=>{j.set(a,b),h.push({x:b.x,y:b.y,...c.get(a)})},l=[...c.keys()].filter(b=>a.has(b)).sort((a,c)=>(b.get(c)??1)-(b.get(a)??1)||(a<c?-1:+(a>c)));for(let a of l){let b=e.get(a);void 0!==b&&i(a,b)&&k(a,b)}let m=a=>{let b=c.get(a);for(let c of function(a,b){let c=b.filter(b=>b.key!==a),d=[];for(let e of b){if(e.key!==a)continue;let b=e.a.y===e.b.y,[f,g]=b?[Math.min(e.a.x,e.b.x),Math.max(e.a.x,e.b.x)]:[Math.min(e.a.y,e.b.y),Math.max(e.a.y,e.b.y)],h=[[f,g]];for(let a of c){if(!(b?a.a.y===a.b.y&&Math.abs(a.a.y-e.a.y)<(a.width+e.width)/2+1:a.a.x===a.b.x&&Math.abs(a.a.x-e.a.x)<(a.width+e.width)/2+1))continue;let[c,d]=b?[Math.min(a.a.x,a.b.x),Math.max(a.a.x,a.b.x)]:[Math.min(a.a.y,a.b.y),Math.max(a.a.y,a.b.y)];h=h.flatMap(([a,b])=>d<=a||c>=b?[[a,b]]:[[a,Math.max(a,c)],[Math.min(b,d),b]].filter(([a,b])=>b-a>.5))}for(let[a,c]of h)d.push(b?{a:{x:a,y:e.a.y},b:{x:c,y:e.a.y},length:c-a}:{a:{x:e.a.x,y:a},b:{x:e.a.x,y:c},length:c-a})}return d.sort((a,b)=>b.length-a.length)}(a,f)){let d=c.a.y===c.b.y,e=d?b.width:b.height,f=c.length-e;if(!(f<0))for(let b of jo){let g=e/2+f*b,h=d?{x:Math.min(c.a.x,c.b.x)+g,y:c.a.y}:{x:c.a.x,y:Math.min(c.a.y,c.b.y)+g};if(i(a,h))return h}}};for(let a of l){if(j.has(a))continue;let b=m(a);void 0!==b&&k(a,b)}return j}(f,a.widths,g,[...a.boxes,...function(a,b){let c=jl(b),d=jm(b),e=new Map(b.map(a=>[`${a.source}->${a.target}`,a])),f=new Map;for(let[b,g]of a){let a=e.get(b);if(void 0===a||g.length<2||f.has(a.target))continue;let h=g[g.length-1],{half:i,length:j}=jj(d.get(a.target)??ji(a.count,c));f.set(a.target,{x:h.x,y:h.y-3-j/2,width:2*i+4,height:j+4})}return[...f.values()]}(f,a.edges)],e)}let j2={box:jh},j3={routed:jK},j4=a=>`color-mix(in srgb, ${a} 70%, var(--canvas))`;function j5({nodes:a,positions:b,tones:c}){return(0,s.jsx)("div",{"aria-hidden":!0,"data-testid":"back-cards",className:"pointer-events-none",children:a.filter(a=>"folder"===a.kind).map(a=>{let d=b.get(a.path);if(void 0===d)return null;let e=c.get(a.path)??"normal",f="faded"===e;return(0,s.jsx)("div",{"data-back-card":a.path,style:{position:"absolute",left:d.x+5,top:d.y+5,width:232,height:56,borderRadius:5,background:j4(jd("var(--node)",f)),border:`1px solid ${j4(jd(je(e,!1),f))}`}},a.path)})})}function j6({divider:a}){return(0,s.jsxs)("div",{"data-testid":"loose-divider","aria-hidden":!0,style:{position:"absolute",left:a.x,top:a.y-11,width:a.width,height:22},className:"pointer-events-none flex items-center gap-3",children:[(0,s.jsx)("span",{className:"h-px flex-1 bg-divider"}),(0,s.jsx)("span",{className:"whitespace-nowrap text-[12px] text-text-3",children:"Not linked to anything here"}),(0,s.jsx)("span",{className:"h-px flex-1 bg-divider"})]})}let j7=(0,t.memo)(function({level:a,selected:b,agent:c,pulses:d,onSelect:e,onOpen:f,onTurnPage:g,onDrawn:h,quietLines:i,strongOnly:j,direction:k,covered:l,actionsFor:m,onDetails:n,onOpenFile:o}){let p=dO(a=>a.width>=1700?8:6),q=(0,t.useSyncExternalStore)(jT,jS,()=>"dark"),r=(0,t.useMemo)(()=>(function(a,b,c=100,d=6){let e=new Map,f=b.filter(a=>a.source!==a.target),g=i1(b),h=a.filter(a=>g.has(a.path)),i=a.filter(a=>!g.has(a.path)),j=[...f].sort((a,b)=>b.count-a.count||(a.source<b.source?-1:+(a.source>b.source))||(a.target<b.target?-1:+(a.target>b.target))).slice(0,c),k=Math.max(1,Math.ceil(Math.sqrt(i.length)));if(0===h.length)return i_(i.length,k,0,0).forEach((a,b)=>e.set(i[b].path,a)),e;let l=new hy.Graph;for(let a of(l.setGraph({rankdir:"TB",nodesep:40,ranksep:64,marginx:0,marginy:0}),l.setDefaultEdgeLabel(()=>({})),h))l.setNode(a.path,{width:232,height:56});for(let a of j)l.setEdge(a.source,a.target,{weight:Math.max(1,Math.round(Math.sqrt(a.count)))});!function(a,b={}){(function a(b,c,d){var e;let f=b.nodes().filter(a=>b.children(a).length),g={};f.forEach(e=>{let f=b.node(e);if(f&&f.rankdir){let h=new h2({multigraph:!0,compound:!0});h.setGraph({rankdir:f.rankdir});let i=b.children(e);i.forEach(a=>{let c={...b.node(a)};h.setNode(a,c);let d=b.parent(a);d&&d!==e&&i.includes(d)&&h.setParent(a,d)});let j=new Set;b.edges().forEach(a=>{let c=iM(b,a.v,e),d=iM(b,a.w,e);if(c&&d&&c!==d){let e=`${c}\0${d}`;j.has(e)||(j.add(e),h.setEdge(c,d,{...b.edge(a)}))}}),a(h,c,d);let k=iX(h);iN(k,c,d,null),iO(h,k);let l=1/0,m=1/0,n=-1/0,o=-1/0;h.nodes().forEach(a=>{if(a===e)return;let b=h.node(a);b&&"number"==typeof b.x&&"number"==typeof b.y&&"number"==typeof b.width&&"number"==typeof b.height&&(l=Math.min(l,b.x-b.width/2),n=Math.max(n,b.x+b.width/2),m=Math.min(m,b.y-b.height/2),o=Math.max(o,b.y+b.height/2))}),isFinite(l)&&isFinite(m)&&isFinite(n)&&isFinite(o)||(l=m=0,n=o=0);let p=n-l,q=o-m;g[e]={minX:l,minY:m,maxX:n,maxY:o,width:p,height:q,offsetX:l,offsetY:m},f._dagreClusterSubgraph=h}});let h=[],i=new Map;f.forEach(a=>{let c=b.node(a);c&&c.rankdir&&g[a]&&i.set(a,(b.children(a)||[]).filter(b=>b!==a))});let j=new Set([...i.values()].flat()),k=new Map;i.forEach((a,c)=>{j.has(c)||k.set(c,(a=>{let c=[],d=(b.children(a)||[]).filter(b=>b!==a);for(;d.length>0;){let a=d.shift();c.push(a),(b.children(a)||[]).filter(b=>b!==a).forEach(a=>d.push(a))}return c})(c))});let l=new Set([...k.values()].flat()),m=a=>{for(let[b,c]of k)if(c.includes(a))return b;return a},n=[];b.edges().forEach(a=>{(l.has(a.v)||l.has(a.w))&&n.push({edge:a,label:b.edge(a)})});let o=new Map;l.forEach(a=>{let c=b.parent(a);o.set(a,"string"==typeof c?c:void 0)}),k.forEach((a,c)=>{let d=b.node(c),e=[];a.forEach(a=>{let c=b.node(a);c&&(e.push({id:a,node:c,parent:o.get(a)}),b.removeNode(a))});let f=n.filter(({edge:b})=>a.includes(b.v)||a.includes(b.w)),i=g[c];d&&(h.push({clusterId:c,subgraph:d._dagreClusterSubgraph,bounds:i,children:a,removedNodes:e,removedEdges:f}),d.width=i.width,d.height=i.height)});let p=new Set;n.forEach(({edge:a,label:c})=>{let d=m(a.v),e=m(a.w);if(d!==e&&b.hasNode(d)&&b.hasNode(e)){let a=`${d}\0${e}`;p.has(a)||(p.add(a),b.setEdge(d,e,{...c,width:0,height:0}))}});let q=iX(b),r=iN(q,c,d,null!=(e=iL.get(b))?e:null);iL.set(b,r),iO(b,q),p.forEach(a=>{let c=a.indexOf("\0"),d=a.slice(0,c),e=a.slice(c+1);b.hasEdge(d,e)&&b.removeEdge(d,e)}),h.forEach(({clusterId:a,subgraph:c,bounds:d,removedNodes:e,removedEdges:f})=>{var g,h;let i=b.node(a),j=null!=(g=null==i?void 0:i.x)?g:0,k=null!=(h=null==i?void 0:i.y)?h:0,l=(d.minX+d.maxX)/2,m=(d.minY+d.maxY)/2;e.forEach(({id:a,node:c,parent:d})=>{b.setNode(a,c),void 0!==d&&b.setParent(a,d)}),f.forEach(({edge:a,label:c})=>{b.setEdge(a,c)}),c.nodes().forEach(d=>{if(d===a)return;let e=c.node(d),f=b.node(d);f&&e&&"number"==typeof e.x&&"number"==typeof e.y&&(f.x=j+(e.x-l),f.y=k+(e.y-m))}),delete i._dagreClusterSubgraph}),f.forEach(a=>{var c,d;let e=b.node(a),f=g[a];if(e&&e.rankdir&&e._dagreClusterSubgraph&&f){let g=e._dagreClusterSubgraph,h=null!=(c=e.x)?c:0,i=null!=(d=e.y)?d:0,j=(f.minX+f.maxX)/2,k=(f.minY+f.maxY)/2;g.nodes().forEach(c=>{if(c===a)return;let d=g.node(c),e=b.node(c);if(e&&d&&"number"==typeof d.x&&"number"==typeof d.y){let a=d.x-j,b=d.y-k;e.x=h+a,e.y=i+b}}),delete e._dagreClusterSubgraph}})})(a,ia,b)}(l);let m=0,n=0;for(let[a,b]of function(a,b){let c=new Map;for(let{path:b,x:d,y:e}of a)c.set(e,[...c.get(e)??[],{path:b,x:d}]);let d=new Map,e=0;for(let a of[...c.keys()].sort((a,b)=>a-b)){let f=c.get(a).sort((a,b)=>a.x-b.x||(a.path<b.path?-1:1)),g=Math.ceil(f.length/b),h=Math.ceil(f.length/g);for(let a=0;a<g;a++){let b=f.slice(a*h,(a+1)*h),c=-(232*b.length+(b.length-1)*40)/2;b.forEach((b,f)=>d.set(b.path,{x:c+272*f,y:e+96*a}))}e+=96*g-40+64}return d}(h.map(a=>({path:a.path,...l.node(a.path)})),d))e.set(a,b),m=Math.max(m,b.y+56),n=Math.max(n,b.x+232);if(0===i.length)return e;let o=Math.max(1,Math.floor((m+40)/96)),p=Math.ceil(i.length/o),q=n+80+i0(p,232)+n,r=Math.max(m,64+i0(Math.ceil(i.length/p),56)),s=Math.min(k,i.length);return(i$(Math.max(2*n,i0(s,232)),m+120+i0(Math.ceil(i.length/s),56))>i$(q,r)?i_(i.length,s,-i0(s,232)/2,m+120):i_(i.length,p,n+80,64)).forEach((a,b)=>e.set(i[b].path,a)),e})(a.nodes,a.edges,void 0,p),[a,p]),u=(0,t.useMemo)(()=>(function(a,b,c){let d=i1(b),e=a=>{let b=a.map(a=>c.get(a)).filter(a=>void 0!==a);return{left:Math.min(...b.map(a=>a.x)),right:Math.max(...b.map(a=>a.x+232)),top:Math.min(...b.map(a=>a.y)),bottom:Math.max(...b.map(a=>a.y+56))}},f=a.filter(a=>d.has(a.path)).map(a=>a.path),g=a.filter(a=>!d.has(a.path)).map(a=>a.path);if(0===f.length||0===g.length)return null;let h=e(f),i=e(g);if(i.left>=h.right)return{x:i.left,y:i.top-32,width:i.right-i.left};let j=Math.min(h.left,i.left);return{x:j,y:(h.bottom+i.top)/2,width:Math.max(h.right,i.right)-j}})(a.nodes,a.edges,r),[a,r]),v=(0,t.useMemo)(()=>new Map(a.nodes.map(a=>[a.path,a])),[a]),w=(0,t.useMemo)(()=>new Map(a.nodes.filter(a=>"portal"===a.kind).map(b=>{var c;return[b.path,{direction:(c=a.page,void 0===b.page?"many":b.page<c?"previous":"next"),title:void 0!==b.page?`Lines to page ${b.page+1}`:`Lines to ${gX(b.pages?.length??0,"more page","more pages")}`,caption:gY(b,gW(a.edges,b.path))}]})),[a]),x=(0,t.useMemo)(()=>jk(a.nodes),[a]),y=(0,t.useMemo)(()=>jl(a.edges),[a]),z=(0,t.useMemo)(()=>jm(a.edges),[a]),A=(0,t.useMemo)(()=>jn(a.edges,b),[a,b]),[B,C]=(0,t.useState)(null),[D,E]=(0,t.useState)(null),[F,G]=(0,t.useState)(null),[H,I]=(0,t.useState)(a),J=H!==a;J&&(I(a),G(null),C(null),E(null));let K=(0,t.useMemo)(()=>gD(a.nodes.map(a=>a.path),a.edges,b,F,{quietLines:i,strongOnly:j,pinned:c,direction:k}),[a,b,F,i,j,c,k]),L=(0,t.useMemo)(()=>{let b=gD(a.nodes.map(a=>a.path),a.edges,null,null,{quietLines:i,strongOnly:j});return a.edges.map(gA).filter(a=>"hidden"!==b.edges.get(a)).join("\n")},[a,i,j]),M=(0,t.useMemo)(()=>jD(r,a.edges,j0(L)),[r,a,L]),N=a.edges.map(gA).filter(a=>"hidden"!==K.edges.get(a)).join("\n"),O=(0,t.useMemo)(()=>{let d=gD(a.nodes.map(a=>a.path),a.edges,b,null,{quietLines:i,strongOnly:j,pinned:c});return a.edges.map(gA).filter(a=>"hidden"!==d.edges.get(a)).join("\n")},[a,b,i,j,c]),P=(0,t.useMemo)(()=>({edges:a.edges,widths:new Map(a.edges.map(a=>[gA(a),ji(a.count,y)])),sizes:new Map(a.edges.map(a=>[gA(a),{width:7*gE(a.count).length+14,height:18}])),boxes:a.nodes.flatMap(a=>{let b=r.get(a.path);return void 0===b?[]:[{x:b.x+118.5,y:b.y+30.5,width:237,height:61}]})}),[a,r,y]),Q=c=>{let d=null===c||c.rest!==M,e=d?M:c.routes,f=N===(d?L:c.drawn)?e:function(a,b,c,d,e){let f=new Map;for(let[a,b]of d)e.has(a)&&f.set(a,b);for(let[a,b]of c)e.has(a)&&f.set(a,b);return jD(a,b,e,f)}(r,a.edges,M,e,j0(N)),g=d?j1(P,M,j0(L),jn(a.edges,null),new Map):c.restCounts,h=d||c.selected!==b||c.settled!==O?j1(P,f,j0(O),A,g):c.settledCounts,i=N===O?h:j1(P,f,j0(N),A,h);return{rest:M,drawn:N,routes:f,selected:b,settled:O,restCounts:g,settledCounts:h,counts:i}},[R,S]=(0,t.useState)(()=>Q(null));(R.rest!==M||R.drawn!==N||R.selected!==b||R.settled!==O)&&S(Q(R));let{routes:T,counts:U}=R,[V,W,X]=function(a){let[b,c]=(0,t.useState)(a),d=(0,t.useCallback)(a=>c(b=>ef(a,b)),[]);return[b,c,d]}([]),[Y,Z,$]=function(a){let[b,c]=(0,t.useState)(a),d=(0,t.useCallback)(a=>c(b=>ef(a,b)),[]);return[b,c,d]}([]),{setViewport:_,getViewport:aa,screenToFlowPosition:ab}=es(),ac=dO(a=>a.width),ad=dO(a=>a.height),ae=dO(a=>a.domNode),af=(0,t.useRef)({setViewport:_,onDrawn:h,positions:r,routes:T,edges:a.edges,canvas:{width:ac,height:ad}});(0,t.useEffect)(()=>{af.current={setViewport:_,onDrawn:h,positions:r,routes:T,edges:a.edges,canvas:{width:ac,height:ad}}},[_,h,r,T,a.edges,ac,ad]);let ag=(0,t.useRef)(!1);(0,t.useEffect)(()=>{let b=a.nodes.map(a=>{var b,e,f;return e=r.get(a.path)??{x:0,y:0},f={box:a,tone:K.boxes.get(a.path)??"normal",agent:c.has(a.path),pulseKey:d.get(a.path)?.key??0,dot:(b=a.fileCount,x<=0?6:6+12*Math.log10(Math.max(0,b)+1)/Math.log10(x+1)),portal:w.get(a.path)},{id:a.path,type:"box",position:e,width:232,height:56,measured:{width:232,height:56},handles:i7,draggable:!1,connectable:!1,data:f}});W(a=>i8(a,b,i9))},[a,r,w,K,c,d,x,W]),(0,t.useEffect)(()=>{let c=a.edges.flatMap(a=>{let c=gA(a),d=K.edges.get(c)??"normal";if("hidden"===d)return[];let e="selected"===d?{color:a.target===b?gz.usedBy.line:gz.uses.line,layer:2}:"preview"===d?{color:"var(--text-2)",layer:1}:{color:"var(--edge-dim)",layer:0},f={id:c,type:"routed",data:{points:T.get(c)??[],width:ji(a.count,y),headWidth:z.get(a.target),color:e.color,count:U.has(c)?gE(a.count):void 0,countStrong:"selected"===d,labelAt:U.get(c)},source:a.source,target:a.target,focusable:!1};return[{layer:e.layer,edge:f}]}).sort((a,b)=>a.layer-b.layer).map(a=>a.edge);Z(a=>i8(a,c,ja))},[a,T,U,K,b,y,z,Z]);let ah=`${a.repo}
4
+ ${a.path}
5
+ ${a.page}
6
+ ${p}`,ai=(0,t.useRef)(null);(0,t.useEffect)(()=>{if(ai.current===ah||!(V.length===a.nodes.length&&V.every((b,c)=>b.id===a.nodes[c].path)))return;let b=requestAnimationFrame(()=>{ai.current=ah,ag.current=!1;let a=af.current;a.setViewport(j_(jU(a.positions),a.canvas,0,jW(a.routes,a.edges)),{duration:0}),a.onDrawn()});return()=>cancelAnimationFrame(b)},[ah,V,a.nodes]);let aj=(0,t.useRef)(null);(0,t.useEffect)(()=>{let a=aj.current;if((aj.current={width:ac,height:ad},null!==a&&0!==ac&&0!==ad&&ai.current===ah)&&(a.width!==ac||a.height!==ad))if(C(null),E(null),ag.current){let b=aa();_({x:b.x+(ac-a.width)/2,y:b.y+(ad-a.height)/2,zoom:b.zoom},{duration:0})}else{let a=jW(af.current.routes,af.current.edges);_(j_(jU(r),{width:ac,height:ad},0,a),{duration:0})}},[ac,ad,ah,r,_,aa]);let ak=(0,t.useMemo)(()=>j0(N),[N]),al=(0,t.useMemo)(()=>new Map(a.edges.map(a=>[gA(a),a])),[a]),am=(0,t.useRef)(null),an=(0,t.useRef)(null),ao=(a,b)=>{let c=T.get(b),d=function(a,b,c,d){let e=c.get(a);if(void 0===e)return null;let f=function(a,b){let c=null;for(let d=0;d+1<a.length;d++){let e=jL(b,a[d],a[d+1]),f=jM(b,e);(null===c||f<c.away)&&(c={point:e,segment:d,away:f})}return c&&{point:c.point,segment:c.segment}}(e,b);if(null===f)return null;let g=e[f.segment],h=e[f.segment+1];return{lines:[...c].filter(([b,c])=>b===a||d.has(b)&&c.some((a,b)=>{let d,e,i,j=c[b+1];return void 0!==j&&(d={x:h.x-g.x,y:h.y-g.y},e={x:j.x-a.x,y:j.y-a.y},(i=Math.hypot(d.x,d.y)*Math.hypot(e.x,e.y))>0&&Math.abs(d.x*e.y-d.y*e.x)/i<.01)&&.75>=jM(f.point,jL(f.point,a,j))})).map(([a])=>a).sort(),point:f.point,segment:f.segment}}(b,ab({x:a.clientX,y:a.clientY}),T,ak),e=al.get(b);if(null===d||null===ae||void 0===e||void 0===c)return null;let f=ae.getBoundingClientRect(),g=aa(),h=d.point,i={x:h.x*g.zoom+g.x,y:h.y*g.zoom+g.y},j=c[d.segment],k=c[d.segment+1],l=ji(e.count,y),m=function(a,b,c,d,e){let f=a=>({x:a.x*c.zoom+c.x,y:a.y*c.zoom+c.y}),g=d*c.zoom/2+3,h=[];for(let c=0;c+1<a.length;c++){let d=f(a[c]),e=f(a[c+1]);jM(b,jL(b,d,e))>40||h.push({left:Math.min(d.x,e.x)-g,top:Math.min(d.y,e.y)-g,width:Math.abs(e.x-d.x)+2*g,height:Math.abs(e.y-d.y)+2*g})}let i=a.at(-1);if(void 0!==i){let a=f({x:i.x,y:i.y-3}),d=e.half*c.zoom+3,g=e.length*c.zoom,j={left:a.x-d,top:a.y-g,width:2*d,height:g};40>=jM(b,{x:Math.max(j.left,Math.min(b.x,j.left+j.width)),y:Math.max(j.top,Math.min(b.y,a.y))})&&h.push(j)}return h}(c,i,g,l,jj(z.get(e.target)??l)),n=[...(ae.parentElement??ae).querySelectorAll("[data-keep-clear]")].map(a=>{let b=a.getBoundingClientRect();return{left:b.left-f.left,top:b.top-f.top,width:b.width,height:b.height}}),o=Math.abs(k.y-j.y)>Math.abs(k.x-j.x);return{key:d.lines.join("\n"),lines:d.lines,point:i,spot:h,upright:o,half:l*g.zoom/2,line:m,clear:n}},ap=(a,b)=>{let c=ao(a,b.id);null!==c&&(null!==B&&B.key===c.key?am.current?.(c):C(c))},aq=(0,t.useRef)(null);(0,t.useEffect)(()=>{if(null===D)return;let a=a=>{"Escape"===a.key&&(a.stopPropagation(),E(null))},b=a=>{if(a.target instanceof Node&&aq.current?.contains(a.target)||(E(null),!(a.target instanceof Element&&a.target.closest(".react-flow__pane"))))return;let b=a=>{a.target instanceof Element&&a.target.closest(".react-flow__pane")&&a.stopPropagation()};document.addEventListener("click",b,{capture:!0,once:!0}),document.addEventListener("pointerdown",()=>document.removeEventListener("click",b,{capture:!0}),{capture:!0,once:!0})};return window.addEventListener("keydown",a,!0),document.addEventListener("pointerdown",b,!0),()=>{window.removeEventListener("keydown",a,!0),document.removeEventListener("pointerdown",b,!0)}},[D]);let ar=J?null:D??B;return(0,s.jsxs)(fM,{nodes:V,edges:Y,onNodesChange:X,onEdgesChange:$,nodeTypes:j2,edgeTypes:j3,onNodeClick:(a,b)=>e(b.id),onNodeDoubleClick:(a,b)=>{let c=i2(b.data.box,void 0!==o);c?.type==="folder"?f(c.path):c?.type==="page"?g(c.page):c?.type==="editor"&&o?.(c.path)},onNodeMouseEnter:(a,b)=>G(b.id),onNodeMouseLeave:()=>G(null),onPaneClick:()=>e(null),onMoveStart:a=>{null!==a&&(ag.current=!0,C(null))},onEdgeMouseEnter:ap,onEdgeMouseMove:ap,onEdgeMouseLeave:()=>C(null),onEdgeClick:(a,b)=>{let c=ao(a,b.id);null!==c&&E({...c,held:null!==B&&B.key===c.key?an.current:null})},nodesDraggable:!1,nodesConnectable:!1,zoomOnDoubleClick:!1,minZoom:.1,maxZoom:2,colorMode:"light"===q||"hc-light"===q?"light":"dark",proOptions:{hideAttribution:!0},inert:l,children:[(0,s.jsxs)(fQ,{children:[(0,s.jsx)(j5,{nodes:a.nodes,positions:r,tones:K.boxes}),u&&(0,s.jsx)(j6,{divider:u})]}),null!==m&&v.has(m)&&r.has(m)&&(0,s.jsx)(i6,{box:v.get(m),position:r.get(m),onOpen:f,onTurnPage:g,onDetails:n,onOpenFile:o}),null!==ar&&(0,s.jsx)(jb,{words:function(a,b){let c,d;if(1===a.length){let c,d,e,f,[g]=a;return{kind:"one",id:gA(g),parts:gR((c=g.source,b.get(c)),(d=g.target,b.get(d)),g.count),sentence:function(a,b,c){let{who:d,verb:e,whom:f,imports:g}=gR(a,b,c);return`${d} ${e} ${f}, ${g}`}((e=g.source,b.get(e)),(f=g.target,b.get(f)),g.count)}}let e=a=>"portal"===b.get(a).kind?gQ(gP(b.get(a))):b.get(a).name,f=a.every(b=>b.target===a[0].target),g=!f&&a.every(b=>b.source===a[0].source),h=f?`Into ${gP((c=a[0].target,b.get(c)))}`:g?`From ${gP((d=a[0].source,b.get(d)))}`:"Lines here",i=a.map(a=>{let c,d;return{id:gA(a),name:f?e(a.source):g?e(a.target):`${gP((c=a.source,b.get(c)))} → ${gP((d=a.target,b.get(d)))}`,count:a.count}});return i.sort((a,b)=>b.count-a.count||(a.name<b.name?-1:+(a.name>b.name))||(a.id<b.id?-1:1)),{kind:"run",title:h,rows:i}}(ar.lines.map(a=>al.get(a)),v),at:ar,pinned:null!==D,cardRef:null===D?void 0:aq,held:D?.held,followRef:null===D?am:void 0,placedRef:null===D?an:void 0},null===D?`hover
7
+ ${ar.key}`:`pinned
8
+ ${ar.key}
9
+ ${ar.point.x},${ar.point.y}`)]})});function j8(a,b,c=!1){let d=[...""===a?[]:[`path=${encodeURIComponent(a).replaceAll("%2F","/")}`],...b>0?[`page=${b+1}`]:[],...c?["embed=vscode"]:[]];return 0===d.length?"/":`/?${d.join("&")}`}function j9(a){let b=new URLSearchParams(a),c=b.get("page")??"";return{path:b.get("path")??"",page:/^\d+$/.test(c)&&Number(c)>=1?Number(c)-1:0}}function ka(a){let b="object"==typeof a&&null!==a?a.mapDepth:void 0;return"number"==typeof b&&Number.isInteger(b)&&b>0?b:0}let kb=gs("outline","chevron-down","ChevronDown",[["path",{d:"M6 9l6 6l6 -6",key:"svg-0"}]]);function kc({entry:a,fallback:b}){return a?.remote?(0,s.jsxs)("span",{title:`${a.remote.owner}/${a.remote.name}`,className:"flex min-w-0 items-baseline text-text",children:[(0,s.jsx)("span",{"data-repo-owner":!0,className:"truncate after:content-['/'] group-data-[owner=hidden]/crumb:max-w-0 max-[360px]:hidden",children:a.remote.owner}),(0,s.jsx)("span",{className:"max-w-full shrink-0 truncate",children:a.remote.name})]}):(0,s.jsx)("span",{title:b,className:"truncate text-text",children:b})}function kd({repo:a,onSwitched:b,onHome:c}){let[d,e]=(0,t.useState)(null),[f,g]=(0,t.useState)(!1),[h,i]=(0,t.useState)(null),[j,k]=(0,t.useState)({left:0,width:320}),l=go(f,()=>g(!1)),m=(0,t.useCallback)(()=>{l.current&&k(gm(l.current,320,"start"))},[l]);gn(f,m),(0,t.useEffect)(()=>{gi.repos().then(e,()=>{})},[a]);let n=a.slice(a.lastIndexOf("/")+1),o=(0,s.jsx)(kc,{entry:d?.repos.find(b=>b.root===a),fallback:n}),p=(0,s.jsx)("button",{type:"button","data-testid":"repo-name",onClick:c,title:"Go to the top level",className:"flex min-w-0 rounded-[4px] px-0.5 hover:bg-node",children:o});return null===d||d.repos.length<2?p:(0,s.jsxs)("div",{ref:l,className:"relative min-w-0",children:[(0,s.jsxs)("div",{className:"flex min-w-0 items-center",children:[p,(0,s.jsx)("button",{type:"button","data-testid":"repo-menu",onClick:()=>{f||m(),g(a=>!a)},"aria-label":"Switch repository",title:"Switch repository",className:"grid h-6 w-5 shrink-0 place-items-center rounded-[4px] text-text-3 hover:bg-node hover:text-text",children:(0,s.jsx)(kb,{"aria-hidden":!0,size:14,stroke:1.75})})]}),f&&(0,s.jsx)("ul",{"data-testid":"repo-list","data-covers":!0,style:j,className:"absolute top-8 z-30 overflow-y-auto rounded-md border border-border bg-panel py-1 font-sans text-[13px]",children:d.repos.map(c=>(0,s.jsx)("li",{children:(0,s.jsxs)("button",{type:"button",onClick:()=>{var d;return d=c.root,void(g(!1),d!==a&&gi.setActiveRepo(d).then(b,a=>i(a instanceof gd?a.message:"Couldn't switch repos.")))},className:"block w-full px-3 py-2 text-left hover:bg-node",children:[(0,s.jsx)("span",{className:c.root===a?"font-medium text-text":"text-text",children:c.remote?`${c.remote.owner} / ${c.remote.name}`:c.name}),(0,s.jsx)("span",{title:c.root,className:"block truncate font-mono text-[12px] text-text-3",children:c.root})]})},c.root))}),h&&(0,s.jsx)("span",{title:h,className:"ml-2 block truncate text-[12px] text-danger",children:h})]})}let ke=gs("outline","search","Search",[["path",{d:"M3 10a7 7 0 1 0 14 0a7 7 0 1 0 -14 0",key:"svg-0"}],["path",{d:"M21 21l-6 -6",key:"svg-1"}]]);function kf(a){return"(file)"===a.symbol?"imports and exports":`${a.symbol} \xb7 ${a.startLine===a.endLine?`line ${a.startLine}`:`lines ${a.startLine}–${a.endLine}`}`}function kg({onPick:b,onClose:c}){var d;let e,f,g;g4();let[h,i]=i4(),[j,k]=(0,t.useState)(""),[l,m]=(0,t.useState)(null),[n,o]=(0,t.useState)(null),[p,q]=(0,t.useState)(0),r=(0,t.useRef)(null),u=(0,t.useRef)(null),[v,w]=(0,t.useState)(null);(0,t.useEffect)(()=>{r.current?.focus();let b=!0;return a.A(37984).then(a=>{b&&w(()=>(b,c)=>a.highlightCode(b,c))}),()=>{b=!1}},[]),(0,t.useEffect)(()=>{let a=j.trim();if(""===a)return;let b=new AbortController,c=setTimeout(()=>{gi.search(a,40,b.signal).then(a=>{m(a),o(null),q(0)},a=>{a instanceof gd&&o(a)})},150);return()=>{clearTimeout(c),b.abort()}},[j]);let x=(e=(d=null!==l&&l.query===j.trim()?l.hits:[]).filter(a=>"folder"===a.kind),{folders:e,files:f=d.filter(a=>"file"===a.kind),ordered:[...e,...f]}),y=x.ordered,z=Math.min(p,y.length-1);return(0,t.useEffect)(()=>{u.current?.querySelector('[aria-selected="true"]')?.scrollIntoView({block:"nearest"})},[z]),(0,s.jsx)("div",{className:"pointer-events-auto fixed inset-0 z-30 bg-canvas/70",onClick:c,children:(0,s.jsxs)("div",{role:"dialog","aria-label":"Search",onClick:a=>a.stopPropagation(),className:"mx-auto mt-[12vh] w-[640px] max-w-[92vw] overflow-hidden rounded-[6px] border border-border bg-panel",children:[(0,s.jsxs)("div",{ref:h,children:[(0,s.jsxs)("div",{className:"flex items-center gap-3 border-b border-divider px-4",children:[(0,s.jsx)(ke,{"aria-hidden":!0,size:16,stroke:1.75,className:"shrink-0 text-text-2"}),(0,s.jsx)("input",{ref:r,value:j,onChange:a=>k(a.target.value),onKeyDown:a=>{"Escape"===a.key?c():"ArrowDown"===a.key?(a.preventDefault(),q(Math.min(z+1,y.length-1))):"ArrowUp"===a.key?(a.preventDefault(),q(Math.max(z-1,0))):"Enter"===a.key&&y[z]&&b(y[z])},placeholder:"Search files and concepts",spellCheck:!1,"aria-label":"Search",className:"w-full bg-transparent py-3 text-[15px] text-text placeholder:text-text-2 focus:outline-none"})]}),n&&(0,s.jsx)("p",{className:"px-4 py-3 text-[13px] text-danger",children:n.message}),l?.note&&y.length>0&&(0,s.jsx)("p",{className:"px-4 pt-2 text-[12px] text-text-2",children:l.note})]}),(0,s.jsxs)("ul",{ref:u,role:"listbox",style:{maxHeight:null===(g=i?.height??null)?void 0:`min(52vh, calc(88vh - 10px - ${g}px))`},className:"max-h-[52vh] overflow-y-auto py-1",children:[y.map((a,c)=>(0,s.jsxs)(t.Fragment,{children:[(0===c||c===x.folders.length)&&(0,s.jsxs)("li",{role:"presentation",className:"px-4 pb-1 pt-2 text-[12px] font-medium text-text-2",children:["folder"===a.kind?"Folders":"Files"," ",(0,s.jsx)("span",{className:"font-normal",children:gE("folder"===a.kind?x.folders.length:x.files.length)})]}),(0,s.jsx)("li",{role:"option","aria-selected":c===z,children:(0,s.jsxs)("button",{type:"button","data-hit":a.path,onMouseEnter:()=>q(c),onClick:()=>b(a),className:`flex w-full gap-3 px-4 py-2 text-left ${c===z?"bg-row-sel":"hover:bg-node"}`,children:["folder"===a.kind?(0,s.jsx)(gw,{"aria-hidden":!0,size:16,stroke:1.75,className:"mt-0.5 shrink-0 text-glyph-dim"}):(0,s.jsx)(gv,{"aria-hidden":!0,size:16,stroke:1.75,className:"mt-0.5 shrink-0 text-text-2"}),(0,s.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,s.jsx)("span",{title:a.path,className:"block truncate font-mono text-[13px] text-text",children:a.path}),a.tagline&&(0,s.jsx)("span",{title:a.tagline,className:"block truncate text-[13px] text-text-2",children:a.tagline}),a.code&&(0,s.jsxs)("span",{title:`${kf(a.code)}, ${a.code.snippet}`,className:"block truncate font-mono text-[12px] text-text-2",children:[kf(a.code),","," ",v?(0,s.jsx)("span",{className:"syntax",dangerouslySetInnerHTML:{__html:v(a.code.snippet,(0,gl.b)(a.path))}}):(0,s.jsx)("span",{className:"syntax",children:a.code.snippet})]})]})]})})]},a.path)),""!==j.trim()&&null!==l&&l.query===j.trim()&&0===y.length&&(0,s.jsx)("li",{className:"px-4 py-3 text-[13px] text-text-2",children:l.note??"Nothing matched."})]})]})})}let kh=new Intl.Collator("en",{numeric:!0,sensitivity:"base"}),ki=(a,b)=>kh.compare(a.name,b.name)||(a.name<b.name?-1:+(a.name>b.name)),kj={selected:"bg-row-sel text-text",linked:"text-text hover:bg-node",plain:"text-text-2 hover:bg-node"},kk={selected:"bg-accent",linked:"bg-linked-glyph",plain:"bg-glyph-dim"};function kl({count:a,tall:b,children:c}){return(0,s.jsxs)("div",{className:`flex shrink-0 items-center justify-between gap-2 pl-[14px] text-[11.5px] text-text-3 ${b?"h-10 pr-2":"h-[34px] pr-[14px]"}`,children:[(0,s.jsx)("span",{className:"truncate",children:"Explorer"}),(0,s.jsxs)("span",{className:"flex shrink-0 items-center gap-1.5 whitespace-nowrap",children:[a,c]})]})}function km({row:a,tone:b,onPick:c,onOpen:d}){let e="folder"===a.kind;return(0,s.jsx)("li",{children:(0,s.jsxs)("button",{type:"button","data-explorer-row":a.path,"aria-current":"selected"===b?"true":void 0,"aria-label":e?a.label:void 0,title:a.path,onClick:b=>c(a.path,b),onDoubleClick:e?()=>d(a.path):void 0,className:`grid h-[26px] w-full grid-cols-[16px_minmax(0,1fr)_36px_minmax(44px,max-content)] items-center gap-2 pl-[14px] pr-3 text-left focus-visible:-outline-offset-2 ${kj[b]}`,children:[(0,s.jsx)(e?gw:gv,{"aria-hidden":!0,size:14,stroke:1.75,className:"text-text-3"}),(0,s.jsx)("span",{className:`truncate font-mono text-[12.5px] ${e?"":"col-span-3"}`,children:a.name}),e&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("span",{"aria-hidden":!0,className:`h-[3px] rounded-[2px] ${kk[b]}`,style:{width:a.bar}}),(0,s.jsx)("span",{className:"whitespace-nowrap text-right text-[11.5px] tabular-nums text-text-3",children:gE(a.files)})]})]})})}function kn({view:a,selected:b,linked:c,onPick:d,onOpen:e}){let f=(0,t.useRef)(null);return(0,t.useEffect)(()=>(function(a,b){let c=null!==a&&null!==b?a.querySelector(`[data-explorer-row="${CSS.escape(b)}"]`):null;if(null===a||null===c)return;let d=c.offsetTop,e=d+c.offsetHeight;d<a.scrollTop?a.scrollTop=d:e>a.scrollTop+a.clientHeight&&(a.scrollTop=e-a.clientHeight)})(f.current,b),[b,a]),(0,s.jsxs)("div",{ref:f,className:"relative min-h-0 flex-1 overflow-y-auto pb-[10px]",children:[(0,s.jsx)("ul",{"aria-label":"Folders and files",children:a.rows.map(a=>{var f;return(0,s.jsx)(km,{row:a,tone:(f=a.path,f===b?"selected":c.has(f)?"linked":"plain"),onPick:d,onOpen:e},a.path)})}),null!==a.pageLine&&(0,s.jsx)("p",{className:"px-[14px] pt-2 text-[11.5px] leading-4 text-text-3",children:a.pageLine})]})}function ko({id:a,view:b,selected:c,linked:d,onPick:e,onOpen:f,onClose:g}){let h=(0,t.useRef)(null);return(0,t.useEffect)(()=>{let a=h.current,b=a?.querySelector('[aria-current="true"]')??a?.querySelector("[data-explorer-row]");b?.focus({preventScroll:!0})},[]),(0,s.jsxs)("div",{ref:h,id:a,role:"dialog","aria-label":"Explorer",className:"absolute bottom-0 left-full top-0 z-20 flex w-[236px] max-w-[calc(100vw_-_48px)] flex-col border-r border-divider bg-panel",children:[(0,s.jsx)(kl,{count:b.count,tall:!0,children:(0,s.jsx)("button",{type:"button",onClick:g,"aria-label":"Close the explorer",className:"grid h-6 w-6 place-items-center rounded-md text-text-2 hover:bg-node hover:text-text",children:(0,s.jsx)(gx,{"aria-hidden":!0,size:16,stroke:1.75})})}),(0,s.jsx)(kn,{view:b,selected:c,linked:d,onPick:e,onOpen:f})]})}function kp({view:a,selected:b,linked:c,onSelect:d,onOpen:e}){let[f,g]=(0,t.useState)(!1),[h,i]=(0,t.useState)(0),j=(0,t.useId)(),k=(0,t.useRef)(null),l=(0,t.useCallback)(()=>{g(!1),i(0)},[]),m=go(f,l),n=(0,t.useCallback)(()=>{m.current?.contains(document.activeElement)&&k.current?.focus(),l()},[l,m]);return(0,t.useEffect)(()=>{if(0===h)return;let a=setTimeout(n,350);return()=>clearTimeout(a)},[h,n]),(0,t.useEffect)(()=>{if(!f)return;let a=a=>{"Escape"===a.key&&(a.stopPropagation(),n())};return window.addEventListener("keydown",a,!0),()=>window.removeEventListener("keydown",a,!0)},[f,n]),(0,s.jsxs)("aside",{ref:m,"aria-label":"Explorer",onBlur:a=>{f&&a.relatedTarget instanceof Node&&!a.currentTarget.contains(a.relatedTarget)&&l()},className:"relative flex h-full w-full flex-col items-center border-r border-divider bg-panel pt-1.5",children:[(0,s.jsx)("button",{ref:k,type:"button","aria-label":"Open the explorer",title:"Explorer","aria-expanded":f,"aria-controls":f?j:void 0,onClick:()=>f?n():g(!0),className:`grid h-7 w-7 shrink-0 place-items-center rounded-[5px] ${f?"bg-node text-text":"text-text-2 hover:bg-node hover:text-text"}`,children:(0,s.jsx)(gw,{"aria-hidden":!0,size:18,stroke:1.75})}),f&&(0,s.jsx)(ko,{id:j,view:a,selected:b,linked:c,onPick:(a,b)=>{d(a),0===b.detail?n():i(a=>a+1)},onOpen:a=>{e(a),n()},onClose:n})]})}let kq=(0,t.memo)(function({level:a,selected:b,linked:c,form:d,onSelect:e,onOpen:f}){let g=(0,t.useMemo)(()=>{var b,c,d;let e,f,g,h;return e=jk(b=a.nodes),f=b.filter(a=>"folder"===a.kind).sort((a,b)=>b.fileCount-a.fileCount||ki(a,b)),g=b.filter(a=>"file"===a.kind).sort(ki),{rows:h=[...f.map(a=>{var b;let c;return{kind:"folder",path:a.path,name:a.name,files:a.fileCount,bar:(b=a.fileCount,e<=0?3:Math.min(36,Math.max(3,36*Math.log10(Math.max(0,b)+1)/Math.log10(e+1)))),label:`${a.name}, ${c=a.fileCount,`${gE(c)} ${1===c?"file":"files"}`}`}}),...g.map(a=>({kind:"file",path:a.path,name:a.name}))],count:(c=h.length,`${gE(c)} ${1===c?"item":"items"}`),pageLine:(d=h.length,a.pageCount<=1?null:`Page ${a.page+1} of ${a.pageCount}, ${gE(d)} of ${gE(d+a.hiddenCount)} folders and files`)}},[a]);return"rail"===d?(0,s.jsx)(kp,{view:g,selected:b,linked:c,onSelect:e,onOpen:f}):(0,s.jsxs)("aside",{"aria-label":"Explorer",className:"flex h-full min-h-0 w-full min-w-0 flex-col overflow-hidden border-r border-divider bg-panel",children:[(0,s.jsx)(kl,{count:g.count}),(0,s.jsx)(kn,{view:g,selected:b,linked:c,onPick:a=>e(a),onOpen:f})]})});var kr=a.i(67161),kr=kr;function ks({enabled:a}){return(0,s.jsx)("button",{type:"button","data-testid":"back",disabled:!a,onClick:()=>window.history.back(),"aria-label":"Back",title:a?"Back to where you were":"Back (nothing to go back to yet)",className:"grid h-7 w-7 shrink-0 place-items-center rounded-md text-text hover:bg-node max-[360px]:w-6 disabled:opacity-35 disabled:hover:bg-transparent",children:(0,s.jsx)(gt,{"aria-hidden":!0,size:18,stroke:2})})}let kt=()=>()=>{},ku={field:"max-[640px]:min-w-0 max-[640px]:w-7 max-[640px]:flex-none max-[640px]:cursor-pointer max-[640px]:justify-center max-[640px]:p-0",words:"max-[640px]:hidden"},kv={field:"max-[1000px]:min-w-0 max-[1000px]:w-7 max-[1000px]:flex-none max-[1000px]:cursor-pointer max-[1000px]:justify-center max-[1000px]:p-0 max-[360px]:hidden",words:"max-[1000px]:hidden"};function kw({crumb:a,onSearch:b,onHelp:c,embedded:d,canGoBack:e,toolbar:f,status:g}){let h=(0,t.useSyncExternalStore)(kt,()=>/Mac|iPhone|iPad/.test(navigator.platform),()=>!1),i=f?kv:ku,j=(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(kr.Image,{src:"/icon.svg",alt:"",width:18,height:18,unoptimized:!0,className:"shrink-0"}),(0,s.jsx)("span",{className:"text-[13px] font-semibold text-text max-[900px]:hidden",children:"Nebulosity"})]});return(0,s.jsxs)("header",{className:`relative z-20 flex shrink-0 items-center gap-3 border-b border-divider bg-panel pl-3 pr-2.5 max-[360px]:gap-1.5 max-[360px]:pl-2 max-[360px]:pr-1.5 ${d?"h-[38px]":"h-[42px]"}`,children:[(0,s.jsxs)("div",{className:"flex min-w-0 flex-[1_1_auto] items-center gap-2.5 max-[360px]:gap-1",children:[!d&&(0,s.jsx)("span",{className:"flex shrink-0 items-center gap-2 max-[360px]:hidden",children:j}),!d&&(0,s.jsx)("span",{"aria-hidden":!0,className:"h-4 w-px shrink-0 bg-divider max-[360px]:hidden"}),(0,s.jsx)(ks,{enabled:e}),a]}),(0,s.jsxs)("button",{type:"button",onClick:b,"data-testid":"search-button","aria-label":"Search files and concepts",title:`Search files and concepts (${h?"⌘K":"Ctrl K"})`,className:`flex h-7 min-w-[160px] flex-[0_1000_440px] cursor-text items-center gap-2 rounded-[5px] border border-border bg-canvas pl-2.5 pr-1.5 text-[13px] text-text-3 hover:border-text-3 ${i.field}`,children:[(0,s.jsx)(ke,{"aria-hidden":!0,size:14,stroke:2,className:"shrink-0"}),(0,s.jsx)("span",{className:`w-0 flex-1 truncate text-left ${i.words}`,children:"Search files and concepts"}),(0,s.jsx)("kbd",{className:"shrink-0 rounded-[4px] border border-border px-1.5 font-sans text-[11.5px] leading-[17px] text-text-3 max-[1000px]:hidden",children:h?"⌘K":"Ctrl K"})]}),(0,s.jsxs)("div",{className:`flex items-center justify-end gap-1.5 ${f?"shrink-0":"flex-1 max-[640px]:flex-none"}`,children:[f,!d&&(0,s.jsx)("button",{type:"button",onClick:c,"data-testid":"help-button","aria-label":"How to use the Map",title:"How to use the Map (?)",className:"grid h-7 w-7 shrink-0 place-items-center rounded-[5px] border border-border text-[13px] font-semibold text-text-2 hover:border-text-3 hover:text-text max-[480px]:hidden",children:"?"}),g]})]})}function kx({doorways:a,agent:b,quiet:c}){return(0,s.jsxs)("p",{"data-testid":"legend",className:"shrink-0 border-t border-divider px-3.5 py-2.5 text-[12px] leading-[1.45] text-text-3",children:["Dot size shows how many files a folder has. Line weight, and the number on a line, show how many imports it carries. Arrows point at the code being used. Folders are stacked cards, and a page marks a single file.",a&&" A dashed box is a doorway to another page of this folder.",b&&" An orange ring is what Claude Code is touching right now.",c&&" In a busy folder, hover a box to see its lines."]})}let ky=gs("outline","check","Check",[["path",{d:"M5 12l5 5l10 -10",key:"svg-0"}]]),kz=gs("outline","chevron-left","ChevronLeft",[["path",{d:"M15 6l-6 6l6 6",key:"svg-0"}]]),kA=gs("outline","chevron-right","ChevronRight",[["path",{d:"M9 6l6 6l-6 6",key:"svg-0"}]]),kB=gs("outline","dots","Dots",[["path",{d:"M4 12a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-0"}],["path",{d:"M11 12a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-1"}],["path",{d:"M18 12a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-2"}]]),kC=[{id:"all",label:"All",title:"Highlight every line of the selected box",dot:"bg-text"},{id:"uses",label:"Uses",title:"Highlight only its lines to what it uses, the rest in gray",mark:gz.uses.fill,dot:gz.uses.fill},{id:"usedBy",label:"Used by",title:"Highlight only its lines from what uses it, the rest in gray",mark:gz.usedBy.fill,dot:gz.usedBy.fill}],kD="Select a box to choose which of its lines are highlighted",kE={all:"",uses:"The selected box uses nothing on this page",usedBy:"Nothing on this page uses the selected box"},kF="grid h-6 min-w-[26px] shrink-0 place-items-center rounded-[5px] border border-border px-2 text-[12.5px] text-text-2 hover:border-text-3 hover:text-text disabled:opacity-40 disabled:hover:border-border disabled:hover:text-text-2";function kG({on:a}){return(0,s.jsx)("span",{"aria-hidden":!0,className:`grid h-3.5 w-3.5 shrink-0 place-items-center rounded-[3px] ${a?"bg-accent text-on-accent":"border border-border"}`,children:a&&(0,s.jsx)(ky,{size:11,stroke:3})})}function kH({level:a,strongOnly:b,onStrongOnly:c,busy:d,showAllLines:e,onShowAllLines:f,onTurnPage:g,canvasWidth:h,inHeader:i,narrow:j,helpInMenu:k,onHelp:l,searchInMenu:m,onSearch:n,hasSelection:o,direction:p,onDirection:q,emptySides:r}){let t=es(),u=dP(),v=()=>{let a=jU(new Map(t.getNodes().map(a=>[a.id,a.position]))),b=jV(t.getEdges().flatMap(({data:a})=>a?[{points:a.points,width:a.width,headHalf:jj(a.headWidth??a.width).half}]:[])),{width:c,height:d}=u.getState();t.setViewport(function(a,b,c){if(0===a.width||0===a.height||0===c.width||0===c.height)return{x:c.width/2-(a.x+a.width/2),y:c.height/2-(a.y+a.height/2),zoom:1};let d=j$(a,b,c),e=jZ(d,c);return{x:c.width/2-d.middle.x*e,y:c.height/2-d.middle.y*e,zoom:e}}(a,b,{width:c,height:d}),{duration:0})},w=!i&&h>=470,x=!i&&h>=330,y=!i&&h>=500,z=a.pageCount>1,A=!i&&h>=(z?760:600),B=i&&j,C=z&&h>=260&&!B,D=function(a){let b=a.edges.filter(a=>a.source!==a.target);if(0===b.length)return null;let c=[...b].sort((a,b)=>b.count-a.count||(a.source<b.source?-1:+(a.source>b.source))||(a.target<b.target?-1:+(a.target>b.target)))[0],d=b=>a.nodes.find(a=>a.path===b)?.name??b;return{from:d(c.source),to:d(c.target),count:c.count,total:b.reduce((a,b)=>a+b.count,0)}}(a),E=0===gy(a.edges,null),F=E?"Every line on this page carries at least 2% of the heaviest line's imports, so there's nothing to hide":"Draw only the lines with at least 2% of the heaviest line's imports, and every line of the box you select or hover",G=[];m&&G.push({label:"Search files and concepts",act:n}),z&&!C&&G.push({label:`Previous page (${a.page+1} of ${a.pageCount})`,disabled:0===a.page,act:()=>g(a.page-1)},{label:"Next page",disabled:a.page>=a.pageCount-1,act:()=>g(a.page+1)}),B&&G.push({label:"Show the whole level",act:v}),A||G.push({group:"Lines of the selected box",items:kC.map(a=>{let b=r.includes(a.id);return{label:a.label,radio:!0,on:p===a.id,dot:a.dot,disabled:!o||b,title:o?b?kE[a.id]:a.title:kD,act:()=>q(a.id)}})}),w||G.push({label:"Strong links only",on:b,disabled:E,title:F,act:()=>c(!b)}),d&&(i||!y)&&G.push({label:"Show all lines",on:e,act:()=>f(!e)}),x||G.push({label:"Zoom in",act:()=>void t.zoomIn({duration:0})},{label:"Zoom out",act:()=>void t.zoomOut({duration:0})}),k&&G.push({label:"How to use the Map",act:l});let H=(0,s.jsxs)("div",{className:"flex shrink-0 items-center gap-1.5",children:[C&&(0,s.jsx)(kI,{level:a,onTurn:g,short:i||h<400}),A&&(0,s.jsx)(kJ,{direction:p,onDirection:q,hasSelection:o,emptySides:r}),w&&(0,s.jsxs)("label",{title:F,className:`mr-1 flex items-center gap-[7px] rounded-[4px] text-[13px] text-text-2 has-[:focus-visible]:outline-2 has-[:focus-visible]:outline-offset-2 has-[:focus-visible]:outline-focus ${E?"cursor-default opacity-40":"cursor-pointer hover:text-text"}`,children:[(0,s.jsx)("input",{type:"checkbox","data-testid":"strong-only",checked:b,disabled:E,onChange:a=>c(a.target.checked),className:"sr-only"}),(0,s.jsx)(kG,{on:b}),"Strong links only"]}),x&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("button",{type:"button",onClick:()=>void t.zoomOut({duration:0}),"aria-label":"Zoom out",title:"Zoom out",className:kF,children:"−"}),(0,s.jsx)("button",{type:"button",onClick:()=>void t.zoomIn({duration:0}),"aria-label":"Zoom in",title:"Zoom in",className:kF,children:"+"})]}),!B&&(0,s.jsx)("button",{type:"button","data-testid":"fit",onClick:v,title:"Show the whole level",className:kF,children:"Fit"}),G.length>0&&(0,s.jsx)(kL,{items:G})]});return i?H:(0,s.jsxs)("div",{"data-testid":"toolbar",className:"flex h-9 shrink-0 items-center justify-between gap-3 border-b border-divider pl-3.5 pr-2 text-[13px]",children:[(0,s.jsx)("div",{className:"flex min-w-0 items-center gap-2 text-text-2",children:y&&(d?(0,s.jsxs)("span",{"data-testid":"lines-note",className:"flex min-w-0 items-center gap-2",children:[(0,s.jsx)("span",{className:"truncate",title:e?`All ${gE(a.edges.length)} lines shown`:"A busy folder, so lines show when you hover a box, or select it",children:e?`All ${gE(a.edges.length)} lines shown`:"A busy folder, so lines show when you hover a box"}),(0,s.jsx)("button",{type:"button","data-testid":"lines-toggle",onClick:()=>f(!e),className:"shrink-0 text-text underline decoration-text-3 underline-offset-2 hover:decoration-text",children:e?"Show on hover only":"Show all lines"})]}):D&&(0,s.jsxs)("span",{"data-testid":"finding",className:"truncate",title:`Heaviest link is ${D.from} → ${D.to}, ${gE(D.count)} of ${gE(D.total)} imports between these boxes`,children:["Heaviest link is ",(0,s.jsxs)("span",{className:"font-mono text-[12.5px] text-text",children:[D.from," → ",D.to]}),", ",gE(D.count)," of ",gE(D.total)," imports"]}))}),H]})}function kI({level:a,onTurn:b,short:c}){let d,e=c=>{let d="left"===c?a.page-1:a.page+1;return(0,s.jsx)("button",{type:"button","data-testid":`page-${"left"===c?"previous":"next"}`,disabled:d<0||d>=a.pageCount,onClick:()=>b(d),"aria-label":`${"left"===c?"Previous":"Next"} page`,title:`${"left"===c?"Previous":"Next"} page (${"left"===c?"←":"→"})`,className:`${kF} px-1`,children:(0,s.jsx)("left"===c?kz:kA,{"aria-hidden":!0,size:14,stroke:2})})};return(0,s.jsxs)("span",{className:"mr-1 flex items-center gap-1",children:[e("left"),(0,s.jsx)("span",{"data-testid":"page-note",title:(d=a.nodes.filter(a=>"portal"!==a.kind).length,`Page ${a.page+1} of ${a.pageCount} \xb7 ${gE(d)} of ${gE(d+a.hiddenCount)} folders and files`),className:"whitespace-nowrap px-1 text-[12.5px] text-text-2",children:c?`${a.page+1} / ${a.pageCount}`:`Page ${a.page+1} of ${a.pageCount}`}),e("right")]})}function kJ({direction:a,onDirection:b,hasSelection:c,emptySides:d}){let e=kC.filter(a=>c&&!d.includes(a.id));return(0,s.jsx)("span",{role:"radiogroup","aria-label":"Lines of the selected box","data-testid":"sides",title:c?void 0:kD,onKeyDown:c=>{let d=e.findIndex(b=>b.id===a),f="ArrowRight"===c.key||"ArrowDown"===c.key?e[(d+1)%e.length]:"ArrowLeft"===c.key||"ArrowUp"===c.key?e[(d-1+e.length)%e.length]:"Home"===c.key?e[0]:"End"===c.key?e[e.length-1]:void 0;void 0!==f&&(c.preventDefault(),c.stopPropagation(),b(f.id),c.currentTarget.querySelector(`[data-side="${f.id}"]`)?.focus())},className:`mr-1.5 flex h-6 shrink-0 items-stretch rounded-[5px] border border-border p-px text-[12.5px] ${c?"":"opacity-40"}`,children:kC.map(e=>{let f=e.id===a,g=d.includes(e.id);return(0,s.jsxs)("button",{type:"button",role:"radio","aria-checked":f,"data-side":e.id,disabled:!c||g,tabIndex:f?0:-1,title:c?g?kE[e.id]:e.title:kD,onClick:()=>b(e.id),className:`relative whitespace-nowrap rounded-[4px] px-2 leading-none disabled:cursor-default ${f?"bg-node text-text":"text-text-2 hover:text-text disabled:hover:text-text-2"} ${g&&c?"opacity-40":""}`,children:[e.label,f&&c&&e.mark&&(0,s.jsx)("span",{"aria-hidden":!0,className:`absolute inset-x-1.5 bottom-0 h-0.5 rounded-[1px] ${e.mark}`})]},e.id)})})}function kK({on:a,dot:b}){return(0,s.jsx)("span",{"aria-hidden":!0,className:"grid h-3.5 w-3.5 shrink-0 place-items-center rounded-full border border-border",children:a&&(0,s.jsx)("span",{className:`h-1.5 w-1.5 rounded-full ${b}`})})}function kL({items:a}){let[b,c]=(0,t.useState)(!1),[d,e]=(0,t.useState)({right:0,width:220}),f=go(b,()=>c(!1)),g=(0,t.useCallback)(()=>{f.current&&e(gm(f.current,220,"end"))},[f]);gn(b,g);let h=(0,t.useId)(),i=a=>(0,s.jsxs)("button",{type:"button",role:a.radio?"menuitemradio":void 0===a.on?"menuitem":"menuitemcheckbox","aria-checked":a.on,disabled:a.disabled,title:a.title,onClick:()=>{a.act(),(void 0===a.on||a.radio)&&c(!1)},className:"flex w-full items-center gap-2 rounded-[4px] px-2.5 py-1.5 text-left text-text-2 hover:bg-node hover:text-text disabled:opacity-40 disabled:hover:bg-transparent disabled:hover:text-text-2",children:[a.radio?(0,s.jsx)(kK,{on:a.on??!1,dot:a.dot??"bg-text"}):void 0!==a.on&&(0,s.jsx)(kG,{on:a.on}),(0,s.jsx)("span",{title:a.label,className:"truncate",children:a.label})]},a.label);return(0,s.jsxs)("div",{ref:f,className:"relative",children:[(0,s.jsx)("button",{type:"button","data-testid":"toolbar-more","aria-label":"More",title:"More","aria-expanded":b,onClick:()=>{b||g(),c(a=>!a)},className:`${kF} px-1`,children:(0,s.jsx)(kB,{"aria-hidden":!0,size:14,stroke:2})}),b&&(0,s.jsx)("div",{role:"menu","data-testid":"toolbar-menu","data-covers":!0,style:d,className:"absolute top-8 z-30 overflow-y-auto rounded-md border border-border bg-panel p-1 text-[13px]",children:a.map((b,c)=>"group"in b?(0,s.jsxs)("div",{role:"group","aria-labelledby":`${h}-${c}`,className:`border-divider ${c>0?"mt-1 border-t pt-1":""} ${c<a.length-1?"mb-1 border-b pb-1":""}`,children:[(0,s.jsx)("p",{id:`${h}-${c}`,title:b.group,className:"truncate px-2.5 pb-0.5 pt-1 text-[11.5px] text-text-3",children:b.group}),b.items.map(i)]},b.group):i(b))})]})}let kM={ok:"bg-ok",busy:"bg-text-3",warn:"bg-danger",off:"bg-text-3"},kN=["structure","summaries","embeddings"];function kO({status:a,recent:b,connected:c,highlightCount:d,onClear:e,items:f,weakHidden:g,embedded:h,dots:i}){let[j,k]=(0,t.useState)(0);(0,t.useEffect)(()=>{let a=setInterval(()=>k(Date.now()),1e3);return()=>clearInterval(a)},[]);let l=b[0],m=void 0!==l?{text:hw(l),title:function(a,b){let c=a=>b>0?` \xb7 ${gG(Math.max(0,b-Date.parse(a.at)))}`:"",[d,...e]=a;return void 0===d?"":[`${hw(d)}${c(d)}`,...d.paths.length>1?d.paths:[],...e.map(a=>`Earlier: ${hw(a)}${c(a)}`)].join("\n")}(b,j),active:!0}:{text:c?"Claude Code, no tool calls yet":"Claude Code isn't connected",title:c?"Claude Code is connected to the live channel":"Claude Code isn't connected to the live channel",active:!1},n=(0,s.jsx)("span",{"aria-hidden":!0,className:`h-1.5 w-1.5 shrink-0 rounded-full ${m.active?"bg-agent":c?"bg-text-3":"border border-text-3"}`});if(i)return(0,s.jsxs)("span",{className:"flex shrink-0 items-center gap-2.5 pl-1",children:[(0,s.jsx)(kP,{status:a,compact:!0}),(0,s.jsx)("span",{title:`${m.text}. ${m.title}`,className:"grid h-6 w-4 place-items-center",children:n})]});let o=0===d?null:`${d.toLocaleString("en-US")} highlighted`;return(0,s.jsxs)("footer",{"data-testid":"activity-bar",className:"relative z-20 flex h-6 shrink-0 items-center gap-4 border-t border-divider bg-panel px-3 text-[11.5px] text-text-3",children:[(0,s.jsx)(kP,{status:a,compact:!1}),!h&&null!==a&&(0,s.jsxs)("span",{className:"shrink-0 whitespace-nowrap max-[560px]:hidden",children:[gE(a.stages.structure.total)," files"]}),(0,s.jsxs)("span",{className:"flex min-w-0 items-center gap-1.5",title:m.title,children:[n,(0,s.jsx)("span",{className:`truncate max-[420px]:hidden ${m.active?"text-text-2":""}`,children:m.text}),m.active&&j>0&&(0,s.jsx)("span",{className:"shrink-0 max-[800px]:hidden",children:gG(Math.max(0,j-Date.parse(l.at)))})]}),null!==o&&(0,s.jsxs)("span",{className:"flex shrink-0 items-center gap-2",children:[(0,s.jsx)("span",{className:"max-[640px]:hidden",children:o}),(0,s.jsx)("button",{type:"button",onClick:e,title:"Clear Claude Code's highlights (Esc)",className:"text-text-2 underline decoration-text-3 underline-offset-2 hover:text-text",children:"Clear"})]}),(0,s.jsxs)("span",{className:"ml-auto shrink-0 whitespace-nowrap max-[800px]:hidden",children:[gE(f)," ",1===f?"item":"items",g>0?`, ${gE(g)} weak ${1===g?"link":"links"} hidden`:""]}),!h&&(0,s.jsx)("span",{className:"shrink-0 whitespace-nowrap max-[1100px]:hidden",children:"Ctrl K to search"})]})}function kP({status:a,compact:b}){let[c,d]=(0,t.useState)(!1),[e,f]=(0,t.useState)(null),g=go(c,()=>d(!1)),[h,i]=(0,t.useState)({right:0,width:340}),j=(0,t.useCallback)(()=>{g.current&&i(gm(g.current,340,"end"))},[g]);if(gn(c&&b,j),null===a)return null;let k=function(a){for(let b of gJ)if("running"===a.stages[b].state)return{tone:"busy",text:`${gI[b]}${gK(a.stages[b])}`};for(let b of gJ)if("failed"===a.stages[b].state)return{tone:"warn",text:`${gH[b]} failed`};if("ready"!==a.stages.structure.state)return{tone:"warn",text:"Not indexed yet"};if("off"===a.stages.summaries.state)return{tone:"off",text:"Summaries off (no API key)"};for(let b of gJ){let c=a.stages[b];if("idle"===c.state&&c.total>c.done)return{tone:"busy",text:`${gH[b]}${gK(c)}`}}return{tone:"ok",text:"Up to date"}}(a);return(0,s.jsxs)("div",{ref:g,className:"relative flex min-w-0 shrink-0 items-center",children:[(0,s.jsxs)("button",{type:"button","data-testid":"status-pill",onClick:()=>{!c&&b&&j(),d(a=>!a)},"aria-expanded":c,title:`${k.text}. The index status, and Re-index`,className:"flex min-w-0 items-center gap-1.5 rounded-[4px] px-0.5 hover:text-text",children:[(0,s.jsx)("span",{"aria-hidden":!0,className:`h-1.5 w-1.5 shrink-0 rounded-full ${kM[k.tone]}`}),!b&&(0,s.jsx)("span",{className:"truncate max-[420px]:hidden",children:k.text})]}),c&&(0,s.jsxs)("div",{"data-testid":"status-menu","data-covers":!0,style:b?h:{width:"min(340px, calc(100vw - 24px))",maxHeight:"calc(100vh - 80px)"},className:`absolute z-30 space-y-3 overflow-y-auto rounded-md border border-border bg-panel p-3 text-[12px] text-text-2 ${b?"top-7":"bottom-6 left-0"}`,children:[kN.map(b=>{var c;return(0,s.jsxs)("div",{children:[(0,s.jsx)("div",{className:"text-[13px] text-text",children:(c=a.stages[b],`${gH[b]}${gK(c)}, ${c.state}`)}),a.stages[b].note&&(0,s.jsx)("div",{children:a.stages[b].note})]},b)}),(0,s.jsx)("div",{className:"flex items-center justify-between gap-3 border-t border-divider pt-3",children:(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("span",{className:"truncate",title:e??`Index version ${a.indexVersion}`,children:e??`Index version ${a.indexVersion}`}),(0,s.jsx)("button",{type:"button",onClick:()=>{f("Starting…"),gi.reindex(a=>f(`${a.stage} ${gE(a.done)} / ${gE(a.total)}`)).then(a=>f(`Re-indexed ${gE(a.files)} files in ${(a.totalMs/1e3).toFixed(1)} s`),a=>f(a instanceof gd?a.message:"The re-index failed"))},className:"shrink-0 rounded-[5px] border border-border px-2 py-0.5 text-[12.5px] text-text hover:border-text-3",children:"Re-index"})]})})]})]})}let kQ=()=>()=>{};function kR(){return`${document.documentElement.clientWidth}x${window.innerHeight}`}function kS(a){window.addEventListener("resize",a);let b=new ResizeObserver(a);return b.observe(document.documentElement),()=>{window.removeEventListener("resize",a),b.disconnect()}}let kT=a=>`${a.path}\0${a.page}`,kU="min(320px, calc(100% - 56px))",kV=a=>`${a.repo}\0${a.path}\0${a.page}`;function kW(a){let b=requestAnimationFrame(()=>{b=requestAnimationFrame(a)});return()=>cancelAnimationFrame(b)}let kX=(a,b,c)=>({repo:c.repo,version:c.indexVersion,levels:new Map(null!==a&&a.repo===c.repo&&a.version===c.indexVersion?a.levels:[]).set(kT(b),c)});function kY(){var a;let b,c,{status:d,error:e,refresh:f}=function(){let[a,b]=(0,t.useState)(null),[c,d]=(0,t.useState)(null),[e,f]=(0,t.useState)(0);return(0,t.useEffect)(()=>{let a=new AbortController;gi.status(a.signal).then(a=>{b(a),d(null)},a=>{a instanceof gd&&d(a)});let c=setTimeout(()=>f(a=>a+1),2e3);return()=>{a.abort(),null!==c&&clearTimeout(c)}},[e]),(0,t.useEffect)(()=>{let a=()=>f(a=>a+1);return window.addEventListener("focus",a),()=>window.removeEventListener("focus",a)},[]),{status:a,error:c,refresh:(0,t.useCallback)(()=>f(a=>a+1),[])}}(),[g,h]=(0,t.useState)(()=>({path:"",page:0})),i=g.path,[j,k]=(0,t.useState)(null),[l,m]=(0,t.useState)(null),[n,o]=(0,t.useState)(null),[p,q]=(0,t.useState)(null),[r,u]=(0,t.useState)(null),[v,w]=(0,t.useState)(p);v!==p&&(w(p),u(null));let[x,y]=(0,t.useState)(()=>!1),[z,A]=(0,t.useState)(null),[B,C]=(0,t.useState)(!1),[D,E]=(0,t.useState)(!1),[F,G]=(0,t.useState)([]),[H,I]=(0,t.useState)([]),[J,K]=(0,t.useState)(-1/0),L=(0,t.useCallback)(()=>{G([]),K(Date.now())},[]),[M,N]=(0,t.useState)(!1),[O,P]=(0,t.useState)(!0),[Q,R]=(0,t.useState)("all"),[S,T]=(0,t.useState)(p);S!==p&&(T(p),R("all"));let[U,V]=(0,t.useState)(new Map),W=function(){let[a,b]=(0,t.useSyncExternalStore)(kS,kR,()=>"1440x900").split("x").map(Number);return{width:a,height:b}}(),X=(0,t.useSyncExternalStore)(kQ,()=>!1,()=>!1),[Y]=i4(),[Z,$]=i4(),[_]=i4(),aa=(0,t.useRef)(g),ab=(0,t.useRef)(p);(0,t.useEffect)(()=>{aa.current=g,ab.current=p},[g,p]);let ac=(0,t.useRef)("push"),ad=d?.repo??null,ae=d?.indexVersion??null,af=null!==j&&j.repo===ad?j.levels.get(kT(g))??null:null,ag=null!==j&&j.repo===ad&&j.version===ae&&j.levels.has(kT(g)),ah=(0,t.useRef)(af);(0,t.useEffect)(()=>{ah.current=af},[af]);let ai=(0,t.useRef)(null);(0,t.useEffect)(()=>{if(null===ad||null===ae||ag)return;let a=new AbortController;return gi.level(g.path,g.page,a.signal).then(a=>{let b={path:g.path,page:a.page};k(c=>kX(c,b,a)),a.page!==g.page&&(window.history.replaceState({mapDepth:ka(window.history.state)},"",j8(b.path,b.page,!1)),h(b)),m(null)},a=>{a instanceof gd&&m(a)}),()=>a.abort()},[ad,ae,g,ag]),(0,t.useEffect)(()=>{if(null===z||null===ad)return;let a=new AbortController;return gi.level((0,gl.B)(z.target),0,a.signal,z.target).then(a=>{if(z.quiet&&!a.nodes.some(a=>a.path===z.target)){gU("map:level"),A(null);return}let b={path:a.path,page:a.page};k(c=>kX(c,b,a)),ac.current=z.history,h(b),q(z.target),A(null),m(null)},a=>{a instanceof gd&&(gU("map:level"),z.quiet||o({error:a,place:kT(aa.current),selected:ab.current}),A(null))}),()=>a.abort()},[z,ad]),(0,t.useEffect)(()=>{if(null===n)return;let a=setTimeout(()=>o(null),6e3);return()=>clearTimeout(a)},[n]),(0,t.useEffect)(()=>{var a,b;let c=(a=function(a,b,c=!1){if(a===j8(b.path,b.page,c))return"none";let d=j9(a.includes("?")?a.slice(a.indexOf("?")):"");return d.path===b.path&&d.page===b.page?"replace":"push"}(window.location.pathname+window.location.search,g,!1),b=ac.current,"push"===a&&"replace"===b?"replace":a);ac.current="push";let d=ka(window.history.state);"push"===c?(window.history.pushState({mapDepth:d+1},"",j8(g.path,g.page,!1)),y(!0)):"replace"===c&&window.history.replaceState({mapDepth:d},"",j8(g.path,g.page,!1))},[g]),(0,t.useEffect)(()=>{let a=()=>{gT("map:level"),h(j9(window.location.search)),q(null),A(null),y(ka(window.history.state)>0)};return window.addEventListener("popstate",a),()=>window.removeEventListener("popstate",a)},[]);let aj=(0,t.useCallback)(a=>{a!==i&&gT("map:level"),h({path:a,page:0}),q(null),A(null)},[i]),ak=(0,t.useCallback)(a=>{gT("map:level"),h({path:i,page:a}),q(null),A(null)},[i]),al=(0,t.useCallback)((a,b={})=>{if(""===a)return void aj("");if((0,gl.B)(a)===i&&af?.nodes.some(b=>b.path===a)){gT("map:select"),q(a),A(null);return}gT("map:level"),A({target:a,history:b.history??"push",quiet:b.quiet??!1})},[aj,i,af]),am=(0,t.useCallback)(a=>{if("nebulosity.follow"===a.type)al(a.path,{history:"replace",quiet:!0});else if("nebulosity.show"===a.type)al(a.path,{quiet:!0});else if("nebulosity.highlight"===a.type)I(a.paths);else if("nebulosity.clear"===a.type)I([]);else if("nebulosity.theme"===a.type){let b=function(a,b){let c=jQ(b.editor);if(null===c)return null;let d=a=>void 0===a?null:jQ(a,c),e=d(b.side),f=d(b.fg);return null===e||null===f?null:{kind:a,editor:c,side:e,fg:f,border:d(b.border)??void 0,desc:d(b.desc)??void 0,focus:d(b.focus)??void 0}}(a.kind,a.colors);null!==b&&function(a,b){let c,d,e,f,g,h,i,j;for(let[k,l]of Object.entries((c="light"===b.kind||"hc-light"===b.kind,d="hc"===b.kind||"hc-light"===b.kind,e=b.editor,f=b.fg,g=c?"#9333EA":"#A855F7",i=jP(e,f,(h={node:c?.05:.09,line:c?.28:.3,linked:.75,edge:.3,glyph:c?.4:.45}).line),j="hc-light"===b.kind?"#A16207":c?"#CA8A04":"#FCD34D",{canvas:e,panel:b.side,node:d?e:jP(e,f,h.node),"node-sel":jP(e,g,c?.1:.16),"row-sel":jP(b.side,g,c?.12:.18),divider:b.border??jP(e,f,.12),border:d?b.border??i:i,"linked-border":d?c?"#7E22CE":"#C084FC":jP(e,g,h.linked),text:f,"text-2":jP(f,e,.22),"text-3":b.desc??jP(f,e,.3),"edge-dim":jP(e,f,d?.5:h.edge),"edge-strong":c?"#7E22CE":"#E9D5FF","glyph-dim":jP(e,f,d?.6:h.glyph),"linked-glyph":c?"#A855F7":"#C084FC","used-by-edge":j,accent:g,"on-accent":c?"#FFFFFF":"#120C1C",core:c?g:"#F0FDFF",agent:c?"#C2410C":"#F08A4B",danger:c?"#B91C1C":"#F07A7A",ok:c?"#0E7490":"#5FC9D9",focus:b.focus??(c?"#0E7490":"#67E8F9"),fade:d?"70%":"50%"})))a.style.setProperty(`--${k}`,l);a.setAttribute("data-kind",b.kind)}(document.documentElement,b)}},[al]),an=(0,t.useCallback)(()=>{let a=ah.current;return null===a||kV(a)!==ai.current?null:{type:"nebulosity.drawn",path:aa.current.path,page:aa.current.page,selected:ab.current}},[]),ao=(b=(0,t.useRef)(am),c=(0,t.useRef)(an),(0,t.useEffect)(()=>{b.current=am,c.current=an},[am,an]),(0,t.useEffect)(()=>{},[]),null),ap=(0,t.useCallback)(a=>{null!==a&&gT("map:select"),q(a)},[]),aq=(0,t.useCallback)((a,b)=>{ao?.post({type:"nebulosity.open",path:a,...void 0===b?{}:{line:b}})},[ao]),ar=null===ao?void 0:aq,as=function(a){let[b,c]=(0,t.useState)([]),[d,e]=(0,t.useState)(!1),f=(0,t.useRef)(a);return(0,t.useEffect)(()=>{f.current=a},[a]),(0,t.useEffect)(()=>{var a,b;let d,g,h;return a=()=>{let a=new EventSource("/api/live/stream");return a.addEventListener("ready",()=>e(!0)),a.addEventListener("error",()=>e(!1)),a.addEventListener("tool",a=>{let b=JSON.parse(a.data);c(a=>(function(a,b,c=3){return[b,...a].slice(0,c)})(a,b)),f.current(b)}),a},b=window,d=a(),g=()=>{d?.close(),d=null},h=b=>{b.persisted&&null===d&&(d=a())},b.addEventListener("pagehide",g),b.addEventListener("pageshow",h),()=>{b.removeEventListener("pagehide",g),b.removeEventListener("pageshow",h),g()}},[]),{recent:b,connected:d}}((0,t.useCallback)(a=>{if(null!==af){let b=a.paths.flatMap(a=>(0,gl.K)(af,a)??[]);V(a=>(function(a,b,c){let d=new Map(a);for(let a of new Set(b)){let b=d.get(a);b&&c-b.at<800||d.set(a,{key:(b?.key??0)+1,at:c})}return d})(a,b,Date.now()))}let b=a.action;b?.type==="highlight_nodes"?G(b.nodeIds):b?.type==="clear_highlights"?G([]):b?.type==="focus_node"&&al(b.nodeId)},[af,al])),[at,au]=(0,t.useState)(0),av=as.recent[0]?.at??null;(0,t.useEffect)(()=>{if(null===av)return;let a=setInterval(()=>{let b=Date.now();au(b),b-Date.parse(av)>=3e4&&clearInterval(a)},1e3);return()=>clearInterval(a)},[av]);let aw=null===af?"":[...function(a,b,c,d,e=-1/0,f=[]){return new Set([...b.filter(a=>{let b=Date.parse(a.at);return d-b<3e4&&b>e}).flatMap(a=>a.paths),...c,...f].flatMap(b=>(0,gl.K)(a,b)??[]))}(af,as.recent,F,at,J,H)].sort().join("\0"),ax=(0,t.useMemo)(()=>new Set(""===aw?[]:aw.split("\0")),[aw]),ay=gZ(af,p),az=(0,t.useMemo)(()=>{var a,b;return null===af?[]:(a=af.edges,null===(b=ay)?[]:[...a.some(a=>a.source===b&&a.target!==b)?[]:["uses"],...a.some(a=>a.target===b&&a.source!==b)?[]:["usedBy"]])},[af,ay]),aA=az.includes(Q)?"all":Q,aB=(0,t.useMemo)(()=>{var a;return new Set(null===af?[]:(a=af.edges,null===ay?[]:a.filter(a=>gB(a,ay,aA))).flatMap(a=>[a.source,a.target]))},[af,ay,aA]),aC=(0,t.useCallback)(()=>{h({path:"",page:0}),q(null),A(null),G([]),I([]),f()},[f]),aD=(0,t.useCallback)(()=>{gV("map:level"),null!==ao&&(ai.current=null===ah.current?null:kV(ah.current),kW(()=>{let a=an();null!==a&&ao.post(a)}))},[ao,an]);(0,t.useEffect)(()=>{if(null!==ao&&null!==an())return kW(()=>{let a=an();null!==a&&ao.post(a)})},[p,ao,an]);let aE=(0,t.useCallback)(()=>aj(""),[aj]),aF=(0,t.useCallback)(()=>E(!1),[]),aG=(0,t.useCallback)(()=>q(null),[]),aH=(0,t.useCallback)(()=>u(null),[]),aI=(0,t.useCallback)(a=>u(a),[]),aJ=af?.page??0,aK=af?.pageCount??1,aL=gZ(af,p),aM=null!==aL,aN=F.length>0,aO=function({width:a,height:b,embedded:c,selected:d}){let e=c?"none":a>=1180?"full":a>=600?"rail":"none",f="full"===e?236:40*("rail"===e),g=a-f-300>=560?"beside":b>=640?"below":a>=600?"drawer":"cover",h="beside"===g||d?g:"none",i=a-f-300*("beside"===h),j=b<420,k=b<300?"inHeader":"bar",l=b>=560&&i>=420&&"drawer"!==h&&"cover"!==h,m=(c?38:42)+36*!j+24*("bar"===k)+44*!!l,n="below"===h?Math.ceil((m+160)/(1-.42)):m+160;return{explorer:e,inspector:h,toolbarInHeader:j,status:k,legend:l,canvasWidth:i,minHeight:n}}({width:W.width,height:W.height,embedded:X,selected:null!==aL}),aP="cover"===aO.inspector;aP||null===aL||r===aL||u(aL);let aQ=aP&&null!==aL&&r===aL;(0,t.useEffect)(()=>{let a=a=>{let b=function(a,b){if((a.metaKey||a.ctrlKey)&&"k"===a.key.toLowerCase())return{type:"search"};if(b.typing||b.dialogOpen)return null;switch(a.key){case"?":return{type:"help"};case"Escape":return b.selected?{type:"deselect"}:b.highlighted?{type:"clear-highlights"}:null;case"Backspace":return""!==b.levelPath?{type:"up"}:null;case"ArrowLeft":return b.page>0?{type:"page",page:b.page-1}:null;case"ArrowRight":return b.page<b.pageCount-1?{type:"page",page:b.page+1}:null;default:return null}}(a,{typing:a.target instanceof HTMLElement&&["INPUT","TEXTAREA"].includes(a.target.tagName),dialogOpen:null!==document.querySelector('[role="dialog"]'),levelPath:i,page:aJ,pageCount:aK,selected:aM,highlighted:aN});null!==b&&("search"===b.type?(a.preventDefault(),C(!0)):"help"===b.type?E(!0):"deselect"===b.type?aQ?u(null):q(null):"clear-highlights"===b.type?L():"up"===b.type?aj((0,gl.B)(i)):ak(b.page))};return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[i,aj,aJ,aK,ak,aM,aN,L,aQ]);let aR=null!==af&&O?gy(af.edges,aL,ax):0,aS=null!==n&&n.place===kT(g)&&n.selected===p?n.error:null,aT=l??aS,aU=aL??("beside"===aO.inspector&&null!==af?af.path:null),aV=null!==af&&null!==aU&&"none"!==aO.inspector&&(!aP||aQ),aW=aV&&aP,aX=aP&&!aV?aL:null,aY=null!==aT&&!aW,aZ=aV&&"drawer"===aO.inspector,a$=null===(a=$?.height??null)||24+a<=64?"band":"card",a_=null!==af&&af.edges.length>60,a0=!M&&a_,a1=null===af?0:af.nodes.filter(a=>"portal"!==a.kind).length;if(e?.code==="INDEX_EMPTY")return(0,s.jsx)(k$,{});let a2=af&&(0,s.jsx)(kH,{level:af,strongOnly:O,onStrongOnly:P,busy:a_,showAllLines:M,onShowAllLines:N,onTurnPage:ak,canvasWidth:aO.canvasWidth,inHeader:aO.toolbarInHeader,narrow:W.width<480,helpInMenu:X||W.width<480,onHelp:()=>E(!0),searchInMenu:aO.toolbarInHeader&&W.width<360,onSearch:()=>C(!0),hasSelection:null!==aL,direction:aA,onDirection:R,emptySides:az}),a3=a=>(0,s.jsx)(kO,{status:d,recent:as.recent,connected:as.connected,highlightCount:F.length,onClear:L,items:a1,weakHidden:aR,embedded:X,dots:a}),a4=aV&&null!==aU&&af&&"none"!==aO.inspector&&(0,s.jsx)(hb,{path:aU,level:af,indexVersion:ae??0,summariesOff:d?.stages.summaries.state==="off",onFocus:al,onOpen:aj,onTurnPage:ak,onClose:aP?aH:aG,onOpenInEditor:ar,placement:aO.inspector,onScreenFolder:null===aL,alert:aW?aT?.message:void 0},aU);return(0,s.jsxs)("div",{"data-testid":"map-shell",style:{minHeight:aO.minHeight},className:"flex h-dvh flex-col",children:[(0,s.jsx)(kw,{crumb:af&&ad?(0,s.jsx)(gp,{repo:(0,s.jsx)(kd,{repo:ad,onSwitched:aC,onHome:aE}),repoRoot:ad,trail:af.breadcrumb,onOpen:aj,compact:W.width<360}):(0,s.jsx)("span",{className:"min-w-0 flex-1"}),onSearch:()=>C(!0),onHelp:()=>E(!0),embedded:X,canGoBack:x,toolbar:aO.toolbarInHeader?a2:void 0,status:"inHeader"===aO.status?a3(!0):void 0}),(0,s.jsxs)("div",{className:"flex min-h-0 flex-1",children:[af&&"none"!==aO.explorer&&(0,s.jsx)("div",{style:{width:"full"===aO.explorer?236:40},className:"relative z-10 shrink-0",children:(0,s.jsx)(kq,{level:af,selected:aL,linked:aB,form:aO.explorer,onSelect:ap,onOpen:aj})}),(0,s.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col",children:[!aO.toolbarInHeader&&a2,(0,s.jsxs)("main",{ref:Y,className:"relative min-h-0 flex-1 overflow-hidden",children:[af&&(0,s.jsx)(j7,{level:af,selected:aL,agent:ax,pulses:U,onSelect:ap,onOpen:aj,onTurnPage:ak,onDrawn:aD,quietLines:a0,strongOnly:O,direction:aA,covered:aW,actionsFor:aX,onDetails:aI,onOpenFile:ar}),!af&&!l&&(0,s.jsx)("p",{className:"absolute inset-0 grid place-items-center px-4 text-center text-[13px] text-text-2",children:"Loading the map…"}),aT&&aY&&(0,s.jsx)("div",{style:{right:aZ?kU:0},className:"pointer-events-none absolute inset-y-0 left-0",children:(0,s.jsx)(kZ,{message:aT.message,form:a$,bandRef:Z,cardRef:_})}),("drawer"===aO.inspector||"cover"===aO.inspector)&&a4&&(0,s.jsx)("div",{"data-inspector-place":aO.inspector,"data-keep-clear":!0,style:{width:"drawer"===aO.inspector?kU:"100%"},className:"absolute inset-y-0 right-0 z-10",children:a4})]}),af&&aO.legend&&(0,s.jsx)(kx,{doorways:af.nodes.some(a=>"portal"===a.kind),agent:ax.size>0,quiet:a0}),"below"===aO.inspector&&a4&&(0,s.jsx)("div",{"data-inspector-place":"below",style:{height:"42%"},className:"min-h-0 shrink-0",children:a4})]}),"beside"===aO.inspector&&a4&&(0,s.jsx)("div",{"data-inspector-place":"beside",style:{width:300},className:"min-h-0 shrink-0",children:a4})]}),"bar"===aO.status&&a3(!1),D&&(0,s.jsx)(hq,{onClose:aF,embedded:X}),B&&(0,s.jsx)(kg,{onPick:a=>{C(!1),al(a.path)},onClose:()=>C(!1)})]})}function kZ({message:a,form:b,bandRef:c,cardRef:d}){return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("div",{ref:c,role:"band"===b?"alert":void 0,"aria-hidden":"band"!==b||void 0,className:`pointer-events-none absolute inset-x-0 top-6 z-[7] flex justify-center px-4 text-[13px] text-danger ${"band"===b?"":"invisible"}`,children:(0,s.jsx)("p",{"data-keep-clear":"band"===b||void 0,className:"max-w-full rounded-[5px] bg-canvas px-2 text-center [overflow-wrap:anywhere]",children:a})}),"card"===b&&(0,s.jsx)("div",{ref:d,role:"alert","data-keep-clear":!0,style:{maxWidth:"calc(100% - 32px)"},className:"pointer-events-none absolute left-4 top-4 z-[7] rounded-md border border-divider bg-panel px-3 py-2 text-[13px] text-danger [overflow-wrap:anywhere]",children:a})]})}function k$(){return(0,s.jsx)("div",{className:"grid h-dvh place-items-center px-4",children:(0,s.jsxs)("div",{className:"max-w-md space-y-2 text-center text-[14px] text-text-2 [overflow-wrap:anywhere]",children:[(0,s.jsx)("p",{className:"text-[15px] font-medium text-text",children:"No repository indexed yet."}),(0,s.jsxs)("p",{children:["Index one from a terminal with ",(0,s.jsx)("code",{className:"rounded-md bg-node px-1 font-mono text-[13px] text-text",children:"nebulosity index <path-to-repo>"}),", then reload."]}),(0,s.jsxs)("p",{children:["In a checkout of Nebulosity it's ",(0,s.jsx)("code",{className:"rounded-md bg-node px-1 font-mono text-[13px] text-text",children:"npm run index -- <path-to-repo>"}),"."]})]})})}a.s(["default",0,function(){return(0,s.jsx)(fJ,{children:(0,s.jsx)(kY,{})})}],73536)},67161,(a,b,c)=>{Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"Image",{enumerable:!0,get:function(){return t}});let d=a.r(33354),e=a.r(46058),f=a.r(87924),g=e._(a.r(72131)),h=d._(a.r(35112)),i=d._(a.r(58018)),j=a.r(94915),k=a.r(53773),l=a.r(26239),m=d._(a.r(2305)),n=a.r(8591);function o(a,b,c,d,e,f,g){let h=a?.src;a&&a["data-loaded-src"]!==h&&(a["data-loaded-src"]=h,("decode"in a?a.decode():Promise.resolve()).catch(()=>{}).then(()=>{if(a.parentElement&&a.isConnected){if("empty"!==b&&e(!0),c?.current){let b=new Event("load");Object.defineProperty(b,"target",{writable:!1,value:a});let d=!1,e=!1;c.current({...b,nativeEvent:b,currentTarget:a,target:a,isDefaultPrevented:()=>d,isPropagationStopped:()=>e,persist:()=>{},preventDefault:()=>{d=!0,b.preventDefault()},stopPropagation:()=>{e=!0,b.stopPropagation()}})}d?.current&&d.current(a)}}))}function p(a){return g.use?{fetchPriority:a}:{fetchpriority:a}}globalThis.__NEXT_IMAGE_IMPORTED=!0;let q=g.useEffect,r=(0,g.forwardRef)(({src:a,srcSet:b,sizes:c,height:d,width:e,decoding:h,className:i,style:j,fetchPriority:k,placeholder:l,loading:m,unoptimized:r,fill:s,onLoadRef:t,onLoadingCompleteRef:u,setBlurComplete:v,setShowAltText:w,sizesInput:x,onLoad:y,onError:z,...A},B)=>{let C=(0,g.useRef)(!1),D=(0,g.useRef)(null);q(()=>{let{current:a}=C,{current:b}=D;a||null===b||(z&&(b.src=b.src),b.complete&&o(b,l,t,u,v,r,x),C.current=!0)},[a,l,t,u,z,r,x]);let E=(0,n.useMergedRef)(B,D);return(0,f.jsx)("img",{...A,...p(k),loading:m,width:e,height:d,decoding:h,"data-nimg":s?"fill":"1",className:i,style:j,sizes:c,srcSet:b,src:a,ref:E,onLoad:a=>{o(a.currentTarget,l,t,u,v,r,x)},onError:a=>{w(!0),"empty"!==l&&v(!0),z&&z(a)}})});function s({isAppRouter:a,imgAttributes:b}){let c={as:"image",imageSrcSet:b.srcSet,imageSizes:b.sizes,crossOrigin:b.crossOrigin,referrerPolicy:b.referrerPolicy,...p(b.fetchPriority)};return a&&h.default.preload?(h.default.preload(b.src,c),null):(0,f.jsx)(i.default,{children:(0,f.jsx)("link",{rel:"preload",href:b.srcSet?void 0:b.src,...c},"__nimg-"+b.src+b.srcSet+b.sizes)})}let t=(0,g.forwardRef)((a,b)=>{let c=(0,g.useContext)(k.RouterContext),d=(0,l.useImageConfig)(),{onLoad:e,onLoadingComplete:h}=a,i=(0,g.useRef)(e);(0,g.useEffect)(()=>{i.current=e},[e]);let n=(0,g.useRef)(h);(0,g.useEffect)(()=>{n.current=h},[h]);let[o,p]=(0,g.useState)(!1),[q,t]=(0,g.useState)(!1),{props:u,meta:v}=(0,j.getImgProps)(a,{defaultLoader:m.default,imgConf:d,blurComplete:o,showAltText:q});return(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(r,{...u,unoptimized:v.unoptimized,placeholder:v.placeholder,fill:v.fill,onLoadRef:i,onLoadingCompleteRef:n,setBlurComplete:p,setShowAltText:t,sizesInput:a.sizes,ref:b}),v.preload?(0,f.jsx)(s,{isAppRouter:!c,imgAttributes:u}):null]})});("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},26239,(a,b,c)=>{Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"useImageConfig",{enumerable:!0,get:function(){return h}});let d=a.r(72131),e=a.r(345),f=a.r(4486),g={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[75],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1};function h(){let a=(0,d.useContext)(f.ImageConfigContext);return(0,e.prepareImageConfig)(g,a)}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},8591,(a,b,c)=>{Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"useMergedRef",{enumerable:!0,get:function(){return e}});let d=a.r(72131);function e(a,b){let c=(0,d.useRef)(null),e=(0,d.useRef)(null);return(0,d.useCallback)(d=>{if(null===d){let a=c.current;a&&(c.current=null,a());let b=e.current;b&&(e.current=null,b())}else a&&(c.current=f(a,d)),b&&(e.current=f(b,d))},[a,b])}function f(a,b){if("function"!=typeof a)return a.current=b,()=>{a.current=null};{let c=a(b);return"function"==typeof c?c:()=>a(null)}}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},4486,(a,b,c)=>{b.exports=a.r(42602).vendored.contexts.ImageConfigContext},53773,(a,b,c)=>{b.exports=a.r(42602).vendored.contexts.RouterContext},68063,(a,b,c)=>{let d;Object.defineProperty(c,"__esModule",{value:!0});var e={getAssetToken:function(){return i},getAssetTokenQuery:function(){return j},getDeploymentId:function(){return g},getDeploymentIdQuery:function(){return h}};for(var f in e)Object.defineProperty(c,f,{enumerable:!0,get:e[f]});function g(){return d}function h(a=!1){return d?`${a?"&":"?"}dpl=${d}`:""}function i(){return!1}function j(a=!1){return""}d=void 0},35444,(a,b,c)=>{function d(a,b){let c=a||75;return b?.qualities?.length?b.qualities.reduce((a,b)=>Math.abs(b-c)<Math.abs(a-c)?b:a,b.qualities[0]):c}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"findClosestQuality",{enumerable:!0,get:function(){return d}})},94915,(a,b,c)=>{Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"getImgProps",{enumerable:!0,get:function(){return i}});let d=a.r(68063),e=a.r(4987),f=["-moz-initial","fill","none","scale-down",void 0];function g(a){return void 0!==a.default}function h(a){return void 0===a?a:"number"==typeof a?Number.isFinite(a)?a:0/0:"string"==typeof a&&/^[0-9]+$/.test(a)?parseInt(a,10):0/0}function i({src:a,sizes:b,unoptimized:c=!1,priority:j=!1,preload:k=!1,loading:l,className:m,quality:n,width:o,height:p,fill:q=!1,style:r,overrideSrc:s,onLoad:t,onLoadingComplete:u,placeholder:v="empty",blurDataURL:w,fetchPriority:x,decoding:y="async",layout:z,objectFit:A,objectPosition:B,lazyBoundary:C,lazyRoot:D,...E},F){var G;let H,I,{imgConf:J,showAltText:K,blurComplete:L,defaultLoader:M}=F;if(void 0===M)throw Error("images.loaderFile detected but the file is missing default export.\nRead more: https://nextjs.org/docs/messages/invalid-images-config");let N=E.loader||M;delete E.loader,delete E.srcSet;let O="__next_img_default"in N;if(O){if("custom"===J.loader)throw Error(`Image with src "${a}" is missing "loader" prop.
10
+ Read more: https://nextjs.org/docs/messages/next-image-missing-loader`)}else{let a=N;N=b=>{let{config:c,...d}=b;return a(d)}}if(z){"fill"===z&&(q=!0);let a={intrinsic:{maxWidth:"100%",height:"auto"},responsive:{width:"100%",height:"auto"}}[z];a&&(r={...r,...a});let c={responsive:"100vw",fill:"100vw"}[z];c&&!b&&(b=c)}let P="",Q=h(o),R=h(p);if((G=a)&&"object"==typeof G&&(g(G)||void 0!==G.src)){let b=g(a)?a.default:a;if(!b.src)throw Error(`An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received ${JSON.stringify(b)}`);if(!b.height||!b.width)throw Error(`An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received ${JSON.stringify(b)}`);if(H=b.blurWidth,I=b.blurHeight,w=w||b.blurDataURL,P=b.src,!q)if(Q||R){if(Q&&!R){let a=Q/b.width;R=Math.round(b.height*a)}else if(!Q&&R){let a=R/b.height;Q=Math.round(b.width*a)}}else Q=b.width,R=b.height}let S=!j&&!k&&("lazy"===l||void 0===l);(!(a="string"==typeof a?a:P)||a.startsWith("data:")||a.startsWith("blob:"))&&(c=!0,S=!1),J.unoptimized&&(c=!0),O&&!J.dangerouslyAllowSVG&&a.split("?",1)[0].endsWith(".svg")&&(c=!0);let T=h(n),U=Object.assign(q?{position:"absolute",height:"100%",width:"100%",left:0,top:0,right:0,bottom:0,objectFit:A,objectPosition:B}:{},K?{}:{color:"transparent"},r),V=L||"empty"===v?null:"blur"===v?`url("data:image/svg+xml;charset=utf-8,${(0,e.getImageBlurSvg)({widthInt:Q,heightInt:R,blurWidth:H,blurHeight:I,blurDataURL:w||"",objectFit:U.objectFit})}")`:`url("${v}")`,W=f.includes(U.objectFit)?"fill"===U.objectFit?"100% 100%":"cover":U.objectFit,X=V?{backgroundSize:W,backgroundPosition:U.objectPosition||"50% 50%",backgroundRepeat:"no-repeat",backgroundImage:V}:{},Y=function({config:a,src:b,unoptimized:c,width:e,quality:f,sizes:g,loader:h}){if(c){if(b.startsWith("/")&&!b.startsWith("//")){let a=(0,d.getDeploymentId)();if(b.includes("/_next/static/immutable")&&!(0,d.getAssetToken)())a=void 0;else if(a){let c=b.indexOf("?");if(-1!==c){let d=new URLSearchParams(b.slice(c+1));d.get("dpl")||(d.append("dpl",a),b=b.slice(0,c)+"?"+d.toString())}else b+=`?dpl=${a}`}}return{src:b,srcSet:void 0,sizes:void 0}}let{widths:i,kind:j}=function({deviceSizes:a,allSizes:b},c,d){if(d){let c=/(^|\s)(1?\d?\d)vw/g,e=[];for(let a;a=c.exec(d);)e.push(parseInt(a[2]));if(e.length){let c=.01*Math.min(...e);return{widths:b.filter(b=>b>=a[0]*c),kind:"w"}}return{widths:b,kind:"w"}}return"number"!=typeof c?{widths:a,kind:"w"}:{widths:[...new Set([c,2*c].map(a=>b.find(b=>b>=a)||b[b.length-1]))],kind:"x"}}(a,e,g),k=i.length-1;return{sizes:g||"w"!==j?g:"100vw",srcSet:i.map((c,d)=>`${h({config:a,src:b,quality:f,width:c})} ${"w"===j?c:d+1}${j}`).join(", "),src:h({config:a,src:b,quality:f,width:i[k]})}}({config:J,src:a,unoptimized:c,width:Q,quality:T,sizes:b,loader:N}),Z=S?"lazy":l;return{props:{...E,loading:Z,fetchPriority:x,width:Q,height:R,decoding:y,className:m,style:{...U,...X},sizes:Y.sizes,srcSet:Y.srcSet,src:s||Y.src},meta:{unoptimized:c,preload:k||j,placeholder:v,fill:q}}}},58018,(a,b,c)=>{Object.defineProperty(c,"__esModule",{value:!0});var d={default:function(){return p},defaultHead:function(){return l}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(33354),g=a.r(46058),h=a.r(87924),i=g._(a.r(72131)),j=f._(a.r(94613)),k=a.r(92966);function l(){return[(0,h.jsx)("meta",{charSet:"utf-8"},"charset"),(0,h.jsx)("meta",{name:"viewport",content:"width=device-width"},"viewport")]}function m(a,b){return"string"==typeof b||"number"==typeof b?a:b.type===i.default.Fragment?a.concat(i.default.Children.toArray(b.props.children).reduce((a,b)=>"string"==typeof b||"number"==typeof b?a:a.concat(b),[])):a.concat(b)}let n=["name","httpEquiv","charSet","itemProp"];function o(a){let b,c,d,e;return a.reduce(m,[]).reverse().concat(l().reverse()).filter((b=new Set,c=new Set,d=new Set,e={},a=>{let f=!0,g=!1;if(a.key&&"number"!=typeof a.key&&a.key.indexOf("$")>0){g=!0;let c=a.key.slice(a.key.indexOf("$")+1);b.has(c)?f=!1:b.add(c)}switch(a.type){case"title":case"base":c.has(a.type)?f=!1:c.add(a.type);break;case"meta":for(let b=0,c=n.length;b<c;b++){let c=n[b];if(a.props.hasOwnProperty(c))if("charSet"===c)d.has(c)?f=!1:d.add(c);else{let b=a.props[c],d=e[c]||new Set;("name"!==c||!g)&&d.has(b)?f=!1:(d.add(b),e[c]=d)}}}return f})).reverse().map((a,b)=>{let c=a.key||b;return i.default.cloneElement(a,{key:c})})}let p=function({children:a}){let b=(0,i.useContext)(k.HeadManagerContext);return(0,h.jsx)(j.default,{reduceComponentsToState:o,headManager:b,children:a})};("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},4987,(a,b,c)=>{function d({widthInt:a,heightInt:b,blurWidth:c,blurHeight:e,blurDataURL:f,objectFit:g}){let h=c?40*c:a,i=e?40*e:b,j=h&&i?`viewBox='0 0 ${h} ${i}'`:"";return`%3Csvg xmlns='http://www.w3.org/2000/svg' ${j}%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='${j?"none":"contain"===g?"xMidYMid":"cover"===g?"xMidYMid slice":"none"}' style='filter: url(%23b);' href='${f}'/%3E%3C/svg%3E`}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"getImageBlurSvg",{enumerable:!0,get:function(){return d}})},345,(a,b,c)=>{Object.defineProperty(c,"__esModule",{value:!0});var d={VALID_LOADERS:function(){return f},imageConfigDefault:function(){return j},prepareImageConfig:function(){return i}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=["default","imgix","cloudinary","akamai","custom"],g={},h=new WeakMap;function i(a,b){let c=a??g,d=b??g,e=h.get(c);if(e){let a=e.get(d);if(a)return a}let f=a||b||j,i=[...f.deviceSizes].sort((a,b)=>a-b),k=[...f.imageSizes],l={deviceSizes:i,imageSizes:k,allSizes:[...i,...k].sort((a,b)=>a-b),qualities:void 0===f.qualities?void 0:[...f.qualities].sort((a,b)=>a-b),path:f.path,loader:f.loader,dangerouslyAllowSVG:f.dangerouslyAllowSVG,unoptimized:f.unoptimized,domains:f.domains,remotePatterns:f.remotePatterns,localPatterns:void 0!==b?b.localPatterns:f.localPatterns,output:f.output};return e||(e=new WeakMap,h.set(c,e)),e.set(d,l),l}let j={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],path:"/_next/image",loader:"default",loaderFile:"",domains:[],disableStaticImages:!1,minimumCacheTTL:14400,formats:["image/webp"],maximumDiskCacheSize:void 0,maximumRedirects:3,maximumResponseBody:5e7,dangerouslyAllowLocalIP:!1,dangerouslyAllowSVG:!1,contentSecurityPolicy:"script-src 'none'; frame-src 'none'; sandbox;",contentDispositionType:"attachment",localPatterns:void 0,remotePatterns:[],qualities:[75],unoptimized:!1,customCacheHandler:!1}},2305,(a,b,c)=>{Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"default",{enumerable:!0,get:function(){return g}});let d=a.r(35444),e=a.r(68063);function f({config:a,src:b,width:c,quality:g}){let h=(0,e.getDeploymentId)();if(b.startsWith("/")&&!b.startsWith("//"))if(b.includes("/_next/static/immutable")&&!(0,e.getAssetToken)())h=void 0;else{let a=b.indexOf("?");if(-1!==a){let c=new URLSearchParams(b.slice(a+1)),d=c.get("dpl");if(d){h=d,c.delete("dpl");let e=c.toString();b=b.slice(0,a)+(e?"?"+e:"")}}}if(b.startsWith("/")&&b.includes("?")&&a.localPatterns?.length===1&&"**"===a.localPatterns[0].pathname&&""===a.localPatterns[0].search)throw Error(`Image with src "${b}" is using a query string which is not configured in images.localPatterns.
11
+ Read more: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns`);let i=(0,d.findClosestQuality)(g,a);return`${a.path}?url=${encodeURIComponent(b)}&w=${c}&q=${i}${b.startsWith("/")&&h?`&dpl=${h}`:""}`}f.__next_img_default=!0;let g=f},94613,(a,b,c)=>{Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"default",{enumerable:!0,get:function(){return f}});let d=a.r(72131),e=()=>{};function f(a){let{headManager:b,reduceComponentsToState:c}=a;return b?.mountedInstances?.add(a.children),function(){if(b&&b.mountedInstances){let a=d.Children.toArray(Array.from(b.mountedInstances).filter(Boolean));b.updateHead(c(a))}}(),e(),e(),null}},47349,(a,b,c)=>{var d=a.r(72131);d.useState,d.useEffect,d.useLayoutEffect,d.useDebugValue,c.useSyncExternalStore=void 0!==d.useSyncExternalStore?d.useSyncExternalStore:function(a,b){return b()}},97514,(a,b,c)=>{var d=a.r(72131),e=a.r(87610),f="function"==typeof Object.is?Object.is:function(a,b){return a===b&&(0!==a||1/a==1/b)||a!=a&&b!=b},g=e.useSyncExternalStore,h=d.useRef,i=d.useEffect,j=d.useMemo,k=d.useDebugValue;c.useSyncExternalStoreWithSelector=function(a,b,c,d,e){var l=h(null);if(null===l.current){var m={hasValue:!1,value:null};l.current=m}else m=l.current;var n=g(a,(l=j(function(){function a(a){if(!i){if(i=!0,g=a,a=d(a),void 0!==e&&m.hasValue){var b=m.value;if(e(b,a))return h=b}return h=a}if(b=h,f(g,a))return b;var c=d(a);return void 0!==e&&e(b,c)?(g=a,b):(g=a,h=c)}var g,h,i=!1,j=void 0===c?null:c;return[function(){return a(b())},null===j?void 0:function(){return a(j())}]},[b,c,d,e]))[0],l[1]);return i(function(){m.hasValue=!0,m.value=n},[n]),k(n),n}},87610,(a,b,c)=>{b.exports=a.r(47349)},64442,(a,b,c)=>{b.exports=a.r(97514)}]})();
12
+
13
+ //# sourceMappingURL=_1p-0wsx9qfm68._.js.map