@cyber-harbour/ui 2.0.21 → 2.0.23

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/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import {a,w,x,u,c,l,z,Pa,mb,ma,Wa}from'./chunk-3I6ZVXTI.mjs';export{qb as Alert,A as AlertIcon,za as AndroidIcon,B as ApiIcon,C as ArrowCircleTopRightIcon,D as ArrowRightIcon,ia as BallsMenu,mb as Box,q as BreakpointProvider,E as BugReportIcon,Na as BurgerMenuIcon,sa as BusIcon,z as Button,F as CalendarIcon,ta as CarIcon,Gb as ChatField,ja as CheckIcon,sb as Checkbox,ka as ChevronDownIcon,G as ChevronLeftIcon,H as ChevronRightIcon,la as ChevronUpIcon,Oa as ClockIcon,I as CloseCircleIcon,J as ClosedLockIcon,zb as ContentLoader,db as ContextMenu,eb as ContextMenuDelimiter,qa as CrossIcon,K as DataSetsIcon,L as DeepSearchIcon,M as DisabledVisibleIcon,N as DocsIcon,O as DownloadIcon,vb as Drawer,xb as DrawerBody,wb as DrawerHeader,P as EditUserIcon,ob as EmptyData,Q as EnableVisibleIcon,R as EnterArrowLeftIcon,jb as FileField,xa as FileIcon,S as FiltersIcon,Ia as FlashIcon,kb as FlexContainer,lb as FlexItem,Ba as FolderAlertIcon,Ja as FolderInfoIcon,_a as Header,$a as HeaderDelimeter,ab as HeaderSection,T as HomepageIcon,Qa as ImageIcon,oa as InfoCircleFilledIcon,U as InfoCircleIcon,ib as Input,ya as IosIcon,rb as Label,nb as Line,tb as LinerProgress,Xa as ListMenu,Ya as ListMenuItem,Za as ListMenuSection,V as MapRadarIcon,ra as MaximizeIcon,Aa as MicrosoftIcon,Pa as MinusIcon,Bb as Modal,Db as ModalBody,Eb as ModalFooter,Cb as ModalHeader,W as MoonIcon,X as OpenLockIcon,Y as OrganizationIcon,Ab as Overlay,cb as Pagination,Ea as PassportIcon,Z as PasswordFinderIcon,Ga as PencilIcon,_ as PhonebookIcon,va as PlaneIcon,ma as PlusIcon,Fa as PointIcon,$ as PrintIcon,aa as Profiler2Icon,ba as ProfilerIcon,Hb as ProgressLoader,Ca as RelationIcon,Da as RelationPointsIcon,Ka as RotateLeftIcon,La as RotateRightIcon,hb as RowActionsMenu,ca as SandBoxIcon,da as SearchIcon,gb as Select,wa as ShipIcon,Sa as Sidebar,Ra as SidebarContext,Ua as SidebarDelimeter,Ta as SidebarItem,Va as SidebarSection,ea as StatisticIcon,fa as SunIcon,ub as Switch,bb as Table,pb as Tag,Fb as TailwindExample,s as ThemeProvider,yb as Tooltip,Wa as Typography,pa as UnfoldIcon,ga as UpRightArrowCircleIcon,Ma as UploadImageIcon,Ha as UserInCircleIcon,na as UsersIcon,ha as VectorIcon,ua as WayIcon,f as convertPaletteToRem,w as createComponent,x as createStyledComponent,p as darkTheme,o as darkThemePx,t as destructSpaceProps,u as generatePropertySpaceStyle,k as getBreakpoint,h as getButtonSizeStyles,g as getButtonStyles,i as getInputStyles,v as getResponsiveProps,j as getTypographyStyles,l as hexToRgba,n as lightTheme,m as lightThemePx,e as propToRem,c as pxToRem,d as remToPx,b as resolveThemeColor,r as useBreakpoint,fb as useContextMenuControl,y as useTheme}from'./chunk-3I6ZVXTI.mjs';import Ht,{styled,useTheme}from'styled-components';export{ServerStyleSheet,StyleSheetManager}from'styled-components';import {jsx,jsxs}from'react/jsx-runtime';import ot,{forwardRef,useState,useRef,useMemo,useCallback,useImperativeHandle,useEffect,useLayoutEffect,memo}from'react';import _t from'lodash.clonedeep';import {scaleOrdinal,schemeCategory10,forceSimulation,forceLink,forceManyBody,forceX,forceY,forceCenter,forceCollide}from'd3';import Ot from'react-content-loader';import yr from'mammoth';import {Prism}from'react-syntax-highlighter';import {darcula}from'react-syntax-highlighter/dist/esm/styles/prism';import Dr from'react-markdown';import Nr from'remark-gfm';var ri=a(({children:u,className:h})=>jsx(Tt,{className:h,children:u}),"PageLayout"),Tt=styled.div`
1
+ import {a,w,x,u,c,l,z,Pa,mb,ma,Wa}from'./chunk-GLKANQJX.mjs';export{qb as Alert,A as AlertIcon,za as AndroidIcon,B as ApiIcon,C as ArrowCircleTopRightIcon,D as ArrowRightIcon,ia as BallsMenu,mb as Box,q as BreakpointProvider,E as BugReportIcon,Na as BurgerMenuIcon,sa as BusIcon,z as Button,F as CalendarIcon,ta as CarIcon,Gb as ChatField,ja as CheckIcon,sb as Checkbox,ka as ChevronDownIcon,G as ChevronLeftIcon,H as ChevronRightIcon,la as ChevronUpIcon,Oa as ClockIcon,I as CloseCircleIcon,J as ClosedLockIcon,zb as ContentLoader,db as ContextMenu,eb as ContextMenuDelimiter,qa as CrossIcon,K as DataSetsIcon,L as DeepSearchIcon,M as DisabledVisibleIcon,N as DocsIcon,O as DownloadIcon,vb as Drawer,xb as DrawerBody,wb as DrawerHeader,P as EditUserIcon,ob as EmptyData,Q as EnableVisibleIcon,R as EnterArrowLeftIcon,jb as FileField,xa as FileIcon,S as FiltersIcon,Ia as FlashIcon,kb as FlexContainer,lb as FlexItem,Ba as FolderAlertIcon,Ja as FolderInfoIcon,_a as Header,$a as HeaderDelimeter,ab as HeaderSection,T as HomepageIcon,Qa as ImageIcon,oa as InfoCircleFilledIcon,U as InfoCircleIcon,ib as Input,ya as IosIcon,rb as Label,nb as Line,tb as LinerProgress,Xa as ListMenu,Ya as ListMenuItem,Za as ListMenuSection,V as MapRadarIcon,ra as MaximizeIcon,Aa as MicrosoftIcon,Pa as MinusIcon,Bb as Modal,Db as ModalBody,Eb as ModalFooter,Cb as ModalHeader,W as MoonIcon,X as OpenLockIcon,Y as OrganizationIcon,Ab as Overlay,cb as Pagination,Ea as PassportIcon,Z as PasswordFinderIcon,Ga as PencilIcon,_ as PhonebookIcon,va as PlaneIcon,ma as PlusIcon,Fa as PointIcon,$ as PrintIcon,aa as Profiler2Icon,ba as ProfilerIcon,Hb as ProgressLoader,Ca as RelationIcon,Da as RelationPointsIcon,Ka as RotateLeftIcon,La as RotateRightIcon,hb as RowActionsMenu,ca as SandBoxIcon,da as SearchIcon,gb as Select,wa as ShipIcon,Sa as Sidebar,Ra as SidebarContext,Ua as SidebarDelimeter,Ta as SidebarItem,Va as SidebarSection,ea as StatisticIcon,fa as SunIcon,ub as Switch,bb as Table,pb as Tag,Fb as TailwindExample,s as ThemeProvider,yb as Tooltip,Wa as Typography,pa as UnfoldIcon,ga as UpRightArrowCircleIcon,Ma as UploadImageIcon,Ha as UserInCircleIcon,na as UsersIcon,ha as VectorIcon,ua as WayIcon,f as convertPaletteToRem,w as createComponent,x as createStyledComponent,p as darkTheme,o as darkThemePx,t as destructSpaceProps,u as generatePropertySpaceStyle,k as getBreakpoint,h as getButtonSizeStyles,g as getButtonStyles,i as getInputStyles,v as getResponsiveProps,j as getTypographyStyles,l as hexToRgba,n as lightTheme,m as lightThemePx,e as propToRem,c as pxToRem,d as remToPx,b as resolveThemeColor,r as useBreakpoint,fb as useContextMenuControl,y as useTheme}from'./chunk-GLKANQJX.mjs';import Ht,{styled,useTheme}from'styled-components';export{ServerStyleSheet,StyleSheetManager}from'styled-components';import {jsx,jsxs,Fragment}from'react/jsx-runtime';import it,{forwardRef,useState,useRef,useMemo,useCallback,useImperativeHandle,useEffect,useLayoutEffect,memo}from'react';import _t from'lodash.clonedeep';import {scaleOrdinal,schemeCategory10,forceSimulation,forceLink,forceManyBody,forceX,forceY,forceCenter,forceCollide}from'd3';import Ot from'react-content-loader';import {renderAsync}from'docx-preview';import {Prism}from'react-syntax-highlighter';import {darcula}from'react-syntax-highlighter/dist/esm/styles/prism';import Tr from'react-markdown';import Lr from'remark-gfm';var ii=a(({children:h,className:u})=>jsx(Tt,{className:u,children:h}),"PageLayout"),Tt=styled.div`
2
2
  display: grid;
3
3
  min-height: 100dvh;
4
4
  position: relative;
