@cyber-harbour/ui 2.2.7-beta.1 → 2.2.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import {a,w,x,u,c,l,z,Pa,Ya,ma as ma$1,ra,pb,Cb,y,kb,G,ib,H,lb}from'./chunk-FRUL75XR.mjs';export{tb as Alert,A as AlertIcon,za as AndroidIcon,B as ApiIcon,C as ArrowCircleTopRightIcon,D as ArrowRightIcon,ia as BallsMenu,pb as Box,q as BreakpointProvider,E as BugReportIcon,Na as BurgerMenuIcon,sa as BusIcon,z as Button,F as CalendarIcon,ta as CarIcon,Kb as ChatField,ja as CheckIcon,vb as Checkbox,ka as ChevronDownIcon,G as ChevronLeftIcon,H as ChevronRightIcon,la as ChevronUpIcon,Oa as ClockIcon,I as CloseCircleIcon,J as ClosedLockIcon,Db as ContentLoader,fb as ContextMenu,gb as ContextMenuDelimiter,qa as CrossIcon,K as DataSetsIcon,L as DeepSearchIcon,M as DisabledVisibleIcon,N as DocsIcon,O as DownloadIcon,yb as Drawer,Ab as DrawerBody,zb as DrawerHeader,P as EditUserIcon,rb as EmptyData,Q as EnableVisibleIcon,R as EnterArrowLeftIcon,Ra as FaceSearchIcon,mb as FileField,xa as FileIcon,S as FiltersIcon,Ia as FlashIcon,nb as FlexContainer,ob as FlexItem,Ba as FolderAlertIcon,Ja as FolderInfoIcon,ab as Header,bb as HeaderDelimeter,cb as HeaderSection,T as HomepageIcon,Qa as ImageIcon,oa as InfoCircleFilledIcon,U as InfoCircleIcon,kb as Input,ya as IosIcon,ub as Label,qb as Line,wb as LinerProgress,Za as ListMenu,_a as ListMenuItem,$a as ListMenuSection,V as MapRadarIcon,ra as MaximizeIcon,Sa as MessageAsteriskIcon,Aa as MicrosoftIcon,Pa as MinusIcon,Fb as Modal,Hb as ModalBody,Ib as ModalFooter,Gb as ModalHeader,W as MoonIcon,X as OpenLockIcon,Y as OrganizationIcon,Eb as Overlay,eb 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,Lb as ProgressLoader,Ca as RelationIcon,Da as RelationPointsIcon,Ka as RotateLeftIcon,La as RotateRightIcon,jb as RowActionsMenu,ca as SandBoxIcon,da as SearchIcon,ib as Select,wa as ShipIcon,Ua as Sidebar,Ta as SidebarContext,Wa as SidebarDelimeter,Va as SidebarItem,Xa as SidebarSection,ea as StatisticIcon,Cb as StyledTooltipContent,fa as SunIcon,xb as Switch,db as Table,sb as Tag,Jb as TailwindExample,s as ThemeProvider,Bb as Tooltip,Ya 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,hb as useContextMenuControl,y as useTheme}from'./chunk-FRUL75XR.mjs';import wo,{styled,useTheme,keyframes,css as css$1}from'styled-components';export{ServerStyleSheet,StyleSheetManager}from'styled-components';import {jsx,jsxs}from'react/jsx-runtime';import {useState,useRef,useCallback,useEffect,Fragment,forwardRef,useMemo,useImperativeHandle,useLayoutEffect,memo}from'react';import Eo from'lodash.clonedeep';import {scaleOrdinal,schemeCategory10,forceSimulation,forceLink,forceManyBody,forceX,forceY,forceCenter,forceCollide}from'd3';import yo from'react-content-loader';import {renderAsync}from'docx-preview';import Qo from'lodash.throttle';import rn from'@uiw/react-codemirror';import {vscodeLight}from'@uiw/codemirror-theme-vscode';import {javascript}from'@codemirror/lang-javascript';import {json}from'@codemirror/lang-json';import {html}from'@codemirror/lang-html';import {css}from'@codemirror/lang-css';import {python}from'@codemirror/lang-python';import {java}from'@codemirror/lang-java';import {cpp}from'@codemirror/lang-cpp';import {php}from'@codemirror/lang-php';import {rust}from'@codemirror/lang-rust';import {xml}from'@codemirror/lang-xml';import {yaml}from'@codemirror/lang-yaml';import {markdown}from'@codemirror/lang-markdown';import {sql}from'@codemirror/lang-sql';import hn from'react-markdown';import fn from'remark-gfm';import {TableVirtuoso}from'react-virtuoso';import jt from'papaparse';import Qn from'copy-to-clipboard';import {Popover}from'react-tiny-popover';import {parse,isValid,getYear,format,getMonth,startOfWeek,startOfMonth,endOfMonth,getDay,previousSunday,nextSaturday,differenceInDays}from'date-fns';import {createPortal}from'react-dom';var Us=a(({children:r,className:o})=>jsx(ro,{className:o,children:r}),"PageLayout"),ro=styled.div`
1
+ import {a,w,x,u,c,l,z,Pa,Ya,ma as ma$1,ra,pb,Cb,y,kb,G,ib,H,lb}from'./chunk-K5OEK7KJ.mjs';export{tb as Alert,A as AlertIcon,za as AndroidIcon,B as ApiIcon,C as ArrowCircleTopRightIcon,D as ArrowRightIcon,ia as BallsMenu,pb as Box,q as BreakpointProvider,E as BugReportIcon,Na as BurgerMenuIcon,sa as BusIcon,z as Button,F as CalendarIcon,ta as CarIcon,Kb as ChatField,ja as CheckIcon,vb as Checkbox,ka as ChevronDownIcon,G as ChevronLeftIcon,H as ChevronRightIcon,la as ChevronUpIcon,Oa as ClockIcon,I as CloseCircleIcon,J as ClosedLockIcon,Db as ContentLoader,fb as ContextMenu,gb as ContextMenuDelimiter,qa as CrossIcon,K as DataSetsIcon,L as DeepSearchIcon,M as DisabledVisibleIcon,N as DocsIcon,O as DownloadIcon,yb as Drawer,Ab as DrawerBody,zb as DrawerHeader,P as EditUserIcon,rb as EmptyData,Q as EnableVisibleIcon,R as EnterArrowLeftIcon,Ra as FaceSearchIcon,mb as FileField,xa as FileIcon,S as FiltersIcon,Ia as FlashIcon,nb as FlexContainer,ob as FlexItem,Ba as FolderAlertIcon,Ja as FolderInfoIcon,ab as Header,bb as HeaderDelimeter,cb as HeaderSection,T as HomepageIcon,Qa as ImageIcon,oa as InfoCircleFilledIcon,U as InfoCircleIcon,kb as Input,ya as IosIcon,ub as Label,qb as Line,wb as LinerProgress,Za as ListMenu,_a as ListMenuItem,$a as ListMenuSection,V as MapRadarIcon,ra as MaximizeIcon,Sa as MessageAsteriskIcon,Aa as MicrosoftIcon,Pa as MinusIcon,Fb as Modal,Hb as ModalBody,Ib as ModalFooter,Gb as ModalHeader,W as MoonIcon,X as OpenLockIcon,Y as OrganizationIcon,Eb as Overlay,eb 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,Lb as ProgressLoader,Ca as RelationIcon,Da as RelationPointsIcon,Ka as RotateLeftIcon,La as RotateRightIcon,jb as RowActionsMenu,ca as SandBoxIcon,da as SearchIcon,ib as Select,wa as ShipIcon,Ua as Sidebar,Ta as SidebarContext,Wa as SidebarDelimeter,Va as SidebarItem,Xa as SidebarSection,ea as StatisticIcon,Cb as StyledTooltipContent,fa as SunIcon,xb as Switch,db as Table,sb as Tag,Jb as TailwindExample,s as ThemeProvider,Bb as Tooltip,Ya 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,hb as useContextMenuControl,y as useTheme}from'./chunk-K5OEK7KJ.mjs';import xo,{styled,useTheme,keyframes,css as css$1}from'styled-components';export{ServerStyleSheet,StyleSheetManager}from'styled-components';import {jsx,jsxs}from'react/jsx-runtime';import {useState,useRef,useCallback,useEffect,Fragment,forwardRef,useMemo,useImperativeHandle,useLayoutEffect,memo}from'react';import Ro from'lodash.clonedeep';import {scaleOrdinal,schemeCategory10,forceSimulation,forceLink,forceManyBody,forceX,forceY,forceCenter,forceCollide}from'd3';import wo from'react-content-loader';import {renderAsync}from'docx-preview';import tn from'lodash.throttle';import nn from'@uiw/react-codemirror';import {vscodeLight}from'@uiw/codemirror-theme-vscode';import {javascript}from'@codemirror/lang-javascript';import {json}from'@codemirror/lang-json';import {html}from'@codemirror/lang-html';import {css}from'@codemirror/lang-css';import {python}from'@codemirror/lang-python';import {java}from'@codemirror/lang-java';import {cpp}from'@codemirror/lang-cpp';import {php}from'@codemirror/lang-php';import {rust}from'@codemirror/lang-rust';import {xml}from'@codemirror/lang-xml';import {yaml}from'@codemirror/lang-yaml';import {markdown}from'@codemirror/lang-markdown';import {sql}from'@codemirror/lang-sql';import mn from'react-markdown';import gn from'remark-gfm';import {TableVirtuoso}from'react-virtuoso';import Bt from'papaparse';import ta from'copy-to-clipboard';import {Popover}from'react-tiny-popover';import {parse,isValid,getYear,format,getMonth,startOfWeek,startOfMonth,endOfMonth,getDay,previousSunday,nextSaturday,differenceInDays}from'date-fns';import {createPortal}from'react-dom';var Vs=a(({children:r,className:o})=>jsx(oo,{className:o,children:r}),"PageLayout"),oo=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,Ya,ma as ma$1,ra,pb,Cb,y,kb,G,ib,H,lb}from'./chunk-FRUL
9
9
  & > header {
10
10
  grid-area: header;
11
11
  }
12
- `;var Js=a(({children:r,className:o})=>jsx(ao,{className:o,children:r}),"PageContent"),ao=styled.main`
12
+ `;var ec=a(({children:r,className:o})=>jsx(io,{className:o,children:r}),"PageContent"),io=styled.main`
13
13
  grid-area: content;
14
14
  min-width: 0;
15
15
  background: ${({theme:r})=>r.colors.backgroundBase};
16
- `;var oc=a(({children:r,className:o,top:n=0})=>jsx(co,{className:o,$top:n,onClick:a=>a.stopPropagation(),children:r}),"SubNav"),co=styled.div(({theme:r,$top:o})=>`
16
+ `;var ac=a(({children:r,className:o,top:n=0})=>jsx(lo,{className:o,$top:n,onClick:a=>a.stopPropagation(),children:r}),"SubNav"),lo=styled.div(({theme:r,$top:o})=>`
17
17
  display: flex;
18
18
  flex-direction: column;
19
19
  justify-content: space-between;
@@ -33,50 +33,37 @@ import {a,w,x,u,c,l,z,Pa,Ya,ma as ma$1,ra,pb,Cb,y,kb,G,ib,H,lb}from'./chunk-FRUL
33
33
  position: sticky;
34
34
  border-right: 1px solid ${r.colors.stroke.light};
35
35
  }
36
- `);var fc=w(({maxWidth:r,...o})=>jsx(po,{...o,$maxWidth:r})),po=x(styled.div(({theme:r,$maxWidth:o,px:n=20})=>`
36
+ `);var gc=w(({maxWidth:r,...o})=>jsx(ho,{...o,$maxWidth:r})),ho=x(styled.div(({theme:r,$maxWidth:o,px:n=20})=>`
37
37
  ${u(r,"padding-inline",n)}
38
38
  width: 100%;
39
39
  min-width: 0;
40
40
  max-width: ${typeof o=="number"?c(o,r.baseSize):o||"100%"};
41
- `),{ignoreStyles:["padding-inline"]});var bo=20,vo="splitter_columns_widths",lr=a((r,o,n)=>{let a=localStorage.getItem(r);if(a)try{let d=JSON.parse(a);if(Array.isArray(d)&&d.length===o)return d}catch{}else if(n.length===o)return n;return Array(o).fill(100/o)},"getSavedWidths"),wc=a(({columns:r,initialWidths:o,layoutClassname:n="",splitterClassname:a="",minWidth:d=bo,storageKey:i=vo})=>{let[g,x]=useState(()=>lr(i,r.length,o)),k=useRef(null),R=useRef(null),D=useRef(d),h=useRef(g),L=useCallback(j=>{if(R.current===null||!k.current)return;let T=k.current.getBoundingClientRect(),E=T.width,H=j-T.left,X=[...h.current],ae=R.current,ne=ae+1,ge=X.slice(0,ae).reduce((Pe,ye)=>Pe+ye,0),be=H/E*100-ge,ve=X[ae]+X[ne]-be;be>=D.current&&ve>=D.current&&(X[ae]=be,X[ne]=ve,x(X),h.current=X);},[]),z=useCallback(j=>L(j.clientX),[L]),t=useCallback(j=>{j.preventDefault(),L(j.touches[0].clientX);},[L]),B=useCallback(()=>{R.current=null,localStorage.setItem(i,JSON.stringify(h.current)),document.removeEventListener("mousemove",z),document.removeEventListener("mouseup",B),document.removeEventListener("touchmove",t),document.removeEventListener("touchend",B);},[z,t,i]),C=useCallback(j=>T=>{T.preventDefault(),R.current=j,document.addEventListener("mousemove",z,{passive:false}),document.addEventListener("mouseup",B);},[z,B]),p=useCallback(j=>T=>{T.preventDefault(),R.current=j,document.addEventListener("touchmove",t,{passive:false}),document.addEventListener("touchend",B);},[t,B]);return useEffect(()=>{let j=lr(i,r.length,o);h.current=j,x(j);},[r.length,o,i]),jsx("div",{ref:k,className:`flex select-none ${n}`,children:r.map(({content:j,className:T},E)=>jsxs(Fragment,{children:[jsx("div",{className:T,style:{flex:`${g[E]} 1 0%`},children:j}),E<r.length-1&&jsx("div",{onMouseDown:C(E),onTouchStart:p(E),className:`hidden lg:flex! lg:sticky lg:top-0 border-s border-gray-200 ${a}`,children:jsx("span",{className:"absolute top-1/2 start-1/2 -translate-x-1/2 -translate-y-1/2 block w-5 h-8 flex justify-center items-center bg-white border border-gray-200 text-gray-400 rounded-md cursor-col-resize hover:bg-gray-100",children:jsxs("svg",{className:"shrink-0 size-5",xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[jsx("circle",{cx:"9",cy:"12",r:"1"}),jsx("circle",{cx:"9",cy:"5",r:"1"}),jsx("circle",{cx:"9",cy:"19",r:"1"}),jsx("circle",{cx:"15",cy:"12",r:"1"}),jsx("circle",{cx:"15",cy:"5",r:"1"}),jsx("circle",{cx:"15",cy:"19",r:"1"})]})})})]},`${E}`))})},"SplitterLayout");var ko=wo.div`
41
+ `),{ignoreStyles:["padding-inline"]});var vo=20,yo="splitter_columns_widths",dr=a((r,o,n)=>{let a=localStorage.getItem(r);if(a)try{let d=JSON.parse(a);if(Array.isArray(d)&&d.length===o)return d}catch{}else if(n.length===o)return n;return Array(o).fill(100/o)},"getSavedWidths"),kc=a(({columns:r,initialWidths:o,layoutClassname:n="",splitterClassname:a="",minWidth:d=vo,storageKey:i=yo})=>{let[h,x]=useState(()=>dr(i,r.length,o)),k=useRef(null),R=useRef(null),P=useRef(d),m=useRef(h),E=useCallback(B=>{if(R.current===null||!k.current)return;let M=k.current.getBoundingClientRect(),T=M.width,$=B-M.left,Y=[...m.current],ne=R.current,re=ne+1,se=Y.slice(0,ne).reduce((we,ve)=>we+ve,0),ye=$/T*100-se,le=Y[ne]+Y[re]-ye;ye>=P.current&&le>=P.current&&(Y[ne]=ye,Y[re]=le,x(Y),m.current=Y);},[]),A=useCallback(B=>E(B.clientX),[E]),t=useCallback(B=>{B.preventDefault(),E(B.touches[0].clientX);},[E]),F=useCallback(()=>{R.current=null,localStorage.setItem(i,JSON.stringify(m.current)),document.removeEventListener("mousemove",A),document.removeEventListener("mouseup",F),document.removeEventListener("touchmove",t),document.removeEventListener("touchend",F);},[A,t,i]),S=useCallback(B=>M=>{M.preventDefault(),R.current=B,document.addEventListener("mousemove",A,{passive:false}),document.addEventListener("mouseup",F);},[A,F]),p=useCallback(B=>M=>{M.preventDefault(),R.current=B,document.addEventListener("touchmove",t,{passive:false}),document.addEventListener("touchend",F);},[t,F]);return useEffect(()=>{let B=dr(i,r.length,o);m.current=B,x(B);},[r.length,o,i]),jsx("div",{ref:k,className:`flex select-none ${n}`,children:r.map(({content:B,className:M},T)=>jsxs(Fragment,{children:[jsx("div",{className:M,style:{flex:`${h[T]} 1 0%`},children:B}),T<r.length-1&&jsx("div",{onMouseDown:S(T),onTouchStart:p(T),className:`hidden lg:flex! lg:sticky lg:top-0 border-s border-gray-200 ${a}`,children:jsx("span",{className:"absolute top-1/2 start-1/2 -translate-x-1/2 -translate-y-1/2 block w-5 h-8 flex justify-center items-center bg-white border border-gray-200 text-gray-400 rounded-md cursor-col-resize hover:bg-gray-100",children:jsxs("svg",{className:"shrink-0 size-5",xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[jsx("circle",{cx:"9",cy:"12",r:"1"}),jsx("circle",{cx:"9",cy:"5",r:"1"}),jsx("circle",{cx:"9",cy:"19",r:"1"}),jsx("circle",{cx:"15",cy:"12",r:"1"}),jsx("circle",{cx:"15",cy:"5",r:"1"}),jsx("circle",{cx:"15",cy:"19",r:"1"})]})})})]},`${T}`))})},"SplitterLayout");var So=xo.div`
42
42
  width: 100%;
43
43
  height: 100%;
44
44
  display: flex;
45
45
  align-items: center;
46
46
  justify-content: center;
47
- `,So=a(({width:r=280,height:o=280})=>{let n=useTheme();return jsx(ko,{children:jsxs(yo,{foregroundColor:n.contentLoader.foreground,backgroundColor:n.contentLoader.background,width:r,height:o,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"),ur=So;var gt=typeof window<"u"&&window.devicePixelRatio||1;function Oo(r){return !r||r.length===0?[]:r.map(o=>{let n=new Image;n.src=o.img;let a=new Image;return a.src=o.hoverImg,{...o,normalImg:n,hoverImg:a}})}a(Oo,"prepareButtonImages");var te={fontSize:3,nodeSizeBase:30,nodeAreaFactor:2,textPaddingFactor:.9,gridSpacing:20,dotSize:1,maxZoom:4},Ho=forwardRef(({loading:r,width:o,height:n,graphData:a$1,buttons:d=[],onNodeClick:i,onBackgroundClick:g,onNodeHover:x,onLinkHover:k,onLinkClick:R},D)=>{let h=useTheme(),[L,z]=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:o*gt,height:n*gt,animation:{id:null,buttonIndex:null},spinnerAngle:0}),{nodes:B,links:C}=useMemo(()=>Eo(a$1),[a$1]),[p,j]=useState([]),T=useRef(null),E=useRef(null),H=useRef(null),X=scaleOrdinal(schemeCategory10),ae=useCallback(()=>{if(!T.current)return false;try{let e=T.current.getContext("2d");return e?(H.current=e,!0):(console.error("Failed to get 2D context"),!1)}catch(e){return console.error("Error initializing Canvas 2D context:",e),false}},[]),ne=useCallback(()=>E.current?E.current.nodes():null,[]),ge=useCallback(()=>{if(!E.current)return null;let e=E.current.force("link");return e?e.links():null},[]),be=useCallback(e=>{e.save(),e.setTransform(1,0,0,1,0,0);let{width:u,height:c}=t.current,l=te.gridSpacing,m=te.dotSize;e.fillStyle=h.graph2D.grid.dotColor;for(let w=l/2;w<=u;w+=l)for(let b=l/2;b<=c;b+=l)e.beginPath(),e.arc(w,b,m,0,2*Math.PI),e.fill();e.restore();},[h.graph2D.grid.dotColor,te.gridSpacing,te.dotSize]),ve=useCallback((e,u,c)=>{if(!e)return "";if(c.measureText(e).width<=u)return e;let m=e,w="...";for(;c.measureText(m+w).width>u&&m.length>0;)m=m.slice(0,-1);return m+w},[]),Pe=a(e=>{let c=Math.min(e,te.maxZoom)/te.maxZoom;return Math.max(te.fontSize*c,te.fontSize)},"calculateFontSize"),ye=useCallback(e=>{let u=ge(),c=ne();!u||u.length===0||!c||c.length===0||(e.lineWidth=.5,e.globalAlpha=1,u.forEach(l=>{let m=typeof l.source=="object"?l.source:c.find(we=>we.id===l.source),w=typeof l.target=="object"?l.target:c.find(we=>we.id===l.target);if(!m||!w)return;let b={x:m.x||0,y:m.y||0},v={x:w.x||0,y:w.y||0},M=v.x-b.x,N=v.y-b.y,A=Math.sqrt(M*M+N*N),U=M/A,O=N/A,oe=te.nodeSizeBase/2,y=te.nodeSizeBase/2,I=4,f={x:b.x+U*oe,y:b.y+O*oe},P={x:v.x-U*(y+I),y:v.y-O*(y+I)},S={x:v.x-U*(y+1),y:v.y-O*(y+1)},$=t.current.highlightLinks.has(l),V=$?h.graph2D.link.highlighted:h.graph2D.link.normal,Z=$?1.5:.5,de=b.x+(v.x-b.x)/2,Te=b.y+(v.y-b.y)/2,ie=Math.atan2(N,M);if(l.label){let we=t.current.transform.k,Ee=Pe(we);e.font=`${Ee}px Sans-Serif`;let dt=e.measureText(l.label).width,Vt=10;e.beginPath(),e.moveTo(f.x,f.y);let Zt=A/2-(dt+Vt)/2,Gt={x:b.x+U*Zt,y:b.y+O*Zt};e.lineTo(Gt.x,Gt.y),e.strokeStyle=V,e.lineWidth=Z,e.stroke(),e.beginPath();let Kt=A/2+(dt+Vt)/2,Jt={x:b.x+U*Kt,y:b.y+O*Kt};e.moveTo(Jt.x,Jt.y),e.lineTo(P.x,P.y),e.strokeStyle=V,e.lineWidth=Z,e.stroke();}else e.beginPath(),e.moveTo(f.x,f.y),e.lineTo(P.x,P.y),e.strokeStyle=V,e.lineWidth=Z,e.stroke();let me=2;if(e.save(),e.translate(S.x,S.y),e.rotate(ie),e.beginPath(),e.moveTo(0,0),e.lineTo(-I,me),e.lineTo(-I,0),e.lineTo(-I,-me),e.closePath(),e.fillStyle=V,e.fill(),e.restore(),l.label){let we=t.current.transform.k,Ee=Pe(we);e.font=`${Ee}px Sans-Serif`,e.textAlign="center",e.textBaseline="middle",e.save(),e.translate(de,Te),Math.abs(ie)>Math.PI/2?e.rotate(ie+Math.PI):e.rotate(ie),e.fillStyle=$?h.graph2D.link.highlightedTextColor:h.graph2D.link.textColor,e.fillText(l.label,0,0),e.restore();}}));},[te,h.graph2D.link]),W=a((e,u,c,l,m,w,b)=>{try{if(w!=null){let v=m*.8;e.font=`${v}px sans-serif`,e.textBaseline="middle",e.textAlign="left";let M=new Intl.NumberFormat("en",{notation:"compact",maximumFractionDigits:1,minimumFractionDigits:0,compactDisplay:"short"}).format(w),N=e.measureText(M).width,A=m*.3,O=(m+A+N)/2;e.drawImage(u,c-O,l-m/2,m,m),e.fillStyle=b||"#99989C",e.fillText(M,c-O+m+A,l);}else e.drawImage(u,c-m/2,l-m/2,m,m);}catch(v){console.warn("Error rendering icon:",v);}},"drawIconWithOptionalCounter"),_=useCallback((e,u)=>{if(!p||p.length===0||!e||!e.x||!e.y)return;let{x:c,y:l$1}=e,m=te.nodeSizeBase*te.nodeAreaFactor/2;u.save();let w=Math.min(p.length,8),b=Math.min(Math.PI*2/w,Math.PI);for(let v=0;v<w;v++){let M=v*b,N=(v+1)*b,A=t.current.hoveredButtonIndex===v;u.beginPath(),u.arc(c,l$1,m,M,N,false),u.lineTo(c,l$1),u.closePath(),u.lineWidth=1,u.strokeStyle=h.graph2D?.button?.stroke||"#FFFFFF",u.stroke(),u.fillStyle=A?h.graph2D?.button?.hoverFill||"rgba(255, 255, 255, 0.3)":h.graph2D?.button?.normalFill||"rgba(255, 255, 255, 0.1)",u.fill();let U=m*.2,O=(M+N)/2,oe=m-te.nodeSizeBase/2+U,y=c+Math.cos(O)*oe,I=l$1+Math.sin(O)*oe,f=p[v];if(f.loading){let P=U/2,S=U/12;u.save(),u.translate(y,I),u.rotate(t.current.spinnerAngle);for(let $=0;$<12;$++){let V=Math.PI*2*$/12,Z=$/12,de=Math.cos(V)*P,Te=Math.sin(V)*P;u.beginPath(),u.fillStyle=l(h.graph2D?.button?.spinnerColor,Z),u.arc(de,Te,S,0,Math.PI*2),u.fill();}u.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(F),t.current.animation.buttonIndex=v;}else {t.current.animation.id&&t.current.animation.buttonIndex===v&&(cancelAnimationFrame(t.current.animation.id),t.current.animation.id=null,t.current.animation.buttonIndex=null);let P=A?f.hoverImg:f.normalImg,S=f.getCount?f.getCount(e):null;P.complete?W(u,P,y,I,U,S,h.graph2D?.button?.textColor):P.onload=()=>{H.current&&W(u,P,y,I,U,S,h.graph2D?.button?.textColor);};}}u.restore();},[p,h.graph2D?.button]),G=useCallback(e=>{let u=ne();!u||u.length===0||(e.globalAlpha=1,u.forEach(c=>{let{x:l,y:m,color:w,fontColor:b,label:v}=c,M=t.current.highlightNodes.has(c)||c===t.current.hoveredNode||c===t.current.draggedNode,N=c===t.current.selectedNode,A=te.nodeSizeBase,U=te.nodeSizeBase/2;if(M&&!N){let O=te.nodeSizeBase*te.nodeAreaFactor*.75/2;e.beginPath(),e.arc(l,m,O,0,2*Math.PI,false),e.fillStyle=h.graph2D.ring.highlightFill,e.fill();}if(N)if(d&&d.length>0)_(c,e);else {let O=te.nodeSizeBase*te.nodeAreaFactor/2;e.beginPath(),e.arc(l,m,O,0,2*Math.PI,false),e.fillStyle=h.graph2D.ring.selectionFill||h.graph2D.ring.highlightFill,e.fill();}if(e.beginPath(),e.arc(l,m,U,0,2*Math.PI),e.fillStyle=w||X(c.group||"0"),e.fill(),v){e.save(),e.translate(l,m);let O=t.current.transform.k,oe=Pe(O),y=A*te.textPaddingFactor;e.font=`${oe}px Sans-Serif`,e.textAlign="center",e.textBaseline="middle",e.fillStyle=b||"#000";let I=ve(v,y,e);e.fillText(I,0,0),e.restore();}}));},[h.graph2D.ring,d,_]),F=useCallback(()=>{let e=H.current;e&&(e.clearRect(0,0,t.current.width,t.current.height),be(e),e.save(),e.setTransform(t.current.transform.k,0,0,t.current.transform.k,t.current.transform.x,t.current.transform.y),ye(e),G(e),e.restore());},[ye,G,be]),re=useCallback((e,u=[],c)=>{let l=ge()||[],m=ne()||[];if(!E.current||!e.length)return;let{width:w,height:b}=t.current,v=c?.smoothAppearance??false,M=c?.transitionDuration??1e3,N=new Set(m.map(f=>f.id)),A=e.filter(f=>!N.has(f.id)),U=new Set(l.map(f=>`${typeof f.source=="object"?f.source.id:f.source}-${typeof f.target=="object"?f.target.id:f.target}`)),O=u.filter(f=>{let P=`${typeof f.source=="object"?f.source.id:f.source}-${typeof f.target=="object"?f.target.id:f.target}`;return !U.has(P)});if(A.length===0&&O.length===0)return;let oe=[...m,...A],y=[...l,...O];v&&(A.forEach(f=>{let P=O.filter(S=>{let $=typeof S.source=="object"?S.source.id:S.source,V=typeof S.target=="object"?S.target.id:S.target;return $===f.id&&N.has(V)||V===f.id&&N.has($)});if(P.length>0){let S=P[0],$=typeof S.source=="object"?S.source.id===f.id?S.target:S.source.id:S.source===f.id?S.target:S.source,V=oe.find(Z=>Z.id===$);if(V&&V.x!==void 0&&V.y!==void 0){let Z=30+Math.random()*20,de=Math.random()*Math.PI*2;f.x=V.x+Math.cos(de)*Z,f.y=V.y+Math.sin(de)*Z,f.vx=0,f.vy=0;}}else {let S=w/2,$=b/2,V=Math.min(w,b)/4,Z=Math.random()*Math.PI*2;f.x=S+Math.cos(Z)*(V*Math.random()),f.y=$+Math.sin(Z)*(V*Math.random()),f.vx=0,f.vy=0;}}),m.forEach(f=>{f.fx=f.x,f.fy=f.y;})),E.current.nodes(oe);let I=E.current.force("link");I&&I.links(y),O.forEach(f=>{let P=typeof f.source=="object"?f.source:oe.find($=>$.id===f.source),S=typeof f.target=="object"?f.target:oe.find($=>$.id===f.target);!P||!S||(!P.neighbors&&(P.neighbors=[]),!S.neighbors&&(S.neighbors=[]),P.neighbors.push(S),S.neighbors.push(P),!P.links&&(P.links=[]),!S.links&&(S.links=[]),P.links.push(f),S.links.push(f));}),v?(E.current.alphaTarget(.3),E.current.alpha(.3),E.current.velocityDecay(.7),E.current.restart(),setTimeout(()=>{m.forEach(f=>{f.fx=void 0,f.fy=void 0;}),E.current?.alphaTarget(0),E.current?.alpha(.1),E.current?.velocityDecay(.6);},M)):E.current.alpha(.1).restart(),F();},[B,F]),K=useCallback(e=>{let u=ne(),c=ge();if(!E.current||!e.length||!u||u.length===0||!c||c.length===0)return;let l=new Set(e);if(t.current.selectedNode&&t.current.selectedNode.id!==void 0&&l.has(t.current.selectedNode.id)&&(t.current.selectedNode=null),t.current.hoveredNode&&t.current.hoveredNode.id!==void 0&&l.has(t.current.hoveredNode.id)&&(t.current.hoveredNode=null,t.current.highlightNodes=new Set,t.current.highlightLinks=new Set),t.current.hoveredLink){let v=typeof t.current.hoveredLink.source=="object"?t.current.hoveredLink.source.id:t.current.hoveredLink.source,M=typeof t.current.hoveredLink.target=="object"?t.current.hoveredLink.target.id:t.current.hoveredLink.target;(v!==void 0&&l.has(v)||M!==void 0&&l.has(M))&&(t.current.hoveredLink=null,t.current.highlightNodes=new Set,t.current.highlightLinks=new Set);}t.current.draggedNode&&t.current.draggedNode.id!==void 0&&l.has(t.current.draggedNode.id)&&(t.current.draggedNode=null);let m=u.filter(v=>v.id!==void 0&&!l.has(v.id)),w=c.filter(v=>{let M=typeof v.source=="object"?v.source.id:v.source,N=typeof v.target=="object"?v.target.id:v.target;return M!==void 0&&!l.has(M)&&N!==void 0&&!l.has(N)});m.forEach(v=>{v.neighbors=[],v.links=[];}),w.forEach(v=>{let M=typeof v.source=="object"?v.source:m.find(A=>A.id===v.source),N=typeof v.target=="object"?v.target:m.find(A=>A.id===v.target);!M||!N||(M.neighbors=M.neighbors||[],N.neighbors=N.neighbors||[],M.neighbors.push(N),N.neighbors.push(M),M.links=M.links||[],N.links=N.links||[],M.links.push(v),N.links.push(v));}),E.current.nodes(m);let b=E.current.force("link");b&&b.links(w),F();},[F]),Q=useCallback((e=0,u=20)=>{let c=ne();if(!H.current||!T.current||!c||!c.length)return;let m=1/0,w=1/0,b=-1/0,v=-1/0;if(c.forEach(M=>{if(M.x===void 0||M.y===void 0)return;let N=M.x,A=M.y;m=Math.min(m,N),w=Math.min(w,A),b=Math.max(b,N),v=Math.max(v,A);}),isFinite(m)&&isFinite(b)&&isFinite(w)&&isFinite(v)){let{width:M,height:N}=t.current;m-=u,w-=u,b+=u,v+=u;let A=b-m,U=v-w,O=A>0?M/A:1,oe=U>0?N/U:1,y=Math.min(O,oe,10),I=m+A/2,f=w+U/2,P={k:y,x:M/2-I*y,y:N/2-f*y};if(e>0){let S={...t.current.transform},$=Date.now(),V=a(()=>{let Z=Math.min(1,(Date.now()-$)/e),de=Z===1?1:1-Math.pow(1-Z,3),Te={k:S.k+(P.k-S.k)*de,x:S.x+(P.x-S.x)*de,y:S.y+(P.y-S.y)*de};t.current.transform=Te,F(),Z<1&&requestAnimationFrame(V);},"animateZoom");requestAnimationFrame(V);}else t.current.transform=P,F();}},[]),Y=useCallback((e,u)=>{let c=ne();if(!c||c.length===0)return null;let l=te.nodeSizeBase/2,m=typeof window<"u"&&window.devicePixelRatio||1,w=(e*m-t.current.transform.x)/t.current.transform.k,b=(u*m-t.current.transform.y)/t.current.transform.k;return c.find(v=>{let M=(v.x||0)-w,N=(v.y||0)-b;return Math.sqrt(M*M+N*N)<=l})||null},[]),ee=useCallback((e,u)=>{let c=ge(),l=ne();if(!c||c.length===0||!l||l.length===0)return null;let m=typeof window<"u"&&window.devicePixelRatio||1,w=(e*m-t.current.transform.x)/t.current.transform.k,b=(u*m-t.current.transform.y)/t.current.transform.k,v=5;return c.find(M=>{let N=typeof M.source=="object"?M.source:l.find(Ee=>Ee.id===M.source),A=typeof M.target=="object"?M.target:l.find(Ee=>Ee.id===M.target);if(!N||!A)return false;let U=N.x||0,O=N.y||0,oe=A.x||0,y=A.y||0,I=w-U,f=b-O,P=oe-U,S=y-O,$=I*P+f*S,V=P*P+S*S;if(V===0)return false;let Z=$/V;Z=Math.max(0,Math.min(1,Z));let de=U+Z*P,Te=O+Z*S,ie=w-de,me=b-Te;return Math.sqrt(ie*ie+me*me)<=v})||null},[]),ce=useCallback((e,u,c,l,m,w,b)=>{let v=e-c,M=u-l,N=Math.sqrt(v*v+M*M),A=Math.atan2(M,v);A<0&&(A+=2*Math.PI);let oe=N>=m*.5&&N<=m*1,y=false;return w===Math.PI&&b===Math.PI*2?y=A>=Math.PI&&A<=Math.PI*2:w===0&&b===Math.PI?y=A>=0&&A<=Math.PI:y=w<=b&&A>=w&&A<=b||w>b&&(A>=w||A<=b),oe&&y},[]),le=useCallback(e=>{if(e===t.current.hoveredNode)return;let u=new Set,c=new Set;e&&(u.add(e),e.neighbors&&e.neighbors.forEach(l=>u.add(l)),e.links&&e.links.forEach(l=>c.add(l))),t.current.hoveredNode=e,x&&x(e),t.current.highlightNodes=u,t.current.highlightLinks=c;},[x]),ue=useCallback(e=>{if(e===t.current.hoveredLink)return;let u=new Set,c=new Set;if(e){c.add(e);let l=ne();if(l){let m=typeof e.source=="object"?e.source:l.find(b=>b.id===e.source),w=typeof e.target=="object"?e.target:l.find(b=>b.id===e.target);m&&u.add(m),w&&u.add(w);}}t.current.hoveredLink=e,k&&k(e),t.current.highlightNodes=u,t.current.highlightLinks=c;},[k,ne]),De=useCallback(e=>{R&&R(e);},[R]),Ae=useCallback(e=>{t.current.selectedNode=e,i&&i(e);},[i]),qe=useCallback(()=>{t.current.selectedNode=null,g&&g();},[g]),Re=useCallback(e=>{if(!T.current||!E.current)return;let u=T.current.getBoundingClientRect(),c=e.clientX-u.left,l=e.clientY-u.top;t.current.mouseStartPos={x:c,y:l},t.current.isDragging=false;let m=Y(c,l);m?(t.current.draggedNode=m,m.fx=m.x,m.fy=m.y):(t.current.isPanning=true,t.current.lastMousePos={x:c,y:l});},[Y]),Oe=useCallback((e,u)=>{let c=null;if(T.current&&t.current&&p.length>0){let l=te.nodeSizeBase*te.nodeAreaFactor/2,m=T.current.getBoundingClientRect(),w=T.current.width/m.width,b=T.current.height/m.height,v=e*w,M=u*b,N=(v-t.current.transform.x)/t.current.transform.k,A=(M-t.current.transform.y)/t.current.transform.k,U=t.current.selectedNode?.x||0,O=t.current.selectedNode?.y||0,oe=Math.min(p.length,8),y=Math.min(Math.PI*2/oe,Math.PI);for(let I=0;I<oe;I++){let f=I*y,P=(I+1)*y;if(ce(N,A,U,O,l,f,P)){c=I;break}}}return c},[p]),Ce=useCallback(e=>{if(!T.current)return;let u=T.current.getBoundingClientRect(),c=e.clientX-u.left,l=e.clientY-u.top;if(t.current.draggedNode&&t.current.mouseStartPos&&E.current){let b=t.current.mouseStartPos.x,v=t.current.mouseStartPos.y,M=c-b,N=l-v;Math.sqrt(M*M+N*N)>3&&(t.current.isDragging=true,E.current.alphaTarget()===0&&E.current.alphaTarget(0).restart());let O=typeof window<"u"&&window.devicePixelRatio||1,oe=(c*O-t.current.transform.x)/t.current.transform.k,y=(l*O-t.current.transform.y)/t.current.transform.k;t.current.draggedNode.fx=oe,t.current.draggedNode.fy=y;return}if(t.current.isPanning&&t.current.mouseStartPos){let b=c-t.current.lastMousePos.x,v=l-t.current.lastMousePos.y,M=t.current.mouseStartPos.x,N=t.current.mouseStartPos.y;Math.sqrt(Math.pow(c-M,2)+Math.pow(l-N,2))>3&&(t.current.isDragging=true),t.current.transform={...t.current.transform,x:t.current.transform.x+b,y:t.current.transform.y+v},t.current.lastMousePos={x:c,y:l},F();return}let m,w;if(t.current.selectedNode&&T.current&&p.length>0){let b=Oe(c,l);b!==null&&(w=t.current.selectedNode),b!==t.current.hoveredButtonIndex&&(m=true),t.current.hoveredButtonIndex=b;}else t.current.hoveredButtonIndex!==null&&(t.current.hoveredButtonIndex=null);if(!w&&(w=Y(c,l),!w)){let b=ee(c,l),v=b!==t.current.hoveredLink;if(b&&t.current.hoveredNode&&le(null),ue(b),T.current&&(T.current.style.cursor=b?"pointer":"default"),v){F();return}}w&&t.current.hoveredLink&&ue(null),w!==t.current.hoveredNode&&(m=true),le(w),T.current&&(T.current.style.cursor=w?"pointer":"default"),m&&F();},[p,Y,ee,le,ue,F,ce,Oe]),Ue=useCallback(e=>{t.current.mustBeStoppedPropagation&&(e.stopPropagation(),e.preventDefault()),t.current.mustBeStoppedPropagation=false;},[]),He=useCallback(e=>{let u=t.current.isDragging;if(u&&(t.current.mustBeStoppedPropagation=true),!u&&t.current.mouseStartPos){let c=T.current?.getBoundingClientRect();if(c){let l=e.clientX-c.left,m=e.clientY-c.top;p.length>0&&t.current.hoveredButtonIndex===null&&(t.current.hoveredButtonIndex=Oe(l,m));let w=false;if(t.current.selectedNode&&t.current.hoveredButtonIndex!==null&&d[t.current.hoveredButtonIndex]){let b=d[t.current.hoveredButtonIndex];b&&b.onClick&&(b.onClick(t.current.selectedNode),w=true,t.current.hoveredButtonIndex=null);}if(!w&&t.current.draggedNode)Ae(t.current.draggedNode);else if(!w&&!t.current.draggedNode){let b=ee(l,m);b?De(b):qe();}}}if(t.current.draggedNode&&E.current){if(u){E.current.alphaTarget(0);let c=.05,l=.04,m=.6;E.current.alpha(c).alphaDecay(l),E.current.velocityDecay(m);}else E.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),F();},[d,F,Ae,qe,ee,De,Oe,p]),Ve=useCallback(e=>{if(e.stopPropagation(),e.preventDefault(),!T.current)return;let u=T.current.getBoundingClientRect(),c=e.clientX-u.left,l=e.clientY-u.top,w=-e.deltaY>0?1.1:1/1.1,b=t.current.transform,v=b.k*w;if(v<.01||v>10)return;let M=b.k*w,N=c-(c-b.x)*w,A=l-(l-b.y)*w;t.current.transform={k:M,x:N,y:A},F();},[F]),We=a((e,u)=>{let c=e.touches[0];if(c){let l={clientX:c.clientX,clientY:c.clientY};u(l);}},"convertTouchToMouseEvent"),et=useCallback(e=>{We(e,Re);},[Re]),Be=useCallback(e=>{t.current.mustBeStoppedPropagation&&(e.preventDefault(),e.stopPropagation()),t.current.mustBeStoppedPropagation=false,We(e,He);},[He]),Ze=useCallback(e=>{We(e,Ce);},[Ce]);return useImperativeHandle(D,()=>({zoomToFit:Q,addNodes:re,removeNodes:K}),[Q,re,K]),useEffect(()=>{let e=T.current,{width:u,height:c}=t.current;if(!e)return;ae(),z(true);let l=u/2,m=c/2,w=te.nodeSizeBase,b=w/2,v=w*2.5;E.current&&E.current.stop();let M=E.current=forceSimulation(B).force("link",forceLink(C).id(N=>N.id).distance(v).strength(.9)).force("charge",forceManyBody().strength(-w/10*200).theta(.5).distanceMin(w*2)).force("x",forceX().strength(.03)).force("y",forceY().strength(.03)).force("center",forceCenter(l,m).strength(.05)).force("collide",forceCollide().radius(b*2).iterations(2).strength(1)).velocityDecay(.6);return ()=>{M.stop();}},[B,C]),useLayoutEffect(()=>{let e=T.current;e&&(t.current.width=o*gt,t.current.height=n*gt,e.width=t.current.width,e.height=t.current.height);},[o,n]),useEffect(()=>{if(E.current){let e=E.current;e.on("tick",()=>{F();}),e.on("end",()=>{L&&(Q(0,20),setTimeout(()=>{z(false);},200));});}L||F();},[B,C,L,F,Q]),useEffect(()=>{!B||!C||C.forEach(e=>{let u=typeof e.source=="object"?e.source:B.find(l=>l.id===e.source),c=typeof e.target=="object"?e.target:B.find(l=>l.id===e.target);!u||!c||(!u.neighbors&&(u.neighbors=[]),!c.neighbors&&(c.neighbors=[]),u.neighbors.push(c),c.neighbors.push(u),!u.links&&(u.links=[]),!c.links&&(c.links=[]),u.links.push(e),c.links.push(e));});},[B,C]),useEffect(()=>{d&&d.length>0&&j(Oo(d));},[d]),useEffect(()=>{let e=T.current;if(!(!e||typeof window>"u"))return e.addEventListener("wheel",Ve,{passive:false}),e.addEventListener("touchend",Be,{passive:false}),()=>{e.removeEventListener("wheel",Ve),e.removeEventListener("touchend",Be);}},[Ve,Be]),jsxs(Wo,{children:[(r||L)&&jsx(ur,{width:o,height:n}),jsx($o,{ref:T,style:{width:o,height:n,display:r||L?"none":"block"},onMouseDown:Re,onMouseMove:Ce,onMouseUp:He,onMouseLeave:He,onClick:Ue,onTouchStart:et,onTouchMove:Ze})]})}),Wo=styled.div`
47
+ `,Do=a(({width:r=280,height:o=280})=>{let n=useTheme();return jsx(So,{children:jsxs(wo,{foregroundColor:n.contentLoader.foreground,backgroundColor:n.contentLoader.background,width:r,height:o,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"),pr=Do;var ft=typeof window<"u"&&window.devicePixelRatio||1;function Ho(r){return !r||r.length===0?[]:r.map(o=>{let n=new Image;n.src=o.img;let a=new Image;return a.src=o.hoverImg,{...o,normalImg:n,hoverImg:a}})}a(Ho,"prepareButtonImages");var te={fontSize:3,nodeSizeBase:30,nodeAreaFactor:2,textPaddingFactor:.9,gridSpacing:20,dotSize:1,maxZoom:4},Wo=forwardRef(({loading:r,width:o,height:n,graphData:a$1,buttons:d=[],onNodeClick:i,onBackgroundClick:h,onNodeHover:x,onLinkHover:k,onLinkClick:R},P)=>{let m=useTheme(),[E,A]=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:o*ft,height:n*ft,animation:{id:null,buttonIndex:null},spinnerAngle:0}),{nodes:F,links:S}=useMemo(()=>Ro(a$1),[a$1]),[p,B]=useState([]),M=useRef(null),T=useRef(null),$=useRef(null),Y=scaleOrdinal(schemeCategory10),ne=useCallback(()=>{if(!M.current)return false;try{let e=M.current.getContext("2d");return e?($.current=e,!0):(console.error("Failed to get 2D context"),!1)}catch(e){return console.error("Error initializing Canvas 2D context:",e),false}},[]),re=useCallback(()=>T.current?T.current.nodes():null,[]),se=useCallback(()=>{if(!T.current)return null;let e=T.current.force("link");return e?e.links():null},[]),ye=useCallback(e=>{e.save(),e.setTransform(1,0,0,1,0,0);let{width:l,height:c}=t.current,u=te.gridSpacing,f=te.dotSize;e.fillStyle=m.graph2D.grid.dotColor;for(let w=u/2;w<=l;w+=u)for(let g=u/2;g<=c;g+=u)e.beginPath(),e.arc(w,g,f,0,2*Math.PI),e.fill();e.restore();},[m.graph2D.grid.dotColor,te.gridSpacing,te.dotSize]),le=useCallback((e,l,c)=>{if(!e)return "";if(c.measureText(e).width<=l)return e;let f=e,w="...";for(;c.measureText(f+w).width>l&&f.length>0;)f=f.slice(0,-1);return f+w},[]),we=a(e=>{let c=Math.min(e,te.maxZoom)/te.maxZoom;return Math.max(te.fontSize*c,te.fontSize)},"calculateFontSize"),ve=useCallback(e=>{let l=se(),c=re();!l||l.length===0||!c||c.length===0||(e.lineWidth=.5,e.globalAlpha=1,l.forEach(u=>{let f=typeof u.source=="object"?u.source:c.find(We=>We.id===u.source),w=typeof u.target=="object"?u.target:c.find(We=>We.id===u.target);if(!f||!w)return;let g={x:f.x||0,y:f.y||0},b={x:w.x||0,y:w.y||0},D=b.x-g.x,N=b.y-g.y,z=Math.sqrt(D*D+N*N),y=D/z,C=N/z,_=te.nodeSizeBase/2,I=te.nodeSizeBase/2,j=4,v={x:g.x+y*_,y:g.y+C*_},O={x:b.x-y*(I+j),y:b.y-C*(I+j)},L={x:b.x-y*(I+1),y:b.y-C*(I+1)},G=t.current.highlightLinks.has(u),K=G?m.graph2D.link.highlighted:m.graph2D.link.normal,ee=G?1.5:.5,ge=g.x+(b.x-g.x)/2,pe=g.y+(b.y-g.y)/2,he=Math.atan2(N,D);if(u.label){let We=t.current.transform.k,Ze=we(We);e.font=`${Ze}px Sans-Serif`;let Zt=e.measureText(u.label).width,Vt=10;e.beginPath(),e.moveTo(v.x,v.y);let Gt=z/2-(Zt+Vt)/2,Kt={x:g.x+y*Gt,y:g.y+C*Gt};e.lineTo(Kt.x,Kt.y),e.strokeStyle=K,e.lineWidth=ee,e.stroke(),e.beginPath();let Jt=z/2+(Zt+Vt)/2,Qt={x:g.x+y*Jt,y:g.y+C*Jt};e.moveTo(Qt.x,Qt.y),e.lineTo(O.x,O.y),e.strokeStyle=K,e.lineWidth=ee,e.stroke();}else e.beginPath(),e.moveTo(v.x,v.y),e.lineTo(O.x,O.y),e.strokeStyle=K,e.lineWidth=ee,e.stroke();let He=2;if(e.save(),e.translate(L.x,L.y),e.rotate(he),e.beginPath(),e.moveTo(0,0),e.lineTo(-j,He),e.lineTo(-j,0),e.lineTo(-j,-He),e.closePath(),e.fillStyle=K,e.fill(),e.restore(),u.label){let We=t.current.transform.k,Ze=we(We);e.font=`${Ze}px Sans-Serif`,e.textAlign="center",e.textBaseline="middle",e.save(),e.translate(ge,pe),Math.abs(he)>Math.PI/2?e.rotate(he+Math.PI):e.rotate(he),e.fillStyle=G?m.graph2D.link.highlightedTextColor:m.graph2D.link.textColor,e.fillText(u.label,0,0),e.restore();}}));},[te,m.graph2D.link]),q=a((e,l,c,u,f,w,g)=>{try{if(w!=null){let b=f*.8;e.font=`${b}px sans-serif`,e.textBaseline="middle",e.textAlign="left";let D=new Intl.NumberFormat("en",{notation:"compact",maximumFractionDigits:1,minimumFractionDigits:0,compactDisplay:"short"}).format(w),N=e.measureText(D).width,z=f*.3,C=(f+z+N)/2;e.drawImage(l,c-C,u-f/2,f,f),e.fillStyle=g||"#99989C",e.fillText(D,c-C+f+z,u);}else e.drawImage(l,c-f/2,u-f/2,f,f);}catch(b){console.warn("Error rendering icon:",b);}},"drawIconWithOptionalCounter"),H=useCallback((e,l$1)=>{if(!p||p.length===0||!e||!e.x||!e.y)return;let{x:c,y:u}=e,f=te.nodeSizeBase*te.nodeAreaFactor/2;l$1.save();let w=Math.min(p.length,8),g=Math.min(Math.PI*2/w,Math.PI);for(let b=0;b<w;b++){let D=b*g,N=(b+1)*g,z=t.current.hoveredButtonIndex===b;l$1.beginPath(),l$1.arc(c,u,f,D,N,false),l$1.lineTo(c,u),l$1.closePath(),l$1.lineWidth=1,l$1.strokeStyle=m.graph2D?.button?.stroke||"#FFFFFF",l$1.stroke(),l$1.fillStyle=z?m.graph2D?.button?.hoverFill||"rgba(255, 255, 255, 0.3)":m.graph2D?.button?.normalFill||"rgba(255, 255, 255, 0.1)",l$1.fill();let y=f*.2,C=(D+N)/2,_=f-te.nodeSizeBase/2+y,I=c+Math.cos(C)*_,j=u+Math.sin(C)*_,v=p[b];if(v.loading){let O=y/2,L=y/12;l$1.save(),l$1.translate(I,j),l$1.rotate(t.current.spinnerAngle);for(let G=0;G<12;G++){let K=Math.PI*2*G/12,ee=G/12,ge=Math.cos(K)*O,pe=Math.sin(K)*O;l$1.beginPath(),l$1.fillStyle=l(m.graph2D?.button?.spinnerColor,ee),l$1.arc(ge,pe,L,0,Math.PI*2),l$1.fill();}l$1.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(W),t.current.animation.buttonIndex=b;}else {t.current.animation.id&&t.current.animation.buttonIndex===b&&(cancelAnimationFrame(t.current.animation.id),t.current.animation.id=null,t.current.animation.buttonIndex=null);let O=z?v.hoverImg:v.normalImg,L=v.getCount?v.getCount(e):null;O.complete?q(l$1,O,I,j,y,L,m.graph2D?.button?.textColor):O.onload=()=>{$.current&&q(l$1,O,I,j,y,L,m.graph2D?.button?.textColor);};}}l$1.restore();},[p,m.graph2D?.button]),V=useCallback(e=>{let l=re();!l||l.length===0||(e.globalAlpha=1,l.forEach(c=>{let{x:u,y:f,color:w,fontColor:g,label:b}=c,D=t.current.highlightNodes.has(c)||c===t.current.hoveredNode||c===t.current.draggedNode,N=c===t.current.selectedNode,z=te.nodeSizeBase,y=te.nodeSizeBase/2;if(D&&!N){let C=te.nodeSizeBase*te.nodeAreaFactor*.75/2;e.beginPath(),e.arc(u,f,C,0,2*Math.PI,false),e.fillStyle=m.graph2D.ring.highlightFill,e.fill();}if(N)if(d&&d.length>0)H(c,e);else {let C=te.nodeSizeBase*te.nodeAreaFactor/2;e.beginPath(),e.arc(u,f,C,0,2*Math.PI,false),e.fillStyle=m.graph2D.ring.selectionFill||m.graph2D.ring.highlightFill,e.fill();}if(e.beginPath(),e.arc(u,f,y,0,2*Math.PI),e.fillStyle=w||Y(c.group||"0"),e.fill(),b){e.save(),e.translate(u,f);let C=t.current.transform.k,_=we(C),I=z*te.textPaddingFactor;e.font=`${_}px Sans-Serif`,e.textAlign="center",e.textBaseline="middle",e.fillStyle=g||"#000";let j=le(b,I,e);e.fillText(j,0,0),e.restore();}}));},[m.graph2D.ring,d,H]),W=useCallback(()=>{let e=$.current;e&&(e.clearRect(0,0,t.current.width,t.current.height),ye(e),e.save(),e.setTransform(t.current.transform.k,0,0,t.current.transform.k,t.current.transform.x,t.current.transform.y),ve(e),V(e),e.restore());},[ve,V,ye]),Z=useCallback((e,l=[],c)=>{let u=se()||[],f=re()||[];if(!T.current||!e.length)return;let{width:w,height:g}=t.current,b=c?.smoothAppearance??false,D=c?.transitionDuration??1e3,N=new Set(f.map(v=>v.id)),z=e.filter(v=>!N.has(v.id)),y=new Set(u.map(v=>`${typeof v.source=="object"?v.source.id:v.source}-${typeof v.target=="object"?v.target.id:v.target}`)),C=l.filter(v=>{let O=`${typeof v.source=="object"?v.source.id:v.source}-${typeof v.target=="object"?v.target.id:v.target}`;return !y.has(O)});if(z.length===0&&C.length===0)return;let _=[...f,...z],I=[...u,...C];b&&(z.forEach(v=>{let O=C.filter(L=>{let G=typeof L.source=="object"?L.source.id:L.source,K=typeof L.target=="object"?L.target.id:L.target;return G===v.id&&N.has(K)||K===v.id&&N.has(G)});if(O.length>0){let L=O[0],G=typeof L.source=="object"?L.source.id===v.id?L.target:L.source.id:L.source===v.id?L.target:L.source,K=_.find(ee=>ee.id===G);if(K&&K.x!==void 0&&K.y!==void 0){let ee=30+Math.random()*20,ge=Math.random()*Math.PI*2;v.x=K.x+Math.cos(ge)*ee,v.y=K.y+Math.sin(ge)*ee,v.vx=0,v.vy=0;}}else {let L=w/2,G=g/2,K=Math.min(w,g)/4,ee=Math.random()*Math.PI*2;v.x=L+Math.cos(ee)*(K*Math.random()),v.y=G+Math.sin(ee)*(K*Math.random()),v.vx=0,v.vy=0;}}),f.forEach(v=>{v.fx=v.x,v.fy=v.y;})),T.current.nodes(_);let j=T.current.force("link");j&&j.links(I),C.forEach(v=>{let O=typeof v.source=="object"?v.source:_.find(G=>G.id===v.source),L=typeof v.target=="object"?v.target:_.find(G=>G.id===v.target);!O||!L||(!O.neighbors&&(O.neighbors=[]),!L.neighbors&&(L.neighbors=[]),O.neighbors.push(L),L.neighbors.push(O),!O.links&&(O.links=[]),!L.links&&(L.links=[]),O.links.push(v),L.links.push(v));}),b?(T.current.alphaTarget(.3),T.current.alpha(.3),T.current.velocityDecay(.7),T.current.restart(),setTimeout(()=>{f.forEach(v=>{v.fx=void 0,v.fy=void 0;}),T.current?.alphaTarget(0),T.current?.alpha(.1),T.current?.velocityDecay(.6);},D)):T.current.alpha(.1).restart(),W();},[F,W]),oe=useCallback(e=>{let l=re(),c=se();if(!T.current||!e.length||!l||l.length===0||!c||c.length===0)return;let u=new Set(e);if(t.current.selectedNode&&t.current.selectedNode.id!==void 0&&u.has(t.current.selectedNode.id)&&(t.current.selectedNode=null),t.current.hoveredNode&&t.current.hoveredNode.id!==void 0&&u.has(t.current.hoveredNode.id)&&(t.current.hoveredNode=null,t.current.highlightNodes=new Set,t.current.highlightLinks=new Set),t.current.hoveredLink){let b=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;(b!==void 0&&u.has(b)||D!==void 0&&u.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&&u.has(t.current.draggedNode.id)&&(t.current.draggedNode=null);let f=l.filter(b=>b.id!==void 0&&!u.has(b.id)),w=c.filter(b=>{let D=typeof b.source=="object"?b.source.id:b.source,N=typeof b.target=="object"?b.target.id:b.target;return D!==void 0&&!u.has(D)&&N!==void 0&&!u.has(N)});f.forEach(b=>{b.neighbors=[],b.links=[];}),w.forEach(b=>{let D=typeof b.source=="object"?b.source:f.find(z=>z.id===b.source),N=typeof b.target=="object"?b.target:f.find(z=>z.id===b.target);!D||!N||(D.neighbors=D.neighbors||[],N.neighbors=N.neighbors||[],D.neighbors.push(N),N.neighbors.push(D),D.links=D.links||[],N.links=N.links||[],D.links.push(b),N.links.push(b));}),T.current.nodes(f);let g=T.current.force("link");g&&g.links(w),W();},[W]),ae=useCallback((e=0,l=20)=>{let c=re();if(!$.current||!M.current||!c||!c.length)return;let f=1/0,w=1/0,g=-1/0,b=-1/0;if(c.forEach(D=>{if(D.x===void 0||D.y===void 0)return;let N=D.x,z=D.y;f=Math.min(f,N),w=Math.min(w,z),g=Math.max(g,N),b=Math.max(b,z);}),isFinite(f)&&isFinite(g)&&isFinite(w)&&isFinite(b)){let{width:D,height:N}=t.current;f-=l,w-=l,g+=l,b+=l;let z=g-f,y=b-w,C=z>0?D/z:1,_=y>0?N/y:1,I=Math.min(C,_,10),j=f+z/2,v=w+y/2,O={k:I,x:D/2-j*I,y:N/2-v*I};if(e>0){let L={...t.current.transform},G=Date.now(),K=a(()=>{let ee=Math.min(1,(Date.now()-G)/e),ge=ee===1?1:1-Math.pow(1-ee,3),pe={k:L.k+(O.k-L.k)*ge,x:L.x+(O.x-L.x)*ge,y:L.y+(O.y-L.y)*ge};t.current.transform=pe,W(),ee<1&&requestAnimationFrame(K);},"animateZoom");requestAnimationFrame(K);}else t.current.transform=O,W();}},[]),X=useCallback((e,l)=>{let c=re();if(!c||c.length===0)return null;let u=te.nodeSizeBase/2,f=typeof window<"u"&&window.devicePixelRatio||1,w=(e*f-t.current.transform.x)/t.current.transform.k,g=(l*f-t.current.transform.y)/t.current.transform.k;return c.find(b=>{let D=(b.x||0)-w,N=(b.y||0)-g;return Math.sqrt(D*D+N*N)<=u})||null},[]),Q=useCallback((e,l)=>{let c=se(),u=re();if(!c||c.length===0||!u||u.length===0)return null;let f=typeof window<"u"&&window.devicePixelRatio||1,w=(e*f-t.current.transform.x)/t.current.transform.k,g=(l*f-t.current.transform.y)/t.current.transform.k,b=5;return c.find(D=>{let N=typeof D.source=="object"?D.source:u.find(Ze=>Ze.id===D.source),z=typeof D.target=="object"?D.target:u.find(Ze=>Ze.id===D.target);if(!N||!z)return false;let y=N.x||0,C=N.y||0,_=z.x||0,I=z.y||0,j=w-y,v=g-C,O=_-y,L=I-C,G=j*O+v*L,K=O*O+L*L;if(K===0)return false;let ee=G/K;ee=Math.max(0,Math.min(1,ee));let ge=y+ee*O,pe=C+ee*L,he=w-ge,He=g-pe;return Math.sqrt(he*he+He*He)<=b})||null},[]),de=useCallback((e,l,c,u,f,w,g)=>{let b=e-c,D=l-u,N=Math.sqrt(b*b+D*D),z=Math.atan2(D,b);z<0&&(z+=2*Math.PI);let _=N>=f*.5&&N<=f*1,I=false;return w===Math.PI&&g===Math.PI*2?I=z>=Math.PI&&z<=Math.PI*2:w===0&&g===Math.PI?I=z>=0&&z<=Math.PI:I=w<=g&&z>=w&&z<=g||w>g&&(z>=w||z<=g),_&&I},[]),ce=useCallback(e=>{if(e===t.current.hoveredNode)return;let l=new Set,c=new Set;e&&(l.add(e),e.neighbors&&e.neighbors.forEach(u=>l.add(u)),e.links&&e.links.forEach(u=>c.add(u))),t.current.hoveredNode=e,x&&x(e),t.current.highlightNodes=l,t.current.highlightLinks=c;},[x]),ue=useCallback(e=>{if(e===t.current.hoveredLink)return;let l=new Set,c=new Set;if(e){c.add(e);let u=re();if(u){let f=typeof e.source=="object"?e.source:u.find(g=>g.id===e.source),w=typeof e.target=="object"?e.target:u.find(g=>g.id===e.target);f&&l.add(f),w&&l.add(w);}}t.current.hoveredLink=e,k&&k(e),t.current.highlightNodes=l,t.current.highlightLinks=c;},[k,re]),Se=useCallback(e=>{R&&R(e);},[R]),_e=useCallback(e=>{t.current.selectedNode=e,i&&i(e);},[i]),qe=useCallback(()=>{t.current.selectedNode=null,h&&h();},[h]),Ne=useCallback(e=>{if(!M.current||!T.current)return;let l=M.current.getBoundingClientRect(),c=e.clientX-l.left,u=e.clientY-l.top;t.current.mouseStartPos={x:c,y:u},t.current.isDragging=false;let f=X(c,u);f?(t.current.draggedNode=f,f.fx=f.x,f.fy=f.y):(t.current.isPanning=true,t.current.lastMousePos={x:c,y:u});},[X]),Be=useCallback((e,l)=>{let c=null;if(M.current&&t.current&&p.length>0){let u=te.nodeSizeBase*te.nodeAreaFactor/2,f=M.current.getBoundingClientRect(),w=M.current.width/f.width,g=M.current.height/f.height,b=e*w,D=l*g,N=(b-t.current.transform.x)/t.current.transform.k,z=(D-t.current.transform.y)/t.current.transform.k,y=t.current.selectedNode?.x||0,C=t.current.selectedNode?.y||0,_=Math.min(p.length,8),I=Math.min(Math.PI*2/_,Math.PI);for(let j=0;j<_;j++){let v=j*I,O=(j+1)*I;if(de(N,z,y,C,u,v,O)){c=j;break}}}return c},[p]),Ce=useCallback(e=>{if(!M.current)return;let l=M.current.getBoundingClientRect(),c=e.clientX-l.left,u=e.clientY-l.top;if(t.current.draggedNode&&t.current.mouseStartPos&&T.current){let g=t.current.mouseStartPos.x,b=t.current.mouseStartPos.y,D=c-g,N=u-b;Math.sqrt(D*D+N*N)>3&&(t.current.isDragging=true,T.current.alphaTarget()===0&&T.current.alphaTarget(0).restart());let C=typeof window<"u"&&window.devicePixelRatio||1,_=(c*C-t.current.transform.x)/t.current.transform.k,I=(u*C-t.current.transform.y)/t.current.transform.k;t.current.draggedNode.fx=_,t.current.draggedNode.fy=I;return}if(t.current.isPanning&&t.current.mouseStartPos){let g=c-t.current.lastMousePos.x,b=u-t.current.lastMousePos.y,D=t.current.mouseStartPos.x,N=t.current.mouseStartPos.y;Math.sqrt(Math.pow(c-D,2)+Math.pow(u-N,2))>3&&(t.current.isDragging=true),t.current.transform={...t.current.transform,x:t.current.transform.x+g,y:t.current.transform.y+b},t.current.lastMousePos={x:c,y:u},W();return}let f,w;if(t.current.selectedNode&&M.current&&p.length>0){let g=Be(c,u);g!==null&&(w=t.current.selectedNode),g!==t.current.hoveredButtonIndex&&(f=true),t.current.hoveredButtonIndex=g;}else t.current.hoveredButtonIndex!==null&&(t.current.hoveredButtonIndex=null);if(!w&&(w=X(c,u),!w)){let g=Q(c,u),b=g!==t.current.hoveredLink;if(g&&t.current.hoveredNode&&ce(null),ue(g),M.current&&(M.current.style.cursor=g?"pointer":"default"),b){W();return}}w&&t.current.hoveredLink&&ue(null),w!==t.current.hoveredNode&&(f=true),ce(w),M.current&&(M.current.style.cursor=w?"pointer":"default"),f&&W();},[p,X,Q,ce,ue,W,de,Be]),Pe=useCallback(e=>{t.current.mustBeStoppedPropagation&&(e.stopPropagation(),e.preventDefault()),t.current.mustBeStoppedPropagation=false;},[]),Re=useCallback(e=>{let l=t.current.isDragging;if(l&&(t.current.mustBeStoppedPropagation=true),!l&&t.current.mouseStartPos){let c=M.current?.getBoundingClientRect();if(c){let u=e.clientX-c.left,f=e.clientY-c.top;p.length>0&&t.current.hoveredButtonIndex===null&&(t.current.hoveredButtonIndex=Be(u,f));let w=false;if(t.current.selectedNode&&t.current.hoveredButtonIndex!==null&&d[t.current.hoveredButtonIndex]){let g=d[t.current.hoveredButtonIndex];g&&g.onClick&&(g.onClick(t.current.selectedNode),w=true,t.current.hoveredButtonIndex=null);}if(!w&&t.current.draggedNode)_e(t.current.draggedNode);else if(!w&&!t.current.draggedNode){let g=Q(u,f);g?Se(g):qe();}}}if(t.current.draggedNode&&T.current){if(l){T.current.alphaTarget(0);let c=.05,u=.04,f=.6;T.current.alpha(c).alphaDecay(u),T.current.velocityDecay(f);}else T.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),W();},[d,W,_e,qe,Q,Se,Be,p]),Ue=useCallback(e=>{if(e.stopPropagation(),e.preventDefault(),!M.current)return;let l=M.current.getBoundingClientRect(),c=e.clientX-l.left,u=e.clientY-l.top,w=-e.deltaY>0?1.1:1/1.1,g=t.current.transform,b=g.k*w;if(b<.01||b>10)return;let D=g.k*w,N=c-(c-g.x)*w,z=u-(u-g.y)*w;t.current.transform={k:D,x:N,y:z},W();},[W]),Fe=a((e,l)=>{let c=e.touches[0];if(c){let u={clientX:c.clientX,clientY:c.clientY};l(u);}},"convertTouchToMouseEvent"),et=useCallback(e=>{Fe(e,Ne);},[Ne]),Oe=useCallback(e=>{t.current.mustBeStoppedPropagation&&(e.preventDefault(),e.stopPropagation()),t.current.mustBeStoppedPropagation=false,Fe(e,Re);},[Re]),Lt=useCallback(e=>{Fe(e,Ce);},[Ce]);return useImperativeHandle(P,()=>({zoomToFit:ae,addNodes:Z,removeNodes:oe}),[ae,Z,oe]),useEffect(()=>{let e=M.current,{width:l,height:c}=t.current;if(!e)return;ne(),A(true);let u=l/2,f=c/2,w=te.nodeSizeBase,g=w/2,b=w*2.5;T.current&&T.current.stop();let D=T.current=forceSimulation(F).force("link",forceLink(S).id(N=>N.id).distance(b).strength(.9)).force("charge",forceManyBody().strength(-w/10*200).theta(.5).distanceMin(w*2)).force("x",forceX().strength(.03)).force("y",forceY().strength(.03)).force("center",forceCenter(u,f).strength(.05)).force("collide",forceCollide().radius(g*2).iterations(2).strength(1)).velocityDecay(.6);return ()=>{D.stop();}},[F,S]),useLayoutEffect(()=>{let e=M.current;e&&(t.current.width=o*ft,t.current.height=n*ft,e.width=t.current.width,e.height=t.current.height);},[o,n]),useEffect(()=>{if(T.current){let e=T.current;e.on("tick",()=>{W();}),e.on("end",()=>{E&&(ae(0,20),setTimeout(()=>{A(false);},200));});}E||W();},[F,S,E,W,ae]),useEffect(()=>{!F||!S||S.forEach(e=>{let l=typeof e.source=="object"?e.source:F.find(u=>u.id===e.source),c=typeof e.target=="object"?e.target:F.find(u=>u.id===e.target);!l||!c||(!l.neighbors&&(l.neighbors=[]),!c.neighbors&&(c.neighbors=[]),l.neighbors.push(c),c.neighbors.push(l),!l.links&&(l.links=[]),!c.links&&(c.links=[]),l.links.push(e),c.links.push(e));});},[F,S]),useEffect(()=>{d&&d.length>0&&B(Ho(d));},[d]),useEffect(()=>{let e=M.current;if(!(!e||typeof window>"u"))return e.addEventListener("wheel",Ue,{passive:false}),e.addEventListener("touchend",Oe,{passive:false}),()=>{e.removeEventListener("wheel",Ue),e.removeEventListener("touchend",Oe);}},[Ue,Oe]),jsxs($o,{children:[(r||E)&&jsx(pr,{width:o,height:n}),jsx(Xo,{ref:M,style:{width:o,height:n,display:r||E?"none":"block"},onMouseDown:Ne,onMouseMove:Ce,onMouseUp:Re,onMouseLeave:Re,onClick:Pe,onTouchStart:et,onTouchMove:Lt})]})}),$o=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
- `,$o=styled.canvas``;Ho.displayName="Graph2D";var Kc=w(({isActive:r,position:o,top:n=0,left:a=0,right:d,bottom:i,...g})=>jsx(qo,{$isActive:r,$position:o,$top:n,$left:a,$right:d,$bottom:i,...g})),qo=wo.div(({$isActive:r,$top:o,$left:n,$right:a,$bottom:d,$position:i,theme:g})=>`
54
+ `,Xo=styled.canvas``;Wo.displayName="Graph2D";var Qc=w(({isActive:r,position:o,top:n=0,left:a=0,right:d,bottom:i,...h})=>jsx(Uo,{$isActive:r,$position:o,$top:n,$left:a,$right:d,$bottom:i,...h})),Uo=xo.div(({$isActive:r,$top:o,$left:n,$right:a,$bottom:d,$position:i,theme:h})=>`
55
55
  ${r?`
56
56
  position: ${i};
57
57
  z-index: 1000;
58
- ${typeof o=="number"?`top: ${c(o,g.baseSize)};`:""}
59
- ${typeof n=="number"?`left: ${c(n,g.baseSize)};`:""}
60
- ${typeof a=="number"?`right: ${c(a,g.baseSize)};`:""}
61
- ${typeof d=="number"?`bottom: ${c(d,g.baseSize)};`:""}
58
+ ${typeof o=="number"?`top: ${c(o,h.baseSize)};`:""}
59
+ ${typeof n=="number"?`left: ${c(n,h.baseSize)};`:""}
60
+ ${typeof a=="number"?`right: ${c(a,h.baseSize)};`:""}
61
+ ${typeof d=="number"?`bottom: ${c(d,h.baseSize)};`:""}
62
62
 
63
63
  `:""}
64
64
 
65
65
  min-width: 0;
66
- `);var Vo=[.1,.25,.5,.75,1,1.5,2,3,4,5],Zo=5,Go=.1,Ko=140,mr=a(({url:r,alt:o="image",naturalWidth:n,naturalHeight:a$1,zoomSteps:d=Vo,maxZoom:i=Zo,minZoom:g=Go,showMinimap:x=true,minimapWidth:k=Ko,className:R,onZoomChange:D})=>{let[h,L]=useState("adaptive"),[z$1,t]=useState(1),[B,C]=useState(false),[p,j]=useState(false),[T,E]=useState(false),[H,X]=useState(false),[ae,ne]=useState(false),[ge,be]=useState({left:0,top:0}),[ve,Pe]=useState({width:0,height:0}),ye=useRef({width:0,height:0}),W=useRef(null),_=useRef(null),G=useRef({x:0,y:0,scrollLeft:0,scrollTop:0}),F=useRef(void 0),re=useRef(false),K=n||ye.current.width,Q=a$1||ye.current.height,Y=useCallback(()=>{if(!_.current||K===0)return 1;let y=_.current.getBoundingClientRect();return Math.min(y.width/K,y.height/Q,1)},[K,Q]),ee=useCallback((y,I)=>{let f=[...d].sort((P,S)=>P-S);if(I==="in"){let P=f.find(S=>S>y+.001);return P!==void 0?Math.min(P,i):y}else {let P=[...f].reverse().find(S=>S<y-.001);return P!==void 0?Math.max(P,g):y}},[d,i,g]),ce=useCallback(()=>h==="adaptive"?Y():z$1,[h,Y,z$1]),le=useCallback(y=>{L("manual"),t(y),D?.(y,"manual");},[D]),ue=useCallback(()=>{L("adaptive"),D?.(Y(),"adaptive");},[Y,D]),De=useCallback(y=>{requestAnimationFrame(()=>{let I=_.current;if(!I)return;let f=K*y,P=Q*y,S=I.getBoundingClientRect(),$=f<S.width?(S.width-f)/2:0,V=P<S.height?(S.height-P)/2:0;I.scrollLeft=f/2+$-S.width/2,I.scrollTop=P/2+V-S.height/2;});},[K,Q]);useEffect(()=>{L("adaptive"),t(1),j(false),X(false),ne(false),ye.current={width:0,height:0};},[r]),useEffect(()=>{let y=_.current;if(!y)return;let I=new ResizeObserver(f=>{let P=f[0];P&&Pe({width:P.contentRect.width,height:P.contentRect.height});});return I.observe(y),()=>I.disconnect()},[]),useEffect(()=>{let y=_.current;if(!y)return;let I=a(()=>{be({left:y.scrollLeft,top:y.scrollTop});},"handleScroll");return y.addEventListener("scroll",I,{passive:true}),()=>y.removeEventListener("scroll",I)},[]),useEffect(()=>{let y=_.current;if(!y||!H)return;let I=a(f=>{if(!(f.ctrlKey||f.metaKey))return;f.preventDefault();let P=ce(),S=f.deltaY>0?"out":"in",$=ee(P,S),V=Y();if(S==="out"&&$<=V){ue();return}let Z=y.getBoundingClientRect(),de,Te;if(h==="adaptive"){let ie=W.current;if(!ie)return;let me=ie.getBoundingClientRect();de=(f.clientX-me.left)/(me.width/K),Te=(f.clientY-me.top)/(me.height/Q);}else {let ie=K*P,me=Q*P,we=ie<Z.width?(Z.width-ie)/2:0,Ee=me<Z.height?(Z.height-me)/2:0;de=(y.scrollLeft+f.clientX-Z.left-we)/P,Te=(y.scrollTop+f.clientY-Z.top-Ee)/P;}le($),requestAnimationFrame(()=>{let ie=y.getBoundingClientRect(),me=K*$,we=Q*$,Ee=me<ie.width?(ie.width-me)/2:0,dt=we<ie.height?(ie.height-we)/2:0;y.scrollLeft=de*$+Ee-(f.clientX-ie.left),y.scrollTop=Te*$+dt-(f.clientY-ie.top);});},"handleWheel");return y.addEventListener("wheel",I,{passive:false}),()=>y.removeEventListener("wheel",I)},[H,h,z$1,K,Q,ce,ee,Y,le,ue]),useEffect(()=>{if(h!=="manual")return;let y=_.current;if(!y)return;let I=a(S=>{S.button===0&&(C(true),G.current={x:S.clientX,y:S.clientY,scrollLeft:y.scrollLeft,scrollTop:y.scrollTop});},"handleMouseDown"),f=a(S=>{if(!B)return;let{x:$,y:V,scrollLeft:Z,scrollTop:de}=G.current;y.scrollLeft=Z-(S.clientX-$),y.scrollTop=de-(S.clientY-V);},"handleMouseMove"),P=a(()=>{C(false);},"handleMouseUp");return y.addEventListener("mousedown",I),window.addEventListener("mousemove",f),window.addEventListener("mouseup",P),()=>{y.removeEventListener("mousedown",I),window.removeEventListener("mousemove",f),window.removeEventListener("mouseup",P);}},[h,B]);let Ae=useCallback(()=>{h==="manual"&&ue();},[h,ue]),qe=useCallback(()=>{p||h!=="adaptive"||(j(true),E(true),F.current=setTimeout(()=>E(false),4e3));},[p,h]);useEffect(()=>()=>{F.current&&clearTimeout(F.current);},[]);let Re=useCallback(()=>{let y=ce(),I=ee(y,"in");I!==y&&(le(I),De(I));},[ce,ee,le,De]),Oe=useCallback(()=>{let y=ce(),I=ee(y,"out"),f=Y();if(I<=f){ue();return}le(I),De(I);},[ce,ee,Y,ue,le,De]),Ce=useCallback(()=>{ue();},[ue]),Ue=useCallback(()=>{le(1),De(1);},[le,De]),He=useCallback(()=>{let y=W.current;y&&(ye.current={width:y.naturalWidth,height:y.naturalHeight},X(true),ne(false));},[]),Ve=ce(),We=K*(h==="manual"?z$1:1),et=Q*(h==="manual"?z$1:1),Be=ve.width||(_.current?.getBoundingClientRect().width??0),Ze=ve.height||(_.current?.getBoundingClientRect().height??0),e=h==="manual"&&We<Be?(Be-We)/2:0,u=h==="manual"&&et<Ze?(Ze-et)/2:0,c=x&&h==="manual"&&(We>Be||et>Ze);re.current=c;let l=K>0?k/K:0,m=Q*l,w=Be>0?Be/z$1*l:0,b=Ze>0?Ze/z$1*l:0,v=Math.max(0,ge.left-e)/z$1*l,M=Math.max(0,ge.top-u)/z$1*l,N=h==="adaptive"?"Fit":`${Math.round(z$1*100)}%`,A=ee(Ve,"in")!==Ve,U=h==="manual"||Ve>g,O=h==="adaptive"?{maxWidth:"100%",maxHeight:"100%",objectFit:"contain"}:{width:We,height:et,maxWidth:"none",maxHeight:"none",marginLeft:e,marginTop:u,flexShrink:0},oe={cursor:h==="manual"?B?"grabbing":"grab":"default"};return jsxs("div",{className:`h-full w-full flex flex-col min-h-0 min-w-0 overflow-hidden ${R??""}`,children:[jsxs("div",{className:"flex w-full items-center py-2 px-3 gap-1 border-b border-gray-200 shrink-0",children:[jsx(z,{variant:"outlined","aria-label":"zoom-out",color:"default",size:"small",icon:jsx(Pa,{style:{width:12,height:12}}),onClick:Oe,disabled:!U,p:8,className:"bg-white! hover:bg-blue-50! h-8!"}),jsx("div",{onClick:h==="manual"?Ce:void 0,className:"flex items-center justify-center bg-white h-8! min-w-16 px-3 select-none border border-gray-300 rounded-md",children:jsx(Ya,{style:{fontSize:12,fontWeight:500},children:N})}),jsx(z,{variant:"outlined","aria-label":"zoom-in",size:"small",color:"default",icon:jsx(ma$1,{style:{width:12,height:12}}),onClick:Re,disabled:!A,className:"bg-white! hover:bg-blue-50! h-8!",p:8}),jsx(z,{variant:"outlined","aria-label":"fit-to-container",size:"small",color:h==="adaptive"?"primary":"default",icon:jsx(ra,{style:{width:12,height:12}}),onClick:Ce,className:`${h==="adaptive"?"bg-blue-50!":"bg-white! hover:bg-blue-50!"} h-8! ml-auto`,p:8}),jsx(z,{variant:"outlined","aria-label":"original-size",size:"small",color:h==="manual"&&z$1===1?"primary":"default",onClick:Ue,className:`${h==="manual"&&z$1===1?"bg-blue-50!":"bg-white! hover:bg-blue-50!"} h-8! `,p:8,children:jsx(Ya,{style:{fontSize:12,fontWeight:500,lineHeight:1},children:"1:1"})})]}),jsxs("div",{ref:_,className:`flex-1 min-h-0 min-w-0 relative ${h==="adaptive"?"flex items-center justify-center overflow-hidden":"overflow-auto"}`,style:oe,onDoubleClick:Ae,onMouseEnter:qe,children:[ae?jsx("div",{className:"flex items-center justify-center h-full w-full",children:jsx(Ya,{color:"text.lighter",children:"Failed to load image"})}):jsx("img",{ref:W,src:r,alt:o,draggable:false,className:"block select-none",style:O,onLoad:He,onError:()=>ne(true)}),c&&jsxs("div",{className:"absolute bottom-3 right-3 rounded-lg overflow-hidden shadow-lg",style:{width:k,height:m,backdropFilter:"blur(8px)",background:"rgba(255,255,255,0.75)",animation:"minimap-enter 250ms cubic-bezier(0.4,0,0.2,1) forwards"},children:[jsx("img",{src:r,alt:"",draggable:false,className:"block w-full h-full object-contain pointer-events-none"}),jsx("div",{className:"absolute border-2 border-blue-500 rounded-sm",style:{width:Math.min(w,k),height:Math.min(b,m),left:Math.max(0,Math.min(v,k-w)),top:Math.max(0,Math.min(M,m-b)),background:"rgba(59,130,246,0.1)"}})]}),T&&jsx("div",{className:"absolute bottom-3 left-1/2 px-4 py-2 rounded-lg text-xs text-white pointer-events-none select-none",style:{transform:"translateX(-50%)",background:"rgba(0,0,0,0.7)",backdropFilter:"blur(4px)",animation:T?"hint-fade-in 300ms ease forwards":"hint-fade-out 300ms ease forwards"},children:"Ctrl+Scroll \u0434\u043B\u044F \u0437\u0443\u043C\u0443 \xB7 \u041F\u043E\u0434\u0432\u0456\u0439\u043D\u0438\u0439 \u043A\u043B\u0456\u043A \u2014 \u0441\u043A\u0438\u043D\u0443\u0442\u0438"})]}),jsx("style",{children:`
67
- @keyframes minimap-enter {
68
- from { opacity: 0; transform: translateY(8px) scale(0.95); }
69
- to { opacity: 1; transform: translateY(0) scale(1); }
70
- }
71
- @keyframes hint-fade-in {
72
- from { opacity: 0; }
73
- to { opacity: 1; }
74
- }
75
- @keyframes hint-fade-out {
76
- from { opacity: 1; }
77
- to { opacity: 0; }
78
- }
79
- `})]})},"ImageDriver");var br=a(({url:r})=>jsx("div",{className:"flex flex-col justify-center items-center w-full h-full py-5.5 px-8.5",children:jsx("audio",{controls:true,src:r,className:"w-full"})}),"AudioDriver");var zt=a(({url:r})=>{let[o,n]=useState(null),[a$1,d]=useState(false),[i,g]=useState(true),[x,k]=useState(null);return useEffect(()=>{d(true);},[]),useEffect(()=>{if(!a$1)return;a(async()=>{try{let D=await import('./PdfDriver-ZHGUHQV2.mjs');n(()=>D.PdfDriver),g(!1);}catch(D){console.error("Failed to load PDF driver:",D),k("Failed to load PDF viewer"),g(false);}},"loadPdfDriver")();},[a$1]),a$1?i?jsx("div",{className:"flex items-center justify-center h-full w-full",children:jsx("div",{className:"text-gray-500",children:"Loading PDF viewer..."})}):x||!o?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:x||"PDF viewer unavailable"})})}):jsx(o,{url:r}):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 wr=50,en=1e4,xr=a(({url:r,blob:o})=>{let n=useRef(null),a$1=useRef(null),[d,i]=useState(null),[g,x]=useState(true),[k,R]=useState(1),D=useRef(false),[h,L]=useState({width:0,height:0}),z$1=useRef(0),t=a(()=>{D.current=true,R(C=>Math.min(C+.25,4));},"handleZoomIn"),B=a(()=>{D.current=true,R(C=>Math.max(C-.25,.25));},"handleZoomOut");return useEffect(()=>{a(async()=>{if(a$1.current)try{x(!0),i(null);let p=o;if(!p&&r&&(p=await(await fetch(r)).blob()),!p){i("\u041D\u0435 \u043D\u0430\u0434\u0430\u043D\u043E \u0434\u043B\u044F DOCX \u0444\u0430\u0439\u043B\u0443");return}if(p.size/(1024*1024)>wr){i(`\u0424\u0430\u0439\u043B \u0437\u0430\u043D\u0430\u0434\u0442\u043E \u0432\u0435\u043B\u0438\u043A\u0438\u0439 (> ${wr} \u041C\u0411)`);return}a$1.current.innerHTML="";let T=renderAsync(p,a$1.current,void 0,{debug:!0,experimental:!0,hideWrapperOnPrint:!0,breakPages:!0,ignoreLastRenderedPageBreak:!1}),E=new Promise((X,ae)=>setTimeout(()=>ae(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")),en));await Promise.race([T,E]),await new Promise(X=>requestAnimationFrame(X));let H=a$1.current.querySelector(".docx-wrapper");if(H&&(z$1.current=H.offsetWidth,L({width:H.offsetWidth,height:H.offsetHeight})),n.current&&z$1.current>0){let X=n.current.clientWidth,ae=Math.min(X/z$1.current,1);R(ae);}x(!1);}catch(p){i(p?.message||"\u041D\u0435 \u0432\u0434\u0430\u043B\u043E\u0441\u044F \u0432\u0456\u0434\u043A\u0440\u0438\u0442\u0438 DOCX \u0444\u0430\u0439\u043B"),x(false);}},"renderDocument")();},[r,o]),useEffect(()=>{if(!n.current)return;let C=Qo(j=>{if(!(D.current||z$1.current===0))for(let T of j){let E=T.contentRect.width,H=Math.min(E/z$1.current,1);R(H);}},150),p=new ResizeObserver(C);return p.observe(n.current),()=>{p.disconnect(),C.cancel();}},[]),jsxs("div",{className:"h-full w-full flex flex-col px-0.5",children:[jsxs("div",{className:"flex justify-center items-stretch px-8 py-3 gap-1 border-b border-gray-200",children:[jsx(z,{variant:"outlined","aria-label":"zoom-out",color:"default",size:"small",icon:jsx(Pa,{style:{width:20,height:20}}),onClick:B,disabled:k<=.25,className:"bg-white! hover:bg-blue-50!",p:7}),jsxs(pb,{py:8,px:8,className:"flex items-center justify-between gap-1.5 min-w-21 rounded-[5px]!",children:[jsx(Ya,{color:"text.lighter",style:{fontSize:10},children:"Scale:"}),jsxs(Ya,{children:[Math.round(k*100),"%"]})]}),jsx(z,{variant:"outlined","aria-label":"zoom-in",size:"small",color:"default",icon:jsx(ma$1,{style:{width:14,height:14}}),onClick:t,disabled:k>=4,className:"bg-white! hover:bg-blue-50!",p:10})]}),!!d&&!g&&jsx("div",{className:"text-red-500 p-8",children:d}),g&&jsx("div",{className:"flex items-center justify-center p-8",children:"\u0417\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0435\u043D\u043D\u044F..."}),jsx("div",{ref:n,className:"w-full h-full overflow-auto [&::-webkit-scrollbar-thumb]:bg-gray-100 [&::-webkit-scrollbar-track]:bg-[gray]",style:{backgroundColor:"gray",scrollbarGutter:"stable both-edges",scrollbarColor:"#f1f1f1 gray"},children:jsx("div",{style:{width:h.width>0?h.width*k:void 0,height:h.height>0?h.height*k:void 0,overflow:"hidden",margin:"0 auto"},children:jsx("div",{ref:a$1,className:`[&>div.docx-wrapper_table_*]:wrap-break-word!
66
+ `);var Go=[.1,.25,.5,.75,1,1.5,2,3,4,5],Ko=5,Jo=.1,Qo=140;function mt(r,o,n,a){return {x:r<n?(n-r)/2:0,y:o<a?(a-o)/2:0}}a(mt,"computePadding");var gr=a(({url:r,alt:o="image",naturalWidth:n,naturalHeight:a$1,zoomSteps:d=Go,maxZoom:i=Ko,minZoom:h=Jo,showMinimap:x=true,minimapWidth:k=Qo,className:R,onZoomChange:P})=>{let[m,E]=useState("adaptive"),[A,t]=useState(1),[F,S]=useState(false),p=useRef(false),[B,M]=useState(false),[T,$]=useState(false),[Y,ne]=useState({left:0,top:0}),re=useRef(0),[se,ye]=useState({width:0,height:0}),le=useRef({width:0,height:0}),we=useRef(null),ve=useRef(null),q=useRef({x:0,y:0,scrollLeft:0,scrollTop:0}),H=useRef(m),V=useRef(A),W=useRef(P);H.current=m,V.current=A,W.current=P;let Z=n||le.current.width,oe=a$1||le.current.height,ae=useMemo(()=>[...d].sort((y,C)=>y-C),[d]),X=useCallback(()=>se.width===0||Z===0?1:Math.min(se.width/Z,se.height/oe,1),[se,Z,oe]),Q=useCallback((y,C)=>{if(C==="in"){let I=ae.find(j=>j>y+.001);return I!==void 0?Math.min(I,i):y}let _=ae.findLast(I=>I<y-.001);return _!==void 0?Math.max(_,h):y},[ae,i,h]),de=useCallback(()=>H.current==="adaptive"?X():V.current,[X]),ce=useCallback(y=>{E("manual"),t(y),W.current?.(y,"manual");},[]),ue=useCallback(()=>{E("adaptive"),W.current?.(X(),"adaptive");},[X]),Se=useCallback(y=>{requestAnimationFrame(()=>{let C=ve.current;if(!C)return;let _=C.getBoundingClientRect(),I=Z*y,j=oe*y,v=mt(I,j,_.width,_.height);C.scrollLeft=I/2+v.x-_.width/2,C.scrollTop=j/2+v.y-_.height/2;});},[Z,oe]);useEffect(()=>{E("adaptive"),t(1),M(false),$(false),le.current={width:0,height:0};},[r]),useEffect(()=>{let y=ve.current;if(!y)return;let C=new ResizeObserver(_=>{let I=_[0];if(!I)return;let{width:j,height:v}=I.contentRect;ye(O=>O.width===j&&O.height===v?O:{width:j,height:v});});return C.observe(y),()=>C.disconnect()},[]),useEffect(()=>{let y=ve.current;if(!y)return;let C=a(()=>{cancelAnimationFrame(re.current),re.current=requestAnimationFrame(()=>{let _=y.scrollLeft,I=y.scrollTop;ne(j=>j.left===_&&j.top===I?j:{left:_,top:I});});},"handleScroll");return y.addEventListener("scroll",C,{passive:true}),()=>{y.removeEventListener("scroll",C),cancelAnimationFrame(re.current);}},[]),useEffect(()=>{let y=ve.current;if(!y||!B)return;let C=a(_=>{if(!(_.ctrlKey||_.metaKey))return;_.preventDefault();let I=de(),j=_.deltaY>0?"out":"in",v=Q(I,j),O=X();if(j==="out"&&v<=O){ue();return}let L=y.getBoundingClientRect(),G,K,ee=le.current.width||1,ge=le.current.height||1;if(H.current==="adaptive"){let pe=we.current;if(!pe)return;let he=pe.getBoundingClientRect();G=(_.clientX-he.left)/(he.width/ee),K=(_.clientY-he.top)/(he.height/ge);}else {let pe=ee*I,he=ge*I,He=mt(pe,he,L.width,L.height);G=(y.scrollLeft+_.clientX-L.left-He.x)/I,K=(y.scrollTop+_.clientY-L.top-He.y)/I;}ce(v),requestAnimationFrame(()=>{let pe=y.getBoundingClientRect(),he=mt(ee*v,ge*v,pe.width,pe.height);y.scrollLeft=G*v+he.x-(_.clientX-pe.left),y.scrollTop=K*v+he.y-(_.clientY-pe.top);});},"handleWheel");return y.addEventListener("wheel",C,{passive:false}),()=>y.removeEventListener("wheel",C)},[B,de,Q,X,ce,ue]),useEffect(()=>{if(m!=="manual")return;let y=ve.current;if(!y)return;let C=a(j=>{j.button===0&&(j.preventDefault(),p.current=true,S(true),q.current={x:j.clientX,y:j.clientY,scrollLeft:y.scrollLeft,scrollTop:y.scrollTop});},"handleMouseDown"),_=a(j=>{if(!p.current)return;let{x:v,y:O,scrollLeft:L,scrollTop:G}=q.current;y.scrollLeft=L-(j.clientX-v),y.scrollTop=G-(j.clientY-O);},"handleMouseMove"),I=a(()=>{p.current=false,S(false);},"handleMouseUp");return y.addEventListener("mousedown",C),window.addEventListener("mousemove",_),window.addEventListener("mouseup",I),()=>{y.removeEventListener("mousedown",C),window.removeEventListener("mousemove",_),window.removeEventListener("mouseup",I);}},[m]);let _e=useCallback(()=>{m==="manual"&&ue();},[m,ue]),qe=useCallback(()=>{let y=de(),C=Q(y,"in");C!==y&&(ce(C),Se(C));},[de,Q,ce,Se]),Ne=useCallback(()=>{let y=de(),C=Q(y,"out");if(C<=X()){ue();return}ce(C),Se(C);},[de,Q,X,ue,ce,Se]),Be=useCallback(()=>{ce(1),Se(1);},[ce,Se]),Ce=useCallback(()=>{let y=we.current;y&&(le.current={width:y.naturalWidth,height:y.naturalHeight},M(true),$(false));},[]),Pe=m==="adaptive"?X():A,Re=Z*Pe,Ue=oe*Pe,Fe=se.width,et=se.height,Oe=m==="manual"?mt(Re,Ue,Fe,et):{x:0,y:0},Lt=x&&m==="manual"&&(Re>Fe||Ue>et),e=Z>0?k/Z:0,l=oe*e,c=Fe>0?Fe/A*e:0,u=et>0?et/A*e:0,f=Math.max(0,Y.left-Oe.x)/A*e,w=Math.max(0,Y.top-Oe.y)/A*e,g=m==="adaptive"?"Fit":`${Math.round(A*100)}%`,b=Q(Pe,"in")!==Pe,D=m==="manual"||Pe>h,N=m==="adaptive"?{maxWidth:"100%",maxHeight:"100%",objectFit:"contain"}:{width:Re,height:Ue,maxWidth:"none",maxHeight:"none",marginLeft:Oe.x,marginTop:Oe.y,flexShrink:0},z$1={cursor:m==="manual"?F?"grabbing":"grab":"default"};return jsxs("div",{className:`h-full w-full flex flex-col min-h-0 min-w-0 overflow-hidden ${R??""}`,children:[jsxs("div",{className:"flex w-full items-center py-2 px-3 gap-1 border-b border-gray-200 shrink-0",children:[jsx(z,{variant:"outlined","aria-label":"zoom-out",color:"default",size:"small",icon:jsx(Pa,{style:{width:12,height:12}}),onClick:Ne,disabled:!D,p:8,className:"bg-white! hover:bg-blue-50! h-8!"}),jsx("button",{type:"button",onClick:m==="manual"?ue:void 0,className:"flex items-center justify-center bg-white h-8! min-w-16 px-3 select-none border border-gray-300 rounded-md","aria-label":g,children:jsx(Ya,{style:{fontSize:12,fontWeight:500},children:g})}),jsx(z,{variant:"outlined","aria-label":"zoom-in",size:"small",color:"default",icon:jsx(ma$1,{style:{width:12,height:12}}),onClick:qe,disabled:!b,className:"bg-white! hover:bg-blue-50! h-8!",p:8}),jsx(z,{variant:"outlined","aria-label":"fit-to-container",size:"small",color:m==="adaptive"?"primary":"default",icon:jsx(ra,{style:{width:12,height:12}}),onClick:ue,className:`${m==="adaptive"?"bg-blue-50!":"bg-white! hover:bg-blue-50!"} h-8! ml-auto`,p:8}),jsx(z,{variant:"outlined","aria-label":"original-size",size:"small",color:m==="manual"&&A===1?"primary":"default",onClick:Be,className:`${m==="manual"&&A===1?"bg-blue-50!":"bg-white! hover:bg-blue-50!"} h-8!`,p:8,children:jsx(Ya,{style:{fontSize:12,fontWeight:500,lineHeight:1},children:"1:1"})})]}),jsxs("div",{className:"flex-1 min-h-0 min-w-0 relative",children:[jsx("div",{ref:ve,className:`h-full w-full ${m==="adaptive"?"flex items-center justify-center overflow-hidden":"overflow-auto"}`,style:z$1,onDoubleClick:_e,children:T?jsx("div",{className:"flex items-center justify-center h-full w-full",children:jsx(Ya,{color:"text.lighter",children:"Failed to load image"})}):jsx("img",{ref:we,src:r,alt:o,draggable:false,className:"block select-none",style:N,onLoad:Ce,onError:()=>$(true)})}),Lt&&jsxs("div",{className:"absolute bottom-3 right-3 rounded-lg overflow-hidden shadow-lg pointer-events-none",style:{width:k,height:l,backdropFilter:"blur(8px)",background:"rgba(255,255,255,0.75)"},children:[jsx("img",{src:r,alt:"",draggable:false,className:"block w-full h-full object-contain"}),jsx("div",{className:"absolute border-2 border-blue-500 rounded-sm",style:{width:Math.min(c,k),height:Math.min(u,l),left:Math.max(0,Math.min(f,k-c)),top:Math.max(0,Math.min(w,l-u)),background:"rgba(59,130,246,0.1)"}})]})]})]})},"ImageDriver");var vr=a(({url:r})=>jsx("div",{className:"flex flex-col justify-center items-center w-full h-full py-5.5 px-8.5",children:jsx("audio",{controls:true,src:r,className:"w-full"})}),"AudioDriver");var zt=a(({url:r})=>{let[o,n]=useState(null),[a$1,d]=useState(false),[i,h]=useState(true),[x,k]=useState(null);return useEffect(()=>{d(true);},[]),useEffect(()=>{if(!a$1)return;a(async()=>{try{let P=await import('./PdfDriver-ZDVOQI63.mjs');n(()=>P.PdfDriver),h(!1);}catch(P){console.error("Failed to load PDF driver:",P),k("Failed to load PDF viewer"),h(false);}},"loadPdfDriver")();},[a$1]),a$1?i?jsx("div",{className:"flex items-center justify-center h-full w-full",children:jsx("div",{className:"text-gray-500",children:"Loading PDF viewer..."})}):x||!o?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:x||"PDF viewer unavailable"})})}):jsx(o,{url:r}):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 xr=50,rn=1e4,kr=a(({url:r,blob:o})=>{let n=useRef(null),a$1=useRef(null),[d,i]=useState(null),[h,x]=useState(true),[k,R]=useState(1),P=useRef(false),[m,E]=useState({width:0,height:0}),A=useRef(0),t=a(()=>{P.current=true,R(S=>Math.min(S+.25,4));},"handleZoomIn"),F=a(()=>{P.current=true,R(S=>Math.max(S-.25,.25));},"handleZoomOut");return useEffect(()=>{a(async()=>{if(a$1.current)try{x(!0),i(null);let p=o;if(!p&&r&&(p=await(await fetch(r)).blob()),!p){i("\u041D\u0435 \u043D\u0430\u0434\u0430\u043D\u043E \u0434\u043B\u044F DOCX \u0444\u0430\u0439\u043B\u0443");return}if(p.size/(1024*1024)>xr){i(`\u0424\u0430\u0439\u043B \u0437\u0430\u043D\u0430\u0434\u0442\u043E \u0432\u0435\u043B\u0438\u043A\u0438\u0439 (> ${xr} \u041C\u0411)`);return}a$1.current.innerHTML="";let M=renderAsync(p,a$1.current,void 0,{debug:!0,experimental:!0,hideWrapperOnPrint:!0,breakPages:!0,ignoreLastRenderedPageBreak:!1}),T=new Promise((Y,ne)=>setTimeout(()=>ne(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")),rn));await Promise.race([M,T]),await new Promise(Y=>requestAnimationFrame(Y));let $=a$1.current.querySelector(".docx-wrapper");if($&&(A.current=$.offsetWidth,E({width:$.offsetWidth,height:$.offsetHeight})),n.current&&A.current>0){let Y=n.current.clientWidth,ne=Math.min(Y/A.current,1);R(ne);}x(!1);}catch(p){i(p?.message||"\u041D\u0435 \u0432\u0434\u0430\u043B\u043E\u0441\u044F \u0432\u0456\u0434\u043A\u0440\u0438\u0442\u0438 DOCX \u0444\u0430\u0439\u043B"),x(false);}},"renderDocument")();},[r,o]),useEffect(()=>{if(!n.current)return;let S=tn(B=>{if(!(P.current||A.current===0))for(let M of B){let T=M.contentRect.width,$=Math.min(T/A.current,1);R($);}},150),p=new ResizeObserver(S);return p.observe(n.current),()=>{p.disconnect(),S.cancel();}},[]),jsxs("div",{className:"h-full w-full flex flex-col px-0.5",children:[jsxs("div",{className:"flex justify-center items-stretch px-8 py-3 gap-1 border-b border-gray-200",children:[jsx(z,{variant:"outlined","aria-label":"zoom-out",color:"default",size:"small",icon:jsx(Pa,{style:{width:20,height:20}}),onClick:F,disabled:k<=.25,className:"bg-white! hover:bg-blue-50!",p:7}),jsxs(pb,{py:8,px:8,className:"flex items-center justify-between gap-1.5 min-w-21 rounded-[5px]!",children:[jsx(Ya,{color:"text.lighter",style:{fontSize:10},children:"Scale:"}),jsxs(Ya,{children:[Math.round(k*100),"%"]})]}),jsx(z,{variant:"outlined","aria-label":"zoom-in",size:"small",color:"default",icon:jsx(ma$1,{style:{width:14,height:14}}),onClick:t,disabled:k>=4,className:"bg-white! hover:bg-blue-50!",p:10})]}),!!d&&!h&&jsx("div",{className:"text-red-500 p-8",children:d}),h&&jsx("div",{className:"flex items-center justify-center p-8",children:"\u0417\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0435\u043D\u043D\u044F..."}),jsx("div",{ref:n,className:"w-full h-full overflow-auto [&::-webkit-scrollbar-thumb]:bg-gray-100 [&::-webkit-scrollbar-track]:bg-[gray]",style:{backgroundColor:"gray",scrollbarGutter:"stable both-edges",scrollbarColor:"#f1f1f1 gray"},children:jsx("div",{style:{width:m.width>0?m.width*k:void 0,height:m.height>0?m.height*k:void 0,overflow:"hidden",margin:"0 auto"},children:jsx("div",{ref:a$1,className:`[&>div.docx-wrapper_table_*]:wrap-break-word!
80
67
  [&>div.docx-wrapper_table]:table-fixed!
81
68
  [&>div.docx-wrapper_table_td]:w-fit!
82
69
  [&>div.docx-wrapper_table_col]:w-fit!
@@ -92,11 +79,11 @@ ${r?`
92
79
  [&>div.docx-wrapper]:box-border
93
80
  [&>div.docx-wrapper]:min-w-fit!
94
81
  [&>div.docx-wrapper]:w-full!
95
- [&>div.docx-wrapper]:min-h-full`,style:{boxSizing:"border-box",wordBreak:"break-word",overflowWrap:"break-word",transform:`scale(${k})`,transformOrigin:"top left"}})})})]})},"DocxDriver");var mn=a(r=>({js:[javascript({jsx:false})],jsx:[javascript({jsx:true})],ts:[javascript({typescript:true,jsx:false})],tsx:[javascript({typescript:true,jsx:true})],json:[json()],html:[html()],css:[css()],scss:[css()],py:[python()],java:[java()],cpp:[cpp()],c:[cpp()],php:[php()],rs:[rust()],xml:[xml()],yaml:[yaml()],yml:[yaml()],md:[markdown()],sql:[sql()],sh:[markdown()],bash:[markdown()]})[r]||[],"getLanguageExtension"),Mr=a(({url:r,extension:o})=>{let[n,a$1]=useState(""),[d,i]=useState(true),[g,x]=useState(null),[k,R]=useState(0),D=useRef(null);if(useEffect(()=>{a(async()=>{try{i(!0),x(null);let t=await fetch(r);if(!t.ok)throw new Error(`Failed to load file: ${t.statusText}`);let B=await t.text();if(o==="json")try{B=JSON.stringify(JSON.parse(B),null,2);}catch{}a$1(B);}catch(t){x(t instanceof Error?t.message:"Failed to load text content");}finally{i(false);}},"loadTextContent")();},[r]),useEffect(()=>{let z=a(()=>{if(D.current){let t=D.current.clientHeight;R(t);}},"updateHeight");return z(),window.addEventListener("resize",z),()=>{window.removeEventListener("resize",z);}},[d]),d)return jsx("div",{className:"flex items-center justify-center p-8.5",children:jsx("div",{className:"text-gray-500",children:"Loading text content..."})});if(g)return jsx("div",{className:"flex items-center justify-center p-8.5",children:jsxs("div",{className:"text-red-500",children:["Error: ",g]})});if(o==="md")return jsx("div",{ref:D,className:"h-full w-full overflow-auto p-5 prose max-w-[100%] select-text prose-table px-8.5",style:{wordBreak:"break-word"},children:jsx(hn,{remarkPlugins:[fn],children:n})});let L=mn(o);return jsx("div",{ref:D,className:"h-full w-full",children:k>0&&jsx(rn,{value:n,theme:vscodeLight,extensions:L,editable:false,height:`${k}px`,basicSetup:{lineNumbers:true,highlightActiveLineGutter:false,highlightActiveLine:false,foldGutter:true,dropCursor:false,indentOnInput:false,syntaxHighlighting:true,bracketMatching:true,closeBrackets:false,autocompletion:false,rectangularSelection:false,crosshairCursor:false,highlightSelectionMatches:false,closeBracketsKeymap:false,searchKeymap:false,foldKeymap:true,completionKeymap:false,lintKeymap:false}})})},"TextDriver");var Tr=a(({url:r})=>jsx("div",{className:"flex flex-col justify-center items-center w-full h-full px-8.5",children:jsx("video",{controls:true,src:r,className:"w-full max-h-full"})}),"VideoDriver");var Dt=class{static{a(this,"LruChunkCache");}cache=new Map;pinned=new Set;maxSize;constructor(o=8){this.maxSize=o;}get(o){let n=this.cache.get(o);return n!==void 0&&(this.cache.delete(o),this.cache.set(o,n)),n}set(o,n){if(this.cache.delete(o),this.cache.size>=this.maxSize){for(let a of this.cache.keys())if(!this.pinned.has(a)){this.cache.delete(a);break}}this.cache.set(o,n);}pin(o){this.pinned.clear();for(let n of o)this.pinned.add(n);this.pinned.size>this.maxSize&&(this.maxSize=this.pinned.size+4);}clear(){this.cache.clear(),this.pinned.clear();}};var Ye="chunks",At=class{static{a(this,"IndexedDBStore");}db;sessionId;dbName;constructor(o,n,a){this.db=o,this.sessionId=n,this.dbName=a;}async set(o,n){return new Promise((a,d)=>{let i=this.db.transaction(Ye,"readwrite");i.objectStore(Ye).put(n,o),i.oncomplete=()=>a(),i.onerror=()=>d(i.error);})}async get(o){return new Promise((n,a)=>{let i=this.db.transaction(Ye,"readonly").objectStore(Ye).get(o);i.onsuccess=()=>n(i.result??void 0),i.onerror=()=>a(i.error);})}async clear(){return new Promise((o,n)=>{let a=this.db.transaction(Ye,"readwrite");a.objectStore(Ye).clear(),a.oncomplete=()=>o(),a.onerror=()=>n(a.error);})}async destroy(){return this.db.close(),new Promise((o,n)=>{let a=indexedDB.deleteDatabase(this.dbName);a.onsuccess=()=>o(),a.onerror=()=>n(a.error),a.onblocked=()=>o();})}},Bt=class{static{a(this,"MemoryStore");}sessionId=null;chunks=new Map;async set(o,n){this.chunks.set(o,n);}async get(o){return this.chunks.get(o)}async clear(){this.chunks.clear();}async destroy(){this.chunks.clear();}};async function Er(){let r=`${Date.now()}_${Math.random().toString(36).slice(2)}`,o=`csv-chunks-${r}`;try{let n=await new Promise((a,d)=>{let i=indexedDB.open(o,1);i.onupgradeneeded=()=>{let g=i.result;g.objectStoreNames.contains(Ye)||g.createObjectStore(Ye);},i.onsuccess=()=>a(i.result),i.onerror=()=>d(i.error);});return new At(n,r,o)}catch{return console.warn("IndexedDB unavailable, falling back to in-memory storage"),new Bt}}a(Er,"createChunkStore");function wn(r){let o=[],n=false,a=0,d=0;for(let i=0;i<r.length;i++){let g=r[i];if(g==='"')n=!n;else if(!n&&(g===`
96
- `||g==="\r"&&r[i+1]!==`
97
- `)){let x=i,k=r.slice(a,x).replace(/\r$/,"");k&&o.push(k),a=i+1,d=i+1;}}return [o,r.slice(d)]}a(wn,"splitCsvRows");function xn(r,o){return r.stream?Promise.resolve(r.stream):r.blob?Promise.resolve(r.blob.stream()):r.url?fetch(r.url,{signal:o}).then(n=>{if(!n.ok)throw new Error(`HTTP ${n.status}`);return n.body}):Promise.reject(new Error("No source provided"))}a(xn,"resolveStream");function Rr(r){let[o,n]=useState("idle"),[a,d]=useState(0),[i,g]=useState([]),[x,k]=useState(null),[R,D]=useState(0),[h,L]=useState(0),z=useRef(r),t=useRef(0),B=useRef(0),C=useRef(""),p=useRef(new Dt(10)),j=useRef(null),T=useRef(null),E=useRef(new Set),H=useRef(null),X=useRef(false),ae=useCallback((_,G)=>{let F=_+`
98
- `+G.join(`
99
- `),{data:re}=jt.parse(F,{header:true,dynamicTyping:false,skipEmptyLines:true});return re},[]),ne=useCallback(async(_,G)=>{let F=j.current;if(!F)return;let re=Math.max(0,Math.floor(_/1e3)-2),K=Math.min(t.current-1,Math.floor(G/1e3)+2),Q=false;for(let Y=re;Y<=K;Y++)if(p.current.get(Y)===void 0&&!E.current.has(Y)){E.current.add(Y);try{let ee=await F.get(Y);if(ee&&C.current){let ce=ae(C.current,ee);p.current.set(Y,ce),Q=!0;}}finally{E.current.delete(Y);}}Q&&L(Y=>Y+1);},[ae]),ge=useCallback(_=>{let G=Math.floor(_/1e3),F=_%1e3;return p.current.get(G)?.[F]},[h]),be=useCallback(async()=>{X.current=true;let _=new AbortController;T.current=_,await j.current?.destroy();let G=await Er();j.current=G,t.current=0,B.current=0,C.current="",p.current.clear(),g([]),d(0),k(null),D(0),n("loading");let F=z.current;try{let re=await xn(F,_.signal);n("streaming");let K=re.getReader(),Q=new TextDecoder("utf-8"),Y="",ee=[],ce=!0,le=0,ue=0,De=F.blob?.size||0;for(;;){if(_.signal.aborted)return;let{done:Ae,value:qe}=await K.read();if(Ae)break;le+=qe.byteLength,De&&D(le/De),Y+=Q.decode(qe,{stream:!0});let[Re,Oe]=wn(Y);if(Re.length!==0){if(Y=Oe,ce&&Re.length>0){C.current=Re.shift().replace(/^\uFEFF/,"");let{data:Ce}=jt.parse(C.current,{});Ce[0]&&g(Ce[0]),ce=!1;}for(let Ce of Re)if(Ce.trim()&&(ee.push(Ce),ee.length>=1e3)){let Ue=t.current;if(await G.set(Ue,ee),Ue<3){let He=ae(C.current,ee);p.current.set(Ue,He);}t.current+=1,ue+=ee.length,ee=[],B.current=ue,H.current||(H.current=requestAnimationFrame(()=>{d(B.current),H.current=null;}));}}}if(Y.trim())if(ce){C.current=Y;let{data:Ae}=jt.parse(C.current,{});Ae[0]&&g(Ae[0]);}else ee.push(Y);ee.length>0&&(await G.set(t.current,ee),t.current+=1,ue+=ee.length),H.current&&(cancelAnimationFrame(H.current),H.current=null),d(ue),D(1),n("done");}catch(re){if(_.signal.aborted)return;let K=re instanceof Error?re.message:"Unknown error";k(K),n("partial_error");}finally{X.current=false;}},[ae]),ve=useRef(false);useEffect(()=>(ve.current=true,X.current||be(),()=>{ve.current=false,queueMicrotask(()=>{ve.current||(T.current?.abort(),j.current?.destroy(),H.current&&cancelAnimationFrame(H.current));});}),[be]);let Pe=j.current?.sessionId??null,ye=t.current,W=useCallback(_=>{p.current.pin(_);},[]);return {state:o,headers:i,totalRows:a,getRow:ge,error:x,progress:R,prefetchRange:ne,sessionId:Pe,chunkCount:ye,pinChunks:W}}a(Rr,"useCsvStream");var kn=`
82
+ [&>div.docx-wrapper]:min-h-full`,style:{boxSizing:"border-box",wordBreak:"break-word",overflowWrap:"break-word",transform:`scale(${k})`,transformOrigin:"top left"}})})})]})},"DocxDriver");var bn=a(r=>({js:[javascript({jsx:false})],jsx:[javascript({jsx:true})],ts:[javascript({typescript:true,jsx:false})],tsx:[javascript({typescript:true,jsx:true})],json:[json()],html:[html()],css:[css()],scss:[css()],py:[python()],java:[java()],cpp:[cpp()],c:[cpp()],php:[php()],rs:[rust()],xml:[xml()],yaml:[yaml()],yml:[yaml()],md:[markdown()],sql:[sql()],sh:[markdown()],bash:[markdown()]})[r]||[],"getLanguageExtension"),Mr=a(({url:r,extension:o})=>{let[n,a$1]=useState(""),[d,i]=useState(true),[h,x]=useState(null),[k,R]=useState(0),P=useRef(null);if(useEffect(()=>{a(async()=>{try{i(!0),x(null);let t=await fetch(r);if(!t.ok)throw new Error(`Failed to load file: ${t.statusText}`);let F=await t.text();if(o==="json")try{F=JSON.stringify(JSON.parse(F),null,2);}catch{}a$1(F);}catch(t){x(t instanceof Error?t.message:"Failed to load text content");}finally{i(false);}},"loadTextContent")();},[r]),useEffect(()=>{let A=a(()=>{if(P.current){let t=P.current.clientHeight;R(t);}},"updateHeight");return A(),window.addEventListener("resize",A),()=>{window.removeEventListener("resize",A);}},[d]),d)return jsx("div",{className:"flex items-center justify-center p-8.5",children:jsx("div",{className:"text-gray-500",children:"Loading text content..."})});if(h)return jsx("div",{className:"flex items-center justify-center p-8.5",children:jsxs("div",{className:"text-red-500",children:["Error: ",h]})});if(o==="md")return jsx("div",{ref:P,className:"h-full w-full overflow-auto p-5 prose max-w-[100%] select-text prose-table px-8.5",style:{wordBreak:"break-word"},children:jsx(mn,{remarkPlugins:[gn],children:n})});let E=bn(o);return jsx("div",{ref:P,className:"h-full w-full",children:k>0&&jsx(nn,{value:n,theme:vscodeLight,extensions:E,editable:false,height:`${k}px`,basicSetup:{lineNumbers:true,highlightActiveLineGutter:false,highlightActiveLine:false,foldGutter:true,dropCursor:false,indentOnInput:false,syntaxHighlighting:true,bracketMatching:true,closeBrackets:false,autocompletion:false,rectangularSelection:false,crosshairCursor:false,highlightSelectionMatches:false,closeBracketsKeymap:false,searchKeymap:false,foldKeymap:true,completionKeymap:false,lintKeymap:false}})})},"TextDriver");var Nr=a(({url:r})=>jsx("div",{className:"flex flex-col justify-center items-center w-full h-full px-8.5",children:jsx("video",{controls:true,src:r,className:"w-full max-h-full"})}),"VideoDriver");var St=class{static{a(this,"LruChunkCache");}cache=new Map;pinned=new Set;maxSize;constructor(o=8){this.maxSize=o;}get(o){let n=this.cache.get(o);return n!==void 0&&(this.cache.delete(o),this.cache.set(o,n)),n}set(o,n){if(this.cache.delete(o),this.cache.size>=this.maxSize){for(let a of this.cache.keys())if(!this.pinned.has(a)){this.cache.delete(a);break}}this.cache.set(o,n);}pin(o){this.pinned.clear();for(let n of o)this.pinned.add(n);this.pinned.size>this.maxSize&&(this.maxSize=this.pinned.size+4);}clear(){this.cache.clear(),this.pinned.clear();}};var Ye="chunks",At=class{static{a(this,"IndexedDBStore");}db;sessionId;dbName;constructor(o,n,a){this.db=o,this.sessionId=n,this.dbName=a;}async set(o,n){return new Promise((a,d)=>{let i=this.db.transaction(Ye,"readwrite");i.objectStore(Ye).put(n,o),i.oncomplete=()=>a(),i.onerror=()=>d(i.error);})}async get(o){return new Promise((n,a)=>{let i=this.db.transaction(Ye,"readonly").objectStore(Ye).get(o);i.onsuccess=()=>n(i.result??void 0),i.onerror=()=>a(i.error);})}async clear(){return new Promise((o,n)=>{let a=this.db.transaction(Ye,"readwrite");a.objectStore(Ye).clear(),a.oncomplete=()=>o(),a.onerror=()=>n(a.error);})}async destroy(){return this.db.close(),new Promise((o,n)=>{let a=indexedDB.deleteDatabase(this.dbName);a.onsuccess=()=>o(),a.onerror=()=>n(a.error),a.onblocked=()=>o();})}},jt=class{static{a(this,"MemoryStore");}sessionId=null;chunks=new Map;async set(o,n){this.chunks.set(o,n);}async get(o){return this.chunks.get(o)}async clear(){this.chunks.clear();}async destroy(){this.chunks.clear();}};async function Rr(){let r=`${Date.now()}_${Math.random().toString(36).slice(2)}`,o=`csv-chunks-${r}`;try{let n=await new Promise((a,d)=>{let i=indexedDB.open(o,1);i.onupgradeneeded=()=>{let h=i.result;h.objectStoreNames.contains(Ye)||h.createObjectStore(Ye);},i.onsuccess=()=>a(i.result),i.onerror=()=>d(i.error);});return new At(n,r,o)}catch{return console.warn("IndexedDB unavailable, falling back to in-memory storage"),new jt}}a(Rr,"createChunkStore");function kn(r){let o=[],n=false,a=0,d=0;for(let i=0;i<r.length;i++){let h=r[i];if(h==='"')n=!n;else if(!n&&(h===`
83
+ `||h==="\r"&&r[i+1]!==`
84
+ `)){let x=i,k=r.slice(a,x).replace(/\r$/,"");k&&o.push(k),a=i+1,d=i+1;}}return [o,r.slice(d)]}a(kn,"splitCsvRows");function Sn(r,o){return r.stream?Promise.resolve(r.stream):r.blob?Promise.resolve(r.blob.stream()):r.url?fetch(r.url,{signal:o}).then(n=>{if(!n.ok)throw new Error(`HTTP ${n.status}`);return n.body}):Promise.reject(new Error("No source provided"))}a(Sn,"resolveStream");function Lr(r){let[o,n]=useState("idle"),[a,d]=useState(0),[i,h]=useState([]),[x,k]=useState(null),[R,P]=useState(0),[m,E]=useState(0),A=useRef(r),t=useRef(0),F=useRef(0),S=useRef(""),p=useRef(new St(10)),B=useRef(null),M=useRef(null),T=useRef(new Set),$=useRef(null),Y=useRef(false),ne=useCallback((H,V)=>{let W=H+`
85
+ `+V.join(`
86
+ `),{data:Z}=Bt.parse(W,{header:true,dynamicTyping:false,skipEmptyLines:true});return Z},[]),re=useCallback(async(H,V)=>{let W=B.current;if(!W)return;let Z=Math.max(0,Math.floor(H/1e3)-2),oe=Math.min(t.current-1,Math.floor(V/1e3)+2),ae=false;for(let X=Z;X<=oe;X++)if(p.current.get(X)===void 0&&!T.current.has(X)){T.current.add(X);try{let Q=await W.get(X);if(Q&&S.current){let de=ne(S.current,Q);p.current.set(X,de),ae=!0;}}finally{T.current.delete(X);}}ae&&E(X=>X+1);},[ne]),se=useCallback(H=>{let V=Math.floor(H/1e3),W=H%1e3;return p.current.get(V)?.[W]},[m]),ye=useCallback(async()=>{Y.current=true;let H=new AbortController;M.current=H,await B.current?.destroy();let V=await Rr();B.current=V,t.current=0,F.current=0,S.current="",p.current.clear(),h([]),d(0),k(null),P(0),n("loading");let W=A.current;try{let Z=await Sn(W,H.signal);n("streaming");let oe=Z.getReader(),ae=new TextDecoder("utf-8"),X="",Q=[],de=!0,ce=0,ue=0,Se=W.blob?.size||0;for(;;){if(H.signal.aborted)return;let{done:_e,value:qe}=await oe.read();if(_e)break;ce+=qe.byteLength,Se&&P(ce/Se),X+=ae.decode(qe,{stream:!0});let[Ne,Be]=kn(X);if(Ne.length!==0){if(X=Be,de&&Ne.length>0){S.current=Ne.shift().replace(/^\uFEFF/,"");let{data:Ce}=Bt.parse(S.current,{});Ce[0]&&h(Ce[0]),de=!1;}for(let Ce of Ne)if(Ce.trim()&&(Q.push(Ce),Q.length>=1e3)){let Pe=t.current;if(await V.set(Pe,Q),Pe<3){let Re=ne(S.current,Q);p.current.set(Pe,Re);}t.current+=1,ue+=Q.length,Q=[],F.current=ue,$.current||($.current=requestAnimationFrame(()=>{d(F.current),$.current=null;}));}}}if(X.trim())if(de){S.current=X;let{data:_e}=Bt.parse(S.current,{});_e[0]&&h(_e[0]);}else Q.push(X);Q.length>0&&(await V.set(t.current,Q),t.current+=1,ue+=Q.length),$.current&&(cancelAnimationFrame($.current),$.current=null),d(ue),P(1),n("done");}catch(Z){if(H.signal.aborted)return;let oe=Z instanceof Error?Z.message:"Unknown error";k(oe),n("partial_error");}finally{Y.current=false;}},[ne]),le=useRef(false);useEffect(()=>(le.current=true,Y.current||ye(),()=>{le.current=false,queueMicrotask(()=>{le.current||(M.current?.abort(),B.current?.destroy(),$.current&&cancelAnimationFrame($.current));});}),[ye]);let we=B.current?.sessionId??null,ve=t.current,q=useCallback(H=>{p.current.pin(H);},[]);return {state:o,headers:i,totalRows:a,getRow:se,error:x,progress:R,prefetchRange:re,sessionId:we,chunkCount:ve,pinChunks:q}}a(Lr,"useCsvStream");var Dn=`
100
87
  const DB_VERSION = 1;
101
88
  const STORE_NAME = 'chunks';
102
89
 
@@ -182,16 +169,16 @@ self.onmessage = async (e) => {
182
169
  }
183
170
  }
184
171
  };
185
- `,st=null,ct=null;function Ft(){if(!st){let r=new Blob([kn],{type:"application/javascript"});ct=URL.createObjectURL(r),st=new Worker(ct);}return st}a(Ft,"getSearchWorker");function Lr(){st?.terminate(),st=null,ct&&(URL.revokeObjectURL(ct),ct=null);}a(Lr,"terminateSearchWorker");function Ir(r,o){let[n,a]=useState(""),[d,i]=useState("idle"),[g,x]=useState(null),[k,R]=useState({searched:0,total:0,found:0}),D=useRef(null),h=useCallback(t=>{if(!r||o===0)return;if(!t.trim()){x(null),i("idle"),R({searched:0,total:0,found:0});return}i("searching"),R({searched:0,total:o,found:0});let B=Ft();B.onmessage=C=>{let{type:p}=C.data;p==="progress"&&R({searched:C.data.searched,total:C.data.total,found:C.data.found}),p==="done"&&(x(C.data.matchedIndices),i("done")),p==="cancelled"&&i("idle"),p==="error"&&(i("idle"),console.error("Search worker error:",C.data.message));},B.postMessage({type:"cancel"}),B.postMessage({type:"search",sessionId:r,query:t,chunkCount:o,chunkSize:1e3});},[r,o]),L=useCallback(t=>{a(t),D.current&&clearTimeout(D.current),D.current=setTimeout(()=>{h(t);},300);},[h]),z=useCallback(()=>{a(""),x(null),i("idle"),R({searched:0,total:0,found:0}),Ft().postMessage({type:"cancel"});},[]);return useEffect(()=>()=>{D.current&&clearTimeout(D.current),Lr();},[]),{query:n,onQueryChange:L,clearSearch:z,searchState:d,matchedIndices:g,searchProgress:k}}a(Ir,"useCsvSearch");var Rn={loading:"Loading...",rows:"rows",retry:"Retry",searchPlaceholder:"Search...",searchFound:"found",searching:"Searching..."};function Ln(r,o,n){let a=1/0,d=-1/0,i=Math.min(n,r.length-1);for(let g=o;g<=i;g++){let x=r[g];x<a&&(a=x),x>d&&(d=x);}return {min:a,max:d}}a(Ln,"getMinMax");function In(r,o,n){let a=Math.min(100,n),d=r.map(()=>[]);for(let i=0;i<a;i++){let g=o(i);if(g)for(let x=0;x<r.length;x++){let k=g[r[x]]??"";d[x].push(k.length);}}return r.map((i,g)=>{let x=i.length*9,k=d[g];if(k.length===0)return Math.min(Math.max(150,x+24),800);k.sort((z,t)=>z-t);let R=Math.floor(k.length*.9),h=k[R]*7.5+24,L=Math.max(x+24,h);return Math.min(Math.max(50,L),800)})}a(In,"estimateColumnWidths");var Wt=a(r=>{let{state:o,headers:n,totalRows:a$1,getRow:d,error:i,progress:g,prefetchRange:x,sessionId:k,chunkCount:R,pinChunks:D}=Rr(r),h={...Rn,...r.labels},{query:L,onQueryChange:z$1,clearSearch:t,searchState:B,matchedIndices:C}=Ir(k,R),p=C!==null,j=p?C.length:a$1,[T,E]=useState([]),H=useRef(null),X=useRef(null),ae=useRef(false),ne=useRef(false);useEffect(()=>{ne.current=false,ae.current=false,E([]);},[k]),useEffect(()=>{if(n.length===0||ae.current||ne.current||a$1===0)return;let W=d(0);!W||!n.some(_=>W[_]!==void 0)||(ne.current=true,E(In(n,d,a$1)));},[n,a$1,d]),useEffect(()=>()=>X.current?.(),[]);let ge=useCallback((W,_)=>{W.preventDefault(),ae.current=true;let G=W.clientX,F=T[_]??150;H.current={index:_,startX:G,startWidth:F};let re=a(Q=>{if(!H.current)return;let Y=Q.clientX-G,ee=Math.max(50,F+Y);E(ce=>{let le=[...ce];return le[_]=ee,le});},"onMouseMove"),K=a(()=>{H.current=null,X.current=null,document.removeEventListener("mousemove",re),document.removeEventListener("mouseup",K);},"onMouseUp");X.current=K,document.addEventListener("mousemove",re),document.addEventListener("mouseup",K);},[T]),be=T.reduce((W,_)=>W+_,0),ve=useCallback(()=>jsx(An,{children:n.map((W,_)=>jsxs(Bn,{style:{width:T[_]},children:[W,jsx(jn,{onMouseDown:G=>ge(G,_)})]},_))}),[n,T,ge]),Pe=useCallback(W=>{if(p&&C){let _=1/0,G=-1/0,F=new Set,re=Math.min(W.endIndex,C.length-1);for(let K=W.startIndex;K<=re;K++){let Q=C[K];Q<_&&(_=Q),Q>G&&(G=Q),F.add(Math.floor(Q/1e3));}D(Array.from(F)),_!==1/0&&x(_,G);}else D([]),x(W.startIndex,W.endIndex);},[x,D,p,C]),ye=useCallback(W=>{let _=p&&C?C[W]:W,G=d(_);return G?n.map((F,re)=>jsx(Ar,{style:{width:T[re]},children:G[F]??""},re)):n.map((F,re)=>jsx(Ar,{style:{width:T[re]},children:jsx(Hn,{})},re))},[d,n,T,p,C]);return useEffect(()=>{if(j>0)if(p&&C){let{min:W,max:_}=Ln(C,0,50);W!==1/0&&x(W,_);}else x(0,50);},[j,p,C,x]),o==="idle"||o==="loading"||o==="streaming"?jsxs("div",{className:"flex flex-col items-center justify-center h-full gap-3",children:[jsx("div",{className:"h-10 w-10 rounded-full border-2 border-gray-200 animate-spin border-s-transparent"}),o==="streaming"&&a$1>0&&jsxs(Ya,{variant:"body",color:"text.lighter",style:{fontSize:12},children:[h.loading," ",a$1.toLocaleString()," ",h.rows,g>0?` (${Math.round(g*100)}%)`:""]})]}):jsxs("div",{className:"h-full w-full flex flex-col",children:[jsxs("div",{className:"flex items-center justify-between px-4 py-2 gap-3",children:[jsx(Ya,{variant:"body",color:"text.lighter",style:{fontSize:12,whiteSpace:"nowrap"},children:`${j.toLocaleString()} ${p?h.searchFound:h.rows}${p?` / ${a$1.toLocaleString()}`:""}`}),jsxs(Wn,{children:[jsx($n,{type:"text",value:L,onChange:W=>z$1(W.target.value),placeholder:h.searchPlaceholder}),B==="searching"?jsx(Yn,{children:jsx(Un,{})}):L?jsx(Xn,{onClick:t,type:"button",children:"\u2715"}):null]})]}),o==="partial_error"&&jsxs(pb,{className:"flex items-center justify-between mx-4 mb-2 px-3 py-2 rounded bg-red-50 border border-red-200",children:[jsx(Ya,{variant:"body",style:{fontSize:12,color:"#dc2626"},children:i}),r.onRetry&&jsx(z,{onClick:()=>r.onRetry(i??""),variant:"outlined",size:"small",children:h.retry})]}),jsx("div",{className:"flex-1 min-h-0",children:n.length>0&&jsx(TableVirtuoso,{totalCount:j,increaseViewportBy:300,fixedHeaderContent:ve,itemContent:ye,rangeChanged:Pe,style:{height:"100%"},components:{Table:a(({style:W,context:_,...G})=>jsx(zn,{style:{...W,minWidth:"100%",width:be},...G}),"Table"),TableHead:_n,TableRow:a(({context:W,..._})=>jsx(Fn,{..._}),"TableRow")}},p?"filtered":"all")})]})},"CsvDriver"),zn=styled.table(({theme:r})=>`
172
+ `,it=null,st=null;function Ft(){if(!it){let r=new Blob([Dn],{type:"application/javascript"});st=URL.createObjectURL(r),it=new Worker(st);}return it}a(Ft,"getSearchWorker");function Ir(){it?.terminate(),it=null,st&&(URL.revokeObjectURL(st),st=null);}a(Ir,"terminateSearchWorker");function zr(r,o){let[n,a]=useState(""),[d,i]=useState("idle"),[h,x]=useState(null),[k,R]=useState({searched:0,total:0,found:0}),P=useRef(null),m=useCallback(t=>{if(!r||o===0)return;if(!t.trim()){x(null),i("idle"),R({searched:0,total:0,found:0});return}i("searching"),R({searched:0,total:o,found:0});let F=Ft();F.onmessage=S=>{let{type:p}=S.data;p==="progress"&&R({searched:S.data.searched,total:S.data.total,found:S.data.found}),p==="done"&&(x(S.data.matchedIndices),i("done")),p==="cancelled"&&i("idle"),p==="error"&&(i("idle"),console.error("Search worker error:",S.data.message));},F.postMessage({type:"cancel"}),F.postMessage({type:"search",sessionId:r,query:t,chunkCount:o,chunkSize:1e3});},[r,o]),E=useCallback(t=>{a(t),P.current&&clearTimeout(P.current),P.current=setTimeout(()=>{m(t);},300);},[m]),A=useCallback(()=>{a(""),x(null),i("idle"),R({searched:0,total:0,found:0}),Ft().postMessage({type:"cancel"});},[]);return useEffect(()=>()=>{P.current&&clearTimeout(P.current),Ir();},[]),{query:n,onQueryChange:E,clearSearch:A,searchState:d,matchedIndices:h,searchProgress:k}}a(zr,"useCsvSearch");var In={loading:"Loading...",rows:"rows",retry:"Retry",searchPlaceholder:"Search...",searchFound:"found",searching:"Searching..."};function zn(r,o,n){let a=1/0,d=-1/0,i=Math.min(n,r.length-1);for(let h=o;h<=i;h++){let x=r[h];x<a&&(a=x),x>d&&(d=x);}return {min:a,max:d}}a(zn,"getMinMax");function _n(r,o,n){let a=Math.min(100,n),d=r.map(()=>[]);for(let i=0;i<a;i++){let h=o(i);if(h)for(let x=0;x<r.length;x++){let k=h[r[x]]??"";d[x].push(k.length);}}return r.map((i,h)=>{let x=i.length*9,k=d[h];if(k.length===0)return Math.min(Math.max(150,x+24),800);k.sort((A,t)=>A-t);let R=Math.floor(k.length*.9),m=k[R]*7.5+24,E=Math.max(x+24,m);return Math.min(Math.max(50,E),800)})}a(_n,"estimateColumnWidths");var Wt=a(r=>{let{state:o,headers:n,totalRows:a$1,getRow:d,error:i,progress:h,prefetchRange:x,sessionId:k,chunkCount:R,pinChunks:P}=Lr(r),m={...In,...r.labels},{query:E,onQueryChange:A,clearSearch:t,searchState:F,matchedIndices:S}=zr(k,R),p=S!==null,B=p?S.length:a$1,[M,T]=useState([]),$=useRef(null),Y=useRef(null),ne=useRef(false),re=useRef(false);useEffect(()=>{re.current=false,ne.current=false,T([]);},[k]),useEffect(()=>{if(n.length===0||ne.current||re.current||a$1===0)return;let q=d(0);!q||!n.some(H=>q[H]!==void 0)||(re.current=true,T(_n(n,d,a$1)));},[n,a$1,d]),useEffect(()=>()=>Y.current?.(),[]);let se=useCallback((q,H)=>{q.preventDefault(),ne.current=true;let V=q.clientX,W=M[H]??150;$.current={index:H,startX:V,startWidth:W};let Z=a(ae=>{if(!$.current)return;let X=ae.clientX-V,Q=Math.max(50,W+X);T(de=>{let ce=[...de];return ce[H]=Q,ce});},"onMouseMove"),oe=a(()=>{$.current=null,Y.current=null,document.removeEventListener("mousemove",Z),document.removeEventListener("mouseup",oe);},"onMouseUp");Y.current=oe,document.addEventListener("mousemove",Z),document.addEventListener("mouseup",oe);},[M]),ye=M.reduce((q,H)=>q+H,0),le=useCallback(()=>jsx(Bn,{children:n.map((q,H)=>jsxs(Fn,{style:{width:M[H]},children:[q,jsx(On,{onMouseDown:V=>se(V,H)})]},H))}),[n,M,se]),we=useCallback(q=>{if(p&&S){let H=1/0,V=-1/0,W=new Set,Z=Math.min(q.endIndex,S.length-1);for(let oe=q.startIndex;oe<=Z;oe++){let ae=S[oe];ae<H&&(H=ae),ae>V&&(V=ae),W.add(Math.floor(ae/1e3));}P(Array.from(W)),H!==1/0&&x(H,V);}else P([]),x(q.startIndex,q.endIndex);},[x,P,p,S]),ve=useCallback(q=>{let H=p&&S?S[q]:q,V=d(H);return V?n.map((W,Z)=>jsx(jr,{style:{width:M[Z]},children:V[W]??""},Z)):n.map((W,Z)=>jsx(jr,{style:{width:M[Z]},children:jsx($n,{})},Z))},[d,n,M,p,S]);return useEffect(()=>{if(B>0)if(p&&S){let{min:q,max:H}=zn(S,0,50);q!==1/0&&x(q,H);}else x(0,50);},[B,p,S,x]),o==="idle"||o==="loading"||o==="streaming"?jsxs("div",{className:"flex flex-col items-center justify-center h-full gap-3",children:[jsx("div",{className:"h-10 w-10 rounded-full border-2 border-gray-200 animate-spin border-s-transparent"}),o==="streaming"&&a$1>0&&jsxs(Ya,{variant:"body",color:"text.lighter",style:{fontSize:12},children:[m.loading," ",a$1.toLocaleString()," ",m.rows,h>0?` (${Math.round(h*100)}%)`:""]})]}):jsxs("div",{className:"h-full w-full flex flex-col",children:[jsxs("div",{className:"flex items-center justify-between px-4 py-2 gap-3",children:[jsx(Ya,{variant:"body",color:"text.lighter",style:{fontSize:12,whiteSpace:"nowrap"},children:`${B.toLocaleString()} ${p?m.searchFound:m.rows}${p?` / ${a$1.toLocaleString()}`:""}`}),jsxs(Xn,{children:[jsx(Yn,{type:"text",value:E,onChange:q=>A(q.target.value),placeholder:m.searchPlaceholder}),F==="searching"?jsx(Un,{children:jsx(Vn,{})}):E?jsx(qn,{onClick:t,type:"button",children:"\u2715"}):null]})]}),o==="partial_error"&&jsxs(pb,{className:"flex items-center justify-between mx-4 mb-2 px-3 py-2 rounded bg-red-50 border border-red-200",children:[jsx(Ya,{variant:"body",style:{fontSize:12,color:"#dc2626"},children:i}),r.onRetry&&jsx(z,{onClick:()=>r.onRetry(i??""),variant:"outlined",size:"small",children:m.retry})]}),jsx("div",{className:"flex-1 min-h-0",children:n.length>0&&jsx(TableVirtuoso,{totalCount:B,increaseViewportBy:300,fixedHeaderContent:le,itemContent:ve,rangeChanged:we,style:{height:"100%"},components:{Table:a(({style:q,context:H,...V})=>jsx(An,{style:{...q,minWidth:"100%",width:ye},...V}),"Table"),TableHead:jn,TableRow:a(({context:q,...H})=>jsx(Hn,{...H}),"TableRow")}},p?"filtered":"all")})]})},"CsvDriver"),An=styled.table(({theme:r})=>`
186
173
  border-collapse: separate;
187
174
  border-spacing: 0;
188
175
  table-layout: fixed;
189
176
  font-size: 13px;
190
177
  background-color: ${r.colors.background};
191
- `),_n=styled.thead(({theme:r})=>`
178
+ `),jn=styled.thead(({theme:r})=>`
192
179
  background-color: ${r.colors.background};
193
180
  z-index: 1;
194
- `),An=styled.tr``,Bn=styled.th(({theme:r})=>`
181
+ `),Bn=styled.tr``,Fn=styled.th(({theme:r})=>`
195
182
  position: relative;
196
183
  text-align: left;
197
184
  padding: 8px 12px;
@@ -206,7 +193,7 @@ self.onmessage = async (e) => {
206
193
  &:last-child {
207
194
  border-right: none;
208
195
  }
209
- `),jn=styled.div(({theme:r})=>`
196
+ `),On=styled.div(({theme:r})=>`
210
197
  position: absolute;
211
198
  right: 0;
212
199
  top: 0;
@@ -218,11 +205,11 @@ self.onmessage = async (e) => {
218
205
  background-color: ${r.colors.primary?.light};
219
206
  opacity: 0.4;
220
207
  }
221
- `),Fn=styled.tr(({theme:r})=>`
208
+ `),Hn=styled.tr(({theme:r})=>`
222
209
  &:hover {
223
210
  background-color: ${r.colors.backgroundBase};
224
211
  }
225
- `),Ar=styled.td(({theme:r})=>`
212
+ `),jr=styled.td(({theme:r})=>`
226
213
  padding: 6px 12px;
227
214
  word-wrap: break-word;
228
215
  overflow-wrap: break-word;
@@ -232,20 +219,20 @@ self.onmessage = async (e) => {
232
219
  &:last-child {
233
220
  border-right: none;
234
221
  }
235
- `),On=keyframes`
222
+ `),Wn=keyframes`
236
223
  0%, 100% { opacity: 0.4; }
237
224
  50% { opacity: 1; }
238
- `,Hn=styled.div(({theme:r})=>css$1`
225
+ `,$n=styled.div(({theme:r})=>css$1`
239
226
  height: 12px;
240
227
  width: 60%;
241
228
  background: ${r.colors.stroke.light};
242
229
  border-radius: 4px;
243
- animation: ${On} 1.5s ease-in-out infinite;
244
- `),Wn=styled.div`
230
+ animation: ${Wn} 1.5s ease-in-out infinite;
231
+ `),Xn=styled.div`
245
232
  position: relative;
246
233
  width: 200px;
247
234
  flex-shrink: 0;
248
- `,$n=styled.input(({theme:r})=>`
235
+ `,Yn=styled.input(({theme:r})=>`
249
236
  padding: 4px 24px 4px 8px;
250
237
  font-size: 12px;
251
238
  border: 1px solid ${r.colors.stroke.light};
@@ -255,7 +242,7 @@ self.onmessage = async (e) => {
255
242
  &:focus {
256
243
  border-color: ${r.colors.primary?.main};
257
244
  }
258
- `),Xn=styled.button(({theme:r})=>`
245
+ `),qn=styled.button(({theme:r})=>`
259
246
  position: absolute;
260
247
  right: 6px;
261
248
  top: 50%;
@@ -270,23 +257,23 @@ self.onmessage = async (e) => {
270
257
  &:hover {
271
258
  color: ${r.colors.text?.main};
272
259
  }
273
- `),Yn=styled.div`
260
+ `),Un=styled.div`
274
261
  position: absolute;
275
262
  right: 6px;
276
263
  top: 50%;
277
264
  transform: translateY(-50%);
278
265
  display: flex;
279
266
  align-items: center;
280
- `,qn=keyframes`
267
+ `,Zn=keyframes`
281
268
  to { transform: rotate(360deg); }
282
- `,Un=styled.div(({theme:r})=>css$1`
269
+ `,Vn=styled.div(({theme:r})=>css$1`
283
270
  width: 14px;
284
271
  height: 14px;
285
272
  border: 2px solid ${r.colors.stroke.light};
286
273
  border-top-color: ${r.colors.text?.light};
287
274
  border-radius: 50%;
288
- animation: ${qn} 0.6s linear infinite;
289
- `);var Hr=memo(a(function({extension:o,blob:n,path:a,buffer:d,stream:i,csvLabels:g,onCsvRetry:x,not_supported_message:k=" Sorry, this file type isn\u2019t supported yet."}){let R=o.toLocaleLowerCase().trim(),D;if(a?D=a:n&&(D=URL.createObjectURL(n)),["csv","tsv"].includes(R))return jsx(Wt,{url:D,blob:n,stream:i,labels:g,onRetry:x});if(D){if(["jpeg","jpg","png","gif","bmp","webp"].includes(R))return jsx(mr,{url:D});if(["mp3","wav","ogg","flac"].includes(R))return jsx(br,{url:D});if(["mp4","webm"].includes(R))return jsx(Tr,{url:D});if(o==="pdf")return jsx(zt,{url:D});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(R))return jsx(Mr,{url:D,extension:R})}return R==="docx"?jsx(xr,{url:D,blob:n}):jsx("div",{className:"h-full flex flex-col justify-center items-center",children:jsx(pb,{className:"mx-5",children:jsx(Ya,{variant:"h2",color:"text.light",weight:500,className:"text-center",children:k})})})},"Driver"));var Fd=a(r=>jsx("div",{className:"h-full w-full",children:jsx(Hr,{...r})}),"FileViewer");var Xr=250,Kd=a(({text:r,speed:o=50,onDone:n,markdown:a$1=false,markdownComponents:d={},className:i,...g})=>{let[x,k]=useState(""),R=useRef(null),D=useRef(null);return useEffect(()=>{let h=false;if(o>0){k(""),R.current=performance.now();let L=a(z=>{if(h||!R.current)return;let t=z-R.current,B=t/o>Xr?o/2:o,C=t/o>Xr?1.5:1,p=Math.floor(t/B*C);if(p>=r.length){k(r),h=true,n?.();return}k(r.slice(0,p)),D.current=requestAnimationFrame(L);},"tick");D.current=requestAnimationFrame(L);}else k(r),n?.();return ()=>{D.current&&cancelAnimationFrame(D.current);}},[r,o,n]),a$1?jsx("div",{className:i,children:jsx(hn,{remarkPlugins:[fn],components:d,...g,children:x})}):jsx(Ya,{className:i,...g,children:x})},"Typewriter");var na={timeout:2e3,message:"Copied!"},lu=a(({text:r,children:o,format:n="text/plain",tooltip:a$1,positions:d=["top"],className:i})=>{let[g,x]=useState(false),k=useRef(null),R={...na,...a$1},D=Array.isArray(d)?d[0]:d,h=a(async()=>{"clipboard"in navigator?await navigator.clipboard.writeText(r):Qn(r,{format:n}),x(true),k.current&&clearTimeout(k.current),k.current=setTimeout(()=>x(false),R.timeout);},"handleCopy");return useEffect(()=>()=>{k.current&&clearTimeout(k.current);},[]),jsx(Popover,{padding:6,positions:d,isOpen:g,align:"center",onClickOutside:()=>x(false),content:!!a$1?.message&&jsx(Cb,{className:i,$position:D,$offset:6,children:a$1.message}),containerStyle:{zIndex:"9999"},children:jsx("div",{className:"inline-block",onMouseLeave:()=>x(false),children:o({copy:h})})})},"CopyToClipboard");var qr=a(r=>new Date(r?Array.isArray(r)?r[1]||r[0]||new Date:r:new Date),"getInitValue"),Lt=a((r,o)=>{let n;if(o){let d=parse(r||"",o,new Date);if(isValid(d)&&getYear(d)>=1970)return d}let a=new Date(r||"");return isNaN(a.getTime())?n:a},"parseDate"),ha=a((r,o)=>{let n=r?Lt(r,o):void 0;return n&&o?format(n,o):r},"renderDate"),ku=a(({value:r,range:o,inline:n=false,minDate:a=new Date(getYear(new Date)-5,0,1),maxDate:d=new Date(getYear(new Date)+5,11,31),format:i="dd.MM.yyyy",onChange:g,...x})=>{let[k,R]=useState(getMonth(qr(r))),[D,h]=useState(getYear(qr(r))),L=useMemo(()=>{if(r){if(Array.isArray(r)){let t=Lt(r[0],i),B=Lt(r[1],i);return [t,B]}return Lt(r,i)}},[r]),z=useCallback(t=>{if(o){let B=!!(L&&Array.isArray(L)&&L[0]),C=!!(L&&Array.isArray(L)&&L[1]);!B||B&&C?g?.([t.toString(),""]):B&&!C&&(t<L[0]?g?.([t.toString(),L[0].toString()]):g?.([L[0].toString(),t.toString()]));}else g?.(t.toString());},[o,L,g]);return n?jsx(Ur,{month:k,year:D,minDate:a,maxDate:d,selectedDate:L,onSelectDate:z,onChangeMonth:R,onChangeYear:h}):o?jsx(fa,{range:true,value:r,onChange:g,...x}):jsx(ma,{value:r,onChange:g,minDate:a,maxDate:d,month:k,year:D,selectedDate:L,onChangeMonth:R,onChangeYear:h,onSelectDate:z,formatStr:i,...x})},"DatePicker"),fa=a(({minDate:r,maxDate:o,value:n,onChange:a})=>null,"DatePickerGroupInput"),ma=a(({placeholder:r,value:o,onChange:n,inputProps:a,...d})=>{let[i,g]=useState(false),x=y();return jsx(Popover,{positions:["bottom","top","right","left"],align:"start",isOpen:i,onClickOutside:()=>g(false),content:jsx(pb,{children:jsx(Ur,{...d})}),containerStyle:{zIndex:`${x.zIndex.popover}`},children:jsx("div",{onClick:()=>g(true),children:jsx(kb,{...a,placeholder:r,value:ha(o,d.formatStr),onChange:k=>n?.(k.target.value)})})})},"DatePickerInput"),Ur=a(({month:r,year:o,selectedDate:n,minDate:a,maxDate:d,onSelectDate:i,onChangeMonth:g,onChangeYear:x})=>{let k=useMemo(()=>new Array(12).fill(null).map((p,j)=>{let T=new Date(0,j);return {value:j+1,inputDisplay:format(T,"MMMM")}}),[]),R=useMemo(()=>{let p=getYear(a),T=getYear(d)-p+1;return new Array(T).fill(null).map((E,H)=>{let X=p+H;return {value:X,inputDisplay:X.toString()}})},[a,d]),D=useMemo(()=>new Array(7).fill(null).map((p,j)=>{let T=startOfWeek(new Date,{weekStartsOn:j});return format(T,"EEE")}),[]),h=useMemo(()=>{let p=startOfMonth(new Date(o,r)),j=endOfMonth(new Date(o,r)),T=getDay(p)===0?p:previousSunday(p),E=getDay(j)===6?j:nextSaturday(j),H=differenceInDays(E,T),X=differenceInDays(p,T);return new Array(H+1).fill(null).map((ae,ne)=>new Date(o,r,ne-X+1))},[r,o]),L=useCallback(()=>{r===0?(x(o-1),g(11)):g(r-1);},[r,o]),z$1=useCallback(()=>{r===11?(x(o+1),g(0)):g(r+1);},[r,o]),t=useMemo(()=>a?!(o<getYear(a)||o===getYear(a)&&r<=getMonth(a)):true,[r,o,a]),B=useMemo(()=>d?!(o>getYear(d)||o===getYear(d)&&r>=getMonth(d)):true,[r,o,d]),C=useCallback(p=>{p.stopPropagation();},[]);return jsxs("div",{className:"flex flex-col date-picker-calendar",onClick:C,children:[jsxs("div",{className:"flex justify-center items-center gap-2 pb-3",children:[t&&jsx(z,{size:"small",variant:"empty",icon:jsx(G,{}),onClick:L}),jsxs("div",{className:"flex-1 flex justify-center gap-1",children:[jsx(ib,{placeholder:"",hasBorder:false,selected:r+1,options:k,onSelect:p=>g(p-1),maxWidth:150,maxHeight:300}),jsx(ib,{placeholder:"",hasBorder:false,selected:o,options:R,onSelect:p=>x(p),maxWidth:100,maxHeight:300})]}),B&&jsx(z,{size:"small",variant:"empty",icon:jsx(H,{}),onClick:z$1})]}),jsx("div",{className:"grid grid-cols-7 gap-2",children:D.map(p=>jsx("div",{className:"text-center",children:p},p))}),jsx("div",{className:"grid grid-cols-7 gap-2 mt-2",children:h.map(p=>{let j=getMonth(p)===r,T=format(p,"yyyy-MM-dd")===format(new Date,"yyyy-MM-dd"),E=n&&(Array.isArray(n)&&(n[0]&&format(p,"yyyy-MM-dd")===format(n[0],"yyyy-MM-dd")||n[1]&&format(p,"yyyy-MM-dd")===format(n[1],"yyyy-MM-dd"))||!Array.isArray(n)&&format(p,"yyyy-MM-dd")===format(n,"yyyy-MM-dd")),H=n&&Array.isArray(n)&&n[0]&&n[1]&&p>n[0]&&p<n[1],X=a&&differenceInDays(p,a)<0||d&&differenceInDays(p,d)>0||!j;return jsx(ga,{date:p,isCurrentMonth:j,isCurrentDay:T,isSelected:!!E,isInRange:!!H,isDisabled:!!X,onSelectDate:i},p.toISOString())})})]})},"DatePickerCalendar"),ga=a(({date:r,isCurrentMonth:o,isCurrentDay:n,isSelected:a$1,isInRange:d,isDisabled:i,onSelectDate:g})=>jsx("div",{className:`text-center p-2 cursor-pointer rounded ${i?"text-gray-400 cursor-not-allowed":a$1?"bg-blue-500 text-white":d?"bg-blue-100":n?"text-blue-500":o?"text-black":"text-gray-400"} ${i?"":a$1?"hover:bg-blue-600":"hover:bg-gray-100"}`,onClick:a(k=>{i||g(r);},"handleClick"),children:format(r,"d")}),"CalendarDay");var ya=a(r=>{switch(r){case "primary":return "bg-blue-100 border-blue-200 dark:bg-blue-800/10 dark:border-blue-900";case "error":return "bg-red-100 border-red-200 dark:bg-red-800/10 dark:border-red-900";case "warning":return "bg-yellow-100 border-yellow-200 dark:bg-yellow-800/10 dark:border-yellow-900";case "success":return "bg-teal-100 border-teal-200 dark:bg-teal-800/10 dark:border-teal-900";case "default":default:return "bg-white border border-gray-200 dark:bg-neutral-800 dark:border-neutral-700"}},"getColorStyle"),wa=a(r=>{switch(r){case "primary":return "text-blue-800 dark:text-blue-500";case "error":return "text-red-800 dark:text-red-500";case "warning":return "text-yellow-800 dark:text-yellow-500";case "success":return "text-teal-800 dark:text-teal-500";case "default":default:return "text-gray-800 dark:text-white"}},"getTextColor"),xa=a(r=>{switch(r){case "bottom":return "translate-y-4";case "top":default:return "-translate-y-4"}},"getTransitionStarting"),Kr=a(({id:r,color:o="default",message:n,duration:a,transitionDirection:d,cancelable:i=true,onClose:g})=>{let[x,k]=useState(false),[R,D]=useState(false),h=useRef(null),L=useCallback(()=>{k(true),h.current=setTimeout(()=>{g(r);},300);},[r,g]);return useEffect(()=>{if(D(true),a&&a<1/0){let z=setTimeout(()=>{L();},a);return ()=>clearTimeout(z)}},[a,L]),useEffect(()=>()=>{h.current&&clearTimeout(h.current);},[]),jsx("div",{className:`max-w-xs
275
+ animation: ${Zn} 0.6s linear infinite;
276
+ `);var Wr=memo(a(function({extension:o,blob:n,path:a,buffer:d,stream:i,csvLabels:h,onCsvRetry:x,not_supported_message:k=" Sorry, this file type isn\u2019t supported yet."}){let R=o.toLocaleLowerCase().trim(),P;if(a?P=a:n&&(P=URL.createObjectURL(n)),["csv","tsv"].includes(R))return jsx(Wt,{url:P,blob:n,stream:i,labels:h,onRetry:x});if(P){if(["jpeg","jpg","png","gif","bmp","webp"].includes(R))return jsx(gr,{url:P});if(["mp3","wav","ogg","flac"].includes(R))return jsx(vr,{url:P});if(["mp4","webm"].includes(R))return jsx(Nr,{url:P});if(o==="pdf")return jsx(zt,{url:P});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(R))return jsx(Mr,{url:P,extension:R})}return R==="docx"?jsx(kr,{url:P,blob:n}):jsx("div",{className:"h-full flex flex-col justify-center items-center",children:jsx(pb,{className:"mx-5",children:jsx(Ya,{variant:"h2",color:"text.light",weight:500,className:"text-center",children:k})})})},"Driver"));var Hd=a(r=>jsx("div",{className:"h-full w-full",children:jsx(Wr,{...r})}),"FileViewer");var Yr=250,Qd=a(({text:r,speed:o=50,onDone:n,markdown:a$1=false,markdownComponents:d={},className:i,...h})=>{let[x,k]=useState(""),R=useRef(null),P=useRef(null);return useEffect(()=>{let m=false;if(o>0){k(""),R.current=performance.now();let E=a(A=>{if(m||!R.current)return;let t=A-R.current,F=t/o>Yr?o/2:o,S=t/o>Yr?1.5:1,p=Math.floor(t/F*S);if(p>=r.length){k(r),m=true,n?.();return}k(r.slice(0,p)),P.current=requestAnimationFrame(E);},"tick");P.current=requestAnimationFrame(E);}else k(r),n?.();return ()=>{P.current&&cancelAnimationFrame(P.current);}},[r,o,n]),a$1?jsx("div",{className:i,children:jsx(mn,{remarkPlugins:[gn],components:d,...h,children:x})}):jsx(Ya,{className:i,...h,children:x})},"Typewriter");var ia={timeout:2e3,message:"Copied!"},uu=a(({text:r,children:o,format:n="text/plain",tooltip:a$1,positions:d=["top"],className:i})=>{let[h,x]=useState(false),k=useRef(null),R={...ia,...a$1},P=Array.isArray(d)?d[0]:d,m=a(async()=>{"clipboard"in navigator?await navigator.clipboard.writeText(r):ta(r,{format:n}),x(true),k.current&&clearTimeout(k.current),k.current=setTimeout(()=>x(false),R.timeout);},"handleCopy");return useEffect(()=>()=>{k.current&&clearTimeout(k.current);},[]),jsx(Popover,{padding:6,positions:d,isOpen:h,align:"center",onClickOutside:()=>x(false),content:!!a$1?.message&&jsx(Cb,{className:i,$position:P,$offset:6,children:a$1.message}),containerStyle:{zIndex:"9999"},children:jsx("div",{className:"inline-block",onMouseLeave:()=>x(false),children:o({copy:m})})})},"CopyToClipboard");var Ur=a(r=>new Date(r?Array.isArray(r)?r[1]||r[0]||new Date:r:new Date),"getInitValue"),Et=a((r,o)=>{let n;if(o){let d=parse(r||"",o,new Date);if(isValid(d)&&getYear(d)>=1970)return d}let a=new Date(r||"");return isNaN(a.getTime())?n:a},"parseDate"),ma=a((r,o)=>{let n=r?Et(r,o):void 0;return n&&o?format(n,o):r},"renderDate"),Du=a(({value:r,range:o,inline:n=false,minDate:a=new Date(getYear(new Date)-5,0,1),maxDate:d=new Date(getYear(new Date)+5,11,31),format:i="dd.MM.yyyy",onChange:h,...x})=>{let[k,R]=useState(getMonth(Ur(r))),[P,m]=useState(getYear(Ur(r))),E=useMemo(()=>{if(r){if(Array.isArray(r)){let t=Et(r[0],i),F=Et(r[1],i);return [t,F]}return Et(r,i)}},[r]),A=useCallback(t=>{if(o){let F=!!(E&&Array.isArray(E)&&E[0]),S=!!(E&&Array.isArray(E)&&E[1]);!F||F&&S?h?.([t.toString(),""]):F&&!S&&(t<E[0]?h?.([t.toString(),E[0].toString()]):h?.([E[0].toString(),t.toString()]));}else h?.(t.toString());},[o,E,h]);return n?jsx(Zr,{month:k,year:P,minDate:a,maxDate:d,selectedDate:E,onSelectDate:A,onChangeMonth:R,onChangeYear:m}):o?jsx(ga,{range:true,value:r,onChange:h,...x}):jsx(ba,{value:r,onChange:h,minDate:a,maxDate:d,month:k,year:P,selectedDate:E,onChangeMonth:R,onChangeYear:m,onSelectDate:A,formatStr:i,...x})},"DatePicker"),ga=a(({minDate:r,maxDate:o,value:n,onChange:a})=>null,"DatePickerGroupInput"),ba=a(({placeholder:r,value:o,onChange:n,inputProps:a,...d})=>{let[i,h]=useState(false),x=y();return jsx(Popover,{positions:["bottom","top","right","left"],align:"start",isOpen:i,onClickOutside:()=>h(false),content:jsx(pb,{children:jsx(Zr,{...d})}),containerStyle:{zIndex:`${x.zIndex.popover}`},children:jsx("div",{onClick:()=>h(true),children:jsx(kb,{...a,placeholder:r,value:ma(o,d.formatStr),onChange:k=>n?.(k.target.value)})})})},"DatePickerInput"),Zr=a(({month:r,year:o,selectedDate:n,minDate:a,maxDate:d,onSelectDate:i,onChangeMonth:h,onChangeYear:x})=>{let k=useMemo(()=>new Array(12).fill(null).map((p,B)=>{let M=new Date(0,B);return {value:B+1,inputDisplay:format(M,"MMMM")}}),[]),R=useMemo(()=>{let p=getYear(a),M=getYear(d)-p+1;return new Array(M).fill(null).map((T,$)=>{let Y=p+$;return {value:Y,inputDisplay:Y.toString()}})},[a,d]),P=useMemo(()=>new Array(7).fill(null).map((p,B)=>{let M=startOfWeek(new Date,{weekStartsOn:B});return format(M,"EEE")}),[]),m=useMemo(()=>{let p=startOfMonth(new Date(o,r)),B=endOfMonth(new Date(o,r)),M=getDay(p)===0?p:previousSunday(p),T=getDay(B)===6?B:nextSaturday(B),$=differenceInDays(T,M),Y=differenceInDays(p,M);return new Array($+1).fill(null).map((ne,re)=>new Date(o,r,re-Y+1))},[r,o]),E=useCallback(()=>{r===0?(x(o-1),h(11)):h(r-1);},[r,o]),A=useCallback(()=>{r===11?(x(o+1),h(0)):h(r+1);},[r,o]),t=useMemo(()=>a?!(o<getYear(a)||o===getYear(a)&&r<=getMonth(a)):true,[r,o,a]),F=useMemo(()=>d?!(o>getYear(d)||o===getYear(d)&&r>=getMonth(d)):true,[r,o,d]),S=useCallback(p=>{p.stopPropagation();},[]);return jsxs("div",{className:"flex flex-col date-picker-calendar",onClick:S,children:[jsxs("div",{className:"flex justify-center items-center gap-2 pb-3",children:[t&&jsx(z,{size:"small",variant:"empty",icon:jsx(G,{}),onClick:E}),jsxs("div",{className:"flex-1 flex justify-center gap-1",children:[jsx(ib,{placeholder:"",hasBorder:false,selected:r+1,options:k,onSelect:p=>h(p-1),maxWidth:150,maxHeight:300}),jsx(ib,{placeholder:"",hasBorder:false,selected:o,options:R,onSelect:p=>x(p),maxWidth:100,maxHeight:300})]}),F&&jsx(z,{size:"small",variant:"empty",icon:jsx(H,{}),onClick:A})]}),jsx("div",{className:"grid grid-cols-7 gap-2",children:P.map(p=>jsx("div",{className:"text-center",children:p},p))}),jsx("div",{className:"grid grid-cols-7 gap-2 mt-2",children:m.map(p=>{let B=getMonth(p)===r,M=format(p,"yyyy-MM-dd")===format(new Date,"yyyy-MM-dd"),T=n&&(Array.isArray(n)&&(n[0]&&format(p,"yyyy-MM-dd")===format(n[0],"yyyy-MM-dd")||n[1]&&format(p,"yyyy-MM-dd")===format(n[1],"yyyy-MM-dd"))||!Array.isArray(n)&&format(p,"yyyy-MM-dd")===format(n,"yyyy-MM-dd")),$=n&&Array.isArray(n)&&n[0]&&n[1]&&p>n[0]&&p<n[1],Y=a&&differenceInDays(p,a)<0||d&&differenceInDays(p,d)>0||!B;return jsx(va,{date:p,isCurrentMonth:B,isCurrentDay:M,isSelected:!!T,isInRange:!!$,isDisabled:!!Y,onSelectDate:i},p.toISOString())})})]})},"DatePickerCalendar"),va=a(({date:r,isCurrentMonth:o,isCurrentDay:n,isSelected:a$1,isInRange:d,isDisabled:i,onSelectDate:h})=>jsx("div",{className:`text-center p-2 cursor-pointer rounded ${i?"text-gray-400 cursor-not-allowed":a$1?"bg-blue-500 text-white":d?"bg-blue-100":n?"text-blue-500":o?"text-black":"text-gray-400"} ${i?"":a$1?"hover:bg-blue-600":"hover:bg-gray-100"}`,onClick:a(k=>{i||h(r);},"handleClick"),children:format(r,"d")}),"CalendarDay");var xa=a(r=>{switch(r){case "primary":return "bg-blue-100 border-blue-200 dark:bg-blue-800/10 dark:border-blue-900";case "error":return "bg-red-100 border-red-200 dark:bg-red-800/10 dark:border-red-900";case "warning":return "bg-yellow-100 border-yellow-200 dark:bg-yellow-800/10 dark:border-yellow-900";case "success":return "bg-teal-100 border-teal-200 dark:bg-teal-800/10 dark:border-teal-900";case "default":default:return "bg-white border border-gray-200 dark:bg-neutral-800 dark:border-neutral-700"}},"getColorStyle"),ka=a(r=>{switch(r){case "primary":return "text-blue-800 dark:text-blue-500";case "error":return "text-red-800 dark:text-red-500";case "warning":return "text-yellow-800 dark:text-yellow-500";case "success":return "text-teal-800 dark:text-teal-500";case "default":default:return "text-gray-800 dark:text-white"}},"getTextColor"),Sa=a(r=>{switch(r){case "bottom":return "translate-y-4";case "top":default:return "-translate-y-4"}},"getTransitionStarting"),Jr=a(({id:r,color:o="default",message:n,duration:a,transitionDirection:d,cancelable:i=true,onClose:h})=>{let[x,k]=useState(false),[R,P]=useState(false),m=useRef(null),E=useCallback(()=>{k(true),m.current=setTimeout(()=>{h(r);},300);},[r,h]);return useEffect(()=>{if(P(true),a&&a<1/0){let A=setTimeout(()=>{E();},a);return ()=>clearTimeout(A)}},[a,E]),useEffect(()=>()=>{m.current&&clearTimeout(m.current);},[]),jsx("div",{className:`max-w-xs
290
277
  border
291
278
  w-full
292
279
  text-sm
@@ -295,7 +282,7 @@ self.onmessage = async (e) => {
295
282
  ease-in-out
296
283
  duration-300
297
284
  ${x||!R?"opacity-0":"opacity-100"}
298
- ${R?"translate-y-0":xa(d)}
299
- ${ya(o)} ${wa(o)}`,children:jsxs("div",{className:"flex p-4",style:{wordBreak:"break-word"},children:[n,i&&jsx("div",{className:"ms-auto",children:jsx("button",{type:"button",className:"inline-flex shrink-0 justify-center items-center size-5 rounded-lg opacity-50 hover:opacity-100 focus:outline-hidden focus:opacity-100 cursor-pointer","aria-label":"Close",onClick:L,children:jsxs("svg",{className:"shrink-0 size-4",xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[jsx("path",{d:"M18 6 6 18"}),jsx("path",{d:"m6 6 12 12"})]})})})]})})},"Toast");var Sa=a((r,o)=>{switch(r){case "top-right":return `top-${o} right-${o}`;case "top-left":return `top-${o} left-${o}`;case "bottom-right":return `bottom-${o} right-${o}`;case "bottom-left":return `bottom-${o} left-${o}`;default:return `top-${o} right-${o}`}},"getPosition"),_u=a(({items:r,onClose:o,position:n="top-right",offset:a=4})=>{let d=useMemo(()=>n.startsWith("top")?"top":"bottom",[n]);return jsx("div",{className:`fixed flex min-w-0 max-w-xs w-full flex-col z-50 gap-2 ${Sa(n,a)}`,children:r.map(i=>jsx(Kr,{transitionDirection:d,...i,onClose:o},i.id))})},"ToastsList");var Yu=a(({onChange:r,disabled:o,multiple:n,dragText:a$1="Drop file to upload",className:d})=>{let[i,g]=useState(false),[x,k]=useState(false),[R,D]=useState(false);return useEffect(()=>{if(o)return;let h=0,L=a(C=>{C.preventDefault(),h++,h===1&&g(true);},"handleDragEnter"),z=a(C=>{C.preventDefault(),h--,h===0&&g(false);},"handleDragLeave"),t=a(C=>{C.preventDefault();},"handleDragOver"),B=a(async C=>{if(C.preventDefault(),h=0,g(false),!x)try{k(!0);let p=await lb(C.dataTransfer.items);r(n?p:p.length>0?[p[0]]:[]);}catch(p){console.error("\u041F\u043E\u043C\u0438\u043B\u043A\u0430 \u043F\u0440\u0438 \u0447\u0438\u0442\u0430\u043D\u043D\u0456 \u0444\u0430\u0439\u043B\u0456\u0432:",p);}finally{k(false);}},"handleDrop");return document.addEventListener("dragenter",L),document.addEventListener("dragleave",z),document.addEventListener("dragover",t),document.addEventListener("drop",B),()=>{document.removeEventListener("dragenter",L),document.removeEventListener("dragleave",z),document.removeEventListener("dragover",t),document.removeEventListener("drop",B);}},[o,x,n,r]),useEffect(()=>{D(true);},[]),R&&i?createPortal(jsx("div",{className:`fixed top-0 bottom-0 left-0 right-0 flex items-center justify-center bg-[rgba(251,250,250,0.9)] z-9999 ${d}`,children:jsx(Ya,{variant:"h3",className:"px-3 py-2 bg-white rounded-md border border-gray-200",children:a$1})}),document.body):null},"GlobalDropZone");
300
- export{fc as Container,lu as CopyToClipboard,ku as DatePicker,Ur as DatePickerCalendar,Fd as FileViewer,Kc as FullscreenCard,Yu as GlobalDropZone,Ho as Graph2D,Js as PageContent,Us as PageLayout,wc as SplitterLayout,co as Styled,ro as StyledContainer,ao as StyledMain,oc as SubNav,_u as ToastsList,Kd as Typewriter};//# sourceMappingURL=index.mjs.map
285
+ ${R?"translate-y-0":Sa(d)}
286
+ ${xa(o)} ${ka(o)}`,children:jsxs("div",{className:"flex p-4",style:{wordBreak:"break-word"},children:[n,i&&jsx("div",{className:"ms-auto",children:jsx("button",{type:"button",className:"inline-flex shrink-0 justify-center items-center size-5 rounded-lg opacity-50 hover:opacity-100 focus:outline-hidden focus:opacity-100 cursor-pointer","aria-label":"Close",onClick:E,children:jsxs("svg",{className:"shrink-0 size-4",xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[jsx("path",{d:"M18 6 6 18"}),jsx("path",{d:"m6 6 12 12"})]})})})]})})},"Toast");var Ca=a((r,o)=>{switch(r){case "top-right":return `top-${o} right-${o}`;case "top-left":return `top-${o} left-${o}`;case "bottom-right":return `bottom-${o} right-${o}`;case "bottom-left":return `bottom-${o} left-${o}`;default:return `top-${o} right-${o}`}},"getPosition"),ju=a(({items:r,onClose:o,position:n="top-right",offset:a=4})=>{let d=useMemo(()=>n.startsWith("top")?"top":"bottom",[n]);return jsx("div",{className:`fixed flex min-w-0 max-w-xs w-full flex-col z-50 gap-2 ${Ca(n,a)}`,children:r.map(i=>jsx(Jr,{transitionDirection:d,...i,onClose:o},i.id))})},"ToastsList");var Uu=a(({onChange:r,disabled:o,multiple:n,dragText:a$1="Drop file to upload",className:d})=>{let[i,h]=useState(false),[x,k]=useState(false),[R,P]=useState(false);return useEffect(()=>{if(o)return;let m=0,E=a(S=>{S.preventDefault(),m++,m===1&&h(true);},"handleDragEnter"),A=a(S=>{S.preventDefault(),m--,m===0&&h(false);},"handleDragLeave"),t=a(S=>{S.preventDefault();},"handleDragOver"),F=a(async S=>{if(S.preventDefault(),m=0,h(false),!x)try{k(!0);let p=await lb(S.dataTransfer.items);r(n?p:p.length>0?[p[0]]:[]);}catch(p){console.error("\u041F\u043E\u043C\u0438\u043B\u043A\u0430 \u043F\u0440\u0438 \u0447\u0438\u0442\u0430\u043D\u043D\u0456 \u0444\u0430\u0439\u043B\u0456\u0432:",p);}finally{k(false);}},"handleDrop");return document.addEventListener("dragenter",E),document.addEventListener("dragleave",A),document.addEventListener("dragover",t),document.addEventListener("drop",F),()=>{document.removeEventListener("dragenter",E),document.removeEventListener("dragleave",A),document.removeEventListener("dragover",t),document.removeEventListener("drop",F);}},[o,x,n,r]),useEffect(()=>{P(true);},[]),R&&i?createPortal(jsx("div",{className:`fixed top-0 bottom-0 left-0 right-0 flex items-center justify-center bg-[rgba(251,250,250,0.9)] z-9999 ${d}`,children:jsx(Ya,{variant:"h3",className:"px-3 py-2 bg-white rounded-md border border-gray-200",children:a$1})}),document.body):null},"GlobalDropZone");
287
+ export{gc as Container,uu as CopyToClipboard,Du as DatePicker,Zr as DatePickerCalendar,Hd as FileViewer,Qc as FullscreenCard,Uu as GlobalDropZone,Wo as Graph2D,ec as PageContent,Vs as PageLayout,kc as SplitterLayout,lo as Styled,oo as StyledContainer,io as StyledMain,ac as SubNav,ju as ToastsList,Qd as Typewriter};//# sourceMappingURL=index.mjs.map
301
288
  //# sourceMappingURL=index.mjs.map