@ltm-blueverse/alpha-hub-studio 0.7.0 → 0.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/static/assets/DecisionWorkspace-BbxYoPCv.js +1 -0
- package/static/assets/{DiffMergeWorkspace-C8yIdDC7.js → DiffMergeWorkspace-I9BcvT3J.js} +1 -1
- package/static/assets/EntityResolutionTab-DZME6ngq.js +6 -0
- package/static/assets/{GraphInspectorPanel-Bbrbhd03.js → GraphInspectorPanel-ZkQtr_Oa.js} +1 -1
- package/static/assets/{GraphWorkspace-AxTFEhNP.js → GraphWorkspace-DjKI1vje.js} +37 -37
- package/static/assets/{ImportExportWorkspace-BK3TofDv.js → ImportExportWorkspace-FesluaxV.js} +2 -2
- package/static/assets/KGOverviewTab-CIuFOyUa.js +1 -0
- package/static/assets/LineageDiagram-BlTkwTG_.js +27 -0
- package/static/assets/{MarkdownContentViewer-Chx4ysCK.js → MarkdownContentViewer-B2I-lKUf.js} +4 -4
- package/static/assets/{MemoryWorkspace-CIjaTN_S.js → MemoryWorkspace-CbGHQGJQ.js} +2 -2
- package/static/assets/{OntologySummaryTab-NJ3ZrkoJ.js → OntologySummaryTab-Q3rXi9jh.js} +1 -1
- package/static/assets/{ReasoningWorkspace-B127Rd-S.js → ReasoningWorkspace-DSYffkef.js} +2 -2
- package/static/assets/RegistryTab-C9IfTx8j.js +11 -0
- package/static/assets/{SparqlWorkspace-RwPj2YK7.js → SparqlWorkspace-BHAlhIXU.js} +3 -3
- package/static/assets/{TimelinePanel-DmtiXgmN.js → TimelinePanel-D50aWGS7.js} +1 -1
- package/static/assets/{VocabularyWorkspace-YF9waL5N.js → VocabularyWorkspace-BUFmkjyq.js} +6 -6
- package/static/assets/{book-open-BqEIxx1e.js → book-open-CEYwt1ql.js} +1 -1
- package/static/assets/{chevron-right-CiEuNwKq.js → chevron-right-BnjhfQ0S.js} +1 -1
- package/static/assets/{circle-check-BToWKwbO.js → circle-check-CzC458Im.js} +1 -1
- package/static/assets/{copy-BfQXGhHP.js → copy-D1MBJLmb.js} +1 -1
- package/static/assets/{download-gQOgYz3q.js → download-BiH8WZKH.js} +1 -1
- package/static/assets/{external-link-DqNu6T-f.js → external-link-BRF01S2q.js} +1 -1
- package/static/assets/{file-text-Bbz-r0FQ.js → file-text-bY52r7Yt.js} +1 -1
- package/static/assets/{git-branch-B8yDcUSY.js → git-branch-apSLSDgQ.js} +1 -1
- package/static/assets/graphTheme-DCTRN8Qm.js +6 -0
- package/static/assets/{index-Bt8w1Tz_.css → index-3PtcB4_T.css} +1 -1
- package/static/assets/{index-DHWWI-uw.js → index-CVYHt6Z6.js} +81 -81
- package/static/assets/{index-Dli_3Iwd.js → index-D0ErQ1c2.js} +1 -1
- package/static/assets/{index-DtC_GayB.js → index-D1_G_our.js} +1 -1
- package/static/assets/index-DPG7Yem6.js +127 -0
- package/static/assets/{info-vaffNQOD.js → info-Bxj0ofiy.js} +1 -1
- package/static/assets/{layers-Cct6D_wK.js → layers-CXZNgF0V.js} +1 -1
- package/static/assets/{loader-circle-C8NUmtFx.js → loader-circle-CmyLCPAg.js} +1 -1
- package/static/assets/{neighborhoodPanelPlugin-w1yJlm0A.js → neighborhoodPanelPlugin-gLy7GAga.js} +1 -1
- package/static/assets/{pencil-DYlEC6ri.js → pencil-COLtDS12.js} +1 -1
- package/static/assets/{play-G1gyOk2a.js → play-CG0LOI9D.js} +1 -1
- package/static/assets/{queries-CYtdSB4H.js → queries-AYIcORqv.js} +1 -1
- package/static/assets/{refresh-cw-CL9OXZ89.js → refresh-cw-B1c5rNMc.js} +1 -1
- package/static/assets/{registryStore-MVt_NgVV.js → registryStore-BPopBcrC.js} +1 -1
- package/static/assets/{style-D8TqSrGs.js → style-DGS084C0.js} +1 -1
- package/static/assets/temporalOverlayPlugin-DzF7xO4p.js +1 -0
- package/static/assets/{trash-2-DiZNV6Gj.js → trash-2-CLBVEYNO.js} +1 -1
- package/static/assets/{x-DpqMYq96.js → x-lyk2jiOu.js} +1 -1
- package/static/index.html +3 -3
- package/static/assets/DecisionWorkspace-DG6zPNls.js +0 -1
- package/static/assets/EntityResolutionTab-RBysMLhB.js +0 -6
- package/static/assets/KGOverviewTab-D9EWKL_n.js +0 -1
- package/static/assets/LineageDiagram-XxBVa1Ij.js +0 -27
- package/static/assets/RegistryTab-BE2-yKLC.js +0 -11
- package/static/assets/graphTheme-DNKLxzKZ.js +0 -6
- package/static/assets/index-MVDNL3vw.js +0 -127
- package/static/assets/temporalOverlayPlugin-CRhLa1FU.js +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/TimelinePanel-
|
|
2
|
-
import{b as Ct,c as Xe,j as N,_ as Er,a as
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/TimelinePanel-D50aWGS7.js","assets/index-CVYHt6Z6.js","assets/query-vendor-BqVbYexz.js","assets/index-3PtcB4_T.css","assets/timeline-vendor-WyY-t3YQ.js","assets/timeline-vendor-lG7zfUUF.css","assets/graphTheme-DCTRN8Qm.js","assets/GraphInspectorPanel-ZkQtr_Oa.js","assets/MarkdownContentViewer-B2I-lKUf.js","assets/loader-circle-CmyLCPAg.js","assets/refresh-cw-B1c5rNMc.js","assets/copy-D1MBJLmb.js","assets/pencil-COLtDS12.js","assets/x-lyk2jiOu.js","assets/external-link-BRF01S2q.js","assets/graph-vendor-CUDaIrp7.js","assets/registryStore-BPopBcrC.js","assets/layers-CXZNgF0V.js","assets/git-branch-apSLSDgQ.js","assets/play-CG0LOI9D.js","assets/neighborhoodPanelPlugin-gLy7GAga.js","assets/temporalOverlayPlugin-DzF7xO4p.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{b as Ct,c as Xe,j as N,_ as Er,a as Bi}from"./index-CVYHt6Z6.js";import{g as Wa,a as A,u as Fi,c as $i}from"./query-vendor-BqVbYexz.js";import{G as Jr,r as Ot,a as eo,f as Or,E as qi,D as za,b as Ki,c as Yi,N as Xi,S as Zi,F as Qi}from"./graph-vendor-CUDaIrp7.js";import{l as ho}from"./registryStore-BPopBcrC.js";import{G as E,h as Rt,w as K,z as xt,c as ut,b as dt,g as Ji,d as Rn,E as es}from"./graphTheme-DCTRN8Qm.js";import{R as Va}from"./refresh-cw-B1c5rNMc.js";import{L as ts}from"./layers-CXZNgF0V.js";import{G as rs}from"./git-branch-apSLSDgQ.js";import{P as os}from"./play-CG0LOI9D.js";import{X as ns}from"./x-lyk2jiOu.js";/**
|
|
3
3
|
* @license lucide-react v1.8.0 - ISC
|
|
4
4
|
*
|
|
5
5
|
* This source code is licensed under the ISC license.
|
|
@@ -34,7 +34,7 @@ import{b as Ct,c as Xe,j as N,_ as Er,a as Oi}from"./index-DHWWI-uw.js";import{g
|
|
|
34
34
|
*
|
|
35
35
|
* This source code is licensed under the ISC license.
|
|
36
36
|
* See the LICENSE file in the root directory of this source tree.
|
|
37
|
-
*/const gs=[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]],
|
|
37
|
+
*/const gs=[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]],Oa=Ct("users",gs);/**
|
|
38
38
|
* @license lucide-react v1.8.0 - ISC
|
|
39
39
|
*
|
|
40
40
|
* This source code is licensed under the ISC license.
|
|
@@ -44,8 +44,8 @@ import{b as Ct,c as Xe,j as N,_ as Er,a as Oi}from"./index-DHWWI-uw.js";import{g
|
|
|
44
44
|
*
|
|
45
45
|
* This source code is licensed under the ISC license.
|
|
46
46
|
* See the LICENSE file in the root directory of this source tree.
|
|
47
|
-
*/const vs=[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["line",{x1:"21",x2:"16.65",y1:"21",y2:"16.65",key:"13gj7c"}],["line",{x1:"8",x2:"14",y1:"11",y2:"11",key:"durymu"}]],xs=Ct("zoom-out",vs);function br(t,e){return JSON.stringify([t,e])}function Jo(t,e){return JSON.stringify([t,e])}const j=new Jr({type:"directed",multi:!0,allowSelfLoops:!1});function Ss(t,e){const o=[];j.forEachDirectedEdge(t,e,n=>{o.push(String(n))});const r=o.length,a=new Map;o.forEach(n=>{const s=j.getEdgeAttributes(n),i=String(s.familyId||n);a.set(i,(a.get(i)??0)+1)}),o.sort((n,s)=>{const i=j.getEdgeAttributes(n),l=j.getEdgeAttributes(s),u=Number(l.visualPriority??0)-Number(i.visualPriority??0);if(u!==0)return u;const d=Number(l.weight??0)-Number(i.weight??0);return d!==0?d:n.localeCompare(s)}).forEach((n,s)=>{const i=j.getEdgeAttributes(n),l=String(i.familyId||n);j.mergeEdgeAttributes(n,{edgeId:n,familyId:l,sourceId:t,targetId:e,isParallelPair:r>1,parallelIndex:s,parallelCount:r,familySize:a.get(l)??1,curveGroup:Jo(t,e)})})}function Oa(t){for(const{id:e,attributes:o}of t)j.mergeNode(e,o)}function Fa(t){const e=new Map;for(const{id:o,familyId:r,source:a,target:n,attributes:s}of t){if(a===n)continue;const i=String(s.edgeId||o),l=String(s.familyId||r||i);j.hasNode(a)&&j.hasNode(n)&&(j.mergeDirectedEdgeWithKey(i,a,n,{...s,edgeId:i,familyId:l,sourceId:a,targetId:n}),e.set(br(a,n),{source:a,target:n}))}e.forEach(({source:o,target:r})=>{Ss(o,r)})}function ws(){j.clear()}function Fr(...t){return t.filter(Boolean).join(" ")}function Or(t){const e=Xe.c(11);if(e[0]!=="cfb1804724d22780a78a9168ccf5cc5d8ee78fc0ed9f619e68fa70032a0ef566"){for(let b=0;b<11;b+=1)e[b]=Symbol.for("react.memo_cache_sentinel");e[0]="cfb1804724d22780a78a9168ccf5cc5d8ee78fc0ed9f619e68fa70032a0ef566"}const{children:o,tone:r,padding:a,className:n,style:s}=t,i=r===void 0?"default":r,l=a===void 0?"default":a,u=i!=="default"&&`sem-surface--${i}`;let d;e[1]!==n||e[2]!==u?(d=Fr("sem-surface",u,n),e[1]=n,e[2]=u,e[3]=d):d=e[3];let c;e[4]!==o||e[5]!==l?(c=l==="none"?o:N.jsxDEV("div",{className:Fr("sem-surface-body",l==="tight"&&"sem-surface-body--tight"),children:o},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/ui/primitives.tsx",lineNumber:115,columnNumber:42},this),e[4]=o,e[5]=l,e[6]=c):c=e[6];let p;return e[7]!==s||e[8]!==d||e[9]!==c?(p=N.jsxDEV("div",{className:d,style:s,children:c},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/ui/primitives.tsx",lineNumber:124,columnNumber:10},this),e[7]=s,e[8]=d,e[9]=c,e[10]=p):p=e[10],p}function bt(t){const e=Xe.c(6);if(e[0]!=="cfb1804724d22780a78a9168ccf5cc5d8ee78fc0ed9f619e68fa70032a0ef566"){for(let l=0;l<6;l+=1)e[l]=Symbol.for("react.memo_cache_sentinel");e[0]="cfb1804724d22780a78a9168ccf5cc5d8ee78fc0ed9f619e68fa70032a0ef566"}const{children:o,tone:r}=t,a=r===void 0?"default":r,n=a!=="default"&&`sem-chip--${a}`;let s;e[1]!==n?(s=Fr("sem-chip",n),e[1]=n,e[2]=s):s=e[2];let i;return e[3]!==o||e[4]!==s?(i=N.jsxDEV("span",{className:s,children:o},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/ui/primitives.tsx",lineNumber:225,columnNumber:10},this),e[3]=o,e[4]=s,e[5]=i):i=e[5],i}function Ns(t){const e=Xe.c(9);if(e[0]!=="cfb1804724d22780a78a9168ccf5cc5d8ee78fc0ed9f619e68fa70032a0ef566"){for(let d=0;d<9;d+=1)e[d]=Symbol.for("react.memo_cache_sentinel");e[0]="cfb1804724d22780a78a9168ccf5cc5d8ee78fc0ed9f619e68fa70032a0ef566"}const{children:o,open:r,className:a}=t,n=r===void 0?!0:r;let s;e[1]!==a?(s=Fr("sem-inspector",a),e[1]=a,e[2]=s):s=e[2];const i=n?"block":"none";let l;e[3]!==i?(l={display:i},e[3]=i,e[4]=l):l=e[4];let u;return e[5]!==o||e[6]!==s||e[7]!==l?(u=N.jsxDEV(Or,{className:s,padding:"none",style:l,children:o},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/ui/primitives.tsx",lineNumber:308,columnNumber:10},this),e[5]=o,e[6]=s,e[7]=l,e[8]=u):u=e[8],u}const Es={id:"hover-activation",attach:()=>{},detach:()=>{},onNodeEnter:(t,e)=>{t.setHoveredNodeId(e)},onNodeLeave:(t,e)=>{t.getInteractionState().hoveredNodeId===e&&t.setHoveredNodeId(null)}},As={id:"click-selection",attach:()=>{},detach:()=>{},onNodeClick:(t,e)=>{t.setHoveredNodeId(e),t.onEdgeSelectionChange(""),t.getInteractionState().selectedNodeId===e?t.onNodeSelectionChange(""):t.onNodeSelectionChange(e)},onEdgeClick:(t,e)=>{t.setHoveredNodeId(null),t.getInteractionState().selectedEdgeId===e?t.onEdgeSelectionChange(""):t.onEdgeSelectionChange(e)},onStageClick:t=>{t.setHoveredNodeId(null),t.onEdgeSelectionChange(""),t.onNodeSelectionChange("")}},ks={id:"focus-camera",attach:()=>{},detach:()=>{},performAction:(t,e)=>e.type==="focusNode"?(t.focusNodeInView(e.nodeId),!0):e.type==="centerSelection"?(t.centerSelectionInView(e.nodeId),!0):e.type==="centerGroupedSelection"?(t.centerGroupedSelectionInView(e.nodeId),!0):!1};function Cs(){let t="",e="";return{id:"search-focus",attach:()=>{},detach:()=>{t="",e=""},onStateChange:(o,r)=>{const a=r.selectedNodeId,n=r.viewMode;if(n!==e){e=n,t=a;return}if(!a||a===t){t=a,e=n;return}t=a,e=n,o.dispatchAction({type:n==="grouped"?"centerGroupedSelection":"centerSelection",nodeId:a})}}}const Is=6,Ds=60;function _s(){let t="",e=null,o=0;function r(){o++,e!==null&&(clearTimeout(e),e=null)}function a(n,s,i){s>=Is||(e=setTimeout(()=>{i===o&&(n.refresh(),a(n,s+1,i))},Ds))}return{id:"path-highlight",attach:()=>{},detach:n=>{r(),t="",n.sigma.refresh()},onStateChange:(n,s)=>{const i=s.activePath.join("::");i!==t&&(t=i,r(),n.sigma.refresh(),s.activePath.length>2&&a(n.sigma,0,o))}}}const Gs={id:"fit-view",attach:()=>{},detach:()=>{},performAction:(t,e)=>e.type!=="fitView"?!1:(t.fitCurrentView(),!0)};function Ls(){let t=null;return{id:"view-mode-switch",attach:()=>{},detach:()=>{t=null},onStateChange:(e,o)=>{if(o.viewMode===t)return;t=o.viewMode;const r=o.focusedNodeId;if(o.viewMode==="focused"&&r){e.dispatchAction({type:"focusNode",nodeId:r});return}e.dispatchAction({type:"fitView"})}}}function wr(t,e=E){return String(t.baseColor||t.color||e.palette.semantic[0])}function $a(t,e=E){const o=new Map;return t.forEachNode((r,a)=>{if(a.hidden)return;const n=String(a.semanticGroup||a.nodeType||"entity"),s=String(a.semanticBaseColor||wr(a,e)),i=JSON.stringify([n,s]),l=o.get(i);l?l.count+=1:o.set(i,{id:i,group:n,color:s,count:1})}),[...o.values()].sort((r,a)=>r.group.localeCompare(a.group)||r.color.localeCompare(a.color))}const Ps=[["biomolecule",/\b(gene|protein|enzyme|receptor|target|transcript|rna|dna|mirna|biomolecule|peptide)\b/i],["condition",/\b(disease|condition|phenotype|symptom|disorder|syndrome|diagnosis|pathology|trait)\b/i],["compound",/\b(drug|chemical|compound|metabolite|molecule|small[_\s-]?molecule|ligand|therapeutic|medication|substance)\b/i],["process",/\b(pathway|process|mechanism|function|ontology|biological[_\s-]?process|cellular[_\s-]?process|program|module)\b/i]];function qa(t,e,o,r){const a=[t,e,o,String(r?.type??""),String(r?.category??""),String(r?.label??"")].filter(n=>typeof n=="string"&&n.trim().length>0).join(" ");for(const[n,s]of Ps)if(s.test(a))return n;return"entity"}var fo,jn;function en(){if(jn)return fo;jn=1;function t(o){return!o||typeof o!="object"||typeof o=="function"||Array.isArray(o)||o instanceof Set||o instanceof Map||o instanceof RegExp||o instanceof Date}function e(o,r){o=o||{};var a={};for(var n in r){var s=o[n],i=r[n];if(!t(i)){a[n]=e(s,i);continue}s===void 0?a[n]=i:a[n]=s}return a}return fo=e,fo}var mo,Hn;function Ms(){if(Hn)return mo;Hn=1;var t=Bt();return mo=function(o){if(!t(o))throw new Error("graphology-utils/infer-type: expecting a valid graphology instance.");var r=o.type;return r!=="mixed"?r:o.directedSize===0&&o.undirectedSize===0||o.directedSize>0&&o.undirectedSize>0?"mixed":o.directedSize>0?"directed":"undirected"},mo}var go,Tn;function Ar(){if(Tn)return go;Tn=1;function t(e){if(typeof e!="function")throw new Error("obliterator/iterator: expecting a function!");this.next=e}return typeof Symbol<"u"&&(t.prototype[Symbol.iterator]=function(){return this}),t.of=function(){var e=arguments,o=e.length,r=0;return new t(function(){return r>=o?{done:!0}:{done:!1,value:e[r++]}})},t.empty=function(){var e=new t(function(){return{done:!0}});return e},t.fromSequence=function(e){var o=0,r=e.length;return new t(function(){return o>=r?{done:!0}:{done:!1,value:e[o++]}})},t.is=function(e){return e instanceof t?!0:typeof e=="object"&&e!==null&&typeof e.next=="function"},go=t,go}var bo={},Wn;function ar(){return Wn||(Wn=1,(function(t){var e=Math.pow(2,8)-1,o=Math.pow(2,16)-1,r=Math.pow(2,32)-1,a=Math.pow(2,7)-1,n=Math.pow(2,15)-1,s=Math.pow(2,31)-1;t.getPointerArray=function(l){var u=l-1;if(u<=e)return Uint8Array;if(u<=o)return Uint16Array;if(u<=r)return Uint32Array;throw new Error("mnemonist: Pointer Array of size > 4294967295 is not supported.")},t.getSignedPointerArray=function(l){var u=l-1;return u<=a?Int8Array:u<=n?Int16Array:u<=s?Int32Array:Float64Array},t.getNumberType=function(l){return l===(l|0)?Math.sign(l)===-1?l<=127&&l>=-128?Int8Array:l<=32767&&l>=-32768?Int16Array:Int32Array:l<=255?Uint8Array:l<=65535?Uint16Array:Uint32Array:Float64Array};var i={Uint8Array:1,Int8Array:2,Uint16Array:3,Int16Array:4,Uint32Array:5,Int32Array:6,Float32Array:7,Float64Array:8};t.getMinimalRepresentation=function(l,u){var d=null,c=0,p,b,m,f,y;for(f=0,y=l.length;f<y;f++)m=u?u(l[f]):l[f],b=t.getNumberType(m),p=i[b.name],p>c&&(c=p,d=b);return d},t.isTypedArray=function(l){return typeof ArrayBuffer<"u"&&ArrayBuffer.isView(l)},t.concat=function(){var l=0,u,d,c;for(u=0,c=arguments.length;u<c;u++)l+=arguments[u].length;var p=new arguments[0].constructor(l);for(u=0,d=0;u<c;u++)p.set(arguments[u],d),d+=arguments[u].length;return p},t.indices=function(l){for(var u=t.getPointerArray(l),d=new u(l),c=0;c<l;c++)d[c]=c;return d}})(bo)),bo}var yo,zn;function Rs(){if(zn)return yo;zn=1;var t=Ar(),e=ar().getPointerArray;function o(r,a){arguments.length<2&&(a=r,r=Array);var n=e(a);this.size=0,this.length=a,this.dense=new n(a),this.sparse=new n(a),this.vals=new r(a)}return o.prototype.clear=function(){this.size=0},o.prototype.has=function(r){var a=this.sparse[r];return a<this.size&&this.dense[a]===r},o.prototype.get=function(r){var a=this.sparse[r];if(a<this.size&&this.dense[a]===r)return this.vals[a]},o.prototype.set=function(r,a){var n=this.sparse[r];return n<this.size&&this.dense[n]===r?(this.vals[n]=a,this):(this.dense[this.size]=r,this.sparse[r]=this.size,this.vals[this.size]=a,this.size++,this)},o.prototype.delete=function(r){var a=this.sparse[r];return a>=this.size||this.dense[a]!==r?!1:(a=this.dense[this.size-1],this.dense[this.sparse[r]]=a,this.sparse[a]=this.sparse[r],this.size--,!0)},o.prototype.forEach=function(r,a){a=arguments.length>1?a:this;for(var n=0;n<this.size;n++)r.call(a,this.vals[n],this.dense[n])},o.prototype.keys=function(){var r=this.size,a=this.dense,n=0;return new t(function(){if(n<r){var s=a[n];return n++,{value:s}}return{done:!0}})},o.prototype.values=function(){var r=this.size,a=this.vals,n=0;return new t(function(){if(n<r){var s=a[n];return n++,{value:s}}return{done:!0}})},o.prototype.entries=function(){var r=this.size,a=this.dense,n=this.vals,s=0;return new t(function(){if(s<r){var i=[a[s],n[s]];return s++,{value:i}}return{done:!0}})},typeof Symbol<"u"&&(o.prototype[Symbol.iterator]=o.prototype.entries),o.prototype.inspect=function(){for(var r=new Map,a=0;a<this.size;a++)r.set(this.dense[a],this.vals[a]);return Object.defineProperty(r,"constructor",{value:o,enumerable:!1}),r.length=this.length,this.vals.constructor!==Array&&(r.type=this.vals.constructor.name),r},typeof Symbol<"u"&&(o.prototype[Symbol.for("nodejs.util.inspect.custom")]=o.prototype.inspect),yo=o,yo}var vo,Vn;function js(){if(Vn)return vo;Vn=1;var t=Ar(),e=ar().getPointerArray;function o(r){var a=e(r);this.start=0,this.size=0,this.capacity=r,this.dense=new a(r),this.sparse=new a(r)}return o.prototype.clear=function(){this.start=0,this.size=0},o.prototype.has=function(r){if(this.size===0)return!1;var a=this.sparse[r],n=a<this.capacity&&a>=this.start&&a<this.start+this.size||a<(this.start+this.size)%this.capacity;return n&&this.dense[a]===r},o.prototype.enqueue=function(r){var a=this.sparse[r];if(this.size!==0){var n=a<this.capacity&&a>=this.start&&a<this.start+this.size||a<(this.start+this.size)%this.capacity;if(n&&this.dense[a]===r)return this}return a=(this.start+this.size)%this.capacity,this.dense[a]=r,this.sparse[r]=a,this.size++,this},o.prototype.dequeue=function(){if(this.size!==0){var r=this.start;this.size--,this.start++,this.start===this.capacity&&(this.start=0);var a=this.dense[r];return this.sparse[a]=this.capacity,a}},o.prototype.forEach=function(r,a){a=arguments.length>1?a:this;for(var n=this.capacity,s=this.size,i=this.start,l=0;l<s;)r.call(a,this.dense[i],l,this),i++,l++,i===n&&(i=0)},o.prototype.values=function(){var r=this.dense,a=this.capacity,n=this.size,s=this.start,i=0;return new t(function(){if(i>=n)return{done:!0};var l=r[s];return s++,i++,s===a&&(s=0),{value:l,done:!1}})},typeof Symbol<"u"&&(o.prototype[Symbol.iterator]=o.prototype.values),o.prototype.inspect=function(){var r=[];return this.forEach(function(a){r.push(a)}),Object.defineProperty(r,"constructor",{value:o,enumerable:!1}),r.capacity=this.capacity,r},typeof Symbol<"u"&&(o.prototype[Symbol.for("nodejs.util.inspect.custom")]=o.prototype.inspect),vo=o,vo}var xo,Un;function Hs(){if(Un)return xo;Un=1;function t(o){return function(r){return typeof r!="number"&&(r=r.length),Math.floor(o()*r)}}var e=t(Math.random);return e.createRandomIndex=t,xo=e,xo}var Lr={},Bn;function Ts(){if(Bn)return Lr;Bn=1;var t=ar(),e=en(),o=eo().createEdgeWeightGetter,r=Symbol.for("nodejs.util.inspect.custom"),a={getEdgeWeight:"weight",keepDendrogram:!1,resolution:1};function n(i,l){l=e(l,a);var u=l.resolution,d=o(l.getEdgeWeight).fromEntry,c=(i.size-i.selfLoopCount)*2,p=t.getPointerArray(c),b=t.getPointerArray(i.order+1),m=l.getEdgeWeight?Float64Array:t.getPointerArray(i.size*2);this.C=i.order,this.M=0,this.E=c,this.U=0,this.resolution=u,this.level=0,this.graph=i,this.nodes=new Array(i.order),this.keepDendrogram=l.keepDendrogram,this.neighborhood=new b(c),this.weights=new m(c),this.loops=new m(i.order),this.starts=new p(i.order+1),this.belongings=new b(i.order),this.dendrogram=[],this.mapping=null,this.counts=new b(i.order),this.unused=new b(i.order),this.totalWeights=new m(i.order);var f={},y,h=0,v=0,x=this;i.forEachNode(function(g){x.nodes[h]=g,f[g]=h,v+=i.undirectedDegreeWithoutSelfLoops(g),x.starts[h]=v,x.belongings[h]=h,x.counts[h]=1,h++}),i.forEachEdge(function(g,w,C,I,k,D,_){if(y=d(g,w,C,I,k,D,_),C=f[C],I=f[I],x.M+=y,C===I)x.totalWeights[C]+=y*2,x.loops[C]=y*2;else{x.totalWeights[C]+=y,x.totalWeights[I]+=y;var L=--x.starts[C],G=--x.starts[I];x.neighborhood[L]=I,x.neighborhood[G]=C,x.weights[L]=y,x.weights[G]=y}}),this.starts[h]=this.E,this.keepDendrogram?this.dendrogram.push(this.belongings.slice()):this.mapping=this.belongings.slice()}n.prototype.isolate=function(i,l){var u=this.belongings[i];if(this.counts[u]===1)return u;var d=this.unused[--this.U],c=this.loops[i];return this.totalWeights[u]-=l+c,this.totalWeights[d]+=l+c,this.belongings[i]=d,this.counts[u]--,this.counts[d]++,d},n.prototype.move=function(i,l,u){var d=this.belongings[i],c=this.loops[i];this.totalWeights[d]-=l+c,this.totalWeights[u]+=l+c,this.belongings[i]=u;var p=this.counts[d]--===1;this.counts[u]++,p&&(this.unused[this.U++]=d)},n.prototype.computeNodeDegree=function(i){var l,u,d,c=0;for(l=this.starts[i],u=this.starts[i+1];l<u;l++)d=this.weights[l],c+=d;return c},n.prototype.expensiveIsolate=function(i){var l=this.computeNodeDegree(i);return this.isolate(i,l)},n.prototype.expensiveMove=function(i,l){var u=this.computeNodeDegree(i);this.move(i,u,l)},n.prototype.zoomOut=function(){var i=new Array(this.C-this.U),l={},u=this.nodes.length,d=0,c=0,p,b,m,f,y,h,v,x,g;for(p=0,m=this.C;p<m;p++)h=this.belongings[p],h in l||(l[h]=d,i[d]={adj:{},totalWeights:this.totalWeights[h],internalWeights:0},d++),this.belongings[p]=l[h];var w,C;if(this.keepDendrogram){for(w=this.dendrogram[this.level],C=new(t.getPointerArray(d))(u),p=0;p<u;p++)C[p]=this.belongings[w[p]];this.dendrogram.push(C)}else for(p=0;p<u;p++)this.mapping[p]=this.belongings[this.mapping[p]];for(p=0,m=this.C;p<m;p++)for(h=this.belongings[p],x=i[h],g=x.adj,x.internalWeights+=this.loops[p],b=this.starts[p],f=this.starts[p+1];b<f;b++){if(y=this.neighborhood[b],v=this.belongings[y],h===v){x.internalWeights+=this.weights[b];continue}v in g||(g[v]=0),g[v]+=this.weights[b]}for(this.C=d,y=0,h=0;h<d;h++){x=i[h],g=x.adj,h=+h,this.totalWeights[h]=x.totalWeights,this.loops[h]=x.internalWeights,this.counts[h]=1,this.starts[h]=y,this.belongings[h]=h;for(v in g)this.neighborhood[y]=+v,this.weights[y]=g[v],c++,y++}return this.starts[d]=c,this.E=c,this.U=0,this.level++,l},n.prototype.modularity=function(){var i,l,u,d,c,p=0,b=this.M*2,m=new Float64Array(this.C);for(u=0;u<this.C;u++)for(i=this.belongings[u],m[i]+=this.loops[u],d=this.starts[u],c=this.starts[u+1];d<c;d++)l=this.belongings[this.neighborhood[d]],i===l&&(m[i]+=this.weights[d]);for(u=0;u<this.C;u++)p+=m[u]/b-Math.pow(this.totalWeights[u]/b,2)*this.resolution;return p},n.prototype.delta=function(i,l,u,d){var c=this.M,p=this.totalWeights[d];return l+=this.loops[i],u/c-p*l*this.resolution/(2*c*c)},n.prototype.deltaWithOwnCommunity=function(i,l,u,d){var c=this.M,p=this.totalWeights[d];return l+=this.loops[i],u/c-(p-l)*l*this.resolution/(2*c*c)},n.prototype.fastDelta=function(i,l,u,d){var c=this.M,p=this.totalWeights[d];return l+=this.loops[i],u-l*p*this.resolution/(2*c)},n.prototype.fastDeltaWithOwnCommunity=function(i,l,u,d){var c=this.M,p=this.totalWeights[d];return l+=this.loops[i],u-l*(p-l)*this.resolution/(2*c)},n.prototype.bounds=function(i){return[this.starts[i],this.starts[i+1]]},n.prototype.project=function(){var i=this,l={};return i.nodes.slice(0,this.C).forEach(function(u,d){l[u]=Array.from(i.neighborhood.slice(i.starts[d],i.starts[d+1])).map(function(c){return i.nodes[c]})}),l},n.prototype.collect=function(i){arguments.length<1&&(i=this.level);var l={},u=this.keepDendrogram?this.dendrogram[i]:this.mapping,d,c;for(d=0,c=u.length;d<c;d++)l[this.nodes[d]]=u[d];return l},n.prototype.assign=function(i,l){arguments.length<2&&(l=this.level);var u=this.keepDendrogram?this.dendrogram[l]:this.mapping,d,c;for(d=0,c=u.length;d<c;d++)this.graph.setNodeAttribute(this.nodes[d],i,u[d])},n.prototype[r]=function(){var i={};Object.defineProperty(i,"constructor",{value:n,enumerable:!1}),i.C=this.C,i.M=this.M,i.E=this.E,i.U=this.U,i.resolution=this.resolution,i.level=this.level,i.nodes=this.nodes,i.starts=this.starts.slice(0,i.C+1);var l=["neighborhood","weights"],u=["counts","loops","belongings","totalWeights"],d=this;return l.forEach(function(c){i[c]=d[c].slice(0,i.E)}),u.forEach(function(c){i[c]=d[c].slice(0,i.C)}),i.unused=this.unused.slice(0,this.U),this.keepDendrogram?i.dendrogram=this.dendrogram:i.mapping=this.mapping,i};function s(i,l){l=e(l,a);var u=l.resolution,d=o(l.getEdgeWeight).fromEntry,c=(i.size-i.selfLoopCount)*2,p=t.getPointerArray(c),b=t.getPointerArray(i.order+1),m=l.getEdgeWeight?Float64Array:t.getPointerArray(i.size*2);this.C=i.order,this.M=0,this.E=c,this.U=0,this.resolution=u,this.level=0,this.graph=i,this.nodes=new Array(i.order),this.keepDendrogram=l.keepDendrogram,this.neighborhood=new b(c),this.weights=new m(c),this.loops=new m(i.order),this.starts=new p(i.order+1),this.offsets=new p(i.order),this.belongings=new b(i.order),this.dendrogram=[],this.counts=new b(i.order),this.unused=new b(i.order),this.totalInWeights=new m(i.order),this.totalOutWeights=new m(i.order);var f={},y,h=0,v=0,x=this;i.forEachNode(function(g){x.nodes[h]=g,f[g]=h,v+=i.outDegreeWithoutSelfLoops(g),x.starts[h]=v,v+=i.inDegreeWithoutSelfLoops(g),x.offsets[h]=v,x.belongings[h]=h,x.counts[h]=1,h++}),i.forEachEdge(function(g,w,C,I,k,D,_){if(y=d(g,w,C,I,k,D,_),C=f[C],I=f[I],x.M+=y,C===I)x.loops[C]+=y,x.totalInWeights[C]+=y,x.totalOutWeights[C]+=y;else{x.totalOutWeights[C]+=y,x.totalInWeights[I]+=y;var L=--x.starts[C],G=--x.offsets[I];x.neighborhood[L]=I,x.neighborhood[G]=C,x.weights[L]=y,x.weights[G]=y}}),this.starts[h]=this.E,this.keepDendrogram?this.dendrogram.push(this.belongings.slice()):this.mapping=this.belongings.slice()}return s.prototype.bounds=n.prototype.bounds,s.prototype.inBounds=function(i){return[this.offsets[i],this.starts[i+1]]},s.prototype.outBounds=function(i){return[this.starts[i],this.offsets[i]]},s.prototype.project=n.prototype.project,s.prototype.projectIn=function(){var i=this,l={};return i.nodes.slice(0,this.C).forEach(function(u,d){l[u]=Array.from(i.neighborhood.slice(i.offsets[d],i.starts[d+1])).map(function(c){return i.nodes[c]})}),l},s.prototype.projectOut=function(){var i=this,l={};return i.nodes.slice(0,this.C).forEach(function(u,d){l[u]=Array.from(i.neighborhood.slice(i.starts[d],i.offsets[d])).map(function(c){return i.nodes[c]})}),l},s.prototype.isolate=function(i,l,u){var d=this.belongings[i];if(this.counts[d]===1)return d;var c=this.unused[--this.U],p=this.loops[i];return this.totalInWeights[d]-=l+p,this.totalInWeights[c]+=l+p,this.totalOutWeights[d]-=u+p,this.totalOutWeights[c]+=u+p,this.belongings[i]=c,this.counts[d]--,this.counts[c]++,c},s.prototype.move=function(i,l,u,d){var c=this.belongings[i],p=this.loops[i];this.totalInWeights[c]-=l+p,this.totalInWeights[d]+=l+p,this.totalOutWeights[c]-=u+p,this.totalOutWeights[d]+=u+p,this.belongings[i]=d;var b=this.counts[c]--===1;this.counts[d]++,b&&(this.unused[this.U++]=c)},s.prototype.computeNodeInDegree=function(i){var l,u,d,c=0;for(l=this.offsets[i],u=this.starts[i+1];l<u;l++)d=this.weights[l],c+=d;return c},s.prototype.computeNodeOutDegree=function(i){var l,u,d,c=0;for(l=this.starts[i],u=this.offsets[i];l<u;l++)d=this.weights[l],c+=d;return c},s.prototype.expensiveMove=function(i,l){var u=this.computeNodeInDegree(i),d=this.computeNodeOutDegree(i);this.move(i,u,d,l)},s.prototype.zoomOut=function(){var i=new Array(this.C-this.U),l={},u=this.nodes.length,d=0,c=0,p,b,m,f,y,h,v,x,g,w,C,I,k;for(p=0,m=this.C;p<m;p++)h=this.belongings[p],h in l||(l[h]=d,i[d]={inAdj:{},outAdj:{},totalInWeights:this.totalInWeights[h],totalOutWeights:this.totalOutWeights[h],internalWeights:0},d++),this.belongings[p]=l[h];var D,_;if(this.keepDendrogram){for(D=this.dendrogram[this.level],_=new(t.getPointerArray(d))(u),p=0;p<u;p++)_[p]=this.belongings[D[p]];this.dendrogram.push(_)}else for(p=0;p<u;p++)this.mapping[p]=this.belongings[this.mapping[p]];for(p=0,m=this.C;p<m;p++)for(h=this.belongings[p],g=this.offsets[p],x=i[h],I=x.inAdj,k=x.outAdj,x.internalWeights+=this.loops[p],b=this.starts[p],f=this.starts[p+1];b<f;b++){if(y=this.neighborhood[b],v=this.belongings[y],w=b<g,C=w?k:I,h===v){w&&(x.internalWeights+=this.weights[b]);continue}v in C||(C[v]=0),C[v]+=this.weights[b]}for(this.C=d,y=0,h=0;h<d;h++){x=i[h],I=x.inAdj,k=x.outAdj,h=+h,this.totalInWeights[h]=x.totalInWeights,this.totalOutWeights[h]=x.totalOutWeights,this.loops[h]=x.internalWeights,this.counts[h]=1,this.starts[h]=y,this.belongings[h]=h;for(v in k)this.neighborhood[y]=+v,this.weights[y]=k[v],c++,y++;this.offsets[h]=y;for(v in I)this.neighborhood[y]=+v,this.weights[y]=I[v],c++,y++}return this.starts[d]=c,this.E=c,this.U=0,this.level++,l},s.prototype.modularity=function(){var i,l,u,d,c,p=0,b=this.M,m=new Float64Array(this.C);for(u=0;u<this.C;u++)for(i=this.belongings[u],m[i]+=this.loops[u],d=this.starts[u],c=this.offsets[u];d<c;d++)l=this.belongings[this.neighborhood[d]],i===l&&(m[i]+=this.weights[d]);for(u=0;u<this.C;u++)p+=m[u]/b-this.totalInWeights[u]*this.totalOutWeights[u]/Math.pow(b,2)*this.resolution;return p},s.prototype.delta=function(i,l,u,d,c){var p=this.M,b=this.totalInWeights[c],m=this.totalOutWeights[c],f=this.loops[i];return l+=f,u+=f,d/p-(u*b+l*m)*this.resolution/(p*p)},s.prototype.deltaWithOwnCommunity=function(i,l,u,d,c){var p=this.M,b=this.totalInWeights[c],m=this.totalOutWeights[c],f=this.loops[i];return l+=f,u+=f,d/p-(u*(b-l)+l*(m-u))*this.resolution/(p*p)},s.prototype.collect=n.prototype.collect,s.prototype.assign=n.prototype.assign,s.prototype[r]=function(){var i={};Object.defineProperty(i,"constructor",{value:s,enumerable:!1}),i.C=this.C,i.M=this.M,i.E=this.E,i.U=this.U,i.resolution=this.resolution,i.level=this.level,i.nodes=this.nodes,i.starts=this.starts.slice(0,i.C+1);var l=["neighborhood","weights"],u=["counts","offsets","loops","belongings","totalInWeights","totalOutWeights"],d=this;return l.forEach(function(c){i[c]=d[c].slice(0,i.E)}),u.forEach(function(c){i[c]=d[c].slice(0,i.C)}),i.unused=this.unused.slice(0,this.U),this.keepDendrogram?i.dendrogram=this.dendrogram:i.mapping=this.mapping,i},Lr.UndirectedLouvainIndex=n,Lr.DirectedLouvainIndex=s,Lr}var So,On;function Ws(){if(On)return So;On=1;var t=en(),e=Bt(),o=Ms(),r=Rs(),a=js(),n=Hs().createRandomIndex,s=Ts(),i=s.UndirectedLouvainIndex,l=s.DirectedLouvainIndex,u={nodeCommunityAttribute:"community",getEdgeWeight:"weight",fastLocalMoves:!0,randomWalk:!0,resolution:1,rng:Math.random};function d(h,v,x){var g=h.get(v);typeof g>"u"&&(g=0),g+=x,h.set(v,g)}var c=1e-10;function p(h,v,x,g,w){return Math.abs(g-w)<c?h===v?!1:x>h:g>w}function b(h,v,x){var g=new i(v,{getEdgeWeight:x.getEdgeWeight,keepDendrogram:h,resolution:x.resolution}),w=n(x.rng),C=!0,I=!0,k,D,_=new r(Float64Array,g.C),L,G,V,q,W,F,ee,U,T,P,z,te,Q,O,le,J,re=0,ce=0,ue=[],ge,se;for(x.fastLocalMoves&&(L=new a(g.C));C;){if(P=g.C,C=!1,I=!0,x.fastLocalMoves){for(se=0,F=x.randomWalk?w(P):0,ee=0;ee<P;ee++,F++)U=F%P,L.enqueue(U);for(;L.size!==0;){for(U=L.dequeue(),ce++,z=0,_.clear(),k=g.belongings[U],G=g.starts[U],V=g.starts[U+1];G<V;G++)T=g.neighborhood[G],q=g.weights[G],D=g.belongings[T],z+=q,d(_,D,q);for(O=g.fastDeltaWithOwnCommunity(U,z,_.get(k)||0,k),Q=k,W=0;W<_.size;W++)D=_.dense[W],D!==k&&(te=_.vals[W],re++,J=g.fastDelta(U,z,te,D),le=p(Q,k,D,J,O),le&&(O=J,Q=D));if(O<0){if(Q=g.isolate(U,z),Q===k)continue}else{if(Q===k)continue;g.move(U,z,Q)}for(C=!0,se++,G=g.starts[U],V=g.starts[U+1];G<V;G++)T=g.neighborhood[G],D=g.belongings[T],D!==Q&&L.enqueue(T)}ue.push(se)}else for(ge=[],ue.push(ge);I;){for(I=!1,se=0,F=x.randomWalk?w(P):0,ee=0;ee<P;ee++,F++){for(U=F%P,ce++,z=0,_.clear(),k=g.belongings[U],G=g.starts[U],V=g.starts[U+1];G<V;G++)T=g.neighborhood[G],q=g.weights[G],D=g.belongings[T],z+=q,d(_,D,q);for(O=g.fastDeltaWithOwnCommunity(U,z,_.get(k)||0,k),Q=k,W=0;W<_.size;W++)D=_.dense[W],D!==k&&(te=_.vals[W],re++,J=g.fastDelta(U,z,te,D),le=p(Q,k,D,J,O),le&&(O=J,Q=D));if(O<0){if(Q=g.isolate(U,z),Q===k)continue}else{if(Q===k)continue;g.move(U,z,Q)}I=!0,se++}ge.push(se),C=I||C}C&&g.zoomOut()}var Ce={index:g,deltaComputations:re,nodesVisited:ce,moves:ue};return Ce}function m(h,v,x){var g=new l(v,{getEdgeWeight:x.getEdgeWeight,keepDendrogram:h,resolution:x.resolution}),w=n(x.rng),C=!0,I=!0,k,D,_=new r(Float64Array,g.C),L,G,V,q,W,F,ee,U,T,P,z,te,Q,O,le,J,re,ce,ue,ge=0,se=0,Ce=[],_e,be;for(x.fastLocalMoves&&(L=new a(g.C));C;){if(te=g.C,C=!1,I=!0,x.fastLocalMoves){for(be=0,U=x.randomWalk?w(te):0,T=0;T<te;T++,U++)P=U%te,L.enqueue(P);for(;L.size!==0;){for(P=L.dequeue(),se++,Q=0,O=0,_.clear(),k=g.belongings[P],G=g.starts[P],V=g.starts[P+1],q=g.offsets[P];G<V;G++)W=G<q,z=g.neighborhood[G],F=g.weights[G],D=g.belongings[z],W?O+=F:Q+=F,d(_,D,F);for(re=g.deltaWithOwnCommunity(P,Q,O,_.get(k)||0,k),J=k,ee=0;ee<_.size;ee++)D=_.dense[ee],D!==k&&(le=_.vals[ee],ge++,ue=g.delta(P,Q,O,le,D),ce=p(J,k,D,ue,re),ce&&(re=ue,J=D));if(re<0){if(J=g.isolate(P,Q,O),J===k)continue}else{if(J===k)continue;g.move(P,Q,O,J)}for(C=!0,be++,G=g.starts[P],V=g.starts[P+1];G<V;G++)z=g.neighborhood[G],D=g.belongings[z],D!==J&&L.enqueue(z)}Ce.push(be)}else for(_e=[],Ce.push(_e);I;){for(I=!1,be=0,U=x.randomWalk?w(te):0,T=0;T<te;T++,U++){for(P=U%te,se++,Q=0,O=0,_.clear(),k=g.belongings[P],G=g.starts[P],V=g.starts[P+1],q=g.offsets[P];G<V;G++)W=G<q,z=g.neighborhood[G],F=g.weights[G],D=g.belongings[z],W?O+=F:Q+=F,d(_,D,F);for(re=g.deltaWithOwnCommunity(P,Q,O,_.get(k)||0,k),J=k,ee=0;ee<_.size;ee++)D=_.dense[ee],D!==k&&(le=_.vals[ee],ge++,ue=g.delta(P,Q,O,le,D),ce=p(J,k,D,ue,re),ce&&(re=ue,J=D));if(re<0){if(J=g.isolate(P,Q,O),J===k)continue}else{if(J===k)continue;g.move(P,Q,O,J)}I=!0,be++}_e.push(be),C=I||C}C&&g.zoomOut()}var Me={index:g,deltaComputations:ge,nodesVisited:se,moves:Ce};return Me}function f(h,v,x,g){if(!e(x))throw new Error("graphology-communities-louvain: the given graph is not a valid graphology instance.");var w=o(x);if(w==="mixed")throw new Error("graphology-communities-louvain: cannot run the algorithm on a true mixed graph.");g=t(g,u);var C=0;if(x.size===0){if(h){x.forEachNode(function(G){x.setNodeAttribute(G,g.nodeCommunityAttribute,C++)});return}var I={};return x.forEachNode(function(G){I[G]=C++}),v?{communities:I,count:x.order,deltaComputations:0,dendrogram:null,level:0,modularity:NaN,moves:null,nodesVisited:0,resolution:g.resolution}:I}var k=w==="undirected"?b:m,D=k(v,x,g),_=D.index;if(!v){if(h){_.assign(g.nodeCommunityAttribute);return}return _.collect()}var L={count:_.C,deltaComputations:D.deltaComputations,dendrogram:_.dendrogram,level:_.level,modularity:_.modularity(),moves:D.moves,nodesVisited:D.nodesVisited,resolution:g.resolution};return h?(_.assign(g.nodeCommunityAttribute),L):(L.communities=_.collect(),L)}var y=f.bind(null,!1,!1);return y.assign=f.bind(null,!0,!1),y.detailed=f.bind(null,!1,!0),y.defaults=u,So=y,So}var zs=Ws();const Vs=Wa(zs);var yt={},Ut={},Pr={},Fn;function Us(){return Fn||(Fn=1,Pr.ARRAY_BUFFER_SUPPORT=typeof ArrayBuffer<"u",Pr.SYMBOL_SUPPORT=typeof Symbol<"u"),Pr}var wo,$n;function tn(){if($n)return wo;$n=1;var t=Us(),e=t.ARRAY_BUFFER_SUPPORT,o=t.SYMBOL_SUPPORT;return wo=function(a,n){var s,i,l,u,d;if(!a)throw new Error("obliterator/forEach: invalid iterable.");if(typeof n!="function")throw new Error("obliterator/forEach: expecting a callback.");if(Array.isArray(a)||e&&ArrayBuffer.isView(a)||typeof a=="string"||a.toString()==="[object Arguments]"){for(l=0,u=a.length;l<u;l++)n(a[l],l);return}if(typeof a.forEach=="function"){a.forEach(n);return}if(o&&Symbol.iterator in a&&typeof a.next!="function"&&(a=a[Symbol.iterator]()),typeof a.next=="function"){for(s=a,l=0;d=s.next(),d.done!==!0;)n(d.value,l),l++;return}for(i in a)a.hasOwnProperty(i)&&n(a[i],i)},wo}var No,qn;function Bs(){if(qn)return No;qn=1;var t=Ar(),e=tn();function o(){this.clear()}return o.prototype.clear=function(){this.items=[],this.offset=0,this.size=0},o.prototype.enqueue=function(r){return this.items.push(r),++this.size},o.prototype.dequeue=function(){if(this.size){var r=this.items[this.offset];return++this.offset*2>=this.items.length&&(this.items=this.items.slice(this.offset),this.offset=0),this.size--,r}},o.prototype.peek=function(){if(this.size)return this.items[this.offset]},o.prototype.forEach=function(r,a){a=arguments.length>1?a:this;for(var n=this.offset,s=0,i=this.items.length;n<i;n++,s++)r.call(a,this.items[n],s,this)},o.prototype.toArray=function(){return this.items.slice(this.offset)},o.prototype.values=function(){var r=this.items,a=this.offset;return new t(function(){if(a>=r.length)return{done:!0};var n=r[a];return a++,{value:n,done:!1}})},o.prototype.entries=function(){var r=this.items,a=this.offset,n=0;return new t(function(){if(a>=r.length)return{done:!0};var s=r[a];return a++,{value:[n++,s],done:!1}})},typeof Symbol<"u"&&(o.prototype[Symbol.iterator]=o.prototype.values),o.prototype.toString=function(){return this.toArray().join(",")},o.prototype.toJSON=function(){return this.toArray()},o.prototype.inspect=function(){var r=this.toArray();return Object.defineProperty(r,"constructor",{value:o,enumerable:!1}),r},typeof Symbol<"u"&&(o.prototype[Symbol.for("nodejs.util.inspect.custom")]=o.prototype.inspect),o.from=function(r){var a=new o;return e(r,function(n){a.enqueue(n)}),a},o.of=function(){return o.from(arguments)},No=o,No}var Eo,Kn;function Os(){return Kn||(Kn=1,Eo=function(e,o){var r=o.length;if(r!==0){var a=e.length;e.length+=r;for(var n=0;n<r;n++)e[a+n]=o[n]}}),Eo}var Yn;function Fs(){if(Yn)return Ut;Yn=1;var t=Bt(),e=Bs(),o=Os();function r(u,d,c){if(!t(u))throw new Error("graphology-shortest-path: invalid graphology instance.");if(arguments.length<3)throw new Error("graphology-shortest-path: invalid number of arguments. Expecting at least 3.");if(!u.hasNode(d))throw new Error('graphology-shortest-path: the "'+d+'" source node does not exist in the given graph.');if(!u.hasNode(c))throw new Error('graphology-shortest-path: the "'+c+'" target node does not exist in the given graph.');if(d=""+d,c=""+c,d===c)return[d];var p=u.inboundNeighbors.bind(u),b=u.outboundNeighbors.bind(u),m={},f={};m[d]=null,f[c]=null;var y=[d],h=[c],v,x,g,w,C,I,k,D,_=!1;e:for(;y.length&&h.length;)if(y.length<=h.length){for(v=y,y=[],C=0,k=v.length;C<k;C++)for(x=v[C],g=b(x),I=0,D=g.length;I<D;I++)if(w=g[I],w in m||(y.push(w),m[w]=x),w in f){_=!0;break e}}else for(v=h,h=[],C=0,k=v.length;C<k;C++)for(x=v[C],g=p(x),I=0,D=g.length;I<D;I++)if(w=g[I],w in f||(h.push(w),f[w]=x),w in m){_=!0;break e}if(!_)return null;for(var L=[];w;)L.unshift(w),w=m[w];for(w=f[L[L.length-1]];w;)L.push(w),w=f[w];return L.length?L:null}function a(u,d){if(!t(u))throw new Error("graphology-shortest-path: invalid graphology instance.");if(arguments.length<2)throw new Error("graphology-shortest-path: invalid number of arguments. Expecting at least 2.");if(!u.hasNode(d))throw new Error('graphology-shortest-path: the "'+d+'" source node does not exist in the given graph.');d=""+d;var c={},p={},b,m,f,y,h,v;for(c[d]=!0,p[d]=[d];Object.keys(c).length;){b=c,c={};for(f in b)for(m=u.outboundNeighbors(f),h=0,v=m.length;h<v;h++)y=m[h],p[y]||(p[y]=p[f].concat(y),c[y]=!0)}return p}function n(u,d,c){if(!t(d))throw new Error("graphology-shortest-path: invalid graphology instance.");if(!d.hasNode(c))throw new Error('graphology-shortest-path: the "'+c+'" source node does not exist in the given graph.');c=""+c;var p=new Set,b={},m=0;b[c]=0;for(var f=[c],y,h,v;f.length!==0;){var x=[];for(y=0,h=f.length;y<h;y++)v=f[y],!p.has(v)&&(p.add(v),o(x,d[u](v)),b[v]=m);m++,f=x}return b}var s=n.bind(null,"outboundNeighbors"),i=n.bind(null,"neighbors");function l(u,d){d=""+d;var c=[],p={},b={},m=u.nodes(),f,y,h,v,x,g,w,C,I;for(g=0,C=m.length;g<C;g++)v=m[g],p[v]=[],b[v]=0;var k={};b[d]=1,k[d]=0;for(var D=e.of(d);D.size;)for(v=D.dequeue(),c.push(v),f=k[v],y=b[v],h=u.outboundNeighbors(v),w=0,I=h.length;w<I;w++)x=h[w],x in k||(D.enqueue(x),k[x]=f+1),k[x]===f+1&&(b[x]+=y,p[x].push(v));return[c,p,b]}return Ut.bidirectional=r,Ut.singleSource=a,Ut.singleSourceLength=s,Ut.undirectedSingleSourceLength=i,Ut.brandes=l,Ut}var Ao={},Xn;function $s(){if(Xn)return Ao;Xn=1;var t=function(){return!0};return Ao.edgePathFromNodePath=function(e,o){var r=o.length,a,n,s,i;if(r<2)return n=o[0],i=e.multi?e.findEdge(n,n,t):e.edge(n,n),i?[i]:[];r--;var l=new Array(r);for(a=0;a<r;a++){if(n=o[a],s=o[a+1],i=e.multi?e.findOutboundEdge(n,s,t):e.edge(n,s),i===void 0)throw new Error("graphology-shortest-path: given path is impossible in given graph.");l[a]=i}return l},Ao}var hr={},er={},Zn;function qs(){if(Zn)return er;Zn=1;var t=function(a,n){return a<n?-1:a>n?1:0},e=function(a,n){return a<n?1:a>n?-1:0};function o(a){return function(n,s){return a(s,n)}}function r(a){return a===2?function(n,s){return n[0]<s[0]?-1:n[0]>s[0]?1:n[1]<s[1]?-1:n[1]>s[1]?1:0}:function(n,s){for(var i=0;i<a;){if(n[i]<s[i])return-1;if(n[i]>s[i])return 1;i++}return 0}}return er.DEFAULT_COMPARATOR=t,er.DEFAULT_REVERSE_COMPARATOR=e,er.reverseComparator=o,er.createTupleComparator=r,er}var tr={},Qn;function rn(){if(Qn)return tr;Qn=1;var t=tn(),e=ar();function o(s){return Array.isArray(s)||e.isTypedArray(s)}function r(s){if(typeof s.length=="number")return s.length;if(typeof s.size=="number")return s.size}function a(s){var i=r(s),l=typeof i=="number"?new Array(i):[],u=0;return t(s,function(d){l[u++]=d}),l}function n(s){var i=r(s),l=typeof i=="number"?e.getPointerArray(i):Array,u=typeof i=="number"?new Array(i):[],d=typeof i=="number"?new l(i):[],c=0;return t(s,function(p){u[c]=p,d[c]=c++}),[u,d]}return tr.isArrayLike=o,tr.guessLength=r,tr.toArray=a,tr.toArrayWithIndices=n,tr}var ko,Jn;function on(){if(Jn)return ko;Jn=1;var t=tn(),e=qs(),o=rn(),r=e.DEFAULT_COMPARATOR,a=e.reverseComparator;function n(h,v,x,g){for(var w=v[g],C,I;g>x;){if(C=g-1>>1,I=v[C],h(w,I)<0){v[g]=I,g=C;continue}break}v[g]=w}function s(h,v,x){for(var g=v.length,w=x,C=v[x],I=2*x+1,k;I<g;)k=I+1,k<g&&h(v[I],v[k])>=0&&(I=k),v[x]=v[I],x=I,I=2*x+1;v[x]=C,n(h,v,w,x)}function i(h,v,x){v.push(x),n(h,v,0,v.length-1)}function l(h,v){var x=v.pop();if(v.length!==0){var g=v[0];return v[0]=x,s(h,v,0),g}return x}function u(h,v,x){if(v.length===0)throw new Error("mnemonist/heap.replace: cannot pop an empty heap.");var g=v[0];return v[0]=x,s(h,v,0),g}function d(h,v,x){var g;return v.length!==0&&h(v[0],x)<0&&(g=v[0],v[0]=x,x=g,s(h,v,0)),x}function c(h,v){for(var x=v.length,g=x>>1,w=g;--w>=0;)s(h,v,w)}function p(h,v){for(var x=v.length,g=0,w=new Array(x);g<x;)w[g++]=l(h,v);return w}function b(h,v,x){arguments.length===2&&(x=v,v=h,h=r);var g=a(h),w,C,I,k=1/0,D;if(v===1){if(o.isArrayLike(x)){for(w=0,C=x.length;w<C;w++)I=x[w],(k===1/0||h(I,k)<0)&&(k=I);return D=new x.constructor(1),D[0]=k,D}return t(x,function(L){(k===1/0||h(L,k)<0)&&(k=L)}),[k]}if(o.isArrayLike(x)){if(v>=x.length)return x.slice().sort(h);for(D=x.slice(0,v),c(g,D),w=v,C=x.length;w<C;w++)g(x[w],D[0])>0&&u(g,D,x[w]);return D.sort(h)}var _=o.guessLength(x);return _!==null&&_<v&&(v=_),D=new Array(v),w=0,t(x,function(L){w<v?D[w]=L:(w===v&&c(g,D),g(L,D[0])>0&&u(g,D,L)),w++}),D.length>w&&(D.length=w),D.sort(h)}function m(h,v,x){arguments.length===2&&(x=v,v=h,h=r);var g=a(h),w,C,I,k=-1/0,D;if(v===1){if(o.isArrayLike(x)){for(w=0,C=x.length;w<C;w++)I=x[w],(k===-1/0||h(I,k)>0)&&(k=I);return D=new x.constructor(1),D[0]=k,D}return t(x,function(L){(k===-1/0||h(L,k)>0)&&(k=L)}),[k]}if(o.isArrayLike(x)){if(v>=x.length)return x.slice().sort(g);for(D=x.slice(0,v),c(h,D),w=v,C=x.length;w<C;w++)h(x[w],D[0])>0&&u(h,D,x[w]);return D.sort(g)}var _=o.guessLength(x);return _!==null&&_<v&&(v=_),D=new Array(v),w=0,t(x,function(L){w<v?D[w]=L:(w===v&&c(h,D),h(L,D[0])>0&&u(h,D,L)),w++}),D.length>w&&(D.length=w),D.sort(g)}function f(h){if(this.clear(),this.comparator=h||r,typeof this.comparator!="function")throw new Error("mnemonist/Heap.constructor: given comparator should be a function.")}f.prototype.clear=function(){this.items=[],this.size=0},f.prototype.push=function(h){return i(this.comparator,this.items,h),++this.size},f.prototype.peek=function(){return this.items[0]},f.prototype.pop=function(){return this.size!==0&&this.size--,l(this.comparator,this.items)},f.prototype.replace=function(h){return u(this.comparator,this.items,h)},f.prototype.pushpop=function(h){return d(this.comparator,this.items,h)},f.prototype.consume=function(){return this.size=0,p(this.comparator,this.items)},f.prototype.toArray=function(){return p(this.comparator,this.items.slice())},f.prototype.inspect=function(){var h=this.toArray();return Object.defineProperty(h,"constructor",{value:f,enumerable:!1}),h},typeof Symbol<"u"&&(f.prototype[Symbol.for("nodejs.util.inspect.custom")]=f.prototype.inspect);function y(h){if(this.clear(),this.comparator=h||r,typeof this.comparator!="function")throw new Error("mnemonist/MaxHeap.constructor: given comparator should be a function.");this.comparator=a(this.comparator)}return y.prototype=f.prototype,f.from=function(h,v){var x=new f(v),g;return o.isArrayLike(h)?g=h.slice():g=o.toArray(h),c(x.comparator,g),x.items=g,x.size=g.length,x},y.from=function(h,v){var x=new y(v),g;return o.isArrayLike(h)?g=h.slice():g=o.toArray(h),c(x.comparator,g),x.items=g,x.size=g.length,x},f.siftUp=s,f.siftDown=n,f.push=i,f.pop=l,f.replace=u,f.pushpop=d,f.heapify=c,f.consume=p,f.nsmallest=b,f.nlargest=m,f.MinHeap=f,f.MaxHeap=y,ko=f,ko}var ea;function Ks(){if(ea)return hr;ea=1;var t=Bt(),e=eo().createEdgeWeightGetter,o=on(),r="weight";function a(c,p){return c[0]>p[0]?1:c[0]<p[0]?-1:c[1]>p[1]?1:c[1]<p[1]?-1:c[2]>p[2]?1:c[2]<p[2]?-1:0}function n(c,p){return c[0]>p[0]?1:c[0]<p[0]?-1:c[1]>p[1]?1:c[1]<p[1]?-1:c[2]>p[2]?1:c[2]<p[2]?-1:c[3]>p[3]?1:c[3]<p[3]?-1:0}function s(c,p,b,m){if(p=""+p,b=""+b,!t(c))throw new Error("graphology-shortest-path/dijkstra: invalid graphology instance.");if(p&&!c.hasNode(p))throw new Error('graphology-shortest-path/dijkstra: the "'+p+'" source node does not exist in the given graph.');if(b&&!c.hasNode(b))throw new Error('graphology-shortest-path/dijkstra: the "'+b+'" target node does not exist in the given graph.');if(m=e(m||r).fromMinimalEntry,p===b)return[0,[p]];var f=[{},{}],y=[{},{}],h=[new o(a),new o(a)],v=[{},{}];y[0][p]=[p],y[1][b]=[b],v[0][p]=0,v[1][b]=0;var x=[],g=1/0,w=0,C=1,I,k,D,_,L,G,V,q,W;for(h[0].push([0,w++,p]),h[1].push([0,w++,b]);h[0].size&&h[1].size;)if(C=1-C,I=h[C].pop(),_=I[0],L=I[2],!(L in f[C])){if(f[C][L]=_,L in f[1-C])return[g,x];for(k=C===1?c.inboundEdges(L):c.outboundEdges(L),q=0,W=k.length;q<W;q++){if(V=k[q],G=c.opposite(L,V),D=f[C][L]+m(V,c.getEdgeAttributes(V)),G in f[C]&&D<f[C][G])throw Error("graphology-shortest-path/dijkstra: contradictory paths found. Do some of your edges have a negative weight?");(!(G in v[C])||D<v[C][G])&&(v[C][G]=D,h[C].push([D,w++,G]),y[C][G]=y[C][L].concat(G),G in v[0]&&G in v[1]&&(_=v[0][G]+v[1][G],(x.length===0||g>_)&&(g=_,x=y[0][G].concat(y[1][G].slice(0,-1).reverse()))))}}return[1/0,null]}function i(c,p,b,m,f,y){if(!t(c))throw new Error("graphology-shortest-path/dijkstra: invalid graphology instance.");b=e(b||r).fromMinimalEntry;var h={},v={},x=new o(a),g=0,w,C,I,k,D,_,L,G,V,q,W;for(G=0,q=p.length;G<q;G++)k=p[G],v[k]=0,x.push([0,g++,k]),y&&(y[k]=[k]);for(;x.size;)if(C=x.pop(),L=C[0],k=C[2],!(k in h)){if(h[k]=L,k===f)break;for(w=c.outboundEdges(k),V=0,W=w.length;V<W;V++){if(_=w[V],D=c.opposite(k,_),I=b(_,c.getEdgeAttributes(_))+h[k],D in h&&I<h[D])throw Error("graphology-shortest-path/dijkstra: contradictory paths found. Do some of your edges have a negative weight?");(!(D in v)||I<v[D])&&(v[D]=I,x.push([I,g++,D]),y&&(y[D]=y[k].concat(D)))}}return h}function l(c,p,b){var m={};return i(c,[p],b,0,null,m),m}function u(c,p,b,m){return s(c,p,b,m)[1]}function d(c,p,b){p=""+p,b=e(b||r).fromMinimalEntry;var m=[],f={},y={},h=c.nodes(),v,x,g,w,C,I,k,D,_,L;for(_=0,L=h.length;_<L;_++)I=h[_],f[I]=[],y[I]=0;var G={};y[p]=1;var V={};V[p]=0;var q=0,W=new o(n);for(W.push([0,q++,p,p]);W.size;)if(x=W.pop(),w=x[0],g=x[2],I=x[3],!(I in G))for(y[I]+=y[g],m.push(I),G[I]=w,v=c.outboundEdges(I),_=0,L=v.length;_<L;_++)D=v[_],k=c.opposite(I,D),C=w+b(D,c.getEdgeAttributes(D)),!(k in G)&&(!(k in V)||C<V[k])?(V[k]=C,W.push([C,q++,I,k]),y[k]=0,f[k]=[I]):C===V[k]&&(y[k]+=y[I],f[k].push(I));return[m,f,y]}return hr.bidirectional=u,hr.singleSource=l,hr.brandes=d,hr}var Co={},ta;function Ys(){if(ta)return Co;ta=1;var t=Bt(),e=eo().createEdgeWeightGetter,o=on(),r="weight";function a(s,i){return s[0]>i[0]?1:s[0]<i[0]?-1:s[1]>i[1]?1:s[1]<i[1]?-1:0}function n(s,i,l,u,d,c){if(!t(s))throw new Error("graphology-shortest-path/astar: invalid graphology instance.");if(i&&!s.hasNode(i))throw new Error('graphology-shortest-path/astar: the "'+i+'" source node does not exist in the given graph.');if(l&&!s.hasNode(l))throw new Error('graphology-shortest-path/astar: the "'+l+'" target node does not exist in the given graph.');if(u=e(u||r).fromMinimalEntry,i===l)return[i];d=d||function(){return 0},c=c||{};var p=0,b=new o(a);b.push([0,p++,i,0,null]);var m={},f={},y,h,v,x,g,w,C,I,k,D,_,L;function G(V,q,W,F){if(L=h===W?F:W,D=u(V,q),D!==null){if(_=x+D,m.hasOwnProperty(L)){if(v=m[L],I=v[0],k=v[1],I<=_)return}else k=d(L,l);c.cutoff&&_+k>c.cutoff||(m[L]=[_,k],b.push([_+k,p++,L,_,h]))}}for(;b.size!==0;){if(y=b.pop(),h=y[2],x=y[3],g=y[4],h===l){for(w=[h],C=g;C!==null;)w.push(C),C=f[C];return w.reverse(),w}f.hasOwnProperty(h)&&(f[h]===null||(I=m[h][0],I<x))||(f[h]=g,s.forEachOutboundEdge(h,G))}return null}return Co.bidirectional=n,Co}var ra;function Xs(){if(ra)return yt;ra=1;var t=Fs(),e=$s();return yt.unweighted=t,yt.dijkstra=Ks(),yt.astar=Ys(),yt.bidirectional=t.bidirectional,yt.singleSource=t.singleSource,yt.singleSourceLength=t.singleSourceLength,yt.undirectedSingleSourceLength=t.undirectedSingleSourceLength,yt.brandes=t.brandes,yt.edgePathFromNodePath=e.edgePathFromNodePath,yt}var Zs=Xs(),Mr={},Io,oa;function Qs(){if(oa)return Io;oa=1;var t=rn(),e=Ar();function o(r,a){if(arguments.length<2)throw new Error("mnemonist/fixed-deque: expecting an Array class and a capacity.");if(typeof a!="number"||a<=0)throw new Error("mnemonist/fixed-deque: `capacity` should be a positive number.");this.ArrayClass=r,this.capacity=a,this.items=new r(this.capacity),this.clear()}return o.prototype.clear=function(){this.start=0,this.size=0},o.prototype.push=function(r){if(this.size===this.capacity)throw new Error("mnemonist/fixed-deque.push: deque capacity ("+this.capacity+") exceeded!");var a=this.start+this.size;return a>=this.capacity&&(a-=this.capacity),this.items[a]=r,++this.size},o.prototype.unshift=function(r){if(this.size===this.capacity)throw new Error("mnemonist/fixed-deque.unshift: deque capacity ("+this.capacity+") exceeded!");var a=this.start-1;return this.start===0&&(a=this.capacity-1),this.items[a]=r,this.start=a,++this.size},o.prototype.pop=function(){if(this.size!==0){this.size--;var r=this.start+this.size;return r>=this.capacity&&(r-=this.capacity),this.items[r]}},o.prototype.shift=function(){if(this.size!==0){var r=this.start;return this.size--,this.start++,this.start===this.capacity&&(this.start=0),this.items[r]}},o.prototype.peekFirst=function(){if(this.size!==0)return this.items[this.start]},o.prototype.peekLast=function(){if(this.size!==0){var r=this.start+this.size-1;return r>=this.capacity&&(r-=this.capacity),this.items[r]}},o.prototype.get=function(r){if(!(this.size===0||r>=this.capacity))return r=this.start+r,r>=this.capacity&&(r-=this.capacity),this.items[r]},o.prototype.forEach=function(r,a){a=arguments.length>1?a:this;for(var n=this.capacity,s=this.size,i=this.start,l=0;l<s;)r.call(a,this.items[i],l,this),i++,l++,i===n&&(i=0)},o.prototype.toArray=function(){var r=this.start+this.size;if(r<this.capacity)return this.items.slice(this.start,r);for(var a=new this.ArrayClass(this.size),n=this.capacity,s=this.size,i=this.start,l=0;l<s;)a[l]=this.items[i],i++,l++,i===n&&(i=0);return a},o.prototype.values=function(){var r=this.items,a=this.capacity,n=this.size,s=this.start,i=0;return new e(function(){if(i>=n)return{done:!0};var l=r[s];return s++,i++,s===a&&(s=0),{value:l,done:!1}})},o.prototype.entries=function(){var r=this.items,a=this.capacity,n=this.size,s=this.start,i=0;return new e(function(){if(i>=n)return{done:!0};var l=r[s];return s++,s===a&&(s=0),{value:[i++,l],done:!1}})},typeof Symbol<"u"&&(o.prototype[Symbol.iterator]=o.prototype.values),o.prototype.inspect=function(){var r=this.toArray();return r.type=this.ArrayClass.name,r.capacity=this.capacity,Object.defineProperty(r,"constructor",{value:o,enumerable:!1}),r},typeof Symbol<"u"&&(o.prototype[Symbol.for("nodejs.util.inspect.custom")]=o.prototype.inspect),o.from=function(r,a,n){if(arguments.length<3&&(n=t.guessLength(r),typeof n!="number"))throw new Error("mnemonist/fixed-deque.from: could not guess iterable length. Please provide desired capacity as last argument.");var s=new o(a,n);if(t.isArrayLike(r)){var i,l;for(i=0,l=r.length;i<l;i++)s.items[i]=r[i];return s.size=l,s}return t.forEach(r,function(u){s.push(u)}),s},Io=o,Io}var Do,na;function Js(){if(na)return Do;na=1;var t=Ar(),e=rn();function o(r,a){if(arguments.length<2)throw new Error("mnemonist/fixed-stack: expecting an Array class and a capacity.");if(typeof a!="number"||a<=0)throw new Error("mnemonist/fixed-stack: `capacity` should be a positive number.");this.capacity=a,this.ArrayClass=r,this.items=new this.ArrayClass(this.capacity),this.clear()}return o.prototype.clear=function(){this.size=0},o.prototype.push=function(r){if(this.size===this.capacity)throw new Error("mnemonist/fixed-stack.push: stack capacity ("+this.capacity+") exceeded!");return this.items[this.size++]=r,this.size},o.prototype.pop=function(){if(this.size!==0)return this.items[--this.size]},o.prototype.peek=function(){return this.items[this.size-1]},o.prototype.forEach=function(r,a){a=arguments.length>1?a:this;for(var n=0,s=this.items.length;n<s;n++)r.call(a,this.items[s-n-1],n,this)},o.prototype.toArray=function(){for(var r=new this.ArrayClass(this.size),a=this.size-1,n=this.size;n--;)r[n]=this.items[a-n];return r},o.prototype.values=function(){var r=this.items,a=this.size,n=0;return new t(function(){if(n>=a)return{done:!0};var s=r[a-n-1];return n++,{value:s,done:!1}})},o.prototype.entries=function(){var r=this.items,a=this.size,n=0;return new t(function(){if(n>=a)return{done:!0};var s=r[a-n-1];return{value:[n++,s],done:!1}})},typeof Symbol<"u"&&(o.prototype[Symbol.iterator]=o.prototype.values),o.prototype.toString=function(){return this.toArray().join(",")},o.prototype.toJSON=function(){return this.toArray()},o.prototype.inspect=function(){var r=this.toArray();return r.type=this.ArrayClass.name,r.capacity=this.capacity,Object.defineProperty(r,"constructor",{value:o,enumerable:!1}),r},typeof Symbol<"u"&&(o.prototype[Symbol.for("nodejs.util.inspect.custom")]=o.prototype.inspect),o.from=function(r,a,n){if(arguments.length<3&&(n=e.guessLength(r),typeof n!="number"))throw new Error("mnemonist/fixed-stack.from: could not guess iterable length. Please provide desired capacity as last argument.");var s=new o(a,n);if(e.isArrayLike(r)){var i,l;for(i=0,l=r.length;i<l;i++)s.items[i]=r[i];return s.size=l,s}return e.forEach(r,function(u){s.push(u)}),s},Do=o,Do}var Rr={},aa;function el(){if(aa)return Rr;aa=1;var t=ar(),e=eo().createEdgeWeightGetter;function o(n,s){return n==="outbound"||n==="inbound"?s.directedSize+s.undirectedSize*2:n==="in"||n==="out"||n==="directed"?s.directedSize:s.undirectedSize*2}function r(n,s){s=s||"outbound";var i=n[s+"Neighbors"].bind(n),l=o(s,n),u=t.getPointerArray(l),d=t.getPointerArray(n.order);this.graph=n,this.neighborhood=new d(l),this.starts=new u(n.order+1),this.nodes=n.nodes();var c={},p,b,m,f,y,h,v=0;for(p=0,b=n.order;p<b;p++)c[this.nodes[p]]=p;for(p=0,b=n.order;p<b;p++)for(y=this.nodes[p],h=i(y),this.starts[p]=v,m=0,f=h.length;m<f;m++)this.neighborhood[v++]=c[h[m]];this.starts[p]=l}r.prototype.bounds=function(n){return[this.starts[n],this.starts[n+1]]},r.prototype.project=function(){var n=this,s={};return n.nodes.forEach(function(i,l){s[i]=Array.from(n.neighborhood.slice(n.starts[l],n.starts[l+1])).map(function(u){return n.nodes[u]})}),s},r.prototype.collect=function(n){var s,i,l={};for(s=0,i=n.length;s<i;s++)l[this.nodes[s]]=n[s];return l},r.prototype.assign=function(n,s){var i=0;this.graph.updateEachNodeAttributes(function(l,u){return u[n]=s[i++],u},{attributes:[n]})},Rr.NeighborhoodIndex=r;function a(n,s,i){i=i||"outbound";var l=n[i+"Edges"].bind(n),u=o(i,n),d=t.getPointerArray(u),c=t.getPointerArray(n.order),p=e(s).fromMinimalEntry;this.graph=n,this.neighborhood=new c(u),this.weights=new Float64Array(u),this.outDegrees=new Float64Array(n.order),this.starts=new d(n.order+1),this.nodes=n.nodes();var b={},m,f,y,h,v,x,g,w,C,I=0;for(m=0,f=n.order;m<f;m++)b[this.nodes[m]]=m;for(m=0,f=n.order;m<f;m++)for(v=this.nodes[m],g=l(v),this.starts[m]=I,y=0,h=g.length;y<h;y++)w=g[y],x=n.opposite(v,w),C=p(w,n.getEdgeAttributes(w)),this.neighborhood[I]=b[x],this.weights[I++]=C,this.outDegrees[m]+=C;this.starts[m]=u}return a.prototype.bounds=r.prototype.bounds,a.prototype.project=r.prototype.project,a.prototype.collect=r.prototype.collect,a.prototype.assign=r.prototype.assign,Rr.WeightedNeighborhoodIndex=a,Rr}var ia;function tl(){if(ia)return Mr;ia=1;var t=Qs(),e=Js(),o=on(),r=ar(),a=el(),n=a.NeighborhoodIndex,s=a.WeightedNeighborhoodIndex;Mr.createUnweightedIndexedBrandes=function(u){var d=new n(u),c=d.neighborhood,p=d.starts,b=u.order,m=new e(r.getPointerArray(b),b),f=new Uint32Array(b),y=new Array(b),h=new Int32Array(b),v=new t(Uint32Array,b),x=function(g){var w,C,I,k,D,_,L;for(_=0;_<b;_++)y[_]=[],f[_]=0,h[_]=-1;for(f[g]=1,h[g]=0,v.push(g);v.size!==0;)for(_=v.shift(),m.push(_),w=h[_],C=f[_],I=p[_],k=p[_+1],D=I;D<k;D++)L=c[D],h[L]===-1&&(v.push(L),h[L]=w+1),h[L]===w+1&&(f[L]+=C,y[L].push(_));return[m,y,f]};return x.index=d,x};function i(l,u){return l[0]>u[0]?1:l[0]<u[0]?-1:l[1]>u[1]?1:l[1]<u[1]?-1:l[2]>u[2]?1:l[2]<u[2]?-1:l[3]>u[3]?1:l[3]<u[3]?-1:0}return Mr.createDijkstraIndexedBrandes=function(u,d){var c=new s(u,d||"weight"),p=c.neighborhood,b=c.weights,m=c.starts,f=u.order,y=new e(r.getPointerArray(f),f),h=new Uint32Array(f),v=new Array(f),x=new Float64Array(f),g=new Float64Array(f),w=new o(i),C=function(I){var k,D,_,L,G,V,q,W,F,ee=0;for(W=0;W<f;W++)v[W]=[],h[W]=0,x[W]=-1,g[W]=-1;for(h[I]=1,g[I]=0,w.push([0,ee++,I,I]);w.size!==0;)if(_=w.pop(),L=_[0],G=_[2],W=_[3],x[W]===-1)for(y.push(W),x[W]=L,h[W]+=h[G],k=m[W],D=m[W+1],q=k;q<D;q++)F=p[q],V=L+b[q],x[F]===-1&&(g[F]===-1||V<g[F])?(g[F]=V,w.push([V,ee++,W,F]),h[F]=0,v[F]=[W]):V===g[F]&&(h[F]+=h[W],v[F].push(W));return[y,v,h]};return C.index=c,C},Mr}var _o,sa;function rl(){if(sa)return _o;sa=1;var t=Bt(),e=tl(),o=en(),r=e.createUnweightedIndexedBrandes,a=e.createDijkstraIndexedBrandes,n={nodeCentralityAttribute:"betweennessCentrality",getEdgeWeight:"weight",normalized:!0};function s(l,u,d){if(!t(u))throw new Error("graphology-centrality/beetweenness-centrality: the given graph is not a valid graphology instance.");d=o(d,n);var c=d.nodeCentralityAttribute,p=d.normalized,b=d.getEdgeWeight?a(u,d.getEdgeWeight):r(u),m=u.order,f,y,h,v,x,g,w,C,I,k,D=new Float64Array(m),_=new Float64Array(m);for(g=0;g<m;g++){for(f=b(g),y=f[0],h=f[1],v=f[2],w=y.size;w--;)D[y.items[y.size-w]]=0;for(;y.size!==0;){for(k=y.pop(),x=(1+D[k])/v[k],w=0,C=h[k].length;w<C;w++)I=h[k][w],D[I]+=v[I]*x;k!==g&&(_[k]+=D[k])}}var L=null;if(p?L=m<=2?null:1/((m-1)*(m-2)):L=u.type==="undirected"?.5:null,L!==null)for(g=0;g<m;g++)_[g]*=L;return l?b.index.assign(c,_):b.index.collect(_)}var i=s.bind(null,!1);return i.assign=s.bind(null,!0),_o=i,_o}var ol=rl();const nl=Wa(ol);var fr={},la;function al(){if(la)return fr;la=1;var t=Bt();function e(n,s,i,l){var u=s+"Centrality";if(!t(i))throw new Error("graphology-centrality/"+u+": the given graph is not a valid graphology instance.");if(s!=="degree"&&i.type==="undirected")throw new Error("graphology-centrality/"+u+": cannot compute "+s+" centrality on an undirected graph.");l=l||{};var d=l.nodeCentralityAttribute||u,c=i.order-1,p=i[s].bind(i);if(n){i.updateEachNodeAttributes(function(m,f){return f[d]=p(m)/c,f},{attributes:[d]});return}var b={};return i.forEachNode(function(m){b[m]=p(m)/c}),b}var o=e.bind(null,!1,"degree"),r=e.bind(null,!1,"inDegree"),a=e.bind(null,!1,"outDegree");return o.assign=e.bind(null,!0,"degree"),r.assign=e.bind(null,!0,"inDegree"),a.assign=e.bind(null,!0,"outDegree"),fr.degreeCentrality=o,fr.inDegreeCentrality=r,fr.outDegreeCentrality=a,fr}var Go=al();const il=1400,sl=6,ll=6,cl=6,ca=4,ul=36,dl=80,Ka=128,ua=5,pl=2;function nn(t,e){const o=t.getNodeAttributes(e);return String(o.label||o.content||e)}function Nr(t,e){const o=t.getNodeAttributes(e);return String(o.baseColor||o.color||"#63E6FF")}function to(t,e){const o=t.getNodeAttributes(e);return String(o.semanticGroup||o.nodeType||"entity")}function hl(t,e){if(!e)return new Set(t.nodes());const o=new Set;for(const r of e)t.hasNode(r)&&o.add(r);return o.size?o:new Set(t.nodes())}function fl(t,e){const o=Go.degreeCentrality(t),r=Go.inDegreeCentrality(t),a=Go.outDegreeCentrality(t),n=e?nl(t,{normalized:!0,getEdgeWeight:"weight"}):{},s=new Map;t.forEachNode(l=>{const u=Number(o[l]??0),d=Number(n[l]??0),c=Number(r[l]??0),p=Number(a[l]??0);s.set(l,{degree:u,inDegree:c,outDegree:p,betweenness:d,score:u*.7+d*.3})});const i=t.nodes().sort((l,u)=>{const d=s.get(l)?.score??0,c=s.get(u)?.score??0;return c!==d?c-d:l.localeCompare(u)});return{centralityByNode:s,topNodeIds:i,betweennessReady:e}}function ro(t,e){const o=e?.computeCommunities??!0,r=e?.computeCentrality??!0,a=new Map;let n=0,s=null;if(o&&t.order>1&&t.size>0)try{const u=Vs.detailed(t,{getEdgeWeight:"weight"});s=Number(u.modularity??0),n=Number(u.count??0),Object.entries(u.communities).forEach(([d,c])=>{a.set(d,Number(c))})}catch(u){console.error("[GraphAnalytics] community detection failed",u)}if(!r||t.order===0)return{communitiesByNode:a,communityCount:n,modularity:s,centralityByNode:new Map,topNodeIds:[],betweennessReady:!1};const i=t.order<=il,l=fl(t,i);return{communitiesByNode:a,communityCount:n,modularity:s,...l}}function ml(t,e,o){const r=new Map;return t.forEachNode(a=>{const n=o.communitiesByNode.get(a);if(n===void 0)return;const s=r.get(n)??{nodeCount:0,visibleNodeCount:0,semanticCounts:new Map,anchorNodeId:null,prominence:0,color:Nr(t,a)};s.nodeCount+=1,e.has(a)&&(s.visibleNodeCount+=1);const i=to(t,a);s.semanticCounts.set(i,(s.semanticCounts.get(i)??0)+1);const l=o.centralityByNode.get(a)?.score??0;(!s.anchorNodeId||l>(o.centralityByNode.get(s.anchorNodeId)?.score??-1))&&(s.anchorNodeId=a,s.color=Nr(t,a)),s.prominence+=e.has(a)?1+l:l*.15,r.set(n,s)}),[...r.entries()].map(([a,n])=>{const s=[...n.semanticCounts.entries()].sort((i,l)=>l[1]-i[1])[0]?.[0]??"entity";return{communityId:String(a),nodeCount:n.nodeCount,visibleNodeCount:n.visibleNodeCount,dominantSemanticGroup:s,color:n.color,anchorNodeId:n.anchorNodeId,anchorLabel:n.anchorNodeId?nn(t,n.anchorNodeId):"Community anchor",prominence:n.prominence}}).filter(a=>a.visibleNodeCount>0).sort((a,n)=>n.prominence-a.prominence).slice(0,sl)}function gl(t,e,o){const r=new Map;return t.forEachNode(a=>{const n=to(t,a),s=r.get(n)??{nodeCount:0,visibleNodeCount:0,communityCounts:new Map,anchorNodeId:null,prominence:0,color:Nr(t,a)};s.nodeCount+=1,e.has(a)&&(s.visibleNodeCount+=1);const i=o.communitiesByNode.get(a);if(i!==void 0){const u=String(i);s.communityCounts.set(u,(s.communityCounts.get(u)??0)+1)}const l=o.centralityByNode.get(a)?.score??0;(!s.anchorNodeId||l>(o.centralityByNode.get(s.anchorNodeId)?.score??-1))&&(s.anchorNodeId=a,s.color=Nr(t,a)),s.prominence+=e.has(a)?1+l:l*.1,r.set(n,s)}),[...r.entries()].map(([a,n])=>({semanticGroup:a,nodeCount:n.nodeCount,visibleNodeCount:n.visibleNodeCount,color:n.color,anchorNodeId:n.anchorNodeId,anchorLabel:n.anchorNodeId?nn(t,n.anchorNodeId):a,dominantCommunityId:[...n.communityCounts.entries()].sort((s,i)=>i[1]-s[1])[0]?.[0]??null,prominence:n.prominence})).filter(a=>a.visibleNodeCount>0).sort((a,n)=>n.prominence-a.prominence).slice(0,ll)}function bl(t,e,o){const r=o.topNodeIds.filter(n=>e.has(n));return(r.length?r:o.topNodeIds).slice(0,cl).map(n=>{const s=o.centralityByNode.get(n)??{degree:0,betweenness:0,score:0};return{id:n,label:nn(t,n),semanticGroup:to(t,n),color:Nr(t,n),degree:Number(s.degree??0),betweenness:Number(s.betweenness??0),score:Number(s.score??0)}})}function yl(t,e,o){const r=[];return t.forEachOutEdge(e,(a,n,s,i)=>{o.has(i)&&r.push({edgeId:String(a),source:s,target:i,attrs:n})}),t.forEachInEdge(e,(a,n,s,i)=>{o.has(s)&&r.push({edgeId:String(a),source:s,target:i,attrs:n})}),r}function da(t,e,o,r){const a=r.centralityByNode.get(e)?.score??0,n=r.centralityByNode.get(o)?.score??0,s=Number(t.weight??0),i=Number(t.visualPriority??0),l=Number(t.parallelCount??1)>1?.14:0,u=t.isBidirectional?.18:0;return s*1.4+(a+n)*2.4+i*.6+l+u}function Lo(t,e,o){const r=t.get(e);(!r||o.score>r.score||o.score===r.score&&o.edgeId.localeCompare(r.edgeId)<0)&&t.set(e,o)}function Po(t,e,o,r,a,n){const s=[...a].sort((i,l)=>l.score!==i.score?l.score-i.score:i.edgeId.localeCompare(l.edgeId));for(const i of s){if(t.length>=Ka||n<=0||e.has(i.edgeId))continue;const l=[i.source,i.target].sort().join("::");(o.get(i.source)??0)>=ua||(o.get(i.target)??0)>=ua||(r.get(l)??0)>=pl||(t.push(i),e.add(i.edgeId),o.set(i.source,(o.get(i.source)??0)+1),o.set(i.target,(o.get(i.target)??0)+1),r.set(l,(r.get(l)??0)+1),n-=1)}}function vl(t,e,o,r,a){if(e.size===0)return{ready:!1,reason:"No visible nodes are available for overview backbone selection.",edgeIds:[]};const n=[],s=new Set,i=new Map,l=new Map,u=new Map;e.forEach(h=>{u.set(h,to(t,h))});const d=new Set(r.slice(0,3).map(h=>h.semanticGroup)),c=new Set(a.slice(0,ca*2).map(h=>h.id).filter(h=>e.has(h))),p=a.slice(0,ca).map(h=>h.id).filter(h=>e.has(h)),b=new Map;p.forEach(h=>{yl(t,h,e).filter(v=>{const x=v.source===h?v.target:v.source;if(!c.has(x))return!1;const g=u.get(v.source),w=u.get(v.target);return!!(g&&w&&(d.has(g)||d.has(w)))}).forEach(v=>{const x=[v.source,v.target].sort().join("::"),g=u.get(v.source),w=u.get(v.target),C=g&&w&&g!==w?.28:0,I=da(v.attrs,v.source,v.target,o)+C;Lo(b,x,{edgeId:v.edgeId,source:v.source,target:v.target,score:I})})});const m=new Map,f=new Map;t.forEachEdge((h,v,x,g)=>{if(!e.has(x)||!e.has(g))return;const w=String(h),C=String(x),I=String(g),k=u.get(C),D=u.get(I),_=o.communitiesByNode.get(C),L=o.communitiesByNode.get(I),G=!!(k&&D&&k!==D),V=_!==void 0&&L!==void 0&&_!==L,q=o.centralityByNode.get(C)?.score??0,W=o.centralityByNode.get(I)?.score??0,F=da(v,C,I,o),ee=G?.5:0,U=V?.36:0,T=k&&D&&(d.has(k)||d.has(D))?.32:0,P=Math.min(q,W)*1.2,z=F+ee+U+T+P,te={edgeId:w,source:C,target:I,score:z};if(G||V){const O=[k??`community:${_??C}`,D??`community:${L??I}`,Math.min(q,W).toFixed(4)].sort().join("::");Lo(m,O,te)}const Q=[C,I].sort().join("::");Lo(f,Q,te)}),Po(n,s,i,l,m.values(),dl),Po(n,s,i,l,b.values(),ul),Po(n,s,i,l,f.values(),Ka-n.length);const y=n.map(h=>h.edgeId).filter(h=>t.hasEdge(h));return{ready:y.length>0,reason:y.length>0?"Ready":"No overview backbone edges met the current visibility thresholds.",edgeIds:y}}function xl(t,e){if(e.activePath.length<2)return{ready:!1,reason:"Trace a path to compare it against local strict directed shortest pathfinding.",sourceId:e.selectedNodeId||null,targetId:null,path:[],length:null,verifiedAgainstActivePath:!1};const o=e.activePath[0]??null,r=e.activePath[e.activePath.length-1]??null;if(!o||!r||!t.hasNode(o)||!t.hasNode(r))return{ready:!1,reason:"Active path endpoints are not available in the current graph view.",sourceId:o,targetId:r,path:[],length:null,verifiedAgainstActivePath:!1};try{const a=Zs.dijkstra.bidirectional(t,o,r,"weight")??[];return{ready:a.length>1,reason:a.length>1?"Ready":"No strict directed shortest path found in the current graph view.",sourceId:o,targetId:r,path:a,length:a.length>1?a.length-1:null,verifiedAgainstActivePath:a.join("::")===e.activePath.join("::")}}catch(a){return console.error("[GraphAnalytics] directed pathfinding failed",a),{ready:!1,reason:"Directed pathfinding failed for the current graph snapshot.",sourceId:o,targetId:r,path:[],length:null,verifiedAgainstActivePath:!1}}}function Sl(t){const{graphRef:e,interactionState:o,base:r}=t,a=hl(e,t.visibleNodeIds),n=xl(e,o),s=r.communitiesByNode.size?ml(e,a,r):[],i=gl(e,a,r),l=bl(e,a,r),u=vl(e,a,r,i,l);return{generatedAt:Date.now(),directedPath:n,communities:{ready:s.length>0,reason:s.length>0?"Ready":r.communitiesByNode.size>0?"No visible communities in the current graph context.":"Community detection has not produced summaries yet.",count:r.communityCount,modularity:r.modularity,summaries:s},centrality:{ready:l.length>0,reason:l.length>0?r.betweennessReady?"Ready":"Ready (degree-biased while betweenness is bounded for large graphs).":"Centrality ranking is waiting for graph data.",topNodes:l},semanticRegions:{ready:i.length>0,reason:i.length>0?"Ready":"No semantic regions are visible in the current graph context.",summaries:i},overviewBackbone:u}}const $r=E.focus.maxNeighbors,jr=E.focus.ringCapacity,wl=E.focus.ringGap,Nl=E.focus.primaryLabels,El=8,Al=8,Ya="__agg__:",rr="__community__:",Xa=typeof import.meta<"u"&&!0,kl=120,Cl=650,Il=900,pa=new WeakMap;function Dl(t){let e=pa.get(t);return e||(e=new Set(t.heatmapVisibleNodeIds??[]),pa.set(t,e)),e}const _l={layoutMode:"base",positionSource:"store",tracksStoreNodePositions:!0,hasSyntheticNodes:!1},yr={layoutMode:"mirrored",positionSource:"store",tracksStoreNodePositions:!0,hasSyntheticNodes:!1},Gl={layoutMode:"owned",positionSource:"display",tracksStoreNodePositions:!1,hasSyntheticNodes:!0};function oo(t){return ut(0,Math.log2(Math.max(t,1))/1.85,1)}function vt(t){return t<=0?"#7CFF9B":t<=1?"#43d17a":t<=2?"#ff2d4b":t<=3||t<=6?"#B0883A":"#FF7B72"}function Ll(t){return t>=.7?"#43d17a":t>=.4?"#E3B341":"#FF7B72"}function Pl(t,e,o){const r={};if(!e||!t.hasNode(e))return r;const a=[[e,0]],n=new Set([e]);for(r[e]=0;a.length>0;){const[s,i]=a.shift();i>=o||t.neighbors(s).forEach(l=>{const u=String(l);n.has(u)||(n.add(u),r[u]=i+1,a.push([u,i+1]))})}return r}function Za(t,e){const o={anchor:0,oneHop:0,twoHop:0,threeHopPlus:0,outside:0};Object.values(t).forEach(a=>{a<=0?o.anchor+=1:a===1?o.oneHop+=1:a===2?o.twoHop+=1:o.threeHopPlus+=1});const r=o.anchor+o.oneHop+o.twoHop+o.threeHopPlus;return o.outside=Math.max(0,e-r),o}function Ml(){return{anchor:0,oneHop:0,twoHop:0,threeHopPlus:0,outside:0}}function Rl(t){return t<=0?Number.POSITIVE_INFINITY:t===1?kl:t===2?Cl:Il}function ha(t,e){if(!t.hasNode(e))return 0;const o=t.getNodeAttributes(e);return Number(o.visualPriority??0)*8+Number(o.labelPriority??0)}function jl(t,e){const o=new Map;return t.forEachEdge((r,a,n,s)=>{const i=String(n),l=String(s),u=e[i],d=e[l];if(u==null||d==null||Math.abs(u-d)!==1)return;const c=u>d?i:l,p=a,b=Number(p.visualPriority??0)*8+Number(p.weight??0)+Number(p.relationshipStrength??0)*2+Number(p.representativeWeight??0);o.set(c,Math.max(o.get(c)??0,b))}),o}function Hl(t,e,o,r){const a=Za(o,t.order),n=Ml();n.outside=a.outside;const s=new Set;if(!e||!t.hasNode(e))return{visibleNodeIds:[],ringCounts:a,renderedRingCounts:n,saturationMode:"normal"};const i=jl(t,o),l=new Map;Object.entries(o).forEach(([d,c])=>{if(c<0||c>r||c>3)return;const p=Math.max(0,Math.floor(c));l.set(p,[...l.get(p)??[],d])}),l.get(0)?.includes(e)||l.set(0,[e,...l.get(0)??[]]),[0,1,2,3].forEach(d=>{const c=Rl(d),p=[...new Set(l.get(d)??[])].sort((b,m)=>{const f=(i.get(m)??0)-(i.get(b)??0);if(f!==0)return f;const y=ha(t,m)-ha(t,b);return y!==0?y:Rt(b)-Rt(m)}).slice(0,c);p.forEach(b=>s.add(b)),d===0&&(n.anchor=p.length),d===1&&(n.oneHop=p.length),d===2&&(n.twoHop=p.length),d===3&&(n.threeHopPlus=p.length)}),s.add(e),n.anchor=Math.max(1,n.anchor);const u=n.oneHop<a.oneHop||n.twoHop<a.twoHop||n.threeHopPlus<a.threeHopPlus;return{visibleNodeIds:[...s],ringCounts:a,renderedRingCounts:n,saturationMode:u?"sampled":"normal"}}function Tl(t){if(!t)return!1;const e=t.anchor+t.oneHop+t.twoHop+t.threeHopPlus+t.outside;if(e<=0)return!1;const o=t.twoHop+t.threeHopPlus;return t.threeHopPlus>1500||o/e>.35}function Wl(t,e){return t<=0?{alpha:1,shellAlpha:.92,borderAlpha:.95,sizeMultiplier:1.28,borderBoost:1.35,zIndex:8}:t===1?{alpha:.9,shellAlpha:.42,borderAlpha:.78,sizeMultiplier:.96,borderBoost:.28,zIndex:5}:t===2?{alpha:e?.46:.62,shellAlpha:e?.1:.2,borderAlpha:e?.36:.52,sizeMultiplier:e?.54:.7,borderBoost:e?-.2:.05,zIndex:2}:{alpha:e?.16:.34,shellAlpha:e?.03:.1,borderAlpha:e?.16:.32,sizeMultiplier:e?.3:.48,borderBoost:e?-.35:-.08,zIndex:1}}function zl(t,e,o,r,a){if(!r||r.mode==="off"||r.status!=="ready")return{};const n=r.structuralDistances[a],s=r.anchorNodeId===a;if(r.mode==="ego"){if(n==null)return{color:K(t.palette.overview.nodeMuted,.34),shellColor:K(t.palette.overview.nodeBorder,.16),size:Math.max(.75,o.size*.28),borderColor:K(t.palette.overview.nodeBorder,.18),borderSize:Math.max(.25,o.borderSize*.45),label:"",forceLabel:!1,zIndex:Math.min(o.zIndex,0)};const i=ut(0,n/Math.max(1,r.maxHops),1),l=vt(n);return{color:K(l,s?.98:.88-i*.44),shellColor:K(l,s?.92:.54-i*.24),size:Math.max(o.size*(s?1.18:1-i*.22),o.size*.66),borderColor:s?t.nodes.selectedRing.color:K(l,.72-i*.24),borderSize:o.borderSize+(s?1.1:.28),forceLabel:s||o.forceLabel,label:s&&(r.anchorLabel??o.label)||o.label,zIndex:s?Math.max(o.zIndex,4):Math.max(o.zIndex,1)}}if(r.mode==="heatmap"){const i=Dl(r),l=s||i.size===0||i.has(a);if(n==null||!l)return{color:K(t.palette.overview.nodeMuted,e==="overview"?.055:.09),shellColor:K(t.palette.overview.nodeBorder,.015),borderColor:K(t.palette.overview.nodeBorder,.035),borderSize:Math.max(.12,o.borderSize*.18),size:Math.max(.45,o.size*.2),label:"",forceLabel:!1,zIndex:Math.min(o.zIndex,0),coreScale:0};const u=vt(n),d=Wl(n,Tl(r.distanceCounts)),c=s?(r.anchorLabel??o.label)||o.label:"";return{color:K(u,d.alpha),shellColor:K(u,d.shellAlpha),borderColor:s?t.nodes.selectedRing.color:K(u,d.borderAlpha),borderSize:Math.max(.18,o.borderSize+d.borderBoost),size:Math.max(.7,o.size*d.sizeMultiplier),forceLabel:s,label:c,zIndex:Math.max(s?o.zIndex:0,d.zIndex)}}return{}}function Vl(t,e,o,r,a){if(!e||e.mode==="off"||e.status!=="ready")return{};if(e.mode==="heatmap")return a==="path"||a==="selected"||a==="local-context"?{}:{hidden:!0,color:K("#1D2A35",.02),size:Math.min(t.size??.35,.2),zIndex:0};if(e.mode==="structural"){const n=e.structuralDistances[o],s=e.structuralDistances[r],i=Math.min(n??Number.POSITIVE_INFINITY,s??Number.POSITIVE_INFINITY);if(!Number.isFinite(i)||i>e.maxHops)return{};const l=vt(i);return{hidden:!1,color:K(l,i<=1?.72:i<=3?.48:.32),size:Math.max(t.size??.6,i<=1?1.25:i<=3?.95:.7),zIndex:Math.max(t.zIndex,i<=1?5:3),type:"line",curvature:0}}if(e.mode==="semantic"){const n=e.anchorNodeId;if(!n||o!==n&&r!==n)return{};const s=o===n?r:o,i=e.semanticScores[s];if(i==null)return{};const l=Ll(i);return{hidden:!1,color:K(l,.34+ut(0,i,1)*.42),size:Math.max(t.size??.6,.8+ut(0,i,1)*.75),zIndex:Math.max(t.zIndex,4),type:"line",curvature:0}}return{}}function Oo(t,e,o,r){t.forEachDirectedEdge(e,o,(a,n)=>{r(String(a),n)})}function Qa(t,e,o){const r=[];return Oo(t,e,o,a=>{r.push(a)}),r}function Ul(t){return!!(t?.isAggregated||(t?.rawEdgeIds?.length??0)>1)}function vr(t,e){const o=t?.rawEdgeIds?.map(r=>String(r)).filter(Boolean)??[];return o.length>0?o:e?[String(e)]:[]}function an(t,e){return{aggregationEnabled:e,groupedViewAvailable:!1,groupedViewReason:null,selectedRootNodeId:t||null,selectedVisibleNeighborIds:[],selectedCollapsedNeighborIds:[],selectedNodeKind:t?"unavailable":"none",canActivateFocused:!1,resolvedFocusedNodeId:null,focusedUnavailableReason:t?{code:"not-in-graph"}:null}}function sn(t,e){if(!e)return null;if(t.hasNode(e))return e;let o=null;return t.forEachNode((r,a)=>{if(o)return;const n=a.properties?.__communityGroup;if(n){if(n.anchorNodeId===e){o=r;return}(n.sampleNodeIds?.includes(e)||n.memberNodeIds?.includes(e))&&(o=r)}}),o}function Bl(){const e=ro(j,{computeCommunities:!0,computeCentrality:!1}).communitiesByNode.size>0;return{available:e,reason:e?null:{code:"communities-undetected"}}}function Ol(t,e){const o=sn(t,e);if(!o)return[];const r=new Map;return t.forEachEdge((a,n,s,i)=>{const l=String(s),u=String(i);if(l!==o&&u!==o)return;const d=l===o?u:l;if(!d||d===o||!t.hasNode(d))return;const c=Number(n.aggregateCount??n.baseSize??n.size??n.weight??1),p=Number.isFinite(c)&&c>0?c:1;r.set(d,(r.get(d)??0)+p)}),Array.from(r.entries()).sort((a,n)=>n[1]!==a[1]?n[1]-a[1]:a[0].localeCompare(n[0])).map(([a])=>a)}function Fl(t,e,o){const r=an(e,!0);if(r.groupedViewAvailable=o?.groupedViewAvailable??!0,r.groupedViewReason=o?.groupedViewReason??null,r.selectedNodeKind=o?.selectedNodeKind??(e?"grouped":"none"),r.resolvedFocusedNodeId=o?.resolvedFocusedNodeId??null,r.canActivateFocused=!!r.resolvedFocusedNodeId,r.focusedUnavailableReason=r.canActivateFocused?null:o?.focusedUnavailableReason??r.focusedUnavailableReason,!e)return r;const a=sn(t,e);if(!a)return r;const n=Ol(t,a);return r.selectedRootNodeId=a,r.selectedVisibleNeighborIds=n.slice(0,$r),r.selectedCollapsedNeighborIds=n.slice($r),r}function $l(t){if(t.order===0)return{code:"community-nodes-missing"};let e=null;return t.forEachNode((o,r)=>{if(e)return;const a=r;(!Number.isFinite(Number(a.x))||!Number.isFinite(Number(a.y)))&&(e={code:"invalid-community-layout",nodeId:o})}),e||(t.forEachEdge((o,r,a,n)=>{e||(!t.hasNode(a)||!t.hasNode(n))&&(e={code:"missing-grouped-node",edgeId:o})}),e)}function no(t,e,o=[]){if(o.length>0){const a=new Set(o.map(s=>String(s))),n=new Set;return t.forEachEdge((s,i)=>{const l=String(s);if(a.has(l)){n.add(l);return}vr(i,l).some(d=>a.has(d))&&n.add(l)}),n}const r=new Set;for(let a=0;a<e.length-1;a+=1)Qa(t,e[a],e[a+1]).forEach(n=>r.add(n));return r}function ln(t,...e){const o=new Set;return e.forEach(r=>{if(!r||!t.hasEdge(r))return;const[a,n]=t.extremities(r);o.add(a),o.add(n)}),o}function Ja(t,e){const o=new Set,r=Array.from(e);for(let a=0;a<r.length;a+=1){const n=r[a];for(let s=0;s<r.length;s+=1){const i=r[s];n!==i&&Qa(t,n,i).forEach(l=>o.add(l))}}return o}function fa(t,e){if(!e)return new Set;const o=new Set(e.activePath),r=e.hoveredNodeId||e.selectedNodeId;return r&&t.hasNode(r)&&kr(t,r).forEach(a=>o.add(a)),ln(t,e.selectedEdgeId).forEach(a=>o.add(a)),o}function ma(t,e){if(!e)return new Set;const o=new Set(no(t,e.activePath,e.activePathEdgeIds)),r=e.hoveredNodeId||e.selectedNodeId;return r&&t.hasNode(r)&&Ja(t,kr(t,r)).forEach(a=>o.add(a)),e.selectedEdgeId&&o.add(e.selectedEdgeId),o}function ql(t,e){const o=new Set;return t.forEachEdge((r,a)=>{const n=String(r);if(e.has(n)){o.add(n);return}vr(a,n).some(i=>e.has(i))&&o.add(n)}),Array.from(o)}function Kl(t,e,o){const r=new Set,a=new Set;return fa(t,e).forEach(n=>r.add(n)),fa(t,o).forEach(n=>r.add(n)),ma(t,e).forEach(n=>a.add(n)),ma(t,o).forEach(n=>a.add(n)),{nodes:Array.from(r).filter(n=>t.hasNode(n)),edges:ql(t,a)}}function ei(t,e,o){!Xa||!o.startsWith(rr)||console.debug("[graphSceneState]",`${t}-skipped-missing-display-node`,{nodeId:o,order:e.order,size:e.size})}function Yl(t,e,o){let r=0;return Oo(t,e,o,(a,n)=>{r=Math.max(r,Number(n?.weight??0))}),Oo(t,o,e,(a,n)=>{r=Math.max(r,Number(n?.weight??0))}),r}function ti(t,e){return!e||!t.hasNode(e)?(ei("neighbors",t,e),[]):t.neighbors(e).map(o=>({id:o,weight:Yl(t,e,o),degree:t.hasNode(o)?t.degree(o):0})).sort((o,r)=>r.weight!==o.weight?r.weight-o.weight:r.degree!==o.degree?r.degree-o.degree:o.id.localeCompare(r.id)).map(o=>o.id)}function cn(t){return ti(j,t)}function kr(t,e){if(!e||!t.hasNode(e))return ei("focus",t,e),new Set;const o=ti(t,e).slice(0,$r);return new Set([e,...o])}function ga(t,e,o,r,a,n){if(no(t,e.activePath,e.activePathEdgeIds).has(o)||e.selectedEdgeId===o||n.isAggregated&&(e.viewMode==="grouped"||e.zoomTier==="inspection"))return!0;const i=e.selectedNodeId;if(i&&t.hasNode(i)){if(r===i||a===i)return!0;const l=kr(t,i);return l.has(r)&&l.has(a)}return e.zoomTier!=="inspection"?!1:Number(n.visualPriority??0)>=E.zoomTiers[e.zoomTier].edgePriorityThreshold}function Xl(t,e,o,r,a){const n=wr(r,t),s=!!r.isCommunityGroup,i=t.nodes.entityShapes[un(r)],l=o==="neighbor"?t.palette.overview.nodeTintMix+.09:t.palette.overview.nodeTintMix,u=dt(t.palette.overview.nodeCore,n,Math.min(.74,t.palette.overview.nodeCoreMix+l));switch(t.nodes.states[o].color){case"selected":return t.palette.accent.selected;case"hovered":return t.palette.accent.hovered;case"path":return t.palette.accent.path;case"muted":return e==="overview"?K(t.palette.overview.nodeMuted,.42):String(r.mutedColor||K(n,t.nodes.mutedAlpha));default:if(e==="overview"){const d=oo(a),c=dt(u,n,.3+.26*d),p=Math.min(.98,t.palette.overview.nodeCoreAlpha+d*.18);return K(c,s?Math.min(p,t.grouped.style.fillAlpha):Math.min(p,i.fillAlpha))}return K(n,s?t.grouped.style.fillAlpha:i.fillAlpha)}}function Zl(t,e,o,r,a){const n=wr(r,t),s=!!r.isCommunityGroup,i=t.nodes.entityShapes[un(r)],l=oo(a),u=dt(n,t.ui.text.strong,.34+l*.12);return e!=="overview"?K(dt(n,t.ui.text.strong,o==="default"?.26:.42),s?t.grouped.style.shellAlpha:Math.min(.72,i.shellAlpha+.12)):o==="selected"?K(dt(t.palette.accent.selected,t.ui.text.strong,.24),.92):o==="hovered"?K(dt(t.palette.accent.hovered,t.ui.text.strong,.22),.9):o==="path"?K(dt(t.palette.accent.path,t.ui.text.strong,.22),.9):o==="muted"||o==="inactive"?K(t.palette.overview.nodeBorder,.16):K(u,s?t.grouped.style.shellAlpha:Math.min(.58,i.shellAlpha+.08))}function Ql(t,e,o){const r=oo(o);if(t==="overview")switch(e){case"selected":return .34+r*.08;case"hovered":return .32+r*.08;case"path":return .28+r*.07;case"neighbor":return .2+r*.06;case"muted":case"inactive":return .08+r*.03;default:return .16+r*.08}switch(e){case"selected":return .52;case"hovered":return .48;case"path":return .44;case"neighbor":return .3;case"muted":case"inactive":return .1;default:return t==="structure"?.22:.28}}function Jl(t,e,o,r,a,n){const s=e==="overview"?t.palette.overview.edgeInspection:t.palette.muted.edgeInspection,i=String(r.baseColor||a||s);if(n==="bridge")return t.palette.muted.edgeFocus;switch(t.edges.states[o].color){case"hover":return t.palette.accent.hovered;case"path":return t.palette.accent.path;case"backbone":return e==="overview"?t.palette.overview.edgeBackbone:t.palette.muted.edgeFocus;case"focus":return t.palette.muted.edgeFocus;case"overview":return t.palette.muted.edgeOverview;case"structure":return e==="overview"?t.palette.overview.edgeStructure:t.palette.muted.edgeStructure;case"inspection":return e==="overview"?t.palette.overview.edgeInspection:t.palette.muted.edgeInspection;case"muted":return e==="overview"?t.palette.overview.edgeStructure:t.palette.muted.edgeOverview;default:return i}}function ri(t,e,o,r){const a=r?"grouped":e;return t.edges.visibility[a][o]}function oi(t){return t==="path"||t==="selected"||t==="hovered"||t==="neighbor"||t==="backbone"}function ec(t){return t==="line"||t==="directional"||t==="parallelCurve"||t==="bidirectionalCurve"}function ba(t,e,o,r,a){if(t>=1)return!1;const n=o||`${r??"?"}->${a??"?"}`,s=Rt(n)%1e4/1e4,i=Math.min(1,t+e*.08);return s>i}function tc(t,e,o,r,a,n,s){const i=ri(t,e,o,n);if(e==="full"){if(s==="path"||r==="path")return t.interaction.pathEdgeAlpha;if(s==="selected"||r==="selected")return t.interaction.selectedEdgeAlpha;if(s==="local-context"||r==="hovered")return t.interaction.localContextAlpha;if(s==="bridge")return t.edges.fullGraphStructure.bridgeAlpha;if(s==="backbone")return t.edges.fullGraphStructure.backboneAlpha;if(r==="backbone")return t.edges.fullGraphStructure.ambientBackboneAlpha;if(r==="default"&&o==="structure")return t.edges.fullGraphStructure.structureEdgeAlpha;if(r==="default"&&o==="inspection")return t.edges.fullGraphStructure.inspectionEdgeAlpha}return r==="path"?t.interaction.pathEdgeAlpha:r==="selected"||r==="hovered"?r==="selected"?t.interaction.selectedEdgeAlpha:t.interaction.hoverContextAlpha:r==="default"?i.defaultAlpha:r==="muted"?i.mutedAlpha:r==="inactive"?i.inactiveAlpha:r==="neighbor"?a.bundleKind==="community"?Math.max(i.neighborAlpha,t.grouped.style.edgeAlpha):i.neighborAlpha:n&&!oi(r)?t.grouped.style.edgeAlpha:null}function rc(t,e,o){if(e==="selected")return o.ringColor||t.nodes.selectedRing.color;if(e==="hovered")return t.palette.accent.hovered;if(e==="path")return t.palette.accent.path}function oc(t,e,o){return e==="selected"&&xt(o,t.nodes.selectedRing.visibleFrom)?t.nodes.selectedRing.nativeSize:e==="hovered"?Math.max(1.45,t.nodes.selectedRing.nativeSize-.35):e==="path"?Math.max(1.2,t.nodes.selectedRing.nativeSize-.55):0}function ni(t,e,o,r,a,n,s,i){return o&&t===o?"hovered":r&&t===r?"selected":i.has(t)?"path":n.has(t)||s.has(t)?"neighbor":o||r||a||i.size>0?e!=="inspection"?"default":"muted":"default"}function nc(t,e,o,r,a,n,s,i,l,u=new Set){const d=a||n;return l.has(t)?"path":s&&t===s?"selected":d&&(e===d||o===d)?u.has(t)?a?"hovered":"selected":"muted":r!=="overview"&&i.has(e)&&i.has(o)?"neighbor":a||n||s||l.size>0?"muted":r==="overview"?"inactive":"default"}function ya(t){return t?String(t.communityId||t.semanticGroup||t.nodeType||""):""}function ac(t,e){const o=ya(t),r=ya(e);return!!(o&&r&&o!==r)}function ic(t,e,o,r,a,n,s,i,l,u=new Set,d=new Set,c,p){const b=a||n;return l.has(t)?"path":s&&t===s?"selected":u.has(t)?"local-context":b&&(e===b||o===b)?"muted":d.has(t)?ac(c,p)?"bridge":"backbone":r==="overview"?"hidden":(i.has(e)&&i.has(o),"muted")}function sc(t,e){switch(t){case"path":return"path";case"selected":return"selected";case"local-context":return e.hoveredNodeId?"hovered":"selected";case"backbone":return"backbone";case"bridge":return"backbone";case"hidden":return"inactive";default:return e.hasActiveInteraction?"muted":"default"}}function lc(t,e){return t==="selected"?"selected":e.nodeShapeVariant||e.nodeVariant||"default"}function un(t){return t.isCommunityGroup?"community":t.entityShape||qa(t.nodeType,t.semanticGroup,t.content,t.properties)}function cc(t,e){return t==="path"?"pathSignal":e.bundleKind==="community"?"line":(e.parallelCount??1)>1?"parallelCurve":e.edgeVariant?e.edgeVariant:e.isBidirectional?"bidirectionalCurve":e.arrowVisibilityPolicy==="contextual"?"directional":"line"}function uc(t,e,o,r,a){const n=t.zoomTiers[e],s=t.labels.forceVisibleStates.includes(o),i=r.labelVisibilityPolicy||"priority";if(s||t.nodes.states[o].forceLabel)return!0;switch(i){case"always":return!0;case"local":return e!=="overview"&&o!=="default"&&o!=="muted"&&o!=="inactive";case"priority":return a>=n.labelThreshold;default:return!1}}function dc(t,e,o,r,a,n){return o==="selected"||r==="selected"?a.ringColor||t.nodes.selectedRing.color:o==="hovered"?t.palette.accent.hovered:o==="path"?t.palette.accent.path:o==="muted"||o==="inactive"?K(a.strokeColor||a.borderColor||t.palette.overview.nodeBorder||t.palette.background.nodeBorder,e==="overview"?.26:.7):r==="temporal"?t.palette.accent.temporal:r==="provenance"?t.palette.accent.provenance:r==="inferred"?t.palette.accent.inferred:e==="overview"?K(dt(t.palette.overview.nodeBorder,n,o==="neighbor"?.08:.03),o==="neighbor"?.24:.06):a.strokeColor||a.borderColor||t.palette.background.nodeBorder||n}function qr(t,e,o,r,a,n=1){const s=t.zoomTiers[e],i=t.nodes.states[o],l=lc(o,r),u=t.nodes.variants[l],d=un(r),c=t.nodes.entityShapes[d],p=!!r.isCommunityGroup,b=Number(r.baseSize||r.size||4),m=Number(r.labelPriority??0),f=Xl(t,e,o,r,n),y=Zl(t,e,o,r,n),h=(o==="default"?s.nodeScale:i.sizeMultiplier)*u.sizeMultiplier*(p?t.grouped.style.nodeSizeScale:1),v=e==="overview"?1+oo(n)*1.2:1,x=uc(t,e,o,r,m),g=r.badgeKind||u.badgeKind,w=t.labels.forceVisibleStates.includes(o),C=!!(g&&(w||s.showBadges&&xt(e,u.badgeVisibleFrom))&&o!=="muted"&&o!=="inactive"),I=oc(t,o,e),k=rc(t,o,r),D=I>0,_=o==="hovered"||o==="selected"||o==="path",L=o==="muted"||o==="inactive"?t.nodes.strokeHierarchy[e].muted:w?t.nodes.strokeHierarchy[e].emphasis:t.nodes.strokeHierarchy[e].base,G=Ql(e,o,n)*c.coreScale;return{color:f,shellColor:y,coreScale:e!=="overview"||o==="hovered"||o==="selected"||o==="path"?ut(.06,G,.5):0,size:Math.max(b*h*v,i.minSize,c.minSize),forceLabel:x,label:x?a:"",zIndex:x&&i.zIndex===0?1:i.zIndex,hidden:!1,borderColor:dc(t,e,o,l,r,f),borderSize:Math.max(.4,Number(r.borderSize??.85)+L+i.borderBoost+u.borderBoost+c.borderBoost+(p?t.grouped.style.nodeBorderBoost:0)-.8),nodeVariant:l,entityShape:d,entityShapeKind:c.shapeKind,entityAspectRatio:c.aspectRatio,badgeKind:g,badgeCount:r.badgeCount,showBadge:C,showRing:D,ringColor:k,ringSize:I,showHalo:_,haloColor:r.haloColor||r.glowColor||K(f,(p?t.grouped.style.glowAlpha:t.overlays.hoverGlowAlpha)+u.haloBoost)}}function pc(t,e,o,r,a,n){const s=t.edges.variants[r];return t.edges.states[o].forceArrow||s.arrowPolicy==="always"?"arrow":(n==="full"||n==="grouped")&&o==="default"||n==="full"&&o==="backbone"?"line":s.arrowPolicy==="contextual"&&t.zoomTiers[e].showContextualArrows?"arrow":o!=="default"?a.type||s.baseType:Number(a.visualPriority??0)>=t.zoomTiers[e].arrowPriorityThreshold&&t.zoomTiers[e].showContextualArrows?"arrow":"line"}function hc(t,e,o,r,a,n){const s=t.edges.variants[o],i=o==="line"&&e==="selected"?Math.max(s.curveStrength,.14):s.curveStrength;if(i===0)return 0;if(typeof r.parallelCount=="number"&&r.parallelCount>1&&typeof r.parallelIndex=="number"){const l=(r.parallelCount-1)/2;return(r.parallelIndex-l)*i}return(o==="bidirectionalCurve"||o==="parallelCurve"||r.isBidirectional)&&a&&n?a.localeCompare(n)<=0?i:-i:i}function dn(t,e,o,r,a,n,s="full",i,l){const u=t.zoomTiers[e],d=t.edges.states[o],c=cc(o,r),p=t.edges.variants[c],b=r.bundleKind==="community",m=Number(r.baseSize||r.size||.9),f=Number(r.visualPriority??0),y=s==="full"&&r.isSmallGraph===!0,h=s==="full"&&l==="bridge",v=s==="full"&&l==="backbone",x=h&&f>=t.edges.fullGraphStructure.bridgeCurvePriorityThreshold,g=ri(t,s,e,b),w=oi(o),C=ec(c),I=!y&&o==="default"&&f<Math.max(u.edgePriorityThreshold,g.defaultPriorityThreshold)&&C,k=!y&&(o==="muted"||o==="inactive")&&g.hideMuted,D=!y&&C&&(o==="default"&&!w&&ba(g.backgroundSampleRate,f,i,a,n)||o==="backbone"&&e==="overview"&&s!=="full"&&ba(.15,f,i,a,n));if(d.hide||I||k||D)return{hidden:!0,zIndex:0,edgeVariant:c,arrowVisibilityPolicy:p.arrowPolicy,curveStrength:p.curveStrength,curvature:0};const _=w?1:g.sizeMultiplier,L=(o==="default"?u.edgeSizeScale:d.sizeMultiplier)*p.sizeMultiplier*_,G=pc(t,e,o,c,r,s),V=u.showCurves&&(c==="pathSignal"||o==="selected"||x||c==="bidirectionalCurve"||c==="parallelCurve"),q=x?a&&n&&a.localeCompare(n)>0?-t.edges.fullGraphStructure.bridgeCurveStrength:t.edges.fullGraphStructure.bridgeCurveStrength:V?hc(t,o,c,r,a,n):0,W=Jl(t,e,o,r,r.color,l),F=tc(t,s,e,o,r,b,l),ee=y?Math.max(F??1,w?.62:.46):F,U=ee===null?W:K(W,ee),T=Math.max(m*L*(b?t.grouped.style.edgeSizeScale:1),y?Math.max(d.minSize,.9):d.minSize),P=l==="path"||o==="path"?t.interaction.pathEdgeMaxSize:l==="selected"||o==="selected"?t.interaction.selectedEdgeMaxSize:l==="local-context"||o==="hovered"||o==="neighbor"?t.interaction.localContextMaxSize:Number.POSITIVE_INFINITY,z=h?Math.min(T,t.edges.fullGraphStructure.bridgeMaxSize):v?Math.min(T,t.edges.fullGraphStructure.backboneMaxSize):Math.min(T,P);return{hidden:!1,type:V?G==="arrow"?"curvedArrow":"curve":G,color:U,size:z,zIndex:d.zIndex,edgeVariant:c,arrowVisibilityPolicy:p.arrowPolicy,curveStrength:p.curveStrength,curvature:q}}function fc(t,e,o){t.hasNode(e)||t.addNode(e,o)}function mc(t){const e=String(t||"").trim();return e.length<=22?e:`${e.slice(0,21).trimEnd()}…`}function gc(t){const e=2*Math.PI*Math.max(t,1);return Math.max(6,Math.floor(e/E.grouped.initialLayout.minNodeSpacing))}function va(t){return Math.max(16,10+Math.log2(t+1)*4.6)}function bc(t){const e=new Map,o=t.slice().sort((d,c)=>{const p=Math.log2(d.memberCount+1)*2.2+Math.log2(d.connectivityWeight+1)*1.6+d.centralityScore*5,b=Math.log2(c.memberCount+1)*2.2+Math.log2(c.connectivityWeight+1)*1.6+c.centralityScore*5;return b!==p?b-p:d.communityId-c.communityId});if(o.length===0)return e;const r=new Map,a=Math.min(E.grouped.initialLayout.primaryLabelCount,o.length),n=d=>Math.max(.24,1.24-d*.055),s=d=>d<a?Math.max(1.02,1.42-d*.05):.56,i={x:0,y:0};r.set(o[0].communityId,i),e.set(o[0].communityId,{...i,labelPriority:s(0),visualPriority:n(0)});let l=1,u=1;for(;l<o.length;){const d=E.grouped.initialLayout.innerRadius+(u-1)*E.grouped.initialLayout.ringSpacing,c=gc(d),p=Math.min(c,o.length-l),b=Rt(`community-ring:${u}`)%360*Math.PI/180;for(let m=0;m<p;m+=1){const f=o[l+m],y=b+Math.PI*2*m/p,h={x:Number((d*Math.cos(y)).toFixed(3)),y:Number((d*Math.sin(y)).toFixed(3))};r.set(f.communityId,h),e.set(f.communityId,{...h,labelPriority:s(l+m),visualPriority:n(l+m)})}l+=p,u+=1}for(let d=0;d<E.grouped.initialLayout.overlapIterations;d+=1){let c=!1;for(let p=0;p<o.length;p+=1)for(let b=p+1;b<o.length;b+=1){const m=o[p],f=o[b],y=e.get(m.communityId),h=e.get(f.communityId);if(!y||!h)continue;let v=h.x-y.x,x=h.y-y.y,g=Math.hypot(v,x);if(g<.001){const L=Rt(`grouped-collision:${m.communityId}:${f.communityId}`)%360*Math.PI/180;v=Math.cos(L),x=Math.sin(L),g=1}const w=m.radius+f.radius+E.grouped.initialLayout.nodePadding;if(g>=w)continue;const C=w-g,I=v/g,k=x/g,D=f.radius/(m.radius+f.radius),_=m.radius/(m.radius+f.radius);y.x-=I*C*.52*D,y.y-=k*C*.52*D,h.x+=I*C*.52*_,h.y+=k*C*.52*_,c=!0}if(o.forEach(p=>{const b=e.get(p.communityId),m=r.get(p.communityId);!b||!m||(b.x+=(m.x-b.x)*.08,b.y+=(m.y-b.y)*.08)}),!c)break}return e}function pn(t,e){if(!t||!j.hasNode(t))return{selectedVisibleNeighborIds:[],selectedCollapsedNeighborIds:[]};const o=cn(t),r=new Set(e.filter(n=>n!==t&&j.hasNode(n))),a=new Set;return o.forEach((n,s)=>{(s<El||r.has(n))&&a.add(n)}),{selectedVisibleNeighborIds:Array.from(a),selectedCollapsedNeighborIds:o.filter(n=>!a.has(n))}}function yc(t,e){const o=pn(t,e),r=new Set(o.selectedCollapsedNeighborIds);if(r.size===0)return j.copy();const a=j.copy();return r.forEach(n=>{if(!a.hasNode(n))return;a.edges(n).map(i=>String(i)).forEach(i=>{if(!a.hasEdge(i))return;const[l,u]=a.extremities(i);(l===t&&u===n||l===n&&u===t)&&a.dropEdge(i)}),a.hasNode(n)&&a.degree(n)===0&&a.dropNode(n)}),a}function gr(t){return t||"related_to"}function Kr(t){const e=new Jr({type:"directed",multi:!0,allowSelfLoops:!1});t.forEachNode((r,a)=>{e.addNode(r,{...a})});const o=new Map;return t.forEachEdge((r,a,n,s)=>{const i=`${n}→${s}`,l=o.get(i)??[];l.push({edgeId:String(r),attrs:a}),o.set(i,l)}),o.forEach((r,a)=>{const[n,s]=a.split("→");if(r.length===1){const[{edgeId:f,attrs:y}]=r;e.mergeDirectedEdgeWithKey(f,n,s,{...y,edgeType:gr(y.edgeType),dominantEdgeType:gr(y.dominantEdgeType??y.edgeType),rawEdgeIds:vr(y,f),isAggregated:Ul(y),aggregateCount:y.aggregateCount??vr(y,f).length,representativeWeight:y.representativeWeight??Number(y.weight??1)});return}const l=r.slice().sort((f,y)=>{const h=Number(y.attrs.weight??0)-Number(f.attrs.weight??0);if(h!==0)return h;const v=Number(y.attrs.visualPriority??0)-Number(f.attrs.visualPriority??0);return v!==0?v:f.edgeId.localeCompare(y.edgeId)})[0],u=r.flatMap(({edgeId:f,attrs:y})=>vr(y,f)),d=new Map;r.forEach(({attrs:f})=>{const y=gr(f.edgeType);d.set(y,(d.get(y)??0)+1)});const c=[...d.entries()].sort((f,y)=>y[1]-f[1])[0]?.[0]??gr(l.attrs.edgeType),p=`${s}→${n}`,b=o.has(p),m=`${Ya}${n}::${s}`;e.mergeDirectedEdgeWithKey(m,n,s,{...l.attrs,edgeId:m,familyId:m,sourceId:n,targetId:s,rawEdgeIds:u,isAggregated:!0,aggregateCount:u.length,dominantEdgeType:c,representativeWeight:Number(l.attrs.weight??1),weight:Number(l.attrs.weight??1),edgeType:l.attrs.edgeType||c,parallelCount:u.length,familySize:u.length,bundleKind:b?"bidirectional":"parallel",isBidirectional:b})}),e}function vc(){const t=ro(j,{computeCommunities:!0,computeCentrality:!0}),e=an("",!0);if(e.groupedViewAvailable=t.communitiesByNode.size>0,t.communitiesByNode.size===0)return e.groupedViewReason={code:"communities-undetected"},{graph:Kr(j),state:e,meta:yr};const o=new Jr({type:"directed",multi:!0,allowSelfLoops:!1}),r=new Map;j.forEachNode(m=>{const f=t.communitiesByNode.get(m);if(f===void 0)return;const y=r.get(f)??[];y.push(m),r.set(f,y)});const a=new Map;r.forEach((m,f)=>{const y=m.slice().sort((C,I)=>{const k=t.centralityByNode.get(C)?.score??0,D=t.centralityByNode.get(I)?.score??0;return D!==k?D-k:C.localeCompare(I)}),h=y[0]??null,v=h?j.getNodeAttributes(h):null,x=new Map;m.forEach(C=>{const I=j.getNodeAttributes(C),k=String(I.semanticGroup||I.nodeType||"entity");x.set(k,(x.get(k)??0)+1)});const g=[...x.entries()].sort((C,I)=>I[1]-C[1])[0]?.[0]??"entity",w=v?.baseColor||v?.color||E.palette.semantic[f%E.palette.semantic.length];a.set(f,{memberIds:m,rankedMembers:y,anchorNodeId:h,anchorAttrs:v,dominantSemanticGroup:g,color:w,memberCount:m.length,centralityScore:h?t.centralityByNode.get(h)?.score??0:0})});const n=new Map;j.forEachEdge((m,f,y,h)=>{const v=t.communitiesByNode.get(y),x=t.communitiesByNode.get(h);if(v===void 0||x===void 0||v===x)return;const g=`${rr}${v}`,w=`${rr}${x}`,C=`${g}→${w}`,I=n.get(C)??{sourceId:g,targetId:w,rawEdgeIds:[],weight:0,typeCounts:new Map};I.rawEdgeIds.push(String(m)),I.weight=Math.max(I.weight,Number(f.weight??1));const k=gr(f.edgeType);I.typeCounts.set(k,(I.typeCounts.get(k)??0)+1),n.set(C,I)});const s=new Map;n.forEach(m=>{const f=Number(m.sourceId.replace(rr,"")),y=Number(m.targetId.replace(rr,"")),h=m.rawEdgeIds.length+m.weight*.35;s.set(f,(s.get(f)??0)+h),s.set(y,(s.get(y)??0)+h)});const i=new Map,l=new Map;let u=0;n.forEach((m,f)=>{const y=m.rawEdgeIds.length+m.weight*.35;i.set(f,y),u=Math.max(u,y);const h=l.get(m.sourceId)??[];h.push({key:f,strength:y}),l.set(m.sourceId,h);const v=l.get(m.targetId)??[];v.push({key:f,strength:y}),l.set(m.targetId,v)});const d=new Set,c=Math.max(1.25,u*E.grouped.style.edgeVisibilityRatio);if(n.forEach((m,f)=>{(i.get(f)??0)>=c&&d.add(f)}),l.forEach(m=>{m.slice().sort((f,y)=>y.strength-f.strength).slice(0,E.grouped.style.topIncidentEdges).forEach(({key:f})=>d.add(f))}),d.size===0&&n.size>0){const m=Array.from(n.keys()).sort((f,y)=>(i.get(y)??0)-(i.get(f)??0))[0];m&&d.add(m)}const p=bc(Array.from(a.entries()).map(([m,f])=>({communityId:m,memberCount:f.memberCount,centralityScore:f.centralityScore,connectivityWeight:s.get(m)??0,radius:va(f.memberCount)*E.grouped.style.nodeSizeScale*.92})));a.forEach((m,f)=>{const y=`${rr}${f}`,h=p.get(f)??{x:0,y:0,labelPriority:.56,visualPriority:.42},v=va(m.memberCount),x=m.anchorAttrs?.label||m.anchorNodeId||`Community ${f}`;fc(o,y,{label:mc(x),content:m.anchorAttrs?.content||x,x:h.x,y:h.y,size:v,baseSize:v,color:m.color,baseColor:m.color,mutedColor:K(m.color,.22),glowColor:K(m.color,E.grouped.style.glowAlpha),borderColor:K(m.color,.74),entityShape:"community",nodeType:"community",semanticGroup:m.dominantSemanticGroup,labelVisibilityPolicy:h.labelPriority>.9?"priority":"none",properties:{__communityGroup:{communityId:String(f),memberCount:m.memberCount,memberNodeIds:m.memberIds,sampleNodeIds:m.rankedMembers.slice(0,Al),anchorNodeId:m.anchorNodeId,anchorLabel:x,dominantSemanticGroup:m.dominantSemanticGroup,color:m.color}},isCommunityGroup:!0,communityId:String(f),memberCount:m.memberCount,anchorNodeId:m.anchorNodeId,labelPriority:h.labelPriority,visualPriority:h.visualPriority})}),n.forEach((m,f)=>{if(!d.has(f))return;const y=[...m.typeCounts.entries()].sort((w,C)=>C[1]-w[1])[0]?.[0]??"related_to",h=`${m.targetId}→${m.sourceId}`,v=`${Ya}${f}`,x=m.rawEdgeIds.length,g=Math.max(.9,.72+Math.log2(x+1)*.2);o.mergeDirectedEdgeWithKey(v,m.sourceId,m.targetId,{edgeId:v,familyId:v,sourceId:m.sourceId,targetId:m.targetId,edgeType:y,dominantEdgeType:y,weight:m.weight,representativeWeight:m.weight,properties:{},rawEdgeIds:m.rawEdgeIds,isAggregated:!0,aggregateCount:x,familySize:x,parallelCount:x,isBidirectional:n.has(h),bundleKind:"community",edgeVariant:"line",arrowVisibilityPolicy:"hidden",baseSize:g,size:g,color:K("#9BB7D6",E.grouped.style.edgeAlpha),mutedColor:K("#9BB7D6",Math.max(.14,E.grouped.style.edgeAlpha*.4)),visualPriority:Math.min(1.05,.38+Math.log2(x+1)*.14)})});const b=$l(o);return b?(e.groupedViewAvailable=!1,e.groupedViewReason=b,{graph:Kr(j),state:e,meta:yr}):{graph:o,state:{aggregationEnabled:!0,groupedViewAvailable:!0,groupedViewReason:null,selectedRootNodeId:null,selectedVisibleNeighborIds:[],selectedCollapsedNeighborIds:[],selectedNodeKind:"none",canActivateFocused:!1,resolvedFocusedNodeId:null,focusedUnavailableReason:null},meta:Gl}}function ai(t,e,o,r){const a=r?.aggregationEnabled??!0,n=new Set(Array.from(r?.collapsedNeighborhoodNodeIds??[]).filter(u=>typeof u=="string")),s=an(t,a);if(s.selectedNodeKind=r?.selectedNodeKind??(t?"unavailable":"none"),s.resolvedFocusedNodeId=r?.resolvedFocusedNodeId??null,s.canActivateFocused=!!s.resolvedFocusedNodeId,s.focusedUnavailableReason=s.canActivateFocused?null:r?.focusedUnavailableReason??s.focusedUnavailableReason,s.groupedViewAvailable=r?.groupedViewAvailable??ro(j,{computeCommunities:!0,computeCentrality:!1}).communitiesByNode.size>0,s.groupedViewReason=r?.groupedViewReason??(s.groupedViewAvailable?null:{code:"communities-undetected"}),!t||!j.hasNode(t))return s;const l=!!(o!=="grouped"&&n.has(t))?pn(t,e):{selectedVisibleNeighborIds:cn(t),selectedCollapsedNeighborIds:[]};return s.selectedRootNodeId=t,s.selectedVisibleNeighborIds=l.selectedVisibleNeighborIds,s.selectedCollapsedNeighborIds=l.selectedCollapsedNeighborIds,s}function xc(t,e,o=[],r=!1){const a=new Jr({type:"directed",multi:!0,allowSelfLoops:!1}),n=cn(t).slice(0,$r),s=r?pn(t,e):{selectedVisibleNeighborIds:n},i=n.filter(f=>s.selectedVisibleNeighborIds.includes(f)),l=new Set([t,...i]),u=new Set(i.slice(0,Nl)),d=new Set(e),c=no(j,e,o),p=(f,y)=>{a.hasNode(f)||a.addNode(f,y)},b=j.getNodeAttributes(t),m=qr(E,"inspection","selected",b,b.label);return p(t,{...b,x:Number.isFinite(b.x)?b.x:0,y:Number.isFinite(b.y)?b.y:0,color:m.color,size:Math.max(m.size,22),baseColor:m.color,semanticBaseColor:wr(b),baseSize:Math.max(m.size,22),label:m.label}),i.forEach((f,y)=>{const h=j.getNodeAttributes(f),v=Math.floor(y/jr),x=y%jr,g=Math.min(jr,n.length-v*jr),w=wl*(v+1),C=Math.PI*2*x/g-Math.PI/2,I=d.has(f)?"path":u.has(f)?"neighbor":"default",k=qr(E,"inspection",I,{...h,labelPriority:u.has(f)||d.has(f)?Math.max(Number(h.labelPriority??0),1):0},h.label);p(f,{...h,x:Number.isFinite(h.x)?h.x:Math.cos(C)*w,y:Number.isFinite(h.y)?h.y:Math.sin(C)*w,color:k.color,size:Math.max(k.size,8.5),baseColor:k.color,semanticBaseColor:wr(h),baseSize:Math.max(k.size,8.5),label:k.label})}),Ja(j,l).forEach(f=>{if(!j.hasEdge(f))return;const[y,h]=j.extremities(f);if(!l.has(y)||!l.has(h)||y===h){Xa&&console.debug("[graphSceneState]","focused-edge-skipped-invalid-endpoints",{edgeId:f,source:y,target:h,selectedNodeId:t});return}const v=j.getEdgeAttributes(f),x=c.has(f)?"path":y===t||h===t?"selected":"neighbor",g=dn(E,"inspection",x,v,y,h,"focused",f);a.mergeDirectedEdgeWithKey(f,y,h,{...v,type:g.type,size:g.size,color:g.color,baseSize:g.size,baseColor:g.color,curvature:g.curvature})}),Kr(a)}function Hr(t,e,o,r,a){const n=a?.aggregationEnabled??!0,s=new Set(Array.from(a?.collapsedNeighborhoodNodeIds??[]).filter(p=>typeof p=="string")),i=ai(t,e,r,{aggregationEnabled:n,collapsedNeighborhoodNodeIds:s,groupedViewAvailable:a?.groupedViewAvailable}),l=r==="focused"&&!!t&&j.hasNode(t),u=r==="grouped",d=!!(t&&s.has(t));if(u){const p=vc();return{graph:p.graph,state:{...p.state,selectedRootNodeId:i.selectedRootNodeId,selectedVisibleNeighborIds:i.selectedVisibleNeighborIds,selectedCollapsedNeighborIds:i.selectedCollapsedNeighborIds,groupedViewReason:p.state.groupedViewReason,selectedNodeKind:i.selectedNodeKind,canActivateFocused:i.canActivateFocused,resolvedFocusedNodeId:i.resolvedFocusedNodeId,focusedUnavailableReason:i.focusedUnavailableReason},meta:p.meta}}if(l&&t)return{graph:xc(t,e,o,d),state:i,meta:yr};const c=d&&t?yc(t,e):j;return{graph:n?Kr(c):c,state:i,meta:n?yr:c===j?_l:yr}}function Sc(t,e,o,r,a,n,s,i,l){return{hoveredNodeId:t,selectedNodeId:e,selectedEdgeId:r,focusedNodeId:o,activePath:a,activePathEdgeIds:n,viewMode:s,zoomTier:i,isLayoutRunning:l}}function wc(t,e,o,r=96){return t.x>=-r&&t.y>=-r&&t.x<=e+r&&t.y<=o+r}function hn(t,e,o,r,a){const n=t.createRadialGradient(e,o,0,e,o,r);n.addColorStop(0,a),n.addColorStop(1,"rgba(0,0,0,0)"),t.fillStyle=n,t.beginPath(),t.arc(e,o,r,0,Math.PI*2),t.fill()}function fn(t,e){const o=document.createElement("canvas");return o.width=t,o.height=e,o}function ii(t){if(t.startsWith("#")){const o=t.slice(1),r=o.length===3?o.split("").map(a=>`${a}${a}`).join(""):o;if(r.length===6)return{r:Number.parseInt(r.slice(0,2),16),g:Number.parseInt(r.slice(2,4),16),b:Number.parseInt(r.slice(4,6),16)}}const e=t.match(/rgba?\((\d+),\s*(\d+),\s*(\d+)/i);return e?{r:Number.parseInt(e[1],10),g:Number.parseInt(e[2],10),b:Number.parseInt(e[3],10)}:{r:130,g:145,b:165}}function Mo(t,e,o,r){const a=new Uint8Array(e*o);let n=0,s=0,i=0,l=0;for(let d=0;d<o;d+=1)for(let c=0;c<e;c+=1){const p=d*e+c,b=t[p];b<r||(a[p]=1,n+=1,s+=c*b,i+=d*b,l+=b)}const u=l>0?{x:s/l,y:i/l}:{x:e/2,y:o/2};return{mask:a,count:n,centroid:u}}function Nc(t,e,o,r){if(r<=0)return t;let a=t;for(let n=0;n<r;n+=1){const s=new Uint8ClampedArray(e*o);for(let i=0;i<o;i+=1)for(let l=0;l<e;l+=1){let u=0,d=0;for(let c=-1;c<=1;c+=1){const p=i+c;if(!(p<0||p>=o))for(let b=-1;b<=1;b+=1){const m=l+b;m<0||m>=e||(u+=a[p*e+m],d+=1)}}s[i*e+l]=Math.round(u/Math.max(d,1))}a=s}return a}function Ro(t,e,o,r){const a=new Uint8Array(t.length),n=new Int32Array(t.length);let s=[],i=0;for(let p=0;p<t.length;p+=1){if(!t[p]||a[p])continue;let b=0,m=0;const f=[];for(a[p]=1,n[m++]=p;b<m;){const y=n[b++];f.push(y);const h=y%e,v=Math.floor(y/e),x=[y-1,y+1,y-e,y+e];for(let g=0;g<x.length;g+=1){const w=x[g];w<0||w>=t.length||a[w]||!t[w]||g===0&&h===0||g===1&&h===e-1||g===2&&v===0||g===3&&v===o-1||(a[w]=1,n[m++]=w)}}i+=f.length,f.length>s.length&&(s=f)}const l=new Uint8Array(t.length);let u=0,d=0,c=0;return s.forEach(p=>{l[p]=1;const b=r[p],m=p%e,f=Math.floor(p/e);u+=m*b,d+=f*b,c+=b}),{mask:l,count:s.length,centroid:c>0?{x:u/c,y:d/c}:{x:e/2,y:o/2},occupancyRatio:s.length/Math.max(e*o,1),dominantMassRatio:s.length/Math.max(i,1)}}function Ec(t,e,o){const r=E.effects.semanticRegions.fogResolutionScale,a=Math.max(72,Math.round(e*r)),n=Math.max(72,Math.round(o*r)),s=fn(a,n),i=s.getContext("2d");if(!i)return null;i.clearRect(0,0,a,n),i.globalCompositeOperation="source-over",t.forEach(b=>{const m=b.point.x*r,f=b.point.y*r,y=Math.max(2.5,(E.effects.semanticRegions.splatRadius+b.size*.9)*r),h=i.createRadialGradient(m,f,0,m,f,y);h.addColorStop(0,"rgba(255,255,255,0.05)"),h.addColorStop(.58,"rgba(255,255,255,0.02)"),h.addColorStop(1,"rgba(255,255,255,0)"),i.fillStyle=h,i.beginPath(),i.arc(m,f,y,0,Math.PI*2),i.fill()});const l=i.getImageData(0,0,a,n),u=new Uint8ClampedArray(a*n);let d=0;for(let b=0;b<u.length;b+=1){const m=l.data[b*4+3];u[b]=m,m>d&&(d=m)}if(d<=0)return null;const c=Nc(u,a,n,E.effects.semanticRegions.blurPasses),p=c.reduce((b,m)=>Math.max(b,m),0);return p<=0?null:{canvas:s,gridWidth:a,gridHeight:n,alphaValues:c,maxAlpha:p,scale:r}}function Ac(t,e,o,r){if(!e)return;const{gridWidth:a,gridHeight:n,alphaValues:s}=e,i=fn(a,n),l=i.getContext("2d");if(!l)return;const u=l.createImageData(a,n),d=ii(o);for(let c=0;c<s.length;c+=1){const p=s[c]/255;if(p<=0)continue;const b=c*4;u.data[b]=d.r,u.data[b+1]=d.g,u.data[b+2]=d.b,u.data[b+3]=Math.round(255*Math.pow(p,1.7)*r)}l.putImageData(u,0,0),t.save(),t.imageSmoothingEnabled=!0,t.globalCompositeOperation="lighter",t.drawImage(i,0,0,t.canvas.width,t.canvas.height),t.restore()}function xa(t,e,o,r,a,n){const s=fn(o,r),i=s.getContext("2d");if(!i)return;const l=i.createImageData(o,r),u=ii(a);for(let d=1;d<r-1;d+=1)for(let c=1;c<o-1;c+=1){const p=d*o+c;if(!e[p]||!(!e[p-1]||!e[p+1]||!e[p-o]||!e[p+o]))continue;const m=p*4;l.data[m]=u.r,l.data[m+1]=u.g,l.data[m+2]=u.b,l.data[m+3]=Math.round(255*n)}i.putImageData(l,0,0),t.save(),t.imageSmoothingEnabled=!0,t.drawImage(s,0,0,t.canvas.width,t.canvas.height),t.restore()}function kc(t){return{fogColor:dt("#0E1927",t,.46),innerContourColor:dt("#1C2C3F",t,.78),outerContourColor:dt("#132131",t,.6),labelBorderColor:dt("#2B3F57",t,.78)}}function Sa(t,e,o,r){const a=[];return e.forEachNode((n,s)=>{const i=t.getNodeDisplayData(n);if(!i)return;const l=t.graphToViewport({x:i.x,y:i.y});wc(l,o,r,84)&&a.push({nodeId:n,point:l,size:i.size,attrs:s})}),a}function Cc(t,e,o,r,a){const n=r.length>22?`${r.slice(0,21)}…`:r;t.save(),t.font='600 11px "IBM Plex Sans", Inter, system-ui, sans-serif',t.textBaseline="middle";const s=t.measureText(n).width+14,i=22,l=e-s/2,u=o-i/2;t.fillStyle="rgba(8, 14, 24, 0.84)",t.strokeStyle=K(a,.24),t.lineWidth=1,t.beginPath(),t.roundRect(l,u,s,i,999),t.fill(),t.stroke(),t.fillStyle="rgba(235, 244, 255, 0.88)",t.fillText(n,l+7,o),t.restore()}function Ic(t,e,o,r,a){if(!a.semanticRegionsEnabled||!e?.semanticRegions.ready||!xt(r.zoomTier,E.effects.semanticRegions.minZoomTier))return;const n=new Map;o.forEach(u=>{const d=String(u.attrs.semanticGroup||u.attrs.nodeType||"entity"),c=n.get(d);c?c.push(u):n.set(d,[u])});const s=e.semanticRegions.summaries.slice(0,E.effects.semanticRegions.maxRegions),i=s.reduce((u,d)=>Math.max(u,d.prominence),1),l=E.effects.semanticRegions;s.forEach(u=>{const d=n.get(u.semanticGroup);if(!d||d.length<l.minVisibleSamples)return;const c=Ec(d,t.canvas.width,t.canvas.height);if(!c)return;const p=.52+u.prominence/i*.48,b=Math.max(18,c.maxAlpha*l.densityThreshold),m=Math.max(28,c.maxAlpha*l.contourThreshold),f=Math.max(18,m*.72),y=Mo(c.alphaValues,c.gridWidth,c.gridHeight,b),h=Ro(y.mask,c.gridWidth,c.gridHeight,c.alphaValues);if(h.count<l.minMaskPixels||h.occupancyRatio<l.minOccupancyRatio||h.dominantMassRatio<l.dominantMassRatio)return;const v=Mo(c.alphaValues,c.gridWidth,c.gridHeight,m),x=Mo(c.alphaValues,c.gridWidth,c.gridHeight,f),g=Ro(v.mask,c.gridWidth,c.gridHeight,c.alphaValues),w=Ro(x.mask,c.gridWidth,c.gridHeight,c.alphaValues),C=kc(u.color);if(Ac(t,c,C.fogColor,l.fogAlpha*p),w.count>=l.outerContourMinMaskPixels&&w.dominantMassRatio>=l.dominantMassRatio&&xa(t,w.mask,c.gridWidth,c.gridHeight,C.outerContourColor,l.outerContourAlpha*p),xa(t,g.mask,c.gridWidth,c.gridHeight,C.innerContourColor,l.innerContourAlpha*p),u.visibleNodeCount>=18){const I=h.centroid.x/c.scale,k=h.centroid.y/c.scale-18;Cc(t,I,k,u.semanticGroup,C.labelBorderColor)}})}function Dc(t,e,o,r,a){if(!a.contoursEnabled||!e?.centrality.ready||!xt(r.zoomTier,E.effects.contours.minZoomTier))return;const n=new Map(o.map(s=>[s.nodeId,s]));e.centrality.topNodes.slice(0,E.effects.contours.maxContours).forEach(s=>{const i=n.get(s.id);i&&hn(t,i.point.x,i.point.y,E.effects.contours.baseRadius+i.size*3.2,K(s.color,E.effects.contours.glowAlpha))})}function _c(t,e){if(!e||!t.valid_from&&!t.valid_until)return!1;const o=e.getTime(),r=t.valid_from?new Date(t.valid_from).getTime():Number.NEGATIVE_INFINITY,a=t.valid_until?new Date(t.valid_until).getTime():Number.POSITIVE_INFINITY;return o>=r&&o<=a}function Gc(t,e,o,r,a){!a.temporalEmphasisEnabled||!o?.currentTime||xt(r.zoomTier,E.effects.temporalEmphasis.minZoomTier)&&e.filter(n=>_c(n.attrs,o.currentTime)).slice(0,E.effects.temporalEmphasis.maxHighlights).forEach(n=>{hn(t,n.point.x,n.point.y,Math.max(n.size*E.effects.temporalEmphasis.radiusMultiplier,14),K(E.palette.accent.temporal,E.effects.temporalEmphasis.glowAlpha))})}function Lc(t,e,o,r){const a=e.getNodeDisplayData(o);if(!a)return;const n=e.graphToViewport({x:a.x,y:a.y});hn(t,n.x,n.y,E.effects.lens.radius,K(E.palette.accent.hovered,E.effects.lens.glowAlpha)),r.forEach(s=>{if(s===o||!j.hasNode(s)||!j.hasDirectedEdge(o,s)&&!j.hasDirectedEdge(s,o))return;const i=e.getNodeDisplayData(s);if(!i)return;const l=e.graphToViewport({x:i.x,y:i.y});t.strokeStyle=K(E.palette.accent.hovered,E.effects.lens.edgeAlpha*.38),t.lineWidth=E.effects.lens.edgeLineWidth+3.2,t.lineCap="round",t.beginPath(),t.moveTo(n.x,n.y),t.lineTo(l.x,l.y),t.stroke(),t.strokeStyle=K(E.palette.accent.hovered,E.effects.lens.edgeAlpha),t.lineWidth=E.effects.lens.edgeLineWidth,t.beginPath(),t.moveTo(n.x,n.y),t.lineTo(l.x,l.y),t.stroke()})}function Pc(t,e,o,r,a){o.pathFlowEnabled&&r.pathFlow.available&&e.forEach((n,s)=>{const i=(a*E.effects.pathFlow.speed+s*E.effects.pathFlow.spacing)%1,l=n.source.x+(n.target.x-n.source.x)*i,u=n.source.y+(n.target.y-n.source.y)*i,d=Math.max(0,i-.08),c=n.source.x+(n.target.x-n.source.x)*d,p=n.source.y+(n.target.y-n.source.y)*d;t.strokeStyle=K(n.color,.28),t.lineWidth=Math.max(n.size+3.6,4.6),t.lineCap="round",t.beginPath(),t.moveTo(c,p),t.lineTo(l,u),t.stroke(),t.strokeStyle=K(E.palette.accent.selected,E.effects.pathFlow.opacity),t.lineWidth=Math.max(n.size+1.3,2.4),t.beginPath(),t.moveTo(c,p),t.lineTo(l,u),t.stroke()}),o.pathPulseEnabled&&r.pathPulse.available&&e.forEach((n,s)=>{const i=(a*E.effects.pathPulse.speed+s*.17)%1,l=n.source.x+(n.target.x-n.source.x)*i,u=n.source.y+(n.target.y-n.source.y)*i,d=t.createRadialGradient(l,u,0,l,u,E.effects.pathPulse.radius);d.addColorStop(0,K(E.palette.accent.path,E.effects.pathPulse.glowAlpha)),d.addColorStop(1,"rgba(0,0,0,0)"),t.fillStyle=d,t.beginPath(),t.arc(l,u,E.effects.pathPulse.radius,0,Math.PI*2),t.fill()})}function Mc(t,e){if(typeof t!="object"||!t)return t;var o=t[Symbol.toPrimitive];if(o!==void 0){var r=o.call(t,e);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function si(t){var e=Mc(t,"string");return typeof e=="symbol"?e:e+""}function li(t,e,o){return(e=si(e))in t?Object.defineProperty(t,e,{value:o,enumerable:!0,configurable:!0,writable:!0}):t[e]=o,t}function wa(t,e){var o=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),o.push.apply(o,r)}return o}function Yr(t){for(var e=1;e<arguments.length;e++){var o=arguments[e]!=null?arguments[e]:{};e%2?wa(Object(o),!0).forEach(function(r){li(t,r,o[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(o)):wa(Object(o)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(o,r))})}return t}function Rc(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function jc(t,e){for(var o=0;o<e.length;o++){var r=e[o];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,si(r.key),r)}}function Hc(t,e,o){return e&&jc(t.prototype,e),Object.defineProperty(t,"prototype",{writable:!1}),t}function Xr(t){return Xr=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},Xr(t)}function ci(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(ci=function(){return!!t})()}function ui(t){if(t===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function Tc(t,e){if(e&&(typeof e=="object"||typeof e=="function"))return e;if(e!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return ui(t)}function Wc(t,e,o){return e=Xr(e),Tc(t,ci()?Reflect.construct(e,o||[],Xr(t).constructor):e.apply(t,o))}function Fo(t,e){return Fo=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(o,r){return o.__proto__=r,o},Fo(t,e)}function zc(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&Fo(t,e)}function $o(t,e){(e==null||e>t.length)&&(e=t.length);for(var o=0,r=Array(e);o<e;o++)r[o]=t[o];return r}function Vc(t){if(Array.isArray(t))return $o(t)}function Uc(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function Bc(t,e){if(t){if(typeof t=="string")return $o(t,e);var o={}.toString.call(t).slice(8,-1);return o==="Object"&&t.constructor&&(o=t.constructor.name),o==="Map"||o==="Set"?Array.from(t):o==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?$o(t,e):void 0}}function Oc(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
|
|
48
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function jo(t){return Vc(t)||Uc(t)||
|
|
47
|
+
*/const vs=[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["line",{x1:"21",x2:"16.65",y1:"21",y2:"16.65",key:"13gj7c"}],["line",{x1:"8",x2:"14",y1:"11",y2:"11",key:"durymu"}]],xs=Ct("zoom-out",vs);function br(t,e){return JSON.stringify([t,e])}function Jo(t,e){return JSON.stringify([t,e])}const j=new Jr({type:"directed",multi:!0,allowSelfLoops:!1});function Ss(t,e){const o=[];j.forEachDirectedEdge(t,e,n=>{o.push(String(n))});const r=o.length,a=new Map;o.forEach(n=>{const s=j.getEdgeAttributes(n),i=String(s.familyId||n);a.set(i,(a.get(i)??0)+1)}),o.sort((n,s)=>{const i=j.getEdgeAttributes(n),l=j.getEdgeAttributes(s),u=Number(l.visualPriority??0)-Number(i.visualPriority??0);if(u!==0)return u;const d=Number(l.weight??0)-Number(i.weight??0);return d!==0?d:n.localeCompare(s)}).forEach((n,s)=>{const i=j.getEdgeAttributes(n),l=String(i.familyId||n);j.mergeEdgeAttributes(n,{edgeId:n,familyId:l,sourceId:t,targetId:e,isParallelPair:r>1,parallelIndex:s,parallelCount:r,familySize:a.get(l)??1,curveGroup:Jo(t,e)})})}function Ba(t){for(const{id:e,attributes:o}of t)j.mergeNode(e,o)}function Fa(t){const e=new Map;for(const{id:o,familyId:r,source:a,target:n,attributes:s}of t){if(a===n)continue;const i=String(s.edgeId||o),l=String(s.familyId||r||i);j.hasNode(a)&&j.hasNode(n)&&(j.mergeDirectedEdgeWithKey(i,a,n,{...s,edgeId:i,familyId:l,sourceId:a,targetId:n}),e.set(br(a,n),{source:a,target:n}))}e.forEach(({source:o,target:r})=>{Ss(o,r)})}function ws(){j.clear()}function Fr(...t){return t.filter(Boolean).join(" ")}function Br(t){const e=Xe.c(11);if(e[0]!=="cfb1804724d22780a78a9168ccf5cc5d8ee78fc0ed9f619e68fa70032a0ef566"){for(let b=0;b<11;b+=1)e[b]=Symbol.for("react.memo_cache_sentinel");e[0]="cfb1804724d22780a78a9168ccf5cc5d8ee78fc0ed9f619e68fa70032a0ef566"}const{children:o,tone:r,padding:a,className:n,style:s}=t,i=r===void 0?"default":r,l=a===void 0?"default":a,u=i!=="default"&&`sem-surface--${i}`;let d;e[1]!==n||e[2]!==u?(d=Fr("sem-surface",u,n),e[1]=n,e[2]=u,e[3]=d):d=e[3];let c;e[4]!==o||e[5]!==l?(c=l==="none"?o:N.jsxDEV("div",{className:Fr("sem-surface-body",l==="tight"&&"sem-surface-body--tight"),children:o},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/ui/primitives.tsx",lineNumber:115,columnNumber:42},this),e[4]=o,e[5]=l,e[6]=c):c=e[6];let p;return e[7]!==s||e[8]!==d||e[9]!==c?(p=N.jsxDEV("div",{className:d,style:s,children:c},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/ui/primitives.tsx",lineNumber:124,columnNumber:10},this),e[7]=s,e[8]=d,e[9]=c,e[10]=p):p=e[10],p}function bt(t){const e=Xe.c(6);if(e[0]!=="cfb1804724d22780a78a9168ccf5cc5d8ee78fc0ed9f619e68fa70032a0ef566"){for(let l=0;l<6;l+=1)e[l]=Symbol.for("react.memo_cache_sentinel");e[0]="cfb1804724d22780a78a9168ccf5cc5d8ee78fc0ed9f619e68fa70032a0ef566"}const{children:o,tone:r}=t,a=r===void 0?"default":r,n=a!=="default"&&`sem-chip--${a}`;let s;e[1]!==n?(s=Fr("sem-chip",n),e[1]=n,e[2]=s):s=e[2];let i;return e[3]!==o||e[4]!==s?(i=N.jsxDEV("span",{className:s,children:o},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/ui/primitives.tsx",lineNumber:225,columnNumber:10},this),e[3]=o,e[4]=s,e[5]=i):i=e[5],i}function Ns(t){const e=Xe.c(9);if(e[0]!=="cfb1804724d22780a78a9168ccf5cc5d8ee78fc0ed9f619e68fa70032a0ef566"){for(let d=0;d<9;d+=1)e[d]=Symbol.for("react.memo_cache_sentinel");e[0]="cfb1804724d22780a78a9168ccf5cc5d8ee78fc0ed9f619e68fa70032a0ef566"}const{children:o,open:r,className:a}=t,n=r===void 0?!0:r;let s;e[1]!==a?(s=Fr("sem-inspector",a),e[1]=a,e[2]=s):s=e[2];const i=n?"block":"none";let l;e[3]!==i?(l={display:i},e[3]=i,e[4]=l):l=e[4];let u;return e[5]!==o||e[6]!==s||e[7]!==l?(u=N.jsxDEV(Br,{className:s,padding:"none",style:l,children:o},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/ui/primitives.tsx",lineNumber:308,columnNumber:10},this),e[5]=o,e[6]=s,e[7]=l,e[8]=u):u=e[8],u}const Es={id:"hover-activation",attach:()=>{},detach:()=>{},onNodeEnter:(t,e)=>{t.setHoveredNodeId(e)},onNodeLeave:(t,e)=>{t.getInteractionState().hoveredNodeId===e&&t.setHoveredNodeId(null)}},As={id:"click-selection",attach:()=>{},detach:()=>{},onNodeClick:(t,e)=>{t.setHoveredNodeId(e),t.onEdgeSelectionChange(""),t.getInteractionState().selectedNodeId===e?t.onNodeSelectionChange(""):t.onNodeSelectionChange(e)},onEdgeClick:(t,e)=>{t.setHoveredNodeId(null),t.getInteractionState().selectedEdgeId===e?t.onEdgeSelectionChange(""):t.onEdgeSelectionChange(e)},onStageClick:t=>{t.setHoveredNodeId(null),t.onEdgeSelectionChange(""),t.onNodeSelectionChange("")}},ks={id:"focus-camera",attach:()=>{},detach:()=>{},performAction:(t,e)=>e.type==="focusNode"?(t.focusNodeInView(e.nodeId),!0):e.type==="centerSelection"?(t.centerSelectionInView(e.nodeId),!0):e.type==="centerGroupedSelection"?(t.centerGroupedSelectionInView(e.nodeId),!0):!1};function Cs(){let t="",e="";return{id:"search-focus",attach:()=>{},detach:()=>{t="",e=""},onStateChange:(o,r)=>{const a=r.selectedNodeId,n=r.viewMode;if(n!==e){e=n,t=a;return}if(!a||a===t){t=a,e=n;return}t=a,e=n,o.dispatchAction({type:n==="grouped"?"centerGroupedSelection":"centerSelection",nodeId:a})}}}const Is=6,Ds=60;function _s(){let t="",e=null,o=0;function r(){o++,e!==null&&(clearTimeout(e),e=null)}function a(n,s,i){s>=Is||(e=setTimeout(()=>{i===o&&(n.refresh(),a(n,s+1,i))},Ds))}return{id:"path-highlight",attach:()=>{},detach:n=>{r(),t="",n.sigma.refresh()},onStateChange:(n,s)=>{const i=s.activePath.join("::");i!==t&&(t=i,r(),n.sigma.refresh(),s.activePath.length>2&&a(n.sigma,0,o))}}}const Gs={id:"fit-view",attach:()=>{},detach:()=>{},performAction:(t,e)=>e.type!=="fitView"?!1:(t.fitCurrentView(),!0)};function Ls(){let t=null;return{id:"view-mode-switch",attach:()=>{},detach:()=>{t=null},onStateChange:(e,o)=>{if(o.viewMode===t)return;t=o.viewMode;const r=o.focusedNodeId;if(o.viewMode==="focused"&&r){e.dispatchAction({type:"focusNode",nodeId:r});return}e.dispatchAction({type:"fitView"})}}}function wr(t,e=E){return String(t.baseColor||t.color||e.palette.semantic[0])}function $a(t,e=E){const o=new Map;return t.forEachNode((r,a)=>{if(a.hidden)return;const n=String(a.semanticGroup||a.nodeType||"entity"),s=String(a.semanticBaseColor||wr(a,e)),i=JSON.stringify([n,s]),l=o.get(i);l?l.count+=1:o.set(i,{id:i,group:n,color:s,count:1})}),[...o.values()].sort((r,a)=>r.group.localeCompare(a.group)||r.color.localeCompare(a.color))}const Ps=[["biomolecule",/\b(gene|protein|enzyme|receptor|target|transcript|rna|dna|mirna|biomolecule|peptide)\b/i],["condition",/\b(disease|condition|phenotype|symptom|disorder|syndrome|diagnosis|pathology|trait)\b/i],["compound",/\b(drug|chemical|compound|metabolite|molecule|small[_\s-]?molecule|ligand|therapeutic|medication|substance)\b/i],["process",/\b(pathway|process|mechanism|function|ontology|biological[_\s-]?process|cellular[_\s-]?process|program|module)\b/i]];function qa(t,e,o,r){const a=[t,e,o,String(r?.type??""),String(r?.category??""),String(r?.label??"")].filter(n=>typeof n=="string"&&n.trim().length>0).join(" ");for(const[n,s]of Ps)if(s.test(a))return n;return"entity"}var fo,jn;function en(){if(jn)return fo;jn=1;function t(o){return!o||typeof o!="object"||typeof o=="function"||Array.isArray(o)||o instanceof Set||o instanceof Map||o instanceof RegExp||o instanceof Date}function e(o,r){o=o||{};var a={};for(var n in r){var s=o[n],i=r[n];if(!t(i)){a[n]=e(s,i);continue}s===void 0?a[n]=i:a[n]=s}return a}return fo=e,fo}var mo,Hn;function Ms(){if(Hn)return mo;Hn=1;var t=Ot();return mo=function(o){if(!t(o))throw new Error("graphology-utils/infer-type: expecting a valid graphology instance.");var r=o.type;return r!=="mixed"?r:o.directedSize===0&&o.undirectedSize===0||o.directedSize>0&&o.undirectedSize>0?"mixed":o.directedSize>0?"directed":"undirected"},mo}var go,Tn;function Ar(){if(Tn)return go;Tn=1;function t(e){if(typeof e!="function")throw new Error("obliterator/iterator: expecting a function!");this.next=e}return typeof Symbol<"u"&&(t.prototype[Symbol.iterator]=function(){return this}),t.of=function(){var e=arguments,o=e.length,r=0;return new t(function(){return r>=o?{done:!0}:{done:!1,value:e[r++]}})},t.empty=function(){var e=new t(function(){return{done:!0}});return e},t.fromSequence=function(e){var o=0,r=e.length;return new t(function(){return o>=r?{done:!0}:{done:!1,value:e[o++]}})},t.is=function(e){return e instanceof t?!0:typeof e=="object"&&e!==null&&typeof e.next=="function"},go=t,go}var bo={},Wn;function ar(){return Wn||(Wn=1,(function(t){var e=Math.pow(2,8)-1,o=Math.pow(2,16)-1,r=Math.pow(2,32)-1,a=Math.pow(2,7)-1,n=Math.pow(2,15)-1,s=Math.pow(2,31)-1;t.getPointerArray=function(l){var u=l-1;if(u<=e)return Uint8Array;if(u<=o)return Uint16Array;if(u<=r)return Uint32Array;throw new Error("mnemonist: Pointer Array of size > 4294967295 is not supported.")},t.getSignedPointerArray=function(l){var u=l-1;return u<=a?Int8Array:u<=n?Int16Array:u<=s?Int32Array:Float64Array},t.getNumberType=function(l){return l===(l|0)?Math.sign(l)===-1?l<=127&&l>=-128?Int8Array:l<=32767&&l>=-32768?Int16Array:Int32Array:l<=255?Uint8Array:l<=65535?Uint16Array:Uint32Array:Float64Array};var i={Uint8Array:1,Int8Array:2,Uint16Array:3,Int16Array:4,Uint32Array:5,Int32Array:6,Float32Array:7,Float64Array:8};t.getMinimalRepresentation=function(l,u){var d=null,c=0,p,b,m,f,y;for(f=0,y=l.length;f<y;f++)m=u?u(l[f]):l[f],b=t.getNumberType(m),p=i[b.name],p>c&&(c=p,d=b);return d},t.isTypedArray=function(l){return typeof ArrayBuffer<"u"&&ArrayBuffer.isView(l)},t.concat=function(){var l=0,u,d,c;for(u=0,c=arguments.length;u<c;u++)l+=arguments[u].length;var p=new arguments[0].constructor(l);for(u=0,d=0;u<c;u++)p.set(arguments[u],d),d+=arguments[u].length;return p},t.indices=function(l){for(var u=t.getPointerArray(l),d=new u(l),c=0;c<l;c++)d[c]=c;return d}})(bo)),bo}var yo,zn;function Rs(){if(zn)return yo;zn=1;var t=Ar(),e=ar().getPointerArray;function o(r,a){arguments.length<2&&(a=r,r=Array);var n=e(a);this.size=0,this.length=a,this.dense=new n(a),this.sparse=new n(a),this.vals=new r(a)}return o.prototype.clear=function(){this.size=0},o.prototype.has=function(r){var a=this.sparse[r];return a<this.size&&this.dense[a]===r},o.prototype.get=function(r){var a=this.sparse[r];if(a<this.size&&this.dense[a]===r)return this.vals[a]},o.prototype.set=function(r,a){var n=this.sparse[r];return n<this.size&&this.dense[n]===r?(this.vals[n]=a,this):(this.dense[this.size]=r,this.sparse[r]=this.size,this.vals[this.size]=a,this.size++,this)},o.prototype.delete=function(r){var a=this.sparse[r];return a>=this.size||this.dense[a]!==r?!1:(a=this.dense[this.size-1],this.dense[this.sparse[r]]=a,this.sparse[a]=this.sparse[r],this.size--,!0)},o.prototype.forEach=function(r,a){a=arguments.length>1?a:this;for(var n=0;n<this.size;n++)r.call(a,this.vals[n],this.dense[n])},o.prototype.keys=function(){var r=this.size,a=this.dense,n=0;return new t(function(){if(n<r){var s=a[n];return n++,{value:s}}return{done:!0}})},o.prototype.values=function(){var r=this.size,a=this.vals,n=0;return new t(function(){if(n<r){var s=a[n];return n++,{value:s}}return{done:!0}})},o.prototype.entries=function(){var r=this.size,a=this.dense,n=this.vals,s=0;return new t(function(){if(s<r){var i=[a[s],n[s]];return s++,{value:i}}return{done:!0}})},typeof Symbol<"u"&&(o.prototype[Symbol.iterator]=o.prototype.entries),o.prototype.inspect=function(){for(var r=new Map,a=0;a<this.size;a++)r.set(this.dense[a],this.vals[a]);return Object.defineProperty(r,"constructor",{value:o,enumerable:!1}),r.length=this.length,this.vals.constructor!==Array&&(r.type=this.vals.constructor.name),r},typeof Symbol<"u"&&(o.prototype[Symbol.for("nodejs.util.inspect.custom")]=o.prototype.inspect),yo=o,yo}var vo,Vn;function js(){if(Vn)return vo;Vn=1;var t=Ar(),e=ar().getPointerArray;function o(r){var a=e(r);this.start=0,this.size=0,this.capacity=r,this.dense=new a(r),this.sparse=new a(r)}return o.prototype.clear=function(){this.start=0,this.size=0},o.prototype.has=function(r){if(this.size===0)return!1;var a=this.sparse[r],n=a<this.capacity&&a>=this.start&&a<this.start+this.size||a<(this.start+this.size)%this.capacity;return n&&this.dense[a]===r},o.prototype.enqueue=function(r){var a=this.sparse[r];if(this.size!==0){var n=a<this.capacity&&a>=this.start&&a<this.start+this.size||a<(this.start+this.size)%this.capacity;if(n&&this.dense[a]===r)return this}return a=(this.start+this.size)%this.capacity,this.dense[a]=r,this.sparse[r]=a,this.size++,this},o.prototype.dequeue=function(){if(this.size!==0){var r=this.start;this.size--,this.start++,this.start===this.capacity&&(this.start=0);var a=this.dense[r];return this.sparse[a]=this.capacity,a}},o.prototype.forEach=function(r,a){a=arguments.length>1?a:this;for(var n=this.capacity,s=this.size,i=this.start,l=0;l<s;)r.call(a,this.dense[i],l,this),i++,l++,i===n&&(i=0)},o.prototype.values=function(){var r=this.dense,a=this.capacity,n=this.size,s=this.start,i=0;return new t(function(){if(i>=n)return{done:!0};var l=r[s];return s++,i++,s===a&&(s=0),{value:l,done:!1}})},typeof Symbol<"u"&&(o.prototype[Symbol.iterator]=o.prototype.values),o.prototype.inspect=function(){var r=[];return this.forEach(function(a){r.push(a)}),Object.defineProperty(r,"constructor",{value:o,enumerable:!1}),r.capacity=this.capacity,r},typeof Symbol<"u"&&(o.prototype[Symbol.for("nodejs.util.inspect.custom")]=o.prototype.inspect),vo=o,vo}var xo,Un;function Hs(){if(Un)return xo;Un=1;function t(o){return function(r){return typeof r!="number"&&(r=r.length),Math.floor(o()*r)}}var e=t(Math.random);return e.createRandomIndex=t,xo=e,xo}var Lr={},On;function Ts(){if(On)return Lr;On=1;var t=ar(),e=en(),o=eo().createEdgeWeightGetter,r=Symbol.for("nodejs.util.inspect.custom"),a={getEdgeWeight:"weight",keepDendrogram:!1,resolution:1};function n(i,l){l=e(l,a);var u=l.resolution,d=o(l.getEdgeWeight).fromEntry,c=(i.size-i.selfLoopCount)*2,p=t.getPointerArray(c),b=t.getPointerArray(i.order+1),m=l.getEdgeWeight?Float64Array:t.getPointerArray(i.size*2);this.C=i.order,this.M=0,this.E=c,this.U=0,this.resolution=u,this.level=0,this.graph=i,this.nodes=new Array(i.order),this.keepDendrogram=l.keepDendrogram,this.neighborhood=new b(c),this.weights=new m(c),this.loops=new m(i.order),this.starts=new p(i.order+1),this.belongings=new b(i.order),this.dendrogram=[],this.mapping=null,this.counts=new b(i.order),this.unused=new b(i.order),this.totalWeights=new m(i.order);var f={},y,h=0,v=0,x=this;i.forEachNode(function(g){x.nodes[h]=g,f[g]=h,v+=i.undirectedDegreeWithoutSelfLoops(g),x.starts[h]=v,x.belongings[h]=h,x.counts[h]=1,h++}),i.forEachEdge(function(g,w,C,I,k,D,_){if(y=d(g,w,C,I,k,D,_),C=f[C],I=f[I],x.M+=y,C===I)x.totalWeights[C]+=y*2,x.loops[C]=y*2;else{x.totalWeights[C]+=y,x.totalWeights[I]+=y;var L=--x.starts[C],G=--x.starts[I];x.neighborhood[L]=I,x.neighborhood[G]=C,x.weights[L]=y,x.weights[G]=y}}),this.starts[h]=this.E,this.keepDendrogram?this.dendrogram.push(this.belongings.slice()):this.mapping=this.belongings.slice()}n.prototype.isolate=function(i,l){var u=this.belongings[i];if(this.counts[u]===1)return u;var d=this.unused[--this.U],c=this.loops[i];return this.totalWeights[u]-=l+c,this.totalWeights[d]+=l+c,this.belongings[i]=d,this.counts[u]--,this.counts[d]++,d},n.prototype.move=function(i,l,u){var d=this.belongings[i],c=this.loops[i];this.totalWeights[d]-=l+c,this.totalWeights[u]+=l+c,this.belongings[i]=u;var p=this.counts[d]--===1;this.counts[u]++,p&&(this.unused[this.U++]=d)},n.prototype.computeNodeDegree=function(i){var l,u,d,c=0;for(l=this.starts[i],u=this.starts[i+1];l<u;l++)d=this.weights[l],c+=d;return c},n.prototype.expensiveIsolate=function(i){var l=this.computeNodeDegree(i);return this.isolate(i,l)},n.prototype.expensiveMove=function(i,l){var u=this.computeNodeDegree(i);this.move(i,u,l)},n.prototype.zoomOut=function(){var i=new Array(this.C-this.U),l={},u=this.nodes.length,d=0,c=0,p,b,m,f,y,h,v,x,g;for(p=0,m=this.C;p<m;p++)h=this.belongings[p],h in l||(l[h]=d,i[d]={adj:{},totalWeights:this.totalWeights[h],internalWeights:0},d++),this.belongings[p]=l[h];var w,C;if(this.keepDendrogram){for(w=this.dendrogram[this.level],C=new(t.getPointerArray(d))(u),p=0;p<u;p++)C[p]=this.belongings[w[p]];this.dendrogram.push(C)}else for(p=0;p<u;p++)this.mapping[p]=this.belongings[this.mapping[p]];for(p=0,m=this.C;p<m;p++)for(h=this.belongings[p],x=i[h],g=x.adj,x.internalWeights+=this.loops[p],b=this.starts[p],f=this.starts[p+1];b<f;b++){if(y=this.neighborhood[b],v=this.belongings[y],h===v){x.internalWeights+=this.weights[b];continue}v in g||(g[v]=0),g[v]+=this.weights[b]}for(this.C=d,y=0,h=0;h<d;h++){x=i[h],g=x.adj,h=+h,this.totalWeights[h]=x.totalWeights,this.loops[h]=x.internalWeights,this.counts[h]=1,this.starts[h]=y,this.belongings[h]=h;for(v in g)this.neighborhood[y]=+v,this.weights[y]=g[v],c++,y++}return this.starts[d]=c,this.E=c,this.U=0,this.level++,l},n.prototype.modularity=function(){var i,l,u,d,c,p=0,b=this.M*2,m=new Float64Array(this.C);for(u=0;u<this.C;u++)for(i=this.belongings[u],m[i]+=this.loops[u],d=this.starts[u],c=this.starts[u+1];d<c;d++)l=this.belongings[this.neighborhood[d]],i===l&&(m[i]+=this.weights[d]);for(u=0;u<this.C;u++)p+=m[u]/b-Math.pow(this.totalWeights[u]/b,2)*this.resolution;return p},n.prototype.delta=function(i,l,u,d){var c=this.M,p=this.totalWeights[d];return l+=this.loops[i],u/c-p*l*this.resolution/(2*c*c)},n.prototype.deltaWithOwnCommunity=function(i,l,u,d){var c=this.M,p=this.totalWeights[d];return l+=this.loops[i],u/c-(p-l)*l*this.resolution/(2*c*c)},n.prototype.fastDelta=function(i,l,u,d){var c=this.M,p=this.totalWeights[d];return l+=this.loops[i],u-l*p*this.resolution/(2*c)},n.prototype.fastDeltaWithOwnCommunity=function(i,l,u,d){var c=this.M,p=this.totalWeights[d];return l+=this.loops[i],u-l*(p-l)*this.resolution/(2*c)},n.prototype.bounds=function(i){return[this.starts[i],this.starts[i+1]]},n.prototype.project=function(){var i=this,l={};return i.nodes.slice(0,this.C).forEach(function(u,d){l[u]=Array.from(i.neighborhood.slice(i.starts[d],i.starts[d+1])).map(function(c){return i.nodes[c]})}),l},n.prototype.collect=function(i){arguments.length<1&&(i=this.level);var l={},u=this.keepDendrogram?this.dendrogram[i]:this.mapping,d,c;for(d=0,c=u.length;d<c;d++)l[this.nodes[d]]=u[d];return l},n.prototype.assign=function(i,l){arguments.length<2&&(l=this.level);var u=this.keepDendrogram?this.dendrogram[l]:this.mapping,d,c;for(d=0,c=u.length;d<c;d++)this.graph.setNodeAttribute(this.nodes[d],i,u[d])},n.prototype[r]=function(){var i={};Object.defineProperty(i,"constructor",{value:n,enumerable:!1}),i.C=this.C,i.M=this.M,i.E=this.E,i.U=this.U,i.resolution=this.resolution,i.level=this.level,i.nodes=this.nodes,i.starts=this.starts.slice(0,i.C+1);var l=["neighborhood","weights"],u=["counts","loops","belongings","totalWeights"],d=this;return l.forEach(function(c){i[c]=d[c].slice(0,i.E)}),u.forEach(function(c){i[c]=d[c].slice(0,i.C)}),i.unused=this.unused.slice(0,this.U),this.keepDendrogram?i.dendrogram=this.dendrogram:i.mapping=this.mapping,i};function s(i,l){l=e(l,a);var u=l.resolution,d=o(l.getEdgeWeight).fromEntry,c=(i.size-i.selfLoopCount)*2,p=t.getPointerArray(c),b=t.getPointerArray(i.order+1),m=l.getEdgeWeight?Float64Array:t.getPointerArray(i.size*2);this.C=i.order,this.M=0,this.E=c,this.U=0,this.resolution=u,this.level=0,this.graph=i,this.nodes=new Array(i.order),this.keepDendrogram=l.keepDendrogram,this.neighborhood=new b(c),this.weights=new m(c),this.loops=new m(i.order),this.starts=new p(i.order+1),this.offsets=new p(i.order),this.belongings=new b(i.order),this.dendrogram=[],this.counts=new b(i.order),this.unused=new b(i.order),this.totalInWeights=new m(i.order),this.totalOutWeights=new m(i.order);var f={},y,h=0,v=0,x=this;i.forEachNode(function(g){x.nodes[h]=g,f[g]=h,v+=i.outDegreeWithoutSelfLoops(g),x.starts[h]=v,v+=i.inDegreeWithoutSelfLoops(g),x.offsets[h]=v,x.belongings[h]=h,x.counts[h]=1,h++}),i.forEachEdge(function(g,w,C,I,k,D,_){if(y=d(g,w,C,I,k,D,_),C=f[C],I=f[I],x.M+=y,C===I)x.loops[C]+=y,x.totalInWeights[C]+=y,x.totalOutWeights[C]+=y;else{x.totalOutWeights[C]+=y,x.totalInWeights[I]+=y;var L=--x.starts[C],G=--x.offsets[I];x.neighborhood[L]=I,x.neighborhood[G]=C,x.weights[L]=y,x.weights[G]=y}}),this.starts[h]=this.E,this.keepDendrogram?this.dendrogram.push(this.belongings.slice()):this.mapping=this.belongings.slice()}return s.prototype.bounds=n.prototype.bounds,s.prototype.inBounds=function(i){return[this.offsets[i],this.starts[i+1]]},s.prototype.outBounds=function(i){return[this.starts[i],this.offsets[i]]},s.prototype.project=n.prototype.project,s.prototype.projectIn=function(){var i=this,l={};return i.nodes.slice(0,this.C).forEach(function(u,d){l[u]=Array.from(i.neighborhood.slice(i.offsets[d],i.starts[d+1])).map(function(c){return i.nodes[c]})}),l},s.prototype.projectOut=function(){var i=this,l={};return i.nodes.slice(0,this.C).forEach(function(u,d){l[u]=Array.from(i.neighborhood.slice(i.starts[d],i.offsets[d])).map(function(c){return i.nodes[c]})}),l},s.prototype.isolate=function(i,l,u){var d=this.belongings[i];if(this.counts[d]===1)return d;var c=this.unused[--this.U],p=this.loops[i];return this.totalInWeights[d]-=l+p,this.totalInWeights[c]+=l+p,this.totalOutWeights[d]-=u+p,this.totalOutWeights[c]+=u+p,this.belongings[i]=c,this.counts[d]--,this.counts[c]++,c},s.prototype.move=function(i,l,u,d){var c=this.belongings[i],p=this.loops[i];this.totalInWeights[c]-=l+p,this.totalInWeights[d]+=l+p,this.totalOutWeights[c]-=u+p,this.totalOutWeights[d]+=u+p,this.belongings[i]=d;var b=this.counts[c]--===1;this.counts[d]++,b&&(this.unused[this.U++]=c)},s.prototype.computeNodeInDegree=function(i){var l,u,d,c=0;for(l=this.offsets[i],u=this.starts[i+1];l<u;l++)d=this.weights[l],c+=d;return c},s.prototype.computeNodeOutDegree=function(i){var l,u,d,c=0;for(l=this.starts[i],u=this.offsets[i];l<u;l++)d=this.weights[l],c+=d;return c},s.prototype.expensiveMove=function(i,l){var u=this.computeNodeInDegree(i),d=this.computeNodeOutDegree(i);this.move(i,u,d,l)},s.prototype.zoomOut=function(){var i=new Array(this.C-this.U),l={},u=this.nodes.length,d=0,c=0,p,b,m,f,y,h,v,x,g,w,C,I,k;for(p=0,m=this.C;p<m;p++)h=this.belongings[p],h in l||(l[h]=d,i[d]={inAdj:{},outAdj:{},totalInWeights:this.totalInWeights[h],totalOutWeights:this.totalOutWeights[h],internalWeights:0},d++),this.belongings[p]=l[h];var D,_;if(this.keepDendrogram){for(D=this.dendrogram[this.level],_=new(t.getPointerArray(d))(u),p=0;p<u;p++)_[p]=this.belongings[D[p]];this.dendrogram.push(_)}else for(p=0;p<u;p++)this.mapping[p]=this.belongings[this.mapping[p]];for(p=0,m=this.C;p<m;p++)for(h=this.belongings[p],g=this.offsets[p],x=i[h],I=x.inAdj,k=x.outAdj,x.internalWeights+=this.loops[p],b=this.starts[p],f=this.starts[p+1];b<f;b++){if(y=this.neighborhood[b],v=this.belongings[y],w=b<g,C=w?k:I,h===v){w&&(x.internalWeights+=this.weights[b]);continue}v in C||(C[v]=0),C[v]+=this.weights[b]}for(this.C=d,y=0,h=0;h<d;h++){x=i[h],I=x.inAdj,k=x.outAdj,h=+h,this.totalInWeights[h]=x.totalInWeights,this.totalOutWeights[h]=x.totalOutWeights,this.loops[h]=x.internalWeights,this.counts[h]=1,this.starts[h]=y,this.belongings[h]=h;for(v in k)this.neighborhood[y]=+v,this.weights[y]=k[v],c++,y++;this.offsets[h]=y;for(v in I)this.neighborhood[y]=+v,this.weights[y]=I[v],c++,y++}return this.starts[d]=c,this.E=c,this.U=0,this.level++,l},s.prototype.modularity=function(){var i,l,u,d,c,p=0,b=this.M,m=new Float64Array(this.C);for(u=0;u<this.C;u++)for(i=this.belongings[u],m[i]+=this.loops[u],d=this.starts[u],c=this.offsets[u];d<c;d++)l=this.belongings[this.neighborhood[d]],i===l&&(m[i]+=this.weights[d]);for(u=0;u<this.C;u++)p+=m[u]/b-this.totalInWeights[u]*this.totalOutWeights[u]/Math.pow(b,2)*this.resolution;return p},s.prototype.delta=function(i,l,u,d,c){var p=this.M,b=this.totalInWeights[c],m=this.totalOutWeights[c],f=this.loops[i];return l+=f,u+=f,d/p-(u*b+l*m)*this.resolution/(p*p)},s.prototype.deltaWithOwnCommunity=function(i,l,u,d,c){var p=this.M,b=this.totalInWeights[c],m=this.totalOutWeights[c],f=this.loops[i];return l+=f,u+=f,d/p-(u*(b-l)+l*(m-u))*this.resolution/(p*p)},s.prototype.collect=n.prototype.collect,s.prototype.assign=n.prototype.assign,s.prototype[r]=function(){var i={};Object.defineProperty(i,"constructor",{value:s,enumerable:!1}),i.C=this.C,i.M=this.M,i.E=this.E,i.U=this.U,i.resolution=this.resolution,i.level=this.level,i.nodes=this.nodes,i.starts=this.starts.slice(0,i.C+1);var l=["neighborhood","weights"],u=["counts","offsets","loops","belongings","totalInWeights","totalOutWeights"],d=this;return l.forEach(function(c){i[c]=d[c].slice(0,i.E)}),u.forEach(function(c){i[c]=d[c].slice(0,i.C)}),i.unused=this.unused.slice(0,this.U),this.keepDendrogram?i.dendrogram=this.dendrogram:i.mapping=this.mapping,i},Lr.UndirectedLouvainIndex=n,Lr.DirectedLouvainIndex=s,Lr}var So,Bn;function Ws(){if(Bn)return So;Bn=1;var t=en(),e=Ot(),o=Ms(),r=Rs(),a=js(),n=Hs().createRandomIndex,s=Ts(),i=s.UndirectedLouvainIndex,l=s.DirectedLouvainIndex,u={nodeCommunityAttribute:"community",getEdgeWeight:"weight",fastLocalMoves:!0,randomWalk:!0,resolution:1,rng:Math.random};function d(h,v,x){var g=h.get(v);typeof g>"u"&&(g=0),g+=x,h.set(v,g)}var c=1e-10;function p(h,v,x,g,w){return Math.abs(g-w)<c?h===v?!1:x>h:g>w}function b(h,v,x){var g=new i(v,{getEdgeWeight:x.getEdgeWeight,keepDendrogram:h,resolution:x.resolution}),w=n(x.rng),C=!0,I=!0,k,D,_=new r(Float64Array,g.C),L,G,V,q,W,F,ee,U,T,P,z,te,Q,B,le,J,re=0,ce=0,ue=[],ge,se;for(x.fastLocalMoves&&(L=new a(g.C));C;){if(P=g.C,C=!1,I=!0,x.fastLocalMoves){for(se=0,F=x.randomWalk?w(P):0,ee=0;ee<P;ee++,F++)U=F%P,L.enqueue(U);for(;L.size!==0;){for(U=L.dequeue(),ce++,z=0,_.clear(),k=g.belongings[U],G=g.starts[U],V=g.starts[U+1];G<V;G++)T=g.neighborhood[G],q=g.weights[G],D=g.belongings[T],z+=q,d(_,D,q);for(B=g.fastDeltaWithOwnCommunity(U,z,_.get(k)||0,k),Q=k,W=0;W<_.size;W++)D=_.dense[W],D!==k&&(te=_.vals[W],re++,J=g.fastDelta(U,z,te,D),le=p(Q,k,D,J,B),le&&(B=J,Q=D));if(B<0){if(Q=g.isolate(U,z),Q===k)continue}else{if(Q===k)continue;g.move(U,z,Q)}for(C=!0,se++,G=g.starts[U],V=g.starts[U+1];G<V;G++)T=g.neighborhood[G],D=g.belongings[T],D!==Q&&L.enqueue(T)}ue.push(se)}else for(ge=[],ue.push(ge);I;){for(I=!1,se=0,F=x.randomWalk?w(P):0,ee=0;ee<P;ee++,F++){for(U=F%P,ce++,z=0,_.clear(),k=g.belongings[U],G=g.starts[U],V=g.starts[U+1];G<V;G++)T=g.neighborhood[G],q=g.weights[G],D=g.belongings[T],z+=q,d(_,D,q);for(B=g.fastDeltaWithOwnCommunity(U,z,_.get(k)||0,k),Q=k,W=0;W<_.size;W++)D=_.dense[W],D!==k&&(te=_.vals[W],re++,J=g.fastDelta(U,z,te,D),le=p(Q,k,D,J,B),le&&(B=J,Q=D));if(B<0){if(Q=g.isolate(U,z),Q===k)continue}else{if(Q===k)continue;g.move(U,z,Q)}I=!0,se++}ge.push(se),C=I||C}C&&g.zoomOut()}var Ce={index:g,deltaComputations:re,nodesVisited:ce,moves:ue};return Ce}function m(h,v,x){var g=new l(v,{getEdgeWeight:x.getEdgeWeight,keepDendrogram:h,resolution:x.resolution}),w=n(x.rng),C=!0,I=!0,k,D,_=new r(Float64Array,g.C),L,G,V,q,W,F,ee,U,T,P,z,te,Q,B,le,J,re,ce,ue,ge=0,se=0,Ce=[],_e,be;for(x.fastLocalMoves&&(L=new a(g.C));C;){if(te=g.C,C=!1,I=!0,x.fastLocalMoves){for(be=0,U=x.randomWalk?w(te):0,T=0;T<te;T++,U++)P=U%te,L.enqueue(P);for(;L.size!==0;){for(P=L.dequeue(),se++,Q=0,B=0,_.clear(),k=g.belongings[P],G=g.starts[P],V=g.starts[P+1],q=g.offsets[P];G<V;G++)W=G<q,z=g.neighborhood[G],F=g.weights[G],D=g.belongings[z],W?B+=F:Q+=F,d(_,D,F);for(re=g.deltaWithOwnCommunity(P,Q,B,_.get(k)||0,k),J=k,ee=0;ee<_.size;ee++)D=_.dense[ee],D!==k&&(le=_.vals[ee],ge++,ue=g.delta(P,Q,B,le,D),ce=p(J,k,D,ue,re),ce&&(re=ue,J=D));if(re<0){if(J=g.isolate(P,Q,B),J===k)continue}else{if(J===k)continue;g.move(P,Q,B,J)}for(C=!0,be++,G=g.starts[P],V=g.starts[P+1];G<V;G++)z=g.neighborhood[G],D=g.belongings[z],D!==J&&L.enqueue(z)}Ce.push(be)}else for(_e=[],Ce.push(_e);I;){for(I=!1,be=0,U=x.randomWalk?w(te):0,T=0;T<te;T++,U++){for(P=U%te,se++,Q=0,B=0,_.clear(),k=g.belongings[P],G=g.starts[P],V=g.starts[P+1],q=g.offsets[P];G<V;G++)W=G<q,z=g.neighborhood[G],F=g.weights[G],D=g.belongings[z],W?B+=F:Q+=F,d(_,D,F);for(re=g.deltaWithOwnCommunity(P,Q,B,_.get(k)||0,k),J=k,ee=0;ee<_.size;ee++)D=_.dense[ee],D!==k&&(le=_.vals[ee],ge++,ue=g.delta(P,Q,B,le,D),ce=p(J,k,D,ue,re),ce&&(re=ue,J=D));if(re<0){if(J=g.isolate(P,Q,B),J===k)continue}else{if(J===k)continue;g.move(P,Q,B,J)}I=!0,be++}_e.push(be),C=I||C}C&&g.zoomOut()}var Me={index:g,deltaComputations:ge,nodesVisited:se,moves:Ce};return Me}function f(h,v,x,g){if(!e(x))throw new Error("graphology-communities-louvain: the given graph is not a valid graphology instance.");var w=o(x);if(w==="mixed")throw new Error("graphology-communities-louvain: cannot run the algorithm on a true mixed graph.");g=t(g,u);var C=0;if(x.size===0){if(h){x.forEachNode(function(G){x.setNodeAttribute(G,g.nodeCommunityAttribute,C++)});return}var I={};return x.forEachNode(function(G){I[G]=C++}),v?{communities:I,count:x.order,deltaComputations:0,dendrogram:null,level:0,modularity:NaN,moves:null,nodesVisited:0,resolution:g.resolution}:I}var k=w==="undirected"?b:m,D=k(v,x,g),_=D.index;if(!v){if(h){_.assign(g.nodeCommunityAttribute);return}return _.collect()}var L={count:_.C,deltaComputations:D.deltaComputations,dendrogram:_.dendrogram,level:_.level,modularity:_.modularity(),moves:D.moves,nodesVisited:D.nodesVisited,resolution:g.resolution};return h?(_.assign(g.nodeCommunityAttribute),L):(L.communities=_.collect(),L)}var y=f.bind(null,!1,!1);return y.assign=f.bind(null,!0,!1),y.detailed=f.bind(null,!1,!0),y.defaults=u,So=y,So}var zs=Ws();const Vs=Wa(zs);var yt={},Ut={},Pr={},Fn;function Us(){return Fn||(Fn=1,Pr.ARRAY_BUFFER_SUPPORT=typeof ArrayBuffer<"u",Pr.SYMBOL_SUPPORT=typeof Symbol<"u"),Pr}var wo,$n;function tn(){if($n)return wo;$n=1;var t=Us(),e=t.ARRAY_BUFFER_SUPPORT,o=t.SYMBOL_SUPPORT;return wo=function(a,n){var s,i,l,u,d;if(!a)throw new Error("obliterator/forEach: invalid iterable.");if(typeof n!="function")throw new Error("obliterator/forEach: expecting a callback.");if(Array.isArray(a)||e&&ArrayBuffer.isView(a)||typeof a=="string"||a.toString()==="[object Arguments]"){for(l=0,u=a.length;l<u;l++)n(a[l],l);return}if(typeof a.forEach=="function"){a.forEach(n);return}if(o&&Symbol.iterator in a&&typeof a.next!="function"&&(a=a[Symbol.iterator]()),typeof a.next=="function"){for(s=a,l=0;d=s.next(),d.done!==!0;)n(d.value,l),l++;return}for(i in a)a.hasOwnProperty(i)&&n(a[i],i)},wo}var No,qn;function Os(){if(qn)return No;qn=1;var t=Ar(),e=tn();function o(){this.clear()}return o.prototype.clear=function(){this.items=[],this.offset=0,this.size=0},o.prototype.enqueue=function(r){return this.items.push(r),++this.size},o.prototype.dequeue=function(){if(this.size){var r=this.items[this.offset];return++this.offset*2>=this.items.length&&(this.items=this.items.slice(this.offset),this.offset=0),this.size--,r}},o.prototype.peek=function(){if(this.size)return this.items[this.offset]},o.prototype.forEach=function(r,a){a=arguments.length>1?a:this;for(var n=this.offset,s=0,i=this.items.length;n<i;n++,s++)r.call(a,this.items[n],s,this)},o.prototype.toArray=function(){return this.items.slice(this.offset)},o.prototype.values=function(){var r=this.items,a=this.offset;return new t(function(){if(a>=r.length)return{done:!0};var n=r[a];return a++,{value:n,done:!1}})},o.prototype.entries=function(){var r=this.items,a=this.offset,n=0;return new t(function(){if(a>=r.length)return{done:!0};var s=r[a];return a++,{value:[n++,s],done:!1}})},typeof Symbol<"u"&&(o.prototype[Symbol.iterator]=o.prototype.values),o.prototype.toString=function(){return this.toArray().join(",")},o.prototype.toJSON=function(){return this.toArray()},o.prototype.inspect=function(){var r=this.toArray();return Object.defineProperty(r,"constructor",{value:o,enumerable:!1}),r},typeof Symbol<"u"&&(o.prototype[Symbol.for("nodejs.util.inspect.custom")]=o.prototype.inspect),o.from=function(r){var a=new o;return e(r,function(n){a.enqueue(n)}),a},o.of=function(){return o.from(arguments)},No=o,No}var Eo,Kn;function Bs(){return Kn||(Kn=1,Eo=function(e,o){var r=o.length;if(r!==0){var a=e.length;e.length+=r;for(var n=0;n<r;n++)e[a+n]=o[n]}}),Eo}var Yn;function Fs(){if(Yn)return Ut;Yn=1;var t=Ot(),e=Os(),o=Bs();function r(u,d,c){if(!t(u))throw new Error("graphology-shortest-path: invalid graphology instance.");if(arguments.length<3)throw new Error("graphology-shortest-path: invalid number of arguments. Expecting at least 3.");if(!u.hasNode(d))throw new Error('graphology-shortest-path: the "'+d+'" source node does not exist in the given graph.');if(!u.hasNode(c))throw new Error('graphology-shortest-path: the "'+c+'" target node does not exist in the given graph.');if(d=""+d,c=""+c,d===c)return[d];var p=u.inboundNeighbors.bind(u),b=u.outboundNeighbors.bind(u),m={},f={};m[d]=null,f[c]=null;var y=[d],h=[c],v,x,g,w,C,I,k,D,_=!1;e:for(;y.length&&h.length;)if(y.length<=h.length){for(v=y,y=[],C=0,k=v.length;C<k;C++)for(x=v[C],g=b(x),I=0,D=g.length;I<D;I++)if(w=g[I],w in m||(y.push(w),m[w]=x),w in f){_=!0;break e}}else for(v=h,h=[],C=0,k=v.length;C<k;C++)for(x=v[C],g=p(x),I=0,D=g.length;I<D;I++)if(w=g[I],w in f||(h.push(w),f[w]=x),w in m){_=!0;break e}if(!_)return null;for(var L=[];w;)L.unshift(w),w=m[w];for(w=f[L[L.length-1]];w;)L.push(w),w=f[w];return L.length?L:null}function a(u,d){if(!t(u))throw new Error("graphology-shortest-path: invalid graphology instance.");if(arguments.length<2)throw new Error("graphology-shortest-path: invalid number of arguments. Expecting at least 2.");if(!u.hasNode(d))throw new Error('graphology-shortest-path: the "'+d+'" source node does not exist in the given graph.');d=""+d;var c={},p={},b,m,f,y,h,v;for(c[d]=!0,p[d]=[d];Object.keys(c).length;){b=c,c={};for(f in b)for(m=u.outboundNeighbors(f),h=0,v=m.length;h<v;h++)y=m[h],p[y]||(p[y]=p[f].concat(y),c[y]=!0)}return p}function n(u,d,c){if(!t(d))throw new Error("graphology-shortest-path: invalid graphology instance.");if(!d.hasNode(c))throw new Error('graphology-shortest-path: the "'+c+'" source node does not exist in the given graph.');c=""+c;var p=new Set,b={},m=0;b[c]=0;for(var f=[c],y,h,v;f.length!==0;){var x=[];for(y=0,h=f.length;y<h;y++)v=f[y],!p.has(v)&&(p.add(v),o(x,d[u](v)),b[v]=m);m++,f=x}return b}var s=n.bind(null,"outboundNeighbors"),i=n.bind(null,"neighbors");function l(u,d){d=""+d;var c=[],p={},b={},m=u.nodes(),f,y,h,v,x,g,w,C,I;for(g=0,C=m.length;g<C;g++)v=m[g],p[v]=[],b[v]=0;var k={};b[d]=1,k[d]=0;for(var D=e.of(d);D.size;)for(v=D.dequeue(),c.push(v),f=k[v],y=b[v],h=u.outboundNeighbors(v),w=0,I=h.length;w<I;w++)x=h[w],x in k||(D.enqueue(x),k[x]=f+1),k[x]===f+1&&(b[x]+=y,p[x].push(v));return[c,p,b]}return Ut.bidirectional=r,Ut.singleSource=a,Ut.singleSourceLength=s,Ut.undirectedSingleSourceLength=i,Ut.brandes=l,Ut}var Ao={},Xn;function $s(){if(Xn)return Ao;Xn=1;var t=function(){return!0};return Ao.edgePathFromNodePath=function(e,o){var r=o.length,a,n,s,i;if(r<2)return n=o[0],i=e.multi?e.findEdge(n,n,t):e.edge(n,n),i?[i]:[];r--;var l=new Array(r);for(a=0;a<r;a++){if(n=o[a],s=o[a+1],i=e.multi?e.findOutboundEdge(n,s,t):e.edge(n,s),i===void 0)throw new Error("graphology-shortest-path: given path is impossible in given graph.");l[a]=i}return l},Ao}var hr={},er={},Zn;function qs(){if(Zn)return er;Zn=1;var t=function(a,n){return a<n?-1:a>n?1:0},e=function(a,n){return a<n?1:a>n?-1:0};function o(a){return function(n,s){return a(s,n)}}function r(a){return a===2?function(n,s){return n[0]<s[0]?-1:n[0]>s[0]?1:n[1]<s[1]?-1:n[1]>s[1]?1:0}:function(n,s){for(var i=0;i<a;){if(n[i]<s[i])return-1;if(n[i]>s[i])return 1;i++}return 0}}return er.DEFAULT_COMPARATOR=t,er.DEFAULT_REVERSE_COMPARATOR=e,er.reverseComparator=o,er.createTupleComparator=r,er}var tr={},Qn;function rn(){if(Qn)return tr;Qn=1;var t=tn(),e=ar();function o(s){return Array.isArray(s)||e.isTypedArray(s)}function r(s){if(typeof s.length=="number")return s.length;if(typeof s.size=="number")return s.size}function a(s){var i=r(s),l=typeof i=="number"?new Array(i):[],u=0;return t(s,function(d){l[u++]=d}),l}function n(s){var i=r(s),l=typeof i=="number"?e.getPointerArray(i):Array,u=typeof i=="number"?new Array(i):[],d=typeof i=="number"?new l(i):[],c=0;return t(s,function(p){u[c]=p,d[c]=c++}),[u,d]}return tr.isArrayLike=o,tr.guessLength=r,tr.toArray=a,tr.toArrayWithIndices=n,tr}var ko,Jn;function on(){if(Jn)return ko;Jn=1;var t=tn(),e=qs(),o=rn(),r=e.DEFAULT_COMPARATOR,a=e.reverseComparator;function n(h,v,x,g){for(var w=v[g],C,I;g>x;){if(C=g-1>>1,I=v[C],h(w,I)<0){v[g]=I,g=C;continue}break}v[g]=w}function s(h,v,x){for(var g=v.length,w=x,C=v[x],I=2*x+1,k;I<g;)k=I+1,k<g&&h(v[I],v[k])>=0&&(I=k),v[x]=v[I],x=I,I=2*x+1;v[x]=C,n(h,v,w,x)}function i(h,v,x){v.push(x),n(h,v,0,v.length-1)}function l(h,v){var x=v.pop();if(v.length!==0){var g=v[0];return v[0]=x,s(h,v,0),g}return x}function u(h,v,x){if(v.length===0)throw new Error("mnemonist/heap.replace: cannot pop an empty heap.");var g=v[0];return v[0]=x,s(h,v,0),g}function d(h,v,x){var g;return v.length!==0&&h(v[0],x)<0&&(g=v[0],v[0]=x,x=g,s(h,v,0)),x}function c(h,v){for(var x=v.length,g=x>>1,w=g;--w>=0;)s(h,v,w)}function p(h,v){for(var x=v.length,g=0,w=new Array(x);g<x;)w[g++]=l(h,v);return w}function b(h,v,x){arguments.length===2&&(x=v,v=h,h=r);var g=a(h),w,C,I,k=1/0,D;if(v===1){if(o.isArrayLike(x)){for(w=0,C=x.length;w<C;w++)I=x[w],(k===1/0||h(I,k)<0)&&(k=I);return D=new x.constructor(1),D[0]=k,D}return t(x,function(L){(k===1/0||h(L,k)<0)&&(k=L)}),[k]}if(o.isArrayLike(x)){if(v>=x.length)return x.slice().sort(h);for(D=x.slice(0,v),c(g,D),w=v,C=x.length;w<C;w++)g(x[w],D[0])>0&&u(g,D,x[w]);return D.sort(h)}var _=o.guessLength(x);return _!==null&&_<v&&(v=_),D=new Array(v),w=0,t(x,function(L){w<v?D[w]=L:(w===v&&c(g,D),g(L,D[0])>0&&u(g,D,L)),w++}),D.length>w&&(D.length=w),D.sort(h)}function m(h,v,x){arguments.length===2&&(x=v,v=h,h=r);var g=a(h),w,C,I,k=-1/0,D;if(v===1){if(o.isArrayLike(x)){for(w=0,C=x.length;w<C;w++)I=x[w],(k===-1/0||h(I,k)>0)&&(k=I);return D=new x.constructor(1),D[0]=k,D}return t(x,function(L){(k===-1/0||h(L,k)>0)&&(k=L)}),[k]}if(o.isArrayLike(x)){if(v>=x.length)return x.slice().sort(g);for(D=x.slice(0,v),c(h,D),w=v,C=x.length;w<C;w++)h(x[w],D[0])>0&&u(h,D,x[w]);return D.sort(g)}var _=o.guessLength(x);return _!==null&&_<v&&(v=_),D=new Array(v),w=0,t(x,function(L){w<v?D[w]=L:(w===v&&c(h,D),h(L,D[0])>0&&u(h,D,L)),w++}),D.length>w&&(D.length=w),D.sort(g)}function f(h){if(this.clear(),this.comparator=h||r,typeof this.comparator!="function")throw new Error("mnemonist/Heap.constructor: given comparator should be a function.")}f.prototype.clear=function(){this.items=[],this.size=0},f.prototype.push=function(h){return i(this.comparator,this.items,h),++this.size},f.prototype.peek=function(){return this.items[0]},f.prototype.pop=function(){return this.size!==0&&this.size--,l(this.comparator,this.items)},f.prototype.replace=function(h){return u(this.comparator,this.items,h)},f.prototype.pushpop=function(h){return d(this.comparator,this.items,h)},f.prototype.consume=function(){return this.size=0,p(this.comparator,this.items)},f.prototype.toArray=function(){return p(this.comparator,this.items.slice())},f.prototype.inspect=function(){var h=this.toArray();return Object.defineProperty(h,"constructor",{value:f,enumerable:!1}),h},typeof Symbol<"u"&&(f.prototype[Symbol.for("nodejs.util.inspect.custom")]=f.prototype.inspect);function y(h){if(this.clear(),this.comparator=h||r,typeof this.comparator!="function")throw new Error("mnemonist/MaxHeap.constructor: given comparator should be a function.");this.comparator=a(this.comparator)}return y.prototype=f.prototype,f.from=function(h,v){var x=new f(v),g;return o.isArrayLike(h)?g=h.slice():g=o.toArray(h),c(x.comparator,g),x.items=g,x.size=g.length,x},y.from=function(h,v){var x=new y(v),g;return o.isArrayLike(h)?g=h.slice():g=o.toArray(h),c(x.comparator,g),x.items=g,x.size=g.length,x},f.siftUp=s,f.siftDown=n,f.push=i,f.pop=l,f.replace=u,f.pushpop=d,f.heapify=c,f.consume=p,f.nsmallest=b,f.nlargest=m,f.MinHeap=f,f.MaxHeap=y,ko=f,ko}var ea;function Ks(){if(ea)return hr;ea=1;var t=Ot(),e=eo().createEdgeWeightGetter,o=on(),r="weight";function a(c,p){return c[0]>p[0]?1:c[0]<p[0]?-1:c[1]>p[1]?1:c[1]<p[1]?-1:c[2]>p[2]?1:c[2]<p[2]?-1:0}function n(c,p){return c[0]>p[0]?1:c[0]<p[0]?-1:c[1]>p[1]?1:c[1]<p[1]?-1:c[2]>p[2]?1:c[2]<p[2]?-1:c[3]>p[3]?1:c[3]<p[3]?-1:0}function s(c,p,b,m){if(p=""+p,b=""+b,!t(c))throw new Error("graphology-shortest-path/dijkstra: invalid graphology instance.");if(p&&!c.hasNode(p))throw new Error('graphology-shortest-path/dijkstra: the "'+p+'" source node does not exist in the given graph.');if(b&&!c.hasNode(b))throw new Error('graphology-shortest-path/dijkstra: the "'+b+'" target node does not exist in the given graph.');if(m=e(m||r).fromMinimalEntry,p===b)return[0,[p]];var f=[{},{}],y=[{},{}],h=[new o(a),new o(a)],v=[{},{}];y[0][p]=[p],y[1][b]=[b],v[0][p]=0,v[1][b]=0;var x=[],g=1/0,w=0,C=1,I,k,D,_,L,G,V,q,W;for(h[0].push([0,w++,p]),h[1].push([0,w++,b]);h[0].size&&h[1].size;)if(C=1-C,I=h[C].pop(),_=I[0],L=I[2],!(L in f[C])){if(f[C][L]=_,L in f[1-C])return[g,x];for(k=C===1?c.inboundEdges(L):c.outboundEdges(L),q=0,W=k.length;q<W;q++){if(V=k[q],G=c.opposite(L,V),D=f[C][L]+m(V,c.getEdgeAttributes(V)),G in f[C]&&D<f[C][G])throw Error("graphology-shortest-path/dijkstra: contradictory paths found. Do some of your edges have a negative weight?");(!(G in v[C])||D<v[C][G])&&(v[C][G]=D,h[C].push([D,w++,G]),y[C][G]=y[C][L].concat(G),G in v[0]&&G in v[1]&&(_=v[0][G]+v[1][G],(x.length===0||g>_)&&(g=_,x=y[0][G].concat(y[1][G].slice(0,-1).reverse()))))}}return[1/0,null]}function i(c,p,b,m,f,y){if(!t(c))throw new Error("graphology-shortest-path/dijkstra: invalid graphology instance.");b=e(b||r).fromMinimalEntry;var h={},v={},x=new o(a),g=0,w,C,I,k,D,_,L,G,V,q,W;for(G=0,q=p.length;G<q;G++)k=p[G],v[k]=0,x.push([0,g++,k]),y&&(y[k]=[k]);for(;x.size;)if(C=x.pop(),L=C[0],k=C[2],!(k in h)){if(h[k]=L,k===f)break;for(w=c.outboundEdges(k),V=0,W=w.length;V<W;V++){if(_=w[V],D=c.opposite(k,_),I=b(_,c.getEdgeAttributes(_))+h[k],D in h&&I<h[D])throw Error("graphology-shortest-path/dijkstra: contradictory paths found. Do some of your edges have a negative weight?");(!(D in v)||I<v[D])&&(v[D]=I,x.push([I,g++,D]),y&&(y[D]=y[k].concat(D)))}}return h}function l(c,p,b){var m={};return i(c,[p],b,0,null,m),m}function u(c,p,b,m){return s(c,p,b,m)[1]}function d(c,p,b){p=""+p,b=e(b||r).fromMinimalEntry;var m=[],f={},y={},h=c.nodes(),v,x,g,w,C,I,k,D,_,L;for(_=0,L=h.length;_<L;_++)I=h[_],f[I]=[],y[I]=0;var G={};y[p]=1;var V={};V[p]=0;var q=0,W=new o(n);for(W.push([0,q++,p,p]);W.size;)if(x=W.pop(),w=x[0],g=x[2],I=x[3],!(I in G))for(y[I]+=y[g],m.push(I),G[I]=w,v=c.outboundEdges(I),_=0,L=v.length;_<L;_++)D=v[_],k=c.opposite(I,D),C=w+b(D,c.getEdgeAttributes(D)),!(k in G)&&(!(k in V)||C<V[k])?(V[k]=C,W.push([C,q++,I,k]),y[k]=0,f[k]=[I]):C===V[k]&&(y[k]+=y[I],f[k].push(I));return[m,f,y]}return hr.bidirectional=u,hr.singleSource=l,hr.brandes=d,hr}var Co={},ta;function Ys(){if(ta)return Co;ta=1;var t=Ot(),e=eo().createEdgeWeightGetter,o=on(),r="weight";function a(s,i){return s[0]>i[0]?1:s[0]<i[0]?-1:s[1]>i[1]?1:s[1]<i[1]?-1:0}function n(s,i,l,u,d,c){if(!t(s))throw new Error("graphology-shortest-path/astar: invalid graphology instance.");if(i&&!s.hasNode(i))throw new Error('graphology-shortest-path/astar: the "'+i+'" source node does not exist in the given graph.');if(l&&!s.hasNode(l))throw new Error('graphology-shortest-path/astar: the "'+l+'" target node does not exist in the given graph.');if(u=e(u||r).fromMinimalEntry,i===l)return[i];d=d||function(){return 0},c=c||{};var p=0,b=new o(a);b.push([0,p++,i,0,null]);var m={},f={},y,h,v,x,g,w,C,I,k,D,_,L;function G(V,q,W,F){if(L=h===W?F:W,D=u(V,q),D!==null){if(_=x+D,m.hasOwnProperty(L)){if(v=m[L],I=v[0],k=v[1],I<=_)return}else k=d(L,l);c.cutoff&&_+k>c.cutoff||(m[L]=[_,k],b.push([_+k,p++,L,_,h]))}}for(;b.size!==0;){if(y=b.pop(),h=y[2],x=y[3],g=y[4],h===l){for(w=[h],C=g;C!==null;)w.push(C),C=f[C];return w.reverse(),w}f.hasOwnProperty(h)&&(f[h]===null||(I=m[h][0],I<x))||(f[h]=g,s.forEachOutboundEdge(h,G))}return null}return Co.bidirectional=n,Co}var ra;function Xs(){if(ra)return yt;ra=1;var t=Fs(),e=$s();return yt.unweighted=t,yt.dijkstra=Ks(),yt.astar=Ys(),yt.bidirectional=t.bidirectional,yt.singleSource=t.singleSource,yt.singleSourceLength=t.singleSourceLength,yt.undirectedSingleSourceLength=t.undirectedSingleSourceLength,yt.brandes=t.brandes,yt.edgePathFromNodePath=e.edgePathFromNodePath,yt}var Zs=Xs(),Mr={},Io,oa;function Qs(){if(oa)return Io;oa=1;var t=rn(),e=Ar();function o(r,a){if(arguments.length<2)throw new Error("mnemonist/fixed-deque: expecting an Array class and a capacity.");if(typeof a!="number"||a<=0)throw new Error("mnemonist/fixed-deque: `capacity` should be a positive number.");this.ArrayClass=r,this.capacity=a,this.items=new r(this.capacity),this.clear()}return o.prototype.clear=function(){this.start=0,this.size=0},o.prototype.push=function(r){if(this.size===this.capacity)throw new Error("mnemonist/fixed-deque.push: deque capacity ("+this.capacity+") exceeded!");var a=this.start+this.size;return a>=this.capacity&&(a-=this.capacity),this.items[a]=r,++this.size},o.prototype.unshift=function(r){if(this.size===this.capacity)throw new Error("mnemonist/fixed-deque.unshift: deque capacity ("+this.capacity+") exceeded!");var a=this.start-1;return this.start===0&&(a=this.capacity-1),this.items[a]=r,this.start=a,++this.size},o.prototype.pop=function(){if(this.size!==0){this.size--;var r=this.start+this.size;return r>=this.capacity&&(r-=this.capacity),this.items[r]}},o.prototype.shift=function(){if(this.size!==0){var r=this.start;return this.size--,this.start++,this.start===this.capacity&&(this.start=0),this.items[r]}},o.prototype.peekFirst=function(){if(this.size!==0)return this.items[this.start]},o.prototype.peekLast=function(){if(this.size!==0){var r=this.start+this.size-1;return r>=this.capacity&&(r-=this.capacity),this.items[r]}},o.prototype.get=function(r){if(!(this.size===0||r>=this.capacity))return r=this.start+r,r>=this.capacity&&(r-=this.capacity),this.items[r]},o.prototype.forEach=function(r,a){a=arguments.length>1?a:this;for(var n=this.capacity,s=this.size,i=this.start,l=0;l<s;)r.call(a,this.items[i],l,this),i++,l++,i===n&&(i=0)},o.prototype.toArray=function(){var r=this.start+this.size;if(r<this.capacity)return this.items.slice(this.start,r);for(var a=new this.ArrayClass(this.size),n=this.capacity,s=this.size,i=this.start,l=0;l<s;)a[l]=this.items[i],i++,l++,i===n&&(i=0);return a},o.prototype.values=function(){var r=this.items,a=this.capacity,n=this.size,s=this.start,i=0;return new e(function(){if(i>=n)return{done:!0};var l=r[s];return s++,i++,s===a&&(s=0),{value:l,done:!1}})},o.prototype.entries=function(){var r=this.items,a=this.capacity,n=this.size,s=this.start,i=0;return new e(function(){if(i>=n)return{done:!0};var l=r[s];return s++,s===a&&(s=0),{value:[i++,l],done:!1}})},typeof Symbol<"u"&&(o.prototype[Symbol.iterator]=o.prototype.values),o.prototype.inspect=function(){var r=this.toArray();return r.type=this.ArrayClass.name,r.capacity=this.capacity,Object.defineProperty(r,"constructor",{value:o,enumerable:!1}),r},typeof Symbol<"u"&&(o.prototype[Symbol.for("nodejs.util.inspect.custom")]=o.prototype.inspect),o.from=function(r,a,n){if(arguments.length<3&&(n=t.guessLength(r),typeof n!="number"))throw new Error("mnemonist/fixed-deque.from: could not guess iterable length. Please provide desired capacity as last argument.");var s=new o(a,n);if(t.isArrayLike(r)){var i,l;for(i=0,l=r.length;i<l;i++)s.items[i]=r[i];return s.size=l,s}return t.forEach(r,function(u){s.push(u)}),s},Io=o,Io}var Do,na;function Js(){if(na)return Do;na=1;var t=Ar(),e=rn();function o(r,a){if(arguments.length<2)throw new Error("mnemonist/fixed-stack: expecting an Array class and a capacity.");if(typeof a!="number"||a<=0)throw new Error("mnemonist/fixed-stack: `capacity` should be a positive number.");this.capacity=a,this.ArrayClass=r,this.items=new this.ArrayClass(this.capacity),this.clear()}return o.prototype.clear=function(){this.size=0},o.prototype.push=function(r){if(this.size===this.capacity)throw new Error("mnemonist/fixed-stack.push: stack capacity ("+this.capacity+") exceeded!");return this.items[this.size++]=r,this.size},o.prototype.pop=function(){if(this.size!==0)return this.items[--this.size]},o.prototype.peek=function(){return this.items[this.size-1]},o.prototype.forEach=function(r,a){a=arguments.length>1?a:this;for(var n=0,s=this.items.length;n<s;n++)r.call(a,this.items[s-n-1],n,this)},o.prototype.toArray=function(){for(var r=new this.ArrayClass(this.size),a=this.size-1,n=this.size;n--;)r[n]=this.items[a-n];return r},o.prototype.values=function(){var r=this.items,a=this.size,n=0;return new t(function(){if(n>=a)return{done:!0};var s=r[a-n-1];return n++,{value:s,done:!1}})},o.prototype.entries=function(){var r=this.items,a=this.size,n=0;return new t(function(){if(n>=a)return{done:!0};var s=r[a-n-1];return{value:[n++,s],done:!1}})},typeof Symbol<"u"&&(o.prototype[Symbol.iterator]=o.prototype.values),o.prototype.toString=function(){return this.toArray().join(",")},o.prototype.toJSON=function(){return this.toArray()},o.prototype.inspect=function(){var r=this.toArray();return r.type=this.ArrayClass.name,r.capacity=this.capacity,Object.defineProperty(r,"constructor",{value:o,enumerable:!1}),r},typeof Symbol<"u"&&(o.prototype[Symbol.for("nodejs.util.inspect.custom")]=o.prototype.inspect),o.from=function(r,a,n){if(arguments.length<3&&(n=e.guessLength(r),typeof n!="number"))throw new Error("mnemonist/fixed-stack.from: could not guess iterable length. Please provide desired capacity as last argument.");var s=new o(a,n);if(e.isArrayLike(r)){var i,l;for(i=0,l=r.length;i<l;i++)s.items[i]=r[i];return s.size=l,s}return e.forEach(r,function(u){s.push(u)}),s},Do=o,Do}var Rr={},aa;function el(){if(aa)return Rr;aa=1;var t=ar(),e=eo().createEdgeWeightGetter;function o(n,s){return n==="outbound"||n==="inbound"?s.directedSize+s.undirectedSize*2:n==="in"||n==="out"||n==="directed"?s.directedSize:s.undirectedSize*2}function r(n,s){s=s||"outbound";var i=n[s+"Neighbors"].bind(n),l=o(s,n),u=t.getPointerArray(l),d=t.getPointerArray(n.order);this.graph=n,this.neighborhood=new d(l),this.starts=new u(n.order+1),this.nodes=n.nodes();var c={},p,b,m,f,y,h,v=0;for(p=0,b=n.order;p<b;p++)c[this.nodes[p]]=p;for(p=0,b=n.order;p<b;p++)for(y=this.nodes[p],h=i(y),this.starts[p]=v,m=0,f=h.length;m<f;m++)this.neighborhood[v++]=c[h[m]];this.starts[p]=l}r.prototype.bounds=function(n){return[this.starts[n],this.starts[n+1]]},r.prototype.project=function(){var n=this,s={};return n.nodes.forEach(function(i,l){s[i]=Array.from(n.neighborhood.slice(n.starts[l],n.starts[l+1])).map(function(u){return n.nodes[u]})}),s},r.prototype.collect=function(n){var s,i,l={};for(s=0,i=n.length;s<i;s++)l[this.nodes[s]]=n[s];return l},r.prototype.assign=function(n,s){var i=0;this.graph.updateEachNodeAttributes(function(l,u){return u[n]=s[i++],u},{attributes:[n]})},Rr.NeighborhoodIndex=r;function a(n,s,i){i=i||"outbound";var l=n[i+"Edges"].bind(n),u=o(i,n),d=t.getPointerArray(u),c=t.getPointerArray(n.order),p=e(s).fromMinimalEntry;this.graph=n,this.neighborhood=new c(u),this.weights=new Float64Array(u),this.outDegrees=new Float64Array(n.order),this.starts=new d(n.order+1),this.nodes=n.nodes();var b={},m,f,y,h,v,x,g,w,C,I=0;for(m=0,f=n.order;m<f;m++)b[this.nodes[m]]=m;for(m=0,f=n.order;m<f;m++)for(v=this.nodes[m],g=l(v),this.starts[m]=I,y=0,h=g.length;y<h;y++)w=g[y],x=n.opposite(v,w),C=p(w,n.getEdgeAttributes(w)),this.neighborhood[I]=b[x],this.weights[I++]=C,this.outDegrees[m]+=C;this.starts[m]=u}return a.prototype.bounds=r.prototype.bounds,a.prototype.project=r.prototype.project,a.prototype.collect=r.prototype.collect,a.prototype.assign=r.prototype.assign,Rr.WeightedNeighborhoodIndex=a,Rr}var ia;function tl(){if(ia)return Mr;ia=1;var t=Qs(),e=Js(),o=on(),r=ar(),a=el(),n=a.NeighborhoodIndex,s=a.WeightedNeighborhoodIndex;Mr.createUnweightedIndexedBrandes=function(u){var d=new n(u),c=d.neighborhood,p=d.starts,b=u.order,m=new e(r.getPointerArray(b),b),f=new Uint32Array(b),y=new Array(b),h=new Int32Array(b),v=new t(Uint32Array,b),x=function(g){var w,C,I,k,D,_,L;for(_=0;_<b;_++)y[_]=[],f[_]=0,h[_]=-1;for(f[g]=1,h[g]=0,v.push(g);v.size!==0;)for(_=v.shift(),m.push(_),w=h[_],C=f[_],I=p[_],k=p[_+1],D=I;D<k;D++)L=c[D],h[L]===-1&&(v.push(L),h[L]=w+1),h[L]===w+1&&(f[L]+=C,y[L].push(_));return[m,y,f]};return x.index=d,x};function i(l,u){return l[0]>u[0]?1:l[0]<u[0]?-1:l[1]>u[1]?1:l[1]<u[1]?-1:l[2]>u[2]?1:l[2]<u[2]?-1:l[3]>u[3]?1:l[3]<u[3]?-1:0}return Mr.createDijkstraIndexedBrandes=function(u,d){var c=new s(u,d||"weight"),p=c.neighborhood,b=c.weights,m=c.starts,f=u.order,y=new e(r.getPointerArray(f),f),h=new Uint32Array(f),v=new Array(f),x=new Float64Array(f),g=new Float64Array(f),w=new o(i),C=function(I){var k,D,_,L,G,V,q,W,F,ee=0;for(W=0;W<f;W++)v[W]=[],h[W]=0,x[W]=-1,g[W]=-1;for(h[I]=1,g[I]=0,w.push([0,ee++,I,I]);w.size!==0;)if(_=w.pop(),L=_[0],G=_[2],W=_[3],x[W]===-1)for(y.push(W),x[W]=L,h[W]+=h[G],k=m[W],D=m[W+1],q=k;q<D;q++)F=p[q],V=L+b[q],x[F]===-1&&(g[F]===-1||V<g[F])?(g[F]=V,w.push([V,ee++,W,F]),h[F]=0,v[F]=[W]):V===g[F]&&(h[F]+=h[W],v[F].push(W));return[y,v,h]};return C.index=c,C},Mr}var _o,sa;function rl(){if(sa)return _o;sa=1;var t=Ot(),e=tl(),o=en(),r=e.createUnweightedIndexedBrandes,a=e.createDijkstraIndexedBrandes,n={nodeCentralityAttribute:"betweennessCentrality",getEdgeWeight:"weight",normalized:!0};function s(l,u,d){if(!t(u))throw new Error("graphology-centrality/beetweenness-centrality: the given graph is not a valid graphology instance.");d=o(d,n);var c=d.nodeCentralityAttribute,p=d.normalized,b=d.getEdgeWeight?a(u,d.getEdgeWeight):r(u),m=u.order,f,y,h,v,x,g,w,C,I,k,D=new Float64Array(m),_=new Float64Array(m);for(g=0;g<m;g++){for(f=b(g),y=f[0],h=f[1],v=f[2],w=y.size;w--;)D[y.items[y.size-w]]=0;for(;y.size!==0;){for(k=y.pop(),x=(1+D[k])/v[k],w=0,C=h[k].length;w<C;w++)I=h[k][w],D[I]+=v[I]*x;k!==g&&(_[k]+=D[k])}}var L=null;if(p?L=m<=2?null:1/((m-1)*(m-2)):L=u.type==="undirected"?.5:null,L!==null)for(g=0;g<m;g++)_[g]*=L;return l?b.index.assign(c,_):b.index.collect(_)}var i=s.bind(null,!1);return i.assign=s.bind(null,!0),_o=i,_o}var ol=rl();const nl=Wa(ol);var fr={},la;function al(){if(la)return fr;la=1;var t=Ot();function e(n,s,i,l){var u=s+"Centrality";if(!t(i))throw new Error("graphology-centrality/"+u+": the given graph is not a valid graphology instance.");if(s!=="degree"&&i.type==="undirected")throw new Error("graphology-centrality/"+u+": cannot compute "+s+" centrality on an undirected graph.");l=l||{};var d=l.nodeCentralityAttribute||u,c=i.order-1,p=i[s].bind(i);if(n){i.updateEachNodeAttributes(function(m,f){return f[d]=p(m)/c,f},{attributes:[d]});return}var b={};return i.forEachNode(function(m){b[m]=p(m)/c}),b}var o=e.bind(null,!1,"degree"),r=e.bind(null,!1,"inDegree"),a=e.bind(null,!1,"outDegree");return o.assign=e.bind(null,!0,"degree"),r.assign=e.bind(null,!0,"inDegree"),a.assign=e.bind(null,!0,"outDegree"),fr.degreeCentrality=o,fr.inDegreeCentrality=r,fr.outDegreeCentrality=a,fr}var Go=al();const il=1400,sl=6,ll=6,cl=6,ca=4,ul=36,dl=80,Ka=128,ua=5,pl=2;function nn(t,e){const o=t.getNodeAttributes(e);return String(o.label||o.content||e)}function Nr(t,e){const o=t.getNodeAttributes(e);return String(o.baseColor||o.color||"#0e8fb5")}function to(t,e){const o=t.getNodeAttributes(e);return String(o.semanticGroup||o.nodeType||"entity")}function hl(t,e){if(!e)return new Set(t.nodes());const o=new Set;for(const r of e)t.hasNode(r)&&o.add(r);return o.size?o:new Set(t.nodes())}function fl(t,e){const o=Go.degreeCentrality(t),r=Go.inDegreeCentrality(t),a=Go.outDegreeCentrality(t),n=e?nl(t,{normalized:!0,getEdgeWeight:"weight"}):{},s=new Map;t.forEachNode(l=>{const u=Number(o[l]??0),d=Number(n[l]??0),c=Number(r[l]??0),p=Number(a[l]??0);s.set(l,{degree:u,inDegree:c,outDegree:p,betweenness:d,score:u*.7+d*.3})});const i=t.nodes().sort((l,u)=>{const d=s.get(l)?.score??0,c=s.get(u)?.score??0;return c!==d?c-d:l.localeCompare(u)});return{centralityByNode:s,topNodeIds:i,betweennessReady:e}}function ro(t,e){const o=e?.computeCommunities??!0,r=e?.computeCentrality??!0,a=new Map;let n=0,s=null;if(o&&t.order>1&&t.size>0)try{const u=Vs.detailed(t,{getEdgeWeight:"weight"});s=Number(u.modularity??0),n=Number(u.count??0),Object.entries(u.communities).forEach(([d,c])=>{a.set(d,Number(c))})}catch(u){console.error("[GraphAnalytics] community detection failed",u)}if(!r||t.order===0)return{communitiesByNode:a,communityCount:n,modularity:s,centralityByNode:new Map,topNodeIds:[],betweennessReady:!1};const i=t.order<=il,l=fl(t,i);return{communitiesByNode:a,communityCount:n,modularity:s,...l}}function ml(t,e,o){const r=new Map;return t.forEachNode(a=>{const n=o.communitiesByNode.get(a);if(n===void 0)return;const s=r.get(n)??{nodeCount:0,visibleNodeCount:0,semanticCounts:new Map,anchorNodeId:null,prominence:0,color:Nr(t,a)};s.nodeCount+=1,e.has(a)&&(s.visibleNodeCount+=1);const i=to(t,a);s.semanticCounts.set(i,(s.semanticCounts.get(i)??0)+1);const l=o.centralityByNode.get(a)?.score??0;(!s.anchorNodeId||l>(o.centralityByNode.get(s.anchorNodeId)?.score??-1))&&(s.anchorNodeId=a,s.color=Nr(t,a)),s.prominence+=e.has(a)?1+l:l*.15,r.set(n,s)}),[...r.entries()].map(([a,n])=>{const s=[...n.semanticCounts.entries()].sort((i,l)=>l[1]-i[1])[0]?.[0]??"entity";return{communityId:String(a),nodeCount:n.nodeCount,visibleNodeCount:n.visibleNodeCount,dominantSemanticGroup:s,color:n.color,anchorNodeId:n.anchorNodeId,anchorLabel:n.anchorNodeId?nn(t,n.anchorNodeId):"Community anchor",prominence:n.prominence}}).filter(a=>a.visibleNodeCount>0).sort((a,n)=>n.prominence-a.prominence).slice(0,sl)}function gl(t,e,o){const r=new Map;return t.forEachNode(a=>{const n=to(t,a),s=r.get(n)??{nodeCount:0,visibleNodeCount:0,communityCounts:new Map,anchorNodeId:null,prominence:0,color:Nr(t,a)};s.nodeCount+=1,e.has(a)&&(s.visibleNodeCount+=1);const i=o.communitiesByNode.get(a);if(i!==void 0){const u=String(i);s.communityCounts.set(u,(s.communityCounts.get(u)??0)+1)}const l=o.centralityByNode.get(a)?.score??0;(!s.anchorNodeId||l>(o.centralityByNode.get(s.anchorNodeId)?.score??-1))&&(s.anchorNodeId=a,s.color=Nr(t,a)),s.prominence+=e.has(a)?1+l:l*.1,r.set(n,s)}),[...r.entries()].map(([a,n])=>({semanticGroup:a,nodeCount:n.nodeCount,visibleNodeCount:n.visibleNodeCount,color:n.color,anchorNodeId:n.anchorNodeId,anchorLabel:n.anchorNodeId?nn(t,n.anchorNodeId):a,dominantCommunityId:[...n.communityCounts.entries()].sort((s,i)=>i[1]-s[1])[0]?.[0]??null,prominence:n.prominence})).filter(a=>a.visibleNodeCount>0).sort((a,n)=>n.prominence-a.prominence).slice(0,ll)}function bl(t,e,o){const r=o.topNodeIds.filter(n=>e.has(n));return(r.length?r:o.topNodeIds).slice(0,cl).map(n=>{const s=o.centralityByNode.get(n)??{degree:0,betweenness:0,score:0};return{id:n,label:nn(t,n),semanticGroup:to(t,n),color:Nr(t,n),degree:Number(s.degree??0),betweenness:Number(s.betweenness??0),score:Number(s.score??0)}})}function yl(t,e,o){const r=[];return t.forEachOutEdge(e,(a,n,s,i)=>{o.has(i)&&r.push({edgeId:String(a),source:s,target:i,attrs:n})}),t.forEachInEdge(e,(a,n,s,i)=>{o.has(s)&&r.push({edgeId:String(a),source:s,target:i,attrs:n})}),r}function da(t,e,o,r){const a=r.centralityByNode.get(e)?.score??0,n=r.centralityByNode.get(o)?.score??0,s=Number(t.weight??0),i=Number(t.visualPriority??0),l=Number(t.parallelCount??1)>1?.14:0,u=t.isBidirectional?.18:0;return s*1.4+(a+n)*2.4+i*.6+l+u}function Lo(t,e,o){const r=t.get(e);(!r||o.score>r.score||o.score===r.score&&o.edgeId.localeCompare(r.edgeId)<0)&&t.set(e,o)}function Po(t,e,o,r,a,n){const s=[...a].sort((i,l)=>l.score!==i.score?l.score-i.score:i.edgeId.localeCompare(l.edgeId));for(const i of s){if(t.length>=Ka||n<=0||e.has(i.edgeId))continue;const l=[i.source,i.target].sort().join("::");(o.get(i.source)??0)>=ua||(o.get(i.target)??0)>=ua||(r.get(l)??0)>=pl||(t.push(i),e.add(i.edgeId),o.set(i.source,(o.get(i.source)??0)+1),o.set(i.target,(o.get(i.target)??0)+1),r.set(l,(r.get(l)??0)+1),n-=1)}}function vl(t,e,o,r,a){if(e.size===0)return{ready:!1,reason:"No visible nodes are available for overview backbone selection.",edgeIds:[]};const n=[],s=new Set,i=new Map,l=new Map,u=new Map;e.forEach(h=>{u.set(h,to(t,h))});const d=new Set(r.slice(0,3).map(h=>h.semanticGroup)),c=new Set(a.slice(0,ca*2).map(h=>h.id).filter(h=>e.has(h))),p=a.slice(0,ca).map(h=>h.id).filter(h=>e.has(h)),b=new Map;p.forEach(h=>{yl(t,h,e).filter(v=>{const x=v.source===h?v.target:v.source;if(!c.has(x))return!1;const g=u.get(v.source),w=u.get(v.target);return!!(g&&w&&(d.has(g)||d.has(w)))}).forEach(v=>{const x=[v.source,v.target].sort().join("::"),g=u.get(v.source),w=u.get(v.target),C=g&&w&&g!==w?.28:0,I=da(v.attrs,v.source,v.target,o)+C;Lo(b,x,{edgeId:v.edgeId,source:v.source,target:v.target,score:I})})});const m=new Map,f=new Map;t.forEachEdge((h,v,x,g)=>{if(!e.has(x)||!e.has(g))return;const w=String(h),C=String(x),I=String(g),k=u.get(C),D=u.get(I),_=o.communitiesByNode.get(C),L=o.communitiesByNode.get(I),G=!!(k&&D&&k!==D),V=_!==void 0&&L!==void 0&&_!==L,q=o.centralityByNode.get(C)?.score??0,W=o.centralityByNode.get(I)?.score??0,F=da(v,C,I,o),ee=G?.5:0,U=V?.36:0,T=k&&D&&(d.has(k)||d.has(D))?.32:0,P=Math.min(q,W)*1.2,z=F+ee+U+T+P,te={edgeId:w,source:C,target:I,score:z};if(G||V){const B=[k??`community:${_??C}`,D??`community:${L??I}`,Math.min(q,W).toFixed(4)].sort().join("::");Lo(m,B,te)}const Q=[C,I].sort().join("::");Lo(f,Q,te)}),Po(n,s,i,l,m.values(),dl),Po(n,s,i,l,b.values(),ul),Po(n,s,i,l,f.values(),Ka-n.length);const y=n.map(h=>h.edgeId).filter(h=>t.hasEdge(h));return{ready:y.length>0,reason:y.length>0?"Ready":"No overview backbone edges met the current visibility thresholds.",edgeIds:y}}function xl(t,e){if(e.activePath.length<2)return{ready:!1,reason:"Trace a path to compare it against local strict directed shortest pathfinding.",sourceId:e.selectedNodeId||null,targetId:null,path:[],length:null,verifiedAgainstActivePath:!1};const o=e.activePath[0]??null,r=e.activePath[e.activePath.length-1]??null;if(!o||!r||!t.hasNode(o)||!t.hasNode(r))return{ready:!1,reason:"Active path endpoints are not available in the current graph view.",sourceId:o,targetId:r,path:[],length:null,verifiedAgainstActivePath:!1};try{const a=Zs.dijkstra.bidirectional(t,o,r,"weight")??[];return{ready:a.length>1,reason:a.length>1?"Ready":"No strict directed shortest path found in the current graph view.",sourceId:o,targetId:r,path:a,length:a.length>1?a.length-1:null,verifiedAgainstActivePath:a.join("::")===e.activePath.join("::")}}catch(a){return console.error("[GraphAnalytics] directed pathfinding failed",a),{ready:!1,reason:"Directed pathfinding failed for the current graph snapshot.",sourceId:o,targetId:r,path:[],length:null,verifiedAgainstActivePath:!1}}}function Sl(t){const{graphRef:e,interactionState:o,base:r}=t,a=hl(e,t.visibleNodeIds),n=xl(e,o),s=r.communitiesByNode.size?ml(e,a,r):[],i=gl(e,a,r),l=bl(e,a,r),u=vl(e,a,r,i,l);return{generatedAt:Date.now(),directedPath:n,communities:{ready:s.length>0,reason:s.length>0?"Ready":r.communitiesByNode.size>0?"No visible communities in the current graph context.":"Community detection has not produced summaries yet.",count:r.communityCount,modularity:r.modularity,summaries:s},centrality:{ready:l.length>0,reason:l.length>0?r.betweennessReady?"Ready":"Ready (degree-biased while betweenness is bounded for large graphs).":"Centrality ranking is waiting for graph data.",topNodes:l},semanticRegions:{ready:i.length>0,reason:i.length>0?"Ready":"No semantic regions are visible in the current graph context.",summaries:i},overviewBackbone:u}}const $r=E.focus.maxNeighbors,jr=E.focus.ringCapacity,wl=E.focus.ringGap,Nl=E.focus.primaryLabels,El=8,Al=8,Ya="__agg__:",rr="__community__:",Xa=typeof import.meta<"u"&&!0,kl=120,Cl=650,Il=900,pa=new WeakMap;function Dl(t){let e=pa.get(t);return e||(e=new Set(t.heatmapVisibleNodeIds??[]),pa.set(t,e)),e}const _l={layoutMode:"base",positionSource:"store",tracksStoreNodePositions:!0,hasSyntheticNodes:!1},yr={layoutMode:"mirrored",positionSource:"store",tracksStoreNodePositions:!0,hasSyntheticNodes:!1},Gl={layoutMode:"owned",positionSource:"display",tracksStoreNodePositions:!1,hasSyntheticNodes:!0};function oo(t){return ut(0,Math.log2(Math.max(t,1))/1.85,1)}function vt(t){return t<=0?"#7cff9b":t<=1?"#178a4c":t<=2?"#ff2d4b":t<=3||t<=6?"#7d5c14":"#ec2315"}function Ll(t){return t>=.7?"#178a4c":t>=.4?"#9a6700":"#ec2315"}function Pl(t,e,o){const r={};if(!e||!t.hasNode(e))return r;const a=[[e,0]],n=new Set([e]);for(r[e]=0;a.length>0;){const[s,i]=a.shift();i>=o||t.neighbors(s).forEach(l=>{const u=String(l);n.has(u)||(n.add(u),r[u]=i+1,a.push([u,i+1]))})}return r}function Za(t,e){const o={anchor:0,oneHop:0,twoHop:0,threeHopPlus:0,outside:0};Object.values(t).forEach(a=>{a<=0?o.anchor+=1:a===1?o.oneHop+=1:a===2?o.twoHop+=1:o.threeHopPlus+=1});const r=o.anchor+o.oneHop+o.twoHop+o.threeHopPlus;return o.outside=Math.max(0,e-r),o}function Ml(){return{anchor:0,oneHop:0,twoHop:0,threeHopPlus:0,outside:0}}function Rl(t){return t<=0?Number.POSITIVE_INFINITY:t===1?kl:t===2?Cl:Il}function ha(t,e){if(!t.hasNode(e))return 0;const o=t.getNodeAttributes(e);return Number(o.visualPriority??0)*8+Number(o.labelPriority??0)}function jl(t,e){const o=new Map;return t.forEachEdge((r,a,n,s)=>{const i=String(n),l=String(s),u=e[i],d=e[l];if(u==null||d==null||Math.abs(u-d)!==1)return;const c=u>d?i:l,p=a,b=Number(p.visualPriority??0)*8+Number(p.weight??0)+Number(p.relationshipStrength??0)*2+Number(p.representativeWeight??0);o.set(c,Math.max(o.get(c)??0,b))}),o}function Hl(t,e,o,r){const a=Za(o,t.order),n=Ml();n.outside=a.outside;const s=new Set;if(!e||!t.hasNode(e))return{visibleNodeIds:[],ringCounts:a,renderedRingCounts:n,saturationMode:"normal"};const i=jl(t,o),l=new Map;Object.entries(o).forEach(([d,c])=>{if(c<0||c>r||c>3)return;const p=Math.max(0,Math.floor(c));l.set(p,[...l.get(p)??[],d])}),l.get(0)?.includes(e)||l.set(0,[e,...l.get(0)??[]]),[0,1,2,3].forEach(d=>{const c=Rl(d),p=[...new Set(l.get(d)??[])].sort((b,m)=>{const f=(i.get(m)??0)-(i.get(b)??0);if(f!==0)return f;const y=ha(t,m)-ha(t,b);return y!==0?y:Rt(b)-Rt(m)}).slice(0,c);p.forEach(b=>s.add(b)),d===0&&(n.anchor=p.length),d===1&&(n.oneHop=p.length),d===2&&(n.twoHop=p.length),d===3&&(n.threeHopPlus=p.length)}),s.add(e),n.anchor=Math.max(1,n.anchor);const u=n.oneHop<a.oneHop||n.twoHop<a.twoHop||n.threeHopPlus<a.threeHopPlus;return{visibleNodeIds:[...s],ringCounts:a,renderedRingCounts:n,saturationMode:u?"sampled":"normal"}}function Tl(t){if(!t)return!1;const e=t.anchor+t.oneHop+t.twoHop+t.threeHopPlus+t.outside;if(e<=0)return!1;const o=t.twoHop+t.threeHopPlus;return t.threeHopPlus>1500||o/e>.35}function Wl(t,e){return t<=0?{alpha:1,shellAlpha:.92,borderAlpha:.95,sizeMultiplier:1.28,borderBoost:1.35,zIndex:8}:t===1?{alpha:.9,shellAlpha:.42,borderAlpha:.78,sizeMultiplier:.96,borderBoost:.28,zIndex:5}:t===2?{alpha:e?.46:.62,shellAlpha:e?.1:.2,borderAlpha:e?.36:.52,sizeMultiplier:e?.54:.7,borderBoost:e?-.2:.05,zIndex:2}:{alpha:e?.16:.34,shellAlpha:e?.03:.1,borderAlpha:e?.16:.32,sizeMultiplier:e?.3:.48,borderBoost:e?-.35:-.08,zIndex:1}}function zl(t,e,o,r,a){if(!r||r.mode==="off"||r.status!=="ready")return{};const n=r.structuralDistances[a],s=r.anchorNodeId===a;if(r.mode==="ego"){if(n==null)return{color:K(t.palette.overview.nodeMuted,.34),shellColor:K(t.palette.overview.nodeBorder,.16),size:Math.max(.75,o.size*.28),borderColor:K(t.palette.overview.nodeBorder,.18),borderSize:Math.max(.25,o.borderSize*.45),label:"",forceLabel:!1,zIndex:Math.min(o.zIndex,0)};const i=ut(0,n/Math.max(1,r.maxHops),1),l=vt(n);return{color:K(l,s?.98:.88-i*.44),shellColor:K(l,s?.92:.54-i*.24),size:Math.max(o.size*(s?1.18:1-i*.22),o.size*.66),borderColor:s?t.nodes.selectedRing.color:K(l,.72-i*.24),borderSize:o.borderSize+(s?1.1:.28),forceLabel:s||o.forceLabel,label:s&&(r.anchorLabel??o.label)||o.label,zIndex:s?Math.max(o.zIndex,4):Math.max(o.zIndex,1)}}if(r.mode==="heatmap"){const i=Dl(r),l=s||i.size===0||i.has(a);if(n==null||!l)return{color:K(t.palette.overview.nodeMuted,e==="overview"?.055:.09),shellColor:K(t.palette.overview.nodeBorder,.015),borderColor:K(t.palette.overview.nodeBorder,.035),borderSize:Math.max(.12,o.borderSize*.18),size:Math.max(.45,o.size*.2),label:"",forceLabel:!1,zIndex:Math.min(o.zIndex,0),coreScale:0};const u=vt(n),d=Wl(n,Tl(r.distanceCounts)),c=s?(r.anchorLabel??o.label)||o.label:"";return{color:K(u,d.alpha),shellColor:K(u,d.shellAlpha),borderColor:s?t.nodes.selectedRing.color:K(u,d.borderAlpha),borderSize:Math.max(.18,o.borderSize+d.borderBoost),size:Math.max(.7,o.size*d.sizeMultiplier),forceLabel:s,label:c,zIndex:Math.max(s?o.zIndex:0,d.zIndex)}}return{}}function Vl(t,e,o,r,a){if(!e||e.mode==="off"||e.status!=="ready")return{};if(e.mode==="heatmap")return a==="path"||a==="selected"||a==="local-context"?{}:{hidden:!0,color:K("#f9f9fa",.02),size:Math.min(t.size??.35,.2),zIndex:0};if(e.mode==="structural"){const n=e.structuralDistances[o],s=e.structuralDistances[r],i=Math.min(n??Number.POSITIVE_INFINITY,s??Number.POSITIVE_INFINITY);if(!Number.isFinite(i)||i>e.maxHops)return{};const l=vt(i);return{hidden:!1,color:K(l,i<=1?.72:i<=3?.48:.32),size:Math.max(t.size??.6,i<=1?1.25:i<=3?.95:.7),zIndex:Math.max(t.zIndex,i<=1?5:3),type:"line",curvature:0}}if(e.mode==="semantic"){const n=e.anchorNodeId;if(!n||o!==n&&r!==n)return{};const s=o===n?r:o,i=e.semanticScores[s];if(i==null)return{};const l=Ll(i);return{hidden:!1,color:K(l,.34+ut(0,i,1)*.42),size:Math.max(t.size??.6,.8+ut(0,i,1)*.75),zIndex:Math.max(t.zIndex,4),type:"line",curvature:0}}return{}}function Bo(t,e,o,r){t.forEachDirectedEdge(e,o,(a,n)=>{r(String(a),n)})}function Qa(t,e,o){const r=[];return Bo(t,e,o,a=>{r.push(a)}),r}function Ul(t){return!!(t?.isAggregated||(t?.rawEdgeIds?.length??0)>1)}function vr(t,e){const o=t?.rawEdgeIds?.map(r=>String(r)).filter(Boolean)??[];return o.length>0?o:e?[String(e)]:[]}function an(t,e){return{aggregationEnabled:e,groupedViewAvailable:!1,groupedViewReason:null,selectedRootNodeId:t||null,selectedVisibleNeighborIds:[],selectedCollapsedNeighborIds:[],selectedNodeKind:t?"unavailable":"none",canActivateFocused:!1,resolvedFocusedNodeId:null,focusedUnavailableReason:t?{code:"not-in-graph"}:null}}function sn(t,e){if(!e)return null;if(t.hasNode(e))return e;let o=null;return t.forEachNode((r,a)=>{if(o)return;const n=a.properties?.__communityGroup;if(n){if(n.anchorNodeId===e){o=r;return}(n.sampleNodeIds?.includes(e)||n.memberNodeIds?.includes(e))&&(o=r)}}),o}function Ol(){const e=ro(j,{computeCommunities:!0,computeCentrality:!1}).communitiesByNode.size>0;return{available:e,reason:e?null:{code:"communities-undetected"}}}function Bl(t,e){const o=sn(t,e);if(!o)return[];const r=new Map;return t.forEachEdge((a,n,s,i)=>{const l=String(s),u=String(i);if(l!==o&&u!==o)return;const d=l===o?u:l;if(!d||d===o||!t.hasNode(d))return;const c=Number(n.aggregateCount??n.baseSize??n.size??n.weight??1),p=Number.isFinite(c)&&c>0?c:1;r.set(d,(r.get(d)??0)+p)}),Array.from(r.entries()).sort((a,n)=>n[1]!==a[1]?n[1]-a[1]:a[0].localeCompare(n[0])).map(([a])=>a)}function Fl(t,e,o){const r=an(e,!0);if(r.groupedViewAvailable=o?.groupedViewAvailable??!0,r.groupedViewReason=o?.groupedViewReason??null,r.selectedNodeKind=o?.selectedNodeKind??(e?"grouped":"none"),r.resolvedFocusedNodeId=o?.resolvedFocusedNodeId??null,r.canActivateFocused=!!r.resolvedFocusedNodeId,r.focusedUnavailableReason=r.canActivateFocused?null:o?.focusedUnavailableReason??r.focusedUnavailableReason,!e)return r;const a=sn(t,e);if(!a)return r;const n=Bl(t,a);return r.selectedRootNodeId=a,r.selectedVisibleNeighborIds=n.slice(0,$r),r.selectedCollapsedNeighborIds=n.slice($r),r}function $l(t){if(t.order===0)return{code:"community-nodes-missing"};let e=null;return t.forEachNode((o,r)=>{if(e)return;const a=r;(!Number.isFinite(Number(a.x))||!Number.isFinite(Number(a.y)))&&(e={code:"invalid-community-layout",nodeId:o})}),e||(t.forEachEdge((o,r,a,n)=>{e||(!t.hasNode(a)||!t.hasNode(n))&&(e={code:"missing-grouped-node",edgeId:o})}),e)}function no(t,e,o=[]){if(o.length>0){const a=new Set(o.map(s=>String(s))),n=new Set;return t.forEachEdge((s,i)=>{const l=String(s);if(a.has(l)){n.add(l);return}vr(i,l).some(d=>a.has(d))&&n.add(l)}),n}const r=new Set;for(let a=0;a<e.length-1;a+=1)Qa(t,e[a],e[a+1]).forEach(n=>r.add(n));return r}function ln(t,...e){const o=new Set;return e.forEach(r=>{if(!r||!t.hasEdge(r))return;const[a,n]=t.extremities(r);o.add(a),o.add(n)}),o}function Ja(t,e){const o=new Set,r=Array.from(e);for(let a=0;a<r.length;a+=1){const n=r[a];for(let s=0;s<r.length;s+=1){const i=r[s];n!==i&&Qa(t,n,i).forEach(l=>o.add(l))}}return o}function fa(t,e){if(!e)return new Set;const o=new Set(e.activePath),r=e.hoveredNodeId||e.selectedNodeId;return r&&t.hasNode(r)&&kr(t,r).forEach(a=>o.add(a)),ln(t,e.selectedEdgeId).forEach(a=>o.add(a)),o}function ma(t,e){if(!e)return new Set;const o=new Set(no(t,e.activePath,e.activePathEdgeIds)),r=e.hoveredNodeId||e.selectedNodeId;return r&&t.hasNode(r)&&Ja(t,kr(t,r)).forEach(a=>o.add(a)),e.selectedEdgeId&&o.add(e.selectedEdgeId),o}function ql(t,e){const o=new Set;return t.forEachEdge((r,a)=>{const n=String(r);if(e.has(n)){o.add(n);return}vr(a,n).some(i=>e.has(i))&&o.add(n)}),Array.from(o)}function Kl(t,e,o){const r=new Set,a=new Set;return fa(t,e).forEach(n=>r.add(n)),fa(t,o).forEach(n=>r.add(n)),ma(t,e).forEach(n=>a.add(n)),ma(t,o).forEach(n=>a.add(n)),{nodes:Array.from(r).filter(n=>t.hasNode(n)),edges:ql(t,a)}}function ei(t,e,o){!Xa||!o.startsWith(rr)||console.debug("[graphSceneState]",`${t}-skipped-missing-display-node`,{nodeId:o,order:e.order,size:e.size})}function Yl(t,e,o){let r=0;return Bo(t,e,o,(a,n)=>{r=Math.max(r,Number(n?.weight??0))}),Bo(t,o,e,(a,n)=>{r=Math.max(r,Number(n?.weight??0))}),r}function ti(t,e){return!e||!t.hasNode(e)?(ei("neighbors",t,e),[]):t.neighbors(e).map(o=>({id:o,weight:Yl(t,e,o),degree:t.hasNode(o)?t.degree(o):0})).sort((o,r)=>r.weight!==o.weight?r.weight-o.weight:r.degree!==o.degree?r.degree-o.degree:o.id.localeCompare(r.id)).map(o=>o.id)}function cn(t){return ti(j,t)}function kr(t,e){if(!e||!t.hasNode(e))return ei("focus",t,e),new Set;const o=ti(t,e).slice(0,$r);return new Set([e,...o])}function ga(t,e,o,r,a,n){if(no(t,e.activePath,e.activePathEdgeIds).has(o)||e.selectedEdgeId===o||n.isAggregated&&(e.viewMode==="grouped"||e.zoomTier==="inspection"))return!0;const i=e.selectedNodeId;if(i&&t.hasNode(i)){if(r===i||a===i)return!0;const l=kr(t,i);return l.has(r)&&l.has(a)}return e.zoomTier!=="inspection"?!1:Number(n.visualPriority??0)>=E.zoomTiers[e.zoomTier].edgePriorityThreshold}function Xl(t,e,o,r,a){const n=wr(r,t),s=!!r.isCommunityGroup,i=t.nodes.entityShapes[un(r)],l=o==="neighbor"?t.palette.overview.nodeTintMix+.09:t.palette.overview.nodeTintMix,u=dt(t.palette.overview.nodeCore,n,Math.min(.74,t.palette.overview.nodeCoreMix+l));switch(t.nodes.states[o].color){case"selected":return t.palette.accent.selected;case"hovered":return t.palette.accent.hovered;case"path":return t.palette.accent.path;case"muted":return e==="overview"?K(t.palette.overview.nodeMuted,.42):String(r.mutedColor||K(n,t.nodes.mutedAlpha));default:if(e==="overview"){const d=oo(a),c=dt(u,n,.3+.26*d),p=Math.min(.98,t.palette.overview.nodeCoreAlpha+d*.18);return K(c,s?Math.min(p,t.grouped.style.fillAlpha):Math.min(p,i.fillAlpha))}return K(n,s?t.grouped.style.fillAlpha:i.fillAlpha)}}function Zl(t,e,o,r,a){const n=wr(r,t),s=!!r.isCommunityGroup,i=t.nodes.entityShapes[un(r)],l=oo(a),u=dt(n,t.ui.text.strong,.34+l*.12);return e!=="overview"?K(dt(n,t.ui.text.strong,o==="default"?.26:.42),s?t.grouped.style.shellAlpha:Math.min(.72,i.shellAlpha+.12)):o==="selected"?K(dt(t.palette.accent.selected,t.ui.text.strong,.24),.92):o==="hovered"?K(dt(t.palette.accent.hovered,t.ui.text.strong,.22),.9):o==="path"?K(dt(t.palette.accent.path,t.ui.text.strong,.22),.9):o==="muted"||o==="inactive"?K(t.palette.overview.nodeBorder,.16):K(u,s?t.grouped.style.shellAlpha:Math.min(.58,i.shellAlpha+.08))}function Ql(t,e,o){const r=oo(o);if(t==="overview")switch(e){case"selected":return .34+r*.08;case"hovered":return .32+r*.08;case"path":return .28+r*.07;case"neighbor":return .2+r*.06;case"muted":case"inactive":return .08+r*.03;default:return .16+r*.08}switch(e){case"selected":return .52;case"hovered":return .48;case"path":return .44;case"neighbor":return .3;case"muted":case"inactive":return .1;default:return t==="structure"?.22:.28}}function Jl(t,e,o,r,a,n){const s=e==="overview"?t.palette.overview.edgeInspection:t.palette.muted.edgeInspection,i=String(r.baseColor||a||s);if(n==="bridge")return t.palette.muted.edgeFocus;switch(t.edges.states[o].color){case"hover":return t.palette.accent.hovered;case"path":return t.palette.accent.path;case"backbone":return e==="overview"?t.palette.overview.edgeBackbone:t.palette.muted.edgeFocus;case"focus":return t.palette.muted.edgeFocus;case"overview":return t.palette.muted.edgeOverview;case"structure":return e==="overview"?t.palette.overview.edgeStructure:t.palette.muted.edgeStructure;case"inspection":return e==="overview"?t.palette.overview.edgeInspection:t.palette.muted.edgeInspection;case"muted":return e==="overview"?t.palette.overview.edgeStructure:t.palette.muted.edgeOverview;default:return i}}function ri(t,e,o,r){const a=r?"grouped":e;return t.edges.visibility[a][o]}function oi(t){return t==="path"||t==="selected"||t==="hovered"||t==="neighbor"||t==="backbone"}function ec(t){return t==="line"||t==="directional"||t==="parallelCurve"||t==="bidirectionalCurve"}function ba(t,e,o,r,a){if(t>=1)return!1;const n=o||`${r??"?"}->${a??"?"}`,s=Rt(n)%1e4/1e4,i=Math.min(1,t+e*.08);return s>i}function tc(t,e,o,r,a,n,s){const i=ri(t,e,o,n);if(e==="full"){if(s==="path"||r==="path")return t.interaction.pathEdgeAlpha;if(s==="selected"||r==="selected")return t.interaction.selectedEdgeAlpha;if(s==="local-context"||r==="hovered")return t.interaction.localContextAlpha;if(s==="bridge")return t.edges.fullGraphStructure.bridgeAlpha;if(s==="backbone")return t.edges.fullGraphStructure.backboneAlpha;if(r==="backbone")return t.edges.fullGraphStructure.ambientBackboneAlpha;if(r==="default"&&o==="structure")return t.edges.fullGraphStructure.structureEdgeAlpha;if(r==="default"&&o==="inspection")return t.edges.fullGraphStructure.inspectionEdgeAlpha}return r==="path"?t.interaction.pathEdgeAlpha:r==="selected"||r==="hovered"?r==="selected"?t.interaction.selectedEdgeAlpha:t.interaction.hoverContextAlpha:r==="default"?i.defaultAlpha:r==="muted"?i.mutedAlpha:r==="inactive"?i.inactiveAlpha:r==="neighbor"?a.bundleKind==="community"?Math.max(i.neighborAlpha,t.grouped.style.edgeAlpha):i.neighborAlpha:n&&!oi(r)?t.grouped.style.edgeAlpha:null}function rc(t,e,o){if(e==="selected")return o.ringColor||t.nodes.selectedRing.color;if(e==="hovered")return t.palette.accent.hovered;if(e==="path")return t.palette.accent.path}function oc(t,e,o){return e==="selected"&&xt(o,t.nodes.selectedRing.visibleFrom)?t.nodes.selectedRing.nativeSize:e==="hovered"?Math.max(1.45,t.nodes.selectedRing.nativeSize-.35):e==="path"?Math.max(1.2,t.nodes.selectedRing.nativeSize-.55):0}function ni(t,e,o,r,a,n,s,i){return o&&t===o?"hovered":r&&t===r?"selected":i.has(t)?"path":n.has(t)||s.has(t)?"neighbor":o||r||a||i.size>0?e!=="inspection"?"default":"muted":"default"}function nc(t,e,o,r,a,n,s,i,l,u=new Set){const d=a||n;return l.has(t)?"path":s&&t===s?"selected":d&&(e===d||o===d)?u.has(t)?a?"hovered":"selected":"muted":r!=="overview"&&i.has(e)&&i.has(o)?"neighbor":a||n||s||l.size>0?"muted":r==="overview"?"inactive":"default"}function ya(t){return t?String(t.communityId||t.semanticGroup||t.nodeType||""):""}function ac(t,e){const o=ya(t),r=ya(e);return!!(o&&r&&o!==r)}function ic(t,e,o,r,a,n,s,i,l,u=new Set,d=new Set,c,p){const b=a||n;return l.has(t)?"path":s&&t===s?"selected":u.has(t)?"local-context":b&&(e===b||o===b)?"muted":d.has(t)?ac(c,p)?"bridge":"backbone":r==="overview"?"hidden":(i.has(e)&&i.has(o),"muted")}function sc(t,e){switch(t){case"path":return"path";case"selected":return"selected";case"local-context":return e.hoveredNodeId?"hovered":"selected";case"backbone":return"backbone";case"bridge":return"backbone";case"hidden":return"inactive";default:return e.hasActiveInteraction?"muted":"default"}}function lc(t,e){return t==="selected"?"selected":e.nodeShapeVariant||e.nodeVariant||"default"}function un(t){return t.isCommunityGroup?"community":t.entityShape||qa(t.nodeType,t.semanticGroup,t.content,t.properties)}function cc(t,e){return t==="path"?"pathSignal":e.bundleKind==="community"?"line":(e.parallelCount??1)>1?"parallelCurve":e.edgeVariant?e.edgeVariant:e.isBidirectional?"bidirectionalCurve":e.arrowVisibilityPolicy==="contextual"?"directional":"line"}function uc(t,e,o,r,a){const n=t.zoomTiers[e],s=t.labels.forceVisibleStates.includes(o),i=r.labelVisibilityPolicy||"priority";if(s||t.nodes.states[o].forceLabel)return!0;switch(i){case"always":return!0;case"local":return e!=="overview"&&o!=="default"&&o!=="muted"&&o!=="inactive";case"priority":return a>=n.labelThreshold;default:return!1}}function dc(t,e,o,r,a,n){return o==="selected"||r==="selected"?a.ringColor||t.nodes.selectedRing.color:o==="hovered"?t.palette.accent.hovered:o==="path"?t.palette.accent.path:o==="muted"||o==="inactive"?K(a.strokeColor||a.borderColor||t.palette.overview.nodeBorder||t.palette.background.nodeBorder,e==="overview"?.26:.7):r==="temporal"?t.palette.accent.temporal:r==="provenance"?t.palette.accent.provenance:r==="inferred"?t.palette.accent.inferred:e==="overview"?K(dt(t.palette.overview.nodeBorder,n,o==="neighbor"?.08:.03),o==="neighbor"?.24:.06):a.strokeColor||a.borderColor||t.palette.background.nodeBorder||n}function qr(t,e,o,r,a,n=1){const s=t.zoomTiers[e],i=t.nodes.states[o],l=lc(o,r),u=t.nodes.variants[l],d=un(r),c=t.nodes.entityShapes[d],p=!!r.isCommunityGroup,b=Number(r.baseSize||r.size||4),m=Number(r.labelPriority??0),f=Xl(t,e,o,r,n),y=Zl(t,e,o,r,n),h=(o==="default"?s.nodeScale:i.sizeMultiplier)*u.sizeMultiplier*(p?t.grouped.style.nodeSizeScale:1),v=e==="overview"?1+oo(n)*1.2:1,x=uc(t,e,o,r,m),g=r.badgeKind||u.badgeKind,w=t.labels.forceVisibleStates.includes(o),C=!!(g&&(w||s.showBadges&&xt(e,u.badgeVisibleFrom))&&o!=="muted"&&o!=="inactive"),I=oc(t,o,e),k=rc(t,o,r),D=I>0,_=o==="hovered"||o==="selected"||o==="path",L=o==="muted"||o==="inactive"?t.nodes.strokeHierarchy[e].muted:w?t.nodes.strokeHierarchy[e].emphasis:t.nodes.strokeHierarchy[e].base,G=Ql(e,o,n)*c.coreScale;return{color:f,shellColor:y,coreScale:e!=="overview"||o==="hovered"||o==="selected"||o==="path"?ut(.06,G,.5):0,size:Math.max(b*h*v,i.minSize,c.minSize),forceLabel:x,label:x?a:"",zIndex:x&&i.zIndex===0?1:i.zIndex,hidden:!1,borderColor:dc(t,e,o,l,r,f),borderSize:Math.max(.4,Number(r.borderSize??.85)+L+i.borderBoost+u.borderBoost+c.borderBoost+(p?t.grouped.style.nodeBorderBoost:0)-.8),nodeVariant:l,entityShape:d,entityShapeKind:c.shapeKind,entityAspectRatio:c.aspectRatio,badgeKind:g,badgeCount:r.badgeCount,showBadge:C,showRing:D,ringColor:k,ringSize:I,showHalo:_,haloColor:r.haloColor||r.glowColor||K(f,(p?t.grouped.style.glowAlpha:t.overlays.hoverGlowAlpha)+u.haloBoost)}}function pc(t,e,o,r,a,n){const s=t.edges.variants[r];return t.edges.states[o].forceArrow||s.arrowPolicy==="always"?"arrow":(n==="full"||n==="grouped")&&o==="default"||n==="full"&&o==="backbone"?"line":s.arrowPolicy==="contextual"&&t.zoomTiers[e].showContextualArrows?"arrow":o!=="default"?a.type||s.baseType:Number(a.visualPriority??0)>=t.zoomTiers[e].arrowPriorityThreshold&&t.zoomTiers[e].showContextualArrows?"arrow":"line"}function hc(t,e,o,r,a,n){const s=t.edges.variants[o],i=o==="line"&&e==="selected"?Math.max(s.curveStrength,.14):s.curveStrength;if(i===0)return 0;if(typeof r.parallelCount=="number"&&r.parallelCount>1&&typeof r.parallelIndex=="number"){const l=(r.parallelCount-1)/2;return(r.parallelIndex-l)*i}return(o==="bidirectionalCurve"||o==="parallelCurve"||r.isBidirectional)&&a&&n?a.localeCompare(n)<=0?i:-i:i}function dn(t,e,o,r,a,n,s="full",i,l){const u=t.zoomTiers[e],d=t.edges.states[o],c=cc(o,r),p=t.edges.variants[c],b=r.bundleKind==="community",m=Number(r.baseSize||r.size||.9),f=Number(r.visualPriority??0),y=s==="full"&&r.isSmallGraph===!0,h=s==="full"&&l==="bridge",v=s==="full"&&l==="backbone",x=h&&f>=t.edges.fullGraphStructure.bridgeCurvePriorityThreshold,g=ri(t,s,e,b),w=oi(o),C=ec(c),I=!y&&o==="default"&&f<Math.max(u.edgePriorityThreshold,g.defaultPriorityThreshold)&&C,k=!y&&(o==="muted"||o==="inactive")&&g.hideMuted,D=!y&&C&&(o==="default"&&!w&&ba(g.backgroundSampleRate,f,i,a,n)||o==="backbone"&&e==="overview"&&s!=="full"&&ba(.15,f,i,a,n));if(d.hide||I||k||D)return{hidden:!0,zIndex:0,edgeVariant:c,arrowVisibilityPolicy:p.arrowPolicy,curveStrength:p.curveStrength,curvature:0};const _=w?1:g.sizeMultiplier,L=(o==="default"?u.edgeSizeScale:d.sizeMultiplier)*p.sizeMultiplier*_,G=pc(t,e,o,c,r,s),V=u.showCurves&&(c==="pathSignal"||o==="selected"||x||c==="bidirectionalCurve"||c==="parallelCurve"),q=x?a&&n&&a.localeCompare(n)>0?-t.edges.fullGraphStructure.bridgeCurveStrength:t.edges.fullGraphStructure.bridgeCurveStrength:V?hc(t,o,c,r,a,n):0,W=Jl(t,e,o,r,r.color,l),F=tc(t,s,e,o,r,b,l),ee=y?Math.max(F??1,w?.62:.46):F,U=ee===null?W:K(W,ee),T=Math.max(m*L*(b?t.grouped.style.edgeSizeScale:1),y?Math.max(d.minSize,.9):d.minSize),P=l==="path"||o==="path"?t.interaction.pathEdgeMaxSize:l==="selected"||o==="selected"?t.interaction.selectedEdgeMaxSize:l==="local-context"||o==="hovered"||o==="neighbor"?t.interaction.localContextMaxSize:Number.POSITIVE_INFINITY,z=h?Math.min(T,t.edges.fullGraphStructure.bridgeMaxSize):v?Math.min(T,t.edges.fullGraphStructure.backboneMaxSize):Math.min(T,P);return{hidden:!1,type:V?G==="arrow"?"curvedArrow":"curve":G,color:U,size:z,zIndex:d.zIndex,edgeVariant:c,arrowVisibilityPolicy:p.arrowPolicy,curveStrength:p.curveStrength,curvature:q}}function fc(t,e,o){t.hasNode(e)||t.addNode(e,o)}function mc(t){const e=String(t||"").trim();return e.length<=22?e:`${e.slice(0,21).trimEnd()}…`}function gc(t){const e=2*Math.PI*Math.max(t,1);return Math.max(6,Math.floor(e/E.grouped.initialLayout.minNodeSpacing))}function va(t){return Math.max(16,10+Math.log2(t+1)*4.6)}function bc(t){const e=new Map,o=t.slice().sort((d,c)=>{const p=Math.log2(d.memberCount+1)*2.2+Math.log2(d.connectivityWeight+1)*1.6+d.centralityScore*5,b=Math.log2(c.memberCount+1)*2.2+Math.log2(c.connectivityWeight+1)*1.6+c.centralityScore*5;return b!==p?b-p:d.communityId-c.communityId});if(o.length===0)return e;const r=new Map,a=Math.min(E.grouped.initialLayout.primaryLabelCount,o.length),n=d=>Math.max(.24,1.24-d*.055),s=d=>d<a?Math.max(1.02,1.42-d*.05):.56,i={x:0,y:0};r.set(o[0].communityId,i),e.set(o[0].communityId,{...i,labelPriority:s(0),visualPriority:n(0)});let l=1,u=1;for(;l<o.length;){const d=E.grouped.initialLayout.innerRadius+(u-1)*E.grouped.initialLayout.ringSpacing,c=gc(d),p=Math.min(c,o.length-l),b=Rt(`community-ring:${u}`)%360*Math.PI/180;for(let m=0;m<p;m+=1){const f=o[l+m],y=b+Math.PI*2*m/p,h={x:Number((d*Math.cos(y)).toFixed(3)),y:Number((d*Math.sin(y)).toFixed(3))};r.set(f.communityId,h),e.set(f.communityId,{...h,labelPriority:s(l+m),visualPriority:n(l+m)})}l+=p,u+=1}for(let d=0;d<E.grouped.initialLayout.overlapIterations;d+=1){let c=!1;for(let p=0;p<o.length;p+=1)for(let b=p+1;b<o.length;b+=1){const m=o[p],f=o[b],y=e.get(m.communityId),h=e.get(f.communityId);if(!y||!h)continue;let v=h.x-y.x,x=h.y-y.y,g=Math.hypot(v,x);if(g<.001){const L=Rt(`grouped-collision:${m.communityId}:${f.communityId}`)%360*Math.PI/180;v=Math.cos(L),x=Math.sin(L),g=1}const w=m.radius+f.radius+E.grouped.initialLayout.nodePadding;if(g>=w)continue;const C=w-g,I=v/g,k=x/g,D=f.radius/(m.radius+f.radius),_=m.radius/(m.radius+f.radius);y.x-=I*C*.52*D,y.y-=k*C*.52*D,h.x+=I*C*.52*_,h.y+=k*C*.52*_,c=!0}if(o.forEach(p=>{const b=e.get(p.communityId),m=r.get(p.communityId);!b||!m||(b.x+=(m.x-b.x)*.08,b.y+=(m.y-b.y)*.08)}),!c)break}return e}function pn(t,e){if(!t||!j.hasNode(t))return{selectedVisibleNeighborIds:[],selectedCollapsedNeighborIds:[]};const o=cn(t),r=new Set(e.filter(n=>n!==t&&j.hasNode(n))),a=new Set;return o.forEach((n,s)=>{(s<El||r.has(n))&&a.add(n)}),{selectedVisibleNeighborIds:Array.from(a),selectedCollapsedNeighborIds:o.filter(n=>!a.has(n))}}function yc(t,e){const o=pn(t,e),r=new Set(o.selectedCollapsedNeighborIds);if(r.size===0)return j.copy();const a=j.copy();return r.forEach(n=>{if(!a.hasNode(n))return;a.edges(n).map(i=>String(i)).forEach(i=>{if(!a.hasEdge(i))return;const[l,u]=a.extremities(i);(l===t&&u===n||l===n&&u===t)&&a.dropEdge(i)}),a.hasNode(n)&&a.degree(n)===0&&a.dropNode(n)}),a}function gr(t){return t||"related_to"}function Kr(t){const e=new Jr({type:"directed",multi:!0,allowSelfLoops:!1});t.forEachNode((r,a)=>{e.addNode(r,{...a})});const o=new Map;return t.forEachEdge((r,a,n,s)=>{const i=`${n}→${s}`,l=o.get(i)??[];l.push({edgeId:String(r),attrs:a}),o.set(i,l)}),o.forEach((r,a)=>{const[n,s]=a.split("→");if(r.length===1){const[{edgeId:f,attrs:y}]=r;e.mergeDirectedEdgeWithKey(f,n,s,{...y,edgeType:gr(y.edgeType),dominantEdgeType:gr(y.dominantEdgeType??y.edgeType),rawEdgeIds:vr(y,f),isAggregated:Ul(y),aggregateCount:y.aggregateCount??vr(y,f).length,representativeWeight:y.representativeWeight??Number(y.weight??1)});return}const l=r.slice().sort((f,y)=>{const h=Number(y.attrs.weight??0)-Number(f.attrs.weight??0);if(h!==0)return h;const v=Number(y.attrs.visualPriority??0)-Number(f.attrs.visualPriority??0);return v!==0?v:f.edgeId.localeCompare(y.edgeId)})[0],u=r.flatMap(({edgeId:f,attrs:y})=>vr(y,f)),d=new Map;r.forEach(({attrs:f})=>{const y=gr(f.edgeType);d.set(y,(d.get(y)??0)+1)});const c=[...d.entries()].sort((f,y)=>y[1]-f[1])[0]?.[0]??gr(l.attrs.edgeType),p=`${s}→${n}`,b=o.has(p),m=`${Ya}${n}::${s}`;e.mergeDirectedEdgeWithKey(m,n,s,{...l.attrs,edgeId:m,familyId:m,sourceId:n,targetId:s,rawEdgeIds:u,isAggregated:!0,aggregateCount:u.length,dominantEdgeType:c,representativeWeight:Number(l.attrs.weight??1),weight:Number(l.attrs.weight??1),edgeType:l.attrs.edgeType||c,parallelCount:u.length,familySize:u.length,bundleKind:b?"bidirectional":"parallel",isBidirectional:b})}),e}function vc(){const t=ro(j,{computeCommunities:!0,computeCentrality:!0}),e=an("",!0);if(e.groupedViewAvailable=t.communitiesByNode.size>0,t.communitiesByNode.size===0)return e.groupedViewReason={code:"communities-undetected"},{graph:Kr(j),state:e,meta:yr};const o=new Jr({type:"directed",multi:!0,allowSelfLoops:!1}),r=new Map;j.forEachNode(m=>{const f=t.communitiesByNode.get(m);if(f===void 0)return;const y=r.get(f)??[];y.push(m),r.set(f,y)});const a=new Map;r.forEach((m,f)=>{const y=m.slice().sort((C,I)=>{const k=t.centralityByNode.get(C)?.score??0,D=t.centralityByNode.get(I)?.score??0;return D!==k?D-k:C.localeCompare(I)}),h=y[0]??null,v=h?j.getNodeAttributes(h):null,x=new Map;m.forEach(C=>{const I=j.getNodeAttributes(C),k=String(I.semanticGroup||I.nodeType||"entity");x.set(k,(x.get(k)??0)+1)});const g=[...x.entries()].sort((C,I)=>I[1]-C[1])[0]?.[0]??"entity",w=v?.baseColor||v?.color||E.palette.semantic[f%E.palette.semantic.length];a.set(f,{memberIds:m,rankedMembers:y,anchorNodeId:h,anchorAttrs:v,dominantSemanticGroup:g,color:w,memberCount:m.length,centralityScore:h?t.centralityByNode.get(h)?.score??0:0})});const n=new Map;j.forEachEdge((m,f,y,h)=>{const v=t.communitiesByNode.get(y),x=t.communitiesByNode.get(h);if(v===void 0||x===void 0||v===x)return;const g=`${rr}${v}`,w=`${rr}${x}`,C=`${g}→${w}`,I=n.get(C)??{sourceId:g,targetId:w,rawEdgeIds:[],weight:0,typeCounts:new Map};I.rawEdgeIds.push(String(m)),I.weight=Math.max(I.weight,Number(f.weight??1));const k=gr(f.edgeType);I.typeCounts.set(k,(I.typeCounts.get(k)??0)+1),n.set(C,I)});const s=new Map;n.forEach(m=>{const f=Number(m.sourceId.replace(rr,"")),y=Number(m.targetId.replace(rr,"")),h=m.rawEdgeIds.length+m.weight*.35;s.set(f,(s.get(f)??0)+h),s.set(y,(s.get(y)??0)+h)});const i=new Map,l=new Map;let u=0;n.forEach((m,f)=>{const y=m.rawEdgeIds.length+m.weight*.35;i.set(f,y),u=Math.max(u,y);const h=l.get(m.sourceId)??[];h.push({key:f,strength:y}),l.set(m.sourceId,h);const v=l.get(m.targetId)??[];v.push({key:f,strength:y}),l.set(m.targetId,v)});const d=new Set,c=Math.max(1.25,u*E.grouped.style.edgeVisibilityRatio);if(n.forEach((m,f)=>{(i.get(f)??0)>=c&&d.add(f)}),l.forEach(m=>{m.slice().sort((f,y)=>y.strength-f.strength).slice(0,E.grouped.style.topIncidentEdges).forEach(({key:f})=>d.add(f))}),d.size===0&&n.size>0){const m=Array.from(n.keys()).sort((f,y)=>(i.get(y)??0)-(i.get(f)??0))[0];m&&d.add(m)}const p=bc(Array.from(a.entries()).map(([m,f])=>({communityId:m,memberCount:f.memberCount,centralityScore:f.centralityScore,connectivityWeight:s.get(m)??0,radius:va(f.memberCount)*E.grouped.style.nodeSizeScale*.92})));a.forEach((m,f)=>{const y=`${rr}${f}`,h=p.get(f)??{x:0,y:0,labelPriority:.56,visualPriority:.42},v=va(m.memberCount),x=m.anchorAttrs?.label||m.anchorNodeId||`Community ${f}`;fc(o,y,{label:mc(x),content:m.anchorAttrs?.content||x,x:h.x,y:h.y,size:v,baseSize:v,color:m.color,baseColor:m.color,mutedColor:K(m.color,.22),glowColor:K(m.color,E.grouped.style.glowAlpha),borderColor:K(m.color,.74),entityShape:"community",nodeType:"community",semanticGroup:m.dominantSemanticGroup,labelVisibilityPolicy:h.labelPriority>.9?"priority":"none",properties:{__communityGroup:{communityId:String(f),memberCount:m.memberCount,memberNodeIds:m.memberIds,sampleNodeIds:m.rankedMembers.slice(0,Al),anchorNodeId:m.anchorNodeId,anchorLabel:x,dominantSemanticGroup:m.dominantSemanticGroup,color:m.color}},isCommunityGroup:!0,communityId:String(f),memberCount:m.memberCount,anchorNodeId:m.anchorNodeId,labelPriority:h.labelPriority,visualPriority:h.visualPriority})}),n.forEach((m,f)=>{if(!d.has(f))return;const y=[...m.typeCounts.entries()].sort((w,C)=>C[1]-w[1])[0]?.[0]??"related_to",h=`${m.targetId}→${m.sourceId}`,v=`${Ya}${f}`,x=m.rawEdgeIds.length,g=Math.max(.9,.72+Math.log2(x+1)*.2);o.mergeDirectedEdgeWithKey(v,m.sourceId,m.targetId,{edgeId:v,familyId:v,sourceId:m.sourceId,targetId:m.targetId,edgeType:y,dominantEdgeType:y,weight:m.weight,representativeWeight:m.weight,properties:{},rawEdgeIds:m.rawEdgeIds,isAggregated:!0,aggregateCount:x,familySize:x,parallelCount:x,isBidirectional:n.has(h),bundleKind:"community",edgeVariant:"line",arrowVisibilityPolicy:"hidden",baseSize:g,size:g,color:K("#9bb7d6",E.grouped.style.edgeAlpha),mutedColor:K("#9bb7d6",Math.max(.14,E.grouped.style.edgeAlpha*.4)),visualPriority:Math.min(1.05,.38+Math.log2(x+1)*.14)})});const b=$l(o);return b?(e.groupedViewAvailable=!1,e.groupedViewReason=b,{graph:Kr(j),state:e,meta:yr}):{graph:o,state:{aggregationEnabled:!0,groupedViewAvailable:!0,groupedViewReason:null,selectedRootNodeId:null,selectedVisibleNeighborIds:[],selectedCollapsedNeighborIds:[],selectedNodeKind:"none",canActivateFocused:!1,resolvedFocusedNodeId:null,focusedUnavailableReason:null},meta:Gl}}function ai(t,e,o,r){const a=r?.aggregationEnabled??!0,n=new Set(Array.from(r?.collapsedNeighborhoodNodeIds??[]).filter(u=>typeof u=="string")),s=an(t,a);if(s.selectedNodeKind=r?.selectedNodeKind??(t?"unavailable":"none"),s.resolvedFocusedNodeId=r?.resolvedFocusedNodeId??null,s.canActivateFocused=!!s.resolvedFocusedNodeId,s.focusedUnavailableReason=s.canActivateFocused?null:r?.focusedUnavailableReason??s.focusedUnavailableReason,s.groupedViewAvailable=r?.groupedViewAvailable??ro(j,{computeCommunities:!0,computeCentrality:!1}).communitiesByNode.size>0,s.groupedViewReason=r?.groupedViewReason??(s.groupedViewAvailable?null:{code:"communities-undetected"}),!t||!j.hasNode(t))return s;const l=!!(o!=="grouped"&&n.has(t))?pn(t,e):{selectedVisibleNeighborIds:cn(t),selectedCollapsedNeighborIds:[]};return s.selectedRootNodeId=t,s.selectedVisibleNeighborIds=l.selectedVisibleNeighborIds,s.selectedCollapsedNeighborIds=l.selectedCollapsedNeighborIds,s}function xc(t,e,o=[],r=!1){const a=new Jr({type:"directed",multi:!0,allowSelfLoops:!1}),n=cn(t).slice(0,$r),s=r?pn(t,e):{selectedVisibleNeighborIds:n},i=n.filter(f=>s.selectedVisibleNeighborIds.includes(f)),l=new Set([t,...i]),u=new Set(i.slice(0,Nl)),d=new Set(e),c=no(j,e,o),p=(f,y)=>{a.hasNode(f)||a.addNode(f,y)},b=j.getNodeAttributes(t),m=qr(E,"inspection","selected",b,b.label);return p(t,{...b,x:Number.isFinite(b.x)?b.x:0,y:Number.isFinite(b.y)?b.y:0,color:m.color,size:Math.max(m.size,22),baseColor:m.color,semanticBaseColor:wr(b),baseSize:Math.max(m.size,22),label:m.label}),i.forEach((f,y)=>{const h=j.getNodeAttributes(f),v=Math.floor(y/jr),x=y%jr,g=Math.min(jr,n.length-v*jr),w=wl*(v+1),C=Math.PI*2*x/g-Math.PI/2,I=d.has(f)?"path":u.has(f)?"neighbor":"default",k=qr(E,"inspection",I,{...h,labelPriority:u.has(f)||d.has(f)?Math.max(Number(h.labelPriority??0),1):0},h.label);p(f,{...h,x:Number.isFinite(h.x)?h.x:Math.cos(C)*w,y:Number.isFinite(h.y)?h.y:Math.sin(C)*w,color:k.color,size:Math.max(k.size,8.5),baseColor:k.color,semanticBaseColor:wr(h),baseSize:Math.max(k.size,8.5),label:k.label})}),Ja(j,l).forEach(f=>{if(!j.hasEdge(f))return;const[y,h]=j.extremities(f);if(!l.has(y)||!l.has(h)||y===h){Xa&&console.debug("[graphSceneState]","focused-edge-skipped-invalid-endpoints",{edgeId:f,source:y,target:h,selectedNodeId:t});return}const v=j.getEdgeAttributes(f),x=c.has(f)?"path":y===t||h===t?"selected":"neighbor",g=dn(E,"inspection",x,v,y,h,"focused",f);a.mergeDirectedEdgeWithKey(f,y,h,{...v,type:g.type,size:g.size,color:g.color,baseSize:g.size,baseColor:g.color,curvature:g.curvature})}),Kr(a)}function Hr(t,e,o,r,a){const n=a?.aggregationEnabled??!0,s=new Set(Array.from(a?.collapsedNeighborhoodNodeIds??[]).filter(p=>typeof p=="string")),i=ai(t,e,r,{aggregationEnabled:n,collapsedNeighborhoodNodeIds:s,groupedViewAvailable:a?.groupedViewAvailable}),l=r==="focused"&&!!t&&j.hasNode(t),u=r==="grouped",d=!!(t&&s.has(t));if(u){const p=vc();return{graph:p.graph,state:{...p.state,selectedRootNodeId:i.selectedRootNodeId,selectedVisibleNeighborIds:i.selectedVisibleNeighborIds,selectedCollapsedNeighborIds:i.selectedCollapsedNeighborIds,groupedViewReason:p.state.groupedViewReason,selectedNodeKind:i.selectedNodeKind,canActivateFocused:i.canActivateFocused,resolvedFocusedNodeId:i.resolvedFocusedNodeId,focusedUnavailableReason:i.focusedUnavailableReason},meta:p.meta}}if(l&&t)return{graph:xc(t,e,o,d),state:i,meta:yr};const c=d&&t?yc(t,e):j;return{graph:n?Kr(c):c,state:i,meta:n?yr:c===j?_l:yr}}function Sc(t,e,o,r,a,n,s,i,l){return{hoveredNodeId:t,selectedNodeId:e,selectedEdgeId:r,focusedNodeId:o,activePath:a,activePathEdgeIds:n,viewMode:s,zoomTier:i,isLayoutRunning:l}}function wc(t,e,o,r=96){return t.x>=-r&&t.y>=-r&&t.x<=e+r&&t.y<=o+r}function hn(t,e,o,r,a){const n=t.createRadialGradient(e,o,0,e,o,r);n.addColorStop(0,a),n.addColorStop(1,"rgba(0,0,0,0)"),t.fillStyle=n,t.beginPath(),t.arc(e,o,r,0,Math.PI*2),t.fill()}function fn(t,e){const o=document.createElement("canvas");return o.width=t,o.height=e,o}function ii(t){if(t.startsWith("#")){const o=t.slice(1),r=o.length===3?o.split("").map(a=>`${a}${a}`).join(""):o;if(r.length===6)return{r:Number.parseInt(r.slice(0,2),16),g:Number.parseInt(r.slice(2,4),16),b:Number.parseInt(r.slice(4,6),16)}}const e=t.match(/rgba?\((\d+),\s*(\d+),\s*(\d+)/i);return e?{r:Number.parseInt(e[1],10),g:Number.parseInt(e[2],10),b:Number.parseInt(e[3],10)}:{r:130,g:145,b:165}}function Mo(t,e,o,r){const a=new Uint8Array(e*o);let n=0,s=0,i=0,l=0;for(let d=0;d<o;d+=1)for(let c=0;c<e;c+=1){const p=d*e+c,b=t[p];b<r||(a[p]=1,n+=1,s+=c*b,i+=d*b,l+=b)}const u=l>0?{x:s/l,y:i/l}:{x:e/2,y:o/2};return{mask:a,count:n,centroid:u}}function Nc(t,e,o,r){if(r<=0)return t;let a=t;for(let n=0;n<r;n+=1){const s=new Uint8ClampedArray(e*o);for(let i=0;i<o;i+=1)for(let l=0;l<e;l+=1){let u=0,d=0;for(let c=-1;c<=1;c+=1){const p=i+c;if(!(p<0||p>=o))for(let b=-1;b<=1;b+=1){const m=l+b;m<0||m>=e||(u+=a[p*e+m],d+=1)}}s[i*e+l]=Math.round(u/Math.max(d,1))}a=s}return a}function Ro(t,e,o,r){const a=new Uint8Array(t.length),n=new Int32Array(t.length);let s=[],i=0;for(let p=0;p<t.length;p+=1){if(!t[p]||a[p])continue;let b=0,m=0;const f=[];for(a[p]=1,n[m++]=p;b<m;){const y=n[b++];f.push(y);const h=y%e,v=Math.floor(y/e),x=[y-1,y+1,y-e,y+e];for(let g=0;g<x.length;g+=1){const w=x[g];w<0||w>=t.length||a[w]||!t[w]||g===0&&h===0||g===1&&h===e-1||g===2&&v===0||g===3&&v===o-1||(a[w]=1,n[m++]=w)}}i+=f.length,f.length>s.length&&(s=f)}const l=new Uint8Array(t.length);let u=0,d=0,c=0;return s.forEach(p=>{l[p]=1;const b=r[p],m=p%e,f=Math.floor(p/e);u+=m*b,d+=f*b,c+=b}),{mask:l,count:s.length,centroid:c>0?{x:u/c,y:d/c}:{x:e/2,y:o/2},occupancyRatio:s.length/Math.max(e*o,1),dominantMassRatio:s.length/Math.max(i,1)}}function Ec(t,e,o){const r=E.effects.semanticRegions.fogResolutionScale,a=Math.max(72,Math.round(e*r)),n=Math.max(72,Math.round(o*r)),s=fn(a,n),i=s.getContext("2d");if(!i)return null;i.clearRect(0,0,a,n),i.globalCompositeOperation="source-over",t.forEach(b=>{const m=b.point.x*r,f=b.point.y*r,y=Math.max(2.5,(E.effects.semanticRegions.splatRadius+b.size*.9)*r),h=i.createRadialGradient(m,f,0,m,f,y);h.addColorStop(0,"rgba(28, 20, 24,0.05)"),h.addColorStop(.58,"rgba(28, 20, 24,0.02)"),h.addColorStop(1,"rgba(28, 20, 24,0)"),i.fillStyle=h,i.beginPath(),i.arc(m,f,y,0,Math.PI*2),i.fill()});const l=i.getImageData(0,0,a,n),u=new Uint8ClampedArray(a*n);let d=0;for(let b=0;b<u.length;b+=1){const m=l.data[b*4+3];u[b]=m,m>d&&(d=m)}if(d<=0)return null;const c=Nc(u,a,n,E.effects.semanticRegions.blurPasses),p=c.reduce((b,m)=>Math.max(b,m),0);return p<=0?null:{canvas:s,gridWidth:a,gridHeight:n,alphaValues:c,maxAlpha:p,scale:r}}function Ac(t,e,o,r){if(!e)return;const{gridWidth:a,gridHeight:n,alphaValues:s}=e,i=fn(a,n),l=i.getContext("2d");if(!l)return;const u=l.createImageData(a,n),d=ii(o);for(let c=0;c<s.length;c+=1){const p=s[c]/255;if(p<=0)continue;const b=c*4;u.data[b]=d.r,u.data[b+1]=d.g,u.data[b+2]=d.b,u.data[b+3]=Math.round(255*Math.pow(p,1.7)*r)}l.putImageData(u,0,0),t.save(),t.imageSmoothingEnabled=!0,t.globalCompositeOperation="lighter",t.drawImage(i,0,0,t.canvas.width,t.canvas.height),t.restore()}function xa(t,e,o,r,a,n){const s=fn(o,r),i=s.getContext("2d");if(!i)return;const l=i.createImageData(o,r),u=ii(a);for(let d=1;d<r-1;d+=1)for(let c=1;c<o-1;c+=1){const p=d*o+c;if(!e[p]||!(!e[p-1]||!e[p+1]||!e[p-o]||!e[p+o]))continue;const m=p*4;l.data[m]=u.r,l.data[m+1]=u.g,l.data[m+2]=u.b,l.data[m+3]=Math.round(255*n)}i.putImageData(l,0,0),t.save(),t.imageSmoothingEnabled=!0,t.drawImage(s,0,0,t.canvas.width,t.canvas.height),t.restore()}function kc(t){return{fogColor:dt("#f7f8f8",t,.46),innerContourColor:dt("#fafafa",t,.78),outerContourColor:dt("#f8f9f9",t,.6),labelBorderColor:dt("#2b3f57",t,.78)}}function Sa(t,e,o,r){const a=[];return e.forEachNode((n,s)=>{const i=t.getNodeDisplayData(n);if(!i)return;const l=t.graphToViewport({x:i.x,y:i.y});wc(l,o,r,84)&&a.push({nodeId:n,point:l,size:i.size,attrs:s})}),a}function Cc(t,e,o,r,a){const n=r.length>22?`${r.slice(0,21)}…`:r;t.save(),t.font='600 11px "IBM Plex Sans", Inter, system-ui, sans-serif',t.textBaseline="middle";const s=t.measureText(n).width+14,i=22,l=e-s/2,u=o-i/2;t.fillStyle="rgba(255, 255, 255, 0.84)",t.strokeStyle=K(a,.24),t.lineWidth=1,t.beginPath(),t.roundRect(l,u,s,i,999),t.fill(),t.stroke(),t.fillStyle="rgba(235, 244, 255, 0.88)",t.fillText(n,l+7,o),t.restore()}function Ic(t,e,o,r,a){if(!a.semanticRegionsEnabled||!e?.semanticRegions.ready||!xt(r.zoomTier,E.effects.semanticRegions.minZoomTier))return;const n=new Map;o.forEach(u=>{const d=String(u.attrs.semanticGroup||u.attrs.nodeType||"entity"),c=n.get(d);c?c.push(u):n.set(d,[u])});const s=e.semanticRegions.summaries.slice(0,E.effects.semanticRegions.maxRegions),i=s.reduce((u,d)=>Math.max(u,d.prominence),1),l=E.effects.semanticRegions;s.forEach(u=>{const d=n.get(u.semanticGroup);if(!d||d.length<l.minVisibleSamples)return;const c=Ec(d,t.canvas.width,t.canvas.height);if(!c)return;const p=.52+u.prominence/i*.48,b=Math.max(18,c.maxAlpha*l.densityThreshold),m=Math.max(28,c.maxAlpha*l.contourThreshold),f=Math.max(18,m*.72),y=Mo(c.alphaValues,c.gridWidth,c.gridHeight,b),h=Ro(y.mask,c.gridWidth,c.gridHeight,c.alphaValues);if(h.count<l.minMaskPixels||h.occupancyRatio<l.minOccupancyRatio||h.dominantMassRatio<l.dominantMassRatio)return;const v=Mo(c.alphaValues,c.gridWidth,c.gridHeight,m),x=Mo(c.alphaValues,c.gridWidth,c.gridHeight,f),g=Ro(v.mask,c.gridWidth,c.gridHeight,c.alphaValues),w=Ro(x.mask,c.gridWidth,c.gridHeight,c.alphaValues),C=kc(u.color);if(Ac(t,c,C.fogColor,l.fogAlpha*p),w.count>=l.outerContourMinMaskPixels&&w.dominantMassRatio>=l.dominantMassRatio&&xa(t,w.mask,c.gridWidth,c.gridHeight,C.outerContourColor,l.outerContourAlpha*p),xa(t,g.mask,c.gridWidth,c.gridHeight,C.innerContourColor,l.innerContourAlpha*p),u.visibleNodeCount>=18){const I=h.centroid.x/c.scale,k=h.centroid.y/c.scale-18;Cc(t,I,k,u.semanticGroup,C.labelBorderColor)}})}function Dc(t,e,o,r,a){if(!a.contoursEnabled||!e?.centrality.ready||!xt(r.zoomTier,E.effects.contours.minZoomTier))return;const n=new Map(o.map(s=>[s.nodeId,s]));e.centrality.topNodes.slice(0,E.effects.contours.maxContours).forEach(s=>{const i=n.get(s.id);i&&hn(t,i.point.x,i.point.y,E.effects.contours.baseRadius+i.size*3.2,K(s.color,E.effects.contours.glowAlpha))})}function _c(t,e){if(!e||!t.valid_from&&!t.valid_until)return!1;const o=e.getTime(),r=t.valid_from?new Date(t.valid_from).getTime():Number.NEGATIVE_INFINITY,a=t.valid_until?new Date(t.valid_until).getTime():Number.POSITIVE_INFINITY;return o>=r&&o<=a}function Gc(t,e,o,r,a){!a.temporalEmphasisEnabled||!o?.currentTime||xt(r.zoomTier,E.effects.temporalEmphasis.minZoomTier)&&e.filter(n=>_c(n.attrs,o.currentTime)).slice(0,E.effects.temporalEmphasis.maxHighlights).forEach(n=>{hn(t,n.point.x,n.point.y,Math.max(n.size*E.effects.temporalEmphasis.radiusMultiplier,14),K(E.palette.accent.temporal,E.effects.temporalEmphasis.glowAlpha))})}function Lc(t,e,o,r){const a=e.getNodeDisplayData(o);if(!a)return;const n=e.graphToViewport({x:a.x,y:a.y});hn(t,n.x,n.y,E.effects.lens.radius,K(E.palette.accent.hovered,E.effects.lens.glowAlpha)),r.forEach(s=>{if(s===o||!j.hasNode(s)||!j.hasDirectedEdge(o,s)&&!j.hasDirectedEdge(s,o))return;const i=e.getNodeDisplayData(s);if(!i)return;const l=e.graphToViewport({x:i.x,y:i.y});t.strokeStyle=K(E.palette.accent.hovered,E.effects.lens.edgeAlpha*.38),t.lineWidth=E.effects.lens.edgeLineWidth+3.2,t.lineCap="round",t.beginPath(),t.moveTo(n.x,n.y),t.lineTo(l.x,l.y),t.stroke(),t.strokeStyle=K(E.palette.accent.hovered,E.effects.lens.edgeAlpha),t.lineWidth=E.effects.lens.edgeLineWidth,t.beginPath(),t.moveTo(n.x,n.y),t.lineTo(l.x,l.y),t.stroke()})}function Pc(t,e,o,r,a){o.pathFlowEnabled&&r.pathFlow.available&&e.forEach((n,s)=>{const i=(a*E.effects.pathFlow.speed+s*E.effects.pathFlow.spacing)%1,l=n.source.x+(n.target.x-n.source.x)*i,u=n.source.y+(n.target.y-n.source.y)*i,d=Math.max(0,i-.08),c=n.source.x+(n.target.x-n.source.x)*d,p=n.source.y+(n.target.y-n.source.y)*d;t.strokeStyle=K(n.color,.28),t.lineWidth=Math.max(n.size+3.6,4.6),t.lineCap="round",t.beginPath(),t.moveTo(c,p),t.lineTo(l,u),t.stroke(),t.strokeStyle=K(E.palette.accent.selected,E.effects.pathFlow.opacity),t.lineWidth=Math.max(n.size+1.3,2.4),t.beginPath(),t.moveTo(c,p),t.lineTo(l,u),t.stroke()}),o.pathPulseEnabled&&r.pathPulse.available&&e.forEach((n,s)=>{const i=(a*E.effects.pathPulse.speed+s*.17)%1,l=n.source.x+(n.target.x-n.source.x)*i,u=n.source.y+(n.target.y-n.source.y)*i,d=t.createRadialGradient(l,u,0,l,u,E.effects.pathPulse.radius);d.addColorStop(0,K(E.palette.accent.path,E.effects.pathPulse.glowAlpha)),d.addColorStop(1,"rgba(0,0,0,0)"),t.fillStyle=d,t.beginPath(),t.arc(l,u,E.effects.pathPulse.radius,0,Math.PI*2),t.fill()})}function Mc(t,e){if(typeof t!="object"||!t)return t;var o=t[Symbol.toPrimitive];if(o!==void 0){var r=o.call(t,e);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function si(t){var e=Mc(t,"string");return typeof e=="symbol"?e:e+""}function li(t,e,o){return(e=si(e))in t?Object.defineProperty(t,e,{value:o,enumerable:!0,configurable:!0,writable:!0}):t[e]=o,t}function wa(t,e){var o=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),o.push.apply(o,r)}return o}function Yr(t){for(var e=1;e<arguments.length;e++){var o=arguments[e]!=null?arguments[e]:{};e%2?wa(Object(o),!0).forEach(function(r){li(t,r,o[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(o)):wa(Object(o)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(o,r))})}return t}function Rc(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function jc(t,e){for(var o=0;o<e.length;o++){var r=e[o];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,si(r.key),r)}}function Hc(t,e,o){return e&&jc(t.prototype,e),Object.defineProperty(t,"prototype",{writable:!1}),t}function Xr(t){return Xr=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},Xr(t)}function ci(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(ci=function(){return!!t})()}function ui(t){if(t===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function Tc(t,e){if(e&&(typeof e=="object"||typeof e=="function"))return e;if(e!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return ui(t)}function Wc(t,e,o){return e=Xr(e),Tc(t,ci()?Reflect.construct(e,o||[],Xr(t).constructor):e.apply(t,o))}function Fo(t,e){return Fo=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(o,r){return o.__proto__=r,o},Fo(t,e)}function zc(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&Fo(t,e)}function $o(t,e){(e==null||e>t.length)&&(e=t.length);for(var o=0,r=Array(e);o<e;o++)r[o]=t[o];return r}function Vc(t){if(Array.isArray(t))return $o(t)}function Uc(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function Oc(t,e){if(t){if(typeof t=="string")return $o(t,e);var o={}.toString.call(t).slice(8,-1);return o==="Object"&&t.constructor&&(o=t.constructor.name),o==="Map"||o==="Set"?Array.from(t):o==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?$o(t,e):void 0}}function Bc(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
|
|
48
|
+
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function jo(t){return Vc(t)||Uc(t)||Oc(t)||Bc()}function di(t,e,o,r){var a=Math.pow(1-t,2)*e.x+2*(1-t)*t*o.x+Math.pow(t,2)*r.x,n=Math.pow(1-t,2)*e.y+2*(1-t)*t*o.y+Math.pow(t,2)*r.y;return{x:a,y:n}}function Fc(t,e,o){for(var r=20,a=0,n=t,s=0;s<r;s++){var i=di((s+1)/r,t,e,o);a+=Math.sqrt(Math.pow(n.x-i.x,2)+Math.pow(n.y-i.y,2)),n=i}return a}function $c(t){var e=t.curvatureAttribute,o=t.defaultCurvature,r=t.keepLabelUpright,a=r===void 0?!0:r;return function(n,s,i,l,u){var d=u.edgeLabelSize,c=s[e]||o,p=u.edgeLabelFont,b=u.edgeLabelWeight,m=u.edgeLabelColor.attribute?s[u.edgeLabelColor.attribute]||u.edgeLabelColor.color||"#000":u.edgeLabelColor.color,f=s.label;if(f){n.fillStyle=m,n.font="".concat(b," ").concat(d,"px ").concat(p);var y=!a||i.x<l.x,h=y?i.x:l.x,v=y?i.y:l.y,x=y?l.x:i.x,g=y?l.y:i.y,w=(h+x)/2,C=(v+g)/2,I=x-h,k=g-v,D=Math.sqrt(Math.pow(I,2)+Math.pow(k,2)),_=y?1:-1,L=w+k*c*_,G=C-I*c*_,V=s.size*.7+5,q={x:G-v,y:-(L-h)},W=Math.sqrt(Math.pow(q.x,2)+Math.pow(q.y,2)),F={x:g-G,y:-(x-L)},ee=Math.sqrt(Math.pow(F.x,2)+Math.pow(F.y,2));h+=V*q.x/W,v+=V*q.y/W,x+=V*F.x/ee,g+=V*F.y/ee,L+=V*k/D,G-=V*I/D;var U={x:L,y:G},T={x:h,y:v},P={x,y:g},z=Fc(T,U,P);if(!(z<i.size+l.size)){var te=n.measureText(f).width,Q=z-i.size-l.size;if(te>Q){var B="…";for(f=f+B,te=n.measureText(f).width;te>Q&&f.length>1;)f=f.slice(0,-2)+B,te=n.measureText(f).width;if(f.length<4)return}for(var le={},J=0,re=f.length;J<re;J++){var ce=f[J];le[ce]||(le[ce]=n.measureText(ce).width*(1+c*.35))}for(var ue=.5-te/z/2,ge=0,se=f.length;ge<se;ge++){var Ce=f[ge],_e=di(ue,T,U,P),be=2*(1-ue)*(L-h)+2*ue*(x-L),Me=2*(1-ue)*(G-v)+2*ue*(g-G),we=Math.atan2(Me,be);n.save(),n.translate(_e.x,_e.y),n.rotate(we),n.fillText(Ce,0,0),n.restore(),ue+=le[Ce]/z}}}}}function qc(t){var e=t.arrowHead,o=e?.extremity==="target"||e?.extremity==="both",r=e?.extremity==="source"||e?.extremity==="both",a=`
|
|
49
49
|
precision highp float;
|
|
50
50
|
|
|
51
51
|
varying vec4 v_color;
|
|
@@ -230,7 +230,7 @@ void main() {
|
|
|
230
230
|
|
|
231
231
|
v_color.a *= bias;
|
|
232
232
|
}
|
|
233
|
-
`);return a}var pi=.25,Yc={arrowHead:null,curvatureAttribute:"curvature",defaultCurvature:pi},hi=WebGLRenderingContext,Na=hi.UNSIGNED_BYTE,Pt=hi.FLOAT;function mn(t){var e=Yr(Yr({},Yc),t||{}),o=e,r=o.arrowHead,a=o.curvatureAttribute,n=o.drawLabel,s=r?.extremity==="target"||r?.extremity==="both",i=r?.extremity==="source"||r?.extremity==="both",l=["u_matrix","u_sizeRatio","u_dimensions","u_pixelRatio","u_feather","u_minEdgeThickness"].concat(jo(r?["u_lengthToThicknessRatio","u_widenessToThicknessRatio"]:[]));return(function(u){zc(d,u);function d(){var c;Rc(this,d);for(var p=arguments.length,b=new Array(p),m=0;m<p;m++)b[m]=arguments[m];return c=Wc(this,d,[].concat(b)),li(ui(c),"drawLabel",n||$c(e)),c}return Hc(d,[{key:"getDefinition",value:function(){return{VERTICES:6,VERTEX_SHADER_SOURCE:Kc(e),FRAGMENT_SHADER_SOURCE:qc(e),METHOD:WebGLRenderingContext.TRIANGLES,UNIFORMS:l,ATTRIBUTES:[{name:"a_source",size:2,type:Pt},{name:"a_target",size:2,type:Pt}].concat(jo(s?[{name:"a_targetSize",size:1,type:Pt}]:[]),jo(i?[{name:"a_sourceSize",size:1,type:Pt}]:[]),[{name:"a_thickness",size:1,type:Pt},{name:"a_curvature",size:1,type:Pt},{name:"a_color",size:4,type:Na,normalized:!0},{name:"a_id",size:4,type:Na,normalized:!0}]),CONSTANT_ATTRIBUTES:[{name:"a_current",size:1,type:Pt},{name:"a_direction",size:1,type:Pt}],CONSTANT_DATA:[[0,1],[0,-1],[1,1],[0,-1],[1,1],[1,-1]]}}},{key:"processVisibleItem",value:function(p,b,m,f,y){var h,v=y.size||1,x=m.x,g=m.y,w=f.x,C=f.y,I=
|
|
233
|
+
`);return a}var pi=.25,Yc={arrowHead:null,curvatureAttribute:"curvature",defaultCurvature:pi},hi=WebGLRenderingContext,Na=hi.UNSIGNED_BYTE,Pt=hi.FLOAT;function mn(t){var e=Yr(Yr({},Yc),t||{}),o=e,r=o.arrowHead,a=o.curvatureAttribute,n=o.drawLabel,s=r?.extremity==="target"||r?.extremity==="both",i=r?.extremity==="source"||r?.extremity==="both",l=["u_matrix","u_sizeRatio","u_dimensions","u_pixelRatio","u_feather","u_minEdgeThickness"].concat(jo(r?["u_lengthToThicknessRatio","u_widenessToThicknessRatio"]:[]));return(function(u){zc(d,u);function d(){var c;Rc(this,d);for(var p=arguments.length,b=new Array(p),m=0;m<p;m++)b[m]=arguments[m];return c=Wc(this,d,[].concat(b)),li(ui(c),"drawLabel",n||$c(e)),c}return Hc(d,[{key:"getDefinition",value:function(){return{VERTICES:6,VERTEX_SHADER_SOURCE:Kc(e),FRAGMENT_SHADER_SOURCE:qc(e),METHOD:WebGLRenderingContext.TRIANGLES,UNIFORMS:l,ATTRIBUTES:[{name:"a_source",size:2,type:Pt},{name:"a_target",size:2,type:Pt}].concat(jo(s?[{name:"a_targetSize",size:1,type:Pt}]:[]),jo(i?[{name:"a_sourceSize",size:1,type:Pt}]:[]),[{name:"a_thickness",size:1,type:Pt},{name:"a_curvature",size:1,type:Pt},{name:"a_color",size:4,type:Na,normalized:!0},{name:"a_id",size:4,type:Na,normalized:!0}]),CONSTANT_ATTRIBUTES:[{name:"a_current",size:1,type:Pt},{name:"a_direction",size:1,type:Pt}],CONSTANT_DATA:[[0,1],[0,-1],[1,1],[0,-1],[1,1],[1,-1]]}}},{key:"processVisibleItem",value:function(p,b,m,f,y){var h,v=y.size||1,x=m.x,g=m.y,w=f.x,C=f.y,I=Or(y.color),k=(h=y[a])!==null&&h!==void 0?h:pi,D=this.array;D[b++]=x,D[b++]=g,D[b++]=w,D[b++]=C,s&&(D[b++]=f.size),i&&(D[b++]=m.size),D[b++]=v,D[b++]=k,D[b++]=I,D[b++]=p}},{key:"setUniforms",value:function(p,b){var m=b.gl,f=b.uniformLocations,y=f.u_matrix,h=f.u_pixelRatio,v=f.u_feather,x=f.u_sizeRatio,g=f.u_dimensions,w=f.u_minEdgeThickness;if(m.uniformMatrix3fv(y,!1,p.matrix),m.uniform1f(h,p.pixelRatio),m.uniform1f(x,p.sizeRatio),m.uniform1f(v,p.antiAliasingFeather),m.uniform2f(g,p.width*p.pixelRatio,p.height*p.pixelRatio),m.uniform1f(w,p.minEdgeThickness),r){var C=f.u_lengthToThicknessRatio,I=f.u_widenessToThicknessRatio;m.uniform1f(C,r.lengthToThicknessRatio),m.uniform1f(I,r.widenessToThicknessRatio)}}}]),d})(qi)}var Xc=mn(),Zc=mn({arrowHead:za});mn({arrowHead:Yr(Yr({},za),{},{extremity:"both"})});const Qc=["u_sizeRatio","u_correctionRatio","u_matrix"],Jc=`
|
|
234
234
|
precision highp float;
|
|
235
235
|
|
|
236
236
|
varying vec4 v_bodyColor;
|
|
@@ -413,7 +413,7 @@ void main() {
|
|
|
413
413
|
|
|
414
414
|
v_color.a *= bias;
|
|
415
415
|
}
|
|
416
|
-
`;class xr extends Xi{static ANGLE_1=0;static ANGLE_2=2*Math.PI/3;static ANGLE_3=4*Math.PI/3;drawLabel=fi;drawHover=mi;getDefinition(){return{VERTICES:3,VERTEX_SHADER_SOURCE:eu,FRAGMENT_SHADER_SOURCE:Jc,METHOD:WebGLRenderingContext.TRIANGLES,UNIFORMS:Qc,ATTRIBUTES:[{name:"a_position",size:2,type:WebGLRenderingContext.FLOAT},{name:"a_size",size:1,type:WebGLRenderingContext.FLOAT},{name:"a_bodyColor",size:4,type:WebGLRenderingContext.UNSIGNED_BYTE,normalized:!0},{name:"a_glyphColor",size:4,type:WebGLRenderingContext.UNSIGNED_BYTE,normalized:!0},{name:"a_outlineColor",size:4,type:WebGLRenderingContext.UNSIGNED_BYTE,normalized:!0},{name:"a_outlineSize",size:1,type:WebGLRenderingContext.FLOAT},{name:"a_glyphScale",size:1,type:WebGLRenderingContext.FLOAT},{name:"a_shapeKind",size:1,type:WebGLRenderingContext.FLOAT},{name:"a_aspectRatio",size:1,type:WebGLRenderingContext.FLOAT},{name:"a_id",size:4,type:WebGLRenderingContext.UNSIGNED_BYTE,normalized:!0}],CONSTANT_ATTRIBUTES:[{name:"a_angle",size:1,type:WebGLRenderingContext.FLOAT}],CONSTANT_DATA:[[xr.ANGLE_1],[xr.ANGLE_2],[xr.ANGLE_3]]}}processVisibleItem(e,o,r){const a=this.array,n=gn(r.ringSize,r.ringColor,r.borderColor,E.nodes.selectedRing.color),s=Math.max(r.ringSize||0,r.borderSize||.7);a[o++]=r.x,a[o++]=r.y,a[o++]=r.size,a[o++]=Br(r.color||E.palette.overview.nodeCore),a[o++]=Br(r.shellColor||K(E.palette.overview.nodeBase,.58)),a[o++]=Br(n),a[o++]=s,a[o++]=r.coreScale??.22,a[o++]=r.entityShapeKind??E.nodes.entityShapes[r.entityShape||"entity"].shapeKind,a[o++]=r.entityAspectRatio??E.nodes.entityShapes[r.entityShape||"entity"].aspectRatio,a[o++]=e}setUniforms(e,{gl:o,uniformLocations:r}){o.uniform1f(r.u_correctionRatio,e.correctionRatio),o.uniform1f(r.u_sizeRatio,e.sizeRatio),o.uniformMatrix3fv(r.u_matrix,!1,e.matrix)}}function gn(t,e,o,r){return typeof t=="number"&&t>0&&e?e:o||r}function Zr(t,e,o,r,a,n){const s=Math.max(0,Math.min(n,Math.min(r,a)/2));t.beginPath(),t.moveTo(e+s,o),t.lineTo(e+r-s,o),t.quadraticCurveTo(e+r,o,e+r,o+s),t.lineTo(e+r,o+a-s),t.quadraticCurveTo(e+r,o+a,e+r-s,o+a),t.lineTo(e+s,o+a),t.quadraticCurveTo(e,o+a,e,o+a-s),t.lineTo(e,o+s),t.quadraticCurveTo(e,o,e+s,o),t.closePath()}const fi=(t,e)=>{const o=e;if(!o.label)return;const r=E.labels.chip,a=Math.max(r.fontSize,Math.min(r.maxFontSize,o.size*r.sizeScale)),n=`${r.fontWeight} ${a}px ${r.fontFamily}`,s=r.paddingX,i=r.paddingY,l=gn(o.ringSize,o.ringColor,o.borderColor,r.borderColor);t.save(),t.font=n,t.textBaseline="middle";const d=t.measureText(o.label).width+s*2,c=a+i*2,p=o.x+Math.max(o.size*.7,r.offsetX),b=o.y-Math.max(o.size*.9,r.offsetY)-c;t.shadowColor=K(r.shadowColor,r.shadowAlpha),t.shadowBlur=r.shadowBlur,t.fillStyle=r.background,Zr(t,p,b,d,c,r.radius),t.fill(),t.shadowBlur=0,t.strokeStyle=K(l,r.borderAlpha),t.lineWidth=1,Zr(t,p,b,d,c,r.radius),t.stroke(),t.fillStyle=r.textColor,t.fillText(o.label,p+s,b+c/2),t.restore()},mi=(t,e)=>{const o=e;if(!o.label)return;const r=E.labels.hoverCard,a=gn(o.ringSize,o.ringColor,o.borderColor,r.borderColor),n=typeof o.nodeType=="string"&&o.nodeType.trim().length>0?o.nodeType.replaceAll("_"," ").toUpperCase():"NODE";t.save(),t.textBaseline="top";const s=`${r.titleWeight} ${r.titleSize}px ${r.fontFamily}`,i=`${r.metaWeight} ${r.metaSize}px ${r.fontFamily}`;t.font=s;const l=t.measureText(o.label).width;t.font=i;const u=t.measureText(n).width,d=Math.max(l,u)+r.paddingX*2,c=r.paddingY*2+r.titleSize+r.metaGap+r.metaSize,p=o.x+Math.max(o.size*.9,r.offsetX),b=o.y-Math.max(o.size*1.1,r.offsetY)-c;t.shadowColor=K(r.shadowColor,r.shadowAlpha),t.shadowBlur=r.shadowBlur,t.fillStyle=r.background,Zr(t,p,b,d,c,r.radius),t.fill(),t.shadowBlur=0,t.strokeStyle=K(a,r.borderAlpha),t.lineWidth=1.2,Zr(t,p,b,d,c,r.radius),t.stroke(),t.fillStyle=r.textColor,t.font=s,t.fillText(o.label,p+r.paddingX,b+r.paddingY),t.fillStyle=r.metaColor,t.font=i,t.fillText(n,p+r.paddingX,b+r.paddingY+r.titleSize+r.metaGap),t.restore()},tu={...Yi,circle:xr},ru={...Ki,curve:Xc,curvedArrow:Zc};function ou({mode:t,viewMode:e,isLayoutRunning:o,edgeDiagnostics:r,minimumLiteralEdges:a}){return t==="off"?{enabled:!1,disabledReason:"disabled"}:e!=="full"?{enabled:!1,disabledReason:"non-full-mode"}:o?{enabled:!1,disabledReason:"layout-running"}:t==="auto"&&(r?.counts.backbone??0)+(r?.counts.bridge??0)>=a?{enabled:!1,disabledReason:"enough-literal-edges"}:{enabled:!0,disabledReason:null}}function Ea(t){return Number.isFinite(Number(t.x))&&Number.isFinite(Number(t.y))}function nu(t){return Math.max(0,Math.min(1,Number(t.visualPriority??t.weight??0)))}function au(t,e){return(t==="bridge"?2:1)+e}function iu(t,e,o){const r=`${t}|${e}|${o}`;let a=0;for(let n=0;n<r.length;n+=1)a=a*31+r.charCodeAt(n)|0;return a%2===0?1:-1}function su({graphVersion:t,zoomTier:e,layoutSettledEpoch:o,overviewBackboneEdgeIds:r}){return[t,e,o,Array.from(r).sort().join(",")].join("|")}function lu({graphRef:t,cacheKey:e,classifyEdge:o,maxCurves:r,curveStrength:a}){const n=[];t.forEachEdge((i,l,u,d)=>{const c=String(i),p=o(c);if(p!=="bridge"&&p!=="backbone")return;const b=String(u),m=String(d);if(!t.hasNode(b)||!t.hasNode(m))return;const f=t.getNodeAttributes(b),y=t.getNodeAttributes(m);if(!Ea(f)||!Ea(y))return;const h=nu(l);n.push({edgeId:c,sourceId:b,targetId:m,source:{x:Number(f.x),y:Number(f.y)},target:{x:Number(y.x),y:Number(y.y)},edgeClass:p,priority:h,curvature:iu(b,m,c)*a,rank:au(p,h)})}),n.sort((i,l)=>l.rank!==i.rank?l.rank-i.rank:i.edgeId.localeCompare(l.edgeId));const s=n.slice(0,r).map(({rank:i,...l})=>l);return{cacheKey:e,curves:s,bridgeCurveCount:s.filter(i=>i.edgeClass==="bridge").length,backboneCurveCount:s.filter(i=>i.edgeClass==="backbone").length}}function Aa({gate:t,cache:e,minimumCurves:o,canvasAvailable:r,lastDrawAt:a}){return t.enabled?r?!e||e.curves.length===0?{enabled:!1,disabledReason:"no-eligible-edges",curveCount:0,bridgeCurveCount:0,backboneCurveCount:0,cacheKey:e?.cacheKey??"",lastDrawAt:a}:e.curves.length<o?{enabled:!1,disabledReason:"cache-empty",curveCount:e.curves.length,bridgeCurveCount:e.bridgeCurveCount,backboneCurveCount:e.backboneCurveCount,cacheKey:e.cacheKey,lastDrawAt:a}:{enabled:!0,disabledReason:null,curveCount:e.curves.length,bridgeCurveCount:e.bridgeCurveCount,backboneCurveCount:e.backboneCurveCount,cacheKey:e.cacheKey,lastDrawAt:a}:{enabled:!1,disabledReason:"invalid-layer",curveCount:0,bridgeCurveCount:0,backboneCurveCount:0,cacheKey:e?.cacheKey??"",lastDrawAt:a}:{enabled:!1,disabledReason:t.disabledReason,curveCount:0,bridgeCurveCount:0,backboneCurveCount:0,cacheKey:e?.cacheKey??"",lastDrawAt:a}}function ka(t){if(!t)return;const e=t.getContext("2d");e&&(e.setTransform(1,0,0,1,0,0),e.clearRect(0,0,t.width,t.height))}function cu({sigma:t,canvas:e,cache:o}){const r=e.getContext("2d");if(!r)return!1;const{width:a,height:n}=t.getDimensions(),s=window.devicePixelRatio||1;r.setTransform(s,0,0,s,0,0),r.clearRect(0,0,a,n),r.lineCap="round",r.lineJoin="round";let i=0;for(const l of o.curves){const u=t.getNodeDisplayData(l.sourceId),d=t.getNodeDisplayData(l.targetId);if(!u||!d||u.hidden||d.hidden)continue;const c=t.graphToViewport(l.source),p=t.graphToViewport(l.target);if(!Number.isFinite(c.x)||!Number.isFinite(c.y)||!Number.isFinite(p.x)||!Number.isFinite(p.y))continue;const b=p.x-c.x,m=p.y-c.y,f=Math.hypot(b,m);if(f<=0)continue;const y=-m/f,h=b/f,v=f*l.curvature,x=(c.x+p.x)/2+y*v,g=(c.y+p.y)/2+h*v,w=E.edges.fullGraphStructureLayer;r.beginPath(),r.strokeStyle=l.edgeClass==="bridge"?K(E.palette.muted.edgeFocus,w.bridgeAlpha):K(E.palette.muted.edgeStructure,w.backboneAlpha),r.lineWidth=l.edgeClass==="bridge"?w.bridgeLineWidth:w.backboneLineWidth,r.moveTo(c.x,c.y),r.quadraticCurveTo(x,g,p.x,p.y),r.stroke(),i+=1}return i>0}const uu={iterations:50,settings:{barnesHutOptimize:!0,barnesHutTheta:.5,adjustSizes:!1,gravity:.16,scalingRatio:7.5,edgeWeightInfluence:.3,linLogMode:!0,strongGravityMode:!1,slowDown:18}},du=4500,pu={iterations:E.grouped.layout.iterations,settings:{barnesHutOptimize:!0,barnesHutTheta:.5,adjustSizes:!0,gravity:E.grouped.layout.gravity,scalingRatio:E.grouped.layout.scalingRatio,edgeWeightInfluence:E.grouped.layout.edgeWeightInfluence,linLogMode:!1,strongGravityMode:!1,slowDown:E.grouped.layout.slowDown}},hu={allowInvalidContainer:!0,labelRenderedSizeThreshold:6,defaultNodeType:"circle",defaultEdgeType:"line",hideLabelsOnMove:!0,hideEdgesOnMove:!0,enableEdgeEvents:!0,renderEdgeLabels:!0,labelDensity:.7,labelGridCellSize:140,zIndex:!0,minCameraRatio:.04,maxCameraRatio:8,webGLTarget:"webgl2",nodeProgramClasses:tu,edgeProgramClasses:ru,defaultDrawNodeLabel:fi,defaultDrawNodeHover:mi};function ye(t,e){console.debug(`[GraphCanvas] ${t}`,e??{})}function fu(t,e){let o=0;return t.forEachNode((r,a)=>{if(!e.hasNode(r))return;const n=e.getNodeAttributes(r),s=Number(n.x),i=Number(n.y),l=a;if(!Number.isFinite(s)||!Number.isFinite(i))return;const u=Number(l.x),d=Number(l.y);Math.abs(u-s)<=.001&&Math.abs(d-i)<=.001||(t.mergeNodeAttributes(r,{x:s,y:i}),o+=1)}),o}function mu(t,e){if(!e)return null;if(t.hasNode(e))return e;let o=null;return t.forEachNode((r,a)=>{if(o)return;const n=a.properties?.__communityGroup;if(n){if(n.anchorNodeId===e){o=r;return}(n.sampleNodeIds?.includes(e)||n.memberNodeIds?.includes(e))&&(o=r)}}),o}function Ca(t,e,o){if(!o)return[];const r=mu(t,o);if(!r)return[];const a=(e?.selectedVisibleNeighborIds??[]).filter(n=>t.hasNode(n)).slice(0,E.focus.maxNeighbors);return Array.from(new Set([r,...a]))}function gu(t,e){return t?t.graphVersion===e.graphVersion&&t.viewMode===e.viewMode&&t.layoutMode===e.layoutMode&&t.displayGraph===e.displayGraph:!1}function qo(t,e){let o=1/0,r=-1/0,a=1/0,n=-1/0,s=0;return e.forEach(i=>{const l=t.getNodeDisplayData(i);if(!l)return;const u=Number(l.x),d=Number(l.y);!Number.isFinite(u)||!Number.isFinite(d)||(o=Math.min(o,u),r=Math.max(r,u),a=Math.min(a,d),n=Math.max(n,d),s+=1)}),s===0?null:{minX:o,maxX:r,minY:a,maxY:n,count:s}}function Ia(t,e){const o=[];return e.forEachNode(r=>{o.push(r)}),qo(t,o)}function bu(t,e){const o=t.getCamera(),r=o.getState(),a=t.viewRectangle(),n=Math.abs(a.x2-a.x1),s=Math.abs(a.height),i=Math.abs(e.x[1]-e.x[0]),l=Math.abs(e.y[1]-e.y[0]),u=(e.x[0]+e.x[1])/2,d=(e.y[0]+e.y[1])/2;if(![n,s,i,l,u,d].every(Number.isFinite)||n<=0||s<=0||i<=0||l<=0)return null;const c=Math.max(i/n,l/s),p=o.getBoundedRatio(r.ratio*c);return!Number.isFinite(p)||p<=0?null:{x:u,y:d,ratio:p,angle:r.angle}}function Da(t,e,o){const r=o?.paddingRatio??.12,a=o?.minSpanRatio??.03,n=o?.minSpanFloor??1,s=Math.max(e?e.maxX-e.minX:0,n),i=Math.max(e?e.maxY-e.minY:0,n),l=Math.max(t.maxX-t.minX,0),u=Math.max(t.maxY-t.minY,0),d=Math.max(s*a,n),c=Math.max(i*a,n),p=Math.max(l,d),b=Math.max(u,c),m=(t.minX+t.maxX)/2,f=(t.minY+t.maxY)/2;if(![p,b,m,f].every(Number.isFinite))return null;const y=p*(1+r*2),h=b*(1+r*2);return y<=0||h<=0?null:{x:[m-y/2,m+y/2],y:[f-h/2,f+h/2]}}function Ko(t,e,o,r=96){return t.x>=-r&&t.y>=-r&&t.x<=e+r&&t.y<=o+r}function gi(t,e,o,r,a,n){const s=[];for(let i=0;i<e.length-1;i+=1){const l=e[i],u=e[i+1],d=t.getNodeDisplayData(l),c=t.getNodeDisplayData(u);if(!d||!c)continue;const p=t.graphToViewport({x:d.x,y:d.y}),b=t.graphToViewport({x:c.x,y:c.y});if(!Ko(p,a,n)&&!Ko(b,a,n))continue;const m=o[i]&&j.hasEdge(o[i])?j.getEdgeAttributes(o[i]):{baseColor:E.palette.accent.path,baseSize:1.2,edgeVariant:"pathSignal",arrowVisibilityPolicy:"always"},f=dn(E,r,"path",m,l,u);!f.color||!f.size||s.push({sourceId:l,targetId:u,source:p,target:b,color:f.color,size:f.size})}return s}function _a(t,e,o,r,a,n,s,i){const l=n?gi(n,t.activePath,t.activePathEdgeIds,t.zoomTier,s,i).length:0,u=t.activePath.length>1,d=xt(t.zoomTier,E.effects.pathPulse.minZoomTier),c=xt(t.zoomTier,E.effects.pathFlow.minZoomTier),p=xt(t.zoomTier,E.effects.lens.minZoomTier),b=xt(t.zoomTier,E.effects.temporalEmphasis.minZoomTier),m=xt(t.zoomTier,E.effects.semanticRegions.minZoomTier),f=xt(t.zoomTier,E.effects.contours.minZoomTier),y=!!(t.hoveredNodeId||t.selectedNodeId),h="Layout is still settling",v=e.pathPulseEnabled?a?{enabled:!0,available:!1,reason:h}:u?d?l===0?{enabled:!0,available:!1,reason:"Path is off-screen"}:l>E.effects.pathPulse.maxSegments?{enabled:!0,available:!1,reason:"Disabled by path size cap",detail:`${l} visible segments`,visibleSegments:l,segmentCap:E.effects.pathPulse.maxSegments}:{enabled:!0,available:!0,reason:"Ready",visibleSegments:l,segmentCap:E.effects.pathPulse.maxSegments}:{enabled:!0,available:!1,reason:"Disabled by zoom tier",detail:`Requires ${E.effects.pathPulse.minZoomTier}`}:{enabled:!0,available:!1,reason:"No active path"}:{enabled:!1,available:!1,reason:"Disabled by toggle"},x=e.pathFlowEnabled?a?{enabled:!0,available:!1,reason:h}:u?c?l===0?{enabled:!0,available:!1,reason:"Path is off-screen"}:l>E.effects.pathFlow.maxSegments?{enabled:!0,available:!1,reason:"Disabled by path size cap",detail:`${l} visible segments`,visibleSegments:l,segmentCap:E.effects.pathFlow.maxSegments}:{enabled:!0,available:!0,reason:"Ready",visibleSegments:l,segmentCap:E.effects.pathFlow.maxSegments}:{enabled:!0,available:!1,reason:"Disabled by zoom tier",detail:`Requires ${E.effects.pathFlow.minZoomTier}`}:{enabled:!0,available:!1,reason:"No active path"}:{enabled:!1,available:!1,reason:"Disabled by toggle"},g=e.lensEnabled?a?{enabled:!0,available:!1,reason:h}:y?p?{enabled:!0,available:!0,reason:"Ready"}:{enabled:!0,available:!1,reason:"Disabled by zoom tier",detail:`Requires ${E.effects.lens.minZoomTier}`}:{enabled:!0,available:!1,reason:"No focal node"}:{enabled:!1,available:!1,reason:"Disabled by toggle"},w=e.temporalEmphasisEnabled?a?{enabled:!0,available:!1,reason:h}:o?.currentTime?b?{enabled:!0,available:!0,reason:"Ready"}:{enabled:!0,available:!1,reason:"Disabled by zoom tier",detail:`Requires ${E.effects.temporalEmphasis.minZoomTier}`}:{enabled:!0,available:!1,reason:"No temporal focus time"}:{enabled:!1,available:!1,reason:"Disabled by toggle"},C=e.semanticRegionsEnabled?a?{enabled:!0,available:!1,reason:h}:m?r?.semanticRegions.ready?{enabled:!0,available:!0,reason:r.semanticRegions.reason}:{enabled:!0,available:!1,reason:r?.semanticRegions.reason??"Waiting for semantic region summaries"}:{enabled:!0,available:!1,reason:"Disabled by zoom tier",detail:`Requires ${E.effects.semanticRegions.minZoomTier}`}:{enabled:!1,available:!1,reason:"Disabled by toggle"},I=e.contoursEnabled?a?{enabled:!0,available:!1,reason:h}:f?r?.centrality.ready?{enabled:!0,available:!0,reason:r.centrality.reason}:{enabled:!0,available:!1,reason:r?.centrality.reason??"Waiting for centrality ranking"}:{enabled:!0,available:!1,reason:"Disabled by zoom tier",detail:`Requires ${E.effects.contours.minZoomTier}`}:{enabled:!1,available:!1,reason:"Disabled by toggle"},k=e.pathfindingEnabled?r?.directedPath.ready?{enabled:!0,available:!0,reason:r.directedPath.verifiedAgainstActivePath?"Ready · local path matches traced path":"Ready · local directed path differs from traced path"}:{enabled:!0,available:!1,reason:r?.directedPath.reason??"Waiting for a traced path"}:{enabled:!1,available:!1,reason:"Disabled by toggle"},D=e.communitiesEnabled?r?.communities.ready?{enabled:!0,available:!0,reason:r.communities.modularity!==null?`Ready · modularity ${r.communities.modularity.toFixed(3)}`:r.communities.reason}:{enabled:!0,available:!1,reason:r?.communities.reason??"Waiting for community summaries"}:{enabled:!1,available:!1,reason:"Disabled by toggle"},_=e.centralityEnabled?r?.centrality.ready?{enabled:!0,available:!0,reason:r.centrality.reason}:{enabled:!0,available:!1,reason:r?.centrality.reason??"Waiting for centrality ranking"}:{enabled:!1,available:!1,reason:"Disabled by toggle"},L=e.legendEnabled?{enabled:!0,available:!0,reason:"Panel enabled"}:{enabled:!1,available:!1,reason:"Disabled by toggle"},G=e.edgeLabelsEnabled?{enabled:!0,available:!0,reason:"Ready"}:{enabled:!1,available:!1,reason:"Disabled by toggle"},V=E.effects.diagnostics.enabledInDev?e.diagnosticsEnabled?{enabled:!0,available:!0,reason:"Ready"}:{enabled:!1,available:!1,reason:"Disabled by toggle"}:{enabled:!1,available:!1,reason:"Disabled in production"};return{pathPulse:v,pathFlow:x,lens:g,temporalEmphasis:w,semanticRegions:C,contours:I,pathfinding:k,communities:D,centrality:_,legend:L,edgeLabels:G,diagnostics:V}}function bi(t,e,o,r,a){const n=t.createRadialGradient(e,o,0,e,o,r);n.addColorStop(0,a),n.addColorStop(1,"rgba(0,0,0,0)"),t.fillStyle=n,t.beginPath(),t.arc(e,o,r,0,Math.PI*2),t.fill()}function yu(t,e,o,r,a,n){const s=E.nodes.badges[a],i=E.nodes.badge.radius,l=E.nodes.badge.offset,u=e+Math.max(r*.62,i+l),d=o-Math.max(r*.62,i+l);bi(t,u,d,E.overlays.badgeGlowRadius,K(s.color,E.nodes.badge.glowAlpha)),t.fillStyle=s.color,t.beginPath(),t.arc(u,d,i,0,Math.PI*2),t.fill(),t.strokeStyle=E.nodes.badge.stroke,t.lineWidth=1,t.beginPath(),t.arc(u,d,i,0,Math.PI*2),t.stroke(),t.fillStyle=E.nodes.badge.textColor,t.font=`700 ${E.nodes.badge.fontSize}px Inter, system-ui, sans-serif`,t.textAlign="center",t.textBaseline="middle";const c=a==="provenance"&&n&&n>1?String(Math.min(9,n)):s.label;t.fillText(c,u,d+.5)}const vu=["hidden","backbone","bridge","local-context","selected","path","muted"];function xu(){return vu.reduce((t,e)=>(t[e]=0,t),{})}function Su(t,e){return E.edges.contextCaps[t]?.[e]??0}function wu(t,e,o,r,a,n,s){if(n.has(e)||s&&e===s)return Number.POSITIVE_INFINITY;const i=Math.max(Number(t.weight??t.representativeWeight??1)||1,1),l=Math.min(1,Math.log1p(i)/Math.log(25)),u=Math.max(0,Math.min(Number(t.visualPriority??0),1)),d=Math.max(0,Math.min(Number(t.relationshipStrength??0),1));return(r.has(o)?6:0)+(a.has(o)?1.25:0)+u*2+l*1.4+d}function Nu(t,e,o,r,a){const n=e.hoveredNodeId||e.selectedNodeId;if(!n||!t.hasNode(n))return new Set;const s=Su(e.viewMode,e.zoomTier);if(s<=0&&!e.selectedEdgeId&&a.size===0)return new Set;const i=new Set((o?.selectedVisibleNeighborIds??[]).filter(d=>t.hasNode(d))),l=[];t.edges(n).forEach(d=>{const c=String(d);if(!t.hasEdge(c))return;const[p,b]=t.extremities(c),m=String(p),f=String(b),y=m===n?f:m,h=t.getEdgeAttributes(c);l.push({edgeId:c,score:wu(h,c,y,i,r,a,e.selectedEdgeId)})}),l.sort((d,c)=>c.score!==d.score?c.score-d.score:d.edgeId.localeCompare(c.edgeId));const u=new Set;return l.forEach(d=>{(d.edgeId===e.selectedEdgeId||a.has(d.edgeId)||u.size<s)&&u.add(d.edgeId)}),u}function Eu(t,e,o,r,a){const{viewMode:n,zoomTier:s,hoveredNodeId:i,selectedNodeId:l,selectedEdgeId:u,activePath:d}=e,c=i||l,p=c?t.hasNode(c)?kr(t,c):new Set:new Set,b=no(t,d,e.activePathEdgeIds);return{viewMode:n,zoomTier:s,hoveredNodeId:i,selectedNodeId:l,selectedEdgeId:u,activePath:d,activePathEdgeIds:e.activePathEdgeIds,focusIds:p,edgeEndpointIds:ln(t,u),pathNodeIds:new Set(d),pathEdgeIds:b,overviewBackboneEdgeIds:new Set(r?.overviewBackbone.edgeIds??[]),distanceVisualState:a,highlightedIncidentEdgeIds:Nu(t,e,o,p,b)}}function bn(t,e,o){if(!t.hasEdge(e))return"hidden";const[r,a]=t.extremities(e),n=String(r),s=String(a),i=t.hasNode(n)?t.getNodeAttributes(n):void 0,l=t.hasNode(s)?t.getNodeAttributes(s):void 0;return ic(e,n,s,o.zoomTier,o.hoveredNodeId,o.selectedNodeId,o.selectedEdgeId,o.focusIds,o.pathEdgeIds,o.highlightedIncidentEdgeIds,o.overviewBackboneEdgeIds,i,l)}function Au(t,e){const o=xu();return t.forEachEdge(r=>{const a=e.viewMode==="full"?bn(t,String(r),e):"hidden";o[a]+=1}),{mode:e.viewMode,zoomTier:e.zoomTier,totalEdges:t.size,visibleEdges:t.size-o.hidden,counts:o,updatedAt:Date.now()}}function ku(t,e,o,r){if(t.setSetting("nodeReducer",(a,n)=>{const s=t.getGraph(),i=e.current,l=t.getCamera().getState().ratio;if(!s.hasNode(a))return o.current.missingNodes.has(a)||(o.current.missingNodes.add(a),ye("node-reducer-node-missing",{nodeId:a,order:s.order,size:s.size})),{...n,hidden:!0};const u=n,d=ni(a,i.zoomTier,i.hoveredNodeId,i.selectedNodeId,i.selectedEdgeId,i.focusIds,i.edgeEndpointIds,i.pathNodeIds),c=qr(E,i.zoomTier,d,u,n.label,l),p=i.viewMode==="full"?zl(E,i.zoomTier,c,i.distanceVisualState,String(a)):{},b={...c,...p};return{...n,color:b.color,shellColor:b.shellColor,coreScale:b.coreScale,size:b.size,forceLabel:b.forceLabel,label:b.label,zIndex:b.zIndex,hidden:b.hidden,borderColor:b.borderColor,borderSize:b.borderSize,ringColor:b.showRing?b.ringColor:b.borderColor,ringSize:b.ringSize,entityShape:b.entityShape,entityShapeKind:b.entityShapeKind,entityAspectRatio:b.entityAspectRatio}}),t.setSetting("edgeReducer",(a,n)=>{const s=t.getGraph(),i=e.current;if(!s.hasEdge(a))return o.current.missingEdges.has(a)||(o.current.missingEdges.add(a),ye("edge-reducer-edge-missing",{edgeId:a,order:s.order,size:s.size})),{...n,hidden:!0};const l=n,[u,d]=s.extremities(a),c=String(a),p=!!(i.hoveredNodeId||i.selectedNodeId||i.selectedEdgeId||i.pathEdgeIds.size>0),b=i.viewMode==="full"?bn(s,c,i):void 0,m=i.viewMode==="full"?sc(b??"hidden",{hoveredNodeId:i.hoveredNodeId,hasActiveInteraction:p}):nc(c,String(u),String(d),i.zoomTier,i.hoveredNodeId,i.selectedNodeId,i.selectedEdgeId,i.focusIds,i.pathEdgeIds,i.highlightedIncidentEdgeIds),f=dn(E,i.zoomTier,m,l,u,d,i.viewMode,c,b),y=i.viewMode==="full"?Vl(f,i.distanceVisualState,String(u),String(d),b):{},h={...f,...y};return{...n,hidden:h.hidden,type:h.type,color:h.color,size:h.size,zIndex:h.zIndex,curvature:h.curvature,label:h.hidden?void 0:String(l.edgeType||n.label||"")}}),(r?.nodes?.length??0)>0||(r?.edges?.length??0)>0){t.scheduleRefresh({partialGraph:{nodes:r?.nodes,edges:r?.edges}});return}t.scheduleRefresh()}function Cu(t,e,o){for(const r of t)if(r.performAction?.(e,o))return}const Iu=A.forwardRef(function({graphVersion:e,graphReady:o,displayGraph:r,displayMeta:a,displayState:n,onNodeClick:s,onEdgeClick:i,selectedNodeId:l,focusedNodeId:u,selectedEdgeId:d,activePath:c=[],activePathEdgeIds:p=[],distanceVisualState:b,effectsState:m,temporalState:f,isLayoutRunning:y,onLayoutRunningChange:h,viewMode:v,className:x,showFitViewButton:g=!0,pluginOverlays:w=[],onSceneRuntimeChange:C,onInteractionStateChange:I,onCameraStateChange:k,onDiagnosticsChange:D,onAnalyticsChange:_},L){const G=A.useRef(null),V=A.useRef(null),q=A.useRef(null),W=A.useRef(null),F=A.useRef(null),ee=A.useRef(null),U=A.useRef(null),T=A.useRef(null),P=A.useRef(null),z=A.useRef(null),te=A.useRef(null),Q=A.useRef(null),O=A.useRef(r),le=A.useRef(n),J=A.useRef(a),re=A.useRef(e),ce=A.useRef(l),ue=A.useRef(u),ge=A.useRef(b),se=A.useRef(v),Ce=A.useRef(s),_e=A.useRef(i),be=A.useRef(C),Me=A.useRef(k),we=A.useRef(m),[Qe,Je]=A.useState(null),[$e,pt]=A.useState("overview"),[We,et]=A.useState(null),[ht,Ze]=A.useState(0),it=A.useRef(null),tt=A.useRef(null),Ie=A.useRef(null),qe=A.useRef(0),xe=A.useRef(null),ve=A.useRef(null),he=A.useRef(null),Ke=A.useRef({missingEdges:new Set,missingNodes:new Set});O.current=r,le.current=n,J.current=a,re.current=e,ce.current=l,ue.current=u,ge.current=b,se.current=v,Ce.current=s,_e.current=i,be.current=C,Me.current=k,we.current=m;const de=A.useMemo(()=>[Es,As,ks,Cs(),_s(),Gs,Ls()],[]),ie=A.useMemo(()=>Sc(Qe,l,u,d,c,p,v,$e,y),[c,p,u,Qe,y,d,l,v,$e]),De=A.useRef(ie);De.current=ie;const je=A.useRef(null),Ue=A.useRef(void 0);A.useEffect(()=>{y||Ze(M=>M+1)},[r,e,y]);const Be=m.communitiesEnabled||m.semanticRegionsEnabled,Re=m.centralityEnabled||m.semanticRegionsEnabled||m.contoursEnabled,st=A.useMemo(()=>ro(r,{computeCommunities:Be,computeCentrality:Re}),[r,Re,Be]),rt=A.useMemo(()=>Eu(r,ie,n,We,b),[We,r,n,b,ie]),jt=A.useRef(rt);jt.current=rt;const Ge=A.useMemo(()=>Au(r,rt),[r,rt]),Et=A.useMemo(()=>ou({mode:E.edges.fullGraphStructureLayer.mode,viewMode:v,isLayoutRunning:y,edgeDiagnostics:Ge,minimumLiteralEdges:E.edges.fullGraphStructureLayer.minimumLiteralEdges}),[Ge,y,v]),ot=A.useMemo(()=>{if(!Et.enabled)return null;const M=su({graphVersion:e,zoomTier:$e,layoutSettledEpoch:ht,overviewBackboneEdgeIds:rt.overviewBackboneEdgeIds});return lu({graphRef:r,cacheKey:M,classifyEdge:H=>bn(r,H,rt),maxCurves:E.edges.fullGraphStructureLayer.maxCurves,curveStrength:E.edges.fullGraphStructureLayer.curveStrength})},[r,e,ht,rt,Et.enabled,$e]);W.current=ot;const Ot=A.useMemo(()=>Aa({gate:Et,cache:ot,minimumCurves:E.edges.fullGraphStructureLayer.minimumCurves,canvasAvailable:!!q.current,lastDrawAt:F.current}),[ot,Et]);ee.current=Ot;const Le=A.useMemo(()=>({graphVersion:e,viewMode:v,layoutMode:a.layoutMode,displayGraph:r}),[r,a.layoutMode,e,v]),At=A.useCallback((M,H,X)=>{const B=U.current;if(!B)return;B.getCustomBBox()&&B.setCustomBBox(null);const oe=G.current,ae=B.getDimensions(),pe=B.getCamera().getState(),Y=H?bu(B,H):{x:.5,y:.5,ratio:1,angle:pe.angle};if(!Y){ye("camera-fit-target-invalid",{intent:M,graphVersion:re.current,viewMode:se.current,order:O.current.order,size:O.current.size,boundsX:H?.x??null,boundsY:H?.y??null,...X});return}ye("camera-fit-target",{intent:M,graphVersion:re.current,viewMode:se.current,order:O.current.order,size:O.current.size,selectionPreserved:!!ce.current,containerWidth:oe?.clientWidth??ae.width,containerHeight:oe?.clientHeight??ae.height,targetX:Y.x,targetY:Y.y,targetRatio:Y.ratio,boundsX:H?.x??null,boundsY:H?.y??null,...X}),B.getCamera().animate(Y,{duration:E.motion.cameraMs,easing:"quadraticOut"})},[]),ir=A.useCallback(()=>{const M=U.current;if(!M)return;const H=Ia(M,O.current);if(!H){ye("camera-fit-display-graph-fallback",{graphVersion:re.current,viewMode:se.current,reason:"display-bounds-unavailable",order:O.current.order,size:O.current.size}),At("fit-display-graph",null,{fallback:"reset-empty-bounds"});return}const X=Da(H,H,{paddingRatio:.14,minSpanRatio:.02,minSpanFloor:.04});At("fit-display-graph",X,{boundsCount:H.count,minX:H.minX,maxX:H.maxX,minY:H.minY,maxY:H.maxY})},[At]),Ht=A.useCallback(function M(H,X=0){const B=U.current;if(!B)return;const oe=O.current,ae=Ca(oe,le.current,H);if(ae.length===0){ye("camera-selection-missing-node",{nodeId:H,graphVersion:re.current,viewMode:se.current});return}const pe=ae[0],Y=B.getNodeDisplayData(pe);if(Y){const Te=B.graphToViewport({x:Y.x,y:Y.y}),Ye=B.getDimensions();if(Ko(Te,Ye.width,Ye.height,96)){ye("camera-selection-visible-noop",{nodeId:H,selectedDisplayNodeId:pe,graphVersion:re.current,viewMode:se.current,viewportX:Te.x,viewportY:Te.y}),B.scheduleRefresh();return}}const fe=qo(B,ae);if(!fe){X<3?(ye("camera-selection-display-bounds-deferred",{nodeId:H,graphVersion:re.current,attempt:X+1,viewMode:se.current,contextCount:ae.length}),xe.current!==null&&window.cancelAnimationFrame(xe.current),xe.current=window.requestAnimationFrame(()=>{xe.current=null,M(H,X+1)})):ye("camera-selection-display-bounds-fallback-fit",{nodeId:H,graphVersion:re.current,viewMode:se.current,contextCount:ae.length});return}const Oe=B.getCamera(),ze=Oe.getState(),He={x:(fe.minX+fe.maxX)/2,y:(fe.minY+fe.maxY)/2,ratio:ze.ratio,angle:ze.angle};ye("camera-selection-gentle-center",{nodeId:H,contextCount:fe.count,boundsSource:"displayed-selection-context",minX:fe.minX,maxX:fe.maxX,minY:fe.minY,maxY:fe.maxY,targetX:He.x,targetY:He.y,preservedRatio:He.ratio}),Oe.animate(He,{duration:E.motion.cameraMs,easing:"quadraticOut"})},[]),Ft=A.useCallback(M=>{const H=U.current;if(!H)return;const X=O.current,B=Ca(X,le.current,M);if(B.length===0){ye("camera-grouped-selection-missing-node",{nodeId:M,graphVersion:re.current,viewMode:se.current});return}const oe=qo(H,B);if(!oe){ye("camera-grouped-selection-display-bounds-missing",{nodeId:M,graphVersion:re.current,viewMode:se.current,contextCount:B.length});return}const ae=H.getCamera(),pe=ae.getState(),Y={x:(oe.minX+oe.maxX)/2,y:(oe.minY+oe.maxY)/2,ratio:pe.ratio,angle:pe.angle};ye("camera-grouped-selection-center",{nodeId:M,graphVersion:re.current,viewMode:se.current,contextCount:oe.count,targetX:Y.x,targetY:Y.y,preservedRatio:Y.ratio}),ae.animate(Y,{duration:E.motion.cameraMs,easing:"quadraticOut"})},[]),Se=A.useCallback(M=>{const H=U.current;if(!H)return;if(se.current==="focused"&&!!ce.current&&j.hasNode(ce.current)){const B=Ia(H,O.current),oe=B?Da(B,B,{paddingRatio:.14,minSpanRatio:.08,minSpanFloor:.02}):null;At("fit-focused-graph",oe,{nodeId:M,focusedCount:B?.count??0,focusedMinX:B?.minX??null,focusedMaxX:B?.maxX??null,focusedMinY:B?.minY??null,focusedMaxY:B?.maxY??null});return}Ht(M)},[At,Ht]),Tt=A.useCallback(()=>{ir()},[ir]),kt=A.useCallback(M=>{const H=P.current;H&&Cu(de,H,M)},[de]),ft=A.useCallback(M=>{const H=M??U.current;if(!H)return null;const X={sigma:H,graph:j,displayGraph:O.current,getInteractionState:()=>De.current,setHoveredNodeId:Je,onNodeSelectionChange:B=>Ce.current(B),onEdgeSelectionChange:B=>_e.current?.(B),focusNodeInView:Se,centerSelectionInView:Ht,centerGroupedSelectionInView:Ft,fitCurrentView:Tt,dispatchAction:kt};return P.current=X,X},[Ft,Ht,kt,Tt,Se]),mt=A.useCallback((M,...H)=>{const X=ft();if(X)for(const B of de){const oe=B[M];typeof oe=="function"&&oe(X,...H)}},[de,ft]);A.useImperativeHandle(L,()=>({fitView:()=>kt({type:"fitView"}),focusNode:M=>kt({type:"focusNode",nodeId:M}),zoomIn:()=>{const M=U.current;M&&(ye("camera-zoom-in",{graphVersion:re.current,ratioBefore:M.getCamera().getState().ratio}),M.getCamera().animatedZoom({duration:E.motion.cameraMs}))},zoomOut:()=>{const M=U.current;M&&(ye("camera-zoom-out",{graphVersion:re.current,ratioBefore:M.getCamera().getState().ratio}),M.getCamera().animatedUnzoom({duration:E.motion.cameraMs}))},requestRender:()=>U.current?.scheduleRefresh(),getCameraState:()=>{const M=U.current;if(!M)return null;const H=M.getCamera().getState();return{x:H.x,y:H.y,ratio:H.ratio}}}),[kt]);const $t=A.useCallback(M=>{const X=M.getCamera().getState(),B={x:X.x,y:X.y,ratio:X.ratio},oe=Ji(B.ratio);pt(ae=>ae===oe?ae:oe),Me.current?.(B),mt("onCameraChange",B),ye("camera-updated",{graphVersion:re.current,ratio:B.ratio})},[mt]);A.useEffect(()=>{if(!o||U.current||!G.current)return;const M=new Zi(O.current,G.current,{...hu,renderEdgeLabels:we.current.edgeLabelsEnabled});U.current=M,it.current=re.current;const H=M.getCamera(),X={renderer:"sigma",scene:M,graph:j,displayGraph:O.current,graphVersion:re.current,layoutMode:J.current.layoutMode,requestRender:()=>M.scheduleRefresh(),getCameraState:()=>{const Y=H.getState();return{x:Y.x,y:Y.y,ratio:Y.ratio}}};z.current=X,be.current?.(X),ye("sigma-created",{graphVersion:re.current,layoutMode:J.current.layoutMode,order:O.current.order,size:O.current.size});const B=ft(M);if(B)for(const Y of de)Y.attach(B);const oe=()=>{G.current&&G.current.offsetWidth>0&&M.scheduleRefresh()},ae=new ResizeObserver(oe);ae.observe(G.current),te.current=ae;const pe=()=>$t(M);Q.current=pe,H.on("updated",pe),M.on("clickNode",({node:Y})=>mt("onNodeClick",Y)),M.on("clickEdge",({edge:Y})=>{const fe=O.current,[Oe,ze]=fe.extremities(Y),He=String(Y),Te=fe.getEdgeAttributes(Y);ga(fe,De.current,He,Oe,ze,Te)&&mt("onEdgeClick",He)}),M.on("clickStage",()=>mt("onStageClick")),M.on("enterNode",({node:Y})=>mt("onNodeEnter",Y)),M.on("leaveNode",({node:Y})=>mt("onNodeLeave",Y)),M.on("enterEdge",({edge:Y})=>{const fe=G.current;if(!fe)return;const Oe=O.current,[ze,He]=Oe.extremities(Y),Te=String(Y),Ye=Oe.getEdgeAttributes(Y);fe.style.cursor=ga(Oe,De.current,Te,ze,He,Ye)?"pointer":""}),M.on("leaveEdge",()=>{G.current&&(G.current.style.cursor="")});try{const Y=M.createCanvas("structure",{beforeLayer:"nodes",afterLayer:"edges",style:{pointerEvents:"none"}});q.current=Y}catch(Y){ye("structure-layer-create-failed",{error:Y instanceof Error?Y.message:String(Y)}),q.current=null}requestAnimationFrame(()=>{$t(M)})},[de,mt,ft,o,$t]),A.useEffect(()=>{const M=U.current;M&&(M.setSetting("renderEdgeLabels",m.edgeLabelsEnabled),M.scheduleRefresh())},[m.edgeLabelsEnabled]),A.useEffect(()=>()=>{const M=U.current,H=P.current;if(H)for(const X of de)X.detach(H);if(G.current&&(G.current.style.cursor=""),te.current?.disconnect(),te.current=null,M&&Q.current&&M.getCamera().off("updated",Q.current),Q.current=null,M){if(ye("sigma-killed",{graphVersion:re.current}),q.current)try{M.killLayer("structure")}catch{}q.current=null,M.kill()}xe.current!==null&&(window.cancelAnimationFrame(xe.current),xe.current=null),z.current=null,P.current=null,U.current=null,be.current?.(null)},[de]),A.useEffect(()=>{const M=U.current;!o||!M||it.current===e&&M.getGraph()===r||(ye("sigma-set-graph",{graphVersion:e,displayFitViewMode:Le.viewMode,displayFitLayoutMode:Le.layoutMode,layoutMode:a.layoutMode,order:r.order,size:r.size}),xe.current!==null&&(window.cancelAnimationFrame(xe.current),xe.current=null),Ke.current.missingEdges.clear(),Ke.current.missingNodes.clear(),M.setCustomBBox(null),M.setGraph(r),it.current=e,tt.current=null,je.current=null,Ue.current=void 0,P.current=ft(M),z.current&&(z.current.displayGraph=r,z.current.graphVersion=e,z.current.layoutMode=a.layoutMode),M.scheduleRefresh())},[Le.layoutMode,Le.viewMode,r,a.layoutMode,ft,o,e]),A.useEffect(()=>{const M=U.current;if(!o||!M||gu(tt.current,Le))return;const H=window.requestAnimationFrame(()=>{if(!(!U.current||re.current!==e||O.current!==Le.displayGraph||se.current!==Le.viewMode||J.current.layoutMode!==Le.layoutMode)){if(tt.current=Le,ye("display-fit-signature-applied",{graphVersion:Le.graphVersion,viewMode:Le.viewMode,layoutMode:Le.layoutMode,order:Le.displayGraph.order,size:Le.displayGraph.size}),ue.current&&se.current==="focused"){ye("initial-focused-fit",{graphVersion:e,nodeId:ue.current}),Se(ue.current);return}ye("initial-fit-view",{graphVersion:e,selectedNodeId:ce.current||null,viewMode:se.current}),kt({type:"fitView"})}});return()=>{window.cancelAnimationFrame(H)}},[Ht,kt,Le,Se,o,e]),A.useEffect(()=>{const M=ft();if(M){for(const H of de)H.onStateChange?.(M,ie);for(const H of de)H.apply?.(M,ie);I?.(ie)}},[de,ft,ie,I]),A.useEffect(()=>{const M=U.current,H=G.current;if(!M||!H){et(null),_?.(null);return}const X=Sa(M,r,H.clientWidth,H.clientHeight).map(oe=>oe.nodeId),B=Sl({graphRef:r,interactionState:ie,base:st,visibleNodeIds:X});et(B),_?.(B)},[st,r,ie,_]),A.useEffect(()=>{if(!D)return;const M=U.current,H=G.current,X=_a(ie,m,f,We,y,M,H?.clientWidth??0,H?.clientHeight??0);D({effectAvailability:X,edgeClasses:Ge,structureLayer:ee.current??Ot,distanceVisual:ge.current}),m.diagnosticsEnabled&&console.debug("[Edge Truth]",Ge)},[We,Ge,m,ie,y,D,Ot,f,b]),A.useEffect(()=>{je.current=null,Ue.current=void 0},[r]),A.useEffect(()=>{const M=U.current;if(!M)return;const H=je.current,B=!(Ue.current!==b)&&H?Kl(r,H,ie):void 0;ku(M,jt,Ke,B),je.current=ie,Ue.current=b},[r,b,ie,jt]);const Cr=A.useCallback(()=>{const M=U.current,H=q.current,X=W.current,B=Aa({gate:Et,cache:X,minimumCurves:E.edges.fullGraphStructureLayer.minimumCurves,canvasAvailable:!!H,lastDrawAt:F.current});if(ee.current=B,!M||!H||!B.enabled||!X){ka(H);return}cu({sigma:M,canvas:H,cache:X})&&(F.current=Date.now(),ee.current={...B,lastDrawAt:F.current})},[Et]);A.useEffect(()=>{const M=U.current;if(!o||!M)return;const H=()=>Cr();return M.on("afterRender",H),H(),()=>{M.off("afterRender",H)}},[Cr,o,ot]),A.useEffect(()=>{(y||v!=="full")&&ka(q.current)},[y,v]);const sr=A.useCallback(()=>{const M=U.current,H=V.current,X=G.current;if(!M||!H||!X)return!1;const B=X.getBoundingClientRect(),oe=window.devicePixelRatio||1;(H.width!==Math.floor(B.width*oe)||H.height!==Math.floor(B.height*oe))&&(H.width=Math.floor(B.width*oe),H.height=Math.floor(B.height*oe),H.style.width=`${B.width}px`,H.style.height=`${B.height}px`);const ae=H.getContext("2d");if(!ae)return!1;ae.setTransform(oe,0,0,oe,0,0),ae.clearRect(0,0,B.width,B.height);const pe=ie.hoveredNodeId||ie.selectedNodeId,Y=pe?r.hasNode(pe)?kr(r,pe):new Set:new Set,fe=ln(r,ie.selectedEdgeId),Oe=new Set(ie.activePath),ze=gi(M,ie.activePath,ie.activePathEdgeIds,ie.zoomTier,B.width,B.height),He=Sa(M,r,B.width,B.height),Te=_a(ie,m,f,We,y,M,B.width,B.height),Ye=M.getCamera().getState().ratio,ao=new Set([...Y,...fe,...Oe,...pe?[pe]:[]]),Dr=new Set;pe&&jt.current.highlightedIncidentEdgeIds.forEach(gt=>{if(!r.hasEdge(gt))return;const[St,qt]=r.extremities(gt),Kt=String(St)===pe?String(qt):String(St);r.hasNode(Kt)&&Dr.add(Kt)});const io=performance.now()/1e3;return y||(Dc(ae,We,He,ie,m),Ic(ae,We,He,ie,m),Gc(ae,He,f,ie,m)),ao.forEach(gt=>{const St=M.getNodeDisplayData(gt);if(!St)return;if(!r.hasNode(gt)){ye("overlay-node-missing-from-display-graph",{nodeId:gt,graphVersion:re.current,viewMode:se.current});return}const qt=r.getNodeAttributes(gt),Kt=ni(gt,ie.zoomTier,ie.hoveredNodeId,ie.selectedNodeId,ie.selectedEdgeId,Y,fe,Oe),Ee=qr(E,ie.zoomTier,Kt,qt,qt.label,Ye),me=M.graphToViewport({x:St.x,y:St.y});if(Ee.showHalo){const lr=Math.max(St.size*E.overlays.glowRadiusMultiplier*(Ee.nodeVariant==="selected"?1.08:1),E.overlays.minGlowRadius);bi(ae,me.x,me.y,lr,K(Ee.haloColor,gt===pe?E.overlays.hoverGlowAlpha:E.overlays.pathGlowAlpha))}Ee.showBadge&&Ee.badgeKind&&yu(ae,me.x,me.y,St.size,Ee.badgeKind,Ee.badgeCount)}),!y&&pe&&Te.lens.available&&Lc(ae,M,pe,Dr),Pc(ae,ze,m,Te,io),Te.pathPulse.available||Te.pathFlow.available},[We,r,m,ie,y,f]);A.useEffect(()=>{const M=U.current,H=G.current;if(!o||!M||!H)return;let X=0,B=!1;const oe=()=>{if(B)return;sr()&&(X=window.requestAnimationFrame(oe))},ae=()=>{X===0&&sr()},pe=M.getCamera(),Y=new ResizeObserver(ae);return Y.observe(H),pe.on("updated",ae),oe(),()=>{B=!0,Y.disconnect(),pe.off("updated",ae),X!==0&&window.cancelAnimationFrame(X)}},[sr,o]),A.useEffect(()=>{const M=U.current,H=a.layoutMode==="owned"?r:j,X=a.layoutMode==="owned"&&v==="grouped",B=a.layoutMode==="owned"?`display:${e}:${v}`:`store:${a.layoutMode}`,oe=T.current?.__targetKey;if(!y){T.current?.stop(),ve.current!==null&&(window.clearTimeout(ve.current),ve.current=null),he.current!==null&&(window.clearTimeout(he.current),he.current=null),Ie.current!==null&&(window.cancelAnimationFrame(Ie.current),Ie.current=null);return}if(!T.current||oe!==B){T.current?.kill();const ae=new Qi(H,X?pu:uu);ae.__targetKey=B,T.current=ae,ye("layout-target-changed",{graphVersion:e,layoutMode:a.layoutMode,target:a.layoutMode==="owned"?"display-owned":a.layoutMode==="base"?"base":"store-for-mirror",order:H.order,size:H.size})}if(T.current.start(),he.current!==null&&(window.clearTimeout(he.current),he.current=null),ve.current!==null&&(window.clearTimeout(ve.current),ve.current=null),X?he.current=window.setTimeout(()=>{T.current?.stop(),he.current=null,h?.(!1),ye("grouped-layout-auto-settled",{graphVersion:re.current,viewMode:se.current,order:O.current.order,size:O.current.size})},E.grouped.layout.settleMs):ve.current=window.setTimeout(()=>{T.current?.stop(),ve.current=null,h?.(!1),ye("full-layout-auto-settled",{graphVersion:re.current,viewMode:se.current,layoutMode:J.current.layoutMode,order:O.current.order,size:O.current.size})},du),a.layoutMode==="mirrored"&&M){let ae=!1;const pe=()=>{if(ae||!U.current||!y)return;const Y=fu(O.current,j);Y>0&&(U.current.scheduleRefresh(),qe.current+=1,(qe.current===1||qe.current%30===0)&&ye("layout-mirror-sync",{graphVersion:re.current,changedNodes:Y,tick:qe.current})),Ie.current=window.requestAnimationFrame(pe)};return qe.current=0,Ie.current=window.requestAnimationFrame(pe),()=>{ae=!0,ve.current!==null&&(window.clearTimeout(ve.current),ve.current=null),he.current!==null&&(window.clearTimeout(he.current),he.current=null),Ie.current!==null&&(window.cancelAnimationFrame(Ie.current),Ie.current=null),T.current?.stop()}}return()=>{ve.current!==null&&(window.clearTimeout(ve.current),ve.current=null),he.current!==null&&(window.clearTimeout(he.current),he.current=null),T.current?.stop()}},[r,a.layoutMode,e,y,v]),A.useEffect(()=>()=>{ve.current!==null&&(window.clearTimeout(ve.current),ve.current=null),he.current!==null&&(window.clearTimeout(he.current),he.current=null),Ie.current!==null&&(window.cancelAnimationFrame(Ie.current),Ie.current=null),T.current?.kill(),T.current=null},[]);const Ir=A.useCallback(()=>{Tt()},[Tt]);return N.jsxDEV("div",{style:{position:"relative",width:"100%",height:"100%"},children:[N.jsxDEV("div",{ref:G,className:x,style:{width:"100%",height:"100%",background:"transparent"}},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphCanvas.tsx",lineNumber:2056,columnNumber:9},this),N.jsxDEV("canvas",{ref:V,style:{position:"absolute",inset:0,width:"100%",height:"100%",pointerEvents:"none",zIndex:4}},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphCanvas.tsx",lineNumber:2061,columnNumber:9},this),w.length?N.jsxDEV("div",{style:{position:"absolute",inset:0,pointerEvents:"none",zIndex:6},children:w.map((M,H)=>N.jsxDEV("div",{style:{position:"absolute",inset:0},children:M},`graph-plugin-overlay-${H}`,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphCanvas.tsx",lineNumber:2075,columnNumber:55},this))},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphCanvas.tsx",lineNumber:2069,columnNumber:34},this):null,g?N.jsxDEV("button",{id:"graph-fit-view-btn",onClick:Ir,style:{position:"absolute",bottom:24,left:24,padding:"8px 16px",background:"linear-gradient(135deg, rgba(27, 79, 170, 0.9), rgba(53, 123, 255, 0.84))",color:"#fff",border:`1px solid ${E.palette.background.shellBorder}`,borderRadius:10,cursor:"pointer",fontWeight:700,zIndex:10,backdropFilter:"blur(10px)",boxShadow:`0 10px 28px ${E.palette.background.shellGlow}`,fontSize:12,letterSpacing:"0.01em"},children:"Fit View"},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphCanvas.tsx",lineNumber:2082,columnNumber:30},this):null]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphCanvas.tsx",lineNumber:2051,columnNumber:10},this)}),Du=A.forwardRef(function(e,o){const r=Xe.c(26);if(r[0]!=="34a2ed6bef1a7df66f98f7869ae3852e0da6b39ceb93661a7314cab99b13149d"){for(let g=0;g<26;g+=1)r[g]=Symbol.for("react.memo_cache_sentinel");r[0]="34a2ed6bef1a7df66f98f7869ae3852e0da6b39ceb93661a7314cab99b13149d"}let a,n,s,i,l,u,d,c,p;r[1]!==e?({onNodeSelect:d,onEdgeSelect:i,onInteractionStateChange:l,onCameraStateChange:n,onDiagnosticsChange:s,onAnalyticsChange:a,onRuntimeChange:c,onLayoutRunningChange:u,...p}=e,r[1]=e,r[2]=a,r[3]=n,r[4]=s,r[5]=i,r[6]=l,r[7]=u,r[8]=d,r[9]=c,r[10]=p):(a=r[2],n=r[3],s=r[4],i=r[5],l=r[6],u=r[7],d=r[8],c=r[9],p=r[10]);const b=A.useRef(null),m=A.useRef(null);let f,y;r[11]!==u?(f=()=>({fitView:()=>b.current?.fitView(),focusNode:g=>b.current?.focusNode(g),zoomIn:()=>b.current?.zoomIn(),zoomOut:()=>b.current?.zoomOut(),getRuntime:()=>m.current,setLayoutRunning:u?g=>{u(g)}:void 0}),y=[u],r[11]=u,r[12]=f,r[13]=y):(f=r[12],y=r[13]),A.useImperativeHandle(o,f,y);const h=d??_u;let v;r[14]!==c?(v=g=>{m.current=g,c?.(g)},r[14]=c,r[15]=v):v=r[15];let x;return r[16]!==a||r[17]!==n||r[18]!==s||r[19]!==i||r[20]!==l||r[21]!==u||r[22]!==p||r[23]!==h||r[24]!==v?(x=N.jsxDEV(Iu,{ref:b,onNodeClick:h,onEdgeClick:i,onInteractionStateChange:l,onCameraStateChange:n,onDiagnosticsChange:s,onAnalyticsChange:a,onSceneRuntimeChange:v,onLayoutRunningChange:u,...p},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/SigmaSceneAdapter.tsx",lineNumber:93,columnNumber:10},this),r[16]=a,r[17]=n,r[18]=s,r[19]=i,r[20]=l,r[21]=u,r[22]=p,r[23]=h,r[24]=v,r[25]=x):x=r[25],x});function _u(){}const Sr=["bootstrapping","fetching_nodes","fetching_edges","computing_styling","hydrating_scene","stabilizing_layout"];function yi(t){switch(t){case"bootstrapping":return"Preparing graph session";case"fetching_nodes":return"Loading nodes";case"fetching_edges":return"Loading relationships";case"computing_styling":return"Computing node styling";case"hydrating_scene":return"Hydrating graph scene";case"stabilizing_layout":return"Stabilizing layout";default:return"Graph ready"}}function Gu(t){switch(t){case"bootstrapping":return"Prepare";case"fetching_nodes":return"Nodes";case"fetching_edges":return"Relations";case"computing_styling":return"Styling";case"hydrating_scene":return"Scene";case"stabilizing_layout":return"Layout";default:return"Stage"}}function Mt(t){const e=Sr.indexOf(t.phase);return{phase:t.phase,title:yi(t.phase),message:t.message,progressKind:t.progressKind,loaded:t.loaded??null,total:t.total??null,nodesLoaded:t.nodesLoaded??0,nodesTotal:t.nodesTotal??null,edgesLoaded:t.edgesLoaded??0,edgesTotal:t.edgesTotal??null,showGraphBehind:t.showGraphBehind??!1,stageIndex:e>=0?e+1:Sr.length,stageCount:Sr.length,layoutSource:t.layoutSource,layoutState:t.layoutState}}const Yo=48,vi=.92,Ho=78,Ga=48;function Lu(t,e){return t>0&&t<=Yo&&e<vi}function Pu(t,e){const o=e>=vi,r=Lu(t,e);return{useProvidedCoordinates:o,useSmallGraphLayout:r,layoutReady:o||r}}function Mu(t,e,o){return t.useProvidedCoordinates?{x:e.x??0,y:e.y??0}:t.useSmallGraphLayout?{x:o?.x??0,y:o?.y??0}:{x:e.x??o?.x??0,y:e.y??o?.y??0}}function Ru(t,e){const o=[...new Set(t)].sort((c,p)=>c.localeCompare(p)),r=new Map(o.map(c=>[c,new Set]));e.forEach(({source:c,target:p})=>{!r.has(c)||!r.has(p)||c===p||(r.get(c)?.add(p),r.get(p)?.add(c))});const a=new Set,n=[];o.forEach(c=>{if(a.has(c))return;const p=[],b=[c];for(a.add(c);b.length>0;){const m=b.shift();m&&(p.push(m),[...r.get(m)??[]].sort((f,y)=>f.localeCompare(y)).forEach(f=>{a.has(f)||(a.add(f),b.push(f))}))}p.sort((m,f)=>(r.get(f)?.size??0)-(r.get(m)?.size??0)||m.localeCompare(f)),n.push(p)}),n.sort((c,p)=>p.length-c.length||c[0].localeCompare(p[0]));const s=Math.max(1,Math.ceil(Math.sqrt(n.length))),i=Math.max(1,Math.ceil(n.length/s)),l=Ho*2+Ga,u=Ho*2+Ga,d=new Map;return n.forEach((c,p)=>{const b=p%s,m=Math.floor(p/s),f=(b-(s-1)/2)*l,y=(m-(i-1)/2)*u;if(c.length===1){d.set(c[0],{x:f,y});return}const h=Math.min(Ho,30+c.length*9);c.forEach((v,x)=>{const g=-Math.PI/2+x*Math.PI*2/c.length;d.set(v,{x:f+Math.cos(g)*h,y:y+Math.sin(g)*h})})}),d}const ju=["community","cluster","module","group","category","domain","layer","source","nodeType"],Hu=["source","source_url","pmid","pmids","evidence","provenance","confidence"];function La(t,e){if(e==="nodeType"){const r=t.nodeType;return typeof r=="string"&&r.trim()?r:null}const o=t.properties?.[e];return typeof o=="string"&&o.trim()?o:null}function Tu(t,e){if(t.length<=1||e<=0)return 0;let o=0;for(const r of t){const a=r/e;o-=a*Math.log(a)}return o/Math.log(t.length)}function Wu(t){let e=null,o=0;for(const r of ju){const a=new Map;let n=0;for(const m of t){const f=La(m.attributes,r);f&&(n+=1,a.set(f,(a.get(f)??0)+1))}const s=a.size;if(n===0||s<=1)continue;const i=[...a.values()],l=n/t.length,u=Math.max(...i)/n,d=Tu(i,n),c=Math.min(s,E.palette.semantic.length)/E.palette.semantic.length,p=d*.65+c*.2+l*.15;l>=.45&&d>=.45&&u<=.88&&p>o&&(e=r,o=p)}return e?(r,a)=>La(a,e)??Xo(r,a):(r,a)=>Xo(r,a)}function Xo(t,e){const o=Rt(t)%E.palette.semantic.length;return`${e.nodeType||"entity"}:${o}`}function Qr(t){const e=Number(t);return Number.isFinite(e)?e:null}function To(t){return Rt(t)%1e4/1e4}function zu(t){const e=new Map;t.forEach(n=>{const s=e.get(n.semanticGroup);s?s.push({id:n.id,priority:n.priority}):e.set(n.semanticGroup,[{id:n.id,priority:n.priority}])});const o=[...e.entries()].sort((n,s)=>{const i=s[1].length-n[1].length;return i!==0?i:n[0].localeCompare(s[0])}),r=new Map;o.forEach(([n,s],i)=>{const l=i*2.399963229728653,u=170+Math.sqrt(i+1)*195,d=72+Math.sqrt(s.length)*16;r.set(n,{x:Math.cos(l)*u*1.14,y:Math.sin(l)*u*.84,spread:d})});const a=new Map;return o.forEach(([n,s])=>{const i=r.get(n);i&&s.sort((l,u)=>u.priority!==l.priority?u.priority-l.priority:l.id.localeCompare(u.id)).forEach((l,u)=>{const d=u*2.399963229728653+To(`${n}:${l.id}:angle`)*.72,c=Math.sqrt((u+.5)/Math.max(s.length,1))*i.spread,p=(To(`${l.id}:jx`)-.5)*i.spread*.22,b=(To(`${l.id}:jy`)-.5)*i.spread*.18;a.set(l.id,{x:i.x+Math.cos(d)*c+p,y:i.y+Math.sin(d)*c*.86+b})})}),a}function Vu(t){return Hu.reduce((e,o)=>t[o]!==void 0&&t[o]!==null?e+1:e,0)}function Uu(t,e){return qa(t.nodeType,e,t.content,t.properties)}function Bu(t,e,o,r){let a="default",n,s;o?(a="temporal",n="temporal"):r>0&&(a="provenance",n="provenance",s=r);let i="none";return e>=.86?i="always":n?i="local":e>=.56&&(i="priority"),{nodeVariant:a,nodeShapeVariant:a,badgeKind:n,badgeCount:s,ringColor:E.nodes.selectedRing.color,haloColor:K(t,.38),labelVisibilityPolicy:i}}function Ou(t,e,o,r){const a=ut(.12,.18+Math.log(Math.max(Number(t.weight)||1,1))/Math.log(12),1);let n="line";return r?n="bidirectionalCurve":Math.max(e,o,a)>=.58&&(n="directional"),{edgeVariant:n,arrowVisibilityPolicy:n==="line"?"hidden":"contextual",relationshipStrength:a,isParallelPair:!1,parallelIndex:0,parallelCount:1}}const xi=1e3;async function Si(t){try{const o=(await t.json())?.detail;if(typeof o=="string"&&o.trim())return` — ${o.trim()}`}catch{}return""}async function Fu(t,e){let o=null;const r=[];let a=null;for(;;){const n=new URL("/api/graph/nodes",window.location.origin);n.searchParams.set("limit",String(xi)),o&&n.searchParams.set("cursor",o);const s=await fetch(n.toString(),{signal:t});if(!s.ok)throw new Error(`Fetch failed: ${s.status}${await Si(s)}`);const i=await s.json();if(!i.nodes?.length||(a=i.total??a,r.push(...i.nodes),e?.(Mt({phase:"fetching_nodes",progressKind:a?"determinate":"indeterminate",loaded:r.length,total:a,nodesLoaded:r.length,nodesTotal:a,edgesLoaded:0,edgesTotal:null,message:a?`Loading nodes ${r.length.toLocaleString()} of ${a.toLocaleString()}`:`Loading nodes ${r.length.toLocaleString()}`})),!i.next_cursor))break;o=i.next_cursor,await wi()}return r}async function $u(t,e,o,r){let a=null;const n=[],s=new Set;let i=null,l=!1;for(;;){const u=new URL("/api/graph/edges",window.location.origin);u.searchParams.set("limit",String(xi)),a&&u.searchParams.set("cursor",a);const d=await fetch(u.toString(),{signal:t});if(!d.ok)throw new Error(`Fetch failed: ${d.status}${await Si(d)}`);const c=await d.json();if(!c.edges?.length)break;i=c.total??i;const p=c.edges.filter(m=>!e.has(m.source)||!e.has(m.target)||s.has(m.id)?!1:(s.add(m.id),!0));n.push(...p);const b=i?Math.min(s.size,i):s.size;if(!l&&i!==null&&s.size>i&&(l=!0,console.warn("[graph-load] edge pagination returned more unique edge ids than total",{uniqueEdgesLoaded:s.size,total:i})),r?.(Mt({phase:"fetching_edges",progressKind:i?"determinate":"indeterminate",loaded:b,total:i,nodesLoaded:o.loaded,nodesTotal:o.total,edgesLoaded:b,edgesTotal:i,message:i?`Loading edges ${b.toLocaleString()} of ${i.toLocaleString()}`:`Loading edges ${b.toLocaleString()}`})),!c.next_cursor)break;a=c.next_cursor,await wi()}return n}function wi(){return"scheduler"in window&&typeof window.scheduler?.yield=="function"?window.scheduler.yield():new Promise(t=>setTimeout(t,0))}function qu(t){const e=Xe.c(10);if(e[0]!=="48a72dfcbbe2d3d5c2ef8e2960fbf52341bd3ec919fe84ab9e9025aeb73a2f82"){for(let c=0;c<10;c+=1)e[c]=Symbol.for("react.memo_cache_sentinel");e[0]="48a72dfcbbe2d3d5c2ef8e2960fbf52341bd3ec919fe84ab9e9025aeb73a2f82"}let o;e[1]!==t?(o=t===void 0?{}:t,e[1]=t,e[2]=o):o=e[2];const r=o,{enabled:a,onGraphReady:n,onProgress:s}=r,i=a===void 0?!0:a;let l;e[3]===Symbol.for("react.memo_cache_sentinel")?(l=["graph","full-load"],e[3]=l):l=e[3];let u;e[4]!==n||e[5]!==s?(u=async c=>{const{signal:p}=c,b=performance.now();s?.(Mt({phase:"bootstrapping",progressKind:"indeterminate",nodesLoaded:0,nodesTotal:null,edgesLoaded:0,edgesTotal:null,message:"Preparing graph session"}));const m=await Fu(p,s),f=new Set(m.map(Qu)),y=await $u(p,f,{loaded:m.length,total:m.length},s),h=new Map;for(const P of f)h.set(P,0);for(const P of y)h.set(P.source,(h.get(P.source)??0)+1),h.set(P.target,(h.get(P.target)??0)+1);const v=Math.max(...h.values(),1),x=m.map(Zu);s?.(Mt({phase:"computing_styling",progressKind:"indeterminate",nodesLoaded:m.length,nodesTotal:m.length,edgesLoaded:y.length,edgesTotal:y.length,message:"Applying semantic color, sizing, and structural styling"}));const g=Wu(x),w=new Map;for(const P of f){const z=h.get(P)??0,te=Math.log(z+1)/Math.log(v+1);w.set(P,te)}const C=new Map;x.forEach(P=>{const{id:z,attributes:te}=P;C.set(z,g(z,te))});const I=m.reduce(Xu,0),k=m.length>0?I/m.length:0,{useProvidedCoordinates:D,useSmallGraphLayout:_,layoutReady:L}=Pu(m.length,k),G=D?null:_?Ru(m.map(Yu),y):zu(x.map(P=>{const{id:z,attributes:te}=P;return{id:z,semanticGroup:C.get(z)??Xo(z,te),priority:w.get(z)??0}})),V=x.map(P=>{const{id:z,attributes:te}=P,Q=C.get(z)??g(z,te),O=Rt(Q)%E.palette.semantic.length,le=E.palette.semantic[O],J=w.get(z)??0,re=_?ut(5.2,5.2+6.6*J,11.8):ut(1.8,1.8+8.8*J,11.8),ce=!!(te.valid_from||te.valid_until),ue=Vu(te.properties??{}),ge=te.properties,se=Uu(te,Q),Ce=Qr(ge?.x),_e=Qr(ge?.y),be=G?.get(z),{x:Me,y:we}=Mu({useProvidedCoordinates:D,useSmallGraphLayout:_},{x:Ce,y:_e},be);return{id:z,attributes:{...te,x:Me,y:we,semanticGroup:Q,color:le,baseColor:le,mutedColor:K(le,E.nodes.mutedAlpha),glowColor:K(le,.24),size:re,baseSize:re,visualPriority:J,labelPriority:J,strokeColor:Rn(le,112),borderColor:Rn(le,112),borderSize:.72,entityShape:se,...Bu(le,J,ce,ue),..._?{labelVisibilityPolicy:"always"}:{}}}}),q=new Set(y.map(Ku)),W=new Map,F=new Map;y.forEach(P=>{const z=br(P.source,P.target);W.set(z,(W.get(z)??0)+1),F.set(P.familyId,(F.get(P.familyId)??0)+1)});const ee=new Map,U=y.map(P=>{const z=w.get(P.source)??0,te=w.get(P.target)??0,Q=q.has(br(P.target,P.source)),O=br(P.source,P.target),le=ee.get(O)??0;ee.set(O,le+1);const J=W.get(O)??1,re=ut(0,Math.log1p(Math.max(Number(P.weight)||1,1))/6,1),ce=ut(0,Math.sqrt(Math.max(z,0)*Math.max(te,0))*.72+re*.28,1);return{id:P.id,familyId:P.familyId,source:P.source,target:P.target,attributes:{edgeId:P.id,familyId:P.familyId,sourceId:P.source,targetId:P.target,weight:P.weight,edgeType:P.type,properties:P.properties,size:ut(.18,.22+Math.sqrt(Math.max(Number(P.weight)||1,1))*.2,.88),baseSize:ut(.18,.22+Math.sqrt(Math.max(Number(P.weight)||1,1))*.2,.88),color:E.palette.muted.edgeStructure,baseColor:E.palette.muted.edgeStructure,mutedColor:E.palette.muted.edgeOverview,visualPriority:ce,isBidirectional:Q,edgeFamily:Q?"bidirectional":"line",curveGroup:Jo(P.source,P.target),type:"line",isParallelPair:J>1,parallelIndex:le,parallelCount:J,familySize:F.get(P.familyId)??1,isSmallGraph:_,...Ou(P,z,te,Q)}}});s?.(Mt({phase:"hydrating_scene",progressKind:"indeterminate",nodesLoaded:V.length,nodesTotal:V.length,edgesLoaded:U.length,edgesTotal:U.length,message:"Preparing renderer and hydrating graph scene"}));try{ws()}catch(P){const z=P;throw console.error("[graph-load] clearGraph failed",z),z}try{Oa(V)}catch(P){const z=P;throw console.error("[graph-load] batchMergeNodes failed",z),z}try{Fa(U)}catch(P){const z=P;throw console.error("[graph-load] batchMergeEdges failed",z),z}const T={nodeCount:V.length,edgeCount:U.length,loadTimeMs:Math.round(performance.now()-b),hasCoordinates:D,layoutSource:D?"provided":"runtime",layoutReady:L};return s?.(Mt({phase:T.layoutReady?"ready":"stabilizing_layout",progressKind:"indeterminate",nodesLoaded:T.nodeCount,nodesTotal:T.nodeCount,edgesLoaded:T.edgeCount,edgesTotal:T.edgeCount,message:T.layoutReady?"Graph ready":"Settling runtime layout",showGraphBehind:!T.layoutReady,layoutSource:T.layoutSource,layoutState:T.layoutReady?"interactive":"bootstrapping"})),n?.(T),T},e[4]=n,e[5]=s,e[6]=u):u=e[6];let d;return e[7]!==i||e[8]!==u?(d={queryKey:l,enabled:i,staleTime:1/0,retry:0,queryFn:u},e[7]=i,e[8]=u,e[9]=d):d=e[9],$i(d)}function Ku(t){return br(t.source,t.target)}function Yu(t){return t.id}function Xu(t,e){const o=e.properties;return Qr(o?.x)!==null&&Qr(o?.y)!==null?t+1:t}function Zu(t){return{id:t.id,attributes:{label:t.content||t.id,x:0,y:0,nodeType:t.type,content:t.content,valid_from:t.valid_from,valid_until:t.valid_until,properties:t.properties}}}function Qu(t){return t.id}function Ju(){const t=Xe.c(3);if(t[0]!=="48a72dfcbbe2d3d5c2ef8e2960fbf52341bd3ec919fe84ab9e9025aeb73a2f82"){for(let r=0;r<3;r+=1)t[r]=Symbol.for("react.memo_cache_sentinel");t[0]="48a72dfcbbe2d3d5c2ef8e2960fbf52341bd3ec919fe84ab9e9025aeb73a2f82"}const e=Fi();let o;return t[1]!==e?(o=()=>e.invalidateQueries({queryKey:["graph","full-load"]}),t[1]=e,t[2]=o):o=t[2],o}const Pa=`
|
|
416
|
+
`;class xr extends Xi{static ANGLE_1=0;static ANGLE_2=2*Math.PI/3;static ANGLE_3=4*Math.PI/3;drawLabel=fi;drawHover=mi;getDefinition(){return{VERTICES:3,VERTEX_SHADER_SOURCE:eu,FRAGMENT_SHADER_SOURCE:Jc,METHOD:WebGLRenderingContext.TRIANGLES,UNIFORMS:Qc,ATTRIBUTES:[{name:"a_position",size:2,type:WebGLRenderingContext.FLOAT},{name:"a_size",size:1,type:WebGLRenderingContext.FLOAT},{name:"a_bodyColor",size:4,type:WebGLRenderingContext.UNSIGNED_BYTE,normalized:!0},{name:"a_glyphColor",size:4,type:WebGLRenderingContext.UNSIGNED_BYTE,normalized:!0},{name:"a_outlineColor",size:4,type:WebGLRenderingContext.UNSIGNED_BYTE,normalized:!0},{name:"a_outlineSize",size:1,type:WebGLRenderingContext.FLOAT},{name:"a_glyphScale",size:1,type:WebGLRenderingContext.FLOAT},{name:"a_shapeKind",size:1,type:WebGLRenderingContext.FLOAT},{name:"a_aspectRatio",size:1,type:WebGLRenderingContext.FLOAT},{name:"a_id",size:4,type:WebGLRenderingContext.UNSIGNED_BYTE,normalized:!0}],CONSTANT_ATTRIBUTES:[{name:"a_angle",size:1,type:WebGLRenderingContext.FLOAT}],CONSTANT_DATA:[[xr.ANGLE_1],[xr.ANGLE_2],[xr.ANGLE_3]]}}processVisibleItem(e,o,r){const a=this.array,n=gn(r.ringSize,r.ringColor,r.borderColor,E.nodes.selectedRing.color),s=Math.max(r.ringSize||0,r.borderSize||.7);a[o++]=r.x,a[o++]=r.y,a[o++]=r.size,a[o++]=Or(r.color||E.palette.overview.nodeCore),a[o++]=Or(r.shellColor||K(E.palette.overview.nodeBase,.58)),a[o++]=Or(n),a[o++]=s,a[o++]=r.coreScale??.22,a[o++]=r.entityShapeKind??E.nodes.entityShapes[r.entityShape||"entity"].shapeKind,a[o++]=r.entityAspectRatio??E.nodes.entityShapes[r.entityShape||"entity"].aspectRatio,a[o++]=e}setUniforms(e,{gl:o,uniformLocations:r}){o.uniform1f(r.u_correctionRatio,e.correctionRatio),o.uniform1f(r.u_sizeRatio,e.sizeRatio),o.uniformMatrix3fv(r.u_matrix,!1,e.matrix)}}function gn(t,e,o,r){return typeof t=="number"&&t>0&&e?e:o||r}function Zr(t,e,o,r,a,n){const s=Math.max(0,Math.min(n,Math.min(r,a)/2));t.beginPath(),t.moveTo(e+s,o),t.lineTo(e+r-s,o),t.quadraticCurveTo(e+r,o,e+r,o+s),t.lineTo(e+r,o+a-s),t.quadraticCurveTo(e+r,o+a,e+r-s,o+a),t.lineTo(e+s,o+a),t.quadraticCurveTo(e,o+a,e,o+a-s),t.lineTo(e,o+s),t.quadraticCurveTo(e,o,e+s,o),t.closePath()}const fi=(t,e)=>{const o=e;if(!o.label)return;const r=E.labels.chip,a=Math.max(r.fontSize,Math.min(r.maxFontSize,o.size*r.sizeScale)),n=`${r.fontWeight} ${a}px ${r.fontFamily}`,s=r.paddingX,i=r.paddingY,l=gn(o.ringSize,o.ringColor,o.borderColor,r.borderColor);t.save(),t.font=n,t.textBaseline="middle";const d=t.measureText(o.label).width+s*2,c=a+i*2,p=o.x+Math.max(o.size*.7,r.offsetX),b=o.y-Math.max(o.size*.9,r.offsetY)-c;t.shadowColor=K(r.shadowColor,r.shadowAlpha),t.shadowBlur=r.shadowBlur,t.fillStyle=r.background,Zr(t,p,b,d,c,r.radius),t.fill(),t.shadowBlur=0,t.strokeStyle=K(l,r.borderAlpha),t.lineWidth=1,Zr(t,p,b,d,c,r.radius),t.stroke(),t.fillStyle=r.textColor,t.fillText(o.label,p+s,b+c/2),t.restore()},mi=(t,e)=>{const o=e;if(!o.label)return;const r=E.labels.hoverCard,a=gn(o.ringSize,o.ringColor,o.borderColor,r.borderColor),n=typeof o.nodeType=="string"&&o.nodeType.trim().length>0?o.nodeType.replaceAll("_"," ").toUpperCase():"NODE";t.save(),t.textBaseline="top";const s=`${r.titleWeight} ${r.titleSize}px ${r.fontFamily}`,i=`${r.metaWeight} ${r.metaSize}px ${r.fontFamily}`;t.font=s;const l=t.measureText(o.label).width;t.font=i;const u=t.measureText(n).width,d=Math.max(l,u)+r.paddingX*2,c=r.paddingY*2+r.titleSize+r.metaGap+r.metaSize,p=o.x+Math.max(o.size*.9,r.offsetX),b=o.y-Math.max(o.size*1.1,r.offsetY)-c;t.shadowColor=K(r.shadowColor,r.shadowAlpha),t.shadowBlur=r.shadowBlur,t.fillStyle=r.background,Zr(t,p,b,d,c,r.radius),t.fill(),t.shadowBlur=0,t.strokeStyle=K(a,r.borderAlpha),t.lineWidth=1.2,Zr(t,p,b,d,c,r.radius),t.stroke(),t.fillStyle=r.textColor,t.font=s,t.fillText(o.label,p+r.paddingX,b+r.paddingY),t.fillStyle=r.metaColor,t.font=i,t.fillText(n,p+r.paddingX,b+r.paddingY+r.titleSize+r.metaGap),t.restore()},tu={...Yi,circle:xr},ru={...Ki,curve:Xc,curvedArrow:Zc};function ou({mode:t,viewMode:e,isLayoutRunning:o,edgeDiagnostics:r,minimumLiteralEdges:a}){return t==="off"?{enabled:!1,disabledReason:"disabled"}:e!=="full"?{enabled:!1,disabledReason:"non-full-mode"}:o?{enabled:!1,disabledReason:"layout-running"}:t==="auto"&&(r?.counts.backbone??0)+(r?.counts.bridge??0)>=a?{enabled:!1,disabledReason:"enough-literal-edges"}:{enabled:!0,disabledReason:null}}function Ea(t){return Number.isFinite(Number(t.x))&&Number.isFinite(Number(t.y))}function nu(t){return Math.max(0,Math.min(1,Number(t.visualPriority??t.weight??0)))}function au(t,e){return(t==="bridge"?2:1)+e}function iu(t,e,o){const r=`${t}|${e}|${o}`;let a=0;for(let n=0;n<r.length;n+=1)a=a*31+r.charCodeAt(n)|0;return a%2===0?1:-1}function su({graphVersion:t,zoomTier:e,layoutSettledEpoch:o,overviewBackboneEdgeIds:r}){return[t,e,o,Array.from(r).sort().join(",")].join("|")}function lu({graphRef:t,cacheKey:e,classifyEdge:o,maxCurves:r,curveStrength:a}){const n=[];t.forEachEdge((i,l,u,d)=>{const c=String(i),p=o(c);if(p!=="bridge"&&p!=="backbone")return;const b=String(u),m=String(d);if(!t.hasNode(b)||!t.hasNode(m))return;const f=t.getNodeAttributes(b),y=t.getNodeAttributes(m);if(!Ea(f)||!Ea(y))return;const h=nu(l);n.push({edgeId:c,sourceId:b,targetId:m,source:{x:Number(f.x),y:Number(f.y)},target:{x:Number(y.x),y:Number(y.y)},edgeClass:p,priority:h,curvature:iu(b,m,c)*a,rank:au(p,h)})}),n.sort((i,l)=>l.rank!==i.rank?l.rank-i.rank:i.edgeId.localeCompare(l.edgeId));const s=n.slice(0,r).map(({rank:i,...l})=>l);return{cacheKey:e,curves:s,bridgeCurveCount:s.filter(i=>i.edgeClass==="bridge").length,backboneCurveCount:s.filter(i=>i.edgeClass==="backbone").length}}function Aa({gate:t,cache:e,minimumCurves:o,canvasAvailable:r,lastDrawAt:a}){return t.enabled?r?!e||e.curves.length===0?{enabled:!1,disabledReason:"no-eligible-edges",curveCount:0,bridgeCurveCount:0,backboneCurveCount:0,cacheKey:e?.cacheKey??"",lastDrawAt:a}:e.curves.length<o?{enabled:!1,disabledReason:"cache-empty",curveCount:e.curves.length,bridgeCurveCount:e.bridgeCurveCount,backboneCurveCount:e.backboneCurveCount,cacheKey:e.cacheKey,lastDrawAt:a}:{enabled:!0,disabledReason:null,curveCount:e.curves.length,bridgeCurveCount:e.bridgeCurveCount,backboneCurveCount:e.backboneCurveCount,cacheKey:e.cacheKey,lastDrawAt:a}:{enabled:!1,disabledReason:"invalid-layer",curveCount:0,bridgeCurveCount:0,backboneCurveCount:0,cacheKey:e?.cacheKey??"",lastDrawAt:a}:{enabled:!1,disabledReason:t.disabledReason,curveCount:0,bridgeCurveCount:0,backboneCurveCount:0,cacheKey:e?.cacheKey??"",lastDrawAt:a}}function ka(t){if(!t)return;const e=t.getContext("2d");e&&(e.setTransform(1,0,0,1,0,0),e.clearRect(0,0,t.width,t.height))}function cu({sigma:t,canvas:e,cache:o}){const r=e.getContext("2d");if(!r)return!1;const{width:a,height:n}=t.getDimensions(),s=window.devicePixelRatio||1;r.setTransform(s,0,0,s,0,0),r.clearRect(0,0,a,n),r.lineCap="round",r.lineJoin="round";let i=0;for(const l of o.curves){const u=t.getNodeDisplayData(l.sourceId),d=t.getNodeDisplayData(l.targetId);if(!u||!d||u.hidden||d.hidden)continue;const c=t.graphToViewport(l.source),p=t.graphToViewport(l.target);if(!Number.isFinite(c.x)||!Number.isFinite(c.y)||!Number.isFinite(p.x)||!Number.isFinite(p.y))continue;const b=p.x-c.x,m=p.y-c.y,f=Math.hypot(b,m);if(f<=0)continue;const y=-m/f,h=b/f,v=f*l.curvature,x=(c.x+p.x)/2+y*v,g=(c.y+p.y)/2+h*v,w=E.edges.fullGraphStructureLayer;r.beginPath(),r.strokeStyle=l.edgeClass==="bridge"?K(E.palette.muted.edgeFocus,w.bridgeAlpha):K(E.palette.muted.edgeStructure,w.backboneAlpha),r.lineWidth=l.edgeClass==="bridge"?w.bridgeLineWidth:w.backboneLineWidth,r.moveTo(c.x,c.y),r.quadraticCurveTo(x,g,p.x,p.y),r.stroke(),i+=1}return i>0}const uu={iterations:50,settings:{barnesHutOptimize:!0,barnesHutTheta:.5,adjustSizes:!1,gravity:.16,scalingRatio:7.5,edgeWeightInfluence:.3,linLogMode:!0,strongGravityMode:!1,slowDown:18}},du=4500,pu={iterations:E.grouped.layout.iterations,settings:{barnesHutOptimize:!0,barnesHutTheta:.5,adjustSizes:!0,gravity:E.grouped.layout.gravity,scalingRatio:E.grouped.layout.scalingRatio,edgeWeightInfluence:E.grouped.layout.edgeWeightInfluence,linLogMode:!1,strongGravityMode:!1,slowDown:E.grouped.layout.slowDown}},hu={allowInvalidContainer:!0,labelRenderedSizeThreshold:6,defaultNodeType:"circle",defaultEdgeType:"line",hideLabelsOnMove:!0,hideEdgesOnMove:!0,enableEdgeEvents:!0,renderEdgeLabels:!0,labelDensity:.7,labelGridCellSize:140,zIndex:!0,minCameraRatio:.04,maxCameraRatio:8,webGLTarget:"webgl2",nodeProgramClasses:tu,edgeProgramClasses:ru,defaultDrawNodeLabel:fi,defaultDrawNodeHover:mi};function ye(t,e){console.debug(`[GraphCanvas] ${t}`,e??{})}function fu(t,e){let o=0;return t.forEachNode((r,a)=>{if(!e.hasNode(r))return;const n=e.getNodeAttributes(r),s=Number(n.x),i=Number(n.y),l=a;if(!Number.isFinite(s)||!Number.isFinite(i))return;const u=Number(l.x),d=Number(l.y);Math.abs(u-s)<=.001&&Math.abs(d-i)<=.001||(t.mergeNodeAttributes(r,{x:s,y:i}),o+=1)}),o}function mu(t,e){if(!e)return null;if(t.hasNode(e))return e;let o=null;return t.forEachNode((r,a)=>{if(o)return;const n=a.properties?.__communityGroup;if(n){if(n.anchorNodeId===e){o=r;return}(n.sampleNodeIds?.includes(e)||n.memberNodeIds?.includes(e))&&(o=r)}}),o}function Ca(t,e,o){if(!o)return[];const r=mu(t,o);if(!r)return[];const a=(e?.selectedVisibleNeighborIds??[]).filter(n=>t.hasNode(n)).slice(0,E.focus.maxNeighbors);return Array.from(new Set([r,...a]))}function gu(t,e){return t?t.graphVersion===e.graphVersion&&t.viewMode===e.viewMode&&t.layoutMode===e.layoutMode&&t.displayGraph===e.displayGraph:!1}function qo(t,e){let o=1/0,r=-1/0,a=1/0,n=-1/0,s=0;return e.forEach(i=>{const l=t.getNodeDisplayData(i);if(!l)return;const u=Number(l.x),d=Number(l.y);!Number.isFinite(u)||!Number.isFinite(d)||(o=Math.min(o,u),r=Math.max(r,u),a=Math.min(a,d),n=Math.max(n,d),s+=1)}),s===0?null:{minX:o,maxX:r,minY:a,maxY:n,count:s}}function Ia(t,e){const o=[];return e.forEachNode(r=>{o.push(r)}),qo(t,o)}function bu(t,e){const o=t.getCamera(),r=o.getState(),a=t.viewRectangle(),n=Math.abs(a.x2-a.x1),s=Math.abs(a.height),i=Math.abs(e.x[1]-e.x[0]),l=Math.abs(e.y[1]-e.y[0]),u=(e.x[0]+e.x[1])/2,d=(e.y[0]+e.y[1])/2;if(![n,s,i,l,u,d].every(Number.isFinite)||n<=0||s<=0||i<=0||l<=0)return null;const c=Math.max(i/n,l/s),p=o.getBoundedRatio(r.ratio*c);return!Number.isFinite(p)||p<=0?null:{x:u,y:d,ratio:p,angle:r.angle}}function Da(t,e,o){const r=o?.paddingRatio??.12,a=o?.minSpanRatio??.03,n=o?.minSpanFloor??1,s=Math.max(e?e.maxX-e.minX:0,n),i=Math.max(e?e.maxY-e.minY:0,n),l=Math.max(t.maxX-t.minX,0),u=Math.max(t.maxY-t.minY,0),d=Math.max(s*a,n),c=Math.max(i*a,n),p=Math.max(l,d),b=Math.max(u,c),m=(t.minX+t.maxX)/2,f=(t.minY+t.maxY)/2;if(![p,b,m,f].every(Number.isFinite))return null;const y=p*(1+r*2),h=b*(1+r*2);return y<=0||h<=0?null:{x:[m-y/2,m+y/2],y:[f-h/2,f+h/2]}}function Ko(t,e,o,r=96){return t.x>=-r&&t.y>=-r&&t.x<=e+r&&t.y<=o+r}function gi(t,e,o,r,a,n){const s=[];for(let i=0;i<e.length-1;i+=1){const l=e[i],u=e[i+1],d=t.getNodeDisplayData(l),c=t.getNodeDisplayData(u);if(!d||!c)continue;const p=t.graphToViewport({x:d.x,y:d.y}),b=t.graphToViewport({x:c.x,y:c.y});if(!Ko(p,a,n)&&!Ko(b,a,n))continue;const m=o[i]&&j.hasEdge(o[i])?j.getEdgeAttributes(o[i]):{baseColor:E.palette.accent.path,baseSize:1.2,edgeVariant:"pathSignal",arrowVisibilityPolicy:"always"},f=dn(E,r,"path",m,l,u);!f.color||!f.size||s.push({sourceId:l,targetId:u,source:p,target:b,color:f.color,size:f.size})}return s}function _a(t,e,o,r,a,n,s,i){const l=n?gi(n,t.activePath,t.activePathEdgeIds,t.zoomTier,s,i).length:0,u=t.activePath.length>1,d=xt(t.zoomTier,E.effects.pathPulse.minZoomTier),c=xt(t.zoomTier,E.effects.pathFlow.minZoomTier),p=xt(t.zoomTier,E.effects.lens.minZoomTier),b=xt(t.zoomTier,E.effects.temporalEmphasis.minZoomTier),m=xt(t.zoomTier,E.effects.semanticRegions.minZoomTier),f=xt(t.zoomTier,E.effects.contours.minZoomTier),y=!!(t.hoveredNodeId||t.selectedNodeId),h="Layout is still settling",v=e.pathPulseEnabled?a?{enabled:!0,available:!1,reason:h}:u?d?l===0?{enabled:!0,available:!1,reason:"Path is off-screen"}:l>E.effects.pathPulse.maxSegments?{enabled:!0,available:!1,reason:"Disabled by path size cap",detail:`${l} visible segments`,visibleSegments:l,segmentCap:E.effects.pathPulse.maxSegments}:{enabled:!0,available:!0,reason:"Ready",visibleSegments:l,segmentCap:E.effects.pathPulse.maxSegments}:{enabled:!0,available:!1,reason:"Disabled by zoom tier",detail:`Requires ${E.effects.pathPulse.minZoomTier}`}:{enabled:!0,available:!1,reason:"No active path"}:{enabled:!1,available:!1,reason:"Disabled by toggle"},x=e.pathFlowEnabled?a?{enabled:!0,available:!1,reason:h}:u?c?l===0?{enabled:!0,available:!1,reason:"Path is off-screen"}:l>E.effects.pathFlow.maxSegments?{enabled:!0,available:!1,reason:"Disabled by path size cap",detail:`${l} visible segments`,visibleSegments:l,segmentCap:E.effects.pathFlow.maxSegments}:{enabled:!0,available:!0,reason:"Ready",visibleSegments:l,segmentCap:E.effects.pathFlow.maxSegments}:{enabled:!0,available:!1,reason:"Disabled by zoom tier",detail:`Requires ${E.effects.pathFlow.minZoomTier}`}:{enabled:!0,available:!1,reason:"No active path"}:{enabled:!1,available:!1,reason:"Disabled by toggle"},g=e.lensEnabled?a?{enabled:!0,available:!1,reason:h}:y?p?{enabled:!0,available:!0,reason:"Ready"}:{enabled:!0,available:!1,reason:"Disabled by zoom tier",detail:`Requires ${E.effects.lens.minZoomTier}`}:{enabled:!0,available:!1,reason:"No focal node"}:{enabled:!1,available:!1,reason:"Disabled by toggle"},w=e.temporalEmphasisEnabled?a?{enabled:!0,available:!1,reason:h}:o?.currentTime?b?{enabled:!0,available:!0,reason:"Ready"}:{enabled:!0,available:!1,reason:"Disabled by zoom tier",detail:`Requires ${E.effects.temporalEmphasis.minZoomTier}`}:{enabled:!0,available:!1,reason:"No temporal focus time"}:{enabled:!1,available:!1,reason:"Disabled by toggle"},C=e.semanticRegionsEnabled?a?{enabled:!0,available:!1,reason:h}:m?r?.semanticRegions.ready?{enabled:!0,available:!0,reason:r.semanticRegions.reason}:{enabled:!0,available:!1,reason:r?.semanticRegions.reason??"Waiting for semantic region summaries"}:{enabled:!0,available:!1,reason:"Disabled by zoom tier",detail:`Requires ${E.effects.semanticRegions.minZoomTier}`}:{enabled:!1,available:!1,reason:"Disabled by toggle"},I=e.contoursEnabled?a?{enabled:!0,available:!1,reason:h}:f?r?.centrality.ready?{enabled:!0,available:!0,reason:r.centrality.reason}:{enabled:!0,available:!1,reason:r?.centrality.reason??"Waiting for centrality ranking"}:{enabled:!0,available:!1,reason:"Disabled by zoom tier",detail:`Requires ${E.effects.contours.minZoomTier}`}:{enabled:!1,available:!1,reason:"Disabled by toggle"},k=e.pathfindingEnabled?r?.directedPath.ready?{enabled:!0,available:!0,reason:r.directedPath.verifiedAgainstActivePath?"Ready · local path matches traced path":"Ready · local directed path differs from traced path"}:{enabled:!0,available:!1,reason:r?.directedPath.reason??"Waiting for a traced path"}:{enabled:!1,available:!1,reason:"Disabled by toggle"},D=e.communitiesEnabled?r?.communities.ready?{enabled:!0,available:!0,reason:r.communities.modularity!==null?`Ready · modularity ${r.communities.modularity.toFixed(3)}`:r.communities.reason}:{enabled:!0,available:!1,reason:r?.communities.reason??"Waiting for community summaries"}:{enabled:!1,available:!1,reason:"Disabled by toggle"},_=e.centralityEnabled?r?.centrality.ready?{enabled:!0,available:!0,reason:r.centrality.reason}:{enabled:!0,available:!1,reason:r?.centrality.reason??"Waiting for centrality ranking"}:{enabled:!1,available:!1,reason:"Disabled by toggle"},L=e.legendEnabled?{enabled:!0,available:!0,reason:"Panel enabled"}:{enabled:!1,available:!1,reason:"Disabled by toggle"},G=e.edgeLabelsEnabled?{enabled:!0,available:!0,reason:"Ready"}:{enabled:!1,available:!1,reason:"Disabled by toggle"},V=E.effects.diagnostics.enabledInDev?e.diagnosticsEnabled?{enabled:!0,available:!0,reason:"Ready"}:{enabled:!1,available:!1,reason:"Disabled by toggle"}:{enabled:!1,available:!1,reason:"Disabled in production"};return{pathPulse:v,pathFlow:x,lens:g,temporalEmphasis:w,semanticRegions:C,contours:I,pathfinding:k,communities:D,centrality:_,legend:L,edgeLabels:G,diagnostics:V}}function bi(t,e,o,r,a){const n=t.createRadialGradient(e,o,0,e,o,r);n.addColorStop(0,a),n.addColorStop(1,"rgba(0,0,0,0)"),t.fillStyle=n,t.beginPath(),t.arc(e,o,r,0,Math.PI*2),t.fill()}function yu(t,e,o,r,a,n){const s=E.nodes.badges[a],i=E.nodes.badge.radius,l=E.nodes.badge.offset,u=e+Math.max(r*.62,i+l),d=o-Math.max(r*.62,i+l);bi(t,u,d,E.overlays.badgeGlowRadius,K(s.color,E.nodes.badge.glowAlpha)),t.fillStyle=s.color,t.beginPath(),t.arc(u,d,i,0,Math.PI*2),t.fill(),t.strokeStyle=E.nodes.badge.stroke,t.lineWidth=1,t.beginPath(),t.arc(u,d,i,0,Math.PI*2),t.stroke(),t.fillStyle=E.nodes.badge.textColor,t.font=`700 ${E.nodes.badge.fontSize}px Inter, system-ui, sans-serif`,t.textAlign="center",t.textBaseline="middle";const c=a==="provenance"&&n&&n>1?String(Math.min(9,n)):s.label;t.fillText(c,u,d+.5)}const vu=["hidden","backbone","bridge","local-context","selected","path","muted"];function xu(){return vu.reduce((t,e)=>(t[e]=0,t),{})}function Su(t,e){return E.edges.contextCaps[t]?.[e]??0}function wu(t,e,o,r,a,n,s){if(n.has(e)||s&&e===s)return Number.POSITIVE_INFINITY;const i=Math.max(Number(t.weight??t.representativeWeight??1)||1,1),l=Math.min(1,Math.log1p(i)/Math.log(25)),u=Math.max(0,Math.min(Number(t.visualPriority??0),1)),d=Math.max(0,Math.min(Number(t.relationshipStrength??0),1));return(r.has(o)?6:0)+(a.has(o)?1.25:0)+u*2+l*1.4+d}function Nu(t,e,o,r,a){const n=e.hoveredNodeId||e.selectedNodeId;if(!n||!t.hasNode(n))return new Set;const s=Su(e.viewMode,e.zoomTier);if(s<=0&&!e.selectedEdgeId&&a.size===0)return new Set;const i=new Set((o?.selectedVisibleNeighborIds??[]).filter(d=>t.hasNode(d))),l=[];t.edges(n).forEach(d=>{const c=String(d);if(!t.hasEdge(c))return;const[p,b]=t.extremities(c),m=String(p),f=String(b),y=m===n?f:m,h=t.getEdgeAttributes(c);l.push({edgeId:c,score:wu(h,c,y,i,r,a,e.selectedEdgeId)})}),l.sort((d,c)=>c.score!==d.score?c.score-d.score:d.edgeId.localeCompare(c.edgeId));const u=new Set;return l.forEach(d=>{(d.edgeId===e.selectedEdgeId||a.has(d.edgeId)||u.size<s)&&u.add(d.edgeId)}),u}function Eu(t,e,o,r,a){const{viewMode:n,zoomTier:s,hoveredNodeId:i,selectedNodeId:l,selectedEdgeId:u,activePath:d}=e,c=i||l,p=c?t.hasNode(c)?kr(t,c):new Set:new Set,b=no(t,d,e.activePathEdgeIds);return{viewMode:n,zoomTier:s,hoveredNodeId:i,selectedNodeId:l,selectedEdgeId:u,activePath:d,activePathEdgeIds:e.activePathEdgeIds,focusIds:p,edgeEndpointIds:ln(t,u),pathNodeIds:new Set(d),pathEdgeIds:b,overviewBackboneEdgeIds:new Set(r?.overviewBackbone.edgeIds??[]),distanceVisualState:a,highlightedIncidentEdgeIds:Nu(t,e,o,p,b)}}function bn(t,e,o){if(!t.hasEdge(e))return"hidden";const[r,a]=t.extremities(e),n=String(r),s=String(a),i=t.hasNode(n)?t.getNodeAttributes(n):void 0,l=t.hasNode(s)?t.getNodeAttributes(s):void 0;return ic(e,n,s,o.zoomTier,o.hoveredNodeId,o.selectedNodeId,o.selectedEdgeId,o.focusIds,o.pathEdgeIds,o.highlightedIncidentEdgeIds,o.overviewBackboneEdgeIds,i,l)}function Au(t,e){const o=xu();return t.forEachEdge(r=>{const a=e.viewMode==="full"?bn(t,String(r),e):"hidden";o[a]+=1}),{mode:e.viewMode,zoomTier:e.zoomTier,totalEdges:t.size,visibleEdges:t.size-o.hidden,counts:o,updatedAt:Date.now()}}function ku(t,e,o,r){if(t.setSetting("nodeReducer",(a,n)=>{const s=t.getGraph(),i=e.current,l=t.getCamera().getState().ratio;if(!s.hasNode(a))return o.current.missingNodes.has(a)||(o.current.missingNodes.add(a),ye("node-reducer-node-missing",{nodeId:a,order:s.order,size:s.size})),{...n,hidden:!0};const u=n,d=ni(a,i.zoomTier,i.hoveredNodeId,i.selectedNodeId,i.selectedEdgeId,i.focusIds,i.edgeEndpointIds,i.pathNodeIds),c=qr(E,i.zoomTier,d,u,n.label,l),p=i.viewMode==="full"?zl(E,i.zoomTier,c,i.distanceVisualState,String(a)):{},b={...c,...p};return{...n,color:b.color,shellColor:b.shellColor,coreScale:b.coreScale,size:b.size,forceLabel:b.forceLabel,label:b.label,zIndex:b.zIndex,hidden:b.hidden,borderColor:b.borderColor,borderSize:b.borderSize,ringColor:b.showRing?b.ringColor:b.borderColor,ringSize:b.ringSize,entityShape:b.entityShape,entityShapeKind:b.entityShapeKind,entityAspectRatio:b.entityAspectRatio}}),t.setSetting("edgeReducer",(a,n)=>{const s=t.getGraph(),i=e.current;if(!s.hasEdge(a))return o.current.missingEdges.has(a)||(o.current.missingEdges.add(a),ye("edge-reducer-edge-missing",{edgeId:a,order:s.order,size:s.size})),{...n,hidden:!0};const l=n,[u,d]=s.extremities(a),c=String(a),p=!!(i.hoveredNodeId||i.selectedNodeId||i.selectedEdgeId||i.pathEdgeIds.size>0),b=i.viewMode==="full"?bn(s,c,i):void 0,m=i.viewMode==="full"?sc(b??"hidden",{hoveredNodeId:i.hoveredNodeId,hasActiveInteraction:p}):nc(c,String(u),String(d),i.zoomTier,i.hoveredNodeId,i.selectedNodeId,i.selectedEdgeId,i.focusIds,i.pathEdgeIds,i.highlightedIncidentEdgeIds),f=dn(E,i.zoomTier,m,l,u,d,i.viewMode,c,b),y=i.viewMode==="full"?Vl(f,i.distanceVisualState,String(u),String(d),b):{},h={...f,...y};return{...n,hidden:h.hidden,type:h.type,color:h.color,size:h.size,zIndex:h.zIndex,curvature:h.curvature,label:h.hidden?void 0:String(l.edgeType||n.label||"")}}),(r?.nodes?.length??0)>0||(r?.edges?.length??0)>0){t.scheduleRefresh({partialGraph:{nodes:r?.nodes,edges:r?.edges}});return}t.scheduleRefresh()}function Cu(t,e,o){for(const r of t)if(r.performAction?.(e,o))return}const Iu=A.forwardRef(function({graphVersion:e,graphReady:o,displayGraph:r,displayMeta:a,displayState:n,onNodeClick:s,onEdgeClick:i,selectedNodeId:l,focusedNodeId:u,selectedEdgeId:d,activePath:c=[],activePathEdgeIds:p=[],distanceVisualState:b,effectsState:m,temporalState:f,isLayoutRunning:y,onLayoutRunningChange:h,viewMode:v,className:x,showFitViewButton:g=!0,pluginOverlays:w=[],onSceneRuntimeChange:C,onInteractionStateChange:I,onCameraStateChange:k,onDiagnosticsChange:D,onAnalyticsChange:_},L){const G=A.useRef(null),V=A.useRef(null),q=A.useRef(null),W=A.useRef(null),F=A.useRef(null),ee=A.useRef(null),U=A.useRef(null),T=A.useRef(null),P=A.useRef(null),z=A.useRef(null),te=A.useRef(null),Q=A.useRef(null),B=A.useRef(r),le=A.useRef(n),J=A.useRef(a),re=A.useRef(e),ce=A.useRef(l),ue=A.useRef(u),ge=A.useRef(b),se=A.useRef(v),Ce=A.useRef(s),_e=A.useRef(i),be=A.useRef(C),Me=A.useRef(k),we=A.useRef(m),[Qe,Je]=A.useState(null),[$e,pt]=A.useState("overview"),[We,et]=A.useState(null),[ht,Ze]=A.useState(0),it=A.useRef(null),tt=A.useRef(null),Ie=A.useRef(null),qe=A.useRef(0),xe=A.useRef(null),ve=A.useRef(null),he=A.useRef(null),Ke=A.useRef({missingEdges:new Set,missingNodes:new Set});B.current=r,le.current=n,J.current=a,re.current=e,ce.current=l,ue.current=u,ge.current=b,se.current=v,Ce.current=s,_e.current=i,be.current=C,Me.current=k,we.current=m;const de=A.useMemo(()=>[Es,As,ks,Cs(),_s(),Gs,Ls()],[]),ie=A.useMemo(()=>Sc(Qe,l,u,d,c,p,v,$e,y),[c,p,u,Qe,y,d,l,v,$e]),De=A.useRef(ie);De.current=ie;const je=A.useRef(null),Ue=A.useRef(void 0);A.useEffect(()=>{y||Ze(M=>M+1)},[r,e,y]);const Oe=m.communitiesEnabled||m.semanticRegionsEnabled,Re=m.centralityEnabled||m.semanticRegionsEnabled||m.contoursEnabled,st=A.useMemo(()=>ro(r,{computeCommunities:Oe,computeCentrality:Re}),[r,Re,Oe]),rt=A.useMemo(()=>Eu(r,ie,n,We,b),[We,r,n,b,ie]),jt=A.useRef(rt);jt.current=rt;const Ge=A.useMemo(()=>Au(r,rt),[r,rt]),Et=A.useMemo(()=>ou({mode:E.edges.fullGraphStructureLayer.mode,viewMode:v,isLayoutRunning:y,edgeDiagnostics:Ge,minimumLiteralEdges:E.edges.fullGraphStructureLayer.minimumLiteralEdges}),[Ge,y,v]),ot=A.useMemo(()=>{if(!Et.enabled)return null;const M=su({graphVersion:e,zoomTier:$e,layoutSettledEpoch:ht,overviewBackboneEdgeIds:rt.overviewBackboneEdgeIds});return lu({graphRef:r,cacheKey:M,classifyEdge:H=>bn(r,H,rt),maxCurves:E.edges.fullGraphStructureLayer.maxCurves,curveStrength:E.edges.fullGraphStructureLayer.curveStrength})},[r,e,ht,rt,Et.enabled,$e]);W.current=ot;const Bt=A.useMemo(()=>Aa({gate:Et,cache:ot,minimumCurves:E.edges.fullGraphStructureLayer.minimumCurves,canvasAvailable:!!q.current,lastDrawAt:F.current}),[ot,Et]);ee.current=Bt;const Le=A.useMemo(()=>({graphVersion:e,viewMode:v,layoutMode:a.layoutMode,displayGraph:r}),[r,a.layoutMode,e,v]),At=A.useCallback((M,H,X)=>{const O=U.current;if(!O)return;O.getCustomBBox()&&O.setCustomBBox(null);const oe=G.current,ae=O.getDimensions(),pe=O.getCamera().getState(),Y=H?bu(O,H):{x:.5,y:.5,ratio:1,angle:pe.angle};if(!Y){ye("camera-fit-target-invalid",{intent:M,graphVersion:re.current,viewMode:se.current,order:B.current.order,size:B.current.size,boundsX:H?.x??null,boundsY:H?.y??null,...X});return}ye("camera-fit-target",{intent:M,graphVersion:re.current,viewMode:se.current,order:B.current.order,size:B.current.size,selectionPreserved:!!ce.current,containerWidth:oe?.clientWidth??ae.width,containerHeight:oe?.clientHeight??ae.height,targetX:Y.x,targetY:Y.y,targetRatio:Y.ratio,boundsX:H?.x??null,boundsY:H?.y??null,...X}),O.getCamera().animate(Y,{duration:E.motion.cameraMs,easing:"quadraticOut"})},[]),ir=A.useCallback(()=>{const M=U.current;if(!M)return;const H=Ia(M,B.current);if(!H){ye("camera-fit-display-graph-fallback",{graphVersion:re.current,viewMode:se.current,reason:"display-bounds-unavailable",order:B.current.order,size:B.current.size}),At("fit-display-graph",null,{fallback:"reset-empty-bounds"});return}const X=Da(H,H,{paddingRatio:.14,minSpanRatio:.02,minSpanFloor:.04});At("fit-display-graph",X,{boundsCount:H.count,minX:H.minX,maxX:H.maxX,minY:H.minY,maxY:H.maxY})},[At]),Ht=A.useCallback(function M(H,X=0){const O=U.current;if(!O)return;const oe=B.current,ae=Ca(oe,le.current,H);if(ae.length===0){ye("camera-selection-missing-node",{nodeId:H,graphVersion:re.current,viewMode:se.current});return}const pe=ae[0],Y=O.getNodeDisplayData(pe);if(Y){const Te=O.graphToViewport({x:Y.x,y:Y.y}),Ye=O.getDimensions();if(Ko(Te,Ye.width,Ye.height,96)){ye("camera-selection-visible-noop",{nodeId:H,selectedDisplayNodeId:pe,graphVersion:re.current,viewMode:se.current,viewportX:Te.x,viewportY:Te.y}),O.scheduleRefresh();return}}const fe=qo(O,ae);if(!fe){X<3?(ye("camera-selection-display-bounds-deferred",{nodeId:H,graphVersion:re.current,attempt:X+1,viewMode:se.current,contextCount:ae.length}),xe.current!==null&&window.cancelAnimationFrame(xe.current),xe.current=window.requestAnimationFrame(()=>{xe.current=null,M(H,X+1)})):ye("camera-selection-display-bounds-fallback-fit",{nodeId:H,graphVersion:re.current,viewMode:se.current,contextCount:ae.length});return}const Be=O.getCamera(),ze=Be.getState(),He={x:(fe.minX+fe.maxX)/2,y:(fe.minY+fe.maxY)/2,ratio:ze.ratio,angle:ze.angle};ye("camera-selection-gentle-center",{nodeId:H,contextCount:fe.count,boundsSource:"displayed-selection-context",minX:fe.minX,maxX:fe.maxX,minY:fe.minY,maxY:fe.maxY,targetX:He.x,targetY:He.y,preservedRatio:He.ratio}),Be.animate(He,{duration:E.motion.cameraMs,easing:"quadraticOut"})},[]),Ft=A.useCallback(M=>{const H=U.current;if(!H)return;const X=B.current,O=Ca(X,le.current,M);if(O.length===0){ye("camera-grouped-selection-missing-node",{nodeId:M,graphVersion:re.current,viewMode:se.current});return}const oe=qo(H,O);if(!oe){ye("camera-grouped-selection-display-bounds-missing",{nodeId:M,graphVersion:re.current,viewMode:se.current,contextCount:O.length});return}const ae=H.getCamera(),pe=ae.getState(),Y={x:(oe.minX+oe.maxX)/2,y:(oe.minY+oe.maxY)/2,ratio:pe.ratio,angle:pe.angle};ye("camera-grouped-selection-center",{nodeId:M,graphVersion:re.current,viewMode:se.current,contextCount:oe.count,targetX:Y.x,targetY:Y.y,preservedRatio:Y.ratio}),ae.animate(Y,{duration:E.motion.cameraMs,easing:"quadraticOut"})},[]),Se=A.useCallback(M=>{const H=U.current;if(!H)return;if(se.current==="focused"&&!!ce.current&&j.hasNode(ce.current)){const O=Ia(H,B.current),oe=O?Da(O,O,{paddingRatio:.14,minSpanRatio:.08,minSpanFloor:.02}):null;At("fit-focused-graph",oe,{nodeId:M,focusedCount:O?.count??0,focusedMinX:O?.minX??null,focusedMaxX:O?.maxX??null,focusedMinY:O?.minY??null,focusedMaxY:O?.maxY??null});return}Ht(M)},[At,Ht]),Tt=A.useCallback(()=>{ir()},[ir]),kt=A.useCallback(M=>{const H=P.current;H&&Cu(de,H,M)},[de]),ft=A.useCallback(M=>{const H=M??U.current;if(!H)return null;const X={sigma:H,graph:j,displayGraph:B.current,getInteractionState:()=>De.current,setHoveredNodeId:Je,onNodeSelectionChange:O=>Ce.current(O),onEdgeSelectionChange:O=>_e.current?.(O),focusNodeInView:Se,centerSelectionInView:Ht,centerGroupedSelectionInView:Ft,fitCurrentView:Tt,dispatchAction:kt};return P.current=X,X},[Ft,Ht,kt,Tt,Se]),mt=A.useCallback((M,...H)=>{const X=ft();if(X)for(const O of de){const oe=O[M];typeof oe=="function"&&oe(X,...H)}},[de,ft]);A.useImperativeHandle(L,()=>({fitView:()=>kt({type:"fitView"}),focusNode:M=>kt({type:"focusNode",nodeId:M}),zoomIn:()=>{const M=U.current;M&&(ye("camera-zoom-in",{graphVersion:re.current,ratioBefore:M.getCamera().getState().ratio}),M.getCamera().animatedZoom({duration:E.motion.cameraMs}))},zoomOut:()=>{const M=U.current;M&&(ye("camera-zoom-out",{graphVersion:re.current,ratioBefore:M.getCamera().getState().ratio}),M.getCamera().animatedUnzoom({duration:E.motion.cameraMs}))},requestRender:()=>U.current?.scheduleRefresh(),getCameraState:()=>{const M=U.current;if(!M)return null;const H=M.getCamera().getState();return{x:H.x,y:H.y,ratio:H.ratio}}}),[kt]);const $t=A.useCallback(M=>{const X=M.getCamera().getState(),O={x:X.x,y:X.y,ratio:X.ratio},oe=Ji(O.ratio);pt(ae=>ae===oe?ae:oe),Me.current?.(O),mt("onCameraChange",O),ye("camera-updated",{graphVersion:re.current,ratio:O.ratio})},[mt]);A.useEffect(()=>{if(!o||U.current||!G.current)return;const M=new Zi(B.current,G.current,{...hu,renderEdgeLabels:we.current.edgeLabelsEnabled});U.current=M,it.current=re.current;const H=M.getCamera(),X={renderer:"sigma",scene:M,graph:j,displayGraph:B.current,graphVersion:re.current,layoutMode:J.current.layoutMode,requestRender:()=>M.scheduleRefresh(),getCameraState:()=>{const Y=H.getState();return{x:Y.x,y:Y.y,ratio:Y.ratio}}};z.current=X,be.current?.(X),ye("sigma-created",{graphVersion:re.current,layoutMode:J.current.layoutMode,order:B.current.order,size:B.current.size});const O=ft(M);if(O)for(const Y of de)Y.attach(O);const oe=()=>{G.current&&G.current.offsetWidth>0&&M.scheduleRefresh()},ae=new ResizeObserver(oe);ae.observe(G.current),te.current=ae;const pe=()=>$t(M);Q.current=pe,H.on("updated",pe),M.on("clickNode",({node:Y})=>mt("onNodeClick",Y)),M.on("clickEdge",({edge:Y})=>{const fe=B.current,[Be,ze]=fe.extremities(Y),He=String(Y),Te=fe.getEdgeAttributes(Y);ga(fe,De.current,He,Be,ze,Te)&&mt("onEdgeClick",He)}),M.on("clickStage",()=>mt("onStageClick")),M.on("enterNode",({node:Y})=>mt("onNodeEnter",Y)),M.on("leaveNode",({node:Y})=>mt("onNodeLeave",Y)),M.on("enterEdge",({edge:Y})=>{const fe=G.current;if(!fe)return;const Be=B.current,[ze,He]=Be.extremities(Y),Te=String(Y),Ye=Be.getEdgeAttributes(Y);fe.style.cursor=ga(Be,De.current,Te,ze,He,Ye)?"pointer":""}),M.on("leaveEdge",()=>{G.current&&(G.current.style.cursor="")});try{const Y=M.createCanvas("structure",{beforeLayer:"nodes",afterLayer:"edges",style:{pointerEvents:"none"}});q.current=Y}catch(Y){ye("structure-layer-create-failed",{error:Y instanceof Error?Y.message:String(Y)}),q.current=null}requestAnimationFrame(()=>{$t(M)})},[de,mt,ft,o,$t]),A.useEffect(()=>{const M=U.current;M&&(M.setSetting("renderEdgeLabels",m.edgeLabelsEnabled),M.scheduleRefresh())},[m.edgeLabelsEnabled]),A.useEffect(()=>()=>{const M=U.current,H=P.current;if(H)for(const X of de)X.detach(H);if(G.current&&(G.current.style.cursor=""),te.current?.disconnect(),te.current=null,M&&Q.current&&M.getCamera().off("updated",Q.current),Q.current=null,M){if(ye("sigma-killed",{graphVersion:re.current}),q.current)try{M.killLayer("structure")}catch{}q.current=null,M.kill()}xe.current!==null&&(window.cancelAnimationFrame(xe.current),xe.current=null),z.current=null,P.current=null,U.current=null,be.current?.(null)},[de]),A.useEffect(()=>{const M=U.current;!o||!M||it.current===e&&M.getGraph()===r||(ye("sigma-set-graph",{graphVersion:e,displayFitViewMode:Le.viewMode,displayFitLayoutMode:Le.layoutMode,layoutMode:a.layoutMode,order:r.order,size:r.size}),xe.current!==null&&(window.cancelAnimationFrame(xe.current),xe.current=null),Ke.current.missingEdges.clear(),Ke.current.missingNodes.clear(),M.setCustomBBox(null),M.setGraph(r),it.current=e,tt.current=null,je.current=null,Ue.current=void 0,P.current=ft(M),z.current&&(z.current.displayGraph=r,z.current.graphVersion=e,z.current.layoutMode=a.layoutMode),M.scheduleRefresh())},[Le.layoutMode,Le.viewMode,r,a.layoutMode,ft,o,e]),A.useEffect(()=>{const M=U.current;if(!o||!M||gu(tt.current,Le))return;const H=window.requestAnimationFrame(()=>{if(!(!U.current||re.current!==e||B.current!==Le.displayGraph||se.current!==Le.viewMode||J.current.layoutMode!==Le.layoutMode)){if(tt.current=Le,ye("display-fit-signature-applied",{graphVersion:Le.graphVersion,viewMode:Le.viewMode,layoutMode:Le.layoutMode,order:Le.displayGraph.order,size:Le.displayGraph.size}),ue.current&&se.current==="focused"){ye("initial-focused-fit",{graphVersion:e,nodeId:ue.current}),Se(ue.current);return}ye("initial-fit-view",{graphVersion:e,selectedNodeId:ce.current||null,viewMode:se.current}),kt({type:"fitView"})}});return()=>{window.cancelAnimationFrame(H)}},[Ht,kt,Le,Se,o,e]),A.useEffect(()=>{const M=ft();if(M){for(const H of de)H.onStateChange?.(M,ie);for(const H of de)H.apply?.(M,ie);I?.(ie)}},[de,ft,ie,I]),A.useEffect(()=>{const M=U.current,H=G.current;if(!M||!H){et(null),_?.(null);return}const X=Sa(M,r,H.clientWidth,H.clientHeight).map(oe=>oe.nodeId),O=Sl({graphRef:r,interactionState:ie,base:st,visibleNodeIds:X});et(O),_?.(O)},[st,r,ie,_]),A.useEffect(()=>{if(!D)return;const M=U.current,H=G.current,X=_a(ie,m,f,We,y,M,H?.clientWidth??0,H?.clientHeight??0);D({effectAvailability:X,edgeClasses:Ge,structureLayer:ee.current??Bt,distanceVisual:ge.current}),m.diagnosticsEnabled&&console.debug("[Edge Truth]",Ge)},[We,Ge,m,ie,y,D,Bt,f,b]),A.useEffect(()=>{je.current=null,Ue.current=void 0},[r]),A.useEffect(()=>{const M=U.current;if(!M)return;const H=je.current,O=!(Ue.current!==b)&&H?Kl(r,H,ie):void 0;ku(M,jt,Ke,O),je.current=ie,Ue.current=b},[r,b,ie,jt]);const Cr=A.useCallback(()=>{const M=U.current,H=q.current,X=W.current,O=Aa({gate:Et,cache:X,minimumCurves:E.edges.fullGraphStructureLayer.minimumCurves,canvasAvailable:!!H,lastDrawAt:F.current});if(ee.current=O,!M||!H||!O.enabled||!X){ka(H);return}cu({sigma:M,canvas:H,cache:X})&&(F.current=Date.now(),ee.current={...O,lastDrawAt:F.current})},[Et]);A.useEffect(()=>{const M=U.current;if(!o||!M)return;const H=()=>Cr();return M.on("afterRender",H),H(),()=>{M.off("afterRender",H)}},[Cr,o,ot]),A.useEffect(()=>{(y||v!=="full")&&ka(q.current)},[y,v]);const sr=A.useCallback(()=>{const M=U.current,H=V.current,X=G.current;if(!M||!H||!X)return!1;const O=X.getBoundingClientRect(),oe=window.devicePixelRatio||1;(H.width!==Math.floor(O.width*oe)||H.height!==Math.floor(O.height*oe))&&(H.width=Math.floor(O.width*oe),H.height=Math.floor(O.height*oe),H.style.width=`${O.width}px`,H.style.height=`${O.height}px`);const ae=H.getContext("2d");if(!ae)return!1;ae.setTransform(oe,0,0,oe,0,0),ae.clearRect(0,0,O.width,O.height);const pe=ie.hoveredNodeId||ie.selectedNodeId,Y=pe?r.hasNode(pe)?kr(r,pe):new Set:new Set,fe=ln(r,ie.selectedEdgeId),Be=new Set(ie.activePath),ze=gi(M,ie.activePath,ie.activePathEdgeIds,ie.zoomTier,O.width,O.height),He=Sa(M,r,O.width,O.height),Te=_a(ie,m,f,We,y,M,O.width,O.height),Ye=M.getCamera().getState().ratio,ao=new Set([...Y,...fe,...Be,...pe?[pe]:[]]),Dr=new Set;pe&&jt.current.highlightedIncidentEdgeIds.forEach(gt=>{if(!r.hasEdge(gt))return;const[St,qt]=r.extremities(gt),Kt=String(St)===pe?String(qt):String(St);r.hasNode(Kt)&&Dr.add(Kt)});const io=performance.now()/1e3;return y||(Dc(ae,We,He,ie,m),Ic(ae,We,He,ie,m),Gc(ae,He,f,ie,m)),ao.forEach(gt=>{const St=M.getNodeDisplayData(gt);if(!St)return;if(!r.hasNode(gt)){ye("overlay-node-missing-from-display-graph",{nodeId:gt,graphVersion:re.current,viewMode:se.current});return}const qt=r.getNodeAttributes(gt),Kt=ni(gt,ie.zoomTier,ie.hoveredNodeId,ie.selectedNodeId,ie.selectedEdgeId,Y,fe,Be),Ee=qr(E,ie.zoomTier,Kt,qt,qt.label,Ye),me=M.graphToViewport({x:St.x,y:St.y});if(Ee.showHalo){const lr=Math.max(St.size*E.overlays.glowRadiusMultiplier*(Ee.nodeVariant==="selected"?1.08:1),E.overlays.minGlowRadius);bi(ae,me.x,me.y,lr,K(Ee.haloColor,gt===pe?E.overlays.hoverGlowAlpha:E.overlays.pathGlowAlpha))}Ee.showBadge&&Ee.badgeKind&&yu(ae,me.x,me.y,St.size,Ee.badgeKind,Ee.badgeCount)}),!y&&pe&&Te.lens.available&&Lc(ae,M,pe,Dr),Pc(ae,ze,m,Te,io),Te.pathPulse.available||Te.pathFlow.available},[We,r,m,ie,y,f]);A.useEffect(()=>{const M=U.current,H=G.current;if(!o||!M||!H)return;let X=0,O=!1;const oe=()=>{if(O)return;sr()&&(X=window.requestAnimationFrame(oe))},ae=()=>{X===0&&sr()},pe=M.getCamera(),Y=new ResizeObserver(ae);return Y.observe(H),pe.on("updated",ae),oe(),()=>{O=!0,Y.disconnect(),pe.off("updated",ae),X!==0&&window.cancelAnimationFrame(X)}},[sr,o]),A.useEffect(()=>{const M=U.current,H=a.layoutMode==="owned"?r:j,X=a.layoutMode==="owned"&&v==="grouped",O=a.layoutMode==="owned"?`display:${e}:${v}`:`store:${a.layoutMode}`,oe=T.current?.__targetKey;if(!y){T.current?.stop(),ve.current!==null&&(window.clearTimeout(ve.current),ve.current=null),he.current!==null&&(window.clearTimeout(he.current),he.current=null),Ie.current!==null&&(window.cancelAnimationFrame(Ie.current),Ie.current=null);return}if(!T.current||oe!==O){T.current?.kill();const ae=new Qi(H,X?pu:uu);ae.__targetKey=O,T.current=ae,ye("layout-target-changed",{graphVersion:e,layoutMode:a.layoutMode,target:a.layoutMode==="owned"?"display-owned":a.layoutMode==="base"?"base":"store-for-mirror",order:H.order,size:H.size})}if(T.current.start(),he.current!==null&&(window.clearTimeout(he.current),he.current=null),ve.current!==null&&(window.clearTimeout(ve.current),ve.current=null),X?he.current=window.setTimeout(()=>{T.current?.stop(),he.current=null,h?.(!1),ye("grouped-layout-auto-settled",{graphVersion:re.current,viewMode:se.current,order:B.current.order,size:B.current.size})},E.grouped.layout.settleMs):ve.current=window.setTimeout(()=>{T.current?.stop(),ve.current=null,h?.(!1),ye("full-layout-auto-settled",{graphVersion:re.current,viewMode:se.current,layoutMode:J.current.layoutMode,order:B.current.order,size:B.current.size})},du),a.layoutMode==="mirrored"&&M){let ae=!1;const pe=()=>{if(ae||!U.current||!y)return;const Y=fu(B.current,j);Y>0&&(U.current.scheduleRefresh(),qe.current+=1,(qe.current===1||qe.current%30===0)&&ye("layout-mirror-sync",{graphVersion:re.current,changedNodes:Y,tick:qe.current})),Ie.current=window.requestAnimationFrame(pe)};return qe.current=0,Ie.current=window.requestAnimationFrame(pe),()=>{ae=!0,ve.current!==null&&(window.clearTimeout(ve.current),ve.current=null),he.current!==null&&(window.clearTimeout(he.current),he.current=null),Ie.current!==null&&(window.cancelAnimationFrame(Ie.current),Ie.current=null),T.current?.stop()}}return()=>{ve.current!==null&&(window.clearTimeout(ve.current),ve.current=null),he.current!==null&&(window.clearTimeout(he.current),he.current=null),T.current?.stop()}},[r,a.layoutMode,e,y,v]),A.useEffect(()=>()=>{ve.current!==null&&(window.clearTimeout(ve.current),ve.current=null),he.current!==null&&(window.clearTimeout(he.current),he.current=null),Ie.current!==null&&(window.cancelAnimationFrame(Ie.current),Ie.current=null),T.current?.kill(),T.current=null},[]);const Ir=A.useCallback(()=>{Tt()},[Tt]);return N.jsxDEV("div",{style:{position:"relative",width:"100%",height:"100%"},children:[N.jsxDEV("div",{ref:G,className:x,style:{width:"100%",height:"100%",background:"transparent"}},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphCanvas.tsx",lineNumber:2056,columnNumber:9},this),N.jsxDEV("canvas",{ref:V,style:{position:"absolute",inset:0,width:"100%",height:"100%",pointerEvents:"none",zIndex:4}},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphCanvas.tsx",lineNumber:2061,columnNumber:9},this),w.length?N.jsxDEV("div",{style:{position:"absolute",inset:0,pointerEvents:"none",zIndex:6},children:w.map((M,H)=>N.jsxDEV("div",{style:{position:"absolute",inset:0},children:M},`graph-plugin-overlay-${H}`,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphCanvas.tsx",lineNumber:2075,columnNumber:55},this))},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphCanvas.tsx",lineNumber:2069,columnNumber:34},this):null,g?N.jsxDEV("button",{id:"graph-fit-view-btn",onClick:Ir,style:{position:"absolute",bottom:24,left:24,padding:"8px 16px",background:"linear-gradient(135deg, rgba(27, 79, 170, 0.9), rgba(53, 123, 255, 0.84))",color:"#16181d",border:`1px solid ${E.palette.background.shellBorder}`,borderRadius:10,cursor:"pointer",fontWeight:700,zIndex:10,backdropFilter:"blur(10px)",boxShadow:`0 10px 28px ${E.palette.background.shellGlow}`,fontSize:12,letterSpacing:"0.01em"},children:"Fit View"},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphCanvas.tsx",lineNumber:2082,columnNumber:30},this):null]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphCanvas.tsx",lineNumber:2051,columnNumber:10},this)}),Du=A.forwardRef(function(e,o){const r=Xe.c(26);if(r[0]!=="34a2ed6bef1a7df66f98f7869ae3852e0da6b39ceb93661a7314cab99b13149d"){for(let g=0;g<26;g+=1)r[g]=Symbol.for("react.memo_cache_sentinel");r[0]="34a2ed6bef1a7df66f98f7869ae3852e0da6b39ceb93661a7314cab99b13149d"}let a,n,s,i,l,u,d,c,p;r[1]!==e?({onNodeSelect:d,onEdgeSelect:i,onInteractionStateChange:l,onCameraStateChange:n,onDiagnosticsChange:s,onAnalyticsChange:a,onRuntimeChange:c,onLayoutRunningChange:u,...p}=e,r[1]=e,r[2]=a,r[3]=n,r[4]=s,r[5]=i,r[6]=l,r[7]=u,r[8]=d,r[9]=c,r[10]=p):(a=r[2],n=r[3],s=r[4],i=r[5],l=r[6],u=r[7],d=r[8],c=r[9],p=r[10]);const b=A.useRef(null),m=A.useRef(null);let f,y;r[11]!==u?(f=()=>({fitView:()=>b.current?.fitView(),focusNode:g=>b.current?.focusNode(g),zoomIn:()=>b.current?.zoomIn(),zoomOut:()=>b.current?.zoomOut(),getRuntime:()=>m.current,setLayoutRunning:u?g=>{u(g)}:void 0}),y=[u],r[11]=u,r[12]=f,r[13]=y):(f=r[12],y=r[13]),A.useImperativeHandle(o,f,y);const h=d??_u;let v;r[14]!==c?(v=g=>{m.current=g,c?.(g)},r[14]=c,r[15]=v):v=r[15];let x;return r[16]!==a||r[17]!==n||r[18]!==s||r[19]!==i||r[20]!==l||r[21]!==u||r[22]!==p||r[23]!==h||r[24]!==v?(x=N.jsxDEV(Iu,{ref:b,onNodeClick:h,onEdgeClick:i,onInteractionStateChange:l,onCameraStateChange:n,onDiagnosticsChange:s,onAnalyticsChange:a,onSceneRuntimeChange:v,onLayoutRunningChange:u,...p},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/SigmaSceneAdapter.tsx",lineNumber:93,columnNumber:10},this),r[16]=a,r[17]=n,r[18]=s,r[19]=i,r[20]=l,r[21]=u,r[22]=p,r[23]=h,r[24]=v,r[25]=x):x=r[25],x});function _u(){}const Sr=["bootstrapping","fetching_nodes","fetching_edges","computing_styling","hydrating_scene","stabilizing_layout"];function yi(t){switch(t){case"bootstrapping":return"Preparing graph session";case"fetching_nodes":return"Loading nodes";case"fetching_edges":return"Loading relationships";case"computing_styling":return"Computing node styling";case"hydrating_scene":return"Hydrating graph scene";case"stabilizing_layout":return"Stabilizing layout";default:return"Graph ready"}}function Gu(t){switch(t){case"bootstrapping":return"Prepare";case"fetching_nodes":return"Nodes";case"fetching_edges":return"Relations";case"computing_styling":return"Styling";case"hydrating_scene":return"Scene";case"stabilizing_layout":return"Layout";default:return"Stage"}}function Mt(t){const e=Sr.indexOf(t.phase);return{phase:t.phase,title:yi(t.phase),message:t.message,progressKind:t.progressKind,loaded:t.loaded??null,total:t.total??null,nodesLoaded:t.nodesLoaded??0,nodesTotal:t.nodesTotal??null,edgesLoaded:t.edgesLoaded??0,edgesTotal:t.edgesTotal??null,showGraphBehind:t.showGraphBehind??!1,stageIndex:e>=0?e+1:Sr.length,stageCount:Sr.length,layoutSource:t.layoutSource,layoutState:t.layoutState}}const Yo=48,vi=.92,Ho=78,Ga=48;function Lu(t,e){return t>0&&t<=Yo&&e<vi}function Pu(t,e){const o=e>=vi,r=Lu(t,e);return{useProvidedCoordinates:o,useSmallGraphLayout:r,layoutReady:o||r}}function Mu(t,e,o){return t.useProvidedCoordinates?{x:e.x??0,y:e.y??0}:t.useSmallGraphLayout?{x:o?.x??0,y:o?.y??0}:{x:e.x??o?.x??0,y:e.y??o?.y??0}}function Ru(t,e){const o=[...new Set(t)].sort((c,p)=>c.localeCompare(p)),r=new Map(o.map(c=>[c,new Set]));e.forEach(({source:c,target:p})=>{!r.has(c)||!r.has(p)||c===p||(r.get(c)?.add(p),r.get(p)?.add(c))});const a=new Set,n=[];o.forEach(c=>{if(a.has(c))return;const p=[],b=[c];for(a.add(c);b.length>0;){const m=b.shift();m&&(p.push(m),[...r.get(m)??[]].sort((f,y)=>f.localeCompare(y)).forEach(f=>{a.has(f)||(a.add(f),b.push(f))}))}p.sort((m,f)=>(r.get(f)?.size??0)-(r.get(m)?.size??0)||m.localeCompare(f)),n.push(p)}),n.sort((c,p)=>p.length-c.length||c[0].localeCompare(p[0]));const s=Math.max(1,Math.ceil(Math.sqrt(n.length))),i=Math.max(1,Math.ceil(n.length/s)),l=Ho*2+Ga,u=Ho*2+Ga,d=new Map;return n.forEach((c,p)=>{const b=p%s,m=Math.floor(p/s),f=(b-(s-1)/2)*l,y=(m-(i-1)/2)*u;if(c.length===1){d.set(c[0],{x:f,y});return}const h=Math.min(Ho,30+c.length*9);c.forEach((v,x)=>{const g=-Math.PI/2+x*Math.PI*2/c.length;d.set(v,{x:f+Math.cos(g)*h,y:y+Math.sin(g)*h})})}),d}const ju=["community","cluster","module","group","category","domain","layer","source","nodeType"],Hu=["source","source_url","pmid","pmids","evidence","provenance","confidence"];function La(t,e){if(e==="nodeType"){const r=t.nodeType;return typeof r=="string"&&r.trim()?r:null}const o=t.properties?.[e];return typeof o=="string"&&o.trim()?o:null}function Tu(t,e){if(t.length<=1||e<=0)return 0;let o=0;for(const r of t){const a=r/e;o-=a*Math.log(a)}return o/Math.log(t.length)}function Wu(t){let e=null,o=0;for(const r of ju){const a=new Map;let n=0;for(const m of t){const f=La(m.attributes,r);f&&(n+=1,a.set(f,(a.get(f)??0)+1))}const s=a.size;if(n===0||s<=1)continue;const i=[...a.values()],l=n/t.length,u=Math.max(...i)/n,d=Tu(i,n),c=Math.min(s,E.palette.semantic.length)/E.palette.semantic.length,p=d*.65+c*.2+l*.15;l>=.45&&d>=.45&&u<=.88&&p>o&&(e=r,o=p)}return e?(r,a)=>La(a,e)??Xo(r,a):(r,a)=>Xo(r,a)}function Xo(t,e){const o=Rt(t)%E.palette.semantic.length;return`${e.nodeType||"entity"}:${o}`}function Qr(t){const e=Number(t);return Number.isFinite(e)?e:null}function To(t){return Rt(t)%1e4/1e4}function zu(t){const e=new Map;t.forEach(n=>{const s=e.get(n.semanticGroup);s?s.push({id:n.id,priority:n.priority}):e.set(n.semanticGroup,[{id:n.id,priority:n.priority}])});const o=[...e.entries()].sort((n,s)=>{const i=s[1].length-n[1].length;return i!==0?i:n[0].localeCompare(s[0])}),r=new Map;o.forEach(([n,s],i)=>{const l=i*2.399963229728653,u=170+Math.sqrt(i+1)*195,d=72+Math.sqrt(s.length)*16;r.set(n,{x:Math.cos(l)*u*1.14,y:Math.sin(l)*u*.84,spread:d})});const a=new Map;return o.forEach(([n,s])=>{const i=r.get(n);i&&s.sort((l,u)=>u.priority!==l.priority?u.priority-l.priority:l.id.localeCompare(u.id)).forEach((l,u)=>{const d=u*2.399963229728653+To(`${n}:${l.id}:angle`)*.72,c=Math.sqrt((u+.5)/Math.max(s.length,1))*i.spread,p=(To(`${l.id}:jx`)-.5)*i.spread*.22,b=(To(`${l.id}:jy`)-.5)*i.spread*.18;a.set(l.id,{x:i.x+Math.cos(d)*c+p,y:i.y+Math.sin(d)*c*.86+b})})}),a}function Vu(t){return Hu.reduce((e,o)=>t[o]!==void 0&&t[o]!==null?e+1:e,0)}function Uu(t,e){return qa(t.nodeType,e,t.content,t.properties)}function Ou(t,e,o,r){let a="default",n,s;o?(a="temporal",n="temporal"):r>0&&(a="provenance",n="provenance",s=r);let i="none";return e>=.86?i="always":n?i="local":e>=.56&&(i="priority"),{nodeVariant:a,nodeShapeVariant:a,badgeKind:n,badgeCount:s,ringColor:E.nodes.selectedRing.color,haloColor:K(t,.38),labelVisibilityPolicy:i}}function Bu(t,e,o,r){const a=ut(.12,.18+Math.log(Math.max(Number(t.weight)||1,1))/Math.log(12),1);let n="line";return r?n="bidirectionalCurve":Math.max(e,o,a)>=.58&&(n="directional"),{edgeVariant:n,arrowVisibilityPolicy:n==="line"?"hidden":"contextual",relationshipStrength:a,isParallelPair:!1,parallelIndex:0,parallelCount:1}}const xi=1e3;async function Si(t){try{const o=(await t.json())?.detail;if(typeof o=="string"&&o.trim())return` — ${o.trim()}`}catch{}return""}async function Fu(t,e){let o=null;const r=[];let a=null;for(;;){const n=new URL("/api/graph/nodes",window.location.origin);n.searchParams.set("limit",String(xi)),o&&n.searchParams.set("cursor",o);const s=await fetch(n.toString(),{signal:t});if(!s.ok)throw new Error(`Fetch failed: ${s.status}${await Si(s)}`);const i=await s.json();if(!i.nodes?.length||(a=i.total??a,r.push(...i.nodes),e?.(Mt({phase:"fetching_nodes",progressKind:a?"determinate":"indeterminate",loaded:r.length,total:a,nodesLoaded:r.length,nodesTotal:a,edgesLoaded:0,edgesTotal:null,message:a?`Loading nodes ${r.length.toLocaleString()} of ${a.toLocaleString()}`:`Loading nodes ${r.length.toLocaleString()}`})),!i.next_cursor))break;o=i.next_cursor,await wi()}return r}async function $u(t,e,o,r){let a=null;const n=[],s=new Set;let i=null,l=!1;for(;;){const u=new URL("/api/graph/edges",window.location.origin);u.searchParams.set("limit",String(xi)),a&&u.searchParams.set("cursor",a);const d=await fetch(u.toString(),{signal:t});if(!d.ok)throw new Error(`Fetch failed: ${d.status}${await Si(d)}`);const c=await d.json();if(!c.edges?.length)break;i=c.total??i;const p=c.edges.filter(m=>!e.has(m.source)||!e.has(m.target)||s.has(m.id)?!1:(s.add(m.id),!0));n.push(...p);const b=i?Math.min(s.size,i):s.size;if(!l&&i!==null&&s.size>i&&(l=!0,console.warn("[graph-load] edge pagination returned more unique edge ids than total",{uniqueEdgesLoaded:s.size,total:i})),r?.(Mt({phase:"fetching_edges",progressKind:i?"determinate":"indeterminate",loaded:b,total:i,nodesLoaded:o.loaded,nodesTotal:o.total,edgesLoaded:b,edgesTotal:i,message:i?`Loading edges ${b.toLocaleString()} of ${i.toLocaleString()}`:`Loading edges ${b.toLocaleString()}`})),!c.next_cursor)break;a=c.next_cursor,await wi()}return n}function wi(){return"scheduler"in window&&typeof window.scheduler?.yield=="function"?window.scheduler.yield():new Promise(t=>setTimeout(t,0))}function qu(t){const e=Xe.c(10);if(e[0]!=="48a72dfcbbe2d3d5c2ef8e2960fbf52341bd3ec919fe84ab9e9025aeb73a2f82"){for(let c=0;c<10;c+=1)e[c]=Symbol.for("react.memo_cache_sentinel");e[0]="48a72dfcbbe2d3d5c2ef8e2960fbf52341bd3ec919fe84ab9e9025aeb73a2f82"}let o;e[1]!==t?(o=t===void 0?{}:t,e[1]=t,e[2]=o):o=e[2];const r=o,{enabled:a,onGraphReady:n,onProgress:s}=r,i=a===void 0?!0:a;let l;e[3]===Symbol.for("react.memo_cache_sentinel")?(l=["graph","full-load"],e[3]=l):l=e[3];let u;e[4]!==n||e[5]!==s?(u=async c=>{const{signal:p}=c,b=performance.now();s?.(Mt({phase:"bootstrapping",progressKind:"indeterminate",nodesLoaded:0,nodesTotal:null,edgesLoaded:0,edgesTotal:null,message:"Preparing graph session"}));const m=await Fu(p,s),f=new Set(m.map(Qu)),y=await $u(p,f,{loaded:m.length,total:m.length},s),h=new Map;for(const P of f)h.set(P,0);for(const P of y)h.set(P.source,(h.get(P.source)??0)+1),h.set(P.target,(h.get(P.target)??0)+1);const v=Math.max(...h.values(),1),x=m.map(Zu);s?.(Mt({phase:"computing_styling",progressKind:"indeterminate",nodesLoaded:m.length,nodesTotal:m.length,edgesLoaded:y.length,edgesTotal:y.length,message:"Applying semantic color, sizing, and structural styling"}));const g=Wu(x),w=new Map;for(const P of f){const z=h.get(P)??0,te=Math.log(z+1)/Math.log(v+1);w.set(P,te)}const C=new Map;x.forEach(P=>{const{id:z,attributes:te}=P;C.set(z,g(z,te))});const I=m.reduce(Xu,0),k=m.length>0?I/m.length:0,{useProvidedCoordinates:D,useSmallGraphLayout:_,layoutReady:L}=Pu(m.length,k),G=D?null:_?Ru(m.map(Yu),y):zu(x.map(P=>{const{id:z,attributes:te}=P;return{id:z,semanticGroup:C.get(z)??Xo(z,te),priority:w.get(z)??0}})),V=x.map(P=>{const{id:z,attributes:te}=P,Q=C.get(z)??g(z,te),B=Rt(Q)%E.palette.semantic.length,le=E.palette.semantic[B],J=w.get(z)??0,re=_?ut(5.2,5.2+6.6*J,11.8):ut(1.8,1.8+8.8*J,11.8),ce=!!(te.valid_from||te.valid_until),ue=Vu(te.properties??{}),ge=te.properties,se=Uu(te,Q),Ce=Qr(ge?.x),_e=Qr(ge?.y),be=G?.get(z),{x:Me,y:we}=Mu({useProvidedCoordinates:D,useSmallGraphLayout:_},{x:Ce,y:_e},be);return{id:z,attributes:{...te,x:Me,y:we,semanticGroup:Q,color:le,baseColor:le,mutedColor:K(le,E.nodes.mutedAlpha),glowColor:K(le,.24),size:re,baseSize:re,visualPriority:J,labelPriority:J,strokeColor:Rn(le,112),borderColor:Rn(le,112),borderSize:.72,entityShape:se,...Ou(le,J,ce,ue),..._?{labelVisibilityPolicy:"always"}:{}}}}),q=new Set(y.map(Ku)),W=new Map,F=new Map;y.forEach(P=>{const z=br(P.source,P.target);W.set(z,(W.get(z)??0)+1),F.set(P.familyId,(F.get(P.familyId)??0)+1)});const ee=new Map,U=y.map(P=>{const z=w.get(P.source)??0,te=w.get(P.target)??0,Q=q.has(br(P.target,P.source)),B=br(P.source,P.target),le=ee.get(B)??0;ee.set(B,le+1);const J=W.get(B)??1,re=ut(0,Math.log1p(Math.max(Number(P.weight)||1,1))/6,1),ce=ut(0,Math.sqrt(Math.max(z,0)*Math.max(te,0))*.72+re*.28,1);return{id:P.id,familyId:P.familyId,source:P.source,target:P.target,attributes:{edgeId:P.id,familyId:P.familyId,sourceId:P.source,targetId:P.target,weight:P.weight,edgeType:P.type,properties:P.properties,size:ut(.18,.22+Math.sqrt(Math.max(Number(P.weight)||1,1))*.2,.88),baseSize:ut(.18,.22+Math.sqrt(Math.max(Number(P.weight)||1,1))*.2,.88),color:E.palette.muted.edgeStructure,baseColor:E.palette.muted.edgeStructure,mutedColor:E.palette.muted.edgeOverview,visualPriority:ce,isBidirectional:Q,edgeFamily:Q?"bidirectional":"line",curveGroup:Jo(P.source,P.target),type:"line",isParallelPair:J>1,parallelIndex:le,parallelCount:J,familySize:F.get(P.familyId)??1,isSmallGraph:_,...Bu(P,z,te,Q)}}});s?.(Mt({phase:"hydrating_scene",progressKind:"indeterminate",nodesLoaded:V.length,nodesTotal:V.length,edgesLoaded:U.length,edgesTotal:U.length,message:"Preparing renderer and hydrating graph scene"}));try{ws()}catch(P){const z=P;throw console.error("[graph-load] clearGraph failed",z),z}try{Ba(V)}catch(P){const z=P;throw console.error("[graph-load] batchMergeNodes failed",z),z}try{Fa(U)}catch(P){const z=P;throw console.error("[graph-load] batchMergeEdges failed",z),z}const T={nodeCount:V.length,edgeCount:U.length,loadTimeMs:Math.round(performance.now()-b),hasCoordinates:D,layoutSource:D?"provided":"runtime",layoutReady:L};return s?.(Mt({phase:T.layoutReady?"ready":"stabilizing_layout",progressKind:"indeterminate",nodesLoaded:T.nodeCount,nodesTotal:T.nodeCount,edgesLoaded:T.edgeCount,edgesTotal:T.edgeCount,message:T.layoutReady?"Graph ready":"Settling runtime layout",showGraphBehind:!T.layoutReady,layoutSource:T.layoutSource,layoutState:T.layoutReady?"interactive":"bootstrapping"})),n?.(T),T},e[4]=n,e[5]=s,e[6]=u):u=e[6];let d;return e[7]!==i||e[8]!==u?(d={queryKey:l,enabled:i,staleTime:1/0,retry:0,queryFn:u},e[7]=i,e[8]=u,e[9]=d):d=e[9],$i(d)}function Ku(t){return br(t.source,t.target)}function Yu(t){return t.id}function Xu(t,e){const o=e.properties;return Qr(o?.x)!==null&&Qr(o?.y)!==null?t+1:t}function Zu(t){return{id:t.id,attributes:{label:t.content||t.id,x:0,y:0,nodeType:t.type,content:t.content,valid_from:t.valid_from,valid_until:t.valid_until,properties:t.properties}}}function Qu(t){return t.id}function Ju(){const t=Xe.c(3);if(t[0]!=="48a72dfcbbe2d3d5c2ef8e2960fbf52341bd3ec919fe84ab9e9025aeb73a2f82"){for(let r=0;r<3;r+=1)t[r]=Symbol.for("react.memo_cache_sentinel");t[0]="48a72dfcbbe2d3d5c2ef8e2960fbf52341bd3ec919fe84ab9e9025aeb73a2f82"}const e=Fi();let o;return t[1]!==e?(o=()=>e.invalidateQueries({queryKey:["graph","full-load"]}),t[1]=e,t[2]=o):o=t[2],o}const Pa=`
|
|
417
417
|
.graph-stage-loader {
|
|
418
418
|
position: absolute;
|
|
419
419
|
inset: 0;
|
|
@@ -437,8 +437,8 @@ void main() {
|
|
|
437
437
|
background:
|
|
438
438
|
radial-gradient(circle at top right, rgba(242, 182, 109, 0.12), transparent 28%),
|
|
439
439
|
radial-gradient(circle at top left, rgba(255, 107, 129, 0.14), transparent 30%),
|
|
440
|
-
linear-gradient(145deg, rgba(
|
|
441
|
-
box-shadow: 0 26px 90px rgba(0, 0, 0, 0.34), inset 0 1px 0 rgba(
|
|
440
|
+
linear-gradient(145deg, rgba(255, 255, 255, 0.94), rgba(255, 255, 255, 0.82));
|
|
441
|
+
box-shadow: 0 26px 90px rgba(0, 0, 0, 0.34), inset 0 1px 0 rgba(28, 20, 24,0.05);
|
|
442
442
|
backdrop-filter: blur(18px) saturate(1.08);
|
|
443
443
|
-webkit-backdrop-filter: blur(18px) saturate(1.08);
|
|
444
444
|
}
|
|
@@ -447,8 +447,8 @@ void main() {
|
|
|
447
447
|
background:
|
|
448
448
|
radial-gradient(circle at top right, rgba(242, 182, 109, 0.08), transparent 26%),
|
|
449
449
|
radial-gradient(circle at top left, rgba(255, 107, 129, 0.12), transparent 28%),
|
|
450
|
-
linear-gradient(145deg, rgba(
|
|
451
|
-
box-shadow: 0 18px 54px rgba(0, 0, 0, 0.26), inset 0 1px 0 rgba(
|
|
450
|
+
linear-gradient(145deg, rgba(255, 255, 255, 0.84), rgba(255, 255, 255, 0.72));
|
|
451
|
+
box-shadow: 0 18px 54px rgba(0, 0, 0, 0.26), inset 0 1px 0 rgba(28, 20, 24,0.04);
|
|
452
452
|
}
|
|
453
453
|
.graph-stage-loader-beacon {
|
|
454
454
|
position: relative;
|
|
@@ -481,7 +481,7 @@ void main() {
|
|
|
481
481
|
text-transform: uppercase;
|
|
482
482
|
border: 1px solid rgba(255, 107, 129, 0.08);
|
|
483
483
|
color: rgba(143, 168, 198, 0.72);
|
|
484
|
-
background: rgba(
|
|
484
|
+
background: rgba(28, 20, 24, 0.02);
|
|
485
485
|
}
|
|
486
486
|
.graph-stage-loader-step[data-state="done"] {
|
|
487
487
|
color: rgba(214, 232, 250, 0.92);
|
|
@@ -489,10 +489,10 @@ void main() {
|
|
|
489
489
|
background: rgba(89, 155, 220, 0.14);
|
|
490
490
|
}
|
|
491
491
|
.graph-stage-loader-step[data-state="active"] {
|
|
492
|
-
color: #
|
|
492
|
+
color: #16222d;
|
|
493
493
|
border-color: rgba(242, 182, 109, 0.24);
|
|
494
494
|
background: linear-gradient(135deg, rgba(49, 108, 172, 0.28), rgba(242, 182, 109, 0.16));
|
|
495
|
-
box-shadow: inset 0 1px 0 rgba(
|
|
495
|
+
box-shadow: inset 0 1px 0 rgba(28, 20, 24, 0.06);
|
|
496
496
|
}
|
|
497
497
|
.graph-stage-loader-bar {
|
|
498
498
|
position: relative;
|
|
@@ -501,7 +501,7 @@ void main() {
|
|
|
501
501
|
overflow: hidden;
|
|
502
502
|
border-radius: 999px;
|
|
503
503
|
border: 1px solid rgba(255, 107, 129, 0.1);
|
|
504
|
-
background: rgba(
|
|
504
|
+
background: rgba(28, 20, 24, 0.05);
|
|
505
505
|
}
|
|
506
506
|
.graph-stage-loader-bar-fill {
|
|
507
507
|
display: block;
|
|
@@ -535,7 +535,7 @@ void main() {
|
|
|
535
535
|
border-color: rgba(255, 123, 114, 0.32);
|
|
536
536
|
background:
|
|
537
537
|
radial-gradient(circle at top left, rgba(255, 123, 114, 0.12), transparent 32%),
|
|
538
|
-
linear-gradient(145deg, rgba(
|
|
538
|
+
linear-gradient(145deg, rgba(255, 255, 255, 0.96), rgba(255, 255, 255, 0.86));
|
|
539
539
|
}
|
|
540
540
|
.graph-stage-loader-error-mark {
|
|
541
541
|
width: 38px;
|
|
@@ -544,7 +544,7 @@ void main() {
|
|
|
544
544
|
border-radius: 12px;
|
|
545
545
|
display: grid;
|
|
546
546
|
place-items: center;
|
|
547
|
-
color: #
|
|
547
|
+
color: #46211e;
|
|
548
548
|
background: rgba(255, 123, 114, 0.12);
|
|
549
549
|
border: 1px solid rgba(255, 123, 114, 0.28);
|
|
550
550
|
}
|
|
@@ -553,7 +553,7 @@ void main() {
|
|
|
553
553
|
border-radius: 10px;
|
|
554
554
|
background: rgba(0, 0, 0, 0.32);
|
|
555
555
|
border: 1px solid rgba(255, 123, 114, 0.18);
|
|
556
|
-
color: #
|
|
556
|
+
color: #562925;
|
|
557
557
|
font-family: "JetBrains Mono", "Fira Code", Consolas, monospace;
|
|
558
558
|
font-size: 12px;
|
|
559
559
|
line-height: 1.55;
|
|
@@ -570,7 +570,7 @@ void main() {
|
|
|
570
570
|
cursor: pointer;
|
|
571
571
|
border: 1px solid rgba(255, 107, 129, 0.4);
|
|
572
572
|
background: linear-gradient(135deg, rgba(255, 45, 75, 0.28), rgba(56, 210, 160, 0.16));
|
|
573
|
-
color: #
|
|
573
|
+
color: #2d161a;
|
|
574
574
|
transition: 160ms ease;
|
|
575
575
|
}
|
|
576
576
|
.graph-stage-loader-retry:hover {
|
|
@@ -579,10 +579,10 @@ void main() {
|
|
|
579
579
|
transform: translateY(-1px);
|
|
580
580
|
}
|
|
581
581
|
.graph-stage-loader-retry:focus-visible {
|
|
582
|
-
outline: 2px solid #
|
|
582
|
+
outline: 2px solid #d41736;
|
|
583
583
|
outline-offset: 2px;
|
|
584
584
|
}
|
|
585
|
-
`;function ed(t){switch(t){case"provided":return"Persisted layout";case"carried":return"Preserved layout";case"runtime":return"Runtime layout";default:return null}}function td(t){switch(t){case"bootstrapping":return"Bootstrapping";case"running":return"Settling";case"interactive":return"Interactive";case"stabilized":return"Stable";case"failed":return"Fallback";default:return null}}const Wo={display:"inline-flex",alignItems:"center",gap:6,padding:"7px 10px",borderRadius:999,border:"1px solid rgba(255, 107, 129, 0.12)",background:"rgba(255, 255, 255, 0.03)",color:"#b8cade",fontSize:11,fontWeight:600};function rd(t){const e=Xe.c(112);if(e[0]!=="7f6f4f4045d52fc50b3f963151406ca6f48105cf038fe12661fb8c670c22ab8b"){for(let de=0;de<112;de+=1)e[de]=Symbol.for("react.memo_cache_sentinel");e[0]="7f6f4f4045d52fc50b3f963151406ca6f48105cf038fe12661fb8c670c22ab8b"}const{progress:o,visible:r,showGraphBehind:a,error:n,onRetry:s}=t,i=n===void 0?null:n,[l,u]=A.useState(r),[d,c]=A.useState(!1);let p;e[1]!==o?(p=o??Mt({phase:"bootstrapping",message:"Preparing graph session",progressKind:"indeterminate"}),e[1]=o,e[2]=p):p=e[2];const[b,m]=A.useState(p),f=A.useRef(null);let y,h;e[3]!==o?(y=()=>{o&&m(o)},h=[o],e[3]=o,e[4]=y,e[5]=h):(y=e[4],h=e[5]),A.useEffect(y,h);let v,x;if(e[6]!==l||e[7]!==r?(v=()=>{if(r){f.current!==null&&(window.clearTimeout(f.current),f.current=null),u(!0),c(!1);return}if(l)return c(!0),f.current=window.setTimeout(()=>{u(!1),c(!1),f.current=null},220),()=>{f.current!==null&&(window.clearTimeout(f.current),f.current=null)}},x=[l,r],e[6]=l,e[7]=r,e[8]=v,e[9]=x):(v=e[8],x=e[9]),A.useEffect(v,x),!l)return null;if(i){let de,ie;e[10]===Symbol.for("react.memo_cache_sentinel")?(de={background:"linear-gradient(180deg, rgba(1,4,9,0.22), rgba(1,4,9,0.5))"},ie=N.jsxDEV("style",{children:Pa},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphLoadingOverlay.tsx",lineNumber:315,columnNumber:12},this),e[10]=de,e[11]=ie):(de=e[10],ie=e[11]);let De;e[12]===Symbol.for("react.memo_cache_sentinel")?(De={display:"flex",alignItems:"flex-start",gap:14,marginBottom:14},e[12]=De):De=e[12];let je;e[13]===Symbol.for("react.memo_cache_sentinel")?(je=N.jsxDEV("div",{style:De,children:[N.jsxDEV("div",{className:"graph-stage-loader-error-mark","aria-hidden":"true",children:N.jsxDEV(ms,{size:18,strokeWidth:2.2},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphLoadingOverlay.tsx",lineNumber:336,columnNumber:95},this)},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphLoadingOverlay.tsx",lineNumber:336,columnNumber:29},this),N.jsxDEV("div",{style:{minWidth:0},children:[N.jsxDEV("div",{style:{color:"#ffffff",fontSize:20,fontWeight:700,letterSpacing:"-0.03em",marginBottom:6},children:"Could not load the graph"},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphLoadingOverlay.tsx",lineNumber:338,columnNumber:12},this),N.jsxDEV("div",{style:{color:"#c99aa3",fontSize:13,lineHeight:1.5},children:"The Explorer API did not return graph data. Check that the backend is running and reachable, then try again."},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphLoadingOverlay.tsx",lineNumber:344,columnNumber:44},this)]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphLoadingOverlay.tsx",lineNumber:336,columnNumber:146},this)]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphLoadingOverlay.tsx",lineNumber:336,columnNumber:13},this),e[13]=je):je=e[13];let Ue;e[14]!==i?(Ue=N.jsxDEV("div",{className:"graph-stage-loader-error-detail",children:i},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphLoadingOverlay.tsx",lineNumber:355,columnNumber:13},this),e[14]=i,e[15]=Ue):Ue=e[15];let Be;e[16]!==s?(Be=s?N.jsxDEV("div",{style:{display:"flex",gap:10,marginTop:16},children:N.jsxDEV("button",{type:"button",className:"graph-stage-loader-retry",onClick:s,children:[N.jsxDEV(Va,{size:14,strokeWidth:2.2,"aria-hidden":!0},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphLoadingOverlay.tsx",lineNumber:367,columnNumber:87},this),"Retry"]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphLoadingOverlay.tsx",lineNumber:367,columnNumber:10},this)},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphLoadingOverlay.tsx",lineNumber:363,columnNumber:23},this):null,e[16]=s,e[17]=Be):Be=e[17];let Re;e[18]!==Ue||e[19]!==Be?(Re=N.jsxDEV("div",{className:"graph-stage-loader-card","data-error":"true",role:"alert",children:[je,Ue,Be]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphLoadingOverlay.tsx",lineNumber:375,columnNumber:13},this),e[18]=Ue,e[19]=Be,e[20]=Re):Re=e[20];let st;return e[21]!==d||e[22]!==Re?(st=N.jsxDEV("div",{className:"graph-stage-loader","data-exiting":d,style:de,children:[ie,Re]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphLoadingOverlay.tsx",lineNumber:384,columnNumber:13},this),e[21]=d,e[22]=Re,e[23]=st):st=e[23],st}const g=o??b,w=g.phase==="stabilizing_layout"||g.showGraphBehind||a,C=w?"linear-gradient(180deg, rgba(1,4,9,0.04), rgba(1,4,9,0.18))":"linear-gradient(180deg, rgba(1,4,9,0.22), rgba(1,4,9,0.5))",I=g.progressKind==="determinate"&&g.total?Math.max(.05,Math.min(g.loaded??0,g.total)/Math.max(g.total,1)):null;let k;e[24]!==g.layoutSource?(k=ed(g.layoutSource),e[24]=g.layoutSource,e[25]=k):k=e[25];const D=k;let _;e[26]!==g.layoutState?(_=td(g.layoutState),e[26]=g.layoutState,e[27]=_):_=e[27];const L=_;let G;e[28]!==C?(G={background:C},e[28]=C,e[29]=G):G=e[29];let V;e[30]===Symbol.for("react.memo_cache_sentinel")?(V=N.jsxDEV("style",{children:Pa},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphLoadingOverlay.tsx",lineNumber:427,columnNumber:11},this),e[30]=V):V=e[30];let q,W,F;e[31]===Symbol.for("react.memo_cache_sentinel")?(q={display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:14,marginBottom:14},W={minWidth:0},F={color:"#ffffff",fontSize:20,fontWeight:700,letterSpacing:"-0.03em",marginBottom:6},e[31]=q,e[32]=W,e[33]=F):(q=e[31],W=e[32],F=e[33]);let ee;e[34]!==g.title?(ee=N.jsxDEV("div",{style:F,children:g.title},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphLoadingOverlay.tsx",lineNumber:463,columnNumber:11},this),e[34]=g.title,e[35]=ee):ee=e[35];let U;e[36]===Symbol.for("react.memo_cache_sentinel")?(U={color:"#c99aa3",fontSize:13,lineHeight:1.5},e[36]=U):U=e[36];let T;e[37]!==g.message?(T=N.jsxDEV("div",{style:U,children:g.message},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphLoadingOverlay.tsx",lineNumber:482,columnNumber:11},this),e[37]=g.message,e[38]=T):T=e[38];let P;e[39]!==ee||e[40]!==T?(P=N.jsxDEV("div",{style:W,children:[ee,T]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphLoadingOverlay.tsx",lineNumber:490,columnNumber:11},this),e[39]=ee,e[40]=T,e[41]=P):P=e[41];let z,te,Q;e[42]===Symbol.for("react.memo_cache_sentinel")?(z={display:"inline-flex",alignItems:"center",gap:10,flexShrink:0},te=N.jsxDEV("div",{className:"graph-stage-loader-beacon","aria-hidden":"true"},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphLoadingOverlay.tsx",lineNumber:507,columnNumber:11},this),Q={color:"#d7e9fb",fontSize:11,fontWeight:700,letterSpacing:"0.08em",textTransform:"uppercase"},e[42]=z,e[43]=te,e[44]=Q):(z=e[42],te=e[43],Q=e[44]);const O=g.stageIndex??1,le=g.stageCount??Sr.length;let J;e[45]!==O||e[46]!==le?(J=N.jsxDEV("div",{style:z,children:[te,N.jsxDEV("div",{style:Q,children:["Stage ",O,"/",le]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphLoadingOverlay.tsx",lineNumber:527,columnNumber:33},this)]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphLoadingOverlay.tsx",lineNumber:527,columnNumber:11},this),e[45]=O,e[46]=le,e[47]=J):J=e[47];let re;e[48]!==P||e[49]!==J?(re=N.jsxDEV("div",{style:q,children:[P,J]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphLoadingOverlay.tsx",lineNumber:536,columnNumber:11},this),e[48]=P,e[49]=J,e[50]=re):re=e[50];let ce;e[51]===Symbol.for("react.memo_cache_sentinel")?(ce={marginBottom:14},e[51]=ce):ce=e[51];let ue;e[52]!==g.stageIndex?(ue=Sr.map((de,ie)=>{const De=g.stageIndex??1,je=ie+1<De?"done":ie+1===De?"active":"upcoming";return N.jsxDEV("div",{className:"graph-stage-loader-step","data-state":je,children:Gu(de)},de,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphLoadingOverlay.tsx",lineNumber:557,columnNumber:14},this)}),e[52]=g.stageIndex,e[53]=ue):ue=e[53];let ge;e[54]!==ue?(ge=N.jsxDEV("div",{className:"graph-stage-loader-track",style:ce,children:ue},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphLoadingOverlay.tsx",lineNumber:566,columnNumber:11},this),e[54]=ue,e[55]=ge):ge=e[55];let se,Ce;e[56]===Symbol.for("react.memo_cache_sentinel")?(se={display:"flex",justifyContent:"space-between",gap:12,alignItems:"baseline",marginBottom:8},Ce={color:"#dce9f6",fontSize:12,fontWeight:600},e[56]=se,e[57]=Ce):(se=e[56],Ce=e[57]);let _e;e[58]!==g.loaded||e[59]!==g.progressKind||e[60]!==g.total?(_e=g.progressKind==="determinate"&&g.total?`${(g.loaded??0).toLocaleString()} / ${g.total.toLocaleString()} in current stage`:"Working through this stage",e[58]=g.loaded,e[59]=g.progressKind,e[60]=g.total,e[61]=_e):_e=e[61];let be;e[62]!==_e?(be=N.jsxDEV("div",{style:Ce,children:_e},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphLoadingOverlay.tsx",lineNumber:605,columnNumber:11},this),e[62]=_e,e[63]=be):be=e[63];let Me;e[64]===Symbol.for("react.memo_cache_sentinel")?(Me={color:"#90a8c5",fontSize:11,fontWeight:700,letterSpacing:"0.06em",textTransform:"uppercase"},e[64]=Me):Me=e[64];let we;e[65]!==g.progressKind||e[66]!==I?(we=g.progressKind==="determinate"&&I!==null?`${Math.round(I*100)}%`:"Live",e[65]=g.progressKind,e[66]=I,e[67]=we):we=e[67];let Qe;e[68]!==we?(Qe=N.jsxDEV("div",{style:Me,children:we},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphLoadingOverlay.tsx",lineNumber:635,columnNumber:11},this),e[68]=we,e[69]=Qe):Qe=e[69];let Je;e[70]!==be||e[71]!==Qe?(Je=N.jsxDEV("div",{style:se,children:[be,Qe]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphLoadingOverlay.tsx",lineNumber:643,columnNumber:11},this),e[70]=be,e[71]=Qe,e[72]=Je):Je=e[72];const $e=`graph-stage-loader-bar ${g.progressKind==="indeterminate"?"graph-stage-loader-bar-indeterminate":""}`;let pt;e[73]!==g.progressKind||e[74]!==I?(pt=g.progressKind==="determinate"&&I!==null?N.jsxDEV("span",{className:"graph-stage-loader-bar-fill",style:{width:`${Math.round(I*100)}%`}},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphLoadingOverlay.tsx",lineNumber:653,columnNumber:88},this):null,e[73]=g.progressKind,e[74]=I,e[75]=pt):pt=e[75];let We;e[76]!==$e||e[77]!==pt?(We=N.jsxDEV("div",{className:$e,children:pt},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphLoadingOverlay.tsx",lineNumber:664,columnNumber:11},this),e[76]=$e,e[77]=pt,e[78]=We):We=e[78];let et;e[79]===Symbol.for("react.memo_cache_sentinel")?(et={display:"flex",gap:10,flexWrap:"wrap",marginTop:14},e[79]=et):et=e[79];let ht;e[80]!==g.nodesLoaded?(ht=g.nodesLoaded.toLocaleString(),e[80]=g.nodesLoaded,e[81]=ht):ht=e[81];let Ze;e[82]!==g.nodesTotal?(Ze=g.nodesTotal?` / ${g.nodesTotal.toLocaleString()}`:"",e[82]=g.nodesTotal,e[83]=Ze):Ze=e[83];let it;e[84]!==ht||e[85]!==Ze?(it=N.jsxDEV("span",{style:Wo,children:[ht,Ze," nodes"]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphLoadingOverlay.tsx",lineNumber:701,columnNumber:11},this),e[84]=ht,e[85]=Ze,e[86]=it):it=e[86];let tt;e[87]!==g.edgesLoaded?(tt=g.edgesLoaded.toLocaleString(),e[87]=g.edgesLoaded,e[88]=tt):tt=e[88];let Ie;e[89]!==g.edgesTotal?(Ie=g.edgesTotal?` / ${g.edgesTotal.toLocaleString()}`:"",e[89]=g.edgesTotal,e[90]=Ie):Ie=e[90];let qe;e[91]!==tt||e[92]!==Ie?(qe=N.jsxDEV("span",{style:Wo,children:[tt,Ie," relationships"]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphLoadingOverlay.tsx",lineNumber:726,columnNumber:11},this),e[91]=tt,e[92]=Ie,e[93]=qe):qe=e[93];let xe;e[94]!==D||e[95]!==L?(xe=D?N.jsxDEV("span",{style:{...Wo,color:"#a9ddff",borderColor:K(E.palette.accent.hovered,.22)},children:[D,L?` · ${L}`:""]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphLoadingOverlay.tsx",lineNumber:735,columnNumber:26},this):null,e[94]=D,e[95]=L,e[96]=xe):xe=e[96];let ve;e[97]!==it||e[98]!==qe||e[99]!==xe?(ve=N.jsxDEV("div",{style:et,children:[it,qe,xe]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphLoadingOverlay.tsx",lineNumber:748,columnNumber:11},this),e[97]=it,e[98]=qe,e[99]=xe,e[100]=ve):ve=e[100];let he;e[101]!==w||e[102]!==re||e[103]!==ge||e[104]!==Je||e[105]!==We||e[106]!==ve?(he=N.jsxDEV("div",{className:"graph-stage-loader-card","data-live":w,children:[re,ge,Je,We,ve]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphLoadingOverlay.tsx",lineNumber:758,columnNumber:11},this),e[101]=w,e[102]=re,e[103]=ge,e[104]=Je,e[105]=We,e[106]=ve,e[107]=he):he=e[107];let Ke;return e[108]!==d||e[109]!==he||e[110]!==G?(Ke=N.jsxDEV("div",{className:"graph-stage-loader","data-exiting":d,style:G,children:[V,he]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphLoadingOverlay.tsx",lineNumber:771,columnNumber:11},this),e[108]=d,e[109]=he,e[110]=G,e[111]=Ke):Ke=e[111],Ke}const Ma={"communities-undetected":"Grouped view is unavailable until communities can be detected.","community-nodes-missing":"Grouped view is unavailable because no community nodes could be created."},od={"no-selection":"Select a node to inspect in Focused mode.","grouped-unresolvable":"Focused mode is unavailable for this grouped selection.","not-in-graph":"Selected item is not available in the current graph."};function Tr(t){if(!t)return null;switch(t.code){case"communities-undetected":return Ma["communities-undetected"];case"community-nodes-missing":return Ma["community-nodes-missing"];case"invalid-community-layout":return`Grouped node ${t.nodeId} has invalid coordinates.`;case"missing-grouped-node":return`Grouped edge ${t.edgeId} references a missing grouped node.`}}function nd(t){return t?od[t.code]:null}function ad(t,e,o){return t!=="focused"||o!==e}const Wr="effects-panel",id=[{key:"pathPulseEnabled",label:"Path Pulse",description:"Animated pulse on the active selected path."},{key:"pathFlowEnabled",label:"Path Flow",description:"Directional flow accents along the active selected path."},{key:"lensEnabled",label:"Neighborhood Lens",description:"Local emphasis around the hovered or selected node."},{key:"temporalEmphasisEnabled",label:"Temporal Emphasis",description:"Subtle glow around temporally relevant nodes in the active time window."},{key:"semanticRegionsEnabled",label:"Semantic Regions",description:"Quiet semantic hulls around the strongest visible topic clusters."},{key:"contoursEnabled",label:"Contours",description:"Low-contrast density halos around the strongest visible anchors."},{key:"edgeLabelsEnabled",label:"Edge Labels",description:"Draw the relationship type on graph edges. Off restores label-free edges on dense graphs."},{key:"legendEnabled",label:"Regions Summary",description:"Keep the regions and signals summary visible in the Effects panel."}],sd=[{key:"pathfindingEnabled",label:"Directed Pathfinding",description:"Compare the traced path against a strict local directed shortest path."},{key:"communitiesEnabled",label:"Community Regions",description:"Detect stable Louvain communities for orientation and scene grouping."},{key:"centralityEnabled",label:"Centrality Ranking",description:"Rank the strongest graph anchors for labels, regions, and navigation."}],ld={pathPulseEnabled:"pathPulse",pathFlowEnabled:"pathFlow",lensEnabled:"lens",temporalEmphasisEnabled:"temporalEmphasis",semanticRegionsEnabled:"semanticRegions",contoursEnabled:"contours",pathfindingEnabled:"pathfinding",communitiesEnabled:"communities",centralityEnabled:"centrality",legendEnabled:"legend",edgeLabelsEnabled:"edgeLabels",diagnosticsEnabled:"diagnostics"};function cd(t){return t.available?typeof t.visibleSegments=="number"&&typeof t.segmentCap=="number"?`${t.reason} - ${t.visibleSegments}/${t.segmentCap} segments`:t.reason:t.detail?`${t.reason} - ${t.detail}`:t.reason}function ud(t){return $a(t.graph,t.theme).sort((e,o)=>o.count-e.count).slice(0,t.theme.effects.legend.maxGroups)}function zo(t,e,o){return t?.[ld[e]]??{enabled:o,available:!1,reason:"Waiting for graph runtime"}}function Vo(t){const e=Xe.c(21);if(e[0]!=="f4c2726779a6235cb5fb837037b3f1a0ab608718c50f559d099de9f1d3950a80"){for(let h=0;h<21;h+=1)e[h]=Symbol.for("react.memo_cache_sentinel");e[0]="f4c2726779a6235cb5fb837037b3f1a0ab608718c50f559d099de9f1d3950a80"}const{label:o,description:r,checked:a,availability:n,onToggle:s}=t;let i;e[1]===Symbol.for("react.memo_cache_sentinel")?(i={minWidth:0,flex:1},e[1]=i):i=e[1];let l;e[2]!==o?(l=N.jsxDEV("div",{style:or,children:o},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:118,columnNumber:10},this),e[2]=o,e[3]=l):l=e[3];let u;e[4]!==r?(u=N.jsxDEV("div",{style:gd,children:r},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:126,columnNumber:10},this),e[4]=r,e[5]=u):u=e[5];let d;e[6]!==n?(d=cd(n),e[6]=n,e[7]=d):d=e[7];let c;e[8]!==d?(c=N.jsxDEV("div",{style:nr,children:d},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:142,columnNumber:10},this),e[8]=d,e[9]=c):c=e[9];let p;e[10]!==l||e[11]!==u||e[12]!==c?(p=N.jsxDEV("div",{style:i,children:[l,u,c]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:150,columnNumber:10},this),e[10]=l,e[11]=u,e[12]=c,e[13]=p):p=e[13];const b=a?bd:Ni,m=a?"On":"Off";let f;e[14]!==s||e[15]!==b||e[16]!==m?(f=N.jsxDEV("button",{type:"button",onClick:s,style:b,children:m},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:162,columnNumber:10},this),e[14]=s,e[15]=b,e[16]=m,e[17]=f):f=e[17];let y;return e[18]!==p||e[19]!==f?(y=N.jsxDEV("div",{style:md,children:[p,f]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:172,columnNumber:11},this),e[18]=p,e[19]=f,e[20]=y):y=e[20],y}function dd(t,e){const o=ud(t),r=e?.semanticRegions.summaries??[],a=e?.communities.summaries??[],n=e?.centrality.topNodes??[],s=e?.directedPath??null;return!r.length&&!a.length&&!n.length&&!o.length&&!s?N.jsxDEV("div",{style:Sd,children:"Regions and intelligence summaries will populate when graph analytics are ready."},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:188,columnNumber:12},this):N.jsxDEV("div",{style:{display:"flex",flexDirection:"column",gap:10},children:[r.length?N.jsxDEV("div",{style:{display:"flex",flexDirection:"column",gap:8},children:[N.jsxDEV("div",{style:mr,children:"Semantic regions"},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:200,columnNumber:11},this),r.map(i=>N.jsxDEV("div",{style:Ra,children:[N.jsxDEV("span",{style:{...ja,background:i.color,boxShadow:`0 0 0 1px rgba(255,255,255,0.06), 0 0 14px ${i.color}40`}},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:202,columnNumber:15},this),N.jsxDEV("div",{style:{minWidth:0,flex:1},children:[N.jsxDEV("div",{style:or,children:i.semanticGroup},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:211,columnNumber:17},this),N.jsxDEV("div",{style:nr,children:[i.visibleNodeCount.toLocaleString()," visible / ",i.nodeCount.toLocaleString()," total"]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:212,columnNumber:17},this)]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:207,columnNumber:15},this),N.jsxDEV("div",{style:Ur,children:i.anchorLabel},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:216,columnNumber:15},this)]},i.semanticGroup,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:201,columnNumber:42},this))]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:195,columnNumber:33},this):null,a.length?N.jsxDEV("div",{style:{display:"flex",flexDirection:"column",gap:8},children:[N.jsxDEV("div",{style:mr,children:"Community anchors"},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:225,columnNumber:11},this),a.slice(0,3).map(i=>N.jsxDEV("div",{style:Uo,children:[N.jsxDEV("div",{style:{minWidth:0,flex:1},children:[N.jsxDEV("div",{style:or,children:i.anchorLabel},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:231,columnNumber:17},this),N.jsxDEV("div",{style:nr,children:["Community ",i.communityId," - ",i.visibleNodeCount," visible / ",i.nodeCount," total"]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:232,columnNumber:17},this)]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:227,columnNumber:15},this),N.jsxDEV("div",{style:Ur,children:i.dominantSemanticGroup},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:236,columnNumber:15},this)]},i.communityId,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:226,columnNumber:53},this))]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:220,columnNumber:29},this):null,n.length?N.jsxDEV("div",{style:{display:"flex",flexDirection:"column",gap:8},children:[N.jsxDEV("div",{style:mr,children:"Centrality leaders"},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:245,columnNumber:11},this),n.slice(0,3).map(i=>N.jsxDEV("div",{style:Uo,children:[N.jsxDEV("div",{style:{minWidth:0,flex:1},children:[N.jsxDEV("div",{style:or,children:i.label},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:251,columnNumber:17},this),N.jsxDEV("div",{style:nr,children:[i.semanticGroup," - score ",i.score.toFixed(3)]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:252,columnNumber:17},this)]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:247,columnNumber:15},this),N.jsxDEV("div",{style:Ur,children:["deg ",i.degree.toFixed(3)]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:256,columnNumber:15},this)]},i.id,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:246,columnNumber:47},this))]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:240,columnNumber:28},this):null,s?N.jsxDEV("div",{style:{display:"flex",flexDirection:"column",gap:8},children:[N.jsxDEV("div",{style:mr,children:"Directed pathfinding"},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:265,columnNumber:11},this),N.jsxDEV("div",{style:Uo,children:[N.jsxDEV("div",{style:{minWidth:0,flex:1},children:[N.jsxDEV("div",{style:or,children:s.ready?"Local directed path ready":"Waiting for path context"},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:271,columnNumber:15},this),N.jsxDEV("div",{style:nr,children:s.reason},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:272,columnNumber:15},this)]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:267,columnNumber:13},this),s.ready?N.jsxDEV("div",{style:Ur,children:[s.length," hops",s.verifiedAgainstActivePath?" - match":""]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:274,columnNumber:35},this):null]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:266,columnNumber:11},this)]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:260,columnNumber:23},this):null,!r.length&&!a.length&&!n.length&&o.length?N.jsxDEV("div",{style:{display:"flex",flexDirection:"column",gap:8},children:[N.jsxDEV("div",{style:mr,children:"Fallback semantic legend"},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:285,columnNumber:11},this),o.map(i=>N.jsxDEV("div",{style:Ra,children:[N.jsxDEV("span",{style:{...ja,background:i.color,boxShadow:`0 0 0 1px rgba(255,255,255,0.06), 0 0 14px ${i.color}40`}},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:287,columnNumber:15},this),N.jsxDEV("div",{style:{minWidth:0,flex:1},children:[N.jsxDEV("div",{style:or,children:i.group},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:296,columnNumber:17},this),N.jsxDEV("div",{style:nr,children:[i.count.toLocaleString()," nodes"]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:297,columnNumber:17},this)]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:292,columnNumber:15},this)]},i.id,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:286,columnNumber:44},this))]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:280,columnNumber:109},this):null]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:190,columnNumber:10},this)}const pd={id:"exploration-effects",mount:()=>{},unmount:()=>{},onStateChange:()=>{},toolbarItems:t=>[{id:"effects-toggle",label:"Effects",title:"Open exploration effects controls",active:t.isPanelOpen(Wr),order:18,onClick:()=>t.dispatchAction({type:"togglePanel",panelId:Wr})}],renderPanel:t=>{if(!t.isPanelOpen(Wr))return null;const e=t.getEffectsState(),o=t.getDiagnosticsSnapshot(),r=t.getAnalyticsSnapshot(),a=o?.effectAvailability,n=e.legendEnabled||e.semanticRegionsEnabled||e.communitiesEnabled||e.centralityEnabled||e.pathfindingEnabled;return{id:Wr,title:"Effects",placement:"bottom",order:8,defaultOpen:!1,preferredWidth:460,preferredHeight:360,content:N.jsxDEV("div",{style:hd,children:[N.jsxDEV("div",{style:fd,children:"Exploration effects"},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:337,columnNumber:11},void 0),N.jsxDEV("div",{style:zr,children:[N.jsxDEV("div",{style:Vr,children:"Scene effects"},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:340,columnNumber:13},void 0),id.map(s=>N.jsxDEV(Vo,{label:s.label,description:s.description,checked:e[s.key],availability:zo(a,s.key,e[s.key]),onToggle:()=>t.dispatchAction({type:"toggleEffect",effect:s.key})},s.key,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:341,columnNumber:43},void 0))]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:339,columnNumber:11},void 0),N.jsxDEV("div",{style:zr,children:[N.jsxDEV("div",{style:Vr,children:"Graph intelligence"},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:348,columnNumber:13},void 0),sd.map(s=>N.jsxDEV(Vo,{label:s.label,description:s.description,checked:e[s.key],availability:zo(a,s.key,e[s.key]),onToggle:()=>t.dispatchAction({type:"toggleEffect",effect:s.key})},s.key,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:349,columnNumber:50},void 0))]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:347,columnNumber:11},void 0),n?N.jsxDEV("div",{style:zr,children:[N.jsxDEV("div",{style:Vr,children:"Regions and signals"},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:356,columnNumber:15},void 0),dd(t,r)]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:355,columnNumber:33},void 0):null,N.jsxDEV("div",{style:zr,children:[N.jsxDEV("div",{style:Vr,children:"Diagnostics"},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:361,columnNumber:15},void 0),N.jsxDEV(Vo,{label:"Dev Diagnostics",description:"Inspect plugin, interaction, and effect gating state.",checked:e.diagnosticsEnabled,availability:zo(a,"diagnosticsEnabled",e.diagnosticsEnabled),onToggle:()=>t.dispatchAction({type:"toggleEffect",effect:"diagnosticsEnabled"})},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:362,columnNumber:15},void 0),e.diagnosticsEnabled&&o?N.jsxDEV("details",{style:yd,children:[N.jsxDEV("summary",{style:vd,children:"Runtime snapshot"},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:367,columnNumber:19},void 0),N.jsxDEV("pre",{style:xd,children:JSON.stringify({diagnostics:o,analytics:r},null,2)},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:368,columnNumber:19},void 0)]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:366,columnNumber:73},void 0):null]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:360,columnNumber:34},void 0)]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:336,columnNumber:16},void 0)}}},hd={display:"flex",flexDirection:"column",gap:12},fd={color:"#c99aa3",fontSize:11,fontWeight:700,letterSpacing:"0.08em",textTransform:"uppercase"},zr={display:"flex",flexDirection:"column",gap:8,padding:"10px 12px",borderRadius:14,border:"1px solid rgba(255,255,255,0.06)",background:"rgba(255,255,255,0.025)"},Vr={color:"#ffdfe4",fontSize:12,fontWeight:700},mr={color:"#9cc4ec",fontSize:11,fontWeight:700,letterSpacing:"0.05em",textTransform:"uppercase"},md={display:"flex",alignItems:"center",gap:12,padding:"8px 0"},or={color:"#fff1f3",fontSize:13,fontWeight:600},gd={color:"#a1b7cf",fontSize:12,lineHeight:1.45},nr={color:"#7fc6ff",fontSize:11,lineHeight:1.45},Ni={minWidth:52,padding:"8px 10px",borderRadius:999,border:"1px solid rgba(255,255,255,0.08)",background:"rgba(255,255,255,0.03)",color:"#cfe0f4",fontSize:12,fontWeight:700,cursor:"pointer"},bd={...Ni,background:"rgba(31, 111, 235, 0.24)",border:"1px solid rgba(255, 107, 129, 0.28)",color:"#eef6ff"},Ra={display:"flex",alignItems:"center",gap:10,padding:"8px 10px",borderRadius:12,border:"1px solid rgba(255,255,255,0.06)",background:"rgba(255,255,255,0.025)"},ja={width:10,height:10,borderRadius:999,flexShrink:0},Uo={display:"flex",alignItems:"center",gap:10,padding:"8px 10px",borderRadius:12,border:"1px solid rgba(255,255,255,0.05)",background:"rgba(255,255,255,0.02)"},Ur={padding:"5px 8px",borderRadius:999,background:"rgba(31, 111, 235, 0.16)",border:"1px solid rgba(255, 107, 129, 0.16)",color:"#ffdfe4",fontSize:11,fontWeight:700,whiteSpace:"nowrap"},yd={borderRadius:12,border:"1px solid rgba(255,255,255,0.05)",background:"rgba(0,0,0,0.14)",overflow:"hidden"},vd={cursor:"pointer",padding:"10px 12px",color:"#f0cdd3",fontSize:12,fontWeight:700,letterSpacing:"0.04em",textTransform:"uppercase"},xd={margin:0,padding:"0 12px 12px",color:"#ffdfe4",fontSize:11,lineHeight:1.55,whiteSpace:"pre-wrap",wordBreak:"break-word"},Sd={color:"#c99aa3",fontSize:12,lineHeight:1.5},wd=Object.freeze(Object.defineProperty({__proto__:null,explorationEffectsPluginPhaseC:pd},Symbol.toStringTag,{value:"Module"}));function Nd({panelState:t}){return!!t["effects-panel"]}function Ed({panelState:t}){return!!t["neighborhood-panel"]}function Ad({panelState:t}){return!!t["temporal-panel"]}function kd(t){return t!==void 0}function Cd({debouncedTime:t,isLoading:e,summary:o}){return o!==void 0&&t!==null&&!e}const Id=256;function Dd(){const t=new Map;let e=0,o=null;const r=()=>{for(;t.size>Id;){const a=t.keys().next().value;if(a===void 0)return;t.delete(a)}};return{begin(a){const n=t.get(a);if(n&&n.data===null)return o=a,{seq:null,cached:null};e+=1;const s=e;return t.set(a,{seq:s,data:n?.data??null}),o=a,r(),{seq:s,cached:n?.data??null}},shouldApply(a,n){return a===o&&t.get(a)?.seq===n},apply(a,n,s){const i=t.get(a);i&&i.seq===n&&(i.data=s)},finish(a,n){const s=t.get(a);s&&s.seq===n&&s.data===null&&t.delete(a)},reset(){t.clear(),e=0,o=null}}}function _d(t,e){const o=t.properties||{},r=!!o.inferred,a=r?E.palette.accent.path:E.palette.muted.edgeStructure;return{edgeId:t.id,familyId:t.familyId||t.id,sourceId:t.source_id,targetId:t.target_id,weight:Number(t.weight??1),edgeType:t.type||"related_to",properties:o,size:1,baseSize:1,color:a,baseColor:a,mutedColor:E.palette.muted.edgeOverview,visualPriority:r?.95:.5,isBidirectional:e.isBidirectional,edgeFamily:r?"path":e.isBidirectional?"bidirectional":"line",curveGroup:e.isBidirectional?Jo(t.source_id,t.target_id):null,type:"line",edgeVariant:r?"pathSignal":e.isBidirectional?"bidirectionalCurve":"directional",arrowVisibilityPolicy:r?"always":"contextual",relationshipStrength:r?.95:.52,isParallelPair:!1,parallelIndex:0,parallelCount:1,familySize:1,isSmallGraph:e.isSmallGraph}}class Gd{generations=new Map;begin(e){const o=(this.generations.get(e)??0)+1;return this.generations.set(e,o),o}invalidate(e){this.begin(e)}isCurrent(e,o){return this.generations.get(e)===o}}function Zo(t,e,o){return{label:e||t,content:e,properties:{...o,content:e}}}async function Ld(t,e=fetch){const o=await e(`/api/graph/node?node_id=${encodeURIComponent(t)}`);if(!o.ok)throw new Error(`Graph node refresh failed (${o.status}).`);const r=await o.json();if(r.id!==t)throw new Error("Graph node refresh returned a different resource.");return{...Zo(r.id,r.content,r.properties??{}),nodeType:r.type,valid_from:r.valid_from??null,valid_until:r.valid_until??null}}const Pd=["source","source_url","pmid","pmids","evidence","provenance","confidence"],at={},Md=6,Ha=3,Rd={pathPulseEnabled:!1,pathFlowEnabled:!1,lensEnabled:!1,temporalEmphasisEnabled:!1,semanticRegionsEnabled:!1,contoursEnabled:!1,pathfindingEnabled:!1,communitiesEnabled:!1,centralityEnabled:!1,legendEnabled:!1,edgeLabelsEnabled:!0,diagnosticsEnabled:!1,lensMode:"neighborhood",effectQuality:"bounded"},jd=A.lazy(()=>Er(()=>import("./TimelinePanel-DmtiXgmN.js"),__vite__mapDeps([0,1,2,3,4,5,6])).then(t=>({default:t.TimelinePanel}))),Hd=A.lazy(()=>Er(()=>import("./GraphInspectorPanel-Bbrbhd03.js"),__vite__mapDeps([7,1,2,3,6,8,9,10,11,12,13,14,15,16,17,18,19])).then(t=>({default:t.GraphInspectorPanel}))),Td=()=>Er(()=>Promise.resolve().then(()=>wd),void 0).then(t=>t.explorationEffectsPluginPhaseC),Wd=()=>Er(()=>import("./neighborhoodPanelPlugin-w1yJlm0A.js"),__vite__mapDeps([20,1,2,3])).then(t=>t.neighborhoodPanelPlugin),zd=()=>Er(()=>import("./temporalOverlayPlugin-CRhLa1FU.js"),__vite__mapDeps([21,1,2,3])).then(t=>t.temporalOverlayPlugin),Nt=[],Vd=new Set(["camera","utility"]);function Bo(t,e){console.debug(`[GraphWorkspace] ${t}`,e??{})}function Ud(t){return[t.nodeCount,t.edgeCount,t.layoutSource??"unknown",t.layoutReady?"ready":"runtime",t.loadTimeMs].join(":")}function Bd(t,e){const o=Xe.c(5);if(o[0]!=="08ad6dd16df86ffd1146fd308a5c7642d562e4cdc55c5644fc172369749ef8b7"){for(let i=0;i<5;i+=1)o[i]=Symbol.for("react.memo_cache_sentinel");o[0]="08ad6dd16df86ffd1146fd308a5c7642d562e4cdc55c5644fc172369749ef8b7"}const[r,a]=A.useState(t);let n,s;return o[1]!==e||o[2]!==t?(n=()=>{const i=setTimeout(()=>a(t),e);return()=>clearTimeout(i)},s=[e,t],o[1]=e,o[2]=t,o[3]=n,o[4]=s):(n=o[3],s=o[4]),A.useEffect(n,s),r}function Od(t){const e=`${t.id} ${t.label}`.toLowerCase();return e.includes("neighbor")?Ba:e.includes("temporal")||e.includes("time")?ss:Ua}function Fd(t){const e=Xe.c(4);if(e[0]!=="08ad6dd16df86ffd1146fd308a5c7642d562e4cdc55c5644fc172369749ef8b7"){for(let s=0;s<4;s+=1)e[s]=Symbol.for("react.memo_cache_sentinel");e[0]="08ad6dd16df86ffd1146fd308a5c7642d562e4cdc55c5644fc172369749ef8b7"}const{icon:o,size:r}=t,a=r===void 0?15:r;if(!o)return null;let n;return e[1]!==o||e[2]!==a?(n=N.jsxDEV(o,{size:a,strokeWidth:2.15,"aria-hidden":!0},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:190,columnNumber:10},this),e[1]=o,e[2]=a,e[3]=n):n=e[3],n}function Ei(t){const e=Xe.c(17);if(e[0]!=="08ad6dd16df86ffd1146fd308a5c7642d562e4cdc55c5644fc172369749ef8b7"){for(let x=0;x<17;x+=1)e[x]=Symbol.for("react.memo_cache_sentinel");e[0]="08ad6dd16df86ffd1146fd308a5c7642d562e4cdc55c5644fc172369749ef8b7"}const{item:o,compact:r,className:a,toggle:n}=t,s=r===void 0?!1:r,i=a===void 0?"":a,l=n===void 0?!1:n,u=s||o.compact,d=`explore-tool-button ${o.tone==="primary"?"explore-tool-button-primary":""} ${i}`,c=o.active?"true":"false",p=u?"true":"false",b=l?o.active===!0:void 0,m=o.ariaLabel??o.label,f=u?14:15;let y;e[1]!==o.icon||e[2]!==f?(y=N.jsxDEV(Fd,{icon:o.icon,size:f},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:225,columnNumber:11},this),e[1]=o.icon,e[2]=f,e[3]=y):y=e[3];let h;e[4]!==o.label?(h=N.jsxDEV("span",{className:"explore-tool-button-label",children:o.label},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:234,columnNumber:11},this),e[4]=o.label,e[5]=h):h=e[5];let v;return e[6]!==o.disabled||e[7]!==o.onClick||e[8]!==o.title||e[9]!==y||e[10]!==h||e[11]!==d||e[12]!==c||e[13]!==p||e[14]!==b||e[15]!==m?(v=N.jsxDEV("button",{type:"button",className:d,"data-active":c,"data-compact":p,"aria-pressed":b,onClick:o.onClick,title:o.title,"aria-label":m,disabled:o.disabled,children:[y,h]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:242,columnNumber:11},this),e[6]=o.disabled,e[7]=o.onClick,e[8]=o.title,e[9]=y,e[10]=h,e[11]=d,e[12]=c,e[13]=p,e[14]=b,e[15]=m,e[16]=v):v=e[16],v}function $d(t){const e=Xe.c(13);if(e[0]!=="08ad6dd16df86ffd1146fd308a5c7642d562e4cdc55c5644fc172369749ef8b7"){for(let c=0;c<13;c+=1)e[c]=Symbol.for("react.memo_cache_sentinel");e[0]="08ad6dd16df86ffd1146fd308a5c7642d562e4cdc55c5644fc172369749ef8b7"}const{label:o,items:r,compact:a,children:n}=t,s=a===void 0?!1:a;if((!r||r.length===0)&&!n)return null;let i;e[1]!==o?(i=N.jsxDEV("div",{className:"explore-tool-cluster-label",children:o},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:279,columnNumber:10},this),e[1]=o,e[2]=i):i=e[2];let l;e[3]!==s||e[4]!==r?(l=r?.map(c=>N.jsxDEV(Ei,{item:c,compact:s},c.id,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:287,columnNumber:29},this)),e[3]=s,e[4]=r,e[5]=l):l=e[5];let u;e[6]!==n||e[7]!==l?(u=N.jsxDEV("div",{className:"explore-tool-cluster-items",children:[n,l]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:296,columnNumber:10},this),e[6]=n,e[7]=l,e[8]=u):u=e[8];let d;return e[9]!==o||e[10]!==i||e[11]!==u?(d=N.jsxDEV("div",{className:"explore-tool-cluster","aria-label":o,children:[i,u]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:305,columnNumber:10},this),e[9]=o,e[10]=i,e[11]=u,e[12]=d):d=e[12],d}function qd(t){const e=Xe.c(5);if(e[0]!=="08ad6dd16df86ffd1146fd308a5c7642d562e4cdc55c5644fc172369749ef8b7"){for(let n=0;n<5;n+=1)e[n]=Symbol.for("react.memo_cache_sentinel");e[0]="08ad6dd16df86ffd1146fd308a5c7642d562e4cdc55c5644fc172369749ef8b7"}const{items:o}=t;if(!o.length)return null;let r;e[1]!==o?(r=o.map(Kd),e[1]=o,e[2]=r):r=e[2];let a;return e[3]!==r?(a=N.jsxDEV("div",{className:"explore-mode-control",role:"group","aria-label":"Graph view mode",children:r},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:339,columnNumber:10},this),e[3]=r,e[4]=a):a=e[4],a}function Kd(t){return N.jsxDEV(Ei,{item:t,className:"explore-mode-segment",toggle:!0},t.id,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:348,columnNumber:10},this)}const Yd=250,Xd=6;function Zd(t){const e=Xe.c(47);if(e[0]!=="08ad6dd16df86ffd1146fd308a5c7642d562e4cdc55c5644fc172369749ef8b7"){for(let T=0;T<47;T+=1)e[T]=Symbol.for("react.memo_cache_sentinel");e[0]="08ad6dd16df86ffd1146fd308a5c7642d562e4cdc55c5644fc172369749ef8b7"}const{value:o,disabled:r,onChange:a,onSubmit:n,onSelectSuggestion:s}=t;let i;e[1]===Symbol.for("react.memo_cache_sentinel")?(i=[],e[1]=i):i=e[1];const[l,u]=A.useState(i),[d,c]=A.useState(!1),[p,b]=A.useState(-1),m=A.useRef(null),f=A.useRef(null),y=A.useId();let h,v;e[2]!==r||e[3]!==o?(h=()=>{f.current!==null&&window.clearTimeout(f.current);const T=o.trim();if(r||!T){m.current?.abort(),u([]),c(!1),b(-1);return}return f.current=window.setTimeout(()=>{m.current?.abort();const P=new AbortController;m.current=P,fetch("/api/graph/search",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({query:T,limit:Xd}),signal:P.signal}).then(Qd).then(z=>{u(z.results??[]),c(!0),b(-1)}).catch(z=>{z instanceof DOMException&&z.name==="AbortError"||(u([]),c(!1),b(-1))})},Yd),()=>{f.current!==null&&window.clearTimeout(f.current),m.current?.abort()}},v=[o,r],e[2]=r,e[3]=o,e[4]=h,e[5]=v):(h=e[4],v=e[5]),A.useEffect(h,v);let x;e[6]===Symbol.for("react.memo_cache_sentinel")?(x=()=>{c(!1),b(-1)},e[6]=x):x=e[6];const g=x;let w;e[7]!==s?(w=T=>{u([]),g(),s(T)},e[7]=s,e[8]=w):w=e[8];const C=w,I=d&&l.length>0;let k;e[9]!==r||e[10]!==p||e[11]!==n||e[12]!==C||e[13]!==l||e[14]!==d?(k=T=>{if(T.preventDefault(),!r){if(d&&p>=0&&l[p]){C(l[p]);return}g(),n()}},e[9]=r,e[10]=p,e[11]=n,e[12]=C,e[13]=l,e[14]=d,e[15]=k):k=e[15];let D;e[16]===Symbol.for("react.memo_cache_sentinel")?(D=N.jsxDEV(Oi,{size:17,strokeWidth:2.15,"aria-hidden":!0},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:490,columnNumber:10},this),e[16]=D):D=e[16];let _;e[17]!==a?(_=T=>a(T.target.value),e[17]=a,e[18]=_):_=e[18];let L;e[19]!==l.length?(L=()=>{l.length>0&&c(!0)},e[19]=l.length,e[20]=L):L=e[20];let G;e[21]===Symbol.for("react.memo_cache_sentinel")?(G=()=>{window.setTimeout(g,120)},e[21]=G):G=e[21];let V;e[22]!==l.length||e[23]!==d?(V=T=>{!d||l.length===0||(T.key==="ArrowDown"?(T.preventDefault(),b(P=>(P+1)%l.length)):T.key==="ArrowUp"?(T.preventDefault(),b(P=>P<=0?l.length-1:P-1)):T.key==="Escape"&&(T.preventDefault(),g()))},e[22]=l.length,e[23]=d,e[24]=V):V=e[24];const q=p>=0?`${y}-${p}`:void 0;let W;e[25]!==y||e[26]!==L||e[27]!==V||e[28]!==q||e[29]!==_||e[30]!==o?(W=N.jsxDEV("input",{value:o,onChange:_,onFocus:L,onBlur:G,onKeyDown:V,placeholder:"Search command, node, or concept","aria-label":"Search graph nodes","aria-autocomplete":"list","aria-controls":y,"aria-activedescendant":q},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:554,columnNumber:11},this),e[25]=y,e[26]=L,e[27]=V,e[28]=q,e[29]=_,e[30]=o,e[31]=W):W=e[31];let F;e[32]!==r?(F=N.jsxDEV("button",{type:"submit",disabled:r,"aria-label":"Search for the current query",children:"Search"},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:567,columnNumber:11},this),e[32]=r,e[33]=F):F=e[33];let ee;e[34]!==p||e[35]!==y||e[36]!==C||e[37]!==l||e[38]!==d?(ee=d&&l.length>0?N.jsxDEV("ul",{id:y,role:"listbox",className:"explore-search-suggestions","aria-label":"Search suggestions",children:l.map((T,P)=>N.jsxDEV("li",{id:`${y}-${P}`,role:"option","aria-selected":P===p,"data-highlighted":P===p,onMouseDown:z=>{z.preventDefault(),C(T)},onMouseEnter:()=>b(P),children:[N.jsxDEV("span",{className:"explore-search-suggestion-label",children:T.node.content||T.node.id},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:578,columnNumber:58},this),N.jsxDEV("span",{className:"explore-search-suggestion-type",children:T.node.type},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:578,columnNumber:158},this)]},T.node.id,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:575,columnNumber:198},this))},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:575,columnNumber:55},this):null,e[34]=p,e[35]=y,e[36]=C,e[37]=l,e[38]=d,e[39]=ee):ee=e[39];let U;return e[40]!==y||e[41]!==W||e[42]!==F||e[43]!==ee||e[44]!==I||e[45]!==k?(U=N.jsxDEV("form",{className:"explore-search-command",role:"combobox","aria-expanded":I,"aria-haspopup":"listbox","aria-owns":y,onSubmit:k,children:[D,W,F,ee]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:590,columnNumber:11},this),e[40]=y,e[41]=W,e[42]=F,e[43]=ee,e[44]=I,e[45]=k,e[46]=U):U=e[46],U}function Qd(t){if(!t.ok)throw new Error(`Search failed with status ${t.status}`);return t.json()}function Jd(t){const e=Xe.c(6);if(e[0]!=="08ad6dd16df86ffd1146fd308a5c7642d562e4cdc55c5644fc172369749ef8b7"){for(let s=0;s<6;s+=1)e[s]=Symbol.for("react.memo_cache_sentinel");e[0]="08ad6dd16df86ffd1146fd308a5c7642d562e4cdc55c5644fc172369749ef8b7"}const{items:o}=t;if(!o.length)return null;let r;e[1]===Symbol.for("react.memo_cache_sentinel")?(r=N.jsxDEV("span",{className:"explore-color-legend-label",title:"Base semantic colors; selection, zoom, and distance effects can change node appearance.",children:"Node colors"},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:625,columnNumber:10},this),e[1]=r):r=e[1];let a;e[2]!==o?(a=o.map(ep),e[2]=o,e[3]=a):a=e[3];let n;return e[4]!==a?(n=N.jsxDEV("div",{className:"explore-color-legend",role:"group","aria-label":"Node colors",children:[r,N.jsxDEV("ul",{className:"explore-color-legend-items",children:a},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:640,columnNumber:90},this)]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:640,columnNumber:10},this),e[4]=a,e[5]=n):n=e[5],n}function ep(t){return N.jsxDEV("li",{className:"explore-color-legend-item",title:`${t.group}: ${t.count.toLocaleString()} nodes`,children:[N.jsxDEV("span",{className:"explore-color-legend-mark",style:{backgroundColor:t.color},"aria-hidden":"true"},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:649,columnNumber:128},this),N.jsxDEV("span",{className:"explore-color-legend-name",children:t.group},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:651,columnNumber:29},this)]},t.id,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:649,columnNumber:10},this)}const tp=`
|
|
585
|
+
`;function ed(t){switch(t){case"provided":return"Persisted layout";case"carried":return"Preserved layout";case"runtime":return"Runtime layout";default:return null}}function td(t){switch(t){case"bootstrapping":return"Bootstrapping";case"running":return"Settling";case"interactive":return"Interactive";case"stabilized":return"Stable";case"failed":return"Fallback";default:return null}}const Wo={display:"inline-flex",alignItems:"center",gap:6,padding:"7px 10px",borderRadius:999,border:"1px solid rgba(255, 107, 129, 0.12)",background:"rgba(28, 20, 24, 0.03)",color:"#25313f",fontSize:11,fontWeight:600};function rd(t){const e=Xe.c(112);if(e[0]!=="c1e4a01dd2e0db4d128a4a010c35b2b67590208dba220e05711ba6485ed88749"){for(let de=0;de<112;de+=1)e[de]=Symbol.for("react.memo_cache_sentinel");e[0]="c1e4a01dd2e0db4d128a4a010c35b2b67590208dba220e05711ba6485ed88749"}const{progress:o,visible:r,showGraphBehind:a,error:n,onRetry:s}=t,i=n===void 0?null:n,[l,u]=A.useState(r),[d,c]=A.useState(!1);let p;e[1]!==o?(p=o??Mt({phase:"bootstrapping",message:"Preparing graph session",progressKind:"indeterminate"}),e[1]=o,e[2]=p):p=e[2];const[b,m]=A.useState(p),f=A.useRef(null);let y,h;e[3]!==o?(y=()=>{o&&m(o)},h=[o],e[3]=o,e[4]=y,e[5]=h):(y=e[4],h=e[5]),A.useEffect(y,h);let v,x;if(e[6]!==l||e[7]!==r?(v=()=>{if(r){f.current!==null&&(window.clearTimeout(f.current),f.current=null),u(!0),c(!1);return}if(l)return c(!0),f.current=window.setTimeout(()=>{u(!1),c(!1),f.current=null},220),()=>{f.current!==null&&(window.clearTimeout(f.current),f.current=null)}},x=[l,r],e[6]=l,e[7]=r,e[8]=v,e[9]=x):(v=e[8],x=e[9]),A.useEffect(v,x),!l)return null;if(i){let de,ie;e[10]===Symbol.for("react.memo_cache_sentinel")?(de={background:"linear-gradient(180deg, rgba(255, 255, 255,0.22), rgba(255, 255, 255,0.5))"},ie=N.jsxDEV("style",{children:Pa},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphLoadingOverlay.tsx",lineNumber:315,columnNumber:12},this),e[10]=de,e[11]=ie):(de=e[10],ie=e[11]);let De;e[12]===Symbol.for("react.memo_cache_sentinel")?(De={display:"flex",alignItems:"flex-start",gap:14,marginBottom:14},e[12]=De):De=e[12];let je;e[13]===Symbol.for("react.memo_cache_sentinel")?(je=N.jsxDEV("div",{style:De,children:[N.jsxDEV("div",{className:"graph-stage-loader-error-mark","aria-hidden":"true",children:N.jsxDEV(ms,{size:18,strokeWidth:2.2},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphLoadingOverlay.tsx",lineNumber:336,columnNumber:95},this)},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphLoadingOverlay.tsx",lineNumber:336,columnNumber:29},this),N.jsxDEV("div",{style:{minWidth:0},children:[N.jsxDEV("div",{style:{color:"#16181d",fontSize:20,fontWeight:700,letterSpacing:"-0.03em",marginBottom:6},children:"Could not load the graph"},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphLoadingOverlay.tsx",lineNumber:338,columnNumber:12},this),N.jsxDEV("div",{style:{color:"#aa485b",fontSize:13,lineHeight:1.5},children:"The Explorer API did not return graph data. Check that the backend is running and reachable, then try again."},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphLoadingOverlay.tsx",lineNumber:344,columnNumber:44},this)]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphLoadingOverlay.tsx",lineNumber:336,columnNumber:146},this)]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphLoadingOverlay.tsx",lineNumber:336,columnNumber:13},this),e[13]=je):je=e[13];let Ue;e[14]!==i?(Ue=N.jsxDEV("div",{className:"graph-stage-loader-error-detail",children:i},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphLoadingOverlay.tsx",lineNumber:355,columnNumber:13},this),e[14]=i,e[15]=Ue):Ue=e[15];let Oe;e[16]!==s?(Oe=s?N.jsxDEV("div",{style:{display:"flex",gap:10,marginTop:16},children:N.jsxDEV("button",{type:"button",className:"graph-stage-loader-retry",onClick:s,children:[N.jsxDEV(Va,{size:14,strokeWidth:2.2,"aria-hidden":!0},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphLoadingOverlay.tsx",lineNumber:367,columnNumber:87},this),"Retry"]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphLoadingOverlay.tsx",lineNumber:367,columnNumber:10},this)},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphLoadingOverlay.tsx",lineNumber:363,columnNumber:23},this):null,e[16]=s,e[17]=Oe):Oe=e[17];let Re;e[18]!==Ue||e[19]!==Oe?(Re=N.jsxDEV("div",{className:"graph-stage-loader-card","data-error":"true",role:"alert",children:[je,Ue,Oe]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphLoadingOverlay.tsx",lineNumber:375,columnNumber:13},this),e[18]=Ue,e[19]=Oe,e[20]=Re):Re=e[20];let st;return e[21]!==d||e[22]!==Re?(st=N.jsxDEV("div",{className:"graph-stage-loader","data-exiting":d,style:de,children:[ie,Re]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphLoadingOverlay.tsx",lineNumber:384,columnNumber:13},this),e[21]=d,e[22]=Re,e[23]=st):st=e[23],st}const g=o??b,w=g.phase==="stabilizing_layout"||g.showGraphBehind||a,C=w?"linear-gradient(180deg, rgba(255, 255, 255,0.04), rgba(255, 255, 255,0.18))":"linear-gradient(180deg, rgba(255, 255, 255,0.22), rgba(255, 255, 255,0.5))",I=g.progressKind==="determinate"&&g.total?Math.max(.05,Math.min(g.loaded??0,g.total)/Math.max(g.total,1)):null;let k;e[24]!==g.layoutSource?(k=ed(g.layoutSource),e[24]=g.layoutSource,e[25]=k):k=e[25];const D=k;let _;e[26]!==g.layoutState?(_=td(g.layoutState),e[26]=g.layoutState,e[27]=_):_=e[27];const L=_;let G;e[28]!==C?(G={background:C},e[28]=C,e[29]=G):G=e[29];let V;e[30]===Symbol.for("react.memo_cache_sentinel")?(V=N.jsxDEV("style",{children:Pa},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphLoadingOverlay.tsx",lineNumber:427,columnNumber:11},this),e[30]=V):V=e[30];let q,W,F;e[31]===Symbol.for("react.memo_cache_sentinel")?(q={display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:14,marginBottom:14},W={minWidth:0},F={color:"#16181d",fontSize:20,fontWeight:700,letterSpacing:"-0.03em",marginBottom:6},e[31]=q,e[32]=W,e[33]=F):(q=e[31],W=e[32],F=e[33]);let ee;e[34]!==g.title?(ee=N.jsxDEV("div",{style:F,children:g.title},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphLoadingOverlay.tsx",lineNumber:463,columnNumber:11},this),e[34]=g.title,e[35]=ee):ee=e[35];let U;e[36]===Symbol.for("react.memo_cache_sentinel")?(U={color:"#aa485b",fontSize:13,lineHeight:1.5},e[36]=U):U=e[36];let T;e[37]!==g.message?(T=N.jsxDEV("div",{style:U,children:g.message},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphLoadingOverlay.tsx",lineNumber:482,columnNumber:11},this),e[37]=g.message,e[38]=T):T=e[38];let P;e[39]!==ee||e[40]!==T?(P=N.jsxDEV("div",{style:W,children:[ee,T]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphLoadingOverlay.tsx",lineNumber:490,columnNumber:11},this),e[39]=ee,e[40]=T,e[41]=P):P=e[41];let z,te,Q;e[42]===Symbol.for("react.memo_cache_sentinel")?(z={display:"inline-flex",alignItems:"center",gap:10,flexShrink:0},te=N.jsxDEV("div",{className:"graph-stage-loader-beacon","aria-hidden":"true"},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphLoadingOverlay.tsx",lineNumber:507,columnNumber:11},this),Q={color:"#16222e",fontSize:11,fontWeight:700,letterSpacing:"0.08em",textTransform:"uppercase"},e[42]=z,e[43]=te,e[44]=Q):(z=e[42],te=e[43],Q=e[44]);const B=g.stageIndex??1,le=g.stageCount??Sr.length;let J;e[45]!==B||e[46]!==le?(J=N.jsxDEV("div",{style:z,children:[te,N.jsxDEV("div",{style:Q,children:["Stage ",B,"/",le]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphLoadingOverlay.tsx",lineNumber:527,columnNumber:33},this)]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphLoadingOverlay.tsx",lineNumber:527,columnNumber:11},this),e[45]=B,e[46]=le,e[47]=J):J=e[47];let re;e[48]!==P||e[49]!==J?(re=N.jsxDEV("div",{style:q,children:[P,J]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphLoadingOverlay.tsx",lineNumber:536,columnNumber:11},this),e[48]=P,e[49]=J,e[50]=re):re=e[50];let ce;e[51]===Symbol.for("react.memo_cache_sentinel")?(ce={marginBottom:14},e[51]=ce):ce=e[51];let ue;e[52]!==g.stageIndex?(ue=Sr.map((de,ie)=>{const De=g.stageIndex??1,je=ie+1<De?"done":ie+1===De?"active":"upcoming";return N.jsxDEV("div",{className:"graph-stage-loader-step","data-state":je,children:Gu(de)},de,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphLoadingOverlay.tsx",lineNumber:557,columnNumber:14},this)}),e[52]=g.stageIndex,e[53]=ue):ue=e[53];let ge;e[54]!==ue?(ge=N.jsxDEV("div",{className:"graph-stage-loader-track",style:ce,children:ue},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphLoadingOverlay.tsx",lineNumber:566,columnNumber:11},this),e[54]=ue,e[55]=ge):ge=e[55];let se,Ce;e[56]===Symbol.for("react.memo_cache_sentinel")?(se={display:"flex",justifyContent:"space-between",gap:12,alignItems:"baseline",marginBottom:8},Ce={color:"#17222d",fontSize:12,fontWeight:600},e[56]=se,e[57]=Ce):(se=e[56],Ce=e[57]);let _e;e[58]!==g.loaded||e[59]!==g.progressKind||e[60]!==g.total?(_e=g.progressKind==="determinate"&&g.total?`${(g.loaded??0).toLocaleString()} / ${g.total.toLocaleString()} in current stage`:"Working through this stage",e[58]=g.loaded,e[59]=g.progressKind,e[60]=g.total,e[61]=_e):_e=e[61];let be;e[62]!==_e?(be=N.jsxDEV("div",{style:Ce,children:_e},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphLoadingOverlay.tsx",lineNumber:605,columnNumber:11},this),e[62]=_e,e[63]=be):be=e[63];let Me;e[64]===Symbol.for("react.memo_cache_sentinel")?(Me={color:"#90a8c5",fontSize:11,fontWeight:700,letterSpacing:"0.06em",textTransform:"uppercase"},e[64]=Me):Me=e[64];let we;e[65]!==g.progressKind||e[66]!==I?(we=g.progressKind==="determinate"&&I!==null?`${Math.round(I*100)}%`:"Live",e[65]=g.progressKind,e[66]=I,e[67]=we):we=e[67];let Qe;e[68]!==we?(Qe=N.jsxDEV("div",{style:Me,children:we},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphLoadingOverlay.tsx",lineNumber:635,columnNumber:11},this),e[68]=we,e[69]=Qe):Qe=e[69];let Je;e[70]!==be||e[71]!==Qe?(Je=N.jsxDEV("div",{style:se,children:[be,Qe]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphLoadingOverlay.tsx",lineNumber:643,columnNumber:11},this),e[70]=be,e[71]=Qe,e[72]=Je):Je=e[72];const $e=`graph-stage-loader-bar ${g.progressKind==="indeterminate"?"graph-stage-loader-bar-indeterminate":""}`;let pt;e[73]!==g.progressKind||e[74]!==I?(pt=g.progressKind==="determinate"&&I!==null?N.jsxDEV("span",{className:"graph-stage-loader-bar-fill",style:{width:`${Math.round(I*100)}%`}},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphLoadingOverlay.tsx",lineNumber:653,columnNumber:88},this):null,e[73]=g.progressKind,e[74]=I,e[75]=pt):pt=e[75];let We;e[76]!==$e||e[77]!==pt?(We=N.jsxDEV("div",{className:$e,children:pt},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphLoadingOverlay.tsx",lineNumber:664,columnNumber:11},this),e[76]=$e,e[77]=pt,e[78]=We):We=e[78];let et;e[79]===Symbol.for("react.memo_cache_sentinel")?(et={display:"flex",gap:10,flexWrap:"wrap",marginTop:14},e[79]=et):et=e[79];let ht;e[80]!==g.nodesLoaded?(ht=g.nodesLoaded.toLocaleString(),e[80]=g.nodesLoaded,e[81]=ht):ht=e[81];let Ze;e[82]!==g.nodesTotal?(Ze=g.nodesTotal?` / ${g.nodesTotal.toLocaleString()}`:"",e[82]=g.nodesTotal,e[83]=Ze):Ze=e[83];let it;e[84]!==ht||e[85]!==Ze?(it=N.jsxDEV("span",{style:Wo,children:[ht,Ze," nodes"]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphLoadingOverlay.tsx",lineNumber:701,columnNumber:11},this),e[84]=ht,e[85]=Ze,e[86]=it):it=e[86];let tt;e[87]!==g.edgesLoaded?(tt=g.edgesLoaded.toLocaleString(),e[87]=g.edgesLoaded,e[88]=tt):tt=e[88];let Ie;e[89]!==g.edgesTotal?(Ie=g.edgesTotal?` / ${g.edgesTotal.toLocaleString()}`:"",e[89]=g.edgesTotal,e[90]=Ie):Ie=e[90];let qe;e[91]!==tt||e[92]!==Ie?(qe=N.jsxDEV("span",{style:Wo,children:[tt,Ie," relationships"]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphLoadingOverlay.tsx",lineNumber:726,columnNumber:11},this),e[91]=tt,e[92]=Ie,e[93]=qe):qe=e[93];let xe;e[94]!==D||e[95]!==L?(xe=D?N.jsxDEV("span",{style:{...Wo,color:"#234053",borderColor:K(E.palette.accent.hovered,.22)},children:[D,L?` · ${L}`:""]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphLoadingOverlay.tsx",lineNumber:735,columnNumber:26},this):null,e[94]=D,e[95]=L,e[96]=xe):xe=e[96];let ve;e[97]!==it||e[98]!==qe||e[99]!==xe?(ve=N.jsxDEV("div",{style:et,children:[it,qe,xe]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphLoadingOverlay.tsx",lineNumber:748,columnNumber:11},this),e[97]=it,e[98]=qe,e[99]=xe,e[100]=ve):ve=e[100];let he;e[101]!==w||e[102]!==re||e[103]!==ge||e[104]!==Je||e[105]!==We||e[106]!==ve?(he=N.jsxDEV("div",{className:"graph-stage-loader-card","data-live":w,children:[re,ge,Je,We,ve]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphLoadingOverlay.tsx",lineNumber:758,columnNumber:11},this),e[101]=w,e[102]=re,e[103]=ge,e[104]=Je,e[105]=We,e[106]=ve,e[107]=he):he=e[107];let Ke;return e[108]!==d||e[109]!==he||e[110]!==G?(Ke=N.jsxDEV("div",{className:"graph-stage-loader","data-exiting":d,style:G,children:[V,he]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphLoadingOverlay.tsx",lineNumber:771,columnNumber:11},this),e[108]=d,e[109]=he,e[110]=G,e[111]=Ke):Ke=e[111],Ke}const Ma={"communities-undetected":"Grouped view is unavailable until communities can be detected.","community-nodes-missing":"Grouped view is unavailable because no community nodes could be created."},od={"no-selection":"Select a node to inspect in Focused mode.","grouped-unresolvable":"Focused mode is unavailable for this grouped selection.","not-in-graph":"Selected item is not available in the current graph."};function Tr(t){if(!t)return null;switch(t.code){case"communities-undetected":return Ma["communities-undetected"];case"community-nodes-missing":return Ma["community-nodes-missing"];case"invalid-community-layout":return`Grouped node ${t.nodeId} has invalid coordinates.`;case"missing-grouped-node":return`Grouped edge ${t.edgeId} references a missing grouped node.`}}function nd(t){return t?od[t.code]:null}function ad(t,e,o){return t!=="focused"||o!==e}const Wr="effects-panel",id=[{key:"pathPulseEnabled",label:"Path Pulse",description:"Animated pulse on the active selected path."},{key:"pathFlowEnabled",label:"Path Flow",description:"Directional flow accents along the active selected path."},{key:"lensEnabled",label:"Neighborhood Lens",description:"Local emphasis around the hovered or selected node."},{key:"temporalEmphasisEnabled",label:"Temporal Emphasis",description:"Subtle glow around temporally relevant nodes in the active time window."},{key:"semanticRegionsEnabled",label:"Semantic Regions",description:"Quiet semantic hulls around the strongest visible topic clusters."},{key:"contoursEnabled",label:"Contours",description:"Low-contrast density halos around the strongest visible anchors."},{key:"edgeLabelsEnabled",label:"Edge Labels",description:"Draw the relationship type on graph edges. Off restores label-free edges on dense graphs."},{key:"legendEnabled",label:"Regions Summary",description:"Keep the regions and signals summary visible in the Effects panel."}],sd=[{key:"pathfindingEnabled",label:"Directed Pathfinding",description:"Compare the traced path against a strict local directed shortest path."},{key:"communitiesEnabled",label:"Community Regions",description:"Detect stable Louvain communities for orientation and scene grouping."},{key:"centralityEnabled",label:"Centrality Ranking",description:"Rank the strongest graph anchors for labels, regions, and navigation."}],ld={pathPulseEnabled:"pathPulse",pathFlowEnabled:"pathFlow",lensEnabled:"lens",temporalEmphasisEnabled:"temporalEmphasis",semanticRegionsEnabled:"semanticRegions",contoursEnabled:"contours",pathfindingEnabled:"pathfinding",communitiesEnabled:"communities",centralityEnabled:"centrality",legendEnabled:"legend",edgeLabelsEnabled:"edgeLabels",diagnosticsEnabled:"diagnostics"};function cd(t){return t.available?typeof t.visibleSegments=="number"&&typeof t.segmentCap=="number"?`${t.reason} - ${t.visibleSegments}/${t.segmentCap} segments`:t.reason:t.detail?`${t.reason} - ${t.detail}`:t.reason}function ud(t){return $a(t.graph,t.theme).sort((e,o)=>o.count-e.count).slice(0,t.theme.effects.legend.maxGroups)}function zo(t,e,o){return t?.[ld[e]]??{enabled:o,available:!1,reason:"Waiting for graph runtime"}}function Vo(t){const e=Xe.c(21);if(e[0]!=="0b17dfe2b39d4c3edc4158dc5a455e5f90f71dceb5d2541fb41ee0cbb70d929b"){for(let h=0;h<21;h+=1)e[h]=Symbol.for("react.memo_cache_sentinel");e[0]="0b17dfe2b39d4c3edc4158dc5a455e5f90f71dceb5d2541fb41ee0cbb70d929b"}const{label:o,description:r,checked:a,availability:n,onToggle:s}=t;let i;e[1]===Symbol.for("react.memo_cache_sentinel")?(i={minWidth:0,flex:1},e[1]=i):i=e[1];let l;e[2]!==o?(l=N.jsxDEV("div",{style:or,children:o},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:118,columnNumber:10},this),e[2]=o,e[3]=l):l=e[3];let u;e[4]!==r?(u=N.jsxDEV("div",{style:gd,children:r},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:126,columnNumber:10},this),e[4]=r,e[5]=u):u=e[5];let d;e[6]!==n?(d=cd(n),e[6]=n,e[7]=d):d=e[7];let c;e[8]!==d?(c=N.jsxDEV("div",{style:nr,children:d},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:142,columnNumber:10},this),e[8]=d,e[9]=c):c=e[9];let p;e[10]!==l||e[11]!==u||e[12]!==c?(p=N.jsxDEV("div",{style:i,children:[l,u,c]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:150,columnNumber:10},this),e[10]=l,e[11]=u,e[12]=c,e[13]=p):p=e[13];const b=a?bd:Ni,m=a?"On":"Off";let f;e[14]!==s||e[15]!==b||e[16]!==m?(f=N.jsxDEV("button",{type:"button",onClick:s,style:b,children:m},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:162,columnNumber:10},this),e[14]=s,e[15]=b,e[16]=m,e[17]=f):f=e[17];let y;return e[18]!==p||e[19]!==f?(y=N.jsxDEV("div",{style:md,children:[p,f]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:172,columnNumber:11},this),e[18]=p,e[19]=f,e[20]=y):y=e[20],y}function dd(t,e){const o=ud(t),r=e?.semanticRegions.summaries??[],a=e?.communities.summaries??[],n=e?.centrality.topNodes??[],s=e?.directedPath??null;return!r.length&&!a.length&&!n.length&&!o.length&&!s?N.jsxDEV("div",{style:Sd,children:"Regions and intelligence summaries will populate when graph analytics are ready."},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:188,columnNumber:12},this):N.jsxDEV("div",{style:{display:"flex",flexDirection:"column",gap:10},children:[r.length?N.jsxDEV("div",{style:{display:"flex",flexDirection:"column",gap:8},children:[N.jsxDEV("div",{style:mr,children:"Semantic regions"},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:200,columnNumber:11},this),r.map(i=>N.jsxDEV("div",{style:Ra,children:[N.jsxDEV("span",{style:{...ja,background:i.color,boxShadow:`0 0 0 1px rgba(28, 20, 24,0.06), 0 0 14px ${i.color}40`}},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:202,columnNumber:15},this),N.jsxDEV("div",{style:{minWidth:0,flex:1},children:[N.jsxDEV("div",{style:or,children:i.semanticGroup},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:211,columnNumber:17},this),N.jsxDEV("div",{style:nr,children:[i.visibleNodeCount.toLocaleString()," visible / ",i.nodeCount.toLocaleString()," total"]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:212,columnNumber:17},this)]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:207,columnNumber:15},this),N.jsxDEV("div",{style:Ur,children:i.anchorLabel},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:216,columnNumber:15},this)]},i.semanticGroup,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:201,columnNumber:42},this))]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:195,columnNumber:33},this):null,a.length?N.jsxDEV("div",{style:{display:"flex",flexDirection:"column",gap:8},children:[N.jsxDEV("div",{style:mr,children:"Community anchors"},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:225,columnNumber:11},this),a.slice(0,3).map(i=>N.jsxDEV("div",{style:Uo,children:[N.jsxDEV("div",{style:{minWidth:0,flex:1},children:[N.jsxDEV("div",{style:or,children:i.anchorLabel},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:231,columnNumber:17},this),N.jsxDEV("div",{style:nr,children:["Community ",i.communityId," - ",i.visibleNodeCount," visible / ",i.nodeCount," total"]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:232,columnNumber:17},this)]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:227,columnNumber:15},this),N.jsxDEV("div",{style:Ur,children:i.dominantSemanticGroup},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:236,columnNumber:15},this)]},i.communityId,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:226,columnNumber:53},this))]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:220,columnNumber:29},this):null,n.length?N.jsxDEV("div",{style:{display:"flex",flexDirection:"column",gap:8},children:[N.jsxDEV("div",{style:mr,children:"Centrality leaders"},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:245,columnNumber:11},this),n.slice(0,3).map(i=>N.jsxDEV("div",{style:Uo,children:[N.jsxDEV("div",{style:{minWidth:0,flex:1},children:[N.jsxDEV("div",{style:or,children:i.label},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:251,columnNumber:17},this),N.jsxDEV("div",{style:nr,children:[i.semanticGroup," - score ",i.score.toFixed(3)]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:252,columnNumber:17},this)]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:247,columnNumber:15},this),N.jsxDEV("div",{style:Ur,children:["deg ",i.degree.toFixed(3)]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:256,columnNumber:15},this)]},i.id,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:246,columnNumber:47},this))]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:240,columnNumber:28},this):null,s?N.jsxDEV("div",{style:{display:"flex",flexDirection:"column",gap:8},children:[N.jsxDEV("div",{style:mr,children:"Directed pathfinding"},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:265,columnNumber:11},this),N.jsxDEV("div",{style:Uo,children:[N.jsxDEV("div",{style:{minWidth:0,flex:1},children:[N.jsxDEV("div",{style:or,children:s.ready?"Local directed path ready":"Waiting for path context"},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:271,columnNumber:15},this),N.jsxDEV("div",{style:nr,children:s.reason},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:272,columnNumber:15},this)]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:267,columnNumber:13},this),s.ready?N.jsxDEV("div",{style:Ur,children:[s.length," hops",s.verifiedAgainstActivePath?" - match":""]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:274,columnNumber:35},this):null]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:266,columnNumber:11},this)]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:260,columnNumber:23},this):null,!r.length&&!a.length&&!n.length&&o.length?N.jsxDEV("div",{style:{display:"flex",flexDirection:"column",gap:8},children:[N.jsxDEV("div",{style:mr,children:"Fallback semantic legend"},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:285,columnNumber:11},this),o.map(i=>N.jsxDEV("div",{style:Ra,children:[N.jsxDEV("span",{style:{...ja,background:i.color,boxShadow:`0 0 0 1px rgba(28, 20, 24,0.06), 0 0 14px ${i.color}40`}},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:287,columnNumber:15},this),N.jsxDEV("div",{style:{minWidth:0,flex:1},children:[N.jsxDEV("div",{style:or,children:i.group},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:296,columnNumber:17},this),N.jsxDEV("div",{style:nr,children:[i.count.toLocaleString()," nodes"]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:297,columnNumber:17},this)]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:292,columnNumber:15},this)]},i.id,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:286,columnNumber:44},this))]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:280,columnNumber:109},this):null]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:190,columnNumber:10},this)}const pd={id:"exploration-effects",mount:()=>{},unmount:()=>{},onStateChange:()=>{},toolbarItems:t=>[{id:"effects-toggle",label:"Effects",title:"Open exploration effects controls",active:t.isPanelOpen(Wr),order:18,onClick:()=>t.dispatchAction({type:"togglePanel",panelId:Wr})}],renderPanel:t=>{if(!t.isPanelOpen(Wr))return null;const e=t.getEffectsState(),o=t.getDiagnosticsSnapshot(),r=t.getAnalyticsSnapshot(),a=o?.effectAvailability,n=e.legendEnabled||e.semanticRegionsEnabled||e.communitiesEnabled||e.centralityEnabled||e.pathfindingEnabled;return{id:Wr,title:"Effects",placement:"bottom",order:8,defaultOpen:!1,preferredWidth:460,preferredHeight:360,content:N.jsxDEV("div",{style:hd,children:[N.jsxDEV("div",{style:fd,children:"Exploration effects"},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:337,columnNumber:11},void 0),N.jsxDEV("div",{style:zr,children:[N.jsxDEV("div",{style:Vr,children:"Scene effects"},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:340,columnNumber:13},void 0),id.map(s=>N.jsxDEV(Vo,{label:s.label,description:s.description,checked:e[s.key],availability:zo(a,s.key,e[s.key]),onToggle:()=>t.dispatchAction({type:"toggleEffect",effect:s.key})},s.key,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:341,columnNumber:43},void 0))]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:339,columnNumber:11},void 0),N.jsxDEV("div",{style:zr,children:[N.jsxDEV("div",{style:Vr,children:"Graph intelligence"},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:348,columnNumber:13},void 0),sd.map(s=>N.jsxDEV(Vo,{label:s.label,description:s.description,checked:e[s.key],availability:zo(a,s.key,e[s.key]),onToggle:()=>t.dispatchAction({type:"toggleEffect",effect:s.key})},s.key,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:349,columnNumber:50},void 0))]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:347,columnNumber:11},void 0),n?N.jsxDEV("div",{style:zr,children:[N.jsxDEV("div",{style:Vr,children:"Regions and signals"},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:356,columnNumber:15},void 0),dd(t,r)]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:355,columnNumber:33},void 0):null,N.jsxDEV("div",{style:zr,children:[N.jsxDEV("div",{style:Vr,children:"Diagnostics"},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:361,columnNumber:15},void 0),N.jsxDEV(Vo,{label:"Dev Diagnostics",description:"Inspect plugin, interaction, and effect gating state.",checked:e.diagnosticsEnabled,availability:zo(a,"diagnosticsEnabled",e.diagnosticsEnabled),onToggle:()=>t.dispatchAction({type:"toggleEffect",effect:"diagnosticsEnabled"})},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:362,columnNumber:15},void 0),e.diagnosticsEnabled&&o?N.jsxDEV("details",{style:yd,children:[N.jsxDEV("summary",{style:vd,children:"Runtime snapshot"},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:367,columnNumber:19},void 0),N.jsxDEV("pre",{style:xd,children:JSON.stringify({diagnostics:o,analytics:r},null,2)},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:368,columnNumber:19},void 0)]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:366,columnNumber:73},void 0):null]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:360,columnNumber:34},void 0)]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx",lineNumber:336,columnNumber:16},void 0)}}},hd={display:"flex",flexDirection:"column",gap:12},fd={color:"#aa485b",fontSize:11,fontWeight:700,letterSpacing:"0.08em",textTransform:"uppercase"},zr={display:"flex",flexDirection:"column",gap:8,padding:"10px 12px",borderRadius:14,border:"1px solid rgba(28, 20, 24,0.06)",background:"rgba(28, 20, 24,0.025)"},Vr={color:"#2e161a",fontSize:12,fontWeight:700},mr={color:"#1a2b3c",fontSize:11,fontWeight:700,letterSpacing:"0.05em",textTransform:"uppercase"},md={display:"flex",alignItems:"center",gap:12,padding:"8px 0"},or={color:"#2d1619",fontSize:13,fontWeight:600},gd={color:"#a1b7cf",fontSize:12,lineHeight:1.45},nr={color:"#2f7fd6",fontSize:11,lineHeight:1.45},Ni={minWidth:52,padding:"8px 10px",borderRadius:999,border:"1px solid rgba(28, 20, 24,0.08)",background:"rgba(28, 20, 24,0.03)",color:"#17222f",fontSize:12,fontWeight:700,cursor:"pointer"},bd={...Ni,background:"rgba(31, 111, 235, 0.24)",border:"1px solid rgba(255, 107, 129, 0.28)",color:"#16212d"},Ra={display:"flex",alignItems:"center",gap:10,padding:"8px 10px",borderRadius:12,border:"1px solid rgba(28, 20, 24,0.06)",background:"rgba(28, 20, 24,0.025)"},ja={width:10,height:10,borderRadius:999,flexShrink:0},Uo={display:"flex",alignItems:"center",gap:10,padding:"8px 10px",borderRadius:12,border:"1px solid rgba(28, 20, 24,0.05)",background:"rgba(28, 20, 24,0.02)"},Ur={padding:"5px 8px",borderRadius:999,background:"rgba(31, 111, 235, 0.16)",border:"1px solid rgba(255, 107, 129, 0.16)",color:"#2e161a",fontSize:11,fontWeight:700,whiteSpace:"nowrap"},yd={borderRadius:12,border:"1px solid rgba(28, 20, 24,0.05)",background:"rgba(0,0,0,0.14)",overflow:"hidden"},vd={cursor:"pointer",padding:"10px 12px",color:"#602b34",fontSize:12,fontWeight:700,letterSpacing:"0.04em",textTransform:"uppercase"},xd={margin:0,padding:"0 12px 12px",color:"#2e161a",fontSize:11,lineHeight:1.55,whiteSpace:"pre-wrap",wordBreak:"break-word"},Sd={color:"#aa485b",fontSize:12,lineHeight:1.5},wd=Object.freeze(Object.defineProperty({__proto__:null,explorationEffectsPluginPhaseC:pd},Symbol.toStringTag,{value:"Module"}));function Nd({panelState:t}){return!!t["effects-panel"]}function Ed({panelState:t}){return!!t["neighborhood-panel"]}function Ad({panelState:t}){return!!t["temporal-panel"]}function kd(t){return t!==void 0}function Cd({debouncedTime:t,isLoading:e,summary:o}){return o!==void 0&&t!==null&&!e}const Id=256;function Dd(){const t=new Map;let e=0,o=null;const r=()=>{for(;t.size>Id;){const a=t.keys().next().value;if(a===void 0)return;t.delete(a)}};return{begin(a){const n=t.get(a);if(n&&n.data===null)return o=a,{seq:null,cached:null};e+=1;const s=e;return t.set(a,{seq:s,data:n?.data??null}),o=a,r(),{seq:s,cached:n?.data??null}},shouldApply(a,n){return a===o&&t.get(a)?.seq===n},apply(a,n,s){const i=t.get(a);i&&i.seq===n&&(i.data=s)},finish(a,n){const s=t.get(a);s&&s.seq===n&&s.data===null&&t.delete(a)},reset(){t.clear(),e=0,o=null}}}function _d(t,e){const o=t.properties||{},r=!!o.inferred,a=r?E.palette.accent.path:E.palette.muted.edgeStructure;return{edgeId:t.id,familyId:t.familyId||t.id,sourceId:t.source_id,targetId:t.target_id,weight:Number(t.weight??1),edgeType:t.type||"related_to",properties:o,size:1,baseSize:1,color:a,baseColor:a,mutedColor:E.palette.muted.edgeOverview,visualPriority:r?.95:.5,isBidirectional:e.isBidirectional,edgeFamily:r?"path":e.isBidirectional?"bidirectional":"line",curveGroup:e.isBidirectional?Jo(t.source_id,t.target_id):null,type:"line",edgeVariant:r?"pathSignal":e.isBidirectional?"bidirectionalCurve":"directional",arrowVisibilityPolicy:r?"always":"contextual",relationshipStrength:r?.95:.52,isParallelPair:!1,parallelIndex:0,parallelCount:1,familySize:1,isSmallGraph:e.isSmallGraph}}class Gd{generations=new Map;begin(e){const o=(this.generations.get(e)??0)+1;return this.generations.set(e,o),o}invalidate(e){this.begin(e)}isCurrent(e,o){return this.generations.get(e)===o}}function Zo(t,e,o){return{label:e||t,content:e,properties:{...o,content:e}}}async function Ld(t,e=fetch){const o=await e(`/api/graph/node?node_id=${encodeURIComponent(t)}`);if(!o.ok)throw new Error(`Graph node refresh failed (${o.status}).`);const r=await o.json();if(r.id!==t)throw new Error("Graph node refresh returned a different resource.");return{...Zo(r.id,r.content,r.properties??{}),nodeType:r.type,valid_from:r.valid_from??null,valid_until:r.valid_until??null}}const Pd=["source","source_url","pmid","pmids","evidence","provenance","confidence"],at={},Md=6,Ha=3,Rd={pathPulseEnabled:!1,pathFlowEnabled:!1,lensEnabled:!1,temporalEmphasisEnabled:!1,semanticRegionsEnabled:!1,contoursEnabled:!1,pathfindingEnabled:!1,communitiesEnabled:!1,centralityEnabled:!1,legendEnabled:!1,edgeLabelsEnabled:!0,diagnosticsEnabled:!1,lensMode:"neighborhood",effectQuality:"bounded"},jd=A.lazy(()=>Er(()=>import("./TimelinePanel-D50aWGS7.js"),__vite__mapDeps([0,1,2,3,4,5,6])).then(t=>({default:t.TimelinePanel}))),Hd=A.lazy(()=>Er(()=>import("./GraphInspectorPanel-ZkQtr_Oa.js"),__vite__mapDeps([7,1,2,3,6,8,9,10,11,12,13,14,15,16,17,18,19])).then(t=>({default:t.GraphInspectorPanel}))),Td=()=>Er(()=>Promise.resolve().then(()=>wd),void 0).then(t=>t.explorationEffectsPluginPhaseC),Wd=()=>Er(()=>import("./neighborhoodPanelPlugin-gLy7GAga.js"),__vite__mapDeps([20,1,2,3])).then(t=>t.neighborhoodPanelPlugin),zd=()=>Er(()=>import("./temporalOverlayPlugin-DzF7xO4p.js"),__vite__mapDeps([21,1,2,3])).then(t=>t.temporalOverlayPlugin),Nt=[],Vd=new Set(["camera","utility"]);function Oo(t,e){console.debug(`[GraphWorkspace] ${t}`,e??{})}function Ud(t){return[t.nodeCount,t.edgeCount,t.layoutSource??"unknown",t.layoutReady?"ready":"runtime",t.loadTimeMs].join(":")}function Od(t,e){const o=Xe.c(5);if(o[0]!=="5c59375c4e127f38f9fc8ae74e47d9ba722e1992430563844d6e705fb864d894"){for(let i=0;i<5;i+=1)o[i]=Symbol.for("react.memo_cache_sentinel");o[0]="5c59375c4e127f38f9fc8ae74e47d9ba722e1992430563844d6e705fb864d894"}const[r,a]=A.useState(t);let n,s;return o[1]!==e||o[2]!==t?(n=()=>{const i=setTimeout(()=>a(t),e);return()=>clearTimeout(i)},s=[e,t],o[1]=e,o[2]=t,o[3]=n,o[4]=s):(n=o[3],s=o[4]),A.useEffect(n,s),r}function Bd(t){const e=`${t.id} ${t.label}`.toLowerCase();return e.includes("neighbor")?Oa:e.includes("temporal")||e.includes("time")?ss:Ua}function Fd(t){const e=Xe.c(4);if(e[0]!=="5c59375c4e127f38f9fc8ae74e47d9ba722e1992430563844d6e705fb864d894"){for(let s=0;s<4;s+=1)e[s]=Symbol.for("react.memo_cache_sentinel");e[0]="5c59375c4e127f38f9fc8ae74e47d9ba722e1992430563844d6e705fb864d894"}const{icon:o,size:r}=t,a=r===void 0?15:r;if(!o)return null;let n;return e[1]!==o||e[2]!==a?(n=N.jsxDEV(o,{size:a,strokeWidth:2.15,"aria-hidden":!0},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:190,columnNumber:10},this),e[1]=o,e[2]=a,e[3]=n):n=e[3],n}function Ei(t){const e=Xe.c(17);if(e[0]!=="5c59375c4e127f38f9fc8ae74e47d9ba722e1992430563844d6e705fb864d894"){for(let x=0;x<17;x+=1)e[x]=Symbol.for("react.memo_cache_sentinel");e[0]="5c59375c4e127f38f9fc8ae74e47d9ba722e1992430563844d6e705fb864d894"}const{item:o,compact:r,className:a,toggle:n}=t,s=r===void 0?!1:r,i=a===void 0?"":a,l=n===void 0?!1:n,u=s||o.compact,d=`explore-tool-button ${o.tone==="primary"?"explore-tool-button-primary":""} ${i}`,c=o.active?"true":"false",p=u?"true":"false",b=l?o.active===!0:void 0,m=o.ariaLabel??o.label,f=u?14:15;let y;e[1]!==o.icon||e[2]!==f?(y=N.jsxDEV(Fd,{icon:o.icon,size:f},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:225,columnNumber:11},this),e[1]=o.icon,e[2]=f,e[3]=y):y=e[3];let h;e[4]!==o.label?(h=N.jsxDEV("span",{className:"explore-tool-button-label",children:o.label},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:234,columnNumber:11},this),e[4]=o.label,e[5]=h):h=e[5];let v;return e[6]!==o.disabled||e[7]!==o.onClick||e[8]!==o.title||e[9]!==y||e[10]!==h||e[11]!==d||e[12]!==c||e[13]!==p||e[14]!==b||e[15]!==m?(v=N.jsxDEV("button",{type:"button",className:d,"data-active":c,"data-compact":p,"aria-pressed":b,onClick:o.onClick,title:o.title,"aria-label":m,disabled:o.disabled,children:[y,h]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:242,columnNumber:11},this),e[6]=o.disabled,e[7]=o.onClick,e[8]=o.title,e[9]=y,e[10]=h,e[11]=d,e[12]=c,e[13]=p,e[14]=b,e[15]=m,e[16]=v):v=e[16],v}function $d(t){const e=Xe.c(13);if(e[0]!=="5c59375c4e127f38f9fc8ae74e47d9ba722e1992430563844d6e705fb864d894"){for(let c=0;c<13;c+=1)e[c]=Symbol.for("react.memo_cache_sentinel");e[0]="5c59375c4e127f38f9fc8ae74e47d9ba722e1992430563844d6e705fb864d894"}const{label:o,items:r,compact:a,children:n}=t,s=a===void 0?!1:a;if((!r||r.length===0)&&!n)return null;let i;e[1]!==o?(i=N.jsxDEV("div",{className:"explore-tool-cluster-label",children:o},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:279,columnNumber:10},this),e[1]=o,e[2]=i):i=e[2];let l;e[3]!==s||e[4]!==r?(l=r?.map(c=>N.jsxDEV(Ei,{item:c,compact:s},c.id,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:287,columnNumber:29},this)),e[3]=s,e[4]=r,e[5]=l):l=e[5];let u;e[6]!==n||e[7]!==l?(u=N.jsxDEV("div",{className:"explore-tool-cluster-items",children:[n,l]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:296,columnNumber:10},this),e[6]=n,e[7]=l,e[8]=u):u=e[8];let d;return e[9]!==o||e[10]!==i||e[11]!==u?(d=N.jsxDEV("div",{className:"explore-tool-cluster","aria-label":o,children:[i,u]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:305,columnNumber:10},this),e[9]=o,e[10]=i,e[11]=u,e[12]=d):d=e[12],d}function qd(t){const e=Xe.c(5);if(e[0]!=="5c59375c4e127f38f9fc8ae74e47d9ba722e1992430563844d6e705fb864d894"){for(let n=0;n<5;n+=1)e[n]=Symbol.for("react.memo_cache_sentinel");e[0]="5c59375c4e127f38f9fc8ae74e47d9ba722e1992430563844d6e705fb864d894"}const{items:o}=t;if(!o.length)return null;let r;e[1]!==o?(r=o.map(Kd),e[1]=o,e[2]=r):r=e[2];let a;return e[3]!==r?(a=N.jsxDEV("div",{className:"explore-mode-control",role:"group","aria-label":"Graph view mode",children:r},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:339,columnNumber:10},this),e[3]=r,e[4]=a):a=e[4],a}function Kd(t){return N.jsxDEV(Ei,{item:t,className:"explore-mode-segment",toggle:!0},t.id,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:348,columnNumber:10},this)}const Yd=250,Xd=6;function Zd(t){const e=Xe.c(47);if(e[0]!=="5c59375c4e127f38f9fc8ae74e47d9ba722e1992430563844d6e705fb864d894"){for(let T=0;T<47;T+=1)e[T]=Symbol.for("react.memo_cache_sentinel");e[0]="5c59375c4e127f38f9fc8ae74e47d9ba722e1992430563844d6e705fb864d894"}const{value:o,disabled:r,onChange:a,onSubmit:n,onSelectSuggestion:s}=t;let i;e[1]===Symbol.for("react.memo_cache_sentinel")?(i=[],e[1]=i):i=e[1];const[l,u]=A.useState(i),[d,c]=A.useState(!1),[p,b]=A.useState(-1),m=A.useRef(null),f=A.useRef(null),y=A.useId();let h,v;e[2]!==r||e[3]!==o?(h=()=>{f.current!==null&&window.clearTimeout(f.current);const T=o.trim();if(r||!T){m.current?.abort(),u([]),c(!1),b(-1);return}return f.current=window.setTimeout(()=>{m.current?.abort();const P=new AbortController;m.current=P,fetch("/api/graph/search",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({query:T,limit:Xd}),signal:P.signal}).then(Qd).then(z=>{u(z.results??[]),c(!0),b(-1)}).catch(z=>{z instanceof DOMException&&z.name==="AbortError"||(u([]),c(!1),b(-1))})},Yd),()=>{f.current!==null&&window.clearTimeout(f.current),m.current?.abort()}},v=[o,r],e[2]=r,e[3]=o,e[4]=h,e[5]=v):(h=e[4],v=e[5]),A.useEffect(h,v);let x;e[6]===Symbol.for("react.memo_cache_sentinel")?(x=()=>{c(!1),b(-1)},e[6]=x):x=e[6];const g=x;let w;e[7]!==s?(w=T=>{u([]),g(),s(T)},e[7]=s,e[8]=w):w=e[8];const C=w,I=d&&l.length>0;let k;e[9]!==r||e[10]!==p||e[11]!==n||e[12]!==C||e[13]!==l||e[14]!==d?(k=T=>{if(T.preventDefault(),!r){if(d&&p>=0&&l[p]){C(l[p]);return}g(),n()}},e[9]=r,e[10]=p,e[11]=n,e[12]=C,e[13]=l,e[14]=d,e[15]=k):k=e[15];let D;e[16]===Symbol.for("react.memo_cache_sentinel")?(D=N.jsxDEV(Bi,{size:17,strokeWidth:2.15,"aria-hidden":!0},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:490,columnNumber:10},this),e[16]=D):D=e[16];let _;e[17]!==a?(_=T=>a(T.target.value),e[17]=a,e[18]=_):_=e[18];let L;e[19]!==l.length?(L=()=>{l.length>0&&c(!0)},e[19]=l.length,e[20]=L):L=e[20];let G;e[21]===Symbol.for("react.memo_cache_sentinel")?(G=()=>{window.setTimeout(g,120)},e[21]=G):G=e[21];let V;e[22]!==l.length||e[23]!==d?(V=T=>{!d||l.length===0||(T.key==="ArrowDown"?(T.preventDefault(),b(P=>(P+1)%l.length)):T.key==="ArrowUp"?(T.preventDefault(),b(P=>P<=0?l.length-1:P-1)):T.key==="Escape"&&(T.preventDefault(),g()))},e[22]=l.length,e[23]=d,e[24]=V):V=e[24];const q=p>=0?`${y}-${p}`:void 0;let W;e[25]!==y||e[26]!==L||e[27]!==V||e[28]!==q||e[29]!==_||e[30]!==o?(W=N.jsxDEV("input",{value:o,onChange:_,onFocus:L,onBlur:G,onKeyDown:V,placeholder:"Search command, node, or concept","aria-label":"Search graph nodes","aria-autocomplete":"list","aria-controls":y,"aria-activedescendant":q},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:554,columnNumber:11},this),e[25]=y,e[26]=L,e[27]=V,e[28]=q,e[29]=_,e[30]=o,e[31]=W):W=e[31];let F;e[32]!==r?(F=N.jsxDEV("button",{type:"submit",disabled:r,"aria-label":"Search for the current query",children:"Search"},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:567,columnNumber:11},this),e[32]=r,e[33]=F):F=e[33];let ee;e[34]!==p||e[35]!==y||e[36]!==C||e[37]!==l||e[38]!==d?(ee=d&&l.length>0?N.jsxDEV("ul",{id:y,role:"listbox",className:"explore-search-suggestions","aria-label":"Search suggestions",children:l.map((T,P)=>N.jsxDEV("li",{id:`${y}-${P}`,role:"option","aria-selected":P===p,"data-highlighted":P===p,onMouseDown:z=>{z.preventDefault(),C(T)},onMouseEnter:()=>b(P),children:[N.jsxDEV("span",{className:"explore-search-suggestion-label",children:T.node.content||T.node.id},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:578,columnNumber:58},this),N.jsxDEV("span",{className:"explore-search-suggestion-type",children:T.node.type},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:578,columnNumber:158},this)]},T.node.id,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:575,columnNumber:198},this))},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:575,columnNumber:55},this):null,e[34]=p,e[35]=y,e[36]=C,e[37]=l,e[38]=d,e[39]=ee):ee=e[39];let U;return e[40]!==y||e[41]!==W||e[42]!==F||e[43]!==ee||e[44]!==I||e[45]!==k?(U=N.jsxDEV("form",{className:"explore-search-command",role:"combobox","aria-expanded":I,"aria-haspopup":"listbox","aria-owns":y,onSubmit:k,children:[D,W,F,ee]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:590,columnNumber:11},this),e[40]=y,e[41]=W,e[42]=F,e[43]=ee,e[44]=I,e[45]=k,e[46]=U):U=e[46],U}function Qd(t){if(!t.ok)throw new Error(`Search failed with status ${t.status}`);return t.json()}function Jd(t){const e=Xe.c(6);if(e[0]!=="5c59375c4e127f38f9fc8ae74e47d9ba722e1992430563844d6e705fb864d894"){for(let s=0;s<6;s+=1)e[s]=Symbol.for("react.memo_cache_sentinel");e[0]="5c59375c4e127f38f9fc8ae74e47d9ba722e1992430563844d6e705fb864d894"}const{items:o}=t;if(!o.length)return null;let r;e[1]===Symbol.for("react.memo_cache_sentinel")?(r=N.jsxDEV("span",{className:"explore-color-legend-label",title:"Base semantic colors; selection, zoom, and distance effects can change node appearance.",children:"Node colors"},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:625,columnNumber:10},this),e[1]=r):r=e[1];let a;e[2]!==o?(a=o.map(ep),e[2]=o,e[3]=a):a=e[3];let n;return e[4]!==a?(n=N.jsxDEV("div",{className:"explore-color-legend",role:"group","aria-label":"Node colors",children:[r,N.jsxDEV("ul",{className:"explore-color-legend-items",children:a},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:640,columnNumber:90},this)]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:640,columnNumber:10},this),e[4]=a,e[5]=n):n=e[5],n}function ep(t){return N.jsxDEV("li",{className:"explore-color-legend-item",title:`${t.group}: ${t.count.toLocaleString()} nodes`,children:[N.jsxDEV("span",{className:"explore-color-legend-mark",style:{backgroundColor:t.color},"aria-hidden":"true"},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:649,columnNumber:128},this),N.jsxDEV("span",{className:"explore-color-legend-name",children:t.group},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:651,columnNumber:29},this)]},t.id,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:649,columnNumber:10},this)}const tp=`
|
|
586
586
|
.palantir-bg {
|
|
587
587
|
background:
|
|
588
588
|
${E.ui.scene.radialGlow},
|
|
@@ -626,7 +626,7 @@ void main() {
|
|
|
626
626
|
.node-panel-collapse {
|
|
627
627
|
border: 1px solid ${E.ui.surface.panelBorder};
|
|
628
628
|
border-radius: 12px;
|
|
629
|
-
background: rgba(
|
|
629
|
+
background: rgba(28, 20, 24, 0.026);
|
|
630
630
|
overflow: hidden;
|
|
631
631
|
}
|
|
632
632
|
.node-panel-collapse + .node-panel-collapse {
|
|
@@ -714,7 +714,7 @@ void main() {
|
|
|
714
714
|
height: 10px;
|
|
715
715
|
border-radius: 999px;
|
|
716
716
|
overflow: hidden;
|
|
717
|
-
background: rgba(
|
|
717
|
+
background: rgba(28, 20, 24, 0.052);
|
|
718
718
|
border: 1px solid ${E.ui.surface.panelBorder};
|
|
719
719
|
}
|
|
720
720
|
.graph-loading-bar > span {
|
|
@@ -840,10 +840,10 @@ void main() {
|
|
|
840
840
|
border-radius: 16px;
|
|
841
841
|
border: 1px solid ${E.ui.control.inputBorder};
|
|
842
842
|
background:
|
|
843
|
-
linear-gradient(135deg, rgba(
|
|
843
|
+
linear-gradient(135deg, rgba(28, 20, 24,0.06), rgba(28, 20, 24,0.018)),
|
|
844
844
|
${E.ui.control.inputBg};
|
|
845
845
|
color: ${E.ui.text.muted};
|
|
846
|
-
box-shadow: inset 0 1px 0 rgba(
|
|
846
|
+
box-shadow: inset 0 1px 0 rgba(28, 20, 24,0.045), 0 14px 30px rgba(0,0,0,0.16);
|
|
847
847
|
}
|
|
848
848
|
.explore-search-suggestions {
|
|
849
849
|
position: absolute;
|
|
@@ -859,7 +859,7 @@ void main() {
|
|
|
859
859
|
border-radius: 14px;
|
|
860
860
|
border: 1px solid ${E.ui.control.inputBorder};
|
|
861
861
|
background: ${E.ui.surface.cardStrong};
|
|
862
|
-
box-shadow: 0 18px 40px rgba(0,0,0,0.32), inset 0 1px 0 rgba(
|
|
862
|
+
box-shadow: 0 18px 40px rgba(0,0,0,0.32), inset 0 1px 0 rgba(28, 20, 24,0.04);
|
|
863
863
|
}
|
|
864
864
|
.explore-search-suggestions li {
|
|
865
865
|
display: flex;
|
|
@@ -891,7 +891,7 @@ void main() {
|
|
|
891
891
|
}
|
|
892
892
|
.explore-search-command:focus-within {
|
|
893
893
|
border-color: ${E.ui.control.activeBorder};
|
|
894
|
-
box-shadow: inset 0 1px 0 rgba(
|
|
894
|
+
box-shadow: inset 0 1px 0 rgba(28, 20, 24,0.06), 0 0 0 1px ${E.ui.control.focusRing}, 0 16px 32px rgba(0,0,0,0.18);
|
|
895
895
|
}
|
|
896
896
|
.explore-search-command input {
|
|
897
897
|
width: 100%;
|
|
@@ -915,7 +915,7 @@ void main() {
|
|
|
915
915
|
font-size: 12px;
|
|
916
916
|
font-weight: 800;
|
|
917
917
|
cursor: pointer;
|
|
918
|
-
box-shadow: inset 0 1px 0 rgba(
|
|
918
|
+
box-shadow: inset 0 1px 0 rgba(28, 20, 24,0.08);
|
|
919
919
|
}
|
|
920
920
|
.explore-search-command button:disabled {
|
|
921
921
|
cursor: not-allowed;
|
|
@@ -928,8 +928,8 @@ void main() {
|
|
|
928
928
|
padding: 4px;
|
|
929
929
|
border-radius: 16px;
|
|
930
930
|
border: 1px solid ${E.ui.control.defaultBorder};
|
|
931
|
-
background: rgba(
|
|
932
|
-
box-shadow: inset 0 1px 0 rgba(
|
|
931
|
+
background: rgba(28, 20, 24, 0.026);
|
|
932
|
+
box-shadow: inset 0 1px 0 rgba(28, 20, 24,0.035);
|
|
933
933
|
}
|
|
934
934
|
.explore-mode-segment {
|
|
935
935
|
min-width: 0;
|
|
@@ -950,8 +950,8 @@ void main() {
|
|
|
950
950
|
min-height: 43px;
|
|
951
951
|
padding: 4px;
|
|
952
952
|
border-radius: 16px;
|
|
953
|
-
border: 1px solid rgba(
|
|
954
|
-
background: rgba(
|
|
953
|
+
border: 1px solid rgba(70, 60, 48, 0.075);
|
|
954
|
+
background: rgba(28, 20, 24, 0.022);
|
|
955
955
|
}
|
|
956
956
|
.explore-tool-cluster-label {
|
|
957
957
|
padding: 0 4px 0 7px;
|
|
@@ -984,12 +984,12 @@ void main() {
|
|
|
984
984
|
line-height: 1;
|
|
985
985
|
cursor: pointer;
|
|
986
986
|
white-space: nowrap;
|
|
987
|
-
box-shadow: inset 0 1px 0 rgba(
|
|
987
|
+
box-shadow: inset 0 1px 0 rgba(28, 20, 24,0.035);
|
|
988
988
|
transition: background 140ms ease, border-color 140ms ease, color 140ms ease, transform 140ms ease;
|
|
989
989
|
}
|
|
990
990
|
.explore-tool-button:hover:not(:disabled) {
|
|
991
991
|
background: ${E.ui.control.hoverBg};
|
|
992
|
-
border-color: rgba(
|
|
992
|
+
border-color: rgba(70, 60, 48, 0.18);
|
|
993
993
|
transform: translateY(-1px);
|
|
994
994
|
}
|
|
995
995
|
.explore-tool-button:disabled {
|
|
@@ -1002,7 +1002,7 @@ void main() {
|
|
|
1002
1002
|
color: ${E.ui.control.activeText};
|
|
1003
1003
|
background: ${E.ui.control.activeBg};
|
|
1004
1004
|
border-color: ${E.ui.control.activeBorder};
|
|
1005
|
-
box-shadow: 0 0 0 1px ${E.ui.control.focusRing}, inset 0 1px 0 rgba(
|
|
1005
|
+
box-shadow: 0 0 0 1px ${E.ui.control.focusRing}, inset 0 1px 0 rgba(28, 20, 24,0.06);
|
|
1006
1006
|
}
|
|
1007
1007
|
.explore-tool-button-primary {
|
|
1008
1008
|
color: ${E.ui.control.primaryText};
|
|
@@ -1055,7 +1055,7 @@ void main() {
|
|
|
1055
1055
|
height: 10px;
|
|
1056
1056
|
flex-shrink: 0;
|
|
1057
1057
|
border-radius: 50%;
|
|
1058
|
-
box-shadow: inset 0 0 0 1px rgba(
|
|
1058
|
+
box-shadow: inset 0 0 0 1px rgba(28, 20, 24,0.16);
|
|
1059
1059
|
}
|
|
1060
1060
|
.explore-search-results {
|
|
1061
1061
|
display: flex;
|
|
@@ -1113,4 +1113,4 @@ void main() {
|
|
|
1113
1113
|
max-width: 100%;
|
|
1114
1114
|
}
|
|
1115
1115
|
}
|
|
1116
|
-
`;function Ai(t){return Pd.reduce((e,o)=>t[o]!==void 0&&t[o]!==null?e+1:e,0)}function rp(t){const e=t.properties||{},o=String(e.content||t.id),r=E.palette.accent.path,a=!!(e.valid_from||e.valid_until),n=Ai(e);return{label:o,x:Number(e.x??Math.random()*1e3-500),y:Number(e.y??Math.random()*1e3-500),nodeType:t.type||"inferred",content:o,valid_from:e.valid_from??null,valid_until:e.valid_until??null,properties:e,size:8,baseSize:8,semanticGroup:t.type||"inferred",color:r,baseColor:r,mutedColor:K(r,E.nodes.mutedAlpha),glowColor:K(r,.36),visualPriority:.82,labelPriority:.82,strokeColor:E.palette.background.nodeBorder,borderColor:E.palette.background.nodeBorder,borderSize:.85,nodeVariant:"inferred",nodeShapeVariant:"inferred",badgeKind:a?"temporal":n>0?"provenance":"inferred",badgeCount:n||void 0,ringColor:E.nodes.selectedRing.color,haloColor:K(r,.42),labelVisibilityPolicy:"local"}}function op(t){j.forEachEdge(e=>{j.setEdgeAttribute(e,"isSmallGraph",t)})}function np(t,e){if(!t||!j.hasNode(t))return null;const o=j.getNodeAttributes(t);return{id:t,label:String(o.label??t),content:String(o.content??o.label??t),nodeType:String(o.nodeType??"Entity"),color:typeof o.color=="string"?o.color:void 0,valid_from:o.valid_from??null,valid_until:o.valid_until??null,properties:o.properties??{},neighborCount:j.neighbors(t).length,visibleNeighborCount:e.selectedVisibleNeighborIds.length,collapsedNeighborCount:e.selectedCollapsedNeighborIds.length,isNeighborhoodCollapsed:e.selectedCollapsedNeighborIds.length>0,canCollapseNeighborhood:j.neighbors(t).length>8}}function ap(t,e){if(!t||!e.hasEdge(t))return null;const[o,r]=e.extremities(t),a=e.getEdgeAttributes(t),n=a.rawEdgeIds?.length?a.rawEdgeIds.map(f=>String(f)):[t],s=n.find(f=>j.hasEdge(f))??n[0];let i=o,l=r;s&&j.hasEdge(s)&&([i,l]=j.extremities(s));const u=j.hasNode(i)?j.getNodeAttributes(i):{label:o},d=j.hasNode(l)?j.getNodeAttributes(l):{label:r},c=a.properties??{},p=String(a.familyId||t);let b=0,m=0;return n.forEach(f=>{if(!j.hasEdge(f))return;const y=j.getEdgeAttributes(f),[h,v]=j.extremities(f);String(y.familyId||f)===p&&(b+=1),h===i&&v===l&&(m+=1)}),a.isAggregated&&(m=n.filter(f=>j.hasEdge(f)).length,b=Math.max(b,m)),{id:t,familyId:p,sourceId:i,sourceLabel:String(u.label??u.content??i),targetId:l,targetLabel:String(d.label??d.content??l),edgeType:String(a.edgeType??"related_to"),weight:Number(a.weight??1),properties:c,provenanceCount:Ai(c),familySize:b,siblingCount:m,isAggregated:!!a.isAggregated,aggregateCount:Number(a.aggregateCount??n.length),rawEdgeIds:n,bundleKind:a.bundleKind??null,dominantEdgeType:a.dominantEdgeType??null,representativeWeight:Number(a.representativeWeight??a.weight??1)}}function ip(t,e){const o=[];for(const r of t)try{const a=r.renderPanel?.(e);if(!a)continue;Array.isArray(a)?o.push(...a):o.push(a)}catch(a){console.error(`[GraphPlugin:${r.id}] panel render failed`,a)}return o.sort((r,a)=>(r.order??0)-(a.order??0))}function sp(t,e){const o=[];for(const r of t)try{const a=r.renderOverlay?.(e);if(!a)continue;Array.isArray(a)?o.push(...a):o.push(a)}catch(a){console.error(`[GraphPlugin:${r.id}] overlay render failed`,a)}return o.sort((r,a)=>(r.layer??0)!==(a.layer??0)?(r.layer??0)-(a.layer??0):(r.order??0)-(a.order??0))}function lp({externalFocusNodeId:t,externalFocusToken:e,onDirtyChange:o}={}){const[r,a]=A.useState(""),[n,s]=A.useState(""),[i,l]=A.useState(""),[u,d]=A.useState(""),[c,p]=A.useState(!1),[b,m]=A.useState(!1),[f,y]=A.useState(0),[h,v]=A.useState(!1),x=A.useMemo(()=>new Gd,[]),g=A.useCallback(S=>{v(S),o?.(S)},[o]),[w,C]=A.useState("full"),[I]=A.useState(!0),[k,D]=A.useState([]),[_,L]=A.useState(""),[G,V]=A.useState([]),[q,W]=A.useState(""),[F,ee]=A.useState(""),[U,T]=A.useState(!1),[P,z]=A.useState([]),[te,Q]=A.useState(""),[O,le]=A.useState(null),[J,re]=A.useState(null),[ce,ue]=A.useState(null),[ge,se]=A.useState(null),Ce=A.useRef(null),_e=A.useCallback(S=>{const R=S.getTime();R!==Ce.current&&(Ce.current=R,se(S))},[]),[be,Me]=A.useState(null),[we,Qe]=A.useState({"effects-panel":!1,"neighborhood-panel":!1,"temporal-panel":!1}),[Je,$e]=A.useState(null),[pt,We]=A.useState(0),[et,ht]=A.useState(Rd),[Ze,it]=A.useState(null),tt=A.useRef(null),[Ie,qe]=A.useState(null),[xe,ve]=A.useState({}),[he,Ke]=A.useState(!1),[de,ie]=A.useState(3),[De,je]=A.useState("off"),[Ue,Be]=A.useState(!1),[Re,st]=A.useState({anchorNodeId:null,scores:at,count:0,status:"idle",error:null}),rt=Bd(ge,150),jt=A.useRef(new Set),Ge=A.useRef(null),Et=A.useRef(void 0),ot=A.useRef(null),Ot=A.useRef(null),Le=A.useRef(!1),At=A.useRef({hoveredNodeId:null,selectedNodeId:"",selectedEdgeId:"",focusedNodeId:"",activePath:[],activePathEdgeIds:[],viewMode:"full",zoomTier:"overview",isLayoutRunning:!1}),ir=Ju(),Ht=A.useCallback(S=>{Me(S),S.phase!=="ready"&&S.phase!=="stabilizing_layout"&&m(!1)},[]),Ft=A.useCallback(S=>{const R=Ud(S);if(Ot.current!==R){if(Ot.current=R,Le.current=!!(S.layoutReady&&!S.hasCoordinates&&S.nodeCount>0&&S.nodeCount<=Yo),m(!0),y($=>$+1),p(!S.layoutReady),S.layoutReady){Me(null);return}Me(Mt({phase:"stabilizing_layout",progressKind:"indeterminate",nodesLoaded:S.nodeCount,nodesTotal:S.nodeCount,edgesLoaded:S.edgeCount,edgesTotal:S.edgeCount,message:"Settling runtime layout",showGraphBehind:!0,layoutSource:S.layoutSource,layoutState:"bootstrapping"}))}},[]),{data:Se,isLoading:Tt,isFetching:kt,isError:ft,error:mt,refetch:$t}=qu({enabled:!0,onGraphReady:Ft,onProgress:Ht}),Cr=ft?mt instanceof Error?mt.message:"Unknown error while loading the graph.":null,sr=A.useCallback(()=>{Me(null),$t()},[$t]);A.useEffect(()=>{c||Me(S=>S?.phase==="stabilizing_layout"?null:S)},[c]),A.useEffect(()=>{!Se||b||Ft(Se)},[Ft,b,Se]);const Ir=kd(Se),M=Cd({debouncedTime:rt,isLoading:Tt,summary:Se});A.useEffect(()=>{if(!Ir)return;let S=!1;return(async()=>{try{const $=await fetch("/api/temporal/bounds");if(!$.ok||S)return;const ne=await $.json();S||ue(ne)}catch{S||ue(null)}})(),()=>{S=!0}},[Ir,Se?.nodeCount,Se?.edgeCount]);const H=A.useRef(null);H.current===null&&(H.current=Dd());const X=H.current;A.useEffect(()=>{X.reset()},[Se]),A.useEffect(()=>{if(!M||!rt)return;const S=rt.getTime(),{seq:R,cached:$}=X.begin(S);if(R===null)return;let ne=!1;const Ve=ke=>{const Fe=new Set(ke.active_node_ids);requestAnimationFrame(()=>{if(ne)return;if(!X.shouldApply(S,R)){X.finish(S,R);return}jt.current.forEach(nt=>{!Fe.has(nt)&&j.hasNode(nt)&&j.setNodeAttribute(nt,"hidden",!0)}),Fe.forEach(nt=>{j.hasNode(nt)&&j.setNodeAttribute(nt,"hidden",!1)}),jt.current=Fe,re(ke.active_node_count),y(nt=>nt+1),Ge.current?.getRuntime()?.requestRender(),X.apply(S,R,ke)})};if($){Ve($);return}return(async()=>{try{const ke=rt.toISOString(),Fe=await fetch(`/api/temporal/snapshot?at=${encodeURIComponent(ke)}`);if(!Fe.ok){ne||X.finish(S,R);return}if(ne)return;const Zt=await Fe.json();if(ne)return;Ve(Zt)}catch(ke){X.finish(S,R),ne||console.error("[Temporal] Snapshot fetch failed",ke)}})(),()=>{ne=!0,X.finish(S,R)}},[M,rt]);const B=A.useCallback((S,R)=>{if(!S)return{kind:"none",resolvedNodeId:null,reason:{code:"no-selection"}};if(j.hasNode(S))return{kind:"base",resolvedNodeId:S,reason:null};const $=R??ot.current?.displayGraph??j;if($.hasNode(S)){const Ve=$.getNodeAttributes(S).properties?.__communityGroup,Z=Ve?.anchorNodeId||Ve?.sampleNodeIds?.[0]||"";return Z&&j.hasNode(Z)?{kind:"grouped",resolvedNodeId:Z,reason:null}:{kind:"grouped",resolvedNodeId:null,reason:{code:"grouped-unresolvable"}}}return{kind:"unavailable",resolvedNodeId:null,reason:{code:"not-in-graph"}}},[]),oe=A.useMemo(()=>B(r,ot.current?.displayGraph),[pt,B,r,w]),ae=oe.resolvedNodeId??"",pe=!!oe.resolvedNodeId,{available:Y,reason:fe}=A.useMemo(()=>Bl(),[f]),Oe=A.useMemo(()=>w==="grouped"?Hr("",Nt,Nt,"grouped",{aggregationEnabled:I,collapsedNeighborhoodNodeIds:k}):null,[w,I,k,f]),ze=A.useCallback(()=>h?window.confirm("Discard the unapplied Markdown draft and leave this node?"):!0,[h]),He=A.useCallback(S=>{const R=B(S,ot.current?.displayGraph);if(!R.resolvedNodeId)return;const $=R.resolvedNodeId,ne=ad(w,r,$);ne&&!ze()||(s($),a($),ne&&(d(""),le(null),V([]),W("")),C("focused"),p(!1))},[ze,B,r,w]),Te=A.useCallback(S=>{if(!(S!==w&&!ze())){if(S==="grouped"){if(!Y){Bo("grouped-view-unavailable",{reason:fe,graphVersion:f});return}const R=Oe?.graph??Hr("",Nt,Nt,"grouped",{aggregationEnabled:I,collapsedNeighborhoodNodeIds:k}).graph,$=[i,r,n].map(ne=>sn(R,ne)).find(ne=>!!ne)??"";s(""),a($),$&&l($),C("grouped"),p(!0);return}s(""),a(R=>R&&j.hasNode(R)?R:""),C("full")}},[ze,I,k,n,f,Oe,Y,fe,i,r,w]),Ye=A.useCallback(S=>{if(S!==r&&!ze())return;if(!S){a(""),d(""),le(null),V([]),W("");return}const R=ot.current?.displayGraph??j,$=S;!j.hasNode(S)&&R.hasNode(S)&&l(S),a($),d(""),le(null),V([]),W(""),w==="focused"&&j.hasNode($)&&(s($),p(!1))},[ze,r,w]);A.useEffect(()=>{!t||e==null||Et.current!==e&&(!b||!j.hasNode(t)||t!==r&&!ze()||(Et.current=e,C("full"),a(t),d(""),window.setTimeout(()=>{Ge.current?.focusNode(t)},0)))},[ze,t,e,b,r]);const ao=A.useCallback(S=>{d(S)},[]),Dr=A.useCallback(async()=>{if(!_.trim()){V([]);return}W("");try{const S=await fetch("/api/graph/search",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({query:_,limit:8})});if(!S.ok)throw new Error(`Search failed with status ${S.status}`);const R=await S.json();V(R.results||[])}catch(S){W(S instanceof Error?S.message:"Search failed")}},[_]),io=A.useCallback(()=>{V([]),W("")},[]),gt=A.useCallback(async()=>{if(ae){T(!0);try{const S=await fetch("/api/enrich/links",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({node_id:ae,top_n:6,candidate_type:F||void 0,min_score:0})});if(!S.ok)throw new Error(`Link prediction failed with status ${S.status}`);const R=await S.json();z(R.predictions||[])}catch(S){console.error("[GraphWorkspace] prediction failed",S),z([])}finally{T(!1)}}},[ae,F]),St=A.useCallback(async()=>{if(!(!ae||!te.trim()))try{const S=new URLSearchParams({source:ae,target:te.trim(),algorithm:"dijkstra"}),R=await fetch(`/api/graph/path?${S.toString()}`);if(!R.ok)throw new Error(`Path lookup failed with status ${R.status}`);const $=await R.json();if(le($),$.path?.length){const ne=$.path[$.path.length-1];j.hasNode(ne)&&Ge.current?.focusNode(ne)}}catch(S){console.error("[GraphWorkspace] path trace failed",S),le(null)}},[ae,te]),qt=A.useCallback(async S=>{if(!ae)return;const R=S==="markdown"?"markdown":"json",$=await fetch(`/api/provenance/report?node_id=${encodeURIComponent(ae)}&format=${R}`);if(!$.ok)throw new Error(`Provenance report failed with status ${$.status}`);const ne=await $.blob(),Ve=window.URL.createObjectURL(ne),Z=document.createElement("a");Z.href=Ve,Z.download=`${ae}_provenance.${S==="markdown"?"md":"json"}`,document.body.appendChild(Z),Z.click(),window.URL.revokeObjectURL(Ve),document.body.removeChild(Z)},[ae]),Kt=A.useCallback(S=>{if(S.resource.kind!=="context-node"||!j.hasNode(S.resource.id))return;const R=x.begin(S.resource.id),$=j.getNodeAttributes(S.resource.id);j.mergeNodeAttributes(S.resource.id,Zo(S.resource.id,S.body,$.properties??{})),y(ne=>ne+1),Ge.current?.getRuntime()?.requestRender(),Ld(S.resource.id).then(ne=>{!x.isCurrent(S.resource.id,R)||!j.hasNode(S.resource.id)||(j.mergeNodeAttributes(S.resource.id,ne),y(Ve=>Ve+1),Ge.current?.getRuntime()?.requestRender())}).catch(ne=>{console.error("[GraphWorkspace] applied node refresh failed",ne)})},[x]);A.useEffect(()=>{const S=window.location.protocol==="https:"?"wss:":"ws:",R=new WebSocket(`${S}//${window.location.host}/ws/graph-updates`);return R.onmessage=$=>{try{const ne=JSON.parse($.data);if(ne.event==="connection_ack"||ne.event!=="graph_mutation")return;const Ve=ne.data?.event_type,Z=ne.data?.payload;if(Ve==="ADD_NODE"&&Z?.id&&(Oa([{id:Z.id,attributes:rp(Z)}]),j.order>Yo&&(Le.current=!1),op(Le.current),ho("add-node",`Added node ${Z.label??Z.id}${Z.nodeType?` (${Z.nodeType})`:""} via realtime ws`,{nodeId:Z.id,nodeType:Z.nodeType}),y(ke=>ke+1),Ge.current?.getRuntime()?.requestRender()),Ve==="UPDATE_NODE"&&Z?.id&&j.hasNode(Z.id)){x.invalidate(Z.id);const ke=Z.properties??{},Fe=j.getNodeAttributes(Z.id),Zt=typeof ke.content=="string"?ke.content:"";j.mergeNodeAttributes(Z.id,{...Zo(Z.id,Zt,ke),nodeType:Z.type??Fe.nodeType,valid_from:ke.valid_from??null,valid_until:ke.valid_until??null}),ho("update-node",`Updated node ${Z.id} via realtime ws`,{nodeId:Z.id,nodeType:Z.type}),y(nt=>nt+1),Ge.current?.getRuntime()?.requestRender()}if(Ve==="ADD_EDGE"){const ke=Le.current;Fa([{id:String(Z.id),familyId:Z.familyId?String(Z.familyId):String(Z.id),source:Z.source_id,target:Z.target_id,attributes:_d(Z,{isBidirectional:j.hasDirectedEdge(Z.target_id,Z.source_id),isSmallGraph:ke})}]),ho("add-edge",`Added edge ${Z.edgeType??Z.id} (${Z.source_id} → ${Z.target_id}) via realtime ws`,{edgeId:Z.id,edgeType:Z.edgeType,source:Z.source_id,target:Z.target_id}),y(Fe=>Fe+1),Ge.current?.getRuntime()?.requestRender()}}catch(ne){console.error("[GraphWorkspace] websocket update failed",ne)}},()=>{R.close()}},[x]),A.useEffect(()=>{D([]),s(""),l("")},[Se?.edgeCount,Se?.nodeCount]);const Ee=he?"ego":Ue?"heatmap":De,me=w==="full"&&r&&j.hasNode(r)?r:"",lr=me?String(j.getNodeAttributes(me).label||me):null,It=Ee==="ego"?de:Ee==="heatmap"?Ha:Md,Wt=A.useMemo(()=>me&&Ee!=="off"?Pl(j,me,It):at,[Ee,me,It,f]),cr=A.useMemo(()=>Za(Wt,j.order),[Wt,f]),ur=A.useMemo(()=>Ee==="heatmap"&&me?Hl(j,me,Wt,Ha):null,[Ee,me,f,Wt]);A.useEffect(()=>{w!=="full"&&(Ke(!1),Be(!1),je("off"))},[w]),A.useEffect(()=>{(Ee==="off"||!r||!j.hasNode(r))&&(Ke(!1),Be(!1),je("off"))},[Ee,f,r]),A.useEffect(()=>{if(De!=="semantic"||!me){st({anchorNodeId:me||null,scores:at,count:0,status:De==="semantic"?"unavailable":"idle",error:De==="semantic"?"Select a Full Graph node to load semantic distance.":null});return}let S=!1;return st({anchorNodeId:me,scores:at,count:0,status:"loading",error:null}),(async()=>{try{const $=new URLSearchParams({node_id:me,top_k:"50"}),ne=await fetch(`/api/graph/semantic-neighborhood?${$.toString()}`);if(S)return;if(!ne.ok)throw new Error(ne.status===503?"Semantic similarity is unavailable for this graph.":ne.status===404?"Selected node was not found by the semantic distance API.":`Semantic distance failed with status ${ne.status}`);const Z=(await ne.json()).neighbors.reduce((ke,Fe)=>(Number.isFinite(Fe.similarity)&&(ke[Fe.id]=Fe.similarity),ke),{});st({anchorNodeId:me,scores:Z,count:Object.keys(Z).length,status:Object.keys(Z).length>0?"ready":"unavailable",error:Object.keys(Z).length>0?null:"No semantic neighbors were returned for this node."})}catch($){if(S)return;st({anchorNodeId:me,scores:at,count:0,status:"error",error:$ instanceof Error?$.message:"Semantic distance could not be loaded."})}})(),()=>{S=!0}},[me,De]);const Pe=A.useMemo(()=>Ee==="off"?{mode:"off",anchorNodeId:null,anchorLabel:null,maxHops:It,structuralDistances:at,semanticScores:at,distanceCounts:void 0,outsideCount:0,heatmapVisibleNodeIds:void 0,heatmapRingCounts:void 0,heatmapRenderedRingCounts:void 0,heatmapSaturationMode:void 0,semanticNeighborCount:0,status:"idle",error:null}:w!=="full"?{mode:Ee,anchorNodeId:null,anchorLabel:null,maxHops:It,structuralDistances:at,semanticScores:at,distanceCounts:void 0,outsideCount:j.order,heatmapVisibleNodeIds:void 0,heatmapRingCounts:void 0,heatmapRenderedRingCounts:void 0,heatmapSaturationMode:void 0,semanticNeighborCount:0,status:"unavailable",error:"Distance intelligence is available in Full Graph mode."}:me?Ee==="semantic"?{mode:"semantic",anchorNodeId:me,anchorLabel:lr,maxHops:It,structuralDistances:Wt,semanticScores:Re.anchorNodeId===me?Re.scores:at,distanceCounts:cr,outsideCount:cr.outside,heatmapVisibleNodeIds:void 0,heatmapRingCounts:void 0,heatmapRenderedRingCounts:void 0,heatmapSaturationMode:void 0,semanticNeighborCount:Re.anchorNodeId===me?Re.count:0,status:Re.anchorNodeId===me?Re.status:"loading",error:Re.anchorNodeId===me?Re.error:null}:{mode:Ee,anchorNodeId:me,anchorLabel:lr,maxHops:It,structuralDistances:Wt,semanticScores:at,distanceCounts:cr,outsideCount:cr.outside,heatmapVisibleNodeIds:ur?.visibleNodeIds,heatmapRingCounts:ur?.ringCounts,heatmapRenderedRingCounts:ur?.renderedRingCounts,heatmapSaturationMode:ur?.saturationMode,semanticNeighborCount:0,status:"ready",error:null}:{mode:Ee,anchorNodeId:null,anchorLabel:null,maxHops:It,structuralDistances:at,semanticScores:at,distanceCounts:void 0,outsideCount:j.order,heatmapVisibleNodeIds:void 0,heatmapRingCounts:void 0,heatmapRenderedRingCounts:void 0,heatmapSaturationMode:void 0,semanticNeighborCount:0,status:"unavailable",error:"Select a node to activate distance intelligence."},[Ee,lr,me,cr,It,j.order,ur,Re,Wt,w]),zt=!b&&(Tt||kt||!!be||ft),ki=b&&be?.phase==="stabilizing_layout",dr=!!Se?.nodeCount,_r=O?.path??Nt,yn=O?.edge_ids??Nt,Dt=A.useMemo(()=>w==="focused"?n&&j.hasNode(n)?n:"":!r||!j.hasNode(r)?"":k.includes(r)?r:"",[k,n,r,w]),vn=Dt?_r:Nt,xn=Dt?yn:Nt,lt=A.useMemo(()=>w==="grouped"?Oe??Hr("",Nt,Nt,"grouped",{aggregationEnabled:I,collapsedNeighborhoodNodeIds:k}):Hr(Dt,vn,xn,w,{aggregationEnabled:I,collapsedNeighborhoodNodeIds:k}),[I,k,f,Oe,vn,xn,Dt,w]),Ci=A.useMemo(()=>$a(lt.graph),[lt.graph,f]),Ne=A.useMemo(()=>w==="grouped"?Fl(lt.graph,r,{groupedViewAvailable:Y,groupedViewReason:fe,selectedNodeKind:oe.kind,resolvedFocusedNodeId:oe.resolvedNodeId,focusedUnavailableReason:oe.reason}):ai(r,_r,w,{aggregationEnabled:I,collapsedNeighborhoodNodeIds:k,groupedViewAvailable:Y,groupedViewReason:fe,selectedNodeKind:oe.kind,resolvedFocusedNodeId:oe.resolvedNodeId,focusedUnavailableReason:oe.reason}),[_r,I,k,lt.graph,oe.kind,oe.reason,oe.resolvedNodeId,Y,fe,r,w]),Ii=lt.meta;A.useEffect(()=>{w==="grouped"&&!Y&&(Bo("grouped-view-reset-to-full",{reason:fe,graphVersion:f}),C("full"),s(""),a(S=>S&&j.hasNode(S)?S:""))},[f,Y,fe,w]),A.useEffect(()=>{w==="focused"&&(!n||!j.hasNode(n))&&(C("full"),s(""))},[n,f,w]);const Sn=A.useRef(lt.graph),wn=A.useRef(Ne);A.useEffect(()=>{const S=Sn.current!==lt.graph,R=wn.current!==Ne;Bo("display-state-derived",{selectedNodeId:r,structuralSelectedNodeId:Dt,viewMode:w,graphRebuilt:S,displayStateChanged:R,aggregationEnabled:I,collapsedNeighborhoodActive:!!(Dt&&k.includes(Dt))}),Sn.current=lt.graph,wn.current=Ne},[I,k,lt.graph,Ne,r,Dt,w]);const Nn=A.useMemo(()=>{if(!r||!j.hasNode(r))return w==="grouped"?Ne.groupedViewAvailable?"Communities compressed into grouped structure view":Tr(Ne.groupedViewReason)??Tr({code:"communities-undetected"}):null;const S=j.neighbors(r).length;return w==="focused"?`${(Ne.selectedVisibleNeighborIds.length||Math.min(S,16))+1} nodes in focused view`:w==="grouped"?"Grouped structure view with direct community drill-in":Ne.selectedCollapsedNeighborIds.length>0?`${Ne.selectedVisibleNeighborIds.length} visible neighbors, ${Ne.selectedCollapsedNeighborIds.length} collapsed`:`${S} direct neighbors highlighted`},[Ne,r,w]),so=Se,Vt=A.useMemo(()=>np(r,Ne),[Ne,r,Se?.nodeCount,Se?.edgeCount]),Ae=A.useMemo(()=>ap(u,lt.graph),[lt.graph,u,Se?.nodeCount,Se?.edgeCount]),lo=A.useMemo(()=>({currentTime:ge,activeNodeCount:J,minDate:ce?.min??void 0,maxDate:ce?.max??void 0}),[J,ge,ce?.max,ce?.min]),_t=A.useMemo(()=>[{id:"exploration-effects",panelId:"effects-panel",label:"Effects",title:"Open exploration effects controls",order:18,load:Td,shouldLoad:Nd},{id:"neighborhood-panel",panelId:"neighborhood-panel",label:"Neighbors",title:"Toggle neighborhood panel",order:30,load:Wd,shouldLoad:Ed},{id:"temporal-overlay",panelId:"temporal-panel",label:"Temporal",title:"Toggle temporal context panel",order:40,load:zd,shouldLoad:Ad}],[]),wt=A.useMemo(()=>_t.map(S=>xe[S.id]).filter(S=>!!S),[xe,_t]);A.useEffect(()=>{let S=!1;return _t.forEach(R=>{xe[R.id]||R.shouldLoad({panelState:we})&&R.load().then($=>{S||ve(ne=>ne[R.id]?ne:{...ne,[R.id]:$})}).catch($=>{console.error(`[GraphPlugin:${R.id}] lazy load failed`,$)})}),()=>{S=!0}},[xe,we,_t]);const co=A.useCallback((S,R)=>{ht($=>{const ne=typeof R=="function"?R($[S]):R;return S==="diagnosticsEnabled"&&!E.effects.diagnostics.enabledInDev||$[S]===ne?$:{...$,[S]:ne}})},[]),Yt=A.useCallback(S=>{switch(S.type){case"fitView":Ge.current?.fitView();return;case"focusNode":Ge.current?.focusNode(S.nodeId);return;case"selectNode":Ye(S.nodeId);return;case"setViewMode":Te(S.viewMode);return;case"enterLocalGraph":He(S.nodeId);return;case"collapseNeighborhood":if(!r)return;D(R=>R.includes(r)?R:[...R,r]);return;case"expandNeighborhood":if(!r)return;D(R=>R.filter($=>$!==r));return;case"toggleEffect":co(S.effect,R=>!R);return;case"setEffect":co(S.effect,S.enabled);return;case"togglePanel":Qe(R=>{const $=!R[S.panelId];return $e(ne=>$?S.panelId:ne===S.panelId?null:ne),{...R,[S.panelId]:$}});return;case"openPanel":$e(S.panelId),Qe(R=>({...R,[S.panelId]:!0}));return;case"closePanel":Qe(R=>({...R,[S.panelId]:!1})),$e(R=>R===S.panelId?null:R);return}},[He,Ye,r,co,Te]),En=A.useMemo(()=>!E.effects.diagnostics.enabledInDev||!Ze?null:{interactionState:At.current,activePluginIds:wt.map(S=>S.id),openPanelIds:Object.entries(we).filter(([,S])=>S).map(([S])=>S),effectsState:et,edgeClasses:Ze.edgeClasses,distanceVisual:Ze.distanceVisual,effectAvailability:Ze.effectAvailability},[wt,et,Ze,we]),ct=A.useMemo(()=>({get scene(){return ot.current},get graph(){return j},get displayGraph(){return ot.current?.displayGraph??j},theme:E,getInteractionState:()=>At.current,getSelectedNodeState:()=>Vt,getInspectorState:()=>({selectedNodeId:r||null,ownsSelectionDetails:!0}),getGraphSummary:()=>so,getTemporalState:()=>lo,getEffectsState:()=>et,getDiagnosticsSnapshot:()=>En,getAnalyticsSnapshot:()=>Ie,getDisplayState:()=>Ne,isPanelOpen:S=>!!we[S],dispatchAction:Yt}),[Ne,Ie,En,et,so,Yt,we,r,Vt,lo]),Di=A.useCallback(S=>{ot.current=S,S||qe(null),We(R=>R+1)},[]),_i=A.useCallback(S=>{At.current=S;for(const R of wt)try{R.onStateChange(ct,S)}catch($){console.error(`[GraphPlugin:${R.id}] state update failed`,$)}},[wt,ct]),Gi=A.useCallback(S=>{if(!E.effects.diagnostics.enabledInDev)return;const R=tt.current;if(R!==null){const $=["pathPulse","pathFlow","lens","temporalEmphasis","semanticRegions","contours","pathfinding","communities","centrality","legend","diagnostics"],ne=R.effectAvailability,Ve=S.effectAvailability,Z=$.some(nt=>{const Qt=ne[nt],Jt=Ve[nt];return Qt.enabled!==Jt.enabled||Qt.available!==Jt.available||Qt.reason!==Jt.reason||Qt.detail!==Jt.detail||Qt.visibleSegments!==Jt.visibleSegments||Qt.segmentCap!==Jt.segmentCap}),ke=R.edgeClasses?.updatedAt!==S.edgeClasses?.updatedAt,Fe=R.structureLayer?.cacheKey!==S.structureLayer?.cacheKey||R.structureLayer?.lastDrawAt!==S.structureLayer?.lastDrawAt||R.structureLayer?.enabled!==S.structureLayer?.enabled||R.structureLayer?.disabledReason!==S.structureLayer?.disabledReason||R.structureLayer?.curveCount!==S.structureLayer?.curveCount||R.structureLayer?.bridgeCurveCount!==S.structureLayer?.bridgeCurveCount||R.structureLayer?.backboneCurveCount!==S.structureLayer?.backboneCurveCount,Zt=R.distanceVisual!==S.distanceVisual;if(!Z&&!ke&&!Fe&&!Zt)return}tt.current=S,it(S)},[]),Li=A.useCallback(S=>{qe(S)},[]);A.useEffect(()=>{if(!ot.current)return;const S=[];for(const R of wt)try{R.mount(ct),S.push(R)}catch($){console.error(`[GraphPlugin:${R.id}] mount failed`,$)}return()=>{for(const R of S.reverse())try{R.unmount(ct)}catch($){console.error(`[GraphPlugin:${R.id}] unmount failed`,$)}}},[wt,ct,pt]);const An=A.useMemo(()=>_t.map(S=>({id:`${S.id}-toggle`,label:S.label,title:S.title,active:ct.isPanelOpen(S.panelId),order:S.order,onClick:()=>ct.dispatchAction({type:"togglePanel",panelId:S.panelId})})),[ct,_t]),Pi=A.useMemo(()=>ip(wt,ct),[wt,ct]),Mi=A.useMemo(()=>sp(wt,ct),[wt,ct]),Ri=A.useMemo(()=>_t.filter(S=>we[S.panelId]&&!xe[S.id]).map(S=>({id:S.panelId,title:S.label,placement:"bottom",order:S.order,content:N.jsxDEV("div",{style:wp,children:["Loading ",S.label.toLowerCase(),"…"]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2608,columnNumber:14},this)})),[xe,we,_t]),Gt=[...Pi,...Ri].filter(S=>S.placement==="bottom"||S.placement==="side").sort((S,R)=>(S.order??0)-(R.order??0)).filter(S=>we[S.id]),pr=Gt.find(S=>S.id===Je)??Gt[0]??null,Gr={showInspector:!!r,showPluginDock:Gt.length>0},uo=Gt.map(S=>S.id).join("|"),[ji,Hi]=A.useState(uo);uo!==ji&&(Hi(uo),Gt.length?(!Je||!Gt.some(S=>S.id===Je))&&$e(Gt[0].id):Je!==null&&$e(null));const Ti=A.useMemo(()=>dr?[{id:"view-full",label:"Full Graph",title:"Return to the full graph context",icon:ts,active:w==="full",onClick:()=>Te("full")},{id:"view-grouped",label:"Grouped View",title:Ne.groupedViewAvailable?"Compress dense structure into detected communities":Tr(Ne.groupedViewReason)??Tr({code:"communities-undetected"})??void 0,icon:rs,active:w==="grouped",disabled:!Ne.groupedViewAvailable,onClick:()=>Te("grouped")},{id:"view-focused",label:"Focus",title:pe?"Inspect the selected node in a focused local graph":nd(oe.reason)??void 0,icon:cs,active:w==="focused",disabled:w!=="focused"&&!pe,onClick:()=>{const S=oe.resolvedNodeId;S&&He(S)}}]:[],[pe,Ne.groupedViewAvailable,Ne.groupedViewReason,He,oe.reason,oe.resolvedNodeId,dr,Te,w]),kn=A.useMemo(()=>[{id:"zoom-in",label:"Zoom In",title:"Zoom in (or scroll up on the canvas)",ariaLabel:"Zoom in",icon:ys,compact:!0,onClick:()=>Ge.current?.zoomIn()},{id:"zoom-out",label:"Zoom Out",title:"Zoom out (or scroll down on the canvas)",ariaLabel:"Zoom out",icon:xs,compact:!0,onClick:()=>Ge.current?.zoomOut()},{id:"fit-view",label:"Fit",title:"Reset the camera to fit the whole graph",ariaLabel:"Fit view",icon:ds,compact:!0,onClick:()=>Ge.current?.fitView()}],[]),Cn=A.useMemo(()=>[{id:"layout-toggle",label:c?"Pause":"Run",title:"Toggle the layout worker",icon:c?hs:os,active:c,disabled:zt,onClick:()=>p(S=>!S)}],[c,zt]),In=A.useMemo(()=>Vt?[{id:"collapse-neighborhood",label:"Collapse",title:"Hide lower-priority fanout around the selected node",icon:es,disabled:!Vt.canCollapseNeighborhood||Vt.isNeighborhoodCollapsed,onClick:()=>Yt({type:"collapseNeighborhood"})},{id:"expand-neighborhood",label:"Expand",title:"Restore the collapsed local neighborhood",icon:Ba,disabled:!Vt.isNeighborhoodCollapsed,onClick:()=>Yt({type:"expandNeighborhood"})}]:[],[Yt,Vt]),Dn=A.useMemo(()=>An.map(S=>({id:S.id,label:S.label,title:S.title,icon:Od(S),active:S.active,onClick:S.onClick})),[An]),_n=A.useMemo(()=>[{id:"reload",label:"Reload",title:"Reload the graph data",ariaLabel:"Reload graph data",icon:Va,compact:!0,disabled:zt,onClick:ir}],[ir,zt]),Wi=zt||!_.trim(),Gn=A.useMemo(()=>!dr||w!=="full"||!r||!j.hasNode(r)?[]:[{id:"ego-mode",label:he?`Ego (${de}h)`:"Ego Mode",title:he?`Egocentric view: ${de} hops depth (click to toggle off)`:"Show depth-of-field fading around the selected node",active:he,onClick:()=>{Ke(S=>!S),Be(!1),je("off")}},{id:"heatmap",label:"Heatmap",title:Ue?"Distance heatmap active (click to toggle off)":"Color nodes by hop distance from selected node",active:Ue,onClick:()=>{Be(S=>!S),Ke(!1),je("off")}},{id:"dist-structural",label:"Structural",title:"Color edges by structural (hop) distance",active:De==="structural",onClick:()=>{Ke(!1),Be(!1),je(S=>S==="structural"?"off":"structural")}},{id:"dist-semantic",label:"Semantic",title:"Color edges by semantic similarity to selected node",active:De==="semantic",onClick:()=>{Ke(!1),Be(!1),je(S=>S==="semantic"?"off":"semantic")}}],[De,de,he,dr,Ue,r,w]),zi=A.useMemo(()=>[{id:"camera",label:"Camera",items:kn},{id:"layout",label:"Layout",items:Cn},{id:"local-structure",label:"Local",items:In},{id:"distance",label:"Distance",items:Gn},{id:"analysis",label:"Analysis",items:Dn},{id:"utility",label:"Utility",items:_n}].filter(S=>S.items.length>0),[Dn,kn,Gn,Cn,In,_n]),Vi={onNodeSelect:Ye,onEdgeSelect:ao,graphVersion:f,graphReady:b,displayGraph:lt.graph,displayMeta:Ii,displayState:Ne,selectedNodeId:r,focusedNodeId:n,selectedEdgeId:u,activePath:_r,activePathEdgeIds:yn,distanceVisualState:Pe,effectsState:et,temporalState:lo,isLayoutRunning:c,layoutSource:so?.layoutSource,viewMode:w,showFitViewButton:!1,pluginOverlays:Mi.map(S=>S.element),onRuntimeChange:Di,onInteractionStateChange:_i,onDiagnosticsChange:Gi,onAnalyticsChange:Li},Ln=Pe.mode!=="off",Pn=Object.keys(Pe.structuralDistances).length,Xt=Pe.distanceCounts,Lt=Pe.heatmapRenderedRingCounts,po=(S,R)=>R==null||R>=S?S.toLocaleString():`${S.toLocaleString()} (${R.toLocaleString()} shown)`,Ui=Xt?[`${Xt.anchor.toLocaleString()} anchor`,`${po(Xt.oneHop,Lt?.oneHop)} 1-hop`,`${po(Xt.twoHop,Lt?.twoHop)} 2-hop`,`${po(Xt.threeHopPlus,Lt?.threeHopPlus)} 3+ hop`,`${Xt.outside.toLocaleString()} outside`,Pe.heatmapSaturationMode==="sampled"?"Sampled for readability":""].filter(Boolean).join(" · "):`${Pn.toLocaleString()} nodes within ${Pe.maxHops} hops`,Mn=Pe.mode==="heatmap"&&Lt?[`${Lt.anchor.toLocaleString()} anchor shown`,`${Lt.oneHop.toLocaleString()} 1-hop shown`,`${Lt.twoHop.toLocaleString()} 2-hop shown`,`${Lt.threeHopPlus.toLocaleString()} 3+ hop shown`].join(" · "):null,Bi=Pe.mode==="heatmap"?[{label:"Anchor",color:vt(0)},{label:"1",color:vt(1)},{label:"2",color:vt(2)},{label:"3",color:vt(3)},{label:"Outside",color:K(E.palette.overview.nodeMuted,.38)}]:[{label:"0h",color:vt(0)},{label:"1h",color:vt(1)},{label:"2-3h",color:vt(3)},{label:"4-6h",color:vt(6)}];return N.jsxDEV("div",{className:"palantir-bg",style:{position:"relative",width:"100%",height:"100%",overflow:"hidden"},children:[N.jsxDEV("style",{children:tp},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2883,columnNumber:7},this),N.jsxDEV("div",{className:"palantir-grid"},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2884,columnNumber:7},this),N.jsxDEV("div",{className:"palantir-vignette"},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2885,columnNumber:7},this),N.jsxDEV("div",{className:"explore-shell",children:[N.jsxDEV("section",{className:"explore-command-deck",children:N.jsxDEV(Or,{tone:"subtle",children:N.jsxDEV("div",{style:{display:"flex",flexDirection:"column",gap:12},children:[N.jsxDEV("div",{className:"explore-toolbar",children:[N.jsxDEV("div",{className:"explore-status-strip",children:[(zt||ki)&&be?N.jsxDEV(bt,{children:yi(be.phase)},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2897,columnNumber:84},this):null,Se?N.jsxDEV(bt,{children:[Se.nodeCount.toLocaleString()," nodes · ",Se.edgeCount.toLocaleString()," edges"]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2898,columnNumber:30},this):null,J!==null?N.jsxDEV(bt,{tone:"success",children:[J.toLocaleString()," active"]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2899,columnNumber:47},this):null,Nn?N.jsxDEV(bt,{tone:"warm",children:Nn},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2900,columnNumber:37},this):null]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2896,columnNumber:17},this),N.jsxDEV("div",{className:"explore-workflow-bar",children:[N.jsxDEV(Zd,{value:_,disabled:Wi,onChange:L,onSubmit:()=>{Dr()},onSelectSuggestion:S=>{L(""),Ye(S.node.id)}},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2903,columnNumber:19},this),N.jsxDEV(qd,{items:Ti},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2907,columnNumber:19},this),N.jsxDEV("div",{className:"explore-toolbelt",children:zi.map(S=>N.jsxDEV($d,{label:S.label??S.id,items:S.items,compact:Vd.has(S.id)},S.id,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2909,columnNumber:53},this))},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2908,columnNumber:19},this)]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2902,columnNumber:17},this),Ln?null:N.jsxDEV(Jd,{items:Ci},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2912,columnNumber:40},this)]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2895,columnNumber:15},this),he&&N.jsxDEV("div",{style:{display:"flex",alignItems:"center",gap:10,fontSize:12,color:"#a0b4cc"},children:[N.jsxDEV("span",{style:{fontWeight:600,color:"#ff8fa0"},children:"Ego depth:"},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2922,columnNumber:19},this),N.jsxDEV("input",{type:"range",min:1,max:8,value:de,onChange:S=>ie(Number(S.target.value)),style:{width:90,accentColor:"#ff8fa0"},title:`Ego depth: ${de} hops`},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2926,columnNumber:19},this),N.jsxDEV("span",{style:{fontFamily:"monospace",color:"#e6f2ff"},children:[de," hop",de!==1?"s":""]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2930,columnNumber:19},this)]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2915,columnNumber:34},this),Ln?N.jsxDEV("div",{style:pp,children:[N.jsxDEV("div",{style:hp,children:[N.jsxDEV(Ua,{size:14,"aria-hidden":!0},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2938,columnNumber:21},this),N.jsxDEV("span",{children:"Distance Intelligence"},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2939,columnNumber:21},this),N.jsxDEV("span",{style:fp,children:Pe.mode},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2940,columnNumber:21},this)]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2937,columnNumber:19},this),N.jsxDEV("div",{style:mp,children:[Pe.anchorLabel?N.jsxDEV("span",{children:["Anchor: ",N.jsxDEV("strong",{children:Pe.anchorLabel},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2943,columnNumber:70},this)]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2943,columnNumber:56},this):null,Pe.mode==="semantic"?N.jsxDEV("span",{children:Pe.status==="loading"?"Loading semantic neighborhood...":`${Pe.semanticNeighborCount??0} semantic neighbors`},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2944,columnNumber:64},this):Pe.mode==="heatmap"?N.jsxDEV("span",{children:Ui},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2946,columnNumber:74},this):N.jsxDEV("span",{children:[Pn.toLocaleString()," nodes within ",Pe.maxHops," hops"]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2946,columnNumber:114},this),Pe.status==="unavailable"||Pe.status==="error"?N.jsxDEV("span",{style:{color:E.ui.control.dangerText},children:Pe.error},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2947,columnNumber:111},this):null,Mn?N.jsxDEV("span",{style:{color:E.ui.text.muted},children:Mn},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2950,columnNumber:47},this):null]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2942,columnNumber:19},this),N.jsxDEV("div",{style:gp,children:Bi.map(S=>N.jsxDEV("span",{style:bp,children:[N.jsxDEV("span",{style:{...yp,background:S.color}},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2956,columnNumber:25},this),S.label]},S.label,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2955,columnNumber:56},this))},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2954,columnNumber:19},this)]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2936,columnNumber:37},this):null,q?N.jsxDEV("div",{style:{color:"#ff7b72",fontSize:12},children:q},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2965,columnNumber:30},this):null,G.length?N.jsxDEV("div",{style:{display:"flex",flexDirection:"column",gap:8},children:[N.jsxDEV("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:12},children:[N.jsxDEV("span",{style:{color:"#b08b93",fontSize:12},children:[G.length," result",G.length===1?"":"s"]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2981,columnNumber:21},this),N.jsxDEV("button",{type:"button",onClick:io,style:{...Qo,minHeight:26,padding:"4px 9px",gap:5},"aria-label":"Dismiss search results",children:[N.jsxDEV(ns,{size:12,strokeWidth:2.4},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2993,columnNumber:23},this),"Dismiss"]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2987,columnNumber:21},this)]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2975,columnNumber:19},this),N.jsxDEV("div",{className:"explore-search-results hud-scrollbar",style:Np,children:G.map(S=>N.jsxDEV("button",{style:up,onClick:()=>Ye(S.node.id),children:N.jsxDEV("div",{style:{display:"flex",justifyContent:"space-between",gap:12},children:[N.jsxDEV("div",{style:{minWidth:0},children:[N.jsxDEV("div",{style:{color:"#fff",fontWeight:600},children:S.node.content||S.node.id},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3007,columnNumber:29},this),N.jsxDEV("div",{style:{color:"#b08b93",fontSize:12},children:S.node.type},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3011,columnNumber:29},this)]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3004,columnNumber:27},this),N.jsxDEV("div",{style:{color:"#ff2d4b",fontSize:12,whiteSpace:"nowrap"},children:Math.round(S.score)},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3016,columnNumber:27},this)]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2999,columnNumber:25},this)},S.node.id,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2998,columnNumber:52},this))},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2997,columnNumber:19},this)]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2970,columnNumber:39},this):null,Ae?N.jsxDEV("div",{style:dp,children:[N.jsxDEV("div",{style:{display:"flex",justifyContent:"space-between",gap:12,alignItems:"flex-start"},children:[N.jsxDEV("div",{style:{minWidth:0},children:[N.jsxDEV("div",{style:{color:"rgba(255, 107, 129, 0.76)",fontSize:11,fontWeight:700,letterSpacing:"0.08em",textTransform:"uppercase"},children:"Relationship"},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3038,columnNumber:23},this),N.jsxDEV("div",{style:{color:"#f4f8ff",fontSize:15,fontWeight:700,marginTop:6},children:Ae.edgeType},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3047,columnNumber:23},this)]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3035,columnNumber:21},this),N.jsxDEV("button",{onClick:()=>d(""),style:{...Qo,minHeight:30,padding:"6px 10px"},children:"Close"},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3056,columnNumber:21},this)]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3029,columnNumber:19},this),N.jsxDEV("div",{style:{display:"flex",alignItems:"center",gap:10,flexWrap:"wrap"},children:[N.jsxDEV("button",{style:Ta,onClick:()=>Ye(Ae.sourceId),children:Ae.sourceLabel},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3071,columnNumber:21},this),N.jsxDEV("span",{style:{color:"#7fa7ce",fontSize:12},children:"→"},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3074,columnNumber:21},this),N.jsxDEV("button",{style:Ta,onClick:()=>Ye(Ae.targetId),children:Ae.targetLabel},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3078,columnNumber:21},this)]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3065,columnNumber:19},this),N.jsxDEV("div",{style:{display:"flex",gap:8,flexWrap:"wrap"},children:[N.jsxDEV(bt,{tone:"warm",children:["weight ",Ae.weight.toFixed(2)]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3088,columnNumber:21},this),Ae.isAggregated?N.jsxDEV(bt,{tone:"success",children:[Ae.aggregateCount," bundled edge",Ae.aggregateCount===1?"":"s"]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3089,columnNumber:55},this):N.jsxDEV(bt,{children:[Ae.siblingCount," parallel lane",Ae.siblingCount===1?"":"s"]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3091,columnNumber:39},this),N.jsxDEV(bt,{children:[Ae.familySize," family member",Ae.familySize===1?"":"s"]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3092,columnNumber:21},this),Ae.bundleKind?N.jsxDEV(bt,{children:[Ae.bundleKind," bundle"]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3093,columnNumber:53},this):null,Ae.dominantEdgeType?N.jsxDEV(bt,{children:Ae.dominantEdgeType},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3094,columnNumber:59},this):null,Ae.provenanceCount>0?N.jsxDEV(bt,{children:[Ae.provenanceCount," provenance fields"]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3095,columnNumber:62},this):null]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3083,columnNumber:19},this),Object.keys(Ae.properties).length?N.jsxDEV("div",{style:vp,children:Object.entries(Ae.properties).slice(0,4).map(([S,R])=>N.jsxDEV("div",{style:xp,children:[N.jsxDEV("div",{style:{color:"rgba(255, 107, 129, 0.68)",fontSize:10,letterSpacing:"0.06em",textTransform:"uppercase"},children:S},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3100,columnNumber:27},this),N.jsxDEV("div",{style:{color:"#dce7f4",fontSize:12,marginTop:4,wordBreak:"break-word"},children:typeof R=="object"?JSON.stringify(R):String(R)},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3108,columnNumber:27},this)]},S,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3099,columnNumber:107},this))},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3098,columnNumber:71},this):null]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3028,columnNumber:36},this):null]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2890,columnNumber:13},this)},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2889,columnNumber:11},this)},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2888,columnNumber:9},this),N.jsxDEV("div",{className:"explore-main-grid",style:{gridTemplateColumns:Gr.showInspector?"minmax(0, 1fr) minmax(320px, 360px)":"minmax(0, 1fr)"},children:[N.jsxDEV("div",{className:"explore-scene-stack",children:N.jsxDEV(Or,{padding:"none",className:"explore-scene-card",children:[N.jsxDEV("div",{className:"explore-scene-shell",children:[N.jsxDEV("div",{className:"palantir-grid"},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3129,columnNumber:17},this),N.jsxDEV("div",{className:"palantir-vignette"},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3130,columnNumber:17},this),N.jsxDEV("div",{className:"explore-scene-stage",children:[N.jsxDEV(Du,{ref:Ge,...Vi},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3132,columnNumber:19},this),N.jsxDEV(rd,{progress:be,visible:zt,showGraphBehind:dr||!!be?.showGraphBehind,error:Cr,onRetry:sr},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3133,columnNumber:19},this)]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3131,columnNumber:17},this)]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3128,columnNumber:15},this),Gr.showPluginDock?N.jsxDEV("div",{className:"explore-plugin-dock",children:N.jsxDEV(Or,{tone:"subtle",style:{borderRadius:0,borderLeft:"none",borderRight:"none",borderBottom:"none"},children:N.jsxDEV("div",{style:{display:"flex",flexDirection:"column",gap:10},children:[N.jsxDEV("div",{style:{display:"flex",justifyContent:"space-between",gap:12,alignItems:"center"},children:N.jsxDEV("div",{className:"explore-plugin-dock-tabs",children:[Gt.map(S=>N.jsxDEV("button",{className:"explore-plugin-dock-tab","data-active":pr?.id===S.id,onClick:()=>$e(S.id),children:S.title},S.id,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3156,columnNumber:58},this)),pr?N.jsxDEV("button",{className:"explore-plugin-dock-tab",onClick:()=>Yt({type:"closePanel",panelId:pr.id}),children:"×"},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3159,columnNumber:46},this):null]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3155,columnNumber:25},this)},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3149,columnNumber:23},this),pr?N.jsxDEV("div",{style:Sp,children:pr.content},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3167,columnNumber:42},this):null]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3144,columnNumber:21},this)},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3138,columnNumber:19},this)},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3137,columnNumber:45},this):null,N.jsxDEV("div",{className:"explore-scene-footer",children:N.jsxDEV(A.Suspense,{fallback:N.jsxDEV("div",{style:Ap,children:"Loading timeline…"},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3173,columnNumber:37},this),children:N.jsxDEV(jd,{onTimeChange:_e,minDate:ce?.min??void 0,maxDate:ce?.max??void 0},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3174,columnNumber:19},this)},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3173,columnNumber:17},this)},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3172,columnNumber:15},this)]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3127,columnNumber:13},this)},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3126,columnNumber:11},this),Gr.showInspector?N.jsxDEV("div",{className:"explore-inspector-shell",children:N.jsxDEV(Ns,{open:Gr.showInspector,className:"explore-inspector-card",children:N.jsxDEV("div",{className:"explore-inspector-scroll hud-scrollbar",children:N.jsxDEV(A.Suspense,{fallback:N.jsxDEV("div",{style:Ep,children:"Loading inspector…"},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3183,columnNumber:39},this),children:N.jsxDEV(Hd,{nodeId:r,inspectableNodeId:ae||null,selectedNodeKind:Ne.selectedNodeKind,canActivateFocused:pe,focusedUnavailableReason:Ne.focusedUnavailableReason,predictions:P,predictionType:F,onPredictionTypeChange:ee,onRunPredictions:()=>{gt()},isRunningPredictions:U,pathTargetId:te,onPathTargetChange:Q,onTracePath:()=>{St()},pathResult:O,onDownloadProvenance:S=>{qt(S)},onFocusNode:Ye,onMarkdownApplied:Kt,onMarkdownDirtyChange:g},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3184,columnNumber:21},this)},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3183,columnNumber:19},this)},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3182,columnNumber:17},this)},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3181,columnNumber:15},this)},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3180,columnNumber:40},this):null]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3123,columnNumber:9},this)]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2887,columnNumber:7},this)]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2877,columnNumber:10},this)}const cp={background:E.ui.control.primaryBg,color:E.ui.control.primaryText,border:`1px solid ${E.ui.control.primaryBorder}`,borderRadius:12,padding:"9px 12px",cursor:"pointer",fontWeight:700,fontSize:12,display:"inline-flex",alignItems:"center",justifyContent:"center",boxShadow:"inset 0 1px 0 rgba(255,255,255,0.07), 0 10px 24px rgba(0,0,0,0.18)"},Qo={...cp,background:E.ui.control.defaultBg,border:`1px solid ${E.ui.control.defaultBorder}`,color:E.ui.control.defaultText,fontWeight:600},up={textAlign:"left",padding:12,background:"rgba(255, 255, 255, 0.035)",border:`1px solid ${E.ui.surface.panelBorder}`,borderRadius:10,cursor:"pointer"},dp={display:"flex",flexDirection:"column",gap:12,padding:14,background:"linear-gradient(135deg, rgba(98, 226, 205, 0.1), rgba(233, 196, 122, 0.045))",border:`1px solid ${E.ui.surface.panelBorder}`,borderRadius:14,boxShadow:"inset 0 1px 0 rgba(255,255,255,0.03)"},Ta={...Qo,minHeight:32,padding:"7px 12px",whiteSpace:"nowrap"},pp={display:"flex",alignItems:"center",gap:12,flexWrap:"wrap",border:`1px solid ${E.ui.control.activeBorder}`,background:"linear-gradient(135deg, rgba(98, 226, 205, 0.09), rgba(227, 179, 65, 0.045))",borderRadius:16,padding:"9px 12px",boxShadow:"inset 0 1px 0 rgba(255,255,255,0.045)"},hp={display:"flex",alignItems:"center",gap:7,color:E.ui.text.strong,fontSize:12,fontWeight:800,letterSpacing:"0.04em",textTransform:"uppercase"},fp={padding:"2px 7px",borderRadius:999,border:`1px solid ${E.ui.surface.panelBorder}`,color:E.palette.accent.path,background:"rgba(215, 144, 86, 0.1)",fontSize:10},mp={display:"flex",alignItems:"center",gap:10,flexWrap:"wrap",color:E.ui.text.body,fontSize:12},gp={display:"flex",alignItems:"center",gap:8,marginLeft:"auto",color:E.ui.text.muted,fontSize:11},bp={display:"inline-flex",alignItems:"center",gap:4},yp={width:8,height:8,borderRadius:999},vp={display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(160px, 1fr))",gap:8},xp={borderRadius:10,padding:10,background:"rgba(255, 255, 255, 0.03)",border:`1px solid ${E.ui.surface.panelBorder}`},Sp={borderRadius:16,border:`1px solid ${E.ui.surface.panelBorder}`,background:"rgba(255, 255, 255, 0.02)",padding:14},wp={color:E.ui.text.muted,fontSize:12,padding:10},Np={display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(220px, 1fr))",gap:10,maxHeight:186,overflowY:"auto"},Ep={padding:24,color:E.ui.text.muted,fontSize:12},Ap={height:"90px",display:"flex",alignItems:"center",padding:"0 18px",color:E.ui.text.muted,fontSize:12,borderTop:`1px solid ${E.ui.timeline.border}`,background:E.ui.timeline.background},Hp=Object.freeze(Object.defineProperty({__proto__:null,GraphWorkspace:lp},Symbol.toStringTag,{value:"Module"}));export{Hp as G,nd as f,j as g};
|
|
1116
|
+
`;function Ai(t){return Pd.reduce((e,o)=>t[o]!==void 0&&t[o]!==null?e+1:e,0)}function rp(t){const e=t.properties||{},o=String(e.content||t.id),r=E.palette.accent.path,a=!!(e.valid_from||e.valid_until),n=Ai(e);return{label:o,x:Number(e.x??Math.random()*1e3-500),y:Number(e.y??Math.random()*1e3-500),nodeType:t.type||"inferred",content:o,valid_from:e.valid_from??null,valid_until:e.valid_until??null,properties:e,size:8,baseSize:8,semanticGroup:t.type||"inferred",color:r,baseColor:r,mutedColor:K(r,E.nodes.mutedAlpha),glowColor:K(r,.36),visualPriority:.82,labelPriority:.82,strokeColor:E.palette.background.nodeBorder,borderColor:E.palette.background.nodeBorder,borderSize:.85,nodeVariant:"inferred",nodeShapeVariant:"inferred",badgeKind:a?"temporal":n>0?"provenance":"inferred",badgeCount:n||void 0,ringColor:E.nodes.selectedRing.color,haloColor:K(r,.42),labelVisibilityPolicy:"local"}}function op(t){j.forEachEdge(e=>{j.setEdgeAttribute(e,"isSmallGraph",t)})}function np(t,e){if(!t||!j.hasNode(t))return null;const o=j.getNodeAttributes(t);return{id:t,label:String(o.label??t),content:String(o.content??o.label??t),nodeType:String(o.nodeType??"Entity"),color:typeof o.color=="string"?o.color:void 0,valid_from:o.valid_from??null,valid_until:o.valid_until??null,properties:o.properties??{},neighborCount:j.neighbors(t).length,visibleNeighborCount:e.selectedVisibleNeighborIds.length,collapsedNeighborCount:e.selectedCollapsedNeighborIds.length,isNeighborhoodCollapsed:e.selectedCollapsedNeighborIds.length>0,canCollapseNeighborhood:j.neighbors(t).length>8}}function ap(t,e){if(!t||!e.hasEdge(t))return null;const[o,r]=e.extremities(t),a=e.getEdgeAttributes(t),n=a.rawEdgeIds?.length?a.rawEdgeIds.map(f=>String(f)):[t],s=n.find(f=>j.hasEdge(f))??n[0];let i=o,l=r;s&&j.hasEdge(s)&&([i,l]=j.extremities(s));const u=j.hasNode(i)?j.getNodeAttributes(i):{label:o},d=j.hasNode(l)?j.getNodeAttributes(l):{label:r},c=a.properties??{},p=String(a.familyId||t);let b=0,m=0;return n.forEach(f=>{if(!j.hasEdge(f))return;const y=j.getEdgeAttributes(f),[h,v]=j.extremities(f);String(y.familyId||f)===p&&(b+=1),h===i&&v===l&&(m+=1)}),a.isAggregated&&(m=n.filter(f=>j.hasEdge(f)).length,b=Math.max(b,m)),{id:t,familyId:p,sourceId:i,sourceLabel:String(u.label??u.content??i),targetId:l,targetLabel:String(d.label??d.content??l),edgeType:String(a.edgeType??"related_to"),weight:Number(a.weight??1),properties:c,provenanceCount:Ai(c),familySize:b,siblingCount:m,isAggregated:!!a.isAggregated,aggregateCount:Number(a.aggregateCount??n.length),rawEdgeIds:n,bundleKind:a.bundleKind??null,dominantEdgeType:a.dominantEdgeType??null,representativeWeight:Number(a.representativeWeight??a.weight??1)}}function ip(t,e){const o=[];for(const r of t)try{const a=r.renderPanel?.(e);if(!a)continue;Array.isArray(a)?o.push(...a):o.push(a)}catch(a){console.error(`[GraphPlugin:${r.id}] panel render failed`,a)}return o.sort((r,a)=>(r.order??0)-(a.order??0))}function sp(t,e){const o=[];for(const r of t)try{const a=r.renderOverlay?.(e);if(!a)continue;Array.isArray(a)?o.push(...a):o.push(a)}catch(a){console.error(`[GraphPlugin:${r.id}] overlay render failed`,a)}return o.sort((r,a)=>(r.layer??0)!==(a.layer??0)?(r.layer??0)-(a.layer??0):(r.order??0)-(a.order??0))}function lp({externalFocusNodeId:t,externalFocusToken:e,onDirtyChange:o}={}){const[r,a]=A.useState(""),[n,s]=A.useState(""),[i,l]=A.useState(""),[u,d]=A.useState(""),[c,p]=A.useState(!1),[b,m]=A.useState(!1),[f,y]=A.useState(0),[h,v]=A.useState(!1),x=A.useMemo(()=>new Gd,[]),g=A.useCallback(S=>{v(S),o?.(S)},[o]),[w,C]=A.useState("full"),[I]=A.useState(!0),[k,D]=A.useState([]),[_,L]=A.useState(""),[G,V]=A.useState([]),[q,W]=A.useState(""),[F,ee]=A.useState(""),[U,T]=A.useState(!1),[P,z]=A.useState([]),[te,Q]=A.useState(""),[B,le]=A.useState(null),[J,re]=A.useState(null),[ce,ue]=A.useState(null),[ge,se]=A.useState(null),Ce=A.useRef(null),_e=A.useCallback(S=>{const R=S.getTime();R!==Ce.current&&(Ce.current=R,se(S))},[]),[be,Me]=A.useState(null),[we,Qe]=A.useState({"effects-panel":!1,"neighborhood-panel":!1,"temporal-panel":!1}),[Je,$e]=A.useState(null),[pt,We]=A.useState(0),[et,ht]=A.useState(Rd),[Ze,it]=A.useState(null),tt=A.useRef(null),[Ie,qe]=A.useState(null),[xe,ve]=A.useState({}),[he,Ke]=A.useState(!1),[de,ie]=A.useState(3),[De,je]=A.useState("off"),[Ue,Oe]=A.useState(!1),[Re,st]=A.useState({anchorNodeId:null,scores:at,count:0,status:"idle",error:null}),rt=Od(ge,150),jt=A.useRef(new Set),Ge=A.useRef(null),Et=A.useRef(void 0),ot=A.useRef(null),Bt=A.useRef(null),Le=A.useRef(!1),At=A.useRef({hoveredNodeId:null,selectedNodeId:"",selectedEdgeId:"",focusedNodeId:"",activePath:[],activePathEdgeIds:[],viewMode:"full",zoomTier:"overview",isLayoutRunning:!1}),ir=Ju(),Ht=A.useCallback(S=>{Me(S),S.phase!=="ready"&&S.phase!=="stabilizing_layout"&&m(!1)},[]),Ft=A.useCallback(S=>{const R=Ud(S);if(Bt.current!==R){if(Bt.current=R,Le.current=!!(S.layoutReady&&!S.hasCoordinates&&S.nodeCount>0&&S.nodeCount<=Yo),m(!0),y($=>$+1),p(!S.layoutReady),S.layoutReady){Me(null);return}Me(Mt({phase:"stabilizing_layout",progressKind:"indeterminate",nodesLoaded:S.nodeCount,nodesTotal:S.nodeCount,edgesLoaded:S.edgeCount,edgesTotal:S.edgeCount,message:"Settling runtime layout",showGraphBehind:!0,layoutSource:S.layoutSource,layoutState:"bootstrapping"}))}},[]),{data:Se,isLoading:Tt,isFetching:kt,isError:ft,error:mt,refetch:$t}=qu({enabled:!0,onGraphReady:Ft,onProgress:Ht}),Cr=ft?mt instanceof Error?mt.message:"Unknown error while loading the graph.":null,sr=A.useCallback(()=>{Me(null),$t()},[$t]);A.useEffect(()=>{c||Me(S=>S?.phase==="stabilizing_layout"?null:S)},[c]),A.useEffect(()=>{!Se||b||Ft(Se)},[Ft,b,Se]);const Ir=kd(Se),M=Cd({debouncedTime:rt,isLoading:Tt,summary:Se});A.useEffect(()=>{if(!Ir)return;let S=!1;return(async()=>{try{const $=await fetch("/api/temporal/bounds");if(!$.ok||S)return;const ne=await $.json();S||ue(ne)}catch{S||ue(null)}})(),()=>{S=!0}},[Ir,Se?.nodeCount,Se?.edgeCount]);const H=A.useRef(null);H.current===null&&(H.current=Dd());const X=H.current;A.useEffect(()=>{X.reset()},[Se]),A.useEffect(()=>{if(!M||!rt)return;const S=rt.getTime(),{seq:R,cached:$}=X.begin(S);if(R===null)return;let ne=!1;const Ve=ke=>{const Fe=new Set(ke.active_node_ids);requestAnimationFrame(()=>{if(ne)return;if(!X.shouldApply(S,R)){X.finish(S,R);return}jt.current.forEach(nt=>{!Fe.has(nt)&&j.hasNode(nt)&&j.setNodeAttribute(nt,"hidden",!0)}),Fe.forEach(nt=>{j.hasNode(nt)&&j.setNodeAttribute(nt,"hidden",!1)}),jt.current=Fe,re(ke.active_node_count),y(nt=>nt+1),Ge.current?.getRuntime()?.requestRender(),X.apply(S,R,ke)})};if($){Ve($);return}return(async()=>{try{const ke=rt.toISOString(),Fe=await fetch(`/api/temporal/snapshot?at=${encodeURIComponent(ke)}`);if(!Fe.ok){ne||X.finish(S,R);return}if(ne)return;const Zt=await Fe.json();if(ne)return;Ve(Zt)}catch(ke){X.finish(S,R),ne||console.error("[Temporal] Snapshot fetch failed",ke)}})(),()=>{ne=!0,X.finish(S,R)}},[M,rt]);const O=A.useCallback((S,R)=>{if(!S)return{kind:"none",resolvedNodeId:null,reason:{code:"no-selection"}};if(j.hasNode(S))return{kind:"base",resolvedNodeId:S,reason:null};const $=R??ot.current?.displayGraph??j;if($.hasNode(S)){const Ve=$.getNodeAttributes(S).properties?.__communityGroup,Z=Ve?.anchorNodeId||Ve?.sampleNodeIds?.[0]||"";return Z&&j.hasNode(Z)?{kind:"grouped",resolvedNodeId:Z,reason:null}:{kind:"grouped",resolvedNodeId:null,reason:{code:"grouped-unresolvable"}}}return{kind:"unavailable",resolvedNodeId:null,reason:{code:"not-in-graph"}}},[]),oe=A.useMemo(()=>O(r,ot.current?.displayGraph),[pt,O,r,w]),ae=oe.resolvedNodeId??"",pe=!!oe.resolvedNodeId,{available:Y,reason:fe}=A.useMemo(()=>Ol(),[f]),Be=A.useMemo(()=>w==="grouped"?Hr("",Nt,Nt,"grouped",{aggregationEnabled:I,collapsedNeighborhoodNodeIds:k}):null,[w,I,k,f]),ze=A.useCallback(()=>h?window.confirm("Discard the unapplied Markdown draft and leave this node?"):!0,[h]),He=A.useCallback(S=>{const R=O(S,ot.current?.displayGraph);if(!R.resolvedNodeId)return;const $=R.resolvedNodeId,ne=ad(w,r,$);ne&&!ze()||(s($),a($),ne&&(d(""),le(null),V([]),W("")),C("focused"),p(!1))},[ze,O,r,w]),Te=A.useCallback(S=>{if(!(S!==w&&!ze())){if(S==="grouped"){if(!Y){Oo("grouped-view-unavailable",{reason:fe,graphVersion:f});return}const R=Be?.graph??Hr("",Nt,Nt,"grouped",{aggregationEnabled:I,collapsedNeighborhoodNodeIds:k}).graph,$=[i,r,n].map(ne=>sn(R,ne)).find(ne=>!!ne)??"";s(""),a($),$&&l($),C("grouped"),p(!0);return}s(""),a(R=>R&&j.hasNode(R)?R:""),C("full")}},[ze,I,k,n,f,Be,Y,fe,i,r,w]),Ye=A.useCallback(S=>{if(S!==r&&!ze())return;if(!S){a(""),d(""),le(null),V([]),W("");return}const R=ot.current?.displayGraph??j,$=S;!j.hasNode(S)&&R.hasNode(S)&&l(S),a($),d(""),le(null),V([]),W(""),w==="focused"&&j.hasNode($)&&(s($),p(!1))},[ze,r,w]);A.useEffect(()=>{!t||e==null||Et.current!==e&&(!b||!j.hasNode(t)||t!==r&&!ze()||(Et.current=e,C("full"),a(t),d(""),window.setTimeout(()=>{Ge.current?.focusNode(t)},0)))},[ze,t,e,b,r]);const ao=A.useCallback(S=>{d(S)},[]),Dr=A.useCallback(async()=>{if(!_.trim()){V([]);return}W("");try{const S=await fetch("/api/graph/search",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({query:_,limit:8})});if(!S.ok)throw new Error(`Search failed with status ${S.status}`);const R=await S.json();V(R.results||[])}catch(S){W(S instanceof Error?S.message:"Search failed")}},[_]),io=A.useCallback(()=>{V([]),W("")},[]),gt=A.useCallback(async()=>{if(ae){T(!0);try{const S=await fetch("/api/enrich/links",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({node_id:ae,top_n:6,candidate_type:F||void 0,min_score:0})});if(!S.ok)throw new Error(`Link prediction failed with status ${S.status}`);const R=await S.json();z(R.predictions||[])}catch(S){console.error("[GraphWorkspace] prediction failed",S),z([])}finally{T(!1)}}},[ae,F]),St=A.useCallback(async()=>{if(!(!ae||!te.trim()))try{const S=new URLSearchParams({source:ae,target:te.trim(),algorithm:"dijkstra"}),R=await fetch(`/api/graph/path?${S.toString()}`);if(!R.ok)throw new Error(`Path lookup failed with status ${R.status}`);const $=await R.json();if(le($),$.path?.length){const ne=$.path[$.path.length-1];j.hasNode(ne)&&Ge.current?.focusNode(ne)}}catch(S){console.error("[GraphWorkspace] path trace failed",S),le(null)}},[ae,te]),qt=A.useCallback(async S=>{if(!ae)return;const R=S==="markdown"?"markdown":"json",$=await fetch(`/api/provenance/report?node_id=${encodeURIComponent(ae)}&format=${R}`);if(!$.ok)throw new Error(`Provenance report failed with status ${$.status}`);const ne=await $.blob(),Ve=window.URL.createObjectURL(ne),Z=document.createElement("a");Z.href=Ve,Z.download=`${ae}_provenance.${S==="markdown"?"md":"json"}`,document.body.appendChild(Z),Z.click(),window.URL.revokeObjectURL(Ve),document.body.removeChild(Z)},[ae]),Kt=A.useCallback(S=>{if(S.resource.kind!=="context-node"||!j.hasNode(S.resource.id))return;const R=x.begin(S.resource.id),$=j.getNodeAttributes(S.resource.id);j.mergeNodeAttributes(S.resource.id,Zo(S.resource.id,S.body,$.properties??{})),y(ne=>ne+1),Ge.current?.getRuntime()?.requestRender(),Ld(S.resource.id).then(ne=>{!x.isCurrent(S.resource.id,R)||!j.hasNode(S.resource.id)||(j.mergeNodeAttributes(S.resource.id,ne),y(Ve=>Ve+1),Ge.current?.getRuntime()?.requestRender())}).catch(ne=>{console.error("[GraphWorkspace] applied node refresh failed",ne)})},[x]);A.useEffect(()=>{const S=window.location.protocol==="https:"?"wss:":"ws:",R=new WebSocket(`${S}//${window.location.host}/ws/graph-updates`);return R.onmessage=$=>{try{const ne=JSON.parse($.data);if(ne.event==="connection_ack"||ne.event!=="graph_mutation")return;const Ve=ne.data?.event_type,Z=ne.data?.payload;if(Ve==="ADD_NODE"&&Z?.id&&(Ba([{id:Z.id,attributes:rp(Z)}]),j.order>Yo&&(Le.current=!1),op(Le.current),ho("add-node",`Added node ${Z.label??Z.id}${Z.nodeType?` (${Z.nodeType})`:""} via realtime ws`,{nodeId:Z.id,nodeType:Z.nodeType}),y(ke=>ke+1),Ge.current?.getRuntime()?.requestRender()),Ve==="UPDATE_NODE"&&Z?.id&&j.hasNode(Z.id)){x.invalidate(Z.id);const ke=Z.properties??{},Fe=j.getNodeAttributes(Z.id),Zt=typeof ke.content=="string"?ke.content:"";j.mergeNodeAttributes(Z.id,{...Zo(Z.id,Zt,ke),nodeType:Z.type??Fe.nodeType,valid_from:ke.valid_from??null,valid_until:ke.valid_until??null}),ho("update-node",`Updated node ${Z.id} via realtime ws`,{nodeId:Z.id,nodeType:Z.type}),y(nt=>nt+1),Ge.current?.getRuntime()?.requestRender()}if(Ve==="ADD_EDGE"){const ke=Le.current;Fa([{id:String(Z.id),familyId:Z.familyId?String(Z.familyId):String(Z.id),source:Z.source_id,target:Z.target_id,attributes:_d(Z,{isBidirectional:j.hasDirectedEdge(Z.target_id,Z.source_id),isSmallGraph:ke})}]),ho("add-edge",`Added edge ${Z.edgeType??Z.id} (${Z.source_id} → ${Z.target_id}) via realtime ws`,{edgeId:Z.id,edgeType:Z.edgeType,source:Z.source_id,target:Z.target_id}),y(Fe=>Fe+1),Ge.current?.getRuntime()?.requestRender()}}catch(ne){console.error("[GraphWorkspace] websocket update failed",ne)}},()=>{R.close()}},[x]),A.useEffect(()=>{D([]),s(""),l("")},[Se?.edgeCount,Se?.nodeCount]);const Ee=he?"ego":Ue?"heatmap":De,me=w==="full"&&r&&j.hasNode(r)?r:"",lr=me?String(j.getNodeAttributes(me).label||me):null,It=Ee==="ego"?de:Ee==="heatmap"?Ha:Md,Wt=A.useMemo(()=>me&&Ee!=="off"?Pl(j,me,It):at,[Ee,me,It,f]),cr=A.useMemo(()=>Za(Wt,j.order),[Wt,f]),ur=A.useMemo(()=>Ee==="heatmap"&&me?Hl(j,me,Wt,Ha):null,[Ee,me,f,Wt]);A.useEffect(()=>{w!=="full"&&(Ke(!1),Oe(!1),je("off"))},[w]),A.useEffect(()=>{(Ee==="off"||!r||!j.hasNode(r))&&(Ke(!1),Oe(!1),je("off"))},[Ee,f,r]),A.useEffect(()=>{if(De!=="semantic"||!me){st({anchorNodeId:me||null,scores:at,count:0,status:De==="semantic"?"unavailable":"idle",error:De==="semantic"?"Select a Full Graph node to load semantic distance.":null});return}let S=!1;return st({anchorNodeId:me,scores:at,count:0,status:"loading",error:null}),(async()=>{try{const $=new URLSearchParams({node_id:me,top_k:"50"}),ne=await fetch(`/api/graph/semantic-neighborhood?${$.toString()}`);if(S)return;if(!ne.ok)throw new Error(ne.status===503?"Semantic similarity is unavailable for this graph.":ne.status===404?"Selected node was not found by the semantic distance API.":`Semantic distance failed with status ${ne.status}`);const Z=(await ne.json()).neighbors.reduce((ke,Fe)=>(Number.isFinite(Fe.similarity)&&(ke[Fe.id]=Fe.similarity),ke),{});st({anchorNodeId:me,scores:Z,count:Object.keys(Z).length,status:Object.keys(Z).length>0?"ready":"unavailable",error:Object.keys(Z).length>0?null:"No semantic neighbors were returned for this node."})}catch($){if(S)return;st({anchorNodeId:me,scores:at,count:0,status:"error",error:$ instanceof Error?$.message:"Semantic distance could not be loaded."})}})(),()=>{S=!0}},[me,De]);const Pe=A.useMemo(()=>Ee==="off"?{mode:"off",anchorNodeId:null,anchorLabel:null,maxHops:It,structuralDistances:at,semanticScores:at,distanceCounts:void 0,outsideCount:0,heatmapVisibleNodeIds:void 0,heatmapRingCounts:void 0,heatmapRenderedRingCounts:void 0,heatmapSaturationMode:void 0,semanticNeighborCount:0,status:"idle",error:null}:w!=="full"?{mode:Ee,anchorNodeId:null,anchorLabel:null,maxHops:It,structuralDistances:at,semanticScores:at,distanceCounts:void 0,outsideCount:j.order,heatmapVisibleNodeIds:void 0,heatmapRingCounts:void 0,heatmapRenderedRingCounts:void 0,heatmapSaturationMode:void 0,semanticNeighborCount:0,status:"unavailable",error:"Distance intelligence is available in Full Graph mode."}:me?Ee==="semantic"?{mode:"semantic",anchorNodeId:me,anchorLabel:lr,maxHops:It,structuralDistances:Wt,semanticScores:Re.anchorNodeId===me?Re.scores:at,distanceCounts:cr,outsideCount:cr.outside,heatmapVisibleNodeIds:void 0,heatmapRingCounts:void 0,heatmapRenderedRingCounts:void 0,heatmapSaturationMode:void 0,semanticNeighborCount:Re.anchorNodeId===me?Re.count:0,status:Re.anchorNodeId===me?Re.status:"loading",error:Re.anchorNodeId===me?Re.error:null}:{mode:Ee,anchorNodeId:me,anchorLabel:lr,maxHops:It,structuralDistances:Wt,semanticScores:at,distanceCounts:cr,outsideCount:cr.outside,heatmapVisibleNodeIds:ur?.visibleNodeIds,heatmapRingCounts:ur?.ringCounts,heatmapRenderedRingCounts:ur?.renderedRingCounts,heatmapSaturationMode:ur?.saturationMode,semanticNeighborCount:0,status:"ready",error:null}:{mode:Ee,anchorNodeId:null,anchorLabel:null,maxHops:It,structuralDistances:at,semanticScores:at,distanceCounts:void 0,outsideCount:j.order,heatmapVisibleNodeIds:void 0,heatmapRingCounts:void 0,heatmapRenderedRingCounts:void 0,heatmapSaturationMode:void 0,semanticNeighborCount:0,status:"unavailable",error:"Select a node to activate distance intelligence."},[Ee,lr,me,cr,It,j.order,ur,Re,Wt,w]),zt=!b&&(Tt||kt||!!be||ft),ki=b&&be?.phase==="stabilizing_layout",dr=!!Se?.nodeCount,_r=B?.path??Nt,yn=B?.edge_ids??Nt,Dt=A.useMemo(()=>w==="focused"?n&&j.hasNode(n)?n:"":!r||!j.hasNode(r)?"":k.includes(r)?r:"",[k,n,r,w]),vn=Dt?_r:Nt,xn=Dt?yn:Nt,lt=A.useMemo(()=>w==="grouped"?Be??Hr("",Nt,Nt,"grouped",{aggregationEnabled:I,collapsedNeighborhoodNodeIds:k}):Hr(Dt,vn,xn,w,{aggregationEnabled:I,collapsedNeighborhoodNodeIds:k}),[I,k,f,Be,vn,xn,Dt,w]),Ci=A.useMemo(()=>$a(lt.graph),[lt.graph,f]),Ne=A.useMemo(()=>w==="grouped"?Fl(lt.graph,r,{groupedViewAvailable:Y,groupedViewReason:fe,selectedNodeKind:oe.kind,resolvedFocusedNodeId:oe.resolvedNodeId,focusedUnavailableReason:oe.reason}):ai(r,_r,w,{aggregationEnabled:I,collapsedNeighborhoodNodeIds:k,groupedViewAvailable:Y,groupedViewReason:fe,selectedNodeKind:oe.kind,resolvedFocusedNodeId:oe.resolvedNodeId,focusedUnavailableReason:oe.reason}),[_r,I,k,lt.graph,oe.kind,oe.reason,oe.resolvedNodeId,Y,fe,r,w]),Ii=lt.meta;A.useEffect(()=>{w==="grouped"&&!Y&&(Oo("grouped-view-reset-to-full",{reason:fe,graphVersion:f}),C("full"),s(""),a(S=>S&&j.hasNode(S)?S:""))},[f,Y,fe,w]),A.useEffect(()=>{w==="focused"&&(!n||!j.hasNode(n))&&(C("full"),s(""))},[n,f,w]);const Sn=A.useRef(lt.graph),wn=A.useRef(Ne);A.useEffect(()=>{const S=Sn.current!==lt.graph,R=wn.current!==Ne;Oo("display-state-derived",{selectedNodeId:r,structuralSelectedNodeId:Dt,viewMode:w,graphRebuilt:S,displayStateChanged:R,aggregationEnabled:I,collapsedNeighborhoodActive:!!(Dt&&k.includes(Dt))}),Sn.current=lt.graph,wn.current=Ne},[I,k,lt.graph,Ne,r,Dt,w]);const Nn=A.useMemo(()=>{if(!r||!j.hasNode(r))return w==="grouped"?Ne.groupedViewAvailable?"Communities compressed into grouped structure view":Tr(Ne.groupedViewReason)??Tr({code:"communities-undetected"}):null;const S=j.neighbors(r).length;return w==="focused"?`${(Ne.selectedVisibleNeighborIds.length||Math.min(S,16))+1} nodes in focused view`:w==="grouped"?"Grouped structure view with direct community drill-in":Ne.selectedCollapsedNeighborIds.length>0?`${Ne.selectedVisibleNeighborIds.length} visible neighbors, ${Ne.selectedCollapsedNeighborIds.length} collapsed`:`${S} direct neighbors highlighted`},[Ne,r,w]),so=Se,Vt=A.useMemo(()=>np(r,Ne),[Ne,r,Se?.nodeCount,Se?.edgeCount]),Ae=A.useMemo(()=>ap(u,lt.graph),[lt.graph,u,Se?.nodeCount,Se?.edgeCount]),lo=A.useMemo(()=>({currentTime:ge,activeNodeCount:J,minDate:ce?.min??void 0,maxDate:ce?.max??void 0}),[J,ge,ce?.max,ce?.min]),_t=A.useMemo(()=>[{id:"exploration-effects",panelId:"effects-panel",label:"Effects",title:"Open exploration effects controls",order:18,load:Td,shouldLoad:Nd},{id:"neighborhood-panel",panelId:"neighborhood-panel",label:"Neighbors",title:"Toggle neighborhood panel",order:30,load:Wd,shouldLoad:Ed},{id:"temporal-overlay",panelId:"temporal-panel",label:"Temporal",title:"Toggle temporal context panel",order:40,load:zd,shouldLoad:Ad}],[]),wt=A.useMemo(()=>_t.map(S=>xe[S.id]).filter(S=>!!S),[xe,_t]);A.useEffect(()=>{let S=!1;return _t.forEach(R=>{xe[R.id]||R.shouldLoad({panelState:we})&&R.load().then($=>{S||ve(ne=>ne[R.id]?ne:{...ne,[R.id]:$})}).catch($=>{console.error(`[GraphPlugin:${R.id}] lazy load failed`,$)})}),()=>{S=!0}},[xe,we,_t]);const co=A.useCallback((S,R)=>{ht($=>{const ne=typeof R=="function"?R($[S]):R;return S==="diagnosticsEnabled"&&!E.effects.diagnostics.enabledInDev||$[S]===ne?$:{...$,[S]:ne}})},[]),Yt=A.useCallback(S=>{switch(S.type){case"fitView":Ge.current?.fitView();return;case"focusNode":Ge.current?.focusNode(S.nodeId);return;case"selectNode":Ye(S.nodeId);return;case"setViewMode":Te(S.viewMode);return;case"enterLocalGraph":He(S.nodeId);return;case"collapseNeighborhood":if(!r)return;D(R=>R.includes(r)?R:[...R,r]);return;case"expandNeighborhood":if(!r)return;D(R=>R.filter($=>$!==r));return;case"toggleEffect":co(S.effect,R=>!R);return;case"setEffect":co(S.effect,S.enabled);return;case"togglePanel":Qe(R=>{const $=!R[S.panelId];return $e(ne=>$?S.panelId:ne===S.panelId?null:ne),{...R,[S.panelId]:$}});return;case"openPanel":$e(S.panelId),Qe(R=>({...R,[S.panelId]:!0}));return;case"closePanel":Qe(R=>({...R,[S.panelId]:!1})),$e(R=>R===S.panelId?null:R);return}},[He,Ye,r,co,Te]),En=A.useMemo(()=>!E.effects.diagnostics.enabledInDev||!Ze?null:{interactionState:At.current,activePluginIds:wt.map(S=>S.id),openPanelIds:Object.entries(we).filter(([,S])=>S).map(([S])=>S),effectsState:et,edgeClasses:Ze.edgeClasses,distanceVisual:Ze.distanceVisual,effectAvailability:Ze.effectAvailability},[wt,et,Ze,we]),ct=A.useMemo(()=>({get scene(){return ot.current},get graph(){return j},get displayGraph(){return ot.current?.displayGraph??j},theme:E,getInteractionState:()=>At.current,getSelectedNodeState:()=>Vt,getInspectorState:()=>({selectedNodeId:r||null,ownsSelectionDetails:!0}),getGraphSummary:()=>so,getTemporalState:()=>lo,getEffectsState:()=>et,getDiagnosticsSnapshot:()=>En,getAnalyticsSnapshot:()=>Ie,getDisplayState:()=>Ne,isPanelOpen:S=>!!we[S],dispatchAction:Yt}),[Ne,Ie,En,et,so,Yt,we,r,Vt,lo]),Di=A.useCallback(S=>{ot.current=S,S||qe(null),We(R=>R+1)},[]),_i=A.useCallback(S=>{At.current=S;for(const R of wt)try{R.onStateChange(ct,S)}catch($){console.error(`[GraphPlugin:${R.id}] state update failed`,$)}},[wt,ct]),Gi=A.useCallback(S=>{if(!E.effects.diagnostics.enabledInDev)return;const R=tt.current;if(R!==null){const $=["pathPulse","pathFlow","lens","temporalEmphasis","semanticRegions","contours","pathfinding","communities","centrality","legend","diagnostics"],ne=R.effectAvailability,Ve=S.effectAvailability,Z=$.some(nt=>{const Qt=ne[nt],Jt=Ve[nt];return Qt.enabled!==Jt.enabled||Qt.available!==Jt.available||Qt.reason!==Jt.reason||Qt.detail!==Jt.detail||Qt.visibleSegments!==Jt.visibleSegments||Qt.segmentCap!==Jt.segmentCap}),ke=R.edgeClasses?.updatedAt!==S.edgeClasses?.updatedAt,Fe=R.structureLayer?.cacheKey!==S.structureLayer?.cacheKey||R.structureLayer?.lastDrawAt!==S.structureLayer?.lastDrawAt||R.structureLayer?.enabled!==S.structureLayer?.enabled||R.structureLayer?.disabledReason!==S.structureLayer?.disabledReason||R.structureLayer?.curveCount!==S.structureLayer?.curveCount||R.structureLayer?.bridgeCurveCount!==S.structureLayer?.bridgeCurveCount||R.structureLayer?.backboneCurveCount!==S.structureLayer?.backboneCurveCount,Zt=R.distanceVisual!==S.distanceVisual;if(!Z&&!ke&&!Fe&&!Zt)return}tt.current=S,it(S)},[]),Li=A.useCallback(S=>{qe(S)},[]);A.useEffect(()=>{if(!ot.current)return;const S=[];for(const R of wt)try{R.mount(ct),S.push(R)}catch($){console.error(`[GraphPlugin:${R.id}] mount failed`,$)}return()=>{for(const R of S.reverse())try{R.unmount(ct)}catch($){console.error(`[GraphPlugin:${R.id}] unmount failed`,$)}}},[wt,ct,pt]);const An=A.useMemo(()=>_t.map(S=>({id:`${S.id}-toggle`,label:S.label,title:S.title,active:ct.isPanelOpen(S.panelId),order:S.order,onClick:()=>ct.dispatchAction({type:"togglePanel",panelId:S.panelId})})),[ct,_t]),Pi=A.useMemo(()=>ip(wt,ct),[wt,ct]),Mi=A.useMemo(()=>sp(wt,ct),[wt,ct]),Ri=A.useMemo(()=>_t.filter(S=>we[S.panelId]&&!xe[S.id]).map(S=>({id:S.panelId,title:S.label,placement:"bottom",order:S.order,content:N.jsxDEV("div",{style:wp,children:["Loading ",S.label.toLowerCase(),"…"]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2608,columnNumber:14},this)})),[xe,we,_t]),Gt=[...Pi,...Ri].filter(S=>S.placement==="bottom"||S.placement==="side").sort((S,R)=>(S.order??0)-(R.order??0)).filter(S=>we[S.id]),pr=Gt.find(S=>S.id===Je)??Gt[0]??null,Gr={showInspector:!!r,showPluginDock:Gt.length>0},uo=Gt.map(S=>S.id).join("|"),[ji,Hi]=A.useState(uo);uo!==ji&&(Hi(uo),Gt.length?(!Je||!Gt.some(S=>S.id===Je))&&$e(Gt[0].id):Je!==null&&$e(null));const Ti=A.useMemo(()=>dr?[{id:"view-full",label:"Full Graph",title:"Return to the full graph context",icon:ts,active:w==="full",onClick:()=>Te("full")},{id:"view-grouped",label:"Grouped View",title:Ne.groupedViewAvailable?"Compress dense structure into detected communities":Tr(Ne.groupedViewReason)??Tr({code:"communities-undetected"})??void 0,icon:rs,active:w==="grouped",disabled:!Ne.groupedViewAvailable,onClick:()=>Te("grouped")},{id:"view-focused",label:"Focus",title:pe?"Inspect the selected node in a focused local graph":nd(oe.reason)??void 0,icon:cs,active:w==="focused",disabled:w!=="focused"&&!pe,onClick:()=>{const S=oe.resolvedNodeId;S&&He(S)}}]:[],[pe,Ne.groupedViewAvailable,Ne.groupedViewReason,He,oe.reason,oe.resolvedNodeId,dr,Te,w]),kn=A.useMemo(()=>[{id:"zoom-in",label:"Zoom In",title:"Zoom in (or scroll up on the canvas)",ariaLabel:"Zoom in",icon:ys,compact:!0,onClick:()=>Ge.current?.zoomIn()},{id:"zoom-out",label:"Zoom Out",title:"Zoom out (or scroll down on the canvas)",ariaLabel:"Zoom out",icon:xs,compact:!0,onClick:()=>Ge.current?.zoomOut()},{id:"fit-view",label:"Fit",title:"Reset the camera to fit the whole graph",ariaLabel:"Fit view",icon:ds,compact:!0,onClick:()=>Ge.current?.fitView()}],[]),Cn=A.useMemo(()=>[{id:"layout-toggle",label:c?"Pause":"Run",title:"Toggle the layout worker",icon:c?hs:os,active:c,disabled:zt,onClick:()=>p(S=>!S)}],[c,zt]),In=A.useMemo(()=>Vt?[{id:"collapse-neighborhood",label:"Collapse",title:"Hide lower-priority fanout around the selected node",icon:es,disabled:!Vt.canCollapseNeighborhood||Vt.isNeighborhoodCollapsed,onClick:()=>Yt({type:"collapseNeighborhood"})},{id:"expand-neighborhood",label:"Expand",title:"Restore the collapsed local neighborhood",icon:Oa,disabled:!Vt.isNeighborhoodCollapsed,onClick:()=>Yt({type:"expandNeighborhood"})}]:[],[Yt,Vt]),Dn=A.useMemo(()=>An.map(S=>({id:S.id,label:S.label,title:S.title,icon:Bd(S),active:S.active,onClick:S.onClick})),[An]),_n=A.useMemo(()=>[{id:"reload",label:"Reload",title:"Reload the graph data",ariaLabel:"Reload graph data",icon:Va,compact:!0,disabled:zt,onClick:ir}],[ir,zt]),Wi=zt||!_.trim(),Gn=A.useMemo(()=>!dr||w!=="full"||!r||!j.hasNode(r)?[]:[{id:"ego-mode",label:he?`Ego (${de}h)`:"Ego Mode",title:he?`Egocentric view: ${de} hops depth (click to toggle off)`:"Show depth-of-field fading around the selected node",active:he,onClick:()=>{Ke(S=>!S),Oe(!1),je("off")}},{id:"heatmap",label:"Heatmap",title:Ue?"Distance heatmap active (click to toggle off)":"Color nodes by hop distance from selected node",active:Ue,onClick:()=>{Oe(S=>!S),Ke(!1),je("off")}},{id:"dist-structural",label:"Structural",title:"Color edges by structural (hop) distance",active:De==="structural",onClick:()=>{Ke(!1),Oe(!1),je(S=>S==="structural"?"off":"structural")}},{id:"dist-semantic",label:"Semantic",title:"Color edges by semantic similarity to selected node",active:De==="semantic",onClick:()=>{Ke(!1),Oe(!1),je(S=>S==="semantic"?"off":"semantic")}}],[De,de,he,dr,Ue,r,w]),zi=A.useMemo(()=>[{id:"camera",label:"Camera",items:kn},{id:"layout",label:"Layout",items:Cn},{id:"local-structure",label:"Local",items:In},{id:"distance",label:"Distance",items:Gn},{id:"analysis",label:"Analysis",items:Dn},{id:"utility",label:"Utility",items:_n}].filter(S=>S.items.length>0),[Dn,kn,Gn,Cn,In,_n]),Vi={onNodeSelect:Ye,onEdgeSelect:ao,graphVersion:f,graphReady:b,displayGraph:lt.graph,displayMeta:Ii,displayState:Ne,selectedNodeId:r,focusedNodeId:n,selectedEdgeId:u,activePath:_r,activePathEdgeIds:yn,distanceVisualState:Pe,effectsState:et,temporalState:lo,isLayoutRunning:c,layoutSource:so?.layoutSource,viewMode:w,showFitViewButton:!1,pluginOverlays:Mi.map(S=>S.element),onRuntimeChange:Di,onInteractionStateChange:_i,onDiagnosticsChange:Gi,onAnalyticsChange:Li},Ln=Pe.mode!=="off",Pn=Object.keys(Pe.structuralDistances).length,Xt=Pe.distanceCounts,Lt=Pe.heatmapRenderedRingCounts,po=(S,R)=>R==null||R>=S?S.toLocaleString():`${S.toLocaleString()} (${R.toLocaleString()} shown)`,Ui=Xt?[`${Xt.anchor.toLocaleString()} anchor`,`${po(Xt.oneHop,Lt?.oneHop)} 1-hop`,`${po(Xt.twoHop,Lt?.twoHop)} 2-hop`,`${po(Xt.threeHopPlus,Lt?.threeHopPlus)} 3+ hop`,`${Xt.outside.toLocaleString()} outside`,Pe.heatmapSaturationMode==="sampled"?"Sampled for readability":""].filter(Boolean).join(" · "):`${Pn.toLocaleString()} nodes within ${Pe.maxHops} hops`,Mn=Pe.mode==="heatmap"&&Lt?[`${Lt.anchor.toLocaleString()} anchor shown`,`${Lt.oneHop.toLocaleString()} 1-hop shown`,`${Lt.twoHop.toLocaleString()} 2-hop shown`,`${Lt.threeHopPlus.toLocaleString()} 3+ hop shown`].join(" · "):null,Oi=Pe.mode==="heatmap"?[{label:"Anchor",color:vt(0)},{label:"1",color:vt(1)},{label:"2",color:vt(2)},{label:"3",color:vt(3)},{label:"Outside",color:K(E.palette.overview.nodeMuted,.38)}]:[{label:"0h",color:vt(0)},{label:"1h",color:vt(1)},{label:"2-3h",color:vt(3)},{label:"4-6h",color:vt(6)}];return N.jsxDEV("div",{className:"palantir-bg",style:{position:"relative",width:"100%",height:"100%",overflow:"hidden"},children:[N.jsxDEV("style",{children:tp},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2883,columnNumber:7},this),N.jsxDEV("div",{className:"palantir-grid"},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2884,columnNumber:7},this),N.jsxDEV("div",{className:"palantir-vignette"},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2885,columnNumber:7},this),N.jsxDEV("div",{className:"explore-shell",children:[N.jsxDEV("section",{className:"explore-command-deck",children:N.jsxDEV(Br,{tone:"subtle",children:N.jsxDEV("div",{style:{display:"flex",flexDirection:"column",gap:12},children:[N.jsxDEV("div",{className:"explore-toolbar",children:[N.jsxDEV("div",{className:"explore-status-strip",children:[(zt||ki)&&be?N.jsxDEV(bt,{children:yi(be.phase)},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2897,columnNumber:84},this):null,Se?N.jsxDEV(bt,{children:[Se.nodeCount.toLocaleString()," nodes · ",Se.edgeCount.toLocaleString()," edges"]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2898,columnNumber:30},this):null,J!==null?N.jsxDEV(bt,{tone:"success",children:[J.toLocaleString()," active"]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2899,columnNumber:47},this):null,Nn?N.jsxDEV(bt,{tone:"warm",children:Nn},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2900,columnNumber:37},this):null]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2896,columnNumber:17},this),N.jsxDEV("div",{className:"explore-workflow-bar",children:[N.jsxDEV(Zd,{value:_,disabled:Wi,onChange:L,onSubmit:()=>{Dr()},onSelectSuggestion:S=>{L(""),Ye(S.node.id)}},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2903,columnNumber:19},this),N.jsxDEV(qd,{items:Ti},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2907,columnNumber:19},this),N.jsxDEV("div",{className:"explore-toolbelt",children:zi.map(S=>N.jsxDEV($d,{label:S.label??S.id,items:S.items,compact:Vd.has(S.id)},S.id,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2909,columnNumber:53},this))},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2908,columnNumber:19},this)]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2902,columnNumber:17},this),Ln?null:N.jsxDEV(Jd,{items:Ci},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2912,columnNumber:40},this)]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2895,columnNumber:15},this),he&&N.jsxDEV("div",{style:{display:"flex",alignItems:"center",gap:10,fontSize:12,color:"#a0b4cc"},children:[N.jsxDEV("span",{style:{fontWeight:600,color:"#d9455e"},children:"Ego depth:"},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2922,columnNumber:19},this),N.jsxDEV("input",{type:"range",min:1,max:8,value:de,onChange:S=>ie(Number(S.target.value)),style:{width:90,accentColor:"#d9455e"},title:`Ego depth: ${de} hops`},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2926,columnNumber:19},this),N.jsxDEV("span",{style:{fontFamily:"monospace",color:"#16212e"},children:[de," hop",de!==1?"s":""]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2930,columnNumber:19},this)]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2915,columnNumber:34},this),Ln?N.jsxDEV("div",{style:pp,children:[N.jsxDEV("div",{style:hp,children:[N.jsxDEV(Ua,{size:14,"aria-hidden":!0},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2938,columnNumber:21},this),N.jsxDEV("span",{children:"Distance Intelligence"},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2939,columnNumber:21},this),N.jsxDEV("span",{style:fp,children:Pe.mode},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2940,columnNumber:21},this)]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2937,columnNumber:19},this),N.jsxDEV("div",{style:mp,children:[Pe.anchorLabel?N.jsxDEV("span",{children:["Anchor: ",N.jsxDEV("strong",{children:Pe.anchorLabel},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2943,columnNumber:70},this)]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2943,columnNumber:56},this):null,Pe.mode==="semantic"?N.jsxDEV("span",{children:Pe.status==="loading"?"Loading semantic neighborhood...":`${Pe.semanticNeighborCount??0} semantic neighbors`},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2944,columnNumber:64},this):Pe.mode==="heatmap"?N.jsxDEV("span",{children:Ui},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2946,columnNumber:74},this):N.jsxDEV("span",{children:[Pn.toLocaleString()," nodes within ",Pe.maxHops," hops"]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2946,columnNumber:114},this),Pe.status==="unavailable"||Pe.status==="error"?N.jsxDEV("span",{style:{color:E.ui.control.dangerText},children:Pe.error},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2947,columnNumber:111},this):null,Mn?N.jsxDEV("span",{style:{color:E.ui.text.muted},children:Mn},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2950,columnNumber:47},this):null]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2942,columnNumber:19},this),N.jsxDEV("div",{style:gp,children:Oi.map(S=>N.jsxDEV("span",{style:bp,children:[N.jsxDEV("span",{style:{...yp,background:S.color}},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2956,columnNumber:25},this),S.label]},S.label,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2955,columnNumber:56},this))},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2954,columnNumber:19},this)]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2936,columnNumber:37},this):null,q?N.jsxDEV("div",{style:{color:"#ec2315",fontSize:12},children:q},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2965,columnNumber:30},this):null,G.length?N.jsxDEV("div",{style:{display:"flex",flexDirection:"column",gap:8},children:[N.jsxDEV("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:12},children:[N.jsxDEV("span",{style:{color:"#b08b93",fontSize:12},children:[G.length," result",G.length===1?"":"s"]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2981,columnNumber:21},this),N.jsxDEV("button",{type:"button",onClick:io,style:{...Qo,minHeight:26,padding:"4px 9px",gap:5},"aria-label":"Dismiss search results",children:[N.jsxDEV(ns,{size:12,strokeWidth:2.4},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2993,columnNumber:23},this),"Dismiss"]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2987,columnNumber:21},this)]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2975,columnNumber:19},this),N.jsxDEV("div",{className:"explore-search-results hud-scrollbar",style:Np,children:G.map(S=>N.jsxDEV("button",{style:up,onClick:()=>Ye(S.node.id),children:N.jsxDEV("div",{style:{display:"flex",justifyContent:"space-between",gap:12},children:[N.jsxDEV("div",{style:{minWidth:0},children:[N.jsxDEV("div",{style:{color:"#16181d",fontWeight:600},children:S.node.content||S.node.id},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3007,columnNumber:29},this),N.jsxDEV("div",{style:{color:"#b08b93",fontSize:12},children:S.node.type},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3011,columnNumber:29},this)]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3004,columnNumber:27},this),N.jsxDEV("div",{style:{color:"#ff2d4b",fontSize:12,whiteSpace:"nowrap"},children:Math.round(S.score)},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3016,columnNumber:27},this)]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2999,columnNumber:25},this)},S.node.id,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2998,columnNumber:52},this))},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2997,columnNumber:19},this)]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2970,columnNumber:39},this):null,Ae?N.jsxDEV("div",{style:dp,children:[N.jsxDEV("div",{style:{display:"flex",justifyContent:"space-between",gap:12,alignItems:"flex-start"},children:[N.jsxDEV("div",{style:{minWidth:0},children:[N.jsxDEV("div",{style:{color:"rgba(255, 107, 129, 0.76)",fontSize:11,fontWeight:700,letterSpacing:"0.08em",textTransform:"uppercase"},children:"Relationship"},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3038,columnNumber:23},this),N.jsxDEV("div",{style:{color:"#161e2d",fontSize:15,fontWeight:700,marginTop:6},children:Ae.edgeType},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3047,columnNumber:23},this)]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3035,columnNumber:21},this),N.jsxDEV("button",{onClick:()=>d(""),style:{...Qo,minHeight:30,padding:"6px 10px"},children:"Close"},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3056,columnNumber:21},this)]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3029,columnNumber:19},this),N.jsxDEV("div",{style:{display:"flex",alignItems:"center",gap:10,flexWrap:"wrap"},children:[N.jsxDEV("button",{style:Ta,onClick:()=>Ye(Ae.sourceId),children:Ae.sourceLabel},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3071,columnNumber:21},this),N.jsxDEV("span",{style:{color:"#7fa7ce",fontSize:12},children:"→"},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3074,columnNumber:21},this),N.jsxDEV("button",{style:Ta,onClick:()=>Ye(Ae.targetId),children:Ae.targetLabel},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3078,columnNumber:21},this)]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3065,columnNumber:19},this),N.jsxDEV("div",{style:{display:"flex",gap:8,flexWrap:"wrap"},children:[N.jsxDEV(bt,{tone:"warm",children:["weight ",Ae.weight.toFixed(2)]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3088,columnNumber:21},this),Ae.isAggregated?N.jsxDEV(bt,{tone:"success",children:[Ae.aggregateCount," bundled edge",Ae.aggregateCount===1?"":"s"]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3089,columnNumber:55},this):N.jsxDEV(bt,{children:[Ae.siblingCount," parallel lane",Ae.siblingCount===1?"":"s"]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3091,columnNumber:39},this),N.jsxDEV(bt,{children:[Ae.familySize," family member",Ae.familySize===1?"":"s"]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3092,columnNumber:21},this),Ae.bundleKind?N.jsxDEV(bt,{children:[Ae.bundleKind," bundle"]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3093,columnNumber:53},this):null,Ae.dominantEdgeType?N.jsxDEV(bt,{children:Ae.dominantEdgeType},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3094,columnNumber:59},this):null,Ae.provenanceCount>0?N.jsxDEV(bt,{children:[Ae.provenanceCount," provenance fields"]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3095,columnNumber:62},this):null]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3083,columnNumber:19},this),Object.keys(Ae.properties).length?N.jsxDEV("div",{style:vp,children:Object.entries(Ae.properties).slice(0,4).map(([S,R])=>N.jsxDEV("div",{style:xp,children:[N.jsxDEV("div",{style:{color:"rgba(255, 107, 129, 0.68)",fontSize:10,letterSpacing:"0.06em",textTransform:"uppercase"},children:S},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3100,columnNumber:27},this),N.jsxDEV("div",{style:{color:"#18212c",fontSize:12,marginTop:4,wordBreak:"break-word"},children:typeof R=="object"?JSON.stringify(R):String(R)},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3108,columnNumber:27},this)]},S,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3099,columnNumber:107},this))},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3098,columnNumber:71},this):null]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3028,columnNumber:36},this):null]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2890,columnNumber:13},this)},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2889,columnNumber:11},this)},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2888,columnNumber:9},this),N.jsxDEV("div",{className:"explore-main-grid",style:{gridTemplateColumns:Gr.showInspector?"minmax(0, 1fr) minmax(320px, 360px)":"minmax(0, 1fr)"},children:[N.jsxDEV("div",{className:"explore-scene-stack",children:N.jsxDEV(Br,{padding:"none",className:"explore-scene-card",children:[N.jsxDEV("div",{className:"explore-scene-shell",children:[N.jsxDEV("div",{className:"palantir-grid"},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3129,columnNumber:17},this),N.jsxDEV("div",{className:"palantir-vignette"},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3130,columnNumber:17},this),N.jsxDEV("div",{className:"explore-scene-stage",children:[N.jsxDEV(Du,{ref:Ge,...Vi},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3132,columnNumber:19},this),N.jsxDEV(rd,{progress:be,visible:zt,showGraphBehind:dr||!!be?.showGraphBehind,error:Cr,onRetry:sr},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3133,columnNumber:19},this)]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3131,columnNumber:17},this)]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3128,columnNumber:15},this),Gr.showPluginDock?N.jsxDEV("div",{className:"explore-plugin-dock",children:N.jsxDEV(Br,{tone:"subtle",style:{borderRadius:0,borderLeft:"none",borderRight:"none",borderBottom:"none"},children:N.jsxDEV("div",{style:{display:"flex",flexDirection:"column",gap:10},children:[N.jsxDEV("div",{style:{display:"flex",justifyContent:"space-between",gap:12,alignItems:"center"},children:N.jsxDEV("div",{className:"explore-plugin-dock-tabs",children:[Gt.map(S=>N.jsxDEV("button",{className:"explore-plugin-dock-tab","data-active":pr?.id===S.id,onClick:()=>$e(S.id),children:S.title},S.id,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3156,columnNumber:58},this)),pr?N.jsxDEV("button",{className:"explore-plugin-dock-tab",onClick:()=>Yt({type:"closePanel",panelId:pr.id}),children:"×"},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3159,columnNumber:46},this):null]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3155,columnNumber:25},this)},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3149,columnNumber:23},this),pr?N.jsxDEV("div",{style:Sp,children:pr.content},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3167,columnNumber:42},this):null]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3144,columnNumber:21},this)},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3138,columnNumber:19},this)},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3137,columnNumber:45},this):null,N.jsxDEV("div",{className:"explore-scene-footer",children:N.jsxDEV(A.Suspense,{fallback:N.jsxDEV("div",{style:Ap,children:"Loading timeline…"},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3173,columnNumber:37},this),children:N.jsxDEV(jd,{onTimeChange:_e,minDate:ce?.min??void 0,maxDate:ce?.max??void 0},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3174,columnNumber:19},this)},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3173,columnNumber:17},this)},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3172,columnNumber:15},this)]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3127,columnNumber:13},this)},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3126,columnNumber:11},this),Gr.showInspector?N.jsxDEV("div",{className:"explore-inspector-shell",children:N.jsxDEV(Ns,{open:Gr.showInspector,className:"explore-inspector-card",children:N.jsxDEV("div",{className:"explore-inspector-scroll hud-scrollbar",children:N.jsxDEV(A.Suspense,{fallback:N.jsxDEV("div",{style:Ep,children:"Loading inspector…"},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3183,columnNumber:39},this),children:N.jsxDEV(Hd,{nodeId:r,inspectableNodeId:ae||null,selectedNodeKind:Ne.selectedNodeKind,canActivateFocused:pe,focusedUnavailableReason:Ne.focusedUnavailableReason,predictions:P,predictionType:F,onPredictionTypeChange:ee,onRunPredictions:()=>{gt()},isRunningPredictions:U,pathTargetId:te,onPathTargetChange:Q,onTracePath:()=>{St()},pathResult:B,onDownloadProvenance:S=>{qt(S)},onFocusNode:Ye,onMarkdownApplied:Kt,onMarkdownDirtyChange:g},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3184,columnNumber:21},this)},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3183,columnNumber:19},this)},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3182,columnNumber:17},this)},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3181,columnNumber:15},this)},void 0,!1,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3180,columnNumber:40},this):null]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:3123,columnNumber:9},this)]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2887,columnNumber:7},this)]},void 0,!0,{fileName:"/Users/deepjoy/Documents/Alpha Semantic Hub/Alpha Semantic Hub Logo and Icon/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx",lineNumber:2877,columnNumber:10},this)}const cp={background:E.ui.control.primaryBg,color:E.ui.control.primaryText,border:`1px solid ${E.ui.control.primaryBorder}`,borderRadius:12,padding:"9px 12px",cursor:"pointer",fontWeight:700,fontSize:12,display:"inline-flex",alignItems:"center",justifyContent:"center",boxShadow:"inset 0 1px 0 rgba(28, 20, 24,0.07), 0 10px 24px rgba(0,0,0,0.18)"},Qo={...cp,background:E.ui.control.defaultBg,border:`1px solid ${E.ui.control.defaultBorder}`,color:E.ui.control.defaultText,fontWeight:600},up={textAlign:"left",padding:12,background:"rgba(28, 20, 24, 0.035)",border:`1px solid ${E.ui.surface.panelBorder}`,borderRadius:10,cursor:"pointer"},dp={display:"flex",flexDirection:"column",gap:12,padding:14,background:"linear-gradient(135deg, rgba(98, 226, 205, 0.1), rgba(233, 196, 122, 0.045))",border:`1px solid ${E.ui.surface.panelBorder}`,borderRadius:14,boxShadow:"inset 0 1px 0 rgba(28, 20, 24,0.03)"},Ta={...Qo,minHeight:32,padding:"7px 12px",whiteSpace:"nowrap"},pp={display:"flex",alignItems:"center",gap:12,flexWrap:"wrap",border:`1px solid ${E.ui.control.activeBorder}`,background:"linear-gradient(135deg, rgba(98, 226, 205, 0.09), rgba(227, 179, 65, 0.045))",borderRadius:16,padding:"9px 12px",boxShadow:"inset 0 1px 0 rgba(28, 20, 24,0.045)"},hp={display:"flex",alignItems:"center",gap:7,color:E.ui.text.strong,fontSize:12,fontWeight:800,letterSpacing:"0.04em",textTransform:"uppercase"},fp={padding:"2px 7px",borderRadius:999,border:`1px solid ${E.ui.surface.panelBorder}`,color:E.palette.accent.path,background:"rgba(215, 144, 86, 0.1)",fontSize:10},mp={display:"flex",alignItems:"center",gap:10,flexWrap:"wrap",color:E.ui.text.body,fontSize:12},gp={display:"flex",alignItems:"center",gap:8,marginLeft:"auto",color:E.ui.text.muted,fontSize:11},bp={display:"inline-flex",alignItems:"center",gap:4},yp={width:8,height:8,borderRadius:999},vp={display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(160px, 1fr))",gap:8},xp={borderRadius:10,padding:10,background:"rgba(28, 20, 24, 0.03)",border:`1px solid ${E.ui.surface.panelBorder}`},Sp={borderRadius:16,border:`1px solid ${E.ui.surface.panelBorder}`,background:"rgba(28, 20, 24, 0.02)",padding:14},wp={color:E.ui.text.muted,fontSize:12,padding:10},Np={display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(220px, 1fr))",gap:10,maxHeight:186,overflowY:"auto"},Ep={padding:24,color:E.ui.text.muted,fontSize:12},Ap={height:"90px",display:"flex",alignItems:"center",padding:"0 18px",color:E.ui.text.muted,fontSize:12,borderTop:`1px solid ${E.ui.timeline.border}`,background:E.ui.timeline.background},Hp=Object.freeze(Object.defineProperty({__proto__:null,GraphWorkspace:lp},Symbol.toStringTag,{value:"Module"}));export{Hp as G,nd as f,j as g};
|