@@ -9,11 +9,11 @@ import {a,w,x,u,c,l,z,Pa,mb,ma,Wa}from'./chunk-3I6ZVXTI.mjs';export{qb as Alert,
9
9
  & > header {
10
10
  grid-area: header;
11
11
  }
12
- `;var si=a(({children:u,className:h})=>jsx(Rt,{className:h,children:u}),"PageContent"),Rt=styled.main`
12
+ `;var di=a(({children:h,className:u})=>jsx(Rt,{className:u,children:h}),"PageContent"),Rt=styled.main`
13
13
  grid-area: content;
14
14
  min-width: 0;
15
- background: ${({theme:u})=>u.colors.backgroundBase};
16
- `;var hi=a(({children:u,className:h,top:y=0})=>jsx(zt,{className:h,$top:y,onClick:M=>M.stopPropagation(),children:u}),"SubNav"),zt=styled.div(({theme:u,$top:h})=>`
15
+ background: ${({theme:h})=>h.colors.backgroundBase};
16
+ `;var gi=a(({children:h,className:u,top:m=0})=>jsx(zt,{className:u,$top:m,onClick:M=>M.stopPropagation(),children:h}),"SubNav"),zt=styled.div(({theme:h,$top:u})=>`
17
17
  display: flex;
18
18
  flex-direction: column;
19
19
  justify-content: space-between;
@@ -23,45 +23,45 @@ import {a,w,x,u,c,l,z,Pa,mb,ma,Wa}from'./chunk-3I6ZVXTI.mjs';export{qb as Alert,
23
23
  left: 0;
24
24
  grid-area: sub-nav;
25
25
  min-width: 0;
26
- background: ${u.colors.background};
27
- max-height: calc(100dvh - ${h}px);
26
+ background: ${h.colors.background};
27
+ max-height: calc(100dvh - ${u}px);
28
28
  height: 100%;
29
29
  z-index: 1001;
30
- top: ${h}px;
30
+ top: ${u}px;
31
31
  overflow: auto;
32
- @media (min-width: ${u.breakpoints.xl}px){
32
+ @media (min-width: ${h.breakpoints.xl}px){
33
33
  position: sticky;
34
- border-right: 1px solid ${u.colors.stroke.light};
34
+ border-right: 1px solid ${h.colors.stroke.light};
35
35
  }
36
- `);var Si=w(({maxWidth:u,...h})=>jsx(At,{...h,$maxWidth:u})),At=x(styled.div(({theme:u$1,$maxWidth:h,px:y=20})=>`
37
- ${u(u$1,"padding-inline",y)}
36
+ `);var Di=w(({maxWidth:h,...u})=>jsx(At,{...u,$maxWidth:h})),At=x(styled.div(({theme:h,$maxWidth:u$1,px:m=20})=>`
37
+ ${u(h,"padding-inline",m)}
38
38
  width: 100%;
39
39
  min-width: 0;
40
- max-width: ${typeof h=="number"?c(h,u$1.baseSize):h||"100%"};
40
+ max-width: ${typeof u$1=="number"?c(u$1,h.baseSize):u$1||"100%"};
41
41
  `),{ignoreStyles:["padding-inline"]});var Wt=Ht.div`
42
42
  width: 100%;
43
43
  height: 100%;
44
44
  display: flex;
45
45
  align-items: center;
46
46
  justify-content: center;
47
- `,Yt=a(({width:u=280,height:h=280})=>{let y=useTheme();return jsx(Wt,{children:jsxs(Ot,{foregroundColor:y.contentLoader.foreground,backgroundColor:y.contentLoader.background,width:u,height:h,viewBox:"0 0 280 280",children:[jsx("path",{d:"m55 38-0.97266 0.22852 7.0801 30.092-18.355-20.979-0.75195 0.6582 19.596 22.395 0.43164 1.834 0.97266-0.22852 0.75195-0.6582-0.37695-0.42969 9.625-27.912-0.94531-0.32617-9.4375 27.371-0.10547-0.12109zm8 34-0.78516 0.61914 0.0957 0.12305-12.311 13.258 0.73242 0.67969 12.205-13.145 14.277 18.084 0.78516-0.61914-14.373-18.207 0.10547-0.11328zm15 19-0.48438 0.875 46.992 25.996 8e-3 4e-3 20.506 11.592-28.182 4.5449 0.15998 0.98819 29.418-4.7441 0.25 0.14062-12.555 24.143 0.88672 0.46094 13-25 15 25 26 30v18l-11 18 0.85352 0.52148 9.8008-16.039-4.6543 33.518 0.99023 0.13867 4.7793-34.408 7.2305 16.27 0.91406-0.40625-7.9141-17.807v-17.104l18 12.316 0.56445-0.82617-18.896-12.928-25.855-29.836-14.633-24.387 0.01562-0.02344h23.805v-1h-23.152l13.848-21.234 55.201-28.791-0.45898-0.88476 0.77734 0.62305 11.402-14.25 16.668-11.842-0.58008-0.81641-16.785 11.928-11.486 14.355-55.434 28.912-14.277 21.893-7.7617-27.166-0.96094 0.27344 7.7227 27.031-1.1191 0.17969-21.604-12.211zm140.43-12.912-6.957-17.338-0.92773 0.37305 6.957 17.338zm-6.957-17.338 0.72266 0.69336 16.232-16.896-0.7207-0.69336zm-3.4766 137.25 5 15 0.94922-0.31641-5-15zm-91-63-0.48047-0.87695-31 17 0.48047 0.87695zm-31 17 5 18 0.96289-0.26758-5-18zm0 0-0.70703-0.70703-12.898 12.898-17.881 9.9336 0.48633 0.875 18-10zm5 18-0.64062-0.76758-18 15 0.64062 0.76758z"}),jsx("circle",{cx:"229.92",cy:"63.7318",r:"5",transform:"rotate(173.661 229.92 63.7318)"}),jsx("circle",{cx:"227.711",cy:"43.8541",r:"5",transform:"rotate(173.661 227.711 43.8541)"}),jsx("circle",{cx:"211.478",cy:"60.7499",r:"5",transform:"rotate(173.661 211.478 60.7499)"}),jsx("circle",{cx:"218.434",cy:"78.0877",r:"5",transform:"rotate(173.661 218.434 78.0877)"}),jsx("circle",{cx:"246.705",cy:"51.8054",r:"5",transform:"rotate(173.661 246.705 51.8054)"}),jsx("circle",{cx:"42",cy:"48",r:"5"}),jsx("circle",{cx:"55",cy:"38",r:"5"}),jsx("circle",{cx:"73",cy:"43",r:"5"}),jsx("circle",{cx:"63",cy:"72",r:"5"}),jsx("circle",{cx:"50",cy:"86",r:"5"}),jsx("circle",{cx:"78",cy:"91",r:"5"}),jsx("circle",{cx:"73",cy:"165",r:"5"}),jsx("circle",{cx:"73",cy:"185",r:"5"}),jsx("circle",{cx:"91",cy:"170",r:"5"}),jsx("circle",{cx:"86",cy:"152",r:"5"}),jsx("circle",{cx:"148",cy:"130",r:"5"}),jsx("circle",{cx:"189",cy:"185",r:"5"}),jsx("circle",{cx:"163",cy:"107",r:"5"}),jsx("circle",{cx:"140",cy:"102",r:"5"}),jsx("circle",{cx:"117",cy:"135",r:"5"}),jsx("circle",{cx:"125",cy:"117",r:"5"}),jsx("circle",{cx:"208",cy:"198",r:"5"}),jsx("circle",{cx:"189",cy:"203",r:"5"}),jsx("circle",{cx:"198",cy:"221",r:"5"}),jsx("circle",{cx:"178",cy:"221",r:"5"}),jsx("circle",{cx:"184",cy:"239",r:"5"}),jsx("circle",{cx:"213",cy:"213",r:"5"}),jsx("circle",{cx:"173",cy:"130",r:"5"}),jsx("circle",{cx:"163",cy:"155",r:"5"}),jsx("circle",{cx:"135",cy:"155",r:"5"}),jsx("circle",{cx:"55",cy:"175",r:"5"})]})})},"GraphLoader"),et=Yt;var ye=typeof window<"u"&&window.devicePixelRatio||1;function sr(u){return !u||u.length===0?[]:u.map(h=>{let y=new Image;y.src=h.img;let M=new Image;return M.src=h.hoverImg,{...h,normalImg:y,hoverImg:M}})}a(sr,"prepareButtonImages");var L={fontSize:3,nodeSizeBase:30,nodeAreaFactor:2,textPaddingFactor:.9,gridSpacing:20,dotSize:1,maxZoom:4},cr=forwardRef(({loading:u,width:h,height:y,graphData:M,buttons:D=[],onNodeClick:x,onBackgroundClick:w,onNodeHover:F,onLinkHover:O,onLinkClick:$},H)=>{let P=useTheme(),[Y,ie]=useState(true),t=useRef({transform:{x:0,y:0,k:1},isPanning:false,hoveredNode:null,hoveredLink:null,draggedNode:null,selectedNode:null,hoveredButtonIndex:null,highlightNodes:new Set,highlightLinks:new Set,lastMousePos:{x:0,y:0},mustBeStoppedPropagation:false,mouseStartPos:null,isDragging:false,width:h*ye,height:y*ye,animation:{id:null,buttonIndex:null},spinnerAngle:0}),{nodes:U,links:ee}=useMemo(()=>_t(M),[M]),[X,xt]=useState([]),E=useRef(null),S=useRef(null),ae=useRef(null),kt=scaleOrdinal(schemeCategory10),St=useCallback(()=>{if(!E.current)return false;try{let e=E.current.getContext("2d");return e?(ae.current=e,!0):(console.error("Failed to get 2D context"),!1)}catch(e){return console.error("Error initializing Canvas 2D context:",e),false}},[]),q=useCallback(()=>S.current?S.current.nodes():null,[]),se=useCallback(()=>{if(!S.current)return null;let e=S.current.force("link");return e?e.links():null},[]),Re=useCallback(e=>{e.save(),e.setTransform(1,0,0,1,0,0);let{width:n,height:r}=t.current,o=L.gridSpacing,i=L.dotSize;e.fillStyle=P.graph2D.grid.dotColor;for(let c=o/2;c<=n;c+=o)for(let a=o/2;a<=r;a+=o)e.beginPath(),e.arc(c,a,i,0,2*Math.PI),e.fill();e.restore();},[P.graph2D.grid.dotColor,L.gridSpacing,L.dotSize]),Pt=useCallback((e,n,r)=>{if(!e)return "";if(r.measureText(e).width<=n)return e;let i=e,c="...";for(;r.measureText(i+c).width>n&&i.length>0;)i=i.slice(0,-1);return i+c},[]),we=a(e=>{let r=Math.min(e,L.maxZoom)/L.maxZoom;return Math.max(L.fontSize*r,L.fontSize)},"calculateFontSize"),Ee=useCallback(e=>{let n=se(),r=q();!n||n.length===0||!r||r.length===0||(e.lineWidth=.5,e.globalAlpha=1,n.forEach(o=>{let i=typeof o.source=="object"?o.source:r.find(V=>V.id===o.source),c=typeof o.target=="object"?o.target:r.find(V=>V.id===o.target);if(!i||!c)return;let a={x:i.x||0,y:i.y||0},s={x:c.x||0,y:c.y||0},d=s.x-a.x,f=s.y-a.y,p=Math.sqrt(d*d+f*f),N=d/p,b=f/p,j=L.nodeSizeBase/2,T=L.nodeSizeBase/2,I=4,l={x:a.x+N*j,y:a.y+b*j},v={x:s.x-N*(T+I),y:s.y-b*(T+I)},g={x:s.x-N*(T+1),y:s.y-b*(T+1)},z=t.current.highlightLinks.has(o),R=z?P.graph2D.link.highlighted:P.graph2D.link.normal,B=z?1.5:.5,W=a.x+(s.x-a.x)/2,_=a.y+(s.y-a.y)/2,K=Math.atan2(f,d);if(o.label){let V=t.current.transform.k,J=we(V);e.font=`${J}px Sans-Serif`;let We=e.measureText(o.label).width,Ye=10;e.beginPath(),e.moveTo(l.x,l.y);let Ge=p/2-(We+Ye)/2,qe={x:a.x+N*Ge,y:a.y+b*Ge};e.lineTo(qe.x,qe.y),e.strokeStyle=R,e.lineWidth=B,e.stroke(),e.beginPath();let Ue=p/2+(We+Ye)/2,Ve={x:a.x+N*Ue,y:a.y+b*Ue};e.moveTo(Ve.x,Ve.y),e.lineTo(v.x,v.y),e.strokeStyle=R,e.lineWidth=B,e.stroke();}else e.beginPath(),e.moveTo(l.x,l.y),e.lineTo(v.x,v.y),e.strokeStyle=R,e.lineWidth=B,e.stroke();let ne=2;if(e.save(),e.translate(g.x,g.y),e.rotate(K),e.beginPath(),e.moveTo(0,0),e.lineTo(-4,ne),e.lineTo(-4,0),e.lineTo(-4,-2),e.closePath(),e.fillStyle=R,e.fill(),e.restore(),o.label){let V=t.current.transform.k,J=we(V);e.font=`${J}px Sans-Serif`,e.textAlign="center",e.textBaseline="middle",e.save(),e.translate(W,_),Math.abs(K)>Math.PI/2?e.rotate(K+Math.PI):e.rotate(K),e.fillStyle=z?P.graph2D.link.highlightedTextColor:P.graph2D.link.textColor,e.fillText(o.label,0,0),e.restore();}}));},[L,P.graph2D.link]),je=a((e,n,r,o,i,c,a)=>{try{if(c!=null){let s=i*.8;e.font=`${s}px sans-serif`,e.textBaseline="middle",e.textAlign="left";let d=new Intl.NumberFormat("en",{notation:"compact",maximumFractionDigits:1,minimumFractionDigits:0,compactDisplay:"short"}).format(c),f=e.measureText(d).width,p=i*.3,b=(i+p+f)/2;e.drawImage(n,r-b,o-i/2,i,i),e.fillStyle=a||"#99989C",e.fillText(d,r-b+i+p,o);}else e.drawImage(n,r-i/2,o-i/2,i,i);}catch(s){console.warn("Error rendering icon:",s);}},"drawIconWithOptionalCounter"),ze=useCallback((e,n)=>{if(!X||X.length===0||!e||!e.x||!e.y)return;let{x:r,y:o}=e,i=L.nodeSizeBase*L.nodeAreaFactor/2;n.save();let c=Math.min(X.length,8),a=Math.min(Math.PI*2/c,Math.PI);for(let s=0;s<c;s++){let d=s*a,f=(s+1)*a,p=t.current.hoveredButtonIndex===s;n.beginPath(),n.arc(r,o,i,d,f,false),n.lineTo(r,o),n.closePath(),n.lineWidth=1,n.strokeStyle=P.graph2D?.button?.stroke||"#FFFFFF",n.stroke(),n.fillStyle=p?P.graph2D?.button?.hoverFill||"rgba(255, 255, 255, 0.3)":P.graph2D?.button?.normalFill||"rgba(255, 255, 255, 0.1)",n.fill();let N=i*.2,b=(d+f)/2,j=i-L.nodeSizeBase/2+N,T=r+Math.cos(b)*j,I=o+Math.sin(b)*j,l$1=X[s];if(l$1.loading){let v=N/2,g=N/12;n.save(),n.translate(T,I),n.rotate(t.current.spinnerAngle);for(let z=0;z<12;z++){let R=Math.PI*2*z/12,B=z/12,W=Math.cos(R)*v,_=Math.sin(R)*v;n.beginPath(),n.fillStyle=l(P.graph2D?.button?.spinnerColor,B),n.arc(W,_,g,0,Math.PI*2),n.fill();}n.restore(),t.current.spinnerAngle+=.1,t.current.spinnerAngle>Math.PI*2&&(t.current.spinnerAngle-=Math.PI*2),t.current.animation.id!==null&&(cancelAnimationFrame(t.current.animation.id),t.current.animation.id=null,t.current.animation.buttonIndex=null),t.current.animation.id=requestAnimationFrame(A),t.current.animation.buttonIndex=s;}else {t.current.animation.id&&t.current.animation.buttonIndex===s&&(cancelAnimationFrame(t.current.animation.id),t.current.animation.id=null,t.current.animation.buttonIndex=null);let v=p?l$1.hoverImg:l$1.normalImg,g=l$1.getCount?l$1.getCount(e):null;v.complete?je(n,v,T,I,N,g,P.graph2D?.button?.textColor):v.onload=()=>{ae.current&&je(n,v,T,I,N,g,P.graph2D?.button?.textColor);};}}n.restore();},[X,P.graph2D?.button]),Fe=useCallback(e=>{let n=q();!n||n.length===0||(e.globalAlpha=1,n.forEach(r=>{let{x:o,y:i,color:c,fontColor:a,label:s}=r,d=t.current.highlightNodes.has(r)||r===t.current.hoveredNode||r===t.current.draggedNode,f=r===t.current.selectedNode,p=L.nodeSizeBase,N=L.nodeSizeBase/2;if(d&&!f){let b=L.nodeSizeBase*L.nodeAreaFactor*.75/2;e.beginPath(),e.arc(o,i,b,0,2*Math.PI,false),e.fillStyle=P.graph2D.ring.highlightFill,e.fill();}if(f)if(D&&D.length>0)ze(r,e);else {let b=L.nodeSizeBase*L.nodeAreaFactor/2;e.beginPath(),e.arc(o,i,b,0,2*Math.PI,false),e.fillStyle=P.graph2D.ring.selectionFill||P.graph2D.ring.highlightFill,e.fill();}if(e.beginPath(),e.arc(o,i,N,0,2*Math.PI),e.fillStyle=c||kt(r.group||"0"),e.fill(),s){e.save(),e.translate(o,i);let b=t.current.transform.k,j=we(b),T=p*L.textPaddingFactor;e.font=`${j}px Sans-Serif`,e.textAlign="center",e.textBaseline="middle",e.fillStyle=a||"#000";let I=Pt(s,T,e);e.fillText(I,0,0),e.restore();}}));},[P.graph2D.ring,D,ze]),A=useCallback(()=>{let e=ae.current;e&&(e.clearRect(0,0,t.current.width,t.current.height),Re(e),e.save(),e.setTransform(t.current.transform.k,0,0,t.current.transform.k,t.current.transform.x,t.current.transform.y),Ee(e),Fe(e),e.restore());},[Ee,Fe,Re]),Be=useCallback((e,n=[],r)=>{let o=se()||[],i=q()||[];if(!S.current||!e.length)return;let{width:c,height:a}=t.current,s=r?.smoothAppearance??false,d=r?.transitionDuration??1e3,f=new Set(i.map(l=>l.id)),p=e.filter(l=>!f.has(l.id)),N=new Set(o.map(l=>`${typeof l.source=="object"?l.source.id:l.source}-${typeof l.target=="object"?l.target.id:l.target}`)),b=n.filter(l=>{let v=`${typeof l.source=="object"?l.source.id:l.source}-${typeof l.target=="object"?l.target.id:l.target}`;return !N.has(v)});if(p.length===0&&b.length===0)return;let j=[...i,...p],T=[...o,...b];s&&(p.forEach(l=>{let v=b.filter(g=>{let z=typeof g.source=="object"?g.source.id:g.source,R=typeof g.target=="object"?g.target.id:g.target;return z===l.id&&f.has(R)||R===l.id&&f.has(z)});if(v.length>0){let g=v[0],z=typeof g.source=="object"?g.source.id===l.id?g.target:g.source.id:g.source===l.id?g.target:g.source,R=j.find(B=>B.id===z);if(R&&R.x!==void 0&&R.y!==void 0){let B=30+Math.random()*20,W=Math.random()*Math.PI*2;l.x=R.x+Math.cos(W)*B,l.y=R.y+Math.sin(W)*B,l.vx=0,l.vy=0;}}else {let g=c/2,z=a/2,R=Math.min(c,a)/4,B=Math.random()*Math.PI*2;l.x=g+Math.cos(B)*(R*Math.random()),l.y=z+Math.sin(B)*(R*Math.random()),l.vx=0,l.vy=0;}}),i.forEach(l=>{l.fx=l.x,l.fy=l.y;})),S.current.nodes(j);let I=S.current.force("link");I&&I.links(T),b.forEach(l=>{let v=typeof l.source=="object"?l.source:j.find(z=>z.id===l.source),g=typeof l.target=="object"?l.target:j.find(z=>z.id===l.target);!v||!g||(!v.neighbors&&(v.neighbors=[]),!g.neighbors&&(g.neighbors=[]),v.neighbors.push(g),g.neighbors.push(v),!v.links&&(v.links=[]),!g.links&&(g.links=[]),v.links.push(l),g.links.push(l));}),s?(S.current.alphaTarget(.3),S.current.alpha(.3),S.current.velocityDecay(.7),S.current.restart(),setTimeout(()=>{i.forEach(l=>{l.fx=void 0,l.fy=void 0;}),S.current?.alphaTarget(0),S.current?.alpha(.1),S.current?.velocityDecay(.6);},d)):S.current.alpha(.1).restart(),A();},[U,A]),Ae=useCallback(e=>{let n=q(),r=se();if(!S.current||!e.length||!n||n.length===0||!r||r.length===0)return;let o=new Set(e);if(t.current.selectedNode&&t.current.selectedNode.id!==void 0&&o.has(t.current.selectedNode.id)&&(t.current.selectedNode=null),t.current.hoveredNode&&t.current.hoveredNode.id!==void 0&&o.has(t.current.hoveredNode.id)&&(t.current.hoveredNode=null,t.current.highlightNodes=new Set,t.current.highlightLinks=new Set),t.current.hoveredLink){let s=typeof t.current.hoveredLink.source=="object"?t.current.hoveredLink.source.id:t.current.hoveredLink.source,d=typeof t.current.hoveredLink.target=="object"?t.current.hoveredLink.target.id:t.current.hoveredLink.target;(s!==void 0&&o.has(s)||d!==void 0&&o.has(d))&&(t.current.hoveredLink=null,t.current.highlightNodes=new Set,t.current.highlightLinks=new Set);}t.current.draggedNode&&t.current.draggedNode.id!==void 0&&o.has(t.current.draggedNode.id)&&(t.current.draggedNode=null);let i=n.filter(s=>s.id!==void 0&&!o.has(s.id)),c=r.filter(s=>{let d=typeof s.source=="object"?s.source.id:s.source,f=typeof s.target=="object"?s.target.id:s.target;return d!==void 0&&!o.has(d)&&f!==void 0&&!o.has(f)});i.forEach(s=>{s.neighbors=[],s.links=[];}),c.forEach(s=>{let d=typeof s.source=="object"?s.source:i.find(p=>p.id===s.source),f=typeof s.target=="object"?s.target:i.find(p=>p.id===s.target);!d||!f||(d.neighbors=d.neighbors||[],f.neighbors=f.neighbors||[],d.neighbors.push(f),f.neighbors.push(d),d.links=d.links||[],f.links=f.links||[],d.links.push(s),f.links.push(s));}),S.current.nodes(i);let a=S.current.force("link");a&&a.links(c),A();},[A]),ce=useCallback((e=0,n=20)=>{let r=q();if(!ae.current||!E.current||!r||!r.length)return;let i=1/0,c=1/0,a$1=-1/0,s=-1/0;if(r.forEach(d=>{if(d.x===void 0||d.y===void 0)return;let f=d.x,p=d.y;i=Math.min(i,f),c=Math.min(c,p),a$1=Math.max(a$1,f),s=Math.max(s,p);}),isFinite(i)&&isFinite(a$1)&&isFinite(c)&&isFinite(s)){let{width:d,height:f}=t.current;i-=n,c-=n,a$1+=n,s+=n;let p=a$1-i,N=s-c,b=p>0?d/p:1,j=N>0?f/N:1,T=Math.min(b,j,10),I=i+p/2,l=c+N/2,v={k:T,x:d/2-I*T,y:f/2-l*T};if(e>0){let g={...t.current.transform},z=Date.now(),R=a(()=>{let B=Math.min(1,(Date.now()-z)/e),W=B===1?1:1-Math.pow(1-B,3),_={k:g.k+(v.k-g.k)*W,x:g.x+(v.x-g.x)*W,y:g.y+(v.y-g.y)*W};t.current.transform=_,A(),B<1&&requestAnimationFrame(R);},"animateZoom");requestAnimationFrame(R);}else t.current.transform=v,A();}},[]),le=useCallback((e,n)=>{let r=q();if(!r||r.length===0)return null;let o=L.nodeSizeBase/2,i=typeof window<"u"&&window.devicePixelRatio||1,c=(e*i-t.current.transform.x)/t.current.transform.k,a=(n*i-t.current.transform.y)/t.current.transform.k;return r.find(s=>{let d=(s.x||0)-c,f=(s.y||0)-a;return Math.sqrt(d*d+f*f)<=o})||null},[]),de=useCallback((e,n)=>{let r=se(),o=q();if(!r||r.length===0||!o||o.length===0)return null;let i=typeof window<"u"&&window.devicePixelRatio||1,c=(e*i-t.current.transform.x)/t.current.transform.k,a=(n*i-t.current.transform.y)/t.current.transform.k,s=5;return r.find(d=>{let f=typeof d.source=="object"?d.source:o.find(J=>J.id===d.source),p=typeof d.target=="object"?d.target:o.find(J=>J.id===d.target);if(!f||!p)return false;let N=f.x||0,b=f.y||0,j=p.x||0,T=p.y||0,I=c-N,l=a-b,v=j-N,g=T-b,z=I*v+l*g,R=v*v+g*g;if(R===0)return false;let B=z/R;B=Math.max(0,Math.min(1,B));let W=N+B*v,_=b+B*g,K=c-W,ne=a-_;return Math.sqrt(K*K+ne*ne)<=s})||null},[]),$e=useCallback((e,n,r,o,i,c,a)=>{let s=e-r,d=n-o,f=Math.sqrt(s*s+d*d),p=Math.atan2(d,s);p<0&&(p+=2*Math.PI);let j=f>=i*.5&&f<=i*1,T=false;return c===Math.PI&&a===Math.PI*2?T=p>=Math.PI&&p<=Math.PI*2:c===0&&a===Math.PI?T=p>=0&&p<=Math.PI:T=c<=a&&p>=c&&p<=a||c>a&&(p>=c||p<=a),j&&T},[]),be=useCallback(e=>{if(e===t.current.hoveredNode)return;let n=new Set,r=new Set;e&&(n.add(e),e.neighbors&&e.neighbors.forEach(o=>n.add(o)),e.links&&e.links.forEach(o=>r.add(o))),t.current.hoveredNode=e,F&&F(e),t.current.highlightNodes=n,t.current.highlightLinks=r;},[F]),xe=useCallback(e=>{if(e===t.current.hoveredLink)return;let n=new Set,r=new Set;if(e){r.add(e);let o=q();if(o){let i=typeof e.source=="object"?e.source:o.find(a=>a.id===e.source),c=typeof e.target=="object"?e.target:o.find(a=>a.id===e.target);i&&n.add(i),c&&n.add(c);}}t.current.hoveredLink=e,O&&O(e),t.current.highlightNodes=n,t.current.highlightLinks=r;},[O,q]),Oe=useCallback(e=>{$&&$(e);},[$]),He=useCallback(e=>{t.current.selectedNode=e,x&&x(e);},[x]),Xe=useCallback(()=>{t.current.selectedNode=null,w&&w();},[w]),ke=useCallback(e=>{if(!E.current||!S.current)return;let n=E.current.getBoundingClientRect(),r=e.clientX-n.left,o=e.clientY-n.top;t.current.mouseStartPos={x:r,y:o},t.current.isDragging=false;let i=le(r,o);i?(t.current.draggedNode=i,i.fx=i.x,i.fy=i.y):(t.current.isPanning=true,t.current.lastMousePos={x:r,y:o});},[le]),ue=useCallback((e,n)=>{let r=null;if(E.current&&t.current&&X.length>0){let o=L.nodeSizeBase*L.nodeAreaFactor/2,i=E.current.getBoundingClientRect(),c=E.current.width/i.width,a=E.current.height/i.height,s=e*c,d=n*a,f=(s-t.current.transform.x)/t.current.transform.k,p=(d-t.current.transform.y)/t.current.transform.k,N=t.current.selectedNode?.x||0,b=t.current.selectedNode?.y||0,j=Math.min(X.length,8),T=Math.min(Math.PI*2/j,Math.PI);for(let I=0;I<j;I++){let l=I*T,v=(I+1)*T;if($e(f,p,N,b,o,l,v)){r=I;break}}}return r},[X]),Se=useCallback(e=>{if(!E.current)return;let n=E.current.getBoundingClientRect(),r=e.clientX-n.left,o=e.clientY-n.top;if(t.current.draggedNode&&t.current.mouseStartPos&&S.current){let a=t.current.mouseStartPos.x,s=t.current.mouseStartPos.y,d=r-a,f=o-s;Math.sqrt(d*d+f*f)>3&&(t.current.isDragging=true,S.current.alphaTarget()===0&&S.current.alphaTarget(0).restart());let b=typeof window<"u"&&window.devicePixelRatio||1,j=(r*b-t.current.transform.x)/t.current.transform.k,T=(o*b-t.current.transform.y)/t.current.transform.k;t.current.draggedNode.fx=j,t.current.draggedNode.fy=T;return}if(t.current.isPanning&&t.current.mouseStartPos){let a=r-t.current.lastMousePos.x,s=o-t.current.lastMousePos.y,d=t.current.mouseStartPos.x,f=t.current.mouseStartPos.y;Math.sqrt(Math.pow(r-d,2)+Math.pow(o-f,2))>3&&(t.current.isDragging=true),t.current.transform={...t.current.transform,x:t.current.transform.x+a,y:t.current.transform.y+s},t.current.lastMousePos={x:r,y:o},A();return}let i,c;if(t.current.selectedNode&&E.current&&X.length>0){let a=ue(r,o);a!==null&&(c=t.current.selectedNode),a!==t.current.hoveredButtonIndex&&(i=true),t.current.hoveredButtonIndex=a;}else t.current.hoveredButtonIndex!==null&&(t.current.hoveredButtonIndex=null);if(!c&&(c=le(r,o),!c)){let a=de(r,o),s=a!==t.current.hoveredLink;if(a&&t.current.hoveredNode&&be(null),xe(a),E.current&&(E.current.style.cursor=a?"pointer":"default"),s){A();return}}c&&t.current.hoveredLink&&xe(null),c!==t.current.hoveredNode&&(i=true),be(c),E.current&&(E.current.style.cursor=c?"pointer":"default"),i&&A();},[X,le,de,be,xe,A,$e,ue]),Mt=useCallback(e=>{t.current.mustBeStoppedPropagation&&(e.stopPropagation(),e.preventDefault()),t.current.mustBeStoppedPropagation=false;},[]),he=useCallback(e=>{let n=t.current.isDragging;if(n&&(t.current.mustBeStoppedPropagation=true),!n&&t.current.mouseStartPos){let r=E.current?.getBoundingClientRect();if(r){let o=e.clientX-r.left,i=e.clientY-r.top;X.length>0&&t.current.hoveredButtonIndex===null&&(t.current.hoveredButtonIndex=ue(o,i));let c=false;if(t.current.selectedNode&&t.current.hoveredButtonIndex!==null&&D[t.current.hoveredButtonIndex]){let a=D[t.current.hoveredButtonIndex];a&&a.onClick&&(a.onClick(t.current.selectedNode),c=true,t.current.hoveredButtonIndex=null);}if(!c&&t.current.draggedNode)He(t.current.draggedNode);else if(!c&&!t.current.draggedNode){let a=de(o,i);a?Oe(a):Xe();}}}if(t.current.draggedNode&&S.current){if(n){S.current.alphaTarget(0);let r=.05,o=.04,i=.6;S.current.alpha(r).alphaDecay(o),S.current.velocityDecay(i);}else S.current.alphaTarget(0);t.current.draggedNode.fx=void 0,t.current.draggedNode.fy=void 0,t.current.draggedNode=null;}t.current.isDragging=false,t.current.mouseStartPos=null,t.current.isPanning&&(t.current.isPanning=false),A();},[D,A,He,Xe,de,Oe,ue,X]),Pe=useCallback(e=>{if(e.stopPropagation(),e.preventDefault(),!E.current)return;let n=E.current.getBoundingClientRect(),r=e.clientX-n.left,o=e.clientY-n.top,c=-e.deltaY>0?1.1:1/1.1,a=t.current.transform,s=a.k*c;if(s<.01||s>10)return;let d=a.k*c,f=r-(r-a.x)*c,p=o-(o-a.y)*c;t.current.transform={k:d,x:f,y:p},A();},[A]),Me=a((e,n)=>{let r=e.touches[0];if(r){let o={clientX:r.clientX,clientY:r.clientY};n(o);}},"convertTouchToMouseEvent"),Dt=useCallback(e=>{Me(e,ke);},[ke]),De=useCallback(e=>{t.current.mustBeStoppedPropagation&&(e.preventDefault(),e.stopPropagation()),t.current.mustBeStoppedPropagation=false,Me(e,he);},[he]),Nt=useCallback(e=>{Me(e,Se);},[Se]);return useImperativeHandle(H,()=>({zoomToFit:ce,addNodes:Be,removeNodes:Ae}),[ce,Be,Ae]),useEffect(()=>{let e=E.current,{width:n,height:r}=t.current;if(!e)return;St(),ie(true);let o=n/2,i=r/2,c=L.nodeSizeBase,a=c/2,s=c*2.5;S.current&&S.current.stop();let d=S.current=forceSimulation(U).force("link",forceLink(ee).id(f=>f.id).distance(s).strength(.9)).force("charge",forceManyBody().strength(-c/10*200).theta(.5).distanceMin(c*2)).force("x",forceX().strength(.03)).force("y",forceY().strength(.03)).force("center",forceCenter(o,i).strength(.05)).force("collide",forceCollide().radius(a*2).iterations(2).strength(1)).velocityDecay(.6);return ()=>{d.stop();}},[U,ee]),useLayoutEffect(()=>{let e=E.current;e&&(t.current.width=h*ye,t.current.height=y*ye,e.width=t.current.width,e.height=t.current.height);},[h,y]),useEffect(()=>{if(S.current){let e=S.current;e.on("tick",()=>{A();}),e.on("end",()=>{Y&&(ce(0,20),setTimeout(()=>{ie(false);},200));});}Y||A();},[U,ee,Y,A,ce]),useEffect(()=>{!U||!ee||ee.forEach(e=>{let n=typeof e.source=="object"?e.source:U.find(o=>o.id===e.source),r=typeof e.target=="object"?e.target:U.find(o=>o.id===e.target);!n||!r||(!n.neighbors&&(n.neighbors=[]),!r.neighbors&&(r.neighbors=[]),n.neighbors.push(r),r.neighbors.push(n),!n.links&&(n.links=[]),!r.links&&(r.links=[]),n.links.push(e),r.links.push(e));});},[U,ee]),useEffect(()=>{D&&D.length>0&&xt(sr(D));},[D]),useEffect(()=>{let e=E.current;if(!(!e||typeof window>"u"))return e.addEventListener("wheel",Pe,{passive:false}),e.addEventListener("touchend",De,{passive:false}),()=>{e.removeEventListener("wheel",Pe),e.removeEventListener("touchend",De);}},[Pe,De]),jsxs(lr,{children:[(u||Y)&&jsx(et,{width:h,height:y}),jsx(dr,{ref:E,style:{width:h,height:y,display:u||Y?"none":"block"},onMouseDown:ke,onMouseMove:Se,onMouseUp:he,onMouseLeave:he,onClick:Mt,onTouchStart:Dt,onTouchMove:Nt})]})}),lr=styled.div`
47
+ `,Yt=a(({width:h=280,height:u=280})=>{let m=useTheme();return jsx(Wt,{children:jsxs(Ot,{foregroundColor:m.contentLoader.foreground,backgroundColor:m.contentLoader.background,width:h,height:u,viewBox:"0 0 280 280",children:[jsx("path",{d:"m55 38-0.97266 0.22852 7.0801 30.092-18.355-20.979-0.75195 0.6582 19.596 22.395 0.43164 1.834 0.97266-0.22852 0.75195-0.6582-0.37695-0.42969 9.625-27.912-0.94531-0.32617-9.4375 27.371-0.10547-0.12109zm8 34-0.78516 0.61914 0.0957 0.12305-12.311 13.258 0.73242 0.67969 12.205-13.145 14.277 18.084 0.78516-0.61914-14.373-18.207 0.10547-0.11328zm15 19-0.48438 0.875 46.992 25.996 8e-3 4e-3 20.506 11.592-28.182 4.5449 0.15998 0.98819 29.418-4.7441 0.25 0.14062-12.555 24.143 0.88672 0.46094 13-25 15 25 26 30v18l-11 18 0.85352 0.52148 9.8008-16.039-4.6543 33.518 0.99023 0.13867 4.7793-34.408 7.2305 16.27 0.91406-0.40625-7.9141-17.807v-17.104l18 12.316 0.56445-0.82617-18.896-12.928-25.855-29.836-14.633-24.387 0.01562-0.02344h23.805v-1h-23.152l13.848-21.234 55.201-28.791-0.45898-0.88476 0.77734 0.62305 11.402-14.25 16.668-11.842-0.58008-0.81641-16.785 11.928-11.486 14.355-55.434 28.912-14.277 21.893-7.7617-27.166-0.96094 0.27344 7.7227 27.031-1.1191 0.17969-21.604-12.211zm140.43-12.912-6.957-17.338-0.92773 0.37305 6.957 17.338zm-6.957-17.338 0.72266 0.69336 16.232-16.896-0.7207-0.69336zm-3.4766 137.25 5 15 0.94922-0.31641-5-15zm-91-63-0.48047-0.87695-31 17 0.48047 0.87695zm-31 17 5 18 0.96289-0.26758-5-18zm0 0-0.70703-0.70703-12.898 12.898-17.881 9.9336 0.48633 0.875 18-10zm5 18-0.64062-0.76758-18 15 0.64062 0.76758z"}),jsx("circle",{cx:"229.92",cy:"63.7318",r:"5",transform:"rotate(173.661 229.92 63.7318)"}),jsx("circle",{cx:"227.711",cy:"43.8541",r:"5",transform:"rotate(173.661 227.711 43.8541)"}),jsx("circle",{cx:"211.478",cy:"60.7499",r:"5",transform:"rotate(173.661 211.478 60.7499)"}),jsx("circle",{cx:"218.434",cy:"78.0877",r:"5",transform:"rotate(173.661 218.434 78.0877)"}),jsx("circle",{cx:"246.705",cy:"51.8054",r:"5",transform:"rotate(173.661 246.705 51.8054)"}),jsx("circle",{cx:"42",cy:"48",r:"5"}),jsx("circle",{cx:"55",cy:"38",r:"5"}),jsx("circle",{cx:"73",cy:"43",r:"5"}),jsx("circle",{cx:"63",cy:"72",r:"5"}),jsx("circle",{cx:"50",cy:"86",r:"5"}),jsx("circle",{cx:"78",cy:"91",r:"5"}),jsx("circle",{cx:"73",cy:"165",r:"5"}),jsx("circle",{cx:"73",cy:"185",r:"5"}),jsx("circle",{cx:"91",cy:"170",r:"5"}),jsx("circle",{cx:"86",cy:"152",r:"5"}),jsx("circle",{cx:"148",cy:"130",r:"5"}),jsx("circle",{cx:"189",cy:"185",r:"5"}),jsx("circle",{cx:"163",cy:"107",r:"5"}),jsx("circle",{cx:"140",cy:"102",r:"5"}),jsx("circle",{cx:"117",cy:"135",r:"5"}),jsx("circle",{cx:"125",cy:"117",r:"5"}),jsx("circle",{cx:"208",cy:"198",r:"5"}),jsx("circle",{cx:"189",cy:"203",r:"5"}),jsx("circle",{cx:"198",cy:"221",r:"5"}),jsx("circle",{cx:"178",cy:"221",r:"5"}),jsx("circle",{cx:"184",cy:"239",r:"5"}),jsx("circle",{cx:"213",cy:"213",r:"5"}),jsx("circle",{cx:"173",cy:"130",r:"5"}),jsx("circle",{cx:"163",cy:"155",r:"5"}),jsx("circle",{cx:"135",cy:"155",r:"5"}),jsx("circle",{cx:"55",cy:"175",r:"5"})]})})},"GraphLoader"),tt=Yt;var me=typeof window<"u"&&window.devicePixelRatio||1;function sr(h){return !h||h.length===0?[]:h.map(u=>{let m=new Image;m.src=u.img;let M=new Image;return M.src=u.hoverImg,{...u,normalImg:m,hoverImg:M}})}a(sr,"prepareButtonImages");var L={fontSize:3,nodeSizeBase:30,nodeAreaFactor:2,textPaddingFactor:.9,gridSpacing:20,dotSize:1,maxZoom:4},cr=forwardRef(({loading:h,width:u,height:m,graphData:M,buttons:D=[],onNodeClick:k,onBackgroundClick:v,onNodeHover:$,onLinkHover:O,onLinkClick:A},H)=>{let P=useTheme(),[Y,Re]=useState(true),t=useRef({transform:{x:0,y:0,k:1},isPanning:false,hoveredNode:null,hoveredLink:null,draggedNode:null,selectedNode:null,hoveredButtonIndex:null,highlightNodes:new Set,highlightLinks:new Set,lastMousePos:{x:0,y:0},mustBeStoppedPropagation:false,mouseStartPos:null,isDragging:false,width:u*me,height:m*me,animation:{id:null,buttonIndex:null},spinnerAngle:0}),{nodes:U,links:ee}=useMemo(()=>_t(M),[M]),[X,xt]=useState([]),E=useRef(null),S=useRef(null),ie=useRef(null),kt=scaleOrdinal(schemeCategory10),St=useCallback(()=>{if(!E.current)return false;try{let e=E.current.getContext("2d");return e?(ie.current=e,!0):(console.error("Failed to get 2D context"),!1)}catch(e){return console.error("Error initializing Canvas 2D context:",e),false}},[]),q=useCallback(()=>S.current?S.current.nodes():null,[]),ae=useCallback(()=>{if(!S.current)return null;let e=S.current.force("link");return e?e.links():null},[]),Ee=useCallback(e=>{e.save(),e.setTransform(1,0,0,1,0,0);let{width:n,height:r}=t.current,o=L.gridSpacing,i=L.dotSize;e.fillStyle=P.graph2D.grid.dotColor;for(let c=o/2;c<=n;c+=o)for(let a=o/2;a<=r;a+=o)e.beginPath(),e.arc(c,a,i,0,2*Math.PI),e.fill();e.restore();},[P.graph2D.grid.dotColor,L.gridSpacing,L.dotSize]),Pt=useCallback((e,n,r)=>{if(!e)return "";if(r.measureText(e).width<=n)return e;let i=e,c="...";for(;r.measureText(i+c).width>n&&i.length>0;)i=i.slice(0,-1);return i+c},[]),we=a(e=>{let r=Math.min(e,L.maxZoom)/L.maxZoom;return Math.max(L.fontSize*r,L.fontSize)},"calculateFontSize"),je=useCallback(e=>{let n=ae(),r=q();!n||n.length===0||!r||r.length===0||(e.lineWidth=.5,e.globalAlpha=1,n.forEach(o=>{let i=typeof o.source=="object"?o.source:r.find(V=>V.id===o.source),c=typeof o.target=="object"?o.target:r.find(V=>V.id===o.target);if(!i||!c)return;let a={x:i.x||0,y:i.y||0},s={x:c.x||0,y:c.y||0},d=s.x-a.x,f=s.y-a.y,p=Math.sqrt(d*d+f*f),N=d/p,b=f/p,j=L.nodeSizeBase/2,T=L.nodeSizeBase/2,I=4,l={x:a.x+N*j,y:a.y+b*j},w={x:s.x-N*(T+I),y:s.y-b*(T+I)},g={x:s.x-N*(T+1),y:s.y-b*(T+1)},z=t.current.highlightLinks.has(o),R=z?P.graph2D.link.highlighted:P.graph2D.link.normal,F=z?1.5:.5,W=a.x+(s.x-a.x)/2,_=a.y+(s.y-a.y)/2,K=Math.atan2(f,d);if(o.label){let V=t.current.transform.k,J=we(V);e.font=`${J}px Sans-Serif`;let Ye=e.measureText(o.label).width,Ge=10;e.beginPath(),e.moveTo(l.x,l.y);let qe=p/2-(Ye+Ge)/2,Ue={x:a.x+N*qe,y:a.y+b*qe};e.lineTo(Ue.x,Ue.y),e.strokeStyle=R,e.lineWidth=F,e.stroke(),e.beginPath();let Ve=p/2+(Ye+Ge)/2,Ze={x:a.x+N*Ve,y:a.y+b*Ve};e.moveTo(Ze.x,Ze.y),e.lineTo(w.x,w.y),e.strokeStyle=R,e.lineWidth=F,e.stroke();}else e.beginPath(),e.moveTo(l.x,l.y),e.lineTo(w.x,w.y),e.strokeStyle=R,e.lineWidth=F,e.stroke();let ne=2;if(e.save(),e.translate(g.x,g.y),e.rotate(K),e.beginPath(),e.moveTo(0,0),e.lineTo(-4,ne),e.lineTo(-4,0),e.lineTo(-4,-2),e.closePath(),e.fillStyle=R,e.fill(),e.restore(),o.label){let V=t.current.transform.k,J=we(V);e.font=`${J}px Sans-Serif`,e.textAlign="center",e.textBaseline="middle",e.save(),e.translate(W,_),Math.abs(K)>Math.PI/2?e.rotate(K+Math.PI):e.rotate(K),e.fillStyle=z?P.graph2D.link.highlightedTextColor:P.graph2D.link.textColor,e.fillText(o.label,0,0),e.restore();}}));},[L,P.graph2D.link]),ze=a((e,n,r,o,i,c,a)=>{try{if(c!=null){let s=i*.8;e.font=`${s}px sans-serif`,e.textBaseline="middle",e.textAlign="left";let d=new Intl.NumberFormat("en",{notation:"compact",maximumFractionDigits:1,minimumFractionDigits:0,compactDisplay:"short"}).format(c),f=e.measureText(d).width,p=i*.3,b=(i+p+f)/2;e.drawImage(n,r-b,o-i/2,i,i),e.fillStyle=a||"#99989C",e.fillText(d,r-b+i+p,o);}else e.drawImage(n,r-i/2,o-i/2,i,i);}catch(s){console.warn("Error rendering icon:",s);}},"drawIconWithOptionalCounter"),Fe=useCallback((e,n)=>{if(!X||X.length===0||!e||!e.x||!e.y)return;let{x:r,y:o}=e,i=L.nodeSizeBase*L.nodeAreaFactor/2;n.save();let c=Math.min(X.length,8),a=Math.min(Math.PI*2/c,Math.PI);for(let s=0;s<c;s++){let d=s*a,f=(s+1)*a,p=t.current.hoveredButtonIndex===s;n.beginPath(),n.arc(r,o,i,d,f,false),n.lineTo(r,o),n.closePath(),n.lineWidth=1,n.strokeStyle=P.graph2D?.button?.stroke||"#FFFFFF",n.stroke(),n.fillStyle=p?P.graph2D?.button?.hoverFill||"rgba(255, 255, 255, 0.3)":P.graph2D?.button?.normalFill||"rgba(255, 255, 255, 0.1)",n.fill();let N=i*.2,b=(d+f)/2,j=i-L.nodeSizeBase/2+N,T=r+Math.cos(b)*j,I=o+Math.sin(b)*j,l$1=X[s];if(l$1.loading){let w=N/2,g=N/12;n.save(),n.translate(T,I),n.rotate(t.current.spinnerAngle);for(let z=0;z<12;z++){let R=Math.PI*2*z/12,F=z/12,W=Math.cos(R)*w,_=Math.sin(R)*w;n.beginPath(),n.fillStyle=l(P.graph2D?.button?.spinnerColor,F),n.arc(W,_,g,0,Math.PI*2),n.fill();}n.restore(),t.current.spinnerAngle+=.1,t.current.spinnerAngle>Math.PI*2&&(t.current.spinnerAngle-=Math.PI*2),t.current.animation.id!==null&&(cancelAnimationFrame(t.current.animation.id),t.current.animation.id=null,t.current.animation.buttonIndex=null),t.current.animation.id=requestAnimationFrame(B),t.current.animation.buttonIndex=s;}else {t.current.animation.id&&t.current.animation.buttonIndex===s&&(cancelAnimationFrame(t.current.animation.id),t.current.animation.id=null,t.current.animation.buttonIndex=null);let w=p?l$1.hoverImg:l$1.normalImg,g=l$1.getCount?l$1.getCount(e):null;w.complete?ze(n,w,T,I,N,g,P.graph2D?.button?.textColor):w.onload=()=>{ie.current&&ze(n,w,T,I,N,g,P.graph2D?.button?.textColor);};}}n.restore();},[X,P.graph2D?.button]),Be=useCallback(e=>{let n=q();!n||n.length===0||(e.globalAlpha=1,n.forEach(r=>{let{x:o,y:i,color:c,fontColor:a,label:s}=r,d=t.current.highlightNodes.has(r)||r===t.current.hoveredNode||r===t.current.draggedNode,f=r===t.current.selectedNode,p=L.nodeSizeBase,N=L.nodeSizeBase/2;if(d&&!f){let b=L.nodeSizeBase*L.nodeAreaFactor*.75/2;e.beginPath(),e.arc(o,i,b,0,2*Math.PI,false),e.fillStyle=P.graph2D.ring.highlightFill,e.fill();}if(f)if(D&&D.length>0)Fe(r,e);else {let b=L.nodeSizeBase*L.nodeAreaFactor/2;e.beginPath(),e.arc(o,i,b,0,2*Math.PI,false),e.fillStyle=P.graph2D.ring.selectionFill||P.graph2D.ring.highlightFill,e.fill();}if(e.beginPath(),e.arc(o,i,N,0,2*Math.PI),e.fillStyle=c||kt(r.group||"0"),e.fill(),s){e.save(),e.translate(o,i);let b=t.current.transform.k,j=we(b),T=p*L.textPaddingFactor;e.font=`${j}px Sans-Serif`,e.textAlign="center",e.textBaseline="middle",e.fillStyle=a||"#000";let I=Pt(s,T,e);e.fillText(I,0,0),e.restore();}}));},[P.graph2D.ring,D,Fe]),B=useCallback(()=>{let e=ie.current;e&&(e.clearRect(0,0,t.current.width,t.current.height),Ee(e),e.save(),e.setTransform(t.current.transform.k,0,0,t.current.transform.k,t.current.transform.x,t.current.transform.y),je(e),Be(e),e.restore());},[je,Be,Ee]),Ae=useCallback((e,n=[],r)=>{let o=ae()||[],i=q()||[];if(!S.current||!e.length)return;let{width:c,height:a}=t.current,s=r?.smoothAppearance??false,d=r?.transitionDuration??1e3,f=new Set(i.map(l=>l.id)),p=e.filter(l=>!f.has(l.id)),N=new Set(o.map(l=>`${typeof l.source=="object"?l.source.id:l.source}-${typeof l.target=="object"?l.target.id:l.target}`)),b=n.filter(l=>{let w=`${typeof l.source=="object"?l.source.id:l.source}-${typeof l.target=="object"?l.target.id:l.target}`;return !N.has(w)});if(p.length===0&&b.length===0)return;let j=[...i,...p],T=[...o,...b];s&&(p.forEach(l=>{let w=b.filter(g=>{let z=typeof g.source=="object"?g.source.id:g.source,R=typeof g.target=="object"?g.target.id:g.target;return z===l.id&&f.has(R)||R===l.id&&f.has(z)});if(w.length>0){let g=w[0],z=typeof g.source=="object"?g.source.id===l.id?g.target:g.source.id:g.source===l.id?g.target:g.source,R=j.find(F=>F.id===z);if(R&&R.x!==void 0&&R.y!==void 0){let F=30+Math.random()*20,W=Math.random()*Math.PI*2;l.x=R.x+Math.cos(W)*F,l.y=R.y+Math.sin(W)*F,l.vx=0,l.vy=0;}}else {let g=c/2,z=a/2,R=Math.min(c,a)/4,F=Math.random()*Math.PI*2;l.x=g+Math.cos(F)*(R*Math.random()),l.y=z+Math.sin(F)*(R*Math.random()),l.vx=0,l.vy=0;}}),i.forEach(l=>{l.fx=l.x,l.fy=l.y;})),S.current.nodes(j);let I=S.current.force("link");I&&I.links(T),b.forEach(l=>{let w=typeof l.source=="object"?l.source:j.find(z=>z.id===l.source),g=typeof l.target=="object"?l.target:j.find(z=>z.id===l.target);!w||!g||(!w.neighbors&&(w.neighbors=[]),!g.neighbors&&(g.neighbors=[]),w.neighbors.push(g),g.neighbors.push(w),!w.links&&(w.links=[]),!g.links&&(g.links=[]),w.links.push(l),g.links.push(l));}),s?(S.current.alphaTarget(.3),S.current.alpha(.3),S.current.velocityDecay(.7),S.current.restart(),setTimeout(()=>{i.forEach(l=>{l.fx=void 0,l.fy=void 0;}),S.current?.alphaTarget(0),S.current?.alpha(.1),S.current?.velocityDecay(.6);},d)):S.current.alpha(.1).restart(),B();},[U,B]),$e=useCallback(e=>{let n=q(),r=ae();if(!S.current||!e.length||!n||n.length===0||!r||r.length===0)return;let o=new Set(e);if(t.current.selectedNode&&t.current.selectedNode.id!==void 0&&o.has(t.current.selectedNode.id)&&(t.current.selectedNode=null),t.current.hoveredNode&&t.current.hoveredNode.id!==void 0&&o.has(t.current.hoveredNode.id)&&(t.current.hoveredNode=null,t.current.highlightNodes=new Set,t.current.highlightLinks=new Set),t.current.hoveredLink){let s=typeof t.current.hoveredLink.source=="object"?t.current.hoveredLink.source.id:t.current.hoveredLink.source,d=typeof t.current.hoveredLink.target=="object"?t.current.hoveredLink.target.id:t.current.hoveredLink.target;(s!==void 0&&o.has(s)||d!==void 0&&o.has(d))&&(t.current.hoveredLink=null,t.current.highlightNodes=new Set,t.current.highlightLinks=new Set);}t.current.draggedNode&&t.current.draggedNode.id!==void 0&&o.has(t.current.draggedNode.id)&&(t.current.draggedNode=null);let i=n.filter(s=>s.id!==void 0&&!o.has(s.id)),c=r.filter(s=>{let d=typeof s.source=="object"?s.source.id:s.source,f=typeof s.target=="object"?s.target.id:s.target;return d!==void 0&&!o.has(d)&&f!==void 0&&!o.has(f)});i.forEach(s=>{s.neighbors=[],s.links=[];}),c.forEach(s=>{let d=typeof s.source=="object"?s.source:i.find(p=>p.id===s.source),f=typeof s.target=="object"?s.target:i.find(p=>p.id===s.target);!d||!f||(d.neighbors=d.neighbors||[],f.neighbors=f.neighbors||[],d.neighbors.push(f),f.neighbors.push(d),d.links=d.links||[],f.links=f.links||[],d.links.push(s),f.links.push(s));}),S.current.nodes(i);let a=S.current.force("link");a&&a.links(c),B();},[B]),se=useCallback((e=0,n=20)=>{let r=q();if(!ie.current||!E.current||!r||!r.length)return;let i=1/0,c=1/0,a$1=-1/0,s=-1/0;if(r.forEach(d=>{if(d.x===void 0||d.y===void 0)return;let f=d.x,p=d.y;i=Math.min(i,f),c=Math.min(c,p),a$1=Math.max(a$1,f),s=Math.max(s,p);}),isFinite(i)&&isFinite(a$1)&&isFinite(c)&&isFinite(s)){let{width:d,height:f}=t.current;i-=n,c-=n,a$1+=n,s+=n;let p=a$1-i,N=s-c,b=p>0?d/p:1,j=N>0?f/N:1,T=Math.min(b,j,10),I=i+p/2,l=c+N/2,w={k:T,x:d/2-I*T,y:f/2-l*T};if(e>0){let g={...t.current.transform},z=Date.now(),R=a(()=>{let F=Math.min(1,(Date.now()-z)/e),W=F===1?1:1-Math.pow(1-F,3),_={k:g.k+(w.k-g.k)*W,x:g.x+(w.x-g.x)*W,y:g.y+(w.y-g.y)*W};t.current.transform=_,B(),F<1&&requestAnimationFrame(R);},"animateZoom");requestAnimationFrame(R);}else t.current.transform=w,B();}},[]),ce=useCallback((e,n)=>{let r=q();if(!r||r.length===0)return null;let o=L.nodeSizeBase/2,i=typeof window<"u"&&window.devicePixelRatio||1,c=(e*i-t.current.transform.x)/t.current.transform.k,a=(n*i-t.current.transform.y)/t.current.transform.k;return r.find(s=>{let d=(s.x||0)-c,f=(s.y||0)-a;return Math.sqrt(d*d+f*f)<=o})||null},[]),le=useCallback((e,n)=>{let r=ae(),o=q();if(!r||r.length===0||!o||o.length===0)return null;let i=typeof window<"u"&&window.devicePixelRatio||1,c=(e*i-t.current.transform.x)/t.current.transform.k,a=(n*i-t.current.transform.y)/t.current.transform.k,s=5;return r.find(d=>{let f=typeof d.source=="object"?d.source:o.find(J=>J.id===d.source),p=typeof d.target=="object"?d.target:o.find(J=>J.id===d.target);if(!f||!p)return false;let N=f.x||0,b=f.y||0,j=p.x||0,T=p.y||0,I=c-N,l=a-b,w=j-N,g=T-b,z=I*w+l*g,R=w*w+g*g;if(R===0)return false;let F=z/R;F=Math.max(0,Math.min(1,F));let W=N+F*w,_=b+F*g,K=c-W,ne=a-_;return Math.sqrt(K*K+ne*ne)<=s})||null},[]),Oe=useCallback((e,n,r,o,i,c,a)=>{let s=e-r,d=n-o,f=Math.sqrt(s*s+d*d),p=Math.atan2(d,s);p<0&&(p+=2*Math.PI);let j=f>=i*.5&&f<=i*1,T=false;return c===Math.PI&&a===Math.PI*2?T=p>=Math.PI&&p<=Math.PI*2:c===0&&a===Math.PI?T=p>=0&&p<=Math.PI:T=c<=a&&p>=c&&p<=a||c>a&&(p>=c||p<=a),j&&T},[]),ve=useCallback(e=>{if(e===t.current.hoveredNode)return;let n=new Set,r=new Set;e&&(n.add(e),e.neighbors&&e.neighbors.forEach(o=>n.add(o)),e.links&&e.links.forEach(o=>r.add(o))),t.current.hoveredNode=e,$&&$(e),t.current.highlightNodes=n,t.current.highlightLinks=r;},[$]),be=useCallback(e=>{if(e===t.current.hoveredLink)return;let n=new Set,r=new Set;if(e){r.add(e);let o=q();if(o){let i=typeof e.source=="object"?e.source:o.find(a=>a.id===e.source),c=typeof e.target=="object"?e.target:o.find(a=>a.id===e.target);i&&n.add(i),c&&n.add(c);}}t.current.hoveredLink=e,O&&O(e),t.current.highlightNodes=n,t.current.highlightLinks=r;},[O,q]),He=useCallback(e=>{A&&A(e);},[A]),Xe=useCallback(e=>{t.current.selectedNode=e,k&&k(e);},[k]),We=useCallback(()=>{t.current.selectedNode=null,v&&v();},[v]),xe=useCallback(e=>{if(!E.current||!S.current)return;let n=E.current.getBoundingClientRect(),r=e.clientX-n.left,o=e.clientY-n.top;t.current.mouseStartPos={x:r,y:o},t.current.isDragging=false;let i=ce(r,o);i?(t.current.draggedNode=i,i.fx=i.x,i.fy=i.y):(t.current.isPanning=true,t.current.lastMousePos={x:r,y:o});},[ce]),de=useCallback((e,n)=>{let r=null;if(E.current&&t.current&&X.length>0){let o=L.nodeSizeBase*L.nodeAreaFactor/2,i=E.current.getBoundingClientRect(),c=E.current.width/i.width,a=E.current.height/i.height,s=e*c,d=n*a,f=(s-t.current.transform.x)/t.current.transform.k,p=(d-t.current.transform.y)/t.current.transform.k,N=t.current.selectedNode?.x||0,b=t.current.selectedNode?.y||0,j=Math.min(X.length,8),T=Math.min(Math.PI*2/j,Math.PI);for(let I=0;I<j;I++){let l=I*T,w=(I+1)*T;if(Oe(f,p,N,b,o,l,w)){r=I;break}}}return r},[X]),ke=useCallback(e=>{if(!E.current)return;let n=E.current.getBoundingClientRect(),r=e.clientX-n.left,o=e.clientY-n.top;if(t.current.draggedNode&&t.current.mouseStartPos&&S.current){let a=t.current.mouseStartPos.x,s=t.current.mouseStartPos.y,d=r-a,f=o-s;Math.sqrt(d*d+f*f)>3&&(t.current.isDragging=true,S.current.alphaTarget()===0&&S.current.alphaTarget(0).restart());let b=typeof window<"u"&&window.devicePixelRatio||1,j=(r*b-t.current.transform.x)/t.current.transform.k,T=(o*b-t.current.transform.y)/t.current.transform.k;t.current.draggedNode.fx=j,t.current.draggedNode.fy=T;return}if(t.current.isPanning&&t.current.mouseStartPos){let a=r-t.current.lastMousePos.x,s=o-t.current.lastMousePos.y,d=t.current.mouseStartPos.x,f=t.current.mouseStartPos.y;Math.sqrt(Math.pow(r-d,2)+Math.pow(o-f,2))>3&&(t.current.isDragging=true),t.current.transform={...t.current.transform,x:t.current.transform.x+a,y:t.current.transform.y+s},t.current.lastMousePos={x:r,y:o},B();return}let i,c;if(t.current.selectedNode&&E.current&&X.length>0){let a=de(r,o);a!==null&&(c=t.current.selectedNode),a!==t.current.hoveredButtonIndex&&(i=true),t.current.hoveredButtonIndex=a;}else t.current.hoveredButtonIndex!==null&&(t.current.hoveredButtonIndex=null);if(!c&&(c=ce(r,o),!c)){let a=le(r,o),s=a!==t.current.hoveredLink;if(a&&t.current.hoveredNode&&ve(null),be(a),E.current&&(E.current.style.cursor=a?"pointer":"default"),s){B();return}}c&&t.current.hoveredLink&&be(null),c!==t.current.hoveredNode&&(i=true),ve(c),E.current&&(E.current.style.cursor=c?"pointer":"default"),i&&B();},[X,ce,le,ve,be,B,Oe,de]),Mt=useCallback(e=>{t.current.mustBeStoppedPropagation&&(e.stopPropagation(),e.preventDefault()),t.current.mustBeStoppedPropagation=false;},[]),ue=useCallback(e=>{let n=t.current.isDragging;if(n&&(t.current.mustBeStoppedPropagation=true),!n&&t.current.mouseStartPos){let r=E.current?.getBoundingClientRect();if(r){let o=e.clientX-r.left,i=e.clientY-r.top;X.length>0&&t.current.hoveredButtonIndex===null&&(t.current.hoveredButtonIndex=de(o,i));let c=false;if(t.current.selectedNode&&t.current.hoveredButtonIndex!==null&&D[t.current.hoveredButtonIndex]){let a=D[t.current.hoveredButtonIndex];a&&a.onClick&&(a.onClick(t.current.selectedNode),c=true,t.current.hoveredButtonIndex=null);}if(!c&&t.current.draggedNode)Xe(t.current.draggedNode);else if(!c&&!t.current.draggedNode){let a=le(o,i);a?He(a):We();}}}if(t.current.draggedNode&&S.current){if(n){S.current.alphaTarget(0);let r=.05,o=.04,i=.6;S.current.alpha(r).alphaDecay(o),S.current.velocityDecay(i);}else S.current.alphaTarget(0);t.current.draggedNode.fx=void 0,t.current.draggedNode.fy=void 0,t.current.draggedNode=null;}t.current.isDragging=false,t.current.mouseStartPos=null,t.current.isPanning&&(t.current.isPanning=false),B();},[D,B,Xe,We,le,He,de,X]),Se=useCallback(e=>{if(e.stopPropagation(),e.preventDefault(),!E.current)return;let n=E.current.getBoundingClientRect(),r=e.clientX-n.left,o=e.clientY-n.top,c=-e.deltaY>0?1.1:1/1.1,a=t.current.transform,s=a.k*c;if(s<.01||s>10)return;let d=a.k*c,f=r-(r-a.x)*c,p=o-(o-a.y)*c;t.current.transform={k:d,x:f,y:p},B();},[B]),Pe=a((e,n)=>{let r=e.touches[0];if(r){let o={clientX:r.clientX,clientY:r.clientY};n(o);}},"convertTouchToMouseEvent"),Dt=useCallback(e=>{Pe(e,xe);},[xe]),Me=useCallback(e=>{t.current.mustBeStoppedPropagation&&(e.preventDefault(),e.stopPropagation()),t.current.mustBeStoppedPropagation=false,Pe(e,ue);},[ue]),Nt=useCallback(e=>{Pe(e,ke);},[ke]);return useImperativeHandle(H,()=>({zoomToFit:se,addNodes:Ae,removeNodes:$e}),[se,Ae,$e]),useEffect(()=>{let e=E.current,{width:n,height:r}=t.current;if(!e)return;St(),Re(true);let o=n/2,i=r/2,c=L.nodeSizeBase,a=c/2,s=c*2.5;S.current&&S.current.stop();let d=S.current=forceSimulation(U).force("link",forceLink(ee).id(f=>f.id).distance(s).strength(.9)).force("charge",forceManyBody().strength(-c/10*200).theta(.5).distanceMin(c*2)).force("x",forceX().strength(.03)).force("y",forceY().strength(.03)).force("center",forceCenter(o,i).strength(.05)).force("collide",forceCollide().radius(a*2).iterations(2).strength(1)).velocityDecay(.6);return ()=>{d.stop();}},[U,ee]),useLayoutEffect(()=>{let e=E.current;e&&(t.current.width=u*me,t.current.height=m*me,e.width=t.current.width,e.height=t.current.height);},[u,m]),useEffect(()=>{if(S.current){let e=S.current;e.on("tick",()=>{B();}),e.on("end",()=>{Y&&(se(0,20),setTimeout(()=>{Re(false);},200));});}Y||B();},[U,ee,Y,B,se]),useEffect(()=>{!U||!ee||ee.forEach(e=>{let n=typeof e.source=="object"?e.source:U.find(o=>o.id===e.source),r=typeof e.target=="object"?e.target:U.find(o=>o.id===e.target);!n||!r||(!n.neighbors&&(n.neighbors=[]),!r.neighbors&&(r.neighbors=[]),n.neighbors.push(r),r.neighbors.push(n),!n.links&&(n.links=[]),!r.links&&(r.links=[]),n.links.push(e),r.links.push(e));});},[U,ee]),useEffect(()=>{D&&D.length>0&&xt(sr(D));},[D]),useEffect(()=>{let e=E.current;if(!(!e||typeof window>"u"))return e.addEventListener("wheel",Se,{passive:false}),e.addEventListener("touchend",Me,{passive:false}),()=>{e.removeEventListener("wheel",Se),e.removeEventListener("touchend",Me);}},[Se,Me]),jsxs(lr,{children:[(h||Y)&&jsx(tt,{width:u,height:m}),jsx(dr,{ref:E,style:{width:u,height:m,display:h||Y?"none":"block"},onMouseDown:xe,onMouseMove:ke,onMouseUp:ue,onMouseLeave:ue,onClick:Mt,onTouchStart:Dt,onTouchMove:Nt})]})}),lr=styled.div`
48
48
  display: flex;
49
49
  align-items: center;
50
50
  justify-content: center;
51
51
  width: 100%;
52
52
  min-width: 0;
53
53
  position: relative;
54
- `,dr=styled.canvas``;cr.displayName="Graph2D";var Ji=w(({isActive:u,position:h,top:y=0,left:M=0,right:D,bottom:x,...w})=>jsx(fr,{$isActive:u,$position:h,$top:y,$left:M,$right:D,$bottom:x,...w})),fr=Ht.div(({$isActive:u,$top:h,$left:y,$right:M,$bottom:D,$position:x,theme:w})=>`
55
- ${u?`
56
- position: ${x};
54
+ `,dr=styled.canvas``;cr.displayName="Graph2D";var ta=w(({isActive:h,position:u,top:m=0,left:M=0,right:D,bottom:k,...v})=>jsx(fr,{$isActive:h,$position:u,$top:m,$left:M,$right:D,$bottom:k,...v})),fr=Ht.div(({$isActive:h,$top:u,$left:m,$right:M,$bottom:D,$position:k,theme:v})=>`
55
+ ${h?`
56
+ position: ${k};
57
57
  z-index: 1000;
58
- ${typeof h=="number"?`top: ${c(h,w.baseSize)};`:""}
59
- ${typeof y=="number"?`left: ${c(y,w.baseSize)};`:""}
60
- ${typeof M=="number"?`right: ${c(M,w.baseSize)};`:""}
61
- ${typeof D=="number"?`bottom: ${c(D,w.baseSize)};`:""}
58
+ ${typeof u=="number"?`top: ${c(u,v.baseSize)};`:""}
59
+ ${typeof m=="number"?`left: ${c(m,v.baseSize)};`:""}
60
+ ${typeof M=="number"?`right: ${c(M,v.baseSize)};`:""}
61
+ ${typeof D=="number"?`bottom: ${c(D,v.baseSize)};`:""}
62
62
 
63
63
  `:""}
64
64
 
65
65
  min-width: 0;
66
- `);var at=a(({url:u})=>{let[h,y]=useState(1),[M,D]=useState(),x=ot.useRef(null),w=ot.useRef(null),F=a(()=>{y($=>Math.min($+.25,4));},"handleZoomIn");return jsxs("div",{ref:w,className:"h-full w-full flex flex-col",children:[jsxs("div",{className:"flex justify-center items-stretch p-5.5 gap-1 border-b border-gray-200 relative ",children:[jsx(z,{variant:"outlined","aria-label":"zoom-out",color:"secondary",size:"small",icon:jsx(Pa,{style:{width:20,height:20}}),onClick:a(()=>{y($=>Math.max($-.25,.25));},"handleZoomOut"),disabled:h<=.25,p:5}),jsxs(mb,{py:5,px:8,children:[h*100,"%"]}),jsx(z,{variant:"outlined","aria-label":"zoom-in",size:"small",color:"secondary",icon:jsx(ma,{style:{width:14,height:14}}),onClick:F,disabled:h>=4,p:8})]}),jsx("div",{className:"h-full w-full overflow-auto flex items-center justify-center",children:jsx("img",{src:u,ref:x,alt:"image",className:"block w-auto max-w-none object-contain",style:{transition:"height 0.2s ease-in-out",marginInline:"auto",marginBlock:10,flexShrink:0,...M==="width"&&{width:`calc(${h*100}% - 20px)`},...M==="height"&&{height:`calc(${h*100}% - 20px)`}},onLoad:()=>{if(x.current&&w.current){let $=x.current.width,H=x.current.height,P=$<H?"height":"width";D(P);}}})})]})},"ImageDriver");var ct=a(({url:u})=>jsx("div",{className:"flex flex-col justify-center items-center w-full h-full p-5.5",children:jsx("audio",{controls:true,src:u,className:"w-full"})}),"AudioDriver");var Te=a(({url:u})=>{let[h,y]=useState(null),[M,D]=useState(false),[x,w]=useState(true),[F,O]=useState(null);return useEffect(()=>{D(true);},[]),useEffect(()=>{if(!M)return;a(async()=>{try{let H=await import('./PdfDriver-542Z2NHT.mjs');y(()=>H.PdfDriver),w(!1);}catch(H){console.error("Failed to load PDF driver:",H),O("Failed to load PDF viewer"),w(false);}},"loadPdfDriver")();},[M]),M?x?jsx("div",{className:"flex items-center justify-center h-full w-full",children:jsx("div",{className:"text-gray-500",children:"Loading PDF viewer..."})}):F||!h?jsx("div",{className:"flex items-center justify-center h-full w-full",children:jsx("div",{className:"text-red-500 text-center",children:jsx("p",{children:F||"PDF viewer unavailable"})})}):jsx(h,{url:u}):jsx("div",{className:"flex items-center justify-center h-full w-full",children:jsx("div",{className:"text-gray-500",children:"Loading PDF viewer..."})})},"PdfDriverWrapper");var dt=a(({url:u,extension:h})=>jsxs("a",{href:u,download:`file.${h}`,className:"text-blue-500 underline",children:["Download ",h.toUpperCase()," file"]}),"DownloadDriver");var ht=50,vr=1e4,pt=a(({url:u,buffer:h})=>{let[y,M]=useState(""),[D,x]=useState(null);return useEffect(()=>{a(async()=>{try{let F=h;if(!F&&u&&(F=await(await fetch(u)).arrayBuffer()),!F){x("\u041D\u0435 \u043D\u0430\u0434\u0430\u043D\u043E \u0434\u043B\u044F DOCX \u0444\u0430\u0439\u043B\u0443");return}if(F.byteLength/(1024*1024)>ht){x(`\u0424\u0430\u0439\u043B \u0437\u0430\u043D\u0430\u0434\u0442\u043E \u0432\u0435\u043B\u0438\u043A\u0438\u0439 (> ${ht} \u041C\u0411)`);return}let $=yr.convertToHtml({arrayBuffer:F}),H=new Promise((Y,ie)=>setTimeout(()=>ie(new Error("\u041A\u043E\u043D\u0432\u0435\u0440\u0442\u0430\u0446\u0456\u044F DOCX \u0437\u0430\u0439\u043D\u044F\u043B\u0430 \u043D\u0430\u0434\u0442\u043E \u0431\u0430\u0433\u0430\u0442\u043E \u0447\u0430\u0441\u0443")),vr)),P=await Promise.race([$,H]);M(P.value);}catch(F){x(F?.message||"\u041D\u0435 \u0432\u0434\u0430\u043B\u043E\u0441\u044F \u0432\u0456\u0434\u043A\u0440\u0438\u0442\u0438 DOCX \u0444\u0430\u0439\u043B");}},"fetchAndConvert")();},[u,h]),D?jsx("div",{className:"text-red-500",children:D}):y?jsx("div",{dangerouslySetInnerHTML:{__html:y},className:"w-full h-full overflow-auto p-5"}):null},"DocxDriver");var kr=a(u=>({js:"javascript",jsx:"jsx",ts:"typescript",tsx:"tsx",json:"json",html:"html",css:"css",scss:"scss",py:"python",java:"java",cpp:"cpp",c:"c",cs:"csharp",php:"php",rb:"ruby",go:"go",rs:"rust",swift:"swift",kt:"kotlin",xml:"xml",yaml:"yaml",yml:"yaml",md:"markdown",sql:"sql",sh:"bash",bash:"bash",txt:"text"})[u]||"text","getLanguageFromExtension"),gt=a(({url:u,extension:h})=>{let[y,M]=useState(""),[D,x]=useState(true),[w,F]=useState(null);if(useEffect(()=>{a(async()=>{try{x(!0),F(null);let P=await fetch(u);if(!P.ok)throw new Error(`Failed to load file: ${P.statusText}`);let Y=await P.text();M(Y);}catch(P){F(P instanceof Error?P.message:"Failed to load text content");}finally{x(false);}},"loadTextContent")();},[u]),D)return jsx("div",{className:"flex items-center justify-center p-8",children:jsx("div",{className:"text-gray-500",children:"Loading text content..."})});if(w)return jsx("div",{className:"flex items-center justify-center p-8",children:jsxs("div",{className:"text-red-500",children:["Error: ",w]})});let O=kr(h);return jsx("div",{className:"h-full w-full overflow-auto",children:O!=="text"?jsx(Prism,{className:"min-h-full! m-0! py-0!",language:O,style:darcula,showLineNumbers:true,wrapLines:true,children:y}):jsx("pre",{className:"whitespace-pre-wrap p-4 text-sm font-mono bg-gray-50 min-h-full",children:y})})},"TextDriver");var yt=a(({url:u})=>jsx("div",{className:"flex flex-col justify-center items-center w-full h-full",children:jsx("video",{controls:true,src:u,className:"w-full max-h-full"})}),"VideoDriver");var vt=memo(a(function({extension:h,blob:y,path:M,buffer:D}){console.log("Driver props:",{extension:h,blob:y,path:M,buffer:D});let x=h.toLocaleLowerCase().trim(),w;if(M?w=M:y&&(w=URL.createObjectURL(y)),w){if(["jpeg","jpg","png","gif","bmp","webp"].includes(x))return jsx(at,{url:w});if(["mp3","wav","ogg","flac"].includes(x))return jsx(ct,{url:w});if(["mp4","webm"].includes(x))return jsx(yt,{url:w});if(h==="pdf")return jsx(Te,{url:w});if(["xlsx","pptx"].includes(x))return jsx(dt,{url:w,extension:x});if(["txt","js","jsx","ts","tsx","json","html","css","scss","py","java","cpp","c","cs","php","rb","go","rs","swift","kt","xml","yaml","yml","md","sql","sh","bash"].includes(x))return jsx(gt,{url:w,extension:x})}return x==="docx"?jsx(pt,{url:w,buffer:D}):jsx("div",{className:"h-full flex flex-col justify-center items-center",children:jsx(mb,{children:jsx(Wa,{variant:"h2",color:"text.light",weight:500,className:"text-center",children:"Sorry, this file type isn\u2019t supported yet."})})})},"Driver"));var Za=a(u=>jsx("div",{className:"h-full w-full",children:jsx(vt,{...u})}),"FileViewer");var ss=a(({text:u,speed:h=50,onDone:y,markdown:M=false,markdownComponents:D={},className:x,...w})=>{let[F,O]=useState("");return useEffect(()=>{let $=0,H=setInterval(()=>{let P=u.charAt($);O(Y=>Y+P),$++,$>=u.length&&(clearInterval(H),y?.());},h);return ()=>clearInterval(H)},[u,h,y]),useEffect(()=>{O("");},[u]),M?jsx("div",{className:x,children:jsx(Dr,{remarkPlugins:[Nr],components:D,...w,children:F})}):jsx(Wa,{className:x,...w,children:F})},"Typewriter");export{Si as Container,Za as FileViewer,Ji as FullscreenCard,cr as Graph2D,si as PageContent,ri as PageLayout,zt as Styled,Tt as StyledContainer,Rt as StyledMain,hi as SubNav,ss as Typewriter};//# sourceMappingURL=index.mjs.map
66
+ `);var st=a(({url:h})=>{let[u,m]=useState(1),[M,D]=useState(),k=it.useRef(null),v=it.useRef(null),$=a(()=>{m(A=>Math.min(A+.25,4));},"handleZoomIn");return jsxs("div",{ref:v,className:"h-full w-full flex flex-col",children:[jsxs("div",{className:"flex justify-center items-stretch p-5.5 gap-1 border-b border-gray-200 relative ",children:[jsx(z,{variant:"outlined","aria-label":"zoom-out",color:"secondary",size:"small",icon:jsx(Pa,{style:{width:20,height:20}}),onClick:a(()=>{m(A=>Math.max(A-.25,.25));},"handleZoomOut"),disabled:u<=.25,p:5}),jsxs(mb,{py:5,px:8,children:[u*100,"%"]}),jsx(z,{variant:"outlined","aria-label":"zoom-in",size:"small",color:"secondary",icon:jsx(ma,{style:{width:14,height:14}}),onClick:$,disabled:u>=4,p:8})]}),jsx("div",{className:"h-full w-full overflow-auto flex items-center justify-center",children:jsx("img",{src:h,ref:k,alt:"image",className:"block w-auto max-w-none object-contain",style:{transition:"height 0.2s ease-in-out",marginInline:"auto",marginBlock:10,flexShrink:0,...M==="width"&&{width:`calc(${u*100}% - 20px)`},...M==="height"&&{height:`calc(${u*100}% - 20px)`}},onLoad:()=>{if(k.current&&v.current){let A=k.current.width,H=k.current.height,P=A<H?"height":"width";D(P);}}})})]})},"ImageDriver");var lt=a(({url:h})=>jsx("div",{className:"flex flex-col justify-center items-center w-full h-full p-5.5",children:jsx("audio",{controls:true,src:h,className:"w-full"})}),"AudioDriver");var Ce=a(({url:h})=>{let[u,m]=useState(null),[M,D]=useState(false),[k,v]=useState(true),[$,O]=useState(null);return useEffect(()=>{D(true);},[]),useEffect(()=>{if(!M)return;a(async()=>{try{let H=await import('./PdfDriver-5PZGCQXG.mjs');m(()=>H.PdfDriver),v(!1);}catch(H){console.error("Failed to load PDF driver:",H),O("Failed to load PDF viewer"),v(false);}},"loadPdfDriver")();},[M]),M?k?jsx("div",{className:"flex items-center justify-center h-full w-full",children:jsx("div",{className:"text-gray-500",children:"Loading PDF viewer..."})}):$||!u?jsx("div",{className:"flex items-center justify-center h-full w-full",children:jsx("div",{className:"text-red-500 text-center",children:jsx("p",{children:$||"PDF viewer unavailable"})})}):jsx(u,{url:h}):jsx("div",{className:"flex items-center justify-center h-full w-full",children:jsx("div",{className:"text-gray-500",children:"Loading PDF viewer..."})})},"PdfDriverWrapper");var ut=a(({url:h,extension:u})=>jsxs("a",{href:h,download:`file.${u}`,className:"text-blue-500 underline",children:["Download ",u.toUpperCase()," file"]}),"DownloadDriver");var ft=50,vr=1e4,pt=a(({url:h,blob:u})=>{let m=useRef(null),[M,D]=useState(null),[k,v]=useState(true);return useEffect(()=>{a(async()=>{if(m.current)try{if(v(!0),D(null),!u&&h&&(u=await(await fetch(h)).blob()),!u){D("\u041D\u0435 \u043D\u0430\u0434\u0430\u043D\u043E \u0434\u043B\u044F DOCX \u0444\u0430\u0439\u043B\u0443");return}if(u.size/(1024*1024)>ft){D(`\u0424\u0430\u0439\u043B \u0437\u0430\u043D\u0430\u0434\u0442\u043E \u0432\u0435\u043B\u0438\u043A\u0438\u0439 (> ${ft} \u041C\u0411)`);return}m.current.innerHTML="";let A=renderAsync(u,m.current,void 0,{debug:!0,experimental:!0,hideWrapperOnPrint:!0}),H=new Promise((P,Y)=>setTimeout(()=>Y(new Error("\u0420\u0435\u043D\u0434\u0435\u0440\u0438\u043D\u0433 DOCX \u0437\u0430\u0439\u043D\u044F\u0432 \u043D\u0430\u0434\u0442\u043E \u0431\u0430\u0433\u0430\u0442\u043E \u0447\u0430\u0441\u0443")),vr));await Promise.race([A,H]),v(!1);}catch(O){D(O?.message||"\u041D\u0435 \u0432\u0434\u0430\u043B\u043E\u0441\u044F \u0432\u0456\u0434\u043A\u0440\u0438\u0442\u0438 DOCX \u0444\u0430\u0439\u043B"),v(false);}},"renderDocument")();},[h,u]),jsxs(Fragment,{children:[!!M&&!k&&jsx("div",{className:"text-red-500 p-5",children:M}),k&&jsx("div",{className:"flex items-center justify-center p-5",children:"\u0417\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0435\u043D\u043D\u044F..."}),jsx("div",{ref:m,className:"w-full h-full overflow-auto"})]})},"DocxDriver");var Mr=a(h=>({js:"javascript",jsx:"jsx",ts:"typescript",tsx:"tsx",json:"json",html:"html",css:"css",scss:"scss",py:"python",java:"java",cpp:"cpp",c:"c",cs:"csharp",php:"php",rb:"ruby",go:"go",rs:"rust",swift:"swift",kt:"kotlin",xml:"xml",yaml:"yaml",yml:"yaml",md:"markdown",sql:"sql",sh:"bash",bash:"bash",txt:"text"})[h]||"text","getLanguageFromExtension"),gt=a(({url:h,extension:u})=>{let[m,M]=useState(""),[D,k]=useState(true),[v,$]=useState(null);if(useEffect(()=>{a(async()=>{try{k(!0),$(null);let P=await fetch(h);if(!P.ok)throw new Error(`Failed to load file: ${P.statusText}`);let Y=await P.text();M(Y);}catch(P){$(P instanceof Error?P.message:"Failed to load text content");}finally{k(false);}},"loadTextContent")();},[h]),D)return jsx("div",{className:"flex items-center justify-center p-8",children:jsx("div",{className:"text-gray-500",children:"Loading text content..."})});if(v)return jsx("div",{className:"flex items-center justify-center p-8",children:jsxs("div",{className:"text-red-500",children:["Error: ",v]})});let O=Mr(u);return jsx("div",{className:"h-full w-full overflow-auto",children:O!=="text"?jsx(Prism,{className:"min-h-full! m-0! py-0!",language:O,style:darcula,showLineNumbers:true,wrapLines:true,children:m}):jsx("pre",{className:"whitespace-pre-wrap p-4 text-sm font-mono bg-gray-50 min-h-full",children:m})})},"TextDriver");var yt=a(({url:h})=>jsx("div",{className:"flex flex-col justify-center items-center w-full h-full",children:jsx("video",{controls:true,src:h,className:"w-full max-h-full"})}),"VideoDriver");var wt=memo(a(function({extension:u,blob:m,path:M,buffer:D}){console.log("Driver props:",{extension:u,blob:m,path:M,buffer:D});let k=u.toLocaleLowerCase().trim(),v;if(M?v=M:m&&(v=URL.createObjectURL(m)),v){if(["jpeg","jpg","png","gif","bmp","webp"].includes(k))return jsx(st,{url:v});if(["mp3","wav","ogg","flac"].includes(k))return jsx(lt,{url:v});if(["mp4","webm"].includes(k))return jsx(yt,{url:v});if(u==="pdf")return jsx(Ce,{url:v});if(["xlsx","pptx"].includes(k))return jsx(ut,{url:v,extension:k});if(["txt","js","jsx","ts","tsx","json","html","css","scss","py","java","cpp","c","cs","php","rb","go","rs","swift","kt","xml","yaml","yml","md","sql","sh","bash"].includes(k))return jsx(gt,{url:v,extension:k})}return k==="docx"?jsx(pt,{url:v,blob:m}):jsx("div",{className:"h-full flex flex-col justify-center items-center",children:jsx(mb,{children:jsx(Wa,{variant:"h2",color:"text.light",weight:500,className:"text-center",children:"Sorry, this file type isn\u2019t supported yet."})})})},"Driver"));var Ja=a(h=>jsx("div",{className:"h-full w-full",children:jsx(wt,{...h})}),"FileViewer");var ds=a(({text:h,speed:u=50,onDone:m,markdown:M=false,markdownComponents:D={},className:k,...v})=>{let[$,O]=useState("");return useEffect(()=>{let A=0,H=setInterval(()=>{let P=h.charAt(A);O(Y=>Y+P),A++,A>=h.length&&(clearInterval(H),m?.());},u);return ()=>clearInterval(H)},[h,u,m]),useEffect(()=>{O("");},[h]),M?jsx("div",{className:k,children:jsx(Tr,{remarkPlugins:[Lr],components:D,...v,children:$})}):jsx(Wa,{className:k,...v,children:$})},"Typewriter");export{Di as Container,Ja as FileViewer,ta as FullscreenCard,cr as Graph2D,di as PageContent,ii as PageLayout,zt as Styled,Tt as StyledContainer,Rt as StyledMain,gi as SubNav,ds as Typewriter};//# sourceMappingURL=index.mjs.map
67
67
  //# sourceMappingURL=index.mjs.map